From 9474700d09a3b8c15792a96cda53854d2b49e13a Mon Sep 17 00:00:00 2001 From: Aitor Date: Tue, 5 Dec 2023 15:20:36 +0100 Subject: [PATCH 001/476] :bug: Fix color picker not rendering Latin1 svgs --- .../main/ui/workspace/viewport/pixel_overlay.cljs | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/frontend/src/app/main/ui/workspace/viewport/pixel_overlay.cljs b/frontend/src/app/main/ui/workspace/viewport/pixel_overlay.cljs index ec83437d9e..8c133aeeca 100644 --- a/frontend/src/app/main/ui/workspace/viewport/pixel_overlay.cljs +++ b/frontend/src/app/main/ui/workspace/viewport/pixel_overlay.cljs @@ -7,6 +7,7 @@ (ns app.main.ui.workspace.viewport.pixel-overlay (:require [app.common.data :as d] + [app.common.data.macros :as dm] [app.common.pages.helpers :as cph] [app.common.uuid :as uuid] [app.main.data.modal :as modal] @@ -33,7 +34,7 @@ (let [image-nodes (dom/query-all svg-node "image:not([href^=data])") noop-fn (constantly nil)] (if (empty? image-nodes) - (rx/of nil) + (rx/of svg-node) (->> (rx/from image-nodes) (rx/mapcat (fn [image] @@ -43,7 +44,8 @@ (rx/mapcat wapi/read-file-as-data-url) (rx/tap (fn [data] (dom/set-attribute! image "href" data))) - (rx/reduce noop-fn))))))))) + (rx/reduce noop-fn))))) + (rx/map (fn [_] svg-node)))))) (defn- svg-as-data-url "Transforms SVG as data-url resolving any blob, http or https url to @@ -51,7 +53,11 @@ [svg] (let [svg-clone (.cloneNode svg true)] (->> (resolve-svg-images! svg-clone) - (rx/map (fn [_] (dom/svg-node->data-uri svg-clone)))))) + (rx/mapcat (fn [svg-node] + (let [xml (js/XMLSerializer.) + xmlstr (.serializeToString xml svg-node)] + (->> (rx/of xmlstr) + (rx/map #(dm/str "data:image/svg+xml;charset=utf-8," (js/encodeURIComponent %)))))))))) (defn format-viewbox [vbox] (str/join " " [(:x vbox 0) From 2fa06baa36bb87b5100f0615f753197de8af258a Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Wed, 24 Jan 2024 17:10:56 +0100 Subject: [PATCH 002/476] :bug: Fix incorrect props handling on profile registration --- backend/src/app/rpc/commands/auth.clj | 4 +- .../test/backend_tests/rpc_profile_test.clj | 50 +++++++------------ 2 files changed, 20 insertions(+), 34 deletions(-) diff --git a/backend/src/app/rpc/commands/auth.clj b/backend/src/app/rpc/commands/auth.clj index d765a5598e..fd0e206004 100644 --- a/backend/src/app/rpc/commands/auth.clj +++ b/backend/src/app/rpc/commands/auth.clj @@ -325,7 +325,9 @@ (defn register-profile [{:keys [::db/conn] :as cfg} {:keys [token fullname] :as params}] (let [claims (tokens/verify (::main/props cfg) {:token token :iss :prepared-register}) - params (assoc claims :fullname fullname) + params (-> claims + (into params) + (assoc :fullname fullname)) is-active (or (:is-active params) (not (contains? cf/flags :email-verification))) diff --git a/backend/test/backend_tests/rpc_profile_test.clj b/backend/test/backend_tests/rpc_profile_test.clj index a28f186c81..d7180461bb 100644 --- a/backend/test/backend_tests/rpc_profile_test.clj +++ b/backend/test/backend_tests/rpc_profile_test.clj @@ -11,6 +11,7 @@ [app.db :as db] [app.rpc :as-alias rpc] [app.auth :as auth] + [app.rpc.commands.profile :as profile] [app.tokens :as tokens] [app.util.time :as dt] [backend-tests.helpers :as th] @@ -240,41 +241,12 @@ token (get-in out [:result :token])] (t/is (string? token)) - - ;; try register without token - (let [data {::th/type :register-profile - :fullname "foobar" - :accept-terms-and-privacy true} - out (th/command! data)] - (let [error (:error out)] - (t/is (th/ex-info? error)) - (t/is (th/ex-of-type? error :validation)) - (t/is (th/ex-of-code? error :spec-validation)))) - - ;; try correct register - (let [data {::th/type :register-profile - :token token - :fullname "foobar" - :accept-terms-and-privacy true - :accept-newsletter-subscription true}] - (let [{:keys [result error]} (th/command! data)] - (t/is (nil? error)))) - )) - -(t/deftest prepare-register-and-register-profile-1 - (let [data {::th/type :prepare-register-profile - :email "user@example.com" - :password "foobar"} - out (th/command! data) - token (get-in out [:result :token])] - (t/is (string? token)) - - ;; try register without token (let [data {::th/type :register-profile :fullname "foobar" :accept-terms-and-privacy true} out (th/command! data)] + ;; (th/print-result! out) (let [error (:error out)] (t/is (th/ex-info? error)) (t/is (th/ex-of-type? error :validation)) @@ -284,12 +256,24 @@ (let [data {::th/type :register-profile :token token :fullname "foobar" + :utm_campaign "utma" + :mtm_campaign "mtma" :accept-terms-and-privacy true :accept-newsletter-subscription true}] - (let [{:keys [result error] :as out} (th/command! data)] - ;; (th/print-result! out) + (let [{:keys [result error]} (th/command! data)] (t/is (nil? error)))) - )) + + (let [profile (some-> (th/db-get :profile {:email "user@example.com"}) + (profile/decode-row))] + (t/is (= "penpot" (:auth-backend profile))) + (t/is (= "foobar" (:fullname profile))) + (t/is (false? (:is-active profile))) + (t/is (uuid? (:default-team-id profile))) + (t/is (uuid? (:default-project-id profile))) + + (let [props (:props profile)] + (t/is (= "utma" (:penpot/utm-campaign props))) + (t/is (= "mtma" (:penpot/mtm-campaign props))))))) (t/deftest prepare-register-and-register-profile-2 (with-redefs [app.rpc.commands.auth/register-retry-threshold (dt/duration 500)] From a7eb70a8e0a0aee3e6a65feb098a9c220c1796e9 Mon Sep 17 00:00:00 2001 From: Geek Squirrel Date: Wed, 1 May 2024 10:07:38 +0200 Subject: [PATCH 003/476] :globe_with_meridians: Add translations for: Chinese (Simplified). Currently translated at 99.4% (1371 of 1379 strings) :globe_with_meridians: Add translations for: Chinese (Simplified). Currently translated at 95.5% (1317 of 1379 strings) Co-authored-by: Geek Squirrel Translate-URL: https://hosted.weblate.org/projects/penpot/frontend/zh_Hans/ Translation: Penpot/frontend --- frontend/translations/zh_CN.po | 293 ++++++++++++++++++++++++++++----- 1 file changed, 255 insertions(+), 38 deletions(-) diff --git a/frontend/translations/zh_CN.po b/frontend/translations/zh_CN.po index 4771a15348..4ecda6cc02 100644 --- a/frontend/translations/zh_CN.po +++ b/frontend/translations/zh_CN.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "PO-Revision-Date: 2024-04-24 13:04+0000\n" "Last-Translator: Anonymous \n" -"Language-Team: Chinese (Simplified) " -"\n" +"Language-Team: Chinese (Simplified) \n" "Language: zh_CN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" @@ -76,11 +76,23 @@ msgstr "LDAP登录" msgid "auth.login-with-oidc-submit" msgstr "OpenID登录" -#: src/app/main/ui/settings/team-form.cljs, src/app/main/ui/auth/register.cljs, src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/onboarding/team_choice.cljs, src/app/main/ui/settings/access_tokens.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/settings/profile.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/settings/team-form.cljs, src/app/main/ui/auth/register.cljs, +#: src/app/main/ui/dashboard/team_form.cljs, +#: src/app/main/ui/onboarding/team_choice.cljs, +#: src/app/main/ui/settings/access_tokens.cljs, +#: src/app/main/ui/settings/feedback.cljs, +#: src/app/main/ui/settings/profile.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "auth.name.not-all-space" msgstr "姓名必须包含一些空格以外的字符。" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/onboarding/team_choice.cljs, src/app/main/ui/settings/access_tokens.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/settings/profile.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/auth/register.cljs, +#: src/app/main/ui/dashboard/team_form.cljs, +#: src/app/main/ui/onboarding/team_choice.cljs, +#: src/app/main/ui/settings/access_tokens.cljs, +#: src/app/main/ui/settings/feedback.cljs, +#: src/app/main/ui/settings/profile.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "auth.name.too-long" msgstr "姓名最多包含250个字符。" @@ -167,7 +179,6 @@ msgid "auth.terms-privacy-agreement" msgstr "创建账号意味着您认可我们的服务条例和隐私政策。" #: src/app/main/ui/auth/register.cljs -#, markdown msgid "auth.terms-privacy-agreement-md" msgstr "创建新账号,即代表你同意我们的[服务条例](%s)和[隐私政策](%s)。" @@ -333,7 +344,9 @@ msgstr "个人访问令牌" #: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.personal.description" -msgstr "个人访问令牌可被理解为密码认证的代替选项,常用于允许(第三方)应用访问Penpot内部API" +msgstr "" +"个人访问令牌可被理解为密码认证的代替选项,常用于允许(第三方)应用访问Penpot" +"内部API" #: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.token-will-expire" @@ -386,8 +399,8 @@ msgstr "复制 %s 个文件" #: src/app/main/ui/dashboard/grid.cljs msgid "dashboard.empty-placeholder-drafts" msgstr "" -"添加到库的文件将出现在这里。尝试分享你的文件或从我们的[库和模板](https://penpot.app/libraries-templates." -"html)添加。" +"添加到库的文件将出现在这里。尝试分享你的文件或从我们的[库和模板](https://" +"penpot.app/libraries-templates.html)添加。" msgid "dashboard.export-binary-multi" msgstr "下载 %s Penpot文件 (.penpot)" @@ -474,13 +487,15 @@ msgstr[1] "%s 个字体添加成功" msgid "dashboard.fonts.hero-text1" msgstr "" -"你在此上传的任何网络字体文件,将会被添加至本团队下文件的字体属性中的可用字体族列表中。拥有相同字体族名称的字体文件,将会按照字体族进行分组。你可以上传以" +"你在此上传的任何网络字体文件,将会被添加至本团队下文件的字体属性中的可用字体" +"族列表中。拥有相同字体族名称的字体文件,将会按照字体族进行分组。你可以上传以" "下格式的字体文件:**TTF,OTF和WOFF**(你只需要上传其中一种即可)。" msgid "dashboard.fonts.hero-text2" msgstr "" -"你应当只向Penpot上传你所拥有的字体,或是你持有使用许可的字体。点击[Penpot服务条例](https://penpot.app/terms." -"html)查看更多有关内容权利的章节。或许你也想了解一下[字体许可授权] (https://www.typography.com/faq)。" +"你应当只向Penpot上传你所拥有的字体,或是你持有使用许可的字体。点击[Penpot服务" +"条例](https://penpot.app/terms.html)查看更多有关内容权利的章节。或许你也想了" +"解一下[字体许可授权] (https://www.typography.com/faq)。" #: src/app/main/ui/dashboard/fonts.cljs msgid "dashboard.fonts.upload-all" @@ -488,9 +503,10 @@ msgstr "全部上传" msgid "dashboard.fonts.warning-text" msgstr "" -"我们在你的字体中检测到一个可能的问题,与不同操作系统的垂直度量有关。为了检查它,你可以使用字体垂直度量服务,如[这个](https://" -"vertical-metrics.netlify.app/)。此外,我们建议使用[Transfonter](https://transfonter." -"org/)来生成网络字体并修复错误。 " +"我们在你的字体中检测到一个可能的问题,与不同操作系统的垂直度量有关。为了检查" +"它,你可以使用字体垂直度量服务,如[这个](https://vertical-metrics.netlify." +"app/)。此外,我们建议使用[Transfonter](https://transfonter.org/)来生成网络字" +"体并修复错误。 " msgid "dashboard.import" msgstr "导入文件" @@ -747,7 +763,9 @@ msgid "dashboard.webhooks.create.success" msgstr "Webhook创建成功。" msgid "dashboard.webhooks.description" -msgstr "Webhooks是一种简单的方式,允许其他网站和应用程序在Penpot的某些事件发生时得到通知。我们将发送一个POST请求到你提供的每个URL。" +msgstr "" +"Webhooks是一种简单的方式,允许其他网站和应用程序在Penpot的某些事件发生时得到" +"通知。我们将发送一个POST请求到你提供的每个URL。" msgid "dashboard.webhooks.empty.add-one" msgstr "按“添加webhook”按钮添加一个。" @@ -855,7 +873,9 @@ msgstr "此邮箱[%s]已被标记为垃圾邮件或已被永久拉黑。" #: src/app/main/errors.cljs msgid "errors.feature-mismatch" -msgstr "看起来你正在打开一个启用了'%s'功能的文件,但当前penpot版本并不支持该功能或已将其禁用。" +msgstr "" +"看起来你正在打开一个启用了'%s'功能的文件,但当前penpot版本并不支持该功能或已" +"将其禁用。" #: src/app/main/errors.cljs msgid "errors.feature-not-supported" @@ -863,7 +883,9 @@ msgstr "不支持功能“%s”。" #: src/app/main/errors.cljs msgid "errors.file-feature-mismatch" -msgstr "看起来当前启用的功能,与正在打开的文件所依赖的功能不匹配。在打开文件前,需要应用对“%s”修改。" +msgstr "" +"看起来当前启用的功能,与正在打开的文件所依赖的功能不匹配。在打开文件前,需要" +"应用对“%s”修改。" #: src/app/main/ui/auth/verify_token.cljs, #: src/app/main/ui/settings/feedback.cljs, src/app/main/ui/dashboard/team.cljs @@ -965,7 +987,6 @@ msgstr "连接错误,无法访问 URL" msgid "errors.webhooks.invalid-uri" msgstr "网址未通过验证。" -#, fuzzy msgid "errors.webhooks.last-delivery" msgstr "上次交付不成功。" @@ -1011,25 +1032,25 @@ msgstr "话题" #: src/app/main/ui/settings/feedback.cljs msgid "feedback.subtitle" -msgstr "请说明你发邮件的原因,详细说明这是一个问题反馈、一个点子还是一个疑问。我们会尽快回复。" +msgstr "" +"请说明你发邮件的原因,详细说明这是一个问题反馈、一个点子还是一个疑问。我们会" +"尽快回复。" #: src/app/main/ui/settings/feedback.cljs msgid "feedback.title" msgstr "电子邮件" #: src/app/main/ui/settings/feedback.cljs -#, fuzzy msgid "feedback.twitter-go-to" -msgstr "前往Twtter" +msgstr "前往X(原Twitter)" #: src/app/main/ui/settings/feedback.cljs msgid "feedback.twitter-subtitle1" msgstr "这里可以帮助您解决技术问题。" #: src/app/main/ui/settings/feedback.cljs -#, fuzzy msgid "feedback.twitter-title" -msgstr "Twtter支持帐号" +msgstr "X(原Twitter)支持帐号" #: src/app/main/ui/settings/password.cljs msgid "generic.error" @@ -1440,7 +1461,8 @@ msgstr "已安装字体" #: src/app/main/ui/static.cljs msgid "labels.internal-error.desc-message" -msgstr "发生了一些不妙的事。请尝试重新操作。如果问题仍然存在,请联系我们以取得支持。" +msgstr "" +"发生了一些不妙的事。请尝试重新操作。如果问题仍然存在,请联系我们以取得支持。" #: src/app/main/ui/static.cljs msgid "labels.internal-error.main-message" @@ -1502,8 +1524,8 @@ msgstr "哎呀!" #: src/app/main/ui/dashboard/team.cljs msgid "labels.num-of-files" msgid_plural "labels.num-of-files" -msgstr[0] "1 个文档" -msgstr[1] "共 %s 个文档" +msgstr[0] "共1个文档" +msgstr[1] "共%s个文档" msgid "labels.num-of-frames" msgid_plural "labels.num-of-frames" @@ -1713,7 +1735,9 @@ msgid "media.solid" msgstr "纯色" msgid "modals.add-shared-confirm-empty.hint" -msgstr "你的库是空白的。一旦添加为共享库,此文档库中的素材就可被用于你的其他文档中。你确定要发布它吗?" +msgstr "" +"你的库是空白的。一旦添加为共享库,此文档库中的素材就可被用于你的其他文档中。" +"你确定要发布它吗?" #: src/app/main/ui/workspace/header.cljs, #: src/app/main/ui/dashboard/file_menu.cljs @@ -1899,13 +1923,15 @@ msgid_plural "modals.delete-shared-confirm.accept" msgstr[0] "删除文件" msgstr[1] "批量删除文件" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.activated.no-files-message" msgid_plural "modals.delete-shared-confirm.activated.no-files-message" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "没有文件引用它。" +msgstr[1] "没有文件引用它们。" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.activated.scd-message" msgid_plural "modals.delete-shared-confirm.activated.scd-message" msgstr[0] "该库被以下文档使用: " @@ -1987,7 +2013,9 @@ msgid "modals.leave-and-close-confirm.message" msgstr "您确定要离开 %s 团队吗?" msgid "modals.leave-and-reassign.forbidden" -msgstr "如果不能推选另一个成员作为团队所有者,你就无法离开团队。你或许想要删除该团队。" +msgstr "" +"如果不能推选另一个成员作为团队所有者,你就无法离开团队。你或许想要删除该团" +"队。" #: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-reassign.hint1" @@ -2168,22 +2196,28 @@ msgid "onboarding-v2.newsletter.privacy1" msgstr "我们关心隐私,您可在此阅读我们的 " msgid "onboarding-v2.newsletter.privacy2" -msgstr "我们将仅发送与您有关的邮件,您可以随时在其中任意一封邮件中点击取消订阅。" +msgstr "" +"我们将仅发送与您有关的邮件,您可以随时在其中任意一封邮件中点击取消订阅。" msgid "onboarding-v2.newsletter.updates" msgstr "向我发送一些产品更新(新功能,新版本,新修复等)。" msgid "onboarding-v2.welcome.desc1" -msgstr "Penpot是由Kaleidos及社区共同开发的开源软件,许多人已经在社区中互相帮助。每个人都可以通过以下方式进行协作:" +msgstr "" +"Penpot是由Kaleidos及社区共同开发的开源软件,许多人已经在社区中互相帮助。每个" +"人都可以通过以下方式进行协作:" msgid "onboarding-v2.welcome.desc2" -msgstr "一个与整个社区和Penpot核心团队学习、分享和讨论Penpot及其现在和未来的公共空间。" +msgstr "" +"一个与整个社区和Penpot核心团队学习、分享和讨论Penpot及其现在和未来的公共空" +"间。" msgid "onboarding-v2.welcome.desc2.title" msgstr "参与到社区中" msgid "onboarding-v2.welcome.desc3" -msgstr "在这里,您将了解如何协作进行翻译、功能需求提出、核心代码贡献、BUG修复等…" +msgstr "" +"在这里,您将了解如何协作进行翻译、功能需求提出、核心代码贡献、BUG修复等…" msgid "onboarding-v2.welcome.desc3.title" msgstr "贡献指南" @@ -2429,7 +2463,9 @@ msgstr "从事概念构想的工作" #: src/app/main/ui/onboarding/questions.cljs msgid "questions.your-feedback-will-help-us" -msgstr "你的反馈将帮助我们更好地理解你的习惯和偏好,以便我们不断改进Penpot,使其成为一个有用且好用的工具。" +msgstr "" +"你的反馈将帮助我们更好地理解你的习惯和偏好,以便我们不断改进Penpot,使其成为" +"一个有用且好用的工具。" #: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs, @@ -3040,7 +3076,6 @@ msgstr "点击时显示交互" msgid "viewer.header.sitemap" msgstr "站点地图" -#, fuzzy msgid "webhooks.last-delivery.success" msgstr "上次交付成功。" @@ -4959,3 +4994,185 @@ msgstr "更新" msgid "workspace.viewport.click-to-close-path" msgstr "单击以闭合路径" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.login-account-title" +msgstr "登录我的账号" + +#: src/app/main/ui/workspace/libraries.cljs +msgid "workspace.libraries.library-updates" +msgstr "共享库更新" + +msgid "workspace.options.component.swap" +msgstr "交换组件" + +msgid "workspace.options.guides.title" +msgstr "参考线" + +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs +msgid "modals.delete-unpublish-shared-confirm.activated.hint" +msgid_plural "modals.delete-unpublish-shared-confirm.activated.hint" +msgstr[0] "" +"这个文件中被其他文件引用的素材依然在那(其他文件的现有设计不会被破坏)。" +msgstr[1] "" +"这些文件中被其他文件引用的素材依然在那(其他文件的现有设计不会被破坏)。" + +msgid "dashboard.import.analyze-error.components-v2" +msgstr "文件已启用“组件v2”功能,但这个团队尚未支持该功能。" + +msgid "workspace.header.menu.toggle-dark-theme" +msgstr "切换到深色主题" + +msgid "workspace.header.menu.toggle-light-theme" +msgstr "切换到浅色主题" + +msgid "media.keep-aspect-ratio" +msgstr "保持宽高比" + +msgid "onboarding.team-modal.team-definition" +msgstr "团队是什么?" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "questions.describe-your-experience-working-on" +msgstr "对你经历的最好描述是:" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "questions.never-used-one" +msgstr "都没用过" + +#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs +msgid "settings.select-this-color" +msgstr "选择使用此样式的项目" + +msgid "shortcuts.toggle-snap-guides" +msgstr "吸附到参考线" + +msgid "shortcuts.toggle-snap-ruler-guide" +msgstr "吸附到标尺参考线" + +msgid "shortcuts.toggle-theme" +msgstr "更改主题" + +#: src/app/main/ui/workspace/sidebar/assets/common.cljs +msgid "workspace.assets.sidebar.components" +msgid_plural "workspace.assets.sidebar.components" +msgstr[0] "1个组件" +msgstr[1] "%s个组件" + +msgid "workspace.context-menu.grid-cells.area" +msgstr "新建区域" + +msgid "workspace.context-menu.grid-cells.create-board" +msgstr "新建画板" + +msgid "workspace.context-menu.grid-cells.merge" +msgstr "合并网格" + +msgid "workspace.context-menu.grid-track.column.add-after" +msgstr "在右侧添加一列" + +msgid "workspace.context-menu.grid-track.column.delete-shapes" +msgstr "删除此列及其内容" + +msgid "workspace.context-menu.grid-track.column.duplicate" +msgstr "复制此列" + +msgid "workspace.context-menu.grid-track.row.add-after" +msgstr "在下方添加一行" + +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.menu.enable-snap-ruler-guides" +msgstr "启用“吸附到标尺参考线”" + +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.menu.show-guides" +msgstr "显示参考线" + +msgid "workspace.layout_grid.editor.top-bar.locate.tooltip" +msgstr "定位网格布局" + +#: src/app/main/ui/workspace/libraries.cljs +msgid "workspace.libraries.unlink-library-btn" +msgstr "断开共享库" + +msgid "workspace.top-bar.view-only" +msgstr "**检查代码**(仅查看)" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.login-tagline" +msgstr "Penpot是一款自由开源的设计工具,用于「设计」和「开发」协同" + +msgid "modals.move-shared-confirm.accept" +msgid_plural "modals.move-shared-confirm.accept" +msgstr[0] "移动" +msgstr[1] "移动" + +#: src/app/main/data/users.cljs +msgid "errors.email-domain-not-allowed" +msgstr "不允许使用此域名" + +msgid "modals.move-shared-confirm.message" +msgid_plural "modals.move-shared-confirm.message" +msgstr[0] "你确定要移动这个共享库吗?" +msgstr[1] "你确定要移动这些共享库吗?" + +msgid "modals.move-shared-confirm.title" +msgid_plural "modals.move-shared-confirm.title" +msgstr[0] "移动共享库" +msgstr[1] "移动共享库" + +msgid "shortcuts.toggle-guides" +msgstr "显示/隐藏参考线" + +#: src/app/main/ui/workspace/sidebar/assets.cljs +msgid "workspace.assets.filter" +msgstr "过滤器" + +msgid "shortcuts.toggle-layout-grid" +msgstr "添加/移除网格布局" + +msgid "shortcuts.toggle-rulers" +msgstr "显示/隐藏标尺" + +#: src/app/main/ui/workspace/sidebar/assets.cljs +msgid "workspace.assets.sort" +msgstr "排序" + +msgid "workspace.context-menu.grid-track.column.add-before" +msgstr "在左侧添加一列" + +#: src/app/main/ui/workspace/context_menu.cljs +msgid "workspace.shape.menu.remove-grid" +msgstr "移除网格布局" + +msgid "workspace.context-menu.grid-track.column.delete" +msgstr "删除此列" + +msgid "workspace.context-menu.grid-track.row.duplicate" +msgstr "复制此行" + +msgid "workspace.context-menu.grid-track.row.add-before" +msgstr "在上方添加一行" + +msgid "workspace.context-menu.grid-track.row.delete" +msgstr "删除此行" + +msgid "workspace.context-menu.grid-track.row.delete-shapes" +msgstr "删除此行及其内容" + +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.menu.disable-snap-ruler-guides" +msgstr "禁用“吸附到标尺参考线”" + +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.menu.hide-guides" +msgstr "隐藏参考线" + +#: src/app/main/ui/workspace/libraries.cljs +msgid "workspace.libraries.loading" +msgstr "加载中…" + +#: src/app/main/ui/workspace/libraries.cljs +msgid "workspace.libraries.shared-library-btn" +msgstr "连接共享库" From 71687593fdc4ffc17d67689b43a2998533a0ed42 Mon Sep 17 00:00:00 2001 From: Linerly Date: Wed, 1 May 2024 10:07:39 +0200 Subject: [PATCH 004/476] :globe_with_meridians: Add translations for: Indonesian. Currently translated at 100.0% (1379 of 1379 strings) Co-authored-by: Linerly Translate-URL: https://hosted.weblate.org/projects/penpot/frontend/id/ Translation: Penpot/frontend --- frontend/translations/id.po | 230 ++++++++++++++++++++++++++++-------- 1 file changed, 181 insertions(+), 49 deletions(-) diff --git a/frontend/translations/id.po b/frontend/translations/id.po index 276c9c8313..5c07ed71c6 100644 --- a/frontend/translations/id.po +++ b/frontend/translations/id.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "PO-Revision-Date: 2024-04-24 12:55+0000\n" "Last-Translator: Anonymous \n" -"Language-Team: Indonesian " -"\n" +"Language-Team: Indonesian \n" "Language: id\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" @@ -80,11 +80,23 @@ msgstr "LDAP" msgid "auth.login-with-oidc-submit" msgstr "OpenID Connect" -#: src/app/main/ui/settings/team-form.cljs, src/app/main/ui/auth/register.cljs, src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/onboarding/team_choice.cljs, src/app/main/ui/settings/access_tokens.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/settings/profile.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/settings/team-form.cljs, src/app/main/ui/auth/register.cljs, +#: src/app/main/ui/dashboard/team_form.cljs, +#: src/app/main/ui/onboarding/team_choice.cljs, +#: src/app/main/ui/settings/access_tokens.cljs, +#: src/app/main/ui/settings/feedback.cljs, +#: src/app/main/ui/settings/profile.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "auth.name.not-all-space" msgstr "Nama harus berisi beberapa karakter selain spasi." -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/onboarding/team_choice.cljs, src/app/main/ui/settings/access_tokens.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/settings/profile.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/auth/register.cljs, +#: src/app/main/ui/dashboard/team_form.cljs, +#: src/app/main/ui/onboarding/team_choice.cljs, +#: src/app/main/ui/settings/access_tokens.cljs, +#: src/app/main/ui/settings/feedback.cljs, +#: src/app/main/ui/settings/profile.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "auth.name.too-long" msgstr "Nama harus berisi setidaknya 250 karakter." @@ -102,7 +114,8 @@ msgstr "Kata sandi berhasil diubah" #: src/app/main/ui/auth/recovery_request.cljs msgid "auth.notifications.profile-not-verified" -msgstr "Profil belum terverifikasi, harap verifikasi profil sebelum melanjutkan." +msgstr "" +"Profil belum terverifikasi, harap verifikasi profil sebelum melanjutkan." #: src/app/main/ui/auth/recovery_request.cljs msgid "auth.notifications.recovery-token-sent" @@ -173,7 +186,6 @@ msgstr "" "privasi kami." #: src/app/main/ui/auth/register.cljs -#, markdown msgid "auth.terms-privacy-agreement-md" msgstr "" "Ketika membuat akun baru, Anda menyetujui [persyaratan layanan](%s) dan " @@ -261,8 +273,8 @@ msgstr "Bersekutu!" #: src/app/main/ui/dashboard/projects.cljs msgid "dasboard.tutorial-hero.info" msgstr "" -"Pelajari dasarnya di Penpot sambil bersenang-senang dengan tutorial " -"langsung ini." +"Pelajari dasarnya di Penpot sambil bersenang-senang dengan tutorial langsung " +"ini." #: src/app/main/ui/dashboard/projects.cljs msgid "dasboard.tutorial-hero.start" @@ -403,8 +415,8 @@ msgstr "Gandakan % berkas" msgid "dashboard.empty-placeholder-drafts" msgstr "" "Berkas yang ditambahkan ke Pustaka akan muncul di sini. Coba membagikan " -"berkas Anda atau menambahkan dari [Pustaka & " -"templat](https://penpot.app/libraries-templates.html) kami." +"berkas Anda atau menambahkan dari [Pustaka & templat](https://penpot.app/" +"libraries-templates.html) kami." msgid "dashboard.export-binary-multi" msgstr "Unduh %s berkas Penpot (.penpot)" @@ -498,19 +510,19 @@ msgstr[0] "%s fon ditambahkan" msgid "dashboard.fonts.hero-text1" msgstr "" -"Fon web apa pun yang Anda unggah di sini akan ditambahkan ke daftar " -"keluarga fon yang tersedia di properti teks dari berkas dari tim ini. Fon " -"dengan nama keluarga fon yang sama akan dikelompokkan sebagai **keluarga " -"fon tunggal**. Anda dapat mengunggah fon dengan format berikut: **TTF, OTF, " -"dan WOFF** (hanya satu yang diperlukan)." +"Fon web apa pun yang Anda unggah di sini akan ditambahkan ke daftar keluarga " +"fon yang tersedia di properti teks dari berkas dari tim ini. Fon dengan nama " +"keluarga fon yang sama akan dikelompokkan sebagai **keluarga fon tunggal**. " +"Anda dapat mengunggah fon dengan format berikut: **TTF, OTF, dan WOFF** " +"(hanya satu yang diperlukan)." msgid "dashboard.fonts.hero-text2" msgstr "" "Anda seharusnya hanya mengunggah fon yang Anda miliki atau memiliki izin " "untuk menggunakannya dalam Penpot. Ketahui lebih lanjut dalam bagian Hak " -"konten (Content rights) dari [Ketentuan Layanan " -"Penpot](https://penpot.app/terms.html). Anda mungkin juga ingin membaca " -"tentang [lisensi fon](https://www.typography.com/faq)." +"konten (Content rights) dari [Ketentuan Layanan Penpot](https://penpot.app/" +"terms.html). Anda mungkin juga ingin membaca tentang [lisensi fon](https://" +"www.typography.com/faq)." #: src/app/main/ui/dashboard/fonts.cljs msgid "dashboard.fonts.upload-all" @@ -518,12 +530,12 @@ msgstr "Unggah semua" msgid "dashboard.fonts.warning-text" msgstr "" -"Kami telah mendeteksi masalah yang mungkin ada dalam fon Anda terkair " -"dengan metrik vertikal untuk berbagai sistem operasi. Supaya bisa " -"diperiksa, Anda dapat menggunakan layanan metrik vertikal fon seperti [yang " -"ini](https://vertical-metrics.netlify.app/). Sebagai tambahan, kami juga " -"menyarankan menggunakan [Transfonter](https://transfonter.org/) untuk " -"membuat fon web dan memperbaiki kesalahan. " +"Kami telah mendeteksi masalah yang mungkin ada dalam fon Anda terkair dengan " +"metrik vertikal untuk berbagai sistem operasi. Supaya bisa diperiksa, Anda " +"dapat menggunakan layanan metrik vertikal fon seperti [yang ini](https://" +"vertical-metrics.netlify.app/). Sebagai tambahan, kami juga menyarankan " +"menggunakan [Transfonter](https://transfonter.org/) untuk membuat fon web " +"dan memperbaiki kesalahan. " msgid "dashboard.import" msgstr "Impor berkas Penpot" @@ -532,7 +544,8 @@ msgid "dashboard.import.analyze-error" msgstr "Aduh! Kami tidak dapat mengimpor berkas ini" msgid "dashboard.import.analyze-error.components-v2" -msgstr "Berkas dengan komponen v2 diaktifkan tetapi tim ini belum mendukungnya." +msgstr "" +"Berkas dengan komponen v2 diaktifkan tetapi tim ini belum mendukungnya." msgid "dashboard.import.import-error" msgstr "Terdapat masalah saat mengimpor berkas. Berkasnya tidak terimpor." @@ -782,9 +795,8 @@ msgstr "Kaitan web berhasil dibuat." msgid "dashboard.webhooks.description" msgstr "" "Kaitan web (webhook) adalah cara yang sederhana untuk memperbolehkan situs " -"web dan aplikasi lain untuk diberi tahu ketika beberapa peristiwa terjadi " -"di Penpot. Kami mengirim permintaan POST untuk setiap URL yang Anda " -"sediakan." +"web dan aplikasi lain untuk diberi tahu ketika beberapa peristiwa terjadi di " +"Penpot. Kami mengirim permintaan POST untuk setiap URL yang Anda sediakan." msgid "dashboard.webhooks.empty.add-one" msgstr "Klik tombol \"Tambahkan kaitan web\" untuk menambahkan." @@ -946,8 +958,7 @@ msgstr "Sepertinya ini bukan gambar yang valid." #: src/app/main/ui/dashboard/team.cljs msgid "errors.member-is-muted" msgstr "" -"Profil yang Anda undang membisukan surel (laporan spam atau lompatan " -"tinggi)." +"Profil yang Anda undang membisukan surel (laporan spam atau lompatan tinggi)." #: src/app/main/ui/settings/password.cljs msgid "errors.password-invalid-confirmation" @@ -1013,7 +1024,6 @@ msgstr "Kesalahan koneksi, URL tidak dapat diraih" msgid "errors.webhooks.invalid-uri" msgstr "URL tidak melewati validasi." -#, fuzzy msgid "errors.webhooks.last-delivery" msgstr "Pengiriman terakhir tidak berhasil." @@ -1257,7 +1267,8 @@ msgid "inspect.empty.more-info" msgstr "Lebih banyak info tentang inspeksi" msgid "inspect.empty.select" -msgstr "Pilih bentuk, papan, atau grup untuk menginskpeksi properti dan kodenya" +msgstr "" +"Pilih bentuk, papan, atau grup untuk menginskpeksi properti dan kodenya" #: src/app/main/ui/inspect/right_sidebar.cljs msgid "inspect.tabs.code" @@ -1538,7 +1549,8 @@ msgstr "Kata sandi baru" #: src/app/main/ui/workspace/comments.cljs, #: src/app/main/ui/dashboard/comments.cljs msgid "labels.no-comments-available" -msgstr "Anda telah melihat semuanya! Notifikasi komentar baru akan muncul di sini." +msgstr "" +"Anda telah melihat semuanya! Notifikasi komentar baru akan muncul di sini." #: src/app/main/ui/dashboard/team.cljs msgid "labels.no-invitations" @@ -1551,8 +1563,7 @@ msgstr "Tekan tombol **Undang orang** untuk mengundang orang-orang ke tim ini." #: src/app/main/ui/static.cljs msgid "labels.not-found.desc-message" msgstr "" -"Laman ini mungkin tidak ada atau Anda tidak memiliki izin untuk " -"mengaksesnya." +"Laman ini mungkin tidak ada atau Anda tidak memiliki izin untuk mengaksesnya." #: src/app/main/ui/static.cljs msgid "labels.not-found.main-message" @@ -1968,12 +1979,14 @@ msgid "modals.delete-shared-confirm.accept" msgid_plural "modals.delete-shared-confirm.accept" msgstr[0] "Hapus berkas" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.activated.no-files-message" msgid_plural "modals.delete-shared-confirm.activated.no-files-message" msgstr[0] "Tidak diaktifkan dalam berkas mana pun." -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.activated.scd-message" msgid_plural "modals.delete-shared-confirm.activated.scd-message" msgstr[0] "Pustaka ini diaktifkan di sini: " @@ -2016,7 +2029,8 @@ msgstr "Apakah Anda yakin ingin mengeluarkan anggota ini dari tim?" msgid "modals.delete-team-member-confirm.title" msgstr "Keluarkan anggota tim" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-unpublish-shared-confirm.activated.hint" msgid_plural "modals.delete-unpublish-shared-confirm.activated.hint" msgstr[0] "" @@ -2047,8 +2061,8 @@ msgstr "Surel, dipisah dengan koma" msgid "modals.invite-member.repeated-invitation" msgstr "" -"Beberapa surel berasal dari anggota tim saat ini. Undangan mereka tidak " -"akan dikirim." +"Beberapa surel berasal dari anggota tim saat ini. Undangan mereka tidak akan " +"dikirim." #: src/app/main/ui/dashboard/team.cljs msgid "modals.invite-team-member.title" @@ -2110,8 +2124,8 @@ msgstr "Transfer kemilikan" #: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.hint" msgstr "" -"Jika Anda mentransfer kemilikan, Anda akan mengubah peran Anda ke Admin, " -"dan kehilangan beberapa izin pada tim ini. " +"Jika Anda mentransfer kemilikan, Anda akan mengubah peran Anda ke Admin, dan " +"kehilangan beberapa izin pada tim ini. " #: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.message" @@ -2262,7 +2276,8 @@ msgstr "" "pengembangan dan berita produk." msgid "onboarding-v2.newsletter.news" -msgstr "Kirimkan saya berita tentang Penpot (pos blog, tutorial video, siaran...)." +msgstr "" +"Kirimkan saya berita tentang Penpot (pos blog, tutorial video, siaran...)." msgid "onboarding-v2.newsletter.privacy1" msgstr "Kami peduli tentang privasi, di sini Anda dapat membaca " @@ -2292,8 +2307,8 @@ msgstr "Berpartisipasi dalam Komunitas" msgid "onboarding-v2.welcome.desc3" msgstr "" -"Di mana Anda akan menemukan cara berkolaborasi dengan terjemahan, " -"permintaan fitur, kontribusi inti, pemburuan kutu…" +"Di mana Anda akan menemukan cara berkolaborasi dengan terjemahan, permintaan " +"fitur, kontribusi inti, pemburuan kutu…" msgid "onboarding-v2.welcome.desc3.title" msgstr "Panduan berkontribusi" @@ -2427,7 +2442,8 @@ msgstr "Canva" #: src/app/main/ui/onboarding/questions.cljs msgid "questions.describe-your-experience-working-on" -msgstr "Bagaimana cara terbaik Anda menggambarkan pengalaman Anda mengerjakan..." +msgstr "" +"Bagaimana cara terbaik Anda menggambarkan pengalaman Anda mengerjakan..." #: src/app/main/ui/onboarding/questions.cljs msgid "questions.designer" @@ -3181,7 +3197,6 @@ msgstr "Tampilkan interaksi pada klik" msgid "viewer.header.sitemap" msgstr "Peta Situs" -#, fuzzy msgid "webhooks.last-delivery.success" msgstr "Pengiriman terakhir berhasil." @@ -3241,7 +3256,8 @@ msgstr "Buat sebuah kelompok" #: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.create-group-hint" -msgstr "Butir Anda akan dinamakan \"nama kelompok / nama butir\" secara otomatis" +msgstr "" +"Butir Anda akan dinamakan \"nama kelompok / nama butir\" secara otomatis" #: src/app/main/ui/workspace/sidebar/sitemap.cljs, #: src/app/main/ui/workspace/sidebar/assets.cljs, @@ -4429,7 +4445,8 @@ msgstr "Cari fon" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.select-a-shape" -msgstr "Pilih bentuk, papan, atau kelompok untuk menyeret koneksi ke papan lain." +msgstr "" +"Pilih bentuk, papan, atau kelompok untuk menyeret koneksi ke papan lain." #: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs msgid "workspace.options.selection-color" @@ -5160,3 +5177,118 @@ msgstr "Perbarui" msgid "workspace.viewport.click-to-close-path" msgstr "Klik untuk menutup jalur" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.login-account-title" +msgstr "Masuk ke akun saya" + +msgid "media.image.short" +msgstr "gambar" + +msgid "media.keep-aspect-ratio" +msgstr "Jaga rasio aspek" + +msgid "modals.move-shared-confirm.title" +msgid_plural "modals.move-shared-confirm.title" +msgstr[0] "Pindahkan pustaka" + +#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs +msgid "settings.select-this-color" +msgstr "Pilih item menggunakan gaya ini" + +msgid "shortcuts.toggle-layout-grid" +msgstr "Tambahkan/hapus tata letak kisi" + +msgid "shortcuts.toggle-rulers" +msgstr "Tampilkan / Sembunyikan penggaris" + +#: src/app/main/data/users.cljs +msgid "errors.auth-provider-not-allowed" +msgstr "Penyedia autentikasi tidak diperbolehkan untuk profil ini" + +#: src/app/main/data/users.cljs +msgid "errors.email-domain-not-allowed" +msgstr "Domain tidak diperbolehkan" + +msgid "modals.move-shared-confirm.message" +msgid_plural "modals.move-shared-confirm.message" +msgstr[0] "Apakah Anda yakin ingin memindahkan pustaka ini?" + +msgid "shortcuts.toggle-guides" +msgstr "Tampilkan / Sembunyikan panduan" + +msgid "onboarding.team-modal.team-definition" +msgstr "Apa itu tim?" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "questions.never-used-one" +msgstr "Tidak ada" + +msgid "shortcuts.toggle-snap-guides" +msgstr "Pasang ke panduan" + +msgid "shortcuts.toggle-snap-ruler-guide" +msgstr "Pasang ke panduan penggaris" + +#: src/app/main/ui/workspace/sidebar/assets/common.cljs +msgid "workspace.assets.sidebar.components" +msgid_plural "workspace.assets.sidebar.components" +msgstr[0] "%s komponen" + +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.menu.enable-snap-ruler-guides" +msgstr "Pasang ke panduan penggaris" + +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.menu.hide-guides" +msgstr "Sembunyikan panduan" + +msgid "workspace.layout_grid.editor.padding.expand" +msgstr "Tampilkan opsi bantalan 4 sisi" + +#: src/app/main/ui/workspace/context_menu.cljs +msgid "workspace.shape.menu.remove-grid" +msgstr "Hapus tata letak kisi" + +msgid "shortcuts.scale" +msgstr "Skala" + +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.menu.disable-snap-ruler-guides" +msgstr "Nonaktifkan pemasangan ke panduan penggaris" + +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.menu.show-guides" +msgstr "Tampilkan panduan" + +msgid "workspace.top-bar.view-only" +msgstr "**Menginspeksi kode** (Hanya Lihat)" + +#: src/app/main/ui/workspace/libraries.cljs +msgid "workspace.libraries.unlink-library-btn" +msgstr "Putuskan pustaka" + +#: src/app/main/ui/workspace/sidebar/assets.cljs +msgid "workspace.assets.filter" +msgstr "Penyaring" + +#: src/app/main/ui/workspace/sidebar/assets.cljs +msgid "workspace.assets.sort" +msgstr "Urutkan" + +msgid "workspace.layout_grid.editor.top-bar.locate.tooltip" +msgstr "Lokasi tata letak kisi" + +#: src/app/main/ui/workspace/libraries.cljs +msgid "workspace.libraries.shared-library-btn" +msgstr "Hubungkan pustaka" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.login-tagline" +msgstr "" +"Penpot adalah peralatan desain bebas & bersumber terbuka untuk kolaborasi " +"Desain dan Kode" + +msgid "modals.move-shared-confirm.accept" +msgid_plural "modals.move-shared-confirm.accept" +msgstr[0] "Pindahkan" From a749519d8ef8b4c701e71e29782669e14d04b0e2 Mon Sep 17 00:00:00 2001 From: Stas Haas Date: Wed, 1 May 2024 10:07:41 +0200 Subject: [PATCH 005/476] :globe_with_meridians: Add translations for: German. Currently translated at 100.0% (1379 of 1379 strings) Co-authored-by: Stas Haas Translate-URL: https://hosted.weblate.org/projects/penpot/frontend/de/ Translation: Penpot/frontend --- frontend/translations/de.po | 190 +++++++++++++++++++++--------------- 1 file changed, 109 insertions(+), 81 deletions(-) diff --git a/frontend/translations/de.po b/frontend/translations/de.po index a4736304af..124ef73e35 100644 --- a/frontend/translations/de.po +++ b/frontend/translations/de.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "PO-Revision-Date: 2024-04-25 13:07+0000\n" "Last-Translator: Stas Haas \n" -"Language-Team: German " -"\n" +"Language-Team: German \n" "Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" @@ -36,8 +36,8 @@ msgstr "Wollen Sie es einfach ausprobieren?" #: src/app/main/ui/auth/register.cljs msgid "auth.demo-warning" msgstr "" -"Das ist eine DEMO-VERSION, verwenden Sie es NICHT zum Arbeiten, die " -"Projekte werden regelmäßig gelöscht." +"Das ist eine DEMO-VERSION, verwenden Sie es NICHT zum Arbeiten, die Projekte " +"werden regelmäßig gelöscht." #: src/app/main/ui/auth/register.cljs, #: src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/auth/login.cljs @@ -67,8 +67,8 @@ msgstr "Anmelden" #: src/app/main/ui/auth/login.cljs msgid "auth.login-tagline" msgstr "" -"Penpot ist das kostenlose Open-Source-Design-Tool für die Zusammenarbeit " -"von Design und Code" +"Penpot ist das kostenlose Open-Source-Design-Tool für die Zusammenarbeit von " +"Design und Code" #: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.login-with-github-submit" @@ -90,11 +90,23 @@ msgstr "LDAP" msgid "auth.login-with-oidc-submit" msgstr "OpenID" -#: src/app/main/ui/settings/team-form.cljs, src/app/main/ui/auth/register.cljs, src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/onboarding/team_choice.cljs, src/app/main/ui/settings/access_tokens.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/settings/profile.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/settings/team-form.cljs, src/app/main/ui/auth/register.cljs, +#: src/app/main/ui/dashboard/team_form.cljs, +#: src/app/main/ui/onboarding/team_choice.cljs, +#: src/app/main/ui/settings/access_tokens.cljs, +#: src/app/main/ui/settings/feedback.cljs, +#: src/app/main/ui/settings/profile.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "auth.name.not-all-space" msgstr "Der Name darf keine Leerzeichen enthalten." -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/onboarding/team_choice.cljs, src/app/main/ui/settings/access_tokens.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/settings/profile.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/auth/register.cljs, +#: src/app/main/ui/dashboard/team_form.cljs, +#: src/app/main/ui/onboarding/team_choice.cljs, +#: src/app/main/ui/settings/access_tokens.cljs, +#: src/app/main/ui/settings/feedback.cljs, +#: src/app/main/ui/settings/profile.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "auth.name.too-long" msgstr "Der Name darf höchstens 250 Zeichen lang sein." @@ -118,7 +130,8 @@ msgstr "" #: src/app/main/ui/auth/recovery_request.cljs msgid "auth.notifications.recovery-token-sent" -msgstr "Der Link zur Wiederherstellung des Passworts wurde an Ihre E-Mail gesendet." +msgstr "" +"Der Link zur Wiederherstellung des Passworts wurde an Ihre E-Mail gesendet." #: src/app/main/ui/auth/verify_token.cljs msgid "auth.notifications.team-invitation-accepted" @@ -185,11 +198,10 @@ msgstr "" "und Datenschutzrichtlinien zu." #: src/app/main/ui/auth/register.cljs -#, markdown msgid "auth.terms-privacy-agreement-md" msgstr "" -"Wenn Sie ein neues Konto erstellen, stimmen Sie unseren " -"[Nutzungsbedingungen](%s) und [Datenschutzrichtlinien](%s) zu." +"Wenn Sie ein neues Konto erstellen, stimmen Sie unseren [Nutzungsbedingungen]" +"(%s) und [Datenschutzrichtlinien](%s) zu." #: src/app/main/ui/auth/register.cljs msgid "auth.verification-email-sent" @@ -287,7 +299,8 @@ msgstr "Praktisches Tutorial" #: src/app/main/ui/dashboard/projects.cljs msgid "dasboard.walkthrough-hero.info" -msgstr "Erkunden Sie Penpot um mehr über die wichtigsten Funktionen zu erfahren." +msgstr "" +"Erkunden Sie Penpot um mehr über die wichtigsten Funktionen zu erfahren." #: src/app/main/ui/dashboard/projects.cljs msgid "dasboard.walkthrough-hero.start" @@ -362,9 +375,9 @@ msgstr "Persönliche Zugangstoken" #: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.personal.description" msgstr "" -"Persönliche Zugangstoken stellen eine Alternative zu unserem " -"Login/Passwort-Authentifizierungssystem dar und können verwendet werden, um " -"einer Anwendung den Zugriff auf die interne Penpot-API zu ermöglichen" +"Persönliche Zugangstoken stellen eine Alternative zu unserem Login/Passwort-" +"Authentifizierungssystem dar und können verwendet werden, um einer Anwendung " +"den Zugriff auf die interne Penpot-API zu ermöglichen" #: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.token-will-expire" @@ -469,13 +482,12 @@ msgstr "* kann Komponenten, Grafiken, Farben und/oder Textstile enthalten." msgid "dashboard.export.explain" msgstr "" "Eine oder mehrere Dateien, die Sie exportieren möchten, verwenden geteilte " -"Bibliotheken. Was möchten Sie mit den Assets* aus diesen Bibliotheken " -"machen?" +"Bibliotheken. Was möchten Sie mit den Assets* aus diesen Bibliotheken machen?" msgid "dashboard.export.options.all.message" msgstr "" -"Dateien mit geteilten Bibliotheken werden exportiert, und ihre " -"Verknüpfungen bleiben erhalten." +"Dateien mit geteilten Bibliotheken werden exportiert, und ihre Verknüpfungen " +"bleiben erhalten." msgid "dashboard.export.options.all.title" msgstr "Geteilte Bibliotheken exportieren" @@ -520,18 +532,17 @@ msgstr[1] "%s Schriftarten hinzugefügt" msgid "dashboard.fonts.hero-text1" msgstr "" "Jede Webschriftart, die Sie hier hochladen, wird der Liste der Schriftarten " -"hinzugefügt, die in den Texteigenschaften der Dateien dieses Teams " -"verfügbar ist. Schriftarten mit dem gleichen Schriftfamilien-Namen werden " -"als **eine einzige Schriftfamilie** gruppiert. Sie können Schriftarten in " -"den folgenden Formaten hochladen: **TTF, OTF und WOFF** (nur eine wird " -"benötigt)." +"hinzugefügt, die in den Texteigenschaften der Dateien dieses Teams verfügbar " +"ist. Schriftarten mit dem gleichen Schriftfamilien-Namen werden als **eine " +"einzige Schriftfamilie** gruppiert. Sie können Schriftarten in den folgenden " +"Formaten hochladen: **TTF, OTF und WOFF** (nur eine wird benötigt)." msgid "dashboard.fonts.hero-text2" msgstr "" "Sie sollten nur Schriftarten hochladen, die Sie besitzen oder für die Sie " "eine Lizenz zur Verwendung in Penpot verfügen. Weitere Informationen finden " -"Sie im Abschnitt über Inhaltsrechte in den [Nutzungsbedingungen von " -"Penpot](https://penpot.app/terms.html). Mehr über die [Lizenzierung von " +"Sie im Abschnitt über Inhaltsrechte in den [Nutzungsbedingungen von Penpot]" +"(https://penpot.app/terms.html). Mehr über die [Lizenzierung von " "Schriftarten erfahren Sie hier](https://www.typography.com/faq)." #: src/app/main/ui/dashboard/fonts.cljs @@ -540,12 +551,12 @@ msgstr "Alle hochladen" msgid "dashboard.fonts.warning-text" msgstr "" -"Wir haben ein mögliches Problem in Ihren Schriften festgestellt, das mit " -"den vertikalen Metriken für verschiedene Betriebssysteme zusammenhängt. Um " -"dies zu überprüfen, können Sie Online-Dienste wie " -"[diesen](https://vertical-metrics.netlify.app/) verwenden. Außerdem " -"empfehlen wir die Verwendung von [Transfonter](https://transfonter.org/), " -"um Webfonts zu generieren und Fehler zu beheben. " +"Wir haben ein mögliches Problem in Ihren Schriften festgestellt, das mit den " +"vertikalen Metriken für verschiedene Betriebssysteme zusammenhängt. Um dies " +"zu überprüfen, können Sie Online-Dienste wie [diesen](https://vertical-" +"metrics.netlify.app/) verwenden. Außerdem empfehlen wir die Verwendung von " +"[Transfonter](https://transfonter.org/), um Webfonts zu generieren und " +"Fehler zu beheben. " msgid "dashboard.import" msgstr "Dateien importieren" @@ -560,8 +571,8 @@ msgstr "" msgid "dashboard.import.import-error" msgstr "" -"Beim Importieren der Datei ist ein Fehler aufgetreten. Die Datei wurde " -"nicht importiert." +"Beim Importieren der Datei ist ein Fehler aufgetreten. Die Datei wurde nicht " +"importiert." msgid "dashboard.import.import-message" msgstr "%s Dateien wurden erfolgreich importiert." @@ -799,7 +810,8 @@ msgid "dashboard.webhooks.active" msgstr "Aktiv" msgid "dashboard.webhooks.active.explain" -msgstr "Wenn dieser Hook ausgelöst wird, dann werden die Eventdetails übermittelt" +msgstr "" +"Wenn dieser Hook ausgelöst wird, dann werden die Eventdetails übermittelt" msgid "dashboard.webhooks.content-type" msgstr "Inhaltstyp" @@ -880,7 +892,8 @@ msgid "errors.auth-provider-not-configured" msgstr "Authentifizierungsanbieter ist nicht konfiguriert." msgid "errors.auth.unable-to-login" -msgstr "Anscheinend sind Sie nicht authentifiziert oder die Sitzung ist abgelaufen." +msgstr "" +"Anscheinend sind Sie nicht authentifiziert oder die Sitzung ist abgelaufen." msgid "errors.bad-font" msgstr "Die Schriftart %s konnte nicht geladen werden" @@ -916,7 +929,8 @@ msgstr "Domain nicht zulässig" #: src/app/main/ui/settings/change_email.cljs, #: src/app/main/ui/dashboard/team.cljs msgid "errors.email-has-permanent-bounces" -msgstr "Die E-Mail-Adresse «%s» hat viele permanente Unzustellbarkeitsberichte." +msgstr "" +"Die E-Mail-Adresse «%s» hat viele permanente Unzustellbarkeitsberichte." #: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs, #: src/app/main/ui/auth/recovery_request.cljs @@ -944,8 +958,8 @@ msgstr "Die Funktion '%s' wird nicht unterstützt." #: src/app/main/errors.cljs msgid "errors.file-feature-mismatch" msgstr "" -"Es scheint eine Nichtübereinstimmung zwischen den aktivierten Funktionen " -"und den Funktionen der Datei zu geben. Die Migrationen für '%s' müssen " +"Es scheint eine Nichtübereinstimmung zwischen den aktivierten Funktionen und " +"den Funktionen der Datei zu geben. Die Migrationen für '%s' müssen " "durchgeführt werden, bevor die Datei geöffnet werden kann." #: src/app/main/ui/auth/verify_token.cljs, @@ -979,8 +993,7 @@ msgstr "Das Bild ist zu groß, um eingefügt zu werden." #: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs msgid "errors.media-type-mismatch" msgstr "" -"Es scheint, dass der Bildinhalt nicht mit der Dateierweiterung " -"übereinstimmt." +"Es scheint, dass der Bildinhalt nicht mit der Dateierweiterung übereinstimmt." #: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs msgid "errors.media-type-not-allowed" @@ -989,8 +1002,8 @@ msgstr "Es scheint, dass dies kein gültiges Bild ist." #: src/app/main/ui/dashboard/team.cljs msgid "errors.member-is-muted" msgstr "" -"In dem von Ihnen eingeladenen Profil sind E-Mails stummgeschaltet " -"(Spam-Berichte oder hohe Unzustellbarkeitsberichte)." +"In dem von Ihnen eingeladenen Profil sind E-Mails stummgeschaltet (Spam-" +"Berichte oder hohe Unzustellbarkeitsberichte)." #: src/app/main/ui/settings/password.cljs msgid "errors.password-invalid-confirmation" @@ -1032,8 +1045,8 @@ msgstr "Das Mitglied, das Sie zuzuordnen möchten, existiert nicht." msgid "errors.team-leave.owner-cant-leave" msgstr "" -"Der Besitzer kann das Team nicht verlassen, Sie müssen die Besitzerrolle " -"neu zuweisen." +"Der Besitzer kann das Team nicht verlassen, Sie müssen die Besitzerrolle neu " +"zuweisen." #: src/app/main/data/media.cljs, #: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, @@ -1106,8 +1119,8 @@ msgstr "Betreff" #: src/app/main/ui/settings/feedback.cljs msgid "feedback.subtitle" msgstr "" -"Bitte beschreiben Sie den Grund Ihrer E-Mail und geben Sie an, ob es sich " -"um ein Problem, eine Idee oder einem Bedenken handelt. Ein Mitglied unseres " +"Bitte beschreiben Sie den Grund Ihrer E-Mail und geben Sie an, ob es sich um " +"ein Problem, eine Idee oder einem Bedenken handelt. Ein Mitglied unseres " "Teams wird Ihnen so schnell wie möglich antworten." #: src/app/main/ui/settings/feedback.cljs @@ -1294,16 +1307,16 @@ msgstr "Großbuchstaben" msgid "inspect.empty.help" msgstr "" -"Für weitere Informationen zum Thema \"Auswerten von " -"Design-Spezifikationen\", besuchen Sie bitte das Penpot-Hilfezentrum" +"Für weitere Informationen zum Thema \"Auswerten von Design-" +"Spezifikationen\", besuchen Sie bitte das Penpot-Hilfezentrum" msgid "inspect.empty.more-info" msgstr "Weitere Informationen zur Inspektion" msgid "inspect.empty.select" msgstr "" -"Wählen Sie eine Form, ein Board oder eine Gruppe aus, um deren " -"Eigenschaften und Code zu überprüfen" +"Wählen Sie eine Form, ein Board oder eine Gruppe aus, um deren Eigenschaften " +"und Code zu überprüfen" #: src/app/main/ui/inspect/right_sidebar.cljs msgid "inspect.tabs.code" @@ -2030,13 +2043,15 @@ msgid_plural "modals.delete-shared-confirm.accept" msgstr[0] "Datei löschen" msgstr[1] "Dateien löschen" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.activated.no-files-message" msgid_plural "modals.delete-shared-confirm.activated.no-files-message" msgstr[0] "Es ist in keiner Datei aktiviert." msgstr[1] "Sie sind in keiner Datei aktiviert." -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.activated.scd-message" msgid_plural "modals.delete-shared-confirm.activated.scd-message" msgstr[0] "Diese Bibliothek ist hier aktiviert: " @@ -2076,13 +2091,15 @@ msgstr "Mitglied löschen" #: src/app/main/ui/dashboard/team.cljs msgid "modals.delete-team-member-confirm.message" -msgstr "Sind Sie sicher, dass Sie dieses Mitglied aus dem Team löschen möchten?" +msgstr "" +"Sind Sie sicher, dass Sie dieses Mitglied aus dem Team löschen möchten?" #: src/app/main/ui/dashboard/team.cljs msgid "modals.delete-team-member-confirm.title" msgstr "Teammitglied löschen" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-unpublish-shared-confirm.activated.hint" msgid_plural "modals.delete-unpublish-shared-confirm.activated.hint" msgstr[0] "" @@ -2135,8 +2152,8 @@ msgstr "Sind Sie sicher, dass Sie das %s-Team verlassen wollen?" msgid "modals.leave-and-reassign.forbidden" msgstr "" -"Sie können das Team nicht verlassen, wenn es kein anderes Mitglied gibt, " -"das Sie zum Besitzer ernennen können. Sie können das Team jedoch löschen." +"Sie können das Team nicht verlassen, wenn es kein anderes Mitglied gibt, das " +"Sie zum Besitzer ernennen können. Sie können das Team jedoch löschen." #: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-reassign.hint1" @@ -2192,12 +2209,13 @@ msgstr "Befördern" #: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.hint" msgstr "" -"Wenn Sie die Eigentümerschaft übertragen, ändern Sie Ihre Rolle in Admin " -"und verlieren einige Berechtigungen für dieses Team. " +"Wenn Sie die Eigentümerschaft übertragen, ändern Sie Ihre Rolle in Admin und " +"verlieren einige Berechtigungen für dieses Team. " #: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.message" -msgstr "Sind Sie sicher, dass Sie diesen Benutzer zum Eigentümer befördern wollen?" +msgstr "" +"Sind Sie sicher, dass Sie diesen Benutzer zum Eigentümer befördern wollen?" #: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.title" @@ -2223,9 +2241,8 @@ msgstr "Als gemeinsam genutzte Bibliothek entfernen" #: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.remove-shared-confirm.hint" msgstr "" -"Sobald Sie diese Datai aus den geteilten Bibliotheken entfernen, steht " -"Ihnen die Bibliothek dieser Datei nicht mehr in anderen Dateien zur " -"Verfügung." +"Sobald Sie diese Datai aus den geteilten Bibliotheken entfernen, steht Ihnen " +"die Bibliothek dieser Datei nicht mehr in anderen Dateien zur Verfügung." #: src/app/main/ui/workspace/header.cljs, #: src/app/main/ui/dashboard/file_menu.cljs @@ -2247,8 +2264,10 @@ msgstr[1] "Veröffentlichung aufheben" #: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.unpublish-shared-confirm.message" msgid_plural "modals.unpublish-shared-confirm.message" -msgstr[0] "Möchten Sie die Veröffentlichung dieser Bibliothek wirklich aufheben?" -msgstr[1] "Möchten Sie die Veröffentlichung dieser Bibliotheken wirklich aufheben?" +msgstr[0] "" +"Möchten Sie die Veröffentlichung dieser Bibliothek wirklich aufheben?" +msgstr[1] "" +"Möchten Sie die Veröffentlichung dieser Bibliotheken wirklich aufheben?" #: src/app/main/ui/workspace/header.cljs, #: src/app/main/ui/dashboard/file_menu.cljs @@ -2308,8 +2327,8 @@ msgstr "Einladungslink kopiert" #: src/app/main/ui/settings/delete_account.cljs msgid "notifications.profile-deletion-not-allowed" msgstr "" -"Sie können Ihr Profil nicht löschen. Weisen Sie Ihre Teams neu zu, bevor " -"Sie fortfahren." +"Sie können Ihr Profil nicht löschen. Weisen Sie Ihre Teams neu zu, bevor Sie " +"fortfahren." #: src/app/main/ui/settings/profile.cljs, src/app/main/ui/settings/options.cljs msgid "notifications.profile-saved" @@ -2321,9 +2340,8 @@ msgstr "Verifizierungs-E-Mail an %s gesendet. Prüfen Sie Ihren Posteingang!" msgid "onboarding-v2.before-start.desc1" msgstr "" -"Sie sollten wissen, dass es viele Ressourcen gibt, die Ihnen den Einstieg " -"in Penpot erleichtern, wie z. B. das Benutzerhandbuch und unseren " -"Youtube-Kanal." +"Sie sollten wissen, dass es viele Ressourcen gibt, die Ihnen den Einstieg in " +"Penpot erleichtern, wie z. B. das Benutzerhandbuch und unseren Youtube-Kanal." msgid "onboarding-v2.before-start.desc2" msgstr "" @@ -2383,8 +2401,8 @@ msgstr "Mitwirkung in der Community" msgid "onboarding-v2.welcome.desc3" msgstr "" -"Hier erfahren Sie, wie Sie bei Übersetzungen, Feature Requests, " -"Core-Entwicklung und der Fehlersuche helfen können…" +"Hier erfahren Sie, wie Sie bei Übersetzungen, Feature Requests, Core-" +"Entwicklung und der Fehlersuche helfen können…" msgid "onboarding-v2.welcome.desc3.title" msgstr "Leitfaden für Mitwirkende" @@ -2455,8 +2473,8 @@ msgstr "Ein Team erstellen" msgid "onboarding.team-modal.create-team-desc" msgstr "" -"In einem Team können Sie mit anderen Penpot-Nutzern zusammenarbeiten, die " -"an denselben Dateien und Projekten arbeiten." +"In einem Team können Sie mit anderen Penpot-Nutzern zusammenarbeiten, die an " +"denselben Dateien und Projekten arbeiten." msgid "onboarding.team-modal.create-team-feature-1" msgstr "Unbegrenzte Anzahl von Dateien und Projekten" @@ -2519,7 +2537,8 @@ msgstr "Canva" #: src/app/main/ui/onboarding/questions.cljs msgid "questions.describe-your-experience-working-on" -msgstr "Wie würden Sie Ihre Erfahrungen bei der Arbeit an … am besten beschreiben?" +msgstr "" +"Wie würden Sie Ihre Erfahrungen bei der Arbeit an … am besten beschreiben?" #: src/app/main/ui/onboarding/questions.cljs msgid "questions.designer" @@ -3357,8 +3376,8 @@ msgstr "Gruppe erstellen" #: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.create-group-hint" msgstr "" -"Ihre Elemente werden automatisch nach diesem Schema benannt: \"Gruppenname " -"/ Elementname\"" +"Ihre Elemente werden automatisch nach diesem Schema benannt: \"Gruppenname / " +"Elementname\"" #: src/app/main/ui/workspace/sidebar/sitemap.cljs, #: src/app/main/ui/workspace/sidebar/assets.cljs, @@ -3815,8 +3834,7 @@ msgstr "Laden…" #: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.no-libraries-need-sync" msgstr "" -"Es gibt keine gemeinsam genutzte Bibliotheken, die aktualisiert werden " -"müssen" +"Es gibt keine gemeinsam genutzte Bibliotheken, die aktualisiert werden müssen" #: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.no-matches-for" @@ -5192,7 +5210,6 @@ msgstr "Typografien (%s)" msgid "workspace.top-bar.read-only.done" msgstr "Fertig" -#, markdown msgid "workspace.top-bar.view-only" msgstr "**Code inspizieren** (nur ansehen)" @@ -5329,3 +5346,14 @@ msgstr "Aktualisieren" msgid "workspace.viewport.click-to-close-path" msgstr "Klicken Sie, um den Pfad zu schließen" + +msgid "shortcuts.toggle-snap-ruler-guide" +msgstr "An den Hilfslinien des Lineals ausrichten" + +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.menu.disable-snap-ruler-guides" +msgstr "An den Hilfslinien des Lineals ausrichten deaktivieren" + +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.menu.enable-snap-ruler-guides" +msgstr "An den Hilfslinien des Lineals ausrichten" From cd03794a093a955b490630cd88526f7dfb424eb6 Mon Sep 17 00:00:00 2001 From: Yaron Shahrabani Date: Wed, 1 May 2024 10:07:42 +0200 Subject: [PATCH 006/476] :globe_with_meridians: Add translations for: Hebrew. Currently translated at 100.0% (1379 of 1379 strings) Co-authored-by: Yaron Shahrabani Translate-URL: https://hosted.weblate.org/projects/penpot/frontend/he/ Translation: Penpot/frontend --- frontend/translations/he.po | 168 +++++++++++++++++++++++++++--------- 1 file changed, 126 insertions(+), 42 deletions(-) diff --git a/frontend/translations/he.po b/frontend/translations/he.po index ba1ffe02e3..28143f0cb4 100644 --- a/frontend/translations/he.po +++ b/frontend/translations/he.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "PO-Revision-Date: 2024-04-25 13:07+0000\n" "Last-Translator: Yaron Shahrabani \n" -"Language-Team: Hebrew " -"\n" +"Language-Team: Hebrew \n" "Language: he\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" @@ -18,7 +18,8 @@ msgstr "כבר יש לך חשבון?" #: src/app/main/ui/auth/register.cljs msgid "auth.check-your-email" -msgstr "נא לחפש בדוא״ל הנכנס שלך וללחוץ על הקישור כדי לאמת ולהתחיל להשתמש ב־Penpot." +msgstr "" +"נא לחפש בדוא״ל הנכנס שלך וללחוץ על הקישור כדי לאמת ולהתחיל להשתמש ב־Penpot." #: src/app/main/ui/auth/recovery.cljs msgid "auth.confirm-password" @@ -34,7 +35,8 @@ msgstr "מעניין אותך רק להתנסות?" #: src/app/main/ui/auth/register.cljs msgid "auth.demo-warning" -msgstr "זה שירות ניסיוני, לא להשתמש בו לעבודה אמתית, המיזמים יימחקו מדי פעם בפעם." +msgstr "" +"זה שירות ניסיוני, לא להשתמש בו לעבודה אמתית, המיזמים יימחקו מדי פעם בפעם." #: src/app/main/ui/auth/register.cljs, #: src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/auth/login.cljs @@ -85,11 +87,23 @@ msgstr "LDAP" msgid "auth.login-with-oidc-submit" msgstr "‎OpenID Connect" -#: src/app/main/ui/settings/team-form.cljs, src/app/main/ui/auth/register.cljs, src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/onboarding/team_choice.cljs, src/app/main/ui/settings/access_tokens.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/settings/profile.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/settings/team-form.cljs, src/app/main/ui/auth/register.cljs, +#: src/app/main/ui/dashboard/team_form.cljs, +#: src/app/main/ui/onboarding/team_choice.cljs, +#: src/app/main/ui/settings/access_tokens.cljs, +#: src/app/main/ui/settings/feedback.cljs, +#: src/app/main/ui/settings/profile.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "auth.name.not-all-space" msgstr "השם חייב להכיל תווים שאינם רווחים." -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/onboarding/team_choice.cljs, src/app/main/ui/settings/access_tokens.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/settings/profile.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/auth/register.cljs, +#: src/app/main/ui/dashboard/team_form.cljs, +#: src/app/main/ui/onboarding/team_choice.cljs, +#: src/app/main/ui/settings/access_tokens.cljs, +#: src/app/main/ui/settings/feedback.cljs, +#: src/app/main/ui/settings/profile.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "auth.name.too-long" msgstr "השם חייב להכיל 250 תווים לכל היותר." @@ -176,7 +190,6 @@ msgid "auth.terms-privacy-agreement" msgstr "יצירת חשבון חדש מהווה את הסכמתך לתנאי השירות ולמדיניות הפרטיות." #: src/app/main/ui/auth/register.cljs -#, markdown msgid "auth.terms-privacy-agreement-md" msgstr "" "עצם יצירת חשבון חדש מהווה הסכמה ל[תנאי השירות](%s) ול[מדיניות הפרטיות](%s) " @@ -254,7 +267,8 @@ msgstr "ניהול צוות" #: src/app/main/ui/dashboard/projects.cljs msgid "dasboard.team-hero.text" -msgstr "Penpot מיועד לצוותים. אפשר להזמין חברים כדי לעבוד ביחד על מיזמים וקבצים" +msgstr "" +"Penpot מיועד לצוותים. אפשר להזמין חברים כדי לעבוד ביחד על מיזמים וקבצים" #: src/app/main/ui/dashboard/projects.cljs msgid "dasboard.team-hero.title" @@ -427,7 +441,8 @@ msgstr "ייצוא" #: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.how-to" -msgstr "אפשר להוסיף הגדרות ייצוא לרכיבים ממאפייני העיצוב (מתחתית הסרגל שמשמאל)." +msgstr "" +"אפשר להוסיף הגדרות ייצוא לרכיבים ממאפייני העיצוב (מתחתית הסרגל שמשמאל)." #: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.how-to-link" @@ -493,17 +508,17 @@ msgstr[3] "נוספו %s גופנים" msgid "dashboard.fonts.hero-text1" msgstr "" -"כל גופן דפדפן שיועלה כאן יתווסף לרשימת משפחת הגופנים שזמין במאפייני הטקסט " -"של הקבצים של הצוות הזה. גופנים מאותו שם של משפחת גופנים יקובצו תחת **משפחת " +"כל גופן דפדפן שיועלה כאן יתווסף לרשימת משפחת הגופנים שזמין במאפייני הטקסט של " +"הקבצים של הצוות הזה. גופנים מאותו שם של משפחת גופנים יקובצו תחת **משפחת " "גופנים יחידה**. ניתן להעלות גופנים מהסוגים הבאים: **TTF,‏ OTF ו־WOFF** (אחד " "הסוגים יספיק)." msgid "dashboard.fonts.hero-text2" msgstr "" "עליך להעלות גופנים בבעלותך או שיש לך רישיון להשתמש בהם ב־Penpot. ניתן למצוא " -"על כך מידע נוסף בסעיף זכויות התוכן של [תנאי השירות של " -"Penpot](https://penpot.app/terms.html). אפשר גם לקרוא גם על [רישוי " -"גופנים](https://www.typography.com/faq)." +"על כך מידע נוסף בסעיף זכויות התוכן של [תנאי השירות של Penpot](https://penpot." +"app/terms.html). אפשר גם לקרוא גם על [רישוי גופנים](https://www.typography." +"com/faq)." #: src/app/main/ui/dashboard/fonts.cljs msgid "dashboard.fonts.upload-all" @@ -512,9 +527,9 @@ msgstr "להעלות הכול" msgid "dashboard.fonts.warning-text" msgstr "" "זיהינו בעיה אפשרית בגודפים שלך ביחס למדדים אנכיים למערכת הפעלה שונות. כדי " -"לבדוק את זה אפשר להשתמש בשירות מדידות אנכיות של גופנים כגון " -"[זה]](https://vertical-metrics.netlify.app/). בנוסף, המלצתנו היא להשתמש " -"ב־[Transfonter](https://transfonter.org/) כדי לייצר גופני רשת ולתקן שגיאות. " +"לבדוק את זה אפשר להשתמש בשירות מדידות אנכיות של גופנים כגון [זה]](https://" +"vertical-metrics.netlify.app/). בנוסף, המלצתנו היא להשתמש ב־[Transfonter]" +"(https://transfonter.org/) כדי לייצר גופני רשת ולתקן שגיאות. " msgid "dashboard.import" msgstr "ייבוא קובצי Penpot" @@ -901,8 +916,8 @@ msgstr "כתובת הדוא״ל „%s” דווחה כספאם או שההודע #: src/app/main/errors.cljs msgid "errors.feature-mismatch" msgstr "" -"נראה שניסית לפתוח קובץ בו פעילה היכולת ‚%s’ אבל מנשק ה־Penpot שלך לא תומך " -"בה או שהיא מושבתת." +"נראה שניסית לפתוח קובץ בו פעילה היכולת ‚%s’ אבל מנשק ה־Penpot שלך לא תומך בה " +"או שהיא מושבתת." #: src/app/main/errors.cljs msgid "errors.feature-not-supported" @@ -952,7 +967,8 @@ msgstr "נראה כי זאת תמונה שגויה." #: src/app/main/ui/dashboard/team.cljs msgid "errors.member-is-muted" -msgstr "הודעות הדוא״ל לפרופיל שהזמנת מושתקות (דיווחים על דואר זבל או הרבה החזרות)." +msgstr "" +"הודעות הדוא״ל לפרופיל שהזמנת מושתקות (דיווחים על דואר זבל או הרבה החזרות)." #: src/app/main/ui/settings/password.cljs msgid "errors.password-invalid-confirmation" @@ -1287,7 +1303,7 @@ msgid "inspect.tabs.code.selected.path" msgstr "נתיב" msgid "inspect.tabs.code.selected.rect" -msgstr "ריבוע" +msgstr "מרובע" msgid "inspect.tabs.code.selected.svg-raw" msgstr "SVG" @@ -1963,7 +1979,8 @@ msgstr[1] "מחיקת קבצים" msgstr[2] "מחיקת קבצים" msgstr[3] "מחיקת קבצים" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.activated.no-files-message" msgid_plural "modals.delete-shared-confirm.activated.no-files-message" msgstr[0] "לא מופעל באף קובץ." @@ -1971,7 +1988,8 @@ msgstr[1] "לא מופעלים באף קובץ." msgstr[2] "לא מופעלים באף קובץ." msgstr[3] "לא מופעלים באף קובץ." -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.activated.scd-message" msgid_plural "modals.delete-shared-confirm.activated.scd-message" msgstr[0] "הספרייה הזאת מופעלת כאן: " @@ -2021,13 +2039,17 @@ msgstr "למחוק את החבר הזה מהצוות?" msgid "modals.delete-team-member-confirm.title" msgstr "למחוק חבר בצוות" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-unpublish-shared-confirm.activated.hint" msgid_plural "modals.delete-unpublish-shared-confirm.activated.hint" msgstr[0] "נכסים שכבר נעשה בהם שימוש בקובץ הזה יישארו שם (אף עיצוב לא ייפגע)." -msgstr[1] "נכסים שכבר נעשה בהם שימוש בקבצים האלה יישארו שם (אף עיצוב לא ייפגע)." -msgstr[2] "נכסים שכבר נעשה בהם שימוש בקבצים האלה יישארו שם (אף עיצוב לא ייפגע)." -msgstr[3] "נכסים שכבר נעשה בהם שימוש בקבצים האלה יישארו שם (אף עיצוב לא ייפגע)." +msgstr[1] "" +"נכסים שכבר נעשה בהם שימוש בקבצים האלה יישארו שם (אף עיצוב לא ייפגע)." +msgstr[2] "" +"נכסים שכבר נעשה בהם שימוש בקבצים האלה יישארו שם (אף עיצוב לא ייפגע)." +msgstr[3] "" +"נכסים שכבר נעשה בהם שימוש בקבצים האלה יישארו שם (אף עיצוב לא ייפגע)." msgid "modals.delete-webhook.accept" msgstr "מחיקת התליה" @@ -2060,7 +2082,8 @@ msgstr "הזמנת חברים לצוות" #: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-close-confirm.hint" -msgstr "כיוון שאין עוד חברים בצוות הזה מלבדך, הצוות יימחק על כל המיזמים והקבצים שלו." +msgstr "" +"כיוון שאין עוד חברים בצוות הזה מלבדך, הצוות יימחק על כל המיזמים והקבצים שלו." #: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-close-confirm.message" @@ -2073,7 +2096,8 @@ msgstr "" #: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-reassign.hint1" -msgstr "הבעלות על הצוות הזה בידיך. נא לבחור מישהו כדי לקידום לבעלות בטרם עזיבתך." +msgstr "" +"הבעלות על הצוות הזה בידיך. נא לבחור מישהו כדי לקידום לבעלות בטרם עזיבתך." #: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-reassign.promote-and-leave" @@ -2153,8 +2177,8 @@ msgstr "הסרה כספריה משותפת" #: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.remove-shared-confirm.hint" msgstr "" -"לאחר הסרה כספריה משותפת, ספריית הקבצים של הקובץ הזה לא תהיה זמינה עוד " -"לשימוש בקרב שאר הקבצים שלך." +"לאחר הסרה כספריה משותפת, ספריית הקבצים של הקובץ הזה לא תהיה זמינה עוד לשימוש " +"בקרב שאר הקבצים שלך." #: src/app/main/ui/workspace/header.cljs, #: src/app/main/ui/dashboard/file_menu.cljs @@ -2196,8 +2220,7 @@ msgstr[3] "ביטול פרסום ספריות" #: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component-in-bulk.hint" msgstr "" -"פעולה זו תעדכן רכיבים בספרייה משותפת. עשוי להשפיע על קבצים אחרים שמשתמשים " -"בה." +"פעולה זו תעדכן רכיבים בספרייה משותפת. עשוי להשפיע על קבצים אחרים שמשתמשים בה." #: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, #: src/app/main/ui/workspace/context_menu.cljs @@ -2241,8 +2264,7 @@ msgstr "קישור ההזמנה הועתק" #: src/app/main/ui/settings/delete_account.cljs msgid "notifications.profile-deletion-not-allowed" msgstr "" -"אי אפשר למחוק את הפרופיל שלך. יש להקצות את הצוותים שלך מחדש בטרם המשך " -"בתהליך." +"אי אפשר למחוק את הפרופיל שלך. יש להקצות את הצוותים שלך מחדש בטרם המשך בתהליך." #: src/app/main/ui/settings/profile.cljs, src/app/main/ui/settings/options.cljs msgid "notifications.profile-saved" @@ -2254,11 +2276,12 @@ msgstr "הודעת האימות נשלחה בדוא״ל אל %s. נא לבדוק msgid "onboarding-v2.before-start.desc1" msgstr "" -"רצוי לדעת שיש מגוון משאבים זמינים לך כדי לסייע לך להתחיל להשתמש ב־Penpot " -"כמו המדריך למשתמשים וערוץ ה־YouTube שלנו." +"רצוי לדעת שיש מגוון משאבים זמינים לך כדי לסייע לך להתחיל להשתמש ב־Penpot כמו " +"המדריך למשתמשים וערוץ ה־YouTube שלנו." msgid "onboarding-v2.before-start.desc2" -msgstr "מידע מפורט על אופן השימוש ב־Penpot. החל מתכנון אבטיפוס ועד שיתוף עיצובים." +msgstr "" +"מידע מפורט על אופן השימוש ב־Penpot. החל מתכנון אבטיפוס ועד שיתוף עיצובים." msgid "onboarding-v2.before-start.desc2.title" msgstr "מדריך למשתמשים" @@ -2760,7 +2783,7 @@ msgid "shortcuts.draw-path" msgstr "נתיב" msgid "shortcuts.draw-rect" -msgstr "ריבוע" +msgstr "מרובע" msgid "shortcuts.draw-text" msgstr "טקסט" @@ -3167,8 +3190,7 @@ msgstr "%s‏ - Penpot" msgid "viewer.breaking-change.description" msgstr "" -"קישור זה לשיתוף אינו תקף עוד. נא ליצור אחד חדש או לבקש מהבעלים ליצור אחד " -"חדש." +"קישור זה לשיתוף אינו תקף עוד. נא ליצור אחד חדש או לבקש מהבעלים ליצור אחד חדש." msgid "viewer.breaking-change.message" msgstr "מתנצלים!" @@ -5169,7 +5191,7 @@ msgid "workspace.undo.entry.single.path" msgstr "נתיב" msgid "workspace.undo.entry.single.rect" -msgstr "ריבוע" +msgstr "מרובע" msgid "workspace.undo.entry.single.shape" msgstr "צורה" @@ -5206,3 +5228,65 @@ msgstr "עדכון" msgid "workspace.viewport.click-to-close-path" msgstr "לחיצה תסגור את הנתיב" + +msgid "media.image.short" +msgstr "תמונה" + +msgid "media.keep-aspect-ratio" +msgstr "שמירה על יחס גובה־רוחב" + +#: src/app/main/ui/workspace/sidebar/assets.cljs +msgid "workspace.assets.filter" +msgstr "סינון" + +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.menu.disable-snap-ruler-guides" +msgstr "השבתת הצמדה לקווים מנחים סרגלים" + +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.menu.enable-snap-ruler-guides" +msgstr "הצמדה לקווים מנחים סרגלים" + +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.menu.hide-guides" +msgstr "הסתרת קווים מנחים" + +msgid "workspace.layout_grid.editor.padding.expand" +msgstr "הצגת אפשרויות ריפוד עם 4 צדדים" + +#: src/app/main/ui/workspace/libraries.cljs +msgid "workspace.libraries.unlink-library-btn" +msgstr "ניתוק ספרייה" + +msgid "workspace.top-bar.view-only" +msgstr "**חקירת קוד** (צפייה בלבד)" + +msgid "modals.move-shared-confirm.accept" +msgid_plural "modals.move-shared-confirm.accept" +msgstr[0] "העברה" +msgstr[1] "העברה" +msgstr[2] "העברה" +msgstr[3] "העברה" + +#: src/app/main/ui/workspace/sidebar/assets/common.cljs +msgid "workspace.assets.sidebar.components" +msgid_plural "workspace.assets.sidebar.components" +msgstr[0] "רכיב" +msgstr[1] "שני רכיבים" +msgstr[2] "%s רכיבים" +msgstr[3] "%s רכיבים" + +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.menu.show-guides" +msgstr "הצגת קווים מנחים" + +msgid "workspace.layout_grid.editor.top-bar.locate.tooltip" +msgstr "איתור פריסת הרשת" + +#: src/app/main/ui/workspace/libraries.cljs +msgid "workspace.libraries.shared-library-btn" +msgstr "חיבור ספרייה" + +#: src/app/main/ui/workspace/context_menu.cljs +msgid "workspace.shape.menu.remove-grid" +msgstr "הסרת פריסת רשת" From 43dd4ce45743aecb3d564e60b1828d927dbbaa08 Mon Sep 17 00:00:00 2001 From: TheScientistPT Date: Wed, 1 May 2024 10:07:43 +0200 Subject: [PATCH 007/476] :globe_with_meridians: Add translations for: Portuguese (Portugal). Currently translated at 98.5% (1359 of 1379 strings) Co-authored-by: TheScientistPT Translate-URL: https://hosted.weblate.org/projects/penpot/frontend/pt_PT/ Translation: Penpot/frontend --- frontend/translations/pt_PT.po | 200 +++++++++++++++++++++++---------- 1 file changed, 140 insertions(+), 60 deletions(-) diff --git a/frontend/translations/pt_PT.po b/frontend/translations/pt_PT.po index b7c9147572..7e7711f6ac 100644 --- a/frontend/translations/pt_PT.po +++ b/frontend/translations/pt_PT.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "PO-Revision-Date: 2024-04-24 12:55+0000\n" "Last-Translator: Anonymous \n" -"Language-Team: Portuguese (Portugal) " -"\n" +"Language-Team: Portuguese (Portugal) \n" "Language: pt_PT\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" @@ -80,11 +80,23 @@ msgstr "LDAP" msgid "auth.login-with-oidc-submit" msgstr "OpenID Connect" -#: src/app/main/ui/settings/team-form.cljs, src/app/main/ui/auth/register.cljs, src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/onboarding/team_choice.cljs, src/app/main/ui/settings/access_tokens.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/settings/profile.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/settings/team-form.cljs, src/app/main/ui/auth/register.cljs, +#: src/app/main/ui/dashboard/team_form.cljs, +#: src/app/main/ui/onboarding/team_choice.cljs, +#: src/app/main/ui/settings/access_tokens.cljs, +#: src/app/main/ui/settings/feedback.cljs, +#: src/app/main/ui/settings/profile.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "auth.name.not-all-space" msgstr "O nome deve conter pelo menos um caractere que não seja um espaço." -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/onboarding/team_choice.cljs, src/app/main/ui/settings/access_tokens.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/settings/profile.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/auth/register.cljs, +#: src/app/main/ui/dashboard/team_form.cljs, +#: src/app/main/ui/onboarding/team_choice.cljs, +#: src/app/main/ui/settings/access_tokens.cljs, +#: src/app/main/ui/settings/feedback.cljs, +#: src/app/main/ui/settings/profile.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "auth.name.too-long" msgstr "O nome deve conter um máximo de 250 caracteres." @@ -122,7 +134,8 @@ msgstr "Mínimo de 8 caracteres" #: src/app/main/ui/auth/register.cljs msgid "auth.password-not-empty" -msgstr "A palavra-passe deve conter pelo menos um caractere que não seja um espaço." +msgstr "" +"A palavra-passe deve conter pelo menos um caractere que não seja um espaço." msgid "auth.privacy-policy" msgstr "Política de privacidade" @@ -173,7 +186,6 @@ msgstr "" "política de privacidade." #: src/app/main/ui/auth/register.cljs -#, markdown msgid "auth.terms-privacy-agreement-md" msgstr "" "Ao criar uma nova conta, concordas com os nossos [termos de serviço](%s) e " @@ -195,8 +207,8 @@ msgstr "Todos os utilizadores Penpot" msgid "common.share-link.confirm-deletion-link-description" msgstr "" -"Tens a certeza de que queres remover este link? Se o fizeres, deixa de " -"ficar disponível para ninguém" +"Tens a certeza de que queres remover este link? Se o fizeres, deixa de ficar " +"disponível para ninguém" msgid "common.share-link.current-tag" msgstr "(atual)" @@ -252,8 +264,8 @@ msgstr "Gestão da equipa" #: src/app/main/ui/dashboard/projects.cljs msgid "dasboard.team-hero.text" msgstr "" -"O Penpot é destinado a equipas. Convida colegas para colaborarem em " -"projetos e ficheiros" +"O Penpot é destinado a equipas. Convida colegas para colaborarem em projetos " +"e ficheiros" #: src/app/main/ui/dashboard/projects.cljs msgid "dasboard.team-hero.title" @@ -261,7 +273,8 @@ msgstr "Trabalho de equipa!" #: src/app/main/ui/dashboard/projects.cljs msgid "dasboard.tutorial-hero.info" -msgstr "Aprende os básicos no Penpot enquanto divertes-te a praticar neste tutorial." +msgstr "" +"Aprende os básicos no Penpot enquanto divertes-te a praticar neste tutorial." #: src/app/main/ui/dashboard/projects.cljs msgid "dasboard.tutorial-hero.start" @@ -346,9 +359,9 @@ msgstr "Tokens de acesso pessoais" #: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.personal.description" msgstr "" -"Os tokens de acesso pessoais funcionam como uma alternativa ao nosso " -"sistema de autenticação de login/palavra-passe e podem ser usados para " -"permitir que uma aplicação tenha acesso à API interna do Penpot" +"Os tokens de acesso pessoais funcionam como uma alternativa ao nosso sistema " +"de autenticação de login/palavra-passe e podem ser usados para permitir que " +"uma aplicação tenha acesso à API interna do Penpot" #: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.token-will-expire" @@ -402,8 +415,8 @@ msgstr "Duplicar %s ficheiros" msgid "dashboard.empty-placeholder-drafts" msgstr "" "Os ficheiros adicionados às Bibliotecas irão aparecer aqui. Experimenta " -"adicionar os teus ficheiros ou experimenta algumas das nossas [Bibliotecas " -"e templates](https://penpot.app/libraries-templates.html)." +"adicionar os teus ficheiros ou experimenta algumas das nossas [Bibliotecas e " +"templates](https://penpot.app/libraries-templates.html)." msgid "dashboard.export-binary-multi" msgstr "Descarrega %s ficheiros Penpot (.penpot)" @@ -508,16 +521,15 @@ msgstr "" msgid "dashboard.fonts.hero-text2" msgstr "" -"Deves carregar tipos de letra que possuas or tenhas licença para utilizar " -"no Penpot. Sabe mais na secção de Direitos de Conteúdos dos [Termos de " -"serviço do Penpot](https://penpot.app/terms.html). Podes também ler mais " -"sobre [licenciamento de fontes](https://www.typography.com/faq)." +"Deves carregar tipos de letra que possuas or tenhas licença para utilizar no " +"Penpot. Sabe mais na secção de Direitos de Conteúdos dos [Termos de serviço " +"do Penpot](https://penpot.app/terms.html). Podes também ler mais sobre " +"[licenciamento de fontes](https://www.typography.com/faq)." #: src/app/main/ui/dashboard/fonts.cljs msgid "dashboard.fonts.upload-all" msgstr "Carregar tudo" -#, markdown msgid "dashboard.fonts.warning-text" msgstr "" "Detetámos um possível problema nas tuas fontes relacionado com métricas " @@ -538,7 +550,8 @@ msgstr "" "suporta." msgid "dashboard.import.import-error" -msgstr "Ocorreu um problema na importação do ficheiro. O ficheiro não foi importado." +msgstr "" +"Ocorreu um problema na importação do ficheiro. O ficheiro não foi importado." msgid "dashboard.import.import-message" msgid_plural "dashboard.import.import-message" @@ -886,7 +899,8 @@ msgstr "Não podes utilizar o teu e-mail como palavra-passe" msgid "errors.email-has-permanent-bounces" msgstr "O e-mail «%s» tem muitos relatórios de rejeição permanentes." -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs, src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs, +#: src/app/main/ui/auth/recovery_request.cljs msgid "errors.email-invalid" msgstr "Por favor introduz um email válido" @@ -944,7 +958,8 @@ msgstr "A imagem é demasiado grande para ser inserida." #: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs msgid "errors.media-type-mismatch" -msgstr "Parece que o conteúdo da imagem não corresponde à extensão do ficheiro." +msgstr "" +"Parece que o conteúdo da imagem não corresponde à extensão do ficheiro." #: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs msgid "errors.media-type-not-allowed" @@ -953,8 +968,8 @@ msgstr "Parece que esta não é uma imagem válida." #: src/app/main/ui/dashboard/team.cljs msgid "errors.member-is-muted" msgstr "" -"O perfil que estás a convidar tem e-mails silenciados (relatórios de spam " -"ou devoluções altas)." +"O perfil que estás a convidar tem e-mails silenciados (relatórios de spam ou " +"devoluções altas)." #: src/app/main/ui/settings/password.cljs msgid "errors.password-invalid-confirmation" @@ -987,7 +1002,8 @@ msgid "errors.team-feature-mismatch" msgstr "Funcionalidade incompatível '%s' detetada" msgid "errors.team-leave.insufficient-members" -msgstr "Membros insuficientes para deixar a equipa, provavelmente queres eliminá-la." +msgstr "" +"Membros insuficientes para deixar a equipa, provavelmente queres eliminá-la." msgid "errors.team-leave.member-does-not-exists" msgstr "O membro que tentas atribuir não existe." @@ -1070,8 +1086,8 @@ msgstr "Assunto" msgid "feedback.subtitle" msgstr "" "Por favor descreve o motivo do teu e-mail, especificando se é um problema, " -"uma ideia, ou uma dúvida. Um membro da nossa equipa tentará responder o " -"mais rápido possível." +"uma ideia, ou uma dúvida. Um membro da nossa equipa tentará responder o mais " +"rápido possível." #: src/app/main/ui/settings/feedback.cljs msgid "feedback.title" @@ -1256,7 +1272,8 @@ msgid "inspect.attributes.typography.text-transform.uppercase" msgstr "Maiúsculas" msgid "inspect.empty.help" -msgstr "Se quiseres saber mais sobre a inspeção, visita o centro de ajuda do Penpot" +msgstr "" +"Se quiseres saber mais sobre a inspeção, visita o centro de ajuda do Penpot" msgid "inspect.empty.more-info" msgstr "Mais informações sobre a inspeção" @@ -1780,9 +1797,8 @@ msgstr "Sólido" msgid "modals.add-shared-confirm-empty.hint" msgstr "" "A tua biblioteca está vazia. Assim que ela seja adicionada como uma " -"biblioteca partilhada, os recursos que criares nela estarão disponíveis " -"para serem usados nos teus outros ficheiros. Tens a certeza que queres " -"publicá-la?" +"biblioteca partilhada, os recursos que criares nela estarão disponíveis para " +"serem usados nos teus outros ficheiros. Tens a certeza que queres publicá-la?" #: src/app/main/ui/workspace/header.cljs, #: src/app/main/ui/dashboard/file_menu.cljs @@ -1812,8 +1828,8 @@ msgstr "Verificar o novo e-mail" #: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.info" msgstr "" -"Vamos enviar um e‑mail para o teu endereço atual \"%s\" para verificar a " -"tua identidade." +"Vamos enviar um e‑mail para o teu endereço atual \"%s\" para verificar a tua " +"identidade." #: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.new-email" @@ -1898,8 +1914,8 @@ msgstr "Eliminar conversa" #: src/app/main/ui/comments.cljs msgid "modals.delete-comment-thread.message" msgstr "" -"Tens a certeza de que pretender eliminar esta conversa? Todos os " -"comentários neste tópico serão eliminados." +"Tens a certeza de que pretender eliminar esta conversa? Todos os comentários " +"neste tópico serão eliminados." #: src/app/main/ui/comments.cljs msgid "modals.delete-comment-thread.title" @@ -1937,8 +1953,8 @@ msgstr "Eliminando %s ficheiros" msgid "modals.delete-font-variant.message" msgstr "" -"Tens a certeza de que pretendes eliminar este estilo de fonte? Não " -"carregará se estiver a ser utilizado num ficheiro." +"Tens a certeza de que pretendes eliminar este estilo de fonte? Não carregará " +"se estiver a ser utilizado num ficheiro." msgid "modals.delete-font-variant.title" msgstr "Eliminando estilo de fonte" @@ -1978,13 +1994,15 @@ msgid_plural "modals.delete-shared-confirm.accept" msgstr[0] "Eliminar ficheiro" msgstr[1] "Eliminar ficheiros" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.activated.no-files-message" msgid_plural "modals.delete-shared-confirm.activated.no-files-message" msgstr[0] "Não está ativa em nenhum ficheiro." msgstr[1] "Não estão ativas em nenhum ficheiro." -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.activated.scd-message" msgid_plural "modals.delete-shared-confirm.activated.scd-message" msgstr[0] "Esta biblioteca está ativa aqui: " @@ -2030,7 +2048,8 @@ msgstr "Tens a certeza de que pretendes eliminar este membro da equipa?" msgid "modals.delete-team-member-confirm.title" msgstr "Eliminar membro da equipa" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-unpublish-shared-confirm.activated.hint" msgid_plural "modals.delete-unpublish-shared-confirm.activated.hint" msgstr[0] "" @@ -2127,8 +2146,8 @@ msgstr "Transferir propriedade" #: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.hint" msgstr "" -"Se transferires a propriedade, vais alterar a tua função para " -"Administrador, perdendo algumas permissões sobre esta equipa. " +"Se transferires a propriedade, vais alterar a tua função para Administrador, " +"perdendo algumas permissões sobre esta equipa. " #: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.message" @@ -2158,9 +2177,9 @@ msgstr "Remover como Biblioteca Partilhada" #: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.remove-shared-confirm.hint" msgstr "" -"Uma vez removida como Biblioteca Partilhada, a Biblioteca de Ficheiros " -"deste ficheiro deixarão de estar disponíveis para serem utilizados com o " -"resto dos teus ficheiros." +"Uma vez removida como Biblioteca Partilhada, a Biblioteca de Ficheiros deste " +"ficheiro deixarão de estar disponíveis para serem utilizados com o resto dos " +"teus ficheiros." #: src/app/main/ui/workspace/header.cljs, #: src/app/main/ui/dashboard/file_menu.cljs @@ -2171,7 +2190,8 @@ msgstr "Remover \"%s\" como Biblioteca Partilhada" msgid "modals.small-nudge" msgstr "Pequeno deslocamento" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.unpublish-shared-confirm.accept" msgid_plural "modals.unpublish-shared-confirm.accept" msgstr[0] "Cancelar publicação" @@ -2181,8 +2201,10 @@ msgstr[1] "Cancelar publicações" #: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.unpublish-shared-confirm.message" msgid_plural "modals.unpublish-shared-confirm.message" -msgstr[0] "Tens a certeza de que queres cancelar a publicação desta biblioteca?" -msgstr[1] "Tens a certeza de que queres cancelar a publicação destas bibliotecas?" +msgstr[0] "" +"Tens a certeza de que queres cancelar a publicação desta biblioteca?" +msgstr[1] "" +"Tens a certeza de que queres cancelar a publicação destas bibliotecas?" #: src/app/main/ui/workspace/header.cljs, #: src/app/main/ui/dashboard/file_menu.cljs @@ -2289,8 +2311,8 @@ msgstr "Sua privacidade é importante para nós, saiba mais aqui " msgid "onboarding-v2.newsletter.privacy2" msgstr "" "Enviaremos apenas e-mails relevantes para você. Você pode cancelar a " -"inscrição a qualquer momento através do link de cancelamento de inscrição " -"em qualquer uma de nossas newsletter." +"inscrição a qualquer momento através do link de cancelamento de inscrição em " +"qualquer uma de nossas newsletter." msgid "onboarding-v2.newsletter.updates" msgstr "" @@ -2353,8 +2375,8 @@ msgstr "Convida membros" msgid "onboarding.choice.team-up.invite-members-info" msgstr "" -"Lembra-te em incluir todos. Programadores, designers, gestores... " -"acrescenta diversidade :)" +"Lembra-te em incluir todos. Programadores, designers, gestores... acrescenta " +"diversidade :)" msgid "onboarding.choice.team-up.roles" msgstr "Convidar com a função:" @@ -2569,7 +2591,8 @@ msgstr "Experimentar o Penpot antes de usar num servidor privado" #: src/app/main/ui/onboarding/questions.cljs msgid "questions.wireframes-user-journeys-flows-navigation-trees" -msgstr "...wireframes, jornadas e fluxos de utilizador, árvores de navegação, etc." +msgstr "" +"...wireframes, jornadas e fluxos de utilizador, árvores de navegação, etc." #: src/app/main/ui/onboarding/questions.cljs msgid "questions.work-in-concept-ideas" @@ -3149,8 +3172,8 @@ msgstr "%s - Penpot" msgid "viewer.breaking-change.description" msgstr "" -"Este link partilhável já não é válido. Cria uma nova ou pede ao " -"proprietário para um novo." +"Este link partilhável já não é válido. Cria uma nova ou pede ao proprietário " +"para um novo." msgid "viewer.breaking-change.message" msgstr "Desculpa!" @@ -3490,7 +3513,7 @@ msgstr "Ocultar grade de píxeis" #: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.hide-rules" -msgstr "Ocultar regras" +msgstr "Ocultar réguas" #: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.hide-textpalette" @@ -3536,7 +3559,7 @@ msgstr "Mostrar grade de píxeis" #: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.show-rules" -msgstr "Mostrar regras" +msgstr "Mostrar réguas" #: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.show-textpalette" @@ -5188,6 +5211,61 @@ msgstr "Atualizar" msgid "workspace.viewport.click-to-close-path" msgstr "Clica para fechar o caminho" +#: src/app/main/ui/auth/login.cljs +msgid "auth.login-account-title" +msgstr "Entrar na minha conta" + +#: src/app/main/data/users.cljs +msgid "errors.email-domain-not-allowed" +msgstr "Domínio não permitido" + +msgid "media.image.short" +msgstr "img" + +msgid "modals.move-shared-confirm.title" +msgid_plural "modals.move-shared-confirm.title" +msgstr[0] "Mover biblioteca" +msgstr[1] "Mover bibliotecas" + +msgid "onboarding.team-modal.team-definition" +msgstr "O que é uma equipa?" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "questions.never-used-one" +msgstr "Nenhuma" + +#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs +msgid "settings.select-this-color" +msgstr "Selecionar itens que usem este estilo" + +#: src/app/main/ui/workspace/sidebar/assets/common.cljs +msgid "workspace.assets.sidebar.components" +msgid_plural "workspace.assets.sidebar.components" +msgstr[0] "1 componente" +msgstr[1] "%s componentes" + +#: src/app/main/ui/workspace/sidebar/assets.cljs +msgid "workspace.assets.sort" +msgstr "Ordenar" + +msgid "workspace.top-bar.view-only" +msgstr "**A inspecionar código** (Somente leitura)" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.login-tagline" +msgstr "" +"O Penpot é a ferramenta de desenho gratuita e de código aberto para " +"colaboração entre Design e Código" + +msgid "modals.move-shared-confirm.accept" +msgid_plural "modals.move-shared-confirm.accept" +msgstr[0] "Mover" +msgstr[1] "Mover" + +#: src/app/main/ui/workspace/sidebar/assets.cljs +msgid "workspace.assets.filter" +msgstr "Filtrar" + #~ msgid "dashboard.newsletter-title" #~ msgstr "Subscrição de Newsletter" @@ -5210,7 +5288,9 @@ msgstr "Clica para fechar o caminho" #~ msgstr "projeto no GitHub" #~ msgid "onboarding.slide.0.desc1" -#~ msgstr "Cria interfaces maravilhosas em colaboração com todos os membros da equipa." +#~ msgstr "" +#~ "Cria interfaces maravilhosas em colaboração com todos os membros da " +#~ "equipa." #~ msgid "onboarding.slide.1.desc1" #~ msgstr "Cria interações ricas para simular o comportamento do produto." From 402b6d4f34fbc01315ad8ce627ce9e7d76e8b2c8 Mon Sep 17 00:00:00 2001 From: Louis Chance Date: Thu, 2 May 2024 13:29:41 +0000 Subject: [PATCH 008/476] :globe_with_meridians: Add translations for: French. Currently translated at 100.0% (1379 of 1379 strings) Translation: Penpot/frontend Translate-URL: https://hosted.weblate.org/projects/penpot/frontend/fr/ --- frontend/translations/fr.po | 286 +++++++++++++++++++++++++++++++++++- 1 file changed, 278 insertions(+), 8 deletions(-) diff --git a/frontend/translations/fr.po b/frontend/translations/fr.po index 91571b0840..2154077a92 100644 --- a/frontend/translations/fr.po +++ b/frontend/translations/fr.po @@ -1,15 +1,15 @@ msgid "" msgstr "" -"PO-Revision-Date: 2024-04-24 12:55+0000\n" -"Last-Translator: Anonymous \n" -"Language-Team: French " -"\n" +"PO-Revision-Date: 2024-05-03 13:07+0000\n" +"Last-Translator: Louis Chance \n" +"Language-Team: French \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n!=1);\n" -"X-Generator: Weblate 5.5.1-dev\n" +"X-Generator: Weblate 5.5.3\n" #: src/app/main/ui/auth/register.cljs msgid "auth.already-have-account" @@ -1021,7 +1021,6 @@ msgstr "Erreur de connexion, URL inaccessible" msgid "errors.webhooks.invalid-uri" msgstr "L'URL ne passe pas la validation." -#, fuzzy msgid "errors.webhooks.last-delivery" msgstr "Il y a eu une erreur dans le dernier envoi." @@ -3145,7 +3144,6 @@ msgstr "Afficher les interactions au clic" msgid "viewer.header.sitemap" msgstr "Plan du site" -#, fuzzy msgid "webhooks.last-delivery.success" msgstr "Le dernier envoi a réussi." @@ -4621,7 +4619,7 @@ msgid "workspace.shape.menu.add-flex" msgstr "Ajouter flex layout" msgid "workspace.shape.menu.add-grid" -msgstr "Ajouter grid layout" +msgstr "Ajouter disposition en grille" #: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.back" @@ -5044,3 +5042,275 @@ msgstr "Actualiser" msgid "workspace.viewport.click-to-close-path" msgstr "Cliquez pour fermer le chemin" + +#: src/app/main/ui/workspace/sidebar/assets/common.cljs +msgid "workspace.assets.sidebar.components" +msgid_plural "workspace.assets.sidebar.components" +msgstr[0] "1 composant" +msgstr[1] "%s composants" + +#: src/app/main/ui/auth/register.cljs +#, markdown +msgid "auth.terms-privacy-agreement-md" +msgstr "" +"En créant un compte, vous acceptez nos [conditions d'utilisation](%s) et [" +"politique de confidentialité](%s)." + +msgid "modals.move-shared-confirm.message" +msgid_plural "modals.move-shared-confirm.message" +msgstr[0] "Êtes-vous sûr de vouloir déplacer cette librairie ?" +msgstr[1] "Êtes-vous sûr de vouloir déplacer ces librairies ?" + +msgid "modals.move-shared-confirm.title" +msgid_plural "modals.move-shared-confirm.title" +msgstr[0] "Déplacer librairie" +msgstr[1] "Déplacer librairies" + +msgid "onboarding.team-modal.team-definition" +msgstr "Qu'est-ce qu'une équipe ?" + +msgid "shortcuts.scale" +msgstr "Échelle" + +msgid "shortcuts.toggle-layout-grid" +msgstr "Ajouter / Retirer grid layout" + +msgid "workspace.context-menu.grid-cells.create-board" +msgstr "Créer un tableau" + +msgid "workspace.context-menu.grid-cells.merge" +msgstr "Fusionner les cellules" + +msgid "workspace.context-menu.grid-track.column.add-after" +msgstr "Ajouter une colonne à droite" + +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.menu.enable-snap-ruler-guides" +msgstr "Aligner aux guides de règles" + +msgid "workspace.layout_grid.editor.options.edit-grid" +msgstr "Éditer la grille" + +msgid "workspace.layout_grid.editor.top-bar.locate" +msgstr "Montrer" + +#: src/app/main/ui/workspace/context_menu.cljs +msgid "workspace.shape.menu.remove-grid" +msgstr "Supprimer la disposition en grille" + +#: src/app/main/ui/workspace/libraries.cljs +msgid "workspace.libraries.loading" +msgstr "Chargement…" + +msgid "inspect.attributes.typography.text-transform.unset" +msgstr "Non assigné" + +msgid "labels.share" +msgstr "Partager" + +msgid "labels.search" +msgstr "Rechercher" + +msgid "onboarding.choice.team-up.continue-creating-team" +msgstr "Continuer en créant une équipe" + +msgid "onboarding.choice.team-up.start-without-a-team" +msgstr "Commencer sans équipe" + +msgid "onboarding.choice.team-up.continue-without-a-team" +msgstr "Continuer sans équipe" + +msgid "onboarding.choice.team-up.create-team-and-send-invites" +msgstr "Créer une équipe et envoyer des invitations" + +msgid "onboarding.choice.team-up.start-without-a-team-description" +msgstr "Vous pourrez créer une équipe plus tard." + +msgid "onboarding.choice.team-up.create-team-and-invite" +msgstr "Créer une équipe et inviter" + +msgid "onboarding.choice.team-up.create-team-and-send-invites-description" +msgstr "Vous pourrez envoyer les invitations plus tard" + +msgid "onboarding.choice.team-up.create-team-without-invite" +msgstr "Créer l'équipe" + +msgid "onboarding.choice.team-up.create-team-without-inviting" +msgstr "Créer l'équipe sans inviter" + +msgid "workspace.layout_grid.editor.top-bar.done" +msgstr "Fait" + +msgid "workspace.layout_grid.editor.options.exit" +msgstr "Quitter" + +msgid "workspace.options.component.swap" +msgstr "Échanger composant" + +msgid "workspace.options.component.swap.empty" +msgstr "Cette librairie ne contient aucun élément pour le moment" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +msgid "workspace.options.flows.flow" +msgstr "Flux" + +msgid "media.radial" +msgstr "Radial" + +msgid "media.choose-image" +msgstr "Choisir image" + +msgid "media.gradient" +msgstr "Gradient" + +msgid "workspace.options.guides.title" +msgstr "Guides" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.login-account-title" +msgstr "Connexion à mon compte" + +#: src/app/main/data/users.cljs +msgid "errors.email-domain-not-allowed" +msgstr "Domaine non autorisé" + +msgid "errors.paste-data-validation" +msgstr "Données du presse-papier invalides" + +msgid "errors.validation" +msgstr "Erreur de validation" + +msgid "media.image" +msgstr "Image" + +msgid "media.image.short" +msgstr "img" + +msgid "media.keep-aspect-ratio" +msgstr "Conserver le ratio" + +msgid "media.linear" +msgstr "Linéaire" + +msgid "media.solid" +msgstr "Solide" + +msgid "modals.move-shared-confirm.accept" +msgid_plural "modals.move-shared-confirm.accept" +msgstr[0] "Déplacer" +msgstr[1] "Déplacer" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "questions.never-used-one" +msgstr "Aucune" + +#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs +msgid "settings.select-this-color" +msgstr "Sélectionnez les éléments qui utilisent ce style" + +msgid "shortcuts.toggle-guides" +msgstr "Montrer / Cacher les guides" + +msgid "shortcuts.toggle-rulers" +msgstr "Montrer / Cacher les règles" + +msgid "shortcuts.toggle-snap-guides" +msgstr "Aligner selon les guides" + +msgid "shortcuts.toggle-snap-ruler-guide" +msgstr "Aligner selon les guides de règles" + +msgid "shortcuts.toggle-theme" +msgstr "Changer le thème" + +#: src/app/main/ui/workspace/sidebar/assets.cljs +msgid "workspace.assets.filter" +msgstr "Filtrer" + +#: src/app/main/ui/workspace/sidebar/assets.cljs +msgid "workspace.assets.sort" +msgstr "Trier" + +msgid "workspace.context-menu.grid-track.column.add-before" +msgstr "Ajouter une colonne à gauche" + +msgid "workspace.context-menu.grid-track.column.delete" +msgstr "Supprimer la colonne" + +msgid "workspace.context-menu.grid-track.column.delete-shapes" +msgstr "Supprimer la colonne et le contenu" + +msgid "workspace.context-menu.grid-track.column.duplicate" +msgstr "Dupliquer la colonne" + +msgid "workspace.context-menu.grid-track.row.add-after" +msgstr "Ajouter une rangée en-dessous" + +msgid "workspace.context-menu.grid-track.row.add-before" +msgstr "Ajouter une rangée au-dessus" + +msgid "workspace.context-menu.grid-track.row.delete" +msgstr "Supprimer la rangée" + +msgid "workspace.context-menu.grid-track.row.delete-shapes" +msgstr "Supprimer la rangée et son contenu" + +msgid "workspace.context-menu.grid-track.row.duplicate" +msgstr "Dupliquer la rangée" + +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.menu.disable-snap-ruler-guides" +msgstr "Désactiver l'alignement aux guides de règles" + +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.menu.show-guides" +msgstr "Montrer les guides" + +msgid "workspace.header.menu.toggle-dark-theme" +msgstr "Basculer vers le thème sombre" + +msgid "workspace.header.menu.toggle-light-theme" +msgstr "Basculer vers le thème clair" + +msgid "workspace.layout_grid.editor.padding.expand" +msgstr "Montrer les options de marge intérieure sur les 4 côtés" + +msgid "workspace.layout_grid.editor.top-bar.locate.tooltip" +msgstr "Montrer la disposition en grille" + +#: src/app/main/ui/workspace/libraries.cljs +msgid "workspace.libraries.shared-library-btn" +msgstr "Connecter librairie" + +#: src/app/main/ui/workspace/libraries.cljs +msgid "workspace.libraries.unlink-library-btn" +msgstr "Déconnecter librairie" + +msgid "workspace.top-bar.read-only.done" +msgstr "Fait" + +#, markdown +msgid "workspace.top-bar.view-only" +msgstr "**Inspection du code** (Vue uniquement)" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.login-tagline" +msgstr "" +"Penpot est l'outil de design libre et open-source pour la collaboration " +"entre Design et Développement" + +msgid "dashboard.import.analyze-error.components-v2" +msgstr "" +"Fichier avec composants v2 activé mais n'est pas encore supporté par cette " +"équipe." + +#: src/app/main/data/users.cljs +msgid "errors.auth-provider-not-allowed" +msgstr "Le fournisseur d'authentification n'est pas autorisé pour ce profil" + +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.menu.hide-guides" +msgstr "Cacher les guides" + +msgid "workspace.context-menu.grid-cells.area" +msgstr "Créer une zone" From 5f560426fad3fef273ff6c9797463b9fb3393d38 Mon Sep 17 00:00:00 2001 From: Stas Haas Date: Thu, 2 May 2024 12:47:03 +0000 Subject: [PATCH 009/476] :globe_with_meridians: Add translations for: Russian. Currently translated at 57.5% (794 of 1379 strings) Translation: Penpot/frontend Translate-URL: https://hosted.weblate.org/projects/penpot/frontend/ru/ --- frontend/translations/ru.po | 136 ++++++++++++++++++++++++++++++++++-- 1 file changed, 132 insertions(+), 4 deletions(-) diff --git a/frontend/translations/ru.po b/frontend/translations/ru.po index 8ec32ba618..d893474edb 100644 --- a/frontend/translations/ru.po +++ b/frontend/translations/ru.po @@ -1,15 +1,15 @@ msgid "" msgstr "" -"PO-Revision-Date: 2024-01-23 15:01+0000\n" +"PO-Revision-Date: 2024-05-03 13:07+0000\n" "Last-Translator: Stas Haas \n" -"Language-Team: Russian " -"\n" +"Language-Team: Russian \n" "Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Weblate 5.4-dev\n" +"X-Generator: Weblate 5.5.3\n" #: src/app/main/ui/auth/register.cljs msgid "auth.already-have-account" @@ -3025,3 +3025,131 @@ msgstr "Обновить" msgid "workspace.viewport.click-to-close-path" msgstr "Нажмите для замыкания контура" + +msgid "workspace.undo.entry.multiple.multiple" +msgstr "объекты" + +msgid "workspace.undo.entry.single.page" +msgstr "страница" + +#: src/app/main/ui/settings/access-tokens.cljs +msgid "dashboard.access-tokens.copied-success" +msgstr "Токен скопирован" + +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +msgid "workspace.options.shadow-options.offsetx" +msgstr "X" + +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs +msgid "workspace.options.show-fill-on-export" +msgstr "Показать в экспорте" + +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +msgid "workspace.options.stroke-cap.circle-marker-short" +msgstr "Круг" + +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +msgid "workspace.options.stroke-cap.triangle-arrow" +msgstr "Треугольная стрела" + +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +msgid "workspace.options.stroke-cap.square-marker-short" +msgstr "Прямоугольник" + +#: src/app/main/ui/workspace/context_menu.cljs +msgid "workspace.shape.menu.lock" +msgstr "Заблокировать" + +#: src/app/main/ui/workspace/sidebar/history.cljs +msgid "workspace.undo.entry.new" +msgstr "Новый: %s" + +msgid "workspace.undo.entry.multiple.group" +msgstr "группы" + +msgid "workspace.undo.entry.single.component" +msgstr "компонент" + +msgid "workspace.undo.entry.single.circle" +msgstr "круг" + +msgid "workspace.undo.entry.single.multiple" +msgstr "объект" + +#: src/app/main/data/workspace/libraries.cljs +msgid "workspace.updates.more-info" +msgstr "Дополнительная информация" + +msgid "workspace.top-bar.read-only.done" +msgstr "Готово" + +#: src/app/main/ui/workspace/left_toolbar.cljs +msgid "workspace.toolbar.shortcuts" +msgstr "Сочетание клавиш (%s)" + +msgid "workspace.sidebar.layers.shapes" +msgstr "Формы" + +msgid "workspace.undo.entry.multiple.page" +msgstr "страницы" + +msgid "workspace.shape.menu.intersection" +msgstr "Пересечь" + +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +msgid "workspace.options.shadow-options.offsety" +msgstr "Y" + +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +msgid "workspace.options.stroke-cap.triangle-arrow-short" +msgstr "Треугольник" + +msgid "workspace.undo.entry.multiple.shape" +msgstr "формы" + +msgid "workspace.undo.entry.multiple.circle" +msgstr "круги" + +#: src/app/main/ui/workspace/context_menu.cljs +msgid "workspace.shape.menu.unlock" +msgstr "Paзблокировать" + +msgid "workspace.sidebar.collapse" +msgstr "Свернуть боковую панель" + +msgid "workspace.options.width" +msgstr "Ширина" + +#: src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs +msgid "workspace.shape.menu.paste" +msgstr "Вставить" + +msgid "workspace.undo.entry.single.shape" +msgstr "форма" + +msgid "workspace.undo.entry.single.text" +msgstr "текст" + +msgid "workspace.undo.entry.single.image" +msgstr "изображение" + +msgid "workspace.undo.entry.multiple.text" +msgstr "тексты" + +msgid "workspace.sidebar.layers.texts" +msgstr "Тексты" + +msgid "workspace.sidebar.layers.masks" +msgstr "Маски" + +msgid "workspace.sidebar.layers.images" +msgstr "Изображения" + +msgid "workspace.sidebar.layers.groups" +msgstr "Группы" + +msgid "workspace.sidebar.expand" +msgstr "Расширить боковую панель" + +msgid "workspace.shape.menu.union" +msgstr "Суммировать" From f575650379fa44ceccd87776b2a0b91cc0cd4a61 Mon Sep 17 00:00:00 2001 From: Andy Li Date: Sat, 4 May 2024 08:16:25 +0000 Subject: [PATCH 010/476] :globe_with_meridians: Add translations for: Chinese (Traditional). Currently translated at 46.7% (644 of 1379 strings) Translation: Penpot/frontend Translate-URL: https://hosted.weblate.org/projects/penpot/frontend/zh_Hant/ --- frontend/translations/zh_Hant.po | 136 +++++++++++++++++++++++++++++-- 1 file changed, 131 insertions(+), 5 deletions(-) diff --git a/frontend/translations/zh_Hant.po b/frontend/translations/zh_Hant.po index 5f14d51cb8..695a21a597 100644 --- a/frontend/translations/zh_Hant.po +++ b/frontend/translations/zh_Hant.po @@ -1,15 +1,15 @@ msgid "" msgstr "" -"PO-Revision-Date: 2024-04-24 13:04+0000\n" -"Last-Translator: Anonymous \n" -"Language-Team: Chinese (Traditional) " -"\n" +"PO-Revision-Date: 2024-05-05 05:07+0000\n" +"Last-Translator: Andy Li \n" +"Language-Team: Chinese (Traditional) \n" "Language: zh_Hant\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 5.5.1-dev\n" +"X-Generator: Weblate 5.5.3\n" #: src/app/main/ui/auth/register.cljs msgid "auth.already-have-account" @@ -2316,3 +2316,129 @@ msgstr "更新" msgid "workspace.viewport.click-to-close-path" msgstr "點擊以關閉路徑" + +#: src/app/main/ui/settings/access-tokens.cljs +msgid "dashboard.access-tokens.expiration-never" +msgstr "從不" + +#: src/app/main/ui/settings/access-tokens.cljs +msgid "dashboard.access-tokens.expiration-60-days" +msgstr "60 天" + +#: src/app/main/ui/settings/access-tokens.cljs +msgid "dashboard.access-tokens.token-will-not-expire" +msgstr "權杖沒有到期時間" + +#: src/app/main/ui/auth/register.cljs +#, markdown +msgid "auth.terms-privacy-agreement-md" +msgstr "當你創立新的帳號,代表你同意我們的 [服務條款](%s) 與 [隱私權政策](%s)。" + +#: src/app/main/ui/settings/access-tokens.cljs +msgid "dashboard.access-tokens.expiration-180-days" +msgstr "180 天" + +#: src/app/main/ui/settings/access-tokens.cljs +msgid "dashboard.access-tokens.expiration-30-days" +msgstr "30 天" + +#, fuzzy +msgid "dashboard.export.options.all.message" +msgstr "使用了共用資料庫的檔案將被包含在匯出內,並保持他們的連結關係。" + +#: src/app/main/ui/settings/access-tokens.cljs +msgid "dashboard.access-tokens.create" +msgstr "產生新的 Token" + +#: src/app/main/ui/settings/access-tokens.cljs +msgid "dashboard.access-tokens.empty.no-access-tokens" +msgstr "你目前還沒有 Tokens。" + +#: src/app/main/ui/settings/access-tokens.cljs +msgid "dashboard.access-tokens.empty.add-one" +msgstr "按下\"產生新 Token\" 按鈕來產生一個。" + +#: src/app/main/ui/settings/access-tokens.cljs +msgid "dashboard.access-tokens.create.success" +msgstr "已成功建立 Access Token。" + +#: src/app/main/ui/settings/access-tokens.cljs +msgid "dashboard.access-tokens.no-expiration" +msgstr "沒有到期時間" + +#: src/app/main/ui/settings/access-tokens.cljs +msgid "dashboard.access-tokens.copied-success" +msgstr "已複製 Token" + +#: src/app/main/ui/settings/access-tokens.cljs +msgid "dashboard.access-tokens.errors-required-name" +msgstr "名稱是必填的" + +#: src/app/main/ui/settings/access-tokens.cljs +msgid "dashboard.access-tokens.token-will-expire" +msgstr "權杖將於 %s 到期" + +msgid "dashboard.export.options.merge.title" +msgstr "將共享資料庫的內容加入檔案資料庫" + +#: src/app/main/ui/settings/team-form.cljs, src/app/main/ui/auth/register.cljs, src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/onboarding/team_choice.cljs, src/app/main/ui/settings/access_tokens.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/settings/profile.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +msgid "auth.name.not-all-space" +msgstr "名稱內必須包含空白以外的文字。" + +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/onboarding/team_choice.cljs, src/app/main/ui/settings/access_tokens.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/settings/profile.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +msgid "auth.name.too-long" +msgstr "名稱最多包含 250 個字元。" + +#: src/app/main/ui/settings/access-tokens.cljs +msgid "dashboard.access-tokens.expiration-90-days" +msgstr "90 天" + +#: src/app/main/ui/settings/access-tokens.cljs +msgid "dashboard.access-tokens.expires-on" +msgstr "將於 %s 過期" + +#: src/app/main/ui/settings/access-tokens.cljs +msgid "dashboard.access-tokens.expired-on" +msgstr "已於 %s 過期" + +#: src/app/main/ui/dashboard/file_menu.cljs +msgid "dashboard.success-delete-file" +msgid_plural "dashboard.success-delete-file" +msgstr[0] "已成功刪除您的檔案" + +#: src/app/main/ui/dashboard/file_menu.cljs +#, fuzzy +msgid "dashboard.success-duplicate-file" +msgid_plural "dashboard.success-delete-file" +msgstr[0] "已成功為您的檔案建立副本" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.login-account-title" +msgstr "登入我的帳號" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.login-tagline" +msgstr "Penpot 是用於設計與開發協作,免費且開源的設計工具" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "branding-illustrations-marketing-pieces" +msgstr "...品牌設計、插畫、行銷素材等。" + +#: src/app/main/ui/auth/register.cljs +msgid "auth.password-not-empty" +msgstr "密碼必須包含空白以外的字元。" + +#: src/app/main/ui/settings/access-tokens.cljs +msgid "dashboard.access-tokens.personal" +msgstr "個人存取權杖" + +msgid "dashboard.export.options.detach.message" +msgstr "共用資料庫將不包含在匯出檔案內,且資產不會被加入資料庫。 " + +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +msgid "dashboard.remove-shared" +msgstr "不再作為共用資料庫" + +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +msgid "dashboard.unpublish-shared" +msgstr "取消發佈資料庫" From ee0492120a6f1e251de92396d669807ed3d9d676 Mon Sep 17 00:00:00 2001 From: Andy Li Date: Sat, 11 May 2024 08:34:08 +0000 Subject: [PATCH 011/476] :globe_with_meridians: Add translations for: Chinese (Traditional). Currently translated at 47.2% (651 of 1379 strings) Translation: Penpot/frontend Translate-URL: https://hosted.weblate.org/projects/penpot/frontend/zh_Hant/ --- frontend/translations/zh_Hant.po | 30 ++++++++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/frontend/translations/zh_Hant.po b/frontend/translations/zh_Hant.po index 695a21a597..b5e40d2ef4 100644 --- a/frontend/translations/zh_Hant.po +++ b/frontend/translations/zh_Hant.po @@ -1,6 +1,6 @@ msgid "" msgstr "" -"PO-Revision-Date: 2024-05-05 05:07+0000\n" +"PO-Revision-Date: 2024-05-12 09:01+0000\n" "Last-Translator: Andy Li \n" "Language-Team: Chinese (Traditional) \n" @@ -9,7 +9,7 @@ msgstr "" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 5.5.3\n" +"X-Generator: Weblate 5.5.4\n" #: src/app/main/ui/auth/register.cljs msgid "auth.already-have-account" @@ -2442,3 +2442,29 @@ msgstr "不再作為共用資料庫" #: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.unpublish-shared" msgstr "取消發佈資料庫" + +msgid "errors.cannot-upload" +msgstr "無法上傳此媒體檔案。" + +#: src/app/main/ui/settings/access-tokens.cljs +msgid "dashboard.access-tokens.personal.description" +msgstr "個人存取權杖就像是帳號密碼驗證系統的替代方案,且可用於讓第三方應用程式存取 " +"Penpot 內部 API" + +#: src/app/main/data/users.cljs +msgid "errors.email-domain-not-allowed" +msgstr "不允許此域名" + +msgid "errors.paste-data-validation" +msgstr "剪貼簿中的資料無效" + +msgid "dashboard.import.analyze-error.components-v2" +msgstr "檔案中啟用了 Components v2 但這個團隊尚未支援。" + +#: src/app/main/ui/confirm.cljs +msgid "ds.component-subtitle" +msgstr "待更新的元件:" + +#: src/app/main/data/users.cljs +msgid "errors.auth-provider-not-allowed" +msgstr "此設定檔不允許此驗證提供者" From 50d1d19d252062e587cf5a9704463009083c5296 Mon Sep 17 00:00:00 2001 From: Amine Gdoura Date: Sun, 19 May 2024 06:47:25 +0000 Subject: [PATCH 012/476] :globe_with_meridians: Add translations for: Arabic. Currently translated at 82.0% (1131 of 1379 strings) Translation: Penpot/frontend Translate-URL: https://hosted.weblate.org/projects/penpot/frontend/ar/ --- frontend/translations/ar.po | 56 +++++++++++++++++++++++++++++++++---- 1 file changed, 51 insertions(+), 5 deletions(-) diff --git a/frontend/translations/ar.po b/frontend/translations/ar.po index 2ec16828b4..8373637417 100644 --- a/frontend/translations/ar.po +++ b/frontend/translations/ar.po @@ -1,16 +1,16 @@ msgid "" msgstr "" -"PO-Revision-Date: 2024-04-24 12:55+0000\n" -"Last-Translator: Anonymous \n" -"Language-Team: Arabic " -"\n" +"PO-Revision-Date: 2024-05-19 11:01+0000\n" +"Last-Translator: Amine Gdoura \n" +"Language-Team: Arabic \n" "Language: ar\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " "&& n%100<=10 ? 3 : n%100>=11 ? 4 : 5;\n" -"X-Generator: Weblate 5.5.1-dev\n" +"X-Generator: Weblate 5.6-dev\n" #: src/app/main/ui/auth/register.cljs msgid "auth.already-have-account" @@ -4303,3 +4303,49 @@ msgstr "تحديث" msgid "workspace.viewport.click-to-close-path" msgstr "انقر لتغلق المسار" + +msgid "workspace.top-bar.read-only.done" +msgstr "تم" + +#: src/app/main/ui/settings/access-tokens.cljs +msgid "dashboard.access-tokens.copied-success" +msgstr "الرمز منسوخ" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.login-tagline" +msgstr "Penpot هو أداة تصميم مجانية ومفتوحة المصدر للتعاون بين التصميم والبرمجة" + +#: src/app/main/ui/settings/team-form.cljs, src/app/main/ui/auth/register.cljs, src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/onboarding/team_choice.cljs, src/app/main/ui/settings/access_tokens.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/settings/profile.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +msgid "auth.name.not-all-space" +msgstr "يجب أن يحتوي الاسم على بعض الأحرف غير الفراغات." + +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/onboarding/team_choice.cljs, src/app/main/ui/settings/access_tokens.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/settings/profile.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +msgid "auth.name.too-long" +msgstr "يجب أن يحتوي الاسم على 250 حرفًا كحد أقصى." + +#: src/app/main/ui/settings/access-tokens.cljs +msgid "dashboard.access-tokens.empty.add-one" +msgstr "اضغط على الزر \"إنشاء رمز جديد\" لإنشاء واحد." + +#: src/app/main/ui/onboarding/questions.cljs +msgid "branding-illustrations-marketing-pieces" +msgstr "...علامة تجارية، رسوم توضيحية، قطع تسويقية، إلخ." + +#: src/app/main/ui/auth/login.cljs +msgid "auth.login-account-title" +msgstr "قم بتسجيل الدخول إلى حسابي" + +#: src/app/main/ui/auth/register.cljs +#, markdown +msgid "auth.terms-privacy-agreement-md" +msgstr "" +"عند إنشاء حساب جديد، فإنك توافق على [شروط الخدمة](%s) و [سياسة الخصوصية](%s) " +"الخاصة بنا." + +#: src/app/main/ui/settings/access-tokens.cljs +msgid "dashboard.access-tokens.create" +msgstr "قم بإنشاء رمز جديد" + +#: src/app/main/ui/settings/access-tokens.cljs +msgid "dashboard.access-tokens.create.success" +msgstr "تم إنشاء رمز الوصول بنجاح." From a217d2085a5fcffc12b4b0bb0fd170ff0b0c96a1 Mon Sep 17 00:00:00 2001 From: Chan Young Park Date: Wed, 22 May 2024 21:05:36 +0000 Subject: [PATCH 013/476] :globe_with_meridians: Add translations for: Korean. Currently translated at 15.7% (217 of 1379 strings) Translation: Penpot/frontend Translate-URL: https://hosted.weblate.org/projects/penpot/frontend/ko/ --- frontend/translations/ko.po | 160 +++++++++++++++++++++++++++++++++--- 1 file changed, 150 insertions(+), 10 deletions(-) diff --git a/frontend/translations/ko.po b/frontend/translations/ko.po index 8105950ad9..8beffa87e8 100644 --- a/frontend/translations/ko.po +++ b/frontend/translations/ko.po @@ -1,15 +1,15 @@ msgid "" msgstr "" -"PO-Revision-Date: 2023-04-13 12:50+0000\n" -"Last-Translator: Suhwan Kim \n" -"Language-Team: Korean " -"\n" +"PO-Revision-Date: 2024-05-23 20:09+0000\n" +"Last-Translator: Chan Young Park \n" +"Language-Team: Korean \n" "Language: ko\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 4.17-dev\n" +"X-Generator: Weblate 5.6-dev\n" #: src/app/main/ui/auth/register.cljs msgid "auth.already-have-account" @@ -45,15 +45,15 @@ msgstr "로그인" #: src/app/main/ui/auth/login.cljs msgid "auth.login-with-github-submit" -msgstr "GitHub" +msgstr "깃허브 (GitHub)" #: src/app/main/ui/auth/login.cljs msgid "auth.login-with-gitlab-submit" -msgstr "GitLab" +msgstr "깃랩 (GitLab)" #: src/app/main/ui/auth/login.cljs msgid "auth.login-with-google-submit" -msgstr "구글" +msgstr "구글 (Google)" #: src/app/main/ui/auth/recovery.cljs msgid "auth.new-password" @@ -112,7 +112,7 @@ msgstr "계정을 생성하세요" #: src/app/main/ui/auth/register.cljs msgid "auth.register-subtitle" -msgstr "무료고 오픈소스에요" +msgstr "무료 오픈 소스입니다" #: src/app/main/ui/auth/register.cljs msgid "auth.register-title" @@ -127,7 +127,8 @@ msgstr "서비스 정책" #: src/app/main/ui/auth/register.cljs msgid "auth.terms-privacy-agreement" -msgstr "새로운 계정을 생성하실 때, 서비스 정책과 개인 정보 정책에 동의해요" +msgstr "새로운 계정을 생성하시면, 사용자는 펜팟의 서비스 정책과 개인 정보 정책에 " +"동의하는 것으로 간주됩니다." #: src/app/main/ui/auth/register.cljs msgid "auth.verification-email-sent" @@ -674,3 +675,142 @@ msgstr "그룹" msgid "shortcuts.h-distribute" msgstr "가로로 분배하기" + +#: src/app/main/ui/auth/register.cljs +msgid "auth.check-your-email" +msgstr "이메일에 포함된 링크를 클릭하여 계정을 인증하고 펜팟의 사용을 시작하십시오." + +#: src/app/main/ui/auth/register.cljs +msgid "auth.fullname" +msgstr "이름 (성명)" + +#: src/app/main/ui/auth/register.cljs +msgid "auth.demo-warning" +msgstr "데모 서비스입니다. 실제 작업에 사용하지 마십시오. 생성된 프로젝트는 " +"주기적으로 삭제될 것입니다." + +#: src/app/main/ui/auth/recovery.cljs +msgid "auth.notifications.invalid-token-error" +msgstr "복구 토큰이 유효하지 않습니다." + +msgid "common.share-link.destroy-link" +msgstr "링크 제거하기" + +#: src/app/main/ui/dashboard/projects.cljs +msgid "dasboard.walkthrough-hero.info" +msgstr "펜팟을 둘러보고 주요 기능에 대한 정보를 습득하십시오." + +#: src/app/main/ui/dashboard/projects.cljs +msgid "dasboard.walkthrough-hero.title" +msgstr "인터페이스 둘러보기" + +#: src/app/main/ui/settings/access-tokens.cljs +msgid "dashboard.access-tokens.create" +msgstr "새로운 토큰 생성하기" + +#: src/app/main/ui/settings/access-tokens.cljs +msgid "dashboard.access-tokens.empty.add-one" +msgstr "\"새로운 토큰 생성하기\" 버튼을 눌러 토큰을 생성하십시오." + +#: src/app/main/ui/settings/access-tokens.cljs +msgid "dashboard.access-tokens.empty.no-access-tokens" +msgstr "현재 가지고 있는 토큰이 없습니다." + +#: src/app/main/ui/settings/access-tokens.cljs +msgid "dashboard.access-tokens.personal" +msgstr "개인용 엑세스 토큰" + +#: src/app/main/ui/settings/access-tokens.cljs +msgid "dashboard.access-tokens.expired-on" +msgstr "%s에 만료되었습니다" + +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/onboarding/team_choice.cljs, src/app/main/ui/settings/access_tokens.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/settings/profile.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +msgid "auth.name.too-long" +msgstr "이름은 최대 250자까지만 입력 가능합니다." + +#: src/app/main/ui/settings/access-tokens.cljs +msgid "dashboard.access-tokens.errors-required-name" +msgstr "이름을 입력하십시오" + +#: src/app/main/ui/settings/access-tokens.cljs +msgid "dashboard.access-tokens.copied-success" +msgstr "복사된 토큰" + +#: src/app/main/ui/settings/access-tokens.cljs +msgid "dashboard.access-tokens.expiration-90-days" +msgstr "90일" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.login-with-ldap-submit" +msgstr "LDAP" + +#: src/app/main/ui/settings/access-tokens.cljs +msgid "dashboard.access-tokens.expires-on" +msgstr "%s에 만료됩니다" + +#: src/app/main/ui/settings/access-tokens.cljs +msgid "dashboard.access-tokens.no-expiration" +msgstr "만료 기한 없음" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "branding-illustrations-marketing-pieces" +msgstr "...브랜딩, 일러스트레이션, 마케팅 자료 등." + +#: src/app/main/ui/auth/login.cljs +msgid "auth.login-tagline" +msgstr "펜팟은 디자인과 코딩의 협업을 위한 무료 오픈소스 디자인 도구입니다" + +#: src/app/main/ui/auth/register.cljs +msgid "auth.password-not-empty" +msgstr "비밀번호는 공백 이외의 글자를 포함해야 합니다." + +#: src/app/main/ui/auth/register.cljs +#, markdown +msgid "auth.terms-privacy-agreement-md" +msgstr "새로운 계정을 생성하시면, 사용자는 펜팟의 [서비스 정책](%s)과 [개인 정보 " +"정책](%s)에 동의하는 것으로 간주됩니다." + +#: src/app/main/ui/dashboard/projects.cljs +msgid "dasboard.team-hero.text" +msgstr "펜팟은 팀을 위한 도구입니다. 팀원들을 초대하여 프로젝트 및 파일 단위로 " +"협업하십시오" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.login-with-oidc-submit" +msgstr "오픈아이디 (OpenID)" + +#: src/app/main/ui/dashboard/projects.cljs +msgid "dasboard.tutorial-hero.title" +msgstr "실습용 튜토리얼" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.login-account-title" +msgstr "내 계정에 로그인하기" + +#: src/app/main/ui/settings/team-form.cljs, src/app/main/ui/auth/register.cljs, src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/onboarding/team_choice.cljs, src/app/main/ui/settings/access_tokens.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/settings/profile.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +msgid "auth.name.not-all-space" +msgstr "이름은 공백 이외의 글자를 포함해야 합니다." + +#: src/app/main/ui/dashboard/projects.cljs +msgid "dasboard.tutorial-hero.info" +msgstr "본 실습용 튜토리얼을 통해 펜팟의 기본 기능에 대하여 재미있게 학습하십시오." + +#: src/app/main/ui/settings/access-tokens.cljs +msgid "dashboard.access-tokens.create.success" +msgstr "엑세스 토큰이 성공적으로 생성되었습니다." + +#: src/app/main/ui/settings/access-tokens.cljs +msgid "dashboard.access-tokens.expiration-180-days" +msgstr "180일" + +#: src/app/main/ui/settings/access-tokens.cljs +msgid "dashboard.access-tokens.expiration-30-days" +msgstr "30일" + +#: src/app/main/ui/settings/access-tokens.cljs +msgid "dashboard.access-tokens.expiration-60-days" +msgstr "60일" + +#: src/app/main/ui/settings/access-tokens.cljs +msgid "dashboard.access-tokens.expiration-never" +msgstr "기한 없음" From 6c34706160ec4d1192139a19bee681f6fd855783 Mon Sep 17 00:00:00 2001 From: Chan Young Park Date: Fri, 24 May 2024 17:22:42 +0000 Subject: [PATCH 014/476] :globe_with_meridians: Add translations for: Korean. Currently translated at 16.2% (224 of 1379 strings) Translation: Penpot/frontend Translate-URL: https://hosted.weblate.org/projects/penpot/frontend/ko/ --- frontend/translations/ko.po | 37 +++++++++++++++++++++++++++++++++++-- 1 file changed, 35 insertions(+), 2 deletions(-) diff --git a/frontend/translations/ko.po b/frontend/translations/ko.po index 8beffa87e8..5f106ceb22 100644 --- a/frontend/translations/ko.po +++ b/frontend/translations/ko.po @@ -1,6 +1,6 @@ msgid "" msgstr "" -"PO-Revision-Date: 2024-05-23 20:09+0000\n" +"PO-Revision-Date: 2024-05-25 18:09+0000\n" "Last-Translator: Chan Young Park \n" "Language-Team: Korean \n" @@ -120,7 +120,7 @@ msgstr "계정을 생성하세요" #: src/app/main/ui/auth.cljs msgid "auth.sidebar-tagline" -msgstr "디자인과 프로토타이핑을 위한 오픈소스 솔루션" +msgstr "디자인과 프로토타이핑을 위한 오픈소스 솔루션." msgid "auth.terms-of-service" msgstr "서비스 정책" @@ -814,3 +814,36 @@ msgstr "60일" #: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-never" msgstr "기한 없음" + +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +msgid "dashboard.add-shared" +msgstr "공유 라이브러리로 추가하기" + +#: src/app/main/ui/settings/access-tokens.cljs +msgid "dashboard.access-tokens.personal.description" +msgstr "" +"개인용 엑세스 토큰은 펜팟의 로그인/암호 인증 시스템의 대안으로 사용되며, " +"어플리케이션의 펜팟 내부 API 엑세스를 위해 사용될 수 있습니다" + +msgid "common.share-link.page-shared" +msgid_plural "common.share-link.page-shared" +msgstr[0] "%s 페이지가 공유되었습니다" + +#: src/app/main/ui/settings/access-tokens.cljs +msgid "dashboard.access-tokens.token-will-expire" +msgstr "토큰은 %s에 만료 예정입니다" + +#: src/app/main/ui/settings/access-tokens.cljs +msgid "dashboard.access-tokens.token-will-not-expire" +msgstr "토큰의 만료 기한이 없습니다" + +msgid "dashboard.export-binary-multi" +msgstr "%s 펜팟 파일 (.penpot) 다운로드 하기" + +#: src/app/main/ui/dashboard/grid.cljs +#, markdown +msgid "dashboard.empty-placeholder-drafts" +msgstr "" +"라이브러리에 추가된 파일은 여기에서 볼 수 있습니다. 파일을 공유하거나 펜팟의 " +"[라이브러리와 템플릿](https://penpot.app/libraries-templates.html) 에서 " +"추가해 보십시오." From 1d7c7f4a72013e2e3658bc0ad51408e21e3a5d17 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Fri, 31 May 2024 11:55:29 +0200 Subject: [PATCH 015/476] :arrow_up: Update react to 18.3.1 --- frontend/deps.edn | 4 ++-- frontend/package.json | 4 ++-- frontend/yarn.lock | 26 +++++++++++++------------- 3 files changed, 17 insertions(+), 17 deletions(-) diff --git a/frontend/deps.edn b/frontend/deps.edn index 3cd46d85af..caa6f950c1 100644 --- a/frontend/deps.edn +++ b/frontend/deps.edn @@ -19,8 +19,8 @@ :git/url "https://github.com/funcool/beicon.git"} funcool/rumext - {:git/tag "v2.11.3" - :git/sha "b1f6ce4" + {:git/tag "v2.12" + :git/sha "ab819f5" :git/url "https://github.com/funcool/rumext.git"} instaparse/instaparse {:mvn/version "1.4.12"} diff --git a/frontend/package.json b/frontend/package.json index 95da9ca773..8681d24e51 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -100,8 +100,8 @@ "opentype.js": "^1.3.4", "postcss-modules": "^6.0.0", "randomcolor": "^0.6.2", - "react": "18.2.0", - "react-dom": "18.2.0", + "react": "18.3.1", + "react-dom": "18.3.1", "react-virtualized": "^9.22.5", "rxjs": "8.0.0-alpha.14", "sax": "^1.3.0", diff --git a/frontend/yarn.lock b/frontend/yarn.lock index 2087b29ae1..2023c70707 100644 --- a/frontend/yarn.lock +++ b/frontend/yarn.lock @@ -7961,8 +7961,8 @@ __metadata: pretty-time: "npm:^1.1.0" prop-types: "npm:^15.8.1" randomcolor: "npm:^0.6.2" - react: "npm:18.2.0" - react-dom: "npm:18.2.0" + react: "npm:18.3.1" + react-dom: "npm:18.3.1" react-virtualized: "npm:^9.22.5" rimraf: "npm:^5.0.5" rxjs: "npm:8.0.0-alpha.14" @@ -12497,15 +12497,15 @@ __metadata: languageName: node linkType: hard -"react-dom@npm:18.2.0": - version: 18.2.0 - resolution: "react-dom@npm:18.2.0" +"react-dom@npm:18.3.1": + version: 18.3.1 + resolution: "react-dom@npm:18.3.1" dependencies: loose-envify: "npm:^1.1.0" - scheduler: "npm:^0.23.0" + scheduler: "npm:^0.23.2" peerDependencies: - react: ^18.2.0 - checksum: 10c0/66dfc5f93e13d0674e78ef41f92ed21dfb80f9c4ac4ac25a4b51046d41d4d2186abc915b897f69d3d0ebbffe6184e7c5876f2af26bfa956f179225d921be713a + react: ^18.3.1 + checksum: 10c0/a752496c1941f958f2e8ac56239172296fcddce1365ce45222d04a1947e0cc5547df3e8447f855a81d6d39f008d7c32eab43db3712077f09e3f67c4874973e85 languageName: node linkType: hard @@ -12634,12 +12634,12 @@ __metadata: languageName: node linkType: hard -"react@npm:18.2.0": - version: 18.2.0 - resolution: "react@npm:18.2.0" +"react@npm:18.3.1": + version: 18.3.1 + resolution: "react@npm:18.3.1" dependencies: loose-envify: "npm:^1.1.0" - checksum: 10c0/b562d9b569b0cb315e44b48099f7712283d93df36b19a39a67c254c6686479d3980b7f013dc931f4a5a3ae7645eae6386b4aa5eea933baa54ecd0f9acb0902b8 + checksum: 10c0/283e8c5efcf37802c9d1ce767f302dd569dd97a70d9bb8c7be79a789b9902451e0d16334b05d73299b20f048cbc3c7d288bbbde10b701fa194e2089c237dbea3 languageName: node linkType: hard @@ -13530,7 +13530,7 @@ __metadata: languageName: node linkType: hard -"scheduler@npm:^0.23.0": +"scheduler@npm:^0.23.2": version: 0.23.2 resolution: "scheduler@npm:0.23.2" dependencies: From e2dd6a379114f6740f8be7364686d8ead7be0fe4 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Fri, 31 May 2024 12:34:07 +0200 Subject: [PATCH 016/476] :arrow_up: Update playwright --- frontend/package.json | 2 +- frontend/yarn.lock | 30 +++++++++++++++--------------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/frontend/package.json b/frontend/package.json index 8681d24e51..db5ba1114b 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -38,7 +38,7 @@ "storybook:build": "yarn run storybook:compile && storybook build" }, "devDependencies": { - "@playwright/test": "1.42.1", + "@playwright/test": "1.44.1", "@storybook/addon-essentials": "^7.6.17", "@storybook/addon-interactions": "^7.6.17", "@storybook/addon-links": "^7.6.17", diff --git a/frontend/yarn.lock b/frontend/yarn.lock index 2023c70707..4c46713f81 100644 --- a/frontend/yarn.lock +++ b/frontend/yarn.lock @@ -2161,14 +2161,14 @@ __metadata: languageName: node linkType: hard -"@playwright/test@npm:1.42.1": - version: 1.42.1 - resolution: "@playwright/test@npm:1.42.1" +"@playwright/test@npm:1.44.1": + version: 1.44.1 + resolution: "@playwright/test@npm:1.44.1" dependencies: - playwright: "npm:1.42.1" + playwright: "npm:1.44.1" bin: playwright: cli.js - checksum: 10c0/e5d7c1ffedabb934643edb010038edcb70d51d224fb6444844a854d94365a6179d4407a83da176cae37ccd42b62c148843e0b6f9b4c6506048e06558c00d4267 + checksum: 10c0/f72669db3dfa83dc12d43ddbce8fbb27a69a80347b515fa00d8467ca640f8c7b7f5f5ff6d6cdfc5a1bce2c7d4b6ee62b988d682ef265f567302998de4f2a64ab languageName: node linkType: hard @@ -7912,7 +7912,7 @@ __metadata: version: 0.0.0-use.local resolution: "frontend@workspace:." dependencies: - "@playwright/test": "npm:1.42.1" + "@playwright/test": "npm:1.44.1" "@storybook/addon-essentials": "npm:^7.6.17" "@storybook/addon-interactions": "npm:^7.6.17" "@storybook/addon-links": "npm:^7.6.17" @@ -11890,27 +11890,27 @@ __metadata: languageName: node linkType: hard -"playwright-core@npm:1.42.1": - version: 1.42.1 - resolution: "playwright-core@npm:1.42.1" +"playwright-core@npm:1.44.1": + version: 1.44.1 + resolution: "playwright-core@npm:1.44.1" bin: playwright-core: cli.js - checksum: 10c0/9bb0be6defa32eb1b01429615f10c2ad17dcf701656c081a250369c1eb3b0dcc2a0ee21188cd653cdd2303ca73ff94df0d270b178fe3897eba274793dab368ce + checksum: 10c0/6ffa3a04822b3df86d7f47a97e4f20318c0c50868ba4311820e6626ecadaab1424fbd0a3d01f0b4228adc0c781115e44b801742a4970b88739f804d82f142d68 languageName: node linkType: hard -"playwright@npm:1.42.1": - version: 1.42.1 - resolution: "playwright@npm:1.42.1" +"playwright@npm:1.44.1": + version: 1.44.1 + resolution: "playwright@npm:1.44.1" dependencies: fsevents: "npm:2.3.2" - playwright-core: "npm:1.42.1" + playwright-core: "npm:1.44.1" dependenciesMeta: fsevents: optional: true bin: playwright: cli.js - checksum: 10c0/91dcbfe92d75ca9eb4bfff69bb1ec28007b5a96f6187f48e52aa0f6acf8c24f6039ed6467c152964cc92f4ab64b85dc665b13c52b2fb9f7b9182ddb9db404e37 + checksum: 10c0/de827d17746b18ae2ec67d510a640d8ceebf8ee8e3d8399bccffa83b76a967498ca377777e4e6a1daaef4b3c86cb2c44c7468de53d2d915acc61b3b89c032738 languageName: node linkType: hard From 76ca1d9be8e584754adc45c03c6973f36c3e3361 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Fri, 31 May 2024 12:59:11 +0200 Subject: [PATCH 017/476] :arrow_up: Update frontend npm dependencies --- frontend/deps.edn | 2 +- frontend/package.json | 32 +++++----- frontend/yarn.lock | 132 +++++++++++++++++++++++------------------- 3 files changed, 90 insertions(+), 76 deletions(-) diff --git a/frontend/deps.edn b/frontend/deps.edn index caa6f950c1..749a70167d 100644 --- a/frontend/deps.edn +++ b/frontend/deps.edn @@ -41,7 +41,7 @@ :dev {:extra-paths ["dev"] :extra-deps - {thheller/shadow-cljs {:mvn/version "2.27.4"} + {thheller/shadow-cljs {:mvn/version "2.28.8"} org.clojure/tools.namespace {:mvn/version "RELEASE"} cider/cider-nrepl {:mvn/version "0.44.0"}}} diff --git a/frontend/package.json b/frontend/package.json index db5ba1114b..64b8d826bd 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -49,7 +49,7 @@ "@storybook/testing-library": "^0.2.2", "@types/node": "^20.11.20", "animate.css": "^4.1.1", - "autoprefixer": "^10.4.17", + "autoprefixer": "^10.4.19", "concurrently": "^8.2.2", "draft-js": "git+https://github.com/penpot/draft-js.git#commit=4a99b2a6020b2af97f6dc5fa1b4275ec16b559a0", "express": "^4.19.2", @@ -64,33 +64,33 @@ "gulp-sass": "^5.1.0", "gulp-sourcemaps": "^3.0.0", "gulp-svg-sprite": "^2.0.3", - "jsdom": "^24.0.0", + "jsdom": "^24.1.0", "map-stream": "0.0.7", - "marked": "^12.0.0", + "marked": "^12.0.2", "mkdirp": "^3.0.1", "mustache": "^4.2.0", - "nodemon": "^3.1.0", + "nodemon": "^3.1.2", "npm-run-all": "^4.1.5", "p-limit": "^5.0.0", - "postcss": "^8.4.35", + "postcss": "^8.4.38", "postcss-clean": "^1.2.2", "prettier": "^3.2.5", "pretty-time": "^1.1.0", "prop-types": "^15.8.1", - "rimraf": "^5.0.5", - "sass": "^1.71.1", - "sass-embedded": "^1.71.1", - "shadow-cljs": "2.27.4", + "rimraf": "^5.0.7", + "sass": "^1.77.4", + "sass-embedded": "^1.77.2", + "shadow-cljs": "2.28.8", "storybook": "^7.6.17", - "svg-sprite": "^2.0.2", - "typescript": "^5.3.3", + "svg-sprite": "^2.0.4", + "typescript": "^5.4.5", "vite": "^5.1.4", "vitest": "^1.3.1", - "watcher": "^2.3.0", - "workerpool": "^9.1.0" + "watcher": "^2.3.1", + "workerpool": "^9.1.1" }, "dependencies": { - "date-fns": "^3.3.1", + "date-fns": "^3.6.0", "eventsource-parser": "^1.1.2", "highlight.js": "^11.9.0", "js-beautify": "^1.15.1", @@ -104,10 +104,10 @@ "react-dom": "18.3.1", "react-virtualized": "^9.22.5", "rxjs": "8.0.0-alpha.14", - "sax": "^1.3.0", + "sax": "^1.4.1", "source-map-support": "^0.5.21", "tdigest": "^0.1.2", - "ua-parser-js": "^1.0.37", + "ua-parser-js": "^1.0.38", "xregexp": "^5.1.1" } } diff --git a/frontend/yarn.lock b/frontend/yarn.lock index 4c46713f81..c93f4b0413 100644 --- a/frontend/yarn.lock +++ b/frontend/yarn.lock @@ -4838,7 +4838,7 @@ __metadata: languageName: node linkType: hard -"autoprefixer@npm:^10.4.17": +"autoprefixer@npm:^10.4.19": version: 10.4.19 resolution: "autoprefixer@npm:10.4.19" dependencies: @@ -6254,7 +6254,7 @@ __metadata: languageName: node linkType: hard -"date-fns@npm:^3.3.1": +"date-fns@npm:^3.6.0": version: 3.6.0 resolution: "date-fns@npm:3.6.0" checksum: 10c0/0b5fb981590ef2f8e5a3ba6cd6d77faece0ea7f7158948f2eaae7bbb7c80a8f63ae30b01236c2923cf89bb3719c33aeb150c715ea4fe4e86e37dcf06bed42fb6 @@ -7923,9 +7923,9 @@ __metadata: "@storybook/testing-library": "npm:^0.2.2" "@types/node": "npm:^20.11.20" animate.css: "npm:^4.1.1" - autoprefixer: "npm:^10.4.17" + autoprefixer: "npm:^10.4.19" concurrently: "npm:^8.2.2" - date-fns: "npm:^3.3.1" + date-fns: "npm:^3.6.0" draft-js: "git+https://github.com/penpot/draft-js.git#commit=4a99b2a6020b2af97f6dc5fa1b4275ec16b559a0" eventsource-parser: "npm:^1.1.2" express: "npm:^4.19.2" @@ -7942,19 +7942,19 @@ __metadata: gulp-svg-sprite: "npm:^2.0.3" highlight.js: "npm:^11.9.0" js-beautify: "npm:^1.15.1" - jsdom: "npm:^24.0.0" + jsdom: "npm:^24.1.0" jszip: "npm:^3.10.1" luxon: "npm:^3.4.4" map-stream: "npm:0.0.7" - marked: "npm:^12.0.0" + marked: "npm:^12.0.2" mkdirp: "npm:^3.0.1" mousetrap: "npm:^1.6.5" mustache: "npm:^4.2.0" - nodemon: "npm:^3.1.0" + nodemon: "npm:^3.1.2" npm-run-all: "npm:^4.1.5" opentype.js: "npm:^1.3.4" p-limit: "npm:^5.0.0" - postcss: "npm:^8.4.35" + postcss: "npm:^8.4.38" postcss-clean: "npm:^1.2.2" postcss-modules: "npm:^6.0.0" prettier: "npm:^3.2.5" @@ -7964,22 +7964,22 @@ __metadata: react: "npm:18.3.1" react-dom: "npm:18.3.1" react-virtualized: "npm:^9.22.5" - rimraf: "npm:^5.0.5" + rimraf: "npm:^5.0.7" rxjs: "npm:8.0.0-alpha.14" - sass: "npm:^1.71.1" - sass-embedded: "npm:^1.71.1" - sax: "npm:^1.3.0" - shadow-cljs: "npm:2.27.4" + sass: "npm:^1.77.4" + sass-embedded: "npm:^1.77.2" + sax: "npm:^1.4.1" + shadow-cljs: "npm:2.28.8" source-map-support: "npm:^0.5.21" storybook: "npm:^7.6.17" - svg-sprite: "npm:^2.0.2" + svg-sprite: "npm:^2.0.4" tdigest: "npm:^0.1.2" - typescript: "npm:^5.3.3" - ua-parser-js: "npm:^1.0.37" + typescript: "npm:^5.4.5" + ua-parser-js: "npm:^1.0.38" vite: "npm:^5.1.4" vitest: "npm:^1.3.1" - watcher: "npm:^2.3.0" - workerpool: "npm:^9.1.0" + watcher: "npm:^2.3.1" + workerpool: "npm:^9.1.1" xregexp: "npm:^5.1.1" languageName: unknown linkType: soft @@ -8848,7 +8848,7 @@ __metadata: languageName: node linkType: hard -"http-proxy-agent@npm:^7.0.0": +"http-proxy-agent@npm:^7.0.0, http-proxy-agent@npm:^7.0.2": version: 7.0.2 resolution: "http-proxy-agent@npm:7.0.2" dependencies: @@ -8875,7 +8875,7 @@ __metadata: languageName: node linkType: hard -"https-proxy-agent@npm:^7.0.1, https-proxy-agent@npm:^7.0.2": +"https-proxy-agent@npm:^7.0.1, https-proxy-agent@npm:^7.0.4": version: 7.0.4 resolution: "https-proxy-agent@npm:7.0.4" dependencies: @@ -9856,37 +9856,37 @@ __metadata: languageName: node linkType: hard -"jsdom@npm:^24.0.0": - version: 24.0.0 - resolution: "jsdom@npm:24.0.0" +"jsdom@npm:^24.1.0": + version: 24.1.0 + resolution: "jsdom@npm:24.1.0" dependencies: cssstyle: "npm:^4.0.1" data-urls: "npm:^5.0.0" decimal.js: "npm:^10.4.3" form-data: "npm:^4.0.0" html-encoding-sniffer: "npm:^4.0.0" - http-proxy-agent: "npm:^7.0.0" - https-proxy-agent: "npm:^7.0.2" + http-proxy-agent: "npm:^7.0.2" + https-proxy-agent: "npm:^7.0.4" is-potential-custom-element-name: "npm:^1.0.1" - nwsapi: "npm:^2.2.7" + nwsapi: "npm:^2.2.10" parse5: "npm:^7.1.2" - rrweb-cssom: "npm:^0.6.0" + rrweb-cssom: "npm:^0.7.0" saxes: "npm:^6.0.0" symbol-tree: "npm:^3.2.4" - tough-cookie: "npm:^4.1.3" + tough-cookie: "npm:^4.1.4" w3c-xmlserializer: "npm:^5.0.0" webidl-conversions: "npm:^7.0.0" whatwg-encoding: "npm:^3.1.1" whatwg-mimetype: "npm:^4.0.0" whatwg-url: "npm:^14.0.0" - ws: "npm:^8.16.0" + ws: "npm:^8.17.0" xml-name-validator: "npm:^5.0.0" peerDependencies: canvas: ^2.11.2 peerDependenciesMeta: canvas: optional: true - checksum: 10c0/7b35043d7af39ad6dcaef0fa5679d8c8a94c6c9b6cc4a79222b7c9987d57ab7150c50856684ae56b473ab28c7d82aec0fb7ca19dcbd4c3f46683c807d717a3af + checksum: 10c0/34eadd8a7ae20c1505abe7a0f3988b2f0881cce7e27d75c4f5224f440f81f8ac08f4f449695b0f4178f048ed1c1709f3594e9d3f2fe0406c28e8da6eddd44f5a languageName: node linkType: hard @@ -10421,7 +10421,7 @@ __metadata: languageName: node linkType: hard -"marked@npm:^12.0.0": +"marked@npm:^12.0.2": version: 12.0.2 resolution: "marked@npm:12.0.2" bin: @@ -11044,9 +11044,9 @@ __metadata: languageName: node linkType: hard -"nodemon@npm:^3.1.0": - version: 3.1.0 - resolution: "nodemon@npm:3.1.0" +"nodemon@npm:^3.1.2": + version: 3.1.2 + resolution: "nodemon@npm:3.1.2" dependencies: chokidar: "npm:^3.5.2" debug: "npm:^4" @@ -11060,7 +11060,7 @@ __metadata: undefsafe: "npm:^2.0.5" bin: nodemon: bin/nodemon.js - checksum: 10c0/3aeb50105ecae31ce4d0a5cd464011d4aa0dc15419e39ac0fd203d784e38940e1436f4ed96adbaa0f9614ee0644f91e3cf38f2afae8d3918ae7afc51c7e2116b + checksum: 10c0/7a091067d766768fb6660b796194b01748bba5dc3f1e3ed3dd5f804bfa305e207d24635755078ee5e7cc53848cea35204901e0a6e51ac64483bb8e9ecb237c95 languageName: node linkType: hard @@ -11174,7 +11174,7 @@ __metadata: languageName: node linkType: hard -"nwsapi@npm:^2.2.7": +"nwsapi@npm:^2.2.10": version: 2.2.10 resolution: "nwsapi@npm:2.2.10" checksum: 10c0/43dfa150387bd2a578e37556d0ae3330d5617f99e5a7b64e3400d4c2785620762aa6169caf8f5fbce17b7ef29c372060b602594320c374fba0a39da4163d77ed @@ -12089,7 +12089,7 @@ __metadata: languageName: node linkType: hard -"postcss@npm:^8.4.35, postcss@npm:^8.4.38": +"postcss@npm:^8.4.38": version: 8.4.38 resolution: "postcss@npm:8.4.38" dependencies: @@ -13089,7 +13089,7 @@ __metadata: languageName: node linkType: hard -"rimraf@npm:^5.0.5": +"rimraf@npm:^5.0.7": version: 5.0.7 resolution: "rimraf@npm:5.0.7" dependencies: @@ -13205,6 +13205,13 @@ __metadata: languageName: node linkType: hard +"rrweb-cssom@npm:^0.7.0": + version: 0.7.0 + resolution: "rrweb-cssom@npm:0.7.0" + checksum: 10c0/278350b1f383f76db20e37394361b709740bd4f5f27f924e1c3c3fdd7112b2ae37ed9bc7cee63776f7df395b9b0f644d1f8be104990e3028d276a3288cd7e564 + languageName: node + linkType: hard + "run-parallel@npm:^1.1.9": version: 1.2.0 resolution: "run-parallel@npm:1.2.0" @@ -13435,7 +13442,7 @@ __metadata: languageName: node linkType: hard -"sass-embedded@npm:^1.71.1": +"sass-embedded@npm:^1.77.2": version: 1.77.2 resolution: "sass-embedded@npm:1.77.2" dependencies: @@ -13501,23 +13508,23 @@ __metadata: languageName: node linkType: hard -"sass@npm:^1.71.1": - version: 1.77.2 - resolution: "sass@npm:1.77.2" +"sass@npm:^1.77.4": + version: 1.77.4 + resolution: "sass@npm:1.77.4" dependencies: chokidar: "npm:>=3.0.0 <4.0.0" immutable: "npm:^4.0.0" source-map-js: "npm:>=0.6.2 <2.0.0" bin: sass: sass.js - checksum: 10c0/0d292339064de3c902e209d41de9c4eb2038cff326476aeebbb5be3eee1d23400d975face2b8e124ae617b10af3e93bec01580f61912f34e4c517fe137a118b6 + checksum: 10c0/b9cb4882bded282aabe38d011adfce375e1f282184fcf93dc3da5d5be834c6aa53c474c15634c351ef7bd85146cfd1cc81343654cc3bcf000d78e856da4225ef languageName: node linkType: hard -"sax@npm:^1.3.0": - version: 1.3.0 - resolution: "sax@npm:1.3.0" - checksum: 10c0/599dbe0ba9d8bd55e92d920239b21d101823a6cedff71e542589303fa0fa8f3ece6cf608baca0c51be846a2e88365fac94a9101a9c341d94b98e30c4deea5bea +"sax@npm:^1.4.1": + version: 1.4.1 + resolution: "sax@npm:1.4.1" + checksum: 10c0/6bf86318a254c5d898ede6bd3ded15daf68ae08a5495a2739564eb265cd13bcc64a07ab466fb204f67ce472bb534eb8612dac587435515169593f4fffa11de7c languageName: node linkType: hard @@ -13686,9 +13693,9 @@ __metadata: languageName: node linkType: hard -"shadow-cljs@npm:2.27.4": - version: 2.27.4 - resolution: "shadow-cljs@npm:2.27.4" +"shadow-cljs@npm:2.28.8": + version: 2.28.8 + resolution: "shadow-cljs@npm:2.28.8" dependencies: node-libs-browser: "npm:^2.2.1" readline-sync: "npm:^1.4.7" @@ -13698,7 +13705,7 @@ __metadata: ws: "npm:^7.4.6" bin: shadow-cljs: cli/runner.js - checksum: 10c0/bae23e71df9c2b2979259a0cde8747c923ee295f58ab4637c9d6b103d82542b40ef39172d4be2dbb94af2e6458a177d1ec96c1eb1e73b1d8f3a4ddb5eaaba7d4 + checksum: 10c0/061b5b3518ff21063474ad42ea3c4c1be21153e78b82fd488d1142de46e9f6e5c12c11475a7a44a1243c9740df724611763cbc48a6fa55ba80de7e885b824853 languageName: node linkType: hard @@ -14406,7 +14413,7 @@ __metadata: languageName: node linkType: hard -"svg-sprite@npm:^2.0.2": +"svg-sprite@npm:^2.0.2, svg-sprite@npm:^2.0.4": version: 2.0.4 resolution: "svg-sprite@npm:2.0.4" dependencies: @@ -14771,7 +14778,7 @@ __metadata: languageName: node linkType: hard -"tough-cookie@npm:^4.1.3": +"tough-cookie@npm:^4.1.4": version: 4.1.4 resolution: "tough-cookie@npm:4.1.4" dependencies: @@ -14961,7 +14968,7 @@ __metadata: languageName: node linkType: hard -"typescript@npm:^5.3.3": +"typescript@npm:^5.4.5": version: 5.4.5 resolution: "typescript@npm:5.4.5" bin: @@ -14971,7 +14978,7 @@ __metadata: languageName: node linkType: hard -"typescript@patch:typescript@npm%3A^5.3.3#optional!builtin": +"typescript@patch:typescript@npm%3A^5.4.5#optional!builtin": version: 5.4.5 resolution: "typescript@patch:typescript@npm%3A5.4.5#optional!builtin::version=5.4.5&hash=5adc0c" bin: @@ -14981,13 +14988,20 @@ __metadata: languageName: node linkType: hard -"ua-parser-js@npm:^1.0.35, ua-parser-js@npm:^1.0.37": +"ua-parser-js@npm:^1.0.35": version: 1.0.37 resolution: "ua-parser-js@npm:1.0.37" checksum: 10c0/dac8cf82a55b2e097bd2286954e01454c4cfcf23c9d9b56961ce94bda3cec5a38ca536e6e84c20a4000a9d4b4a4abcbd98ec634ccebe21be36595ea3069126e4 languageName: node linkType: hard +"ua-parser-js@npm:^1.0.38": + version: 1.0.38 + resolution: "ua-parser-js@npm:1.0.38" + checksum: 10c0/b1dd11b87e1784c79f7129e9aec679753fccf8a9b22f5202b79b19492635b5b46b779607a3cfae0270999a0d48da223bf94015642d2abee69d83c9069ab37bd0 + languageName: node + linkType: hard + "ufo@npm:^1.4.0, ufo@npm:^1.5.3": version: 1.5.3 resolution: "ufo@npm:1.5.3" @@ -15605,7 +15619,7 @@ __metadata: languageName: node linkType: hard -"watcher@npm:^2.3.0": +"watcher@npm:^2.3.1": version: 2.3.1 resolution: "watcher@npm:2.3.1" dependencies: @@ -15826,7 +15840,7 @@ __metadata: languageName: node linkType: hard -"workerpool@npm:^9.1.0": +"workerpool@npm:^9.1.1": version: 9.1.1 resolution: "workerpool@npm:9.1.1" checksum: 10c0/c48c481ec614f9ca36c219bcdd90c7de41157b86629dc908948923d3f69ad6a270f243edea40a3e0a102397845eb89b79cb64b9004288315b9844deb1d5195cb @@ -15917,7 +15931,7 @@ __metadata: languageName: node linkType: hard -"ws@npm:^8.16.0, ws@npm:^8.2.3": +"ws@npm:^8.17.0, ws@npm:^8.2.3": version: 8.17.0 resolution: "ws@npm:8.17.0" peerDependencies: From 87e3dc1c7cd9f0ceb1dc2d6be2ebdf157cc5c2ef Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Fri, 31 May 2024 13:28:32 +0200 Subject: [PATCH 018/476] :arrow_up: Update dependencies across all modules --- backend/deps.edn | 18 +-- backend/package.json | 8 +- backend/yarn.lock | 28 ++--- common/deps.edn | 18 +-- common/package.json | 8 +- common/yarn.lock | 28 ++--- exporter/deps.edn | 7 +- exporter/package.json | 8 +- exporter/yarn.lock | 254 +++++++++++++++++++++++------------------- frontend/deps.edn | 8 +- 10 files changed, 204 insertions(+), 181 deletions(-) diff --git a/backend/deps.edn b/backend/deps.edn index df9fd47084..0193d8b247 100644 --- a/backend/deps.edn +++ b/backend/deps.edn @@ -3,10 +3,10 @@ :deps {penpot/common {:local/root "../common"} - org.clojure/clojure {:mvn/version "1.12.0-alpha9"} + org.clojure/clojure {:mvn/version "1.12.0-alpha12"} org.clojure/tools.namespace {:mvn/version "1.5.0"} - com.github.luben/zstd-jni {:mvn/version "1.5.5-11"} + com.github.luben/zstd-jni {:mvn/version "1.5.6-3"} io.prometheus/simpleclient {:mvn/version "0.16.0"} io.prometheus/simpleclient_hotspot {:mvn/version "0.16.0"} @@ -26,13 +26,13 @@ :git/url "https://github.com/funcool/yetti.git" :exclusions [org.slf4j/slf4j-api]} - com.github.seancorfield/next.jdbc {:mvn/version "1.3.925"} - metosin/reitit-core {:mvn/version "0.6.0"} - nrepl/nrepl {:mvn/version "1.1.1"} - cider/cider-nrepl {:mvn/version "0.47.1"} + com.github.seancorfield/next.jdbc {:mvn/version "1.3.939"} + metosin/reitit-core {:mvn/version "0.7.0"} + nrepl/nrepl {:mvn/version "1.1.2"} + cider/cider-nrepl {:mvn/version "0.48.0"} org.postgresql/postgresql {:mvn/version "42.7.3"} - org.xerial/sqlite-jdbc {:mvn/version "3.45.2.0"} + org.xerial/sqlite-jdbc {:mvn/version "3.46.0.0"} com.zaxxer/HikariCP {:mvn/version "5.1.0"} @@ -74,13 +74,13 @@ :build {:extra-deps - {io.github.clojure/tools.build {:git/tag "v0.10.0" :git/sha "3a2c484"}} + {io.github.clojure/tools.build {:git/tag "v0.10.3" :git/sha "15ead66"}} :ns-default build} :test {:main-opts ["-m" "kaocha.runner"] :jvm-opts ["-Dlog4j2.configurationFile=log4j2-devenv-repl.xml"] - :extra-deps {lambdaisland/kaocha {:mvn/version "1.88.1376"}}} + :extra-deps {lambdaisland/kaocha {:mvn/version "1.91.1392"}}} :outdated {:extra-deps {com.github.liquidz/antq {:mvn/version "RELEASE"}} diff --git a/backend/package.json b/backend/package.json index 9efdad02c3..9e16c279a2 100644 --- a/backend/package.json +++ b/backend/package.json @@ -10,13 +10,13 @@ "url": "https://github.com/penpot/penpot" }, "dependencies": { - "luxon": "^3.4.2", - "sax": "^1.2.4" + "luxon": "^3.4.4", + "sax": "^1.4.1" }, "devDependencies": { - "nodemon": "^3.0.1", + "nodemon": "^3.1.2", "source-map-support": "^0.5.21", - "ws": "^8.13.0" + "ws": "^8.17.0" }, "scripts": { "fmt:clj:check": "cljfmt check --parallel=false src/ test/", diff --git a/backend/yarn.lock b/backend/yarn.lock index 8962bedea2..7e062d7275 100644 --- a/backend/yarn.lock +++ b/backend/yarn.lock @@ -118,11 +118,11 @@ __metadata: version: 0.0.0-use.local resolution: "backend@workspace:." dependencies: - luxon: "npm:^3.4.2" - nodemon: "npm:^3.0.1" - sax: "npm:^1.2.4" + luxon: "npm:^3.4.4" + nodemon: "npm:^3.1.2" + sax: "npm:^1.4.1" source-map-support: "npm:^0.5.21" - ws: "npm:^8.13.0" + ws: "npm:^8.17.0" languageName: unknown linkType: soft @@ -573,7 +573,7 @@ __metadata: languageName: node linkType: hard -"luxon@npm:^3.4.2": +"luxon@npm:^3.4.4": version: 3.4.4 resolution: "luxon@npm:3.4.4" checksum: 10c0/02e26a0b039c11fd5b75e1d734c8f0332c95510f6a514a9a0991023e43fb233884da02d7f966823ffb230632a733fc86d4a4b1e63c3fbe00058b8ee0f8c728af @@ -745,9 +745,9 @@ __metadata: languageName: node linkType: hard -"nodemon@npm:^3.0.1": - version: 3.1.0 - resolution: "nodemon@npm:3.1.0" +"nodemon@npm:^3.1.2": + version: 3.1.2 + resolution: "nodemon@npm:3.1.2" dependencies: chokidar: "npm:^3.5.2" debug: "npm:^4" @@ -761,7 +761,7 @@ __metadata: undefsafe: "npm:^2.0.5" bin: nodemon: bin/nodemon.js - checksum: 10c0/3aeb50105ecae31ce4d0a5cd464011d4aa0dc15419e39ac0fd203d784e38940e1436f4ed96adbaa0f9614ee0644f91e3cf38f2afae8d3918ae7afc51c7e2116b + checksum: 10c0/7a091067d766768fb6660b796194b01748bba5dc3f1e3ed3dd5f804bfa305e207d24635755078ee5e7cc53848cea35204901e0a6e51ac64483bb8e9ecb237c95 languageName: node linkType: hard @@ -870,10 +870,10 @@ __metadata: languageName: node linkType: hard -"sax@npm:^1.2.4": - version: 1.3.0 - resolution: "sax@npm:1.3.0" - checksum: 10c0/599dbe0ba9d8bd55e92d920239b21d101823a6cedff71e542589303fa0fa8f3ece6cf608baca0c51be846a2e88365fac94a9101a9c341d94b98e30c4deea5bea +"sax@npm:^1.4.1": + version: 1.4.1 + resolution: "sax@npm:1.4.1" + checksum: 10c0/6bf86318a254c5d898ede6bd3ded15daf68ae08a5495a2739564eb265cd13bcc64a07ab466fb204f67ce472bb534eb8612dac587435515169593f4fffa11de7c languageName: node linkType: hard @@ -1129,7 +1129,7 @@ __metadata: languageName: node linkType: hard -"ws@npm:^8.13.0": +"ws@npm:^8.17.0": version: 8.17.0 resolution: "ws@npm:8.17.0" peerDependencies: diff --git a/common/deps.edn b/common/deps.edn index 7040212887..57379fc355 100644 --- a/common/deps.edn +++ b/common/deps.edn @@ -1,10 +1,10 @@ {:deps {org.clojure/clojure {:mvn/version "1.11.2"} org.clojure/data.json {:mvn/version "2.5.0"} - org.clojure/tools.cli {:mvn/version "1.0.219"} + org.clojure/tools.cli {:mvn/version "1.1.230"} org.clojure/clojurescript {:mvn/version "1.11.132"} org.clojure/test.check {:mvn/version "1.1.1"} - org.clojure/data.fressian {:mvn/version "1.0.0"} + org.clojure/data.fressian {:mvn/version "1.1.0"} ;; Logging org.apache.logging.log4j/log4j-api {:mvn/version "2.23.1"} @@ -12,14 +12,14 @@ org.apache.logging.log4j/log4j-web {:mvn/version "2.23.1"} org.apache.logging.log4j/log4j-jul {:mvn/version "2.23.1"} org.apache.logging.log4j/log4j-slf4j2-impl {:mvn/version "2.23.1"} - org.slf4j/slf4j-api {:mvn/version "2.0.12"} + org.slf4j/slf4j-api {:mvn/version "2.0.13"} pl.tkowalcz.tjahzi/log4j2-appender {:mvn/version "0.9.32"} - selmer/selmer {:mvn/version "1.12.59"} + selmer/selmer {:mvn/version "1.12.61"} criterium/criterium {:mvn/version "0.4.6"} metosin/jsonista {:mvn/version "0.3.8"} - metosin/malli {:mvn/version "0.14.0"} + metosin/malli {:mvn/version "0.16.1"} expound/expound {:mvn/version "0.9.0"} com.cognitect/transit-clj {:mvn/version "1.0.333"} @@ -28,7 +28,7 @@ integrant/integrant {:mvn/version "0.8.1"} org.apache.commons/commons-pool2 {:mvn/version "2.12.0"} - org.graalvm.js/js {:mvn/version "23.0.3"} + org.graalvm.js/js {:mvn/version "23.0.4"} funcool/tubax {:mvn/version "2021.05.20-0"} funcool/cuerdas {:mvn/version "2023.11.09-407"} @@ -63,7 +63,7 @@ {:dev {:extra-deps {org.clojure/tools.namespace {:mvn/version "RELEASE"} - thheller/shadow-cljs {:mvn/version "2.27.4"} + thheller/shadow-cljs {:mvn/version "2.28.8"} com.clojure-goes-fast/clj-async-profiler {:mvn/version "RELEASE"} com.bhauman/rebel-readline {:mvn/version "RELEASE"} criterium/criterium {:mvn/version "RELEASE"} @@ -72,12 +72,12 @@ :build {:extra-deps - {io.github.clojure/tools.build {:git/tag "v0.10.0" :git/sha "3a2c484"}} + {io.github.clojure/tools.build {:git/tag "v0.10.3" :git/sha "15ead66"}} :ns-default build} :test {:main-opts ["-m" "kaocha.runner"] - :extra-deps {lambdaisland/kaocha {:mvn/version "1.88.1376"}}} + :extra-deps {lambdaisland/kaocha {:mvn/version "1.91.1392"}}} :shadow-cljs {:main-opts ["-m" "shadow.cljs.devtools.cli"]} diff --git a/common/package.json b/common/package.json index 5fc9cc0f4b..b5b3f1d5ab 100644 --- a/common/package.json +++ b/common/package.json @@ -11,13 +11,13 @@ "url": "https://github.com/penpot/penpot" }, "dependencies": { - "luxon": "^3.4.2", - "sax": "^1.2.4" + "luxon": "^3.4.4", + "sax": "^1.4.1" }, "devDependencies": { - "shadow-cljs": "2.27.4", + "shadow-cljs": "2.28.8", "source-map-support": "^0.5.21", - "ws": "^8.13.0" + "ws": "^8.17.0" }, "scripts": { "fmt:clj:check": "cljfmt check --parallel=false src/ test/", diff --git a/common/yarn.lock b/common/yarn.lock index a4d30e0beb..a766243365 100644 --- a/common/yarn.lock +++ b/common/yarn.lock @@ -352,11 +352,11 @@ __metadata: version: 0.0.0-use.local resolution: "common@workspace:." dependencies: - luxon: "npm:^3.4.2" - sax: "npm:^1.2.4" - shadow-cljs: "npm:2.27.4" + luxon: "npm:^3.4.4" + sax: "npm:^1.4.1" + shadow-cljs: "npm:2.28.8" source-map-support: "npm:^0.5.21" - ws: "npm:^8.13.0" + ws: "npm:^8.17.0" languageName: unknown linkType: soft @@ -913,7 +913,7 @@ __metadata: languageName: node linkType: hard -"luxon@npm:^3.4.2": +"luxon@npm:^3.4.4": version: 3.4.4 resolution: "luxon@npm:3.4.4" checksum: 10c0/02e26a0b039c11fd5b75e1d734c8f0332c95510f6a514a9a0991023e43fb233884da02d7f966823ffb230632a733fc86d4a4b1e63c3fbe00058b8ee0f8c728af @@ -1420,10 +1420,10 @@ __metadata: languageName: node linkType: hard -"sax@npm:^1.2.4": - version: 1.3.0 - resolution: "sax@npm:1.3.0" - checksum: 10c0/599dbe0ba9d8bd55e92d920239b21d101823a6cedff71e542589303fa0fa8f3ece6cf608baca0c51be846a2e88365fac94a9101a9c341d94b98e30c4deea5bea +"sax@npm:^1.4.1": + version: 1.4.1 + resolution: "sax@npm:1.4.1" + checksum: 10c0/6bf86318a254c5d898ede6bd3ded15daf68ae08a5495a2739564eb265cd13bcc64a07ab466fb204f67ce472bb534eb8612dac587435515169593f4fffa11de7c languageName: node linkType: hard @@ -1476,9 +1476,9 @@ __metadata: languageName: node linkType: hard -"shadow-cljs@npm:2.27.4": - version: 2.27.4 - resolution: "shadow-cljs@npm:2.27.4" +"shadow-cljs@npm:2.28.8": + version: 2.28.8 + resolution: "shadow-cljs@npm:2.28.8" dependencies: node-libs-browser: "npm:^2.2.1" readline-sync: "npm:^1.4.7" @@ -1488,7 +1488,7 @@ __metadata: ws: "npm:^7.4.6" bin: shadow-cljs: cli/runner.js - checksum: 10c0/bae23e71df9c2b2979259a0cde8747c923ee295f58ab4637c9d6b103d82542b40ef39172d4be2dbb94af2e6458a177d1ec96c1eb1e73b1d8f3a4ddb5eaaba7d4 + checksum: 10c0/061b5b3518ff21063474ad42ea3c4c1be21153e78b82fd488d1142de46e9f6e5c12c11475a7a44a1243c9740df724611763cbc48a6fa55ba80de7e885b824853 languageName: node linkType: hard @@ -1852,7 +1852,7 @@ __metadata: languageName: node linkType: hard -"ws@npm:^8.13.0": +"ws@npm:^8.17.0": version: 8.17.0 resolution: "ws@npm:8.17.0" peerDependencies: diff --git a/exporter/deps.edn b/exporter/deps.edn index 547e131f61..f84d879dc8 100644 --- a/exporter/deps.edn +++ b/exporter/deps.edn @@ -1,10 +1,9 @@ {:paths ["src" "vendor" "resources" "test"] :deps {penpot/common {:local/root "../common"} - org.clojure/clojure {:mvn/version "1.11.1"} + org.clojure/clojure {:mvn/version "1.11.3"} binaryage/devtools {:mvn/version "RELEASE"} - metosin/reitit-core {:mvn/version "0.6.0"} - funcool/beicon {:mvn/version "2021.07.05-1"} + metosin/reitit-core {:mvn/version "0.7.0"} } :aliases {:outdated @@ -15,7 +14,7 @@ :dev {:extra-deps - {thheller/shadow-cljs {:mvn/version "2.28.3"}}} + {thheller/shadow-cljs {:mvn/version "2.28.8"}}} :shadow-cljs {:main-opts ["-m" "shadow.cljs.devtools.cli"]} diff --git a/exporter/package.json b/exporter/package.json index 0a5b65356a..0b7b67d6d1 100644 --- a/exporter/package.json +++ b/exporter/package.json @@ -10,19 +10,19 @@ "url": "https://github.com/penpot/penpot" }, "dependencies": { - "archiver": "^6.0.2", + "archiver": "^7.0.1", "cookies": "^0.9.1", "generic-pool": "^3.9.0", "inflation": "^2.1.0", - "ioredis": "^5.3.2", + "ioredis": "^5.4.1", "luxon": "^3.4.4", - "playwright": "^1.43.0", + "playwright": "^1.44.1", "raw-body": "^2.5.2", "xml-js": "^1.6.11", "xregexp": "^5.1.1" }, "devDependencies": { - "shadow-cljs": "2.28.3", + "shadow-cljs": "2.28.8", "source-map-support": "^0.5.21" }, "scripts": { diff --git a/exporter/yarn.lock b/exporter/yarn.lock index 1cc17aa2ee..d32ec1b65f 100644 --- a/exporter/yarn.lock +++ b/exporter/yarn.lock @@ -72,6 +72,15 @@ __metadata: languageName: node linkType: hard +"abort-controller@npm:^3.0.0": + version: 3.0.0 + resolution: "abort-controller@npm:3.0.0" + dependencies: + event-target-shim: "npm:^5.0.0" + checksum: 10c0/90ccc50f010250152509a344eb2e71977fbf8db0ab8f1061197e3275ddf6c61a41a6edfd7b9409c664513131dd96e962065415325ef23efa5db931b382d24ca5 + languageName: node + linkType: hard + "agent-base@npm:^7.0.2, agent-base@npm:^7.1.0, agent-base@npm:^7.1.1": version: 7.1.1 resolution: "agent-base@npm:7.1.1" @@ -121,32 +130,33 @@ __metadata: languageName: node linkType: hard -"archiver-utils@npm:^4.0.1": - version: 4.0.1 - resolution: "archiver-utils@npm:4.0.1" +"archiver-utils@npm:^5.0.0, archiver-utils@npm:^5.0.2": + version: 5.0.2 + resolution: "archiver-utils@npm:5.0.2" dependencies: - glob: "npm:^8.0.0" + glob: "npm:^10.0.0" graceful-fs: "npm:^4.2.0" + is-stream: "npm:^2.0.1" lazystream: "npm:^1.0.0" lodash: "npm:^4.17.15" normalize-path: "npm:^3.0.0" - readable-stream: "npm:^3.6.0" - checksum: 10c0/fc646fe1f8e3650383b6f79384e1c8f69caf7685c705221e23393a674ee1d67331e246250a72b03ec2fbdb2cfe30adc2d4287f6357684d6843d604738bf2c870 + readable-stream: "npm:^4.0.0" + checksum: 10c0/3782c5fa9922186aa1a8e41ed0c2867569faa5f15c8e5e6418ea4c1b730b476e21bd68270b3ea457daf459ae23aaea070b2b9f90cf90a59def8dc79b9e4ef538 languageName: node linkType: hard -"archiver@npm:^6.0.2": - version: 6.0.2 - resolution: "archiver@npm:6.0.2" +"archiver@npm:^7.0.1": + version: 7.0.1 + resolution: "archiver@npm:7.0.1" dependencies: - archiver-utils: "npm:^4.0.1" + archiver-utils: "npm:^5.0.2" async: "npm:^3.2.4" - buffer-crc32: "npm:^0.2.1" - readable-stream: "npm:^3.6.0" + buffer-crc32: "npm:^1.0.0" + readable-stream: "npm:^4.0.0" readdir-glob: "npm:^1.1.2" tar-stream: "npm:^3.0.0" - zip-stream: "npm:^5.0.1" - checksum: 10c0/23a470d468c01cd40fc13b6bd3dbc6d04c4f7b770785dcc7e1e4af256c3d79c4ffd7f7e0e84ae320437e5b8d0a2117aecfca0586b8c0fbd6edc3e04977c438cc + zip-stream: "npm:^6.0.1" + checksum: 10c0/02afd87ca16f6184f752db8e26884e6eff911c476812a0e7f7b26c4beb09f06119807f388a8e26ed2558aa8ba9db28646ebd147a4f99e46813b8b43158e1438e languageName: node linkType: hard @@ -199,7 +209,7 @@ __metadata: languageName: node linkType: hard -"base64-js@npm:^1.0.2": +"base64-js@npm:^1.0.2, base64-js@npm:^1.3.1": version: 1.5.1 resolution: "base64-js@npm:1.5.1" checksum: 10c0/f23823513b63173a001030fae4f2dabe283b99a9d324ade3ad3d148e218134676f1ee8568c877cd79ec1c53158dcf2d2ba527a97c606618928ba99dd930102bf @@ -310,10 +320,10 @@ __metadata: languageName: node linkType: hard -"buffer-crc32@npm:^0.2.1": - version: 0.2.13 - resolution: "buffer-crc32@npm:0.2.13" - checksum: 10c0/cb0a8ddf5cf4f766466db63279e47761eb825693eeba6a5a95ee4ec8cb8f81ede70aa7f9d8aeec083e781d47154290eb5d4d26b3f7a465ec57fb9e7d59c47150 +"buffer-crc32@npm:^1.0.0": + version: 1.0.0 + resolution: "buffer-crc32@npm:1.0.0" + checksum: 10c0/8b86e161cee4bb48d5fa622cbae4c18f25e4857e5203b89e23de59e627ab26beb82d9d7999f2b8de02580165f61f83f997beaf02980cdf06affd175b651921ab languageName: node linkType: hard @@ -342,6 +352,16 @@ __metadata: languageName: node linkType: hard +"buffer@npm:^6.0.3": + version: 6.0.3 + resolution: "buffer@npm:6.0.3" + dependencies: + base64-js: "npm:^1.3.1" + ieee754: "npm:^1.2.1" + checksum: 10c0/2a905fbbcde73cc5d8bd18d1caa23715d5f83a5935867c2329f0ac06104204ba7947be098fe1317fbd8830e26090ff8e764f08cd14fefc977bb248c3487bcbd0 + languageName: node + linkType: hard + "builtin-status-codes@npm:^3.0.0": version: 3.0.0 resolution: "builtin-status-codes@npm:3.0.0" @@ -436,15 +456,16 @@ __metadata: languageName: node linkType: hard -"compress-commons@npm:^5.0.1": - version: 5.0.3 - resolution: "compress-commons@npm:5.0.3" +"compress-commons@npm:^6.0.2": + version: 6.0.2 + resolution: "compress-commons@npm:6.0.2" dependencies: crc-32: "npm:^1.2.0" - crc32-stream: "npm:^5.0.0" + crc32-stream: "npm:^6.0.0" + is-stream: "npm:^2.0.1" normalize-path: "npm:^3.0.0" - readable-stream: "npm:^3.6.0" - checksum: 10c0/ca7fe7ec4feb2854876df928192fc9b2bece15690e171d771a23a8e54a97ef78c057791d0fadc5c6c6703831687facd1f2428bb0dff3187caa2d631d92be69fc + readable-stream: "npm:^4.0.0" + checksum: 10c0/2347031b7c92c8ed5011b07b93ec53b298fa2cd1800897532ac4d4d1aeae06567883f481b6e35f13b65fc31b190c751df6635434d525562f0203fde76f1f0814 languageName: node linkType: hard @@ -495,13 +516,13 @@ __metadata: languageName: node linkType: hard -"crc32-stream@npm:^5.0.0": - version: 5.0.1 - resolution: "crc32-stream@npm:5.0.1" +"crc32-stream@npm:^6.0.0": + version: 6.0.0 + resolution: "crc32-stream@npm:6.0.0" dependencies: crc-32: "npm:^1.2.0" - readable-stream: "npm:^3.4.0" - checksum: 10c0/32fdffdd6e80f08ffef03a120a23fad7fdd04bd9c386dd8b9c8d27f58b32b78f6a1f43a327812858a0237aec72d55b77e33f5229cbbc0ee4856a71ea010c6aa8 + readable-stream: "npm:^4.0.0" + checksum: 10c0/bf9c84571ede2d119c2b4f3a9ef5eeb9ff94b588493c0d3862259af86d3679dcce1c8569dd2b0a6eff2f35f5e2081cc1263b846d2538d4054da78cf34f262a3d languageName: node linkType: hard @@ -723,7 +744,14 @@ __metadata: languageName: node linkType: hard -"events@npm:^3.0.0": +"event-target-shim@npm:^5.0.0": + version: 5.0.1 + resolution: "event-target-shim@npm:5.0.1" + checksum: 10c0/0255d9f936215fd206156fd4caa9e8d35e62075d720dc7d847e89b417e5e62cf1ce6c9b4e0a1633a9256de0efefaf9f8d26924b1f3c8620cffb9db78e7d3076b + languageName: node + linkType: hard + +"events@npm:^3.0.0, events@npm:^3.3.0": version: 3.3.0 resolution: "events@npm:3.3.0" checksum: 10c0/d6b6f2adbccbcda74ddbab52ed07db727ef52e31a61ed26db9feb7dc62af7fc8e060defa65e5f8af9449b86b52cc1a1f6a79f2eafcf4e62add2b7a1fa4a432f6 @@ -752,15 +780,15 @@ __metadata: version: 0.0.0-use.local resolution: "exporter@workspace:." dependencies: - archiver: "npm:^6.0.2" + archiver: "npm:^7.0.1" cookies: "npm:^0.9.1" generic-pool: "npm:^3.9.0" inflation: "npm:^2.1.0" - ioredis: "npm:^5.3.2" + ioredis: "npm:^5.4.1" luxon: "npm:^3.4.4" - playwright: "npm:^1.43.0" + playwright: "npm:^1.44.1" raw-body: "npm:^2.5.2" - shadow-cljs: "npm:2.28.3" + shadow-cljs: "npm:2.28.8" source-map-support: "npm:^0.5.21" xml-js: "npm:^1.6.11" xregexp: "npm:^5.1.1" @@ -802,13 +830,6 @@ __metadata: languageName: node linkType: hard -"fs.realpath@npm:^1.0.0": - version: 1.0.0 - resolution: "fs.realpath@npm:1.0.0" - checksum: 10c0/444cf1291d997165dfd4c0d58b69f0e4782bfd9149fd72faa4fe299e68e0e93d6db941660b37dd29153bf7186672ececa3b50b7e7249477b03fdf850f287c948 - languageName: node - linkType: hard - "fsevents@npm:2.3.2": version: 2.3.2 resolution: "fsevents@npm:2.3.2" @@ -855,6 +876,21 @@ __metadata: languageName: node linkType: hard +"glob@npm:^10.0.0": + version: 10.4.1 + resolution: "glob@npm:10.4.1" + dependencies: + foreground-child: "npm:^3.1.0" + jackspeak: "npm:^3.1.2" + minimatch: "npm:^9.0.4" + minipass: "npm:^7.1.2" + path-scurry: "npm:^1.11.1" + bin: + glob: dist/esm/bin.mjs + checksum: 10c0/77f2900ed98b9cc2a0e1901ee5e476d664dae3cd0f1b662b8bfd4ccf00d0edc31a11595807706a274ca10e1e251411bbf2e8e976c82bed0d879a9b89343ed379 + languageName: node + linkType: hard + "glob@npm:^10.2.2, glob@npm:^10.3.10": version: 10.3.16 resolution: "glob@npm:10.3.16" @@ -870,19 +906,6 @@ __metadata: languageName: node linkType: hard -"glob@npm:^8.0.0": - version: 8.1.0 - resolution: "glob@npm:8.1.0" - dependencies: - fs.realpath: "npm:^1.0.0" - inflight: "npm:^1.0.4" - inherits: "npm:2" - minimatch: "npm:^5.0.1" - once: "npm:^1.3.0" - checksum: 10c0/cb0b5cab17a59c57299376abe5646c7070f8acb89df5595b492dba3bfb43d301a46c01e5695f01154e6553168207cb60d4eaf07d3be4bc3eb9b0457c5c561d0f - languageName: node - linkType: hard - "gopd@npm:^1.0.1": version: 1.0.1 resolution: "gopd@npm:1.0.1" @@ -1038,7 +1061,7 @@ __metadata: languageName: node linkType: hard -"ieee754@npm:^1.1.4": +"ieee754@npm:^1.1.4, ieee754@npm:^1.2.1": version: 1.2.1 resolution: "ieee754@npm:1.2.1" checksum: 10c0/b0782ef5e0935b9f12883a2e2aa37baa75da6e66ce6515c168697b42160807d9330de9a32ec1ed73149aea02e0d822e572bca6f1e22bdcbd2149e13b050b17bb @@ -1066,23 +1089,6 @@ __metadata: languageName: node linkType: hard -"inflight@npm:^1.0.4": - version: 1.0.6 - resolution: "inflight@npm:1.0.6" - dependencies: - once: "npm:^1.3.0" - wrappy: "npm:1" - checksum: 10c0/7faca22584600a9dc5b9fca2cd5feb7135ac8c935449837b315676b4c90aa4f391ec4f42240178244b5a34e8bede1948627fda392ca3191522fc46b34e985ab2 - languageName: node - linkType: hard - -"inherits@npm:2, inherits@npm:2.0.4, inherits@npm:^2.0.1, inherits@npm:^2.0.3, inherits@npm:^2.0.4, inherits@npm:~2.0.1, inherits@npm:~2.0.3": - version: 2.0.4 - resolution: "inherits@npm:2.0.4" - checksum: 10c0/4e531f648b29039fb7426fb94075e6545faa1eb9fe83c29f0b6d9e7263aceb4289d2d4557db0d428188eeb449cc7c5e77b0a0b2c4e248ff2a65933a0dee49ef2 - languageName: node - linkType: hard - "inherits@npm:2.0.3": version: 2.0.3 resolution: "inherits@npm:2.0.3" @@ -1090,7 +1096,14 @@ __metadata: languageName: node linkType: hard -"ioredis@npm:^5.3.2": +"inherits@npm:2.0.4, inherits@npm:^2.0.1, inherits@npm:^2.0.3, inherits@npm:^2.0.4, inherits@npm:~2.0.1, inherits@npm:~2.0.3": + version: 2.0.4 + resolution: "inherits@npm:2.0.4" + checksum: 10c0/4e531f648b29039fb7426fb94075e6545faa1eb9fe83c29f0b6d9e7263aceb4289d2d4557db0d428188eeb449cc7c5e77b0a0b2c4e248ff2a65933a0dee49ef2 + languageName: node + linkType: hard + +"ioredis@npm:^5.4.1": version: 5.4.1 resolution: "ioredis@npm:5.4.1" dependencies: @@ -1131,6 +1144,13 @@ __metadata: languageName: node linkType: hard +"is-stream@npm:^2.0.1": + version: 2.0.1 + resolution: "is-stream@npm:2.0.1" + checksum: 10c0/7c284241313fc6efc329b8d7f08e16c0efeb6baab1b4cd0ba579eb78e5af1aa5da11e68559896a2067cd6c526bd29241dda4eb1225e627d5aa1a89a76d4635a5 + languageName: node + linkType: hard + "isarray@npm:^1.0.0, isarray@npm:~1.0.0": version: 1.0.0 resolution: "isarray@npm:1.0.0" @@ -1282,7 +1302,7 @@ __metadata: languageName: node linkType: hard -"minimatch@npm:^5.0.1, minimatch@npm:^5.1.0": +"minimatch@npm:^5.1.0": version: 5.1.6 resolution: "minimatch@npm:5.1.6" dependencies: @@ -1291,7 +1311,7 @@ __metadata: languageName: node linkType: hard -"minimatch@npm:^9.0.1": +"minimatch@npm:^9.0.1, minimatch@npm:^9.0.4": version: 9.0.4 resolution: "minimatch@npm:9.0.4" dependencies: @@ -1374,6 +1394,13 @@ __metadata: languageName: node linkType: hard +"minipass@npm:^7.1.2": + version: 7.1.2 + resolution: "minipass@npm:7.1.2" + checksum: 10c0/b0fd20bb9fb56e5fa9a8bfac539e8915ae07430a619e4b86ff71f5fc757ef3924b23b2c4230393af1eda647ed3d75739e4e0acb250a6b1eb277cf7f8fe449557 + languageName: node + linkType: hard + "minizlib@npm:^2.1.1, minizlib@npm:^2.1.2": version: 2.1.2 resolution: "minizlib@npm:2.1.2" @@ -1502,15 +1529,6 @@ __metadata: languageName: node linkType: hard -"once@npm:^1.3.0": - version: 1.4.0 - resolution: "once@npm:1.4.0" - dependencies: - wrappy: "npm:1" - checksum: 10c0/5d48aca287dfefabd756621c5dfce5c91a549a93e9fdb7b8246bc4c4790aa2ec17b34a260530474635147aeb631a2dcc8b32c613df0675f96041cbb8244517d0 - languageName: node - linkType: hard - "os-browserify@npm:^0.3.0": version: 0.3.0 resolution: "os-browserify@npm:0.3.0" @@ -1562,7 +1580,7 @@ __metadata: languageName: node linkType: hard -"path-scurry@npm:^1.11.0": +"path-scurry@npm:^1.11.0, path-scurry@npm:^1.11.1": version: 1.11.1 resolution: "path-scurry@npm:1.11.1" dependencies: @@ -1585,27 +1603,27 @@ __metadata: languageName: node linkType: hard -"playwright-core@npm:1.44.0": - version: 1.44.0 - resolution: "playwright-core@npm:1.44.0" +"playwright-core@npm:1.44.1": + version: 1.44.1 + resolution: "playwright-core@npm:1.44.1" bin: playwright-core: cli.js - checksum: 10c0/e1220371a76cdf145f6aaefb2dd6c5194531d1c1e2b67712c56dbc1d589dffb66fd4fc0168be60cd2115aca40660aa13c572e14be47674c0542bc879705b9fb3 + checksum: 10c0/6ffa3a04822b3df86d7f47a97e4f20318c0c50868ba4311820e6626ecadaab1424fbd0a3d01f0b4228adc0c781115e44b801742a4970b88739f804d82f142d68 languageName: node linkType: hard -"playwright@npm:^1.43.0": - version: 1.44.0 - resolution: "playwright@npm:1.44.0" +"playwright@npm:^1.44.1": + version: 1.44.1 + resolution: "playwright@npm:1.44.1" dependencies: fsevents: "npm:2.3.2" - playwright-core: "npm:1.44.0" + playwright-core: "npm:1.44.1" dependenciesMeta: fsevents: optional: true bin: playwright: cli.js - checksum: 10c0/dcbee9022623dd9e219e9867983789262e80339f0c3601219930883e5a304ce75e1397715c0f378a2bab0a799cf88a73ea4b58fe595cfd9058bd7a82f5d8e3b6 + checksum: 10c0/de827d17746b18ae2ec67d510a640d8ceebf8ee8e3d8399bccffa83b76a967498ca377777e4e6a1daaef4b3c86cb2c44c7468de53d2d915acc61b3b89c032738 languageName: node linkType: hard @@ -1737,7 +1755,7 @@ __metadata: languageName: node linkType: hard -"readable-stream@npm:^3.4.0, readable-stream@npm:^3.6.0": +"readable-stream@npm:^3.6.0": version: 3.6.2 resolution: "readable-stream@npm:3.6.2" dependencies: @@ -1748,6 +1766,19 @@ __metadata: languageName: node linkType: hard +"readable-stream@npm:^4.0.0": + version: 4.5.2 + resolution: "readable-stream@npm:4.5.2" + dependencies: + abort-controller: "npm:^3.0.0" + buffer: "npm:^6.0.3" + events: "npm:^3.3.0" + process: "npm:^0.11.10" + string_decoder: "npm:^1.3.0" + checksum: 10c0/a2c80e0e53aabd91d7df0330929e32d0a73219f9477dbbb18472f6fdd6a11a699fc5d172a1beff98d50eae4f1496c950ffa85b7cc2c4c196963f289a5f39275d + languageName: node + linkType: hard + "readdir-glob@npm:^1.1.2": version: 1.1.3 resolution: "readdir-glob@npm:1.1.3" @@ -1888,9 +1919,9 @@ __metadata: languageName: node linkType: hard -"shadow-cljs@npm:2.28.3": - version: 2.28.3 - resolution: "shadow-cljs@npm:2.28.3" +"shadow-cljs@npm:2.28.8": + version: 2.28.8 + resolution: "shadow-cljs@npm:2.28.8" dependencies: node-libs-browser: "npm:^2.2.1" readline-sync: "npm:^1.4.7" @@ -1900,7 +1931,7 @@ __metadata: ws: "npm:^7.4.6" bin: shadow-cljs: cli/runner.js - checksum: 10c0/623b536a0d95d7696dd465c09ab3cb5d921c867a577a33463ad58dbc40f51f5d0424ba2791a8803f33a94f5c877198de91c3c7f7616618a6b4ae90e80d5d213e + checksum: 10c0/061b5b3518ff21063474ad42ea3c4c1be21153e78b82fd488d1142de46e9f6e5c12c11475a7a44a1243c9740df724611763cbc48a6fa55ba80de7e885b824853 languageName: node linkType: hard @@ -2089,7 +2120,7 @@ __metadata: languageName: node linkType: hard -"string_decoder@npm:^1.0.0, string_decoder@npm:^1.1.1": +"string_decoder@npm:^1.0.0, string_decoder@npm:^1.1.1, string_decoder@npm:^1.3.0": version: 1.3.0 resolution: "string_decoder@npm:1.3.0" dependencies: @@ -2309,13 +2340,6 @@ __metadata: languageName: node linkType: hard -"wrappy@npm:1": - version: 1.0.2 - resolution: "wrappy@npm:1.0.2" - checksum: 10c0/56fece1a4018c6a6c8e28fbc88c87e0fbf4ea8fd64fc6c63b18f4acc4bd13e0ad2515189786dd2c30d3eec9663d70f4ecf699330002f8ccb547e4a18231fc9f0 - languageName: node - linkType: hard - "ws@npm:^7.4.6": version: 7.5.9 resolution: "ws@npm:7.5.9" @@ -2365,13 +2389,13 @@ __metadata: languageName: node linkType: hard -"zip-stream@npm:^5.0.1": - version: 5.0.2 - resolution: "zip-stream@npm:5.0.2" +"zip-stream@npm:^6.0.1": + version: 6.0.1 + resolution: "zip-stream@npm:6.0.1" dependencies: - archiver-utils: "npm:^4.0.1" - compress-commons: "npm:^5.0.1" - readable-stream: "npm:^3.6.0" - checksum: 10c0/cb5c4b57771a03429188ae73f90744f6996aa98c885852970de1c8bed3351c8a931cce0cf74cf37b9fa3727a07119236def871ec6d05c9becbc80746f52dd795 + archiver-utils: "npm:^5.0.0" + compress-commons: "npm:^6.0.2" + readable-stream: "npm:^4.0.0" + checksum: 10c0/50f2fb30327fb9d09879abf7ae2493705313adf403e794b030151aaae00009162419d60d0519e807673ec04d442e140c8879ca14314df0a0192de3b233e8f28b languageName: node linkType: hard diff --git a/frontend/deps.edn b/frontend/deps.edn index 749a70167d..841aad9399 100644 --- a/frontend/deps.edn +++ b/frontend/deps.edn @@ -3,9 +3,9 @@ {penpot/common {:local/root "../common"} - org.clojure/clojure {:mvn/version "1.11.1"} + org.clojure/clojure {:mvn/version "1.11.3"} binaryage/devtools {:mvn/version "RELEASE"} - metosin/reitit-core {:mvn/version "0.6.0"} + metosin/reitit-core {:mvn/version "0.7.0"} funcool/okulary {:mvn/version "2022.04.11-16"} funcool/potok2 @@ -23,7 +23,7 @@ :git/sha "ab819f5" :git/url "https://github.com/funcool/rumext.git"} - instaparse/instaparse {:mvn/version "1.4.12"} + instaparse/instaparse {:mvn/version "1.5.0"} garden/garden {:git/url "https://github.com/noprompt/garden" :git/sha "05590ecb5f6fa670856f3d1ab400aa4961047480"} } @@ -43,7 +43,7 @@ :extra-deps {thheller/shadow-cljs {:mvn/version "2.28.8"} org.clojure/tools.namespace {:mvn/version "RELEASE"} - cider/cider-nrepl {:mvn/version "0.44.0"}}} + cider/cider-nrepl {:mvn/version "0.48.0"}}} :shadow-cljs {:main-opts ["-m" "shadow.cljs.devtools.cli"]} From 3bdcaa12e725d284617977d2dd5a90d99582c100 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Fri, 31 May 2024 13:31:56 +0200 Subject: [PATCH 019/476] :arrow_up: Update AWS S3 SDK dependency on backend --- backend/deps.edn | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/deps.edn b/backend/deps.edn index 0193d8b247..a884028291 100644 --- a/backend/deps.edn +++ b/backend/deps.edn @@ -58,7 +58,7 @@ ;; Pretty Print specs pretty-spec/pretty-spec {:mvn/version "0.1.4"} - software.amazon.awssdk/s3 {:mvn/version "2.22.12"} + software.amazon.awssdk/s3 {:mvn/version "2.25.63"} } :paths ["src" "resources" "target/classes"] From b700a926c227f0d93675315c735ab9c5310ada97 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9s=20Moya?= Date: Fri, 31 May 2024 17:13:40 +0200 Subject: [PATCH 020/476] :bug: Add validate and repair for :misplaced-slot --- common/src/app/common/files/repair.cljc | 13 +++++++++++++ common/src/app/common/files/validate.cljc | 15 +++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/common/src/app/common/files/repair.cljc b/common/src/app/common/files/repair.cljc index 98e1642a9c..cd2a656d28 100644 --- a/common/src/app/common/files/repair.cljc +++ b/common/src/app/common/files/repair.cljc @@ -460,6 +460,19 @@ (pcb/with-library-data file-data) (pcb/update-component (:id shape) repair-component)))) +(defmethod repair-error :misplaced-slot + [_ {:keys [shape page-id] :as error} file-data _] + (let [repair-shape + (fn [shape] + ;; Remove the swap slot + (log/debug :hint (str " -> remove swap-slot")) + (ctk/remove-swap-slot shape))] + + (log/dbg :hint "repairing shape :misplaced-slot" :id (:id shape) :name (:name shape) :page-id page-id) + (-> (pcb/empty-changes nil page-id) + (pcb/with-file-data file-data) + (pcb/update-shapes [(:id shape)] repair-shape)))) + (defmethod repair-error :missing-slot [_ {:keys [shape page-id args] :as error} file-data _] (let [repair-shape diff --git a/common/src/app/common/files/validate.cljc b/common/src/app/common/files/validate.cljc index 7959c5f312..7caceed496 100644 --- a/common/src/app/common/files/validate.cljc +++ b/common/src/app/common/files/validate.cljc @@ -52,6 +52,7 @@ :not-component-not-allowed :component-nil-objects-not-allowed :instance-head-not-frame + :misplaced-slot :missing-slot}) (def ^:private @@ -287,6 +288,14 @@ "Shape inside main instance should not have shape-ref" shape file page))) +(defn- check-empty-swap-slot + "Validate that this shape does not have any swap slot." + [shape file page] + (when (some? (ctk/get-swap-slot shape)) + (report-error :misplaced-slot + "This shape should not have swap slot" + shape file page))) + (defn- check-shape-main-root-top "Root shape of a top main instance: @@ -298,6 +307,7 @@ (check-component-main-head shape file page libraries) (check-component-root shape file page) (check-component-not-ref shape file page) + (check-empty-swap-slot shape file page) (run! #(check-shape % file page libraries :context :main-top) (:shapes shape))) (defn- check-shape-main-root-nested @@ -309,6 +319,7 @@ (check-component-main-head shape file page libraries) (check-component-not-root shape file page) (check-component-not-ref shape file page) + (check-empty-swap-slot shape file page) (run! #(check-shape % file page libraries :context :main-nested) (:shapes shape))) (defn- check-shape-copy-root-top @@ -323,6 +334,7 @@ (check-component-not-main-head shape file page libraries) (check-component-root shape file page) (check-component-ref shape file page libraries) + (check-empty-swap-slot shape file page) (run! #(check-shape % file page libraries :context :copy-top :library-exists library-exists) (:shapes shape)))) (defn- check-shape-copy-root-nested @@ -345,6 +357,7 @@ (check-component-not-main-not-head shape file page) (check-component-not-root shape file page) (check-component-not-ref shape file page) + (check-empty-swap-slot shape file page) (run! #(check-shape % file page libraries :context :main-any) (:shapes shape))) (defn- check-shape-copy-not-root @@ -353,6 +366,7 @@ (check-component-not-main-not-head shape file page) (check-component-not-root shape file page) (check-component-ref shape file page libraries) + (check-empty-swap-slot shape file page) (run! #(check-shape % file page libraries :context :copy-any) (:shapes shape))) (defn- check-shape-not-component @@ -362,6 +376,7 @@ (check-component-not-main-not-head shape file page) (check-component-not-root shape file page) (check-component-not-ref shape file page) + (check-empty-swap-slot shape file page) (run! #(check-shape % file page libraries :context :not-component) (:shapes shape))) (defn- check-shape From 21052c661c848cdba67ab2027189bff208615b16 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9s=20Moya?= Date: Mon, 3 Jun 2024 11:37:13 +0200 Subject: [PATCH 021/476] :bug: Add migration to remove all misplaced slots --- common/src/app/common/files/defaults.cljc | 2 +- common/src/app/common/files/migrations.cljc | 17 ++++++++++++++++- common/src/app/common/types/component.cljc | 10 +++++++++- 3 files changed, 26 insertions(+), 3 deletions(-) diff --git a/common/src/app/common/files/defaults.cljc b/common/src/app/common/files/defaults.cljc index 721adab70f..5c15fc10d1 100644 --- a/common/src/app/common/files/defaults.cljc +++ b/common/src/app/common/files/defaults.cljc @@ -6,4 +6,4 @@ (ns app.common.files.defaults) -(def version 47) +(def version 48) diff --git a/common/src/app/common/files/migrations.cljc b/common/src/app/common/files/migrations.cljc index 363311564e..3b78031568 100644 --- a/common/src/app/common/files/migrations.cljc +++ b/common/src/app/common/files/migrations.cljc @@ -923,6 +923,20 @@ (-> data (update :pages-index update-vals update-page)))) +(defn migrate-up-48 + [data] + (letfn [(fix-shape [shape] + (let [swap-slot (ctk/get-swap-slot shape)] + (if (and (some? swap-slot) + (not (ctk/subcopy-head? shape))) + (ctk/remove-swap-slot shape) + shape))) + + (update-page [page] + (d/update-when page :objects update-vals fix-shape))] + (-> data + (update :pages-index update-vals update-page)))) + (def migrations "A vector of all applicable migrations" [{:id 2 :migrate-up migrate-up-2} @@ -961,4 +975,5 @@ {:id 44 :migrate-up migrate-up-44} {:id 45 :migrate-up migrate-up-45} {:id 46 :migrate-up migrate-up-46} - {:id 47 :migrate-up migrate-up-47}]) + {:id 47 :migrate-up migrate-up-47} + {:id 48 :migrate-up migrate-up-48}]) diff --git a/common/src/app/common/types/component.cljc b/common/src/app/common/types/component.cljc index 7c48e7f30d..95bf3016a5 100644 --- a/common/src/app/common/types/component.cljc +++ b/common/src/app/common/types/component.cljc @@ -130,6 +130,15 @@ (and (some? (:component-id shape)) (nil? (:component-root shape)))) +(defn subcopy-head? + "Check if this shape is the head of a subinstance that is a copy." + [shape] + ;; This is redundant with the previous one, but may give more security + ;; in case of bugs. + (and (some? (:component-id shape)) + (nil? (:component-root shape)) + (some? (:shape-ref shape)))) + (defn instance-of? [shape file-id component-id] (and (some? (:component-id shape)) @@ -227,7 +236,6 @@ :shape-ref :touched)) - (defn- extract-ids [shape] (if (map? shape) (let [current-id (:id shape) From b5c419512fe652bb73790f039be82eae8560272d Mon Sep 17 00:00:00 2001 From: Alejandro Alonso Date: Mon, 3 Jun 2024 12:58:25 +0200 Subject: [PATCH 022/476] :sparkles: Add locking degrees increment (hold shift) on path edition --- CHANGES.md | 3 ++- frontend/src/app/main/data/workspace/path/edition.cljs | 3 +++ frontend/src/app/main/data/workspace/path/streams.cljs | 7 ++++++- 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index 17f3332221..32af73453b 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -9,7 +9,8 @@ ### :heart: Community contributions (Thank you!) ### :sparkles: New features -- Improve auth process [Taiga #Change Auth Process](https://tree.taiga.io/project/penpot/us/7094) +- Improve auth process [Taiga #7094](https://tree.taiga.io/project/penpot/us/7094) +- Add locking degrees increment (hold shift) on path edition [Taiga #7761](https://tree.taiga.io/project/penpot/issue/7761) ### :bug: Bugs fixed diff --git a/frontend/src/app/main/data/workspace/path/edition.cljs b/frontend/src/app/main/data/workspace/path/edition.cljs index 164e37acb1..9d600bbb41 100644 --- a/frontend/src/app/main/data/workspace/path/edition.cljs +++ b/frontend/src/app/main/data/workspace/path/edition.cljs @@ -114,6 +114,9 @@ (update [_ state] (let [id (st/get-path-id state) content (st/get-path state :content) + to-point (cond-> to-point + (:shift? to-point) (helpers/position-fixed-angle from-point)) + delta (gpt/subtract to-point from-point) modifiers-reducer (partial modify-content-point content delta) diff --git a/frontend/src/app/main/data/workspace/path/streams.cljs b/frontend/src/app/main/data/workspace/path/streams.cljs index 38d0efd508..f860ca586e 100644 --- a/frontend/src/app/main/data/workspace/path/streams.cljs +++ b/frontend/src/app/main/data/workspace/path/streams.cljs @@ -101,7 +101,12 @@ (->> ms/mouse-position (rx/map to-pixel-snap) (rx/with-latest-from (snap-toggled-stream)) - (rx/map check-path-snap)))) + (rx/map check-path-snap) + (rx/with-latest-from + (fn [position shift? alt?] + (assoc position :shift? shift? :alt? alt?)) + ms/mouse-position-shift + ms/mouse-position-alt)))) (defn get-angle [node handler opposite] (when (and (some? node) (some? handler) (some? opposite)) From 53513a523ec8898a5f41fb32b66a6d4644d9ab55 Mon Sep 17 00:00:00 2001 From: Pablo Alba Date: Mon, 3 Jun 2024 13:04:49 +0200 Subject: [PATCH 023/476] Update THANKYOU.md --- THANKYOU.md | 1 + 1 file changed, 1 insertion(+) diff --git a/THANKYOU.md b/THANKYOU.md index 1a27aa8eb9..77a1483aab 100644 --- a/THANKYOU.md +++ b/THANKYOU.md @@ -6,6 +6,7 @@ We want to thank to the amazing people that help us! Thank you! You're the best! * Husnain Iqbal (CEO OF ALPHA INFERNO PVT LTD) * [Shiraz Ali Khan](https://www.linkedin.com/in/shiraz-ali-khan-1ba508180/) * Vaibhav Shukla +* Hassan Ahmed (Alias Xen Lee) ## Internationalization * [00ff88](https://hosted.weblate.org/user/00ff88) From 347235916879cf2c75f4751406a379bea2bac3aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9s=20Moya?= Date: Fri, 31 May 2024 17:13:40 +0200 Subject: [PATCH 024/476] :bug: Add validate and repair for :misplaced-slot --- common/src/app/common/files/repair.cljc | 13 +++++++++++++ common/src/app/common/files/validate.cljc | 15 +++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/common/src/app/common/files/repair.cljc b/common/src/app/common/files/repair.cljc index 98e1642a9c..cd2a656d28 100644 --- a/common/src/app/common/files/repair.cljc +++ b/common/src/app/common/files/repair.cljc @@ -460,6 +460,19 @@ (pcb/with-library-data file-data) (pcb/update-component (:id shape) repair-component)))) +(defmethod repair-error :misplaced-slot + [_ {:keys [shape page-id] :as error} file-data _] + (let [repair-shape + (fn [shape] + ;; Remove the swap slot + (log/debug :hint (str " -> remove swap-slot")) + (ctk/remove-swap-slot shape))] + + (log/dbg :hint "repairing shape :misplaced-slot" :id (:id shape) :name (:name shape) :page-id page-id) + (-> (pcb/empty-changes nil page-id) + (pcb/with-file-data file-data) + (pcb/update-shapes [(:id shape)] repair-shape)))) + (defmethod repair-error :missing-slot [_ {:keys [shape page-id args] :as error} file-data _] (let [repair-shape diff --git a/common/src/app/common/files/validate.cljc b/common/src/app/common/files/validate.cljc index 7959c5f312..7caceed496 100644 --- a/common/src/app/common/files/validate.cljc +++ b/common/src/app/common/files/validate.cljc @@ -52,6 +52,7 @@ :not-component-not-allowed :component-nil-objects-not-allowed :instance-head-not-frame + :misplaced-slot :missing-slot}) (def ^:private @@ -287,6 +288,14 @@ "Shape inside main instance should not have shape-ref" shape file page))) +(defn- check-empty-swap-slot + "Validate that this shape does not have any swap slot." + [shape file page] + (when (some? (ctk/get-swap-slot shape)) + (report-error :misplaced-slot + "This shape should not have swap slot" + shape file page))) + (defn- check-shape-main-root-top "Root shape of a top main instance: @@ -298,6 +307,7 @@ (check-component-main-head shape file page libraries) (check-component-root shape file page) (check-component-not-ref shape file page) + (check-empty-swap-slot shape file page) (run! #(check-shape % file page libraries :context :main-top) (:shapes shape))) (defn- check-shape-main-root-nested @@ -309,6 +319,7 @@ (check-component-main-head shape file page libraries) (check-component-not-root shape file page) (check-component-not-ref shape file page) + (check-empty-swap-slot shape file page) (run! #(check-shape % file page libraries :context :main-nested) (:shapes shape))) (defn- check-shape-copy-root-top @@ -323,6 +334,7 @@ (check-component-not-main-head shape file page libraries) (check-component-root shape file page) (check-component-ref shape file page libraries) + (check-empty-swap-slot shape file page) (run! #(check-shape % file page libraries :context :copy-top :library-exists library-exists) (:shapes shape)))) (defn- check-shape-copy-root-nested @@ -345,6 +357,7 @@ (check-component-not-main-not-head shape file page) (check-component-not-root shape file page) (check-component-not-ref shape file page) + (check-empty-swap-slot shape file page) (run! #(check-shape % file page libraries :context :main-any) (:shapes shape))) (defn- check-shape-copy-not-root @@ -353,6 +366,7 @@ (check-component-not-main-not-head shape file page) (check-component-not-root shape file page) (check-component-ref shape file page libraries) + (check-empty-swap-slot shape file page) (run! #(check-shape % file page libraries :context :copy-any) (:shapes shape))) (defn- check-shape-not-component @@ -362,6 +376,7 @@ (check-component-not-main-not-head shape file page) (check-component-not-root shape file page) (check-component-not-ref shape file page) + (check-empty-swap-slot shape file page) (run! #(check-shape % file page libraries :context :not-component) (:shapes shape))) (defn- check-shape From 5e8c164a441a97994fcb87381e749d237ac799e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9s=20Moya?= Date: Mon, 3 Jun 2024 11:37:13 +0200 Subject: [PATCH 025/476] :bug: Add migration to remove all misplaced slots --- common/src/app/common/files/defaults.cljc | 2 +- common/src/app/common/files/migrations.cljc | 17 ++++++++++++++++- common/src/app/common/types/component.cljc | 10 +++++++++- 3 files changed, 26 insertions(+), 3 deletions(-) diff --git a/common/src/app/common/files/defaults.cljc b/common/src/app/common/files/defaults.cljc index 721adab70f..5c15fc10d1 100644 --- a/common/src/app/common/files/defaults.cljc +++ b/common/src/app/common/files/defaults.cljc @@ -6,4 +6,4 @@ (ns app.common.files.defaults) -(def version 47) +(def version 48) diff --git a/common/src/app/common/files/migrations.cljc b/common/src/app/common/files/migrations.cljc index 363311564e..3b78031568 100644 --- a/common/src/app/common/files/migrations.cljc +++ b/common/src/app/common/files/migrations.cljc @@ -923,6 +923,20 @@ (-> data (update :pages-index update-vals update-page)))) +(defn migrate-up-48 + [data] + (letfn [(fix-shape [shape] + (let [swap-slot (ctk/get-swap-slot shape)] + (if (and (some? swap-slot) + (not (ctk/subcopy-head? shape))) + (ctk/remove-swap-slot shape) + shape))) + + (update-page [page] + (d/update-when page :objects update-vals fix-shape))] + (-> data + (update :pages-index update-vals update-page)))) + (def migrations "A vector of all applicable migrations" [{:id 2 :migrate-up migrate-up-2} @@ -961,4 +975,5 @@ {:id 44 :migrate-up migrate-up-44} {:id 45 :migrate-up migrate-up-45} {:id 46 :migrate-up migrate-up-46} - {:id 47 :migrate-up migrate-up-47}]) + {:id 47 :migrate-up migrate-up-47} + {:id 48 :migrate-up migrate-up-48}]) diff --git a/common/src/app/common/types/component.cljc b/common/src/app/common/types/component.cljc index 7c48e7f30d..95bf3016a5 100644 --- a/common/src/app/common/types/component.cljc +++ b/common/src/app/common/types/component.cljc @@ -130,6 +130,15 @@ (and (some? (:component-id shape)) (nil? (:component-root shape)))) +(defn subcopy-head? + "Check if this shape is the head of a subinstance that is a copy." + [shape] + ;; This is redundant with the previous one, but may give more security + ;; in case of bugs. + (and (some? (:component-id shape)) + (nil? (:component-root shape)) + (some? (:shape-ref shape)))) + (defn instance-of? [shape file-id component-id] (and (some? (:component-id shape)) @@ -227,7 +236,6 @@ :shape-ref :touched)) - (defn- extract-ids [shape] (if (map? shape) (let [current-id (:id shape) From e200ed616c0db2402fc3533618c3cb132605286a Mon Sep 17 00:00:00 2001 From: Alejandro Alonso Date: Thu, 30 May 2024 11:15:27 +0200 Subject: [PATCH 026/476] :tada: Add a/b test for onboarding questions --- .../styles/common/refactor/basic-rules.scss | 3 + .../styles/common/refactor/color-defs.scss | 2 + .../common/refactor/themes/default-theme.scss | 1 + .../common/refactor/themes/light-theme.scss | 2 + frontend/src/app/main/ui/onboarding.cljs | 8 +- .../app/main/ui/onboarding/newsletter.cljs | 7 +- .../src/app/main/ui/onboarding/questions.cljs | 6 +- .../app/main/ui/onboarding/team_choice.cljs | 13 +- frontend/src/app/main/ui/releases/v2_0.cljs | 321 +++++++++--------- 9 files changed, 195 insertions(+), 168 deletions(-) diff --git a/frontend/resources/styles/common/refactor/basic-rules.scss b/frontend/resources/styles/common/refactor/basic-rules.scss index 12c7961c87..858838d056 100644 --- a/frontend/resources/styles/common/refactor/basic-rules.scss +++ b/frontend/resources/styles/common/refactor/basic-rules.scss @@ -593,6 +593,9 @@ width: 100%; z-index: $z-index-modal; background-color: var(--overlay-color); + &.onboarding-a-b-test { + background-color: var(--overlay-color-onboarding-a-b-test); + } } .modal-container-base { diff --git a/frontend/resources/styles/common/refactor/color-defs.scss b/frontend/resources/styles/common/refactor/color-defs.scss index da1f0d784e..c7048003d2 100644 --- a/frontend/resources/styles/common/refactor/color-defs.scss +++ b/frontend/resources/styles/common/refactor/color-defs.scss @@ -11,6 +11,7 @@ // Dark background --db-primary: #18181a; --db-primary-60: #{color.change(#18181a, $alpha: 0.6)}; + --db-primary-90: #{color.change(#18181a, $alpha: 0.9)}; --db-secondary: #000000; --db-secondary-30: #{color.change(#000000, $alpha: 0.3)}; --db-secondary-80: #{color.change(#000000, $alpha: 0.8)}; @@ -35,6 +36,7 @@ // Light background --lb-primary: #ffffff; --lb-primary-60: #{color.change(#ffffff, $alpha: 0.6)}; + --lb-primary-90: #{color.change(#ffffff, $alpha: 0.9)}; --lb-secondary: #e8eaee; --lb-secondary-30: #{color.change(#e8eaee, $alpha: 0.3)}; --lb-secondary-80: #{color.change(#e8eaee, $alpha: 0.8)}; diff --git a/frontend/resources/styles/common/refactor/themes/default-theme.scss b/frontend/resources/styles/common/refactor/themes/default-theme.scss index 432906c9e5..2b5feb06a1 100644 --- a/frontend/resources/styles/common/refactor/themes/default-theme.scss +++ b/frontend/resources/styles/common/refactor/themes/default-theme.scss @@ -37,6 +37,7 @@ --color-info-foreground: var(--status-color-info-500); --overlay-color: var(--db-primary-60); + --overlay-color-onboarding-a-b-test: var(--db-primary-90); --shadow-color: var(--db-secondary-30); --radio-button-box-shadow: 0 0 0 1px var(--db-secondary-30) inset; diff --git a/frontend/resources/styles/common/refactor/themes/light-theme.scss b/frontend/resources/styles/common/refactor/themes/light-theme.scss index cd9b6e61c7..01e98c6cba 100644 --- a/frontend/resources/styles/common/refactor/themes/light-theme.scss +++ b/frontend/resources/styles/common/refactor/themes/light-theme.scss @@ -37,6 +37,8 @@ --color-info-foreground: var(--status-color-info-500); --overlay-color: var(--lb-primary-60); + --overlay-color-onboarding-a-b-test: var(--lb-primary-90); + --shadow-color: var(--lf-secondary-40); --radio-button-box-shadow: 0 0 0 1px var(--lb-secondary) inset; diff --git a/frontend/src/app/main/ui/onboarding.cljs b/frontend/src/app/main/ui/onboarding.cljs index 3788ac3f54..f79b2e81a9 100644 --- a/frontend/src/app/main/ui/onboarding.cljs +++ b/frontend/src/app/main/ui/onboarding.cljs @@ -142,7 +142,9 @@ (modal/show! {:type :onboarding-newsletter}) (contains? cf/flags :onboarding-team) - (modal/show! {:type :onboarding-team}))))] + (modal/show! {:type :onboarding-team})))) + + onboarding-a-b-test? (cf/external-feature-flag "signup-background" "test")] (mf/with-effect [@slide] (when (not= :start @slide) @@ -151,8 +153,8 @@ (fn [] (reset! klass nil) (tm/dispose! sem)))) - - [:div {:class (stl/css :modal-overlay)} + [:div {:class (stl/css-case :modal-overlay true + :onboarding-a-b-test onboarding-a-b-test?)} [:div.animated {:class (dm/str @klass " " (stl/css :animated))} (case @slide :start [:& onboarding-welcome {:next #(navigate :opensource)}] diff --git a/frontend/src/app/main/ui/onboarding/newsletter.cljs b/frontend/src/app/main/ui/onboarding/newsletter.cljs index e0336641ed..4de6caf2f8 100644 --- a/frontend/src/app/main/ui/onboarding/newsletter.cljs +++ b/frontend/src/app/main/ui/onboarding/newsletter.cljs @@ -7,6 +7,7 @@ (ns app.main.ui.onboarding.newsletter (:require-macros [app.main.style :as stl]) (:require + [app.config :as cf] [app.main.data.messages :as msg] [app.main.data.modal :as modal] [app.main.data.users :as du] @@ -35,9 +36,11 @@ (st/emit! (when (or @newsletter-updates @newsletter-news) (msg/success message)) (modal/show {:type :onboarding-team}) - (du/update-profile-props {:newsletter-updates @newsletter-updates :newsletter-news @newsletter-news}))))] + (du/update-profile-props {:newsletter-updates @newsletter-updates :newsletter-news @newsletter-news})))) + onboarding-a-b-test? (cf/external-feature-flag "signup-background" "test")] - [:div {:class (stl/css :modal-overlay)} + [:div {:class (stl/css-case :modal-overlay true + :onboarding-a-b-test onboarding-a-b-test?)} [:div.animated.fadeInDown {:class (stl/css :modal-container)} [:div {:class (stl/css :modal-left)} [:img {:src "images/deco-newsletter.png" diff --git a/frontend/src/app/main/ui/onboarding/questions.cljs b/frontend/src/app/main/ui/onboarding/questions.cljs index ae9f5d4274..2c05f7ef5b 100644 --- a/frontend/src/app/main/ui/onboarding/questions.cljs +++ b/frontend/src/app/main/ui/onboarding/questions.cljs @@ -287,9 +287,11 @@ (modal/show! {:type :onboarding-team}) :else - (modal/hide!)))))] + (modal/hide!))))) + onboarding-a-b-test? (cf/external-feature-flag "signup-background" "test")] - [:div {:class (stl/css :modal-overlay)} + [:div {:class (stl/css-case :modal-overlay true + :onboarding-a-b-test onboarding-a-b-test?)} [:div {:class (stl/css :modal-container) :ref container} (case @step diff --git a/frontend/src/app/main/ui/onboarding/team_choice.cljs b/frontend/src/app/main/ui/onboarding/team_choice.cljs index 86b710bcf4..a9b4bbc4b0 100644 --- a/frontend/src/app/main/ui/onboarding/team_choice.cljs +++ b/frontend/src/app/main/ui/onboarding/team_choice.cljs @@ -9,6 +9,7 @@ (:require [app.common.data.macros :as dmc] [app.common.spec :as us] + [app.config :as cf] [app.main.data.dashboard :as dd] [app.main.data.events :as ev] [app.main.data.messages :as msg] @@ -84,14 +85,16 @@ ::ev/origin "onboarding" :step 1})))) - teams (mf/deref refs/teams)] + teams (mf/deref refs/teams) + onboarding-a-b-test? (cf/external-feature-flag "signup-background" "test")] (mf/with-effect [teams] (when (> (count teams) 1) (st/emit! (modal/hide)))) (when (< (count teams) 2) - [:div {:class (stl/css :modal-overlay)} + [:div {:class (stl/css-case :modal-overlay true + :onboarding-a-b-test onboarding-a-b-test?)} [:div.animated.fadeIn {:class (stl/css :modal-container)} [:& team-modal-left] [:div {:class (stl/css :separator)}] @@ -212,9 +215,11 @@ (if (> (count emails) 0) (on-invite-now form) (on-invite-later form)) - (modal/hide!))))] + (modal/hide!)))) + onboarding-a-b-test? (cf/external-feature-flag "signup-background" "test")] - [:div {:class (stl/css :modal-overlay)} + [:div {:class (stl/css-case :modal-overlay true + :onboarding-a-b-test onboarding-a-b-test?)} [:div.animated.fadeIn {:class (stl/css :modal-container)} [:& team-modal-left] diff --git a/frontend/src/app/main/ui/releases/v2_0.cljs b/frontend/src/app/main/ui/releases/v2_0.cljs index 0c3af30604..5113075449 100644 --- a/frontend/src/app/main/ui/releases/v2_0.cljs +++ b/frontend/src/app/main/ui/releases/v2_0.cljs @@ -8,196 +8,203 @@ (:require-macros [app.main.style :as stl]) (:require [app.common.data.macros :as dm] + [app.config :as cf] [app.main.ui.releases.common :as c] [rumext.v2 :as mf])) ;; TODO: Review all copies and alt text (defmethod c/render-release-notes "2.0" [{:keys [slide klass next finish navigate version]}] - (mf/html - (case slide - :start - [:div {:class (stl/css :modal-overlay)} - [:div.animated {:class klass} - [:div {:class (stl/css :modal-container)} - [:img {:src "images/features/2.0-intro-image.png" - :class (stl/css :start-image) - :border "0" - :alt "A graphic illustration with Penpot style"}] + (let [onboarding-a-b-test? (cf/external-feature-flag "signup-background" "test")] + (mf/html + (case slide + :start + [:div {:class (stl/css-case :modal-overlay true + :onboarding-a-b-test onboarding-a-b-test?)} + [:div.animated {:class klass} + [:div {:class (stl/css :modal-container)} + [:img {:src "images/features/2.0-intro-image.png" + :class (stl/css :start-image) + :border "0" + :alt "A graphic illustration with Penpot style"}] - [:div {:class (stl/css :modal-content)} - [:div {:class (stl/css :modal-header)} - [:h1 {:class (stl/css :modal-title)} - "Welcome to Penpot 2.0! "] + [:div {:class (stl/css :modal-content)} + [:div {:class (stl/css :modal-header)} + [:h1 {:class (stl/css :modal-title)} + "Welcome to Penpot 2.0! "] - [:div {:class (stl/css :version-tag)} - (dm/str "Version " version)]] + [:div {:class (stl/css :version-tag)} + (dm/str "Version " version)]] - [:div {:class (stl/css :features-block)} - [:p {:class (stl/css :feature-content)} - [:spam {:class (stl/css :feature-title)} - "CSS Grid Layout: "] - "Bring your designs to life, knowing that what you create is what developers code."] + [:div {:class (stl/css :features-block)} + [:p {:class (stl/css :feature-content)} + [:spam {:class (stl/css :feature-title)} + "CSS Grid Layout: "] + "Bring your designs to life, knowing that what you create is what developers code."] - [:p {:class (stl/css :feature-content)} - [:spam {:class (stl/css :feature-title)} - "Sleeker UI: "] - "We’ve polished Penpot to make your experience smoother and more enjoyable."] + [:p {:class (stl/css :feature-content)} + [:spam {:class (stl/css :feature-title)} + "Sleeker UI: "] + "We’ve polished Penpot to make your experience smoother and more enjoyable."] - [:p {:class (stl/css :feature-content)} - [:spam {:class (stl/css :feature-title)} - "New Components System: "] - "Managing and using your design components got a whole lot better."] + [:p {:class (stl/css :feature-content)} + [:spam {:class (stl/css :feature-title)} + "New Components System: "] + "Managing and using your design components got a whole lot better."] - [:p {:class (stl/css :feature-content)} - "And that’s not all - we’ve fined tuned performance and " - "accessibility to give you a better and more fluid design experience."] + [:p {:class (stl/css :feature-content)} + "And that’s not all - we’ve fined tuned performance and " + "accessibility to give you a better and more fluid design experience."] - [:p {:class (stl/css :feature-content)} - " Ready to dive in? Let 's get started!"]] + [:p {:class (stl/css :feature-content)} + " Ready to dive in? Let 's get started!"]] - [:div {:class (stl/css :navigation)} - [:button {:class (stl/css :next-btn) - :on-click next} "Continue"]]]]]] + [:div {:class (stl/css :navigation)} + [:button {:class (stl/css :next-btn) + :on-click next} "Continue"]]]]]] - 0 - [:div {:class (stl/css :modal-overlay)} - [:div.animated {:class klass} - [:div {:class (stl/css :modal-container)} - [:img {:src "images/features/2.0-css-grid.gif" - :class (stl/css :start-image) - :border "0" - :alt "Penpot's CSS Grid Layout"}] + 0 + [:div {:class (stl/css-case :modal-overlay true + :onboarding-a-b-test onboarding-a-b-test?)} + [:div.animated {:class klass} + [:div {:class (stl/css :modal-container)} + [:img {:src "images/features/2.0-css-grid.gif" + :class (stl/css :start-image) + :border "0" + :alt "Penpot's CSS Grid Layout"}] - [:div {:class (stl/css :modal-content)} - [:div {:class (stl/css :modal-header)} - [:h1 {:class (stl/css :modal-title)} - "CSS Grid Layout - Design Meets Development"]] + [:div {:class (stl/css :modal-content)} + [:div {:class (stl/css :modal-header)} + [:h1 {:class (stl/css :modal-title)} + "CSS Grid Layout - Design Meets Development"]] - [:div {:class (stl/css :feature)} - [:p {:class (stl/css :feature-content)} - "The much-awaited Grid Layout introduces 2-dimensional" - " layout capabilities to Penpot, allowing for the creation" - " of adaptive layouts by leveraging the power of CSS properties."] + [:div {:class (stl/css :feature)} + [:p {:class (stl/css :feature-content)} + "The much-awaited Grid Layout introduces 2-dimensional" + " layout capabilities to Penpot, allowing for the creation" + " of adaptive layouts by leveraging the power of CSS properties."] - [:p {:class (stl/css :feature-content)} - "It’s a host of new features, including columns and" - " rows management, flexible units such as FR (fractions)," - " the ability to create and name areas, and tons of new " - "and unique possibilities within a design tool."] + [:p {:class (stl/css :feature-content)} + "It’s a host of new features, including columns and" + " rows management, flexible units such as FR (fractions)," + " the ability to create and name areas, and tons of new " + "and unique possibilities within a design tool."] - [:p {:class (stl/css :feature-content)} - "Designers will learn CSS basics while working, " - "and as always with Penpot, developers can pick" - " up the design as code to take it from there."]] + [:p {:class (stl/css :feature-content)} + "Designers will learn CSS basics while working, " + "and as always with Penpot, developers can pick" + " up the design as code to take it from there."]] - [:div {:class (stl/css :navigation)} - [:& c/navigation-bullets - {:slide slide - :navigate navigate - :total 4}] + [:div {:class (stl/css :navigation)} + [:& c/navigation-bullets + {:slide slide + :navigate navigate + :total 4}] - [:button {:on-click next - :class (stl/css :next-btn)} "Continue"]]]]]] + [:button {:on-click next + :class (stl/css :next-btn)} "Continue"]]]]]] - 1 - [:div {:class (stl/css :modal-overlay)} - [:div.animated {:class klass} - [:div {:class (stl/css :modal-container)} - [:img {:src "images/features/2.0-new-ui.gif" - :class (stl/css :start-image) - :border "0" - :alt "Penpot's UI Makeover"}] + 1 + [:div {:class (stl/css-case :modal-overlay true + :onboarding-a-b-test onboarding-a-b-test?)} + [:div.animated {:class klass} + [:div {:class (stl/css :modal-container)} + [:img {:src "images/features/2.0-new-ui.gif" + :class (stl/css :start-image) + :border "0" + :alt "Penpot's UI Makeover"}] - [:div {:class (stl/css :modal-content)} - [:div {:class (stl/css :modal-header)} - [:h1 {:class (stl/css :modal-title)} - "UI Makeover - Smoother, Sharper, and Simply More Fun"]] + [:div {:class (stl/css :modal-content)} + [:div {:class (stl/css :modal-header)} + [:h1 {:class (stl/css :modal-title)} + "UI Makeover - Smoother, Sharper, and Simply More Fun"]] - [:div {:class (stl/css :feature)} - [:p {:class (stl/css :feature-content)} - "We've completely overhauled Penpot's user interface. " - "The improvements in consistency, the introduction of " - "new microinteractions, and attention to countless details" - " will significantly enhance the productivity and enjoyment of using Penpot."] - [:p {:class (stl/css :feature-content)} - "Furthermore, we’ve made several accessibility improvements, " - "with better color contrast, keyboard navigation," - " and adherence to other best practices."]] + [:div {:class (stl/css :feature)} + [:p {:class (stl/css :feature-content)} + "We've completely overhauled Penpot's user interface. " + "The improvements in consistency, the introduction of " + "new microinteractions, and attention to countless details" + " will significantly enhance the productivity and enjoyment of using Penpot."] + [:p {:class (stl/css :feature-content)} + "Furthermore, we’ve made several accessibility improvements, " + "with better color contrast, keyboard navigation," + " and adherence to other best practices."]] - [:div {:class (stl/css :navigation)} - [:& c/navigation-bullets - {:slide slide - :navigate navigate - :total 4}] + [:div {:class (stl/css :navigation)} + [:& c/navigation-bullets + {:slide slide + :navigate navigate + :total 4}] - [:button {:on-click next - :class (stl/css :next-btn)} "Continue"]]]]]] + [:button {:on-click next + :class (stl/css :next-btn)} "Continue"]]]]]] - 2 - [:div {:class (stl/css :modal-overlay)} - [:div.animated {:class klass} - [:div {:class (stl/css :modal-container)} - [:img {:src "images/features/2.0-components.gif" - :class (stl/css :start-image) - :border "0" - :alt "Penpot's new components system"}] + 2 + [:div {:class (stl/css-case :modal-overlay true + :onboarding-a-b-test onboarding-a-b-test?)} + [:div.animated {:class klass} + [:div {:class (stl/css :modal-container)} + [:img {:src "images/features/2.0-components.gif" + :class (stl/css :start-image) + :border "0" + :alt "Penpot's new components system"}] - [:div {:class (stl/css :modal-content)} - [:div {:class (stl/css :modal-header)} - [:h1 {:class (stl/css :modal-title)} - "New Components System"]] - [:div {:class (stl/css :feature)} - [:p {:class (stl/css :feature-content)} - "The new Penpot components system improves" - " control over instances, including their " - "inheritances and properties overrides. " - "Main components are now accessible as design" - " elements, allowing a better updating " - "workflow through instant changes synchronization."] - [:p {:class (stl/css :feature-content)} - "And that’s not all, there are new capabilities " - "such as component swapping and annotations " - "that will help you to better manage your design systems."]] + [:div {:class (stl/css :modal-content)} + [:div {:class (stl/css :modal-header)} + [:h1 {:class (stl/css :modal-title)} + "New Components System"]] + [:div {:class (stl/css :feature)} + [:p {:class (stl/css :feature-content)} + "The new Penpot components system improves" + " control over instances, including their " + "inheritances and properties overrides. " + "Main components are now accessible as design" + " elements, allowing a better updating " + "workflow through instant changes synchronization."] + [:p {:class (stl/css :feature-content)} + "And that’s not all, there are new capabilities " + "such as component swapping and annotations " + "that will help you to better manage your design systems."]] - [:div {:class (stl/css :navigation)} - [:& c/navigation-bullets - {:slide slide - :navigate navigate - :total 4}] + [:div {:class (stl/css :navigation)} + [:& c/navigation-bullets + {:slide slide + :navigate navigate + :total 4}] - [:button {:on-click next - :class (stl/css :next-btn)} "Continue"]]]]]] + [:button {:on-click next + :class (stl/css :next-btn)} "Continue"]]]]]] - 3 - [:div {:class (stl/css :modal-overlay)} - [:div.animated {:class klass} - [:div {:class (stl/css :modal-container)} - [:img {:src "images/features/2.0-html.gif" - :class (stl/css :start-image) - :border "0" - :alt " Penpot's HTML code generator"}] + 3 + [:div {:class (stl/css-case :modal-overlay true + :onboarding-a-b-test onboarding-a-b-test?)} + [:div.animated {:class klass} + [:div {:class (stl/css :modal-container)} + [:img {:src "images/features/2.0-html.gif" + :class (stl/css :start-image) + :border "0" + :alt " Penpot's HTML code generator"}] - [:div {:class (stl/css :modal-content)} - [:div {:class (stl/css :modal-header)} - [:h1 {:class (stl/css :modal-title)} - "And much more"]] - [:div {:class (stl/css :feature)} - [:p {:class (stl/css :feature-content)} - "In addition to all of this, we’ve included several other requested improvements:"] - [:ul {:class (stl/css :feature-list)} - [:li "Access HTML markup code directly in inspect mode"] - [:li "Images are now treated as element fills, maintaining their aspect ratio on resize, ideal for flexible designs"] - [:li "Enjoy new color themes with options for both dark and light modes"] - [:li "Feel the speed boost! Enjoy a smoother experience with a bunch of performance improvements"]]] + [:div {:class (stl/css :modal-content)} + [:div {:class (stl/css :modal-header)} + [:h1 {:class (stl/css :modal-title)} + "And much more"]] + [:div {:class (stl/css :feature)} + [:p {:class (stl/css :feature-content)} + "In addition to all of this, we’ve included several other requested improvements:"] + [:ul {:class (stl/css :feature-list)} + [:li "Access HTML markup code directly in inspect mode"] + [:li "Images are now treated as element fills, maintaining their aspect ratio on resize, ideal for flexible designs"] + [:li "Enjoy new color themes with options for both dark and light modes"] + [:li "Feel the speed boost! Enjoy a smoother experience with a bunch of performance improvements"]]] - [:div {:class (stl/css :navigation)} + [:div {:class (stl/css :navigation)} - [:& c/navigation-bullets - {:slide slide - :navigate navigate - :total 4}] + [:& c/navigation-bullets + {:slide slide + :navigate navigate + :total 4}] - [:button {:on-click finish - :class (stl/css :next-btn)} "Let's go"]]]]]]))) + [:button {:on-click finish + :class (stl/css :next-btn)} "Let's go"]]]]]])))) From 06221c37a3cb25f7047b7ea579cd9e11494ece2b Mon Sep 17 00:00:00 2001 From: Pablo Alba Date: Mon, 3 Jun 2024 13:04:49 +0200 Subject: [PATCH 027/476] Update THANKYOU.md --- THANKYOU.md | 1 + 1 file changed, 1 insertion(+) diff --git a/THANKYOU.md b/THANKYOU.md index 1a27aa8eb9..77a1483aab 100644 --- a/THANKYOU.md +++ b/THANKYOU.md @@ -6,6 +6,7 @@ We want to thank to the amazing people that help us! Thank you! You're the best! * Husnain Iqbal (CEO OF ALPHA INFERNO PVT LTD) * [Shiraz Ali Khan](https://www.linkedin.com/in/shiraz-ali-khan-1ba508180/) * Vaibhav Shukla +* Hassan Ahmed (Alias Xen Lee) ## Internationalization * [00ff88](https://hosted.weblate.org/user/00ff88) From de7880b4a29aab9bb3c32cb1055215ab0844775b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bel=C3=A9n=20Albeza?= Date: Thu, 30 May 2024 14:31:52 +0200 Subject: [PATCH 028/476] :bug: Fix color names in palette being clipped and not breaking at dot characters --- frontend/src/app/main/ui/components/color_bullet.cljs | 6 +++++- frontend/src/app/main/ui/components/color_bullet.scss | 1 + 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/frontend/src/app/main/ui/components/color_bullet.cljs b/frontend/src/app/main/ui/components/color_bullet.cljs index 0c857cc3de..1a39f1750b 100644 --- a/frontend/src/app/main/ui/components/color_bullet.cljs +++ b/frontend/src/app/main/ui/components/color_bullet.cljs @@ -44,6 +44,10 @@ (some? image) (tr "media.image"))))) +(defn- breakable-color-title + [title] + (str/replace title "." ".\u200B")) + (mf/defc color-bullet {::mf/wrap [mf/memo] ::mf/wrap-props false} @@ -112,4 +116,4 @@ :title name :on-click on-click :on-double-click on-double-click} - (or name color (uc/gradient-type->string (:type gradient)))]))) + (breakable-color-title (or name color (uc/gradient-type->string (:type gradient))))]))) diff --git a/frontend/src/app/main/ui/components/color_bullet.scss b/frontend/src/app/main/ui/components/color_bullet.scss index 3a8e0e202a..cdfcb6c075 100644 --- a/frontend/src/app/main/ui/components/color_bullet.scss +++ b/frontend/src/app/main/ui/components/color_bullet.scss @@ -86,6 +86,7 @@ .big-text { @include inspectValue; @include twoLineTextEllipsis; + line-height: 1; color: var(--palette-text-color); height: $s-28; text-align: center; From 8f0fd0a6e280c79888a1c950452c0984cc52140f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bel=C3=A9n=20Albeza?= Date: Thu, 30 May 2024 15:48:06 +0200 Subject: [PATCH 029/476] :bug: Fix wrong css selector applied globally and affecting the palette --- frontend/src/app/main/ui/components/forms.scss | 9 ++++----- frontend/src/app/main/ui/workspace/color_palette.scss | 3 ++- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/frontend/src/app/main/ui/components/forms.scss b/frontend/src/app/main/ui/components/forms.scss index d29571542a..69c6dcd0b8 100644 --- a/frontend/src/app/main/ui/components/forms.scss +++ b/frontend/src/app/main/ui/components/forms.scss @@ -259,11 +259,10 @@ // SUBMIT-BUTTON .button-submit { @extend .button-primary; -} - -:disabled { - @extend .button-disabled; - min-height: $s-32; + &:disabled { + @extend .button-disabled; + min-height: $s-32; + } } // MULTI INPUT diff --git a/frontend/src/app/main/ui/workspace/color_palette.scss b/frontend/src/app/main/ui/workspace/color_palette.scss index 4815dee3e2..019704155f 100644 --- a/frontend/src/app/main/ui/workspace/color_palette.scss +++ b/frontend/src/app/main/ui/workspace/color_palette.scss @@ -62,7 +62,8 @@ var(--palette-button-shadow-final) 100% ); } - &.disabled ::after { + + &:disabled::after { background-image: none; } From 258aaf81d5ea6b61a276f87f462d85cd8fe9305e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bel=C3=A9n=20Albeza?= Date: Mon, 3 Jun 2024 15:28:24 +0200 Subject: [PATCH 030/476] :bug: Fix color palette inner scroll width --- .../app/main/ui/workspace/color_palette.cljs | 16 ++++---- .../app/main/ui/workspace/color_palette.scss | 39 +++++++++---------- .../src/app/main/ui/workspace/palette.cljs | 1 - 3 files changed, 28 insertions(+), 28 deletions(-) diff --git a/frontend/src/app/main/ui/workspace/color_palette.cljs b/frontend/src/app/main/ui/workspace/color_palette.cljs index b48eb89dc3..62c4146144 100644 --- a/frontend/src/app/main/ui/workspace/color_palette.cljs +++ b/frontend/src/app/main/ui/workspace/color_palette.cljs @@ -41,27 +41,29 @@ state (mf/use-state {:show-menu false}) offset-step (cond (<= size 64) 40 - (<= size 72) 88 - (<= size 80) 88 - :else 88) + (<= size 80) 72 + :else 72) buttons-size (cond (<= size 64) 164 - (<= size 72) 164 - (<= size 80) 132 :else 132) width (- width buttons-size) visible (int (/ width offset-step)) show-arrows? (> (count current-colors) visible) + visible (if show-arrows? + (int (/ (- width 48) offset-step)) + visible) offset (:offset @state 0) max-offset (- (count current-colors) visible) - container (mf/use-ref nil) bullet-size (cond (<= size 64) "32" (<= size 72) "28" (<= size 80) "32" :else "32") + color-cell-width (cond + (<= size 64) 32 + :else 64) on-left-arrow-click (mf/use-callback @@ -103,7 +105,7 @@ [:div {:class (stl/css-case :color-palette true :no-text (< size 64)) - :style #js {"--bullet-size" (dm/str bullet-size "px")}} + :style #js {"--bullet-size" (dm/str bullet-size "px") "--color-cell-width" (dm/str color-cell-width "px")}} (when show-arrows? [:button {:class (stl/css :left-arrow) diff --git a/frontend/src/app/main/ui/workspace/color_palette.scss b/frontend/src/app/main/ui/workspace/color_palette.scss index 019704155f..6d27fbe998 100644 --- a/frontend/src/app/main/ui/workspace/color_palette.scss +++ b/frontend/src/app/main/ui/workspace/color_palette.scss @@ -73,27 +73,26 @@ } .color-palette-content { - display: flex; - overflow: hidden; + overflow: hidden; +} - .color-palette-inside { - display: flex; - gap: $s-8; - } - .color-cell { - display: grid; - grid-template-columns: 100%; - grid-template-rows: auto 1fr; - justify-items: center; - height: 100%; - width: $s-80; - &.is-not-library-color { - width: $s-64; - } - &.no-text { - @include flexCenter; - width: $s-32; - } +.color-palette-inside { + display: grid; + grid-auto-flow: column; + grid-auto-columns: var(--color-cell-width); + gap: $s-8; +} + +.color-cell { + display: grid; + grid-template-columns: 100%; + grid-template-rows: auto 1fr; + justify-items: center; + height: 100%; + + &.no-text { + @include flexCenter; + width: $s-32; } } diff --git a/frontend/src/app/main/ui/workspace/palette.cljs b/frontend/src/app/main/ui/workspace/palette.cljs index eab23c77bc..eedaeda61f 100644 --- a/frontend/src/app/main/ui/workspace/palette.cljs +++ b/frontend/src/app/main/ui/workspace/palette.cljs @@ -125,7 +125,6 @@ (dom/blur! node)))) any-palette? (or color-palette? text-palette?) - size-classname (cond (<= size 64) (stl/css :small-palette) From f8ca4c4343927eadc60bc0193d70a01fb103f262 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bel=C3=A9n=20Albeza?= Date: Mon, 3 Jun 2024 16:30:16 +0200 Subject: [PATCH 031/476] :bug: Fix color name in circle bullets spanning over more than 2 lines --- CHANGES.md | 2 ++ frontend/src/app/main/ui/components/color_bullet.scss | 1 - frontend/src/app/main/ui/workspace/color_palette.scss | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index 17f3332221..952f7c51a3 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -13,6 +13,8 @@ ### :bug: Bugs fixed +- Layout and scrollign fixes for the bottom palette [Taiga Issue #7559](https://tree.taiga.io/project/penpot/issue/7559) + ## 2.0.3 ### :bug: Bugs fixed diff --git a/frontend/src/app/main/ui/components/color_bullet.scss b/frontend/src/app/main/ui/components/color_bullet.scss index cdfcb6c075..37b733f34d 100644 --- a/frontend/src/app/main/ui/components/color_bullet.scss +++ b/frontend/src/app/main/ui/components/color_bullet.scss @@ -88,7 +88,6 @@ @include twoLineTextEllipsis; line-height: 1; color: var(--palette-text-color); - height: $s-28; text-align: center; } diff --git a/frontend/src/app/main/ui/workspace/color_palette.scss b/frontend/src/app/main/ui/workspace/color_palette.scss index 6d27fbe998..3962453696 100644 --- a/frontend/src/app/main/ui/workspace/color_palette.scss +++ b/frontend/src/app/main/ui/workspace/color_palette.scss @@ -73,7 +73,7 @@ } .color-palette-content { - overflow: hidden; + overflow: hidden; } .color-palette-inside { From 53526b995724af448430c87f6f3538d53ef74fb6 Mon Sep 17 00:00:00 2001 From: Eva Marco Date: Mon, 3 Jun 2024 13:52:45 +0200 Subject: [PATCH 032/476] :bug: Fix expand libraries when search results are present --- CHANGES.md | 1 + .../sidebar/assets/file_library.cljs | 28 ++++++++++++++++++- 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/CHANGES.md b/CHANGES.md index 12fa5542d4..f94ccf15d6 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -15,6 +15,7 @@ ### :bug: Bugs fixed - Layout and scrollign fixes for the bottom palette [Taiga Issue #7559](https://tree.taiga.io/project/penpot/issue/7559) +- Fix expand libraries when search results are present [Taiga issue #7876](https://tree.taiga.io/project/penpot/issue/7876) ## 2.0.3 diff --git a/frontend/src/app/main/ui/workspace/sidebar/assets/file_library.cljs b/frontend/src/app/main/ui/workspace/sidebar/assets/file_library.cljs index f822fb5f86..109d067a61 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/assets/file_library.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/assets/file_library.cljs @@ -294,7 +294,30 @@ [:span {:class (stl/css :no-found-text)} (tr "workspace.assets.not-found")]])])) +(defn- force-lib-open? [file-id filters] + (let [library-ref (mf/with-memo [file-id] + (create-file-library-ref file-id)) + library (mf/deref library-ref) + colors (:colors library) + components (:components library) + media (:media library) + typographies (:typographies library) + + filtered-colors (mf/with-memo [filters colors] + (cmm/apply-filters colors filters)) + filtered-components (mf/with-memo [filters components] + (cmm/apply-filters components filters)) + filtered-media (mf/with-memo [filters media] + (cmm/apply-filters media filters)) + filtered-typographies (mf/with-memo [filters typographies] + (cmm/apply-filters typographies filters)) + + filters-term (:term filters) + has-term? (not (str/blank? filters-term))] + (and has-term? + (some pos? (map count [filtered-components filtered-colors filtered-media filtered-typographies])) + (some #(> 60 (count %)) [filtered-components filtered-colors filtered-media filtered-typographies])))) (mf/defc file-library {::mf/wrap-props false} [{:keys [file local? default-open? filters]}] @@ -308,7 +331,10 @@ (-> (l/key file-id) (l/derived lens:open-status))) open-status (mf/deref open-status-ref) - open? (d/nilv (:library open-status) default-open?) + force-open-lib? (force-lib-open? file-id filters) + + open? (or force-open-lib? + (d/nilv (:library open-status) default-open?)) unselect-all (mf/use-fn From f9692fde3549e3ed2f64f7cb1d80c4847664c013 Mon Sep 17 00:00:00 2001 From: Eva Marco Date: Mon, 3 Jun 2024 15:53:00 +0200 Subject: [PATCH 033/476] :sparkles: Allow library colors as recent colors --- CHANGES.md | 3 ++- frontend/src/app/main/ui/workspace/color_palette.cljs | 5 ++++- frontend/src/app/main/ui/workspace/colorpicker.cljs | 4 +++- .../src/app/main/ui/workspace/sidebar/assets/colors.cljs | 8 ++++++-- 4 files changed, 15 insertions(+), 5 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index f94ccf15d6..ecd4aaa840 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -9,8 +9,9 @@ ### :heart: Community contributions (Thank you!) ### :sparkles: New features -- Improve auth process [Taiga #7094](https://tree.taiga.io/project/penpot/us/7094) +- Improve auth process [Taiga #Change Auth Process](https://tree.taiga.io/project/penpot/us/7094) - Add locking degrees increment (hold shift) on path edition [Taiga #7761](https://tree.taiga.io/project/penpot/issue/7761) +- Allow library colors as recent colors [Taiga issue #7640](https://tree.taiga.io/project/penpot/issue/7640) ### :bug: Bugs fixed diff --git a/frontend/src/app/main/ui/workspace/color_palette.cljs b/frontend/src/app/main/ui/workspace/color_palette.cljs index 62c4146144..7fb9587c0b 100644 --- a/frontend/src/app/main/ui/workspace/color_palette.cljs +++ b/frontend/src/app/main/ui/workspace/color_palette.cljs @@ -9,6 +9,7 @@ (:require [app.common.data.macros :as dm] [app.main.data.workspace.colors :as mdc] + [app.main.data.workspace.libraries :as dwl] [app.main.refs :as refs] [app.main.store :as st] [app.main.ui.components.color-bullet :as cb] @@ -24,7 +25,9 @@ {::mf/wrap [mf/memo]} [{:keys [color size]}] (letfn [(select-color [event] - (st/emit! (mdc/apply-color-from-palette color (kbd/alt? event))))] + (st/emit! + (dwl/add-recent-color color) + (mdc/apply-color-from-palette color (kbd/alt? event))))] [:div {:class (stl/css-case :color-cell true :is-not-library-color (nil? (:id color)) :no-text (<= size 64)) diff --git a/frontend/src/app/main/ui/workspace/colorpicker.cljs b/frontend/src/app/main/ui/workspace/colorpicker.cljs index 1e04058eef..2170ebfebd 100644 --- a/frontend/src/app/main/ui/workspace/colorpicker.cljs +++ b/frontend/src/app/main/ui/workspace/colorpicker.cljs @@ -168,7 +168,9 @@ (if (and (some? (:color color)) (some? (:gradient data))) (handle-change-color {:hex (:color color) :alpha (:opacity color)}) (do - (st/emit! (dc/apply-color-from-colorpicker color)) + (st/emit! + (dwl/add-recent-color color) + (dc/apply-color-from-colorpicker color)) (on-change color))))) on-add-library-color diff --git a/frontend/src/app/main/ui/workspace/sidebar/assets/colors.cljs b/frontend/src/app/main/ui/workspace/sidebar/assets/colors.cljs index 02c3fe55be..4f4e7ef8b1 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/assets/colors.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/assets/colors.cljs @@ -68,7 +68,9 @@ (mf/use-fn (mf/deps color) (fn [event] - (st/emit! (dc/apply-color-from-palette (merge uc/empty-color color) (kbd/alt? event))))) + (st/emit! + (dwl/add-recent-color color) + (dc/apply-color-from-palette (merge uc/empty-color color) (kbd/alt? event))))) rename-color (mf/use-fn @@ -183,7 +185,9 @@ on-click (mf/use-fn (mf/deps color-id apply-color on-asset-click) - (partial on-asset-click color-id apply-color))] + (do + (dwl/add-recent-color color) + (partial on-asset-click color-id apply-color)))] (mf/with-effect [editing?] (when editing? From b74c5fc9b398ae627384e4880fa44c0ad7fe90c0 Mon Sep 17 00:00:00 2001 From: Eva Marco Date: Mon, 3 Jun 2024 17:12:27 +0200 Subject: [PATCH 034/476] :bug: Fix demo account visible on login --- frontend/src/app/main/ui/auth/login.cljs | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/frontend/src/app/main/ui/auth/login.cljs b/frontend/src/app/main/ui/auth/login.cljs index ee852b8523..a3267a3d46 100644 --- a/frontend/src/app/main/ui/auth/login.cljs +++ b/frontend/src/app/main/ui/auth/login.cljs @@ -300,13 +300,4 @@ [:& lk/link {:action go-register :class (stl/css :register-link) :data-test "register-submit"} - (tr "auth.register-submit")]]) - - (when (contains? cf/flags :demo-users) - [:div {:class (stl/css :demo-account)} - [:span {:class (stl/css :demo-account-text)} - (tr "auth.create-demo-profile") " "] - [:& lk/link {:action create-demo-profile - :class (stl/css :demo-account-link) - :data-test "demo-account-link"} - (tr "auth.create-demo-account")]])]])) + (tr "auth.register-submit")]])]])) From 3294058e169f170acd20971743d232c5f5b2a41b Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Mon, 3 Jun 2024 11:15:00 +0200 Subject: [PATCH 035/476] :sparkles: Add stricter validation for audit events --- backend/src/app/rpc/commands/audit.clj | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/backend/src/app/rpc/commands/audit.clj b/backend/src/app/rpc/commands/audit.clj index 5db758b464..6af5f5b62a 100644 --- a/backend/src/app/rpc/commands/audit.clj +++ b/backend/src/app/rpc/commands/audit.clj @@ -77,10 +77,19 @@ (when (seq events) (db/insert-many! pool :audit-log event-columns events)))) +(def valid-event-types + #{"action" "identify"}) + (def schema:event [:map {:title "Event"} - [:name [:string {:max 250}]] - [:type [:string {:max 250}]] + [:name + [:and {:gen/elements ["update-file", "get-profile"]} + [:string {:max 250}] + [:re #"[\d\w-]{1,50}"]]] + [:type + [:and {:gen/elements valid-event-types} + [:string {:max 250}] + [::sm/one-of {:format "string"} valid-event-types]]] [:props [:map-of :keyword :any]] [:context {:optional true} From 6436ef334b826bfebbb8fe6ec30d46ce89c027ea Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Tue, 25 Jul 2023 11:20:52 +0200 Subject: [PATCH 036/476] :recycle: Refactor persistence layer --- .clj-kondo/hooks/export.clj | 1 + CHANGES.md | 8 +- backend/src/app/rpc/commands/files_update.clj | 4 +- frontend/src/app/main/data/changes.cljs | 166 +++++++++++ frontend/src/app/main/data/exports.cljs | 2 +- frontend/src/app/main/data/persistence.cljs | 230 +++++++++++++++ frontend/src/app/main/data/workspace.cljs | 49 +++- .../src/app/main/data/workspace/bool.cljs | 9 +- .../src/app/main/data/workspace/changes.cljs | 264 ------------------ .../src/app/main/data/workspace/colors.cljs | 30 +- .../src/app/main/data/workspace/comments.cljs | 2 +- .../src/app/main/data/workspace/common.cljs | 132 --------- .../data/workspace/fix_bool_contents.cljs | 9 +- .../data/workspace/fix_broken_shapes.cljs | 2 +- .../data/workspace/fix_deleted_fonts.cljs | 13 +- .../src/app/main/data/workspace/grid.cljs | 11 +- .../data/workspace/grid_layout/shortcuts.cljs | 6 +- .../src/app/main/data/workspace/groups.cljs | 2 +- .../src/app/main/data/workspace/guides.cljs | 6 +- .../app/main/data/workspace/interactions.cljs | 56 ++-- .../src/app/main/data/workspace/layers.cljs | 4 +- .../app/main/data/workspace/libraries.cljs | 8 +- .../src/app/main/data/workspace/media.cljs | 2 +- .../app/main/data/workspace/modifiers.cljs | 4 +- .../main/data/workspace/notifications.cljs | 49 ++-- .../app/main/data/workspace/path/changes.cljs | 2 +- .../app/main/data/workspace/path/drawing.cljs | 4 +- .../app/main/data/workspace/path/edition.cljs | 11 +- .../data/workspace/path/shapes_to_path.cljs | 2 +- .../app/main/data/workspace/path/tools.cljs | 5 +- .../app/main/data/workspace/persistence.cljs | 263 ----------------- .../app/main/data/workspace/selection.cljs | 2 +- .../app/main/data/workspace/shape_layout.cljs | 41 ++- .../src/app/main/data/workspace/shapes.cljs | 80 +++++- .../app/main/data/workspace/shortcuts.cljs | 5 +- .../app/main/data/workspace/svg_upload.cljs | 2 +- .../src/app/main/data/workspace/texts.cljs | 21 +- .../app/main/data/workspace/thumbnails.cljs | 118 ++++---- .../app/main/data/workspace/transforms.cljs | 2 +- .../src/app/main/data/workspace/undo.cljs | 136 ++++++++- frontend/src/app/main/refs.cljs | 3 + frontend/src/app/main/store.cljs | 4 +- .../src/app/main/ui/components/forms.cljs | 4 +- frontend/src/app/main/ui/workspace.cljs | 7 +- .../src/app/main/ui/workspace/main_menu.cljs | 6 +- .../app/main/ui/workspace/right_header.cljs | 21 +- .../main/ui/workspace/sidebar/history.cljs | 4 +- .../workspace/sidebar/options/menus/blur.cljs | 4 +- .../sidebar/options/menus/constraints.cljs | 10 +- .../sidebar/options/menus/exports.cljs | 34 +-- .../sidebar/options/menus/layer.cljs | 4 +- .../sidebar/options/menus/measures.cljs | 42 +-- .../sidebar/options/menus/shadow.cljs | 16 +- .../sidebar/options/menus/svg_attrs.cljs | 6 +- .../workspace/sidebar/options/menus/text.cljs | 6 +- frontend/src/app/plugins/api.cljs | 2 +- frontend/src/app/plugins/shape.cljs | 55 ++-- frontend/src/app/util/object.cljs | 68 +++-- frontend/src/debug.cljs | 6 +- .../frontend_tests/basic_shapes_test.cljs | 15 +- .../test/frontend_tests/helpers/events.cljs | 2 +- .../frontend_tests/helpers_shapes_test.cljs | 18 -- 62 files changed, 1030 insertions(+), 1070 deletions(-) create mode 100644 frontend/src/app/main/data/changes.cljs create mode 100644 frontend/src/app/main/data/persistence.cljs delete mode 100644 frontend/src/app/main/data/workspace/changes.cljs delete mode 100644 frontend/src/app/main/data/workspace/persistence.cljs diff --git a/.clj-kondo/hooks/export.clj b/.clj-kondo/hooks/export.clj index a209cf018f..f4913873cb 100644 --- a/.clj-kondo/hooks/export.clj +++ b/.clj-kondo/hooks/export.clj @@ -12,6 +12,7 @@ (def registry (atom {})) + (defn potok-reify [{:keys [:node :filename] :as params}] (let [[rnode rtype & other] (:children node) diff --git a/CHANGES.md b/CHANGES.md index ecd4aaa840..183eb324f7 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -9,9 +9,11 @@ ### :heart: Community contributions (Thank you!) ### :sparkles: New features -- Improve auth process [Taiga #Change Auth Process](https://tree.taiga.io/project/penpot/us/7094) -- Add locking degrees increment (hold shift) on path edition [Taiga #7761](https://tree.taiga.io/project/penpot/issue/7761) -- Allow library colors as recent colors [Taiga issue #7640](https://tree.taiga.io/project/penpot/issue/7640) + +- Improve auth process [Taiga #7094](https://tree.taiga.io/project/penpot/us/7094) +- Add locking degrees increment (hold shift) on path edition [Taiga Issue #7761](https://tree.taiga.io/project/penpot/issue/7761) +- Persistence & Concurrent Edition Enhancements [Taiga #5657](https://tree.taiga.io/project/penpot/us/5657) +- Allow library colors as recent colors [Taiga Issue #7640](https://tree.taiga.io/project/penpot/issue/7640) ### :bug: Bugs fixed diff --git a/backend/src/app/rpc/commands/files_update.clj b/backend/src/app/rpc/commands/files_update.clj index cf9e9b590a..c9bf2aea9d 100644 --- a/backend/src/app/rpc/commands/files_update.clj +++ b/backend/src/app/rpc/commands/files_update.clj @@ -262,8 +262,8 @@ ;; Send asynchronous notifications (send-notifications! cfg params) - ;; Retrieve and return lagged data - (get-lagged-changes conn params)))) + {:revn (:revn file) + :lagged (get-lagged-changes conn params)}))) (defn- soft-validate-file-schema! [file] diff --git a/frontend/src/app/main/data/changes.cljs b/frontend/src/app/main/data/changes.cljs new file mode 100644 index 0000000000..4da8d30da9 --- /dev/null +++ b/frontend/src/app/main/data/changes.cljs @@ -0,0 +1,166 @@ +;; This Source Code Form is subject to the terms of the Mozilla Public +;; License, v. 2.0. If a copy of the MPL was not distributed with this +;; file, You can obtain one at http://mozilla.org/MPL/2.0/. +;; +;; Copyright (c) KALEIDOS INC + +(ns app.main.data.changes + (:require + [app.common.data :as d] + [app.common.data.macros :as dm] + [app.common.files.changes :as cpc] + [app.common.logging :as log] + [app.common.types.shape-tree :as ctst] + [app.common.uuid :as uuid] + [app.main.features :as features] + [app.main.worker :as uw] + [app.util.time :as dt] + [beicon.v2.core :as rx] + [potok.v2.core :as ptk])) + +;; Change this to :info :debug or :trace to debug this module +(log/set-level! :debug) + +(def page-change? + #{:add-page :mod-page :del-page :mov-page}) +(def update-layout-attr? + #{:hidden}) + +(def commit? + (ptk/type? ::commit)) + +(defn update-indexes + "Given a commit, send the changes to the worker for updating the + indexes." + [{:keys [changes] :as commit}] + (ptk/reify ::update-indexes + ptk/WatchEvent + (watch [_ _ _] + (let [changes (->> changes + (map (fn [{:keys [id type page] :as change}] + (cond-> change + (and (page-change? type) (nil? (:page-id change))) + (assoc :page-id (or id (:id page)))))) + (filter :page-id) + (group-by :page-id))] + + (->> (rx/from changes) + (rx/merge-map (fn [[page-id changes]] + (log/debug :hint "update-indexes" :page-id page-id :changes (count changes)) + (uw/ask! {:cmd :update-page-index + :page-id page-id + :changes changes}))) + (rx/ignore)))))) + +(defn- get-pending-commits + [{:keys [persistence]}] + (->> (:queue persistence) + (map (d/getf (:index persistence))) + (not-empty))) + +(defn commit + "Create a commit event instance" + [{:keys [commit-id redo-changes undo-changes origin save-undo? features + file-id file-revn undo-group tags stack-undo? source]}] + + (dm/assert! + "expect valid vector of changes" + (and (cpc/check-changes! redo-changes) + (cpc/check-changes! undo-changes))) + + (let [commit-id (or commit-id (uuid/next)) + commit {:id commit-id + :created-at (dt/now) + :source (d/nilv source :local) + :origin (ptk/type origin) + :features features + :file-id file-id + :file-revn file-revn + :changes redo-changes + :redo-changes redo-changes + :undo-changes undo-changes + :save-undo? save-undo? + :undo-group undo-group + :tags tags + :stack-undo? stack-undo?}] + + (ptk/reify ::commit + cljs.core/IDeref + (-deref [_] commit) + + ptk/UpdateEvent + (update [_ state] + (let [current-file-id (get state :current-file-id) + path (if (= file-id current-file-id) + [:workspace-data] + [:workspace-libraries file-id :data]) + + not-local? (not= source :local) + pending (if not-local? + (get-pending-commits state) + nil) + + undo-changes (if pending + (->> pending + (map :undo-changes) + (reverse) + (mapcat identity) + (vec)) + nil) + + redo-changes (if pending + (into redo-changes + (comp + (map :redo-changes) + (mapcat identity)) + pending) + redo-changes)] + + (d/update-in-when state path + (fn [file] + (let [file (cpc/process-changes file undo-changes false) + file (cpc/process-changes file redo-changes false) + pids (into #{} (map :page-id) redo-changes)] + (reduce #(ctst/update-object-indices %1 %2) file pids))))))))) + +(defn- resolve-file-revn + [state file-id] + (let [file (:workspace-file state)] + (if (= (:id file) file-id) + (:revn file) + (dm/get-in state [:workspace-libraries file-id :revn])))) + +(defn commit-changes + "Schedules a list of changes to execute now, and add the corresponding undo changes to + the undo stack. + + Options: + - save-undo?: if set to false, do not add undo changes. + - undo-group: if some consecutive changes (or even transactions) share the same + undo-group, they will be undone or redone in a single step + " + [{:keys [redo-changes undo-changes save-undo? undo-group tags stack-undo? file-id] + :or {save-undo? true + stack-undo? false + undo-group (uuid/next) + tags #{}} + :as params}] + (ptk/reify ::commit-changes + ptk/WatchEvent + (watch [_ state _] + (let [file-id (or file-id (:current-file-id state)) + uchg (vec undo-changes) + rchg (vec redo-changes) + features (features/get-team-enabled-features state)] + + (rx/of (-> params + (assoc :undo-group undo-group) + (assoc :features features) + (assoc :tags tags) + (assoc :stack-undo? stack-undo?) + (assoc :save-undo? save-undo?) + (assoc :file-id file-id) + (assoc :file-revn (resolve-file-revn state file-id)) + (assoc :undo-changes uchg) + (assoc :redo-changes rchg) + (commit))))))) diff --git a/frontend/src/app/main/data/exports.cljs b/frontend/src/app/main/data/exports.cljs index 9894691a24..d77a4a0217 100644 --- a/frontend/src/app/main/data/exports.cljs +++ b/frontend/src/app/main/data/exports.cljs @@ -8,7 +8,7 @@ (:require [app.common.uuid :as uuid] [app.main.data.modal :as modal] - [app.main.data.workspace.persistence :as dwp] + [app.main.data.persistence :as dwp] [app.main.data.workspace.state-helpers :as wsh] [app.main.refs :as refs] [app.main.repo :as rp] diff --git a/frontend/src/app/main/data/persistence.cljs b/frontend/src/app/main/data/persistence.cljs new file mode 100644 index 0000000000..8fbcc372ad --- /dev/null +++ b/frontend/src/app/main/data/persistence.cljs @@ -0,0 +1,230 @@ +;; This Source Code Form is subject to the terms of the Mozilla Public +;; License, v. 2.0. If a copy of the MPL was not distributed with this +;; file, You can obtain one at http://mozilla.org/MPL/2.0/. +;; +;; Copyright (c) KALEIDOS INC + +(ns app.main.data.persistence + (:require + [app.common.data :as d] + [app.common.data.macros :as dm] + [app.common.logging :as log] + [app.common.uuid :as uuid] + [app.main.data.changes :as dch] + [app.main.repo :as rp] + [app.util.router :as rt] + [beicon.v2.core :as rx] + [potok.v2.core :as ptk])) + +(declare ^:private run-persistence-task) + +(log/set-level! :warn) + +(def running (atom false)) +(def revn-data (atom {})) +(def queue-conj (fnil conj #queue [])) + +(defn- update-status + [status] + (ptk/reify ::update-status + ptk/UpdateEvent + (update [_ state] + (update state :persistence (fn [pstate] + (log/trc :hint "update-status" + :from (:status pstate) + :to status) + (let [status (if (and (= status :pending) + (= (:status pstate) :saving)) + (:status pstate) + status)] + + (-> (assoc pstate :status status) + (cond-> (= status :error) + (dissoc :run-id)) + (cond-> (= status :saved) + (dissoc :run-id))))))))) + +(defn- update-file-revn + [file-id revn] + (ptk/reify ::update-file-revn + ptk/UpdateEvent + (update [_ state] + (log/dbg :hint "update-file-revn" :file-id (dm/str file-id) :revn revn) + (if-let [current-file-id (:current-file-id state)] + (if (= file-id current-file-id) + (update-in state [:workspace-file :revn] max revn) + (d/update-in-when state [:workspace-libraries file-id :revn] max revn)) + state)) + + ptk/EffectEvent + (effect [_ _ _] + (swap! revn-data update file-id (fnil max 0) revn)))) + +(defn- discard-commit + [commit-id] + (ptk/reify ::discard-commit + ptk/UpdateEvent + (update [_ state] + (update state :persistence (fn [pstate] + (-> pstate + (update :queue (fn [queue] + (if (= commit-id (peek queue)) + (pop queue) + (throw (ex-info "invalid state" {}))))) + (update :index dissoc commit-id))))))) + +(defn- append-commit + "Event used internally to append the current change to the + persistence queue." + [{:keys [id] :as commit}] + (let [run-id (uuid/next)] + (ptk/reify ::append-commit + ptk/UpdateEvent + (update [_ state] + (log/trc :hint "append-commit" :method "update" :commit-id (dm/str id)) + (update state :persistence + (fn [pstate] + (-> pstate + (update :run-id d/nilv run-id) + (update :queue queue-conj id) + (update :index assoc id commit))))) + + ptk/WatchEvent + (watch [_ state _] + (let [pstate (:persistence state)] + (when (= run-id (:run-id pstate)) + (rx/of (run-persistence-task) + (update-status :saving)))))))) + +(defn- persist-commit + [commit-id] + (ptk/reify ::persist-commit + ptk/WatchEvent + (watch [_ state _] + (log/dbg :hint "persist-commit" :commit-id (dm/str commit-id)) + (when-let [{:keys [file-id file-revn changes features] :as commit} (dm/get-in state [:persistence :index commit-id])] + (let [sid (:session-id state) + revn (max file-revn (get @revn-data file-id 0)) + params {:id file-id + :revn revn + :session-id sid + :origin (:origin commit) + :created-at (:created-at commit) + :commit-id commit-id + :changes (vec changes) + :features features}] + + ;; FIXME: handle lagged here !!!! + (->> (rp/cmd! :update-file params) + (rx/mapcat (fn [{:keys [revn lagged] :as response}] + (log/debug :hint "changes persisted" :commit-id (dm/str commit-id) :lagged (count lagged)) + (rx/of (ptk/data-event ::commit-persisted commit) + (update-file-revn file-id revn)))) + + (rx/catch (fn [cause] + (rx/concat + (if (= :authentication (:type cause)) + (rx/empty) + (rx/of (rt/assign-exception cause) + (ptk/data-event ::error cause) + (update-status :error))) + (rx/throw cause)))))))))) + + +(defn- run-persistence-task + [] + (ptk/reify ::run-persistence-task + ptk/WatchEvent + (watch [_ state stream] + (let [queue (-> state :persistence :queue)] + (if-let [commit-id (peek queue)] + (let [stoper-s (rx/merge + (rx/filter (ptk/type? ::run-persistence-task) stream) + (rx/filter (ptk/type? ::error) stream))] + + (log/dbg :hint "run-persistence-task" :commit-id (dm/str commit-id)) + (->> (rx/merge + (rx/of (persist-commit commit-id)) + (->> stream + (rx/filter (ptk/type? ::commit-persisted)) + (rx/map deref) + (rx/filter #(= commit-id (:id %))) + (rx/take 1) + (rx/mapcat (fn [_] + (rx/of (discard-commit commit-id) + (run-persistence-task)))))) + (rx/take-until stoper-s))) + (rx/of (update-status :saved))))))) + +(def ^:private xf-mapcat-undo + (mapcat :undo-changes)) + +(def ^:private xf-mapcat-redo + (mapcat :redo-changes)) + +(defn- merge-commit + [buffer] + (->> (rx/from (group-by :file-id buffer)) + (rx/map (fn [[_ [item :as commits]]] + (let [uchg (into [] xf-mapcat-undo commits) + rchg (into [] xf-mapcat-redo commits)] + (-> item + (assoc :undo-changes uchg) + (assoc :redo-changes rchg) + (assoc :changes rchg))))))) + + +(defn initialize-persistence + [] + (ptk/reify ::initialize-persistence + ptk/WatchEvent + (watch [_ _ stream] + (log/debug :hint "initialize persistence") + (let [stoper-s (rx/filter (ptk/type? ::initialize-persistence) stream) + + commits-s + (->> stream + (rx/filter dch/commit?) + (rx/map deref) + (rx/filter #(= :local (:source %))) + (rx/filter (complement empty?)) + (rx/share)) + + notifier-s + (rx/merge + (->> commits-s + (rx/debounce 3000) + (rx/tap #(log/trc :hint "persistence beat"))) + (->> stream + (rx/filter #(= % ::force-persist))))] + + (rx/merge + (->> commits-s + (rx/debounce 200) + (rx/map (fn [_] + (update-status :pending))) + (rx/take-until stoper-s)) + + ;; Here we watch for local commits, buffer them in a small + ;; chunks (very near in time commits) and append them to the + ;; persistence queue + (->> commits-s + (rx/buffer-until notifier-s) + (rx/mapcat merge-commit) + (rx/mapcat (fn [commit] + (rx/of (append-commit commit) + (dch/update-indexes commit)))) + (rx/take-until (rx/delay 100 stoper-s)) + (rx/finalize (fn [] + (log/debug :hint "finalize persistence: changes watcher")))) + + ;; Here we track all incoming remote commits for maintain + ;; updated the local state with the file revn + (->> stream + (rx/filter dch/commit?) + (rx/map deref) + (rx/filter #(= :remote (:source %))) + (rx/mapcat (fn [{:keys [file-id file-revn] :as commit}] + (rx/of (update-file-revn file-id file-revn) + (dch/update-indexes commit)))) + (rx/take-until stoper-s))))))) diff --git a/frontend/src/app/main/data/workspace.cljs b/frontend/src/app/main/data/workspace.cljs index ea52674f52..677511018e 100644 --- a/frontend/src/app/main/data/workspace.cljs +++ b/frontend/src/app/main/data/workspace.cljs @@ -19,6 +19,7 @@ [app.common.geom.rect :as grc] [app.common.geom.shapes :as gsh] [app.common.geom.shapes.grid-layout :as gslg] + [app.common.logging :as log] [app.common.logic.libraries :as cll] [app.common.logic.shapes :as cls] [app.common.schema :as sm] @@ -34,14 +35,15 @@ [app.common.types.typography :as ctt] [app.common.uuid :as uuid] [app.config :as cf] + [app.main.data.changes :as dch] [app.main.data.comments :as dcm] [app.main.data.events :as ev] [app.main.data.fonts :as df] [app.main.data.messages :as msg] [app.main.data.modal :as modal] + [app.main.data.persistence :as dps] [app.main.data.users :as du] [app.main.data.workspace.bool :as dwb] - [app.main.data.workspace.changes :as dch] [app.main.data.workspace.collapse :as dwco] [app.main.data.workspace.drawing :as dwd] [app.main.data.workspace.edition :as dwe] @@ -59,7 +61,6 @@ [app.main.data.workspace.notifications :as dwn] [app.main.data.workspace.path :as dwdp] [app.main.data.workspace.path.shapes-to-path :as dwps] - [app.main.data.workspace.persistence :as dwp] [app.main.data.workspace.selection :as dws] [app.main.data.workspace.shape-layout :as dwsl] [app.main.data.workspace.shapes :as dwsh] @@ -87,6 +88,7 @@ [potok.v2.core :as ptk])) (def default-workspace-local {:zoom 1}) +(log/set-level! :debug) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Workspace Initialization @@ -341,15 +343,32 @@ :workspace-presence {})) ptk/WatchEvent - (watch [_ _ _] - (rx/of msg/hide - (dcm/retrieve-comment-threads file-id) - (dwp/initialize-file-persistence file-id) - (fetch-bundle project-id file-id))) + (watch [_ _ stream] + (log/debug :hint "initialize-file" :file-id file-id) + (let [stoper-s (rx/filter (ptk/type? ::finalize-file) stream)] + (rx/merge + (rx/of msg/hide + (features/initialize) + (dcm/retrieve-comment-threads file-id) + (fetch-bundle project-id file-id)) + + (->> stream + (rx/filter dch/commit?) + (rx/map deref) + (rx/mapcat (fn [{:keys [save-undo? undo-changes redo-changes undo-group tags stack-undo?]}] + (if (and save-undo? (seq undo-changes)) + (let [entry {:undo-changes undo-changes + :redo-changes redo-changes + :undo-group undo-group + :tags tags}] + (rx/of (dwu/append-undo entry stack-undo?))) + (rx/empty)))) + + (rx/take-until stoper-s))))) ptk/EffectEvent (effect [_ _ _] - (let [name (str "workspace-" file-id)] + (let [name (dm/str "workspace-" file-id)] (unchecked-set ug/global "name" name))))) (defn finalize-file @@ -671,7 +690,7 @@ (ptk/reify ::update-shape ptk/WatchEvent (watch [_ _ _] - (rx/of (dch/update-shapes [id] #(merge % attrs)))))) + (rx/of (dwsh/update-shapes [id] #(merge % attrs)))))) (defn start-rename-shape "Start shape renaming process" @@ -982,7 +1001,7 @@ (assoc shape :proportion-lock false) (-> (assoc shape :proportion-lock true) (gpp/assign-proportions))))] - (rx/of (dch/update-shapes [id] assign-proportions)))))) + (rx/of (dwsh/update-shapes [id] assign-proportions)))))) (defn toggle-proportion-lock [] @@ -996,8 +1015,8 @@ multi (attrs/get-attrs-multi selected-obj [:proportion-lock]) multi? (= :multiple (:proportion-lock multi))] (if multi? - (rx/of (dch/update-shapes selected #(assoc % :proportion-lock true))) - (rx/of (dch/update-shapes selected #(update % :proportion-lock not)))))))) + (rx/of (dwsh/update-shapes selected #(assoc % :proportion-lock true))) + (rx/of (dwsh/update-shapes selected #(update % :proportion-lock not)))))))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Navigation @@ -1258,7 +1277,7 @@ (assoc :section section) (some? frame-id) (assoc :frame-id frame-id))] - (rx/of ::dwp/force-persist + (rx/of ::dps/force-persist (rt/nav-new-window* {:rname :viewer :path-params pparams :query-params qparams @@ -1271,7 +1290,7 @@ ptk/WatchEvent (watch [_ state _] (when-let [team-id (or team-id (:current-team-id state))] - (rx/of ::dwp/force-persist + (rx/of ::dps/force-persist (rt/nav :dashboard-projects {:team-id team-id}))))))) (defn go-to-dashboard-fonts @@ -1280,7 +1299,7 @@ ptk/WatchEvent (watch [_ state _] (let [team-id (:current-team-id state)] - (rx/of ::dwp/force-persist + (rx/of ::dps/force-persist (rt/nav :dashboard-fonts {:team-id team-id})))))) diff --git a/frontend/src/app/main/data/workspace/bool.cljs b/frontend/src/app/main/data/workspace/bool.cljs index ac9e06dee4..9662e259e2 100644 --- a/frontend/src/app/main/data/workspace/bool.cljs +++ b/frontend/src/app/main/data/workspace/bool.cljs @@ -15,8 +15,9 @@ [app.common.types.shape :as cts] [app.common.types.shape.layout :as ctl] [app.common.uuid :as uuid] - [app.main.data.workspace.changes :as dch] + [app.main.data.changes :as dch] [app.main.data.workspace.selection :as dws] + [app.main.data.workspace.shapes :as dwsh] [app.main.data.workspace.state-helpers :as wsh] [beicon.v2.core :as rx] [cuerdas.core :as str] @@ -117,7 +118,7 @@ change-to-bool (fn [shape] (group->bool shape bool-type objects))] (when-not (ctn/has-any-copy-parent? objects (get objects shape-id)) - (rx/of (dch/update-shapes [shape-id] change-to-bool {:reg-objects? true}))))))) + (rx/of (dwsh/update-shapes [shape-id] change-to-bool {:reg-objects? true}))))))) (defn bool-to-group [shape-id] @@ -128,7 +129,7 @@ change-to-group (fn [shape] (bool->group shape objects))] (when-not (ctn/has-any-copy-parent? objects (get objects shape-id)) - (rx/of (dch/update-shapes [shape-id] change-to-group {:reg-objects? true}))))))) + (rx/of (dwsh/update-shapes [shape-id] change-to-group {:reg-objects? true}))))))) (defn change-bool-type @@ -140,4 +141,4 @@ change-type (fn [shape] (assoc shape :bool-type bool-type))] (when-not (ctn/has-any-copy-parent? objects (get objects shape-id)) - (rx/of (dch/update-shapes [shape-id] change-type {:reg-objects? true}))))))) + (rx/of (dwsh/update-shapes [shape-id] change-type {:reg-objects? true}))))))) diff --git a/frontend/src/app/main/data/workspace/changes.cljs b/frontend/src/app/main/data/workspace/changes.cljs deleted file mode 100644 index 56fbb2411f..0000000000 --- a/frontend/src/app/main/data/workspace/changes.cljs +++ /dev/null @@ -1,264 +0,0 @@ -;; This Source Code Form is subject to the terms of the Mozilla Public -;; License, v. 2.0. If a copy of the MPL was not distributed with this -;; file, You can obtain one at http://mozilla.org/MPL/2.0/. -;; -;; Copyright (c) KALEIDOS INC - -(ns app.main.data.workspace.changes - (:require - [app.common.data :as d] - [app.common.data.macros :as dm] - [app.common.exceptions :as ex] - [app.common.files.changes :as cpc] - [app.common.files.changes-builder :as pcb] - [app.common.files.helpers :as cph] - [app.common.logging :as log] - [app.common.logic.shapes :as cls] - [app.common.schema :as sm] - [app.common.types.shape-tree :as ctst] - [app.common.uuid :as uuid] - [app.main.data.workspace.state-helpers :as wsh] - [app.main.data.workspace.undo :as dwu] - [app.main.store :as st] - [app.main.worker :as uw] - [beicon.v2.core :as rx] - [potok.v2.core :as ptk])) - -;; Change this to :info :debug or :trace to debug this module -(log/set-level! :warn) - -(defonce page-change? #{:add-page :mod-page :del-page :mov-page}) -(defonce update-layout-attr? #{:hidden}) - -(declare commit-changes) - -(defn- add-undo-group - [changes state] - (let [undo (:workspace-undo state) - items (:items undo) - index (or (:index undo) (dec (count items))) - prev-item (when-not (or (empty? items) (= index -1)) - (get items index)) - undo-group (:undo-group prev-item) - add-undo-group? (and - (not (nil? undo-group)) - (= (get-in changes [:redo-changes 0 :type]) :mod-obj) - (= (get-in prev-item [:redo-changes 0 :type]) :add-obj) - (contains? (:tags prev-item) :alt-duplication))] ;; This is a copy-and-move with mouse+alt - - (cond-> changes add-undo-group? (assoc :undo-group undo-group)))) - -(def commit-changes? (ptk/type? ::commit-changes)) - -(defn update-shapes - ([ids update-fn] (update-shapes ids update-fn nil)) - ([ids update-fn {:keys [reg-objects? save-undo? stack-undo? attrs ignore-tree page-id ignore-remote? ignore-touched undo-group with-objects?] - :or {reg-objects? false save-undo? true stack-undo? false ignore-remote? false ignore-touched false with-objects? false}}] - - (dm/assert! - "expected a valid coll of uuid's" - (sm/check-coll-of-uuid! ids)) - - (dm/assert! (fn? update-fn)) - - (ptk/reify ::update-shapes - ptk/WatchEvent - (watch [it state _] - (let [page-id (or page-id (:current-page-id state)) - objects (wsh/lookup-page-objects state page-id) - ids (into [] (filter some?) ids) - - update-layout-ids - (->> ids - (map (d/getf objects)) - (filter #(some update-layout-attr? (pcb/changed-attrs % objects update-fn {:attrs attrs :with-objects? with-objects?}))) - (map :id)) - - changes (-> (pcb/empty-changes it page-id) - (pcb/set-save-undo? save-undo?) - (pcb/set-stack-undo? stack-undo?) - (cls/generate-update-shapes ids - update-fn - objects - {:attrs attrs - :ignore-tree ignore-tree - :ignore-touched ignore-touched - :with-objects? with-objects?}) - (cond-> undo-group - (pcb/set-undo-group undo-group))) - - changes (add-undo-group changes state)] - (rx/concat - (if (seq (:redo-changes changes)) - (let [changes (cond-> changes reg-objects? (pcb/resize-parents ids)) - changes (cond-> changes ignore-remote? (pcb/ignore-remote))] - (rx/of (commit-changes changes))) - (rx/empty)) - - ;; Update layouts for properties marked - (if (d/not-empty? update-layout-ids) - (rx/of (ptk/data-event :layout/update {:ids update-layout-ids})) - (rx/empty)))))))) - -(defn send-update-indices - [] - (ptk/reify ::send-update-indices - ptk/WatchEvent - (watch [_ _ _] - (->> (rx/of - (fn [state] - (-> state - (dissoc ::update-indices-debounce) - (dissoc ::update-changes)))) - (rx/observe-on :async))) - - ptk/EffectEvent - (effect [_ state _] - (doseq [[page-id changes] (::update-changes state)] - (uw/ask! {:cmd :update-page-index - :page-id page-id - :changes changes}))))) - -;; Update indices will debounce operations so we don't have to update -;; the index several times (which is an expensive operation) -(defn update-indices - [page-id changes] - - (let [start (uuid/next)] - (ptk/reify ::update-indices - ptk/UpdateEvent - (update [_ state] - (if (nil? (::update-indices-debounce state)) - (assoc state ::update-indices-debounce start) - (update-in state [::update-changes page-id] (fnil d/concat-vec []) changes))) - - ptk/WatchEvent - (watch [_ state stream] - (if (= (::update-indices-debounce state) start) - (let [stopper (->> stream (rx/filter (ptk/type? :app.main.data.workspace/finalize)))] - (rx/merge - (->> stream - (rx/filter (ptk/type? ::update-indices)) - (rx/debounce 50) - (rx/take 1) - (rx/map #(send-update-indices)) - (rx/take-until stopper)) - (rx/of (update-indices page-id changes)))) - (rx/empty)))))) - -(defn changed-frames - "Extracts the frame-ids changed in the given changes" - [changes objects] - - (let [change->ids - (fn [change] - (case (:type change) - :add-obj - [(:parent-id change)] - - (:mod-obj :del-obj) - [(:id change)] - - :mov-objects - (d/concat-vec (:shapes change) [(:parent-id change)]) - - []))] - (into #{} - (comp (mapcat change->ids) - (keep #(cph/get-shape-id-root-frame objects %)) - (remove #(= uuid/zero %))) - changes))) - -(defn commit-changes - "Schedules a list of changes to execute now, and add the corresponding undo changes to - the undo stack. - - Options: - - save-undo?: if set to false, do not add undo changes. - - undo-group: if some consecutive changes (or even transactions) share the same - undo-group, they will be undone or redone in a single step - " - [{:keys [redo-changes undo-changes - origin save-undo? file-id undo-group tags stack-undo?] - :or {save-undo? true stack-undo? false tags #{} undo-group (uuid/next)}}] - (let [error (volatile! nil) - page-id (:current-page-id @st/state) - frames (changed-frames redo-changes (wsh/lookup-page-objects @st/state)) - undo-changes (vec undo-changes) - redo-changes (vec redo-changes)] - (ptk/reify ::commit-changes - cljs.core/IDeref - (-deref [_] - {:file-id file-id - :hint-events @st/last-events - :hint-origin (ptk/type origin) - :changes redo-changes - :page-id page-id - :frames frames - :save-undo? save-undo? - :undo-group undo-group - :tags tags - :stack-undo? stack-undo?}) - - ptk/UpdateEvent - (update [_ state] - (log/info :msg "commit-changes" - :js/undo-group (str undo-group) - :js/file-id (str (or file-id "nil")) - :js/redo-changes redo-changes - :js/undo-changes undo-changes) - (let [current-file-id (get state :current-file-id) - file-id (or file-id current-file-id) - path (if (= file-id current-file-id) - [:workspace-data] - [:workspace-libraries file-id :data])] - - (try - (dm/assert! - "expect valid vector of changes" - (and (cpc/check-changes! redo-changes) - (cpc/check-changes! undo-changes))) - - (update-in state path (fn [file] - (-> file - (cpc/process-changes redo-changes false) - (ctst/update-object-indices page-id)))) - - (catch :default err - (when-let [data (ex-data err)] - (js/console.log (ex/explain data))) - - (when (ex/error? err) - (js/console.log (.-stack ^js err))) - (vreset! error err) - state)))) - - ptk/WatchEvent - (watch [_ _ _] - (when-not @error - (let [;; adds page-id to page changes (that have the `id` field instead) - add-page-id - (fn [{:keys [id type page] :as change}] - (cond-> change - (and (page-change? type) (nil? (:page-id change))) - (assoc :page-id (or id (:id page))))) - - changes-by-pages - (->> redo-changes - (map add-page-id) - (remove #(nil? (:page-id %))) - (group-by :page-id)) - - process-page-changes - (fn [[page-id _changes]] - (update-indices page-id redo-changes))] - - (rx/concat - (rx/from (map process-page-changes changes-by-pages)) - - (when (and save-undo? (seq undo-changes)) - (let [entry {:undo-changes undo-changes - :redo-changes redo-changes - :undo-group undo-group - :tags tags}] - (rx/of (dwu/append-undo entry stack-undo?))))))))))) diff --git a/frontend/src/app/main/data/workspace/colors.cljs b/frontend/src/app/main/data/workspace/colors.cljs index 5e9028424a..70a19585f9 100644 --- a/frontend/src/app/main/data/workspace/colors.cljs +++ b/frontend/src/app/main/data/workspace/colors.cljs @@ -15,9 +15,9 @@ [app.main.broadcast :as mbc] [app.main.data.events :as ev] [app.main.data.modal :as md] - [app.main.data.workspace.changes :as dch] [app.main.data.workspace.layout :as layout] [app.main.data.workspace.libraries :as dwl] + [app.main.data.workspace.shapes :as dwsh] [app.main.data.workspace.state-helpers :as wsh] [app.main.data.workspace.texts :as dwt] [app.main.data.workspace.undo :as dwu] @@ -116,7 +116,7 @@ (rx/concat (rx/of (dwu/start-undo-transaction undo-id)) (rx/from (map #(dwt/update-text-with-function % transform-attrs) text-ids)) - (rx/of (dch/update-shapes shape-ids transform-attrs)) + (rx/of (dwsh/update-shapes shape-ids transform-attrs)) (rx/of (dwu/commit-undo-transaction undo-id))))) (defn swap-attrs [shape attr index new-index] @@ -140,7 +140,7 @@ (rx/concat (rx/from (map #(dwt/update-text-with-function % transform-attrs) text-ids)) - (rx/of (dch/update-shapes shape-ids transform-attrs))))))) + (rx/of (dwsh/update-shapes shape-ids transform-attrs))))))) (defn change-fill [ids color position] @@ -203,10 +203,10 @@ is-text? #(= :text (:type (get objects %))) shape-ids (filter (complement is-text?) ids) attrs {:hide-fill-on-export hide-fill-on-export}] - (rx/of (dch/update-shapes shape-ids (fn [shape] - (if (= (:type shape) :frame) - (d/merge shape attrs) - shape)))))))) + (rx/of (dwsh/update-shapes shape-ids (fn [shape] + (if (= (:type shape) :frame) + (d/merge shape attrs) + shape)))))))) (defn change-stroke [ids attrs index] (ptk/reify ::change-stroke @@ -236,7 +236,7 @@ (dissoc :image) (dissoc :gradient))] - (rx/of (dch/update-shapes + (rx/of (dwsh/update-shapes ids (fn [shape] (let [new-attrs (merge (get-in shape [:strokes index]) attrs) @@ -264,7 +264,7 @@ (ptk/reify ::change-shadow ptk/WatchEvent (watch [_ _ _] - (rx/of (dch/update-shapes + (rx/of (dwsh/update-shapes ids (fn [shape] (let [;; If we try to set a gradient to a shadow (for @@ -288,7 +288,7 @@ (watch [_ _ _] (let [add-shadow (fn [shape] (update shape :shadow #(into [shadow] %)))] - (rx/of (dch/update-shapes ids add-shadow)))))) + (rx/of (dwsh/update-shapes ids add-shadow)))))) (defn add-stroke [ids stroke] @@ -296,7 +296,7 @@ ptk/WatchEvent (watch [_ _ _] (let [add-stroke (fn [shape] (update shape :strokes #(into [stroke] %)))] - (rx/of (dch/update-shapes ids add-stroke)))))) + (rx/of (dwsh/update-shapes ids add-stroke)))))) (defn remove-stroke [ids position] @@ -309,7 +309,7 @@ (mapv second))) (remove-stroke [shape] (update shape :strokes remove-fill-by-index position))] - (rx/of (dch/update-shapes ids remove-stroke)))))) + (rx/of (dwsh/update-shapes ids remove-stroke)))))) (defn remove-all-strokes [ids] @@ -317,14 +317,14 @@ ptk/WatchEvent (watch [_ _ _] (let [remove-all #(assoc % :strokes [])] - (rx/of (dch/update-shapes ids remove-all)))))) + (rx/of (dwsh/update-shapes ids remove-all)))))) (defn reorder-shadows [ids index new-index] (ptk/reify ::reorder-shadow ptk/WatchEvent (watch [_ _ _] - (rx/of (dch/update-shapes + (rx/of (dwsh/update-shapes ids #(swap-attrs % :shadow index new-index)))))) @@ -333,7 +333,7 @@ (ptk/reify ::reorder-strokes ptk/WatchEvent (watch [_ _ _] - (rx/of (dch/update-shapes + (rx/of (dwsh/update-shapes ids #(swap-attrs % :strokes index new-index)))))) diff --git a/frontend/src/app/main/data/workspace/comments.cljs b/frontend/src/app/main/data/workspace/comments.cljs index 4718b252cb..69e2a77eb1 100644 --- a/frontend/src/app/main/data/workspace/comments.cljs +++ b/frontend/src/app/main/data/workspace/comments.cljs @@ -12,9 +12,9 @@ [app.common.geom.shapes :as gsh] [app.common.schema :as sm] [app.common.types.shape-tree :as ctst] + [app.main.data.changes :as dch] [app.main.data.comments :as dcm] [app.main.data.events :as ev] - [app.main.data.workspace.changes :as dch] [app.main.data.workspace.common :as dwco] [app.main.data.workspace.drawing :as dwd] [app.main.data.workspace.state-helpers :as wsh] diff --git a/frontend/src/app/main/data/workspace/common.cljs b/frontend/src/app/main/data/workspace/common.cljs index d140bdb6be..5879951058 100644 --- a/frontend/src/app/main/data/workspace/common.cljs +++ b/frontend/src/app/main/data/workspace/common.cljs @@ -6,14 +6,7 @@ (ns app.main.data.workspace.common (:require - [app.common.data.macros :as dm] [app.common.logging :as log] - [app.common.types.shape.layout :as ctl] - [app.main.data.workspace.changes :as dch] - [app.main.data.workspace.state-helpers :as wsh] - [app.main.data.workspace.undo :as dwu] - [app.util.router :as rt] - [beicon.v2.core :as rx] [potok.v2.core :as ptk])) ;; Change this to :info :debug or :trace to debug this module @@ -34,136 +27,11 @@ [e] (= e :interrupt)) -(defn- assure-valid-current-page - [] - (ptk/reify ::assure-valid-current-page - ptk/WatchEvent - (watch [_ state _] - (let [current_page (:current-page-id state) - pages (get-in state [:workspace-data :pages]) - exists? (some #(= current_page %) pages) - - project-id (:current-project-id state) - file-id (:current-file-id state) - pparams {:file-id file-id :project-id project-id} - qparams {:page-id (first pages)}] - (if exists? - (rx/empty) - (rx/of (rt/nav :workspace pparams qparams))))))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; UNDO ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -(declare undo-to-index) - -;; These functions should've been in -;; `src/app/main/data/workspace/undo.cljs` but doing that causes a -;; circular dependency with `src/app/main/data/workspace/changes.cljs` - -(def undo - (ptk/reify ::undo - ptk/WatchEvent - (watch [it state _] - (let [objects (wsh/lookup-page-objects state) - edition (get-in state [:workspace-local :edition]) - drawing (get state :workspace-drawing)] - - ;; Editors handle their own undo's - (when (or (and (nil? edition) (nil? (:object drawing))) - (ctl/grid-layout? objects edition)) - (let [undo (:workspace-undo state) - items (:items undo) - index (or (:index undo) (dec (count items)))] - (when-not (or (empty? items) (= index -1)) - (let [item (get items index) - changes (:undo-changes item) - undo-group (:undo-group item) - - find-first-group-idx - (fn [index] - (if (= (dm/get-in items [index :undo-group]) undo-group) - (recur (dec index)) - (inc index))) - - undo-group-index - (when undo-group - (find-first-group-idx index))] - - (if undo-group - (rx/of (undo-to-index (dec undo-group-index))) - (rx/of (dwu/materialize-undo changes (dec index)) - (dch/commit-changes {:redo-changes changes - :undo-changes [] - :save-undo? false - :origin it}) - (assure-valid-current-page))))))))))) - -(def redo - (ptk/reify ::redo - ptk/WatchEvent - (watch [it state _] - (let [objects (wsh/lookup-page-objects state) - edition (get-in state [:workspace-local :edition]) - drawing (get state :workspace-drawing)] - (when (and (or (nil? edition) (ctl/grid-layout? objects edition)) - (or (empty? drawing) (= :curve (:tool drawing)))) - (let [undo (:workspace-undo state) - items (:items undo) - index (or (:index undo) (dec (count items)))] - (when-not (or (empty? items) (= index (dec (count items)))) - (let [item (get items (inc index)) - changes (:redo-changes item) - undo-group (:undo-group item) - find-last-group-idx (fn flgidx [index] - (let [item (get items index)] - (if (= (:undo-group item) undo-group) - (flgidx (inc index)) - (dec index)))) - - redo-group-index (when undo-group - (find-last-group-idx (inc index)))] - (if undo-group - (rx/of (undo-to-index redo-group-index)) - (rx/of (dwu/materialize-undo changes (inc index)) - (dch/commit-changes {:redo-changes changes - :undo-changes [] - :origin it - :save-undo? false}))))))))))) - -(defn undo-to-index - "Repeat undoing or redoing until dest-index is reached." - [dest-index] - (ptk/reify ::undo-to-index - ptk/WatchEvent - (watch [it state _] - (let [objects (wsh/lookup-page-objects state) - edition (get-in state [:workspace-local :edition]) - drawing (get state :workspace-drawing)] - (when-not (and (or (some? edition) (some? (:object drawing))) - (not (ctl/grid-layout? objects edition))) - (let [undo (:workspace-undo state) - items (:items undo) - index (or (:index undo) (dec (count items)))] - (when (and (some? items) - (<= -1 dest-index (dec (count items)))) - (let [changes (vec (apply concat - (cond - (< dest-index index) - (->> (subvec items (inc dest-index) (inc index)) - (reverse) - (map :undo-changes)) - (> dest-index index) - (->> (subvec items (inc index) (inc dest-index)) - (map :redo-changes)) - :else [])))] - (when (seq changes) - (rx/of (dwu/materialize-undo changes dest-index) - (dch/commit-changes {:redo-changes changes - :undo-changes [] - :origin it - :save-undo? false}))))))))))) - ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Toolbar ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; diff --git a/frontend/src/app/main/data/workspace/fix_bool_contents.cljs b/frontend/src/app/main/data/workspace/fix_bool_contents.cljs index 8d0ac516ea..5cb1c493af 100644 --- a/frontend/src/app/main/data/workspace/fix_bool_contents.cljs +++ b/frontend/src/app/main/data/workspace/fix_bool_contents.cljs @@ -8,7 +8,8 @@ (:require [app.common.data :as d] [app.common.geom.shapes :as gsh] - [app.main.data.workspace.changes :as dch] + [app.main.data.changes :as dch] + [app.main.data.workspace.shapes :as dwsh] [app.main.data.workspace.state-helpers :as wsh] [beicon.v2.core :as rx] [potok.v2.core :as ptk])) @@ -82,9 +83,9 @@ :objects (-> component migrate-component :objects)})) components)] - (rx/of (dch/update-shapes ids #(update-shape % objects) {:reg-objects? false - :save-undo? false - :ignore-tree true})) + (rx/of (dwsh/update-shapes ids #(update-shape % objects) {:reg-objects? false + :save-undo? false + :ignore-tree true})) (if (empty? component-changes) (rx/empty) diff --git a/frontend/src/app/main/data/workspace/fix_broken_shapes.cljs b/frontend/src/app/main/data/workspace/fix_broken_shapes.cljs index c110de09b0..ae19af68a4 100644 --- a/frontend/src/app/main/data/workspace/fix_broken_shapes.cljs +++ b/frontend/src/app/main/data/workspace/fix_broken_shapes.cljs @@ -6,7 +6,7 @@ (ns app.main.data.workspace.fix-broken-shapes (:require - [app.main.data.workspace.changes :as dch] + [app.main.data.changes :as dch] [beicon.v2.core :as rx] [potok.v2.core :as ptk])) diff --git a/frontend/src/app/main/data/workspace/fix_deleted_fonts.cljs b/frontend/src/app/main/data/workspace/fix_deleted_fonts.cljs index 31ec4176ef..f79db68675 100644 --- a/frontend/src/app/main/data/workspace/fix_deleted_fonts.cljs +++ b/frontend/src/app/main/data/workspace/fix_deleted_fonts.cljs @@ -9,7 +9,8 @@ [app.common.data :as d] [app.common.files.helpers :as cfh] [app.common.text :as txt] - [app.main.data.workspace.changes :as dch] + [app.main.data.changes :as dwc] + [app.main.data.workspace.shapes :as dwsh] [app.main.data.workspace.state-helpers :as wsh] [app.main.fonts :as fonts] [beicon.v2.core :as rx] @@ -111,19 +112,19 @@ typographies)] (rx/concat - (rx/of (dch/update-shapes ids #(fix-deleted-font-shape %) {:reg-objects? false - :save-undo? false - :ignore-tree true})) + (rx/of (dwsh/update-shapes ids #(fix-deleted-font-shape %) {:reg-objects? false + :save-undo? false + :ignore-tree true})) (if (empty? component-changes) (rx/empty) - (rx/of (dch/commit-changes {:origin it + (rx/of (dwc/commit-changes {:origin it :redo-changes component-changes :undo-changes [] :save-undo? false}))) (if (empty? typography-changes) (rx/empty) - (rx/of (dch/commit-changes {:origin it + (rx/of (dwc/commit-changes {:origin it :redo-changes typography-changes :undo-changes [] :save-undo? false})))))))) diff --git a/frontend/src/app/main/data/workspace/grid.cljs b/frontend/src/app/main/data/workspace/grid.cljs index 50a2351071..beaff9e61b 100644 --- a/frontend/src/app/main/data/workspace/grid.cljs +++ b/frontend/src/app/main/data/workspace/grid.cljs @@ -10,7 +10,8 @@ [app.common.data :as d] [app.common.data.macros :as dm] [app.common.files.changes-builder :as pcb] - [app.main.data.workspace.changes :as dch] + [app.main.data.changes :as dch] + [app.main.data.workspace.shapes :as dwsh] [app.main.data.workspace.state-helpers :as wsh] [beicon.v2.core :as rx] [potok.v2.core :as ptk])) @@ -51,8 +52,8 @@ grid {:type :square :params params :display true}] - (rx/of (dch/update-shapes [frame-id] - (fn [obj] (update obj :grids (fnil #(conj % grid) []))))))))) + (rx/of (dwsh/update-shapes [frame-id] + (fn [obj] (update obj :grids (fnil #(conj % grid) []))))))))) (defn remove-frame-grid @@ -60,14 +61,14 @@ (ptk/reify ::remove-frame-grid ptk/WatchEvent (watch [_ _ _] - (rx/of (dch/update-shapes [frame-id] (fn [o] (update o :grids (fnil #(d/remove-at-index % index) [])))))))) + (rx/of (dwsh/update-shapes [frame-id] (fn [o] (update o :grids (fnil #(d/remove-at-index % index) [])))))))) (defn set-frame-grid [frame-id index data] (ptk/reify ::set-frame-grid ptk/WatchEvent (watch [_ _ _] - (rx/of (dch/update-shapes [frame-id] #(assoc-in % [:grids index] data)))))) + (rx/of (dwsh/update-shapes [frame-id] #(assoc-in % [:grids index] data)))))) (defn set-default-grid [type params] diff --git a/frontend/src/app/main/data/workspace/grid_layout/shortcuts.cljs b/frontend/src/app/main/data/workspace/grid_layout/shortcuts.cljs index 8d76c38caa..a0b71b509d 100644 --- a/frontend/src/app/main/data/workspace/grid_layout/shortcuts.cljs +++ b/frontend/src/app/main/data/workspace/grid_layout/shortcuts.cljs @@ -8,7 +8,7 @@ (:require [app.main.data.shortcuts :as ds] [app.main.data.workspace :as dw] - [app.main.data.workspace.common :as dwc] + [app.main.data.workspace.undo :as dwu] [app.main.store :as st] [beicon.v2.core :as rx] [potok.v2.core :as ptk])) @@ -38,11 +38,11 @@ :undo {:tooltip (ds/meta "Z") :command (ds/c-mod "z") - :fn #(st/emit! dwc/undo)} + :fn #(st/emit! dwu/undo)} :redo {:tooltip (ds/meta "Y") :command [(ds/c-mod "shift+z") (ds/c-mod "y")] - :fn #(st/emit! dwc/redo)} + :fn #(st/emit! dwu/redo)} ;; ZOOM diff --git a/frontend/src/app/main/data/workspace/groups.cljs b/frontend/src/app/main/data/workspace/groups.cljs index 43bed0489a..4aa9aecb05 100644 --- a/frontend/src/app/main/data/workspace/groups.cljs +++ b/frontend/src/app/main/data/workspace/groups.cljs @@ -16,7 +16,7 @@ [app.common.types.shape :as cts] [app.common.types.shape.layout :as ctl] [app.common.uuid :as uuid] - [app.main.data.workspace.changes :as dch] + [app.main.data.changes :as dch] [app.main.data.workspace.selection :as dws] [app.main.data.workspace.state-helpers :as wsh] [app.main.data.workspace.undo :as dwu] diff --git a/frontend/src/app/main/data/workspace/guides.cljs b/frontend/src/app/main/data/workspace/guides.cljs index 2c7c6c2c0a..4047873413 100644 --- a/frontend/src/app/main/data/workspace/guides.cljs +++ b/frontend/src/app/main/data/workspace/guides.cljs @@ -11,8 +11,8 @@ [app.common.geom.point :as gpt] [app.common.geom.shapes :as gsh] [app.common.types.page :as ctp] + [app.main.data.changes :as dwc] [app.main.data.events :as ev] - [app.main.data.workspace.changes :as dch] [app.main.data.workspace.state-helpers :as wsh] [beicon.v2.core :as rx] [potok.v2.core :as ptk])) @@ -42,7 +42,7 @@ (-> (pcb/empty-changes it) (pcb/with-page page) (pcb/update-page-option :guides assoc (:id guide) guide))] - (rx/of (dch/commit-changes changes)))))) + (rx/of (dwc/commit-changes changes)))))) (defn remove-guide [guide] @@ -66,7 +66,7 @@ (-> (pcb/empty-changes it) (pcb/with-page page) (pcb/update-page-option :guides dissoc (:id guide)))] - (rx/of (dch/commit-changes changes)))))) + (rx/of (dwc/commit-changes changes)))))) (defn remove-guides [ids] diff --git a/frontend/src/app/main/data/workspace/interactions.cljs b/frontend/src/app/main/data/workspace/interactions.cljs index 1aad31f2f8..9727d9033a 100644 --- a/frontend/src/app/main/data/workspace/interactions.cljs +++ b/frontend/src/app/main/data/workspace/interactions.cljs @@ -15,7 +15,8 @@ [app.common.types.shape-tree :as ctst] [app.common.types.shape.interactions :as ctsi] [app.common.uuid :as uuid] - [app.main.data.workspace.changes :as dch] + [app.main.data.changes :as dch] + [app.main.data.workspace.shapes :as dwsh] [app.main.data.workspace.state-helpers :as wsh] [app.main.data.workspace.undo :as dwu] [app.main.streams :as ms] @@ -125,13 +126,13 @@ :flows] []) flow (ctp/get-frame-flow flows (:id frame))] (rx/concat - (rx/of (dch/update-shapes [(:id shape)] - (fn [shape] - (let [new-interaction (-> ctsi/default-interaction - (ctsi/set-destination destination) - (assoc :position-relative-to (:id shape)))] - (update shape :interactions - ctsi/add-interaction new-interaction))))) + (rx/of (dwsh/update-shapes [(:id shape)] + (fn [shape] + (let [new-interaction (-> ctsi/default-interaction + (ctsi/set-destination destination) + (assoc :position-relative-to (:id shape)))] + (update shape :interactions + ctsi/add-interaction new-interaction))))) (when (and (not (connected-frame? objects (:id frame))) (nil? flow)) (rx/of (add-flow (:id frame)))))))))) @@ -141,20 +142,19 @@ (ptk/reify ::remove-interaction ptk/WatchEvent (watch [_ _ _] - (rx/of (dch/update-shapes [(:id shape)] - (fn [shape] - (update shape :interactions - ctsi/remove-interaction index))))))) - + (rx/of (dwsh/update-shapes [(:id shape)] + (fn [shape] + (update shape :interactions + ctsi/remove-interaction index))))))) (defn update-interaction [shape index update-fn] (ptk/reify ::update-interaction ptk/WatchEvent (watch [_ _ _] - (rx/of (dch/update-shapes [(:id shape)] - (fn [shape] - (update shape :interactions - ctsi/update-interaction index update-fn))))))) + (rx/of (dwsh/update-shapes [(:id shape)] + (fn [shape] + (update shape :interactions + ctsi/update-interaction index update-fn))))))) (defn remove-all-interactions-nav-to "Remove all interactions that navigate to the given frame." @@ -171,9 +171,9 @@ new-interactions (ctsi/remove-interactions #(ctsi/navs-to? % frame-id) interactions)] (when (not= (count interactions) (count new-interactions)) - (dch/update-shapes [(:id shape)] - (fn [shape] - (assoc shape :interactions new-interactions))))))] + (dwsh/update-shapes [(:id shape)] + (fn [shape] + (assoc shape :interactions new-interactions))))))] (rx/from (->> (vals objects) (map remove-interactions-shape) @@ -260,20 +260,20 @@ (dwu/start-undo-transaction undo-id) (when (:hide-in-viewer target-frame) - ; If the target frame is hidden, we need to unhide it so - ; users can navigate to it. - (dch/update-shapes [(:id target-frame)] - #(dissoc % :hide-in-viewer))) + ;; If the target frame is hidden, we need to unhide it so + ;; users can navigate to it. + (dwsh/update-shapes [(:id target-frame)] + #(dissoc % :hide-in-viewer))) (cond (or (nil? shape) - ;; Didn't changed the position for the interaction + ;; Didn't changed the position for the interaction (= position initial-pos) - ;; New interaction but invalid target + ;; New interaction but invalid target (and (nil? index) (nil? target-frame))) nil - ;; Dropped interaction in an invalid target. We remove it + ;; Dropped interaction in an invalid target. We remove it (and (some? index) (nil? target-frame)) (remove-interaction shape index) @@ -364,5 +364,5 @@ (update interactions index #(ctsi/set-overlay-position % overlay-pos))] - (rx/of (dch/update-shapes [(:id shape)] #(merge % {:interactions new-interactions}))))))) + (rx/of (dwsh/update-shapes [(:id shape)] #(merge % {:interactions new-interactions}))))))) diff --git a/frontend/src/app/main/data/workspace/layers.cljs b/frontend/src/app/main/data/workspace/layers.cljs index afde3c03a0..3425a16a4f 100644 --- a/frontend/src/app/main/data/workspace/layers.cljs +++ b/frontend/src/app/main/data/workspace/layers.cljs @@ -9,7 +9,7 @@ (:require [app.common.data :as d] [app.common.math :as mth] - [app.main.data.workspace.changes :as dch] + [app.main.data.workspace.shapes :as dwsh] [app.main.data.workspace.state-helpers :as wsh] [beicon.v2.core :as rx] [cuerdas.core :as str] @@ -48,7 +48,7 @@ shapes (map #(get objects %) selected) shapes-ids (->> shapes (map :id))] - (rx/of (dch/update-shapes shapes-ids #(assoc % :opacity opacity))))))) + (rx/of (dwsh/update-shapes shapes-ids #(assoc % :opacity opacity))))))) (defn pressed-opacity [opacity] diff --git a/frontend/src/app/main/data/workspace/libraries.cljs b/frontend/src/app/main/data/workspace/libraries.cljs index 585ab58a5b..0fe30fe317 100644 --- a/frontend/src/app/main/data/workspace/libraries.cljs +++ b/frontend/src/app/main/data/workspace/libraries.cljs @@ -24,15 +24,16 @@ [app.common.types.shape.layout :as ctl] [app.common.types.typography :as ctt] [app.common.uuid :as uuid] + [app.main.data.changes :as dch] [app.main.data.comments :as dc] [app.main.data.events :as ev] [app.main.data.messages :as msg] [app.main.data.modal :as modal] [app.main.data.workspace :as-alias dw] - [app.main.data.workspace.changes :as dch] [app.main.data.workspace.groups :as dwg] [app.main.data.workspace.notifications :as-alias dwn] [app.main.data.workspace.selection :as dws] + [app.main.data.workspace.shapes :as dwsh] [app.main.data.workspace.specialized-panel :as dwsp] [app.main.data.workspace.state-helpers :as wsh] [app.main.data.workspace.thumbnails :as dwt] @@ -54,7 +55,6 @@ ;; Change this to :info :debug or :trace to debug this module, or :warn to reset to default (log/set-level! :warn) - (defn- pretty-file [file-id state] (if (= file-id (:current-file-id state)) @@ -441,7 +441,7 @@ ;; NOTE: only when components-v2 is enabled (when (and shape-id page-id) - (rx/of (dch/update-shapes [shape-id] #(assoc % :name clean-name) {:page-id page-id :stack-undo? true})))))))))) + (rx/of (dwsh/update-shapes [shape-id] #(assoc % :name clean-name) {:page-id page-id :stack-undo? true})))))))))) (defn duplicate-component "Create a new component copied from the one with the given id." @@ -1148,7 +1148,7 @@ changes-s (->> stream - (rx/filter #(or (dch/commit-changes? %) + (rx/filter #(or (dch/commit? %) (ptk/type? % ::dwn/handle-file-change))) (rx/observe-on :async)) diff --git a/frontend/src/app/main/data/workspace/media.cljs b/frontend/src/app/main/data/workspace/media.cljs index 50105e9b00..8abf32dd83 100644 --- a/frontend/src/app/main/data/workspace/media.cljs +++ b/frontend/src/app/main/data/workspace/media.cljs @@ -20,9 +20,9 @@ [app.common.types.shape :as cts] [app.common.uuid :as uuid] [app.config :as cf] + [app.main.data.changes :as dch] [app.main.data.media :as dmm] [app.main.data.messages :as msg] - [app.main.data.workspace.changes :as dch] [app.main.data.workspace.libraries :as dwl] [app.main.data.workspace.shapes :as dwsh] [app.main.data.workspace.state-helpers :as wsh] diff --git a/frontend/src/app/main/data/workspace/modifiers.cljs b/frontend/src/app/main/data/workspace/modifiers.cljs index d4f8799f71..ace8816c50 100644 --- a/frontend/src/app/main/data/workspace/modifiers.cljs +++ b/frontend/src/app/main/data/workspace/modifiers.cljs @@ -23,9 +23,9 @@ [app.common.types.shape.layout :as ctl] [app.common.uuid :as uuid] [app.main.constants :refer [zoom-half-pixel-precision]] - [app.main.data.workspace.changes :as dch] [app.main.data.workspace.comments :as-alias dwcm] [app.main.data.workspace.guides :as-alias dwg] + [app.main.data.workspace.shapes :as dwsh] [app.main.data.workspace.state-helpers :as wsh] [app.main.data.workspace.undo :as dwu] [beicon.v2.core :as rx] @@ -499,7 +499,7 @@ (rx/empty)) (rx/of (ptk/event ::dwg/move-frame-guides ids-with-children) (ptk/event ::dwcm/move-frame-comment-threads ids-with-children) - (dch/update-shapes + (dwsh/update-shapes ids (fn [shape] (let [modif (get-in object-modifiers [(:id shape) :modifiers]) diff --git a/frontend/src/app/main/data/workspace/notifications.cljs b/frontend/src/app/main/data/workspace/notifications.cljs index 4bb3a97723..39808e7f37 100644 --- a/frontend/src/app/main/data/workspace/notifications.cljs +++ b/frontend/src/app/main/data/workspace/notifications.cljs @@ -11,11 +11,10 @@ [app.common.files.changes :as cpc] [app.common.schema :as sm] [app.common.uuid :as uuid] + [app.main.data.changes :as dch] [app.main.data.common :refer [handle-notification]] [app.main.data.websocket :as dws] - [app.main.data.workspace.changes :as dch] [app.main.data.workspace.libraries :as dwl] - [app.main.data.workspace.persistence :as dwp] [app.util.globals :refer [global]] [app.util.mouse :as mse] [app.util.object :as obj] @@ -84,7 +83,7 @@ (->> stream (rx/filter mse/pointer-event?) (rx/filter #(= :viewport (mse/get-pointer-source %))) - (rx/pipe (rxs/throttle 100)) + (rx/pipe (rxs/throttle 50)) (rx/map #(handle-pointer-send file-id (:pt %))))) (rx/take-until stopper))] @@ -197,9 +196,10 @@ [:changes ::cpc/changes]])) (defn handle-file-change - [{:keys [file-id changes] :as msg}] + [{:keys [file-id changes revn] :as msg}] + (dm/assert! - "expected valid arguments" + "expected valid parameters" (sm/check! schema:handle-file-change msg)) (ptk/reify ::handle-file-change @@ -209,15 +209,11 @@ ptk/WatchEvent (watch [_ state _] (let [page-id (:current-page-id state) + position-data-operation? (fn [{:keys [type attr]}] - (and (= :set type) (= attr :position-data))) - - ;;add-origin-session-id - ;;(fn [{:keys [] :as op}] - ;; (cond-> op - ;; (position-data-operation? op) - ;; (update :val with-meta {:session-id (:session-id msg)}))) + (and (= :set type) + (= attr :position-data))) update-position-data (fn [change] @@ -228,24 +224,23 @@ (= :mod-obj (:type change))) (update :operations #(d/removev position-data-operation? %)))) - process-page-changes - (fn [[page-id changes]] - (dch/update-indices page-id changes)) - ;; We update `position-data` from the incoming message changes (->> changes - (mapv update-position-data) - (d/removev (fn [change] - (and (= page-id (:page-id change)) - (:ignore-remote? change))))) + (map update-position-data) + (remove (fn [change] + (and (= page-id (:page-id change)) + (:ignore-remote? change)))) + (vec))] - changes-by-pages (group-by :page-id changes)] - - (rx/merge - (rx/of (dwp/shapes-changes-persisted file-id (assoc msg :changes changes))) - - (when-not (empty? changes-by-pages) - (rx/from (map process-page-changes changes-by-pages)))))))) + ;; The commit event is responsible to apply the data localy + ;; and update the persistence internal state with the updated + ;; file-revn + (rx/of (dch/commit {:file-id file-id + :file-revn revn + :save-undo? false + :source :remote + :redo-changes changes + :undo-changes []})))))) (def ^:private schema:handle-library-change diff --git a/frontend/src/app/main/data/workspace/path/changes.cljs b/frontend/src/app/main/data/workspace/path/changes.cljs index dd188e72e3..43ad6fdc0f 100644 --- a/frontend/src/app/main/data/workspace/path/changes.cljs +++ b/frontend/src/app/main/data/workspace/path/changes.cljs @@ -8,7 +8,7 @@ (:require [app.common.data.macros :as dm] [app.common.files.changes-builder :as pcb] - [app.main.data.workspace.changes :as dch] + [app.main.data.changes :as dch] [app.main.data.workspace.path.common :refer [check-path-content!]] [app.main.data.workspace.path.helpers :as helpers] [app.main.data.workspace.path.state :as st] diff --git a/frontend/src/app/main/data/workspace/path/drawing.cljs b/frontend/src/app/main/data/workspace/path/drawing.cljs index 3841c3f76c..9b562723e2 100644 --- a/frontend/src/app/main/data/workspace/path/drawing.cljs +++ b/frontend/src/app/main/data/workspace/path/drawing.cljs @@ -15,7 +15,6 @@ [app.common.types.shape :as cts] [app.common.types.shape-tree :as ctst] [app.common.types.shape.layout :as ctl] - [app.main.data.workspace.changes :as dch] [app.main.data.workspace.drawing.common :as dwdc] [app.main.data.workspace.edition :as dwe] [app.main.data.workspace.path.changes :as changes] @@ -24,6 +23,7 @@ [app.main.data.workspace.path.state :as st] [app.main.data.workspace.path.streams :as streams] [app.main.data.workspace.path.undo :as undo] + [app.main.data.workspace.shapes :as dwsh] [app.main.data.workspace.state-helpers :as wsh] [app.util.mouse :as mse] [beicon.v2.core :as rx] @@ -333,7 +333,7 @@ edit-mode (get-in state [:workspace-local :edit-path id :edit-mode])] (if (= :draw edit-mode) (rx/concat - (rx/of (dch/update-shapes [id] upsp/convert-to-path)) + (rx/of (dwsh/update-shapes [id] upsp/convert-to-path)) (rx/of (handle-drawing id)) (->> stream (rx/filter (ptk/type? ::common/finish-path)) diff --git a/frontend/src/app/main/data/workspace/path/edition.cljs b/frontend/src/app/main/data/workspace/path/edition.cljs index 9d600bbb41..a91532b0ad 100644 --- a/frontend/src/app/main/data/workspace/path/edition.cljs +++ b/frontend/src/app/main/data/workspace/path/edition.cljs @@ -14,7 +14,7 @@ [app.common.svg.path.command :as upc] [app.common.svg.path.shapes-to-path :as upsp] [app.common.svg.path.subpath :as ups] - [app.main.data.workspace.changes :as dch] + [app.main.data.changes :as dch] [app.main.data.workspace.edition :as dwe] [app.main.data.workspace.path.changes :as changes] [app.main.data.workspace.path.drawing :as drawing] @@ -23,6 +23,7 @@ [app.main.data.workspace.path.state :as st] [app.main.data.workspace.path.streams :as streams] [app.main.data.workspace.path.undo :as undo] + [app.main.data.workspace.shapes :as dwsh] [app.main.data.workspace.state-helpers :as wsh] [app.main.streams :as ms] [app.util.mouse :as mse] @@ -143,7 +144,7 @@ selected? (contains? selected-points position)] (streams/drag-stream (rx/of - (dch/update-shapes [id] upsp/convert-to-path) + (dwsh/update-shapes [id] upsp/convert-to-path) (when-not selected? (selection/select-node position shift?)) (drag-selected-points @ms/mouse-position)) (rx/of (selection/select-node position shift?))))))) @@ -227,7 +228,7 @@ mov-vec (gpt/multiply (get-displacement direction) scale)] (rx/concat - (rx/of (dch/update-shapes [id] upsp/convert-to-path)) + (rx/of (dwsh/update-shapes [id] upsp/convert-to-path)) (rx/merge (->> move-events (rx/take-until stopper) @@ -265,7 +266,7 @@ (streams/drag-stream (rx/concat - (rx/of (dch/update-shapes [id] upsp/convert-to-path)) + (rx/of (dwsh/update-shapes [id] upsp/convert-to-path)) (->> (streams/move-handler-stream handler point handler opposite points) (rx/map (fn [{:keys [x y alt? shift?]}] @@ -354,5 +355,5 @@ ptk/WatchEvent (watch [_ state _] (let [id (st/get-path-id state)] - (rx/of (dch/update-shapes [id] upsp/convert-to-path) + (rx/of (dwsh/update-shapes [id] upsp/convert-to-path) (split-segments event)))))) diff --git a/frontend/src/app/main/data/workspace/path/shapes_to_path.cljs b/frontend/src/app/main/data/workspace/path/shapes_to_path.cljs index c73ad3dfca..d6367aefd0 100644 --- a/frontend/src/app/main/data/workspace/path/shapes_to_path.cljs +++ b/frontend/src/app/main/data/workspace/path/shapes_to_path.cljs @@ -10,7 +10,7 @@ [app.common.files.helpers :as cph] [app.common.svg.path.shapes-to-path :as upsp] [app.common.types.container :as ctn] - [app.main.data.workspace.changes :as dch] + [app.main.data.changes :as dch] [app.main.data.workspace.state-helpers :as wsh] [beicon.v2.core :as rx] [potok.v2.core :as ptk])) diff --git a/frontend/src/app/main/data/workspace/path/tools.cljs b/frontend/src/app/main/data/workspace/path/tools.cljs index e75b53fc3f..0c17182c36 100644 --- a/frontend/src/app/main/data/workspace/path/tools.cljs +++ b/frontend/src/app/main/data/workspace/path/tools.cljs @@ -8,10 +8,11 @@ (:require [app.common.svg.path.shapes-to-path :as upsp] [app.common.svg.path.subpath :as ups] - [app.main.data.workspace.changes :as dch] + [app.main.data.changes :as dch] [app.main.data.workspace.edition :as dwe] [app.main.data.workspace.path.changes :as changes] [app.main.data.workspace.path.state :as st] + [app.main.data.workspace.shapes :as dwsh] [app.main.data.workspace.state-helpers :as wsh] [app.util.path.tools :as upt] [beicon.v2.core :as rx] @@ -37,7 +38,7 @@ changes (changes/generate-path-changes it objects page-id shape (:content shape) new-content)] (rx/concat - (rx/of (dch/update-shapes [id] upsp/convert-to-path)) + (rx/of (dwsh/update-shapes [id] upsp/convert-to-path)) (rx/of (dch/commit-changes changes) (when (empty? new-content) (dwe/clear-edition-mode))))))))))) diff --git a/frontend/src/app/main/data/workspace/persistence.cljs b/frontend/src/app/main/data/workspace/persistence.cljs deleted file mode 100644 index c0032c6c8d..0000000000 --- a/frontend/src/app/main/data/workspace/persistence.cljs +++ /dev/null @@ -1,263 +0,0 @@ -;; This Source Code Form is subject to the terms of the Mozilla Public -;; License, v. 2.0. If a copy of the MPL was not distributed with this -;; file, You can obtain one at http://mozilla.org/MPL/2.0/. -;; -;; Copyright (c) KALEIDOS INC - -(ns app.main.data.workspace.persistence - (:require - [app.common.data.macros :as dm] - [app.common.files.changes :as cpc] - [app.common.logging :as log] - [app.common.types.shape-tree :as ctst] - [app.common.uuid :as uuid] - [app.main.data.workspace.changes :as dch] - [app.main.data.workspace.thumbnails :as dwt] - [app.main.features :as features] - [app.main.repo :as rp] - [app.main.store :as st] - [app.util.time :as dt] - [beicon.v2.core :as rx] - [okulary.core :as l] - [potok.v2.core :as ptk])) - -(log/set-level! :info) - -(declare persist-changes) -(declare persist-synchronous-changes) -(declare shapes-changes-persisted) -(declare shapes-changes-persisted-finished) -(declare update-persistence-status) - -;; --- Persistence - -(defn initialize-file-persistence - [file-id] - (ptk/reify ::initialize-persistence - ptk/WatchEvent - (watch [_ _ stream] - (log/debug :hint "initialize persistence") - (let [stopper (rx/filter (ptk/type? ::initialize-persistence) stream) - commits (l/atom []) - saving? (l/atom false) - - local-file? - #(as-> (:file-id %) event-file-id - (or (nil? event-file-id) - (= event-file-id file-id))) - - library-file? - #(as-> (:file-id %) event-file-id - (and (some? event-file-id) - (not= event-file-id file-id))) - - on-dirty - (fn [] - ;; Enable reload stopper - (swap! st/ongoing-tasks conj :workspace-change) - (st/emit! (update-persistence-status {:status :pending}))) - - on-saving - (fn [] - (reset! saving? true) - (st/emit! (update-persistence-status {:status :saving}))) - - on-saved - (fn [] - ;; Disable reload stopper - (swap! st/ongoing-tasks disj :workspace-change) - (st/emit! (update-persistence-status {:status :saved})) - (reset! saving? false))] - - (rx/merge - (->> stream - (rx/filter dch/commit-changes?) - (rx/map deref) - (rx/filter local-file?) - (rx/tap on-dirty) - (rx/filter (complement empty?)) - (rx/map (fn [commit] - (-> commit - (assoc :id (uuid/next)) - (assoc :file-id file-id)))) - (rx/observe-on :async) - (rx/tap #(swap! commits conj %)) - (rx/take-until (rx/delay 100 stopper)) - (rx/finalize (fn [] - (log/debug :hint "finalize persistence: changes watcher")))) - - (->> (rx/from-atom commits) - (rx/filter (complement empty?)) - (rx/sample-when - (rx/merge - (rx/filter #(= ::force-persist %) stream) - (->> (rx/merge - (rx/interval 5000) - (->> (rx/from-atom commits) - (rx/filter (complement empty?)) - (rx/debounce 2000))) - ;; Not sample while saving so there are no race conditions - (rx/filter #(not @saving?))))) - (rx/tap #(reset! commits [])) - (rx/tap on-saving) - (rx/mapcat (fn [changes] - ;; NOTE: this is needed for don't start the - ;; next persistence before this one is - ;; finished. - (if-let [file-revn (dm/get-in @st/state [:workspace-file :revn])] - (rx/merge - (->> (rx/of (persist-changes file-id file-revn changes commits)) - (rx/observe-on :async)) - (->> stream - ;; We wait for every change to be persisted - (rx/filter (ptk/type? ::shapes-changes-persisted-finished)) - (rx/take 1) - (rx/tap on-saved) - (rx/ignore))) - (rx/empty)))) - (rx/take-until (rx/delay 100 stopper)) - (rx/finalize (fn [] - (log/debug :hint "finalize persistence: save loop")))) - - ;; Synchronous changes - (->> stream - (rx/filter dch/commit-changes?) - (rx/map deref) - (rx/filter library-file?) - (rx/filter (complement #(empty? (:changes %)))) - (rx/map persist-synchronous-changes) - (rx/take-until (rx/delay 100 stopper)) - (rx/finalize (fn [] - (log/debug :hint "finalize persistence: synchronous save loop"))))))))) - -(defn persist-changes - [file-id file-revn changes pending-commits] - (log/debug :hint "persist changes" :changes (count changes)) - (dm/assert! (uuid? file-id)) - (ptk/reify ::persist-changes - ptk/WatchEvent - (watch [_ state _] - (let [sid (:session-id state) - - features (features/get-team-enabled-features state) - params {:id file-id - :revn file-revn - :session-id sid - :changes-with-metadata (into [] changes) - :features features}] - - (->> (rp/cmd! :update-file params) - (rx/mapcat (fn [lagged] - (log/debug :hint "changes persisted" :lagged (count lagged)) - (let [frame-updates - (-> (group-by :page-id changes) - (update-vals #(into #{} (mapcat :frames) %))) - - commits - (->> @pending-commits - (map #(assoc % :revn file-revn)))] - - (rx/concat - (rx/merge - (->> (rx/from frame-updates) - (rx/mapcat (fn [[page-id frames]] - (->> frames (map (fn [frame-id] [file-id page-id frame-id]))))) - (rx/map (fn [data] - (ptk/data-event ::dwt/update data)))) - - (->> (rx/from (concat lagged commits)) - (rx/merge-map - (fn [{:keys [changes] :as entry}] - (rx/merge - (rx/from - (for [[page-id changes] (group-by :page-id changes)] - (dch/update-indices page-id changes))) - (rx/of (shapes-changes-persisted file-id entry))))))) - - (rx/of (shapes-changes-persisted-finished)))))) - (rx/catch (fn [cause] - (if (instance? js/TypeError cause) - (->> (rx/timer 2000) - (rx/map (fn [_] - (persist-changes file-id file-revn changes pending-commits)))) - (rx/throw cause))))))))) - -;; Event to be thrown after the changes have been persisted -(defn shapes-changes-persisted-finished - [] - (ptk/reify ::shapes-changes-persisted-finished)) - -(defn persist-synchronous-changes - [{:keys [file-id changes]}] - (dm/assert! (uuid? file-id)) - (ptk/reify ::persist-synchronous-changes - ptk/WatchEvent - (watch [_ state _] - (let [features (features/get-team-enabled-features state) - - sid (:session-id state) - file (dm/get-in state [:workspace-libraries file-id]) - - params {:id (:id file) - :revn (:revn file) - :session-id sid - :changes changes - :features features}] - - (when (:id params) - (->> (rp/cmd! :update-file params) - (rx/ignore))))))) - -(defn update-persistence-status - [{:keys [status reason]}] - (ptk/reify ::update-persistence-status - ptk/UpdateEvent - (update [_ state] - (update state :workspace-persistence - (fn [local] - (assoc local - :reason reason - :status status - :updated-at (dt/now))))))) - - -(defn shapes-persisted-event? [event] - (= (ptk/type event) ::changes-persisted)) - -(defn shapes-changes-persisted - [file-id {:keys [revn changes] persisted-session-id :session-id}] - (dm/assert! (uuid? file-id)) - (dm/assert! (int? revn)) - (dm/assert! (cpc/check-changes! changes)) - - (ptk/reify ::shapes-changes-persisted - ptk/UpdateEvent - (update [_ state] - ;; NOTE: we don't set the file features context here because - ;; there are no useful context for code that need to be executed - ;; on the frontend side - (let [current-file-id (:current-file-id state) - current-session-id (:session-id state)] - (if (and (some? current-file-id) - ;; If the remote change is from teh current session we skip - (not= persisted-session-id current-session-id)) - (if (= file-id current-file-id) - (let [changes (group-by :page-id changes)] - (-> state - (update-in [:workspace-file :revn] max revn) - (update :workspace-data - (fn [file] - (loop [fdata file - entries (seq changes)] - (if-let [[page-id changes] (first entries)] - (recur (-> fdata - (cpc/process-changes changes) - (cond-> (some? page-id) - (ctst/update-object-indices page-id))) - (rest entries)) - fdata)))))) - (-> state - (update-in [:workspace-libraries file-id :revn] max revn) - (update-in [:workspace-libraries file-id :data] cpc/process-changes changes))) - - state))))) diff --git a/frontend/src/app/main/data/workspace/selection.cljs b/frontend/src/app/main/data/workspace/selection.cljs index f05cf5d5eb..1f29cbcc34 100644 --- a/frontend/src/app/main/data/workspace/selection.cljs +++ b/frontend/src/app/main/data/workspace/selection.cljs @@ -18,9 +18,9 @@ [app.common.record :as cr] [app.common.types.component :as ctk] [app.common.uuid :as uuid] + [app.main.data.changes :as dch] [app.main.data.events :as ev] [app.main.data.modal :as md] - [app.main.data.workspace.changes :as dch] [app.main.data.workspace.collapse :as dwc] [app.main.data.workspace.specialized-panel :as-alias dwsp] [app.main.data.workspace.state-helpers :as wsh] diff --git a/frontend/src/app/main/data/workspace/shape_layout.cljs b/frontend/src/app/main/data/workspace/shape_layout.cljs index 76a346c002..3f7440c063 100644 --- a/frontend/src/app/main/data/workspace/shape_layout.cljs +++ b/frontend/src/app/main/data/workspace/shape_layout.cljs @@ -20,8 +20,8 @@ [app.common.types.modifiers :as ctm] [app.common.types.shape.layout :as ctl] [app.common.uuid :as uuid] + [app.main.data.changes :as dch] [app.main.data.events :as ev] - [app.main.data.workspace.changes :as dch] [app.main.data.workspace.colors :as cl] [app.main.data.workspace.grid-layout.editor :as dwge] [app.main.data.workspace.modifiers :as dwm] @@ -148,8 +148,8 @@ layout-initializer (get-layout-initializer type from-frame? calculate-params?)] (rx/of (dwu/start-undo-transaction undo-id) - (dch/update-shapes [id] layout-initializer {:with-objects? true}) - (dch/update-shapes (dm/get-prop parent :shapes) #(dissoc % :constraints-h :constraints-v)) + (dwsh/update-shapes [id] layout-initializer {:with-objects? true}) + (dwsh/update-shapes (dm/get-prop parent :shapes) #(dissoc % :constraints-h :constraints-v)) (ptk/data-event :layout/update {:ids [id]}) (dwu/commit-undo-transaction undo-id)))))) @@ -188,8 +188,8 @@ (dwsh/create-artboard-from-selection new-shape-id parent-id group-index (:name (first selected-shapes))) (cl/remove-all-fills [new-shape-id] {:color clr/black :opacity 1}) (create-layout-from-id new-shape-id type) - (dch/update-shapes [new-shape-id] #(assoc % :layout-item-h-sizing :auto :layout-item-v-sizing :auto)) - (dch/update-shapes selected #(assoc % :layout-item-h-sizing :fix :layout-item-v-sizing :fix)) + (dwsh/update-shapes [new-shape-id] #(assoc % :layout-item-h-sizing :auto :layout-item-v-sizing :auto)) + (dwsh/update-shapes selected #(assoc % :layout-item-h-sizing :fix :layout-item-v-sizing :fix)) (dwsh/delete-shapes page-id selected) (ptk/data-event :layout/update {:ids [new-shape-id]}) (dwu/commit-undo-transaction undo-id))) @@ -199,8 +199,8 @@ (dwsh/create-artboard-from-selection new-shape-id) (cl/remove-all-fills [new-shape-id] {:color clr/black :opacity 1}) (create-layout-from-id new-shape-id type) - (dch/update-shapes [new-shape-id] #(assoc % :layout-item-h-sizing :auto :layout-item-v-sizing :auto)) - (dch/update-shapes selected #(assoc % :layout-item-h-sizing :fix :layout-item-v-sizing :fix)))) + (dwsh/update-shapes [new-shape-id] #(assoc % :layout-item-h-sizing :auto :layout-item-v-sizing :auto)) + (dwsh/update-shapes selected #(assoc % :layout-item-h-sizing :fix :layout-item-v-sizing :fix)))) (rx/of (ptk/data-event :layout/update {:ids [new-shape-id]}) (dwu/commit-undo-transaction undo-id))))))) @@ -213,7 +213,7 @@ (let [undo-id (js/Symbol)] (rx/of (dwu/start-undo-transaction undo-id) - (dch/update-shapes ids #(apply dissoc % layout-keys)) + (dwsh/update-shapes ids #(apply dissoc % layout-keys)) (ptk/data-event :layout/update {:ids ids}) (dwu/commit-undo-transaction undo-id)))))) @@ -266,7 +266,7 @@ (watch [_ _ _] (let [undo-id (js/Symbol)] (rx/of (dwu/start-undo-transaction undo-id) - (dch/update-shapes ids (d/patch-object changes)) + (dwsh/update-shapes ids (d/patch-object changes)) (ptk/data-event :layout/update {:ids ids}) (dwu/commit-undo-transaction undo-id)))))) @@ -280,7 +280,7 @@ (watch [_ _ _] (let [undo-id (js/Symbol)] (rx/of (dwu/start-undo-transaction undo-id) - (dch/update-shapes + (dwsh/update-shapes ids (fn [shape] (case type @@ -313,7 +313,7 @@ (if shapes-to-delete (dwsh/delete-shapes shapes-to-delete) (rx/empty)) - (dch/update-shapes + (dwsh/update-shapes ids (fn [shape objects] (case type @@ -387,7 +387,7 @@ (watch [_ _ _] (let [undo-id (js/Symbol)] (rx/of (dwu/start-undo-transaction undo-id) - (dch/update-shapes + (dwsh/update-shapes ids (fn [shape] (case type @@ -433,7 +433,7 @@ :row :layout-grid-rows :column :layout-grid-columns)] (rx/of (dwu/start-undo-transaction undo-id) - (dch/update-shapes + (dwsh/update-shapes ids (fn [shape] (-> shape @@ -525,9 +525,9 @@ parent-ids (->> ids (map #(cfh/get-parent-id objects %))) undo-id (js/Symbol)] (rx/of (dwu/start-undo-transaction undo-id) - (dch/update-shapes ids (d/patch-object changes)) - (dch/update-shapes children-ids (partial fix-child-sizing objects changes)) - (dch/update-shapes + (dwsh/update-shapes ids (d/patch-object changes)) + (dwsh/update-shapes children-ids (partial fix-child-sizing objects changes)) + (dwsh/update-shapes parent-ids (fn [parent objects] (-> parent @@ -546,8 +546,7 @@ (let [undo-id (js/Symbol)] (rx/of (dwu/start-undo-transaction undo-id) - - (dch/update-shapes + (dwsh/update-shapes [layout-id] (fn [shape] (->> ids @@ -570,7 +569,7 @@ (let [undo-id (js/Symbol)] (rx/of (dwu/start-undo-transaction undo-id) - (dch/update-shapes + (dwsh/update-shapes [layout-id] (fn [shape objects] (case mode @@ -636,7 +635,7 @@ (let [undo-id (js/Symbol)] (rx/of (dwu/start-undo-transaction undo-id) - (dch/update-shapes + (dwsh/update-shapes [layout-id] (fn [shape objects] (let [cells (->> ids (map #(get-in shape [:layout-grid-cells %]))) @@ -668,7 +667,7 @@ (let [undo-id (js/Symbol)] (rx/of (dwu/start-undo-transaction undo-id) - (dch/update-shapes + (dwsh/update-shapes [layout-id] (fn [shape objects] (let [prev-data (-> (dm/get-in shape [:layout-grid-cells cell-id]) diff --git a/frontend/src/app/main/data/workspace/shapes.cljs b/frontend/src/app/main/data/workspace/shapes.cljs index 1918aa0f3d..81c12872a7 100644 --- a/frontend/src/app/main/data/workspace/shapes.cljs +++ b/frontend/src/app/main/data/workspace/shapes.cljs @@ -16,8 +16,8 @@ [app.common.types.container :as ctn] [app.common.types.shape :as cts] [app.common.types.shape-tree :as ctst] + [app.main.data.changes :as dch] [app.main.data.comments :as dc] - [app.main.data.workspace.changes :as dch] [app.main.data.workspace.edition :as dwe] [app.main.data.workspace.selection :as dws] [app.main.data.workspace.state-helpers :as wsh] @@ -26,6 +26,74 @@ [beicon.v2.core :as rx] [potok.v2.core :as ptk])) +(def ^:private update-layout-attr? #{:hidden}) + +(defn- add-undo-group + [changes state] + (let [undo (:workspace-undo state) + items (:items undo) + index (or (:index undo) (dec (count items))) + prev-item (when-not (or (empty? items) (= index -1)) + (get items index)) + undo-group (:undo-group prev-item) + add-undo-group? (and + (not (nil? undo-group)) + (= (get-in changes [:redo-changes 0 :type]) :mod-obj) + (= (get-in prev-item [:redo-changes 0 :type]) :add-obj) + (contains? (:tags prev-item) :alt-duplication))] ;; This is a copy-and-move with mouse+alt + + (cond-> changes add-undo-group? (assoc :undo-group undo-group)))) + +(defn update-shapes + ([ids update-fn] (update-shapes ids update-fn nil)) + ([ids update-fn {:keys [reg-objects? save-undo? stack-undo? attrs ignore-tree page-id ignore-remote? ignore-touched undo-group with-objects?] + :or {reg-objects? false save-undo? true stack-undo? false ignore-remote? false ignore-touched false with-objects? false}}] + + (dm/assert! + "expected a valid coll of uuid's" + (sm/check-coll-of-uuid! ids)) + + (dm/assert! (fn? update-fn)) + + (ptk/reify ::update-shapes + ptk/WatchEvent + (watch [it state _] + (let [page-id (or page-id (:current-page-id state)) + objects (wsh/lookup-page-objects state page-id) + ids (into [] (filter some?) ids) + + update-layout-ids + (->> ids + (map (d/getf objects)) + (filter #(some update-layout-attr? (pcb/changed-attrs % objects update-fn {:attrs attrs :with-objects? with-objects?}))) + (map :id)) + + changes (-> (pcb/empty-changes it page-id) + (pcb/set-save-undo? save-undo?) + (pcb/set-stack-undo? stack-undo?) + (cls/generate-update-shapes ids + update-fn + objects + {:attrs attrs + :ignore-tree ignore-tree + :ignore-touched ignore-touched + :with-objects? with-objects?}) + (cond-> undo-group + (pcb/set-undo-group undo-group))) + + changes (add-undo-group changes state)] + (rx/concat + (if (seq (:redo-changes changes)) + (let [changes (cond-> changes reg-objects? (pcb/resize-parents ids)) + changes (cond-> changes ignore-remote? (pcb/ignore-remote))] + (rx/of (dch/commit-changes changes))) + (rx/empty)) + + ;; Update layouts for properties marked + (if (d/not-empty? update-layout-ids) + (rx/of (ptk/data-event :layout/update {:ids update-layout-ids})) + (rx/empty)))))))) + (defn add-shape ([shape] (add-shape shape {})) @@ -227,7 +295,7 @@ ids (if (boolean? blocked) (into ids (->> ids (mapcat #(cfh/get-children-ids objects %)))) ids)] - (rx/of (dch/update-shapes ids update-fn {:attrs #{:blocked :hidden} :undo-group undo-group})))))) + (rx/of (update-shapes ids update-fn {:attrs #{:blocked :hidden} :undo-group undo-group})))))) (defn toggle-visibility-selected [] @@ -235,7 +303,7 @@ ptk/WatchEvent (watch [_ state _] (let [selected (wsh/lookup-selected state)] - (rx/of (dch/update-shapes selected #(update % :hidden not))))))) + (rx/of (update-shapes selected #(update % :hidden not))))))) (defn toggle-lock-selected [] @@ -243,7 +311,7 @@ ptk/WatchEvent (watch [_ state _] (let [selected (wsh/lookup-selected state)] - (rx/of (dch/update-shapes selected #(update % :blocked not))))))) + (rx/of (update-shapes selected #(update % :blocked not))))))) ;; FIXME: this need to be refactored @@ -273,8 +341,8 @@ (map (partial vector id))))))) (d/group-by first second) (map (fn [[page-id frame-ids]] - (dch/update-shapes frame-ids #(dissoc % :use-for-thumbnail) {:page-id page-id}))))) + (update-shapes frame-ids #(dissoc % :use-for-thumbnail) {:page-id page-id}))))) ;; And finally: toggle the flag value on all the selected shapes - (rx/of (dch/update-shapes selected #(update % :use-for-thumbnail not)) + (rx/of (update-shapes selected #(update % :use-for-thumbnail not)) (dwu/commit-undo-transaction undo-id))))))) diff --git a/frontend/src/app/main/data/workspace/shortcuts.cljs b/frontend/src/app/main/data/workspace/shortcuts.cljs index 6ca11f33e5..9dc525560f 100644 --- a/frontend/src/app/main/data/workspace/shortcuts.cljs +++ b/frontend/src/app/main/data/workspace/shortcuts.cljs @@ -14,7 +14,6 @@ [app.main.data.users :as du] [app.main.data.workspace :as dw] [app.main.data.workspace.colors :as mdc] - [app.main.data.workspace.common :as dwc] [app.main.data.workspace.drawing :as dwd] [app.main.data.workspace.layers :as dwly] [app.main.data.workspace.libraries :as dwl] @@ -51,12 +50,12 @@ :undo {:tooltip (ds/meta "Z") :command (ds/c-mod "z") :subsections [:edit] - :fn #(emit-when-no-readonly dwc/undo)} + :fn #(emit-when-no-readonly dwu/undo)} :redo {:tooltip (ds/meta "Y") :command [(ds/c-mod "shift+z") (ds/c-mod "y")] :subsections [:edit] - :fn #(emit-when-no-readonly dwc/redo)} + :fn #(emit-when-no-readonly dwu/redo)} :clear-undo {:tooltip (ds/alt "Q") :command "alt+q" diff --git a/frontend/src/app/main/data/workspace/svg_upload.cljs b/frontend/src/app/main/data/workspace/svg_upload.cljs index d81d8ecb3f..a11f8893bb 100644 --- a/frontend/src/app/main/data/workspace/svg_upload.cljs +++ b/frontend/src/app/main/data/workspace/svg_upload.cljs @@ -14,7 +14,7 @@ [app.common.svg.shapes-builder :as csvg.shapes-builder] [app.common.types.shape-tree :as ctst] [app.common.uuid :as uuid] - [app.main.data.workspace.changes :as dch] + [app.main.data.changes :as dch] [app.main.data.workspace.selection :as dws] [app.main.data.workspace.state-helpers :as wsh] [app.main.data.workspace.undo :as dwu] diff --git a/frontend/src/app/main/data/workspace/texts.cljs b/frontend/src/app/main/data/workspace/texts.cljs index bf67c549f3..65ceb38fd0 100644 --- a/frontend/src/app/main/data/workspace/texts.cljs +++ b/frontend/src/app/main/data/workspace/texts.cljs @@ -17,7 +17,6 @@ [app.common.types.modifiers :as ctm] [app.common.uuid :as uuid] [app.main.data.events :as ev] - [app.main.data.workspace.changes :as dch] [app.main.data.workspace.common :as dwc] [app.main.data.workspace.libraries :as dwl] [app.main.data.workspace.modifiers :as dwm] @@ -93,7 +92,7 @@ (some? (:current-page-id state)) (some? shape)) (rx/of - (dch/update-shapes + (dwsh/update-shapes [id] (fn [shape] (let [{:keys [width height position-data]} modifiers] @@ -230,7 +229,7 @@ shape-ids (cond (cfh/text-shape? shape) [id] (cfh/group-shape? shape) (cfh/get-children-ids objects id))] - (rx/of (dch/update-shapes shape-ids update-fn)))))) + (rx/of (dwsh/update-shapes shape-ids update-fn)))))) (defn update-paragraph-attrs [{:keys [id attrs]}] @@ -257,7 +256,7 @@ (cfh/text-shape? shape) [id] (cfh/group-shape? shape) (cfh/get-children-ids objects id))] - (rx/of (dch/update-shapes shape-ids update-fn)))))))) + (rx/of (dwsh/update-shapes shape-ids update-fn)))))))) (defn update-text-attrs [{:keys [id attrs]}] @@ -277,7 +276,7 @@ shape-ids (cond (cfh/text-shape? shape) [id] (cfh/group-shape? shape) (cfh/get-children-ids objects id))] - (rx/of (dch/update-shapes shape-ids #(update-text-content % update-node? d/txt-merge attrs)))))))) + (rx/of (dwsh/update-shapes shape-ids #(update-text-content % update-node? d/txt-merge attrs)))))))) (defn migrate-node @@ -337,7 +336,7 @@ (dissoc :fills) (d/update-when :content update-content)))] - (rx/of (dch/update-shapes shape-ids update-shape))))))) + (rx/of (dwsh/update-shapes shape-ids update-shape))))))) ;; --- RESIZE UTILS @@ -390,10 +389,10 @@ (let [ids (into #{} (filter changed-text?) (keys props))] (rx/of (dwu/start-undo-transaction undo-id) - (dch/update-shapes ids update-fn {:reg-objects? true - :stack-undo? true - :ignore-remote? true - :ignore-touched true}) + (dwsh/update-shapes ids update-fn {:reg-objects? true + :stack-undo? true + :ignore-remote? true + :ignore-touched true}) (ptk/data-event :layout/update {:ids ids}) (dwu/commit-undo-transaction undo-id)))))))) @@ -532,7 +531,7 @@ (watch [_ state _] (let [position-data (::update-position-data state)] (rx/concat - (rx/of (dch/update-shapes + (rx/of (dwsh/update-shapes (keys position-data) (fn [shape] (-> shape diff --git a/frontend/src/app/main/data/workspace/thumbnails.cljs b/frontend/src/app/main/data/workspace/thumbnails.cljs index e2cb1cacc9..d131ffd9cd 100644 --- a/frontend/src/app/main/data/workspace/thumbnails.cljs +++ b/frontend/src/app/main/data/workspace/thumbnails.cljs @@ -10,7 +10,8 @@ [app.common.files.helpers :as cfh] [app.common.logging :as l] [app.common.thumbnails :as thc] - [app.main.data.workspace.changes :as dch] + [app.main.data.changes :as dch] + [app.main.data.persistence :as-alias dps] [app.main.data.workspace.notifications :as-alias wnt] [app.main.data.workspace.state-helpers :as wsh] [app.main.rasterizer :as thr] @@ -24,9 +25,10 @@ [app.util.timers :as tm] [app.util.webapi :as wapi] [beicon.v2.core :as rx] + [cuerdas.core :as str] [potok.v2.core :as ptk])) -(l/set-level! :info) +(l/set-level! :warn) (declare update-thumbnail) @@ -65,10 +67,9 @@ ptk/EffectEvent (effect [_ _ _] (l/dbg :hint "request thumbnail" :requester requester :file-id file-id :page-id page-id :shape-id shape-id :tag tag) - (q/enqueue-unique - queue - (create-request file-id page-id shape-id tag) - (partial find-request file-id page-id shape-id tag)))))) + (q/enqueue-unique queue + (create-request file-id page-id shape-id tag) + (partial find-request file-id page-id shape-id tag)))))) ;; This function first renders the HTML calling `render/render-frame` that ;; returns HTML as a string, then we send that data to the iframe rasterizer @@ -92,24 +93,36 @@ (defn clear-thumbnail ([file-id page-id frame-id tag] - (clear-thumbnail (thc/fmt-object-id file-id page-id frame-id tag))) - ([object-id] - (let [emit-rpc? (volatile! false)] + (clear-thumbnail file-id (thc/fmt-object-id file-id page-id frame-id tag))) + ([file-id object-id] + (let [pending (volatile! false)] (ptk/reify ::clear-thumbnail cljs.core/IDeref (-deref [_] object-id) ptk/UpdateEvent (update [_ state] - (let [uri (dm/get-in state [:workspace-thumbnails object-id])] - (if (some? uri) - (do - (l/dbg :hint "clear thumbnail" :object-id object-id) - (vreset! emit-rpc? true) - (tm/schedule-on-idle (partial wapi/revoke-uri uri)) - (update state :workspace-thumbnails dissoc object-id)) + (update state :workspace-thumbnails + (fn [thumbs] + (if-let [uri (get thumbs object-id)] + (do (vreset! pending uri) + (dissoc thumbs object-id)) + thumbs)))) - state))))))) + ptk/WatchEvent + (watch [_ _ _] + (if-let [uri @pending] + (do + (l/trc :hint "clear-thumbnail" :uri uri) + (when (str/starts-with? uri "blob:") + (tm/schedule-on-idle (partial wapi/revoke-uri uri))) + + (let [params {:file-id file-id + :object-id object-id}] + (->> (rp/cmd! :delete-file-object-thumbnail params) + (rx/catch rx/empty) + (rx/ignore)))) + (rx/empty))))))) (defn- assoc-thumbnail [object-id uri] @@ -181,7 +194,7 @@ (defn- extract-root-frame-changes "Process a changes set in a commit to extract the frames that are changing" [page-id [event [old-data new-data]]] - (let [changes (-> event deref :changes) + (let [changes (:changes event) extract-ids (fn [{:keys [page-id type] :as change}] @@ -239,58 +252,53 @@ (rx/buffer 2 1) (rx/share)) - local-changes-s + ;; All commits stream, indepentendly of the source of the commit + all-commits-s (->> stream - (rx/filter dch/commit-changes?) - (rx/with-latest-from workspace-data-s) - (rx/merge-map (partial extract-root-frame-changes page-id)) - (rx/tap #(l/trc :hint "incoming change" :origin "local" :frame-id (dm/str %)))) - - notification-changes-s - (->> stream - (rx/filter (ptk/type? ::wnt/handle-file-change)) + (rx/filter dch/commit?) + (rx/map deref) (rx/observe-on :async) (rx/with-latest-from workspace-data-s) (rx/merge-map (partial extract-root-frame-changes page-id)) - (rx/tap #(l/trc :hint "incoming change" :origin "notifications" :frame-id (dm/str %)))) - - persistence-changes-s - (->> stream - (rx/filter (ptk/type? ::update)) - (rx/map deref) - (rx/filter (fn [[file-id page-id]] - (and (= file-id file-id) - (= page-id page-id)))) - (rx/map (fn [[_ _ frame-id]] frame-id)) - (rx/tap #(l/trc :hint "incoming change" :origin "persistence" :frame-id (dm/str %)))) - - all-changes-s - (->> (rx/merge - ;; LOCAL CHANGES - local-changes-s - ;; NOTIFICATIONS CHANGES - notification-changes-s - ;; PERSISTENCE CHANGES - persistence-changes-s) - + (rx/tap #(l/trc :hint "inconming change" :origin "local" :frame-id (dm/str %))) (rx/share)) - ;; BUFFER NOTIFIER (window of 5s of inactivity) + local-commits-s + (->> stream + (rx/filter dch/commit?) + (rx/map deref) + (rx/filter #(= :local (:source %))) + (rx/observe-on :async) + (rx/with-latest-from workspace-data-s) + (rx/merge-map (partial extract-root-frame-changes page-id)) + (rx/tap #(l/trc :hint "inconming change" :origin "local" :frame-id (dm/str %))) + (rx/share)) + + ;; BUFFER NOTIFIER: only on local changes, remote changes + ;; we expect to receive thumbnail uri once it is + ;; generated va notifications subsystem notifier-s - (->> all-changes-s - (rx/debounce 1000) + (->> stream + (rx/filter (ptk/type? ::dps/commit-persisted)) + (rx/map deref) + (rx/observe-on :async) + (rx/with-latest-from workspace-data-s) + (rx/merge-map (partial extract-root-frame-changes page-id)) + (rx/tap #(l/trc :hint "inconming change" :origin "local" :frame-id (dm/str %))) + (rx/debounce 5000) (rx/tap #(l/trc :hint "buffer initialized")))] (->> (rx/merge ;; Perform instant thumbnail cleaning of affected frames ;; and interrupt any ongoing update-thumbnail process ;; related to current frame-id - (->> all-changes-s - (rx/map #(clear-thumbnail file-id page-id % "frame"))) + (->> all-commits-s + (rx/map (fn [frame-id] + (clear-thumbnail file-id page-id frame-id "frame")))) ;; Generate thumbnails in batchs, once user becomes - ;; inactive for some instant - (->> all-changes-s + ;; inactive for some instant only for local changes + (->> local-commits-s (rx/buffer-until notifier-s) (rx/mapcat #(into #{} %)) (rx/map #(request-thumbnail file-id page-id % "frame" "watch-state-changes")))) diff --git a/frontend/src/app/main/data/workspace/transforms.cljs b/frontend/src/app/main/data/workspace/transforms.cljs index e381b4bee6..7fe33314d6 100644 --- a/frontend/src/app/main/data/workspace/transforms.cljs +++ b/frontend/src/app/main/data/workspace/transforms.cljs @@ -25,7 +25,7 @@ [app.common.types.modifiers :as ctm] [app.common.types.shape-tree :as ctst] [app.common.types.shape.layout :as ctl] - [app.main.data.workspace.changes :as dch] + [app.main.data.changes :as dch] [app.main.data.workspace.collapse :as dwc] [app.main.data.workspace.modifiers :as dwm] [app.main.data.workspace.selection :as dws] diff --git a/frontend/src/app/main/data/workspace/undo.cljs b/frontend/src/app/main/data/workspace/undo.cljs index 809c9f6a52..41f3fe1a1d 100644 --- a/frontend/src/app/main/data/workspace/undo.cljs +++ b/frontend/src/app/main/data/workspace/undo.cljs @@ -11,18 +11,18 @@ [app.common.files.changes :as cpc] [app.common.logging :as log] [app.common.schema :as sm] + [app.common.types.shape.layout :as ctl] + [app.main.data.changes :as dch] + [app.main.data.workspace.state-helpers :as wsh] + [app.util.router :as rt] [app.util.time :as dt] [beicon.v2.core :as rx] [potok.v2.core :as ptk])) -(def discard-transaction-time-millis (* 20 1000)) - ;; Change this to :info :debug or :trace to debug this module (log/set-level! :warn) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; Undo / Redo -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +(def discard-transaction-time-millis (* 20 1000)) (def ^:private schema:undo-entry @@ -44,7 +44,6 @@ (subvec undo (- cnt MAX-UNDO-SIZE)) undo))) -;; TODO: Review the necessity of this method (defn materialize-undo [_changes index] (ptk/reify ::materialize-undo @@ -84,8 +83,7 @@ (-> state (update-in [:workspace-undo :transaction :undo-changes] #(into undo-changes %)) (update-in [:workspace-undo :transaction :redo-changes] #(into % redo-changes)) - (cond-> - (nil? (get-in state [:workspace-undo :transaction :undo-group])) + (cond-> (nil? (get-in state [:workspace-undo :transaction :undo-group])) (assoc-in [:workspace-undo :transaction :undo-group] undo-group)) (assoc-in [:workspace-undo :transaction :tags] tags))) @@ -182,3 +180,125 @@ (rx/tap #(js/console.warn (dm/str "FORCE COMMIT TRANSACTION AFTER " (second %) "MS"))) (rx/map first) (rx/map commit-undo-transaction)))))) + +(defn undo-to-index + "Repeat undoing or redoing until dest-index is reached." + [dest-index] + (ptk/reify ::undo-to-index + ptk/WatchEvent + (watch [it state _] + (let [objects (wsh/lookup-page-objects state) + edition (get-in state [:workspace-local :edition]) + drawing (get state :workspace-drawing)] + (when-not (and (or (some? edition) (some? (:object drawing))) + (not (ctl/grid-layout? objects edition))) + (let [undo (:workspace-undo state) + items (:items undo) + index (or (:index undo) (dec (count items)))] + (when (and (some? items) + (<= -1 dest-index (dec (count items)))) + (let [changes (vec (apply concat + (cond + (< dest-index index) + (->> (subvec items (inc dest-index) (inc index)) + (reverse) + (map :undo-changes)) + (> dest-index index) + (->> (subvec items (inc index) (inc dest-index)) + (map :redo-changes)) + :else [])))] + (when (seq changes) + (rx/of (materialize-undo changes dest-index) + (dch/commit-changes {:redo-changes changes + :undo-changes [] + :origin it + :save-undo? false}))))))))))) + +(declare ^:private assure-valid-current-page) + +(def undo + (ptk/reify ::undo + ptk/WatchEvent + (watch [it state _] + (let [objects (wsh/lookup-page-objects state) + edition (get-in state [:workspace-local :edition]) + drawing (get state :workspace-drawing)] + + ;; Editors handle their own undo's + (when (or (and (nil? edition) (nil? (:object drawing))) + (ctl/grid-layout? objects edition)) + (let [undo (:workspace-undo state) + items (:items undo) + index (or (:index undo) (dec (count items)))] + (when-not (or (empty? items) (= index -1)) + (let [item (get items index) + changes (:undo-changes item) + undo-group (:undo-group item) + + find-first-group-idx + (fn [index] + (if (= (dm/get-in items [index :undo-group]) undo-group) + (recur (dec index)) + (inc index))) + + undo-group-index + (when undo-group + (find-first-group-idx index))] + + (if undo-group + (rx/of (undo-to-index (dec undo-group-index))) + (rx/of (materialize-undo changes (dec index)) + (dch/commit-changes {:redo-changes changes + :undo-changes [] + :save-undo? false + :origin it}) + (assure-valid-current-page))))))))))) + +(def redo + (ptk/reify ::redo + ptk/WatchEvent + (watch [it state _] + (let [objects (wsh/lookup-page-objects state) + edition (get-in state [:workspace-local :edition]) + drawing (get state :workspace-drawing)] + (when (and (or (nil? edition) (ctl/grid-layout? objects edition)) + (or (empty? drawing) (= :curve (:tool drawing)))) + (let [undo (:workspace-undo state) + items (:items undo) + index (or (:index undo) (dec (count items)))] + (when-not (or (empty? items) (= index (dec (count items)))) + (let [item (get items (inc index)) + changes (:redo-changes item) + undo-group (:undo-group item) + find-last-group-idx (fn flgidx [index] + (let [item (get items index)] + (if (= (:undo-group item) undo-group) + (flgidx (inc index)) + (dec index)))) + + redo-group-index (when undo-group + (find-last-group-idx (inc index)))] + (if undo-group + (rx/of (undo-to-index redo-group-index)) + (rx/of (materialize-undo changes (inc index)) + (dch/commit-changes {:redo-changes changes + :undo-changes [] + :origin it + :save-undo? false}))))))))))) + +(defn- assure-valid-current-page + [] + (ptk/reify ::assure-valid-current-page + ptk/WatchEvent + (watch [_ state _] + (let [current_page (:current-page-id state) + pages (get-in state [:workspace-data :pages]) + exists? (some #(= current_page %) pages) + + project-id (:current-project-id state) + file-id (:current-file-id state) + pparams {:file-id file-id :project-id project-id} + qparams {:page-id (first pages)}] + (if exists? + (rx/empty) + (rx/of (rt/nav :workspace pparams qparams))))))) diff --git a/frontend/src/app/main/refs.cljs b/frontend/src/app/main/refs.cljs index 969bb43a65..d122425bcc 100644 --- a/frontend/src/app/main/refs.cljs +++ b/frontend/src/app/main/refs.cljs @@ -45,6 +45,9 @@ (def export (l/derived :export st/state)) +(def persistence + (l/derived :persistence st/state)) + ;; ---- Dashboard refs (def dashboard-local diff --git a/frontend/src/app/main/store.cljs b/frontend/src/app/main/store.cljs index 7b02335e76..703b3952de 100644 --- a/frontend/src/app/main/store.cljs +++ b/frontend/src/app/main/store.cljs @@ -34,8 +34,6 @@ (def debug-exclude-events #{:app.main.data.workspace.notifications/handle-pointer-update :app.main.data.workspace.notifications/handle-pointer-send - :app.main.data.workspace.persistence/update-persistence-status - :app.main.data.workspace.changes/update-indices :app.main.data.websocket/send-message :app.main.data.workspace.selection/change-hover-state}) @@ -65,7 +63,7 @@ :app.util.router/assign-exception}] (->> (rx/merge (->> stream - (rx/filter (ptk/type? :app.main.data.workspace.changes/commit-changes)) + (rx/filter (ptk/type? :app.main.data.changes/commit)) (rx/map #(-> % deref :hint-origin))) (rx/map ptk/type stream)) (rx/filter #(not (contains? omitset %))) diff --git a/frontend/src/app/main/ui/components/forms.cljs b/frontend/src/app/main/ui/components/forms.cljs index 9aec3f3022..ec0066ad2e 100644 --- a/frontend/src/app/main/ui/components/forms.cljs +++ b/frontend/src/app/main/ui/components/forms.cljs @@ -101,7 +101,7 @@ (cond-> (and value is-checkbox?) (assoc :default-checked value)) (cond-> (and touched? (:message error)) (assoc "aria-invalid" "true" "aria-describedby" (dm/str "error-" input-name))) - (obj/clj->props)) + (obj/map->obj obj/prop-key-fn)) checked? (and is-checkbox? (= value true)) show-valid? (and show-success? touched? (not error)) @@ -201,7 +201,7 @@ :on-blur on-blur ;; :placeholder label :on-change on-change) - (obj/clj->props))] + (obj/map->obj obj/prop-key-fn))] [:div {:class (dm/str klass " " (stl/css :textarea-wrapper))} [:label {:class (stl/css :textarea-label)} label] diff --git a/frontend/src/app/main/ui/workspace.cljs b/frontend/src/app/main/ui/workspace.cljs index 3f3c0f71a5..6365f0fe9c 100644 --- a/frontend/src/app/main/ui/workspace.cljs +++ b/frontend/src/app/main/ui/workspace.cljs @@ -10,9 +10,9 @@ [app.common.data.macros :as dm] [app.main.data.messages :as msg] [app.main.data.modal :as modal] + [app.main.data.persistence :as dps] [app.main.data.workspace :as dw] [app.main.data.workspace.colors :as dc] - [app.main.data.workspace.persistence :as dwp] [app.main.features :as features] [app.main.refs :as refs] [app.main.store :as st] @@ -177,6 +177,9 @@ background-color (:background-color wglobal)] + (mf/with-effect [] + (st/emit! (dps/initialize-persistence))) + ;; Setting the layout preset by its name (mf/with-effect [layout-name] (st/emit! (dw/initialize-layout layout-name))) @@ -188,7 +191,7 @@ (mf/with-effect [project-id file-id] (st/emit! (dw/initialize-file project-id file-id)) (fn [] - (st/emit! ::dwp/force-persist + (st/emit! ::dps/force-persist (dc/stop-picker) (modal/hide) msg/hide diff --git a/frontend/src/app/main/ui/workspace/main_menu.cljs b/frontend/src/app/main/ui/workspace/main_menu.cljs index e9368635e3..b71705e5c1 100644 --- a/frontend/src/app/main/ui/workspace/main_menu.cljs +++ b/frontend/src/app/main/ui/workspace/main_menu.cljs @@ -19,9 +19,9 @@ [app.main.data.shortcuts :as scd] [app.main.data.users :as du] [app.main.data.workspace :as dw] - [app.main.data.workspace.common :as dwc] [app.main.data.workspace.libraries :as dwl] [app.main.data.workspace.shortcuts :as sc] + [app.main.data.workspace.undo :as dwu] [app.main.features :as features] [app.main.refs :as refs] [app.main.store :as st] @@ -414,8 +414,8 @@ ::mf/wrap [mf/memo]} [{:keys [on-close]}] (let [select-all (mf/use-fn #(st/emit! (dw/select-all))) - undo (mf/use-fn #(st/emit! dwc/undo)) - redo (mf/use-fn #(st/emit! dwc/redo))] + undo (mf/use-fn #(st/emit! dwu/undo)) + redo (mf/use-fn #(st/emit! dwu/redo))] [:& dropdown-menu {:show true :list-class (stl/css-case :sub-menu true :edit true) diff --git a/frontend/src/app/main/ui/workspace/right_header.cljs b/frontend/src/app/main/ui/workspace/right_header.cljs index d3b6a60269..aac56d929e 100644 --- a/frontend/src/app/main/ui/workspace/right_header.cljs +++ b/frontend/src/app/main/ui/workspace/right_header.cljs @@ -25,38 +25,35 @@ [okulary.core :as l] [rumext.v2 :as mf])) -(def ref:workspace-persistence - (l/derived :workspace-persistence st/state)) +(def ref:persistence-status + (l/derived :status refs/persistence)) ;; --- Persistence state Widget (mf/defc persistence-state-widget - {::mf/wrap [mf/memo]} + {::mf/wrap [mf/memo] + ::mf/wrap-props false} [] - (let [{:keys [status]} (mf/deref ref:workspace-persistence)] + (let [status (mf/deref ref:persistence-status)] [:div {:class (stl/css :persistence-status-widget)} (case status :pending - [:div {:class (stl/css-case :status-icon true - :pending-status true) + [:div {:class (stl/css :status-icon :pending-status) :title (tr "workspace.header.unsaved")} i/status-alert] :saving - [:div {:class (stl/css-case :status-icon true - :saving-status true) + [:div {:class (stl/css :status-icon :saving-status) :title (tr "workspace.header.saving")} i/status-update] :saved - [:div {:class (stl/css-case :status-icon true - :saved-status true) + [:div {:class (stl/css :status-icon :saved-status) :title (tr "workspace.header.saved")} i/status-tick] :error - [:div {:class (stl/css-case :status-icon true - :error-status true) + [:div {:class (stl/css :status-icon :error-status) :title "There was an error saving the data. Please refresh if this persists."} i/status-wrong] diff --git a/frontend/src/app/main/ui/workspace/sidebar/history.cljs b/frontend/src/app/main/ui/workspace/sidebar/history.cljs index 38b83de94d..cb62682f39 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/history.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/history.cljs @@ -11,7 +11,7 @@ [app.common.data.macros :as dm] [app.main.data.events :as ev] [app.main.data.workspace :as dw] - [app.main.data.workspace.common :as dwc] + [app.main.data.workspace.undo :as dwu] [app.main.refs :as refs] [app.main.store :as st] [app.main.ui.icons :as i] @@ -304,7 +304,7 @@ :show-detail @show-detail?) :on-pointer-enter #(reset! hover? true) :on-pointer-leave #(reset! hover? false) - :on-click #(st/emit! (dwc/undo-to-index idx-entry))} + :on-click #(st/emit! (dwu/undo-to-index idx-entry))} [:div {:class (stl/css :history-entry-summary)} [:div {:class (stl/css :history-entry-summary-icon)} diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/menus/blur.cljs b/frontend/src/app/main/ui/workspace/sidebar/options/menus/blur.cljs index 89ecb0bc9a..cd1573982a 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options/menus/blur.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/options/menus/blur.cljs @@ -8,7 +8,7 @@ (:require-macros [app.main.style :as stl]) (:require [app.common.uuid :as uuid] - [app.main.data.workspace.changes :as dch] + [app.main.data.workspace.shapes :as dwsh] [app.main.store :as st] [app.main.ui.components.numeric-input :refer [numeric-input*]] [app.main.ui.components.title-bar :refer [title-bar]] @@ -44,7 +44,7 @@ (mf/use-fn (mf/deps ids) (fn [update-fn] - (st/emit! (dch/update-shapes ids update-fn)))) + (st/emit! (dwsh/update-shapes ids update-fn)))) handle-add (mf/use-fn diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs b/frontend/src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs index 866249bcc9..c669ad4450 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs @@ -11,7 +11,7 @@ [app.common.geom.rect :as grc] [app.common.geom.shapes :as gsh] [app.common.uuid :as uuid] - [app.main.data.workspace.changes :as dch] + [app.main.data.workspace.shapes :as dwsh] [app.main.refs :as refs] [app.main.store :as st] [app.main.ui.components.select :refer [select]] @@ -102,7 +102,7 @@ [:constraints-h :center]) nil ())] - (st/emit! (dch/update-shapes + (st/emit! (dwsh/update-shapes ids #(assoc % constraint new-value)))))) @@ -111,7 +111,7 @@ (mf/deps ids) (fn [value] (when-not (str/empty? value) - (st/emit! (dch/update-shapes + (st/emit! (dwsh/update-shapes ids #(assoc % :constraints-h (keyword value))))))) @@ -120,7 +120,7 @@ (mf/deps ids) (fn [value] (when-not (str/empty? value) - (st/emit! (dch/update-shapes + (st/emit! (dwsh/update-shapes ids #(assoc % :constraints-v (keyword value))))))) @@ -128,7 +128,7 @@ (mf/use-fn (mf/deps ids) (fn [_] - (st/emit! (dch/update-shapes ids #(update % :fixed-scroll not))))) + (st/emit! (dwsh/update-shapes ids #(update % :fixed-scroll not))))) options-h (mf/with-memo [constraints-h] diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/menus/exports.cljs b/frontend/src/app/main/ui/workspace/sidebar/options/menus/exports.cljs index 216ad42316..a1981f1912 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options/menus/exports.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/options/menus/exports.cljs @@ -9,7 +9,7 @@ (:require [app.common.data :as d] [app.main.data.exports :as de] - [app.main.data.workspace.changes :as dch] + [app.main.data.workspace.shapes :as dwsh] [app.main.data.workspace.state-helpers :as wsh] [app.main.refs :as refs] [app.main.store :as st] @@ -97,9 +97,9 @@ (mf/deps ids) (fn [] (let [xspec {:type :png :suffix "" :scale 1}] - (st/emit! (dch/update-shapes ids - (fn [shape] - (assoc shape :exports (into [xspec] (:exports shape))))))))) + (st/emit! (dwsh/update-shapes ids + (fn [shape] + (assoc shape :exports (into [xspec] (:exports shape))))))))) delete-export (mf/use-fn @@ -110,16 +110,16 @@ (mapv second))) remove (fn [shape] (update shape :exports remove-fill-by-index position))] - (st/emit! (dch/update-shapes ids remove))))) + (st/emit! (dwsh/update-shapes ids remove))))) on-scale-change (mf/use-fn (mf/deps ids) (fn [index event] (let [scale (d/parse-double event)] - (st/emit! (dch/update-shapes ids - (fn [shape] - (assoc-in shape [:exports index :scale] scale))))))) + (st/emit! (dwsh/update-shapes ids + (fn [shape] + (assoc-in shape [:exports index :scale] scale))))))) on-suffix-change (mf/use-fn @@ -129,26 +129,26 @@ index (-> (dom/get-current-target event) (dom/get-data "value") (d/parse-integer))] - (st/emit! (dch/update-shapes ids - (fn [shape] - (assoc-in shape [:exports index :suffix] value))))))) + (st/emit! (dwsh/update-shapes ids + (fn [shape] + (assoc-in shape [:exports index :suffix] value))))))) on-type-change (mf/use-fn (mf/deps ids) (fn [index event] (let [type (keyword event)] - (st/emit! (dch/update-shapes ids - (fn [shape] - (assoc-in shape [:exports index :type] type))))))) + (st/emit! (dwsh/update-shapes ids + (fn [shape] + (assoc-in shape [:exports index :type] type))))))) on-remove-all (mf/use-fn (mf/deps ids) (fn [] - (st/emit! (dch/update-shapes ids - (fn [shape] - (assoc shape :exports [])))))) + (st/emit! (dwsh/update-shapes ids + (fn [shape] + (assoc shape :exports [])))))) manage-key-down (mf/use-fn (fn [event] diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/menus/layer.cljs b/frontend/src/app/main/ui/workspace/sidebar/options/menus/layer.cljs index 938d2d8789..2ec3b31c70 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/options/menus/layer.cljs @@ -10,7 +10,7 @@ [app.common.data :as d] [app.common.data.macros :as dm] [app.main.data.workspace :as dw] - [app.main.data.workspace.changes :as dch] + [app.main.data.workspace.shapes :as dwsh] [app.main.store :as st] [app.main.ui.components.numeric-input :refer [numeric-input*]] [app.main.ui.components.select :refer [select]] @@ -55,7 +55,7 @@ (mf/use-fn (mf/deps ids) (fn [prop value] - (st/emit! (dch/update-shapes ids #(assoc % prop value))))) + (st/emit! (dwsh/update-shapes ids #(assoc % prop value))))) handle-change-blend-mode (mf/use-fn diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/menus/measures.cljs b/frontend/src/app/main/ui/workspace/sidebar/options/menus/measures.cljs index 13c4ffe534..48b22e0878 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/options/menus/measures.cljs @@ -13,8 +13,8 @@ [app.common.types.shape.radius :as ctsr] [app.main.constants :refer [size-presets]] [app.main.data.workspace :as udw] - [app.main.data.workspace.changes :as dch] [app.main.data.workspace.interactions :as dwi] + [app.main.data.workspace.shapes :as dwsh] [app.main.data.workspace.undo :as dwu] [app.main.refs :as refs] [app.main.store :as st] @@ -249,13 +249,13 @@ (mf/use-fn (mf/deps ids-with-children) (fn [update-fn] - (dch/update-shapes ids-with-children - (fn [shape] - (if (ctsr/has-radius? shape) - (update-fn shape) - shape)) - {:reg-objects? true - :attrs [:rx :ry :r1 :r2 :r3 :r4]}))) + (dwsh/update-shapes ids-with-children + (fn [shape] + (if (ctsr/has-radius? shape) + (update-fn shape) + shape)) + {:reg-objects? true + :attrs [:rx :ry :r1 :r2 :r3 :r4]}))) on-switch-to-radius-1 (mf/use-fn @@ -317,7 +317,7 @@ (mf/deps ids) (fn [event] (let [value (-> event dom/get-target dom/checked?)] - (st/emit! (dch/update-shapes ids (fn [shape] (assoc shape :show-content (not value)))))))) + (st/emit! (dwsh/update-shapes ids (fn [shape] (assoc shape :show-content (not value)))))))) on-change-show-in-viewer (mf/use-fn @@ -327,7 +327,7 @@ undo-id (js/Symbol)] (do (st/emit! (dwu/start-undo-transaction undo-id) - (dch/update-shapes ids (fn [shape] (assoc shape :hide-in-viewer (not value))))) + (dwsh/update-shapes ids (fn [shape] (assoc shape :hide-in-viewer (not value))))) (when-not value ;; when a frame is no longer shown in view mode, cannot have @@ -399,7 +399,7 @@ :placeholder (if (= :multiple (:width values)) (tr "settings.multiple") "--") :on-change on-width-change :disabled disabled-width-sizing? - :className (stl/css :numeric-input) + :class (stl/css :numeric-input) :value (:width values)}]] [:div {:class (stl/css-case :height true :disabled disabled-height-sizing?) @@ -410,7 +410,7 @@ :placeholder (if (= :multiple (:height values)) (tr "settings.multiple") "--") :on-change on-height-change :disabled disabled-height-sizing? - :className (stl/css :numeric-input) + :class (stl/css :numeric-input) :value (:height values)}]] [:button {:class (stl/css-case :lock-size-btn true @@ -430,7 +430,7 @@ :placeholder (if (= :multiple (:x values)) (tr "settings.multiple") "--") :on-change on-pos-x-change :disabled disabled-position-x? - :className (stl/css :numeric-input) + :class (stl/css :numeric-input) :value (:x values)}]] [:div {:class (stl/css-case :y-position true @@ -441,7 +441,7 @@ :placeholder (if (= :multiple (:y values)) (tr "settings.multiple") "--") :disabled disabled-position-y? :on-change on-pos-y-change - :className (stl/css :numeric-input) + :class (stl/css :numeric-input) :value (:y values)}]]]) (when (or (options :rotation) (options :radius)) [:div {:class (stl/css :rotation-radius)} @@ -457,7 +457,7 @@ :data-wrap true :placeholder (if (= :multiple (:rotation values)) (tr "settings.multiple") "--") :on-change on-rotation-change - :className (stl/css :numeric-input) + :class (stl/css :numeric-input) :value (:rotation values)}]]) (when (options :radius) @@ -473,7 +473,7 @@ :ref radius-input-ref :min 0 :on-change on-radius-1-change - :className (stl/css :numeric-input) + :class (stl/css :numeric-input) :value (:rx values)}]] @radius-multi? @@ -485,7 +485,7 @@ :placeholder "Mixed" :min 0 :on-change on-radius-multi-change - :className (stl/css :numeric-input) + :class (stl/css :numeric-input) :value (if all-equal? (:rx values) nil)}]] @@ -497,7 +497,7 @@ {:placeholder "--" :min 0 :on-change on-radius-r1-change - :className (stl/css :numeric-input) + :class (stl/css :numeric-input) :value (:r1 values)}]] [:div {:class (stl/css :small-input) @@ -506,7 +506,7 @@ {:placeholder "--" :min 0 :on-change on-radius-r2-change - :className (stl/css :numeric-input) + :class (stl/css :numeric-input) :value (:r2 values)}]] [:div {:class (stl/css :small-input) @@ -515,7 +515,7 @@ {:placeholder "--" :min 0 :on-change on-radius-r4-change - :className (stl/css :numeric-input) + :class (stl/css :numeric-input) :value (:r4 values)}]] [:div {:class (stl/css :small-input) @@ -524,7 +524,7 @@ {:placeholder "--" :min 0 :on-change on-radius-r3-change - :className (stl/css :numeric-input) + :class (stl/css :numeric-input) :value (:r3 values)}]]])] [:button {:class (stl/css-case :radius-mode true :selected (= radius-mode :radius-4)) diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs b/frontend/src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs index b3a8072a06..ab65f806ad 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs @@ -12,8 +12,8 @@ [app.common.data.macros :as dm] [app.common.math :as mth] [app.common.uuid :as uuid] - [app.main.data.workspace.changes :as dch] [app.main.data.workspace.colors :as dc] + [app.main.data.workspace.shapes :as dwsh] [app.main.data.workspace.undo :as dwu] [app.main.store :as st] [app.main.ui.components.numeric-input :refer [numeric-input*]] @@ -73,7 +73,7 @@ (mf/use-fn (mf/deps ids index) (fn [] - (st/emit! (dch/update-shapes ids #(update % :shadow remove-shadow-by-index index))))) + (st/emit! (dwsh/update-shapes ids #(update % :shadow remove-shadow-by-index index))))) on-drop (mf/use-fn @@ -102,7 +102,7 @@ ([index attr update-ref] (fn [value] (when (mth/finite? value) - (st/emit! (dch/update-shapes ids #(assoc-in % [:shadow index attr] value))) + (st/emit! (dwsh/update-shapes ids #(assoc-in % [:shadow index attr] value))) (when-let [update-node (and update-ref (mf/ref-val update-ref))] (dom/set-value! update-node value)))))) @@ -110,7 +110,7 @@ (mf/use-fn (mf/deps ids index) (fn [color] - (st/emit! (dch/update-shapes + (st/emit! (dwsh/update-shapes ids #(assoc-in % [:shadow index :color] (d/without-nils color)))))) @@ -119,7 +119,7 @@ (mf/deps ids index value) (fn [_color _opacity] (when-not (string? (:color value)) - (st/emit! (dch/update-shapes + (st/emit! (dwsh/update-shapes ids #(assoc-in % [:shadow index :color] (dissoc (:color value) :id :file-id))))))) @@ -128,7 +128,7 @@ (mf/use-fn (mf/deps ids index) (fn [] - (st/emit! (dch/update-shapes ids #(update-in % [:shadow index :hidden] not))))) + (st/emit! (dwsh/update-shapes ids #(update-in % [:shadow index :hidden] not))))) on-toggle-open-shadow (fn [] @@ -139,7 +139,7 @@ (mf/deps ids index) (fn [event] (let [value (keyword event)] - (st/emit! (dch/update-shapes ids #(assoc-in % [:shadow index :style] value)))))) + (st/emit! (dwsh/update-shapes ids #(assoc-in % [:shadow index :style] value)))))) type-options [{:value "drop-shadow" :label (tr "workspace.options.shadow-options.drop-shadow")} {:value "inner-shadow" :label (tr "workspace.options.shadow-options.inner-shadow")}] @@ -268,7 +268,7 @@ (mf/use-fn (mf/deps ids) (fn [] - (st/emit! (dch/update-shapes ids #(dissoc % :shadow))))) + (st/emit! (dwsh/update-shapes ids #(dissoc % :shadow))))) handle-reorder (mf/use-fn diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs b/frontend/src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs index 11f1264286..7c4a5a500f 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs @@ -8,7 +8,7 @@ (:require-macros [app.main.style :as stl]) (:require [app.common.data :as d] - [app.main.data.workspace.changes :as dch] + [app.main.data.workspace.shapes :as dwsh] [app.main.store :as st] [app.main.ui.components.title-bar :refer [title-bar]] [app.main.ui.icons :as i] @@ -66,7 +66,7 @@ (fn [attr value] (let [update-fn (fn [shape] (assoc-in shape (concat [:svg-attrs] attr) value))] - (st/emit! (dch/update-shapes ids update-fn))))) + (st/emit! (dwsh/update-shapes ids update-fn))))) handle-delete (mf/use-fn @@ -81,7 +81,7 @@ (empty? (get-in shape [:svg-attrs :style])) (update :svg-attrs dissoc :style))] shape))] - (st/emit! (dch/update-shapes ids update-fn)))))] + (st/emit! (dwsh/update-shapes ids update-fn)))))] (when-not (empty? attrs) [:div {:class (stl/css :element-set)} diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/menus/text.cljs b/frontend/src/app/main/ui/workspace/sidebar/options/menus/text.cljs index 5fbb3b8407..88a14cff0e 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options/menus/text.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/options/menus/text.cljs @@ -10,8 +10,8 @@ [app.common.data :as d] [app.common.text :as txt] [app.common.uuid :as uuid] - [app.main.data.workspace.changes :as dch] [app.main.data.workspace.libraries :as dwl] + [app.main.data.workspace.shapes :as dwsh] [app.main.data.workspace.shortcuts :as sc] [app.main.data.workspace.texts :as dwt] [app.main.data.workspace.undo :as dwu] @@ -127,8 +127,8 @@ grow-type (keyword value)] (st/emit! (dwu/start-undo-transaction uid) - (dch/update-shapes ids #(assoc % :grow-type grow-type))) - ;; We asynchronously commit so every sychronous event is resolved first and inside the transaction + (dwsh/update-shapes ids #(assoc % :grow-type grow-type))) + ;; We asynchronously commit so every sychronous event is resolved first and inside the transaction (ts/schedule #(st/emit! (dwu/commit-undo-transaction uid)))) (when (some? on-blur) (on-blur))))] diff --git a/frontend/src/app/plugins/api.cljs b/frontend/src/app/plugins/api.cljs index 0b6cb731d6..0a18cb8bf5 100644 --- a/frontend/src/app/plugins/api.cljs +++ b/frontend/src/app/plugins/api.cljs @@ -14,7 +14,7 @@ [app.common.text :as txt] [app.common.types.shape :as cts] [app.common.uuid :as uuid] - [app.main.data.workspace.changes :as ch] + [app.main.data.changes :as ch] [app.main.data.workspace.groups :as dwg] [app.main.data.workspace.media :as dwm] [app.main.store :as st] diff --git a/frontend/src/app/plugins/shape.cljs b/frontend/src/app/plugins/shape.cljs index 7e100d8f73..c68c142eaa 100644 --- a/frontend/src/app/plugins/shape.cljs +++ b/frontend/src/app/plugins/shape.cljs @@ -18,7 +18,6 @@ [app.common.types.shape.radius :as ctsr] [app.common.uuid :as uuid] [app.main.data.workspace :as udw] - [app.main.data.workspace.changes :as dwc] [app.main.data.workspace.selection :as dws] [app.main.data.workspace.shape-layout :as dwsl] [app.main.data.workspace.shapes :as dwsh] @@ -118,25 +117,25 @@ :get #(-> % proxy->shape :name) :set (fn [self value] (let [id (obj/get self "$id")] - (st/emit! (dwc/update-shapes [id] #(assoc % :name value)))))} + (st/emit! (dwsh/update-shapes [id] #(assoc % :name value)))))} {:name "blocked" :get #(-> % proxy->shape :blocked boolean) :set (fn [self value] (let [id (obj/get self "$id")] - (st/emit! (dwc/update-shapes [id] #(assoc % :blocked value)))))} + (st/emit! (dwsh/update-shapes [id] #(assoc % :blocked value)))))} {:name "hidden" :get #(-> % proxy->shape :hidden boolean) :set (fn [self value] (let [id (obj/get self "$id")] - (st/emit! (dwc/update-shapes [id] #(assoc % :hidden value)))))} + (st/emit! (dwsh/update-shapes [id] #(assoc % :hidden value)))))} {:name "proportionLock" :get #(-> % proxy->shape :proportion-lock boolean) :set (fn [self value] (let [id (obj/get self "$id")] - (st/emit! (dwc/update-shapes [id] #(assoc % :proportion-lock value)))))} + (st/emit! (dwsh/update-shapes [id] #(assoc % :proportion-lock value)))))} {:name "constraintsHorizontal" :get #(-> % proxy->shape :constraints-h d/name) @@ -144,7 +143,7 @@ (let [id (obj/get self "$id") value (keyword value)] (when (contains? cts/horizontal-constraint-types value) - (st/emit! (dwc/update-shapes [id] #(assoc % :constraints-h value))))))} + (st/emit! (dwsh/update-shapes [id] #(assoc % :constraints-h value))))))} {:name "constraintsVertical" :get #(-> % proxy->shape :constraints-v d/name) @@ -152,7 +151,7 @@ (let [id (obj/get self "$id") value (keyword value)] (when (contains? cts/vertical-constraint-types value) - (st/emit! (dwc/update-shapes [id] #(assoc % :constraints-v value))))))} + (st/emit! (dwsh/update-shapes [id] #(assoc % :constraints-v value))))))} {:name "borderRadius" :get #(-> % proxy->shape :rx) @@ -161,8 +160,8 @@ shape (proxy->shape self)] (when (us/safe-int? value) (when (or (not (ctsr/has-radius? shape)) (ctsr/radius-4? shape)) - (st/emit! (dwc/update-shapes [id] ctsr/switch-to-radius-1))) - (st/emit! (dwc/update-shapes [id] #(ctsr/set-radius-1 % value))))))} + (st/emit! (dwsh/update-shapes [id] ctsr/switch-to-radius-1))) + (st/emit! (dwsh/update-shapes [id] #(ctsr/set-radius-1 % value))))))} {:name "borderRadiusTopLeft" :get #(-> % proxy->shape :r1) @@ -171,8 +170,8 @@ shape (proxy->shape self)] (when (us/safe-int? value) (when (or (not (ctsr/has-radius? shape)) (not (ctsr/radius-4? shape))) - (st/emit! (dwc/update-shapes [id] ctsr/switch-to-radius-4))) - (st/emit! (dwc/update-shapes [id] #(ctsr/set-radius-4 % :r1 value))))))} + (st/emit! (dwsh/update-shapes [id] ctsr/switch-to-radius-4))) + (st/emit! (dwsh/update-shapes [id] #(ctsr/set-radius-4 % :r1 value))))))} {:name "borderRadiusTopRight" :get #(-> % proxy->shape :r2) @@ -181,8 +180,8 @@ shape (proxy->shape self)] (when (us/safe-int? value) (when (or (not (ctsr/has-radius? shape)) (not (ctsr/radius-4? shape))) - (st/emit! (dwc/update-shapes [id] ctsr/switch-to-radius-4))) - (st/emit! (dwc/update-shapes [id] #(ctsr/set-radius-4 % :r2 value))))))} + (st/emit! (dwsh/update-shapes [id] ctsr/switch-to-radius-4))) + (st/emit! (dwsh/update-shapes [id] #(ctsr/set-radius-4 % :r2 value))))))} {:name "borderRadiusBottomRight" :get #(-> % proxy->shape :r3) @@ -191,8 +190,8 @@ shape (proxy->shape self)] (when (us/safe-int? value) (when (or (not (ctsr/has-radius? shape)) (not (ctsr/radius-4? shape))) - (st/emit! (dwc/update-shapes [id] ctsr/switch-to-radius-4))) - (st/emit! (dwc/update-shapes [id] #(ctsr/set-radius-4 % :r3 value))))))} + (st/emit! (dwsh/update-shapes [id] ctsr/switch-to-radius-4))) + (st/emit! (dwsh/update-shapes [id] #(ctsr/set-radius-4 % :r3 value))))))} {:name "borderRadiusBottomLeft" :get #(-> % proxy->shape :r4) @@ -201,15 +200,15 @@ shape (proxy->shape self)] (when (us/safe-int? value) (when (or (not (ctsr/has-radius? shape)) (not (ctsr/radius-4? shape))) - (st/emit! (dwc/update-shapes [id] ctsr/switch-to-radius-4))) - (st/emit! (dwc/update-shapes [id] #(ctsr/set-radius-4 % :r4 value))))))} + (st/emit! (dwsh/update-shapes [id] ctsr/switch-to-radius-4))) + (st/emit! (dwsh/update-shapes [id] #(ctsr/set-radius-4 % :r4 value))))))} {:name "opacity" :get #(-> % proxy->shape :opacity) :set (fn [self value] (let [id (obj/get self "$id")] (when (and (us/safe-number? value) (>= value 0) (<= value 1)) - (st/emit! (dwc/update-shapes [id] #(assoc % :opacity value))))))} + (st/emit! (dwsh/update-shapes [id] #(assoc % :opacity value))))))} {:name "blendMode" :get #(-> % proxy->shape :blend-mode (d/nilv :normal) d/name) @@ -217,7 +216,7 @@ (let [id (obj/get self "$id") value (keyword value)] (when (contains? cts/blend-modes value) - (st/emit! (dwc/update-shapes [id] #(assoc % :blend-mode value))))))} + (st/emit! (dwsh/update-shapes [id] #(assoc % :blend-mode value))))))} {:name "shadows" :get #(-> % proxy->shape :shadow array-to-js) @@ -236,13 +235,13 @@ :hidden false} (utils/from-js val #{:style :type}))) value)] - (st/emit! (dwc/update-shapes [id] #(assoc % :shadow value)))))} + (st/emit! (dwsh/update-shapes [id] #(assoc % :shadow value)))))} {:name "blur" :get #(-> % proxy->shape :blur utils/to-js) :set (fn [self value] (if (nil? value) - (st/emit! (dwc/update-shapes [id] #(dissoc % :blur))) + (st/emit! (dwsh/update-shapes [id] #(dissoc % :blur))) (let [id (obj/get self "$id") value (d/patch-object @@ -251,14 +250,14 @@ :value 4 :hidden false} (utils/from-js value))] - (st/emit! (dwc/update-shapes [id] #(assoc % :blur value))))))} + (st/emit! (dwsh/update-shapes [id] #(assoc % :blur value))))))} {:name "exports" :get #(-> % proxy->shape :exports array-to-js) :set (fn [self value] (let [id (obj/get self "$id") value (mapv #(utils/from-js %) value)] - (st/emit! (dwc/update-shapes [id] #(assoc % :exports value)))))} + (st/emit! (dwsh/update-shapes [id] #(assoc % :exports value)))))} ;; Geometry properties {:name "x" @@ -354,14 +353,14 @@ :set (fn [self value] (let [id (obj/get self "$id") value (mapv #(utils/from-js %) value)] - (st/emit! (dwc/update-shapes [id] #(assoc % :fills value)))))} + (st/emit! (dwsh/update-shapes [id] #(assoc % :fills value)))))} {:name "strokes" :get #(-> % proxy->shape :strokes array-to-js) :set (fn [self value] (let [id (obj/get self "$id") value (mapv #(utils/from-js % #{:stroke-style :stroke-alignment}) value)] - (st/emit! (dwc/update-shapes [id] #(assoc % :strokes value)))))} + (st/emit! (dwsh/update-shapes [id] #(assoc % :strokes value)))))} {:name "layoutChild" :get @@ -421,7 +420,7 @@ :set (fn [self value] (let [id (obj/get self "$id") value (mapv #(utils/from-js %) value)] - (st/emit! (dwc/update-shapes [id] #(assoc % :grids value)))))} + (st/emit! (dwsh/update-shapes [id] #(assoc % :grids value)))))} {:name "horizontalSizing" :get #(-> % proxy->shape :layout-item-h-sizing (d/nilv :fix) d/name) @@ -463,7 +462,7 @@ ted/import-content ted/create-editor-state)] (st/emit! (dwt/update-editor-state shape editor)))) - (st/emit! (dwc/update-shapes [id] #(txt/change-text % value)))))} + (st/emit! (dwsh/update-shapes [id] #(txt/change-text % value)))))} {:name "growType" :get #(-> % proxy->shape :grow-type d/name) @@ -472,7 +471,7 @@ (let [id (obj/get self "$id") value (keyword value)] (when (contains? #{:auto-width :auto-height :fixed} value) - (st/emit! (dwc/update-shapes [id] #(assoc % :grow-type value))))))} + (st/emit! (dwsh/update-shapes [id] #(assoc % :grow-type value))))))} {:name "fontId" :get #(-> % proxy->shape text-props :font-id) diff --git a/frontend/src/app/util/object.cljs b/frontend/src/app/util/object.cljs index 74af901023..620303adda 100644 --- a/frontend/src/app/util/object.cljs +++ b/frontend/src/app/util/object.cljs @@ -8,7 +8,10 @@ "A collection of helpers for work with javascript objects." (:refer-clojure :exclude [set! new get get-in merge clone contains? array? into-array]) (:require - [cuerdas.core :as str])) + [cuerdas.core :as str] + ;; FIXME: we use goog.string here for performance reasons, pending + ;; to apply this optimizations directly to cuerdas. + [goog.string :as gstr])) (defn array? [o] @@ -105,28 +108,51 @@ [obj prop] (js* "~{} in ~{}" prop obj)) +(defn- transform-prop-key + [s] + (let [result (js* "~{}.replace(\":\", \"-\").replace(/-./g, x=>x[1].toUpperCase())", s)] + (if ^boolean (gstr/startsWith s "-") + (gstr/capitalize result) + result))) + +(defn prop-key-fn + [k] + (when (string? k) + (cond + (or (= k "class") + (= k "class-name")) + "className" + + (gstr/startsWith k "data-") + k + + :else + (transform-prop-key k)))) + (defn map->obj - [x] - (cond - (nil? x) - nil + "A simplified version of clj->js with focus on performance" + ([x] (map->obj x identity)) + ([x ^function key-fn] + (cond + (nil? x) + nil - (keyword? x) - (name x) + (keyword? x) + (name x) - (map? x) - (reduce-kv (fn [m k v] - (let [k (if (keyword? k) (name k) k)] - (unchecked-set m k (^function map->obj v)) - m)) - #js {} - x) + (map? x) + (reduce-kv (fn [m k v] + (let [k (if (keyword? k) (name k) k)] + (unchecked-set m (key-fn k) (map->obj v key-fn)) + m)) + #js {} + x) - (coll? x) - (reduce (fn [arr v] - (.push arr v) - arr) - (array) - x) + (coll? x) + (reduce (fn [arr v] + (.push arr v) + arr) + (array) + x) - :else x)) + :else x))) diff --git a/frontend/src/debug.cljs b/frontend/src/debug.cljs index 7f5c6a562d..5ff02f75f7 100644 --- a/frontend/src/debug.cljs +++ b/frontend/src/debug.cljs @@ -17,11 +17,11 @@ [app.common.uri :as u] [app.common.uuid :as uuid] [app.config :as cf] + [app.main.data.changes :as dwc] [app.main.data.dashboard.shortcuts] [app.main.data.preview :as dp] [app.main.data.viewer.shortcuts] [app.main.data.workspace :as dw] - [app.main.data.workspace.changes :as dch] [app.main.data.workspace.path.shortcuts] [app.main.data.workspace.selection :as dws] [app.main.data.workspace.shortcuts] @@ -52,8 +52,6 @@ (def debug-exclude-events #{:app.main.data.workspace.notifications/handle-pointer-update :app.main.data.workspace.notifications/handle-pointer-send - :app.main.data.workspace.persistence/update-persistence-status - :app.main.data.workspace.changes/update-indices :app.main.data.websocket/send-message :app.main.data.workspace.selection/change-hover-state}) @@ -303,7 +301,7 @@ (let [file-id (:current-file-id @st/state) changes (t/decode-str changes*)] - (st/emit! (dch/commit-changes {:redo-changes changes + (st/emit! (dwc/commit-changes {:redo-changes changes :undo-changes [] :save-undo? true :file-id file-id})))) diff --git a/frontend/test/frontend_tests/basic_shapes_test.cljs b/frontend/test/frontend_tests/basic_shapes_test.cljs index 9204ab29a8..8f7700120a 100644 --- a/frontend/test/frontend_tests/basic_shapes_test.cljs +++ b/frontend/test/frontend_tests/basic_shapes_test.cljs @@ -3,12 +3,13 @@ ;; file, You can obtain one at http://mozilla.org/MPL/2.0/. ;; ;; Copyright (c) KALEIDOS INC + (ns frontend-tests.basic-shapes-test (:require [app.common.test-helpers.files :as cthf] [app.common.test-helpers.ids-map :as cthi] [app.common.test-helpers.shapes :as cths] - [app.main.data.workspace.changes :as dch] + [app.main.data.workspace.shapes :as dwsh] [cljs.test :as t :include-macros true] [frontend-tests.helpers.state :as ths])) @@ -21,12 +22,12 @@ (-> (cthf/sample-file :file1 :page-label :page1) (cths/add-sample-shape :shape1))) - ;; ==== Action + ;; ==== Action events - [(dch/update-shapes [(cthi/id :shape1)] - #(assoc % :fills - (cths/sample-fills-color :fill-color - "#fabada")))]] + [(dwsh/update-shapes [(cthi/id :shape1)] + #(assoc % :fills + (cths/sample-fills-color :fill-color + "#fabada")))]] (ths/run-store store done events @@ -40,7 +41,7 @@ fills' (:fills shape1') fill' (first fills')] - ;; ==== Check + ;; ==== Check (t/is (some? shape1')) (t/is (= (count fills') 1)) (t/is (= (:fill-color fill') "#fabada")) diff --git a/frontend/test/frontend_tests/helpers/events.cljs b/frontend/test/frontend_tests/helpers/events.cljs index 21353f768c..a837fb26a4 100644 --- a/frontend/test/frontend_tests/helpers/events.cljs +++ b/frontend/test/frontend_tests/helpers/events.cljs @@ -30,7 +30,7 @@ event occurs, and then call the function with the final state at this point." [state done completed-cb] - (let [store (ptk/store {:state state :on-error on-error}) + (let [store (ptk/store {:state state :on-error on-error}) stream (ptk/input-stream store) stream (->> stream (rx/take-until (rx/filter #(= :the/end %) stream)) diff --git a/frontend/test/frontend_tests/helpers_shapes_test.cljs b/frontend/test/frontend_tests/helpers_shapes_test.cljs index 929b4301fb..e8169a54fc 100644 --- a/frontend/test/frontend_tests/helpers_shapes_test.cljs +++ b/frontend/test/frontend_tests/helpers_shapes_test.cljs @@ -38,21 +38,3 @@ {:name "Rect 1"})) shape (thp/get-shape state :shape1)] (t/is (= (:name shape) "Rect 1"))))) - -(t/deftest asynctest - (t/testing "asynctest" - (t/async done - (let [state {} - color {:color clr/white} - - store (the/prepare-store state done - (fn [new-state] - (t/is (= (get-in new-state [:workspace-data - :recent-colors]) - [color]))))] - - (ptk/emit! - store - (dwl/add-recent-color color) - :the/end))))) - From 7c64ed84f1ed495133b707e2c3767e70f1d69341 Mon Sep 17 00:00:00 2001 From: Pablo Alba Date: Mon, 3 Jun 2024 19:52:00 +0200 Subject: [PATCH 037/476] :bug: Fix swap slot is not removed on parent detach --- frontend/src/app/main/data/workspace/libraries_helpers.cljs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/frontend/src/app/main/data/workspace/libraries_helpers.cljs b/frontend/src/app/main/data/workspace/libraries_helpers.cljs index ff03da46e9..4c3b9d803f 100644 --- a/frontend/src/app/main/data/workspace/libraries_helpers.cljs +++ b/frontend/src/app/main/data/workspace/libraries_helpers.cljs @@ -233,6 +233,10 @@ ; If the initial shape was component-root, first level subinstances are converted in top instances (pcb/update-shapes [shape-id] #(assoc % :component-root true)) + component-root? + ; If the initial shape was component-root, first level subinstances can't have swap-slot + (pcb/update-shapes [shape-id] ctk/remove-swap-slot) + :always ; Near shape-refs need to be advanced one level (generate-advance-nesting-level nil container libraries (:id shape))) From 5aa62ef1dd7245d9925afe5eb957d9e642b90fa2 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Mon, 3 Jun 2024 13:57:33 +0200 Subject: [PATCH 038/476] :sparkles: Add email blacklist mechanism --- backend/src/app/auth.clj | 18 +------ backend/src/app/auth/oidc.clj | 10 +++- backend/src/app/config.clj | 5 ++ backend/src/app/email/blacklist.clj | 47 +++++++++++++++++ backend/src/app/email/whitelist.clj | 51 +++++++++++++++++++ backend/src/app/main.clj | 15 +++++- backend/src/app/rpc/commands/auth.clj | 19 ++++--- .../test/backend_tests/rpc_profile_test.clj | 18 ++++--- frontend/src/app/main/ui/auth/login.cljs | 1 - frontend/src/app/main/ui/auth/register.cljs | 3 ++ 10 files changed, 150 insertions(+), 37 deletions(-) create mode 100644 backend/src/app/email/blacklist.clj create mode 100644 backend/src/app/email/whitelist.clj diff --git a/backend/src/app/auth.clj b/backend/src/app/auth.clj index 5bde8aa79b..fc6d254810 100644 --- a/backend/src/app/auth.clj +++ b/backend/src/app/auth.clj @@ -6,9 +6,7 @@ (ns app.auth (:require - [app.config :as cf] - [buddy.hashers :as hashers] - [cuerdas.core :as str])) + [buddy.hashers :as hashers])) (def default-params {:alg :argon2id @@ -27,17 +25,3 @@ (catch Throwable _ {:update false :valid false}))) - -(defn email-domain-in-whitelist? - "Returns true if email's domain is in the given whitelist or if - given whitelist is an empty string." - ([email] - (let [domains (cf/get :registration-domain-whitelist)] - (email-domain-in-whitelist? domains email))) - ([domains email] - (if (or (nil? domains) (empty? domains)) - true - (let [[_ candidate] (-> (str/lower email) - (str/split #"@" 2))] - (contains? domains candidate))))) - diff --git a/backend/src/app/auth/oidc.clj b/backend/src/app/auth/oidc.clj index 3caeb98775..a8434a23a0 100644 --- a/backend/src/app/auth/oidc.clj +++ b/backend/src/app/auth/oidc.clj @@ -7,7 +7,6 @@ (ns app.auth.oidc "OIDC client implementation." (:require - [app.auth :as auth] [app.auth.oidc.providers :as-alias providers] [app.common.data :as d] [app.common.data.macros :as dm] @@ -17,6 +16,8 @@ [app.common.uri :as u] [app.config :as cf] [app.db :as db] + [app.email.blacklist :as email.blacklist] + [app.email.whitelist :as email.whitelist] [app.http.client :as http] [app.http.session :as session] [app.loggers.audit :as audit] @@ -570,7 +571,12 @@ (->> (redirect-to-verify-token token) (sxf request)))) - (not (auth/email-domain-in-whitelist? (:email info))) + (and (email.blacklist/enabled? cfg) + (email.blacklist/contains? cfg (:email info))) + (redirect-with-error "email-domain-not-allowed") + + (and (email.whitelist/enabled? cfg) + (not (email.whitelist/contains? cfg (:email info)))) (redirect-with-error "email-domain-not-allowed") :else diff --git a/backend/src/app/config.clj b/backend/src/app/config.clj index 5e490b6766..1ca6373968 100644 --- a/backend/src/app/config.clj +++ b/backend/src/app/config.clj @@ -101,6 +101,9 @@ (s/def ::audit-log-archive-uri ::us/string) (s/def ::audit-log-http-handler-concurrency ::us/integer) +(s/def ::email-domain-blacklist ::fs/path) +(s/def ::email-domain-whitelist ::fs/path) + (s/def ::deletion-delay ::dt/duration) (s/def ::admins ::us/set-of-valid-emails) @@ -230,6 +233,8 @@ ::database-max-pool-size ::default-blob-version ::default-rpc-rlimit + ::email-domain-blacklist + ::email-domain-whitelist ::error-report-webhook ::default-executor-parallelism ::scheduled-executor-parallelism diff --git a/backend/src/app/email/blacklist.clj b/backend/src/app/email/blacklist.clj new file mode 100644 index 0000000000..ca80afb6c9 --- /dev/null +++ b/backend/src/app/email/blacklist.clj @@ -0,0 +1,47 @@ +;; This Source Code Form is subject to the terms of the Mozilla Public +;; License, v. 2.0. If a copy of the MPL was not distributed with this +;; file, You can obtain one at http://mozilla.org/MPL/2.0/. +;; +;; Copyright (c) KALEIDOS INC + +(ns app.email.blacklist + "Email blacklist provider" + (:refer-clojure :exclude [contains?]) + (:require + [app.common.logging :as l] + [app.config :as cf] + [app.email :as-alias email] + [clojure.core :as c] + [clojure.java.io :as io] + [cuerdas.core :as str] + [integrant.core :as ig])) + +(defmethod ig/init-key ::email/blacklist + [_ _] + (when (c/contains? cf/flags :email-blacklist) + (try + (let [path (cf/get :email-domain-blacklist) + result (with-open [reader (io/reader path)] + (reduce (fn [result line] + (if (str/starts-with? line "#") + result + (conj result (-> line str/trim str/lower)))) + #{} + (line-seq reader)))] + (l/inf :hint "initializing email blacklist" :domains (count result)) + (not-empty result)) + + (catch Throwable cause + (l/wrn :hint "unexpected exception on initializing email blacklist" + :cause cause))))) + +(defn contains? + "Check if email is in the blacklist." + [{:keys [::email/blacklist]} email] + (let [[_ domain] (str/split email "@" 2)] + (c/contains? blacklist (str/lower domain)))) + +(defn enabled? + "Check if the blacklist is enabled" + [{:keys [::email/blacklist]}] + (some? blacklist)) diff --git a/backend/src/app/email/whitelist.clj b/backend/src/app/email/whitelist.clj new file mode 100644 index 0000000000..d6fbd0c853 --- /dev/null +++ b/backend/src/app/email/whitelist.clj @@ -0,0 +1,51 @@ +;; This Source Code Form is subject to the terms of the Mozilla Public +;; License, v. 2.0. If a copy of the MPL was not distributed with this +;; file, You can obtain one at http://mozilla.org/MPL/2.0/. +;; +;; Copyright (c) KALEIDOS INC + +(ns app.email.whitelist + "Email whitelist provider" + (:refer-clojure :exclude [contains?]) + (:require + [app.common.logging :as l] + [app.config :as cf] + [app.email :as-alias email] + [clojure.core :as c] + [clojure.java.io :as io] + [cuerdas.core :as str] + [integrant.core :as ig])) + +(defmethod ig/init-key ::email/whitelist + [_ _] + (when (c/contains? cf/flags :email-whitelist) + (try + (let [path (cf/get :email-domain-whitelist) + result (with-open [reader (io/reader path)] + (reduce (fn [result line] + (if (str/starts-with? line "#") + result + (conj result (-> line str/trim str/lower)))) + #{} + (line-seq reader))) + + ;; backward comapatibility with previous way to set a + ;; whitelist for email domains + result (into result (cf/get :registration-domain-whitelist))] + + (l/inf :hint "initializing email whitelist" :domains (count result)) + (not-empty result)) + (catch Throwable cause + (l/wrn :hint "unexpected exception on initializing email whitelist" + :cause cause))))) + +(defn contains? + "Check if email is in the whitelist." + [{:keys [::email/whitelist]} email] + (let [[_ domain] (str/split email "@" 2)] + (c/contains? whitelist (str/lower domain)))) + +(defn enabled? + "Check if the whitelist is enabled" + [{:keys [::email/whitelist]}] + (some? whitelist)) diff --git a/backend/src/app/main.clj b/backend/src/app/main.clj index 023783828d..7e963bb169 100644 --- a/backend/src/app/main.clj +++ b/backend/src/app/main.clj @@ -267,7 +267,9 @@ :github (ig/ref ::oidc.providers/github) :gitlab (ig/ref ::oidc.providers/gitlab) :oidc (ig/ref ::oidc.providers/generic)} - ::session/manager (ig/ref ::session/manager)} + ::session/manager (ig/ref ::session/manager) + ::email/blacklist (ig/ref ::email/blacklist) + ::email/whitelist (ig/ref ::email/whitelist)} :app.http/router {::session/manager (ig/ref ::session/manager) @@ -322,7 +324,10 @@ ::rpc/climit (ig/ref ::rpc/climit) ::rpc/rlimit (ig/ref ::rpc/rlimit) ::setup/templates (ig/ref ::setup/templates) - ::setup/props (ig/ref ::setup/props)} + ::setup/props (ig/ref ::setup/props) + + ::email/blacklist (ig/ref ::email/blacklist) + ::email/whitelist (ig/ref ::email/whitelist)} :app.rpc.doc/routes {:methods (ig/ref :app.rpc/methods)} @@ -356,6 +361,12 @@ :run-webhook (ig/ref ::webhooks/run-webhook-handler)}} + ::email/blacklist + {} + + ::email/whitelist + {} + ::email/sendmail {::email/host (cf/get :smtp-host) ::email/port (cf/get :smtp-port) diff --git a/backend/src/app/rpc/commands/auth.clj b/backend/src/app/rpc/commands/auth.clj index 586c60d1cc..4073de2c39 100644 --- a/backend/src/app/rpc/commands/auth.clj +++ b/backend/src/app/rpc/commands/auth.clj @@ -6,7 +6,6 @@ (ns app.rpc.commands.auth (:require - [app.auth :as auth] [app.common.data :as d] [app.common.data.macros :as dm] [app.common.exceptions :as ex] @@ -17,6 +16,8 @@ [app.config :as cf] [app.db :as db] [app.email :as eml] + [app.email.blacklist :as email.blacklist] + [app.email.whitelist :as email.whitelist] [app.http.session :as session] [app.loggers.audit :as audit] [app.rpc :as-alias rpc] @@ -186,8 +187,14 @@ :code :email-does-not-match-invitation :hint "email should match the invitation")))) - (when-not (auth/email-domain-in-whitelist? (:email params)) - (ex/raise :type :validation + (when (and (email.blacklist/enabled? cfg) + (email.blacklist/contains? cfg (:email params))) + (ex/raise :type :restriction + :code :email-domain-is-not-allowed)) + + (when (and (email.whitelist/enabled? cfg) + (not (email.whitelist/contains? cfg (:email params)))) + (ex/raise :type :restriction :code :email-domain-is-not-allowed)) ;; Perform a basic validation of email & password @@ -423,10 +430,8 @@ ::doc/added "1.15" ::sm/params schema:register-profile ::climit/id :auth/global} - [{:keys [::db/pool] :as cfg} params] - (db/with-atomic [conn pool] - (-> (assoc cfg ::db/conn conn) - (register-profile params)))) + [cfg params] + (db/tx-run! cfg register-profile params)) ;; ---- COMMAND: Request Profile Recovery diff --git a/backend/test/backend_tests/rpc_profile_test.clj b/backend/test/backend_tests/rpc_profile_test.clj index 95a2758746..1777fecb1a 100644 --- a/backend/test/backend_tests/rpc_profile_test.clj +++ b/backend/test/backend_tests/rpc_profile_test.clj @@ -6,10 +6,11 @@ (ns backend-tests.rpc-profile-test (:require - [app.auth :as auth] [app.common.uuid :as uuid] [app.config :as cf] [app.db :as db] + [app.email.blacklist :as email.blacklist] + [app.email.whitelist :as email.whitelist] [app.rpc :as-alias rpc] [app.rpc.commands.profile :as profile] [app.tokens :as tokens] @@ -177,14 +178,15 @@ (let [result (:result out)] (t/is (= uuid/zero (:id result))))))) -(t/deftest registration-domain-whitelist - (let [whitelist #{"gmail.com" "hey.com" "ya.ru"}] - (t/testing "allowed email domain" - (t/is (true? (auth/email-domain-in-whitelist? whitelist "username@ya.ru"))) - (t/is (true? (auth/email-domain-in-whitelist? #{} "username@somedomain.com")))) +(t/deftest email-blacklist-1 + (t/is (false? (email.blacklist/enabled? th/*system*))) + (t/is (true? (email.blacklist/enabled? (assoc th/*system* :app.email/blacklist [])))) + (t/is (true? (email.blacklist/contains? (assoc th/*system* :app.email/blacklist #{"foo.com"}) "AA@FOO.COM")))) - (t/testing "not allowed email domain" - (t/is (false? (auth/email-domain-in-whitelist? whitelist "username@somedomain.com")))))) +(t/deftest email-whitelist-1 + (t/is (false? (email.whitelist/enabled? th/*system*))) + (t/is (true? (email.whitelist/enabled? (assoc th/*system* :app.email/whitelist [])))) + (t/is (true? (email.whitelist/contains? (assoc th/*system* :app.email/whitelist #{"foo.com"}) "AA@FOO.COM")))) (t/deftest prepare-register-and-register-profile-1 (let [data {::th/type :prepare-register-profile diff --git a/frontend/src/app/main/ui/auth/login.cljs b/frontend/src/app/main/ui/auth/login.cljs index a3267a3d46..ec276a6b3d 100644 --- a/frontend/src/app/main/ui/auth/login.cljs +++ b/frontend/src/app/main/ui/auth/login.cljs @@ -100,7 +100,6 @@ (= :ldap-not-initialized (:code cause))) (st/emit! (msg/error (tr "errors.ldap-disabled"))) - (and (= :restriction (:type cause)) (= :admin-only-profile (:code cause))) (reset! error (tr "errors.profile-blocked")) diff --git a/frontend/src/app/main/ui/auth/register.cljs b/frontend/src/app/main/ui/auth/register.cljs index 61066fb811..230a8355ad 100644 --- a/frontend/src/app/main/ui/auth/register.cljs +++ b/frontend/src/app/main/ui/auth/register.cljs @@ -58,6 +58,9 @@ [:restriction :registration-disabled] (st/emit! (msg/error (tr "errors.registration-disabled"))) + [:restriction :email-domain-is-not-allowed] + (st/emit! (msg/error (tr "errors.email-domain-not-allowed"))) + [:validation :email-as-password] (swap! form assoc-in [:errors :password] {:message "errors.email-as-password"}) From 54c506100da7a553ec6fa9064594ee0b6409f378 Mon Sep 17 00:00:00 2001 From: Pablo Alba Date: Tue, 4 Jun 2024 10:53:53 +0200 Subject: [PATCH 039/476] :bug: Fix swap slot is not removed on parent detach (2) --- frontend/src/app/main/data/workspace/libraries_helpers.cljs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/frontend/src/app/main/data/workspace/libraries_helpers.cljs b/frontend/src/app/main/data/workspace/libraries_helpers.cljs index 4c3b9d803f..35585af2e3 100644 --- a/frontend/src/app/main/data/workspace/libraries_helpers.cljs +++ b/frontend/src/app/main/data/workspace/libraries_helpers.cljs @@ -233,8 +233,8 @@ ; If the initial shape was component-root, first level subinstances are converted in top instances (pcb/update-shapes [shape-id] #(assoc % :component-root true)) - component-root? - ; If the initial shape was component-root, first level subinstances can't have swap-slot + :always + ; First level subinstances of a detached component can't have swap-slot (pcb/update-shapes [shape-id] ctk/remove-swap-slot) :always From b6b6822c31fedf80c24b84b279d9f4b87c65d1e7 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Tue, 4 Jun 2024 11:31:46 +0200 Subject: [PATCH 040/476] :sparkles: Abbreviate profile name on emails --- backend/resources/app/email/change-email/en.html | 4 ++-- backend/resources/app/email/change-email/en.txt | 2 +- backend/resources/app/email/feedback/en.html | 4 ++-- backend/resources/app/email/invite-to-team/en.html | 4 ++-- backend/resources/app/email/invite-to-team/en.txt | 2 +- backend/resources/app/email/password-recovery/en.html | 4 ++-- backend/resources/app/email/password-recovery/en.txt | 2 +- backend/resources/app/email/register/en.html | 2 +- backend/resources/app/email/register/en.txt | 2 +- 9 files changed, 13 insertions(+), 13 deletions(-) diff --git a/backend/resources/app/email/change-email/en.html b/backend/resources/app/email/change-email/en.html index ad95fa6414..d63efa72f7 100644 --- a/backend/resources/app/email/change-email/en.html +++ b/backend/resources/app/email/change-email/en.html @@ -168,7 +168,7 @@ @@ -475,4 +475,4 @@ - \ No newline at end of file + diff --git a/backend/resources/app/email/change-email/en.txt b/backend/resources/app/email/change-email/en.txt index 0a688cb0dc..09d6e84a56 100644 --- a/backend/resources/app/email/change-email/en.txt +++ b/backend/resources/app/email/change-email/en.txt @@ -1,4 +1,4 @@ -Hello {{name}}! +Hello {{name|abbreviate:25}}! We received a request to change your current email to {{ pending-email }}. diff --git a/backend/resources/app/email/feedback/en.html b/backend/resources/app/email/feedback/en.html index 478a3cc3cf..6de9cda624 100644 --- a/backend/resources/app/email/feedback/en.html +++ b/backend/resources/app/email/feedback/en.html @@ -11,7 +11,7 @@ {% if profile %} Name: - {{profile.fullname}} + {{profile.fullname|abbreviate:25}}
@@ -34,7 +34,7 @@

Subject:
- {{subject}} + {{subject|abbreviate:300}}

diff --git a/backend/resources/app/email/invite-to-team/en.html b/backend/resources/app/email/invite-to-team/en.html index 881af47f43..93763c106c 100644 --- a/backend/resources/app/email/invite-to-team/en.html +++ b/backend/resources/app/email/invite-to-team/en.html @@ -173,7 +173,7 @@

@@ -465,4 +465,4 @@ - \ No newline at end of file + diff --git a/backend/resources/app/email/invite-to-team/en.txt b/backend/resources/app/email/invite-to-team/en.txt index ea85c084ff..55e61d8e23 100644 --- a/backend/resources/app/email/invite-to-team/en.txt +++ b/backend/resources/app/email/invite-to-team/en.txt @@ -1,6 +1,6 @@ Hello! -{{invited-by}} has invited you to join the team “{{ team }}”. +{{invited-by|abbreviate:25}} has invited you to join the team “{{ team|abbreviate:25 }}”. Accept invitation using this link: diff --git a/backend/resources/app/email/password-recovery/en.html b/backend/resources/app/email/password-recovery/en.html index 14fe1a5f2d..ed18ef12cf 100644 --- a/backend/resources/app/email/password-recovery/en.html +++ b/backend/resources/app/email/password-recovery/en.html @@ -168,7 +168,7 @@
-
Hello {{name}}!
+
Hello {{name|abbreviate:25}}!
-
{{invited-by}} has invited you to join the team “{{ team }}”.
+
{{invited-by|abbreviate:25}} has invited you to join the team “{{ team|abbreviate:25 }}”.
@@ -470,4 +470,4 @@ - \ No newline at end of file + diff --git a/backend/resources/app/email/password-recovery/en.txt b/backend/resources/app/email/password-recovery/en.txt index ad314b41d4..3bac8f815f 100644 --- a/backend/resources/app/email/password-recovery/en.txt +++ b/backend/resources/app/email/password-recovery/en.txt @@ -1,4 +1,4 @@ -Hello {{name}}! +Hello {{name|abbreviate:25}}! We received a request to reset your password. Click the link below to choose a new one: diff --git a/backend/resources/app/email/register/en.html b/backend/resources/app/email/register/en.html index 4a425b69f5..3f058b184b 100644 --- a/backend/resources/app/email/register/en.html +++ b/backend/resources/app/email/register/en.html @@ -168,7 +168,7 @@
-
Hello {{name}}!
+
Hello {{name|abbreviate:25}}!
diff --git a/backend/resources/app/email/register/en.txt b/backend/resources/app/email/register/en.txt index 41a9bd8d9f..c38454ccde 100644 --- a/backend/resources/app/email/register/en.txt +++ b/backend/resources/app/email/register/en.txt @@ -1,4 +1,4 @@ -Hello {{name}}! +Hello {{name|abbreviate:25}}! Thanks for signing up for your Penpot account! Please verify your email using the link below and get started building mockups and prototypes today! From 5872bf024c3adafd52853cd3ed694269b1ad46b6 Mon Sep 17 00:00:00 2001 From: Pablo Alba Date: Tue, 4 Jun 2024 12:03:50 +0200 Subject: [PATCH 041/476] :sparkles: Add test for remove swap slot on detach parent --- .../logic/comp_remove_swap_slots_test.cljc | 33 ++++++++++++++++--- 1 file changed, 29 insertions(+), 4 deletions(-) diff --git a/common/test/common_tests/logic/comp_remove_swap_slots_test.cljc b/common/test/common_tests/logic/comp_remove_swap_slots_test.cljc index 5077b6fde2..e40dd2f1a5 100644 --- a/common/test/common_tests/logic/comp_remove_swap_slots_test.cljc +++ b/common/test/common_tests/logic/comp_remove_swap_slots_test.cljc @@ -743,10 +743,6 @@ (t/deftest test-swap-outside-component-doesnt-have-swap-slot (let [;; ==== Setup file (setup-file) - - page (thf/current-page file) - blue1 (ths/get-shape file :blue1) - ;; ==== Action file' (-> file @@ -761,3 +757,32 @@ ;; blue-copy1 has not swap-id (t/is (some? blue-copy1')) (t/is (nil? (ctk/get-swap-slot blue-copy1'))))) + + +(t/deftest test-remove-swap-slot-detach + (let [;; ==== Setup + file (setup-file) + + page (thf/current-page file) + green-copy (ths/get-shape file :green-copy) + blue2 (ths/get-shape file :blue2) + + ;; ==== Action + changes (cll/generate-detach-component (pcb/empty-changes) + (:id green-copy) + (:data file) + (:id page) + {(:id file) file}) + file' (thf/apply-changes file changes) + + ;; ==== Get + blue2' (ths/get-shape file' :blue2)] + + ;; ==== Check + + ;; blue2 had swap-id before move + (t/is (some? (ctk/get-swap-slot blue2))) + + ;; blue2' has not swap-id after move + (t/is (some? blue2')) + (t/is (nil? (ctk/get-swap-slot blue2'))))) From 3209511557dcf4fc445e9e8fa8ad95e3ebd11bbd Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Thu, 30 May 2024 14:34:08 +0200 Subject: [PATCH 042/476] :sparkles: Add support for colors and typographies --- .../app/main/data/workspace/libraries.cljs | 38 ++-- .../src/app/main/data/workspace/texts.cljs | 42 ++-- frontend/src/app/plugins/library.cljs | 205 +++++++++++++++++- frontend/src/app/plugins/utils.cljs | 4 +- 4 files changed, 242 insertions(+), 47 deletions(-) diff --git a/frontend/src/app/main/data/workspace/libraries.cljs b/frontend/src/app/main/data/workspace/libraries.cljs index 0fe30fe317..39b8f526dd 100644 --- a/frontend/src/app/main/data/workspace/libraries.cljs +++ b/frontend/src/app/main/data/workspace/libraries.cljs @@ -106,24 +106,28 @@ (assoc item :path path :name name)))) (defn add-color - [color] - (let [id (uuid/next) - color (-> color - (assoc :id id) - (assoc :name (or (get-in color [:image :name]) - (:color color) - (uc/gradient-type->string (get-in color [:gradient :type])))))] - (dm/assert! ::ctc/color color) - (ptk/reify ::add-color - ev/Event - (-data [_] color) + ([color] + (add-color color nil)) - ptk/WatchEvent - (watch [it _ _] - (let [changes (-> (pcb/empty-changes it) - (pcb/add-color color))] - (rx/of #(assoc-in % [:workspace-local :color-for-rename] id) - (dch/commit-changes changes))))))) + ([color {:keys [rename?] :or {rename? true}}] + (let [color (-> color + (update :id #(or % (uuid/next))) + (assoc :name (or (get-in color [:image :name]) + (:color color) + (uc/gradient-type->string (get-in color [:gradient :type])))))] + (dm/assert! ::ctc/color color) + (ptk/reify ::add-color + ev/Event + (-data [_] color) + + ptk/WatchEvent + (watch [it _ _] + (let [changes (-> (pcb/empty-changes it) + (pcb/add-color color))] + (rx/of + (when rename? + (fn [state] (assoc-in state [:workspace-local :color-for-rename] (:id color)))) + (dch/commit-changes changes)))))))) (defn add-recent-color [color] diff --git a/frontend/src/app/main/data/workspace/texts.cljs b/frontend/src/app/main/data/workspace/texts.cljs index 65ceb38fd0..d1e55e027b 100644 --- a/frontend/src/app/main/data/workspace/texts.cljs +++ b/frontend/src/app/main/data/workspace/texts.cljs @@ -599,29 +599,32 @@ (rx/map #(update-attrs % attrs))) (rx/of (dwu/commit-undo-transaction undo-id))))))) - (defn apply-typography "A higher level event that has the resposability of to apply the specified typography to the selected shapes." - [typography file-id] - (ptk/reify ::apply-typography - ptk/WatchEvent - (watch [_ state _] - (let [editor-state (:workspace-editor-state state) - selected (wsh/lookup-selected state) - attrs (-> typography - (assoc :typography-ref-file file-id) - (assoc :typography-ref-id (:id typography)) - (dissoc :id :name)) - undo-id (js/Symbol)] + ([typography file-id] + (apply-typography nil typography file-id)) - (rx/concat - (rx/of (dwu/start-undo-transaction undo-id)) - (->> (rx/from (seq selected)) - (rx/map (fn [id] - (let [editor (get editor-state id)] - (update-text-attrs {:id id :editor editor :attrs attrs}))))) - (rx/of (dwu/commit-undo-transaction undo-id))))))) + ([ids typography file-id] + (assert (or (nil? ids) (and (set? ids) (every? uuid? ids)))) + (ptk/reify ::apply-typography + ptk/WatchEvent + (watch [_ state _] + (let [editor-state (:workspace-editor-state state) + ids (d/nilv ids (wsh/lookup-selected state)) + attrs (-> typography + (assoc :typography-ref-file file-id) + (assoc :typography-ref-id (:id typography)) + (dissoc :id :name)) + undo-id (js/Symbol)] + + (rx/concat + (rx/of (dwu/start-undo-transaction undo-id)) + (->> (rx/from (seq ids)) + (rx/map (fn [id] + (let [editor (get editor-state id)] + (update-text-attrs {:id id :editor editor :attrs attrs}))))) + (rx/of (dwu/commit-undo-transaction undo-id)))))))) (defn generate-typography-name [{:keys [font-id font-variant-id] :as typography}] @@ -676,4 +679,3 @@ (rx/of (update-attrs (:id shape) {:typography-ref-id typ-id :typography-ref-file file-id})))))))) - diff --git a/frontend/src/app/plugins/library.cljs b/frontend/src/app/plugins/library.cljs index 5be62fbf28..a55035c93f 100644 --- a/frontend/src/app/plugins/library.cljs +++ b/frontend/src/app/plugins/library.cljs @@ -11,13 +11,33 @@ [app.common.data :as d] [app.common.data.macros :as dm] [app.common.record :as cr] + [app.common.schema :as sm] + [app.common.types.color :as ctc] + [app.common.types.typography :as ctt] + [app.common.uuid :as uuid] [app.main.data.workspace.libraries :as dwl] + [app.main.data.workspace.texts :as dwt] [app.main.store :as st] [app.plugins.utils :as u])) +(declare lib-color-proxy) +(declare lib-typography-proxy) + (deftype LibraryColorProxy [$file $id] Object + (remove + [_] + (st/emit! (dwl/delete-color {:id $id}))) + + (clone + [_] + (let [color-id (uuid/next) + color (-> (u/locate-library-color $file $id) + (assoc :id color-id))] + (st/emit! (dwl/add-color color {:rename? false})) + (lib-color-proxy $id color-id))) + (asFill [_] (let [color (u/locate-library-color $file $id)] (u/to-js @@ -57,11 +77,23 @@ {:name "name" :get #(-> % u/proxy->library-color :name) :set - (fn [_ value] + (fn [self value] (if (and (some? value) (string? value)) - (st/emit! (dwl/rename-color file-id id value)) + (let [color (u/proxy->library-color self) + value (dm/str (d/nilv (:path color) "") " / " value)] + (st/emit! (dwl/rename-color file-id id value))) (u/display-not-valid :library-color-name value)))} + {:name "path" + :get #(-> % u/proxy->library-color :path) + :set + (fn [self value] + (if (and (some? value) (string? value)) + (let [color (-> (u/proxy->library-color self) + (update :name #(str value " / " %)))] + (st/emit! (dwl/update-color color file-id))) + (u/display-not-valid :library-color-path value)))} + {:name "color" :get #(-> % u/proxy->library-color :color) :set @@ -80,16 +112,53 @@ (let [color (-> (u/proxy->library-color self) (assoc :opacity value))] (st/emit! (dwl/update-color color file-id))) - (u/display-not-valid :library-color-color value)))} + (u/display-not-valid :library-color-opacity value)))} {:name "gradient" - :get #(-> % u/proxy->library-color :gradient u/to-js)} + :get #(-> % u/proxy->library-color :gradient u/to-js) + :set + (fn [self value] + (let [value (u/from-js value)] + (if (sm/fast-check! ::ctc/gradient value) + (let [color (-> (u/proxy->library-color self) + (assoc :gradient value))] + (st/emit! (dwl/update-color color file-id))) + (u/display-not-valid :library-color-gradient value))))} {:name "image" - :get #(-> % u/proxy->library-color :image u/to-js)})) + :get #(-> % u/proxy->library-color :image u/to-js) + :set + (fn [self value] + (let [value (u/from-js value)] + (if (sm/fast-check! ::ctc/image-color value) + (let [color (-> (u/proxy->library-color self) + (assoc :image value))] + (st/emit! (dwl/update-color color file-id))) + (u/display-not-valid :library-color-image value))))})) (deftype LibraryTypographyProxy [$file $id] - Object) + Object + (remove + [_] + (st/emit! (dwl/delete-typography {:id $id}))) + + (clone + [_] + (let [typo-id (uuid/next) + typo (-> (u/locate-library-typography $file $id) + (assoc :id typo-id))] + (st/emit! (dwl/add-typography typo false)) + (lib-typography-proxy $id typo-id))) + + (applyToText + [_ shape] + (let [typography (u/locate-library-typography $file $id)] + (st/emit! (dwt/apply-typography #{(:id typography)} typography $file)))) + + (applyToTextRange + [_ shape from to] + ;; TODO + )) (defn lib-typography-proxy [file-id id] @@ -101,8 +170,116 @@ {:name "$id" :enumerable false :get (constantly id)} {:name "$file" :enumerable false :get (constantly file-id)} {:name "id" :get (fn [_] (dm/str id))} + {:name "name" - :get #(-> % u/proxy->library-typography :name)})) + :get #(-> % u/proxy->library-typography :name) + :set + (fn [self value] + (if (and (some? value) (string? value)) + (let [typo (u/proxy->library-typography self) + value (dm/str (d/nilv (:path typo) "") " / " value)] + (st/emit! (dwl/rename-typography file-id id value))) + (u/display-not-valid :library-typography-name value)))} + + {:name "path" + :get #(-> % u/proxy->library-typography :path) + :set + (fn [self value] + (if (and (some? value) (string? value)) + (let [typo (-> (u/proxy->library-typography self) + (update :name #(str value " / " %)))] + (st/emit! (dwl/update-typography typo file-id))) + (u/display-not-valid :library-typography-path value)))} + + {:name "fontId" + :get #(-> % u/proxy->library-typography :font-id) + :set + (fn [self value] + (if (and (some? value) (string? value)) + (let [typo (-> (u/proxy->library-typography self) + (assoc :font-id value))] + (st/emit! (dwl/update-typography typo file-id))) + (u/display-not-valid :library-typography-font-id value)))} + + {:name "fontFamily" + :get #(-> % u/proxy->library-typography :font-family) + :set + (fn [self value] + (if (and (some? value) (string? value)) + (let [typo (-> (u/proxy->library-typography self) + (assoc :font-family value))] + (st/emit! (dwl/update-typography typo file-id))) + (u/display-not-valid :library-typography-font-family value)))} + + {:name "fontVariantId" + :get #(-> % u/proxy->library-typography :font-variant-id) + :set + (fn [self value] + (if (and (some? value) (string? value)) + (let [typo (-> (u/proxy->library-typography self) + (assoc :font-variant-id value))] + (st/emit! (dwl/update-typography typo file-id))) + (u/display-not-valid :library-typography-font-variant-id value)))} + + {:name "fontSize" + :get #(-> % u/proxy->library-typography :font-size) + :set + (fn [self value] + (if (and (some? value) (string? value)) + (let [typo (-> (u/proxy->library-typography self) + (assoc :font-size value))] + (st/emit! (dwl/update-typography typo file-id))) + (u/display-not-valid :library-typography-font-size value)))} + + {:name "fontWeight" + :get #(-> % u/proxy->library-typography :font-weight) + :set + (fn [self value] + (if (and (some? value) (string? value)) + (let [typo (-> (u/proxy->library-typography self) + (assoc :font-weight value))] + (st/emit! (dwl/update-typography typo file-id))) + (u/display-not-valid :library-typography-font-weight value)))} + + {:name "fontStyle" + :get #(-> % u/proxy->library-typography :font-style) + :set + (fn [self value] + (if (and (some? value) (string? value)) + (let [typo (-> (u/proxy->library-typography self) + (assoc :font-style value))] + (st/emit! (dwl/update-typography typo file-id))) + (u/display-not-valid :library-typography-font-style value)))} + + {:name "lineHeight" + :get #(-> % u/proxy->library-typography :font-height) + :set + (fn [self value] + (if (and (some? value) (string? value)) + (let [typo (-> (u/proxy->library-typography self) + (assoc :font-height value))] + (st/emit! (dwl/update-typography typo file-id))) + (u/display-not-valid :library-typography-font-height value)))} + + {:name "letterSpacing" + :get #(-> % u/proxy->library-typography :letter-spacing) + :set + (fn [self value] + (if (and (some? value) (string? value)) + (let [typo (-> (u/proxy->library-typography self) + (assoc :letter-spacing value))] + (st/emit! (dwl/update-typography typo file-id))) + (u/display-not-valid :library-typography-letter-spacing value)))} + + {:name "textTransform" + :get #(-> % u/proxy->library-typography :text-transform) + :set + (fn [self value] + (if (and (some? value) (string? value)) + (let [typo (-> (u/proxy->library-typography self) + (assoc :text-transform value))] + (st/emit! (dwl/update-typography typo file-id))) + (u/display-not-valid :library-typography-text-transform value)))})) (deftype LibraryComponentProxy [$file $id] Object) @@ -120,7 +297,19 @@ {:name "name" :get #(-> % u/proxy->library-component :name)})) (deftype Library [$id] - Object) + Object + + (createColor + [_] + (let [color-id (uuid/next)] + (st/emit! (dwl/add-color {:id color-id :name "Color" :color "#000000" :opacity 1} {:rename? false})) + (lib-color-proxy $id color-id))) + + (createTypography + [_] + (let [typography-id (uuid/next)] + (st/emit! (dwl/add-typography (ctt/make-typography {:id typography-id :name "Typography"}) false)) + (lib-typography-proxy $id typography-id)))) (defn library-proxy [file-id] diff --git a/frontend/src/app/plugins/utils.cljs b/frontend/src/app/plugins/utils.cljs index 1f348de221..6611bba726 100644 --- a/frontend/src/app/plugins/utils.cljs +++ b/frontend/src/app/plugins/utils.cljs @@ -86,14 +86,14 @@ (let [file-id (obj/get proxy "$file") id (obj/get proxy "$id")] (when (and (some? file-id) (some? id)) - (locate-library-color file-id id)))) + (locate-library-typography file-id id)))) (defn proxy->library-component [proxy] (let [file-id (obj/get proxy "$file") id (obj/get proxy "$id")] (when (and (some? file-id) (some? id)) - (locate-library-color file-id id)))) + (locate-library-component file-id id)))) (defn get-data ([self attr] From e4e537b9600ea54dd4ddecb6074b9c75f669c6cc Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Mon, 3 Jun 2024 11:47:12 +0200 Subject: [PATCH 043/476] :sparkles: Add support for components in plugins --- .../app/main/data/workspace/libraries.cljs | 83 +++++++++++-------- frontend/src/app/plugins/library.cljs | 61 ++++++++++++-- 2 files changed, 100 insertions(+), 44 deletions(-) diff --git a/frontend/src/app/main/data/workspace/libraries.cljs b/frontend/src/app/main/data/workspace/libraries.cljs index 39b8f526dd..1b8c59beef 100644 --- a/frontend/src/app/main/data/workspace/libraries.cljs +++ b/frontend/src/app/main/data/workspace/libraries.cljs @@ -340,49 +340,56 @@ (defn- add-component2 "This is the second step of the component creation." - [selected components-v2] - (ptk/reify ::add-component2 - ev/Event - (-data [_] - {::ev/name "add-component" - :shapes (count selected)}) + ([selected components-v2] + (add-component2 selected components-v2)) + ([id-ref selected components-v2] + (ptk/reify ::add-component2 + ev/Event + (-data [_] + {::ev/name "add-component" + :shapes (count selected)}) - ptk/WatchEvent - (watch [it state _] - (let [file-id (:current-file-id state) - page-id (:current-page-id state) - objects (wsh/lookup-page-objects state page-id) - shapes (dwg/shapes-for-grouping objects selected) - parents (into #{} (map :parent-id) shapes)] - (when-not (empty? shapes) - (let [[root _ changes] - (cll/generate-add-component (pcb/empty-changes it) shapes objects page-id file-id components-v2 - dwg/prepare-create-group - cfsh/prepare-create-artboard-from-selection)] - (when-not (empty? (:redo-changes changes)) - (rx/of (dch/commit-changes changes) - (dws/select-shapes (d/ordered-set (:id root))) - (ptk/data-event :layout/update {:ids parents}))))))))) + ptk/WatchEvent + (watch [it state _] + (let [file-id (:current-file-id state) + page-id (:current-page-id state) + objects (wsh/lookup-page-objects state page-id) + shapes (dwg/shapes-for-grouping objects selected) + parents (into #{} (map :parent-id) shapes)] + (when-not (empty? shapes) + (let [[root component-id changes] + (cll/generate-add-component (pcb/empty-changes it) shapes objects page-id file-id components-v2 + dwg/prepare-create-group + cfsh/prepare-create-artboard-from-selection)] + (when id-ref + (reset! id-ref component-id)) + (when-not (empty? (:redo-changes changes)) + (rx/of (dch/commit-changes changes) + (dws/select-shapes (d/ordered-set (:id root))) + (ptk/data-event :layout/update {:ids parents})))))))))) (defn add-component "Add a new component to current file library, from the currently selected shapes. This operation is made in two steps, first one for calculate the shapes that will be part of the component and the second one with the component creation." - [] - (ptk/reify ::add-component - ptk/WatchEvent - (watch [_ state _] - (let [objects (wsh/lookup-page-objects state) - selected (->> (wsh/lookup-selected state) - (cfh/clean-loops objects)) - selected-objects (map #(get objects %) selected) - components-v2 (features/active-feature? state "components/v2") - ;; We don't want to change the structure of component copies - can-make-component (every? true? (map #(ctn/valid-shape-for-component? objects %) selected-objects))] + ([] + (add-component nil nil)) - (when can-make-component - (rx/of (add-component2 selected components-v2))))))) + ([id-ref ids] + (ptk/reify ::add-component + ptk/WatchEvent + (watch [_ state _] + (let [objects (wsh/lookup-page-objects state) + selected (->> (d/nilv ids (wsh/lookup-selected state)) + (cfh/clean-loops objects)) + selected-objects (map #(get objects %) selected) + components-v2 (features/active-feature? state "components/v2") + ;; We don't want to change the structure of component copies + can-make-component (every? true? (map #(ctn/valid-shape-for-component? objects %) selected-objects))] + + (when can-make-component + (rx/of (add-component2 id-ref selected components-v2)))))))) (defn add-multiple-components "Add several new components to current file library, from the currently selected shapes." @@ -535,7 +542,7 @@ in the given file library. Then selects the newly created instance." ([file-id component-id position] (instantiate-component file-id component-id position nil)) - ([file-id component-id position {:keys [start-move? initial-point]}] + ([file-id component-id position {:keys [start-move? initial-point id-ref]}] (dm/assert! (uuid? file-id)) (dm/assert! (uuid? component-id)) (dm/assert! (gpt/point? position)) @@ -558,6 +565,10 @@ page libraries) undo-id (js/Symbol)] + + (when id-ref + (reset! id-ref (:id new-shape))) + (rx/of (dwu/start-undo-transaction undo-id) (dch/commit-changes changes) (ptk/data-event :layout/update {:ids [(:id new-shape)]}) diff --git a/frontend/src/app/plugins/library.cljs b/frontend/src/app/plugins/library.cljs index a55035c93f..b588e61a24 100644 --- a/frontend/src/app/plugins/library.cljs +++ b/frontend/src/app/plugins/library.cljs @@ -10,6 +10,7 @@ [app.common.colors :as cc] [app.common.data :as d] [app.common.data.macros :as dm] + [app.common.geom.point :as gpt] [app.common.record :as cr] [app.common.schema :as sm] [app.common.types.color :as ctc] @@ -18,7 +19,9 @@ [app.main.data.workspace.libraries :as dwl] [app.main.data.workspace.texts :as dwt] [app.main.store :as st] - [app.plugins.utils :as u])) + [app.plugins.shape :as shapes] + [app.plugins.utils :as u] + [app.util.object :as obj])) (declare lib-color-proxy) (declare lib-typography-proxy) @@ -152,11 +155,12 @@ (applyToText [_ shape] - (let [typography (u/locate-library-typography $file $id)] - (st/emit! (dwt/apply-typography #{(:id typography)} typography $file)))) + (let [shape-id (obj/get shape "$id") + typography (u/locate-library-typography $file $id)] + (st/emit! (dwt/apply-typography #{shape-id} typography $file)))) (applyToTextRange - [_ shape from to] + [_ _shape _from _to] ;; TODO )) @@ -282,7 +286,17 @@ (u/display-not-valid :library-typography-text-transform value)))})) (deftype LibraryComponentProxy [$file $id] - Object) + Object + + (remove + [_] + (st/emit! (dwl/delete-component {:id $id}))) + + (instance + [_] + (let [id-ref (atom nil)] + (st/emit! (dwl/instantiate-component $file $id (gpt/point 0 0) {:id-ref id-ref})) + (shapes/shape-proxy @id-ref)))) (defn lib-component-proxy [file-id id] @@ -294,7 +308,26 @@ {:name "$id" :enumerable false :get (constantly id)} {:name "$file" :enumerable false :get (constantly file-id)} {:name "id" :get (fn [_] (dm/str id))} - {:name "name" :get #(-> % u/proxy->library-component :name)})) + + {:name "name" + :get #(-> % u/proxy->library-component :name) + :set + (fn [self value] + (if (and (some? value) (string? value)) + (let [component (u/proxy->library-component self) + value (dm/str (d/nilv (:path component) "") " / " value)] + (st/emit! (dwl/rename-component id value))) + (u/display-not-valid :library-component-name value)))} + + {:name "path" + :get #(-> % u/proxy->library-component :path) + :set + (fn [self value] + (if (and (some? value) (string? value)) + (let [component (u/proxy->library-component self) + value (dm/str value " / " (:name component))] + (st/emit! (dwl/rename-component id value))) + (u/display-not-valid :library-component-path value)))})) (deftype Library [$id] Object @@ -309,7 +342,14 @@ [_] (let [typography-id (uuid/next)] (st/emit! (dwl/add-typography (ctt/make-typography {:id typography-id :name "Typography"}) false)) - (lib-typography-proxy $id typography-id)))) + (lib-typography-proxy $id typography-id))) + + (createComponent + [_ shapes] + (let [id-ref (atom nil) + ids (into #{} (map #(obj/get % "$id")) shapes)] + (st/emit! (dwl/add-component id-ref ids)) + (lib-component-proxy $id @id-ref)))) (defn library-proxy [file-id] @@ -343,7 +383,12 @@ :get (fn [_] (let [file (u/locate-file file-id) - components (->> file :data :componentes keys (map #(lib-component-proxy file-id %)))] + components (->> file + :data + :components + (remove (comp :deleted second)) + (map first) + (map #(lib-component-proxy file-id %)))] (apply array components)))})) (deftype PenpotLibrarySubcontext [] From 55c27f140a4a05d15c4373cdd0288cb545ae18ad Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Mon, 3 Jun 2024 13:31:49 +0200 Subject: [PATCH 044/476] :sparkles: Create paths, booleans and ellipses through plugins api --- common/src/app/common/types/shape.cljc | 10 +++- .../src/app/main/data/workspace/bool.cljs | 55 +++++++++++-------- frontend/src/app/plugins/api.cljs | 34 +++++++++++- 3 files changed, 73 insertions(+), 26 deletions(-) diff --git a/common/src/app/common/types/shape.cljc b/common/src/app/common/types/shape.cljc index 2b610ca450..a489133293 100644 --- a/common/src/app/common/types/shape.cljc +++ b/common/src/app/common/types/shape.cljc @@ -79,6 +79,12 @@ (def text-align-types #{"left" "right" "center" "justify"}) +(def bool-types + #{:union + :difference + :exclude + :intersection}) + (sm/define! ::points [:vector {:gen/max 4 :gen/min 4} ::gpt/point]) @@ -200,8 +206,10 @@ [:type [:= :bool]] [:shapes [:vector {:gen/max 10 :gen/min 1} ::sm/uuid]] - ;; FIXME: improve this schema [:bool-type :keyword] + ;; FIXME: This should be the spec but we need to create a migration + ;; to make this transition safely + ;; [:bool-type [::sm/one-of bool-types]] [:bool-content [:vector {:gen/max 2} diff --git a/frontend/src/app/main/data/workspace/bool.cljs b/frontend/src/app/main/data/workspace/bool.cljs index 9662e259e2..41d0a34260 100644 --- a/frontend/src/app/main/data/workspace/bool.cljs +++ b/frontend/src/app/main/data/workspace/bool.cljs @@ -83,31 +83,38 @@ (gsh/update-group-selrect children)))) (defn create-bool - [bool-type] - (ptk/reify ::create-bool-union - ptk/WatchEvent - (watch [it state _] - (let [page-id (:current-page-id state) - objects (wsh/lookup-page-objects state) - name (-> bool-type d/name str/capital) - ids (selected-shapes-idx state) - ordered-indexes (cph/order-by-indexed-shapes objects ids) - shapes (->> ordered-indexes - (map (d/getf objects)) - (remove cph/frame-shape?) - (remove #(ctn/has-any-copy-parent? objects %)))] + ([bool-type] + (create-bool bool-type nil nil)) + ([bool-type ids {:keys [id-ret]}] + (assert (or (nil? ids) (set? ids))) + (ptk/reify ::create-bool-union + ptk/WatchEvent + (watch [it state _] + (let [page-id (:current-page-id state) + objects (wsh/lookup-page-objects state) + name (-> bool-type d/name str/capital) + ids (->> (d/nilv ids (wsh/lookup-selected state)) + (cph/clean-loops objects)) + ordered-indexes (cph/order-by-indexed-shapes objects ids) + shapes (->> ordered-indexes + (map (d/getf objects)) + (remove cph/frame-shape?) + (remove #(ctn/has-any-copy-parent? objects %)))] - (when-not (empty? shapes) - (let [[boolean-data index] (create-bool-data bool-type name (reverse shapes) objects) - index (inc index) - shape-id (:id boolean-data) - changes (-> (pcb/empty-changes it page-id) - (pcb/with-objects objects) - (pcb/add-object boolean-data {:index index}) - (pcb/update-shapes (map :id shapes) ctl/remove-layout-item-data) - (pcb/change-parent shape-id shapes))] - (rx/of (dch/commit-changes changes) - (dws/select-shapes (d/ordered-set shape-id))))))))) + (when-not (empty? shapes) + (let [[boolean-data index] (create-bool-data bool-type name (reverse shapes) objects) + index (inc index) + shape-id (:id boolean-data) + changes (-> (pcb/empty-changes it page-id) + (pcb/with-objects objects) + (pcb/add-object boolean-data {:index index}) + (pcb/update-shapes (map :id shapes) ctl/remove-layout-item-data) + (pcb/change-parent shape-id shapes))] + (when id-ret + (reset! id-ret shape-id)) + + (rx/of (dch/commit-changes changes) + (dws/select-shapes (d/ordered-set shape-id)))))))))) (defn group-to-bool [shape-id bool-type] diff --git a/frontend/src/app/plugins/api.cljs b/frontend/src/app/plugins/api.cljs index 0a18cb8bf5..cffc8d5cd5 100644 --- a/frontend/src/app/plugins/api.cljs +++ b/frontend/src/app/plugins/api.cljs @@ -15,6 +15,7 @@ [app.common.types.shape :as cts] [app.common.uuid :as uuid] [app.main.data.changes :as ch] + [app.main.data.workspace.bool :as dwb] [app.main.data.workspace.groups :as dwg] [app.main.data.workspace.media :as dwm] [app.main.store :as st] @@ -124,6 +125,26 @@ [_] (create-shape :rect)) + (createEllipse + [_] + (create-shape :circle)) + + (createPath + [_] + (let [page-id (:current-page-id @st/state) + page (dm/get-in @st/state [:workspace-data :pages-index page-id]) + shape (cts/setup-shape + {:type :path + :content [{:command :move-to :params {:x 0 :y 0}} + {:command :line-to :params {:x 100 :y 100}}]}) + changes + (-> (cb/empty-changes) + (cb/with-page page) + (cb/with-objects (:objects page)) + (cb/add-object shape))] + (st/emit! (ch/commit-changes changes)) + (shape/shape-proxy (:id shape)))) + (createText [_ text] (let [file-id (:current-file-id @st/state) @@ -147,7 +168,18 @@ file-id (:current-file-id @st/state) page-id (:current-page-id @st/state)] (st/emit! (dwm/create-svg-shape id "svg" svg-string (gpt/point 0 0))) - (shape/shape-proxy file-id page-id id))))) + (shape/shape-proxy file-id page-id id)))) + + (createBoolean [_ bool-type shapes] + (let [ids (into #{} (map #(obj/get % "$id")) shapes) + bool-type (keyword bool-type)] + + (if (contains? cts/bool-types bool-type) + (let [id-ret (atom nil)] + (st/emit! (dwb/create-bool bool-type ids {:id-ret id-ret})) + (shape/shape-proxy @id-ret)) + + (utils/display-not-valid :bool-shape bool-type))))) (defn create-context [] From bf66e12075d1f4d8fff9cdedb4ebd164cb4d5734 Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Mon, 3 Jun 2024 16:20:14 +0200 Subject: [PATCH 045/476] :sparkles: Allow masks, booleans, and some path read only --- .../src/app/main/data/workspace/groups.cljs | 127 +++++++++--------- .../app/main/data/workspace/shortcuts.cljs | 4 +- .../app/main/ui/workspace/context_menu.cljs | 4 +- frontend/src/app/plugins/shape.cljs | 78 ++++++++--- 4 files changed, 128 insertions(+), 85 deletions(-) diff --git a/frontend/src/app/main/data/workspace/groups.cljs b/frontend/src/app/main/data/workspace/groups.cljs index 4aa9aecb05..b813995e3d 100644 --- a/frontend/src/app/main/data/workspace/groups.cljs +++ b/frontend/src/app/main/data/workspace/groups.cljs @@ -265,69 +265,76 @@ (let [selected (wsh/lookup-selected state)] (rx/of (ungroup-shapes selected :change-selection? true)))))) -(def mask-group - (ptk/reify ::mask-group - ptk/WatchEvent - (watch [it state _] - (let [page-id (:current-page-id state) - objects (wsh/lookup-page-objects state page-id) - selected (->> (wsh/lookup-selected state) - (cfh/clean-loops objects) - (remove #(ctn/has-any-copy-parent? objects (get objects %)))) - shapes (shapes-for-grouping objects selected) - first-shape (first shapes)] - (when-not (empty? shapes) - (let [;; If the selected shape is a group, we can use it. If not, - ;; create a new group and set it as masked. - [group changes] - (if (and (= (count shapes) 1) - (= (:type (first shapes)) :group)) - [first-shape (-> (pcb/empty-changes it page-id) - (pcb/with-objects objects))] - (prepare-create-group (pcb/empty-changes it) (uuid/next) objects page-id shapes "Mask" true)) +(defn mask-group + ([] + (mask-group nil)) + ([ids] + (ptk/reify ::mask-group + ptk/WatchEvent + (watch [it state _] + (let [page-id (:current-page-id state) + objects (wsh/lookup-page-objects state page-id) + selected (->> (d/nilv ids (wsh/lookup-selected state)) + (cfh/clean-loops objects) + (remove #(ctn/has-any-copy-parent? objects (get objects %)))) + shapes (shapes-for-grouping objects selected) + first-shape (first shapes)] + (when-not (empty? shapes) + (let [;; If the selected shape is a group, we can use it. If not, + ;; create a new group and set it as masked. + [group changes] + (if (and (= (count shapes) 1) + (= (:type (first shapes)) :group)) + [first-shape (-> (pcb/empty-changes it page-id) + (pcb/with-objects objects))] + (prepare-create-group (pcb/empty-changes it) (uuid/next) objects page-id shapes "Mask" true)) - changes (-> changes - (pcb/update-shapes (:shapes group) - (fn [shape] - (assoc shape - :constraints-h :scale - :constraints-v :scale))) - (pcb/update-shapes [(:id group)] - (fn [group] - (assoc group - :masked-group true - :selrect (:selrect first-shape) - :points (:points first-shape) - :transform (:transform first-shape) - :transform-inverse (:transform-inverse first-shape)))) - (pcb/resize-parents [(:id group)])) - undo-id (js/Symbol)] + changes (-> changes + (pcb/update-shapes (:shapes group) + (fn [shape] + (assoc shape + :constraints-h :scale + :constraints-v :scale))) + (pcb/update-shapes [(:id group)] + (fn [group] + (assoc group + :masked-group true + :selrect (:selrect first-shape) + :points (:points first-shape) + :transform (:transform first-shape) + :transform-inverse (:transform-inverse first-shape)))) + (pcb/resize-parents [(:id group)])) + undo-id (js/Symbol)] - (rx/of (dwu/start-undo-transaction undo-id) - (dch/commit-changes changes) - (dws/select-shapes (d/ordered-set (:id group))) - (ptk/data-event :layout/update {:ids [(:id group)]}) - (dwu/commit-undo-transaction undo-id)))))))) + (rx/of (dwu/start-undo-transaction undo-id) + (dch/commit-changes changes) + (dws/select-shapes (d/ordered-set (:id group))) + (ptk/data-event :layout/update {:ids [(:id group)]}) + (dwu/commit-undo-transaction undo-id))))))))) -(def unmask-group - (ptk/reify ::unmask-group - ptk/WatchEvent - (watch [it state _] - (let [page-id (:current-page-id state) - objects (wsh/lookup-page-objects state page-id) +(defn unmask-group + ([] + (unmask-group nil)) - masked-groups (->> (wsh/lookup-selected state) - (map #(get objects %)) - (filter #(or (= :bool (:type %)) (= :group (:type %))))) + ([ids] + (ptk/reify ::unmask-group + ptk/WatchEvent + (watch [it state _] + (let [page-id (:current-page-id state) + objects (wsh/lookup-page-objects state page-id) - changes (reduce (fn [changes mask] - (-> changes - (pcb/update-shapes [(:id mask)] - (fn [shape] - (dissoc shape :masked-group))) - (pcb/resize-parents [(:id mask)]))) - (-> (pcb/empty-changes it page-id) - (pcb/with-objects objects)) - masked-groups)] + masked-groups (->> (d/nilv ids (wsh/lookup-selected state)) + (map #(get objects %)) + (filter #(or (= :bool (:type %)) (= :group (:type %))))) - (rx/of (dch/commit-changes changes)))))) + changes (reduce (fn [changes mask] + (-> changes + (pcb/update-shapes [(:id mask)] + (fn [shape] + (dissoc shape :masked-group))) + (pcb/resize-parents [(:id mask)]))) + (-> (pcb/empty-changes it page-id) + (pcb/with-objects objects)) + masked-groups)] + + (rx/of (dch/commit-changes changes))))))) diff --git a/frontend/src/app/main/data/workspace/shortcuts.cljs b/frontend/src/app/main/data/workspace/shortcuts.cljs index 9dc525560f..2d808a9bd5 100644 --- a/frontend/src/app/main/data/workspace/shortcuts.cljs +++ b/frontend/src/app/main/data/workspace/shortcuts.cljs @@ -129,12 +129,12 @@ :mask {:tooltip (ds/meta "M") :command (ds/c-mod "m") :subsections [:modify-layers] - :fn #(emit-when-no-readonly dw/mask-group)} + :fn #(emit-when-no-readonly (dw/mask-group))} :unmask {:tooltip (ds/meta-shift "M") :command (ds/c-mod "shift+m") :subsections [:modify-layers] - :fn #(emit-when-no-readonly dw/unmask-group)} + :fn #(emit-when-no-readonly (dw/unmask-group))} :create-component {:tooltip (ds/meta "K") :command (ds/c-mod "k") diff --git a/frontend/src/app/main/ui/workspace/context_menu.cljs b/frontend/src/app/main/ui/workspace/context_menu.cljs index 7f899e9470..4dd499d189 100644 --- a/frontend/src/app/main/ui/workspace/context_menu.cljs +++ b/frontend/src/app/main/ui/workspace/context_menu.cljs @@ -244,9 +244,9 @@ is-bool? (and single? has-bool?) do-create-group #(st/emit! dw/group-selected) - do-mask-group #(st/emit! dw/mask-group) do-remove-group #(st/emit! dw/ungroup-selected) - do-unmask-group #(st/emit! dw/unmask-group) + do-mask-group #(st/emit! (dw/mask-group)) + do-unmask-group #(st/emit! (dw/unmask-group)) do-create-artboard-from-selection #(st/emit! (dwsh/create-artboard-from-selection))] diff --git a/frontend/src/app/plugins/shape.cljs b/frontend/src/app/plugins/shape.cljs index c68c142eaa..f2dd16c0bd 100644 --- a/frontend/src/app/plugins/shape.cljs +++ b/frontend/src/app/plugins/shape.cljs @@ -18,6 +18,7 @@ [app.common.types.shape.radius :as ctsr] [app.common.uuid :as uuid] [app.main.data.workspace :as udw] + [app.main.data.workspace.groups :as dwg] [app.main.data.workspace.selection :as dws] [app.main.data.workspace.shape-layout :as dwsl] [app.main.data.workspace.shapes :as dwsh] @@ -27,6 +28,7 @@ [app.plugins.grid :as grid] [app.plugins.utils :as utils :refer [locate-objects locate-shape proxy->shape array-to-js]] [app.util.object :as obj] + [app.util.path.format :as upf] [app.util.text-editor :as ted])) (declare shape-proxy) @@ -58,30 +60,68 @@ ;; Only for frames + groups + booleans (getChildren [_] - (apply array (->> (locate-shape $file $page $id) - :shapes - (map #(shape-proxy $file $page %))))) + (let [shape (locate-shape $file $page $id)] + (if (or (cfh/frame-shape? shape) (cfh/group-shape? shape) (cfh/svg-raw-shape? shape) (cfh/bool-shape? shape)) + (apply array (->> (locate-shape $file $page $id) + :shapes + (map #(shape-proxy $file $page %)))) + (utils/display-not-valid :getChildren (:type shape))))) (appendChild [_ child] - (let [child-id (obj/get child "$id")] - (st/emit! (udw/relocate-shapes #{child-id} $id 0)))) + (let [shape (locate-shape $file $page $id)] + (if (or (cfh/frame-shape? shape) (cfh/group-shape? shape) (cfh/svg-raw-shape? shape) (cfh/bool-shape? shape)) + (let [child-id (obj/get child "$id")] + (st/emit! (udw/relocate-shapes #{child-id} $id 0))) + (utils/display-not-valid :appendChild (:type shape))))) (insertChild [_ index child] - (let [child-id (obj/get child "$id")] - (st/emit! (udw/relocate-shapes #{child-id} $id index)))) + (let [shape (locate-shape $file $page $id)] + (if (or (cfh/frame-shape? shape) (cfh/group-shape? shape) (cfh/svg-raw-shape? shape) (cfh/bool-shape? shape)) + (let [child-id (obj/get child "$id")] + (st/emit! (udw/relocate-shapes #{child-id} $id index))) + (utils/display-not-valid :insertChild (:type shape))))) ;; Only for frames (addFlexLayout [_] - (st/emit! (dwsl/create-layout-from-id $id :flex :from-frame? true :calculate-params? false)) - (grid/grid-layout-proxy $file $page $id)) + (let [shape (locate-shape $file $page $id)] + (if (cfh/frame-shape? shape) + (do (st/emit! (dwsl/create-layout-from-id $id :flex :from-frame? true :calculate-params? false)) + (grid/grid-layout-proxy $file $page $id)) + (utils/display-not-valid :addFlexLayout (:type shape))))) (addGridLayout [_] - (st/emit! (dwsl/create-layout-from-id $id :grid :from-frame? true :calculate-params? false)) - (grid/grid-layout-proxy $file $page $id))) + (let [shape (locate-shape $file $page $id)] + (if (cfh/frame-shape? shape) + (do (st/emit! (dwsl/create-layout-from-id $id :grid :from-frame? true :calculate-params? false)) + (grid/grid-layout-proxy $file $page $id)) + (utils/display-not-valid :addGridLayout (:type shape))))) + + ;; Make masks for groups + (makeMask + [_] + (let [shape (locate-shape $file $page $id)] + (if (cfh/group-shape? shape) + (st/emit! (dwg/mask-group #{$id})) + (utils/display-not-valid :makeMask (:type shape))))) + + (removeMask + [_] + (let [shape (locate-shape $file $page $id)] + (if (cfh/mask-shape? shape) + (st/emit! (dwg/unmask-group #{$id})) + (utils/display-not-valid :removeMask (:type shape))))) + + ;; Only for path and bool shapes + (toD + [_] + (let [shape (locate-shape $file $page $id)] + (if (cfh/path-shape? shape) + (upf/format-path (:content shape)) + (utils/display-not-valid :makeMask (:type shape)))))) (crc/define-properties! ShapeProxy @@ -388,11 +428,6 @@ :enumerable false :get #(.getChildren ^js %)})) - (cond-> (not (or (cfh/frame-shape? data) (cfh/group-shape? data) (cfh/svg-raw-shape? data) (cfh/bool-shape? data))) - (-> (obj/unset! "appendChild") - (obj/unset! "insertChild") - (obj/unset! "getChildren"))) - (cond-> (cfh/frame-shape? data) (-> (crc/add-properties! {:name "grid" @@ -440,10 +475,6 @@ (when (contains? #{:fix :auto} value) (st/emit! (dwsl/update-layout #{id} {:layout-item-v-sizing value})))))}))) - (cond-> (not (cfh/frame-shape? data)) - (-> (obj/unset! "addGridLayout") - (obj/unset! "addFlexLayout"))) - (cond-> (cfh/text-shape? data) (crc/add-properties! {:name "characters" @@ -534,4 +565,9 @@ :set (fn [self value] (let [id (obj/get self "$id")] - (st/emit! (dwt/update-attrs id {:text-transform value}))))})))))) + (st/emit! (dwt/update-attrs id {:text-transform value}))))})) + + (cond-> (or (cfh/path-shape? data) (cfh/bool-shape? data)) + (crc/add-properties! + {:name "content" + :get #(-> % proxy->shape :content array-to-js)})))))) From 98c550b20e5695bcdb3a378c8cd521a8298c2179 Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Mon, 3 Jun 2024 17:42:25 +0200 Subject: [PATCH 046/476] :sparkles: Update content of path shapes in plugins --- .../src/app/main/data/workspace/bool.cljs | 2 +- .../src/app/main/data/workspace/groups.cljs | 2 +- frontend/src/app/plugins/shape.cljs | 216 ++++++++++-------- 3 files changed, 125 insertions(+), 95 deletions(-) diff --git a/frontend/src/app/main/data/workspace/bool.cljs b/frontend/src/app/main/data/workspace/bool.cljs index 41d0a34260..013a2dbe66 100644 --- a/frontend/src/app/main/data/workspace/bool.cljs +++ b/frontend/src/app/main/data/workspace/bool.cljs @@ -93,7 +93,7 @@ (let [page-id (:current-page-id state) objects (wsh/lookup-page-objects state) name (-> bool-type d/name str/capital) - ids (->> (d/nilv ids (wsh/lookup-selected state)) + ids (->> (or ids (wsh/lookup-selected state)) (cph/clean-loops objects)) ordered-indexes (cph/order-by-indexed-shapes objects ids) shapes (->> ordered-indexes diff --git a/frontend/src/app/main/data/workspace/groups.cljs b/frontend/src/app/main/data/workspace/groups.cljs index b813995e3d..3502bd6993 100644 --- a/frontend/src/app/main/data/workspace/groups.cljs +++ b/frontend/src/app/main/data/workspace/groups.cljs @@ -274,7 +274,7 @@ (watch [it state _] (let [page-id (:current-page-id state) objects (wsh/lookup-page-objects state page-id) - selected (->> (d/nilv ids (wsh/lookup-selected state)) + selected (->> (or ids (wsh/lookup-selected state)) (cfh/clean-loops objects) (remove #(ctn/has-any-copy-parent? objects (get objects %)))) shapes (shapes-for-grouping objects selected) diff --git a/frontend/src/app/plugins/shape.cljs b/frontend/src/app/plugins/shape.cljs index f2dd16c0bd..c5db5d5488 100644 --- a/frontend/src/app/plugins/shape.cljs +++ b/frontend/src/app/plugins/shape.cljs @@ -10,8 +10,11 @@ [app.common.colors :as clr] [app.common.data :as d] [app.common.files.helpers :as cfh] + [app.common.geom.rect :as grc] + [app.common.geom.shapes :as gsh] [app.common.record :as crc] [app.common.spec :as us] + [app.common.svg.path.legacy-parser2 :as spp] [app.common.text :as txt] [app.common.types.shape :as cts] [app.common.types.shape.layout :as ctl] @@ -26,13 +29,30 @@ [app.main.store :as st] [app.plugins.flex :as flex] [app.plugins.grid :as grid] - [app.plugins.utils :as utils :refer [locate-objects locate-shape proxy->shape array-to-js]] + [app.plugins.utils :as u] [app.util.object :as obj] [app.util.path.format :as upf] [app.util.text-editor :as ted])) (declare shape-proxy) +(defn parse-command + [entry] + (update entry + :command + #(case % + "M" :move-to + "Z" :close-path + "L" :line-to + "H" :line-to-horizontal + "V" :line-to-vertical + "C" :curve-to + "S" :smooth-curve-to + "Q" :quadratic-bezier-curve-to + "T" :smooth-quadratic-bezier-curve-to + "A" :elliptical-arc + (keyword %)))) + (defn text-props [shape] (d/merge @@ -60,68 +80,68 @@ ;; Only for frames + groups + booleans (getChildren [_] - (let [shape (locate-shape $file $page $id)] + (let [shape (u/locate-shape $file $page $id)] (if (or (cfh/frame-shape? shape) (cfh/group-shape? shape) (cfh/svg-raw-shape? shape) (cfh/bool-shape? shape)) - (apply array (->> (locate-shape $file $page $id) + (apply array (->> (u/locate-shape $file $page $id) :shapes (map #(shape-proxy $file $page %)))) - (utils/display-not-valid :getChildren (:type shape))))) + (u/display-not-valid :getChildren (:type shape))))) (appendChild [_ child] - (let [shape (locate-shape $file $page $id)] + (let [shape (u/locate-shape $file $page $id)] (if (or (cfh/frame-shape? shape) (cfh/group-shape? shape) (cfh/svg-raw-shape? shape) (cfh/bool-shape? shape)) (let [child-id (obj/get child "$id")] (st/emit! (udw/relocate-shapes #{child-id} $id 0))) - (utils/display-not-valid :appendChild (:type shape))))) + (u/display-not-valid :appendChild (:type shape))))) (insertChild [_ index child] - (let [shape (locate-shape $file $page $id)] + (let [shape (u/locate-shape $file $page $id)] (if (or (cfh/frame-shape? shape) (cfh/group-shape? shape) (cfh/svg-raw-shape? shape) (cfh/bool-shape? shape)) (let [child-id (obj/get child "$id")] (st/emit! (udw/relocate-shapes #{child-id} $id index))) - (utils/display-not-valid :insertChild (:type shape))))) + (u/display-not-valid :insertChild (:type shape))))) ;; Only for frames (addFlexLayout [_] - (let [shape (locate-shape $file $page $id)] + (let [shape (u/locate-shape $file $page $id)] (if (cfh/frame-shape? shape) (do (st/emit! (dwsl/create-layout-from-id $id :flex :from-frame? true :calculate-params? false)) (grid/grid-layout-proxy $file $page $id)) - (utils/display-not-valid :addFlexLayout (:type shape))))) + (u/display-not-valid :addFlexLayout (:type shape))))) (addGridLayout [_] - (let [shape (locate-shape $file $page $id)] + (let [shape (u/locate-shape $file $page $id)] (if (cfh/frame-shape? shape) (do (st/emit! (dwsl/create-layout-from-id $id :grid :from-frame? true :calculate-params? false)) (grid/grid-layout-proxy $file $page $id)) - (utils/display-not-valid :addGridLayout (:type shape))))) + (u/display-not-valid :addGridLayout (:type shape))))) ;; Make masks for groups (makeMask [_] - (let [shape (locate-shape $file $page $id)] + (let [shape (u/locate-shape $file $page $id)] (if (cfh/group-shape? shape) (st/emit! (dwg/mask-group #{$id})) - (utils/display-not-valid :makeMask (:type shape))))) + (u/display-not-valid :makeMask (:type shape))))) (removeMask [_] - (let [shape (locate-shape $file $page $id)] + (let [shape (u/locate-shape $file $page $id)] (if (cfh/mask-shape? shape) (st/emit! (dwg/unmask-group #{$id})) - (utils/display-not-valid :removeMask (:type shape))))) + (u/display-not-valid :removeMask (:type shape))))) ;; Only for path and bool shapes (toD [_] - (let [shape (locate-shape $file $page $id)] + (let [shape (u/locate-shape $file $page $id)] (if (cfh/path-shape? shape) (upf/format-path (:content shape)) - (utils/display-not-valid :makeMask (:type shape)))))) + (u/display-not-valid :makeMask (:type shape)))))) (crc/define-properties! ShapeProxy @@ -140,7 +160,7 @@ (assert (uuid? page-id)) (assert (uuid? id)) - (let [data (locate-shape file-id page-id id)] + (let [data (u/locate-shape file-id page-id id)] (-> (ShapeProxy. file-id page-id id) (crc/add-properties! {:name "$id" :enumerable false :get (constantly id)} @@ -148,37 +168,37 @@ {:name "$page" :enumerable false :get (constantly page-id)} {:name "id" - :get #(-> % proxy->shape :id str)} + :get #(-> % u/proxy->shape :id str)} {:name "type" - :get #(-> % proxy->shape :type name)} + :get #(-> % u/proxy->shape :type name)} {:name "name" - :get #(-> % proxy->shape :name) + :get #(-> % u/proxy->shape :name) :set (fn [self value] (let [id (obj/get self "$id")] (st/emit! (dwsh/update-shapes [id] #(assoc % :name value)))))} {:name "blocked" - :get #(-> % proxy->shape :blocked boolean) + :get #(-> % u/proxy->shape :blocked boolean) :set (fn [self value] (let [id (obj/get self "$id")] (st/emit! (dwsh/update-shapes [id] #(assoc % :blocked value)))))} {:name "hidden" - :get #(-> % proxy->shape :hidden boolean) + :get #(-> % u/proxy->shape :hidden boolean) :set (fn [self value] (let [id (obj/get self "$id")] (st/emit! (dwsh/update-shapes [id] #(assoc % :hidden value)))))} {:name "proportionLock" - :get #(-> % proxy->shape :proportion-lock boolean) + :get #(-> % u/proxy->shape :proportion-lock boolean) :set (fn [self value] (let [id (obj/get self "$id")] (st/emit! (dwsh/update-shapes [id] #(assoc % :proportion-lock value)))))} {:name "constraintsHorizontal" - :get #(-> % proxy->shape :constraints-h d/name) + :get #(-> % u/proxy->shape :constraints-h d/name) :set (fn [self value] (let [id (obj/get self "$id") value (keyword value)] @@ -186,7 +206,7 @@ (st/emit! (dwsh/update-shapes [id] #(assoc % :constraints-h value))))))} {:name "constraintsVertical" - :get #(-> % proxy->shape :constraints-v d/name) + :get #(-> % u/proxy->shape :constraints-v d/name) :set (fn [self value] (let [id (obj/get self "$id") value (keyword value)] @@ -194,64 +214,64 @@ (st/emit! (dwsh/update-shapes [id] #(assoc % :constraints-v value))))))} {:name "borderRadius" - :get #(-> % proxy->shape :rx) + :get #(-> % u/proxy->shape :rx) :set (fn [self value] (let [id (obj/get self "$id") - shape (proxy->shape self)] + shape (u/proxy->shape self)] (when (us/safe-int? value) (when (or (not (ctsr/has-radius? shape)) (ctsr/radius-4? shape)) (st/emit! (dwsh/update-shapes [id] ctsr/switch-to-radius-1))) (st/emit! (dwsh/update-shapes [id] #(ctsr/set-radius-1 % value))))))} {:name "borderRadiusTopLeft" - :get #(-> % proxy->shape :r1) + :get #(-> % u/proxy->shape :r1) :set (fn [self value] (let [id (obj/get self "$id") - shape (proxy->shape self)] + shape (u/proxy->shape self)] (when (us/safe-int? value) (when (or (not (ctsr/has-radius? shape)) (not (ctsr/radius-4? shape))) (st/emit! (dwsh/update-shapes [id] ctsr/switch-to-radius-4))) (st/emit! (dwsh/update-shapes [id] #(ctsr/set-radius-4 % :r1 value))))))} {:name "borderRadiusTopRight" - :get #(-> % proxy->shape :r2) + :get #(-> % u/proxy->shape :r2) :set (fn [self value] (let [id (obj/get self "$id") - shape (proxy->shape self)] + shape (u/proxy->shape self)] (when (us/safe-int? value) (when (or (not (ctsr/has-radius? shape)) (not (ctsr/radius-4? shape))) (st/emit! (dwsh/update-shapes [id] ctsr/switch-to-radius-4))) (st/emit! (dwsh/update-shapes [id] #(ctsr/set-radius-4 % :r2 value))))))} {:name "borderRadiusBottomRight" - :get #(-> % proxy->shape :r3) + :get #(-> % u/proxy->shape :r3) :set (fn [self value] (let [id (obj/get self "$id") - shape (proxy->shape self)] + shape (u/proxy->shape self)] (when (us/safe-int? value) (when (or (not (ctsr/has-radius? shape)) (not (ctsr/radius-4? shape))) (st/emit! (dwsh/update-shapes [id] ctsr/switch-to-radius-4))) (st/emit! (dwsh/update-shapes [id] #(ctsr/set-radius-4 % :r3 value))))))} {:name "borderRadiusBottomLeft" - :get #(-> % proxy->shape :r4) + :get #(-> % u/proxy->shape :r4) :set (fn [self value] (let [id (obj/get self "$id") - shape (proxy->shape self)] + shape (u/proxy->shape self)] (when (us/safe-int? value) (when (or (not (ctsr/has-radius? shape)) (not (ctsr/radius-4? shape))) (st/emit! (dwsh/update-shapes [id] ctsr/switch-to-radius-4))) (st/emit! (dwsh/update-shapes [id] #(ctsr/set-radius-4 % :r4 value))))))} {:name "opacity" - :get #(-> % proxy->shape :opacity) + :get #(-> % u/proxy->shape :opacity) :set (fn [self value] (let [id (obj/get self "$id")] (when (and (us/safe-number? value) (>= value 0) (<= value 1)) (st/emit! (dwsh/update-shapes [id] #(assoc % :opacity value))))))} {:name "blendMode" - :get #(-> % proxy->shape :blend-mode (d/nilv :normal) d/name) + :get #(-> % u/proxy->shape :blend-mode (d/nilv :normal) d/name) :set (fn [self value] (let [id (obj/get self "$id") value (keyword value)] @@ -259,7 +279,7 @@ (st/emit! (dwsh/update-shapes [id] #(assoc % :blend-mode value))))))} {:name "shadows" - :get #(-> % proxy->shape :shadow array-to-js) + :get #(-> % u/proxy->shape :shadow u/array-to-js) :set (fn [self value] (let [id (obj/get self "$id") value (mapv (fn [val] @@ -273,12 +293,12 @@ :blur 4 :spread 0 :hidden false} - (utils/from-js val #{:style :type}))) + (u/from-js val #{:style :type}))) value)] (st/emit! (dwsh/update-shapes [id] #(assoc % :shadow value)))))} {:name "blur" - :get #(-> % proxy->shape :blur utils/to-js) + :get #(-> % u/proxy->shape :blur u/to-js) :set (fn [self value] (if (nil? value) (st/emit! (dwsh/update-shapes [id] #(dissoc % :blur))) @@ -289,26 +309,26 @@ :type :layer-blur :value 4 :hidden false} - (utils/from-js value))] + (u/from-js value))] (st/emit! (dwsh/update-shapes [id] #(assoc % :blur value))))))} {:name "exports" - :get #(-> % proxy->shape :exports array-to-js) + :get #(-> % u/proxy->shape :exports u/array-to-js) :set (fn [self value] (let [id (obj/get self "$id") - value (mapv #(utils/from-js %) value)] + value (mapv #(u/from-js %) value)] (st/emit! (dwsh/update-shapes [id] #(assoc % :exports value)))))} ;; Geometry properties {:name "x" - :get #(-> % proxy->shape :x) + :get #(-> % u/proxy->shape :x) :set (fn [self value] (let [id (obj/get self "$id")] (st/emit! (udw/update-position id {:x value}))))} {:name "y" - :get #(-> % proxy->shape :y) + :get #(-> % u/proxy->shape :y) :set (fn [self value] (let [id (obj/get self "$id")] @@ -316,90 +336,90 @@ {:name "parentX" :get (fn [self] - (let [shape (proxy->shape self) + (let [shape (u/proxy->shape self) parent-id (:parent-id shape) - parent (locate-shape (obj/get self "$file") (obj/get self "$page") parent-id)] + parent (u/locate-shape (obj/get self "$file") (obj/get self "$page") parent-id)] (- (:x shape) (:x parent)))) :set (fn [self value] (let [id (obj/get self "$id") - parent-id (-> self proxy->shape :parent-id) - parent (locate-shape (obj/get self "$file") (obj/get self "$page") parent-id) + parent-id (-> self u/proxy->shape :parent-id) + parent (u/locate-shape (obj/get self "$file") (obj/get self "$page") parent-id) parent-x (:x parent)] (st/emit! (udw/update-position id {:x (+ parent-x value)}))))} {:name "parentY" :get (fn [self] - (let [shape (proxy->shape self) + (let [shape (u/proxy->shape self) parent-id (:parent-id shape) - parent (locate-shape (obj/get self "$file") (obj/get self "$page") parent-id) + parent (u/locate-shape (obj/get self "$file") (obj/get self "$page") parent-id) parent-y (:y parent)] (- (:y shape) parent-y))) :set (fn [self value] (let [id (obj/get self "$id") - parent-id (-> self proxy->shape :parent-id) - parent (locate-shape (obj/get self "$file") (obj/get self "$page") parent-id) + parent-id (-> self u/proxy->shape :parent-id) + parent (u/locate-shape (obj/get self "$file") (obj/get self "$page") parent-id) parent-y (:y parent)] (st/emit! (udw/update-position id {:y (+ parent-y value)}))))} {:name "frameX" :get (fn [self] - (let [shape (proxy->shape self) + (let [shape (u/proxy->shape self) frame-id (:parent-id shape) - frame (locate-shape (obj/get self "$file") (obj/get self "$page") frame-id) + frame (u/locate-shape (obj/get self "$file") (obj/get self "$page") frame-id) frame-x (:x frame)] (- (:x shape) frame-x))) :set (fn [self value] (let [id (obj/get self "$id") - frame-id (-> self proxy->shape :frame-id) - frame (locate-shape (obj/get self "$file") (obj/get self "$page") frame-id) + frame-id (-> self u/proxy->shape :frame-id) + frame (u/locate-shape (obj/get self "$file") (obj/get self "$page") frame-id) frame-x (:x frame)] (st/emit! (udw/update-position id {:x (+ frame-x value)}))))} {:name "frameY" :get (fn [self] - (let [shape (proxy->shape self) + (let [shape (u/proxy->shape self) frame-id (:parent-id shape) - frame (locate-shape (obj/get self "$file") (obj/get self "$page") frame-id) + frame (u/locate-shape (obj/get self "$file") (obj/get self "$page") frame-id) frame-y (:y frame)] (- (:y shape) frame-y))) :set (fn [self value] (let [id (obj/get self "$id") - frame-id (-> self proxy->shape :frame-id) - frame (locate-shape (obj/get self "$file") (obj/get self "$page") frame-id) + frame-id (-> self u/proxy->shape :frame-id) + frame (u/locate-shape (obj/get self "$file") (obj/get self "$page") frame-id) frame-y (:y frame)] (st/emit! (udw/update-position id {:y (+ frame-y value)}))))} {:name "width" - :get #(-> % proxy->shape :width)} + :get #(-> % u/proxy->shape :width)} {:name "height" - :get #(-> % proxy->shape :height)} + :get #(-> % u/proxy->shape :height)} {:name "flipX" - :get #(-> % proxy->shape :flip-x)} + :get #(-> % u/proxy->shape :flip-x)} {:name "flipY" - :get #(-> % proxy->shape :flip-y)} + :get #(-> % u/proxy->shape :flip-y)} ;; Strokes and fills {:name "fills" :get #(if (cfh/text-shape? data) - (-> % proxy->shape text-props :fills array-to-js) - (-> % proxy->shape :fills array-to-js)) + (-> % u/proxy->shape text-props :fills u/array-to-js) + (-> % u/proxy->shape :fills u/array-to-js)) :set (fn [self value] (let [id (obj/get self "$id") - value (mapv #(utils/from-js %) value)] + value (mapv #(u/from-js %) value)] (st/emit! (dwsh/update-shapes [id] #(assoc % :fills value)))))} {:name "strokes" - :get #(-> % proxy->shape :strokes array-to-js) + :get #(-> % u/proxy->shape :strokes u/array-to-js) :set (fn [self value] (let [id (obj/get self "$id") - value (mapv #(utils/from-js % #{:stroke-style :stroke-alignment}) value)] + value (mapv #(u/from-js % #{:stroke-style :stroke-alignment}) value)] (st/emit! (dwsh/update-shapes [id] #(assoc % :strokes value)))))} {:name "layoutChild" @@ -408,7 +428,7 @@ (let [file-id (obj/get self "$file") page-id (obj/get self "$page") id (obj/get self "$id") - objects (locate-objects file-id page-id)] + objects (u/locate-objects file-id page-id)] (when (ctl/any-layout-immediate-child-id? objects id) (flex/layout-child-proxy file-id page-id id))))} @@ -418,7 +438,7 @@ (let [file-id (obj/get self "$file") page-id (obj/get self "$page") id (obj/get self "$id") - objects (locate-objects file-id page-id)] + objects (u/locate-objects file-id page-id)] (when (ctl/grid-layout-immediate-child-id? objects id) (grid/layout-cell-proxy file-id page-id id))))}) @@ -433,7 +453,7 @@ {:name "grid" :get (fn [self] - (let [layout (-> self proxy->shape :layout) + (let [layout (-> self u/proxy->shape :layout) file-id (obj/get self "$file") page-id (obj/get self "$page") id (obj/get self "$id")] @@ -443,7 +463,7 @@ {:name "flex" :get (fn [self] - (let [layout (-> self proxy->shape :layout) + (let [layout (-> self u/proxy->shape :layout) file-id (obj/get self "$file") page-id (obj/get self "$page") id (obj/get self "$id")] @@ -451,14 +471,14 @@ (flex/flex-layout-proxy file-id page-id id))))} {:name "guides" - :get #(-> % proxy->shape :grids array-to-js) + :get #(-> % u/proxy->shape :grids u/array-to-js) :set (fn [self value] (let [id (obj/get self "$id") - value (mapv #(utils/from-js %) value)] + value (mapv #(u/from-js %) value)] (st/emit! (dwsh/update-shapes [id] #(assoc % :grids value)))))} {:name "horizontalSizing" - :get #(-> % proxy->shape :layout-item-h-sizing (d/nilv :fix) d/name) + :get #(-> % u/proxy->shape :layout-item-h-sizing (d/nilv :fix) d/name) :set (fn [self value] (let [id (obj/get self "$id") @@ -467,7 +487,7 @@ (st/emit! (dwsl/update-layout #{id} {:layout-item-h-sizing value})))))} {:name "verticalSizing" - :get #(-> % proxy->shape :layout-item-v-sizing (d/nilv :fix) d/name) + :get #(-> % u/proxy->shape :layout-item-v-sizing (d/nilv :fix) d/name) :set (fn [self value] (let [id (obj/get self "$id") @@ -478,14 +498,14 @@ (cond-> (cfh/text-shape? data) (crc/add-properties! {:name "characters" - :get #(-> % proxy->shape :content txt/content->text) + :get #(-> % u/proxy->shape :content txt/content->text) :set (fn [self value] (let [id (obj/get self "$id")] ;; The user is currently editing the text. We need to update the ;; editor as well (when (contains? (:workspace-editor-state @st/state) id) - (let [shape (proxy->shape self) + (let [shape (u/proxy->shape self) editor (-> shape (txt/change-text value) @@ -496,7 +516,7 @@ (st/emit! (dwsh/update-shapes [id] #(txt/change-text % value)))))} {:name "growType" - :get #(-> % proxy->shape :grow-type d/name) + :get #(-> % u/proxy->shape :grow-type d/name) :set (fn [self value] (let [id (obj/get self "$id") @@ -505,63 +525,63 @@ (st/emit! (dwsh/update-shapes [id] #(assoc % :grow-type value))))))} {:name "fontId" - :get #(-> % proxy->shape text-props :font-id) + :get #(-> % u/proxy->shape text-props :font-id) :set (fn [self value] (let [id (obj/get self "$id")] (st/emit! (dwt/update-attrs id {:font-id value}))))} {:name "fontFamily" - :get #(-> % proxy->shape text-props :font-family) + :get #(-> % u/proxy->shape text-props :font-family) :set (fn [self value] (let [id (obj/get self "$id")] (st/emit! (dwt/update-attrs id {:font-id value}))))} {:name "fontVariantId" - :get #(-> % proxy->shape text-props :font-variant-id) + :get #(-> % u/proxy->shape text-props :font-variant-id) :set (fn [self value] (let [id (obj/get self "$id")] (st/emit! (dwt/update-attrs id {:font-id value}))))} {:name "fontSize" - :get #(-> % proxy->shape text-props :font-size) + :get #(-> % u/proxy->shape text-props :font-size) :set (fn [self value] (let [id (obj/get self "$id")] (st/emit! (dwt/update-attrs id {:font-id value}))))} {:name "fontWeight" - :get #(-> % proxy->shape text-props :font-weight) + :get #(-> % u/proxy->shape text-props :font-weight) :set (fn [self value] (let [id (obj/get self "$id")] (st/emit! (dwt/update-attrs id {:font-id value}))))} {:name "fontStyle" - :get #(-> % proxy->shape text-props :font-style) + :get #(-> % u/proxy->shape text-props :font-style) :set (fn [self value] (let [id (obj/get self "$id")] (st/emit! (dwt/update-attrs id {:font-style value}))))} {:name "lineHeight" - :get #(-> % proxy->shape text-props :line-height) + :get #(-> % u/proxy->shape text-props :line-height) :set (fn [self value] (let [id (obj/get self "$id")] (st/emit! (dwt/update-attrs id {:line-height value}))))} {:name "letterSpacing" - :get #(-> % proxy->shape text-props :letter-spacing) + :get #(-> % u/proxy->shape text-props :letter-spacing) :set (fn [self value] (let [id (obj/get self "$id")] (st/emit! (dwt/update-attrs id {:letter-spacing value}))))} {:name "textTransform" - :get #(-> % proxy->shape text-props :text-transform) + :get #(-> % u/proxy->shape text-props :text-transform) :set (fn [self value] (let [id (obj/get self "$id")] @@ -570,4 +590,14 @@ (cond-> (or (cfh/path-shape? data) (cfh/bool-shape? data)) (crc/add-properties! {:name "content" - :get #(-> % proxy->shape :content array-to-js)})))))) + :get #(-> % u/proxy->shape :content u/array-to-js) + :set + (fn [_ value] + (let [content + (->> value + (map u/from-js) + (mapv parse-command) + (spp/simplify-commands)) + selrect (gsh/content->selrect content) + points (grc/rect->points selrect)] + (st/emit! (dwsh/update-shapes [id] (fn [shape] (assoc shape :content content :selrect selrect :points points))))))})))))) From 3e2ccbc85f8e322af1030f1a1579ad08661b3035 Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Tue, 4 Jun 2024 16:18:55 +0200 Subject: [PATCH 047/476] :sparkles: Add infor for users --- frontend/src/app/main/data/workspace.cljs | 22 ++++++----- frontend/src/app/plugins/api.cljs | 15 +++++++ frontend/src/app/plugins/page.cljs | 25 ++++++++++-- frontend/src/app/plugins/user.cljs | 48 +++++++++++++++++++++++ frontend/src/app/plugins/utils.cljs | 9 +++++ 5 files changed, 105 insertions(+), 14 deletions(-) create mode 100644 frontend/src/app/plugins/user.cljs diff --git a/frontend/src/app/main/data/workspace.cljs b/frontend/src/app/main/data/workspace.cljs index 677511018e..c2ce35228c 100644 --- a/frontend/src/app/main/data/workspace.cljs +++ b/frontend/src/app/main/data/workspace.cljs @@ -2016,16 +2016,18 @@ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defn change-canvas-color - [color] - (ptk/reify ::change-canvas-color - ptk/WatchEvent - (watch [it state _] - (let [page (wsh/lookup-page state) - changes (-> (pcb/empty-changes it) - (pcb/with-page page) - (pcb/set-page-option :background (:color color)))] - - (rx/of (dch/commit-changes changes)))))) + ([color] + (change-canvas-color nil color)) + ([page-id color] + (ptk/reify ::change-canvas-color + ptk/WatchEvent + (watch [it state _] + (let [page-id (or page-id (:current-page-id state)) + page (wsh/lookup-page state page-id) + changes (-> (pcb/empty-changes it) + (pcb/with-page page) + (pcb/set-page-option :background (:color color)))] + (rx/of (dch/commit-changes changes))))))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Read only diff --git a/frontend/src/app/plugins/api.cljs b/frontend/src/app/plugins/api.cljs index cffc8d5cd5..66bd6ee750 100644 --- a/frontend/src/app/plugins/api.cljs +++ b/frontend/src/app/plugins/api.cljs @@ -24,6 +24,7 @@ [app.plugins.library :as library] [app.plugins.page :as page] [app.plugins.shape :as shape] + [app.plugins.user :as user] [app.plugins.utils :as utils] [app.plugins.viewport :as viewport] [app.util.object :as obj] @@ -92,6 +93,18 @@ "dark" (get-in @st/state [:profile :theme])))) + (getCurrentUser + [_] + (user/current-user-proxy (:session-id @st/state))) + + (getActiveUsers + [_] + (apply array + (->> (:workspace-presence @st/state) + (vals) + (remove #(= (:id %) (:session-id @st/state))) + (map #(user/active-user-proxy (:id %)))))) + (uploadMediaUrl [_ name url] (let [file-id (:current-file-id @st/state)] @@ -190,4 +203,6 @@ {:name "currentPage" :get #(.getPage ^js %)} {:name "selection" :get #(.getSelectedShapes ^js %)} {:name "viewport" :get #(.getViewport ^js %)} + {:name "currentUser" :get #(.getCurrentUser ^js %)} + {:name "activeUsers" :get #(.getActiveUsers ^js %)} {:name "library" :get (fn [_] (library/library-subcontext))})) diff --git a/frontend/src/app/plugins/page.cljs b/frontend/src/app/plugins/page.cljs index 68f26ed8e3..4e3140264d 100644 --- a/frontend/src/app/plugins/page.cljs +++ b/frontend/src/app/plugins/page.cljs @@ -7,11 +7,14 @@ (ns app.plugins.page "RPC for plugins runtime." (:require + [app.common.colors :as cc] [app.common.data.macros :as dm] [app.common.record :as crc] [app.common.uuid :as uuid] + [app.main.data.workspace :as dw] + [app.main.store :as st] [app.plugins.shape :as shape] - [app.plugins.utils :refer [locate-page proxy->page]] + [app.plugins.utils :as u] [app.util.object :as obj])) (deftype PageProxy [$file $id] @@ -29,7 +32,7 @@ [_] ;; Returns a lazy (iterable) of all available shapes (when (and (some? $file) (some? $id)) - (let [page (locate-page $file $id)] + (let [page (u/locate-page $file $id)] (apply array (sequence (map shape/shape-proxy) (keys (:objects page)))))))) (crc/define-properties! @@ -48,8 +51,22 @@ :get #(dm/str (obj/get % "$id"))} {:name "name" - :get #(-> % proxy->page :name)} + :get #(-> % u/proxy->page :name) + :set + (fn [_ value] + (if (string? value) + (st/emit! (dw/rename-page id value)) + (u/display-not-valid :page-name value)))} {:name "root" :enumerable false - :get #(.getRoot ^js %)})) + :get #(.getRoot ^js %)} + + {:name "background" + :enumerable false + :get #(or (-> % u/proxy->page :options :background) cc/canvas) + :set + (fn [_ value] + (if (and (some? value) (string? value) (cc/valid-hex-color? value)) + (st/emit! (dw/change-canvas-color id {:color value})) + (u/display-not-valid :page-background-color value)))})) diff --git a/frontend/src/app/plugins/user.cljs b/frontend/src/app/plugins/user.cljs new file mode 100644 index 0000000000..b7556ecbf8 --- /dev/null +++ b/frontend/src/app/plugins/user.cljs @@ -0,0 +1,48 @@ +;; This Source Code Form is subject to the terms of the Mozilla Public +;; License, v. 2.0. If a copy of the MPL was not distributed with this +;; file, You can obtain one at http://mozilla.org/MPL/2.0/. +;; +;; Copyright (c) KALEIDOS INC + +(ns app.plugins.user + (:require + [app.common.record :as crc] + [app.config :as cfg] + [app.plugins.utils :as u] + [app.util.object :as obj])) + +(deftype CurrentUserProxy [$session]) +(deftype ActiveUserProxy [$session]) + +(defn add-user-properties + [user-proxy] + (let [session-id (obj/get user-proxy "$session")] + (crc/add-properties! + user-proxy + {:name "id" + :get (fn [_] (-> (u/locate-profile session-id) :id str))} + + {:name "name" + :get (fn [_] (-> (u/locate-profile session-id) :fullname))} + + {:name "avatarUrl" + :get (fn [_] (cfg/resolve-profile-photo-url (u/locate-profile session-id)))} + + {:name "color" + :get (fn [_] (-> (u/locate-presence session-id) :color))} + + {:name "sessionId" + :get (fn [_] (str session-id))}))) + +(defn current-user-proxy + [session-id] + (-> (CurrentUserProxy. session-id) + (add-user-properties))) + +(defn active-user-proxy + [session-id] + (-> (ActiveUserProxy. session-id) + (add-user-properties) + (crc/add-properties! + {:name "position" :get (fn [_] (-> (u/locate-presence session-id) :point u/to-js))} + {:name "zoom" :get (fn [_] (-> (u/locate-presence session-id) :zoom))}))) diff --git a/frontend/src/app/plugins/utils.cljs b/frontend/src/app/plugins/utils.cljs index 6611bba726..c057aa0b67 100644 --- a/frontend/src/app/plugins/utils.cljs +++ b/frontend/src/app/plugins/utils.cljs @@ -53,6 +53,15 @@ (assert (uuid? id) "Component not valid uuid") (dm/get-in (locate-file file-id) [:data :components id])) +(defn locate-presence + [session-id] + (dm/get-in @st/state [:workspace-presence session-id])) + +(defn locate-profile + [session-id] + (let [{:keys [profile-id]} (locate-presence session-id)] + (dm/get-in @st/state [:users profile-id]))) + (defn proxy->file [proxy] (let [id (obj/get proxy "$id")] From 3a40c7f59c4c7d1548cb26ab978409c416c747c9 Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Tue, 4 Jun 2024 11:13:10 +0200 Subject: [PATCH 048/476] :arrow_up: Update plugin runtime --- frontend/resources/plugins-runtime/index.js | 6556 ++++++++++--------- 1 file changed, 3471 insertions(+), 3085 deletions(-) diff --git a/frontend/resources/plugins-runtime/index.js b/frontend/resources/plugins-runtime/index.js index 33e0bd06be..c97b3c7fed 100644 --- a/frontend/resources/plugins-runtime/index.js +++ b/frontend/resources/plugins-runtime/index.js @@ -1,509 +1,593 @@ -var An = (t, e, r) => { +var Vn = (t, e, r) => { if (!e.has(t)) throw TypeError("Cannot " + r); }; -var Se = (t, e, r) => (An(t, e, "read from private field"), r ? r.call(t) : e.get(t)), Fr = (t, e, r) => { +var Se = (t, e, r) => (Vn(t, e, "read from private field"), r ? r.call(t) : e.get(t)), Br = (t, e, r) => { if (e.has(t)) throw TypeError("Cannot add the same private member more than once"); e instanceof WeakSet ? e.add(t) : e.set(t, r); -}, Dr = (t, e, r, n) => (An(t, e, "write to private field"), n ? n.call(t, r) : e.set(t, r), r); -const x = globalThis, { - Array: Ps, - Date: ks, - FinalizationRegistry: bt, - Float32Array: Ts, - JSON: Is, - Map: Ce, - Math: As, - Number: io, - Object: ln, - Promise: Cs, - Proxy: xr, - Reflect: $s, - RegExp: Be, - Set: Pt, - String: ie, - Symbol: Ot, - WeakMap: Te, - WeakSet: kt +}, Hr = (t, e, r, n) => (Vn(t, e, "write to private field"), n ? n.call(t, r) : e.set(t, r), r); +const k = globalThis, { + Array: Hs, + Date: Vs, + FinalizationRegistry: Pt, + Float32Array: Ws, + JSON: qs, + Map: Pe, + Math: Ks, + Number: So, + Object: bn, + Promise: Ys, + Proxy: $r, + Reflect: Js, + RegExp: We, + Set: $t, + String: pe, + Symbol: St, + WeakMap: Me, + WeakSet: Nt } = globalThis, { // The feral Error constructor is safe for internal use, but must not be // revealed to post-lockdown code in any compartment including the start // compartment since in V8 at least it bears stack inspection capabilities. - Error: le, - RangeError: Ns, - ReferenceError: ot, - SyntaxError: Kt, - TypeError: v + Error: ue, + RangeError: Xs, + ReferenceError: ut, + SyntaxError: rr, + TypeError: v, + AggregateError: Vr } = globalThis, { - assign: Pr, - create: H, + assign: Nr, + create: Z, defineProperties: F, - entries: te, - freeze: g, - getOwnPropertyDescriptor: de, - getOwnPropertyDescriptors: Je, - getOwnPropertyNames: Mt, - getPrototypeOf: B, - is: kr, - isFrozen: ol, - isSealed: sl, - isExtensible: al, - keys: co, - prototype: lo, - seal: il, - preventExtensions: Os, - setPrototypeOf: uo, - values: fo, - fromEntries: Tt -} = ln, { - species: Cn, - toStringTag: He, - iterator: Yt, - matchAll: po, - unscopables: Rs, - keyFor: Ms, - for: cl -} = Ot, { isInteger: Ls } = io, { stringify: mo } = Is, { defineProperty: Fs } = ln, L = (t, e, r) => { - const n = Fs(t, e, r); + entries: re, + freeze: y, + getOwnPropertyDescriptor: J, + getOwnPropertyDescriptors: Ze, + getOwnPropertyNames: Ut, + getPrototypeOf: j, + is: Rr, + isFrozen: jl, + isSealed: Zl, + isExtensible: zl, + keys: xo, + prototype: wn, + seal: Gl, + preventExtensions: Qs, + setPrototypeOf: ko, + values: Po, + fromEntries: gt +} = bn, { + species: Wr, + toStringTag: qe, + iterator: nr, + matchAll: To, + unscopables: ea, + keyFor: ta, + for: ra +} = St, { isInteger: na } = So, { stringify: Ao } = qs, { defineProperty: oa } = bn, M = (t, e, r) => { + const n = oa(t, e, r); if (n !== t) throw v( - `Please report that the original defineProperty silently failed to set ${mo( - ie(e) + `Please report that the original defineProperty silently failed to set ${Ao( + pe(e) )}. (SES_DEFINE_PROPERTY_FAILED_SILENTLY)` ); return n; }, { - apply: oe, - construct: lr, - get: Ds, - getOwnPropertyDescriptor: Us, - has: ho, - isExtensible: js, - ownKeys: it, - preventExtensions: Zs, - set: yo -} = $s, { isArray: vt, prototype: Ie } = Ps, { prototype: It } = Ce, { prototype: Tr } = RegExp, { prototype: Jt } = Pt, { prototype: Re } = ie, { prototype: Ir } = Te, { prototype: go } = kt, { prototype: un } = Function, { prototype: vo } = Cs, zs = B(Uint8Array.prototype), { bind: $n } = un, k = $n.bind($n.call), se = k(lo.hasOwnProperty), Ve = k(Ie.filter), st = k(Ie.forEach), Ar = k(Ie.includes), At = k(Ie.join), fe = ( + apply: ne, + construct: gr, + get: sa, + getOwnPropertyDescriptor: aa, + has: Io, + isExtensible: ia, + ownKeys: De, + preventExtensions: ca, + set: Co +} = Js, { isArray: xt, prototype: _e } = Hs, { prototype: Rt } = Pe, { prototype: Or } = RegExp, { prototype: or } = $t, { prototype: Le } = pe, { prototype: Mr } = Me, { prototype: $o } = Nt, { prototype: En } = Function, { prototype: No } = Ys, { prototype: Ro } = j( + // eslint-disable-next-line no-empty-function, func-names + function* () { + } +), la = j(Uint8Array.prototype), { bind: rn } = En, P = rn.bind(rn.call), oe = P(wn.hasOwnProperty), Ke = P(_e.filter), dt = P(_e.forEach), Lr = P(_e.includes), Ot = P(_e.join), se = ( /** @type {any} */ - k(Ie.map) -), Hr = k(Ie.pop), ae = k(Ie.push), Gs = k(Ie.slice), Bs = k(Ie.some), _o = k(Ie.sort), Hs = k(Ie[Yt]), $e = k(It.set), De = k(It.get), Cr = k(It.has), Vs = k(It.delete), Ws = k(It.entries), qs = k(It[Yt]), $r = k(Jt.add); -k(Jt.delete); -const Nn = k(Jt.forEach), dn = k(Jt.has), Ks = k(Jt[Yt]), fn = k(Tr.test), pn = k(Tr.exec), Ys = k(Tr[po]), bo = k(Re.endsWith), Js = k(Re.includes), Xs = k(Re.indexOf); -k(Re.match); -const ur = ( + P(_e.map) +), Oo = ( /** @type {any} */ - k(Re.replace) -), Qs = k(Re.search), mn = k(Re.slice), wo = k(Re.split), So = k(Re.startsWith), ea = k(Re[Yt]), ta = k(Ir.delete), M = k(Ir.get), hn = k(Ir.has), ee = k(Ir.set), Nr = k(go.add), Xt = k(go.has), ra = k(un.toString), na = k(vo.catch), yn = ( + P(_e.flatMap) +), yr = P(_e.pop), X = P(_e.push), ua = P(_e.slice), da = P(_e.some), Mo = P(_e.sort), fa = P(_e[nr]), $e = P(Rt.set), Ue = P(Rt.get), Fr = P(Rt.has), pa = P(Rt.delete), ma = P(Rt.entries), ha = P(Rt[nr]), Sn = P(or.add); +P(or.delete); +const Wn = P(or.forEach), xn = P(or.has), ga = P(or[nr]), kn = P(Or.test), Pn = P(Or.exec), ya = P(Or[To]), Lo = P(Le.endsWith), Fo = P(Le.includes), va = P(Le.indexOf); +P(Le.match); +const vr = P(Ro.next), Do = P(Ro.throw), _r = ( /** @type {any} */ - k(vo.then) -), oa = bt && k(bt.prototype.register); -bt && k(bt.prototype.unregister); -const gn = g(H(null)), We = (t) => ln(t) === t, vn = (t) => t instanceof le, Eo = eval, ve = Function, sa = () => { + P(Le.replace) +), _a = P(Le.search), Tn = P(Le.slice), An = P(Le.split), Uo = P(Le.startsWith), ba = P(Le[nr]), wa = P(Mr.delete), L = P(Mr.get), In = P(Mr.has), ie = P(Mr.set), Dr = P($o.add), sr = P($o.has), Ea = P(En.toString), Sa = P(rn); +P(No.catch); +const jo = ( + /** @type {any} */ + P(No.then) +), xa = Pt && P(Pt.prototype.register); +Pt && P(Pt.prototype.unregister); +const Cn = y(Z(null)), Ye = (t) => bn(t) === t, Ur = (t) => t instanceof ue, Zo = eval, ve = Function, ka = () => { throw v('Cannot eval with evalTaming set to "noEval" (SES_NO_EVAL)'); -}; -function aa() { +}, He = J(Error("er1"), "stack"), qr = J(v("er2"), "stack"); +let zo, Go; +if (He && qr && He.get) + if ( + // In the v8 case as we understand it, all errors have an own stack + // accessor property, but within the same realm, all these accessor + // properties have the same getter and have the same setter. + // This is therefore the case that we repair. + typeof He.get == "function" && He.get === qr.get && typeof He.set == "function" && He.set === qr.set + ) + zo = y(He.get), Go = y(He.set); + else + throw v( + "Unexpected Error own stack accessor functions (SES_UNEXPECTED_ERROR_OWN_STACK_ACCESSOR)" + ); +const Kr = zo, Pa = Go; +function Ta() { return this; } -if (aa()) +if (Ta()) throw v("SES failed to initialize, sloppy mode (SES_NO_SLOPPY)"); -const { freeze: tt } = Object, { apply: ia } = Reflect, _n = (t) => (e, ...r) => ia(t, e, r), ca = _n(Array.prototype.push), On = _n(Array.prototype.includes), la = _n(String.prototype.split), Qe = JSON.stringify, tr = (t, ...e) => { +const { freeze: at } = Object, { apply: Aa } = Reflect, $n = (t) => (e, ...r) => Aa(t, e, r), Ia = $n(Array.prototype.push), qn = $n(Array.prototype.includes), Ca = $n(String.prototype.split), nt = JSON.stringify, cr = (t, ...e) => { let r = t[0]; for (let n = 0; n < e.length; n += 1) r = `${r}${e[n]}${t[n + 1]}`; throw Error(r); -}, xo = (t, e = !1) => { - const r = [], n = (c, u, l = void 0) => { - typeof c == "string" || tr`Environment option name ${Qe(c)} must be a string.`, typeof u == "string" || tr`Environment option default setting ${Qe( - u +}, Bo = (t, e = !1) => { + const r = [], n = (c, l, u = void 0) => { + typeof c == "string" || cr`Environment option name ${nt(c)} must be a string.`, typeof l == "string" || cr`Environment option default setting ${nt( + l )} must be a string.`; - let d = u; + let d = l; const f = t.process || void 0, m = typeof f == "object" && f.env || void 0; if (typeof m == "object" && c in m) { - e || ca(r, c); + e || Ia(r, c); const p = m[c]; - typeof p == "string" || tr`Environment option named ${Qe( + typeof p == "string" || cr`Environment option named ${nt( c - )}, if present, must have a corresponding string value, got ${Qe( + )}, if present, must have a corresponding string value, got ${nt( p )}`, d = p; } - return l === void 0 || d === u || On(l, d) || tr`Unrecognized ${Qe(c)} value ${Qe( + return u === void 0 || d === l || qn(u, d) || cr`Unrecognized ${nt(c)} value ${nt( d - )}. Expected one of ${Qe([u, ...l])}`, d; + )}. Expected one of ${nt([l, ...u])}`, d; }; - tt(n); - const a = (c) => { - const u = n(c, ""); - return tt(u === "" ? [] : la(u, ",")); + at(n); + const o = (c) => { + const l = n(c, ""); + return at(l === "" ? [] : Ca(l, ",")); }; - tt(a); - const s = (c, u) => On(a(c), u), i = () => tt([...r]); - return tt(i), tt({ + at(o); + const a = (c, l) => qn(o(c), l), i = () => at([...r]); + return at(i), at({ getEnvironmentOption: n, - getEnvironmentOptionsList: a, - environmentOptionsListHas: s, + getEnvironmentOptionsList: o, + environmentOptionsListHas: a, getCapturedEnvironmentOptionNames: i }); }; -tt(xo); +at(Bo); const { - getEnvironmentOption: he, - getEnvironmentOptionsList: ll, - environmentOptionsListHas: ul -} = xo(globalThis, !0), dr = (t) => (t = `${t}`, t.length >= 1 && Js("aeiouAEIOU", t[0]) ? `an ${t}` : `a ${t}`); -g(dr); -const Po = (t, e = void 0) => { - const r = new Pt(), n = (a, s) => { - switch (typeof s) { + getEnvironmentOption: le, + getEnvironmentOptionsList: Bl, + environmentOptionsListHas: Hl +} = Bo(globalThis, !0), br = (t) => (t = `${t}`, t.length >= 1 && Fo("aeiouAEIOU", t[0]) ? `an ${t}` : `a ${t}`); +y(br); +const Ho = (t, e = void 0) => { + const r = new $t(), n = (o, a) => { + switch (typeof a) { case "object": { - if (s === null) + if (a === null) return null; - if (dn(r, s)) + if (xn(r, a)) return "[Seen]"; - if ($r(r, s), vn(s)) - return `[${s.name}: ${s.message}]`; - if (He in s) - return `[${s[He]}]`; - if (vt(s)) - return s; - const i = co(s); + if (Sn(r, a), Ur(a)) + return `[${a.name}: ${a.message}]`; + if (qe in a) + return `[${a[qe]}]`; + if (xt(a)) + return a; + const i = xo(a); if (i.length < 2) - return s; + return a; let c = !0; - for (let l = 1; l < i.length; l += 1) - if (i[l - 1] >= i[l]) { + for (let u = 1; u < i.length; u += 1) + if (i[u - 1] >= i[u]) { c = !1; break; } if (c) - return s; - _o(i); - const u = fe(i, (l) => [l, s[l]]); - return Tt(u); + return a; + Mo(i); + const l = se(i, (u) => [u, a[u]]); + return gt(l); } case "function": - return `[Function ${s.name || ""}]`; + return `[Function ${a.name || ""}]`; case "string": - return So(s, "[") ? `[${s}]` : s; + return Uo(a, "[") ? `[${a}]` : a; case "undefined": case "symbol": - return `[${ie(s)}]`; + return `[${pe(a)}]`; case "bigint": - return `[${s}n]`; + return `[${a}n]`; case "number": - return kr(s, NaN) ? "[NaN]" : s === 1 / 0 ? "[Infinity]" : s === -1 / 0 ? "[-Infinity]" : s; + return Rr(a, NaN) ? "[NaN]" : a === 1 / 0 ? "[Infinity]" : a === -1 / 0 ? "[-Infinity]" : a; default: - return s; + return a; } }; try { - return mo(t, n, e); + return Ao(t, n, e); } catch { return "[Something that failed to stringify]"; } }; -g(Po); -const { isSafeInteger: ua } = Number, { freeze: yt } = Object, { toStringTag: da } = Symbol, Rn = (t) => { +y(Ho); +const { isSafeInteger: $a } = Number, { freeze: _t } = Object, { toStringTag: Na } = Symbol, Kn = (t) => { const r = { next: void 0, prev: void 0, data: t }; return r.next = r, r.prev = r, r; -}, Mn = (t, e) => { +}, Yn = (t, e) => { if (t === e) throw TypeError("Cannot splice a cell into itself"); if (e.next !== e || e.prev !== e) throw TypeError("Expected self-linked cell"); const r = e, n = t.next; return r.prev = t, r.next = n, t.next = r, n.prev = r, r; -}, Ur = (t) => { +}, Yr = (t) => { const { prev: e, next: r } = t; e.next = r, r.prev = e, t.prev = t, t.next = t; -}, ko = (t) => { - if (!ua(t) || t < 0) +}, Vo = (t) => { + if (!$a(t) || t < 0) throw TypeError("keysBudget must be a safe non-negative integer number"); const e = /* @__PURE__ */ new WeakMap(); let r = 0; - const n = Rn(void 0), a = (d) => { + const n = Kn(void 0), o = (d) => { const f = e.get(d); if (!(f === void 0 || f.data === void 0)) - return Ur(f), Mn(n, f), f; - }, s = (d) => a(d) !== void 0; - yt(s); + return Yr(f), Yn(n, f), f; + }, a = (d) => o(d) !== void 0; + _t(a); const i = (d) => { - const f = a(d); + const f = o(d); return f && f.data && f.data.get(d); }; - yt(i); + _t(i); const c = (d, f) => { if (t < 1) - return l; - let m = a(d); - if (m === void 0 && (m = Rn(void 0), Mn(n, m)), !m.data) + return u; + let m = o(d); + if (m === void 0 && (m = Kn(void 0), Yn(n, m)), !m.data) for (r += 1, m.data = /* @__PURE__ */ new WeakMap(), e.set(d, m); r > t; ) { const p = n.prev; - Ur(p), p.data = void 0, r -= 1; + Yr(p), p.data = void 0, r -= 1; } - return m.data.set(d, f), l; + return m.data.set(d, f), u; }; - yt(c); - const u = (d) => { + _t(c); + const l = (d) => { const f = e.get(d); - return f === void 0 || (Ur(f), e.delete(d), f.data === void 0) ? !1 : (f.data = void 0, r -= 1, !0); + return f === void 0 || (Yr(f), e.delete(d), f.data === void 0) ? !1 : (f.data = void 0, r -= 1, !0); }; - yt(u); - const l = yt({ - has: s, + _t(l); + const u = _t({ + has: a, get: i, set: c, - delete: u, + delete: l, // eslint-disable-next-line jsdoc/check-types [ /** @type {typeof Symbol.toStringTag} */ - da + Na ]: "LRUCacheMap" }); - return l; + return u; }; -yt(ko); -const { freeze: ar } = Object, { isSafeInteger: fa } = Number, pa = 1e3, ma = 100, To = (t = pa, e = ma) => { - if (!fa(e) || e < 1) +_t(Vo); +const { freeze: mr } = Object, { isSafeInteger: Ra } = Number, Oa = 1e3, Ma = 100, Wo = (t = Oa, e = Ma) => { + if (!Ra(e) || e < 1) throw TypeError( "argsPerErrorBudget must be a safe positive integer number" ); - const r = ko(t), n = (s, i) => { - const c = r.get(s); - c !== void 0 ? (c.length >= e && c.shift(), c.push(i)) : r.set(s, [i]); + const r = Vo(t), n = (a, i) => { + const c = r.get(a); + c !== void 0 ? (c.length >= e && c.shift(), c.push(i)) : r.set(a, [i]); }; - ar(n); - const a = (s) => { - const i = r.get(s); - return r.delete(s), i; + mr(n); + const o = (a) => { + const i = r.get(a); + return r.delete(a), i; }; - return ar(a), ar({ + return mr(o), mr({ addLogArgs: n, - takeLogArgsArray: a + takeLogArgsArray: o }); }; -ar(To); -const wt = new Te(), ct = (t, e = void 0) => { - const r = g({ - toString: g(() => Po(t, e)) +mr(Wo); +const Tt = new Me(), Je = (t, e = void 0) => { + const r = y({ + toString: y(() => Ho(t, e)) }); - return ee(wt, r, t), r; + return ie(Tt, r, t), r; }; -g(ct); -const ha = g(/^[\w:-]( ?[\w:-])*$/), Vr = (t, e = void 0) => { - if (typeof t != "string" || !fn(ha, t)) - return ct(t, e); - const r = g({ - toString: g(() => t) +y(Je); +const La = y(/^[\w:-]( ?[\w:-])*$/), nn = (t, e = void 0) => { + if (typeof t != "string" || !kn(La, t)) + return Je(t, e); + const r = y({ + toString: y(() => t) }); - return ee(wt, r, t), r; + return ie(Tt, r, t), r; }; -g(Vr); -const Or = new Te(), Io = ({ template: t, args: e }) => { +y(nn); +const jr = new Me(), qo = ({ template: t, args: e }) => { const r = [t[0]]; for (let n = 0; n < e.length; n += 1) { - const a = e[n]; - let s; - hn(wt, a) ? s = `${a}` : vn(a) ? s = `(${dr(a.name)})` : s = `(${dr(typeof a)})`, ae(r, s, t[n + 1]); + const o = e[n]; + let a; + In(Tt, o) ? a = `${o}` : Ur(o) ? a = `(${br(o.name)})` : a = `(${br(typeof o)})`, X(r, a, t[n + 1]); } - return At(r, ""); -}, Ao = g({ + return Ot(r, ""); +}, Ko = y({ toString() { - const t = M(Or, this); - return t === void 0 ? "[Not a DetailsToken]" : Io(t); + const t = L(jr, this); + return t === void 0 ? "[Not a DetailsToken]" : qo(t); } }); -g(Ao.toString); -const St = (t, ...e) => { - const r = g({ __proto__: Ao }); - return ee(Or, r, { template: t, args: e }), r; +y(Ko.toString); +const pt = (t, ...e) => { + const r = y({ __proto__: Ko }); + return ie(jr, r, { template: t, args: e }), /** @type {DetailsToken} */ + /** @type {unknown} */ + r; }; -g(St); -const Co = (t, ...e) => (e = fe( +y(pt); +const Yo = (t, ...e) => (e = se( e, - (r) => hn(wt, r) ? r : ct(r) -), St(t, ...e)); -g(Co); -const $o = ({ template: t, args: e }) => { + (r) => In(Tt, r) ? r : Je(r) +), pt(t, ...e)); +y(Yo); +const Jo = ({ template: t, args: e }) => { const r = [t[0]]; for (let n = 0; n < e.length; n += 1) { - let a = e[n]; - hn(wt, a) && (a = M(wt, a)); - const s = ur(Hr(r) || "", / $/, ""); - s !== "" && ae(r, s); - const i = ur(t[n + 1], /^ /, ""); - ae(r, a, i); + let o = e[n]; + In(Tt, o) && (o = L(Tt, o)); + const a = _r(yr(r) || "", / $/, ""); + a !== "" && X(r, a); + const i = _r(t[n + 1], /^ /, ""); + X(r, o, i); } - return r[r.length - 1] === "" && Hr(r), r; -}, ir = new Te(); -let Wr = 0; -const Ln = new Te(), No = (t, e = t.name) => { - let r = M(Ln, t); - return r !== void 0 || (Wr += 1, r = `${e}#${Wr}`, ee(Ln, t, r)), r; -}, qr = (t = St`Assert failed`, e = x.Error, { errorName: r = void 0 } = {}) => { - typeof t == "string" && (t = St([t])); - const n = M(Or, t); - if (n === void 0) - throw v(`unrecognized details ${ct(t)}`); - const a = Io(n), s = new e(a); - return ee(ir, s, $o(n)), r !== void 0 && No(s, r), s; + return r[r.length - 1] === "" && yr(r), r; +}, hr = new Me(); +let on = 0; +const Jn = new Me(), Xo = (t, e = t.name) => { + let r = L(Jn, t); + return r !== void 0 || (on += 1, r = `${e}#${on}`, ie(Jn, t, r)), r; +}, Fa = (t) => { + const e = Ze(t), { + name: r, + message: n, + errors: o = void 0, + cause: a = void 0, + stack: i = void 0, + ...c + } = e, l = De(c); + if (l.length >= 1) { + for (const d of l) + delete t[d]; + const u = Z(wn, c); + Nn( + t, + pt`originally with properties ${Je(u)}` + ); + } + for (const u of De(t)) { + const d = e[u]; + d && oe(d, "get") && M(t, u, { + value: t[u] + // invoke the getter to convert to data property + }); + } + y(t); +}, sn = (t = pt`Assert failed`, e = k.Error, { + errorName: r = void 0, + cause: n = void 0, + errors: o = void 0, + sanitize: a = !0 +} = {}) => { + typeof t == "string" && (t = pt([t])); + const i = L(jr, t); + if (i === void 0) + throw v(`unrecognized details ${Je(t)}`); + const c = qo(i), l = n && { cause: n }; + let u; + return typeof Vr < "u" && e === Vr ? u = Vr(o || [], c, l) : (u = /** @type {ErrorConstructor} */ + e( + c, + l + ), o !== void 0 && M(u, "errors", { + value: o, + writable: !0, + enumerable: !1, + configurable: !0 + })), ie(hr, u, Jo(i)), r !== void 0 && Xo(u, r), a && Fa(u), u; }; -g(qr); -const { addLogArgs: ya, takeLogArgsArray: ga } = To(), Kr = new Te(), Oo = (t, e) => { - typeof e == "string" && (e = St([e])); - const r = M(Or, e); +y(sn); +const { addLogArgs: Da, takeLogArgsArray: Ua } = Wo(), an = new Me(), Nn = (t, e) => { + typeof e == "string" && (e = pt([e])); + const r = L(jr, e); if (r === void 0) - throw v(`unrecognized details ${ct(e)}`); - const n = $o(r), a = M(Kr, t); - if (a !== void 0) - for (const s of a) - s(t, n); + throw v(`unrecognized details ${Je(e)}`); + const n = Jo(r), o = L(an, t); + if (o !== void 0) + for (const a of o) + a(t, n); else - ya(t, n); + Da(t, n); }; -g(Oo); -const va = (t) => { +y(Nn); +const ja = (t) => { if (!("stack" in t)) return ""; - const e = `${t.stack}`, r = Xs(e, ` + const e = `${t.stack}`, r = va(e, ` `); - return So(e, " ") || r === -1 ? e : mn(e, r + 1); -}, Yr = { - getStackString: x.getStackString || va, - tagError: (t) => No(t), + return Uo(e, " ") || r === -1 ? e : Tn(e, r + 1); +}, wr = { + getStackString: k.getStackString || ja, + tagError: (t) => Xo(t), resetErrorTagNum: () => { - Wr = 0; + on = 0; }, - getMessageLogArgs: (t) => M(ir, t), + getMessageLogArgs: (t) => L(hr, t), takeMessageLogArgs: (t) => { - const e = M(ir, t); - return ta(ir, t), e; + const e = L(hr, t); + return wa(hr, t), e; }, takeNoteLogArgsArray: (t, e) => { - const r = ga(t); + const r = Ua(t); if (e !== void 0) { - const n = M(Kr, t); - n ? ae(n, e) : ee(Kr, t, [e]); + const n = L(an, t); + n ? X(n, e) : ie(an, t, [e]); } return r || []; } }; -g(Yr); -const Rr = (t = void 0, e = !1) => { - const r = e ? Co : St, n = r`Check failed`, a = (f = n, m = x.Error) => { - const p = qr(f, m); - throw t !== void 0 && t(p), p; +y(wr); +const Zr = (t = void 0, e = !1) => { + const r = e ? Yo : pt, n = r`Check failed`, o = (f = n, m = void 0, p = void 0) => { + const h = sn(f, m, p); + throw t !== void 0 && t(h), h; }; - g(a); - const s = (f, ...m) => a(r(f, ...m)); - function i(f, m = void 0, p = void 0) { - f || a(m, p); + y(o); + const a = (f, ...m) => o(r(f, ...m)); + function i(f, m = void 0, p = void 0, h = void 0) { + f || o(m, p, h); } - const c = (f, m, p = void 0, h = void 0) => { - kr(f, m) || a( + const c = (f, m, p = void 0, h = void 0, _ = void 0) => { + Rr(f, m) || o( p || r`Expected ${f} is same as ${m}`, - h || Ns + h || Xs, + _ ); }; - g(c); - const u = (f, m, p) => { + y(c); + const l = (f, m, p) => { if (typeof f !== m) { - if (typeof m == "string" || s`${ct(m)} must be a string`, p === void 0) { - const h = dr(m); - p = r`${f} must be ${Vr(h)}`; + if (typeof m == "string" || a`${Je(m)} must be a string`, p === void 0) { + const h = br(m); + p = r`${f} must be ${nn(h)}`; } - a(p, v); + o(p, v); } }; - g(u); - const d = Pr(i, { - error: qr, - fail: a, + y(l); + const d = Nr(i, { + error: sn, + fail: o, equal: c, - typeof: u, - string: (f, m = void 0) => u(f, "string", m), - note: Oo, + typeof: l, + string: (f, m = void 0) => l(f, "string", m), + note: Nn, details: r, - Fail: s, - quote: ct, - bare: Vr, - makeAssert: Rr + Fail: a, + quote: Je, + bare: nn, + makeAssert: Zr }); - return g(d); + return y(d); }; -g(Rr); -const Z = Rr(), Ro = de( - zs, - He +y(Zr); +const z = Zr(), Qo = J( + la, + qe ); -Z(Ro); -const Mo = Ro.get; -Z(Mo); -const _a = (t) => oe(Mo, t, []) !== void 0, ba = (t) => { - const e = +ie(t); - return Ls(e) && ie(e) === t; -}, wa = (t) => { - Os(t), st(it(t), (e) => { - const r = de(t, e); - Z(r), ba(e) || L(t, e, { +z(Qo); +const es = Qo.get; +z(es); +const Za = (t) => ne(es, t, []) !== void 0, za = (t) => { + const e = +pe(t); + return na(e) && pe(e) === t; +}, Ga = (t) => { + Qs(t), dt(De(t), (e) => { + const r = J(t, e); + z(r), za(e) || M(t, e, { ...r, writable: !1, configurable: !1 }); }); -}, Sa = () => { - if (typeof x.harden == "function") - return x.harden; - const t = new kt(), { harden: e } = { +}, Ba = () => { + if (typeof k.harden == "function") + return k.harden; + const t = new Nt(), { harden: e } = { /** * @template T * @param {T} root * @returns {T} */ harden(r) { - const n = new Pt(), a = new Te(); - function s(d, f = void 0) { - if (!We(d)) + const n = new $t(); + function o(d) { + if (!Ye(d)) return; - const m = typeof d; - if (m !== "object" && m !== "function") - throw v(`Unexpected typeof: ${m}`); - Xt(t, d) || dn(n, d) || ($r(n, d), ee(a, d, f)); + const f = typeof d; + if (f !== "object" && f !== "function") + throw v(`Unexpected typeof: ${f}`); + sr(t, d) || xn(n, d) || Sn(n, d); } - function i(d) { - _a(d) ? wa(d) : g(d); - const f = M(a, d) || "unknown", m = Je(d), p = B(d); - s(p, `${f}.__proto__`), st(it(m), (h) => { - const _ = `${f}.${ie(h)}`, w = m[ + const a = (d) => { + Za(d) ? Ga(d) : y(d); + const f = Ze(d), m = j(d); + o(m), dt(De(f), (p) => { + const h = f[ /** @type {string} */ - h + p ]; - se(w, "value") ? s(w.value, `${_}`) : (s(w.get, `${_}(get)`), s(w.set, `${_}(set)`)); + oe(h, "value") ? o(h.value) : (o(h.get), o(h.set)); }); - } - function c() { - Nn(n, i); - } - function u(d) { - Nr(t, d); - } - function l() { - Nn(n, u); - } - return s(r), c(), l(), r; + }, i = Kr === void 0 && Pa === void 0 ? ( + // On platforms without v8's error own stack accessor problem, + // don't pay for any extra overhead. + a + ) : (d) => { + if (Ur(d)) { + const f = J(d, "stack"); + f && f.get === Kr && f.configurable && M(d, "stack", { + // NOTE: Calls getter during harden, which seems dangerous. + // But we're only calling the problematic getter whose + // hazards we think we understand. + // @ts-expect-error TS should know FERAL_STACK_GETTER + // cannot be `undefined` here. + // See https://github.com/endojs/endo/pull/2232#discussion_r1575179471 + value: ne(Kr, d, []) + }); + } + return a(d); + }, c = () => { + Wn(n, i); + }, l = (d) => { + Dr(t, d); + }, u = () => { + Wn(n, l); + }; + return o(r), c(), u(), r; } }; return e; -}, Lo = { +}, ts = { // *** Value Properties of the Global Object Infinity: 1 / 0, NaN: NaN, undefined: void 0 -}, Fo = { +}, rs = { // *** Function Properties of the Global Object isFinite: "isFinite", isNaN: "isNaN", @@ -551,6 +635,8 @@ const _a = (t) => oe(Mo, t, []) !== void 0, ba = (t) => { Iterator: "Iterator", // https://github.com/tc39/proposal-async-iterator-helpers AsyncIterator: "AsyncIterator", + // https://github.com/endojs/endo/issues/550 + AggregateError: "AggregateError", // *** Other Properties of the Global Object JSON: "JSON", Reflect: "Reflect", @@ -562,7 +648,7 @@ const _a = (t) => oe(Mo, t, []) !== void 0, ba = (t) => { harden: "harden", HandledPromise: "HandledPromise" // TODO: Until Promise.delegate (see below). -}, Fn = { +}, Xn = { // *** Constructor Properties of the Global Object Date: "%InitialDate%", Error: "%InitialError%", @@ -581,7 +667,7 @@ const _a = (t) => oe(Mo, t, []) !== void 0, ba = (t) => { // TODO https://github.com/Agoric/SES-shim/issues/551 // Need initial WeakRef and FinalizationGroup in // start compartment only. -}, Do = { +}, ns = { // *** Constructor Properties of the Global Object Date: "%SharedDate%", Error: "%SharedError%", @@ -589,32 +675,38 @@ const _a = (t) => oe(Mo, t, []) !== void 0, ba = (t) => { Symbol: "%SharedSymbol%", // *** Other Properties of the Global Object Math: "%SharedMath%" -}, Ea = [ +}, os = [ EvalError, RangeError, ReferenceError, SyntaxError, TypeError, URIError -], Jr = { + // https://github.com/endojs/endo/issues/550 + // Commented out to accommodate platforms prior to AggregateError. + // Instead, conditional push below. + // AggregateError, +]; +typeof AggregateError < "u" && X(os, AggregateError); +const cn = { "[[Proto]]": "%FunctionPrototype%", length: "number", name: "string" // Do not specify "prototype" here, since only Function instances that can // be used as a constructor have a prototype property. For constructors, // since prototype properties are instance-specific, we define it there. -}, xa = { +}, Ha = { // This property is not mentioned in ECMA 262, but is present in V8 and // necessary for lockdown to succeed. "[[Proto]]": "%AsyncFunctionPrototype%" -}, o = Jr, Dn = xa, O = { - get: o, +}, s = cn, Qn = Ha, R = { + get: s, set: "undefined" -}, Ae = { - get: o, - set: o -}, Un = (t) => t === O || t === Ae; -function pt(t) { +}, Ie = { + get: s, + set: s +}, eo = (t) => t === R || t === Ie; +function ot(t) { return { // Properties of the NativeError Constructors "[[Proto]]": "%SharedError%", @@ -622,7 +714,7 @@ function pt(t) { prototype: t }; } -function mt(t) { +function st(t) { return { // Properties of the NativeError Prototype Objects "[[Proto]]": "%ErrorPrototype%", @@ -636,7 +728,7 @@ function mt(t) { cause: !1 }; } -function ye(t) { +function ge(t) { return { // Properties of the TypedArray Constructors "[[Proto]]": "%TypedArray%", @@ -644,7 +736,7 @@ function ye(t) { prototype: t }; } -function ge(t) { +function ye(t) { return { // Properties of the TypedArray Prototype Objects "[[Proto]]": "%TypedArrayPrototype%", @@ -652,7 +744,7 @@ function ge(t) { constructor: t }; } -const jn = { +const to = { E: "number", LN10: "number", LN2: "number", @@ -662,40 +754,40 @@ const jn = { SQRT1_2: "number", SQRT2: "number", "@@toStringTag": "string", - abs: o, - acos: o, - acosh: o, - asin: o, - asinh: o, - atan: o, - atanh: o, - atan2: o, - cbrt: o, - ceil: o, - clz32: o, - cos: o, - cosh: o, - exp: o, - expm1: o, - floor: o, - fround: o, - hypot: o, - imul: o, - log: o, - log1p: o, - log10: o, - log2: o, - max: o, - min: o, - pow: o, - round: o, - sign: o, - sin: o, - sinh: o, - sqrt: o, - tan: o, - tanh: o, - trunc: o, + abs: s, + acos: s, + acosh: s, + asin: s, + asinh: s, + atan: s, + atanh: s, + atan2: s, + cbrt: s, + ceil: s, + clz32: s, + cos: s, + cosh: s, + exp: s, + expm1: s, + floor: s, + fround: s, + hypot: s, + imul: s, + log: s, + log1p: s, + log10: s, + log2: s, + max: s, + min: s, + pow: s, + round: s, + sign: s, + sin: s, + sinh: s, + sqrt: s, + tan: s, + tanh: s, + trunc: s, // See https://github.com/Moddable-OpenSource/moddable/issues/523 idiv: !1, // See https://github.com/Moddable-OpenSource/moddable/issues/523 @@ -710,12 +802,12 @@ const jn = { mod: !1, // See https://github.com/Moddable-OpenSource/moddable/issues/523#issuecomment-1942904505 irandom: !1 -}, fr = { +}, Er = { // ECMA https://tc39.es/ecma262 // The intrinsics object has no prototype to avoid conflicts. "[[Proto]]": null, // %ThrowTypeError% - "%ThrowTypeError%": o, + "%ThrowTypeError%": s, // *** The Global Object // *** Value Properties of the Global Object Infinity: "number", @@ -723,44 +815,44 @@ const jn = { undefined: "undefined", // *** Function Properties of the Global Object // eval - "%UniqueEval%": o, - isFinite: o, - isNaN: o, - parseFloat: o, - parseInt: o, - decodeURI: o, - decodeURIComponent: o, - encodeURI: o, - encodeURIComponent: o, + "%UniqueEval%": s, + isFinite: s, + isNaN: s, + parseFloat: s, + parseInt: s, + decodeURI: s, + decodeURIComponent: s, + encodeURI: s, + encodeURIComponent: s, // *** Fundamental Objects Object: { // Properties of the Object Constructor "[[Proto]]": "%FunctionPrototype%", - assign: o, - create: o, - defineProperties: o, - defineProperty: o, - entries: o, - freeze: o, - fromEntries: o, - getOwnPropertyDescriptor: o, - getOwnPropertyDescriptors: o, - getOwnPropertyNames: o, - getOwnPropertySymbols: o, - getPrototypeOf: o, - hasOwn: o, - is: o, - isExtensible: o, - isFrozen: o, - isSealed: o, - keys: o, - preventExtensions: o, + assign: s, + create: s, + defineProperties: s, + defineProperty: s, + entries: s, + freeze: s, + fromEntries: s, + getOwnPropertyDescriptor: s, + getOwnPropertyDescriptors: s, + getOwnPropertyNames: s, + getOwnPropertySymbols: s, + getPrototypeOf: s, + hasOwn: s, + is: s, + isExtensible: s, + isFrozen: s, + isSealed: s, + keys: s, + preventExtensions: s, prototype: "%ObjectPrototype%", - seal: o, - setPrototypeOf: o, - values: o, + seal: s, + setPrototypeOf: s, + values: s, // https://github.com/tc39/proposal-array-grouping - groupBy: o, + groupBy: s, // Seen on QuickJS __getClass: !1 }, @@ -768,20 +860,20 @@ const jn = { // Properties of the Object Prototype Object "[[Proto]]": null, constructor: "Object", - hasOwnProperty: o, - isPrototypeOf: o, - propertyIsEnumerable: o, - toLocaleString: o, - toString: o, - valueOf: o, + hasOwnProperty: s, + isPrototypeOf: s, + propertyIsEnumerable: s, + toLocaleString: s, + toString: s, + valueOf: s, // Annex B: Additional Properties of the Object.prototype Object // See note in header about the difference between [[Proto]] and --proto-- // special notations. - "--proto--": Ae, - __defineGetter__: o, - __defineSetter__: o, - __lookupGetter__: o, - __lookupSetter__: o + "--proto--": Ie, + __defineGetter__: s, + __defineSetter__: s, + __lookupGetter__: s, + __lookupSetter__: s }, "%UniqueFunction%": { // Properties of the Function Constructor @@ -793,12 +885,12 @@ const jn = { prototype: "%FunctionPrototype%" }, "%FunctionPrototype%": { - apply: o, - bind: o, - call: o, + apply: s, + bind: s, + call: s, constructor: "%InertFunction%", - toString: o, - "@@hasInstance": o, + toString: s, + "@@hasInstance": s, // proposed but not yet std. To be removed if there caller: !1, // proposed but not yet std. To be removed if there @@ -815,8 +907,8 @@ const jn = { }, "%BooleanPrototype%": { constructor: "Boolean", - toString: o, - valueOf: o + toString: s, + valueOf: s }, "%SharedSymbol%": { // Properties of the Symbol Constructor @@ -824,11 +916,11 @@ const jn = { asyncDispose: "symbol", asyncIterator: "symbol", dispose: "symbol", - for: o, + for: s, hasInstance: "symbol", isConcatSpreadable: "symbol", iterator: "symbol", - keyFor: o, + keyFor: s, match: "symbol", matchAll: "symbol", prototype: "%SymbolPrototype%", @@ -849,10 +941,10 @@ const jn = { "%SymbolPrototype%": { // Properties of the Symbol Prototype Object constructor: "%SharedSymbol%", - description: O, - toString: o, - valueOf: o, - "@@toPrimitive": o, + description: R, + toString: s, + valueOf: s, + "@@toPrimitive": s, "@@toStringTag": "string" }, "%InitialError%": { @@ -860,85 +952,89 @@ const jn = { "[[Proto]]": "%FunctionPrototype%", prototype: "%ErrorPrototype%", // Non standard, v8 only, used by tap - captureStackTrace: o, + captureStackTrace: s, // Non standard, v8 only, used by tap, tamed to accessor - stackTraceLimit: Ae, + stackTraceLimit: Ie, // Non standard, v8 only, used by several, tamed to accessor - prepareStackTrace: Ae + prepareStackTrace: Ie }, "%SharedError%": { // Properties of the Error Constructor "[[Proto]]": "%FunctionPrototype%", prototype: "%ErrorPrototype%", // Non standard, v8 only, used by tap - captureStackTrace: o, + captureStackTrace: s, // Non standard, v8 only, used by tap, tamed to accessor - stackTraceLimit: Ae, + stackTraceLimit: Ie, // Non standard, v8 only, used by several, tamed to accessor - prepareStackTrace: Ae + prepareStackTrace: Ie }, "%ErrorPrototype%": { constructor: "%SharedError%", message: "string", name: "string", - toString: o, + toString: s, // proposed de-facto, assumed TODO // Seen on FF Nightly 88.0a1 at: !1, // Seen on FF and XS - stack: Ae, + stack: Ie, // Superfluously present in some versions of V8. // https://github.com/tc39/notes/blob/master/meetings/2021-10/oct-26.md#:~:text=However%2C%20Chrome%2093,and%20node%2016.11. cause: !1 }, // NativeError - EvalError: pt("%EvalErrorPrototype%"), - RangeError: pt("%RangeErrorPrototype%"), - ReferenceError: pt("%ReferenceErrorPrototype%"), - SyntaxError: pt("%SyntaxErrorPrototype%"), - TypeError: pt("%TypeErrorPrototype%"), - URIError: pt("%URIErrorPrototype%"), - "%EvalErrorPrototype%": mt("EvalError"), - "%RangeErrorPrototype%": mt("RangeError"), - "%ReferenceErrorPrototype%": mt("ReferenceError"), - "%SyntaxErrorPrototype%": mt("SyntaxError"), - "%TypeErrorPrototype%": mt("TypeError"), - "%URIErrorPrototype%": mt("URIError"), + EvalError: ot("%EvalErrorPrototype%"), + RangeError: ot("%RangeErrorPrototype%"), + ReferenceError: ot("%ReferenceErrorPrototype%"), + SyntaxError: ot("%SyntaxErrorPrototype%"), + TypeError: ot("%TypeErrorPrototype%"), + URIError: ot("%URIErrorPrototype%"), + // https://github.com/endojs/endo/issues/550 + AggregateError: ot("%AggregateErrorPrototype%"), + "%EvalErrorPrototype%": st("EvalError"), + "%RangeErrorPrototype%": st("RangeError"), + "%ReferenceErrorPrototype%": st("ReferenceError"), + "%SyntaxErrorPrototype%": st("SyntaxError"), + "%TypeErrorPrototype%": st("TypeError"), + "%URIErrorPrototype%": st("URIError"), + // https://github.com/endojs/endo/issues/550 + "%AggregateErrorPrototype%": st("AggregateError"), // *** Numbers and Dates Number: { // Properties of the Number Constructor "[[Proto]]": "%FunctionPrototype%", EPSILON: "number", - isFinite: o, - isInteger: o, - isNaN: o, - isSafeInteger: o, + isFinite: s, + isInteger: s, + isNaN: s, + isSafeInteger: s, MAX_SAFE_INTEGER: "number", MAX_VALUE: "number", MIN_SAFE_INTEGER: "number", MIN_VALUE: "number", NaN: "number", NEGATIVE_INFINITY: "number", - parseFloat: o, - parseInt: o, + parseFloat: s, + parseInt: s, POSITIVE_INFINITY: "number", prototype: "%NumberPrototype%" }, "%NumberPrototype%": { // Properties of the Number Prototype Object constructor: "Number", - toExponential: o, - toFixed: o, - toLocaleString: o, - toPrecision: o, - toString: o, - valueOf: o + toExponential: s, + toFixed: s, + toLocaleString: s, + toPrecision: s, + toString: s, + valueOf: s }, BigInt: { // Properties of the BigInt Constructor "[[Proto]]": "%FunctionPrototype%", - asIntN: o, - asUintN: o, + asIntN: s, + asUintN: s, prototype: "%BigIntPrototype%", // See https://github.com/Moddable-OpenSource/moddable/issues/523 bitLength: !1, @@ -971,174 +1067,174 @@ const jn = { }, "%BigIntPrototype%": { constructor: "BigInt", - toLocaleString: o, - toString: o, - valueOf: o, + toLocaleString: s, + toString: s, + valueOf: s, "@@toStringTag": "string" }, "%InitialMath%": { - ...jn, + ...to, // `%InitialMath%.random()` has the standard unsafe behavior - random: o + random: s }, "%SharedMath%": { - ...jn, + ...to, // `%SharedMath%.random()` is tamed to always throw - random: o + random: s }, "%InitialDate%": { // Properties of the Date Constructor "[[Proto]]": "%FunctionPrototype%", - now: o, - parse: o, + now: s, + parse: s, prototype: "%DatePrototype%", - UTC: o + UTC: s }, "%SharedDate%": { // Properties of the Date Constructor "[[Proto]]": "%FunctionPrototype%", // `%SharedDate%.now()` is tamed to always throw - now: o, - parse: o, + now: s, + parse: s, prototype: "%DatePrototype%", - UTC: o + UTC: s }, "%DatePrototype%": { constructor: "%SharedDate%", - getDate: o, - getDay: o, - getFullYear: o, - getHours: o, - getMilliseconds: o, - getMinutes: o, - getMonth: o, - getSeconds: o, - getTime: o, - getTimezoneOffset: o, - getUTCDate: o, - getUTCDay: o, - getUTCFullYear: o, - getUTCHours: o, - getUTCMilliseconds: o, - getUTCMinutes: o, - getUTCMonth: o, - getUTCSeconds: o, - setDate: o, - setFullYear: o, - setHours: o, - setMilliseconds: o, - setMinutes: o, - setMonth: o, - setSeconds: o, - setTime: o, - setUTCDate: o, - setUTCFullYear: o, - setUTCHours: o, - setUTCMilliseconds: o, - setUTCMinutes: o, - setUTCMonth: o, - setUTCSeconds: o, - toDateString: o, - toISOString: o, - toJSON: o, - toLocaleDateString: o, - toLocaleString: o, - toLocaleTimeString: o, - toString: o, - toTimeString: o, - toUTCString: o, - valueOf: o, - "@@toPrimitive": o, + getDate: s, + getDay: s, + getFullYear: s, + getHours: s, + getMilliseconds: s, + getMinutes: s, + getMonth: s, + getSeconds: s, + getTime: s, + getTimezoneOffset: s, + getUTCDate: s, + getUTCDay: s, + getUTCFullYear: s, + getUTCHours: s, + getUTCMilliseconds: s, + getUTCMinutes: s, + getUTCMonth: s, + getUTCSeconds: s, + setDate: s, + setFullYear: s, + setHours: s, + setMilliseconds: s, + setMinutes: s, + setMonth: s, + setSeconds: s, + setTime: s, + setUTCDate: s, + setUTCFullYear: s, + setUTCHours: s, + setUTCMilliseconds: s, + setUTCMinutes: s, + setUTCMonth: s, + setUTCSeconds: s, + toDateString: s, + toISOString: s, + toJSON: s, + toLocaleDateString: s, + toLocaleString: s, + toLocaleTimeString: s, + toString: s, + toTimeString: s, + toUTCString: s, + valueOf: s, + "@@toPrimitive": s, // Annex B: Additional Properties of the Date.prototype Object - getYear: o, - setYear: o, - toGMTString: o + getYear: s, + setYear: s, + toGMTString: s }, // Text Processing String: { // Properties of the String Constructor "[[Proto]]": "%FunctionPrototype%", - fromCharCode: o, - fromCodePoint: o, + fromCharCode: s, + fromCodePoint: s, prototype: "%StringPrototype%", - raw: o, + raw: s, // See https://github.com/Moddable-OpenSource/moddable/issues/523 fromArrayBuffer: !1 }, "%StringPrototype%": { // Properties of the String Prototype Object length: "number", - at: o, - charAt: o, - charCodeAt: o, - codePointAt: o, - concat: o, + at: s, + charAt: s, + charCodeAt: s, + codePointAt: s, + concat: s, constructor: "String", - endsWith: o, - includes: o, - indexOf: o, - lastIndexOf: o, - localeCompare: o, - match: o, - matchAll: o, - normalize: o, - padEnd: o, - padStart: o, - repeat: o, - replace: o, - replaceAll: o, + endsWith: s, + includes: s, + indexOf: s, + lastIndexOf: s, + localeCompare: s, + match: s, + matchAll: s, + normalize: s, + padEnd: s, + padStart: s, + repeat: s, + replace: s, + replaceAll: s, // ES2021 - search: o, - slice: o, - split: o, - startsWith: o, - substring: o, - toLocaleLowerCase: o, - toLocaleUpperCase: o, - toLowerCase: o, - toString: o, - toUpperCase: o, - trim: o, - trimEnd: o, - trimStart: o, - valueOf: o, - "@@iterator": o, + search: s, + slice: s, + split: s, + startsWith: s, + substring: s, + toLocaleLowerCase: s, + toLocaleUpperCase: s, + toLowerCase: s, + toString: s, + toUpperCase: s, + trim: s, + trimEnd: s, + trimStart: s, + valueOf: s, + "@@iterator": s, // Annex B: Additional Properties of the String.prototype Object - substr: o, - anchor: o, - big: o, - blink: o, - bold: o, - fixed: o, - fontcolor: o, - fontsize: o, - italics: o, - link: o, - small: o, - strike: o, - sub: o, - sup: o, - trimLeft: o, - trimRight: o, + substr: s, + anchor: s, + big: s, + blink: s, + bold: s, + fixed: s, + fontcolor: s, + fontsize: s, + italics: s, + link: s, + small: s, + strike: s, + sub: s, + sup: s, + trimLeft: s, + trimRight: s, // See https://github.com/Moddable-OpenSource/moddable/issues/523 compare: !1, // https://github.com/tc39/proposal-is-usv-string - isWellFormed: o, - toWellFormed: o, - unicodeSets: o, + isWellFormed: s, + toWellFormed: s, + unicodeSets: s, // Seen on QuickJS __quote: !1 }, "%StringIteratorPrototype%": { "[[Proto]]": "%IteratorPrototype%", - next: o, + next: s, "@@toStringTag": "string" }, "%InitialRegExp%": { // Properties of the RegExp Constructor "[[Proto]]": "%FunctionPrototype%", prototype: "%RegExpPrototype%", - "@@species": O, + "@@species": R, // The https://github.com/tc39/proposal-regexp-legacy-features // are all optional, unsafe, and omitted input: !1, @@ -1165,29 +1261,29 @@ const jn = { // Properties of the RegExp Constructor "[[Proto]]": "%FunctionPrototype%", prototype: "%RegExpPrototype%", - "@@species": O + "@@species": R }, "%RegExpPrototype%": { // Properties of the RegExp Prototype Object constructor: "%SharedRegExp%", - exec: o, - dotAll: O, - flags: O, - global: O, - hasIndices: O, - ignoreCase: O, - "@@match": o, - "@@matchAll": o, - multiline: O, - "@@replace": o, - "@@search": o, - source: O, - "@@split": o, - sticky: O, - test: o, - toString: o, - unicode: O, - unicodeSets: O, + exec: s, + dotAll: R, + flags: R, + global: R, + hasIndices: R, + ignoreCase: R, + "@@match": s, + "@@matchAll": s, + multiline: R, + "@@replace": s, + "@@search": s, + source: R, + "@@split": s, + sticky: R, + test: s, + toString: s, + unicode: R, + unicodeSets: R, // Annex B: Additional Properties of the RegExp.prototype Object compile: !1 // UNSAFE and suppressed. @@ -1195,61 +1291,61 @@ const jn = { "%RegExpStringIteratorPrototype%": { // The %RegExpStringIteratorPrototype% Object "[[Proto]]": "%IteratorPrototype%", - next: o, + next: s, "@@toStringTag": "string" }, // Indexed Collections Array: { // Properties of the Array Constructor "[[Proto]]": "%FunctionPrototype%", - from: o, - isArray: o, - of: o, + from: s, + isArray: s, + of: s, prototype: "%ArrayPrototype%", - "@@species": O, + "@@species": R, // Stage 3: // https://tc39.es/proposal-relative-indexing-method/ - at: o, + at: s, // https://tc39.es/proposal-array-from-async/ - fromAsync: o + fromAsync: s }, "%ArrayPrototype%": { // Properties of the Array Prototype Object - at: o, + at: s, length: "number", - concat: o, + concat: s, constructor: "Array", - copyWithin: o, - entries: o, - every: o, - fill: o, - filter: o, - find: o, - findIndex: o, - flat: o, - flatMap: o, - forEach: o, - includes: o, - indexOf: o, - join: o, - keys: o, - lastIndexOf: o, - map: o, - pop: o, - push: o, - reduce: o, - reduceRight: o, - reverse: o, - shift: o, - slice: o, - some: o, - sort: o, - splice: o, - toLocaleString: o, - toString: o, - unshift: o, - values: o, - "@@iterator": o, + copyWithin: s, + entries: s, + every: s, + fill: s, + filter: s, + find: s, + findIndex: s, + flat: s, + flatMap: s, + forEach: s, + includes: s, + indexOf: s, + join: s, + keys: s, + lastIndexOf: s, + map: s, + pop: s, + push: s, + reduce: s, + reduceRight: s, + reverse: s, + shift: s, + slice: s, + some: s, + sort: s, + splice: s, + toLocaleString: s, + toString: s, + unshift: s, + values: s, + "@@iterator": s, "@@unscopables": { "[[Proto]]": null, copyWithin: "boolean", @@ -1279,174 +1375,174 @@ const jn = { groupBy: "boolean" }, // See https://github.com/tc39/proposal-array-find-from-last - findLast: o, - findLastIndex: o, + findLast: s, + findLastIndex: s, // https://github.com/tc39/proposal-change-array-by-copy - toReversed: o, - toSorted: o, - toSpliced: o, - with: o, + toReversed: s, + toSorted: s, + toSpliced: s, + with: s, // https://github.com/tc39/proposal-array-grouping - group: o, + group: s, // Not in proposal? Where? - groupToMap: o, + groupToMap: s, // Not in proposal? Where? - groupBy: o + groupBy: s }, "%ArrayIteratorPrototype%": { // The %ArrayIteratorPrototype% Object "[[Proto]]": "%IteratorPrototype%", - next: o, + next: s, "@@toStringTag": "string" }, // *** TypedArray Objects "%TypedArray%": { // Properties of the %TypedArray% Intrinsic Object "[[Proto]]": "%FunctionPrototype%", - from: o, - of: o, + from: s, + of: s, prototype: "%TypedArrayPrototype%", - "@@species": O + "@@species": R }, "%TypedArrayPrototype%": { - at: o, - buffer: O, - byteLength: O, - byteOffset: O, + at: s, + buffer: R, + byteLength: R, + byteOffset: R, constructor: "%TypedArray%", - copyWithin: o, - entries: o, - every: o, - fill: o, - filter: o, - find: o, - findIndex: o, - forEach: o, - includes: o, - indexOf: o, - join: o, - keys: o, - lastIndexOf: o, - length: O, - map: o, - reduce: o, - reduceRight: o, - reverse: o, - set: o, - slice: o, - some: o, - sort: o, - subarray: o, - toLocaleString: o, - toString: o, - values: o, - "@@iterator": o, - "@@toStringTag": O, + copyWithin: s, + entries: s, + every: s, + fill: s, + filter: s, + find: s, + findIndex: s, + forEach: s, + includes: s, + indexOf: s, + join: s, + keys: s, + lastIndexOf: s, + length: R, + map: s, + reduce: s, + reduceRight: s, + reverse: s, + set: s, + slice: s, + some: s, + sort: s, + subarray: s, + toLocaleString: s, + toString: s, + values: s, + "@@iterator": s, + "@@toStringTag": R, // See https://github.com/tc39/proposal-array-find-from-last - findLast: o, - findLastIndex: o, + findLast: s, + findLastIndex: s, // https://github.com/tc39/proposal-change-array-by-copy - toReversed: o, - toSorted: o, - with: o + toReversed: s, + toSorted: s, + with: s }, // The TypedArray Constructors - BigInt64Array: ye("%BigInt64ArrayPrototype%"), - BigUint64Array: ye("%BigUint64ArrayPrototype%"), + BigInt64Array: ge("%BigInt64ArrayPrototype%"), + BigUint64Array: ge("%BigUint64ArrayPrototype%"), // https://github.com/tc39/proposal-float16array - Float16Array: ye("%Float16ArrayPrototype%"), - Float32Array: ye("%Float32ArrayPrototype%"), - Float64Array: ye("%Float64ArrayPrototype%"), - Int16Array: ye("%Int16ArrayPrototype%"), - Int32Array: ye("%Int32ArrayPrototype%"), - Int8Array: ye("%Int8ArrayPrototype%"), - Uint16Array: ye("%Uint16ArrayPrototype%"), - Uint32Array: ye("%Uint32ArrayPrototype%"), - Uint8Array: ye("%Uint8ArrayPrototype%"), - Uint8ClampedArray: ye("%Uint8ClampedArrayPrototype%"), - "%BigInt64ArrayPrototype%": ge("BigInt64Array"), - "%BigUint64ArrayPrototype%": ge("BigUint64Array"), + Float16Array: ge("%Float16ArrayPrototype%"), + Float32Array: ge("%Float32ArrayPrototype%"), + Float64Array: ge("%Float64ArrayPrototype%"), + Int16Array: ge("%Int16ArrayPrototype%"), + Int32Array: ge("%Int32ArrayPrototype%"), + Int8Array: ge("%Int8ArrayPrototype%"), + Uint16Array: ge("%Uint16ArrayPrototype%"), + Uint32Array: ge("%Uint32ArrayPrototype%"), + Uint8Array: ge("%Uint8ArrayPrototype%"), + Uint8ClampedArray: ge("%Uint8ClampedArrayPrototype%"), + "%BigInt64ArrayPrototype%": ye("BigInt64Array"), + "%BigUint64ArrayPrototype%": ye("BigUint64Array"), // https://github.com/tc39/proposal-float16array - "%Float16ArrayPrototype%": ge("Float16Array"), - "%Float32ArrayPrototype%": ge("Float32Array"), - "%Float64ArrayPrototype%": ge("Float64Array"), - "%Int16ArrayPrototype%": ge("Int16Array"), - "%Int32ArrayPrototype%": ge("Int32Array"), - "%Int8ArrayPrototype%": ge("Int8Array"), - "%Uint16ArrayPrototype%": ge("Uint16Array"), - "%Uint32ArrayPrototype%": ge("Uint32Array"), - "%Uint8ArrayPrototype%": ge("Uint8Array"), - "%Uint8ClampedArrayPrototype%": ge("Uint8ClampedArray"), + "%Float16ArrayPrototype%": ye("Float16Array"), + "%Float32ArrayPrototype%": ye("Float32Array"), + "%Float64ArrayPrototype%": ye("Float64Array"), + "%Int16ArrayPrototype%": ye("Int16Array"), + "%Int32ArrayPrototype%": ye("Int32Array"), + "%Int8ArrayPrototype%": ye("Int8Array"), + "%Uint16ArrayPrototype%": ye("Uint16Array"), + "%Uint32ArrayPrototype%": ye("Uint32Array"), + "%Uint8ArrayPrototype%": ye("Uint8Array"), + "%Uint8ClampedArrayPrototype%": ye("Uint8ClampedArray"), // *** Keyed Collections Map: { // Properties of the Map Constructor "[[Proto]]": "%FunctionPrototype%", - "@@species": O, + "@@species": R, prototype: "%MapPrototype%", // https://github.com/tc39/proposal-array-grouping - groupBy: o + groupBy: s }, "%MapPrototype%": { - clear: o, + clear: s, constructor: "Map", - delete: o, - entries: o, - forEach: o, - get: o, - has: o, - keys: o, - set: o, - size: O, - values: o, - "@@iterator": o, + delete: s, + entries: s, + forEach: s, + get: s, + has: s, + keys: s, + set: s, + size: R, + values: s, + "@@iterator": s, "@@toStringTag": "string" }, "%MapIteratorPrototype%": { // The %MapIteratorPrototype% Object "[[Proto]]": "%IteratorPrototype%", - next: o, + next: s, "@@toStringTag": "string" }, Set: { // Properties of the Set Constructor "[[Proto]]": "%FunctionPrototype%", prototype: "%SetPrototype%", - "@@species": O, + "@@species": R, // Seen on QuickJS groupBy: !1 }, "%SetPrototype%": { - add: o, - clear: o, + add: s, + clear: s, constructor: "Set", - delete: o, - entries: o, - forEach: o, - has: o, - keys: o, - size: O, - values: o, - "@@iterator": o, + delete: s, + entries: s, + forEach: s, + has: s, + keys: s, + size: R, + values: s, + "@@iterator": s, "@@toStringTag": "string", // See https://github.com/tc39/proposal-set-methods - intersection: o, + intersection: s, // See https://github.com/tc39/proposal-set-methods - union: o, + union: s, // See https://github.com/tc39/proposal-set-methods - difference: o, + difference: s, // See https://github.com/tc39/proposal-set-methods - symmetricDifference: o, + symmetricDifference: s, // See https://github.com/tc39/proposal-set-methods - isSubsetOf: o, + isSubsetOf: s, // See https://github.com/tc39/proposal-set-methods - isSupersetOf: o, + isSupersetOf: s, // See https://github.com/tc39/proposal-set-methods - isDisjointFrom: o + isDisjointFrom: s }, "%SetIteratorPrototype%": { // The %SetIteratorPrototype% Object "[[Proto]]": "%IteratorPrototype%", - next: o, + next: s, "@@toStringTag": "string" }, WeakMap: { @@ -1456,10 +1552,10 @@ const jn = { }, "%WeakMapPrototype%": { constructor: "WeakMap", - delete: o, - get: o, - has: o, - set: o, + delete: s, + get: s, + has: s, + set: s, "@@toStringTag": "string" }, WeakSet: { @@ -1468,39 +1564,39 @@ const jn = { prototype: "%WeakSetPrototype%" }, "%WeakSetPrototype%": { - add: o, + add: s, constructor: "WeakSet", - delete: o, - has: o, + delete: s, + has: s, "@@toStringTag": "string" }, // *** Structured Data ArrayBuffer: { // Properties of the ArrayBuffer Constructor "[[Proto]]": "%FunctionPrototype%", - isView: o, + isView: s, prototype: "%ArrayBufferPrototype%", - "@@species": O, + "@@species": R, // See https://github.com/Moddable-OpenSource/moddable/issues/523 fromString: !1, // See https://github.com/Moddable-OpenSource/moddable/issues/523 fromBigInt: !1 }, "%ArrayBufferPrototype%": { - byteLength: O, + byteLength: R, constructor: "ArrayBuffer", - slice: o, + slice: s, "@@toStringTag": "string", // See https://github.com/Moddable-OpenSource/moddable/issues/523 concat: !1, // See https://github.com/tc39/proposal-resizablearraybuffer - transfer: o, - resize: o, - resizable: O, - maxByteLength: O, + transfer: s, + resize: s, + resizable: R, + maxByteLength: R, // https://github.com/tc39/proposal-arraybuffer-transfer - transferToFixedLength: o, - detached: O + transferToFixedLength: s, + detached: R }, // SharedArrayBuffer Objects SharedArrayBuffer: !1, @@ -1515,46 +1611,46 @@ const jn = { prototype: "%DataViewPrototype%" }, "%DataViewPrototype%": { - buffer: O, - byteLength: O, - byteOffset: O, + buffer: R, + byteLength: R, + byteOffset: R, constructor: "DataView", - getBigInt64: o, - getBigUint64: o, + getBigInt64: s, + getBigUint64: s, // https://github.com/tc39/proposal-float16array - getFloat16: o, - getFloat32: o, - getFloat64: o, - getInt8: o, - getInt16: o, - getInt32: o, - getUint8: o, - getUint16: o, - getUint32: o, - setBigInt64: o, - setBigUint64: o, + getFloat16: s, + getFloat32: s, + getFloat64: s, + getInt8: s, + getInt16: s, + getInt32: s, + getUint8: s, + getUint16: s, + getUint32: s, + setBigInt64: s, + setBigUint64: s, // https://github.com/tc39/proposal-float16array - setFloat16: o, - setFloat32: o, - setFloat64: o, - setInt8: o, - setInt16: o, - setInt32: o, - setUint8: o, - setUint16: o, - setUint32: o, + setFloat16: s, + setFloat32: s, + setFloat64: s, + setInt8: s, + setInt16: s, + setInt32: s, + setUint8: s, + setUint16: s, + setUint32: s, "@@toStringTag": "string" }, // Atomics Atomics: !1, // UNSAFE and suppressed. JSON: { - parse: o, - stringify: o, + parse: s, + stringify: s, "@@toStringTag": "string", // https://github.com/tc39/proposal-json-parse-with-source/ - rawJSON: o, - isRawJSON: o + rawJSON: s, + isRawJSON: s }, // *** Control Abstraction Objects // https://github.com/tc39/proposal-iterator-helpers @@ -1562,41 +1658,41 @@ const jn = { // Properties of the Iterator Constructor "[[Proto]]": "%FunctionPrototype%", prototype: "%IteratorPrototype%", - from: o + from: s }, "%IteratorPrototype%": { // The %IteratorPrototype% Object - "@@iterator": o, + "@@iterator": s, // https://github.com/tc39/proposal-iterator-helpers constructor: "Iterator", - map: o, - filter: o, - take: o, - drop: o, - flatMap: o, - reduce: o, - toArray: o, - forEach: o, - some: o, - every: o, - find: o, + map: s, + filter: s, + take: s, + drop: s, + flatMap: s, + reduce: s, + toArray: s, + forEach: s, + some: s, + every: s, + find: s, "@@toStringTag": "string", // https://github.com/tc39/proposal-async-iterator-helpers - toAsync: o, + toAsync: s, // See https://github.com/Moddable-OpenSource/moddable/issues/523#issuecomment-1942904505 "@@dispose": !1 }, // https://github.com/tc39/proposal-iterator-helpers "%WrapForValidIteratorPrototype%": { "[[Proto]]": "%IteratorPrototype%", - next: o, - return: o + next: s, + return: s }, // https://github.com/tc39/proposal-iterator-helpers "%IteratorHelperPrototype%": { "[[Proto]]": "%IteratorPrototype%", - next: o, - return: o, + next: s, + return: s, "@@toStringTag": "string" }, // https://github.com/tc39/proposal-async-iterator-helpers @@ -1604,24 +1700,24 @@ const jn = { // Properties of the Iterator Constructor "[[Proto]]": "%FunctionPrototype%", prototype: "%AsyncIteratorPrototype%", - from: o + from: s }, "%AsyncIteratorPrototype%": { // The %AsyncIteratorPrototype% Object - "@@asyncIterator": o, + "@@asyncIterator": s, // https://github.com/tc39/proposal-async-iterator-helpers constructor: "AsyncIterator", - map: o, - filter: o, - take: o, - drop: o, - flatMap: o, - reduce: o, - toArray: o, - forEach: o, - some: o, - every: o, - find: o, + map: s, + filter: s, + take: s, + drop: s, + flatMap: s, + reduce: s, + toArray: s, + forEach: s, + some: s, + every: s, + find: s, "@@toStringTag": "string", // See https://github.com/Moddable-OpenSource/moddable/issues/523#issuecomment-1942904505 "@@asyncDispose": !1 @@ -1629,14 +1725,14 @@ const jn = { // https://github.com/tc39/proposal-async-iterator-helpers "%WrapForValidAsyncIteratorPrototype%": { "[[Proto]]": "%AsyncIteratorPrototype%", - next: o, - return: o + next: s, + return: s }, // https://github.com/tc39/proposal-async-iterator-helpers "%AsyncIteratorHelperPrototype%": { "[[Proto]]": "%AsyncIteratorPrototype%", - next: o, - return: o, + next: s, + return: s, "@@toStringTag": "string" }, "%InertGeneratorFunction%": { @@ -1671,18 +1767,18 @@ const jn = { // Properties of the Generator Prototype Object "[[Proto]]": "%IteratorPrototype%", constructor: "%Generator%", - next: o, - return: o, - throw: o, + next: s, + return: s, + throw: s, "@@toStringTag": "string" }, "%AsyncGeneratorPrototype%": { // Properties of the AsyncGenerator Prototype Object "[[Proto]]": "%AsyncIteratorPrototype%", constructor: "%AsyncGenerator%", - next: o, - return: o, - throw: o, + next: s, + return: s, + throw: s, "@@toStringTag": "string" }, // TODO: To be replaced with Promise.delegate @@ -1696,43 +1792,41 @@ const jn = { // another whitelist change to update to the current proposed standard. HandledPromise: { "[[Proto]]": "Promise", - applyFunction: o, - applyFunctionSendOnly: o, - applyMethod: o, - applyMethodSendOnly: o, - get: o, - getSendOnly: o, + applyFunction: s, + applyFunctionSendOnly: s, + applyMethod: s, + applyMethodSendOnly: s, + get: s, + getSendOnly: s, prototype: "%PromisePrototype%", - resolve: o + resolve: s }, Promise: { // Properties of the Promise Constructor "[[Proto]]": "%FunctionPrototype%", - all: o, - allSettled: o, - // To transition from `false` to `fn` once we also have `AggregateError` - // TODO https://github.com/Agoric/SES-shim/issues/550 - any: !1, - // ES2021 + all: s, + allSettled: s, + // https://github.com/Agoric/SES-shim/issues/550 + any: s, prototype: "%PromisePrototype%", - race: o, - reject: o, - resolve: o, + race: s, + reject: s, + resolve: s, // https://github.com/tc39/proposal-promise-with-resolvers - withResolvers: o, - "@@species": O + withResolvers: s, + "@@species": R }, "%PromisePrototype%": { // Properties of the Promise Prototype Object - catch: o, + catch: s, constructor: "Promise", - finally: o, - then: o, + finally: s, + then: s, "@@toStringTag": "string", // Non-standard, used in node to prevent async_hooks from breaking - "UniqueSymbol(async_id_symbol)": Ae, - "UniqueSymbol(trigger_async_id_symbol)": Ae, - "UniqueSymbol(destroyed)": Ae + "UniqueSymbol(async_id_symbol)": Ie, + "UniqueSymbol(trigger_async_id_symbol)": Ie, + "UniqueSymbol(destroyed)": Ie }, "%InertAsyncFunction%": { // Properties of the AsyncFunction Constructor @@ -1753,95 +1847,95 @@ const jn = { Reflect: { // The Reflect Object // Not a function object. - apply: o, - construct: o, - defineProperty: o, - deleteProperty: o, - get: o, - getOwnPropertyDescriptor: o, - getPrototypeOf: o, - has: o, - isExtensible: o, - ownKeys: o, - preventExtensions: o, - set: o, - setPrototypeOf: o, + apply: s, + construct: s, + defineProperty: s, + deleteProperty: s, + get: s, + getOwnPropertyDescriptor: s, + getPrototypeOf: s, + has: s, + isExtensible: s, + ownKeys: s, + preventExtensions: s, + set: s, + setPrototypeOf: s, "@@toStringTag": "string" }, Proxy: { // Properties of the Proxy Constructor "[[Proto]]": "%FunctionPrototype%", - revocable: o + revocable: s }, // Appendix B // Annex B: Additional Properties of the Global Object - escape: o, - unescape: o, + escape: s, + unescape: s, // Proposed "%UniqueCompartment%": { "[[Proto]]": "%FunctionPrototype%", prototype: "%CompartmentPrototype%", - toString: o + toString: s }, "%InertCompartment%": { "[[Proto]]": "%FunctionPrototype%", prototype: "%CompartmentPrototype%", - toString: o + toString: s }, "%CompartmentPrototype%": { constructor: "%InertCompartment%", - evaluate: o, - globalThis: O, - name: O, - import: Dn, - load: Dn, - importNow: o, - module: o, + evaluate: s, + globalThis: R, + name: R, + import: Qn, + load: Qn, + importNow: s, + module: s, "@@toStringTag": "string" }, - lockdown: o, - harden: { ...o, isFake: "boolean" }, - "%InitialGetStackString%": o -}, Pa = (t) => typeof t == "function"; -function ka(t, e, r) { - if (se(t, e)) { - const n = de(t, e); - if (!n || !kr(n.value, r.value) || n.get !== r.get || n.set !== r.set || n.writable !== r.writable || n.enumerable !== r.enumerable || n.configurable !== r.configurable) + lockdown: s, + harden: { ...s, isFake: "boolean" }, + "%InitialGetStackString%": s +}, Va = (t) => typeof t == "function"; +function Wa(t, e, r) { + if (oe(t, e)) { + const n = J(t, e); + if (!n || !Rr(n.value, r.value) || n.get !== r.get || n.set !== r.set || n.writable !== r.writable || n.enumerable !== r.enumerable || n.configurable !== r.configurable) throw v(`Conflicting definitions of ${e}`); } - L(t, e, r); + M(t, e, r); } -function Ta(t, e) { - for (const [r, n] of te(e)) - ka(t, r, n); +function qa(t, e) { + for (const [r, n] of re(e)) + Wa(t, r, n); } -function Uo(t, e) { +function ss(t, e) { const r = { __proto__: null }; - for (const [n, a] of te(e)) - se(t, n) && (r[a] = t[n]); + for (const [n, o] of re(e)) + oe(t, n) && (r[o] = t[n]); return r; } -const jo = () => { - const t = H(null); +const as = () => { + const t = Z(null); let e; const r = (c) => { - Ta(t, Je(c)); + qa(t, Ze(c)); }; - g(r); + y(r); const n = () => { - for (const [c, u] of te(t)) { - if (!We(u) || !se(u, "prototype")) + for (const [c, l] of re(t)) { + if (!Ye(l) || !oe(l, "prototype")) continue; - const l = fr[c]; - if (typeof l != "object") + const u = Er[c]; + if (typeof u != "object") throw v(`Expected permit object at whitelist.${c}`); - const d = l.prototype; + const d = u.prototype; if (!d) throw v(`${c}.prototype property not whitelisted`); - if (typeof d != "string" || !se(fr, d)) + if (typeof d != "string" || !oe(Er, d)) throw v(`Unrecognized ${c}.prototype whitelist entry`); - const f = u.prototype; - if (se(t, d)) { + const f = l.prototype; + if (oe(t, d)) { if (t[d] !== f) throw v(`Conflicting bindings of ${d}`); continue; @@ -1849,57 +1943,57 @@ const jo = () => { t[d] = f; } }; - g(n); - const a = () => (g(t), e = new kt(Ve(fo(t), Pa)), t); - g(a); - const s = (c) => { + y(n); + const o = () => (y(t), e = new Nt(Ke(Po(t), Va)), t); + y(o); + const a = (c) => { if (!e) throw v( "isPseudoNative can only be called after finalIntrinsics" ); - return Xt(e, c); + return sr(e, c); }; - g(s); + y(a); const i = { addIntrinsics: r, completePrototypes: n, - finalIntrinsics: a, - isPseudoNative: s + finalIntrinsics: o, + isPseudoNative: a }; - return g(i), r(Lo), r(Uo(x, Fo)), i; -}, Ia = (t) => { - const { addIntrinsics: e, finalIntrinsics: r } = jo(); - return e(Uo(t, Do)), r(); + return y(i), r(ts), r(ss(k, rs)), i; +}, Ka = (t) => { + const { addIntrinsics: e, finalIntrinsics: r } = as(); + return e(ss(t, ns)), r(); }; -function Aa(t, e) { +function Ya(t, e) { let r = !1; - const n = (m, ...p) => (r || (console.groupCollapsed("Removing unpermitted intrinsics"), r = !0), console[m](...p)), a = ["undefined", "boolean", "number", "string", "symbol"], s = new Ce( - Ot ? fe( - Ve( - te(fr["%SharedSymbol%"]), - ([m, p]) => p === "symbol" && typeof Ot[m] == "symbol" + const n = (m, ...p) => (r || (console.groupCollapsed("Removing unpermitted intrinsics"), r = !0), console[m](...p)), o = ["undefined", "boolean", "number", "string", "symbol"], a = new Pe( + St ? se( + Ke( + re(Er["%SharedSymbol%"]), + ([m, p]) => p === "symbol" && typeof St[m] == "symbol" ), - ([m]) => [Ot[m], `@@${m}`] + ([m]) => [St[m], `@@${m}`] ) : [] ); function i(m, p) { if (typeof p == "string") return p; - const h = De(s, p); + const h = Ue(a, p); if (typeof p == "symbol") { if (h) return h; { - const _ = Ms(p); - return _ !== void 0 ? `RegisteredSymbol(${_})` : `Unique${ie(p)}`; + const _ = ta(p); + return _ !== void 0 ? `RegisteredSymbol(${_})` : `Unique${pe(p)}`; } } throw v(`Unexpected property name type ${m} ${p}`); } function c(m, p, h) { - if (!We(p)) + if (!Ye(p)) throw v(`Object expected: ${m}, ${p}, ${h}`); - const _ = B(p); + const _ = j(p); if (!(_ === null && h === null)) { if (h !== void 0 && typeof h != "string") throw v(`Malformed whitelist permit ${m}.__proto__`); @@ -1907,19 +2001,19 @@ function Aa(t, e) { throw v(`Unexpected intrinsic ${m}.__proto__ at ${h}`); } } - function u(m, p, h, _) { + function l(m, p, h, _) { if (typeof _ == "object") return f(m, p, _), !0; if (_ === !1) return !1; if (typeof _ == "string") { if (h === "prototype" || h === "constructor") { - if (se(t, _)) { + if (oe(t, _)) { if (p !== t[_]) throw v(`Does not match whitelist ${m}`); return !0; } - } else if (Ar(a, _)) { + } else if (Lr(o, _)) { if (typeof p !== _) throw v( `At ${m} expected ${_} not ${typeof p}` @@ -1929,77 +2023,77 @@ function Aa(t, e) { } throw v(`Unexpected whitelist permit ${_} at ${m}`); } - function l(m, p, h, _) { - const w = de(p, h); - if (!w) + function u(m, p, h, _) { + const E = J(p, h); + if (!E) throw v(`Property ${h} not found at ${m}`); - if (se(w, "value")) { - if (Un(_)) + if (oe(E, "value")) { + if (eo(_)) throw v(`Accessor expected at ${m}`); - return u(m, w.value, h, _); + return l(m, E.value, h, _); } - if (!Un(_)) + if (!eo(_)) throw v(`Accessor not expected at ${m}`); - return u(`${m}`, w.get, h, _.get) && u(`${m}`, w.set, h, _.set); + return l(`${m}`, E.get, h, _.get) && l(`${m}`, E.set, h, _.set); } function d(m, p, h) { const _ = h === "__proto__" ? "--proto--" : h; - if (se(p, _)) + if (oe(p, _)) return p[_]; - if (typeof m == "function" && se(Jr, _)) - return Jr[_]; + if (typeof m == "function" && oe(cn, _)) + return cn[_]; } function f(m, p, h) { if (p == null) return; const _ = h["[[Proto]]"]; c(m, p, _), typeof p == "function" && e(p); - for (const w of it(p)) { - const I = i(m, w), $ = `${m}.${I}`, T = d(p, h, I); - if (!T || !l($, p, w, T)) { - T !== !1 && n("warn", `Removing ${$}`); + for (const E of De(p)) { + const T = i(m, E), N = `${m}.${T}`, x = d(p, h, T); + if (!x || !u(N, p, E, x)) { + x !== !1 && n("warn", `Removing ${N}`); try { - delete p[w]; + delete p[E]; } catch (D) { - if (w in p) { - if (typeof p == "function" && w === "prototype" && (p.prototype = void 0, p.prototype === void 0)) { + if (E in p) { + if (typeof p == "function" && E === "prototype" && (p.prototype = void 0, p.prototype === void 0)) { n( "warn", - `Tolerating undeletable ${$} === undefined` + `Tolerating undeletable ${N} === undefined` ); continue; } - n("error", `failed to delete ${$}`, D); + n("error", `failed to delete ${N}`, D); } else - n("error", `deleting ${$} threw`, D); + n("error", `deleting ${N} threw`, D); throw D; } } } } try { - f("intrinsics", t, fr); + f("intrinsics", t, Er); } finally { r && console.groupEnd(); } } -function Ca() { +function Ja() { try { ve.prototype.constructor("return 1"); } catch { - return g({}); + return y({}); } const t = {}; - function e(r, n, a) { - let s; + function e(r, n, o) { + let a; try { - s = (0, eval)(a); - } catch (u) { - if (u instanceof Kt) + a = (0, eval)(o); + } catch (l) { + if (l instanceof rr) return; - throw u; + throw l; } - const i = B(s), c = function() { + const i = j(a), c = function() { throw v( "Function.prototype.constructor is not a valid constructor." ); @@ -2014,7 +2108,7 @@ function Ca() { } }), F(i, { constructor: { value: c } - }), c !== ve.prototype.constructor && uo(c, ve.prototype.constructor), t[n] = c; + }), c !== ve.prototype.constructor && ko(c, ve.prototype.constructor), t[n] = c; } return e("Function", "%InertFunction%", "(function(){})"), e( "GeneratorFunction", @@ -2030,10 +2124,10 @@ function Ca() { "(async function*(){})" ), t; } -function $a(t = "safe") { +function Xa(t = "safe") { if (t !== "safe" && t !== "unsafe") throw v(`unrecognized dateTaming ${t}`); - const e = ks, r = e.prototype, n = { + const e = Vs, r = e.prototype, n = { /** * `%SharedDate%.now()` throw a `TypeError` starting with "secure mode". * See https://github.com/endojs/endo/issues/910#issuecomment-1581855420 @@ -2041,11 +2135,11 @@ function $a(t = "safe") { now() { throw v("secure mode Calling %SharedDate%.now() throws"); } - }, a = ({ powers: c = "none" } = {}) => { - let u; - return c === "original" ? u = function(...d) { - return new.target === void 0 ? oe(e, void 0, d) : lr(e, d, new.target); - } : u = function(...d) { + }, o = ({ powers: c = "none" } = {}) => { + let l; + return c === "original" ? l = function(...d) { + return new.target === void 0 ? ne(e, void 0, d) : gr(e, d, new.target); + } : l = function(...d) { if (new.target === void 0) throw v( "secure mode Calling %SharedDate% constructor as a function throws" @@ -2054,8 +2148,8 @@ function $a(t = "safe") { throw v( "secure mode Calling new %SharedDate%() with no arguments throws" ); - return lr(e, d, new.target); - }, F(u, { + return gr(e, d, new.target); + }, F(l, { length: { value: 7 }, prototype: { value: r, @@ -2075,9 +2169,9 @@ function $a(t = "safe") { enumerable: !1, configurable: !0 } - }), u; - }, s = a({ powers: "original" }), i = a({ powers: "none" }); - return F(s, { + }), l; + }, a = o({ powers: "original" }), i = o({ powers: "none" }); + return F(a, { now: { value: e.now, writable: !0, @@ -2094,15 +2188,15 @@ function $a(t = "safe") { }), F(r, { constructor: { value: i } }), { - "%InitialDate%": s, + "%InitialDate%": a, "%SharedDate%": i }; } -function Na(t = "safe") { +function Qa(t = "safe") { if (t !== "safe" && t !== "unsafe") throw v(`unrecognized mathTaming ${t}`); - const e = As, r = e, { random: n, ...a } = Je(e), i = H(lo, { - ...a, + const e = Ks, r = e, { random: n, ...o } = Ze(e), i = Z(wn, { + ...o, random: { value: { /** @@ -2123,34 +2217,42 @@ function Na(t = "safe") { "%SharedMath%": i }; } -function Oa(t = "safe") { +function ei(t = "safe") { if (t !== "safe" && t !== "unsafe") throw v(`unrecognized regExpTaming ${t}`); - const e = Be.prototype, r = (s = {}) => { + const e = We.prototype, r = (a = {}) => { const i = function(...l) { - return new.target === void 0 ? Be(...l) : lr(Be, l, new.target); - }, c = de(Be, Cn); - if (!c) - throw v("no RegExp[Symbol.species] descriptor"); - return F(i, { + return new.target === void 0 ? We(...l) : gr(We, l, new.target); + }; + if (F(i, { length: { value: 2 }, prototype: { value: e, writable: !1, enumerable: !1, configurable: !1 - }, - [Cn]: c - }), i; - }, n = r(), a = r(); + } + }), Wr) { + const c = J( + We, + Wr + ); + if (!c) + throw v("no RegExp[Symbol.species] descriptor"); + F(i, { + [Wr]: c + }); + } + return i; + }, n = r(), o = r(); return t !== "unsafe" && delete e.compile, F(e, { - constructor: { value: a } + constructor: { value: o } }), { "%InitialRegExp%": n, - "%SharedRegExp%": a + "%SharedRegExp%": o }; } -const Ra = { +const ti = { "%ObjectPrototype%": { toString: !0 }, @@ -2167,9 +2269,9 @@ const Ra = { // https://github.com/tc39/proposal-iterator-helpers constructor: !0, // https://github.com/tc39/proposal-iterator-helpers - [He]: !0 + [qe]: !0 } -}, Zo = { +}, is = { "%ObjectPrototype%": { toString: !0, valueOf: !0 @@ -2180,7 +2282,7 @@ const Ra = { // set by "Google Analytics" concat: !0, // set by mobx generated code (old TS compiler?) - [Yt]: !0 + [nr]: !0 // set by mobx generated code (old TS compiler?) }, // Function.prototype has no 'prototype' property to enable. @@ -2242,6 +2344,13 @@ const Ra = { name: !0 // set by "node 14" }, + // https://github.com/endojs/endo/issues/550 + "%AggregateErrorPrototype%": { + message: !0, + // to match TypeErrorPrototype.message + name: !0 + // set by "node 14"? + }, "%PromisePrototype%": { constructor: !0 // set by "core-js" @@ -2258,10 +2367,10 @@ const Ra = { // https://github.com/tc39/proposal-iterator-helpers constructor: !0, // https://github.com/tc39/proposal-iterator-helpers - [He]: !0 + [qe]: !0 } -}, Ma = { - ...Zo, +}, ri = { + ...is, /** * Rollup (as used at least by vega) and webpack * (as used at least by regenerator) both turn exports into assignments @@ -2314,24 +2423,24 @@ const Ra = { */ "%SetPrototype%": "*" }; -function La(t, e, r = []) { - const n = new Pt(r); - function a(l, d, f, m) { +function ni(t, e, r = []) { + const n = new $t(r); + function o(u, d, f, m) { if ("value" in m && m.configurable) { - const { value: p } = m, h = dn(n, f), { get: _, set: w } = de( + const { value: p } = m, h = xn(n, f), { get: _, set: E } = J( { get [f]() { return p; }, - set [f](I) { + set [f](T) { if (d === this) throw v( - `Cannot assign to read only property '${ie( + `Cannot assign to read only property '${pe( f - )}' of '${l}'` + )}' of '${u}'` ); - se(this, f) ? this[f] = I : (h && console.error(v(`Override property ${f}`)), L(this, f, { - value: I, + oe(this, f) ? this[f] = T : (h && console.error(v(`Override property ${f}`)), M(this, f, { + value: T, writable: !0, enumerable: !0, configurable: !0 @@ -2340,63 +2449,63 @@ function La(t, e, r = []) { }, f ); - L(_, "originalValue", { + M(_, "originalValue", { value: p, writable: !1, enumerable: !1, configurable: !1 - }), L(d, f, { + }), M(d, f, { get: _, - set: w, + set: E, enumerable: m.enumerable, configurable: m.configurable }); } } - function s(l, d, f) { - const m = de(d, f); - m && a(l, d, f, m); + function a(u, d, f) { + const m = J(d, f); + m && o(u, d, f, m); } - function i(l, d) { - const f = Je(d); - f && st(it(f), (m) => a(l, d, m, f[m])); + function i(u, d) { + const f = Ze(d); + f && dt(De(f), (m) => o(u, d, m, f[m])); } - function c(l, d, f) { - for (const m of it(f)) { - const p = de(d, m); + function c(u, d, f) { + for (const m of De(f)) { + const p = J(d, m); if (!p || p.get || p.set) continue; - const h = `${l}.${ie(m)}`, _ = f[m]; + const h = `${u}.${pe(m)}`, _ = f[m]; if (_ === !0) - s(h, d, m); + a(h, d, m); else if (_ === "*") i(h, p.value); - else if (We(_)) + else if (Ye(_)) c(h, p.value, _); else throw v(`Unexpected override enablement plan ${h}`); } } - let u; + let l; switch (e) { case "min": { - u = Ra; + l = ti; break; } case "moderate": { - u = Zo; + l = is; break; } case "severe": { - u = Ma; + l = ri; break; } default: throw v(`unrecognized overrideTaming ${e}`); } - c("root", t, u); + c("root", t, l); } -const { Fail: Xr, quote: pr } = Z, Fa = /^(\w*[a-z])Locale([A-Z]\w*)$/, zo = { +const { Fail: ln, quote: Sr } = z, oi = /^(\w*[a-z])Locale([A-Z]\w*)$/, cs = { // See https://tc39.es/ecma262/#sec-string.prototype.localecompare localeCompare(t) { if (this === null || this === void 0) @@ -2404,47 +2513,47 @@ const { Fail: Xr, quote: pr } = Z, Fa = /^(\w*[a-z])Locale([A-Z]\w*)$/, zo = { 'Cannot localeCompare with null or undefined "this" value' ); const e = `${this}`, r = `${t}`; - return e < r ? -1 : e > r ? 1 : (e === r || Xr`expected ${pr(e)} and ${pr(r)} to compare`, 0); + return e < r ? -1 : e > r ? 1 : (e === r || ln`expected ${Sr(e)} and ${Sr(r)} to compare`, 0); }, toString() { return `${this}`; } -}, Da = zo.localeCompare, Ua = zo.toString; -function ja(t, e = "safe") { +}, si = cs.localeCompare, ai = cs.toString; +function ii(t, e = "safe") { if (e !== "safe" && e !== "unsafe") throw v(`unrecognized localeTaming ${e}`); if (e !== "unsafe") { - L(ie.prototype, "localeCompare", { - value: Da + M(pe.prototype, "localeCompare", { + value: si }); - for (const r of Mt(t)) { + for (const r of Ut(t)) { const n = t[r]; - if (We(n)) - for (const a of Mt(n)) { - const s = pn(Fa, a); - if (s) { - typeof n[a] == "function" || Xr`expected ${pr(a)} to be a function`; - const i = `${s[1]}${s[2]}`, c = n[i]; - typeof c == "function" || Xr`function ${pr(i)} not found`, L(n, a, { value: c }); + if (Ye(n)) + for (const o of Ut(n)) { + const a = Pn(oi, o); + if (a) { + typeof n[o] == "function" || ln`expected ${Sr(o)} to be a function`; + const i = `${a[1]}${a[2]}`, c = n[i]; + typeof c == "function" || ln`function ${Sr(i)} not found`, M(n, o, { value: c }); } } } - L(io.prototype, "toLocaleString", { - value: Ua + M(So.prototype, "toLocaleString", { + value: ai }); } } -const Za = (t) => ({ +const ci = (t) => ({ eval(r) { return typeof r != "string" ? r : t(r); } -}).eval, { Fail: Zn } = Z, za = (t) => { +}).eval, { Fail: ro } = z, li = (t) => { const e = function(n) { - const a = `${Hr(arguments) || ""}`, s = `${At(arguments, ",")}`; - new ve(s, ""), new ve(a); - const i = `(function anonymous(${s} + const o = `${yr(arguments) || ""}`, a = `${Ot(arguments, ",")}`; + new ve(a, ""), new ve(o); + const i = `(function anonymous(${a} ) { -${a} +${o} })`; return t(i); }; @@ -2457,14 +2566,14 @@ ${a} enumerable: !1, configurable: !1 } - }), B(ve) === ve.prototype || Zn`Function prototype is the same accross compartments`, B(e) === ve.prototype || Zn`Function constructor prototype is the same accross compartments`, e; -}, Ga = (t) => { - L( + }), j(ve) === ve.prototype || ro`Function prototype is the same accross compartments`, j(e) === ve.prototype || ro`Function constructor prototype is the same accross compartments`, e; +}, ui = (t) => { + M( t, - Rs, - g( - Pr(H(null), { - set: g(() => { + ea, + y( + Nr(Z(null), { + set: y(() => { throw v( "Cannot set Symbol.unscopables of a Compartment's globalThis" ); @@ -2474,55 +2583,55 @@ ${a} }) ) ); -}, Go = (t) => { - for (const [e, r] of te(Lo)) - L(t, e, { +}, ls = (t) => { + for (const [e, r] of re(ts)) + M(t, e, { value: r, writable: !1, enumerable: !1, configurable: !1 }); -}, Bo = (t, { +}, us = (t, { intrinsics: e, newGlobalPropertyNames: r, makeCompartmentConstructor: n, - markVirtualizedNativeFunction: a + markVirtualizedNativeFunction: o }) => { - for (const [i, c] of te(Fo)) - se(e, c) && L(t, i, { + for (const [i, c] of re(rs)) + oe(e, c) && M(t, i, { value: e[c], writable: !0, enumerable: !1, configurable: !0 }); - for (const [i, c] of te(r)) - se(e, c) && L(t, i, { + for (const [i, c] of re(r)) + oe(e, c) && M(t, i, { value: e[c], writable: !0, enumerable: !1, configurable: !0 }); - const s = { + const a = { globalThis: t }; - s.Compartment = g( + a.Compartment = y( n( n, e, - a + o ) ); - for (const [i, c] of te(s)) - L(t, i, { + for (const [i, c] of re(a)) + M(t, i, { value: c, writable: !0, enumerable: !1, configurable: !0 - }), typeof c == "function" && a(c); -}, Qr = (t, e, r) => { + }), typeof c == "function" && o(c); +}, un = (t, e, r) => { { - const n = g(Za(e)); - r(n), L(t, "eval", { + const n = y(ci(e)); + r(n), M(t, "eval", { value: n, writable: !0, enumerable: !1, @@ -2530,29 +2639,29 @@ ${a} }); } { - const n = g(za(e)); - r(n), L(t, "Function", { + const n = y(li(e)); + r(n), M(t, "Function", { value: n, writable: !0, enumerable: !1, configurable: !0 }); } -}, { Fail: Ba, quote: Ho } = Z, Vo = new xr( - gn, - g({ +}, { Fail: di, quote: ds } = z, fs = new $r( + Cn, + y({ get(t, e) { - Ba`Please report unexpected scope handler trap: ${Ho(ie(e))}`; + di`Please report unexpected scope handler trap: ${ds(pe(e))}`; } }) -), Ha = { +), fi = { get(t, e) { }, set(t, e, r) { - throw ot(`${ie(e)} is not defined`); + throw ut(`${pe(e)} is not defined`); }, has(t, e) { - return e in x; + return e in k; }, // note: this is likely a bug of safari // https://bugs.webkit.org/show_bug.cgi?id=195534 @@ -2562,7 +2671,7 @@ ${a} // See https://github.com/endojs/endo/issues/1510 // TODO: report as bug to v8 or Chrome, and record issue link here. getOwnPropertyDescriptor(t, e) { - const r = Ho(ie(e)); + const r = ds(pe(e)); console.warn( `getOwnPropertyDescriptor trap on scopeTerminatorHandler for ${r}`, v().stack @@ -2573,43 +2682,43 @@ ${a} ownKeys(t) { return []; } -}, Wo = g( - H( - Vo, - Je(Ha) +}, ps = y( + Z( + fs, + Ze(fi) ) -), Va = new xr( - gn, - Wo -), qo = (t) => { +), pi = new $r( + Cn, + ps +), ms = (t) => { const e = { // inherit scopeTerminator behavior - ...Wo, + ...ps, // Redirect set properties to the globalObject. - set(a, s, i) { - return yo(t, s, i); + set(o, a, i) { + return Co(t, a, i); }, // Always claim to have a potential property in order to be the recipient of a set - has(a, s) { + has(o, a) { return !0; } - }, r = g( - H( - Vo, - Je(e) + }, r = y( + Z( + fs, + Ze(e) ) ); - return new xr( - gn, + return new $r( + Cn, r ); }; -g(qo); -const { Fail: Wa } = Z, qa = () => { - const t = H(null), e = g({ +y(ms); +const { Fail: mi } = z, hi = () => { + const t = Z(null), e = y({ eval: { get() { - return delete t.eval, Eo; + return delete t.eval, Zo; }, enumerable: !1, configurable: !0 @@ -2618,78 +2727,78 @@ const { Fail: Wa } = Z, qa = () => { evalScope: t, allowNextEvalToBeUnsafe() { const { revoked: n } = r; - n !== null && Wa`a handler did not reset allowNextEvalToBeUnsafe ${n.err}`, F(t, e); + n !== null && mi`a handler did not reset allowNextEvalToBeUnsafe ${n.err}`, F(t, e); }, /** @type {null | { err: any }} */ revoked: null }; return r; -}, zn = "\\s*[@#]\\s*([a-zA-Z][a-zA-Z0-9]*)\\s*=\\s*([^\\s\\*]*)", Ka = new Be( - `(?:\\s*//${zn}|/\\*${zn}\\s*\\*/)\\s*$` -), bn = (t) => { +}, no = "\\s*[@#]\\s*([a-zA-Z][a-zA-Z0-9]*)\\s*=\\s*([^\\s\\*]*)", gi = new We( + `(?:\\s*//${no}|/\\*${no}\\s*\\*/)\\s*$` +), Rn = (t) => { let e = ""; for (; t.length > 0; ) { - const r = pn(Ka, t); + const r = Pn(gi, t); if (r === null) break; - t = mn(t, 0, t.length - r[0].length), r[3] === "sourceURL" ? e = r[4] : r[1] === "sourceURL" && (e = r[2]); + t = Tn(t, 0, t.length - r[0].length), r[3] === "sourceURL" ? e = r[4] : r[1] === "sourceURL" && (e = r[2]); } return e; }; -function wn(t, e) { - const r = Qs(t, e); +function On(t, e) { + const r = _a(t, e); if (r < 0) return -1; const n = t[r] === ` ` ? 1 : 0; - return wo(mn(t, 0, r), ` + return An(Tn(t, 0, r), ` `).length + n; } -const Ko = new Be("(?:)", "g"), Yo = (t) => { - const e = wn(t, Ko); +const hs = new We("(?:)", "g"), gs = (t) => { + const e = On(t, hs); if (e < 0) return t; - const r = bn(t); - throw Kt( + const r = Rn(t); + throw rr( `Possible HTML comment rejected at ${r}:${e}. (SES_HTML_COMMENT_REJECTED)` ); -}, Jo = (t) => ur(t, Ko, (r) => r[0] === "<" ? "< ! --" : "-- >"), Xo = new Be( +}, ys = (t) => _r(t, hs, (r) => r[0] === "<" ? "< ! --" : "-- >"), vs = new We( "(^|[^.]|\\.\\.\\.)\\bimport(\\s*(?:\\(|/[/*]))", "g" -), Qo = (t) => { - const e = wn(t, Xo); +), _s = (t) => { + const e = On(t, vs); if (e < 0) return t; - const r = bn(t); - throw Kt( + const r = Rn(t); + throw rr( `Possible import expression rejected at ${r}:${e}. (SES_IMPORT_REJECTED)` ); -}, es = (t) => ur(t, Xo, (r, n, a) => `${n}__import__${a}`), Ya = new Be( +}, bs = (t) => _r(t, vs, (r, n, o) => `${n}__import__${o}`), yi = new We( "(^|[^.])\\beval(\\s*\\()", "g" -), ts = (t) => { - const e = wn(t, Ya); +), ws = (t) => { + const e = On(t, yi); if (e < 0) return t; - const r = bn(t); - throw Kt( + const r = Rn(t); + throw rr( `Possible direct eval expression rejected at ${r}:${e}. (SES_EVAL_REJECTED)` ); -}, rs = (t) => (t = Yo(t), t = Qo(t), t), ns = (t, e) => { +}, Es = (t) => (t = gs(t), t = _s(t), t), Ss = (t, e) => { for (const r of e) t = r(t); return t; }; -g({ - rejectHtmlComments: g(Yo), - evadeHtmlCommentTest: g(Jo), - rejectImportExpressions: g(Qo), - evadeImportExpressionTest: g(es), - rejectSomeDirectEvalExpressions: g(ts), - mandatoryTransforms: g(rs), - applyTransforms: g(ns) +y({ + rejectHtmlComments: y(gs), + evadeHtmlCommentTest: y(ys), + rejectImportExpressions: y(_s), + evadeImportExpressionTest: y(bs), + rejectSomeDirectEvalExpressions: y(ws), + mandatoryTransforms: y(Es), + applyTransforms: y(Ss) }); -const Ja = [ +const vi = [ // 11.6.2.1 Keywords "await", "break", @@ -2744,9 +2853,9 @@ const Ja = [ "false", "this", "arguments" -], Xa = /^[a-zA-Z_$][\w$]*$/, Gn = (t) => t !== "eval" && !Ar(Ja, t) && fn(Xa, t); -function Bn(t, e) { - const r = de(t, e); +], _i = /^[a-zA-Z_$][\w$]*$/, oo = (t) => t !== "eval" && !Lr(vi, t) && kn(_i, t); +function so(t, e) { + const r = J(t, e); return r && // // The getters will not have .writable, don't let the falsyness of // 'undefined' trick us: test with === false, not ! . However descriptors @@ -2760,45 +2869,45 @@ function Bn(t, e) { // can't have accessors and value properties at the same time, therefore // this check is sufficient. Using explicit own property deal with the // case where Object.prototype has been poisoned. - se(r, "value"); + oe(r, "value"); } -const Qa = (t, e = {}) => { - const r = Mt(t), n = Mt(e), a = Ve( +const bi = (t, e = {}) => { + const r = Ut(t), n = Ut(e), o = Ke( n, - (i) => Gn(i) && Bn(e, i) + (i) => oo(i) && so(e, i) ); return { - globalObjectConstants: Ve( + globalObjectConstants: Ke( r, (i) => ( // Can't define a constant: it would prevent a // lookup on the endowments. - !Ar(n, i) && Gn(i) && Bn(t, i) + !Lr(n, i) && oo(i) && so(t, i) ) ), - moduleLexicalConstants: a + moduleLexicalConstants: o }; }; -function Hn(t, e) { - return t.length === 0 ? "" : `const {${At(t, ",")}} = this.${e};`; +function ao(t, e) { + return t.length === 0 ? "" : `const {${Ot(t, ",")}} = this.${e};`; } -const ei = (t) => { - const { globalObjectConstants: e, moduleLexicalConstants: r } = Qa( +const wi = (t) => { + const { globalObjectConstants: e, moduleLexicalConstants: r } = bi( t.globalObject, t.moduleLexicals - ), n = Hn( + ), n = ao( e, "globalObject" - ), a = Hn( + ), o = ao( r, "moduleLexicals" - ), s = ve(` + ), a = ve(` with (this.scopeTerminator) { with (this.globalObject) { with (this.moduleLexicals) { with (this.evalScope) { ${n} - ${a} + ${o} return function() { 'use strict'; return eval(arguments[0]); @@ -2808,71 +2917,71 @@ const ei = (t) => { } } `); - return oe(s, t, []); -}, { Fail: ti } = Z, Sn = ({ + return ne(a, t, []); +}, { Fail: Ei } = z, Mn = ({ globalObject: t, moduleLexicals: e = {}, globalTransforms: r = [], sloppyGlobalsMode: n = !1 }) => { - const a = n ? qo(t) : Va, s = qa(), { evalScope: i } = s, c = g({ + const o = n ? ms(t) : pi, a = hi(), { evalScope: i } = a, c = y({ evalScope: i, moduleLexicals: e, globalObject: t, - scopeTerminator: a + scopeTerminator: o }); - let u; - const l = () => { - u || (u = ei(c)); + let l; + const u = () => { + l || (l = wi(c)); }; return { safeEvaluate: (f, m) => { const { localTransforms: p = [] } = m || {}; - l(), f = ns(f, [ + u(), f = Ss(f, [ ...p, ...r, - rs + Es ]); let h; try { - return s.allowNextEvalToBeUnsafe(), oe(u, t, [f]); + return a.allowNextEvalToBeUnsafe(), ne(l, t, [f]); } catch (_) { throw h = _, _; } finally { const _ = "eval" in i; - delete i.eval, _ && (s.revoked = { err: h }, ti`handler did not reset allowNextEvalToBeUnsafe ${h}`); + delete i.eval, _ && (a.revoked = { err: h }, Ei`handler did not reset allowNextEvalToBeUnsafe ${h}`); } } }; -}, ri = ") { [native code] }"; -let jr; -const os = () => { - if (jr === void 0) { - const t = new kt(); - L(un, "toString", { +}, Si = ") { [native code] }"; +let Jr; +const xs = () => { + if (Jr === void 0) { + const t = new Nt(); + M(En, "toString", { value: { toString() { - const r = ra(this); - return bo(r, ri) || !Xt(t, this) ? r : `function ${this.name}() { [native code] }`; + const r = Ea(this); + return Lo(r, Si) || !sr(t, this) ? r : `function ${this.name}() { [native code] }`; } }.toString - }), jr = g( - (r) => Nr(t, r) + }), Jr = y( + (r) => Dr(t, r) ); } - return jr; + return Jr; }; -function ni(t = "safe") { +function xi(t = "safe") { if (t !== "safe" && t !== "unsafe") throw v(`unrecognized domainTaming ${t}`); if (t === "unsafe") return; - const e = x.process || void 0; + const e = k.process || void 0; if (typeof e == "object") { - const r = de(e, "domain"); + const r = J(e, "domain"); if (r !== void 0 && r.get !== void 0) throw v( "SES failed to lockdown, Node.js domains have been initialized (SES_NO_DOMAINS)" ); - L(e, "domain", { + M(e, "domain", { value: null, configurable: !1, writable: !1, @@ -2880,7 +2989,7 @@ function ni(t = "safe") { }); } } -const ss = g([ +const Ln = y([ ["debug", "debug"], // (fmt?, ...args) verbose level on Chrome ["log", "log"], @@ -2894,12 +3003,12 @@ const ss = g([ ["trace", "log"], // (fmt?, ...args) ["dirxml", "log"], - // (fmt?, ...args) + // (fmt?, ...args) but TS typed (...data) ["group", "log"], - // (fmt?, ...args) + // (fmt?, ...args) but TS typed (...label) ["groupCollapsed", "log"] - // (fmt?, ...args) -]), as = g([ + // (fmt?, ...args) but TS typed (...label) +]), Fn = y([ ["assert", "error"], // (value, fmt?, ...args) ["timeLog", "log"], @@ -2931,209 +3040,243 @@ const ss = g([ // (label?) ["timeStamp", void 0] // (label?) -]), is = g([ - ...ss, - ...as -]), oi = (t, { shouldResetForDebugging: e = !1 } = {}) => { +]), ks = y([ + ...Ln, + ...Fn +]), ki = (t, { shouldResetForDebugging: e = !1 } = {}) => { e && t.resetErrorTagNum(); let r = []; - const n = Tt( - fe(is, ([i, c]) => { - const u = (...l) => { - ae(r, [i, ...l]); + const n = gt( + se(ks, ([i, c]) => { + const l = (...u) => { + X(r, [i, ...u]); }; - return L(u, "name", { value: i }), [i, g(u)]; + return M(l, "name", { value: i }), [i, y(l)]; }) ); - g(n); - const a = () => { - const i = g(r); + y(n); + const o = () => { + const i = y(r); return r = [], i; }; - return g(a), g({ loggingConsole: ( + return y(o), y({ loggingConsole: ( /** @type {VirtualConsole} */ n - ), takeLog: a }); + ), takeLog: o }); }; -g(oi); -const $t = { +y(ki); +const it = { NOTE: "ERROR_NOTE:", - MESSAGE: "ERROR_MESSAGE:" + MESSAGE: "ERROR_MESSAGE:", + CAUSE: "cause:", + ERRORS: "errors:" }; -g($t); -const cs = (t, e) => { +y(it); +const Dn = (t, e) => { if (!t) return; - const { getStackString: r, tagError: n, takeMessageLogArgs: a, takeNoteLogArgsArray: s } = e, i = (w, I) => fe(w, (T) => vn(T) ? (ae(I, T), `(${n(T)})`) : T), c = (w, I, $, T, D) => { - const j = n(I), q = $ === $t.MESSAGE ? `${j}:` : `${j} ${$}`, K = i(T, D); - t[w](q, ...K); - }, u = (w, I, $ = void 0) => { - if (I.length === 0) + const { getStackString: r, tagError: n, takeMessageLogArgs: o, takeNoteLogArgsArray: a } = e, i = (E, T) => se(E, (x) => Ur(x) ? (X(T, x), `(${n(x)})`) : x), c = (E, T, N, x, D) => { + const G = n(T), B = N === it.MESSAGE ? `${G}:` : `${G} ${N}`, K = i(x, D); + t[E](B, ...K); + }, l = (E, T, N = void 0) => { + if (T.length === 0) return; - if (I.length === 1 && $ === void 0) { - f(w, I[0]); + if (T.length === 1 && N === void 0) { + f(E, T[0]); return; } - let T; - I.length === 1 ? T = "Nested error" : T = `Nested ${I.length} errors`, $ !== void 0 && (T = `${T} under ${$}`), t.group(T); + let x; + T.length === 1 ? x = "Nested error" : x = `Nested ${T.length} errors`, N !== void 0 && (x = `${x} under ${N}`), t.group(x); try { - for (const D of I) - f(w, D); + for (const D of T) + f(E, D); } finally { t.groupEnd(); } - }, l = new kt(), d = (w) => (I, $) => { - const T = []; - c(w, I, $t.NOTE, $, T), u(w, T, n(I)); - }, f = (w, I) => { - if (Xt(l, I)) + }, u = new Nt(), d = (E) => (T, N) => { + const x = []; + c(E, T, it.NOTE, N, x), l(E, x, n(T)); + }, f = (E, T) => { + if (sr(u, T)) return; - const $ = n(I); - Nr(l, I); - const T = [], D = a(I), j = s( - I, - d(w) + const N = n(T); + Dr(u, T); + const x = [], D = o(T), G = a( + T, + d(E) ); - D === void 0 ? t[w](`${$}:`, I.message) : c( - w, - I, - $t.MESSAGE, + D === void 0 ? t[E](`${N}:`, T.message) : c( + E, + T, + it.MESSAGE, D, - T + x ); - let q = r(I); - typeof q == "string" && q.length >= 1 && !bo(q, ` -`) && (q += ` -`), t[w](q); - for (const K of j) - c(w, I, $t.NOTE, K, T); - u(w, T, $); - }, m = fe(ss, ([w, I]) => { - const $ = (...T) => { - const D = [], j = i(T, D); - t[w](...j), u(w, D); + let B = r(T); + typeof B == "string" && B.length >= 1 && !Lo(B, ` +`) && (B += ` +`), t[E](B), T.cause && c(E, T, it.CAUSE, [T.cause], x), T.errors && c(E, T, it.ERRORS, T.errors, x); + for (const K of G) + c(E, T, it.NOTE, K, x); + l(E, x, N); + }, m = se(Ln, ([E, T]) => { + const N = (...x) => { + const D = [], G = i(x, D); + t[E](...G), l(E, D); }; - return L($, "name", { value: w }), [w, g($)]; - }), p = Ve( - as, - ([w, I]) => w in t - ), h = fe(p, ([w, I]) => { - const $ = (...T) => { - t[w](...T); + return M(N, "name", { value: E }), [E, y(N)]; + }), p = Ke( + Fn, + ([E, T]) => E in t + ), h = se(p, ([E, T]) => { + const N = (...x) => { + t[E](...x); }; - return L($, "name", { value: w }), [w, g($)]; - }), _ = Tt([...m, ...h]); + return M(N, "name", { value: E }), [E, y(N)]; + }), _ = gt([...m, ...h]); return ( /** @type {VirtualConsole} */ - g(_) + y(_) ); }; -g(cs); -const si = (t, e, r = void 0) => { - const n = Ve( - is, +y(Dn); +const Pi = (t, e, r) => { + const [n, ...o] = An(t, e), a = Oo(o, (i) => [e, ...r, i]); + return ["", n, ...a]; +}, Ps = (t) => y((r) => { + const n = [], o = (...l) => (n.length > 0 && (l = Oo( + l, + (u) => typeof u == "string" && Fo(u, ` +`) ? Pi(u, ` +`, n) : [u] + ), l = [...n, ...l]), r(...l)), a = (l, u) => ({ [l]: (...d) => u(...d) })[l], i = gt([ + ...se(Ln, ([l]) => [ + l, + a(l, o) + ]), + ...se(Fn, ([l]) => [ + l, + a(l, (...u) => o(l, ...u)) + ]) + ]); + for (const l of ["group", "groupCollapsed"]) + i[l] && (i[l] = a(l, (...u) => { + u.length >= 1 && o(...u), X(n, " "); + })); + return i.groupEnd && (i.groupEnd = a("groupEnd", (...l) => { + yr(n); + })), harden(i), Dn( + /** @type {VirtualConsole} */ + i, + t + ); +}); +y(Ps); +const Ti = (t, e, r = void 0) => { + const n = Ke( + ks, ([i, c]) => i in t - ), a = fe(n, ([i, c]) => [i, g((...l) => { - (c === void 0 || e.canLog(c)) && t[i](...l); - })]), s = Tt(a); + ), o = se(n, ([i, c]) => [i, y((...u) => { + (c === void 0 || e.canLog(c)) && t[i](...u); + })]), a = gt(o); return ( /** @type {VirtualConsole} */ - g(s) + y(a) ); }; -g(si); -const Vn = (t) => { - if (bt === void 0) +y(Ti); +const io = (t) => { + if (Pt === void 0) return; let e = 0; - const r = new Ce(), n = (d) => { - Vs(r, d); - }, a = new Te(), s = (d) => { - if (Cr(r, d)) { - const f = De(r, d); + const r = new Pe(), n = (d) => { + pa(r, d); + }, o = new Me(), a = (d) => { + if (Fr(r, d)) { + const f = Ue(r, d); n(d), t(f); } - }, i = new bt(s); + }, i = new Pt(a); return { rejectionHandledHandler: (d) => { - const f = M(a, d); + const f = L(o, d); n(f); }, unhandledRejectionHandler: (d, f) => { e += 1; const m = e; - $e(r, m, d), ee(a, f, m), oa(i, f, m, f); + $e(r, m, d), ie(o, f, m), xa(i, f, m, f); }, processTerminationHandler: () => { - for (const [d, f] of Ws(r)) + for (const [d, f] of ma(r)) n(d), t(f); } }; -}, Zr = (t) => { +}, Xr = (t) => { throw v(t); -}, Wn = (t, e) => g((...r) => oe(t, e, r)), ai = (t = "safe", e = "platform", r = "report", n = void 0) => { - t === "safe" || t === "unsafe" || Zr(`unrecognized consoleTaming ${t}`); - let a; - n === void 0 ? a = Yr : a = { - ...Yr, +}, co = (t, e) => y((...r) => ne(t, e, r)), Ai = (t = "safe", e = "platform", r = "report", n = void 0) => { + t === "safe" || t === "unsafe" || Xr(`unrecognized consoleTaming ${t}`); + let o; + n === void 0 ? o = wr : o = { + ...wr, getStackString: n }; - const s = ( + const a = ( /** @type {VirtualConsole} */ // eslint-disable-next-line no-nested-ternary - typeof x.console < "u" ? x.console : typeof x.print == "function" ? ( + typeof k.console < "u" ? k.console : typeof k.print == "function" ? ( // Make a good-enough console for eshost (including only functions that // log at a specific level with no special argument interpretation). // https://console.spec.whatwg.org/#logging - ((l) => g({ debug: l, log: l, info: l, warn: l, error: l }))( + ((u) => y({ debug: u, log: u, info: u, warn: u, error: u }))( // eslint-disable-next-line no-undef - Wn(x.print) + co(k.print) ) ) : void 0 ); - if (s && s.log) - for (const l of ["warn", "error"]) - s[l] || L(s, l, { - value: Wn(s.log, s) + if (a && a.log) + for (const u of ["warn", "error"]) + a[u] || M(a, u, { + value: co(a.log, a) }); const i = ( /** @type {VirtualConsole} */ - t === "unsafe" ? s : cs(s, a) - ), c = x.process || void 0; + t === "unsafe" ? a : Dn(a, o) + ), c = k.process || void 0; if (e !== "none" && typeof c == "object" && typeof c.on == "function") { - let l; + let u; if (e === "platform" || e === "exit") { const { exit: d } = c; - typeof d == "function" || Zr("missing process.exit"), l = () => d(c.exitCode || -1); + typeof d == "function" || Xr("missing process.exit"), u = () => d(c.exitCode || -1); } else - e === "abort" && (l = c.abort, typeof l == "function" || Zr("missing process.abort")); + e === "abort" && (u = c.abort, typeof u == "function" || Xr("missing process.abort")); c.on("uncaughtException", (d) => { - i.error(d), l && l(); + i.error(d), u && u(); }); } if (r !== "none" && typeof c == "object" && typeof c.on == "function") { - const d = Vn((f) => { + const d = io((f) => { i.error("SES_UNHANDLED_REJECTION:", f); }); d && (c.on("unhandledRejection", d.unhandledRejectionHandler), c.on("rejectionHandled", d.rejectionHandledHandler), c.on("exit", d.processTerminationHandler)); } - const u = x.window || void 0; - if (e !== "none" && typeof u == "object" && typeof u.addEventListener == "function" && u.addEventListener("error", (l) => { - l.preventDefault(), i.error(l.error), (e === "exit" || e === "abort") && (u.location.href = "about:blank"); - }), r !== "none" && typeof u == "object" && typeof u.addEventListener == "function") { - const d = Vn((f) => { + const l = k.window || void 0; + if (e !== "none" && typeof l == "object" && typeof l.addEventListener == "function" && l.addEventListener("error", (u) => { + u.preventDefault(), i.error(u.error), (e === "exit" || e === "abort") && (l.location.href = "about:blank"); + }), r !== "none" && typeof l == "object" && typeof l.addEventListener == "function") { + const d = io((f) => { i.error("SES_UNHANDLED_REJECTION:", f); }); - d && (u.addEventListener("unhandledrejection", (f) => { + d && (l.addEventListener("unhandledrejection", (f) => { f.preventDefault(), d.unhandledRejectionHandler(f.reason, f.promise); - }), u.addEventListener("rejectionhandled", (f) => { + }), l.addEventListener("rejectionhandled", (f) => { f.preventDefault(), d.rejectionHandledHandler(f.promise); - }), u.addEventListener("beforeunload", (f) => { + }), l.addEventListener("beforeunload", (f) => { d.processTerminationHandler(); })); } return { console: i }; -}, ii = [ +}, Ii = [ // suppress 'getThis' definitely "getTypeName", // suppress 'getFunction' definitely @@ -3156,88 +3299,88 @@ const Vn = (t) => { "getScriptNameOrSourceURL", "toString" // TODO replace to use only whitelisted info -], ci = (t) => { - const r = Tt(fe(ii, (n) => { - const a = t[n]; - return [n, () => oe(a, t, [])]; +], Ci = (t) => { + const r = gt(se(Ii, (n) => { + const o = t[n]; + return [n, () => ne(o, t, [])]; })); - return H(r, {}); -}, li = (t) => fe(t, ci), ui = /\/node_modules\//, di = /^(?:node:)?internal\//, fi = /\/packages\/ses\/src\/error\/assert.js$/, pi = /\/packages\/eventual-send\/src\//, mi = [ - ui, - di, - fi, - pi -], hi = (t) => { + return Z(r, {}); +}, $i = (t) => se(t, Ci), Ni = /\/node_modules\//, Ri = /^(?:node:)?internal\//, Oi = /\/packages\/ses\/src\/error\/assert.js$/, Mi = /\/packages\/eventual-send\/src\//, Li = [ + Ni, + Ri, + Oi, + Mi +], Fi = (t) => { if (!t) return !0; - for (const e of mi) - if (fn(e, t)) + for (const e of Li) + if (kn(e, t)) return !1; return !0; -}, yi = /^((?:.*[( ])?)[:/\w_-]*\/\.\.\.\/(.+)$/, gi = /^((?:.*[( ])?)[:/\w_-]*\/(packages\/.+)$/, vi = [ - yi, - gi -], _i = (t) => { - for (const e of vi) { - const r = pn(e, t); +}, Di = /^((?:.*[( ])?)[:/\w_-]*\/\.\.\.\/(.+)$/, Ui = /^((?:.*[( ])?)[:/\w_-]*\/(packages\/.+)$/, ji = [ + Di, + Ui +], Zi = (t) => { + for (const e of ji) { + const r = Pn(e, t); if (r) - return At(Gs(r, 1), ""); + return Ot(ua(r, 1), ""); } return t; -}, bi = (t, e, r, n) => { - const a = t.captureStackTrace, s = (p) => n === "verbose" ? !0 : hi(p.getFileName()), i = (p) => { +}, zi = (t, e, r, n) => { + const o = t.captureStackTrace, a = (p) => n === "verbose" ? !0 : Fi(p.getFileName()), i = (p) => { let h = `${p}`; - return n === "concise" && (h = _i(h)), ` + return n === "concise" && (h = Zi(h)), ` at ${h}`; - }, c = (p, h) => At( - fe(Ve(h, s), i), + }, c = (p, h) => Ot( + se(Ke(h, a), i), "" - ), u = new Te(), l = { + ), l = new Me(), u = { // The optional `optFn` argument is for cutting off the bottom of // the stack --- for capturing the stack only above the topmost // call to that function. Since this isn't the "real" captureStackTrace // but instead calls the real one, if no other cutoff is provided, // we cut this one off. - captureStackTrace(p, h = l.captureStackTrace) { - if (typeof a == "function") { - oe(a, t, [p, h]); + captureStackTrace(p, h = u.captureStackTrace) { + if (typeof o == "function") { + ne(o, t, [p, h]); return; } - yo(p, "stack", ""); + Co(p, "stack", ""); }, // Shim of proposed special power, to reside by default only // in the start compartment, for getting the stack traceback // string associated with an error. // See https://tc39.es/proposal-error-stacks/ getStackString(p) { - let h = M(u, p); - if (h === void 0 && (p.stack, h = M(u, p), h || (h = { stackString: "" }, ee(u, p, h))), h.stackString !== void 0) + let h = L(l, p); + if (h === void 0 && (p.stack, h = L(l, p), h || (h = { stackString: "" }, ie(l, p, h))), h.stackString !== void 0) return h.stackString; const _ = c(p, h.callSites); - return ee(u, p, { stackString: _ }), _; + return ie(l, p, { stackString: _ }), _; }, prepareStackTrace(p, h) { if (r === "unsafe") { const _ = c(p, h); - return ee(u, p, { stackString: _ }), `${p}${_}`; + return ie(l, p, { stackString: _ }), `${p}${_}`; } else - return ee(u, p, { callSites: h }), ""; + return ie(l, p, { callSites: h }), ""; } - }, d = l.prepareStackTrace; + }, d = u.prepareStackTrace; t.prepareStackTrace = d; - const f = new kt([d]), m = (p) => { - if (Xt(f, p)) + const f = new Nt([d]), m = (p) => { + if (sr(f, p)) return p; const h = { - prepareStackTrace(_, w) { - return ee(u, _, { callSites: w }), p(_, li(w)); + prepareStackTrace(_, E) { + return ie(l, _, { callSites: E }), p(_, $i(E)); } }; - return Nr(f, h.prepareStackTrace), h.prepareStackTrace; + return Dr(f, h.prepareStackTrace), h.prepareStackTrace; }; return F(e, { captureStackTrace: { - value: l.captureStackTrace, + value: u.captureStackTrace, writable: !0, enumerable: !1, configurable: !0 @@ -3256,21 +3399,21 @@ const Vn = (t) => { enumerable: !1, configurable: !0 } - }), l.getStackString; -}, qn = de(le.prototype, "stack"), Kn = qn && qn.get, wi = { + }), u.getStackString; +}, lo = J(ue.prototype, "stack"), uo = lo && lo.get, Gi = { getStackString(t) { - return typeof Kn == "function" ? oe(Kn, t, []) : "stack" in t ? `${t.stack}` : ""; + return typeof uo == "function" ? ne(uo, t, []) : "stack" in t ? `${t.stack}` : ""; } }; -function Si(t = "safe", e = "concise") { +function Bi(t = "safe", e = "concise") { if (t !== "safe" && t !== "unsafe") throw v(`unrecognized errorTaming ${t}`); if (e !== "concise" && e !== "verbose") throw v(`unrecognized stackFiltering ${e}`); - const r = le.prototype, n = typeof le.captureStackTrace == "function" ? "v8" : "unknown", { captureStackTrace: a } = le, s = (l = {}) => { + const r = ue.prototype, n = typeof ue.captureStackTrace == "function" ? "v8" : "unknown", { captureStackTrace: o } = ue, a = (u = {}) => { const d = function(...m) { let p; - return new.target === void 0 ? p = oe(le, this, m) : p = lr(le, m, new.target), n === "v8" && oe(a, le, [p, d]), p; + return new.target === void 0 ? p = ne(ue, this, m) : p = gr(ue, m, new.target), n === "v8" && ne(o, ue, [p, d]), p; }; return F(d, { length: { value: 1 }, @@ -3281,21 +3424,21 @@ function Si(t = "safe", e = "concise") { configurable: !1 } }), d; - }, i = s({ powers: "original" }), c = s({ powers: "none" }); + }, i = a({ powers: "original" }), c = a({ powers: "none" }); F(r, { constructor: { value: c } }); - for (const l of Ea) - uo(l, c); + for (const u of os) + ko(u, c); F(i, { stackTraceLimit: { get() { - if (typeof le.stackTraceLimit == "number") - return le.stackTraceLimit; + if (typeof ue.stackTraceLimit == "number") + return ue.stackTraceLimit; }, - set(l) { - if (typeof l == "number" && typeof le.stackTraceLimit == "number") { - le.stackTraceLimit = l; + set(u) { + if (typeof u == "number" && typeof ue.stackTraceLimit == "number") { + ue.stackTraceLimit = u; return; } }, @@ -3307,7 +3450,7 @@ function Si(t = "safe", e = "concise") { stackTraceLimit: { get() { }, - set(l) { + set(u) { }, enumerable: !1, configurable: !0 @@ -3317,14 +3460,14 @@ function Si(t = "safe", e = "concise") { get() { return () => ""; }, - set(l) { + set(u) { }, enumerable: !1, configurable: !0 }, captureStackTrace: { - value: (l, d) => { - L(l, "stack", { + value: (u, d) => { + M(u, "stack", { value: "" }); }, @@ -3333,21 +3476,21 @@ function Si(t = "safe", e = "concise") { configurable: !0 } }); - let u = wi.getStackString; - return n === "v8" ? u = bi( - le, + let l = Gi.getStackString; + return n === "v8" ? l = zi( + ue, i, t, e ) : t === "unsafe" ? F(r, { stack: { get() { - return u(this); + return l(this); }, - set(l) { + set(u) { F(this, { stack: { - value: l, + value: u, writable: !0, enumerable: !0, configurable: !0 @@ -3360,10 +3503,10 @@ function Si(t = "safe", e = "concise") { get() { return `${this}`; }, - set(l) { + set(u) { F(this, { stack: { - value: l, + value: u, writable: !0, enumerable: !0, configurable: !0 @@ -3372,244 +3515,307 @@ function Si(t = "safe", e = "concise") { } } }), { - "%InitialGetStackString%": u, + "%InitialGetStackString%": l, "%InitialError%": i, "%SharedError%": c }; } -const { Fail: Ei, details: en, quote: Le } = Z, ls = () => { -}, xi = (t, e) => g({ +const { Fail: Hi, details: dn, quote: xe } = z, Vi = () => { +}; +async function Wi(t, e, r) { + const n = t(...e); + let o = vr(n); + for (; !o.done; ) + try { + const a = await o.value; + o = vr(n, a); + } catch (a) { + o = Do(n, r(a)); + } + return o.value; +} +function qi(t, e) { + const r = t(...e); + let n = vr(r); + for (; !n.done; ) + try { + n = vr(r, n.value); + } catch (o) { + n = Do(r, o); + } + return n.value; +} +const Ki = (t, e) => y({ compartment: t, specifier: e -}), Pi = (t, e, r) => { - const n = H(null); - for (const a of t) { - const s = e(a, r); - n[a] = s; +}), Yi = (t, e, r) => { + const n = Z(null); + for (const o of t) { + const a = e(o, r); + n[o] = a; } - return g(n); -}, Yn = (t, e, r, n, a, s, i, c, u) => { - const { resolveHook: l, moduleRecords: d } = M( + return y(n); +}, fo = (t, e, r, n, o, a, i, c, l) => { + const { resolveHook: u, moduleRecords: d } = L( t, r - ), f = Pi( - a.imports, - l, + ), f = Yi( + o.imports, + u, n - ), m = g({ + ), m = y({ compartment: r, - staticModuleRecord: a, + staticModuleRecord: o, moduleSpecifier: n, resolvedImports: f, - importMeta: u + importMeta: l }); - for (const p of fo(f)) { - const h = mr( + for (const p of Po(f)) + a(jt, [ t, e, r, p, - s, + a, i, c - ); - $r( - s, - yn(h, ls, (_) => { - ae(c, _); - }) - ); - } + ]); return $e(d, n, m), m; -}, ki = async (t, e, r, n, a, s, i) => { - const { importHook: c, moduleMap: u, moduleMapHook: l, moduleRecords: d } = M( - t, - r - ); - let f = u[n]; - if (f === void 0 && l !== void 0 && (f = l(n)), typeof f == "string") - Z.fail( - en`Cannot map module ${Le(n)} to ${Le( - f +}; +function* Ji(t, e, r, n, o, a, i) { + const { importHook: c, importNowHook: l, moduleMap: u, moduleMapHook: d, moduleRecords: f } = L(t, r); + let m = u[n]; + if (m === void 0 && d !== void 0 && (m = d(n)), typeof m == "string") + z.fail( + dn`Cannot map module ${xe(n)} to ${xe( + m )} in parent compartment, not yet implemented`, v ); - else if (f !== void 0) { - const p = M(e, f); - p === void 0 && Z.fail( - en`Cannot map module ${Le( + else if (m !== void 0) { + const h = L(e, m); + h === void 0 && z.fail( + dn`Cannot map module ${xe( n )} because the value is not a module exports namespace, or is from another realm`, - ot + ut ); - const h = await mr( + const _ = yield jt( t, e, - p.compartment, - p.specifier, + h.compartment, + h.specifier, + o, a, - s, i ); - return $e(d, n, h), h; + return $e(f, n, _), _; } - if (Cr(d, n)) - return De(d, n); - const m = await c(n); - if ((m === null || typeof m != "object") && Ei`importHook must return a promise for an object, for module ${Le( + if (Fr(f, n)) + return Ue(f, n); + const p = yield a( + c, + l + )(n); + if ((p === null || typeof p != "object") && Hi`importHook must return a promise for an object, for module ${xe( n - )} in compartment ${Le(r.name)}`, m.specifier !== void 0) { - if (m.record !== void 0) { - if (m.compartment !== void 0) + )} in compartment ${xe(r.name)}`, p.specifier !== void 0) { + if (p.record !== void 0) { + if (p.compartment !== void 0) throw v( "Cannot redirect to an explicit record with a specified compartment" ); const { - compartment: p = r, - specifier: h = n, - record: _, - importMeta: w - } = m, I = Yn( + compartment: h = r, + specifier: _ = n, + record: E, + importMeta: T + } = p, N = fo( t, e, - p, h, _, + E, + o, a, - s, i, - w + T ); - return $e(d, n, I), I; + return $e(f, n, N), N; } - if (m.compartment !== void 0) { - if (m.importMeta !== void 0) + if (p.compartment !== void 0) { + if (p.importMeta !== void 0) throw v( "Cannot redirect to an implicit record with a specified importMeta" ); - const p = await mr( + const h = yield jt( t, e, - m.compartment, - m.specifier, + p.compartment, + p.specifier, + o, a, - s, i ); - return $e(d, n, p), p; + return $e(f, n, h), h; } throw v("Unnexpected RedirectStaticModuleInterface record shape"); } - return Yn( + return fo( t, e, r, n, - m, + p, + o, a, - s, i ); -}, mr = async (t, e, r, n, a, s, i) => { - const { name: c } = M( +} +const jt = (t, e, r, n, o, a, i) => { + const { name: c } = L( t, r ); - let u = De(s, r); - u === void 0 && (u = new Ce(), $e(s, r, u)); - let l = De(u, n); - return l !== void 0 || (l = na( - ki( + let l = Ue(i, r); + l === void 0 && (l = new Pe(), $e(i, r, l)); + let u = Ue(l, n); + return u !== void 0 || (u = a(Wi, qi)( + Ji, + [ t, e, r, n, + o, a, - s, i - ), + ], (d) => { - throw Z.note( + throw z.note( d, - en`${d.message}, loading ${Le(n)} in compartment ${Le( + dn`${d.message}, loading ${xe(n)} in compartment ${xe( c )}` ), d; } - ), $e(u, n, l)), l; -}, Jn = async (t, e, r, n) => { - const { name: a } = M( + ), $e(l, n, u)), u; +}; +function Xi() { + const t = new $t(), e = []; + return { enqueueJob: (o, a) => { + Sn( + t, + jo(o(...a), Vi, (i) => { + X(e, i); + }) + ); + }, drainQueue: async () => { + for (const o of t) + await o; + return e; + } }; +} +function Ts({ errors: t, errorPrefix: e }) { + if (t.length > 0) { + const r = le("COMPARTMENT_LOAD_ERRORS", "", ["verbose"]) === "verbose"; + throw v( + `${e} (${t.length} underlying failures: ${Ot( + se(t, (n) => n.message + (r ? n.stack : "")), + ", " + )}` + ); + } +} +const Qi = (t, e) => e, ec = (t, e) => t, po = async (t, e, r, n) => { + const { name: o } = L( t, r - ), s = new Pt(), i = new Ce(), c = [], u = mr( + ), a = new Pe(), { enqueueJob: i, drainQueue: c } = Xi(); + i(jt, [ t, e, r, n, - s, i, - c - ); - $r( - s, - yn(u, ls, (l) => { - ae(c, l); - }) - ); - for (const l of s) - await l; - if (c.length > 0) - throw v( - `Failed to load module ${Le(n)} in package ${Le( - a - )} (${c.length} underlying failures: ${At( - fe(c, (l) => l.message), - ", " - )}` - ); -}, { quote: ht } = Z, Ti = () => { + ec, + a + ]); + const l = await c(); + Ts({ + errors: l, + errorPrefix: `Failed to load module ${xe(n)} in package ${xe( + o + )}` + }); +}, tc = (t, e, r, n) => { + const { name: o } = L( + t, + r + ), a = new Pe(), i = [], c = (l, u) => { + try { + l(...u); + } catch (d) { + X(i, d); + } + }; + c(jt, [ + t, + e, + r, + n, + c, + Qi, + a + ]), Ts({ + errors: i, + errorPrefix: `Failed to load module ${xe(n)} in package ${xe( + o + )}` + }); +}, { quote: vt } = z, rc = () => { let t = !1; - const e = H(null, { + const e = Z(null, { // Make this appear like an ESM module namespace object. - [He]: { + [qe]: { value: "Module", writable: !1, enumerable: !1, configurable: !1 } }); - return g({ + return y({ activate() { t = !0; }, exportsTarget: e, - exportsProxy: new xr(e, { - get(r, n, a) { + exportsProxy: new $r(e, { + get(r, n, o) { if (!t) throw v( - `Cannot get property ${ht( + `Cannot get property ${vt( n )} of module exports namespace, the module has not yet begun to execute` ); - return Ds(e, n, a); + return sa(e, n, o); }, - set(r, n, a) { + set(r, n, o) { throw v( - `Cannot set property ${ht(n)} of module exports namespace` + `Cannot set property ${vt(n)} of module exports namespace` ); }, has(r, n) { if (!t) throw v( - `Cannot check property ${ht( + `Cannot check property ${vt( n )}, the module has not yet begun to execute` ); - return ho(e, n); + return Io(e, n); }, deleteProperty(r, n) { throw v( - `Cannot delete property ${ht(n)}s of module exports namespace` + `Cannot delete property ${vt(n)}s of module exports namespace` ); }, ownKeys(r) { @@ -3617,30 +3823,30 @@ const { Fail: Ei, details: en, quote: Le } = Z, ls = () => { throw v( "Cannot enumerate keys, the module has not yet begun to execute" ); - return it(e); + return De(e); }, getOwnPropertyDescriptor(r, n) { if (!t) throw v( - `Cannot get own property descriptor ${ht( + `Cannot get own property descriptor ${vt( n )}, the module has not yet begun to execute` ); - return Us(e, n); + return aa(e, n); }, preventExtensions(r) { if (!t) throw v( "Cannot prevent extensions of module exports namespace, the module has not yet begun to execute" ); - return Zs(e); + return ca(e); }, isExtensible() { if (!t) throw v( "Cannot check extensibility of module exports namespace, the module has not yet begun to execute" ); - return js(e); + return ia(e); }, getPrototypeOf(r) { return null; @@ -3648,12 +3854,12 @@ const { Fail: Ei, details: en, quote: Le } = Z, ls = () => { setPrototypeOf(r, n) { throw v("Cannot set prototype of module exports namespace"); }, - defineProperty(r, n, a) { + defineProperty(r, n, o) { throw v( - `Cannot define property ${ht(n)} of module exports namespace` + `Cannot define property ${vt(n)} of module exports namespace` ); }, - apply(r, n, a) { + apply(r, n, o) { throw v( "Cannot call module exports namespace, it is not a function" ); @@ -3665,102 +3871,102 @@ const { Fail: Ei, details: en, quote: Le } = Z, ls = () => { } }) }); -}, En = (t, e, r, n) => { - const { deferredExports: a } = e; - if (!Cr(a, n)) { - const s = Ti(); - ee( +}, Un = (t, e, r, n) => { + const { deferredExports: o } = e; + if (!Fr(o, n)) { + const a = rc(); + ie( r, - s.exportsProxy, - xi(t, n) - ), $e(a, n, s); + a.exportsProxy, + Ki(t, n) + ), $e(o, n, a); } - return De(a, n); -}, Ii = (t, e) => { + return Ue(o, n); +}, nc = (t, e) => { const { sloppyGlobalsMode: r = !1, __moduleShimLexicals__: n = void 0 } = e; - let a; + let o; if (n === void 0 && !r) - ({ safeEvaluate: a } = t); + ({ safeEvaluate: o } = t); else { - let { globalTransforms: s } = t; + let { globalTransforms: a } = t; const { globalObject: i } = t; let c; - n !== void 0 && (s = void 0, c = H( + n !== void 0 && (a = void 0, c = Z( null, - Je(n) - )), { safeEvaluate: a } = Sn({ + Ze(n) + )), { safeEvaluate: o } = Mn({ globalObject: i, moduleLexicals: c, - globalTransforms: s, + globalTransforms: a, sloppyGlobalsMode: r }); } - return { safeEvaluate: a }; -}, us = (t, e, r) => { + return { safeEvaluate: o }; +}, As = (t, e, r) => { if (typeof e != "string") throw v("first argument of evaluate() must be a string"); const { transforms: n = [], - __evadeHtmlCommentTest__: a = !1, - __evadeImportExpressionTest__: s = !1, + __evadeHtmlCommentTest__: o = !1, + __evadeImportExpressionTest__: a = !1, __rejectSomeDirectEvalExpressions__: i = !0 // Note default on } = r, c = [...n]; - a === !0 && ae(c, Jo), s === !0 && ae(c, es), i === !0 && ae(c, ts); - const { safeEvaluate: u } = Ii( + o === !0 && X(c, ys), a === !0 && X(c, bs), i === !0 && X(c, ws); + const { safeEvaluate: l } = nc( t, r ); - return u(e, { + return l(e, { localTransforms: c }); -}, { quote: rr } = Z, Ai = (t, e, r, n, a, s) => { - const { exportsProxy: i, exportsTarget: c, activate: u } = En( +}, { quote: lr } = z, oc = (t, e, r, n, o, a) => { + const { exportsProxy: i, exportsTarget: c, activate: l } = Un( r, - M(t, r), + L(t, r), n, - a - ), l = H(null); + o + ), u = Z(null); if (e.exports) { - if (!vt(e.exports) || Bs(e.exports, (f) => typeof f != "string")) + if (!xt(e.exports) || da(e.exports, (f) => typeof f != "string")) throw v( - `SES third-party static module record "exports" property must be an array of strings for module ${a}` + `SES third-party static module record "exports" property must be an array of strings for module ${o}` ); - st(e.exports, (f) => { + dt(e.exports, (f) => { let m = c[f]; const p = []; - L(c, f, { + M(c, f, { get: () => m, - set: (w) => { - m = w; - for (const I of p) - I(w); + set: (E) => { + m = E; + for (const T of p) + T(E); }, enumerable: !0, configurable: !1 - }), l[f] = (w) => { - ae(p, w), w(m); + }), u[f] = (E) => { + X(p, E), E(m); }; - }), l["*"] = (f) => { + }), u["*"] = (f) => { f(c); }; } const d = { activated: !1 }; - return g({ - notifiers: l, + return y({ + notifiers: u, exportsProxy: i, execute() { - if (ho(d, "errorFromExecute")) + if (Io(d, "errorFromExecute")) throw d.errorFromExecute; if (!d.activated) { - u(), d.activated = !0; + l(), d.activated = !0; try { e.execute( c, r, - s + a ); } catch (f) { throw d.errorFromExecute = f, f; @@ -3768,294 +3974,294 @@ const { Fail: Ei, details: en, quote: Le } = Z, ls = () => { } } }); -}, Ci = (t, e, r, n) => { +}, sc = (t, e, r, n) => { const { - compartment: a, - moduleSpecifier: s, + compartment: o, + moduleSpecifier: a, staticModuleRecord: i, importMeta: c } = r, { - reexports: u = [], - __syncModuleProgram__: l, + reexports: l = [], + __syncModuleProgram__: u, __fixedExportMap__: d = {}, __liveExportMap__: f = {}, __reexportMap__: m = {}, __needsImportMeta__: p = !1, __syncModuleFunctor__: h - } = i, _ = M(t, a), { __shimTransforms__: w, importMetaHook: I } = _, { exportsProxy: $, exportsTarget: T, activate: D } = En( - a, + } = i, _ = L(t, o), { __shimTransforms__: E, importMetaHook: T } = _, { exportsProxy: N, exportsTarget: x, activate: D } = Un( + o, _, e, - s - ), j = H(null), q = H(null), K = H(null), je = H(null), pe = H(null); - c && Pr(pe, c), p && I && I(s, pe); - const Ze = H(null), Xe = H(null); - st(te(d), ([me, [z]]) => { - let G = Ze[z]; - if (!G) { - let X, Q = !0, ce = []; + a + ), G = Z(null), B = Z(null), K = Z(null), ze = Z(null), me = Z(null); + c && Nr(me, c), p && T && T(a, me); + const Ge = Z(null), rt = Z(null); + dt(re(d), ([he, [H]]) => { + let V = Ge[H]; + if (!V) { + let ee, te = !0, ce = []; const Y = () => { - if (Q) - throw ot(`binding ${rr(z)} not yet initialized`); - return X; - }, _e = g((be) => { - if (!Q) + if (te) + throw ut(`binding ${lr(H)} not yet initialized`); + return ee; + }, be = y((we) => { + if (!te) throw v( - `Internal: binding ${rr(z)} already initialized` + `Internal: binding ${lr(H)} already initialized` ); - X = be; - const In = ce; - ce = null, Q = !1; - for (const we of In || []) - we(be); - return be; + ee = we; + const Hn = ce; + ce = null, te = !1; + for (const Ee of Hn || []) + Ee(we); + return we; }); - G = { + V = { get: Y, - notify: (be) => { - be !== _e && (Q ? ae(ce || [], be) : be(X)); + notify: (we) => { + we !== be && (te ? X(ce || [], we) : we(ee)); } - }, Ze[z] = G, K[z] = _e; + }, Ge[H] = V, K[H] = be; } - j[me] = { - get: G.get, + G[he] = { + get: V.get, set: void 0, enumerable: !0, configurable: !1 - }, Xe[me] = G.notify; - }), st( - te(f), - ([me, [z, G]]) => { - let X = Ze[z]; - if (!X) { - let Q, ce = !0; - const Y = [], _e = () => { + }, rt[he] = V.notify; + }), dt( + re(f), + ([he, [H, V]]) => { + let ee = Ge[H]; + if (!ee) { + let te, ce = !0; + const Y = [], be = () => { if (ce) - throw ot( - `binding ${rr(me)} not yet initialized` + throw ut( + `binding ${lr(he)} not yet initialized` ); - return Q; - }, ft = g((we) => { - Q = we, ce = !1; - for (const Lr of Y) - Lr(we); - }), be = (we) => { + return te; + }, yt = y((Ee) => { + te = Ee, ce = !1; + for (const Gr of Y) + Gr(Ee); + }), we = (Ee) => { if (ce) - throw ot(`binding ${rr(z)} not yet initialized`); - Q = we; - for (const Lr of Y) - Lr(we); + throw ut(`binding ${lr(H)} not yet initialized`); + te = Ee; + for (const Gr of Y) + Gr(Ee); }; - X = { - get: _e, - notify: (we) => { - we !== ft && (ae(Y, we), ce || we(Q)); + ee = { + get: be, + notify: (Ee) => { + Ee !== yt && (X(Y, Ee), ce || Ee(te)); } - }, Ze[z] = X, G && L(q, z, { - get: _e, - set: be, + }, Ge[H] = ee, V && M(B, H, { + get: be, + set: we, enumerable: !0, configurable: !1 - }), je[z] = ft; + }), ze[H] = yt; } - j[me] = { - get: X.get, + G[he] = { + get: ee.get, set: void 0, enumerable: !0, configurable: !1 - }, Xe[me] = X.notify; + }, rt[he] = ee.notify; } ); - const ze = (me) => { - me(T); + const Be = (he) => { + he(x); }; - Xe["*"] = ze; - function er(me) { - const z = H(null); - z.default = !1; - for (const [G, X] of me) { - const Q = De(n, G); - Q.execute(); - const { notifiers: ce } = Q; - for (const [Y, _e] of X) { - const ft = ce[Y]; - if (!ft) - throw Kt( - `The requested module '${G}' does not provide an export named '${Y}'` + rt["*"] = Be; + function ir(he) { + const H = Z(null); + H.default = !1; + for (const [V, ee] of he) { + const te = Ue(n, V); + te.execute(); + const { notifiers: ce } = te; + for (const [Y, be] of ee) { + const yt = ce[Y]; + if (!yt) + throw rr( + `The requested module '${V}' does not provide an export named '${Y}'` ); - for (const be of _e) - ft(be); + for (const we of be) + yt(we); } - if (Ar(u, G)) - for (const [Y, _e] of te( + if (Lr(l, V)) + for (const [Y, be] of re( ce )) - z[Y] === void 0 ? z[Y] = _e : z[Y] = !1; - if (m[G]) - for (const [Y, _e] of m[G]) - z[_e] = ce[Y]; + H[Y] === void 0 ? H[Y] = be : H[Y] = !1; + if (m[V]) + for (const [Y, be] of m[V]) + H[be] = ce[Y]; } - for (const [G, X] of te(z)) - if (!Xe[G] && X !== !1) { - Xe[G] = X; - let Q; - X((Y) => Q = Y), j[G] = { + for (const [V, ee] of re(H)) + if (!rt[V] && ee !== !1) { + rt[V] = ee; + let te; + ee((Y) => te = Y), G[V] = { get() { - return Q; + return te; }, set: void 0, enumerable: !0, configurable: !1 }; } - st( - _o(co(j)), - (G) => L(T, G, j[G]) - ), g(T), D(); + dt( + Mo(xo(G)), + (V) => M(x, V, G[V]) + ), y(x), D(); } - let Ct; - h !== void 0 ? Ct = h : Ct = us(_, l, { - globalObject: a.globalThis, - transforms: w, - __moduleShimLexicals__: q + let Mt; + h !== void 0 ? Mt = h : Mt = As(_, u, { + globalObject: o.globalThis, + transforms: E, + __moduleShimLexicals__: B }); - let kn = !1, Tn; - function xs() { - if (Ct) { - const me = Ct; - Ct = null; + let Gn = !1, Bn; + function Bs() { + if (Mt) { + const he = Mt; + Mt = null; try { - me( - g({ - imports: g(er), - onceVar: g(K), - liveVar: g(je), - importMeta: pe + he( + y({ + imports: y(ir), + onceVar: y(K), + liveVar: y(ze), + importMeta: me }) ); - } catch (z) { - kn = !0, Tn = z; + } catch (H) { + Gn = !0, Bn = H; } } - if (kn) - throw Tn; + if (Gn) + throw Bn; } - return g({ - notifiers: Xe, - exportsProxy: $, - execute: xs + return y({ + notifiers: rt, + exportsProxy: N, + execute: Bs }); -}, { Fail: nt, quote: W } = Z, ds = (t, e, r, n) => { - const { name: a, moduleRecords: s } = M( +}, { Fail: lt, quote: q } = z, Is = (t, e, r, n) => { + const { name: o, moduleRecords: a } = L( t, r - ), i = De(s, n); + ), i = Ue(a, n); if (i === void 0) - throw ot( - `Missing link to module ${W(n)} from compartment ${W( - a + throw ut( + `Missing link to module ${q(n)} from compartment ${q( + o )}` ); - return Li(t, e, i); + return dc(t, e, i); }; -function $i(t) { +function ac(t) { return typeof t.__syncModuleProgram__ == "string"; } -function Ni(t, e) { +function ic(t, e) { const { __fixedExportMap__: r, __liveExportMap__: n } = t; - We(r) || nt`Property '__fixedExportMap__' of a precompiled module record must be an object, got ${W( + Ye(r) || lt`Property '__fixedExportMap__' of a precompiled module record must be an object, got ${q( r - )}, for module ${W(e)}`, We(n) || nt`Property '__liveExportMap__' of a precompiled module record must be an object, got ${W( + )}, for module ${q(e)}`, Ye(n) || lt`Property '__liveExportMap__' of a precompiled module record must be an object, got ${q( n - )}, for module ${W(e)}`; + )}, for module ${q(e)}`; } -function Oi(t) { +function cc(t) { return typeof t.execute == "function"; } -function Ri(t, e) { +function lc(t, e) { const { exports: r } = t; - vt(r) || nt`Property 'exports' of a third-party static module record must be an array, got ${W( + xt(r) || lt`Property 'exports' of a third-party static module record must be an array, got ${q( r - )}, for module ${W(e)}`; + )}, for module ${q(e)}`; } -function Mi(t, e) { - We(t) || nt`Static module records must be of type object, got ${W( +function uc(t, e) { + Ye(t) || lt`Static module records must be of type object, got ${q( t - )}, for module ${W(e)}`; - const { imports: r, exports: n, reexports: a = [] } = t; - vt(r) || nt`Property 'imports' of a static module record must be an array, got ${W( + )}, for module ${q(e)}`; + const { imports: r, exports: n, reexports: o = [] } = t; + xt(r) || lt`Property 'imports' of a static module record must be an array, got ${q( r - )}, for module ${W(e)}`, vt(n) || nt`Property 'exports' of a precompiled module record must be an array, got ${W( + )}, for module ${q(e)}`, xt(n) || lt`Property 'exports' of a precompiled module record must be an array, got ${q( n - )}, for module ${W(e)}`, vt(a) || nt`Property 'reexports' of a precompiled module record must be an array if present, got ${W( - a - )}, for module ${W(e)}`; + )}, for module ${q(e)}`, xt(o) || lt`Property 'reexports' of a precompiled module record must be an array if present, got ${q( + o + )}, for module ${q(e)}`; } -const Li = (t, e, r) => { - const { compartment: n, moduleSpecifier: a, resolvedImports: s, staticModuleRecord: i } = r, { instances: c } = M(t, n); - if (Cr(c, a)) - return De(c, a); - Mi(i, a); - const u = new Ce(); - let l; - if ($i(i)) - Ni(i, a), l = Ci( +const dc = (t, e, r) => { + const { compartment: n, moduleSpecifier: o, resolvedImports: a, staticModuleRecord: i } = r, { instances: c } = L(t, n); + if (Fr(c, o)) + return Ue(c, o); + uc(i, o); + const l = new Pe(); + let u; + if (ac(i)) + ic(i, o), u = sc( t, e, r, - u + l ); - else if (Oi(i)) - Ri(i, a), l = Ai( + else if (cc(i)) + lc(i, o), u = oc( t, i, n, e, - a, - s + o, + a ); else throw v( - `importHook must return a static module record, got ${W( + `importHook must return a static module record, got ${q( i )}` ); - $e(c, a, l); - for (const [d, f] of te(s)) { - const m = ds( + $e(c, o, u); + for (const [d, f] of re(a)) { + const m = Is( t, e, n, f ); - $e(u, d, m); + $e(l, d, m); } - return l; -}, { quote: zr } = Z, Rt = new Te(), Me = new Te(), nr = (t) => { - const { importHook: e, resolveHook: r } = M(Me, t); + return u; +}, { quote: Qr } = z, wt = new Me(), Ce = new Me(), ur = (t) => { + const { importHook: e, resolveHook: r } = L(Ce, t); if (typeof e != "function" || typeof r != "function") throw v( "Compartment must be constructed with an importHook and a resolveHook for it to be able to load modules" ); -}, xn = function(e = {}, r = {}, n = {}) { +}, jn = function(e = {}, r = {}, n = {}) { throw v( "Compartment.prototype.constructor is not a valid constructor." ); -}, Xn = (t, e) => { - const { execute: r, exportsProxy: n } = ds( - Me, - Rt, +}, mo = (t, e) => { + const { execute: r, exportsProxy: n } = Is( + Ce, + wt, t, e ); return r(), n; -}, Pn = { - constructor: xn, +}, Zn = { + constructor: jn, get globalThis() { - return M(Me, this).globalObject; + return L(Ce, this).globalObject; }, get name() { - return M(Me, this).name; + return L(Ce, this).name; }, /** * @param {string} source is a JavaScript program grammar construction. @@ -4068,17 +4274,17 @@ const Li = (t, e, r) => { * @param {boolean} [options.__rejectSomeDirectEvalExpressions__] */ evaluate(t, e = {}) { - const r = M(Me, this); - return us(r, t, e); + const r = L(Ce, this); + return As(r, t, e); }, module(t) { if (typeof t != "string") throw v("first argument of module() must be a string"); - nr(this); - const { exportsProxy: e } = En( + ur(this); + const { exportsProxy: e } = Un( this, - M(Me, this), - Rt, + L(Ce, this), + wt, t ); return e; @@ -4086,9 +4292,9 @@ const Li = (t, e, r) => { async import(t) { if (typeof t != "string") throw v("first argument of import() must be a string"); - return nr(this), yn( - Jn(Me, Rt, this, t), - () => ({ namespace: Xn( + return ur(this), jo( + po(Ce, wt, this, t), + () => ({ namespace: mo( /** @type {Compartment} */ this, t @@ -4098,212 +4304,210 @@ const Li = (t, e, r) => { async load(t) { if (typeof t != "string") throw v("first argument of load() must be a string"); - return nr(this), Jn(Me, Rt, this, t); + return ur(this), po(Ce, wt, this, t); }, importNow(t) { if (typeof t != "string") throw v("first argument of importNow() must be a string"); - return nr(this), Xn( + return ur(this), tc(Ce, wt, this, t), mo( /** @type {Compartment} */ this, t ); } }; -F(Pn, { - [He]: { +F(Zn, { + [qe]: { value: "Compartment", writable: !1, enumerable: !1, configurable: !0 } }); -F(xn, { - prototype: { value: Pn } +F(jn, { + prototype: { value: Zn } }); -const tn = (t, e, r) => { - function n(a = {}, s = {}, i = {}) { +const fn = (t, e, r) => { + function n(o = {}, a = {}, i = {}) { if (new.target === void 0) throw v( "Class constructor Compartment cannot be invoked without 'new'" ); const { name: c = "", - transforms: u = [], - __shimTransforms__: l = [], + transforms: l = [], + __shimTransforms__: u = [], resolveHook: d, importHook: f, - moduleMapHook: m, - importMetaHook: p - } = i, h = [...u, ...l], _ = new Ce(), w = new Ce(), I = new Ce(); - for (const [D, j] of te(s || {})) { - if (typeof j == "string") + importNowHook: m, + moduleMapHook: p, + importMetaHook: h + } = i, _ = [...l, ...u], E = new Pe(), T = new Pe(), N = new Pe(); + for (const [G, B] of re(a || {})) { + if (typeof B == "string") throw v( - `Cannot map module ${zr(D)} to ${zr( - j + `Cannot map module ${Qr(G)} to ${Qr( + B )} in parent compartment` ); - if (M(Rt, j) === void 0) - throw ot( - `Cannot map module ${zr( - D + if (L(wt, B) === void 0) + throw ut( + `Cannot map module ${Qr( + G )} because it has no known compartment in this realm` ); } - const $ = {}; - Ga($), Go($); - const { safeEvaluate: T } = Sn({ - globalObject: $, - globalTransforms: h, + const x = {}; + ui(x), ls(x); + const { safeEvaluate: D } = Mn({ + globalObject: x, + globalTransforms: _, sloppyGlobalsMode: !1 }); - Bo($, { + us(x, { intrinsics: e, - newGlobalPropertyNames: Do, + newGlobalPropertyNames: ns, makeCompartmentConstructor: t, markVirtualizedNativeFunction: r - }), Qr( - $, - T, + }), un( + x, + D, r - ), Pr($, a), ee(Me, this, { + ), Nr(x, o), ie(Ce, this, { name: `${c}`, - globalTransforms: h, - globalObject: $, - safeEvaluate: T, + globalTransforms: _, + globalObject: x, + safeEvaluate: D, resolveHook: d, importHook: f, - moduleMap: s, - moduleMapHook: m, - importMetaHook: p, - moduleRecords: _, - __shimTransforms__: l, - deferredExports: I, - instances: w + importNowHook: m, + moduleMap: a, + moduleMapHook: p, + importMetaHook: h, + moduleRecords: E, + __shimTransforms__: u, + deferredExports: N, + instances: T }); } - return n.prototype = Pn, n; + return n.prototype = Zn, n; }; -function Gr(t) { - return B(t).constructor; +function en(t) { + return j(t).constructor; } -function Fi() { +function fc() { return arguments; } -const Di = () => { - const t = ve.prototype.constructor, e = de(Fi(), "callee"), r = e && e.get, n = ea(new ie()), a = B(n), s = Tr[po] && Ys(/./), i = s && B(s), c = Hs([]), u = B(c), l = B(Ts), d = qs(new Ce()), f = B(d), m = Ks(new Pt()), p = B(m), h = B(u); +const pc = () => { + const t = ve.prototype.constructor, e = J(fc(), "callee"), r = e && e.get, n = ba(new pe()), o = j(n), a = Or[To] && ya(/./), i = a && j(a), c = fa([]), l = j(c), u = j(Ws), d = ha(new Pe()), f = j(d), m = ga(new $t()), p = j(m), h = j(l); function* _() { } - const w = Gr(_), I = w.prototype; - async function* $() { + const E = en(_), T = E.prototype; + async function* N() { } - const T = Gr( - $ - ), D = T.prototype, j = D.prototype, q = B(j); + const x = en( + N + ), D = x.prototype, G = D.prototype, B = j(G); async function K() { } - const je = Gr(K), pe = { + const ze = en(K), me = { "%InertFunction%": t, - "%ArrayIteratorPrototype%": u, - "%InertAsyncFunction%": je, + "%ArrayIteratorPrototype%": l, + "%InertAsyncFunction%": ze, "%AsyncGenerator%": D, - "%InertAsyncGeneratorFunction%": T, - "%AsyncGeneratorPrototype%": j, - "%AsyncIteratorPrototype%": q, - "%Generator%": I, - "%InertGeneratorFunction%": w, + "%InertAsyncGeneratorFunction%": x, + "%AsyncGeneratorPrototype%": G, + "%AsyncIteratorPrototype%": B, + "%Generator%": T, + "%InertGeneratorFunction%": E, "%IteratorPrototype%": h, "%MapIteratorPrototype%": f, "%RegExpStringIteratorPrototype%": i, "%SetIteratorPrototype%": p, - "%StringIteratorPrototype%": a, + "%StringIteratorPrototype%": o, "%ThrowTypeError%": r, - "%TypedArray%": l, - "%InertCompartment%": xn + "%TypedArray%": u, + "%InertCompartment%": jn }; - return x.Iterator && (pe["%IteratorHelperPrototype%"] = B( + return k.Iterator && (me["%IteratorHelperPrototype%"] = j( // eslint-disable-next-line @endo/no-polymorphic-call - x.Iterator.from([]).take(0) - ), pe["%WrapForValidIteratorPrototype%"] = B( + k.Iterator.from([]).take(0) + ), me["%WrapForValidIteratorPrototype%"] = j( // eslint-disable-next-line @endo/no-polymorphic-call - x.Iterator.from({ next() { + k.Iterator.from({ next() { } }) - )), x.AsyncIterator && (pe["%AsyncIteratorHelperPrototype%"] = B( + )), k.AsyncIterator && (me["%AsyncIteratorHelperPrototype%"] = j( // eslint-disable-next-line @endo/no-polymorphic-call - x.AsyncIterator.from([]).take(0) - ), pe["%WrapForValidAsyncIteratorPrototype%"] = B( + k.AsyncIterator.from([]).take(0) + ), me["%WrapForValidAsyncIteratorPrototype%"] = j( // eslint-disable-next-line @endo/no-polymorphic-call - x.AsyncIterator.from({ next() { + k.AsyncIterator.from({ next() { } }) - )), pe; -}, fs = (t, e) => { + )), me; +}, Cs = (t, e) => { if (e !== "safe" && e !== "unsafe") throw v(`unrecognized fakeHardenOption ${e}`); if (e === "safe" || (Object.isExtensible = () => !1, Object.isFrozen = () => !0, Object.isSealed = () => !0, Reflect.isExtensible = () => !1, t.isFake)) return t; const r = (n) => n; - return r.isFake = !0, g(r); + return r.isFake = !0, y(r); }; -g(fs); -const Ui = () => { - const t = Ot, e = t.prototype, r = { - Symbol(s) { - return t(s); - } - }.Symbol; +y(Cs); +const mc = () => { + const t = St, e = t.prototype, r = Sa(St, void 0); F(e, { constructor: { value: r // leave other `constructor` attributes as is } }); - const n = te( - Je(t) - ), a = Tt( - fe(n, ([s, i]) => [ - s, + const n = re( + Ze(t) + ), o = gt( + se(n, ([a, i]) => [ + a, { ...i, configurable: !0 } ]) ); - return F(r, a), { "%SharedSymbol%": r }; -}, ji = (t) => { + return F(r, o), { "%SharedSymbol%": r }; +}, hc = (t) => { try { return t(), !1; } catch { return !0; } -}, Qn = (t, e, r) => { +}, ho = (t, e, r) => { if (t === void 0) return !1; - const n = de(t, e); + const n = J(t, e); if (!n || "value" in n) return !1; - const { get: a, set: s } = n; - if (typeof a != "function" || typeof s != "function" || a() !== r || oe(a, t, []) !== r) + const { get: o, set: a } = n; + if (typeof o != "function" || typeof a != "function" || o() !== r || ne(o, t, []) !== r) return !1; const i = "Seems to be a setter", c = { __proto__: null }; - if (oe(s, c, [i]), c[e] !== i) + if (ne(a, c, [i]), c[e] !== i) return !1; - const u = { __proto__: t }; - return oe(s, u, [i]), u[e] !== i || !ji(() => oe(s, t, [r])) || "originalValue" in a || n.configurable === !1 ? !1 : (L(t, e, { + const l = { __proto__: t }; + return ne(a, l, [i]), l[e] !== i || !hc(() => ne(a, t, [r])) || "originalValue" in o || n.configurable === !1 ? !1 : (M(t, e, { value: r, writable: !0, enumerable: n.enumerable, configurable: !0 }), !0); -}, Zi = (t) => { - Qn( +}, gc = (t) => { + ho( t["%IteratorPrototype%"], "constructor", t.Iterator - ), Qn( + ), ho( t["%IteratorPrototype%"], - He, + qe, "Iterator" ); -}, { Fail: eo, details: to, quote: ro } = Z; -let or, sr; -const zi = Sa(), Gi = () => { +}, { Fail: go, details: yo, quote: vo } = z; +let dr, fr; +const yc = Ba(), vc = () => { let t = !1; try { t = ve( @@ -4312,7 +4516,7 @@ const zi = Sa(), Gi = () => { ` eval("SES_changed = true"); return SES_changed; ` - )(Eo, !1), t || delete x.SES_changed; + )(Zo, !1), t || delete k.SES_changed; } catch { t = !0; } @@ -4320,185 +4524,195 @@ const zi = Sa(), Gi = () => { throw v( "SES cannot initialize unless 'eval' is the original intrinsic 'eval', suitable for direct-eval (dynamically scoped eval) (SES_DIRECT_EVAL)" ); -}, ps = (t = {}) => { +}, $s = (t = {}) => { const { - errorTaming: e = he("LOCKDOWN_ERROR_TAMING", "safe"), + errorTaming: e = le("LOCKDOWN_ERROR_TAMING", "safe"), errorTrapping: r = ( /** @type {"platform" | "none" | "report" | "abort" | "exit" | undefined} */ - he("LOCKDOWN_ERROR_TRAPPING", "platform") + le("LOCKDOWN_ERROR_TRAPPING", "platform") ), unhandledRejectionTrapping: n = ( /** @type {"none" | "report" | undefined} */ - he("LOCKDOWN_UNHANDLED_REJECTION_TRAPPING", "report") + le("LOCKDOWN_UNHANDLED_REJECTION_TRAPPING", "report") ), - regExpTaming: a = he("LOCKDOWN_REGEXP_TAMING", "safe"), - localeTaming: s = he("LOCKDOWN_LOCALE_TAMING", "safe"), + regExpTaming: o = le("LOCKDOWN_REGEXP_TAMING", "safe"), + localeTaming: a = le("LOCKDOWN_LOCALE_TAMING", "safe"), consoleTaming: i = ( /** @type {'unsafe' | 'safe' | undefined} */ - he("LOCKDOWN_CONSOLE_TAMING", "safe") + le("LOCKDOWN_CONSOLE_TAMING", "safe") ), - overrideTaming: c = he("LOCKDOWN_OVERRIDE_TAMING", "moderate"), - stackFiltering: u = he("LOCKDOWN_STACK_FILTERING", "concise"), - domainTaming: l = he("LOCKDOWN_DOMAIN_TAMING", "safe"), - evalTaming: d = he("LOCKDOWN_EVAL_TAMING", "safeEval"), - overrideDebug: f = Ve( - wo(he("LOCKDOWN_OVERRIDE_DEBUG", ""), ","), + overrideTaming: c = le("LOCKDOWN_OVERRIDE_TAMING", "moderate"), + stackFiltering: l = le("LOCKDOWN_STACK_FILTERING", "concise"), + domainTaming: u = le("LOCKDOWN_DOMAIN_TAMING", "safe"), + evalTaming: d = le("LOCKDOWN_EVAL_TAMING", "safeEval"), + overrideDebug: f = Ke( + An(le("LOCKDOWN_OVERRIDE_DEBUG", ""), ","), /** @param {string} debugName */ - (ze) => ze !== "" + (Be) => Be !== "" ), - __hardenTaming__: m = he("LOCKDOWN_HARDEN_TAMING", "safe"), + __hardenTaming__: m = le("LOCKDOWN_HARDEN_TAMING", "safe"), dateTaming: p = "safe", // deprecated mathTaming: h = "safe", // deprecated ..._ } = t; - d === "unsafeEval" || d === "safeEval" || d === "noEval" || eo`lockdown(): non supported option evalTaming: ${ro(d)}`; - const w = it(_); - if (w.length === 0 || eo`lockdown(): non supported option ${ro(w)}`, or === void 0 || // eslint-disable-next-line @endo/no-polymorphic-call - Z.fail( - to`Already locked down at ${or} (SES_ALREADY_LOCKED_DOWN)`, + d === "unsafeEval" || d === "safeEval" || d === "noEval" || go`lockdown(): non supported option evalTaming: ${vo(d)}`; + const E = De(_); + if (E.length === 0 || go`lockdown(): non supported option ${vo(E)}`, dr === void 0 || // eslint-disable-next-line @endo/no-polymorphic-call + z.fail( + yo`Already locked down at ${dr} (SES_ALREADY_LOCKED_DOWN)`, v - ), or = v("Prior lockdown (SES_ALREADY_LOCKED_DOWN)"), or.stack, Gi(), x.Function.prototype.constructor !== x.Function && // @ts-ignore harden is absent on globalThis type def. - typeof x.harden == "function" && // @ts-ignore lockdown is absent on globalThis type def. - typeof x.lockdown == "function" && x.Date.prototype.constructor !== x.Date && typeof x.Date.now == "function" && // @ts-ignore does not recognize that Date constructor is a special + ), dr = v("Prior lockdown (SES_ALREADY_LOCKED_DOWN)"), dr.stack, vc(), k.Function.prototype.constructor !== k.Function && // @ts-ignore harden is absent on globalThis type def. + typeof k.harden == "function" && // @ts-ignore lockdown is absent on globalThis type def. + typeof k.lockdown == "function" && k.Date.prototype.constructor !== k.Date && typeof k.Date.now == "function" && // @ts-ignore does not recognize that Date constructor is a special // Function. // eslint-disable-next-line @endo/no-polymorphic-call - kr(x.Date.prototype.constructor.now(), NaN)) + Rr(k.Date.prototype.constructor.now(), NaN)) throw v( "Already locked down but not by this SES instance (SES_MULTIPLE_INSTANCES)" ); - ni(l); - const $ = os(), { addIntrinsics: T, completePrototypes: D, finalIntrinsics: j } = jo(), q = fs(zi, m); - T({ harden: q }), T(Ca()), T($a(p)), T(Si(e, u)), T(Na(h)), T(Oa(a)), T(Ui()), T(Di()), D(); - const K = j(), je = { __proto__: null }; - typeof x.Buffer == "function" && (je.Buffer = x.Buffer); - let pe; - e !== "unsafe" && (pe = K["%InitialGetStackString%"]); - const Ze = ai( + xi(u); + const N = xs(), { addIntrinsics: x, completePrototypes: D, finalIntrinsics: G } = as(), B = Cs(yc, m); + x({ harden: B }), x(Ja()), x(Xa(p)), x(Bi(e, l)), x(Qa(h)), x(ei(o)), x(mc()), x(pc()), D(); + const K = G(), ze = { __proto__: null }; + typeof k.Buffer == "function" && (ze.Buffer = k.Buffer); + let me; + e !== "unsafe" && (me = K["%InitialGetStackString%"]); + const Ge = Ai( i, r, n, - pe + me ); - if (x.console = /** @type {Console} */ - Ze.console, typeof /** @type {any} */ - Ze.console._times == "object" && (je.SafeMap = B( + if (k.console = /** @type {Console} */ + Ge.console, typeof /** @type {any} */ + Ge.console._times == "object" && (ze.SafeMap = j( // eslint-disable-next-line no-underscore-dangle /** @type {any} */ - Ze.console._times - )), e === "unsafe" && x.assert === Z && (x.assert = Rr(void 0, !0)), ja(K, s), Zi(K), Aa(K, $), Go(x), Bo(x, { + Ge.console._times + )), e === "unsafe" && k.assert === z && (k.assert = Zr(void 0, !0)), ii(K, a), gc(K), Ya(K, N), ls(k), us(k, { intrinsics: K, - newGlobalPropertyNames: Fn, - makeCompartmentConstructor: tn, - markVirtualizedNativeFunction: $ + newGlobalPropertyNames: Xn, + makeCompartmentConstructor: fn, + markVirtualizedNativeFunction: N }), d === "noEval") - Qr( - x, - sa, - $ + un( + k, + ka, + N ); else if (d === "safeEval") { - const { safeEvaluate: ze } = Sn({ globalObject: x }); - Qr( - x, - ze, - $ + const { safeEvaluate: Be } = Mn({ globalObject: k }); + un( + k, + Be, + N ); } return () => { - sr === void 0 || // eslint-disable-next-line @endo/no-polymorphic-call - Z.fail( - to`Already locked down at ${sr} (SES_ALREADY_LOCKED_DOWN)`, + fr === void 0 || // eslint-disable-next-line @endo/no-polymorphic-call + z.fail( + yo`Already locked down at ${fr} (SES_ALREADY_LOCKED_DOWN)`, v - ), sr = v( + ), fr = v( "Prior lockdown (SES_ALREADY_LOCKED_DOWN)" - ), sr.stack, La(K, c, f); - const ze = { + ), fr.stack, ni(K, c, f); + const Be = { intrinsics: K, - hostIntrinsics: je, + hostIntrinsics: ze, globals: { // Harden evaluators - Function: x.Function, - eval: x.eval, + Function: k.Function, + eval: k.eval, // @ts-ignore Compartment does exist on globalThis - Compartment: x.Compartment, + Compartment: k.Compartment, // Harden Symbol - Symbol: x.Symbol + Symbol: k.Symbol } }; - for (const er of Mt(Fn)) - ze.globals[er] = x[er]; - return q(ze), q; + for (const ir of Ut(Xn)) + Be.globals[ir] = k[ir]; + return B(Be), B; }; }; -x.lockdown = (t) => { - const e = ps(t); - x.harden = e(); +k.lockdown = (t) => { + const e = $s(t); + k.harden = e(); }; -x.repairIntrinsics = (t) => { - const e = ps(t); - x.hardenIntrinsics = () => { - x.harden = e(); +k.repairIntrinsics = (t) => { + const e = $s(t); + k.hardenIntrinsics = () => { + k.harden = e(); }; }; -const Bi = os(); -x.Compartment = tn( - tn, - Ia(x), - Bi +const _c = xs(); +k.Compartment = fn( + fn, + Ka(k), + _c ); -x.assert = Z; -const Hi = (t) => { - let e = { x: 0, y: 0 }, r = { x: 0, y: 0 }, n = { x: 0, y: 0 }; - const a = (c) => { - const { clientX: u, clientY: l } = c, d = u - n.x + r.x, f = l - n.y + r.y; - e = { x: d, y: f }, t.style.transform = `translate(${d}px, ${f}px)`; - }, s = () => { - document.removeEventListener("mousemove", a), document.removeEventListener("mouseup", s); - }, i = (c) => { - n = { x: c.clientX, y: c.clientY }, r = { x: e.x, y: e.y }, document.addEventListener("mousemove", a), document.addEventListener("mouseup", s); +k.assert = z; +const bc = Ps(wr), wc = ra( + "MAKE_CAUSAL_CONSOLE_FROM_LOGGER_KEY_FOR_SES_AVA" +); +k[wc] = bc; +const Ec = (t, e) => { + let r = { x: 0, y: 0 }, n = { x: 0, y: 0 }, o = { x: 0, y: 0 }; + const a = (l) => { + const { clientX: u, clientY: d } = l, f = u - o.x + n.x, m = d - o.y + n.y; + r = { x: f, y: m }, t.style.transform = `translate(${f}px, ${m}px)`, e == null || e(); + }, i = () => { + document.removeEventListener("mousemove", a), document.removeEventListener("mouseup", i); + }, c = (l) => { + o = { x: l.clientX, y: l.clientY }, n = { x: r.x, y: r.y }, document.addEventListener("mousemove", a), document.addEventListener("mouseup", i); }; - return t.addEventListener("mousedown", i), s; -}, Vi = ":host{--spacing-4: .25rem;--spacing-8: calc(var(--spacing-4) * 2);--spacing-12: calc(var(--spacing-4) * 3);--spacing-16: calc(var(--spacing-4) * 4);--spacing-20: calc(var(--spacing-4) * 5);--spacing-24: calc(var(--spacing-4) * 6);--spacing-28: calc(var(--spacing-4) * 7);--spacing-32: calc(var(--spacing-4) * 8);--spacing-36: calc(var(--spacing-4) * 9);--spacing-40: calc(var(--spacing-4) * 10);--font-weight-regular: 400;--font-weight-bold: 500;--font-line-height-s: 1.2;--font-line-height-m: 1.4;--font-line-height-l: 1.5;--font-size-s: 12px;--font-size-m: 14px;--font-size-l: 16px}[data-theme]{background-color:var(--color-background-primary);color:var(--color-foreground-secondary)}.wrapper{display:flex;flex-direction:column;position:fixed;inset-block-start:40px;inset-inline-end:320px;z-index:1000;padding:25px;border-radius:15px;box-shadow:0 0 10px #0000004d}.header{align-items:center;display:flex;justify-content:space-between;border-block-end:2px solid var(--color-background-quaternary);padding-block-end:var(--spacing-4)}button{background:transparent;border:0;cursor:pointer;padding:0}h1{font-size:var(--font-size-s);font-weight:var(--font-weight-bold);margin:0;margin-inline-end:var(--spacing-4);-webkit-user-select:none;user-select:none}iframe{border:none;inline-size:100%;block-size:100%}", Wi = ` + return t.addEventListener("mousedown", c), i; +}, Sc = ":host{--spacing-4: .25rem;--spacing-8: calc(var(--spacing-4) * 2);--spacing-12: calc(var(--spacing-4) * 3);--spacing-16: calc(var(--spacing-4) * 4);--spacing-20: calc(var(--spacing-4) * 5);--spacing-24: calc(var(--spacing-4) * 6);--spacing-28: calc(var(--spacing-4) * 7);--spacing-32: calc(var(--spacing-4) * 8);--spacing-36: calc(var(--spacing-4) * 9);--spacing-40: calc(var(--spacing-4) * 10);--font-weight-regular: 400;--font-weight-bold: 500;--font-line-height-s: 1.2;--font-line-height-m: 1.4;--font-line-height-l: 1.5;--font-size-s: 12px;--font-size-m: 14px;--font-size-l: 16px}[data-theme]{background-color:var(--color-background-primary);color:var(--color-foreground-secondary)}.wrapper{box-sizing:border-box;display:flex;flex-direction:column;position:fixed;inset-block-start:var(--modal-block-start);inset-inline-end:var(--modal-inline-end);z-index:1000;padding:25px;border-radius:15px;border:2px solid var(--color-background-quaternary)}.header{align-items:center;display:flex;justify-content:space-between;border-block-end:2px solid var(--color-background-quaternary);padding-block-end:var(--spacing-4)}button{background:transparent;border:0;cursor:pointer;padding:0}h1{font-size:var(--font-size-s);font-weight:var(--font-weight-bold);margin:0;margin-inline-end:var(--spacing-4);-webkit-user-select:none;user-select:none}iframe{border:none;inline-size:100%;block-size:100%}", xc = ` `; -var ue, qt; -class qi extends HTMLElement { +var de, tr; +class kc extends HTMLElement { constructor() { super(); - Fr(this, ue, null); - Fr(this, qt, null); + Br(this, de, null); + Br(this, tr, null); this.attachShadow({ mode: "open" }); } setTheme(r) { - Se(this, ue) && Se(this, ue).setAttribute("data-theme", r); + Se(this, de) && Se(this, de).setAttribute("data-theme", r); } disconnectedCallback() { var r; - (r = Se(this, qt)) == null || r.call(this); + (r = Se(this, tr)) == null || r.call(this); + } + calculateZIndex() { + const r = document.querySelectorAll("plugin-modal"), n = Array.from(r).filter((a) => a !== this).map((a) => Number(a.style.zIndex)), o = Math.max(...n, 0); + this.style.zIndex = (o + 1).toString(); } connectedCallback() { - const r = this.getAttribute("title"), n = this.getAttribute("iframe-src"), a = Number(this.getAttribute("width") || "300"), s = Number(this.getAttribute("height") || "400"); + const r = this.getAttribute("title"), n = this.getAttribute("iframe-src"), o = Number(this.getAttribute("width") || "300"), a = Number(this.getAttribute("height") || "400"); if (!r || !n) throw new Error("title and iframe-src attributes are required"); if (!this.shadowRoot) throw new Error("Error creating shadow root"); - Dr(this, ue, document.createElement("div")), Se(this, ue).classList.add("wrapper"), Se(this, ue).style.inlineSize = `${a}px`, Se(this, ue).style.blockSize = `${s}px`, Dr(this, qt, Hi(Se(this, ue))); + Hr(this, de, document.createElement("div")), Se(this, de).classList.add("wrapper"), Se(this, de).style.inlineSize = `${o}px`, Se(this, de).style.blockSize = `${a}px`, Hr(this, tr, Ec(Se(this, de), () => { + this.calculateZIndex(); + })); const i = document.createElement("div"); i.classList.add("header"); const c = document.createElement("h1"); c.textContent = r, i.appendChild(c); - const u = document.createElement("button"); - u.setAttribute("type", "button"), u.innerHTML = `
${Wi}
`, u.addEventListener("click", () => { + const l = document.createElement("button"); + l.setAttribute("type", "button"), l.innerHTML = `
${xc}
`, l.addEventListener("click", () => { this.shadowRoot && this.shadowRoot.dispatchEvent( new CustomEvent("close", { composed: !0, bubbles: !0 }) ); - }), i.appendChild(u); - const l = document.createElement("iframe"); - l.src = n, l.allow = "", l.sandbox.add( + }), i.appendChild(l); + const u = document.createElement("iframe"); + u.src = n, u.allow = "", u.sandbox.add( "allow-scripts", "allow-forms", "allow-modals", @@ -4506,59 +4720,59 @@ class qi extends HTMLElement { "allow-popups-to-escape-sandbox", "allow-storage-access-by-user-activation" ), this.addEventListener("message", (f) => { - l.contentWindow && l.contentWindow.postMessage(f.detail, "*"); - }), this.shadowRoot.appendChild(Se(this, ue)), Se(this, ue).appendChild(i), Se(this, ue).appendChild(l); + u.contentWindow && u.contentWindow.postMessage(f.detail, "*"); + }), this.shadowRoot.appendChild(Se(this, de)), Se(this, de).appendChild(i), Se(this, de).appendChild(u); const d = document.createElement("style"); - d.textContent = Vi, this.shadowRoot.appendChild(d); + d.textContent = Sc, this.shadowRoot.appendChild(d), this.calculateZIndex(); } } -ue = new WeakMap(), qt = new WeakMap(); -customElements.define("plugin-modal", qi); -var R; +de = new WeakMap(), tr = new WeakMap(); +customElements.define("plugin-modal", kc); +var O; (function(t) { - t.assertEqual = (a) => a; - function e(a) { + t.assertEqual = (o) => o; + function e(o) { } t.assertIs = e; - function r(a) { + function r(o) { throw new Error(); } - t.assertNever = r, t.arrayToEnum = (a) => { - const s = {}; - for (const i of a) - s[i] = i; - return s; - }, t.getValidEnumValues = (a) => { - const s = t.objectKeys(a).filter((c) => typeof a[a[c]] != "number"), i = {}; - for (const c of s) - i[c] = a[c]; + t.assertNever = r, t.arrayToEnum = (o) => { + const a = {}; + for (const i of o) + a[i] = i; + return a; + }, t.getValidEnumValues = (o) => { + const a = t.objectKeys(o).filter((c) => typeof o[o[c]] != "number"), i = {}; + for (const c of a) + i[c] = o[c]; return t.objectValues(i); - }, t.objectValues = (a) => t.objectKeys(a).map(function(s) { - return a[s]; - }), t.objectKeys = typeof Object.keys == "function" ? (a) => Object.keys(a) : (a) => { - const s = []; - for (const i in a) - Object.prototype.hasOwnProperty.call(a, i) && s.push(i); - return s; - }, t.find = (a, s) => { - for (const i of a) - if (s(i)) + }, t.objectValues = (o) => t.objectKeys(o).map(function(a) { + return o[a]; + }), t.objectKeys = typeof Object.keys == "function" ? (o) => Object.keys(o) : (o) => { + const a = []; + for (const i in o) + Object.prototype.hasOwnProperty.call(o, i) && a.push(i); + return a; + }, t.find = (o, a) => { + for (const i of o) + if (a(i)) return i; - }, t.isInteger = typeof Number.isInteger == "function" ? (a) => Number.isInteger(a) : (a) => typeof a == "number" && isFinite(a) && Math.floor(a) === a; - function n(a, s = " | ") { - return a.map((i) => typeof i == "string" ? `'${i}'` : i).join(s); + }, t.isInteger = typeof Number.isInteger == "function" ? (o) => Number.isInteger(o) : (o) => typeof o == "number" && isFinite(o) && Math.floor(o) === o; + function n(o, a = " | ") { + return o.map((i) => typeof i == "string" ? `'${i}'` : i).join(a); } - t.joinValues = n, t.jsonStringifyReplacer = (a, s) => typeof s == "bigint" ? s.toString() : s; -})(R || (R = {})); -var rn; + t.joinValues = n, t.jsonStringifyReplacer = (o, a) => typeof a == "bigint" ? a.toString() : a; +})(O || (O = {})); +var pn; (function(t) { t.mergeShapes = (e, r) => ({ ...e, ...r // second overwrites first }); -})(rn || (rn = {})); -const b = R.arrayToEnum([ +})(pn || (pn = {})); +const w = O.arrayToEnum([ "string", "nan", "number", @@ -4579,28 +4793,28 @@ const b = R.arrayToEnum([ "never", "map", "set" -]), Ge = (t) => { +]), Ve = (t) => { switch (typeof t) { case "undefined": - return b.undefined; + return w.undefined; case "string": - return b.string; + return w.string; case "number": - return isNaN(t) ? b.nan : b.number; + return isNaN(t) ? w.nan : w.number; case "boolean": - return b.boolean; + return w.boolean; case "function": - return b.function; + return w.function; case "bigint": - return b.bigint; + return w.bigint; case "symbol": - return b.symbol; + return w.symbol; case "object": - return Array.isArray(t) ? b.array : t === null ? b.null : t.then && typeof t.then == "function" && t.catch && typeof t.catch == "function" ? b.promise : typeof Map < "u" && t instanceof Map ? b.map : typeof Set < "u" && t instanceof Set ? b.set : typeof Date < "u" && t instanceof Date ? b.date : b.object; + return Array.isArray(t) ? w.array : t === null ? w.null : t.then && typeof t.then == "function" && t.catch && typeof t.catch == "function" ? w.promise : typeof Map < "u" && t instanceof Map ? w.map : typeof Set < "u" && t instanceof Set ? w.set : typeof Date < "u" && t instanceof Date ? w.date : w.object; default: - return b.unknown; + return w.unknown; } -}, y = R.arrayToEnum([ +}, g = O.arrayToEnum([ "invalid_type", "invalid_literal", "custom", @@ -4617,8 +4831,8 @@ const b = R.arrayToEnum([ "invalid_intersection_types", "not_multiple_of", "not_finite" -]), Ki = (t) => JSON.stringify(t, null, 2).replace(/"([^"]+)":/g, "$1:"); -class xe extends Error { +]), Pc = (t) => JSON.stringify(t, null, 2).replace(/"([^"]+)":/g, "$1:"); +class fe extends Error { constructor(e) { super(), this.issues = [], this.addIssue = (n) => { this.issues = [...this.issues, n]; @@ -4632,142 +4846,152 @@ class xe extends Error { return this.issues; } format(e) { - const r = e || function(s) { - return s.message; - }, n = { _errors: [] }, a = (s) => { - for (const i of s.issues) + const r = e || function(a) { + return a.message; + }, n = { _errors: [] }, o = (a) => { + for (const i of a.issues) if (i.code === "invalid_union") - i.unionErrors.map(a); + i.unionErrors.map(o); else if (i.code === "invalid_return_type") - a(i.returnTypeError); + o(i.returnTypeError); else if (i.code === "invalid_arguments") - a(i.argumentsError); + o(i.argumentsError); else if (i.path.length === 0) n._errors.push(r(i)); else { - let c = n, u = 0; - for (; u < i.path.length; ) { - const l = i.path[u]; - u === i.path.length - 1 ? (c[l] = c[l] || { _errors: [] }, c[l]._errors.push(r(i))) : c[l] = c[l] || { _errors: [] }, c = c[l], u++; + let c = n, l = 0; + for (; l < i.path.length; ) { + const u = i.path[l]; + l === i.path.length - 1 ? (c[u] = c[u] || { _errors: [] }, c[u]._errors.push(r(i))) : c[u] = c[u] || { _errors: [] }, c = c[u], l++; } } }; - return a(this), n; + return o(this), n; + } + static assert(e) { + if (!(e instanceof fe)) + throw new Error(`Not a ZodError: ${e}`); } toString() { return this.message; } get message() { - return JSON.stringify(this.issues, R.jsonStringifyReplacer, 2); + return JSON.stringify(this.issues, O.jsonStringifyReplacer, 2); } get isEmpty() { return this.issues.length === 0; } flatten(e = (r) => r.message) { const r = {}, n = []; - for (const a of this.issues) - a.path.length > 0 ? (r[a.path[0]] = r[a.path[0]] || [], r[a.path[0]].push(e(a))) : n.push(e(a)); + for (const o of this.issues) + o.path.length > 0 ? (r[o.path[0]] = r[o.path[0]] || [], r[o.path[0]].push(e(o))) : n.push(e(o)); return { formErrors: n, fieldErrors: r }; } get formErrors() { return this.flatten(); } } -xe.create = (t) => new xe(t); -const Lt = (t, e) => { +fe.create = (t) => new fe(t); +const At = (t, e) => { let r; switch (t.code) { - case y.invalid_type: - t.received === b.undefined ? r = "Required" : r = `Expected ${t.expected}, received ${t.received}`; + case g.invalid_type: + t.received === w.undefined ? r = "Required" : r = `Expected ${t.expected}, received ${t.received}`; break; - case y.invalid_literal: - r = `Invalid literal value, expected ${JSON.stringify(t.expected, R.jsonStringifyReplacer)}`; + case g.invalid_literal: + r = `Invalid literal value, expected ${JSON.stringify(t.expected, O.jsonStringifyReplacer)}`; break; - case y.unrecognized_keys: - r = `Unrecognized key(s) in object: ${R.joinValues(t.keys, ", ")}`; + case g.unrecognized_keys: + r = `Unrecognized key(s) in object: ${O.joinValues(t.keys, ", ")}`; break; - case y.invalid_union: + case g.invalid_union: r = "Invalid input"; break; - case y.invalid_union_discriminator: - r = `Invalid discriminator value. Expected ${R.joinValues(t.options)}`; + case g.invalid_union_discriminator: + r = `Invalid discriminator value. Expected ${O.joinValues(t.options)}`; break; - case y.invalid_enum_value: - r = `Invalid enum value. Expected ${R.joinValues(t.options)}, received '${t.received}'`; + case g.invalid_enum_value: + r = `Invalid enum value. Expected ${O.joinValues(t.options)}, received '${t.received}'`; break; - case y.invalid_arguments: + case g.invalid_arguments: r = "Invalid function arguments"; break; - case y.invalid_return_type: + case g.invalid_return_type: r = "Invalid function return type"; break; - case y.invalid_date: + case g.invalid_date: r = "Invalid date"; break; - case y.invalid_string: - typeof t.validation == "object" ? "includes" in t.validation ? (r = `Invalid input: must include "${t.validation.includes}"`, typeof t.validation.position == "number" && (r = `${r} at one or more positions greater than or equal to ${t.validation.position}`)) : "startsWith" in t.validation ? r = `Invalid input: must start with "${t.validation.startsWith}"` : "endsWith" in t.validation ? r = `Invalid input: must end with "${t.validation.endsWith}"` : R.assertNever(t.validation) : t.validation !== "regex" ? r = `Invalid ${t.validation}` : r = "Invalid"; + case g.invalid_string: + typeof t.validation == "object" ? "includes" in t.validation ? (r = `Invalid input: must include "${t.validation.includes}"`, typeof t.validation.position == "number" && (r = `${r} at one or more positions greater than or equal to ${t.validation.position}`)) : "startsWith" in t.validation ? r = `Invalid input: must start with "${t.validation.startsWith}"` : "endsWith" in t.validation ? r = `Invalid input: must end with "${t.validation.endsWith}"` : O.assertNever(t.validation) : t.validation !== "regex" ? r = `Invalid ${t.validation}` : r = "Invalid"; break; - case y.too_small: + case g.too_small: t.type === "array" ? r = `Array must contain ${t.exact ? "exactly" : t.inclusive ? "at least" : "more than"} ${t.minimum} element(s)` : t.type === "string" ? r = `String must contain ${t.exact ? "exactly" : t.inclusive ? "at least" : "over"} ${t.minimum} character(s)` : t.type === "number" ? r = `Number must be ${t.exact ? "exactly equal to " : t.inclusive ? "greater than or equal to " : "greater than "}${t.minimum}` : t.type === "date" ? r = `Date must be ${t.exact ? "exactly equal to " : t.inclusive ? "greater than or equal to " : "greater than "}${new Date(Number(t.minimum))}` : r = "Invalid input"; break; - case y.too_big: + case g.too_big: t.type === "array" ? r = `Array must contain ${t.exact ? "exactly" : t.inclusive ? "at most" : "less than"} ${t.maximum} element(s)` : t.type === "string" ? r = `String must contain ${t.exact ? "exactly" : t.inclusive ? "at most" : "under"} ${t.maximum} character(s)` : t.type === "number" ? r = `Number must be ${t.exact ? "exactly" : t.inclusive ? "less than or equal to" : "less than"} ${t.maximum}` : t.type === "bigint" ? r = `BigInt must be ${t.exact ? "exactly" : t.inclusive ? "less than or equal to" : "less than"} ${t.maximum}` : t.type === "date" ? r = `Date must be ${t.exact ? "exactly" : t.inclusive ? "smaller than or equal to" : "smaller than"} ${new Date(Number(t.maximum))}` : r = "Invalid input"; break; - case y.custom: + case g.custom: r = "Invalid input"; break; - case y.invalid_intersection_types: + case g.invalid_intersection_types: r = "Intersection results could not be merged"; break; - case y.not_multiple_of: + case g.not_multiple_of: r = `Number must be a multiple of ${t.multipleOf}`; break; - case y.not_finite: + case g.not_finite: r = "Number must be finite"; break; default: - r = e.defaultError, R.assertNever(t); + r = e.defaultError, O.assertNever(t); } return { message: r }; }; -let ms = Lt; -function Yi(t) { - ms = t; +let Ns = At; +function Tc(t) { + Ns = t; } -function hr() { - return ms; +function xr() { + return Ns; } -const yr = (t) => { - const { data: e, path: r, errorMaps: n, issueData: a } = t, s = [...r, ...a.path || []], i = { - ...a, - path: s +const kr = (t) => { + const { data: e, path: r, errorMaps: n, issueData: o } = t, a = [...r, ...o.path || []], i = { + ...o, + path: a }; + if (o.message !== void 0) + return { + ...o, + path: a, + message: o.message + }; let c = ""; - const u = n.filter((l) => !!l).slice().reverse(); - for (const l of u) - c = l(i, { data: e, defaultError: c }).message; + const l = n.filter((u) => !!u).slice().reverse(); + for (const u of l) + c = u(i, { data: e, defaultError: c }).message; return { - ...a, - path: s, - message: a.message || c + ...o, + path: a, + message: c }; -}, Ji = []; -function S(t, e) { - const r = yr({ +}, Ac = []; +function b(t, e) { + const r = xr(), n = kr({ issueData: e, data: t.data, path: t.path, errorMaps: [ t.common.contextualErrorMap, t.schemaErrorMap, - hr(), - Lt + r, + r === At ? void 0 : At // then global default map - ].filter((n) => !!n) + ].filter((o) => !!o) }); - t.common.issues.push(r); + t.common.issues.push(n); } -class J { +class Q { constructor() { this.value = "valid"; } @@ -4779,50 +5003,63 @@ class J { } static mergeArray(e, r) { const n = []; - for (const a of r) { - if (a.status === "aborted") - return A; - a.status === "dirty" && e.dirty(), n.push(a.value); + for (const o of r) { + if (o.status === "aborted") + return I; + o.status === "dirty" && e.dirty(), n.push(o.value); } return { status: e.value, value: n }; } static async mergeObjectAsync(e, r) { const n = []; - for (const a of r) + for (const o of r) { + const a = await o.key, i = await o.value; n.push({ - key: await a.key, - value: await a.value + key: a, + value: i }); - return J.mergeObjectSync(e, n); + } + return Q.mergeObjectSync(e, n); } static mergeObjectSync(e, r) { const n = {}; - for (const a of r) { - const { key: s, value: i } = a; - if (s.status === "aborted" || i.status === "aborted") - return A; - s.status === "dirty" && e.dirty(), i.status === "dirty" && e.dirty(), s.value !== "__proto__" && (typeof i.value < "u" || a.alwaysSet) && (n[s.value] = i.value); + for (const o of r) { + const { key: a, value: i } = o; + if (a.status === "aborted" || i.status === "aborted") + return I; + a.status === "dirty" && e.dirty(), i.status === "dirty" && e.dirty(), a.value !== "__proto__" && (typeof i.value < "u" || o.alwaysSet) && (n[a.value] = i.value); } return { status: e.value, value: n }; } } -const A = Object.freeze({ +const I = Object.freeze({ status: "aborted" -}), hs = (t) => ({ status: "dirty", value: t }), re = (t) => ({ status: "valid", value: t }), nn = (t) => t.status === "aborted", on = (t) => t.status === "dirty", Ft = (t) => t.status === "valid", gr = (t) => typeof Promise < "u" && t instanceof Promise; -var E; +}), Et = (t) => ({ status: "dirty", value: t }), ae = (t) => ({ status: "valid", value: t }), mn = (t) => t.status === "aborted", hn = (t) => t.status === "dirty", Zt = (t) => t.status === "valid", zt = (t) => typeof Promise < "u" && t instanceof Promise; +function Pr(t, e, r, n) { + if (typeof e == "function" ? t !== e || !n : !e.has(t)) + throw new TypeError("Cannot read private member from an object whose class did not declare it"); + return e.get(t); +} +function Rs(t, e, r, n, o) { + if (typeof e == "function" ? t !== e || !o : !e.has(t)) + throw new TypeError("Cannot write private member to an object whose class did not declare it"); + return e.set(t, r), r; +} +var S; (function(t) { t.errToObj = (e) => typeof e == "string" ? { message: e } : e || {}, t.toString = (e) => typeof e == "string" ? e : e == null ? void 0 : e.message; -})(E || (E = {})); -class Ne { - constructor(e, r, n, a) { - this._cachedPath = [], this.parent = e, this.data = r, this._path = n, this._key = a; +})(S || (S = {})); +var Lt, Ft; +class Re { + constructor(e, r, n, o) { + this._cachedPath = [], this.parent = e, this.data = r, this._path = n, this._key = o; } get path() { return this._cachedPath.length || (this._key instanceof Array ? this._cachedPath.push(...this._path, ...this._key) : this._cachedPath.push(...this._path, this._key)), this._cachedPath; } } -const no = (t, e) => { - if (Ft(e)) +const _o = (t, e) => { + if (Zt(e)) return { success: !0, data: e.value }; if (!t.common.issues.length) throw new Error("Validation failed but no issues detected."); @@ -4831,7 +5068,7 @@ const no = (t, e) => { get error() { if (this._error) return this._error; - const r = new xe(t.common.issues); + const r = new fe(t.common.issues); return this._error = r, this._error; } }; @@ -4839,12 +5076,16 @@ const no = (t, e) => { function C(t) { if (!t) return {}; - const { errorMap: e, invalid_type_error: r, required_error: n, description: a } = t; + const { errorMap: e, invalid_type_error: r, required_error: n, description: o } = t; if (e && (r || n)) throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`); - return e ? { errorMap: e, description: a } : { errorMap: (i, c) => i.code !== "invalid_type" ? { message: c.defaultError } : typeof c.data > "u" ? { message: n ?? c.defaultError } : { message: r ?? c.defaultError }, description: a }; + return e ? { errorMap: e, description: o } : { errorMap: (i, c) => { + var l, u; + const { message: d } = t; + return i.code === "invalid_enum_value" ? { message: d ?? c.defaultError } : typeof c.data > "u" ? { message: (l = d ?? n) !== null && l !== void 0 ? l : c.defaultError } : i.code !== "invalid_type" ? { message: c.defaultError } : { message: (u = d ?? r) !== null && u !== void 0 ? u : c.defaultError }; + }, description: o }; } -class N { +class $ { constructor(e) { this.spa = this.safeParseAsync, this._def = e, this.parse = this.parse.bind(this), this.safeParse = this.safeParse.bind(this), this.parseAsync = this.parseAsync.bind(this), this.safeParseAsync = this.safeParseAsync.bind(this), this.spa = this.spa.bind(this), this.refine = this.refine.bind(this), this.refinement = this.refinement.bind(this), this.superRefine = this.superRefine.bind(this), this.optional = this.optional.bind(this), this.nullable = this.nullable.bind(this), this.nullish = this.nullish.bind(this), this.array = this.array.bind(this), this.promise = this.promise.bind(this), this.or = this.or.bind(this), this.and = this.and.bind(this), this.transform = this.transform.bind(this), this.brand = this.brand.bind(this), this.default = this.default.bind(this), this.catch = this.catch.bind(this), this.describe = this.describe.bind(this), this.pipe = this.pipe.bind(this), this.readonly = this.readonly.bind(this), this.isNullable = this.isNullable.bind(this), this.isOptional = this.isOptional.bind(this); } @@ -4852,13 +5093,13 @@ class N { return this._def.description; } _getType(e) { - return Ge(e.data); + return Ve(e.data); } _getOrReturnCtx(e, r) { return r || { common: e.parent.common, data: e.data, - parsedType: Ge(e.data), + parsedType: Ve(e.data), schemaErrorMap: this._def.errorMap, path: e.path, parent: e.parent @@ -4866,11 +5107,11 @@ class N { } _processInputParams(e) { return { - status: new J(), + status: new Q(), ctx: { common: e.parent.common, data: e.data, - parsedType: Ge(e.data), + parsedType: Ve(e.data), schemaErrorMap: this._def.errorMap, path: e.path, parent: e.parent @@ -4879,7 +5120,7 @@ class N { } _parseSync(e) { const r = this._parse(e); - if (gr(r)) + if (zt(r)) throw new Error("Synchronous parse encountered promise."); return r; } @@ -4895,7 +5136,7 @@ class N { } safeParse(e, r) { var n; - const a = { + const o = { common: { issues: [], async: (n = r == null ? void 0 : r.async) !== null && n !== void 0 ? n : !1, @@ -4905,9 +5146,9 @@ class N { schemaErrorMap: this._def.errorMap, parent: null, data: e, - parsedType: Ge(e) - }, s = this._parseSync({ data: e, path: a.path, parent: a }); - return no(a, s); + parsedType: Ve(e) + }, a = this._parseSync({ data: e, path: o.path, parent: o }); + return _o(o, a); } async parseAsync(e, r) { const n = await this.safeParseAsync(e, r); @@ -4926,27 +5167,27 @@ class N { schemaErrorMap: this._def.errorMap, parent: null, data: e, - parsedType: Ge(e) - }, a = this._parse({ data: e, path: n.path, parent: n }), s = await (gr(a) ? a : Promise.resolve(a)); - return no(n, s); + parsedType: Ve(e) + }, o = this._parse({ data: e, path: n.path, parent: n }), a = await (zt(o) ? o : Promise.resolve(o)); + return _o(n, a); } refine(e, r) { - const n = (a) => typeof r == "string" || typeof r > "u" ? { message: r } : typeof r == "function" ? r(a) : r; - return this._refinement((a, s) => { - const i = e(a), c = () => s.addIssue({ - code: y.custom, - ...n(a) + const n = (o) => typeof r == "string" || typeof r > "u" ? { message: r } : typeof r == "function" ? r(o) : r; + return this._refinement((o, a) => { + const i = e(o), c = () => a.addIssue({ + code: g.custom, + ...n(o) }); - return typeof Promise < "u" && i instanceof Promise ? i.then((u) => u ? !0 : (c(), !1)) : i ? !0 : (c(), !1); + return typeof Promise < "u" && i instanceof Promise ? i.then((l) => l ? !0 : (c(), !1)) : i ? !0 : (c(), !1); }); } refinement(e, r) { - return this._refinement((n, a) => e(n) ? !0 : (a.addIssue(typeof r == "function" ? r(n, a) : r), !1)); + return this._refinement((n, o) => e(n) ? !0 : (o.addIssue(typeof r == "function" ? r(n, o) : r), !1)); } _refinement(e) { - return new ke({ + return new Ae({ schema: this, - typeName: P.ZodEffects, + typeName: A.ZodEffects, effect: { type: "refinement", refinement: e } }); } @@ -4954,57 +5195,57 @@ class N { return this._refinement(e); } optional() { - return Fe.create(this, this._def); + return Ne.create(this, this._def); } nullable() { - return dt.create(this, this._def); + return tt.create(this, this._def); } nullish() { return this.nullable().optional(); } array() { - return Pe.create(this, this._def); + return Te.create(this, this._def); } promise() { - return xt.create(this, this._def); + return Ct.create(this, this._def); } or(e) { - return Zt.create([this, e], this._def); + return Vt.create([this, e], this._def); } and(e) { - return zt.create(this, e, this._def); + return Wt.create(this, e, this._def); } transform(e) { - return new ke({ + return new Ae({ ...C(this._def), schema: this, - typeName: P.ZodEffects, + typeName: A.ZodEffects, effect: { type: "transform", transform: e } }); } default(e) { const r = typeof e == "function" ? e : () => e; - return new Wt({ + return new Xt({ ...C(this._def), innerType: this, defaultValue: r, - typeName: P.ZodDefault + typeName: A.ZodDefault }); } brand() { - return new gs({ - typeName: P.ZodBranded, + return new zn({ + typeName: A.ZodBranded, type: this, ...C(this._def) }); } catch(e) { const r = typeof e == "function" ? e : () => e; - return new wr({ + return new Qt({ ...C(this._def), innerType: this, catchValue: r, - typeName: P.ZodCatch + typeName: A.ZodCatch }); } describe(e) { @@ -5015,10 +5256,10 @@ class N { }); } pipe(e) { - return Qt.create(this, e); + return ar.create(this, e); } readonly() { - return Er.create(this); + return er.create(this); } isOptional() { return this.safeParse(void 0).success; @@ -5027,194 +5268,249 @@ class N { return this.safeParse(null).success; } } -const Xi = /^c[^\s-]{8,}$/i, Qi = /^[a-z][a-z0-9]*$/, ec = /^[0-9A-HJKMNP-TV-Z]{26}$/, tc = /^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i, rc = /^(?!\.)(?!.*\.\.)([A-Z0-9_+-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i, nc = "^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$"; -let Br; -const oc = /^(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))$/, sc = /^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/, ac = (t) => t.precision ? t.offset ? new RegExp(`^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{${t.precision}}(([+-]\\d{2}(:?\\d{2})?)|Z)$`) : new RegExp(`^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{${t.precision}}Z$`) : t.precision === 0 ? t.offset ? new RegExp("^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(([+-]\\d{2}(:?\\d{2})?)|Z)$") : new RegExp("^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}Z$") : t.offset ? new RegExp("^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?(([+-]\\d{2}(:?\\d{2})?)|Z)$") : new RegExp("^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?Z$"); -function ic(t, e) { - return !!((e === "v4" || !e) && oc.test(t) || (e === "v6" || !e) && sc.test(t)); +const Ic = /^c[^\s-]{8,}$/i, Cc = /^[0-9a-z]+$/, $c = /^[0-9A-HJKMNP-TV-Z]{26}$/, Nc = /^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i, Rc = /^[a-z0-9_-]{21}$/i, Oc = /^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/, Mc = /^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i, Lc = "^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$"; +let tn; +const Fc = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/, Dc = /^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/, Uc = /^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/, Os = "((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))", jc = new RegExp(`^${Os}$`); +function Ms(t) { + let e = "([01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d"; + return t.precision ? e = `${e}\\.\\d{${t.precision}}` : t.precision == null && (e = `${e}(\\.\\d+)?`), e; } -class Ee extends N { +function Zc(t) { + return new RegExp(`^${Ms(t)}$`); +} +function Ls(t) { + let e = `${Os}T${Ms(t)}`; + const r = []; + return r.push(t.local ? "Z?" : "Z"), t.offset && r.push("([+-]\\d{2}:?\\d{2})"), e = `${e}(${r.join("|")})`, new RegExp(`^${e}$`); +} +function zc(t, e) { + return !!((e === "v4" || !e) && Fc.test(t) || (e === "v6" || !e) && Dc.test(t)); +} +class ke extends $ { _parse(e) { - if (this._def.coerce && (e.data = String(e.data)), this._getType(e) !== b.string) { - const s = this._getOrReturnCtx(e); - return S( - s, - { - code: y.invalid_type, - expected: b.string, - received: s.parsedType - } - // - ), A; + if (this._def.coerce && (e.data = String(e.data)), this._getType(e) !== w.string) { + const a = this._getOrReturnCtx(e); + return b(a, { + code: g.invalid_type, + expected: w.string, + received: a.parsedType + }), I; } - const n = new J(); - let a; - for (const s of this._def.checks) - if (s.kind === "min") - e.data.length < s.value && (a = this._getOrReturnCtx(e, a), S(a, { - code: y.too_small, - minimum: s.value, + const n = new Q(); + let o; + for (const a of this._def.checks) + if (a.kind === "min") + e.data.length < a.value && (o = this._getOrReturnCtx(e, o), b(o, { + code: g.too_small, + minimum: a.value, type: "string", inclusive: !0, exact: !1, - message: s.message + message: a.message }), n.dirty()); - else if (s.kind === "max") - e.data.length > s.value && (a = this._getOrReturnCtx(e, a), S(a, { - code: y.too_big, - maximum: s.value, + else if (a.kind === "max") + e.data.length > a.value && (o = this._getOrReturnCtx(e, o), b(o, { + code: g.too_big, + maximum: a.value, type: "string", inclusive: !0, exact: !1, - message: s.message + message: a.message }), n.dirty()); - else if (s.kind === "length") { - const i = e.data.length > s.value, c = e.data.length < s.value; - (i || c) && (a = this._getOrReturnCtx(e, a), i ? S(a, { - code: y.too_big, - maximum: s.value, + else if (a.kind === "length") { + const i = e.data.length > a.value, c = e.data.length < a.value; + (i || c) && (o = this._getOrReturnCtx(e, o), i ? b(o, { + code: g.too_big, + maximum: a.value, type: "string", inclusive: !0, exact: !0, - message: s.message - }) : c && S(a, { - code: y.too_small, - minimum: s.value, + message: a.message + }) : c && b(o, { + code: g.too_small, + minimum: a.value, type: "string", inclusive: !0, exact: !0, - message: s.message + message: a.message }), n.dirty()); - } else if (s.kind === "email") - rc.test(e.data) || (a = this._getOrReturnCtx(e, a), S(a, { + } else if (a.kind === "email") + Mc.test(e.data) || (o = this._getOrReturnCtx(e, o), b(o, { validation: "email", - code: y.invalid_string, - message: s.message + code: g.invalid_string, + message: a.message }), n.dirty()); - else if (s.kind === "emoji") - Br || (Br = new RegExp(nc, "u")), Br.test(e.data) || (a = this._getOrReturnCtx(e, a), S(a, { + else if (a.kind === "emoji") + tn || (tn = new RegExp(Lc, "u")), tn.test(e.data) || (o = this._getOrReturnCtx(e, o), b(o, { validation: "emoji", - code: y.invalid_string, - message: s.message + code: g.invalid_string, + message: a.message }), n.dirty()); - else if (s.kind === "uuid") - tc.test(e.data) || (a = this._getOrReturnCtx(e, a), S(a, { + else if (a.kind === "uuid") + Nc.test(e.data) || (o = this._getOrReturnCtx(e, o), b(o, { validation: "uuid", - code: y.invalid_string, - message: s.message + code: g.invalid_string, + message: a.message }), n.dirty()); - else if (s.kind === "cuid") - Xi.test(e.data) || (a = this._getOrReturnCtx(e, a), S(a, { + else if (a.kind === "nanoid") + Rc.test(e.data) || (o = this._getOrReturnCtx(e, o), b(o, { + validation: "nanoid", + code: g.invalid_string, + message: a.message + }), n.dirty()); + else if (a.kind === "cuid") + Ic.test(e.data) || (o = this._getOrReturnCtx(e, o), b(o, { validation: "cuid", - code: y.invalid_string, - message: s.message + code: g.invalid_string, + message: a.message }), n.dirty()); - else if (s.kind === "cuid2") - Qi.test(e.data) || (a = this._getOrReturnCtx(e, a), S(a, { + else if (a.kind === "cuid2") + Cc.test(e.data) || (o = this._getOrReturnCtx(e, o), b(o, { validation: "cuid2", - code: y.invalid_string, - message: s.message + code: g.invalid_string, + message: a.message }), n.dirty()); - else if (s.kind === "ulid") - ec.test(e.data) || (a = this._getOrReturnCtx(e, a), S(a, { + else if (a.kind === "ulid") + $c.test(e.data) || (o = this._getOrReturnCtx(e, o), b(o, { validation: "ulid", - code: y.invalid_string, - message: s.message + code: g.invalid_string, + message: a.message }), n.dirty()); - else if (s.kind === "url") + else if (a.kind === "url") try { new URL(e.data); } catch { - a = this._getOrReturnCtx(e, a), S(a, { + o = this._getOrReturnCtx(e, o), b(o, { validation: "url", - code: y.invalid_string, - message: s.message + code: g.invalid_string, + message: a.message }), n.dirty(); } else - s.kind === "regex" ? (s.regex.lastIndex = 0, s.regex.test(e.data) || (a = this._getOrReturnCtx(e, a), S(a, { + a.kind === "regex" ? (a.regex.lastIndex = 0, a.regex.test(e.data) || (o = this._getOrReturnCtx(e, o), b(o, { validation: "regex", - code: y.invalid_string, - message: s.message - }), n.dirty())) : s.kind === "trim" ? e.data = e.data.trim() : s.kind === "includes" ? e.data.includes(s.value, s.position) || (a = this._getOrReturnCtx(e, a), S(a, { - code: y.invalid_string, - validation: { includes: s.value, position: s.position }, - message: s.message - }), n.dirty()) : s.kind === "toLowerCase" ? e.data = e.data.toLowerCase() : s.kind === "toUpperCase" ? e.data = e.data.toUpperCase() : s.kind === "startsWith" ? e.data.startsWith(s.value) || (a = this._getOrReturnCtx(e, a), S(a, { - code: y.invalid_string, - validation: { startsWith: s.value }, - message: s.message - }), n.dirty()) : s.kind === "endsWith" ? e.data.endsWith(s.value) || (a = this._getOrReturnCtx(e, a), S(a, { - code: y.invalid_string, - validation: { endsWith: s.value }, - message: s.message - }), n.dirty()) : s.kind === "datetime" ? ac(s).test(e.data) || (a = this._getOrReturnCtx(e, a), S(a, { - code: y.invalid_string, + code: g.invalid_string, + message: a.message + }), n.dirty())) : a.kind === "trim" ? e.data = e.data.trim() : a.kind === "includes" ? e.data.includes(a.value, a.position) || (o = this._getOrReturnCtx(e, o), b(o, { + code: g.invalid_string, + validation: { includes: a.value, position: a.position }, + message: a.message + }), n.dirty()) : a.kind === "toLowerCase" ? e.data = e.data.toLowerCase() : a.kind === "toUpperCase" ? e.data = e.data.toUpperCase() : a.kind === "startsWith" ? e.data.startsWith(a.value) || (o = this._getOrReturnCtx(e, o), b(o, { + code: g.invalid_string, + validation: { startsWith: a.value }, + message: a.message + }), n.dirty()) : a.kind === "endsWith" ? e.data.endsWith(a.value) || (o = this._getOrReturnCtx(e, o), b(o, { + code: g.invalid_string, + validation: { endsWith: a.value }, + message: a.message + }), n.dirty()) : a.kind === "datetime" ? Ls(a).test(e.data) || (o = this._getOrReturnCtx(e, o), b(o, { + code: g.invalid_string, validation: "datetime", - message: s.message - }), n.dirty()) : s.kind === "ip" ? ic(e.data, s.version) || (a = this._getOrReturnCtx(e, a), S(a, { + message: a.message + }), n.dirty()) : a.kind === "date" ? jc.test(e.data) || (o = this._getOrReturnCtx(e, o), b(o, { + code: g.invalid_string, + validation: "date", + message: a.message + }), n.dirty()) : a.kind === "time" ? Zc(a).test(e.data) || (o = this._getOrReturnCtx(e, o), b(o, { + code: g.invalid_string, + validation: "time", + message: a.message + }), n.dirty()) : a.kind === "duration" ? Oc.test(e.data) || (o = this._getOrReturnCtx(e, o), b(o, { + validation: "duration", + code: g.invalid_string, + message: a.message + }), n.dirty()) : a.kind === "ip" ? zc(e.data, a.version) || (o = this._getOrReturnCtx(e, o), b(o, { validation: "ip", - code: y.invalid_string, - message: s.message - }), n.dirty()) : R.assertNever(s); + code: g.invalid_string, + message: a.message + }), n.dirty()) : a.kind === "base64" ? Uc.test(e.data) || (o = this._getOrReturnCtx(e, o), b(o, { + validation: "base64", + code: g.invalid_string, + message: a.message + }), n.dirty()) : O.assertNever(a); return { status: n.value, value: e.data }; } _regex(e, r, n) { - return this.refinement((a) => e.test(a), { + return this.refinement((o) => e.test(o), { validation: r, - code: y.invalid_string, - ...E.errToObj(n) + code: g.invalid_string, + ...S.errToObj(n) }); } _addCheck(e) { - return new Ee({ + return new ke({ ...this._def, checks: [...this._def.checks, e] }); } email(e) { - return this._addCheck({ kind: "email", ...E.errToObj(e) }); + return this._addCheck({ kind: "email", ...S.errToObj(e) }); } url(e) { - return this._addCheck({ kind: "url", ...E.errToObj(e) }); + return this._addCheck({ kind: "url", ...S.errToObj(e) }); } emoji(e) { - return this._addCheck({ kind: "emoji", ...E.errToObj(e) }); + return this._addCheck({ kind: "emoji", ...S.errToObj(e) }); } uuid(e) { - return this._addCheck({ kind: "uuid", ...E.errToObj(e) }); + return this._addCheck({ kind: "uuid", ...S.errToObj(e) }); + } + nanoid(e) { + return this._addCheck({ kind: "nanoid", ...S.errToObj(e) }); } cuid(e) { - return this._addCheck({ kind: "cuid", ...E.errToObj(e) }); + return this._addCheck({ kind: "cuid", ...S.errToObj(e) }); } cuid2(e) { - return this._addCheck({ kind: "cuid2", ...E.errToObj(e) }); + return this._addCheck({ kind: "cuid2", ...S.errToObj(e) }); } ulid(e) { - return this._addCheck({ kind: "ulid", ...E.errToObj(e) }); + return this._addCheck({ kind: "ulid", ...S.errToObj(e) }); + } + base64(e) { + return this._addCheck({ kind: "base64", ...S.errToObj(e) }); } ip(e) { - return this._addCheck({ kind: "ip", ...E.errToObj(e) }); + return this._addCheck({ kind: "ip", ...S.errToObj(e) }); } datetime(e) { - var r; + var r, n; return typeof e == "string" ? this._addCheck({ kind: "datetime", precision: null, offset: !1, + local: !1, message: e }) : this._addCheck({ kind: "datetime", precision: typeof (e == null ? void 0 : e.precision) > "u" ? null : e == null ? void 0 : e.precision, offset: (r = e == null ? void 0 : e.offset) !== null && r !== void 0 ? r : !1, - ...E.errToObj(e == null ? void 0 : e.message) + local: (n = e == null ? void 0 : e.local) !== null && n !== void 0 ? n : !1, + ...S.errToObj(e == null ? void 0 : e.message) }); } + date(e) { + return this._addCheck({ kind: "date", message: e }); + } + time(e) { + return typeof e == "string" ? this._addCheck({ + kind: "time", + precision: null, + message: e + }) : this._addCheck({ + kind: "time", + precision: typeof (e == null ? void 0 : e.precision) > "u" ? null : e == null ? void 0 : e.precision, + ...S.errToObj(e == null ? void 0 : e.message) + }); + } + duration(e) { + return this._addCheck({ kind: "duration", ...S.errToObj(e) }); + } regex(e, r) { return this._addCheck({ kind: "regex", regex: e, - ...E.errToObj(r) + ...S.errToObj(r) }); } includes(e, r) { @@ -5222,42 +5518,42 @@ class Ee extends N { kind: "includes", value: e, position: r == null ? void 0 : r.position, - ...E.errToObj(r == null ? void 0 : r.message) + ...S.errToObj(r == null ? void 0 : r.message) }); } startsWith(e, r) { return this._addCheck({ kind: "startsWith", value: e, - ...E.errToObj(r) + ...S.errToObj(r) }); } endsWith(e, r) { return this._addCheck({ kind: "endsWith", value: e, - ...E.errToObj(r) + ...S.errToObj(r) }); } min(e, r) { return this._addCheck({ kind: "min", value: e, - ...E.errToObj(r) + ...S.errToObj(r) }); } max(e, r) { return this._addCheck({ kind: "max", value: e, - ...E.errToObj(r) + ...S.errToObj(r) }); } length(e, r) { return this._addCheck({ kind: "length", value: e, - ...E.errToObj(r) + ...S.errToObj(r) }); } /** @@ -5265,22 +5561,22 @@ class Ee extends N { * @see {@link ZodString.min} */ nonempty(e) { - return this.min(1, E.errToObj(e)); + return this.min(1, S.errToObj(e)); } trim() { - return new Ee({ + return new ke({ ...this._def, checks: [...this._def.checks, { kind: "trim" }] }); } toLowerCase() { - return new Ee({ + return new ke({ ...this._def, checks: [...this._def.checks, { kind: "toLowerCase" }] }); } toUpperCase() { - return new Ee({ + return new ke({ ...this._def, checks: [...this._def.checks, { kind: "toUpperCase" }] }); @@ -5288,6 +5584,15 @@ class Ee extends N { get isDatetime() { return !!this._def.checks.find((e) => e.kind === "datetime"); } + get isDate() { + return !!this._def.checks.find((e) => e.kind === "date"); + } + get isTime() { + return !!this._def.checks.find((e) => e.kind === "time"); + } + get isDuration() { + return !!this._def.checks.find((e) => e.kind === "duration"); + } get isEmail() { return !!this._def.checks.find((e) => e.kind === "email"); } @@ -5300,6 +5605,9 @@ class Ee extends N { get isUUID() { return !!this._def.checks.find((e) => e.kind === "uuid"); } + get isNANOID() { + return !!this._def.checks.find((e) => e.kind === "nanoid"); + } get isCUID() { return !!this._def.checks.find((e) => e.kind === "cuid"); } @@ -5312,6 +5620,9 @@ class Ee extends N { get isIP() { return !!this._def.checks.find((e) => e.kind === "ip"); } + get isBase64() { + return !!this._def.checks.find((e) => e.kind === "base64"); + } get minLength() { let e = null; for (const r of this._def.checks) @@ -5325,78 +5636,78 @@ class Ee extends N { return e; } } -Ee.create = (t) => { +ke.create = (t) => { var e; - return new Ee({ + return new ke({ checks: [], - typeName: P.ZodString, + typeName: A.ZodString, coerce: (e = t == null ? void 0 : t.coerce) !== null && e !== void 0 ? e : !1, ...C(t) }); }; -function cc(t, e) { - const r = (t.toString().split(".")[1] || "").length, n = (e.toString().split(".")[1] || "").length, a = r > n ? r : n, s = parseInt(t.toFixed(a).replace(".", "")), i = parseInt(e.toFixed(a).replace(".", "")); - return s % i / Math.pow(10, a); +function Gc(t, e) { + const r = (t.toString().split(".")[1] || "").length, n = (e.toString().split(".")[1] || "").length, o = r > n ? r : n, a = parseInt(t.toFixed(o).replace(".", "")), i = parseInt(e.toFixed(o).replace(".", "")); + return a % i / Math.pow(10, o); } -class qe extends N { +class Xe extends $ { constructor() { super(...arguments), this.min = this.gte, this.max = this.lte, this.step = this.multipleOf; } _parse(e) { - if (this._def.coerce && (e.data = Number(e.data)), this._getType(e) !== b.number) { - const s = this._getOrReturnCtx(e); - return S(s, { - code: y.invalid_type, - expected: b.number, - received: s.parsedType - }), A; + if (this._def.coerce && (e.data = Number(e.data)), this._getType(e) !== w.number) { + const a = this._getOrReturnCtx(e); + return b(a, { + code: g.invalid_type, + expected: w.number, + received: a.parsedType + }), I; } let n; - const a = new J(); - for (const s of this._def.checks) - s.kind === "int" ? R.isInteger(e.data) || (n = this._getOrReturnCtx(e, n), S(n, { - code: y.invalid_type, + const o = new Q(); + for (const a of this._def.checks) + a.kind === "int" ? O.isInteger(e.data) || (n = this._getOrReturnCtx(e, n), b(n, { + code: g.invalid_type, expected: "integer", received: "float", - message: s.message - }), a.dirty()) : s.kind === "min" ? (s.inclusive ? e.data < s.value : e.data <= s.value) && (n = this._getOrReturnCtx(e, n), S(n, { - code: y.too_small, - minimum: s.value, + message: a.message + }), o.dirty()) : a.kind === "min" ? (a.inclusive ? e.data < a.value : e.data <= a.value) && (n = this._getOrReturnCtx(e, n), b(n, { + code: g.too_small, + minimum: a.value, type: "number", - inclusive: s.inclusive, + inclusive: a.inclusive, exact: !1, - message: s.message - }), a.dirty()) : s.kind === "max" ? (s.inclusive ? e.data > s.value : e.data >= s.value) && (n = this._getOrReturnCtx(e, n), S(n, { - code: y.too_big, - maximum: s.value, + message: a.message + }), o.dirty()) : a.kind === "max" ? (a.inclusive ? e.data > a.value : e.data >= a.value) && (n = this._getOrReturnCtx(e, n), b(n, { + code: g.too_big, + maximum: a.value, type: "number", - inclusive: s.inclusive, + inclusive: a.inclusive, exact: !1, - message: s.message - }), a.dirty()) : s.kind === "multipleOf" ? cc(e.data, s.value) !== 0 && (n = this._getOrReturnCtx(e, n), S(n, { - code: y.not_multiple_of, - multipleOf: s.value, - message: s.message - }), a.dirty()) : s.kind === "finite" ? Number.isFinite(e.data) || (n = this._getOrReturnCtx(e, n), S(n, { - code: y.not_finite, - message: s.message - }), a.dirty()) : R.assertNever(s); - return { status: a.value, value: e.data }; + message: a.message + }), o.dirty()) : a.kind === "multipleOf" ? Gc(e.data, a.value) !== 0 && (n = this._getOrReturnCtx(e, n), b(n, { + code: g.not_multiple_of, + multipleOf: a.value, + message: a.message + }), o.dirty()) : a.kind === "finite" ? Number.isFinite(e.data) || (n = this._getOrReturnCtx(e, n), b(n, { + code: g.not_finite, + message: a.message + }), o.dirty()) : O.assertNever(a); + return { status: o.value, value: e.data }; } gte(e, r) { - return this.setLimit("min", e, !0, E.toString(r)); + return this.setLimit("min", e, !0, S.toString(r)); } gt(e, r) { - return this.setLimit("min", e, !1, E.toString(r)); + return this.setLimit("min", e, !1, S.toString(r)); } lte(e, r) { - return this.setLimit("max", e, !0, E.toString(r)); + return this.setLimit("max", e, !0, S.toString(r)); } lt(e, r) { - return this.setLimit("max", e, !1, E.toString(r)); + return this.setLimit("max", e, !1, S.toString(r)); } - setLimit(e, r, n, a) { - return new qe({ + setLimit(e, r, n, o) { + return new Xe({ ...this._def, checks: [ ...this._def.checks, @@ -5404,13 +5715,13 @@ class qe extends N { kind: e, value: r, inclusive: n, - message: E.toString(a) + message: S.toString(o) } ] }); } _addCheck(e) { - return new qe({ + return new Xe({ ...this._def, checks: [...this._def.checks, e] }); @@ -5418,7 +5729,7 @@ class qe extends N { int(e) { return this._addCheck({ kind: "int", - message: E.toString(e) + message: S.toString(e) }); } positive(e) { @@ -5426,7 +5737,7 @@ class qe extends N { kind: "min", value: 0, inclusive: !1, - message: E.toString(e) + message: S.toString(e) }); } negative(e) { @@ -5434,7 +5745,7 @@ class qe extends N { kind: "max", value: 0, inclusive: !1, - message: E.toString(e) + message: S.toString(e) }); } nonpositive(e) { @@ -5442,7 +5753,7 @@ class qe extends N { kind: "max", value: 0, inclusive: !0, - message: E.toString(e) + message: S.toString(e) }); } nonnegative(e) { @@ -5450,20 +5761,20 @@ class qe extends N { kind: "min", value: 0, inclusive: !0, - message: E.toString(e) + message: S.toString(e) }); } multipleOf(e, r) { return this._addCheck({ kind: "multipleOf", value: e, - message: E.toString(r) + message: S.toString(r) }); } finite(e) { return this._addCheck({ kind: "finite", - message: E.toString(e) + message: S.toString(e) }); } safe(e) { @@ -5471,12 +5782,12 @@ class qe extends N { kind: "min", inclusive: !0, value: Number.MIN_SAFE_INTEGER, - message: E.toString(e) + message: S.toString(e) })._addCheck({ kind: "max", inclusive: !0, value: Number.MAX_SAFE_INTEGER, - message: E.toString(e) + message: S.toString(e) }); } get minValue() { @@ -5492,7 +5803,7 @@ class qe extends N { return e; } get isInt() { - return !!this._def.checks.find((e) => e.kind === "int" || e.kind === "multipleOf" && R.isInteger(e.value)); + return !!this._def.checks.find((e) => e.kind === "int" || e.kind === "multipleOf" && O.isInteger(e.value)); } get isFinite() { let e = null, r = null; @@ -5504,61 +5815,61 @@ class qe extends N { return Number.isFinite(r) && Number.isFinite(e); } } -qe.create = (t) => new qe({ +Xe.create = (t) => new Xe({ checks: [], - typeName: P.ZodNumber, + typeName: A.ZodNumber, coerce: (t == null ? void 0 : t.coerce) || !1, ...C(t) }); -class Ke extends N { +class Qe extends $ { constructor() { super(...arguments), this.min = this.gte, this.max = this.lte; } _parse(e) { - if (this._def.coerce && (e.data = BigInt(e.data)), this._getType(e) !== b.bigint) { - const s = this._getOrReturnCtx(e); - return S(s, { - code: y.invalid_type, - expected: b.bigint, - received: s.parsedType - }), A; + if (this._def.coerce && (e.data = BigInt(e.data)), this._getType(e) !== w.bigint) { + const a = this._getOrReturnCtx(e); + return b(a, { + code: g.invalid_type, + expected: w.bigint, + received: a.parsedType + }), I; } let n; - const a = new J(); - for (const s of this._def.checks) - s.kind === "min" ? (s.inclusive ? e.data < s.value : e.data <= s.value) && (n = this._getOrReturnCtx(e, n), S(n, { - code: y.too_small, + const o = new Q(); + for (const a of this._def.checks) + a.kind === "min" ? (a.inclusive ? e.data < a.value : e.data <= a.value) && (n = this._getOrReturnCtx(e, n), b(n, { + code: g.too_small, type: "bigint", - minimum: s.value, - inclusive: s.inclusive, - message: s.message - }), a.dirty()) : s.kind === "max" ? (s.inclusive ? e.data > s.value : e.data >= s.value) && (n = this._getOrReturnCtx(e, n), S(n, { - code: y.too_big, + minimum: a.value, + inclusive: a.inclusive, + message: a.message + }), o.dirty()) : a.kind === "max" ? (a.inclusive ? e.data > a.value : e.data >= a.value) && (n = this._getOrReturnCtx(e, n), b(n, { + code: g.too_big, type: "bigint", - maximum: s.value, - inclusive: s.inclusive, - message: s.message - }), a.dirty()) : s.kind === "multipleOf" ? e.data % s.value !== BigInt(0) && (n = this._getOrReturnCtx(e, n), S(n, { - code: y.not_multiple_of, - multipleOf: s.value, - message: s.message - }), a.dirty()) : R.assertNever(s); - return { status: a.value, value: e.data }; + maximum: a.value, + inclusive: a.inclusive, + message: a.message + }), o.dirty()) : a.kind === "multipleOf" ? e.data % a.value !== BigInt(0) && (n = this._getOrReturnCtx(e, n), b(n, { + code: g.not_multiple_of, + multipleOf: a.value, + message: a.message + }), o.dirty()) : O.assertNever(a); + return { status: o.value, value: e.data }; } gte(e, r) { - return this.setLimit("min", e, !0, E.toString(r)); + return this.setLimit("min", e, !0, S.toString(r)); } gt(e, r) { - return this.setLimit("min", e, !1, E.toString(r)); + return this.setLimit("min", e, !1, S.toString(r)); } lte(e, r) { - return this.setLimit("max", e, !0, E.toString(r)); + return this.setLimit("max", e, !0, S.toString(r)); } lt(e, r) { - return this.setLimit("max", e, !1, E.toString(r)); + return this.setLimit("max", e, !1, S.toString(r)); } - setLimit(e, r, n, a) { - return new Ke({ + setLimit(e, r, n, o) { + return new Qe({ ...this._def, checks: [ ...this._def.checks, @@ -5566,13 +5877,13 @@ class Ke extends N { kind: e, value: r, inclusive: n, - message: E.toString(a) + message: S.toString(o) } ] }); } _addCheck(e) { - return new Ke({ + return new Qe({ ...this._def, checks: [...this._def.checks, e] }); @@ -5582,7 +5893,7 @@ class Ke extends N { kind: "min", value: BigInt(0), inclusive: !1, - message: E.toString(e) + message: S.toString(e) }); } negative(e) { @@ -5590,7 +5901,7 @@ class Ke extends N { kind: "max", value: BigInt(0), inclusive: !1, - message: E.toString(e) + message: S.toString(e) }); } nonpositive(e) { @@ -5598,7 +5909,7 @@ class Ke extends N { kind: "max", value: BigInt(0), inclusive: !0, - message: E.toString(e) + message: S.toString(e) }); } nonnegative(e) { @@ -5606,14 +5917,14 @@ class Ke extends N { kind: "min", value: BigInt(0), inclusive: !0, - message: E.toString(e) + message: S.toString(e) }); } multipleOf(e, r) { return this._addCheck({ kind: "multipleOf", value: e, - message: E.toString(r) + message: S.toString(r) }); } get minValue() { @@ -5629,74 +5940,74 @@ class Ke extends N { return e; } } -Ke.create = (t) => { +Qe.create = (t) => { var e; - return new Ke({ + return new Qe({ checks: [], - typeName: P.ZodBigInt, + typeName: A.ZodBigInt, coerce: (e = t == null ? void 0 : t.coerce) !== null && e !== void 0 ? e : !1, ...C(t) }); }; -class Dt extends N { +class Gt extends $ { _parse(e) { - if (this._def.coerce && (e.data = !!e.data), this._getType(e) !== b.boolean) { + if (this._def.coerce && (e.data = !!e.data), this._getType(e) !== w.boolean) { const n = this._getOrReturnCtx(e); - return S(n, { - code: y.invalid_type, - expected: b.boolean, + return b(n, { + code: g.invalid_type, + expected: w.boolean, received: n.parsedType - }), A; + }), I; } - return re(e.data); + return ae(e.data); } } -Dt.create = (t) => new Dt({ - typeName: P.ZodBoolean, +Gt.create = (t) => new Gt({ + typeName: A.ZodBoolean, coerce: (t == null ? void 0 : t.coerce) || !1, ...C(t) }); -class lt extends N { +class mt extends $ { _parse(e) { - if (this._def.coerce && (e.data = new Date(e.data)), this._getType(e) !== b.date) { - const s = this._getOrReturnCtx(e); - return S(s, { - code: y.invalid_type, - expected: b.date, - received: s.parsedType - }), A; + if (this._def.coerce && (e.data = new Date(e.data)), this._getType(e) !== w.date) { + const a = this._getOrReturnCtx(e); + return b(a, { + code: g.invalid_type, + expected: w.date, + received: a.parsedType + }), I; } if (isNaN(e.data.getTime())) { - const s = this._getOrReturnCtx(e); - return S(s, { - code: y.invalid_date - }), A; + const a = this._getOrReturnCtx(e); + return b(a, { + code: g.invalid_date + }), I; } - const n = new J(); - let a; - for (const s of this._def.checks) - s.kind === "min" ? e.data.getTime() < s.value && (a = this._getOrReturnCtx(e, a), S(a, { - code: y.too_small, - message: s.message, + const n = new Q(); + let o; + for (const a of this._def.checks) + a.kind === "min" ? e.data.getTime() < a.value && (o = this._getOrReturnCtx(e, o), b(o, { + code: g.too_small, + message: a.message, inclusive: !0, exact: !1, - minimum: s.value, + minimum: a.value, type: "date" - }), n.dirty()) : s.kind === "max" ? e.data.getTime() > s.value && (a = this._getOrReturnCtx(e, a), S(a, { - code: y.too_big, - message: s.message, + }), n.dirty()) : a.kind === "max" ? e.data.getTime() > a.value && (o = this._getOrReturnCtx(e, o), b(o, { + code: g.too_big, + message: a.message, inclusive: !0, exact: !1, - maximum: s.value, + maximum: a.value, type: "date" - }), n.dirty()) : R.assertNever(s); + }), n.dirty()) : O.assertNever(a); return { status: n.value, value: new Date(e.data.getTime()) }; } _addCheck(e) { - return new lt({ + return new mt({ ...this._def, checks: [...this._def.checks, e] }); @@ -5705,14 +6016,14 @@ class lt extends N { return this._addCheck({ kind: "min", value: e.getTime(), - message: E.toString(r) + message: S.toString(r) }); } max(e, r) { return this._addCheck({ kind: "max", value: e.getTime(), - message: E.toString(r) + message: S.toString(r) }); } get minDate() { @@ -5728,297 +6039,297 @@ class lt extends N { return e != null ? new Date(e) : null; } } -lt.create = (t) => new lt({ +mt.create = (t) => new mt({ checks: [], coerce: (t == null ? void 0 : t.coerce) || !1, - typeName: P.ZodDate, + typeName: A.ZodDate, ...C(t) }); -class vr extends N { +class Tr extends $ { _parse(e) { - if (this._getType(e) !== b.symbol) { + if (this._getType(e) !== w.symbol) { const n = this._getOrReturnCtx(e); - return S(n, { - code: y.invalid_type, - expected: b.symbol, + return b(n, { + code: g.invalid_type, + expected: w.symbol, received: n.parsedType - }), A; + }), I; } - return re(e.data); + return ae(e.data); } } -vr.create = (t) => new vr({ - typeName: P.ZodSymbol, +Tr.create = (t) => new Tr({ + typeName: A.ZodSymbol, ...C(t) }); -class Ut extends N { +class Bt extends $ { _parse(e) { - if (this._getType(e) !== b.undefined) { + if (this._getType(e) !== w.undefined) { const n = this._getOrReturnCtx(e); - return S(n, { - code: y.invalid_type, - expected: b.undefined, + return b(n, { + code: g.invalid_type, + expected: w.undefined, received: n.parsedType - }), A; + }), I; } - return re(e.data); + return ae(e.data); } } -Ut.create = (t) => new Ut({ - typeName: P.ZodUndefined, +Bt.create = (t) => new Bt({ + typeName: A.ZodUndefined, ...C(t) }); -class jt extends N { +class Ht extends $ { _parse(e) { - if (this._getType(e) !== b.null) { + if (this._getType(e) !== w.null) { const n = this._getOrReturnCtx(e); - return S(n, { - code: y.invalid_type, - expected: b.null, + return b(n, { + code: g.invalid_type, + expected: w.null, received: n.parsedType - }), A; + }), I; } - return re(e.data); + return ae(e.data); } } -jt.create = (t) => new jt({ - typeName: P.ZodNull, +Ht.create = (t) => new Ht({ + typeName: A.ZodNull, ...C(t) }); -class Et extends N { +class It extends $ { constructor() { super(...arguments), this._any = !0; } _parse(e) { - return re(e.data); + return ae(e.data); } } -Et.create = (t) => new Et({ - typeName: P.ZodAny, +It.create = (t) => new It({ + typeName: A.ZodAny, ...C(t) }); -class at extends N { +class ft extends $ { constructor() { super(...arguments), this._unknown = !0; } _parse(e) { - return re(e.data); + return ae(e.data); } } -at.create = (t) => new at({ - typeName: P.ZodUnknown, +ft.create = (t) => new ft({ + typeName: A.ZodUnknown, ...C(t) }); -class Ue extends N { +class je extends $ { _parse(e) { const r = this._getOrReturnCtx(e); - return S(r, { - code: y.invalid_type, - expected: b.never, + return b(r, { + code: g.invalid_type, + expected: w.never, received: r.parsedType - }), A; + }), I; } } -Ue.create = (t) => new Ue({ - typeName: P.ZodNever, +je.create = (t) => new je({ + typeName: A.ZodNever, ...C(t) }); -class _r extends N { +class Ar extends $ { _parse(e) { - if (this._getType(e) !== b.undefined) { + if (this._getType(e) !== w.undefined) { const n = this._getOrReturnCtx(e); - return S(n, { - code: y.invalid_type, - expected: b.void, + return b(n, { + code: g.invalid_type, + expected: w.void, received: n.parsedType - }), A; + }), I; } - return re(e.data); + return ae(e.data); } } -_r.create = (t) => new _r({ - typeName: P.ZodVoid, +Ar.create = (t) => new Ar({ + typeName: A.ZodVoid, ...C(t) }); -class Pe extends N { +class Te extends $ { _parse(e) { - const { ctx: r, status: n } = this._processInputParams(e), a = this._def; - if (r.parsedType !== b.array) - return S(r, { - code: y.invalid_type, - expected: b.array, + const { ctx: r, status: n } = this._processInputParams(e), o = this._def; + if (r.parsedType !== w.array) + return b(r, { + code: g.invalid_type, + expected: w.array, received: r.parsedType - }), A; - if (a.exactLength !== null) { - const i = r.data.length > a.exactLength.value, c = r.data.length < a.exactLength.value; - (i || c) && (S(r, { - code: i ? y.too_big : y.too_small, - minimum: c ? a.exactLength.value : void 0, - maximum: i ? a.exactLength.value : void 0, + }), I; + if (o.exactLength !== null) { + const i = r.data.length > o.exactLength.value, c = r.data.length < o.exactLength.value; + (i || c) && (b(r, { + code: i ? g.too_big : g.too_small, + minimum: c ? o.exactLength.value : void 0, + maximum: i ? o.exactLength.value : void 0, type: "array", inclusive: !0, exact: !0, - message: a.exactLength.message + message: o.exactLength.message }), n.dirty()); } - if (a.minLength !== null && r.data.length < a.minLength.value && (S(r, { - code: y.too_small, - minimum: a.minLength.value, + if (o.minLength !== null && r.data.length < o.minLength.value && (b(r, { + code: g.too_small, + minimum: o.minLength.value, type: "array", inclusive: !0, exact: !1, - message: a.minLength.message - }), n.dirty()), a.maxLength !== null && r.data.length > a.maxLength.value && (S(r, { - code: y.too_big, - maximum: a.maxLength.value, + message: o.minLength.message + }), n.dirty()), o.maxLength !== null && r.data.length > o.maxLength.value && (b(r, { + code: g.too_big, + maximum: o.maxLength.value, type: "array", inclusive: !0, exact: !1, - message: a.maxLength.message + message: o.maxLength.message }), n.dirty()), r.common.async) - return Promise.all([...r.data].map((i, c) => a.type._parseAsync(new Ne(r, i, r.path, c)))).then((i) => J.mergeArray(n, i)); - const s = [...r.data].map((i, c) => a.type._parseSync(new Ne(r, i, r.path, c))); - return J.mergeArray(n, s); + return Promise.all([...r.data].map((i, c) => o.type._parseAsync(new Re(r, i, r.path, c)))).then((i) => Q.mergeArray(n, i)); + const a = [...r.data].map((i, c) => o.type._parseSync(new Re(r, i, r.path, c))); + return Q.mergeArray(n, a); } get element() { return this._def.type; } min(e, r) { - return new Pe({ + return new Te({ ...this._def, - minLength: { value: e, message: E.toString(r) } + minLength: { value: e, message: S.toString(r) } }); } max(e, r) { - return new Pe({ + return new Te({ ...this._def, - maxLength: { value: e, message: E.toString(r) } + maxLength: { value: e, message: S.toString(r) } }); } length(e, r) { - return new Pe({ + return new Te({ ...this._def, - exactLength: { value: e, message: E.toString(r) } + exactLength: { value: e, message: S.toString(r) } }); } nonempty(e) { return this.min(1, e); } } -Pe.create = (t, e) => new Pe({ +Te.create = (t, e) => new Te({ type: t, minLength: null, maxLength: null, exactLength: null, - typeName: P.ZodArray, + typeName: A.ZodArray, ...C(e) }); -function gt(t) { +function bt(t) { if (t instanceof U) { const e = {}; for (const r in t.shape) { const n = t.shape[r]; - e[r] = Fe.create(gt(n)); + e[r] = Ne.create(bt(n)); } return new U({ ...t._def, shape: () => e }); } else - return t instanceof Pe ? new Pe({ + return t instanceof Te ? new Te({ ...t._def, - type: gt(t.element) - }) : t instanceof Fe ? Fe.create(gt(t.unwrap())) : t instanceof dt ? dt.create(gt(t.unwrap())) : t instanceof Oe ? Oe.create(t.items.map((e) => gt(e))) : t; + type: bt(t.element) + }) : t instanceof Ne ? Ne.create(bt(t.unwrap())) : t instanceof tt ? tt.create(bt(t.unwrap())) : t instanceof Oe ? Oe.create(t.items.map((e) => bt(e))) : t; } -class U extends N { +class U extends $ { constructor() { super(...arguments), this._cached = null, this.nonstrict = this.passthrough, this.augment = this.extend; } _getCached() { if (this._cached !== null) return this._cached; - const e = this._def.shape(), r = R.objectKeys(e); + const e = this._def.shape(), r = O.objectKeys(e); return this._cached = { shape: e, keys: r }; } _parse(e) { - if (this._getType(e) !== b.object) { - const l = this._getOrReturnCtx(e); - return S(l, { - code: y.invalid_type, - expected: b.object, - received: l.parsedType - }), A; + if (this._getType(e) !== w.object) { + const u = this._getOrReturnCtx(e); + return b(u, { + code: g.invalid_type, + expected: w.object, + received: u.parsedType + }), I; } - const { status: n, ctx: a } = this._processInputParams(e), { shape: s, keys: i } = this._getCached(), c = []; - if (!(this._def.catchall instanceof Ue && this._def.unknownKeys === "strip")) - for (const l in a.data) - i.includes(l) || c.push(l); - const u = []; - for (const l of i) { - const d = s[l], f = a.data[l]; - u.push({ - key: { status: "valid", value: l }, - value: d._parse(new Ne(a, f, a.path, l)), - alwaysSet: l in a.data + const { status: n, ctx: o } = this._processInputParams(e), { shape: a, keys: i } = this._getCached(), c = []; + if (!(this._def.catchall instanceof je && this._def.unknownKeys === "strip")) + for (const u in o.data) + i.includes(u) || c.push(u); + const l = []; + for (const u of i) { + const d = a[u], f = o.data[u]; + l.push({ + key: { status: "valid", value: u }, + value: d._parse(new Re(o, f, o.path, u)), + alwaysSet: u in o.data }); } - if (this._def.catchall instanceof Ue) { - const l = this._def.unknownKeys; - if (l === "passthrough") + if (this._def.catchall instanceof je) { + const u = this._def.unknownKeys; + if (u === "passthrough") for (const d of c) - u.push({ + l.push({ key: { status: "valid", value: d }, - value: { status: "valid", value: a.data[d] } + value: { status: "valid", value: o.data[d] } }); - else if (l === "strict") - c.length > 0 && (S(a, { - code: y.unrecognized_keys, + else if (u === "strict") + c.length > 0 && (b(o, { + code: g.unrecognized_keys, keys: c }), n.dirty()); - else if (l !== "strip") + else if (u !== "strip") throw new Error("Internal ZodObject error: invalid unknownKeys value."); } else { - const l = this._def.catchall; + const u = this._def.catchall; for (const d of c) { - const f = a.data[d]; - u.push({ + const f = o.data[d]; + l.push({ key: { status: "valid", value: d }, - value: l._parse( - new Ne(a, f, a.path, d) + value: u._parse( + new Re(o, f, o.path, d) //, ctx.child(key), value, getParsedType(value) ), - alwaysSet: d in a.data + alwaysSet: d in o.data }); } } - return a.common.async ? Promise.resolve().then(async () => { - const l = []; - for (const d of u) { - const f = await d.key; - l.push({ + return o.common.async ? Promise.resolve().then(async () => { + const u = []; + for (const d of l) { + const f = await d.key, m = await d.value; + u.push({ key: f, - value: await d.value, + value: m, alwaysSet: d.alwaysSet }); } - return l; - }).then((l) => J.mergeObjectSync(n, l)) : J.mergeObjectSync(n, u); + return u; + }).then((u) => Q.mergeObjectSync(n, u)) : Q.mergeObjectSync(n, l); } get shape() { return this._def.shape(); } strict(e) { - return E.errToObj, new U({ + return S.errToObj, new U({ ...this._def, unknownKeys: "strict", ...e !== void 0 ? { errorMap: (r, n) => { - var a, s, i, c; - const u = (i = (s = (a = this._def).errorMap) === null || s === void 0 ? void 0 : s.call(a, r, n).message) !== null && i !== void 0 ? i : n.defaultError; + var o, a, i, c; + const l = (i = (a = (o = this._def).errorMap) === null || a === void 0 ? void 0 : a.call(o, r, n).message) !== null && i !== void 0 ? i : n.defaultError; return r.code === "unrecognized_keys" ? { - message: (c = E.errToObj(e).message) !== null && c !== void 0 ? c : u + message: (c = S.errToObj(e).message) !== null && c !== void 0 ? c : l } : { - message: u + message: l }; } } : {} @@ -6075,7 +6386,7 @@ class U extends N { ...this._def.shape(), ...e._def.shape() }), - typeName: P.ZodObject + typeName: A.ZodObject }); } // merge< @@ -6145,7 +6456,7 @@ class U extends N { } pick(e) { const r = {}; - return R.objectKeys(e).forEach((n) => { + return O.objectKeys(e).forEach((n) => { e[n] && this.shape[n] && (r[n] = this.shape[n]); }), new U({ ...this._def, @@ -6154,7 +6465,7 @@ class U extends N { } omit(e) { const r = {}; - return R.objectKeys(this.shape).forEach((n) => { + return O.objectKeys(this.shape).forEach((n) => { e[n] || (r[n] = this.shape[n]); }), new U({ ...this._def, @@ -6165,13 +6476,13 @@ class U extends N { * @deprecated */ deepPartial() { - return gt(this); + return bt(this); } partial(e) { const r = {}; - return R.objectKeys(this.shape).forEach((n) => { - const a = this.shape[n]; - e && !e[n] ? r[n] = a : r[n] = a.optional(); + return O.objectKeys(this.shape).forEach((n) => { + const o = this.shape[n]; + e && !e[n] ? r[n] = o : r[n] = o.optional(); }), new U({ ...this._def, shape: () => r @@ -6179,14 +6490,14 @@ class U extends N { } required(e) { const r = {}; - return R.objectKeys(this.shape).forEach((n) => { + return O.objectKeys(this.shape).forEach((n) => { if (e && !e[n]) r[n] = this.shape[n]; else { - let s = this.shape[n]; - for (; s instanceof Fe; ) - s = s._def.innerType; - r[n] = s; + let a = this.shape[n]; + for (; a instanceof Ne; ) + a = a._def.innerType; + r[n] = a; } }), new U({ ...this._def, @@ -6194,48 +6505,48 @@ class U extends N { }); } keyof() { - return ys(R.objectKeys(this.shape)); + return Fs(O.objectKeys(this.shape)); } } U.create = (t, e) => new U({ shape: () => t, unknownKeys: "strip", - catchall: Ue.create(), - typeName: P.ZodObject, + catchall: je.create(), + typeName: A.ZodObject, ...C(e) }); U.strictCreate = (t, e) => new U({ shape: () => t, unknownKeys: "strict", - catchall: Ue.create(), - typeName: P.ZodObject, + catchall: je.create(), + typeName: A.ZodObject, ...C(e) }); U.lazycreate = (t, e) => new U({ shape: t, unknownKeys: "strip", - catchall: Ue.create(), - typeName: P.ZodObject, + catchall: je.create(), + typeName: A.ZodObject, ...C(e) }); -class Zt extends N { +class Vt extends $ { _parse(e) { const { ctx: r } = this._processInputParams(e), n = this._def.options; - function a(s) { - for (const c of s) + function o(a) { + for (const c of a) if (c.result.status === "valid") return c.result; - for (const c of s) + for (const c of a) if (c.result.status === "dirty") return r.common.issues.push(...c.ctx.common.issues), c.result; - const i = s.map((c) => new xe(c.ctx.common.issues)); - return S(r, { - code: y.invalid_union, + const i = a.map((c) => new fe(c.ctx.common.issues)); + return b(r, { + code: g.invalid_union, unionErrors: i - }), A; + }), I; } if (r.common.async) - return Promise.all(n.map(async (s) => { + return Promise.all(n.map(async (a) => { const i = { ...r, common: { @@ -6245,76 +6556,76 @@ class Zt extends N { parent: null }; return { - result: await s._parseAsync({ + result: await a._parseAsync({ data: r.data, path: r.path, parent: i }), ctx: i }; - })).then(a); + })).then(o); { - let s; + let a; const i = []; - for (const u of n) { - const l = { + for (const l of n) { + const u = { ...r, common: { ...r.common, issues: [] }, parent: null - }, d = u._parseSync({ + }, d = l._parseSync({ data: r.data, path: r.path, - parent: l + parent: u }); if (d.status === "valid") return d; - d.status === "dirty" && !s && (s = { result: d, ctx: l }), l.common.issues.length && i.push(l.common.issues); + d.status === "dirty" && !a && (a = { result: d, ctx: u }), u.common.issues.length && i.push(u.common.issues); } - if (s) - return r.common.issues.push(...s.ctx.common.issues), s.result; - const c = i.map((u) => new xe(u)); - return S(r, { - code: y.invalid_union, + if (a) + return r.common.issues.push(...a.ctx.common.issues), a.result; + const c = i.map((l) => new fe(l)); + return b(r, { + code: g.invalid_union, unionErrors: c - }), A; + }), I; } } get options() { return this._def.options; } } -Zt.create = (t, e) => new Zt({ +Vt.create = (t, e) => new Vt({ options: t, - typeName: P.ZodUnion, + typeName: A.ZodUnion, ...C(e) }); -const cr = (t) => t instanceof Bt ? cr(t.schema) : t instanceof ke ? cr(t.innerType()) : t instanceof Ht ? [t.value] : t instanceof Ye ? t.options : t instanceof Vt ? Object.keys(t.enum) : t instanceof Wt ? cr(t._def.innerType) : t instanceof Ut ? [void 0] : t instanceof jt ? [null] : null; -class Mr extends N { +const Fe = (t) => t instanceof Kt ? Fe(t.schema) : t instanceof Ae ? Fe(t.innerType()) : t instanceof Yt ? [t.value] : t instanceof et ? t.options : t instanceof Jt ? O.objectValues(t.enum) : t instanceof Xt ? Fe(t._def.innerType) : t instanceof Bt ? [void 0] : t instanceof Ht ? [null] : t instanceof Ne ? [void 0, ...Fe(t.unwrap())] : t instanceof tt ? [null, ...Fe(t.unwrap())] : t instanceof zn || t instanceof er ? Fe(t.unwrap()) : t instanceof Qt ? Fe(t._def.innerType) : []; +class zr extends $ { _parse(e) { const { ctx: r } = this._processInputParams(e); - if (r.parsedType !== b.object) - return S(r, { - code: y.invalid_type, - expected: b.object, + if (r.parsedType !== w.object) + return b(r, { + code: g.invalid_type, + expected: w.object, received: r.parsedType - }), A; - const n = this.discriminator, a = r.data[n], s = this.optionsMap.get(a); - return s ? r.common.async ? s._parseAsync({ + }), I; + const n = this.discriminator, o = r.data[n], a = this.optionsMap.get(o); + return a ? r.common.async ? a._parseAsync({ data: r.data, path: r.path, parent: r - }) : s._parseSync({ + }) : a._parseSync({ data: r.data, path: r.path, parent: r - }) : (S(r, { - code: y.invalid_union_discriminator, + }) : (b(r, { + code: g.invalid_union_discriminator, options: Array.from(this.optionsMap.keys()), path: [n] - }), A); + }), I); } get discriminator() { return this._def.discriminator; @@ -6334,62 +6645,62 @@ class Mr extends N { * @param params */ static create(e, r, n) { - const a = /* @__PURE__ */ new Map(); - for (const s of r) { - const i = cr(s.shape[e]); - if (!i) + const o = /* @__PURE__ */ new Map(); + for (const a of r) { + const i = Fe(a.shape[e]); + if (!i.length) throw new Error(`A discriminator value for key \`${e}\` could not be extracted from all schema options`); for (const c of i) { - if (a.has(c)) + if (o.has(c)) throw new Error(`Discriminator property ${String(e)} has duplicate value ${String(c)}`); - a.set(c, s); + o.set(c, a); } } - return new Mr({ - typeName: P.ZodDiscriminatedUnion, + return new zr({ + typeName: A.ZodDiscriminatedUnion, discriminator: e, options: r, - optionsMap: a, + optionsMap: o, ...C(n) }); } } -function sn(t, e) { - const r = Ge(t), n = Ge(e); +function gn(t, e) { + const r = Ve(t), n = Ve(e); if (t === e) return { valid: !0, data: t }; - if (r === b.object && n === b.object) { - const a = R.objectKeys(e), s = R.objectKeys(t).filter((c) => a.indexOf(c) !== -1), i = { ...t, ...e }; - for (const c of s) { - const u = sn(t[c], e[c]); - if (!u.valid) + if (r === w.object && n === w.object) { + const o = O.objectKeys(e), a = O.objectKeys(t).filter((c) => o.indexOf(c) !== -1), i = { ...t, ...e }; + for (const c of a) { + const l = gn(t[c], e[c]); + if (!l.valid) return { valid: !1 }; - i[c] = u.data; + i[c] = l.data; } return { valid: !0, data: i }; - } else if (r === b.array && n === b.array) { + } else if (r === w.array && n === w.array) { if (t.length !== e.length) return { valid: !1 }; - const a = []; - for (let s = 0; s < t.length; s++) { - const i = t[s], c = e[s], u = sn(i, c); - if (!u.valid) + const o = []; + for (let a = 0; a < t.length; a++) { + const i = t[a], c = e[a], l = gn(i, c); + if (!l.valid) return { valid: !1 }; - a.push(u.data); + o.push(l.data); } - return { valid: !0, data: a }; + return { valid: !0, data: o }; } else - return r === b.date && n === b.date && +t == +e ? { valid: !0, data: t } : { valid: !1 }; + return r === w.date && n === w.date && +t == +e ? { valid: !0, data: t } : { valid: !1 }; } -class zt extends N { +class Wt extends $ { _parse(e) { - const { status: r, ctx: n } = this._processInputParams(e), a = (s, i) => { - if (nn(s) || nn(i)) - return A; - const c = sn(s.value, i.value); - return c.valid ? ((on(s) || on(i)) && r.dirty(), { status: r.value, value: c.data }) : (S(n, { - code: y.invalid_intersection_types - }), A); + const { status: r, ctx: n } = this._processInputParams(e), o = (a, i) => { + if (mn(a) || mn(i)) + return I; + const c = gn(a.value, i.value); + return c.valid ? ((hn(a) || hn(i)) && r.dirty(), { status: r.value, value: c.data }) : (b(n, { + code: g.invalid_intersection_types + }), I); }; return n.common.async ? Promise.all([ this._def.left._parseAsync({ @@ -6402,7 +6713,7 @@ class zt extends N { path: n.path, parent: n }) - ]).then(([s, i]) => a(s, i)) : a(this._def.left._parseSync({ + ]).then(([a, i]) => o(a, i)) : o(this._def.left._parseSync({ data: n.data, path: n.path, parent: n @@ -6413,41 +6724,41 @@ class zt extends N { })); } } -zt.create = (t, e, r) => new zt({ +Wt.create = (t, e, r) => new Wt({ left: t, right: e, - typeName: P.ZodIntersection, + typeName: A.ZodIntersection, ...C(r) }); -class Oe extends N { +class Oe extends $ { _parse(e) { const { status: r, ctx: n } = this._processInputParams(e); - if (n.parsedType !== b.array) - return S(n, { - code: y.invalid_type, - expected: b.array, + if (n.parsedType !== w.array) + return b(n, { + code: g.invalid_type, + expected: w.array, received: n.parsedType - }), A; + }), I; if (n.data.length < this._def.items.length) - return S(n, { - code: y.too_small, + return b(n, { + code: g.too_small, minimum: this._def.items.length, inclusive: !0, exact: !1, type: "array" - }), A; - !this._def.rest && n.data.length > this._def.items.length && (S(n, { - code: y.too_big, + }), I; + !this._def.rest && n.data.length > this._def.items.length && (b(n, { + code: g.too_big, maximum: this._def.items.length, inclusive: !0, exact: !1, type: "array" }), r.dirty()); - const s = [...n.data].map((i, c) => { - const u = this._def.items[c] || this._def.rest; - return u ? u._parse(new Ne(n, i, n.path, c)) : null; + const a = [...n.data].map((i, c) => { + const l = this._def.items[c] || this._def.rest; + return l ? l._parse(new Re(n, i, n.path, c)) : null; }).filter((i) => !!i); - return n.common.async ? Promise.all(s).then((i) => J.mergeArray(r, i)) : J.mergeArray(r, s); + return n.common.async ? Promise.all(a).then((i) => Q.mergeArray(r, i)) : Q.mergeArray(r, a); } get items() { return this._def.items; @@ -6464,12 +6775,12 @@ Oe.create = (t, e) => { throw new Error("You must pass an array of schemas to z.tuple([ ... ])"); return new Oe({ items: t, - typeName: P.ZodTuple, + typeName: A.ZodTuple, rest: null, ...C(e) }); }; -class Gt extends N { +class qt extends $ { get keySchema() { return this._def.keyType; } @@ -6478,38 +6789,39 @@ class Gt extends N { } _parse(e) { const { status: r, ctx: n } = this._processInputParams(e); - if (n.parsedType !== b.object) - return S(n, { - code: y.invalid_type, - expected: b.object, + if (n.parsedType !== w.object) + return b(n, { + code: g.invalid_type, + expected: w.object, received: n.parsedType - }), A; - const a = [], s = this._def.keyType, i = this._def.valueType; + }), I; + const o = [], a = this._def.keyType, i = this._def.valueType; for (const c in n.data) - a.push({ - key: s._parse(new Ne(n, c, n.path, c)), - value: i._parse(new Ne(n, n.data[c], n.path, c)) + o.push({ + key: a._parse(new Re(n, c, n.path, c)), + value: i._parse(new Re(n, n.data[c], n.path, c)), + alwaysSet: c in n.data }); - return n.common.async ? J.mergeObjectAsync(r, a) : J.mergeObjectSync(r, a); + return n.common.async ? Q.mergeObjectAsync(r, o) : Q.mergeObjectSync(r, o); } get element() { return this._def.valueType; } static create(e, r, n) { - return r instanceof N ? new Gt({ + return r instanceof $ ? new qt({ keyType: e, valueType: r, - typeName: P.ZodRecord, + typeName: A.ZodRecord, ...C(n) - }) : new Gt({ - keyType: Ee.create(), + }) : new qt({ + keyType: ke.create(), valueType: e, - typeName: P.ZodRecord, + typeName: A.ZodRecord, ...C(r) }); } } -class br extends N { +class Ir extends $ { get keySchema() { return this._def.keyType; } @@ -6518,93 +6830,93 @@ class br extends N { } _parse(e) { const { status: r, ctx: n } = this._processInputParams(e); - if (n.parsedType !== b.map) - return S(n, { - code: y.invalid_type, - expected: b.map, + if (n.parsedType !== w.map) + return b(n, { + code: g.invalid_type, + expected: w.map, received: n.parsedType - }), A; - const a = this._def.keyType, s = this._def.valueType, i = [...n.data.entries()].map(([c, u], l) => ({ - key: a._parse(new Ne(n, c, n.path, [l, "key"])), - value: s._parse(new Ne(n, u, n.path, [l, "value"])) + }), I; + const o = this._def.keyType, a = this._def.valueType, i = [...n.data.entries()].map(([c, l], u) => ({ + key: o._parse(new Re(n, c, n.path, [u, "key"])), + value: a._parse(new Re(n, l, n.path, [u, "value"])) })); if (n.common.async) { const c = /* @__PURE__ */ new Map(); return Promise.resolve().then(async () => { - for (const u of i) { - const l = await u.key, d = await u.value; - if (l.status === "aborted" || d.status === "aborted") - return A; - (l.status === "dirty" || d.status === "dirty") && r.dirty(), c.set(l.value, d.value); + for (const l of i) { + const u = await l.key, d = await l.value; + if (u.status === "aborted" || d.status === "aborted") + return I; + (u.status === "dirty" || d.status === "dirty") && r.dirty(), c.set(u.value, d.value); } return { status: r.value, value: c }; }); } else { const c = /* @__PURE__ */ new Map(); - for (const u of i) { - const l = u.key, d = u.value; - if (l.status === "aborted" || d.status === "aborted") - return A; - (l.status === "dirty" || d.status === "dirty") && r.dirty(), c.set(l.value, d.value); + for (const l of i) { + const u = l.key, d = l.value; + if (u.status === "aborted" || d.status === "aborted") + return I; + (u.status === "dirty" || d.status === "dirty") && r.dirty(), c.set(u.value, d.value); } return { status: r.value, value: c }; } } } -br.create = (t, e, r) => new br({ +Ir.create = (t, e, r) => new Ir({ valueType: e, keyType: t, - typeName: P.ZodMap, + typeName: A.ZodMap, ...C(r) }); -class ut extends N { +class ht extends $ { _parse(e) { const { status: r, ctx: n } = this._processInputParams(e); - if (n.parsedType !== b.set) - return S(n, { - code: y.invalid_type, - expected: b.set, + if (n.parsedType !== w.set) + return b(n, { + code: g.invalid_type, + expected: w.set, received: n.parsedType - }), A; - const a = this._def; - a.minSize !== null && n.data.size < a.minSize.value && (S(n, { - code: y.too_small, - minimum: a.minSize.value, + }), I; + const o = this._def; + o.minSize !== null && n.data.size < o.minSize.value && (b(n, { + code: g.too_small, + minimum: o.minSize.value, type: "set", inclusive: !0, exact: !1, - message: a.minSize.message - }), r.dirty()), a.maxSize !== null && n.data.size > a.maxSize.value && (S(n, { - code: y.too_big, - maximum: a.maxSize.value, + message: o.minSize.message + }), r.dirty()), o.maxSize !== null && n.data.size > o.maxSize.value && (b(n, { + code: g.too_big, + maximum: o.maxSize.value, type: "set", inclusive: !0, exact: !1, - message: a.maxSize.message + message: o.maxSize.message }), r.dirty()); - const s = this._def.valueType; - function i(u) { - const l = /* @__PURE__ */ new Set(); - for (const d of u) { + const a = this._def.valueType; + function i(l) { + const u = /* @__PURE__ */ new Set(); + for (const d of l) { if (d.status === "aborted") - return A; - d.status === "dirty" && r.dirty(), l.add(d.value); + return I; + d.status === "dirty" && r.dirty(), u.add(d.value); } - return { status: r.value, value: l }; + return { status: r.value, value: u }; } - const c = [...n.data.values()].map((u, l) => s._parse(new Ne(n, u, n.path, l))); - return n.common.async ? Promise.all(c).then((u) => i(u)) : i(c); + const c = [...n.data.values()].map((l, u) => a._parse(new Re(n, l, n.path, u))); + return n.common.async ? Promise.all(c).then((l) => i(l)) : i(c); } min(e, r) { - return new ut({ + return new ht({ ...this._def, - minSize: { value: e, message: E.toString(r) } + minSize: { value: e, message: S.toString(r) } }); } max(e, r) { - return new ut({ + return new ht({ ...this._def, - maxSize: { value: e, message: E.toString(r) } + maxSize: { value: e, message: S.toString(r) } }); } size(e, r) { @@ -6614,77 +6926,77 @@ class ut extends N { return this.min(1, e); } } -ut.create = (t, e) => new ut({ +ht.create = (t, e) => new ht({ valueType: t, minSize: null, maxSize: null, - typeName: P.ZodSet, + typeName: A.ZodSet, ...C(e) }); -class _t extends N { +class kt extends $ { constructor() { super(...arguments), this.validate = this.implement; } _parse(e) { const { ctx: r } = this._processInputParams(e); - if (r.parsedType !== b.function) - return S(r, { - code: y.invalid_type, - expected: b.function, + if (r.parsedType !== w.function) + return b(r, { + code: g.invalid_type, + expected: w.function, received: r.parsedType - }), A; - function n(c, u) { - return yr({ + }), I; + function n(c, l) { + return kr({ data: c, path: r.path, errorMaps: [ r.common.contextualErrorMap, r.schemaErrorMap, - hr(), - Lt - ].filter((l) => !!l), + xr(), + At + ].filter((u) => !!u), issueData: { - code: y.invalid_arguments, - argumentsError: u + code: g.invalid_arguments, + argumentsError: l } }); } - function a(c, u) { - return yr({ + function o(c, l) { + return kr({ data: c, path: r.path, errorMaps: [ r.common.contextualErrorMap, r.schemaErrorMap, - hr(), - Lt - ].filter((l) => !!l), + xr(), + At + ].filter((u) => !!u), issueData: { - code: y.invalid_return_type, - returnTypeError: u + code: g.invalid_return_type, + returnTypeError: l } }); } - const s = { errorMap: r.common.contextualErrorMap }, i = r.data; - if (this._def.returns instanceof xt) { + const a = { errorMap: r.common.contextualErrorMap }, i = r.data; + if (this._def.returns instanceof Ct) { const c = this; - return re(async function(...u) { - const l = new xe([]), d = await c._def.args.parseAsync(u, s).catch((p) => { - throw l.addIssue(n(u, p)), l; + return ae(async function(...l) { + const u = new fe([]), d = await c._def.args.parseAsync(l, a).catch((p) => { + throw u.addIssue(n(l, p)), u; }), f = await Reflect.apply(i, this, d); - return await c._def.returns._def.type.parseAsync(f, s).catch((p) => { - throw l.addIssue(a(f, p)), l; + return await c._def.returns._def.type.parseAsync(f, a).catch((p) => { + throw u.addIssue(o(f, p)), u; }); }); } else { const c = this; - return re(function(...u) { - const l = c._def.args.safeParse(u, s); - if (!l.success) - throw new xe([n(u, l.error)]); - const d = Reflect.apply(i, this, l.data), f = c._def.returns.safeParse(d, s); + return ae(function(...l) { + const u = c._def.args.safeParse(l, a); + if (!u.success) + throw new fe([n(l, u.error)]); + const d = Reflect.apply(i, this, u.data), f = c._def.returns.safeParse(d, a); if (!f.success) - throw new xe([a(d, f.error)]); + throw new fe([o(d, f.error)]); return f.data; }); } @@ -6696,13 +7008,13 @@ class _t extends N { return this._def.returns; } args(...e) { - return new _t({ + return new kt({ ...this._def, - args: Oe.create(e).rest(at.create()) + args: Oe.create(e).rest(ft.create()) }); } returns(e) { - return new _t({ + return new kt({ ...this._def, returns: e }); @@ -6714,15 +7026,15 @@ class _t extends N { return this.parse(e); } static create(e, r, n) { - return new _t({ - args: e || Oe.create([]).rest(at.create()), - returns: r || at.create(), - typeName: P.ZodFunction, + return new kt({ + args: e || Oe.create([]).rest(ft.create()), + returns: r || ft.create(), + typeName: A.ZodFunction, ...C(n) }); } } -class Bt extends N { +class Kt extends $ { get schema() { return this._def.getter(); } @@ -6731,20 +7043,20 @@ class Bt extends N { return this._def.getter()._parse({ data: r.data, path: r.path, parent: r }); } } -Bt.create = (t, e) => new Bt({ +Kt.create = (t, e) => new Kt({ getter: t, - typeName: P.ZodLazy, + typeName: A.ZodLazy, ...C(e) }); -class Ht extends N { +class Yt extends $ { _parse(e) { if (e.data !== this._def.value) { const r = this._getOrReturnCtx(e); - return S(r, { + return b(r, { received: r.data, - code: y.invalid_literal, + code: g.invalid_literal, expected: this._def.value - }), A; + }), I; } return { status: "valid", value: e.data }; } @@ -6752,37 +7064,40 @@ class Ht extends N { return this._def.value; } } -Ht.create = (t, e) => new Ht({ +Yt.create = (t, e) => new Yt({ value: t, - typeName: P.ZodLiteral, + typeName: A.ZodLiteral, ...C(e) }); -function ys(t, e) { - return new Ye({ +function Fs(t, e) { + return new et({ values: t, - typeName: P.ZodEnum, + typeName: A.ZodEnum, ...C(e) }); } -class Ye extends N { +class et extends $ { + constructor() { + super(...arguments), Lt.set(this, void 0); + } _parse(e) { if (typeof e.data != "string") { const r = this._getOrReturnCtx(e), n = this._def.values; - return S(r, { - expected: R.joinValues(n), + return b(r, { + expected: O.joinValues(n), received: r.parsedType, - code: y.invalid_type - }), A; + code: g.invalid_type + }), I; } - if (this._def.values.indexOf(e.data) === -1) { + if (Pr(this, Lt) || Rs(this, Lt, new Set(this._def.values)), !Pr(this, Lt).has(e.data)) { const r = this._getOrReturnCtx(e), n = this._def.values; - return S(r, { + return b(r, { received: r.data, - code: y.invalid_enum_value, + code: g.invalid_enum_value, options: n - }), A; + }), I; } - return re(e.data); + return ae(e.data); } get options() { return this._def.values; @@ -6805,105 +7120,125 @@ class Ye extends N { e[r] = r; return e; } - extract(e) { - return Ye.create(e); + extract(e, r = this._def) { + return et.create(e, { + ...this._def, + ...r + }); } - exclude(e) { - return Ye.create(this.options.filter((r) => !e.includes(r))); + exclude(e, r = this._def) { + return et.create(this.options.filter((n) => !e.includes(n)), { + ...this._def, + ...r + }); } } -Ye.create = ys; -class Vt extends N { +Lt = /* @__PURE__ */ new WeakMap(); +et.create = Fs; +class Jt extends $ { + constructor() { + super(...arguments), Ft.set(this, void 0); + } _parse(e) { - const r = R.getValidEnumValues(this._def.values), n = this._getOrReturnCtx(e); - if (n.parsedType !== b.string && n.parsedType !== b.number) { - const a = R.objectValues(r); - return S(n, { - expected: R.joinValues(a), + const r = O.getValidEnumValues(this._def.values), n = this._getOrReturnCtx(e); + if (n.parsedType !== w.string && n.parsedType !== w.number) { + const o = O.objectValues(r); + return b(n, { + expected: O.joinValues(o), received: n.parsedType, - code: y.invalid_type - }), A; + code: g.invalid_type + }), I; } - if (r.indexOf(e.data) === -1) { - const a = R.objectValues(r); - return S(n, { + if (Pr(this, Ft) || Rs(this, Ft, new Set(O.getValidEnumValues(this._def.values))), !Pr(this, Ft).has(e.data)) { + const o = O.objectValues(r); + return b(n, { received: n.data, - code: y.invalid_enum_value, - options: a - }), A; + code: g.invalid_enum_value, + options: o + }), I; } - return re(e.data); + return ae(e.data); } get enum() { return this._def.values; } } -Vt.create = (t, e) => new Vt({ +Ft = /* @__PURE__ */ new WeakMap(); +Jt.create = (t, e) => new Jt({ values: t, - typeName: P.ZodNativeEnum, + typeName: A.ZodNativeEnum, ...C(e) }); -class xt extends N { +class Ct extends $ { unwrap() { return this._def.type; } _parse(e) { const { ctx: r } = this._processInputParams(e); - if (r.parsedType !== b.promise && r.common.async === !1) - return S(r, { - code: y.invalid_type, - expected: b.promise, + if (r.parsedType !== w.promise && r.common.async === !1) + return b(r, { + code: g.invalid_type, + expected: w.promise, received: r.parsedType - }), A; - const n = r.parsedType === b.promise ? r.data : Promise.resolve(r.data); - return re(n.then((a) => this._def.type.parseAsync(a, { + }), I; + const n = r.parsedType === w.promise ? r.data : Promise.resolve(r.data); + return ae(n.then((o) => this._def.type.parseAsync(o, { path: r.path, errorMap: r.common.contextualErrorMap }))); } } -xt.create = (t, e) => new xt({ +Ct.create = (t, e) => new Ct({ type: t, - typeName: P.ZodPromise, + typeName: A.ZodPromise, ...C(e) }); -class ke extends N { +class Ae extends $ { innerType() { return this._def.schema; } sourceType() { - return this._def.schema._def.typeName === P.ZodEffects ? this._def.schema.sourceType() : this._def.schema; + return this._def.schema._def.typeName === A.ZodEffects ? this._def.schema.sourceType() : this._def.schema; } _parse(e) { - const { status: r, ctx: n } = this._processInputParams(e), a = this._def.effect || null, s = { + const { status: r, ctx: n } = this._processInputParams(e), o = this._def.effect || null, a = { addIssue: (i) => { - S(n, i), i.fatal ? r.abort() : r.dirty(); + b(n, i), i.fatal ? r.abort() : r.dirty(); }, get path() { return n.path; } }; - if (s.addIssue = s.addIssue.bind(s), a.type === "preprocess") { - const i = a.transform(n.data, s); - return n.common.issues.length ? { - status: "dirty", - value: n.data - } : n.common.async ? Promise.resolve(i).then((c) => this._def.schema._parseAsync({ - data: c, - path: n.path, - parent: n - })) : this._def.schema._parseSync({ - data: i, - path: n.path, - parent: n - }); + if (a.addIssue = a.addIssue.bind(a), o.type === "preprocess") { + const i = o.transform(n.data, a); + if (n.common.async) + return Promise.resolve(i).then(async (c) => { + if (r.value === "aborted") + return I; + const l = await this._def.schema._parseAsync({ + data: c, + path: n.path, + parent: n + }); + return l.status === "aborted" ? I : l.status === "dirty" || r.value === "dirty" ? Et(l.value) : l; + }); + { + if (r.value === "aborted") + return I; + const c = this._def.schema._parseSync({ + data: i, + path: n.path, + parent: n + }); + return c.status === "aborted" ? I : c.status === "dirty" || r.value === "dirty" ? Et(c.value) : c; + } } - if (a.type === "refinement") { + if (o.type === "refinement") { const i = (c) => { - const u = a.refinement(c, s); + const l = o.refinement(c, a); if (n.common.async) - return Promise.resolve(u); - if (u instanceof Promise) + return Promise.resolve(l); + if (l instanceof Promise) throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead."); return c; }; @@ -6913,71 +7248,71 @@ class ke extends N { path: n.path, parent: n }); - return c.status === "aborted" ? A : (c.status === "dirty" && r.dirty(), i(c.value), { status: r.value, value: c.value }); + return c.status === "aborted" ? I : (c.status === "dirty" && r.dirty(), i(c.value), { status: r.value, value: c.value }); } else - return this._def.schema._parseAsync({ data: n.data, path: n.path, parent: n }).then((c) => c.status === "aborted" ? A : (c.status === "dirty" && r.dirty(), i(c.value).then(() => ({ status: r.value, value: c.value })))); + return this._def.schema._parseAsync({ data: n.data, path: n.path, parent: n }).then((c) => c.status === "aborted" ? I : (c.status === "dirty" && r.dirty(), i(c.value).then(() => ({ status: r.value, value: c.value })))); } - if (a.type === "transform") + if (o.type === "transform") if (n.common.async === !1) { const i = this._def.schema._parseSync({ data: n.data, path: n.path, parent: n }); - if (!Ft(i)) + if (!Zt(i)) return i; - const c = a.transform(i.value, s); + const c = o.transform(i.value, a); if (c instanceof Promise) throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead."); return { status: r.value, value: c }; } else - return this._def.schema._parseAsync({ data: n.data, path: n.path, parent: n }).then((i) => Ft(i) ? Promise.resolve(a.transform(i.value, s)).then((c) => ({ status: r.value, value: c })) : i); - R.assertNever(a); + return this._def.schema._parseAsync({ data: n.data, path: n.path, parent: n }).then((i) => Zt(i) ? Promise.resolve(o.transform(i.value, a)).then((c) => ({ status: r.value, value: c })) : i); + O.assertNever(o); } } -ke.create = (t, e, r) => new ke({ +Ae.create = (t, e, r) => new Ae({ schema: t, - typeName: P.ZodEffects, + typeName: A.ZodEffects, effect: e, ...C(r) }); -ke.createWithPreprocess = (t, e, r) => new ke({ +Ae.createWithPreprocess = (t, e, r) => new Ae({ schema: e, effect: { type: "preprocess", transform: t }, - typeName: P.ZodEffects, + typeName: A.ZodEffects, ...C(r) }); -class Fe extends N { +class Ne extends $ { _parse(e) { - return this._getType(e) === b.undefined ? re(void 0) : this._def.innerType._parse(e); + return this._getType(e) === w.undefined ? ae(void 0) : this._def.innerType._parse(e); } unwrap() { return this._def.innerType; } } -Fe.create = (t, e) => new Fe({ +Ne.create = (t, e) => new Ne({ innerType: t, - typeName: P.ZodOptional, + typeName: A.ZodOptional, ...C(e) }); -class dt extends N { +class tt extends $ { _parse(e) { - return this._getType(e) === b.null ? re(null) : this._def.innerType._parse(e); + return this._getType(e) === w.null ? ae(null) : this._def.innerType._parse(e); } unwrap() { return this._def.innerType; } } -dt.create = (t, e) => new dt({ +tt.create = (t, e) => new tt({ innerType: t, - typeName: P.ZodNullable, + typeName: A.ZodNullable, ...C(e) }); -class Wt extends N { +class Xt extends $ { _parse(e) { const { ctx: r } = this._processInputParams(e); let n = r.data; - return r.parsedType === b.undefined && (n = this._def.defaultValue()), this._def.innerType._parse({ + return r.parsedType === w.undefined && (n = this._def.defaultValue()), this._def.innerType._parse({ data: n, path: r.path, parent: r @@ -6987,13 +7322,13 @@ class Wt extends N { return this._def.innerType; } } -Wt.create = (t, e) => new Wt({ +Xt.create = (t, e) => new Xt({ innerType: t, - typeName: P.ZodDefault, + typeName: A.ZodDefault, defaultValue: typeof e.default == "function" ? e.default : () => e.default, ...C(e) }); -class wr extends N { +class Qt extends $ { _parse(e) { const { ctx: r } = this._processInputParams(e), n = { ...r, @@ -7001,26 +7336,26 @@ class wr extends N { ...r.common, issues: [] } - }, a = this._def.innerType._parse({ + }, o = this._def.innerType._parse({ data: n.data, path: n.path, parent: { ...n } }); - return gr(a) ? a.then((s) => ({ + return zt(o) ? o.then((a) => ({ status: "valid", - value: s.status === "valid" ? s.value : this._def.catchValue({ + value: a.status === "valid" ? a.value : this._def.catchValue({ get error() { - return new xe(n.common.issues); + return new fe(n.common.issues); }, input: n.data }) })) : { status: "valid", - value: a.status === "valid" ? a.value : this._def.catchValue({ + value: o.status === "valid" ? o.value : this._def.catchValue({ get error() { - return new xe(n.common.issues); + return new fe(n.common.issues); }, input: n.data }) @@ -7030,31 +7365,31 @@ class wr extends N { return this._def.innerType; } } -wr.create = (t, e) => new wr({ +Qt.create = (t, e) => new Qt({ innerType: t, - typeName: P.ZodCatch, + typeName: A.ZodCatch, catchValue: typeof e.catch == "function" ? e.catch : () => e.catch, ...C(e) }); -class Sr extends N { +class Cr extends $ { _parse(e) { - if (this._getType(e) !== b.nan) { + if (this._getType(e) !== w.nan) { const n = this._getOrReturnCtx(e); - return S(n, { - code: y.invalid_type, - expected: b.nan, + return b(n, { + code: g.invalid_type, + expected: w.nan, received: n.parsedType - }), A; + }), I; } return { status: "valid", value: e.data }; } } -Sr.create = (t) => new Sr({ - typeName: P.ZodNaN, +Cr.create = (t) => new Cr({ + typeName: A.ZodNaN, ...C(t) }); -const lc = Symbol("zod_brand"); -class gs extends N { +const Bc = Symbol("zod_brand"); +class zn extends $ { _parse(e) { const { ctx: r } = this._processInputParams(e), n = r.data; return this._def.type._parse({ @@ -7067,218 +7402,238 @@ class gs extends N { return this._def.type; } } -class Qt extends N { +class ar extends $ { _parse(e) { const { status: r, ctx: n } = this._processInputParams(e); if (n.common.async) return (async () => { - const s = await this._def.in._parseAsync({ + const a = await this._def.in._parseAsync({ data: n.data, path: n.path, parent: n }); - return s.status === "aborted" ? A : s.status === "dirty" ? (r.dirty(), hs(s.value)) : this._def.out._parseAsync({ - data: s.value, + return a.status === "aborted" ? I : a.status === "dirty" ? (r.dirty(), Et(a.value)) : this._def.out._parseAsync({ + data: a.value, path: n.path, parent: n }); })(); { - const a = this._def.in._parseSync({ + const o = this._def.in._parseSync({ data: n.data, path: n.path, parent: n }); - return a.status === "aborted" ? A : a.status === "dirty" ? (r.dirty(), { + return o.status === "aborted" ? I : o.status === "dirty" ? (r.dirty(), { status: "dirty", - value: a.value + value: o.value }) : this._def.out._parseSync({ - data: a.value, + data: o.value, path: n.path, parent: n }); } } static create(e, r) { - return new Qt({ + return new ar({ in: e, out: r, - typeName: P.ZodPipeline + typeName: A.ZodPipeline }); } } -class Er extends N { +class er extends $ { _parse(e) { - const r = this._def.innerType._parse(e); - return Ft(r) && (r.value = Object.freeze(r.value)), r; + const r = this._def.innerType._parse(e), n = (o) => (Zt(o) && (o.value = Object.freeze(o.value)), o); + return zt(r) ? r.then((o) => n(o)) : n(r); + } + unwrap() { + return this._def.innerType; } } -Er.create = (t, e) => new Er({ +er.create = (t, e) => new er({ innerType: t, - typeName: P.ZodReadonly, + typeName: A.ZodReadonly, ...C(e) }); -const vs = (t, e = {}, r) => t ? Et.create().superRefine((n, a) => { - var s, i; - if (!t(n)) { - const c = typeof e == "function" ? e(n) : typeof e == "string" ? { message: e } : e, u = (i = (s = c.fatal) !== null && s !== void 0 ? s : r) !== null && i !== void 0 ? i : !0, l = typeof c == "string" ? { message: c } : c; - a.addIssue({ code: "custom", ...l, fatal: u }); - } -}) : Et.create(), uc = { +function Ds(t, e = {}, r) { + return t ? It.create().superRefine((n, o) => { + var a, i; + if (!t(n)) { + const c = typeof e == "function" ? e(n) : typeof e == "string" ? { message: e } : e, l = (i = (a = c.fatal) !== null && a !== void 0 ? a : r) !== null && i !== void 0 ? i : !0, u = typeof c == "string" ? { message: c } : c; + o.addIssue({ code: "custom", ...u, fatal: l }); + } + }) : It.create(); +} +const Hc = { object: U.lazycreate }; -var P; +var A; (function(t) { t.ZodString = "ZodString", t.ZodNumber = "ZodNumber", t.ZodNaN = "ZodNaN", t.ZodBigInt = "ZodBigInt", t.ZodBoolean = "ZodBoolean", t.ZodDate = "ZodDate", t.ZodSymbol = "ZodSymbol", t.ZodUndefined = "ZodUndefined", t.ZodNull = "ZodNull", t.ZodAny = "ZodAny", t.ZodUnknown = "ZodUnknown", t.ZodNever = "ZodNever", t.ZodVoid = "ZodVoid", t.ZodArray = "ZodArray", t.ZodObject = "ZodObject", t.ZodUnion = "ZodUnion", t.ZodDiscriminatedUnion = "ZodDiscriminatedUnion", t.ZodIntersection = "ZodIntersection", t.ZodTuple = "ZodTuple", t.ZodRecord = "ZodRecord", t.ZodMap = "ZodMap", t.ZodSet = "ZodSet", t.ZodFunction = "ZodFunction", t.ZodLazy = "ZodLazy", t.ZodLiteral = "ZodLiteral", t.ZodEnum = "ZodEnum", t.ZodEffects = "ZodEffects", t.ZodNativeEnum = "ZodNativeEnum", t.ZodOptional = "ZodOptional", t.ZodNullable = "ZodNullable", t.ZodDefault = "ZodDefault", t.ZodCatch = "ZodCatch", t.ZodPromise = "ZodPromise", t.ZodBranded = "ZodBranded", t.ZodPipeline = "ZodPipeline", t.ZodReadonly = "ZodReadonly"; -})(P || (P = {})); -const dc = (t, e = { +})(A || (A = {})); +const Vc = (t, e = { message: `Input not instance of ${t.name}` -}) => vs((r) => r instanceof t, e), _s = Ee.create, bs = qe.create, fc = Sr.create, pc = Ke.create, ws = Dt.create, mc = lt.create, hc = vr.create, yc = Ut.create, gc = jt.create, vc = Et.create, _c = at.create, bc = Ue.create, wc = _r.create, Sc = Pe.create, Ec = U.create, xc = U.strictCreate, Pc = Zt.create, kc = Mr.create, Tc = zt.create, Ic = Oe.create, Ac = Gt.create, Cc = br.create, $c = ut.create, Nc = _t.create, Oc = Bt.create, Rc = Ht.create, Mc = Ye.create, Lc = Vt.create, Fc = xt.create, oo = ke.create, Dc = Fe.create, Uc = dt.create, jc = ke.createWithPreprocess, Zc = Qt.create, zc = () => _s().optional(), Gc = () => bs().optional(), Bc = () => ws().optional(), Hc = { - string: (t) => Ee.create({ ...t, coerce: !0 }), - number: (t) => qe.create({ ...t, coerce: !0 }), - boolean: (t) => Dt.create({ +}) => Ds((r) => r instanceof t, e), Us = ke.create, js = Xe.create, Wc = Cr.create, qc = Qe.create, Zs = Gt.create, Kc = mt.create, Yc = Tr.create, Jc = Bt.create, Xc = Ht.create, Qc = It.create, el = ft.create, tl = je.create, rl = Ar.create, nl = Te.create, ol = U.create, sl = U.strictCreate, al = Vt.create, il = zr.create, cl = Wt.create, ll = Oe.create, ul = qt.create, dl = Ir.create, fl = ht.create, pl = kt.create, ml = Kt.create, hl = Yt.create, gl = et.create, yl = Jt.create, vl = Ct.create, bo = Ae.create, _l = Ne.create, bl = tt.create, wl = Ae.createWithPreprocess, El = ar.create, Sl = () => Us().optional(), xl = () => js().optional(), kl = () => Zs().optional(), Pl = { + string: (t) => ke.create({ ...t, coerce: !0 }), + number: (t) => Xe.create({ ...t, coerce: !0 }), + boolean: (t) => Gt.create({ ...t, coerce: !0 }), - bigint: (t) => Ke.create({ ...t, coerce: !0 }), - date: (t) => lt.create({ ...t, coerce: !0 }) -}, Vc = A; -var V = /* @__PURE__ */ Object.freeze({ + bigint: (t) => Qe.create({ ...t, coerce: !0 }), + date: (t) => mt.create({ ...t, coerce: !0 }) +}, Tl = I; +var W = /* @__PURE__ */ Object.freeze({ __proto__: null, - defaultErrorMap: Lt, - setErrorMap: Yi, - getErrorMap: hr, - makeIssue: yr, - EMPTY_PATH: Ji, - addIssueToContext: S, - ParseStatus: J, - INVALID: A, - DIRTY: hs, - OK: re, - isAborted: nn, - isDirty: on, - isValid: Ft, - isAsync: gr, + defaultErrorMap: At, + setErrorMap: Tc, + getErrorMap: xr, + makeIssue: kr, + EMPTY_PATH: Ac, + addIssueToContext: b, + ParseStatus: Q, + INVALID: I, + DIRTY: Et, + OK: ae, + isAborted: mn, + isDirty: hn, + isValid: Zt, + isAsync: zt, get util() { - return R; + return O; }, get objectUtil() { - return rn; + return pn; }, - ZodParsedType: b, - getParsedType: Ge, - ZodType: N, - ZodString: Ee, - ZodNumber: qe, - ZodBigInt: Ke, - ZodBoolean: Dt, - ZodDate: lt, - ZodSymbol: vr, - ZodUndefined: Ut, - ZodNull: jt, - ZodAny: Et, - ZodUnknown: at, - ZodNever: Ue, - ZodVoid: _r, - ZodArray: Pe, + ZodParsedType: w, + getParsedType: Ve, + ZodType: $, + datetimeRegex: Ls, + ZodString: ke, + ZodNumber: Xe, + ZodBigInt: Qe, + ZodBoolean: Gt, + ZodDate: mt, + ZodSymbol: Tr, + ZodUndefined: Bt, + ZodNull: Ht, + ZodAny: It, + ZodUnknown: ft, + ZodNever: je, + ZodVoid: Ar, + ZodArray: Te, ZodObject: U, - ZodUnion: Zt, - ZodDiscriminatedUnion: Mr, - ZodIntersection: zt, + ZodUnion: Vt, + ZodDiscriminatedUnion: zr, + ZodIntersection: Wt, ZodTuple: Oe, - ZodRecord: Gt, - ZodMap: br, - ZodSet: ut, - ZodFunction: _t, - ZodLazy: Bt, - ZodLiteral: Ht, - ZodEnum: Ye, - ZodNativeEnum: Vt, - ZodPromise: xt, - ZodEffects: ke, - ZodTransformer: ke, - ZodOptional: Fe, - ZodNullable: dt, - ZodDefault: Wt, - ZodCatch: wr, - ZodNaN: Sr, - BRAND: lc, - ZodBranded: gs, - ZodPipeline: Qt, - ZodReadonly: Er, - custom: vs, - Schema: N, - ZodSchema: N, - late: uc, + ZodRecord: qt, + ZodMap: Ir, + ZodSet: ht, + ZodFunction: kt, + ZodLazy: Kt, + ZodLiteral: Yt, + ZodEnum: et, + ZodNativeEnum: Jt, + ZodPromise: Ct, + ZodEffects: Ae, + ZodTransformer: Ae, + ZodOptional: Ne, + ZodNullable: tt, + ZodDefault: Xt, + ZodCatch: Qt, + ZodNaN: Cr, + BRAND: Bc, + ZodBranded: zn, + ZodPipeline: ar, + ZodReadonly: er, + custom: Ds, + Schema: $, + ZodSchema: $, + late: Hc, get ZodFirstPartyTypeKind() { - return P; + return A; }, - coerce: Hc, - any: vc, - array: Sc, - bigint: pc, - boolean: ws, - date: mc, - discriminatedUnion: kc, - effect: oo, - enum: Mc, - function: Nc, - instanceof: dc, - intersection: Tc, - lazy: Oc, - literal: Rc, - map: Cc, - nan: fc, - nativeEnum: Lc, - never: bc, - null: gc, - nullable: Uc, - number: bs, - object: Ec, - oboolean: Bc, - onumber: Gc, - optional: Dc, - ostring: zc, - pipeline: Zc, - preprocess: jc, - promise: Fc, - record: Ac, - set: $c, - strictObject: xc, - string: _s, - symbol: hc, - transformer: oo, - tuple: Ic, - undefined: yc, - union: Pc, - unknown: _c, - void: wc, - NEVER: Vc, - ZodIssueCode: y, - quotelessJson: Ki, - ZodError: xe + coerce: Pl, + any: Qc, + array: nl, + bigint: qc, + boolean: Zs, + date: Kc, + discriminatedUnion: il, + effect: bo, + enum: gl, + function: pl, + instanceof: Vc, + intersection: cl, + lazy: ml, + literal: hl, + map: dl, + nan: Wc, + nativeEnum: yl, + never: tl, + null: Xc, + nullable: bl, + number: js, + object: ol, + oboolean: kl, + onumber: xl, + optional: _l, + ostring: Sl, + pipeline: El, + preprocess: wl, + promise: vl, + record: ul, + set: fl, + strictObject: sl, + string: Us, + symbol: Yc, + transformer: bo, + tuple: ll, + undefined: Jc, + union: al, + unknown: el, + void: rl, + NEVER: Tl, + ZodIssueCode: g, + quotelessJson: Pc, + ZodError: fe }); -const Wc = V.object({ - width: V.number().positive(), - height: V.number().positive() +const Al = W.object({ + width: W.number().positive(), + height: W.number().positive() }); -function qc(t, e, r, n) { - const a = document.createElement("plugin-modal"); - return a.setTheme(r), a.setAttribute("title", t), a.setAttribute("iframe-src", e), a.setAttribute("width", String((n == null ? void 0 : n.width) || 285)), a.setAttribute("height", String((n == null ? void 0 : n.height) || 540)), document.body.appendChild(a), a; +function Il(t, e, r, n) { + const o = document.createElement("plugin-modal"); + o.setTheme(r); + const a = 335, i = 590, c = { + blockStart: 40, + inlineEnd: 320 + }; + o.style.setProperty( + "--modal-block-start", + `${c.blockStart}px` + ), o.style.setProperty( + "--modal-inline-end", + `${c.inlineEnd}px` + ); + const l = window.innerWidth - c.inlineEnd, u = window.innerHeight - c.blockStart, d = Math.min((n == null ? void 0 : n.width) || a, l), f = Math.min((n == null ? void 0 : n.height) || i, u); + return o.setAttribute("title", t), o.setAttribute("iframe-src", e), o.setAttribute("width", String(d)), o.setAttribute("height", String(f)), document.body.appendChild(o), o; } -const Kc = V.function().args( - V.string(), - V.string(), - V.enum(["dark", "light"]), - Wc.optional() -).implement((t, e, r, n) => qc(t, e, r, n)), Yc = V.object({ - name: V.string(), - host: V.string().url(), - code: V.string(), - icon: V.string().optional(), - description: V.string().max(200).optional(), - permissions: V.array( - V.enum([ +const Cl = W.function().args( + W.string(), + W.string(), + W.enum(["dark", "light"]), + Al.optional() +).implement((t, e, r, n) => Il(t, e, r, n)), $l = W.object({ + name: W.string(), + host: W.string().url(), + code: W.string(), + icon: W.string().optional(), + description: W.string().max(200).optional(), + permissions: W.array( + W.enum([ "page:read", "page:write", "file:read", @@ -7287,107 +7642,110 @@ const Kc = V.function().args( ]) ) }); -function Ss(t, e) { +function zs(t, e) { return new URL(e, t).toString(); } -function Jc(t) { +function Nl(t) { return fetch(t).then((e) => e.json()).then((e) => { - if (!Yc.safeParse(e).success) + if (!$l.safeParse(e).success) throw new Error("Invalid plugin manifest"); return e; }).catch((e) => { throw console.error(e), e; }); } -function Xc(t) { - return fetch(Ss(t.host, t.code)).then((e) => { +function Rl(t) { + return fetch(zs(t.host, t.code)).then((e) => { if (e.ok) return e.text(); throw new Error("Failed to load plugin code"); }); } -const an = [ +const yn = [ "finish", "pagechange", "filechange", "selectionchange", "themechange" ]; -let cn = [], ne = null; -const Nt = /* @__PURE__ */ new Map(); +let vn = [], _n = /* @__PURE__ */ new Set([]); +const Dt = /* @__PURE__ */ new Map(); window.addEventListener("message", (t) => { - for (const e of cn) + for (const e of vn) e(t.data); }); -function Qc(t, e) { - t === "themechange" && ne && ne.setTheme(e), (Nt.get(t) || []).forEach((n) => n(e)); +function Ol(t, e) { + t === "themechange" && _n.forEach((n) => { + n.setTheme(e); + }), (Dt.get(t) || []).forEach((n) => n(e)); } -function el(t, e) { - const r = () => { - ne == null || ne.removeEventListener("close", r), ne && ne.remove(), cn = [], ne = null; - }, n = (s) => { - if (!e.permissions.includes(s)) - throw new Error(`Permission ${s} is not granted`); +function Ml(t, e) { + let r = null; + const n = () => { + r && (_n.delete(r), r.removeEventListener("close", n), r.remove()), vn = [], r = null; + }, o = (i) => { + if (!e.permissions.includes(i)) + throw new Error(`Permission ${i} is not granted`); }; return { ui: { - open: (s, i, c) => { + open: (i, c, l) => { const u = t.getTheme(); - ne = Kc( - s, - Ss(e.host, i), + r = Cl( + i, + zs(e.host, c), u, - c - ), ne.setTheme(u), ne.addEventListener("close", r, { + l + ), r.setTheme(u), r.addEventListener("close", n, { once: !0 - }); + }), _n.add(r); }, - sendMessage(s) { - const i = new CustomEvent("message", { - detail: s + sendMessage(i) { + const c = new CustomEvent("message", { + detail: i }); - ne == null || ne.dispatchEvent(i); + r == null || r.dispatchEvent(c); }, - onMessage: (s) => { - V.function().parse(s), cn.push(s); + onMessage: (i) => { + W.function().parse(i), vn.push(i); } }, utils: { types: { - isText(s) { - return s.type === "text"; + isText(i) { + return i.type === "text"; }, - isRectangle(s) { - return s.type === "rect"; + isRectangle(i) { + return i.type === "rect"; }, - isFrame(s) { - return s.type === "frame"; + isFrame(i) { + return i.type === "frame"; } } }, - closePlugin: r, - on(s, i) { - V.enum(an).parse(s), V.function().parse(i), s === "pagechange" ? n("page:read") : s === "filechange" ? n("file:read") : s === "selectionchange" && n("selection:read"); - const c = Nt.get(s) || []; - c.push(i), Nt.set(s, c); + closePlugin: n, + on(i, c) { + W.enum(yn).parse(i), W.function().parse(c), i === "pagechange" ? o("page:read") : i === "filechange" ? o("file:read") : i === "selectionchange" && o("selection:read"); + const l = Dt.get(i) || []; + l.push(c), Dt.set(i, l); }, - off(s, i) { - V.enum(an).parse(s), V.function().parse(i); - const c = Nt.get(s) || []; - Nt.set( - s, - c.filter((u) => u !== i) + off(i, c) { + W.enum(yn).parse(i), W.function().parse(c); + const l = Dt.get(i) || []; + Dt.set( + i, + l.filter((u) => u !== c) ); }, // Penpot State API get root() { - return n("page:read"), t.root; + return o("page:read"), t.root; }, get currentPage() { - return n("page:read"), t.currentPage; + return o("page:read"), t.currentPage; }, get selection() { - return n("selection:read"), t.selection; + return o("selection:read"), t.selection; }, get viewport() { return t.viewport; @@ -7395,17 +7753,23 @@ function el(t, e) { get library() { return t.library; }, + get currentUser() { + return t.currentUser; + }, + get activeUsers() { + return t.activeUsers; + }, getFile() { - return n("file:read"), t.getFile(); + return o("file:read"), t.getFile(); }, getPage() { - return n("page:read"), t.getPage(); + return o("page:read"), t.getPage(); }, getSelected() { - return n("selection:read"), t.getSelected(); + return o("selection:read"), t.getSelected(); }, getSelectedShapes() { - return n("selection:read"), t.getSelectedShapes(); + return o("selection:read"), t.getSelectedShapes(); }, getTheme() { return t.getTheme(); @@ -7416,56 +7780,78 @@ function el(t, e) { createRectangle() { return t.createRectangle(); }, - createText(s) { - return t.createText(s); + createEllipse() { + return t.createEllipse(); }, - createShapeFromSvg(s) { - return t.createShapeFromSvg(s); + createText(i) { + return t.createText(i); }, - group(s) { - return t.group(s); + createPath() { + return t.createPath(); }, - ungroup(s, ...i) { - t.ungroup(s, ...i); + createBoolean(i, c) { + return t.createBoolean(i, c); }, - uploadMediaUrl(s, i) { - return t.uploadMediaUrl(s, i); + createShapeFromSvg(i) { + return t.createShapeFromSvg(i); + }, + group(i) { + return t.group(i); + }, + ungroup(i, ...c) { + t.ungroup(i, ...c); + }, + uploadMediaUrl(i, c) { + return t.uploadMediaUrl(i, c); } }; } -let so = !1, et, rt = null; -function tl(t) { - rt = t; +let wo = !1, pr = []; +const Ll = !1; +let ct = null; +function Fl(t) { + ct = t; } -const Es = async function(t) { +const Gs = async function(t) { try { - const e = await Xc(t); - if (so || (so = !0, hardenIntrinsics()), et && et.closePlugin(), rt) { - et = el(rt, t), new Compartment({ - penpot: harden(et), - fetch: window.fetch.bind(window), + const e = await Rl(t); + if (wo || (wo = !0, hardenIntrinsics()), pr && !Ll && pr.forEach((r) => { + r.closePlugin(); + }), ct) { + const r = Ml(ct, t); + pr.push(r), new Compartment({ + penpot: harden(r), + fetch: harden((...a) => { + const i = { + ...a[1], + credentials: "omit" + }; + return fetch(a[0], i); + }), console: harden(window.console), Math: harden(Math), setTimeout: harden( - (...[a, s]) => setTimeout(() => { + (...[a, i]) => setTimeout(() => { a(); - }, s) + }, i) ), clearTimeout: harden((a) => { clearTimeout(a); }) }).evaluate(e); - const n = rt.addListener("finish", () => { - et == null || et.closePlugin(), rt == null || rt.removeListener(n); + const o = ct.addListener("finish", () => { + pr.forEach((a) => { + a.closePlugin(); + }), ct == null || ct.removeListener(o); }); } else console.error("Cannot find Penpot Context"); } catch (e) { console.error(e); } -}, rl = async function(t) { - const e = await Jc(t); - Es(e); +}, Dl = async function(t) { + const e = await Nl(t); + Gs(e); }; console.log("%c[PLUGINS] Loading plugin system", "color: #008d7c"); repairIntrinsics({ @@ -7474,12 +7860,12 @@ repairIntrinsics({ errorTaming: "unsafe", consoleTaming: "unsafe" }); -const ao = globalThis; -ao.initPluginsRuntime = (t) => { +const Eo = globalThis; +Eo.initPluginsRuntime = (t) => { if (t) { - console.log("%c[PLUGINS] Initialize context", "color: #008d7c"), ao.ɵcontext = t, globalThis.ɵloadPlugin = Es, globalThis.ɵloadPluginByUrl = rl, tl(t); - for (const e of an) - t.addListener(e, Qc.bind(null, e)); + console.log("%c[PLUGINS] Initialize context", "color: #008d7c"), Eo.ɵcontext = t, globalThis.ɵloadPlugin = Gs, globalThis.ɵloadPluginByUrl = Dl, Fl(t); + for (const e of yn) + t.addListener(e, Ol.bind(null, e)); } }; //# sourceMappingURL=index.js.map From 697b6776ba02b84df1722ce3d0ae2f2fcec85498 Mon Sep 17 00:00:00 2001 From: Alejandro Alonso Date: Wed, 5 Jun 2024 06:38:22 +0200 Subject: [PATCH 049/476] :bug: Fix color palette default library --- CHANGES.md | 5 +++-- frontend/src/app/main/ui/workspace/color_palette.cljs | 2 +- frontend/src/app/main/ui/workspace/libraries.cljs | 6 ++++++ 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index 183eb324f7..58d5dc6b07 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -19,12 +19,13 @@ - Layout and scrollign fixes for the bottom palette [Taiga Issue #7559](https://tree.taiga.io/project/penpot/issue/7559) - Fix expand libraries when search results are present [Taiga issue #7876](https://tree.taiga.io/project/penpot/issue/7876) +- Fix color palette default library [Taiga #8029](https://tree.taiga.io/project/penpot/issue/8029) ## 2.0.3 ### :bug: Bugs fixed -- Fix chrome scrollbar styling [Taiga Issue #7852](https://tree.taiga.io/project/penpot/issue/7852) +- Fix chrome scrollbar styling [Taiga #7852](https://tree.taiga.io/project/penpot/issue/7852) - Fix incorrect password encoding on create-profile manage scritp [Github #3651](https://github.com/penpot/penpot/issues/3651) @@ -37,7 +38,7 @@ ### :bug: Bugs fixed -- Fix color palette sorting [Taiga Issue #7458](https://tree.taiga.io/project/penpot/issue/7458) +- Fix color palette sorting [Taiga #7458](https://tree.taiga.io/project/penpot/issue/7458) - Fix style scoping problem with imported SVG [Taiga #7671](https://tree.taiga.io/project/penpot/issue/7671) diff --git a/frontend/src/app/main/ui/workspace/color_palette.cljs b/frontend/src/app/main/ui/workspace/color_palette.cljs index 7fb9587c0b..5dccc51dc2 100644 --- a/frontend/src/app/main/ui/workspace/color_palette.cljs +++ b/frontend/src/app/main/ui/workspace/color_palette.cljs @@ -149,7 +149,7 @@ shared-libs (mf/deref refs/workspace-libraries) colors (mf/use-state [])] - (mf/with-effect [selected] + (mf/with-effect [selected shared-libs] (let [colors' (cond (= selected :recent) (reverse recent-colors) (= selected :file) (->> (vals file-colors) (sort-by :name)) diff --git a/frontend/src/app/main/ui/workspace/libraries.cljs b/frontend/src/app/main/ui/workspace/libraries.cljs index ddbfe354a6..e28f28f966 100644 --- a/frontend/src/app/main/ui/workspace/libraries.cljs +++ b/frontend/src/app/main/ui/workspace/libraries.cljs @@ -16,6 +16,7 @@ [app.common.uuid :as uuid] [app.main.data.modal :as modal] [app.main.data.users :as du] + [app.main.data.workspace.colors :as mdc] [app.main.data.workspace.libraries :as dwl] [app.main.refs :as refs] [app.main.render :refer [component-svg]] @@ -25,6 +26,7 @@ [app.main.ui.components.search-bar :refer [search-bar]] [app.main.ui.components.tab-container :refer [tab-container tab-element]] [app.main.ui.components.title-bar :refer [title-bar]] + [app.main.ui.hooks :as h] [app.main.ui.icons :as i] [app.util.color :as uc] [app.util.dom :as dom] @@ -113,6 +115,7 @@ components (:components library) media (:media library) typographies (:typographies library) + selected (h/use-shared-state mdc/colorpalette-selected-broadcast-key :recent) empty-library? (and (zero? (count colors)) @@ -146,6 +149,7 @@ (let [library-id (some-> (dom/get-current-target event) (dom/get-data "library-id") (parse-uuid))] + (reset! selected library-id) (st/emit! (dwl/link-file-to-library file-id library-id))))) unlink-library @@ -155,6 +159,8 @@ (let [library-id (some-> (dom/get-current-target event) (dom/get-data "library-id") (parse-uuid))] + (when (= library-id @selected) + (reset! selected :file)) (st/emit! (dwl/unlink-file-from-library file-id library-id) (dwl/sync-file file-id library-id))))) From fc7294c10d13e87e45f6b84ee0e835408d0a2712 Mon Sep 17 00:00:00 2001 From: Alejandro Alonso Date: Wed, 5 Jun 2024 06:39:24 +0200 Subject: [PATCH 050/476] :sparkles: Make CHANGES format uniform --- CHANGES.md | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index 58d5dc6b07..262dff260c 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -11,14 +11,14 @@ ### :sparkles: New features - Improve auth process [Taiga #7094](https://tree.taiga.io/project/penpot/us/7094) -- Add locking degrees increment (hold shift) on path edition [Taiga Issue #7761](https://tree.taiga.io/project/penpot/issue/7761) +- Add locking degrees increment (hold shift) on path edition [Taiga #7761](https://tree.taiga.io/project/penpot/issue/7761) - Persistence & Concurrent Edition Enhancements [Taiga #5657](https://tree.taiga.io/project/penpot/us/5657) -- Allow library colors as recent colors [Taiga Issue #7640](https://tree.taiga.io/project/penpot/issue/7640) +- Allow library colors as recent colors [Taiga #7640](https://tree.taiga.io/project/penpot/issue/7640) ### :bug: Bugs fixed -- Layout and scrollign fixes for the bottom palette [Taiga Issue #7559](https://tree.taiga.io/project/penpot/issue/7559) -- Fix expand libraries when search results are present [Taiga issue #7876](https://tree.taiga.io/project/penpot/issue/7876) +- Layout and scrollign fixes for the bottom palette [Taiga #7559](https://tree.taiga.io/project/penpot/issue/7559) +- Fix expand libraries when search results are present [Taiga #7876](https://tree.taiga.io/project/penpot/issue/7876) - Fix color palette default library [Taiga #8029](https://tree.taiga.io/project/penpot/issue/8029) ## 2.0.3 @@ -28,7 +28,6 @@ - Fix chrome scrollbar styling [Taiga #7852](https://tree.taiga.io/project/penpot/issue/7852) - Fix incorrect password encoding on create-profile manage scritp [Github #3651](https://github.com/penpot/penpot/issues/3651) - ## 2.0.2 ### :sparkles: Enhancements @@ -183,7 +182,7 @@ - Fix problem when changing typography assets [Github #3683](https://github.com/penpot/penpot/issues/3683) - Internal error when you copy and paste some main components between files [Taiga #7397](https://tree.taiga.io/project/penpot/issue/7397) - Fix toolbar disappearing [Taiga #7411](https://tree.taiga.io/project/penpot/issue/7411) -- Fix long text on tab breaks UI [Taiga Issue #7421](https://tree.taiga.io/project/penpot/issue/7421) +- Fix long text on tab breaks UI [Taiga #7421](https://tree.taiga.io/project/penpot/issue/7421) ## 1.19.5 From 7971bcf7d92c7fae767e182e7b3067bfb0f9eb10 Mon Sep 17 00:00:00 2001 From: Anonymous Date: Wed, 5 Jun 2024 10:42:42 +0000 Subject: [PATCH 051/476] :globe_with_meridians: Add translations for: Chinese (Simplified). Currently translated at 98.5% (1370 of 1390 strings) Translation: Penpot/frontend Translate-URL: https://hosted.weblate.org/projects/penpot/frontend/zh_Hans/ --- frontend/translations/zh_CN.po | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/frontend/translations/zh_CN.po b/frontend/translations/zh_CN.po index 4ecda6cc02..358d4f48a1 100644 --- a/frontend/translations/zh_CN.po +++ b/frontend/translations/zh_CN.po @@ -1,6 +1,6 @@ msgid "" msgstr "" -"PO-Revision-Date: 2024-04-24 13:04+0000\n" +"PO-Revision-Date: 2024-06-05 10:42+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Chinese (Simplified) \n" @@ -9,7 +9,7 @@ msgstr "" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Weblate 5.5.1-dev\n" +"X-Generator: Weblate 5.6-dev\n" #: src/app/main/ui/auth/register.cljs msgid "auth.already-have-account" @@ -397,10 +397,11 @@ msgid "dashboard.duplicate-multi" msgstr "复制 %s 个文件" #: src/app/main/ui/dashboard/grid.cljs +#, fuzzy msgid "dashboard.empty-placeholder-drafts" msgstr "" -"添加到库的文件将出现在这里。尝试分享你的文件或从我们的[库和模板](https://" -"penpot.app/libraries-templates.html)添加。" +"添加到库的文件将出现在这里。尝试分享你的文件或从我们的[库和模板](https://penp" +"ot.app/libraries-templates.html)添加。" msgid "dashboard.export-binary-multi" msgstr "下载 %s Penpot文件 (.penpot)" From 8f5a35f5f927dd5f7872c56b004d31e4bb029345 Mon Sep 17 00:00:00 2001 From: Anonymous Date: Wed, 5 Jun 2024 10:42:10 +0000 Subject: [PATCH 052/476] :globe_with_meridians: Add translations for: German. Currently translated at 99.1% (1378 of 1390 strings) Translation: Penpot/frontend Translate-URL: https://hosted.weblate.org/projects/penpot/frontend/de/ --- frontend/translations/de.po | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/frontend/translations/de.po b/frontend/translations/de.po index 124ef73e35..361737b776 100644 --- a/frontend/translations/de.po +++ b/frontend/translations/de.po @@ -1,7 +1,7 @@ msgid "" msgstr "" -"PO-Revision-Date: 2024-04-25 13:07+0000\n" -"Last-Translator: Stas Haas \n" +"PO-Revision-Date: 2024-06-05 10:42+0000\n" +"Last-Translator: Anonymous \n" "Language-Team: German \n" "Language: de\n" @@ -9,7 +9,7 @@ msgstr "" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 5.5.1-dev\n" +"X-Generator: Weblate 5.6-dev\n" #: src/app/main/ui/auth/register.cljs msgid "auth.already-have-account" @@ -428,6 +428,7 @@ msgid "dashboard.duplicate-multi" msgstr "%s Dateien duplizieren" #: src/app/main/ui/dashboard/grid.cljs +#, fuzzy msgid "dashboard.empty-placeholder-drafts" msgstr "" "Zu Bibliotheken hinzugefügte Dateien werden hier angezeigt. Versuchen Sie, " From 2569282d917d94ad73687d1b8cff3ef7bc1cf62a Mon Sep 17 00:00:00 2001 From: Anonymous Date: Wed, 5 Jun 2024 10:42:21 +0000 Subject: [PATCH 053/476] :globe_with_meridians: Add translations for: Korean. Currently translated at 16.0% (223 of 1390 strings) Translation: Penpot/frontend Translate-URL: https://hosted.weblate.org/projects/penpot/frontend/ko/ --- frontend/translations/ko.po | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/frontend/translations/ko.po b/frontend/translations/ko.po index 5f106ceb22..ddb830dbc0 100644 --- a/frontend/translations/ko.po +++ b/frontend/translations/ko.po @@ -1,7 +1,7 @@ msgid "" msgstr "" -"PO-Revision-Date: 2024-05-25 18:09+0000\n" -"Last-Translator: Chan Young Park \n" +"PO-Revision-Date: 2024-06-05 10:42+0000\n" +"Last-Translator: Anonymous \n" "Language-Team: Korean \n" "Language: ko\n" @@ -841,7 +841,7 @@ msgid "dashboard.export-binary-multi" msgstr "%s 펜팟 파일 (.penpot) 다운로드 하기" #: src/app/main/ui/dashboard/grid.cljs -#, markdown +#, fuzzy, markdown msgid "dashboard.empty-placeholder-drafts" msgstr "" "라이브러리에 추가된 파일은 여기에서 볼 수 있습니다. 파일을 공유하거나 펜팟의 " From 5814559880887e18fd8f72e4428be85afaff21d9 Mon Sep 17 00:00:00 2001 From: Anonymous Date: Wed, 5 Jun 2024 10:42:17 +0000 Subject: [PATCH 054/476] :globe_with_meridians: Add translations for: Hausa. Currently translated at 92.5% (1287 of 1390 strings) Translation: Penpot/frontend Translate-URL: https://hosted.weblate.org/projects/penpot/frontend/ha/ --- frontend/translations/ha.po | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/frontend/translations/ha.po b/frontend/translations/ha.po index 61c9c2de3c..a50a6f1317 100644 --- a/frontend/translations/ha.po +++ b/frontend/translations/ha.po @@ -1,15 +1,15 @@ msgid "" msgstr "" -"PO-Revision-Date: 2024-04-24 12:55+0000\n" +"PO-Revision-Date: 2024-06-05 10:42+0000\n" "Last-Translator: Anonymous \n" -"Language-Team: Hausa " -"\n" +"Language-Team: Hausa \n" "Language: ha\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 5.5.1-dev\n" +"X-Generator: Weblate 5.6-dev\n" #: src/app/main/ui/auth/register.cljs msgid "auth.already-have-account" @@ -365,12 +365,12 @@ msgid "dashboard.duplicate-multi" msgstr "kwafi %s kundaye" #: src/app/main/ui/dashboard/grid.cljs -#, markdown +#, fuzzy, markdown msgid "dashboard.empty-placeholder-drafts" msgstr "" "nan za a sami kundayen da aka sanya a taska. gwada sanya na ka kundin \"a " -"taskirarmumaginar kundi](https://manhajar fenfot/taskokin maginar " -"kundaye.html)." +"taskirarmumaginar kundi](https://manhajar fenfot/taskokin maginar kundaye." +"html)." msgid "dashboard.export-binary-multi" msgstr "sauke %s kundayen manhajar fenfot(.penpot)" From ee2f4c11c09681b04fed9902734c8d8e9ccd2e5b Mon Sep 17 00:00:00 2001 From: Anonymous Date: Wed, 5 Jun 2024 10:42:20 +0000 Subject: [PATCH 055/476] :globe_with_meridians: Add translations for: Igbo. Currently translated at 38.9% (542 of 1390 strings) Translation: Penpot/frontend Translate-URL: https://hosted.weblate.org/projects/penpot/frontend/ig/ --- frontend/translations/ig.po | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/frontend/translations/ig.po b/frontend/translations/ig.po index 5c5ea33530..44203b20a2 100644 --- a/frontend/translations/ig.po +++ b/frontend/translations/ig.po @@ -1,15 +1,15 @@ msgid "" msgstr "" -"PO-Revision-Date: 2024-04-24 12:55+0000\n" +"PO-Revision-Date: 2024-06-05 10:42+0000\n" "Last-Translator: Anonymous \n" -"Language-Team: Igbo " -"\n" +"Language-Team: Igbo " +"\n" "Language: ig\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 5.5.1-dev\n" +"X-Generator: Weblate 5.6-dev\n" #: src/app/main/ui/auth/register.cljs msgid "auth.check-your-email" @@ -353,12 +353,12 @@ msgid "dashboard.duplicate-multi" msgstr "Mee o yiri %s ederede" #: src/app/main/ui/dashboard/grid.cljs -#, markdown +#, fuzzy, markdown msgid "dashboard.empty-placeholder-drafts" msgstr "" "Ederede a tinyere n'ọba ederede ga-apụta ebe a. Gbalịa ikesa ma ọ bụ tinye " -"site n'[Ọba ederede na ndebiri anyị ](https://itemkpịsị.app/ọba ederede " -"gasị-ndebiri gasị.html)." +"site n'[Ọba ederede na ndebiri anyị ](https://itemkpịsị.app/ọba ederede gasị-" +"ndebiri gasị.html)." msgid "dashboard.export-binary-multi" msgstr "Butuo %s ederede ite mkpịsị (.penpot)" From 4e0c6f847f89ad4b4c4bc0483b09d01b65a9f21d Mon Sep 17 00:00:00 2001 From: Anonymous Date: Wed, 5 Jun 2024 10:42:41 +0000 Subject: [PATCH 056/476] :globe_with_meridians: Add translations for: Yoruba. Currently translated at 87.7% (1220 of 1390 strings) Translation: Penpot/frontend Translate-URL: https://hosted.weblate.org/projects/penpot/frontend/yo/ --- frontend/translations/yo.po | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/frontend/translations/yo.po b/frontend/translations/yo.po index 183625c525..80303e00c1 100644 --- a/frontend/translations/yo.po +++ b/frontend/translations/yo.po @@ -1,15 +1,15 @@ msgid "" msgstr "" -"PO-Revision-Date: 2024-04-24 13:04+0000\n" +"PO-Revision-Date: 2024-06-05 10:42+0000\n" "Last-Translator: Anonymous \n" -"Language-Team: Yoruba " -"\n" +"Language-Team: Yoruba \n" "Language: yo\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 5.5.1-dev\n" +"X-Generator: Weblate 5.6-dev\n" #: src/app/main/ui/auth/register.cljs msgid "auth.check-your-email" @@ -364,11 +364,11 @@ msgid "dashboard.duplicate-multi" msgstr "ṣe ẹ̀dà %s fáìlì" #: src/app/main/ui/dashboard/grid.cljs -#, markdown +#, fuzzy, markdown msgid "dashboard.empty-placeholder-drafts" msgstr "" -"\"\" fáìlí tí a dàpọ̀ mọ yàrá ìkàwé á hàn níbí yìí. gbìyànjú láti má a " -"pín àwon fáìlì rẹ̀ tàbí ṣàfikún láti ibi [yàrá ìkàwé wa àti àwòṣe " +"\"\" fáìlí tí a dàpọ̀ mọ yàrá ìkàwé á hàn níbí yìí. gbìyànjú láti má a pín " +"àwon fáìlì rẹ̀ tàbí ṣàfikún láti ibi [yàrá ìkàwé wa àti àwòṣe " "](https://penpot.app/libraries-templates.html)." msgid "dashboard.export-binary-multi" From ca73a79cfe48fbfc96ce06947ac4a28e9d03db65 Mon Sep 17 00:00:00 2001 From: Alejandro Alonso Date: Wed, 5 Jun 2024 12:46:11 +0200 Subject: [PATCH 057/476] :paperclip: Prepare new development cycle --- CHANGES.md | 10 ++++++++++ version.txt | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/CHANGES.md b/CHANGES.md index 183eb324f7..45e2491f8b 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,5 +1,15 @@ # CHANGELOG +## 2.2.0 + +### :rocket: Epics and highlights + +### :boom: Breaking changes & Deprecations + +### :heart: Community contributions (Thank you!) + +### :sparkles: New features + ## 2.1.0 ### :rocket: Epics and highlights diff --git a/version.txt b/version.txt index 7ec1d6db40..ccbccc3dc6 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -2.1.0 +2.2.0 From 67ababf1ed5c88c9d2c28952b727a96b86d2e3eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bel=C3=A9n=20Albeza?= Date: Tue, 4 Jun 2024 11:25:09 +0200 Subject: [PATCH 058/476] :bug: Fix link in penpot logo spanning way below it (in viewer) --- CHANGES.md | 1 + .../viewer/get-file-fragment-empty-file.json | 97 +++++++++++++++++++ .../get-view-only-bundle-empty-file.json | 86 ++++++++++++++++ frontend/playwright/ui/pages/ViewerPage.js | 48 +++++++++ .../playwright/ui/specs/viewer-header.spec.js | 23 +++++ frontend/src/app/main/ui/viewer/header.cljs | 8 +- frontend/src/app/main/ui/viewer/header.scss | 12 +-- 7 files changed, 266 insertions(+), 9 deletions(-) create mode 100644 frontend/playwright/data/viewer/get-file-fragment-empty-file.json create mode 100644 frontend/playwright/data/viewer/get-view-only-bundle-empty-file.json create mode 100644 frontend/playwright/ui/pages/ViewerPage.js create mode 100644 frontend/playwright/ui/specs/viewer-header.spec.js diff --git a/CHANGES.md b/CHANGES.md index 183eb324f7..75b161247b 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -10,6 +10,7 @@ ### :sparkles: New features +- Fix clickable area of Penptot logo in the viewer [Taiga #7988](https://tree.taiga.io/project/penpot/issue/7988) - Improve auth process [Taiga #7094](https://tree.taiga.io/project/penpot/us/7094) - Add locking degrees increment (hold shift) on path edition [Taiga Issue #7761](https://tree.taiga.io/project/penpot/issue/7761) - Persistence & Concurrent Edition Enhancements [Taiga #5657](https://tree.taiga.io/project/penpot/us/5657) diff --git a/frontend/playwright/data/viewer/get-file-fragment-empty-file.json b/frontend/playwright/data/viewer/get-file-fragment-empty-file.json new file mode 100644 index 0000000000..544c559f74 --- /dev/null +++ b/frontend/playwright/data/viewer/get-file-fragment-empty-file.json @@ -0,0 +1,97 @@ +{ + "~:id": "~u0515a066-e303-8169-8004-73eb58e899c2", + "~:file-id": "~uc7ce0794-0992-8105-8004-38f280443849", + "~:created-at": "~m1717493890966", + "~:content": { + "~:options": {}, + "~:objects": { + "~u00000000-0000-0000-0000-000000000000": { + "~#shape": { + "~:y": 0, + "~:hide-fill-on-export": false, + "~:transform": { + "~#matrix": { + "~:a": 1.0, + "~:b": 0.0, + "~:c": 0.0, + "~:d": 1.0, + "~:e": 0.0, + "~:f": 0.0 + } + }, + "~:rotation": 0, + "~:name": "Root Frame", + "~:width": 0.01, + "~:type": "~:frame", + "~:points": [ + { + "~#point": { + "~:x": 0, + "~:y": 0 + } + }, + { + "~#point": { + "~:x": 0.01, + "~:y": 0 + } + }, + { + "~#point": { + "~:x": 0.01, + "~:y": 0.01 + } + }, + { + "~#point": { + "~:x": 0, + "~:y": 0.01 + } + } + ], + "~:proportion-lock": false, + "~:transform-inverse": { + "~#matrix": { + "~:a": 1.0, + "~:b": 0.0, + "~:c": 0.0, + "~:d": 1.0, + "~:e": 0.0, + "~:f": 0.0 + } + }, + "~:id": "~u00000000-0000-0000-0000-000000000000", + "~:parent-id": "~u00000000-0000-0000-0000-000000000000", + "~:frame-id": "~u00000000-0000-0000-0000-000000000000", + "~:strokes": [], + "~:x": 0, + "~:proportion": 1.0, + "~:selrect": { + "~#rect": { + "~:x": 0, + "~:y": 0, + "~:width": 0.01, + "~:height": 0.01, + "~:x1": 0, + "~:y1": 0, + "~:x2": 0.01, + "~:y2": 0.01 + } + }, + "~:fills": [ + { + "~:fill-color": "#FFFFFF", + "~:fill-opacity": 1 + } + ], + "~:flip-x": null, + "~:height": 0.01, + "~:flip-y": null, + "~:shapes": [] + } + } + }, + "~:id": "~uc7ce0794-0992-8105-8004-38f28044384a", + "~:name": "Page 1" + } +} \ No newline at end of file diff --git a/frontend/playwright/data/viewer/get-view-only-bundle-empty-file.json b/frontend/playwright/data/viewer/get-view-only-bundle-empty-file.json new file mode 100644 index 0000000000..ef001224ab --- /dev/null +++ b/frontend/playwright/data/viewer/get-view-only-bundle-empty-file.json @@ -0,0 +1,86 @@ +{ + "~:users": [ + { + "~:id": "~uc7ce0794-0992-8105-8004-38e630f29a9b", + "~:email": "leia@example.com", + "~:name": "Princesa Leia", + "~:fullname": "Princesa Leia", + "~:is-active": true + } + ], + "~:fonts": [], + "~:project": { + "~:id": "~uc7ce0794-0992-8105-8004-38e630f7920b", + "~:name": "Drafts", + "~:team-id": "~uc7ce0794-0992-8105-8004-38e630f40f6d" + }, + "~:share-links": [], + "~:libraries": [], + "~:file": { + "~:features": { + "~#set": [ + "layout/grid", + "styles/v2", + "fdata/pointer-map", + "fdata/objects-map", + "components/v2", + "fdata/shape-data-type" + ] + }, + "~:has-media-trimmed": false, + "~:comment-thread-seqn": 0, + "~:name": "New File 1", + "~:revn": 0, + "~:modified-at": "~m1717493891000", + "~:id": "~uc7ce0794-0992-8105-8004-38f280443849", + "~:is-shared": false, + "~:version": 48, + "~:project-id": "~uc7ce0794-0992-8105-8004-38e630f7920b", + "~:created-at": "~m1717493891000", + "~:data": { + "~:id": "~uc7ce0794-0992-8105-8004-38e630f7920b", + "~:options": { + "~:components-v2": true + }, + "~:pages": [ + "~uc7ce0794-0992-8105-8004-38f28044384a" + ], + "~:pages-index": { + "~uc7ce0794-0992-8105-8004-38f28044384a": { + "~#penpot/pointer": [ + "~u0515a066-e303-8169-8004-73eb58e899c2", + { + "~:created-at": "~m1717493890978" + } + ] + } + } + } + }, + "~:team": { + "~:id": "~uc7ce0794-0992-8105-8004-38e630f40f6d", + "~:created-at": "~m1717493865581", + "~:modified-at": "~m1717493865581", + "~:name": "Default", + "~:is-default": true, + "~:features": { + "~#set": [ + "layout/grid", + "styles/v2", + "fdata/pointer-map", + "fdata/objects-map", + "components/v2", + "fdata/shape-data-type" + ] + } + }, + "~:permissions": { + "~:type": "~:membership", + "~:is-owner": true, + "~:is-admin": true, + "~:can-edit": true, + "~:can-read": true, + "~:is-logged": true, + "~:in-team": true + } +} \ No newline at end of file diff --git a/frontend/playwright/ui/pages/ViewerPage.js b/frontend/playwright/ui/pages/ViewerPage.js new file mode 100644 index 0000000000..cd328eb653 --- /dev/null +++ b/frontend/playwright/ui/pages/ViewerPage.js @@ -0,0 +1,48 @@ +import { BaseWebSocketPage } from "./BaseWebSocketPage"; + +export class ViewerPage extends BaseWebSocketPage { + static anyFileId = "c7ce0794-0992-8105-8004-38f280443849"; + static anyPageId = "c7ce0794-0992-8105-8004-38f28044384a"; + + /** + * This should be called on `test.beforeEach`. + * + * @param {Page} page + * @returns + */ + static async init(page) { + await BaseWebSocketPage.initWebSockets(page); + } + + async setupLoggedInUser() { + await this.mockRPC("get-profile", "logged-in-user/get-profile-logged-in.json"); + } + + async setupEmptyFile() { + await this.mockRPC(/get\-view\-only\-bundle\?/, "viewer/get-view-only-bundle-empty-file.json"); + await this.mockRPC("get-comment-threads?file-id=*", "workspace/get-comment-threads-empty.json"); + await this.mockRPC( + "get-file-fragment?file-id=*&fragment-id=*", + "viewer/get-file-fragment-empty-file.json", + ); + } + + #ws = null; + + constructor(page) { + super(page); + } + + async goToViewer() { + await this.page.goto( + `/#/view/${ViewerPage.anyFileId}?page-id=${ViewerPage.anyPageId}§ion=interactions&index=0`, + ); + + this.#ws = await this.waitForNotificationsWebSocket(); + await this.#ws.mockOpen(); + } + + async cleanUp() { + await this.#ws.mockClose(); + } +} diff --git a/frontend/playwright/ui/specs/viewer-header.spec.js b/frontend/playwright/ui/specs/viewer-header.spec.js new file mode 100644 index 0000000000..01cfb8634e --- /dev/null +++ b/frontend/playwright/ui/specs/viewer-header.spec.js @@ -0,0 +1,23 @@ +import { test, expect } from "@playwright/test"; +import { ViewerPage } from "../pages/ViewerPage"; + +test.beforeEach(async ({ page }) => { + await ViewerPage.init(page); +}); + +test("Clips link area of the logo", async ({ page }) => { + const viewerPage = new ViewerPage(page); + await viewerPage.setupLoggedInUser(); + await viewerPage.setupEmptyFile(); + + await viewerPage.goToViewer(); + + const viewerUrl = page.url(); + + const logoLink = viewerPage.page.getByTestId("penpot-logo-link"); + await expect(logoLink).toBeVisible(); + + const { x, y } = await logoLink.boundingBox(); + await viewerPage.page.mouse.click(x, y + 100); + await expect(page.url()).toBe(viewerUrl); +}); diff --git a/frontend/src/app/main/ui/viewer/header.cljs b/frontend/src/app/main/ui/viewer/header.cljs index abf81479f4..03dd06548f 100644 --- a/frontend/src/app/main/ui/viewer/header.cljs +++ b/frontend/src/app/main/ui/viewer/header.cljs @@ -256,6 +256,10 @@ [:span {:class (stl/css :frame-name)} frame-name] [:span {:class (stl/css :icon)} i/arrow]]]])) +(def ^:private penpot-logo-icon + (i/icon-xref :penpot-logo-icon (stl/css :logo-icon))) + + (mf/defc header [{:keys [project file page frame zoom section permissions index interactions-mode shown-thumbnails]}] (let [go-to-dashboard @@ -303,10 +307,10 @@ ;; If the user doesn't have permission we disable the link [:a {:class (stl/css :home-link) :on-click go-to-dashboard + :data-testid "penpot-logo-link" :style {:cursor (when-not (:in-team permissions) "auto") :pointer-events (when-not (:in-team permissions) "none")}} - [:span {:class (stl/css :logo-icon)} - i/logo-icon]] + penpot-logo-icon] [:& header-sitemap {:project project :file file diff --git a/frontend/src/app/main/ui/viewer/header.scss b/frontend/src/app/main/ui/viewer/header.scss index c131e07b4d..1a338aac0b 100644 --- a/frontend/src/app/main/ui/viewer/header.scss +++ b/frontend/src/app/main/ui/viewer/header.scss @@ -34,16 +34,14 @@ .home-link { padding: 0; + display: grid; + place-content: center; } .logo-icon { - @include flexCenter; - width: $s-32; - height: $s-32; - svg { - width: $s-28; - fill: var(--icon-foreground-hover); - } + width: $s-28; + height: $s-28; + fill: var(--icon-foreground-hover); } .sitemap-zone { From 91fd8c4f81a327e92feddc4c2c1b9ad428282865 Mon Sep 17 00:00:00 2001 From: Pablo Alba Date: Thu, 6 Jun 2024 10:24:39 +0200 Subject: [PATCH 059/476] :bug: Fix verror on coping main component with frame over a copy --- common/src/app/common/types/container.cljc | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/common/src/app/common/types/container.cljc b/common/src/app/common/types/container.cljc index b50c5058ab..c4166508ad 100644 --- a/common/src/app/common/types/container.cljc +++ b/common/src/app/common/types/container.cljc @@ -375,8 +375,11 @@ {:skip-components? true :bottom-frames? true ;; We must avoid that destiny frame is inside the component frame - :validator #(nil? (get component-children (:id %)))})) - + :validator #(and + ;; We must avoid that destiny frame is inside the component frame + (nil? (get component-children (:id %))) + ;; We must avoid that destiny frame is inside a copy + (not (ctk/in-component-copy? %)))})) frame (get-shape container frame-id) component-frame (get-component-shape objects frame {:allow-main? true}) From 41024728ae9ebc8e2c6e2bcf65d4ad7dd9364399 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9s=20Moya?= Date: Tue, 4 Jun 2024 16:46:15 +0200 Subject: [PATCH 060/476] :bug: Fix importing a component from a zip file in v2 --- common/src/app/common/files/builder.cljc | 50 +++++++++++++----------- 1 file changed, 27 insertions(+), 23 deletions(-) diff --git a/common/src/app/common/files/builder.cljc b/common/src/app/common/files/builder.cljc index 811f372b5c..8605a5e1f9 100644 --- a/common/src/app/common/files/builder.cljc +++ b/common/src/app/common/files/builder.cljc @@ -38,16 +38,17 @@ fail-on-spec?] :or {add-container? false fail-on-spec? false}}] - (let [component-id (:current-component-id file) - change (cond-> change - (and add-container? (some? component-id)) - (-> (assoc :component-id component-id) - (cond-> (some? (:current-frame-id file)) - (assoc :frame-id (:current-frame-id file)))) + (let [components-v2 (dm/get-in file [:data :options :components-v2]) + component-id (:current-component-id file) + change (cond-> change + (and add-container? (some? component-id)) + (-> (assoc :component-id component-id) + (cond-> (some? (:current-frame-id file)) + (assoc :frame-id (:current-frame-id file)))) - (and add-container? (nil? component-id)) - (assoc :page-id (:current-page-id file) - :frame-id (:current-frame-id file))) + (and add-container? (nil? component-id)) + (assoc :page-id (:current-page-id file) + :frame-id (:current-frame-id file))) valid? (ch/check-change! change)] @@ -61,12 +62,12 @@ ::sm/explain explain)))) (cond-> file - valid? - (-> (update :changes conjv change) - (update :data ch/process-changes [change] false)) + (and valid? (not (and components-v2 add-container? (some? component-id)))) + (-> (update :changes conjv change) ;; In components-v2 we do not add shapes + (update :data ch/process-changes [change] false)) ;; inside a component (not valid?) - (update :errors conjv change))))) + (update :errors conjv change)))));) (defn- lookup-objects ([file] @@ -181,10 +182,11 @@ (update :parent-stack conjv (:id obj))))) (defn close-artboard [file] - (let [parent-id (-> file :parent-stack peek) + (let [components-v2 (dm/get-in file [:data :options :components-v2]) + parent-id (-> file :parent-stack peek) parent (lookup-shape file parent-id) current-frame-id (or (:frame-id parent) - (when (nil? (:current-component-id file)) + (when (or (nil? (:current-component-id file)) components-v2) root-id))] (-> file (assoc :current-frame-id current-frame-id) @@ -515,7 +517,8 @@ ([file data root-type] ;; FIXME: data probably can be a shape instance, then we can use gsh/shape->rect - (let [selrect (or (grc/make-rect (:x data) (:y data) (:width data) (:height data)) + (let [components-v2 (dm/get-in file [:data :options :components-v2]) + selrect (or (grc/make-rect (:x data) (:y data) (:width data) (:height data)) grc/empty-rect) name (:name data) path (:path data) @@ -542,13 +545,14 @@ (-> file (commit-change - {:type :add-component - :id (:id obj) - :name name - :path path - :main-instance-id main-instance-id - :main-instance-page main-instance-page - :shapes [obj]}) + (cond-> {:type :add-component + :id (:id obj) + :name name + :path path + :main-instance-id main-instance-id + :main-instance-page main-instance-page} + (not components-v2) + (assoc :shapes [obj]))) (assoc :last-id (:id obj)) (assoc :parent-stack [(:id obj)]) From bc3aac1597205dbefe60368b76f12bc5cd575363 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9s=20Moya?= Date: Wed, 5 Jun 2024 13:39:12 +0200 Subject: [PATCH 061/476] :book: Update change log --- CHANGES.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGES.md b/CHANGES.md index 262dff260c..8375a65179 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -20,6 +20,7 @@ - Layout and scrollign fixes for the bottom palette [Taiga #7559](https://tree.taiga.io/project/penpot/issue/7559) - Fix expand libraries when search results are present [Taiga #7876](https://tree.taiga.io/project/penpot/issue/7876) - Fix color palette default library [Taiga #8029](https://tree.taiga.io/project/penpot/issue/8029) +- Component Library is lost after exporting/importing in .zip format [Github #4672](https://github.com/penpot/penpot/issues/4672) ## 2.0.3 From c8130e9453eadd6e6c7eb5be7c9e14f4ba10de16 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Thu, 6 Jun 2024 11:08:22 +0200 Subject: [PATCH 062/476] :sparkles: Send profile zoom and vport/vbox on presence notifications --- .../src/app/main/data/workspace/notifications.cljs | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/frontend/src/app/main/data/workspace/notifications.cljs b/frontend/src/app/main/data/workspace/notifications.cljs index 39808e7f37..c00cf7d6c6 100644 --- a/frontend/src/app/main/data/workspace/notifications.cljs +++ b/frontend/src/app/main/data/workspace/notifications.cljs @@ -109,9 +109,15 @@ ptk/WatchEvent (watch [_ state _] (let [page-id (:current-page-id state) + local (:workspace-local state) + message {:type :pointer-update :file-id file-id :page-id page-id + :zoom (:zoom local) + :zoom-inverse (:zoom-inverse local) + :vbox (:vbox local) + :vport (:vport local) :position point}] (rx/of (dws/send message)))))) @@ -173,13 +179,17 @@ (update state :workspace-presence update-presence)))))) (defn handle-pointer-update - [{:keys [page-id session-id position] :as msg}] + [{:keys [page-id session-id position zoom zoom-inverse vbox vport] :as msg}] (ptk/reify ::handle-pointer-update ptk/UpdateEvent (update [_ state] (update-in state [:workspace-presence session-id] (fn [session] (assoc session + :zoom zoom + :zoom-inverse zoom-inverse + :vbox vbox + :vport vport :point position :updated-at (dt/now) :page-id page-id)))))) From 5af9bb1cdb230b02037fab107edb06db7f538477 Mon Sep 17 00:00:00 2001 From: Alejandro Alonso Date: Thu, 6 Jun 2024 12:28:41 +0200 Subject: [PATCH 063/476] :sparkles: Add e2e tests for fix color palette default library --- .../data/workspace/get-file-library.json | 242 ++++++++++++++++++ .../get-team-shared-libraries-non-empty.json | 47 ++++ .../data/workspace/link-file-to-library.json | 1 + .../workspace/unlink-file-from-library.json | 1 + frontend/playwright/ui/pages/WorkspacePage.js | 31 +++ .../playwright/ui/specs/workspace.spec.js | 28 ++ .../app/main/ui/components/tab_container.cljs | 1 + .../src/app/main/ui/workspace/libraries.cljs | 11 +- .../src/app/main/ui/workspace/palette.cljs | 3 +- .../app/main/ui/workspace/sidebar/assets.cljs | 3 +- 10 files changed, 362 insertions(+), 6 deletions(-) create mode 100644 frontend/playwright/data/workspace/get-file-library.json create mode 100644 frontend/playwright/data/workspace/get-team-shared-libraries-non-empty.json create mode 100644 frontend/playwright/data/workspace/link-file-to-library.json create mode 100644 frontend/playwright/data/workspace/unlink-file-from-library.json diff --git a/frontend/playwright/data/workspace/get-file-library.json b/frontend/playwright/data/workspace/get-file-library.json new file mode 100644 index 0000000000..de47754279 --- /dev/null +++ b/frontend/playwright/data/workspace/get-file-library.json @@ -0,0 +1,242 @@ +{ + "~:features":{ + "~#set":[ + "layout/grid", + "styles/v2", + "components/v2", + "fdata/shape-data-type" + ] + }, + "~:permissions":{ + "~:type":"~:membership", + "~:is-owner":true, + "~:is-admin":true, + "~:can-edit":true, + "~:can-read":true, + "~:is-logged":true + }, + "~:has-media-trimmed":false, + "~:comment-thread-seqn":0, + "~:name":"Testing library 1", + "~:revn":2, + "~:modified-at":"~m1717512948250", + "~:id":"~uc1249a66-fce0-8175-8004-7433fe4be8bc", + "~:is-shared":true, + "~:version":48, + "~:project-id": "~uc7ce0794-0992-8105-8004-38e630f7920b", + "~:created-at":"~m1717512934704", + "~:data":{ + "~:pages":[ + "~uc1249a66-fce0-8175-8004-7433fe4be8bd" + ], + "~:pages-index":{ + "~uc1249a66-fce0-8175-8004-7433fe4be8bd":{ + "~:options":{ + + }, + "~:objects":{ + "~u00000000-0000-0000-0000-000000000000":{ + "~#shape":{ + "~:y":0, + "~:hide-fill-on-export":false, + "~:transform":{ + "~#matrix":{ + "~:a":1.0, + "~:b":0.0, + "~:c":0.0, + "~:d":1.0, + "~:e":0.0, + "~:f":0.0 + } + }, + "~:rotation":0, + "~:name":"Root Frame", + "~:width":0.01, + "~:type":"~:frame", + "~:points":[ + { + "~#point":{ + "~:x":0, + "~:y":0 + } + }, + { + "~#point":{ + "~:x":0.01, + "~:y":0 + } + }, + { + "~#point":{ + "~:x":0.01, + "~:y":0.01 + } + }, + { + "~#point":{ + "~:x":0, + "~:y":0.01 + } + } + ], + "~:proportion-lock":false, + "~:transform-inverse":{ + "~#matrix":{ + "~:a":1.0, + "~:b":0.0, + "~:c":0.0, + "~:d":1.0, + "~:e":0.0, + "~:f":0.0 + } + }, + "~:id":"~u00000000-0000-0000-0000-000000000000", + "~:parent-id":"~u00000000-0000-0000-0000-000000000000", + "~:frame-id":"~u00000000-0000-0000-0000-000000000000", + "~:strokes":[ + + ], + "~:x":0, + "~:proportion":1.0, + "~:selrect":{ + "~#rect":{ + "~:x":0, + "~:y":0, + "~:width":0.01, + "~:height":0.01, + "~:x1":0, + "~:y1":0, + "~:x2":0.01, + "~:y2":0.01 + } + }, + "~:fills":[ + { + "~:fill-color":"#FFFFFF", + "~:fill-opacity":1 + } + ], + "~:flip-x":null, + "~:height":0.01, + "~:flip-y":null, + "~:shapes":[ + "~uc70224ec-c410-807b-8004-743400e00be8" + ] + } + }, + "~uc70224ec-c410-807b-8004-743400e00be8":{ + "~#shape":{ + "~:y":255, + "~:rx":0, + "~:transform":{ + "~#matrix":{ + "~:a":1.0, + "~:b":0.0, + "~:c":0.0, + "~:d":1.0, + "~:e":0.0, + "~:f":0.0 + } + }, + "~:rotation":0, + "~:grow-type":"~:fixed", + "~:hide-in-viewer":false, + "~:name":"Rectangle", + "~:width":279.0000000000001, + "~:type":"~:rect", + "~:points":[ + { + "~#point":{ + "~:x":523, + "~:y":255 + } + }, + { + "~#point":{ + "~:x":802.0000000000001, + "~:y":255 + } + }, + { + "~#point":{ + "~:x":802.0000000000001, + "~:y":534 + } + }, + { + "~#point":{ + "~:x":523, + "~:y":534 + } + } + ], + "~:proportion-lock":false, + "~:transform-inverse":{ + "~#matrix":{ + "~:a":1.0, + "~:b":0.0, + "~:c":0.0, + "~:d":1.0, + "~:e":0.0, + "~:f":0.0 + } + }, + "~:id":"~uc70224ec-c410-807b-8004-743400e00be8", + "~:parent-id":"~u00000000-0000-0000-0000-000000000000", + "~:frame-id":"~u00000000-0000-0000-0000-000000000000", + "~:strokes":[ + + ], + "~:x":523, + "~:proportion":1, + "~:selrect":{ + "~#rect":{ + "~:x":523, + "~:y":255, + "~:width":279.0000000000001, + "~:height":279, + "~:x1":523, + "~:y1":255, + "~:x2":802.0000000000001, + "~:y2":534 + } + }, + "~:fills":[ + { + "~:fill-color":"#B1B2B5", + "~:fill-opacity":1 + } + ], + "~:flip-x":null, + "~:ry":0, + "~:height":279, + "~:flip-y":null + } + } + }, + "~:id":"~uc1249a66-fce0-8175-8004-7433fe4be8bd", + "~:name":"Page 1" + } + }, + "~:id":"~uc1249a66-fce0-8175-8004-7433fe4be8bc", + "~:options":{ + "~:components-v2":true + }, + "~:recent-colors":[ + { + "~:color":"#187cd5", + "~:opacity":1 + } + ], + "~:colors":{ + "~uc70224ec-c410-807b-8004-74340616cffb":{ + "~:path":"", + "~:color":"#187cd5", + "~:name":"test-color-187cd5", + "~:modified-at":"~m1717512945259", + "~:opacity":1, + "~:id":"~uc70224ec-c410-807b-8004-74340616cffb" + } + } + } +} \ No newline at end of file diff --git a/frontend/playwright/data/workspace/get-team-shared-libraries-non-empty.json b/frontend/playwright/data/workspace/get-team-shared-libraries-non-empty.json new file mode 100644 index 0000000000..05a5c8c3c1 --- /dev/null +++ b/frontend/playwright/data/workspace/get-team-shared-libraries-non-empty.json @@ -0,0 +1,47 @@ +{ + "~#set":[ + { + "~:name":"Testing library 1", + "~:revn":2, + "~:modified-at":"~m1717512948250", + "~:thumbnail-uri":"http://localhost:3000/assets/by-id/5ad7a7a7-c64e-4bb8-852d-15708d125905", + "~:id":"~uc1249a66-fce0-8175-8004-7433fe4be8bc", + "~:is-shared":true, + "~:project-id":"~uc7ce0794-0992-8105-8004-38e630f7920b", + "~:created-at":"~m1717512934704", + "~:library-summary":{ + "~:components":{ + "~:count":0, + "~:sample":[ + + ] + }, + "~:media":{ + "~:count":0, + "~:sample":[ + + ] + }, + "~:colors":{ + "~:count":1, + "~:sample":[ + { + "~:path":"", + "~:color":"#187cd5", + "~:name":"test-color", + "~:modified-at":"~m1717512945259", + "~:opacity":1, + "~:id":"~uc70224ec-c410-807b-8004-74340616cffb" + } + ] + }, + "~:typographies":{ + "~:count":0, + "~:sample":[ + + ] + } + } + } + ] +} \ No newline at end of file diff --git a/frontend/playwright/data/workspace/link-file-to-library.json b/frontend/playwright/data/workspace/link-file-to-library.json new file mode 100644 index 0000000000..0967ef424b --- /dev/null +++ b/frontend/playwright/data/workspace/link-file-to-library.json @@ -0,0 +1 @@ +{} diff --git a/frontend/playwright/data/workspace/unlink-file-from-library.json b/frontend/playwright/data/workspace/unlink-file-from-library.json new file mode 100644 index 0000000000..0967ef424b --- /dev/null +++ b/frontend/playwright/data/workspace/unlink-file-from-library.json @@ -0,0 +1 @@ +{} diff --git a/frontend/playwright/ui/pages/WorkspacePage.js b/frontend/playwright/ui/pages/WorkspacePage.js index 5bcfa5f9f2..3dafef4657 100644 --- a/frontend/playwright/ui/pages/WorkspacePage.js +++ b/frontend/playwright/ui/pages/WorkspacePage.js @@ -45,6 +45,11 @@ export class WorkspacePage extends BaseWebSocketPage { this.rootShape = page.locator(`[id="shape-00000000-0000-0000-0000-000000000000"]`); this.rectShapeButton = page.getByRole("button", { name: "Rectangle (R)" }); this.colorpicker = page.getByTestId("colorpicker"); + this.palette = page.getByTestId("palette"); + this.assets = page.getByTestId("assets"); + this.libraries = page.getByTestId("libraries"); + this.closeLibraries = page.getByTestId("close-libraries"); + this.librariesModal = page.getByTestId("libraries-modal"); } async goToWorkspace() { @@ -97,4 +102,30 @@ export class WorkspacePage extends BaseWebSocketPage { await this.viewport.hover({ position: { x: x + width, y: y + height } }); await this.page.mouse.up(); } + + async clickAssets(clickOptions = {}) { + await this.assets.click(clickOptions); + } + + async clickLibraries(clickOptions = {}) { + await this.libraries.click(clickOptions); + } + + async clickLibrary(name, clickOptions = {}) { + await this.page + .getByTestId("library-item") + .filter({ hasText: name }) + .getByRole("button") + .click(clickOptions); + } + + async clickCloseLibraries(clickOptions = {}) { + await this.closeLibraries.click(clickOptions); + } + + async clickColorPalette(clickOptions = {}) { + await this.palette + .getByRole("button", { name: "Color Palette (Alt+P)" }) + .click(clickOptions); + } } diff --git a/frontend/playwright/ui/specs/workspace.spec.js b/frontend/playwright/ui/specs/workspace.spec.js index 58e9e5697f..529965613d 100644 --- a/frontend/playwright/ui/specs/workspace.spec.js +++ b/frontend/playwright/ui/specs/workspace.spec.js @@ -38,3 +38,31 @@ test("User draws a rect", async ({ page }) => { await expect(shape).toHaveAttribute("width", "200"); await expect(shape).toHaveAttribute("height", "100"); }); + +test("User adds a library and its automatically selected in the color palette", async ({ page }) => { + const workspacePage = new WorkspacePage(page); + await workspacePage.setupEmptyFile(); + await workspacePage.mockRPC("link-file-to-library", "workspace/link-file-to-library.json"); + await workspacePage.mockRPC("unlink-file-from-library", "workspace/unlink-file-from-library.json"); + await workspacePage.mockRPC("get-team-shared-files?team-id=*", "workspace/get-team-shared-libraries-non-empty.json"); + + await workspacePage.goToWorkspace(); + + // Add Testing library 1 + await workspacePage.clickColorPalette(); + await workspacePage.clickAssets(); + // Now the get-file call should return a library + await workspacePage.mockRPC(/get\-file\?/, "workspace/get-file-library.json"); + await workspacePage.clickLibraries(); + await workspacePage.clickLibrary("Testing library 1") + await workspacePage.clickCloseLibraries(); + + await expect(workspacePage.palette.getByRole("button", { name: "test-color-187cd5" })).toBeVisible(); + + // Remove Testing library 1 + await workspacePage.clickLibraries(); + await workspacePage.clickLibrary("Testing library 1") + await workspacePage.clickCloseLibraries(); + + await expect(workspacePage.palette.getByText('There are no color styles in your library yet')).toBeVisible(); +}); diff --git a/frontend/src/app/main/ui/components/tab_container.cljs b/frontend/src/app/main/ui/components/tab_container.cljs index 20c79a417f..1e3b99079c 100644 --- a/frontend/src/app/main/ui/components/tab_container.cljs +++ b/frontend/src/app/main/ui/components/tab_container.cljs @@ -59,6 +59,7 @@ [:div {:key (str/concat "tab-" sid) :title tooltip :data-id sid + :data-testid sid :on-click on-click :class (stl/css-case :tab-container-tab-title true diff --git a/frontend/src/app/main/ui/workspace/libraries.cljs b/frontend/src/app/main/ui/workspace/libraries.cljs index e28f28f966..d07517c7b8 100644 --- a/frontend/src/app/main/ui/workspace/libraries.cljs +++ b/frontend/src/app/main/ui/workspace/libraries.cljs @@ -230,7 +230,8 @@ (for [{:keys [id name] :as library} linked-libraries] [:div {:class (stl/css :section-list-item) - :key (dm/str id)} + :key (dm/str id) + :data-testid "library-item"} [:div {:class (stl/css :item-content)} [:div {:class (stl/css :item-name)} name] [:ul {:class (stl/css :item-contents)} @@ -263,7 +264,8 @@ [:div {:class (stl/css :section-list-shared)} (for [{:keys [id name] :as library} shared-libraries] [:div {:class (stl/css :section-list-item) - :key (dm/str id)} + :key (dm/str id) + :data-testid "library-item"} [:div {:class (stl/css :item-content)} [:div {:class (stl/css :item-name)} name] [:ul {:class (stl/css :item-contents)} @@ -513,10 +515,11 @@ (when team-id (st/emit! (dwl/fetch-shared-files {:team-id team-id})))) - [:div {:class (stl/css :modal-overlay) :on-click close-dialog-outside} + [:div {:class (stl/css :modal-overlay) :on-click close-dialog-outside :data-testid "libraries-modal"} [:div {:class (stl/css :modal-dialog)} [:button {:class (stl/css :close-btn) - :on-click close-dialog} + :on-click close-dialog + :data-testid "close-libraries"} close-icon] [:div {:class (stl/css :modal-title)} (tr "workspace.libraries.libraries")] diff --git a/frontend/src/app/main/ui/workspace/palette.cljs b/frontend/src/app/main/ui/workspace/palette.cljs index eedaeda61f..b0d246a99a 100644 --- a/frontend/src/app/main/ui/workspace/palette.cljs +++ b/frontend/src/app/main/ui/workspace/palette.cljs @@ -141,7 +141,8 @@ (swap! state* assoc :width width))) [:div {:class (stl/css :palette-wrapper) - :style (calculate-palette-padding rulers?)} + :style (calculate-palette-padding rulers?) + :data-testid "palette"} (when-not workspace-read-only? [:div {:ref parent-ref :class (dm/str size-classname " " (stl/css-case :palettes true diff --git a/frontend/src/app/main/ui/workspace/sidebar/assets.cljs b/frontend/src/app/main/ui/workspace/sidebar/assets.cljs index b3f755fc5e..af12d40ab8 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/assets.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/assets.cljs @@ -157,7 +157,8 @@ [:div {:class (stl/css :assets-header)} (when-not ^boolean read-only? [:button {:class (stl/css :libraries-button) - :on-click show-libraries-dialog} + :on-click show-libraries-dialog + :data-testid "libraries"} [:span {:class (stl/css :libraries-icon)} i/library] (tr "workspace.assets.libraries")]) From 08c390113485cb59df8c8ac24cc221087800ad0a Mon Sep 17 00:00:00 2001 From: Alejandro Alonso Date: Thu, 6 Jun 2024 07:48:41 +0200 Subject: [PATCH 064/476] :sparkles: Speed up e2e testing --- .circleci/config.yml | 2 +- frontend/package.json | 1 + frontend/scripts/e2e-server.js | 4 ++++ frontend/yarn.lock | 1 + 4 files changed, 7 insertions(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 70ba3b8015..13074f6bf0 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -108,7 +108,7 @@ jobs: command: | yarn install yarn run compile - yarn run compile:cljs + clojure -M:dev:shadow-cljs release main yarn playwright install --with-deps chromium yarn e2e:test diff --git a/frontend/package.json b/frontend/package.json index 64b8d826bd..51cf909c40 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -90,6 +90,7 @@ "workerpool": "^9.1.1" }, "dependencies": { + "compression": "^1.7.4", "date-fns": "^3.6.0", "eventsource-parser": "^1.1.2", "highlight.js": "^11.9.0", diff --git a/frontend/scripts/e2e-server.js b/frontend/scripts/e2e-server.js index 4c441d21c6..c057438132 100644 --- a/frontend/scripts/e2e-server.js +++ b/frontend/scripts/e2e-server.js @@ -1,10 +1,14 @@ import express from "express"; +import compression from "compression"; + import { fileURLToPath } from "url"; import path from "path"; const app = express(); const port = 3000; +app.use(compression()); + const staticPath = path.join(fileURLToPath(import.meta.url), "../../resources/public"); app.use(express.static(staticPath)); diff --git a/frontend/yarn.lock b/frontend/yarn.lock index c93f4b0413..ce42f642a2 100644 --- a/frontend/yarn.lock +++ b/frontend/yarn.lock @@ -7924,6 +7924,7 @@ __metadata: "@types/node": "npm:^20.11.20" animate.css: "npm:^4.1.1" autoprefixer: "npm:^10.4.19" + compression: "npm:^1.7.4" concurrently: "npm:^8.2.2" date-fns: "npm:^3.6.0" draft-js: "git+https://github.com/penpot/draft-js.git#commit=4a99b2a6020b2af97f6dc5fa1b4275ec16b559a0" From 1d88c7e92ddfd41e67e69d1b76eb866944757c53 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Thu, 6 Jun 2024 13:27:27 +0200 Subject: [PATCH 065/476] :arrow_up: Upgrade devenv linux distribution version We pass from ubuntu 22.04 LTS to Debian 12 (bookworm) Update postgresql from 15 to 16 Update JVM21 to the latest minor version --- docker/devenv/Dockerfile | 24 +++++++++--------------- docker/devenv/docker-compose.yaml | 6 +++--- 2 files changed, 12 insertions(+), 18 deletions(-) diff --git a/docker/devenv/Dockerfile b/docker/devenv/Dockerfile index c67d3cc82d..7182905a64 100644 --- a/docker/devenv/Dockerfile +++ b/docker/devenv/Dockerfile @@ -1,4 +1,4 @@ -FROM ubuntu:22.04 +FROM debian:bookworm LABEL maintainer="Andrey Antukh " ARG DEBIAN_FRONTEND=noninteractive @@ -33,7 +33,6 @@ RUN set -ex; \ unzip \ rsync \ fakeroot \ - netcat \ file \ less \ jq \ @@ -105,12 +104,12 @@ RUN set -eux; \ ARCH="$(dpkg --print-architecture)"; \ case "${ARCH}" in \ aarch64|arm64) \ - ESUM='3ce6a2b357e2ef45fd6b53d6587aa05bfec7771e7fb982f2c964f6b771b7526a'; \ - BINARY_URL='https://github.com/adoptium/temurin21-binaries/releases/download/jdk-21.0.2%2B13/OpenJDK21U-jdk_aarch64_linux_hotspot_21.0.2_13.tar.gz'; \ + ESUM='7d3ab0e8eba95bd682cfda8041c6cb6fa21e09d0d9131316fd7c96c78969de31'; \ + BINARY_URL='https://github.com/adoptium/temurin21-binaries/releases/download/jdk-21.0.3%2B9/OpenJDK21U-jdk_aarch64_linux_hotspot_21.0.3_9.tar.gz'; \ ;; \ amd64|x86_64) \ - ESUM='454bebb2c9fe48d981341461ffb6bf1017c7b7c6e15c6b0c29b959194ba3aaa5'; \ - BINARY_URL='https://github.com/adoptium/temurin21-binaries/releases/download/jdk-21.0.2%2B13/OpenJDK21U-jdk_x64_linux_hotspot_21.0.2_13.tar.gz'; \ + ESUM='fffa52c22d797b715a962e6c8d11ec7d79b90dd819b5bc51d62137ea4b22a340'; \ + BINARY_URL='https://github.com/adoptium/temurin21-binaries/releases/download/jdk-21.0.3%2B9/OpenJDK21U-jdk_x64_linux_hotspot_21.0.3_9.tar.gz'; \ ;; \ *) \ echo "Unsupported arch: ${ARCH}"; \ @@ -133,10 +132,11 @@ RUN set -ex; \ rm -rf /tmp/clojure.sh; RUN set -ex; \ - curl https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -; \ - echo "deb http://apt.postgresql.org/pub/repos/apt jammy-pgdg main" >> /etc/apt/sources.list.d/postgresql.list; \ + install -d /usr/share/postgresql-common/pgdg; \ + curl -o /usr/share/postgresql-common/pgdg/apt.postgresql.org.asc --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc; \ + echo "deb [signed-by=/usr/share/postgresql-common/pgdg/apt.postgresql.org.asc] https://apt.postgresql.org/pub/repos/apt bookworm-pgdg main" >> /etc/apt/sources.list.d/postgresql.list; \ apt-get -qq update; \ - apt-get -qqy install postgresql-client-15; \ + apt-get -qqy install postgresql-client-16; \ rm -rf /var/lib/apt/lists/*; RUN set -eux; \ @@ -244,12 +244,6 @@ RUN set -ex; \ WORKDIR /home -EXPOSE 3447 -EXPOSE 3448 -EXPOSE 3449 -EXPOSE 6060 -EXPOSE 9090 - COPY files/nginx.conf /etc/nginx/nginx.conf COPY files/nginx-mime.types /etc/nginx/mime.types COPY files/phantomjs-mock /usr/bin/phantomjs diff --git a/docker/devenv/docker-compose.yaml b/docker/devenv/docker-compose.yaml index bd1a3167b3..0d6aa068f4 100644 --- a/docker/devenv/docker-compose.yaml +++ b/docker/devenv/docker-compose.yaml @@ -8,7 +8,7 @@ networks: - subnet: 172.177.9.0/24 volumes: - postgres_data_pg15: + postgres_data_pg16: user_data: minio_data: redis_data: @@ -86,7 +86,7 @@ services: - 9001:9001 postgres: - image: postgres:15 + image: postgres:16 command: postgres -c config_file=/etc/postgresql.conf restart: always stop_signal: SIGINT @@ -98,7 +98,7 @@ services: volumes: - ./files/postgresql.conf:/etc/postgresql.conf:z - ./files/postgresql_init.sql:/docker-entrypoint-initdb.d/init.sql:z - - postgres_data_pg15:/var/lib/postgresql/data + - postgres_data_pg16:/var/lib/postgresql/data redis: image: redis:7 From c8ff8fcbf7ca387a92d9d39a096915f744ba0c8e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bel=C3=A9n=20Albeza?= Date: Wed, 5 Jun 2024 14:53:35 +0200 Subject: [PATCH 066/476] :bug: Fix multiple constraints dropdown not showing 'mixed' --- .../main/ui/workspace/sidebar/options/menus/constraints.cljs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs b/frontend/src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs index c669ad4450..a31001af4c 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs @@ -209,12 +209,12 @@ [:div {:class (stl/css :contraints-selects)} [:div {:class (stl/css :horizontal-select)} [:& select - {:default-value (d/nilv (d/name constraints-h) "scale") + {:default-value (if (not= constraints-h :multiple) (d/nilv (d/name constraints-h) "scale") "") :options options-h :on-change on-constraint-h-select-changed}]] [:div {:class (stl/css :vertical-select)} [:& select - {:default-value (d/nilv (d/name constraints-v) "scale") + {:default-value (if (not= constraints-v :multiple) (d/nilv (d/name constraints-v) "scale") "") :options options-v :on-change on-constraint-v-select-changed}]] (when first-level? From 4efab3e8c896859954f42c5d7f1cad53ed31f31e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bel=C3=A9n=20Albeza?= Date: Wed, 5 Jun 2024 15:52:38 +0200 Subject: [PATCH 067/476] :sparkles: Add an integration test for #7686 (constraints dropdown) --- CHANGES.md | 1 + ...et-file-fragment-multiple-constraints.json | 363 ++++++++++++++++++ .../design/get-file-multiple-constraints.json | 49 +++ ...bject-thumbnails-multiple-constraints.json | 3 + frontend/playwright/ui/pages/WorkspacePage.js | 17 +- .../playwright/ui/specs/design-tab.spec.js | 46 +++ .../app/main/ui/workspace/sidebar/layers.cljs | 4 +- .../sidebar/options/menus/constraints.cljs | 4 +- 8 files changed, 479 insertions(+), 8 deletions(-) create mode 100644 frontend/playwright/data/design/get-file-fragment-multiple-constraints.json create mode 100644 frontend/playwright/data/design/get-file-multiple-constraints.json create mode 100644 frontend/playwright/data/design/get-file-object-thumbnails-multiple-constraints.json create mode 100644 frontend/playwright/ui/specs/design-tab.spec.js diff --git a/CHANGES.md b/CHANGES.md index eb5fa43d1b..d4e659d92a 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -11,6 +11,7 @@ ### :sparkles: New features - Fix clickable area of Penptot logo in the viewer [Taiga #7988](https://tree.taiga.io/project/penpot/issue/7988) +- Fix constraints dropdown when selecting multiple shapes [Taiga #7686](https://tree.taiga.io/project/penpot/issue/7686) - Improve auth process [Taiga #7094](https://tree.taiga.io/project/penpot/us/7094) - Add locking degrees increment (hold shift) on path edition [Taiga #7761](https://tree.taiga.io/project/penpot/issue/7761) - Persistence & Concurrent Edition Enhancements [Taiga #5657](https://tree.taiga.io/project/penpot/us/5657) diff --git a/frontend/playwright/data/design/get-file-fragment-multiple-constraints.json b/frontend/playwright/data/design/get-file-fragment-multiple-constraints.json new file mode 100644 index 0000000000..1a055d7d15 --- /dev/null +++ b/frontend/playwright/data/design/get-file-fragment-multiple-constraints.json @@ -0,0 +1,363 @@ +{ + "~:id": "~u03bff843-920f-81a1-8004-7563acdc8ca1", + "~:file-id": "~u03bff843-920f-81a1-8004-756365e1eb6a", + "~:created-at": "~m1717592543081", + "~:content": { + "~:options": {}, + "~:objects": { + "~u00000000-0000-0000-0000-000000000000": { + "~#shape": { + "~:y": 0, + "~:hide-fill-on-export": false, + "~:transform": { + "~#matrix": { + "~:a": 1.0, + "~:b": 0.0, + "~:c": 0.0, + "~:d": 1.0, + "~:e": 0.0, + "~:f": 0.0 + } + }, + "~:rotation": 0, + "~:name": "Root Frame", + "~:width": 0.01, + "~:type": "~:frame", + "~:points": [ + { + "~#point": { + "~:x": 0, + "~:y": 0 + } + }, + { + "~#point": { + "~:x": 0.01, + "~:y": 0 + } + }, + { + "~#point": { + "~:x": 0.01, + "~:y": 0.01 + } + }, + { + "~#point": { + "~:x": 0, + "~:y": 0.01 + } + } + ], + "~:proportion-lock": false, + "~:transform-inverse": { + "~#matrix": { + "~:a": 1.0, + "~:b": 0.0, + "~:c": 0.0, + "~:d": 1.0, + "~:e": 0.0, + "~:f": 0.0 + } + }, + "~:id": "~u00000000-0000-0000-0000-000000000000", + "~:parent-id": "~u00000000-0000-0000-0000-000000000000", + "~:frame-id": "~u00000000-0000-0000-0000-000000000000", + "~:strokes": [], + "~:x": 0, + "~:proportion": 1.0, + "~:selrect": { + "~#rect": { + "~:x": 0, + "~:y": 0, + "~:width": 0.01, + "~:height": 0.01, + "~:x1": 0, + "~:y1": 0, + "~:x2": 0.01, + "~:y2": 0.01 + } + }, + "~:fills": [ + { + "~:fill-color": "#FFFFFF", + "~:fill-opacity": 1 + } + ], + "~:flip-x": null, + "~:height": 0.01, + "~:flip-y": null, + "~:shapes": [ + "~ub574c052-1a31-80bb-8004-75636879759b" + ] + } + }, + "~ub574c052-1a31-80bb-8004-75636879759b": { + "~#shape": { + "~:y": 128, + "~:hide-fill-on-export": false, + "~:transform": { + "~#matrix": { + "~:a": 1.0, + "~:b": 0.0, + "~:c": 0.0, + "~:d": 1.0, + "~:e": 0.0, + "~:f": 0.0 + } + }, + "~:rotation": 0, + "~:grow-type": "~:fixed", + "~:hide-in-viewer": false, + "~:name": "Board", + "~:width": 256, + "~:type": "~:frame", + "~:points": [ + { + "~#point": { + "~:x": 128, + "~:y": 128 + } + }, + { + "~#point": { + "~:x": 384, + "~:y": 128 + } + }, + { + "~#point": { + "~:x": 384, + "~:y": 384 + } + }, + { + "~#point": { + "~:x": 128, + "~:y": 384 + } + } + ], + "~:proportion-lock": false, + "~:transform-inverse": { + "~#matrix": { + "~:a": 1.0, + "~:b": 0.0, + "~:c": 0.0, + "~:d": 1.0, + "~:e": 0.0, + "~:f": 0.0 + } + }, + "~:id": "~ub574c052-1a31-80bb-8004-75636879759b", + "~:parent-id": "~u00000000-0000-0000-0000-000000000000", + "~:frame-id": "~u00000000-0000-0000-0000-000000000000", + "~:strokes": [], + "~:x": 128, + "~:proportion": 1, + "~:selrect": { + "~#rect": { + "~:x": 128, + "~:y": 128, + "~:width": 256, + "~:height": 256, + "~:x1": 128, + "~:y1": 128, + "~:x2": 384, + "~:y2": 384 + } + }, + "~:fills": [ + { + "~:fill-color": "#FFFFFF", + "~:fill-opacity": 1 + } + ], + "~:flip-x": null, + "~:height": 256, + "~:flip-y": null, + "~:shapes": [ + "~ub574c052-1a31-80bb-8004-75636a9b8205", + "~ub574c052-1a31-80bb-8004-756392461069" + ] + } + }, + "~ub574c052-1a31-80bb-8004-75636a9b8205": { + "~#shape": { + "~:y": 136, + "~:rx": 0, + "~:transform": { + "~#matrix": { + "~:a": 1.0, + "~:b": 0.0, + "~:c": 0.0, + "~:d": 1.0, + "~:e": 0.0, + "~:f": 0.0 + } + }, + "~:rotation": 0, + "~:grow-type": "~:fixed", + "~:hide-in-viewer": false, + "~:name": "Rectangle", + "~:width": 64, + "~:type": "~:rect", + "~:points": [ + { + "~#point": { + "~:x": 136, + "~:y": 136 + } + }, + { + "~#point": { + "~:x": 200, + "~:y": 136 + } + }, + { + "~#point": { + "~:x": 200, + "~:y": 199.99999999999997 + } + }, + { + "~#point": { + "~:x": 136, + "~:y": 199.99999999999997 + } + } + ], + "~:proportion-lock": false, + "~:transform-inverse": { + "~#matrix": { + "~:a": 1.0, + "~:b": 0.0, + "~:c": 0.0, + "~:d": 1.0, + "~:e": 0.0, + "~:f": 0.0 + } + }, + "~:id": "~ub574c052-1a31-80bb-8004-75636a9b8205", + "~:parent-id": "~ub574c052-1a31-80bb-8004-75636879759b", + "~:frame-id": "~ub574c052-1a31-80bb-8004-75636879759b", + "~:strokes": [], + "~:x": 136, + "~:proportion": 1, + "~:selrect": { + "~#rect": { + "~:x": 136, + "~:y": 136, + "~:width": 64, + "~:height": 63.99999999999997, + "~:x1": 136, + "~:y1": 136, + "~:x2": 200, + "~:y2": 199.99999999999997 + } + }, + "~:fills": [ + { + "~:fill-color": "#B1B2B5", + "~:fill-opacity": 1 + } + ], + "~:flip-x": null, + "~:ry": 0, + "~:height": 63.99999999999997, + "~:flip-y": null + } + }, + "~ub574c052-1a31-80bb-8004-756392461069": { + "~#shape": { + "~:y": 136, + "~:transform": { + "~#matrix": { + "~:a": 1.0, + "~:b": 0.0, + "~:c": 0.0, + "~:d": 1.0, + "~:e": 0.0, + "~:f": 0.0 + } + }, + "~:rotation": 0, + "~:grow-type": "~:fixed", + "~:hide-in-viewer": false, + "~:name": "Ellipse", + "~:width": 64, + "~:type": "~:circle", + "~:points": [ + { + "~#point": { + "~:x": 256, + "~:y": 136 + } + }, + { + "~#point": { + "~:x": 320, + "~:y": 136 + } + }, + { + "~#point": { + "~:x": 320, + "~:y": 200 + } + }, + { + "~#point": { + "~:x": 256, + "~:y": 200 + } + } + ], + "~:proportion-lock": false, + "~:transform-inverse": { + "~#matrix": { + "~:a": 1.0, + "~:b": 0.0, + "~:c": 0.0, + "~:d": 1.0, + "~:e": 0.0, + "~:f": 0.0 + } + }, + "~:constraints-v": "~:bottom", + "~:constraints-h": "~:right", + "~:id": "~ub574c052-1a31-80bb-8004-756392461069", + "~:parent-id": "~ub574c052-1a31-80bb-8004-75636879759b", + "~:frame-id": "~ub574c052-1a31-80bb-8004-75636879759b", + "~:strokes": [], + "~:x": 256, + "~:proportion": 1, + "~:selrect": { + "~#rect": { + "~:x": 256, + "~:y": 136, + "~:width": 64, + "~:height": 64, + "~:x1": 256, + "~:y1": 136, + "~:x2": 320, + "~:y2": 200 + } + }, + "~:fills": [ + { + "~:fill-color": "#B1B2B5", + "~:fill-opacity": 1 + } + ], + "~:flip-x": null, + "~:height": 64, + "~:flip-y": null + } + } + }, + "~:id": "~u03bff843-920f-81a1-8004-756365e1eb6b", + "~:name": "Page 1" + } +} \ No newline at end of file diff --git a/frontend/playwright/data/design/get-file-multiple-constraints.json b/frontend/playwright/data/design/get-file-multiple-constraints.json new file mode 100644 index 0000000000..76edd0baf0 --- /dev/null +++ b/frontend/playwright/data/design/get-file-multiple-constraints.json @@ -0,0 +1,49 @@ +{ + "~:features": { + "~#set": [ + "layout/grid", + "styles/v2", + "fdata/pointer-map", + "fdata/objects-map", + "components/v2", + "fdata/shape-data-type" + ] + }, + "~:permissions": { + "~:type": "~:membership", + "~:is-owner": true, + "~:is-admin": true, + "~:can-edit": true, + "~:can-read": true, + "~:is-logged": true + }, + "~:has-media-trimmed": false, + "~:comment-thread-seqn": 0, + "~:name": "New File 2", + "~:revn": 9, + "~:modified-at": "~m1717592543083", + "~:id": "~u03bff843-920f-81a1-8004-756365e1eb6a", + "~:is-shared": false, + "~:version": 48, + "~:project-id": "~u0515a066-e303-8169-8004-73eb401b5d55", + "~:created-at": "~m1717592470408", + "~:data": { + "~:pages": [ + "~u03bff843-920f-81a1-8004-756365e1eb6b" + ], + "~:pages-index": { + "~u03bff843-920f-81a1-8004-756365e1eb6b": { + "~#penpot/pointer": [ + "~u03bff843-920f-81a1-8004-7563acdc8ca1", + { + "~:created-at": "~m1717592543090" + } + ] + } + }, + "~:id": "~u03bff843-920f-81a1-8004-756365e1eb6a", + "~:options": { + "~:components-v2": true + } + } +} \ No newline at end of file diff --git a/frontend/playwright/data/design/get-file-object-thumbnails-multiple-constraints.json b/frontend/playwright/data/design/get-file-object-thumbnails-multiple-constraints.json new file mode 100644 index 0000000000..f3a0d6d274 --- /dev/null +++ b/frontend/playwright/data/design/get-file-object-thumbnails-multiple-constraints.json @@ -0,0 +1,3 @@ +{ + "03bff843-920f-81a1-8004-756365e1eb6a/03bff843-920f-81a1-8004-756365e1eb6b/b574c052-1a31-80bb-8004-75636879759b/frame": "http://localhost:3449/assets/by-id/bdc9e592-f685-4b08-9a44-127ce20efee6" +} \ No newline at end of file diff --git a/frontend/playwright/ui/pages/WorkspacePage.js b/frontend/playwright/ui/pages/WorkspacePage.js index 5bcfa5f9f2..d664472532 100644 --- a/frontend/playwright/ui/pages/WorkspacePage.js +++ b/frontend/playwright/ui/pages/WorkspacePage.js @@ -45,12 +45,11 @@ export class WorkspacePage extends BaseWebSocketPage { this.rootShape = page.locator(`[id="shape-00000000-0000-0000-0000-000000000000"]`); this.rectShapeButton = page.getByRole("button", { name: "Rectangle (R)" }); this.colorpicker = page.getByTestId("colorpicker"); + this.layers = page.getByTestId("layers"); } - async goToWorkspace() { - await this.page.goto( - `/#/workspace/${WorkspacePage.anyProjectId}/${WorkspacePage.anyFileId}?page-id=${WorkspacePage.anyPageId}`, - ); + async goToWorkspace({ fileId = WorkspacePage.anyFileId, pageId = WorkspacePage.anyPageId } = {}) { + await this.page.goto(`/#/workspace/${WorkspacePage.anyProjectId}/${fileId}?page-id=${pageId}`); this.#ws = await this.waitForNotificationsWebSocket(); await this.#ws.mockOpen(); @@ -97,4 +96,14 @@ export class WorkspacePage extends BaseWebSocketPage { await this.viewport.hover({ position: { x: x + width, y: y + height } }); await this.page.mouse.up(); } + + async clickLeafLayer(name, clickOptions = {}) { + const layer = this.layers.getByText(name); + await layer.click(clickOptions); + } + + async clickToggableLayer(name, clickOptions = {}) { + const layer = this.layers.getByTestId("layer-item").filter({ has: this.page.getByText(name) }); + await layer.getByRole("button").click(clickOptions); + } } diff --git a/frontend/playwright/ui/specs/design-tab.spec.js b/frontend/playwright/ui/specs/design-tab.spec.js new file mode 100644 index 0000000000..0d637bacef --- /dev/null +++ b/frontend/playwright/ui/specs/design-tab.spec.js @@ -0,0 +1,46 @@ +import { test, expect } from "@playwright/test"; +import { WorkspacePage } from "../pages/WorkspacePage"; + +test.beforeEach(async ({ page }) => { + await WorkspacePage.init(page); +}); + +const multipleConstraintsFileId = `03bff843-920f-81a1-8004-756365e1eb6a`; +const multipleConstraintsPageId = `03bff843-920f-81a1-8004-756365e1eb6b`; + +const setupFileWithMultipeConstraints = async (workspace) => { + await workspace.setupEmptyFile(); + await workspace.mockRPC(/get\-file\?/, "design/get-file-multiple-constraints.json"); + await workspace.mockRPC( + "get-file-object-thumbnails?file-id=*", + "design/get-file-object-thumbnails-multiple-constraints.json", + ); + await workspace.mockRPC( + "get-file-fragment?file-id=*", + "design/get-file-fragment-multiple-constraints.json", + ); +}; + +test.describe("Constraints", () => { + test("Constraint dropdown shows 'Mixed' when multiple layers are selected with different constraints", async ({ + page, + }) => { + const workspace = new WorkspacePage(page); + await setupFileWithMultipeConstraints(workspace); + await workspace.goToWorkspace({ + fileId: multipleConstraintsFileId, + pageId: multipleConstraintsPageId, + }); + + await workspace.clickToggableLayer("Board"); + await workspace.clickLeafLayer("Ellipse"); + await workspace.clickLeafLayer("Rectangle", { modifiers: ["Shift"] }); + + const constraintVDropdown = workspace.page.getByTestId("constraint-v-select"); + await expect(constraintVDropdown).toContainText("Mixed"); + const constraintHDropdown = workspace.page.getByTestId("constraint-h-select"); + await expect(constraintHDropdown).toContainText("Mixed"); + + expect(false); + }); +}); diff --git a/frontend/src/app/main/ui/workspace/sidebar/layers.cljs b/frontend/src/app/main/ui/workspace/sidebar/layers.cljs index afe62a2b1d..737f80fddd 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/layers.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/layers.cljs @@ -69,7 +69,7 @@ highlighted (mf/deref refs/highlighted-shapes) highlighted (hooks/use-equal-memo highlighted) root (get objects uuid/zero)] - [:div {:class (stl/css :element-list)} + [:div {:class (stl/css :element-list) :data-testid "layer-item"} [:& hooks/sortable-container {} (for [[index id] (reverse (d/enumerate (:shapes root)))] (when-let [obj (get objects id)] @@ -510,7 +510,7 @@ (mf/use-fn #(st/emit! (dw/toggle-focus-mode)))] - [:div#layers {:class (stl/css :layers)} + [:div#layers {:class (stl/css :layers) :data-testid "layers"} (if (d/not-empty? focus) [:div {:class (stl/css :tool-window-bar)} [:button {:class (stl/css :focus-title) diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs b/frontend/src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs index a31001af4c..f9ec1f8896 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs @@ -207,12 +207,12 @@ :on-click on-constraint-button-clicked} [:span {:class (stl/css :resalted-area)}]]]] [:div {:class (stl/css :contraints-selects)} - [:div {:class (stl/css :horizontal-select)} + [:div {:class (stl/css :horizontal-select) :data-testid "constraint-h-select"} [:& select {:default-value (if (not= constraints-h :multiple) (d/nilv (d/name constraints-h) "scale") "") :options options-h :on-change on-constraint-h-select-changed}]] - [:div {:class (stl/css :vertical-select)} + [:div {:class (stl/css :vertical-select) :data-testid "constraint-v-select"} [:& select {:default-value (if (not= constraints-v :multiple) (d/nilv (d/name constraints-v) "scale") "") :options options-v From 33bf8892c07cc4d2f9f9ef659406e5175c4e3793 Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Thu, 6 Jun 2024 17:17:01 +0200 Subject: [PATCH 068/476] :bug: Fix problem when creating multiple components --- frontend/src/app/main/data/workspace/libraries.cljs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/src/app/main/data/workspace/libraries.cljs b/frontend/src/app/main/data/workspace/libraries.cljs index 1b8c59beef..f49569557a 100644 --- a/frontend/src/app/main/data/workspace/libraries.cljs +++ b/frontend/src/app/main/data/workspace/libraries.cljs @@ -341,7 +341,7 @@ (defn- add-component2 "This is the second step of the component creation." ([selected components-v2] - (add-component2 selected components-v2)) + (add-component2 nil selected components-v2)) ([id-ref selected components-v2] (ptk/reify ::add-component2 ev/Event From 40f39681ad512ff69c2cfca14a7734d6a0c21ac3 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Tue, 4 Jun 2024 13:20:58 +0200 Subject: [PATCH 069/476] :sparkles: Add backward compatibility fixes for email whitelisting --- backend/src/app/email/whitelist.clj | 44 +++++++++++++++++------------ 1 file changed, 26 insertions(+), 18 deletions(-) diff --git a/backend/src/app/email/whitelist.clj b/backend/src/app/email/whitelist.clj index d6fbd0c853..85c137bfb0 100644 --- a/backend/src/app/email/whitelist.clj +++ b/backend/src/app/email/whitelist.clj @@ -14,30 +14,38 @@ [clojure.core :as c] [clojure.java.io :as io] [cuerdas.core :as str] + [datoteka.fs :as fs] [integrant.core :as ig])) +(defn- read-whitelist + [path] + (when (and path (fs/exists? path)) + (try + (with-open [reader (io/reader path)] + (reduce (fn [result line] + (if (str/starts-with? line "#") + result + (conj result (-> line str/trim str/lower)))) + #{} + (line-seq reader))) + + (catch Throwable cause + (l/wrn :hint "unexpected exception on reading email whitelist" + :cause cause))))) + (defmethod ig/init-key ::email/whitelist [_ _] - (when (c/contains? cf/flags :email-whitelist) - (try - (let [path (cf/get :email-domain-whitelist) - result (with-open [reader (io/reader path)] - (reduce (fn [result line] - (if (str/starts-with? line "#") - result - (conj result (-> line str/trim str/lower)))) - #{} - (line-seq reader))) + (let [whitelist (or (cf/get :registration-domain-whitelist) #{}) + whitelist (if (c/contains? cf/flags :email-whitelist) + (into whitelist (read-whitelist (cf/get :email-domain-whitelist))) + whitelist) + whitelist (not-empty whitelist)] - ;; backward comapatibility with previous way to set a - ;; whitelist for email domains - result (into result (cf/get :registration-domain-whitelist))] - (l/inf :hint "initializing email whitelist" :domains (count result)) - (not-empty result)) - (catch Throwable cause - (l/wrn :hint "unexpected exception on initializing email whitelist" - :cause cause))))) + (when whitelist + (l/inf :hint "initializing email whitelist" :domains (count whitelist))) + + whitelist)) (defn contains? "Check if email is in the whitelist." From 25265cec708674085dc197260051cc856d0decbf Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Wed, 5 Jun 2024 10:39:55 +0200 Subject: [PATCH 070/476] :sparkles: Remove claims from token validation error report --- backend/src/app/tokens.clj | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/backend/src/app/tokens.clj b/backend/src/app/tokens.clj index 30ca32b3b1..b1e36b9396 100644 --- a/backend/src/app/tokens.clj +++ b/backend/src/app/tokens.clj @@ -39,15 +39,13 @@ (ex/raise :type :validation :code :invalid-token :reason :token-expired - :params params - :claims claims)) + :params params)) (when (and (contains? params :iss) (not= (:iss claims) (:iss params))) (ex/raise :type :validation :code :invalid-token :reason :invalid-issuer - :claims claims :params params)) claims)) From 046ef7eb6e659684a68b6f476798651f5e93572c Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Wed, 5 Jun 2024 10:42:13 +0200 Subject: [PATCH 071/476] :fire: Replace clojure.spec with simple assert on tokens ns --- backend/src/app/tokens.clj | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/backend/src/app/tokens.clj b/backend/src/app/tokens.clj index b1e36b9396..60b0d50b22 100644 --- a/backend/src/app/tokens.clj +++ b/backend/src/app/tokens.clj @@ -8,18 +8,19 @@ "Tokens generation API." (:require [app.common.data :as d] + [app.common.data.macros :as dm] [app.common.exceptions :as ex] - [app.common.spec :as us] [app.common.transit :as t] [app.util.time :as dt] - [buddy.sign.jwe :as jwe] - [clojure.spec.alpha :as s])) - -(s/def ::tokens-key bytes?) + [buddy.sign.jwe :as jwe])) (defn generate [{:keys [tokens-key]} claims] - (us/assert! ::tokens-key tokens-key) + + (dm/assert! + "expexted token-key to be bytes instance" + (bytes? tokens-key)) + (let [payload (-> claims (assoc :iat (dt/now)) (d/without-nils) From ae90d59b43fab0b2fe200de151001718c2fc563e Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Wed, 5 Jun 2024 11:10:28 +0200 Subject: [PATCH 072/476] :sparkles: Remove spec usage o teams rpc ns --- backend/src/app/rpc/commands/teams.clj | 116 ++++++++++++------------- 1 file changed, 57 insertions(+), 59 deletions(-) diff --git a/backend/src/app/rpc/commands/teams.clj b/backend/src/app/rpc/commands/teams.clj index 4cc75de5a4..8eb41386f3 100644 --- a/backend/src/app/rpc/commands/teams.clj +++ b/backend/src/app/rpc/commands/teams.clj @@ -12,7 +12,6 @@ [app.common.features :as cfeat] [app.common.logging :as l] [app.common.schema :as sm] - [app.common.spec :as us] [app.common.uuid :as uuid] [app.config :as cf] [app.db :as db] @@ -32,16 +31,10 @@ [app.util.services :as sv] [app.util.time :as dt] [app.worker :as wrk] - [clojure.spec.alpha :as s] [cuerdas.core :as str])) ;; --- Helpers & Specs -(s/def ::id ::us/uuid) -(s/def ::name ::us/string) -(s/def ::file-id ::us/uuid) -(s/def ::team-id ::us/uuid) - (def ^:private sql:team-permissions "select tpr.is_owner, tpr.is_admin, @@ -351,7 +344,7 @@ (def ^:private schema:create-team [:map {:title "create-team"} - [:name :string] + [:name [:string {:max 250}]] [:features {:optional true} ::cfeat/features] [:id {:optional true} ::sm/uuid]]) @@ -438,12 +431,14 @@ ;; --- Mutation: Update Team -(s/def ::update-team - (s/keys :req [::rpc/profile-id] - :req-un [::name ::id])) +(def ^:private schema:update-team + [:map {:title "update-team"} + [:name [:string {:max 250}]] + [:id ::sm/uuid]]) (sv/defmethod ::update-team - {::doc/added "1.17"} + {::doc/added "1.17" + ::sm/params schema:update-team} [{:keys [::db/pool] :as cfg} {:keys [::rpc/profile-id id name] :as params}] (db/with-atomic [conn pool] (check-edition-permissions! conn profile-id id) @@ -503,14 +498,14 @@ nil)) -(s/def ::reassign-to ::us/uuid) -(s/def ::leave-team - (s/keys :req [::rpc/profile-id] - :req-un [::id] - :opt-un [::reassign-to])) +(def ^:private schema:leave-team + [:map {:title "leave-team"} + [:id ::sm/uuid] + [:reassign-to {:optional true} ::sm/uuid]]) (sv/defmethod ::leave-team - {::doc/added "1.17"} + {::doc/added "1.17" + ::sm/params schema:leave-team} [{:keys [::db/pool] :as cfg} {:keys [::rpc/profile-id] :as params}] (db/with-atomic [conn pool] (leave-team conn (assoc params :profile-id profile-id)))) @@ -539,12 +534,13 @@ :id team-id}) team)) -(s/def ::delete-team - (s/keys :req [::rpc/profile-id] - :req-un [::id])) +(def ^:private schema:delete-team + [:map {:title "delete-team"} + [:id ::sm/uuid]]) (sv/defmethod ::delete-team - {::doc/added "1.17"} + {::doc/added "1.17" + ::sm/params schema:delete-team} [{:keys [::db/pool] :as cfg} {:keys [::rpc/profile-id id] :as params}] (db/with-atomic [conn pool] (let [perms (get-permissions conn profile-id id)] @@ -557,10 +553,6 @@ ;; --- Mutation: Team Update Role -(s/def ::team-id ::us/uuid) -(s/def ::member-id ::us/uuid) -(s/def ::role #{:owner :admin :editor}) - ;; Temporarily disabled viewer role ;; https://tree.taiga.io/project/penpot/issue/1083 (def valid-roles @@ -624,25 +616,29 @@ :profile-id member-id}) nil))) -(s/def ::update-team-member-role - (s/keys :req [::rpc/profile-id] - :req-un [::team-id ::member-id ::role])) +(def ^:private schema:update-team-member-role + [:map {:title "update-team-member-role"} + [:team-id ::sm/uuid] + [:member-id ::sm/uuid] + [:role schema:role]]) (sv/defmethod ::update-team-member-role - {::doc/added "1.17"} + {::doc/added "1.17" + ::sm/params schema:update-team-member-role} [{:keys [::db/pool] :as cfg} {:keys [::rpc/profile-id] :as params}] (db/with-atomic [conn pool] (update-team-member-role conn (assoc params :profile-id profile-id)))) - ;; --- Mutation: Delete Team Member -(s/def ::delete-team-member - (s/keys :req [::rpc/profile-id] - :req-un [::team-id ::member-id])) +(def ^:private schema:delete-team-member + [:map {:title "delete-team-member"} + [:team-id ::sm/uuid] + [:member-id ::sm/uuid]]) (sv/defmethod ::delete-team-member - {::doc/added "1.17"} + {::doc/added "1.17" + ::sm/params schema:delete-team-member} [{:keys [::db/pool] :as cfg} {:keys [::rpc/profile-id team-id member-id] :as params}] (db/with-atomic [conn pool] (let [perms (get-permissions conn profile-id team-id)] @@ -665,13 +661,14 @@ (declare upload-photo) (declare ^:private update-team-photo) -(s/def ::file ::media/upload) -(s/def ::update-team-photo - (s/keys :req [::rpc/profile-id] - :req-un [::team-id ::file])) +(def ^:private schema:update-team-photo + [:map {:title "update-team-photo"} + [:team-id ::sm/uuid] + [:file ::media/upload]]) (sv/defmethod ::update-team-photo - {::doc/added "1.17"} + {::doc/added "1.17" + ::sm/params schema:update-team-photo} [cfg {:keys [::rpc/profile-id file] :as params}] ;; Validate incoming mime type (media/validate-media-type! file #{"image/jpeg" "image/png" "image/webp"}) @@ -809,7 +806,7 @@ (def ^:private schema:create-team-invitations [:map {:title "create-team-invitations"} [:team-id ::sm/uuid] - [:role [::sm/one-of #{:owner :admin :editor}]] + [:role schema:role] [:emails ::sm/set-of-emails]]) (sv/defmethod ::create-team-invitations @@ -866,12 +863,6 @@ ;; --- Mutation: Create Team & Invite Members -(s/def ::emails ::us/set-of-valid-emails) -(s/def ::create-team-with-invitations - (s/merge ::create-team - (s/keys :req-un [::emails ::role]))) - - (def ^:private schema:create-team-with-invitations [:map {:title "create-team-with-invitations"} [:name :string] @@ -930,12 +921,14 @@ ;; --- Query: get-team-invitation-token -(s/def ::get-team-invitation-token - (s/keys :req [::rpc/profile-id] - :req-un [::team-id ::email])) +(def ^:private schema:get-team-invitation-token + [:map {:title "get-team-invitation-token"} + [:team-id ::sm/uuid] + [:email ::sm/email]]) (sv/defmethod ::get-team-invitation-token - {::doc/added "1.17"} + {::doc/added "1.17" + ::sm/params schema:get-team-invitation-token} [{:keys [::db/pool] :as cfg} {:keys [::rpc/profile-id team-id email] :as params}] (check-read-permissions! pool profile-id team-id) (let [email (profile/clean-email email) @@ -956,12 +949,15 @@ ;; --- Mutation: Update invitation role -(s/def ::update-team-invitation-role - (s/keys :req [::rpc/profile-id] - :req-un [::team-id ::email ::role])) +(def ^:private schema:update-team-invitation-role + [:map {:title "update-team-invitation-role"} + [:team-id ::sm/uuid] + [:email ::sm/email] + [:role schema:role]]) (sv/defmethod ::update-team-invitation-role - {::doc/added "1.17"} + {::doc/added "1.17" + ::sm/params schema:update-team-invitation-role} [{:keys [::db/pool] :as cfg} {:keys [::rpc/profile-id team-id email role] :as params}] (db/with-atomic [conn pool] (let [perms (get-permissions conn profile-id team-id)] @@ -977,12 +973,14 @@ ;; --- Mutation: Delete invitation -(s/def ::delete-team-invitation - (s/keys :req [::rpc/profile-id] - :req-un [::team-id ::email])) +(def ^:private schema:delete-team-invition + [:map {:title "delete-team-invitation"} + [:team-id ::sm/uuid] + [:email ::sm/email]]) (sv/defmethod ::delete-team-invitation - {::doc/added "1.17"} + {::doc/added "1.17" + ::sm/params schema:delete-team-invition} [{:keys [::db/pool] :as cfg} {:keys [::rpc/profile-id team-id email] :as params}] (db/with-atomic [conn pool] (let [perms (get-permissions conn profile-id team-id)] From 4d2f82e03a304dd012874796b0399d1f8c4f27b8 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Fri, 7 Jun 2024 11:55:43 +0200 Subject: [PATCH 073/476] :bug: Fix issue with annotation menu rerendering --- .../sidebar/options/menus/component.cljs | 24 +++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/menus/component.cljs b/frontend/src/app/main/ui/workspace/sidebar/options/menus/component.cljs index fef5e2beec..0e37301668 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options/menus/component.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/options/menus/component.cljs @@ -38,8 +38,9 @@ (l/derived :workspace-annotations st/state)) (mf/defc component-annotation - {::mf/props :obj} - [{:keys [id shape component]}] + {::mf/props :obj + ::mf/private true} + [{:keys [id shape component rerender-fn]}] (let [main-instance? (:main-instance shape) component-id (:component-id shape) annotation (:annotation component) @@ -57,6 +58,7 @@ textarea-ref (mf/use-ref) state (mf/deref ref:annotations-state) + expanded? (:expanded state) create-id (:id-for-create state) creating? (= id create-id) @@ -84,6 +86,7 @@ (mf/deps adjust-textarea-size creating?) (fn [event] (dom/stop-propagation event) + (rerender-fn) (when-let [textarea (mf/ref-val textarea-ref)] (dom/set-value! textarea annotation) (reset! editing* false) @@ -95,6 +98,7 @@ (mf/use-fn (fn [event] (dom/stop-propagation event) + (rerender-fn) (when ^boolean main-instance? (when-let [textarea (mf/ref-val textarea-ref)] (reset! editing* true) @@ -105,6 +109,7 @@ (mf/deps creating?) (fn [event] (dom/stop-propagation event) + (rerender-fn) (when-let [textarea (mf/ref-val textarea-ref)] (let [text (dom/get-value textarea)] (when-not (str/blank? text) @@ -113,13 +118,13 @@ (when ^boolean creating? (st/emit! (dw/set-annotations-id-for-create nil)))))))) - on-delete-annotation (mf/use-fn (mf/deps shape-id component-id creating?) (fn [event] (dom/stop-propagation event) (let [on-accept (fn [] + (rerender-fn) (st/emit! ;; (ptk/data-event {::ev/name "delete-component-annotation"}) (when creating? @@ -566,6 +571,17 @@ (when can-swap? (st/emit! (dwsp/open-specialized-panel :component-swap))) (tm/schedule-on-idle #(dom/focus! (dom/get-element search-id)))))) + ;; NOTE: function needed for force rerender from the bottom + ;; components. This is because `component-annotation` + ;; component changes the component but that has no direct + ;; reflection on shape which is passed on params. So for avoid + ;; the need to modify the shape artificially we just pass a + ;; rerender helper to it via react context mechanism + rerender-fn + (mf/use-fn + (fn [] + (swap! state* update :render inc))) + menu-entries (cmm/generate-components-menu-entries shapes components-v2) show-menu? (seq menu-entries) path (->> component (:path) (cfh/split-path) (cfh/join-path-with-dot))] @@ -631,6 +647,6 @@ [:& component-swap {:shapes copies}]) (when (and (not swap-opened?) (not multi) components-v2) - [:& component-annotation {:id id :shape shape :component component}]) + [:& component-annotation {:id id :shape shape :component component :rerender-fn rerender-fn}]) (when (dbg/enabled? :display-touched) [:div ":touched " (str (:touched shape))])])]))) From f052c81ee1ed0374bec67333786f4246fc401dae Mon Sep 17 00:00:00 2001 From: Pablo Alba Date: Fri, 7 Jun 2024 13:08:32 +0200 Subject: [PATCH 074/476] :bug: Fix issue with annotation menu rerendering (2) --- .../sidebar/options/menus/component.cljs | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/menus/component.cljs b/frontend/src/app/main/ui/workspace/sidebar/options/menus/component.cljs index 0e37301668..b4725a77e3 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options/menus/component.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/options/menus/component.cljs @@ -86,37 +86,37 @@ (mf/deps adjust-textarea-size creating?) (fn [event] (dom/stop-propagation event) - (rerender-fn) (when-let [textarea (mf/ref-val textarea-ref)] (dom/set-value! textarea annotation) (reset! editing* false) (when creating? (st/emit! (dw/set-annotations-id-for-create nil))) - (adjust-textarea-size)))) + (adjust-textarea-size) + (rerender-fn)))) on-edit (mf/use-fn (fn [event] (dom/stop-propagation event) - (rerender-fn) (when ^boolean main-instance? (when-let [textarea (mf/ref-val textarea-ref)] (reset! editing* true) - (dom/focus! textarea))))) + (dom/focus! textarea) + (rerender-fn))))) on-save (mf/use-fn (mf/deps creating?) (fn [event] (dom/stop-propagation event) - (rerender-fn) (when-let [textarea (mf/ref-val textarea-ref)] (let [text (dom/get-value textarea)] (when-not (str/blank? text) (reset! editing* false) (st/emit! (dw/update-component-annotation component-id text)) (when ^boolean creating? - (st/emit! (dw/set-annotations-id-for-create nil)))))))) + (st/emit! (dw/set-annotations-id-for-create nil))) + (rerender-fn)))))) on-delete-annotation (mf/use-fn @@ -124,12 +124,12 @@ (fn [event] (dom/stop-propagation event) (let [on-accept (fn [] - (rerender-fn) (st/emit! ;; (ptk/data-event {::ev/name "delete-component-annotation"}) (when creating? (dw/set-annotations-id-for-create nil)) - (dw/update-component-annotation component-id nil)))] + (dw/update-component-annotation component-id nil) + (rerender-fn)))] (st/emit! (modal/show {:type :confirm :title (tr "modals.delete-component-annotation.title") From 96b7fb7f12685c23b3446d135699e7077cd0e874 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bel=C3=A9n=20Albeza?= Date: Fri, 7 Jun 2024 13:15:20 +0200 Subject: [PATCH 075/476] :bug: Fix viewer querystring not being updated with zoom type --- frontend/src/app/main/data/viewer.cljs | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/frontend/src/app/main/data/viewer.cljs b/frontend/src/app/main/data/viewer.cljs index a45e75939a..456413018c 100644 --- a/frontend/src/app/main/data/viewer.cljs +++ b/frontend/src/app/main/data/viewer.cljs @@ -253,6 +253,18 @@ ;; --- Zoom Management +(def update-zoom-querystring + (ptk/reify ::update-zoom-querystring + ptk/WatchEvent + (watch [_ state _] + (let [zoom-type (get-in state [:viewer-local :zoom-type]) + route (:route state) + screen (-> route :data :name keyword) + qparams (:query-params route) + pparams (:path-params route)] + + (rx/of (rt/nav screen pparams (assoc qparams :zoom zoom-type))))))) + (def increase-zoom (ptk/reify ::increase-zoom ptk/UpdateEvent @@ -293,7 +305,10 @@ minzoom (min wdiff hdiff)] (-> state (assoc-in [:viewer-local :zoom] minzoom) - (assoc-in [:viewer-local :zoom-type] :fit)))))) + (assoc-in [:viewer-local :zoom-type] :fit)))) + + ptk/WatchEvent + (watch [_ _ _] (rx/of update-zoom-querystring)))) (def zoom-to-fill (ptk/reify ::zoom-to-fill @@ -309,7 +324,9 @@ maxzoom (max wdiff hdiff)] (-> state (assoc-in [:viewer-local :zoom] maxzoom) - (assoc-in [:viewer-local :zoom-type] :fill)))))) + (assoc-in [:viewer-local :zoom-type] :fill)))) + ptk/WatchEvent + (watch [_ _ _] (rx/of update-zoom-querystring)))) (def toggle-zoom-style (ptk/reify ::toggle-zoom-style From 724bc24063d696b17c0e276814795f5a9af8f941 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bel=C3=A9n=20Albeza?= Date: Fri, 7 Jun 2024 13:44:54 +0200 Subject: [PATCH 076/476] :sparkles: Add test for #7805 --- .../get-file-fragment-single-board.json | 186 ++++++++++++++++++ .../get-view-only-bundle-single-board.json | 86 ++++++++ frontend/playwright/ui/pages/ViewerPage.js | 6 +- .../playwright/ui/specs/viewer-header.spec.js | 25 +++ 4 files changed, 299 insertions(+), 4 deletions(-) create mode 100644 frontend/playwright/data/viewer/get-file-fragment-single-board.json create mode 100644 frontend/playwright/data/viewer/get-view-only-bundle-single-board.json diff --git a/frontend/playwright/data/viewer/get-file-fragment-single-board.json b/frontend/playwright/data/viewer/get-file-fragment-single-board.json new file mode 100644 index 0000000000..8c1e62a151 --- /dev/null +++ b/frontend/playwright/data/viewer/get-file-fragment-single-board.json @@ -0,0 +1,186 @@ +{ + "~:id": "~udd5cc0bb-91ff-81b9-8004-77dfae2d9e7c", + "~:file-id": "~udd5cc0bb-91ff-81b9-8004-77df9cd3edb1", + "~:created-at": "~m1717759268004", + "~:content": { + "~:options": {}, + "~:objects": { + "~u00000000-0000-0000-0000-000000000000": { + "~#shape": { + "~:y": 0, + "~:hide-fill-on-export": false, + "~:transform": { + "~#matrix": { + "~:a": 1.0, + "~:b": 0.0, + "~:c": 0.0, + "~:d": 1.0, + "~:e": 0.0, + "~:f": 0.0 + } + }, + "~:rotation": 0, + "~:name": "Root Frame", + "~:width": 0.01, + "~:type": "~:frame", + "~:points": [ + { + "~#point": { + "~:x": 0, + "~:y": 0 + } + }, + { + "~#point": { + "~:x": 0.01, + "~:y": 0 + } + }, + { + "~#point": { + "~:x": 0.01, + "~:y": 0.01 + } + }, + { + "~#point": { + "~:x": 0, + "~:y": 0.01 + } + } + ], + "~:proportion-lock": false, + "~:transform-inverse": { + "~#matrix": { + "~:a": 1.0, + "~:b": 0.0, + "~:c": 0.0, + "~:d": 1.0, + "~:e": 0.0, + "~:f": 0.0 + } + }, + "~:id": "~u00000000-0000-0000-0000-000000000000", + "~:parent-id": "~u00000000-0000-0000-0000-000000000000", + "~:frame-id": "~u00000000-0000-0000-0000-000000000000", + "~:strokes": [], + "~:x": 0, + "~:proportion": 1.0, + "~:selrect": { + "~#rect": { + "~:x": 0, + "~:y": 0, + "~:width": 0.01, + "~:height": 0.01, + "~:x1": 0, + "~:y1": 0, + "~:x2": 0.01, + "~:y2": 0.01 + } + }, + "~:fills": [ + { + "~:fill-color": "#FFFFFF", + "~:fill-opacity": 1 + } + ], + "~:flip-x": null, + "~:height": 0.01, + "~:flip-y": null, + "~:shapes": [ + "~uec508673-9e3b-80bf-8004-77dfa30a2b13" + ] + } + }, + "~uec508673-9e3b-80bf-8004-77dfa30a2b13": { + "~#shape": { + "~:y": 0, + "~:hide-fill-on-export": false, + "~:transform": { + "~#matrix": { + "~:a": 1.0, + "~:b": 0.0, + "~:c": 0.0, + "~:d": 1.0, + "~:e": 0.0, + "~:f": 0.0 + } + }, + "~:rotation": 0, + "~:grow-type": "~:fixed", + "~:hide-in-viewer": false, + "~:name": "Board", + "~:width": 256.00000000000006, + "~:type": "~:frame", + "~:points": [ + { + "~#point": { + "~:x": 0, + "~:y": 0 + } + }, + { + "~#point": { + "~:x": 256.00000000000006, + "~:y": 0 + } + }, + { + "~#point": { + "~:x": 256.00000000000006, + "~:y": 256 + } + }, + { + "~#point": { + "~:x": 0, + "~:y": 256 + } + } + ], + "~:proportion-lock": false, + "~:transform-inverse": { + "~#matrix": { + "~:a": 1.0, + "~:b": 0.0, + "~:c": 0.0, + "~:d": 1.0, + "~:e": 0.0, + "~:f": 0.0 + } + }, + "~:id": "~uec508673-9e3b-80bf-8004-77dfa30a2b13", + "~:parent-id": "~u00000000-0000-0000-0000-000000000000", + "~:frame-id": "~u00000000-0000-0000-0000-000000000000", + "~:strokes": [], + "~:x": 0, + "~:proportion": 1, + "~:selrect": { + "~#rect": { + "~:x": 0, + "~:y": 0, + "~:width": 256.00000000000006, + "~:height": 256, + "~:x1": 0, + "~:y1": 0, + "~:x2": 256.00000000000006, + "~:y2": 256 + } + }, + "~:fills": [ + { + "~:fill-color": "#FFFFFF", + "~:fill-opacity": 1 + } + ], + "~:flip-x": null, + "~:height": 256, + "~:flip-y": null, + "~:shapes": [] + } + } + }, + "~:id": "~udd5cc0bb-91ff-81b9-8004-77df9cd3edb2", + "~:name": "Page 1" + } +} \ No newline at end of file diff --git a/frontend/playwright/data/viewer/get-view-only-bundle-single-board.json b/frontend/playwright/data/viewer/get-view-only-bundle-single-board.json new file mode 100644 index 0000000000..9284de6858 --- /dev/null +++ b/frontend/playwright/data/viewer/get-view-only-bundle-single-board.json @@ -0,0 +1,86 @@ +{ + "~:users": [ + { + "~:id": "~u0515a066-e303-8169-8004-73eb4018f4e0", + "~:email": "leia@example.com", + "~:name": "Princesa Leia", + "~:fullname": "Princesa Leia", + "~:is-active": true + } + ], + "~:fonts": [], + "~:project": { + "~:id": "~u0515a066-e303-8169-8004-73eb401b5d55", + "~:name": "Drafts", + "~:team-id": "~u0515a066-e303-8169-8004-73eb401977a6" + }, + "~:share-links": [], + "~:libraries": [], + "~:file": { + "~:features": { + "~#set": [ + "layout/grid", + "styles/v2", + "fdata/pointer-map", + "fdata/objects-map", + "components/v2", + "fdata/shape-data-type" + ] + }, + "~:has-media-trimmed": false, + "~:comment-thread-seqn": 0, + "~:name": "New File 3", + "~:revn": 1, + "~:modified-at": "~m1717759268010", + "~:id": "~udd5cc0bb-91ff-81b9-8004-77df9cd3edb1", + "~:is-shared": false, + "~:version": 48, + "~:project-id": "~u0515a066-e303-8169-8004-73eb401b5d55", + "~:created-at": "~m1717759250257", + "~:data": { + "~:id": "~udd5cc0bb-91ff-81b9-8004-77df9cd3edb1", + "~:options": { + "~:components-v2": true + }, + "~:pages": [ + "~udd5cc0bb-91ff-81b9-8004-77df9cd3edb2" + ], + "~:pages-index": { + "~udd5cc0bb-91ff-81b9-8004-77df9cd3edb2": { + "~#penpot/pointer": [ + "~udd5cc0bb-91ff-81b9-8004-77dfae2d9e7c", + { + "~:created-at": "~m1717759268024" + } + ] + } + } + } + }, + "~:team": { + "~:id": "~u0515a066-e303-8169-8004-73eb401977a6", + "~:created-at": "~m1717493865581", + "~:modified-at": "~m1717493865581", + "~:name": "Default", + "~:is-default": true, + "~:features": { + "~#set": [ + "layout/grid", + "styles/v2", + "fdata/pointer-map", + "fdata/objects-map", + "components/v2", + "fdata/shape-data-type" + ] + } + }, + "~:permissions": { + "~:type": "~:membership", + "~:is-owner": true, + "~:is-admin": true, + "~:can-edit": true, + "~:can-read": true, + "~:is-logged": true, + "~:in-team": true + } +} \ No newline at end of file diff --git a/frontend/playwright/ui/pages/ViewerPage.js b/frontend/playwright/ui/pages/ViewerPage.js index cd328eb653..18c8cebe91 100644 --- a/frontend/playwright/ui/pages/ViewerPage.js +++ b/frontend/playwright/ui/pages/ViewerPage.js @@ -33,10 +33,8 @@ export class ViewerPage extends BaseWebSocketPage { super(page); } - async goToViewer() { - await this.page.goto( - `/#/view/${ViewerPage.anyFileId}?page-id=${ViewerPage.anyPageId}§ion=interactions&index=0`, - ); + async goToViewer({ fileId = ViewerPage.anyFileId, pageId = ViewerPage.anyPageId } = {}) { + await this.page.goto(`/#/view/${fileId}?page-id=${pageId}§ion=interactions&index=0`); this.#ws = await this.waitForNotificationsWebSocket(); await this.#ws.mockOpen(); diff --git a/frontend/playwright/ui/specs/viewer-header.spec.js b/frontend/playwright/ui/specs/viewer-header.spec.js index 01cfb8634e..48f282965e 100644 --- a/frontend/playwright/ui/specs/viewer-header.spec.js +++ b/frontend/playwright/ui/specs/viewer-header.spec.js @@ -5,6 +5,18 @@ test.beforeEach(async ({ page }) => { await ViewerPage.init(page); }); +const singleBoardFileId = "dd5cc0bb-91ff-81b9-8004-77df9cd3edb1"; +const singleBoardPageId = "dd5cc0bb-91ff-81b9-8004-77df9cd3edb2"; + +const setupFileWithSingleBoard = async (viewer) => { + await viewer.mockRPC(/get\-view\-only\-bundle\?/, "viewer/get-view-only-bundle-single-board.json"); + await viewer.mockRPC("get-comment-threads?file-id=*", "workspace/get-comment-threads-empty.json"); + await viewer.mockRPC( + "get-file-fragment?file-id=*&fragment-id=*", + "viewer/get-file-fragment-single-board.json", + ); +}; + test("Clips link area of the logo", async ({ page }) => { const viewerPage = new ViewerPage(page); await viewerPage.setupLoggedInUser(); @@ -21,3 +33,16 @@ test("Clips link area of the logo", async ({ page }) => { await viewerPage.page.mouse.click(x, y + 100); await expect(page.url()).toBe(viewerUrl); }); + +test("Updates URL with zoom type", async ({ page }) => { + const viewer = new ViewerPage(page); + await viewer.setupLoggedInUser(); + await setupFileWithSingleBoard(viewer); + + await viewer.goToViewer({ fileId: singleBoardFileId, pageId: singleBoardPageId }); + + await viewer.page.getByTitle("Zoom").click(); + await viewer.page.getByText(/Fit/).click(); + + await expect(viewer.page).toHaveURL(/&zoom=fit/); +}); From 2c21a049e1805cdb5e218c6572d75096c1edc160 Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Fri, 7 Jun 2024 13:51:12 +0200 Subject: [PATCH 077/476] :bug: Fix problem with moving+selection not working properly --- CHANGES.md | 1 + .../app/main/data/workspace/transforms.cljs | 2 +- frontend/src/app/util/mouse.cljs | 26 ++++++++++++------- 3 files changed, 19 insertions(+), 10 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index d4e659d92a..7a755a9e36 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -23,6 +23,7 @@ - Fix expand libraries when search results are present [Taiga #7876](https://tree.taiga.io/project/penpot/issue/7876) - Fix color palette default library [Taiga #8029](https://tree.taiga.io/project/penpot/issue/8029) - Component Library is lost after exporting/importing in .zip format [Github #4672](https://github.com/penpot/penpot/issues/4672) +- Fix problem with moving+selection not working properly [Taiga #7943](https://tree.taiga.io/project/penpot/issue/7943) ## 2.0.3 diff --git a/frontend/src/app/main/data/workspace/transforms.cljs b/frontend/src/app/main/data/workspace/transforms.cljs index 7fe33314d6..abb7a7c83b 100644 --- a/frontend/src/app/main/data/workspace/transforms.cljs +++ b/frontend/src/app/main/data/workspace/transforms.cljs @@ -431,7 +431,7 @@ (watch [_ state stream] (let [initial (deref ms/mouse-position) - stopper (mse/drag-stopper stream) + stopper (mse/drag-stopper stream {:interrupt? false}) zoom (get-in state [:workspace-local :zoom] 1) ;; We toggle the selection so we don't have to wait for the event diff --git a/frontend/src/app/util/mouse.cljs b/frontend/src/app/util/mouse.cljs index 4576ed3251..8f3e7652a0 100644 --- a/frontend/src/app/util/mouse.cljs +++ b/frontend/src/app/util/mouse.cljs @@ -72,12 +72,20 @@ (defn drag-stopper "Creates a stream to stop drag events. Takes into account the mouse and also if the window loses focus or the esc key is pressed." - [stream] - (rx/merge - (->> stream - (rx/filter blur-event?)) - (->> stream - (rx/filter mouse-event?) - (rx/filter mouse-up-event?)) - (->> stream - (rx/filter #(= % :interrupt))))) + ([stream] + (drag-stopper stream nil)) + ([stream {:keys [blur? up-mouse? interrupt?] :or {blur? true up-mouse? true interrupt? true}}] + (rx/merge + (if blur? + (->> stream + (rx/filter blur-event?)) + (rx/empty)) + (if up-mouse? + (->> stream + (rx/filter mouse-event?) + (rx/filter mouse-up-event?)) + (rx/empty)) + (if interrupt? + (->> stream + (rx/filter #(= % :interrupt))) + (rx/empty))))) From 3ad91d1c9d6bc026af25c440bbbc20bdbe32b741 Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Fri, 7 Jun 2024 15:25:57 +0200 Subject: [PATCH 078/476] :bug: Fix problem with flex layout fit to content not positioning correctly children --- CHANGES.md | 1 + common/src/app/common/geom/modifiers.cljc | 9 ++++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/CHANGES.md b/CHANGES.md index 7a755a9e36..a8b70d097d 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -24,6 +24,7 @@ - Fix color palette default library [Taiga #8029](https://tree.taiga.io/project/penpot/issue/8029) - Component Library is lost after exporting/importing in .zip format [Github #4672](https://github.com/penpot/penpot/issues/4672) - Fix problem with moving+selection not working properly [Taiga #7943](https://tree.taiga.io/project/penpot/issue/7943) +- Fix problem with flex layout fit to content not positioning correctly children [Taiga #7537](https://tree.taiga.io/project/penpot/issue/7537) ## 2.0.3 diff --git a/common/src/app/common/geom/modifiers.cljc b/common/src/app/common/geom/modifiers.cljc index 813fd784a2..ec4646f666 100644 --- a/common/src/app/common/geom/modifiers.cljc +++ b/common/src/app/common/geom/modifiers.cljc @@ -269,6 +269,13 @@ (keep (mk-check-auto-layout objects)) shapes))) +(defn full-tree? + "Checks if we need to calculate the full tree or we can calculate just a partial tree. Partial + trees are more efficient but cannot be done when the layout is centered." + [objects layout-id] + (let [layout-justify-content (get-in objects [layout-id :layout-justify-content])] + (contains? #{:center :end :space-around :space-evenly :stretch} layout-justify-content))) + (defn sizing-auto-modifiers "Recalculates the layouts to adjust the sizing: auto new sizes" [modif-tree sizing-auto-layouts objects bounds ignore-constraints] @@ -286,7 +293,7 @@ (d/seek sizing-auto-layouts)) shapes - (if from-layout + (if (and from-layout (not (full-tree? objects from-layout))) (cgst/resolve-subtree from-layout layout-id objects) (cgst/resolve-tree #{layout-id} objects)) From 1f7b5a0f7fe4d008b53105751cd8dca52511e0ce Mon Sep 17 00:00:00 2001 From: Pablo Alba Date: Fri, 7 Jun 2024 15:36:31 +0200 Subject: [PATCH 079/476] :bug: Fix black line is displaying after show main --- CHANGES.md | 1 + .../src/app/main/ui/workspace/sidebar/assets/common.cljs | 8 +++++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index a8b70d097d..2f552a0d46 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -25,6 +25,7 @@ - Component Library is lost after exporting/importing in .zip format [Github #4672](https://github.com/penpot/penpot/issues/4672) - Fix problem with moving+selection not working properly [Taiga #7943](https://tree.taiga.io/project/penpot/issue/7943) - Fix problem with flex layout fit to content not positioning correctly children [Taiga #7537](https://tree.taiga.io/project/penpot/issue/7537) +- Fix black line is displaying after show main [Taiga #7653](https://tree.taiga.io/project/penpot/issue/7653) ## 2.0.3 diff --git a/frontend/src/app/main/ui/workspace/sidebar/assets/common.cljs b/frontend/src/app/main/ui/workspace/sidebar/assets/common.cljs index d99e9dcac2..e3a1cf3727 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/assets/common.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/assets/common.cljs @@ -402,9 +402,11 @@ (st/emit! (dwl/nav-to-component-file library-id comp)))) do-show-component - #(if local-component? - (do-show-local-component) - (do-show-remote-component)) + (fn [] + (st/emit! dw/hide-context-menu) + (if local-component? + (do-show-local-component) + (do-show-remote-component))) do-restore-component #(let [;; Extract a map of component-id -> component-file in order to avoid duplicates From 96993a6ebdac62d31483d30ff3e87f1667096f8e Mon Sep 17 00:00:00 2001 From: Pablo Alba Date: Fri, 7 Jun 2024 16:09:10 +0200 Subject: [PATCH 080/476] :bug: Fix "Share prototypes" modal remains open --- CHANGES.md | 1 + frontend/src/app/main/ui/viewer/header.cljs | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGES.md b/CHANGES.md index 2f552a0d46..09a21a0916 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -26,6 +26,7 @@ - Fix problem with moving+selection not working properly [Taiga #7943](https://tree.taiga.io/project/penpot/issue/7943) - Fix problem with flex layout fit to content not positioning correctly children [Taiga #7537](https://tree.taiga.io/project/penpot/issue/7537) - Fix black line is displaying after show main [Taiga #7653](https://tree.taiga.io/project/penpot/issue/7653) +- Fix "Share prototypes" modal remains open [Taiga #7442](https://tree.taiga.io/project/penpot/issue/7442) ## 2.0.3 diff --git a/frontend/src/app/main/ui/viewer/header.cljs b/frontend/src/app/main/ui/viewer/header.cljs index 03dd06548f..603c1cba12 100644 --- a/frontend/src/app/main/ui/viewer/header.cljs +++ b/frontend/src/app/main/ui/viewer/header.cljs @@ -138,7 +138,7 @@ (mf/deps page) (fn [] (modal/show! :share-link {:page page :file file}) - (modal/allow-click-outside!))) + (modal/disallow-click-outside!))) handle-increase (mf/use-fn From edfc47d3de64cc3f1c7c3ce2b0a21b922c64dd0b Mon Sep 17 00:00:00 2001 From: Alejandro Alonso Date: Thu, 6 Jun 2024 12:28:41 +0200 Subject: [PATCH 081/476] :sparkles: Add e2e tests for fix color palette default library --- .../data/workspace/get-file-library.json | 242 ++++++++++++++++++ .../get-team-shared-libraries-non-empty.json | 47 ++++ .../data/workspace/link-file-to-library.json | 1 + .../workspace/unlink-file-from-library.json | 1 + frontend/playwright/ui/pages/WorkspacePage.js | 31 +++ .../playwright/ui/specs/workspace.spec.js | 28 ++ .../app/main/ui/components/tab_container.cljs | 1 + .../src/app/main/ui/workspace/libraries.cljs | 11 +- .../src/app/main/ui/workspace/palette.cljs | 3 +- .../app/main/ui/workspace/sidebar/assets.cljs | 3 +- 10 files changed, 362 insertions(+), 6 deletions(-) create mode 100644 frontend/playwright/data/workspace/get-file-library.json create mode 100644 frontend/playwright/data/workspace/get-team-shared-libraries-non-empty.json create mode 100644 frontend/playwright/data/workspace/link-file-to-library.json create mode 100644 frontend/playwright/data/workspace/unlink-file-from-library.json diff --git a/frontend/playwright/data/workspace/get-file-library.json b/frontend/playwright/data/workspace/get-file-library.json new file mode 100644 index 0000000000..de47754279 --- /dev/null +++ b/frontend/playwright/data/workspace/get-file-library.json @@ -0,0 +1,242 @@ +{ + "~:features":{ + "~#set":[ + "layout/grid", + "styles/v2", + "components/v2", + "fdata/shape-data-type" + ] + }, + "~:permissions":{ + "~:type":"~:membership", + "~:is-owner":true, + "~:is-admin":true, + "~:can-edit":true, + "~:can-read":true, + "~:is-logged":true + }, + "~:has-media-trimmed":false, + "~:comment-thread-seqn":0, + "~:name":"Testing library 1", + "~:revn":2, + "~:modified-at":"~m1717512948250", + "~:id":"~uc1249a66-fce0-8175-8004-7433fe4be8bc", + "~:is-shared":true, + "~:version":48, + "~:project-id": "~uc7ce0794-0992-8105-8004-38e630f7920b", + "~:created-at":"~m1717512934704", + "~:data":{ + "~:pages":[ + "~uc1249a66-fce0-8175-8004-7433fe4be8bd" + ], + "~:pages-index":{ + "~uc1249a66-fce0-8175-8004-7433fe4be8bd":{ + "~:options":{ + + }, + "~:objects":{ + "~u00000000-0000-0000-0000-000000000000":{ + "~#shape":{ + "~:y":0, + "~:hide-fill-on-export":false, + "~:transform":{ + "~#matrix":{ + "~:a":1.0, + "~:b":0.0, + "~:c":0.0, + "~:d":1.0, + "~:e":0.0, + "~:f":0.0 + } + }, + "~:rotation":0, + "~:name":"Root Frame", + "~:width":0.01, + "~:type":"~:frame", + "~:points":[ + { + "~#point":{ + "~:x":0, + "~:y":0 + } + }, + { + "~#point":{ + "~:x":0.01, + "~:y":0 + } + }, + { + "~#point":{ + "~:x":0.01, + "~:y":0.01 + } + }, + { + "~#point":{ + "~:x":0, + "~:y":0.01 + } + } + ], + "~:proportion-lock":false, + "~:transform-inverse":{ + "~#matrix":{ + "~:a":1.0, + "~:b":0.0, + "~:c":0.0, + "~:d":1.0, + "~:e":0.0, + "~:f":0.0 + } + }, + "~:id":"~u00000000-0000-0000-0000-000000000000", + "~:parent-id":"~u00000000-0000-0000-0000-000000000000", + "~:frame-id":"~u00000000-0000-0000-0000-000000000000", + "~:strokes":[ + + ], + "~:x":0, + "~:proportion":1.0, + "~:selrect":{ + "~#rect":{ + "~:x":0, + "~:y":0, + "~:width":0.01, + "~:height":0.01, + "~:x1":0, + "~:y1":0, + "~:x2":0.01, + "~:y2":0.01 + } + }, + "~:fills":[ + { + "~:fill-color":"#FFFFFF", + "~:fill-opacity":1 + } + ], + "~:flip-x":null, + "~:height":0.01, + "~:flip-y":null, + "~:shapes":[ + "~uc70224ec-c410-807b-8004-743400e00be8" + ] + } + }, + "~uc70224ec-c410-807b-8004-743400e00be8":{ + "~#shape":{ + "~:y":255, + "~:rx":0, + "~:transform":{ + "~#matrix":{ + "~:a":1.0, + "~:b":0.0, + "~:c":0.0, + "~:d":1.0, + "~:e":0.0, + "~:f":0.0 + } + }, + "~:rotation":0, + "~:grow-type":"~:fixed", + "~:hide-in-viewer":false, + "~:name":"Rectangle", + "~:width":279.0000000000001, + "~:type":"~:rect", + "~:points":[ + { + "~#point":{ + "~:x":523, + "~:y":255 + } + }, + { + "~#point":{ + "~:x":802.0000000000001, + "~:y":255 + } + }, + { + "~#point":{ + "~:x":802.0000000000001, + "~:y":534 + } + }, + { + "~#point":{ + "~:x":523, + "~:y":534 + } + } + ], + "~:proportion-lock":false, + "~:transform-inverse":{ + "~#matrix":{ + "~:a":1.0, + "~:b":0.0, + "~:c":0.0, + "~:d":1.0, + "~:e":0.0, + "~:f":0.0 + } + }, + "~:id":"~uc70224ec-c410-807b-8004-743400e00be8", + "~:parent-id":"~u00000000-0000-0000-0000-000000000000", + "~:frame-id":"~u00000000-0000-0000-0000-000000000000", + "~:strokes":[ + + ], + "~:x":523, + "~:proportion":1, + "~:selrect":{ + "~#rect":{ + "~:x":523, + "~:y":255, + "~:width":279.0000000000001, + "~:height":279, + "~:x1":523, + "~:y1":255, + "~:x2":802.0000000000001, + "~:y2":534 + } + }, + "~:fills":[ + { + "~:fill-color":"#B1B2B5", + "~:fill-opacity":1 + } + ], + "~:flip-x":null, + "~:ry":0, + "~:height":279, + "~:flip-y":null + } + } + }, + "~:id":"~uc1249a66-fce0-8175-8004-7433fe4be8bd", + "~:name":"Page 1" + } + }, + "~:id":"~uc1249a66-fce0-8175-8004-7433fe4be8bc", + "~:options":{ + "~:components-v2":true + }, + "~:recent-colors":[ + { + "~:color":"#187cd5", + "~:opacity":1 + } + ], + "~:colors":{ + "~uc70224ec-c410-807b-8004-74340616cffb":{ + "~:path":"", + "~:color":"#187cd5", + "~:name":"test-color-187cd5", + "~:modified-at":"~m1717512945259", + "~:opacity":1, + "~:id":"~uc70224ec-c410-807b-8004-74340616cffb" + } + } + } +} \ No newline at end of file diff --git a/frontend/playwright/data/workspace/get-team-shared-libraries-non-empty.json b/frontend/playwright/data/workspace/get-team-shared-libraries-non-empty.json new file mode 100644 index 0000000000..05a5c8c3c1 --- /dev/null +++ b/frontend/playwright/data/workspace/get-team-shared-libraries-non-empty.json @@ -0,0 +1,47 @@ +{ + "~#set":[ + { + "~:name":"Testing library 1", + "~:revn":2, + "~:modified-at":"~m1717512948250", + "~:thumbnail-uri":"http://localhost:3000/assets/by-id/5ad7a7a7-c64e-4bb8-852d-15708d125905", + "~:id":"~uc1249a66-fce0-8175-8004-7433fe4be8bc", + "~:is-shared":true, + "~:project-id":"~uc7ce0794-0992-8105-8004-38e630f7920b", + "~:created-at":"~m1717512934704", + "~:library-summary":{ + "~:components":{ + "~:count":0, + "~:sample":[ + + ] + }, + "~:media":{ + "~:count":0, + "~:sample":[ + + ] + }, + "~:colors":{ + "~:count":1, + "~:sample":[ + { + "~:path":"", + "~:color":"#187cd5", + "~:name":"test-color", + "~:modified-at":"~m1717512945259", + "~:opacity":1, + "~:id":"~uc70224ec-c410-807b-8004-74340616cffb" + } + ] + }, + "~:typographies":{ + "~:count":0, + "~:sample":[ + + ] + } + } + } + ] +} \ No newline at end of file diff --git a/frontend/playwright/data/workspace/link-file-to-library.json b/frontend/playwright/data/workspace/link-file-to-library.json new file mode 100644 index 0000000000..0967ef424b --- /dev/null +++ b/frontend/playwright/data/workspace/link-file-to-library.json @@ -0,0 +1 @@ +{} diff --git a/frontend/playwright/data/workspace/unlink-file-from-library.json b/frontend/playwright/data/workspace/unlink-file-from-library.json new file mode 100644 index 0000000000..0967ef424b --- /dev/null +++ b/frontend/playwright/data/workspace/unlink-file-from-library.json @@ -0,0 +1 @@ +{} diff --git a/frontend/playwright/ui/pages/WorkspacePage.js b/frontend/playwright/ui/pages/WorkspacePage.js index d664472532..4c82e0155a 100644 --- a/frontend/playwright/ui/pages/WorkspacePage.js +++ b/frontend/playwright/ui/pages/WorkspacePage.js @@ -46,6 +46,11 @@ export class WorkspacePage extends BaseWebSocketPage { this.rectShapeButton = page.getByRole("button", { name: "Rectangle (R)" }); this.colorpicker = page.getByTestId("colorpicker"); this.layers = page.getByTestId("layers"); + this.palette = page.getByTestId("palette"); + this.assets = page.getByTestId("assets"); + this.libraries = page.getByTestId("libraries"); + this.closeLibraries = page.getByTestId("close-libraries"); + this.librariesModal = page.getByTestId("libraries-modal"); } async goToWorkspace({ fileId = WorkspacePage.anyFileId, pageId = WorkspacePage.anyPageId } = {}) { @@ -106,4 +111,30 @@ export class WorkspacePage extends BaseWebSocketPage { const layer = this.layers.getByTestId("layer-item").filter({ has: this.page.getByText(name) }); await layer.getByRole("button").click(clickOptions); } + + async clickAssets(clickOptions = {}) { + await this.assets.click(clickOptions); + } + + async clickLibraries(clickOptions = {}) { + await this.libraries.click(clickOptions); + } + + async clickLibrary(name, clickOptions = {}) { + await this.page + .getByTestId("library-item") + .filter({ hasText: name }) + .getByRole("button") + .click(clickOptions); + } + + async clickCloseLibraries(clickOptions = {}) { + await this.closeLibraries.click(clickOptions); + } + + async clickColorPalette(clickOptions = {}) { + await this.palette + .getByRole("button", { name: "Color Palette (Alt+P)" }) + .click(clickOptions); + } } diff --git a/frontend/playwright/ui/specs/workspace.spec.js b/frontend/playwright/ui/specs/workspace.spec.js index 58e9e5697f..529965613d 100644 --- a/frontend/playwright/ui/specs/workspace.spec.js +++ b/frontend/playwright/ui/specs/workspace.spec.js @@ -38,3 +38,31 @@ test("User draws a rect", async ({ page }) => { await expect(shape).toHaveAttribute("width", "200"); await expect(shape).toHaveAttribute("height", "100"); }); + +test("User adds a library and its automatically selected in the color palette", async ({ page }) => { + const workspacePage = new WorkspacePage(page); + await workspacePage.setupEmptyFile(); + await workspacePage.mockRPC("link-file-to-library", "workspace/link-file-to-library.json"); + await workspacePage.mockRPC("unlink-file-from-library", "workspace/unlink-file-from-library.json"); + await workspacePage.mockRPC("get-team-shared-files?team-id=*", "workspace/get-team-shared-libraries-non-empty.json"); + + await workspacePage.goToWorkspace(); + + // Add Testing library 1 + await workspacePage.clickColorPalette(); + await workspacePage.clickAssets(); + // Now the get-file call should return a library + await workspacePage.mockRPC(/get\-file\?/, "workspace/get-file-library.json"); + await workspacePage.clickLibraries(); + await workspacePage.clickLibrary("Testing library 1") + await workspacePage.clickCloseLibraries(); + + await expect(workspacePage.palette.getByRole("button", { name: "test-color-187cd5" })).toBeVisible(); + + // Remove Testing library 1 + await workspacePage.clickLibraries(); + await workspacePage.clickLibrary("Testing library 1") + await workspacePage.clickCloseLibraries(); + + await expect(workspacePage.palette.getByText('There are no color styles in your library yet')).toBeVisible(); +}); diff --git a/frontend/src/app/main/ui/components/tab_container.cljs b/frontend/src/app/main/ui/components/tab_container.cljs index 20c79a417f..1e3b99079c 100644 --- a/frontend/src/app/main/ui/components/tab_container.cljs +++ b/frontend/src/app/main/ui/components/tab_container.cljs @@ -59,6 +59,7 @@ [:div {:key (str/concat "tab-" sid) :title tooltip :data-id sid + :data-testid sid :on-click on-click :class (stl/css-case :tab-container-tab-title true diff --git a/frontend/src/app/main/ui/workspace/libraries.cljs b/frontend/src/app/main/ui/workspace/libraries.cljs index e28f28f966..d07517c7b8 100644 --- a/frontend/src/app/main/ui/workspace/libraries.cljs +++ b/frontend/src/app/main/ui/workspace/libraries.cljs @@ -230,7 +230,8 @@ (for [{:keys [id name] :as library} linked-libraries] [:div {:class (stl/css :section-list-item) - :key (dm/str id)} + :key (dm/str id) + :data-testid "library-item"} [:div {:class (stl/css :item-content)} [:div {:class (stl/css :item-name)} name] [:ul {:class (stl/css :item-contents)} @@ -263,7 +264,8 @@ [:div {:class (stl/css :section-list-shared)} (for [{:keys [id name] :as library} shared-libraries] [:div {:class (stl/css :section-list-item) - :key (dm/str id)} + :key (dm/str id) + :data-testid "library-item"} [:div {:class (stl/css :item-content)} [:div {:class (stl/css :item-name)} name] [:ul {:class (stl/css :item-contents)} @@ -513,10 +515,11 @@ (when team-id (st/emit! (dwl/fetch-shared-files {:team-id team-id})))) - [:div {:class (stl/css :modal-overlay) :on-click close-dialog-outside} + [:div {:class (stl/css :modal-overlay) :on-click close-dialog-outside :data-testid "libraries-modal"} [:div {:class (stl/css :modal-dialog)} [:button {:class (stl/css :close-btn) - :on-click close-dialog} + :on-click close-dialog + :data-testid "close-libraries"} close-icon] [:div {:class (stl/css :modal-title)} (tr "workspace.libraries.libraries")] diff --git a/frontend/src/app/main/ui/workspace/palette.cljs b/frontend/src/app/main/ui/workspace/palette.cljs index eedaeda61f..b0d246a99a 100644 --- a/frontend/src/app/main/ui/workspace/palette.cljs +++ b/frontend/src/app/main/ui/workspace/palette.cljs @@ -141,7 +141,8 @@ (swap! state* assoc :width width))) [:div {:class (stl/css :palette-wrapper) - :style (calculate-palette-padding rulers?)} + :style (calculate-palette-padding rulers?) + :data-testid "palette"} (when-not workspace-read-only? [:div {:ref parent-ref :class (dm/str size-classname " " (stl/css-case :palettes true diff --git a/frontend/src/app/main/ui/workspace/sidebar/assets.cljs b/frontend/src/app/main/ui/workspace/sidebar/assets.cljs index b3f755fc5e..af12d40ab8 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/assets.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/assets.cljs @@ -157,7 +157,8 @@ [:div {:class (stl/css :assets-header)} (when-not ^boolean read-only? [:button {:class (stl/css :libraries-button) - :on-click show-libraries-dialog} + :on-click show-libraries-dialog + :data-testid "libraries"} [:span {:class (stl/css :libraries-icon)} i/library] (tr "workspace.assets.libraries")]) From 257dab4775234c6abaffe145d1a3908b5dd37952 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9s=20Moya?= Date: Mon, 10 Jun 2024 11:06:18 +0200 Subject: [PATCH 082/476] :bug: Fix export hidden shapes --- frontend/src/app/main/render.cljs | 2 +- frontend/src/app/main/ui/shapes/shape.cljs | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/frontend/src/app/main/render.cljs b/frontend/src/app/main/render.cljs index 16c961b5dd..bbf85e4add 100644 --- a/frontend/src/app/main/render.cljs +++ b/frontend/src/app/main/render.cljs @@ -149,7 +149,7 @@ svg-raw-wrapper (mf/use-memo (mf/deps objects) #(svg-raw-wrapper-factory objects)) bool-wrapper (mf/use-memo (mf/deps objects) #(bool-wrapper-factory objects)) frame-wrapper (mf/use-memo (mf/deps objects) #(frame-wrapper-factory objects))] - (when (and shape (not (:hidden shape))) + (when shape (let [opts #js {:shape shape} svg-raw? (= :svg-raw (:type shape))] (if-not svg-raw? diff --git a/frontend/src/app/main/ui/shapes/shape.cljs b/frontend/src/app/main/ui/shapes/shape.cljs index e0ab37c45b..e4082b89c5 100644 --- a/frontend/src/app/main/ui/shapes/shape.cljs +++ b/frontend/src/app/main/ui/shapes/shape.cljs @@ -72,6 +72,8 @@ (obj/set! "pointerEvents" pointer-events) (cond-> (not (cfh/frame-shape? shape)) (obj/set! "opacity" (:opacity shape))) + (cond-> (:hidden shape) + (obj/set! "display" "none")) (cond-> (and blend-mode (not= blend-mode :normal)) (obj/set! "mixBlendMode" (d/name blend-mode)))) From 88b65cd86466ad326b11faca89db28e6464d1958 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Fri, 7 Jun 2024 14:44:24 +0200 Subject: [PATCH 083/476] :bug: Fix incorrect compilation of css-case macro in a small corne case --- frontend/src/app/main/style.clj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/src/app/main/style.clj b/frontend/src/app/main/style.clj index a1870314af..ea9a0242ad 100644 --- a/frontend/src/app/main/style.clj +++ b/frontend/src/app/main/style.clj @@ -97,7 +97,7 @@ (when cls (cond (true? v) cls - (false? v) nil + (false? v) "" :else `(if ~v ~cls "")))))) (interpose " "))) From e7a8c25883b805e4665e10820437c0b6ccebee95 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Mon, 10 Jun 2024 13:19:10 +0200 Subject: [PATCH 084/476] :bug: Fix touched handling on multi-input form component --- frontend/src/app/main/ui/components/forms.cljs | 1 + 1 file changed, 1 insertion(+) diff --git a/frontend/src/app/main/ui/components/forms.cljs b/frontend/src/app/main/ui/components/forms.cljs index ec0066ad2e..0b9c2ab71a 100644 --- a/frontend/src/app/main/ui/components/forms.cljs +++ b/frontend/src/app/main/ui/components/forms.cljs @@ -378,6 +378,7 @@ :no-padding (pos? (count @items)) :invalid (and (some? valid-item-fn) touched? + (not (str/empty? @value)) (not (valid-item-fn @value))))) on-focus From 55ce9bef49573c9c9669f979ce56981587a77c8a Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Mon, 10 Jun 2024 14:28:58 +0200 Subject: [PATCH 085/476] :bug: Fix incorrect error merging mechanism on form validation --- frontend/src/app/util/forms.cljs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/frontend/src/app/util/forms.cljs b/frontend/src/app/util/forms.cljs index d29d119735..940b982596 100644 --- a/frontend/src/app/util/forms.cljs +++ b/frontend/src/app/util/forms.cljs @@ -7,6 +7,7 @@ (ns app.util.forms (:refer-clojure :exclude [uuid]) (:require + [app.common.data :as d] [app.common.spec :as us] [app.util.i18n :refer [tr]] [cljs.spec.alpha :as s] @@ -69,11 +70,15 @@ (::s/problems (s/explain-data spec (:data state)))) errors (reduce interpret-problem {} problems) + + errors (reduce (fn [errors vf] (merge errors (vf errors (:data state)))) errors validators) - errors (merge errors (:errors state))] + errors (merge (:errors state) errors) + errors (d/without-nils errors)] + (assoc state :errors errors From fda6deaa4fc86af77b32e1da7d82ca58be5680a7 Mon Sep 17 00:00:00 2001 From: Eva Marco Date: Thu, 30 May 2024 10:06:25 +0200 Subject: [PATCH 086/476] :sparkles: Update onboarding modals --- frontend/resources/images/form/Design.png | Bin 0 -> 15462 bytes frontend/resources/images/form/Prototype.png | Bin 0 -> 1232523 bytes frontend/resources/images/form/components.png | Bin 0 -> 218040 bytes .../resources/images/form/design-and-dev.png | Bin 0 -> 248802 bytes frontend/resources/images/form/templates.png | Bin 0 -> 258863 bytes .../styles/common/refactor/basic-rules.scss | 3 - .../styles/common/refactor/design-tokens.scss | 1 + frontend/src/app/main/data/users.cljs | 1 + frontend/src/app/main/ui.cljs | 42 +- frontend/src/app/main/ui/auth.cljs | 8 +- frontend/src/app/main/ui/auth.scss | 1 + frontend/src/app/main/ui/auth/common.scss | 10 +- frontend/src/app/main/ui/auth/login.cljs | 2 +- .../app/main/ui/auth/recovery_request.cljs | 2 +- frontend/src/app/main/ui/auth/register.cljs | 29 +- frontend/src/app/main/ui/auth/register.scss | 42 +- frontend/src/app/main/ui/comments.scss | 1 + .../src/app/main/ui/components/forms.cljs | 69 ++- .../src/app/main/ui/components/forms.scss | 36 +- .../app/main/ui/dashboard/change_owner.scss | 1 + .../src/app/main/ui/dashboard/import.scss | 1 + frontend/src/app/main/ui/dashboard/team.scss | 1 + .../src/app/main/ui/dashboard/team_form.scss | 1 + .../app/main/ui/debug/components_preview.scss | 1 + frontend/src/app/main/ui/onboarding.cljs | 161 ------- frontend/src/app/main/ui/onboarding.scss | 86 ---- .../src/app/main/ui/onboarding/questions.cljs | 411 +++++++++++------- .../src/app/main/ui/onboarding/questions.scss | 48 +- .../app/main/ui/settings/access_tokens.scss | 1 + .../app/main/ui/viewer/inspect/exports.scss | 1 + .../src/app/main/ui/viewer/share_link.scss | 1 + .../workspace/colorpicker/color_inputs.scss | 2 + frontend/src/app/main/ui/workspace/nudge.scss | 1 + .../ui/workspace/sidebar/assets/groups.scss | 1 + .../workspace/sidebar/options/menus/blur.scss | 1 + .../sidebar/options/menus/exports.scss | 1 + .../sidebar/options/menus/frame_grid.scss | 4 + .../sidebar/options/menus/grid_cell.scss | 2 + .../sidebar/options/menus/interactions.scss | 2 + .../sidebar/options/menus/layer.scss | 1 + .../options/menus/layout_container.scss | 5 + .../sidebar/options/menus/layout_item.scss | 4 + .../sidebar/options/menus/measures.scss | 5 + .../sidebar/options/menus/shadow.scss | 1 + .../sidebar/options/menus/svg_attrs.scss | 1 + .../sidebar/options/menus/typography.scss | 2 + .../sidebar/options/rows/color_row.scss | 2 + .../sidebar/options/rows/stroke_row.scss | 1 + frontend/translations/ar.po | 9 - frontend/translations/bn.po | 4 - frontend/translations/ca.po | 15 - frontend/translations/cs.po | 11 +- frontend/translations/da.po | 14 - frontend/translations/de.po | 9 - frontend/translations/el.po | 15 - frontend/translations/en.po | 300 ++++++++----- frontend/translations/es.po | 332 +++++++++----- frontend/translations/eu.po | 15 - frontend/translations/fa.po | 15 - frontend/translations/fin_FI.po | 13 - frontend/translations/fo.po | 15 - frontend/translations/fr.po | 15 - frontend/translations/gl.po | 15 - frontend/translations/he.po | 53 --- frontend/translations/hr.po | 15 - frontend/translations/id.po | 83 ---- frontend/translations/it.po | 15 - frontend/translations/jpn_JP.po | 12 - frontend/translations/ko.po | 4 - frontend/translations/lt.po | 14 - frontend/translations/lv.po | 33 -- frontend/translations/ml.po | 14 - frontend/translations/ms.po | 4 - frontend/translations/nb_NO.po | 5 - frontend/translations/nl.po | 101 ----- frontend/translations/pl.po | 14 - frontend/translations/pt_BR.po | 14 - frontend/translations/pt_PT.po | 74 +--- frontend/translations/ro.po | 108 ----- frontend/translations/ru.po | 15 - frontend/translations/ta.po | 14 - frontend/translations/tr.po | 9 - frontend/translations/ukr_UA.po | 4 - frontend/translations/zh_CN.po | 9 - frontend/translations/zh_Hant.po | 12 - 85 files changed, 938 insertions(+), 1482 deletions(-) create mode 100644 frontend/resources/images/form/Design.png create mode 100644 frontend/resources/images/form/Prototype.png create mode 100644 frontend/resources/images/form/components.png create mode 100644 frontend/resources/images/form/design-and-dev.png create mode 100644 frontend/resources/images/form/templates.png delete mode 100644 frontend/src/app/main/ui/onboarding.cljs delete mode 100644 frontend/src/app/main/ui/onboarding.scss diff --git a/frontend/resources/images/form/Design.png b/frontend/resources/images/form/Design.png new file mode 100644 index 0000000000000000000000000000000000000000..ae1e28ab720bb8707f1ab501ba16551f8b02105c GIT binary patch literal 15462 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
L%#Jx1X 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

Zw|OFVrH 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�w0v{kl%f~yU(ZPPH@hvmss@+xt4F`=7RYzok{h+|5SaRSn>yzN~d z`S^?OX!o6V+UdnbJCMH9-J%{qn!K<(*VTI&*D?5f{Y%?baM_{0e83*C@2Zw_#p*-v`|*bS5JQUOz_Pe~0BWumY%MmdpH=t$@dPbFV_ z-l{LG$aXM6uF4pb?B&ZmDQe;MrCyw=JuN(b(_AbK%&(NqOvdcbOfMCxgz42bWC+7p zZz5~?1@Fl7qtt$2D^B^Fc5ZprwDDPJ-Le`#7KWXVHE%th$27?Lu9?Pw!M_~!*YKtg8HJ`Kn?-!14z;`ghQ9qBzehXW>x4)+ zkxs4cnUt|$A}uf(SR||dA&RBUm$H0pm17E6fQymDAub9JL)Gls28|i07~R@0j`hTx z1D=OI|BIb6VeIKs8ttJ9LpJm{3Wpx=u3@U2k+g`9nlsKR+`n01B8&;tyfuZ@5k9AF zvO{!&;F>oQcor}kQq1^4mWS0^l_sotY5cB7dYiviN4U>z_rH1RORxUG%U*h|)`Ov# z_^io7G@78Y;4MM~y};sldG)`XAHGj{#oVGVEPpiIpn(U&SY6sP@|l}J8Ie3ma1_>+ zuT~$}O~LpTX_5a#85#O2!<1J6a|6S(VXjQhP)}TD-RdENM!o2F7)hKDV|@1Bormk2 zu3ta3F!MLo|M|^Zhfm$QIRoowpF5jC^&7Xw#`~z?@!U^zRUt#06>WBu<;@_As2E}! zhkKT@-&_5OPZe!I{Juql8*$zGH++_X3`cAlwO9+4Rqrxp7W1pu`1BhU$7{*eS z_Yz-PgR-gnID+Rh#@+_4n%b5P?*r*nm5A$d%4GNy-oCxgsrj*P(&jXuBkbAy4f}A= zG7o)mA>c-DuO$THmxi0~XCVEtcYfsKAK)EG-)X0v?qS-2^quZDRdCw8oU5_22ihKc zo;*A_1MXYzDqr^Az~dTcGYwOj;{oY{iK++EqAm^%T#tpft4fOpxvgo_nn9I|d1K(H zI;9(eIW{ZDvJ~=73maRj#Imcm4&GcBQ*J}7i(_?MH%08U(@u9rJAi)AQ8p_`@iY?H z#U8-90qMTTJSq+Af)y5~@Drq7$;~PNwzN53^#C{PK}}=GMO=(L11`k%9vA7jXm_AK zw$q4M?JMY&z~- z`NV7Fm3`i}_iE@ho64L%ezRN%Y>>fo19vIU*U@At!hbW7x_NJvf7Smw z`BlE~d94@Oc(>fc#8GQ|S?|~z?>C(lNUy@5SNe_jefPxHcY%4{T)3PyfGg7GXRi>x z_J60H?s*b2^g&!ds3M9zXco-c3skBG81C~(8u8&d&Mt{rL0qB$Sgb4A(1;-w3D-Q8?0_T!vG!P3{EqCdEAV^d?|$L*@Wh?7Qj~RdYa)y>3FaxX6j!d)X%zUUTK@@bA3x71x8U*mNLp+`fAl zSgBhLMJ=>qx42Z43F8%vE*?hPzXfl_775T^u-9?)rYNVRUlY=9%wj36A&m7MAiLhP z8^81sV|iC~5!J?t57P9=>kN3;x&VCx#z%|{Y|Su0!4L$60_%gV_qvjYZ(~TT$G>)v zv?ODC;AHkzzkd3r`|qRgd*qR;b9zrr=-@xUdGqk8n=`0>gwFpc5G+iNzvMkpyGIbf>UVQ27 zOulsc?C{9x34i^yt0ylxIk9rifVzK&Nnk#(xO4qX#$(p+go=jsT?8}0?FL>Lu39D; zV36nehO}K_{V#0;ILgiRxiPFHlhNsW_fXH8Wz7G}qqp(t>HBsdeW#svy4Pt3(s#NW zlt5XgbVPUs$r1Rj?~kS118?1nd^yUL642YrtG5osdt6`m`eS}KnBiU0I)nsuz*sB0 zF;CYuT-KGY_nDR^aaxau?UZ+=s7qbLWS+3xi3e9%rCSeDc)?8zM%9yj2hVrf>Ddv} zPWKeO@i#u?GZ=#9^L-rO&Lm6;NS}Y-_vBlifTUJN3I&5##)O%^@>#lNv21aP?{(qa z_1F%>1D(5@eCwU1JqGgv1!3bKk5h*-xxGi!{$-16d_Np1i$J~1`I%=o9)E5gZO)&qw&Bs-H-1hg<=f*A$nc6Eg5+EG;2W z=Ycj2mlB~ZAQ`Cv>j?Zq|AR2-JcYan>T^Z6OYgUMv3yPEOV6ao@Mc-Mg#DG)JeI(r zH`B%PusW;v^?7<9w!U?kPWiC^i*p+3)%&6ir?S-Wn>?3<@HVY|?73ulg}hQpzt(>5 z8DW0!eEn~}nmP<$gg*YAZ#|*si+=lW|H4!e-)#)K3%+d2_wU=|3=Ld$QnfQ+3x|J4@AZX8|piG;?c?FgeOe5hP z9r?~_dEA5vkj;$-o&c|Llx>=eyLod0HtM?+2R+19Rmwa1H7x)w4Vblh!P)fEFSieX-&XIKw$?R(eL(m zZKaKRTECg1&oIbyyAK|7WBblTP`Z$R4=+T7N_o0hE3 zG^SqX{U!Dzpa|L~7Jnb|qRClW_aw=^qa&w_L6PCP=bN%)sCes{3TnILhB%>(xg3`C zoXEy?1?jOMcB;wZK|~JDYZ;9zAJv`@=NsGGV~D(%NBT=nhGAUhr7}lYaV09$z;+>A z<3l~ex9O=vOZqJ_UO@QbrO)0cG8m5Wp0x^^A2v@!e47{N@WcL%^qqFv=~B=O z38Wi6dU|yS(l0q}0pz@~-m0K20`SN3IQG1kf6WV@S-z{y!?M0^DtRcSSsSFJ5aZg0 zpdQde{~~2wZ6+vTur9amd*FC4EIzOG)#LXfW!Py=lbTG=mcHXt&;Cn~AN$tt*&FO0 zqTK`i9wjM@MNYe@(~?`4zUGZi<^i7MbXznMTH4w!aRDGX;;#9j>}}o_@nnnldSrS6 z%eTT|T4sV8%0hVbB>kB4#WFDF#rXW?717CXS!$!n&#Vft&~|f(0=^8_&eR-XRI|;( zi`qxnu8kR}YX|;_e5Pb}pb@P>Y`f}51Hw5x;w>$~`qB0>+oiteRPpvM%1k(C1Mn+C znHLO)plJm&iP2oNCINHO0Ok~XhmpC*R|o8_$IlmD9fbCB()xYR&`Lyh46Xn#nV2g0 z+^QAQqVir!<=8Xeq1j_GSh6`eh!@X6w@c9?Zwf9}da4xuYJ7{kxJKD~dnZLMz->wX)T=!_2YvLvydGLpF#8({}IpXAiXDAmu1Bfb?O<}Tel4-JM6l|L*XI!m|TAA z2X)9*{hxXL-0mH7>O8|V2!==Pc_|zu&SkuHfsB%gP(}nuI?tYS`i=L^!1;G0vtoUw z$krIRDtBW({bkze(opWuA!MPkAxOeD&}&(&hwJkQMFfJIpqt=8=kV?(J?5Qypl?%$ z7Jy=fser+s2nL+)t4wJS1*mL(xLyb0A@1Rp?jHaThHF3!MI6H)&;ye#U(;pgT-{qf zgtO|c3VxG<@Gx0N^RN!d4TFQ#HDOt-Y7AUw1Moc!uF|))G1I$V{<8ZP@Eq$_pv)VR z7?Hp5Qpa9E6d<@)Rwho~>VhD=qF!umB`Cv{j|!Z}%OO`8JzQ8830^A5AN%;!ILiD@_20Si%-M&Zp8sY*Jpd5D%XcpaO*tu#11;x(Lrbl&zFzn+Uad zms<@{xbs_ZbmjLN({$(80}-6%&H@cZw90>RmV6*TF?*z+9nKy(ZQn?L zc%Z?QA(a_6KAV#m`El|G!I_ynZy9_c&nw9~yyyGQy?cY}K1tkHRZHpbrq z$+u|P2na`s_tM?+VwW-2DhMc7uzPtoN@!};ptw<%$|ri7Q?DMtFwF4G);+Usj(N2; z%&=P1VxAHB2tONq_tIRYyVFiP-7zukbWhP6KKPFhtVdoJQ%)Fy%+N@%YM=i8)>Gg9 zB}HWtpi#*@(amTvhkf$1bXzFwPrT7LWaC}$xjnNzY3T8-`L4p3`%SNL>Xftc&?}FD z*8W}%(wL5gMScXp_3HI*?=3QcU8lycWwdq>1WS#*PDN+iZ_b-}-R4$j_`P-N0Ms6i za$WTDw(z`eFRy}TFbST_zFqFEo@zec2(^xTx=O7Bz0Tg=P;XQ~R$c?PtNN4xyoX-> zAkTJR^{b?>c|gAt$P;aYRyLuv9_i(*x}TPDP2A5D%g-5~$Z3Ne`K#2ww8j$8W0HBY z7J((-JYw2){k}Si$s8UHz+6XO?n~4eiY4teSsQSqNgaUyNcu#zr$Bg()SD_Y7xp5? zW2y%!L(tMKa%IIw8HcNU-}(CAe3e^R&DF8-Aw^CyWz3?&kuY13Z)n>qmvRs!}oLx|_pZF*`}F zLvdw+{9Csfybs=&SP8JF45qsdCmmg_(!wwv?GAah!XyAY)!}@?z^kuZ8Gh>Z-}r!p zH^1`dBB~^e-Kib&Cj{S7?n!A^a2!8k$|neTYQ-yj#($u0C^dPS{5NKnq)2edQz-Sl zECoZ9r#y(zZq(OvxWfYprBe!0l@g^M?L76zLN+E<&-67T4t!H?BP@5$AqtS&BfrB! zuH*Km=Lq#rClLL2o|(Y(r=C8WzftWQWPEcA%%)UVRx^zdwgBWyI&o|nrd4$1!lH%& z?)&;*fd4U0AYUqj&d+M+yq1M(4OvCLKcUF#xa8PDvD$%|^(M*vpB&5=LYb1i$Y-zm zVY2fI0No)%eF2yFu(kXWdSg{Sw{i0z_kv^3_hM_pEiD31cbGS#&Z5Edd)qsY+j+V| zVj1J}(e7V&^~%Y^Cxf;}IlTlr1!HEQ`|45d(md7k9AaMX%7v7QNwPt7BiR;N-u1pd z?}fL#ah-4cFN?lm_ekGqr=2bb?H=hn-7SLcjkE=tS1D*yvFTqil}wI)1A@ofxgpBy9fF` zMrJ)+nOn?jXYuoq)gYQ5l;hRAG`}0%PT^6P=d*Y>^a&T22C8xs|4h_ftS)?a0PZ*j zy`{sLZuM$kvl|Owe5v5Ftm`3_)qvnp=bc{N>Ze>R-(t+5 z_y+nh09*|cdY@gC)@eq)F?DBfoZb_di+P&w0|mHFdCupWj~U0Pl!wgZz*>i#cqGFF zv{*Hs$?V zp_8&P58V6sFL`w1!aHkA(DK(J7s`*_NlKbTXh+91#A`}CQ%JMlbzIIJtJ{zlm>yPE=q8?ag+cNLGHc;K37EKpL15B#L8a0M`6JLzPAkl@p&VEPwrXYp2#qT89B?^ zrTp)F`OB`6wU~Qp+s4+Au)-qlH~|XGpJGO47S|oO8@6Y%Ew`)RM>M3r2-& zH5*{u1_F0_k2->epx3ri@Z8d-NZT65``b#fpqOB|faerSu#c{!s6j?L;gV#)9Dj{% z5ig_W6};nQ=W>2&O{iodpOg}O$+fALj;~hkG5It(12^K}V zNlH{=F9XwrOO(zRFiCtY@<&uy2!5MgWn73n+swo|01;sJ<+;vD;?-mFKR)foN#PH< z+5^wE7JXUDR63D`Un=@b%_IHx!>0p(!?kNCi${8kv%DWXvVEyutZ-}_eXM#o)O+tE zgN~#HNN=85F&PR)HBwd~{d?x%%z%Y=aPEN7~rd<`}OT zH#Ger8?X|XDnxk$0JLA-98e5lqQ}*za49_M5G`@^u;v1Qhvg$GkgY_}slxj;@<4sa z+lY#;M!9|o)2=!QfQn*B3_;&P>KFh$8B5CnOpbm)ltD(Xn{1C>8$_cGd6l1(w7is2 z9!=9tki9ZF58H&sG5k$BrG(>_P^WK^tkX;7S&PRUf9rYhpYko`;%<)X{8vp|BAP4* zwVzgcI^}whl1I%4Wpb{&e4lt@PQTL8^F#iH9OA-SPbH=q4>(w&}vk|O6qN0BnfylV<2@Vb|zjxQHn zKIbXm3rQG=EfBr#caligy~dMp5*T6&;Wmpok5oQ$B<5MEz&jPscAtz*->S#u ztKfTJGR%DI{SOSHPM-#l8z8hCn$EdZJqZf1T^mpvDSMS~>JS9Y$0~vxyl35DDYTxA zIHZ#$oM*YlhiRnV7bNo&d~iHBAPjrC2h0(%Tt&dQHWm-VptQs$fKomvBO1cAK?pYy zSRb-|8aR#N_zB>=y%$jYqQ6FC+0F}B7TF3e&aekS1Ul>ze%YKd5(4QMhM^C{wvu)#01q*D*wOM9*TVVxQOqlSwlh37|Gn!Y zAOC=y?MJ)sw9`)aF1=7ddT37#NdMU#NPp4LmPhkU6=26>+41>#>7NG@+jTczlFjt+ z8K#le7Vs{#KGPe+P;Ir4JjGf>LL)O%t}}vXwVc!m+vB_U9LwD+(=m_qop##k>2o zL$K3xN^T!>4e$l~w=a^0v9biHO>IMf0kf!M$Qq%QA!mJyrM=JJbtxDMONjmuN7WgM%OR(8-;fPOs6>%`tY^3{8WLuR=b9jn%#AkF$~ zymKf0mX>ty4Pm2BJlT4tW4u1M-!_C|Y+)eL1UO|7YZJl5o;Ui?`@eq@M6U&&1a?WZ zAuV|_vKN6Y^53QJc*pP2PM3>%b5C4`>Q&}{>I?uJzjzN*2yxmY82dzGh?CS<7KR7~ zd=dlDRVzee`7!8N20Z7bzZWgkFlQ)+ra3eQi{gN-P21{y>K@;VrqSM+_qTdxHeSps z(H^OgSb^Hkd+=jJvWaz8Z~gWS297w!r-e7nJSiy+WGBV+RB-*_2Oqfl$}6Y7|C3ED zHy{TPC*&1iR3Q{}-U#I26vR=zW%Z6-*jqbiX-+IKV@k_M`m-wV!4@yNmWLIh)TzzW z-duidBZTz>cbSLY$Ds&GI|P8c622LyqECzVqSg(fYuj!;t3!(?keh+y5l5fdI2Ri~ zg{mg{h5u#(fx(3=iHMz5zmVYl^W8-N1yQ z^*7Hm3vDc(3dKBB4UyJ?XT7{_>XC>iF*8|@@swk6z&h3=*(RjCe}xQ%ahDCORzqz( zYYt&xi2SY9SnFJ#I2^|L(*lp*xN-RMVO&7+tyAO}_-OM)E3bAmXZBxBTMNSq&iiY(C zDp+yHniuFk2(0^}vs{<&lIw!jZC5G2@nD|d^ZFTqXo$;bi{qA`U_62{8HhIOp90=# zwlQ$Jg4_xYvwDNC!lyFmGw_xd;NA1Hbi!k9G-1!&z%4?!yg z+tWKr8|N^OF6aemxCI5ke6JS^2lYhoj3I3=n|j;37dlhoyBVAUD8=#;@agkD7n8AI zXSTG$WY|pn0XDN&GLu_z{66xF`dHbsbbMOfX1f>iK`E~mW`y+O4kXOoHJP_*|7~WGnx4oP z)Dvx!ft43p&3~n&Pe<;NaO~K9dQKGMflHb;COk1s!}~R6BrXpyp4F#h@w>@$k`o#Z z+obW8PtbB1|?lEa+nrYny4>pIX#! z{ygn;xu^^*ZE{KXgw39x9U1%ySX~QL-!Z~=PoXl!brO2cf(tT8L*>Q-H0X18=#yY+ zL9#8Z6@$II3-W^_(A=yU;|LB1=g{(U0GtJ;cg3_^pI}Q@F)KK-yy>_c0K3L#edl#6 zP)4jh*GHpLeFAD;k=4Mmq?eBZ{x@Fw(ktPa32nLL;m)Nd;QHNwEet@Z>C;Q>Dw7JI zl8$ZP@n&Od19m4#_eh7iwE*qx^{}*cYyw~p%LI^PtMM2E9Cf(r@LJROt{G(-PZIf2 z4`jDATC-*&7pE;trDl{l`*AP!&TQ)_N39O2!wfSh>Ei|F@ zEfQ*dL9$nK^V&9Gec4YUy47U{r8OuKdbUH|FzC6ikMQE_+h$V>Ev2O$hL1HyG$Ab# zV}xq(!6U936Or$ih+V-;Zxo4l(3PT#aFT>jAV-y3_b&U1jJ2pwDunWCk=f&-KR4C~ zihUL>lvbDvd_AS1Jr~?$q8&CiFXd0XS)1lD7~f{6kf#97({fC@ifwMA8rXT_>>!Un z{mktT-?(}EO9%0d^Tn4t!sM?;568o`KijNU!yRBt;+GX{Vj;oOS^H9wYc>8m^}s;k$Bt zQPQ74UD6@3ILNI68GyD|*^f67M zSfr|f~Gg}8Y(_^xqb~#T!DUVLwvT{rQ zD)7 z$TO>5p^fsWebPX5@@JGjUdShzQa^K7_Jt5|lmg zE0u34Gff$Qv&f~aDXbRan136w6@wPvuz3^jwRj`>B z$z_|4sYVM|VsW&UwC)^CHen$|p$|9RNI^55SB0pv8Pt>pG52(N{k5wnUw`%LskVsb z6JR4Kze zf)L1`Ox7{UYQlyo3ob*4;PkAk*B6|A3nkBzT{tc^dB5_`{&KF;{d7*AmQbBqjD zaIy|;O_!kzrg*N#ze)<-JV05Vh);4BE*r04RJ&nIoM*2e!Ew$$+~@G~i3#8H@Pk+X zlh?lHfuH~8*FW^0M_+T_AAb0OQ)OBVU~O$aF3;Ncr^nU?t8*x4QeR##Ml<2rJ{0zS zz*rO)V>AQzT6fB+tML#iW8oIAR0#=$W6*vi(k0b)eBBuBLRxnm<3B1gYMTQX_q;-A zz^)Q1JqrR8g_5(dWQcGRS5byVnwZ>a$%mm<>gEihA`g%mc*@?>ER){Uk!J+)sQH4U zCxT3()OVjaJEO;+e)=$bq(3pAb*`I{1muwT1~r#A65iAOezi;rB_?ieGhmw69Z#&|W23a%dm@eyoZ{)VpR z7GbELuH{+z4W2a4&_MQ-W=U^r6F>#MS0R0{$QBNMx zYqn>V?D)0#zNDD%!IBPzgW!B^Ah($;B@7L^Foxwih1YdG0)Ac{+fnZVOL+sN=U?;4 z9?1jw@$BKwa<#D3?HM;|D=_fpom=VGU^Ik{oskFX5GrKojPz&&tw0 z15|!IJ4G5=j<(6b%F8((hF5+hr9+NmJ73jwBH>?>+H$$ih(Jtj0C0y`M$VwM)x13tG(2f)y;s~y+> zg|GlVr#ka%PWh7CT4SXVx{i3;a0M`Jg95RaH}l2FMYoN~(@Cbi9I)googj&dt_CkW z4j*}k&sw&53`*h|`Do8jgviD2LanP54}9vA3sgA?v7yliPkvN!T|L)Ge)_ zH*fpY$F#mQ6Pv9p9U*Avk`@@UXq7$QXig@TYx>?DO%{VfpTK4z+YM)|YQi2iPeY>V zMmXD5lj{_G$3=oIpJ2)R9&9erQ5X=eqylNG3P)SImY#Wwuxk^X>tCQ^roRV<6aJ$Q zKXmm!di2%z|NJ+9(?joh&8zPJ!w)@lN*r$JWS;3uboEe=4_NsxH;9qf+oQ30NHEaxF&7%j9CmM2^>L1-6FcTg>j|0^6X@eZoh_0pVBssYb$5~Dbba`Z~ zc5qJD%#ge))gs=`q#(ZKAdzNbKIFLA;4jNM9lM&AShcYC6O&ceH%%^P@#H12-G!C` zr)qxUY#bkd>c-jQPv1Cv=`f#<4qoVDrO}feokYI z@{)n+F_#C3Z|RL8z+1lJ-#K6|V7bO21LhZd%T!zrzIGser=51X6of!JE0Erqd_hx* z`}${b%lxrQhf18?BmKog6(q)ITj96DU|QytZnW|eCraMo2(o7*c0X-fZ`8HRoX&aP z@Qt6~%k(+>+XCHdxo!Po<;1$_ZAMs*Ed^k|#}}qs^V?~soxVES0rY!~+)JPl9<^rg z8N+(Owm4mYX?qR#w&K<2e&o8)3h-cEoZ<>u?Aqe{3YFZL;D+KED8?hz?b^O8K0mYX zpqtmcd6F{)Kx}c$V_m@X>YnZ#9_<{~sD<1+-GJ-@E~~u?y|@K=RT~}F55t8Sg&bd@ zu%T6NCo^S;P#AX1&g(WZaz0F9MFTzZTDpX$<2(Hqum5Nh+<4ILQ{3`Po>m6im^0`d zjR|!QKwEkhCW`iJjMn%yuJNRQ+aLtjccLu8AVbF zliI}VTry}Zkp9+u#+~0@ePCL4zl4=_n=kjA)1?xxu`9V>@Or%|aGl0tC(YIPCvx*~ zO*hrK)J-;P&|E+lucvI_``l+n4Ak-kS=9Jz?_B=E%fzGh=UTqIM$ET=N~O1$P!;`x zs8{T&c1isqb<_>~le_o%<)!F`MNV@7)pY==tVMS|m%kf>-{*e{T}irwKZHDv8A~c9 zi_l3{M?x&v{7%BHC-xzr2H_~BIzo|MD}kdto;XnARq>qIH^2d`g0C5Kxy6oI#RWUHIu z)U&%aG;@k;^2|VUdk^WbO)LSvOWintg%yDv5r9X*x5;7V3BWvg%kvQlD_M_b4Nu5R zsIaU@_OJ3@SVB+O$e>IFJ;z2(j^R8WYKC6C+d`-Z&%uP74Ng0A}PY`ZVXhz#s zObqjcH&;`7!s8rT&W)&|TWDedU>#nwgXVY6xVOw9kZ&>PM4GUJ3OvaL0CO*G`!;fhIa)d^_D^aXNTx2hw-iX{XCT z$2`(!vN=Z1Nk<@TeU54MX#Pg}|7{1-Uo?as)x8b0Js`J+>wDuw*bHK?LFNmC#k{=^ zv5mZwYO~63YqJ0voX^`BfIzvYJLG3u8x4%V9v?mG)zMBn?ey$u2hi^|GS3n_E|iPG zjcnDb-avRfUk>AEzSV2-g)njL0CTwXU2t-vG6L}2`{wxay>jt9;^=kC-(;`e=N5jx zhojutc%E+x!sd%?2XjP^syC3w7T#zIjdylLIM;8Wj}qmesIcsW2)pCe0&AAomao1? zuu0HVMVXvOd=cgHsSwJ;5SKUu{kGXbZ5I^acgat}K7#iQby|6MTb<44q}SG1#t)Xw z7{)qKZQSeBIzrX1HEltC3evIo-s!BO3b}(1T6;>ctXG7+E4~^j$zHb3rRGV5b~NWt z`-hcxv~W_v=O}vuGb`U(cRlAWbFH;;BoU)fSmst69Z8Dqn3C-de<|hDCyx(lj=YY; z=iK+63;bC-RlZhjhafVYp9!XoV+!A4-nhACtKZ;wc1I`srFGue8Wmqir(fwmY~vEf zk}?P5e{_DG7YI}NbG~`4MaZgf<`hVd8Q>-(3nmfaIiTNq{|`@jze#aHl}n8a_oj26 zn`qNNEx_{l({#A?%e2!arI-TBoV4@_sj@+Tu}e0+%n#SeLWe293QB@N1fEk#&n_)I z{-W$*2t(xGt93acF#ihONny&^M4LY>R!?arl&IS*J&zE;~3US`-L7RjS zD7LFoVoL7W;y)grqks$Gy40dXvSOoMEDQiZnro}a2l#~FbpQMfY2@3E8b%P=zC+#s zAOlz;O%)sMsC3x0x14<)y1MAIwrRl7J)x8)oA`znp$6Q$8esr`sW$Xbx3opeVAWh@ ztq>ZqtiIX2vDxcD>rMQmf~ZvQ=o!qi3of&%Nc0SA8#g9trdaj_dZ(oF=voHF#YO(@^xSHz|VZs>mK~yz4GPPUv>2grmn}j+XHTW6~3F!r1!EMm95QU&((j| zchup>y9P?0;LBJYB8=s;3~TU6cg@LMfk#ir7RcyDHvexQTBGlX?qB z`rdAOguT{z>Rnjh+7}#n=h{}ju3AROXi8R+p!zHspY<7~6D_Q}gwjTSdR>!ytA$Nc zcP%|Xr6P@@)*!abZGt1vqm^mY2TStS zTSz$U2Ml^+e40YofONKwq`*7KAeG}*z8M5J@AGzQ9eAS~SvRpZvx?Fo9r5*B?5!PJ zI?HDgX!%C^4y5n2(@ys~^*qwo^W6FxN$5Cbtz;ek)BDlxFFLviAYK9GNF!pTg+VdeWci%~W9El-iF{I`BRj1v&sC2gumU#y$tRRRqB% zdt~MJber`7>Jv-6}n=kCF~aZWk;M!MLgQ zNr@Lp{B_6w98Rs2o<7REl|0P+S4!PmCypq8Y|wT4HJR(HY^M3u(T9HZwbR7*V@qZ@ zPHkqxx@&^S@ka9sTl(BM?%zJY{8U%Es5e-%OMRCFn!wm6(94=)Bt)yh-@;`5L4}^} zrE<}}+5gLwWybvA7ab2H3K=>R3dSDuvq{3?Al!-(#;c z99)PA*6wT+{Hv!m)O-Nl6)0cL{wB9Mv{?t~h4Snq%DeYK_Nge6X5%PE22&X7DE}sK zUCcYgipb8YPpIPKQ`v(`@!`-a%RSJI-&Xgbtm5cSH7+ULSDc;>|HeySdiA~E_ze&J zXJ7xd_y4g+9=!74$uP{|x2Wg2!1v5;rRW>Bm**q-3Ivbeo)n4PyeIV% z0lNcmXWuh~V0@_>NLM!$@&&oHD)y`+Gs{4n{cRzGm6QCZ#{BNQs)=J1z$?X@a=a0#NjYL z{?yZl58t?P_T__&bB`G*Z(51m3C1{iuQM-mf8Zt_jnhhEfI3Q|IOT&m zMS^Z0TRf&5nulf!R`&;o{zt=o# z-gsJ7&8Mc@E01}_BTq)Xa_+R#PIr%X0R3Jg-AxTk*Olaxjdw#1!*G3V;K-&IaB`WVN)TsP|)@2fHvo^#q6(06^m^dae_Q=h2>Y6yU_ zDLGbq7YN2(rdxk)O7tP9d9g0RxB-jZ7#&kE`++3CN8jN(BK$MI4{8DBUP|bl+P10-9yUwNA(AV zT>Ir#K$B-NOxThUWeXBrj*kz>$3bAy$wSjy2Hi@}9lXTid6L9;emQ0#X2Qw80P8;Q zn`fnau5)-fhkTu%zw*lI;4MhWdm6y%@VTgu7W91YYFW^bN2?pm2GbwlJH=WP20 z{m`8a$xo|BH*ZYm&pSrzk)q%{d52)=?oq}B-Zuq{9dz;zqF(dq7;s3lZWM@N#m+m< ziVQpp7BSZmucwVQLa6EWyic^;t!0Ev$8{bZ{KmDFh>wQ`X14##_=TguJXK;qTOW-$ zg?oo$Vh7?AP@P@)}#S zPaMNR)1E76B$#Wg|6yq?j%Ul+49hh%OT@dAxg`9G=i(>B2GY9#-vMT=-yr7uOEhC4*al)n+$v zYlDox2Xu?W6t zz+-Xgr(SOX5WC4TnT0aA-EAx2ji7I^#n}uTyjoa0(P4`)_rc=ByKU|w;}nj0%_Hh& z<@rEsARXT`{4!-*;_@f5$tTu#>XQI8<2$DHFrm&nDc4-m!8lwVZ1E|;8}giNw@|mq z>c_B=Mao7S{O#n6Wp86;NMi^+#E zi^SN`4y*s`pS{AvE+TyfrHU;!yY#F=P>A{hE9o{W^G&(2jQ!U(-RZsM3t3j7=`uy& zz5b#*vuv>kyjhK+2qcOavlR8l&XYz|eRnAQx8ORwT|ZRdI7ARd zwXnWtdDZC^JDdrs$!k*x%g4Bv(>%ms4q%X_f@)clIuQ>Zcfg_i%#M!NxPrY-fp_!- zClj}VT1;C*wAu#THNb0u^n*7d_EiD_+W>%>hq{&-yCwk`MN~EtSRQp|X24j*B18F> zj#M@nK$={>HJ=Q1OesP!c-b_xY7g;=ORU~9@1A}D?W`u@{>?v>6zbBis`R`>bt<|YbZ37=c!sN1aZursiX`eV)()Vwq z$2gzEEl0c0K>EM=k&nNPcG_vDo$gUWkMxTI>35rUApP=_Z9?sCZmnSE=OhN2Zhh&WpnpSPo$pvxw*s>|jVXkX&LdZ$LPMSG$ACBgGN%qB7m` zY!<%u2j&>F1$8}G=X91bN%#%o5%b8aUD@UU4ddxhs%9|IMjZv9N@nnFbC2ci2${rt zOV7dbX0!4-!SB5jS}N2O#9;-Axi=VhYc71G&*}+_E(~o4{1D_v)TxIsVuy7g%uQh} zV0aJV{Exy;gJIb#IqHp(6VwYN-?w&PyoGYR*(>tIaGrML&xyAZmY}|54F+S|w`4fi zqt+jK7O#wGR#({Wz^m&()FF|2$V5t=6EE;f@oW7R`yh49Zdi6Id5YO(A+&q$cha$X zsDGHIhb?*5Ywo0<#w)Gsg*s(8_RHt|dY`~CLNP>^u#(JoDi6iqd77NT=$;95{UrBq zlR4IZR&oW2*Wh<5H?Lrm5_qI8d7q#Ei!CkgPPAquabR^<+wiNW-+145k1X%DOigGL znc0&9Pc>Msy=54^^YuTaH~;bfhIYFA1mLGYKX4&Q6pha&G&#)|@!lT6Bu21Pu)SNR z{$)(!hMD${&l5H;5R-$yc`zc+k%mpvEZDtWLWity<`Xa|*8NLKq$g0N{NW_f(n`A! zJWffL{W*IZSWQcwI%CR+%?jkIl*L7s^K>78G3Rih8fbmI>dKXYs5giCo;cJ@v>c0| zNIC=+5W8_Jc(<0qcm#GUw}L$4l8Mv{oXtZV(k-1zn8K5Nxi_$j@*c}H-&nP49&AUd zvsIMULE36U=5_9k;~htAV?-+lhsp-A1^IS9Je&$*=;#hgZ)pnT03K5T(HnostKEl{ zfz9e!zr;_VHMBJYFWAoZPT)UHoZPS{&PVEPWe0=x8?Om}CegjklikyUUoD{j+CmF? zZE`6lJKG%aru(m-{K#uwef?)%|GJ0X@zR%Eea*G2?NImDJN(brq~gmb^%7U_^)^Z* zAHi-QweO`9^$TXQZ=Ab_dZgcuj90*$+W`oYRu54ktu#iBDypRc?X6AHxQq0BV}^Hu z(El|pf8HWTo)RAww|p6R06D)&t?V`&gFkyGF_5j{VsuF!MvxV!l1g z=Y6qpplw0EU~NKH`vlp7Uh!}u2iE8Ro;W+me6;)HH=eoum4h4z%4w{a9P~vGx3N3_ zG(p{Dicq$JwDo^}#^uu$v5(W|Sv^|bRabbL_eG4CEP#`6|@)2ixI~`Z?gf65)3G4Y7r_%{AGGzN}M8WD#} zJ-XYewiA2YWu%)dJ<{{;jOOp2pPu}9bW8#KAW9#w8ixomvnc6YD7SxvcDnSmh~G9@ zNzxF^b4Lkw%XT2-r(kyQjX+c3rV&LP1?2e3Rzehg)0 zOKD*%iw1-Xw{N#Y|1V`WrQg1vu1CY04g|ez8w=WPbcE@C*Q&Q~q;Is*Mt20^(eCu3 z0O`F+6uy%kkbZpw(qAUj1CT2SUBj)#TjO0p>MqOZ6&8 zLhtqkXkX;rCtvT~MjLH(duRjD&lw4R!*GqjOP#VeQL0e%)SiQr1J{fu0g=yyH2q>Dgr0)pQ(RObcMj(wtup z49_~?rOPfMmpwJEO zW0bYdE3h7^rd8%CVSgfT%+jChN4*x{8328*G8D?~0s0(wfYJ^RZ$jJ$R+D82p7o_E zJZae;IE7e`k0B~3-VKA1OBg9K)u8xm{f&zu)cdHlDYr{!zH8;bCU*XkdsJl#$lDQ%0@a@VVwE^h$LT_>)@_xwz8^7ksJs;$OPZK-N$jC$lVTF%YTzyJ07 ziH?7CrySmBs)no%EOA#fL=hxpYmRWcn*)9)ec@MpkT$yGiRUIQ1KFv-jta1Q47!i+H$#5PyUn+f zLbD-F2*&?-9oG&oW*Lx|r70XhH7BuR--?x)Xd#o0|2m{LUhzEgl!vR>31P}G08;_! z3jE))3qZC&jzUHTu@vCeERv@R#q8f6w{N0zdltXqV0VD|6a^ce;vi=s1Nb$*P#$?A z7wj@&_)7lmacnN&z1@+3^c(2J8Tf9Xy5i;@rpE&|IB*N=`S8sx`S|9p?AADO)(mCg zz#F8=KH6m1oua%vK70Aj8yuRP)?A_CBWT@>XjM#GbP&~@`6)y!N#ql8A05#wl8$%1E$Iw>82KhIIT3dJkr`x?CI z#bO85UMoZC3^KlAZyY%;vY|p^*Y2WlT=lb#L!nonIXRubk^b0pwEO8ea-^YR=Ke2b zLy=I7j2TD=0J}Y5`0NLBbQ`k%&v0T1>n0wyr0loo8uK`}q-wFaR`*Ruq1RZYn*jLf zX!q$G>0i46=^Jgd(K)Bv52WLyr%aRAA)pz*Z;x9Lo#&a~N zSI=z(v5~KZP3aQ=@|5L3@Vo-z^?U2RJXKHpUjEm3NO$qJ(MB8H4%z_p^G5rCbAs^& zJk@a#JQjV4U#`PtFoy-N9WgEu&P^Q+bZ$qpi`u!!Z9VqmATxSe+b=60v&l?M#DKxFQ;UrR<04RVY6+On@m#T<`ZJhK>9Kruo2k!twkv) zhfr(`Ksy9mf@(T+a7xg=LDZASge~&;J;(d`4MUmWd;;eLI1XbFiMk@N-Kfw}XIMu1 zN0u)&p0LL8PtRMUXca`6NL8j zlx{kEdwrq=U|Jc!fVj3gNo^Iv;_4;w=-dnRw``C*LpF)u3bOX<(^Lp`-Y2;_bqn3o z#!o8t=8Tu+2k6NyR7ri~g^2)J!h)VD&oZ&ZZK#Im@Db zd9U%f(urT|CF=zo2Xn#Tq<^@0qrg`!<<$JiAhhb7b=5#309SnrC&+#-4 z4y+IyG0)n5nJJl;^g*g*W@6) ziQ2$#uObKW(~4Mp#mjJQvoVg%AYO7dner1$^7E!IZ52%vt01>(iYpOZaWUEY1~M2V z0?m>r0r|MiQ!qLxQrl#aH01nz6dYTu<@$T)6&p3Q;b{4DS{K&NE@>f4pnn-ejlEy< z(eBq~kMs#hpPvtq|Gc3_^$jHH_nq>yc-D$kfnx7&n?H2p4}4+(hukOv>xvBWD40Kb z=2+r5ciTJ_;gywG)eSZ^7J3_R9_brxw9y?vOCTLag_(*%P9s$>taPsTQvm6|y8-EU zDD4BAdqg8~-HR>i)6Q{R;JGQO0k`GPqmUbVlZHj`T$#-8-HW#-A`7yRmqgcmCjE05@BOK{ynF6*<%AhKGl4B@M+uDE!) zVygMD%@;)dJmO{ouAn&Nf>&fjS*;!ufGi!L8~|zGV-N?3k5OeylGsY_P$+ zIauHSE;-iUY&Glw=k{#&8W&oE^tI<|*!jU2?~CqA-$56w&p;AkWwdCkx7bAs{njsj z$4-X-s0pKbNeIJ8|H?1`0D6 z|L5>5KJC&OQcNE-a$5Xy@W9DLx^VwI$pD*pMD}?E#|UaE#K>*)8wthAAer|8hNKB6 zk@`F&g(Kj1e+Il;)J0Z2u1LO*?q^Xo%kcnz0}$^i^0e;;=Z>uoDF82cLpU^j^yFkT z)gLc#_;J+@z}jNi!el_#BhExEjhGQ?)8ou6Ww3$nV!*qGAZpgLQl6=WWA4;h;LJEJ8S%<;=<)h8b%{c?CdCU6L~RFvWt$>6L>y>=+ocRvq!p#5u1|`gtk7*l%3+u z8+}-KqBm;aJ@?i>SGIed>rAvA&93^e0Oc{DwfB)8yAEsoBJW&_m!VvvY*;JtZFG3} zbDKx{MjLH(-YI}|{!&^1=|anUB%#|u@s0EiNPjs{1)J?zkE%zv(Kxob*DCl9>&G>Z z_TF_bz3SO+&kz{j=Sg4FSOe^P@@=%yMlT(00Qz~Ovg>`Ov`gQ1K-Wc>FD%h|7go0h zit-3^7=6}&cD48#pgeGRej{J~J~|J^U+pU+gl*!f#f;OseFm&Yfv`dgfYfb6?RC!^ zJR9lY-Sp?)?HRC^!pFem=DQ$?k6B|p@Ayt_X@yX@F&O zatflktiXp|o@{7Jc|p@^PKfq-O=DRBd<*s*H)^$a0(lh7dkMcb)?2=fDdaB^9fRC%gk{DH;Ey70{axtDk`9;f(MFeGchotTRRm`+mMG_&WLX{{a|Miv zsL0p{ZhP@)5l+r{kMCsVd55IW$K@iSlPdQJ}2%!oWO4{9b*|?P}0*U|fXjwkhvt9Pvz6=P?lR&CDQj%UN1l zIc)U%Tg*++44%t(Xd!#u#Bis{uwx^R2Krc~R?=OVAED3tv;T%RdfAZ}7)jLN92@Qh zzOd_k*G4&=7Kj}rqaMTpLyUSR2ADIeG_m;xhEpJ$J(&K?D6Vm~zNtWZfHSTZ+gq}B z+xVj{(?J}*=tB!7l*-0OBpsGoFRB|8?bnfEN$C+$nWqu=I=_XjU(-NP10UD`$z{+% zC1z94mZB&Q8S*y=OOxH=KYI1*39vNX;l(Dn2bHT1G`(Yc+<(_MI2~^ zrm@l3nb@{%+qP}n6WhG=Kd-&tz&x1aSikRDADSpxvN|X+0p5qeT#LoIwqTtDE2+|! z`%(G%tx=~|i?vP(yr40b5Kt~yIk}szuov)5Kk?Zz2 z=(nv_LoIdp&Tc|gy_5>b1-plQH0$0jp#A8Q9X zfn4Q;W0uw7l&uGF@S`X#WsuH)vy+J6*1ny*(K^@2&3YNN{`eh&%A~mxs*K@&xF1j4 z_Rfq{@u?Nh`>u zOW=1Eha;%E;$r$<2zLDc&w2^ivGo?%agmM;^XON_ZQ<9XKch}2Jc6B=Yp-EUPZ(v! z04y|mY`sBYEb*Xj?x2ei-{Z#*rOi6wTVhh3srE0HWj?4x6QfCxh zzR{T0L|U>|iGQa5_bLZ2scybtYvGixy7qkkfltlJUzB*<8u1uce_gdrEopSup-}dq zm&uh;4>(rc>c)IF#yLMUHVOD-qx#(U%zidz&Oc_lv-ZL=8p&N}XROj!@&n|cfdZKv zoP_~6w%_eg^PX83Heh$mGw#Kcl#_h3oz1-dWl1kOohr#HUKj!A`&Z_|xHqaLpyTE; zZD}+U#8q8vgXcKB*!(MgYt3aREFrdo97-dzzgIDsO-*qxE$AB{H)4fEu=cQ@6fd?c z#0;5e$NT*v?s%flu5WmDj4huUYl|U>&g}i$x*(P@e70Cx)pP0&J=svM+P)>P|7!ib z{)PzkVembohB>K>o&D-<&DP7m5m}2Or$o)+tsg4}40Kz9Pm&+@=t*LEcS8YX;QnT9 z>Br{%oqqp{`!;c}FD(B#iD1yZ)7#kY?m0bUjv0m7^4tluAlTzV{kzg>6k% z$6r8ql00E<#;iL*@(WYm-uIJY4LQ8Qe^s6NTk;{nHIcE$B_2Ku1xdJ(v>sJ!TeAEZ zU5dI6!^M|WLlGgm=1p?b3hEk5n$<&n>;FD&NTtIc&#o)<;w}#gtl&^x zYM3_*Y{Zo#f73(?Ft^AB-$k}YkD4cy9mE`w~E&GD7r-fhc(ifJ3l)Sgs$+cTRy)E6Yui+ zdS1O4OzY!U3zIoR$OYa!tdgLsWz$TLg2p)7E4~-=&bx-1z>n37Tm@u5!<4UW+Z2UHyu5 zY`Vwa@q~Dts6bk!{)sfUjC>wzdmzQl-9Y2}PmGJa;bSIzC`W9qF13()Je!g#)AcWBp?QfwWOs4ZyA8M8D0zfdZ`a*`iS^qAt8nCNDow z+@cb5lV%$<$Vttyf$)1_sI6snL~xK+?CW>(+|Ikk9UBAMAx}vJszY};lbimNSu(z* zCV_rnPJ|weAO7x_3gW@baiUkZ&FCqvwxlLS39j zCu}6h(IzG%(k`3}o2%1;ySd`cx!O9eGo2~0QU}QIY&%xkm+Xw%D@wv&X>Y15s6eZ$ zbTRB2YaUQESW;YR5BVr;!eyDSbG#edu`52X&K~)^>!(SAB86gZX^Rv>e9A-#}@;>>+?STS$TU+5wzx6 zH^3h;!X=^34OXT6`e)JbE`MOq&p3MNVpk<{(GQyrn^!H>7O>XBC!0tfAMt?u@K-J$ zvCk6H@Whly6_qbKj_^q!eH}Wxw#sF8hfzH5ny!svtE$kp8=HfA`W%B zrGa4*Oe)}RvPDjB8v|mOr`@>Z5Nu3zMGCQev`J&jm6l8+9;V-(6H%;zIv*>V->953 zZI+azkz=Dt$mTQP^HyWieM`snXm((luhO{J}1&W;kkF?p_!9Lri zhp#GX6}#E(8Abl<=Jp-zy+sek5u=a==ly0zhb7s0uDc zj7E%O@cS&J_uMr+F2wO=jK_yx)ozDno=A1HbhBi!p~U8KRkwolG5r+f2yYunzj`sYx2hqrc2uR4waFfVC-EWyDEeB8sl{@Qk z8NcTO9KV$A40-FN2Zb;4(_QZaT|7it;w+hRerzp<)|^R4l;l9 zzK!CtA(fWi>j=HB!`5J&j&};1({rNlNRM2zwCGhva%6;nCp1JXTyIWFlLd|U@)>n5;lfB8u zapZyVd@^q+7v^QTiGbWK@$p@bfEz{aQ2toZ#c{yhr2>A<4x+~D$;cJ>oS!I&VShD8mjAy2FWme5f+v}146bW*q zz}y(-o;_}Pv%qeE`t1LFXaPdET3-p6mWaYv>-$PqTRpcc=9wZnMwy#rYb$j9+(4(_ z+^7lX1FV5ZXpctNXXf-9BHQ2}VW?sIBux{I1}n7zLeAhcl(vt0gi z!WWjK6mE$molETVbU^o?a?Lsmzv!(0-!K#Y-!Pj_7!XFWZGjlIvleUwnC~}VUy$zL z*O%BA4b{Wepl%;6FqgjoGi~1gFmfqyghz{h@~+Auhf+P4R(7Q|5p%UTg;N2y3xvAH z+&z}k<_cJ$bXqdviOmZ=B`TO=!+}?H7iF-ikP`gI@%FV!12k(@f}8Qs75lr@SxI49 z20SJdJ#B|@c8Zki8;53C(^C(C|H`xRl|>A33DRh08&*!g?FvVlqg*2?vYg}wS|VCL zi7vTaF(FwLCDF?L7PuibG54aFHa2!bFG)BIP+{6krM+33J@?_4zKZBSig9{l#tP?N zBq9mq5dw%>J-;wZW3rjv`Bk*G{^08QmcjvhZD8lOcLg4%J{3^vV?N0S)mp#ncMUve z*F!k%$Y9}-12W?En{IYLg)$B^MxJDqmcU1b z`I17hY=o=|A$Ni1?pv{6NNH0GXCC{w`g`aXXcm?(K@BIVCzq8VH1wgG%l#}g_K%-E zec;X}bcxbqs`)@V#n@dNhC(vQ00T^S&>wku`+jmEuU&I(W&{0sfYS%5KPvvQ3H{!v zzyiR}j@;(pWC@8a>a9ch#POp&7?&qL9y(5e7#A|i?&|bg77L_Zd1K^^F>*hp z_nXayUK-AGyM&C-+Z6+sToc$Cvei@x%DnK?VAN@OV)m1YmfMAad#sDXbpQkz$wxn5 zjQEdlK6n1amj)+47xk3mOrvlr&@f4!Eu!>!zWHt>B<(@GUg4gLaP+X{g-2<1IPpRp z@0poSmJ=$6928a+8A;8-dGbP;@zdd}jV(as=FWZNY$-1Hg_B*Ik9R~7*`bU$B>?pA zW14|E zI`%m!T!{?`SR=73H*!93Vj~>8EBGi?$G1XXLn9&(+PddK#|kZJCo zRD}c*BgpQF3KVpDgNFq+7*ga~k%zkRXl$x(ygtd5*dd)r(8`h0>O`;HkobaJuCS=l z$Op2tvKE@U+`km6kI~!82Aa5^xq0h6a;qFg8aeE6)vbP6?b=)s=A(+NE zq5C!pD#_=c`kApL!WDK!mQ)cWt@KbN1x_q|2|`=|rk-=;JkPRn0elSQm9gibE5GgS zw)t)210R<(1Sr0UeLZ;Ms&ZAzfmqx((o7opp6cEp?Kk$CUscp}SlYe}osA*tK;9_gy_0v68pSB1;SwP?Ep#@yNMn=~6*pI=RA zYG$%_JW3+o)28b1zU1g>`OmvG5OOM?ixB5JPst#sDe2{W{$<9gyJI-_m*kit;pATOgz%nRyau5 zo>lB#H<5cR&r#L<6yz#Tsbp-EfyC3p=jR&x%#fAK8r<6LkiqqH za!s>d^V~Y)0c@MydDi$1%A2#uY$jHOaUdswo7yklrGa5QyY5JNppio0VV=em@3<;3 zq>*vkS@c)OFr#Okj58(L-y;CbZ_@Ks5KHx{Slye+xV_PVR?`PJh|!TlwrE4?g#qjm z?=RJ==;;jwBj+cB|EWuGQQrKRG38r^k=V3*mc?Aw=-hi@>sM9OFPO5(bk(?qCb5wY zz{|PL8}#8`)+XyayR%Dv;j+9ukdCw0mL3`I)->EiK1Zu?j=;<4>qI_~|K64YRb649 z`9Pmb8WQcBEPj{|A~gsq>ad0=z&rXX2@3Y#lPX{8I6eeshWdGTn> z7F3)VU0(^LlTz+O(2Q$xlgXD@Rfi$|Sv7$W#o1_a@&iy}y6bDLDeEyAX37%Jl1K{P zx@k(t&{S)(%v&VfVx@+PLUNwi(Xlp&3i-*%2-xHvE8NDj+B&LKfKBK*h+UOe1z zR=Y_xVM-%&jDfUUGmUF4#rG{iGW{iG*V$u`;jm7w?O!KAB|0|J1&#eWuJ8&|AL`9N zoxr|R6s5RdQ}$YdI z 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%0Awv`RkA-l3} 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

Hs&*^JA*=^%hb;qy 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

    ndA zsWt{srll>l3AMFiyF0u4VTG}U&wKasAeqm2geBv;E40mrq}b#_*%yL%t}DC{8b?|tSY zOsbt=ce>7#E;0>03@f{BLia*}>1_1+htA1hvRX~Jx2QE#^ z(6ja5;BWXloo9?^noJloP@1t^BB3`@3cEzlwR4QS^l)jD4a*oT$WTzZuio`ijPtAs zP&rJ=XZ*w^RP|5&0K2Nk9PMa8+{iS;{i7PYlTneWr|#b{cH>M_CZEL62qECHqF}IS zglHmbI) zzL2>WVw-;JQ_e1DNx@aL$F-mP-K7xeLy?EYdFphD{{N+#KOFvl zh>BQRTsHMc5pvnI)>`yXq<0(!Ggeo;B7>h)cDS@PA@@sw(}>d<(L@H|WMB+~EM1qb zLgf`55BLWf4_XtxDElZv{^?1q%b`G}VsQ__#l@A1|4$R#GtW`qV!5%a(k@jg1#5mZ zDqp;1e6y3mK40!z?+wX3gQ9dHZPEn&I+l3Qxf|{?Tp0~lGeF;iXX)T_-b(58t=*F% zD@ZrBqJo1oBDknQ(M9iBjWa`#f7bb-7sz@^qN7O|Cz3Qd43N94Qkps~8s{9k;P_!u z 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 Gr~e1#&a-#` literal 0 HcmV?d00001 diff --git a/frontend/resources/images/form/components.png b/frontend/resources/images/form/components.png new file mode 100644 index 0000000000000000000000000000000000000000..e1817a6a96a793d7d1af77ad7d63267af666140a GIT binary patch literal 218040 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 z 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�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%0Av;VFHENjxP5h-5~uc??^bu7 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

    Gj@T#LHY?P0z}TgMsnoHJAYUmsE#G#>{udc5* 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 *VQgG0 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 literal 0 HcmV?d00001 diff --git a/frontend/resources/images/form/templates.png b/frontend/resources/images/form/templates.png new file mode 100644 index 0000000000000000000000000000000000000000..3c77a7a0fff61a77a1ebd93a07437cf824cddc51 GIT binary patch literal 258863 zcmeFYRaBf?6D^9nLvRQ#f#B{E+}$mBaCf)h?(PJ4cY-@K?hcK+!zKIA-sirb*Ym*W zK@Xa>zN(tDW=V(2%Zeew;lhD{fFMeUe^Uej0Y3x*0jq_9`gljQ=cec51=dzv!vO>Y z9{tY`C`eic_Q#u`4vJzzAe9sNM<2gHm{STMxVm9rr;L z`J&lNVuSk(yL%ye_n7eB{~XbgD|!G4yO`1Z8w@chKI}@Z+ai(HmGC)frm4zl$3mvX z>1~R|sg4scLrJWZbiB(;S*7hx*Q4UK^fuk0vIRt)7Bjs6d(HoQ`M)uNg)v(9hYid9 z4wuCCl4PORi9zqSXPv5^g}NO?peC_6dAzTAx9#-*J>$o3--(aEw}|n-a)y4x;gdP< zjs_w>;s*lWgON2f-mX1KHYaPLJYS01`mg`|=YO1p!DtC%~nMq~$6SoG_uoTo|&bPr@Goczusd<`#(NPbZ)6qYJ#vPS$lgu%qWa=}LD&0r-RpX8td>j_onP zxx)K#OISW`E%kexoy3{M7w$+ekzM1>)NJV8iPZmTi+(tIQ~0`1rxQ~rDe08$9I-^J zsx9w!1ZW!b=o+w@eEFd+%JrI4iA5rktm_;Z z$CQ?*Vos<>Kw@=)Zaf8s2z1;8T0zD2ly-`r0^-(;UyCB>n+7dHJq`ItepbU4zwN%u z|4>jqDvWSQi)kTaua9KgCaFt!Nt04;9!EPbYvjoZZSH*_dQrgtTI~s~cyqpV;h26g z?p?(vcOLxswavip3eL=lTD0*Xm%{^tVxkKsehH1mjyrU(B;vf4_LZ<6tHYB`O8kP~ z&qpsA=VdT+*2 ztE7sq5XT*Z53NBG&rp#REQ&XA=dP?7>z=H%&eTE`D+66oZpf#QW*J_DY@{VNiaEM5 ziRf*yu%2p35e2JdPr&0^efbXq{xN2&a{r$&R3+PH^ijG|A;=7n(jau79!|a@yo6ur z1Qq^rljYMKa}n#xsaS`-20`sUfrU}PPMO2n2#FbwL1kn5P|O1q(OJR(aEDL*>}ncb zPc$Vs&M7iB{O^dse~x%kOif(#bt4a3BlCASuQ*r3rgD+kE(LbmgnKl;(O?TvpK}&m zV5wh!y>uZ}im_Y)mx7x(vIhf>o+A@Q-IH z3&Bs3G9O3@xb^agZV7Uz9xe2#>gy5tG_IxC+d>=C_@aTWNDQ+9%4%ELevn=j?2K?A znF)z)H7RW92&V4{zbgTLwRgwN1iGZM(3e`_vDJQ6lIjiqsMJ53Uh< zw3E;S`V=mY)m{-0a#1|H0ttcKHyQiZsw^n+Y63OJ?DfZlIn8-sS7Y9y@_P7d2o4es zZt_iegieq^K0F3@Lwi1Qw9c*(C%n{_7>F-fru68r3J_@Xm~7+vB= zl*Kq-CxY!G0a6(4nbCNy^2EIC5ec0joL2Sf4o0k_*u-P!|05%|7*_UdNYwHesnJnk?8AzN65u1GW$9B+bL^A{o>JvZQMZzUz_o2(@@89vpM!!~< z2zn9DwBF8bQA>BXxr?ZOwi)kxkQCs>&F?%~Wz3YWL;~E}g7GG|`j%5|Muz%^jAJ`N zIsN4WVyq9|a!Qr-#_8c9)wee0-FC!xYY7558pxHZ^=^sMse-r$>(TZz4ZZOLU$-uf z(Y2yU`n=$c8dzTevWCpZUbU0nhvEzltm`*1` z1(#X1b`iFZJLMh~%o|qBE9x|mR z)hez}Dj|@(v>K_5#sLq!Hl6D0P~1juny^% z-tlc`LC3_UP1pF#Wp0c!*Fw;~TH$gnU7r6M-;(S7J0##$f^{0for`1mUzD>-{|S3Kg+%=*LI-LadOvOP(-zhD zU#Sylpo9S9$b(g~uxo?Uy;fr?4^Evl78n{BJ17Ugxq`&_SZ*B(VNNI=shF*uHH#(m zoKN~T>yQUUTu^|?5JSK(mZPfaeD7OCTjv$sluTaOo#Jdi^P5ff$k-m4QBm23f}FQq ztX=kRQ90i90Ut^95ADqNqx^}>&|yEf+5W$@@or;I zcD2$sP#^fc%nD}$@Y?xZ?r}J_@#8X7sURF+JMIawPv2vj zfE6mfPj?b2Yn^f)fMVG-uyC2(i~J4CS{Qqu@o>);B<2QW z?s-}bBVX@Wp~<6~_|~Yq70!zuljkEYYzduiiY9+`F^lN~0muegc!D~PHsN<1?8|!HCWCIr z;+>?5xt?ZGXGV_}i84B^I0kdHkXsLDg*z2hcz~FIfS2O}uGDNXFLTzMPGmuX_n%_C zthr~bSb;eCNEdbU`B8+g8}0=E*`YNIG_!v>r_`VGo5Z^GVGEofeaGUOQWmU2{L8rX z#NJ5Z19tmu)+G~}?gQhgb=i~vk(Jl(RFoj)FyMtmkRM63A!ofo5ejfU7pb6TPk4(4 zXiA%MIj_4nRZmyE$d+~kDBb;wz>2m%2t+JG8_Pv7c7X>iJzAv7kYYN;0a2!Sje{CH z#db(;SW8Bxn9c~-X%cCUFzjV$MyTy=Q>!B!dI--|Uh_Ptd^*nQ6v+HW&Jpcyv1bTK zG&_7A{>&v`+&3%bAm@e;r-9_&jJWXByG1`@V}$d9_uuJ=s(-);rBE^0{!$d|5Ts*$ zRno>e4yz#?YVZ;Im4j)}#$g_NTD~aC!Q1_2-h3OuLLRW|--i(hJtD1*< zzSiLYf?$;z4F^WM7y?=~rR0)}y7A%8=^I1_Y;{!oJ*msU3q@X*Oq`SblGo<^%9#r^ zR&~7HEfP_P=n(RfYjgPga`@x~c%!_kt8f8WpqR=`oDjFu4gOF5k6z-ANua!hdTz5$ zhg~BNS%+iiAM)eD{{`wS`(M>z5&4GvB zNS7CeI~V{9O|{Z${mW0CoJvUNTQ8iL=sKCgJj4$K=_O|cNp3hSHEM*liC9spn}|wm zgygeXb95O)Vixq>8#&RRI*k)^DhEoMa&kxMJnujdk6mw5AYM2-ee!YhqjKI3{!{p6 ze{vM7(U+d~OL|n~QF&)9LfL~2`*kyZB<(7Sj^vC2o7wDTarJ{aYzLv+s2d{;XW5R8 zo@Eo3*1NBi>&3L@Xj~fL_ePwFOcV%5Jcpr-lqsral=d;Ar(kM>zE5PACHG9R>hhB( zJV1-flH}oCMYVPo9K;cIgj1#D!t4$NFR^I%fq$LW@cj=Ug-Hx6(cJ8{UfU zgV`L~U|vdlgJQ~1?i_wf5tuWs6nQ#;&y7w}gl9lHnUBB-uUhfB#HZ_kvISYQi)I2Q z4Ju(e&JwReq=Fcg0!@4O3%krpuS?oUaXWzbKXMqW+E7D=_cSA7A1Y>|PIvR3KOKfJ|F2A(tNH`ma5BXGUk@m?z|$To zQ-eYC1v@5KJFHz^L|B+xo^+eCD(Yn@)DXY`J}|ROV2=csp|^k~I%&lg1S~Uo zpO@%81#2PauKN!K}Ii#)nRq3moj#>zZli z2m-JEGlsuwf8@d{ zCbjsMwZ$Zr1fde40EN~mRctiC+?A8jfWmh2`!n&UxGndG4u9{y!0CFhu z=k^&NV&ij+ScfnV(D5R$Ge+t-_^RYwsBX+hAo?i;{a@)vOZibZTV$#P*A{>7b!p-r zqY<1RE4M<=Scqbc&MTF0Y|f(lO4GA?$@*1J{P?pA@o_y27kdj!%@GUFT7loSll{8K z(MSOls03Ok?DpCHDH8q9&0Ky%h6h*&1KessT(^+d zW5}tD8D@qF*6L6eA9NT)*EFfNNJYF?ncKbQAg z#lpYow^jO2frqG0_lWm%g<#(e|2)zy?oC(?%b4mp1Jt3(`;Za+U%f@XgEAig!bR5#_frcHcn zumPJ2J;+R@aYVR#{Z6CW+K@LbCfGD8e0wSWcDz6-VYN=l?Wkg<64-5(CMSx|;GvQf z+yUE0>H40`sjcHCb}pe?oX@?CP9GcoX98#O}m=jBL%ovHf?k^*<> z)~@Y}M6vX+n?#aGu~*{9+;837)=%V@Jb(E>r?*x4DUEg>GTHOy_vzIrW!F#L>kw4x zGX@w+u=A$4+YAd=wrgLhXaGvo0^I>4|Jv}4-YAsnO089mqjn47hSgUvfd!`X7ot1O zDh>gR?X$2_^9Hw?;q_GxcMG(iqBx_rwC+}Jeec+L;NWbn(7Z{Ix2Fp|!!_g8&8tsv zGpLmYm$VVtUZBonnf_lzpbgsOsBNBZZGsHj^x%ud26DmoTWM{OefU#;E!B(ZU{<$L zZMGdMyrca00N;_h!W)E!`Q0v&#MAb8_PvoDB)+$f)1+#xMuRtntl;y%OHDlG5XHTw25xN}3B_xZ2#mDmA`3`3PtlGeVY-i_5VDOg5qmni7 z5@&8wA`kTwyo_d`dZXh3=t9=wl6tx?!KWu)Ylg+s&6^0qb-l#f zcy0GoDhBU*dU{vL_{($UQqm`arZrCqcPZ~p=*R(P-l%q4Naw`G67v}$%Pk!Q-+zl+ zFR18Ow(k`u47SJgNcPHd&>bc1%{viVoA-|EK)J*~e0}9`ggg>j1nurskq5bTN9Ujv z1;fE6>JH!qbw)MKae)*!9AnrAC(h+d@ungR9T!3BkT76qr6Rn|4#9Hnns5VH(7V32 zXkXNgQ}EnmZX|2@{_WGDp?iF!DdU1}e7CDUarh>&HzQlpcIuSm^&dDv&ET%lPSnXS zGRt;AK903Wykx(XwcvNK%#U!W{Lxr5TNXq*4H=V(jojh5(>MCG+&IPHUe`(R#qus+ z3S&L|Ow+tLA-rSXncsTD$s{;8#wlSXpZ51a8njo1W`kG^4Ib2ZRKdC z*z&fp2;bXZ#QyeZonS*hFdkOW^D-U(;oF4a4a=d%>MT7JqfXm%P8Wq!%NXMq@ zR111efcwK};wYOY1O0v7CC^mN))rHsW1;m&mro7u1P-tQ1u#{G1um>1(c3KhJ;%|t zujzif1HO$@5+*Ew{cA^(kHj`g1#&Hv1iML_@Z7L%w_FGTssRjDRooewd-%u>2wXkb z4xdQ~G50&p1Q0xYDPZ|ks0w{QgGBbv5!sf-Np5^ znYU7HZv6l6Hg8OiHIl`meATq_ihcF7&y&yGHgv)WAB?U%L^El&uz~q?VM52unuyC} z)yKSdU@gItHFu8W38kjW*5II{k$GoO$I%zs2Y7lnyb&1Uww1f8wie;gl;za%{rf-$ z-lTW43kt&tpA#-JF<9G>F&!ju779R#0wC|04=XkG`bv1qYvVhMzM>Bc*rL~#4q#Dx z#ajyhpN>0LLUXQ4JN!c>n}(aJ-m^hZO3Om=y&iB!?Z)~nk0asLLb8gSoqqF7pance)iC}% z#O|rMHRvVa2L`1eo9wsq=V?Eei$*_mT^{hEm`*Y-2^ zn8#25kD4BxY7%&!ADwA3w?{(+%? znjGZBP>%D)`DkNuL@Df@KLc$;z^%ERQpk3O8vJ)nb2k#)C%AtQUXQtsIVef)e!WNC zLFK_Saap$n2U6S-^nP>P>r!Au^0jiC!N&7Xoq>ccrbIbgCV3rlOJ>aS?Icqw>A!A; zHi1rW>G&~BrDv8}O-y#8#AG-A*}kr~KM~POEr+iWGO2)t`ctB1yT|wTjR(GSkdM}S zBW;Eb;Y^k1rwkWHT0X*WUd?x*?_&mM|Fbt+=O1&o0tjy6iHnzb+^Jm4aopNu?T?g=TU^4#5hsY~n=hd$~>t%WnrKHlYuSTlB`+&adUKQ-;(WrUHZn$vaI zuEhGy34^)(RUMk{T7RsW?98$Yl0(>kRMe)kj?mV^2IUQ}B=JVq%?H8Ctj*RVG7@xs zMquTDJns_NN5Kl-WED!Fqyu6RG?U|vm?8X-mCg;SBz0gQ?Kan7nkmpWCOFm(qgA;G zZR(!LUh_#aoSET!6(N(NA@kqVZ)N)-iRn1q7@9&i%CXu9l%%E=w}cD^9Y?V>jA8dR z&Wa_Ohv&;fQlM66mzC6PbfhgaD=KMeasQzN$vuk z!+>^&CfaRf64g=?M7$;HdrD^CQ6P>&^bqzfK9tKH7;TB&fg5GSreby0SAjZKXwrP8 zsWVksu2LCF$+(yN%F3^QQ$j<}hd^#MD(GpSeqiYA$fOM#QMcbgqswfCQk0ssXK7vJ zC{lT71#^HrMEfS6gW@RN2s)?lvo3cy)1eX5^c({fC@8S$fk|lOr9mdW-rb-}C&K#> zU+s~OKM~MHvGaP7J>YhY=Xp zY@5OUiNa!O`~D4*ip%B;b;=3kVLm$U)aja$j0G@p@FTna3E<_6kJ`}6m6HJrYAj&N zu`VvBy`=S80ya^|*{&=m|{#aW` z{2N0huYUv{a#>YT3mU4XB$oS`(A_O`IH!Ll0^4nSBp8UMF2c=xw*u^?3!ZRAh%R8_ zf{zwWVu=JV%*vmEEo{=Kq>#w#2Q)2Fgxn_$bKF^tjZ0+S6Vhf{30$3R%)tAM^c#4^ z5#S5xUy8$1KsYQ%q(R&t-w&zw@D4GQNqbfzX=$HnqU8?E@dc|!v z=yF218d*;bae}R#?`|S|^Jf~DdPI;Jk`qpjGEqFI9)fA5q(;It+Fcl93|+9((2MBo z0}Czfc&`x`Sl*%U7}r}{A*a!Uxq9hZ3<6>388{#FU%F`jpbI?N+(B)3D1-rzc(wCb zq``>UmI3saa^a=xRbNint>B@64(S31b6OMyA+G2pw7eMGkxGAB$1Dr*&%F0|xDZ2% z(0gpLIxtgr^08@}avm7#*3qd}$*dgWIkP>mOusOj;~bwsd%s&CQN&UFG=cNYa$r488^g?n)d5-4c7Fo?>TvkmGGMFzb5BvivAt8M zM4p>q!yZ3~9)G8dhag>`%}jmw!T?YG`?QRC)&6@#nBX&=~y`6dS12N*m9e-o~1M)>|H(*fd1 z)k&rRf?^W%`TJ6UmSskQGoEOq!XZ(P#V-N4nmUeL8DoqD6AK>oe`>2uxMP6Gi=|92I}J)R%Eg;B1SZY$=8Li2ct2 z3$5FzT`e1W;FIq>vKC{U?X&524jpM0Dm zZ|)&{8c|VGpOF1Cm;Xp~|D*? zs-;ZFwoxpi5Jk?=`ZqVJ|_DXhr2xc zaATRpNx?<%gUKdo^fNM8D6Ur2)fUliCIcz6C&x^S5HI-K0GluV+oN8=ga?c9G8x-` zrdrN+j3Kkx!#Q7jzvscAH*+3hGRA}qK=6BK7&$!KyM z(??u}b%4^VrMsYw}BE zcS+%%y$txmj9@LujVUviAvMu~pu2=uek#htyaGbzX}d%(Oo*uv>~!u1(kP;~mepM`S@&y+P)u#AD#4 z%il$A0HjyhTccvORa&c7RNwIuC!eC1BW%1sofqhN0i~|o0w1C`9*{2E{w9{Wk4=U0 z@QzI^D{<>aC9x9@3#c}%16%yB+$%-*m+r2cne0@T_YkEUQf|YQK2x1&q zs#N>x#6!iXtK$U+Fn2B}YqYwO1vZ0~5Mrm-y!XczJ1uH|U{mfB)5$t(;#^keSVj1?r(-ul~6YKjcSR;hye(1%HJopLJGk=|82DCux6m6)X~9HGbHPAzL5uB zhX_V9Cj-nabC`uVlTkB3>i6_k46S$knKSVx>KzE?vtW+NoeO=zrLJpkMppRc3@~WC zC>-^qfFeyhE2;Co3+04VA$(>hJ`i-P2f;B3a*3e#oZ(c{ zk_ebQ>Z-xYs2?9A-_XJUlL?Q?s!U9xv zrQ}XO`GifjV25UP+Te>ccYsobw5drG>M2{3D`a^AsJ9_@j3R{LlDR(zs$&O%%5$D& zE%OE`rJjc^ec#pagRMjuOO|zb4Mx#u&7BhMC|i!#_i=is;Ul3d(!_rv*8$+cIcmS@7@% zzYmIS)rad|H8Ek=gQS5w+)5-DFavFkT-%t1*&i`nXF@2MSID~V#UKx;bZECg?Y3wM zbe}#dF>i~Fz(2Z4NBj8;tJU!_g!ppK9YjL<;8+V6Nz%p*1BM9Q%u%sLg(B~lZcorQ zURI739NH1iP*aviSHxx)nFa{S#X0rJ2HBVnz^`R_@M1#$Yba$xyQ%nRuwU0XmH6lb z+cH|`btk%~E0o^$h1F=vkZ!}XtJw6|67LZfpkNeJ z-)zJwQ+e_`mN-X+hFk*aS`cmS>U4vpV_J2?v|pWiYKB0=5+xL_pHj4q*$rP1b0k^4{RD`wx7&n+*>AMCB8Wyyp3`*=ARZNe}r7a#x~=hg|P;A z4UWOV@}R3%sG0ND<0LH;-+o;C4}Co^gF7}m5K_bL6#}c4oTY*IZT6cDrc@BACD5*+ zFs=MV!%yEjV1aiGlPoa9Jpx`UiwF`oh4z@3z_IOd5)u(K8db$rnqj3){vw6z6vK3L zMG_Ic5~(1UFE#CQHQoKOgC^UHc`;g7gsm3J(rSO3_94a|ha&X)SeQJZtqw~ZrYP_F z84}jXZ3A?>WirzMq}Tj70}(tJ*ERlkkK3bS>ksm1K|TIo`fxS=&2;fUWpGy}(_9Z6buio~fO+p_x~_!S+2cW@Xc-)?1;;-ZHtac`W%}X)RA_6S|su ze;+rub+vbf6_mePzg+S2+%ovL8vPR-iKS2z6?aZt<6aN$FzV&RSRu`IP;>+%ZyVA4 z{v9h~EEx-ut~O3bVpod?16g=s$tELoko(0dS52yw9s9X1nhC!$WlG$!D`oqdUoizu z9Iv9>r@e~x9?r{GG#+j{T+{{Bi9mJ0_rZt?v^JDn)OC+lkOo>t3sB%6*gspB(X3MS ztp(W{{uW6XqvIHuHlWt)0L@=*h_pZS0~n<~ZVG+|4pbqBN^50;>mad3q<#8P zXlu=0mX2l6Ac=b+cZqOblTUY2CN9V_AfSC2KZTp>&tfx&+cdWf^rjVFjch#iyRK@7 z&uZJpbj9I4m*S$;OA<-G`)0V#JbJ+j4G;Ws^D1?v_D{=jv=lmHa;UudxWcA6bStBQ z_>b^PVM+11eMp|VeIP$EPI5?+0V!)E&TdXGZLBcZT@^tZ zKz~s*dVRiO)R}zYyuLN17DVN34#9nwrt>xmQ*_Lm{Bser5?cl6nja%kh@jSQ*ITMv z%t)^C2PpSW(~_I*XAnO@Q)CkE@sBSjzd1(D9qe=bJX))sG82kz%4KvxW1H-Rm_2pF zW-V*Dv;lR8SpHbrxUOdieB@|Wnu`>yt8o+)sALqAN2IoynKrLsO!5MkY7h5d_py%f)Fco)#g^Wa zq72;%h`pQ@%Z@>3P1cKQ^Nvk#?}Azr!n7c}6ZinjydMk7rI_#QZZqKQJVNf^BPVD2K%2VO@Ma>S0jLYYYuk4|s&&?S*?RAp z$r8eHf%faZ$o4pFmwIYr@I_3vgd4;pSDV`}_D~~&8R+eZ=Tz`z-#p0DEB$4c9j}EB zxv)6N!c7hA??h65OfIEvBrSX_S2mx^Tx_qicZcHw`Vhy#r@tzSkq%C_DczLN$eTw0 zSyc)8&S9$a%_Z0>%1mB==L}pFb~L1L+oXnk1TYe6Efhr z=EBLkzF=cw%$9^a0_z>}*^!{HfXFSb{H_*rX=G2bT1DyuGr0N;)=k+7Zi-N?CbTI* zX}H~{|2FlrWB>SzOAvW=8iNaGN%@nj$Qv`vIS6m1*LS>KL!}30uy>HlXyl=5{M}xS zMf*4M#gEMaB(D+wr>tyI`3*2BXF{i^=IT$e#xR~yK5Z3Z|JzK&p3q1x;*h|%P>Fkg z?T_}A=0giMg_hO*oM+XsyXWt|sBr8et$G(Vk&TFyLYi#%C_?V0(SXDjlu<5?YSLKj zlsunLNXla#QdO?k=eX36z1Z!HFDP$)&Q?Y~L)6C^<3w<_;;7zv8aHMhwNU_b#FQvc z#(;zIvG}wxf7p#fn+JlEit@#Y@!~xG#BC?E4=b%&Hiin8sWKZ^$FnSuyQ;K9#7yY% zr6*w4P{YtCKXyIf^Swde9ck)G899N>v@e^c*PXpq+j=YqoBK@qm8K0|g_}{*0s_ur&AM5JK{c4oO9QTMP^McRve|`A9g4O3M z&p-sxs4_8>=SpScg4F)ns1?->HA}kTy*(iscZL<}O5oj&Ue$agsTIUQGRFz&Rx-3@ z0dIcX&CRZEa$@lOk@lC4)yP8miWldPnk)8h%O=d-sv57iyXmb#s*OJ&Q;O@n@yP;) z{QY?pX8!{98WzF9O&x+L+X}3?wPx5vyI%5*E&J1xip`2uM*S!Xl1Ybs^n{YdNWQE~ z+c{d!sk+O?*6p<&I3rA;u?r_cfhHTm@?7v!8ltu^hj*rOE)S+a+lRL0fPl>-O@*hLp%DLN80GM8ve&$ z$@~CImi2(smZtp>XN_MIkg8ifvZ_1`B}jm#_wW~@`7?H>+aTt_p|Yxw{x$aG++k5T z64tQ-1);uCz*a!O{y@tbeRz8!~( zRw7y}NIaA)hJ67lQ9oN9DS{Z(A-{eiMH^_`izynmWR{SNW|^J6dyb#%{e2zXQ$M~b z%l7iR@Luc6UoIraL%R_x{(!GhP_Er zVy`x3jGG9605S}t*-Z&2KKK;ABqq;MvAoO`Z$ya-K)q}8*x_w1b1wyV#dzoQ-k~q& zFR}2oVBz~xu-Y}^aSO9v2F)dP`W%9z{|O-dDgR!Ok!Mc0Jl))IMfvItzNtWbbin%L2cR>I`Pqc4LX}r?~yGa73F}g*%hJ zw;?H@)9`8K@%yu7tL+tZwUq(XK*_LND$lQqiFr=cn9WO$M%|pZy}_(@demVtyM;VZM;=V_*>$xPJZ4|JI#a6Ah3;WQoy;1gG~j^MJ6ldih?NKajj~E5nJp zn|yAuiJ1d7!}2Rl_J&S86HFjk#WAd7rCz$^tW7&xx<}Mm=~5aTV%-V8Z61_DA{C_} zXkzEgcRfmvJq9o6=d%|aN7#hJW{_Q%%N+LH$#-$A=Dv^wbJ3Er*Q+}lX7e99O*1)gl=qZNW%fB zPOPXHF8vqRpm5s2D;h10Mhi}crdmQrN(a*tLuOf!HOZdim+*1s!OqN~%{weE)q{JR z*S2l&YB=6Y$j24+^{T*Uu;wdP+qbaeFAiB)6&k5ynKaG^oVYzh=HJd+BnhGII3^5?4YS+Klp-f-5sC{P@Mf{6WmXynUie-L^P)mjVa+Pj zYjfI914rA;`*-m8yzQRd2Y6s-a zRqHw4HM@q!>PxQ_TEyaBTHouvn@e#g8-o0O-1vhA%$>_eD58us0n5JN25D3Q@o?pO znQ4Lm-S(wz+^t?9lYZ1u_q@S%$_H<9w(2+gbLB$M*t|u6L*y;3D3)esX7g;UC!-(2 zq&BBt%Y7CeHH|JjO_D)NP%Gk$D9%%stP$x^AeUwTZzh$18WVTNf+ZeC7qEe^C2GCT zzeYq$7@i^2I2w}}fqI+|9rqF%p7t%bmW%ERKOHVR!fus!bnp9^raTz^WI>N9u%98a zW}lNZR2oiU_-2r|9QHV$ApKu;UtpJ^z3M+rP6lYS-TH-3tDdqZ=j)w>A39rz6!+%(g)jGi=@q>9= zK01VRO}p8h%~&q|ufUYxf^D~|d2Pn7zI`2tce1MGtadvwjzsNl>=%V|J!~57z1;8gUsG!9zjfG| zm1*{95+$>;go^&E(%f{huPPOI(s$kI}61v}?o&w)SU7LCQMS4&vrbpCnLE8dK+XCnJIYu1Cg@h{P^L2vy9Dw|j#K*QWmH=2>5uHb=RCMIED4Xb8j_FJX zwR?j~%n;x*Q#|G9xOv9c+o*HJBYxKNe7;^ulP8!LTfgo>OiK3lhuFWmi@_j_+l*@( zXBEhYi4VCL*Qj z$e#pzd6vx&xMuu*e5wZbEemW?a*Zri>P*>l4&I)rBI}#WYi$u>osF87zi0TZqkLzc zZoM~Xt9DGg_OS#LV39wGViOghqar}gn6Z|7w=^gUV^i@nn%TYl7=6%O&fOk&Bn_|I zc|%p^Q;(Vb)?vqJtKb?_tj&Z{2{s%;&SzhquJ<$6h&|@aFgce~o{H+7Zy>xVU{8wd z0t=t__llV5cdLF(I@-BfT%+R3Y7$+S^T@zheE;~G$dbEEsx(rPLR-8Id+u(7JkPu( zVQ%Q$ycE=gp31?Rn*O@@47wrdk=<>l^|Pjc80#gr zKus>L%qG}j1tG`f%F_cn+Cx=Y7%+`i$FXclIDQak`Gz39M<6cq+WI!4DF1l{!C_n? zb7QY|soe+E zo_X8-!JI%-Vu8``wHASfg=U|?j&oi-3Gkw9fOfOWy~ou@{aGV(epEY>8*H}bL`>v` z!|}OwBW>;n=MEYlI3H_vJzrxI!t>}_*@I=*`GIxI8>qS|N(KQBAMRe6>yv`Q;3wOfiRW;(4;I}%+8`j;t?_gMbc_T(U9xAzf&avO z!`le6mRKzj`~&^^x|xnXUJd%)Pq!#Gu|Hzlq+)WSfOB zZdL3vM3$}1RP{iRq^R4`{XxXnN=b?Nm~;o?<6bvoW+_6s_vysZ5Xn30xm-`Ux= zt-XDwoT$A*+{3Grk=Ao7GnVrBDRG8KQGYKd+ja3-^qs@oQ>cAa9Z)X>P%o^En(Vnt zZ2@|(C@4RWsoP|znV^SNT+r7wl=bUg_bJv4(?@4s95+FK>1wZW7B6$l0=tZ)CKm7= z&=RHoXg-A~1sh!XkZI4n^vl9n3g#VBQZZ$QFr6YEAmvnkr#KIAo{)+}OGm>P8Thca zVDqt~*#4^6$Lai#OW~*?m@#yHzs}nos2rr1zU? zWdX|D5Y}Fpb(H;6hoJhxN`jwVHx7K><-x5nJaqLFUTqb}7QvJzSAcK1`!7=QduVZg zvbHM6$sPe45}oZ9qLd6WONZH(;ZkT`5U;K1#4;BR-K_2e++^9O<2#x4u`T>uN>4~;Ptc4jI*KE7m2n zM#=vi^i(s^|q(_v=7A4H7ERbJ6V(vC)?BB-pjS&p*^AU9pXo z&ULcUMh<29^RN&Dq^W5N2zzjbd)*GHe!)O~S<4J{!Ag}9Y`8hyehmKjg9i6KPlaS; zv36W)@91kNEvv@vsjH_w_7r{%UFT{a0^#{fdMpU*9+Tci+mJZR9$O zC<6bok<7SSw#<;iGF{zIQzC?p*N$yr zSp?o?d+n70Bc7ewqBb{7T`nEWkM*el^!qj+J3fG$vkLoMELkB z5q`%I5rK__0J)@PpRXPwrERvb^v+{O;0c2_zemHro^X*VV3j zc1qcaPH)++;%{ua2ZmKp0t6SXD&DY%``A5ifbE+fJnL(!Y|4T-#?%~TjM9RQDo-`;l!kTZIXvWn zDlhSx(YqdE$vv|kFP+b31;10Dmn~?0(ni{zQ4v>rv6@!Mk#7IBSI*F0u_|*$PV^%X z=Yz_F{!qD;$5f#!++oI!a?&jZN4EAC?y4CR323m4J$4YJO)@_dFu$!*`K7q-G9U+K zuN*F>Yz3wo%N3o{|3}kVutnK*4VxIcyQCYWOS((C8>G9t8&n!3q>+|xrAtzJ=3Si(jjX!cmPWW;42qgv5>>jkiSY!`mj=7 z!|Q-Q`mQ#JqMsTQgm|QD=6^b>=0hfaNVg?vfR9D(MJWk+Epp7?cmpl9Zk8m5A~@@r zn9DGOGWN09=B>7L^PW>wJvVE47GGTL`2!d;mSH@OEG35d^GO`} z^UW}Fwb;;3x?lH2mzntEQY^IU{DELW6-{qdqB#H|&QgneLYRa~`mphOc>=qd z7{*E7(5&7NQR_3jkX&$=PK;bqNV}e#+jf~(ni*)%?TE-x=p-rVW~;kIuw7hHhtR>D z!?fqAJ-s}PfZdJXq12ihX{>dp!LJ@#YxU!xI9^!rD)BE@NL}340*fsNeyt8qgo+15 zrJriBPc9`N)uHv>0O(WCxC<{7L{NQxF~5L@^Po{a|GY5htaFG@nh=cq(-jusxr?XS zOno<1r)ROQUGK(Ng!eNDB1M*|UmeH%FIdb{+^Rk?i-QSAf2o$Uk6)dQ`V6}{s?hLM zP;uN>{;^1|t3+OofeXlM6VyMF8Y!NcN33V1uoYS-VU8iiJ-x%V(icD;n0^^6!GsRx zKcP!TNoLWnw=&W7weR98c$xKR&noWwFpDtVu1U02MBy1so^?O-3^waWH&mE}0~7%PcDX`#Yg>pMTFPI0wBp2fvUND?o&doRoHDZXB+iUxAm3t?WvZ zluddqlkzdqTU7I0Np*E{>!3*wzTeJzom@arf+IWOwwcr{=|Y&3YCb$5&%MkzapT;k zn~yxanW#d`psro0T!{zHCL}i^;Edr$h9ye*K=#2&{OkBFF&GWyL^N%9UZLU&C}lTt zjIhhs&eZELFMn|J)!1khyqY;Z5CB2Au3xC6ER56ft-C7CG=bR!5ZB>qyMko)UgpC##(J$?eJ^oif`(C+Bc@&I5m4d2b1g(7=?PE^%R9NXJ*{(Lpe4k%=;DUps3!=x>5 z`yOwut2ywX!xz>)3$Sl6L_Qhrv6b5F&>&4g4Q?y!K3id_fb6Q6)qKOT;C1e7UT{AH zM!L)~RX~2Sb-}!hv?)onso{Rd$E%s($uZQUR5K^g3=^|~$;*EDh7=soX8exKo`q8n zF`k~7s?Z1w(iryqzD4Ve>iScKIsYw0Qgkg77Tk0$=!B|=m2HLMY@_6&_)zopo#0o( zpHn6Z>Sh?7cdYwg(h!2SETrDee++kt7NX+0t;bYUsE2EJnVYQ9834G0{9hvS;jpK- z8biL%>HU}|Hq$NSQ;Qq6aF+RB*1O}j6pf)bgGNwTAcYk`ANK(T32U3=2Xo&J&FExQ zH8FC<5%KNE&qB-cEerV5(w`IE=jk2dKyn{FaMihRm$<;xkZ{Q0cyLiPvu)DH5lIu0AT72_=L`yZ_f7@MZ5u_G6kQ{kKfcL5j5mJMG zZrT#oa{jI;m~D~U!m96WxGA@}7lHH+6Vw$|Tqhi)ZYDOt1dn2ds#88TtNAPyRqrp( zek_^pJuv7OBO)B=E=0PBL&$bqU`1ysa|6NK7qy69OohVR{_DX_A6kM7KFDX(q7`=Z z2ZjY$F+*nPSfyj&iMJirmZBsCuaNv%FOv850^zc{1 z=rN|xcPo&x97>o$ex^9&aJP!^Ru5(9cZE1+r0`2Pm4NhG_$1+#X$D2>8$m=II0p!r( zeGtOEVZzM>CLCrLgn54%*J*s=A^Ho9{bLm z08R2;I_A55nsssafZ>UWxz!L!w&B);gTjNkj=|Zg4Rm1D&qK*rZ%x37_YXWgR6fzw z3OFz;NYX@+K6uRHC?#p>y@ahN=&U>CN zJXG(Q{#v*BtL7xv;%$4xSfx>f5ajV+)_6?kUb8SqiYbldTsfO#B2_=Oqbj=64g-3N zbR!er|BfyK%1@g=lzFNIwO2?Y`t~ohiX8T}4Jsa9)*hcDQXkK-S>P=je5k|lZX4Z4 ze$txy#SFK@wFeY;7;pIe9tAl2$s29&6G(EbRq^788f|5#|L^$M1;&mz^PC_uSvi39 zqBB~z$@VoG#m+`jH#qiMZaLzOf%l{1wik=y^%S@1CtqUsLVFuGoGI}ag4#gd zZXr*y0Iw<+3b0V6d{K5jMv}Q$E6IUe`6pSeO?&k>F(;D`@RogZ3;peUc^PWr=4EBV zF>&mu|0lTcu4INKbfiZ;I8Q9n-6!V0EZt6WYg^Zq`)d@EAz}XOB%N`0-f_rw?s%RG zQ(l16B>`oj>HWJ3X@dUB*i~(|Pxf%FVp4@CTto|TstJfc*7D^jznSjM(h^joi8+~N zy`72$r33j<^dloz$NZ{6R0bF8R_a79&jEHa*x1WbNABrBYzj=8-lZQ(?li)^`RwxCN8W=6>`w15{|&zVA30gA1BDXjdsdWaN;sH=|4bG*iX3%= z&x5J%WwH4tFBFS7c7QGz-t)$Fc`R5?%SBS zr77jkd79gR*bX8q_b;&gX+hQy&E&HI+^DN>Xu{6l*NtN`aB$AFT=60sE@u$a=Mbqo zwPI+>=gv|n62`IuguAkxGxYJaYdUcKG<(K4E4G&KUf`z+ttDUh#E~{v8>;}|E&SvkGE9KxfG>_#$_oKGCc{hd zC`5y>XRm)(yf@ZhmPXsDk5?~BSId!yxRoxx)Sb!#UEn80sJ=wz=u;`rH^cV3FjApQ zXEwjb(aqD9#s1p{P)mxezTr=!iI(-h&RflTPk812lgBygDS49h{9%wXiS#I?M1-2U zHUpoRpUNo{-#aFwDEjtC*c(&np{Kcna3Jn%W`0cfA(|PMfqKuY%WcKQHHA05*5OzA z;8*;J$0QtJkLbHX3TbaaqrBMj+STMG{J`Mx7C3MJy6Lz;yZI#f^|A2BHByQ70AQQc zxF2x6)W+G%NANXsH*>7`HRn|0Ki!+-{=X?Kb)2`ay$#4iyXfi{e^H_2nAd63dvPU2 zG;DxPw5?QRzO_PEjUJpBVB^WH&#%l`Ul5zaGYm56e>MXQCbXW2{4(aG-|-o{n7w2* z#Juy0|7&k-yL58#s%N*F6eC=nFyOGS8zYfc-BMa%y1}_TKR>U1^sxNk3in>;MBbHHa|}lA9O^NoGG~!7On!=SLMNzp#WyfPuA` zc-<$y`W0mM1B<8p`*AorIo18Sk8{@=Oc9R6tXQjaU6UU6KonV^OQIyUmGhnAP;1Ao zL_auk9o;u8Ftz{f;7sU%;O!dob9oP3TFo+=I7OE#A<)&2HR93bgA%6a7C~!17zX%u zvJ=*hC@fU=d&>E?>S5San>7calSMK~3#>})01d5*0B{wJdbt`*;2EJ!{3EGE@Dykp zSQUzyxb4l)Dv9OvBX-l&+ebO{Txyd(=<5GVBEe9EqzSgd*tOk1_yt@!#`)|4jOIEPd=d zAf;_I(G~`2NVhwsWfdNS%Ra*f6ux_`7yH3W{1Jl zbD1bah6CYtg=^}wnrDw+Ku0L-JF`#2Mg1m5pob|hHxS&J;k9dFb$@O&q6G#`sm@}&mx zpJ&YP81sN4trzto~jYKU8S#|E$ff#-jG`<->BpJk`=-q z)t;;GDncn?Ppa!}@z(Us=^+$F#*+mxJ0%F<`49EA}&*wtPlTmGtph_4InZJ2m zq`Q5|OfX;uSg^jw8HG2rIaCZ)SU7JW?n-h@l-(I1?-P4>o`*F3Poz@?g~k_Hv|-mh z%yZGJmGuex8>{j6M7wB89^8BZ@6Zn4()LSweCUrCd;)Jwx9ephCx%=PjBtUH$=tFZ z4u2ykZ=bj(N`3m4tRYEp2D7vLH<acd)~dT+B@Ywyg6vLOEd%e+L7&n6O1S@k9lNq8o);Npy)i6}r?pEzb|O zaMK@jW(x-u`%iXMGFA*j2T-!}ouP3@;9X8P;z5-E!ZM=`C$`+v95@scNcm>@P;~MC zWh`NnhT%YBukBt=2L1vjbOkkK?}6TEUp)Eu;6YRr^Fs_4IT+L~ey&^$R}Lnm;dNEG zJ4v_?Bntz&hEkU)r{Y%>9>>E)fm7}1z1jej3z#E)ukAb8q|Y^m+Yl@hs*Gs!Rx z)8?_F&f8HW2Ni;+s?kld$P-chLxXsP^T3`4rC#A{liTSdF_8X&wjfXb1=?cmF_u?1 z8z7*Hc!ydaFiQ0kW-z9mJ5vtadjo6a6@qei#YhRf3_&%wyv(mLj&tBjjowatKqKBG z0w2Xl{YJBq!*HZP{K8q~i`et%Gu>PHe6n+7 z8!G#Jq3=j=Udz*g#z_JI(A_goBYkW=qz=BzsaFhtOzLfm z1c0K8NA(YH!PYGE2J7^UC_2t>%AUg zYC#de0r!PL9GAW}t!=j<-e^3?{@B|607XQ=!!pRaYS6mPKd>d z#06HbPN(IUTnaQG$WP1wZP{^N{aL!`r5RHL<@|wfZX+Tms6ba~^*4V2*m2Ct!#nho zDM1B?zWN)3@!L+Jgo%&;Swo23GMuHlA;F0wJ@6DE-2NgJ=pfP6g{Zz+CGq0o2UUpP z%v^z8&%#Ji{8I*8jPF~dPgVXsJ{GK*pwR<$e=D)S9+0V^Jnj86*f{f9ITbDsFS_>l zN@R&Bg)9&gJNhU5^zppZW+SCMy9sd{xNv+L8)gumO?s+@?yN`!r6Zrlu8r=g(E5)@ z{xz{NeQ<*?cbKbrk0#D>?^*(UxrwEwKgl=O4J8Yz6!+lK+&iv!iXN}d$XydFYN;@f ztxil`+a^0q0dt|Go84H>((>SKm0K^zSE*(_S96gQhxkVU^N*2_STR^Y*XM_Tr1tm? z-)i|6lBLIZI56WP;>i#^#Zr5~0x#NcGI>+lOyvnd@nerm>g|ZXO6-buBFm;p zl0-gl)W}aB4kx$*k?i$y@LeX`W!c3Bmo?>L?2!?_qpj={(`tODqMU)NDi}z!F3hY^ zyJg?uk)>Ws3rE49Xw#Cf%X+S$0zNc9O8#BDpHwEKot#o`SeQ<$bZJkR5szOeG4+m~ zyj^9~Lp!c2l)_v>nJOh;w2w7H4>%SuPjnl52#kNo2b$MZb);x)4q`o?`U7hdu!5B z^Db+)`xi_mn{n7U6}y4~;bmHWu&wmiY$qe9;^EHS?p7r%407(1{e%pW9bsz_+AqMV zHMR%4N?;IV)4z&dhSpS3)FR#LtlS^3Sr}T>8h%O>!n@#mS&$SObfyy~XuKnPQM_kD z!g-Gr>QthbEq{W)^*n^?UY7<3h93K2D3%%iO#foVR&IqiBz>Bgc#T;#MGgR)|1&~_ z%yCdvn4#GoYg;}tlomw8f;|FSk8OKU>I^U{a)jqLUdG4PVEc4B2?-EBQ{_v4*Jo#y z;V6}O`M9Hzlt6*tPY$TKc(DKQLJEKKILZ)dhMRf>_nLX}s^^dQpV7dZ z*iE_jRz|N)`7}4SDqPn9r-#w!XhEdN6AsvwtJW}3E9280O(OB?I)4~(;8Soazm_x# z04JVk%^%Vi&NV@LCb>$A)h~py3-si%NfW20;UwA;J^z$sPfqi>7owMJtriW;a z768*r{1K*?@t_!n{EUNBZZLHvoH?9W#!B0T135Dj9o0VRag#_qPHbeemyi;#F!*?X zUgMjaORbadJ{6E|Dr6w48|%CL3nR3Ji}g*OyjMk1_o}R_r!_mj=C(pj{E6r?n@AVt z=q^}QqLAO89T8xL$V^6)Ad&k7Dh2v9NP1=wa){c z+Md;P?X@u6)874ZdI6{?cOfT4<$0Uz z0MH@?C~{EoVc6oMErr_OyjMOANP?xii86ld#UW3yvbBC zbmmDsvha1s{8w2MvWkAVRS#=cc~mzm;*BF=R_7LXCb(iTy#1vqvw_qbXdt}+Ijal% zUGNJ&Q9z!rBzCC(`a%xV8yZ+yXK0bI&I50^wv*uETKb^qmEmu=-i$4tpy6bS_e??k zTu({nSHH+khaz%huyhYS_4?xQcC~t*~Sbg*Wp5%TC0bFV#T});9`f5JIC0 zxmC$}o}}zwFozbHAPj!n2WC-}PCcyv@6u1rh!UKlIoB1IWUa4TQ`?UZbDSvf$?@B3 zA*MG}x7TotSYMRx+KnrjDpscb3i+$FV_mM*f&!C@uq z6txuSl2j~OEk%_(?)>Y6PJt)&a8u0MPPRtMXLRfmx6S8~Fsh^0QUPNbt?lLc^*cUw zQ-OkxrfK8HcO@bx_`p)(Ox1q%qU3$b=J9EW$|gyF^#vg?U4H$*skse3xK8vW&YJso z@n$q@AmMv++0+?+$3su8T1s>pJ^fN8Q`icD5n}I~p+s6eO3xh)y~4zyY&Kb_ume1M zgm0zSLuw;2eVV_oh4#iTepMJm3k^5ASWw{8c1R3N@}vaeDrw?R{omIiYGgncIvxIs z+MfdOE<$5&Q0rX5QuWiaUSW2x5GBtrp11hM|j|DRhQ0 zKi=n$=27)?4dkrJvQ|T@@N#P9gn{Z8`qRy4B!J2dg!BunGF)Ff(1kjqBW|0Q;P8Xi z_Z$%)y$K#;EDX48q67h`ZHB+`+(xfUCgi8-C3A0rOvQ+0But{aDd7XsBmF65qwUo7 zD8S-SXCoxmDgN>7vLCboEB*^k^aNOC2z;J+XEqes4JVAjmG>uw*)jDu->Lr7*W-8{ z=mpOzS~1smoH{sDq30cF%jR4{Qs9r%3Wh%xHpOWA=Y9GSPq_l4-TOucRbN!aS$t^I zOnx0{EBJ+{UyVTpead{?XUe>-0JSe{$m_qR2cK{%<|6AsCT-^?nqW*UVe0eUyYiUH z`jw9t=1c>sVMjjSjrH^y9gFrX6svW0iw&;TvPV9~S}qSj7S0ygvL&*wqaKoein#bt z_$tI%iB0@@C&Pj(p^%wl64>vh#2{(1tN_D(MqZO5z=SQwwYwzCIar8BLGs~(uY2v> zz&IrFBgV-En`+78d)=D$zTc_e{seBm&IwS$5IVv`FRd2C^f01HM@#_k#JhEe?^GnI zXZSXRy^aBgwKDMYKO@WA1I7r_)YV!{1knj%zAF2gB92gIW3GLjyxZ#P<_{Fc?rei0 z_xoXeR=X}NPEYdd@1LdRNS@kUEgUbz}^Y^DFWhus+{#xh~>)JTb(}C5m3=8;xKj~d!W%%rs^o6Q{^im`5{NPMVJo#*%d}QE{B+=Sv3Zyw{RR>JCJE-y`_B2++3k-} zsHXql={T`ECL+LahdsB+#X;qlg9Mn?F~m9hs7Pd5{4nD8{aTD+`~xaV zNU3yRs*o!74_kWP-`W7YgB}LNpTze!CHaFWyL;r=d?~z;&$)y5{-uyN7+FFA$U}9( zZ0}9M4t9Om(8@y<)Irwdw)4zPJhhtavWaw>v1f!vp(!E1hy*x%+i8Gm4X-a!< z=Av0x`${<3f4|0@rFpm^M>G973J#iv0hFEFaSz(l=ZV8DobbF3)QWLF-g_2}={xjK z+}|<%dl7L$XK+Oukn&mryg|56%oCmE^8q!%`oBtz+X$vXGmov##2t4fMj@C7^O#*@ z3p_5{Yr&Qx9b%mui>fQ?uBeMXeB3%YX;CYGciDvltk9D+cuM2l(}@|K>^`U)Q-MY< zn?{v4N74+=6q78_#<-5h(kT2M5rE{P)KsKq>?*+n)feWU1N9T5Jq2)E8f}(bY;Gi= z>CzjYI}+TE>sFD-!C!_g(Ugd6@5?+mF!U*?HNYeFlY&u8u0hjPbQxc-+417N&gh+}FkV)Is|3lD3GIWVK_L9}MZRo*}+H$H7X! zpm<$Kdy=2sQ%(82xUKipaA{vX$6L#rK=$`jp3UV8&e|om=CZG_;Je2^0&8B#{8?h5 zms_{`3rm{{voFmx3LH;_TlU^=HmTny@DlJ=<4V?@B9${P7wmVz1qcY=Z#J`~lb}i2 z^}|K~UjAa=bG;uh{p$}qtKYd}UoG%-{Q$0(qG!5+iixdp_{=Itzw559r|Ox>jc4bZ z98M*mdQ}gkktIhi0kV-c>#r_cLNE9__{C*4c&#;ls$}=E8&)YGepEZlKR3LJw(i@; z#VPN55w#gv`L~PRM5f|UL_Y2Mjm#F-Xc$`{iF{qPoj@?incA7$?~twSZ!cn+ z1ITKoQ;%*GROn~~zVSu8$f>iI4Y4au1nqBaRbVAO2;nJE8YeH9#2K~)06#ZL6U9ei?g@GHL=Ul zmSnUr6Dt%R9bVYSC+5?@@&nwBDD(MVTJB{xW= z1g^oE!TV|>)L;NWhPx5?2!2cu z`XA-@GmDgO!#}=nM6x$RswQ!&)%AfmYvYm2njo!#jY@R`tDJ#n8V4J-@ijj*3*>@tA)%nP?x*6!Vy5%x!G zKFIv|bJQ1dLEc#_MB(&u`Rqz~a=!iCF^4+wB0YoVF zi+YDG;s{NvW;pM9=$}D@tDsiGKbU}pGt_DGXsILna(iy!1qHK@saAIAtlpaH8>3gb zgnxVxc3zyC+_Q_#MS~7xw-dDTW*uzgGo{gBIaDQv@Zip|EPBG+j$}@>3A| z=)ZAG3BE1dGJC#ELgzYTXO;%tCfmP3jd3SNnA3T1t_`s+Ufcbn^pvv>8a!FeBiPyC zHN%D~75l>7jA%5x~*U)4!gZxbRI_pVfW@DTc`ESf8)p6wT1#>5&RF+5# zC!ta|^Z-wjwWV
    4x%=m?zV{UWXeD67g*@bDH4Tu; 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 X`U%r=JYUE?)aR{?vUHWCanSz(rvQIC literal 0 HcmV?d00001 diff --git a/frontend/resources/styles/common/refactor/basic-rules.scss b/frontend/resources/styles/common/refactor/basic-rules.scss index 858838d056..61555e1141 100644 --- a/frontend/resources/styles/common/refactor/basic-rules.scss +++ b/frontend/resources/styles/common/refactor/basic-rules.scss @@ -291,9 +291,7 @@ // INPUTS .input-base { @include removeInputStyle; - @include bodySmallTypography; @include textEllipsis; - // @include focusInput; height: $s-28; width: 100%; flex-grow: 1; @@ -326,7 +324,6 @@ } .input-element { - @include bodySmallTypography; @include focusInput; display: flex; align-items: center; diff --git a/frontend/resources/styles/common/refactor/design-tokens.scss b/frontend/resources/styles/common/refactor/design-tokens.scss index 72435730b8..dd47ec11ee 100644 --- a/frontend/resources/styles/common/refactor/design-tokens.scss +++ b/frontend/resources/styles/common/refactor/design-tokens.scss @@ -372,6 +372,7 @@ --pill-foreground-color: var(--color-foreground-primary); --link-foreground-color: var(--color-accent-primary); + --register-confirmation-color: var(--status-color-success-200); --resize-area-background-color: var(--color-background-primary); --resize-area-border-color: var(--color-background-quaternary); diff --git a/frontend/src/app/main/data/users.cljs b/frontend/src/app/main/data/users.cljs index e49925038b..84448265c4 100644 --- a/frontend/src/app/main/data/users.cljs +++ b/frontend/src/app/main/data/users.cljs @@ -491,6 +491,7 @@ ptk/WatchEvent (watch [_ _ _] (let [props {:onboarding-questions-answered true + :onboarding-viewed true :onboarding-questions onboarding-questions}] (->> (rp/cmd! :update-profile-props {:props props}) (rx/map (constantly (fetch-profile)))))))) diff --git a/frontend/src/app/main/ui.cljs b/frontend/src/app/main/ui.cljs index 7b2fb02965..55c1233345 100644 --- a/frontend/src/app/main/ui.cljs +++ b/frontend/src/app/main/ui.cljs @@ -15,7 +15,9 @@ [app.main.ui.frame-preview :as frame-preview] [app.main.ui.icons :as i] [app.main.ui.messages :as msgs] - [app.main.ui.onboarding :refer [onboarding-modal]] + [app.main.ui.onboarding.newsletter :refer [onboarding-newsletter]] + [app.main.ui.onboarding.questions :refer [questions-modal]] + [app.main.ui.onboarding.team-choice :refer [onboarding-team-modal]] [app.main.ui.releases :refer [release-notes-modal]] [app.main.ui.static :as static] [app.util.dom :as dom] @@ -96,19 +98,37 @@ #_[:& app.main.ui.onboarding/onboarding-modal] #_[:& app.main.ui.onboarding.team-choice/onboarding-team-modal] (when-let [props (get profile :props)] - (cond - (and (not (:onboarding-viewed props)) - (contains? cf/flags :onboarding)) - [:& onboarding-modal {}] + (let [show-question-modal? (and (not (:onboarding-viewed props)) + (contains? cf/flags :onboarding) + (not (:onboarding-questions-answered props)) + (contains? cf/flags :onboarding-questions)) - (and (contains? cf/flags :onboarding) - (:onboarding-viewed props) - (not= (:release-notes-viewed props) (:main cf/version)) - (not= "0.0" (:main cf/version))) - [:& release-notes-modal {:version (:main cf/version)}])) + show-newsletter-modal? (and (not (:onboarding-viewed props)) + (contains? cf/flags :onboarding) + (contains? cf/flags :onboarding-newsletter)) + + show-team-modal? (and (not (:onboarding-viewed props)) + (contains? cf/flags :onboarding) + (contains? cf/flags :onboarding-team)) + + show-release-modal? (and (contains? cf/flags :onboarding) + (:onboarding-viewed props) + (not= (:release-notes-viewed props) (:main cf/version)) + (not= "0.0" (:main cf/version)))] + (cond + show-question-modal? + [:& questions-modal] + + show-newsletter-modal? + [:& onboarding-newsletter] + + show-team-modal? + [:& onboarding-team-modal] + + show-release-modal? + [:& release-notes-modal {:version (:main cf/version)}]))) [:& dashboard-page {:route route :profile profile}]] - :viewer (let [{:keys [query-params path-params]} route {:keys [index share-id section page-id interactions-mode frame-id] diff --git a/frontend/src/app/main/ui/auth.cljs b/frontend/src/app/main/ui/auth.cljs index b8408856e8..c22ec0902c 100644 --- a/frontend/src/app/main/ui/auth.cljs +++ b/frontend/src/app/main/ui/auth.cljs @@ -44,6 +44,9 @@ {::mf/props :obj} [{:keys [route]}] (let [section (dm/get-in route [:data :name]) + show-login-icon (and + (not= section :auth-register-validate) + (not= section :auth-register-success)) params (:query-params route) error (:error params)] @@ -55,8 +58,9 @@ (st/emit! (du/show-redirect-error error)))) [:main {:class (stl/css :auth-section)} - [:h1 {:class (stl/css :logo-container)} - [:a {:href "#/" :title "Penpot" :class (stl/css :logo-btn)} i/logo]] + (when show-login-icon + [:h1 {:class (stl/css :logo-container)} + [:a {:href "#/" :title "Penpot" :class (stl/css :logo-btn)} i/logo]]) [:div {:class (stl/css :login-illustration)} i/login-illustration] diff --git a/frontend/src/app/main/ui/auth.scss b/frontend/src/app/main/ui/auth.scss index f2d41c34d5..8f7e2087db 100644 --- a/frontend/src/app/main/ui/auth.scss +++ b/frontend/src/app/main/ui/auth.scss @@ -31,6 +31,7 @@ display: flex; justify-content: flex-start; width: $s-120; + height: $s-96; margin-block-end: $s-52; } diff --git a/frontend/src/app/main/ui/auth/common.scss b/frontend/src/app/main/ui/auth/common.scss index 0a018fb77b..872ce47ddb 100644 --- a/frontend/src/app/main/ui/auth/common.scss +++ b/frontend/src/app/main/ui/auth/common.scss @@ -10,14 +10,22 @@ width: 100%; padding-block-end: 0; display: grid; - gap: $s-24; + gap: $s-12; form { display: flex; flex-direction: column; gap: $s-12; + margin-top: $s-12; } } +.auth-title-wrapper { + width: 100%; + padding-block-end: 0; + display: grid; + gap: $s-8; +} + .separator { border-color: var(--modal-separator-backogrund-color); margin: 0; diff --git a/frontend/src/app/main/ui/auth/login.cljs b/frontend/src/app/main/ui/auth/login.cljs index ec276a6b3d..354ae8d41b 100644 --- a/frontend/src/app/main/ui/auth/login.cljs +++ b/frontend/src/app/main/ui/auth/login.cljs @@ -169,7 +169,7 @@ [:& fm/input {:name :email :type "email" - :label (tr "auth.email") + :label (tr "auth.work-email") :class (stl/css :form-field)}]] [:div {:class (stl/css :fields-row)} diff --git a/frontend/src/app/main/ui/auth/recovery_request.cljs b/frontend/src/app/main/ui/auth/recovery_request.cljs index b2d116daf6..e0b36faa07 100644 --- a/frontend/src/app/main/ui/auth/recovery_request.cljs +++ b/frontend/src/app/main/ui/auth/recovery_request.cljs @@ -80,7 +80,7 @@ :form form} [:div {:class (stl/css :fields-row)} [:& fm/input {:name :email - :label (tr "auth.email") + :label (tr "auth.work-email") :type "text" :class (stl/css :form-field)}]] diff --git a/frontend/src/app/main/ui/auth/register.cljs b/frontend/src/app/main/ui/auth/register.cljs index 230a8355ad..91ed32601c 100644 --- a/frontend/src/app/main/ui/auth/register.cljs +++ b/frontend/src/app/main/ui/auth/register.cljs @@ -104,7 +104,7 @@ [:div {:class (stl/css :fields-row)} [:& fm/input {:type "text" :name :email - :label (tr "auth.email") + :label (tr "auth.work-email") :data-test "email-input" :show-success? true :class (stl/css :form-field)}]] @@ -134,11 +134,11 @@ (mf/defc register-page {::mf/props :obj} [{:keys [params]}] - [:div {:class (stl/css :auth-form-wrapper)} + [:div {:class (stl/css :auth-form-wrapper :register-form)} [:h1 {:class (stl/css :auth-title) :data-test "registration-title"} (tr "auth.register-title")] [:p {:class (stl/css :auth-tagline)} - (tr "auth.login-tagline")] + (tr "auth.register-tagline")] (when (contains? cf/flags :demo-warning) [:& login/demo-warning]) @@ -229,11 +229,11 @@ (mf/html [:& tr-html {:tag-name "div" - :label "auth.terms-privacy-agreement-md" + :label "auth.terms-and-privacy-agreement" :params [cf/terms-of-service-uri cf/privacy-policy-uri]}])] [:div {:class (stl/css :fields-row :input-visible :accept-terms-and-privacy-wrapper)} [:& fm/input {:name :accept-terms-and-privacy - :class "check-primary" + :class (stl/css :checkbox-terms-and-privacy) :type "checkbox" :default-checked false :label terms-label}]])) @@ -247,11 +247,12 @@ (mf/defc register-validate-page [{:keys [params]}] [:div {:class (stl/css :auth-form-wrapper)} - [:h1 {:class (stl/css :auth-title) - :data-test "register-title"} (tr "auth.register-title")] - [:div {:class (stl/css :auth-subtitle)} (tr "auth.register-subtitle")] - - [:hr {:class (stl/css :separator)}] + [:h1 {:class (stl/css :logo-container)} + [:a {:href "#/" :title "Penpot" :class (stl/css :logo-btn)} i/logo]] + [:div {:class (stl/css :auth-title-wrapper)} + [:h2 {:class (stl/css :auth-title) + :data-test "register-title"} (tr "auth.register-account-title")] + [:div {:class (stl/css :auth-subtitle)} (tr "auth.register-account-tagline")]] [:& register-validate-form {:params params}] @@ -264,7 +265,11 @@ (mf/defc register-success-page [{:keys [params]}] [:div {:class (stl/css :auth-form-wrapper :register-success)} - [:div {:class (stl/css :notification-icon)} i/icon-verify] - [:div {:class (stl/css :notification-text)} (tr "auth.verification-email-sent")] + [:h1 {:class (stl/css :logo-container)} + [:a {:href "#/" :title "Penpot" :class (stl/css :logo-btn)} i/logo]] + [:div {:class (stl/css :auth-title-wrapper)} + [:h2 {:class (stl/css :auth-title)} + (tr "auth.check-mail")] + [:div {:class (stl/css :notification-text)} (tr "auth.verification-email-sent")]] [:div {:class (stl/css :notification-text-email)} (:email params "")] [:div {:class (stl/css :notification-text)} (tr "auth.check-your-email")]]) diff --git a/frontend/src/app/main/ui/auth/register.scss b/frontend/src/app/main/ui/auth/register.scss index 9cbc004574..3f484f9fba 100644 --- a/frontend/src/app/main/ui/auth/register.scss +++ b/frontend/src/app/main/ui/auth/register.scss @@ -8,15 +8,24 @@ @use "./common.scss"; .accept-terms-and-privacy-wrapper { - margin: $s-16 0; :global(a) { color: $df-secondary; font-weight: $fw700; } } +.checkbox-terms-and-privacy { + align-items: flex-start; +} +.register-form { + gap: $s-24; +} + .register-success { - padding-bottom: $s-32; + gap: $s-24; + .auth-title { + @include medTitleTipography; + } } .notification-icon { @@ -30,9 +39,30 @@ } } -.notification-text-email, .notification-text { - font-size: $fs-16; - color: var(--notification-foreground-color-default); - margin-bottom: $s-16; + @include bodyMediumTypography; + color: var(--title-foreground-color); +} + +.notification-text-email { + @include medTitleTipography; + font-size: $fs-20; + color: var(--register-confirmation-color); + margin-inline: $s-36; +} + +.logo-btn { + height: $s-40; + svg { + width: $s-120; + height: $s-40; + fill: var(--main-icon-foreground); + } +} + +.logo-container { + display: flex; + justify-content: flex-start; + width: $s-120; + margin-block-end: $s-24; } diff --git a/frontend/src/app/main/ui/comments.scss b/frontend/src/app/main/ui/comments.scss index 3c6e569ea6..c3237c10dc 100644 --- a/frontend/src/app/main/ui/comments.scss +++ b/frontend/src/app/main/ui/comments.scss @@ -236,6 +236,7 @@ .reply-form { textarea { @extend .input-element; + @include bodySmallTypography; line-height: 1.45; height: 100%; width: 100%; diff --git a/frontend/src/app/main/ui/components/forms.cljs b/frontend/src/app/main/ui/components/forms.cljs index 0b9c2ab71a..22c69a9da8 100644 --- a/frontend/src/app/main/ui/components/forms.cljs +++ b/frontend/src/app/main/ui/components/forms.cljs @@ -117,7 +117,7 @@ [:* (cond (some? label) - [:label {:class (stl/css-case :input-with-label (not is-checkbox?) + [:label {:class (stl/css-case :input-with-label-form (not is-checkbox?) :input-label is-text? :radio-label is-radio? :checkbox-label is-checkbox?) @@ -214,7 +214,7 @@ [:span {:class (stl/css :hint)} hint])])) (mf/defc select - [{:keys [options disabled form default dropdown-class] :as props + [{:keys [options disabled form default dropdown-class select-class] :as props :or {default ""}}] (let [input-name (get props :name) form (or form (mf/use-ctx form-ctx)) @@ -230,6 +230,7 @@ {:default-value value :disabled disabled :options options + :class select-class :dropdown-class dropdown-class :on-change handle-change}]])) @@ -297,6 +298,70 @@ :value value' :checked checked?}]]))])) + +(mf/defc image-radio-buttons + {::mf/wrap-props false} + [props] + (let [form (or (unchecked-get props "form") + (mf/use-ctx form-ctx)) + name (unchecked-get props "name") + image (unchecked-get props "image") + img-height (unchecked-get props "img-height") + img-width (unchecked-get props "img-width") + current-value (or (dm/get-in @form [:data name] "") + (unchecked-get props "value")) + on-change (unchecked-get props "on-change") + options (unchecked-get props "options") + trim? (unchecked-get props "trim") + class (unchecked-get props "class") + encode-fn (d/nilv (unchecked-get props "encode-fn") identity) + decode-fn (d/nilv (unchecked-get props "decode-fn") identity) + + on-change' + (mf/use-fn + (mf/deps on-change form name) + (fn [event] + (let [value (-> event dom/get-target dom/get-value decode-fn)] + (when (some? form) + (swap! form assoc-in [:touched name] true) + (fm/on-input-change form name value trim?)) + + (when (fn? on-change) + (on-change name value)))))] + [:div {:class (if image + class + (dm/str class " " (stl/css :custom-radio)))} + (for [{:keys [image icon value label area]} options] + (let [icon? (some? icon) + value' (encode-fn value) + checked? (= value current-value) + key (str/ffmt "%-%" (d/name name) (d/name value'))] + [:label {:for key + :key key + :style {:grid-area area} + :class (stl/css-case :radio-label-image true + :global/checked checked?)} + (cond + icon? + [:span {:class (stl/css :icon-inside) + :style {:height img-height + :width img-width}} icon] + + :else + [:span {:style {:background-image (str/ffmt "url(%)" image) + :height img-height + :width img-width} + :class (stl/css :image-inside)}]) + + [:span {:class (stl/css :image-text)} label] + [:input {:on-change on-change' + :type "radio" + :class (stl/css :radio-input) + :id key + :name name + :value value' + :checked checked?}]]))])) + (mf/defc submit-button* {::mf/wrap-props false} [{:keys [on-click children label form class name disabled] :as props}] diff --git a/frontend/src/app/main/ui/components/forms.scss b/frontend/src/app/main/ui/components/forms.scss index 69c6dcd0b8..cd7551045c 100644 --- a/frontend/src/app/main/ui/components/forms.scss +++ b/frontend/src/app/main/ui/components/forms.scss @@ -38,10 +38,9 @@ } } -.input-with-label { +.input-with-label-form { @include flexColumn; gap: $s-8; - @include bodySmallTypography; justify-content: flex-start; align-items: flex-start; height: 100%; @@ -55,6 +54,7 @@ color: var(--input-foreground-color-active); margin-top: 0; width: 100%; + max-width: 100%; height: 100%; padding: 0 $s-8; @@ -64,6 +64,7 @@ border-radius: $br-8; } } + // Input autofill input:-webkit-autofill, input:-webkit-autofill:hover, @@ -169,6 +170,10 @@ border-color: var(--input-checkbox-border-color-hover); } } + a { + // Need for terms and conditions links on register checkbox + color: var(--link-foreground-color); + } } } @@ -367,7 +372,7 @@ height: fit-content; border-radius: $br-8; padding: $s-8; - color: var(--input-foreground-color); + color: var(--input-foreground-color-rest); border: $s-1 solid transparent; &:focus, &:focus-within { @@ -393,14 +398,12 @@ border-radius: $br-circle; } -.radio-label.with-image { +.radio-label-image { @include smallTitleTipography; display: grid; grid-template-rows: auto auto 0px; justify-items: center; gap: 0; - height: $s-116; - width: $s-92; border-radius: $br-8; margin: 0; border: 1px solid var(--color-background-tertiary); @@ -413,22 +416,29 @@ outline: none; border: $s-1 solid var(--input-border-color-active); } + .image-text { + color: var(--input-foreground-color-rest); + display: grid; + align-self: center; + margin-bottom: $s-16; + padding-inline: $s-8; + text-align: center; + } } .image-inside { - width: $s-60; - height: $s-48; - background-size: $s-48; + margin: $s-16; + background-size: 100%; background-repeat: no-repeat; background-position: center; } .icon-inside { - width: $s-60; - height: $s-48; + margin: $s-16; + @include flexCenter; svg { - width: $s-60; - height: $s-48; + width: 40px; + height: 60px; stroke: var(--icon-foreground); fill: none; } diff --git a/frontend/src/app/main/ui/dashboard/change_owner.scss b/frontend/src/app/main/ui/dashboard/change_owner.scss index 0b150c1c5e..0e960020e0 100644 --- a/frontend/src/app/main/ui/dashboard/change_owner.scss +++ b/frontend/src/app/main/ui/dashboard/change_owner.scss @@ -34,6 +34,7 @@ .input-wrapper { @extend .input-with-label; + @include bodySmallTypography; } .action-buttons { diff --git a/frontend/src/app/main/ui/dashboard/import.scss b/frontend/src/app/main/ui/dashboard/import.scss index 7708be6efd..b32a1338d1 100644 --- a/frontend/src/app/main/ui/dashboard/import.scss +++ b/frontend/src/app/main/ui/dashboard/import.scss @@ -81,6 +81,7 @@ } .file-name-edit { @extend .input-element; + @include bodySmallTypography; flex-grow: 1; } .file-name-label { diff --git a/frontend/src/app/main/ui/dashboard/team.scss b/frontend/src/app/main/ui/dashboard/team.scss index e79a69f63e..959b846c6f 100644 --- a/frontend/src/app/main/ui/dashboard/team.scss +++ b/frontend/src/app/main/ui/dashboard/team.scss @@ -540,5 +540,6 @@ .email-input { @extend .input-base; + @include bodySmallTypography; height: auto; } diff --git a/frontend/src/app/main/ui/dashboard/team_form.scss b/frontend/src/app/main/ui/dashboard/team_form.scss index d94cb4c285..d57cffb82e 100644 --- a/frontend/src/app/main/ui/dashboard/team_form.scss +++ b/frontend/src/app/main/ui/dashboard/team_form.scss @@ -37,6 +37,7 @@ .group-name-input { @extend .input-element-label; + @include bodySmallTypography; margin-bottom: $s-8; label { @include flexColumn; diff --git a/frontend/src/app/main/ui/debug/components_preview.scss b/frontend/src/app/main/ui/debug/components_preview.scss index eb1d83acd1..8a087c9ee9 100644 --- a/frontend/src/app/main/ui/debug/components_preview.scss +++ b/frontend/src/app/main/ui/debug/components_preview.scss @@ -93,6 +93,7 @@ } .input-wrapper { @extend .input-element; + @include bodySmallTypography; } } } diff --git a/frontend/src/app/main/ui/onboarding.cljs b/frontend/src/app/main/ui/onboarding.cljs deleted file mode 100644 index f79b2e81a9..0000000000 --- a/frontend/src/app/main/ui/onboarding.cljs +++ /dev/null @@ -1,161 +0,0 @@ -;; This Source Code Form is subject to the terms of the Mozilla Public -;; License, v. 2.0. If a copy of the MPL was not distributed with this -;; file, You can obtain one at http://mozilla.org/MPL/2.0/. -;; -;; Copyright (c) KALEIDOS INC - -(ns app.main.ui.onboarding - (:require-macros [app.main.style :as stl]) - (:require - [app.common.data.macros :as dm] - [app.config :as cf] - [app.main.data.events :as ev] - [app.main.data.modal :as modal] - [app.main.data.users :as du] - [app.main.store :as st] - [app.main.ui.onboarding.newsletter] - [app.main.ui.onboarding.questions] - [app.main.ui.onboarding.team-choice] - [app.main.ui.onboarding.templates] - [app.util.i18n :as i18n :refer [tr]] - [app.util.timers :as tm] - [potok.v2.core :as ptk] - [rumext.v2 :as mf])) - -;; --- ONBOARDING LIGHTBOX - -(defn send-event - [event-name] - (st/emit! (ptk/event ::ev/event {::ev/name event-name - ::ev/origin "dashboard"}))) - - -(mf/defc onboarding-welcome - [{:keys [next] :as props}] - (let [go-next - (fn [] - (send-event "onboarding-step1-continue") - (next))] - [:div {:class (stl/css :modal-container)} - [:div {:class (stl/css :modal-left)} - [:img {:src "images/welcomeilustration.svg" - :border "0" - :alt (tr "onboarding.welcome.alt")}]] - [:div {:class (stl/css :modal-right)} - [:div {:class (stl/css :release)} - "Version " (:main cf/version)] - [:h1 {:class (stl/css :modal-title) - :data-test "onboarding-welcome"} - (tr "onboarding-v2.welcome.title")] - [:p {:class (stl/css :modal-text)} - (tr "onboarding-v2.welcome.desc1")] - - [:div {:class (stl/css :text-wrapper)} - [:div {:class (stl/css :property-title)} - [:a {:href "https://community.penpot.app/" - :target "_blank" - :on-click #(send-event "onboarding-community-link")} - (tr "onboarding-v2.welcome.desc2.title")]] - [:div {:class (stl/css :property-description)} - (tr "onboarding-v2.welcome.desc2")]] - - [:div {:class (stl/css :text-wrapper)} - [:div {:class (stl/css :property-title)} - [:a {:href "https://help.penpot.app/contributing-guide/" - :target "_blank" :on-click #(send-event "onboarding-contributing-link")} - (tr "onboarding-v2.welcome.desc3.title")]] - [:div {:class (stl/css :property-description)} - (tr "onboarding-v2.welcome.desc3")]] - - [:button {:on-click go-next - :class (stl/css :accept-btn) - :data-test "onboarding-next-btn"} - (tr "labels.continue")]]])) - -(mf/defc onboarding-before-start - [{:keys [next] :as props}] - (let [go-next - (fn [] - (send-event "onboarding-step2-continue") - (next))] - [:div {:class (stl/css :modal-container)} - [:div {:class (stl/css :modal-left)} - [:img {:src "images/beforeyoustartilustration.svg" - :border "0" - :alt (tr "onboarding.welcome.alt")}]] - [:div {:class (stl/css :modal-right)} - [:div {:class (stl/css :release)} - "Version " (:main cf/version)] - - [:h1 {:class (stl/css :modal-title) - :data-test "onboarding-welcome"} - (tr "onboarding-v2.before-start.title")] - [:p {:class (stl/css :modal-text)} - (tr "onboarding-v2.before-start.desc1")] - - [:div {:class (stl/css :text-wrapper)} - [:div {:class (stl/css :property-title)} - [:a {:class (stl/css :modal-link) - :href "https://help.penpot.app/user-guide/" - :target "_blank" - :on-click #(send-event "onboarding-user-guide-link")} - (tr "onboarding-v2.before-start.desc2.title")]] - [:div {:class (stl/css :property-description)} - (tr "onboarding-v2.before-start.desc2")]] - - [:div {:class (stl/css :text-wrapper)} - [:div {:class (stl/css :property-title)} - [:a {:class (stl/css :modal-link) - :href "https://www.youtube.com/c/Penpot" - :target "_blank" - :on-click #(send-event "onboarding-video-tutorials-link")} - (tr "onboarding-v2.before-start.desc3.title")]] - [:div {:class (stl/css :property-description)} - (tr "onboarding-v2.before-start.desc3")]] - - - [:button {:on-click go-next - :class (stl/css :accept-btn) - :data-test "onboarding-next-btn"} - (tr "labels.continue")]]])) - -(mf/defc onboarding-modal - {::mf/register modal/components - ::mf/register-as :onboarding} - [_] - (let [slide (mf/use-state :start) - klass (mf/use-state "fadeInDown") - - navigate - (mf/use-fn #(reset! slide %)) - - skip - (mf/use-fn - (fn [] - (st/emit! (modal/hide) - (du/mark-onboarding-as-viewed)) - (cond - (contains? cf/flags :onboarding-questions) - (modal/show! {:type :onboarding-questions}) - - (contains? cf/flags :onboarding-newsletter) - (modal/show! {:type :onboarding-newsletter}) - - (contains? cf/flags :onboarding-team) - (modal/show! {:type :onboarding-team})))) - - onboarding-a-b-test? (cf/external-feature-flag "signup-background" "test")] - - (mf/with-effect [@slide] - (when (not= :start @slide) - (reset! klass "fadeIn")) - (let [sem (tm/schedule 300 #(reset! klass nil))] - (fn [] - (reset! klass nil) - (tm/dispose! sem)))) - [:div {:class (stl/css-case :modal-overlay true - :onboarding-a-b-test onboarding-a-b-test?)} - [:div.animated {:class (dm/str @klass " " (stl/css :animated))} - (case @slide - :start [:& onboarding-welcome {:next #(navigate :opensource)}] - :opensource [:& onboarding-before-start {:next skip}])]])) diff --git a/frontend/src/app/main/ui/onboarding.scss b/frontend/src/app/main/ui/onboarding.scss deleted file mode 100644 index 8cd674ba32..0000000000 --- a/frontend/src/app/main/ui/onboarding.scss +++ /dev/null @@ -1,86 +0,0 @@ -// This Source Code Form is subject to the terms of the Mozilla Public -// License, v. 2.0. If a copy of the MPL was not distributed with this -// file, You can obtain one at http://mozilla.org/MPL/2.0/. -// -// Copyright (c) KALEIDOS INC - -@import "refactor/common-refactor.scss"; - -.modal-overlay { - @extend .modal-overlay-base; -} - -.modal-container { - @extend .modal-container-base; - position: relative; - display: grid; - grid-template-columns: auto auto; - gap: $s-32; - padding-inline: $s-100; - padding-block-start: $s-100; - padding-block-end: $s-72; - margin: 0; - width: $s-960; - height: $s-632; - max-width: $s-960; - max-height: $s-632; -} - -.modal-left { - width: $s-240; - margin-block-end: $s-64; - img { - width: $s-240; - height: 100%; - border-radius: $br-8 0 0 $br-8; - } -} - -.modal-right { - display: grid; - grid-template-columns: 1fr; - grid-template-rows: $s-40 auto auto auto $s-32; - gap: $s-24; - position: relative; -} - -.release { - @include bodySmallTypography; - position: absolute; - top: calc(-1 * $s-28); - right: 0; - padding: $s-8; - color: var(--modal-text-foreground-color); -} - -.modal-title { - @include bigTitleTipography; - color: var(--modal-title-foreground-color); -} - -.modal-text, -.property-description { - @include bodyLargeTypography; - margin: 0; - color: var(--modal-text-foreground-color); -} - -.modal-link { - @include bodyLargeTypography; - color: var(--modal-link-foreground-color); - margin: 0; -} - -.text-wrapper { - @include flexColumn; -} - -.property-title a { - @include medTitleTipography; - color: var(--modal-title-foreground-color); -} - -.accept-btn { - @extend .modal-accept-btn; - justify-self: flex-end; -} diff --git a/frontend/src/app/main/ui/onboarding/questions.cljs b/frontend/src/app/main/ui/onboarding/questions.cljs index 2c05f7ef5b..1a55cb5446 100644 --- a/frontend/src/app/main/ui/onboarding/questions.cljs +++ b/frontend/src/app/main/ui/onboarding/questions.cljs @@ -25,7 +25,7 @@ [{:keys [form step on-next on-prev children class] :as props}] [:& fm/form {:form form :on-submit on-next :class (dm/str class " " (stl/css :form-wrapper))} - [:div {:class (stl/css :paginator)} (str/ffmt "%/4" step)] + [:div {:class (stl/css :paginator)} (str/ffmt "%/5" step)] children @@ -36,107 +36,86 @@ :on-click on-prev} (tr "questions.previous")]) [:> fm/submit-button* - {:label (if (< step 4) (tr "questions.next") (tr "questions.start")) + {:label (if (< step 5) (tr "questions.next") (tr "questions.start")) :class (stl/css :next-button)}]]]) (s/def ::questions-form-step-1 - (s/keys :req-un [::planning])) - -(mf/defc step-1 - [{:keys [on-next form] :as props}] - [:& step-container {:form form :step 1 :on-next on-next :class (stl/css :step-1)} - [:img {:class (stl/css :header-image) - :src "images/form/use-for-1.png" :alt (tr "questions.lets-get-started")}] - [:h1 {:class (stl/css :modal-title)} (tr "questions.lets-get-started")] - [:p {:class (stl/css :modal-text)} (tr "questions.your-feedback-will-help-us")] - - [:div {:class (stl/css :modal-question)} - [:h3 {:class (stl/css :modal-subtitle)} (tr "questions.questions-how-are-you-planning-to-use-penpot")] - [:& fm/select - {:options [{:label (tr "questions.select-option") - :value "" :key "questions-how-are-you-planning-to-use-penpot" - :disabled true} - {:label (tr "questions.discover-more-about-penpot") - :value "discover-more-about-penpot" - :key "discover-more-about-penpot"} - {:label (tr "questions.test-penpot-to-see-if-its-a-fit-for-team") - :value "test-penpot-to-see-if-its-a-fit-for-team" - :key "test-penpot-to-see-if-its-a-fit-for-team"} - {:label (tr "questions.start-to-work-on-my-project") - :value "start-to-work-on-my-project" - :key "start-to-work-on-my-project"} - {:label (tr "questions.get-the-code-from-my-team-project") - :value "get-the-code-from-my-team-project" - :key "get-the-code-from-my-team-project"} - {:label (tr "questions.leave-feedback-for-my-team-project") - :value "leave-feedback-for-my-team-project" - :key "leave-feedback-for-my-team-project"} - {:label (tr "questions.work-in-concept-ideas") - :value "work-in-concept-ideas" - :key "work-in-concept-ideas"} - {:label (tr "questions.try-out-before-using-penpot-on-premise") - :value "try-out-before-using-penpot-on-premise" - :key "try-out-before-using-penpot-on-premise"}] - :default "" - :name :planning - :dropdown-class (stl/css :question-dropdown)}]]]) - -(s/def ::questions-form-step-2 - (s/keys :req-un [::experience-branding-illustrations-marketing-pieces - ::experience-interface-design-visual-assets-design-systems - ::experience-interface-wireframes-user-journeys-flows-navigation-trees])) - -(mf/defc step-2 - [{:keys [on-next on-prev form] :as props}] - [:& step-container {:form form :step 2 :on-next on-next :on-prev on-prev :class (stl/css :step-2)} - [:h1 {:class (stl/css :modal-title)} - (tr "questions.describe-your-experience-working-on")] - - [:div {:class (stl/css-case :modal-question true - :question-centered true)} - [:div {:class (stl/css-case :modal-subtitle true - :centered true)} - (tr "branding-illustrations-marketing-pieces")] - [:& fm/radio-buttons {:options [{:label (tr "questions.none") :value "none"} - {:label (tr "questions.some") :value "some"} - {:label (tr "questions.a-lot") :value "a-lot"}] - :name :experience-branding-illustrations-marketing-pieces - :class (stl/css :radio-btns)}]] - - [:div {:class (stl/css-case :modal-question true - :question-centered true)} - [:div {:class (stl/css-case :modal-subtitle true - :centered true)} - (tr "questions.interface-design-visual-assets-design-systems")] - [:& fm/radio-buttons {:options [{:label (tr "questions.none") :value "none"} - {:label (tr "questions.some") :value "some"} - {:label (tr "questions.a-lot") :value "a-lot"}] - :name :experience-interface-design-visual-assets-design-systems - :class (stl/css :radio-btns)}]] - - [:div {:class (stl/css-case :modal-question true - :question-centered true)} - [:div {:class (stl/css-case :modal-subtitle true - :centered true)} - (tr "questions.wireframes-user-journeys-flows-navigation-trees")] - [:& fm/radio-buttons {:options [{:label (tr "questions.none") :value "none"} - {:label (tr "questions.some") :value "some"} - {:label (tr "questions.a-lot") :value "a-lot"}] - :name :experience-interface-wireframes-user-journeys-flows-navigation-trees - :class (stl/css :radio-btns)}]]]) - -(s/def ::questions-form-step-3 - (s/keys :req-un [::experience-design-tool] - :opt-un [::experience-design-tool-other])) + (s/keys :req-un [::planning + ::penpot-use] + :opt-un [::planning-other])) (defn- step-1-form-validator [errors data] - (let [planning (-> (:planning data) (str/trim))] + (let [planning (-> (:planning data) (str/trim)) + planning-other (-> (:planning-other data) str/trim)] + (cond-> errors + (and (= planning-other "other") (= 0 (count planning-other))) + (assoc :planning-other {:code "missing"}) + (= planning "") (assoc :planning {:code "missing"})))) -(defn- step-3-form-validator +(mf/defc step-1 + [{:keys [on-next form] :as props}] + (let [use-ops-randomized (mf/with-memo [] (shuffle [{:label (tr "questions.use-work") :value "use-work"} + {:label (tr "questions.use-education") :value "use-education"} + {:label (tr "questions.use-personal") :value "use-personal"}])) + + planning-ops (mf/with-memo [] (shuffle [{:label (tr "questions.select-option") + :value "" :key "questions-what-brings-you-here" + :disabled true} + {:label (tr "questions.reasons.exploring") + :value "discover-more-about-penpot" + :key "discover-more-about-penpot"} + {:label (tr "questions.reasons.fit") + :value "test-penpot-to-see-if-its-a-fit-for-team" + :key "test-penpot-to-see-if-its-a-fit-for-team"} + {:label (tr "questions.reasons.alternative") + :value "alternative-to-figma" + :key "alternative-to-figma"} + {:label (tr "questions.reasons.testing") + :value "try-out-before-using-penpot-on-premise" + :key "try-out-before-using-penpot-on-premise"}])) + + planning-ops-randomized (conj planning-ops {:label (tr "questions.other-short") :value "other"}) + + planning (dm/get-in @form [:data :planning])] + + + [:& step-container {:form form :step 1 :on-next on-next :class (stl/css :step-1)} + [:img {:class (stl/css :header-image) + :src "images/form/use-for-1.png" + :alt (tr "questions.lets-get-started")}] + [:h1 {:class (stl/css :modal-title)} + (tr "questions.step1-title")] + [:p {:class (stl/css :modal-text)} + (tr "questions.step1-subtitle")] + + [:div {:class (stl/css :modal-question)} + [:h3 {:class (stl/css :modal-subtitle)} (tr "questions.step1-question1")] + [:& fm/radio-buttons {:options use-ops-randomized + :name :penpot-use + :class (stl/css :radio-btns)}] + [:h3 {:class (stl/css :modal-subtitle)} (tr "questions.step1-question2")] + [:& fm/select + {:options planning-ops-randomized + :select-class (stl/css :select-class) + :default "" + :name :planning + :dropdown-class (stl/css :question-dropdown)}] + + (when (= planning "other") + [:& fm/input {:name :planning-other + :class (stl/css :input-spacing) + :placeholder (tr "questions.other") + :label ""}])]])) + +(s/def ::questions-form-step-2 + (s/keys :req-un [::experience-design-tool] + :opt-un [::experience-design-tool-other])) + +(defn- step-2-form-validator [errors data] (let [experience-design-tool (:experience-design-tool data) experience-design-tool-other (-> (:experience-design-tool-other data) str/trim)] @@ -144,9 +123,17 @@ (and (= experience-design-tool "other") (= 0 (count experience-design-tool-other))) (assoc :experience-design-tool-other {:code "missing"})))) -(mf/defc step-3 +(mf/defc step-2 [{:keys [on-next on-prev form] :as props}] - (let [experience-design-tool (dm/get-in @form [:clean-data :experience-design-tool]) + (let [design-tool-options (mf/with-memo [] (shuffle [{:label (tr "questions.figma") :img-width "48px" :img-height "60px" :value "figma" :image "images/form/figma.png"} + {:label (tr "questions.sketch") :img-width "48px" :img-height "60px" :value "sketch" :image "images/form/sketch.png"} + {:label (tr "questions.adobe-xd") :img-width "48px" :img-height "60px" :value "adobe-xd" :image "images/form/adobe-xd.png"} + {:label (tr "questions.canva") :img-width "48px" :img-height "60px" :value "canva" :image "images/form/canva.png"} + {:label (tr "questions.invision") :img-width "48px" :img-height "60px" :value "invision" :image "images/form/invision.png"}])) + + design-tool-options-randomized (conj design-tool-options {:label (tr "questions.other-short") :value "other" :icon i/curve}) + + experience-design-tool (dm/get-in @form [:clean-data :experience-design-tool]) on-design-tool-change (fn [_ _] (let [experience-design-tool (dm/get-in @form [:clean-data :experience-design-tool])] @@ -155,71 +142,98 @@ (swap! form d/dissoc-in [:data :experience-design-tool-other]) (swap! form d/dissoc-in [:errors :experience-design-tool-other])))))] - [:& step-container {:form form :step 3 :on-next on-next :on-prev on-prev :class (stl/css :step-3)} + [:& step-container {:form form :step 2 :on-next on-next :on-prev on-prev :class (stl/css :step-2)} [:h1 {:class (stl/css :modal-title)} - (tr "question.design-tool-more-experienced-with")] + (tr "question.design-tool-more-used")] [:div {:class (stl/css :radio-wrapper)} - [:& fm/radio-buttons {:options [{:label (tr "questions.figma") :value "figma" :image "images/form/figma.png" :area "image1"} - {:label (tr "questions.sketch") :value "sketch" :image "images/form/sketch.png" :area "image2"} - {:label (tr "questions.adobe-xd") :value "adobe-xd" :image "images/form/adobe-xd.png" :area "image3"} - {:label (tr "questions.canva") :value "canva" :image "images/form/canva.png" :area "image4"} - {:label (tr "questions.invision") :value "invision" :image "images/form/invision.png" :area "image5"} - {:label (tr "questions.never-used-one") :area "image6" :value "never-used-a-tool" :icon i/curve} - {:label (tr "questions.other") :value "other" :area "other"}] - :name :experience-design-tool - :image true - :class (stl/css :image-radio) - :on-change on-design-tool-change}] + [:& fm/image-radio-buttons {:options design-tool-options-randomized + :img-width "48px" + :img-height "60px" + :name :experience-design-tool + :image true + :class (stl/css :image-radio) + :on-change on-design-tool-change}] - [:& fm/input {:name :experience-design-tool-other - :class (stl/css :input-spacing) - :placeholder (tr "questions.other") - :label "" - :disabled (not= experience-design-tool "other")}]]])) + (when (= experience-design-tool "other") + [:& fm/input {:name :experience-design-tool-other + :class (stl/css :input-spacing) + :placeholder (tr "questions.other") + :label ""}])]])) -(s/def ::questions-form-step-4 - (s/keys :req-un [::team-size ::role] - :opt-un [::role-other])) +(s/def ::questions-form-step-3 + (s/keys :req-un [::team-size ::role ::responsability] + :opt-un [::role-other ::responsability-other])) -(defn- step-4-form-validator +(defn- step-3-form-validator [errors data] (let [role (:role data) - role-other (-> (:role-other data) str/trim)] + role-other (-> (:role-other data) str/trim) + + responsability (:responsability data) + responsability-other (-> (:responsability-other data) str/trim)] (cond-> errors (and (= role "other") (= 0 (count role-other))) - (assoc :role-other {:code "missing"})))) + (assoc :role-other {:code "missing"}) -(mf/defc step-4 + (and (= responsability "other") (= 0 (count responsability-other))) + (assoc :responsability-other {:code "missing"})))) + +(mf/defc step-3 [{:keys [on-next on-prev form] :as props}] - (let [role (dm/get-in @form [:data :role]) - on-role-change - (fn [_ _] - (let [experience-design-tool (dm/get-in @form [:clean-data :experience-design-tool])] - (when (not= experience-design-tool "other") - (do - (swap! form d/dissoc-in [:data :role-other]) - (swap! form d/dissoc-in [:errors :role-other])))))] + (let [role-ops (mf/with-memo [] (shuffle [{:label (tr "questions.select-option") :value "" :key "role" :disabled true} + {:label (tr "questions.work-type.ux") :value "designer" :key "designer"} + {:label (tr "questions.work-type.dev") :value "developer" :key "developer"} + {:label (tr "questions.work-type.student") :value "student-teacher" :key "student"} + {:label (tr "questions.work-type.graphic") :value "graphic-design" :key "design"} + {:label (tr "questions.work-type.marketing") :value "marketing" :key "marketing"} + {:label (tr "questions.work-type.product") :value "manager" :key "manager"}])) + role-ops-randomized (conj role-ops {:label (tr "questions.other-short") :value "other"}) - [:& step-container {:form form :step 4 :on-next on-next :on-prev on-prev :class (stl/css :step-4)} - [:h1 {:class (stl/css :modal-title)} (tr "questions.role")] - [:div {:class (stl/css :radio-wrapper)} - [:& fm/radio-buttons {:options [{:label (tr "questions.designer") :value "designer"} - {:label (tr "questions.developer") :value "developer"} - {:label (tr "questions.manager") :value "manager"} - {:label (tr "questions.founder") :value "founder"} - {:label (tr "questions.marketing") :value "marketing"} - {:label (tr "questions.student-teacher") :value "student-teacher"} - {:label (tr "questions.other") :value "other"}] - :name :role - :on-change on-role-change}] - [:& fm/input {:name :role-other - :class (stl/css :input-spacing) - :label "" - :placeholder (tr "questions.other") - :disabled (not= role "other")}]] + responsability-options (mf/with-memo [] (shuffle [{:label (tr "questions.select-option") :value "" :key "responsability" :disabled true} + {:label (tr "questions.role.team-leader") :value "team-leader"} + {:label (tr "questions.role.team-member") :value "team-member"} + {:label (tr "questions.role.freelancer") :value "freelancer"} + {:label (tr "questions.role.founder") :value "ceo-founder"} + {:label (tr "questions.role.director") :value "director"} + {:label (tr "questions.student-teacher") :value "student-teacher"}])) + + responsability-options-randomized (conj responsability-options {:label (tr "questions.other-short") :value "other"}) + + + role (dm/get-in @form [:data :role]) + + responsability (dm/get-in @form [:data :responsability])] + + [:& step-container {:form form :step 3 :on-next on-next :on-prev on-prev :class (stl/css :step-3)} + [:h1 {:class (stl/css :modal-title)} (tr "questions.step3-title")] + [:div {:class (stl/css :modal-question)} + [:h3 {:class (stl/css :modal-subtitle)} (tr "questions.step3.question1")] + [:& fm/select {:options role-ops-randomized + :select-class (stl/css :select-class) + :default "" + :name :role}] + + (when (= role "other") + [:& fm/input {:name :role-other + :class (stl/css :input-spacing) + :placeholder (tr "questions.other") + :label ""}])] [:div {:class (stl/css :modal-question)} - [:h3 {:class (stl/css :modal-subtitle)} (tr "questions.team-size")] + [:h3 {:class (stl/css :modal-subtitle)} (tr "questions.step3.question2")] + [:& fm/select {:options responsability-options-randomized + :select-class (stl/css :select-class) + :default "" + :name :responsability}] + + (when (= responsability "other") + [:& fm/input {:name :responsability-other + :class (stl/css :input-spacing) + :placeholder (tr "questions.other") + :label ""}])] + + [:div {:class (stl/css :modal-question)} + [:h3 {:class (stl/css :modal-subtitle)} (tr "questions.company-size")] [:& fm/select {:options [{:label (tr "questions.select-option") :value "" :key "team-size" :disabled true} {:label (tr "questions.more-than-50") :value "more-than-50" :key "more-than-50"} {:label (tr "questions.31-50") :value "31-50" :key "31-50"} @@ -228,10 +242,102 @@ {:label (tr "questions.freelancer") :value "freelancer" :key "freelancer"} {:label (tr "questions.personal-project") :value "personal-project" :key "personal-project"}] :default "" + :select-class (stl/css :select-class) :name :team-size}]]])) -;; NOTE: we don't register it on registry modal because we reference -;; this modal directly on the ui namespace. +(s/def ::questions-form-step-4 + (s/keys :req-un [::start] + :opt-un [::start-other])) + +(defn- step-4-form-validator + [errors data] + (let [start (:start data) + start-other (-> (:start-other data) str/trim)] + (cond-> errors + (and (= start "other") (= 0 (count start-other))) + (assoc :start-other {:code "missing"})))) + +(mf/defc step-4 + [{:keys [on-next on-prev form] :as props}] + (let [start-options (mf/with-memo [] (shuffle [{:label (tr "questions.starting-ui") :value "ui" :image "images/form/Design.png"} + {:label (tr "questions.starting-wireframing") :value "wireframing" :image "images/form/templates.png"} + {:label (tr "questions.starting-prototyping") :value "prototyping" :image "images/form/Prototype.png"} + {:label (tr "questions.starting-ds") :value "ds" :image "images/form/components.png"} + {:label (tr "questions.starting-code") :value "code" :image "images/form/design-and-dev.png"}])) + + start-options-randomized (conj start-options {:label (tr "questions.other-short") :value "other" :icon i/curve}) + + + start (dm/get-in @form [:data :start]) + + on-start-change + (fn [_ _] + (let [start (dm/get-in @form [:clean-data :start])] + (when (not= start "other") + (do + (swap! form d/dissoc-in [:data :start-other]) + (swap! form d/dissoc-in [:errors :start-other])))))] + + [:& step-container {:form form :step 4 :on-next on-next :on-prev on-prev :class (stl/css :step-4)} + [:h1 {:class (stl/css :modal-title)} (tr "questions.step4-title")] + [:div {:class (stl/css :radio-wrapper)} + [:& fm/image-radio-buttons {:options start-options-randomized + :img-width "159px" + :img-height "120px" + :class (stl/css :image-radio) + :name :start + :on-change on-start-change}] + + (when (= start "other") + [:& fm/input {:name :start-other + :class (stl/css :input-spacing) + :label "" + :placeholder (tr "questions.other") + :disabled (not= start "other")}])]])) + +(s/def ::questions-form-step-5 + (s/keys :req-un [::knowledge] + :opt-un [::knowledge-other])) + +(defn- step-5-form-validator + [errors data] + (let [knowledge (:knowledge data) + knowledge-other (-> (:knowledge-other data) str/trim)] + (cond-> errors + (and (= knowledge "other") (= 0 (count knowledge-other))) + (assoc :knowledge-other {:code "missing"})))) + +(mf/defc step-5 + [{:keys [on-next on-prev form] :as props}] + (let [knowledge-options (mf/with-memo [] (shuffle [{:label (tr "questions.knowledge.youtube") :value "Youtube"} + {:label (tr "questions.knowledge.event") :value "event"} + {:label (tr "questions.knowledge.search") :value "search"} + {:label (tr "questions.knowledge.social") :value "social"} + {:label (tr "questions.knowledge.article") :value "article"}])) + knowledge-options-randomized (conj knowledge-options {:label (tr "questions.other-short") :value "other"}) + + knowledge (dm/get-in @form [:data :knowledge]) + on-knowledge-change + (fn [_ _] + (let [experience-design-tool (dm/get-in @form [:clean-data :experience-design-tool])] + (when (not= experience-design-tool "other") + (do + (swap! form d/dissoc-in [:data :knowledge-other]) + (swap! form d/dissoc-in [:errors :knowledge-other])))))] + + [:& step-container {:form form :step 5 :on-next on-next :on-prev on-prev :class (stl/css :step-5)} + [:h1 {:class (stl/css :modal-title)} (tr "questions.step5-title")] + [:div {:class (stl/css :radio-wrapper)} + [:& fm/radio-buttons {:options knowledge-options-randomized + :class (stl/css :radio-btns) + :name :knowledge + :on-change on-knowledge-change}] + (when (= knowledge "other") + [:& fm/input {:name :knowledge-other + :class (stl/css :input-spacing) + :label "" + :placeholder (tr "questions.other") + :disabled (not= knowledge "other")}])]])) (mf/defc questions-modal {::mf/register modal/components @@ -247,9 +353,12 @@ :initial {} :validators [step-1-form-validator] :spec ::questions-form-step-1) + step-2-form (fm/use-form :initial {} + :validators [step-2-form-validator] :spec ::questions-form-step-2) + step-3-form (fm/use-form :initial {} :validators [step-3-form-validator] @@ -260,6 +369,11 @@ :validators [step-4-form-validator] :spec ::questions-form-step-4) + step-5-form (fm/use-form + :initial {} + :validators [step-5-form-validator] + :spec ::questions-form-step-5) + on-next (mf/use-fn (fn [form] @@ -298,4 +412,5 @@ 1 [:& step-1 {:on-next on-next :on-prev on-prev :form step-1-form}] 2 [:& step-2 {:on-next on-next :on-prev on-prev :form step-2-form}] 3 [:& step-3 {:on-next on-next :on-prev on-prev :form step-3-form}] - 4 [:& step-4 {:on-next on-submit :on-prev on-prev :form step-4-form}])]])) + 4 [:& step-4 {:on-next on-next :on-prev on-prev :form step-4-form}] + 5 [:& step-5 {:on-next on-submit :on-prev on-prev :form step-5-form}])]])) diff --git a/frontend/src/app/main/ui/onboarding/questions.scss b/frontend/src/app/main/ui/onboarding/questions.scss index 1496215ebc..fb4c97f497 100644 --- a/frontend/src/app/main/ui/onboarding/questions.scss +++ b/frontend/src/app/main/ui/onboarding/questions.scss @@ -11,9 +11,9 @@ } .modal-container { - max-width: $s-744; + max-width: $s-960; max-height: fit-content; - width: $s-744; + width: fit-content; padding-inline: $s-100; padding-block-start: $s-40; padding-block-end: $s-72; @@ -47,15 +47,15 @@ @extend .modal-cancel-btn; } +.radio-btns label, +.select-class span { + @include bodyMediumTypography; +} + // STEP 1 -// .step-1 { -// max-height: $s-468; -// height: $s-468; -// } - .header-image { - height: $s-112; + height: $s-60; width: auto; margin-inline-start: auto; } @@ -81,9 +81,15 @@ } // STEP-2 - +.step-1, +.step-2, +.step-3, +.step-5 { + max-width: $s-540; + width: $s-540; +} .step-2 { - grid-template-rows: $s-20 auto auto auto auto $s-32; + grid-template-rows: $s-20 auto auto $s-32; } .modal-question { @@ -103,36 +109,36 @@ .radio-wrapper { display: grid; grid-template-columns: 1fr; - gap: $s-8; + gap: $s-16; } // STEP-3 .step-3 { - grid-template-rows: $s-20 auto auto $s-32; + grid-template-rows: $s-20 auto auto auto auto $s-32; } .image-radio { display: grid; - grid-template-rows: 1fr 1fr $s-32; - grid-template-columns: $s-88 $s-92 $s-92 $s-92 $s-88; - grid-template-areas: - ". image1 image2 image3 ." - ". image4 image5 image6 ." - "other other other other other"; + grid-template-rows: 1fr 1fr; + grid-template-columns: $s-92 $s-92 $s-92; row-gap: $s-16; column-gap: $s-24; + justify-content: center; } .input-spacing { height: $s-32; - width: calc(100% - $s-24); - margin-inline-start: $s-24; + width: 100%; margin-block-end: $s-8; } +.input-spacing input { + @include bodyMediumTypography; +} + // STEP-4 .step-4 { - grid-template-rows: $s-20 auto auto auto $s-32; + grid-template-rows: $s-20 auto auto $s-32; row-gap: $s-16; } diff --git a/frontend/src/app/main/ui/settings/access_tokens.scss b/frontend/src/app/main/ui/settings/access_tokens.scss index 50239c61b0..afb7dc6bab 100644 --- a/frontend/src/app/main/ui/settings/access_tokens.scss +++ b/frontend/src/app/main/ui/settings/access_tokens.scss @@ -160,6 +160,7 @@ .custom-input-token { @extend .input-element; + @include bodySmallTypography; margin: 0; flex-grow: 1; &:focus { diff --git a/frontend/src/app/main/ui/viewer/inspect/exports.scss b/frontend/src/app/main/ui/viewer/inspect/exports.scss index 95e6743739..8244d9e23f 100644 --- a/frontend/src/app/main/ui/viewer/inspect/exports.scss +++ b/frontend/src/app/main/ui/viewer/inspect/exports.scss @@ -92,6 +92,7 @@ .suffix-input { @extend .input-element; + @include bodySmallTypography; grid-column: span 3; } diff --git a/frontend/src/app/main/ui/viewer/share_link.scss b/frontend/src/app/main/ui/viewer/share_link.scss index 8c32338bc5..a883d1355e 100644 --- a/frontend/src/app/main/ui/viewer/share_link.scss +++ b/frontend/src/app/main/ui/viewer/share_link.scss @@ -63,6 +63,7 @@ .input-text { @extend .input-element; + @include bodySmallTypography; color: var(--input-foreground-color-active); padding-left: $s-8; margin: 0; diff --git a/frontend/src/app/main/ui/workspace/colorpicker/color_inputs.scss b/frontend/src/app/main/ui/workspace/colorpicker/color_inputs.scss index 0dfa490ed0..b6d52d6490 100644 --- a/frontend/src/app/main/ui/workspace/colorpicker/color_inputs.scss +++ b/frontend/src/app/main/ui/workspace/colorpicker/color_inputs.scss @@ -17,6 +17,7 @@ @include flexRow; .input-wrapper { @extend .input-element; + @include bodySmallTypography; width: $s-84; display: flex; align-items: baseline; @@ -26,6 +27,7 @@ @include flexRow; .input-wrapper { @extend .input-element; + @include bodySmallTypography; width: $s-84; &.hex { width: $s-172; diff --git a/frontend/src/app/main/ui/workspace/nudge.scss b/frontend/src/app/main/ui/workspace/nudge.scss index 084645b45f..6331cec646 100644 --- a/frontend/src/app/main/ui/workspace/nudge.scss +++ b/frontend/src/app/main/ui/workspace/nudge.scss @@ -36,6 +36,7 @@ .input-wrapper { @extend .input-with-label; + @include bodySmallTypography; label { text-transform: none; } diff --git a/frontend/src/app/main/ui/workspace/sidebar/assets/groups.scss b/frontend/src/app/main/ui/workspace/sidebar/assets/groups.scss index 1756829e34..42327c8afa 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/assets/groups.scss +++ b/frontend/src/app/main/ui/workspace/sidebar/assets/groups.scss @@ -49,6 +49,7 @@ } .input-wrapper { @extend .input-with-label; + @include bodySmallTypography; margin-bottom: $s-8; } .action-buttons { diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/menus/blur.scss b/frontend/src/app/main/ui/workspace/sidebar/options/menus/blur.scss index 170d43f0c7..4d359a9309 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options/menus/blur.scss +++ b/frontend/src/app/main/ui/workspace/sidebar/options/menus/blur.scss @@ -100,6 +100,7 @@ .second-row { @extend .input-element; + @include bodySmallTypography; width: $s-92; .label { padding-left: $s-8; diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/menus/exports.scss b/frontend/src/app/main/ui/workspace/sidebar/options/menus/exports.scss index 49dd4fe1c5..1f486690e1 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options/menus/exports.scss +++ b/frontend/src/app/main/ui/workspace/sidebar/options/menus/exports.scss @@ -92,6 +92,7 @@ .suffix-input { grid-column: span 3; @extend .input-element; + @include bodySmallTypography; } .export-btn { diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/menus/frame_grid.scss b/frontend/src/app/main/ui/workspace/sidebar/options/menus/frame_grid.scss index bf1a29c77f..c4be7026a4 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options/menus/frame_grid.scss +++ b/frontend/src/app/main/ui/workspace/sidebar/options/menus/frame_grid.scss @@ -77,6 +77,7 @@ border-radius: 0 $br-8 $br-8 0; .numeric-input { @extend .input-base; + @include bodySmallTypography; } } .editable-select-wrapper { @@ -93,6 +94,7 @@ border: $s-1 solid var(--input-border-color); .numeric-input { @extend .input-base; + @include bodySmallTypography; margin: 0; padding: 0; } @@ -196,6 +198,7 @@ } .height { @extend .input-element; + @include bodySmallTypography; width: $s-108; .icon-text { padding-top: $s-1; @@ -204,6 +207,7 @@ .gutter, .margin { @extend .input-element; + @include bodySmallTypography; width: $s-108; .icon { &.rotated svg { diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/menus/grid_cell.scss b/frontend/src/app/main/ui/workspace/sidebar/options/menus/grid_cell.scss index 60e990dfa3..9220b1cf82 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options/menus/grid_cell.scss +++ b/frontend/src/app/main/ui/workspace/sidebar/options/menus/grid_cell.scss @@ -33,6 +33,7 @@ .area-input { @extend .input-element; + @include bodySmallTypography; width: 100%; padding: $s-8; } @@ -51,6 +52,7 @@ .coord-input { @extend .input-element; + @include bodySmallTypography; border-radius: 0 $br-8 $br-8 0; border-left: $s-1 solid var(--panel-background-color); } diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/menus/interactions.scss b/frontend/src/app/main/ui/workspace/sidebar/options/menus/interactions.scss index d4ec6f5a14..3242154aeb 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options/menus/interactions.scss +++ b/frontend/src/app/main/ui/workspace/sidebar/options/menus/interactions.scss @@ -143,6 +143,7 @@ } .input-element-wrapper { @extend .input-element; + @include bodySmallTypography; grid-area: content; } .buttons-wrapper { @@ -319,6 +320,7 @@ .flow-input { @extend .input-base; + @include bodySmallTypography; background-color: transparent; height: $s-28; } diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/menus/layer.scss b/frontend/src/app/main/ui/workspace/sidebar/options/menus/layer.scss index 93be5aa25c..164e1589d1 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options/menus/layer.scss +++ b/frontend/src/app/main/ui/workspace/sidebar/options/menus/layer.scss @@ -19,6 +19,7 @@ } .input { @extend .input-element; + @include bodySmallTypography; width: $s-60; } .actions { diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/menus/layout_container.scss b/frontend/src/app/main/ui/workspace/sidebar/options/menus/layout_container.scss index a51118e292..50686a5e28 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options/menus/layout_container.scss +++ b/frontend/src/app/main/ui/workspace/sidebar/options/menus/layout_container.scss @@ -84,6 +84,7 @@ gap: $s-4; .column-gap { @extend .input-element; + @include bodySmallTypography; width: $s-108; &.disabled { @extend .disabled-input; @@ -91,6 +92,7 @@ } .row-gap { @extend .input-element; + @include bodySmallTypography; width: $s-108; &.disabled { @extend .disabled-input; @@ -113,6 +115,7 @@ .padding-simple { @extend .input-element; + @include bodySmallTypography; max-width: $s-108; } } @@ -124,6 +127,7 @@ .padding-multiple { @extend .input-element; + @include bodySmallTypography; max-width: $s-108; } } @@ -239,6 +243,7 @@ .track-info-value { @extend .input-element; + @include bodySmallTypography; border-radius: 0; border-right: $s-1 solid var(--panel-background-color); } diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/menus/layout_item.scss b/frontend/src/app/main/ui/workspace/sidebar/options/menus/layout_item.scss index 26a6d6d993..475c2cb370 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options/menus/layout_item.scss +++ b/frontend/src/app/main/ui/workspace/sidebar/options/menus/layout_item.scss @@ -58,6 +58,7 @@ .z-index-wrapper { @extend .input-element; + @include bodySmallTypography; width: $s-60; } @@ -94,6 +95,7 @@ .vertical-margin, .horizontal-margin { @extend .input-element; + @include bodySmallTypography; width: $s-108; } } @@ -109,6 +111,7 @@ .left-margin, .right-margin { @extend .input-element; + @include bodySmallTypography; width: $s-108; } @@ -127,6 +130,7 @@ .layout-item-max-w, .layout-item-max-h { @extend .input-element; + @include bodySmallTypography; width: $s-108; .icon-text { justify-content: flex-start; diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/menus/measures.scss b/frontend/src/app/main/ui/workspace/sidebar/options/menus/measures.scss index 71fdbefa7b..7f265e3ef7 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options/menus/measures.scss +++ b/frontend/src/app/main/ui/workspace/sidebar/options/menus/measures.scss @@ -114,6 +114,7 @@ .height, .width { @extend .input-element; + @include bodySmallTypography; width: $s-108; .icon-text { padding-top: $s-1; @@ -145,6 +146,7 @@ .x-position, .y-position { @extend .input-element; + @include bodySmallTypography; width: $s-108; .icon-text { padding-top: $s-1; @@ -163,6 +165,7 @@ .rotation { @extend .input-element; + @include bodySmallTypography; width: $s-108; .icon-text { padding-top: $s-1; @@ -181,6 +184,7 @@ .radius-1 { @extend .input-element; + @include bodySmallTypography; width: $s-108; } @@ -190,6 +194,7 @@ gap: $s-4; .small-input { @extend .input-element; + @include bodySmallTypography; width: $s-52; } } diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/menus/shadow.scss b/frontend/src/app/main/ui/workspace/sidebar/options/menus/shadow.scss index a9ef8ebd20..27d5e4b8ca 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options/menus/shadow.scss +++ b/frontend/src/app/main/ui/workspace/sidebar/options/menus/shadow.scss @@ -114,6 +114,7 @@ .spread-input, .offset-y-input { @extend .input-element; + @include bodySmallTypography; width: $s-60; min-width: $s-60; align-items: baseline; diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.scss b/frontend/src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.scss index c117ca6a1f..3f8ca8b211 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.scss +++ b/frontend/src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.scss @@ -37,6 +37,7 @@ .attr-input { @extend .input-element; + @include bodySmallTypography; width: $s-124; } diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/menus/typography.scss b/frontend/src/app/main/ui/workspace/sidebar/options/menus/typography.scss index b5c417a417..02acda18b3 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options/menus/typography.scss +++ b/frontend/src/app/main/ui/workspace/sidebar/options/menus/typography.scss @@ -308,6 +308,7 @@ .line-height, .letter-spacing { @extend .input-element; + @include bodySmallTypography; .icon { @include flexCenter; width: $s-28; @@ -339,6 +340,7 @@ padding: $s-8; .numeric-input { @extend .input-base; + @include bodySmallTypography; padding: 0; } } diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/rows/color_row.scss b/frontend/src/app/main/ui/workspace/sidebar/options/rows/color_row.scss index cf3ed21e05..79762a6d97 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options/rows/color_row.scss +++ b/frontend/src/app/main/ui/workspace/sidebar/options/rows/color_row.scss @@ -41,6 +41,7 @@ .color-name-wrapper { @extend .input-element; + @include bodySmallTypography; flex-grow: 1; width: 100%; min-width: 0; @@ -166,6 +167,7 @@ .opacity-element-wrapper { @extend .input-element; + @include bodySmallTypography; width: $s-60; border-radius: 0 $br-8 $br-8 0; .opacity-input { diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/rows/stroke_row.scss b/frontend/src/app/main/ui/workspace/sidebar/options/rows/stroke_row.scss index 5f49ab1675..634075ea2d 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options/rows/stroke_row.scss +++ b/frontend/src/app/main/ui/workspace/sidebar/options/rows/stroke_row.scss @@ -12,6 +12,7 @@ @include flexRow; .stroke-width-input-element { @extend .input-element; + @include bodySmallTypography; width: $s-60; } .select-wrapper { diff --git a/frontend/translations/ar.po b/frontend/translations/ar.po index b3ef813574..ead39277be 100644 --- a/frontend/translations/ar.po +++ b/frontend/translations/ar.po @@ -36,11 +36,6 @@ msgstr "ترغب في التجربة فحسب؟" msgid "auth.demo-warning" msgstr "هذه خدمة تجريبية ، لا تستخدمها للعمل الحقيقي ، سيتم مسح المشاريع بشكل دوري." -#: src/app/main/ui/auth/register.cljs, -#: src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/auth/login.cljs -msgid "auth.email" -msgstr "البريد الالكتروني" - #: src/app/main/ui/auth/login.cljs msgid "auth.forgot-password" msgstr "هل نسيت كلمة السر؟" @@ -136,10 +131,6 @@ msgstr "لا تملك حساب بعد؟" msgid "auth.register-submit" msgstr "إنشاء حساب" -#: src/app/main/ui/auth/register.cljs -msgid "auth.register-subtitle" -msgstr "إنه مجاني ، مفتوح المصدر" - #: src/app/main/ui/auth/register.cljs msgid "auth.register-title" msgstr "إنشاء حساب" diff --git a/frontend/translations/bn.po b/frontend/translations/bn.po index 456b8e9880..dd6cef4f09 100644 --- a/frontend/translations/bn.po +++ b/frontend/translations/bn.po @@ -35,10 +35,6 @@ msgstr "" "এটি একটি ডেমো সার্ভিস। প্রয়োজনীয় কোনো কাজে ব্যবহার করবেন না। কিছু সময় পর " "প্রজেক্টগুলো মুছে ফেলা হবে।" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/auth/login.cljs -msgid "auth.email" -msgstr "ইমেইল" - #: src/app/main/ui/auth/login.cljs msgid "auth.forgot-password" msgstr "পাসওয়ার্ড ভুলে গেছেন?" diff --git a/frontend/translations/ca.po b/frontend/translations/ca.po index a8b6c72e4d..414e327026 100644 --- a/frontend/translations/ca.po +++ b/frontend/translations/ca.po @@ -39,11 +39,6 @@ msgstr "" "Aquest és un servei de PROVA. NO L'UTILITZEU en treballs reals, ja que els " "projectes s'eliminaran periòdicament." -#: src/app/main/ui/auth/register.cljs, -#: src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/auth/login.cljs -msgid "auth.email" -msgstr "Correu electrònic" - #: src/app/main/ui/auth/login.cljs msgid "auth.forgot-password" msgstr "Heu oblidat la contrasenya?" @@ -139,10 +134,6 @@ msgstr "No teniu un compte?" msgid "auth.register-submit" msgstr "Creeu un compte" -#: src/app/main/ui/auth/register.cljs -msgid "auth.register-subtitle" -msgstr "És gratuït, és de codi obert" - #: src/app/main/ui/auth/register.cljs msgid "auth.register-title" msgstr "Crea un compte" @@ -154,12 +145,6 @@ msgstr "La solució de codi obert per a dissenyar i prototipar." msgid "auth.terms-of-service" msgstr "Condicions del servei" -#: src/app/main/ui/auth/register.cljs -msgid "auth.terms-privacy-agreement" -msgstr "" -"En crear un compte nou, accepteu les condicions del servei i la política de " -"privadesa." - #: src/app/main/ui/auth/register.cljs msgid "auth.verification-email-sent" msgstr "S'ha enviat un correu de verificació a" diff --git a/frontend/translations/cs.po b/frontend/translations/cs.po index e14077e641..068dc44877 100644 --- a/frontend/translations/cs.po +++ b/frontend/translations/cs.po @@ -39,11 +39,6 @@ msgstr "" "Toto je DEMO služba, NEPOUŽÍVEJTE ji pro skutečnou práci, projekty budou " "pravidelně mazány." -#: src/app/main/ui/auth/register.cljs, -#: src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/auth/login.cljs -msgid "auth.email" -msgstr "Email" - #: src/app/main/ui/auth/login.cljs msgid "auth.forgot-password" msgstr "Zapomněli jste heslo?" @@ -151,10 +146,6 @@ msgstr "Ještě nemáte účet?" msgid "auth.register-submit" msgstr "Vytvořit účet" -#: src/app/main/ui/auth/register.cljs -msgid "auth.register-subtitle" -msgstr "Je to zdarma, je to open source" - #: src/app/main/ui/auth/register.cljs msgid "auth.register-title" msgstr "Vytvořit účet" @@ -5120,4 +5111,4 @@ msgid "workspace.updates.update" msgstr "Aktualizace" msgid "workspace.viewport.click-to-close-path" -msgstr "Kliknutím zavřete cestu" +msgstr "Kliknutím zavřete cestu" \ No newline at end of file diff --git a/frontend/translations/da.po b/frontend/translations/da.po index 31479ed12b..8001a50335 100644 --- a/frontend/translations/da.po +++ b/frontend/translations/da.po @@ -39,10 +39,6 @@ msgstr "" "Det her er en DEMO service, BRUG IKKE for rigtigt arbejde, projekterne vil " "blive slettet periodevis." -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/auth/login.cljs -msgid "auth.email" -msgstr "Email" - #: src/app/main/ui/auth/login.cljs msgid "auth.forgot-password" msgstr "Glemt adgangskode?" @@ -135,10 +131,6 @@ msgstr "Ingen konto?" msgid "auth.register-submit" msgstr "Opret en konto" -#: src/app/main/ui/auth/register.cljs -msgid "auth.register-subtitle" -msgstr "Det er gratis, det er Open Source" - #: src/app/main/ui/auth/register.cljs msgid "auth.register-title" msgstr "Opret en konto" @@ -147,12 +139,6 @@ msgstr "Opret en konto" msgid "auth.sidebar-tagline" msgstr "Open-source løsningen for design og prototyping." -#: src/app/main/ui/auth/register.cljs -msgid "auth.terms-privacy-agreement" -msgstr "" -"Når du opretter en ny konto, accepterer du vores servicevilkår og " -"fortrolighedspolitik." - #: src/app/main/ui/auth/register.cljs msgid "auth.verification-email-sent" msgstr "Vi har sendt en bekræftelsesmail til" diff --git a/frontend/translations/de.po b/frontend/translations/de.po index 361737b776..0caea39e12 100644 --- a/frontend/translations/de.po +++ b/frontend/translations/de.po @@ -39,11 +39,6 @@ msgstr "" "Das ist eine DEMO-VERSION, verwenden Sie es NICHT zum Arbeiten, die Projekte " "werden regelmäßig gelöscht." -#: src/app/main/ui/auth/register.cljs, -#: src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/auth/login.cljs -msgid "auth.email" -msgstr "E-Mail" - #: src/app/main/ui/auth/login.cljs msgid "auth.forgot-password" msgstr "Passwort vergessen?" @@ -176,10 +171,6 @@ msgstr "Noch kein Konto?" msgid "auth.register-submit" msgstr "Konto erstellen" -#: src/app/main/ui/auth/register.cljs -msgid "auth.register-subtitle" -msgstr "Kostenlos, es ist Open Source" - #: src/app/main/ui/auth/register.cljs msgid "auth.register-title" msgstr "Konto erstellen" diff --git a/frontend/translations/el.po b/frontend/translations/el.po index a6bcf2b620..2fb8706234 100644 --- a/frontend/translations/el.po +++ b/frontend/translations/el.po @@ -39,11 +39,6 @@ msgstr "" "Αυτή είναι μια υπηρεσία DEMO, ΜΗ ΧΡΗΣΙΜΟΠΟΙΕΙΤΕ για πραγματική εργασία, τα " "έργα θα σβήνονται περιοδικά." -#: src/app/main/ui/auth/register.cljs, -#: src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/auth/login.cljs -msgid "auth.email" -msgstr "Email" - #: src/app/main/ui/auth/login.cljs msgid "auth.forgot-password" msgstr "Ξεχάσατε τον κωδικό;" @@ -134,10 +129,6 @@ msgstr "Δεν έχετε λογαριασμό;" msgid "auth.register-submit" msgstr "Δημιουργία λογαριασμού" -#: src/app/main/ui/auth/register.cljs -msgid "auth.register-subtitle" -msgstr "Είναι δωρεάν, είναι Open Source" - #: src/app/main/ui/auth/register.cljs msgid "auth.register-title" msgstr "Δημιουργία λογαριασμού" @@ -146,12 +137,6 @@ msgstr "Δημιουργία λογαριασμού" msgid "auth.sidebar-tagline" msgstr "Η λύση ανοιχτού κώδικα για σχεδιασμό και πρωτότυπο." -#: src/app/main/ui/auth/register.cljs -msgid "auth.terms-privacy-agreement" -msgstr "" -"Δημιουργώντας έναν νέο λογαριασμό, αποδέχεστε τους όρους παροχής υπηρεσιών " -"και την πολιτική απορρήτου." - #: src/app/main/ui/auth/register.cljs msgid "auth.verification-email-sent" msgstr "Εχουμε στείλει ενα mail επαλήθευσης " diff --git a/frontend/translations/en.po b/frontend/translations/en.po index b5a1c5357a..d45c4ec149 100644 --- a/frontend/translations/en.po +++ b/frontend/translations/en.po @@ -38,8 +38,8 @@ msgstr "" "periodically wiped." #: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/auth/login.cljs -msgid "auth.email" -msgstr "Email" +msgid "auth.work-email" +msgstr "Work email" #: src/app/main/ui/auth/login.cljs msgid "auth.forgot-password" @@ -55,7 +55,11 @@ msgstr "Log into my account" #: src/app/main/ui/auth/register.cljs msgid "auth.login-here" -msgstr "Login here" +msgstr "Login here." + +#: src/app/main/ui/auth/register.cljs +msgid "auth.check-mail" +msgstr "Check your email" #: src/app/main/ui/auth/login.cljs msgid "auth.login-submit" @@ -65,6 +69,14 @@ msgstr "Login" msgid "auth.login-tagline" msgstr "Penpot is the free open-source design tool for Design and Code collaboration" +#: src/app/main/ui/auth/login.cljs +msgid "auth.register-tagline" +msgstr "With a free Penpot account, you can create unlimited teams and collaborate with other designers and developers on as many projects as you like. " + +#: src/app/main/ui/auth/login.cljs +msgid "auth.register-account-tagline" +msgstr "Let us know what we should call you on the dashboard and in emails." + #: src/app/main/ui/auth/login.cljs msgid "auth.login-with-github-submit" msgstr "GitHub" @@ -156,14 +168,14 @@ msgstr "No account yet?" msgid "auth.register-submit" msgstr "Create an account" -#: src/app/main/ui/auth/register.cljs -msgid "auth.register-subtitle" -msgstr "It's free, it's Open Source" - #: src/app/main/ui/auth/register.cljs msgid "auth.register-title" msgstr "Create an account" +#: src/app/main/ui/auth/register.cljs +msgid "auth.register-account-title" +msgstr "Your name" + #: src/app/main/ui/auth.cljs msgid "auth.sidebar-tagline" msgstr "The open-source solution for design and prototyping." @@ -178,10 +190,9 @@ msgstr "" #: src/app/main/ui/auth/register.cljs #, markdown -msgid "auth.terms-privacy-agreement-md" +msgid "auth.terms-and-privacy-agreement" msgstr "" -"When creating a new account, you agree to our [terms of service](%s) and " -"[privacy policy](%s)." +"I agree to the [terms of service](%s) and [privacy policy](%s)." #: src/app/main/ui/auth/register.cljs msgid "auth.verification-email-sent" @@ -2382,24 +2393,52 @@ msgid "profile.recovery.go-to-login" msgstr "Go to login" #: src/app/main/ui/onboarding/questions.cljs -msgid "question.design-tool-more-experienced-with" -msgstr "Which is the design tool you have more experience with?" +msgid "questions.step1-title" +msgstr "Help us get to know you" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.11-30" -msgstr "11-30" +msgid "questions.step1-subtitle" +msgstr "Let us know a bit about you to help us make Penpot work for you. Your answers will help us prioritize new features and point you in the right direction to get started." #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.2-10" -msgstr "2-10" +msgid "questions.step1-question1" +msgstr "What will you be using Penpot for?" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.31-50" -msgstr "31-50" +msgid "questions.use-work" +msgstr "Work" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.a-lot" -msgstr "A lot" +msgid "questions.use-education" +msgstr "Education" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "questions.use-personal" +msgstr "Personal" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "questions.step1-question2" +msgstr "What brings you to Penpot today?" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "questions.reasons.exploring" +msgstr "Just exploring" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "questions.reasons.fit" +msgstr "Reviewing whether Penpot is a good fit for my team" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "questions.reasons.alternative" +msgstr "Looking for an alternative to Figma, XD, etc" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "questions.reasons.testing" +msgstr "Testing before self-hosting" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "question.design-tool-more-used" +msgstr "Which one of these tools do you use the most?" #: src/app/main/ui/onboarding/questions.cljs msgid "questions.adobe-xd" @@ -2409,148 +2448,182 @@ msgstr "Adobe XD" msgid "questions.canva" msgstr "Canva" -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.describe-your-experience-working-on" -msgstr "How would you best describe your experience working on..." - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.designer" -msgstr "Designer" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.developer" -msgstr "Developer" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.discover-more-about-penpot" -msgstr "Discover more about Penpot" - #: src/app/main/ui/onboarding/questions.cljs msgid "questions.figma" msgstr "Figma" -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.founder" -msgstr "Founder/VP" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.freelancer" -msgstr "I'm a freelancer" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.get-the-code-from-my-team-project" -msgstr "Get the code from my team project " - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.interface-design-visual-assets-design-systems" -msgstr "... interface design, visual assets, design systems, etc." - #: src/app/main/ui/onboarding/questions.cljs msgid "questions.invision" msgstr "InVision" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.leave-feedback-for-my-team-project" -msgstr "Leave feedback for my team project" +msgid "questions.sketch" +msgstr "Sketch" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.lets-get-started" -msgstr "Let's get started!" +msgid "questions.step3-title" +msgstr "Tell us about your job" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.manager" -msgstr "Product or Project manager" +msgid "questions.step3.question1" +msgstr "What kind of work do you do?" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.marketing" +msgid "questions.work-type.ux" +msgstr "Product or UX design" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "questions.work-type.dev" +msgstr "Development" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "questions.work-type.student" +msgstr "student" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "questions.work-type.graphic" +msgstr "Graphic design" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "questions.work-type.marketing" msgstr "Marketing" +#: src/app/main/ui/onboarding/questions.cljs +msgid "questions.work-type.product" +msgstr "Product Managment" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "questions.step3.question2" +msgstr "What's your role?" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "questions.role.team-leader" +msgstr "Team Leader" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "questions.role.team-member" +msgstr "Team member" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "questions.role.freelancer" +msgstr "Freelancer" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "questions.role.founder" +msgstr "CEO or Founder" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "questions.role.director" +msgstr "Director" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "questions.company-size" +msgstr "What's the size of your company?" + #: src/app/main/ui/onboarding/questions.cljs msgid "questions.more-than-50" msgstr "More than 50" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.never-used-one" -msgstr "None" +msgid "questions.31-50" +msgstr "31-50" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.next" -msgstr "Next" +msgid "questions.11-30" +msgstr "11-30" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.none" -msgstr "None" +msgid "questions.2-10" +msgstr "2-10" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.other" -msgstr "Other (specify)" +msgid "questions.freelancer" +msgstr "I'm a freelancer" #: src/app/main/ui/onboarding/questions.cljs msgid "questions.personal-project" msgstr "I’m working in a personal project" +#: src/app/main/ui/onboarding/questions.cljs +msgid "questions.step4-title" +msgstr "Where would you like to get started?" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "questions.starting-ui" +msgstr "Design the UI/UX of an app" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "questions.starting-wireframing" +msgstr "Wireframing" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "questions.starting-prototyping" +msgstr "Prototyping" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "questions.starting-ds" +msgstr "Creating Desing Systems" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "questions.starting-code" +msgstr "Generating real code designs" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "questions.step5-title" +msgstr "How did you hear about Penpot?" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "questions.knowledge.youtube" +msgstr "YouTube" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "questions.knowledge.event" +msgstr "Event" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "questions.knowledge.search" +msgstr "Search Engine (Google, Yahoo, Bing)" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "questions.knowledge.social" +msgstr "Social Media (X, Linkedin, FB, etc)" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "questions.knowledge.article" +msgstr "Article (Blog, Post, Newsletter)" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "questions.lets-get-started" +msgstr "Let's get started!" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "questions.next" +msgstr "Next" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "questions.other" +msgstr "Other (specify)" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "questions.other-short" +msgstr "Other" + #: src/app/main/ui/onboarding/questions.cljs msgid "questions.previous" msgstr "Previous" -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.questions-how-are-you-planning-to-use-penpot" -msgstr "How are you planning to use Penpot?" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.role" -msgstr "What's your role?" - #: src/app/main/ui/onboarding/questions.cljs msgid "questions.select-option" msgstr "Select option" -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.sketch" -msgstr "Sketch" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.some" -msgstr "Some" - #: src/app/main/ui/onboarding/questions.cljs msgid "questions.start" msgstr "Start" -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.start-to-work-on-my-project" -msgstr "Start to work on my project" - #: src/app/main/ui/onboarding/questions.cljs msgid "questions.student-teacher" msgstr "Student or teacher" -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.team-size" -msgstr "What's the size of your team?" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.test-penpot-to-see-if-its-a-fit-for-team" -msgstr "Test Penpot to see if it's a fit for team " - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.try-out-before-using-penpot-on-premise" -msgstr "Try out before using Penpot on-premise" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.wireframes-user-journeys-flows-navigation-trees" -msgstr "... wireframes, user journeys & flows, navigation trees, etc." - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.work-in-concept-ideas" -msgstr "Work in concept ideas" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.your-feedback-will-help-us" -msgstr "" -"Your feedback will help us understand what your habits and preferences are " -"so that we can keep making Penpot such a useful and enjoyable tool." - #: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, msgid "settings.detach" msgstr "Detach" @@ -2563,6 +2636,7 @@ msgstr "Mixed" msgid "settings.select-this-color" msgstr "Select items using this style" + # SECTIONS msgid "shortcut-section.basics" msgstr "Basics" diff --git a/frontend/translations/es.po b/frontend/translations/es.po index 3285d91d9f..50ee7f41c4 100644 --- a/frontend/translations/es.po +++ b/frontend/translations/es.po @@ -39,9 +39,8 @@ msgstr "" "Este es un servicio de DEMOSTRACIÓN. NO USAR para trabajo real, los " "proyectos serán borrados periodicamente." -#: src/app/main/ui/auth/register.cljs, -#: src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/auth/login.cljs -msgid "auth.email" +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/auth/login.cljs +msgid "auth.work-email" msgstr "Correo electrónico" #: src/app/main/ui/auth/login.cljs @@ -58,7 +57,7 @@ msgstr "Entrar en mi cuenta" #: src/app/main/ui/auth/register.cljs msgid "auth.login-here" -msgstr "Inicia sesión aquí" +msgstr "Inicia sesión aquí." #: src/app/main/ui/auth/login.cljs msgid "auth.login-submit" @@ -70,6 +69,14 @@ msgstr "" "Penpot es la herramienta de diseño libre y open-source para la colaboración " "entre Diseño y Código" +#: src/app/main/ui/auth/login.cljs +msgid "auth.register-tagline" +msgstr "Con una cuenta gratuita de Penpot, puedes crear un número ilimitado de equipos y colaborar con otros diseñadores y desarrolladores en tantos proyectos como quieras." + +#: src/app/main/ui/auth/login.cljs +msgid "auth.register-account-tagline" +msgstr "Cuéntanos cómo quieres que nos dirijamos a tí." + #: src/app/main/ui/auth/login.cljs msgid "auth.login-with-github-submit" msgstr "GitHub" @@ -163,14 +170,14 @@ msgstr "¿No tienes una cuenta?" msgid "auth.register-submit" msgstr "Crear una cuenta" -#: src/app/main/ui/auth/register.cljs -msgid "auth.register-subtitle" -msgstr "Es gratis, es Open Source" - #: src/app/main/ui/auth/register.cljs msgid "auth.register-title" msgstr "Crear una cuenta" +#: src/app/main/ui/auth/register.cljs +msgid "auth.register-account-title" +msgstr "Tu nombre" + #: src/app/main/ui/auth.cljs msgid "auth.sidebar-tagline" msgstr "La solución de código abierto para diseñar y prototipar." @@ -190,10 +197,18 @@ msgstr "" "Al crear una nueva cuenta, aceptas nuestros [términos de servicio](%s) y " "[política de privacidad](%s)." +msgid "auth.terms-and-privacy-agreement" +msgstr "" +"Yo acepto los [términos de servicio](%s) y la [política de privacidad](%s)." + #: src/app/main/ui/auth/register.cljs msgid "auth.verification-email-sent" msgstr "Hemos enviado un email de verificación a" +#: src/app/main/ui/auth/register.cljs +msgid "auth.check-mail" +msgstr "Comprueba tu correo" + #: src/app/main/ui/onboarding/questions.cljs msgid "branding-illustrations-marketing-pieces" msgstr "diseño de marca, ilustraciones, piezas de marketing..." @@ -2455,25 +2470,84 @@ msgstr "Penpot" msgid "profile.recovery.go-to-login" msgstr "Ir al login" -#: src/app/main/ui/onboarding/questions.cljs -msgid "question.design-tool-more-experienced-with" -msgstr "¿Cuál es la herramienta de diseño con la que tienes más experiencia?" + + + + + + + + + + + + + + + + + + + + + + + + + + + + + #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.11-30" -msgstr "11-30" +msgid "questions.step1-title" +msgstr "Ayúdanos a conocerte" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.2-10" -msgstr "2-10" +msgid "questions.step1-subtitle" +msgstr "Cuéntanos un poco sobre tí para ayudarnos a que Penpot se adapte mejor a tí. Tus respuestas nos ayudarán a priorizar nuevas funcionalidades y a saber cómo podemos acompañarte mejor." #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.31-50" -msgstr "31-50" +msgid "questions.step1-question1" +msgstr "¿Para qué utilizarás Penpot?" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.a-lot" -msgstr "Mucha" +msgid "questions.use-work" +msgstr "Trabajo" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "questions.use-education" +msgstr "Educación" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "questions.use-personal" +msgstr "Personal" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "questions.step1-question2" +msgstr "¿Qué te ha traído a Penpot?" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "questions.reasons.exploring" +msgstr "Estoy echando un vistazo" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "questions.reasons.fit" +msgstr "Averiguar si Penpot es una buena opción para mi equipo" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "questions.reasons.alternative" +msgstr "Buscar una alternativa a Figma, XD, etc." + +#: src/app/main/ui/onboarding/questions.cljs +msgid "questions.reasons.testing" +msgstr "Probar antes de self-hosting" + + +#: src/app/main/ui/onboarding/questions.cljs +msgid "question.design-tool-more-used" +msgstr "¿Cuál de estas herramientas utilizas más?" #: src/app/main/ui/onboarding/questions.cljs msgid "questions.adobe-xd" @@ -2483,148 +2557,182 @@ msgstr "Adobe XD" msgid "questions.canva" msgstr "Canva" -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.describe-your-experience-working-on" -msgstr "Cuánta experiencia dirías que tienes trabajando con..." - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.designer" -msgstr "Diseño" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.developer" -msgstr "Desarrollo" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.discover-more-about-penpot" -msgstr "Conocer Penpot mejor" - #: src/app/main/ui/onboarding/questions.cljs msgid "questions.figma" msgstr "Figma" -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.founder" -msgstr "Dirección" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.freelancer" -msgstr "Soy freelancer" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.get-the-code-from-my-team-project" -msgstr "Obtener código de un proyecto" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.interface-design-visual-assets-design-systems" -msgstr "diseño de interfaz, visual, sistemas de diseño..." - #: src/app/main/ui/onboarding/questions.cljs msgid "questions.invision" msgstr "InVision" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.leave-feedback-for-my-team-project" -msgstr "Dejar comentarios en un proyecto" +msgid "questions.sketch" +msgstr "Sketch" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.lets-get-started" -msgstr "¡Empecemos!" +msgid "questions.step3-title" +msgstr "Háblanos de tu trabajo" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.manager" -msgstr "Gestión de producto o proyecto" +msgid "questions.step3.question1" +msgstr "¿Qué tipo de trabajo haces?" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.marketing" +msgid "questions.work-type.ux" +msgstr "Diseño de Producto o UX" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "questions.work-type.dev" +msgstr "Desarrollo" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "questions.work-type.student" +msgstr "Estudiante" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "questions.work-type.graphic" +msgstr "Diseño gráfico" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "questions.work-type.marketing" msgstr "Marketing" +#: src/app/main/ui/onboarding/questions.cljs +msgid "questions.work-type.product" +msgstr "Product Managment" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "questions.step3.question2" +msgstr "¿Cuál es tu puesto?" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "questions.role.team-leader" +msgstr "Líder de equipo" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "questions.role.team-member" +msgstr "Miembro de equipo" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "questions.role.freelancer" +msgstr "Autónomo" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "questions.role.founder" +msgstr "CEO o Fundador" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "questions.role.director" +msgstr "Director" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "questions.company-size" +msgstr "¿Cuál es el tamaño de tu empresa?" + #: src/app/main/ui/onboarding/questions.cljs msgid "questions.more-than-50" msgstr "Más de 50" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.never-used-one" -msgstr "Ninguna" +msgid "questions.31-50" +msgstr "31-50" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.next" -msgstr "Siguiente" +msgid "questions.11-30" +msgstr "11-30" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.none" -msgstr "Ninguna" +msgid "questions.2-10" +msgstr "2-10" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.other" -msgstr "Otra (especifica)" +msgid "questions.freelancer" +msgstr "Soy autónomo" #: src/app/main/ui/onboarding/questions.cljs msgid "questions.personal-project" msgstr "Estoy trabajando en un proyecto personal" +#: src/app/main/ui/onboarding/questions.cljs +msgid "questions.step4-title" +msgstr "¿Por dónde te apetecería empezar?" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "questions.starting-ui" +msgstr "Diseñando el UX/UI de una aplicación" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "questions.starting-wireframing" +msgstr "Wireframing" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "questions.starting-prototyping" +msgstr "Prototipado" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "questions.starting-ds" +msgstr "Creando sistemas de diseño" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "questions.starting-code" +msgstr "Generando código a partir de diseños" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "questions.step5-title" +msgstr "¿Cómo nos has descubierto?" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "questions.knowledge.youtube" +msgstr "YouTube" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "questions.knowledge.event" +msgstr "Evento" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "questions.knowledge.search" +msgstr "Buscador (Google, Yahoo, Bing)" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "questions.knowledge.social" +msgstr "Redes sociales (X, LinkedIn, FB, ect)" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "questions.knowledge.article" +msgstr "Artículo (Blog, Post, Newsletter)" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "questions.lets-get-started" +msgstr "¡Empecemos!" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "questions.next" +msgstr "Siguiente" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "questions.other" +msgstr "Otra (especifica)" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "questions.other-short" +msgstr "Otra" + #: src/app/main/ui/onboarding/questions.cljs msgid "questions.previous" msgstr "Anterior" -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.questions-how-are-you-planning-to-use-penpot" -msgstr "¿Qué uso piensas darle a Penpot?" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.role" -msgstr "¿Cuál es tu rol?" - #: src/app/main/ui/onboarding/questions.cljs msgid "questions.select-option" msgstr "Selecciona una opción" -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.sketch" -msgstr "Sketch" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.some" -msgstr "Alguna" - #: src/app/main/ui/onboarding/questions.cljs msgid "questions.start" msgstr "Comenzar" -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.start-to-work-on-my-project" -msgstr "Comenzar a trabajar en mi proyecto" - #: src/app/main/ui/onboarding/questions.cljs msgid "questions.student-teacher" msgstr "Estudiante o profesorado" -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.team-size" -msgstr "¿De qué tamaño es tu equipo?" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.test-penpot-to-see-if-its-a-fit-for-team" -msgstr "Valorar si Penpot es adecuado para mi equipo" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.try-out-before-using-penpot-on-premise" -msgstr "Probar Penpot antes de usarlo en una instalación propia" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.wireframes-user-journeys-flows-navigation-trees" -msgstr "prototipos, user journeys, flujos, árboles de navegación..." - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.work-in-concept-ideas" -msgstr "Conceptualizar ideas" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.your-feedback-will-help-us" -msgstr "" -"Tus respuestas nos ayudarán a entender tus hábitos y preferencias, lo que " -"nos ayudará a continuar mejorando Penpot" - #: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, msgid "settings.detach" msgstr "Desacoplar" diff --git a/frontend/translations/eu.po b/frontend/translations/eu.po index c65fa34b1d..e8896c496d 100644 --- a/frontend/translations/eu.po +++ b/frontend/translations/eu.po @@ -39,11 +39,6 @@ msgstr "" "Hau PROBAK EGITEKO zerbitzua da. EZ ERABILI benetako lana egiteko, hemengo " "proiektuak noizean behin ezabatu egingo dira." -#: src/app/main/ui/auth/register.cljs, -#: src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/auth/login.cljs -msgid "auth.email" -msgstr "Posta elektronikoa" - #: src/app/main/ui/auth/login.cljs msgid "auth.forgot-password" msgstr "Pasahitza ahaztu duzu?" @@ -139,10 +134,6 @@ msgstr "Ez duzu konturik?" msgid "auth.register-submit" msgstr "Sortu kontua" -#: src/app/main/ui/auth/register.cljs -msgid "auth.register-subtitle" -msgstr "Doakoa da, Kode Irekia da" - #: src/app/main/ui/auth/register.cljs msgid "auth.register-title" msgstr "Sortu kontua" @@ -154,12 +145,6 @@ msgstr "Diseinuak eta prototipoak egiteko kode irekiko soluzioa." msgid "auth.terms-of-service" msgstr "Zerbitzuaren erabilpen-baldintzak" -#: src/app/main/ui/auth/register.cljs -msgid "auth.terms-privacy-agreement" -msgstr "" -"Kontu berri bat sortzean, gure erabilpen-baldintzak eta pribatutasun " -"politika onartzen dituzu." - #: src/app/main/ui/auth/register.cljs msgid "auth.verification-email-sent" msgstr "Egiaztapen mezu bat bidali dugu helbide honetara" diff --git a/frontend/translations/fa.po b/frontend/translations/fa.po index 94bd12a193..9c28283b11 100644 --- a/frontend/translations/fa.po +++ b/frontend/translations/fa.po @@ -39,11 +39,6 @@ msgstr "" "این یک سرویس آزمایشی است، برای کار واقعی استفاده نکنید، پروژه‌ها به صورت " "دوره‌ای پاک می‌شوند." -#: src/app/main/ui/auth/register.cljs, -#: src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/auth/login.cljs -msgid "auth.email" -msgstr "ایمیل" - #: src/app/main/ui/auth/login.cljs msgid "auth.forgot-password" msgstr "کلمه‌عبور را فراموش کرده‌اید؟" @@ -139,10 +134,6 @@ msgstr "هنوز حسابی ندارید؟" msgid "auth.register-submit" msgstr "ایجاد حساب‌کاربری" -#: src/app/main/ui/auth/register.cljs -msgid "auth.register-subtitle" -msgstr "رایگان است، منبع‌باز است" - #: src/app/main/ui/auth/register.cljs msgid "auth.register-title" msgstr "ایجاد حساب" @@ -154,12 +145,6 @@ msgstr "راه حل منبع-باز برای طراحی و نمونه‌سازی msgid "auth.terms-of-service" msgstr "شرایط استفاده از خدمات" -#: src/app/main/ui/auth/register.cljs -msgid "auth.terms-privacy-agreement" -msgstr "" -"هنگام ایجاد یک حساب‌کاربری جدید، با شرایط خدمات و سیاست حفظ حریم‌خصوصی ما " -"موافقت می‌کنید." - #: src/app/main/ui/auth/register.cljs msgid "auth.verification-email-sent" msgstr "ما یک ایمیل تأیید ارسال کردیم به" diff --git a/frontend/translations/fin_FI.po b/frontend/translations/fin_FI.po index 2e02a3c73b..df8093ddcc 100644 --- a/frontend/translations/fin_FI.po +++ b/frontend/translations/fin_FI.po @@ -39,10 +39,6 @@ msgstr "" "Tämä on DEMO versio, ÄLÄ KÄYTÄ oikeaan työhön, projektit tullaan määräajoin " "poistamaan." -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/auth/login.cljs -msgid "auth.email" -msgstr "Sähköposti" - #: src/app/main/ui/auth/login.cljs msgid "auth.forgot-password" msgstr "Unohditko salasanasi?" @@ -138,11 +134,6 @@ msgstr "Ei käyttäjää?" msgid "auth.register-submit" msgstr "Luo uusi käyttäjä" -#: src/app/main/ui/auth/register.cljs -#, fuzzy -msgid "auth.register-subtitle" -msgstr "Se on ilmainen, sekä avointa lähdekoodia" - #: src/app/main/ui/auth/register.cljs msgid "auth.register-title" msgstr "Luo uusi käyttäjä" @@ -154,10 +145,6 @@ msgstr "Avoimen lähdekoodin ratkaisu suunnitteluun ja prototyyppien valmistukse msgid "auth.terms-of-service" msgstr "Käyttöehdot" -#: src/app/main/ui/auth/register.cljs -msgid "auth.terms-privacy-agreement" -msgstr "Kun luot uuden käyttäjän, hyväksyt käyttöehdot ja tietosuojaselosteen." - #: src/app/main/ui/auth/register.cljs msgid "auth.verification-email-sent" msgstr "Lähetimme vahvistussähköpostin osoitteeseen" diff --git a/frontend/translations/fo.po b/frontend/translations/fo.po index 91f47b88d2..22a6a6fc90 100644 --- a/frontend/translations/fo.po +++ b/frontend/translations/fo.po @@ -39,11 +39,6 @@ msgstr "" "Hetta er ein ROYNDAR tænasta, IKKI BRÚKA til veruligt arbeiði, " "verkætlanirnar verða slettaðar regluliga." -#: src/app/main/ui/auth/register.cljs, -#: src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/auth/login.cljs -msgid "auth.email" -msgstr "Teldupostur" - #: src/app/main/ui/auth/login.cljs msgid "auth.forgot-password" msgstr "Gloymt loyniorðið?" @@ -137,10 +132,6 @@ msgstr "Onga konto enn?" msgid "auth.register-submit" msgstr "Stovna konto" -#: src/app/main/ui/auth/register.cljs -msgid "auth.register-subtitle" -msgstr "Tað er ókeypis, tað Open Source" - #: src/app/main/ui/auth/register.cljs msgid "auth.register-title" msgstr "Stovna eina konto" @@ -148,12 +139,6 @@ msgstr "Stovna eina konto" msgid "auth.terms-of-service" msgstr "Treytir" -#: src/app/main/ui/auth/register.cljs -msgid "auth.terms-privacy-agreement" -msgstr "" -"Tá ið tú gert eina nýggja kontu, játtar tú tænastu- og privatlívs-treytir " -"okkara." - #: src/app/main/ui/auth/register.cljs msgid "auth.verification-email-sent" msgstr "Vit hava sent ein váttanar teldupost til" diff --git a/frontend/translations/fr.po b/frontend/translations/fr.po index f2d1b85e1b..028164c046 100644 --- a/frontend/translations/fr.po +++ b/frontend/translations/fr.po @@ -39,11 +39,6 @@ msgstr "" "Il s’agit d’un service de DÉMONSTRATION, NE L'UTILISEZ PAS pour du vrai " "travail, les projets seront périodiquement supprimés." -#: src/app/main/ui/auth/register.cljs, -#: src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/auth/login.cljs -msgid "auth.email" -msgstr "Adresse e‑mail" - #: src/app/main/ui/auth/login.cljs msgid "auth.forgot-password" msgstr "Mot de passe oublié ?" @@ -151,10 +146,6 @@ msgstr "Pas encore de compte ?" msgid "auth.register-submit" msgstr "Créer un compte" -#: src/app/main/ui/auth/register.cljs -msgid "auth.register-subtitle" -msgstr "C’est gratuit, c’est Open Source" - #: src/app/main/ui/auth/register.cljs msgid "auth.register-title" msgstr "Créer un compte" @@ -166,12 +157,6 @@ msgstr "La solution Open Source pour la conception et le prototypage." msgid "auth.terms-of-service" msgstr "Conditions générales d'utilisation" -#: src/app/main/ui/auth/register.cljs -msgid "auth.terms-privacy-agreement" -msgstr "" -"En créant un compte, vous acceptez nos conditions générales d'utilisation " -"et notre politique de confidentialité." - #: src/app/main/ui/auth/register.cljs msgid "auth.verification-email-sent" msgstr "Nous avons envoyé un e-mail de vérification à" diff --git a/frontend/translations/gl.po b/frontend/translations/gl.po index 07371e67d1..af417c5b9e 100644 --- a/frontend/translations/gl.po +++ b/frontend/translations/gl.po @@ -39,11 +39,6 @@ msgstr "" "Este é un servizo de DEMOSTRACIÓN. NON O UTILICES para traballos reais, os " "proxectos eliminanse periódicamente." -#: src/app/main/ui/auth/register.cljs, -#: src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/auth/login.cljs -msgid "auth.email" -msgstr "Correo electrónico" - #: src/app/main/ui/auth/login.cljs msgid "auth.forgot-password" msgstr "Esqueciches o teu contrasinal?" @@ -139,10 +134,6 @@ msgstr "Ainda non tes unha conta?" msgid "auth.register-submit" msgstr "Crea unha conta" -#: src/app/main/ui/auth/register.cljs -msgid "auth.register-subtitle" -msgstr "É libre, é Open Source" - #: src/app/main/ui/auth/register.cljs msgid "auth.register-title" msgstr "Crea unha conta" @@ -154,12 +145,6 @@ msgstr "A solución de código aberto para deseñar e crear prototipos." msgid "auth.terms-of-service" msgstr "Condicións de servizo" -#: src/app/main/ui/auth/register.cljs -msgid "auth.terms-privacy-agreement" -msgstr "" -"Ao crear unha nova conta, aceptas as nosas condicións de servizo e a " -"política de privacidade." - #: src/app/main/ui/auth/register.cljs msgid "auth.verification-email-sent" msgstr "Enviamos un correo electrónico de verificación a" diff --git a/frontend/translations/he.po b/frontend/translations/he.po index 51368e2581..77b4e3723d 100644 --- a/frontend/translations/he.po +++ b/frontend/translations/he.po @@ -38,11 +38,6 @@ msgid "auth.demo-warning" msgstr "" "זה שירות ניסיוני, לא להשתמש בו לעבודה אמתית, המיזמים יימחקו מדי פעם בפעם." -#: src/app/main/ui/auth/register.cljs, -#: src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/auth/login.cljs -msgid "auth.email" -msgstr "דוא״ל" - #: src/app/main/ui/auth/login.cljs msgid "auth.forgot-password" msgstr "שכחת סיסמה?" @@ -170,10 +165,6 @@ msgstr "אין לך חשבון עדיין?" msgid "auth.register-submit" msgstr "יצירת חשבון" -#: src/app/main/ui/auth/register.cljs -msgid "auth.register-subtitle" -msgstr "זה חינם, בקוד פתוח" - #: src/app/main/ui/auth/register.cljs msgid "auth.register-title" msgstr "יצירת חשבון" @@ -2447,10 +2438,6 @@ msgstr "2-‏10" msgid "questions.31-50" msgstr "31‏-50" -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.a-lot" -msgstr "הרבה מהם" - #: src/app/main/ui/onboarding/questions.cljs msgid "questions.adobe-xd" msgstr "Adobe XD" @@ -2459,22 +2446,6 @@ msgstr "Adobe XD" msgid "questions.canva" msgstr "Canva" -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.describe-your-experience-working-on" -msgstr "מה יתאר הכי טוב את אופן השימוש שלך…" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.designer" -msgstr "עיצוב" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.developer" -msgstr "פיתוח" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.discover-more-about-penpot" -msgstr "היכרות מעמיקה יותר עם Penpot" - #: src/app/main/ui/onboarding/questions.cljs msgid "questions.figma" msgstr "Figma" @@ -2507,14 +2478,6 @@ msgstr "להשאיר משוב למיזם הצוותי שלי" msgid "questions.lets-get-started" msgstr "מתחילים!" -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.manager" -msgstr "ניהול מוצר או מיזם" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.marketing" -msgstr "שיווק" - #: src/app/main/ui/onboarding/questions.cljs msgid "questions.more-than-50" msgstr "גדול מ־50" @@ -2527,10 +2490,6 @@ msgstr "אין" msgid "questions.next" msgstr "הבאה" -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.none" -msgstr "כלום" - #: src/app/main/ui/onboarding/questions.cljs msgid "questions.other" msgstr "אחר (נא לפרט)" @@ -2543,14 +2502,6 @@ msgstr "זאת עבודה על מיזם פרטי" msgid "questions.previous" msgstr "הקודמת" -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.questions-how-are-you-planning-to-use-penpot" -msgstr "מהן התוכניות שלך בנוגע לשימוש ב־Penpot?" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.role" -msgstr "מה התפקיד שלך?" - #: src/app/main/ui/onboarding/questions.cljs msgid "questions.select-option" msgstr "בחירת אפשרות" @@ -2559,10 +2510,6 @@ msgstr "בחירת אפשרות" msgid "questions.sketch" msgstr "Sketch" -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.some" -msgstr "חלק מהם" - #: src/app/main/ui/onboarding/questions.cljs msgid "questions.start" msgstr "התחלה" diff --git a/frontend/translations/hr.po b/frontend/translations/hr.po index 62833e1c04..7c44a832c8 100644 --- a/frontend/translations/hr.po +++ b/frontend/translations/hr.po @@ -38,11 +38,6 @@ msgstr "" "Ovo je DEMO usluga. NEMOJ KORISTITI za pravi rad. Projekti će se povremeno " "brisati." -#: src/app/main/ui/auth/register.cljs, -#: src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/auth/login.cljs -msgid "auth.email" -msgstr "E-mail" - #: src/app/main/ui/auth/login.cljs msgid "auth.forgot-password" msgstr "Zaboravljena lozinka?" @@ -138,10 +133,6 @@ msgstr "Još nemaš račun?" msgid "auth.register-submit" msgstr "Stvori račun" -#: src/app/main/ui/auth/register.cljs -msgid "auth.register-subtitle" -msgstr "Besplatno je, Open Source" - #: src/app/main/ui/auth/register.cljs msgid "auth.register-title" msgstr "Stvori račun" @@ -153,12 +144,6 @@ msgstr "Open Source rješenje za dizajn i izradu prototipova." msgid "auth.terms-of-service" msgstr "Uvjeti pružanja usluge" -#: src/app/main/ui/auth/register.cljs -msgid "auth.terms-privacy-agreement" -msgstr "" -"Kada kreiraš novi račun, slažeš se s našim uvjetima pružanja usluge i " -"pravilima privatnosti." - #: src/app/main/ui/auth/register.cljs msgid "auth.verification-email-sent" msgstr "Poslali smo e-mail za potvrdu na" diff --git a/frontend/translations/id.po b/frontend/translations/id.po index 3d622a5a03..93345da619 100644 --- a/frontend/translations/id.po +++ b/frontend/translations/id.po @@ -39,11 +39,6 @@ msgstr "" "Ini layanan DEMO, JANGAN GUNAKAN untuk pekerjaan nyata, proyek-proyek ini " "akan di hapus secara berkala." -#: src/app/main/ui/auth/register.cljs, -#: src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/auth/login.cljs -msgid "auth.email" -msgstr "Surel" - #: src/app/main/ui/auth/login.cljs msgid "auth.forgot-password" msgstr "Lupa kata sandi?" @@ -164,10 +159,6 @@ msgstr "Belum punya akun?" msgid "auth.register-submit" msgstr "Buat akun baru" -#: src/app/main/ui/auth/register.cljs -msgid "auth.register-subtitle" -msgstr "Gratis dan Sumber Terbuka" - #: src/app/main/ui/auth/register.cljs msgid "auth.register-title" msgstr "Buat akun baru" @@ -2428,10 +2419,6 @@ msgstr "2–10" msgid "questions.31-50" msgstr "31–50" -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.a-lot" -msgstr "Banyak" - #: src/app/main/ui/onboarding/questions.cljs msgid "questions.adobe-xd" msgstr "Adobe XD" @@ -2461,42 +2448,18 @@ msgstr "Jelajahi lebih lanjut tentang Penpot" msgid "questions.figma" msgstr "Figma" -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.founder" -msgstr "Pendiri/VP" - #: src/app/main/ui/onboarding/questions.cljs msgid "questions.freelancer" msgstr "Saya seorang pekerja lepas" -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.get-the-code-from-my-team-project" -msgstr "Dapatkan kode dari proyek tim saya " - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.interface-design-visual-assets-design-systems" -msgstr "... desain antarmuka, aset visual, sistem desain, dll." - #: src/app/main/ui/onboarding/questions.cljs msgid "questions.invision" msgstr "InVision" -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.leave-feedback-for-my-team-project" -msgstr "Tinggalkan masukan untuk proyek tim saya" - #: src/app/main/ui/onboarding/questions.cljs msgid "questions.lets-get-started" msgstr "Mari kita mulai!" -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.manager" -msgstr "Pengelola Produk atau Proyek" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.marketing" -msgstr "Pemasaran" - #: src/app/main/ui/onboarding/questions.cljs msgid "questions.more-than-50" msgstr "Lebih dari 50" @@ -2505,10 +2468,6 @@ msgstr "Lebih dari 50" msgid "questions.next" msgstr "Berikutnya" -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.none" -msgstr "Tidak ada" - #: src/app/main/ui/onboarding/questions.cljs msgid "questions.other" msgstr "Lainnya (jelaskan)" @@ -2521,14 +2480,6 @@ msgstr "Saya mengerjakan proyek pribadi" msgid "questions.previous" msgstr "Sebelumnya" -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.questions-how-are-you-planning-to-use-penpot" -msgstr "Apa rencana Anda menggunakan Penpot?" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.role" -msgstr "Apa peran Anda?" - #: src/app/main/ui/onboarding/questions.cljs msgid "questions.select-option" msgstr "Pilih opsi" @@ -2537,48 +2488,14 @@ msgstr "Pilih opsi" msgid "questions.sketch" msgstr "Sketch" -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.some" -msgstr "Beberapa" - #: src/app/main/ui/onboarding/questions.cljs msgid "questions.start" msgstr "Mulai" -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.start-to-work-on-my-project" -msgstr "Mulai bekerja pada proyek saya" - #: src/app/main/ui/onboarding/questions.cljs msgid "questions.student-teacher" msgstr "Siswa atau Guru" -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.team-size" -msgstr "Seberapa besar tim Anda?" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.test-penpot-to-see-if-its-a-fit-for-team" -msgstr "Coba Penpot untuk tim Anda " - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.try-out-before-using-penpot-on-premise" -msgstr "Coba sebelum menggunakan Penpot on-premise" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.wireframes-user-journeys-flows-navigation-trees" -msgstr "... gambar rangka, perjalanan & alur pengguna, pohon navigasi, dll." - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.work-in-concept-ideas" -msgstr "Bekerja dalam ide konsep" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.your-feedback-will-help-us" -msgstr "" -"Masukan Anda akan membantu kami mengerti kebiasaan dan preferensi Anda " -"supaya kami dapat membuat Penpot sebuah alat yang berguna dan nyaman." - #: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, msgid "settings.detach" msgstr "Copot" diff --git a/frontend/translations/it.po b/frontend/translations/it.po index 5982defb57..2297fbf5b2 100644 --- a/frontend/translations/it.po +++ b/frontend/translations/it.po @@ -39,11 +39,6 @@ msgstr "" "Questo è un servizio di prova, non utilizzare per il lavoro reale, i " "progetti verranno eliminati periodicamente." -#: src/app/main/ui/auth/register.cljs, -#: src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/auth/login.cljs -msgid "auth.email" -msgstr "Indirizzo e-mail" - #: src/app/main/ui/auth/login.cljs msgid "auth.forgot-password" msgstr "Hai dimenticato la password?" @@ -135,10 +130,6 @@ msgstr "Non hai ancora un account?" msgid "auth.register-submit" msgstr "Crea un account" -#: src/app/main/ui/auth/register.cljs -msgid "auth.register-subtitle" -msgstr "È gratuito, è Open Source" - #: src/app/main/ui/auth/register.cljs msgid "auth.register-title" msgstr "Crea un account" @@ -150,12 +141,6 @@ msgstr "La soluzione open source per il design e la prototipazione." msgid "auth.terms-of-service" msgstr "Condizioni di servizio" -#: src/app/main/ui/auth/register.cljs -msgid "auth.terms-privacy-agreement" -msgstr "" -"Creando un account, accetti le condizioni generali di servizio e " -"l'informativa sulla privacy." - #: src/app/main/ui/auth/register.cljs msgid "auth.verification-email-sent" msgstr "Abbiamo inviato l'e-mail di verifica a" diff --git a/frontend/translations/jpn_JP.po b/frontend/translations/jpn_JP.po index f4cc120877..676264bea3 100644 --- a/frontend/translations/jpn_JP.po +++ b/frontend/translations/jpn_JP.po @@ -35,10 +35,6 @@ msgstr "試してみませんか?" msgid "auth.demo-warning" msgstr "このサービスはデモ版です。実際の業務には使用しないでください。" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/auth/login.cljs -msgid "auth.email" -msgstr "Eメール" - #: src/app/main/ui/auth/login.cljs msgid "auth.forgot-password" msgstr "パスワードを忘れましたか?" @@ -134,10 +130,6 @@ msgstr "アカウントをお持ちでない方はこちら" msgid "auth.register-submit" msgstr "アカウントを作成" -#: src/app/main/ui/auth/register.cljs -msgid "auth.register-subtitle" -msgstr "フリーでオープンソースです" - #: src/app/main/ui/auth/register.cljs msgid "auth.register-title" msgstr "アカウントを作成" @@ -149,10 +141,6 @@ msgstr "デザインとプロトタイピングのためのオープンソース msgid "auth.terms-of-service" msgstr "利用規約" -#: src/app/main/ui/auth/register.cljs -msgid "auth.terms-privacy-agreement" -msgstr "サービスに登録するには、利用規約とプライバシーポリシーに同意する必要があります。" - #: src/app/main/ui/auth/register.cljs msgid "auth.verification-email-sent" msgstr "認証メールを送信しました" diff --git a/frontend/translations/ko.po b/frontend/translations/ko.po index ddb830dbc0..334c790202 100644 --- a/frontend/translations/ko.po +++ b/frontend/translations/ko.po @@ -27,10 +27,6 @@ msgstr "데모 계정을 생성하세요" msgid "auth.create-demo-profile" msgstr "그냥 해볼까요?" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/auth/login.cljs -msgid "auth.email" -msgstr "이메일" - #: src/app/main/ui/auth/login.cljs msgid "auth.forgot-password" msgstr "비밀번호를 잊어버리셨나요?" diff --git a/frontend/translations/lt.po b/frontend/translations/lt.po index 8ff0a9c75f..d28de2937e 100644 --- a/frontend/translations/lt.po +++ b/frontend/translations/lt.po @@ -41,10 +41,6 @@ msgstr "" "Tai yra DEMONSTRACINĖ versija, NEKURKITE tikrų darbų, nes projektai " "periodiškai - šalinami." -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/auth/login.cljs -msgid "auth.email" -msgstr "El. paštas" - #: src/app/main/ui/auth/login.cljs msgid "auth.forgot-password" msgstr "Pamiršote slaptažodį?" @@ -141,10 +137,6 @@ msgstr "Dar neturite paskyros?" msgid "auth.register-submit" msgstr "Sukurti paskyrą" -#: src/app/main/ui/auth/register.cljs -msgid "auth.register-subtitle" -msgstr "Tai - nemokama, tai - atviras kodas" - #: src/app/main/ui/auth/register.cljs msgid "auth.register-title" msgstr "Sukurti paskyrą" @@ -156,12 +148,6 @@ msgstr "Atviro kodo dizaino ir prototipų kūrimo sprendimas." msgid "auth.terms-of-service" msgstr "Paslaugų teikimo sąlygos" -#: src/app/main/ui/auth/register.cljs -msgid "auth.terms-privacy-agreement" -msgstr "" -"Kurdami naują paskyrą sutinkate su mūsų paslaugų teikimo sąlygomis ir " -"privatumo politika." - #: src/app/main/ui/auth/register.cljs msgid "auth.verification-email-sent" msgstr "Išsiuntėme patvirtinimo el. laišką adresu" diff --git a/frontend/translations/lv.po b/frontend/translations/lv.po index d7e53bfd66..ba94cdf734 100644 --- a/frontend/translations/lv.po +++ b/frontend/translations/lv.po @@ -40,11 +40,6 @@ msgstr "" "Šis ir IZRĀDĪŠANAS pakalpojums, kas NAV IZMANTOJAMS īstam darbam, jo " "projekti ik pēc noteikta laika posma tiks izdzēsti." -#: src/app/main/ui/auth/register.cljs, -#: src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/auth/login.cljs -msgid "auth.email" -msgstr "E-pasta adrese" - #: src/app/main/ui/auth/login.cljs msgid "auth.forgot-password" msgstr "Aizmirsta parole?" @@ -162,10 +157,6 @@ msgstr "Vēl nav konta?" msgid "auth.register-submit" msgstr "Izveidot kontu" -#: src/app/main/ui/auth/register.cljs -msgid "auth.register-subtitle" -msgstr "Tas ir bezmaksas, tā ir atvērtā pirmkoda programmatūra" - #: src/app/main/ui/auth/register.cljs msgid "auth.register-title" msgstr "Izveidot kontu" @@ -2485,10 +2476,6 @@ msgstr "2-10" msgid "questions.31-50" msgstr "31-50" -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.a-lot" -msgstr "Plaša" - #: src/app/main/ui/onboarding/questions.cljs msgid "questions.adobe-xd" msgstr "Adobe XD" @@ -2525,22 +2512,10 @@ msgstr "Dibinātājs/viceprezidents" msgid "questions.freelancer" msgstr "Esmu ārštātnieks(-ce)/Pašnodarbināts(-ā)" -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.get-the-code-from-my-team-project" -msgstr "Koda iegūšana no manas grupas projekta " - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.interface-design-visual-assets-design-systems" -msgstr "... saskarnes dizains, vizuālie līdzekļi, dizaina sistēmas utt." - #: src/app/main/ui/onboarding/questions.cljs msgid "questions.invision" msgstr "InVision" -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.leave-feedback-for-my-team-project" -msgstr "Atstāt atsauksmes par manas grupas projektu" - #: src/app/main/ui/onboarding/questions.cljs msgid "questions.lets-get-started" msgstr "Ķeramies pie darba!" @@ -2565,10 +2540,6 @@ msgstr "Neviens" msgid "questions.next" msgstr "Nākamais" -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.none" -msgstr "Nav" - #: src/app/main/ui/onboarding/questions.cljs msgid "questions.other" msgstr "Cits (jānorāda)" @@ -2597,10 +2568,6 @@ msgstr "Atlasīt iespēju" msgid "questions.sketch" msgstr "Sketch" -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.some" -msgstr "Nelielā" - #: src/app/main/ui/onboarding/questions.cljs msgid "questions.start" msgstr "Sākt" diff --git a/frontend/translations/ml.po b/frontend/translations/ml.po index ed5ca46890..c2e46d7369 100644 --- a/frontend/translations/ml.po +++ b/frontend/translations/ml.po @@ -39,10 +39,6 @@ msgstr "" "ഇതൊരു ഡെമോ സേവനമാണ്, ഒരു യഥാർത്ഥ ജോലിക്ക് ഉപയോഗിക്കരുത്, പ്രൊജക്റ്റുകൾ " "നിശ്ചിതസമയങ്ങളിൽ മായ്ക്കപ്പെടും." -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/auth/login.cljs -msgid "auth.email" -msgstr "ഇമെയിൽ" - #: src/app/main/ui/auth/login.cljs msgid "auth.forgot-password" msgstr "പാസ്‌വേഡ് മറന്നോ?" @@ -138,10 +134,6 @@ msgstr "ഇതുവരെ അക്കൗണ്ട് ഇല്ലേ?" msgid "auth.register-submit" msgstr "അക്കൗണ്ട് സൃഷ്ടിക്കുക" -#: src/app/main/ui/auth/register.cljs -msgid "auth.register-subtitle" -msgstr "ഇത് സൗജന്യമാണ്, ഇത് ഓപ്പൺ സോഴ്സാണ്" - #: src/app/main/ui/auth/register.cljs msgid "auth.register-title" msgstr "അക്കൗണ്ട് സൃഷ്ടിക്കുക" @@ -153,12 +145,6 @@ msgstr "ഡിസൈനിങിനും പ്രോട്ടോടൈപ് msgid "auth.terms-of-service" msgstr "ഉപയോഗനിബന്ധനകൾ" -#: src/app/main/ui/auth/register.cljs -msgid "auth.terms-privacy-agreement" -msgstr "" -"ഒരു അക്കൗണ്ട് സൃഷ്ടിക്കുമ്പോൾ, നിങ്ങൾ ഞങ്ങളുടെ ഉപയോഗനിബന്ധനകളും " -"സ്വകാര്യതാനയവും അംഗീകരിക്കുന്നു." - #: src/app/main/ui/auth/register.cljs msgid "auth.verification-email-sent" msgstr "സാധൂകരിക്കാനുള്ള ഇമെയിൽ ഞങ്ങൾ അയച്ചിരിക്കുന്നു" diff --git a/frontend/translations/ms.po b/frontend/translations/ms.po index 959ae1bfb7..7940af69c1 100644 --- a/frontend/translations/ms.po +++ b/frontend/translations/ms.po @@ -25,10 +25,6 @@ msgstr "" "Ini adalah perkhidmatan DEMO, JANGAN GUNAKAN untuk kerja sebenar, projek " "akan dipadam secara berkala." -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/auth/login.cljs -msgid "auth.email" -msgstr "E-mel" - #: src/app/main/ui/auth/login.cljs msgid "auth.forgot-password" msgstr "Lupa kata laluan?" diff --git a/frontend/translations/nb_NO.po b/frontend/translations/nb_NO.po index 33b0e4b1d1..990f3b2c1d 100644 --- a/frontend/translations/nb_NO.po +++ b/frontend/translations/nb_NO.po @@ -15,11 +15,6 @@ msgstr "" msgid "auth.confirm-password" msgstr "Bekreft passord" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/auth/login.cljs -#, fuzzy -msgid "auth.email" -msgstr "E-post" - #: src/app/main/ui/auth/login.cljs msgid "auth.forgot-password" msgstr "Glemt passordet?" diff --git a/frontend/translations/nl.po b/frontend/translations/nl.po index d117b484e7..c8e7a672e7 100644 --- a/frontend/translations/nl.po +++ b/frontend/translations/nl.po @@ -39,11 +39,6 @@ msgstr "" "Dit is een DEMO-service, GEBRUIK DIT NIET voor echt werk, de projecten " "worden regelmatig gewist." -#: src/app/main/ui/auth/register.cljs, -#: src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/auth/login.cljs -msgid "auth.email" -msgstr "E-mail" - #: src/app/main/ui/auth/login.cljs msgid "auth.forgot-password" msgstr "Wachtwoord vergeten?" @@ -173,10 +168,6 @@ msgstr "Nog geen account?" msgid "auth.register-submit" msgstr "Account aanmaken" -#: src/app/main/ui/auth/register.cljs -msgid "auth.register-subtitle" -msgstr "Het is gratis, het is open source" - #: src/app/main/ui/auth/register.cljs msgid "auth.register-title" msgstr "Account aanmaken" @@ -2503,10 +2494,6 @@ msgstr "2-10" msgid "questions.31-50" msgstr "31-50" -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.a-lot" -msgstr "Veel" - #: src/app/main/ui/onboarding/questions.cljs msgid "questions.adobe-xd" msgstr "Adobe XD" @@ -2515,62 +2502,22 @@ msgstr "Adobe XD" msgid "questions.canva" msgstr "Canva" -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.describe-your-experience-working-on" -msgstr "Hoe zou je je ervaring omschrijven voor het werken aan..." - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.designer" -msgstr "Ontwerper" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.developer" -msgstr "Ontwikkelaar" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.discover-more-about-penpot" -msgstr "Meer over Penpot ontdekken" - #: src/app/main/ui/onboarding/questions.cljs msgid "questions.figma" msgstr "Figma" -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.founder" -msgstr "Oprichter/VP" - #: src/app/main/ui/onboarding/questions.cljs msgid "questions.freelancer" msgstr "Ik ben een freelancer" -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.get-the-code-from-my-team-project" -msgstr "Haal de code op van mijn teamproject " - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.interface-design-visual-assets-design-systems" -msgstr "... interfaceontwerp, visuel assets, design systems, enz." - #: src/app/main/ui/onboarding/questions.cljs msgid "questions.invision" msgstr "InVision" -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.leave-feedback-for-my-team-project" -msgstr "Laat feedback achter voor mijn teamproject" - #: src/app/main/ui/onboarding/questions.cljs msgid "questions.lets-get-started" msgstr "Laten we beginnen!" -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.manager" -msgstr "Product- of projectmanager" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.marketing" -msgstr "Marketing" - #: src/app/main/ui/onboarding/questions.cljs msgid "questions.more-than-50" msgstr "Meer dan 50" @@ -2583,10 +2530,6 @@ msgstr "Geen" msgid "questions.next" msgstr "Volgende" -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.none" -msgstr "Geen" - #: src/app/main/ui/onboarding/questions.cljs msgid "questions.other" msgstr "Anders (namelijk…)" @@ -2599,14 +2542,6 @@ msgstr "Ik werk aan een persoonlijk project" msgid "questions.previous" msgstr "Vorige" -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.questions-how-are-you-planning-to-use-penpot" -msgstr "Hoe ben je van plan Penpot te gebruiken?" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.role" -msgstr "Wat is je rol?" - #: src/app/main/ui/onboarding/questions.cljs msgid "questions.select-option" msgstr "Selecteer een optie" @@ -2615,50 +2550,14 @@ msgstr "Selecteer een optie" msgid "questions.sketch" msgstr "Sketch" -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.some" -msgstr "Sommige" - #: src/app/main/ui/onboarding/questions.cljs msgid "questions.start" msgstr "Starten" -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.start-to-work-on-my-project" -msgstr "Begin aan mijn project te werken" - #: src/app/main/ui/onboarding/questions.cljs msgid "questions.student-teacher" msgstr "Student of docent" -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.team-size" -msgstr "Hoe groot is je team?" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.test-penpot-to-see-if-its-a-fit-for-team" -msgstr "Penpot testen om te zien of het geschikt is voor het team " - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.try-out-before-using-penpot-on-premise" -msgstr "Probeer uit voordat je Penpot on-premise gebruikt" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.wireframes-user-journeys-flows-navigation-trees" -msgstr "" -"… draadmodellen, gebruikers journeys en stroomdiagrammen, navigatiebomen, " -"etc." - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.work-in-concept-ideas" -msgstr "Werken in conceptideeën" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.your-feedback-will-help-us" -msgstr "" -"Jouw feedback helpt ons te begrijpen wat je gewoonten en voorkeuren zijn, " -"zodat we van Penpot een nuttig en plezierig hulpmiddel kunnen blijven maken." - #: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, msgid "settings.detach" msgstr "Ontkoppelen" diff --git a/frontend/translations/pl.po b/frontend/translations/pl.po index e7f53b5b64..579ae7ffab 100644 --- a/frontend/translations/pl.po +++ b/frontend/translations/pl.po @@ -40,10 +40,6 @@ msgstr "" "To jest usługa DEMO, NIE UŻYWAJ jej do prawdziwej pracy, projekty będą " "okresowo usuwane." -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/auth/login.cljs -msgid "auth.email" -msgstr "Email" - #: src/app/main/ui/auth/login.cljs msgid "auth.forgot-password" msgstr "Zapomniałeś hasła?" @@ -139,10 +135,6 @@ msgstr "Nie masz jeszcze konta?" msgid "auth.register-submit" msgstr "Utwórz konto" -#: src/app/main/ui/auth/register.cljs -msgid "auth.register-subtitle" -msgstr "To nic nie kosztuje, to Open Source" - #: src/app/main/ui/auth/register.cljs msgid "auth.register-title" msgstr "Utwórz konto" @@ -154,12 +146,6 @@ msgstr "Rozwiązanie typu Open Source do projektowania i prototypowania." msgid "auth.terms-of-service" msgstr "Warunki świadczenia usług" -#: src/app/main/ui/auth/register.cljs -msgid "auth.terms-privacy-agreement" -msgstr "" -"Tworząc nowe konto, zgadzasz się na nasze warunki świadczenia usług i " -"politykę prywatności." - #: src/app/main/ui/auth/register.cljs msgid "auth.verification-email-sent" msgstr "Wysłaliśmy email weryfikacyjny na adres" diff --git a/frontend/translations/pt_BR.po b/frontend/translations/pt_BR.po index 6543c151bc..363596bf09 100644 --- a/frontend/translations/pt_BR.po +++ b/frontend/translations/pt_BR.po @@ -39,10 +39,6 @@ msgstr "" "Este é um serviço DEMONSTRATIVO, NÃO USE para trabalho real, os projetos " "serão apagados periodicamente." -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/auth/login.cljs -msgid "auth.email" -msgstr "E-mail" - #: src/app/main/ui/auth/login.cljs msgid "auth.forgot-password" msgstr "Esqueceu sua senha?" @@ -138,10 +134,6 @@ msgstr "Ainda não tem uma conta?" msgid "auth.register-submit" msgstr "Criar uma conta" -#: src/app/main/ui/auth/register.cljs -msgid "auth.register-subtitle" -msgstr "É de graça, é de Código aberto" - #: src/app/main/ui/auth/register.cljs msgid "auth.register-title" msgstr "Criar uma conta" @@ -153,12 +145,6 @@ msgstr "A solução de código aberto para design e prototipação." msgid "auth.terms-of-service" msgstr "Termos de serviço" -#: src/app/main/ui/auth/register.cljs -msgid "auth.terms-privacy-agreement" -msgstr "" -"Ao criar uma nova conta, você concorda com nossos termos de serviço e " -"política de privacidade." - #: src/app/main/ui/auth/register.cljs msgid "auth.verification-email-sent" msgstr "Enviamos um e-mail de verificação para" diff --git a/frontend/translations/pt_PT.po b/frontend/translations/pt_PT.po index 355875bac9..e7cfda9baf 100644 --- a/frontend/translations/pt_PT.po +++ b/frontend/translations/pt_PT.po @@ -39,11 +39,6 @@ msgstr "" "Este é um serviço de DEMONSTRAÇÃO, NÃO UTILIZES para trabalhos reais. Os " "projetos serão eliminados periodicamente." -#: src/app/main/ui/auth/register.cljs, -#: src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/auth/login.cljs -msgid "auth.email" -msgstr "E-mail" - #: src/app/main/ui/auth/login.cljs msgid "auth.forgot-password" msgstr "Esqueceste a tua palavra-passe?" @@ -164,10 +159,6 @@ msgstr "Não tens conta?" msgid "auth.register-submit" msgstr "Criar conta" -#: src/app/main/ui/auth/register.cljs -msgid "auth.register-subtitle" -msgstr "É gratuito, é Open Source" - #: src/app/main/ui/auth/register.cljs msgid "auth.register-title" msgstr "Cria uma conta" @@ -2453,10 +2444,6 @@ msgstr "2-10" msgid "questions.31-50" msgstr "31-50" -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.a-lot" -msgstr "Muita" - #: src/app/main/ui/onboarding/questions.cljs msgid "questions.adobe-xd" msgstr "Adobe XD" @@ -2465,62 +2452,22 @@ msgstr "Adobe XD" msgid "questions.canva" msgstr "Canva" -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.describe-your-experience-working-on" -msgstr "Quanta experiência dirias que tens a trabalhar com..." - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.designer" -msgstr "Designer" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.developer" -msgstr "Desenvolvedor(a)" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.discover-more-about-penpot" -msgstr "Descobrir mais sobre o Penpot" - #: src/app/main/ui/onboarding/questions.cljs msgid "questions.figma" msgstr "Figma" -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.founder" -msgstr "Direção" - #: src/app/main/ui/onboarding/questions.cljs msgid "questions.freelancer" msgstr "Sou trabalhador(a) independente (freelancer)" -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.get-the-code-from-my-team-project" -msgstr "Obter código de um projeto " - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.interface-design-visual-assets-design-systems" -msgstr "... design de interfaces, recursos visuais, sistemas de design, etc." - #: src/app/main/ui/onboarding/questions.cljs msgid "questions.invision" msgstr "InVision" -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.leave-feedback-for-my-team-project" -msgstr "Deixar comentários num projeto" - #: src/app/main/ui/onboarding/questions.cljs msgid "questions.lets-get-started" msgstr "Vamos começar!" -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.manager" -msgstr "Gestor(a) de projeto ou de produto" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.marketing" -msgstr "Marketing" - #: src/app/main/ui/onboarding/questions.cljs msgid "questions.more-than-50" msgstr "Mais de 50" @@ -2529,10 +2476,6 @@ msgstr "Mais de 50" msgid "questions.next" msgstr "Seguinte" -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.none" -msgstr "Nenhuma" - #: src/app/main/ui/onboarding/questions.cljs msgid "questions.other" msgstr "Outra (especificar)" @@ -2545,14 +2488,6 @@ msgstr "Estou a trabalhar num projeto pessoal" msgid "questions.previous" msgstr "Anterior" -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.questions-how-are-you-planning-to-use-penpot" -msgstr "Com que objetivo pensas usar o Penpot?" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.role" -msgstr "Qual é o teu cargo?" - #: src/app/main/ui/onboarding/questions.cljs msgid "questions.select-option" msgstr "Escolhe uma opção" @@ -2561,18 +2496,10 @@ msgstr "Escolhe uma opção" msgid "questions.sketch" msgstr "Sketch" -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.some" -msgstr "Alguma" - #: src/app/main/ui/onboarding/questions.cljs msgid "questions.start" msgstr "Começar" -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.start-to-work-on-my-project" -msgstr "Começar a trabalhar no meu projeto" - #: src/app/main/ui/onboarding/questions.cljs msgid "questions.student-teacher" msgstr "Estudante ou professor(a)" @@ -5316,3 +5243,4 @@ msgstr "Filtrar" #~ msgid "workspace.options.layout.direction.left" #~ msgstr "Linha" + diff --git a/frontend/translations/ro.po b/frontend/translations/ro.po index 15b62c4cc8..7634386e0b 100644 --- a/frontend/translations/ro.po +++ b/frontend/translations/ro.po @@ -40,11 +40,6 @@ msgstr "" "Acesta este un DEMO, NU UTILIZAȚI pentru lucrări reale, întrucât proiectele " "vor fi șterse periodic." -#: src/app/main/ui/auth/register.cljs, -#: src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/auth/login.cljs -msgid "auth.email" -msgstr "Adresă E-mail" - #: src/app/main/ui/auth/login.cljs msgid "auth.forgot-password" msgstr "Ai uitat parola?" @@ -154,10 +149,6 @@ msgstr "Nu aveți încă un cont?" msgid "auth.register-submit" msgstr "Creează un cont" -#: src/app/main/ui/auth/register.cljs -msgid "auth.register-subtitle" -msgstr "Este gratuit, este Open Source" - #: src/app/main/ui/auth/register.cljs msgid "auth.register-title" msgstr "Creează un cont" @@ -169,12 +160,6 @@ msgstr "Soluția open-source pentru proiectare design și prototipare." msgid "auth.terms-of-service" msgstr "Termenii serviciului" -#: src/app/main/ui/auth/register.cljs -msgid "auth.terms-privacy-agreement" -msgstr "" -"Atunci când creați un cont nou, sunteți de acord cu termenii noștri de " -"servicii și politica de confidențialitate." - #: src/app/main/ui/auth/register.cljs msgid "auth.verification-email-sent" msgstr "Am trimis un email de verificare la" @@ -2364,10 +2349,6 @@ msgstr "2-10" msgid "questions.31-50" msgstr "31-50" -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.a-lot" -msgstr "Multe" - #: src/app/main/ui/onboarding/questions.cljs msgid "questions.adobe-xd" msgstr "Adobe XD" @@ -2376,62 +2357,22 @@ msgstr "Adobe XD" msgid "questions.canva" msgstr "Canva" -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.describe-your-experience-working-on" -msgstr "Cum ați descrie cel mai bine experiența dvs. lucrând pe..." - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.designer" -msgstr "Designer" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.developer" -msgstr "Dezvoltator" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.discover-more-about-penpot" -msgstr "Descoperiți mai multe despre Penpot" - #: src/app/main/ui/onboarding/questions.cljs msgid "questions.figma" msgstr "Figma" -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.founder" -msgstr "Fondator/VP" - #: src/app/main/ui/onboarding/questions.cljs msgid "questions.freelancer" msgstr "Sunt un freelancer" -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.get-the-code-from-my-team-project" -msgstr "Obțineți codul de la proiectul echipei mele " - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.interface-design-visual-assets-design-systems" -msgstr "... design interfețe, obiecte vizuale, sisteme de design, etc." - #: src/app/main/ui/onboarding/questions.cljs msgid "questions.invision" msgstr "InVision" -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.leave-feedback-for-my-team-project" -msgstr "Lăsați feedback pentru proiectul echipei mele" - #: src/app/main/ui/onboarding/questions.cljs msgid "questions.lets-get-started" msgstr "Să începem!" -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.manager" -msgstr "Manager de produs sau proiect" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.marketing" -msgstr "Marketing" - #: src/app/main/ui/onboarding/questions.cljs msgid "questions.more-than-50" msgstr "Mai mult de 50" @@ -2440,10 +2381,6 @@ msgstr "Mai mult de 50" msgid "questions.next" msgstr "Următor" -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.none" -msgstr "Niciuna" - #: src/app/main/ui/onboarding/questions.cljs msgid "questions.other" msgstr "Alta (specificați)" @@ -2456,14 +2393,6 @@ msgstr "Lucrez la un proiect personal" msgid "questions.previous" msgstr "Anterior" -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.questions-how-are-you-planning-to-use-penpot" -msgstr "Cum planificați să folosiți Penpot?" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.role" -msgstr "Care este rolul dvs?" - #: src/app/main/ui/onboarding/questions.cljs msgid "questions.select-option" msgstr "Selectați opțiune" @@ -2472,51 +2401,14 @@ msgstr "Selectați opțiune" msgid "questions.sketch" msgstr "Sketch" -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.some" -msgstr "Câteva" - #: src/app/main/ui/onboarding/questions.cljs msgid "questions.start" msgstr "Începeți" -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.start-to-work-on-my-project" -msgstr "Începeți să lucrați în proiectul meu" - #: src/app/main/ui/onboarding/questions.cljs msgid "questions.student-teacher" msgstr "Student sau profesor" -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.team-size" -msgstr "Care este mărimea echipei dvs?" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.test-penpot-to-see-if-its-a-fit-for-team" -msgstr "Testați Penpot pentru a vedea dacă se potrivește echipei " - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.try-out-before-using-penpot-on-premise" -msgstr "Probați înainte de a folosi Penpot la fața locului" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.wireframes-user-journeys-flows-navigation-trees" -msgstr "" -"... prototipuri, călătorii ale utilizatorilor & fluxuri, arbori de " -"navigație, etc." - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.work-in-concept-ideas" -msgstr "Lucrați în conceptualizarea ideilor" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.your-feedback-will-help-us" -msgstr "" -"Feedback-ul dvs. ne va ajuta să înțelegem care sunt obiceiurile și " -"preferințele dvs. pentru a putea continua să facem Penpot o unealtă " -"folositoare și plăcută." - #: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, msgid "settings.detach" msgstr "Detașați" diff --git a/frontend/translations/ru.po b/frontend/translations/ru.po index b94cacc047..55e96714ef 100644 --- a/frontend/translations/ru.po +++ b/frontend/translations/ru.po @@ -37,11 +37,6 @@ msgstr "" "Это ДЕМОНСТРАЦИЯ, НЕ ИСПОЛЬЗУЙТЕ для работы, проекты будут периодически " "удаляться." -#: src/app/main/ui/auth/register.cljs, -#: src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/auth/login.cljs -msgid "auth.email" -msgstr "Эл. почта" - #: src/app/main/ui/auth/login.cljs msgid "auth.forgot-password" msgstr "Забыли пароль?" @@ -137,10 +132,6 @@ msgstr "Еще нет аккаунта?" msgid "auth.register-submit" msgstr "Создать аккаунт" -#: src/app/main/ui/auth/register.cljs -msgid "auth.register-subtitle" -msgstr "Это бесплатно, это Open Source" - #: src/app/main/ui/auth/register.cljs msgid "auth.register-title" msgstr "Создать аккаунт" @@ -152,12 +143,6 @@ msgstr "Open Source решение для дизайна и прототипир msgid "auth.terms-of-service" msgstr "Условия использования" -#: src/app/main/ui/auth/register.cljs -msgid "auth.terms-privacy-agreement" -msgstr "" -"Создавая новый аккаунт, вы соглашаетесь с нашими условиями использования и " -"политикой конфиденциальности." - #: src/app/main/ui/auth/register.cljs msgid "auth.verification-email-sent" msgstr "Мы отправили эл. письмо с подтверждением на" diff --git a/frontend/translations/ta.po b/frontend/translations/ta.po index 088fe82174..6fd194df21 100644 --- a/frontend/translations/ta.po +++ b/frontend/translations/ta.po @@ -39,10 +39,6 @@ msgstr "" "இது ஒரு டெமோ சேவை, உண்மையான வேலைக்கு பயன்படுத்த வேண்டாம், திட்டங்கள் " "அவ்வப்போது அழிக்கப்படும்." -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/auth/login.cljs -msgid "auth.email" -msgstr "மின்னஞ்சல்" - #: src/app/main/ui/auth/login.cljs msgid "auth.forgot-password" msgstr "கடவுச்சொல்லை மறந்துவிட்டீர்களா?" @@ -140,10 +136,6 @@ msgstr "இன்னும் கணக்கு இல்லையா?" msgid "auth.register-submit" msgstr "ஒரு கணக்கை உருவாக்கவும்" -#: src/app/main/ui/auth/register.cljs -msgid "auth.register-subtitle" -msgstr "இது இலவசம், இது திறந்த மூலமானது" - #: src/app/main/ui/auth/register.cljs msgid "auth.register-title" msgstr "ஒரு கணக்கை உருவாக்கவும்" @@ -155,12 +147,6 @@ msgstr "வடிவமைப்பு மற்றும் முன்மா msgid "auth.terms-of-service" msgstr "சேவை விதிமுறைகள்" -#: src/app/main/ui/auth/register.cljs -msgid "auth.terms-privacy-agreement" -msgstr "" -"புதிய கணக்கை உருவாக்கும் போது, எங்கள் சேவை விதிமுறைகள் மற்றும் தனியுரிமைக் " -"கொள்கையை ஏற்கிறீர்கள்." - #: src/app/main/ui/auth/register.cljs msgid "auth.verification-email-sent" msgstr "சரிபார்ப்பு மின்னஞ்சலை அனுப்பியுள்ளோம் இந்த முகவரிக்கு" diff --git a/frontend/translations/tr.po b/frontend/translations/tr.po index 1e22290d94..db7b21a4e6 100644 --- a/frontend/translations/tr.po +++ b/frontend/translations/tr.po @@ -39,11 +39,6 @@ msgstr "" "Bu bir DEMO hizmettir, gerçek işleriniz için KULLANMAYIN, projeler belirli " "aralıklarla silinecektir." -#: src/app/main/ui/auth/register.cljs, -#: src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/auth/login.cljs -msgid "auth.email" -msgstr "E-posta" - #: src/app/main/ui/auth/login.cljs msgid "auth.forgot-password" msgstr "Parolanı mı unuttun?" @@ -161,10 +156,6 @@ msgstr "Henüz hesabın yok mu?" msgid "auth.register-submit" msgstr "Bir hesap oluştur" -#: src/app/main/ui/auth/register.cljs -msgid "auth.register-subtitle" -msgstr "Ücretsiz ve Açık Kaynak" - #: src/app/main/ui/auth/register.cljs msgid "auth.register-title" msgstr "Bir hesap oluştur" diff --git a/frontend/translations/ukr_UA.po b/frontend/translations/ukr_UA.po index 7840000e3b..8a5ceb2438 100644 --- a/frontend/translations/ukr_UA.po +++ b/frontend/translations/ukr_UA.po @@ -16,10 +16,6 @@ msgstr "" msgid "auth.already-have-account" msgstr "Уже маєте аккаунт?" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/auth/login.cljs -msgid "auth.email" -msgstr "Електронна пошта" - #: src/app/main/ui/auth/login.cljs msgid "auth.forgot-password" msgstr "Забули пароль?" diff --git a/frontend/translations/zh_CN.po b/frontend/translations/zh_CN.po index 358d4f48a1..d80c1c448e 100644 --- a/frontend/translations/zh_CN.po +++ b/frontend/translations/zh_CN.po @@ -35,11 +35,6 @@ msgstr "只是想试试?" msgid "auth.demo-warning" msgstr "这是一个演示服务,请【不要】用于真实工作,这些项目将被周期性地抹除。" -#: src/app/main/ui/auth/register.cljs, -#: src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/auth/login.cljs -msgid "auth.email" -msgstr "电子邮件" - #: src/app/main/ui/auth/login.cljs msgid "auth.forgot-password" msgstr "忘记密码?" @@ -159,10 +154,6 @@ msgstr "现在还没有账号?" msgid "auth.register-submit" msgstr "创建账号" -#: src/app/main/ui/auth/register.cljs -msgid "auth.register-subtitle" -msgstr "免费且开源" - #: src/app/main/ui/auth/register.cljs msgid "auth.register-title" msgstr "创建账号" diff --git a/frontend/translations/zh_Hant.po b/frontend/translations/zh_Hant.po index 306c8213fc..fd26b5fa3f 100644 --- a/frontend/translations/zh_Hant.po +++ b/frontend/translations/zh_Hant.po @@ -35,10 +35,6 @@ msgstr "只是想試試看嗎?" msgid "auth.demo-warning" msgstr "此服務僅用於展示,請勿用於實際工作。專案內容將被定期清除。" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/auth/login.cljs -msgid "auth.email" -msgstr "電子郵件" - #: src/app/main/ui/auth/login.cljs msgid "auth.forgot-password" msgstr "忘記密碼?" @@ -134,10 +130,6 @@ msgstr "還沒有帳號嗎?" msgid "auth.register-submit" msgstr "建立帳號" -#: src/app/main/ui/auth/register.cljs -msgid "auth.register-subtitle" -msgstr "它是免費的,它是開源的" - #: src/app/main/ui/auth/register.cljs msgid "auth.register-title" msgstr "建立帳號" @@ -149,10 +141,6 @@ msgstr "設計與原型製作的開源解決方案。" msgid "auth.terms-of-service" msgstr "服務條款" -#: src/app/main/ui/auth/register.cljs -msgid "auth.terms-privacy-agreement" -msgstr "建立新帳號即表示您同意我們的服務條款及隱私權政策。" - #: src/app/main/ui/auth/register.cljs msgid "auth.verification-email-sent" msgstr "我們會寄送一封驗證郵件至" From 2629fa06629a6a24edcd6203fd8464cd0784ff4f Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Fri, 7 Jun 2024 13:43:59 +0200 Subject: [PATCH 087/476] :sparkles: Improve state management on onboarding questions modal --- .../src/app/main/ui/onboarding/questions.cljs | 459 +++++++++++------- frontend/translations/en.po | 10 +- frontend/translations/es.po | 10 +- 3 files changed, 287 insertions(+), 192 deletions(-) diff --git a/frontend/src/app/main/ui/onboarding/questions.cljs b/frontend/src/app/main/ui/onboarding/questions.cljs index 1a55cb5446..8889390977 100644 --- a/frontend/src/app/main/ui/onboarding/questions.cljs +++ b/frontend/src/app/main/ui/onboarding/questions.cljs @@ -11,7 +11,7 @@ [app.common.data :as d] [app.common.data.macros :as dm] [app.config :as cf] - [app.main.data.modal :as modal] + [app.main.data.events :as-alias ev] [app.main.data.users :as du] [app.main.store :as st] [app.main.ui.components.forms :as fm] @@ -19,71 +19,101 @@ [app.util.i18n :as i18n :refer [tr]] [cljs.spec.alpha :as s] [cuerdas.core :as str] + [potok.v2.core :as ptk] [rumext.v2 :as mf])) (mf/defc step-container - [{:keys [form step on-next on-prev children class] :as props}] + {::mf/props :obj} + [{:keys [form step on-next on-prev children class label]}] - [:& fm/form {:form form :on-submit on-next :class (dm/str class " " (stl/css :form-wrapper))} - [:div {:class (stl/css :paginator)} (str/ffmt "%/5" step)] + (let [on-next* + (mf/use-fn + (mf/deps on-next step label) + (fn [form event] + (let [params (-> (:clean-data @form) + (assoc :label label) + (assoc :step step) + (assoc ::ev/name "onboarding-step"))] + (st/emit! (ptk/data-event ::ev/event params)) + (on-next form event))))] - children + [:& fm/form {:form form + :on-submit on-next* + :class (dm/str class " " (stl/css :form-wrapper))} + [:div {:class (stl/css :paginator)} (str/ffmt "%/5" step)] - [:div {:class (stl/css :action-buttons)} + children - (when on-prev - [:button {:class (stl/css :prev-button) - :on-click on-prev} (tr "questions.previous")]) + [:div {:class (stl/css :action-buttons)} - [:> fm/submit-button* - {:label (if (< step 5) (tr "questions.next") (tr "questions.start")) - :class (stl/css :next-button)}]]]) + (when (some? on-prev) + [:button {:class (stl/css :prev-button) + :on-click on-prev} + (tr "questions.previous")]) + + [:> fm/submit-button* + {:label (if (< step 5) + (tr "questions.next") + (tr "questions.start")) + :class (stl/css :next-button)}]]])) (s/def ::questions-form-step-1 (s/keys :req-un [::planning - ::penpot-use] + ::expected-use] :opt-un [::planning-other])) (defn- step-1-form-validator [errors data] - (let [planning (-> (:planning data) (str/trim)) - planning-other (-> (:planning-other data) str/trim)] - + (let [planning (:planning data) + planning-other (:planning-other data)] (cond-> errors - (and (= planning-other "other") (= 0 (count planning-other))) + (and (= planning "other") + (str/blank? planning-other)) (assoc :planning-other {:code "missing"}) - (= planning "") + (not= planning "other") + (assoc :planning-other nil) + + (str/blank? planning) (assoc :planning {:code "missing"})))) (mf/defc step-1 - [{:keys [on-next form] :as props}] - (let [use-ops-randomized (mf/with-memo [] (shuffle [{:label (tr "questions.use-work") :value "use-work"} - {:label (tr "questions.use-education") :value "use-education"} - {:label (tr "questions.use-personal") :value "use-personal"}])) + {::mf/props :obj} + [{:keys [on-next form]}] + (let [use-options + (mf/with-memo [] + (shuffle [{:label (tr "questions.use-work") :value "use-work"} + {:label (tr "questions.use-education") :value "use-education"} + {:label (tr "questions.use-personal") :value "use-personal"}])) - planning-ops (mf/with-memo [] (shuffle [{:label (tr "questions.select-option") - :value "" :key "questions-what-brings-you-here" - :disabled true} - {:label (tr "questions.reasons.exploring") - :value "discover-more-about-penpot" - :key "discover-more-about-penpot"} - {:label (tr "questions.reasons.fit") - :value "test-penpot-to-see-if-its-a-fit-for-team" - :key "test-penpot-to-see-if-its-a-fit-for-team"} - {:label (tr "questions.reasons.alternative") - :value "alternative-to-figma" - :key "alternative-to-figma"} - {:label (tr "questions.reasons.testing") - :value "try-out-before-using-penpot-on-premise" - :key "try-out-before-using-penpot-on-premise"}])) + planning-options + (mf/with-memo [] + (-> (shuffle [{:label (tr "questions.select-option") + :value "" :key "questions:what-brings-you-here" + :disabled true} + {:label (tr "questions.reasons.exploring") + :value "discover-more-about-penpot" + :key "discover-more-about-penpot"} + {:label (tr "questions.reasons.fit") + :value "test-penpot-to-see-if-its-a-fit-for-team" + :key "test-penpot-to-see-if-its-a-fit-for-team"} + {:label (tr "questions.reasons.alternative") + :value "alternative-to-figma" + :key "alternative-to-figma"} + {:label (tr "questions.reasons.testing") + :value "try-out-before-using-penpot-on-premise" + :key "try-out-before-using-penpot-on-premise"}]) + (conj {:label (tr "questions.other-short") :value "other"}))) - planning-ops-randomized (conj planning-ops {:label (tr "questions.other-short") :value "other"}) + current-planning + (dm/get-in @form [:data :planning])] - planning (dm/get-in @form [:data :planning])] + [:& step-container {:form form + :step 1 + :label "questions:about-you" + :on-next on-next + :class (stl/css :step-1)} - - [:& step-container {:form form :step 1 :on-next on-next :class (stl/css :step-1)} [:img {:class (stl/css :header-image) :src "images/form/use-for-1.png" :alt (tr "questions.lets-get-started")}] @@ -93,19 +123,24 @@ (tr "questions.step1-subtitle")] [:div {:class (stl/css :modal-question)} - [:h3 {:class (stl/css :modal-subtitle)} (tr "questions.step1-question1")] - [:& fm/radio-buttons {:options use-ops-randomized - :name :penpot-use + [:h3 {:class (stl/css :modal-subtitle)} + (tr "questions.step1-question1")] + + [:& fm/radio-buttons {:options use-options + :name :expected-use :class (stl/css :radio-btns)}] - [:h3 {:class (stl/css :modal-subtitle)} (tr "questions.step1-question2")] + + [:h3 {:class (stl/css :modal-subtitle)} + (tr "questions.step1-question2")] + [:& fm/select - {:options planning-ops-randomized + {:options planning-options :select-class (stl/css :select-class) :default "" :name :planning :dropdown-class (stl/css :question-dropdown)}] - (when (= planning "other") + (when (= current-planning "other") [:& fm/input {:name :planning-other :class (stl/css :input-spacing) :placeholder (tr "questions.other") @@ -117,36 +152,56 @@ (defn- step-2-form-validator [errors data] - (let [experience-design-tool (:experience-design-tool data) - experience-design-tool-other (-> (:experience-design-tool-other data) str/trim)] + (let [experience (:experience-design-tool data) + experience-other (:experience-design-tool-other data)] + (cond-> errors - (and (= experience-design-tool "other") (= 0 (count experience-design-tool-other))) - (assoc :experience-design-tool-other {:code "missing"})))) + (and (= experience "other") + (str/blank? experience-other)) + (assoc :experience-design-tool-other {:code "missing"}) + + (not= experience "other") + (assoc :experience-design-tool-other nil)))) (mf/defc step-2 - [{:keys [on-next on-prev form] :as props}] - (let [design-tool-options (mf/with-memo [] (shuffle [{:label (tr "questions.figma") :img-width "48px" :img-height "60px" :value "figma" :image "images/form/figma.png"} - {:label (tr "questions.sketch") :img-width "48px" :img-height "60px" :value "sketch" :image "images/form/sketch.png"} - {:label (tr "questions.adobe-xd") :img-width "48px" :img-height "60px" :value "adobe-xd" :image "images/form/adobe-xd.png"} - {:label (tr "questions.canva") :img-width "48px" :img-height "60px" :value "canva" :image "images/form/canva.png"} - {:label (tr "questions.invision") :img-width "48px" :img-height "60px" :value "invision" :image "images/form/invision.png"}])) + {::mf/props :obj} + [{:keys [on-next on-prev form]}] + (let [design-tool-options + (mf/with-memo [] + (-> (shuffle [{:label (tr "questions.figma") :img-width "48px" :img-height "60px" + :value "figma" :image "images/form/figma.png"} + {:label (tr "questions.sketch") :img-width "48px" :img-height "60px" + :value "sketch" :image "images/form/sketch.png"} + {:label (tr "questions.adobe-xd") :img-width "48px" :img-height "60px" + :value "adobe-xd" :image "images/form/adobe-xd.png"} + {:label (tr "questions.canva") :img-width "48px" :img-height "60px" + :value "canva" :image "images/form/canva.png"} + {:label (tr "questions.invision") :img-width "48px" :img-height "60px" + :value "invision" :image "images/form/invision.png"}]) + (conj {:label (tr "questions.other-short") :value "other" :icon i/curve}))) - design-tool-options-randomized (conj design-tool-options {:label (tr "questions.other-short") :value "other" :icon i/curve}) + current-experience + (dm/get-in @form [:clean-data :experience-design-tool]) - experience-design-tool (dm/get-in @form [:clean-data :experience-design-tool]) on-design-tool-change - (fn [_ _] - (let [experience-design-tool (dm/get-in @form [:clean-data :experience-design-tool])] - (when (not= experience-design-tool "other") - (do - (swap! form d/dissoc-in [:data :experience-design-tool-other]) - (swap! form d/dissoc-in [:errors :experience-design-tool-other])))))] + (mf/use-fn + (mf/deps current-experience) + (fn [] + (when (not= current-experience "other") + (swap! form d/dissoc-in [:data :experience-design-tool-other]) + (swap! form d/dissoc-in [:errors :experience-design-tool-other]))))] + + [:& step-container {:form form + :step 2 + :label "questions:experience-design-tool" + :on-next on-next + :on-prev on-prev + :class (stl/css :step-2)} - [:& step-container {:form form :step 2 :on-next on-next :on-prev on-prev :class (stl/css :step-2)} [:h1 {:class (stl/css :modal-title)} (tr "question.design-tool-more-used")] [:div {:class (stl/css :radio-wrapper)} - [:& fm/image-radio-buttons {:options design-tool-options-randomized + [:& fm/image-radio-buttons {:options design-tool-options :img-width "48px" :img-height "60px" :name :experience-design-tool @@ -154,7 +209,7 @@ :class (stl/css :image-radio) :on-change on-design-tool-change}] - (when (= experience-design-tool "other") + (when (= current-experience "other") [:& fm/input {:name :experience-design-tool-other :class (stl/css :input-spacing) :placeholder (tr "questions.other") @@ -166,54 +221,84 @@ (defn- step-3-form-validator [errors data] - (let [role (:role data) - role-other (-> (:role-other data) str/trim) + (let [role (:role data) + role-other (:role-other data) + responsability (:responsability data) + responsability-other (:responsability-other data)] - responsability (:responsability data) - responsability-other (-> (:responsability-other data) str/trim)] (cond-> errors - (and (= role "other") (= 0 (count role-other))) + (and (= role "other") + (str/blank? role-other)) (assoc :role-other {:code "missing"}) - (and (= responsability "other") (= 0 (count responsability-other))) - (assoc :responsability-other {:code "missing"})))) + (not= role "other") + (assoc :role-other nil) + + (and (= responsability "other") + (str/blank? responsability-other)) + (assoc :responsability-other {:code "missing"}) + + (not= responsability "other") + (assoc :responsability-other nil)))) (mf/defc step-3 - [{:keys [on-next on-prev form] :as props}] - (let [role-ops (mf/with-memo [] (shuffle [{:label (tr "questions.select-option") :value "" :key "role" :disabled true} - {:label (tr "questions.work-type.ux") :value "designer" :key "designer"} - {:label (tr "questions.work-type.dev") :value "developer" :key "developer"} - {:label (tr "questions.work-type.student") :value "student-teacher" :key "student"} - {:label (tr "questions.work-type.graphic") :value "graphic-design" :key "design"} - {:label (tr "questions.work-type.marketing") :value "marketing" :key "marketing"} - {:label (tr "questions.work-type.product") :value "manager" :key "manager"}])) - role-ops-randomized (conj role-ops {:label (tr "questions.other-short") :value "other"}) + {::mf/props :obj} + [{:keys [on-next on-prev form]}] + (let [role-options + (mf/with-memo [] + (-> (shuffle [{:label (tr "questions.select-option") :value "" :key "role" :disabled true} + {:label (tr "questions.work-type.ux") :value "designer" :key "designer"} + {:label (tr "questions.work-type.dev") :value "developer" :key "developer"} + {:label (tr "questions.work-type.student") :value "student-teacher" :key "student"} + {:label (tr "questions.work-type.graphic") :value "graphic-design" :key "design"} + {:label (tr "questions.work-type.marketing") :value "marketing" :key "marketing"} + {:label (tr "questions.work-type.product") :value "manager" :key "manager"}]) + (conj {:label (tr "questions.other-short") :value "other"}))) - responsability-options (mf/with-memo [] (shuffle [{:label (tr "questions.select-option") :value "" :key "responsability" :disabled true} - {:label (tr "questions.role.team-leader") :value "team-leader"} - {:label (tr "questions.role.team-member") :value "team-member"} - {:label (tr "questions.role.freelancer") :value "freelancer"} - {:label (tr "questions.role.founder") :value "ceo-founder"} - {:label (tr "questions.role.director") :value "director"} - {:label (tr "questions.student-teacher") :value "student-teacher"}])) - - responsability-options-randomized (conj responsability-options {:label (tr "questions.other-short") :value "other"}) + responsability-options + (mf/with-memo [] + (-> (shuffle [{:label (tr "questions.select-option") :value "" :key "responsability" :disabled true} + {:label (tr "questions.role.team-leader") :value "team-leader"} + {:label (tr "questions.role.team-member") :value "team-member"} + {:label (tr "questions.role.freelancer") :value "freelancer"} + {:label (tr "questions.role.founder") :value "ceo-founder"} + {:label (tr "questions.role.director") :value "director"} + {:label (tr "questions.student-teacher") :value "student-teacher"}]) + (conj {:label (tr "questions.other-short") :value "other"}))) - role (dm/get-in @form [:data :role]) + team-size-options + (mf/with-memo [] + [{:label (tr "questions.select-option") :value "" :key "team-size" :disabled true} + {:label (tr "questions.more-than-50") :value "more-than-50" :key "more-than-50"} + {:label (tr "questions.31-50") :value "31-50" :key "31-50"} + {:label (tr "questions.11-30") :value "11-30" :key "11-30"} + {:label (tr "questions.2-10") :value "2-10" :key "2-10"} + {:label (tr "questions.freelancer") :value "freelancer" :key "freelancer"} + {:label (tr "questions.personal-project") :value "personal-project" :key "personal-project"}]) - responsability (dm/get-in @form [:data :responsability])] + current-role + (dm/get-in @form [:data :role]) + + current-responsability + (dm/get-in @form [:data :responsability])] + + [:& step-container {:form form + :step 3 + :label "questions:about-your-job" + :on-next on-next + :on-prev on-prev + :class (stl/css :step-3)} - [:& step-container {:form form :step 3 :on-next on-next :on-prev on-prev :class (stl/css :step-3)} [:h1 {:class (stl/css :modal-title)} (tr "questions.step3-title")] [:div {:class (stl/css :modal-question)} [:h3 {:class (stl/css :modal-subtitle)} (tr "questions.step3.question1")] - [:& fm/select {:options role-ops-randomized + [:& fm/select {:options role-options :select-class (stl/css :select-class) :default "" :name :role}] - (when (= role "other") + (when (= current-role "other") [:& fm/input {:name :role-other :class (stl/css :input-spacing) :placeholder (tr "questions.other") @@ -221,12 +306,12 @@ [:div {:class (stl/css :modal-question)} [:h3 {:class (stl/css :modal-subtitle)} (tr "questions.step3.question2")] - [:& fm/select {:options responsability-options-randomized + [:& fm/select {:options responsability-options :select-class (stl/css :select-class) :default "" :name :responsability}] - (when (= responsability "other") + (when (= current-responsability "other") [:& fm/input {:name :responsability-other :class (stl/css :input-spacing) :placeholder (tr "questions.other") @@ -234,114 +319,130 @@ [:div {:class (stl/css :modal-question)} [:h3 {:class (stl/css :modal-subtitle)} (tr "questions.company-size")] - [:& fm/select {:options [{:label (tr "questions.select-option") :value "" :key "team-size" :disabled true} - {:label (tr "questions.more-than-50") :value "more-than-50" :key "more-than-50"} - {:label (tr "questions.31-50") :value "31-50" :key "31-50"} - {:label (tr "questions.11-30") :value "11-30" :key "11-30"} - {:label (tr "questions.2-10") :value "2-10" :key "2-10"} - {:label (tr "questions.freelancer") :value "freelancer" :key "freelancer"} - {:label (tr "questions.personal-project") :value "personal-project" :key "personal-project"}] + [:& fm/select {:options team-size-options :default "" :select-class (stl/css :select-class) :name :team-size}]]])) (s/def ::questions-form-step-4 - (s/keys :req-un [::start] - :opt-un [::start-other])) + (s/keys :req-un [::start-with] + :opt-un [::start-with-other])) (defn- step-4-form-validator [errors data] - (let [start (:start data) - start-other (-> (:start-other data) str/trim)] + (let [start (:start-with data) + start-other (:start-with-other data)] (cond-> errors - (and (= start "other") (= 0 (count start-other))) - (assoc :start-other {:code "missing"})))) + (and (= start "other") + (str/blank? start-other)) + (assoc :start-with-other {:code "missing"}) + + (not= start "other") + (assoc :start-with-other nil)))) (mf/defc step-4 - [{:keys [on-next on-prev form] :as props}] - (let [start-options (mf/with-memo [] (shuffle [{:label (tr "questions.starting-ui") :value "ui" :image "images/form/Design.png"} - {:label (tr "questions.starting-wireframing") :value "wireframing" :image "images/form/templates.png"} - {:label (tr "questions.starting-prototyping") :value "prototyping" :image "images/form/Prototype.png"} - {:label (tr "questions.starting-ds") :value "ds" :image "images/form/components.png"} - {:label (tr "questions.starting-code") :value "code" :image "images/form/design-and-dev.png"}])) + {::mf/props :obj} + [{:keys [on-next on-prev form]}] + (let [start-options + (mf/with-memo [] + (-> (shuffle [{:label (tr "questions.starting-ui") :value "ui" :image "images/form/Design.png"} + {:label (tr "questions.starting-wireframing") :value "wireframing" :image "images/form/templates.png"} + {:label (tr "questions.starting-prototyping") :value "prototyping" :image "images/form/Prototype.png"} + {:label (tr "questions.starting-ds") :value "ds" :image "images/form/components.png"} + {:label (tr "questions.starting-code") :value "code" :image "images/form/design-and-dev.png"}]) + (conj {:label (tr "questions.other-short") :value "other" :icon i/curve}))) - start-options-randomized (conj start-options {:label (tr "questions.other-short") :value "other" :icon i/curve}) - - - start (dm/get-in @form [:data :start]) + current-start (dm/get-in @form [:data :start-with]) on-start-change - (fn [_ _] - (let [start (dm/get-in @form [:clean-data :start])] - (when (not= start "other") - (do - (swap! form d/dissoc-in [:data :start-other]) - (swap! form d/dissoc-in [:errors :start-other])))))] + (mf/use-fn + (mf/deps current-start) + (fn [_ _] + (when (not= current-start "other") + (swap! form d/dissoc-in [:data :start-with-other]) + (swap! form d/dissoc-in [:errors :start-with-other]))))] + + [:& step-container {:form form + :step 4 + :label "questions:how-start" + :on-next on-next + :on-prev on-prev + :class (stl/css :step-4)} - [:& step-container {:form form :step 4 :on-next on-next :on-prev on-prev :class (stl/css :step-4)} [:h1 {:class (stl/css :modal-title)} (tr "questions.step4-title")] [:div {:class (stl/css :radio-wrapper)} - [:& fm/image-radio-buttons {:options start-options-randomized + [:& fm/image-radio-buttons {:options start-options :img-width "159px" :img-height "120px" :class (stl/css :image-radio) - :name :start + :name :start-with :on-change on-start-change}] - (when (= start "other") - [:& fm/input {:name :start-other + (when (= current-start "other") + [:& fm/input {:name :start-with-other :class (stl/css :input-spacing) :label "" - :placeholder (tr "questions.other") - :disabled (not= start "other")}])]])) + :placeholder (tr "questions.other")}])]])) (s/def ::questions-form-step-5 - (s/keys :req-un [::knowledge] - :opt-un [::knowledge-other])) + (s/keys :req-un [::referer] + :opt-un [::referer-other])) (defn- step-5-form-validator [errors data] - (let [knowledge (:knowledge data) - knowledge-other (-> (:knowledge-other data) str/trim)] + (let [referer (:referer data) + referer-other (:referer-other data)] (cond-> errors - (and (= knowledge "other") (= 0 (count knowledge-other))) - (assoc :knowledge-other {:code "missing"})))) + (and (= referer "other") + (str/blank? referer-other)) + (assoc :referer-other {:code "missing"}) + + (not= referer "other") + (assoc :referer-other nil)))) (mf/defc step-5 - [{:keys [on-next on-prev form] :as props}] - (let [knowledge-options (mf/with-memo [] (shuffle [{:label (tr "questions.knowledge.youtube") :value "Youtube"} - {:label (tr "questions.knowledge.event") :value "event"} - {:label (tr "questions.knowledge.search") :value "search"} - {:label (tr "questions.knowledge.social") :value "social"} - {:label (tr "questions.knowledge.article") :value "article"}])) - knowledge-options-randomized (conj knowledge-options {:label (tr "questions.other-short") :value "other"}) + {::mf/props :obj} + [{:keys [on-next on-prev form]}] + (let [referer-options + (mf/with-memo [] + (-> (shuffle [{:label (tr "questions.referer.youtube") :value "youtube"} + {:label (tr "questions.referer.event") :value "event"} + {:label (tr "questions.referer.search") :value "search"} + {:label (tr "questions.referer.social") :value "social"} + {:label (tr "questions.referer.article") :value "article"}]) + (conj {:label (tr "questions.other-short") :value "other"}))) - knowledge (dm/get-in @form [:data :knowledge]) - on-knowledge-change - (fn [_ _] - (let [experience-design-tool (dm/get-in @form [:clean-data :experience-design-tool])] - (when (not= experience-design-tool "other") - (do - (swap! form d/dissoc-in [:data :knowledge-other]) - (swap! form d/dissoc-in [:errors :knowledge-other])))))] + current-referer + (dm/get-in @form [:data :referer]) + + on-referer-change + (mf/use-fn + (mf/deps current-referer) + (fn [] + (when (not= current-referer "other") + (swap! form d/dissoc-in [:data :referer-other]) + (swap! form d/dissoc-in [:errors :referer-other]))))] + + [:& step-container {:form form + :step 5 + :label "questions:referer" + :on-next on-next + :on-prev on-prev + :class (stl/css :step-5)} - [:& step-container {:form form :step 5 :on-next on-next :on-prev on-prev :class (stl/css :step-5)} [:h1 {:class (stl/css :modal-title)} (tr "questions.step5-title")] [:div {:class (stl/css :radio-wrapper)} - [:& fm/radio-buttons {:options knowledge-options-randomized + [:& fm/radio-buttons {:options referer-options :class (stl/css :radio-btns) - :name :knowledge - :on-change on-knowledge-change}] - (when (= knowledge "other") - [:& fm/input {:name :knowledge-other + :name :referer + :on-change on-referer-change}] + (when (= current-referer "other") + [:& fm/input {:name :referer-other :class (stl/css :input-spacing) :label "" - :placeholder (tr "questions.other") - :disabled (not= knowledge "other")}])]])) + :placeholder (tr "questions.other")}])]])) (mf/defc questions-modal - {::mf/register modal/components - ::mf/register-as :onboarding-questions} [] (let [container (mf/use-ref) step (mf/use-state 1) @@ -389,25 +490,19 @@ (mf/use-fn (mf/deps @clean-data) (fn [form] - (let [questionnaire (merge @clean-data (:clean-data @form))] - (reset! clean-data questionnaire) - (st/emit! (du/mark-questions-as-answered questionnaire)) + (let [data (merge @clean-data (:clean-data @form))] + (reset! clean-data data) + (st/emit! (du/mark-questions-as-answered data))))) - (cond - (contains? cf/flags :onboarding-newsletter) - (modal/show! {:type :onboarding-newsletter}) + onboarding-a-b-test? + (cf/external-feature-flag "signup-background" "test")] - (contains? cf/flags :onboarding-team) - (modal/show! {:type :onboarding-team}) - - :else - (modal/hide!))))) - onboarding-a-b-test? (cf/external-feature-flag "signup-background" "test")] - - [:div {:class (stl/css-case :modal-overlay true - :onboarding-a-b-test onboarding-a-b-test?)} + [:div {:class (stl/css-case + :modal-overlay true + :onboarding-a-b-test onboarding-a-b-test?)} [:div {:class (stl/css :modal-container) :ref container} + (case @step 1 [:& step-1 {:on-next on-next :on-prev on-prev :form step-1-form}] 2 [:& step-2 {:on-next on-next :on-prev on-prev :form step-2-form}] diff --git a/frontend/translations/en.po b/frontend/translations/en.po index d45c4ec149..46f507c17f 100644 --- a/frontend/translations/en.po +++ b/frontend/translations/en.po @@ -2573,23 +2573,23 @@ msgid "questions.step5-title" msgstr "How did you hear about Penpot?" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.knowledge.youtube" +msgid "questions.referer.youtube" msgstr "YouTube" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.knowledge.event" +msgid "questions.referer.event" msgstr "Event" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.knowledge.search" +msgid "questions.referer.search" msgstr "Search Engine (Google, Yahoo, Bing)" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.knowledge.social" +msgid "questions.referer.social" msgstr "Social Media (X, Linkedin, FB, etc)" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.knowledge.article" +msgid "questions.referer.article" msgstr "Article (Blog, Post, Newsletter)" #: src/app/main/ui/onboarding/questions.cljs diff --git a/frontend/translations/es.po b/frontend/translations/es.po index 50ee7f41c4..2a74b9eeb0 100644 --- a/frontend/translations/es.po +++ b/frontend/translations/es.po @@ -2682,23 +2682,23 @@ msgid "questions.step5-title" msgstr "¿Cómo nos has descubierto?" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.knowledge.youtube" +msgid "questions.referer.youtube" msgstr "YouTube" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.knowledge.event" +msgid "questions.referer.event" msgstr "Evento" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.knowledge.search" +msgid "questions.referer.search" msgstr "Buscador (Google, Yahoo, Bing)" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.knowledge.social" +msgid "questions.referer.social" msgstr "Redes sociales (X, LinkedIn, FB, ect)" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.knowledge.article" +msgid "questions.referer.article" msgstr "Artículo (Blog, Post, Newsletter)" #: src/app/main/ui/onboarding/questions.cljs From 0dda893d73757de260797d72ab9e6d58a2cae150 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Fri, 7 Jun 2024 14:55:24 +0200 Subject: [PATCH 088/476] :sparkles: Improve state management on onboarding newsletter modal --- .../app/main/ui/onboarding/newsletter.cljs | 80 ++++++++++++------- 1 file changed, 49 insertions(+), 31 deletions(-) diff --git a/frontend/src/app/main/ui/onboarding/newsletter.cljs b/frontend/src/app/main/ui/onboarding/newsletter.cljs index 4de6caf2f8..0f2bfd2ce4 100644 --- a/frontend/src/app/main/ui/onboarding/newsletter.cljs +++ b/frontend/src/app/main/ui/onboarding/newsletter.cljs @@ -8,39 +8,52 @@ (:require-macros [app.main.style :as stl]) (:require [app.config :as cf] + [app.main.data.events :as-alias ev] [app.main.data.messages :as msg] - [app.main.data.modal :as modal] [app.main.data.users :as du] [app.main.store :as st] [app.main.ui.icons :as i] + [app.util.dom :as dom] [app.util.i18n :as i18n :refer [tr]] + [potok.v2.core :as ptk] [rumext.v2 :as mf])) (mf/defc onboarding-newsletter - {::mf/register modal/components - ::mf/register-as :onboarding-newsletter} [] - (let [message (tr "onboarding.newsletter.acceptance-message") - newsletter-updates (mf/use-state false) - newsletter-news (mf/use-state false) - toggle - (mf/use-callback - (fn [option] - (swap! option not))) + (let [state* (mf/use-state #(do {:newsletter-updates false + :newsletter-news false})) + state (deref state*) + on-change + (mf/use-fn + (fn [event] + (let [attr (-> (dom/get-current-target event) + (dom/get-data "attr") + (keyword))] + (swap! state* update attr not)))) - accept - (mf/use-callback - (mf/deps @newsletter-updates @newsletter-news) + on-next + (mf/use-fn + (mf/deps state) (fn [] - (st/emit! (when (or @newsletter-updates @newsletter-news) - (msg/success message)) - (modal/show {:type :onboarding-team}) - (du/update-profile-props {:newsletter-updates @newsletter-updates :newsletter-news @newsletter-news})))) - onboarding-a-b-test? (cf/external-feature-flag "signup-background" "test")] + (when (or (:newsletter-updates state) + (:newsletter-news state)) + (st/emit! (msg/success (tr "onboarding.newsletter.acceptance-message")))) + + (let [params (-> state + (assoc ::ev/name "onboarding-step") + (assoc :label "newsletter:subscriptions") + (assoc :step 6))] + (st/emit! (ptk/data-event ::ev/event params) + (du/update-profile-props state))))) + + onboarding-a-b-test? + (cf/external-feature-flag "signup-background" "test")] + + [:div {:class (stl/css-case + :modal-overlay true + :onboarding-a-b-test onboarding-a-b-test?)} - [:div {:class (stl/css-case :modal-overlay true - :onboarding-a-b-test onboarding-a-b-test?)} [:div.animated.fadeInDown {:class (stl/css :modal-container)} [:div {:class (stl/css :modal-left)} [:img {:src "images/deco-newsletter.png" @@ -50,30 +63,34 @@ [:h2 {:class (stl/css :modal-title) :data-test "onboarding-newsletter-title"} (tr "onboarding.newsletter.title")] + [:p {:class (stl/css :modal-text)} (tr "onboarding-v2.newsletter.desc")] - [:div {:class (stl/css :newsletter-options)} [:div {:class (stl/css :input-wrapper)} [:label {:for "newsletter-updates"} - [:span {:class (stl/css-case :global/checked @newsletter-updates)} - (when @newsletter-updates - i/status-tick)] + [:span {:class (stl/css-case :global/checked (:newsletter-updates state))} + i/status-tick] + (tr "onboarding-v2.newsletter.updates") [:input {:type "checkbox" :id "newsletter-updates" - :on-change #(toggle newsletter-updates)}]]] + :data-attr "newsletter-updates" + :value (:newsletter-updates state) + :on-change on-change}]]] [:div {:class (stl/css :input-wrapper)} [:label {:for "newsletter-news"} - [:span {:class (stl/css-case :global/checked @newsletter-news)} - (when @newsletter-news - i/status-tick)] + [:span {:class (stl/css-case :global/checked (:newsletter-news state))} + i/status-tick] + (tr "onboarding-v2.newsletter.news") [:input {:type "checkbox" :id "newsletter-news" - :on-change #(toggle newsletter-news)}]]]] + :data-attr "newsletter-news" + :value (:newsletter-news state) + :on-change on-change}]]]] [:p {:class (stl/css :modal-text)} (tr "onboarding-v2.newsletter.privacy1") @@ -84,5 +101,6 @@ [:p {:class (stl/css :modal-text)} (tr "onboarding-v2.newsletter.privacy2")] - [:button {:on-click accept - :class (stl/css :accept-btn)} (tr "labels.continue")]]]])) + [:button {:on-click on-next + :class (stl/css :accept-btn)} + (tr "labels.continue")]]]])) From 273a5f7a0a0e49ffa92f8d42e497ea10c305b64c Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Fri, 7 Jun 2024 16:45:46 +0200 Subject: [PATCH 089/476] :sparkles: Improve state management on onboarding team modal --- .../app/main/ui/onboarding/team_choice.cljs | 344 +++++++++--------- 1 file changed, 177 insertions(+), 167 deletions(-) diff --git a/frontend/src/app/main/ui/onboarding/team_choice.cljs b/frontend/src/app/main/ui/onboarding/team_choice.cljs index a9b4bbc4b0..7c4dad606f 100644 --- a/frontend/src/app/main/ui/onboarding/team_choice.cljs +++ b/frontend/src/app/main/ui/onboarding/team_choice.cljs @@ -7,34 +7,29 @@ (ns app.main.ui.onboarding.team-choice (:require-macros [app.main.style :as stl]) (:require - [app.common.data.macros :as dmc] + [app.common.data.macros :as dm] [app.common.spec :as us] [app.config :as cf] [app.main.data.dashboard :as dd] [app.main.data.events :as ev] [app.main.data.messages :as msg] - [app.main.data.modal :as modal] - [app.main.refs :as refs] + [app.main.data.users :as du] [app.main.store :as st] [app.main.ui.components.forms :as fm] [app.main.ui.icons :as i] [app.util.i18n :as i18n :refer [tr]] [app.util.router :as rt] - [app.util.timers :as tm] [cljs.spec.alpha :as s] [potok.v2.core :as ptk] [rumext.v2 :as mf])) -(s/def ::name ::us/not-empty-string) -(s/def ::team-form - (s/keys :req-un [::name])) - -(mf/defc team-modal-left +(mf/defc left-sidebar + {::mf/props :obj + ::mf/private true} [] [:div {:class (stl/css :modal-left)} [:h1 {:class (stl/css :modal-title)} (tr "onboarding-v2.welcome.title")] - [:h2 {:class (stl/css :modal-subtitle)} (tr "onboarding.team-modal.team-definition")] [:p {:class (stl/css :modal-text)} @@ -61,99 +56,27 @@ [:p {:class (stl/css :modal-desc)} (tr "onboarding.team-modal.create-team-feature-5")]]]]) -(mf/defc onboarding-team-modal - {::mf/register modal/components - ::mf/register-as :onboarding-team} - [] - (let [form (fm/use-form :spec ::team-form - :initial {} - :validators [(fm/validate-not-empty :name (tr "auth.name.not-all-space")) - (fm/validate-length :name fm/max-length-allowed (tr "auth.name.too-long"))]) - on-submit - (mf/use-fn - (fn [form _] - (let [tname (get-in @form [:clean-data :name])] - (st/emit! (modal/show {:type :onboarding-team-invitations :name tname}) - (ptk/event ::ev/event {::ev/name "choose-team-name" - ::ev/origin "onboarding" - :name tname - :step 1}))))) - on-skip - (fn [] - (tm/schedule 400 #(st/emit! (modal/hide) - (ptk/event ::ev/event {::ev/name "create-team-later" - ::ev/origin "onboarding" - :step 1})))) - - teams (mf/deref refs/teams) - onboarding-a-b-test? (cf/external-feature-flag "signup-background" "test")] - - (mf/with-effect [teams] - (when (> (count teams) 1) - (st/emit! (modal/hide)))) - - (when (< (count teams) 2) - [:div {:class (stl/css-case :modal-overlay true - :onboarding-a-b-test onboarding-a-b-test?)} - [:div.animated.fadeIn {:class (stl/css :modal-container)} - [:& team-modal-left] - [:div {:class (stl/css :separator)}] - [:div {:class (stl/css :modal-right)} - [:div {:class (stl/css :first-block)} - [:h2 {:class (stl/css :modal-subtitle)} - (tr "onboarding.team-modal.create-team")] - [:p {:class (stl/css :modal-text)} - (tr "onboarding.choice.team-up.create-team-desc")] - [:& fm/form {:form form - :class (stl/css :modal-form) - :on-submit on-submit} - - [:& fm/input {:type "text" - :class (stl/css :team-name-input) - :name :name - :placeholder "Team name" - :label (tr "onboarding.choice.team-up.create-team-placeholder")}] - - [:div {:class (stl/css :action-buttons)} - [:> fm/submit-button* - {:class (stl/css :accept-button) - :label (tr "onboarding.choice.team-up.continue-creating-team")}]]]] - [:div {:class (stl/css :second-block)} - [:h2 {:class (stl/css :modal-subtitle)} - (tr "onboarding.choice.team-up.start-without-a-team")] - [:p {:class (stl/css :modal-text)} - (tr "onboarding.choice.team-up.start-without-a-team-description")] - - [:div {:class (stl/css :action-buttons)} - [:button {:class (stl/css :accept-button) - :on-click on-skip} - (tr "onboarding.choice.team-up.continue-without-a-team")]]]] - - [:div {:class (stl/css :paginator)} "1/2"]]]))) - -(defn get-available-roles - [] - [{:value "editor" :label (tr "labels.editor")} - {:value "admin" :label (tr "labels.admin")}]) (s/def ::emails (s/and ::us/set-of-valid-emails)) (s/def ::role ::us/keyword) (s/def ::invite-form (s/keys :req-un [::role ::emails])) -;; This is the final step of team creation, consists in provide a -;; shortcut for invite users. +(defn- get-available-roles + [] + [{:value "editor" :label (tr "labels.editor")} + {:value "admin" :label (tr "labels.admin")}]) + +(mf/defc team-form-step-2 + {::mf/props :obj} + [{:keys [name on-back]}] + (let [initial (mf/use-memo + #(do {:role "editor" + :name name})) -(mf/defc onboarding-team-invitations-modal - {::mf/register modal/components - ::mf/register-as :onboarding-team-invitations - ::mf/props :obj} - [{:keys [name]}] - (let [initial (mf/use-memo (constantly - {:role "editor" - :name name})) form (fm/use-form :spec ::invite-form :initial initial) + params (:clean-data @form) emails (:emails params) @@ -161,51 +84,47 @@ on-success (mf/use-fn - (fn [_form response] - (let [team-id (:id response)] - (st/emit! - (modal/hide) - (rt/nav :dashboard-projects {:team-id team-id})) - (tm/schedule 400 #(st/emit! - (modal/hide)))))) + (fn [response] + (let [team-id (:id response)] + (st/emit! (du/update-profile-props {:onboarding-team-id team-id}) + (rt/nav :dashboard-projects {:team-id team-id}))))) on-error (mf/use-fn - (fn [_form _cause] - (st/emit! (msg/error "Error on creating team.")))) + (fn [_] + (st/emit! (msg/error (tr "errors.generic"))))) - ;; The SKIP branch only creates the team, without invitations on-invite-later (mf/use-fn - (fn [_] - (let [mdata {:on-success (partial on-success form) - :on-error (partial on-error form)} + (fn [{:keys [name]}] + (let [mdata {:on-success on-success + :on-error on-error} params {:name name}] (st/emit! (dd/create-team (with-meta params mdata)) - (ptk/event ::ev/event {::ev/name "create-team-and-invite-later" - ::ev/origin "onboarding" - :name name - :step 2}))))) + (ptk/data-event ::ev/event + {::ev/name "onboarding-step" + :label "team:create-team-and-invite-later" + :team-name name + :step 7}) + (ptk/data-event ::ev/event + {::ev/name "onboarding-finish"}))))) - ;; The SUBMIT branch creates the team with the invitations on-invite-now (mf/use-fn - (fn [form] - (let [mdata {:on-success (partial on-success form) - :on-error (partial on-error form)} - params (:clean-data @form) - emails (:emails params)] + (fn [{:keys [name] :as params}] + (let [mdata {:on-success on-success + :on-error on-error}] - (st/emit! (if (> (count emails) 0) - ;; If the user is only inviting to itself we don't call to create-team-with-invitations - (dd/create-team-with-invitations (with-meta params mdata)) - (dd/create-team (with-meta {:name name} mdata))) - (ptk/event ::ev/event {::ev/name "create-team-and-send-invitations" - ::ev/origin "onboarding" - :invites (count emails) - :role (:role params) - :name name - :step 2}))))) + (st/emit! (dd/create-team-with-invitations (with-meta params mdata)) + (ptk/data-event ::ev/event + {::ev/name "onboarding-step" + :label "team:create-team-and-invite" + :invites (count emails) + :team-name name + :role (:role params) + :step 7}) + (ptk/data-event ::ev/event + {::ev/name "onboarding-finish"}))))) on-submit (mf/use-fn @@ -213,55 +132,146 @@ (let [params (:clean-data @form) emails (:emails params)] (if (> (count emails) 0) - (on-invite-now form) - (on-invite-later form)) - (modal/hide!)))) - onboarding-a-b-test? (cf/external-feature-flag "signup-background" "test")] + (on-invite-now params) + (on-invite-later params)))))] - [:div {:class (stl/css-case :modal-overlay true - :onboarding-a-b-test onboarding-a-b-test?)} - [:div.animated.fadeIn {:class (stl/css :modal-container)} - [:& team-modal-left] + [:* + [:div {:class (stl/css :modal-right-invitations)} + [:h2 {:class (stl/css :modal-subtitle)} (tr "onboarding.choice.team-up.invite-members")] + [:p {:class (stl/css :modal-text)} (tr "onboarding.choice.team-up.invite-members-info")] + [:& fm/form {:form form + :class (stl/css :modal-form-invitations) + :on-submit on-submit} + [:div {:class (stl/css :role-select)} + [:p {:class (stl/css :role-title)} (tr "onboarding.choice.team-up.roles")] + [:& fm/select {:name :role :options roles}]] - [:div {:class (stl/css :separator)}] - [:div {:class (stl/css :modal-right-invitations)} - [:h2 {:class (stl/css :modal-subtitle)} (tr "onboarding.choice.team-up.invite-members")] - [:p {:class (stl/css :modal-text)} (tr "onboarding.choice.team-up.invite-members-info")] + [:div {:class (stl/css :invitation-row)} + [:& fm/multi-input {:type "email" + :name :emails + :auto-focus? true + :trim true + :valid-item-fn us/parse-email + :caution-item-fn #{} + :label (tr "modals.invite-member.emails") + :on-submit on-submit}]] + + [:div {:class (stl/css :action-buttons)} + [:button {:class (stl/css :back-button) + :on-click on-back} + (tr "labels.back")] + + [:> fm/submit-button* + {:class (stl/css :accept-button) + :label (if (> (count emails) 0) + (tr "onboarding.choice.team-up.create-team-and-invite") + (tr "onboarding.choice.team-up.create-team-without-invite"))}]] + [:div {:class (stl/css :modal-hint)} + "(" (tr "onboarding.choice.team-up.create-team-and-send-invites-description") ")"]]] + + + [:div {:class (stl/css :paginator)} "2/2"]])) + +(mf/defc team-form-step-1 + {::mf/props :obj + ::mf/private true} + [{:keys [on-submit]}] + (let [validators (mf/with-memo [] + [(fm/validate-not-empty :name (tr "auth.name.not-all-space")) + (fm/validate-length :name fm/max-length-allowed (tr "auth.name.too-long"))]) + + form (fm/use-form + :spec ::team-form + :initial {} + :validators validators) + + on-submit* + (mf/use-fn + (fn [form] + (let [name (dm/get-in @form [:clean-data :name])] + + (st/emit! (ptk/data-event ::ev/event + {::ev/name "onboarding-step" + :label "team:choice-team-name" + :step 7})) + (on-submit name)))) + + on-skip + (mf/use-fn + (fn [] + (st/emit! (du/update-profile-props {:onboarding-viewed true}) + (ptk/data-event ::ev/event + {::ev/name "onboarding-step" + :label "team:skip-team-creation" + :step 7}) + (ptk/data-event ::ev/event + {::ev/name "onboarding-finish"}))))] + [:* + [:div {:class (stl/css :modal-right)} + [:div {:class (stl/css :first-block)} + [:h2 {:class (stl/css :modal-subtitle)} + (tr "onboarding.team-modal.create-team")] + [:p {:class (stl/css :modal-text)} + (tr "onboarding.choice.team-up.create-team-desc")] [:& fm/form {:form form - :class (stl/css :modal-form-invitations) - :on-submit on-submit} - [:div {:class (stl/css :role-select)} - [:p {:class (stl/css :role-title)} (tr "onboarding.choice.team-up.roles")] - [:& fm/select {:name :role :options roles}]] + :class (stl/css :modal-form) + :on-submit on-submit*} - [:div {:class (stl/css :invitation-row)} - [:& fm/multi-input {:type "email" - :name :emails - :auto-focus? true - :trim true - :valid-item-fn us/parse-email - :caution-item-fn #{} - :label (tr "modals.invite-member.emails") - :on-submit on-submit}]] + [:& fm/input {:type "text" + :class (stl/css :team-name-input) + :name :name + :placeholder "Team name" + :label (tr "onboarding.choice.team-up.create-team-placeholder")}] [:div {:class (stl/css :action-buttons)} - [:button {:class (stl/css :back-button) - :on-click #(st/emit! (modal/show {:type :onboarding-team}) - (ptk/event ::ev/event {::ev/name "invite-members-back" - ::ev/origin "onboarding" - :name name - :step 2}))} - (tr "labels.back")] - [:> fm/submit-button* {:class (stl/css :accept-button) - :label (if (> (count emails) 0) - (tr "onboarding.choice.team-up.create-team-and-invite") - (tr "onboarding.choice.team-up.create-team-without-invite"))}]] - [:div {:class (stl/css :modal-hint)} - (dmc/str "(" (tr "onboarding.choice.team-up.create-team-and-send-invites-description") ")")]]] + :label (tr "onboarding.choice.team-up.continue-creating-team")}]]]] + [:div {:class (stl/css :second-block)} + [:h2 {:class (stl/css :modal-subtitle)} + (tr "onboarding.choice.team-up.start-without-a-team")] + [:p {:class (stl/css :modal-text)} + (tr "onboarding.choice.team-up.start-without-a-team-description")] + + [:div {:class (stl/css :action-buttons)} + [:button {:class (stl/css :accept-button) + :on-click on-skip} + (tr "onboarding.choice.team-up.continue-without-a-team")]]]] + + [:div {:class (stl/css :paginator)} "1/2"]])) + +(s/def ::name ::us/not-empty-string) +(s/def ::team-form + (s/keys :req-un [::name])) + +(mf/defc onboarding-team-modal + {::mf/props :obj} + [] + (let [name* (mf/use-state nil) + name (deref name*) + + on-submit + (mf/use-fn + (fn [tname] + (swap! name* (constantly tname)))) - [:div {:class (stl/css :paginator)} "2/2"]]])) + on-back + (mf/use-fn + (fn [] + (swap! name* (constantly nil)))) + onboarding-a-b-test? + (cf/external-feature-flag "signup-background" "test")] + + [:div {:class (stl/css-case + :modal-overlay true + :onboarding-a-b-test onboarding-a-b-test?)} + + [:div.animated.fadeIn {:class (stl/css :modal-container)} + [:& left-sidebar] + [:div {:class (stl/css :separator)}] + (if name + [:& team-form-step-2 {:name name :on-back on-back}] + [:& team-form-step-1 {:on-submit on-submit}])]])) From 411fe5448bb1d932722cbb58f1ef241ce5527ce5 Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Thu, 6 Jun 2024 09:44:23 +0200 Subject: [PATCH 090/476] :bug: Fix rename layers for plugins --- .../ui/workspace/viewport/grid_layout_editor.cljs | 4 ++-- frontend/src/app/plugins/shape.cljs | 13 ++++++++++--- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/frontend/src/app/main/ui/workspace/viewport/grid_layout_editor.cljs b/frontend/src/app/main/ui/workspace/viewport/grid_layout_editor.cljs index 572c1068de..49570f1c9d 100644 --- a/frontend/src/app/main/ui/workspace/viewport/grid_layout_editor.cljs +++ b/frontend/src/app/main/ui/workspace/viewport/grid_layout_editor.cljs @@ -967,13 +967,13 @@ (mf/use-fn (mf/deps (:id shape)) (fn [] - (st/emit! (st/emit! (dwsl/add-layout-track [(:id shape)] :column ctl/default-track-value))))) + (st/emit! (dwsl/add-layout-track [(:id shape)] :column ctl/default-track-value)))) handle-add-row (mf/use-fn (mf/deps (:id shape)) (fn [] - (st/emit! (st/emit! (dwsl/add-layout-track [(:id shape)] :row ctl/default-track-value))))) + (st/emit! (dwsl/add-layout-track [(:id shape)] :row ctl/default-track-value)))) target-tracks* (mf/use-ref nil) drop-track-type* (mf/use-state nil) diff --git a/frontend/src/app/plugins/shape.cljs b/frontend/src/app/plugins/shape.cljs index c5db5d5488..a22bbab69c 100644 --- a/frontend/src/app/plugins/shape.cljs +++ b/frontend/src/app/plugins/shape.cljs @@ -32,7 +32,8 @@ [app.plugins.utils :as u] [app.util.object :as obj] [app.util.path.format :as upf] - [app.util.text-editor :as ted])) + [app.util.text-editor :as ted] + [cuerdas.core :as str])) (declare shape-proxy) @@ -176,8 +177,14 @@ {:name "name" :get #(-> % u/proxy->shape :name) :set (fn [self value] - (let [id (obj/get self "$id")] - (st/emit! (dwsh/update-shapes [id] #(assoc % :name value)))))} + (let [id (obj/get self "$id") + value (when (string? value) (-> value str/trim cfh/clean-path)) + valid? (and (some? value) + (not (str/ends-with? value "/")) + (not (str/blank? value)))] + (if valid? + (st/emit! (dwsh/update-shapes [id] #(assoc % :name value))) + (u/display-not-valid :shape-name value))))} {:name "blocked" :get #(-> % u/proxy->shape :blocked boolean) From 4d4a3a512d9e1839a2a9e108e14d85b403dd9500 Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Fri, 7 Jun 2024 09:47:36 +0200 Subject: [PATCH 091/476] :lipstick: Style changes to the plugins modal --- frontend/resources/images/icons/rocket.svg | 2 +- .../src/app/main/ui/workspace/plugins.cljs | 20 +++++++++++-------- .../src/app/main/ui/workspace/plugins.scss | 13 ++++++------ 3 files changed, 19 insertions(+), 16 deletions(-) diff --git a/frontend/resources/images/icons/rocket.svg b/frontend/resources/images/icons/rocket.svg index 4bc138edd8..02f8d2a072 100644 --- a/frontend/resources/images/icons/rocket.svg +++ b/frontend/resources/images/icons/rocket.svg @@ -1 +1 @@ - + diff --git a/frontend/src/app/main/ui/workspace/plugins.cljs b/frontend/src/app/main/ui/workspace/plugins.cljs index c36737b2eb..a6eca7efd3 100644 --- a/frontend/src/app/main/ui/workspace/plugins.cljs +++ b/frontend/src/app/main/ui/workspace/plugins.cljs @@ -9,6 +9,7 @@ (:require [app.common.data :as d] [app.common.data.macros :as dm] + [app.common.uuid :as uuid] [app.main.data.modal :as modal] [app.main.ui.components.search-bar :refer [search-bar]] [app.main.ui.components.title-bar :refer [title-bar]] @@ -70,15 +71,16 @@ (.setItem ls "plugins" plugins-val))) (defn open-plugin! - [{:keys [name description host code icon permissions]}] + [{:keys [plugin-id name description host code icon permissions]}] (.ɵloadPlugin js/window #js - {:name name - :description description - :host host - :code code - :icon icon - :permissions (apply array permissions)})) + {:pluginId plugin-id + :name name + :description description + :host host + :code code + :icon icon + :permissions (apply array permissions)})) (mf/defc plugin-management-dialog {::mf/register modal/components @@ -124,10 +126,12 @@ icon (obj/get body "icon") permissions (obj/get body "permissions") origin (obj/get (js/URL. plugin-url) "origin") + plugin-id (str (uuid/next)) new-state (conj plugins-state - {:name name + {:plugin-id plugin-id + :name name :description desc :host origin :code code diff --git a/frontend/src/app/main/ui/workspace/plugins.scss b/frontend/src/app/main/ui/workspace/plugins.scss index fbb68144af..0ff79d4885 100644 --- a/frontend/src/app/main/ui/workspace/plugins.scss +++ b/frontend/src/app/main/ui/workspace/plugins.scss @@ -14,8 +14,6 @@ @extend .modal-container-base; display: grid; grid-template-rows: auto 1fr; - height: $s-472; - max-height: $s-472; width: $s-472; max-width: $s-472; @@ -43,7 +41,7 @@ display: flex; flex-direction: column; height: $s-380; - padding-bottom: $s-16; + max-height: $s-380; } .primary-button { @@ -133,7 +131,9 @@ flex-direction: column; align-items: center; gap: $s-20; - margin-top: $s-16; + height: 100%; + justify-content: center; + padding: $s-36 0; } .plugins-empty-logo { @@ -148,9 +148,8 @@ svg { width: $s-16; height: $s-16; - fill: none; - stroke: $df-secondary; - stroke-width: 0.8px; + fill: $df-secondary; + stroke-width: 0; } } From 5233654da2e750c758a04034a0c67f3033815888 Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Mon, 10 Jun 2024 11:32:35 +0200 Subject: [PATCH 092/476] :sparkles: Add support for plugin data into penpot objects --- common/src/app/common/files/changes.cljc | 42 +++ .../src/app/common/files/changes_builder.cljc | 31 ++ common/src/app/common/schema.cljc | 3 + common/src/app/common/types/color.cljc | 4 +- common/src/app/common/types/container.cljc | 4 +- common/src/app/common/types/file.cljc | 4 +- common/src/app/common/types/page.cljc | 4 +- common/src/app/common/types/shape.cljc | 4 +- common/src/app/common/types/typography.cljc | 4 +- frontend/src/app/main/data/workspace.cljs | 29 ++ .../src/app/main/ui/workspace/plugins.cljs | 16 +- frontend/src/app/plugins.cljs | 3 +- frontend/src/app/plugins/api.cljs | 45 +-- frontend/src/app/plugins/events.cljs | 20 +- frontend/src/app/plugins/file.cljs | 84 ++++- frontend/src/app/plugins/flex.cljs | 14 +- frontend/src/app/plugins/grid.cljs | 15 +- frontend/src/app/plugins/library.cljs | 343 ++++++++++++++++-- frontend/src/app/plugins/page.cljs | 80 +++- frontend/src/app/plugins/shape.cljs | 129 +++++-- frontend/src/app/plugins/user.cljs | 18 +- frontend/src/app/plugins/viewport.cljs | 6 +- 22 files changed, 764 insertions(+), 138 deletions(-) diff --git a/common/src/app/common/files/changes.cljc b/common/src/app/common/files/changes.cljc index a82ab947c0..3df8b9d895 100644 --- a/common/src/app/common/files/changes.cljc +++ b/common/src/app/common/files/changes.cljc @@ -133,6 +133,18 @@ [:id ::sm/uuid] [:name :string]]] + [:mod-plugin-data + [:map {:title "ModPagePluginData"} + [:type [:= :mod-plugin-data]] + [:object-type [::sm/one-of #{:file :page :shape :color :typography :component}]] + ;; It's optional because files don't need the id for type :file + [:object-id {:optional true} [:maybe ::sm/uuid]] + ;; Only needed in type shape + [:page-id {:optional true} [:maybe ::sm/uuid]] + [:namespace :keyword] + [:key :string] + [:value [:maybe :string]]]] + [:del-page [:map {:title "DelPageChange"} [:type [:= :del-page]] @@ -586,6 +598,36 @@ [data {:keys [id name]}] (d/update-in-when data [:pages-index id] assoc :name name)) +(defmethod process-change :mod-plugin-data + [data {:keys [object-type object-id page-id namespace key value]}] + + (when (and (= object-type :shape) (nil? page-id)) + (ex/raise :type :internal :hint "update for shapes needs a page-id")) + + (letfn [(update-fn + [data] + (if (some? value) + (assoc-in data [:plugin-data namespace key] value) + (update-in data [:plugin-data namespace] (fnil dissoc {}) key)))] + (case object-type + :file + (update-fn data) + + :page + (d/update-in-when data [:pages-index object-id :options] update-fn) + + :shape + (d/update-in-when data [:pages-index page-id :objects object-id] update-fn) + + :color + (d/update-in-when data [:colors object-id] update-fn) + + :typography + (d/update-in-when data [:typographies object-id] update-fn) + + :component + (d/update-in-when data [:components object-id] update-fn)))) + (defmethod process-change :del-page [data {:keys [id]}] (ctpl/delete-page data id)) diff --git a/common/src/app/common/files/changes_builder.cljc b/common/src/app/common/files/changes_builder.cljc index 865ed2fa73..0540cfcdfd 100644 --- a/common/src/app/common/files/changes_builder.cljc +++ b/common/src/app/common/files/changes_builder.cljc @@ -201,6 +201,37 @@ (update :undo-changes conj {:type :mod-page :id (:id page) :name (:name page)}) (apply-changes-local))) +(defn mod-plugin-data + ([changes namespace key value] + (mod-plugin-data changes :file nil nil namespace key value)) + ([changes type id namespace key value] + (mod-plugin-data changes type id nil namespace key value)) + ([changes type id page-id namespace key value] + (let [data (::file-data (meta changes)) + old-val + (case type + :file + (get-in data [:plugin-data namespace key]) + + :page + (get-in data [:pages-index id :options :plugin-data namespace key]) + + :shape + (get-in data [:pages-index page-id :objects id :plugin-data namespace key]) + + :color + (get-in data [:colors id :plugin-data namespace key]) + + :typography + (get-in data [:typographies id :plugin-data namespace key]) + + :component + (get-in data [:components id :plugin-data namespace key]))] + (-> changes + (update :redo-changes conj {:type :mod-plugin-data :object-type type :object-id id :page-id page-id :namespace namespace :key key :value value}) + (update :undo-changes conj {:type :mod-plugin-data :object-type type :object-id id :page-id page-id :namespace namespace :key key :value old-val}) + (apply-changes-local))))) + (defn del-page [changes page] (-> changes diff --git a/common/src/app/common/schema.cljc b/common/src/app/common/schema.cljc index b1e743f643..a74b88f1f0 100644 --- a/common/src/app/common/schema.cljc +++ b/common/src/app/common/schema.cljc @@ -658,6 +658,9 @@ ::oapi/format "uri" ::oapi/decode (comp u/uri str/trim)}}) +(def! ::plugin-data + [:map-of {:gen/max 5} :string :string]) + ;; ---- PREDICATES (def valid-safe-number? diff --git a/common/src/app/common/types/color.cljc b/common/src/app/common/types/color.cljc index 111343d58d..c8a1ef67bd 100644 --- a/common/src/app/common/types/color.cljc +++ b/common/src/app/common/types/color.cljc @@ -84,7 +84,9 @@ [:ref-id {:optional true} ::sm/uuid] [:ref-file {:optional true} ::sm/uuid] [:gradient {:optional true} [:maybe ::gradient]] - [:image {:optional true} [:maybe ::image-color]]] + [:image {:optional true} [:maybe ::image-color]] + [:plugin-data {:optional true} + [:map-of {:gen/max 5} :keyword ::sm/plugin-data]]] [::sm/contains-any {:strict true} [:color :gradient :image]]]) (sm/define! ::recent-color diff --git a/common/src/app/common/types/container.cljc b/common/src/app/common/types/container.cljc index c4166508ad..0313870b66 100644 --- a/common/src/app/common/types/container.cljc +++ b/common/src/app/common/types/container.cljc @@ -35,7 +35,9 @@ [:path {:optional true} [:maybe :string]] [:modified-at {:optional true} ::sm/inst] [:objects {:optional true} - [:map-of {:gen/max 10} ::sm/uuid :map]]]) + [:map-of {:gen/max 10} ::sm/uuid :map]] + [:plugin-data {:optional true} + [:map-of {:gen/max 5} :keyword ::sm/plugin-data]]]) (def check-container! (sm/check-fn ::container)) diff --git a/common/src/app/common/types/file.cljc b/common/src/app/common/types/file.cljc index d12b759dfd..c8c7fbe432 100644 --- a/common/src/app/common/types/file.cljc +++ b/common/src/app/common/types/file.cljc @@ -57,7 +57,9 @@ [:typographies {:optional true} [:map-of {:gen/max 2} ::sm/uuid ::cty/typography]] [:media {:optional true} - [:map-of {:gen/max 5} ::sm/uuid ::media-object]]]) + [:map-of {:gen/max 5} ::sm/uuid ::media-object]] + [:plugin-data {:optional true} + [:map-of {:gen/max 5} :keyword ::sm/plugin-data]]]) (def check-file-data! (sm/check-fn ::data)) diff --git a/common/src/app/common/types/page.cljc b/common/src/app/common/types/page.cljc index 0b20389288..3e31540dbc 100644 --- a/common/src/app/common/types/page.cljc +++ b/common/src/app/common/types/page.cljc @@ -43,7 +43,9 @@ [:flows {:optional true} [:vector {:gen/max 2} ::flow]] [:guides {:optional true} - [:map-of {:gen/max 2} ::sm/uuid ::guide]]]]]) + [:map-of {:gen/max 2} ::sm/uuid ::guide]] + [:plugin-data {:optional true} + [:map-of {:gen/max 5} :keyword ::sm/plugin-data]]]]]) (def check-page-guide! (sm/check-fn ::guide)) diff --git a/common/src/app/common/types/shape.cljc b/common/src/app/common/types/shape.cljc index a489133293..1a4ed092a8 100644 --- a/common/src/app/common/types/shape.cljc +++ b/common/src/app/common/types/shape.cljc @@ -186,7 +186,9 @@ [:vector {:gen/max 1} ::ctss/shadow]] [:blur {:optional true} ::ctsb/blur] [:grow-type {:optional true} - [::sm/one-of #{:auto-width :auto-height :fixed}]]]) + [::sm/one-of #{:auto-width :auto-height :fixed}]] + [:plugin-data {:optional true} + [:map-of {:gen/max 5} :keyword ::sm/plugin-data]]]) (sm/define! ::group-attrs [:map {:title "GroupAttrs"} diff --git a/common/src/app/common/types/typography.cljc b/common/src/app/common/types/typography.cljc index 6e216020a8..2e5a08b93a 100644 --- a/common/src/app/common/types/typography.cljc +++ b/common/src/app/common/types/typography.cljc @@ -29,7 +29,9 @@ [:letter-spacing :string] [:text-transform :string] [:modified-at {:optional true} ::sm/inst] - [:path {:optional true} [:maybe :string]]]) + [:path {:optional true} [:maybe :string]] + [:plugin-data {:optional true} + [:map-of {:gen/max 5} :keyword ::sm/plugin-data]]]) (def check-typography! (sm/check-fn ::typography)) diff --git a/frontend/src/app/main/data/workspace.cljs b/frontend/src/app/main/data/workspace.cljs index c2ce35228c..fd4fa64c99 100644 --- a/frontend/src/app/main/data/workspace.cljs +++ b/frontend/src/app/main/data/workspace.cljs @@ -568,6 +568,35 @@ (rx/of (dch/commit-changes changes)))))) +(defn set-plugin-data + ([file-id type namespace key value] + (set-plugin-data file-id type nil nil namespace key value)) + ([file-id type id namespace key value] + (set-plugin-data file-id type id nil namespace key value)) + ([file-id type id page-id namespace key value] + (dm/assert! (contains? #{:file :page :shape :color :typography :component} type)) + (dm/assert! (or (nil? id) (uuid? id))) + (dm/assert! (or (nil? page-id) (uuid? page-id))) + (dm/assert! (uuid? file-id)) + (dm/assert! (keyword? namespace)) + (dm/assert! (string? key)) + (dm/assert! (or (nil? value) (string? value))) + + (ptk/reify ::set-file-plugin-data + ptk/WatchEvent + (watch [it state _] + (let [file-data + (if (= file-id (:current-file-id state)) + (:workspace-data state) + (get-in state [:workspace-libraries file-id :data])) + + changes + (-> (pcb/empty-changes it) + (pcb/with-file-data file-data) + (assoc :file-id file-id) + (pcb/mod-plugin-data type id page-id namespace key value))] + (rx/of (dch/commit-changes changes))))))) + (declare purge-page) (declare go-to-file) diff --git a/frontend/src/app/main/ui/workspace/plugins.cljs b/frontend/src/app/main/ui/workspace/plugins.cljs index a6eca7efd3..7cca4d86c4 100644 --- a/frontend/src/app/main/ui/workspace/plugins.cljs +++ b/frontend/src/app/main/ui/workspace/plugins.cljs @@ -73,14 +73,14 @@ (defn open-plugin! [{:keys [plugin-id name description host code icon permissions]}] (.ɵloadPlugin - js/window #js - {:pluginId plugin-id - :name name - :description description - :host host - :code code - :icon icon - :permissions (apply array permissions)})) + js/window + #js {:pluginId plugin-id + :name name + :description description + :host host + :code code + :icon icon + :permissions (apply array permissions)})) (mf/defc plugin-management-dialog {::mf/register modal/components diff --git a/frontend/src/app/plugins.cljs b/frontend/src/app/plugins.cljs index 8bd6d5ebbe..ac48f5c080 100644 --- a/frontend/src/app/plugins.cljs +++ b/frontend/src/app/plugins.cljs @@ -26,5 +26,4 @@ (fn [] (when (features/active-feature? @st/state "plugins/runtime") (when-let [init-runtime (obj/get global "initPluginsRuntime")] - (let [context (api/create-context)] - (init-runtime context)))))))) + (init-runtime (fn [plugin-id] (api/create-context plugin-id))))))))) diff --git a/frontend/src/app/plugins/api.cljs b/frontend/src/app/plugins/api.cljs index 66bd6ee750..4d682593cc 100644 --- a/frontend/src/app/plugins/api.cljs +++ b/frontend/src/app/plugins/api.cljs @@ -35,7 +35,7 @@ ;; PLUGINS PUBLIC API - The plugins will able to access this functions ;; (defn create-shape - [type] + [plugin-id type] (let [page-id (:current-page-id @st/state) page (dm/get-in @st/state [:workspace-data :pages-index page-id]) shape (cts/setup-shape {:type type @@ -46,13 +46,13 @@ (cb/with-objects (:objects page)) (cb/add-object shape))] (st/emit! (ch/commit-changes changes)) - (shape/shape-proxy (:id shape)))) + (shape/shape-proxy plugin-id (:id shape)))) -(deftype PenpotContext [] +(deftype PenpotContext [$plugin] Object (addListener [_ type callback] - (events/add-listener type callback)) + (events/add-listener type $plugin callback)) (removeListener [_ listener-id] @@ -60,17 +60,17 @@ (getViewport [_] - (viewport/create-proxy)) + (viewport/create-proxy $plugin)) (getFile [_] - (file/file-proxy (:current-file-id @st/state))) + (file/file-proxy $plugin (:current-file-id @st/state))) (getPage [_] (let [file-id (:current-file-id @st/state) page-id (:current-page-id @st/state)] - (page/page-proxy file-id page-id))) + (page/page-proxy $plugin file-id page-id))) (getSelected [_] @@ -80,11 +80,11 @@ (getSelectedShapes [_] (let [selection (get-in @st/state [:workspace-local :selected])] - (apply array (sequence (map shape/shape-proxy) selection)))) + (apply array (sequence (map (partial shape/shape-proxy $plugin)) selection)))) (getRoot [_] - (shape/shape-proxy uuid/zero)) + (shape/shape-proxy $plugin uuid/zero)) (getTheme [_] @@ -95,7 +95,7 @@ (getCurrentUser [_] - (user/current-user-proxy (:session-id @st/state))) + (user/current-user-proxy $plugin (:session-id @st/state))) (getActiveUsers [_] @@ -103,7 +103,7 @@ (->> (:workspace-presence @st/state) (vals) (remove #(= (:id %) (:session-id @st/state))) - (map #(user/active-user-proxy (:id %)))))) + (map #(user/active-user-proxy $plugin (:id %)))))) (uploadMediaUrl [_ name url] @@ -122,7 +122,7 @@ id (uuid/next) ids (into #{} (map #(obj/get % "$id")) shapes)] (st/emit! (dwg/group-shapes id ids)) - (shape/shape-proxy file-id page-id id))) + (shape/shape-proxy $plugin file-id page-id id))) (ungroup [_ group & rest] @@ -132,15 +132,15 @@ (createFrame [_] - (create-shape :frame)) + (create-shape $plugin :frame)) (createRectangle [_] - (create-shape :rect)) + (create-shape $plugin :rect)) (createEllipse [_] - (create-shape :circle)) + (create-shape $plugin :circle)) (createPath [_] @@ -156,7 +156,7 @@ (cb/with-objects (:objects page)) (cb/add-object shape))] (st/emit! (ch/commit-changes changes)) - (shape/shape-proxy (:id shape)))) + (shape/shape-proxy $plugin (:id shape)))) (createText [_ text] @@ -172,7 +172,7 @@ (cb/with-objects (:objects page)) (cb/add-object shape))] (st/emit! (ch/commit-changes changes)) - (shape/shape-proxy file-id page-id (:id shape)))) + (shape/shape-proxy $plugin file-id page-id (:id shape)))) (createShapeFromSvg [_ svg-string] @@ -181,7 +181,7 @@ file-id (:current-file-id @st/state) page-id (:current-page-id @st/state)] (st/emit! (dwm/create-svg-shape id "svg" svg-string (gpt/point 0 0))) - (shape/shape-proxy file-id page-id id)))) + (shape/shape-proxy $plugin file-id page-id id)))) (createBoolean [_ bool-type shapes] (let [ids (into #{} (map #(obj/get % "$id")) shapes) @@ -190,14 +190,15 @@ (if (contains? cts/bool-types bool-type) (let [id-ret (atom nil)] (st/emit! (dwb/create-bool bool-type ids {:id-ret id-ret})) - (shape/shape-proxy @id-ret)) + (shape/shape-proxy $plugin @id-ret)) (utils/display-not-valid :bool-shape bool-type))))) (defn create-context - [] + [plugin-id] (cr/add-properties! - (PenpotContext.) + (PenpotContext. plugin-id) + {:name "$plugin" :enumerable false :get (constantly plugin-id)} {:name "root" :get #(.getRoot ^js %)} {:name "currentFile" :get #(.getFile ^js %)} {:name "currentPage" :get #(.getPage ^js %)} @@ -205,4 +206,4 @@ {:name "viewport" :get #(.getViewport ^js %)} {:name "currentUser" :get #(.getCurrentUser ^js %)} {:name "activeUsers" :get #(.getActiveUsers ^js %)} - {:name "library" :get (fn [_] (library/library-subcontext))})) + {:name "library" :get (fn [_] (library/library-subcontext plugin-id))})) diff --git a/frontend/src/app/plugins/events.cljs b/frontend/src/app/plugins/events.cljs index 6405c8a7b8..eada65d67c 100644 --- a/frontend/src/app/plugins/events.cljs +++ b/frontend/src/app/plugins/events.cljs @@ -15,7 +15,7 @@ (defmulti handle-state-change (fn [type _] type)) (defmethod handle-state-change "finish" - [_ old-val new-val] + [_ _ old-val new-val] (let [old-file-id (:current-file-id old-val) new-file-id (:current-file-id new-val)] (if (and (some? old-file-id) (nil? new-file-id)) @@ -23,7 +23,7 @@ ::not-changed))) (defmethod handle-state-change "filechange" - [_ old-val new-val] + [_ plugin-id old-val new-val] (let [old-file (:workspace-file old-val) new-file (:workspace-file new-val) old-data (:workspace-data old-val) @@ -31,10 +31,10 @@ (if (and (identical? old-file new-file) (identical? old-data new-data)) ::not-changed - (file/file-proxy (:id new-file))))) + (file/file-proxy plugin-id (:id new-file))))) (defmethod handle-state-change "pagechange" - [_ old-val new-val] + [_ plugin-id old-val new-val] (let [file-id (:current-file-id new-val) old-page-id (:current-page-id old-val) new-page-id (:current-page-id new-val) @@ -42,10 +42,10 @@ new-page (dm/get-in new-val [:workspace-data :pages-index new-page-id])] (if (identical? old-page new-page) ::not-changed - (page/page-proxy file-id new-page-id)))) + (page/page-proxy plugin-id file-id new-page-id)))) (defmethod handle-state-change "selectionchange" - [_ old-val new-val] + [_ _ old-val new-val] (let [old-selection (get-in old-val [:workspace-local :selected]) new-selection (get-in new-val [:workspace-local :selected])] (if (identical? old-selection new-selection) @@ -53,7 +53,7 @@ (apply array (map str new-selection))))) (defmethod handle-state-change "themechange" - [_ old-val new-val] + [_ _ old-val new-val] (let [old-theme (get-in old-val [:profile :theme]) new-theme (get-in new-val [:profile :theme])] (if (identical? old-theme new-theme) @@ -63,17 +63,17 @@ new-theme)))) (defmethod handle-state-change :default - [_ _ _] + [_ _ _ _] ::not-changed) (defn add-listener - [type callback] + [type plugin-id callback] (let [key (js/Symbol) callback (gf/debounce callback 10)] (add-watch st/state key (fn [_ _ old-val new-val] - (let [result (handle-state-change type old-val new-val)] + (let [result (handle-state-change type plugin-id old-val new-val)] (when (not= ::not-changed result) (callback result))))) diff --git a/frontend/src/app/plugins/file.cljs b/frontend/src/app/plugins/file.cljs index ec9b843bfc..1fd74e29ee 100644 --- a/frontend/src/app/plugins/file.cljs +++ b/frontend/src/app/plugins/file.cljs @@ -9,15 +9,84 @@ (:require [app.common.data.macros :as dm] [app.common.record :as crc] + [app.main.data.workspace :as dw] + [app.main.store :as st] [app.plugins.page :as page] - [app.plugins.utils :refer [locate-file proxy->file]] + [app.plugins.utils :as u] [app.util.object :as obj])) -(deftype FileProxy [$id] +(deftype FileProxy [$plugin $id] Object (getPages [_] - (let [file (locate-file $id)] - (apply array (sequence (map #(page/page-proxy $id %)) (dm/get-in file [:data :pages])))))) + (let [file (u/locate-file $id)] + (apply array (sequence (map #(page/page-proxy $plugin $id %)) (dm/get-in file [:data :pages]))))) + + ;; Plugin data + (getPluginData + [self key] + (cond + (not (string? key)) + (u/display-not-valid :file-plugin-data-key key) + + :else + (let [file (u/proxy->file self)] + (dm/get-in file [:data :plugin-data (keyword "plugin" (str $plugin)) key])))) + + (setPluginData + [_ key value] + (cond + (not (string? key)) + (u/display-not-valid :file-plugin-data-key key) + + (and (some? value) (not (string? value))) + (u/display-not-valid :file-plugin-data value) + + :else + (st/emit! (dw/set-plugin-data $id :file (keyword "plugin" (str $plugin)) key value)))) + + (getPluginDataKeys + [self] + (let [file (u/proxy->file self)] + (apply array (keys (dm/get-in file [:data :plugin-data (keyword "plugin" (str $plugin))]))))) + + (getSharedPluginData + [self namespace key] + (cond + (not (string? namespace)) + (u/display-not-valid :file-plugin-data-namespace namespace) + + (not (string? key)) + (u/display-not-valid :file-plugin-data-key key) + + :else + (let [file (u/proxy->file self)] + (dm/get-in file [:data :plugin-data (keyword "shared" namespace) key])))) + + (setSharedPluginData + [_ namespace key value] + + (cond + (not (string? namespace)) + (u/display-not-valid :file-plugin-data-namespace namespace) + + (not (string? key)) + (u/display-not-valid :file-plugin-data-key key) + + (and (some? value) (not (string? value))) + (u/display-not-valid :file-plugin-data value) + + :else + (st/emit! (dw/set-plugin-data $id :file (keyword "shared" namespace) key value)))) + + (getSharedPluginDataKeys + [self namespace] + (cond + (not (string? namespace)) + (u/display-not-valid :file-plugin-data-namespace namespace) + + :else + (let [file (u/proxy->file self)] + (apply array (keys (dm/get-in file [:data :plugin-data (keyword "shared" namespace)]))))))) (crc/define-properties! FileProxy @@ -25,16 +94,17 @@ :get (fn [] (str "FileProxy"))}) (defn file-proxy - [id] + [plugin-id id] (crc/add-properties! - (FileProxy. id) + (FileProxy. plugin-id id) + {:name "$plugin" :enumerable false :get (constantly plugin-id)} {:name "$id" :enumerable false :get (constantly id)} {:name "id" :get #(dm/str (obj/get % "$id"))} {:name "name" - :get #(-> % proxy->file :name)} + :get #(-> % u/proxy->file :name)} {:name "pages" :get #(.getPages ^js %)})) diff --git a/frontend/src/app/plugins/flex.cljs b/frontend/src/app/plugins/flex.cljs index cf47cd7f87..e379fcba4a 100644 --- a/frontend/src/app/plugins/flex.cljs +++ b/frontend/src/app/plugins/flex.cljs @@ -17,7 +17,7 @@ [app.util.object :as obj] [potok.v2.core :as ptk])) -(deftype FlexLayout [$file $page $id] +(deftype FlexLayout [$plugin $file $page $id] Object (remove [_] @@ -30,9 +30,10 @@ (ptk/data-event :layout/update {:ids [$id]}))))) (defn flex-layout-proxy - [file-id page-id id] - (-> (FlexLayout. file-id page-id id) + [plugin-id file-id page-id id] + (-> (FlexLayout. plugin-id file-id page-id id) (crc/add-properties! + {:name "$plugin" :enumerable false :get (constantly plugin-id)} {:name "$id" :enumerable false :get (constantly id)} {:name "$file" :enumerable false :get (constantly file-id)} {:name "$page" :enumerable false :get (constantly page-id)} @@ -148,12 +149,13 @@ (st/emit! (dwsl/update-layout #{id} {:layout-padding {:p4 value}})))))}))) -(deftype LayoutChildProxy [$file $page $id]) +(deftype LayoutChildProxy [$plugin $file $page $id]) (defn layout-child-proxy - [file-id page-id id] - (-> (LayoutChildProxy. file-id page-id id) + [plugin-id file-id page-id id] + (-> (LayoutChildProxy. plugin-id file-id page-id id) (crc/add-properties! + {:name "$plugin" :enumerable false :get (constantly plugin-id)} {:name "$id" :enumerable false :get (constantly id)} {:name "$file" :enumerable false :get (constantly file-id)} {:name "$page" :enumerable false :get (constantly page-id)} diff --git a/frontend/src/app/plugins/grid.cljs b/frontend/src/app/plugins/grid.cljs index e254e815ea..8b0f49ab9f 100644 --- a/frontend/src/app/plugins/grid.cljs +++ b/frontend/src/app/plugins/grid.cljs @@ -23,7 +23,7 @@ js/Object (apply array (->> tracks (map utils/to-js))))) -(deftype GridLayout [$file $page $id] +(deftype GridLayout [$plugin $file $page $id] Object (addRow @@ -75,9 +75,10 @@ (ptk/data-event :layout/update {:ids [$id]}))))) (defn grid-layout-proxy - [file-id page-id id] - (-> (GridLayout. file-id page-id id) + [plugin-id file-id page-id id] + (-> (GridLayout. plugin-id file-id page-id id) (crc/add-properties! + {:name "$plugin" :enumerable false :get (constantly plugin-id)} {:name "$id" :enumerable false :get (constantly id)} {:name "$file" :enumerable false :get (constantly file-id)} {:name "$page" :enumerable false :get (constantly page-id)} @@ -164,7 +165,6 @@ (when (us/safe-int? value) (st/emit! (dwsl/update-layout #{id} {:layout-padding {:p2 value :p4 value}})))))} - {:name "topPadding" :get #(-> % proxy->shape :layout-padding :p1) :set @@ -197,17 +197,18 @@ (when (us/safe-int? value) (st/emit! (dwsl/update-layout #{id} {:layout-padding {:p4 value}})))))}))) -(deftype GridCellProxy [$file $page $id]) +(deftype GridCellProxy [$plugin $file $page $id]) (defn layout-cell-proxy - [file-id page-id id] + [plugin-id file-id page-id id] (letfn [(locate-cell [_] (let [shape (locate-shape file-id page-id id) parent (locate-shape file-id page-id (:parent-id shape))] (ctl/get-cell-by-shape-id parent id)))] - (-> (GridCellProxy. file-id page-id id) + (-> (GridCellProxy. plugin-id file-id page-id id) (crc/add-properties! + {:name "$plugin" :enumerable false :get (constantly plugin-id)} {:name "$id" :enumerable false :get (constantly id)} {:name "$file" :enumerable false :get (constantly file-id)} {:name "$page" :enumerable false :get (constantly page-id)} diff --git a/frontend/src/app/plugins/library.cljs b/frontend/src/app/plugins/library.cljs index b588e61a24..6f6f87ed38 100644 --- a/frontend/src/app/plugins/library.cljs +++ b/frontend/src/app/plugins/library.cljs @@ -16,6 +16,7 @@ [app.common.types.color :as ctc] [app.common.types.typography :as ctt] [app.common.uuid :as uuid] + [app.main.data.workspace :as dw] [app.main.data.workspace.libraries :as dwl] [app.main.data.workspace.texts :as dwt] [app.main.store :as st] @@ -26,7 +27,7 @@ (declare lib-color-proxy) (declare lib-typography-proxy) -(deftype LibraryColorProxy [$file $id] +(deftype LibraryColorProxy [$plugin $file $id] Object (remove @@ -39,7 +40,7 @@ color (-> (u/locate-library-color $file $id) (assoc :id color-id))] (st/emit! (dwl/add-color color {:rename? false})) - (lib-color-proxy $id color-id))) + (lib-color-proxy $plugin $id color-id))) (asFill [_] (let [color (u/locate-library-color $file $id)] @@ -63,15 +64,87 @@ :stroke-color-ref-id $id :stroke-image (:image color) :stroke-style :solid - :stroke-alignment :inner}))))) + :stroke-alignment :inner})))) + + (getPluginData + [self key] + (cond + (not (string? key)) + (u/display-not-valid :color-plugin-data-key key) + + :else + (let [color (u/proxy->library-color self)] + (dm/get-in color [:plugin-data (keyword "plugin" (str $plugin)) key])))) + + (setPluginData + [_ key value] + (cond + (not= $file (:current-file-id @st/state)) + (u/display-not-valid :color-edit-non-local-library $file) + + (not (string? key)) + (u/display-not-valid :color-plugin-data-key key) + + (and (some? value) (not (string? value))) + (u/display-not-valid :color-plugin-data value) + + :else + (st/emit! (dw/set-plugin-data $file :color $id (keyword "plugin" (str $plugin)) key value)))) + + (getPluginDataKeys + [self] + (let [color (u/proxy->library-color self)] + (apply array (keys (dm/get-in color [:plugin-data (keyword "plugin" (str $plugin))]))))) + + (getSharedPluginData + [self namespace key] + (cond + (not (string? namespace)) + (u/display-not-valid :color-plugin-data-namespace namespace) + + (not (string? key)) + (u/display-not-valid :color-plugin-data-key key) + + :else + (let [color (u/proxy->library-color self)] + (dm/get-in color [:plugin-data (keyword "shared" namespace) key])))) + + (setSharedPluginData + [_ namespace key value] + (cond + (not= $file (:current-file-id @st/state)) + (u/display-not-valid :color-edit-non-local-library $file) + + (not (string? namespace)) + (u/display-not-valid :color-plugin-data-namespace namespace) + + (not (string? key)) + (u/display-not-valid :color-plugin-data-key key) + + (and (some? value) (not (string? value))) + (u/display-not-valid :color-plugin-data value) + + :else + (st/emit! (dw/set-plugin-data $file :color $id (keyword "shared" namespace) key value)))) + + (getSharedPluginDataKeys + [self namespace] + (cond + (not (string? namespace)) + (u/display-not-valid :color-plugin-data-namespace namespace) + + :else + (let [color (u/proxy->library-color self)] + (apply array (keys (dm/get-in color [:plugin-data (keyword "shared" namespace)]))))))) (defn lib-color-proxy - [file-id id] + [plugin-id file-id id] (assert (uuid? file-id)) (assert (uuid? id)) (cr/add-properties! - (LibraryColorProxy. file-id id) + (LibraryColorProxy. plugin-id file-id id) + {:name "$plugin" :enumerable false :get (constantly plugin-id)} {:name "$id" :enumerable false :get (constantly id)} {:name "$file" :enumerable false :get (constantly file-id)} @@ -139,7 +212,7 @@ (st/emit! (dwl/update-color color file-id))) (u/display-not-valid :library-color-image value))))})) -(deftype LibraryTypographyProxy [$file $id] +(deftype LibraryTypographyProxy [$plugin $file $id] Object (remove [_] @@ -151,7 +224,7 @@ typo (-> (u/locate-library-typography $file $id) (assoc :id typo-id))] (st/emit! (dwl/add-typography typo false)) - (lib-typography-proxy $id typo-id))) + (lib-typography-proxy $plugin $id typo-id))) (applyToText [_ shape] @@ -162,15 +235,88 @@ (applyToTextRange [_ _shape _from _to] ;; TODO - )) + ) + + ;; PLUGIN DATA + (getPluginData + [self key] + (cond + (not (string? key)) + (u/display-not-valid :typography-plugin-data-key key) + + :else + (let [typography (u/proxy->library-typography self)] + (dm/get-in typography [:plugin-data (keyword "plugin" (str $plugin)) key])))) + + (setPluginData + [_ key value] + (cond + (not= $file (:current-file-id @st/state)) + (u/display-not-valid :typography-edit-non-local-library $file) + + (not (string? key)) + (u/display-not-valid :typography-plugin-data-key key) + + (and (some? value) (not (string? value))) + (u/display-not-valid :typography-plugin-data value) + + :else + (st/emit! (dw/set-plugin-data $file :typography $id (keyword "plugin" (str $plugin)) key value)))) + + (getPluginDataKeys + [self] + (let [typography (u/proxy->library-typography self)] + (apply array (keys (dm/get-in typography [:plugin-data (keyword "plugin" (str $plugin))]))))) + + (getSharedPluginData + [self namespace key] + (cond + (not (string? namespace)) + (u/display-not-valid :typography-plugin-data-namespace namespace) + + (not (string? key)) + (u/display-not-valid :typography-plugin-data-key key) + + :else + (let [typography (u/proxy->library-typography self)] + (dm/get-in typography [:plugin-data (keyword "shared" namespace) key])))) + + (setSharedPluginData + [_ namespace key value] + (cond + (not= $file (:current-file-id @st/state)) + (u/display-not-valid :typography-edit-non-local-library $file) + + (not (string? namespace)) + (u/display-not-valid :typography-plugin-data-namespace namespace) + + (not (string? key)) + (u/display-not-valid :typography-plugin-data-key key) + + (and (some? value) (not (string? value))) + (u/display-not-valid :typography-plugin-data value) + + :else + (st/emit! (dw/set-plugin-data $file :typography $id (keyword "shared" namespace) key value)))) + + (getSharedPluginDataKeys + [self namespace] + (cond + (not (string? namespace)) + (u/display-not-valid :typography-plugin-data-namespace namespace) + + :else + (let [typography (u/proxy->library-typography self)] + (apply array (keys (dm/get-in typography [:plugin-data (keyword "shared" namespace)]))))))) (defn lib-typography-proxy - [file-id id] + [plugin-id file-id id] (assert (uuid? file-id)) (assert (uuid? id)) (cr/add-properties! - (LibraryTypographyProxy. file-id id) + (LibraryTypographyProxy. plugin-id file-id id) + {:name "$plugin" :enumerable false :get (constantly plugin-id)} {:name "$id" :enumerable false :get (constantly id)} {:name "$file" :enumerable false :get (constantly file-id)} {:name "id" :get (fn [_] (dm/str id))} @@ -285,7 +431,7 @@ (st/emit! (dwl/update-typography typo file-id))) (u/display-not-valid :library-typography-text-transform value)))})) -(deftype LibraryComponentProxy [$file $id] +(deftype LibraryComponentProxy [$plugin $file $id] Object (remove @@ -296,15 +442,87 @@ [_] (let [id-ref (atom nil)] (st/emit! (dwl/instantiate-component $file $id (gpt/point 0 0) {:id-ref id-ref})) - (shapes/shape-proxy @id-ref)))) + (shapes/shape-proxy $plugin @id-ref))) + + (getPluginData + [self key] + (cond + (not (string? key)) + (u/display-not-valid :component-plugin-data-key key) + + :else + (let [component (u/proxy->library-component self)] + (dm/get-in component [:plugin-data (keyword "plugin" (str $plugin)) key])))) + + (setPluginData + [_ key value] + (cond + (not= $file (:current-file-id @st/state)) + (u/display-not-valid :component-edit-non-local-library $file) + + (not (string? key)) + (u/display-not-valid :component-plugin-data-key key) + + (and (some? value) (not (string? value))) + (u/display-not-valid :component-plugin-data value) + + :else + (st/emit! (dw/set-plugin-data $file :component $id (keyword "plugin" (str $plugin)) key value)))) + + (getPluginDataKeys + [self] + (let [component (u/proxy->library-component self)] + (apply array (keys (dm/get-in component [:plugin-data (keyword "plugin" (str $plugin))]))))) + + (getSharedPluginData + [self namespace key] + (cond + (not (string? namespace)) + (u/display-not-valid :component-plugin-data-namespace namespace) + + (not (string? key)) + (u/display-not-valid :component-plugin-data-key key) + + :else + (let [component (u/proxy->library-component self)] + (dm/get-in component [:plugin-data (keyword "shared" namespace) key])))) + + (setSharedPluginData + [_ namespace key value] + (cond + (not= $file (:current-file-id @st/state)) + (u/display-not-valid :component-edit-non-local-library $file) + + (not (string? namespace)) + (u/display-not-valid :component-plugin-data-namespace namespace) + + (not (string? key)) + (u/display-not-valid :component-plugin-data-key key) + + (and (some? value) (not (string? value))) + (u/display-not-valid :component-plugin-data value) + + :else + (st/emit! (dw/set-plugin-data $file :component $id (keyword "shared" namespace) key value)))) + + (getSharedPluginDataKeys + [self namespace] + (cond + (not (string? namespace)) + (u/display-not-valid :component-plugin-data-namespace namespace) + + :else + (let [component (u/proxy->library-component self)] + (apply array (keys (dm/get-in component [:plugin-data (keyword "shared" namespace)]))))))) (defn lib-component-proxy - [file-id id] + [plugin-id file-id id] (assert (uuid? file-id)) (assert (uuid? id)) (cr/add-properties! - (LibraryComponentProxy. file-id id) + (LibraryComponentProxy. plugin-id file-id id) + {:name "$plugin" :enumerable false :get (constantly plugin-id)} {:name "$id" :enumerable false :get (constantly id)} {:name "$file" :enumerable false :get (constantly file-id)} {:name "id" :get (fn [_] (dm/str id))} @@ -329,34 +547,102 @@ (st/emit! (dwl/rename-component id value))) (u/display-not-valid :library-component-path value)))})) -(deftype Library [$id] +(deftype Library [$plugin $id] Object (createColor [_] (let [color-id (uuid/next)] (st/emit! (dwl/add-color {:id color-id :name "Color" :color "#000000" :opacity 1} {:rename? false})) - (lib-color-proxy $id color-id))) + (lib-color-proxy $plugin $id color-id))) (createTypography [_] (let [typography-id (uuid/next)] (st/emit! (dwl/add-typography (ctt/make-typography {:id typography-id :name "Typography"}) false)) - (lib-typography-proxy $id typography-id))) + (lib-typography-proxy $plugin $id typography-id))) (createComponent [_ shapes] (let [id-ref (atom nil) ids (into #{} (map #(obj/get % "$id")) shapes)] (st/emit! (dwl/add-component id-ref ids)) - (lib-component-proxy $id @id-ref)))) + (lib-component-proxy $plugin $id @id-ref))) + + ;; Plugin data + (getPluginData + [self key] + (cond + (not (string? key)) + (u/display-not-valid :file-plugin-data-key key) + + :else + (let [file (u/proxy->file self)] + (dm/get-in file [:data :plugin-data (keyword "plugin" (str $plugin)) key])))) + + (setPluginData + [_ key value] + (cond + (not (string? key)) + (u/display-not-valid :file-plugin-data-key key) + + (and (some? value) (not (string? value))) + (u/display-not-valid :file-plugin-data value) + + :else + (st/emit! (dw/set-plugin-data $id :file (keyword "plugin" (str $plugin)) key value)))) + + (getPluginDataKeys + [self] + (let [file (u/proxy->file self)] + (apply array (keys (dm/get-in file [:data :plugin-data (keyword "plugin" (str $plugin))]))))) + + (getSharedPluginData + [self namespace key] + (cond + (not (string? namespace)) + (u/display-not-valid :file-plugin-data-namespace namespace) + + (not (string? key)) + (u/display-not-valid :file-plugin-data-key key) + + :else + (let [file (u/proxy->file self)] + (dm/get-in file [:data :plugin-data (keyword "shared" namespace) key])))) + + (setSharedPluginData + [_ namespace key value] + + (cond + (not (string? namespace)) + (u/display-not-valid :file-plugin-data-namespace namespace) + + (not (string? key)) + (u/display-not-valid :file-plugin-data-key key) + + (and (some? value) (not (string? value))) + (u/display-not-valid :file-plugin-data value) + + :else + (st/emit! (dw/set-plugin-data $id :file (keyword "shared" namespace) key value)))) + + (getSharedPluginDataKeys + [self namespace] + (cond + (not (string? namespace)) + (u/display-not-valid :file-plugin-data-namespace namespace) + + :else + (let [file (u/proxy->file self)] + (apply array (keys (dm/get-in file [:data :plugin-data (keyword "shared" namespace)]))))))) (defn library-proxy - [file-id] + [plugin-id file-id] (assert (uuid? file-id) "File id not valid") (cr/add-properties! - (Library. file-id) + (Library. plugin-id file-id) + {:name "$plugin" :enumerable false :get (constantly plugin-id)} {:name "$file" :enumerable false :get (constantly file-id)} {:name "id" @@ -369,14 +655,14 @@ :get (fn [_] (let [file (u/locate-file file-id) - colors (->> file :data :colors keys (map #(lib-color-proxy file-id %)))] + colors (->> file :data :colors keys (map #(lib-color-proxy plugin-id file-id %)))] (apply array colors)))} {:name "typographies" :get (fn [_] (let [file (u/locate-file file-id) - typographies (->> file :data :typographies keys (map #(lib-typography-proxy file-id %)))] + typographies (->> file :data :typographies keys (map #(lib-typography-proxy plugin-id file-id %)))] (apply array typographies)))} {:name "components" @@ -388,10 +674,10 @@ :components (remove (comp :deleted second)) (map first) - (map #(lib-component-proxy file-id %)))] + (map #(lib-component-proxy plugin-id file-id %)))] (apply array components)))})) -(deftype PenpotLibrarySubcontext [] +(deftype PenpotLibrarySubcontext [$plugin] Object (find [_ _name]) @@ -399,14 +685,15 @@ (find [_])) (defn library-subcontext - [] + [plugin-id] (cr/add-properties! - (PenpotLibrarySubcontext.) + (PenpotLibrarySubcontext. plugin-id) + {:name "$plugin" :enumerable false :get (constantly plugin-id)} {:name "local" :get (fn [_] - (library-proxy (:current-file-id @st/state)))} + (library-proxy plugin-id (:current-file-id @st/state)))} {:name "connected" :get (fn [_] (let [libraries (get @st/state :workspace-libraries)] - (apply array (->> libraries vals (map library-proxy)))))})) + (apply array (->> libraries keys (map (partial library-proxy plugin-id))))))})) diff --git a/frontend/src/app/plugins/page.cljs b/frontend/src/app/plugins/page.cljs index 4e3140264d..35c1a9dd59 100644 --- a/frontend/src/app/plugins/page.cljs +++ b/frontend/src/app/plugins/page.cljs @@ -17,23 +17,90 @@ [app.plugins.utils :as u] [app.util.object :as obj])) -(deftype PageProxy [$file $id] +(deftype PageProxy [$plugin $file $id] Object (getShapeById [_ shape-id] (let [shape-id (uuid/uuid shape-id)] - (shape/shape-proxy $file $id shape-id))) + (shape/shape-proxy $plugin $file $id shape-id))) (getRoot [_] - (shape/shape-proxy $file $id uuid/zero)) + (shape/shape-proxy $plugin $file $id uuid/zero)) (findShapes [_] ;; Returns a lazy (iterable) of all available shapes (when (and (some? $file) (some? $id)) (let [page (u/locate-page $file $id)] - (apply array (sequence (map shape/shape-proxy) (keys (:objects page)))))))) + (apply array (sequence (map (partial shape/shape-proxy $plugin)) (keys (:objects page))))))) + + ;; Plugin data + (getPluginData + [self key] + (cond + (not (string? key)) + (u/display-not-valid :page-plugin-data-key key) + + :else + (let [page (u/proxy->page self)] + (dm/get-in page [:options :plugin-data (keyword "plugin" (str $plugin)) key])))) + + (setPluginData + [_ key value] + (cond + (not (string? key)) + (u/display-not-valid :page-plugin-data-key key) + + (and (some? value) (not (string? value))) + (u/display-not-valid :page-plugin-data value) + + :else + (st/emit! (dw/set-plugin-data $file :page $id (keyword "plugin" (str $plugin)) key value)))) + + (getPluginDataKeys + [self] + (let [page (u/proxy->page self)] + (apply array (keys (dm/get-in page [:options :plugin-data (keyword "plugin" (str $plugin))]))))) + + (getSharedPluginData + [self namespace key] + (cond + (not (string? namespace)) + (u/display-not-valid :page-plugin-data-namespace namespace) + + (not (string? key)) + (u/display-not-valid :page-plugin-data-key key) + + :else + (let [page (u/proxy->page self)] + (dm/get-in page [:options :plugin-data (keyword "shared" namespace) key])))) + + (setSharedPluginData + [_ namespace key value] + + (cond + (not (string? namespace)) + (u/display-not-valid :page-plugin-data-namespace namespace) + + (not (string? key)) + (u/display-not-valid :page-plugin-data-key key) + + (and (some? value) (not (string? value))) + (u/display-not-valid :page-plugin-data value) + + :else + (st/emit! (dw/set-plugin-data $file :page $id (keyword "shared" namespace) key value)))) + + (getSharedPluginDataKeys + [self namespace] + (cond + (not (string? namespace)) + (u/display-not-valid :page-plugin-data-namespace namespace) + + :else + (let [page (u/proxy->page self)] + (apply array (keys (dm/get-in page [:options :plugin-data (keyword "shared" namespace)]))))))) (crc/define-properties! PageProxy @@ -41,9 +108,10 @@ :get (fn [] (str "PageProxy"))}) (defn page-proxy - [file-id id] + [plugin-id file-id id] (crc/add-properties! - (PageProxy. file-id id) + (PageProxy. plugin-id file-id id) + {:name "$plugin" :enumerable false :get (constantly plugin-id)} {:name "$id" :enumerable false :get (constantly id)} {:name "$file" :enumerable false :get (constantly file-id)} diff --git a/frontend/src/app/plugins/shape.cljs b/frontend/src/app/plugins/shape.cljs index a22bbab69c..81ad46bbb2 100644 --- a/frontend/src/app/plugins/shape.cljs +++ b/frontend/src/app/plugins/shape.cljs @@ -9,6 +9,7 @@ (:require [app.common.colors :as clr] [app.common.data :as d] + [app.common.data.macros :as dm] [app.common.files.helpers :as cfh] [app.common.geom.rect :as grc] [app.common.geom.shapes :as gsh] @@ -20,7 +21,7 @@ [app.common.types.shape.layout :as ctl] [app.common.types.shape.radius :as ctsr] [app.common.uuid :as uuid] - [app.main.data.workspace :as udw] + [app.main.data.workspace :as dw] [app.main.data.workspace.groups :as dwg] [app.main.data.workspace.selection :as dws] [app.main.data.workspace.shape-layout :as dwsl] @@ -61,23 +62,90 @@ (dwt/current-paragraph-values {:shape shape :attrs txt/paragraph-attrs}) (dwt/current-text-values {:shape shape :attrs txt/text-node-attrs}))) -(deftype ShapeProxy [$file $page $id] +(deftype ShapeProxy [$plugin $file $page $id] Object (resize [_ width height] - (st/emit! (udw/update-dimensions [$id] :width width) - (udw/update-dimensions [$id] :height height))) + (st/emit! (dw/update-dimensions [$id] :width width) + (dw/update-dimensions [$id] :height height))) (clone [_] (let [ret-v (atom nil)] (st/emit! (dws/duplicate-shapes #{$id} :change-selection? false :return-ref ret-v)) - (shape-proxy (deref ret-v)))) + (shape-proxy $plugin (deref ret-v)))) (remove [_] (st/emit! (dwsh/delete-shapes #{$id}))) + ;; Plugin data + (getPluginData + [self key] + (cond + (not (string? key)) + (u/display-not-valid :shape-plugin-data-key key) + + :else + (let [shape (u/proxy->shape self)] + (dm/get-in shape [:plugin-data (keyword "plugin" (str $plugin)) key])))) + + (setPluginData + [_ key value] + (cond + (not (string? key)) + (u/display-not-valid :shape-plugin-data-key key) + + (and (some? value) (not (string? value))) + (u/display-not-valid :shape-plugin-data value) + + :else + (st/emit! (dw/set-plugin-data $file :shape $id $page (keyword "plugin" (str $plugin)) key value)))) + + (getPluginDataKeys + [self] + (let [shape (u/proxy->shape self)] + (apply array (keys (dm/get-in shape [:plugin-data (keyword "plugin" (str $plugin))]))))) + + (getSharedPluginData + [self namespace key] + (cond + (not (string? namespace)) + (u/display-not-valid :shape-plugin-data-namespace namespace) + + (not (string? key)) + (u/display-not-valid :shape-plugin-data-key key) + + :else + (let [shape (u/proxy->shape self)] + (dm/get-in shape [:plugin-data (keyword "shared" namespace) key])))) + + (setSharedPluginData + [_ namespace key value] + + (cond + (not (string? namespace)) + (u/display-not-valid :shape-plugin-data-namespace namespace) + + (not (string? key)) + (u/display-not-valid :shape-plugin-data-key key) + + (and (some? value) (not (string? value))) + (u/display-not-valid :shape-plugin-data value) + + :else + (st/emit! (dw/set-plugin-data $file :shape $id $page (keyword "shared" namespace) key value)))) + + (getSharedPluginDataKeys + [self namespace] + (cond + (not (string? namespace)) + (u/display-not-valid :shape-plugin-data-namespace namespace) + + :else + (let [shape (u/proxy->shape self)] + (apply array (keys (dm/get-in shape [:plugin-data (keyword "shared" namespace)])))))) + ;; Only for frames + groups + booleans (getChildren [_] @@ -85,7 +153,7 @@ (if (or (cfh/frame-shape? shape) (cfh/group-shape? shape) (cfh/svg-raw-shape? shape) (cfh/bool-shape? shape)) (apply array (->> (u/locate-shape $file $page $id) :shapes - (map #(shape-proxy $file $page %)))) + (map #(shape-proxy $plugin $file $page %)))) (u/display-not-valid :getChildren (:type shape))))) (appendChild @@ -93,7 +161,7 @@ (let [shape (u/locate-shape $file $page $id)] (if (or (cfh/frame-shape? shape) (cfh/group-shape? shape) (cfh/svg-raw-shape? shape) (cfh/bool-shape? shape)) (let [child-id (obj/get child "$id")] - (st/emit! (udw/relocate-shapes #{child-id} $id 0))) + (st/emit! (dw/relocate-shapes #{child-id} $id 0))) (u/display-not-valid :appendChild (:type shape))))) (insertChild @@ -101,7 +169,7 @@ (let [shape (u/locate-shape $file $page $id)] (if (or (cfh/frame-shape? shape) (cfh/group-shape? shape) (cfh/svg-raw-shape? shape) (cfh/bool-shape? shape)) (let [child-id (obj/get child "$id")] - (st/emit! (udw/relocate-shapes #{child-id} $id index))) + (st/emit! (dw/relocate-shapes #{child-id} $id index))) (u/display-not-valid :insertChild (:type shape))))) ;; Only for frames @@ -110,7 +178,7 @@ (let [shape (u/locate-shape $file $page $id)] (if (cfh/frame-shape? shape) (do (st/emit! (dwsl/create-layout-from-id $id :flex :from-frame? true :calculate-params? false)) - (grid/grid-layout-proxy $file $page $id)) + (grid/grid-layout-proxy $plugin $file $page $id)) (u/display-not-valid :addFlexLayout (:type shape))))) (addGridLayout @@ -118,7 +186,7 @@ (let [shape (u/locate-shape $file $page $id)] (if (cfh/frame-shape? shape) (do (st/emit! (dwsl/create-layout-from-id $id :grid :from-frame? true :calculate-params? false)) - (grid/grid-layout-proxy $file $page $id)) + (grid/grid-layout-proxy $plugin $file $page $id)) (u/display-not-valid :addGridLayout (:type shape))))) ;; Make masks for groups @@ -142,6 +210,14 @@ (let [shape (u/locate-shape $file $page $id)] (if (cfh/path-shape? shape) (upf/format-path (:content shape)) + (u/display-not-valid :makeMask (:type shape))))) + + ;; Text shapes + (getRange + [_ _from _to] + (let [shape (u/locate-shape $file $page $id)] + (if (cfh/text-shape? shape) + nil ;; TODO (u/display-not-valid :makeMask (:type shape)))))) (crc/define-properties! @@ -150,20 +226,21 @@ :get (fn [] (str "ShapeProxy"))}) (defn shape-proxy - ([id] - (shape-proxy (:current-file-id @st/state) (:current-page-id @st/state) id)) + ([plugin-id id] + (shape-proxy plugin-id (:current-file-id @st/state) (:current-page-id @st/state) id)) - ([page-id id] - (shape-proxy (:current-file-id @st/state) page-id id)) + ([plugin-id page-id id] + (shape-proxy plugin-id (:current-file-id @st/state) page-id id)) - ([file-id page-id id] + ([plugin-id file-id page-id id] (assert (uuid? file-id)) (assert (uuid? page-id)) (assert (uuid? id)) (let [data (u/locate-shape file-id page-id id)] - (-> (ShapeProxy. file-id page-id id) + (-> (ShapeProxy. plugin-id file-id page-id id) (crc/add-properties! + {:name "$plugin" :enumerable false :get (constantly plugin-id)} {:name "$id" :enumerable false :get (constantly id)} {:name "$file" :enumerable false :get (constantly file-id)} {:name "$page" :enumerable false :get (constantly page-id)} @@ -332,14 +409,14 @@ :set (fn [self value] (let [id (obj/get self "$id")] - (st/emit! (udw/update-position id {:x value}))))} + (st/emit! (dw/update-position id {:x value}))))} {:name "y" :get #(-> % u/proxy->shape :y) :set (fn [self value] (let [id (obj/get self "$id")] - (st/emit! (udw/update-position id {:y value}))))} + (st/emit! (dw/update-position id {:y value}))))} {:name "parentX" :get (fn [self] @@ -353,7 +430,7 @@ parent-id (-> self u/proxy->shape :parent-id) parent (u/locate-shape (obj/get self "$file") (obj/get self "$page") parent-id) parent-x (:x parent)] - (st/emit! (udw/update-position id {:x (+ parent-x value)}))))} + (st/emit! (dw/update-position id {:x (+ parent-x value)}))))} {:name "parentY" :get (fn [self] @@ -368,7 +445,7 @@ parent-id (-> self u/proxy->shape :parent-id) parent (u/locate-shape (obj/get self "$file") (obj/get self "$page") parent-id) parent-y (:y parent)] - (st/emit! (udw/update-position id {:y (+ parent-y value)}))))} + (st/emit! (dw/update-position id {:y (+ parent-y value)}))))} {:name "frameX" :get (fn [self] @@ -383,7 +460,7 @@ frame-id (-> self u/proxy->shape :frame-id) frame (u/locate-shape (obj/get self "$file") (obj/get self "$page") frame-id) frame-x (:x frame)] - (st/emit! (udw/update-position id {:x (+ frame-x value)}))))} + (st/emit! (dw/update-position id {:x (+ frame-x value)}))))} {:name "frameY" :get (fn [self] @@ -398,7 +475,7 @@ frame-id (-> self u/proxy->shape :frame-id) frame (u/locate-shape (obj/get self "$file") (obj/get self "$page") frame-id) frame-y (:y frame)] - (st/emit! (udw/update-position id {:y (+ frame-y value)}))))} + (st/emit! (dw/update-position id {:y (+ frame-y value)}))))} {:name "width" :get #(-> % u/proxy->shape :width)} @@ -437,7 +514,7 @@ id (obj/get self "$id") objects (u/locate-objects file-id page-id)] (when (ctl/any-layout-immediate-child-id? objects id) - (flex/layout-child-proxy file-id page-id id))))} + (flex/layout-child-proxy plugin-id file-id page-id id))))} {:name "layoutCell" :get @@ -447,7 +524,7 @@ id (obj/get self "$id") objects (u/locate-objects file-id page-id)] (when (ctl/grid-layout-immediate-child-id? objects id) - (grid/layout-cell-proxy file-id page-id id))))}) + (grid/layout-cell-proxy plugin-id file-id page-id id))))}) (cond-> (or (cfh/frame-shape? data) (cfh/group-shape? data) (cfh/svg-raw-shape? data) (cfh/bool-shape? data)) (crc/add-properties! @@ -465,7 +542,7 @@ page-id (obj/get self "$page") id (obj/get self "$id")] (when (= :grid layout) - (grid/grid-layout-proxy file-id page-id id))))} + (grid/grid-layout-proxy plugin-id file-id page-id id))))} {:name "flex" :get @@ -475,7 +552,7 @@ page-id (obj/get self "$page") id (obj/get self "$id")] (when (= :flex layout) - (flex/flex-layout-proxy file-id page-id id))))} + (flex/flex-layout-proxy plugin-id file-id page-id id))))} {:name "guides" :get #(-> % u/proxy->shape :grids u/array-to-js) diff --git a/frontend/src/app/plugins/user.cljs b/frontend/src/app/plugins/user.cljs index b7556ecbf8..eb199f5a6b 100644 --- a/frontend/src/app/plugins/user.cljs +++ b/frontend/src/app/plugins/user.cljs @@ -11,14 +11,18 @@ [app.plugins.utils :as u] [app.util.object :as obj])) -(deftype CurrentUserProxy [$session]) -(deftype ActiveUserProxy [$session]) +(deftype CurrentUserProxy [$plugin $session]) +(deftype ActiveUserProxy [$plugin $session]) (defn add-user-properties [user-proxy] - (let [session-id (obj/get user-proxy "$session")] + (let [plugin-id (obj/get user-proxy "$plugin") + session-id (obj/get user-proxy "$session")] (crc/add-properties! user-proxy + {:name "$plugin" :enumerable false :get (constantly plugin-id)} + {:name "$session" :enumerable false :get (constantly session-id)} + {:name "id" :get (fn [_] (-> (u/locate-profile session-id) :id str))} @@ -35,13 +39,13 @@ :get (fn [_] (str session-id))}))) (defn current-user-proxy - [session-id] - (-> (CurrentUserProxy. session-id) + [plugin-id session-id] + (-> (CurrentUserProxy. plugin-id session-id) (add-user-properties))) (defn active-user-proxy - [session-id] - (-> (ActiveUserProxy. session-id) + [plugin-id session-id] + (-> (ActiveUserProxy. plugin-id session-id) (add-user-properties) (crc/add-properties! {:name "position" :get (fn [_] (-> (u/locate-presence session-id) :point u/to-js))} diff --git a/frontend/src/app/plugins/viewport.cljs b/frontend/src/app/plugins/viewport.cljs index 656a65674c..8859f6197a 100644 --- a/frontend/src/app/plugins/viewport.cljs +++ b/frontend/src/app/plugins/viewport.cljs @@ -16,7 +16,7 @@ [app.main.store :as st] [app.util.object :as obj])) -(deftype ViewportProxy [] +(deftype ViewportProxy [$plugin] Object (zoomIntoView [_ shapes] (let [ids @@ -33,9 +33,9 @@ :get (fn [] (str "ViewportProxy"))}) (defn create-proxy - [] + [plugin-id] (crc/add-properties! - (ViewportProxy.) + (ViewportProxy. plugin-id) {:name "center" :get (fn [_] From 33166032f169925e336874fc7237d8a5d195dac1 Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Mon, 10 Jun 2024 14:26:35 +0200 Subject: [PATCH 093/476] :arrow_up: Update plugins runtime --- frontend/resources/plugins-runtime/index.js | 1805 ++++++++++--------- 1 file changed, 903 insertions(+), 902 deletions(-) diff --git a/frontend/resources/plugins-runtime/index.js b/frontend/resources/plugins-runtime/index.js index c97b3c7fed..e3de504aa7 100644 --- a/frontend/resources/plugins-runtime/index.js +++ b/frontend/resources/plugins-runtime/index.js @@ -2,15 +2,15 @@ var Vn = (t, e, r) => { if (!e.has(t)) throw TypeError("Cannot " + r); }; -var Se = (t, e, r) => (Vn(t, e, "read from private field"), r ? r.call(t) : e.get(t)), Br = (t, e, r) => { +var Se = (t, e, r) => (Vn(t, e, "read from private field"), r ? r.call(t) : e.get(t)), Gr = (t, e, r) => { if (e.has(t)) throw TypeError("Cannot add the same private member more than once"); e instanceof WeakSet ? e.add(t) : e.set(t, r); -}, Hr = (t, e, r, n) => (Vn(t, e, "write to private field"), n ? n.call(t, r) : e.set(t, r), r); +}, Br = (t, e, r, n) => (Vn(t, e, "write to private field"), n ? n.call(t, r) : e.set(t, r), r); const k = globalThis, { Array: Hs, Date: Vs, - FinalizationRegistry: Pt, + FinalizationRegistry: kt, Float32Array: Ws, JSON: qs, Map: Pe, @@ -18,35 +18,35 @@ const k = globalThis, { Number: So, Object: bn, Promise: Ys, - Proxy: $r, + Proxy: Cr, Reflect: Js, RegExp: We, - Set: $t, + Set: Ct, String: pe, - Symbol: St, + Symbol: Et, WeakMap: Me, - WeakSet: Nt + WeakSet: $t } = globalThis, { // The feral Error constructor is safe for internal use, but must not be // revealed to post-lockdown code in any compartment including the start // compartment since in V8 at least it bears stack inspection capabilities. Error: ue, RangeError: Xs, - ReferenceError: ut, - SyntaxError: rr, + ReferenceError: lt, + SyntaxError: tr, TypeError: v, - AggregateError: Vr + AggregateError: Hr } = globalThis, { - assign: Nr, - create: Z, + assign: $r, + create: z, defineProperties: F, entries: re, freeze: y, getOwnPropertyDescriptor: J, getOwnPropertyDescriptors: Ze, - getOwnPropertyNames: Ut, + getOwnPropertyNames: Dt, getPrototypeOf: j, - is: Rr, + is: Nr, isFrozen: jl, isSealed: Zl, isExtensible: zl, @@ -56,16 +56,16 @@ const k = globalThis, { preventExtensions: Qs, setPrototypeOf: ko, values: Po, - fromEntries: gt + fromEntries: ht } = bn, { - species: Wr, + species: Vr, toStringTag: qe, - iterator: nr, + iterator: rr, matchAll: To, unscopables: ea, keyFor: ta, for: ra -} = St, { isInteger: na } = So, { stringify: Ao } = qs, { defineProperty: oa } = bn, M = (t, e, r) => { +} = Et, { isInteger: na } = So, { stringify: Ao } = qs, { defineProperty: oa } = bn, M = (t, e, r) => { const n = oa(t, e, r); if (n !== t) throw v( @@ -76,7 +76,7 @@ const k = globalThis, { return n; }, { apply: ne, - construct: gr, + construct: hr, get: sa, getOwnPropertyDescriptor: aa, has: Io, @@ -84,85 +84,85 @@ const k = globalThis, { ownKeys: De, preventExtensions: ca, set: Co -} = Js, { isArray: xt, prototype: _e } = Hs, { prototype: Rt } = Pe, { prototype: Or } = RegExp, { prototype: or } = $t, { prototype: Le } = pe, { prototype: Mr } = Me, { prototype: $o } = Nt, { prototype: En } = Function, { prototype: No } = Ys, { prototype: Ro } = j( +} = Js, { isArray: St, prototype: _e } = Hs, { prototype: Nt } = Pe, { prototype: Rr } = RegExp, { prototype: nr } = Ct, { prototype: Le } = pe, { prototype: Or } = Me, { prototype: $o } = $t, { prototype: En } = Function, { prototype: No } = Ys, { prototype: Ro } = j( // eslint-disable-next-line no-empty-function, func-names function* () { } -), la = j(Uint8Array.prototype), { bind: rn } = En, P = rn.bind(rn.call), oe = P(wn.hasOwnProperty), Ke = P(_e.filter), dt = P(_e.forEach), Lr = P(_e.includes), Ot = P(_e.join), se = ( +), la = j(Uint8Array.prototype), { bind: tn } = En, P = tn.bind(tn.call), oe = P(wn.hasOwnProperty), Ke = P(_e.filter), ut = P(_e.forEach), Mr = P(_e.includes), Rt = P(_e.join), se = ( /** @type {any} */ P(_e.map) ), Oo = ( /** @type {any} */ P(_e.flatMap) -), yr = P(_e.pop), X = P(_e.push), ua = P(_e.slice), da = P(_e.some), Mo = P(_e.sort), fa = P(_e[nr]), $e = P(Rt.set), Ue = P(Rt.get), Fr = P(Rt.has), pa = P(Rt.delete), ma = P(Rt.entries), ha = P(Rt[nr]), Sn = P(or.add); -P(or.delete); -const Wn = P(or.forEach), xn = P(or.has), ga = P(or[nr]), kn = P(Or.test), Pn = P(Or.exec), ya = P(Or[To]), Lo = P(Le.endsWith), Fo = P(Le.includes), va = P(Le.indexOf); +), gr = P(_e.pop), X = P(_e.push), ua = P(_e.slice), da = P(_e.some), Mo = P(_e.sort), fa = P(_e[rr]), $e = P(Nt.set), Ue = P(Nt.get), Lr = P(Nt.has), pa = P(Nt.delete), ma = P(Nt.entries), ha = P(Nt[rr]), Sn = P(nr.add); +P(nr.delete); +const Wn = P(nr.forEach), xn = P(nr.has), ga = P(nr[rr]), kn = P(Rr.test), Pn = P(Rr.exec), ya = P(Rr[To]), Lo = P(Le.endsWith), Fo = P(Le.includes), va = P(Le.indexOf); P(Le.match); -const vr = P(Ro.next), Do = P(Ro.throw), _r = ( +const yr = P(Ro.next), Do = P(Ro.throw), vr = ( /** @type {any} */ P(Le.replace) -), _a = P(Le.search), Tn = P(Le.slice), An = P(Le.split), Uo = P(Le.startsWith), ba = P(Le[nr]), wa = P(Mr.delete), L = P(Mr.get), In = P(Mr.has), ie = P(Mr.set), Dr = P($o.add), sr = P($o.has), Ea = P(En.toString), Sa = P(rn); +), _a = P(Le.search), Tn = P(Le.slice), An = P(Le.split), Uo = P(Le.startsWith), ba = P(Le[rr]), wa = P(Or.delete), L = P(Or.get), In = P(Or.has), ie = P(Or.set), Fr = P($o.add), or = P($o.has), Ea = P(En.toString), Sa = P(tn); P(No.catch); const jo = ( /** @type {any} */ P(No.then) -), xa = Pt && P(Pt.prototype.register); -Pt && P(Pt.prototype.unregister); -const Cn = y(Z(null)), Ye = (t) => bn(t) === t, Ur = (t) => t instanceof ue, Zo = eval, ve = Function, ka = () => { +), xa = kt && P(kt.prototype.register); +kt && P(kt.prototype.unregister); +const Cn = y(z(null)), Ye = (t) => bn(t) === t, Dr = (t) => t instanceof ue, Zo = eval, ve = Function, ka = () => { throw v('Cannot eval with evalTaming set to "noEval" (SES_NO_EVAL)'); -}, He = J(Error("er1"), "stack"), qr = J(v("er2"), "stack"); +}, He = J(Error("er1"), "stack"), Wr = J(v("er2"), "stack"); let zo, Go; -if (He && qr && He.get) +if (He && Wr && He.get) if ( // In the v8 case as we understand it, all errors have an own stack // accessor property, but within the same realm, all these accessor // properties have the same getter and have the same setter. // This is therefore the case that we repair. - typeof He.get == "function" && He.get === qr.get && typeof He.set == "function" && He.set === qr.set + typeof He.get == "function" && He.get === Wr.get && typeof He.set == "function" && He.set === Wr.set ) zo = y(He.get), Go = y(He.set); else throw v( "Unexpected Error own stack accessor functions (SES_UNEXPECTED_ERROR_OWN_STACK_ACCESSOR)" ); -const Kr = zo, Pa = Go; +const qr = zo, Pa = Go; function Ta() { return this; } if (Ta()) throw v("SES failed to initialize, sloppy mode (SES_NO_SLOPPY)"); -const { freeze: at } = Object, { apply: Aa } = Reflect, $n = (t) => (e, ...r) => Aa(t, e, r), Ia = $n(Array.prototype.push), qn = $n(Array.prototype.includes), Ca = $n(String.prototype.split), nt = JSON.stringify, cr = (t, ...e) => { +const { freeze: at } = Object, { apply: Aa } = Reflect, $n = (t) => (e, ...r) => Aa(t, e, r), Ia = $n(Array.prototype.push), qn = $n(Array.prototype.includes), Ca = $n(String.prototype.split), nt = JSON.stringify, ir = (t, ...e) => { let r = t[0]; for (let n = 0; n < e.length; n += 1) r = `${r}${e[n]}${t[n + 1]}`; throw Error(r); }, Bo = (t, e = !1) => { - const r = [], n = (c, l, u = void 0) => { - typeof c == "string" || cr`Environment option name ${nt(c)} must be a string.`, typeof l == "string" || cr`Environment option default setting ${nt( - l + const r = [], n = (c, u, l = void 0) => { + typeof c == "string" || ir`Environment option name ${nt(c)} must be a string.`, typeof u == "string" || ir`Environment option default setting ${nt( + u )} must be a string.`; - let d = l; + let d = u; const f = t.process || void 0, m = typeof f == "object" && f.env || void 0; if (typeof m == "object" && c in m) { e || Ia(r, c); const p = m[c]; - typeof p == "string" || cr`Environment option named ${nt( + typeof p == "string" || ir`Environment option named ${nt( c )}, if present, must have a corresponding string value, got ${nt( p )}`, d = p; } - return u === void 0 || d === l || qn(u, d) || cr`Unrecognized ${nt(c)} value ${nt( + return l === void 0 || d === u || qn(l, d) || ir`Unrecognized ${nt(c)} value ${nt( d - )}. Expected one of ${nt([l, ...u])}`, d; + )}. Expected one of ${nt([u, ...l])}`, d; }; at(n); const o = (c) => { - const l = n(c, ""); - return at(l === "" ? [] : Ca(l, ",")); + const u = n(c, ""); + return at(u === "" ? [] : Ca(u, ",")); }; at(o); - const a = (c, l) => qn(o(c), l), i = () => at([...r]); + const a = (c, u) => qn(o(c), u), i = () => at([...r]); return at(i), at({ getEnvironmentOption: n, getEnvironmentOptionsList: o, @@ -175,36 +175,36 @@ const { getEnvironmentOption: le, getEnvironmentOptionsList: Bl, environmentOptionsListHas: Hl -} = Bo(globalThis, !0), br = (t) => (t = `${t}`, t.length >= 1 && Fo("aeiouAEIOU", t[0]) ? `an ${t}` : `a ${t}`); -y(br); +} = Bo(globalThis, !0), _r = (t) => (t = `${t}`, t.length >= 1 && Fo("aeiouAEIOU", t[0]) ? `an ${t}` : `a ${t}`); +y(_r); const Ho = (t, e = void 0) => { - const r = new $t(), n = (o, a) => { + const r = new Ct(), n = (o, a) => { switch (typeof a) { case "object": { if (a === null) return null; if (xn(r, a)) return "[Seen]"; - if (Sn(r, a), Ur(a)) + if (Sn(r, a), Dr(a)) return `[${a.name}: ${a.message}]`; if (qe in a) return `[${a[qe]}]`; - if (xt(a)) + if (St(a)) return a; const i = xo(a); if (i.length < 2) return a; let c = !0; - for (let u = 1; u < i.length; u += 1) - if (i[u - 1] >= i[u]) { + for (let l = 1; l < i.length; l += 1) + if (i[l - 1] >= i[l]) { c = !1; break; } if (c) return a; Mo(i); - const l = se(i, (u) => [u, a[u]]); - return gt(l); + const u = se(i, (l) => [l, a[l]]); + return ht(u); } case "function": return `[Function ${a.name || ""}]`; @@ -216,7 +216,7 @@ const Ho = (t, e = void 0) => { case "bigint": return `[${a}n]`; case "number": - return Rr(a, NaN) ? "[NaN]" : a === 1 / 0 ? "[Infinity]" : a === -1 / 0 ? "[-Infinity]" : a; + return Nr(a, NaN) ? "[NaN]" : a === 1 / 0 ? "[Infinity]" : a === -1 / 0 ? "[-Infinity]" : a; default: return a; } @@ -228,7 +228,7 @@ const Ho = (t, e = void 0) => { } }; y(Ho); -const { isSafeInteger: $a } = Number, { freeze: _t } = Object, { toStringTag: Na } = Symbol, Kn = (t) => { +const { isSafeInteger: $a } = Number, { freeze: vt } = Object, { toStringTag: Na } = Symbol, Kn = (t) => { const r = { next: void 0, prev: void 0, @@ -242,7 +242,7 @@ const { isSafeInteger: $a } = Number, { freeze: _t } = Object, { toStringTag: Na throw TypeError("Expected self-linked cell"); const r = e, n = t.next; return r.prev = t, r.next = n, t.next = r, n.prev = r, r; -}, Yr = (t) => { +}, Kr = (t) => { const { prev: e, next: r } = t; e.next = r, r.prev = e, t.prev = t, t.next = t; }, Vo = (t) => { @@ -253,46 +253,46 @@ const { isSafeInteger: $a } = Number, { freeze: _t } = Object, { toStringTag: Na const n = Kn(void 0), o = (d) => { const f = e.get(d); if (!(f === void 0 || f.data === void 0)) - return Yr(f), Yn(n, f), f; + return Kr(f), Yn(n, f), f; }, a = (d) => o(d) !== void 0; - _t(a); + vt(a); const i = (d) => { const f = o(d); return f && f.data && f.data.get(d); }; - _t(i); + vt(i); const c = (d, f) => { if (t < 1) - return u; + return l; let m = o(d); if (m === void 0 && (m = Kn(void 0), Yn(n, m)), !m.data) for (r += 1, m.data = /* @__PURE__ */ new WeakMap(), e.set(d, m); r > t; ) { const p = n.prev; - Yr(p), p.data = void 0, r -= 1; + Kr(p), p.data = void 0, r -= 1; } - return m.data.set(d, f), u; + return m.data.set(d, f), l; }; - _t(c); - const l = (d) => { + vt(c); + const u = (d) => { const f = e.get(d); - return f === void 0 || (Yr(f), e.delete(d), f.data === void 0) ? !1 : (f.data = void 0, r -= 1, !0); + return f === void 0 || (Kr(f), e.delete(d), f.data === void 0) ? !1 : (f.data = void 0, r -= 1, !0); }; - _t(l); - const u = _t({ + vt(u); + const l = vt({ has: a, get: i, set: c, - delete: l, + delete: u, // eslint-disable-next-line jsdoc/check-types [ /** @type {typeof Symbol.toStringTag} */ Na ]: "LRUCacheMap" }); - return u; + return l; }; -_t(Vo); -const { freeze: mr } = Object, { isSafeInteger: Ra } = Number, Oa = 1e3, Ma = 100, Wo = (t = Oa, e = Ma) => { +vt(Vo); +const { freeze: pr } = Object, { isSafeInteger: Ra } = Number, Oa = 1e3, Ma = 100, Wo = (t = Oa, e = Ma) => { if (!Ra(e) || e < 1) throw TypeError( "argsPerErrorBudget must be a safe positive integer number" @@ -301,76 +301,76 @@ const { freeze: mr } = Object, { isSafeInteger: Ra } = Number, Oa = 1e3, Ma = 10 const c = r.get(a); c !== void 0 ? (c.length >= e && c.shift(), c.push(i)) : r.set(a, [i]); }; - mr(n); + pr(n); const o = (a) => { const i = r.get(a); return r.delete(a), i; }; - return mr(o), mr({ + return pr(o), pr({ addLogArgs: n, takeLogArgsArray: o }); }; -mr(Wo); -const Tt = new Me(), Je = (t, e = void 0) => { +pr(Wo); +const Pt = new Me(), Je = (t, e = void 0) => { const r = y({ toString: y(() => Ho(t, e)) }); - return ie(Tt, r, t), r; + return ie(Pt, r, t), r; }; y(Je); -const La = y(/^[\w:-]( ?[\w:-])*$/), nn = (t, e = void 0) => { +const La = y(/^[\w:-]( ?[\w:-])*$/), rn = (t, e = void 0) => { if (typeof t != "string" || !kn(La, t)) return Je(t, e); const r = y({ toString: y(() => t) }); - return ie(Tt, r, t), r; + return ie(Pt, r, t), r; }; -y(nn); -const jr = new Me(), qo = ({ template: t, args: e }) => { +y(rn); +const Ur = new Me(), qo = ({ template: t, args: e }) => { const r = [t[0]]; for (let n = 0; n < e.length; n += 1) { const o = e[n]; let a; - In(Tt, o) ? a = `${o}` : Ur(o) ? a = `(${br(o.name)})` : a = `(${br(typeof o)})`, X(r, a, t[n + 1]); + In(Pt, o) ? a = `${o}` : Dr(o) ? a = `(${_r(o.name)})` : a = `(${_r(typeof o)})`, X(r, a, t[n + 1]); } - return Ot(r, ""); + return Rt(r, ""); }, Ko = y({ toString() { - const t = L(jr, this); + const t = L(Ur, this); return t === void 0 ? "[Not a DetailsToken]" : qo(t); } }); y(Ko.toString); -const pt = (t, ...e) => { +const ft = (t, ...e) => { const r = y({ __proto__: Ko }); - return ie(jr, r, { template: t, args: e }), /** @type {DetailsToken} */ + return ie(Ur, r, { template: t, args: e }), /** @type {DetailsToken} */ /** @type {unknown} */ r; }; -y(pt); +y(ft); const Yo = (t, ...e) => (e = se( e, - (r) => In(Tt, r) ? r : Je(r) -), pt(t, ...e)); + (r) => In(Pt, r) ? r : Je(r) +), ft(t, ...e)); y(Yo); const Jo = ({ template: t, args: e }) => { const r = [t[0]]; for (let n = 0; n < e.length; n += 1) { let o = e[n]; - In(Tt, o) && (o = L(Tt, o)); - const a = _r(yr(r) || "", / $/, ""); + In(Pt, o) && (o = L(Pt, o)); + const a = vr(gr(r) || "", / $/, ""); a !== "" && X(r, a); - const i = _r(t[n + 1], /^ /, ""); + const i = vr(t[n + 1], /^ /, ""); X(r, o, i); } - return r[r.length - 1] === "" && yr(r), r; -}, hr = new Me(); -let on = 0; + return r[r.length - 1] === "" && gr(r), r; +}, mr = new Me(); +let nn = 0; const Jn = new Me(), Xo = (t, e = t.name) => { let r = L(Jn, t); - return r !== void 0 || (on += 1, r = `${e}#${on}`, ie(Jn, t, r)), r; + return r !== void 0 || (nn += 1, r = `${e}#${nn}`, ie(Jn, t, r)), r; }, Fa = (t) => { const e = Ze(t), { name: r, @@ -379,54 +379,54 @@ const Jn = new Me(), Xo = (t, e = t.name) => { cause: a = void 0, stack: i = void 0, ...c - } = e, l = De(c); - if (l.length >= 1) { - for (const d of l) + } = e, u = De(c); + if (u.length >= 1) { + for (const d of u) delete t[d]; - const u = Z(wn, c); + const l = z(wn, c); Nn( t, - pt`originally with properties ${Je(u)}` + ft`originally with properties ${Je(l)}` ); } - for (const u of De(t)) { - const d = e[u]; - d && oe(d, "get") && M(t, u, { - value: t[u] + for (const l of De(t)) { + const d = e[l]; + d && oe(d, "get") && M(t, l, { + value: t[l] // invoke the getter to convert to data property }); } y(t); -}, sn = (t = pt`Assert failed`, e = k.Error, { +}, on = (t = ft`Assert failed`, e = k.Error, { errorName: r = void 0, cause: n = void 0, errors: o = void 0, sanitize: a = !0 } = {}) => { - typeof t == "string" && (t = pt([t])); - const i = L(jr, t); + typeof t == "string" && (t = ft([t])); + const i = L(Ur, t); if (i === void 0) throw v(`unrecognized details ${Je(t)}`); - const c = qo(i), l = n && { cause: n }; - let u; - return typeof Vr < "u" && e === Vr ? u = Vr(o || [], c, l) : (u = /** @type {ErrorConstructor} */ + const c = qo(i), u = n && { cause: n }; + let l; + return typeof Hr < "u" && e === Hr ? l = Hr(o || [], c, u) : (l = /** @type {ErrorConstructor} */ e( c, - l - ), o !== void 0 && M(u, "errors", { + u + ), o !== void 0 && M(l, "errors", { value: o, writable: !0, enumerable: !1, configurable: !0 - })), ie(hr, u, Jo(i)), r !== void 0 && Xo(u, r), a && Fa(u), u; + })), ie(mr, l, Jo(i)), r !== void 0 && Xo(l, r), a && Fa(l), l; }; -y(sn); -const { addLogArgs: Da, takeLogArgsArray: Ua } = Wo(), an = new Me(), Nn = (t, e) => { - typeof e == "string" && (e = pt([e])); - const r = L(jr, e); +y(on); +const { addLogArgs: Da, takeLogArgsArray: Ua } = Wo(), sn = new Me(), Nn = (t, e) => { + typeof e == "string" && (e = ft([e])); + const r = L(Ur, e); if (r === void 0) throw v(`unrecognized details ${Je(e)}`); - const n = Jo(r), o = L(an, t); + const n = Jo(r), o = L(sn, t); if (o !== void 0) for (const a of o) a(t, n); @@ -440,30 +440,30 @@ const ja = (t) => { const e = `${t.stack}`, r = va(e, ` `); return Uo(e, " ") || r === -1 ? e : Tn(e, r + 1); -}, wr = { +}, br = { getStackString: k.getStackString || ja, tagError: (t) => Xo(t), resetErrorTagNum: () => { - on = 0; + nn = 0; }, - getMessageLogArgs: (t) => L(hr, t), + getMessageLogArgs: (t) => L(mr, t), takeMessageLogArgs: (t) => { - const e = L(hr, t); - return wa(hr, t), e; + const e = L(mr, t); + return wa(mr, t), e; }, takeNoteLogArgsArray: (t, e) => { const r = Ua(t); if (e !== void 0) { - const n = L(an, t); - n ? X(n, e) : ie(an, t, [e]); + const n = L(sn, t); + n ? X(n, e) : ie(sn, t, [e]); } return r || []; } }; -y(wr); -const Zr = (t = void 0, e = !1) => { - const r = e ? Yo : pt, n = r`Check failed`, o = (f = n, m = void 0, p = void 0) => { - const h = sn(f, m, p); +y(br); +const jr = (t = void 0, e = !1) => { + const r = e ? Yo : ft, n = r`Check failed`, o = (f = n, m = void 0, p = void 0) => { + const h = on(f, m, p); throw t !== void 0 && t(h), h; }; y(o); @@ -472,53 +472,53 @@ const Zr = (t = void 0, e = !1) => { f || o(m, p, h); } const c = (f, m, p = void 0, h = void 0, _ = void 0) => { - Rr(f, m) || o( + Nr(f, m) || o( p || r`Expected ${f} is same as ${m}`, h || Xs, _ ); }; y(c); - const l = (f, m, p) => { + const u = (f, m, p) => { if (typeof f !== m) { if (typeof m == "string" || a`${Je(m)} must be a string`, p === void 0) { - const h = br(m); - p = r`${f} must be ${nn(h)}`; + const h = _r(m); + p = r`${f} must be ${rn(h)}`; } o(p, v); } }; - y(l); - const d = Nr(i, { - error: sn, + y(u); + const d = $r(i, { + error: on, fail: o, equal: c, - typeof: l, - string: (f, m = void 0) => l(f, "string", m), + typeof: u, + string: (f, m = void 0) => u(f, "string", m), note: Nn, details: r, Fail: a, quote: Je, - bare: nn, - makeAssert: Zr + bare: rn, + makeAssert: jr }); return y(d); }; -y(Zr); -const z = Zr(), Qo = J( +y(jr); +const G = jr(), Qo = J( la, qe ); -z(Qo); +G(Qo); const es = Qo.get; -z(es); +G(es); const Za = (t) => ne(es, t, []) !== void 0, za = (t) => { const e = +pe(t); return na(e) && pe(e) === t; }, Ga = (t) => { - Qs(t), dt(De(t), (e) => { + Qs(t), ut(De(t), (e) => { const r = J(t, e); - z(r), za(e) || M(t, e, { + G(r), za(e) || M(t, e, { ...r, writable: !1, configurable: !1 @@ -527,58 +527,58 @@ const Za = (t) => ne(es, t, []) !== void 0, za = (t) => { }, Ba = () => { if (typeof k.harden == "function") return k.harden; - const t = new Nt(), { harden: e } = { + const t = new $t(), { harden: e } = { /** * @template T * @param {T} root * @returns {T} */ harden(r) { - const n = new $t(); + const n = new Ct(); function o(d) { if (!Ye(d)) return; const f = typeof d; if (f !== "object" && f !== "function") throw v(`Unexpected typeof: ${f}`); - sr(t, d) || xn(n, d) || Sn(n, d); + or(t, d) || xn(n, d) || Sn(n, d); } const a = (d) => { Za(d) ? Ga(d) : y(d); const f = Ze(d), m = j(d); - o(m), dt(De(f), (p) => { + o(m), ut(De(f), (p) => { const h = f[ /** @type {string} */ p ]; oe(h, "value") ? o(h.value) : (o(h.get), o(h.set)); }); - }, i = Kr === void 0 && Pa === void 0 ? ( + }, i = qr === void 0 && Pa === void 0 ? ( // On platforms without v8's error own stack accessor problem, // don't pay for any extra overhead. a ) : (d) => { - if (Ur(d)) { + if (Dr(d)) { const f = J(d, "stack"); - f && f.get === Kr && f.configurable && M(d, "stack", { + f && f.get === qr && f.configurable && M(d, "stack", { // NOTE: Calls getter during harden, which seems dangerous. // But we're only calling the problematic getter whose // hazards we think we understand. // @ts-expect-error TS should know FERAL_STACK_GETTER // cannot be `undefined` here. // See https://github.com/endojs/endo/pull/2232#discussion_r1575179471 - value: ne(Kr, d, []) + value: ne(qr, d, []) }); } return a(d); }, c = () => { Wn(n, i); - }, l = (d) => { - Dr(t, d); - }, u = () => { - Wn(n, l); + }, u = (d) => { + Fr(t, d); + }, l = () => { + Wn(n, u); }; - return o(r), c(), u(), r; + return o(r), c(), l(), r; } }; return e; @@ -688,7 +688,7 @@ const Za = (t) => ne(es, t, []) !== void 0, za = (t) => { // AggregateError, ]; typeof AggregateError < "u" && X(os, AggregateError); -const cn = { +const an = { "[[Proto]]": "%FunctionPrototype%", length: "number", name: "string" @@ -699,7 +699,7 @@ const cn = { // This property is not mentioned in ECMA 262, but is present in V8 and // necessary for lockdown to succeed. "[[Proto]]": "%AsyncFunctionPrototype%" -}, s = cn, Qn = Ha, R = { +}, s = an, Qn = Ha, R = { get: s, set: "undefined" }, Ie = { @@ -802,7 +802,7 @@ const to = { mod: !1, // See https://github.com/Moddable-OpenSource/moddable/issues/523#issuecomment-1942904505 irandom: !1 -}, Er = { +}, wr = { // ECMA https://tc39.es/ecma262 // The intrinsics object has no prototype to avoid conflicts. "[[Proto]]": null, @@ -1900,7 +1900,7 @@ const to = { function Wa(t, e, r) { if (oe(t, e)) { const n = J(t, e); - if (!n || !Rr(n.value, r.value) || n.get !== r.get || n.set !== r.set || n.writable !== r.writable || n.enumerable !== r.enumerable || n.configurable !== r.configurable) + if (!n || !Nr(n.value, r.value) || n.get !== r.get || n.set !== r.set || n.writable !== r.writable || n.enumerable !== r.enumerable || n.configurable !== r.configurable) throw v(`Conflicting definitions of ${e}`); } M(t, e, r); @@ -1916,25 +1916,25 @@ function ss(t, e) { return r; } const as = () => { - const t = Z(null); + const t = z(null); let e; const r = (c) => { qa(t, Ze(c)); }; y(r); const n = () => { - for (const [c, l] of re(t)) { - if (!Ye(l) || !oe(l, "prototype")) + for (const [c, u] of re(t)) { + if (!Ye(u) || !oe(u, "prototype")) continue; - const u = Er[c]; - if (typeof u != "object") + const l = wr[c]; + if (typeof l != "object") throw v(`Expected permit object at whitelist.${c}`); - const d = u.prototype; + const d = l.prototype; if (!d) throw v(`${c}.prototype property not whitelisted`); - if (typeof d != "string" || !oe(Er, d)) + if (typeof d != "string" || !oe(wr, d)) throw v(`Unrecognized ${c}.prototype whitelist entry`); - const f = l.prototype; + const f = u.prototype; if (oe(t, d)) { if (t[d] !== f) throw v(`Conflicting bindings of ${d}`); @@ -1944,14 +1944,14 @@ const as = () => { } }; y(n); - const o = () => (y(t), e = new Nt(Ke(Po(t), Va)), t); + const o = () => (y(t), e = new $t(Ke(Po(t), Va)), t); y(o); const a = (c) => { if (!e) throw v( "isPseudoNative can only be called after finalIntrinsics" ); - return sr(e, c); + return or(e, c); }; y(a); const i = { @@ -1968,12 +1968,12 @@ const as = () => { function Ya(t, e) { let r = !1; const n = (m, ...p) => (r || (console.groupCollapsed("Removing unpermitted intrinsics"), r = !0), console[m](...p)), o = ["undefined", "boolean", "number", "string", "symbol"], a = new Pe( - St ? se( + Et ? se( Ke( - re(Er["%SharedSymbol%"]), - ([m, p]) => p === "symbol" && typeof St[m] == "symbol" + re(wr["%SharedSymbol%"]), + ([m, p]) => p === "symbol" && typeof Et[m] == "symbol" ), - ([m]) => [St[m], `@@${m}`] + ([m]) => [Et[m], `@@${m}`] ) : [] ); function i(m, p) { @@ -2001,7 +2001,7 @@ function Ya(t, e) { throw v(`Unexpected intrinsic ${m}.__proto__ at ${h}`); } } - function l(m, p, h, _) { + function u(m, p, h, _) { if (typeof _ == "object") return f(m, p, _), !0; if (_ === !1) @@ -2013,7 +2013,7 @@ function Ya(t, e) { throw v(`Does not match whitelist ${m}`); return !0; } - } else if (Lr(o, _)) { + } else if (Mr(o, _)) { if (typeof p !== _) throw v( `At ${m} expected ${_} not ${typeof p}` @@ -2023,25 +2023,25 @@ function Ya(t, e) { } throw v(`Unexpected whitelist permit ${_} at ${m}`); } - function u(m, p, h, _) { + function l(m, p, h, _) { const E = J(p, h); if (!E) throw v(`Property ${h} not found at ${m}`); if (oe(E, "value")) { if (eo(_)) throw v(`Accessor expected at ${m}`); - return l(m, E.value, h, _); + return u(m, E.value, h, _); } if (!eo(_)) throw v(`Accessor not expected at ${m}`); - return l(`${m}`, E.get, h, _.get) && l(`${m}`, E.set, h, _.set); + return u(`${m}`, E.get, h, _.get) && u(`${m}`, E.set, h, _.set); } function d(m, p, h) { const _ = h === "__proto__" ? "--proto--" : h; if (oe(p, _)) return p[_]; - if (typeof m == "function" && oe(cn, _)) - return cn[_]; + if (typeof m == "function" && oe(an, _)) + return an[_]; } function f(m, p, h) { if (p == null) @@ -2050,7 +2050,7 @@ function Ya(t, e) { c(m, p, _), typeof p == "function" && e(p); for (const E of De(p)) { const T = i(m, E), N = `${m}.${T}`, x = d(p, h, T); - if (!x || !u(N, p, E, x)) { + if (!x || !l(N, p, E, x)) { x !== !1 && n("warn", `Removing ${N}`); try { delete p[E]; @@ -2072,7 +2072,7 @@ function Ya(t, e) { } } try { - f("intrinsics", t, Er); + f("intrinsics", t, wr); } finally { r && console.groupEnd(); } @@ -2088,10 +2088,10 @@ function Ja() { let a; try { a = (0, eval)(o); - } catch (l) { - if (l instanceof rr) + } catch (u) { + if (u instanceof tr) return; - throw l; + throw u; } const i = j(a), c = function() { throw v( @@ -2136,10 +2136,10 @@ function Xa(t = "safe") { throw v("secure mode Calling %SharedDate%.now() throws"); } }, o = ({ powers: c = "none" } = {}) => { - let l; - return c === "original" ? l = function(...d) { - return new.target === void 0 ? ne(e, void 0, d) : gr(e, d, new.target); - } : l = function(...d) { + let u; + return c === "original" ? u = function(...d) { + return new.target === void 0 ? ne(e, void 0, d) : hr(e, d, new.target); + } : u = function(...d) { if (new.target === void 0) throw v( "secure mode Calling %SharedDate% constructor as a function throws" @@ -2148,8 +2148,8 @@ function Xa(t = "safe") { throw v( "secure mode Calling new %SharedDate%() with no arguments throws" ); - return gr(e, d, new.target); - }, F(l, { + return hr(e, d, new.target); + }, F(u, { length: { value: 7 }, prototype: { value: r, @@ -2169,7 +2169,7 @@ function Xa(t = "safe") { enumerable: !1, configurable: !0 } - }), l; + }), u; }, a = o({ powers: "original" }), i = o({ powers: "none" }); return F(a, { now: { @@ -2195,7 +2195,7 @@ function Xa(t = "safe") { function Qa(t = "safe") { if (t !== "safe" && t !== "unsafe") throw v(`unrecognized mathTaming ${t}`); - const e = Ks, r = e, { random: n, ...o } = Ze(e), i = Z(wn, { + const e = Ks, r = e, { random: n, ...o } = Ze(e), i = z(wn, { ...o, random: { value: { @@ -2221,8 +2221,8 @@ function ei(t = "safe") { if (t !== "safe" && t !== "unsafe") throw v(`unrecognized regExpTaming ${t}`); const e = We.prototype, r = (a = {}) => { - const i = function(...l) { - return new.target === void 0 ? We(...l) : gr(We, l, new.target); + const i = function(...u) { + return new.target === void 0 ? We(...u) : hr(We, u, new.target); }; if (F(i, { length: { value: 2 }, @@ -2232,15 +2232,15 @@ function ei(t = "safe") { enumerable: !1, configurable: !1 } - }), Wr) { + }), Vr) { const c = J( We, - Wr + Vr ); if (!c) throw v("no RegExp[Symbol.species] descriptor"); F(i, { - [Wr]: c + [Vr]: c }); } return i; @@ -2282,7 +2282,7 @@ const ti = { // set by "Google Analytics" concat: !0, // set by mobx generated code (old TS compiler?) - [nr]: !0 + [rr]: !0 // set by mobx generated code (old TS compiler?) }, // Function.prototype has no 'prototype' property to enable. @@ -2424,8 +2424,8 @@ const ti = { "%SetPrototype%": "*" }; function ni(t, e, r = []) { - const n = new $t(r); - function o(u, d, f, m) { + const n = new Ct(r); + function o(l, d, f, m) { if ("value" in m && m.configurable) { const { value: p } = m, h = xn(n, f), { get: _, set: E } = J( { @@ -2437,7 +2437,7 @@ function ni(t, e, r = []) { throw v( `Cannot assign to read only property '${pe( f - )}' of '${u}'` + )}' of '${l}'` ); oe(this, f) ? this[f] = T : (h && console.error(v(`Override property ${f}`)), M(this, f, { value: T, @@ -2462,20 +2462,20 @@ function ni(t, e, r = []) { }); } } - function a(u, d, f) { + function a(l, d, f) { const m = J(d, f); - m && o(u, d, f, m); + m && o(l, d, f, m); } - function i(u, d) { + function i(l, d) { const f = Ze(d); - f && dt(De(f), (m) => o(u, d, m, f[m])); + f && ut(De(f), (m) => o(l, d, m, f[m])); } - function c(u, d, f) { + function c(l, d, f) { for (const m of De(f)) { const p = J(d, m); if (!p || p.get || p.set) continue; - const h = `${u}.${pe(m)}`, _ = f[m]; + const h = `${l}.${pe(m)}`, _ = f[m]; if (_ === !0) a(h, d, m); else if (_ === "*") @@ -2486,26 +2486,26 @@ function ni(t, e, r = []) { throw v(`Unexpected override enablement plan ${h}`); } } - let l; + let u; switch (e) { case "min": { - l = ti; + u = ti; break; } case "moderate": { - l = is; + u = is; break; } case "severe": { - l = ri; + u = ri; break; } default: throw v(`unrecognized overrideTaming ${e}`); } - c("root", t, l); + c("root", t, u); } -const { Fail: ln, quote: Sr } = z, oi = /^(\w*[a-z])Locale([A-Z]\w*)$/, cs = { +const { Fail: cn, quote: Er } = G, oi = /^(\w*[a-z])Locale([A-Z]\w*)$/, cs = { // See https://tc39.es/ecma262/#sec-string.prototype.localecompare localeCompare(t) { if (this === null || this === void 0) @@ -2513,7 +2513,7 @@ const { Fail: ln, quote: Sr } = z, oi = /^(\w*[a-z])Locale([A-Z]\w*)$/, cs = { 'Cannot localeCompare with null or undefined "this" value' ); const e = `${this}`, r = `${t}`; - return e < r ? -1 : e > r ? 1 : (e === r || ln`expected ${Sr(e)} and ${Sr(r)} to compare`, 0); + return e < r ? -1 : e > r ? 1 : (e === r || cn`expected ${Er(e)} and ${Er(r)} to compare`, 0); }, toString() { return `${this}`; @@ -2526,15 +2526,15 @@ function ii(t, e = "safe") { M(pe.prototype, "localeCompare", { value: si }); - for (const r of Ut(t)) { + for (const r of Dt(t)) { const n = t[r]; if (Ye(n)) - for (const o of Ut(n)) { + for (const o of Dt(n)) { const a = Pn(oi, o); if (a) { - typeof n[o] == "function" || ln`expected ${Sr(o)} to be a function`; + typeof n[o] == "function" || cn`expected ${Er(o)} to be a function`; const i = `${a[1]}${a[2]}`, c = n[i]; - typeof c == "function" || ln`function ${Sr(i)} not found`, M(n, o, { value: c }); + typeof c == "function" || cn`function ${Er(i)} not found`, M(n, o, { value: c }); } } } @@ -2547,9 +2547,9 @@ const ci = (t) => ({ eval(r) { return typeof r != "string" ? r : t(r); } -}).eval, { Fail: ro } = z, li = (t) => { +}).eval, { Fail: ro } = G, li = (t) => { const e = function(n) { - const o = `${yr(arguments) || ""}`, a = `${Ot(arguments, ",")}`; + const o = `${gr(arguments) || ""}`, a = `${Rt(arguments, ",")}`; new ve(a, ""), new ve(o); const i = `(function anonymous(${a} ) { @@ -2572,7 +2572,7 @@ ${o} t, ea, y( - Nr(Z(null), { + $r(z(null), { set: y(() => { throw v( "Cannot set Symbol.unscopables of a Compartment's globalThis" @@ -2628,7 +2628,7 @@ ${o} enumerable: !1, configurable: !0 }), typeof c == "function" && o(c); -}, un = (t, e, r) => { +}, ln = (t, e, r) => { { const n = y(ci(e)); r(n), M(t, "eval", { @@ -2647,7 +2647,7 @@ ${o} configurable: !0 }); } -}, { Fail: di, quote: ds } = z, fs = new $r( +}, { Fail: di, quote: ds } = G, fs = new Cr( Cn, y({ get(t, e) { @@ -2658,7 +2658,7 @@ ${o} get(t, e) { }, set(t, e, r) { - throw ut(`${pe(e)} is not defined`); + throw lt(`${pe(e)} is not defined`); }, has(t, e) { return e in k; @@ -2683,11 +2683,11 @@ ${o} return []; } }, ps = y( - Z( + z( fs, Ze(fi) ) -), pi = new $r( +), pi = new Cr( Cn, ps ), ms = (t) => { @@ -2703,19 +2703,19 @@ ${o} return !0; } }, r = y( - Z( + z( fs, Ze(e) ) ); - return new $r( + return new Cr( Cn, r ); }; y(ms); -const { Fail: mi } = z, hi = () => { - const t = Z(null), e = y({ +const { Fail: mi } = G, hi = () => { + const t = z(null), e = y({ eval: { get() { return delete t.eval, Zo; @@ -2759,10 +2759,10 @@ const hs = new We("(?:)", "g"), gs = (t) => { if (e < 0) return t; const r = Rn(t); - throw rr( + throw tr( `Possible HTML comment rejected at ${r}:${e}. (SES_HTML_COMMENT_REJECTED)` ); -}, ys = (t) => _r(t, hs, (r) => r[0] === "<" ? "< ! --" : "-- >"), vs = new We( +}, ys = (t) => vr(t, hs, (r) => r[0] === "<" ? "< ! --" : "-- >"), vs = new We( "(^|[^.]|\\.\\.\\.)\\bimport(\\s*(?:\\(|/[/*]))", "g" ), _s = (t) => { @@ -2770,10 +2770,10 @@ const hs = new We("(?:)", "g"), gs = (t) => { if (e < 0) return t; const r = Rn(t); - throw rr( + throw tr( `Possible import expression rejected at ${r}:${e}. (SES_IMPORT_REJECTED)` ); -}, bs = (t) => _r(t, vs, (r, n, o) => `${n}__import__${o}`), yi = new We( +}, bs = (t) => vr(t, vs, (r, n, o) => `${n}__import__${o}`), yi = new We( "(^|[^.])\\beval(\\s*\\()", "g" ), ws = (t) => { @@ -2781,7 +2781,7 @@ const hs = new We("(?:)", "g"), gs = (t) => { if (e < 0) return t; const r = Rn(t); - throw rr( + throw tr( `Possible direct eval expression rejected at ${r}:${e}. (SES_EVAL_REJECTED)` ); }, Es = (t) => (t = gs(t), t = _s(t), t), Ss = (t, e) => { @@ -2853,7 +2853,7 @@ const vi = [ "false", "this", "arguments" -], _i = /^[a-zA-Z_$][\w$]*$/, oo = (t) => t !== "eval" && !Lr(vi, t) && kn(_i, t); +], _i = /^[a-zA-Z_$][\w$]*$/, oo = (t) => t !== "eval" && !Mr(vi, t) && kn(_i, t); function so(t, e) { const r = J(t, e); return r && // @@ -2872,7 +2872,7 @@ function so(t, e) { oe(r, "value"); } const bi = (t, e = {}) => { - const r = Ut(t), n = Ut(e), o = Ke( + const r = Dt(t), n = Dt(e), o = Ke( n, (i) => oo(i) && so(e, i) ); @@ -2882,14 +2882,14 @@ const bi = (t, e = {}) => { (i) => ( // Can't define a constant: it would prevent a // lookup on the endowments. - !Lr(n, i) && oo(i) && so(t, i) + !Mr(n, i) && oo(i) && so(t, i) ) ), moduleLexicalConstants: o }; }; function ao(t, e) { - return t.length === 0 ? "" : `const {${Ot(t, ",")}} = this.${e};`; + return t.length === 0 ? "" : `const {${Rt(t, ",")}} = this.${e};`; } const wi = (t) => { const { globalObjectConstants: e, moduleLexicalConstants: r } = bi( @@ -2918,7 +2918,7 @@ const wi = (t) => { } `); return ne(a, t, []); -}, { Fail: Ei } = z, Mn = ({ +}, { Fail: Ei } = G, Mn = ({ globalObject: t, moduleLexicals: e = {}, globalTransforms: r = [], @@ -2930,20 +2930,20 @@ const wi = (t) => { globalObject: t, scopeTerminator: o }); - let l; - const u = () => { - l || (l = wi(c)); + let u; + const l = () => { + u || (u = wi(c)); }; return { safeEvaluate: (f, m) => { const { localTransforms: p = [] } = m || {}; - u(), f = Ss(f, [ + l(), f = Ss(f, [ ...p, ...r, Es ]); let h; try { - return a.allowNextEvalToBeUnsafe(), ne(l, t, [f]); + return a.allowNextEvalToBeUnsafe(), ne(u, t, [f]); } catch (_) { throw h = _, _; } finally { @@ -2952,22 +2952,22 @@ const wi = (t) => { } } }; }, Si = ") { [native code] }"; -let Jr; +let Yr; const xs = () => { - if (Jr === void 0) { - const t = new Nt(); + if (Yr === void 0) { + const t = new $t(); M(En, "toString", { value: { toString() { const r = Ea(this); - return Lo(r, Si) || !sr(t, this) ? r : `function ${this.name}() { [native code] }`; + return Lo(r, Si) || !or(t, this) ? r : `function ${this.name}() { [native code] }`; } }.toString - }), Jr = y( - (r) => Dr(t, r) + }), Yr = y( + (r) => Fr(t, r) ); } - return Jr; + return Yr; }; function xi(t = "safe") { if (t !== "safe" && t !== "unsafe") @@ -3046,12 +3046,12 @@ const Ln = y([ ]), ki = (t, { shouldResetForDebugging: e = !1 } = {}) => { e && t.resetErrorTagNum(); let r = []; - const n = gt( + const n = ht( se(ks, ([i, c]) => { - const l = (...u) => { - X(r, [i, ...u]); + const u = (...l) => { + X(r, [i, ...l]); }; - return M(l, "name", { value: i }), [i, y(l)]; + return M(u, "name", { value: i }), [i, y(u)]; }) ); y(n); @@ -3075,10 +3075,10 @@ y(it); const Dn = (t, e) => { if (!t) return; - const { getStackString: r, tagError: n, takeMessageLogArgs: o, takeNoteLogArgsArray: a } = e, i = (E, T) => se(E, (x) => Ur(x) ? (X(T, x), `(${n(x)})`) : x), c = (E, T, N, x, D) => { - const G = n(T), B = N === it.MESSAGE ? `${G}:` : `${G} ${N}`, K = i(x, D); - t[E](B, ...K); - }, l = (E, T, N = void 0) => { + const { getStackString: r, tagError: n, takeMessageLogArgs: o, takeNoteLogArgsArray: a } = e, i = (E, T) => se(E, (x) => Dr(x) ? (X(T, x), `(${n(x)})`) : x), c = (E, T, N, x, D) => { + const B = n(T), H = N === it.MESSAGE ? `${B}:` : `${B} ${N}`, K = i(x, D); + t[E](H, ...K); + }, u = (E, T, N = void 0) => { if (T.length === 0) return; if (T.length === 1 && N === void 0) { @@ -3093,15 +3093,15 @@ const Dn = (t, e) => { } finally { t.groupEnd(); } - }, u = new Nt(), d = (E) => (T, N) => { + }, l = new $t(), d = (E) => (T, N) => { const x = []; - c(E, T, it.NOTE, N, x), l(E, x, n(T)); + c(E, T, it.NOTE, N, x), u(E, x, n(T)); }, f = (E, T) => { - if (sr(u, T)) + if (or(l, T)) return; const N = n(T); - Dr(u, T); - const x = [], D = o(T), G = a( + Fr(l, T); + const x = [], D = o(T), B = a( T, d(E) ); @@ -3112,17 +3112,17 @@ const Dn = (t, e) => { D, x ); - let B = r(T); - typeof B == "string" && B.length >= 1 && !Lo(B, ` -`) && (B += ` -`), t[E](B), T.cause && c(E, T, it.CAUSE, [T.cause], x), T.errors && c(E, T, it.ERRORS, T.errors, x); - for (const K of G) + let H = r(T); + typeof H == "string" && H.length >= 1 && !Lo(H, ` +`) && (H += ` +`), t[E](H), T.cause && c(E, T, it.CAUSE, [T.cause], x), T.errors && c(E, T, it.ERRORS, T.errors, x); + for (const K of B) c(E, T, it.NOTE, K, x); - l(E, x, N); + u(E, x, N); }, m = se(Ln, ([E, T]) => { const N = (...x) => { - const D = [], G = i(x, D); - t[E](...G), l(E, D); + const D = [], B = i(x, D); + t[E](...B), u(E, D); }; return M(N, "name", { value: E }), [E, y(N)]; }), p = Ke( @@ -3133,7 +3133,7 @@ const Dn = (t, e) => { t[E](...x); }; return M(N, "name", { value: E }), [E, y(N)]; - }), _ = gt([...m, ...h]); + }), _ = ht([...m, ...h]); return ( /** @type {VirtualConsole} */ y(_) @@ -3144,27 +3144,27 @@ const Pi = (t, e, r) => { const [n, ...o] = An(t, e), a = Oo(o, (i) => [e, ...r, i]); return ["", n, ...a]; }, Ps = (t) => y((r) => { - const n = [], o = (...l) => (n.length > 0 && (l = Oo( - l, - (u) => typeof u == "string" && Fo(u, ` -`) ? Pi(u, ` -`, n) : [u] - ), l = [...n, ...l]), r(...l)), a = (l, u) => ({ [l]: (...d) => u(...d) })[l], i = gt([ - ...se(Ln, ([l]) => [ - l, - a(l, o) + const n = [], o = (...u) => (n.length > 0 && (u = Oo( + u, + (l) => typeof l == "string" && Fo(l, ` +`) ? Pi(l, ` +`, n) : [l] + ), u = [...n, ...u]), r(...u)), a = (u, l) => ({ [u]: (...d) => l(...d) })[u], i = ht([ + ...se(Ln, ([u]) => [ + u, + a(u, o) ]), - ...se(Fn, ([l]) => [ - l, - a(l, (...u) => o(l, ...u)) + ...se(Fn, ([u]) => [ + u, + a(u, (...l) => o(u, ...l)) ]) ]); - for (const l of ["group", "groupCollapsed"]) - i[l] && (i[l] = a(l, (...u) => { - u.length >= 1 && o(...u), X(n, " "); + for (const u of ["group", "groupCollapsed"]) + i[u] && (i[u] = a(u, (...l) => { + l.length >= 1 && o(...l), X(n, " "); })); - return i.groupEnd && (i.groupEnd = a("groupEnd", (...l) => { - yr(n); + return i.groupEnd && (i.groupEnd = a("groupEnd", (...u) => { + gr(n); })), harden(i), Dn( /** @type {VirtualConsole} */ i, @@ -3176,9 +3176,9 @@ const Ti = (t, e, r = void 0) => { const n = Ke( ks, ([i, c]) => i in t - ), o = se(n, ([i, c]) => [i, y((...u) => { - (c === void 0 || e.canLog(c)) && t[i](...u); - })]), a = gt(o); + ), o = se(n, ([i, c]) => [i, y((...l) => { + (c === void 0 || e.canLog(c)) && t[i](...l); + })]), a = ht(o); return ( /** @type {VirtualConsole} */ y(a) @@ -3186,17 +3186,17 @@ const Ti = (t, e, r = void 0) => { }; y(Ti); const io = (t) => { - if (Pt === void 0) + if (kt === void 0) return; let e = 0; const r = new Pe(), n = (d) => { pa(r, d); }, o = new Me(), a = (d) => { - if (Fr(r, d)) { + if (Lr(r, d)) { const f = Ue(r, d); n(d), t(f); } - }, i = new Pt(a); + }, i = new kt(a); return { rejectionHandledHandler: (d) => { const f = L(o, d); @@ -3212,13 +3212,13 @@ const io = (t) => { n(d), t(f); } }; -}, Xr = (t) => { +}, Jr = (t) => { throw v(t); }, co = (t, e) => y((...r) => ne(t, e, r)), Ai = (t = "safe", e = "platform", r = "report", n = void 0) => { - t === "safe" || t === "unsafe" || Xr(`unrecognized consoleTaming ${t}`); + t === "safe" || t === "unsafe" || Jr(`unrecognized consoleTaming ${t}`); let o; - n === void 0 ? o = wr : o = { - ...wr, + n === void 0 ? o = br : o = { + ...br, getStackString: n }; const a = ( @@ -3228,15 +3228,15 @@ const io = (t) => { // Make a good-enough console for eshost (including only functions that // log at a specific level with no special argument interpretation). // https://console.spec.whatwg.org/#logging - ((u) => y({ debug: u, log: u, info: u, warn: u, error: u }))( + ((l) => y({ debug: l, log: l, info: l, warn: l, error: l }))( // eslint-disable-next-line no-undef co(k.print) ) ) : void 0 ); if (a && a.log) - for (const u of ["warn", "error"]) - a[u] || M(a, u, { + for (const l of ["warn", "error"]) + a[l] || M(a, l, { value: co(a.log, a) }); const i = ( @@ -3244,14 +3244,14 @@ const io = (t) => { t === "unsafe" ? a : Dn(a, o) ), c = k.process || void 0; if (e !== "none" && typeof c == "object" && typeof c.on == "function") { - let u; + let l; if (e === "platform" || e === "exit") { const { exit: d } = c; - typeof d == "function" || Xr("missing process.exit"), u = () => d(c.exitCode || -1); + typeof d == "function" || Jr("missing process.exit"), l = () => d(c.exitCode || -1); } else - e === "abort" && (u = c.abort, typeof u == "function" || Xr("missing process.abort")); + e === "abort" && (l = c.abort, typeof l == "function" || Jr("missing process.abort")); c.on("uncaughtException", (d) => { - i.error(d), u && u(); + i.error(d), l && l(); }); } if (r !== "none" && typeof c == "object" && typeof c.on == "function") { @@ -3260,18 +3260,18 @@ const io = (t) => { }); d && (c.on("unhandledRejection", d.unhandledRejectionHandler), c.on("rejectionHandled", d.rejectionHandledHandler), c.on("exit", d.processTerminationHandler)); } - const l = k.window || void 0; - if (e !== "none" && typeof l == "object" && typeof l.addEventListener == "function" && l.addEventListener("error", (u) => { - u.preventDefault(), i.error(u.error), (e === "exit" || e === "abort") && (l.location.href = "about:blank"); - }), r !== "none" && typeof l == "object" && typeof l.addEventListener == "function") { + const u = k.window || void 0; + if (e !== "none" && typeof u == "object" && typeof u.addEventListener == "function" && u.addEventListener("error", (l) => { + l.preventDefault(), i.error(l.error), (e === "exit" || e === "abort") && (u.location.href = "about:blank"); + }), r !== "none" && typeof u == "object" && typeof u.addEventListener == "function") { const d = io((f) => { i.error("SES_UNHANDLED_REJECTION:", f); }); - d && (l.addEventListener("unhandledrejection", (f) => { + d && (u.addEventListener("unhandledrejection", (f) => { f.preventDefault(), d.unhandledRejectionHandler(f.reason, f.promise); - }), l.addEventListener("rejectionhandled", (f) => { + }), u.addEventListener("rejectionhandled", (f) => { f.preventDefault(), d.rejectionHandledHandler(f.promise); - }), l.addEventListener("beforeunload", (f) => { + }), u.addEventListener("beforeunload", (f) => { d.processTerminationHandler(); })); } @@ -3300,11 +3300,11 @@ const io = (t) => { "toString" // TODO replace to use only whitelisted info ], Ci = (t) => { - const r = gt(se(Ii, (n) => { + const r = ht(se(Ii, (n) => { const o = t[n]; return [n, () => ne(o, t, [])]; })); - return Z(r, {}); + return z(r, {}); }, $i = (t) => se(t, Ci), Ni = /\/node_modules\//, Ri = /^(?:node:)?internal\//, Oi = /\/packages\/ses\/src\/error\/assert.js$/, Mi = /\/packages\/eventual-send\/src\//, Li = [ Ni, Ri, @@ -3324,7 +3324,7 @@ const io = (t) => { for (const e of ji) { const r = Pn(e, t); if (r) - return Ot(ua(r, 1), ""); + return Rt(ua(r, 1), ""); } return t; }, zi = (t, e, r, n) => { @@ -3332,16 +3332,16 @@ const io = (t) => { let h = `${p}`; return n === "concise" && (h = Zi(h)), ` at ${h}`; - }, c = (p, h) => Ot( + }, c = (p, h) => Rt( se(Ke(h, a), i), "" - ), l = new Me(), u = { + ), u = new Me(), l = { // The optional `optFn` argument is for cutting off the bottom of // the stack --- for capturing the stack only above the topmost // call to that function. Since this isn't the "real" captureStackTrace // but instead calls the real one, if no other cutoff is provided, // we cut this one off. - captureStackTrace(p, h = u.captureStackTrace) { + captureStackTrace(p, h = l.captureStackTrace) { if (typeof o == "function") { ne(o, t, [p, h]); return; @@ -3353,34 +3353,34 @@ const io = (t) => { // string associated with an error. // See https://tc39.es/proposal-error-stacks/ getStackString(p) { - let h = L(l, p); - if (h === void 0 && (p.stack, h = L(l, p), h || (h = { stackString: "" }, ie(l, p, h))), h.stackString !== void 0) + let h = L(u, p); + if (h === void 0 && (p.stack, h = L(u, p), h || (h = { stackString: "" }, ie(u, p, h))), h.stackString !== void 0) return h.stackString; const _ = c(p, h.callSites); - return ie(l, p, { stackString: _ }), _; + return ie(u, p, { stackString: _ }), _; }, prepareStackTrace(p, h) { if (r === "unsafe") { const _ = c(p, h); - return ie(l, p, { stackString: _ }), `${p}${_}`; + return ie(u, p, { stackString: _ }), `${p}${_}`; } else - return ie(l, p, { callSites: h }), ""; + return ie(u, p, { callSites: h }), ""; } - }, d = u.prepareStackTrace; + }, d = l.prepareStackTrace; t.prepareStackTrace = d; - const f = new Nt([d]), m = (p) => { - if (sr(f, p)) + const f = new $t([d]), m = (p) => { + if (or(f, p)) return p; const h = { prepareStackTrace(_, E) { - return ie(l, _, { callSites: E }), p(_, $i(E)); + return ie(u, _, { callSites: E }), p(_, $i(E)); } }; - return Dr(f, h.prepareStackTrace), h.prepareStackTrace; + return Fr(f, h.prepareStackTrace), h.prepareStackTrace; }; return F(e, { captureStackTrace: { - value: u.captureStackTrace, + value: l.captureStackTrace, writable: !0, enumerable: !1, configurable: !0 @@ -3399,7 +3399,7 @@ const io = (t) => { enumerable: !1, configurable: !0 } - }), u.getStackString; + }), l.getStackString; }, lo = J(ue.prototype, "stack"), uo = lo && lo.get, Gi = { getStackString(t) { return typeof uo == "function" ? ne(uo, t, []) : "stack" in t ? `${t.stack}` : ""; @@ -3410,10 +3410,10 @@ function Bi(t = "safe", e = "concise") { throw v(`unrecognized errorTaming ${t}`); if (e !== "concise" && e !== "verbose") throw v(`unrecognized stackFiltering ${e}`); - const r = ue.prototype, n = typeof ue.captureStackTrace == "function" ? "v8" : "unknown", { captureStackTrace: o } = ue, a = (u = {}) => { + const r = ue.prototype, n = typeof ue.captureStackTrace == "function" ? "v8" : "unknown", { captureStackTrace: o } = ue, a = (l = {}) => { const d = function(...m) { let p; - return new.target === void 0 ? p = ne(ue, this, m) : p = gr(ue, m, new.target), n === "v8" && ne(o, ue, [p, d]), p; + return new.target === void 0 ? p = ne(ue, this, m) : p = hr(ue, m, new.target), n === "v8" && ne(o, ue, [p, d]), p; }; return F(d, { length: { value: 1 }, @@ -3428,17 +3428,17 @@ function Bi(t = "safe", e = "concise") { F(r, { constructor: { value: c } }); - for (const u of os) - ko(u, c); + for (const l of os) + ko(l, c); F(i, { stackTraceLimit: { get() { if (typeof ue.stackTraceLimit == "number") return ue.stackTraceLimit; }, - set(u) { - if (typeof u == "number" && typeof ue.stackTraceLimit == "number") { - ue.stackTraceLimit = u; + set(l) { + if (typeof l == "number" && typeof ue.stackTraceLimit == "number") { + ue.stackTraceLimit = l; return; } }, @@ -3450,7 +3450,7 @@ function Bi(t = "safe", e = "concise") { stackTraceLimit: { get() { }, - set(u) { + set(l) { }, enumerable: !1, configurable: !0 @@ -3460,14 +3460,14 @@ function Bi(t = "safe", e = "concise") { get() { return () => ""; }, - set(u) { + set(l) { }, enumerable: !1, configurable: !0 }, captureStackTrace: { - value: (u, d) => { - M(u, "stack", { + value: (l, d) => { + M(l, "stack", { value: "" }); }, @@ -3476,8 +3476,8 @@ function Bi(t = "safe", e = "concise") { configurable: !0 } }); - let l = Gi.getStackString; - return n === "v8" ? l = zi( + let u = Gi.getStackString; + return n === "v8" ? u = zi( ue, i, t, @@ -3485,12 +3485,12 @@ function Bi(t = "safe", e = "concise") { ) : t === "unsafe" ? F(r, { stack: { get() { - return l(this); + return u(this); }, - set(u) { + set(l) { F(this, { stack: { - value: u, + value: l, writable: !0, enumerable: !0, configurable: !0 @@ -3503,10 +3503,10 @@ function Bi(t = "safe", e = "concise") { get() { return `${this}`; }, - set(u) { + set(l) { F(this, { stack: { - value: u, + value: l, writable: !0, enumerable: !0, configurable: !0 @@ -3515,20 +3515,20 @@ function Bi(t = "safe", e = "concise") { } } }), { - "%InitialGetStackString%": l, + "%InitialGetStackString%": u, "%InitialError%": i, "%SharedError%": c }; } -const { Fail: Hi, details: dn, quote: xe } = z, Vi = () => { +const { Fail: Hi, details: un, quote: xe } = G, Vi = () => { }; async function Wi(t, e, r) { const n = t(...e); - let o = vr(n); + let o = yr(n); for (; !o.done; ) try { const a = await o.value; - o = vr(n, a); + o = yr(n, a); } catch (a) { o = Do(n, r(a)); } @@ -3536,10 +3536,10 @@ async function Wi(t, e, r) { } function qi(t, e) { const r = t(...e); - let n = vr(r); + let n = yr(r); for (; !n.done; ) try { - n = vr(r, n.value); + n = yr(r, n.value); } catch (o) { n = Do(r, o); } @@ -3549,29 +3549,29 @@ const Ki = (t, e) => y({ compartment: t, specifier: e }), Yi = (t, e, r) => { - const n = Z(null); + const n = z(null); for (const o of t) { const a = e(o, r); n[o] = a; } return y(n); -}, fo = (t, e, r, n, o, a, i, c, l) => { - const { resolveHook: u, moduleRecords: d } = L( +}, fo = (t, e, r, n, o, a, i, c, u) => { + const { resolveHook: l, moduleRecords: d } = L( t, r ), f = Yi( o.imports, - u, + l, n ), m = y({ compartment: r, staticModuleRecord: o, moduleSpecifier: n, resolvedImports: f, - importMeta: l + importMeta: u }); for (const p of Po(f)) - a(jt, [ + a(Ut, [ t, e, r, @@ -3583,24 +3583,24 @@ const Ki = (t, e) => y({ return $e(d, n, m), m; }; function* Ji(t, e, r, n, o, a, i) { - const { importHook: c, importNowHook: l, moduleMap: u, moduleMapHook: d, moduleRecords: f } = L(t, r); - let m = u[n]; + const { importHook: c, importNowHook: u, moduleMap: l, moduleMapHook: d, moduleRecords: f } = L(t, r); + let m = l[n]; if (m === void 0 && d !== void 0 && (m = d(n)), typeof m == "string") - z.fail( - dn`Cannot map module ${xe(n)} to ${xe( + G.fail( + un`Cannot map module ${xe(n)} to ${xe( m )} in parent compartment, not yet implemented`, v ); else if (m !== void 0) { const h = L(e, m); - h === void 0 && z.fail( - dn`Cannot map module ${xe( + h === void 0 && G.fail( + un`Cannot map module ${xe( n )} because the value is not a module exports namespace, or is from another realm`, - ut + lt ); - const _ = yield jt( + const _ = yield Ut( t, e, h.compartment, @@ -3611,11 +3611,11 @@ function* Ji(t, e, r, n, o, a, i) { ); return $e(f, n, _), _; } - if (Fr(f, n)) + if (Lr(f, n)) return Ue(f, n); const p = yield a( c, - l + u )(n); if ((p === null || typeof p != "object") && Hi`importHook must return a promise for an object, for module ${xe( n @@ -3648,7 +3648,7 @@ function* Ji(t, e, r, n, o, a, i) { throw v( "Cannot redirect to an implicit record with a specified importMeta" ); - const h = yield jt( + const h = yield Ut( t, e, p.compartment, @@ -3672,15 +3672,15 @@ function* Ji(t, e, r, n, o, a, i) { i ); } -const jt = (t, e, r, n, o, a, i) => { +const Ut = (t, e, r, n, o, a, i) => { const { name: c } = L( t, r ); - let l = Ue(i, r); - l === void 0 && (l = new Pe(), $e(i, r, l)); - let u = Ue(l, n); - return u !== void 0 || (u = a(Wi, qi)( + let u = Ue(i, r); + u === void 0 && (u = new Pe(), $e(i, r, u)); + let l = Ue(u, n); + return l !== void 0 || (l = a(Wi, qi)( Ji, [ t, @@ -3692,17 +3692,17 @@ const jt = (t, e, r, n, o, a, i) => { i ], (d) => { - throw z.note( + throw G.note( d, - dn`${d.message}, loading ${xe(n)} in compartment ${xe( + un`${d.message}, loading ${xe(n)} in compartment ${xe( c )}` ), d; } - ), $e(l, n, u)), u; + ), $e(u, n, l)), l; }; function Xi() { - const t = new $t(), e = []; + const t = new Ct(), e = []; return { enqueueJob: (o, a) => { Sn( t, @@ -3720,7 +3720,7 @@ function Ts({ errors: t, errorPrefix: e }) { if (t.length > 0) { const r = le("COMPARTMENT_LOAD_ERRORS", "", ["verbose"]) === "verbose"; throw v( - `${e} (${t.length} underlying failures: ${Ot( + `${e} (${t.length} underlying failures: ${Rt( se(t, (n) => n.message + (r ? n.stack : "")), ", " )}` @@ -3732,7 +3732,7 @@ const Qi = (t, e) => e, ec = (t, e) => t, po = async (t, e, r, n) => { t, r ), a = new Pe(), { enqueueJob: i, drainQueue: c } = Xi(); - i(jt, [ + i(Ut, [ t, e, r, @@ -3741,9 +3741,9 @@ const Qi = (t, e) => e, ec = (t, e) => t, po = async (t, e, r, n) => { ec, a ]); - const l = await c(); + const u = await c(); Ts({ - errors: l, + errors: u, errorPrefix: `Failed to load module ${xe(n)} in package ${xe( o )}` @@ -3752,14 +3752,14 @@ const Qi = (t, e) => e, ec = (t, e) => t, po = async (t, e, r, n) => { const { name: o } = L( t, r - ), a = new Pe(), i = [], c = (l, u) => { + ), a = new Pe(), i = [], c = (u, l) => { try { - l(...u); + u(...l); } catch (d) { X(i, d); } }; - c(jt, [ + c(Ut, [ t, e, r, @@ -3773,9 +3773,9 @@ const Qi = (t, e) => e, ec = (t, e) => t, po = async (t, e, r, n) => { o )}` }); -}, { quote: vt } = z, rc = () => { +}, { quote: yt } = G, rc = () => { let t = !1; - const e = Z(null, { + const e = z(null, { // Make this appear like an ESM module namespace object. [qe]: { value: "Module", @@ -3789,11 +3789,11 @@ const Qi = (t, e) => e, ec = (t, e) => t, po = async (t, e, r, n) => { t = !0; }, exportsTarget: e, - exportsProxy: new $r(e, { + exportsProxy: new Cr(e, { get(r, n, o) { if (!t) throw v( - `Cannot get property ${vt( + `Cannot get property ${yt( n )} of module exports namespace, the module has not yet begun to execute` ); @@ -3801,13 +3801,13 @@ const Qi = (t, e) => e, ec = (t, e) => t, po = async (t, e, r, n) => { }, set(r, n, o) { throw v( - `Cannot set property ${vt(n)} of module exports namespace` + `Cannot set property ${yt(n)} of module exports namespace` ); }, has(r, n) { if (!t) throw v( - `Cannot check property ${vt( + `Cannot check property ${yt( n )}, the module has not yet begun to execute` ); @@ -3815,7 +3815,7 @@ const Qi = (t, e) => e, ec = (t, e) => t, po = async (t, e, r, n) => { }, deleteProperty(r, n) { throw v( - `Cannot delete property ${vt(n)}s of module exports namespace` + `Cannot delete property ${yt(n)}s of module exports namespace` ); }, ownKeys(r) { @@ -3828,7 +3828,7 @@ const Qi = (t, e) => e, ec = (t, e) => t, po = async (t, e, r, n) => { getOwnPropertyDescriptor(r, n) { if (!t) throw v( - `Cannot get own property descriptor ${vt( + `Cannot get own property descriptor ${yt( n )}, the module has not yet begun to execute` ); @@ -3856,7 +3856,7 @@ const Qi = (t, e) => e, ec = (t, e) => t, po = async (t, e, r, n) => { }, defineProperty(r, n, o) { throw v( - `Cannot define property ${vt(n)} of module exports namespace` + `Cannot define property ${yt(n)} of module exports namespace` ); }, apply(r, n, o) { @@ -3873,7 +3873,7 @@ const Qi = (t, e) => e, ec = (t, e) => t, po = async (t, e, r, n) => { }); }, Un = (t, e, r, n) => { const { deferredExports: o } = e; - if (!Fr(o, n)) { + if (!Lr(o, n)) { const a = rc(); ie( r, @@ -3891,7 +3891,7 @@ const Qi = (t, e) => e, ec = (t, e) => t, po = async (t, e, r, n) => { let { globalTransforms: a } = t; const { globalObject: i } = t; let c; - n !== void 0 && (a = void 0, c = Z( + n !== void 0 && (a = void 0, c = z( null, Ze(n) )), { safeEvaluate: o } = Mn({ @@ -3913,26 +3913,26 @@ const Qi = (t, e) => e, ec = (t, e) => t, po = async (t, e, r, n) => { // Note default on } = r, c = [...n]; o === !0 && X(c, ys), a === !0 && X(c, bs), i === !0 && X(c, ws); - const { safeEvaluate: l } = nc( + const { safeEvaluate: u } = nc( t, r ); - return l(e, { + return u(e, { localTransforms: c }); -}, { quote: lr } = z, oc = (t, e, r, n, o, a) => { - const { exportsProxy: i, exportsTarget: c, activate: l } = Un( +}, { quote: cr } = G, oc = (t, e, r, n, o, a) => { + const { exportsProxy: i, exportsTarget: c, activate: u } = Un( r, L(t, r), n, o - ), u = Z(null); + ), l = z(null); if (e.exports) { - if (!xt(e.exports) || da(e.exports, (f) => typeof f != "string")) + if (!St(e.exports) || da(e.exports, (f) => typeof f != "string")) throw v( `SES third-party static module record "exports" property must be an array of strings for module ${o}` ); - dt(e.exports, (f) => { + ut(e.exports, (f) => { let m = c[f]; const p = []; M(c, f, { @@ -3944,10 +3944,10 @@ const Qi = (t, e) => e, ec = (t, e) => t, po = async (t, e, r, n) => { }, enumerable: !0, configurable: !1 - }), u[f] = (E) => { + }), l[f] = (E) => { X(p, E), E(m); }; - }), u["*"] = (f) => { + }), l["*"] = (f) => { f(c); }; } @@ -3955,13 +3955,13 @@ const Qi = (t, e) => e, ec = (t, e) => t, po = async (t, e, r, n) => { activated: !1 }; return y({ - notifiers: u, + notifiers: l, exportsProxy: i, execute() { if (Io(d, "errorFromExecute")) throw d.errorFromExecute; if (!d.activated) { - l(), d.activated = !0; + u(), d.activated = !0; try { e.execute( c, @@ -3981,8 +3981,8 @@ const Qi = (t, e) => e, ec = (t, e) => t, po = async (t, e, r, n) => { staticModuleRecord: i, importMeta: c } = r, { - reexports: l = [], - __syncModuleProgram__: u, + reexports: u = [], + __syncModuleProgram__: l, __fixedExportMap__: d = {}, __liveExportMap__: f = {}, __reexportMap__: m = {}, @@ -3993,21 +3993,21 @@ const Qi = (t, e) => e, ec = (t, e) => t, po = async (t, e, r, n) => { _, e, a - ), G = Z(null), B = Z(null), K = Z(null), ze = Z(null), me = Z(null); - c && Nr(me, c), p && T && T(a, me); - const Ge = Z(null), rt = Z(null); - dt(re(d), ([he, [H]]) => { - let V = Ge[H]; - if (!V) { + ), B = z(null), H = z(null), K = z(null), ze = z(null), me = z(null); + c && $r(me, c), p && T && T(a, me); + const Ge = z(null), rt = z(null); + ut(re(d), ([he, [V]]) => { + let W = Ge[V]; + if (!W) { let ee, te = !0, ce = []; const Y = () => { if (te) - throw ut(`binding ${lr(H)} not yet initialized`); + throw lt(`binding ${cr(V)} not yet initialized`); return ee; }, be = y((we) => { if (!te) throw v( - `Internal: binding ${lr(H)} already initialized` + `Internal: binding ${cr(V)} already initialized` ); ee = we; const Hn = ce; @@ -4016,55 +4016,55 @@ const Qi = (t, e) => e, ec = (t, e) => t, po = async (t, e, r, n) => { Ee(we); return we; }); - V = { + W = { get: Y, notify: (we) => { we !== be && (te ? X(ce || [], we) : we(ee)); } - }, Ge[H] = V, K[H] = be; + }, Ge[V] = W, K[V] = be; } - G[he] = { - get: V.get, + B[he] = { + get: W.get, set: void 0, enumerable: !0, configurable: !1 - }, rt[he] = V.notify; - }), dt( + }, rt[he] = W.notify; + }), ut( re(f), - ([he, [H, V]]) => { - let ee = Ge[H]; + ([he, [V, W]]) => { + let ee = Ge[V]; if (!ee) { let te, ce = !0; const Y = [], be = () => { if (ce) - throw ut( - `binding ${lr(he)} not yet initialized` + throw lt( + `binding ${cr(he)} not yet initialized` ); return te; - }, yt = y((Ee) => { + }, gt = y((Ee) => { te = Ee, ce = !1; - for (const Gr of Y) - Gr(Ee); + for (const zr of Y) + zr(Ee); }), we = (Ee) => { if (ce) - throw ut(`binding ${lr(H)} not yet initialized`); + throw lt(`binding ${cr(V)} not yet initialized`); te = Ee; - for (const Gr of Y) - Gr(Ee); + for (const zr of Y) + zr(Ee); }; ee = { get: be, notify: (Ee) => { - Ee !== yt && (X(Y, Ee), ce || Ee(te)); + Ee !== gt && (X(Y, Ee), ce || Ee(te)); } - }, Ge[H] = ee, V && M(B, H, { + }, Ge[V] = ee, W && M(H, V, { get: be, set: we, enumerable: !0, configurable: !1 - }), ze[H] = yt; + }), ze[V] = gt; } - G[he] = { + B[he] = { get: ee.get, set: void 0, enumerable: !0, @@ -4076,36 +4076,36 @@ const Qi = (t, e) => e, ec = (t, e) => t, po = async (t, e, r, n) => { he(x); }; rt["*"] = Be; - function ir(he) { - const H = Z(null); - H.default = !1; - for (const [V, ee] of he) { - const te = Ue(n, V); + function ar(he) { + const V = z(null); + V.default = !1; + for (const [W, ee] of he) { + const te = Ue(n, W); te.execute(); const { notifiers: ce } = te; for (const [Y, be] of ee) { - const yt = ce[Y]; - if (!yt) - throw rr( - `The requested module '${V}' does not provide an export named '${Y}'` + const gt = ce[Y]; + if (!gt) + throw tr( + `The requested module '${W}' does not provide an export named '${Y}'` ); for (const we of be) - yt(we); + gt(we); } - if (Lr(l, V)) + if (Mr(u, W)) for (const [Y, be] of re( ce )) - H[Y] === void 0 ? H[Y] = be : H[Y] = !1; - if (m[V]) - for (const [Y, be] of m[V]) - H[be] = ce[Y]; + V[Y] === void 0 ? V[Y] = be : V[Y] = !1; + if (m[W]) + for (const [Y, be] of m[W]) + V[be] = ce[Y]; } - for (const [V, ee] of re(H)) - if (!rt[V] && ee !== !1) { - rt[V] = ee; + for (const [W, ee] of re(V)) + if (!rt[W] && ee !== !1) { + rt[W] = ee; let te; - ee((Y) => te = Y), G[V] = { + ee((Y) => te = Y), B[W] = { get() { return te; }, @@ -4114,33 +4114,33 @@ const Qi = (t, e) => e, ec = (t, e) => t, po = async (t, e, r, n) => { configurable: !1 }; } - dt( - Mo(xo(G)), - (V) => M(x, V, G[V]) + ut( + Mo(xo(B)), + (W) => M(x, W, B[W]) ), y(x), D(); } - let Mt; - h !== void 0 ? Mt = h : Mt = As(_, u, { + let Ot; + h !== void 0 ? Ot = h : Ot = As(_, l, { globalObject: o.globalThis, transforms: E, - __moduleShimLexicals__: B + __moduleShimLexicals__: H }); let Gn = !1, Bn; function Bs() { - if (Mt) { - const he = Mt; - Mt = null; + if (Ot) { + const he = Ot; + Ot = null; try { he( y({ - imports: y(ir), + imports: y(ar), onceVar: y(K), liveVar: y(ze), importMeta: me }) ); - } catch (H) { - Gn = !0, Bn = H; + } catch (V) { + Gn = !0, Bn = V; } } if (Gn) @@ -4151,13 +4151,13 @@ const Qi = (t, e) => e, ec = (t, e) => t, po = async (t, e, r, n) => { exportsProxy: N, execute: Bs }); -}, { Fail: lt, quote: q } = z, Is = (t, e, r, n) => { +}, { Fail: ct, quote: q } = G, Is = (t, e, r, n) => { const { name: o, moduleRecords: a } = L( t, r ), i = Ue(a, n); if (i === void 0) - throw ut( + throw lt( `Missing link to module ${q(n)} from compartment ${q( o )}` @@ -4169,9 +4169,9 @@ function ac(t) { } function ic(t, e) { const { __fixedExportMap__: r, __liveExportMap__: n } = t; - Ye(r) || lt`Property '__fixedExportMap__' of a precompiled module record must be an object, got ${q( + Ye(r) || ct`Property '__fixedExportMap__' of a precompiled module record must be an object, got ${q( r - )}, for module ${q(e)}`, Ye(n) || lt`Property '__liveExportMap__' of a precompiled module record must be an object, got ${q( + )}, for module ${q(e)}`, Ye(n) || ct`Property '__liveExportMap__' of a precompiled module record must be an object, got ${q( n )}, for module ${q(e)}`; } @@ -4180,39 +4180,39 @@ function cc(t) { } function lc(t, e) { const { exports: r } = t; - xt(r) || lt`Property 'exports' of a third-party static module record must be an array, got ${q( + St(r) || ct`Property 'exports' of a third-party static module record must be an array, got ${q( r )}, for module ${q(e)}`; } function uc(t, e) { - Ye(t) || lt`Static module records must be of type object, got ${q( + Ye(t) || ct`Static module records must be of type object, got ${q( t )}, for module ${q(e)}`; const { imports: r, exports: n, reexports: o = [] } = t; - xt(r) || lt`Property 'imports' of a static module record must be an array, got ${q( + St(r) || ct`Property 'imports' of a static module record must be an array, got ${q( r - )}, for module ${q(e)}`, xt(n) || lt`Property 'exports' of a precompiled module record must be an array, got ${q( + )}, for module ${q(e)}`, St(n) || ct`Property 'exports' of a precompiled module record must be an array, got ${q( n - )}, for module ${q(e)}`, xt(o) || lt`Property 'reexports' of a precompiled module record must be an array if present, got ${q( + )}, for module ${q(e)}`, St(o) || ct`Property 'reexports' of a precompiled module record must be an array if present, got ${q( o )}, for module ${q(e)}`; } const dc = (t, e, r) => { const { compartment: n, moduleSpecifier: o, resolvedImports: a, staticModuleRecord: i } = r, { instances: c } = L(t, n); - if (Fr(c, o)) + if (Lr(c, o)) return Ue(c, o); uc(i, o); - const l = new Pe(); - let u; + const u = new Pe(); + let l; if (ac(i)) - ic(i, o), u = sc( + ic(i, o), l = sc( t, e, r, - l + u ); else if (cc(i)) - lc(i, o), u = oc( + lc(i, o), l = oc( t, i, n, @@ -4226,7 +4226,7 @@ const dc = (t, e, r) => { i )}` ); - $e(c, o, u); + $e(c, o, l); for (const [d, f] of re(a)) { const m = Is( t, @@ -4234,10 +4234,10 @@ const dc = (t, e, r) => { n, f ); - $e(l, d, m); + $e(u, d, m); } - return u; -}, { quote: Qr } = z, wt = new Me(), Ce = new Me(), ur = (t) => { + return l; +}, { quote: Xr } = G, bt = new Me(), Ce = new Me(), lr = (t) => { const { importHook: e, resolveHook: r } = L(Ce, t); if (typeof e != "function" || typeof r != "function") throw v( @@ -4250,7 +4250,7 @@ const dc = (t, e, r) => { }, mo = (t, e) => { const { execute: r, exportsProxy: n } = Is( Ce, - wt, + bt, t, e ); @@ -4280,11 +4280,11 @@ const dc = (t, e, r) => { module(t) { if (typeof t != "string") throw v("first argument of module() must be a string"); - ur(this); + lr(this); const { exportsProxy: e } = Un( this, L(Ce, this), - wt, + bt, t ); return e; @@ -4292,8 +4292,8 @@ const dc = (t, e, r) => { async import(t) { if (typeof t != "string") throw v("first argument of import() must be a string"); - return ur(this), jo( - po(Ce, wt, this, t), + return lr(this), jo( + po(Ce, bt, this, t), () => ({ namespace: mo( /** @type {Compartment} */ this, @@ -4304,12 +4304,12 @@ const dc = (t, e, r) => { async load(t) { if (typeof t != "string") throw v("first argument of load() must be a string"); - return ur(this), po(Ce, wt, this, t); + return lr(this), po(Ce, bt, this, t); }, importNow(t) { if (typeof t != "string") throw v("first argument of importNow() must be a string"); - return ur(this), tc(Ce, wt, this, t), mo( + return lr(this), tc(Ce, bt, this, t), mo( /** @type {Compartment} */ this, t @@ -4327,7 +4327,7 @@ F(Zn, { F(jn, { prototype: { value: Zn } }); -const fn = (t, e, r) => { +const dn = (t, e, r) => { function n(o = {}, a = {}, i = {}) { if (new.target === void 0) throw v( @@ -4335,25 +4335,25 @@ const fn = (t, e, r) => { ); const { name: c = "", - transforms: l = [], - __shimTransforms__: u = [], + transforms: u = [], + __shimTransforms__: l = [], resolveHook: d, importHook: f, importNowHook: m, moduleMapHook: p, importMetaHook: h - } = i, _ = [...l, ...u], E = new Pe(), T = new Pe(), N = new Pe(); - for (const [G, B] of re(a || {})) { - if (typeof B == "string") + } = i, _ = [...u, ...l], E = new Pe(), T = new Pe(), N = new Pe(); + for (const [B, H] of re(a || {})) { + if (typeof H == "string") throw v( - `Cannot map module ${Qr(G)} to ${Qr( - B + `Cannot map module ${Xr(B)} to ${Xr( + H )} in parent compartment` ); - if (L(wt, B) === void 0) - throw ut( - `Cannot map module ${Qr( - G + if (L(bt, H) === void 0) + throw lt( + `Cannot map module ${Xr( + B )} because it has no known compartment in this realm` ); } @@ -4369,11 +4369,11 @@ const fn = (t, e, r) => { newGlobalPropertyNames: ns, makeCompartmentConstructor: t, markVirtualizedNativeFunction: r - }), un( + }), ln( x, D, r - ), Nr(x, o), ie(Ce, this, { + ), $r(x, o), ie(Ce, this, { name: `${c}`, globalTransforms: _, globalObject: x, @@ -4385,39 +4385,39 @@ const fn = (t, e, r) => { moduleMapHook: p, importMetaHook: h, moduleRecords: E, - __shimTransforms__: u, + __shimTransforms__: l, deferredExports: N, instances: T }); } return n.prototype = Zn, n; }; -function en(t) { +function Qr(t) { return j(t).constructor; } function fc() { return arguments; } const pc = () => { - const t = ve.prototype.constructor, e = J(fc(), "callee"), r = e && e.get, n = ba(new pe()), o = j(n), a = Or[To] && ya(/./), i = a && j(a), c = fa([]), l = j(c), u = j(Ws), d = ha(new Pe()), f = j(d), m = ga(new $t()), p = j(m), h = j(l); + const t = ve.prototype.constructor, e = J(fc(), "callee"), r = e && e.get, n = ba(new pe()), o = j(n), a = Rr[To] && ya(/./), i = a && j(a), c = fa([]), u = j(c), l = j(Ws), d = ha(new Pe()), f = j(d), m = ga(new Ct()), p = j(m), h = j(u); function* _() { } - const E = en(_), T = E.prototype; + const E = Qr(_), T = E.prototype; async function* N() { } - const x = en( + const x = Qr( N - ), D = x.prototype, G = D.prototype, B = j(G); + ), D = x.prototype, B = D.prototype, H = j(B); async function K() { } - const ze = en(K), me = { + const ze = Qr(K), me = { "%InertFunction%": t, - "%ArrayIteratorPrototype%": l, + "%ArrayIteratorPrototype%": u, "%InertAsyncFunction%": ze, "%AsyncGenerator%": D, "%InertAsyncGeneratorFunction%": x, - "%AsyncGeneratorPrototype%": G, - "%AsyncIteratorPrototype%": B, + "%AsyncGeneratorPrototype%": B, + "%AsyncIteratorPrototype%": H, "%Generator%": T, "%InertGeneratorFunction%": E, "%IteratorPrototype%": h, @@ -4426,7 +4426,7 @@ const pc = () => { "%SetIteratorPrototype%": p, "%StringIteratorPrototype%": o, "%ThrowTypeError%": r, - "%TypedArray%": u, + "%TypedArray%": l, "%InertCompartment%": jn }; return k.Iterator && (me["%IteratorHelperPrototype%"] = j( @@ -4454,7 +4454,7 @@ const pc = () => { }; y(Cs); const mc = () => { - const t = St, e = t.prototype, r = Sa(St, void 0); + const t = Et, e = t.prototype, r = Sa(Et, void 0); F(e, { constructor: { value: r @@ -4463,7 +4463,7 @@ const mc = () => { }); const n = re( Ze(t) - ), o = gt( + ), o = ht( se(n, ([a, i]) => [ a, { ...i, configurable: !0 } @@ -4488,8 +4488,8 @@ const mc = () => { const i = "Seems to be a setter", c = { __proto__: null }; if (ne(a, c, [i]), c[e] !== i) return !1; - const l = { __proto__: t }; - return ne(a, l, [i]), l[e] !== i || !hc(() => ne(a, t, [r])) || "originalValue" in o || n.configurable === !1 ? !1 : (M(t, e, { + const u = { __proto__: t }; + return ne(a, u, [i]), u[e] !== i || !hc(() => ne(a, t, [r])) || "originalValue" in o || n.configurable === !1 ? !1 : (M(t, e, { value: r, writable: !0, enumerable: n.enumerable, @@ -4505,8 +4505,8 @@ const mc = () => { qe, "Iterator" ); -}, { Fail: go, details: yo, quote: vo } = z; -let dr, fr; +}, { Fail: go, details: yo, quote: vo } = G; +let ur, dr; const yc = Ba(), vc = () => { let t = !1; try { @@ -4542,8 +4542,8 @@ const yc = Ba(), vc = () => { le("LOCKDOWN_CONSOLE_TAMING", "safe") ), overrideTaming: c = le("LOCKDOWN_OVERRIDE_TAMING", "moderate"), - stackFiltering: l = le("LOCKDOWN_STACK_FILTERING", "concise"), - domainTaming: u = le("LOCKDOWN_DOMAIN_TAMING", "safe"), + stackFiltering: u = le("LOCKDOWN_STACK_FILTERING", "concise"), + domainTaming: l = le("LOCKDOWN_DOMAIN_TAMING", "safe"), evalTaming: d = le("LOCKDOWN_EVAL_TAMING", "safeEval"), overrideDebug: f = Ke( An(le("LOCKDOWN_OVERRIDE_DEBUG", ""), ","), @@ -4559,23 +4559,23 @@ const yc = Ba(), vc = () => { } = t; d === "unsafeEval" || d === "safeEval" || d === "noEval" || go`lockdown(): non supported option evalTaming: ${vo(d)}`; const E = De(_); - if (E.length === 0 || go`lockdown(): non supported option ${vo(E)}`, dr === void 0 || // eslint-disable-next-line @endo/no-polymorphic-call - z.fail( - yo`Already locked down at ${dr} (SES_ALREADY_LOCKED_DOWN)`, + if (E.length === 0 || go`lockdown(): non supported option ${vo(E)}`, ur === void 0 || // eslint-disable-next-line @endo/no-polymorphic-call + G.fail( + yo`Already locked down at ${ur} (SES_ALREADY_LOCKED_DOWN)`, v - ), dr = v("Prior lockdown (SES_ALREADY_LOCKED_DOWN)"), dr.stack, vc(), k.Function.prototype.constructor !== k.Function && // @ts-ignore harden is absent on globalThis type def. + ), ur = v("Prior lockdown (SES_ALREADY_LOCKED_DOWN)"), ur.stack, vc(), k.Function.prototype.constructor !== k.Function && // @ts-ignore harden is absent on globalThis type def. typeof k.harden == "function" && // @ts-ignore lockdown is absent on globalThis type def. typeof k.lockdown == "function" && k.Date.prototype.constructor !== k.Date && typeof k.Date.now == "function" && // @ts-ignore does not recognize that Date constructor is a special // Function. // eslint-disable-next-line @endo/no-polymorphic-call - Rr(k.Date.prototype.constructor.now(), NaN)) + Nr(k.Date.prototype.constructor.now(), NaN)) throw v( "Already locked down but not by this SES instance (SES_MULTIPLE_INSTANCES)" ); - xi(u); - const N = xs(), { addIntrinsics: x, completePrototypes: D, finalIntrinsics: G } = as(), B = Cs(yc, m); - x({ harden: B }), x(Ja()), x(Xa(p)), x(Bi(e, l)), x(Qa(h)), x(ei(o)), x(mc()), x(pc()), D(); - const K = G(), ze = { __proto__: null }; + xi(l); + const N = xs(), { addIntrinsics: x, completePrototypes: D, finalIntrinsics: B } = as(), H = Cs(yc, m); + x({ harden: H }), x(Ja()), x(Xa(p)), x(Bi(e, u)), x(Qa(h)), x(ei(o)), x(mc()), x(pc()), D(); + const K = B(), ze = { __proto__: null }; typeof k.Buffer == "function" && (ze.Buffer = k.Buffer); let me; e !== "unsafe" && (me = K["%InitialGetStackString%"]); @@ -4591,33 +4591,33 @@ const yc = Ba(), vc = () => { // eslint-disable-next-line no-underscore-dangle /** @type {any} */ Ge.console._times - )), e === "unsafe" && k.assert === z && (k.assert = Zr(void 0, !0)), ii(K, a), gc(K), Ya(K, N), ls(k), us(k, { + )), e === "unsafe" && k.assert === G && (k.assert = jr(void 0, !0)), ii(K, a), gc(K), Ya(K, N), ls(k), us(k, { intrinsics: K, newGlobalPropertyNames: Xn, - makeCompartmentConstructor: fn, + makeCompartmentConstructor: dn, markVirtualizedNativeFunction: N }), d === "noEval") - un( + ln( k, ka, N ); else if (d === "safeEval") { const { safeEvaluate: Be } = Mn({ globalObject: k }); - un( + ln( k, Be, N ); } return () => { - fr === void 0 || // eslint-disable-next-line @endo/no-polymorphic-call - z.fail( - yo`Already locked down at ${fr} (SES_ALREADY_LOCKED_DOWN)`, + dr === void 0 || // eslint-disable-next-line @endo/no-polymorphic-call + G.fail( + yo`Already locked down at ${dr} (SES_ALREADY_LOCKED_DOWN)`, v - ), fr = v( + ), dr = v( "Prior lockdown (SES_ALREADY_LOCKED_DOWN)" - ), fr.stack, ni(K, c, f); + ), dr.stack, ni(K, c, f); const Be = { intrinsics: K, hostIntrinsics: ze, @@ -4631,9 +4631,9 @@ const yc = Ba(), vc = () => { Symbol: k.Symbol } }; - for (const ir of Ut(Xn)) - Be.globals[ir] = k[ir]; - return B(Be), B; + for (const ar of Dt(Xn)) + Be.globals[ar] = k[ar]; + return H(Be), H; }; }; k.lockdown = (t) => { @@ -4647,35 +4647,35 @@ k.repairIntrinsics = (t) => { }; }; const _c = xs(); -k.Compartment = fn( - fn, +k.Compartment = dn( + dn, Ka(k), _c ); -k.assert = z; -const bc = Ps(wr), wc = ra( +k.assert = G; +const bc = Ps(br), wc = ra( "MAKE_CAUSAL_CONSOLE_FROM_LOGGER_KEY_FOR_SES_AVA" ); k[wc] = bc; const Ec = (t, e) => { let r = { x: 0, y: 0 }, n = { x: 0, y: 0 }, o = { x: 0, y: 0 }; - const a = (l) => { - const { clientX: u, clientY: d } = l, f = u - o.x + n.x, m = d - o.y + n.y; + const a = (u) => { + const { clientX: l, clientY: d } = u, f = l - o.x + n.x, m = d - o.y + n.y; r = { x: f, y: m }, t.style.transform = `translate(${f}px, ${m}px)`, e == null || e(); }, i = () => { document.removeEventListener("mousemove", a), document.removeEventListener("mouseup", i); - }, c = (l) => { - o = { x: l.clientX, y: l.clientY }, n = { x: r.x, y: r.y }, document.addEventListener("mousemove", a), document.addEventListener("mouseup", i); + }, c = (u) => { + o = { x: u.clientX, y: u.clientY }, n = { x: r.x, y: r.y }, document.addEventListener("mousemove", a), document.addEventListener("mouseup", i); }; return t.addEventListener("mousedown", c), i; -}, Sc = ":host{--spacing-4: .25rem;--spacing-8: calc(var(--spacing-4) * 2);--spacing-12: calc(var(--spacing-4) * 3);--spacing-16: calc(var(--spacing-4) * 4);--spacing-20: calc(var(--spacing-4) * 5);--spacing-24: calc(var(--spacing-4) * 6);--spacing-28: calc(var(--spacing-4) * 7);--spacing-32: calc(var(--spacing-4) * 8);--spacing-36: calc(var(--spacing-4) * 9);--spacing-40: calc(var(--spacing-4) * 10);--font-weight-regular: 400;--font-weight-bold: 500;--font-line-height-s: 1.2;--font-line-height-m: 1.4;--font-line-height-l: 1.5;--font-size-s: 12px;--font-size-m: 14px;--font-size-l: 16px}[data-theme]{background-color:var(--color-background-primary);color:var(--color-foreground-secondary)}.wrapper{box-sizing:border-box;display:flex;flex-direction:column;position:fixed;inset-block-start:var(--modal-block-start);inset-inline-end:var(--modal-inline-end);z-index:1000;padding:25px;border-radius:15px;border:2px solid var(--color-background-quaternary)}.header{align-items:center;display:flex;justify-content:space-between;border-block-end:2px solid var(--color-background-quaternary);padding-block-end:var(--spacing-4)}button{background:transparent;border:0;cursor:pointer;padding:0}h1{font-size:var(--font-size-s);font-weight:var(--font-weight-bold);margin:0;margin-inline-end:var(--spacing-4);-webkit-user-select:none;user-select:none}iframe{border:none;inline-size:100%;block-size:100%}", xc = ` +}, Sc = ":host{--spacing-4: .25rem;--spacing-8: calc(var(--spacing-4) * 2);--spacing-12: calc(var(--spacing-4) * 3);--spacing-16: calc(var(--spacing-4) * 4);--spacing-20: calc(var(--spacing-4) * 5);--spacing-24: calc(var(--spacing-4) * 6);--spacing-28: calc(var(--spacing-4) * 7);--spacing-32: calc(var(--spacing-4) * 8);--spacing-36: calc(var(--spacing-4) * 9);--spacing-40: calc(var(--spacing-4) * 10);--font-weight-regular: 400;--font-weight-bold: 500;--font-line-height-s: 1.2;--font-line-height-m: 1.4;--font-line-height-l: 1.5;--font-size-s: 12px;--font-size-m: 14px;--font-size-l: 16px}[data-theme]{background-color:var(--color-background-primary);color:var(--color-foreground-secondary)}.wrapper{box-sizing:border-box;display:flex;flex-direction:column;position:fixed;inset-block-start:var(--modal-block-start);inset-inline-end:var(--modal-inline-end);z-index:1000;padding:25px;border-radius:15px;border:2px solid var(--color-background-quaternary);box-shadow:0 0 10px #0000004d}.wrapper[data-theme=light]{border:none}.header{align-items:center;display:flex;justify-content:space-between;border-block-end:2px solid var(--color-background-quaternary);padding-block-end:var(--spacing-4)}button{background:transparent;border:0;cursor:pointer;padding:0}h1{font-size:var(--font-size-s);font-weight:var(--font-weight-bold);margin:0;margin-inline-end:var(--spacing-4);-webkit-user-select:none;user-select:none}iframe{border:none;inline-size:100%;block-size:100%}", xc = ` `; -var de, tr; +var de, er; class kc extends HTMLElement { constructor() { super(); - Br(this, de, null); - Br(this, tr, null); + Gr(this, de, null); + Gr(this, er, null); this.attachShadow({ mode: "open" }); } setTheme(r) { @@ -4683,7 +4683,7 @@ class kc extends HTMLElement { } disconnectedCallback() { var r; - (r = Se(this, tr)) == null || r.call(this); + (r = Se(this, er)) == null || r.call(this); } calculateZIndex() { const r = document.querySelectorAll("plugin-modal"), n = Array.from(r).filter((a) => a !== this).map((a) => Number(a.style.zIndex)), o = Math.max(...n, 0); @@ -4695,24 +4695,24 @@ class kc extends HTMLElement { throw new Error("title and iframe-src attributes are required"); if (!this.shadowRoot) throw new Error("Error creating shadow root"); - Hr(this, de, document.createElement("div")), Se(this, de).classList.add("wrapper"), Se(this, de).style.inlineSize = `${o}px`, Se(this, de).style.blockSize = `${a}px`, Hr(this, tr, Ec(Se(this, de), () => { + Br(this, de, document.createElement("div")), Se(this, de).classList.add("wrapper"), Se(this, de).style.inlineSize = `${o}px`, Se(this, de).style.blockSize = `${a}px`, Br(this, er, Ec(Se(this, de), () => { this.calculateZIndex(); })); const i = document.createElement("div"); i.classList.add("header"); const c = document.createElement("h1"); c.textContent = r, i.appendChild(c); - const l = document.createElement("button"); - l.setAttribute("type", "button"), l.innerHTML = `
    ${xc}
    `, l.addEventListener("click", () => { + const u = document.createElement("button"); + u.setAttribute("type", "button"), u.innerHTML = `
    ${xc}
    `, u.addEventListener("click", () => { this.shadowRoot && this.shadowRoot.dispatchEvent( new CustomEvent("close", { composed: !0, bubbles: !0 }) ); - }), i.appendChild(l); - const u = document.createElement("iframe"); - u.src = n, u.allow = "", u.sandbox.add( + }), i.appendChild(u); + const l = document.createElement("iframe"); + l.src = n, l.allow = "", l.sandbox.add( "allow-scripts", "allow-forms", "allow-modals", @@ -4720,13 +4720,13 @@ class kc extends HTMLElement { "allow-popups-to-escape-sandbox", "allow-storage-access-by-user-activation" ), this.addEventListener("message", (f) => { - u.contentWindow && u.contentWindow.postMessage(f.detail, "*"); - }), this.shadowRoot.appendChild(Se(this, de)), Se(this, de).appendChild(i), Se(this, de).appendChild(u); + l.contentWindow && l.contentWindow.postMessage(f.detail, "*"); + }), this.shadowRoot.appendChild(Se(this, de)), Se(this, de).appendChild(i), Se(this, de).appendChild(l); const d = document.createElement("style"); d.textContent = Sc, this.shadowRoot.appendChild(d), this.calculateZIndex(); } } -de = new WeakMap(), tr = new WeakMap(); +de = new WeakMap(), er = new WeakMap(); customElements.define("plugin-modal", kc); var O; (function(t) { @@ -4764,14 +4764,14 @@ var O; } t.joinValues = n, t.jsonStringifyReplacer = (o, a) => typeof a == "bigint" ? a.toString() : a; })(O || (O = {})); -var pn; +var fn; (function(t) { t.mergeShapes = (e, r) => ({ ...e, ...r // second overwrites first }); -})(pn || (pn = {})); +})(fn || (fn = {})); const w = O.arrayToEnum([ "string", "nan", @@ -4859,10 +4859,10 @@ class fe extends Error { else if (i.path.length === 0) n._errors.push(r(i)); else { - let c = n, l = 0; - for (; l < i.path.length; ) { - const u = i.path[l]; - l === i.path.length - 1 ? (c[u] = c[u] || { _errors: [] }, c[u]._errors.push(r(i))) : c[u] = c[u] || { _errors: [] }, c = c[u], l++; + let c = n, u = 0; + for (; u < i.path.length; ) { + const l = i.path[u]; + u === i.path.length - 1 ? (c[l] = c[l] || { _errors: [] }, c[l]._errors.push(r(i))) : c[l] = c[l] || { _errors: [] }, c = c[l], u++; } } }; @@ -4892,7 +4892,7 @@ class fe extends Error { } } fe.create = (t) => new fe(t); -const At = (t, e) => { +const Tt = (t, e) => { let r; switch (t.code) { case g.invalid_type: @@ -4948,14 +4948,14 @@ const At = (t, e) => { } return { message: r }; }; -let Ns = At; +let Ns = Tt; function Tc(t) { Ns = t; } -function xr() { +function Sr() { return Ns; } -const kr = (t) => { +const xr = (t) => { const { data: e, path: r, errorMaps: n, issueData: o } = t, a = [...r, ...o.path || []], i = { ...o, path: a @@ -4967,9 +4967,9 @@ const kr = (t) => { message: o.message }; let c = ""; - const l = n.filter((u) => !!u).slice().reverse(); - for (const u of l) - c = u(i, { data: e, defaultError: c }).message; + const u = n.filter((l) => !!l).slice().reverse(); + for (const l of u) + c = l(i, { data: e, defaultError: c }).message; return { ...o, path: a, @@ -4977,7 +4977,7 @@ const kr = (t) => { }; }, Ac = []; function b(t, e) { - const r = xr(), n = kr({ + const r = Sr(), n = xr({ issueData: e, data: t.data, path: t.path, @@ -4985,7 +4985,7 @@ function b(t, e) { t.common.contextualErrorMap, t.schemaErrorMap, r, - r === At ? void 0 : At + r === Tt ? void 0 : Tt // then global default map ].filter((o) => !!o) }); @@ -5034,8 +5034,8 @@ class Q { } const I = Object.freeze({ status: "aborted" -}), Et = (t) => ({ status: "dirty", value: t }), ae = (t) => ({ status: "valid", value: t }), mn = (t) => t.status === "aborted", hn = (t) => t.status === "dirty", Zt = (t) => t.status === "valid", zt = (t) => typeof Promise < "u" && t instanceof Promise; -function Pr(t, e, r, n) { +}), wt = (t) => ({ status: "dirty", value: t }), ae = (t) => ({ status: "valid", value: t }), pn = (t) => t.status === "aborted", mn = (t) => t.status === "dirty", jt = (t) => t.status === "valid", Zt = (t) => typeof Promise < "u" && t instanceof Promise; +function kr(t, e, r, n) { if (typeof e == "function" ? t !== e || !n : !e.has(t)) throw new TypeError("Cannot read private member from an object whose class did not declare it"); return e.get(t); @@ -5049,7 +5049,7 @@ var S; (function(t) { t.errToObj = (e) => typeof e == "string" ? { message: e } : e || {}, t.toString = (e) => typeof e == "string" ? e : e == null ? void 0 : e.message; })(S || (S = {})); -var Lt, Ft; +var Mt, Lt; class Re { constructor(e, r, n, o) { this._cachedPath = [], this.parent = e, this.data = r, this._path = n, this._key = o; @@ -5059,7 +5059,7 @@ class Re { } } const _o = (t, e) => { - if (Zt(e)) + if (jt(e)) return { success: !0, data: e.value }; if (!t.common.issues.length) throw new Error("Validation failed but no issues detected."); @@ -5080,9 +5080,9 @@ function C(t) { if (e && (r || n)) throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`); return e ? { errorMap: e, description: o } : { errorMap: (i, c) => { - var l, u; + var u, l; const { message: d } = t; - return i.code === "invalid_enum_value" ? { message: d ?? c.defaultError } : typeof c.data > "u" ? { message: (l = d ?? n) !== null && l !== void 0 ? l : c.defaultError } : i.code !== "invalid_type" ? { message: c.defaultError } : { message: (u = d ?? r) !== null && u !== void 0 ? u : c.defaultError }; + return i.code === "invalid_enum_value" ? { message: d ?? c.defaultError } : typeof c.data > "u" ? { message: (u = d ?? n) !== null && u !== void 0 ? u : c.defaultError } : i.code !== "invalid_type" ? { message: c.defaultError } : { message: (l = d ?? r) !== null && l !== void 0 ? l : c.defaultError }; }, description: o }; } class $ { @@ -5120,7 +5120,7 @@ class $ { } _parseSync(e) { const r = this._parse(e); - if (zt(r)) + if (Zt(r)) throw new Error("Synchronous parse encountered promise."); return r; } @@ -5168,7 +5168,7 @@ class $ { parent: null, data: e, parsedType: Ve(e) - }, o = this._parse({ data: e, path: n.path, parent: n }), a = await (zt(o) ? o : Promise.resolve(o)); + }, o = this._parse({ data: e, path: n.path, parent: n }), a = await (Zt(o) ? o : Promise.resolve(o)); return _o(n, a); } refine(e, r) { @@ -5178,7 +5178,7 @@ class $ { code: g.custom, ...n(o) }); - return typeof Promise < "u" && i instanceof Promise ? i.then((l) => l ? !0 : (c(), !1)) : i ? !0 : (c(), !1); + return typeof Promise < "u" && i instanceof Promise ? i.then((u) => u ? !0 : (c(), !1)) : i ? !0 : (c(), !1); }); } refinement(e, r) { @@ -5207,13 +5207,13 @@ class $ { return Te.create(this, this._def); } promise() { - return Ct.create(this, this._def); + return It.create(this, this._def); } or(e) { - return Vt.create([this, e], this._def); + return Ht.create([this, e], this._def); } and(e) { - return Wt.create(this, e, this._def); + return Vt.create(this, e, this._def); } transform(e) { return new Ae({ @@ -5225,7 +5225,7 @@ class $ { } default(e) { const r = typeof e == "function" ? e : () => e; - return new Xt({ + return new Jt({ ...C(this._def), innerType: this, defaultValue: r, @@ -5241,7 +5241,7 @@ class $ { } catch(e) { const r = typeof e == "function" ? e : () => e; - return new Qt({ + return new Xt({ ...C(this._def), innerType: this, catchValue: r, @@ -5256,10 +5256,10 @@ class $ { }); } pipe(e) { - return ar.create(this, e); + return sr.create(this, e); } readonly() { - return er.create(this); + return Qt.create(this); } isOptional() { return this.safeParse(void 0).success; @@ -5269,7 +5269,7 @@ class $ { } } const Ic = /^c[^\s-]{8,}$/i, Cc = /^[0-9a-z]+$/, $c = /^[0-9A-HJKMNP-TV-Z]{26}$/, Nc = /^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i, Rc = /^[a-z0-9_-]{21}$/i, Oc = /^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/, Mc = /^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i, Lc = "^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$"; -let tn; +let en; const Fc = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/, Dc = /^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/, Uc = /^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/, Os = "((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))", jc = new RegExp(`^${Os}$`); function Ms(t) { let e = "([01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d"; @@ -5341,7 +5341,7 @@ class ke extends $ { message: a.message }), n.dirty()); else if (a.kind === "emoji") - tn || (tn = new RegExp(Lc, "u")), tn.test(e.data) || (o = this._getOrReturnCtx(e, o), b(o, { + en || (en = new RegExp(Lc, "u")), en.test(e.data) || (o = this._getOrReturnCtx(e, o), b(o, { validation: "emoji", code: g.invalid_string, message: a.message @@ -5949,7 +5949,7 @@ Qe.create = (t) => { ...C(t) }); }; -class Gt extends $ { +class zt extends $ { _parse(e) { if (this._def.coerce && (e.data = !!e.data), this._getType(e) !== w.boolean) { const n = this._getOrReturnCtx(e); @@ -5962,12 +5962,12 @@ class Gt extends $ { return ae(e.data); } } -Gt.create = (t) => new Gt({ +zt.create = (t) => new zt({ typeName: A.ZodBoolean, coerce: (t == null ? void 0 : t.coerce) || !1, ...C(t) }); -class mt extends $ { +class pt extends $ { _parse(e) { if (this._def.coerce && (e.data = new Date(e.data)), this._getType(e) !== w.date) { const a = this._getOrReturnCtx(e); @@ -6007,7 +6007,7 @@ class mt extends $ { }; } _addCheck(e) { - return new mt({ + return new pt({ ...this._def, checks: [...this._def.checks, e] }); @@ -6039,13 +6039,13 @@ class mt extends $ { return e != null ? new Date(e) : null; } } -mt.create = (t) => new mt({ +pt.create = (t) => new pt({ checks: [], coerce: (t == null ? void 0 : t.coerce) || !1, typeName: A.ZodDate, ...C(t) }); -class Tr extends $ { +class Pr extends $ { _parse(e) { if (this._getType(e) !== w.symbol) { const n = this._getOrReturnCtx(e); @@ -6058,11 +6058,11 @@ class Tr extends $ { return ae(e.data); } } -Tr.create = (t) => new Tr({ +Pr.create = (t) => new Pr({ typeName: A.ZodSymbol, ...C(t) }); -class Bt extends $ { +class Gt extends $ { _parse(e) { if (this._getType(e) !== w.undefined) { const n = this._getOrReturnCtx(e); @@ -6075,11 +6075,11 @@ class Bt extends $ { return ae(e.data); } } -Bt.create = (t) => new Bt({ +Gt.create = (t) => new Gt({ typeName: A.ZodUndefined, ...C(t) }); -class Ht extends $ { +class Bt extends $ { _parse(e) { if (this._getType(e) !== w.null) { const n = this._getOrReturnCtx(e); @@ -6092,11 +6092,11 @@ class Ht extends $ { return ae(e.data); } } -Ht.create = (t) => new Ht({ +Bt.create = (t) => new Bt({ typeName: A.ZodNull, ...C(t) }); -class It extends $ { +class At extends $ { constructor() { super(...arguments), this._any = !0; } @@ -6104,11 +6104,11 @@ class It extends $ { return ae(e.data); } } -It.create = (t) => new It({ +At.create = (t) => new At({ typeName: A.ZodAny, ...C(t) }); -class ft extends $ { +class dt extends $ { constructor() { super(...arguments), this._unknown = !0; } @@ -6116,7 +6116,7 @@ class ft extends $ { return ae(e.data); } } -ft.create = (t) => new ft({ +dt.create = (t) => new dt({ typeName: A.ZodUnknown, ...C(t) }); @@ -6134,7 +6134,7 @@ je.create = (t) => new je({ typeName: A.ZodNever, ...C(t) }); -class Ar extends $ { +class Tr extends $ { _parse(e) { if (this._getType(e) !== w.undefined) { const n = this._getOrReturnCtx(e); @@ -6147,7 +6147,7 @@ class Ar extends $ { return ae(e.data); } } -Ar.create = (t) => new Ar({ +Tr.create = (t) => new Tr({ typeName: A.ZodVoid, ...C(t) }); @@ -6224,12 +6224,12 @@ Te.create = (t, e) => new Te({ typeName: A.ZodArray, ...C(e) }); -function bt(t) { +function _t(t) { if (t instanceof U) { const e = {}; for (const r in t.shape) { const n = t.shape[r]; - e[r] = Ne.create(bt(n)); + e[r] = Ne.create(_t(n)); } return new U({ ...t._def, @@ -6238,8 +6238,8 @@ function bt(t) { } else return t instanceof Te ? new Te({ ...t._def, - type: bt(t.element) - }) : t instanceof Ne ? Ne.create(bt(t.unwrap())) : t instanceof tt ? tt.create(bt(t.unwrap())) : t instanceof Oe ? Oe.create(t.items.map((e) => bt(e))) : t; + type: _t(t.element) + }) : t instanceof Ne ? Ne.create(_t(t.unwrap())) : t instanceof tt ? tt.create(_t(t.unwrap())) : t instanceof Oe ? Oe.create(t.items.map((e) => _t(e))) : t; } class U extends $ { constructor() { @@ -6253,48 +6253,48 @@ class U extends $ { } _parse(e) { if (this._getType(e) !== w.object) { - const u = this._getOrReturnCtx(e); - return b(u, { + const l = this._getOrReturnCtx(e); + return b(l, { code: g.invalid_type, expected: w.object, - received: u.parsedType + received: l.parsedType }), I; } const { status: n, ctx: o } = this._processInputParams(e), { shape: a, keys: i } = this._getCached(), c = []; if (!(this._def.catchall instanceof je && this._def.unknownKeys === "strip")) - for (const u in o.data) - i.includes(u) || c.push(u); - const l = []; - for (const u of i) { - const d = a[u], f = o.data[u]; - l.push({ - key: { status: "valid", value: u }, - value: d._parse(new Re(o, f, o.path, u)), - alwaysSet: u in o.data + for (const l in o.data) + i.includes(l) || c.push(l); + const u = []; + for (const l of i) { + const d = a[l], f = o.data[l]; + u.push({ + key: { status: "valid", value: l }, + value: d._parse(new Re(o, f, o.path, l)), + alwaysSet: l in o.data }); } if (this._def.catchall instanceof je) { - const u = this._def.unknownKeys; - if (u === "passthrough") + const l = this._def.unknownKeys; + if (l === "passthrough") for (const d of c) - l.push({ + u.push({ key: { status: "valid", value: d }, value: { status: "valid", value: o.data[d] } }); - else if (u === "strict") + else if (l === "strict") c.length > 0 && (b(o, { code: g.unrecognized_keys, keys: c }), n.dirty()); - else if (u !== "strip") + else if (l !== "strip") throw new Error("Internal ZodObject error: invalid unknownKeys value."); } else { - const u = this._def.catchall; + const l = this._def.catchall; for (const d of c) { const f = o.data[d]; - l.push({ + u.push({ key: { status: "valid", value: d }, - value: u._parse( + value: l._parse( new Re(o, f, o.path, d) //, ctx.child(key), value, getParsedType(value) ), @@ -6303,17 +6303,17 @@ class U extends $ { } } return o.common.async ? Promise.resolve().then(async () => { - const u = []; - for (const d of l) { + const l = []; + for (const d of u) { const f = await d.key, m = await d.value; - u.push({ + l.push({ key: f, value: m, alwaysSet: d.alwaysSet }); } - return u; - }).then((u) => Q.mergeObjectSync(n, u)) : Q.mergeObjectSync(n, l); + return l; + }).then((l) => Q.mergeObjectSync(n, l)) : Q.mergeObjectSync(n, u); } get shape() { return this._def.shape(); @@ -6325,11 +6325,11 @@ class U extends $ { ...e !== void 0 ? { errorMap: (r, n) => { var o, a, i, c; - const l = (i = (a = (o = this._def).errorMap) === null || a === void 0 ? void 0 : a.call(o, r, n).message) !== null && i !== void 0 ? i : n.defaultError; + const u = (i = (a = (o = this._def).errorMap) === null || a === void 0 ? void 0 : a.call(o, r, n).message) !== null && i !== void 0 ? i : n.defaultError; return r.code === "unrecognized_keys" ? { - message: (c = S.errToObj(e).message) !== null && c !== void 0 ? c : l + message: (c = S.errToObj(e).message) !== null && c !== void 0 ? c : u } : { - message: l + message: u }; } } : {} @@ -6476,7 +6476,7 @@ class U extends $ { * @deprecated */ deepPartial() { - return bt(this); + return _t(this); } partial(e) { const r = {}; @@ -6529,7 +6529,7 @@ U.lazycreate = (t, e) => new U({ typeName: A.ZodObject, ...C(e) }); -class Vt extends $ { +class Ht extends $ { _parse(e) { const { ctx: r } = this._processInputParams(e), n = this._def.options; function o(a) { @@ -6567,26 +6567,26 @@ class Vt extends $ { { let a; const i = []; - for (const l of n) { - const u = { + for (const u of n) { + const l = { ...r, common: { ...r.common, issues: [] }, parent: null - }, d = l._parseSync({ + }, d = u._parseSync({ data: r.data, path: r.path, - parent: u + parent: l }); if (d.status === "valid") return d; - d.status === "dirty" && !a && (a = { result: d, ctx: u }), u.common.issues.length && i.push(u.common.issues); + d.status === "dirty" && !a && (a = { result: d, ctx: l }), l.common.issues.length && i.push(l.common.issues); } if (a) return r.common.issues.push(...a.ctx.common.issues), a.result; - const c = i.map((l) => new fe(l)); + const c = i.map((u) => new fe(u)); return b(r, { code: g.invalid_union, unionErrors: c @@ -6597,13 +6597,13 @@ class Vt extends $ { return this._def.options; } } -Vt.create = (t, e) => new Vt({ +Ht.create = (t, e) => new Ht({ options: t, typeName: A.ZodUnion, ...C(e) }); -const Fe = (t) => t instanceof Kt ? Fe(t.schema) : t instanceof Ae ? Fe(t.innerType()) : t instanceof Yt ? [t.value] : t instanceof et ? t.options : t instanceof Jt ? O.objectValues(t.enum) : t instanceof Xt ? Fe(t._def.innerType) : t instanceof Bt ? [void 0] : t instanceof Ht ? [null] : t instanceof Ne ? [void 0, ...Fe(t.unwrap())] : t instanceof tt ? [null, ...Fe(t.unwrap())] : t instanceof zn || t instanceof er ? Fe(t.unwrap()) : t instanceof Qt ? Fe(t._def.innerType) : []; -class zr extends $ { +const Fe = (t) => t instanceof qt ? Fe(t.schema) : t instanceof Ae ? Fe(t.innerType()) : t instanceof Kt ? [t.value] : t instanceof et ? t.options : t instanceof Yt ? O.objectValues(t.enum) : t instanceof Jt ? Fe(t._def.innerType) : t instanceof Gt ? [void 0] : t instanceof Bt ? [null] : t instanceof Ne ? [void 0, ...Fe(t.unwrap())] : t instanceof tt ? [null, ...Fe(t.unwrap())] : t instanceof zn || t instanceof Qt ? Fe(t.unwrap()) : t instanceof Xt ? Fe(t._def.innerType) : []; +class Zr extends $ { _parse(e) { const { ctx: r } = this._processInputParams(e); if (r.parsedType !== w.object) @@ -6656,7 +6656,7 @@ class zr extends $ { o.set(c, a); } } - return new zr({ + return new Zr({ typeName: A.ZodDiscriminatedUnion, discriminator: e, options: r, @@ -6665,17 +6665,17 @@ class zr extends $ { }); } } -function gn(t, e) { +function hn(t, e) { const r = Ve(t), n = Ve(e); if (t === e) return { valid: !0, data: t }; if (r === w.object && n === w.object) { const o = O.objectKeys(e), a = O.objectKeys(t).filter((c) => o.indexOf(c) !== -1), i = { ...t, ...e }; for (const c of a) { - const l = gn(t[c], e[c]); - if (!l.valid) + const u = hn(t[c], e[c]); + if (!u.valid) return { valid: !1 }; - i[c] = l.data; + i[c] = u.data; } return { valid: !0, data: i }; } else if (r === w.array && n === w.array) { @@ -6683,22 +6683,22 @@ function gn(t, e) { return { valid: !1 }; const o = []; for (let a = 0; a < t.length; a++) { - const i = t[a], c = e[a], l = gn(i, c); - if (!l.valid) + const i = t[a], c = e[a], u = hn(i, c); + if (!u.valid) return { valid: !1 }; - o.push(l.data); + o.push(u.data); } return { valid: !0, data: o }; } else return r === w.date && n === w.date && +t == +e ? { valid: !0, data: t } : { valid: !1 }; } -class Wt extends $ { +class Vt extends $ { _parse(e) { const { status: r, ctx: n } = this._processInputParams(e), o = (a, i) => { - if (mn(a) || mn(i)) + if (pn(a) || pn(i)) return I; - const c = gn(a.value, i.value); - return c.valid ? ((hn(a) || hn(i)) && r.dirty(), { status: r.value, value: c.data }) : (b(n, { + const c = hn(a.value, i.value); + return c.valid ? ((mn(a) || mn(i)) && r.dirty(), { status: r.value, value: c.data }) : (b(n, { code: g.invalid_intersection_types }), I); }; @@ -6724,7 +6724,7 @@ class Wt extends $ { })); } } -Wt.create = (t, e, r) => new Wt({ +Vt.create = (t, e, r) => new Vt({ left: t, right: e, typeName: A.ZodIntersection, @@ -6755,8 +6755,8 @@ class Oe extends $ { type: "array" }), r.dirty()); const a = [...n.data].map((i, c) => { - const l = this._def.items[c] || this._def.rest; - return l ? l._parse(new Re(n, i, n.path, c)) : null; + const u = this._def.items[c] || this._def.rest; + return u ? u._parse(new Re(n, i, n.path, c)) : null; }).filter((i) => !!i); return n.common.async ? Promise.all(a).then((i) => Q.mergeArray(r, i)) : Q.mergeArray(r, a); } @@ -6780,7 +6780,7 @@ Oe.create = (t, e) => { ...C(e) }); }; -class qt extends $ { +class Wt extends $ { get keySchema() { return this._def.keyType; } @@ -6808,12 +6808,12 @@ class qt extends $ { return this._def.valueType; } static create(e, r, n) { - return r instanceof $ ? new qt({ + return r instanceof $ ? new Wt({ keyType: e, valueType: r, typeName: A.ZodRecord, ...C(n) - }) : new qt({ + }) : new Wt({ keyType: ke.create(), valueType: e, typeName: A.ZodRecord, @@ -6821,7 +6821,7 @@ class qt extends $ { }); } } -class Ir extends $ { +class Ar extends $ { get keySchema() { return this._def.keyType; } @@ -6836,40 +6836,40 @@ class Ir extends $ { expected: w.map, received: n.parsedType }), I; - const o = this._def.keyType, a = this._def.valueType, i = [...n.data.entries()].map(([c, l], u) => ({ - key: o._parse(new Re(n, c, n.path, [u, "key"])), - value: a._parse(new Re(n, l, n.path, [u, "value"])) + const o = this._def.keyType, a = this._def.valueType, i = [...n.data.entries()].map(([c, u], l) => ({ + key: o._parse(new Re(n, c, n.path, [l, "key"])), + value: a._parse(new Re(n, u, n.path, [l, "value"])) })); if (n.common.async) { const c = /* @__PURE__ */ new Map(); return Promise.resolve().then(async () => { - for (const l of i) { - const u = await l.key, d = await l.value; - if (u.status === "aborted" || d.status === "aborted") + for (const u of i) { + const l = await u.key, d = await u.value; + if (l.status === "aborted" || d.status === "aborted") return I; - (u.status === "dirty" || d.status === "dirty") && r.dirty(), c.set(u.value, d.value); + (l.status === "dirty" || d.status === "dirty") && r.dirty(), c.set(l.value, d.value); } return { status: r.value, value: c }; }); } else { const c = /* @__PURE__ */ new Map(); - for (const l of i) { - const u = l.key, d = l.value; - if (u.status === "aborted" || d.status === "aborted") + for (const u of i) { + const l = u.key, d = u.value; + if (l.status === "aborted" || d.status === "aborted") return I; - (u.status === "dirty" || d.status === "dirty") && r.dirty(), c.set(u.value, d.value); + (l.status === "dirty" || d.status === "dirty") && r.dirty(), c.set(l.value, d.value); } return { status: r.value, value: c }; } } } -Ir.create = (t, e, r) => new Ir({ +Ar.create = (t, e, r) => new Ar({ valueType: e, keyType: t, typeName: A.ZodMap, ...C(r) }); -class ht extends $ { +class mt extends $ { _parse(e) { const { status: r, ctx: n } = this._processInputParams(e); if (n.parsedType !== w.set) @@ -6895,26 +6895,26 @@ class ht extends $ { message: o.maxSize.message }), r.dirty()); const a = this._def.valueType; - function i(l) { - const u = /* @__PURE__ */ new Set(); - for (const d of l) { + function i(u) { + const l = /* @__PURE__ */ new Set(); + for (const d of u) { if (d.status === "aborted") return I; - d.status === "dirty" && r.dirty(), u.add(d.value); + d.status === "dirty" && r.dirty(), l.add(d.value); } - return { status: r.value, value: u }; + return { status: r.value, value: l }; } - const c = [...n.data.values()].map((l, u) => a._parse(new Re(n, l, n.path, u))); - return n.common.async ? Promise.all(c).then((l) => i(l)) : i(c); + const c = [...n.data.values()].map((u, l) => a._parse(new Re(n, u, n.path, l))); + return n.common.async ? Promise.all(c).then((u) => i(u)) : i(c); } min(e, r) { - return new ht({ + return new mt({ ...this._def, minSize: { value: e, message: S.toString(r) } }); } max(e, r) { - return new ht({ + return new mt({ ...this._def, maxSize: { value: e, message: S.toString(r) } }); @@ -6926,14 +6926,14 @@ class ht extends $ { return this.min(1, e); } } -ht.create = (t, e) => new ht({ +mt.create = (t, e) => new mt({ valueType: t, minSize: null, maxSize: null, typeName: A.ZodSet, ...C(e) }); -class kt extends $ { +class xt extends $ { constructor() { super(...arguments), this.validate = this.implement; } @@ -6945,56 +6945,56 @@ class kt extends $ { expected: w.function, received: r.parsedType }), I; - function n(c, l) { - return kr({ + function n(c, u) { + return xr({ data: c, path: r.path, errorMaps: [ r.common.contextualErrorMap, r.schemaErrorMap, - xr(), - At - ].filter((u) => !!u), + Sr(), + Tt + ].filter((l) => !!l), issueData: { code: g.invalid_arguments, - argumentsError: l + argumentsError: u } }); } - function o(c, l) { - return kr({ + function o(c, u) { + return xr({ data: c, path: r.path, errorMaps: [ r.common.contextualErrorMap, r.schemaErrorMap, - xr(), - At - ].filter((u) => !!u), + Sr(), + Tt + ].filter((l) => !!l), issueData: { code: g.invalid_return_type, - returnTypeError: l + returnTypeError: u } }); } const a = { errorMap: r.common.contextualErrorMap }, i = r.data; - if (this._def.returns instanceof Ct) { + if (this._def.returns instanceof It) { const c = this; - return ae(async function(...l) { - const u = new fe([]), d = await c._def.args.parseAsync(l, a).catch((p) => { - throw u.addIssue(n(l, p)), u; + return ae(async function(...u) { + const l = new fe([]), d = await c._def.args.parseAsync(u, a).catch((p) => { + throw l.addIssue(n(u, p)), l; }), f = await Reflect.apply(i, this, d); return await c._def.returns._def.type.parseAsync(f, a).catch((p) => { - throw u.addIssue(o(f, p)), u; + throw l.addIssue(o(f, p)), l; }); }); } else { const c = this; - return ae(function(...l) { - const u = c._def.args.safeParse(l, a); - if (!u.success) - throw new fe([n(l, u.error)]); - const d = Reflect.apply(i, this, u.data), f = c._def.returns.safeParse(d, a); + return ae(function(...u) { + const l = c._def.args.safeParse(u, a); + if (!l.success) + throw new fe([n(u, l.error)]); + const d = Reflect.apply(i, this, l.data), f = c._def.returns.safeParse(d, a); if (!f.success) throw new fe([o(d, f.error)]); return f.data; @@ -7008,13 +7008,13 @@ class kt extends $ { return this._def.returns; } args(...e) { - return new kt({ + return new xt({ ...this._def, - args: Oe.create(e).rest(ft.create()) + args: Oe.create(e).rest(dt.create()) }); } returns(e) { - return new kt({ + return new xt({ ...this._def, returns: e }); @@ -7026,15 +7026,15 @@ class kt extends $ { return this.parse(e); } static create(e, r, n) { - return new kt({ - args: e || Oe.create([]).rest(ft.create()), - returns: r || ft.create(), + return new xt({ + args: e || Oe.create([]).rest(dt.create()), + returns: r || dt.create(), typeName: A.ZodFunction, ...C(n) }); } } -class Kt extends $ { +class qt extends $ { get schema() { return this._def.getter(); } @@ -7043,12 +7043,12 @@ class Kt extends $ { return this._def.getter()._parse({ data: r.data, path: r.path, parent: r }); } } -Kt.create = (t, e) => new Kt({ +qt.create = (t, e) => new qt({ getter: t, typeName: A.ZodLazy, ...C(e) }); -class Yt extends $ { +class Kt extends $ { _parse(e) { if (e.data !== this._def.value) { const r = this._getOrReturnCtx(e); @@ -7064,7 +7064,7 @@ class Yt extends $ { return this._def.value; } } -Yt.create = (t, e) => new Yt({ +Kt.create = (t, e) => new Kt({ value: t, typeName: A.ZodLiteral, ...C(e) @@ -7078,7 +7078,7 @@ function Fs(t, e) { } class et extends $ { constructor() { - super(...arguments), Lt.set(this, void 0); + super(...arguments), Mt.set(this, void 0); } _parse(e) { if (typeof e.data != "string") { @@ -7089,7 +7089,7 @@ class et extends $ { code: g.invalid_type }), I; } - if (Pr(this, Lt) || Rs(this, Lt, new Set(this._def.values)), !Pr(this, Lt).has(e.data)) { + if (kr(this, Mt) || Rs(this, Mt, new Set(this._def.values)), !kr(this, Mt).has(e.data)) { const r = this._getOrReturnCtx(e), n = this._def.values; return b(r, { received: r.data, @@ -7133,11 +7133,11 @@ class et extends $ { }); } } -Lt = /* @__PURE__ */ new WeakMap(); +Mt = /* @__PURE__ */ new WeakMap(); et.create = Fs; -class Jt extends $ { +class Yt extends $ { constructor() { - super(...arguments), Ft.set(this, void 0); + super(...arguments), Lt.set(this, void 0); } _parse(e) { const r = O.getValidEnumValues(this._def.values), n = this._getOrReturnCtx(e); @@ -7149,7 +7149,7 @@ class Jt extends $ { code: g.invalid_type }), I; } - if (Pr(this, Ft) || Rs(this, Ft, new Set(O.getValidEnumValues(this._def.values))), !Pr(this, Ft).has(e.data)) { + if (kr(this, Lt) || Rs(this, Lt, new Set(O.getValidEnumValues(this._def.values))), !kr(this, Lt).has(e.data)) { const o = O.objectValues(r); return b(n, { received: n.data, @@ -7163,13 +7163,13 @@ class Jt extends $ { return this._def.values; } } -Ft = /* @__PURE__ */ new WeakMap(); -Jt.create = (t, e) => new Jt({ +Lt = /* @__PURE__ */ new WeakMap(); +Yt.create = (t, e) => new Yt({ values: t, typeName: A.ZodNativeEnum, ...C(e) }); -class Ct extends $ { +class It extends $ { unwrap() { return this._def.type; } @@ -7188,7 +7188,7 @@ class Ct extends $ { }))); } } -Ct.create = (t, e) => new Ct({ +It.create = (t, e) => new It({ type: t, typeName: A.ZodPromise, ...C(e) @@ -7215,12 +7215,12 @@ class Ae extends $ { return Promise.resolve(i).then(async (c) => { if (r.value === "aborted") return I; - const l = await this._def.schema._parseAsync({ + const u = await this._def.schema._parseAsync({ data: c, path: n.path, parent: n }); - return l.status === "aborted" ? I : l.status === "dirty" || r.value === "dirty" ? Et(l.value) : l; + return u.status === "aborted" ? I : u.status === "dirty" || r.value === "dirty" ? wt(u.value) : u; }); { if (r.value === "aborted") @@ -7230,15 +7230,15 @@ class Ae extends $ { path: n.path, parent: n }); - return c.status === "aborted" ? I : c.status === "dirty" || r.value === "dirty" ? Et(c.value) : c; + return c.status === "aborted" ? I : c.status === "dirty" || r.value === "dirty" ? wt(c.value) : c; } } if (o.type === "refinement") { const i = (c) => { - const l = o.refinement(c, a); + const u = o.refinement(c, a); if (n.common.async) - return Promise.resolve(l); - if (l instanceof Promise) + return Promise.resolve(u); + if (u instanceof Promise) throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead."); return c; }; @@ -7259,14 +7259,14 @@ class Ae extends $ { path: n.path, parent: n }); - if (!Zt(i)) + if (!jt(i)) return i; const c = o.transform(i.value, a); if (c instanceof Promise) throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead."); return { status: r.value, value: c }; } else - return this._def.schema._parseAsync({ data: n.data, path: n.path, parent: n }).then((i) => Zt(i) ? Promise.resolve(o.transform(i.value, a)).then((c) => ({ status: r.value, value: c })) : i); + return this._def.schema._parseAsync({ data: n.data, path: n.path, parent: n }).then((i) => jt(i) ? Promise.resolve(o.transform(i.value, a)).then((c) => ({ status: r.value, value: c })) : i); O.assertNever(o); } } @@ -7308,7 +7308,7 @@ tt.create = (t, e) => new tt({ typeName: A.ZodNullable, ...C(e) }); -class Xt extends $ { +class Jt extends $ { _parse(e) { const { ctx: r } = this._processInputParams(e); let n = r.data; @@ -7322,13 +7322,13 @@ class Xt extends $ { return this._def.innerType; } } -Xt.create = (t, e) => new Xt({ +Jt.create = (t, e) => new Jt({ innerType: t, typeName: A.ZodDefault, defaultValue: typeof e.default == "function" ? e.default : () => e.default, ...C(e) }); -class Qt extends $ { +class Xt extends $ { _parse(e) { const { ctx: r } = this._processInputParams(e), n = { ...r, @@ -7343,7 +7343,7 @@ class Qt extends $ { ...n } }); - return zt(o) ? o.then((a) => ({ + return Zt(o) ? o.then((a) => ({ status: "valid", value: a.status === "valid" ? a.value : this._def.catchValue({ get error() { @@ -7365,13 +7365,13 @@ class Qt extends $ { return this._def.innerType; } } -Qt.create = (t, e) => new Qt({ +Xt.create = (t, e) => new Xt({ innerType: t, typeName: A.ZodCatch, catchValue: typeof e.catch == "function" ? e.catch : () => e.catch, ...C(e) }); -class Cr extends $ { +class Ir extends $ { _parse(e) { if (this._getType(e) !== w.nan) { const n = this._getOrReturnCtx(e); @@ -7384,7 +7384,7 @@ class Cr extends $ { return { status: "valid", value: e.data }; } } -Cr.create = (t) => new Cr({ +Ir.create = (t) => new Ir({ typeName: A.ZodNaN, ...C(t) }); @@ -7402,7 +7402,7 @@ class zn extends $ { return this._def.type; } } -class ar extends $ { +class sr extends $ { _parse(e) { const { status: r, ctx: n } = this._processInputParams(e); if (n.common.async) @@ -7412,7 +7412,7 @@ class ar extends $ { path: n.path, parent: n }); - return a.status === "aborted" ? I : a.status === "dirty" ? (r.dirty(), Et(a.value)) : this._def.out._parseAsync({ + return a.status === "aborted" ? I : a.status === "dirty" ? (r.dirty(), wt(a.value)) : this._def.out._parseAsync({ data: a.value, path: n.path, parent: n @@ -7435,35 +7435,35 @@ class ar extends $ { } } static create(e, r) { - return new ar({ + return new sr({ in: e, out: r, typeName: A.ZodPipeline }); } } -class er extends $ { +class Qt extends $ { _parse(e) { - const r = this._def.innerType._parse(e), n = (o) => (Zt(o) && (o.value = Object.freeze(o.value)), o); - return zt(r) ? r.then((o) => n(o)) : n(r); + const r = this._def.innerType._parse(e), n = (o) => (jt(o) && (o.value = Object.freeze(o.value)), o); + return Zt(r) ? r.then((o) => n(o)) : n(r); } unwrap() { return this._def.innerType; } } -er.create = (t, e) => new er({ +Qt.create = (t, e) => new Qt({ innerType: t, typeName: A.ZodReadonly, ...C(e) }); function Ds(t, e = {}, r) { - return t ? It.create().superRefine((n, o) => { + return t ? At.create().superRefine((n, o) => { var a, i; if (!t(n)) { - const c = typeof e == "function" ? e(n) : typeof e == "string" ? { message: e } : e, l = (i = (a = c.fatal) !== null && a !== void 0 ? a : r) !== null && i !== void 0 ? i : !0, u = typeof c == "string" ? { message: c } : c; - o.addIssue({ code: "custom", ...u, fatal: l }); + const c = typeof e == "function" ? e(n) : typeof e == "string" ? { message: e } : e, u = (i = (a = c.fatal) !== null && a !== void 0 ? a : r) !== null && i !== void 0 ? i : !0, l = typeof c == "string" ? { message: c } : c; + o.addIssue({ code: "custom", ...l, fatal: u }); } - }) : It.create(); + }) : At.create(); } const Hc = { object: U.lazycreate @@ -7474,37 +7474,37 @@ var A; })(A || (A = {})); const Vc = (t, e = { message: `Input not instance of ${t.name}` -}) => Ds((r) => r instanceof t, e), Us = ke.create, js = Xe.create, Wc = Cr.create, qc = Qe.create, Zs = Gt.create, Kc = mt.create, Yc = Tr.create, Jc = Bt.create, Xc = Ht.create, Qc = It.create, el = ft.create, tl = je.create, rl = Ar.create, nl = Te.create, ol = U.create, sl = U.strictCreate, al = Vt.create, il = zr.create, cl = Wt.create, ll = Oe.create, ul = qt.create, dl = Ir.create, fl = ht.create, pl = kt.create, ml = Kt.create, hl = Yt.create, gl = et.create, yl = Jt.create, vl = Ct.create, bo = Ae.create, _l = Ne.create, bl = tt.create, wl = Ae.createWithPreprocess, El = ar.create, Sl = () => Us().optional(), xl = () => js().optional(), kl = () => Zs().optional(), Pl = { +}) => Ds((r) => r instanceof t, e), Us = ke.create, js = Xe.create, Wc = Ir.create, qc = Qe.create, Zs = zt.create, Kc = pt.create, Yc = Pr.create, Jc = Gt.create, Xc = Bt.create, Qc = At.create, el = dt.create, tl = je.create, rl = Tr.create, nl = Te.create, ol = U.create, sl = U.strictCreate, al = Ht.create, il = Zr.create, cl = Vt.create, ll = Oe.create, ul = Wt.create, dl = Ar.create, fl = mt.create, pl = xt.create, ml = qt.create, hl = Kt.create, gl = et.create, yl = Yt.create, vl = It.create, bo = Ae.create, _l = Ne.create, bl = tt.create, wl = Ae.createWithPreprocess, El = sr.create, Sl = () => Us().optional(), xl = () => js().optional(), kl = () => Zs().optional(), Pl = { string: (t) => ke.create({ ...t, coerce: !0 }), number: (t) => Xe.create({ ...t, coerce: !0 }), - boolean: (t) => Gt.create({ + boolean: (t) => zt.create({ ...t, coerce: !0 }), bigint: (t) => Qe.create({ ...t, coerce: !0 }), - date: (t) => mt.create({ ...t, coerce: !0 }) + date: (t) => pt.create({ ...t, coerce: !0 }) }, Tl = I; -var W = /* @__PURE__ */ Object.freeze({ +var Z = /* @__PURE__ */ Object.freeze({ __proto__: null, - defaultErrorMap: At, + defaultErrorMap: Tt, setErrorMap: Tc, - getErrorMap: xr, - makeIssue: kr, + getErrorMap: Sr, + makeIssue: xr, EMPTY_PATH: Ac, addIssueToContext: b, ParseStatus: Q, INVALID: I, - DIRTY: Et, + DIRTY: wt, OK: ae, - isAborted: mn, - isDirty: hn, - isValid: Zt, - isAsync: zt, + isAborted: pn, + isDirty: mn, + isValid: jt, + isAsync: Zt, get util() { return O; }, get objectUtil() { - return pn; + return fn; }, ZodParsedType: w, getParsedType: Ve, @@ -7513,41 +7513,41 @@ var W = /* @__PURE__ */ Object.freeze({ ZodString: ke, ZodNumber: Xe, ZodBigInt: Qe, - ZodBoolean: Gt, - ZodDate: mt, - ZodSymbol: Tr, - ZodUndefined: Bt, - ZodNull: Ht, - ZodAny: It, - ZodUnknown: ft, + ZodBoolean: zt, + ZodDate: pt, + ZodSymbol: Pr, + ZodUndefined: Gt, + ZodNull: Bt, + ZodAny: At, + ZodUnknown: dt, ZodNever: je, - ZodVoid: Ar, + ZodVoid: Tr, ZodArray: Te, ZodObject: U, - ZodUnion: Vt, - ZodDiscriminatedUnion: zr, - ZodIntersection: Wt, + ZodUnion: Ht, + ZodDiscriminatedUnion: Zr, + ZodIntersection: Vt, ZodTuple: Oe, - ZodRecord: qt, - ZodMap: Ir, - ZodSet: ht, - ZodFunction: kt, - ZodLazy: Kt, - ZodLiteral: Yt, + ZodRecord: Wt, + ZodMap: Ar, + ZodSet: mt, + ZodFunction: xt, + ZodLazy: qt, + ZodLiteral: Kt, ZodEnum: et, - ZodNativeEnum: Jt, - ZodPromise: Ct, + ZodNativeEnum: Yt, + ZodPromise: It, ZodEffects: Ae, ZodTransformer: Ae, ZodOptional: Ne, ZodNullable: tt, - ZodDefault: Xt, - ZodCatch: Qt, - ZodNaN: Cr, + ZodDefault: Jt, + ZodCatch: Xt, + ZodNaN: Ir, BRAND: Bc, ZodBranded: zn, - ZodPipeline: ar, - ZodReadonly: er, + ZodPipeline: sr, + ZodReadonly: Qt, custom: Ds, Schema: $, ZodSchema: $, @@ -7600,40 +7600,42 @@ var W = /* @__PURE__ */ Object.freeze({ quotelessJson: Pc, ZodError: fe }); -const Al = W.object({ - width: W.number().positive(), - height: W.number().positive() +const Al = Z.object({ + width: Z.number().positive(), + height: Z.number().positive() }); function Il(t, e, r, n) { const o = document.createElement("plugin-modal"); o.setTheme(r); - const a = 335, i = 590, c = { + const a = 200, i = 200, c = 335, u = 590, l = { blockStart: 40, inlineEnd: 320 }; o.style.setProperty( "--modal-block-start", - `${c.blockStart}px` + `${l.blockStart}px` ), o.style.setProperty( "--modal-inline-end", - `${c.inlineEnd}px` + `${l.inlineEnd}px` ); - const l = window.innerWidth - c.inlineEnd, u = window.innerHeight - c.blockStart, d = Math.min((n == null ? void 0 : n.width) || a, l), f = Math.min((n == null ? void 0 : n.height) || i, u); - return o.setAttribute("title", t), o.setAttribute("iframe-src", e), o.setAttribute("width", String(d)), o.setAttribute("height", String(f)), document.body.appendChild(o), o; + const d = window.innerWidth - l.inlineEnd, f = window.innerHeight - l.blockStart; + let m = Math.min((n == null ? void 0 : n.width) || c, d), p = Math.min((n == null ? void 0 : n.height) || u, f); + return m = Math.max(m, a), p = Math.max(p, i), o.setAttribute("title", t), o.setAttribute("iframe-src", e), o.setAttribute("width", String(m)), o.setAttribute("height", String(p)), document.body.appendChild(o), o; } -const Cl = W.function().args( - W.string(), - W.string(), - W.enum(["dark", "light"]), +const Cl = Z.function().args( + Z.string(), + Z.string(), + Z.enum(["dark", "light"]), Al.optional() -).implement((t, e, r, n) => Il(t, e, r, n)), $l = W.object({ - name: W.string(), - host: W.string().url(), - code: W.string(), - icon: W.string().optional(), - description: W.string().max(200).optional(), - permissions: W.array( - W.enum([ +).implement((t, e, r, n) => Il(t, e, r, n)), $l = Z.object({ + pluginId: Z.string(), + name: Z.string(), + host: Z.string().url(), + code: Z.string(), + icon: Z.string().optional(), + description: Z.string().max(200).optional(), + permissions: Z.array( + Z.enum([ "page:read", "page:write", "file:read", @@ -7661,44 +7663,44 @@ function Rl(t) { throw new Error("Failed to load plugin code"); }); } -const yn = [ +const gn = [ "finish", "pagechange", "filechange", "selectionchange", "themechange" ]; -let vn = [], _n = /* @__PURE__ */ new Set([]); -const Dt = /* @__PURE__ */ new Map(); +let yn = [], vn = /* @__PURE__ */ new Set([]); +const Ft = /* @__PURE__ */ new Map(); window.addEventListener("message", (t) => { - for (const e of vn) + for (const e of yn) e(t.data); }); function Ol(t, e) { - t === "themechange" && _n.forEach((n) => { + t === "themechange" && vn.forEach((n) => { n.setTheme(e); - }), (Dt.get(t) || []).forEach((n) => n(e)); + }), (Ft.get(t) || []).forEach((n) => n(e)); } function Ml(t, e) { let r = null; const n = () => { - r && (_n.delete(r), r.removeEventListener("close", n), r.remove()), vn = [], r = null; + r && (vn.delete(r), r.removeEventListener("close", n), r.remove()), yn = [], r = null; }, o = (i) => { if (!e.permissions.includes(i)) throw new Error(`Permission ${i} is not granted`); }; return { ui: { - open: (i, c, l) => { - const u = t.getTheme(); + open: (i, c, u) => { + const l = t.getTheme(); r = Cl( i, zs(e.host, c), - u, - l - ), r.setTheme(u), r.addEventListener("close", n, { + l, + u + ), r.setTheme(l), r.addEventListener("close", n, { once: !0 - }), _n.add(r); + }), vn.add(r); }, sendMessage(i) { const c = new CustomEvent("message", { @@ -7707,7 +7709,7 @@ function Ml(t, e) { r == null || r.dispatchEvent(c); }, onMessage: (i) => { - W.function().parse(i), vn.push(i); + Z.function().parse(i), yn.push(i); } }, utils: { @@ -7725,16 +7727,16 @@ function Ml(t, e) { }, closePlugin: n, on(i, c) { - W.enum(yn).parse(i), W.function().parse(c), i === "pagechange" ? o("page:read") : i === "filechange" ? o("file:read") : i === "selectionchange" && o("selection:read"); - const l = Dt.get(i) || []; - l.push(c), Dt.set(i, l); + Z.enum(gn).parse(i), Z.function().parse(c), i === "pagechange" ? o("page:read") : i === "filechange" ? o("file:read") : i === "selectionchange" && o("selection:read"); + const u = Ft.get(i) || []; + u.push(c), Ft.set(i, u); }, off(i, c) { - W.enum(yn).parse(i), W.function().parse(c); - const l = Dt.get(i) || []; - Dt.set( + Z.enum(gn).parse(i), Z.function().parse(c); + const u = Ft.get(i) || []; + Ft.set( i, - l.filter((u) => u !== c) + u.filter((l) => l !== c) ); }, // Penpot State API @@ -7806,46 +7808,49 @@ function Ml(t, e) { } }; } -let wo = !1, pr = []; +let wo = !1, fr = []; const Ll = !1; -let ct = null; +let _n = null; function Fl(t) { - ct = t; + _n = t; } const Gs = async function(t) { try { - const e = await Rl(t); - if (wo || (wo = !0, hardenIntrinsics()), pr && !Ll && pr.forEach((r) => { - r.closePlugin(); - }), ct) { - const r = Ml(ct, t); - pr.push(r), new Compartment({ - penpot: harden(r), - fetch: harden((...a) => { - const i = { - ...a[1], - credentials: "omit" - }; - return fetch(a[0], i); - }), - console: harden(window.console), - Math: harden(Math), - setTimeout: harden( - (...[a, i]) => setTimeout(() => { - a(); - }, i) - ), - clearTimeout: harden((a) => { - clearTimeout(a); - }) - }).evaluate(e); - const o = ct.addListener("finish", () => { - pr.forEach((a) => { - a.closePlugin(); - }), ct == null || ct.removeListener(o); - }); - } else - console.error("Cannot find Penpot Context"); + const e = _n && _n(t.pluginId); + if (!e) + return; + for (const i of gn) + e.addListener(i, Ol.bind(null, i)); + const r = await Rl(t); + wo || (wo = !0, hardenIntrinsics()), fr && !Ll && fr.forEach((i) => { + i.closePlugin(); + }); + const n = Ml(e, t); + fr.push(n), new Compartment({ + penpot: harden(n), + fetch: harden((...i) => { + const c = { + ...i[1], + credentials: "omit" + }; + return fetch(i[0], c); + }), + console: harden(window.console), + Math: harden(Math), + setTimeout: harden( + (...[i, c]) => setTimeout(() => { + i(); + }, c) + ), + clearTimeout: harden((i) => { + clearTimeout(i); + }) + }).evaluate(r); + const a = e.addListener("finish", () => { + fr.forEach((i) => { + i.closePlugin(); + }), e == null || e.removeListener(a); + }); } catch (e) { console.error(e); } @@ -7862,10 +7867,6 @@ repairIntrinsics({ }); const Eo = globalThis; Eo.initPluginsRuntime = (t) => { - if (t) { - console.log("%c[PLUGINS] Initialize context", "color: #008d7c"), Eo.ɵcontext = t, globalThis.ɵloadPlugin = Gs, globalThis.ɵloadPluginByUrl = Dl, Fl(t); - for (const e of yn) - t.addListener(e, Ol.bind(null, e)); - } + console.log("%c[PLUGINS] Initialize runtime", "color: #008d7c"), Fl(t), Eo.ɵcontext = t("TEST"), globalThis.ɵloadPlugin = Gs, globalThis.ɵloadPluginByUrl = Dl; }; //# sourceMappingURL=index.js.map From 9a4c45c8a3023a82e5e772ecbcac71184f1b7b97 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9s=20Moya?= Date: Mon, 10 Jun 2024 16:19:29 +0200 Subject: [PATCH 094/476] :bug: Fix export touched attributes --- CHANGES.md | 2 + common/src/app/common/data.cljc | 1 - common/src/app/common/types/component.cljc | 27 ++++++++++-- .../types/types_component_test.cljc | 43 +++++++++++++++++++ frontend/src/app/main/ui/shapes/export.cljs | 7 ++- frontend/src/app/worker/import/parser.cljs | 18 +++++++- 6 files changed, 89 insertions(+), 9 deletions(-) create mode 100644 common/test/common_tests/types/types_component_test.cljc diff --git a/CHANGES.md b/CHANGES.md index 09a21a0916..4419c25756 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -27,6 +27,8 @@ - Fix problem with flex layout fit to content not positioning correctly children [Taiga #7537](https://tree.taiga.io/project/penpot/issue/7537) - Fix black line is displaying after show main [Taiga #7653](https://tree.taiga.io/project/penpot/issue/7653) - Fix "Share prototypes" modal remains open [Taiga #7442](https://tree.taiga.io/project/penpot/issue/7442) +- Fix "Components visibility and opacity" [#4694](https://github.com/penpot/penpot/issues/4694) +- Fix "Attribute overrides in copies are not exported in zip file" [Taiga #8072](https://tree.taiga.io/project/penpot/issue/8072) ## 2.0.3 diff --git a/common/src/app/common/data.cljc b/common/src/app/common/data.cljc index 7368036314..645091fd0a 100644 --- a/common/src/app/common/data.cljc +++ b/common/src/app/common/data.cljc @@ -224,7 +224,6 @@ [coll] (into [] (remove nil?) coll)) - (defn without-nils "Given a map, return a map removing key-value pairs when value is `nil`." diff --git a/common/src/app/common/types/component.cljc b/common/src/app/common/types/component.cljc index 95bf3016a5..bcd6ef3b35 100644 --- a/common/src/app/common/types/component.cljc +++ b/common/src/app/common/types/component.cljc @@ -189,14 +189,20 @@ (when swap-slot (keyword (str "swap-slot-" swap-slot)))) +(defn swap-slot? + [group] + (str/starts-with? (name group) "swap-slot-")) + +(defn group->swap-slot + [group] + (uuid/uuid (subs (name group) 10))) + (defn get-swap-slot "If the shape has a :touched group in the form :swap-slot-, get the id." [shape] - (let [group (->> (:touched shape) - (map name) - (d/seek #(str/starts-with? % "swap-slot-")))] + (let [group (d/seek swap-slot? (:touched shape))] (when group - (uuid/uuid (subs group 10))))) + (group->swap-slot group)))) (defn match-swap-slot? [shape-main shape-inst] @@ -264,3 +270,16 @@ ;; Non instance, non copy. We allow (or (not (instance-head? shape)) (not (in-component-copy? parent)))))) + +(defn all-touched-groups + [] + (into #{} (vals sync-attrs))) + +(defn valid-touched-group? + [group] + (try + (or ((all-touched-groups) group) + (and (swap-slot? group) + (some? (group->swap-slot group)))) + (catch #?(:clj Throwable :cljs :default) _ + false))) \ No newline at end of file diff --git a/common/test/common_tests/types/types_component_test.cljc b/common/test/common_tests/types/types_component_test.cljc new file mode 100644 index 0000000000..cff174329b --- /dev/null +++ b/common/test/common_tests/types/types_component_test.cljc @@ -0,0 +1,43 @@ +;; This Source Code Form is subject to the terms of the Mozilla Public +;; License, v. 2.0. If a copy of the MPL was not distributed with this +;; file, You can obtain one at http://mozilla.org/MPL/2.0/. +;; +;; Copyright (c) KALEIDOS INC + +(ns common-tests.types.types-component-test + (:require + [app.common.test-helpers.ids-map :as thi] + [app.common.test-helpers.shapes :as ths] + [app.common.types.component :as ctk] + [clojure.test :as t])) + +(t/use-fixtures :each thi/test-fixture) + +(t/deftest test-valid-touched-group + (t/is (ctk/valid-touched-group? :name-group)) + (t/is (ctk/valid-touched-group? :geometry-group)) + (t/is (ctk/valid-touched-group? :swap-slot-9cc181fa-5eef-8084-8004-7bb2ab45fd1f)) + (t/is (not (ctk/valid-touched-group? :this-is-not-a-group))) + (t/is (not (ctk/valid-touched-group? :swap-slot-))) + (t/is (not (ctk/valid-touched-group? :swap-slot-xxxxxx))) + (t/is (not (ctk/valid-touched-group? :swap-slot-9cc181fa-5eef-8084-8004))) + (t/is (not (ctk/valid-touched-group? nil)))) + +(t/deftest test-get-swap-slot + (let [s1 (ths/sample-shape :s1) + s2 (ths/sample-shape :s2 :touched #{:visibility-group}) + s3 (ths/sample-shape :s3 :touched #{:swap-slot-9cc181fa-5eef-8084-8004-7bb2ab45fd1f}) + s4 (ths/sample-shape :s4 :touched #{:fill-group + :swap-slot-9cc181fa-5eef-8084-8004-7bb2ab45fd1f}) + s5 (ths/sample-shape :s5 :touched #{:swap-slot-9cc181fa-5eef-8084-8004-7bb2ab45fd1f + :content-group + :geometry-group}) + s6 (ths/sample-shape :s6 :touched #{:swap-slot-9cc181fa})] + (t/is (nil? (ctk/get-swap-slot s1))) + (t/is (nil? (ctk/get-swap-slot s2))) + (t/is (= (ctk/get-swap-slot s3) #uuid "9cc181fa-5eef-8084-8004-7bb2ab45fd1f")) + (t/is (= (ctk/get-swap-slot s4) #uuid "9cc181fa-5eef-8084-8004-7bb2ab45fd1f")) + (t/is (= (ctk/get-swap-slot s5) #uuid "9cc181fa-5eef-8084-8004-7bb2ab45fd1f")) + #?(:clj + (t/is (thrown-with-msg? IllegalArgumentException #"Invalid UUID string" + (ctk/get-swap-slot s6)))))) diff --git a/frontend/src/app/main/ui/shapes/export.cljs b/frontend/src/app/main/ui/shapes/export.cljs index 8ac2387e88..35895b7776 100644 --- a/frontend/src/app/main/ui/shapes/export.cljs +++ b/frontend/src/app/main/ui/shapes/export.cljs @@ -50,6 +50,9 @@ (defn bool->str [val] (when (some? val) (str val))) +(defn touched->str [val] + (str/join " " (map str val))) + (defn add-factory [shape] (fn add! ([props attr] @@ -136,7 +139,6 @@ (cond-> bool? (add! :bool-type))))) - (defn add-library-refs [props shape] (let [add! (add-factory shape)] (-> props @@ -150,7 +152,8 @@ (add! :component-id) (add! :component-root) (add! :main-instance) - (add! :shape-ref)))) + (add! :shape-ref) + (add! :touched touched->str)))) (defn prefix-keys [m] (letfn [(prefix-entry [[k v]] diff --git a/frontend/src/app/worker/import/parser.cljs b/frontend/src/app/worker/import/parser.cljs index fab4075cab..5eda72daa9 100644 --- a/frontend/src/app/worker/import/parser.cljs +++ b/frontend/src/app/worker/import/parser.cljs @@ -12,6 +12,7 @@ [app.common.geom.matrix :as gmt] [app.common.geom.point :as gpt] [app.common.svg.path :as svg.path] + [app.common.types.component :as ctk] [app.common.types.shape.interactions :as ctsi] [app.common.uuid :as uuid] [app.util.json :as json] @@ -129,6 +130,15 @@ (into {})) style-str)) +(defn parse-touched + "Transform a string of :touched-groups into a set" + [touched-str] + (let [touched (->> (str/split touched-str " ") + (map #(keyword (subs % 1))) + (filter ctk/valid-touched-group?) + (into #{}))] + touched)) + (defn add-attrs [m attrs] (reduce-kv @@ -424,7 +434,8 @@ component-file (get-meta node :component-file uuid/uuid) shape-ref (get-meta node :shape-ref uuid/uuid) component-root? (get-meta node :component-root str->bool) - main-instance? (get-meta node :main-instance str->bool)] + main-instance? (get-meta node :main-instance str->bool) + touched (get-meta node :touched parse-touched)] (cond-> props (some? stroke-color-ref-id) @@ -442,7 +453,10 @@ (assoc :main-instance main-instance?) (some? shape-ref) - (assoc :shape-ref shape-ref)))) + (assoc :shape-ref shape-ref) + + (seq touched) + (assoc :touched touched)))) (defn add-fill [props node svg-data] From b635427f91964817509f2753f6509bae07c22579 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Mon, 10 Jun 2024 15:13:19 +0200 Subject: [PATCH 095/476] :bug: Fix incorrect order of update-index operations --- frontend/src/app/main/data/persistence.cljs | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/frontend/src/app/main/data/persistence.cljs b/frontend/src/app/main/data/persistence.cljs index 8fbcc372ad..4523401762 100644 --- a/frontend/src/app/main/data/persistence.cljs +++ b/frontend/src/app/main/data/persistence.cljs @@ -205,15 +205,21 @@ (update-status :pending))) (rx/take-until stoper-s)) + (->> commits-s + (rx/buffer-time 200) + (rx/mapcat merge-commit) + (rx/map dch/update-indexes) + (rx/take-until stoper-s) + (rx/finalize (fn [] + (log/debug :hint "finalize persistence: changes watcher [index]")))) + ;; Here we watch for local commits, buffer them in a small ;; chunks (very near in time commits) and append them to the ;; persistence queue (->> commits-s (rx/buffer-until notifier-s) (rx/mapcat merge-commit) - (rx/mapcat (fn [commit] - (rx/of (append-commit commit) - (dch/update-indexes commit)))) + (rx/map append-commit) (rx/take-until (rx/delay 100 stoper-s)) (rx/finalize (fn [] (log/debug :hint "finalize persistence: changes watcher")))) From 3c1086dfccfde0aac60c3c93898021474bea5b1f Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Mon, 10 Jun 2024 18:50:50 +0200 Subject: [PATCH 096/476] :bug: Fix race condition between shape modifiation and persistence --- frontend/src/app/main/data/changes.cljs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/frontend/src/app/main/data/changes.cljs b/frontend/src/app/main/data/changes.cljs index 4da8d30da9..6c0b3d7530 100644 --- a/frontend/src/app/main/data/changes.cljs +++ b/frontend/src/app/main/data/changes.cljs @@ -69,9 +69,10 @@ (cpc/check-changes! undo-changes))) (let [commit-id (or commit-id (uuid/next)) + source (d/nilv source :local) commit {:id commit-id :created-at (dt/now) - :source (d/nilv source :local) + :source source :origin (ptk/type origin) :features features :file-id file-id From e4e56828f6488cc96dd1caee0514fb91d186904c Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Mon, 10 Jun 2024 18:56:59 +0200 Subject: [PATCH 097/476] :lipstick: Fix internal naming for make code more self-explanatory --- frontend/src/app/main/data/persistence.cljs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/frontend/src/app/main/data/persistence.cljs b/frontend/src/app/main/data/persistence.cljs index 4523401762..08a0719b3f 100644 --- a/frontend/src/app/main/data/persistence.cljs +++ b/frontend/src/app/main/data/persistence.cljs @@ -182,7 +182,7 @@ (log/debug :hint "initialize persistence") (let [stoper-s (rx/filter (ptk/type? ::initialize-persistence) stream) - commits-s + local-commits-s (->> stream (rx/filter dch/commit?) (rx/map deref) @@ -192,20 +192,20 @@ notifier-s (rx/merge - (->> commits-s + (->> local-commits-s (rx/debounce 3000) (rx/tap #(log/trc :hint "persistence beat"))) (->> stream (rx/filter #(= % ::force-persist))))] (rx/merge - (->> commits-s + (->> local-commits-s (rx/debounce 200) (rx/map (fn [_] (update-status :pending))) (rx/take-until stoper-s)) - (->> commits-s + (->> local-commits-s (rx/buffer-time 200) (rx/mapcat merge-commit) (rx/map dch/update-indexes) @@ -216,7 +216,7 @@ ;; Here we watch for local commits, buffer them in a small ;; chunks (very near in time commits) and append them to the ;; persistence queue - (->> commits-s + (->> local-commits-s (rx/buffer-until notifier-s) (rx/mapcat merge-commit) (rx/map append-commit) From d35569dc55b53be53885f91653b47babec48487d Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Mon, 10 Jun 2024 18:59:39 +0200 Subject: [PATCH 098/476] :sparkles: Simplify transducer definition for proces redo changes --- frontend/src/app/main/data/changes.cljs | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/frontend/src/app/main/data/changes.cljs b/frontend/src/app/main/data/changes.cljs index 6c0b3d7530..d16cfafc57 100644 --- a/frontend/src/app/main/data/changes.cljs +++ b/frontend/src/app/main/data/changes.cljs @@ -111,9 +111,7 @@ redo-changes (if pending (into redo-changes - (comp - (map :redo-changes) - (mapcat identity)) + (mapcat :redo-changes) pending) redo-changes)] From 93ac80f217bf8043b52018dacfe01f2ba99a1564 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Fri, 7 Jun 2024 16:46:11 +0200 Subject: [PATCH 099/476] :sparkles: Improve onboarding initialization --- frontend/src/app/main/data/users.cljs | 1 - frontend/src/app/main/ui.cljs | 34 +++++++++++-------- .../src/app/main/ui/components/forms.cljs | 3 +- .../app/main/ui/onboarding/team_choice.cljs | 3 +- frontend/translations/es.po | 2 ++ 5 files changed, 26 insertions(+), 17 deletions(-) diff --git a/frontend/src/app/main/data/users.cljs b/frontend/src/app/main/data/users.cljs index 84448265c4..e49925038b 100644 --- a/frontend/src/app/main/data/users.cljs +++ b/frontend/src/app/main/data/users.cljs @@ -491,7 +491,6 @@ ptk/WatchEvent (watch [_ _ _] (let [props {:onboarding-questions-answered true - :onboarding-viewed true :onboarding-questions onboarding-questions}] (->> (rp/cmd! :update-profile-props {:props props}) (rx/map (constantly (fetch-profile)))))))) diff --git a/frontend/src/app/main/ui.cljs b/frontend/src/app/main/ui.cljs index 55c1233345..e725698d51 100644 --- a/frontend/src/app/main/ui.cljs +++ b/frontend/src/app/main/ui.cljs @@ -98,23 +98,29 @@ #_[:& app.main.ui.onboarding/onboarding-modal] #_[:& app.main.ui.onboarding.team-choice/onboarding-team-modal] (when-let [props (get profile :props)] - (let [show-question-modal? (and (not (:onboarding-viewed props)) - (contains? cf/flags :onboarding) - (not (:onboarding-questions-answered props)) - (contains? cf/flags :onboarding-questions)) + (let [show-question-modal? + (and (contains? cf/flags :onboarding) + (not (:onboarding-viewed props)) + (not (contains? props :onboarding-questions))) - show-newsletter-modal? (and (not (:onboarding-viewed props)) - (contains? cf/flags :onboarding) - (contains? cf/flags :onboarding-newsletter)) + show-newsletter-modal? + (and (contains? cf/flags :onboarding) + (not (:onboarding-viewed props)) + (not (contains? props :newsletter-updates)) + (contains? props :onboarding-questions)) - show-team-modal? (and (not (:onboarding-viewed props)) - (contains? cf/flags :onboarding) - (contains? cf/flags :onboarding-team)) + show-team-modal? + (and (contains? cf/flags :onboarding) + (not (:onboarding-viewed props)) + (not (contains? props :onboarding-team-id)) + (contains? props :newsletter-updates)) + + show-release-modal? + (and (contains? cf/flags :onboarding) + (:onboarding-viewed props) + (not= (:release-notes-viewed props) (:main cf/version)) + (not= "0.0" (:main cf/version)))] - show-release-modal? (and (contains? cf/flags :onboarding) - (:onboarding-viewed props) - (not= (:release-notes-viewed props) (:main cf/version)) - (not= "0.0" (:main cf/version)))] (cond show-question-modal? [:& questions-modal] diff --git a/frontend/src/app/main/ui/components/forms.cljs b/frontend/src/app/main/ui/components/forms.cljs index 22c69a9da8..0081b3de24 100644 --- a/frontend/src/app/main/ui/components/forms.cljs +++ b/frontend/src/app/main/ui/components/forms.cljs @@ -298,7 +298,6 @@ :value value' :checked checked?}]]))])) - (mf/defc image-radio-buttons {::mf/wrap-props false} [props] @@ -328,6 +327,7 @@ (when (fn? on-change) (on-change name value)))))] + [:div {:class (if image class (dm/str class " " (stl/css :custom-radio)))} @@ -336,6 +336,7 @@ value' (encode-fn value) checked? (= value current-value) key (str/ffmt "%-%" (d/name name) (d/name value'))] + [:label {:for key :key key :style {:grid-area area} diff --git a/frontend/src/app/main/ui/onboarding/team_choice.cljs b/frontend/src/app/main/ui/onboarding/team_choice.cljs index 7c4dad606f..743c051843 100644 --- a/frontend/src/app/main/ui/onboarding/team_choice.cljs +++ b/frontend/src/app/main/ui/onboarding/team_choice.cljs @@ -86,7 +86,8 @@ (mf/use-fn (fn [response] (let [team-id (:id response)] - (st/emit! (du/update-profile-props {:onboarding-team-id team-id}) + (st/emit! (du/update-profile-props {:onboarding-team-id team-id + :onboarding-viewed true}) (rt/nav :dashboard-projects {:team-id team-id}))))) on-error diff --git a/frontend/translations/es.po b/frontend/translations/es.po index 2a74b9eeb0..ea0c9e5d6f 100644 --- a/frontend/translations/es.po +++ b/frontend/translations/es.po @@ -197,6 +197,8 @@ msgstr "" "Al crear una nueva cuenta, aceptas nuestros [términos de servicio](%s) y " "[política de privacidad](%s)." +#: src/app/main/ui/auth/register.cljs +#, markdown msgid "auth.terms-and-privacy-agreement" msgstr "" "Yo acepto los [términos de servicio](%s) y la [política de privacidad](%s)." From 2d527b2caf14458bc8fa7ade9cc0874facc1be14 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Fri, 7 Jun 2024 11:55:43 +0200 Subject: [PATCH 100/476] :bug: Fix issue with annotation menu rerendering --- .../sidebar/options/menus/component.cljs | 24 +++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/menus/component.cljs b/frontend/src/app/main/ui/workspace/sidebar/options/menus/component.cljs index fef5e2beec..0e37301668 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options/menus/component.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/options/menus/component.cljs @@ -38,8 +38,9 @@ (l/derived :workspace-annotations st/state)) (mf/defc component-annotation - {::mf/props :obj} - [{:keys [id shape component]}] + {::mf/props :obj + ::mf/private true} + [{:keys [id shape component rerender-fn]}] (let [main-instance? (:main-instance shape) component-id (:component-id shape) annotation (:annotation component) @@ -57,6 +58,7 @@ textarea-ref (mf/use-ref) state (mf/deref ref:annotations-state) + expanded? (:expanded state) create-id (:id-for-create state) creating? (= id create-id) @@ -84,6 +86,7 @@ (mf/deps adjust-textarea-size creating?) (fn [event] (dom/stop-propagation event) + (rerender-fn) (when-let [textarea (mf/ref-val textarea-ref)] (dom/set-value! textarea annotation) (reset! editing* false) @@ -95,6 +98,7 @@ (mf/use-fn (fn [event] (dom/stop-propagation event) + (rerender-fn) (when ^boolean main-instance? (when-let [textarea (mf/ref-val textarea-ref)] (reset! editing* true) @@ -105,6 +109,7 @@ (mf/deps creating?) (fn [event] (dom/stop-propagation event) + (rerender-fn) (when-let [textarea (mf/ref-val textarea-ref)] (let [text (dom/get-value textarea)] (when-not (str/blank? text) @@ -113,13 +118,13 @@ (when ^boolean creating? (st/emit! (dw/set-annotations-id-for-create nil)))))))) - on-delete-annotation (mf/use-fn (mf/deps shape-id component-id creating?) (fn [event] (dom/stop-propagation event) (let [on-accept (fn [] + (rerender-fn) (st/emit! ;; (ptk/data-event {::ev/name "delete-component-annotation"}) (when creating? @@ -566,6 +571,17 @@ (when can-swap? (st/emit! (dwsp/open-specialized-panel :component-swap))) (tm/schedule-on-idle #(dom/focus! (dom/get-element search-id)))))) + ;; NOTE: function needed for force rerender from the bottom + ;; components. This is because `component-annotation` + ;; component changes the component but that has no direct + ;; reflection on shape which is passed on params. So for avoid + ;; the need to modify the shape artificially we just pass a + ;; rerender helper to it via react context mechanism + rerender-fn + (mf/use-fn + (fn [] + (swap! state* update :render inc))) + menu-entries (cmm/generate-components-menu-entries shapes components-v2) show-menu? (seq menu-entries) path (->> component (:path) (cfh/split-path) (cfh/join-path-with-dot))] @@ -631,6 +647,6 @@ [:& component-swap {:shapes copies}]) (when (and (not swap-opened?) (not multi) components-v2) - [:& component-annotation {:id id :shape shape :component component}]) + [:& component-annotation {:id id :shape shape :component component :rerender-fn rerender-fn}]) (when (dbg/enabled? :display-touched) [:div ":touched " (str (:touched shape))])])]))) From c5bf2a775e9f737623b33183848624fc4606d4bc Mon Sep 17 00:00:00 2001 From: Alejandro Alonso Date: Tue, 11 Jun 2024 09:59:35 +0200 Subject: [PATCH 101/476] :bug: Fix group automatically selected after creation --- CHANGES.md | 1 + .../data/workspace/get-file-not-empty.json | 222 ++++++++++++++++++ frontend/playwright/ui/pages/WorkspacePage.js | 6 +- .../playwright/ui/specs/workspace.spec.js | 16 ++ .../src/app/main/data/workspace/groups.cljs | 2 +- .../main/ui/workspace/sidebar/layer_item.cljs | 1 + 6 files changed, 246 insertions(+), 2 deletions(-) create mode 100644 frontend/playwright/data/workspace/get-file-not-empty.json diff --git a/CHANGES.md b/CHANGES.md index 4419c25756..e58a64a770 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -29,6 +29,7 @@ - Fix "Share prototypes" modal remains open [Taiga #7442](https://tree.taiga.io/project/penpot/issue/7442) - Fix "Components visibility and opacity" [#4694](https://github.com/penpot/penpot/issues/4694) - Fix "Attribute overrides in copies are not exported in zip file" [Taiga #8072](https://tree.taiga.io/project/penpot/issue/8072) +- Fix group not automatically selected in the Layers panel after creation [Taiga #8078](https://tree.taiga.io/project/penpot/issue/8078) ## 2.0.3 diff --git a/frontend/playwright/data/workspace/get-file-not-empty.json b/frontend/playwright/data/workspace/get-file-not-empty.json new file mode 100644 index 0000000000..27a91a25b7 --- /dev/null +++ b/frontend/playwright/data/workspace/get-file-not-empty.json @@ -0,0 +1,222 @@ +{ + "~:features":{ + "~#set":[ + "layout/grid", + "styles/v2", + "fdata/shape-data-type" + ] + }, + "~:permissions":{ + "~:type":"~:membership", + "~:is-owner":true, + "~:is-admin":true, + "~:can-edit":true, + "~:can-read":true, + "~:is-logged":true + }, + "~:has-media-trimmed":false, + "~:comment-thread-seqn":0, + "~:name":"New File 14", + "~:revn":1, + "~:modified-at":"~m1718088151182", + "~:id":"~u6191cd35-bb1f-81f7-8004-7cc63d087374", + "~:is-shared":false, + "~:version":48, + "~:project-id":"~u4dc640b0-5cbf-11ec-a7c5-91e9eb4f238d", + "~:created-at":"~m1718088142886", + "~:data":{ + "~:pages":[ + "~u6191cd35-bb1f-81f7-8004-7cc63d087375" + ], + "~:pages-index":{ + "~u6191cd35-bb1f-81f7-8004-7cc63d087375":{ + "~:options":{ + + }, + "~:objects":{ + "~u00000000-0000-0000-0000-000000000000":{ + "~#shape":{ + "~:y":0, + "~:hide-fill-on-export":false, + "~:transform":{ + "~#matrix":{ + "~:a":1.0, + "~:b":0.0, + "~:c":0.0, + "~:d":1.0, + "~:e":0.0, + "~:f":0.0 + } + }, + "~:rotation":0, + "~:name":"Root Frame", + "~:width":0.01, + "~:type":"~:frame", + "~:points":[ + { + "~#point":{ + "~:x":0, + "~:y":0 + } + }, + { + "~#point":{ + "~:x":0.01, + "~:y":0 + } + }, + { + "~#point":{ + "~:x":0.01, + "~:y":0.01 + } + }, + { + "~#point":{ + "~:x":0, + "~:y":0.01 + } + } + ], + "~:proportion-lock":false, + "~:transform-inverse":{ + "~#matrix":{ + "~:a":1.0, + "~:b":0.0, + "~:c":0.0, + "~:d":1.0, + "~:e":0.0, + "~:f":0.0 + } + }, + "~:id":"~u00000000-0000-0000-0000-000000000000", + "~:parent-id":"~u00000000-0000-0000-0000-000000000000", + "~:frame-id":"~u00000000-0000-0000-0000-000000000000", + "~:strokes":[ + + ], + "~:x":0, + "~:proportion":1.0, + "~:selrect":{ + "~#rect":{ + "~:x":0, + "~:y":0, + "~:width":0.01, + "~:height":0.01, + "~:x1":0, + "~:y1":0, + "~:x2":0.01, + "~:y2":0.01 + } + }, + "~:fills":[ + { + "~:fill-color":"#FFFFFF", + "~:fill-opacity":1 + } + ], + "~:flip-x":null, + "~:height":0.01, + "~:flip-y":null, + "~:shapes":[ + "~u7c75e310-c3a2-80fd-8004-7cc641479aef" + ] + } + }, + "~u7c75e310-c3a2-80fd-8004-7cc641479aef":{ + "~#shape":{ + "~:y":436, + "~:rx":0, + "~:transform":{ + "~#matrix":{ + "~:a":1.0, + "~:b":0.0, + "~:c":0.0, + "~:d":1.0, + "~:e":0.0, + "~:f":0.0 + } + }, + "~:rotation":0, + "~:grow-type":"~:fixed", + "~:hide-in-viewer":false, + "~:name":"Rectangle", + "~:width":126.00000000000006, + "~:type":"~:rect", + "~:points":[ + { + "~#point":{ + "~:x":266, + "~:y":436 + } + }, + { + "~#point":{ + "~:x":392.00000000000006, + "~:y":436 + } + }, + { + "~#point":{ + "~:x":392.00000000000006, + "~:y":570 + } + }, + { + "~#point":{ + "~:x":266, + "~:y":570 + } + } + ], + "~:proportion-lock":false, + "~:transform-inverse":{ + "~#matrix":{ + "~:a":1.0, + "~:b":0.0, + "~:c":0.0, + "~:d":1.0, + "~:e":0.0, + "~:f":0.0 + } + }, + "~:id":"~u7c75e310-c3a2-80fd-8004-7cc641479aef", + "~:parent-id":"~u00000000-0000-0000-0000-000000000000", + "~:frame-id":"~u00000000-0000-0000-0000-000000000000", + "~:strokes":[ + + ], + "~:x":266, + "~:proportion":1, + "~:selrect":{ + "~#rect":{ + "~:x":266, + "~:y":436, + "~:width":126.00000000000006, + "~:height":134, + "~:x1":266, + "~:y1":436, + "~:x2":392.00000000000006, + "~:y2":570 + } + }, + "~:fills":[ + { + "~:fill-color":"#B1B2B5", + "~:fill-opacity":1 + } + ], + "~:flip-x":null, + "~:ry":0, + "~:height":134, + "~:flip-y":null + } + } + }, + "~:id":"~u6191cd35-bb1f-81f7-8004-7cc63d087375", + "~:name":"Page 1" + } + }, + "~:id":"~u6191cd35-bb1f-81f7-8004-7cc63d087374" + } +} \ No newline at end of file diff --git a/frontend/playwright/ui/pages/WorkspacePage.js b/frontend/playwright/ui/pages/WorkspacePage.js index 4c82e0155a..72e0fa9fd7 100644 --- a/frontend/playwright/ui/pages/WorkspacePage.js +++ b/frontend/playwright/ui/pages/WorkspacePage.js @@ -111,7 +111,11 @@ export class WorkspacePage extends BaseWebSocketPage { const layer = this.layers.getByTestId("layer-item").filter({ has: this.page.getByText(name) }); await layer.getByRole("button").click(clickOptions); } - + + async expectSelectedLayer(name) { + await expect(this.layers.getByTestId("layer-row").filter({ has: this.page.getByText(name) })).toHaveClass(/selected/); + } + async clickAssets(clickOptions = {}) { await this.assets.click(clickOptions); } diff --git a/frontend/playwright/ui/specs/workspace.spec.js b/frontend/playwright/ui/specs/workspace.spec.js index 529965613d..f391949b4f 100644 --- a/frontend/playwright/ui/specs/workspace.spec.js +++ b/frontend/playwright/ui/specs/workspace.spec.js @@ -66,3 +66,19 @@ test("User adds a library and its automatically selected in the color palette", await expect(workspacePage.palette.getByText('There are no color styles in your library yet')).toBeVisible(); }); + + +test("User makes a group", async ({ page }) => { + const workspacePage = new WorkspacePage(page); + await workspacePage.setupEmptyFile(); + await workspacePage.mockRPC(/get\-file\?/, "workspace/get-file-not-empty.json"); + await workspacePage.mockRPC("update-file?id=*", "workspace/update-file-create-rect.json"); + + await workspacePage.goToWorkspace({ + fileId: "6191cd35-bb1f-81f7-8004-7cc63d087374", + pageId: "6191cd35-bb1f-81f7-8004-7cc63d087375" + }); + await workspacePage.clickLeafLayer("Rectangle"); + await workspacePage.page.keyboard.press("ControlOrMeta+g"); + await workspacePage.expectSelectedLayer("Group"); +}); diff --git a/frontend/src/app/main/data/workspace/groups.cljs b/frontend/src/app/main/data/workspace/groups.cljs index 3502bd6993..384eed1009 100644 --- a/frontend/src/app/main/data/workspace/groups.cljs +++ b/frontend/src/app/main/data/workspace/groups.cljs @@ -203,7 +203,7 @@ ptk/WatchEvent (watch [_ state _] (let [selected (wsh/lookup-selected state)] - (rx/of (group-shapes nil selected)))))) + (rx/of (group-shapes nil selected :change-selection? true)))))) (defn ungroup-shapes [ids & {:keys [change-selection?] :or {change-selection? false}}] diff --git a/frontend/src/app/main/ui/workspace/sidebar/layer_item.cljs b/frontend/src/app/main/ui/workspace/sidebar/layer_item.cljs index 2f4147a687..eca1ce2841 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/layer_item.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/layer_item.cljs @@ -59,6 +59,7 @@ :ref dref :on-click on-select-shape :on-context-menu on-context-menu + :data-testid "layer-row" :class (stl/css-case :layer-row true :highlight highlighted? From 3d7f399a5054943ccae7b80496180423364fbc42 Mon Sep 17 00:00:00 2001 From: Alejandro Alonso Date: Fri, 7 Jun 2024 12:58:19 +0200 Subject: [PATCH 102/476] :bug: Fix missing scroll in comments --- CHANGES.md | 2 + .../get-comment-threads-not-empty.json | 58 +++++++++++++++++++ .../data/workspace/get-thread-comments.json | 10 ++++ .../update-comment-thread-status.json | 1 + frontend/playwright/ui/pages/ViewerPage.js | 14 +++++ .../ui/specs/viewer-comments.spec.js | 34 +++++++++++ frontend/src/app/main/ui/comments.cljs | 8 ++- frontend/src/app/main/ui/viewer/comments.cljs | 3 + 8 files changed, 127 insertions(+), 3 deletions(-) create mode 100644 frontend/playwright/data/workspace/get-comment-threads-not-empty.json create mode 100644 frontend/playwright/data/workspace/get-thread-comments.json create mode 100644 frontend/playwright/data/workspace/update-comment-thread-status.json create mode 100644 frontend/playwright/ui/specs/viewer-comments.spec.js diff --git a/CHANGES.md b/CHANGES.md index e58a64a770..c19d710d4b 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -16,6 +16,8 @@ - Add locking degrees increment (hold shift) on path edition [Taiga #7761](https://tree.taiga.io/project/penpot/issue/7761) - Persistence & Concurrent Edition Enhancements [Taiga #5657](https://tree.taiga.io/project/penpot/us/5657) - Allow library colors as recent colors [Taiga #7640](https://tree.taiga.io/project/penpot/issue/7640) +- Missing scroll in viewmode comments [Taiga #7427](https://tree.taiga.io/project/penpot/issue/7427) +- Comments in View mode should mimic the positioning behavior of the Workspace [Taiga #7346](https://tree.taiga.io/project/penpot/issue/7346) ### :bug: Bugs fixed diff --git a/frontend/playwright/data/workspace/get-comment-threads-not-empty.json b/frontend/playwright/data/workspace/get-comment-threads-not-empty.json new file mode 100644 index 0000000000..503f1069fe --- /dev/null +++ b/frontend/playwright/data/workspace/get-comment-threads-not-empty.json @@ -0,0 +1,58 @@ +[ + { + "~:page-name":"Page 1", + "~:file-id":"~ud192fd06-a3e6-80d5-8004-7b7aaaea2a23", + "~:participants":{ + "~#set":[ + "~u0515a066-e303-8169-8004-73eb4018f4e0" + ] + }, + "~:content":"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque lacus tellus, pretium id dapibus in, suscipit eu magna. Duis rhoncus, nisl quis accumsan euismod, dolor ipsum bibendum enim, et varius turpis erat ut purus. Mauris lobortis ullamcorper lacus, sit amet iaculis dolor ultrices vitae. Phasellus sit amet iaculis neque, ac facilisis nisl. Morbi lobortis tellus nec purus elementum, ac vulputate diam vehicula. Quisque ullamcorper lobortis vestibulum. Proin ligula risus, auctor ac mauris sit amet, rhoncus hendrerit elit. Etiam at tempor tortor. Curabitur rutrum neque tortor, nec iaculis lorem varius sit amet.\n\nNunc maximus eget quam quis faucibus. Vivamus tincidunt sed velit non gravida. Vivamus fringilla sem tellus, a varius nisl posuere at. Duis cursus, turpis at vestibulum feugiat, est arcu fermentum ligula, in luctus nibh purus in purus. In vulputate enim non risus condimentum, et volutpat lectus dapibus. Sed elit felis, mattis sed dictum at, malesuada id risus. Proin ut felis sed eros viverra tempus. Proin varius eget erat vitae molestie. Suspendisse vehicula magna sit amet vehicula vehicula. Vestibulum in lorem nisl.\n\nNunc commodo elit sed lorem imperdiet pellentesque. Aliquam porta eget leo eget pretium. Aliquam erat volutpat. Donec condimentum, augue posuere vehicula sagittis, urna odio blandit lectus, id maximus purus leo eu odio. Donec eu tempor augue. Curabitur vitae ipsum non metus tristique posuere. Donec gravida, odio at aliquet consectetur, tellus nisl sollicitudin dui, quis tempus felis est quis odio. Duis sit amet dolor nisi. Sed vitae volutpat ex. Sed viverra sagittis semper. Ut ut enim sed nunc tempus facilisis.\n\nPellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Aenean orci mauris, lacinia ut nulla et, fringilla sollicitudin leo. Pellentesque sit amet euismod urna, quis bibendum nisi. Vivamus vitae lacinia sapien. Praesent consectetur vehicula pulvinar. Nunc varius rutrum risus, ac dictum orci pellentesque vel. Pellentesque sit amet bibendum risus. Quisque suscipit dui in libero posuere porttitor. Curabitur a ultrices sem. Duis maximus, velit ac dapibus venenatis, sapien arcu commodo dolor, eget ultrices ante dui sit amet orci. Cras rutrum nulla nunc, nec efficitur leo efficitur ac. In sollicitudin, mauris eu sollicitudin porta, sapien neque eleifend nibh, id imperdiet quam leo eget ex. Maecenas at leo ornare, lacinia ipsum imperdiet, laoreet turpis. Aliquam sodales ligula urna, vel vulputate orci imperdiet eu. Interdum et malesuada fames ac ante ipsum primis in faucibus. Suspendisse congue vehicula nisl, vel gravida magna sagittis sit amet.\n\nDonec ultricies placerat justo, id venenatis neque. Praesent eget vulputate est, ac placerat lectus. Curabitur condimentum non lorem id faucibus. Curabitur neque erat, euismod id pellentesque et, suscipit at elit. Curabitur vel nisi maximus, imperdiet lectus eu, tristique neque. Nunc quis quam non velit tristique tincidunt sed eu nisi. Morbi dictum accumsan arcu in consequat. Integer at urna commodo, commodo velit eget, efficitur metus. Proin ornare id velit nec molestie. Nam vitae faucibus enim. Aenean lobortis quam quis leo congue sodales. Pellentesque ornare eu purus quis congue. Cras ultricies nec eros in fringilla.\n\nMorbi egestas, arcu eget sollicitudin lobortis, dui arcu feugiat mi, sit amet commodo magna diam vitae nunc. Nulla varius leo quis ligula porta scelerisque. Morbi dignissim ante nec nisi molestie scelerisque. Sed ac facilisis tortor. Etiam lorem ex, tincidunt ac eros eu, molestie finibus ante. Integer et sollicitudin sem. Duis eu pretium est. Integer sit amet finibus lacus, in placerat ipsum. Phasellus leo ex, ornare semper lorem in, cursus vehicula nisl. Quisque tincidunt blandit est, non convallis justo consectetur vestibulum. Donec laoreet ipsum mauris, quis porttitor quam aliquam vitae.\n\nAliquam pharetra sapien pretium malesuada vehicula. Quisque risus risus, imperdiet at iaculis vel, aliquam quis libero. Sed quis libero imperdiet, volutpat magna vel, sagittis est. Ut eleifend odio in interdum maximus. Aenean libero enim, ornare quis ante pharetra, venenatis elementum est. Mauris sapien tortor, bibendum in elit id, fermentum blandit nisl. Cras eget dictum odio. Vestibulum nec mauris at odio vestibulum placerat. Praesent et placerat mauris. Pellentesque vitae nulla sed velit ornare suscipit eu eget neque. Morbi non ex molestie est congue commodo dictum eu tortor. Nunc hendrerit sodales purus, sit amet maximus est. Sed porta eleifend malesuada.\n\nDuis lobortis ultricies lectus, in tristique tortor. Praesent mauris mi, finibus vel imperdiet quis, congue vel erat. Sed pharetra et ipsum at vestibulum. Vestibulum id molestie urna. Sed at felis gravida, volutpat orci in, pulvinar mauris. Pellentesque sed odio bibendum, molestie risus eu, convallis libero. Etiam in quam dapibus, elementum mi vel, vestibulum est.\n\nCras tristique venenatis pulvinar. Sed id est mi. Ut id lorem volutpat, ullamcorper tellus nec, iaculis ex. Phasellus sed lorem eu turpis pulvinar bibendum ac semper metus. Vestibulum dolor erat, semper at ullamcorper eu, imperdiet at ipsum. Sed mauris erat, sodales non bibendum at, ultricies sed orci. Phasellus sem lacus, dictum a ipsum id, vulputate egestas diam. Suspendisse sit amet volutpat metus, sit amet faucibus eros. Vestibulum ut ante vitae dolor placerat viverra sit amet nec nisl. Nulla consequat, eros at lobortis faucibus, ex eros rhoncus enim, vel egestas nunc ligula a ante. Suspendisse potenti. Nunc magna enim, consectetur in euismod at, accumsan vitae nibh. Suspendisse imperdiet, arcu sit amet congue fringilla, turpis urna venenatis ligula, sit amet laoreet neque erat quis eros.\n\nDonec lobortis blandit justo. Maecenas commodo massa aliquam, elementum ligula tincidunt, iaculis lectus. Aliquam condimentum tortor orci. In molestie augue ac efficitur dignissim. Donec cursus, erat sit amet blandit semper, erat sapien cursus erat, ac consequat magna mi sed est. Morbi at enim non augue gravida pellentesque. Suspendisse eget aliquam dolor.", + "~:count-unread-comments":0, + "~:count-comments":1, + "~:modified-at":"~m1718001240857", + "~:page-id":"~udd5cc0bb-91ff-81b9-8004-77df9cd3edb2", + "~:id": "~udd5cc0bb-91ff-81b9-8004-77df9cd3edb1", + "~:file-name":"New File 3", + "~:seqn":1, + "~:is-resolved":false, + "~:owner-id":"~u2e2da0fa-2d3e-81ec-8003-cb4453324510", + "~:position":{ + "~#point":{ + "~:x":20.0, + "~:y":20.0 + } + }, + "~:frame-id": "~uec508673-9e3b-80bf-8004-77dfa30a2b13", + "~:project-id": "~u0515a066-e303-8169-8004-73eb401b5d55", + "~:created-at":"~m1718001240857" + }, + { + "~:page-name":"Page 1", + "~:file-id":"~ud192fd06-a3e6-80d5-8004-7b7aaaea2a23", + "~:participants":{ + "~#set":[ + "~u0515a066-e303-8169-8004-73eb4018f4e0" + ] + }, + "~:content":"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque lacus tellus, pretium id dapibus in, suscipit eu magna. Duis rhoncus, nisl quis accumsan euismod, dolor ipsum bibendum enim, et varius turpis erat ut purus. Mauris lobortis ullamcorper lacus, sit amet iaculis dolor ultrices vitae. Phasellus sit amet iaculis neque, ac facilisis nisl. Morbi lobortis tellus nec purus elementum, ac vulputate diam vehicula. Quisque ullamcorper lobortis vestibulum. Proin ligula risus, auctor ac mauris sit amet, rhoncus hendrerit elit. Etiam at tempor tortor. Curabitur rutrum neque tortor, nec iaculis lorem varius sit amet.\n\nNunc maximus eget quam quis faucibus. Vivamus tincidunt sed velit non gravida. Vivamus fringilla sem tellus, a varius nisl posuere at. Duis cursus, turpis at vestibulum feugiat, est arcu fermentum ligula, in luctus nibh purus in purus. In vulputate enim non risus condimentum, et volutpat lectus dapibus. Sed elit felis, mattis sed dictum at, malesuada id risus. Proin ut felis sed eros viverra tempus. Proin varius eget erat vitae molestie. Suspendisse vehicula magna sit amet vehicula vehicula. Vestibulum in lorem nisl.\n\nNunc commodo elit sed lorem imperdiet pellentesque. Aliquam porta eget leo eget pretium. Aliquam erat volutpat. Donec condimentum, augue posuere vehicula sagittis, urna odio blandit lectus, id maximus purus leo eu odio. Donec eu tempor augue. Curabitur vitae ipsum non metus tristique posuere. Donec gravida, odio at aliquet consectetur, tellus nisl sollicitudin dui, quis tempus felis est quis odio. Duis sit amet dolor nisi. Sed vitae volutpat ex. Sed viverra sagittis semper. Ut ut enim sed nunc tempus facilisis.\n\nPellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Aenean orci mauris, lacinia ut nulla et, fringilla sollicitudin leo. Pellentesque sit amet euismod urna, quis bibendum nisi. Vivamus vitae lacinia sapien. Praesent consectetur vehicula pulvinar. Nunc varius rutrum risus, ac dictum orci pellentesque vel. Pellentesque sit amet bibendum risus. Quisque suscipit dui in libero posuere porttitor. Curabitur a ultrices sem. Duis maximus, velit ac dapibus venenatis, sapien arcu commodo dolor, eget ultrices ante dui sit amet orci. Cras rutrum nulla nunc, nec efficitur leo efficitur ac. In sollicitudin, mauris eu sollicitudin porta, sapien neque eleifend nibh, id imperdiet quam leo eget ex. Maecenas at leo ornare, lacinia ipsum imperdiet, laoreet turpis. Aliquam sodales ligula urna, vel vulputate orci imperdiet eu. Interdum et malesuada fames ac ante ipsum primis in faucibus. Suspendisse congue vehicula nisl, vel gravida magna sagittis sit amet.\n\nDonec ultricies placerat justo, id venenatis neque. Praesent eget vulputate est, ac placerat lectus. Curabitur condimentum non lorem id faucibus. Curabitur neque erat, euismod id pellentesque et, suscipit at elit. Curabitur vel nisi maximus, imperdiet lectus eu, tristique neque. Nunc quis quam non velit tristique tincidunt sed eu nisi. Morbi dictum accumsan arcu in consequat. Integer at urna commodo, commodo velit eget, efficitur metus. Proin ornare id velit nec molestie. Nam vitae faucibus enim. Aenean lobortis quam quis leo congue sodales. Pellentesque ornare eu purus quis congue. Cras ultricies nec eros in fringilla.\n\nMorbi egestas, arcu eget sollicitudin lobortis, dui arcu feugiat mi, sit amet commodo magna diam vitae nunc. Nulla varius leo quis ligula porta scelerisque. Morbi dignissim ante nec nisi molestie scelerisque. Sed ac facilisis tortor. Etiam lorem ex, tincidunt ac eros eu, molestie finibus ante. Integer et sollicitudin sem. Duis eu pretium est. Integer sit amet finibus lacus, in placerat ipsum. Phasellus leo ex, ornare semper lorem in, cursus vehicula nisl. Quisque tincidunt blandit est, non convallis justo consectetur vestibulum. Donec laoreet ipsum mauris, quis porttitor quam aliquam vitae.\n\nAliquam pharetra sapien pretium malesuada vehicula. Quisque risus risus, imperdiet at iaculis vel, aliquam quis libero. Sed quis libero imperdiet, volutpat magna vel, sagittis est. Ut eleifend odio in interdum maximus. Aenean libero enim, ornare quis ante pharetra, venenatis elementum est. Mauris sapien tortor, bibendum in elit id, fermentum blandit nisl. Cras eget dictum odio. Vestibulum nec mauris at odio vestibulum placerat. Praesent et placerat mauris. Pellentesque vitae nulla sed velit ornare suscipit eu eget neque. Morbi non ex molestie est congue commodo dictum eu tortor. Nunc hendrerit sodales purus, sit amet maximus est. Sed porta eleifend malesuada.\n\nDuis lobortis ultricies lectus, in tristique tortor. Praesent mauris mi, finibus vel imperdiet quis, congue vel erat. Sed pharetra et ipsum at vestibulum. Vestibulum id molestie urna. Sed at felis gravida, volutpat orci in, pulvinar mauris. Pellentesque sed odio bibendum, molestie risus eu, convallis libero. Etiam in quam dapibus, elementum mi vel, vestibulum est.\n\nCras tristique venenatis pulvinar. Sed id est mi. Ut id lorem volutpat, ullamcorper tellus nec, iaculis ex. Phasellus sed lorem eu turpis pulvinar bibendum ac semper metus. Vestibulum dolor erat, semper at ullamcorper eu, imperdiet at ipsum. Sed mauris erat, sodales non bibendum at, ultricies sed orci. Phasellus sem lacus, dictum a ipsum id, vulputate egestas diam. Suspendisse sit amet volutpat metus, sit amet faucibus eros. Vestibulum ut ante vitae dolor placerat viverra sit amet nec nisl. Nulla consequat, eros at lobortis faucibus, ex eros rhoncus enim, vel egestas nunc ligula a ante. Suspendisse potenti. Nunc magna enim, consectetur in euismod at, accumsan vitae nibh. Suspendisse imperdiet, arcu sit amet congue fringilla, turpis urna venenatis ligula, sit amet laoreet neque erat quis eros.\n\nDonec lobortis blandit justo. Maecenas commodo massa aliquam, elementum ligula tincidunt, iaculis lectus. Aliquam condimentum tortor orci. In molestie augue ac efficitur dignissim. Donec cursus, erat sit amet blandit semper, erat sapien cursus erat, ac consequat magna mi sed est. Morbi at enim non augue gravida pellentesque. Suspendisse eget aliquam dolor.", + "~:count-unread-comments":0, + "~:count-comments":1, + "~:modified-at":"~m1718001247587", + "~:page-id":"~udd5cc0bb-91ff-81b9-8004-77df9cd3edb2", + "~:id":"~ud192fd06-a3e6-80d5-8004-7b7ac25ac93a", + "~:file-name":"New File 44", + "~:seqn":2, + "~:is-resolved":false, + "~:owner-id":"~u2e2da0fa-2d3e-81ec-8003-cb4453324510", + "~:position":{ + "~#point":{ + "~:x":235.0, + "~:y":235.0 + } + }, + "~:frame-id": "~uec508673-9e3b-80bf-8004-77dfa30a2b13", + "~:project-id":"~u343837a3-0d75-808a-8004-659df7b7873e", + "~:created-at":"~m1718001247587" + } +] \ No newline at end of file diff --git a/frontend/playwright/data/workspace/get-thread-comments.json b/frontend/playwright/data/workspace/get-thread-comments.json new file mode 100644 index 0000000000..b3822d1eb5 --- /dev/null +++ b/frontend/playwright/data/workspace/get-thread-comments.json @@ -0,0 +1,10 @@ +[ + { + "~:id":"~ud192fd06-a3e6-80d5-8004-7b7abbc8cdf8", + "~:thread-id":"~ud192fd06-a3e6-80d5-8004-7b7abbc8ac30", + "~:owner-id":"~u2e2da0fa-2d3e-81ec-8003-cb4453324510", + "~:created-at":"~m1718001240857", + "~:modified-at":"~m1718001240857", + "~:content":"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque lacus tellus, pretium id dapibus in, suscipit eu magna. Duis rhoncus, nisl quis accumsan euismod, dolor ipsum bibendum enim, et varius turpis erat ut purus. Mauris lobortis ullamcorper lacus, sit amet iaculis dolor ultrices vitae. Phasellus sit amet iaculis neque, ac facilisis nisl. Morbi lobortis tellus nec purus elementum, ac vulputate diam vehicula. Quisque ullamcorper lobortis vestibulum. Proin ligula risus, auctor ac mauris sit amet, rhoncus hendrerit elit. Etiam at tempor tortor. Curabitur rutrum neque tortor, nec iaculis lorem varius sit amet.\n\nNunc maximus eget quam quis faucibus. Vivamus tincidunt sed velit non gravida. Vivamus fringilla sem tellus, a varius nisl posuere at. Duis cursus, turpis at vestibulum feugiat, est arcu fermentum ligula, in luctus nibh purus in purus. In vulputate enim non risus condimentum, et volutpat lectus dapibus. Sed elit felis, mattis sed dictum at, malesuada id risus. Proin ut felis sed eros viverra tempus. Proin varius eget erat vitae molestie. Suspendisse vehicula magna sit amet vehicula vehicula. Vestibulum in lorem nisl.\n\nNunc commodo elit sed lorem imperdiet pellentesque. Aliquam porta eget leo eget pretium. Aliquam erat volutpat. Donec condimentum, augue posuere vehicula sagittis, urna odio blandit lectus, id maximus purus leo eu odio. Donec eu tempor augue. Curabitur vitae ipsum non metus tristique posuere. Donec gravida, odio at aliquet consectetur, tellus nisl sollicitudin dui, quis tempus felis est quis odio. Duis sit amet dolor nisi. Sed vitae volutpat ex. Sed viverra sagittis semper. Ut ut enim sed nunc tempus facilisis.\n\nPellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Aenean orci mauris, lacinia ut nulla et, fringilla sollicitudin leo. Pellentesque sit amet euismod urna, quis bibendum nisi. Vivamus vitae lacinia sapien. Praesent consectetur vehicula pulvinar. Nunc varius rutrum risus, ac dictum orci pellentesque vel. Pellentesque sit amet bibendum risus. Quisque suscipit dui in libero posuere porttitor. Curabitur a ultrices sem. Duis maximus, velit ac dapibus venenatis, sapien arcu commodo dolor, eget ultrices ante dui sit amet orci. Cras rutrum nulla nunc, nec efficitur leo efficitur ac. In sollicitudin, mauris eu sollicitudin porta, sapien neque eleifend nibh, id imperdiet quam leo eget ex. Maecenas at leo ornare, lacinia ipsum imperdiet, laoreet turpis. Aliquam sodales ligula urna, vel vulputate orci imperdiet eu. Interdum et malesuada fames ac ante ipsum primis in faucibus. Suspendisse congue vehicula nisl, vel gravida magna sagittis sit amet.\n\nDonec ultricies placerat justo, id venenatis neque. Praesent eget vulputate est, ac placerat lectus. Curabitur condimentum non lorem id faucibus. Curabitur neque erat, euismod id pellentesque et, suscipit at elit. Curabitur vel nisi maximus, imperdiet lectus eu, tristique neque. Nunc quis quam non velit tristique tincidunt sed eu nisi. Morbi dictum accumsan arcu in consequat. Integer at urna commodo, commodo velit eget, efficitur metus. Proin ornare id velit nec molestie. Nam vitae faucibus enim. Aenean lobortis quam quis leo congue sodales. Pellentesque ornare eu purus quis congue. Cras ultricies nec eros in fringilla.\n\nMorbi egestas, arcu eget sollicitudin lobortis, dui arcu feugiat mi, sit amet commodo magna diam vitae nunc. Nulla varius leo quis ligula porta scelerisque. Morbi dignissim ante nec nisi molestie scelerisque. Sed ac facilisis tortor. Etiam lorem ex, tincidunt ac eros eu, molestie finibus ante. Integer et sollicitudin sem. Duis eu pretium est. Integer sit amet finibus lacus, in placerat ipsum. Phasellus leo ex, ornare semper lorem in, cursus vehicula nisl. Quisque tincidunt blandit est, non convallis justo consectetur vestibulum. Donec laoreet ipsum mauris, quis porttitor quam aliquam vitae.\n\nAliquam pharetra sapien pretium malesuada vehicula. Quisque risus risus, imperdiet at iaculis vel, aliquam quis libero. Sed quis libero imperdiet, volutpat magna vel, sagittis est. Ut eleifend odio in interdum maximus. Aenean libero enim, ornare quis ante pharetra, venenatis elementum est. Mauris sapien tortor, bibendum in elit id, fermentum blandit nisl. Cras eget dictum odio. Vestibulum nec mauris at odio vestibulum placerat. Praesent et placerat mauris. Pellentesque vitae nulla sed velit ornare suscipit eu eget neque. Morbi non ex molestie est congue commodo dictum eu tortor. Nunc hendrerit sodales purus, sit amet maximus est. Sed porta eleifend malesuada.\n\nDuis lobortis ultricies lectus, in tristique tortor. Praesent mauris mi, finibus vel imperdiet quis, congue vel erat. Sed pharetra et ipsum at vestibulum. Vestibulum id molestie urna. Sed at felis gravida, volutpat orci in, pulvinar mauris. Pellentesque sed odio bibendum, molestie risus eu, convallis libero. Etiam in quam dapibus, elementum mi vel, vestibulum est.\n\nCras tristique venenatis pulvinar. Sed id est mi. Ut id lorem volutpat, ullamcorper tellus nec, iaculis ex. Phasellus sed lorem eu turpis pulvinar bibendum ac semper metus. Vestibulum dolor erat, semper at ullamcorper eu, imperdiet at ipsum. Sed mauris erat, sodales non bibendum at, ultricies sed orci. Phasellus sem lacus, dictum a ipsum id, vulputate egestas diam. Suspendisse sit amet volutpat metus, sit amet faucibus eros. Vestibulum ut ante vitae dolor placerat viverra sit amet nec nisl. Nulla consequat, eros at lobortis faucibus, ex eros rhoncus enim, vel egestas nunc ligula a ante. Suspendisse potenti. Nunc magna enim, consectetur in euismod at, accumsan vitae nibh. Suspendisse imperdiet, arcu sit amet congue fringilla, turpis urna venenatis ligula, sit amet laoreet neque erat quis eros.\n\nDonec lobortis blandit justo. Maecenas commodo massa aliquam, elementum ligula tincidunt, iaculis lectus. Aliquam condimentum tortor orci. In molestie augue ac efficitur dignissim. Donec cursus, erat sit amet blandit semper, erat sapien cursus erat, ac consequat magna mi sed est. Morbi at enim non augue gravida pellentesque. Suspendisse eget aliquam dolor." + } +] \ No newline at end of file diff --git a/frontend/playwright/data/workspace/update-comment-thread-status.json b/frontend/playwright/data/workspace/update-comment-thread-status.json new file mode 100644 index 0000000000..9e26dfeeb6 --- /dev/null +++ b/frontend/playwright/data/workspace/update-comment-thread-status.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/frontend/playwright/ui/pages/ViewerPage.js b/frontend/playwright/ui/pages/ViewerPage.js index 18c8cebe91..a7e377a889 100644 --- a/frontend/playwright/ui/pages/ViewerPage.js +++ b/frontend/playwright/ui/pages/ViewerPage.js @@ -43,4 +43,18 @@ export class ViewerPage extends BaseWebSocketPage { async cleanUp() { await this.#ws.mockClose(); } + + async showComments(clickOptions = {}) { + await this.page + .getByRole("button", { name: "Comments (G C)" }) + .click(clickOptions); + } + + async showCommentsThread(number, clickOptions = {}) { + await this.page + .getByTestId("floating-thread-bubble") + .filter({ hasText: number.toString() }) + .click(clickOptions); + } } + diff --git a/frontend/playwright/ui/specs/viewer-comments.spec.js b/frontend/playwright/ui/specs/viewer-comments.spec.js new file mode 100644 index 0000000000..13591e6053 --- /dev/null +++ b/frontend/playwright/ui/specs/viewer-comments.spec.js @@ -0,0 +1,34 @@ +import { test, expect } from "@playwright/test"; +import { ViewerPage } from "../pages/ViewerPage"; + +test.beforeEach(async ({ page }) => { + await ViewerPage.init(page); +}); + +const singleBoardFileId = "dd5cc0bb-91ff-81b9-8004-77df9cd3edb1"; +const singleBoardPageId = "dd5cc0bb-91ff-81b9-8004-77df9cd3edb2"; + +const setupFileWithSingleBoard = async (viewer) => { + await viewer.mockRPC(/get\-view\-only\-bundle\?/, "viewer/get-view-only-bundle-single-board.json"); + await viewer.mockRPC("get-comment-threads?file-id=*", "workspace/get-comment-threads-not-empty.json"); + await viewer.mockRPC( + "get-file-fragment?file-id=*&fragment-id=*", + "viewer/get-file-fragment-single-board.json", + ); + await viewer.mockRPC("get-comments?thread-id=*", "workspace/get-thread-comments.json"); + await viewer.mockRPC("update-comment-thread-status", "workspace/update-comment-thread-status.json"); +}; + +test("Comment is shown with scroll and valid position", async ({ page }) => { + const viewer = new ViewerPage(page); + await viewer.setupLoggedInUser(); + await setupFileWithSingleBoard(viewer); + + await viewer.goToViewer({ fileId: singleBoardFileId, pageId: singleBoardPageId }); + await viewer.showComments(); + await viewer.showCommentsThread(1); + await expect(viewer.page.getByRole("textbox", { name: "Reply" })).toBeVisible(); + await viewer.showCommentsThread(1); + await viewer.showCommentsThread(2); + await expect(viewer.page.getByRole("textbox", { name: "Reply" })).toBeVisible(); +}); diff --git a/frontend/src/app/main/ui/comments.cljs b/frontend/src/app/main/ui/comments.cljs index 31cfd9a600..fd156e6a70 100644 --- a/frontend/src/app/main/ui/comments.cljs +++ b/frontend/src/app/main/ui/comments.cljs @@ -181,6 +181,7 @@ [:* [:div {:class (stl/css :floating-thread-bubble) + :data-testid "floating-thread-bubble" :style {:top (str pos-y "px") :left (str pos-x "px")} :on-click dom/stop-propagation} @@ -435,9 +436,9 @@ [:* {:key (dm/str (:id item))} [:& comment-item {:comment item :users users - :origin origin}]]) - [:div {:ref ref}]] - [:& reply-form {:thread thread}]]))) + :origin origin}]])] + [:& reply-form {:thread thread}] + [:div {:ref ref}]]))) (defn use-buble [zoom {:keys [position frame-id]}] @@ -558,6 +559,7 @@ :on-pointer-move on-pointer-move* :on-click on-click* :on-lost-pointer-capture on-lost-pointer-capture + :data-testid "floating-thread-bubble" :class (stl/css-case :floating-thread-bubble true :resolved (:is-resolved thread) diff --git a/frontend/src/app/main/ui/viewer/comments.cljs b/frontend/src/app/main/ui/viewer/comments.cljs index c5677e0fb1..a83d47b4ac 100644 --- a/frontend/src/app/main/ui/viewer/comments.cljs +++ b/frontend/src/app/main/ui/viewer/comments.cljs @@ -134,6 +134,8 @@ page-id (:id page) file-id (:id file) frame-id (:id frame) + vsize (-> (mf/deref refs/viewer-local) + :viewport-size) tpos-ref (mf/with-memo [page-id] (-> (l/in [:pages page-id :options :comment-threads-position]) @@ -216,6 +218,7 @@ [:& cmt/thread-comments {:thread thread :position-modifier modifier1 + :viewport {:offset-x 0 :offset-y 0 :width (:width vsize) :height (:height vsize)} :users users :zoom zoom}]) From 46764a1e6e0b8a1c78e83611eea1c36d51716455 Mon Sep 17 00:00:00 2001 From: Alejandro Alonso Date: Tue, 11 Jun 2024 08:19:33 +0200 Subject: [PATCH 103/476] :bug: Fix export boards loses opacity --- CHANGES.md | 1 + frontend/src/app/worker/import.cljs | 1 - frontend/src/app/worker/import/parser.cljs | 19 +++++++++++-------- 3 files changed, 12 insertions(+), 9 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index c19d710d4b..6adb776a6f 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -32,6 +32,7 @@ - Fix "Components visibility and opacity" [#4694](https://github.com/penpot/penpot/issues/4694) - Fix "Attribute overrides in copies are not exported in zip file" [Taiga #8072](https://tree.taiga.io/project/penpot/issue/8072) - Fix group not automatically selected in the Layers panel after creation [Taiga #8078](https://tree.taiga.io/project/penpot/issue/8078) +- Fix export boards loses opacity [Taiga #7592](https://tree.taiga.io/project/penpot/issue/7592) ## 2.0.3 diff --git a/frontend/src/app/worker/import.cljs b/frontend/src/app/worker/import.cljs index 998459c604..901b3edcd4 100644 --- a/frontend/src/app/worker/import.cljs +++ b/frontend/src/app/worker/import.cljs @@ -278,7 +278,6 @@ old-id (parser/get-id node) interactions (->> (parser/parse-interactions node) (mapv #(update % :destination resolve))) - data (-> (parser/parse-data type node) (resolve-data-ids type context) (cond-> (some? old-id) diff --git a/frontend/src/app/worker/import/parser.cljs b/frontend/src/app/worker/import/parser.cljs index 5eda72daa9..adeb0dd5a9 100644 --- a/frontend/src/app/worker/import/parser.cljs +++ b/frontend/src/app/worker/import/parser.cljs @@ -244,19 +244,22 @@ (first)) ;; The nodes with the "frame-background" class can have some anidation depending on the strokes they have - g-nodes (find-all-nodes node :g) - defs-nodes (flatten (map #(find-all-nodes % :defs) g-nodes)) - gg-nodes (flatten (map #(find-all-nodes % :g) g-nodes)) + g-nodes (find-all-nodes node :g) + defs-nodes (flatten (map #(find-all-nodes % :defs) g-nodes)) + gg-nodes (flatten (map #(find-all-nodes % :g) g-nodes)) + ;; The first g node contains the opacity for frames + main-g-node (first g-nodes) - rect-nodes (flatten [[(find-all-nodes node :rect)] - (map #(find-all-nodes % #{:rect :path}) defs-nodes) - (map #(find-all-nodes % #{:rect :path}) g-nodes) - (map #(find-all-nodes % #{:rect :path}) gg-nodes)]) - svg-node (d/seek #(= "frame-background" (get-in % [:attrs :class])) rect-nodes)] + rect-nodes (flatten [[(find-all-nodes node :rect)] + (map #(find-all-nodes % #{:rect :path}) defs-nodes) + (map #(find-all-nodes % #{:rect :path}) g-nodes) + (map #(find-all-nodes % #{:rect :path}) gg-nodes)]) + svg-node (d/seek #(= "frame-background" (get-in % [:attrs :class])) rect-nodes)] (merge (add-attrs {} (:attrs frame-clip-rect-node)) (add-attrs {} (:attrs svg-node)) + (add-attrs {} (:attrs main-g-node)) node-attrs)) (= type :svg-raw) From 694e71c3fcf8b9e1c4e64b3f7169481924b7b919 Mon Sep 17 00:00:00 2001 From: Alejandro Alonso Date: Tue, 11 Jun 2024 08:20:14 +0200 Subject: [PATCH 104/476] :sparkles: Improve CHANGES.md format --- CHANGES.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index 6adb776a6f..b889bb0c33 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -10,8 +10,6 @@ ### :sparkles: New features -- Fix clickable area of Penptot logo in the viewer [Taiga #7988](https://tree.taiga.io/project/penpot/issue/7988) -- Fix constraints dropdown when selecting multiple shapes [Taiga #7686](https://tree.taiga.io/project/penpot/issue/7686) - Improve auth process [Taiga #7094](https://tree.taiga.io/project/penpot/us/7094) - Add locking degrees increment (hold shift) on path edition [Taiga #7761](https://tree.taiga.io/project/penpot/issue/7761) - Persistence & Concurrent Edition Enhancements [Taiga #5657](https://tree.taiga.io/project/penpot/us/5657) @@ -21,6 +19,8 @@ ### :bug: Bugs fixed +- Fix clickable area of Penptot logo in the viewer [Taiga #7988](https://tree.taiga.io/project/penpot/issue/7988) +- Fix constraints dropdown when selecting multiple shapes [Taiga #7686](https://tree.taiga.io/project/penpot/issue/7686) - Layout and scrollign fixes for the bottom palette [Taiga #7559](https://tree.taiga.io/project/penpot/issue/7559) - Fix expand libraries when search results are present [Taiga #7876](https://tree.taiga.io/project/penpot/issue/7876) - Fix color palette default library [Taiga #8029](https://tree.taiga.io/project/penpot/issue/8029) From 8825e9f80bda0f707901f7907011e1a5e33e22fc Mon Sep 17 00:00:00 2001 From: Pablo Alba Date: Mon, 10 Jun 2024 14:13:58 +0200 Subject: [PATCH 105/476] :bug: Fix show in view mode and interactions workflow --- CHANGES.md | 1 + common/src/app/common/files/defaults.cljc | 2 +- common/src/app/common/files/migrations.cljc | 23 +++++- common/src/app/common/logic/shapes.cljc | 13 ++++ .../src/app/common/test_helpers/shapes.cljc | 17 +++++ .../logic/hide_in_viewer_test.cljc | 75 +++++++++++++++++++ .../app/main/data/workspace/interactions.cljs | 4 +- .../sidebar/options/menus/measures.cljs | 12 +-- 8 files changed, 137 insertions(+), 10 deletions(-) create mode 100644 common/test/common_tests/logic/hide_in_viewer_test.cljc diff --git a/CHANGES.md b/CHANGES.md index b889bb0c33..bbb9796e0f 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -33,6 +33,7 @@ - Fix "Attribute overrides in copies are not exported in zip file" [Taiga #8072](https://tree.taiga.io/project/penpot/issue/8072) - Fix group not automatically selected in the Layers panel after creation [Taiga #8078](https://tree.taiga.io/project/penpot/issue/8078) - Fix export boards loses opacity [Taiga #7592](https://tree.taiga.io/project/penpot/issue/7592) +- Fix show in view mode and interactions workflow [Taiga #4711](https://github.com/penpot/penpot/pull/4711) ## 2.0.3 diff --git a/common/src/app/common/files/defaults.cljc b/common/src/app/common/files/defaults.cljc index 5c15fc10d1..91acf65394 100644 --- a/common/src/app/common/files/defaults.cljc +++ b/common/src/app/common/files/defaults.cljc @@ -6,4 +6,4 @@ (ns app.common.files.defaults) -(def version 48) +(def version 49) diff --git a/common/src/app/common/files/migrations.cljc b/common/src/app/common/files/migrations.cljc index 3b78031568..4346309776 100644 --- a/common/src/app/common/files/migrations.cljc +++ b/common/src/app/common/files/migrations.cljc @@ -937,6 +937,26 @@ (-> data (update :pages-index update-vals update-page)))) +(defn migrate-up-49 + "Remove hide-in-viewer for shapes that are origin or destination of an interaction" + [data] + (letfn [(update-object [destinations object] + (cond-> object + (or (:interactions object) + (contains? destinations (:id object))) + (dissoc object :hide-in-viewer))) + + (update-page [page] + (let [destinations (->> page + :objects + (vals) + (mapcat :interactions) + (map :destination) + (set))] + (update page :objects update-vals (partial update-object destinations))))] + + (update data :pages-index update-vals update-page))) + (def migrations "A vector of all applicable migrations" [{:id 2 :migrate-up migrate-up-2} @@ -976,4 +996,5 @@ {:id 45 :migrate-up migrate-up-45} {:id 46 :migrate-up migrate-up-46} {:id 47 :migrate-up migrate-up-47} - {:id 48 :migrate-up migrate-up-48}]) + {:id 48 :migrate-up migrate-up-48} + {:id 49 :migrate-up migrate-up-49}]) diff --git a/common/src/app/common/logic/shapes.cljc b/common/src/app/common/logic/shapes.cljc index 29d58dad64..a48155f2e9 100644 --- a/common/src/app/common/logic/shapes.cljc +++ b/common/src/app/common/logic/shapes.cljc @@ -517,3 +517,16 @@ {:with-objects? true}) (pcb/reorder-grid-children [frame-id]))) (pcb/remove-objects empty-parents)))) + + +(defn change-show-in-viewer [shape hide?] + (cond-> (assoc shape :hide-in-viewer hide?) + ;; When a frame is no longer shown in view mode, it cannot have interactions + hide? + (dissoc :interactions))) + +(defn add-new-interaction [shape interaction] + (-> shape + (update :interactions ctsi/add-interaction interaction) + ;; When a interaction is created, the frame must be shown in view mode + (dissoc :hide-in-viewer))) diff --git a/common/src/app/common/test_helpers/shapes.cljc b/common/src/app/common/test_helpers/shapes.cljc index 28e8c5d2c0..3f9e1f544d 100644 --- a/common/src/app/common/test_helpers/shapes.cljc +++ b/common/src/app/common/test_helpers/shapes.cljc @@ -16,6 +16,7 @@ [app.common.types.pages-list :as ctpl] [app.common.types.shape :as cts] [app.common.types.shape-tree :as ctst] + [app.common.types.shape.interactions :as ctsi] [app.common.types.typographies-list :as cttl] [app.common.types.typography :as ctt])) @@ -99,3 +100,19 @@ [file label & {:keys [] :as params}] (let [typography (sample-typography label params)] (ctf/update-file-data file #(cttl/add-typography % typography)))) + +(defn add-interaction + [file origin-label dest-label] + (let [page (thf/current-page file) + origin (get-shape file origin-label) + dest (get-shape file dest-label) + interaction (-> ctsi/default-interaction + (ctsi/set-destination (:id dest)) + (assoc :position-relative-to (:id origin))) + interactions (ctsi/add-interaction (:interactions origin) interaction)] + (ctf/update-file-data + file + (fn [file-data] + (ctpl/update-page file-data + (:id page) + #(ctst/set-shape % (assoc origin :interactions interactions))))))) diff --git a/common/test/common_tests/logic/hide_in_viewer_test.cljc b/common/test/common_tests/logic/hide_in_viewer_test.cljc new file mode 100644 index 0000000000..051a4732ea --- /dev/null +++ b/common/test/common_tests/logic/hide_in_viewer_test.cljc @@ -0,0 +1,75 @@ +;; This Source Code Form is subject to the terms of the Mozilla Public +;; License, v. 2.0. If a copy of the MPL was not distributed with this +;; file, You can obtain one at http://mozilla.org/MPL/2.0/. +;; +;; Copyright (c) KALEIDOS INC + +(ns common-tests.logic.hide-in-viewer-test + (:require + [app.common.files.changes-builder :as pcb] + [app.common.logic.shapes :as cls] + [app.common.test-helpers.compositions :as tho] + [app.common.test-helpers.files :as thf] + [app.common.test-helpers.ids-map :as thi] + [app.common.test-helpers.shapes :as ths] + [app.common.types.shape.interactions :as ctsi] + [clojure.test :as t])) + +(t/use-fixtures :each thi/test-fixture) + + +(t/deftest test-remove-show-in-view-mode-delete-interactions + (let [;; ==== Setup + + file (-> (thf/sample-file :file1) + (tho/add-frame :frame-dest) + (tho/add-frame :frame-origin) + (ths/add-interaction :frame-origin :frame-dest)) + + frame-origin (ths/get-shape file :frame-origin) + + page (thf/current-page file) + + + ;; ==== Action + changes (-> (pcb/empty-changes nil (:id page)) + (pcb/with-objects (:objects page)) + (pcb/update-shapes [(:id frame-origin)] #(cls/change-show-in-viewer % true))) + file' (thf/apply-changes file changes) + + ;; ==== Get + frame-origin' (ths/get-shape file' :frame-origin)] + + ;; ==== Check + (t/is (some? (:interactions frame-origin))) + (t/is (nil? (:interactions frame-origin'))))) + + + +(t/deftest test-add-new-interaction-updates-show-in-view-mode + (let [;; ==== Setup + + file (-> (thf/sample-file :file1) + (tho/add-frame :frame-dest :hide-in-viewer true) + (tho/add-frame :frame-origin :hide-in-viewer true)) + frame-dest (ths/get-shape file :frame-dest) + frame-origin (ths/get-shape file :frame-origin) + + page (thf/current-page file) + + ;; ==== Action + new-interaction (-> ctsi/default-interaction + (ctsi/set-destination (:id frame-dest)) + (assoc :position-relative-to (:id frame-dest))) + + changes (-> (pcb/empty-changes nil (:id page)) + (pcb/with-objects (:objects page)) + (pcb/update-shapes [(:id frame-origin)] #(cls/add-new-interaction % new-interaction))) + file' (thf/apply-changes file changes) + + ;; ==== Get + frame-origin' (ths/get-shape file' :frame-origin)] + + ;; ==== Check + (t/is (true? (:hide-in-viewer frame-origin))) + (t/is (nil? (:hide-in-viewer frame-origin'))))) diff --git a/frontend/src/app/main/data/workspace/interactions.cljs b/frontend/src/app/main/data/workspace/interactions.cljs index 9727d9033a..a1f72393bf 100644 --- a/frontend/src/app/main/data/workspace/interactions.cljs +++ b/frontend/src/app/main/data/workspace/interactions.cljs @@ -11,6 +11,7 @@ [app.common.files.changes-builder :as pcb] [app.common.files.helpers :as cfh] [app.common.geom.point :as gpt] + [app.common.logic.shapes :as cls] [app.common.types.page :as ctp] [app.common.types.shape-tree :as ctst] [app.common.types.shape.interactions :as ctsi] @@ -131,8 +132,7 @@ (let [new-interaction (-> ctsi/default-interaction (ctsi/set-destination destination) (assoc :position-relative-to (:id shape)))] - (update shape :interactions - ctsi/add-interaction new-interaction))))) + (cls/add-new-interaction shape new-interaction))))) (when (and (not (connected-frame? objects (:id frame))) (nil? flow)) (rx/of (add-flow (:id frame)))))))))) diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/menus/measures.cljs b/frontend/src/app/main/ui/workspace/sidebar/options/menus/measures.cljs index 48b22e0878..8b40932b4b 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/options/menus/measures.cljs @@ -9,6 +9,7 @@ (:require [app.common.data :as d] [app.common.geom.shapes :as gsh] + [app.common.logic.shapes :as cls] [app.common.types.shape.layout :as ctl] [app.common.types.shape.radius :as ctsr] [app.main.constants :refer [size-presets]] @@ -325,16 +326,15 @@ (fn [event] (let [value (-> event dom/get-target dom/checked?) undo-id (js/Symbol)] - (do - (st/emit! (dwu/start-undo-transaction undo-id) - (dwsh/update-shapes ids (fn [shape] (assoc shape :hide-in-viewer (not value))))) + (st/emit! (dwu/start-undo-transaction undo-id) + (dwsh/update-shapes ids (fn [shape] (cls/change-show-in-viewer shape (not value))))) - (when-not value + (when-not value ;; when a frame is no longer shown in view mode, cannot have ;; interactions that navigate to it. - (apply st/emit! (map #(dwi/remove-all-interactions-nav-to %) ids))) + (apply st/emit! (map #(dwi/remove-all-interactions-nav-to %) ids))) - (st/emit! (dwu/commit-undo-transaction undo-id))))))] + (st/emit! (dwu/commit-undo-transaction undo-id)))))] (mf/use-layout-effect (mf/deps radius-mode @radius-multi?) From 6896a4e9f04993a01f8c2fedda3cdcdf5f732322 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Tue, 11 Jun 2024 10:51:38 +0200 Subject: [PATCH 106/476] :sparkles: Add minor improvements on how logout is handled The profile-id is now required on the body of logout request --- backend/src/app/rpc/commands/auth.clj | 15 ++++++++++++--- frontend/src/app/main/data/users.cljs | 14 +++++++++----- 2 files changed, 21 insertions(+), 8 deletions(-) diff --git a/backend/src/app/rpc/commands/auth.clj b/backend/src/app/rpc/commands/auth.clj index 4073de2c39..b38fa83b56 100644 --- a/backend/src/app/rpc/commands/auth.clj +++ b/backend/src/app/rpc/commands/auth.clj @@ -130,12 +130,21 @@ ;; ---- COMMAND: Logout +(def ^:private schema:logout + [:map {:title "logoug"} + [:profile-id {:optional true} ::sm/uuid]]) + (sv/defmethod ::logout "Clears the authentication cookie and logout the current session." {::rpc/auth false - ::doc/added "1.15"} - [cfg _] - (rph/with-transform {} (session/delete-fn cfg))) + ::doc/changes [["2.1" "Now requires profile-id passed in the body"]] + ::doc/added "1.0" + ::sm/params schema:logout} + [cfg params] + (if (= (:profile-id params) + (::rpc/profile-id params)) + (rph/with-transform {} (session/delete-fn cfg)) + {})) ;; ---- COMMAND: Recover Profile diff --git a/frontend/src/app/main/data/users.cljs b/frontend/src/app/main/data/users.cljs index e49925038b..e4f8c4d078 100644 --- a/frontend/src/app/main/data/users.cljs +++ b/frontend/src/app/main/data/users.cljs @@ -328,11 +328,15 @@ (-data [_] {}) ptk/WatchEvent - (watch [_ _ _] - (->> (rp/cmd! :logout) - (rx/delay-at-least 300) - (rx/catch (constantly (rx/of 1))) - (rx/map #(logged-out params))))))) + (watch [_ state _] + (let [profile-id (:profile-id state)] + (->> (rx/interval 500) + (rx/take 1) + (rx/mapcat (fn [_] + (->> (rp/cmd! :logout {:profile-id profile-id}) + (rx/delay-at-least 300) + (rx/catch (constantly (rx/of 1)))))) + (rx/map #(logged-out params)))))))) ;; --- Update Profile From c14f6aecf354fad02722796049b0d6dff35a90e3 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Tue, 11 Jun 2024 10:56:02 +0200 Subject: [PATCH 107/476] :paperclip: Update THANKYOU.md file --- THANKYOU.md | 1 + 1 file changed, 1 insertion(+) diff --git a/THANKYOU.md b/THANKYOU.md index 77a1483aab..17627df25b 100644 --- a/THANKYOU.md +++ b/THANKYOU.md @@ -7,6 +7,7 @@ We want to thank to the amazing people that help us! Thank you! You're the best! * [Shiraz Ali Khan](https://www.linkedin.com/in/shiraz-ali-khan-1ba508180/) * Vaibhav Shukla * Hassan Ahmed (Alias Xen Lee) +* Michal Biesiada (@mbiesiad) ## Internationalization * [00ff88](https://hosted.weblate.org/user/00ff88) From eba6f519533257b46f7329e2be2fb17f6fa21599 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Tue, 11 Jun 2024 10:56:45 +0200 Subject: [PATCH 108/476] :paperclip: Update THANKYOU.md file --- THANKYOU.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/THANKYOU.md b/THANKYOU.md index 17627df25b..8c075112b3 100644 --- a/THANKYOU.md +++ b/THANKYOU.md @@ -2,7 +2,11 @@ We want to thank to the amazing people that help us! Thank you! You're the best! +Feel free you make a PR updating this file if you miss you in the +list. + ## Security + * Husnain Iqbal (CEO OF ALPHA INFERNO PVT LTD) * [Shiraz Ali Khan](https://www.linkedin.com/in/shiraz-ali-khan-1ba508180/) * Vaibhav Shukla @@ -10,6 +14,7 @@ We want to thank to the amazing people that help us! Thank you! You're the best! * Michal Biesiada (@mbiesiad) ## Internationalization + * [00ff88](https://hosted.weblate.org/user/00ff88) * [AhmadHB](https://hosted.weblate.org/user/AhmadHB) * [Aimee](https://hosted.weblate.org/user/Aimee) @@ -91,6 +96,7 @@ We want to thank to the amazing people that help us! Thank you! You're the best! * [zcraber](https://hosted.weblate.org/user/zcraber) ## Libraries & templates + * systxema * plumilla * victor crespo From 0e0ceaa9bfd77331e4f08f4fa1897488ccd101aa Mon Sep 17 00:00:00 2001 From: Eva Marco Date: Mon, 10 Jun 2024 13:04:30 +0200 Subject: [PATCH 109/476] :bug: Fix move guides with board --- CHANGES.md | 1 + .../src/app/main/data/workspace/guides.cljs | 11 ++-- .../app/main/data/workspace/modifiers.cljs | 2 +- .../logic/frame_guides_test.cljs | 57 +++++++++++++++++++ 4 files changed, 65 insertions(+), 6 deletions(-) create mode 100644 frontend/test/frontend_tests/logic/frame_guides_test.cljs diff --git a/CHANGES.md b/CHANGES.md index bbb9796e0f..5999d5c163 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -19,6 +19,7 @@ ### :bug: Bugs fixed +- Fix guides move when board is moved by inputs [Taiga 8010](https://tree.taiga.io/project/penpot/issue/8010) - Fix clickable area of Penptot logo in the viewer [Taiga #7988](https://tree.taiga.io/project/penpot/issue/7988) - Fix constraints dropdown when selecting multiple shapes [Taiga #7686](https://tree.taiga.io/project/penpot/issue/7686) - Layout and scrollign fixes for the bottom palette [Taiga #7559](https://tree.taiga.io/project/penpot/issue/7559) diff --git a/frontend/src/app/main/data/workspace/guides.cljs b/frontend/src/app/main/data/workspace/guides.cljs index 4047873413..4e2895bb20 100644 --- a/frontend/src/app/main/data/workspace/guides.cljs +++ b/frontend/src/app/main/data/workspace/guides.cljs @@ -79,20 +79,21 @@ (rx/from (->> guides (mapv #(remove-guide %)))))))) (defmethod ptk/resolve ::move-frame-guides - [_ ids] + [_ args] (dm/assert! "expected a coll of uuids" - (every? uuid? ids)) + (every? uuid? (:ids args))) (ptk/reify ::move-frame-guides ptk/WatchEvent (watch [_ state _] - (let [objects (wsh/lookup-page-objects state) + (let [ids (:ids args) + object-modifiers (:modifiers args) + + objects (wsh/lookup-page-objects state) is-frame? (fn [id] (= :frame (get-in objects [id :type]))) frame-ids? (into #{} (filter is-frame?) ids) - object-modifiers (get state :workspace-modifiers) - build-move-event (fn [guide] (let [frame (get objects (:frame-id guide)) diff --git a/frontend/src/app/main/data/workspace/modifiers.cljs b/frontend/src/app/main/data/workspace/modifiers.cljs index ace8816c50..74e243af84 100644 --- a/frontend/src/app/main/data/workspace/modifiers.cljs +++ b/frontend/src/app/main/data/workspace/modifiers.cljs @@ -497,7 +497,7 @@ (if undo-transation? (rx/of (dwu/start-undo-transaction undo-id)) (rx/empty)) - (rx/of (ptk/event ::dwg/move-frame-guides ids-with-children) + (rx/of (ptk/event ::dwg/move-frame-guides {:ids ids-with-children :modifiers object-modifiers}) (ptk/event ::dwcm/move-frame-comment-threads ids-with-children) (dwsh/update-shapes ids diff --git a/frontend/test/frontend_tests/logic/frame_guides_test.cljs b/frontend/test/frontend_tests/logic/frame_guides_test.cljs new file mode 100644 index 0000000000..8d12179733 --- /dev/null +++ b/frontend/test/frontend_tests/logic/frame_guides_test.cljs @@ -0,0 +1,57 @@ +;; This Source Code Form is subject to the terms of the Mozilla Public +;; License, v. 2.0. If a copy of the MPL was not distributed with this +;; file, You can obtain one at http://mozilla.org/MPL/2.0/. +;; +;; Copyright (c) KALEIDOS INC +(ns frontend-tests.logic.frame-guides-test + (:require + [app.common.test-helpers.compositions :as ctho] + [app.common.test-helpers.files :as cthf] + [app.common.test-helpers.shapes :as cths] + [app.common.uuid :as uuid] + [app.main.data.workspace :as dw] + [app.main.data.workspace.guides :as-alias dwg] + [cljs.test :as t :include-macros true] + [frontend-tests.helpers.pages :as thp] + [frontend-tests.helpers.state :as ths])) + +(t/use-fixtures :each + {:before thp/reset-idmap!}) + + +(t/deftest test-remove-swap-slot-copy-paste-blue1-to-root + (t/async + done + (let [;; ==== Setup + file (-> (cthf/sample-file :file1) + (ctho/add-frame :frame1)) + store (ths/setup-store file) + frame1 (cths/get-shape file :frame1) + + guide {:axis :x + :frame-id (:id frame1) + :id (uuid/next) + :position 0} + + ;; ==== Action + events + [(dw/update-guides guide) + (dw/update-position (:id frame1) {:x 100})]] + + (ths/run-store + store done events + (fn [new-state] + (let [;; ==== Get + file' (ths/get-file-from-store new-state) + page' (cthf/current-page file') + + guide' (-> page' + :options + :guides + (vals) + (first))] + ;; ==== Check + ;; guide has moved + (t/is (= (:position guide') 100)))))))) + + From 40570849817a916bf5fa03de20f4c712f88b6fec Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Tue, 11 Jun 2024 11:54:17 +0200 Subject: [PATCH 110/476] :sparkles: Improve how email is passed on post-signup page --- frontend/src/app/main/ui/auth/register.cljs | 101 ++++++++++++-------- 1 file changed, 62 insertions(+), 39 deletions(-) diff --git a/frontend/src/app/main/ui/auth/register.cljs b/frontend/src/app/main/ui/auth/register.cljs index 91ed32601c..54da6e9764 100644 --- a/frontend/src/app/main/ui/auth/register.cljs +++ b/frontend/src/app/main/ui/auth/register.cljs @@ -20,6 +20,7 @@ [app.main.ui.icons :as i] [app.util.i18n :refer [tr tr-html]] [app.util.router :as rt] + [app.util.storage :as sto] [beicon.v2.core :as rx] [cljs.spec.alpha :as s] [rumext.v2 :as mf])) @@ -163,11 +164,7 @@ ;; --- PAGE: register validation -(defn- handle-register-error - [_form _data] - (st/emit! (msg/error (tr "errors.generic")))) - -(defn- handle-register-success +(defn- on-register-success [data] (cond (some? (:invitation-token data)) @@ -178,7 +175,9 @@ (st/emit! (du/login-from-register)) :else - (st/emit! (rt/nav :auth-register-success {} {:email (:email data)})))) + (do + (swap! sto/storage assoc ::email (:email data)) + (st/emit! (rt/nav :auth-register-success))))) (s/def ::accept-terms-and-privacy (s/and ::us/boolean true?)) (s/def ::accept-newsletter-subscription ::us/boolean) @@ -192,31 +191,63 @@ :opt-un [::accept-terms-and-privacy ::accept-newsletter-subscription]))) +(mf/defc terms-and-privacy + {::mf/props :obj + ::mf/private true} + [] + (let [terms-label + (mf/html + [:& tr-html + {:tag-name "div" + :label "auth.terms-and-privacy-agreement" + :params [cf/terms-of-service-uri cf/privacy-policy-uri]}])] + + [:div {:class (stl/css :fields-row :input-visible :accept-terms-and-privacy-wrapper)} + [:& fm/input {:name :accept-terms-and-privacy + :class (stl/css :checkbox-terms-and-privacy) + :type "checkbox" + :default-checked false + :label terms-label}]])) + (mf/defc register-validate-form + {::mf/props :obj} [{:keys [params on-success-callback]}] - (let [form (fm/use-form :spec ::register-validate-form - :validators [(fm/validate-not-empty :fullname (tr "auth.name.not-all-space")) - (fm/validate-length :fullname fm/max-length-allowed (tr "auth.name.too-long"))] + (let [validators (mf/with-memo [] + [(fm/validate-not-empty :fullname (tr "auth.name.not-all-space")) + (fm/validate-length :fullname fm/max-length-allowed (tr "auth.name.too-long"))]) + + form (fm/use-form :spec ::register-validate-form + :validators validators :initial params) + submitted? (mf/use-state false) - on-success (fn [p] - (if (nil? on-success-callback) - (handle-register-success p) - (on-success-callback (:email p)))) + on-success + (mf/use-fn + (mf/deps on-success-callback) + (fn [params] + (if (nil? on-success-callback) + (on-register-success params) + (on-success-callback (:email params))))) + + on-error + (mf/use-fn + (fn [_cause] + (st/emit! (msg/error (tr "errors.generic"))))) on-submit (mf/use-fn - (fn [form _event] + (fn [form _] (reset! submitted? true) (let [params (:clean-data @form)] (->> (rp/cmd! :register-profile params) (rx/finalize #(reset! submitted? false)) - (rx/subs! on-success - (partial handle-register-error form))))))] + (rx/subs! on-success on-error)))))] - [:& fm/form {:on-submit on-submit :form form + [:& fm/form {:on-submit on-submit + :form form :class (stl/css :register-validate-form)} + [:div {:class (stl/css :fields-row)} [:& fm/input {:name :fullname :label (tr "auth.fullname") @@ -225,18 +256,7 @@ :class (stl/css :form-field)}]] (when (contains? cf/flags :terms-and-privacy-checkbox) - (let [terms-label - (mf/html - [:& tr-html - {:tag-name "div" - :label "auth.terms-and-privacy-agreement" - :params [cf/terms-of-service-uri cf/privacy-policy-uri]}])] - [:div {:class (stl/css :fields-row :input-visible :accept-terms-and-privacy-wrapper)} - [:& fm/input {:name :accept-terms-and-privacy - :class (stl/css :checkbox-terms-and-privacy) - :type "checkbox" - :default-checked false - :label terms-label}]])) + [:& terms-and-privacy]) [:> fm/submit-button* {:label (tr "auth.register-submit") @@ -245,6 +265,7 @@ (mf/defc register-validate-page + {::mf/props :obj} [{:keys [params]}] [:div {:class (stl/css :auth-form-wrapper)} [:h1 {:class (stl/css :logo-container)} @@ -263,13 +284,15 @@ (tr "labels.go-back")]]]]) (mf/defc register-success-page - [{:keys [params]}] - [:div {:class (stl/css :auth-form-wrapper :register-success)} - [:h1 {:class (stl/css :logo-container)} - [:a {:href "#/" :title "Penpot" :class (stl/css :logo-btn)} i/logo]] - [:div {:class (stl/css :auth-title-wrapper)} - [:h2 {:class (stl/css :auth-title)} - (tr "auth.check-mail")] - [:div {:class (stl/css :notification-text)} (tr "auth.verification-email-sent")]] - [:div {:class (stl/css :notification-text-email)} (:email params "")] - [:div {:class (stl/css :notification-text)} (tr "auth.check-your-email")]]) + {::mf/props :obj} + [] + (let [email (::email @sto/storage)] + [:div {:class (stl/css :auth-form-wrapper :register-success)} + [:h1 {:class (stl/css :logo-container)} + [:a {:href "#/" :title "Penpot" :class (stl/css :logo-btn)} i/logo]] + [:div {:class (stl/css :auth-title-wrapper)} + [:h2 {:class (stl/css :auth-title)} + (tr "auth.check-mail")] + [:div {:class (stl/css :notification-text)} (tr "auth.verification-email-sent")]] + [:div {:class (stl/css :notification-text-email)} email] + [:div {:class (stl/css :notification-text)} (tr "auth.check-your-email")]])) From f88bb4e2049dbd0f7e2065a5dce1341f86a78a74 Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Mon, 10 Jun 2024 16:03:07 +0200 Subject: [PATCH 111/476] :bug: Fix problem moving layout to frame --- common/src/app/common/types/shape/layout.cljc | 29 +- .../data/workspace/get-file-7760.json | 49 +++ .../workspace/get-file-fragment-7760.json | 383 ++++++++++++++++++ frontend/playwright/ui/pages/WorkspacePage.js | 7 + .../playwright/ui/specs/design-tab.spec.js | 32 ++ .../playwright/ui/specs/workspace.spec.js | 1 - .../app/main/ui/components/radio_buttons.cljs | 2 +- frontend/src/app/main/ui/shapes/shape.cljs | 1 + .../sidebar/options/menus/layout_item.cljs | 4 +- 9 files changed, 492 insertions(+), 16 deletions(-) create mode 100644 frontend/playwright/data/workspace/get-file-7760.json create mode 100644 frontend/playwright/data/workspace/get-file-fragment-7760.json diff --git a/common/src/app/common/types/shape/layout.cljc b/common/src/app/common/types/shape/layout.cljc index 7f5e6e83a2..f791eaee13 100644 --- a/common/src/app/common/types/shape/layout.cljc +++ b/common/src/app/common/types/shape/layout.cljc @@ -604,18 +604,23 @@ (defn remove-layout-item-data [shape] - (dissoc shape - :layout-item-margin - :layout-item-margin-type - :layout-item-h-sizing - :layout-item-v-sizing - :layout-item-max-h - :layout-item-min-h - :layout-item-max-w - :layout-item-min-w - :layout-item-align-self - :layout-item-absolute - :layout-item-z-index)) + (-> shape + (dissoc :layout-item-margin + :layout-item-margin-type + :layout-item-max-h + :layout-item-min-h + :layout-item-max-w + :layout-item-min-w + :layout-item-align-self + :layout-item-absolute + :layout-item-z-index) + (cond-> (or (not (any-layout? shape)) + (= :fill (:layout-item-h-sizing shape))) + (dissoc :layout-item-h-sizing) + + (or (not (any-layout? shape)) + (= :fill (:layout-item-v-sizing shape))) + (dissoc :layout-item-v-sizing)))) (defn update-flex-scale [shape scale] diff --git a/frontend/playwright/data/workspace/get-file-7760.json b/frontend/playwright/data/workspace/get-file-7760.json new file mode 100644 index 0000000000..ff33a7a941 --- /dev/null +++ b/frontend/playwright/data/workspace/get-file-7760.json @@ -0,0 +1,49 @@ +{ + "~:features": { + "~#set": [ + "layout/grid", + "styles/v2", + "fdata/pointer-map", + "fdata/objects-map", + "components/v2", + "fdata/shape-data-type" + ] + }, + "~:permissions": { + "~:type": "~:membership", + "~:is-owner": true, + "~:is-admin": true, + "~:can-edit": true, + "~:can-read": true, + "~:is-logged": true + }, + "~:has-media-trimmed": false, + "~:comment-thread-seqn": 0, + "~:name": "New File 6", + "~:revn": 5, + "~:modified-at": "~m1718094617219", + "~:id": "~ucd90e028-326a-80b4-8004-7cdec16ffad5", + "~:is-shared": false, + "~:version": 48, + "~:project-id": "~u128636f9-5e78-812b-8004-350dd1a8869a", + "~:created-at": "~m1718094569923", + "~:data": { + "~:pages": [ + "~ucd90e028-326a-80b4-8004-7cdec16ffad6" + ], + "~:pages-index": { + "~ucd90e028-326a-80b4-8004-7cdec16ffad6": { + "~#penpot/pointer": [ + "~ucd90e028-326a-80b4-8004-7cdeefa23ece", + { + "~:created-at": "~m1718094617224" + } + ] + } + }, + "~:id": "~ucd90e028-326a-80b4-8004-7cdec16ffad5", + "~:options": { + "~:components-v2": true + } + } +} diff --git a/frontend/playwright/data/workspace/get-file-fragment-7760.json b/frontend/playwright/data/workspace/get-file-fragment-7760.json new file mode 100644 index 0000000000..0c8011553d --- /dev/null +++ b/frontend/playwright/data/workspace/get-file-fragment-7760.json @@ -0,0 +1,383 @@ +{ + "~:id": "~ucd90e028-326a-80b4-8004-7cdeefa23ece", + "~:file-id": "~ucd90e028-326a-80b4-8004-7cdec16ffad5", + "~:created-at": "~m1718094617214", + "~:content": { + "~:options": {}, + "~:objects": { + "~u00000000-0000-0000-0000-000000000000": { + "~#shape": { + "~:y": 0, + "~:hide-fill-on-export": false, + "~:transform": { + "~#matrix": { + "~:a": 1.0, + "~:b": 0.0, + "~:c": 0.0, + "~:d": 1.0, + "~:e": 0.0, + "~:f": 0.0 + } + }, + "~:rotation": 0, + "~:name": "Root Frame", + "~:width": 0.01, + "~:type": "~:frame", + "~:points": [ + { + "~#point": { + "~:x": 0, + "~:y": 0 + } + }, + { + "~#point": { + "~:x": 0.01, + "~:y": 0 + } + }, + { + "~#point": { + "~:x": 0.01, + "~:y": 0.01 + } + }, + { + "~#point": { + "~:x": 0, + "~:y": 0.01 + } + } + ], + "~:proportion-lock": false, + "~:transform-inverse": { + "~#matrix": { + "~:a": 1.0, + "~:b": 0.0, + "~:c": 0.0, + "~:d": 1.0, + "~:e": 0.0, + "~:f": 0.0 + } + }, + "~:id": "~u00000000-0000-0000-0000-000000000000", + "~:parent-id": "~u00000000-0000-0000-0000-000000000000", + "~:frame-id": "~u00000000-0000-0000-0000-000000000000", + "~:strokes": [], + "~:x": 0, + "~:proportion": 1.0, + "~:selrect": { + "~#rect": { + "~:x": 0, + "~:y": 0, + "~:width": 0.01, + "~:height": 0.01, + "~:x1": 0, + "~:y1": 0, + "~:x2": 0.01, + "~:y2": 0.01 + } + }, + "~:fills": [ + { + "~:fill-color": "#FFFFFF", + "~:fill-opacity": 1 + } + ], + "~:flip-x": null, + "~:height": 0.01, + "~:flip-y": null, + "~:shapes": [ + "~u86087f92-9a17-8067-8004-7cdec45bee43", + "~u86087f92-9a17-8067-8004-7cded1cbe70e" + ] + } + }, + "~u86087f92-9a17-8067-8004-7cdec45bee43": { + "~#shape": { + "~:y": 341, + "~:hide-fill-on-export": false, + "~:layout-gap-type": "~:multiple", + "~:layout-padding": { + "~:p1": 34, + "~:p2": 36, + "~:p3": 34, + "~:p4": 36 + }, + "~:transform": { + "~#matrix": { + "~:a": 1.0, + "~:b": 0.0, + "~:c": 0.0, + "~:d": 1.0, + "~:e": 0.0, + "~:f": 0.0 + } + }, + "~:rotation": 0, + "~:layout-wrap-type": "~:nowrap", + "~:grow-type": "~:fixed", + "~:layout": "~:flex", + "~:hide-in-viewer": false, + "~:name": "Flex Board", + "~:layout-align-items": "~:start", + "~:width": 176, + "~:layout-padding-type": "~:simple", + "~:type": "~:frame", + "~:points": [ + { + "~#point": { + "~:x": 217, + "~:y": 341 + } + }, + { + "~#point": { + "~:x": 393, + "~:y": 341 + } + }, + { + "~#point": { + "~:x": 393, + "~:y": 511 + } + }, + { + "~#point": { + "~:x": 217, + "~:y": 511 + } + } + ], + "~:layout-item-h-sizing": "~:auto", + "~:proportion-lock": false, + "~:layout-gap": { + "~:row-gap": 0, + "~:column-gap": 0 + }, + "~:transform-inverse": { + "~#matrix": { + "~:a": 1.0, + "~:b": 0.0, + "~:c": 0.0, + "~:d": 1.0, + "~:e": 0.0, + "~:f": 0.0 + } + }, + "~:layout-item-v-sizing": "~:auto", + "~:layout-justify-content": "~:start", + "~:id": "~u86087f92-9a17-8067-8004-7cdec45bee43", + "~:parent-id": "~u00000000-0000-0000-0000-000000000000", + "~:layout-flex-dir": "~:row", + "~:layout-align-content": "~:stretch", + "~:frame-id": "~u00000000-0000-0000-0000-000000000000", + "~:strokes": [], + "~:x": 217, + "~:proportion": 1, + "~:selrect": { + "~#rect": { + "~:x": 217, + "~:y": 341, + "~:width": 176, + "~:height": 170, + "~:x1": 217, + "~:y1": 341, + "~:x2": 393, + "~:y2": 511 + } + }, + "~:fills": [ + { + "~:fill-color": "#FFFFFF", + "~:fill-opacity": 1 + } + ], + "~:flip-x": null, + "~:height": 170, + "~:flip-y": null, + "~:shapes": [ + "~u86087f92-9a17-8067-8004-7cdec98dfa7f" + ] + } + }, + "~u86087f92-9a17-8067-8004-7cdec98dfa7f": { + "~#shape": { + "~:y": 375, + "~:rx": 0, + "~:transform": { + "~#matrix": { + "~:a": 1.0, + "~:b": 0.0, + "~:c": 0.0, + "~:d": 1.0, + "~:e": 0.0, + "~:f": 0.0 + } + }, + "~:rotation": 0, + "~:grow-type": "~:fixed", + "~:hide-in-viewer": false, + "~:name": "Rectangle", + "~:width": 104, + "~:type": "~:rect", + "~:points": [ + { + "~#point": { + "~:x": 253, + "~:y": 375 + } + }, + { + "~#point": { + "~:x": 357, + "~:y": 375 + } + }, + { + "~#point": { + "~:x": 357, + "~:y": 477 + } + }, + { + "~#point": { + "~:x": 253, + "~:y": 477 + } + } + ], + "~:proportion-lock": false, + "~:transform-inverse": { + "~#matrix": { + "~:a": 1.0, + "~:b": 0.0, + "~:c": 0.0, + "~:d": 1.0, + "~:e": 0.0, + "~:f": 0.0 + } + }, + "~:id": "~u86087f92-9a17-8067-8004-7cdec98dfa7f", + "~:parent-id": "~u86087f92-9a17-8067-8004-7cdec45bee43", + "~:frame-id": "~u86087f92-9a17-8067-8004-7cdec45bee43", + "~:strokes": [], + "~:x": 253, + "~:proportion": 1, + "~:selrect": { + "~#rect": { + "~:x": 253, + "~:y": 375, + "~:width": 104, + "~:height": 102, + "~:x1": 253, + "~:y1": 375, + "~:x2": 357, + "~:y2": 477 + } + }, + "~:fills": [ + { + "~:fill-color": "#B1B2B5", + "~:fill-opacity": 1 + } + ], + "~:flip-x": null, + "~:ry": 0, + "~:height": 102, + "~:flip-y": null + } + }, + "~u86087f92-9a17-8067-8004-7cded1cbe70e": { + "~#shape": { + "~:y": 300, + "~:hide-fill-on-export": false, + "~:transform": { + "~#matrix": { + "~:a": 1.0, + "~:b": 0.0, + "~:c": 0.0, + "~:d": 1.0, + "~:e": 0.0, + "~:f": 0.0 + } + }, + "~:rotation": 0, + "~:grow-type": "~:fixed", + "~:hide-in-viewer": false, + "~:name": "Container Board", + "~:width": 434, + "~:type": "~:frame", + "~:points": [ + { + "~#point": { + "~:x": 689, + "~:y": 300 + } + }, + { + "~#point": { + "~:x": 1123, + "~:y": 300 + } + }, + { + "~#point": { + "~:x": 1123, + "~:y": 741 + } + }, + { + "~#point": { + "~:x": 689, + "~:y": 741 + } + } + ], + "~:proportion-lock": false, + "~:transform-inverse": { + "~#matrix": { + "~:a": 1.0, + "~:b": 0.0, + "~:c": 0.0, + "~:d": 1.0, + "~:e": 0.0, + "~:f": 0.0 + } + }, + "~:id": "~u86087f92-9a17-8067-8004-7cded1cbe70e", + "~:parent-id": "~u00000000-0000-0000-0000-000000000000", + "~:frame-id": "~u00000000-0000-0000-0000-000000000000", + "~:strokes": [], + "~:x": 689, + "~:proportion": 1, + "~:selrect": { + "~#rect": { + "~:x": 689, + "~:y": 300, + "~:width": 434, + "~:height": 441, + "~:x1": 689, + "~:y1": 300, + "~:x2": 1123, + "~:y2": 741 + } + }, + "~:fills": [ + { + "~:fill-color": "#FFFFFF", + "~:fill-opacity": 1 + } + ], + "~:flip-x": null, + "~:height": 441, + "~:flip-y": null, + "~:shapes": [] + } + } + }, + "~:id": "~ucd90e028-326a-80b4-8004-7cdec16ffad6", + "~:name": "Page 1" + } +} diff --git a/frontend/playwright/ui/pages/WorkspacePage.js b/frontend/playwright/ui/pages/WorkspacePage.js index 72e0fa9fd7..4f045344b7 100644 --- a/frontend/playwright/ui/pages/WorkspacePage.js +++ b/frontend/playwright/ui/pages/WorkspacePage.js @@ -102,6 +102,13 @@ export class WorkspacePage extends BaseWebSocketPage { await this.page.mouse.up(); } + async moveSelectionToShape(name) { + await this.page.locator('rect.viewport-selrect').hover(); + await this.page.mouse.down(); + await this.viewport.getByTestId(name).first().hover({ force: true }); + await this.page.mouse.up(); + } + async clickLeafLayer(name, clickOptions = {}) { const layer = this.layers.getByText(name); await layer.click(clickOptions); diff --git a/frontend/playwright/ui/specs/design-tab.spec.js b/frontend/playwright/ui/specs/design-tab.spec.js index 0d637bacef..7dc23cd1fb 100644 --- a/frontend/playwright/ui/specs/design-tab.spec.js +++ b/frontend/playwright/ui/specs/design-tab.spec.js @@ -44,3 +44,35 @@ test.describe("Constraints", () => { expect(false); }); }); + +test("BUG 7760 - Layout losing properties when changing parents", async ({ page }) => { + const workspacePage = new WorkspacePage(page); + await workspacePage.setupEmptyFile(); + await workspacePage.mockRPC(/get\-file\?/, "workspace/get-file-7760.json"); + await workspacePage.mockRPC( + "get-file-fragment?file-id=*&fragment-id=*", + "workspace/get-file-fragment-7760.json", + ); + await workspacePage.mockRPC("update-file?id=*", "workspace/update-file-create-rect.json"); + + await workspacePage.goToWorkspace({ + fileId: "cd90e028-326a-80b4-8004-7cdec16ffad5", + pageId: "cd90e028-326a-80b4-8004-7cdec16ffad6", + }); + + // Select the flex board and drag it into the other container board + await workspacePage.clickLeafLayer("Flex Board"); + + // Move the first board into the second + const hAuto = await workspacePage.page.getByTitle("Fit content (Horizontal)"); + const vAuto = await workspacePage.page.getByTitle("Fit content (Vertical)"); + + await expect(vAuto.locator("input")).toBeChecked(); + await expect(hAuto.locator("input")).toBeChecked(); + + await workspacePage.moveSelectionToShape("Container Board"); + + // The first board properties should still be auto width/height + await expect(vAuto.locator("input")).toBeChecked(); + await expect(hAuto.locator("input")).toBeChecked(); +}); diff --git a/frontend/playwright/ui/specs/workspace.spec.js b/frontend/playwright/ui/specs/workspace.spec.js index f391949b4f..8f5e5c6094 100644 --- a/frontend/playwright/ui/specs/workspace.spec.js +++ b/frontend/playwright/ui/specs/workspace.spec.js @@ -67,7 +67,6 @@ test("User adds a library and its automatically selected in the color palette", await expect(workspacePage.palette.getByText('There are no color styles in your library yet')).toBeVisible(); }); - test("User makes a group", async ({ page }) => { const workspacePage = new WorkspacePage(page); await workspacePage.setupEmptyFile(); diff --git a/frontend/src/app/main/ui/components/radio_buttons.cljs b/frontend/src/app/main/ui/components/radio_buttons.cljs index 0d7cce2948..dbaffebb58 100644 --- a/frontend/src/app/main/ui/components/radio_buttons.cljs +++ b/frontend/src/app/main/ui/components/radio_buttons.cljs @@ -54,7 +54,7 @@ :name name :disabled disabled :value value - :checked checked?}]])) + :default-checked checked?}]])) (mf/defc radio-buttons {::mf/props :obj} diff --git a/frontend/src/app/main/ui/shapes/shape.cljs b/frontend/src/app/main/ui/shapes/shape.cljs index e4082b89c5..c344ec857d 100644 --- a/frontend/src/app/main/ui/shapes/shape.cljs +++ b/frontend/src/app/main/ui/shapes/shape.cljs @@ -96,6 +96,7 @@ (obj/unset! "disable-shadows?") (obj/set! "ref" ref) (obj/set! "id" (dm/fmt "shape-%" shape-id)) + (obj/set! "data-testid" (:name shape)) ;; TODO: This is added for backward compatibility. (cond-> (and (cfh/text-shape? shape) (empty? (:position-data shape))) diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs b/frontend/src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs index 5092d025bf..681e879f3a 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs @@ -250,7 +250,7 @@ [:& radio-button {:value "auto" :icon i/hug-content - :title "Fit content" + :title "Fit content (Horizontal)" :id "behaviour-h-auto"}])]]) (mf/defc element-behaviour-vertical @@ -288,7 +288,7 @@ {:value "auto" :icon i/hug-content :icon-class (stl/css :rotated) - :title "Fit content" + :title "Fit content (Vertical)" :id "behaviour-v-auto"}])]]) (mf/defc align-self-row From a90baa91c7f590a4e223a3b8e648116d7b64afb8 Mon Sep 17 00:00:00 2001 From: Eva Marco Date: Fri, 7 Jun 2024 13:35:04 +0200 Subject: [PATCH 112/476] :sparkles: Add integration test to the onboarding process --- frontend/playwright/ui/pages/DashboardPage.js | 5 --- .../playwright/ui/pages/OnboardingPage.js | 45 +++++++++++++++++++ .../playwright/ui/specs/dashboard.spec.js | 5 +++ .../playwright/ui/specs/onboarding.spec.js | 32 +++++++++++++ 4 files changed, 82 insertions(+), 5 deletions(-) create mode 100644 frontend/playwright/ui/pages/OnboardingPage.js create mode 100644 frontend/playwright/ui/specs/onboarding.spec.js diff --git a/frontend/playwright/ui/pages/DashboardPage.js b/frontend/playwright/ui/pages/DashboardPage.js index 285e47d95e..e83c62dd97 100644 --- a/frontend/playwright/ui/pages/DashboardPage.js +++ b/frontend/playwright/ui/pages/DashboardPage.js @@ -4,11 +4,6 @@ export class DashboardPage extends BaseWebSocketPage { static async init(page) { await BaseWebSocketPage.initWebSockets(page); - await BaseWebSocketPage.mockRPC( - page, - "get-profile", - "logged-in-user/get-profile-logged-in-no-onboarding.json", - ); await BaseWebSocketPage.mockRPC(page, "get-teams", "logged-in-user/get-teams-default.json"); await BaseWebSocketPage.mockRPC( page, diff --git a/frontend/playwright/ui/pages/OnboardingPage.js b/frontend/playwright/ui/pages/OnboardingPage.js new file mode 100644 index 0000000000..0fe68e78a8 --- /dev/null +++ b/frontend/playwright/ui/pages/OnboardingPage.js @@ -0,0 +1,45 @@ +import { BaseWebSocketPage } from "./BaseWebSocketPage"; + +export class OnboardingPage extends BaseWebSocketPage { + constructor(page) { + super(page); + this.submitButton = page.getByRole("Button",{ name: "Next" }) + } + + async fillOnboardingInputsStep1() { + await this.page.getByText('Personal').click(); + await this.page.getByText('Select option').click(); + await this.page.getByText('Testing before self-hosting').click(); + + await this.submitButton.click(); + } + + async fillOnboardingInputsStep2() { + await this.page.getByText('Figma').click(); + + await this.submitButton.click(); + } + + async fillOnboardingInputsStep3() { + await this.page.getByText('Select option').first().click(); + await this.page.getByText('Product Managment').click(); + await this.page.getByText('Select option').first().click(); + await this.page.getByText('Director').click(); + await this.page.getByText('Select option').click(); + await this.page.getByText('11-30').click(); + + await this.submitButton.click(); + } + + async fillOnboardingInputsStep4() { + await this.page.getByText('Other').click(); + await this.page.getByPlaceholder('Other (specify)').fill("Another"); + await this.submitButton.click(); + } + + async fillOnboardingInputsStep5() { + await this.page.getByText('Event').click(); + } +} + +export default OnboardingPage; diff --git a/frontend/playwright/ui/specs/dashboard.spec.js b/frontend/playwright/ui/specs/dashboard.spec.js index 145c1321a1..23e71efade 100644 --- a/frontend/playwright/ui/specs/dashboard.spec.js +++ b/frontend/playwright/ui/specs/dashboard.spec.js @@ -3,6 +3,11 @@ import DashboardPage from "../pages/DashboardPage"; test.beforeEach(async ({ page }) => { await DashboardPage.init(page); + await DashboardPage.mockRPC( + page, + "get-profile", + "logged-in-user/get-profile-logged-in-no-onboarding.json", + ); }); test("Dashboad page has title ", async ({ page }) => { diff --git a/frontend/playwright/ui/specs/onboarding.spec.js b/frontend/playwright/ui/specs/onboarding.spec.js new file mode 100644 index 0000000000..39efa967c0 --- /dev/null +++ b/frontend/playwright/ui/specs/onboarding.spec.js @@ -0,0 +1,32 @@ +import { test, expect } from "@playwright/test"; +import DashboardPage from "../pages/DashboardPage"; + import OnboardingPage from "../pages/OnboardingPage" + +test.beforeEach(async ({ page }) => { + await DashboardPage.init(page); + await DashboardPage.mockRPC(page, "get-profile", "logged-in-user/get-profile-logged-in.json"); +}); + + +test("User can complete the onboarding", async ({ page }) => { + const dashboardPage = new DashboardPage(page); + const onboardingPage = new OnboardingPage(page); + + await dashboardPage.goToWorkspace(); + await expect(page.getByRole("heading", { name: "Help us get to know you" })).toBeVisible(); + + await onboardingPage.fillOnboardingInputsStep1(); + await expect(page.getByRole("heading", { name: "Which one of these tools do" })).toBeVisible(); + + await onboardingPage.fillOnboardingInputsStep2(); + await expect(page.getByRole("heading", { name: "Tell us about your job" })).toBeVisible(); + + await onboardingPage.fillOnboardingInputsStep3(); + await expect(page.getByRole("heading", { name: "Where would you like to get" })).toBeVisible(); + + await onboardingPage.fillOnboardingInputsStep4(); + await expect(page.getByRole("heading", { name: "How did you hear about Penpot?" })).toBeVisible(); + + await onboardingPage.fillOnboardingInputsStep5(); + await expect(page.getByRole("button", { name: "Start" })).toBeEnabled(); +}); From 04f341ce1dcb7df41674e5944eccfd75cf5b702b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bel=C3=A9n=20Albeza?= Date: Tue, 11 Jun 2024 13:37:32 +0200 Subject: [PATCH 113/476] :bug: Fix layers tree not expanding towards the bottom edge --- CHANGES.md | 3 ++- frontend/playwright/ui/pages/WorkspacePage.js | 24 +++++++++++-------- frontend/playwright/ui/specs/sidebar.spec.js | 23 ++++++++++++++++++ .../playwright/ui/specs/workspace.spec.js | 17 ++++++++----- .../app/main/ui/components/tab_container.cljs | 1 - .../src/app/main/ui/workspace/sidebar.cljs | 9 ++++--- .../src/app/main/ui/workspace/sidebar.scss | 2 -- .../app/main/ui/workspace/sidebar/layers.cljs | 2 +- .../main/ui/workspace/sidebar/sitemap.cljs | 1 - 9 files changed, 57 insertions(+), 25 deletions(-) create mode 100644 frontend/playwright/ui/specs/sidebar.spec.js diff --git a/CHANGES.md b/CHANGES.md index 5999d5c163..beeea77a42 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -19,7 +19,8 @@ ### :bug: Bugs fixed -- Fix guides move when board is moved by inputs [Taiga 8010](https://tree.taiga.io/project/penpot/issue/8010) +- Fix layer tree not expanding to the bottom edge [Taiga #7466](https://tree.taiga.io/project/penpot/issue/7466) +- Fix guides move when board is moved by inputs [Taiga #8010](https://tree.taiga.io/project/penpot/issue/8010) - Fix clickable area of Penptot logo in the viewer [Taiga #7988](https://tree.taiga.io/project/penpot/issue/7988) - Fix constraints dropdown when selecting multiple shapes [Taiga #7686](https://tree.taiga.io/project/penpot/issue/7686) - Layout and scrollign fixes for the bottom palette [Taiga #7559](https://tree.taiga.io/project/penpot/issue/7559) diff --git a/frontend/playwright/ui/pages/WorkspacePage.js b/frontend/playwright/ui/pages/WorkspacePage.js index 72e0fa9fd7..e2c7b11d81 100644 --- a/frontend/playwright/ui/pages/WorkspacePage.js +++ b/frontend/playwright/ui/pages/WorkspacePage.js @@ -45,10 +45,9 @@ export class WorkspacePage extends BaseWebSocketPage { this.rootShape = page.locator(`[id="shape-00000000-0000-0000-0000-000000000000"]`); this.rectShapeButton = page.getByRole("button", { name: "Rectangle (R)" }); this.colorpicker = page.getByTestId("colorpicker"); - this.layers = page.getByTestId("layers"); + this.layers = page.getByTestId("layer-tree"); this.palette = page.getByTestId("palette"); - this.assets = page.getByTestId("assets"); - this.libraries = page.getByTestId("libraries"); + this.sidebar = page.getByTestId("left-sidebar"); this.closeLibraries = page.getByTestId("close-libraries"); this.librariesModal = page.getByTestId("libraries-modal"); } @@ -102,6 +101,11 @@ export class WorkspacePage extends BaseWebSocketPage { await this.page.mouse.up(); } + async togglePages() { + const pagesToggle = this.page.getByText("Pages"); + await pagesToggle.click(); + } + async clickLeafLayer(name, clickOptions = {}) { const layer = this.layers.getByText(name); await layer.click(clickOptions); @@ -113,15 +117,17 @@ export class WorkspacePage extends BaseWebSocketPage { } async expectSelectedLayer(name) { - await expect(this.layers.getByTestId("layer-row").filter({ has: this.page.getByText(name) })).toHaveClass(/selected/); + await expect(this.layers.getByTestId("layer-row").filter({ has: this.page.getByText(name) })).toHaveClass( + /selected/, + ); } async clickAssets(clickOptions = {}) { - await this.assets.click(clickOptions); + await this.sidebar.getByText("Assets").click(clickOptions); } async clickLibraries(clickOptions = {}) { - await this.libraries.click(clickOptions); + await this.sidebar.getByText("Libraries").click(clickOptions); } async clickLibrary(name, clickOptions = {}) { @@ -129,7 +135,7 @@ export class WorkspacePage extends BaseWebSocketPage { .getByTestId("library-item") .filter({ hasText: name }) .getByRole("button") - .click(clickOptions); + .click(clickOptions); } async clickCloseLibraries(clickOptions = {}) { @@ -137,8 +143,6 @@ export class WorkspacePage extends BaseWebSocketPage { } async clickColorPalette(clickOptions = {}) { - await this.palette - .getByRole("button", { name: "Color Palette (Alt+P)" }) - .click(clickOptions); + await this.palette.getByRole("button", { name: "Color Palette (Alt+P)" }).click(clickOptions); } } diff --git a/frontend/playwright/ui/specs/sidebar.spec.js b/frontend/playwright/ui/specs/sidebar.spec.js new file mode 100644 index 0000000000..f88fd613c7 --- /dev/null +++ b/frontend/playwright/ui/specs/sidebar.spec.js @@ -0,0 +1,23 @@ +import { test, expect } from "@playwright/test"; +import { WorkspacePage } from "../pages/WorkspacePage"; + +test.beforeEach(async ({ page }) => { + await WorkspacePage.init(page); +}); + +test.describe("Layers tab", () => { + test("BUG 7466 - Layers tab height extends to the bottom when 'Pages' is collapsed", async ({ page }) => { + const workspace = new WorkspacePage(page); + await workspace.setupEmptyFile(); + + await workspace.goToWorkspace(); + + const { height: heightExpanded } = await workspace.layers.boundingBox(); + await workspace.togglePages(); + const { height: heightCollapsed } = await workspace.layers.boundingBox(); + + console.log(heightExpanded, heightCollapsed); + + expect(heightExpanded > heightCollapsed); + }); +}); diff --git a/frontend/playwright/ui/specs/workspace.spec.js b/frontend/playwright/ui/specs/workspace.spec.js index f391949b4f..c0d495b7e0 100644 --- a/frontend/playwright/ui/specs/workspace.spec.js +++ b/frontend/playwright/ui/specs/workspace.spec.js @@ -44,8 +44,11 @@ test("User adds a library and its automatically selected in the color palette", await workspacePage.setupEmptyFile(); await workspacePage.mockRPC("link-file-to-library", "workspace/link-file-to-library.json"); await workspacePage.mockRPC("unlink-file-from-library", "workspace/unlink-file-from-library.json"); - await workspacePage.mockRPC("get-team-shared-files?team-id=*", "workspace/get-team-shared-libraries-non-empty.json"); - + await workspacePage.mockRPC( + "get-team-shared-files?team-id=*", + "workspace/get-team-shared-libraries-non-empty.json", + ); + await workspacePage.goToWorkspace(); // Add Testing library 1 @@ -54,17 +57,19 @@ test("User adds a library and its automatically selected in the color palette", // Now the get-file call should return a library await workspacePage.mockRPC(/get\-file\?/, "workspace/get-file-library.json"); await workspacePage.clickLibraries(); - await workspacePage.clickLibrary("Testing library 1") - await workspacePage.clickCloseLibraries(); + await workspacePage.clickLibrary("Testing library 1"); + await workspacePage.clickCloseLibraries(); await expect(workspacePage.palette.getByRole("button", { name: "test-color-187cd5" })).toBeVisible(); // Remove Testing library 1 await workspacePage.clickLibraries(); - await workspacePage.clickLibrary("Testing library 1") + await workspacePage.clickLibrary("Testing library 1"); await workspacePage.clickCloseLibraries(); - await expect(workspacePage.palette.getByText('There are no color styles in your library yet')).toBeVisible(); + await expect( + workspacePage.palette.getByText("There are no color styles in your library yet"), + ).toBeVisible(); }); diff --git a/frontend/src/app/main/ui/components/tab_container.cljs b/frontend/src/app/main/ui/components/tab_container.cljs index 1e3b99079c..20c79a417f 100644 --- a/frontend/src/app/main/ui/components/tab_container.cljs +++ b/frontend/src/app/main/ui/components/tab_container.cljs @@ -59,7 +59,6 @@ [:div {:key (str/concat "tab-" sid) :title tooltip :data-id sid - :data-testid sid :on-click on-click :class (stl/css-case :tab-container-tab-title true diff --git a/frontend/src/app/main/ui/workspace/sidebar.cljs b/frontend/src/app/main/ui/workspace/sidebar.cljs index d648420755..1aaf88c7b0 100644 --- a/frontend/src/app/main/ui/workspace/sidebar.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar.cljs @@ -38,8 +38,7 @@ (let [options-mode (mf/deref refs/options-mode-global) mode-inspect? (= options-mode :inspect) project (mf/deref refs/workspace-project) - show-pages? (mf/use-state true) - toggle-pages (mf/use-callback #(reset! show-pages? not)) + section (cond (or mode-inspect? (contains? layout :layers)) :layers (contains? layout :assets) :assets) @@ -50,9 +49,12 @@ {on-pointer-down :on-pointer-down on-lost-pointer-capture :on-lost-pointer-capture on-pointer-move :on-pointer-move parent-ref :parent-ref size :size} (use-resize-hook :left-sidebar 275 275 500 :x false :left) - {on-pointer-down-pages :on-pointer-down on-lost-pointer-capture-pages :on-lost-pointer-capture on-pointer-move-pages :on-pointer-move size-pages :size} + {on-pointer-down-pages :on-pointer-down on-lost-pointer-capture-pages :on-lost-pointer-capture on-pointer-move-pages :on-pointer-move size-pages-opened :size} (use-resize-hook :sitemap 200 38 400 :y false nil) + show-pages? (mf/use-state true) + toggle-pages (mf/use-callback #(reset! show-pages? not)) + size-pages (mf/use-memo (mf/deps show-pages? size-pages-opened) (fn [] (if @show-pages? size-pages-opened 32))) handle-collapse (mf/use-fn #(st/emit! (dw/toggle-layout-flag :collapse-left-sidebar))) @@ -63,6 +65,7 @@ [:& (mf/provider muc/sidebar) {:value :left} [:aside {:ref parent-ref :id "left-sidebar-aside" + :data-testid "left-sidebar" :data-size (str size) :class (stl/css-case :left-settings-bar true :global/two-row (<= size 300) diff --git a/frontend/src/app/main/ui/workspace/sidebar.scss b/frontend/src/app/main/ui/workspace/sidebar.scss index 192a8416e6..f70e37e5e0 100644 --- a/frontend/src/app/main/ui/workspace/sidebar.scss +++ b/frontend/src/app/main/ui/workspace/sidebar.scss @@ -84,10 +84,8 @@ $width-settings-bar-max: $s-500; .resize-area-horiz { position: absolute; - // top: calc($s-88 + var(--height, 200px)); left: 0; width: 100%; - // height: $s-8; border-bottom: $s-2 solid var(--resize-area-border-color); cursor: ns-resize; } diff --git a/frontend/src/app/main/ui/workspace/sidebar/layers.cljs b/frontend/src/app/main/ui/workspace/sidebar/layers.cljs index 737f80fddd..ec072f367e 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/layers.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/layers.cljs @@ -510,7 +510,7 @@ (mf/use-fn #(st/emit! (dw/toggle-focus-mode)))] - [:div#layers {:class (stl/css :layers) :data-testid "layers"} + [:div#layers {:class (stl/css :layers) :data-testid "layer-tree"} (if (d/not-empty? focus) [:div {:class (stl/css :tool-window-bar)} [:button {:class (stl/css :focus-title) diff --git a/frontend/src/app/main/ui/workspace/sidebar/sitemap.cljs b/frontend/src/app/main/ui/workspace/sidebar/sitemap.cljs index 39064f7c7a..1d9cc9e4d5 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/sitemap.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/sitemap.cljs @@ -205,7 +205,6 @@ (fn [event] (st/emit! (dw/create-page {:file-id file-id :project-id project-id})) (-> event dom/get-current-target dom/blur!))) - size (if show-pages? size 32) read-only? (mf/use-ctx ctx/workspace-read-only?)] [:div {:class (stl/css :sitemap) From 7719cd8d0b6cdd182b1ba649f02d9b9f5ec29e30 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bel=C3=A9n=20Albeza?= Date: Tue, 11 Jun 2024 15:43:28 +0200 Subject: [PATCH 114/476] :recycle: Move libraries test to sidebar spec file --- frontend/playwright/ui/specs/sidebar.spec.js | 35 ++++++++++++++++ .../playwright/ui/specs/workspace.spec.js | 40 ++----------------- 2 files changed, 38 insertions(+), 37 deletions(-) diff --git a/frontend/playwright/ui/specs/sidebar.spec.js b/frontend/playwright/ui/specs/sidebar.spec.js index f88fd613c7..9333749f85 100644 --- a/frontend/playwright/ui/specs/sidebar.spec.js +++ b/frontend/playwright/ui/specs/sidebar.spec.js @@ -21,3 +21,38 @@ test.describe("Layers tab", () => { expect(heightExpanded > heightCollapsed); }); }); + +test.describe("Assets tab", () => { + test("User adds a library and its automatically selected in the color palette", async ({ page }) => { + const workspacePage = new WorkspacePage(page); + await workspacePage.setupEmptyFile(); + await workspacePage.mockRPC("link-file-to-library", "workspace/link-file-to-library.json"); + await workspacePage.mockRPC("unlink-file-from-library", "workspace/unlink-file-from-library.json"); + await workspacePage.mockRPC( + "get-team-shared-files?team-id=*", + "workspace/get-team-shared-libraries-non-empty.json", + ); + + await workspacePage.goToWorkspace(); + + // Add Testing library 1 + await workspacePage.clickColorPalette(); + await workspacePage.clickAssets(); + // Now the get-file call should return a library + await workspacePage.mockRPC(/get\-file\?/, "workspace/get-file-library.json"); + await workspacePage.clickLibraries(); + await workspacePage.clickLibrary("Testing library 1"); + await workspacePage.clickCloseLibraries(); + + await expect(workspacePage.palette.getByRole("button", { name: "test-color-187cd5" })).toBeVisible(); + + // Remove Testing library 1 + await workspacePage.clickLibraries(); + await workspacePage.clickLibrary("Testing library 1"); + await workspacePage.clickCloseLibraries(); + + await expect( + workspacePage.palette.getByText("There are no color styles in your library yet"), + ).toBeVisible(); + }); +}); diff --git a/frontend/playwright/ui/specs/workspace.spec.js b/frontend/playwright/ui/specs/workspace.spec.js index c0d495b7e0..c96967384f 100644 --- a/frontend/playwright/ui/specs/workspace.spec.js +++ b/frontend/playwright/ui/specs/workspace.spec.js @@ -39,49 +39,15 @@ test("User draws a rect", async ({ page }) => { await expect(shape).toHaveAttribute("height", "100"); }); -test("User adds a library and its automatically selected in the color palette", async ({ page }) => { - const workspacePage = new WorkspacePage(page); - await workspacePage.setupEmptyFile(); - await workspacePage.mockRPC("link-file-to-library", "workspace/link-file-to-library.json"); - await workspacePage.mockRPC("unlink-file-from-library", "workspace/unlink-file-from-library.json"); - await workspacePage.mockRPC( - "get-team-shared-files?team-id=*", - "workspace/get-team-shared-libraries-non-empty.json", - ); - - await workspacePage.goToWorkspace(); - - // Add Testing library 1 - await workspacePage.clickColorPalette(); - await workspacePage.clickAssets(); - // Now the get-file call should return a library - await workspacePage.mockRPC(/get\-file\?/, "workspace/get-file-library.json"); - await workspacePage.clickLibraries(); - await workspacePage.clickLibrary("Testing library 1"); - await workspacePage.clickCloseLibraries(); - - await expect(workspacePage.palette.getByRole("button", { name: "test-color-187cd5" })).toBeVisible(); - - // Remove Testing library 1 - await workspacePage.clickLibraries(); - await workspacePage.clickLibrary("Testing library 1"); - await workspacePage.clickCloseLibraries(); - - await expect( - workspacePage.palette.getByText("There are no color styles in your library yet"), - ).toBeVisible(); -}); - - test("User makes a group", async ({ page }) => { const workspacePage = new WorkspacePage(page); await workspacePage.setupEmptyFile(); await workspacePage.mockRPC(/get\-file\?/, "workspace/get-file-not-empty.json"); await workspacePage.mockRPC("update-file?id=*", "workspace/update-file-create-rect.json"); - await workspacePage.goToWorkspace({ - fileId: "6191cd35-bb1f-81f7-8004-7cc63d087374", - pageId: "6191cd35-bb1f-81f7-8004-7cc63d087375" + await workspacePage.goToWorkspace({ + fileId: "6191cd35-bb1f-81f7-8004-7cc63d087374", + pageId: "6191cd35-bb1f-81f7-8004-7cc63d087375", }); await workspacePage.clickLeafLayer("Rectangle"); await workspacePage.page.keyboard.press("ControlOrMeta+g"); From f417445f31325370100aea478acb982d11b5fc62 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bel=C3=A9n=20Albeza?= Date: Tue, 11 Jun 2024 15:48:18 +0200 Subject: [PATCH 115/476] :sparkles: Refactor WorkspacePage so it has more semantic locators --- frontend/playwright/ui/pages/WorkspacePage.js | 7 +++---- frontend/playwright/ui/specs/sidebar.spec.js | 8 ++++---- frontend/src/app/main/ui/workspace/libraries.cljs | 2 +- 3 files changed, 8 insertions(+), 9 deletions(-) diff --git a/frontend/playwright/ui/pages/WorkspacePage.js b/frontend/playwright/ui/pages/WorkspacePage.js index e2c7b11d81..131f949435 100644 --- a/frontend/playwright/ui/pages/WorkspacePage.js +++ b/frontend/playwright/ui/pages/WorkspacePage.js @@ -48,7 +48,6 @@ export class WorkspacePage extends BaseWebSocketPage { this.layers = page.getByTestId("layer-tree"); this.palette = page.getByTestId("palette"); this.sidebar = page.getByTestId("left-sidebar"); - this.closeLibraries = page.getByTestId("close-libraries"); this.librariesModal = page.getByTestId("libraries-modal"); } @@ -126,7 +125,7 @@ export class WorkspacePage extends BaseWebSocketPage { await this.sidebar.getByText("Assets").click(clickOptions); } - async clickLibraries(clickOptions = {}) { + async openLibrariesModal(clickOptions = {}) { await this.sidebar.getByText("Libraries").click(clickOptions); } @@ -138,8 +137,8 @@ export class WorkspacePage extends BaseWebSocketPage { .click(clickOptions); } - async clickCloseLibraries(clickOptions = {}) { - await this.closeLibraries.click(clickOptions); + async closeLibrariesModal(clickOptions = {}) { + await this.librariesModal.getByRole("button", { name: "Close" }).click(clickOptions); } async clickColorPalette(clickOptions = {}) { diff --git a/frontend/playwright/ui/specs/sidebar.spec.js b/frontend/playwright/ui/specs/sidebar.spec.js index 9333749f85..468a661fae 100644 --- a/frontend/playwright/ui/specs/sidebar.spec.js +++ b/frontend/playwright/ui/specs/sidebar.spec.js @@ -40,16 +40,16 @@ test.describe("Assets tab", () => { await workspacePage.clickAssets(); // Now the get-file call should return a library await workspacePage.mockRPC(/get\-file\?/, "workspace/get-file-library.json"); - await workspacePage.clickLibraries(); + await workspacePage.openLibrariesModal(); await workspacePage.clickLibrary("Testing library 1"); - await workspacePage.clickCloseLibraries(); + await workspacePage.closeLibrariesModal(); await expect(workspacePage.palette.getByRole("button", { name: "test-color-187cd5" })).toBeVisible(); // Remove Testing library 1 - await workspacePage.clickLibraries(); + await workspacePage.openLibrariesModal(); await workspacePage.clickLibrary("Testing library 1"); - await workspacePage.clickCloseLibraries(); + await workspacePage.closeLibrariesModal(); await expect( workspacePage.palette.getByText("There are no color styles in your library yet"), diff --git a/frontend/src/app/main/ui/workspace/libraries.cljs b/frontend/src/app/main/ui/workspace/libraries.cljs index d07517c7b8..6d5813c0d2 100644 --- a/frontend/src/app/main/ui/workspace/libraries.cljs +++ b/frontend/src/app/main/ui/workspace/libraries.cljs @@ -519,7 +519,7 @@ [:div {:class (stl/css :modal-dialog)} [:button {:class (stl/css :close-btn) :on-click close-dialog - :data-testid "close-libraries"} + :aria-label (tr "labels.close")} close-icon] [:div {:class (stl/css :modal-title)} (tr "workspace.libraries.libraries")] From a5ba9d113fc9e1390491c6d4de79b1459ec2add1 Mon Sep 17 00:00:00 2001 From: Alejandro Alonso Date: Tue, 11 Jun 2024 11:27:14 +0200 Subject: [PATCH 116/476] :sparkles: Improve create group tests --- .../src/app/main/data/workspace/groups.cljs | 6 ++- .../app/main/data/workspace/shortcuts.cljs | 4 +- .../app/main/ui/workspace/context_menu.cljs | 4 +- .../frontend_tests/logic/groups_test.cljs | 51 +++++++++++++++++++ 4 files changed, 59 insertions(+), 6 deletions(-) create mode 100644 frontend/test/frontend_tests/logic/groups_test.cljs diff --git a/frontend/src/app/main/data/workspace/groups.cljs b/frontend/src/app/main/data/workspace/groups.cljs index 384eed1009..04beaa5535 100644 --- a/frontend/src/app/main/data/workspace/groups.cljs +++ b/frontend/src/app/main/data/workspace/groups.cljs @@ -198,7 +198,8 @@ (dws/select-shapes (d/ordered-set (:id group)))) (ptk/data-event :layout/update {:ids parents})))))))) -(def group-selected +(defn group-selected + [] (ptk/reify ::group-selected ptk/WatchEvent (watch [_ state _] @@ -258,7 +259,8 @@ (when change-selection? (dws/select-shapes child-ids)))))))) -(def ungroup-selected +(defn ungroup-selected + [] (ptk/reify ::ungroup-selected ptk/WatchEvent (watch [_ state _] diff --git a/frontend/src/app/main/data/workspace/shortcuts.cljs b/frontend/src/app/main/data/workspace/shortcuts.cljs index 2d808a9bd5..45a763ccac 100644 --- a/frontend/src/app/main/data/workspace/shortcuts.cljs +++ b/frontend/src/app/main/data/workspace/shortcuts.cljs @@ -119,12 +119,12 @@ :group {:tooltip (ds/meta "G") :command (ds/c-mod "g") :subsections [:modify-layers] - :fn #(emit-when-no-readonly dw/group-selected)} + :fn #(emit-when-no-readonly (dw/group-selected))} :ungroup {:tooltip (ds/shift "G") :command "shift+g" :subsections [:modify-layers] - :fn #(emit-when-no-readonly dw/ungroup-selected)} + :fn #(emit-when-no-readonly (dw/ungroup-selected))} :mask {:tooltip (ds/meta "M") :command (ds/c-mod "m") diff --git a/frontend/src/app/main/ui/workspace/context_menu.cljs b/frontend/src/app/main/ui/workspace/context_menu.cljs index 4dd499d189..c25d5cdfe6 100644 --- a/frontend/src/app/main/ui/workspace/context_menu.cljs +++ b/frontend/src/app/main/ui/workspace/context_menu.cljs @@ -243,8 +243,8 @@ is-group? (and single? has-group?) is-bool? (and single? has-bool?) - do-create-group #(st/emit! dw/group-selected) - do-remove-group #(st/emit! dw/ungroup-selected) + do-create-group #(st/emit! (dw/group-selected)) + do-remove-group #(st/emit! (dw/ungroup-selected)) do-mask-group #(st/emit! (dw/mask-group)) do-unmask-group #(st/emit! (dw/unmask-group)) do-create-artboard-from-selection diff --git a/frontend/test/frontend_tests/logic/groups_test.cljs b/frontend/test/frontend_tests/logic/groups_test.cljs new file mode 100644 index 0000000000..a535a586f1 --- /dev/null +++ b/frontend/test/frontend_tests/logic/groups_test.cljs @@ -0,0 +1,51 @@ +;; This Source Code Form is subject to the terms of the Mozilla Public +;; License, v. 2.0. If a copy of the MPL was not distributed with this +;; file, You can obtain one at http://mozilla.org/MPL/2.0/. +;; +;; Copyright (c) KALEIDOS INC +(ns frontend-tests.logic.groups-test + (:require + [app.common.data :as d] + [app.common.test-helpers.compositions :as ctho] + [app.common.test-helpers.files :as cthf] + [app.common.test-helpers.shapes :as cths] + [app.common.uuid :as uuid] + [app.main.data.workspace :as dw] + [app.main.data.workspace.groups :as dwgr] + [app.main.data.workspace.selection :as dws] + [cljs.test :as t :include-macros true] + [frontend-tests.helpers.pages :as thp] + [frontend-tests.helpers.state :as ths])) + +(t/use-fixtures :each + {:before thp/reset-idmap!}) + + +(t/deftest test-create-group + (t/async + done + (let [;; ==== Setup + file (-> (cthf/sample-file :file1) + (cths/add-sample-shape :test-shape)) + store (ths/setup-store file) + test-shape (cths/get-shape file :test-shape) + + ;; ==== Action + events + [(dws/select-shapes (d/ordered-set (:id test-shape))) + (dwgr/group-selected)]] + + (ths/run-store + store done events + (fn [new-state] + (let [;; ==== Get + file' (ths/get-file-from-store new-state) + page' (cthf/current-page file') + group-id (->> (:objects page') + vals + (filter #(= :group (:type %))) + first + :id)] + ;; ==== Check + ;; Group has been created and is selected + (t/is (= (get-in new-state [:workspace-local :selected]) #{group-id})))))))) From a861691ffdb4de7215a99f5c05e4b5047de78b80 Mon Sep 17 00:00:00 2001 From: Alejandro Alonso Date: Tue, 11 Jun 2024 13:52:54 +0200 Subject: [PATCH 117/476] :bug: Fix change color on imported svg also changes the stroke alignment --- CHANGES.md | 3 +- .../src/app/main/data/workspace/colors.cljs | 2 +- .../frontend_tests/basic_shapes_test.cljs | 34 +++++++++++++++++++ 3 files changed, 37 insertions(+), 2 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index beeea77a42..2385cddb8d 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -35,7 +35,8 @@ - Fix "Attribute overrides in copies are not exported in zip file" [Taiga #8072](https://tree.taiga.io/project/penpot/issue/8072) - Fix group not automatically selected in the Layers panel after creation [Taiga #8078](https://tree.taiga.io/project/penpot/issue/8078) - Fix export boards loses opacity [Taiga #7592](https://tree.taiga.io/project/penpot/issue/7592) -- Fix show in view mode and interactions workflow [Taiga #4711](https://github.com/penpot/penpot/pull/4711) +- Fix show in view mode and interactions workflow +- Fix change color on imported svg also changes the stroke alignment[Taiga #7673](https://github.com/penpot/penpot/pull/7673) ## 2.0.3 diff --git a/frontend/src/app/main/data/workspace/colors.cljs b/frontend/src/app/main/data/workspace/colors.cljs index 70a19585f9..71a3903b8f 100644 --- a/frontend/src/app/main/data/workspace/colors.cljs +++ b/frontend/src/app/main/data/workspace/colors.cljs @@ -248,7 +248,7 @@ (assoc :stroke-style :solid) (not (contains? new-attrs :stroke-alignment)) - (assoc :stroke-alignment :inner) + (assoc :stroke-alignment :center) :always (d/without-nils))] diff --git a/frontend/test/frontend_tests/basic_shapes_test.cljs b/frontend/test/frontend_tests/basic_shapes_test.cljs index 8f7700120a..3017738374 100644 --- a/frontend/test/frontend_tests/basic_shapes_test.cljs +++ b/frontend/test/frontend_tests/basic_shapes_test.cljs @@ -9,6 +9,7 @@ [app.common.test-helpers.files :as cthf] [app.common.test-helpers.ids-map :as cthi] [app.common.test-helpers.shapes :as cths] + [app.main.data.workspace.colors :as dc] [app.main.data.workspace.shapes :as dwsh] [cljs.test :as t :include-macros true] [frontend-tests.helpers.state :as ths])) @@ -46,3 +47,36 @@ (t/is (= (count fills') 1)) (t/is (= (:fill-color fill') "#fabada")) (t/is (= (:fill-opacity fill') 1)))))))) + +(t/deftest test-update-stroke + ;; Old shapes without stroke-alignment are rendered as if it is centered + (t/async + done + (let [;; ==== Setup + store + (ths/setup-store + (-> (cthf/sample-file :file1 :page-label :page1) + (cths/add-sample-shape :shape1 :strokes [{:stroke-color "#000000" + :stroke-opacity 1 + :stroke-width 2}]))) + + ;; ==== Action + events + [(dc/change-stroke #{(cthi/id :shape1)} {:color "#FABADA"} 0)]] + + (ths/run-store + store done events + (fn [new-state] + (let [;; ==== Get + shape1' (get-in new-state [:workspace-data + :pages-index + (cthi/id :page1) + :objects + (cthi/id :shape1)]) + stroke' (-> (:strokes shape1') + first)] + + ;; ==== Check + (println stroke') + (t/is (some? shape1')) + (t/is (= (:stroke-alignment stroke') :center)))))))) \ No newline at end of file From 9f7a002a78565b3103262e80d31c1a4eeb3fce8b Mon Sep 17 00:00:00 2001 From: Alejandro Alonso Date: Fri, 7 Jun 2024 12:16:13 +0200 Subject: [PATCH 118/476] :bug: Fix misaligned input on comments --- CHANGES.md | 1 + frontend/src/app/main/ui/comments.scss | 5 ++--- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index 2385cddb8d..2a18951426 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -16,6 +16,7 @@ - Allow library colors as recent colors [Taiga #7640](https://tree.taiga.io/project/penpot/issue/7640) - Missing scroll in viewmode comments [Taiga #7427](https://tree.taiga.io/project/penpot/issue/7427) - Comments in View mode should mimic the positioning behavior of the Workspace [Taiga #7346](https://tree.taiga.io/project/penpot/issue/7346) +- Misaligned input on comments [Taiga #7461](https://tree.taiga.io/project/penpot/issue/7461) ### :bug: Bugs fixed diff --git a/frontend/src/app/main/ui/comments.scss b/frontend/src/app/main/ui/comments.scss index c3237c10dc..a2d1fdc528 100644 --- a/frontend/src/app/main/ui/comments.scss +++ b/frontend/src/app/main/ui/comments.scss @@ -142,11 +142,10 @@ // thread-content .thread-content { position: absolute; - overflow-y: scroll; - scrollbar-gutter: stable; + overflow-y: auto; width: $s-284; padding: $s-12; - padding-inline-end: 0; + padding-inline-end: $s-8; pointer-events: auto; user-select: text; From 058a72b81772518edf4246ca5775e7fb43057e45 Mon Sep 17 00:00:00 2001 From: Alejandro Alonso Date: Mon, 10 Jun 2024 11:02:17 +0200 Subject: [PATCH 119/476] :bug: Fix internal error when I set up a stroke for some objects without and with stroke --- CHANGES.md | 3 +- .../design/get-file-multiple-attributes.json | 343 ++++++++++++++++++ ...object-thumbnails-multiple-attributes.json | 1 + .../playwright/ui/specs/design-tab.spec.js | 48 +++ .../workspace/sidebar/options/menus/blur.cljs | 1 + .../workspace/sidebar/options/menus/fill.cljs | 1 + .../sidebar/options/menus/shadow.cljs | 1 + .../sidebar/options/menus/stroke.cljs | 7 +- 8 files changed, 401 insertions(+), 4 deletions(-) create mode 100644 frontend/playwright/data/design/get-file-multiple-attributes.json create mode 100644 frontend/playwright/data/design/get-file-object-thumbnails-multiple-attributes.json diff --git a/CHANGES.md b/CHANGES.md index 2a18951426..e5a698f342 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -36,8 +36,9 @@ - Fix "Attribute overrides in copies are not exported in zip file" [Taiga #8072](https://tree.taiga.io/project/penpot/issue/8072) - Fix group not automatically selected in the Layers panel after creation [Taiga #8078](https://tree.taiga.io/project/penpot/issue/8078) - Fix export boards loses opacity [Taiga #7592](https://tree.taiga.io/project/penpot/issue/7592) -- Fix show in view mode and interactions workflow - Fix change color on imported svg also changes the stroke alignment[Taiga #7673](https://github.com/penpot/penpot/pull/7673) +- Fix show in view mode and interactions workflow [Taiga #4711](https://github.com/penpot/penpot/pull/4711) +- Fix internal error when I set up a stroke for some objects without and with stroke [Taiga #7558](https://tree.taiga.io/project/penpot/issue/7558) ## 2.0.3 diff --git a/frontend/playwright/data/design/get-file-multiple-attributes.json b/frontend/playwright/data/design/get-file-multiple-attributes.json new file mode 100644 index 0000000000..c0a67da95c --- /dev/null +++ b/frontend/playwright/data/design/get-file-multiple-attributes.json @@ -0,0 +1,343 @@ +{ + "~:features":{ + "~#set":[ + "layout/grid", + "styles/v2", + "fdata/shape-data-type" + ] + }, + "~:permissions":{ + "~:type":"~:membership", + "~:is-owner":true, + "~:is-admin":true, + "~:can-edit":true, + "~:can-read":true, + "~:is-logged":true + }, + "~:has-media-trimmed":false, + "~:comment-thread-seqn":0, + "~:name":"New File 12", + "~:revn":2, + "~:modified-at":"~m1718012938567", + "~:id":"~u1795a568-0df0-8095-8004-7ba741f56be2", + "~:is-shared":false, + "~:version":48, + "~:project-id":"~u4dc640b0-5cbf-11ec-a7c5-91e9eb4f238d", + "~:created-at":"~m1718012912598", + "~:data":{ + "~:pages":[ + "~u1795a568-0df0-8095-8004-7ba741f56be3" + ], + "~:pages-index":{ + "~u1795a568-0df0-8095-8004-7ba741f56be3":{ + "~:options":{ + + }, + "~:objects":{ + "~u00000000-0000-0000-0000-000000000000":{ + "~#shape":{ + "~:y":0, + "~:hide-fill-on-export":false, + "~:transform":{ + "~#matrix":{ + "~:a":1.0, + "~:b":0.0, + "~:c":0.0, + "~:d":1.0, + "~:e":0.0, + "~:f":0.0 + } + }, + "~:rotation":0, + "~:name":"Root Frame", + "~:width":0.01, + "~:type":"~:frame", + "~:points":[ + { + "~#point":{ + "~:x":0, + "~:y":0 + } + }, + { + "~#point":{ + "~:x":0.01, + "~:y":0 + } + }, + { + "~#point":{ + "~:x":0.01, + "~:y":0.01 + } + }, + { + "~#point":{ + "~:x":0, + "~:y":0.01 + } + } + ], + "~:proportion-lock":false, + "~:transform-inverse":{ + "~#matrix":{ + "~:a":1.0, + "~:b":0.0, + "~:c":0.0, + "~:d":1.0, + "~:e":0.0, + "~:f":0.0 + } + }, + "~:id":"~u00000000-0000-0000-0000-000000000000", + "~:parent-id":"~u00000000-0000-0000-0000-000000000000", + "~:frame-id":"~u00000000-0000-0000-0000-000000000000", + "~:strokes":[ + + ], + "~:x":0, + "~:proportion":1.0, + "~:selrect":{ + "~#rect":{ + "~:x":0, + "~:y":0, + "~:width":0.01, + "~:height":0.01, + "~:x1":0, + "~:y1":0, + "~:x2":0.01, + "~:y2":0.01 + } + }, + "~:fills":[ + { + "~:fill-color":"#FFFFFF", + "~:fill-opacity":1 + } + ], + "~:flip-x":null, + "~:height":0.01, + "~:flip-y":null, + "~:shapes":[ + "~u2ace9ce8-8e01-8086-8004-7ba745d4305a", + "~u2ace9ce8-8e01-8086-8004-7ba748566e02" + ] + } + }, + "~u2ace9ce8-8e01-8086-8004-7ba745d4305a":{ + "~#shape":{ + "~:y":221, + "~:rx":0, + "~:transform":{ + "~#matrix":{ + "~:a":1.0, + "~:b":0.0, + "~:c":0.0, + "~:d":1.0, + "~:e":0.0, + "~:f":0.0 + } + }, + "~:rotation":0, + "~:grow-type":"~:fixed", + "~:hide-in-viewer":false, + "~:name":"Rectangle", + "~:width":105, + "~:type":"~:rect", + "~:points":[ + { + "~#point":{ + "~:x":165, + "~:y":221 + } + }, + { + "~#point":{ + "~:x":270, + "~:y":221 + } + }, + { + "~#point":{ + "~:x":270, + "~:y":316 + } + }, + { + "~#point":{ + "~:x":165, + "~:y":316 + } + } + ], + "~:proportion-lock":false, + "~:transform-inverse":{ + "~#matrix":{ + "~:a":1.0, + "~:b":0.0, + "~:c":0.0, + "~:d":1.0, + "~:e":0.0, + "~:f":0.0 + } + }, + "~:id":"~u2ace9ce8-8e01-8086-8004-7ba745d4305a", + "~:parent-id":"~u00000000-0000-0000-0000-000000000000", + "~:frame-id":"~u00000000-0000-0000-0000-000000000000", + "~:strokes":[ + + ], + "~:x":165, + "~:proportion":1, + "~:selrect":{ + "~#rect":{ + "~:x":165, + "~:y":221, + "~:width":105, + "~:height":95, + "~:x1":165, + "~:y1":221, + "~:x2":270, + "~:y2":316 + } + }, + "~:fills":[ + { + "~:fill-color":"#B1B2B5", + "~:fill-opacity":1 + } + ], + "~:flip-x":null, + "~:ry":0, + "~:height":95, + "~:flip-y":null + } + }, + "~u2ace9ce8-8e01-8086-8004-7ba748566e02":{ + "~#shape":{ + "~:y":228, + "~:transform":{ + "~#matrix":{ + "~:a":1.0, + "~:b":0.0, + "~:c":0.0, + "~:d":1.0, + "~:e":0.0, + "~:f":0.0 + } + }, + "~:rotation":0, + "~:grow-type":"~:fixed", + "~:hide-in-viewer":false, + "~:name":"Ellipse", + "~:width":85, + "~:type":"~:circle", + "~:points":[ + { + "~#point":{ + "~:x":344, + "~:y":228 + } + }, + { + "~#point":{ + "~:x":429, + "~:y":228 + } + }, + { + "~#point":{ + "~:x":429, + "~:y":308 + } + }, + { + "~#point":{ + "~:x":344, + "~:y":308 + } + } + ], + "~:proportion-lock":false, + "~:transform-inverse":{ + "~#matrix":{ + "~:a":1.0, + "~:b":0.0, + "~:c":0.0, + "~:d":1.0, + "~:e":0.0, + "~:f":0.0 + } + }, + "~:blur":{ + "~:id":"~u2ace9ce8-8e01-8086-8004-7ba757cdd271", + "~:type":"~:layer-blur", + "~:value":4, + "~:hidden":false + }, + "~:id":"~u2ace9ce8-8e01-8086-8004-7ba748566e02", + "~:parent-id":"~u00000000-0000-0000-0000-000000000000", + "~:frame-id":"~u00000000-0000-0000-0000-000000000000", + "~:strokes":[ + { + "~:stroke-alignment":"~:inner", + "~:stroke-style":"~:solid", + "~:stroke-color":"#000000", + "~:stroke-opacity":1, + "~:stroke-width":1 + } + ], + "~:x":344, + "~:proportion":1, + "~:shadow":[ + { + "~:color":{ + "~:color":"#000000", + "~:opacity":0.2 + }, + "~:spread":0, + "~:offset-y":4, + "~:style":"~:drop-shadow", + "~:blur":4, + "~:hidden":false, + "~:id":"~u2ace9ce8-8e01-8086-8004-7ba756ddebd5", + "~:offset-x":4 + } + ], + "~:selrect":{ + "~#rect":{ + "~:x":344, + "~:y":228, + "~:width":85, + "~:height":80, + "~:x1":344, + "~:y1":228, + "~:x2":429, + "~:y2":308 + } + }, + "~:fills":[ + { + "~:fill-color":"#1247e7", + "~:fill-opacity":1 + } + ], + "~:flip-x":null, + "~:height":80, + "~:flip-y":null + } + } + }, + "~:id":"~u1795a568-0df0-8095-8004-7ba741f56be3", + "~:name":"Page 1" + } + }, + "~:id":"~u1795a568-0df0-8095-8004-7ba741f56be2", + "~:recent-colors":[ + { + "~:color":"#1247e7", + "~:opacity":1 + } + ] + } +} \ No newline at end of file diff --git a/frontend/playwright/data/design/get-file-object-thumbnails-multiple-attributes.json b/frontend/playwright/data/design/get-file-object-thumbnails-multiple-attributes.json new file mode 100644 index 0000000000..0637a088a0 --- /dev/null +++ b/frontend/playwright/data/design/get-file-object-thumbnails-multiple-attributes.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/frontend/playwright/ui/specs/design-tab.spec.js b/frontend/playwright/ui/specs/design-tab.spec.js index 0d637bacef..0c890c07ea 100644 --- a/frontend/playwright/ui/specs/design-tab.spec.js +++ b/frontend/playwright/ui/specs/design-tab.spec.js @@ -7,6 +7,8 @@ test.beforeEach(async ({ page }) => { const multipleConstraintsFileId = `03bff843-920f-81a1-8004-756365e1eb6a`; const multipleConstraintsPageId = `03bff843-920f-81a1-8004-756365e1eb6b`; +const multipleAttributesFileId = `1795a568-0df0-8095-8004-7ba741f56be2`; +const multipleAttributesPageId = `1795a568-0df0-8095-8004-7ba741f56be3`; const setupFileWithMultipeConstraints = async (workspace) => { await workspace.setupEmptyFile(); @@ -21,6 +23,15 @@ const setupFileWithMultipeConstraints = async (workspace) => { ); }; +const setupFileWithMultipeAttributes = async (workspace) => { + await workspace.setupEmptyFile(); + await workspace.mockRPC(/get\-file\?/, "design/get-file-multiple-attributes.json"); + await workspace.mockRPC( + "get-file-object-thumbnails?file-id=*", + "design/get-file-object-thumbnails-multiple-attributes.json", + ); +}; + test.describe("Constraints", () => { test("Constraint dropdown shows 'Mixed' when multiple layers are selected with different constraints", async ({ page, @@ -44,3 +55,40 @@ test.describe("Constraints", () => { expect(false); }); }); + +test.describe("Multiple shapes attributes", () => { + test("User selects multiple shapes with sames fills, strokes, shadows and blur", async ({ page }) => { + const workspace = new WorkspacePage(page); + await setupFileWithMultipeConstraints(workspace); + await workspace.goToWorkspace({ + fileId: multipleConstraintsFileId, + pageId: multipleConstraintsPageId, + }); + + await workspace.clickToggableLayer("Board"); + await workspace.clickLeafLayer("Ellipse"); + await workspace.clickLeafLayer("Rectangle", { modifiers: ["Shift"] }); + + await expect(workspace.page.getByTestId("add-fill")).toBeVisible(); + await expect(workspace.page.getByTestId("add-stroke")).toBeVisible(); + await expect(workspace.page.getByTestId("add-shadow")).toBeVisible(); + await expect(workspace.page.getByTestId("add-blur")).toBeVisible(); + }); + + test("User selects multiple shapes with different fills, strokes, shadows and blur", async ({ page }) => { + const workspace = new WorkspacePage(page); + await setupFileWithMultipeAttributes(workspace); + await workspace.goToWorkspace({ + fileId: multipleAttributesFileId, + pageId: multipleAttributesPageId, + }); + + await workspace.clickLeafLayer("Ellipse"); + await workspace.clickLeafLayer("Rectangle", { modifiers: ["Shift"] }); + + await expect(workspace.page.getByTestId("add-fill")).toBeHidden(); + await expect(workspace.page.getByTestId("add-stroke")).toBeHidden(); + await expect(workspace.page.getByTestId("add-shadow")).toBeHidden(); + await expect(workspace.page.getByTestId("add-blur")).toBeHidden(); + }); +}); diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/menus/blur.cljs b/frontend/src/app/main/ui/workspace/sidebar/options/menus/blur.cljs index cd1573982a..b943680e8f 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options/menus/blur.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/options/menus/blur.cljs @@ -87,6 +87,7 @@ :class (stl/css-case :title-spacing-blur (not has-value?))} (when-not has-value? [:button {:class (stl/css :add-blur) + :data-testid "add-blur" :on-click handle-add} i/add])]] (when (and open? has-value?) [:div {:class (stl/css :element-set-content)} diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/menus/fill.cljs b/frontend/src/app/main/ui/workspace/sidebar/options/menus/fill.cljs index 7dfc6f0758..3d8574ef1f 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options/menus/fill.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/options/menus/fill.cljs @@ -146,6 +146,7 @@ (when (and (not disable-remove?) (not (= :multiple fills))) [:button {:class (stl/css :add-fill) + :data-testid "add-fill" :on-click on-add} i/add])]] (when open? diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs b/frontend/src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs index ab65f806ad..db3b28f85c 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs @@ -298,6 +298,7 @@ (when-not (= :multiple shadows) [:button {:class (stl/css :add-shadow) + :data-testid "add-shadow" :on-click on-add-shadow} i/add])]] (when open? diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs b/frontend/src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs index 3539f693f1..9f7969f2cd 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs @@ -169,9 +169,10 @@ :on-collapsed toggle-content :title label :class (stl/css-case :title-spacing-stroke (not has-strokes?))} - - [:button {:class (stl/css :add-stroke) - :on-click on-add-stroke} i/add]]] + (when (not (= :multiple strokes)) + [:button {:class (stl/css :add-stroke) + :data-testid "add-stroke" + :on-click on-add-stroke} i/add])]] (when open? [:div {:class (stl/css-case :element-content true :empty-content (not has-strokes?))} From 03aa0817f7ca753d8a4f6f33a92f6ab8f574a03d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9s=20Moya?= Date: Tue, 11 Jun 2024 17:14:28 +0200 Subject: [PATCH 120/476] :bug: Fix swap slots when detaching a copy with subcopies --- backend/src/app/srepl/fixes.clj | 5 +--- common/src/app/common/files/repair.cljc | 2 +- common/src/app/common/logic/libraries.cljc | 31 +++++++++++++--------- common/src/app/common/types/component.cljc | 16 +++++++++++ 4 files changed, 37 insertions(+), 17 deletions(-) diff --git a/backend/src/app/srepl/fixes.clj b/backend/src/app/srepl/fixes.clj index ee40421dfc..0db429aa34 100644 --- a/backend/src/app/srepl/fixes.clj +++ b/backend/src/app/srepl/fixes.clj @@ -184,10 +184,7 @@ (ctk/instance-head? child)) (let [slot (guess-swap-slot component-child component-container)] (l/dbg :hint "child" :id (:id child) :name (:name child) :slot slot) - (ctn/update-shape container (:id child) - #(update % :touched - cfh/set-touched-group - (ctk/build-swap-slot-group slot)))) + (ctn/update-shape container (:id child) #(ctk/set-swap-slot % slot))) container)] (recur (process-copy-head container child) (rest children) diff --git a/common/src/app/common/files/repair.cljc b/common/src/app/common/files/repair.cljc index cd2a656d28..c40b602275 100644 --- a/common/src/app/common/files/repair.cljc +++ b/common/src/app/common/files/repair.cljc @@ -481,7 +481,7 @@ (let [slot (:swap-slot args)] (when (some? slot) (log/debug :hint (str " -> set swap-slot to " slot)) - (update shape :touched cfh/set-touched-group (ctk/build-swap-slot-group slot)))))] + (ctk/set-swap-slot shape slot))))] (log/dbg :hint "repairing shape :missing-slot" :id (:id shape) :name (:name shape) :page-id page-id) (-> (pcb/empty-changes nil page-id) diff --git a/common/src/app/common/logic/libraries.cljc b/common/src/app/common/logic/libraries.cljc index 595ed57261..ec40277e0c 100644 --- a/common/src/app/common/logic/libraries.cljc +++ b/common/src/app/common/logic/libraries.cljc @@ -284,9 +284,17 @@ (let [children (cfh/get-children-with-self (:objects container) shape-id) skip-near (fn [changes shape] (let [ref-shape (ctf/find-ref-shape file container libraries shape {:include-deleted? true})] - (if (some? (:shape-ref ref-shape)) - (pcb/update-shapes changes [(:id shape)] #(assoc % :shape-ref (:shape-ref ref-shape))) - changes)))] + (cond-> changes + (some? (:shape-ref ref-shape)) + (pcb/update-shapes [(:id shape)] #(assoc % :shape-ref (:shape-ref ref-shape))) + + ;; When advancing level, if the referenced shape has a swap slot, it must be + ;; copied to the current shape, because the shape-ref now will not be pointing + ;; to a near main (except for first level subcopies). + (and (some? (ctk/get-swap-slot ref-shape)) + (nil? (ctk/get-swap-slot shape)) + (not= (:id shape) shape-id)) + (pcb/update-shapes [(:id shape)] #(ctk/set-swap-slot % (ctk/get-swap-slot ref-shape))))))] (reduce skip-near changes children))) (defn prepare-restore-component @@ -1194,7 +1202,7 @@ :shapes all-parents})) changes' (reduce del-obj-change changes' new-shapes)] - (if (and (cfh/touched-group? parent-shape :shapes-group) omit-touched?) + (if (and (ctk/touched-group? parent-shape :shapes-group) omit-touched?) changes changes'))) @@ -1349,7 +1357,7 @@ changes' ids)] - (if (and (cfh/touched-group? parent :shapes-group) omit-touched?) + (if (and (ctk/touched-group? parent :shapes-group) omit-touched?) changes changes'))) @@ -1385,7 +1393,7 @@ :ignore-touched true :syncing true})))] - (if (and (cfh/touched-group? parent :shapes-group) omit-touched?) + (if (and (ctk/touched-group? parent :shapes-group) omit-touched?) changes changes'))) @@ -1846,12 +1854,11 @@ ;; if the shape isn't inside a main component, it shouldn't have a swap slot (and (nil? (ctk/get-swap-slot new-shape)) inside-comp?) - (update :touched cfh/set-touched-group (-> (ctf/find-swap-slot shape - page - {:id (:id file) - :data file} - libraries) - (ctk/build-swap-slot-group))))] + (ctk/set-swap-slot (ctf/find-swap-slot shape + page + {:id (:id file) + :data file} + libraries)))] [new-shape (-> changes ;; Restore the properties diff --git a/common/src/app/common/types/component.cljc b/common/src/app/common/types/component.cljc index bcd6ef3b35..b4060abedc 100644 --- a/common/src/app/common/types/component.cljc +++ b/common/src/app/common/types/component.cljc @@ -183,6 +183,15 @@ (and (= shape-id (:main-instance-id component)) (= page-id (:main-instance-page component)))) +(defn set-touched-group + [touched group] + (when group + (conj (or touched #{}) group))) + +(defn touched-group? + [shape group] + ((or (:touched shape) #{}) group)) + (defn build-swap-slot-group "Convert a swap-slot into a :touched group" [swap-slot] @@ -204,6 +213,13 @@ (when group (group->swap-slot group)))) +(defn set-swap-slot + "Add a touched group with a form :swap-slot-." + [shape swap-slot] + (cond-> shape + (some? swap-slot) + (update :touched set-touched-group (build-swap-slot-group swap-slot)))) + (defn match-swap-slot? [shape-main shape-inst] (let [slot-main (get-swap-slot shape-main) From bbd9207191d8ba9220f23e27924007e836569801 Mon Sep 17 00:00:00 2001 From: Alejandro Alonso Date: Wed, 12 Jun 2024 11:52:59 +0200 Subject: [PATCH 121/476] :sparkles: Improve email verify threshold --- backend/src/app/config.clj | 9 +++++++-- backend/src/app/rpc/commands/auth.clj | 8 +++----- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/backend/src/app/config.clj b/backend/src/app/config.clj index 1ca6373968..aed7806946 100644 --- a/backend/src/app/config.clj +++ b/backend/src/app/config.clj @@ -87,7 +87,10 @@ :ldap-attrs-fullname "cn" ;; a server prop key where initial project is stored. - :initial-project-skey "initial-project"}) + :initial-project-skey "initial-project" + + ;; time to avoid email sending after profile modification + :email-verify-threshold "15m"}) (s/def ::default-rpc-rlimit ::us/vector-of-strings) (s/def ::rpc-rlimit-config ::fs/path) @@ -213,6 +216,7 @@ (s/def ::telemetry-uri ::us/string) (s/def ::telemetry-with-taiga ::us/boolean) (s/def ::tenant ::us/string) +(s/def ::email-verify-threshold ::dt/duration) (s/def ::config (s/keys :opt-un [::secret-key @@ -334,7 +338,8 @@ ::telemetry-uri ::telemetry-referer ::telemetry-with-taiga - ::tenant])) + ::tenant + ::email-verify-threshold])) (def default-flags [:enable-backend-api-doc diff --git a/backend/src/app/rpc/commands/auth.clj b/backend/src/app/rpc/commands/auth.clj index b38fa83b56..e4b36e84b4 100644 --- a/backend/src/app/rpc/commands/auth.clj +++ b/backend/src/app/rpc/commands/auth.clj @@ -38,13 +38,11 @@ (def schema:token [::sm/word-string {:max 6000}]) -(def ^:private default-verify-threshold - (dt/duration "15m")) - (defn- elapsed-verify-threshold? [profile] - (let [elapsed (dt/diff (:modified-at profile) (dt/now))] - (pos? (compare elapsed default-verify-threshold)))) + (let [elapsed (dt/diff (:modified-at profile) (dt/now)) + verify-threshold (cf/get :email-verify-threshold)] + (pos? (compare elapsed verify-threshold)))) ;; ---- COMMAND: login with password From c1463ebd127b0c829442c5ef6be183577fde9b18 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Wed, 12 Jun 2024 15:56:27 +0200 Subject: [PATCH 122/476] :bug: Fix many race conditions on thumbnail generation process --- frontend/src/app/config.cljs | 4 + .../app/main/data/workspace/libraries.cljs | 2 +- .../app/main/data/workspace/thumbnails.cljs | 136 ++++++--------- .../app/main/ui/workspace/shapes/frame.cljs | 5 +- frontend/src/app/util/queue.cljs | 156 ++++++++++-------- 5 files changed, 147 insertions(+), 156 deletions(-) diff --git a/frontend/src/app/config.cljs b/frontend/src/app/config.cljs index 51b2445514..098dc12484 100644 --- a/frontend/src/app/config.cljs +++ b/frontend/src/app/config.cljs @@ -158,6 +158,10 @@ (avatars/generate {:name name}) (dm/str (u/join public-uri "assets/by-id/" photo-id)))) +(defn resolve-media + [id] + (dm/str (u/join public-uri "assets/by-id/" (str id)))) + (defn resolve-file-media ([media] (resolve-file-media media false)) diff --git a/frontend/src/app/main/data/workspace/libraries.cljs b/frontend/src/app/main/data/workspace/libraries.cljs index f49569557a..c9be059e2f 100644 --- a/frontend/src/app/main/data/workspace/libraries.cljs +++ b/frontend/src/app/main/data/workspace/libraries.cljs @@ -814,7 +814,7 @@ component (ctkl/get-component data component-id) page-id (:main-instance-page component) root-id (:main-instance-id component)] - (dwt/request-thumbnail file-id page-id root-id tag "update-component-thumbnail-sync"))) + (dwt/update-thumbnail file-id page-id root-id tag "update-component-thumbnail-sync"))) (defn update-component-sync ([shape-id file-id] (update-component-sync shape-id file-id nil)) diff --git a/frontend/src/app/main/data/workspace/thumbnails.cljs b/frontend/src/app/main/data/workspace/thumbnails.cljs index d131ffd9cd..c4cde6e2de 100644 --- a/frontend/src/app/main/data/workspace/thumbnails.cljs +++ b/frontend/src/app/main/data/workspace/thumbnails.cljs @@ -10,6 +10,7 @@ [app.common.files.helpers :as cfh] [app.common.logging :as l] [app.common.thumbnails :as thc] + [app.config :as cf] [app.main.data.changes :as dch] [app.main.data.persistence :as-alias dps] [app.main.data.workspace.notifications :as-alias wnt] @@ -18,7 +19,6 @@ [app.main.refs :as refs] [app.main.render :as render] [app.main.repo :as rp] - [app.main.store :as st] [app.util.http :as http] [app.util.queue :as q] [app.util.time :as tp] @@ -30,55 +30,36 @@ (l/set-level! :warn) -(declare update-thumbnail) +(defn- find-request + [params item] + (and (= (unchecked-get params "file-id") + (unchecked-get item "file-id")) + (= (unchecked-get params "page-id") + (unchecked-get item "page-id")) + (= (unchecked-get params "shape-id") + (unchecked-get item "shape-id")) + (= (unchecked-get params "tag") + (unchecked-get item "tag")))) -(defn resolve-request - "Resolves the request to generate a thumbnail for the given ids." - [item] - (let [file-id (unchecked-get item "file-id") - page-id (unchecked-get item "page-id") - shape-id (unchecked-get item "shape-id") - tag (unchecked-get item "tag")] - (st/emit! (update-thumbnail file-id page-id shape-id tag)))) +(defn- create-request + "Creates a request to generate a thumbnail for the given ids." + [file-id page-id shape-id tag] + #js {:file-id file-id + :page-id page-id + :shape-id shape-id + :tag tag}) ;; Defines the thumbnail queue (defonce queue - (q/create resolve-request (/ 1000 30))) - -(defn create-request - "Creates a request to generate a thumbnail for the given ids." - [file-id page-id shape-id tag] - #js {:file-id file-id :page-id page-id :shape-id shape-id :tag tag}) - -(defn find-request - "Returns true if the given item matches the given ids." - [file-id page-id shape-id tag item] - (and (= file-id (unchecked-get item "file-id")) - (= page-id (unchecked-get item "page-id")) - (= shape-id (unchecked-get item "shape-id")) - (= tag (unchecked-get item "tag")))) - -(defn request-thumbnail - "Enqueues a request to generate a thumbnail for the given ids." - ([file-id page-id shape-id tag] - (request-thumbnail file-id page-id shape-id tag "unknown")) - ([file-id page-id shape-id tag requester] - (ptk/reify ::request-thumbnail - ptk/EffectEvent - (effect [_ _ _] - (l/dbg :hint "request thumbnail" :requester requester :file-id file-id :page-id page-id :shape-id shape-id :tag tag) - (q/enqueue-unique queue - (create-request file-id page-id shape-id tag) - (partial find-request file-id page-id shape-id tag)))))) + (q/create find-request (/ 1000 30))) ;; This function first renders the HTML calling `render/render-frame` that ;; returns HTML as a string, then we send that data to the iframe rasterizer ;; that returns the image as a Blob. Finally we create a URI for that blob. -(defn get-thumbnail +(defn- render-thumbnail "Returns the thumbnail for the given ids" - [state file-id page-id frame-id tag & {:keys [object-id]}] - - (let [object-id (or object-id (thc/fmt-object-id file-id page-id frame-id tag)) + [state file-id page-id frame-id tag] + (let [object-id (thc/fmt-object-id file-id page-id frame-id tag) tp (tp/tpoint-ms) objects (wsh/lookup-objects state file-id page-id) shape (get objects frame-id)] @@ -87,10 +68,15 @@ (rx/take 1) (rx/filter some?) (rx/mapcat thr/render) - (rx/map (fn [blob] (wapi/create-uri blob))) (rx/tap #(l/dbg :hint "thumbnail rendered" :elapsed (dm/str (tp) "ms")))))) +(defn- request-thumbnail + "Enqueues a request to generate a thumbnail for the given ids." + [state file-id page-id shape-id tag] + (let [request (create-request file-id page-id shape-id tag)] + (q/enqueue-unique queue request (partial render-thumbnail state file-id page-id shape-id tag)))) + (defn clear-thumbnail ([file-id page-id frame-id tag] (clear-thumbnail file-id (thc/fmt-object-id file-id page-id frame-id tag))) @@ -154,8 +140,7 @@ (defn update-thumbnail "Updates the thumbnail information for the given `id`" - - [file-id page-id frame-id tag] + [file-id page-id frame-id tag requester] (let [object-id (thc/fmt-object-id file-id page-id frame-id tag)] (ptk/reify ::update-thumbnail cljs.core/IDeref @@ -163,23 +148,25 @@ ptk/WatchEvent (watch [_ state stream] - (l/dbg :hint "update thumbnail" :object-id object-id :tag tag) + (l/dbg :hint "update thumbnail" :requester requester :object-id object-id :tag tag) ;; Send the update to the back-end - (->> (get-thumbnail state file-id page-id frame-id tag) - (rx/mapcat (fn [uri] - (rx/merge - (rx/of (assoc-thumbnail object-id uri)) - (->> (http/send! {:uri uri :response-type :blob :method :get}) - (rx/map :body) - (rx/mapcat (fn [blob] - ;; Send the data to backend - (let [params {:file-id file-id - :object-id object-id - :media blob - :tag (or tag "frame")}] - (rp/cmd! :create-file-object-thumbnail params)))) - (rx/catch rx/empty) - (rx/ignore))))) + (->> (request-thumbnail state file-id page-id frame-id tag) + (rx/mapcat (fn [blob] + ;; Send the data to backend + (let [params {:file-id file-id + :object-id object-id + :media blob + :tag (or tag "frame")}] + (rp/cmd! :create-file-object-thumbnail params)))) + + (rx/mapcat (fn [{:keys [object-id media-id]}] + (let [uri (cf/resolve-media media-id)] + ;; We perform this request just for + ;; populate the browser CACHE and avoid + ;; unnecesary image flickering + (->> (http/send! {:uri uri :method :get}) + (rx/map #(assoc-thumbnail object-id uri)))))) + (rx/catch (fn [cause] (.error js/console cause) (rx/empty))) @@ -260,31 +247,12 @@ (rx/observe-on :async) (rx/with-latest-from workspace-data-s) (rx/merge-map (partial extract-root-frame-changes page-id)) - (rx/tap #(l/trc :hint "inconming change" :origin "local" :frame-id (dm/str %))) + (rx/tap #(l/trc :hint "inconming change" :origin "all" :frame-id (dm/str %))) (rx/share)) - local-commits-s - (->> stream - (rx/filter dch/commit?) - (rx/map deref) - (rx/filter #(= :local (:source %))) - (rx/observe-on :async) - (rx/with-latest-from workspace-data-s) - (rx/merge-map (partial extract-root-frame-changes page-id)) - (rx/tap #(l/trc :hint "inconming change" :origin "local" :frame-id (dm/str %))) - (rx/share)) - - ;; BUFFER NOTIFIER: only on local changes, remote changes - ;; we expect to receive thumbnail uri once it is - ;; generated va notifications subsystem notifier-s (->> stream (rx/filter (ptk/type? ::dps/commit-persisted)) - (rx/map deref) - (rx/observe-on :async) - (rx/with-latest-from workspace-data-s) - (rx/merge-map (partial extract-root-frame-changes page-id)) - (rx/tap #(l/trc :hint "inconming change" :origin "local" :frame-id (dm/str %))) (rx/debounce 5000) (rx/tap #(l/trc :hint "buffer initialized")))] @@ -296,11 +264,11 @@ (rx/map (fn [frame-id] (clear-thumbnail file-id page-id frame-id "frame")))) - ;; Generate thumbnails in batchs, once user becomes - ;; inactive for some instant only for local changes - (->> local-commits-s + ;; Generate thumbnails in batches, once user becomes + ;; inactive for some instant. + (->> all-commits-s (rx/buffer-until notifier-s) (rx/mapcat #(into #{} %)) - (rx/map #(request-thumbnail file-id page-id % "frame" "watch-state-changes")))) + (rx/map #(update-thumbnail file-id page-id % "frame" "watch-state-changes")))) (rx/take-until stopper-s)))))) diff --git a/frontend/src/app/main/ui/workspace/shapes/frame.cljs b/frontend/src/app/main/ui/workspace/shapes/frame.cljs index f4bd1f9d3a..be793c7559 100644 --- a/frontend/src/app/main/ui/workspace/shapes/frame.cljs +++ b/frontend/src/app/main/ui/workspace/shapes/frame.cljs @@ -109,7 +109,7 @@ (fn [{:keys [width height]}] (when (or (not (mth/close? width fixed-width 5)) (not (mth/close? height fixed-height 5))) - (st/emit! (dwt/request-thumbnail file-id page-id frame-id "frame" "check-thumbnail-size")))))))) + (st/emit! (dwt/update-thumbnail file-id page-id frame-id "frame" "check-thumbnail-size")))))))) (defn root-frame-wrapper-factory [shape-wrapper] @@ -176,7 +176,8 @@ (mf/with-effect [] (when-not (some? thumbnail-uri) (tm/schedule-on-idle - #(st/emit! (dwt/request-thumbnail file-id page-id frame-id "frame" "root-frame")))) + #(st/emit! (dwt/update-thumbnail file-id page-id frame-id "frame" "root-frame")))) + #(when-let [task (mf/ref-val task-ref)] (d/close! task))) diff --git a/frontend/src/app/util/queue.cljs b/frontend/src/app/util/queue.cljs index 1c68763f14..564fd3cda8 100644 --- a/frontend/src/app/util/queue.cljs +++ b/frontend/src/app/util/queue.cljs @@ -5,33 +5,26 @@ ;; Copyright (c) KALEIDOS INC (ns app.util.queue - (:require [app.common.logging :as l] - [app.common.math :as mth] - [app.util.time :as t])) + "Low-Level queuing mechanism, mainly used for process thumbnails" + (:require + [app.common.logging :as l] + [app.common.math :as mth] + [app.util.time :as t] + [beicon.v2.core :as rx])) (l/set-level! :info) (declare process) -(declare dequeue) - -(defrecord Queue [f items timeout time threshold max-iterations]) +(declare request-process) (defn create - [f threshold] - (Queue. f - #js [] - nil - 0 - threshold - ##Inf)) - -(defn- measure-fn - [f & args] - (let [tp (t/tpoint-ms) - _ (apply f args) - duration (tp)] - (l/dbg :hint "queue::measure-fn" :duration duration) - duration)) + [find-fn threshold] + #js {:find-fn find-fn + :items #js [] + :timeout nil + :time 0 + :threshold threshold + :max-iterations ##Inf}) (defn- next-process-time [queue] @@ -40,76 +33,101 @@ max-time 5000 min-time 1000 calc-time (mth/min (mth/max (* (- time threshold) 10) min-time) max-time)] - (l/dbg :hint "queue::next-process-time" :time time :threshold threshold :calc-time calc-time :max-time max-time :min-time min-time) + (l/dbg :hint "queue::next-process-time" + :time time + :threshold threshold + :calc-time calc-time + :max-time max-time + :min-time min-time) calc-time)) (defn- has-requested-process? [queue] - (not (nil? (unchecked-get queue "timeout")))) - -(defn- request-process - [queue time] - (l/dbg :hint "queue::request-process" :time time) - (unchecked-set queue "timeout" (js/setTimeout (fn [] (process queue)) time))) + (some? (unchecked-get queue "timeout"))) ;; NOTE: Right now there are no cases where we need to cancel a process ;; but if we do, we can use this function -#_(defn- cancel-process - [queue] - (l/dbg :hint "queue::cancel-process") - (let [timeout (unchecked-get queue "timeout")] - (when (some? timeout) - (js/clearTimeout timeout)) - (unchecked-set queue "timeout" nil))) +;; (defn- cancel-process +;; [queue] +;; (l/dbg :hint "queue::cancel-process") +;; (let [timeout (unchecked-get queue "timeout")] +;; (when (some? timeout) +;; (js/clearTimeout timeout)) +;; (unchecked-set queue "timeout" nil))) (defn- process - [queue] - (unchecked-set queue "timeout" nil) - (unchecked-set queue "time" 0) + [queue iterations] (let [threshold (unchecked-get queue "threshold") max-iterations (unchecked-get queue "max-iterations") - f (unchecked-get queue "f")] - (loop [item (dequeue queue) - iterations 0] - (l/dbg :hint "queue::process" :item item) - (when (some? item) - (let [duration (measure-fn f item) - time (unchecked-get queue "time") - time (unchecked-set queue "time" (+ time duration))] - (if (or (> time threshold) (>= iterations max-iterations)) - (request-process queue (next-process-time queue)) - (recur (dequeue queue) (inc iterations)))))))) + items (unchecked-get queue "items") + item (.shift ^js items)] -(defn- dequeue - [queue] - (let [items (unchecked-get queue "items")] - (.shift items))) + (when (some? item) + (let [tp (t/tpoint-ms) + f (unchecked-get item "f") + res (unchecked-get item "result")] + (rx/subscribe (f) + (fn [o] + (rx/push! res o)) + (fn [e] + (rx/error! res e)) + (fn [] + (rx/end! res) + (let [duration (tp) + time (unchecked-get queue "time") + time (+ time duration)] + (unchecked-set queue "time" time) + (if (or (> time threshold) (>= iterations max-iterations)) + (request-process queue 0 (next-process-time queue)) + (request-process queue (inc iterations) 0))))))))) -(defn enqueue-first +(defn- request-process + [queue iterations time] + (l/dbg :hint "queue::request-process" :time time) + (unchecked-set queue "timeout" + (js/setTimeout + (fn [] + (unchecked-set queue "timeout" nil) + (process queue iterations)) + time))) + +(defn- enqueue-first [queue item] - (assert (instance? Queue queue)) (let [items (unchecked-get queue "items")] - (.unshift items item) + (.unshift ^js items item) (when-not (has-requested-process? queue) - (request-process queue (next-process-time queue))))) + (request-process queue 0 (next-process-time queue))))) -(defn enqueue-last +(defn- enqueue-last [queue item] - (assert (instance? Queue queue)) (let [items (unchecked-get queue "items")] - (.push items item) + (.push ^js items item) (when-not (has-requested-process? queue) - (request-process queue (next-process-time queue))))) + (request-process queue 0 (next-process-time queue))))) (defn enqueue-unique - [queue item f] - (assert (instance? Queue queue)) - (let [items (unchecked-get queue "items")] + [queue request f] + (let [items (unchecked-get queue "items") + find-fn (unchecked-get queue "find-fn") + result (rx/subject)] + + (unchecked-set request "result" result) + (unchecked-set request "f" f) + ;; If tag is "frame", then they are added to the front of the queue ;; so that they are processed first, anything else is added to the ;; end of the queue. - (if (= (unchecked-get item "tag") "frame") - (when-not (.find ^js items f) - (enqueue-first queue item)) - (when-not (.findLast ^js items f) - (enqueue-last queue item))))) + (if (= (unchecked-get request "tag") "frame") + (let [item (.find ^js items find-fn)] + (if item + (let [other-result (unchecked-get item "result")] + (rx/subscribe other-result result)) + (enqueue-first queue request))) + + (let [item (.findLast ^js items find-fn)] + (if item + (let [other-result (unchecked-get item "result")] + (rx/subscribe other-result result)) + (enqueue-last queue request)))) + + (rx/to-observable result))) From ec7aa64c62805003994ae17fe1ddcf1202668fe9 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Wed, 12 Jun 2024 16:13:34 +0200 Subject: [PATCH 123/476] :sparkles: Disable http cache from `get-file-object-thumbnails` RPC method --- backend/src/app/rpc/commands/files_thumbnails.clj | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/backend/src/app/rpc/commands/files_thumbnails.clj b/backend/src/app/rpc/commands/files_thumbnails.clj index d766acd3c5..57c9d933d7 100644 --- a/backend/src/app/rpc/commands/files_thumbnails.clj +++ b/backend/src/app/rpc/commands/files_thumbnails.clj @@ -87,10 +87,7 @@ ::sm/params [:map {:title "get-file-object-thumbnails"} [:file-id ::sm/uuid] [:tag {:optional true} :string]] - ::sm/result [:map-of :string :string] - ::cond/get-object #(files/get-minimal-file %1 (:file-id %2)) - ::cond/reuse-key? true - ::cond/key-fn files/get-file-etag} + ::sm/result [:map-of :string :string]} [{:keys [::db/pool] :as cfg} {:keys [::rpc/profile-id file-id tag] :as params}] (dm/with-open [conn (db/open pool)] (files/check-read-permissions! conn profile-id file-id) From 740a8722312f2a3e43f5cf514f649c0be4c64abd Mon Sep 17 00:00:00 2001 From: Alejandro Alonso Date: Wed, 12 Jun 2024 13:12:58 +0200 Subject: [PATCH 124/476] :bug: Toolbar keeps toggling on and off on spacebar press --- CHANGES.md | 1 + frontend/playwright/ui/pages/WorkspacePage.js | 6 ++++++ frontend/playwright/ui/specs/workspace.spec.js | 11 +++++++++++ frontend/src/app/main/ui/workspace/top_toolbar.cljs | 11 ++++++++--- frontend/translations/en.po | 4 ++++ frontend/translations/es.po | 4 ++++ 6 files changed, 34 insertions(+), 3 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index e5a698f342..5ec9ccca77 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -39,6 +39,7 @@ - Fix change color on imported svg also changes the stroke alignment[Taiga #7673](https://github.com/penpot/penpot/pull/7673) - Fix show in view mode and interactions workflow [Taiga #4711](https://github.com/penpot/penpot/pull/4711) - Fix internal error when I set up a stroke for some objects without and with stroke [Taiga #7558](https://tree.taiga.io/project/penpot/issue/7558) +- Toolbar keeps toggling on and off on spacebar press [Taiga #7654](https://github.com/penpot/penpot/pull/7654) ## 2.0.3 diff --git a/frontend/playwright/ui/pages/WorkspacePage.js b/frontend/playwright/ui/pages/WorkspacePage.js index 131f949435..723a3947ca 100644 --- a/frontend/playwright/ui/pages/WorkspacePage.js +++ b/frontend/playwright/ui/pages/WorkspacePage.js @@ -43,7 +43,9 @@ export class WorkspacePage extends BaseWebSocketPage { this.presentUserListItems = page.getByTestId("active-users-list").getByAltText("Princesa Leia"); this.viewport = page.getByTestId("viewport"); this.rootShape = page.locator(`[id="shape-00000000-0000-0000-0000-000000000000"]`); + this.toolbarOptions = page.getByTestId("toolbar-options"); this.rectShapeButton = page.getByRole("button", { name: "Rectangle (R)" }); + this.toggleToolbarButton = page.getByRole("button", { name: "Toggle toolbar" }); this.colorpicker = page.getByTestId("colorpicker"); this.layers = page.getByTestId("layer-tree"); this.palette = page.getByTestId("palette"); @@ -121,6 +123,10 @@ export class WorkspacePage extends BaseWebSocketPage { ); } + async expectHiddenToolbarOptions() { + await expect(this.toolbarOptions).toHaveCSS("opacity", "0"); + } + async clickAssets(clickOptions = {}) { await this.sidebar.getByText("Assets").click(clickOptions); } diff --git a/frontend/playwright/ui/specs/workspace.spec.js b/frontend/playwright/ui/specs/workspace.spec.js index c96967384f..46c2922694 100644 --- a/frontend/playwright/ui/specs/workspace.spec.js +++ b/frontend/playwright/ui/specs/workspace.spec.js @@ -53,3 +53,14 @@ test("User makes a group", async ({ page }) => { await workspacePage.page.keyboard.press("ControlOrMeta+g"); await workspacePage.expectSelectedLayer("Group"); }); + +test("Bug 7654 - Toolbar keeps toggling on and off on spacebar press", async ({ page }) => { + const workspacePage = new WorkspacePage(page); + await workspacePage.setupEmptyFile(); + await workspacePage.goToWorkspace(); + + await workspacePage.toggleToolbarButton.click(); + await workspacePage.page.keyboard.press("Backspace"); + await workspacePage.page.keyboard.press("Enter"); + await workspacePage.expectHiddenToolbarOptions(); +}); diff --git a/frontend/src/app/main/ui/workspace/top_toolbar.cljs b/frontend/src/app/main/ui/workspace/top_toolbar.cljs index 979c84e19b..a7546507be 100644 --- a/frontend/src/app/main/ui/workspace/top_toolbar.cljs +++ b/frontend/src/app/main/ui/workspace/top_toolbar.cljs @@ -115,13 +115,16 @@ toggle-toolbar (mf/use-fn - #(st/emit! (dwc/toggle-toolbar-visibility)))] + (fn [event] + (dom/blur! (dom/get-target event)) + (st/emit! (dwc/toggle-toolbar-visibility))))] (when-not ^boolean read-only? [:aside {:class (stl/css-case :main-toolbar true :main-toolbar-no-rulers (not rulers?) :main-toolbar-hidden hide-toolbar?)} - [:ul {:class (stl/css :main-toolbar-options)} + [:ul {:class (stl/css :main-toolbar-options) + :data-testid "toolbar-options"} [:li [:button {:title (tr "workspace.toolbar.move" (sc/get-tooltip :move)) @@ -197,7 +200,9 @@ :on-click toggle-debug-panel} i/bug]])]] - [:button {:class (stl/css :toolbar-handler) + [:button {:title (tr "workspace.toolbar.toggle-toolbar") + :aria-label (tr "workspace.toolbar.toggle-toolbar") + :class (stl/css :toolbar-handler) :on-click toggle-toolbar} [:div {:class (stl/css :toolbar-handler-btn)}]]]))) diff --git a/frontend/translations/en.po b/frontend/translations/en.po index 46f507c17f..6f87ee268d 100644 --- a/frontend/translations/en.po +++ b/frontend/translations/en.po @@ -5109,6 +5109,10 @@ msgstr "Text (%s)" msgid "workspace.toolbar.text-palette" msgstr "Typographies (%s)" +#: src/app/main/ui/workspace/left_toolbar.cljs +msgid "workspace.toolbar.toggle-toolbar" +msgstr "Toggle toolbar" + msgid "workspace.top-bar.read-only.done" msgstr "Done" diff --git a/frontend/translations/es.po b/frontend/translations/es.po index ea0c9e5d6f..35c05984f0 100644 --- a/frontend/translations/es.po +++ b/frontend/translations/es.po @@ -5271,6 +5271,10 @@ msgstr "Texto (%s)" msgid "workspace.toolbar.text-palette" msgstr "Tipografías (%s)" +#: src/app/main/ui/workspace/left_toolbar.cljs +msgid "workspace.toolbar.toggle-toolbar" +msgstr "Alternar barra de herramientas" + msgid "workspace.top-bar.read-only.done" msgstr "Hecho" From b4004af2559fc3b8fb00c05718fcdb5e1e34fe76 Mon Sep 17 00:00:00 2001 From: AzazelN28 Date: Wed, 12 Jun 2024 14:43:27 +0200 Subject: [PATCH 125/476] :bug: Fix toolbar keeps hiding when clicking outside --- CHANGES.md | 1 + frontend/src/app/main/data/workspace/path/helpers.cljs | 1 + 2 files changed, 2 insertions(+) diff --git a/CHANGES.md b/CHANGES.md index 5ec9ccca77..ffe137f5f5 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -40,6 +40,7 @@ - Fix show in view mode and interactions workflow [Taiga #4711](https://github.com/penpot/penpot/pull/4711) - Fix internal error when I set up a stroke for some objects without and with stroke [Taiga #7558](https://tree.taiga.io/project/penpot/issue/7558) - Toolbar keeps toggling on and off on spacebar press [Taiga #7654](https://github.com/penpot/penpot/pull/7654) +- Fix toolbar keeps hiding when click outside workspace [Taiga #7776](https://tree.taiga.io/project/penpot/issue/7776) ## 2.0.3 diff --git a/frontend/src/app/main/data/workspace/path/helpers.cljs b/frontend/src/app/main/data/workspace/path/helpers.cljs index 2facaf53a6..b52ab6e723 100644 --- a/frontend/src/app/main/data/workspace/path/helpers.cljs +++ b/frontend/src/app/main/data/workspace/path/helpers.cljs @@ -22,6 +22,7 @@ (or (= type ::common/finish-path) (= type :app.main.data.workspace.path.shortcuts/esc-pressed) (= type :app.main.data.workspace.common/clear-edition-mode) + (= type :app.main.data.workspace.edition/clear-edition-mode) (= type :app.main.data.workspace/finalize-page) (= event :interrupt) ;; ESC (and ^boolean (mse/mouse-event? event) From 232cfea70976871f8b265dad1cc27d27d89176ed Mon Sep 17 00:00:00 2001 From: Eva Marco Date: Wed, 12 Jun 2024 12:02:12 +0200 Subject: [PATCH 126/476] :bug: Fix move scrollbar create a selection rectangle --- CHANGES.md | 1 + frontend/playwright/ui/pages/WorkspacePage.js | 10 +++++++ frontend/playwright/ui/specs/sidebar.spec.js | 2 -- .../playwright/ui/specs/workspace.spec.js | 28 +++++++++++++++++++ .../src/app/main/ui/workspace/viewport.cljs | 4 +-- .../ui/workspace/viewport/scroll_bars.cljs | 6 ++-- .../main/ui/workspace/viewport/widgets.cljs | 1 + 7 files changed, 46 insertions(+), 6 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index ffe137f5f5..65781b2687 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -20,6 +20,7 @@ ### :bug: Bugs fixed +- Fix selection rectangle appears on scroll [Taiga #7525](https://tree.taiga.io/project/penpot/issue/7525) - Fix layer tree not expanding to the bottom edge [Taiga #7466](https://tree.taiga.io/project/penpot/issue/7466) - Fix guides move when board is moved by inputs [Taiga #8010](https://tree.taiga.io/project/penpot/issue/8010) - Fix clickable area of Penptot logo in the viewer [Taiga #7988](https://tree.taiga.io/project/penpot/issue/7988) diff --git a/frontend/playwright/ui/pages/WorkspacePage.js b/frontend/playwright/ui/pages/WorkspacePage.js index 723a3947ca..3baa3ece14 100644 --- a/frontend/playwright/ui/pages/WorkspacePage.js +++ b/frontend/playwright/ui/pages/WorkspacePage.js @@ -51,6 +51,8 @@ export class WorkspacePage extends BaseWebSocketPage { this.palette = page.getByTestId("palette"); this.sidebar = page.getByTestId("left-sidebar"); this.librariesModal = page.getByTestId("libraries-modal"); + this.selectionRect = page.getByTestId("workspace-selection-rect"); + this.horizontalScrollbar = page.getByTestId("horizontal-scrollbar"); } async goToWorkspace({ fileId = WorkspacePage.anyFileId, pageId = WorkspacePage.anyPageId } = {}) { @@ -102,6 +104,14 @@ export class WorkspacePage extends BaseWebSocketPage { await this.page.mouse.up(); } + async panOnViewportAt(x, y, width, height) { + await this.page.waitForTimeout(100); + await this.viewport.hover({ position: { x, y } }); + await this.page.mouse.down({ button: "middle" }); + await this.viewport.hover({ position: { x: x + width, y: y + height } }); + await this.page.mouse.up({ button: "middle" }); + } + async togglePages() { const pagesToggle = this.page.getByText("Pages"); await pagesToggle.click(); diff --git a/frontend/playwright/ui/specs/sidebar.spec.js b/frontend/playwright/ui/specs/sidebar.spec.js index 468a661fae..bb0a4d451f 100644 --- a/frontend/playwright/ui/specs/sidebar.spec.js +++ b/frontend/playwright/ui/specs/sidebar.spec.js @@ -16,8 +16,6 @@ test.describe("Layers tab", () => { await workspace.togglePages(); const { height: heightCollapsed } = await workspace.layers.boundingBox(); - console.log(heightExpanded, heightCollapsed); - expect(heightExpanded > heightCollapsed); }); }); diff --git a/frontend/playwright/ui/specs/workspace.spec.js b/frontend/playwright/ui/specs/workspace.spec.js index 46c2922694..2800163b2a 100644 --- a/frontend/playwright/ui/specs/workspace.spec.js +++ b/frontend/playwright/ui/specs/workspace.spec.js @@ -64,3 +64,31 @@ test("Bug 7654 - Toolbar keeps toggling on and off on spacebar press", async ({ await workspacePage.page.keyboard.press("Enter"); await workspacePage.expectHiddenToolbarOptions(); }); + +test("Bug 7525 - User moves a scrollbar and no selciont rectangle appears", async ({ page }) => { + const workspacePage = new WorkspacePage(page); + await workspacePage.setupEmptyFile(); + await workspacePage.mockRPC(/get\-file\?/, "workspace/get-file-not-empty.json"); + await workspacePage.mockRPC("update-file?id=*", "workspace/update-file-create-rect.json"); + + await workspacePage.goToWorkspace({ + fileId: "6191cd35-bb1f-81f7-8004-7cc63d087374", + pageId: "6191cd35-bb1f-81f7-8004-7cc63d087375", + }); + + // Move created rect to a corner, in orther to get scrollbars + await workspacePage.panOnViewportAt(128, 128, 300, 300); + + // Check scrollbars appear + const horizontalScrollbar = workspacePage.horizontalScrollbar; + await expect(horizontalScrollbar).toBeVisible(); + + // Grab scrollbar and move + const {x, y} = await horizontalScrollbar.boundingBox(); + await page.waitForTimeout(100); + await workspacePage.viewport.hover({ position: { x: x, y: y + 5 } }); + await page.mouse.down(); + await workspacePage.viewport.hover({ position: { x: x - 130, y: y - 95 } }); + + await expect(workspacePage.selectionRect).not.toBeInViewport(); +}); diff --git a/frontend/src/app/main/ui/workspace/viewport.cljs b/frontend/src/app/main/ui/workspace/viewport.cljs index d2697e0184..670bd2c4cd 100644 --- a/frontend/src/app/main/ui/workspace/viewport.cljs +++ b/frontend/src/app/main/ui/workspace/viewport.cljs @@ -636,8 +636,8 @@ :objects base-objects :modifiers modifiers :shape frame - :view-only true}])) - + :view-only true}]))] + [:g.scrollbar-wrapper {:clipPath "url(#clip-handlers)"} [:& scroll-bars/viewport-scrollbars {:objects base-objects :zoom zoom diff --git a/frontend/src/app/main/ui/workspace/viewport/scroll_bars.cljs b/frontend/src/app/main/ui/workspace/viewport/scroll_bars.cljs index 1dd7a6f79e..76640fd88d 100644 --- a/frontend/src/app/main/ui/workspace/viewport/scroll_bars.cljs +++ b/frontend/src/app/main/ui/workspace/viewport/scroll_bars.cljs @@ -196,7 +196,8 @@ [:* (when show-v-scroll? - [:g.v-scroll {:fill clr/black} + [:g.v-scroll {:fill clr/black + :data-testid "vertical-scrollbar"} [:rect {:on-pointer-move #(on-pointer-move % :y) :on-pointer-down #(on-pointer-down % :y) :on-pointer-up on-pointer-up @@ -210,7 +211,8 @@ :style {:stroke "white" :stroke-width (/ 0.15 zoom)}}]]) (when show-h-scroll? - [:g.h-scroll {:fill clr/black} + [:g.h-scroll {:fill clr/black + :data-testid "horizontal-scrollbar"} [:rect {:on-pointer-move #(on-pointer-move % :x) :on-pointer-down #(on-pointer-down % :x) :on-pointer-up on-pointer-up diff --git a/frontend/src/app/main/ui/workspace/viewport/widgets.cljs b/frontend/src/app/main/ui/workspace/viewport/widgets.cljs index 6674446fcb..a9da0fd7c0 100644 --- a/frontend/src/app/main/ui/workspace/viewport/widgets.cljs +++ b/frontend/src/app/main/ui/workspace/viewport/widgets.cljs @@ -67,6 +67,7 @@ [:rect.selection-rect {:x (:x data) :y (:y data) + :data-testid "workspace-selection-rect" :width (:width data) :height (:height data) :style {;; Primary with 0.1 opacity From 67e1081f11e8d368ec6498753d53634af1ce794e Mon Sep 17 00:00:00 2001 From: Pablo Alba Date: Wed, 12 Jun 2024 13:28:36 +0200 Subject: [PATCH 127/476] :bug: Fix open overlay relative to a frame --- CHANGES.md | 1 + frontend/src/app/main/ui/viewer/shapes.cljs | 28 ++++++++++++++++----- 2 files changed, 23 insertions(+), 6 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index 65781b2687..70ac184d57 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -42,6 +42,7 @@ - Fix internal error when I set up a stroke for some objects without and with stroke [Taiga #7558](https://tree.taiga.io/project/penpot/issue/7558) - Toolbar keeps toggling on and off on spacebar press [Taiga #7654](https://github.com/penpot/penpot/pull/7654) - Fix toolbar keeps hiding when click outside workspace [Taiga #7776](https://tree.taiga.io/project/penpot/issue/7776) +- Fix open overlay relative to a frame [Taiga #7563](https://tree.taiga.io/project/penpot/issue/7563) ## 2.0.3 diff --git a/frontend/src/app/main/ui/viewer/shapes.cljs b/frontend/src/app/main/ui/viewer/shapes.cljs index 5832f28cea..833a9fd79b 100644 --- a/frontend/src/app/main/ui/viewer/shapes.cljs +++ b/frontend/src/app/main/ui/viewer/shapes.cljs @@ -44,9 +44,17 @@ (or (empty? overlays-ids) (nil? shape) (cfh/root? shape)) base-frame :else (find-relative-to-base-frame (cfh/get-parent objects (:id shape)) objects overlays-ids base-frame))) +(defn- ignore-frame-shape + [shape objects manual?] + (let [shape (cond-> shape ;; When the the interaction is not manual and its origin is a frame, + ;; we need to ignore it on all the find-frame calculations + (and (:frame-id shape) (not manual?)) + (assoc :type :rect)) + objects (assoc objects (:id shape) shape)] + [shape objects])) + (defn- activate-interaction [interaction shape base-frame frame-offset objects overlays] - (case (:action-type interaction) :navigate (when-let [frame-id (:destination interaction)] @@ -58,9 +66,11 @@ (dv/go-to-frame frame-id (:animation interaction))))) :open-overlay - (let [dest-frame-id (:destination interaction) + (let [manual? (= :manual (:overlay-pos-type interaction)) + [shape objects] (ignore-frame-shape shape objects manual?) + dest-frame-id (:destination interaction) dest-frame (get objects dest-frame-id) - relative-to-id (if (= :manual (:overlay-pos-type interaction)) + relative-to-id (if manual? (if (= (:type shape) :frame) ;; manual interactions are always from "self" (:frame-id shape) (:id shape)) @@ -88,7 +98,9 @@ fixed-base?)))) :toggle-overlay - (let [dest-frame-id (:destination interaction) + (let [manual? (= :manual (:overlay-pos-type interaction)) + [shape objects] (ignore-frame-shape shape objects manual?) + dest-frame-id (:destination interaction) dest-frame (get objects dest-frame-id) relative-to-id (if (= :manual (:overlay-pos-type interaction)) (if (= (:type shape) :frame) ;; manual interactions are always from "self" @@ -146,7 +158,9 @@ (st/emit! (dv/close-overlay frame-id))) :toggle-overlay - (let [dest-frame-id (:destination interaction) + (let [manual? (= :manual (:overlay-pos-type interaction)) + [shape objects] (ignore-frame-shape shape objects manual?) + dest-frame-id (:destination interaction) dest-frame (get objects dest-frame-id) relative-to-id (if (= :manual (:overlay-pos-type interaction)) (if (= (:type shape) :frame) ;; manual interactions are always from "self" @@ -178,7 +192,9 @@ :close-overlay - (let [dest-frame-id (:destination interaction) + (let [manual? (= :manual (:overlay-pos-type interaction)) + [shape objects] (ignore-frame-shape shape objects manual?) + dest-frame-id (:destination interaction) dest-frame (get objects dest-frame-id) relative-to-id (if (= :manual (:overlay-pos-type interaction)) (if (= (:type shape) :frame) ;; manual interactions are always from "self" From c15c3b14ee8f358808a5346c2225b13de9e98714 Mon Sep 17 00:00:00 2001 From: Alejandro Alonso Date: Thu, 6 Jun 2024 12:28:41 +0200 Subject: [PATCH 128/476] :sparkles: Add e2e tests for fix color palette default library --- frontend/playwright/ui/pages/WorkspacePage.js | 8 +++++- .../playwright/ui/specs/workspace.spec.js | 28 +++++++++++++++++++ .../app/main/ui/components/tab_container.cljs | 1 + .../src/app/main/ui/workspace/libraries.cljs | 3 +- 4 files changed, 38 insertions(+), 2 deletions(-) diff --git a/frontend/playwright/ui/pages/WorkspacePage.js b/frontend/playwright/ui/pages/WorkspacePage.js index 3baa3ece14..4eac37d7fd 100644 --- a/frontend/playwright/ui/pages/WorkspacePage.js +++ b/frontend/playwright/ui/pages/WorkspacePage.js @@ -50,9 +50,9 @@ export class WorkspacePage extends BaseWebSocketPage { this.layers = page.getByTestId("layer-tree"); this.palette = page.getByTestId("palette"); this.sidebar = page.getByTestId("left-sidebar"); - this.librariesModal = page.getByTestId("libraries-modal"); this.selectionRect = page.getByTestId("workspace-selection-rect"); this.horizontalScrollbar = page.getByTestId("horizontal-scrollbar"); + this.librariesModal = page.getByTestId("libraries-modal"); } async goToWorkspace({ fileId = WorkspacePage.anyFileId, pageId = WorkspacePage.anyPageId } = {}) { @@ -160,4 +160,10 @@ export class WorkspacePage extends BaseWebSocketPage { async clickColorPalette(clickOptions = {}) { await this.palette.getByRole("button", { name: "Color Palette (Alt+P)" }).click(clickOptions); } + + async clickColorPalette(clickOptions = {}) { + await this.palette + .getByRole("button", { name: "Color Palette (Alt+P)" }) + .click(clickOptions); + } } diff --git a/frontend/playwright/ui/specs/workspace.spec.js b/frontend/playwright/ui/specs/workspace.spec.js index 2800163b2a..3682ecf68e 100644 --- a/frontend/playwright/ui/specs/workspace.spec.js +++ b/frontend/playwright/ui/specs/workspace.spec.js @@ -92,3 +92,31 @@ test("Bug 7525 - User moves a scrollbar and no selciont rectangle appears", asyn await expect(workspacePage.selectionRect).not.toBeInViewport(); }); + +test("User adds a library and its automatically selected in the color palette", async ({ page }) => { + const workspacePage = new WorkspacePage(page); + await workspacePage.setupEmptyFile(); + await workspacePage.mockRPC("link-file-to-library", "workspace/link-file-to-library.json"); + await workspacePage.mockRPC("unlink-file-from-library", "workspace/unlink-file-from-library.json"); + await workspacePage.mockRPC("get-team-shared-files?team-id=*", "workspace/get-team-shared-libraries-non-empty.json"); + + await workspacePage.goToWorkspace(); + + // Add Testing library 1 + await workspacePage.clickColorPalette(); + await workspacePage.clickAssets(); + // Now the get-file call should return a library + await workspacePage.mockRPC(/get\-file\?/, "workspace/get-file-library.json"); + await workspacePage.openLibrariesModal(); + await workspacePage.clickLibrary("Testing library 1") + await workspacePage.closeLibrariesModal(); + + await expect(workspacePage.palette.getByRole("button", { name: "test-color-187cd5" })).toBeVisible(); + + // Remove Testing library 1 + await workspacePage.openLibrariesModal(); + await workspacePage.clickLibrary("Testing library 1") + await workspacePage.closeLibrariesModal(); + + await expect(workspacePage.palette.getByText('There are no color styles in your library yet')).toBeVisible(); +}); diff --git a/frontend/src/app/main/ui/components/tab_container.cljs b/frontend/src/app/main/ui/components/tab_container.cljs index 20c79a417f..1e3b99079c 100644 --- a/frontend/src/app/main/ui/components/tab_container.cljs +++ b/frontend/src/app/main/ui/components/tab_container.cljs @@ -59,6 +59,7 @@ [:div {:key (str/concat "tab-" sid) :title tooltip :data-id sid + :data-testid sid :on-click on-click :class (stl/css-case :tab-container-tab-title true diff --git a/frontend/src/app/main/ui/workspace/libraries.cljs b/frontend/src/app/main/ui/workspace/libraries.cljs index 6d5813c0d2..5e354e423f 100644 --- a/frontend/src/app/main/ui/workspace/libraries.cljs +++ b/frontend/src/app/main/ui/workspace/libraries.cljs @@ -519,7 +519,8 @@ [:div {:class (stl/css :modal-dialog)} [:button {:class (stl/css :close-btn) :on-click close-dialog - :aria-label (tr "labels.close")} + :aria-label (tr "labels.close") + :data-testid "close-libraries"} close-icon] [:div {:class (stl/css :modal-title)} (tr "workspace.libraries.libraries")] From d48e4866681470f576853f6534224cc002e63d52 Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Mon, 10 Jun 2024 16:03:07 +0200 Subject: [PATCH 129/476] :bug: Fix problem moving layout to frame --- common/src/app/common/types/shape/layout.cljc | 29 +- .../data/workspace/get-file-7760.json | 49 +++ .../workspace/get-file-fragment-7760.json | 383 ++++++++++++++++++ frontend/playwright/ui/pages/WorkspacePage.js | 7 + .../playwright/ui/specs/design-tab.spec.js | 32 ++ .../app/main/ui/components/radio_buttons.cljs | 2 +- frontend/src/app/main/ui/shapes/shape.cljs | 1 + .../sidebar/options/menus/layout_item.cljs | 4 +- 8 files changed, 492 insertions(+), 15 deletions(-) create mode 100644 frontend/playwright/data/workspace/get-file-7760.json create mode 100644 frontend/playwright/data/workspace/get-file-fragment-7760.json diff --git a/common/src/app/common/types/shape/layout.cljc b/common/src/app/common/types/shape/layout.cljc index 7f5e6e83a2..f791eaee13 100644 --- a/common/src/app/common/types/shape/layout.cljc +++ b/common/src/app/common/types/shape/layout.cljc @@ -604,18 +604,23 @@ (defn remove-layout-item-data [shape] - (dissoc shape - :layout-item-margin - :layout-item-margin-type - :layout-item-h-sizing - :layout-item-v-sizing - :layout-item-max-h - :layout-item-min-h - :layout-item-max-w - :layout-item-min-w - :layout-item-align-self - :layout-item-absolute - :layout-item-z-index)) + (-> shape + (dissoc :layout-item-margin + :layout-item-margin-type + :layout-item-max-h + :layout-item-min-h + :layout-item-max-w + :layout-item-min-w + :layout-item-align-self + :layout-item-absolute + :layout-item-z-index) + (cond-> (or (not (any-layout? shape)) + (= :fill (:layout-item-h-sizing shape))) + (dissoc :layout-item-h-sizing) + + (or (not (any-layout? shape)) + (= :fill (:layout-item-v-sizing shape))) + (dissoc :layout-item-v-sizing)))) (defn update-flex-scale [shape scale] diff --git a/frontend/playwright/data/workspace/get-file-7760.json b/frontend/playwright/data/workspace/get-file-7760.json new file mode 100644 index 0000000000..ff33a7a941 --- /dev/null +++ b/frontend/playwright/data/workspace/get-file-7760.json @@ -0,0 +1,49 @@ +{ + "~:features": { + "~#set": [ + "layout/grid", + "styles/v2", + "fdata/pointer-map", + "fdata/objects-map", + "components/v2", + "fdata/shape-data-type" + ] + }, + "~:permissions": { + "~:type": "~:membership", + "~:is-owner": true, + "~:is-admin": true, + "~:can-edit": true, + "~:can-read": true, + "~:is-logged": true + }, + "~:has-media-trimmed": false, + "~:comment-thread-seqn": 0, + "~:name": "New File 6", + "~:revn": 5, + "~:modified-at": "~m1718094617219", + "~:id": "~ucd90e028-326a-80b4-8004-7cdec16ffad5", + "~:is-shared": false, + "~:version": 48, + "~:project-id": "~u128636f9-5e78-812b-8004-350dd1a8869a", + "~:created-at": "~m1718094569923", + "~:data": { + "~:pages": [ + "~ucd90e028-326a-80b4-8004-7cdec16ffad6" + ], + "~:pages-index": { + "~ucd90e028-326a-80b4-8004-7cdec16ffad6": { + "~#penpot/pointer": [ + "~ucd90e028-326a-80b4-8004-7cdeefa23ece", + { + "~:created-at": "~m1718094617224" + } + ] + } + }, + "~:id": "~ucd90e028-326a-80b4-8004-7cdec16ffad5", + "~:options": { + "~:components-v2": true + } + } +} diff --git a/frontend/playwright/data/workspace/get-file-fragment-7760.json b/frontend/playwright/data/workspace/get-file-fragment-7760.json new file mode 100644 index 0000000000..0c8011553d --- /dev/null +++ b/frontend/playwright/data/workspace/get-file-fragment-7760.json @@ -0,0 +1,383 @@ +{ + "~:id": "~ucd90e028-326a-80b4-8004-7cdeefa23ece", + "~:file-id": "~ucd90e028-326a-80b4-8004-7cdec16ffad5", + "~:created-at": "~m1718094617214", + "~:content": { + "~:options": {}, + "~:objects": { + "~u00000000-0000-0000-0000-000000000000": { + "~#shape": { + "~:y": 0, + "~:hide-fill-on-export": false, + "~:transform": { + "~#matrix": { + "~:a": 1.0, + "~:b": 0.0, + "~:c": 0.0, + "~:d": 1.0, + "~:e": 0.0, + "~:f": 0.0 + } + }, + "~:rotation": 0, + "~:name": "Root Frame", + "~:width": 0.01, + "~:type": "~:frame", + "~:points": [ + { + "~#point": { + "~:x": 0, + "~:y": 0 + } + }, + { + "~#point": { + "~:x": 0.01, + "~:y": 0 + } + }, + { + "~#point": { + "~:x": 0.01, + "~:y": 0.01 + } + }, + { + "~#point": { + "~:x": 0, + "~:y": 0.01 + } + } + ], + "~:proportion-lock": false, + "~:transform-inverse": { + "~#matrix": { + "~:a": 1.0, + "~:b": 0.0, + "~:c": 0.0, + "~:d": 1.0, + "~:e": 0.0, + "~:f": 0.0 + } + }, + "~:id": "~u00000000-0000-0000-0000-000000000000", + "~:parent-id": "~u00000000-0000-0000-0000-000000000000", + "~:frame-id": "~u00000000-0000-0000-0000-000000000000", + "~:strokes": [], + "~:x": 0, + "~:proportion": 1.0, + "~:selrect": { + "~#rect": { + "~:x": 0, + "~:y": 0, + "~:width": 0.01, + "~:height": 0.01, + "~:x1": 0, + "~:y1": 0, + "~:x2": 0.01, + "~:y2": 0.01 + } + }, + "~:fills": [ + { + "~:fill-color": "#FFFFFF", + "~:fill-opacity": 1 + } + ], + "~:flip-x": null, + "~:height": 0.01, + "~:flip-y": null, + "~:shapes": [ + "~u86087f92-9a17-8067-8004-7cdec45bee43", + "~u86087f92-9a17-8067-8004-7cded1cbe70e" + ] + } + }, + "~u86087f92-9a17-8067-8004-7cdec45bee43": { + "~#shape": { + "~:y": 341, + "~:hide-fill-on-export": false, + "~:layout-gap-type": "~:multiple", + "~:layout-padding": { + "~:p1": 34, + "~:p2": 36, + "~:p3": 34, + "~:p4": 36 + }, + "~:transform": { + "~#matrix": { + "~:a": 1.0, + "~:b": 0.0, + "~:c": 0.0, + "~:d": 1.0, + "~:e": 0.0, + "~:f": 0.0 + } + }, + "~:rotation": 0, + "~:layout-wrap-type": "~:nowrap", + "~:grow-type": "~:fixed", + "~:layout": "~:flex", + "~:hide-in-viewer": false, + "~:name": "Flex Board", + "~:layout-align-items": "~:start", + "~:width": 176, + "~:layout-padding-type": "~:simple", + "~:type": "~:frame", + "~:points": [ + { + "~#point": { + "~:x": 217, + "~:y": 341 + } + }, + { + "~#point": { + "~:x": 393, + "~:y": 341 + } + }, + { + "~#point": { + "~:x": 393, + "~:y": 511 + } + }, + { + "~#point": { + "~:x": 217, + "~:y": 511 + } + } + ], + "~:layout-item-h-sizing": "~:auto", + "~:proportion-lock": false, + "~:layout-gap": { + "~:row-gap": 0, + "~:column-gap": 0 + }, + "~:transform-inverse": { + "~#matrix": { + "~:a": 1.0, + "~:b": 0.0, + "~:c": 0.0, + "~:d": 1.0, + "~:e": 0.0, + "~:f": 0.0 + } + }, + "~:layout-item-v-sizing": "~:auto", + "~:layout-justify-content": "~:start", + "~:id": "~u86087f92-9a17-8067-8004-7cdec45bee43", + "~:parent-id": "~u00000000-0000-0000-0000-000000000000", + "~:layout-flex-dir": "~:row", + "~:layout-align-content": "~:stretch", + "~:frame-id": "~u00000000-0000-0000-0000-000000000000", + "~:strokes": [], + "~:x": 217, + "~:proportion": 1, + "~:selrect": { + "~#rect": { + "~:x": 217, + "~:y": 341, + "~:width": 176, + "~:height": 170, + "~:x1": 217, + "~:y1": 341, + "~:x2": 393, + "~:y2": 511 + } + }, + "~:fills": [ + { + "~:fill-color": "#FFFFFF", + "~:fill-opacity": 1 + } + ], + "~:flip-x": null, + "~:height": 170, + "~:flip-y": null, + "~:shapes": [ + "~u86087f92-9a17-8067-8004-7cdec98dfa7f" + ] + } + }, + "~u86087f92-9a17-8067-8004-7cdec98dfa7f": { + "~#shape": { + "~:y": 375, + "~:rx": 0, + "~:transform": { + "~#matrix": { + "~:a": 1.0, + "~:b": 0.0, + "~:c": 0.0, + "~:d": 1.0, + "~:e": 0.0, + "~:f": 0.0 + } + }, + "~:rotation": 0, + "~:grow-type": "~:fixed", + "~:hide-in-viewer": false, + "~:name": "Rectangle", + "~:width": 104, + "~:type": "~:rect", + "~:points": [ + { + "~#point": { + "~:x": 253, + "~:y": 375 + } + }, + { + "~#point": { + "~:x": 357, + "~:y": 375 + } + }, + { + "~#point": { + "~:x": 357, + "~:y": 477 + } + }, + { + "~#point": { + "~:x": 253, + "~:y": 477 + } + } + ], + "~:proportion-lock": false, + "~:transform-inverse": { + "~#matrix": { + "~:a": 1.0, + "~:b": 0.0, + "~:c": 0.0, + "~:d": 1.0, + "~:e": 0.0, + "~:f": 0.0 + } + }, + "~:id": "~u86087f92-9a17-8067-8004-7cdec98dfa7f", + "~:parent-id": "~u86087f92-9a17-8067-8004-7cdec45bee43", + "~:frame-id": "~u86087f92-9a17-8067-8004-7cdec45bee43", + "~:strokes": [], + "~:x": 253, + "~:proportion": 1, + "~:selrect": { + "~#rect": { + "~:x": 253, + "~:y": 375, + "~:width": 104, + "~:height": 102, + "~:x1": 253, + "~:y1": 375, + "~:x2": 357, + "~:y2": 477 + } + }, + "~:fills": [ + { + "~:fill-color": "#B1B2B5", + "~:fill-opacity": 1 + } + ], + "~:flip-x": null, + "~:ry": 0, + "~:height": 102, + "~:flip-y": null + } + }, + "~u86087f92-9a17-8067-8004-7cded1cbe70e": { + "~#shape": { + "~:y": 300, + "~:hide-fill-on-export": false, + "~:transform": { + "~#matrix": { + "~:a": 1.0, + "~:b": 0.0, + "~:c": 0.0, + "~:d": 1.0, + "~:e": 0.0, + "~:f": 0.0 + } + }, + "~:rotation": 0, + "~:grow-type": "~:fixed", + "~:hide-in-viewer": false, + "~:name": "Container Board", + "~:width": 434, + "~:type": "~:frame", + "~:points": [ + { + "~#point": { + "~:x": 689, + "~:y": 300 + } + }, + { + "~#point": { + "~:x": 1123, + "~:y": 300 + } + }, + { + "~#point": { + "~:x": 1123, + "~:y": 741 + } + }, + { + "~#point": { + "~:x": 689, + "~:y": 741 + } + } + ], + "~:proportion-lock": false, + "~:transform-inverse": { + "~#matrix": { + "~:a": 1.0, + "~:b": 0.0, + "~:c": 0.0, + "~:d": 1.0, + "~:e": 0.0, + "~:f": 0.0 + } + }, + "~:id": "~u86087f92-9a17-8067-8004-7cded1cbe70e", + "~:parent-id": "~u00000000-0000-0000-0000-000000000000", + "~:frame-id": "~u00000000-0000-0000-0000-000000000000", + "~:strokes": [], + "~:x": 689, + "~:proportion": 1, + "~:selrect": { + "~#rect": { + "~:x": 689, + "~:y": 300, + "~:width": 434, + "~:height": 441, + "~:x1": 689, + "~:y1": 300, + "~:x2": 1123, + "~:y2": 741 + } + }, + "~:fills": [ + { + "~:fill-color": "#FFFFFF", + "~:fill-opacity": 1 + } + ], + "~:flip-x": null, + "~:height": 441, + "~:flip-y": null, + "~:shapes": [] + } + } + }, + "~:id": "~ucd90e028-326a-80b4-8004-7cdec16ffad6", + "~:name": "Page 1" + } +} diff --git a/frontend/playwright/ui/pages/WorkspacePage.js b/frontend/playwright/ui/pages/WorkspacePage.js index 4eac37d7fd..c8f0c49cca 100644 --- a/frontend/playwright/ui/pages/WorkspacePage.js +++ b/frontend/playwright/ui/pages/WorkspacePage.js @@ -117,6 +117,13 @@ export class WorkspacePage extends BaseWebSocketPage { await pagesToggle.click(); } + async moveSelectionToShape(name) { + await this.page.locator('rect.viewport-selrect').hover(); + await this.page.mouse.down(); + await this.viewport.getByTestId(name).first().hover({ force: true }); + await this.page.mouse.up(); + } + async clickLeafLayer(name, clickOptions = {}) { const layer = this.layers.getByText(name); await layer.click(clickOptions); diff --git a/frontend/playwright/ui/specs/design-tab.spec.js b/frontend/playwright/ui/specs/design-tab.spec.js index 0c890c07ea..7a43aa1661 100644 --- a/frontend/playwright/ui/specs/design-tab.spec.js +++ b/frontend/playwright/ui/specs/design-tab.spec.js @@ -92,3 +92,35 @@ test.describe("Multiple shapes attributes", () => { await expect(workspace.page.getByTestId("add-blur")).toBeHidden(); }); }); + +test("BUG 7760 - Layout losing properties when changing parents", async ({ page }) => { + const workspacePage = new WorkspacePage(page); + await workspacePage.setupEmptyFile(); + await workspacePage.mockRPC(/get\-file\?/, "workspace/get-file-7760.json"); + await workspacePage.mockRPC( + "get-file-fragment?file-id=*&fragment-id=*", + "workspace/get-file-fragment-7760.json", + ); + await workspacePage.mockRPC("update-file?id=*", "workspace/update-file-create-rect.json"); + + await workspacePage.goToWorkspace({ + fileId: "cd90e028-326a-80b4-8004-7cdec16ffad5", + pageId: "cd90e028-326a-80b4-8004-7cdec16ffad6", + }); + + // Select the flex board and drag it into the other container board + await workspacePage.clickLeafLayer("Flex Board"); + + // Move the first board into the second + const hAuto = await workspacePage.page.getByTitle("Fit content (Horizontal)"); + const vAuto = await workspacePage.page.getByTitle("Fit content (Vertical)"); + + await expect(vAuto.locator("input")).toBeChecked(); + await expect(hAuto.locator("input")).toBeChecked(); + + await workspacePage.moveSelectionToShape("Container Board"); + + // The first board properties should still be auto width/height + await expect(vAuto.locator("input")).toBeChecked(); + await expect(hAuto.locator("input")).toBeChecked(); +}); diff --git a/frontend/src/app/main/ui/components/radio_buttons.cljs b/frontend/src/app/main/ui/components/radio_buttons.cljs index 0d7cce2948..dbaffebb58 100644 --- a/frontend/src/app/main/ui/components/radio_buttons.cljs +++ b/frontend/src/app/main/ui/components/radio_buttons.cljs @@ -54,7 +54,7 @@ :name name :disabled disabled :value value - :checked checked?}]])) + :default-checked checked?}]])) (mf/defc radio-buttons {::mf/props :obj} diff --git a/frontend/src/app/main/ui/shapes/shape.cljs b/frontend/src/app/main/ui/shapes/shape.cljs index e4082b89c5..c344ec857d 100644 --- a/frontend/src/app/main/ui/shapes/shape.cljs +++ b/frontend/src/app/main/ui/shapes/shape.cljs @@ -96,6 +96,7 @@ (obj/unset! "disable-shadows?") (obj/set! "ref" ref) (obj/set! "id" (dm/fmt "shape-%" shape-id)) + (obj/set! "data-testid" (:name shape)) ;; TODO: This is added for backward compatibility. (cond-> (and (cfh/text-shape? shape) (empty? (:position-data shape))) diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs b/frontend/src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs index 5092d025bf..681e879f3a 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs @@ -250,7 +250,7 @@ [:& radio-button {:value "auto" :icon i/hug-content - :title "Fit content" + :title "Fit content (Horizontal)" :id "behaviour-h-auto"}])]]) (mf/defc element-behaviour-vertical @@ -288,7 +288,7 @@ {:value "auto" :icon i/hug-content :icon-class (stl/css :rotated) - :title "Fit content" + :title "Fit content (Vertical)" :id "behaviour-v-auto"}])]]) (mf/defc align-self-row From 535246f1c6f94af3a0dd2c1f083248c59d83773e Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Thu, 13 Jun 2024 12:45:36 +0200 Subject: [PATCH 130/476] :bug: Fix onboarding step1 values --- frontend/src/app/main/ui/onboarding/questions.cljs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/frontend/src/app/main/ui/onboarding/questions.cljs b/frontend/src/app/main/ui/onboarding/questions.cljs index 8889390977..404713b864 100644 --- a/frontend/src/app/main/ui/onboarding/questions.cljs +++ b/frontend/src/app/main/ui/onboarding/questions.cljs @@ -82,9 +82,9 @@ [{:keys [on-next form]}] (let [use-options (mf/with-memo [] - (shuffle [{:label (tr "questions.use-work") :value "use-work"} - {:label (tr "questions.use-education") :value "use-education"} - {:label (tr "questions.use-personal") :value "use-personal"}])) + (shuffle [{:label (tr "questions.use-work") :value "work"} + {:label (tr "questions.use-education") :value "education"} + {:label (tr "questions.use-personal") :value "personal"}])) planning-options (mf/with-memo [] From 1ad21719334454026cbd419364d0b7da23c1f4cd Mon Sep 17 00:00:00 2001 From: Alejandro Alonso Date: Thu, 13 Jun 2024 14:47:42 +0200 Subject: [PATCH 131/476] :bug: Fix persistence status widget lost saving status color --- frontend/resources/styles/common/refactor/design-tokens.scss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/resources/styles/common/refactor/design-tokens.scss b/frontend/resources/styles/common/refactor/design-tokens.scss index dd47ec11ee..a9c9b72cb0 100644 --- a/frontend/resources/styles/common/refactor/design-tokens.scss +++ b/frontend/resources/styles/common/refactor/design-tokens.scss @@ -354,7 +354,7 @@ // STATUS WIDGET --status-widget-background-color-success: var(--status-color-success-500); --status-widget-background-color-warning: var(--status-color-warning-500); - --status-widget-background-color-pending: var(--status-color-pending-500); + --status-widget-background-color-pending: var(--status-color-info-500); --status-widget-background-color-error: var(--status-color-error-500); --status-widget-icon-foreground-color: var(--color-background-primary); From b4c952860337e9bc006f58293c5167002e9ce84c Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Thu, 13 Jun 2024 11:41:12 +0200 Subject: [PATCH 132/476] :sparkles: Add missing frontend translations to devenv watcher --- frontend/scripts/watch.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/frontend/scripts/watch.js b/frontend/scripts/watch.js index 56fb84a8e9..bdbe537208 100644 --- a/frontend/scripts/watch.js +++ b/frontend/scripts/watch.js @@ -63,6 +63,12 @@ h.watch("resources/templates", null, async function (path) { await h.compileTemplates(); }); +log.info("watch: translations (~)") +h.watch("translations", null, async function (path) { + log.info("changed:", path); + await h.compileTemplates(); +}); + log.info("watch: assets (~)") h.watch(["resources/images", "resources/fonts", "resources/plugins-runtime"], null, async function (path) { log.info("changed:", path); From a9f5b1559f29da5d907734c2a577afa194d3b738 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Thu, 13 Jun 2024 18:11:54 +0200 Subject: [PATCH 133/476] :sparkles: Make translations consistent on the onboarding questions modal --- .../src/app/main/ui/onboarding/questions.cljs | 147 +++++++++--------- .../app/main/ui/workspace/right_header.cljs | 6 +- frontend/translations/en.po | 120 +++++++------- frontend/translations/es.po | 118 +++++++------- 4 files changed, 194 insertions(+), 197 deletions(-) diff --git a/frontend/src/app/main/ui/onboarding/questions.cljs b/frontend/src/app/main/ui/onboarding/questions.cljs index 404713b864..9904790dbf 100644 --- a/frontend/src/app/main/ui/onboarding/questions.cljs +++ b/frontend/src/app/main/ui/onboarding/questions.cljs @@ -49,12 +49,12 @@ (when (some? on-prev) [:button {:class (stl/css :prev-button) :on-click on-prev} - (tr "questions.previous")]) + (tr "labels.previous")]) [:> fm/submit-button* {:label (if (< step 5) - (tr "questions.next") - (tr "questions.start")) + (tr "labels.next") + (tr "labels.start")) :class (stl/css :next-button)}]]])) (s/def ::questions-form-step-1 @@ -82,28 +82,28 @@ [{:keys [on-next form]}] (let [use-options (mf/with-memo [] - (shuffle [{:label (tr "questions.use-work") :value "work"} - {:label (tr "questions.use-education") :value "education"} - {:label (tr "questions.use-personal") :value "personal"}])) + (shuffle [{:label (tr "onboarding.questions.use.work") :value "work"} + {:label (tr "onboarding.questions.use.education") :value "education"} + {:label (tr "onboarding.questions.use.personal") :value "personal"}])) planning-options (mf/with-memo [] - (-> (shuffle [{:label (tr "questions.select-option") + (-> (shuffle [{:label (tr "labels.select-option") :value "" :key "questions:what-brings-you-here" :disabled true} - {:label (tr "questions.reasons.exploring") + {:label (tr "onboarding.questions.reasons.exploring") :value "discover-more-about-penpot" :key "discover-more-about-penpot"} - {:label (tr "questions.reasons.fit") + {:label (tr "onboarding.questions.reasons.fit") :value "test-penpot-to-see-if-its-a-fit-for-team" :key "test-penpot-to-see-if-its-a-fit-for-team"} - {:label (tr "questions.reasons.alternative") + {:label (tr "onboarding.questions.reasons.alternative") :value "alternative-to-figma" :key "alternative-to-figma"} - {:label (tr "questions.reasons.testing") + {:label (tr "onboarding.questions.reasons.testing") :value "try-out-before-using-penpot-on-premise" :key "try-out-before-using-penpot-on-premise"}]) - (conj {:label (tr "questions.other-short") :value "other"}))) + (conj {:label (tr "labels.other-short") :value "other"}))) current-planning (dm/get-in @form [:data :planning])] @@ -116,22 +116,22 @@ [:img {:class (stl/css :header-image) :src "images/form/use-for-1.png" - :alt (tr "questions.lets-get-started")}] + :alt (tr "onboarding.questions.lets-get-started")}] [:h1 {:class (stl/css :modal-title)} - (tr "questions.step1-title")] + (tr "onboarding.questions.step1.title")] [:p {:class (stl/css :modal-text)} - (tr "questions.step1-subtitle")] + (tr "onboarding.questions.step1.subtitle")] [:div {:class (stl/css :modal-question)} [:h3 {:class (stl/css :modal-subtitle)} - (tr "questions.step1-question1")] + (tr "onboarding.questions.step1.question1")] [:& fm/radio-buttons {:options use-options :name :expected-use :class (stl/css :radio-btns)}] [:h3 {:class (stl/css :modal-subtitle)} - (tr "questions.step1-question2")] + (tr "onboarding.questions.step1.question2")] [:& fm/select {:options planning-options @@ -143,7 +143,7 @@ (when (= current-planning "other") [:& fm/input {:name :planning-other :class (stl/css :input-spacing) - :placeholder (tr "questions.other") + :placeholder (tr "labels.other") :label ""}])]])) (s/def ::questions-form-step-2 @@ -168,17 +168,17 @@ [{:keys [on-next on-prev form]}] (let [design-tool-options (mf/with-memo [] - (-> (shuffle [{:label (tr "questions.figma") :img-width "48px" :img-height "60px" + (-> (shuffle [{:label (tr "labels.figma") :img-width "48px" :img-height "60px" :value "figma" :image "images/form/figma.png"} - {:label (tr "questions.sketch") :img-width "48px" :img-height "60px" + {:label (tr "labels.sketch") :img-width "48px" :img-height "60px" :value "sketch" :image "images/form/sketch.png"} - {:label (tr "questions.adobe-xd") :img-width "48px" :img-height "60px" + {:label (tr "labels.adobe-xd") :img-width "48px" :img-height "60px" :value "adobe-xd" :image "images/form/adobe-xd.png"} - {:label (tr "questions.canva") :img-width "48px" :img-height "60px" + {:label (tr "labels.canva") :img-width "48px" :img-height "60px" :value "canva" :image "images/form/canva.png"} - {:label (tr "questions.invision") :img-width "48px" :img-height "60px" + {:label (tr "labels.invision") :img-width "48px" :img-height "60px" :value "invision" :image "images/form/invision.png"}]) - (conj {:label (tr "questions.other-short") :value "other" :icon i/curve}))) + (conj {:label (tr "labels.other-short") :value "other" :icon i/curve}))) current-experience (dm/get-in @form [:clean-data :experience-design-tool]) @@ -199,7 +199,7 @@ :class (stl/css :step-2)} [:h1 {:class (stl/css :modal-title)} - (tr "question.design-tool-more-used")] + (tr "onboarding.questions.step2.title")] [:div {:class (stl/css :radio-wrapper)} [:& fm/image-radio-buttons {:options design-tool-options :img-width "48px" @@ -212,7 +212,7 @@ (when (= current-experience "other") [:& fm/input {:name :experience-design-tool-other :class (stl/css :input-spacing) - :placeholder (tr "questions.other") + :placeholder (tr "labels.other") :label ""}])]])) (s/def ::questions-form-step-3 @@ -246,36 +246,35 @@ [{:keys [on-next on-prev form]}] (let [role-options (mf/with-memo [] - (-> (shuffle [{:label (tr "questions.select-option") :value "" :key "role" :disabled true} - {:label (tr "questions.work-type.ux") :value "designer" :key "designer"} - {:label (tr "questions.work-type.dev") :value "developer" :key "developer"} - {:label (tr "questions.work-type.student") :value "student-teacher" :key "student"} - {:label (tr "questions.work-type.graphic") :value "graphic-design" :key "design"} - {:label (tr "questions.work-type.marketing") :value "marketing" :key "marketing"} - {:label (tr "questions.work-type.product") :value "manager" :key "manager"}]) - (conj {:label (tr "questions.other-short") :value "other"}))) + (-> (shuffle [{:label (tr "labels.select-option") :value "" :key "role" :disabled true} + {:label (tr "labels.product-design") :value "ux" :key "ux"} + {:label (tr "labels.developer") :value "developer" :key "developer"} + {:label (tr "labels.student-teacher") :value "student-teacher" :key "student"} + {:label (tr "labels.graphic-design") :value "designer" :key "design"} + {:label (tr "labels.marketing") :value "marketing" :key "marketing"} + {:label (tr "labels.product-management") :value "manager" :key "manager"}]) + (conj {:label (tr "labels.other-short") :value "other"}))) responsability-options (mf/with-memo [] - (-> (shuffle [{:label (tr "questions.select-option") :value "" :key "responsability" :disabled true} - {:label (tr "questions.role.team-leader") :value "team-leader"} - {:label (tr "questions.role.team-member") :value "team-member"} - {:label (tr "questions.role.freelancer") :value "freelancer"} - {:label (tr "questions.role.founder") :value "ceo-founder"} - {:label (tr "questions.role.director") :value "director"} - {:label (tr "questions.student-teacher") :value "student-teacher"}]) - (conj {:label (tr "questions.other-short") :value "other"}))) + (-> (shuffle [{:label (tr "labels.select-option") :value "" :key "responsability" :disabled true} + {:label (tr "labels.team-leader") :value "team-leader"} + {:label (tr "labels.team-member") :value "team-member"} + {:label (tr "labels.freelancer") :value "freelancer"} + {:label (tr "labels.founder") :value "ceo-founder"} + {:label (tr "labels.director") :value "director"}]) + (conj {:label (tr "labels.other-short") :value "other"}))) team-size-options (mf/with-memo [] - [{:label (tr "questions.select-option") :value "" :key "team-size" :disabled true} - {:label (tr "questions.more-than-50") :value "more-than-50" :key "more-than-50"} - {:label (tr "questions.31-50") :value "31-50" :key "31-50"} - {:label (tr "questions.11-30") :value "11-30" :key "11-30"} - {:label (tr "questions.2-10") :value "2-10" :key "2-10"} - {:label (tr "questions.freelancer") :value "freelancer" :key "freelancer"} - {:label (tr "questions.personal-project") :value "personal-project" :key "personal-project"}]) + [{:label (tr "labels.select-option") :value "" :key "team-size" :disabled true} + {:label (tr "onboarding.questions.team-size.more-than-50") :value "more-than-50" :key "more-than-50"} + {:label (tr "onboarding.questions.team-size.31-50") :value "31-50" :key "31-50"} + {:label (tr "onboarding.questions.team-size.11-30") :value "11-30" :key "11-30"} + {:label (tr "onboarding.questions.team-size.2-10") :value "2-10" :key "2-10"} + {:label (tr "onboarding.questions.team-size.freelancer") :value "freelancer" :key "freelancer"} + {:label (tr "onboarding.questions.team-size.personal-project") :value "personal-project" :key "personal-project"}]) current-role (dm/get-in @form [:data :role]) @@ -290,9 +289,10 @@ :on-prev on-prev :class (stl/css :step-3)} - [:h1 {:class (stl/css :modal-title)} (tr "questions.step3-title")] + [:h1 {:class (stl/css :modal-title)} + (tr "onboarding.questions.step3.title")] [:div {:class (stl/css :modal-question)} - [:h3 {:class (stl/css :modal-subtitle)} (tr "questions.step3.question1")] + [:h3 {:class (stl/css :modal-subtitle)} (tr "onboarding.questions.step3.question1")] [:& fm/select {:options role-options :select-class (stl/css :select-class) :default "" @@ -301,11 +301,11 @@ (when (= current-role "other") [:& fm/input {:name :role-other :class (stl/css :input-spacing) - :placeholder (tr "questions.other") + :placeholder (tr "labels.other") :label ""}])] [:div {:class (stl/css :modal-question)} - [:h3 {:class (stl/css :modal-subtitle)} (tr "questions.step3.question2")] + [:h3 {:class (stl/css :modal-subtitle)} (tr "onboarding.questions.step3.question2")] [:& fm/select {:options responsability-options :select-class (stl/css :select-class) :default "" @@ -314,11 +314,11 @@ (when (= current-responsability "other") [:& fm/input {:name :responsability-other :class (stl/css :input-spacing) - :placeholder (tr "questions.other") + :placeholder (tr "labels.other") :label ""}])] [:div {:class (stl/css :modal-question)} - [:h3 {:class (stl/css :modal-subtitle)} (tr "questions.company-size")] + [:h3 {:class (stl/css :modal-subtitle)} (tr "onboarding.questions.step3.question3")] [:& fm/select {:options team-size-options :default "" :select-class (stl/css :select-class) @@ -345,12 +345,17 @@ [{:keys [on-next on-prev form]}] (let [start-options (mf/with-memo [] - (-> (shuffle [{:label (tr "questions.starting-ui") :value "ui" :image "images/form/Design.png"} - {:label (tr "questions.starting-wireframing") :value "wireframing" :image "images/form/templates.png"} - {:label (tr "questions.starting-prototyping") :value "prototyping" :image "images/form/Prototype.png"} - {:label (tr "questions.starting-ds") :value "ds" :image "images/form/components.png"} - {:label (tr "questions.starting-code") :value "code" :image "images/form/design-and-dev.png"}]) - (conj {:label (tr "questions.other-short") :value "other" :icon i/curve}))) + (-> (shuffle [{:label (tr "onboarding.questions.start-with.ui") + :value "ui" :image "images/form/Design.png"} + {:label (tr "onboarding.questions.start-with.wireframing") + :value "wireframing" :image "images/form/templates.png"} + {:label (tr "onboarding.questions.start-with.prototyping") + :value "prototyping" :image "images/form/Prototype.png"} + {:label (tr "onboarding.questions.start-with.ds") + :value "ds" :image "images/form/components.png"} + {:label (tr "onboarding.questions.start-with.code") + :value "code" :image "images/form/design-and-dev.png"}]) + (conj {:label (tr "labels.other-short") :value "other" :icon i/curve}))) current-start (dm/get-in @form [:data :start-with]) @@ -369,7 +374,7 @@ :on-prev on-prev :class (stl/css :step-4)} - [:h1 {:class (stl/css :modal-title)} (tr "questions.step4-title")] + [:h1 {:class (stl/css :modal-title)} (tr "onboarding.questions.step4.title")] [:div {:class (stl/css :radio-wrapper)} [:& fm/image-radio-buttons {:options start-options :img-width "159px" @@ -382,7 +387,7 @@ [:& fm/input {:name :start-with-other :class (stl/css :input-spacing) :label "" - :placeholder (tr "questions.other")}])]])) + :placeholder (tr "labels.other")}])]])) (s/def ::questions-form-step-5 (s/keys :req-un [::referer] @@ -405,12 +410,12 @@ [{:keys [on-next on-prev form]}] (let [referer-options (mf/with-memo [] - (-> (shuffle [{:label (tr "questions.referer.youtube") :value "youtube"} - {:label (tr "questions.referer.event") :value "event"} - {:label (tr "questions.referer.search") :value "search"} - {:label (tr "questions.referer.social") :value "social"} - {:label (tr "questions.referer.article") :value "article"}]) - (conj {:label (tr "questions.other-short") :value "other"}))) + (-> (shuffle [{:label (tr "labels.youtube") :value "youtube"} + {:label (tr "labels.event") :value "event"} + {:label (tr "labels.search") :value "search"} + {:label (tr "labels.social") :value "social"} + {:label (tr "labels.article") :value "article"}]) + (conj {:label (tr "labels.other-short") :value "other"}))) current-referer (dm/get-in @form [:data :referer]) @@ -430,7 +435,7 @@ :on-prev on-prev :class (stl/css :step-5)} - [:h1 {:class (stl/css :modal-title)} (tr "questions.step5-title")] + [:h1 {:class (stl/css :modal-title)} (tr "onboarding.questions.step5.title")] [:div {:class (stl/css :radio-wrapper)} [:& fm/radio-buttons {:options referer-options :class (stl/css :radio-btns) @@ -440,7 +445,7 @@ [:& fm/input {:name :referer-other :class (stl/css :input-spacing) :label "" - :placeholder (tr "questions.other")}])]])) + :placeholder (tr "labels.other")}])]])) (mf/defc questions-modal [] diff --git a/frontend/src/app/main/ui/workspace/right_header.cljs b/frontend/src/app/main/ui/workspace/right_header.cljs index aac56d929e..775de4b9b8 100644 --- a/frontend/src/app/main/ui/workspace/right_header.cljs +++ b/frontend/src/app/main/ui/workspace/right_header.cljs @@ -43,9 +43,9 @@ i/status-alert] :saving - [:div {:class (stl/css :status-icon :saving-status) - :title (tr "workspace.header.saving")} - i/status-update] + [:div {:class (stl/css :status-icon :pending-status) + :title (tr "workspace.header.unsaved")} + i/status-alert] :saved [:div {:class (stl/css :status-icon :saved-status) diff --git a/frontend/translations/en.po b/frontend/translations/en.po index 6f87ee268d..0195d362dc 100644 --- a/frontend/translations/en.po +++ b/frontend/translations/en.po @@ -2393,235 +2393,231 @@ msgid "profile.recovery.go-to-login" msgstr "Go to login" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.step1-title" +msgid "onboarding.questions.step1.title" msgstr "Help us get to know you" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.step1-subtitle" +msgid "onboarding.questions.step1.subtitle" msgstr "Let us know a bit about you to help us make Penpot work for you. Your answers will help us prioritize new features and point you in the right direction to get started." #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.step1-question1" +msgid "onboarding.questions.step1.question1" msgstr "What will you be using Penpot for?" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.use-work" +msgid "onboarding.questions.use.work" msgstr "Work" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.use-education" +msgid "onboarding.questions.use.education" msgstr "Education" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.use-personal" +msgid "onboarding.questions.use.personal" msgstr "Personal" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.step1-question2" +msgid "onboarding.questions.step1.question2" msgstr "What brings you to Penpot today?" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.reasons.exploring" +msgid "onboarding.questions.reasons.exploring" msgstr "Just exploring" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.reasons.fit" +msgid "onboarding.questions.reasons.fit" msgstr "Reviewing whether Penpot is a good fit for my team" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.reasons.alternative" +msgid "onboarding.questions.reasons.alternative" msgstr "Looking for an alternative to Figma, XD, etc" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.reasons.testing" +msgid "onboarding.questions.reasons.testing" msgstr "Testing before self-hosting" #: src/app/main/ui/onboarding/questions.cljs -msgid "question.design-tool-more-used" +msgid "onboarding.questions.step2.title" msgstr "Which one of these tools do you use the most?" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.adobe-xd" +msgid "labels.adobe-xd" msgstr "Adobe XD" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.canva" +msgid "labels.canva" msgstr "Canva" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.figma" +msgid "labels.figma" msgstr "Figma" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.invision" +msgid "labels.invision" msgstr "InVision" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.sketch" +msgid "labels.sketch" msgstr "Sketch" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.step3-title" +msgid "onboarding.questions.step3.title" msgstr "Tell us about your job" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.step3.question1" +msgid "onboarding.questions.step3.question1" msgstr "What kind of work do you do?" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.work-type.ux" +msgid "labels.product-design" msgstr "Product or UX design" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.work-type.dev" +msgid "labels.developer" msgstr "Development" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.work-type.student" -msgstr "student" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.work-type.graphic" +msgid "labels.graphic-design" msgstr "Graphic design" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.work-type.marketing" +msgid "labels.marketing" msgstr "Marketing" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.work-type.product" +msgid "labels.product-management" msgstr "Product Managment" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.step3.question2" +msgid "onboarding.questions.step3.question2" msgstr "What's your role?" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.role.team-leader" +msgid "labels.team-leader" msgstr "Team Leader" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.role.team-member" +msgid "labels.team-member" msgstr "Team member" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.role.freelancer" +msgid "labels.freelancer" msgstr "Freelancer" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.role.founder" +msgid "labels.founder" msgstr "CEO or Founder" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.role.director" +msgid "labels.director" msgstr "Director" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.company-size" +msgid "onboarding.questions.step3.question3" msgstr "What's the size of your company?" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.more-than-50" +msgid "onboarding.questions.team-size.more-than-50" msgstr "More than 50" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.31-50" +msgid "onboarding.questions.team-size.31-50" msgstr "31-50" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.11-30" +msgid "onboarding.questions.team-size.11-30" msgstr "11-30" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.2-10" +msgid "onboarding.questions.team-size.2-10" msgstr "2-10" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.freelancer" +msgid "onboarding.questions.team-size.freelancer" msgstr "I'm a freelancer" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.personal-project" +msgid "onboarding.questions.team-size.personal-project" msgstr "I’m working in a personal project" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.step4-title" +msgid "onboarding.questions.step4.title" msgstr "Where would you like to get started?" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.starting-ui" +msgid "onboarding.questions.start-with.ui" msgstr "Design the UI/UX of an app" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.starting-wireframing" +msgid "onboarding.questions.start-with.wireframing" msgstr "Wireframing" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.starting-prototyping" +msgid "onboarding.questions.start-with.prototyping" msgstr "Prototyping" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.starting-ds" +msgid "onboarding.questions.start-with.ds" msgstr "Creating Desing Systems" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.starting-code" -msgstr "Generating real code designs" +msgid "onboarding.questions.start-with.code" +msgstr "Generating real code designs" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.step5-title" +msgid "onboarding.questions.step5.title" msgstr "How did you hear about Penpot?" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.referer.youtube" +msgid "labels.youtube" msgstr "YouTube" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.referer.event" +msgid "labels.event" msgstr "Event" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.referer.search" +msgid "labels.search" msgstr "Search Engine (Google, Yahoo, Bing)" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.referer.social" +msgid "labels.social" msgstr "Social Media (X, Linkedin, FB, etc)" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.referer.article" +msgid "labels.article" msgstr "Article (Blog, Post, Newsletter)" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.lets-get-started" +msgid "onboarding.questions.lets-get-started" msgstr "Let's get started!" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.next" +msgid "labels.next" msgstr "Next" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.other" +msgid "labels.other" msgstr "Other (specify)" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.other-short" +msgid "labels.other-short" msgstr "Other" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.previous" +msgid "labels.previous" msgstr "Previous" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.select-option" +msgid "labels.select-option" msgstr "Select option" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.start" +msgid "labels.start" msgstr "Start" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.student-teacher" +msgid "labels.student-teacher" msgstr "Student or teacher" #: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, diff --git a/frontend/translations/es.po b/frontend/translations/es.po index 35c05984f0..c9e3983442 100644 --- a/frontend/translations/es.po +++ b/frontend/translations/es.po @@ -2503,236 +2503,232 @@ msgstr "Ir al login" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.step1-title" +msgid "onboarding.questions.step1.title" msgstr "Ayúdanos a conocerte" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.step1-subtitle" +msgid "onboarding.questions.step1.subtitle" msgstr "Cuéntanos un poco sobre tí para ayudarnos a que Penpot se adapte mejor a tí. Tus respuestas nos ayudarán a priorizar nuevas funcionalidades y a saber cómo podemos acompañarte mejor." #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.step1-question1" +msgid "onboarding.questions.step1.question1" msgstr "¿Para qué utilizarás Penpot?" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.use-work" +msgid "onboarding.questions.use.work" msgstr "Trabajo" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.use-education" +msgid "onboarding.questions.use.education" msgstr "Educación" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.use-personal" +msgid "onboarding.questions.use.personal" msgstr "Personal" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.step1-question2" +msgid "onboarding.questions.step1.question2" msgstr "¿Qué te ha traído a Penpot?" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.reasons.exploring" +msgid "onboarding.questions.reasons.exploring" msgstr "Estoy echando un vistazo" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.reasons.fit" +msgid "onboarding.questions.reasons.fit" msgstr "Averiguar si Penpot es una buena opción para mi equipo" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.reasons.alternative" +msgid "onboarding.questions.reasons.alternative" msgstr "Buscar una alternativa a Figma, XD, etc." #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.reasons.testing" +msgid "onboarding.questions.reasons.testing" msgstr "Probar antes de self-hosting" #: src/app/main/ui/onboarding/questions.cljs -msgid "question.design-tool-more-used" +msgid "onboarding.questions.step2.title" msgstr "¿Cuál de estas herramientas utilizas más?" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.adobe-xd" +msgid "labels.adobe-xd" msgstr "Adobe XD" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.canva" +msgid "onboarding.questions.canva" msgstr "Canva" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.figma" +msgid "labels.figma" msgstr "Figma" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.invision" +msgid "labels.invision" msgstr "InVision" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.sketch" +msgid "labels.sketch" msgstr "Sketch" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.step3-title" +msgid "onboarding.questions.step3.title" msgstr "Háblanos de tu trabajo" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.step3.question1" +msgid "onboarding.questions.step3.question1" msgstr "¿Qué tipo de trabajo haces?" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.work-type.ux" +msgid "labels.product-design" msgstr "Diseño de Producto o UX" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.work-type.dev" +msgid "labels.developer" msgstr "Desarrollo" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.work-type.student" -msgstr "Estudiante" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.work-type.graphic" +msgid "labels.graphic-design" msgstr "Diseño gráfico" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.work-type.marketing" +msgid "labels.marketing" msgstr "Marketing" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.work-type.product" +msgid "labels.product-management" msgstr "Product Managment" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.step3.question2" +msgid "onboarding.questions.step3.question2" msgstr "¿Cuál es tu puesto?" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.role.team-leader" +msgid "labels.team-leader" msgstr "Líder de equipo" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.role.team-member" +msgid "labels.team-member" msgstr "Miembro de equipo" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.role.freelancer" +msgid "labels.freelancer" msgstr "Autónomo" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.role.founder" +msgid "labels.founder" msgstr "CEO o Fundador" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.role.director" +msgid "labels.director" msgstr "Director" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.company-size" +msgid "onboarding.questions.step3.question3" msgstr "¿Cuál es el tamaño de tu empresa?" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.more-than-50" +msgid "onboarding.questions.team-size.more-than-50" msgstr "Más de 50" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.31-50" +msgid "onboarding.questions.team-size.31-50" msgstr "31-50" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.11-30" +msgid "onboarding.questions.team-size.11-30" msgstr "11-30" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.2-10" +msgid "onboarding.questions.2-10" msgstr "2-10" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.freelancer" +msgid "onboarding.questions.freelancer" msgstr "Soy autónomo" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.personal-project" +msgid "onboarding.questions.team-size.personal-project" msgstr "Estoy trabajando en un proyecto personal" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.step4-title" +msgid "onboarding.questions.step4.title" msgstr "¿Por dónde te apetecería empezar?" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.starting-ui" +msgid "onboarding.questions.start-with.ui" msgstr "Diseñando el UX/UI de una aplicación" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.starting-wireframing" +msgid "onboarding.questions.start-with.wireframing" msgstr "Wireframing" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.starting-prototyping" +msgid "onboarding.questions.start-with.prototyping" msgstr "Prototipado" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.starting-ds" +msgid "onboarding.questions.start-with.ds" msgstr "Creando sistemas de diseño" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.starting-code" +msgid "onboarding.questions.start-with.code" msgstr "Generando código a partir de diseños" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.step5-title" +msgid "onboarding.questions.step5.title" msgstr "¿Cómo nos has descubierto?" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.referer.youtube" +msgid "onboarding.questions.referer.youtube" msgstr "YouTube" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.referer.event" +msgid "onboarding.questions.referer.event" msgstr "Evento" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.referer.search" +msgid "onboarding.questions.referer.search" msgstr "Buscador (Google, Yahoo, Bing)" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.referer.social" +msgid "onboarding.questions.referer.social" msgstr "Redes sociales (X, LinkedIn, FB, ect)" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.referer.article" +msgid "onboarding.questions.referer.article" msgstr "Artículo (Blog, Post, Newsletter)" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.lets-get-started" +msgid "onboarding.questions.lets-get-started" msgstr "¡Empecemos!" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.next" +msgid "labels.next" msgstr "Siguiente" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.other" +msgid "onboarding.questions.other" msgstr "Otra (especifica)" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.other-short" +msgid "labels.other" msgstr "Otra" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.previous" +msgid "labels.previous" msgstr "Anterior" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.select-option" +msgid "labels.select-option" msgstr "Selecciona una opción" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.start" +msgid "labels.start" msgstr "Comenzar" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.student-teacher" +msgid "labels.student-teacher" msgstr "Estudiante o profesorado" #: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, From f463a1989f8f452ae6ceaed5b59da3d27f9b04af Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Fri, 14 Jun 2024 00:01:00 +0200 Subject: [PATCH 134/476] :bug: Clear persistence status on server error This avoids the problem of permanently keeping on the persistence queue a problematic change. --- frontend/src/app/main/data/persistence.cljs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/frontend/src/app/main/data/persistence.cljs b/frontend/src/app/main/data/persistence.cljs index 08a0719b3f..22f1cdb655 100644 --- a/frontend/src/app/main/data/persistence.cljs +++ b/frontend/src/app/main/data/persistence.cljs @@ -96,6 +96,13 @@ (rx/of (run-persistence-task) (update-status :saving)))))))) +(defn- discard-persistence-state + [] + (ptk/reify ::discard-persistence-state + ptk/UpdateEvent + (update [_ state] + (dissoc state :persistence)))) + (defn- persist-commit [commit-id] (ptk/reify ::persist-commit @@ -114,7 +121,6 @@ :changes (vec changes) :features features}] - ;; FIXME: handle lagged here !!!! (->> (rp/cmd! :update-file params) (rx/mapcat (fn [{:keys [revn lagged] :as response}] (log/debug :hint "changes persisted" :commit-id (dm/str commit-id) :lagged (count lagged)) @@ -128,6 +134,7 @@ (rx/of (rt/assign-exception cause) (ptk/data-event ::error cause) (update-status :error))) + (rx/of (discard-persistence-state)) (rx/throw cause)))))))))) @@ -173,7 +180,6 @@ (assoc :redo-changes rchg) (assoc :changes rchg))))))) - (defn initialize-persistence [] (ptk/reify ::initialize-persistence From 599bc8dbe758ddfbadb96c455b176890b042ed32 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bel=C3=A9n=20Albeza?= Date: Thu, 13 Jun 2024 10:56:20 +0200 Subject: [PATCH 135/476] :paperclip: Remove unused playwright config file in root --- playwright.config.ts | 77 -------------------------------------------- 1 file changed, 77 deletions(-) delete mode 100644 playwright.config.ts diff --git a/playwright.config.ts b/playwright.config.ts deleted file mode 100644 index 301801ee1d..0000000000 --- a/playwright.config.ts +++ /dev/null @@ -1,77 +0,0 @@ -import { defineConfig, devices } from '@playwright/test'; - -/** - * Read environment variables from file. - * https://github.com/motdotla/dotenv - */ -// require('dotenv').config(); - -/** - * See https://playwright.dev/docs/test-configuration. - */ -export default defineConfig({ - testDir: './tests', - /* Run tests in files in parallel */ - fullyParallel: true, - /* Fail the build on CI if you accidentally left test.only in the source code. */ - forbidOnly: !!process.env.CI, - /* Retry on CI only */ - retries: process.env.CI ? 2 : 0, - /* Opt out of parallel tests on CI. */ - workers: process.env.CI ? 1 : undefined, - /* Reporter to use. See https://playwright.dev/docs/test-reporters */ - reporter: 'html', - /* Shared settings for all the projects below. See https://playwright.dev/docs/api/class-testoptions. */ - use: { - /* Base URL to use in actions like `await page.goto('/')`. */ - // baseURL: 'http://127.0.0.1:3000', - - /* Collect trace when retrying the failed test. See https://playwright.dev/docs/trace-viewer */ - trace: 'on-first-retry', - }, - - /* Configure projects for major browsers */ - projects: [ - { - name: 'chromium', - use: { ...devices['Desktop Chrome'] }, - }, - - { - name: 'firefox', - use: { ...devices['Desktop Firefox'] }, - }, - - { - name: 'webkit', - use: { ...devices['Desktop Safari'] }, - }, - - /* Test against mobile viewports. */ - // { - // name: 'Mobile Chrome', - // use: { ...devices['Pixel 5'] }, - // }, - // { - // name: 'Mobile Safari', - // use: { ...devices['iPhone 12'] }, - // }, - - /* Test against branded browsers. */ - // { - // name: 'Microsoft Edge', - // use: { ...devices['Desktop Edge'], channel: 'msedge' }, - // }, - // { - // name: 'Google Chrome', - // use: { ...devices['Desktop Chrome'], channel: 'chrome' }, - // }, - ], - - /* Run your local dev server before starting the tests */ - // webServer: { - // command: 'npm run start', - // url: 'http://127.0.0.1:3000', - // reuseExistingServer: !process.env.CI, - // }, -}); From 0d23f4ab5d906eb16116b3819fcb866da430f1a0 Mon Sep 17 00:00:00 2001 From: Alejandro Alonso Date: Thu, 13 Jun 2024 12:55:04 +0200 Subject: [PATCH 136/476] :bug: Workspace-palette items stay hidden when opening with keyboard-shortcut --- CHANGES.md | 1 + frontend/playwright/ui/pages/WorkspacePage.js | 6 +++++ .../playwright/ui/specs/workspace.spec.js | 11 ++++++++++ .../src/app/main/data/workspace/layout.cljs | 4 +++- .../app/main/data/workspace/shortcuts.cljs | 6 +++-- .../src/app/main/ui/workspace/palette.cljs | 22 ++++++++++++------- 6 files changed, 39 insertions(+), 11 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index 70ac184d57..27d52286dd 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -43,6 +43,7 @@ - Toolbar keeps toggling on and off on spacebar press [Taiga #7654](https://github.com/penpot/penpot/pull/7654) - Fix toolbar keeps hiding when click outside workspace [Taiga #7776](https://tree.taiga.io/project/penpot/issue/7776) - Fix open overlay relative to a frame [Taiga #7563](https://tree.taiga.io/project/penpot/issue/7563) +- Workspace-palette items stay hidden when opening with keyboard-shortcut [Taiga #7489](https://tree.taiga.io/project/penpot/issue/7489) ## 2.0.3 diff --git a/frontend/playwright/ui/pages/WorkspacePage.js b/frontend/playwright/ui/pages/WorkspacePage.js index c8f0c49cca..c227f09b66 100644 --- a/frontend/playwright/ui/pages/WorkspacePage.js +++ b/frontend/playwright/ui/pages/WorkspacePage.js @@ -53,6 +53,7 @@ export class WorkspacePage extends BaseWebSocketPage { this.selectionRect = page.getByTestId("workspace-selection-rect"); this.horizontalScrollbar = page.getByTestId("horizontal-scrollbar"); this.librariesModal = page.getByTestId("libraries-modal"); + this.togglePalettesVisibility = page.getByTestId("toggle-palettes-visibility"); } async goToWorkspace({ fileId = WorkspacePage.anyFileId, pageId = WorkspacePage.anyPageId } = {}) { @@ -173,4 +174,9 @@ export class WorkspacePage extends BaseWebSocketPage { .getByRole("button", { name: "Color Palette (Alt+P)" }) .click(clickOptions); } + + async clickTogglePalettesVisibility(clickOptions = {}) { + await this.togglePalettesVisibility + .click(clickOptions); + } } diff --git a/frontend/playwright/ui/specs/workspace.spec.js b/frontend/playwright/ui/specs/workspace.spec.js index 3682ecf68e..086b7de193 100644 --- a/frontend/playwright/ui/specs/workspace.spec.js +++ b/frontend/playwright/ui/specs/workspace.spec.js @@ -120,3 +120,14 @@ test("User adds a library and its automatically selected in the color palette", await expect(workspacePage.palette.getByText('There are no color styles in your library yet')).toBeVisible(); }); + +test("Bug 7489 - Workspace-palette items stay hidden when opening with keyboard-shortcut", async ({ page }) => { + const workspacePage = new WorkspacePage(page); + await workspacePage.setupEmptyFile(); + await workspacePage.goToWorkspace(); + + await workspacePage.clickTogglePalettesVisibility(); + await workspacePage.page.keyboard.press("Alt+t"); + + await expect(workspacePage.palette.getByText("There are no typography styles in your library yet")).toBeVisible(); +}); diff --git a/frontend/src/app/main/data/workspace/layout.cljs b/frontend/src/app/main/data/workspace/layout.cljs index 157de23f7a..6b17a1e7ff 100644 --- a/frontend/src/app/main/data/workspace/layout.cljs +++ b/frontend/src/app/main/data/workspace/layout.cljs @@ -20,6 +20,7 @@ :comments :assets :document-history + :hide-palettes :colorpalette :element-options :rulers @@ -134,7 +135,8 @@ "A map of layout flags that should be persisted in local storage; the value corresponds to the key that will be used for save the data in storage object. It should be namespace qualified." - {:colorpalette :app.main.data.workspace/show-colorpalette? + {:hide-palettes :app.main.data.workspace/hide-palettes? + :colorpalette :app.main.data.workspace/show-colorpalette? :textpalette :app.main.data.workspace/show-textpalette?}) (defn load-layout-flags diff --git a/frontend/src/app/main/data/workspace/shortcuts.cljs b/frontend/src/app/main/data/workspace/shortcuts.cljs index 45a763ccac..bd0071602e 100644 --- a/frontend/src/app/main/data/workspace/shortcuts.cljs +++ b/frontend/src/app/main/data/workspace/shortcuts.cljs @@ -436,14 +436,16 @@ :command (ds/a-mod "p") :subsections [:panels] :fn #(do (r/set-resize-type! :bottom) - (emit-when-no-readonly (dw/remove-layout-flag :textpalette) + (emit-when-no-readonly (dw/remove-layout-flag :hide-palettes) + (dw/remove-layout-flag :textpalette) (toggle-layout-flag :colorpalette)))} :toggle-textpalette {:tooltip (ds/alt "T") :command (ds/a-mod "t") :subsections [:panels] :fn #(do (r/set-resize-type! :bottom) - (emit-when-no-readonly (dw/remove-layout-flag :colorpalette) + (emit-when-no-readonly (dw/remove-layout-flag :hide-palettes) + (dw/remove-layout-flag :colorpalette) (toggle-layout-flag :textpalette)))} :hide-ui {:tooltip "\\" diff --git a/frontend/src/app/main/ui/workspace/palette.cljs b/frontend/src/app/main/ui/workspace/palette.cljs index b0d246a99a..bf3f262eaf 100644 --- a/frontend/src/app/main/ui/workspace/palette.cljs +++ b/frontend/src/app/main/ui/workspace/palette.cljs @@ -50,12 +50,12 @@ [{:keys [layout on-change-palette-size]}] (let [color-palette? (:colorpalette layout) text-palette? (:textpalette layout) + hide-palettes? (:hide-palettes layout) workspace-read-only? (mf/use-ctx ctx/workspace-read-only?) container (mf/use-ref nil) - state* (mf/use-state {:show-menu false :hide-palettes false}) + state* (mf/use-state {:show-menu false}) state (deref state*) show-menu? (:show-menu state) - hide-palettes? (:hide-palettes state) selected (h/use-shared-state mdc/colorpalette-selected-broadcast-key :recent) selected-text* (mf/use-state :file) selected-text (deref selected-text*) @@ -100,15 +100,19 @@ toggle-palettes (mf/use-callback (fn [_] - (swap! state* update :hide-palettes not))) + (r/set-resize-type! :top) + (dom/add-class! (dom/get-element-by-class "color-palette") "fade-out-down") + (st/emit! (-> (dw/toggle-layout-flag :hide-palettes) + (vary-meta assoc ::ev/origin "workspace-left-toolbar"))))) on-select-color-palette (mf/use-fn (fn [event] (let [node (dom/get-current-target event)] (r/set-resize-type! :top) - (dom/add-class! (dom/get-element-by-class "color-palette") "fade-out-down") - (ts/schedule 300 #(st/emit! (dw/remove-layout-flag :textpalette) + (dom/add-class! (dom/get-element-by-class "color-palette") "fade-out-down") + (ts/schedule 300 #(st/emit! (dw/remove-layout-flag :hide-palettes) + (dw/remove-layout-flag :textpalette) (-> (dw/toggle-layout-flag :colorpalette) (vary-meta assoc ::ev/origin "workspace-left-toolbar")))) (dom/blur! node)))) @@ -118,8 +122,9 @@ (fn [event] (let [node (dom/get-current-target event)] (r/set-resize-type! :top) - (dom/add-class! (dom/get-element-by-class "color-palette") "fade-out-down") - (ts/schedule 300 #(st/emit! (dw/remove-layout-flag :colorpalette) + (dom/add-class! (dom/get-element-by-class "color-palette") "fade-out-down") + (ts/schedule 300 #(st/emit! (dw/remove-layout-flag :hide-palettes) + (dw/remove-layout-flag :colorpalette) (-> (dw/toggle-layout-flag :textpalette) (vary-meta assoc ::ev/origin "workspace-left-toolbar")))) (dom/blur! node)))) @@ -198,5 +203,6 @@ :selected @selected :width vport-width}]])]] [:div {:class (stl/css :handler) - :on-click toggle-palettes} + :on-click toggle-palettes + :data-testid "toggle-palettes-visibility"} [:div {:class (stl/css :handler-btn)}]])])])) From 043769c255bad2fbcd8dbb59e61c2d48d6adde52 Mon Sep 17 00:00:00 2001 From: Alejandro Alonso Date: Fri, 14 Jun 2024 07:10:16 +0200 Subject: [PATCH 137/476] :sparkles: Remove a/b testing code for onboarding questions --- .../styles/common/refactor/basic-rules.scss | 3 - .../styles/common/refactor/color-defs.scss | 2 - .../common/refactor/themes/default-theme.scss | 1 - .../common/refactor/themes/light-theme.scss | 1 - .../app/main/ui/onboarding/newsletter.cljs | 9 +- .../src/app/main/ui/onboarding/questions.cljs | 9 +- .../app/main/ui/onboarding/team_choice.cljs | 9 +- frontend/src/app/main/ui/releases/v2_0.cljs | 321 +++++++++--------- 8 files changed, 163 insertions(+), 192 deletions(-) diff --git a/frontend/resources/styles/common/refactor/basic-rules.scss b/frontend/resources/styles/common/refactor/basic-rules.scss index 61555e1141..6f28edf693 100644 --- a/frontend/resources/styles/common/refactor/basic-rules.scss +++ b/frontend/resources/styles/common/refactor/basic-rules.scss @@ -590,9 +590,6 @@ width: 100%; z-index: $z-index-modal; background-color: var(--overlay-color); - &.onboarding-a-b-test { - background-color: var(--overlay-color-onboarding-a-b-test); - } } .modal-container-base { diff --git a/frontend/resources/styles/common/refactor/color-defs.scss b/frontend/resources/styles/common/refactor/color-defs.scss index c7048003d2..da1f0d784e 100644 --- a/frontend/resources/styles/common/refactor/color-defs.scss +++ b/frontend/resources/styles/common/refactor/color-defs.scss @@ -11,7 +11,6 @@ // Dark background --db-primary: #18181a; --db-primary-60: #{color.change(#18181a, $alpha: 0.6)}; - --db-primary-90: #{color.change(#18181a, $alpha: 0.9)}; --db-secondary: #000000; --db-secondary-30: #{color.change(#000000, $alpha: 0.3)}; --db-secondary-80: #{color.change(#000000, $alpha: 0.8)}; @@ -36,7 +35,6 @@ // Light background --lb-primary: #ffffff; --lb-primary-60: #{color.change(#ffffff, $alpha: 0.6)}; - --lb-primary-90: #{color.change(#ffffff, $alpha: 0.9)}; --lb-secondary: #e8eaee; --lb-secondary-30: #{color.change(#e8eaee, $alpha: 0.3)}; --lb-secondary-80: #{color.change(#e8eaee, $alpha: 0.8)}; diff --git a/frontend/resources/styles/common/refactor/themes/default-theme.scss b/frontend/resources/styles/common/refactor/themes/default-theme.scss index 2b5feb06a1..432906c9e5 100644 --- a/frontend/resources/styles/common/refactor/themes/default-theme.scss +++ b/frontend/resources/styles/common/refactor/themes/default-theme.scss @@ -37,7 +37,6 @@ --color-info-foreground: var(--status-color-info-500); --overlay-color: var(--db-primary-60); - --overlay-color-onboarding-a-b-test: var(--db-primary-90); --shadow-color: var(--db-secondary-30); --radio-button-box-shadow: 0 0 0 1px var(--db-secondary-30) inset; diff --git a/frontend/resources/styles/common/refactor/themes/light-theme.scss b/frontend/resources/styles/common/refactor/themes/light-theme.scss index 01e98c6cba..8f133cc722 100644 --- a/frontend/resources/styles/common/refactor/themes/light-theme.scss +++ b/frontend/resources/styles/common/refactor/themes/light-theme.scss @@ -37,7 +37,6 @@ --color-info-foreground: var(--status-color-info-500); --overlay-color: var(--lb-primary-60); - --overlay-color-onboarding-a-b-test: var(--lb-primary-90); --shadow-color: var(--lf-secondary-40); --radio-button-box-shadow: 0 0 0 1px var(--lb-secondary) inset; diff --git a/frontend/src/app/main/ui/onboarding/newsletter.cljs b/frontend/src/app/main/ui/onboarding/newsletter.cljs index 0f2bfd2ce4..e76cd0679a 100644 --- a/frontend/src/app/main/ui/onboarding/newsletter.cljs +++ b/frontend/src/app/main/ui/onboarding/newsletter.cljs @@ -7,7 +7,6 @@ (ns app.main.ui.onboarding.newsletter (:require-macros [app.main.style :as stl]) (:require - [app.config :as cf] [app.main.data.events :as-alias ev] [app.main.data.messages :as msg] [app.main.data.users :as du] @@ -45,14 +44,10 @@ (assoc :label "newsletter:subscriptions") (assoc :step 6))] (st/emit! (ptk/data-event ::ev/event params) - (du/update-profile-props state))))) - - onboarding-a-b-test? - (cf/external-feature-flag "signup-background" "test")] + (du/update-profile-props state)))))] [:div {:class (stl/css-case - :modal-overlay true - :onboarding-a-b-test onboarding-a-b-test?)} + :modal-overlay true)} [:div.animated.fadeInDown {:class (stl/css :modal-container)} [:div {:class (stl/css :modal-left)} diff --git a/frontend/src/app/main/ui/onboarding/questions.cljs b/frontend/src/app/main/ui/onboarding/questions.cljs index 9904790dbf..3d715a1858 100644 --- a/frontend/src/app/main/ui/onboarding/questions.cljs +++ b/frontend/src/app/main/ui/onboarding/questions.cljs @@ -10,7 +10,6 @@ (:require [app.common.data :as d] [app.common.data.macros :as dm] - [app.config :as cf] [app.main.data.events :as-alias ev] [app.main.data.users :as du] [app.main.store :as st] @@ -497,14 +496,10 @@ (fn [form] (let [data (merge @clean-data (:clean-data @form))] (reset! clean-data data) - (st/emit! (du/mark-questions-as-answered data))))) - - onboarding-a-b-test? - (cf/external-feature-flag "signup-background" "test")] + (st/emit! (du/mark-questions-as-answered data)))))] [:div {:class (stl/css-case - :modal-overlay true - :onboarding-a-b-test onboarding-a-b-test?)} + :modal-overlay true)} [:div {:class (stl/css :modal-container) :ref container} diff --git a/frontend/src/app/main/ui/onboarding/team_choice.cljs b/frontend/src/app/main/ui/onboarding/team_choice.cljs index 743c051843..c1b939e4fa 100644 --- a/frontend/src/app/main/ui/onboarding/team_choice.cljs +++ b/frontend/src/app/main/ui/onboarding/team_choice.cljs @@ -9,7 +9,6 @@ (:require [app.common.data.macros :as dm] [app.common.spec :as us] - [app.config :as cf] [app.main.data.dashboard :as dd] [app.main.data.events :as ev] [app.main.data.messages :as msg] @@ -260,14 +259,10 @@ on-back (mf/use-fn (fn [] - (swap! name* (constantly nil)))) - - onboarding-a-b-test? - (cf/external-feature-flag "signup-background" "test")] + (swap! name* (constantly nil))))] [:div {:class (stl/css-case - :modal-overlay true - :onboarding-a-b-test onboarding-a-b-test?)} + :modal-overlay true)} [:div.animated.fadeIn {:class (stl/css :modal-container)} [:& left-sidebar] diff --git a/frontend/src/app/main/ui/releases/v2_0.cljs b/frontend/src/app/main/ui/releases/v2_0.cljs index 5113075449..57f2b0847b 100644 --- a/frontend/src/app/main/ui/releases/v2_0.cljs +++ b/frontend/src/app/main/ui/releases/v2_0.cljs @@ -8,203 +8,196 @@ (:require-macros [app.main.style :as stl]) (:require [app.common.data.macros :as dm] - [app.config :as cf] [app.main.ui.releases.common :as c] [rumext.v2 :as mf])) ;; TODO: Review all copies and alt text (defmethod c/render-release-notes "2.0" [{:keys [slide klass next finish navigate version]}] - (let [onboarding-a-b-test? (cf/external-feature-flag "signup-background" "test")] - (mf/html - (case slide - :start - [:div {:class (stl/css-case :modal-overlay true - :onboarding-a-b-test onboarding-a-b-test?)} - [:div.animated {:class klass} - [:div {:class (stl/css :modal-container)} - [:img {:src "images/features/2.0-intro-image.png" - :class (stl/css :start-image) - :border "0" - :alt "A graphic illustration with Penpot style"}] + (mf/html + (case slide + :start + [:div {:class (stl/css-case :modal-overlay true)} + [:div.animated {:class klass} + [:div {:class (stl/css :modal-container)} + [:img {:src "images/features/2.0-intro-image.png" + :class (stl/css :start-image) + :border "0" + :alt "A graphic illustration with Penpot style"}] - [:div {:class (stl/css :modal-content)} - [:div {:class (stl/css :modal-header)} - [:h1 {:class (stl/css :modal-title)} - "Welcome to Penpot 2.0! "] + [:div {:class (stl/css :modal-content)} + [:div {:class (stl/css :modal-header)} + [:h1 {:class (stl/css :modal-title)} + "Welcome to Penpot 2.0! "] - [:div {:class (stl/css :version-tag)} - (dm/str "Version " version)]] + [:div {:class (stl/css :version-tag)} + (dm/str "Version " version)]] - [:div {:class (stl/css :features-block)} - [:p {:class (stl/css :feature-content)} - [:spam {:class (stl/css :feature-title)} - "CSS Grid Layout: "] - "Bring your designs to life, knowing that what you create is what developers code."] + [:div {:class (stl/css :features-block)} + [:p {:class (stl/css :feature-content)} + [:spam {:class (stl/css :feature-title)} + "CSS Grid Layout: "] + "Bring your designs to life, knowing that what you create is what developers code."] - [:p {:class (stl/css :feature-content)} - [:spam {:class (stl/css :feature-title)} - "Sleeker UI: "] - "We’ve polished Penpot to make your experience smoother and more enjoyable."] + [:p {:class (stl/css :feature-content)} + [:spam {:class (stl/css :feature-title)} + "Sleeker UI: "] + "We’ve polished Penpot to make your experience smoother and more enjoyable."] - [:p {:class (stl/css :feature-content)} - [:spam {:class (stl/css :feature-title)} - "New Components System: "] - "Managing and using your design components got a whole lot better."] + [:p {:class (stl/css :feature-content)} + [:spam {:class (stl/css :feature-title)} + "New Components System: "] + "Managing and using your design components got a whole lot better."] - [:p {:class (stl/css :feature-content)} - "And that’s not all - we’ve fined tuned performance and " - "accessibility to give you a better and more fluid design experience."] + [:p {:class (stl/css :feature-content)} + "And that’s not all - we’ve fined tuned performance and " + "accessibility to give you a better and more fluid design experience."] - [:p {:class (stl/css :feature-content)} - " Ready to dive in? Let 's get started!"]] + [:p {:class (stl/css :feature-content)} + " Ready to dive in? Let 's get started!"]] - [:div {:class (stl/css :navigation)} - [:button {:class (stl/css :next-btn) - :on-click next} "Continue"]]]]]] + [:div {:class (stl/css :navigation)} + [:button {:class (stl/css :next-btn) + :on-click next} "Continue"]]]]]] - 0 - [:div {:class (stl/css-case :modal-overlay true - :onboarding-a-b-test onboarding-a-b-test?)} - [:div.animated {:class klass} - [:div {:class (stl/css :modal-container)} - [:img {:src "images/features/2.0-css-grid.gif" - :class (stl/css :start-image) - :border "0" - :alt "Penpot's CSS Grid Layout"}] + 0 + [:div {:class (stl/css-case :modal-overlay true)} + [:div.animated {:class klass} + [:div {:class (stl/css :modal-container)} + [:img {:src "images/features/2.0-css-grid.gif" + :class (stl/css :start-image) + :border "0" + :alt "Penpot's CSS Grid Layout"}] - [:div {:class (stl/css :modal-content)} - [:div {:class (stl/css :modal-header)} - [:h1 {:class (stl/css :modal-title)} - "CSS Grid Layout - Design Meets Development"]] + [:div {:class (stl/css :modal-content)} + [:div {:class (stl/css :modal-header)} + [:h1 {:class (stl/css :modal-title)} + "CSS Grid Layout - Design Meets Development"]] - [:div {:class (stl/css :feature)} - [:p {:class (stl/css :feature-content)} - "The much-awaited Grid Layout introduces 2-dimensional" - " layout capabilities to Penpot, allowing for the creation" - " of adaptive layouts by leveraging the power of CSS properties."] + [:div {:class (stl/css :feature)} + [:p {:class (stl/css :feature-content)} + "The much-awaited Grid Layout introduces 2-dimensional" + " layout capabilities to Penpot, allowing for the creation" + " of adaptive layouts by leveraging the power of CSS properties."] - [:p {:class (stl/css :feature-content)} - "It’s a host of new features, including columns and" - " rows management, flexible units such as FR (fractions)," - " the ability to create and name areas, and tons of new " - "and unique possibilities within a design tool."] + [:p {:class (stl/css :feature-content)} + "It’s a host of new features, including columns and" + " rows management, flexible units such as FR (fractions)," + " the ability to create and name areas, and tons of new " + "and unique possibilities within a design tool."] - [:p {:class (stl/css :feature-content)} - "Designers will learn CSS basics while working, " - "and as always with Penpot, developers can pick" - " up the design as code to take it from there."]] + [:p {:class (stl/css :feature-content)} + "Designers will learn CSS basics while working, " + "and as always with Penpot, developers can pick" + " up the design as code to take it from there."]] - [:div {:class (stl/css :navigation)} - [:& c/navigation-bullets - {:slide slide - :navigate navigate - :total 4}] + [:div {:class (stl/css :navigation)} + [:& c/navigation-bullets + {:slide slide + :navigate navigate + :total 4}] - [:button {:on-click next - :class (stl/css :next-btn)} "Continue"]]]]]] + [:button {:on-click next + :class (stl/css :next-btn)} "Continue"]]]]]] - 1 - [:div {:class (stl/css-case :modal-overlay true - :onboarding-a-b-test onboarding-a-b-test?)} - [:div.animated {:class klass} - [:div {:class (stl/css :modal-container)} - [:img {:src "images/features/2.0-new-ui.gif" - :class (stl/css :start-image) - :border "0" - :alt "Penpot's UI Makeover"}] + 1 + [:div {:class (stl/css-case :modal-overlay true)} + [:div.animated {:class klass} + [:div {:class (stl/css :modal-container)} + [:img {:src "images/features/2.0-new-ui.gif" + :class (stl/css :start-image) + :border "0" + :alt "Penpot's UI Makeover"}] - [:div {:class (stl/css :modal-content)} - [:div {:class (stl/css :modal-header)} - [:h1 {:class (stl/css :modal-title)} - "UI Makeover - Smoother, Sharper, and Simply More Fun"]] + [:div {:class (stl/css :modal-content)} + [:div {:class (stl/css :modal-header)} + [:h1 {:class (stl/css :modal-title)} + "UI Makeover - Smoother, Sharper, and Simply More Fun"]] - [:div {:class (stl/css :feature)} - [:p {:class (stl/css :feature-content)} - "We've completely overhauled Penpot's user interface. " - "The improvements in consistency, the introduction of " - "new microinteractions, and attention to countless details" - " will significantly enhance the productivity and enjoyment of using Penpot."] - [:p {:class (stl/css :feature-content)} - "Furthermore, we’ve made several accessibility improvements, " - "with better color contrast, keyboard navigation," - " and adherence to other best practices."]] + [:div {:class (stl/css :feature)} + [:p {:class (stl/css :feature-content)} + "We've completely overhauled Penpot's user interface. " + "The improvements in consistency, the introduction of " + "new microinteractions, and attention to countless details" + " will significantly enhance the productivity and enjoyment of using Penpot."] + [:p {:class (stl/css :feature-content)} + "Furthermore, we’ve made several accessibility improvements, " + "with better color contrast, keyboard navigation," + " and adherence to other best practices."]] - [:div {:class (stl/css :navigation)} - [:& c/navigation-bullets - {:slide slide - :navigate navigate - :total 4}] + [:div {:class (stl/css :navigation)} + [:& c/navigation-bullets + {:slide slide + :navigate navigate + :total 4}] - [:button {:on-click next - :class (stl/css :next-btn)} "Continue"]]]]]] + [:button {:on-click next + :class (stl/css :next-btn)} "Continue"]]]]]] - 2 - [:div {:class (stl/css-case :modal-overlay true - :onboarding-a-b-test onboarding-a-b-test?)} - [:div.animated {:class klass} - [:div {:class (stl/css :modal-container)} - [:img {:src "images/features/2.0-components.gif" - :class (stl/css :start-image) - :border "0" - :alt "Penpot's new components system"}] + 2 + [:div {:class (stl/css-case :modal-overlay true)} + [:div.animated {:class klass} + [:div {:class (stl/css :modal-container)} + [:img {:src "images/features/2.0-components.gif" + :class (stl/css :start-image) + :border "0" + :alt "Penpot's new components system"}] - [:div {:class (stl/css :modal-content)} - [:div {:class (stl/css :modal-header)} - [:h1 {:class (stl/css :modal-title)} - "New Components System"]] - [:div {:class (stl/css :feature)} - [:p {:class (stl/css :feature-content)} - "The new Penpot components system improves" - " control over instances, including their " - "inheritances and properties overrides. " - "Main components are now accessible as design" - " elements, allowing a better updating " - "workflow through instant changes synchronization."] - [:p {:class (stl/css :feature-content)} - "And that’s not all, there are new capabilities " - "such as component swapping and annotations " - "that will help you to better manage your design systems."]] + [:div {:class (stl/css :modal-content)} + [:div {:class (stl/css :modal-header)} + [:h1 {:class (stl/css :modal-title)} + "New Components System"]] + [:div {:class (stl/css :feature)} + [:p {:class (stl/css :feature-content)} + "The new Penpot components system improves" + " control over instances, including their " + "inheritances and properties overrides. " + "Main components are now accessible as design" + " elements, allowing a better updating " + "workflow through instant changes synchronization."] + [:p {:class (stl/css :feature-content)} + "And that’s not all, there are new capabilities " + "such as component swapping and annotations " + "that will help you to better manage your design systems."]] - [:div {:class (stl/css :navigation)} - [:& c/navigation-bullets - {:slide slide - :navigate navigate - :total 4}] + [:div {:class (stl/css :navigation)} + [:& c/navigation-bullets + {:slide slide + :navigate navigate + :total 4}] - [:button {:on-click next - :class (stl/css :next-btn)} "Continue"]]]]]] + [:button {:on-click next + :class (stl/css :next-btn)} "Continue"]]]]]] - 3 - [:div {:class (stl/css-case :modal-overlay true - :onboarding-a-b-test onboarding-a-b-test?)} - [:div.animated {:class klass} - [:div {:class (stl/css :modal-container)} - [:img {:src "images/features/2.0-html.gif" - :class (stl/css :start-image) - :border "0" - :alt " Penpot's HTML code generator"}] + 3 + [:div {:class (stl/css-case :modal-overlay true)} + [:div.animated {:class klass} + [:div {:class (stl/css :modal-container)} + [:img {:src "images/features/2.0-html.gif" + :class (stl/css :start-image) + :border "0" + :alt " Penpot's HTML code generator"}] - [:div {:class (stl/css :modal-content)} - [:div {:class (stl/css :modal-header)} - [:h1 {:class (stl/css :modal-title)} - "And much more"]] - [:div {:class (stl/css :feature)} - [:p {:class (stl/css :feature-content)} - "In addition to all of this, we’ve included several other requested improvements:"] - [:ul {:class (stl/css :feature-list)} - [:li "Access HTML markup code directly in inspect mode"] - [:li "Images are now treated as element fills, maintaining their aspect ratio on resize, ideal for flexible designs"] - [:li "Enjoy new color themes with options for both dark and light modes"] - [:li "Feel the speed boost! Enjoy a smoother experience with a bunch of performance improvements"]]] + [:div {:class (stl/css :modal-content)} + [:div {:class (stl/css :modal-header)} + [:h1 {:class (stl/css :modal-title)} + "And much more"]] + [:div {:class (stl/css :feature)} + [:p {:class (stl/css :feature-content)} + "In addition to all of this, we’ve included several other requested improvements:"] + [:ul {:class (stl/css :feature-list)} + [:li "Access HTML markup code directly in inspect mode"] + [:li "Images are now treated as element fills, maintaining their aspect ratio on resize, ideal for flexible designs"] + [:li "Enjoy new color themes with options for both dark and light modes"] + [:li "Feel the speed boost! Enjoy a smoother experience with a bunch of performance improvements"]]] - [:div {:class (stl/css :navigation)} + [:div {:class (stl/css :navigation)} - [:& c/navigation-bullets - {:slide slide - :navigate navigate - :total 4}] + [:& c/navigation-bullets + {:slide slide + :navigate navigate + :total 4}] - [:button {:on-click finish - :class (stl/css :next-btn)} "Let's go"]]]]]])))) + [:button {:on-click finish + :class (stl/css :next-btn)} "Let's go"]]]]]]))) From 2c506fc721ca5124d16d69653132e2b2af2575bc Mon Sep 17 00:00:00 2001 From: Alejandro Alonso Date: Fri, 14 Jun 2024 06:31:15 +0200 Subject: [PATCH 138/476] :bug: Fix SVG attrs are not handled correctly when exporting/importing .zip --- CHANGES.md | 1 + frontend/src/app/main/ui/shapes/export.cljs | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGES.md b/CHANGES.md index 27d52286dd..e7d05cb56b 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -44,6 +44,7 @@ - Fix toolbar keeps hiding when click outside workspace [Taiga #7776](https://tree.taiga.io/project/penpot/issue/7776) - Fix open overlay relative to a frame [Taiga #7563](https://tree.taiga.io/project/penpot/issue/7563) - Workspace-palette items stay hidden when opening with keyboard-shortcut [Taiga #7489](https://tree.taiga.io/project/penpot/issue/7489) +- Fix SVG attrs are not handled correctly when exporting/importing in .zip [Taiga #7920](https://tree.taiga.io/project/penpot/issue/7920) ## 2.0.3 diff --git a/frontend/src/app/main/ui/shapes/export.cljs b/frontend/src/app/main/ui/shapes/export.cljs index 35895b7776..0f216186ff 100644 --- a/frontend/src/app/main/ui/shapes/export.cljs +++ b/frontend/src/app/main/ui/shapes/export.cljs @@ -263,7 +263,7 @@ [:* (when (contains? shape :svg-attrs) (let [svg-transform (get shape :svg-transform) - svg-attrs (->> shape :svg-attrs keys (mapv d/name) (str/join ",")) + svg-attrs (->> shape :svg-attrs keys (mapv (comp d/name str/kebab)) (str/join ",")) svg-defs (->> shape :svg-defs keys (mapv d/name) (str/join ","))] [:> "penpot:svg-import" #js {:penpot:svg-attrs (when-not (empty? svg-attrs) svg-attrs) From b5477c4e30e73c37aa8b12ae905b0a05f92cf13d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9s=20Moya?= Date: Thu, 13 Jun 2024 16:09:51 +0200 Subject: [PATCH 139/476] :wrench: Improve debug utility --- frontend/src/debug.cljs | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/frontend/src/debug.cljs b/frontend/src/debug.cljs index 5ff02f75f7..9d79a2c24a 100644 --- a/frontend/src/debug.cljs +++ b/frontend/src/debug.cljs @@ -277,15 +277,23 @@ (let [page-id (get state :current-page-id) file (assoc (get state :workspace-file) :data (get state :workspace-data)) - libraries (get state :workspace-libraries)] - (ctf/dump-subtree file page-id shape-id libraries {:show-ids show-ids - :show-touched show-touched - :show-modified show-modified})))) + libraries (get state :workspace-libraries) + shape-id (if (some? shape-id) + (uuid/uuid shape-id) + (let [objects (get-in state [:workspace-data :pages-index page-id :objects]) + selected (get-in state [:workspace-local :selected])] + (->> selected (map (d/getf objects)) first :id)))] + (if (some? shape-id) + (ctf/dump-subtree file page-id shape-id libraries {:show-ids show-ids + :show-touched show-touched + :show-modified show-modified}) + (println "no selected shape"))))) + (defn ^:export dump-subtree - ([shape-id] (dump-subtree' @st/state (uuid/uuid shape-id))) - ([shape-id show-ids] (dump-subtree' @st/state (uuid/uuid shape-id) show-ids false false)) - ([shape-id show-ids show-touched] (dump-subtree' @st/state (uuid/uuid shape-id) show-ids show-touched false)) - ([shape-id show-ids show-touched show-modified] (dump-subtree' @st/state (uuid/uuid shape-id) show-ids show-touched show-modified))) + ([shape-id] (dump-subtree' @st/state shape-id)) + ([shape-id show-ids] (dump-subtree' @st/state shape-id show-ids false false)) + ([shape-id show-ids show-touched] (dump-subtree' @st/state shape-id show-ids show-touched false)) + ([shape-id show-ids show-touched show-modified] (dump-subtree' @st/state shape-id show-ids show-touched show-modified))) (when *assert* (defonce debug-subscription From 1ac6b556b0ae5ae56d3925dcd943467aee5701e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9s=20Moya?= Date: Thu, 13 Jun 2024 16:23:43 +0200 Subject: [PATCH 140/476] :bug: Fix detach when a nested copy has been swapped --- CHANGES.md | 1 + common/src/app/common/logic/libraries.cljc | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index e7d05cb56b..5a2145b54e 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -45,6 +45,7 @@ - Fix open overlay relative to a frame [Taiga #7563](https://tree.taiga.io/project/penpot/issue/7563) - Workspace-palette items stay hidden when opening with keyboard-shortcut [Taiga #7489](https://tree.taiga.io/project/penpot/issue/7489) - Fix SVG attrs are not handled correctly when exporting/importing in .zip [Taiga #7920](https://tree.taiga.io/project/penpot/issue/7920) +- Fix validation error when detaching with two nested copies and a swap [Taiga #8095](https://tree.taiga.io/project/penpot/issue/8095) ## 2.0.3 diff --git a/common/src/app/common/logic/libraries.cljc b/common/src/app/common/logic/libraries.cljc index ec40277e0c..314970805a 100644 --- a/common/src/app/common/logic/libraries.cljc +++ b/common/src/app/common/logic/libraries.cljc @@ -269,8 +269,8 @@ ; First level subinstances of a detached component can't have swap-slot (pcb/update-shapes [shape-id] ctk/remove-swap-slot) - :always - ; Near shape-refs need to be advanced one level + (nil? (ctk/get-swap-slot shape)) + ; Near shape-refs need to be advanced one level (except if the head is already swapped) (generate-advance-nesting-level nil container libraries (:id shape))) ;; Otherwise, detach the shape and all children From a3ac22f78121259ce60b5179b2255fac88d014e8 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Fri, 14 Jun 2024 11:55:57 +0200 Subject: [PATCH 141/476] :fire: Fix many inconsistencies on the onboarding translation strings Mainly related to the quiestions modal --- frontend/translations/cs.po | 114 +++++++------------------------ frontend/translations/de.po | 120 +++++++------------------------- frontend/translations/es.po | 12 ++-- frontend/translations/fr.po | 120 +++++++------------------------- frontend/translations/ha.po | 114 +++++++------------------------ frontend/translations/he.po | 86 ++++++----------------- frontend/translations/id.po | 59 ++++++---------- frontend/translations/ig.po | 108 +++++++---------------------- frontend/translations/lv.po | 98 +++++++------------------- frontend/translations/ms.po | 115 +++++++------------------------ frontend/translations/nl.po | 44 +++++------- frontend/translations/pt_PT.po | 70 ++++++------------- frontend/translations/ro.po | 40 +++++------ frontend/translations/tr.po | 121 +++++++-------------------------- frontend/translations/yo.po | 115 +++++++------------------------ frontend/translations/zh_CN.po | 114 +++++++------------------------ 16 files changed, 354 insertions(+), 1096 deletions(-) diff --git a/frontend/translations/cs.po b/frontend/translations/cs.po index 068dc44877..f8f0f768c2 100644 --- a/frontend/translations/cs.po +++ b/frontend/translations/cs.po @@ -2398,171 +2398,109 @@ msgid "profile.recovery.go-to-login" msgstr "Přejít na přihlášení" #: src/app/main/ui/onboarding/questions.cljs -msgid "question.design-tool-more-experienced-with" -msgstr "S jakým designovým nástrojem máte více zkušeností?" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.11-30" +msgid "onboarding.questions.team-size.11-30" msgstr "11-30" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.2-10" +msgid "onboarding.questions.team-size.2-10" msgstr "2-10" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.31-50" +msgid "onboarding.questions.team-size.31-50" msgstr "31-50" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.a-lot" -msgstr "Hodně" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.adobe-xd" +msgid "labels.adobe-xd" msgstr "Adobe XD" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.canva" +msgid "labels.canva" msgstr "Canva" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.describe-your-experience-working-on" -msgstr "Jak byste nejlépe popsali své zkušenosti s prací na..." - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.designer" -msgstr "Designer" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.developer" +msgid "labels.developer" msgstr "Vývojář" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.discover-more-about-penpot" -msgstr "Zjistěte více o Penpot" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.figma" +msgid "labels.figma" msgstr "Figma" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.founder" +msgid "labels.founder" msgstr "Zakladatel / viceprezident" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.freelancer" +msgid "labels.freelancer" msgstr "Jsem freelancer" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.get-the-code-from-my-team-project" -msgstr "Získejte kód z mého týmového projektu " - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.interface-design-visual-assets-design-systems" -msgstr "... design rozhraní, vizuální aktiva, návrhové systémy atd." - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.invision" +msgid "labels.invision" msgstr "InVision" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.leave-feedback-for-my-team-project" -msgstr "Zanechte zpětnou vazbu pro můj týmový projekt" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.lets-get-started" +msgid "onboarding.questions.lets-get-started" msgstr "Pusťme se do toho!" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.manager" +msgid "labels.product-management" msgstr "Produktový nebo projektový manažer" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.marketing" +msgid "labels.marketing" msgstr "Marketing" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.more-than-50" +msgid "onboarding.questions.team-size.more-than-50" msgstr "Více než 50" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.next" +msgid "labels.next" msgstr "Další" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.none" +msgid "labels.none" msgstr "Žádný" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.other" +msgid "labels.other" msgstr "Jiné (upřesněte)" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.personal-project" +msgid "onboarding.questions.team-size.personal-project" msgstr "Pracuji na osobním projektu" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.previous" +msgid "labels.previous" msgstr "Předchozí" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.questions-how-are-you-planning-to-use-penpot" -msgstr "Jak plánujete používat Penpot?" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.role" +msgid "onboarding.questions.step3.question2" msgstr "Jaká je vaše role?" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.select-option" +msgid "labels.select-option" msgstr "Vyberte možnost" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.sketch" +msgid "labels.sketch" msgstr "Sketch" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.some" +msgid "labels.some" msgstr "Nějaké" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.start" +msgid "labels.start" msgstr "Start" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.start-to-work-on-my-project" -msgstr "Začněte pracovat na mém projektu" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.student-teacher" +msgid "labels.student-teacher" msgstr "Student nebo učitel" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.team-size" +msgid "onboarding.questions.step3.question3" msgstr "Jaká je velikost vašeho týmu?" -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.test-penpot-to-see-if-its-a-fit-for-team" -msgstr "Vyzkoušejte Penpot, abyste zjistili, zda je vhodný pro tým " - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.try-out-before-using-penpot-on-premise" -msgstr "Před použitím Penpot on-premise si to vyzkoušejte" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.wireframes-user-journeys-flows-navigation-trees" -msgstr "... drátové modely, cesty a toky uživatelů, navigační stromy atd." - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.work-in-concept-ideas" -msgstr "Práce v konceptech" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.your-feedback-will-help-us" -msgstr "" -"Vaše zpětná vazba nám pomůže porozumět vašim zvykům a preferencím, abychom " -"mohli i nadále dělat Penpot užitečným nástrojem." - #: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, msgid "settings.detach" msgstr "Odpojit" diff --git a/frontend/translations/de.po b/frontend/translations/de.po index 0caea39e12..53608d7788 100644 --- a/frontend/translations/de.po +++ b/frontend/translations/de.po @@ -2500,177 +2500,109 @@ msgid "profile.recovery.go-to-login" msgstr "Zur Anmeldung" #: src/app/main/ui/onboarding/questions.cljs -msgid "question.design-tool-more-experienced-with" -msgstr "Mit welchem Design-Tool haben Sie mehr Erfahrung?" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.11-30" +msgid "onboarding.questions.team-size.11-30" msgstr "11-30" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.2-10" +msgid "onboarding.questions.team-size.2-10" msgstr "2-10" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.31-50" +msgid "onboarding.questions.team-size.31-50" msgstr "31-50" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.a-lot" -msgstr "Viel" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.adobe-xd" +msgid "labels.adobe-xd" msgstr "Adobe XD" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.canva" +msgid "labels.canva" msgstr "Canva" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.describe-your-experience-working-on" -msgstr "" -"Wie würden Sie Ihre Erfahrungen bei der Arbeit an … am besten beschreiben?" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.designer" -msgstr "Designer" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.developer" +msgid "labels.developer" msgstr "Developer" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.discover-more-about-penpot" -msgstr "Mehr über Penpot erfahren" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.figma" +msgid "labels.figma" msgstr "Figma" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.founder" +msgid "labels.founder" msgstr "Gründer/VP" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.freelancer" +msgid "labels.freelancer" msgstr "Ich bin ein Freelancer" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.get-the-code-from-my-team-project" -msgstr "Code aus meinem Teamprojekt erhalten " - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.interface-design-visual-assets-design-systems" -msgstr "... Interface-Design, visuelle Assets, Designsysteme usw." - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.invision" +msgid "labels.invision" msgstr "InVision" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.leave-feedback-for-my-team-project" -msgstr "Feedback für mein Team-Projekt hinterlassen" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.lets-get-started" +msgid "onboarding.questions.lets-get-started" msgstr "Los geht's!" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.manager" +msgid "labels.product-management" msgstr "Produkt- oder Projektmanager" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.marketing" +msgid "labels.marketing" msgstr "Marketing" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.more-than-50" +msgid "onboarding.questions.team-size.more-than-50" msgstr "Mehr als 50" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.never-used-one" -msgstr "Keine" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.next" +msgid "labels.next" msgstr "Weiter" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.none" +msgid "labels.none" msgstr "Keine" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.other" +msgid "labels.other" msgstr "Sonstiges (bitte angeben)" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.personal-project" +msgid "onboarding.questions.team-size.personal-project" msgstr "Ich arbeite an einem persönlichen Projekt" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.previous" +msgid "labels.previous" msgstr "Zurück" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.questions-how-are-you-planning-to-use-penpot" -msgstr "Wie wollen Sie Penpot nutzen?" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.role" +msgid "onboarding.questions.step3.question2" msgstr "Was ist Ihre Rolle?" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.select-option" +msgid "labels.select-option" msgstr "Wählen Sie eine Option" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.sketch" +msgid "labels.sketch" msgstr "Sketch" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.some" +msgid "labels.some" msgstr "Einige" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.start" +msgid "labels.start" msgstr "Start" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.start-to-work-on-my-project" -msgstr "Mit der Arbeit an meinem Projekt beginnen" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.student-teacher" +msgid "labels.student-teacher" msgstr "Schüler oder Lehrer" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.team-size" +msgid "onboarding.questions.step3.question3" msgstr "Wie groß ist Ihr Team?" -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.test-penpot-to-see-if-its-a-fit-for-team" -msgstr "Testen Sie Penpot, um zu sehen, ob es für das Team geeignet ist " - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.try-out-before-using-penpot-on-premise" -msgstr "Testen Sie Penpot, bevor Sie es auf einem eigenen Server verwenden" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.wireframes-user-journeys-flows-navigation-trees" -msgstr "... Wireframes, User Journeys & Flows, Navigationsbäume usw." - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.work-in-concept-ideas" -msgstr "Arbeiten an Konzeptideen" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.your-feedback-will-help-us" -msgstr "" -"Ihr Feedback wird uns helfen, Ihre Gewohnheiten und Vorlieben zu verstehen, " -"damit wir Penpot weiterhin zu einem nützlichen und angenehmen Werkzeug " -"machen können." - #: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, msgid "settings.detach" msgstr "Trennen" diff --git a/frontend/translations/es.po b/frontend/translations/es.po index c9e3983442..0ad3a9a4fe 100644 --- a/frontend/translations/es.po +++ b/frontend/translations/es.po @@ -2556,7 +2556,7 @@ msgid "labels.adobe-xd" msgstr "Adobe XD" #: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.canva" +msgid "labels.canva" msgstr "Canva" #: src/app/main/ui/onboarding/questions.cljs @@ -2640,11 +2640,11 @@ msgid "onboarding.questions.team-size.11-30" msgstr "11-30" #: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.2-10" +msgid "onboarding.questions.team-size.2-10" msgstr "2-10" #: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.freelancer" +msgid "onboarding.questions.team-size.freelancer" msgstr "Soy autónomo" #: src/app/main/ui/onboarding/questions.cljs @@ -2673,7 +2673,7 @@ msgstr "Creando sistemas de diseño" #: src/app/main/ui/onboarding/questions.cljs msgid "onboarding.questions.start-with.code" -msgstr "Generando código a partir de diseños" +msgstr "Generando código a partir de diseños" #: src/app/main/ui/onboarding/questions.cljs msgid "onboarding.questions.step5.title" @@ -2708,11 +2708,11 @@ msgid "labels.next" msgstr "Siguiente" #: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.other" +msgid "labels.other" msgstr "Otra (especifica)" #: src/app/main/ui/onboarding/questions.cljs -msgid "labels.other" +msgid "labels.other-short" msgstr "Otra" #: src/app/main/ui/onboarding/questions.cljs diff --git a/frontend/translations/fr.po b/frontend/translations/fr.po index 028164c046..43e05adf18 100644 --- a/frontend/translations/fr.po +++ b/frontend/translations/fr.po @@ -2347,173 +2347,109 @@ msgid "profile.recovery.go-to-login" msgstr "Aller à la page de connexion" #: src/app/main/ui/onboarding/questions.cljs -msgid "question.design-tool-more-experienced-with" -msgstr "Quel est l'outil de design avec lequel vous avez plus d'expérience?" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.11-30" +msgid "onboarding.questions.team-size.11-30" msgstr "11-30" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.2-10" +msgid "onboarding.questions.team-size.2-10" msgstr "2-10" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.31-50" +msgid "onboarding.questions.team-size.31-50" msgstr "31-50" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.a-lot" -msgstr "Beaucoup" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.adobe-xd" +msgid "labels.adobe-xd" msgstr "Adobe XD" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.canva" +msgid "labels.canva" msgstr "Canevas" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.describe-your-experience-working-on" -msgstr "Comment décririez-vous votre expérience de travail sur..." - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.designer" -msgstr "Designer" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.developer" +msgid "labels.developer" msgstr "Développeur" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.discover-more-about-penpot" -msgstr "En découvrir plus à propos de Penpot" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.figma" +msgid "labels.figma" msgstr "Figma" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.founder" +msgid "labels.founder" msgstr "Fondateur/Direction" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.freelancer" +msgid "labels.freelancer" msgstr "Je suis freelance" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.get-the-code-from-my-team-project" -msgstr "Obtenir le code du projet de mon équipe " - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.interface-design-visual-assets-design-systems" -msgstr "... design d'interface, éléments visuels, systèmes de conception, etc." - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.invision" +msgid "labels.invision" msgstr "InVision" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.leave-feedback-for-my-team-project" -msgstr "Laisser un commentaire sur mon projet d'équipe" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.lets-get-started" +msgid "onboarding.questions.lets-get-started" msgstr "C'est parti !" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.manager" +msgid "labels.product-management" msgstr "Gestionnaire de produit ou de projet" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.marketing" +msgid "labels.marketing" msgstr "Marketing" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.more-than-50" +msgid "onboarding.questions.team-size.more-than-50" msgstr "Plus que 50" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.next" +msgid "labels.next" msgstr "Suivant" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.none" +msgid "labels.none" msgstr "Aucune" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.other" +msgid "labels.other" msgstr "Autres (préciser)" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.personal-project" +msgid "onboarding.questions.team-size.personal-project" msgstr "Je travaille sur un projet personnel" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.previous" +msgid "labels.previous" msgstr "Précédent" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.questions-how-are-you-planning-to-use-penpot" -msgstr "Comment comptez-vous utiliser Penpot ?" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.role" +msgid "onboarding.questions.step3.question2" msgstr "Quel est votre rôle ?" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.select-option" +msgid "labels.select-option" msgstr "Sélectionnez une option" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.sketch" +msgid "labels.sketch" msgstr "Sketch" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.some" +msgid "labels.some" msgstr "Un peu" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.start" +msgid "labels.start" msgstr "Commencer" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.start-to-work-on-my-project" -msgstr "Commencer à travailler sur mon projet" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.student-teacher" +msgid "labels.student-teacher" msgstr "Étudiant ou enseignant" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.team-size" +msgid "onboarding.questions.step3.question3" msgstr "Quelle est la taille de votre équipe ?" -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.test-penpot-to-see-if-its-a-fit-for-team" -msgstr "Tester Penpot pour voir si ça convient à mon équipe " - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.try-out-before-using-penpot-on-premise" -msgstr "Essayer Penpot avant de l'utiliser en local" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.wireframes-user-journeys-flows-navigation-trees" -msgstr "" -"... wireframes, parcours et flux utilisateurs, arborescence de navigation, " -"etc." - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.work-in-concept-ideas" -msgstr "Travailler sur des idées de concept" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.your-feedback-will-help-us" -msgstr "" -"Vos retours nous aideront à comprendre vos habitudes et préférences afin " -"que nous puissions continuer à améliorer Penpot." - #: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, msgid "settings.detach" msgstr "Détacher" @@ -5185,10 +5121,6 @@ msgid_plural "modals.move-shared-confirm.accept" msgstr[0] "Déplacer" msgstr[1] "Déplacer" -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.never-used-one" -msgstr "Aucune" - #: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs msgid "settings.select-this-color" msgstr "Sélectionnez les éléments qui utilisent ce style" diff --git a/frontend/translations/ha.po b/frontend/translations/ha.po index a50a6f1317..7ce70c2b58 100644 --- a/frontend/translations/ha.po +++ b/frontend/translations/ha.po @@ -2220,171 +2220,109 @@ msgid "profile.recovery.go-to-login" msgstr "je ka hanyar shiga" #: src/app/main/ui/onboarding/questions.cljs -msgid "question.design-tool-more-experienced-with" -msgstr "wane kayan zane ka fi iya aiki da shi?" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.11-30" +msgid "onboarding.questions.team-size.11-30" msgstr "11-30" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.2-10" +msgid "onboarding.questions.team-size.2-10" msgstr "2-10" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.31-50" +msgid "onboarding.questions.team-size.31-50" msgstr "31-50" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.a-lot" -msgstr "da yawa" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.adobe-xd" +msgid "labels.adobe-xd" msgstr "Adobe XD" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.canva" +msgid "labels.canva" msgstr "Canva" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.describe-your-experience-working-on" -msgstr "ta ya za ka bayyana kwarewarka akai..." - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.designer" -msgstr "ma su tsarawa" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.developer" +msgid "labels.developer" msgstr "ma su qirqira" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.discover-more-about-penpot" -msgstr "qara samun bayanin fenfot" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.figma" +msgid "labels.figma" msgstr "Figma" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.founder" +msgid "labels.founder" msgstr "mawallafi/VP" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.freelancer" +msgid "labels.freelancer" msgstr "ni mai zaman kansa ne" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.get-the-code-from-my-team-project" -msgstr "sami lambar kowane aiki " - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.interface-design-visual-assets-design-systems" -msgstr "... zane-zane, kayan kallo, tsarin qira, etc." - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.invision" +msgid "labels.invision" msgstr "teburin aiki" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.leave-feedback-for-my-team-project" -msgstr "barin aikin tawaga" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.lets-get-started" +msgid "onboarding.questions.lets-get-started" msgstr "za mu fara!" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.manager" +msgid "labels.product-management" msgstr "shugaban aiki" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.marketing" +msgid "labels.marketing" msgstr "kasuwanci" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.more-than-50" +msgid "onboarding.questions.team-size.more-than-50" msgstr "fiye da 50" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.next" +msgid "labels.next" msgstr "na gaba" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.none" +msgid "labels.none" msgstr "babu" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.other" +msgid "labels.other" msgstr "idan akwai qari (bayyana)" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.personal-project" +msgid "onboarding.questions.team-size.personal-project" msgstr "ina aikin kaina" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.previous" +msgid "labels.previous" msgstr "can baya" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.questions-how-are-you-planning-to-use-penpot" -msgstr "ya kake tunanin aiki da fenfot?" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.role" +msgid "onboarding.questions.step3.question2" msgstr "mi ne ne matsayinka?" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.select-option" +msgid "labels.select-option" msgstr "dauki wanda kake so" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.sketch" +msgid "labels.sketch" msgstr "zana" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.some" +msgid "labels.some" msgstr "wasu" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.start" +msgid "labels.start" msgstr "fara" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.start-to-work-on-my-project" -msgstr "fara aiki na" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.student-teacher" +msgid "labels.student-teacher" msgstr "malami ko dalibi" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.team-size" +msgid "onboarding.questions.step3.question3" msgstr "bayyana yawan tawagarka?" -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.test-penpot-to-see-if-its-a-fit-for-team" -msgstr "jaraba fenfot ka ga ko ta yi daidai da tawaga " - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.try-out-before-using-penpot-on-premise" -msgstr "jaraba kafin ka yi aiki da fenfot" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.wireframes-user-journeys-flows-navigation-trees" -msgstr "... jagora, yawan amfani da shiga, leqe-leqe, dss." - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.work-in-concept-ideas" -msgstr "yin aikin kan tunani mai kyau" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.your-feedback-will-help-us" -msgstr "" -"bayaninka za ya sanya mu fahimci kwarewarka da xabi'unka ta haka ne za mu " -"mayar maka da fenfot kayan aikin da ka ke jin daxin aiki da shi." - #: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, msgid "settings.detach" msgstr "cire" diff --git a/frontend/translations/he.po b/frontend/translations/he.po index 77b4e3723d..9d751d724d 100644 --- a/frontend/translations/he.po +++ b/frontend/translations/he.po @@ -2423,131 +2423,85 @@ msgid "profile.recovery.go-to-login" msgstr "מעבר למסך הכניסה" #: src/app/main/ui/onboarding/questions.cljs -msgid "question.design-tool-more-experienced-with" -msgstr "באיזה כלי עיצוב יש לך יותר ניסיון?" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.11-30" +msgid "onboarding.questions.team-size.11-30" msgstr "11‏-30" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.2-10" +msgid "onboarding.questions.team-size.2-10" msgstr "2-‏10" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.31-50" +msgid "onboarding.questions.team-size.31-50" msgstr "31‏-50" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.adobe-xd" +msgid "labels.adobe-xd" msgstr "Adobe XD" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.canva" +msgid "labels.canva" msgstr "Canva" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.figma" +msgid "labels.figma" msgstr "Figma" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.founder" +msgid "labels.founder" msgstr "מייסד/סגן נשיא" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.freelancer" +msgid "labels.freelancer" msgstr "יש לי עסק משלי" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.get-the-code-from-my-team-project" -msgstr "הורדת הקוד מהמיזם הצוותי שלי " - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.interface-design-visual-assets-design-systems" -msgstr "… עיצוב מנשק, נכסים חזותיים, מערכות עיצוב, וכו׳." - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.invision" +msgid "labels.invision" msgstr "InVision" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.leave-feedback-for-my-team-project" -msgstr "להשאיר משוב למיזם הצוותי שלי" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.lets-get-started" +msgid "onboarding.questions.lets-get-started" msgstr "מתחילים!" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.more-than-50" +msgid "onboarding.questions.team-size.more-than-50" msgstr "גדול מ־50" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.never-used-one" -msgstr "אין" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.next" +msgid "labels.next" msgstr "הבאה" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.other" +msgid "labels.other" msgstr "אחר (נא לפרט)" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.personal-project" +msgid "onboarding.questions.team-size.personal-project" msgstr "זאת עבודה על מיזם פרטי" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.previous" +msgid "labels.previous" msgstr "הקודמת" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.select-option" +msgid "labels.select-option" msgstr "בחירת אפשרות" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.sketch" +msgid "labels.sketch" msgstr "Sketch" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.start" +msgid "labels.start" msgstr "התחלה" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.start-to-work-on-my-project" -msgstr "התחלת עבודה על מיזם משלי" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.student-teacher" +msgid "labels.student-teacher" msgstr "סטודנט/ית או מרצה" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.team-size" +msgid "onboarding.questions.step3.question3" msgstr "מה גודל הצוות שלך?" -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.test-penpot-to-see-if-its-a-fit-for-team" -msgstr "לבדוק את Penpot ולראות אם הוא מתאים לצוות שלי " - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.try-out-before-using-penpot-on-premise" -msgstr "אפשר להתנסות לפני שימוש ב־Penpot אצלך בעבודה" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.wireframes-user-journeys-flows-navigation-trees" -msgstr "… תרשימי מתאר, סיפורי ותהליכי משתמשים, עצי ניווט ועוד." - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.work-in-concept-ideas" -msgstr "עבודה עם רעיונות למימוש" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.your-feedback-will-help-us" -msgstr "" -"המשוב שלך יסייע לנו להבין מה הם ההרגלים וההעדפות שלך כדי שנוכל להמשיך להפוך " -"את Penpot לכלי מהנה ושימושי." - #: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, msgid "settings.detach" msgstr "ניתוק" diff --git a/frontend/translations/id.po b/frontend/translations/id.po index 93345da619..316f371870 100644 --- a/frontend/translations/id.po +++ b/frontend/translations/id.po @@ -2404,96 +2404,79 @@ msgid "profile.recovery.go-to-login" msgstr "Pergi ke log masuk" #: src/app/main/ui/onboarding/questions.cljs -msgid "question.design-tool-more-experienced-with" -msgstr "Alat desain manakah yang lebih Anda kuasai?" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.11-30" +msgid "onboarding.questions.team-size.11-30" msgstr "11–30" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.2-10" +msgid "onboarding.questions.team-size.2-10" msgstr "2–10" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.31-50" +msgid "onboarding.questions.team-size.31-50" msgstr "31–50" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.adobe-xd" +msgid "labels.adobe-xd" msgstr "Adobe XD" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.canva" +msgid "labels.canva" msgstr "Canva" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.describe-your-experience-working-on" -msgstr "" -"Bagaimana cara terbaik Anda menggambarkan pengalaman Anda mengerjakan..." - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.designer" -msgstr "Perancang" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.developer" +msgid "labels.developer" msgstr "Pengembang" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.discover-more-about-penpot" -msgstr "Jelajahi lebih lanjut tentang Penpot" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.figma" +msgid "labels.figma" msgstr "Figma" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.freelancer" +msgid "labels.freelancer" msgstr "Saya seorang pekerja lepas" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.invision" +msgid "labels.invision" msgstr "InVision" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.lets-get-started" +msgid "onboarding.questions.lets-get-started" msgstr "Mari kita mulai!" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.more-than-50" +msgid "onboarding.questions.team-size.more-than-50" msgstr "Lebih dari 50" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.next" +msgid "labels.next" msgstr "Berikutnya" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.other" +msgid "labels.other" msgstr "Lainnya (jelaskan)" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.personal-project" +msgid "onboarding.questions.team-size.personal-project" msgstr "Saya mengerjakan proyek pribadi" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.previous" +msgid "labels.previous" msgstr "Sebelumnya" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.select-option" +msgid "labels.select-option" msgstr "Pilih opsi" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.sketch" +msgid "labels.sketch" msgstr "Sketch" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.start" +msgid "labels.start" msgstr "Mulai" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.student-teacher" +msgid "labels.student-teacher" msgstr "Siswa atau Guru" #: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, @@ -5137,10 +5120,6 @@ msgstr "Tampilkan / Sembunyikan panduan" msgid "onboarding.team-modal.team-definition" msgstr "Apa itu tim?" -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.never-used-one" -msgstr "Tidak ada" - msgid "shortcuts.toggle-snap-guides" msgstr "Pasang ke panduan" diff --git a/frontend/translations/ig.po b/frontend/translations/ig.po index 44203b20a2..dd023c9811 100644 --- a/frontend/translations/ig.po +++ b/frontend/translations/ig.po @@ -1894,163 +1894,105 @@ msgid "profile.recovery.go-to-login" msgstr "Gaa na mbanye" #: src/app/main/ui/onboarding/questions.cljs -msgid "question.design-tool-more-experienced-with" -msgstr "Kedu ngwa ọrụ nse ị ka mara eji arụ ọrụ ?" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.11-30" +msgid "onboarding.questions.team-size.11-30" msgstr "Iri na otu ruo na iri atọ" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.2-10" +msgid "onboarding.questions.team-size.2-10" msgstr "Abụọ ruo na iri" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.31-50" +msgid "onboarding.questions.team-size.31-50" msgstr "Iri atọ na otu ruo na iri ise" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.a-lot" -msgstr "Ọtụtụ" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.adobe-xd" +msgid "labels.adobe-xd" msgstr "Ngwa nrụkọrịta ọrụ Adobe" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.canva" +msgid "labels.canva" msgstr "Kanva" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.describe-your-experience-working-on" -msgstr "Kedụ ka Ị ga-esi kọwaa ọfụma ihe ndị ị hụrụ ịrụ ọrụ na..." - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.developer" +msgid "labels.developer" msgstr "Onye nrụpụta" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.discover-more-about-penpot" -msgstr "Chọpụta ihe ndị ọzọ gbasara ite mkpịsị" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.figma" +msgid "labels.figma" msgstr "Ihe onyonyo" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.founder" +msgid "labels.founder" msgstr "Onye malitere /VP" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.freelancer" +msgid "labels.freelancer" msgstr "Onye nwere onwe ya" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.get-the-code-from-my-team-project" -msgstr "Weta akara site n'arụmarụ otu m " - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.interface-design-visual-assets-design-systems" -msgstr "... Nhazi ihu nse, uru ahụmụzọ, usoro imewe , etc." - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.invision" +msgid "labels.invision" msgstr "Mmakpo" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.leave-feedback-for-my-team-project" -msgstr "Hapụ Nzaghachi maka arụmarụ ndị otu m" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.lets-get-started" +msgid "onboarding.questions.lets-get-started" msgstr "Ka anyị bido!" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.manager" +msgid "labels.product-management" msgstr "Onye njikwa ngwaahịa ma ọ bụ arụmarụ" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.marketing" +msgid "labels.marketing" msgstr "Ịzụ ahịa" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.more-than-50" +msgid "onboarding.questions.team-size.more-than-50" msgstr "Karịrị iri ise" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.next" +msgid "labels.next" msgstr "Ọzọ" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.none" +msgid "labels.none" msgstr "Onweghị" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.other" +msgid "labels.other" msgstr "Ọzọ (zipụta)" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.personal-project" +msgid "onboarding.questions.team-size.personal-project" msgstr "A na m arụ ọrụ n'arụmarụ onwe" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.questions-how-are-you-planning-to-use-penpot" -msgstr "Kedụ ka ị sị akwado iji ite mkpịsị arụ ọrụ ?" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.role" +msgid "onboarding.questions.step3.question2" msgstr "Gịnị bụ ọrụ gị ?" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.select-option" +msgid "labels.select-option" msgstr "Họrọ nhọ" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.sketch" +msgid "labels.sketch" msgstr "Eserese" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.some" +msgid "labels.some" msgstr "Ụfọdụ" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.start" +msgid "labels.start" msgstr "Bido" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.start-to-work-on-my-project" -msgstr "Bido ịrụ ọrụ m" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.student-teacher" +msgid "labels.student-teacher" msgstr "Nwata akwụkwọ ma ọ bụ onye nkụzi" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.team-size" +msgid "onboarding.questions.step3.question3" msgstr "Kedụ ka otu gị ha?" -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.test-penpot-to-see-if-its-a-fit-for-team" -msgstr "Nwale ite mkpịsị ịhụ ma ọ bụ ihe ndaba maka otu " - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.try-out-before-using-penpot-on-premise" -msgstr "Gbalịa mee mbụ tupu ị jiri ite mkpịsị rụọ ọrụ n'ebe ọ dị" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.wireframes-user-journeys-flows-navigation-trees" -msgstr "... waya etiti , ndị ọrụ njem na eruba , osisi ngagharị gasị , dgz." - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.work-in-concept-ideas" -msgstr "Na-arụ ọrụ n'echiche ihe" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.your-feedback-will-help-us" -msgstr "" -"Nzaghachi gị ga-enyere anyị aka ịghọta ihe agwa na mmasị gị bụ Ka anyị ga " -"na-eme Ite mkpịsị ụdị ngwa ọrụ bara uru dị ụtọ ." - msgid "shortcuts.bring-backward" msgstr "Wega ebe azụ" diff --git a/frontend/translations/lv.po b/frontend/translations/lv.po index ba94cdf734..4630835fc4 100644 --- a/frontend/translations/lv.po +++ b/frontend/translations/lv.po @@ -2461,151 +2461,101 @@ msgid "profile.recovery.go-to-login" msgstr "Doties uz pieteikšanos" #: src/app/main/ui/onboarding/questions.cljs -msgid "question.design-tool-more-experienced-with" -msgstr "Ar kuru no šiem rīkiem ir bijusi lielākā pieredze?" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.11-30" +msgid "onboarding.questions.team-size.11-30" msgstr "11-30" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.2-10" +msgid "onboarding.questions.team-size.2-10" msgstr "2-10" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.31-50" +msgid "onboarding.questions.team-size.31-50" msgstr "31-50" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.adobe-xd" +msgid "labels.adobe-xd" msgstr "Adobe XD" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.canva" +msgid "labels.canva" msgstr "Canva" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.describe-your-experience-working-on" -msgstr "Kā vislabāk raksturotu savu pieredzi strādājot pie..." - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.designer" -msgstr "Modelētājs" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.developer" +msgid "labels.developer" msgstr "Izstrādātājs" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.discover-more-about-penpot" -msgstr "Atklāt vairāk par Penpot" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.figma" +msgid "labels.figma" msgstr "Figma" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.founder" +msgid "labels.founder" msgstr "Dibinātājs/viceprezidents" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.freelancer" +msgid "labels.freelancer" msgstr "Esmu ārštātnieks(-ce)/Pašnodarbināts(-ā)" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.invision" +msgid "labels.invision" msgstr "InVision" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.lets-get-started" +msgid "onboarding.questions.lets-get-started" msgstr "Ķeramies pie darba!" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.manager" +msgid "labels.product-management" msgstr "Produktu vai projektu vadītājs" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.marketing" +msgid "labels.marketing" msgstr "Tirgvedība" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.more-than-50" +msgid "onboarding.questions.team-size.more-than-50" msgstr "Vairāk nekā 50" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.never-used-one" -msgstr "Neviens" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.next" +msgid "labels.next" msgstr "Nākamais" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.other" +msgid "labels.other" msgstr "Cits (jānorāda)" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.personal-project" +msgid "onboarding.questions.team-size.personal-project" msgstr "Strādāju personīgā projektā" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.previous" +msgid "labels.previous" msgstr "Iepriekšējais" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.questions-how-are-you-planning-to-use-penpot" -msgstr "Kā ir iecerēts izmantot Penpot?" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.role" +msgid "onboarding.questions.step3.question2" msgstr "Kāda ir ieņemamā loma?" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.select-option" +msgid "labels.select-option" msgstr "Atlasīt iespēju" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.sketch" +msgid "labels.sketch" msgstr "Sketch" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.start" +msgid "labels.start" msgstr "Sākt" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.start-to-work-on-my-project" -msgstr "Sākt strādāt pie sava projekta" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.student-teacher" +msgid "labels.student-teacher" msgstr "Students vai pasniedzējs" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.team-size" +msgid "onboarding.questions.step3.question3" msgstr "Cik liela ir komanda?" -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.test-penpot-to-see-if-its-a-fit-for-team" -msgstr "Izmēģini Penpot, lai saprastu, vai tā der komandai " - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.try-out-before-using-penpot-on-premise" -msgstr "Izmēģināt pirms izvietotas Penpot izmantošanas" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.wireframes-user-journeys-flows-navigation-trees" -msgstr "... struktūrskices, lietotāju ceļi un plūsmas, pārvietošanās koki utt." - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.work-in-concept-ideas" -msgstr "Darbs koncepcijas idejās" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.your-feedback-will-help-us" -msgstr "" -"Atsauksmes palīdzēs mums saprast, kādi ir lietotāju paradumi un izvēles, " -"lai mēs varētu turpināt padarīt Penpot par noderīgu un patīkamu rīku." - #: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, msgid "settings.detach" msgstr "Atdalīt" diff --git a/frontend/translations/ms.po b/frontend/translations/ms.po index 7940af69c1..6fa8b512b9 100644 --- a/frontend/translations/ms.po +++ b/frontend/translations/ms.po @@ -2329,172 +2329,109 @@ msgid "profile.recovery.go-to-login" msgstr "Pergi ke log masuk" #: src/app/main/ui/onboarding/questions.cljs -msgid "question.design-tool-more-experienced-with" -msgstr "Alat reka bentuk yang manakah anda mempunyai lebih banyak pengalaman?" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.11-30" +msgid "onboarding.questions.team-size.11-30" msgstr "11-30" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.2-10" +msgid "onboarding.questions.team-size.2-10" msgstr "2-10" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.31-50" +msgid "onboarding.questions.team-size.31-50" msgstr "31-50" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.a-lot" -msgstr "Banyak" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.adobe-xd" +msgid "labels.adobe-xd" msgstr "Adobe XD" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.canva" +msgid "labels.canva" msgstr "Canva" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.describe-your-experience-working-on" -msgstr "Bagaimanakah cara terbaik anda menerangkan pengalaman anda bekerja pada..." - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.designer" -msgstr "Pereka bentuk" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.developer" +msgid "labels.developer" msgstr "Pembangun" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.discover-more-about-penpot" -msgstr "Ketahui lebih lanjut tentang Penpot" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.figma" +msgid "labels.figma" msgstr "Figma" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.founder" +msgid "labels.founder" msgstr "Pengasas/VP" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.freelancer" +msgid "labels.freelancer" msgstr "Saya seorang pekerja bebas (freelancer)" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.get-the-code-from-my-team-project" -msgstr "Dapatkan kod daripada projek pasukan saya " - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.interface-design-visual-assets-design-systems" -msgstr "... reka bentuk antara muka, aset visual, sistem reka bentuk, dsb." - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.invision" +msgid "labels.invision" msgstr "InVision" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.leave-feedback-for-my-team-project" -msgstr "Tinggalkan maklum balas untuk projek pasukan saya" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.lets-get-started" +msgid "onboarding.questions.lets-get-started" msgstr "Mari mulakan!" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.manager" +msgid "labels.product-management" msgstr "Pengurus Produk atau Projek" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.marketing" +msgid "labels.marketing" msgstr "Pemasaran" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.more-than-50" +msgid "onboarding.questions.team-size.more-than-50" msgstr "Lebih daripada 50" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.next" +msgid "labels.next" msgstr "Seterusnya" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.none" +msgid "labels.none" msgstr "Tiada" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.other" +msgid "labels.other" msgstr "Lain-lain (nyatakan)" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.personal-project" +msgid "onboarding.questions.team-size.personal-project" msgstr "Saya sedang menjalankan projek peribadi" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.previous" +msgid "labels.previous" msgstr "Sebelumnya" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.questions-how-are-you-planning-to-use-penpot" -msgstr "Bagaimanakah anda merancang untuk menggunakan Penpot?" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.role" +msgid "onboarding.questions.step3.question2" msgstr "Apakah peranan anda?" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.select-option" +msgid "labels.select-option" msgstr "Pilih pilihan" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.sketch" +msgid "labels.sketch" msgstr "Sketch" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.some" +msgid "labels.some" msgstr "Beberapa" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.start" +msgid "labels.start" msgstr "Mula" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.start-to-work-on-my-project" -msgstr "Mula mengerjakan projek saya" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.student-teacher" +msgid "labels.student-teacher" msgstr "Pelajar atau guru" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.team-size" +msgid "onboarding.questions.step3.question3" msgstr "Berapakah saiz pasukan anda?" -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.test-penpot-to-see-if-its-a-fit-for-team" -msgstr "Uji Penpot untuk melihat sama ada ia sesuai untuk pasukan " - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.try-out-before-using-penpot-on-premise" -msgstr "Cuba sebelum menggunakan Penpot pada pelayar peribadi" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.wireframes-user-journeys-flows-navigation-trees" -msgstr "... rangka wayar, perjalanan & aliran pengguna, pepohon navigasi, dsb." - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.work-in-concept-ideas" -msgstr "Bekerja dalam idea konsep" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.your-feedback-will-help-us" -msgstr "" -"Maklum balas anda akan membantu kami memahami tabiat dan keutamaan anda " -"supaya kami boleh terus menjadikan Penpot sebagai alat yang berguna dan " -"menyeronokkan." - #: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, #, fuzzy msgid "settings.detach" diff --git a/frontend/translations/nl.po b/frontend/translations/nl.po index c8e7a672e7..84f3c818dd 100644 --- a/frontend/translations/nl.po +++ b/frontend/translations/nl.po @@ -2479,83 +2479,75 @@ msgid "profile.recovery.go-to-login" msgstr "Ga naar inlogscherm" #: src/app/main/ui/onboarding/questions.cljs -msgid "question.design-tool-more-experienced-with" -msgstr "Met welke ontwerptool heb je meer ervaring?" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.11-30" +msgid "onboarding.questions.team-size.11-30" msgstr "11-30" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.2-10" +msgid "onboarding.questions.team-size.2-10" msgstr "2-10" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.31-50" +msgid "onboarding.questions.team-size.31-50" msgstr "31-50" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.adobe-xd" +msgid "labels.adobe-xd" msgstr "Adobe XD" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.canva" +msgid "labels.canva" msgstr "Canva" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.figma" +msgid "labels.figma" msgstr "Figma" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.freelancer" +msgid "labels.freelancer" msgstr "Ik ben een freelancer" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.invision" +msgid "labels.invision" msgstr "InVision" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.lets-get-started" +msgid "onboarding.questions.lets-get-started" msgstr "Laten we beginnen!" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.more-than-50" +msgid "onboarding.questions.team-size.more-than-50" msgstr "Meer dan 50" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.never-used-one" -msgstr "Geen" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.next" +msgid "labels.next" msgstr "Volgende" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.other" +msgid "labels.other" msgstr "Anders (namelijk…)" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.personal-project" +msgid "onboarding.questions.team-size.personal-project" msgstr "Ik werk aan een persoonlijk project" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.previous" +msgid "labels.previous" msgstr "Vorige" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.select-option" +msgid "labels.select-option" msgstr "Selecteer een optie" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.sketch" +msgid "labels.sketch" msgstr "Sketch" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.start" +msgid "labels.start" msgstr "Starten" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.student-teacher" +msgid "labels.student-teacher" msgstr "Student of docent" #: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, diff --git a/frontend/translations/pt_PT.po b/frontend/translations/pt_PT.po index e7cfda9baf..a08fa96849 100644 --- a/frontend/translations/pt_PT.po +++ b/frontend/translations/pt_PT.po @@ -2429,109 +2429,81 @@ msgid "profile.recovery.go-to-login" msgstr "Ir para login" #: src/app/main/ui/onboarding/questions.cljs -msgid "question.design-tool-more-experienced-with" -msgstr "Com que ferramenta de design tens mais experiência?" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.11-30" +msgid "onboarding.questions.team-size.11-30" msgstr "11-30" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.2-10" +msgid "onboarding.questions.team-size.2-10" msgstr "2-10" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.31-50" +msgid "onboarding.questions.team-size.31-50" msgstr "31-50" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.adobe-xd" +msgid "labels.adobe-xd" msgstr "Adobe XD" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.canva" +msgid "labels.canva" msgstr "Canva" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.figma" +msgid "labels.figma" msgstr "Figma" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.freelancer" +msgid "labels.freelancer" msgstr "Sou trabalhador(a) independente (freelancer)" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.invision" +msgid "labels.invision" msgstr "InVision" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.lets-get-started" +msgid "onboarding.questions.lets-get-started" msgstr "Vamos começar!" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.more-than-50" +msgid "onboarding.questions.team-size.more-than-50" msgstr "Mais de 50" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.next" +msgid "labels.next" msgstr "Seguinte" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.other" +msgid "labels.other" msgstr "Outra (especificar)" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.personal-project" +msgid "onboarding.questions.team-size.personal-project" msgstr "Estou a trabalhar num projeto pessoal" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.previous" +msgid "labels.previous" msgstr "Anterior" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.select-option" +msgid "labels.select-option" msgstr "Escolhe uma opção" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.sketch" +msgid "labels.sketch" msgstr "Sketch" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.start" +msgid "labels.start" msgstr "Começar" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.student-teacher" +msgid "labels.student-teacher" msgstr "Estudante ou professor(a)" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.team-size" +msgid "onboarding.questions.step3.question3" msgstr "De que tamanho é a tua equipa?" -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.test-penpot-to-see-if-its-a-fit-for-team" -msgstr "Testar o Penpot para ver se é adequado para a minha equipa " - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.try-out-before-using-penpot-on-premise" -msgstr "Experimentar o Penpot antes de usar num servidor privado" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.wireframes-user-journeys-flows-navigation-trees" -msgstr "" -"...wireframes, jornadas e fluxos de utilizador, árvores de navegação, etc." - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.work-in-concept-ideas" -msgstr "Concetualizar ideias" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.your-feedback-will-help-us" -msgstr "" -"Os teus comentários ajudar-nos-ão a compreender os teus hábitos e " -"preferências para que possamos continuar a tornar o Penpot numa ferramenta " -"fácil e divertida de usar." - #: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, msgid "settings.detach" msgstr "Desacoplar" @@ -5157,10 +5129,6 @@ msgstr[1] "Mover bibliotecas" msgid "onboarding.team-modal.team-definition" msgstr "O que é uma equipa?" -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.never-used-one" -msgstr "Nenhuma" - #: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs msgid "settings.select-this-color" msgstr "Selecionar itens que usem este estilo" diff --git a/frontend/translations/ro.po b/frontend/translations/ro.po index 7634386e0b..a9af179307 100644 --- a/frontend/translations/ro.po +++ b/frontend/translations/ro.po @@ -2334,79 +2334,75 @@ msgid "profile.recovery.go-to-login" msgstr "Mergi la autentificare" #: src/app/main/ui/onboarding/questions.cljs -msgid "question.design-tool-more-experienced-with" -msgstr "Care este unealta de design cu care aveți mai multă experiență?" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.11-30" +msgid "onboarding.questions.team-size.11-30" msgstr "11-30" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.2-10" +msgid "onboarding.questions.team-size.2-10" msgstr "2-10" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.31-50" +msgid "onboarding.questions.team-size.31-50" msgstr "31-50" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.adobe-xd" +msgid "labels.adobe-xd" msgstr "Adobe XD" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.canva" +msgid "labels.canva" msgstr "Canva" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.figma" +msgid "labels.figma" msgstr "Figma" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.freelancer" +msgid "labels.freelancer" msgstr "Sunt un freelancer" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.invision" +msgid "labels.invision" msgstr "InVision" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.lets-get-started" +msgid "onboarding.questions.lets-get-started" msgstr "Să începem!" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.more-than-50" +msgid "onboarding.questions.team-size.more-than-50" msgstr "Mai mult de 50" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.next" +msgid "labels.next" msgstr "Următor" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.other" +msgid "labels.other" msgstr "Alta (specificați)" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.personal-project" +msgid "onboarding.questions.team-size.personal-project" msgstr "Lucrez la un proiect personal" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.previous" +msgid "labels.previous" msgstr "Anterior" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.select-option" +msgid "labels.select-option" msgstr "Selectați opțiune" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.sketch" +msgid "labels.sketch" msgstr "Sketch" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.start" +msgid "labels.start" msgstr "Începeți" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.student-teacher" +msgid "labels.student-teacher" msgstr "Student sau profesor" #: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, diff --git a/frontend/translations/tr.po b/frontend/translations/tr.po index db7b21a4e6..cc43fae0c1 100644 --- a/frontend/translations/tr.po +++ b/frontend/translations/tr.po @@ -2447,178 +2447,109 @@ msgid "profile.recovery.go-to-login" msgstr "Oturum açmaya git" #: src/app/main/ui/onboarding/questions.cljs -msgid "question.design-tool-more-experienced-with" -msgstr "Hangi tasarım aracını daha iyi kullanıyorsunuz?" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.11-30" +msgid "onboarding.questions.team-size.11-30" msgstr "11-30" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.2-10" +msgid "onboarding.questions.team-size.2-10" msgstr "2-10" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.31-50" +msgid "onboarding.questions.team-size.31-50" msgstr "31-50" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.a-lot" -msgstr "Çok fazla" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.adobe-xd" +msgid "labels.adobe-xd" msgstr "Adobe XD" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.canva" +msgid "labels.canva" msgstr "Canva" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.describe-your-experience-working-on" -msgstr "... üzerinde çalışma deneyiminizi en iyi nasıl tarif edersiniz?" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.designer" -msgstr "Tasarımcı" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.developer" +msgid "labels.developer" msgstr "Geliştirici" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.discover-more-about-penpot" -msgstr "Penpot'u daha fazla keşfedin" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.figma" +msgid "labels.figma" msgstr "Figma" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.founder" +msgid "labels.founder" msgstr "Kurucu/Başkan Yardımcısı" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.freelancer" +msgid "labels.freelancer" msgstr "Serbest çalışıyorum" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.get-the-code-from-my-team-project" -msgstr "Takım projemin kodunu al " - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.interface-design-visual-assets-design-systems" -msgstr "... kullanıcı arayüzü tasarımı, görsel öğeler, tasarım sistemleri, vb." - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.invision" +msgid "labels.invision" msgstr "InVision" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.leave-feedback-for-my-team-project" -msgstr "Takımımın projesi için geri bildirim bırakın" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.lets-get-started" +msgid "onboarding.questions.lets-get-started" msgstr "Haydi başlayalım!" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.manager" +msgid "labels.product-management" msgstr "Ürün veya Proje yöneticisi" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.marketing" +msgid "labels.marketing" msgstr "Pazarlama" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.more-than-50" +msgid "onboarding.questions.team-size.more-than-50" msgstr "50'den fazla" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.never-used-one" -msgstr "Hiçbiri" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.next" +msgid "labels.next" msgstr "Sonraki" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.none" +msgid "labels.none" msgstr "Hiçbiri" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.other" +msgid "labels.other" msgstr "Diğer (lütfen belirtiniz)" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.personal-project" +msgid "onboarding.questions.team-size.personal-project" msgstr "Kendi projem üzerinde çalışıyorum" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.previous" +msgid "labels.previous" msgstr "Önceki" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.questions-how-are-you-planning-to-use-penpot" -msgstr "Penpot'u nasıl kullanmayı planlıyorsunuz?" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.role" +msgid "onboarding.questions.step3.question2" msgstr "Göreviniz nedir?" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.select-option" +msgid "labels.select-option" msgstr "Bir seçenek belirleyin" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.sketch" +msgid "labels.sketch" msgstr "Sketch" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.some" +msgid "labels.some" msgstr "Biraz" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.start" +msgid "labels.start" msgstr "Başla" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.start-to-work-on-my-project" -msgstr "Projem üzerinde çalışmaya başla" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.student-teacher" +msgid "labels.student-teacher" msgstr "Öğrenci veya öğretmen" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.team-size" +msgid "onboarding.questions.step3.question3" msgstr "Takımınızın büyüklüğü nedir?" -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.test-penpot-to-see-if-its-a-fit-for-team" -msgstr "Penpot'un takımınız için uygun olup olmadığını görmek için test edin " - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.try-out-before-using-penpot-on-premise" -msgstr "Penpot'u fiziksel bir sunucuda kullanmadan önce deneyin" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.wireframes-user-journeys-flows-navigation-trees" -msgstr "" -"... taslak çizimler, kullanıcı deneyimi yol haritası ve akışları, gezinme " -"menüsü, vb." - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.work-in-concept-ideas" -msgstr "Konsept fikirler üzerinde çalışmak" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.your-feedback-will-help-us" -msgstr "" -"Geri bildiriminiz, Penpot'u kullanışlı ve eğlenceli bir araç haline " -"getirmeye devam edebilmemiz için alışkanlıklarınızı ve tercihlerinizi " -"anlamamıza yardımcı olacaktır." - #: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, msgid "settings.detach" msgstr "Çıkar" diff --git a/frontend/translations/yo.po b/frontend/translations/yo.po index 80303e00c1..5a437aeb1d 100644 --- a/frontend/translations/yo.po +++ b/frontend/translations/yo.po @@ -2120,170 +2120,105 @@ msgid "profile.recovery.go-to-login" msgstr "Lọ láti wọlé" #: src/app/main/ui/onboarding/questions.cljs -msgid "question.design-tool-more-experienced-with" -msgstr "Èwo ni ohun èlò irin iṣẹ́ tí o ní ìmọ̀ kíkún nínú pẹ̀lú rẹ̀?" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.11-30" +msgid "onboarding.questions.team-size.11-30" msgstr "Mọ́kànlá-Ọgbọ̀n" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.2-10" +msgid "onboarding.questions.team-size.2-10" msgstr "Méjì – mẹ́wàá" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.31-50" +msgid "onboarding.questions.team-size.31-50" msgstr "Mọ́kànlélọ́gbọ̀n-Àádọ́ta" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.a-lot" -msgstr "O ´ pọ̀jù" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.adobe-xd" +msgid "labels.adobe-xd" msgstr "Àdòbí XD" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.canva" +msgid "labels.canva" msgstr "Káńfà" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.describe-your-experience-working-on" -msgstr "" -"Báwo ni ó ti le ṣe àpèjúwe bó ṣe dára tó lórí ìrírí rẹ lórí iṣẹ́ tí o ń ṣe " -"lọ́wọ́..." - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.designer" -msgstr "Olùyà nǹkan" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.developer" +msgid "labels.developer" msgstr "Olùdásílẹ̀" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.discover-more-about-penpot" -msgstr "Ṣàwárí sí i nípa pẹ́ńpọtì" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.figma" +msgid "labels.figma" msgstr "Fígímà" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.founder" +msgid "labels.founder" msgstr "Olùdásílẹ̀/VP" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.freelancer" +msgid "labels.freelancer" msgstr "Oníṣẹ́ ni mí" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.get-the-code-from-my-team-project" -msgstr "Gba kóòdù láti inú iṣẹ́ àgbéṣe mi " - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.interface-design-visual-assets-design-systems" -msgstr "... wíwò ètò ọnà , ìrírí àwọn ohun ìní, àwọn ètò ọnà, abbl." - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.invision" +msgid "labels.invision" msgstr "Ìkógun wọ̀lú" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.leave-feedback-for-my-team-project" -msgstr "Fi èsì sílẹ̀ fún iṣẹ́ àgbéṣe ẹgbẹ́ mi" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.lets-get-started" +msgid "onboarding.questions.lets-get-started" msgstr "Ẹjẹ́ 'ká bẹ̀rẹ̀ !" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.manager" +msgid "labels.product-management" msgstr "Ohun títà tàbí iṣẹ́ àgbéṣe Olùṣàkóso" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.marketing" +msgid "labels.marketing" msgstr "Títajà" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.more-than-50" +msgid "onboarding.questions.team-size.more-than-50" msgstr "Ju àádọ́ta lọ" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.next" +msgid "labels.next" msgstr "Èyí tó kàn" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.none" +msgid "labels.none" msgstr "Kòsí" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.other" +msgid "labels.other" msgstr "Òmíìràn(ní pàtó)" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.personal-project" +msgid "onboarding.questions.team-size.personal-project" msgstr "Mò ń siṣẹ́ àgbéṣẹ ti ara mi ni" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.previous" +msgid "labels.previous" msgstr "Tàtẹ̀yìn wá" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.questions-how-are-you-planning-to-use-penpot" -msgstr "Báwo lo ṣe ń gbèrò lórí bí o ṣe lo pẹ́ńpọtì?" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.select-option" +msgid "labels.select-option" msgstr "Ṣe àṣàyàn" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.sketch" +msgid "labels.sketch" msgstr "Yàwòrán" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.some" +msgid "labels.some" msgstr "Díẹ̀" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.start" +msgid "labels.start" msgstr "Bẹ̀rẹ̀" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.start-to-work-on-my-project" -msgstr "Bẹ̀rẹ̀ láti lórí iṣẹ́ àgbéṣe mi" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.student-teacher" +msgid "labels.student-teacher" msgstr "Akẹ́kọ̀ọ́ tàbí olùkọ̀ọ́" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.team-size" +msgid "onboarding.questions.step3.question3" msgstr "kín ni ìwọ̀n ẹgbẹ́ rẹ ?" -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.test-penpot-to-see-if-its-a-fit-for-team" -msgstr "Ṣàyẹ̀wọ̀ pẹ́ńpọtì láti rí pé ó bẹ́gbẹ́ mu " - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.try-out-before-using-penpot-on-premise" -msgstr "Gbìyànjú láti mọ̀ kí o tó bẹ̀rẹ̀ sí lo pẹ́ńpọtì ní àyíká" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.wireframes-user-journeys-flows-navigation-trees" -msgstr "... wáyà-fèrèsé, ìrìàjò àwọn onílò & sísàn, àwọn igi ìyíkiri, abbl." - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.work-in-concept-ideas" -msgstr "Iṣẹ́ lórí èròǹgbà àti àwọn èrò" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.your-feedback-will-help-us" -msgstr "" -"Èsì rẹ yó ràn wá lọ́wọ́ láti jẹ́ kó yé wa lórí kín ni ìhùwàsí rẹ àti àwọn " -"ohun tí o fẹ́ràn jù èyí yó jẹ́ kí á má ṣàmúlò pẹ́ńpọtì gẹ́gẹ́ bí èyí tí ó " -"wúlò àti ohun èlò fun ìgbáládùn." - #: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, msgid "settings.detach" msgstr "Yọ kúrò" diff --git a/frontend/translations/zh_CN.po b/frontend/translations/zh_CN.po index d80c1c448e..5a8e2b0b2b 100644 --- a/frontend/translations/zh_CN.po +++ b/frontend/translations/zh_CN.po @@ -2306,159 +2306,101 @@ msgid "profile.recovery.go-to-login" msgstr "去登录" #: src/app/main/ui/onboarding/questions.cljs -msgid "question.design-tool-more-experienced-with" -msgstr "你最熟悉哪个设计工具?" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.11-30" +msgid "onboarding.questions.team-size.11-30" msgstr "11-30" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.2-10" +msgid "onboarding.questions.team-size.2-10" msgstr "2-10" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.31-50" +msgid "onboarding.questions.team-size.31-50" msgstr "31-50" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.a-lot" -msgstr "非常多" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.adobe-xd" +msgid "labels.adobe-xd" msgstr "Adobe XD" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.canva" +msgid "labels.canva" msgstr "Canva" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.designer" -msgstr "设计师" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.developer" +msgid "labels.developer" msgstr "开发者" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.discover-more-about-penpot" -msgstr "深入了解Penpot的精彩之处" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.figma" +msgid "labels.figma" msgstr "Figma" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.founder" +msgid "labels.founder" msgstr "创始人/副总裁" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.freelancer" +msgid "labels.freelancer" msgstr "我是一名自由职业者" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.get-the-code-from-my-team-project" -msgstr "从我的团队项目获得邀请码 " - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.interface-design-visual-assets-design-systems" -msgstr "...界面设计,视觉素材,设计系统等。" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.invision" +msgid "labels.invision" msgstr "InVision" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.leave-feedback-for-my-team-project" -msgstr "给我的团队项目做反馈" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.lets-get-started" +msgid "onboarding.questions.lets-get-started" msgstr "让我们开始吧!" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.manager" +msgid "labels.product-management" msgstr "产品经理/项目经理" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.marketing" +msgid "labels.marketing" msgstr "市场营销" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.more-than-50" +msgid "onboarding.questions.team-size.more-than-50" msgstr "50以上" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.next" +msgid "labels.next" msgstr "下一项" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.none" +msgid "labels.none" msgstr "无" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.other" +msgid "labels.other" msgstr "其他(请注明)" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.personal-project" +msgid "onboarding.questions.team-size.personal-project" msgstr "我在做个人项目" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.previous" +msgid "labels.previous" msgstr "前一项" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.questions-how-are-you-planning-to-use-penpot" -msgstr "你计划用Penpot做什么?" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.role" +msgid "onboarding.questions.step3.question2" msgstr "你是哪种身份?" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.sketch" +msgid "labels.sketch" msgstr "Sketch" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.start" +msgid "labels.start" msgstr "开始" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.start-to-work-on-my-project" -msgstr "开始着手我的项目" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.student-teacher" +msgid "labels.student-teacher" msgstr "学生/教师" #: src/app/main/ui/onboarding/questions.cljs -msgid "questions.team-size" +msgid "onboarding.questions.step3.question3" msgstr "你的团队有多少人?" -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.test-penpot-to-see-if-its-a-fit-for-team" -msgstr "试用Penpot,来看它是否适合团队 " - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.try-out-before-using-penpot-on-premise" -msgstr "在本地部署Penpot前进行试用" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.wireframes-user-journeys-flows-navigation-trees" -msgstr "...线框图,用户轨迹和用户流程,导航树等。" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.work-in-concept-ideas" -msgstr "从事概念构想的工作" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.your-feedback-will-help-us" -msgstr "" -"你的反馈将帮助我们更好地理解你的习惯和偏好,以便我们不断改进Penpot,使其成为" -"一个有用且好用的工具。" - #: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs, #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs, @@ -5025,14 +4967,6 @@ msgstr "保持宽高比" msgid "onboarding.team-modal.team-definition" msgstr "团队是什么?" -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.describe-your-experience-working-on" -msgstr "对你经历的最好描述是:" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "questions.never-used-one" -msgstr "都没用过" - #: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs msgid "settings.select-this-color" msgstr "选择使用此样式的项目" From cc1b51cb2c799437f3a6efa0a935afb95f876c7e Mon Sep 17 00:00:00 2001 From: Pablo Alba Date: Fri, 14 Jun 2024 13:27:32 +0200 Subject: [PATCH 142/476] :sparkles: Add fix to locate files with duplicated slots --- backend/src/app/srepl/fixes.clj | 41 +++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/backend/src/app/srepl/fixes.clj b/backend/src/app/srepl/fixes.clj index 0db429aa34..5e80516b85 100644 --- a/backend/src/app/srepl/fixes.clj +++ b/backend/src/app/srepl/fixes.clj @@ -234,3 +234,44 @@ file (-> file (update :data process-fdata)))) + + + +(defn fix-find-duplicated-slots + [file _] + ;; Find the shapes whose children have duplicated slots + (let [check-duplicate-swap-slot + (fn [shape page] + (let [shapes (map #(get (:objects page) %) (:shapes shape)) + slots (->> (map #(ctk/get-swap-slot %) shapes) + (remove nil?)) + counts (frequencies slots)] + #_(when (some (fn [[_ count]] (> count 1)) counts) + (l/trc :info "This shape has children with the same swap slot" :id (:id shape) :file-id (str (:id file)))) + (some (fn [[_ count]] (> count 1)) counts))) + + count-slots-shape + (fn [page shape] + (if (ctk/instance-root? shape) + (check-duplicate-swap-slot shape page) + false)) + + count-slots-page + (fn [page] + (->> (:objects page) + (vals) + (mapv #(count-slots-shape page %)) + (filter true?) + count)) + + count-slots-data + (fn [data] + (->> (:pages-index data) + (vals) + (mapv count-slots-page) + (reduce +))) + + num-missing-slots (count-slots-data (:data file))] + (when (pos? num-missing-slots) + (l/trc :info (str "Shapes with children with the same swap slot: " num-missing-slots) :file-id (str (:id file)))) + file)) From db2ba42b1483fc626bb0620c78fa0ffcc99fcdeb Mon Sep 17 00:00:00 2001 From: Pablo Alba Date: Thu, 13 Jun 2024 12:36:28 +0200 Subject: [PATCH 143/476] :bug: Add validator and repair for duplicated slots --- common/src/app/common/files/repair.cljc | 23 +++++++++++++++++++++++ common/src/app/common/files/validate.cljc | 15 +++++++++++++++ 2 files changed, 38 insertions(+) diff --git a/common/src/app/common/files/repair.cljc b/common/src/app/common/files/repair.cljc index c40b602275..9e9fc29d4b 100644 --- a/common/src/app/common/files/repair.cljc +++ b/common/src/app/common/files/repair.cljc @@ -473,6 +473,29 @@ (pcb/with-file-data file-data) (pcb/update-shapes [(:id shape)] repair-shape)))) +(defmethod repair-error :duplicate-slot + [_ {:keys [shape page-id] :as error} file-data _] + (let [page (ctpl/get-page file-data page-id) + childs (map #(get (:objects page) %) (:shapes shape)) + child-with-duplicate (let [result (reduce (fn [[seen duplicates] item] + (let [swap-slot (ctk/get-swap-slot item)] + (if (contains? seen swap-slot) + [seen (conj duplicates item)] + [(conj seen swap-slot) duplicates]))) + [#{} []] + childs)] + (second result)) + repair-shape + (fn [shape] + ;; Remove the swap slot + (log/debug :hint " -> remove swap-slot" :child-id (:id shape)) + (ctk/remove-swap-slot shape))] + + (log/dbg :hint "repairing shape :duplicated-slot" :id (:id shape) :name (:name shape) :page-id page-id) + (-> (pcb/empty-changes nil page-id) + (pcb/with-file-data file-data) + (pcb/update-shapes (map :id child-with-duplicate) repair-shape)))) + (defmethod repair-error :missing-slot [_ {:keys [shape page-id args] :as error} file-data _] (let [repair-shape diff --git a/common/src/app/common/files/validate.cljc b/common/src/app/common/files/validate.cljc index 7caceed496..cd4f3b43ae 100644 --- a/common/src/app/common/files/validate.cljc +++ b/common/src/app/common/files/validate.cljc @@ -34,6 +34,7 @@ :component-not-main :component-main-external :component-not-found + :duplicate-slot :invalid-main-instance-id :invalid-main-instance-page :invalid-main-instance @@ -296,6 +297,18 @@ "This shape should not have swap slot" shape file page))) +(defn- check-duplicate-swap-slot + "Validate that the children of this shape does not have duplicated slots." + [shape file page] + (let [shapes (map #(get (:objects page) %) (:shapes shape)) + slots (->> (map #(ctk/get-swap-slot %) shapes) + (remove nil?)) + counts (frequencies slots)] + (when (some (fn [[_ count]] (> count 1)) counts) + (report-error :duplicate-slot + "This shape has children with the same swap slot" + shape file page)))) + (defn- check-shape-main-root-top "Root shape of a top main instance: @@ -308,6 +321,7 @@ (check-component-root shape file page) (check-component-not-ref shape file page) (check-empty-swap-slot shape file page) + (check-duplicate-swap-slot shape file page) (run! #(check-shape % file page libraries :context :main-top) (:shapes shape))) (defn- check-shape-main-root-nested @@ -335,6 +349,7 @@ (check-component-root shape file page) (check-component-ref shape file page libraries) (check-empty-swap-slot shape file page) + (check-duplicate-swap-slot shape file page) (run! #(check-shape % file page libraries :context :copy-top :library-exists library-exists) (:shapes shape)))) (defn- check-shape-copy-root-nested From e0906be6e7e7775f37b3488e1f1f1314790b6a4b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9s=20Moya?= Date: Mon, 17 Jun 2024 09:56:27 +0200 Subject: [PATCH 144/476] Revert ":bug: Add validator and repair for duplicated slots" This reverts commit db2ba42b1483fc626bb0620c78fa0ffcc99fcdeb. --- common/src/app/common/files/repair.cljc | 23 ----------------------- common/src/app/common/files/validate.cljc | 15 --------------- 2 files changed, 38 deletions(-) diff --git a/common/src/app/common/files/repair.cljc b/common/src/app/common/files/repair.cljc index 9e9fc29d4b..c40b602275 100644 --- a/common/src/app/common/files/repair.cljc +++ b/common/src/app/common/files/repair.cljc @@ -473,29 +473,6 @@ (pcb/with-file-data file-data) (pcb/update-shapes [(:id shape)] repair-shape)))) -(defmethod repair-error :duplicate-slot - [_ {:keys [shape page-id] :as error} file-data _] - (let [page (ctpl/get-page file-data page-id) - childs (map #(get (:objects page) %) (:shapes shape)) - child-with-duplicate (let [result (reduce (fn [[seen duplicates] item] - (let [swap-slot (ctk/get-swap-slot item)] - (if (contains? seen swap-slot) - [seen (conj duplicates item)] - [(conj seen swap-slot) duplicates]))) - [#{} []] - childs)] - (second result)) - repair-shape - (fn [shape] - ;; Remove the swap slot - (log/debug :hint " -> remove swap-slot" :child-id (:id shape)) - (ctk/remove-swap-slot shape))] - - (log/dbg :hint "repairing shape :duplicated-slot" :id (:id shape) :name (:name shape) :page-id page-id) - (-> (pcb/empty-changes nil page-id) - (pcb/with-file-data file-data) - (pcb/update-shapes (map :id child-with-duplicate) repair-shape)))) - (defmethod repair-error :missing-slot [_ {:keys [shape page-id args] :as error} file-data _] (let [repair-shape diff --git a/common/src/app/common/files/validate.cljc b/common/src/app/common/files/validate.cljc index cd4f3b43ae..7caceed496 100644 --- a/common/src/app/common/files/validate.cljc +++ b/common/src/app/common/files/validate.cljc @@ -34,7 +34,6 @@ :component-not-main :component-main-external :component-not-found - :duplicate-slot :invalid-main-instance-id :invalid-main-instance-page :invalid-main-instance @@ -297,18 +296,6 @@ "This shape should not have swap slot" shape file page))) -(defn- check-duplicate-swap-slot - "Validate that the children of this shape does not have duplicated slots." - [shape file page] - (let [shapes (map #(get (:objects page) %) (:shapes shape)) - slots (->> (map #(ctk/get-swap-slot %) shapes) - (remove nil?)) - counts (frequencies slots)] - (when (some (fn [[_ count]] (> count 1)) counts) - (report-error :duplicate-slot - "This shape has children with the same swap slot" - shape file page)))) - (defn- check-shape-main-root-top "Root shape of a top main instance: @@ -321,7 +308,6 @@ (check-component-root shape file page) (check-component-not-ref shape file page) (check-empty-swap-slot shape file page) - (check-duplicate-swap-slot shape file page) (run! #(check-shape % file page libraries :context :main-top) (:shapes shape))) (defn- check-shape-main-root-nested @@ -349,7 +335,6 @@ (check-component-root shape file page) (check-component-ref shape file page libraries) (check-empty-swap-slot shape file page) - (check-duplicate-swap-slot shape file page) (run! #(check-shape % file page libraries :context :copy-top :library-exists library-exists) (:shapes shape)))) (defn- check-shape-copy-root-nested From 68724e62367d5f771743a84bcd41fdff08a0f69b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?O=C4=9Fuz=20Ersen?= Date: Wed, 5 Jun 2024 16:36:21 +0000 Subject: [PATCH 145/476] :globe_with_meridians: Add translations for: Turkish. Currently translated at 100.0% (1390 of 1390 strings) Translation: Penpot/frontend Translate-URL: https://hosted.weblate.org/projects/penpot/frontend/tr/ --- frontend/translations/tr.po | 41 +++++++++++++++++++++++++++++++++---- 1 file changed, 37 insertions(+), 4 deletions(-) diff --git a/frontend/translations/tr.po b/frontend/translations/tr.po index cc43fae0c1..db45b2a6a9 100644 --- a/frontend/translations/tr.po +++ b/frontend/translations/tr.po @@ -1,15 +1,15 @@ msgid "" msgstr "" -"PO-Revision-Date: 2024-04-25 13:07+0000\n" +"PO-Revision-Date: 2024-06-06 17:09+0000\n" "Last-Translator: Oğuz Ersen \n" -"Language-Team: Turkish " -"\n" +"Language-Team: Turkish \n" "Language: tr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 5.5.1-dev\n" +"X-Generator: Weblate 5.6-dev\n" #: src/app/main/ui/auth/register.cljs msgid "auth.already-have-account" @@ -5281,3 +5281,36 @@ msgstr "Yolu kapatmak için tıklayın" #~ msgid "workspace.options.layout-item.title.min-w" #~ msgstr "Asgari genişlik" + +msgid "workspace.plugins.install" +msgstr "Kur" + +msgid "workspace.plugins.title" +msgstr "Eklentiler" + +msgid "workspace.plugins.search-placeholder" +msgstr "Bir eklenti URL'si yazın" + +msgid "workspace.plugins.installed-plugins" +msgstr "Kurulu eklentiler" + +msgid "workspace.plugins.error.url" +msgstr "Eklenti yok veya URL doğru değil." + +msgid "workspace.plugins.empty-plugins" +msgstr "Henüz eklenti kurulmadı" + +msgid "workspace.plugins.button-open" +msgstr "Aç" + +msgid "workspace.plugins.success" +msgstr "Eklenti doğru şekilde yüklendi." + +msgid "workspace.plugins.menu.plugins-manager" +msgstr "Eklenti yöneticisi" + +msgid "workspace.plugins.menu.title" +msgstr "Eklentiler" + +msgid "workspace.plugins.plugin-list-link" +msgstr "Eklenti Listesi" From 1cf79fb56ef946cb0e9756751157394cf4c5c3eb Mon Sep 17 00:00:00 2001 From: Stas Haas Date: Thu, 6 Jun 2024 08:51:54 +0000 Subject: [PATCH 146/476] :globe_with_meridians: Add translations for: German. Currently translated at 99.9% (1389 of 1390 strings) Translation: Penpot/frontend Translate-URL: https://hosted.weblate.org/projects/penpot/frontend/de/ --- frontend/translations/de.po | 37 +++++++++++++++++++++++++++++++++++-- 1 file changed, 35 insertions(+), 2 deletions(-) diff --git a/frontend/translations/de.po b/frontend/translations/de.po index 53608d7788..336d459a5b 100644 --- a/frontend/translations/de.po +++ b/frontend/translations/de.po @@ -1,7 +1,7 @@ msgid "" msgstr "" -"PO-Revision-Date: 2024-06-05 10:42+0000\n" -"Last-Translator: Anonymous \n" +"PO-Revision-Date: 2024-06-06 17:09+0000\n" +"Last-Translator: Stas Haas \n" "Language-Team: German \n" "Language: de\n" @@ -5281,3 +5281,36 @@ msgstr "An den Hilfslinien des Lineals ausrichten deaktivieren" #: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.enable-snap-ruler-guides" msgstr "An den Hilfslinien des Lineals ausrichten" + +msgid "workspace.plugins.title" +msgstr "Plugins" + +msgid "workspace.plugins.search-placeholder" +msgstr "Eine URL des Plugins eingeben" + +msgid "workspace.plugins.install" +msgstr "Installieren" + +msgid "workspace.plugins.installed-plugins" +msgstr "Installierte Plugins" + +msgid "workspace.plugins.button-open" +msgstr "Öffnen" + +msgid "workspace.plugins.empty-plugins" +msgstr "Noch keine Plugins installiert" + +msgid "workspace.plugins.error.url" +msgstr "Das Plugin existiert nicht oder die URL ist nicht korrekt." + +msgid "workspace.plugins.menu.plugins-manager" +msgstr "Plugin-Manager" + +msgid "workspace.plugins.plugin-list-link" +msgstr "Liste der Plugins" + +msgid "workspace.plugins.menu.title" +msgstr "Plugins" + +msgid "workspace.plugins.success" +msgstr "Plugin wurde korrekt geladen." From c144a200129747f8ba996b005be46594ca223c9d Mon Sep 17 00:00:00 2001 From: Stephan Paternotte Date: Wed, 5 Jun 2024 17:10:15 +0000 Subject: [PATCH 147/476] :globe_with_meridians: Add translations for: Dutch. Currently translated at 100.0% (1390 of 1390 strings) Translation: Penpot/frontend Translate-URL: https://hosted.weblate.org/projects/penpot/frontend/nl/ --- frontend/translations/nl.po | 41 +++++++++++++++++++++++++++++++++---- 1 file changed, 37 insertions(+), 4 deletions(-) diff --git a/frontend/translations/nl.po b/frontend/translations/nl.po index 84f3c818dd..12e6687b66 100644 --- a/frontend/translations/nl.po +++ b/frontend/translations/nl.po @@ -1,15 +1,15 @@ msgid "" msgstr "" -"PO-Revision-Date: 2024-04-25 13:07+0000\n" +"PO-Revision-Date: 2024-06-06 17:09+0000\n" "Last-Translator: Stephan Paternotte \n" -"Language-Team: Dutch " -"\n" +"Language-Team: Dutch \n" "Language: nl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 5.5.1-dev\n" +"X-Generator: Weblate 5.6-dev\n" #: src/app/main/ui/auth/register.cljs msgid "auth.already-have-account" @@ -5224,3 +5224,36 @@ msgstr "Bijwerken" msgid "workspace.viewport.click-to-close-path" msgstr "Klik om het pad te sluiten" + +msgid "workspace.plugins.error.url" +msgstr "De plug-in bestaat niet of de URL is niet correct." + +msgid "workspace.plugins.success" +msgstr "Plug-in met succes geladen." + +msgid "workspace.plugins.title" +msgstr "Plug-ins" + +msgid "workspace.plugins.search-placeholder" +msgstr "De URL van een plug-in invoeren" + +msgid "workspace.plugins.installed-plugins" +msgstr "Geïnstalleerde plug-ins" + +msgid "workspace.plugins.install" +msgstr "Installeren" + +msgid "workspace.plugins.empty-plugins" +msgstr "Nog geen plug-ins geïnstalleerd" + +msgid "workspace.plugins.plugin-list-link" +msgstr "Plug-in-lijst" + +msgid "workspace.plugins.button-open" +msgstr "Openen" + +msgid "workspace.plugins.menu.plugins-manager" +msgstr "Plug-in-beheer" + +msgid "workspace.plugins.menu.title" +msgstr "Plug-ins" From 2f49b419bdebbceb6cd6cd2489b1c525cc45d583 Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Mon, 17 Jun 2024 10:02:54 +0200 Subject: [PATCH 148/476] Update translation files Updated by "Cleanup translation files" hook in Weblate. Translation: Penpot/frontend Translate-URL: https://hosted.weblate.org/projects/penpot/frontend/ --- frontend/translations/af.po | 8 ----- frontend/translations/ar.po | 7 ---- frontend/translations/cs.po | 17 +--------- frontend/translations/de.po | 14 -------- frontend/translations/es.po | 58 -------------------------------- frontend/translations/es_419.po | 15 --------- frontend/translations/fr.po | 15 --------- frontend/translations/ha.po | 16 --------- frontend/translations/he.po | 6 ---- frontend/translations/id.po | 6 ---- frontend/translations/ig.po | 16 --------- frontend/translations/ko.po | 10 ------ frontend/translations/lv.po | 7 ---- frontend/translations/ms.po | 19 ----------- frontend/translations/nl.po | 7 ---- frontend/translations/pt_PT.po | 7 ---- frontend/translations/tr.po | 15 --------- frontend/translations/yo.po | 16 --------- frontend/translations/zh_CN.po | 8 ----- frontend/translations/zh_Hant.po | 5 --- 20 files changed, 1 insertion(+), 271 deletions(-) diff --git a/frontend/translations/af.po b/frontend/translations/af.po index 8710de46c4..c89780ede4 100644 --- a/frontend/translations/af.po +++ b/frontend/translations/af.po @@ -39,10 +39,6 @@ msgstr "" "Dit is 'n DEMO-diens, MOENIE vir werklike werk gebruik nie, die projekte " "sal periodiek uitgevee word." -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/auth/login.cljs -msgid "auth.email" -msgstr "E-pos" - #: src/app/main/ui/auth/login.cljs msgid "auth.forgot-password" msgstr "Wagwoord vergeet?" @@ -152,10 +148,6 @@ msgstr "Nog nie 'n rekening nie?" msgid "auth.register-submit" msgstr "Skep 'n rekening" -#: src/app/main/ui/auth/register.cljs -msgid "auth.register-subtitle" -msgstr "Dit is gratis, dit is oopbron" - #: src/app/main/ui/auth/register.cljs msgid "auth.register-title" msgstr "Skep 'n rekening" diff --git a/frontend/translations/ar.po b/frontend/translations/ar.po index ead39277be..b42e084071 100644 --- a/frontend/translations/ar.po +++ b/frontend/translations/ar.po @@ -4326,13 +4326,6 @@ msgstr "...علامة تجارية، رسوم توضيحية، قطع تسويق msgid "auth.login-account-title" msgstr "قم بتسجيل الدخول إلى حسابي" -#: src/app/main/ui/auth/register.cljs -#, markdown -msgid "auth.terms-privacy-agreement-md" -msgstr "" -"عند إنشاء حساب جديد، فإنك توافق على [شروط الخدمة](%s) و [سياسة الخصوصية](%s) " -"الخاصة بنا." - #: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.create" msgstr "قم بإنشاء رمز جديد" diff --git a/frontend/translations/cs.po b/frontend/translations/cs.po index f8f0f768c2..c13cf2e39f 100644 --- a/frontend/translations/cs.po +++ b/frontend/translations/cs.po @@ -163,13 +163,6 @@ msgstr "" "Vytvořením nového účtu souhlasíte s všeobecnými podmínkami poskytování " "služeb a zásadami ochrany osobních údajů." -#: src/app/main/ui/auth/register.cljs -#, markdown -msgid "auth.terms-privacy-agreement-md" -msgstr "" -"Při vytváření nového účtu souhlasíte s našimi [smluvními podmínkami](%s) a " -"[zásadami ochrany soukromí](%s)." - #: src/app/main/ui/auth/register.cljs msgid "auth.verification-email-sent" msgstr "Ověřovací e-mail jsme odeslali na adresu" @@ -2457,10 +2450,6 @@ msgstr "Více než 50" msgid "labels.next" msgstr "Další" -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.none" -msgstr "Žádný" - #: src/app/main/ui/onboarding/questions.cljs msgid "labels.other" msgstr "Jiné (upřesněte)" @@ -2485,10 +2474,6 @@ msgstr "Vyberte možnost" msgid "labels.sketch" msgstr "Sketch" -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.some" -msgstr "Nějaké" - #: src/app/main/ui/onboarding/questions.cljs msgid "labels.start" msgstr "Start" @@ -5049,4 +5034,4 @@ msgid "workspace.updates.update" msgstr "Aktualizace" msgid "workspace.viewport.click-to-close-path" -msgstr "Kliknutím zavřete cestu" \ No newline at end of file +msgstr "Kliknutím zavřete cestu" diff --git a/frontend/translations/de.po b/frontend/translations/de.po index 336d459a5b..bd694af0e5 100644 --- a/frontend/translations/de.po +++ b/frontend/translations/de.po @@ -188,12 +188,6 @@ msgstr "" "Wenn Sie ein neues Konto erstellen, stimmen Sie unseren Nutzungsbedingungen " "und Datenschutzrichtlinien zu." -#: src/app/main/ui/auth/register.cljs -msgid "auth.terms-privacy-agreement-md" -msgstr "" -"Wenn Sie ein neues Konto erstellen, stimmen Sie unseren [Nutzungsbedingungen]" -"(%s) und [Datenschutzrichtlinien](%s) zu." - #: src/app/main/ui/auth/register.cljs msgid "auth.verification-email-sent" msgstr "Wir haben eine Bestätigungs-E-Mail gesendet an" @@ -2559,10 +2553,6 @@ msgstr "Mehr als 50" msgid "labels.next" msgstr "Weiter" -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.none" -msgstr "Keine" - #: src/app/main/ui/onboarding/questions.cljs msgid "labels.other" msgstr "Sonstiges (bitte angeben)" @@ -2587,10 +2577,6 @@ msgstr "Wählen Sie eine Option" msgid "labels.sketch" msgstr "Sketch" -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.some" -msgstr "Einige" - #: src/app/main/ui/onboarding/questions.cljs msgid "labels.start" msgstr "Start" diff --git a/frontend/translations/es.po b/frontend/translations/es.po index 0ad3a9a4fe..5bea21ce57 100644 --- a/frontend/translations/es.po +++ b/frontend/translations/es.po @@ -190,13 +190,6 @@ msgstr "" "Al crear una nueva cuenta, aceptas nuestros [términos de servicio](%s) y " "[política de privacidad](%s)." -#: src/app/main/ui/auth/register.cljs -#, markdown -msgid "auth.terms-privacy-agreement-md" -msgstr "" -"Al crear una nueva cuenta, aceptas nuestros [términos de servicio](%s) y " -"[política de privacidad](%s)." - #: src/app/main/ui/auth/register.cljs #, markdown msgid "auth.terms-and-privacy-agreement" @@ -2472,36 +2465,6 @@ msgstr "Penpot" msgid "profile.recovery.go-to-login" msgstr "Ir al login" - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #: src/app/main/ui/onboarding/questions.cljs msgid "onboarding.questions.step1.title" msgstr "Ayúdanos a conocerte" @@ -2546,7 +2509,6 @@ msgstr "Buscar una alternativa a Figma, XD, etc." msgid "onboarding.questions.reasons.testing" msgstr "Probar antes de self-hosting" - #: src/app/main/ui/onboarding/questions.cljs msgid "onboarding.questions.step2.title" msgstr "¿Cuál de estas herramientas utilizas más?" @@ -2679,26 +2641,6 @@ msgstr "Generando código a partir de diseños" msgid "onboarding.questions.step5.title" msgstr "¿Cómo nos has descubierto?" -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.referer.youtube" -msgstr "YouTube" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.referer.event" -msgstr "Evento" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.referer.search" -msgstr "Buscador (Google, Yahoo, Bing)" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.referer.social" -msgstr "Redes sociales (X, LinkedIn, FB, ect)" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.referer.article" -msgstr "Artículo (Blog, Post, Newsletter)" - #: src/app/main/ui/onboarding/questions.cljs msgid "onboarding.questions.lets-get-started" msgstr "¡Empecemos!" diff --git a/frontend/translations/es_419.po b/frontend/translations/es_419.po index 19d4ba0229..912b0ed04c 100644 --- a/frontend/translations/es_419.po +++ b/frontend/translations/es_419.po @@ -39,10 +39,6 @@ msgstr "" "Este es un servicio DEMO, NO LO UTILICE para trabajos reales, los proyectos " "se borrarán periódicamente." -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/auth/login.cljs -msgid "auth.email" -msgstr "Correo electrónico" - #: src/app/main/ui/auth/login.cljs msgid "auth.forgot-password" msgstr "¿Has olvidado tu contraseña?" @@ -152,10 +148,6 @@ msgstr "¿No tienes cuenta aún?" msgid "auth.register-submit" msgstr "Crea una cuenta" -#: src/app/main/ui/auth/register.cljs -msgid "auth.register-subtitle" -msgstr "Es gratis, es de código abierto" - #: src/app/main/ui/auth/register.cljs msgid "auth.register-title" msgstr "Crea una cuenta" @@ -172,13 +164,6 @@ msgstr "" "Al crear una nueva cuenta, acepta nuestros términos de servicio y política " "de privacidad." -#: src/app/main/ui/auth/register.cljs -#, markdown -msgid "auth.terms-privacy-agreement-md" -msgstr "" -"Al crear una nueva cuenta, acepta nuestros [terms of service](%s) y nuestra " -"[privacy policy](%s)." - #: src/app/main/ui/auth/register.cljs msgid "auth.verification-email-sent" msgstr "Hemos enviado un correo electrónico de verificación" diff --git a/frontend/translations/fr.po b/frontend/translations/fr.po index 43e05adf18..536edd4bc9 100644 --- a/frontend/translations/fr.po +++ b/frontend/translations/fr.po @@ -2406,10 +2406,6 @@ msgstr "Plus que 50" msgid "labels.next" msgstr "Suivant" -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.none" -msgstr "Aucune" - #: src/app/main/ui/onboarding/questions.cljs msgid "labels.other" msgstr "Autres (préciser)" @@ -2434,10 +2430,6 @@ msgstr "Sélectionnez une option" msgid "labels.sketch" msgstr "Sketch" -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.some" -msgstr "Un peu" - #: src/app/main/ui/onboarding/questions.cljs msgid "labels.start" msgstr "Commencer" @@ -4970,13 +4962,6 @@ msgid_plural "workspace.assets.sidebar.components" msgstr[0] "1 composant" msgstr[1] "%s composants" -#: src/app/main/ui/auth/register.cljs -#, markdown -msgid "auth.terms-privacy-agreement-md" -msgstr "" -"En créant un compte, vous acceptez nos [conditions d'utilisation](%s) et [" -"politique de confidentialité](%s)." - msgid "modals.move-shared-confirm.message" msgid_plural "modals.move-shared-confirm.message" msgstr[0] "Êtes-vous sûr de vouloir déplacer cette librairie ?" diff --git a/frontend/translations/ha.po b/frontend/translations/ha.po index 7ce70c2b58..ba5860e44b 100644 --- a/frontend/translations/ha.po +++ b/frontend/translations/ha.po @@ -39,10 +39,6 @@ msgstr "" "wannan aikin gwaji ne kawai,kar ka yi amfani da shi a aikin gaske,lokaci " "zuwa lokaci za ya ringa vacewa ne." -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/auth/login.cljs -msgid "auth.email" -msgstr "imel" - #: src/app/main/ui/auth/login.cljs msgid "auth.forgot-password" msgstr "ka manta lambar tsaro?" @@ -130,10 +126,6 @@ msgstr "za mu aika maka da saqon qa'idoji ta imel" msgid "auth.recovery-submit" msgstr "canza lambar tsaro" -#: src/app/main/ui/auth/register.cljs -msgid "auth.register-subtitle" -msgstr "kyauta ne,an buxe hanyar samu" - #: src/app/main/ui/auth/register.cljs msgid "auth.register-title" msgstr "qirqiri sabon kundi" @@ -2279,10 +2271,6 @@ msgstr "fiye da 50" msgid "labels.next" msgstr "na gaba" -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.none" -msgstr "babu" - #: src/app/main/ui/onboarding/questions.cljs msgid "labels.other" msgstr "idan akwai qari (bayyana)" @@ -2307,10 +2295,6 @@ msgstr "dauki wanda kake so" msgid "labels.sketch" msgstr "zana" -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.some" -msgstr "wasu" - #: src/app/main/ui/onboarding/questions.cljs msgid "labels.start" msgstr "fara" diff --git a/frontend/translations/he.po b/frontend/translations/he.po index 9d751d724d..0a6ff1d787 100644 --- a/frontend/translations/he.po +++ b/frontend/translations/he.po @@ -180,12 +180,6 @@ msgstr "תנאי השירות" msgid "auth.terms-privacy-agreement" msgstr "יצירת חשבון חדש מהווה את הסכמתך לתנאי השירות ולמדיניות הפרטיות." -#: src/app/main/ui/auth/register.cljs -msgid "auth.terms-privacy-agreement-md" -msgstr "" -"עצם יצירת חשבון חדש מהווה הסכמה ל[תנאי השירות](%s) ול[מדיניות הפרטיות](%s) " -"שלנו." - #: src/app/main/ui/auth/register.cljs msgid "auth.verification-email-sent" msgstr "שלחנו הודעת דוא״ל לאימות אל" diff --git a/frontend/translations/id.po b/frontend/translations/id.po index 316f371870..ddc0efc710 100644 --- a/frontend/translations/id.po +++ b/frontend/translations/id.po @@ -176,12 +176,6 @@ msgstr "" "Ketika membuat akun baru, Anda menyetujui kebijakan layanan dan kebijakan " "privasi kami." -#: src/app/main/ui/auth/register.cljs -msgid "auth.terms-privacy-agreement-md" -msgstr "" -"Ketika membuat akun baru, Anda menyetujui [persyaratan layanan](%s) dan " -"[kebijakan privasi](%s) kami." - #: src/app/main/ui/auth/register.cljs msgid "auth.verification-email-sent" msgstr "Kami telah mengirimkan surel verifikasi ke" diff --git a/frontend/translations/ig.po b/frontend/translations/ig.po index dd023c9811..8e3db116d9 100644 --- a/frontend/translations/ig.po +++ b/frontend/translations/ig.po @@ -33,10 +33,6 @@ msgstr "" "Ihe bụ ọrụ ozigosi ,e jile ya rụọ ezigbo ọrụ , ọrụ ndị a ga-ekpochapụ site " "na oge ruo na oge" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/auth/login.cljs -msgid "auth.email" -msgstr "Ozi- n" - #: src/app/main/ui/auth/login.cljs msgid "auth.forgot-password" msgstr "Chefuru akara mpibanye ?" @@ -140,10 +136,6 @@ msgstr "E nweghị ebe Ntinye ihe ma kịta?" msgid "auth.register-submit" msgstr "Mepee ebe Ntinye ihe" -#: src/app/main/ui/auth/register.cljs -msgid "auth.register-subtitle" -msgstr "Ọ bụ n'efu , ọ bụ ebe nsị a jere oje" - #: src/app/main/ui/auth/register.cljs msgid "auth.register-title" msgstr "Mepee ebe ntinye ihe" @@ -1953,10 +1945,6 @@ msgstr "Karịrị iri ise" msgid "labels.next" msgstr "Ọzọ" -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.none" -msgstr "Onweghị" - #: src/app/main/ui/onboarding/questions.cljs msgid "labels.other" msgstr "Ọzọ (zipụta)" @@ -1977,10 +1965,6 @@ msgstr "Họrọ nhọ" msgid "labels.sketch" msgstr "Eserese" -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.some" -msgstr "Ụfọdụ" - #: src/app/main/ui/onboarding/questions.cljs msgid "labels.start" msgstr "Bido" diff --git a/frontend/translations/ko.po b/frontend/translations/ko.po index 334c790202..78ae084a72 100644 --- a/frontend/translations/ko.po +++ b/frontend/translations/ko.po @@ -106,10 +106,6 @@ msgstr "아직 계정이 없으신가요?" msgid "auth.register-submit" msgstr "계정을 생성하세요" -#: src/app/main/ui/auth/register.cljs -msgid "auth.register-subtitle" -msgstr "무료 오픈 소스입니다" - #: src/app/main/ui/auth/register.cljs msgid "auth.register-title" msgstr "계정을 생성하세요" @@ -760,12 +756,6 @@ msgstr "펜팟은 디자인과 코딩의 협업을 위한 무료 오픈소스 msgid "auth.password-not-empty" msgstr "비밀번호는 공백 이외의 글자를 포함해야 합니다." -#: src/app/main/ui/auth/register.cljs -#, markdown -msgid "auth.terms-privacy-agreement-md" -msgstr "새로운 계정을 생성하시면, 사용자는 펜팟의 [서비스 정책](%s)과 [개인 정보 " -"정책](%s)에 동의하는 것으로 간주됩니다." - #: src/app/main/ui/dashboard/projects.cljs msgid "dasboard.team-hero.text" msgstr "펜팟은 팀을 위한 도구입니다. 팀원들을 초대하여 프로젝트 및 파일 단위로 " diff --git a/frontend/translations/lv.po b/frontend/translations/lv.po index 4630835fc4..54a3a9381e 100644 --- a/frontend/translations/lv.po +++ b/frontend/translations/lv.po @@ -174,13 +174,6 @@ msgstr "" "Ar jauna konta izveidošanu tiek piekrists mūsu pakalpojuma noteikumiem un " "privātuma nosacījumiem." -#: src/app/main/ui/auth/register.cljs -#, markdown -msgid "auth.terms-privacy-agreement-md" -msgstr "" -"Ar jauna konta izveidošanu tiek piekrists mūsu [pakalpojuma " -"noteikumiem](%s) un [privātuma nosacījumiem](%s)." - #: src/app/main/ui/auth/register.cljs msgid "auth.verification-email-sent" msgstr "Mēs esam nosūtījuši apstiprinājuma e-pasta ziņojumu uz" diff --git a/frontend/translations/ms.po b/frontend/translations/ms.po index 6fa8b512b9..fe3f231b89 100644 --- a/frontend/translations/ms.po +++ b/frontend/translations/ms.po @@ -132,10 +132,6 @@ msgstr "Tiada akaun lagi?" msgid "auth.register-submit" msgstr "Cipta akaun" -#: src/app/main/ui/auth/register.cljs -msgid "auth.register-subtitle" -msgstr "Ia percuma dan Sumber Terbuka" - #: src/app/main/ui/auth/register.cljs msgid "auth.register-title" msgstr "Cipta akaun" @@ -152,13 +148,6 @@ msgstr "" "Apabila membuat akaun baharu, anda bersetuju menerima syarat perkhidmatan " "dan dasar privasi kami." -#: src/app/main/ui/auth/register.cljs -#, markdown -msgid "auth.terms-privacy-agreement-md" -msgstr "" -"Apabila membuat akaun baharu, anda bersetuju menerima [syarat " -"perkhidmatan](%s) dan [dasar privasi](%s) kami." - #: src/app/main/ui/auth/register.cljs msgid "auth.verification-email-sent" msgstr "Kami telah menghantar e-mel pengesahan kepada" @@ -2388,10 +2377,6 @@ msgstr "Lebih daripada 50" msgid "labels.next" msgstr "Seterusnya" -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.none" -msgstr "Tiada" - #: src/app/main/ui/onboarding/questions.cljs msgid "labels.other" msgstr "Lain-lain (nyatakan)" @@ -2416,10 +2401,6 @@ msgstr "Pilih pilihan" msgid "labels.sketch" msgstr "Sketch" -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.some" -msgstr "Beberapa" - #: src/app/main/ui/onboarding/questions.cljs msgid "labels.start" msgstr "Mula" diff --git a/frontend/translations/nl.po b/frontend/translations/nl.po index 12e6687b66..e3201b6b2c 100644 --- a/frontend/translations/nl.po +++ b/frontend/translations/nl.po @@ -185,13 +185,6 @@ msgstr "" "Met het aanmaken van een nieuw account ga je akkoord met onze " "gebruiksvoorwaarden en ons privacybeleid." -#: src/app/main/ui/auth/register.cljs -#, markdown -msgid "auth.terms-privacy-agreement-md" -msgstr "" -"Met het aanmaken van een nieuw account ga je akkoord met onze " -"[servicevoorwaarden] (%s) en [privacybeleid] (%s)." - #: src/app/main/ui/auth/register.cljs msgid "auth.verification-email-sent" msgstr "We hebben een verificatie-e-mail verzonden naar" diff --git a/frontend/translations/pt_PT.po b/frontend/translations/pt_PT.po index a08fa96849..a9a5941d87 100644 --- a/frontend/translations/pt_PT.po +++ b/frontend/translations/pt_PT.po @@ -176,12 +176,6 @@ msgstr "" "Ao criar uma nova conta, concordas com os nossos termos de serviço e " "política de privacidade." -#: src/app/main/ui/auth/register.cljs -msgid "auth.terms-privacy-agreement-md" -msgstr "" -"Ao criar uma nova conta, concordas com os nossos [termos de serviço](%s) e " -"[política de privacidade](%s)." - #: src/app/main/ui/auth/register.cljs msgid "auth.verification-email-sent" msgstr "Enviámos um email de verificação para" @@ -5211,4 +5205,3 @@ msgstr "Filtrar" #~ msgid "workspace.options.layout.direction.left" #~ msgstr "Linha" - diff --git a/frontend/translations/tr.po b/frontend/translations/tr.po index db45b2a6a9..e61945101b 100644 --- a/frontend/translations/tr.po +++ b/frontend/translations/tr.po @@ -173,13 +173,6 @@ msgstr "" "Bir hesap oluştururken, koşullarımızı ve gizlilik politikamızı kabul etmiş " "sayılırsınız." -#: src/app/main/ui/auth/register.cljs -#, markdown -msgid "auth.terms-privacy-agreement-md" -msgstr "" -"Bir hesap oluştururken, [koşullarımızı](%s) ve [gizlilik politikamızı](%s) " -"kabul etmiş sayılırsınız." - #: src/app/main/ui/auth/register.cljs msgid "auth.verification-email-sent" msgstr "Onay e-postanı şu adrese gönderdik" @@ -2506,10 +2499,6 @@ msgstr "50'den fazla" msgid "labels.next" msgstr "Sonraki" -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.none" -msgstr "Hiçbiri" - #: src/app/main/ui/onboarding/questions.cljs msgid "labels.other" msgstr "Diğer (lütfen belirtiniz)" @@ -2534,10 +2523,6 @@ msgstr "Bir seçenek belirleyin" msgid "labels.sketch" msgstr "Sketch" -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.some" -msgstr "Biraz" - #: src/app/main/ui/onboarding/questions.cljs msgid "labels.start" msgstr "Başla" diff --git a/frontend/translations/yo.po b/frontend/translations/yo.po index 5a437aeb1d..b917127603 100644 --- a/frontend/translations/yo.po +++ b/frontend/translations/yo.po @@ -35,10 +35,6 @@ msgstr "" "\"\"This is a DEMO service, DO NOT USE for real work, the projects will be " "parẹ́ lóòrèkóòrè." -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/auth/login.cljs -msgid "auth.email" -msgstr "ímeèlì" - #: src/app/main/ui/auth/login.cljs msgid "auth.forgot-password" msgstr "gbàgbé ọ̀rọ̀-ìgbaniwọlé ?" @@ -144,10 +140,6 @@ msgstr "kò tí ì sí àkáùntì?" msgid "auth.register-submit" msgstr "ṣẹ̀dá àkáùntì" -#: src/app/main/ui/auth/register.cljs -msgid "auth.register-subtitle" -msgstr "ọ̀fẹ́ ni,orísun rẹ̀ ṣí lẹ" - #: src/app/main/ui/auth/register.cljs msgid "auth.register-title" msgstr "ṣẹ̀dá àkáùntì" @@ -2179,10 +2171,6 @@ msgstr "Ju àádọ́ta lọ" msgid "labels.next" msgstr "Èyí tó kàn" -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.none" -msgstr "Kòsí" - #: src/app/main/ui/onboarding/questions.cljs msgid "labels.other" msgstr "Òmíìràn(ní pàtó)" @@ -2203,10 +2191,6 @@ msgstr "Ṣe àṣàyàn" msgid "labels.sketch" msgstr "Yàwòrán" -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.some" -msgstr "Díẹ̀" - #: src/app/main/ui/onboarding/questions.cljs msgid "labels.start" msgstr "Bẹ̀rẹ̀" diff --git a/frontend/translations/zh_CN.po b/frontend/translations/zh_CN.po index 5a8e2b0b2b..144f785642 100644 --- a/frontend/translations/zh_CN.po +++ b/frontend/translations/zh_CN.po @@ -169,10 +169,6 @@ msgstr "服务协议" msgid "auth.terms-privacy-agreement" msgstr "创建账号意味着您认可我们的服务条例和隐私政策。" -#: src/app/main/ui/auth/register.cljs -msgid "auth.terms-privacy-agreement-md" -msgstr "创建新账号,即代表你同意我们的[服务条例](%s)和[隐私政策](%s)。" - #: src/app/main/ui/auth/register.cljs msgid "auth.verification-email-sent" msgstr "我们已经发送了一封验证邮件到" @@ -2365,10 +2361,6 @@ msgstr "50以上" msgid "labels.next" msgstr "下一项" -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.none" -msgstr "无" - #: src/app/main/ui/onboarding/questions.cljs msgid "labels.other" msgstr "其他(请注明)" diff --git a/frontend/translations/zh_Hant.po b/frontend/translations/zh_Hant.po index fd26b5fa3f..24da603d91 100644 --- a/frontend/translations/zh_Hant.po +++ b/frontend/translations/zh_Hant.po @@ -2317,11 +2317,6 @@ msgstr "60 天" msgid "dashboard.access-tokens.token-will-not-expire" msgstr "權杖沒有到期時間" -#: src/app/main/ui/auth/register.cljs -#, markdown -msgid "auth.terms-privacy-agreement-md" -msgstr "當你創立新的帳號,代表你同意我們的 [服務條款](%s) 與 [隱私權政策](%s)。" - #: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-180-days" msgstr "180 天" From 0cebd89c01a6b76190cc37fb00ef6e44cc0d7c71 Mon Sep 17 00:00:00 2001 From: Anonymous Date: Mon, 17 Jun 2024 08:03:20 +0000 Subject: [PATCH 149/476] :globe_with_meridians: Add translations for: Catalan. Currently translated at 75.0% (1057 of 1408 strings) Translation: Penpot/frontend Translate-URL: https://hosted.weblate.org/projects/penpot/frontend/ca/ --- frontend/translations/ca.po | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/frontend/translations/ca.po b/frontend/translations/ca.po index 414e327026..b803c7206c 100644 --- a/frontend/translations/ca.po +++ b/frontend/translations/ca.po @@ -1,15 +1,15 @@ msgid "" msgstr "" -"PO-Revision-Date: 2023-01-24 14:27+0000\n" -"Last-Translator: Rubén \n" -"Language-Team: Catalan " -"\n" +"PO-Revision-Date: 2024-06-17 08:07+0000\n" +"Last-Translator: Anonymous \n" +"Language-Team: Catalan \n" "Language: ca\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.16-dev\n" +"X-Generator: Weblate 5.6-dev\n" #: src/app/main/ui/auth/register.cljs msgid "auth.already-have-account" @@ -48,6 +48,7 @@ msgid "auth.fullname" msgstr "Nom complet" #: src/app/main/ui/auth/register.cljs +#, fuzzy msgid "auth.login-here" msgstr "Inicieu la sessió aquí" From 37abe7d7f13f0f1ef100b24ad4923465261f59b6 Mon Sep 17 00:00:00 2001 From: Anonymous Date: Mon, 17 Jun 2024 08:04:00 +0000 Subject: [PATCH 150/476] :globe_with_meridians: Add translations for: French. Currently translated at 96.3% (1356 of 1408 strings) Translation: Penpot/frontend Translate-URL: https://hosted.weblate.org/projects/penpot/frontend/fr/ --- frontend/translations/fr.po | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/frontend/translations/fr.po b/frontend/translations/fr.po index 536edd4bc9..7882541726 100644 --- a/frontend/translations/fr.po +++ b/frontend/translations/fr.po @@ -1,7 +1,7 @@ msgid "" msgstr "" -"PO-Revision-Date: 2024-05-03 13:07+0000\n" -"Last-Translator: Louis Chance \n" +"PO-Revision-Date: 2024-06-17 08:07+0000\n" +"Last-Translator: Anonymous \n" "Language-Team: French \n" "Language: fr\n" @@ -9,7 +9,7 @@ msgstr "" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n!=1);\n" -"X-Generator: Weblate 5.5.3\n" +"X-Generator: Weblate 5.6-dev\n" #: src/app/main/ui/auth/register.cljs msgid "auth.already-have-account" @@ -48,6 +48,7 @@ msgid "auth.fullname" msgstr "Nom complet" #: src/app/main/ui/auth/register.cljs +#, fuzzy msgid "auth.login-here" msgstr "Connectez-vous ici" From ac14a6315b3afd657f5df068801fb7dfa8a86b5a Mon Sep 17 00:00:00 2001 From: Anonymous Date: Mon, 17 Jun 2024 08:03:40 +0000 Subject: [PATCH 151/476] :globe_with_meridians: Add translations for: Greek. Currently translated at 36.9% (520 of 1408 strings) Translation: Penpot/frontend Translate-URL: https://hosted.weblate.org/projects/penpot/frontend/el/ --- frontend/translations/el.po | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/frontend/translations/el.po b/frontend/translations/el.po index 2fb8706234..4f4c677c1b 100644 --- a/frontend/translations/el.po +++ b/frontend/translations/el.po @@ -1,15 +1,15 @@ msgid "" msgstr "" -"PO-Revision-Date: 2022-08-18 16:16+0000\n" -"Last-Translator: andy \n" -"Language-Team: Greek " -"\n" +"PO-Revision-Date: 2024-06-17 08:07+0000\n" +"Last-Translator: Anonymous \n" +"Language-Team: Greek \n" "Language: el\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.14-dev\n" +"X-Generator: Weblate 5.6-dev\n" #: src/app/main/ui/auth/register.cljs msgid "auth.already-have-account" @@ -48,6 +48,7 @@ msgid "auth.fullname" msgstr "Πλήρες όνομα" #: src/app/main/ui/auth/register.cljs +#, fuzzy msgid "auth.login-here" msgstr "Συνδεθείτε εδώ" From 492a975a3a2a9eb9b944cc755ad818119d02a38e Mon Sep 17 00:00:00 2001 From: Anonymous Date: Mon, 17 Jun 2024 08:05:03 +0000 Subject: [PATCH 152/476] :globe_with_meridians: Add translations for: Russian. Currently translated at 56.1% (790 of 1408 strings) Translation: Penpot/frontend Translate-URL: https://hosted.weblate.org/projects/penpot/frontend/ru/ --- frontend/translations/ru.po | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/frontend/translations/ru.po b/frontend/translations/ru.po index 55e96714ef..1b961ddca1 100644 --- a/frontend/translations/ru.po +++ b/frontend/translations/ru.po @@ -1,7 +1,7 @@ msgid "" msgstr "" -"PO-Revision-Date: 2024-05-03 13:07+0000\n" -"Last-Translator: Stas Haas \n" +"PO-Revision-Date: 2024-06-17 08:07+0000\n" +"Last-Translator: Anonymous \n" "Language-Team: Russian \n" "Language: ru\n" @@ -9,7 +9,7 @@ msgstr "" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Weblate 5.5.3\n" +"X-Generator: Weblate 5.6-dev\n" #: src/app/main/ui/auth/register.cljs msgid "auth.already-have-account" @@ -46,6 +46,7 @@ msgid "auth.fullname" msgstr "Полное имя" #: src/app/main/ui/auth/register.cljs +#, fuzzy msgid "auth.login-here" msgstr "Войти здесь" From 36d0e6eb36fc97384fd846ae734dd1bc00c0b1db Mon Sep 17 00:00:00 2001 From: Anonymous Date: Mon, 17 Jun 2024 08:05:08 +0000 Subject: [PATCH 153/476] :globe_with_meridians: Add translations for: Turkish. Currently translated at 97.1% (1368 of 1408 strings) Translation: Penpot/frontend Translate-URL: https://hosted.weblate.org/projects/penpot/frontend/tr/ --- frontend/translations/tr.po | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/frontend/translations/tr.po b/frontend/translations/tr.po index e61945101b..92d9dfe7e1 100644 --- a/frontend/translations/tr.po +++ b/frontend/translations/tr.po @@ -1,7 +1,7 @@ msgid "" msgstr "" -"PO-Revision-Date: 2024-06-06 17:09+0000\n" -"Last-Translator: Oğuz Ersen \n" +"PO-Revision-Date: 2024-06-17 08:07+0000\n" +"Last-Translator: Anonymous \n" "Language-Team: Turkish \n" "Language: tr\n" @@ -52,6 +52,7 @@ msgid "auth.login-account-title" msgstr "Hesabımda oturum aç" #: src/app/main/ui/auth/register.cljs +#, fuzzy msgid "auth.login-here" msgstr "Buradan oturum açın" From 4d778e71fe892ff96159b0490a6a9621a886498f Mon Sep 17 00:00:00 2001 From: Anonymous Date: Mon, 17 Jun 2024 08:05:16 +0000 Subject: [PATCH 154/476] :globe_with_meridians: Add translations for: Chinese (Simplified). Currently translated at 95.8% (1349 of 1408 strings) Translation: Penpot/frontend Translate-URL: https://hosted.weblate.org/projects/penpot/frontend/zh_Hans/ --- frontend/translations/zh_CN.po | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/frontend/translations/zh_CN.po b/frontend/translations/zh_CN.po index 144f785642..3abd8eddfc 100644 --- a/frontend/translations/zh_CN.po +++ b/frontend/translations/zh_CN.po @@ -1,6 +1,6 @@ msgid "" msgstr "" -"PO-Revision-Date: 2024-06-05 10:42+0000\n" +"PO-Revision-Date: 2024-06-17 08:07+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Chinese (Simplified) \n" @@ -44,6 +44,7 @@ msgid "auth.fullname" msgstr "全名" #: src/app/main/ui/auth/register.cljs +#, fuzzy msgid "auth.login-here" msgstr "在这里登录" From 9f25c6eb0979702599fad4fa562488c5b37cee2e Mon Sep 17 00:00:00 2001 From: Anonymous Date: Mon, 17 Jun 2024 08:04:55 +0000 Subject: [PATCH 155/476] :globe_with_meridians: Add translations for: Portuguese (Brazil). Currently translated at 81.3% (1145 of 1408 strings) Translation: Penpot/frontend Translate-URL: https://hosted.weblate.org/projects/penpot/frontend/pt_BR/ --- frontend/translations/pt_BR.po | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/frontend/translations/pt_BR.po b/frontend/translations/pt_BR.po index 363596bf09..e61276ac65 100644 --- a/frontend/translations/pt_BR.po +++ b/frontend/translations/pt_BR.po @@ -1,15 +1,15 @@ msgid "" msgstr "" -"PO-Revision-Date: 2024-04-24 12:55+0000\n" +"PO-Revision-Date: 2024-06-17 08:07+0000\n" "Last-Translator: Anonymous \n" -"Language-Team: Portuguese (Brazil) " -"\n" +"Language-Team: Portuguese (Brazil) \n" "Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 5.5.1-dev\n" +"X-Generator: Weblate 5.6-dev\n" #: src/app/main/ui/auth/register.cljs msgid "auth.already-have-account" @@ -48,6 +48,7 @@ msgid "auth.fullname" msgstr "Nome completo" #: src/app/main/ui/auth/register.cljs +#, fuzzy msgid "auth.login-here" msgstr "Entrar aqui" From 81482c835062f46c3b49106efd1f4a96118bcac9 Mon Sep 17 00:00:00 2001 From: Anonymous Date: Mon, 17 Jun 2024 08:03:37 +0000 Subject: [PATCH 156/476] :globe_with_meridians: Add translations for: German. Currently translated at 97.0% (1367 of 1408 strings) Translation: Penpot/frontend Translate-URL: https://hosted.weblate.org/projects/penpot/frontend/de/ --- frontend/translations/de.po | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/frontend/translations/de.po b/frontend/translations/de.po index bd694af0e5..48214d1fa3 100644 --- a/frontend/translations/de.po +++ b/frontend/translations/de.po @@ -1,7 +1,7 @@ msgid "" msgstr "" -"PO-Revision-Date: 2024-06-06 17:09+0000\n" -"Last-Translator: Stas Haas \n" +"PO-Revision-Date: 2024-06-17 08:07+0000\n" +"Last-Translator: Anonymous \n" "Language-Team: German \n" "Language: de\n" @@ -52,6 +52,7 @@ msgid "auth.login-account-title" msgstr "In mein Konto einloggen" #: src/app/main/ui/auth/register.cljs +#, fuzzy msgid "auth.login-here" msgstr "Hier anmelden" From 3e54ab1c3c4c04ab173a939a76494a1477f0a9cc Mon Sep 17 00:00:00 2001 From: Anonymous Date: Mon, 17 Jun 2024 08:03:34 +0000 Subject: [PATCH 157/476] :globe_with_meridians: Add translations for: Danish. Currently translated at 7.4% (105 of 1408 strings) Translation: Penpot/frontend Translate-URL: https://hosted.weblate.org/projects/penpot/frontend/da/ --- frontend/translations/da.po | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/frontend/translations/da.po b/frontend/translations/da.po index 8001a50335..d90f002d52 100644 --- a/frontend/translations/da.po +++ b/frontend/translations/da.po @@ -1,15 +1,15 @@ msgid "" msgstr "" -"PO-Revision-Date: 2021-05-17 21:32+0000\n" -"Last-Translator: Simon Bechmann \n" -"Language-Team: Danish " -"\n" +"PO-Revision-Date: 2024-06-17 08:07+0000\n" +"Last-Translator: Anonymous \n" +"Language-Team: Danish \n" "Language: da\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.7-dev\n" +"X-Generator: Weblate 5.6-dev\n" #: src/app/main/ui/auth/register.cljs msgid "auth.already-have-account" @@ -48,6 +48,7 @@ msgid "auth.fullname" msgstr "Fulde Navn" #: src/app/main/ui/auth/register.cljs +#, fuzzy msgid "auth.login-here" msgstr "Log på her" From 5651b72c0f1ee83e308814c67ff77fc56ae92c6e Mon Sep 17 00:00:00 2001 From: Anonymous Date: Mon, 17 Jun 2024 08:05:00 +0000 Subject: [PATCH 158/476] :globe_with_meridians: Add translations for: Romanian. Currently translated at 90.0% (1268 of 1408 strings) Translation: Penpot/frontend Translate-URL: https://hosted.weblate.org/projects/penpot/frontend/ro/ --- frontend/translations/ro.po | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/frontend/translations/ro.po b/frontend/translations/ro.po index a9af179307..76fd8d9620 100644 --- a/frontend/translations/ro.po +++ b/frontend/translations/ro.po @@ -1,16 +1,16 @@ msgid "" msgstr "" -"PO-Revision-Date: 2024-04-24 12:55+0000\n" +"PO-Revision-Date: 2024-06-17 08:07+0000\n" "Last-Translator: Anonymous \n" -"Language-Team: Romanian " -"\n" +"Language-Team: Romanian \n" "Language: ro\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < " "20)) ? 1 : 2;\n" -"X-Generator: Weblate 5.5.1-dev\n" +"X-Generator: Weblate 5.6-dev\n" #: src/app/main/ui/auth/register.cljs msgid "auth.already-have-account" @@ -49,6 +49,7 @@ msgid "auth.fullname" msgstr "Numele complet" #: src/app/main/ui/auth/register.cljs +#, fuzzy msgid "auth.login-here" msgstr "Conectează-te" From ac8775565b28a16e13bc418ed58b802b1260c0ef Mon Sep 17 00:00:00 2001 From: Anonymous Date: Mon, 17 Jun 2024 08:03:13 +0000 Subject: [PATCH 159/476] :globe_with_meridians: Add translations for: Arabic. Currently translated at 80.0% (1127 of 1408 strings) Translation: Penpot/frontend Translate-URL: https://hosted.weblate.org/projects/penpot/frontend/ar/ --- frontend/translations/ar.po | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/frontend/translations/ar.po b/frontend/translations/ar.po index b42e084071..8c1d9e966b 100644 --- a/frontend/translations/ar.po +++ b/frontend/translations/ar.po @@ -1,7 +1,7 @@ msgid "" msgstr "" -"PO-Revision-Date: 2024-05-19 11:01+0000\n" -"Last-Translator: Amine Gdoura \n" +"PO-Revision-Date: 2024-06-17 08:07+0000\n" +"Last-Translator: Anonymous \n" "Language-Team: Arabic \n" "Language: ar\n" @@ -45,6 +45,7 @@ msgid "auth.fullname" msgstr "الاسم الكامل" #: src/app/main/ui/auth/register.cljs +#, fuzzy msgid "auth.login-here" msgstr "تسجيل الدخول هنا" From 77b70cac60f4e6f87b59bbf5f2381076a761bdd2 Mon Sep 17 00:00:00 2001 From: Anonymous Date: Mon, 17 Jun 2024 08:04:15 +0000 Subject: [PATCH 160/476] :globe_with_meridians: Add translations for: Indonesian. Currently translated at 96.0% (1352 of 1408 strings) Translation: Penpot/frontend Translate-URL: https://hosted.weblate.org/projects/penpot/frontend/id/ --- frontend/translations/id.po | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/frontend/translations/id.po b/frontend/translations/id.po index ddc0efc710..9e6bef4d69 100644 --- a/frontend/translations/id.po +++ b/frontend/translations/id.po @@ -1,6 +1,6 @@ msgid "" msgstr "" -"PO-Revision-Date: 2024-04-24 12:55+0000\n" +"PO-Revision-Date: 2024-06-17 08:07+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Indonesian \n" @@ -9,7 +9,7 @@ msgstr "" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 5.5.1-dev\n" +"X-Generator: Weblate 5.6-dev\n" #: src/app/main/ui/auth/register.cljs msgid "auth.already-have-account" @@ -48,6 +48,7 @@ msgid "auth.fullname" msgstr "Nama Lengkap" #: src/app/main/ui/auth/register.cljs +#, fuzzy msgid "auth.login-here" msgstr "Masuk di sini" From 981cd92b26abc21fd46bf7548224c4e756465904 Mon Sep 17 00:00:00 2001 From: Anonymous Date: Mon, 17 Jun 2024 08:04:10 +0000 Subject: [PATCH 161/476] :globe_with_meridians: Add translations for: Hebrew. Currently translated at 96.0% (1353 of 1408 strings) Translation: Penpot/frontend Translate-URL: https://hosted.weblate.org/projects/penpot/frontend/he/ --- frontend/translations/he.po | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/frontend/translations/he.po b/frontend/translations/he.po index 0a6ff1d787..abdf5f5b38 100644 --- a/frontend/translations/he.po +++ b/frontend/translations/he.po @@ -1,7 +1,7 @@ msgid "" msgstr "" -"PO-Revision-Date: 2024-04-25 13:07+0000\n" -"Last-Translator: Yaron Shahrabani \n" +"PO-Revision-Date: 2024-06-17 08:07+0000\n" +"Last-Translator: Anonymous \n" "Language-Team: Hebrew \n" "Language: he\n" @@ -10,7 +10,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=4; plural=(n == 1) ? 0 : ((n == 2) ? 1 : ((n > 10 && " "n % 10 == 0) ? 2 : 3));\n" -"X-Generator: Weblate 5.5.1-dev\n" +"X-Generator: Weblate 5.6-dev\n" #: src/app/main/ui/auth/register.cljs msgid "auth.already-have-account" @@ -51,6 +51,7 @@ msgid "auth.login-account-title" msgstr "כניסה לחשבון שלי" #: src/app/main/ui/auth/register.cljs +#, fuzzy msgid "auth.login-here" msgstr "כניסה מכאן" From 5362d9f5e9aee1a8fdc41b87c34af86ac0a32218 Mon Sep 17 00:00:00 2001 From: Anonymous Date: Mon, 17 Jun 2024 08:05:19 +0000 Subject: [PATCH 162/476] :globe_with_meridians: Add translations for: Chinese (Traditional). Currently translated at 45.8% (646 of 1408 strings) Translation: Penpot/frontend Translate-URL: https://hosted.weblate.org/projects/penpot/frontend/zh_Hant/ --- frontend/translations/zh_Hant.po | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/frontend/translations/zh_Hant.po b/frontend/translations/zh_Hant.po index 24da603d91..724bddba89 100644 --- a/frontend/translations/zh_Hant.po +++ b/frontend/translations/zh_Hant.po @@ -1,7 +1,7 @@ msgid "" msgstr "" -"PO-Revision-Date: 2024-05-12 09:01+0000\n" -"Last-Translator: Andy Li \n" +"PO-Revision-Date: 2024-06-17 08:07+0000\n" +"Last-Translator: Anonymous \n" "Language-Team: Chinese (Traditional) \n" "Language: zh_Hant\n" @@ -9,7 +9,7 @@ msgstr "" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 5.5.4\n" +"X-Generator: Weblate 5.6-dev\n" #: src/app/main/ui/auth/register.cljs msgid "auth.already-have-account" @@ -44,6 +44,7 @@ msgid "auth.fullname" msgstr "全名" #: src/app/main/ui/auth/register.cljs +#, fuzzy msgid "auth.login-here" msgstr "在此登入" From 5cb2c1bbe470c8ad1f0db4c36accbc372a1c955e Mon Sep 17 00:00:00 2001 From: Anonymous Date: Mon, 17 Jun 2024 08:04:37 +0000 Subject: [PATCH 163/476] :globe_with_meridians: Add translations for: Malayalam. Currently translated at 3.7% (53 of 1408 strings) Translation: Penpot/frontend Translate-URL: https://hosted.weblate.org/projects/penpot/frontend/ml/ --- frontend/translations/ml.po | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/frontend/translations/ml.po b/frontend/translations/ml.po index c2e46d7369..f67e468d90 100644 --- a/frontend/translations/ml.po +++ b/frontend/translations/ml.po @@ -1,15 +1,15 @@ msgid "" msgstr "" -"PO-Revision-Date: 2022-05-16 21:16+0000\n" -"Last-Translator: Joseph V M \n" -"Language-Team: Malayalam " -"\n" +"PO-Revision-Date: 2024-06-17 08:07+0000\n" +"Last-Translator: Anonymous \n" +"Language-Team: Malayalam \n" "Language: ml\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.13-dev\n" +"X-Generator: Weblate 5.6-dev\n" #: src/app/main/ui/auth/register.cljs msgid "auth.already-have-account" @@ -48,6 +48,7 @@ msgid "auth.fullname" msgstr "മുഴുവൻ പേര്" #: src/app/main/ui/auth/register.cljs +#, fuzzy msgid "auth.login-here" msgstr "ഇവിടെ ലോഗിൻ ചെയ്യുക" From 731299fe6058c7f0022c811670f4ffc9f310f90c Mon Sep 17 00:00:00 2001 From: Anonymous Date: Mon, 17 Jun 2024 08:03:52 +0000 Subject: [PATCH 164/476] :globe_with_meridians: Add translations for: Persian. Currently translated at 47.8% (674 of 1408 strings) Translation: Penpot/frontend Translate-URL: https://hosted.weblate.org/projects/penpot/frontend/fa/ --- frontend/translations/fa.po | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/frontend/translations/fa.po b/frontend/translations/fa.po index 9c28283b11..af9c817b28 100644 --- a/frontend/translations/fa.po +++ b/frontend/translations/fa.po @@ -1,15 +1,15 @@ msgid "" msgstr "" -"PO-Revision-Date: 2024-04-24 12:55+0000\n" +"PO-Revision-Date: 2024-06-17 08:07+0000\n" "Last-Translator: Anonymous \n" -"Language-Team: Persian " -"\n" +"Language-Team: Persian \n" "Language: fa\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 5.5.1-dev\n" +"X-Generator: Weblate 5.6-dev\n" #: src/app/main/ui/auth/register.cljs msgid "auth.already-have-account" @@ -48,6 +48,7 @@ msgid "auth.fullname" msgstr "نام کامل" #: src/app/main/ui/auth/register.cljs +#, fuzzy msgid "auth.login-here" msgstr "ورود از اینجا" From 59e18e8d4c319d8a5037aed1aec1c9075abdb445 Mon Sep 17 00:00:00 2001 From: Anonymous Date: Mon, 17 Jun 2024 08:04:25 +0000 Subject: [PATCH 165/476] :globe_with_meridians: Add translations for: Italian. Currently translated at 32.2% (454 of 1408 strings) Translation: Penpot/frontend Translate-URL: https://hosted.weblate.org/projects/penpot/frontend/it/ --- frontend/translations/it.po | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/frontend/translations/it.po b/frontend/translations/it.po index 2297fbf5b2..47ea14afa7 100644 --- a/frontend/translations/it.po +++ b/frontend/translations/it.po @@ -1,15 +1,15 @@ msgid "" msgstr "" -"PO-Revision-Date: 2022-10-01 14:17+0000\n" -"Last-Translator: Jacopo Lodovico Trabia \n" -"Language-Team: Italian " -"\n" +"PO-Revision-Date: 2024-06-17 08:07+0000\n" +"Last-Translator: Anonymous \n" +"Language-Team: Italian \n" "Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.14.1\n" +"X-Generator: Weblate 5.6-dev\n" #: src/app/main/ui/auth/register.cljs msgid "auth.already-have-account" @@ -48,6 +48,7 @@ msgid "auth.fullname" msgstr "Nome completo" #: src/app/main/ui/auth/register.cljs +#, fuzzy msgid "auth.login-here" msgstr "Accedere qui" From a50e431c7adcd469fa98470122167c9408855680 Mon Sep 17 00:00:00 2001 From: Anonymous Date: Mon, 17 Jun 2024 08:04:51 +0000 Subject: [PATCH 166/476] :globe_with_meridians: Add translations for: Polish. Currently translated at 81.3% (1146 of 1408 strings) Translation: Penpot/frontend Translate-URL: https://hosted.weblate.org/projects/penpot/frontend/pl/ --- frontend/translations/pl.po | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/frontend/translations/pl.po b/frontend/translations/pl.po index 579ae7ffab..505571f231 100644 --- a/frontend/translations/pl.po +++ b/frontend/translations/pl.po @@ -1,16 +1,16 @@ msgid "" msgstr "" -"PO-Revision-Date: 2024-04-24 12:55+0000\n" +"PO-Revision-Date: 2024-06-17 08:07+0000\n" "Last-Translator: Anonymous \n" -"Language-Team: Polish " -"\n" +"Language-Team: Polish \n" "Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && " -"(n%100<10 || n%100>=20) ? 1 : 2);\n" -"X-Generator: Weblate 5.5.1-dev\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " +"|| n%100>=20) ? 1 : 2);\n" +"X-Generator: Weblate 5.6-dev\n" #: src/app/main/ui/auth/register.cljs msgid "auth.already-have-account" @@ -49,6 +49,7 @@ msgid "auth.fullname" msgstr "Imię i nazwisko" #: src/app/main/ui/auth/register.cljs +#, fuzzy msgid "auth.login-here" msgstr "Zaloguj się tutaj" From 2e3dbfeb273c916c950f8ae490f24f710255e604 Mon Sep 17 00:00:00 2001 From: Anonymous Date: Mon, 17 Jun 2024 08:04:32 +0000 Subject: [PATCH 167/476] :globe_with_meridians: Add translations for: Lithuanian. Currently translated at 8.4% (119 of 1408 strings) Translation: Penpot/frontend Translate-URL: https://hosted.weblate.org/projects/penpot/frontend/lt/ --- frontend/translations/lt.po | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/frontend/translations/lt.po b/frontend/translations/lt.po index d28de2937e..707e94a2bc 100644 --- a/frontend/translations/lt.po +++ b/frontend/translations/lt.po @@ -1,17 +1,16 @@ msgid "" msgstr "" -"PO-Revision-Date: 2023-08-09 07:04+0000\n" -"Last-Translator: Vincas Dundzys \n" -"Language-Team: Lithuanian " -"\n" +"PO-Revision-Date: 2024-06-17 08:07+0000\n" +"Last-Translator: Anonymous \n" +"Language-Team: Lithuanian \n" "Language: lt\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=3; plural=(n % 10 == 1 && (n % 100 < 11 || n % 100 > " -"19)) ? 0 : ((n % 10 >= 2 && n % 10 <= 9 && (n % 100 < 11 || n % 100 > 19)) " -"? 1 : 2);\n" -"X-Generator: Weblate 5.0-dev\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (" +"n%100<10 || n%100>=20) ? 1 : 2);\n" +"X-Generator: Weblate 5.6-dev\n" #: src/app/main/ui/auth/register.cljs msgid "auth.already-have-account" @@ -50,6 +49,7 @@ msgid "auth.fullname" msgstr "Vardas ir Pavardė" #: src/app/main/ui/auth/register.cljs +#, fuzzy msgid "auth.login-here" msgstr "Prisijungimas čia" From f033814f964c796a66288ce0a0c665546a4adf58 Mon Sep 17 00:00:00 2001 From: Anonymous Date: Mon, 17 Jun 2024 08:04:03 +0000 Subject: [PATCH 168/476] :globe_with_meridians: Add translations for: Galician. Currently translated at 26.7% (376 of 1408 strings) Translation: Penpot/frontend Translate-URL: https://hosted.weblate.org/projects/penpot/frontend/gl/ --- frontend/translations/gl.po | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/frontend/translations/gl.po b/frontend/translations/gl.po index af417c5b9e..3055ed0933 100644 --- a/frontend/translations/gl.po +++ b/frontend/translations/gl.po @@ -1,15 +1,15 @@ msgid "" msgstr "" -"PO-Revision-Date: 2022-12-06 21:48+0000\n" -"Last-Translator: María Ozámiz \n" -"Language-Team: Galician " -"\n" +"PO-Revision-Date: 2024-06-17 08:07+0000\n" +"Last-Translator: Anonymous \n" +"Language-Team: Galician \n" "Language: gl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.15-dev\n" +"X-Generator: Weblate 5.6-dev\n" #: src/app/main/ui/auth/register.cljs msgid "auth.already-have-account" @@ -48,6 +48,7 @@ msgid "auth.fullname" msgstr "Nome completo" #: src/app/main/ui/auth/register.cljs +#, fuzzy msgid "auth.login-here" msgstr "Entra aquí" From 4d56f86719d3db9252ca1da9386869ae1904234c Mon Sep 17 00:00:00 2001 From: Anonymous Date: Mon, 17 Jun 2024 08:04:27 +0000 Subject: [PATCH 169/476] :globe_with_meridians: Add translations for: Japanese. Currently translated at 16.6% (235 of 1408 strings) Translation: Penpot/frontend Translate-URL: https://hosted.weblate.org/projects/penpot/frontend/ja/ --- frontend/translations/jpn_JP.po | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/frontend/translations/jpn_JP.po b/frontend/translations/jpn_JP.po index 676264bea3..9b325ce044 100644 --- a/frontend/translations/jpn_JP.po +++ b/frontend/translations/jpn_JP.po @@ -1,15 +1,15 @@ msgid "" msgstr "" -"PO-Revision-Date: 2022-11-01 14:29+0000\n" -"Last-Translator: Tatsuto Yamamoto \n" -"Language-Team: Japanese " -"\n" +"PO-Revision-Date: 2024-06-17 08:07+0000\n" +"Last-Translator: Anonymous \n" +"Language-Team: Japanese \n" "Language: jpn_JP\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 4.14.2-dev\n" +"X-Generator: Weblate 5.6-dev\n" #: src/app/main/ui/auth/register.cljs msgid "auth.already-have-account" @@ -44,6 +44,7 @@ msgid "auth.fullname" msgstr "フルネーム" #: src/app/main/ui/auth/register.cljs +#, fuzzy msgid "auth.login-here" msgstr "こちらからログイン" From 6abf792e0f3d559337e779aa79f347ca335cfe73 Mon Sep 17 00:00:00 2001 From: Anonymous Date: Mon, 17 Jun 2024 08:03:49 +0000 Subject: [PATCH 170/476] :globe_with_meridians: Add translations for: Basque. Currently translated at 83.4% (1175 of 1408 strings) Translation: Penpot/frontend Translate-URL: https://hosted.weblate.org/projects/penpot/frontend/eu/ --- frontend/translations/eu.po | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/frontend/translations/eu.po b/frontend/translations/eu.po index e8896c496d..485001f16e 100644 --- a/frontend/translations/eu.po +++ b/frontend/translations/eu.po @@ -1,15 +1,15 @@ msgid "" msgstr "" -"PO-Revision-Date: 2024-04-24 12:55+0000\n" +"PO-Revision-Date: 2024-06-17 08:07+0000\n" "Last-Translator: Anonymous \n" -"Language-Team: Basque " -"\n" +"Language-Team: Basque \n" "Language: eu\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 5.5.1-dev\n" +"X-Generator: Weblate 5.6-dev\n" #: src/app/main/ui/auth/register.cljs msgid "auth.already-have-account" @@ -48,6 +48,7 @@ msgid "auth.fullname" msgstr "Izen osoa" #: src/app/main/ui/auth/register.cljs +#, fuzzy msgid "auth.login-here" msgstr "Sartu" From 5185d1eaa54f40826fdebf79cef9d87132dea488 Mon Sep 17 00:00:00 2001 From: Anonymous Date: Mon, 17 Jun 2024 08:03:28 +0000 Subject: [PATCH 171/476] :globe_with_meridians: Add translations for: Czech. Currently translated at 92.8% (1307 of 1408 strings) Translation: Penpot/frontend Translate-URL: https://hosted.weblate.org/projects/penpot/frontend/cs/ --- frontend/translations/cs.po | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/frontend/translations/cs.po b/frontend/translations/cs.po index c13cf2e39f..862545f4cd 100644 --- a/frontend/translations/cs.po +++ b/frontend/translations/cs.po @@ -1,15 +1,15 @@ msgid "" msgstr "" -"PO-Revision-Date: 2024-04-24 12:55+0000\n" +"PO-Revision-Date: 2024-06-17 08:07+0000\n" "Last-Translator: Anonymous \n" -"Language-Team: Czech " -"\n" +"Language-Team: Czech \n" "Language: cs\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=((n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2);\n" -"X-Generator: Weblate 5.5.1-dev\n" +"X-Generator: Weblate 5.6-dev\n" #: src/app/main/ui/auth/register.cljs msgid "auth.already-have-account" @@ -48,6 +48,7 @@ msgid "auth.fullname" msgstr "Jméno a příjmení" #: src/app/main/ui/auth/register.cljs +#, fuzzy msgid "auth.login-here" msgstr "Přihlaste se zde" From f3d82c915bca5d2afc204a443e50874fbd7fb446 Mon Sep 17 00:00:00 2001 From: Anonymous Date: Mon, 17 Jun 2024 08:03:55 +0000 Subject: [PATCH 172/476] :globe_with_meridians: Add translations for: Finnish. Currently translated at 3.9% (55 of 1408 strings) Translation: Penpot/frontend Translate-URL: https://hosted.weblate.org/projects/penpot/frontend/fi/ --- frontend/translations/fin_FI.po | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/frontend/translations/fin_FI.po b/frontend/translations/fin_FI.po index df8093ddcc..48be1617c6 100644 --- a/frontend/translations/fin_FI.po +++ b/frontend/translations/fin_FI.po @@ -1,15 +1,15 @@ msgid "" msgstr "" -"PO-Revision-Date: 2022-12-20 20:48+0000\n" -"Last-Translator: Midka \n" -"Language-Team: Finnish " -"\n" +"PO-Revision-Date: 2024-06-17 08:07+0000\n" +"Last-Translator: Anonymous \n" +"Language-Team: Finnish \n" "Language: fin_FI\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.15.1-dev\n" +"X-Generator: Weblate 5.6-dev\n" #: src/app/main/ui/auth/register.cljs msgid "auth.already-have-account" @@ -48,6 +48,7 @@ msgid "auth.fullname" msgstr "Koko nimi" #: src/app/main/ui/auth/register.cljs +#, fuzzy msgid "auth.login-here" msgstr "Kirjaudu sisään" From 9a9eca7813f3a988c2ff349b6db97a94a44c6ad1 Mon Sep 17 00:00:00 2001 From: Anonymous Date: Mon, 17 Jun 2024 08:04:57 +0000 Subject: [PATCH 173/476] :globe_with_meridians: Add translations for: Portuguese (Portugal). Currently translated at 94.6% (1332 of 1408 strings) Translation: Penpot/frontend Translate-URL: https://hosted.weblate.org/projects/penpot/frontend/pt_PT/ --- frontend/translations/pt_PT.po | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/frontend/translations/pt_PT.po b/frontend/translations/pt_PT.po index a9a5941d87..011a7e5bad 100644 --- a/frontend/translations/pt_PT.po +++ b/frontend/translations/pt_PT.po @@ -1,6 +1,6 @@ msgid "" msgstr "" -"PO-Revision-Date: 2024-04-24 12:55+0000\n" +"PO-Revision-Date: 2024-06-17 08:07+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Portuguese (Portugal) \n" @@ -9,7 +9,7 @@ msgstr "" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 5.5.1-dev\n" +"X-Generator: Weblate 5.6-dev\n" #: src/app/main/ui/auth/register.cljs msgid "auth.already-have-account" @@ -48,6 +48,7 @@ msgid "auth.fullname" msgstr "Nome completo" #: src/app/main/ui/auth/register.cljs +#, fuzzy msgid "auth.login-here" msgstr "Iniciar sessão" From 3d68d454fe4ef50c48e86348678ec492bcfe3c17 Mon Sep 17 00:00:00 2001 From: Anonymous Date: Mon, 17 Jun 2024 08:05:05 +0000 Subject: [PATCH 174/476] :globe_with_meridians: Add translations for: Tamil. Currently translated at 3.2% (46 of 1408 strings) Translation: Penpot/frontend Translate-URL: https://hosted.weblate.org/projects/penpot/frontend/ta/ --- frontend/translations/ta.po | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/frontend/translations/ta.po b/frontend/translations/ta.po index 6fd194df21..6ed7b51180 100644 --- a/frontend/translations/ta.po +++ b/frontend/translations/ta.po @@ -1,15 +1,15 @@ msgid "" msgstr "" -"PO-Revision-Date: 2023-06-17 09:51+0000\n" -"Last-Translator: \"K.B.Dharun Krishna\" \n" -"Language-Team: Tamil " -"\n" +"PO-Revision-Date: 2024-06-17 08:07+0000\n" +"Last-Translator: Anonymous \n" +"Language-Team: Tamil \n" "Language: ta\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.18.1\n" +"X-Generator: Weblate 5.6-dev\n" #: src/app/main/ui/auth/register.cljs msgid "auth.already-have-account" @@ -48,6 +48,7 @@ msgid "auth.fullname" msgstr "முழு பெயர்" #: src/app/main/ui/auth/register.cljs +#, fuzzy msgid "auth.login-here" msgstr "இங்கே உள்நுழைக" From f352cdf9a36d58590d8f94dd92838521d281bd11 Mon Sep 17 00:00:00 2001 From: Anonymous Date: Mon, 17 Jun 2024 08:04:13 +0000 Subject: [PATCH 175/476] :globe_with_meridians: Add translations for: Croatian. Currently translated at 72.2% (1017 of 1408 strings) Translation: Penpot/frontend Translate-URL: https://hosted.weblate.org/projects/penpot/frontend/hr/ --- frontend/translations/hr.po | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/frontend/translations/hr.po b/frontend/translations/hr.po index 7c44a832c8..b29b453ade 100644 --- a/frontend/translations/hr.po +++ b/frontend/translations/hr.po @@ -1,16 +1,16 @@ msgid "" msgstr "" -"PO-Revision-Date: 2023-07-05 02:17+0000\n" -"Last-Translator: Kristijan Žic \n" -"Language-Team: Croatian " -"\n" +"PO-Revision-Date: 2024-06-17 08:07+0000\n" +"Last-Translator: Anonymous \n" +"Language-Team: Croatian \n" "Language: hr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " -"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" -"X-Generator: Weblate 5.0-dev\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"X-Generator: Weblate 5.6-dev\n" #: src/app/main/ui/auth/register.cljs msgid "auth.already-have-account" @@ -47,6 +47,7 @@ msgid "auth.fullname" msgstr "Puno ime" #: src/app/main/ui/auth/register.cljs +#, fuzzy msgid "auth.login-here" msgstr "Prijavi se ovdje" From fa8bc7d40df333b4e027df255c95825e2ce3d2a1 Mon Sep 17 00:00:00 2001 From: Anonymous Date: Mon, 17 Jun 2024 08:05:10 +0000 Subject: [PATCH 176/476] :globe_with_meridians: Add translations for: Ukrainian (ukr_UA). Currently translated at 14.9% (210 of 1408 strings) Translation: Penpot/frontend Translate-URL: https://hosted.weblate.org/projects/penpot/frontend/ukr_UA/ --- frontend/translations/ukr_UA.po | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/frontend/translations/ukr_UA.po b/frontend/translations/ukr_UA.po index 8a5ceb2438..3c7f50b164 100644 --- a/frontend/translations/ukr_UA.po +++ b/frontend/translations/ukr_UA.po @@ -1,16 +1,16 @@ msgid "" msgstr "" -"PO-Revision-Date: 2022-10-04 18:22+0000\n" -"Last-Translator: Denys M. \n" -"Language-Team: Ukrainian " -"\n" +"PO-Revision-Date: 2024-06-17 08:07+0000\n" +"Last-Translator: Anonymous \n" +"Language-Team: Ukrainian \n" "Language: ukr_UA\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" -"X-Generator: Weblate 4.14.1\n" +"X-Generator: Weblate 5.6-dev\n" #: src/app/main/ui/auth/register.cljs msgid "auth.already-have-account" @@ -25,6 +25,7 @@ msgid "auth.fullname" msgstr "Повне ім'я" #: src/app/main/ui/auth/register.cljs +#, fuzzy msgid "auth.login-here" msgstr "Ввійдіть тут" From 27473003b7fe391f4cdc410720bd7ae5480a570c Mon Sep 17 00:00:00 2001 From: Anonymous Date: Mon, 17 Jun 2024 08:03:57 +0000 Subject: [PATCH 177/476] :globe_with_meridians: Add translations for: Faroese. Currently translated at 11.2% (159 of 1408 strings) Translation: Penpot/frontend Translate-URL: https://hosted.weblate.org/projects/penpot/frontend/fo/ --- frontend/translations/fo.po | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/frontend/translations/fo.po b/frontend/translations/fo.po index 22a6a6fc90..bb79b065bf 100644 --- a/frontend/translations/fo.po +++ b/frontend/translations/fo.po @@ -1,15 +1,15 @@ msgid "" msgstr "" -"PO-Revision-Date: 2022-11-18 19:48+0000\n" -"Last-Translator: Bogi Napoleon Wennerstrøm \n" -"Language-Team: Faroese " -"\n" +"PO-Revision-Date: 2024-06-17 08:07+0000\n" +"Last-Translator: Anonymous \n" +"Language-Team: Faroese \n" "Language: fo\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.15-dev\n" +"X-Generator: Weblate 5.6-dev\n" #: src/app/main/ui/auth/register.cljs msgid "auth.already-have-account" @@ -48,6 +48,7 @@ msgid "auth.fullname" msgstr "Fullfíggja navn" #: src/app/main/ui/auth/register.cljs +#, fuzzy msgid "auth.login-here" msgstr "Innrita her" From 47401aae990e318ad1d352802fbc5bd5b6b9ff7f Mon Sep 17 00:00:00 2001 From: Anonymous Date: Mon, 17 Jun 2024 08:03:16 +0000 Subject: [PATCH 178/476] :globe_with_meridians: Add translations for: Bengali. Currently translated at 1.0% (15 of 1408 strings) Translation: Penpot/frontend Translate-URL: https://hosted.weblate.org/projects/penpot/frontend/bn/ --- frontend/translations/bn.po | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/frontend/translations/bn.po b/frontend/translations/bn.po index dd6cef4f09..e6303cdcc6 100644 --- a/frontend/translations/bn.po +++ b/frontend/translations/bn.po @@ -1,15 +1,15 @@ msgid "" msgstr "" -"PO-Revision-Date: 2022-12-03 14:47+0000\n" -"Last-Translator: Salman Hossain Saif \n" -"Language-Team: Bengali " -"\n" +"PO-Revision-Date: 2024-06-17 08:07+0000\n" +"Last-Translator: Anonymous \n" +"Language-Team: Bengali \n" "Language: bn\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 4.15-dev\n" +"X-Generator: Weblate 5.6-dev\n" #: src/app/main/ui/auth/register.cljs msgid "auth.already-have-account" @@ -44,6 +44,7 @@ msgid "auth.fullname" msgstr "পুরো নাম" #: src/app/main/ui/auth/register.cljs +#, fuzzy msgid "auth.login-here" msgstr "এখানে লগিন করুন" From 5aa3b432bf917f3f11f23d8264a3a2f9785db941 Mon Sep 17 00:00:00 2001 From: Anonymous Date: Mon, 17 Jun 2024 08:04:30 +0000 Subject: [PATCH 179/476] :globe_with_meridians: Add translations for: Korean. Currently translated at 15.5% (219 of 1408 strings) Translation: Penpot/frontend Translate-URL: https://hosted.weblate.org/projects/penpot/frontend/ko/ --- frontend/translations/ko.po | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/frontend/translations/ko.po b/frontend/translations/ko.po index 78ae084a72..3bd56f6d27 100644 --- a/frontend/translations/ko.po +++ b/frontend/translations/ko.po @@ -1,6 +1,6 @@ msgid "" msgstr "" -"PO-Revision-Date: 2024-06-05 10:42+0000\n" +"PO-Revision-Date: 2024-06-17 08:07+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Korean \n" @@ -32,6 +32,7 @@ msgid "auth.forgot-password" msgstr "비밀번호를 잊어버리셨나요?" #: src/app/main/ui/auth/register.cljs +#, fuzzy msgid "auth.login-here" msgstr "여기서 로그인하세요" From 4781cf1037078415f337d1c246bdb6d217a5b199 Mon Sep 17 00:00:00 2001 From: Anonymous Date: Mon, 17 Jun 2024 08:04:35 +0000 Subject: [PATCH 180/476] :globe_with_meridians: Add translations for: Latvian. Currently translated at 96.3% (1357 of 1408 strings) Translation: Penpot/frontend Translate-URL: https://hosted.weblate.org/projects/penpot/frontend/lv/ --- frontend/translations/lv.po | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/frontend/translations/lv.po b/frontend/translations/lv.po index 54a3a9381e..bb7a0d34bb 100644 --- a/frontend/translations/lv.po +++ b/frontend/translations/lv.po @@ -1,16 +1,16 @@ msgid "" msgstr "" -"PO-Revision-Date: 2024-04-25 13:07+0000\n" -"Last-Translator: Edgars Andersons \n" -"Language-Team: Latvian " -"\n" +"PO-Revision-Date: 2024-06-17 08:07+0000\n" +"Last-Translator: Anonymous \n" +"Language-Team: Latvian \n" "Language: lv\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=3; plural=(n % 10 == 0 || n % 100 >= 11 && n % 100 " -"<= 19) ? 0 : ((n % 10 == 1 && n % 100 != 11) ? 1 : 2);\n" -"X-Generator: Weblate 5.5.1-dev\n" +"Plural-Forms: nplurals=3; plural=(n % 10 == 0 || n % 100 >= 11 && n % 100 <= " +"19) ? 0 : ((n % 10 == 1 && n % 100 != 11) ? 1 : 2);\n" +"X-Generator: Weblate 5.6-dev\n" #: src/app/main/ui/auth/register.cljs msgid "auth.already-have-account" @@ -53,6 +53,7 @@ msgid "auth.login-account-title" msgstr "Pieteikties manā kontā" #: src/app/main/ui/auth/register.cljs +#, fuzzy msgid "auth.login-here" msgstr "Pieteikties šeit" From 542ad58c32d672d22cbc682956e5955c6b9fcf3a Mon Sep 17 00:00:00 2001 From: Anonymous Date: Mon, 17 Jun 2024 08:04:48 +0000 Subject: [PATCH 181/476] :globe_with_meridians: Add translations for: Dutch. Currently translated at 96.7% (1362 of 1408 strings) Translation: Penpot/frontend Translate-URL: https://hosted.weblate.org/projects/penpot/frontend/nl/ --- frontend/translations/nl.po | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/frontend/translations/nl.po b/frontend/translations/nl.po index e3201b6b2c..7e3bf1d07e 100644 --- a/frontend/translations/nl.po +++ b/frontend/translations/nl.po @@ -1,7 +1,7 @@ msgid "" msgstr "" -"PO-Revision-Date: 2024-06-06 17:09+0000\n" -"Last-Translator: Stephan Paternotte \n" +"PO-Revision-Date: 2024-06-17 08:07+0000\n" +"Last-Translator: Anonymous \n" "Language-Team: Dutch \n" "Language: nl\n" @@ -52,6 +52,7 @@ msgid "auth.login-account-title" msgstr "Log in op mijn account" #: src/app/main/ui/auth/register.cljs +#, fuzzy msgid "auth.login-here" msgstr "Hier inloggen" From 6ee844b48f0d27c3533a5fd9b1667bd5d8ffbbbd Mon Sep 17 00:00:00 2001 From: Anonymous Date: Mon, 17 Jun 2024 08:03:10 +0000 Subject: [PATCH 182/476] :globe_with_meridians: Add translations for: Afrikaans. Currently translated at 6.8% (97 of 1408 strings) Translation: Penpot/frontend Translate-URL: https://hosted.weblate.org/projects/penpot/frontend/af/ --- frontend/translations/af.po | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/frontend/translations/af.po b/frontend/translations/af.po index c89780ede4..5f940756e8 100644 --- a/frontend/translations/af.po +++ b/frontend/translations/af.po @@ -1,15 +1,15 @@ msgid "" msgstr "" -"PO-Revision-Date: 2023-10-13 18:01+0000\n" -"Last-Translator: Hugo Vermaak \n" -"Language-Team: Afrikaans " -"\n" +"PO-Revision-Date: 2024-06-17 08:07+0000\n" +"Last-Translator: Anonymous \n" +"Language-Team: Afrikaans \n" "Language: af\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 5.1-dev\n" +"X-Generator: Weblate 5.6-dev\n" #: src/app/main/ui/auth/register.cljs msgid "auth.already-have-account" @@ -48,6 +48,7 @@ msgid "auth.fullname" msgstr "Volle naam" #: src/app/main/ui/auth/register.cljs +#, fuzzy msgid "auth.login-here" msgstr "Meld hier aan" From 52c00367d7305efc806d7f8f5868246f77fa84f7 Mon Sep 17 00:00:00 2001 From: Anonymous Date: Mon, 17 Jun 2024 08:04:06 +0000 Subject: [PATCH 183/476] :globe_with_meridians: Add translations for: Hausa. Currently translated at 89.9% (1267 of 1408 strings) Translation: Penpot/frontend Translate-URL: https://hosted.weblate.org/projects/penpot/frontend/ha/ --- frontend/translations/ha.po | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/frontend/translations/ha.po b/frontend/translations/ha.po index ba5860e44b..858165e3c4 100644 --- a/frontend/translations/ha.po +++ b/frontend/translations/ha.po @@ -1,6 +1,6 @@ msgid "" msgstr "" -"PO-Revision-Date: 2024-06-05 10:42+0000\n" +"PO-Revision-Date: 2024-06-17 08:07+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Hausa \n" @@ -48,6 +48,7 @@ msgid "auth.fullname" msgstr "cikakken suna" #: src/app/main/ui/auth/register.cljs +#, fuzzy msgid "auth.login-here" msgstr "shiga nan" From d2c63e085770f66d377c2e367c66ffcd4b8776f4 Mon Sep 17 00:00:00 2001 From: Anonymous Date: Mon, 17 Jun 2024 08:03:46 +0000 Subject: [PATCH 184/476] :globe_with_meridians: Add translations for: Spanish (Latin America). Currently translated at 9.5% (134 of 1408 strings) Translation: Penpot/frontend Translate-URL: https://hosted.weblate.org/projects/penpot/frontend/es_419/ --- frontend/translations/es_419.po | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/frontend/translations/es_419.po b/frontend/translations/es_419.po index 912b0ed04c..97dfd69884 100644 --- a/frontend/translations/es_419.po +++ b/frontend/translations/es_419.po @@ -1,15 +1,15 @@ msgid "" msgstr "" -"PO-Revision-Date: 2024-02-02 13:01+0000\n" -"Last-Translator: Yessenia Villarte Vaca \n" -"Language-Team: Spanish (Latin America) " -"\n" +"PO-Revision-Date: 2024-06-17 08:07+0000\n" +"Last-Translator: Anonymous \n" +"Language-Team: Spanish (Latin America) \n" "Language: es_419\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 5.4-dev\n" +"X-Generator: Weblate 5.6-dev\n" #: src/app/main/ui/auth/register.cljs msgid "auth.already-have-account" @@ -48,6 +48,7 @@ msgid "auth.fullname" msgstr "Nombre completo" #: src/app/main/ui/auth/register.cljs +#, fuzzy msgid "auth.login-here" msgstr "Inicie sesión aquí" From d3e9fd9a36b47963068edd96d036b9a31c0b5a00 Mon Sep 17 00:00:00 2001 From: Anonymous Date: Mon, 17 Jun 2024 08:04:40 +0000 Subject: [PATCH 185/476] :globe_with_meridians: Add translations for: Malay. Currently translated at 48.1% (678 of 1408 strings) Translation: Penpot/frontend Translate-URL: https://hosted.weblate.org/projects/penpot/frontend/ms/ --- frontend/translations/ms.po | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/frontend/translations/ms.po b/frontend/translations/ms.po index fe3f231b89..3e07cb73f4 100644 --- a/frontend/translations/ms.po +++ b/frontend/translations/ms.po @@ -1,15 +1,15 @@ msgid "" msgstr "" -"PO-Revision-Date: 2024-04-24 12:55+0000\n" +"PO-Revision-Date: 2024-06-17 08:07+0000\n" "Last-Translator: Anonymous \n" -"Language-Team: Malay " -"\n" +"Language-Team: Malay \n" "Language: ms\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 5.5.1-dev\n" +"X-Generator: Weblate 5.6-dev\n" #: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.create-demo-account" @@ -34,6 +34,7 @@ msgid "auth.fullname" msgstr "Nama penuh" #: src/app/main/ui/auth/register.cljs +#, fuzzy msgid "auth.login-here" msgstr "Log masuk disini" From 9c4a310d84088cc184383b735b06d2bbf7dbdd35 Mon Sep 17 00:00:00 2001 From: Anonymous Date: Mon, 17 Jun 2024 08:04:23 +0000 Subject: [PATCH 186/476] :globe_with_meridians: Add translations for: Igbo. Currently translated at 37.1% (523 of 1408 strings) Translation: Penpot/frontend Translate-URL: https://hosted.weblate.org/projects/penpot/frontend/ig/ --- frontend/translations/ig.po | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/frontend/translations/ig.po b/frontend/translations/ig.po index 8e3db116d9..6eb4ae1cbe 100644 --- a/frontend/translations/ig.po +++ b/frontend/translations/ig.po @@ -1,6 +1,6 @@ msgid "" msgstr "" -"PO-Revision-Date: 2024-06-05 10:42+0000\n" +"PO-Revision-Date: 2024-06-17 08:07+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Igbo " "\n" @@ -42,6 +42,7 @@ msgid "auth.fullname" msgstr "Aha n'uju" #: src/app/main/ui/auth/register.cljs +#, fuzzy msgid "auth.login-here" msgstr "Banye ebe a" From 1225d72917cff69136297285403932fd618fa537 Mon Sep 17 00:00:00 2001 From: Anonymous Date: Mon, 17 Jun 2024 08:05:13 +0000 Subject: [PATCH 187/476] :globe_with_meridians: Add translations for: Yoruba. Currently translated at 85.2% (1200 of 1408 strings) Translation: Penpot/frontend Translate-URL: https://hosted.weblate.org/projects/penpot/frontend/yo/ --- frontend/translations/yo.po | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/frontend/translations/yo.po b/frontend/translations/yo.po index b917127603..ab6e5baedd 100644 --- a/frontend/translations/yo.po +++ b/frontend/translations/yo.po @@ -1,6 +1,6 @@ msgid "" msgstr "" -"PO-Revision-Date: 2024-06-05 10:42+0000\n" +"PO-Revision-Date: 2024-06-17 08:07+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Yoruba \n" @@ -44,6 +44,7 @@ msgid "auth.fullname" msgstr "orúkọ lẹ́kùnn-ún-rẹ́rẹ́" #: src/app/main/ui/auth/register.cljs +#, fuzzy msgid "auth.login-here" msgstr "wọlé síbí" From 2929783d35a80abd50f4cddae297c9c46213d254 Mon Sep 17 00:00:00 2001 From: Brendan Bell Date: Mon, 17 Jun 2024 00:58:44 +0100 Subject: [PATCH 188/476] :paperclip: Update docker-compose.yaml --- docker/images/docker-compose.yaml | 38 +++++++++++++++---------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/docker/images/docker-compose.yaml b/docker/images/docker-compose.yaml index fd7cd976fd..41dca3b7d9 100644 --- a/docker/images/docker-compose.yaml +++ b/docker/images/docker-compose.yaml @@ -12,7 +12,7 @@ volumes: services: ## Traefik service declaration example. Consider using it if you are going to expose - ## penpot to the internet or different host than `localhost`. + ## penpot to the internet, or a different host than `localhost`. # traefik: # image: traefik:v2.9 @@ -53,15 +53,15 @@ services: labels: - "traefik.enable=true" - ## HTTP: example of labels for the case if you are going to expose penpot to the - ## internet using only HTTP (without HTTPS) with traefik + ## HTTP: example of labels for the case where penpot will be exposed to the + ## internet with only HTTP (without HTTPS) using traefik. # - "traefik.http.routers.penpot-http.entrypoints=web" # - "traefik.http.routers.penpot-http.rule=Host(``)" # - "traefik.http.services.penpot-http.loadbalancer.server.port=80" - ## HTTPS: example of labels for the case if you are going to expose penpot to the - ## internet using with HTTPS using traefik + ## HTTPS: example of labels for the case where penpot will be exposed to the + ## internet with HTTPS using traefik. # - "traefik.http.middlewares.http-redirect.redirectscheme.scheme=https" # - "traefik.http.middlewares.http-redirect.redirectscheme.permanent=true" @@ -74,9 +74,9 @@ services: # - "traefik.http.routers.penpot-https.tls=true" # - "traefik.http.routers.penpot-https.tls.certresolver=letsencrypt" - ## Configuration envronment variables for frontend the container. In this case this + ## Configuration envronment variables for the frontend container. In this case, the ## container only needs the `PENPOT_FLAGS`. This environment variable is shared with - ## other services but not all flags are relevant to all services. + ## other services, but not all flags are relevant to all services. environment: ## Relevant flags for frontend: @@ -109,7 +109,7 @@ services: networks: - penpot - ## Configuration envronment variables for backend the + ## Configuration envronment variables for the backend ## container. environment: @@ -142,24 +142,24 @@ services: ## Penpot SECRET KEY. It serves as a master key from which other keys for subsystems ## (eg http sessions, or invitations) are derived. ## - ## If you leve it commented, all created sessions and invitations will + ## If you leave it commented, all created sessions and invitations will ## become invalid on container restart. ## - ## If you going to uncomment this, we recommend use here a trully randomly generated - ## 512 bits base64 encoded string. You can generate one with: + ## If you going to uncomment this, we recommend to use a trully randomly generated + ## 512 bits base64 encoded string here. You can generate one with: ## ## python3 -c "import secrets; print(secrets.token_urlsafe(64))" # - PENPOT_SECRET_KEY=my-insecure-key ## The PREPL host. Mainly used for external programatic access to penpot backend - ## (example: admin). By default it listen on `localhost` but if you are going to use + ## (example: admin). By default it will listen on `localhost` but if you are going to use ## the `admin`, you will need to uncomment this and set the host to `0.0.0.0`. # - PENPOT_PREPL_HOST=0.0.0.0 ## Public URI. If you are going to expose this instance to the internet and use it - ## under different domain than 'localhost', you will need to adjust it to the final + ## under a different domain than 'localhost', you will need to adjust it to the final ## domain. ## ## Consider using traefik and set the 'disable-secure-session-cookies' if you are @@ -195,16 +195,16 @@ services: # - PENPOT_STORAGE_ASSETS_S3_BUCKET= ## Telemetry. When enabled, a periodical process will send anonymous data about this - ## instance. Telemetry data will enable us to learn on how the application is used, + ## instance. Telemetry data will enable us to learn how the application is used, ## based on real scenarios. If you want to help us, please leave it enabled. You can - ## audit what data we send with the code available on github + ## audit what data we send with the code available on github. - PENPOT_TELEMETRY_ENABLED=true ## Example SMTP/Email configuration. By default, emails are sent to the mailcatch - ## service, but for production usage is recommended to setup a real SMTP + ## service, but for production usage it is recommended to setup a real SMTP ## provider. Emails are used to confirm user registrations & invitations. Look below - ## how mailcatch service is configured. + ## how the mailcatch service is configured. - PENPOT_SMTP_DEFAULT_FROM=no-reply@example.com - PENPOT_SMTP_DEFAULT_REPLY_TO=no-reply@example.com @@ -222,7 +222,7 @@ services: - penpot environment: - # Don't touch it; this uses internal docker network to + # Don't touch it; this uses an internal docker network to # communicate with the frontend. - PENPOT_PUBLIC_URI=http://penpot-frontend @@ -254,7 +254,7 @@ services: ## A mailcatch service, used as temporal SMTP server. You can access via HTTP to the ## port 1080 for read all emails the penpot platform has sent. Should be only used as a - ## temporal solution meanwhile you don't have a real SMTP provider configured. + ## temporal solution while no real SMTP provider is configured. penpot-mailcatch: image: sj26/mailcatcher:latest From 4546e98dc6039e8b0a0b8bbcd495c462c72e7746 Mon Sep 17 00:00:00 2001 From: Pablo Alba Date: Mon, 17 Jun 2024 14:48:15 +0200 Subject: [PATCH 189/476] Revert "Revert ":bug: Add validator and repair for duplicated slots"" This reverts commit e0906be6e7e7775f37b3488e1f1f1314790b6a4b. --- common/src/app/common/files/repair.cljc | 23 +++++++++++++++++++++++ common/src/app/common/files/validate.cljc | 15 +++++++++++++++ 2 files changed, 38 insertions(+) diff --git a/common/src/app/common/files/repair.cljc b/common/src/app/common/files/repair.cljc index c40b602275..9e9fc29d4b 100644 --- a/common/src/app/common/files/repair.cljc +++ b/common/src/app/common/files/repair.cljc @@ -473,6 +473,29 @@ (pcb/with-file-data file-data) (pcb/update-shapes [(:id shape)] repair-shape)))) +(defmethod repair-error :duplicate-slot + [_ {:keys [shape page-id] :as error} file-data _] + (let [page (ctpl/get-page file-data page-id) + childs (map #(get (:objects page) %) (:shapes shape)) + child-with-duplicate (let [result (reduce (fn [[seen duplicates] item] + (let [swap-slot (ctk/get-swap-slot item)] + (if (contains? seen swap-slot) + [seen (conj duplicates item)] + [(conj seen swap-slot) duplicates]))) + [#{} []] + childs)] + (second result)) + repair-shape + (fn [shape] + ;; Remove the swap slot + (log/debug :hint " -> remove swap-slot" :child-id (:id shape)) + (ctk/remove-swap-slot shape))] + + (log/dbg :hint "repairing shape :duplicated-slot" :id (:id shape) :name (:name shape) :page-id page-id) + (-> (pcb/empty-changes nil page-id) + (pcb/with-file-data file-data) + (pcb/update-shapes (map :id child-with-duplicate) repair-shape)))) + (defmethod repair-error :missing-slot [_ {:keys [shape page-id args] :as error} file-data _] (let [repair-shape diff --git a/common/src/app/common/files/validate.cljc b/common/src/app/common/files/validate.cljc index 7caceed496..cd4f3b43ae 100644 --- a/common/src/app/common/files/validate.cljc +++ b/common/src/app/common/files/validate.cljc @@ -34,6 +34,7 @@ :component-not-main :component-main-external :component-not-found + :duplicate-slot :invalid-main-instance-id :invalid-main-instance-page :invalid-main-instance @@ -296,6 +297,18 @@ "This shape should not have swap slot" shape file page))) +(defn- check-duplicate-swap-slot + "Validate that the children of this shape does not have duplicated slots." + [shape file page] + (let [shapes (map #(get (:objects page) %) (:shapes shape)) + slots (->> (map #(ctk/get-swap-slot %) shapes) + (remove nil?)) + counts (frequencies slots)] + (when (some (fn [[_ count]] (> count 1)) counts) + (report-error :duplicate-slot + "This shape has children with the same swap slot" + shape file page)))) + (defn- check-shape-main-root-top "Root shape of a top main instance: @@ -308,6 +321,7 @@ (check-component-root shape file page) (check-component-not-ref shape file page) (check-empty-swap-slot shape file page) + (check-duplicate-swap-slot shape file page) (run! #(check-shape % file page libraries :context :main-top) (:shapes shape))) (defn- check-shape-main-root-nested @@ -335,6 +349,7 @@ (check-component-root shape file page) (check-component-ref shape file page libraries) (check-empty-swap-slot shape file page) + (check-duplicate-swap-slot shape file page) (run! #(check-shape % file page libraries :context :copy-top :library-exists library-exists) (:shapes shape)))) (defn- check-shape-copy-root-nested From 4e6c1857dd5d221b16c34c59d9bfc9baef026635 Mon Sep 17 00:00:00 2001 From: Pablo Alba Date: Mon, 17 Jun 2024 14:46:37 +0200 Subject: [PATCH 190/476] :bug: Add validator and repair for duplicated slots on deleted components --- common/src/app/common/files/repair.cljc | 30 +++++++++++++++++++ common/src/app/common/files/validate.cljc | 36 ++++++++++++++++------- 2 files changed, 56 insertions(+), 10 deletions(-) diff --git a/common/src/app/common/files/repair.cljc b/common/src/app/common/files/repair.cljc index 9e9fc29d4b..67f90dafeb 100644 --- a/common/src/app/common/files/repair.cljc +++ b/common/src/app/common/files/repair.cljc @@ -496,6 +496,36 @@ (pcb/with-file-data file-data) (pcb/update-shapes (map :id child-with-duplicate) repair-shape)))) + + +(defmethod repair-error :component-duplicate-slot + [_ {:keys [shape] :as error} file-data _] + (let [main-shape (get-in shape [:objects (:main-instance-id shape)]) + childs (map #(get (:objects shape) %) (:shapes main-shape)) + childs-with-duplicate (let [result (reduce (fn [[seen duplicates] item] + (let [swap-slot (ctk/get-swap-slot item)] + (if (contains? seen swap-slot) + [seen (conj duplicates item)] + [(conj seen swap-slot) duplicates]))) + [#{} []] + childs)] + (second result)) + duplicated-ids (set (mapv :id childs-with-duplicate)) + repair-component + (fn [component] + (let [objects (reduce-kv (fn [acc k v] + (if (contains? duplicated-ids k) + (assoc acc k (ctk/remove-swap-slot v)) + (assoc acc k v))) + {} + (:objects component))] + (assoc component :objects objects)))] + + (log/dbg :hint "repairing component :component-duplicated-slot" :id (:id shape) :name (:name shape)) + (-> (pcb/empty-changes nil) + (pcb/with-library-data file-data) + (pcb/update-component (:id shape) repair-component)))) + (defmethod repair-error :missing-slot [_ {:keys [shape page-id args] :as error} file-data _] (let [repair-shape diff --git a/common/src/app/common/files/validate.cljc b/common/src/app/common/files/validate.cljc index cd4f3b43ae..5eb708ab34 100644 --- a/common/src/app/common/files/validate.cljc +++ b/common/src/app/common/files/validate.cljc @@ -31,6 +31,7 @@ :child-not-found :frame-not-found :invalid-frame + :component-duplicate-slot :component-not-main :component-main-external :component-not-found @@ -65,7 +66,7 @@ [:shape {:optional true} :map] ; Cannot validate a shape because here it may be broken [:shape-id {:optional true} ::sm/uuid] [:file-id ::sm/uuid] - [:page-id ::sm/uuid]])) + [:page-id {:optional true} [:maybe ::sm/uuid]]])) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; ERROR HANDLING @@ -297,17 +298,21 @@ "This shape should not have swap slot" shape file page))) -(defn- check-duplicate-swap-slot - "Validate that the children of this shape does not have duplicated slots." - [shape file page] - (let [shapes (map #(get (:objects page) %) (:shapes shape)) +(defn- has-duplicate-swap-slot? + [shape container] + (let [shapes (map #(get (:objects container) %) (:shapes shape)) slots (->> (map #(ctk/get-swap-slot %) shapes) (remove nil?)) counts (frequencies slots)] - (when (some (fn [[_ count]] (> count 1)) counts) - (report-error :duplicate-slot - "This shape has children with the same swap slot" - shape file page)))) + (some (fn [[_ count]] (> count 1)) counts))) + +(defn- check-duplicate-swap-slot + "Validate that the children of this shape does not have duplicated slots." + [shape file page] + (when (has-duplicate-swap-slot? shape page) + (report-error :duplicate-slot + "This shape has children with the same swap slot" + shape file page))) (defn- check-shape-main-root-top "Root shape of a top main instance: @@ -468,13 +473,24 @@ shape file page) (check-shape-not-component shape file page libraries)))))))) +(defn check-component-duplicate-swap-slot + [component file] + (let [shape (get-in component [:objects (:main-instance-id component)])] + (when (has-duplicate-swap-slot? shape component) + (report-error :component-duplicate-slot + "This deleted component has children with the same swap slot" + component file nil)))) + + (defn- check-component "Validate semantic coherence of a component. Report all errors found." [component file] (when (and (contains? component :objects) (nil? (:objects component))) (report-error :component-nil-objects-not-allowed "Objects list cannot be nil" - component file nil))) + component file nil)) + (when (:deleted component) + (check-component-duplicate-swap-slot component file))) (defn- get-orphan-shapes [{:keys [objects] :as page}] From 293b460cab69f55f91a3356905bf949146b03be4 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Mon, 17 Jun 2024 15:56:06 +0200 Subject: [PATCH 191/476] :zap: Fix a performance regression with file validation with some features The feature fdata/pointer-map tracking mechanism interacts pretty bad with possible local mutations on the validation subsystem. The fix consist on disabling the tracking mechanism on the validation. --- backend/src/app/rpc/commands/files_update.clj | 22 ++++++++++--------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/backend/src/app/rpc/commands/files_update.clj b/backend/src/app/rpc/commands/files_update.clj index c9bf2aea9d..b071b3f1a3 100644 --- a/backend/src/app/rpc/commands/files_update.clj +++ b/backend/src/app/rpc/commands/files_update.clj @@ -324,19 +324,21 @@ (update :data cpc/process-changes changes) (update :data d/without-nils))] - (when (contains? cf/flags :soft-file-validation) - (soft-validate-file! file libs)) - (when (contains? cf/flags :soft-file-schema-validation) - (soft-validate-file-schema! file)) + (binding [pmap/*tracked* nil] + (when (contains? cf/flags :soft-file-validation) + (soft-validate-file! file libs)) - (when (and (contains? cf/flags :file-validation) - (not skip-validate)) - (val/validate-file! file libs)) + (when (contains? cf/flags :soft-file-schema-validation) + (soft-validate-file-schema! file)) - (when (and (contains? cf/flags :file-schema-validation) - (not skip-validate)) - (val/validate-file-schema! file)) + (when (and (contains? cf/flags :file-validation) + (not skip-validate)) + (val/validate-file! file libs)) + + (when (and (contains? cf/flags :file-schema-validation) + (not skip-validate)) + (val/validate-file-schema! file))) (cond-> file (contains? cfeat/*current* "fdata/objects-map") From 4e770fd326dbd89aa33b3b344e5b290fcafb6bec Mon Sep 17 00:00:00 2001 From: Eva Marco Date: Tue, 28 May 2024 10:29:52 +0200 Subject: [PATCH 192/476] :sparkles: Add visual testing to dashboard --- frontend/.gitignore | 2 + .../data/dashboard/create-access-token.json | 8 + .../dashboard/get-access-tokens-empty.json | 1 + .../data/dashboard/get-access-tokens.json | 8 + .../data/dashboard/get-font-variants.json | 15 + .../data/dashboard/get-projects-full.json | 19 + .../dashboard/get-shared-files-empty.json | 1 + .../data/dashboard/get-shared-files.json | 219 +++++++++ .../dashboard/get-team-invitations-empty.json | 1 + .../data/dashboard/get-team-invitations.json | 6 + .../data/dashboard/get-team-members.json | 16 + .../data/dashboard/get-team-recent-files.json | 29 ++ .../data/dashboard/get-team-stats.json | 1 + .../data/dashboard/get-webhooks-empty.json | 1 + .../data/dashboard/get-webhooks.json | 20 + .../data/dashboard/search-files-empty.json | 0 .../data/dashboard/search-files.json | 29 ++ .../logged-in-user/get-teams-complete.json | 48 ++ frontend/playwright/ui/pages/DashboardPage.js | 106 ++++- .../playwright/ui/specs/dashboard.spec.js | 6 +- .../playwright/ui/specs/onboarding.spec.js | 2 +- .../ui/visual-specs/visual-dashboard.spec.js | 423 ++++++++++++++++++ .../src/app/main/ui/dashboard/sidebar.cljs | 20 +- .../src/app/main/ui/dashboard/sidebar.scss | 2 + frontend/src/app/main/ui/dashboard/team.cljs | 3 +- .../src/app/main/ui/settings/sidebar.cljs | 1 + 26 files changed, 976 insertions(+), 11 deletions(-) create mode 100644 frontend/playwright/data/dashboard/create-access-token.json create mode 100644 frontend/playwright/data/dashboard/get-access-tokens-empty.json create mode 100644 frontend/playwright/data/dashboard/get-access-tokens.json create mode 100644 frontend/playwright/data/dashboard/get-font-variants.json create mode 100644 frontend/playwright/data/dashboard/get-projects-full.json create mode 100644 frontend/playwright/data/dashboard/get-shared-files-empty.json create mode 100644 frontend/playwright/data/dashboard/get-shared-files.json create mode 100644 frontend/playwright/data/dashboard/get-team-invitations-empty.json create mode 100644 frontend/playwright/data/dashboard/get-team-invitations.json create mode 100644 frontend/playwright/data/dashboard/get-team-members.json create mode 100644 frontend/playwright/data/dashboard/get-team-recent-files.json create mode 100644 frontend/playwright/data/dashboard/get-team-stats.json create mode 100644 frontend/playwright/data/dashboard/get-webhooks-empty.json create mode 100644 frontend/playwright/data/dashboard/get-webhooks.json create mode 100644 frontend/playwright/data/dashboard/search-files-empty.json create mode 100644 frontend/playwright/data/dashboard/search-files.json create mode 100644 frontend/playwright/data/logged-in-user/get-teams-complete.json create mode 100644 frontend/playwright/ui/visual-specs/visual-dashboard.spec.js diff --git a/frontend/.gitignore b/frontend/.gitignore index d69ed5d6f8..8d2f604e12 100644 --- a/frontend/.gitignore +++ b/frontend/.gitignore @@ -10,3 +10,5 @@ node_modules/ /playwright-report/ /blob-report/ /playwright/.cache/ +visual-dashboard.spec.js-snapshots + diff --git a/frontend/playwright/data/dashboard/create-access-token.json b/frontend/playwright/data/dashboard/create-access-token.json new file mode 100644 index 0000000000..395e5a1a99 --- /dev/null +++ b/frontend/playwright/data/dashboard/create-access-token.json @@ -0,0 +1,8 @@ +{ + "~:id": "~u62edaeb8-e212-81ca-8004-80a6f8a42e8e", + "~:profile-id": "~uc7ce0794-0992-8105-8004-38e630f29a9b", + "~:created-at": "~m1718348381840", + "~:updated-at": "~m1718348381840", + "~:name": "new token", + "~:token": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIn0.9aFN5YdOI-b-NQPos5uqF8J8b9iMyeri3yYhV5FlHuhNbRwk0YuftA.Dygx9O5-KsAHpuqD.ryTDCqelYOk1XYflTlDGFlzG8VLuElKHSGHdJyJvWqcCUANWzl8cVvezvU2GWg1Piin21KNrcV0TEcHPpDggySRbTn01MOIjw3vTVHdGrlHaVq5VpnWb5hCfs_P9kF7Y2IWOa4da4mM.IulvBQUllnay7clORd-NSg" +} diff --git a/frontend/playwright/data/dashboard/get-access-tokens-empty.json b/frontend/playwright/data/dashboard/get-access-tokens-empty.json new file mode 100644 index 0000000000..fe51488c70 --- /dev/null +++ b/frontend/playwright/data/dashboard/get-access-tokens-empty.json @@ -0,0 +1 @@ +[] diff --git a/frontend/playwright/data/dashboard/get-access-tokens.json b/frontend/playwright/data/dashboard/get-access-tokens.json new file mode 100644 index 0000000000..ec296ea8ab --- /dev/null +++ b/frontend/playwright/data/dashboard/get-access-tokens.json @@ -0,0 +1,8 @@ +[ + { + "~:id": "~u62edaeb8-e212-81ca-8004-80a6f8a42e8e", + "~:name": "new token", + "~:created-at": "~m1718348381840", + "~:updated-at": "~m1718348381840" + } +] diff --git a/frontend/playwright/data/dashboard/get-font-variants.json b/frontend/playwright/data/dashboard/get-font-variants.json new file mode 100644 index 0000000000..6a16ec574f --- /dev/null +++ b/frontend/playwright/data/dashboard/get-font-variants.json @@ -0,0 +1,15 @@ +[ + { + "~:font-style": "normal", + "~:team-id": "~uc7ce0794-0992-8105-8004-38e630f40f6d", + "~:font-id": "~u838cda51-c50f-8032-8004-6ac92ea6eaea", + "~:font-weight": 400, + "~:ttf-file-id": "~ue3710e43-7e40-405d-a4ea-8bb85443d44b", + "~:modified-at": "~m1716880956479", + "~:otf-file-id": "~u72bd3cda-478a-4e0e-a372-4a4f7cdc1371", + "~:id": "~u28f4b65f-3667-8087-8004-6ac93050433a", + "~:woff1-file-id": "~ua4c0a056-2eb6-47cc-bf80-3115d14e048d", + "~:created-at": "~m1716880956479", + "~:font-family": "Milligram Variable Trial" + } +] diff --git a/frontend/playwright/data/dashboard/get-projects-full.json b/frontend/playwright/data/dashboard/get-projects-full.json new file mode 100644 index 0000000000..491351e86c --- /dev/null +++ b/frontend/playwright/data/dashboard/get-projects-full.json @@ -0,0 +1,19 @@ +[{ + "~:id": "~ue5a24d1b-ef1e-812f-8004-52bab84be6f7", + "~:team-id": "~uc7ce0794-0992-8105-8004-38e630f40f6d", + "~:created-at": "~m1715266551088", + "~:modified-at": "~m1715266551088", + "~:is-default": false, + "~:name": "New Project 1", + "~:is-pinned": false, + "~:count": 1 +}, +{ + "~:id": "~uc7ce0794-0992-8105-8004-38e630f7920b", + "~:team-id": "~uc7ce0794-0992-8105-8004-38e630f40f6d", + "~:created-at": "~m1713533116382", + "~:modified-at": "~m1713873823633", + "~:is-default": true, + "~:name": "Drafts", + "~:count": 1 +}] diff --git a/frontend/playwright/data/dashboard/get-shared-files-empty.json b/frontend/playwright/data/dashboard/get-shared-files-empty.json new file mode 100644 index 0000000000..fe51488c70 --- /dev/null +++ b/frontend/playwright/data/dashboard/get-shared-files-empty.json @@ -0,0 +1 @@ +[] diff --git a/frontend/playwright/data/dashboard/get-shared-files.json b/frontend/playwright/data/dashboard/get-shared-files.json new file mode 100644 index 0000000000..3fffa07f45 --- /dev/null +++ b/frontend/playwright/data/dashboard/get-shared-files.json @@ -0,0 +1,219 @@ +{ + "~#set": [ + { + "~:name": "New File 3", + "~:revn": 1, + "~:id": "~u28f4b65f-3667-8087-8004-69eca173cc07", + "~:is-shared": true, + "~:project-id": "~ue5a24d1b-ef1e-812f-8004-52bab84be6f7", + "~:created-at": "~m1713518796912", + "~:modified-at": "~m1713519762931", + "~:library-summary": { + "~:components": { + "~:count": 1, + "~:sample": [ + { + "~:id": "~ua30724ae-f8d8-8003-8004-69ecacfc8a4c", + "~:name": "Rectangle", + "~:path": "", + "~:modified-at": "~m1716823150739", + "~:main-instance-id": "~ua30724ae-f8d8-8003-8004-69ecacfa2045", + "~:main-instance-page": "~u28f4b65f-3667-8087-8004-69eca173cc08", + "~:objects": { + "~ua30724ae-f8d8-8003-8004-69ecacfa2045": { + "~#shape": { + "~:y": 168, + "~:hide-fill-on-export": false, + "~:transform": { + "~#matrix": { + "~:a": 1.0, + "~:b": 0.0, + "~:c": 0.0, + "~:d": 1.0, + "~:e": 0.0, + "~:f": 0.0 + } + }, + "~:rotation": 0, + "~:hide-in-viewer": true, + "~:name": "Rectangle", + "~:width": 553, + "~:type": "~:frame", + "~:points": [ + { + "~#point": { + "~:x": 481, + "~:y": 168 + } + }, + { + "~#point": { + "~:x": 1034, + "~:y": 168 + } + }, + { + "~#point": { + "~:x": 1034, + "~:y": 550 + } + }, + { + "~#point": { + "~:x": 481, + "~:y": 550 + } + } + ], + "~:component-root": true, + "~:show-content": true, + "~:proportion-lock": false, + "~:transform-inverse": { + "~#matrix": { + "~:a": 1.0, + "~:b": 0.0, + "~:c": 0.0, + "~:d": 1.0, + "~:e": 0.0, + "~:f": 0.0 + } + }, + "~:id": "~ua30724ae-f8d8-8003-8004-69ecacfa2045", + "~:parent-id": "~u00000000-0000-0000-0000-000000000000", + "~:component-id": "~ua30724ae-f8d8-8003-8004-69ecacfc8a4c", + "~:frame-id": "~u00000000-0000-0000-0000-000000000000", + "~:strokes": [], + "~:x": 481, + "~:main-instance": true, + "~:proportion": 1, + "~:selrect": { + "~#rect": { + "~:x": 481, + "~:y": 168, + "~:width": 553, + "~:height": 382, + "~:x1": 481, + "~:y1": 168, + "~:x2": 1034, + "~:y2": 550 + } + }, + "~:fills": [], + "~:flip-x": null, + "~:height": 382, + "~:component-file": "~u28f4b65f-3667-8087-8004-69eca173cc07", + "~:flip-y": null, + "~:shapes": [ + "~ua30724ae-f8d8-8003-8004-69eca9b27c8c" + ] + } + }, + "~ua30724ae-f8d8-8003-8004-69eca9b27c8c": { + "~#shape": { + "~:y": 168, + "~:rx": 0, + "~:transform": { + "~#matrix": { + "~:a": 1.0, + "~:b": 0.0, + "~:c": 0.0, + "~:d": 1.0, + "~:e": 0.0, + "~:f": 0.0 + } + }, + "~:rotation": 0, + "~:grow-type": "~:fixed", + "~:hide-in-viewer": false, + "~:name": "Rectangle", + "~:width": 553, + "~:type": "~:rect", + "~:points": [ + { + "~#point": { + "~:x": 481, + "~:y": 168 + } + }, + { + "~#point": { + "~:x": 1034, + "~:y": 168 + } + }, + { + "~#point": { + "~:x": 1034, + "~:y": 550 + } + }, + { + "~#point": { + "~:x": 481, + "~:y": 550 + } + } + ], + "~:proportion-lock": false, + "~:transform-inverse": { + "~#matrix": { + "~:a": 1.0, + "~:b": 0.0, + "~:c": 0.0, + "~:d": 1.0, + "~:e": 0.0, + "~:f": 0.0 + } + }, + "~:constraints-v": "~:scale", + "~:constraints-h": "~:scale", + "~:id": "~ua30724ae-f8d8-8003-8004-69eca9b27c8c", + "~:parent-id": "~ua30724ae-f8d8-8003-8004-69ecacfa2045", + "~:frame-id": "~ua30724ae-f8d8-8003-8004-69ecacfa2045", + "~:strokes": [], + "~:x": 481, + "~:proportion": 1, + "~:selrect": { + "~#rect": { + "~:x": 481, + "~:y": 168, + "~:width": 553, + "~:height": 382, + "~:x1": 481, + "~:y1": 168, + "~:x2": 1034, + "~:y2": 550 + } + }, + "~:fills": [ + { + "~:fill-color": "#B1B2B5", + "~:fill-opacity": 1 + } + ], + "~:flip-x": null, + "~:ry": 0, + "~:height": 382, + "~:flip-y": null + } + } + } + } + ] + }, + "~:media": { + "~:count": 0, + "~:sample": [] + }, + "~:colors": { + "~:count": 0, + "~:sample": [] + }, + "~:typographies": { + "~:count": 0, + "~:sample": [] + } + } + } + ] +} diff --git a/frontend/playwright/data/dashboard/get-team-invitations-empty.json b/frontend/playwright/data/dashboard/get-team-invitations-empty.json new file mode 100644 index 0000000000..fe51488c70 --- /dev/null +++ b/frontend/playwright/data/dashboard/get-team-invitations-empty.json @@ -0,0 +1 @@ +[] diff --git a/frontend/playwright/data/dashboard/get-team-invitations.json b/frontend/playwright/data/dashboard/get-team-invitations.json new file mode 100644 index 0000000000..f7ac775438 --- /dev/null +++ b/frontend/playwright/data/dashboard/get-team-invitations.json @@ -0,0 +1,6 @@ +[ + { "~:email": "test1@mail.com", "~:role": "~:editor", "~:expired": true }, + { "~:email": "test2@mail.com", "~:role": "~:editor", "~:expired": false }, + { "~:email": "test3@mail.com", "~:role": "~:admin", "~:expired": true }, + { "~:email": "test4@mail.com", "~:role": "~:admin", "~:expired": false } +] diff --git a/frontend/playwright/data/dashboard/get-team-members.json b/frontend/playwright/data/dashboard/get-team-members.json new file mode 100644 index 0000000000..a869d5e34a --- /dev/null +++ b/frontend/playwright/data/dashboard/get-team-members.json @@ -0,0 +1,16 @@ +[ + { + "~:is-admin": true, + "~:email": "foo@example.com", + "~:team-id": "~udd33ff88-f4e5-8033-8003-8096cc07bdf3", + "~:name": "Princesa Leia", + "~:fullname": "Princesa Leia", + "~:is-owner": false, + "~:modified-at": "~m1713533116365", + "~:can-edit": true, + "~:is-active": true, + "~:id": "~uc7ce0794-0992-8105-8004-38e630f29a9b", + "~:profile-id": "~uf56647eb-19a7-8115-8003-b6bc939ecd1b", + "~:created-at": "~m1713533116365" + } +] diff --git a/frontend/playwright/data/dashboard/get-team-recent-files.json b/frontend/playwright/data/dashboard/get-team-recent-files.json new file mode 100644 index 0000000000..920bb2df00 --- /dev/null +++ b/frontend/playwright/data/dashboard/get-team-recent-files.json @@ -0,0 +1,29 @@ +[ + { + "~:id": "~u8b479b80-e02d-8074-8004-4088dc6bfd11", + "~:project-id": "~uc7ce0794-0992-8105-8004-38e630f7920b", + "~:created-at": "~m1714045521389", + "~:modified-at": "~m1714045654874", + "~:name": "New File 2", + "~:revn": 1, + "~:is-shared": false + }, + { + "~:id": "~u95d6fdd8-48d8-8148-8004-38af910d2dbe", + "~:project-id": "~uc7ce0794-0992-8105-8004-38e630f7920b", + "~:created-at": "~m1713518796912", + "~:modified-at": "~m1713519762931", + "~:name": "New File 1", + "~:revn": 1, + "~:is-shared": false + }, + { + "~:id": "~u28f4b65f-3667-8087-8004-69eca173cc07", + "~:project-id": "~ue5a24d1b-ef1e-812f-8004-52bab84be6f7", + "~:created-at": "~m1713518796912", + "~:modified-at": "~m1713519762931", + "~:name": "New File 3", + "~:revn": 1, + "~:is-shared": true + } +] diff --git a/frontend/playwright/data/dashboard/get-team-stats.json b/frontend/playwright/data/dashboard/get-team-stats.json new file mode 100644 index 0000000000..c984f1021f --- /dev/null +++ b/frontend/playwright/data/dashboard/get-team-stats.json @@ -0,0 +1 @@ +{"~:projects":1,"~:files":3} diff --git a/frontend/playwright/data/dashboard/get-webhooks-empty.json b/frontend/playwright/data/dashboard/get-webhooks-empty.json new file mode 100644 index 0000000000..fe51488c70 --- /dev/null +++ b/frontend/playwright/data/dashboard/get-webhooks-empty.json @@ -0,0 +1 @@ +[] diff --git a/frontend/playwright/data/dashboard/get-webhooks.json b/frontend/playwright/data/dashboard/get-webhooks.json new file mode 100644 index 0000000000..3849e36084 --- /dev/null +++ b/frontend/playwright/data/dashboard/get-webhooks.json @@ -0,0 +1,20 @@ +[ + { + "~:id": "~u29ce7ec9-e75d-81b4-8004-08100373558a", + "~:uri": { + "~#uri": "https://www.abc.es" + }, + "~:mtype": "application/json", + "~:is-active": false, + "~:error-count": 0 + }, + { + "~:id": "~u43d6b3b1-40f7-807b-8003-f9846292b4c7", + "~:uri": { + "~#uri": "https://www.google.com" + }, + "~:mtype": "application/json", + "~:is-active": true, + "~:error-count": 0 + } +] diff --git a/frontend/playwright/data/dashboard/search-files-empty.json b/frontend/playwright/data/dashboard/search-files-empty.json new file mode 100644 index 0000000000..e69de29bb2 diff --git a/frontend/playwright/data/dashboard/search-files.json b/frontend/playwright/data/dashboard/search-files.json new file mode 100644 index 0000000000..920bb2df00 --- /dev/null +++ b/frontend/playwright/data/dashboard/search-files.json @@ -0,0 +1,29 @@ +[ + { + "~:id": "~u8b479b80-e02d-8074-8004-4088dc6bfd11", + "~:project-id": "~uc7ce0794-0992-8105-8004-38e630f7920b", + "~:created-at": "~m1714045521389", + "~:modified-at": "~m1714045654874", + "~:name": "New File 2", + "~:revn": 1, + "~:is-shared": false + }, + { + "~:id": "~u95d6fdd8-48d8-8148-8004-38af910d2dbe", + "~:project-id": "~uc7ce0794-0992-8105-8004-38e630f7920b", + "~:created-at": "~m1713518796912", + "~:modified-at": "~m1713519762931", + "~:name": "New File 1", + "~:revn": 1, + "~:is-shared": false + }, + { + "~:id": "~u28f4b65f-3667-8087-8004-69eca173cc07", + "~:project-id": "~ue5a24d1b-ef1e-812f-8004-52bab84be6f7", + "~:created-at": "~m1713518796912", + "~:modified-at": "~m1713519762931", + "~:name": "New File 3", + "~:revn": 1, + "~:is-shared": true + } +] diff --git a/frontend/playwright/data/logged-in-user/get-teams-complete.json b/frontend/playwright/data/logged-in-user/get-teams-complete.json new file mode 100644 index 0000000000..910e1543f1 --- /dev/null +++ b/frontend/playwright/data/logged-in-user/get-teams-complete.json @@ -0,0 +1,48 @@ +[ + { + "~:features": { + "~#set": [ + "layout/grid", + "styles/v2", + "fdata/pointer-map", + "fdata/objects-map", + "components/v2", + "fdata/shape-data-type" + ] + }, + "~:permissions": { + "~:type": "~:membership", + "~:is-owner": true, + "~:is-admin": true, + "~:can-edit": true + }, + "~:name": "Default", + "~:modified-at": "~m1713533116375", + "~:id": "~uc7ce0794-0992-8105-8004-38e630f40f6d", + "~:created-at": "~m1713533116375", + "~:is-default": true +}, + { + "~:features": { + "~#set": [ + "layout/grid", + "styles/v2", + "fdata/pointer-map", + "fdata/objects-map", + "components/v2", + "fdata/shape-data-type" + ] + }, + "~:permissions": { + "~:type": "~:membership", + "~:is-owner": true, + "~:is-admin": true, + "~:can-edit": true + }, + "~:name": "Second team", + "~:modified-at": "~m1701164272671", + "~:id": "~udd33ff88-f4e5-8033-8003-8096cc07bdf3", + "~:created-at": "~m1701164272671", + "~:is-default": false + } +] diff --git a/frontend/playwright/ui/pages/DashboardPage.js b/frontend/playwright/ui/pages/DashboardPage.js index e83c62dd97..fbc373d3f3 100644 --- a/frontend/playwright/ui/pages/DashboardPage.js +++ b/frontend/playwright/ui/pages/DashboardPage.js @@ -50,6 +50,8 @@ export class DashboardPage extends BaseWebSocketPage { static anyTeamId = "c7ce0794-0992-8105-8004-38e630f40f6d"; + static secondTeamId = "dd33ff88-f4e5-8033-8003-8096cc07bdf3"; + static draftProjectId = "c7ce0794-0992-8105-8004-38e630f7920b"; constructor(page) { @@ -60,12 +62,34 @@ export class DashboardPage extends BaseWebSocketPage { this.draftTitle = page.getByRole("heading", { name: "Drafts" }); this.draftLink = page.getByTestId("drafts-link-sidebar"); this.draftsFile = page.getByText(/New File 1/); + this.fontsLink = page.getByTestId("fonts-link-sidebar"); + this.fontsTitle = page.getByRole("heading", { name: "Fonts", level: 1 }); + this.libsLink = page.getByTestId("libs-link-sidebar"); + this.libsTitle = page.getByRole("heading", { name: "Libraries", level: 1 }); + this.searchButton = page.getByRole("button", { name: "dashboard-search" }); + this.searchTitle = page.getByRole("heading", { name: "Search results" }); + this.searchInput = page.getByPlaceholder('Search…'); + this.newFileName = page.getByText("New File 3"); + this.teamDropdown = page.getByRole('button', { name: 'Your Penpot' }); + this.userAccount = page.getByRole('button', { name: "Princesa Leia Princesa Leia" }); + this.userProfileOption = page.getByText("Your account"); + this.userAccountTitle = page.getByRole("heading", {name: "Your account"}); } async setupDraftsEmpty() { await this.mockRPC("get-project-files?project-id=*", "dashboard/get-project-files-empty.json"); } + async setupSearchEmpty() { + await this.mockRPC("search-files", "dashboard/search-files-empty.json", { + method: "POST", + }); + } + + async setupLibrariesEmpty() { + await this.mockRPC("get-team-shared-files?team-id=*", "dashboard/get-shared-files-empty.json"); + } + async setupDrafts() { await this.mockRPC("get-project-files?project-id=*", "dashboard/get-project-files.json"); } @@ -74,15 +98,95 @@ export class DashboardPage extends BaseWebSocketPage { await this.mockRPC("create-project", "dashboard/create-project.json", { method: "POST" }); await this.mockRPC("get-projects?team-id=*", "dashboard/get-projects-new.json"); } - async goToWorkspace() { + + async setupDashboardFull() { + await this.mockRPC("get-projects?team-id=*", "dashboard/get-projects-full.json"); + await this.mockRPC("get-project-files?project-id=*", "dashboard/get-project-files.json"); + await this.mockRPC("get-team-shared-files?team-id=*", "dashboard/get-shared-files.json"); + await this.mockRPC("get-team-shared-files?project-id=*", "dashboard/get-shared-files.json"); + await this.mockRPC("get-team-recent-files?team-id=*", "dashboard/get-team-recent-files.json"); + await this.mockRPC("get-font-variants?team-id=*", "dashboard/get-font-variants.json"); + await this.mockRPC("search-files", "dashboard/search-files.json", { method: "POST" }); + await this.mockRPC("search-files", "dashboard/search-files.json" ); + await this.mockRPC("get-teams", "logged-in-user/get-teams-complete.json"); + } + + async setupAccessTokensEmpty() { + await this.mockRPC("get-access-tokens", "dashboard/get-access-tokens-empty.json"); + } + + async createAccessToken() { + await this.mockRPC("create-access-token", "dashboard/create-access-token.json", { method: "POST" }); + } + + async setupAccessTokens() { + await this.mockRPC("get-access-tokens", "dashboard/get-access-tokens.json"); + } + + async setupTeamInvitationsEmpty() { + await this.mockRPC("get-team-invitations?team-id=*", "dashboard/get-team-invitations-empty.json"); + } + + async setupTeamInvitations() { + await this.mockRPC("get-team-invitations?team-id=*", "dashboard/get-team-invitations.json"); + } + + async setupTeamWebhooksEmpty() { + await this.mockRPC("get-webhooks?team-id=*", "dashboard/get-webhooks-empty.json"); + } + + async setupTeamWebhooks() { + await this.mockRPC("get-webhooks?team-id=*", "dashboard/get-webhooks.json"); + } + + async setupTeamSettings() { + await this.mockRPC("get-team-stats?team-id=*", "dashboard/get-team-stats.json"); + } + + async goToDashboard() { await this.page.goto(`#/dashboard/team/${DashboardPage.anyTeamId}/projects`); } + async goToSecondTeamDashboard() { + await this.page.goto(`#/dashboard/team/${DashboardPage.secondTeamId}/projects`); + } + + async goToSecondTeamMembersSection() { + await this.page.goto(`#/dashboard/team/${DashboardPage.secondTeamId}/members`); + } + + async goToSecondTeamInvitationsSection() { + await this.page.goto(`#/dashboard/team/${DashboardPage.secondTeamId}/invitations`); + } + + async goToSecondTeamWebhooksSection() { + await this.page.goto(`#/dashboard/team/${DashboardPage.secondTeamId}/webhooks`); + } + + async goToSecondTeamWebhooksSection() { + await this.page.goto(`#/dashboard/team/${DashboardPage.secondTeamId}/webhooks`); + } + + async goToSecondTeamSettingsSection() { + await this.page.goto(`#/dashboard/team/${DashboardPage.secondTeamId}/settings`); + } + + async goToSearch() { + await this.page.goto(`#/dashboard/team/${DashboardPage.anyTeamId}/search`); + } + async goToDrafts() { await this.page.goto( `#/dashboard/team/${DashboardPage.anyTeamId}/projects/${DashboardPage.draftProjectId}`, ); } + + async goToAccount() { + + await this.userAccount.click(); + + await this.userProfileOption.click(); + } } export default DashboardPage; diff --git a/frontend/playwright/ui/specs/dashboard.spec.js b/frontend/playwright/ui/specs/dashboard.spec.js index 23e71efade..4cb381b4a3 100644 --- a/frontend/playwright/ui/specs/dashboard.spec.js +++ b/frontend/playwright/ui/specs/dashboard.spec.js @@ -13,7 +13,7 @@ test.beforeEach(async ({ page }) => { test("Dashboad page has title ", async ({ page }) => { const dashboardPage = new DashboardPage(page); - await dashboardPage.goToWorkspace(); + await dashboardPage.goToDashboard(); await expect(dashboardPage.page).toHaveURL(/dashboard/); await expect(dashboardPage.titleLabel).toBeVisible(); @@ -23,7 +23,7 @@ test("User can create a new project", async ({ page }) => { const dashboardPage = new DashboardPage(page); await dashboardPage.setupNewProject(); - await dashboardPage.goToWorkspace(); + await dashboardPage.goToDashboard(); await dashboardPage.addProjectBtn.click(); await expect(dashboardPage.projectName).toBeVisible(); @@ -33,7 +33,7 @@ test("User goes to draft page", async ({ page }) => { const dashboardPage = new DashboardPage(page); await dashboardPage.setupDraftsEmpty(); - await dashboardPage.goToWorkspace(); + await dashboardPage.goToDashboard(); await dashboardPage.draftLink.click(); await expect(dashboardPage.draftTitle).toBeVisible(); diff --git a/frontend/playwright/ui/specs/onboarding.spec.js b/frontend/playwright/ui/specs/onboarding.spec.js index 39efa967c0..68e00fc505 100644 --- a/frontend/playwright/ui/specs/onboarding.spec.js +++ b/frontend/playwright/ui/specs/onboarding.spec.js @@ -12,7 +12,7 @@ test("User can complete the onboarding", async ({ page }) => { const dashboardPage = new DashboardPage(page); const onboardingPage = new OnboardingPage(page); - await dashboardPage.goToWorkspace(); + await dashboardPage.goToDashboard(); await expect(page.getByRole("heading", { name: "Help us get to know you" })).toBeVisible(); await onboardingPage.fillOnboardingInputsStep1(); diff --git a/frontend/playwright/ui/visual-specs/visual-dashboard.spec.js b/frontend/playwright/ui/visual-specs/visual-dashboard.spec.js new file mode 100644 index 0000000000..faefbeb1bd --- /dev/null +++ b/frontend/playwright/ui/visual-specs/visual-dashboard.spec.js @@ -0,0 +1,423 @@ +import { test, expect } from "@playwright/test"; +import DashboardPage from "../pages/DashboardPage"; + +test.beforeEach(async ({ page }) => { + await DashboardPage.init(page); + await DashboardPage.mockRPC( + page, + "get-profile", + "logged-in-user/get-profile-logged-in-no-onboarding.json", + ); +}); + +test("User goes to an empty dashboard", async ({ page }) => { + const dashboardPage = new DashboardPage(page); + + await dashboardPage.goToDashboard(); + + await expect(dashboardPage.titleLabel).toBeVisible(); + await expect(dashboardPage.page).toHaveScreenshot(); +}); + +// Empty dashboard pages + +test("User goes to an empty draft page", async ({ page }) => { + const dashboardPage = new DashboardPage(page); + await dashboardPage.setupDraftsEmpty(); + + await dashboardPage.goToDashboard(); + await dashboardPage.draftLink.click(); + + await expect(dashboardPage.draftTitle).toBeVisible(); + await expect(dashboardPage.page).toHaveScreenshot(); +}); + +test("User goes to an empty fonts page", async ({ page }) => { + const dashboardPage = new DashboardPage(page); + + await dashboardPage.goToDashboard(); + await dashboardPage.fontsLink.click(); + + await expect(dashboardPage.fontsTitle).toBeVisible(); + await expect(dashboardPage.page).toHaveScreenshot(); +}); + +test("User goes to an empty libraries page", async ({ page }) => { + const dashboardPage = new DashboardPage(page); + await dashboardPage.setupLibrariesEmpty(); + + await dashboardPage.goToDashboard(); + await dashboardPage.libsLink.click(); + + await expect(dashboardPage.libsTitle).toBeVisible(); + await expect(dashboardPage.page).toHaveScreenshot(); +}); + +test("User goes to an empty search page", async ({ page }) => { + const dashboardPage = new DashboardPage(page); + await dashboardPage.setupSearchEmpty(); + + await dashboardPage.goToSearch(); + + await expect(dashboardPage.searchTitle).toBeVisible(); + await expect(dashboardPage.page).toHaveScreenshot(); +}); + +test("User goes to the dashboard with a new project", async ({ page }) => { + const dashboardPage = new DashboardPage(page); + await dashboardPage.setupNewProject(); + + await dashboardPage.goToDashboard(); + + await expect(dashboardPage.projectName).toBeVisible(); + await expect(dashboardPage.page).toHaveScreenshot(); +}); + +// Dashboard pages with content + +test("User goes to a full dashboard", async ({ page }) => { + const dashboardPage = new DashboardPage(page); + await dashboardPage.setupDashboardFull(); + + await dashboardPage.goToDashboard(); + + await expect(dashboardPage.draftsFile).toBeVisible(); + await expect(dashboardPage.page).toHaveScreenshot(); +}); + +test("User goes to an full draft page", async ({ page }) => { + const dashboardPage = new DashboardPage(page); + await dashboardPage.setupDashboardFull(); + + await dashboardPage.goToDashboard(); + await dashboardPage.draftLink.click(); + + await expect(dashboardPage.draftTitle).toBeVisible(); + await expect(dashboardPage.page).toHaveScreenshot(); +}); + +test("User goes to an full library page", async ({ page }) => { + const dashboardPage = new DashboardPage(page); + await dashboardPage.setupDashboardFull(); + + await dashboardPage.goToDashboard(); + await dashboardPage.libsLink.click(); + + await expect(dashboardPage.libsTitle).toBeVisible(); + await expect(dashboardPage.page).toHaveScreenshot(); +}); + +test("User goes to an full fonts page", async ({ page }) => { + const dashboardPage = new DashboardPage(page); + await dashboardPage.setupDashboardFull(); + + await dashboardPage.goToDashboard(); + await dashboardPage.fontsLink.click(); + + await expect(dashboardPage.fontsTitle).toBeVisible(); + await expect(dashboardPage.page).toHaveScreenshot(); +}); + +test("User goes to an full search page", async ({ page }) => { + const dashboardPage = new DashboardPage(page); + await dashboardPage.setupDashboardFull(); + + await dashboardPage.goToSearch(); + + await expect(dashboardPage.searchInput).toBeVisible(); + + await dashboardPage.searchInput.fill("New"); + + await expect(dashboardPage.searchTitle).toBeVisible(); + + await expect(dashboardPage.newFileName).toBeVisible(); + + await expect(dashboardPage.page).toHaveScreenshot(); +}); + +// Account management + +test("User opens user account", async ({ page }) => { + const dashboardPage = new DashboardPage(page); + + await dashboardPage.goToDashboard(); + + await expect(dashboardPage.userAccount).toBeVisible(); + + await dashboardPage.goToAccount(); + + await expect(dashboardPage.page).toHaveScreenshot(); +}); + +test("User goes to user profile", async ({ page }) => { + const dashboardPage = new DashboardPage(page); + + await dashboardPage.goToDashboard(); + + await dashboardPage.goToAccount(); + + await expect(dashboardPage.userAccountTitle).toBeVisible(); + + await expect(dashboardPage.page).toHaveScreenshot(); +}); + +test("User goes to password management section", async ({ page }) => { + const dashboardPage = new DashboardPage(page); + + await dashboardPage.goToDashboard(); + + await dashboardPage.goToAccount(); + + await page.getByText("Password").click(); + + await expect(page.getByRole("heading", { name: "Change Password" })).toBeVisible(); + + await expect(dashboardPage.page).toHaveScreenshot(); +}); + +test("User goes to settings section", async ({ page }) => { + const dashboardPage = new DashboardPage(page); + + await dashboardPage.goToDashboard(); + + await dashboardPage.goToAccount(); + + await page.getByTestId("settings-profile").click(); + + await expect(page.getByRole("heading", { name: "Settings" })).toBeVisible(); + + await expect(dashboardPage.page).toHaveScreenshot(); +}); + +test("User goes to an empty access tokens secction", async ({ page }) => { + const dashboardPage = new DashboardPage(page); + + await dashboardPage.goToDashboard(); + + await dashboardPage.setupAccessTokensEmpty(); + + await dashboardPage.goToAccount(); + + await page.getByText("Access tokens").click(); + + await expect(page.getByRole("heading", { name: "Personal access tokens" })).toBeVisible(); + + await expect(dashboardPage.page).toHaveScreenshot(); +}); + +test("User can create an access token", async ({ page }) => { + const dashboardPage = new DashboardPage(page); + + await dashboardPage.goToDashboard(); + + await dashboardPage.setupAccessTokensEmpty(); + + await dashboardPage.goToAccount(); + + await page.getByText("Access tokens").click(); + + await expect(page.getByRole("heading", { name: "Personal access tokens" })).toBeVisible(); + + await page.getByRole("button", { name: "Generate New Token" }).click(); + + await dashboardPage.createAccessToken(); + + await expect(page.getByPlaceholder("The name can help to know")).toBeVisible(); + + await page.getByPlaceholder("The name can help to know").fill("New token"); + + await expect(page.getByRole("button", { name: "Create token" })).not.toBeDisabled(); + + await page.getByRole("button", { name: "Create token" }).click(); + + await expect(page.getByRole("button", { name: "Create token" })).not.toBeVisible(); + + await expect(dashboardPage.page).toHaveScreenshot(); +}); + +test("User goes to a full access tokens secction", async ({ page }) => { + const dashboardPage = new DashboardPage(page); + + await dashboardPage.goToDashboard(); + + await dashboardPage.setupAccessTokens(); + + await dashboardPage.goToAccount(); + + await page.getByText("Access tokens").click(); + + await expect(page.getByRole("heading", { name: "Personal access tokens" })).toBeVisible(); + + await expect(page.getByText("new token", { exact: true })).toBeVisible(); + + await expect(dashboardPage.page).toHaveScreenshot(); +}); + +test("User goes to the feedback secction", async ({ page }) => { + const dashboardPage = new DashboardPage(page); + + await dashboardPage.goToDashboard(); + + await dashboardPage.goToAccount(); + + await page.getByText("Give feedback").click(); + + await expect(page.getByRole("heading", { name: "Email" })).toBeVisible(); + + await expect(dashboardPage.page).toHaveScreenshot(); +}); + +// Teams management + +test("User opens teams selector with only one team", async ({ page }) => { + const dashboardPage = new DashboardPage(page); + + await dashboardPage.goToDashboard(); + + await expect(dashboardPage.titleLabel).toBeVisible(); + + await dashboardPage.teamDropdown.click(); + + await expect(page.getByText("Create new team")).toBeVisible(); + + await expect(dashboardPage.page).toHaveScreenshot(); +}); + +test("User opens teams selector with more than one team", async ({ page }) => { + const dashboardPage = new DashboardPage(page); + await dashboardPage.setupDashboardFull(); + + await dashboardPage.goToDashboard(); + + await expect(dashboardPage.titleLabel).toBeVisible(); + + await dashboardPage.teamDropdown.click(); + + await expect(page.getByText("Second Team")).toBeVisible(); + + await expect(dashboardPage.page).toHaveScreenshot(); +}); + +test("User goes to second team", async ({ page }) => { + const dashboardPage = new DashboardPage(page); + await dashboardPage.setupDashboardFull(); + + await dashboardPage.goToDashboard(); + + await dashboardPage.teamDropdown.click(); + + await expect(page.getByText("Second Team")).toBeVisible(); + + await page.getByText("Second Team").click(); + + await expect(page.getByText("Team Up")).toBeVisible(); + + await expect(dashboardPage.page).toHaveScreenshot(); +}); + +test("User opens team management dropdown", async ({ page }) => { + const dashboardPage = new DashboardPage(page); + await dashboardPage.setupDashboardFull(); + + await dashboardPage.goToSecondTeamDashboard(); + + await expect(page.getByText("Team Up")).toBeVisible(); + + await page.getByRole("button", { name: "team-management" }).click(); + + await expect(page.getByTestId("team-members")).toBeVisible(); + + await expect(dashboardPage.page).toHaveScreenshot(); +}); + +test("User goes to team management section", async ({ page }) => { + const dashboardPage = new DashboardPage(page); + await dashboardPage.setupDashboardFull(); + + await dashboardPage.goToSecondTeamMembersSection(); + + await expect(page.getByText("role")).toBeVisible(); + + await expect(dashboardPage.page).toHaveScreenshot(); +}); + +test("User goes to an empty invitations section", async ({ page }) => { + const dashboardPage = new DashboardPage(page); + await dashboardPage.setupDashboardFull(); + await dashboardPage.setupTeamInvitationsEmpty(); + + await dashboardPage.goToSecondTeamInvitationsSection(); + + await expect(page.getByText("No pending invitations")).toBeVisible(); + + await expect(dashboardPage.page).toHaveScreenshot(); +}); + +test("User goes to a complete invitations section", async ({ page }) => { + const dashboardPage = new DashboardPage(page); + await dashboardPage.setupDashboardFull(); + await dashboardPage.setupTeamInvitations(); + + await dashboardPage.goToSecondTeamInvitationsSection(); + + await expect(page.getByText("test1@mail.com")).toBeVisible(); + + await expect(dashboardPage.page).toHaveScreenshot(); +}); + + +test("User invite people to the team", async ({ page }) => { + const dashboardPage = new DashboardPage(page); + await dashboardPage.setupDashboardFull(); + await dashboardPage.setupTeamInvitationsEmpty(); + + await dashboardPage.goToSecondTeamInvitationsSection(); + + await expect(page.getByTestId("invite-member")).toBeVisible(); + + await page.getByTestId("invite-member").click(); + + await expect(page.getByText("Invite with the role")).toBeVisible(); + + await page.getByPlaceholder('Emails, comma separated').fill("test5@mail.com"); + + await expect(page.getByText("Send invitation")).not.toBeDisabled(); + + await expect(dashboardPage.page).toHaveScreenshot(); +}); + +test("User goes to an empty webhook section", async ({ page }) => { + const dashboardPage = new DashboardPage(page); + await dashboardPage.setupDashboardFull(); + await dashboardPage.setupTeamWebhooksEmpty(); + + await dashboardPage.goToSecondTeamWebhooksSection(); + + await expect(page.getByText("No webhooks created so far.")).toBeVisible(); + + await expect(dashboardPage.page).toHaveScreenshot(); +}); + +test("User goes to a complete webhook section", async ({ page }) => { + const dashboardPage = new DashboardPage(page); + await dashboardPage.setupDashboardFull(); + await dashboardPage.setupTeamWebhooks(); + + await dashboardPage.goToSecondTeamWebhooksSection(); + + await expect(page.getByText("https://www.google.com")).toBeVisible(); + + await expect(dashboardPage.page).toHaveScreenshot(); +}); + +test("User goes to the team settings section", async ({ page }) => { + const dashboardPage = new DashboardPage(page); + await dashboardPage.setupDashboardFull(); + await dashboardPage.setupTeamSettings(); + + await dashboardPage.goToSecondTeamSettingsSection(); + + await expect(page.getByText("TEAM INFO")).toBeVisible(); + + await expect(dashboardPage.page).toHaveScreenshot(); +}); diff --git a/frontend/src/app/main/ui/dashboard/sidebar.cljs b/frontend/src/app/main/ui/dashboard/sidebar.cljs index 10cfd2f5c8..0862eb17ea 100644 --- a/frontend/src/app/main/ui/dashboard/sidebar.cljs +++ b/frontend/src/app/main/ui/dashboard/sidebar.cljs @@ -256,11 +256,13 @@ (if (or @focused? (seq search-term)) [:button {:class (stl/css :search-btn :clear-search-btn) :tab-index "0" + :aria-label "dashboard-clear-search" :on-click on-clear-click :on-key-down handle-clear-search} clear-search-icon] [:button {:class (stl/css :search-btn) + :aria-label "dashboard-search" :on-click on-clear-click} search-icon])])) @@ -504,11 +506,13 @@ :on-key-down handle-members :className (stl/css :team-options-item) :id "teams-options-members" + :data-testid "team-members" :data-test "team-members"} (tr "labels.members")] [:> dropdown-menu-item* {:on-click go-invitations :on-key-down handle-invitations :className (stl/css :team-options-item) + :data-testid "team-invitations" :id "teams-options-invitations" :data-test "team-invitations"} (tr "labels.invitations")] @@ -524,6 +528,7 @@ :on-key-down handle-settings :className (stl/css :team-options-item) :id "teams-options-settings" + :data-testid "team-settings" :data-test "team-settings"} (tr "labels.settings")] @@ -533,6 +538,7 @@ :on-key-down handle-rename :id "teams-options-rename" :className (stl/css :team-options-item) + :data-testid "rename-team" :data-test "rename-team"} (tr "labels.rename")]) @@ -550,6 +556,7 @@ :on-key-down handle-leave-as-owner-clicked :id "teams-options-leave-team" :className (stl/css :team-options-item) + :data-testid "leave-team" :data-test "leave-team"} (tr "dashboard.leave-team")] @@ -654,6 +661,7 @@ (when-not (:is-default team) [:button {:class (stl/css :switch-options) :on-click handle-show-opts-click + :aria-label "team-management" :tab-index "0" :on-key-down handle-show-opts-keydown} menu-icon])] @@ -792,6 +800,7 @@ [:li {:class (stl/css-case :current libs? :sidebar-nav-item true)} [:& link {:action go-libs + :data-testid "libs-link-sidebar" :class (stl/css :sidebar-link) :keyboard-action go-libs-with-key} [:span {:class (stl/css :element-title)} (tr "labels.shared-libraries")]]]]] @@ -803,6 +812,7 @@ :current fonts?)} [:& link {:action go-fonts :class (stl/css :sidebar-link) + :data-testid "fonts-link-sidebar" :keyboard-action go-fonts-with-key :data-test "fonts"} [:span {:class (stl/css :element-title)} (tr "labels.fonts")]]]]] @@ -946,11 +956,11 @@ :on-hide-comments handle-hide-comments}]) [:div {:class (stl/css :profile-section)} - [:div {:class (stl/css :profile) - :tab-index "0" - :on-click handle-click - :on-key-down handle-key-down - :data-test "profile-btn"} + [:button {:class (stl/css :profile) + :tab-index "0" + :on-click handle-click + :on-key-down handle-key-down + :data-test "profile-btn"} [:img {:src photo :class (stl/css :profile-img) :alt (:fullname profile)}] diff --git a/frontend/src/app/main/ui/dashboard/sidebar.scss b/frontend/src/app/main/ui/dashboard/sidebar.scss index f939c8d442..22a0a3c9c6 100644 --- a/frontend/src/app/main/ui/dashboard/sidebar.scss +++ b/frontend/src/app/main/ui/dashboard/sidebar.scss @@ -331,10 +331,12 @@ } .profile { + @include buttonStyle; display: grid; grid-template-columns: auto 1fr; gap: $s-8; cursor: pointer; + text-align: left; } .profile-fullname { diff --git a/frontend/src/app/main/ui/dashboard/team.cljs b/frontend/src/app/main/ui/dashboard/team.cljs index 76652e98ae..380a07da2c 100644 --- a/frontend/src/app/main/ui/dashboard/team.cljs +++ b/frontend/src/app/main/ui/dashboard/team.cljs @@ -105,7 +105,8 @@ [:a {:class (stl/css :btn-secondary :btn-small) :on-click on-invite-member - :data-test "invite-member"} + :data-test "invite-member" + :data-testid "invite-member"} (tr "dashboard.invite-profile")] [:div {:class (stl/css :blank-space)}])]])) diff --git a/frontend/src/app/main/ui/settings/sidebar.cljs b/frontend/src/app/main/ui/settings/sidebar.cljs index c878c7b4bc..6b6bed60db 100644 --- a/frontend/src/app/main/ui/settings/sidebar.cljs +++ b/frontend/src/app/main/ui/settings/sidebar.cljs @@ -89,6 +89,7 @@ [:li {:class (stl/css-case :current options? :settings-item true) :on-click go-settings-options + :data-testid "settings-profile" :data-test "settings-profile"} [:span {:class (stl/css :element-title)} (tr "labels.settings")]] From 3e657874d7c93b53e381be165f4a06e299cbab0c Mon Sep 17 00:00:00 2001 From: Alejandro Alonso Date: Tue, 18 Jun 2024 13:59:57 +0200 Subject: [PATCH 193/476] :bug: Create resources/public/css/ on run-devenv --- frontend/scripts/watch.js | 1 + 1 file changed, 1 insertion(+) diff --git a/frontend/scripts/watch.js b/frontend/scripts/watch.js index bdbe537208..f2c6b376cb 100644 --- a/frontend/scripts/watch.js +++ b/frontend/scripts/watch.js @@ -35,6 +35,7 @@ async function compileSass(path) { log.info("done:", `(${ppt(end)})`); } +await fs.mkdir("./resources/public/css/", { recursive: true }); await compileSassAll(); await h.copyAssets() await h.compileSvgSprites() From d039df6b7378662a6df1ff89c9e8bb767c76d30b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9s=20Moya?= Date: Tue, 18 Jun 2024 13:07:34 +0200 Subject: [PATCH 194/476] :white_check_mark: Add tests for detach with swapped copies --- .../app/common/test_helpers/components.cljc | 32 +-- .../app/common/test_helpers/compositions.cljc | 22 ++ common/test/cases/detach-with-swap.penpot | Bin 0 -> 20015 bytes common/test/cases/remove-swap-slots.penpot | Bin 0 -> 12794 bytes .../logic/comp_detach_with_swap_test.cljc | 197 ++++++++++++++++++ .../logic/comp_remove_swap_slots_test.cljc | 1 - 6 files changed, 238 insertions(+), 14 deletions(-) create mode 100644 common/test/cases/detach-with-swap.penpot create mode 100644 common/test/cases/remove-swap-slots.penpot create mode 100644 common/test/common_tests/logic/comp_detach_with_swap_test.cljc diff --git a/common/src/app/common/test_helpers/components.cljc b/common/src/app/common/test_helpers/components.cljc index dadd2feac4..150bbeeb4d 100644 --- a/common/src/app/common/test_helpers/components.cljc +++ b/common/src/app/common/test_helpers/components.cljc @@ -6,6 +6,7 @@ (ns app.common.test-helpers.components (:require + [app.common.data :as d] [app.common.data.macros :as dm] [app.common.files.changes-builder :as pcb] [app.common.files.helpers :as cfh] @@ -64,13 +65,12 @@ [file id] (ctkl/get-component (:data file) id)) -(defn set-child-label - [file shape-label child-idx label] - (let [id (-> (ths/get-shape file shape-label) - :shapes - (nth child-idx))] - (when id - (thi/set-id! label id)))) +(defn- set-children-labels! + [file shape-label children-labels] + (doseq [[label id] + (d/zip children-labels (cfh/get-children-ids (-> (thf/current-page file) :objects) + (thi/id shape-label)))] + (thi/set-id! label id))) (defn instantiate-component [file component-label copy-root-label & {:keys [parent-label library children-labels] :as params}] @@ -103,6 +103,7 @@ (and (some? parent) (ctn/in-any-component? (:objects page) parent)) (dissoc :component-root)) + file' (ctf/update-file-data file (fn [file-data] @@ -128,14 +129,14 @@ true))) $ (remove #(= (:id %) (:id copy-root')) copy-shapes)))))] + (when children-labels - (dotimes [idx (count children-labels)] - (set-child-label file' copy-root-label idx (nth children-labels idx)))) + (set-children-labels! file' copy-root-label children-labels)) file')) (defn component-swap - [file shape-label new-component-label new-shape-label & {:keys [library] :as params}] + [file shape-label new-component-label new-shape-label & {:keys [library children-labels] :as params}] (let [shape (ths/get-shape file shape-label) library (or library file) libraries {(:id library) library} @@ -147,10 +148,15 @@ ;; Store the properties that need to be maintained when the component is swapped keep-props-values (select-keys shape ctk/swap-keep-attrs) - [new_shape _ changes] (-> (pcb/empty-changes nil (:id page)) - (cll/generate-component-swap objects shape (:data file) page libraries id-new-component 0 nil keep-props-values))] + (cll/generate-component-swap objects shape (:data file) page libraries id-new-component 0 nil keep-props-values)) + + file' (thf/apply-changes file changes)] (thi/set-id! new-shape-label (:id new_shape)) - (thf/apply-changes file changes))) + + (when children-labels + (set-children-labels! file' new-shape-label children-labels)) + + file')) diff --git a/common/src/app/common/test_helpers/compositions.cljc b/common/src/app/common/test_helpers/compositions.cljc index 6d89fa4752..82ebf5c58c 100644 --- a/common/src/app/common/test_helpers/compositions.cljc +++ b/common/src/app/common/test_helpers/compositions.cljc @@ -58,6 +58,28 @@ :parent-label frame-label} child-params)))) +(defn add-minimal-component + [file component-label root-label + & {:keys [component-params root-params]}] + ;; Generated shape tree: + ;; {:root-label} [:name Frame1] # [Component :component-label] + (-> file + (add-frame root-label root-params) + (thc/make-component component-label root-label component-params))) + +(defn add-minimal-component-with-copy + [file component-label main-root-label copy-root-label + & {:keys [component-params main-root-params copy-root-params]}] + ;; Generated shape tree: + ;; {:main-root-label} [:name Frame1] # [Component :component-label] + ;; :copy-root-label [:name Frame1] #--> [Component :component-label] :main-root-label + (-> file + (add-minimal-component component-label + main-root-label + :component-params component-params + :root-params main-root-params) + (thc/instantiate-component component-label copy-root-label copy-root-params))) + (defn add-simple-component [file component-label root-label child-label & {:keys [component-params root-params child-params]}] diff --git a/common/test/cases/detach-with-swap.penpot b/common/test/cases/detach-with-swap.penpot new file mode 100644 index 0000000000000000000000000000000000000000..2ff274b6d5d66acb190d02c7d0acb811d310874f GIT binary patch literal 20015 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 V^qDQ<+;Tl>8I)HskpOG~006U*nx+5% literal 0 HcmV?d00001 diff --git a/common/test/cases/remove-swap-slots.penpot b/common/test/cases/remove-swap-slots.penpot new file mode 100644 index 0000000000000000000000000000000000000000..0de71803b11f28a7330dd6fee443440a4211c57f GIT binary patch literal 12794 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

    M25y{_;xN# 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�po;SF!JwUV*?9T~r@hXHpu<`nV=g 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 { + await WorkspacePage.init(page); +}); + +const setupFileWithAssets = async (workspace) => { + const fileId = "015fda4f-caa6-8103-8004-862a00dd4f31"; + const pageId = "015fda4f-caa6-8103-8004-862a00ddbe94"; + const fragments = { + "015fda4f-caa6-8103-8004-862a9e4b4d4b": "assets/get-file-fragment-with-assets-components.json", + "015fda4f-caa6-8103-8004-862a9e4ad279": "assets/get-file-fragmnet-with-assets-page.json", + }; + + await workspace.setupEmptyFile(); + await workspace.mockRPC(/get\-file\?/, "assets/get-file-with-assets.json"); + + for (const [id, fixture] of Object.entries(fragments)) { + await workspace.mockRPC(`get-file-fragment?file-id=*&fragment-id=${id}`, fixture); + } + + return { fileId, pageId }; +}; + +test("Shows the workspace correctly for a blank file", async ({ page }) => { + const workspace = new WorkspacePage(page); + await workspace.setupEmptyFile(); + + await workspace.goToWorkspace(); + + await expect(workspace.page).toHaveScreenshot(); +}); + +test.describe("Design tab", () => { + test("Shows the design tab when selecting a shape", async ({ page }) => { + const workspace = new WorkspacePage(page); + await workspace.setupEmptyFile(); + await workspace.mockRPC(/get\-file\?/, "workspace/get-file-not-empty.json"); + + await workspace.goToWorkspace({ + fileId: "6191cd35-bb1f-81f7-8004-7cc63d087374", + pageId: "6191cd35-bb1f-81f7-8004-7cc63d087375", + }); + + await workspace.clickLeafLayer("Rectangle"); + + await expect(workspace.page).toHaveScreenshot(); + }); + + test("Shows expanded sections of the design tab", async ({ page }) => { + const workspace = new WorkspacePage(page); + await workspace.setupEmptyFile(); + await workspace.mockRPC(/get\-file\?/, "workspace/get-file-not-empty.json"); + + await workspace.goToWorkspace({ + fileId: "6191cd35-bb1f-81f7-8004-7cc63d087374", + pageId: "6191cd35-bb1f-81f7-8004-7cc63d087375", + }); + + await workspace.clickLeafLayer("Rectangle"); + await workspace.rightSidebar.getByTestId("add-stroke").click(); + + await expect(workspace.page).toHaveScreenshot(); + }); +}); + +test.describe("Assets tab", () => { + test("Shows the libraries modal correctly", async ({ page }) => { + const workspace = new WorkspacePage(page); + await workspace.setupEmptyFile(); + await workspace.mockRPC("link-file-to-library", "workspace/link-file-to-library.json"); + await workspace.mockRPC( + "get-team-shared-files?team-id=*", + "workspace/get-team-shared-libraries-non-empty.json", + ); + + await workspace.goToWorkspace(); + await workspace.clickAssets(); + await workspace.openLibrariesModal(); + + await expect(workspace.page).toHaveScreenshot(); + + await workspace.clickLibrary("Testing library 1"); + + await expect(workspace.page).toHaveScreenshot(); + }); + + test("Shows the assets correctly", async ({ page }) => { + const workspace = new WorkspacePage(page); + const { fileId, pageId } = await setupFileWithAssets(workspace); + + await workspace.goToWorkspace({ fileId, pageId }); + + await workspace.clickAssets(); + await workspace.sidebar.getByRole("button", { name: "Components" }).click(); + await workspace.sidebar.getByRole("button", { name: "Colors" }).click(); + await workspace.sidebar.getByRole("button", { name: "Typographies" }).click(); + + await expect(workspace.page).toHaveScreenshot(); + + await workspace.sidebar.getByTitle("List view").click(); + + await expect(workspace.page).toHaveScreenshot(); + }); +}); + +test.describe("Palette", () => { + test("Shows the bottom palette expanded and collapsed", async ({ page }) => { + const workspace = new WorkspacePage(page); + const { fileId, pageId } = await setupFileWithAssets(workspace); + + await workspace.goToWorkspace({ fileId, pageId }); + + await expect(workspace.page).toHaveScreenshot(); + + await workspace.palette.getByRole("button", { name: "Typographies" }).click(); + await expect(workspace.palette.getByText("Source Sans Pro Regular")).toBeVisible(); + await expect(workspace.page).toHaveScreenshot(); + + await workspace.palette.getByRole("button", { name: "Color Palette" }).click(); + await expect(workspace.palette.getByRole("button", { name: "#7798ff" })).toBeVisible(); + }); +}); diff --git a/frontend/src/app/main/ui/workspace/sidebar.cljs b/frontend/src/app/main/ui/workspace/sidebar.cljs index 1aaf88c7b0..f83b566869 100644 --- a/frontend/src/app/main/ui/workspace/sidebar.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar.cljs @@ -169,6 +169,7 @@ :expanded (> size 276)) :id "right-sidebar-aside" + :data-testid "right-sidebar" :data-size (str size) :style #js {"--width" (if can-be-expanded? (dm/str size "px") 276)}} (when can-be-expanded? diff --git a/frontend/src/app/main/ui/workspace/sidebar/assets/components.cljs b/frontend/src/app/main/ui/workspace/sidebar/assets/components.cljs index 72e01e609f..371716d7ec 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/assets/components.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/assets/components.cljs @@ -520,9 +520,11 @@ :name "listing-style"} [:& radio-button {:icon i/view-as-list :value "list" + :title (tr "workspace.assets.list-view") :id "opt-list"}] [:& radio-button {:icon i/flex-grid :value "grid" + :title (tr "workspace.assets.grid-view") :id "opt-grid"}]]]) (when (and components-v2 (not read-only?) local?) diff --git a/frontend/translations/en.po b/frontend/translations/en.po index 0195d362dc..095827bf98 100644 --- a/frontend/translations/en.po +++ b/frontend/translations/en.po @@ -3396,6 +3396,14 @@ msgstr "Sort" msgid "workspace.assets.typography" msgstr "Typographies" +#: src/app/main/ui/workspace/sidebar/assets/components.cljs, src/app/main/wui/workspace/sidebar/options/menus/component.cljs +msgid "workspace.assets.grid-view" +msgstr "Grid view" + +#: src/app/main/ui/workspace/sidebar/assets/components.cljs, src/app/main/wui/workspace/sidebar/options/menus/component.cljs +msgid "workspace.assets.list-view" +msgstr "List view" + #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.font-id" msgstr "Font" diff --git a/frontend/translations/es.po b/frontend/translations/es.po index 0ad3a9a4fe..3b9bd101db 100644 --- a/frontend/translations/es.po +++ b/frontend/translations/es.po @@ -3523,6 +3523,14 @@ msgstr "Ordenar" msgid "workspace.assets.typography" msgstr "Tipografías" +#: src/app/main/ui/workspace/sidebar/assets/components.cljs, src/app/main/wui/workspace/sidebar/options/menus/component.cljs +msgid "workspace.assets.grid-view" +msgstr "Ver como rejilla" + +#: src/app/main/ui/workspace/sidebar/assets/components.cljs, src/app/main/wui/workspace/sidebar/options/menus/component.cljs +msgid "workspace.assets.list-view" +msgstr "Ver como lista" + #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.font-id" msgstr "Fuente" From f3193a19840fab24e85992db4b68c03e28183061 Mon Sep 17 00:00:00 2001 From: Eva Marco Date: Wed, 19 Jun 2024 09:25:58 +0200 Subject: [PATCH 200/476] :sparkles: Add visual testing to viewer --- frontend/playwright/ui/pages/ViewerPage.js | 26 ++++ .../ui/specs/viewer-comments.spec.js | 12 +- .../playwright/ui/specs/viewer-header.spec.js | 11 +- .../ui/visual-specs/visual-dashboard.spec.js | 2 +- .../ui/visual-specs/visual-viewer.spec.js | 117 ++++++++++++++++++ frontend/src/app/main/ui/viewer/comments.cljs | 1 + 6 files changed, 147 insertions(+), 22 deletions(-) create mode 100644 frontend/playwright/ui/visual-specs/visual-viewer.spec.js diff --git a/frontend/playwright/ui/pages/ViewerPage.js b/frontend/playwright/ui/pages/ViewerPage.js index a7e377a889..fa06226412 100644 --- a/frontend/playwright/ui/pages/ViewerPage.js +++ b/frontend/playwright/ui/pages/ViewerPage.js @@ -27,6 +27,26 @@ export class ViewerPage extends BaseWebSocketPage { ); } + async setupFileWithSingleBoard() { + await this.mockRPC(/get\-view\-only\-bundle\?/, "viewer/get-view-only-bundle-single-board.json"); + await this.mockRPC("get-comment-threads?file-id=*", "workspace/get-comment-threads-empty.json"); + await this.mockRPC( + "get-file-fragment?file-id=*&fragment-id=*", + "viewer/get-file-fragment-single-board.json", + ); + }; + + async setupFileWithComments() { + await this.mockRPC(/get\-view\-only\-bundle\?/, "viewer/get-view-only-bundle-single-board.json"); + await this.mockRPC("get-comment-threads?file-id=*", "workspace/get-comment-threads-not-empty.json"); + await this.mockRPC( + "get-file-fragment?file-id=*&fragment-id=*", + "viewer/get-file-fragment-single-board.json", + ); + await this.mockRPC("get-comments?thread-id=*", "workspace/get-thread-comments.json"); + await this.mockRPC("update-comment-thread-status", "workspace/update-comment-thread-status.json"); + }; + #ws = null; constructor(page) { @@ -56,5 +76,11 @@ export class ViewerPage extends BaseWebSocketPage { .filter({ hasText: number.toString() }) .click(clickOptions); } + + async showCode(clickOptions = {}) { + await this.page + .getByRole("button", { name: 'Inspect (G I)' }) + .click(clickOptions); + } } diff --git a/frontend/playwright/ui/specs/viewer-comments.spec.js b/frontend/playwright/ui/specs/viewer-comments.spec.js index 13591e6053..7d7b637eab 100644 --- a/frontend/playwright/ui/specs/viewer-comments.spec.js +++ b/frontend/playwright/ui/specs/viewer-comments.spec.js @@ -8,21 +8,11 @@ test.beforeEach(async ({ page }) => { const singleBoardFileId = "dd5cc0bb-91ff-81b9-8004-77df9cd3edb1"; const singleBoardPageId = "dd5cc0bb-91ff-81b9-8004-77df9cd3edb2"; -const setupFileWithSingleBoard = async (viewer) => { - await viewer.mockRPC(/get\-view\-only\-bundle\?/, "viewer/get-view-only-bundle-single-board.json"); - await viewer.mockRPC("get-comment-threads?file-id=*", "workspace/get-comment-threads-not-empty.json"); - await viewer.mockRPC( - "get-file-fragment?file-id=*&fragment-id=*", - "viewer/get-file-fragment-single-board.json", - ); - await viewer.mockRPC("get-comments?thread-id=*", "workspace/get-thread-comments.json"); - await viewer.mockRPC("update-comment-thread-status", "workspace/update-comment-thread-status.json"); -}; test("Comment is shown with scroll and valid position", async ({ page }) => { const viewer = new ViewerPage(page); await viewer.setupLoggedInUser(); - await setupFileWithSingleBoard(viewer); + await viewer.setupFileWithComments(); await viewer.goToViewer({ fileId: singleBoardFileId, pageId: singleBoardPageId }); await viewer.showComments(); diff --git a/frontend/playwright/ui/specs/viewer-header.spec.js b/frontend/playwright/ui/specs/viewer-header.spec.js index 48f282965e..81c01ee058 100644 --- a/frontend/playwright/ui/specs/viewer-header.spec.js +++ b/frontend/playwright/ui/specs/viewer-header.spec.js @@ -8,15 +8,6 @@ test.beforeEach(async ({ page }) => { const singleBoardFileId = "dd5cc0bb-91ff-81b9-8004-77df9cd3edb1"; const singleBoardPageId = "dd5cc0bb-91ff-81b9-8004-77df9cd3edb2"; -const setupFileWithSingleBoard = async (viewer) => { - await viewer.mockRPC(/get\-view\-only\-bundle\?/, "viewer/get-view-only-bundle-single-board.json"); - await viewer.mockRPC("get-comment-threads?file-id=*", "workspace/get-comment-threads-empty.json"); - await viewer.mockRPC( - "get-file-fragment?file-id=*&fragment-id=*", - "viewer/get-file-fragment-single-board.json", - ); -}; - test("Clips link area of the logo", async ({ page }) => { const viewerPage = new ViewerPage(page); await viewerPage.setupLoggedInUser(); @@ -37,7 +28,7 @@ test("Clips link area of the logo", async ({ page }) => { test("Updates URL with zoom type", async ({ page }) => { const viewer = new ViewerPage(page); await viewer.setupLoggedInUser(); - await setupFileWithSingleBoard(viewer); + await viewer.setupFileWithSingleBoard(viewer); await viewer.goToViewer({ fileId: singleBoardFileId, pageId: singleBoardPageId }); diff --git a/frontend/playwright/ui/visual-specs/visual-dashboard.spec.js b/frontend/playwright/ui/visual-specs/visual-dashboard.spec.js index faefbeb1bd..88f4992e35 100644 --- a/frontend/playwright/ui/visual-specs/visual-dashboard.spec.js +++ b/frontend/playwright/ui/visual-specs/visual-dashboard.spec.js @@ -379,7 +379,7 @@ test("User invite people to the team", async ({ page }) => { await expect(page.getByText("Invite with the role")).toBeVisible(); - await page.getByPlaceholder('Emails, comma separated').fill("test5@mail.com"); + await page.getByPlaceholder("Emails, comma separated").fill("test5@mail.com"); await expect(page.getByText("Send invitation")).not.toBeDisabled(); diff --git a/frontend/playwright/ui/visual-specs/visual-viewer.spec.js b/frontend/playwright/ui/visual-specs/visual-viewer.spec.js new file mode 100644 index 0000000000..48afc1a60f --- /dev/null +++ b/frontend/playwright/ui/visual-specs/visual-viewer.spec.js @@ -0,0 +1,117 @@ +import { test, expect } from "@playwright/test"; +import { ViewerPage } from "../pages/ViewerPage"; + +test.beforeEach(async ({ page }) => { + await ViewerPage.init(page); + +}); + +const singleBoardFileId = "dd5cc0bb-91ff-81b9-8004-77df9cd3edb1"; +const singleBoardPageId = "dd5cc0bb-91ff-81b9-8004-77df9cd3edb2"; + +test("User goes to an empty Viewer", async ({ page }) => { + const viewerPage = new ViewerPage(page); + await viewerPage.setupLoggedInUser(); + await viewerPage.setupEmptyFile(); + + await viewerPage.goToViewer(); + + await expect(viewerPage.page.getByTestId("penpot-logo-link")).toBeVisible(); + await expect(viewerPage.page).toHaveScreenshot(); +}); + +test("User goes to the Viewer", async ({ page }) => { + const viewerPage = new ViewerPage(page); + await viewerPage.setupLoggedInUser(); + await viewerPage.setupFileWithSingleBoard(); + + await viewerPage.goToViewer({ fileId: singleBoardFileId, pageId: singleBoardPageId }); + + await expect(viewerPage.page.getByTestId("penpot-logo-link")).toBeVisible(); + await expect(viewerPage.page).toHaveScreenshot(); +}); + +test("User goes to the Viewer and opens zoom modal", async ({ page }) => { + const viewerPage = new ViewerPage(page); + await viewerPage.setupLoggedInUser(); + await viewerPage.setupFileWithSingleBoard(); + + await viewerPage.goToViewer({ fileId: singleBoardFileId, pageId: singleBoardPageId }); + + await viewerPage.page.getByTitle("Zoom").click(); + + await expect(viewerPage.page.getByTestId("penpot-logo-link")).toBeVisible(); + await expect(viewerPage.page).toHaveScreenshot(); +}); + +test("User goes to the Viewer Comments", async ({ page }) => { + const viewerPage = new ViewerPage(page); + await viewerPage.setupLoggedInUser(); + await viewerPage.setupFileWithComments(); + + await viewerPage.goToViewer({ fileId: singleBoardFileId, pageId: singleBoardPageId }); + + await viewerPage.showComments(); + await viewerPage.showCommentsThread(1); + await expect(viewerPage.page.getByRole("textbox", { name: "Reply" })).toBeVisible(); + + await expect(viewerPage.page).toHaveScreenshot(); +}); + +test("User opens Viewer comment list", async ({ page }) => { + const viewerPage = new ViewerPage(page); + await viewerPage.setupLoggedInUser(); + await viewerPage.setupFileWithComments(); + + await viewerPage.goToViewer({ fileId: singleBoardFileId, pageId: singleBoardPageId }); + + await viewerPage.showComments(); + await viewerPage.page.getByTestId("viewer-comments-dropdown").click(); + + await viewerPage.page.getByText("Show comments list").click(); + + await expect(viewerPage.page.getByRole("button", { name: "Show all comments" })).toBeVisible(); + await expect(viewerPage.page).toHaveScreenshot(); +}); + +test("User goes to the Viewer Inspect code", async ({ page }) => { + const viewerPage = new ViewerPage(page); + await viewerPage.setupLoggedInUser(); + await viewerPage.setupFileWithComments(); + + await viewerPage.goToViewer({ fileId: singleBoardFileId, pageId: singleBoardPageId }); + + await viewerPage.showCode(); + + await expect(viewerPage.page.getByText("Size and position")).toBeVisible(); + + await expect(viewerPage.page).toHaveScreenshot(); +}); + +test("User goes to the Viewer Inspect code, code tab", async ({ page }) => { + const viewerPage = new ViewerPage(page); + await viewerPage.setupLoggedInUser(); + await viewerPage.setupFileWithComments(); + + await viewerPage.goToViewer({ fileId: singleBoardFileId, pageId: singleBoardPageId }); + + await viewerPage.showCode(); + await viewerPage.page.getByTestId("code").click(); + + await expect(viewerPage.page.getByRole("button", { name: "Copy all code" })).toBeVisible(); + + await expect(viewerPage.page).toHaveScreenshot(); +}); + +test("User opens Share modal", async ({ page }) => { + const viewerPage = new ViewerPage(page); + await viewerPage.setupLoggedInUser(); + await viewerPage.setupFileWithSingleBoard(); + + await viewerPage.goToViewer({ fileId: singleBoardFileId, pageId: singleBoardPageId }); + + await viewerPage.page.getByRole("button", { name: "Share" }).click(); + + await expect(viewerPage.page.getByRole("button", { name: "Get link" })).toBeVisible(); + await expect(viewerPage.page).toHaveScreenshot(); +}); diff --git a/frontend/src/app/main/ui/viewer/comments.cljs b/frontend/src/app/main/ui/viewer/comments.cljs index a83d47b4ac..fe72f96b3b 100644 --- a/frontend/src/app/main/ui/viewer/comments.cljs +++ b/frontend/src/app/main/ui/viewer/comments.cljs @@ -65,6 +65,7 @@ (st/emit! (dcm/update-options {:show-sidebar? (not mode)})))))] [:div {:class (stl/css :view-options) + :data-testid "viewer-comments-dropdown" :on-click toggle-dropdown} [:span {:class (stl/css :dropdown-title)} (tr "labels.comments")] [:span {:class (stl/css :icon-dropdown)} i/arrow] From a2cc7764fb56c61a0b6346b544c9fb4e4338b073 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Tue, 18 Jun 2024 15:50:17 +0200 Subject: [PATCH 201/476] :sparkles: Improve how indexes are updated on concurrent sessions --- frontend/src/app/main/data/changes.cljs | 102 ++++++++++++-------- frontend/src/app/main/data/persistence.cljs | 11 +-- 2 files changed, 64 insertions(+), 49 deletions(-) diff --git a/frontend/src/app/main/data/changes.cljs b/frontend/src/app/main/data/changes.cljs index d16cfafc57..5f8229eb1e 100644 --- a/frontend/src/app/main/data/changes.cljs +++ b/frontend/src/app/main/data/changes.cljs @@ -29,18 +29,24 @@ (def commit? (ptk/type? ::commit)) -(defn update-indexes +(defn- fix-page-id + "For events that modifies the page, page-id does not comes + as a property so we assign it from the `id` property." + [{:keys [id type page] :as change}] + (cond-> change + (and (page-change? type) + (nil? (:page-id change))) + (assoc :page-id (or id (:id page))))) + +(defn- update-indexes "Given a commit, send the changes to the worker for updating the indexes." - [{:keys [changes] :as commit}] + [commit attr] (ptk/reify ::update-indexes ptk/WatchEvent (watch [_ _ _] - (let [changes (->> changes - (map (fn [{:keys [id type page] :as change}] - (cond-> change - (and (page-change? type) (nil? (:page-id change))) - (assoc :page-id (or id (:id page)))))) + (let [changes (->> (get commit attr) + (map fix-page-id) (filter :page-id) (group-by :page-id))] @@ -58,6 +64,41 @@ (map (d/getf (:index persistence))) (not-empty))) +(def ^:private xf:map-page-id + (map :page-id)) + +(defn- apply-changes-localy + [{:keys [file-id redo-changes] :as commit} pending] + (ptk/reify ::apply-changes-localy + ptk/UpdateEvent + (update [_ state] + (let [current-file-id (get state :current-file-id) + path (if (= file-id current-file-id) + [:workspace-data] + [:workspace-libraries file-id :data]) + + undo-changes (if pending + (->> pending + (map :undo-changes) + (reverse) + (mapcat identity) + (vec)) + nil) + + redo-changes (if pending + (into redo-changes + (mapcat :redo-changes) + pending) + redo-changes)] + + (d/update-in-when state path + (fn [file] + (let [file (cpc/process-changes file undo-changes false) + file (cpc/process-changes file redo-changes false) + pids (into #{} xf:map-page-id redo-changes)] + (reduce #(ctst/update-object-indices %1 %2) file pids)))))))) + + (defn commit "Create a commit event instance" [{:keys [commit-id redo-changes undo-changes origin save-undo? features @@ -70,6 +111,7 @@ (let [commit-id (or commit-id (uuid/next)) source (d/nilv source :local) + local? (= source :local) commit {:id commit-id :created-at (dt/now) :source source @@ -89,38 +131,20 @@ cljs.core/IDeref (-deref [_] commit) - ptk/UpdateEvent - (update [_ state] - (let [current-file-id (get state :current-file-id) - path (if (= file-id current-file-id) - [:workspace-data] - [:workspace-libraries file-id :data]) - - not-local? (not= source :local) - pending (if not-local? - (get-pending-commits state) - nil) - - undo-changes (if pending - (->> pending - (map :undo-changes) - (reverse) - (mapcat identity) - (vec)) - nil) - - redo-changes (if pending - (into redo-changes - (mapcat :redo-changes) - pending) - redo-changes)] - - (d/update-in-when state path - (fn [file] - (let [file (cpc/process-changes file undo-changes false) - file (cpc/process-changes file redo-changes false) - pids (into #{} (map :page-id) redo-changes)] - (reduce #(ctst/update-object-indices %1 %2) file pids))))))))) + ptk/WatchEvent + (watch [_ state _] + (let [pending (when-not local? + (get-pending-commits state))] + (rx/concat + (rx/of (apply-changes-localy commit pending)) + (if pending + (rx/concat + (->> (rx/from (reverse pending)) + (rx/map (fn [commit] (update-indexes commit :undo-changes)))) + (rx/of (update-indexes commit :redo-changes)) + (->> (rx/from pending) + (rx/map (fn [commit] (update-indexes commit :redo-changes))))) + (rx/of (update-indexes commit :redo-changes))))))))) (defn- resolve-file-revn [state file-id] diff --git a/frontend/src/app/main/data/persistence.cljs b/frontend/src/app/main/data/persistence.cljs index 22f1cdb655..2e917e7844 100644 --- a/frontend/src/app/main/data/persistence.cljs +++ b/frontend/src/app/main/data/persistence.cljs @@ -211,14 +211,6 @@ (update-status :pending))) (rx/take-until stoper-s)) - (->> local-commits-s - (rx/buffer-time 200) - (rx/mapcat merge-commit) - (rx/map dch/update-indexes) - (rx/take-until stoper-s) - (rx/finalize (fn [] - (log/debug :hint "finalize persistence: changes watcher [index]")))) - ;; Here we watch for local commits, buffer them in a small ;; chunks (very near in time commits) and append them to the ;; persistence queue @@ -237,6 +229,5 @@ (rx/map deref) (rx/filter #(= :remote (:source %))) (rx/mapcat (fn [{:keys [file-id file-revn] :as commit}] - (rx/of (update-file-revn file-id file-revn) - (dch/update-indexes commit)))) + (rx/of (update-file-revn file-id file-revn)))) (rx/take-until stoper-s))))))) From d527184dfcf69db6a95e55b36db25a76e2e6a996 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Tue, 18 Jun 2024 16:31:43 +0200 Subject: [PATCH 202/476] :recycle: Try to fix recursive update-file ops on text edition on concurrent multi-user sessions --- .../src/app/common/files/changes_builder.cljc | 9 ---- .../main/data/workspace/notifications.cljs | 44 +++++-------------- .../src/app/main/data/workspace/shapes.cljs | 7 ++- .../src/app/main/data/workspace/texts.cljs | 3 +- .../shapes/text/viewport_texts_html.cljs | 3 +- 5 files changed, 16 insertions(+), 50 deletions(-) diff --git a/common/src/app/common/files/changes_builder.cljc b/common/src/app/common/files/changes_builder.cljc index 865ed2fa73..5a8d8a9207 100644 --- a/common/src/app/common/files/changes_builder.cljc +++ b/common/src/app/common/files/changes_builder.cljc @@ -770,15 +770,6 @@ (update :undo-changes conj {:type :del-component :id id :main-instance main-instance}))) -(defn ignore-remote - [changes] - (letfn [(add-ignore-remote - [change-list] - (->> change-list - (mapv #(assoc % :ignore-remote? true))))] - (-> changes - (update :redo-changes add-ignore-remote) - (update :undo-changes add-ignore-remote)))) (defn reorder-grid-children [changes ids] diff --git a/frontend/src/app/main/data/workspace/notifications.cljs b/frontend/src/app/main/data/workspace/notifications.cljs index 39808e7f37..330aa2ee03 100644 --- a/frontend/src/app/main/data/workspace/notifications.cljs +++ b/frontend/src/app/main/data/workspace/notifications.cljs @@ -207,40 +207,16 @@ (-deref [_] {:changes changes}) ptk/WatchEvent - (watch [_ state _] - (let [page-id (:current-page-id state) - - position-data-operation? - (fn [{:keys [type attr]}] - (and (= :set type) - (= attr :position-data))) - - update-position-data - (fn [change] - ;; Remove the position data from remote operations. Will be changed localy, otherwise - ;; creates a strange "out-of-sync" behaviour. - (cond-> change - (and (= page-id (:page-id change)) - (= :mod-obj (:type change))) - (update :operations #(d/removev position-data-operation? %)))) - - ;; We update `position-data` from the incoming message - changes (->> changes - (map update-position-data) - (remove (fn [change] - (and (= page-id (:page-id change)) - (:ignore-remote? change)))) - (vec))] - - ;; The commit event is responsible to apply the data localy - ;; and update the persistence internal state with the updated - ;; file-revn - (rx/of (dch/commit {:file-id file-id - :file-revn revn - :save-undo? false - :source :remote - :redo-changes changes - :undo-changes []})))))) + (watch [_ _ _] + ;; The commit event is responsible to apply the data localy + ;; and update the persistence internal state with the updated + ;; file-revn + (rx/of (dch/commit {:file-id file-id + :file-revn revn + :save-undo? false + :source :remote + :redo-changes (vec changes) + :undo-changes []}))))) (def ^:private schema:handle-library-change diff --git a/frontend/src/app/main/data/workspace/shapes.cljs b/frontend/src/app/main/data/workspace/shapes.cljs index 81c12872a7..fecb3f8e02 100644 --- a/frontend/src/app/main/data/workspace/shapes.cljs +++ b/frontend/src/app/main/data/workspace/shapes.cljs @@ -46,8 +46,8 @@ (defn update-shapes ([ids update-fn] (update-shapes ids update-fn nil)) - ([ids update-fn {:keys [reg-objects? save-undo? stack-undo? attrs ignore-tree page-id ignore-remote? ignore-touched undo-group with-objects?] - :or {reg-objects? false save-undo? true stack-undo? false ignore-remote? false ignore-touched false with-objects? false}}] + ([ids update-fn {:keys [reg-objects? save-undo? stack-undo? attrs ignore-tree page-id ignore-touched undo-group with-objects?] + :or {reg-objects? false save-undo? true stack-undo? false ignore-touched false with-objects? false}}] (dm/assert! "expected a valid coll of uuid's" @@ -84,8 +84,7 @@ changes (add-undo-group changes state)] (rx/concat (if (seq (:redo-changes changes)) - (let [changes (cond-> changes reg-objects? (pcb/resize-parents ids)) - changes (cond-> changes ignore-remote? (pcb/ignore-remote))] + (let [changes (cond-> changes reg-objects? (pcb/resize-parents ids))] (rx/of (dch/commit-changes changes))) (rx/empty)) diff --git a/frontend/src/app/main/data/workspace/texts.cljs b/frontend/src/app/main/data/workspace/texts.cljs index d1e55e027b..89024cdc0b 100644 --- a/frontend/src/app/main/data/workspace/texts.cljs +++ b/frontend/src/app/main/data/workspace/texts.cljs @@ -391,7 +391,6 @@ (rx/of (dwu/start-undo-transaction undo-id) (dwsh/update-shapes ids update-fn {:reg-objects? true :stack-undo? true - :ignore-remote? true :ignore-touched true}) (ptk/data-event :layout/update {:ids ids}) (dwu/commit-undo-transaction undo-id)))))))) @@ -536,7 +535,7 @@ (fn [shape] (-> shape (assoc :position-data (get position-data (:id shape))))) - {:stack-undo? true :reg-objects? false :ignore-remote? true})) + {:stack-undo? true :reg-objects? false})) (rx/of (fn [state] (dissoc state ::update-position-data-debounce ::update-position-data)))))))) diff --git a/frontend/src/app/main/ui/workspace/shapes/text/viewport_texts_html.cljs b/frontend/src/app/main/ui/workspace/shapes/text/viewport_texts_html.cljs index e9a4137140..681dffd372 100644 --- a/frontend/src/app/main/ui/workspace/shapes/text/viewport_texts_html.cljs +++ b/frontend/src/app/main/ui/workspace/shapes/text/viewport_texts_html.cljs @@ -29,7 +29,8 @@ [promesa.core :as p] [rumext.v2 :as mf])) -(defn fix-position [shape] +(defn fix-position + [shape] (if-let [modifiers (:modifiers shape)] (let [shape' (gsh/transform-shape shape modifiers) From b668fed1c8088689c0a70da8bfec91fb206bd681 Mon Sep 17 00:00:00 2001 From: Alejandro Alonso Date: Wed, 19 Jun 2024 11:51:57 +0200 Subject: [PATCH 203/476] :bug: Export shapes that are rotated act a bit strange when reimported --- CHANGES.md | 1 + common/src/app/common/types/shape.cljc | 11 ++++++++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index 5a2145b54e..bfc39fe4e3 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -46,6 +46,7 @@ - Workspace-palette items stay hidden when opening with keyboard-shortcut [Taiga #7489](https://tree.taiga.io/project/penpot/issue/7489) - Fix SVG attrs are not handled correctly when exporting/importing in .zip [Taiga #7920](https://tree.taiga.io/project/penpot/issue/7920) - Fix validation error when detaching with two nested copies and a swap [Taiga #8095](https://tree.taiga.io/project/penpot/issue/8095) +- Export shapes that are rotated act a bit strange when reimported [Taiga #7585](https://tree.taiga.io/project/penpot/issue/7585) ## 2.0.3 diff --git a/common/src/app/common/types/shape.cljc b/common/src/app/common/types/shape.cljc index a489133293..4f4d8d5816 100644 --- a/common/src/app/common/types/shape.cljc +++ b/common/src/app/common/types/shape.cljc @@ -471,9 +471,14 @@ (defn setup-rect "Initializes the selrect and points for a shape." - [{:keys [selrect points] :as shape}] - (let [selrect (or selrect (gsh/shape->rect shape)) - points (or points (grc/rect->points selrect))] + [{:keys [selrect points transform] :as shape}] + (let [selrect (or selrect (gsh/shape->rect shape)) + center (grc/rect->center selrect) + transform (or transform (gmt/matrix)) + points (or points + (-> selrect + (grc/rect->points) + (gsh/transform-points center transform)))] (-> shape (assoc :selrect selrect) (assoc :points points)))) From d1e9ea372ad85df1cb8afc91ca06104f715286d1 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Wed, 19 Jun 2024 14:57:17 +0200 Subject: [PATCH 204/476] :sparkles: Assign external session ID to params on RPC main handler --- backend/src/app/loggers/audit.clj | 2 +- backend/src/app/rpc.clj | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/backend/src/app/loggers/audit.clj b/backend/src/app/loggers/audit.clj index 9abd4803fd..d66620e530 100644 --- a/backend/src/app/loggers/audit.clj +++ b/backend/src/app/loggers/audit.clj @@ -140,7 +140,7 @@ (::rpc/profile-id params) uuid/zero) - session-id (rreq/get-header request "x-external-session-id") + session-id (get params ::rpc/external-session-id) props (-> (or (::replace-props resultm) (-> params (merge (::props resultm)) diff --git a/backend/src/app/rpc.clj b/backend/src/app/rpc.clj index 89eee548d4..2ea8e8f14f 100644 --- a/backend/src/app/rpc.clj +++ b/backend/src/app/rpc.clj @@ -79,8 +79,11 @@ profile-id (or (::session/profile-id request) (::actoken/profile-id request)) + session-id (rreq/get-header request "x-external-session-id") + data (-> params (assoc ::request-at (dt/now)) + (assoc ::external-session-id session-id) (assoc ::session/id (::session/id request)) (assoc ::cond/key etag) (cond-> (uuid? profile-id) From 8da153f604da33461d143cf18be18153866f160a Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Wed, 19 Jun 2024 14:58:04 +0200 Subject: [PATCH 205/476] :sparkles: Emit create-file action events on clone-template --- backend/src/app/rpc/commands/management.clj | 33 +++++++++++++++------ 1 file changed, 24 insertions(+), 9 deletions(-) diff --git a/backend/src/app/rpc/commands/management.clj b/backend/src/app/rpc/commands/management.clj index 5d01d9ec60..ef36b85d54 100644 --- a/backend/src/app/rpc/commands/management.clj +++ b/backend/src/app/rpc/commands/management.clj @@ -16,6 +16,7 @@ [app.config :as cf] [app.db :as db] [app.http.sse :as sse] + [app.loggers.audit :as audit] [app.loggers.webhooks :as-alias webhooks] [app.rpc :as-alias rpc] [app.rpc.commands.files :as files] @@ -397,17 +398,33 @@ ;; --- COMMAND: Clone Template (defn- clone-template - [{:keys [::wrk/executor ::bf.v1/project-id] :as cfg} template] - (db/tx-run! cfg (fn [{:keys [::db/conn] :as cfg}] + [cfg {:keys [project-id ::rpc/profile-id ::rpc/external-session-id] :as params} template] + (db/tx-run! cfg (fn [{:keys [::db/conn ::wrk/executor] :as cfg}] ;; NOTE: the importation process performs some operations that ;; are not very friendly with virtual threads, and for avoid ;; unexpected blocking of other concurrent operations we ;; dispatch that operation to a dedicated executor. - (let [result (px/submit! executor (partial bf.v1/import-files! cfg template))] + (let [cfg (-> cfg + (assoc ::bf.v1/project-id project-id) + (assoc ::bf.v1/profile-id profile-id)) + result (px/invoke! executor (partial bf.v1/import-files! cfg template))] + (db/update! conn :project {:modified-at (dt/now)} {:id project-id}) - (deref result))))) + + (let [props (-> (audit/clean-props params) + (assoc :triggered-by "clone-template")) + context {:external-session-id external-session-id}] + (doseq [file-id result] + (audit/submit! cfg + {::audit/type "action" + ::audit/name "create-file" + ::audit/profile-id profile-id + ::audit/props (assoc props :id file-id) + ::audit/context context}))) + + result)))) (def ^:private schema:clone-template @@ -425,16 +442,14 @@ [{:keys [::db/pool] :as cfg} {:keys [::rpc/profile-id project-id template-id] :as params}] (let [project (db/get-by-id pool :project project-id {:columns [:id :team-id]}) _ (teams/check-edition-permissions! pool profile-id (:team-id project)) - template (tmpl/get-template-stream cfg template-id) - params (-> cfg - (assoc ::bf.v1/project-id (:id project)) - (assoc ::bf.v1/profile-id profile-id))] + template (tmpl/get-template-stream cfg template-id)] + (when-not template (ex/raise :type :not-found :code :template-not-found :hint "template not found")) - (sse/response #(clone-template params template)))) + (sse/response #(clone-template cfg params template)))) ;; --- COMMAND: Get list of builtin templates From 6a253871b06225793985e2e387756b039167227f Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Wed, 19 Jun 2024 16:13:39 +0200 Subject: [PATCH 206/476] :sparkles: Improve internal handling of external-session-id --- backend/src/app/auth/oidc.clj | 25 +++++++---- backend/src/app/loggers/audit.clj | 7 +++ backend/src/app/rpc.clj | 1 + backend/src/app/rpc/commands/management.clj | 7 ++- backend/src/app/rpc/commands/teams.clj | 48 +++++++++++++-------- frontend/src/app/main/repo.cljs | 3 ++ 6 files changed, 60 insertions(+), 31 deletions(-) diff --git a/backend/src/app/auth/oidc.clj b/backend/src/app/auth/oidc.clj index a8434a23a0..69f7eb7d00 100644 --- a/backend/src/app/auth/oidc.clj +++ b/backend/src/app/auth/oidc.clj @@ -32,6 +32,7 @@ [clojure.spec.alpha :as s] [cuerdas.core :as str] [integrant.core :as ig] + [ring.request :as rreq] [ring.response :as-alias rres])) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @@ -470,6 +471,9 @@ (some? (:invitation-token state)) (assoc :invitation-token (:invitation-token state)) + (some? (:external-session-id state)) + (assoc :external-session-id (:external-session-id state)) + ;; If state token comes with props, merge them. The state token ;; props can contain pm_ and utm_ prefixed query params. (map? (:props state)) @@ -554,19 +558,22 @@ (redirect-to-register cfg info request)) :else - (let [sxf (session/create-fn cfg (:id profile)) - token (or (:invitation-token info) - (tokens/generate (::setup/props cfg) - {:iss :auth - :exp (dt/in-future "15m") - :props (:props info) - :profile-id (:id profile)}))] + (let [sxf (session/create-fn cfg (:id profile)) + token (or (:invitation-token info) + (tokens/generate (::setup/props cfg) + {:iss :auth + :exp (dt/in-future "15m") + :props (:props info) + :profile-id (:id profile)})) + props (audit/profile->props profile) + context (d/without-nils {:external-session-id (:external-session-id info)})] (audit/submit! cfg {::audit/type "command" ::audit/name "login-with-oidc" ::audit/profile-id (:id profile) ::audit/ip-addr (audit/parse-client-ip request) - ::audit/props (audit/profile->props profile)}) + ::audit/props props + ::audit/context context}) (->> (redirect-to-verify-token token) (sxf request)))) @@ -588,9 +595,11 @@ (defn- auth-handler [cfg {:keys [params] :as request}] (let [props (audit/extract-utm-params params) + esid (rreq/get-header request "x-external-session-id") state (tokens/generate (::setup/props cfg) {:iss :oauth :invitation-token (:invitation-token params) + :external-session-id esid :props props :exp (dt/in-future "4h")}) uri (build-auth-uri cfg state)] diff --git a/backend/src/app/loggers/audit.clj b/backend/src/app/loggers/audit.clj index d66620e530..08167da873 100644 --- a/backend/src/app/loggers/audit.clj +++ b/backend/src/app/loggers/audit.clj @@ -86,6 +86,13 @@ (remove #(contains? reserved-props (key %)))) props)) +(defn params->context + "Extract default context properties from RPC params object" + [params] + (d/without-nils + {:external-session-id (::rpc/external-session-id params) + :triggered-by (::rpc/handler-name params)})) + ;; --- SPECS diff --git a/backend/src/app/rpc.clj b/backend/src/app/rpc.clj index 2ea8e8f14f..b4acb2ea3c 100644 --- a/backend/src/app/rpc.clj +++ b/backend/src/app/rpc.clj @@ -82,6 +82,7 @@ session-id (rreq/get-header request "x-external-session-id") data (-> params + (assoc ::handler-name handler-name) (assoc ::request-at (dt/now)) (assoc ::external-session-id session-id) (assoc ::session/id (::session/id request)) diff --git a/backend/src/app/rpc/commands/management.clj b/backend/src/app/rpc/commands/management.clj index ef36b85d54..bf7883175c 100644 --- a/backend/src/app/rpc/commands/management.clj +++ b/backend/src/app/rpc/commands/management.clj @@ -398,7 +398,7 @@ ;; --- COMMAND: Clone Template (defn- clone-template - [cfg {:keys [project-id ::rpc/profile-id ::rpc/external-session-id] :as params} template] + [cfg {:keys [project-id ::rpc/profile-id] :as params} template] (db/tx-run! cfg (fn [{:keys [::db/conn ::wrk/executor] :as cfg}] ;; NOTE: the importation process performs some operations that ;; are not very friendly with virtual threads, and for avoid @@ -413,9 +413,8 @@ {:modified-at (dt/now)} {:id project-id}) - (let [props (-> (audit/clean-props params) - (assoc :triggered-by "clone-template")) - context {:external-session-id external-session-id}] + (let [props (audit/clean-props params) + context (audit/params->context params)] (doseq [file-id result] (audit/submit! cfg {::audit/type "action" diff --git a/backend/src/app/rpc/commands/teams.clj b/backend/src/app/rpc/commands/teams.clj index 8eb41386f3..ed018fa8e1 100644 --- a/backend/src/app/rpc/commands/teams.clj +++ b/backend/src/app/rpc/commands/teams.clj @@ -763,6 +763,7 @@ {:id (:id member)})) nil) + (let [id (uuid/next) expire (dt/in-future "168h") ;; 7 days invitation (db/exec-one! conn [sql:upsert-team-invitation id @@ -783,14 +784,19 @@ (when (contains? cf/flags :log-invitation-tokens) (l/info :hint "invitation token" :token itoken)) - (audit/submit! cfg - {::audit/type "action" - ::audit/name (if updated? - "update-team-invitation" - "create-team-invitation") - ::audit/profile-id (:id profile) - ::audit/props (-> (dissoc tprops :profile-id) - (d/without-nils))}) + + (let [props (-> (dissoc tprops :profile-id) + (audit/clean-props)) + context (audit/params->context params)] + + (audit/submit! cfg + {::audit/type "action" + ::audit/name (if updated? + "update-team-invitation" + "create-team-invitation") + ::audit/profile-id (:id profile) + ::audit/props props + ::audit/context context})) (eml/send! {::eml/conn conn ::eml/factory eml/invite-to-team @@ -850,10 +856,11 @@ ;; We don't re-send inviation to already existing members (remove (partial contains? members)) (map (fn [email] - {:email email - :team team - :profile profile - :role role})) + (-> params + (assoc :email email) + (assoc :team team) + (assoc :profile profile) + (assoc :role role)))) (keep (partial create-invitation cfg))) emails)] (with-meta {:total (count invitations) @@ -879,9 +886,11 @@ (let [features (-> (cfeat/get-enabled-features cf/flags) (cfeat/check-client-features! (:features params))) - params (assoc params - :profile-id profile-id - :features features) + + params (-> params + (assoc :profile-id profile-id) + (assoc :features features)) + cfg (assoc cfg ::db/conn conn) team (create-team cfg params) profile (db/get-by-id conn :profile profile-id) @@ -890,10 +899,11 @@ ;; Create invitations for all provided emails. (->> emails (map (fn [email] - {:team team - :profile profile - :email email - :role role})) + (-> params + (assoc :team team) + (assoc :profile profile) + (assoc :email email) + (assoc :role role)))) (run! (partial create-invitation cfg))) (run! (partial quotes/check-quote! conn) diff --git a/frontend/src/app/main/repo.cljs b/frontend/src/app/main/repo.cljs index b6ff8dc1e2..7d9bee599d 100644 --- a/frontend/src/app/main/repo.cljs +++ b/frontend/src/app/main/repo.cljs @@ -137,6 +137,7 @@ (->> (http/send! {:method :post :uri uri :credentials "include" + :headers {"x-external-session-id" (cf/external-session-id)} :query params}) (rx/map http/conditional-decode-transit) (rx/mapcat handle-response)))) @@ -146,6 +147,7 @@ (->> (http/send! {:method :post :uri (u/join cf/public-uri "api/export") :body (http/transit-data (dissoc params :blob?)) + :headers {"x-external-session-id" (cf/external-session-id)} :credentials "include" :response-type (if blob? :blob :text)}) (rx/map http/conditional-decode-transit) @@ -165,6 +167,7 @@ (->> (http/send! {:method :post :uri (u/join cf/public-uri "api/rpc/command/" (name id)) :credentials "include" + :headers {"x-external-session-id" (cf/external-session-id)} :body (http/form-data params)}) (rx/map http/conditional-decode-transit) (rx/mapcat handle-response))) From acb7ca54409f581967632c2bae52d6724385ffb5 Mon Sep 17 00:00:00 2001 From: SudoVanilla Date: Mon, 17 Jun 2024 21:15:33 -0400 Subject: [PATCH 207/476] :fire: Remove version specification from docker-compose.yaml file It is deprecated --- docker/images/docker-compose.yaml | 3 --- 1 file changed, 3 deletions(-) diff --git a/docker/images/docker-compose.yaml b/docker/images/docker-compose.yaml index 41dca3b7d9..d16402ce54 100644 --- a/docker/images/docker-compose.yaml +++ b/docker/images/docker-compose.yaml @@ -1,6 +1,3 @@ ---- -version: "3.8" - networks: penpot: From 4884a1110272fe06c670039d2a7ca7a68702d511 Mon Sep 17 00:00:00 2001 From: Alejandro Alonso Date: Thu, 20 Jun 2024 09:21:59 +0200 Subject: [PATCH 208/476] :bug: Penpot crashes when a new colorpicker is created while uploading an image to another instance --- CHANGES.md | 1 + frontend/src/app/main/data/workspace/colors.cljs | 7 ++++--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index bfc39fe4e3..a4e36f19b1 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -47,6 +47,7 @@ - Fix SVG attrs are not handled correctly when exporting/importing in .zip [Taiga #7920](https://tree.taiga.io/project/penpot/issue/7920) - Fix validation error when detaching with two nested copies and a swap [Taiga #8095](https://tree.taiga.io/project/penpot/issue/8095) - Export shapes that are rotated act a bit strange when reimported [Taiga #7585](https://tree.taiga.io/project/penpot/issue/7585) +- Penpot crashes when a new colorpicker is created while uploading an image to another instance [Taiga #8119](https://tree.taiga.io/project/penpot/issue/8119) ## 2.0.3 diff --git a/frontend/src/app/main/data/workspace/colors.cljs b/frontend/src/app/main/data/workspace/colors.cljs index 71a3903b8f..081ec53397 100644 --- a/frontend/src/app/main/data/workspace/colors.cljs +++ b/frontend/src/app/main/data/workspace/colors.cljs @@ -590,7 +590,7 @@ (update [_ state] (update state :colorpicker (fn [state] - (let [type (:type state) + (let [type (:type state) state (-> state (update :current-color merge changes) (update :current-color materialize-color-components) @@ -605,11 +605,12 @@ (-> state (dissoc :gradient :stops :editing-stop) - (cond-> (not= :image (:type state)) + (cond-> (not= :image type) (assoc :type :color)))))))) ptk/WatchEvent (watch [_ state _] - (when add-recent? + ;; Type can be null, because the colorpicker can be closed while a color image finish its upload + (when (and add-recent? (some? (:type state))) (let [formated-color (get-color-from-colorpicker-state (:colorpicker state))] (rx/of (dwl/add-recent-color formated-color))))))) From 6d82f41e43d73491323786ff05d77d9795a0e665 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bel=C3=A9n=20Albeza?= Date: Wed, 19 Jun 2024 11:13:16 +0200 Subject: [PATCH 209/476] :recycle: Refactor login POM logged out user intercept --- frontend/playwright/ui/pages/LoginPage.js | 8 ++++---- frontend/playwright/ui/specs/login.spec.js | 4 +++- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/frontend/playwright/ui/pages/LoginPage.js b/frontend/playwright/ui/pages/LoginPage.js index 5e94c10caa..9657197145 100644 --- a/frontend/playwright/ui/pages/LoginPage.js +++ b/frontend/playwright/ui/pages/LoginPage.js @@ -1,10 +1,6 @@ import { BasePage } from "./BasePage"; export class LoginPage extends BasePage { - static async initWithLoggedOutUser(page) { - await BasePage.mockRPC(page, "get-profile", "get-profile-anonymous.json"); - } - constructor(page) { super(page); this.loginButton = page.getByRole("button", { name: "Login" }); @@ -24,6 +20,10 @@ export class LoginPage extends BasePage { await this.loginButton.click(); } + async initWithLoggedOutUser() { + await this.mockRPC("get-profile", "get-profile-anonymous.json"); + } + async setupLoggedInUser() { await this.mockRPC("get-profile", "logged-in-user/get-profile-logged-in.json"); await this.mockRPC("get-teams", "logged-in-user/get-teams-default.json"); diff --git a/frontend/playwright/ui/specs/login.spec.js b/frontend/playwright/ui/specs/login.spec.js index dd259cf772..d730fb91e4 100644 --- a/frontend/playwright/ui/specs/login.spec.js +++ b/frontend/playwright/ui/specs/login.spec.js @@ -2,7 +2,9 @@ import { test, expect } from "@playwright/test"; import { LoginPage } from "../pages/LoginPage"; test.beforeEach(async ({ page }) => { - await LoginPage.initWithLoggedOutUser(page); + const login = new LoginPage(page); + await login.initWithLoggedOutUser(); + await page.goto("/#/auth/login"); }); From d4eea973b6f0f7468712610deeca64573fd92ef7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bel=C3=A9n=20Albeza?= Date: Wed, 19 Jun 2024 11:21:20 +0200 Subject: [PATCH 210/476] :paperclip: Add temporary visual regression test for login form --- .../ui/visual-specs/example.spec.js | 10 ----- .../ui/visual-specs/visual-login.spec.js | 37 +++++++++++++++++++ 2 files changed, 37 insertions(+), 10 deletions(-) delete mode 100644 frontend/playwright/ui/visual-specs/example.spec.js create mode 100644 frontend/playwright/ui/visual-specs/visual-login.spec.js diff --git a/frontend/playwright/ui/visual-specs/example.spec.js b/frontend/playwright/ui/visual-specs/example.spec.js deleted file mode 100644 index e4c344eec8..0000000000 --- a/frontend/playwright/ui/visual-specs/example.spec.js +++ /dev/null @@ -1,10 +0,0 @@ -import { test, expect } from "@playwright/test"; -import { LoginPage } from "../pages/LoginPage"; - -test("Shows login form correctly", async ({ page }) => { - await LoginPage.initWithLoggedOutUser(page); - const loginPage = new LoginPage(page); - await page.goto("/#/auth/login"); - - await expect(page).toHaveScreenshot(); -}); diff --git a/frontend/playwright/ui/visual-specs/visual-login.spec.js b/frontend/playwright/ui/visual-specs/visual-login.spec.js new file mode 100644 index 0000000000..b3b63a0c56 --- /dev/null +++ b/frontend/playwright/ui/visual-specs/visual-login.spec.js @@ -0,0 +1,37 @@ +import { test, expect } from "@playwright/test"; +import { LoginPage } from "../pages/LoginPage"; + +test.beforeEach(async ({ page }) => { + const login = new LoginPage(page); + await login.initWithLoggedOutUser(); + await login.page.goto("/#/auth/login"); +}); + +test.describe("Login form", () => { + test("Shows the login form correctly", async ({ page }) => { + const login = new LoginPage(page); + await expect(login.page).toHaveScreenshot(); + }); + + test("Shows form error messages correctly ", async ({ page }) => { + const login = new LoginPage(page); + await login.setupLoginSuccess(); + + await login.fillEmailAndPasswordInputs("foo", "lorenIpsum"); + + await expect(login.invalidEmailError).toBeVisible(); + await expect(login.page).toHaveScreenshot(); + }); + + test("Shows error toasts correctly", async ({ page }) => { + const login = new LoginPage(page); + await login.setupLoginError(); + + await login.fillEmailAndPasswordInputs("test@example.com", "loremipsum"); + await login.clickLoginButton(); + + await expect(login.invalidCredentialsError).toBeVisible(); + await expect(login.page).toHaveURL(/auth\/login$/); + await expect(login.page).toHaveScreenshot(); + }); +}); From 84350ea71c88ca7e871be718d89670036a8f61bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bel=C3=A9n=20Albeza?= Date: Thu, 20 Jun 2024 09:25:16 +0200 Subject: [PATCH 211/476] :paperclip: Remove dashboard visual tests that depend on specific config flags that are not on by default --- .../ui/visual-specs/visual-dashboard.spec.js | 111 +----------------- 1 file changed, 1 insertion(+), 110 deletions(-) diff --git a/frontend/playwright/ui/visual-specs/visual-dashboard.spec.js b/frontend/playwright/ui/visual-specs/visual-dashboard.spec.js index 88f4992e35..f7eeeb01a5 100644 --- a/frontend/playwright/ui/visual-specs/visual-dashboard.spec.js +++ b/frontend/playwright/ui/visual-specs/visual-dashboard.spec.js @@ -3,11 +3,7 @@ import DashboardPage from "../pages/DashboardPage"; test.beforeEach(async ({ page }) => { await DashboardPage.init(page); - await DashboardPage.mockRPC( - page, - "get-profile", - "logged-in-user/get-profile-logged-in-no-onboarding.json", - ); + await DashboardPage.mockRPC(page, "get-profile", "logged-in-user/get-profile-logged-in-no-onboarding.json"); }); test("User goes to an empty dashboard", async ({ page }) => { @@ -123,15 +119,12 @@ test("User goes to an full search page", async ({ page }) => { await dashboardPage.setupDashboardFull(); await dashboardPage.goToSearch(); - await expect(dashboardPage.searchInput).toBeVisible(); await dashboardPage.searchInput.fill("New"); await expect(dashboardPage.searchTitle).toBeVisible(); - await expect(dashboardPage.newFileName).toBeVisible(); - await expect(dashboardPage.page).toHaveScreenshot(); }); @@ -141,9 +134,7 @@ test("User opens user account", async ({ page }) => { const dashboardPage = new DashboardPage(page); await dashboardPage.goToDashboard(); - await expect(dashboardPage.userAccount).toBeVisible(); - await dashboardPage.goToAccount(); await expect(dashboardPage.page).toHaveScreenshot(); @@ -153,11 +144,9 @@ test("User goes to user profile", async ({ page }) => { const dashboardPage = new DashboardPage(page); await dashboardPage.goToDashboard(); - await dashboardPage.goToAccount(); await expect(dashboardPage.userAccountTitle).toBeVisible(); - await expect(dashboardPage.page).toHaveScreenshot(); }); @@ -165,13 +154,11 @@ test("User goes to password management section", async ({ page }) => { const dashboardPage = new DashboardPage(page); await dashboardPage.goToDashboard(); - await dashboardPage.goToAccount(); await page.getByText("Password").click(); await expect(page.getByRole("heading", { name: "Change Password" })).toBeVisible(); - await expect(dashboardPage.page).toHaveScreenshot(); }); @@ -179,91 +166,11 @@ test("User goes to settings section", async ({ page }) => { const dashboardPage = new DashboardPage(page); await dashboardPage.goToDashboard(); - await dashboardPage.goToAccount(); await page.getByTestId("settings-profile").click(); await expect(page.getByRole("heading", { name: "Settings" })).toBeVisible(); - - await expect(dashboardPage.page).toHaveScreenshot(); -}); - -test("User goes to an empty access tokens secction", async ({ page }) => { - const dashboardPage = new DashboardPage(page); - - await dashboardPage.goToDashboard(); - - await dashboardPage.setupAccessTokensEmpty(); - - await dashboardPage.goToAccount(); - - await page.getByText("Access tokens").click(); - - await expect(page.getByRole("heading", { name: "Personal access tokens" })).toBeVisible(); - - await expect(dashboardPage.page).toHaveScreenshot(); -}); - -test("User can create an access token", async ({ page }) => { - const dashboardPage = new DashboardPage(page); - - await dashboardPage.goToDashboard(); - - await dashboardPage.setupAccessTokensEmpty(); - - await dashboardPage.goToAccount(); - - await page.getByText("Access tokens").click(); - - await expect(page.getByRole("heading", { name: "Personal access tokens" })).toBeVisible(); - - await page.getByRole("button", { name: "Generate New Token" }).click(); - - await dashboardPage.createAccessToken(); - - await expect(page.getByPlaceholder("The name can help to know")).toBeVisible(); - - await page.getByPlaceholder("The name can help to know").fill("New token"); - - await expect(page.getByRole("button", { name: "Create token" })).not.toBeDisabled(); - - await page.getByRole("button", { name: "Create token" }).click(); - - await expect(page.getByRole("button", { name: "Create token" })).not.toBeVisible(); - - await expect(dashboardPage.page).toHaveScreenshot(); -}); - -test("User goes to a full access tokens secction", async ({ page }) => { - const dashboardPage = new DashboardPage(page); - - await dashboardPage.goToDashboard(); - - await dashboardPage.setupAccessTokens(); - - await dashboardPage.goToAccount(); - - await page.getByText("Access tokens").click(); - - await expect(page.getByRole("heading", { name: "Personal access tokens" })).toBeVisible(); - - await expect(page.getByText("new token", { exact: true })).toBeVisible(); - - await expect(dashboardPage.page).toHaveScreenshot(); -}); - -test("User goes to the feedback secction", async ({ page }) => { - const dashboardPage = new DashboardPage(page); - - await dashboardPage.goToDashboard(); - - await dashboardPage.goToAccount(); - - await page.getByText("Give feedback").click(); - - await expect(page.getByRole("heading", { name: "Email" })).toBeVisible(); - await expect(dashboardPage.page).toHaveScreenshot(); }); @@ -273,13 +180,11 @@ test("User opens teams selector with only one team", async ({ page }) => { const dashboardPage = new DashboardPage(page); await dashboardPage.goToDashboard(); - await expect(dashboardPage.titleLabel).toBeVisible(); await dashboardPage.teamDropdown.click(); await expect(page.getByText("Create new team")).toBeVisible(); - await expect(dashboardPage.page).toHaveScreenshot(); }); @@ -288,30 +193,25 @@ test("User opens teams selector with more than one team", async ({ page }) => { await dashboardPage.setupDashboardFull(); await dashboardPage.goToDashboard(); - await expect(dashboardPage.titleLabel).toBeVisible(); await dashboardPage.teamDropdown.click(); await expect(page.getByText("Second Team")).toBeVisible(); - await expect(dashboardPage.page).toHaveScreenshot(); }); test("User goes to second team", async ({ page }) => { const dashboardPage = new DashboardPage(page); await dashboardPage.setupDashboardFull(); - await dashboardPage.goToDashboard(); await dashboardPage.teamDropdown.click(); - await expect(page.getByText("Second Team")).toBeVisible(); await page.getByText("Second Team").click(); await expect(page.getByText("Team Up")).toBeVisible(); - await expect(dashboardPage.page).toHaveScreenshot(); }); @@ -320,13 +220,11 @@ test("User opens team management dropdown", async ({ page }) => { await dashboardPage.setupDashboardFull(); await dashboardPage.goToSecondTeamDashboard(); - await expect(page.getByText("Team Up")).toBeVisible(); await page.getByRole("button", { name: "team-management" }).click(); await expect(page.getByTestId("team-members")).toBeVisible(); - await expect(dashboardPage.page).toHaveScreenshot(); }); @@ -365,24 +263,20 @@ test("User goes to a complete invitations section", async ({ page }) => { await expect(dashboardPage.page).toHaveScreenshot(); }); - test("User invite people to the team", async ({ page }) => { const dashboardPage = new DashboardPage(page); await dashboardPage.setupDashboardFull(); await dashboardPage.setupTeamInvitationsEmpty(); await dashboardPage.goToSecondTeamInvitationsSection(); - await expect(page.getByTestId("invite-member")).toBeVisible(); await page.getByTestId("invite-member").click(); - await expect(page.getByText("Invite with the role")).toBeVisible(); await page.getByPlaceholder("Emails, comma separated").fill("test5@mail.com"); await expect(page.getByText("Send invitation")).not.toBeDisabled(); - await expect(dashboardPage.page).toHaveScreenshot(); }); @@ -394,7 +288,6 @@ test("User goes to an empty webhook section", async ({ page }) => { await dashboardPage.goToSecondTeamWebhooksSection(); await expect(page.getByText("No webhooks created so far.")).toBeVisible(); - await expect(dashboardPage.page).toHaveScreenshot(); }); @@ -406,7 +299,6 @@ test("User goes to a complete webhook section", async ({ page }) => { await dashboardPage.goToSecondTeamWebhooksSection(); await expect(page.getByText("https://www.google.com")).toBeVisible(); - await expect(dashboardPage.page).toHaveScreenshot(); }); @@ -418,6 +310,5 @@ test("User goes to the team settings section", async ({ page }) => { await dashboardPage.goToSecondTeamSettingsSection(); await expect(page.getByText("TEAM INFO")).toBeVisible(); - await expect(dashboardPage.page).toHaveScreenshot(); }); From c35a818d4cf48e1664ba3e1ef07aeb24895e589e Mon Sep 17 00:00:00 2001 From: Alejandro Alonso Date: Thu, 20 Jun 2024 11:49:10 +0200 Subject: [PATCH 212/476] :bug: Removing Underline and Strikethrough Affects the Previous Text Object --- CHANGES.md | 1 + .../app/main/ui/workspace/sidebar/options/menus/text.cljs | 8 ++++---- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index a4e36f19b1..eaf2c59a29 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -48,6 +48,7 @@ - Fix validation error when detaching with two nested copies and a swap [Taiga #8095](https://tree.taiga.io/project/penpot/issue/8095) - Export shapes that are rotated act a bit strange when reimported [Taiga #7585](https://tree.taiga.io/project/penpot/issue/7585) - Penpot crashes when a new colorpicker is created while uploading an image to another instance [Taiga #8119](https://tree.taiga.io/project/penpot/issue/8119) +- Removing Underline and Strikethrough Affects the Previous Text Object [Taiga #8103](https://tree.taiga.io/project/penpot/issue/8103) ## 2.0.3 diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/menus/text.cljs b/frontend/src/app/main/ui/workspace/sidebar/options/menus/text.cljs index 88a14cff0e..2f6f6b74c4 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options/menus/text.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/options/menus/text.cljs @@ -32,7 +32,7 @@ (let [{:keys [text-align]} values handle-change (mf/use-fn - (mf/deps on-blur) + (mf/deps on-change on-blur) (fn [value] (on-change {:text-align value}) (when (some? on-blur) (on-blur))))] @@ -64,7 +64,7 @@ (let [direction (:text-direction values) handle-change (mf/use-fn - (mf/deps direction) + (mf/deps on-change on-blur direction) (fn [value] (let [dir (if (= value direction) "none" @@ -93,7 +93,7 @@ vertical-align (or vertical-align "top") handle-change (mf/use-fn - (mf/deps on-blur) + (mf/deps on-change on-blur) (fn [value] (on-change {:vertical-align value}) (when (some? on-blur) (on-blur))))] @@ -154,7 +154,7 @@ (let [text-decoration (or (:text-decoration values) "none") handle-change (mf/use-fn - (mf/deps text-decoration) + (mf/deps on-change on-blur text-decoration) (fn [value] (let [decoration (if (= value text-decoration) "none" From 1845e759d369e9dc7a57fcb349252b0669918494 Mon Sep 17 00:00:00 2001 From: Eva Marco Date: Thu, 20 Jun 2024 14:55:37 +0200 Subject: [PATCH 213/476] :bug: Fix a small error on translations and on step number for event --- frontend/src/app/main/ui/onboarding/team_choice.cljs | 4 ++-- frontend/translations/en.po | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/frontend/src/app/main/ui/onboarding/team_choice.cljs b/frontend/src/app/main/ui/onboarding/team_choice.cljs index c1b939e4fa..4525d7b711 100644 --- a/frontend/src/app/main/ui/onboarding/team_choice.cljs +++ b/frontend/src/app/main/ui/onboarding/team_choice.cljs @@ -105,7 +105,7 @@ {::ev/name "onboarding-step" :label "team:create-team-and-invite-later" :team-name name - :step 7}) + :step 8}) (ptk/data-event ::ev/event {::ev/name "onboarding-finish"}))))) @@ -122,7 +122,7 @@ :invites (count emails) :team-name name :role (:role params) - :step 7}) + :step 8}) (ptk/data-event ::ev/event {::ev/name "onboarding-finish"}))))) diff --git a/frontend/translations/en.po b/frontend/translations/en.po index 095827bf98..7a972067de 100644 --- a/frontend/translations/en.po +++ b/frontend/translations/en.po @@ -2558,11 +2558,11 @@ msgstr "Prototyping" #: src/app/main/ui/onboarding/questions.cljs msgid "onboarding.questions.start-with.ds" -msgstr "Creating Desing Systems" +msgstr "Creating Design Systems" #: src/app/main/ui/onboarding/questions.cljs msgid "onboarding.questions.start-with.code" -msgstr "Generating real code designs" +msgstr "Generating real code from designs" #: src/app/main/ui/onboarding/questions.cljs msgid "onboarding.questions.step5.title" From 018464aedfc451834cc9cecd21d3e396b42bcee9 Mon Sep 17 00:00:00 2001 From: Pablo Alba Date: Mon, 27 May 2024 17:33:55 +0200 Subject: [PATCH 214/476] :recycle: Unify move shape on workspace and relocate on layers panel --- common/src/app/common/logic/shapes.cljc | 216 +++------- common/src/app/common/types/shape/layout.cljc | 12 +- .../logic/comp_remove_swap_slots_test.cljc | 398 ++++-------------- .../common_tests/logic/comp_reset_test.cljc | 28 +- .../common_tests/logic/comp_sync_test.cljc | 30 +- .../common_tests/logic/comp_touched_test.cljc | 28 +- .../common_tests/logic/move_shapes_test.cljc | 84 ++++ frontend/src/app/main/data/workspace.cljs | 15 +- .../app/main/data/workspace/transforms.cljs | 33 +- 9 files changed, 317 insertions(+), 527 deletions(-) create mode 100644 common/test/common_tests/logic/move_shapes_test.cljc diff --git a/common/src/app/common/logic/shapes.cljc b/common/src/app/common/logic/shapes.cljc index a48155f2e9..f5d38f0c27 100644 --- a/common/src/app/common/logic/shapes.cljc +++ b/common/src/app/common/logic/shapes.cljc @@ -204,15 +204,35 @@ (reduce ctp/remove-flow flows))))))] [all-parents changes])) -(defn generate-relocate-shapes [changes objects parents parent-id page-id to-index ids] - (let [groups-to-delete + +(defn generate-relocate + [changes objects parent-id page-id to-index ids & {:keys [cell ignore-parents?]}] + (let [ids (cfh/order-by-indexed-shapes objects ids) + shapes (map (d/getf objects) ids) + parent (get objects parent-id) + all-parents (into #{parent-id} (map #(cfh/get-parent-id objects %)) ids) + parents (if ignore-parents? #{parent-id} all-parents) + + children-ids + (->> ids + (mapcat #(cfh/get-children-ids-with-self objects %))) + + child-heads + (->> ids + (mapcat #(ctn/get-child-heads objects %)) + (map :id)) + + component-main-parent + (ctn/find-component-main objects parent false) + + groups-to-delete (loop [current-id (first parents) to-check (rest parents) removed-id? (set ids) result #{}] (if-not current-id - ;; Base case, no next element + ;; Base case, no next element result (let [group (get objects current-id)] @@ -220,14 +240,14 @@ (not= current-id parent-id) (empty? (remove removed-id? (:shapes group)))) - ;; Adds group to the remove and check its parent + ;; Adds group to the remove and check its parent (let [to-check (concat to-check [(cfh/get-parent-id objects current-id)])] (recur (first to-check) (rest to-check) (conj removed-id? current-id) (conj result current-id))) - ;; otherwise recur + ;; otherwise recur (recur (first to-check) (rest to-check) removed-id? @@ -248,7 +268,6 @@ #{} ids) - ;; TODO: Probably implementing this using loop/recur will ;; be more efficient than using reduce and continuous data ;; desturcturing. @@ -283,17 +302,7 @@ (->> ids (mapcat #(ctn/get-child-heads objects %)) (map :id))) - - shapes-to-unconstraint ids - - ordered-indexes (cfh/order-by-indexed-shapes objects ids) - shapes (map (d/getf objects) ordered-indexes) - parent (get objects parent-id) - component-main-parent (ctn/find-component-main objects parent false) - child-heads - (->> ordered-indexes - (mapcat #(ctn/get-child-heads objects %)) - (map :id))] + cell (or cell (ctl/get-cell-by-index parent to-index))] (-> changes (pcb/with-page-id page-id) @@ -301,18 +310,23 @@ ;; Remove layout-item properties when moving a shape outside a layout (cond-> (not (ctl/any-layout? parent)) - (pcb/update-shapes ordered-indexes ctl/remove-layout-item-data)) + (pcb/update-shapes ids ctl/remove-layout-item-data)) ;; Remove the hide in viewer flag (cond-> (and (not= uuid/zero parent-id) (cfh/frame-shape? parent)) - (pcb/update-shapes ordered-indexes #(cond-> % (cfh/frame-shape? %) (assoc :hide-in-viewer true)))) + (pcb/update-shapes ids #(cond-> % (cfh/frame-shape? %) (assoc :hide-in-viewer true)))) ;; Remove the swap slots if it is moving to a different component - (pcb/update-shapes child-heads - (fn [shape] - (cond-> shape - (not= component-main-parent (ctn/find-component-main objects shape false)) - (ctk/remove-swap-slot)))) + (pcb/update-shapes + child-heads + (fn [shape] + (cond-> shape + (not= component-main-parent (ctn/find-component-main objects shape false)) + (ctk/remove-swap-slot)))) + + ;; Remove component-root property when moving a shape inside a component + (cond-> (ctn/get-instance-root objects parent) + (pcb/update-shapes children-ids #(dissoc % :component-root))) ;; Add component-root property when moving a component outside a component (cond-> (not (ctn/get-instance-root objects parent)) @@ -345,7 +359,7 @@ (assoc shape :component-root true))) ;; Reset constraints depending on the new parent - (pcb/update-shapes shapes-to-unconstraint + (pcb/update-shapes ids (fn [shape] (let [frame-id (if (= (:type parent) :frame) (:id parent) @@ -370,153 +384,29 @@ (assoc :layout-item-v-sizing :fix)) parent))) - ;; Update grid layout + ;; Change the grid cell in a grid layout (cond-> (ctl/grid-layout? objects parent-id) - (pcb/update-shapes [parent-id] #(ctl/add-children-to-index % ids objects to-index))) - - (pcb/update-shapes parents - (fn [parent objects] - (cond-> parent - (ctl/grid-layout? parent) - (ctl/assign-cells objects))) - {:with-objects? true}) - - (pcb/reorder-grid-children parents) + (-> (pcb/update-shapes + [parent-id] + (fn [frame objects] + (-> frame + ;; Assign the cell when pushing into a specific grid cell + (cond-> (some? cell) + (-> (ctl/free-cell-shapes ids) + (ctl/push-into-cell ids (:row cell) (:column cell)) + (ctl/assign-cells objects))) + (ctl/assign-cell-positions objects))) + {:with-objects? true}) + (pcb/reorder-grid-children [parent-id]))) ;; If parent locked, lock the added shapes (cond-> (:blocked parent) - (pcb/update-shapes ordered-indexes #(assoc % :blocked true))) + (pcb/update-shapes ids #(assoc % :blocked true))) ;; Resize parent containers that need to (pcb/resize-parents parents)))) -(defn generate-move-shapes-to-frame - [changes ids frame-id page-id objects drop-index [row column :as cell]] - (let [lookup (d/getf objects) - frame (get objects frame-id) - layout? (:layout frame) - - component-main-frame (ctn/find-component-main objects frame false) - - shapes (->> ids - (cfh/clean-loops objects) - (keep lookup) - ;;remove shapes inside copies, because we can't change the structure of copies - (remove #(ctk/in-component-copy? (get objects (:parent-id %))))) - - moving-shapes - (cond->> shapes - (not layout?) - (remove #(= (:frame-id %) frame-id)) - - layout? - (remove #(and (= (:frame-id %) frame-id) - (not= (:parent-id %) frame-id)))) - - ordered-indexes (cfh/order-by-indexed-shapes objects (map :id moving-shapes)) - moving-shapes (map (d/getf objects) ordered-indexes) - - all-parents - (reduce (fn [res id] - (into res (cfh/get-parent-ids objects id))) - (d/ordered-set) - ids) - - find-all-empty-parents - (fn recursive-find-empty-parents [empty-parents] - (let [all-ids (into empty-parents ids) - contains? (partial contains? all-ids) - xform (comp (map lookup) - (filter cfh/group-shape?) - (remove #(->> (:shapes %) (remove contains?) seq)) - (map :id)) - parents (into #{} xform all-parents)] - (if (= empty-parents parents) - empty-parents - (recursive-find-empty-parents parents)))) - - empty-parents - ;; Any empty parent whose children are moved to another frame should be deleted - (if (empty? moving-shapes) - #{} - (into (d/ordered-set) (find-all-empty-parents #{}))) - - ;; Not move absolute shapes that won't change parent - moving-shapes - (->> moving-shapes - (remove (fn [shape] - (and (ctl/position-absolute? shape) - (= frame-id (:parent-id shape)))))) - - frame-component - (ctn/get-component-shape objects frame) - - shape-ids-to-detach - (reduce (fn [result shape] - (if (and (some? shape) (ctk/in-component-copy-not-head? shape)) - (let [shape-component (ctn/get-component-shape objects shape)] - (if (= (:id frame-component) (:id shape-component)) - result - (into result (cfh/get-children-ids-with-self objects (:id shape))))) - result)) - #{} - moving-shapes) - - moving-shapes-ids - (map :id moving-shapes) - - moving-shapes-children-ids - (->> moving-shapes-ids - (mapcat #(cfh/get-children-ids-with-self objects %))) - - child-heads - (->> moving-shapes-ids - (mapcat #(ctn/get-child-heads objects %)) - (map :id))] - (-> changes - (pcb/with-page-id page-id) - (pcb/with-objects objects) - - ;; Remove layout-item properties when moving a shape outside a layout - (cond-> (not (ctl/any-layout? objects frame-id)) - (pcb/update-shapes moving-shapes-ids ctl/remove-layout-item-data)) - - ;; Remove the swap slots if it is moving to a different component - (pcb/update-shapes - child-heads - (fn [shape] - (cond-> shape - (not= component-main-frame (ctn/find-component-main objects shape false)) - (ctk/remove-swap-slot)))) - - ;; Remove component-root property when moving a shape inside a component - (cond-> (ctn/get-instance-root objects frame) - (pcb/update-shapes moving-shapes-children-ids #(dissoc % :component-root))) - - ;; Add component-root property when moving a component outside a component - (cond-> (not (ctn/get-instance-root objects frame)) - (pcb/update-shapes child-heads #(assoc % :component-root true))) - - (pcb/update-shapes moving-shapes-ids #(cond-> % (cfh/frame-shape? %) (assoc :hide-in-viewer true))) - (pcb/update-shapes shape-ids-to-detach ctk/detach-shape) - (pcb/change-parent frame-id moving-shapes drop-index) - - ;; Change the grid cell in a grid layout - (cond-> (ctl/grid-layout? objects frame-id) - (-> (pcb/update-shapes - [frame-id] - (fn [frame objects] - (-> frame - ;; Assign the cell when pushing into a specific grid cell - (cond-> (some? cell) - (-> (ctl/free-cell-shapes moving-shapes-ids) - (ctl/push-into-cell moving-shapes-ids row column) - (ctl/assign-cells objects))) - (ctl/assign-cell-positions objects))) - {:with-objects? true}) - (pcb/reorder-grid-children [frame-id]))) - (pcb/remove-objects empty-parents)))) (defn change-show-in-viewer [shape hide?] diff --git a/common/src/app/common/types/shape/layout.cljc b/common/src/app/common/types/shape/layout.cljc index f791eaee13..d30598974f 100644 --- a/common/src/app/common/types/shape/layout.cljc +++ b/common/src/app/common/types/shape/layout.cljc @@ -1474,13 +1474,15 @@ (push-into-cell children row column)) (assign-cells objects)))) +(defn get-cell-by-index + [parent to-index] + (let [cells (get-cells parent {:sort? true :remove-empty? true}) + to-index (- (count cells) to-index)] + (nth cells to-index nil))) + (defn add-children-to-index [parent ids objects to-index] - (let [ids (into (d/ordered-set) ids) - cells (get-cells parent {:sort? true :remove-empty? true}) - to-index (- (count cells) to-index) - target-cell (nth cells to-index nil)] - + (let [target-cell (get-cell-by-index parent to-index)] (cond-> parent (some? target-cell) (add-children-to-cell ids objects [(:row target-cell) (:column target-cell)])))) diff --git a/common/test/common_tests/logic/comp_remove_swap_slots_test.cljc b/common/test/common_tests/logic/comp_remove_swap_slots_test.cljc index 3bf5d8ceba..0decac57ce 100644 --- a/common/test/common_tests/logic/comp_remove_swap_slots_test.cljc +++ b/common/test/common_tests/logic/comp_remove_swap_slots_test.cljc @@ -61,41 +61,12 @@ blue1 (ths/get-shape file :blue1) ;; ==== Action - changes (cls/generate-relocate-shapes (pcb/empty-changes nil) - (:objects page) - #{(:parent-id blue1)} ;; parents - uuid/zero ;; parent-id - (:id page) ;; page-id - 0 ;; to-index - #{(:id blue1)}) ;; ids - file' (thf/apply-changes file changes) - - ;; ==== Get - blue1' (ths/get-shape file' :blue1)] - - ;; ==== Check - - ;; blue1 had swap-id before move - (t/is (some? (ctk/get-swap-slot blue1))) - - ;; blue1 has not swap-id after move - (t/is (some? blue1')) - (t/is (nil? (ctk/get-swap-slot blue1'))))) - -(t/deftest test-remove-swap-slot-move-blue1-to-root - (let [;; ==== Setup - file (setup-file) - page (thf/current-page file) - blue1 (ths/get-shape file :blue1) - - ;; ==== Action - changes (cls/generate-move-shapes-to-frame (pcb/empty-changes nil) - #{(:id blue1)} ;; ids - uuid/zero ;; frame-id - (:id page) ;; page-id - (:objects page) ;; objects - 0 ;; drop-index - nil) ;; cell + changes (cls/generate-relocate (pcb/empty-changes nil) + (:objects page) + uuid/zero ;; parent-id + (:id page) ;; page-id + 0 ;; to-index + #{(:id blue1)}) ;; ids file' (thf/apply-changes file changes) @@ -111,7 +82,6 @@ (t/is (some? blue1')) (t/is (nil? (ctk/get-swap-slot blue1'))))) - (t/deftest test-remove-swap-slot-relocating-blue1-to-b2 (let [;; ==== Setup file (setup-file) @@ -121,43 +91,12 @@ ;; ==== Action - changes (cls/generate-relocate-shapes (pcb/empty-changes nil) - (:objects page) - #{(:parent-id blue1)} ;; parents - (:id b2) ;; parent-id - (:id page) ;; page-id - 0 ;; to-index - #{(:id blue1)}) ;; ids - file' (thf/apply-changes file changes) - - ;; ==== Get - blue1' (ths/get-shape file' :blue1)] - - ;; ==== Check - - ;; blue1 had swap-id before move - (t/is (some? (ctk/get-swap-slot blue1))) - - ;; blue1 has not swap-id after move - (t/is (some? blue1')) - (t/is (nil? (ctk/get-swap-slot blue1'))))) - -(t/deftest test-remove-swap-slot-move-blue1-to-b2 - (let [;; ==== Setup - file (setup-file) - page (thf/current-page file) - blue1 (ths/get-shape file :blue1) - b2 (ths/get-shape file :frame-b2) - - - ;; ==== Action - changes (cls/generate-move-shapes-to-frame (pcb/empty-changes nil) - #{(:id blue1)} ;; ids - (:id b2) ;; frame-id - (:id page) ;; page-id - (:objects page) ;; objects - 0 ;; drop-index - nil) ;; cell + changes (cls/generate-relocate (pcb/empty-changes nil) + (:objects page) + (:id b2) ;; parent-id + (:id page) ;; page-id + 0 ;; to-index + #{(:id blue1)}) ;; ids file' (thf/apply-changes file changes) @@ -182,26 +121,26 @@ ;; ==== Action ;; Move blue1 into yellow - changes (cls/generate-relocate-shapes (pcb/empty-changes nil) - (:objects page) - #{(:parent-id blue1)} ;; parents - (:id yellow) ;; parent-id - (:id page) ;; page-id - 0 ;; to-index - #{(:id blue1)}) ;; ids + changes (cls/generate-relocate (pcb/empty-changes nil) + (:objects page) + (:id yellow) ;; parent-id + (:id page) ;; page-id + 0 ;; to-index + #{(:id blue1)}) ;; ids + file' (thf/apply-changes file changes) page' (thf/current-page file') yellow' (ths/get-shape file' :frame-yellow) ;; Move yellow into root - changes' (cls/generate-relocate-shapes (pcb/empty-changes nil) - (:objects page') - #{(:parent-id yellow')} ;; parents - uuid/zero ;; parent-id - (:id page') ;; page-id - 0 ;; to-index - #{(:id yellow')}) ;; ids + changes' (cls/generate-relocate (pcb/empty-changes nil) + (:objects page') + uuid/zero ;; parent-id + (:id page') ;; page-id + 0 ;; to-index + #{(:id yellow')}) ;; ids + file'' (thf/apply-changes file' changes') ;; ==== Get @@ -216,50 +155,6 @@ (t/is (some? blue1'')) (t/is (nil? (ctk/get-swap-slot blue1''))))) -(t/deftest test-remove-swap-slot-move-yellow-to-root - (let [;; ==== Setup - file (setup-file) - page (thf/current-page file) - blue1 (ths/get-shape file :blue1) - yellow (ths/get-shape file :frame-yellow) - - ;; ==== Action - ;; Move blue1 into yellow - changes (cls/generate-move-shapes-to-frame (pcb/empty-changes nil) - #{(:id blue1)} ;; ids - (:id yellow) ;; frame-id - (:id page) ;; page-id - (:objects page) ;; objects - 0 ;; drop-index - nil) ;; cell - - file' (thf/apply-changes file changes) - page' (thf/current-page file') - yellow' (ths/get-shape file' :frame-yellow) - - ;; Move yellow into root - changes' (cls/generate-move-shapes-to-frame (pcb/empty-changes nil) - #{(:id yellow')} ;; ids - uuid/zero ;; frame-id - (:id page') ;; page-id - (:objects page') ;; objects - 0 ;; drop-index - nil) ;; cell - file'' (thf/apply-changes file' changes') - - ;; ==== Get - blue1'' (ths/get-shape file'' :blue1)] - - ;; ==== Check - - ;; blue1 had swap-id before move - (t/is (some? (ctk/get-swap-slot blue1))) - - ;; blue1 has not swap-id after move - (t/is (some? blue1'')) - (t/is (nil? (ctk/get-swap-slot blue1''))))) - - (t/deftest test-remove-swap-slot-relocating-yellow-to-b2 (let [;; ==== Setup file (setup-file) @@ -269,13 +164,13 @@ ;; ==== Action ;; Move blue1 into yellow - changes (cls/generate-relocate-shapes (pcb/empty-changes nil) - (:objects page) - #{(:parent-id blue1)} ;; parents - (:id yellow) ;; parent-id - (:id page) ;; page-id - 0 ;; to-index - #{(:id blue1)}) ;; ids + changes (cls/generate-relocate (pcb/empty-changes nil) + (:objects page) + (:id yellow) ;; parent-id + (:id page) ;; page-id + 0 ;; to-index + #{(:id blue1)}) ;; ids + file' (thf/apply-changes file changes) page' (thf/current-page file') @@ -283,57 +178,12 @@ b2' (ths/get-shape file' :frame-b2) ;; Move yellow into b2 - changes' (cls/generate-relocate-shapes (pcb/empty-changes nil) - (:objects page') - #{(:parent-id yellow')} ;; parents - (:id b2') ;; parent-id - (:id page') ;; page-id - 0 ;; to-index - #{(:id yellow')}) ;; ids - file'' (thf/apply-changes file' changes') - - ;; ==== Get - blue1'' (ths/get-shape file'' :blue1)] - - ;; ==== Check - - ;; blue1 had swap-id before move - (t/is (some? (ctk/get-swap-slot blue1))) - - ;; blue1 has not swap-id after move - (t/is (some? blue1'')) - (t/is (nil? (ctk/get-swap-slot blue1''))))) - -(t/deftest test-remove-swap-slot-move-yellow-to-b2 - (let [;; ==== Setup - file (setup-file) - page (thf/current-page file) - blue1 (ths/get-shape file :blue1) - yellow (ths/get-shape file :frame-yellow) - - ;; ==== Action - ;; Move blue1 into yellow - changes (cls/generate-move-shapes-to-frame (pcb/empty-changes nil) - #{(:id blue1)} ;; ids - (:id yellow) ;; frame-id - (:id page) ;; page-id - (:objects page) ;; objects - 0 ;; drop-index - nil) ;; cell - - file' (thf/apply-changes file changes) - page' (thf/current-page file') - yellow' (ths/get-shape file' :frame-yellow) - b2' (ths/get-shape file' :frame-b2) - - ;; Move yellow into b2 - changes' (cls/generate-move-shapes-to-frame (pcb/empty-changes nil) - #{(:id yellow')} ;; ids - (:id b2') ;; frame-id - (:id page') ;; page-id - (:objects page') ;; objects - 0 ;; drop-index - nil) ;; cell + changes' (cls/generate-relocate (pcb/empty-changes nil) + (:objects page') + (:id b2') ;; parent-id + (:id page') ;; page-id + 0 ;; to-index + #{(:id yellow')}) ;; ids file'' (thf/apply-changes file' changes') @@ -404,13 +254,12 @@ ;; ==== Action ;; Move blue1 into yellow - changes (cls/generate-move-shapes-to-frame (pcb/empty-changes nil) - #{(:id blue1)} ;; ids - (:id yellow) ;; frame-id - (:id page) ;; page-id - (:objects page) ;; objects - 0 ;; drop-index - nil) ;; cell + changes (cls/generate-relocate (pcb/empty-changes nil) + (:objects page) + (:id yellow) ;; parent-id + (:id page) ;; page-id + 0 ;; to-index + #{(:id blue1)}) ;; ids file' (thf/apply-changes file changes) page' (thf/current-page file') @@ -459,13 +308,13 @@ blue1 (ths/get-shape file :blue1) ;; ==== Action - changes (cls/generate-relocate-shapes (pcb/empty-changes nil) - (:objects page) - #{(:parent-id blue1)} ;; parents - (:parent-id blue1) ;; parent-id - (:id page) ;; page-id - 2 ;; to-index - #{(:id blue1)}) ;; ids + changes (cls/generate-relocate (pcb/empty-changes nil) + (:objects page) + (:parent-id blue1) ;; parent-id + (:id page) ;; page-id + 2 ;; to-index + #{(:id blue1)}) ;; ids + file' (thf/apply-changes file changes) ;; ==== Get @@ -489,13 +338,12 @@ ;; ==== Action ;; Move blue1 into yellow - changes (cls/generate-move-shapes-to-frame (pcb/empty-changes nil) - #{(:id blue1)} ;; ids - (:id yellow) ;; frame-id - (:id page) ;; page-id - (:objects page) ;; objects - 0 ;; drop-index - nil) ;; cell + changes (cls/generate-relocate (pcb/empty-changes nil) + (:objects page) + (:id yellow) ;; parent-id + (:id page) ;; page-id + 0 ;; to-index + #{(:id blue1)}) ;; ids file' (thf/apply-changes file changes) @@ -503,13 +351,12 @@ page' (thf/current-page file') blue1' (ths/get-shape file' :blue1) b1' (ths/get-shape file' :frame-b1) - changes' (cls/generate-move-shapes-to-frame (pcb/empty-changes nil) - #{(:id blue1')} ;; ids - (:id b1') ;; frame-id - (:id page') ;; page-id - (:objects page') ;; objects - 0 ;; drop-index - nil) ;; cell + changes' (cls/generate-relocate (pcb/empty-changes nil) + (:objects page') + (:id b1') ;; parent-id + (:id page) ;; page-id + 0 ;; to-index + #{(:id blue1')}) ;; ids file'' (thf/apply-changes file' changes') @@ -535,13 +382,13 @@ ;; ==== Action ;; Relocate blue1 into yellow - changes (cls/generate-relocate-shapes (pcb/empty-changes nil) - (:objects page) - #{(:parent-id blue1)} ;; parents - (:id yellow) ;; parent-id - (:id page) ;; page-id - 0 ;; to-index - #{(:id blue1)}) ;; ids + changes (cls/generate-relocate (pcb/empty-changes nil) + (:objects page) + (:id yellow) ;; parent-id + (:id page) ;; page-id + 0 ;; to-index + #{(:id blue1)}) ;; ids + file' (thf/apply-changes file changes) @@ -549,13 +396,13 @@ page' (thf/current-page file') blue1' (ths/get-shape file' :blue1) b1' (ths/get-shape file' :frame-b1) - changes' (cls/generate-relocate-shapes (pcb/empty-changes nil) - (:objects page') - #{(:parent-id blue1')} ;; parents - (:id b1') ;; parent-id - (:id page') ;; page-id - 0 ;; to-index - #{(:id blue1')}) ;; ids + changes' (cls/generate-relocate (pcb/empty-changes nil) + (:objects page') + (:id b1') ;; parent-id + (:id page') ;; page-id + 0 ;; to-index + #{(:id blue1')}) ;; ids + file'' (thf/apply-changes file' changes') @@ -581,43 +428,12 @@ green-copy (ths/get-shape file :green-copy) ;; ==== Action - changes (cls/generate-relocate-shapes (pcb/empty-changes nil) - (:objects page) - #{(:parent-id green-copy)} ;; parents - uuid/zero ;; parent-id - (:id page) ;; page-id - 0 ;; to-index - #{(:id green-copy)}) ;; ids - file' (thf/apply-changes file changes) - - ;; ==== Get - blue2' (ths/get-shape file' :blue2)] - - ;; ==== Check - - ;; blue2 had swap-id before move - (t/is (some? (ctk/get-swap-slot blue2))) - - ;; blue1still has swap-id after move - (t/is (some? blue2')) - (t/is (some? (ctk/get-swap-slot blue2'))))) - -(t/deftest test-remove-swap-slot-moving-green-copy-to-root - (let [;; ==== Setup - file (setup-file) - - page (thf/current-page file) - blue2 (ths/get-shape file :blue2) - green-copy (ths/get-shape file :green-copy) - - ;; ==== Action - changes (cls/generate-move-shapes-to-frame (pcb/empty-changes nil) - #{(:id green-copy)} ;; ids - uuid/zero ;; frame-id - (:id page) ;; page-id - (:objects page) ;; objects - 0 ;; drop-index - nil) ;; cell + changes (cls/generate-relocate (pcb/empty-changes nil) + (:objects page) + uuid/zero ;; parent-id + (:id page) ;; page-id + 0 ;; to-index + #{(:id green-copy)}) ;; ids file' (thf/apply-changes file changes) @@ -633,7 +449,6 @@ (t/is (some? blue2')) (t/is (some? (ctk/get-swap-slot blue2'))))) - (t/deftest test-remove-swap-slot-relocating-green-copy-to-b2 (let [;; ==== Setup file (setup-file) @@ -644,44 +459,12 @@ b2 (ths/get-shape file :frame-b2) ;; ==== Action - changes (cls/generate-relocate-shapes (pcb/empty-changes nil) - (:objects page) - #{(:parent-id green-copy)} ;; parents - (:id b2) ;; parent-id - (:id page) ;; page-id - 0 ;; to-index - #{(:id green-copy)}) ;; ids - file' (thf/apply-changes file changes) - - ;; ==== Get - blue2' (ths/get-shape file' :blue2)] - - ;; ==== Check - - ;; blue2 had swap-id before move - (t/is (some? (ctk/get-swap-slot blue2))) - - ;; blue1still has swap-id after move - (t/is (some? blue2')) - (t/is (some? (ctk/get-swap-slot blue2'))))) - -(t/deftest test-remove-swap-slot-moving-green-copy-to-b2 - (let [;; ==== Setup - file (setup-file) - - page (thf/current-page file) - blue2 (ths/get-shape file :blue2) - green-copy (ths/get-shape file :green-copy) - b2 (ths/get-shape file :frame-b2) - - ;; ==== Action - changes (cls/generate-move-shapes-to-frame (pcb/empty-changes nil) - #{(:id green-copy)} ;; ids - (:id b2) ;; frame-id - (:id page) ;; page-id - (:objects page) ;; objects - 0 ;; drop-index - nil) ;; cell + changes (cls/generate-relocate (pcb/empty-changes nil) + (:objects page) + (:id b2) ;; parent-id + (:id page) ;; page-id + 0 ;; to-index + #{(:id green-copy)}) ;; ids file' (thf/apply-changes file changes) @@ -697,7 +480,6 @@ (t/is (some? blue2')) (t/is (some? (ctk/get-swap-slot blue2'))))) - (t/deftest test-remove-swap-slot-duplicating-green-copy (let [;; ==== Setup file (setup-file) diff --git a/common/test/common_tests/logic/comp_reset_test.cljc b/common/test/common_tests/logic/comp_reset_test.cljc index d7f441ed94..1c663917e9 100644 --- a/common/test/common_tests/logic/comp_reset_test.cljc +++ b/common/test/common_tests/logic/comp_reset_test.cljc @@ -136,13 +136,13 @@ ;; IMPORTANT: as modifying copies structure is now forbidden, this action ;; will not have any effect, and so the parent shape won't also be touched. - changes (cls/generate-relocate-shapes (pcb/empty-changes) - (:objects page) - #{(:parent-id copy-root)} ; parents - (thi/id :copy-root) ; parent-id - (:id page) ; page-id - 0 ; to-index - #{(thi/id :free-shape)}) ; ids + changes (cls/generate-relocate (pcb/empty-changes) + (:objects page) + (thi/id :copy-root) ; parent-id + (:id page) ; page-id + 0 ; to-index + #{(thi/id :free-shape)}) ; ids + file-mdf (thf/apply-changes file changes) page-mdf (thf/current-page file-mdf) @@ -231,13 +231,13 @@ ;; IMPORTANT: as modifying copies structure is now forbidden, this action ;; will not have any effect, and so the parent shape won't also be touched. - changes (cls/generate-relocate-shapes (pcb/empty-changes) - (:objects page) - #{(:parent-id copy-child1)} ; parents - (thi/id :copy-root) ; parent-id - (:id page) ; page-id - 2 ; to-index - #{(:id copy-child1)}) ; ids + changes (cls/generate-relocate (pcb/empty-changes) + (:objects page) + (thi/id :copy-root) ; parent-id + (:id page) ; page-id + 2 ; to-index + #{(:id copy-child1)}) ; ids + file-mdf (thf/apply-changes file changes) page-mdf (thf/current-page file-mdf) diff --git a/common/test/common_tests/logic/comp_sync_test.cljc b/common/test/common_tests/logic/comp_sync_test.cljc index 75abacea39..94f093ff38 100644 --- a/common/test/common_tests/logic/comp_sync_test.cljc +++ b/common/test/common_tests/logic/comp_sync_test.cljc @@ -196,13 +196,15 @@ main-root (ths/get-shape file :main-root) ;; ==== Action - changes1 (cls/generate-relocate-shapes (pcb/empty-changes) - (:objects page) - #{(:parent-id main-root)} ; parents - (thi/id :main-root) ; parent-id - (:id page) ; page-id - 0 ; to-index - #{(thi/id :free-shape)}) ; ids + changes1 (cls/generate-relocate (pcb/empty-changes) + (:objects page) + (thi/id :main-root) ; parent-id + (:id page) ; page-id + 0 ; to-index + #{(thi/id :free-shape)}) ; ids + + + updated-file (thf/apply-changes file changes1) @@ -294,13 +296,13 @@ main-child1 (ths/get-shape file :main-child1) ;; ==== Action - changes1 (cls/generate-relocate-shapes (pcb/empty-changes) - (:objects page) - #{(:parent-id main-child1)} ; parents - (thi/id :main-root) ; parent-id - (:id page) ; page-id - 2 ; to-index - #{(:id main-child1)}) ; ids + changes1 (cls/generate-relocate (pcb/empty-changes) + (:objects page) + (thi/id :main-root) ; parent-id + (:id page) ; page-id + 2 ; to-index + #{(:id main-child1)}) ; ids + updated-file (thf/apply-changes file changes1) diff --git a/common/test/common_tests/logic/comp_touched_test.cljc b/common/test/common_tests/logic/comp_touched_test.cljc index a0907e37c0..1f16a21070 100644 --- a/common/test/common_tests/logic/comp_touched_test.cljc +++ b/common/test/common_tests/logic/comp_touched_test.cljc @@ -112,13 +112,13 @@ ;; IMPORTANT: as modifying copies structure is now forbidden, this action ;; will not have any effect, and so the parent shape won't also be touched. - changes (cls/generate-relocate-shapes (pcb/empty-changes) - (:objects page) - #{(:parent-id copy-root)} ; parents - (thi/id :copy-root) ; parent-id - (:id page) ; page-id - 0 ; to-index - #{(thi/id :free-shape)}) ; ids + changes (cls/generate-relocate (pcb/empty-changes) + (:objects page) + (thi/id :copy-root) ; parent-id + (:id page) ; page-id + 0 ; to-index + #{(thi/id :free-shape)}) ; ids + file' (thf/apply-changes file changes) @@ -187,13 +187,13 @@ ;; IMPORTANT: as modifying copies structure is now forbidden, this action ;; will not have any effect, and so the parent shape won't also be touched. - changes (cls/generate-relocate-shapes (pcb/empty-changes) - (:objects page) - #{(:parent-id copy-child1)} ; parents - (thi/id :copy-root) ; parent-id - (:id page) ; page-id - 2 ; to-index - #{(:id copy-child1)}) ; ids + changes (cls/generate-relocate (pcb/empty-changes) + (:objects page) + (thi/id :copy-root) ; parent-id + (:id page) ; page-id + 2 ; to-index + #{(:id copy-child1)}) ; ids + file' (thf/apply-changes file changes) diff --git a/common/test/common_tests/logic/move_shapes_test.cljc b/common/test/common_tests/logic/move_shapes_test.cljc new file mode 100644 index 0000000000..f85a72cbeb --- /dev/null +++ b/common/test/common_tests/logic/move_shapes_test.cljc @@ -0,0 +1,84 @@ +;; This Source Code Form is subject to the terms of the Mozilla Public +;; License, v. 2.0. If a copy of the MPL was not distributed with this +;; file, You can obtain one at http://mozilla.org/MPL/2.0/. +;; +;; Copyright (c) KALEIDOS INC + +(ns common-tests.logic.move-shapes-test + (:require + [app.common.files.changes-builder :as pcb] + [app.common.logic.shapes :as cls] + [app.common.test-helpers.compositions :as tho] + [app.common.test-helpers.files :as thf] + [app.common.test-helpers.ids-map :as thi] + [app.common.test-helpers.shapes :as ths] + [app.common.uuid :as uuid] + [clojure.test :as t])) + +(t/use-fixtures :each thi/test-fixture) + +(t/deftest test-relocate-shape + (let [;; ==== Setup + file (-> (thf/sample-file :file1) + (tho/add-frame :frame-to-move) + (tho/add-frame :frame-parent)) + + page (thf/current-page file) + frame-to-move (ths/get-shape file :frame-to-move) + frame-parent (ths/get-shape file :frame-parent) + + ;; ==== Action + + changes (cls/generate-relocate (pcb/empty-changes nil) + (:objects page) + (:id frame-parent) ;; parent-id + (:id page) ;; page-id + 0 ;; to-index + #{(:id frame-to-move)}) ;; ids + + file' (thf/apply-changes file changes) + + ;; ==== Get + frame-to-move' (ths/get-shape file' :frame-to-move) + frame-parent' (ths/get-shape file' :frame-parent)] + + ;; ==== Check + ;; frame-to-move has moved + (t/is (= (:parent-id frame-to-move) uuid/zero)) + (t/is (= (:parent-id frame-to-move') (:id frame-parent'))))) + + +(t/deftest test-relocate-shape-out-of-group + (let [;; ==== Setup + file (-> (thf/sample-file :file1) + (tho/add-frame :frame-1) + (tho/add-group :group-1 :parent-label :frame-1) + (ths/add-sample-shape :circle-1 :parent-label :group-1)) + + page (thf/current-page file) + circle (ths/get-shape file :circle-1) + group (ths/get-shape file :group-1) + + ;; ==== Action + + changes (cls/generate-relocate (pcb/empty-changes nil) + (:objects page) + uuid/zero ;; parent-id + (:id page) ;; page-id + 0 ;; to-index + #{(:id circle)}) ;; ids + + + file' (thf/apply-changes file changes) + + ;; ==== Get + circle' (ths/get-shape file' :circle-1) + group' (ths/get-shape file' :group-1)] + + ;; ==== Check + + ;; the circle has moved, and the group is deleted + (t/is (= (:parent-id circle) (:id group))) + (t/is (= (:parent-id circle') uuid/zero)) + (t/is group) + (t/is (nil? group')))) \ No newline at end of file diff --git a/frontend/src/app/main/data/workspace.cljs b/frontend/src/app/main/data/workspace.cljs index fd4fa64c99..3c0e9229ca 100644 --- a/frontend/src/app/main/data/workspace.cljs +++ b/frontend/src/app/main/data/workspace.cljs @@ -856,15 +856,14 @@ ids (filter #(not (cfh/is-parent? objects parent-id %)) ids) all-parents (into #{parent-id} (map #(cfh/get-parent-id objects %)) ids) - parents (if ignore-parents? #{parent-id} all-parents) - changes (cls/generate-relocate-shapes (pcb/empty-changes it) - objects - parents - parent-id - page-id - to-index - ids) + changes (cls/generate-relocate (pcb/empty-changes it) + objects + parent-id + page-id + to-index + ids + :ignore-parents? ignore-parents?) undo-id (js/Symbol)] (rx/of (dwu/start-undo-transaction undo-id) diff --git a/frontend/src/app/main/data/workspace/transforms.cljs b/frontend/src/app/main/data/workspace/transforms.cljs index abb7a7c83b..3107f9ace3 100644 --- a/frontend/src/app/main/data/workspace/transforms.cljs +++ b/frontend/src/app/main/data/workspace/transforms.cljs @@ -832,6 +832,30 @@ :ignore-constraints false :ignore-snap-pixel true})))))) +(defn- cleanup-invalid-moving-shapes [ids objects frame-id] + (let [lookup (d/getf objects) + frame (get objects frame-id) + layout? (:layout frame) + + shapes (->> ids + set + (cfh/clean-loops objects) + (keep lookup) + ;;remove shapes inside copies, because we can't change the structure of copies + (remove #(ctk/in-component-copy? (get objects (:parent-id %)))) + ;; remove absolute shapes that won't change parent + (remove #(and (ctl/position-absolute? %) (= frame-id (:parent-id %))))) + + shapes + (cond->> shapes + (not layout?) + (remove #(= (:frame-id %) frame-id)) + + layout? + (remove #(and (= (:frame-id %) frame-id) + (not= (:parent-id %) frame-id))))] + (map :id shapes))) + (defn move-shapes-to-frame [ids frame-id drop-index cell] (ptk/reify ::move-shapes-to-frame @@ -839,7 +863,14 @@ (watch [it state _] (let [page-id (:current-page-id state) objects (wsh/lookup-page-objects state page-id) - changes (cls/generate-move-shapes-to-frame (pcb/empty-changes it) ids frame-id page-id objects drop-index cell)] + ids (cleanup-invalid-moving-shapes ids objects frame-id) + changes (cls/generate-relocate (pcb/empty-changes it) + objects + frame-id + page-id + drop-index + ids + :cell cell)] (when (and (some? frame-id) (d/not-empty? changes)) (rx/of (dch/commit-changes changes) From 8e9e967f8291dcd60d4f12b56f65122a89dc3e8b Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Thu, 20 Jun 2024 16:34:01 +0200 Subject: [PATCH 215/476] :bug: Remove climit setup for delete-file-object-thumbnail RPC method --- backend/src/app/rpc/commands/files_thumbnails.clj | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/backend/src/app/rpc/commands/files_thumbnails.clj b/backend/src/app/rpc/commands/files_thumbnails.clj index 57c9d933d7..760e3bcd3a 100644 --- a/backend/src/app/rpc/commands/files_thumbnails.clj +++ b/backend/src/app/rpc/commands/files_thumbnails.clj @@ -321,18 +321,14 @@ (sv/defmethod ::delete-file-object-thumbnail {::doc/added "1.19" ::doc/module :files - ::doc/deprecated "1.20" - ::climit/id [[:file-thumbnail-ops/by-profile ::rpc/profile-id] - [:file-thumbnail-ops/global]] ::audit/skip true} [cfg {:keys [::rpc/profile-id file-id object-id]}] + (files/check-edition-permissions! cfg profile-id file-id) (db/tx-run! cfg (fn [{:keys [::db/conn] :as cfg}] - (files/check-edition-permissions! conn profile-id file-id) - (when-not (db/read-only? conn) - (-> cfg - (update ::sto/storage media/configure-assets-storage conn) - (delete-file-object-thumbnail! file-id object-id)) - nil)))) + (-> cfg + (update ::sto/storage media/configure-assets-storage conn) + (delete-file-object-thumbnail! file-id object-id)) + nil))) ;; --- MUTATION COMMAND: create-file-thumbnail From 7b1bda3a49c74939142c130a9fd2d95c63a97ae2 Mon Sep 17 00:00:00 2001 From: AzazelN28 Date: Thu, 20 Jun 2024 16:29:57 +0200 Subject: [PATCH 216/476] :recycle: Refactor component thumbnails as configurable --- frontend/src/app/config.cljs | 3 ++- frontend/src/app/main/data/workspace/libraries.cljs | 3 ++- frontend/src/app/main/ui/workspace/sidebar/assets/common.cljs | 3 ++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/frontend/src/app/config.cljs b/frontend/src/app/config.cljs index 098dc12484..47b7752faa 100644 --- a/frontend/src/app/config.cljs +++ b/frontend/src/app/config.cljs @@ -69,7 +69,8 @@ :enable-onboarding-questions :enable-onboarding-newsletter :enable-dashboard-templates-section - :enable-google-fonts-provider]) + :enable-google-fonts-provider + :enable-component-thumbnails]) (defn- parse-flags [global] diff --git a/frontend/src/app/main/data/workspace/libraries.cljs b/frontend/src/app/main/data/workspace/libraries.cljs index c9be059e2f..b8f7004722 100644 --- a/frontend/src/app/main/data/workspace/libraries.cljs +++ b/frontend/src/app/main/data/workspace/libraries.cljs @@ -24,6 +24,7 @@ [app.common.types.shape.layout :as ctl] [app.common.types.typography :as ctt] [app.common.uuid :as uuid] + [app.config :as cf] [app.main.data.changes :as dch] [app.main.data.comments :as dc] [app.main.data.events :as ev] @@ -1203,7 +1204,7 @@ (rx/debounce 5000) (rx/tap #(log/trc :hint "buffer initialized")))] - (when components-v2? + (when (and components-v2? (contains? cf/flags :component-thumbnails)) (->> (rx/merge changes-s diff --git a/frontend/src/app/main/ui/workspace/sidebar/assets/common.cljs b/frontend/src/app/main/ui/workspace/sidebar/assets/common.cljs index e3a1cf3727..2e247e0f17 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/assets/common.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/assets/common.cljs @@ -14,6 +14,7 @@ [app.common.types.component :as ctk] [app.common.types.container :as ctn] [app.common.types.file :as ctf] + [app.config :as cf] [app.main.data.modal :as modal] [app.main.data.workspace :as dw] [app.main.data.workspace.libraries :as dwl] @@ -287,7 +288,7 @@ (when (< @retry 3) (inc retry))))] - (if (some? thumbnail-uri) + (if (and (some? thumbnail-uri) (contains? cf/flags :component-thumbnails)) [:& component-svg-thumbnail {:thumbnail-uri thumbnail-uri :class class From a59f31ebe50724b35a93e56adba74a877b340230 Mon Sep 17 00:00:00 2001 From: Alejandro Alonso Date: Tue, 18 Jun 2024 10:24:05 +0200 Subject: [PATCH 217/476] :sparkles: Refactor data-test attribute --- frontend/src/app/main/ui/auth/login.cljs | 10 ++--- .../app/main/ui/auth/recovery_request.cljs | 4 +- frontend/src/app/main/ui/auth/register.cljs | 10 ++--- .../main/ui/components/context_menu_a11y.cljs | 14 +++--- .../app/main/ui/components/file_uploader.cljs | 4 +- .../src/app/main/ui/components/forms.cljs | 4 +- frontend/src/app/main/ui/components/link.cljs | 5 +-- .../app/main/ui/components/link_button.cljs | 4 +- .../src/app/main/ui/dashboard/comments.cljs | 2 +- .../src/app/main/ui/dashboard/file_menu.cljs | 24 +++++------ frontend/src/app/main/ui/dashboard/files.cljs | 4 +- frontend/src/app/main/ui/dashboard/fonts.cljs | 4 +- .../app/main/ui/dashboard/placeholder.cljs | 2 +- .../app/main/ui/dashboard/project_menu.cljs | 10 ++--- .../src/app/main/ui/dashboard/projects.cljs | 6 +-- .../src/app/main/ui/dashboard/sidebar.cljs | 34 ++++++--------- frontend/src/app/main/ui/dashboard/team.cljs | 1 - .../app/main/ui/onboarding/newsletter.cljs | 2 +- .../src/app/main/ui/onboarding/templates.cljs | 2 +- frontend/src/app/main/ui/settings.cljs | 2 +- .../app/main/ui/settings/change_email.cljs | 4 +- .../app/main/ui/settings/delete_account.cljs | 2 +- .../src/app/main/ui/settings/options.cljs | 8 ++-- .../src/app/main/ui/settings/password.cljs | 2 +- .../src/app/main/ui/settings/profile.cljs | 4 +- .../src/app/main/ui/settings/sidebar.cljs | 7 ++- .../src/app/main/ui/workspace/main_menu.cljs | 43 +++++++++---------- .../app/main/ui/workspace/sidebar/assets.cljs | 12 +++--- .../sidebar/options/rows/stroke_row.cljs | 4 +- .../main/ui/workspace/sidebar/sitemap.cljs | 2 +- .../app/main/ui/workspace/top_toolbar.cljs | 10 ++--- 31 files changed, 118 insertions(+), 128 deletions(-) diff --git a/frontend/src/app/main/ui/auth/login.cljs b/frontend/src/app/main/ui/auth/login.cljs index 354ae8d41b..389a901f5d 100644 --- a/frontend/src/app/main/ui/auth/login.cljs +++ b/frontend/src/app/main/ui/auth/login.cljs @@ -159,7 +159,7 @@ [:& context-notification {:type :error :content message - :data-test "login-banner" + :data-testid "login-banner" :role "alert"}]) [:& fm/form {:on-submit on-submit @@ -185,7 +185,7 @@ [:div {:class (stl/css :fields-row :forgot-password)} [:& lk/link {:action on-recovery-request :class (stl/css :forgot-pass-link) - :data-test "forgot-password"} + :data-testid "forgot-password"} (tr "auth.forgot-password")]]) [:div {:class (stl/css :buttons-stack)} @@ -193,7 +193,7 @@ (contains? cf/flags :login-with-password)) [:> fm/submit-button* {:label (tr "auth.login-submit") - :data-test "login-submit" + :data-testid "login-submit" :class (stl/css :login-button)}]) (when (contains? cf/flags :login-with-ldap) @@ -279,7 +279,7 @@ [:div {:class (stl/css :auth-form-wrapper)} [:h1 {:class (stl/css :auth-title) - :data-test "login-title"} (tr "auth.login-account-title")] + :data-testid "login-title"} (tr "auth.login-account-title")] [:p {:class (stl/css :auth-tagline)} (tr "auth.login-tagline")] @@ -298,5 +298,5 @@ (tr "auth.register") " "] [:& lk/link {:action go-register :class (stl/css :register-link) - :data-test "register-submit"} + :data-testid "register-submit"} (tr "auth.register-submit")]])]])) diff --git a/frontend/src/app/main/ui/auth/recovery_request.cljs b/frontend/src/app/main/ui/auth/recovery_request.cljs index e0b36faa07..43988fb3c8 100644 --- a/frontend/src/app/main/ui/auth/recovery_request.cljs +++ b/frontend/src/app/main/ui/auth/recovery_request.cljs @@ -86,7 +86,7 @@ [:> fm/submit-button* {:label (tr "auth.recovery-request-submit") - :data-test "recovery-resquest-submit" + :data-testid "recovery-resquest-submit" :class (stl/css :recover-btn)}]])) @@ -106,5 +106,5 @@ [:div {:class (stl/css :go-back)} [:& lk/link {:action go-back :class (stl/css :go-back-link) - :data-test "go-back-link"} + :data-testid "go-back-link"} (tr "labels.go-back")]]])) diff --git a/frontend/src/app/main/ui/auth/register.cljs b/frontend/src/app/main/ui/auth/register.cljs index 54da6e9764..1c1d0c5a16 100644 --- a/frontend/src/app/main/ui/auth/register.cljs +++ b/frontend/src/app/main/ui/auth/register.cljs @@ -106,7 +106,7 @@ [:& fm/input {:type "text" :name :email :label (tr "auth.work-email") - :data-test "email-input" + :data-testid "email-input" :show-success? true :class (stl/css :form-field)}]] [:div {:class (stl/css :fields-row)} @@ -120,7 +120,7 @@ [:> fm/submit-button* {:label (tr "auth.register-submit") :disabled @submitted? - :data-test "register-form-submit" + :data-testid "register-form-submit" :class (stl/css :register-btn)}]])) (mf/defc register-methods @@ -137,7 +137,7 @@ [{:keys [params]}] [:div {:class (stl/css :auth-form-wrapper :register-form)} [:h1 {:class (stl/css :auth-title) - :data-test "registration-title"} (tr "auth.register-title")] + :data-testid "registration-title"} (tr "auth.register-title")] [:p {:class (stl/css :auth-tagline)} (tr "auth.register-tagline")] @@ -151,7 +151,7 @@ [:span {:class (stl/css :account-text)} (tr "auth.already-have-account") " "] [:& lk/link {:action #(st/emit! (rt/nav :auth-login {} params)) :class (stl/css :account-link) - :data-test "login-here-link"} + :data-testid "login-here-link"} (tr "auth.login-here")]] (when (contains? cf/flags :demo-users) @@ -272,7 +272,7 @@ [:a {:href "#/" :title "Penpot" :class (stl/css :logo-btn)} i/logo]] [:div {:class (stl/css :auth-title-wrapper)} [:h2 {:class (stl/css :auth-title) - :data-test "register-title"} (tr "auth.register-account-title")] + :data-testid "register-title"} (tr "auth.register-account-title")] [:div {:class (stl/css :auth-subtitle)} (tr "auth.register-account-tagline")]] [:& register-validate-form {:params params}] diff --git a/frontend/src/app/main/ui/components/context_menu_a11y.cljs b/frontend/src/app/main/ui/components/context_menu_a11y.cljs index 0787b69e7c..ea81d8d503 100644 --- a/frontend/src/app/main/ui/components/context_menu_a11y.cljs +++ b/frontend/src/app/main/ui/components/context_menu_a11y.cljs @@ -39,7 +39,7 @@ id (gobj/get props "id") klass (gobj/get props "class") key-index (gobj/get props "key-index") - data-test (gobj/get props "data-test")] + data-testid (gobj/get props "data-testid")] [:li {:id id :class klass :tab-index "0" @@ -47,7 +47,7 @@ :on-click on-click :key key-index :role "menuitem" - :data-test data-test} + :data-testid data-testid} children])) (mf/defc context-menu-a11y' @@ -230,7 +230,7 @@ id (:id option) sub-options (:sub-options option) option-handler (:option-handler option) - data-test (:data-test option)] + data-testid (:data-testid option)] (when option-name (if (= option-name :separator) [:li {:key (dm/str "context-item-" index) @@ -240,7 +240,7 @@ :key id :class (stl/css-case :is-selected (and selected (= option-name selected)) - :selected (and selected (= data-test selected)) + :selected (and selected (= data-testid selected)) :context-menu-item true) :key-index (dm/str "context-item-" index) :tab-index "0" @@ -251,18 +251,18 @@ :on-click #(do (dom/stop-propagation %) (on-close) (option-handler %)) - :data-test data-test} + :data-testid data-testid} (if (and in-dashboard? (= option-name "Default")) (tr "dashboard.default-team-name") option-name) - (when (and selected (= data-test selected)) + (when (and selected (= data-testid selected)) [:span {:class (stl/css :selected-icon)} i/tick])] [:a {:class (stl/css :context-menu-action :submenu) :data-no-close true :on-click (enter-submenu option-name sub-options) - :data-test data-test} + :data-testid data-testid} option-name [:span {:class (stl/css :submenu-icon)} i/arrow]])]))))])])]))) diff --git a/frontend/src/app/main/ui/components/file_uploader.cljs b/frontend/src/app/main/ui/components/file_uploader.cljs index 35429e09ee..8eebdff516 100644 --- a/frontend/src/app/main/ui/components/file_uploader.cljs +++ b/frontend/src/app/main/ui/components/file_uploader.cljs @@ -12,7 +12,7 @@ (mf/defc file-uploader {::mf/forward-ref true} - [{:keys [accept multi label-text label-class input-id on-selected data-test] :as props} input-ref] + [{:keys [accept multi label-text label-class input-id on-selected data-testid] :as props} input-ref] (let [opt-pick-one #(if multi % (first %)) on-files-selected @@ -38,6 +38,6 @@ :type "file" :ref input-ref :on-change on-files-selected - :data-test data-test + :data-testid data-testid :aria-label "uploader"}]])) diff --git a/frontend/src/app/main/ui/components/forms.cljs b/frontend/src/app/main/ui/components/forms.cljs index 0081b3de24..e454be3a3e 100644 --- a/frontend/src/app/main/ui/components/forms.cljs +++ b/frontend/src/app/main/ui/components/forms.cljs @@ -26,7 +26,7 @@ (def use-form fm/use-form) (mf/defc input - [{:keys [label help-icon disabled form hint trim children data-test on-change-value placeholder show-success?] :as props}] + [{:keys [label help-icon disabled form hint trim children data-testid on-change-value placeholder show-success?] :as props}] (let [input-type (get props :type "text") input-name (get props :name) more-classes (get props :class) @@ -155,7 +155,7 @@ (and touched? (:message error)) [:div {:id (dm/str "error-" input-name) :class (stl/css :error) - :data-test (clojure.string/join [data-test "-error"])} + :data-testid (clojure.string/join [data-testid "-error"])} (tr (:message error))] (string? hint) diff --git a/frontend/src/app/main/ui/components/link.cljs b/frontend/src/app/main/ui/components/link.cljs index 6ceee146b5..e0c1d90fb6 100644 --- a/frontend/src/app/main/ui/components/link.cljs +++ b/frontend/src/app/main/ui/components/link.cljs @@ -12,7 +12,7 @@ (mf/defc link {::mf/wrap-props false} - [{:keys [action class data-test keyboard-action children data-testid]}] + [{:keys [action class data-testid keyboard-action children]}] (let [keyboard-action (d/nilv keyboard-action action)] [:a {:on-click action :class class @@ -20,6 +20,5 @@ (when ^boolean (kbd/enter? event) (keyboard-action event))) :tab-index "0" - :data-testid data-testid - :data-test data-test} + :data-testid data-testid} children])) diff --git a/frontend/src/app/main/ui/components/link_button.cljs b/frontend/src/app/main/ui/components/link_button.cljs index eb8c5db8e6..90da87209c 100644 --- a/frontend/src/app/main/ui/components/link_button.cljs +++ b/frontend/src/app/main/ui/components/link_button.cljs @@ -11,7 +11,7 @@ (mf/defc link-button {::mf/wrap-props false} - [{:keys [on-click class value data-test]}] + [{:keys [on-click class value data-testid]}] (let [on-key-down (mf/use-fn (mf/deps on-click) (fn [event] @@ -24,4 +24,4 @@ :tab-index "0" :on-click on-click :on-key-down on-key-down - :data-test data-test}])) + :data-testid data-testid}])) diff --git a/frontend/src/app/main/ui/dashboard/comments.cljs b/frontend/src/app/main/ui/dashboard/comments.cljs index f200d98f93..7a34437cc3 100644 --- a/frontend/src/app/main/ui/dashboard/comments.cljs +++ b/frontend/src/app/main/ui/dashboard/comments.cljs @@ -54,7 +54,7 @@ [:button {:tab-index "0" :on-click on-show-comments :on-key-down handle-keydown - :data-test "open-comments" + :data-testid "open-comments" :class (stl/css-case :comment-button true :open show? :unread (boolean (seq tgroups)))} diff --git a/frontend/src/app/main/ui/dashboard/file_menu.cljs b/frontend/src/app/main/ui/dashboard/file_menu.cljs index 4be78a0e2b..f270e1efbb 100644 --- a/frontend/src/app/main/ui/dashboard/file_menu.cljs +++ b/frontend/src/app/main/ui/dashboard/file_menu.cljs @@ -240,12 +240,12 @@ [{:option-name (tr "dashboard.duplicate-multi" file-count) :id "file-duplicate-multi" :option-handler on-duplicate - :data-test "duplicate-multi"} + :data-testid "duplicate-multi"} (when (or (seq current-projects) (seq other-teams)) {:option-name (tr "dashboard.move-to-multi" file-count) :id "file-move-multi" :sub-options sub-options - :data-test "move-to-multi"}) + :data-testid "move-to-multi"}) {:option-name (tr "dashboard.export-binary-multi" file-count) :id "file-binari-export-multi" :option-handler on-export-binary-files} @@ -256,13 +256,13 @@ {:option-name (tr "labels.unpublish-multi-files" file-count) :id "file-unpublish-multi" :option-handler on-del-shared - :data-test "file-del-shared"}) + :data-testid "file-del-shared"}) (when (not is-lib-page?) {:option-name :separator} {:option-name (tr "labels.delete-multi-files" file-count) :id "file-delete-multi" :option-handler on-delete - :data-test "delete-multi-files"})] + :data-testid "delete-multi-files"})] [{:option-name (tr "dashboard.open-in-new-tab") :id "file-open-new-tab" @@ -271,42 +271,42 @@ {:option-name (tr "labels.rename") :id "file-rename" :option-handler on-edit - :data-test "file-rename"}) + :data-testid "file-rename"}) (when (not is-search-page?) {:option-name (tr "dashboard.duplicate") :id "file-duplicate" :option-handler on-duplicate - :data-test "file-duplicate"}) + :data-testid "file-duplicate"}) (when (and (not is-lib-page?) (not is-search-page?) (or (seq current-projects) (seq other-teams))) {:option-name (tr "dashboard.move-to") :id "file-move-to" :sub-options sub-options - :data-test "file-move-to"}) + :data-testid "file-move-to"}) (when (not is-search-page?) (if (:is-shared file) {:option-name (tr "dashboard.unpublish-shared") :id "file-del-shared" :option-handler on-del-shared - :data-test "file-del-shared"} + :data-testid "file-del-shared"} {:option-name (tr "dashboard.add-shared") :id "file-add-shared" :option-handler on-add-shared - :data-test "file-add-shared"})) + :data-testid "file-add-shared"})) {:option-name :separator} {:option-name (tr "dashboard.download-binary-file") :id "file-download-binary" :option-handler on-export-binary-files - :data-test "download-binary-file"} + :data-testid "download-binary-file"} {:option-name (tr "dashboard.download-standard-file") :id "file-download-standard" :option-handler on-export-standard-files - :data-test "download-standard-file"} + :data-testid "download-standard-file"} (when (and (not is-lib-page?) (not is-search-page?)) {:option-name :separator} {:option-name (tr "labels.delete") :id "file-delete" :option-handler on-delete - :data-test "file-delete"})])] + :data-testid "file-delete"})])] [:& context-menu-a11y {:on-close on-menu-close :show show? diff --git a/frontend/src/app/main/ui/dashboard/files.cljs b/frontend/src/app/main/ui/dashboard/files.cljs index afee2564dc..12994b559e 100644 --- a/frontend/src/app/main/ui/dashboard/files.cljs +++ b/frontend/src/app/main/ui/dashboard/files.cljs @@ -82,7 +82,7 @@ (swap! local assoc :edition false)))}] [:div {:class (stl/css :dashboard-title)} [:h1 {:on-double-click on-edit - :data-test "project-title" + :data-testid "project-title" :id (:id project)} (:name project)]])) @@ -98,7 +98,7 @@ [:a {:class (stl/css :btn-secondary :btn-small :new-file) :tab-index "0" :on-click on-create-click - :data-test "new-file" + :data-testid "new-file" :on-key-down (fn [event] (when (kbd/enter? event) (on-create-click event)))} diff --git a/frontend/src/app/main/ui/dashboard/fonts.cljs b/frontend/src/app/main/ui/dashboard/fonts.cljs index be6cd908f6..ef5687740b 100644 --- a/frontend/src/app/main/ui/dashboard/fonts.cljs +++ b/frontend/src/app/main/ui/dashboard/fonts.cljs @@ -197,12 +197,12 @@ :btn-primary true :disabled disable-upload-all?) :on-click on-upload-all - :data-test "upload-all" + :data-testid "upload-all" :disabled disable-upload-all?} [:span (tr "dashboard.fonts.upload-all")]] [:button {:class (stl/css :btn-secondary) :on-click on-dismis-all - :data-test "dismiss-all"} + :data-testid "dismiss-all"} [:span (tr "dashboard.fonts.dismiss-all")]]]]) (for [{:keys [id] :as item} (sort-by :font-family font-vals)] diff --git a/frontend/src/app/main/ui/dashboard/placeholder.cljs b/frontend/src/app/main/ui/dashboard/placeholder.cljs index 8f5daa04e9..08798b7076 100644 --- a/frontend/src/app/main/ui/dashboard/placeholder.cljs +++ b/frontend/src/app/main/ui/dashboard/placeholder.cljs @@ -27,7 +27,7 @@ (= :libraries origin) [:div {:class (stl/css :grid-empty-placeholder :libs) - :data-test "empty-placeholder"} + :data-testid "empty-placeholder"} [:div {:class (stl/css :text)} [:& i18n/tr-html {:label "dashboard.empty-placeholder-drafts"}]]] diff --git a/frontend/src/app/main/ui/dashboard/project_menu.cljs b/frontend/src/app/main/ui/dashboard/project_menu.cljs index bd725a905a..2f886686fb 100644 --- a/frontend/src/app/main/ui/dashboard/project_menu.cljs +++ b/frontend/src/app/main/ui/dashboard/project_menu.cljs @@ -85,12 +85,12 @@ {:option-name (tr "labels.rename") :id "project-menu-rename" :option-handler on-edit - :data-test "project-rename"}) + :data-testid "project-rename"}) (when-not (:is-default project) {:option-name (tr "dashboard.duplicate") :id "project-menu-duplicated" :option-handler on-duplicate - :data-test "project-duplicate"}) + :data-testid "project-duplicate"}) (when-not (:is-default project) {:option-name (tr "dashboard.pin-unpin") :id "project-menu-pin" @@ -103,19 +103,19 @@ {:option-name (:name team) :id (:name team) :option-handler (on-move (:id team))}) - :data-test "project-move-to"}) + :data-testid "project-move-to"}) (when (some? on-import) {:option-name (tr "dashboard.import") :id "project-menu-import" :option-handler on-import-files - :data-test "file-import"}) + :data-testid "file-import"}) (when-not (:is-default project) {:option-name :separator}) (when-not (:is-default project) {:option-name (tr "labels.delete") :id "project-menu-delete" :option-handler on-delete - :data-test "project-delete"})]] + :data-testid "project-delete"})]] [:* [:& udi/import-form {:ref file-input diff --git a/frontend/src/app/main/ui/dashboard/projects.cljs b/frontend/src/app/main/ui/dashboard/projects.cljs index 11ab89f5d6..a894ee9327 100644 --- a/frontend/src/app/main/ui/dashboard/projects.cljs +++ b/frontend/src/app/main/ui/dashboard/projects.cljs @@ -51,7 +51,7 @@ [:h1 (tr "dashboard.projects-title")]] [:button {:class (stl/css :btn-secondary :btn-small) :on-click on-click - :data-test "new-project-button"} + :data-testid "new-project-button"} (tr "dashboard.new-project")]])) (mf/defc team-hero @@ -251,7 +251,7 @@ :on-click on-create-click :title (tr "dashboard.new-file") :aria-label (tr "dashboard.new-file") - :data-test "project-new-file" + :data-testid "project-new-file" :on-key-down handle-create-click} add-icon] @@ -259,7 +259,7 @@ :on-click on-menu-click :title (tr "dashboard.options") :aria-label (tr "dashboard.options") - :data-test "project-options" + :data-testid "project-options" :on-key-down handle-menu-click} menu-icon]]]]] diff --git a/frontend/src/app/main/ui/dashboard/sidebar.cljs b/frontend/src/app/main/ui/dashboard/sidebar.cljs index 0862eb17ea..83a915d75a 100644 --- a/frontend/src/app/main/ui/dashboard/sidebar.cljs +++ b/frontend/src/app/main/ui/dashboard/sidebar.cljs @@ -506,15 +506,13 @@ :on-key-down handle-members :className (stl/css :team-options-item) :id "teams-options-members" - :data-testid "team-members" - :data-test "team-members"} + :data-testid "team-members"} (tr "labels.members")] [:> dropdown-menu-item* {:on-click go-invitations :on-key-down handle-invitations :className (stl/css :team-options-item) - :data-testid "team-invitations" :id "teams-options-invitations" - :data-test "team-invitations"} + :data-testid "team-invitations"} (tr "labels.invitations")] (when (contains? cf/flags :webhooks) @@ -528,8 +526,7 @@ :on-key-down handle-settings :className (stl/css :team-options-item) :id "teams-options-settings" - :data-testid "team-settings" - :data-test "team-settings"} + :data-testid "team-settings"} (tr "labels.settings")] [:hr {:class (stl/css :team-option-separator)}] @@ -538,8 +535,7 @@ :on-key-down handle-rename :id "teams-options-rename" :className (stl/css :team-options-item) - :data-testid "rename-team" - :data-test "rename-team"} + :data-testid "rename-team"} (tr "labels.rename")]) (cond @@ -556,8 +552,7 @@ :on-key-down handle-leave-as-owner-clicked :id "teams-options-leave-team" :className (stl/css :team-options-item) - :data-testid "leave-team" - :data-test "leave-team"} + :data-testid "leave-team"} (tr "dashboard.leave-team")] (> (count members) 1) @@ -572,7 +567,7 @@ :on-key-down handle-on-delete-clicked :id "teams-options-delete-team" :className (stl/css :team-options-item :warning) - :data-test "delete-team"} + :data-testid "delete-team"} (tr "dashboard.delete-team")])])) (mf/defc sidebar-team-switch @@ -812,14 +807,13 @@ :current fonts?)} [:& link {:action go-fonts :class (stl/css :sidebar-link) - :data-testid "fonts-link-sidebar" :keyboard-action go-fonts-with-key - :data-test "fonts"} + :data-testid "fonts"} [:span {:class (stl/css :element-title)} (tr "labels.fonts")]]]]] [:div {:class (stl/css :sidebar-content-section) - :data-test "pinned-projects"} + :data-testid "pinned-projects"} (if (seq pinned-projects) [:ul {:class (stl/css :sidebar-nav :pinned-projects)} (for [item pinned-projects] @@ -960,7 +954,7 @@ :tab-index "0" :on-click handle-click :on-key-down handle-key-down - :data-test "profile-btn"} + :data-testid "profile-btn"} [:img {:src photo :class (stl/css :profile-img) :alt (:fullname profile)}] @@ -971,7 +965,7 @@ :class (stl/css :profile-dropdown-item) :on-click handle-set-profile :on-key-down handle-key-down-profile - :data-test "profile-profile-opt"} + :data-testid "profile-profile-opt"} (tr "labels.your-account")] [:li {:class (stl/css :profile-separator)}] @@ -981,7 +975,7 @@ :data-url "https://help.penpot.app" :on-click handle-click-url :on-key-down handle-keydown-url - :data-test "help-center-profile-opt"} + :data-testid "help-center-profile-opt"} (tr "labels.help-center")] [:li {:tab-index (if show "0" "-1") @@ -1011,7 +1005,7 @@ :data-url "https://penpot.app/libraries-templates" :on-click handle-click-url :on-key-down handle-keydown-url - :data-test "libraries-templates-profile-opt"} + :data-testid "libraries-templates-profile-opt"} (tr "labels.libraries-and-templates")] [:li {:tab-index (if show "0" "-1") @@ -1035,14 +1029,14 @@ :tab-index (if show "0" "-1") :on-click handle-feedback-click :on-key-down handle-feedback-keydown - :data-test "feedback-profile-opt"} + :data-testid "feedback-profile-opt"} (tr "labels.give-feedback")]) [:li {:class (stl/css :profile-dropdown-item :item-with-icon) :tab-index (if show "0" "-1") :on-click handle-logout-click :on-key-down handle-logout-keydown - :data-test "logout-profile-opt"} + :data-testid "logout-profile-opt"} exit-icon (tr "labels.logout")]] diff --git a/frontend/src/app/main/ui/dashboard/team.cljs b/frontend/src/app/main/ui/dashboard/team.cljs index 380a07da2c..f5860f85c0 100644 --- a/frontend/src/app/main/ui/dashboard/team.cljs +++ b/frontend/src/app/main/ui/dashboard/team.cljs @@ -105,7 +105,6 @@ [:a {:class (stl/css :btn-secondary :btn-small) :on-click on-invite-member - :data-test "invite-member" :data-testid "invite-member"} (tr "dashboard.invite-profile")] [:div {:class (stl/css :blank-space)}])]])) diff --git a/frontend/src/app/main/ui/onboarding/newsletter.cljs b/frontend/src/app/main/ui/onboarding/newsletter.cljs index e76cd0679a..6489f2dcbd 100644 --- a/frontend/src/app/main/ui/onboarding/newsletter.cljs +++ b/frontend/src/app/main/ui/onboarding/newsletter.cljs @@ -56,7 +56,7 @@ [:div {:class (stl/css :modal-right)} [:h2 {:class (stl/css :modal-title) - :data-test "onboarding-newsletter-title"} + :data-testid "onboarding-newsletter-title"} (tr "onboarding.newsletter.title")] [:p {:class (stl/css :modal-text)} diff --git a/frontend/src/app/main/ui/onboarding/templates.cljs b/frontend/src/app/main/ui/onboarding/templates.cljs index af0abb2b1d..99bd3cabb9 100644 --- a/frontend/src/app/main/ui/onboarding/templates.cljs +++ b/frontend/src/app/main/ui/onboarding/templates.cljs @@ -71,7 +71,7 @@ [:div.modal-header [:div.modal-close-button {:on-click close-fn - :data-test "close-templates-btn"} i/close]] + :data-testid "close-templates-btn"} i/close]] [:div.modal-content [:h3 (tr "onboarding.templates.title")] diff --git a/frontend/src/app/main/ui/settings.cljs b/frontend/src/app/main/ui/settings.cljs index 8b024332d5..6d23aaa36f 100644 --- a/frontend/src/app/main/ui/settings.cljs +++ b/frontend/src/app/main/ui/settings.cljs @@ -28,7 +28,7 @@ [] [:header {:class (stl/css :dashboard-header)} [:div {:class (stl/css :dashboard-title)} - [:h1 {:data-test "account-title"} (tr "dashboard.your-account-title")]]]) + [:h1 {:data-testid "account-title"} (tr "dashboard.your-account-title")]]]) (mf/defc settings [{:keys [route] :as props}] diff --git a/frontend/src/app/main/ui/settings/change_email.cljs b/frontend/src/app/main/ui/settings/change_email.cljs index daeaf8bf87..b90a55ee6b 100644 --- a/frontend/src/app/main/ui/settings/change_email.cljs +++ b/frontend/src/app/main/ui/settings/change_email.cljs @@ -103,7 +103,7 @@ [:div {:class (stl/css :modal-header)} [:h2 {:class (stl/css :modal-title) - :data-test "change-email-title"} + :data-testid "change-email-title"} (tr "modals.change-email.title")] [:button {:class (stl/css :modal-close-btn) :on-click on-close} i/close]] @@ -131,7 +131,7 @@ [:div {:class (stl/css :modal-footer)} [:div {:class (stl/css :action-buttons) - :data-test "change-email-submit"} + :data-testid "change-email-submit"} [:> fm/submit-button* {:label (tr "modals.change-email.submit")}]]]]]])) diff --git a/frontend/src/app/main/ui/settings/delete_account.cljs b/frontend/src/app/main/ui/settings/delete_account.cljs index 384907dfe6..d7e941cea8 100644 --- a/frontend/src/app/main/ui/settings/delete_account.cljs +++ b/frontend/src/app/main/ui/settings/delete_account.cljs @@ -59,6 +59,6 @@ [:button {:class (stl/css-case :accept-button true :danger true) :on-click on-accept - :data-test "delete-account-btn"} + :data-testid "delete-account-btn"} (tr "modals.delete-account.confirm")]]]]])) diff --git a/frontend/src/app/main/ui/settings/options.cljs b/frontend/src/app/main/ui/settings/options.cljs index 2586559bd1..ef83e220e4 100644 --- a/frontend/src/app/main/ui/settings/options.cljs +++ b/frontend/src/app/main/ui/settings/options.cljs @@ -56,7 +56,7 @@ :label (tr "dashboard.select-ui-language") :default "" :name :lang - :data-test "setting-lang"}]] + :data-testid "setting-lang"}]] [:h3 (tr "dashboard.theme-change")] [:div {:class (stl/css :fields-row)} @@ -65,11 +65,11 @@ :default "default" :options [{:label "Penpot Dark (default)" :value "default"} {:label "Penpot Light" :value "light"}] - :data-test "setting-theme"}]] + :data-testid "setting-theme"}]] [:> fm/submit-button* {:label (tr "dashboard.update-settings") - :data-test "submit-lang-change" + :data-testid "submit-lang-change" :class (stl/css :btn-primary)}]])) ;; --- Password Page @@ -80,7 +80,7 @@ #(dom/set-html-title (tr "title.settings.options"))) [:div {:class (stl/css :dashboard-settings)} - [:div {:class (stl/css :form-container) :data-test "settings-form"} + [:div {:class (stl/css :form-container) :data-testid "settings-form"} [:h2 (tr "labels.settings")] [:& options-form {}]]]) diff --git a/frontend/src/app/main/ui/settings/password.cljs b/frontend/src/app/main/ui/settings/password.cljs index db12f1b3c9..bceecf29f3 100644 --- a/frontend/src/app/main/ui/settings/password.cljs +++ b/frontend/src/app/main/ui/settings/password.cljs @@ -104,7 +104,7 @@ [:> fm/submit-button* {:label (t locale "dashboard.password-change") - :data-test "submit-password" + :data-testid "submit-password" :class (stl/css :update-btn)}]])) ;; --- Password Page diff --git a/frontend/src/app/main/ui/settings/profile.cljs b/frontend/src/app/main/ui/settings/profile.cljs index ac4c3ca7c2..abc96cf37f 100644 --- a/frontend/src/app/main/ui/settings/profile.cljs +++ b/frontend/src/app/main/ui/settings/profile.cljs @@ -82,7 +82,7 @@ [:div {:class (stl/css :links)} [:div {:class (stl/css :link-item)} [:a {:on-click handle-show-delete-account - :data-test "remove-acount-btn"} + :data-testid "remove-acount-btn"} (tr "dashboard.remove-account")]]]])) ;; --- Profile Photo Form @@ -106,7 +106,7 @@ :multi false :ref file-input :on-selected on-file-selected - :data-test "profile-image-input"}]]])) + :data-testid "profile-image-input"}]]])) ;; --- Profile Page diff --git a/frontend/src/app/main/ui/settings/sidebar.cljs b/frontend/src/app/main/ui/settings/sidebar.cljs index 6b6bed60db..7fbe6021fe 100644 --- a/frontend/src/app/main/ui/settings/sidebar.cljs +++ b/frontend/src/app/main/ui/settings/sidebar.cljs @@ -89,20 +89,19 @@ [:li {:class (stl/css-case :current options? :settings-item true) :on-click go-settings-options - :data-testid "settings-profile" - :data-test "settings-profile"} + :data-testid "settings-profile"} [:span {:class (stl/css :element-title)} (tr "labels.settings")]] (when (contains? cf/flags :access-tokens) [:li {:class (stl/css-case :current access-tokens? :settings-item true) :on-click go-settings-access-tokens - :data-test "settings-access-tokens"} + :data-testid "settings-access-tokens"} [:span {:class (stl/css :element-title)} (tr "labels.access-tokens")]]) [:hr {:class (stl/css :sidebar-separator)}] - [:li {:on-click show-release-notes :data-test "release-notes" + [:li {:on-click show-release-notes :data-testid "release-notes" :class (stl/css :settings-item)} [:span {:class (stl/css :element-title)} (tr "labels.release-notes")]] diff --git a/frontend/src/app/main/ui/workspace/main_menu.cljs b/frontend/src/app/main/ui/workspace/main_menu.cljs index b71705e5c1..2abca79a0c 100644 --- a/frontend/src/app/main/ui/workspace/main_menu.cljs +++ b/frontend/src/app/main/ui/workspace/main_menu.cljs @@ -184,7 +184,7 @@ :on-key-down (fn [event] (when (kbd/enter? event) (toggle-flag event))) - :data-test "scale-text" + :data-testid "scale-text" :id "file-menu-scale-text"} [:span {:class (stl/css :item-name)} (if (contains? layout :scale-text) @@ -199,7 +199,7 @@ :on-key-down (fn [event] (when (kbd/enter? event) (toggle-flag event))) - :data-test "snap-ruler-guides" + :data-testid "snap-ruler-guides" :id "file-menu-snap-ruler-guides"} [:span {:class (stl/css :item-name)} (if (contains? layout :snap-ruler-guides) @@ -215,7 +215,7 @@ :on-key-down (fn [event] (when (kbd/enter? event) (toggle-flag event))) - :data-test "snap-guides" + :data-testid "snap-guides" :id "file-menu-snap-guides"} [:span {:class (stl/css :item-name)} (if (contains? layout :snap-guides) @@ -230,7 +230,7 @@ :on-key-down (fn [event] (when (kbd/enter? event) (toggle-flag event))) - :data-test "dynamic-alignment" + :data-testid "dynamic-alignment" :id "file-menu-dynamic-alignment"} [:span {:class (stl/css :item-name)} (if (contains? layout :dynamic-alignment) @@ -245,7 +245,7 @@ :on-key-down (fn [event] (when (kbd/enter? event) (toggle-flag event))) - :data-test "snap-pixel-grid" + :data-testid "snap-pixel-grid" :id "file-menu-pixel-grid"} [:span {:class (stl/css :item-name)} (if (contains? layout :snap-pixel-grid) @@ -260,7 +260,7 @@ :on-key-down (fn [event] (when (kbd/enter? event) (show-nudge-options event))) - :data-test "snap-pixel-grid" + :data-testid "snap-pixel-grid" :id "file-menu-nudge"} [:span {:class (stl/css :item-name)} (tr "modals.nudge-title")]] @@ -270,7 +270,7 @@ :on-key-down (fn [event] (when (kbd/enter? event) (toggle-theme event))) - :data-test "toggle-theme" + :data-testid "toggle-theme" :id "file-menu-toggle-theme"} [:span {:class (stl/css :item-name)} (if (= (:theme profile) "default") @@ -312,7 +312,7 @@ :on-key-down (fn [event] (when (kbd/enter? event) (toggle-flag event))) - :data-test "rulers" + :data-testid "rulers" :id "file-menu-rulers"} [:span {:class (stl/css :item-name)} (if (contains? layout :rulers) @@ -328,7 +328,7 @@ :on-key-down (fn [event] (when (kbd/enter? event) (toggle-flag event))) - :data-test "display-guides" + :data-testid "display-guides" :id "file-menu-guides"} [:span {:class (stl/css :item-name)} (if (contains? layout :display-guides) @@ -374,7 +374,7 @@ :on-key-down (fn [event] (when (kbd/enter? event) (toggle-flag event))) - :data-test "display-artboard-names" + :data-testid "display-artboard-names" :id "file-menu-artboards"} [:span {:class (stl/css :item-name)} (if (contains? layout :display-artboard-names) @@ -386,7 +386,7 @@ :on-key-down (fn [event] (when (kbd/enter? event) (toggle-flag event))) - :data-test "show-pixel-grid" + :data-testid "show-pixel-grid" :id "file-menu-pixel-grid"} [:span {:class (stl/css :item-name)} (if (contains? layout :show-pixel-grid) @@ -401,7 +401,7 @@ :on-key-down (fn [event] (when (kbd/enter? event) (toggle-flag event))) - :data-test "hide-ui" + :data-testid "hide-ui" :id "file-menu-hide-ui"} [:span {:class (stl/css :item-name)} (tr "workspace.shape.menu.hide-ui")] @@ -617,7 +617,7 @@ :on-key-down (fn [event] (when (kbd/enter? event) (open-plugins event))) - :data-test "open-plugins" + :data-testid "open-plugins" :id "file-menu-open-plugins"} [:span {:class (stl/css :item-name)} (tr "workspace.plugins.menu.plugins-manager")] @@ -669,7 +669,7 @@ (fn [event] (dom/stop-propagation event) (let [menu (-> (dom/get-current-target event) - (dom/get-data "test") + (dom/get-data "testid") (keyword))] (reset! sub-menu* menu)))) @@ -678,7 +678,7 @@ (fn [event] (dom/stop-propagation event) (let [flag (-> (dom/get-current-target event) - (dom/get-data "test") + (dom/get-data "testid") (keyword))] (st/emit! (-> (dw/toggle-layout-flag flag) @@ -708,14 +708,13 @@ [:& dropdown-menu {:show show-menu? :on-close close-menu :list-class (stl/css :menu)} - [:> dropdown-menu-item* {:class (stl/css :menu-item) :on-click on-menu-click :on-key-down (fn [event] (when (kbd/enter? event) (on-menu-click event))) :on-pointer-enter on-menu-click - :data-test "file" + :data-testid "file" :id "file-menu-file"} [:span {:class (stl/css :item-name)} (tr "workspace.header.menu.option.file")] [:span {:class (stl/css :open-arrow)} i/arrow]] @@ -726,7 +725,7 @@ (when (kbd/enter? event) (on-menu-click event))) :on-pointer-enter on-menu-click - :data-test "edit" + :data-testid "edit" :id "file-menu-edit"} [:span {:class (stl/css :item-name)} (tr "workspace.header.menu.option.edit")] [:span {:class (stl/css :open-arrow)} i/arrow]] @@ -737,7 +736,7 @@ (when (kbd/enter? event) (on-menu-click event))) :on-pointer-enter on-menu-click - :data-test "view" + :data-testid "view" :id "file-menu-view"} [:span {:class (stl/css :item-name)} (tr "workspace.header.menu.option.view")] [:span {:class (stl/css :open-arrow)} i/arrow]] @@ -748,7 +747,7 @@ (when (kbd/enter? event) (on-menu-click event))) :on-pointer-enter on-menu-click - :data-test "preferences" + :data-testid "preferences" :id "file-menu-preferences"} [:span {:class (stl/css :item-name)} (tr "workspace.header.menu.option.preferences")] [:span {:class (stl/css :open-arrow)} i/arrow]] @@ -760,7 +759,7 @@ (when (kbd/enter? event) (on-menu-click event))) :on-pointer-enter on-menu-click - :data-test "plugins" + :data-testid "plugins" :id "file-menu-plugins"} [:span {:class (stl/css :item-name)} (tr "workspace.plugins.menu.title")] [:span {:class (stl/css :open-arrow)} i/arrow]]) @@ -772,7 +771,7 @@ (when (kbd/enter? event) (on-menu-click event))) :on-pointer-enter on-menu-click - :data-test "help-info" + :data-testid "help-info" :id "file-menu-help-info"} [:span {:class (stl/css :item-name)} (tr "workspace.header.menu.option.help-info")] [:span {:class (stl/css :open-arrow)} i/arrow]]] diff --git a/frontend/src/app/main/ui/workspace/sidebar/assets.cljs b/frontend/src/app/main/ui/workspace/sidebar/assets.cljs index af12d40ab8..85e31946b8 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/assets.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/assets.cljs @@ -111,7 +111,7 @@ (let [value (or (-> (dom/get-target event) (dom/get-value)) (as-> (dom/get-current-target event) $ - (dom/get-attribute $ "data-test")))] + (dom/get-attribute $ "data-testid")))] (swap! filters* assoc :section value :open-menu false)))) show-libraries-dialog @@ -130,28 +130,28 @@ [{:option-name (tr "workspace.assets.box-filter-all") :id "section-all" :option-handler on-section-filter-change - :data-test "all"} + :data-testid "all"} {:option-name (tr "workspace.assets.components") :id "section-components" :option-handler on-section-filter-change - :data-test "components"} + :data-testid "components"} (when (not components-v2) {:option-name (tr "workspace.assets.graphics") :id "section-graphics" :option-handler on-section-filter-change - :data-test "graphics"}) + :data-testid "graphics"}) {:option-name (tr "workspace.assets.colors") :id "section-color" :option-handler on-section-filter-change - :data-test "colors"} + :data-testid "colors"} {:option-name (tr "workspace.assets.typography") :id "section-typography" :option-handler on-section-filter-change - :data-test "typographies"}]))] + :data-testid "typographies"}]))] [:article {:class (stl/css :assets-bar)} [:div {:class (stl/css :assets-header)} diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs b/frontend/src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs index 7bcd264a95..6dd2c8b741 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs @@ -176,7 +176,7 @@ :on-blur on-blur}]] [:div {:class (stl/css :select-wrapper) - :data-test "stroke.alignment"} + :data-testid "stroke.alignment"} [:& select {:default-value stroke-alignment :options stroke-alignment-options @@ -184,7 +184,7 @@ (when-not disable-stroke-style [:div {:class (stl/css :select-wrapper) - :data-test "stroke.style"} + :data-testid "stroke.style"} [:& select {:default-value stroke-style :options stroke-style-options diff --git a/frontend/src/app/main/ui/workspace/sidebar/sitemap.cljs b/frontend/src/app/main/ui/workspace/sidebar/sitemap.cljs index 1d9cc9e4d5..09a02d2f97 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/sitemap.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/sitemap.cljs @@ -126,7 +126,7 @@ :element-list-body true :hover hovering? :selected selected?) - :data-test (dm/str "page-" id) + :data-testid (dm/str "page-" id) :tab-index "0" :on-click navigate-fn :on-double-click on-double-click diff --git a/frontend/src/app/main/ui/workspace/top_toolbar.cljs b/frontend/src/app/main/ui/workspace/top_toolbar.cljs index a7546507be..f7b0bcf990 100644 --- a/frontend/src/app/main/ui/workspace/top_toolbar.cljs +++ b/frontend/src/app/main/ui/workspace/top_toolbar.cljs @@ -142,7 +142,7 @@ :class (stl/css-case :main-toolbar-options-button true :selected (= selected-drawtool :frame)) :on-click select-drawtool :data-tool "frame" - :data-test "artboard-btn"} + :data-testid "artboard-btn"} i/board]] [:li [:button @@ -151,7 +151,7 @@ :class (stl/css-case :main-toolbar-options-button true :selected (= selected-drawtool :rect)) :on-click select-drawtool :data-tool "rect" - :data-test "rect-btn"} + :data-testid "rect-btn"} i/rectangle]] [:li [:button @@ -160,7 +160,7 @@ :class (stl/css-case :main-toolbar-options-button true :selected (= selected-drawtool :circle)) :on-click select-drawtool :data-tool "circle" - :data-test "ellipse-btn"} + :data-testid "ellipse-btn"} i/elipse]] [:li [:button @@ -180,7 +180,7 @@ :class (stl/css-case :main-toolbar-options-button true :selected (= selected-drawtool :curve)) :on-click select-drawtool :data-tool "curve" - :data-test "curve-btn"} + :data-testid "curve-btn"} i/curve]] [:li [:button @@ -189,7 +189,7 @@ :class (stl/css-case :main-toolbar-options-button true :selected (= selected-drawtool :path)) :on-click select-drawtool :data-tool "path" - :data-test "path-btn"} + :data-testid "path-btn"} i/path]] (when *assert* From 56556a3f3b52a5172b68045e10c322533090c96f Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Fri, 21 Jun 2024 09:27:11 +0200 Subject: [PATCH 218/476] :sparkles: Make the penpot_rpc_climit_timing metric as histogram --- backend/src/app/main.clj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/src/app/main.clj b/backend/src/app/main.clj index 7e963bb169..b0c6e0a4c7 100644 --- a/backend/src/app/main.clj +++ b/backend/src/app/main.clj @@ -126,7 +126,7 @@ {::mdef/name "penpot_rpc_climit_timing" ::mdef/help "Summary of the time between queuing and executing on the CLIMIT" ::mdef/labels ["name"] - ::mdef/type :summary} + ::mdef/type :histogram} :audit-http-handler-queue-size {::mdef/name "penpot_audit_http_handler_queue_size" From f249945dff6530f0667eb42034a6e36859331c70 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Fri, 21 Jun 2024 09:28:28 +0200 Subject: [PATCH 219/476] :sparkles: Include climit into the RPC handler metrics --- backend/src/app/rpc.clj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/src/app/rpc.clj b/backend/src/app/rpc.clj index b4acb2ea3c..c2a85413d9 100644 --- a/backend/src/app/rpc.clj +++ b/backend/src/app/rpc.clj @@ -192,10 +192,10 @@ (defn- wrap-all [cfg f mdata] (as-> f $ - (wrap-metrics cfg $ mdata) (cond/wrap cfg $ mdata) (retry/wrap-retry cfg $ mdata) (climit/wrap cfg $ mdata) + (wrap-metrics cfg $ mdata) (rlimit/wrap cfg $ mdata) (wrap-audit cfg $ mdata) (wrap-spec-conform cfg $ mdata) From 2da5dcb619bb5e729aa8ec6ee1a0fdc130fa8714 Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Thu, 13 Jun 2024 12:29:17 +0200 Subject: [PATCH 220/476] :sparkles: Add text ranges support in plugins --- common/src/app/common/text.cljc | 24 ++- .../src/app/main/data/workspace/texts.cljs | 97 ++++++++++- frontend/src/app/plugins/library.cljs | 13 +- frontend/src/app/plugins/shape.cljs | 157 +++++++++++++++++- frontend/src/app/plugins/utils.cljs | 8 +- 5 files changed, 285 insertions(+), 14 deletions(-) diff --git a/common/src/app/common/text.cljc b/common/src/app/common/text.cljc index 8ee125e8a1..c82f65c9b8 100644 --- a/common/src/app/common/text.cljc +++ b/common/src/app/common/text.cljc @@ -361,7 +361,7 @@ new-acc (cond - (:children node) + (not (is-text-node? node)) (reduce #(rec-style-text-map %1 %2 node-style) acc (:children node)) (not= head-style node-style) @@ -381,6 +381,28 @@ (-> (rec-style-text-map [] node {}) reverse))) +(defn content-range->text+styles + "Given a root node of a text content extracts the texts with its associated styles" + [node start end] + (let [sss (content->text+styles node)] + (loop [styles (seq sss) + taking? false + acc 0 + result []] + (if styles + (let [[node-style text] (first styles) + from acc + to (+ acc (count text)) + taking? (or taking? (and (<= from start) (< start to))) + text (subs text (max 0 (- start acc)) (- end acc)) + result (cond-> result + (and taking? (d/not-empty? text)) + (conj (assoc node-style :text text))) + continue? (or (> from end) (>= end to))] + (recur (when continue? (rest styles)) taking? to result)) + result)))) + + (defn content->text "Given a root node of a text content extracts the texts with its associated styles" [content] diff --git a/frontend/src/app/main/data/workspace/texts.cljs b/frontend/src/app/main/data/workspace/texts.cljs index d1e55e027b..bceaeacf3f 100644 --- a/frontend/src/app/main/data/workspace/texts.cljs +++ b/frontend/src/app/main/data/workspace/texts.cljs @@ -205,6 +205,102 @@ ;; --- TEXT EDITION IMPL +(defn count-node-chars + ([node] + (count-node-chars node false)) + ([node last?] + (case (:type node) + ("root" "paragraph-set") + (apply + (concat (map count-node-chars (drop-last (:children node))) + (map #(count-node-chars % true) (take-last 1 (:children node))))) + + "paragraph" + (+ (apply + (map count-node-chars (:children node))) (if last? 0 1)) + + (count (:text node))))) + + +(defn decorate-range-info + "Adds information about ranges inside the metadata of the text nodes" + [content] + (->> (with-meta content {:start 0 :end (count-node-chars content)}) + (txt/transform-nodes + (fn [node] + (d/update-when + node + :children + (fn [children] + (let [start (-> node meta (:start 0))] + (->> children + (reduce (fn [[result start] node] + (let [end (+ start (count-node-chars node))] + [(-> result + (conj (with-meta node {:start start :end end}))) + end])) + [[] start]) + (first))))))))) + +(defn split-content-at + [content position] + (->> content + (txt/transform-nodes + (fn [node] + (and (txt/is-paragraph-node? node) + (< (-> node meta :start) position (-> node meta :end)))) + (fn [node] + (letfn + [(process-node [child] + (let [start (-> child meta :start) + end (-> child meta :end)] + (if (< start position end) + [(-> child + (vary-meta assoc :end position) + (update :text subs 0 (- position start))) + (-> child + (vary-meta assoc :start position) + (update :text subs (- position start)))] + [child])))] + (-> node + (d/update-when :children #(into [] (mapcat process-node) %)))))))) + +(defn update-content-range + [content start end attrs] + (->> content + (txt/transform-nodes + (fn [node] + (and (txt/is-text-node? node) + (and (>= (-> node meta :start) start) + (<= (-> node meta :end) end)))) + #(d/patch-object % attrs)))) + +(defn- update-text-range-attrs + [shape start end attrs] + (let [new-content (-> (:content shape) + (decorate-range-info) + (split-content-at start) + (split-content-at end) + (update-content-range start end attrs))] + (assoc shape :content new-content))) + +(defn update-text-range + [id start end attrs] + (ptk/reify ::update-text-range + ptk/WatchEvent + (watch [_ state _] + (let [objects (wsh/lookup-page-objects state) + shape (get objects id) + + update-fn + (fn [shape] + (cond-> shape + (cfh/text-shape? shape) + (update-text-range-attrs start end attrs))) + + shape-ids (cond (cfh/text-shape? shape) [id] + (cfh/group-shape? shape) (cfh/get-children-ids objects id))] + + (rx/of (dwsh/update-shapes shape-ids update-fn)))))) + (defn- update-text-content [shape pred-fn update-fn attrs] (let [update-attrs-fn #(update-fn % attrs) @@ -278,7 +374,6 @@ (cfh/group-shape? shape) (cfh/get-children-ids objects id))] (rx/of (dwsh/update-shapes shape-ids #(update-text-content % update-node? d/txt-merge attrs)))))))) - (defn migrate-node [node] (let [color-attrs (select-keys node [:fill-color :fill-opacity :fill-color-ref-id :fill-color-ref-file :fill-color-gradient])] diff --git a/frontend/src/app/plugins/library.cljs b/frontend/src/app/plugins/library.cljs index 6f6f87ed38..380ff68c32 100644 --- a/frontend/src/app/plugins/library.cljs +++ b/frontend/src/app/plugins/library.cljs @@ -233,9 +233,16 @@ (st/emit! (dwt/apply-typography #{shape-id} typography $file)))) (applyToTextRange - [_ _shape _from _to] - ;; TODO - ) + [self range] + (let [shape-id (obj/get range "$id") + start (obj/get range "start") + end (obj/get range "end") + typography (u/proxy->library-typography self) + attrs (-> typography + (assoc :typography-ref-file $file) + (assoc :typography-ref-id (:id typography)) + (dissoc :id :name))] + (st/emit! (dwt/update-text-range shape-id start end attrs)))) ;; PLUGIN DATA (getPluginData diff --git a/frontend/src/app/plugins/shape.cljs b/frontend/src/app/plugins/shape.cljs index 81ad46bbb2..0d239dbe28 100644 --- a/frontend/src/app/plugins/shape.cljs +++ b/frontend/src/app/plugins/shape.cljs @@ -36,6 +36,139 @@ [app.util.text-editor :as ted] [cuerdas.core :as str])) + +(deftype TextRange [$plugin $file $page $id start end] + Object + (applyTypography [_ typography] + (let [typography (u/proxy->library-typography typography) + attrs (-> typography + (assoc :typography-ref-file $file) + (assoc :typography-ref-id (:id typography)) + (dissoc :id :name))] + (st/emit! (dwt/update-text-range $id start end attrs))))) + +(defn mixed-value + [values] + (let [s (set values)] + (if (= (count s) 1) (first s) "mixed"))) + +;; TODO Validate inputs +(defn text-range + [plugin-id file-id page-id id start end] + (-> (TextRange. plugin-id file-id page-id id start end) + (crc/add-properties! + {:name "$plugin" :enumerable false :get (constantly plugin-id)} + {:name "$id" :enumerable false :get (constantly id)} + {:name "$file" :enumerable false :get (constantly file-id)} + {:name "$page" :enumerable false :get (constantly page-id)} + + {:name "shape" + :get #(-> % u/proxy->shape)} + + {:name "characters" + :get #(let [range-data + (-> % u/proxy->shape :content (txt/content-range->text+styles start end))] + (->> range-data (map :text) (str/join "")))} + + {:name "fontId" + :get #(let [range-data + (-> % u/proxy->shape :content (txt/content-range->text+styles start end))] + (->> range-data (map :font-id) mixed-value)) + + :set + (fn [_ value] + (st/emit! (dwt/update-text-range id start end {:font-id value})))} + + {:name "fontFamily" + :get #(let [range-data + (-> % u/proxy->shape :content (txt/content-range->text+styles start end))] + (->> range-data (map :font-family) mixed-value)) + + :set + (fn [_ value] + (st/emit! (dwt/update-text-range id start end {:font-family value})))} + + {:name "fontVariantId" + :get #(let [range-data + (-> % u/proxy->shape :content (txt/content-range->text+styles start end))] + (->> range-data (map :font-variant-id) mixed-value)) + :set + (fn [_ value] + (st/emit! (dwt/update-text-range id start end {:font-variant-id value})))} + + {:name "fontSize" + :get #(let [range-data + (-> % u/proxy->shape :content (txt/content-range->text+styles start end))] + (->> range-data (map :font-size) mixed-value)) + :set + (fn [_ value] + (st/emit! (dwt/update-text-range id start end {:font-size value})))} + + {:name "fontWeight" + :get #(let [range-data + (-> % u/proxy->shape :content (txt/content-range->text+styles start end))] + (->> range-data (map :font-weight) mixed-value)) + :set + (fn [_ value] + (st/emit! (dwt/update-text-range id start end {:font-weight value})))} + + {:name "fontStyle" + :get #(let [range-data + (-> % u/proxy->shape :content (txt/content-range->text+styles start end))] + (->> range-data (map :font-style) mixed-value)) + :set + (fn [_ value] + (st/emit! (dwt/update-text-range id start end {:font-style value})))} + + {:name "lineHeight" + :get #(let [range-data + (-> % u/proxy->shape :content (txt/content-range->text+styles start end))] + (->> range-data (map :line-height) mixed-value)) + :set + (fn [_ value] + (st/emit! (dwt/update-text-range id start end {:line-height value})))} + + {:name "letterSpacing" + :get #(let [range-data + (-> % u/proxy->shape :content (txt/content-range->text+styles start end))] + (->> range-data (map :letter-spacing) mixed-value)) + :set + (fn [_ value] + (st/emit! (dwt/update-text-range id start end {:letter-spacing value})))} + + {:name "textTransform" + :get #(let [range-data + (-> % u/proxy->shape :content (txt/content-range->text+styles start end))] + (->> range-data (map :text-transform) mixed-value)) + :set + (fn [_ value] + (st/emit! (dwt/update-text-range id start end {:text-transform value})))} + + {:name "textDecoration" + :get #(let [range-data + (-> % u/proxy->shape :content (txt/content-range->text+styles start end))] + (->> range-data (map :text-decoration) mixed-value)) + :set + (fn [_ value] + (st/emit! (dwt/update-text-range id start end {:text-decoration value})))} + + {:name "direction" + :get #(let [range-data + (-> % u/proxy->shape :content (txt/content-range->text+styles start end))] + (->> range-data (map :direction) mixed-value)) + :set + (fn [_ value] + (st/emit! (dwt/update-text-range id start end {:direction value})))} + + {:name "fills" + :get #(let [range-data + (-> % u/proxy->shape :content (txt/content-range->text+styles start end))] + (->> range-data (map :fills) mixed-value u/array-to-js)) + :set + (fn [_ value] + (let [value (mapv #(u/from-js %) value)] + (st/emit! (dwt/update-text-range id start end {:fills value}))))}))) + (declare shape-proxy) (defn parse-command @@ -214,11 +347,19 @@ ;; Text shapes (getRange - [_ _from _to] + [_ start end] (let [shape (u/locate-shape $file $page $id)] (if (cfh/text-shape? shape) - nil ;; TODO - (u/display-not-valid :makeMask (:type shape)))))) + (text-range $plugin $file $page $id start end) + (u/display-not-valid :makeMask (:type shape))))) + + (applyTypography + [_ typography] + (let [shape (u/locate-shape $file $page $id)] + (if (cfh/text-shape? shape) + (let [typography (u/proxy->library-typography typography)] + (st/emit! (dwt/apply-typography #{$id} typography $file))) + (u/display-not-valid :applyTypography (:type shape)))))) (crc/define-properties! ShapeProxy @@ -490,14 +631,18 @@ :get #(-> % u/proxy->shape :flip-y)} ;; Strokes and fills + ;; TODO: Validate fills input {:name "fills" :get #(if (cfh/text-shape? data) (-> % u/proxy->shape text-props :fills u/array-to-js) (-> % u/proxy->shape :fills u/array-to-js)) :set (fn [self value] - (let [id (obj/get self "$id") + (let [shape (u/proxy->shape self) + id (:id shape) value (mapv #(u/from-js %) value)] - (st/emit! (dwsh/update-shapes [id] #(assoc % :fills value)))))} + (if (cfh/text-shape? shape) + (st/emit! (dwt/update-attrs id {:fills value})) + (st/emit! (dwsh/update-shapes [id] #(assoc % :fills value))))))} {:name "strokes" :get #(-> % u/proxy->shape :strokes u/array-to-js) @@ -634,7 +779,7 @@ :set (fn [self value] (let [id (obj/get self "$id")] - (st/emit! (dwt/update-attrs id {:font-id value}))))} + (st/emit! (dwt/update-attrs id {:font-size value}))))} {:name "fontWeight" :get #(-> % u/proxy->shape text-props :font-weight) diff --git a/frontend/src/app/plugins/utils.cljs b/frontend/src/app/plugins/utils.cljs index c057aa0b67..87fb3abb32 100644 --- a/frontend/src/app/plugins/utils.cljs +++ b/frontend/src/app/plugins/utils.cljs @@ -177,9 +177,11 @@ (defn array-to-js [value] - (.freeze - js/Object - (apply array (->> value (map to-js))))) + (if (coll? value) + (.freeze + js/Object + (apply array (->> value (map to-js)))) + value)) (defn result-p "Creates a pair of atom+promise. The promise will be resolved when the atom gets a value. From 69fad7a920db148954441343cfbc4bebf0b2f4a5 Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Thu, 13 Jun 2024 15:25:09 +0200 Subject: [PATCH 221/476] :sparkles: Add some utilities for fonts in plugins --- frontend/src/app/plugins/api.cljs | 2 + frontend/src/app/plugins/fonts.cljs | 88 +++++++++++++++++++++++++++++ 2 files changed, 90 insertions(+) create mode 100644 frontend/src/app/plugins/fonts.cljs diff --git a/frontend/src/app/plugins/api.cljs b/frontend/src/app/plugins/api.cljs index 4d682593cc..c43191edac 100644 --- a/frontend/src/app/plugins/api.cljs +++ b/frontend/src/app/plugins/api.cljs @@ -21,6 +21,7 @@ [app.main.store :as st] [app.plugins.events :as events] [app.plugins.file :as file] + [app.plugins.fonts :as fonts] [app.plugins.library :as library] [app.plugins.page :as page] [app.plugins.shape :as shape] @@ -206,4 +207,5 @@ {:name "viewport" :get #(.getViewport ^js %)} {:name "currentUser" :get #(.getCurrentUser ^js %)} {:name "activeUsers" :get #(.getActiveUsers ^js %)} + {:name "fonts" :get (fn [_] (fonts/fonts-subcontext plugin-id))} {:name "library" :get (fn [_] (library/library-subcontext plugin-id))})) diff --git a/frontend/src/app/plugins/fonts.cljs b/frontend/src/app/plugins/fonts.cljs new file mode 100644 index 0000000000..8455ec72b9 --- /dev/null +++ b/frontend/src/app/plugins/fonts.cljs @@ -0,0 +1,88 @@ +;; This Source Code Form is subject to the terms of the Mozilla Public +;; License, v. 2.0. If a copy of the MPL was not distributed with this +;; file, You can obtain one at http://mozilla.org/MPL/2.0/. +;; +;; Copyright (c) KALEIDOS INC + +(ns app.plugins.fonts + (:require + [app.common.data :as d] + [app.common.record :as cr] + [app.main.data.workspace.texts :as dwt] + [app.main.fonts :as fonts] + [app.main.store :as st] + [app.util.object :as obj] + [cuerdas.core :as str])) + +(deftype PenpotFontVariant [name fontVariantId fontWeight fontStyle]) + +(deftype PenpotFont [name fontId fontFamily fontStyle fontVariantId fontWeight variants] + Object + + (applyToText [_ text variant] + (let [id (obj/get text "$id") + values {:font-id fontId + :font-family fontFamily + :font-style (d/nilv (obj/get variant "fontStyle") fontStyle) + :font-variant-id (d/nilv (obj/get variant "fontVariantId") fontVariantId) + :font-weight (d/nilv (obj/get variant "fontWeight") fontWeight)}] + (st/emit! (dwt/update-attrs id values)))) + + (applyToRange [_ range variant] + (let [id (obj/get range "$id") + start (obj/get range "start") + end (obj/get range "end") + values {:font-id fontId + :font-family fontFamily + :font-style (d/nilv (obj/get variant "fontStyle") fontStyle) + :font-variant-id (d/nilv (obj/get variant "fontVariantId") fontVariantId) + :font-weight (d/nilv (obj/get variant "fontWeight") fontWeight)}] + (st/emit! (dwt/update-text-range id start end values))))) + +(defn font-proxy + [{:keys [id name variants] :as font}] + (when (some? font) + (let [default-variant (fonts/get-default-variant font)] + (PenpotFont. + name + id + id + (:style default-variant) + (:id default-variant) + (:weight default-variant) + (apply + array + (->> variants + (map (fn [{:keys [id name style weight]}] + (PenpotFontVariant. name id weight style))))))))) + +(deftype PenpotFontsSubcontext [$plugin] + Object + (findById + [_ id] + (font-proxy (d/seek #(str/includes? (str/lower (:id %)) (str/lower id)) (vals @fonts/fontsdb)))) + + (findByName + [_ name] + (font-proxy (d/seek #(str/includes? (str/lower (:name %)) (str/lower name)) (vals @fonts/fontsdb)))) + + (findAllById + [_ id] + (apply array (->> (vals @fonts/fontsdb) + (filter #(str/includes? (str/lower (:id %)) (str/lower id))) + (map font-proxy)))) + + (findAllByName + [_ name] + (apply array (->> (vals @fonts/fontsdb) + (filter #(str/includes? (str/lower (:name %)) (str/lower name))) + (map font-proxy))))) + +(defn fonts-subcontext + [plugin-id] + (cr/add-properties! + (PenpotFontsSubcontext. plugin-id) + {:name "$plugin" :enumerable false :get (constantly plugin-id)} + {:name "all" :get + (fn [_] + (apply array (->> @fonts/fontsdb vals (map font-proxy))))})) From e13d543dcd5e6340ebad8950e04fd8936f42e782 Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Fri, 14 Jun 2024 12:20:47 +0200 Subject: [PATCH 222/476] :sparkles: Add geometry utils --- .../app/main/data/workspace/modifiers.cljs | 38 +++++----- .../app/main/data/workspace/transforms.cljs | 73 ++++++++++--------- frontend/src/app/plugins.cljs | 1 + frontend/src/app/plugins/public_utils.cljs | 19 +++++ frontend/src/app/plugins/shape.cljs | 39 +++++++++- 5 files changed, 116 insertions(+), 54 deletions(-) create mode 100644 frontend/src/app/plugins/public_utils.cljs diff --git a/frontend/src/app/main/data/workspace/modifiers.cljs b/frontend/src/app/main/data/workspace/modifiers.cljs index 74e243af84..1177b4f908 100644 --- a/frontend/src/app/main/data/workspace/modifiers.cljs +++ b/frontend/src/app/main/data/workspace/modifiers.cljs @@ -438,28 +438,28 @@ ;; - It consideres the center for everyshape instead of the center of the total selrect ;; - The angle param is the desired final value, not a delta (defn set-delta-rotation-modifiers - ([angle shapes] - (ptk/reify ::set-delta-rotation-modifiers - ptk/UpdateEvent - (update [_ state] - (let [objects (wsh/lookup-page-objects state) - ids - (->> shapes - (remove #(get % :blocked false)) - (filter #(contains? (get editable-attrs (:type %)) :rotation)) - (map :id)) + [angle shapes {:keys [center delta?] :or {center nil delta? false}}] + (ptk/reify ::set-delta-rotation-modifiers + ptk/UpdateEvent + (update [_ state] + (let [objects (wsh/lookup-page-objects state) + ids + (->> shapes + (remove #(get % :blocked false)) + (filter #(contains? (get editable-attrs (:type %)) :rotation)) + (map :id)) - get-modifier - (fn [shape] - (let [delta (- angle (:rotation shape)) - center (gsh/shape->center shape)] - (ctm/rotation-modifiers shape center delta))) + get-modifier + (fn [shape] + (let [delta (if delta? angle (- angle (:rotation shape))) + center (or center (gsh/shape->center shape))] + (ctm/rotation-modifiers shape center delta))) - modif-tree - (-> (build-modif-tree ids objects get-modifier) - (gm/set-objects-modifiers objects))] + modif-tree + (-> (build-modif-tree ids objects get-modifier) + (gm/set-objects-modifiers objects))] - (assoc state :workspace-modifiers modif-tree)))))) + (assoc state :workspace-modifiers modif-tree))))) (defn apply-modifiers ([] diff --git a/frontend/src/app/main/data/workspace/transforms.cljs b/frontend/src/app/main/data/workspace/transforms.cljs index 3107f9ace3..c4e2a80642 100644 --- a/frontend/src/app/main/data/workspace/transforms.cljs +++ b/frontend/src/app/main/data/workspace/transforms.cljs @@ -400,17 +400,18 @@ (defn increase-rotation "Rotate shapes a fixed angle, from a keyboard action." - [ids rotation] - (ptk/reify ::increase-rotation - ptk/WatchEvent - (watch [_ state _] - - (let [page-id (:current-page-id state) - objects (wsh/lookup-page-objects state page-id) - shapes (->> ids (map #(get objects %)))] - (rx/concat - (rx/of (dwm/set-delta-rotation-modifiers rotation shapes)) - (rx/of (dwm/apply-modifiers))))))) + ([ids rotation] + (increase-rotation ids rotation nil)) + ([ids rotation params] + (ptk/reify ::increase-rotation + ptk/WatchEvent + (watch [_ state _] + (let [page-id (:current-page-id state) + objects (wsh/lookup-page-objects state page-id) + shapes (->> ids (map #(get objects %)))] + (rx/concat + (rx/of (dwm/set-delta-rotation-modifiers rotation shapes params)) + (rx/of (dwm/apply-modifiers)))))))) ;; -- Move ---------------------------------------------------------- @@ -889,26 +890,32 @@ ;; -- Flip ---------------------------------------------------------- -(defn flip-horizontal-selected [] - (ptk/reify ::flip-horizontal-selected - ptk/WatchEvent - (watch [_ state _] - (let [objects (wsh/lookup-page-objects state) - selected (wsh/lookup-selected state {:omit-blocked? true}) - shapes (map #(get objects %) selected) - selrect (gsh/shapes->rect shapes) - center (grc/rect->center selrect) - modifiers (dwm/create-modif-tree selected (ctm/resize-modifiers (gpt/point -1.0 1.0) center))] - (rx/of (dwm/apply-modifiers {:modifiers modifiers :ignore-snap-pixel true})))))) +(defn flip-horizontal-selected + ([] + (flip-horizontal-selected nil)) + ([ids] + (ptk/reify ::flip-horizontal-selected + ptk/WatchEvent + (watch [_ state _] + (let [objects (wsh/lookup-page-objects state) + selected (or ids (wsh/lookup-selected state {:omit-blocked? true})) + shapes (map #(get objects %) selected) + selrect (gsh/shapes->rect shapes) + center (grc/rect->center selrect) + modifiers (dwm/create-modif-tree selected (ctm/resize-modifiers (gpt/point -1.0 1.0) center))] + (rx/of (dwm/apply-modifiers {:modifiers modifiers :ignore-snap-pixel true}))))))) -(defn flip-vertical-selected [] - (ptk/reify ::flip-vertical-selected - ptk/WatchEvent - (watch [_ state _] - (let [objects (wsh/lookup-page-objects state) - selected (wsh/lookup-selected state {:omit-blocked? true}) - shapes (map #(get objects %) selected) - selrect (gsh/shapes->rect shapes) - center (grc/rect->center selrect) - modifiers (dwm/create-modif-tree selected (ctm/resize-modifiers (gpt/point 1.0 -1.0) center))] - (rx/of (dwm/apply-modifiers {:modifiers modifiers :ignore-snap-pixel true})))))) +(defn flip-vertical-selected + ([] + (flip-vertical-selected nil)) + ([ids] + (ptk/reify ::flip-vertical-selected + ptk/WatchEvent + (watch [_ state _] + (let [objects (wsh/lookup-page-objects state) + selected (or ids (wsh/lookup-selected state {:omit-blocked? true})) + shapes (map #(get objects %) selected) + selrect (gsh/shapes->rect shapes) + center (grc/rect->center selrect) + modifiers (dwm/create-modif-tree selected (ctm/resize-modifiers (gpt/point 1.0 -1.0) center))] + (rx/of (dwm/apply-modifiers {:modifiers modifiers :ignore-snap-pixel true}))))))) diff --git a/frontend/src/app/plugins.cljs b/frontend/src/app/plugins.cljs index ac48f5c080..551591b4ae 100644 --- a/frontend/src/app/plugins.cljs +++ b/frontend/src/app/plugins.cljs @@ -10,6 +10,7 @@ [app.main.features :as features] [app.main.store :as st] [app.plugins.api :as api] + [app.plugins.public-utils] [app.util.globals :refer [global]] [app.util.object :as obj] [beicon.v2.core :as rx] diff --git a/frontend/src/app/plugins/public_utils.cljs b/frontend/src/app/plugins/public_utils.cljs new file mode 100644 index 0000000000..6ebe311516 --- /dev/null +++ b/frontend/src/app/plugins/public_utils.cljs @@ -0,0 +1,19 @@ +;; This Source Code Form is subject to the terms of the Mozilla Public +;; License, v. 2.0. If a copy of the MPL was not distributed with this +;; file, You can obtain one at http://mozilla.org/MPL/2.0/. +;; +;; Copyright (c) KALEIDOS INC + +(ns app.plugins.public-utils + "Utilities that will be exposed to plugins developers" + (:require + [app.common.geom.rect :as grc] + [app.common.geom.shapes :as gsh] + [app.plugins.utils :as u])) + +(defn ^:export centerShapes + [shapes] + (let [shapes (->> shapes (map u/proxy->shape))] + (-> (gsh/shapes->rect shapes) + (grc/rect->center) + (u/to-js)))) diff --git a/frontend/src/app/plugins/shape.cljs b/frontend/src/app/plugins/shape.cljs index 0d239dbe28..2048e8afed 100644 --- a/frontend/src/app/plugins/shape.cljs +++ b/frontend/src/app/plugins/shape.cljs @@ -202,6 +202,20 @@ (st/emit! (dw/update-dimensions [$id] :width width) (dw/update-dimensions [$id] :height height))) + (rotate + [self angle center] + (let [center (when center {:x (obj/get center "x") :y (obj/get center "y")})] + (cond + (not (number? angle)) + (u/display-not-valid :rotate-angle angle) + + (and (some? center) (or (not (number? (:x center))) (not (number? (:y center))))) + (u/display-not-valid :rotate-center center) + + :else + (let [id (obj/get self "$id")] + (st/emit! (dw/increase-rotation [id] angle {:center center :delta? true})))))) + (clone [_] (let [ret-v (atom nil)] @@ -624,11 +638,32 @@ {:name "height" :get #(-> % u/proxy->shape :height)} + {:name "rotation" + :get #(-> % u/proxy->shape :rotation) + :set + (fn [self value] + (if (number? value) + (let [shape (u/proxy->shape self)] + (st/emit! (dw/increase-rotation #{(:id shape)} value))) + (u/display-not-valid :rotation value)))} + {:name "flipX" - :get #(-> % u/proxy->shape :flip-x)} + :get #(-> % u/proxy->shape :flip-x boolean) + :set + (fn [self value] + (if (boolean? value) + (let [id (obj/get self "$id")] + (st/emit! (dw/flip-horizontal-selected #{id}))) + (u/display-not-valid :flipX value)))} {:name "flipY" - :get #(-> % u/proxy->shape :flip-y)} + :get #(-> % u/proxy->shape :flip-y boolean) + :set + (fn [self value] + (if (boolean? value) + (let [id (obj/get self "$id")] + (st/emit! (dw/flip-vertical-selected #{id}))) + (u/display-not-valid :flipY value)))} ;; Strokes and fills ;; TODO: Validate fills input From c5c8be4b4a2312aae51a89a2fe26a9a36a1fb651 Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Fri, 14 Jun 2024 15:19:57 +0200 Subject: [PATCH 223/476] :sparkles: Improve input validation in plugins --- frontend/src/app/plugins/api.cljs | 113 ++++++++++++++++--------- frontend/src/app/plugins/file.cljs | 3 + frontend/src/app/plugins/flex.cljs | 6 ++ frontend/src/app/plugins/fonts.cljs | 3 + frontend/src/app/plugins/grid.cljs | 6 ++ frontend/src/app/plugins/library.cljs | 12 +++ frontend/src/app/plugins/page.cljs | 3 + frontend/src/app/plugins/shape.cljs | 3 + frontend/src/app/plugins/user.cljs | 6 ++ frontend/src/app/plugins/viewport.cljs | 5 +- 10 files changed, 120 insertions(+), 40 deletions(-) diff --git a/frontend/src/app/plugins/api.cljs b/frontend/src/app/plugins/api.cljs index c43191edac..adf18684a2 100644 --- a/frontend/src/app/plugins/api.cljs +++ b/frontend/src/app/plugins/api.cljs @@ -26,7 +26,7 @@ [app.plugins.page :as page] [app.plugins.shape :as shape] [app.plugins.user :as user] - [app.plugins.utils :as utils] + [app.plugins.utils :as u] [app.plugins.viewport :as viewport] [app.util.object :as obj] [beicon.v2.core :as rx] @@ -61,7 +61,7 @@ (getViewport [_] - (viewport/create-proxy $plugin)) + (viewport/viewport-proxy $plugin)) (getFile [_] @@ -108,28 +108,50 @@ (uploadMediaUrl [_ name url] - (let [file-id (:current-file-id @st/state)] - (p/create - (fn [resolve reject] - (->> (dwm/upload-media-url name file-id url) - (rx/map utils/to-js) - (rx/take 1) - (rx/subs! resolve reject)))))) + (cond + (not (string? name)) + (u/display-not-valid :uploadMedia-name name) + + (not (string? url)) + (u/display-not-valid :uploadMedia-url url) + + :else + (let [file-id (:current-file-id @st/state)] + (p/create + (fn [resolve reject] + (->> (dwm/upload-media-url name file-id url) + (rx/map u/to-js) + (rx/take 1) + (rx/subs! resolve reject))))))) (group [_ shapes] - (let [file-id (:current-file-id @st/state) - page-id (:current-page-id @st/state) - id (uuid/next) - ids (into #{} (map #(obj/get % "$id")) shapes)] - (st/emit! (dwg/group-shapes id ids)) - (shape/shape-proxy $plugin file-id page-id id))) + (cond + (or (not (array? shapes)) (not (every? shape/shape-proxy? shapes))) + (u/display-not-valid :group-shapes shapes) + + :else + (let [file-id (:current-file-id @st/state) + page-id (:current-page-id @st/state) + id (uuid/next) + ids (into #{} (map #(obj/get % "$id")) shapes)] + (st/emit! (dwg/group-shapes id ids)) + (shape/shape-proxy $plugin file-id page-id id)))) (ungroup [_ group & rest] - (let [shapes (concat [group] rest) - ids (into #{} (map #(obj/get % "$id")) shapes)] - (st/emit! (dwg/ungroup-shapes ids)))) + + (cond + (not (shape/shape-proxy? group)) + (u/display-not-valid :ungroup group) + + (and (some? rest) (not (every? shape/shape-proxy? rest))) + (u/display-not-valid :ungroup rest) + + :else + (let [shapes (concat [group] rest) + ids (into #{} (map #(obj/get % "$id")) shapes)] + (st/emit! (dwg/ungroup-shapes ids))))) (createFrame [_] @@ -161,23 +183,32 @@ (createText [_ text] - (let [file-id (:current-file-id @st/state) - page-id (:current-page-id @st/state) - page (dm/get-in @st/state [:workspace-data :pages-index page-id]) - shape (-> (cts/setup-shape {:type :text :x 0 :y 0 :grow-type :auto-width}) - (txt/change-text text) - (assoc :position-data nil)) - changes - (-> (cb/empty-changes) - (cb/with-page page) - (cb/with-objects (:objects page)) - (cb/add-object shape))] - (st/emit! (ch/commit-changes changes)) - (shape/shape-proxy $plugin file-id page-id (:id shape)))) + (cond + (or (not (string? text)) (empty? text)) + (u/display-not-valid :createText text) + + :else + (let [file-id (:current-file-id @st/state) + page-id (:current-page-id @st/state) + page (dm/get-in @st/state [:workspace-data :pages-index page-id]) + shape (-> (cts/setup-shape {:type :text :x 0 :y 0 :grow-type :auto-width}) + (txt/change-text text) + (assoc :position-data nil)) + changes + (-> (cb/empty-changes) + (cb/with-page page) + (cb/with-objects (:objects page)) + (cb/add-object shape))] + (st/emit! (ch/commit-changes changes)) + (shape/shape-proxy $plugin file-id page-id (:id shape))))) (createShapeFromSvg [_ svg-string] - (when (some? svg-string) + (cond + (not (string? svg-string)) + (u/display-not-valid :createShapeFromSvg svg-string) + + :else (let [id (uuid/next) file-id (:current-file-id @st/state) page-id (:current-page-id @st/state)] @@ -185,15 +216,19 @@ (shape/shape-proxy $plugin file-id page-id id)))) (createBoolean [_ bool-type shapes] - (let [ids (into #{} (map #(obj/get % "$id")) shapes) - bool-type (keyword bool-type)] + (let [bool-type (keyword bool-type)] + (cond + (not (contains? cts/bool-types bool-type)) + (u/display-not-valid :createBoolean-boolType bool-type) - (if (contains? cts/bool-types bool-type) - (let [id-ret (atom nil)] + (or (not (array? shapes)) (empty? shapes) (not (every? shape/shape-proxy? shapes))) + (u/display-not-valid :createBoolean-shapes shapes) + + :else + (let [ids (into #{} (map #(obj/get % "$id")) shapes) + id-ret (atom nil)] (st/emit! (dwb/create-bool bool-type ids {:id-ret id-ret})) - (shape/shape-proxy $plugin @id-ret)) - - (utils/display-not-valid :bool-shape bool-type))))) + (shape/shape-proxy $plugin @id-ret)))))) (defn create-context [plugin-id] diff --git a/frontend/src/app/plugins/file.cljs b/frontend/src/app/plugins/file.cljs index 1fd74e29ee..9f8ca7380c 100644 --- a/frontend/src/app/plugins/file.cljs +++ b/frontend/src/app/plugins/file.cljs @@ -93,6 +93,9 @@ {:name js/Symbol.toStringTag :get (fn [] (str "FileProxy"))}) +(defn file-proxy? [p] + (instance? FileProxy p)) + (defn file-proxy [plugin-id id] (crc/add-properties! diff --git a/frontend/src/app/plugins/flex.cljs b/frontend/src/app/plugins/flex.cljs index e379fcba4a..2f7b50bb71 100644 --- a/frontend/src/app/plugins/flex.cljs +++ b/frontend/src/app/plugins/flex.cljs @@ -29,6 +29,9 @@ (st/emit! (dwt/move-shapes-to-frame #{child-id} $id nil nil) (ptk/data-event :layout/update {:ids [$id]}))))) +(defn flex-layout-proxy? [p] + (instance? FlexLayout p)) + (defn flex-layout-proxy [plugin-id file-id page-id id] (-> (FlexLayout. plugin-id file-id page-id id) @@ -151,6 +154,9 @@ (deftype LayoutChildProxy [$plugin $file $page $id]) +(defn layout-child-proxy? [p] + (instance? LayoutChildProxy p)) + (defn layout-child-proxy [plugin-id file-id page-id id] (-> (LayoutChildProxy. plugin-id file-id page-id id) diff --git a/frontend/src/app/plugins/fonts.cljs b/frontend/src/app/plugins/fonts.cljs index 8455ec72b9..fec42342dd 100644 --- a/frontend/src/app/plugins/fonts.cljs +++ b/frontend/src/app/plugins/fonts.cljs @@ -39,6 +39,9 @@ :font-weight (d/nilv (obj/get variant "fontWeight") fontWeight)}] (st/emit! (dwt/update-text-range id start end values))))) +(defn font-proxy? [p] + (instance? PenpotFont p)) + (defn font-proxy [{:keys [id name variants] :as font}] (when (some? font) diff --git a/frontend/src/app/plugins/grid.cljs b/frontend/src/app/plugins/grid.cljs index 8b0f49ab9f..1d9d4799f1 100644 --- a/frontend/src/app/plugins/grid.cljs +++ b/frontend/src/app/plugins/grid.cljs @@ -74,6 +74,9 @@ (st/emit! (dwt/move-shapes-to-frame #{child-id} $id nil [row column]) (ptk/data-event :layout/update {:ids [$id]}))))) +(defn grid-layout-proxy? [p] + (instance? GridLayout p)) + (defn grid-layout-proxy [plugin-id file-id page-id id] (-> (GridLayout. plugin-id file-id page-id id) @@ -199,6 +202,9 @@ (deftype GridCellProxy [$plugin $file $page $id]) +(defn layout-cell-proxy? [p] + (instance? GridCellProxy p)) + (defn layout-cell-proxy [plugin-id file-id page-id id] (letfn [(locate-cell [_] diff --git a/frontend/src/app/plugins/library.cljs b/frontend/src/app/plugins/library.cljs index 380ff68c32..8107ca3750 100644 --- a/frontend/src/app/plugins/library.cljs +++ b/frontend/src/app/plugins/library.cljs @@ -137,6 +137,9 @@ (let [color (u/proxy->library-color self)] (apply array (keys (dm/get-in color [:plugin-data (keyword "shared" namespace)]))))))) +(defn lib-color-proxy? [p] + (instance? LibraryColorProxy p)) + (defn lib-color-proxy [plugin-id file-id id] (assert (uuid? file-id)) @@ -316,6 +319,9 @@ (let [typography (u/proxy->library-typography self)] (apply array (keys (dm/get-in typography [:plugin-data (keyword "shared" namespace)]))))))) +(defn lib-typography-proxy? [p] + (instance? LibraryTypographyProxy p)) + (defn lib-typography-proxy [plugin-id file-id id] (assert (uuid? file-id)) @@ -522,6 +528,9 @@ (let [component (u/proxy->library-component self)] (apply array (keys (dm/get-in component [:plugin-data (keyword "shared" namespace)]))))))) +(defn lib-component-proxy? [p] + (instance? LibraryComponentProxy p)) + (defn lib-component-proxy [plugin-id file-id id] (assert (uuid? file-id)) @@ -643,6 +652,9 @@ (let [file (u/proxy->file self)] (apply array (keys (dm/get-in file [:data :plugin-data (keyword "shared" namespace)]))))))) +(defn library-proxy? [p] + (instance? Library p)) + (defn library-proxy [plugin-id file-id] (assert (uuid? file-id) "File id not valid") diff --git a/frontend/src/app/plugins/page.cljs b/frontend/src/app/plugins/page.cljs index 35c1a9dd59..f63cfdd9dc 100644 --- a/frontend/src/app/plugins/page.cljs +++ b/frontend/src/app/plugins/page.cljs @@ -107,6 +107,9 @@ {:name js/Symbol.toStringTag :get (fn [] (str "PageProxy"))}) +(defn page-proxy? [p] + (instance? PageProxy p)) + (defn page-proxy [plugin-id file-id id] (crc/add-properties! diff --git a/frontend/src/app/plugins/shape.cljs b/frontend/src/app/plugins/shape.cljs index 2048e8afed..5fcf8ce289 100644 --- a/frontend/src/app/plugins/shape.cljs +++ b/frontend/src/app/plugins/shape.cljs @@ -380,6 +380,9 @@ {:name js/Symbol.toStringTag :get (fn [] (str "ShapeProxy"))}) +(defn shape-proxy? [p] + (instance? ShapeProxy p)) + (defn shape-proxy ([plugin-id id] (shape-proxy plugin-id (:current-file-id @st/state) (:current-page-id @st/state) id)) diff --git a/frontend/src/app/plugins/user.cljs b/frontend/src/app/plugins/user.cljs index eb199f5a6b..42cd32f6e6 100644 --- a/frontend/src/app/plugins/user.cljs +++ b/frontend/src/app/plugins/user.cljs @@ -38,11 +38,17 @@ {:name "sessionId" :get (fn [_] (str session-id))}))) +(defn current-user-proxy? [p] + (instance? CurrentUserProxy p)) + (defn current-user-proxy [plugin-id session-id] (-> (CurrentUserProxy. plugin-id session-id) (add-user-properties))) +(defn active-user-proxy? [p] + (instance? ActiveUserProxy p)) + (defn active-user-proxy [plugin-id session-id] (-> (ActiveUserProxy. plugin-id session-id) diff --git a/frontend/src/app/plugins/viewport.cljs b/frontend/src/app/plugins/viewport.cljs index 8859f6197a..65e4423fb4 100644 --- a/frontend/src/app/plugins/viewport.cljs +++ b/frontend/src/app/plugins/viewport.cljs @@ -32,7 +32,10 @@ {:name js/Symbol.toStringTag :get (fn [] (str "ViewportProxy"))}) -(defn create-proxy +(defn viewport-proxy? [p] + (instance? ViewportProxy p)) + +(defn viewport-proxy [plugin-id] (crc/add-properties! (ViewportProxy. plugin-id) From 1794859468b5f1da2294dc8e60a41aaad54e1419 Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Wed, 19 Jun 2024 11:17:04 +0200 Subject: [PATCH 224/476] :sparkles: Review input validation for plugins --- common/src/app/common/types/shape/export.cljc | 2 + .../src/app/main/ui/workspace/plugins.cljs | 21 +- frontend/src/app/plugins/file.cljs | 6 +- frontend/src/app/plugins/flex.cljs | 328 ++++++--- frontend/src/app/plugins/fonts.cljs | 84 ++- frontend/src/app/plugins/grid.cljs | 367 +++++++--- frontend/src/app/plugins/library.cljs | 211 ++++-- frontend/src/app/plugins/page.cljs | 27 +- frontend/src/app/plugins/public_utils.cljs | 14 +- frontend/src/app/plugins/shape.cljs | 693 +++++++++++++----- frontend/src/app/plugins/viewport.cljs | 16 +- .../plugins/context_shapes_test.cljs | 260 +++++++ 12 files changed, 1532 insertions(+), 497 deletions(-) create mode 100644 frontend/test/frontend_tests/plugins/context_shapes_test.cljs diff --git a/common/src/app/common/types/shape/export.cljc b/common/src/app/common/types/shape/export.cljc index 6d7953a88e..ddbf4263be 100644 --- a/common/src/app/common/types/shape/export.cljc +++ b/common/src/app/common/types/shape/export.cljc @@ -8,6 +8,8 @@ (:require [app.common.schema :as sm])) +(def export-types #{:png :jpeg :svg :pdf}) + (sm/def! ::export [:map {:title "ShapeExport"} [:type :keyword] diff --git a/frontend/src/app/main/ui/workspace/plugins.cljs b/frontend/src/app/main/ui/workspace/plugins.cljs index 7cca4d86c4..cf55b802d0 100644 --- a/frontend/src/app/main/ui/workspace/plugins.cljs +++ b/frontend/src/app/main/ui/workspace/plugins.cljs @@ -72,15 +72,18 @@ (defn open-plugin! [{:keys [plugin-id name description host code icon permissions]}] - (.ɵloadPlugin - js/window - #js {:pluginId plugin-id - :name name - :description description - :host host - :code code - :icon icon - :permissions (apply array permissions)})) + (try + (.ɵloadPlugin + js/window + #js {:pluginId plugin-id + :name name + :description description + :host host + :code code + :icon icon + :permissions (apply array permissions)}) + (catch :default e + (.error js/console "Error" e)))) (mf/defc plugin-management-dialog {::mf/register modal/components diff --git a/frontend/src/app/plugins/file.cljs b/frontend/src/app/plugins/file.cljs index 9f8ca7380c..9dc4d34b4f 100644 --- a/frontend/src/app/plugins/file.cljs +++ b/frontend/src/app/plugins/file.cljs @@ -35,7 +35,7 @@ (setPluginData [_ key value] (cond - (not (string? key)) + (or (not (string? key)) (empty? key)) (u/display-not-valid :file-plugin-data-key key) (and (some? value) (not (string? value))) @@ -66,10 +66,10 @@ [_ namespace key value] (cond - (not (string? namespace)) + (or (not (string? namespace)) (empty? namespace)) (u/display-not-valid :file-plugin-data-namespace namespace) - (not (string? key)) + (or (not (string? key)) (empty? key)) (u/display-not-valid :file-plugin-data-key key) (and (some? value) (not (string? value))) diff --git a/frontend/src/app/plugins/flex.cljs b/frontend/src/app/plugins/flex.cljs index 2f7b50bb71..098d11f2e7 100644 --- a/frontend/src/app/plugins/flex.cljs +++ b/frontend/src/app/plugins/flex.cljs @@ -13,10 +13,13 @@ [app.main.data.workspace.shape-layout :as dwsl] [app.main.data.workspace.transforms :as dwt] [app.main.store :as st] - [app.plugins.utils :as utils :refer [proxy->shape]] + [app.plugins.utils :as u] [app.util.object :as obj] [potok.v2.core :as ptk])) +;; Define in `app.plugins.shape` we do this way to prevent circular dependency +(def shape-proxy? nil) + (deftype FlexLayout [$plugin $file $page $id] Object (remove @@ -25,9 +28,14 @@ (appendChild [_ child] - (let [child-id (obj/get child "$id")] - (st/emit! (dwt/move-shapes-to-frame #{child-id} $id nil nil) - (ptk/data-event :layout/update {:ids [$id]}))))) + (cond + (not (shape-proxy? child)) + (u/display-not-valid :appendChild child) + + :else + (let [child-id (obj/get child "$id")] + (st/emit! (dwt/move-shapes-to-frame #{child-id} $id nil nil) + (ptk/data-event :layout/update {:ids [$id]})))))) (defn flex-layout-proxy? [p] (instance? FlexLayout p)) @@ -42,113 +50,165 @@ {:name "$page" :enumerable false :get (constantly page-id)} {:name "dir" - :get #(-> % proxy->shape :layout-flex-dir d/name) + :get #(-> % u/proxy->shape :layout-flex-dir d/name) :set (fn [self value] - (let [id (obj/get self "$id") - value (keyword value)] - (when (contains? ctl/flex-direction-types value) - (st/emit! (dwsl/update-layout #{id} {:layout-flex-dir value})))))} + (let [value (keyword value)] + (cond + (not (contains? ctl/flex-direction-types value)) + (u/display-not-valid :dir value) + + :else + (let [id (obj/get self "$id")] + (st/emit! (dwsl/update-layout #{id} {:layout-flex-dir value}))))))} {:name "alignItems" - :get #(-> % proxy->shape :layout-align-items d/name) + :get #(-> % u/proxy->shape :layout-align-items d/name) :set (fn [self value] - (let [id (obj/get self "$id") - value (keyword value)] - (when (contains? ctl/align-items-types value) - (st/emit! (dwsl/update-layout #{id} {:layout-align-items value})))))} + (let [value (keyword value)] + (cond + (not (contains? ctl/align-items-types value)) + (u/display-not-valid :alignItems value) + + :else + (let [id (obj/get self "$id")] + (st/emit! (dwsl/update-layout #{id} {:layout-align-items value}))))))} {:name "alignContent" - :get #(-> % proxy->shape :layout-align-content d/name) + :get #(-> % u/proxy->shape :layout-align-content d/name) :set (fn [self value] - (let [id (obj/get self "$id") - value (keyword value)] - (when (contains? ctl/align-content-types value) - (st/emit! (dwsl/update-layout #{id} {:layout-align-content value})))))} + (let [value (keyword value)] + (cond + (not (contains? ctl/align-content-types value)) + (u/display-not-valid :alignContent value) + + :else + (let [id (obj/get self "$id")] + (st/emit! (dwsl/update-layout #{id} {:layout-align-content value}))))))} {:name "justifyItems" - :get #(-> % proxy->shape :layout-justify-items d/name) + :get #(-> % u/proxy->shape :layout-justify-items d/name) :set (fn [self value] - (let [id (obj/get self "$id") - value (keyword value)] - (when (contains? ctl/justify-items-types value) - (st/emit! (dwsl/update-layout #{id} {:layout-justify-items value})))))} + (let [value (keyword value)] + (cond + (not (contains? ctl/justify-items-types value)) + (u/display-not-valid :justifyItems value) + + :else + (let [id (obj/get self "$id")] + (st/emit! (dwsl/update-layout #{id} {:layout-justify-items value}))))))} {:name "justifyContent" - :get #(-> % proxy->shape :layout-justify-content d/name) + :get #(-> % u/proxy->shape :layout-justify-content d/name) :set (fn [self value] - (let [id (obj/get self "$id") - value (keyword value)] - (when (contains? ctl/justify-content-types value) - (st/emit! (dwsl/update-layout #{id} {:layout-justify-content value})))))} + (let [value (keyword value)] + (cond + (not (contains? ctl/justify-content-types value)) + (u/display-not-valid :justifyContent value) + + :else + (let [id (obj/get self "$id")] + (st/emit! (dwsl/update-layout #{id} {:layout-justify-content value}))))))} {:name "rowGap" - :get #(-> % proxy->shape :layout-gap :row-gap) + :get #(-> % u/proxy->shape :layout-gap :row-gap (d/nilv 0)) :set (fn [self value] - (let [id (obj/get self "$id")] - (when (us/safe-int? value) + (cond + (not (us/safe-int? value)) + (u/display-not-valid :rowGap value) + + :else + (let [id (obj/get self "$id")] (st/emit! (dwsl/update-layout #{id} {:layout-gap {:row-gap value}})))))} {:name "columnGap" - :get #(-> % proxy->shape :layout-gap :column-gap) + :get #(-> % u/proxy->shape :layout-gap :column-gap (d/nilv 0)) :set (fn [self value] - (let [id (obj/get self "$id")] - (when (us/safe-int? value) + (cond + (not (us/safe-int? value)) + (u/display-not-valid :columnGap value) + + :else + (let [id (obj/get self "$id")] (st/emit! (dwsl/update-layout #{id} {:layout-gap {:column-gap value}})))))} {:name "verticalPadding" - :get #(-> % proxy->shape :layout-padding :p1) + :get #(-> % u/proxy->shape :layout-padding :p1 (d/nilv 0)) :set (fn [self value] - (let [id (obj/get self "$id")] - (when (us/safe-int? value) + (cond + (not (us/safe-int? value)) + (u/display-not-valid :verticalPadding value) + + :else + (let [id (obj/get self "$id")] (st/emit! (dwsl/update-layout #{id} {:layout-padding {:p1 value :p3 value}})))))} {:name "horizontalPadding" - :get #(-> % proxy->shape :layout-padding :p2) + :get #(-> % u/proxy->shape :layout-padding :p2 (d/nilv 0)) :set (fn [self value] - (let [id (obj/get self "$id")] - (when (us/safe-int? value) + (cond + (not (us/safe-int? value)) + (u/display-not-valid :horizontalPadding value) + + :else + (let [id (obj/get self "$id")] (st/emit! (dwsl/update-layout #{id} {:layout-padding {:p2 value :p4 value}})))))} {:name "topPadding" - :get #(-> % proxy->shape :layout-padding :p1) + :get #(-> % u/proxy->shape :layout-padding :p1 (d/nilv 0)) :set (fn [self value] - (let [id (obj/get self "$id")] - (when (us/safe-int? value) + (cond + (not (us/safe-int? value)) + (u/display-not-valid :topPadding value) + + :else + (let [id (obj/get self "$id")] (st/emit! (dwsl/update-layout #{id} {:layout-padding {:p1 value}})))))} {:name "rightPadding" - :get #(-> % proxy->shape :layout-padding :p2) + :get #(-> % u/proxy->shape :layout-padding :p2 (d/nilv 0)) :set (fn [self value] - (let [id (obj/get self "$id")] - (when (us/safe-int? value) + (cond + (not (us/safe-int? value)) + (u/display-not-valid :rightPadding value) + + :else + (let [id (obj/get self "$id")] (st/emit! (dwsl/update-layout #{id} {:layout-padding {:p2 value}})))))} {:name "bottomPadding" - :get #(-> % proxy->shape :layout-padding :p3) + :get #(-> % u/proxy->shape :layout-padding :p3 (d/nilv 0)) :set (fn [self value] - (let [id (obj/get self "$id")] - (when (us/safe-int? value) + (cond + (not (us/safe-int? value)) + (u/display-not-valid :bottomPadding value) + + :else + (let [id (obj/get self "$id")] (st/emit! (dwsl/update-layout #{id} {:layout-padding {:p3 value}})))))} {:name "leftPadding" - :get #(-> % proxy->shape :layout-padding :p4) + :get #(-> % u/proxy->shape :layout-padding :p4 (d/nilv 0)) :set (fn [self value] - (let [id (obj/get self "$id")] - (when (us/safe-int? value) + (cond + (not (us/safe-int? value)) + (u/display-not-valid :leftPadding value) + + :else + (let [id (obj/get self "$id")] (st/emit! (dwsl/update-layout #{id} {:layout-padding {:p4 value}})))))}))) @@ -167,124 +227,184 @@ {:name "$page" :enumerable false :get (constantly page-id)} {:name "absolute" - :get #(-> % proxy->shape :layout-item-absolute boolean) + :get #(-> % u/proxy->shape :layout-item-absolute boolean) :set (fn [self value] - (let [id (obj/get self "$id")] - (when (boolean? value) + (cond + (not (boolean? value)) + (u/display-not-valid :absolute value) + + :else + (let [id (obj/get self "$id")] (st/emit! (dwsl/update-layout #{id} {:layout-item-absolute value})))))} {:name "zIndex" - :get #(-> % proxy->shape :layout-item-z-index (d/nilv 0)) + :get #(-> % u/proxy->shape :layout-item-z-index (d/nilv 0)) :set (fn [self value] - (let [id (obj/get self "$id")] - (when (us/safe-int? value) + (cond + (us/safe-int? value) + (u/display-not-valid :zIndex value) + + :else + (let [id (obj/get self "$id")] (st/emit! (dwsl/update-layout-child #{id} {:layout-item-z-index value})))))} {:name "horizontalSizing" - :get #(-> % proxy->shape :layout-item-h-sizing (d/nilv :fix) d/name) + :get #(-> % u/proxy->shape :layout-item-h-sizing (d/nilv :fix) d/name) :set (fn [self value] - (let [id (obj/get self "$id") - value (keyword value)] - (when (contains? ctl/item-h-sizing-types value) - (st/emit! (dwsl/update-layout-child #{id} {:layout-item-h-sizing value})))))} + (let [value (keyword value)] + (cond + (not (contains? ctl/item-h-sizing-types value)) + (u/display-not-valid :horizontalPadding value) + + :else + (let [id (obj/get self "$id")] + (st/emit! (dwsl/update-layout-child #{id} {:layout-item-h-sizing value}))))))} {:name "verticalSizing" - :get #(-> % proxy->shape :layout-item-v-sizing (d/nilv :fix) d/name) + :get #(-> % u/proxy->shape :layout-item-v-sizing (d/nilv :fix) d/name) :set (fn [self value] - (let [id (obj/get self "$id") - value (keyword value)] - (when (contains? ctl/item-v-sizing-types value) - (st/emit! (dwsl/update-layout-child #{id} {:layout-item-v-sizing value})))))} + (let [value (keyword value)] + (cond + (not (contains? ctl/item-v-sizing-types value)) + (u/display-not-valid :verticalSizing value) + + :else + (let [id (obj/get self "$id")] + (st/emit! (dwsl/update-layout-child #{id} {:layout-item-v-sizing value}))))))} {:name "alignSelf" - :get #(-> % proxy->shape :layout-item-align-self (d/nilv :auto) d/name) + :get #(-> % u/proxy->shape :layout-item-align-self (d/nilv :auto) d/name) :set (fn [self value] - (let [id (obj/get self "$id") - value (keyword value)] - (when (contains? ctl/item-align-self-types value) - (st/emit! (dwsl/update-layout-child #{id} {:layout-item-align-self value})))))} + (let [value (keyword value)] + (cond + (not (contains? ctl/item-align-self-types value)) + (u/display-not-valid :alignSelf value) + + :else + (let [id (obj/get self "$id")] + (st/emit! (dwsl/update-layout-child #{id} {:layout-item-align-self value}))))))} {:name "verticalMargin" - :get #(-> % proxy->shape :layout-item-margin :m1 (d/nilv 0)) + :get #(-> % u/proxy->shape :layout-item-margin :m1 (d/nilv 0)) :set (fn [self value] - (let [id (obj/get self "$id")] - (when (us/safe-number? value) + (cond + (not (us/safe-number? value)) + (u/display-not-valid :verticalMargin value) + + :else + (let [id (obj/get self "$id")] (st/emit! (dwsl/update-layout-child #{id} {:layout-item-margin {:m1 value :m3 value}})))))} {:name "horizontalMargin" - :get #(-> % proxy->shape :layout-item-margin :m2 (d/nilv 0)) + :get #(-> % u/proxy->shape :layout-item-margin :m2 (d/nilv 0)) :set (fn [self value] - (let [id (obj/get self "$id")] - (when (us/safe-number? value) + (cond + (not (us/safe-number? value)) + (u/display-not-valid :horizontalMargin value) + + :else + (let [id (obj/get self "$id")] (st/emit! (dwsl/update-layout-child #{id} {:layout-item-margin {:m2 value :m4 value}})))))} {:name "topMargin" - :get #(-> % proxy->shape :layout-item-margin :m1 (d/nilv 0)) + :get #(-> % u/proxy->shape :layout-item-margin :m1 (d/nilv 0)) :set (fn [self value] - (let [id (obj/get self "$id")] - (when (us/safe-number? value) + (cond + (not (us/safe-number? value)) + (u/display-not-valid :topMargin value) + + :else + (let [id (obj/get self "$id")] (st/emit! (dwsl/update-layout-child #{id} {:layout-item-margin {:m1 value}})))))} {:name "rightMargin" - :get #(-> % proxy->shape :layout-item-margin :m2 (d/nilv 0)) + :get #(-> % u/proxy->shape :layout-item-margin :m2 (d/nilv 0)) :set (fn [self value] - (let [id (obj/get self "$id")] - (when (us/safe-number? value) + (cond + (not (us/safe-number? value)) + (u/display-not-valid :rightMargin value) + + :else + (let [id (obj/get self "$id")] (st/emit! (dwsl/update-layout-child #{id} {:layout-item-margin {:m2 value}})))))} {:name "bottomMargin" - :get #(-> % proxy->shape :layout-item-margin :m3 (d/nilv 0)) + :get #(-> % u/proxy->shape :layout-item-margin :m3 (d/nilv 0)) :set (fn [self value] - (let [id (obj/get self "$id")] - (when (us/safe-number? value) + (cond + (not (us/safe-number? value)) + (u/display-not-valid :bottomMargin value) + + :else + (let [id (obj/get self "$id")] (st/emit! (dwsl/update-layout-child #{id} {:layout-item-margin {:m3 value}})))))} {:name "leftMargin" - :get #(-> % proxy->shape :layout-item-margin :m4 (d/nilv 0)) + :get #(-> % u/proxy->shape :layout-item-margin :m4 (d/nilv 0)) :set (fn [self value] - (let [id (obj/get self "$id")] - (when (us/safe-number? value) + (cond + (not (us/safe-number? value)) + (u/display-not-valid :leftMargin value) + + :else + (let [id (obj/get self "$id")] (st/emit! (dwsl/update-layout-child #{id} {:layout-item-margin {:m4 value}})))))} {:name "maxWidth" - :get #(-> % proxy->shape :layout-item-max-w) + :get #(-> % u/proxy->shape :layout-item-max-w) :set (fn [self value] - (let [id (obj/get self "$id")] - (when (us/safe-number? value) + (cond + (not (us/safe-number? value)) + (u/display-not-valid :maxWidth value) + + :else + (let [id (obj/get self "$id")] (st/emit! (dwsl/update-layout-child #{id} {:layout-item-max-w value})))))} {:name "minWidth" - :get #(-> % proxy->shape :layout-item-min-w) + :get #(-> % u/proxy->shape :layout-item-min-w) :set (fn [self value] - (let [id (obj/get self "$id")] - (when (us/safe-number? value) + (cond + (not (us/safe-number? value)) + (u/display-not-valid :minWidth value) + + :else + (let [id (obj/get self "$id")] (st/emit! (dwsl/update-layout-child #{id} {:layout-item-min-w value})))))} {:name "maxHeight" - :get #(-> % proxy->shape :layout-item-max-h) + :get #(-> % u/proxy->shape :layout-item-max-h) :set (fn [self value] - (let [id (obj/get self "$id")] - (when (us/safe-number? value) + (cond + (not (us/safe-number? value)) + (u/display-not-valid :maxHeight value) + + :else + (let [id (obj/get self "$id")] (st/emit! (dwsl/update-layout-child #{id} {:layout-item-max-h value})))))} {:name "minHeight" - :get #(-> % proxy->shape :layout-item-min-h) + :get #(-> % u/proxy->shape :layout-item-min-h) :set (fn [self value] - (let [id (obj/get self "$id")] - (when (us/safe-number? value) + (cond + (not (us/safe-number? value)) + (u/display-not-valid :minHeight value) + + :else + (let [id (obj/get self "$id")] (st/emit! (dwsl/update-layout-child #{id} {:layout-item-min-h value})))))}))) diff --git a/frontend/src/app/plugins/fonts.cljs b/frontend/src/app/plugins/fonts.cljs index fec42342dd..4902277bcd 100644 --- a/frontend/src/app/plugins/fonts.cljs +++ b/frontend/src/app/plugins/fonts.cljs @@ -11,6 +11,8 @@ [app.main.data.workspace.texts :as dwt] [app.main.fonts :as fonts] [app.main.store :as st] + [app.plugins.shape :as shape] + [app.plugins.utils :as u] [app.util.object :as obj] [cuerdas.core :as str])) @@ -20,24 +22,38 @@ Object (applyToText [_ text variant] - (let [id (obj/get text "$id") - values {:font-id fontId - :font-family fontFamily - :font-style (d/nilv (obj/get variant "fontStyle") fontStyle) - :font-variant-id (d/nilv (obj/get variant "fontVariantId") fontVariantId) - :font-weight (d/nilv (obj/get variant "fontWeight") fontWeight)}] - (st/emit! (dwt/update-attrs id values)))) + (cond + (not (shape/shape-proxy? text)) + (u/display-not-valid :applyToText text) + + ;; TODO: Check variant inside font variants + + :else + (let [id (obj/get text "$id") + values {:font-id fontId + :font-family fontFamily + :font-style (d/nilv (obj/get variant "fontStyle") fontStyle) + :font-variant-id (d/nilv (obj/get variant "fontVariantId") fontVariantId) + :font-weight (d/nilv (obj/get variant "fontWeight") fontWeight)}] + (st/emit! (dwt/update-attrs id values))))) (applyToRange [_ range variant] - (let [id (obj/get range "$id") - start (obj/get range "start") - end (obj/get range "end") - values {:font-id fontId - :font-family fontFamily - :font-style (d/nilv (obj/get variant "fontStyle") fontStyle) - :font-variant-id (d/nilv (obj/get variant "fontVariantId") fontVariantId) - :font-weight (d/nilv (obj/get variant "fontWeight") fontWeight)}] - (st/emit! (dwt/update-text-range id start end values))))) + (cond + (not (shape/text-range? range)) + (u/display-not-valid :applyToRange range) + + ;; TODO: Check variant inside font variants + + :else + (let [id (obj/get range "$id") + start (obj/get range "start") + end (obj/get range "end") + values {:font-id fontId + :font-family fontFamily + :font-style (d/nilv (obj/get variant "fontStyle") fontStyle) + :font-variant-id (d/nilv (obj/get variant "fontVariantId") fontVariantId) + :font-weight (d/nilv (obj/get variant "fontWeight") fontWeight)}] + (st/emit! (dwt/update-text-range id start end values)))))) (defn font-proxy? [p] (instance? PenpotFont p)) @@ -63,23 +79,43 @@ Object (findById [_ id] - (font-proxy (d/seek #(str/includes? (str/lower (:id %)) (str/lower id)) (vals @fonts/fontsdb)))) + (cond + (not (string? id)) + (u/display-not-valid :findbyId id) + + :else + (font-proxy (d/seek #(str/includes? (str/lower (:id %)) (str/lower id)) (vals @fonts/fontsdb))))) (findByName [_ name] - (font-proxy (d/seek #(str/includes? (str/lower (:name %)) (str/lower name)) (vals @fonts/fontsdb)))) + (cond + (not (string? name)) + (u/display-not-valid :findByName name) + + :else + (font-proxy (d/seek #(str/includes? (str/lower (:name %)) (str/lower name)) (vals @fonts/fontsdb))))) (findAllById [_ id] - (apply array (->> (vals @fonts/fontsdb) - (filter #(str/includes? (str/lower (:id %)) (str/lower id))) - (map font-proxy)))) + (cond + (not (string? id)) + (u/display-not-valid :findAllById name) + + :else + (apply array (->> (vals @fonts/fontsdb) + (filter #(str/includes? (str/lower (:id %)) (str/lower id))) + (map font-proxy))))) (findAllByName [_ name] - (apply array (->> (vals @fonts/fontsdb) - (filter #(str/includes? (str/lower (:name %)) (str/lower name))) - (map font-proxy))))) + (cond + (not (string? name)) + (u/display-not-valid :findAllByName name) + + :else + (apply array (->> (vals @fonts/fontsdb) + (filter #(str/includes? (str/lower (:name %)) (str/lower name))) + (map font-proxy)))))) (defn fonts-subcontext [plugin-id] diff --git a/frontend/src/app/plugins/grid.cljs b/frontend/src/app/plugins/grid.cljs index 1d9d4799f1..a715e0c7a2 100644 --- a/frontend/src/app/plugins/grid.cljs +++ b/frontend/src/app/plugins/grid.cljs @@ -13,15 +13,18 @@ [app.main.data.workspace.shape-layout :as dwsl] [app.main.data.workspace.transforms :as dwt] [app.main.store :as st] - [app.plugins.utils :as utils :refer [proxy->shape locate-shape]] + [app.plugins.utils :as u] [app.util.object :as obj] [potok.v2.core :as ptk])) +;; Define in `app.plugins.shape` we do this way to prevent circular dependency +(def shape-proxy? nil) + (defn- make-tracks [tracks] (.freeze js/Object - (apply array (->> tracks (map utils/to-js))))) + (apply array (->> tracks (map u/to-js))))) (deftype GridLayout [$plugin $file $page $id] Object @@ -29,40 +32,116 @@ (addRow [_ type value] (let [type (keyword type)] - (st/emit! (dwsl/add-layout-track #{$id} :row {:type type :value value})))) + (cond + (not (contains? ctl/grid-track-types type)) + (u/display-not-valid :addRow-type type) + + (and (or (= :percent type) (= :flex type) (= :fixed type)) + (not (us/safe-number? value))) + (u/display-not-valid :addRow-value value) + + :else + (st/emit! (dwsl/add-layout-track #{$id} :row {:type type :value value}))))) (addRowAtIndex [_ index type value] (let [type (keyword type)] - (st/emit! (dwsl/add-layout-track #{$id} :row {:type type :value value} index)))) + (cond + (not (us/safe-int? index)) + (u/display-not-valid :addRowAtIndex-index index) + + (not (contains? ctl/grid-track-types type)) + (u/display-not-valid :addRowAtIndex-type type) + + (and (or (= :percent type) (= :flex type) (= :fixed type)) + (not (us/safe-number? value))) + (u/display-not-valid :addRowAtIndex-value value) + + :else + (st/emit! (dwsl/add-layout-track #{$id} :row {:type type :value value} index))))) (addColumn [_ type value] (let [type (keyword type)] - (st/emit! (dwsl/add-layout-track #{$id} :column {:type type :value value})))) + (cond + (not (contains? ctl/grid-track-types type)) + (u/display-not-valid :addColumn-type type) + + (and (or (= :percent type) (= :flex type) (= :lex type)) + (not (us/safe-number? value))) + (u/display-not-valid :addColumn-value value) + + :else + (st/emit! (dwsl/add-layout-track #{$id} :column {:type type :value value}))))) (addColumnAtIndex [_ index type value] - (let [type (keyword type)] - (st/emit! (dwsl/add-layout-track #{$id} :column {:type type :value value} index)))) + (cond + (not (us/safe-int? index)) + (u/display-not-valid :addColumnAtIndex-index index) + + (not (contains? ctl/grid-track-types type)) + (u/display-not-valid :addColumnAtIndex-type type) + + (and (or (= :percent type) (= :flex type) (= :fixed type)) + (not (us/safe-number? value))) + (u/display-not-valid :addColumnAtIndex-value value) + + :else + (let [type (keyword type)] + (st/emit! (dwsl/add-layout-track #{$id} :column {:type type :value value} index))))) (removeRow [_ index] - (st/emit! (dwsl/remove-layout-track #{$id} :row index))) + (cond + (not (us/safe-int? index)) + (u/display-not-valid :removeRow index) + + :else + (st/emit! (dwsl/remove-layout-track #{$id} :row index)))) (removeColumn [_ index] - (st/emit! (dwsl/remove-layout-track #{$id} :column index))) + (cond + (not (us/safe-int? index)) + (u/display-not-valid :removeColumn index) + + :else + (st/emit! (dwsl/remove-layout-track #{$id} :column index)))) (setColumn [_ index type value] (let [type (keyword type)] - (st/emit! (dwsl/change-layout-track #{$id} :column index (d/without-nils {:type type :value value}))))) + (cond + (not (us/safe-int? index)) + (u/display-not-valid :setColumn-index index) + + (not (contains? ctl/grid-track-types type)) + (u/display-not-valid :setColumn-type type) + + (and (or (= :percent type) (= :flex type) (= :fixed type)) + (not (us/safe-number? value))) + (u/display-not-valid :setColumn-value value) + + :else + (st/emit! (dwsl/change-layout-track #{$id} :column index (d/without-nils {:type type :value value})))))) (setRow [_ index type value] (let [type (keyword type)] - (st/emit! (dwsl/change-layout-track #{$id} :row index (d/without-nils {:type type :value value}))))) + (cond + (not (us/safe-int? index)) + (u/display-not-valid :setRow-index index) + + (not (contains? ctl/grid-track-types type)) + (u/display-not-valid :setRow-type type) + + (and (or (= :percent type) (= :flex type) (= :fixed type)) + (not (us/safe-number? value))) + (u/display-not-valid :setRow-value value) + + :else + (st/emit! (dwsl/change-layout-track #{$id} :row index (d/without-nils {:type type :value value})))))) (remove [_] @@ -70,9 +149,20 @@ (appendChild [_ child row column] - (let [child-id (obj/get child "$id")] - (st/emit! (dwt/move-shapes-to-frame #{child-id} $id nil [row column]) - (ptk/data-event :layout/update {:ids [$id]}))))) + (cond + (not (shape-proxy? child)) + (u/display-not-valid :appendChild-child child) + + (or (< row 0) (not (us/safe-int? row))) + (u/display-not-valid :appendChild-row row) + + (or (< column 0) (not (us/safe-int? column))) + (u/display-not-valid :appendChild-column column) + + :else + (let [child-id (obj/get child "$id")] + (st/emit! (dwt/move-shapes-to-frame #{child-id} $id nil [row column]) + (ptk/data-event :layout/update {:ids [$id]})))))) (defn grid-layout-proxy? [p] (instance? GridLayout p)) @@ -85,119 +175,172 @@ {:name "$id" :enumerable false :get (constantly id)} {:name "$file" :enumerable false :get (constantly file-id)} {:name "$page" :enumerable false :get (constantly page-id)} + {:name "dir" - :get #(-> % proxy->shape :layout-grid-dir d/name) + :get #(-> % u/proxy->shape :layout-grid-dir d/name) :set (fn [self value] - (let [id (obj/get self "$id") - value (keyword value)] - (when (contains? ctl/grid-direction-types value) - (st/emit! (dwsl/update-layout #{id} {:layout-grid-dir value})))))} + (let [value (keyword value)] + (cond + (not (contains? ctl/grid-direction-types value)) + (u/display-not-valid :dir value) + + :else + (let [id (obj/get self "$id")] + (st/emit! (dwsl/update-layout #{id} {:layout-grid-dir value}))))))} {:name "rows" - :get #(-> % proxy->shape :layout-grid-rows make-tracks)} + :get #(-> % u/proxy->shape :layout-grid-rows make-tracks)} {:name "columns" - :get #(-> % proxy->shape :layout-grid-columns make-tracks)} + :get #(-> % u/proxy->shape :layout-grid-columns make-tracks)} {:name "alignItems" - :get #(-> % proxy->shape :layout-align-items d/name) + :get #(-> % u/proxy->shape :layout-align-items d/name) :set (fn [self value] - (let [id (obj/get self "$id") - value (keyword value)] - (when (contains? ctl/align-items-types value) - (st/emit! (dwsl/update-layout #{id} {:layout-align-items value})))))} + (let [value (keyword value)] + (cond + (not (contains? ctl/align-items-types value)) + (u/display-not-valid :alignItems value) + + :else + (let [id (obj/get self "$id")] + (st/emit! (dwsl/update-layout #{id} {:layout-align-items value}))))))} {:name "alignContent" - :get #(-> % proxy->shape :layout-align-content d/name) + :get #(-> % u/proxy->shape :layout-align-content d/name) :set (fn [self value] - (let [id (obj/get self "$id") - value (keyword value)] - (when (contains? ctl/align-content-types value) - (st/emit! (dwsl/update-layout #{id} {:layout-align-content value})))))} + (let [value (keyword value)] + (cond + (not (contains? ctl/align-content-types value)) + (u/display-not-valid :alignContent value) + + :else + (let [id (obj/get self "$id")] + (st/emit! (dwsl/update-layout #{id} {:layout-align-content value}))))))} {:name "justifyItems" - :get #(-> % proxy->shape :layout-justify-items d/name) + :get #(-> % u/proxy->shape :layout-justify-items d/name) :set (fn [self value] - (let [id (obj/get self "$id") - value (keyword value)] - (when (contains? ctl/justify-items-types value) - (st/emit! (dwsl/update-layout #{id} {:layout-justify-items value})))))} + (let [value (keyword value)] + (cond + (not (contains? ctl/justify-items-types value)) + (u/display-not-valid :justifyItems value) + + :else + (let [id (obj/get self "$id")] + (st/emit! (dwsl/update-layout #{id} {:layout-justify-items value}))))))} {:name "justifyContent" - :get #(-> % proxy->shape :layout-justify-content d/name) + :get #(-> % u/proxy->shape :layout-justify-content d/name) :set (fn [self value] - (let [id (obj/get self "$id") - value (keyword value)] - (when (contains? ctl/justify-content-types value) - (st/emit! (dwsl/update-layout #{id} {:layout-justify-content value})))))} + (let [value (keyword value)] + (cond + (not (contains? ctl/justify-content-types value)) + (u/display-not-valid :justifyContent value) + + :else + (let [id (obj/get self "$id")] + (st/emit! (dwsl/update-layout #{id} {:layout-justify-content value}))))))} {:name "rowGap" - :get #(-> % proxy->shape :layout-gap :row-gap) + :get #(-> % u/proxy->shape :layout-gap :row-gap (d/nilv 0)) :set (fn [self value] - (let [id (obj/get self "$id")] - (when (us/safe-int? value) + (cond + (not (us/safe-int? value)) + (u/display-not-valid :rowGap value) + + :else + (let [id (obj/get self "$id")] (st/emit! (dwsl/update-layout #{id} {:layout-gap {:row-gap value}})))))} {:name "columnGap" - :get #(-> % proxy->shape :layout-gap :column-gap) + :get #(-> % u/proxy->shape :layout-gap :column-gap (d/nilv 0)) :set (fn [self value] - (let [id (obj/get self "$id")] - (when (us/safe-int? value) + (cond + (not (us/safe-int? value)) + (u/display-not-valid :columnGap value) + + :else + (let [id (obj/get self "$id")] (st/emit! (dwsl/update-layout #{id} {:layout-gap {:column-gap value}})))))} {:name "verticalPadding" - :get #(-> % proxy->shape :layout-padding :p1) + :get #(-> % u/proxy->shape :layout-padding :p1 (d/nilv 0)) :set (fn [self value] - (let [id (obj/get self "$id")] - (when (us/safe-int? value) + (cond + (not (us/safe-int? value)) + (u/display-not-valid :verticalPadding value) + + :else + (let [id (obj/get self "$id")] (st/emit! (dwsl/update-layout #{id} {:layout-padding {:p1 value :p3 value}})))))} {:name "horizontalPadding" - :get #(-> % proxy->shape :layout-padding :p2) + :get #(-> % u/proxy->shape :layout-padding :p2 (d/nilv 0)) :set (fn [self value] - (let [id (obj/get self "$id")] - (when (us/safe-int? value) + (cond + (not (us/safe-int? value)) + (u/display-not-valid :horizontalPadding value) + + :else + (let [id (obj/get self "$id")] (st/emit! (dwsl/update-layout #{id} {:layout-padding {:p2 value :p4 value}})))))} {:name "topPadding" - :get #(-> % proxy->shape :layout-padding :p1) + :get #(-> % u/proxy->shape :layout-padding :p1 (d/nilv 0)) :set (fn [self value] - (let [id (obj/get self "$id")] - (when (us/safe-int? value) + (cond + (not (us/safe-int? value)) + (u/display-not-valid :topPadding value) + + :else + (let [id (obj/get self "$id")] (st/emit! (dwsl/update-layout #{id} {:layout-padding {:p1 value}})))))} {:name "rightPadding" - :get #(-> % proxy->shape :layout-padding :p2) + :get #(-> % u/proxy->shape :layout-padding :p2 (d/nilv 0)) :set (fn [self value] - (let [id (obj/get self "$id")] - (when (us/safe-int? value) + (cond + (not (us/safe-int? value)) + (u/display-not-valid :rightPadding value) + + :else + (let [id (obj/get self "$id")] (st/emit! (dwsl/update-layout #{id} {:layout-padding {:p2 value}})))))} {:name "bottomPadding" - :get #(-> % proxy->shape :layout-padding :p3) + :get #(-> % u/proxy->shape :layout-padding :p3 (d/nilv 0)) :set (fn [self value] - (let [id (obj/get self "$id")] - (when (us/safe-int? value) + (cond + (not (us/safe-int? value)) + (u/display-not-valid :bottomPadding value) + + :else + (let [id (obj/get self "$id")] (st/emit! (dwsl/update-layout #{id} {:layout-padding {:p3 value}})))))} {:name "leftPadding" - :get #(-> % proxy->shape :layout-padding :p4) + :get #(-> % u/proxy->shape :layout-padding :p4 (d/nilv 0)) :set (fn [self value] - (let [id (obj/get self "$id")] - (when (us/safe-int? value) + (cond + (not (us/safe-int? value)) + (u/display-not-valid :leftPadding value) + + :else + (let [id (obj/get self "$id")] (st/emit! (dwsl/update-layout #{id} {:layout-padding {:p4 value}})))))}))) (deftype GridCellProxy [$plugin $file $page $id]) @@ -208,8 +351,8 @@ (defn layout-cell-proxy [plugin-id file-id page-id id] (letfn [(locate-cell [_] - (let [shape (locate-shape file-id page-id id) - parent (locate-shape file-id page-id (:parent-id shape))] + (let [shape (u/locate-shape file-id page-id id) + parent (u/locate-shape file-id page-id (:parent-id shape))] (ctl/get-cell-by-shape-id parent id)))] (-> (GridCellProxy. plugin-id file-id page-id id) @@ -223,73 +366,129 @@ :get #(-> % locate-cell :row) :set (fn [self value] - (let [shape (proxy->shape self) - cell (locate-cell self)] - (when (us/safe-int? value) + (let [cell (locate-cell self) + shape (u/proxy->shape self)] + (cond + (not (us/safe-int? value)) + (u/display-not-valid :row value) + + (nil? cell) + (u/display-not-valid :cell "cell not found") + + :else (st/emit! (dwsl/update-grid-cell-position (:parent-id shape) (:id cell) {:row value})))))} {:name "rowSpan" :get #(-> % locate-cell :row-span) :set (fn [self value] - (let [shape (proxy->shape self) + (let [shape (u/proxy->shape self) cell (locate-cell self)] - (when (us/safe-int? value) + (cond + (not (us/safe-int? value)) + (u/display-not-valid :rowSpan-value value) + + (nil? cell) + (u/display-not-valid :rowSpan-cell "cell not found") + + :else (st/emit! (dwsl/update-grid-cell-position (:parent-id shape) (:id cell) {:row-span value})))))} {:name "column" :get #(-> % locate-cell :column) :set (fn [self value] - (let [shape (proxy->shape self) + (let [shape (u/proxy->shape self) cell (locate-cell self)] - (when (us/safe-int? value) + (cond + (not (us/safe-int? value)) + (u/display-not-valid :column-value value) + + (nil? cell) + (u/display-not-valid :column-cell "cell not found") + + :else (st/emit! (dwsl/update-grid-cell-position (:parent-id shape) (:id cell) {:column value})))))} {:name "columnSpan" :get #(-> % locate-cell :column-span) :set (fn [self value] - (let [shape (proxy->shape self) + (let [shape (u/proxy->shape self) cell (locate-cell self)] - (when (us/safe-int? value) + (cond + (not (us/safe-int? value)) + (u/display-not-valid :columnSpan-value value) + + (nil? cell) + (u/display-not-valid :columnSpan-cell "cell not found") + + :else (st/emit! (dwsl/update-grid-cell-position (:parent-id shape) (:id cell) {:column-span value})))))} {:name "areaName" :get #(-> % locate-cell :area-name) :set (fn [self value] - (let [shape (proxy->shape self) + (let [shape (u/proxy->shape self) cell (locate-cell self)] - (when (string? value) + (cond + (not (string? value)) + (u/display-not-valid :areaName-value value) + + (nil? cell) + (u/display-not-valid :areaName-cell "cell not found") + + :else (st/emit! (dwsl/update-grid-cells (:parent-id shape) #{(:id cell)} {:area-name value})))))} {:name "position" :get #(-> % locate-cell :position d/name) :set (fn [self value] - (let [shape (proxy->shape self) + (let [shape (u/proxy->shape self) cell (locate-cell self) value (keyword value)] - (when (contains? ctl/grid-position-types value) + (cond + (not (contains? ctl/grid-position-types value)) + (u/display-not-valid :position-value value) + + (nil? cell) + (u/display-not-valid :position-cell "cell not found") + + :else (st/emit! (dwsl/change-cells-mode (:parent-id shape) #{(:id cell)} value)))))} {:name "alignSelf" :get #(-> % locate-cell :align-self d/name) :set (fn [self value] - (let [shape (proxy->shape self) + (let [shape (u/proxy->shape self) value (keyword value) cell (locate-cell self)] - (when (contains? ctl/grid-cell-align-self-types value) + (cond + (not (contains? ctl/grid-cell-align-self-types value)) + (u/display-not-valid :alignSelf-value value) + + (nil? cell) + (u/display-not-valid :alignSelf-cell "cell not found") + + :else (st/emit! (dwsl/update-grid-cells (:parent-id shape) #{(:id cell)} {:align-self value})))))} {:name "justifySelf" :get #(-> % locate-cell :justify-self d/name) :set (fn [self value] - (let [shape (proxy->shape self) + (let [shape (u/proxy->shape self) value (keyword value) cell (locate-cell self)] - (when (contains? ctl/grid-cell-justify-self-types value) + (cond + (not (contains? ctl/grid-cell-justify-self-types value)) + (u/display-not-valid :justifySelf-value value) + + (nil? cell) + (u/display-not-valid :justifySelf-cell "cell not found") + + :else (st/emit! (dwsl/update-grid-cells (:parent-id shape) #{(:id cell)} {:justify-self value})))))})))) diff --git a/frontend/src/app/plugins/library.cljs b/frontend/src/app/plugins/library.cljs index 8107ca3750..de163e8b58 100644 --- a/frontend/src/app/plugins/library.cljs +++ b/frontend/src/app/plugins/library.cljs @@ -20,7 +20,7 @@ [app.main.data.workspace.libraries :as dwl] [app.main.data.workspace.texts :as dwt] [app.main.store :as st] - [app.plugins.shape :as shapes] + [app.plugins.shape :as shape] [app.plugins.utils :as u] [app.util.object :as obj])) @@ -157,63 +157,81 @@ :get #(-> % u/proxy->library-color :name) :set (fn [self value] - (if (and (some? value) (string? value)) + (cond + (not (string? value)) + (u/display-not-valid :library-color-name value) + + :else (let [color (u/proxy->library-color self) value (dm/str (d/nilv (:path color) "") " / " value)] - (st/emit! (dwl/rename-color file-id id value))) - (u/display-not-valid :library-color-name value)))} + (st/emit! (dwl/rename-color file-id id value)))))} {:name "path" :get #(-> % u/proxy->library-color :path) :set (fn [self value] - (if (and (some? value) (string? value)) + (cond + (not (string? value)) + (u/display-not-valid :library-color-path value) + + :else (let [color (-> (u/proxy->library-color self) (update :name #(str value " / " %)))] - (st/emit! (dwl/update-color color file-id))) - (u/display-not-valid :library-color-path value)))} + (st/emit! (dwl/update-color color file-id)))))} {:name "color" :get #(-> % u/proxy->library-color :color) :set (fn [self value] - (if (and (some? value) (string? value) (cc/valid-hex-color? value)) + (cond + (or (not (string? value)) (not (cc/valid-hex-color? value))) + (u/display-not-valid :library-color-color value) + + :else (let [color (-> (u/proxy->library-color self) (assoc :color value))] - (st/emit! (dwl/update-color color file-id))) - (u/display-not-valid :library-color-color value)))} + (st/emit! (dwl/update-color color file-id)))))} {:name "opacity" :get #(-> % u/proxy->library-color :opacity) :set (fn [self value] - (if (and (some? value) (number? value) (>= value 0) (<= value 1)) + (cond + (or (not (number? value)) (< value 0) (> value 1)) + (u/display-not-valid :library-color-opacity value) + + :else (let [color (-> (u/proxy->library-color self) (assoc :opacity value))] - (st/emit! (dwl/update-color color file-id))) - (u/display-not-valid :library-color-opacity value)))} + (st/emit! (dwl/update-color color file-id)))))} {:name "gradient" :get #(-> % u/proxy->library-color :gradient u/to-js) :set (fn [self value] (let [value (u/from-js value)] - (if (sm/fast-check! ::ctc/gradient value) + (cond + (not (sm/validate ::ctc/gradient value)) + (u/display-not-valid :library-color-gradient value) + + :else (let [color (-> (u/proxy->library-color self) (assoc :gradient value))] - (st/emit! (dwl/update-color color file-id))) - (u/display-not-valid :library-color-gradient value))))} + (st/emit! (dwl/update-color color file-id))))))} {:name "image" :get #(-> % u/proxy->library-color :image u/to-js) :set (fn [self value] (let [value (u/from-js value)] - (if (sm/fast-check! ::ctc/image-color value) + (cond + (not (sm/validate ::ctc/image-color value)) + (u/display-not-valid :library-color-image value) + + :else (let [color (-> (u/proxy->library-color self) (assoc :image value))] - (st/emit! (dwl/update-color color file-id))) - (u/display-not-valid :library-color-image value))))})) + (st/emit! (dwl/update-color color file-id))))))})) (deftype LibraryTypographyProxy [$plugin $file $id] Object @@ -231,21 +249,31 @@ (applyToText [_ shape] - (let [shape-id (obj/get shape "$id") - typography (u/locate-library-typography $file $id)] - (st/emit! (dwt/apply-typography #{shape-id} typography $file)))) + (cond + (not (shape/shape-proxy? shape)) + (u/display-not-valid :applyToText shape) + + :else + (let [shape-id (obj/get shape "$id") + typography (u/locate-library-typography $file $id)] + (st/emit! (dwt/apply-typography #{shape-id} typography $file))))) (applyToTextRange [self range] - (let [shape-id (obj/get range "$id") - start (obj/get range "start") - end (obj/get range "end") - typography (u/proxy->library-typography self) - attrs (-> typography - (assoc :typography-ref-file $file) - (assoc :typography-ref-id (:id typography)) - (dissoc :id :name))] - (st/emit! (dwt/update-text-range shape-id start end attrs)))) + (cond + (not (shape/text-range? range)) + (u/display-not-valid :applyToText range) + + :else + (let [shape-id (obj/get range "$id") + start (obj/get range "start") + end (obj/get range "end") + typography (u/proxy->library-typography self) + attrs (-> typography + (assoc :typography-ref-file $file) + (assoc :typography-ref-id (:id typography)) + (dissoc :id :name))] + (st/emit! (dwt/update-text-range shape-id start end attrs))))) ;; PLUGIN DATA (getPluginData @@ -322,6 +350,8 @@ (defn lib-typography-proxy? [p] (instance? LibraryTypographyProxy p)) +(set! shape/lib-typography-proxy? lib-typography-proxy?) + (defn lib-typography-proxy [plugin-id file-id id] (assert (uuid? file-id)) @@ -338,111 +368,144 @@ :get #(-> % u/proxy->library-typography :name) :set (fn [self value] - (if (and (some? value) (string? value)) + (cond + (not (string? value)) + (u/display-not-valid :library-typography-name value) + + :else (let [typo (u/proxy->library-typography self) value (dm/str (d/nilv (:path typo) "") " / " value)] - (st/emit! (dwl/rename-typography file-id id value))) - (u/display-not-valid :library-typography-name value)))} + (st/emit! (dwl/rename-typography file-id id value)))))} {:name "path" :get #(-> % u/proxy->library-typography :path) :set (fn [self value] - (if (and (some? value) (string? value)) + (cond + (not (string? value)) + (u/display-not-valid :library-typography-path value) + + :else (let [typo (-> (u/proxy->library-typography self) (update :name #(str value " / " %)))] - (st/emit! (dwl/update-typography typo file-id))) - (u/display-not-valid :library-typography-path value)))} + (st/emit! (dwl/update-typography typo file-id)))))} {:name "fontId" :get #(-> % u/proxy->library-typography :font-id) :set (fn [self value] - (if (and (some? value) (string? value)) + (cond + (not (string? value)) + (u/display-not-valid :library-typography-font-id value) + + :else (let [typo (-> (u/proxy->library-typography self) (assoc :font-id value))] - (st/emit! (dwl/update-typography typo file-id))) - (u/display-not-valid :library-typography-font-id value)))} + (st/emit! (dwl/update-typography typo file-id)))))} {:name "fontFamily" :get #(-> % u/proxy->library-typography :font-family) :set (fn [self value] - (if (and (some? value) (string? value)) + (cond + (not (string? value)) + (u/display-not-valid :library-typography-font-family value) + + :else (let [typo (-> (u/proxy->library-typography self) (assoc :font-family value))] - (st/emit! (dwl/update-typography typo file-id))) - (u/display-not-valid :library-typography-font-family value)))} + (st/emit! (dwl/update-typography typo file-id)))))} {:name "fontVariantId" :get #(-> % u/proxy->library-typography :font-variant-id) :set (fn [self value] - (if (and (some? value) (string? value)) + (cond + (not (string? value)) + (u/display-not-valid :library-typography-font-variant-id value) + + :else (let [typo (-> (u/proxy->library-typography self) (assoc :font-variant-id value))] - (st/emit! (dwl/update-typography typo file-id))) - (u/display-not-valid :library-typography-font-variant-id value)))} + (st/emit! (dwl/update-typography typo file-id)))))} {:name "fontSize" :get #(-> % u/proxy->library-typography :font-size) :set (fn [self value] - (if (and (some? value) (string? value)) + (cond + (not (string? value)) + (u/display-not-valid :library-typography-font-size value) + + :else (let [typo (-> (u/proxy->library-typography self) (assoc :font-size value))] - (st/emit! (dwl/update-typography typo file-id))) - (u/display-not-valid :library-typography-font-size value)))} + (st/emit! (dwl/update-typography typo file-id)))))} {:name "fontWeight" :get #(-> % u/proxy->library-typography :font-weight) :set (fn [self value] - (if (and (some? value) (string? value)) + (cond + (not (string? value)) + (u/display-not-valid :library-typography-font-weight value) + + :else (let [typo (-> (u/proxy->library-typography self) (assoc :font-weight value))] - (st/emit! (dwl/update-typography typo file-id))) - (u/display-not-valid :library-typography-font-weight value)))} + (st/emit! (dwl/update-typography typo file-id)))))} {:name "fontStyle" :get #(-> % u/proxy->library-typography :font-style) :set (fn [self value] - (if (and (some? value) (string? value)) + (cond + (not (string? value)) + (u/display-not-valid :library-typography-font-style value) + + :else (let [typo (-> (u/proxy->library-typography self) (assoc :font-style value))] - (st/emit! (dwl/update-typography typo file-id))) - (u/display-not-valid :library-typography-font-style value)))} + (st/emit! (dwl/update-typography typo file-id)))))} {:name "lineHeight" :get #(-> % u/proxy->library-typography :font-height) :set (fn [self value] - (if (and (some? value) (string? value)) + (cond + (not (string? value)) + (u/display-not-valid :library-typography-font-height value) + + :else (let [typo (-> (u/proxy->library-typography self) (assoc :font-height value))] - (st/emit! (dwl/update-typography typo file-id))) - (u/display-not-valid :library-typography-font-height value)))} + (st/emit! (dwl/update-typography typo file-id)))))} {:name "letterSpacing" :get #(-> % u/proxy->library-typography :letter-spacing) :set (fn [self value] - (if (and (some? value) (string? value)) + (cond + (not (string? value)) + (u/display-not-valid :library-typography-letter-spacing value) + + :else (let [typo (-> (u/proxy->library-typography self) (assoc :letter-spacing value))] - (st/emit! (dwl/update-typography typo file-id))) - (u/display-not-valid :library-typography-letter-spacing value)))} + (st/emit! (dwl/update-typography typo file-id)))))} {:name "textTransform" :get #(-> % u/proxy->library-typography :text-transform) :set (fn [self value] - (if (and (some? value) (string? value)) + (cond + (not (string? value)) + (u/display-not-valid :library-typography-text-transform value) + + :else (let [typo (-> (u/proxy->library-typography self) (assoc :text-transform value))] - (st/emit! (dwl/update-typography typo file-id))) - (u/display-not-valid :library-typography-text-transform value)))})) + (st/emit! (dwl/update-typography typo file-id)))))})) (deftype LibraryComponentProxy [$plugin $file $id] Object @@ -455,7 +518,7 @@ [_] (let [id-ref (atom nil)] (st/emit! (dwl/instantiate-component $file $id (gpt/point 0 0) {:id-ref id-ref})) - (shapes/shape-proxy $plugin @id-ref))) + (shape/shape-proxy $plugin @id-ref))) (getPluginData [self key] @@ -547,21 +610,27 @@ :get #(-> % u/proxy->library-component :name) :set (fn [self value] - (if (and (some? value) (string? value)) + (cond + (not (string? value)) + (u/display-not-valid :library-component-name value) + + :else (let [component (u/proxy->library-component self) value (dm/str (d/nilv (:path component) "") " / " value)] - (st/emit! (dwl/rename-component id value))) - (u/display-not-valid :library-component-name value)))} + (st/emit! (dwl/rename-component id value)))))} {:name "path" :get #(-> % u/proxy->library-component :path) :set (fn [self value] - (if (and (some? value) (string? value)) + (cond + (not (string? value)) + (u/display-not-valid :library-component-path value) + + :else (let [component (u/proxy->library-component self) value (dm/str value " / " (:name component))] - (st/emit! (dwl/rename-component id value))) - (u/display-not-valid :library-component-path value)))})) + (st/emit! (dwl/rename-component id value)))))})) (deftype Library [$plugin $id] Object diff --git a/frontend/src/app/plugins/page.cljs b/frontend/src/app/plugins/page.cljs index f63cfdd9dc..91da5bb0c9 100644 --- a/frontend/src/app/plugins/page.cljs +++ b/frontend/src/app/plugins/page.cljs @@ -21,8 +21,13 @@ Object (getShapeById [_ shape-id] - (let [shape-id (uuid/uuid shape-id)] - (shape/shape-proxy $plugin $file $id shape-id))) + (cond + (not (string? shape-id)) + (u/display-not-valid :getShapeById shape-id) + + :else + (let [shape-id (uuid/uuid shape-id)] + (shape/shape-proxy $plugin $file $id shape-id)))) (getRoot [_] @@ -125,9 +130,12 @@ :get #(-> % u/proxy->page :name) :set (fn [_ value] - (if (string? value) - (st/emit! (dw/rename-page id value)) - (u/display-not-valid :page-name value)))} + (cond + (not (string? value)) + (u/display-not-valid :page-name value) + + :else + (st/emit! (dw/rename-page id value))))} {:name "root" :enumerable false @@ -138,6 +146,9 @@ :get #(or (-> % u/proxy->page :options :background) cc/canvas) :set (fn [_ value] - (if (and (some? value) (string? value) (cc/valid-hex-color? value)) - (st/emit! (dw/change-canvas-color id {:color value})) - (u/display-not-valid :page-background-color value)))})) + (cond + (or (not (string? value)) (not (cc/valid-hex-color? value))) + (u/display-not-valid :page-background-color value) + + :else + (st/emit! (dw/change-canvas-color id {:color value}))))})) diff --git a/frontend/src/app/plugins/public_utils.cljs b/frontend/src/app/plugins/public_utils.cljs index 6ebe311516..4ea08fa57a 100644 --- a/frontend/src/app/plugins/public_utils.cljs +++ b/frontend/src/app/plugins/public_utils.cljs @@ -9,11 +9,17 @@ (:require [app.common.geom.rect :as grc] [app.common.geom.shapes :as gsh] + [app.plugins.shape :as shape] [app.plugins.utils :as u])) (defn ^:export centerShapes [shapes] - (let [shapes (->> shapes (map u/proxy->shape))] - (-> (gsh/shapes->rect shapes) - (grc/rect->center) - (u/to-js)))) + (cond + (not (every? shape/shape-proxy? shapes)) + (u/display-not-valid :centerShapes shapes) + + :else + (let [shapes (->> shapes (map u/proxy->shape))] + (-> (gsh/shapes->rect shapes) + (grc/rect->center) + (u/to-js))))) diff --git a/frontend/src/app/plugins/shape.cljs b/frontend/src/app/plugins/shape.cljs index 5fcf8ce289..44cc2af730 100644 --- a/frontend/src/app/plugins/shape.cljs +++ b/frontend/src/app/plugins/shape.cljs @@ -14,12 +14,18 @@ [app.common.geom.rect :as grc] [app.common.geom.shapes :as gsh] [app.common.record :as crc] + [app.common.schema :as sm] [app.common.spec :as us] [app.common.svg.path.legacy-parser2 :as spp] [app.common.text :as txt] + [app.common.types.grid :as ctg] [app.common.types.shape :as cts] + [app.common.types.shape.blur :as ctsb] + [app.common.types.shape.export :as ctse] [app.common.types.shape.layout :as ctl] + [app.common.types.shape.path :as ctsp] [app.common.types.shape.radius :as ctsr] + [app.common.types.shape.shadow :as ctss] [app.common.uuid :as uuid] [app.main.data.workspace :as dw] [app.main.data.workspace.groups :as dwg] @@ -36,6 +42,7 @@ [app.util.text-editor :as ted] [cuerdas.core :as str])) +(def lib-typography-proxy? nil) (deftype TextRange [$plugin $file $page $id start end] Object @@ -52,7 +59,10 @@ (let [s (set values)] (if (= (count s) 1) (first s) "mixed"))) -;; TODO Validate inputs +(defn text-range? + [range] + (instance? TextRange range)) + (defn text-range [plugin-id file-id page-id id start end] (-> (TextRange. plugin-id file-id page-id id start end) @@ -77,7 +87,12 @@ :set (fn [_ value] - (st/emit! (dwt/update-text-range id start end {:font-id value})))} + (cond + (not (string? value)) + (u/display-not-valid :fontId value) + + :else + (st/emit! (dwt/update-text-range id start end {:font-id value}))))} {:name "fontFamily" :get #(let [range-data @@ -86,7 +101,12 @@ :set (fn [_ value] - (st/emit! (dwt/update-text-range id start end {:font-family value})))} + (cond + (not (string? value)) + (u/display-not-valid :fontFamily value) + + :else + (st/emit! (dwt/update-text-range id start end {:font-family value}))))} {:name "fontVariantId" :get #(let [range-data @@ -94,7 +114,12 @@ (->> range-data (map :font-variant-id) mixed-value)) :set (fn [_ value] - (st/emit! (dwt/update-text-range id start end {:font-variant-id value})))} + (cond + (not (string? value)) + (u/display-not-valid :fontVariantId value) + + :else + (st/emit! (dwt/update-text-range id start end {:font-variant-id value}))))} {:name "fontSize" :get #(let [range-data @@ -102,7 +127,12 @@ (->> range-data (map :font-size) mixed-value)) :set (fn [_ value] - (st/emit! (dwt/update-text-range id start end {:font-size value})))} + (cond + (not (string? value)) + (u/display-not-valid :fontSize value) + + :else + (st/emit! (dwt/update-text-range id start end {:font-size value}))))} {:name "fontWeight" :get #(let [range-data @@ -110,7 +140,12 @@ (->> range-data (map :font-weight) mixed-value)) :set (fn [_ value] - (st/emit! (dwt/update-text-range id start end {:font-weight value})))} + (cond + (not (string? value)) + (u/display-not-valid :fontWeight value) + + :else + (st/emit! (dwt/update-text-range id start end {:font-weight value}))))} {:name "fontStyle" :get #(let [range-data @@ -118,7 +153,12 @@ (->> range-data (map :font-style) mixed-value)) :set (fn [_ value] - (st/emit! (dwt/update-text-range id start end {:font-style value})))} + (cond + (not (string? value)) + (u/display-not-valid :fontStyle value) + + :else + (st/emit! (dwt/update-text-range id start end {:font-style value}))))} {:name "lineHeight" :get #(let [range-data @@ -126,7 +166,12 @@ (->> range-data (map :line-height) mixed-value)) :set (fn [_ value] - (st/emit! (dwt/update-text-range id start end {:line-height value})))} + (cond + (not (string? value)) + (u/display-not-valid :lineHeight value) + + :else + (st/emit! (dwt/update-text-range id start end {:line-height value}))))} {:name "letterSpacing" :get #(let [range-data @@ -134,7 +179,12 @@ (->> range-data (map :letter-spacing) mixed-value)) :set (fn [_ value] - (st/emit! (dwt/update-text-range id start end {:letter-spacing value})))} + (cond + (not (string? value)) + (u/display-not-valid :letterSpacing value) + + :else + (st/emit! (dwt/update-text-range id start end {:letter-spacing value}))))} {:name "textTransform" :get #(let [range-data @@ -142,7 +192,12 @@ (->> range-data (map :text-transform) mixed-value)) :set (fn [_ value] - (st/emit! (dwt/update-text-range id start end {:text-transform value})))} + (cond + (not (string? value)) + (u/display-not-valid :textTransform value) + + :else + (st/emit! (dwt/update-text-range id start end {:text-transform value}))))} {:name "textDecoration" :get #(let [range-data @@ -150,7 +205,12 @@ (->> range-data (map :text-decoration) mixed-value)) :set (fn [_ value] - (st/emit! (dwt/update-text-range id start end {:text-decoration value})))} + (cond + (not (string? value)) + (u/display-not-valid :textDecoration value) + + :else + (st/emit! (dwt/update-text-range id start end {:text-decoration value}))))} {:name "direction" :get #(let [range-data @@ -158,7 +218,12 @@ (->> range-data (map :direction) mixed-value)) :set (fn [_ value] - (st/emit! (dwt/update-text-range id start end {:direction value})))} + (cond + (not (string? value)) + (u/display-not-valid :direction value) + + :else + (st/emit! (dwt/update-text-range id start end {:direction value}))))} {:name "fills" :get #(let [range-data @@ -167,7 +232,12 @@ :set (fn [_ value] (let [value (mapv #(u/from-js %) value)] - (st/emit! (dwt/update-text-range id start end {:fills value}))))}))) + (cond + (not (sm/validate [:vector ::cts/fill] value)) + (u/display-not-valid :fills value) + + :else + (st/emit! (dwt/update-text-range id start end {:fills value})))))}))) (declare shape-proxy) @@ -199,8 +269,16 @@ Object (resize [_ width height] - (st/emit! (dw/update-dimensions [$id] :width width) - (dw/update-dimensions [$id] :height height))) + (cond + (or (not (us/safe-number? width)) (<= width 0)) + (u/display-not-valid :resize width) + + (or (not (us/safe-number? height)) (<= height 0)) + (u/display-not-valid :resize height) + + :else + (st/emit! (dw/update-dimensions [$id] :width width) + (dw/update-dimensions [$id] :height height)))) (rotate [self angle center] @@ -363,17 +441,32 @@ (getRange [_ start end] (let [shape (u/locate-shape $file $page $id)] - (if (cfh/text-shape? shape) - (text-range $plugin $file $page $id start end) - (u/display-not-valid :makeMask (:type shape))))) + (cond + (not (cfh/text-shape? shape)) + (u/display-not-valid :getRange-shape "shape is not text") + + (or (not (us/safe-int? start)) (< start 0) (> start end)) + (u/display-not-valid :getRange-start start) + + (not (us/safe-int? end)) + (u/display-not-valid :getRange-end end) + + :else + (text-range $plugin $file $page $id start end)))) (applyTypography [_ typography] (let [shape (u/locate-shape $file $page $id)] - (if (cfh/text-shape? shape) + (cond + (not (lib-typography-proxy? typography)) + (u/display-not-valid :applyTypography-typography typography) + + (not (cfh/text-shape? shape)) + (u/display-not-valid :applyTypography-shape (:type shape)) + + :else (let [typography (u/proxy->library-typography typography)] - (st/emit! (dwt/apply-typography #{$id} typography $file))) - (u/display-not-valid :applyTypography (:type shape)))))) + (st/emit! (dwt/apply-typography #{$id} typography $file))))))) (crc/define-properties! ShapeProxy @@ -383,6 +476,10 @@ (defn shape-proxy? [p] (instance? ShapeProxy p)) +;; Prevent circular dependency +(do (set! flex/shape-proxy? shape-proxy?) + (set! grid/shape-proxy? shape-proxy?)) + (defn shape-proxy ([plugin-id id] (shape-proxy plugin-id (:current-file-id @st/state) (:current-page-id @st/state) id)) @@ -411,155 +508,251 @@ {:name "name" :get #(-> % u/proxy->shape :name) - :set (fn [self value] - (let [id (obj/get self "$id") - value (when (string? value) (-> value str/trim cfh/clean-path)) - valid? (and (some? value) - (not (str/ends-with? value "/")) - (not (str/blank? value)))] - (if valid? - (st/emit! (dwsh/update-shapes [id] #(assoc % :name value))) - (u/display-not-valid :shape-name value))))} + :set + (fn [self value] + (let [id (obj/get self "$id") + value (when (string? value) (-> value str/trim cfh/clean-path)) + valid? (and (some? value) + (not (str/ends-with? value "/")) + (not (str/blank? value)))] + (cond + (not valid?) + (u/display-not-valid :shape-name value) + + :else + (st/emit! (dwsh/update-shapes [id] #(assoc % :name value))))))} {:name "blocked" :get #(-> % u/proxy->shape :blocked boolean) - :set (fn [self value] - (let [id (obj/get self "$id")] - (st/emit! (dwsh/update-shapes [id] #(assoc % :blocked value)))))} + :set + (fn [self value] + (cond + (not (boolean? value)) + (u/display-not-valid :blocked value) + + :else + (let [id (obj/get self "$id")] + (st/emit! (dwsh/update-shapes [id] #(assoc % :blocked value))))))} {:name "hidden" :get #(-> % u/proxy->shape :hidden boolean) - :set (fn [self value] - (let [id (obj/get self "$id")] - (st/emit! (dwsh/update-shapes [id] #(assoc % :hidden value)))))} + :set + (fn [self value] + (cond + (not (boolean? value)) + (u/display-not-valid :hidden value) + + :else + (let [id (obj/get self "$id")] + (st/emit! (dwsh/update-shapes [id] #(assoc % :hidden value))))))} {:name "proportionLock" :get #(-> % u/proxy->shape :proportion-lock boolean) - :set (fn [self value] - (let [id (obj/get self "$id")] - (st/emit! (dwsh/update-shapes [id] #(assoc % :proportion-lock value)))))} + :set + (fn [self value] + (cond + (not (boolean? value)) + (u/display-not-valid :proportionLock value) + + :else + (let [id (obj/get self "$id")] + (st/emit! (dwsh/update-shapes [id] #(assoc % :proportion-lock value))))))} {:name "constraintsHorizontal" :get #(-> % u/proxy->shape :constraints-h d/name) - :set (fn [self value] - (let [id (obj/get self "$id") - value (keyword value)] - (when (contains? cts/horizontal-constraint-types value) - (st/emit! (dwsh/update-shapes [id] #(assoc % :constraints-h value))))))} + :set + (fn [self value] + (let [id (obj/get self "$id") + value (keyword value)] + (cond + (not (contains? cts/horizontal-constraint-types value)) + (u/display-not-valid :constraintsHorizontal value) + + :else + (st/emit! (dwsh/update-shapes [id] #(assoc % :constraints-h value))))))} {:name "constraintsVertical" :get #(-> % u/proxy->shape :constraints-v d/name) - :set (fn [self value] - (let [id (obj/get self "$id") - value (keyword value)] - (when (contains? cts/vertical-constraint-types value) - (st/emit! (dwsh/update-shapes [id] #(assoc % :constraints-v value))))))} + :set + (fn [self value] + (let [id (obj/get self "$id") + value (keyword value)] + (cond + (not (contains? cts/vertical-constraint-types value)) + (u/display-not-valid :constraintsVertical value) + + :else + (st/emit! (dwsh/update-shapes [id] #(assoc % :constraints-v value))))))} {:name "borderRadius" :get #(-> % u/proxy->shape :rx) - :set (fn [self value] - (let [id (obj/get self "$id") - shape (u/proxy->shape self)] - (when (us/safe-int? value) - (when (or (not (ctsr/has-radius? shape)) (ctsr/radius-4? shape)) - (st/emit! (dwsh/update-shapes [id] ctsr/switch-to-radius-1))) - (st/emit! (dwsh/update-shapes [id] #(ctsr/set-radius-1 % value))))))} + :set + (fn [self value] + (let [id (obj/get self "$id") + shape (u/proxy->shape self)] + (cond + (or (not (us/safe-int? value)) (< value 0)) + (u/display-not-valid :borderRadius value) + + (or (not (ctsr/has-radius? shape)) (ctsr/radius-4? shape)) + (st/emit! (dwsh/update-shapes [id] #(-> % + ctsr/switch-to-radius-1 + (ctsr/set-radius-1 value)))) + + :else + (st/emit! (dwsh/update-shapes [id] #(ctsr/set-radius-1 % value))))))} {:name "borderRadiusTopLeft" :get #(-> % u/proxy->shape :r1) - :set (fn [self value] - (let [id (obj/get self "$id") - shape (u/proxy->shape self)] - (when (us/safe-int? value) - (when (or (not (ctsr/has-radius? shape)) (not (ctsr/radius-4? shape))) - (st/emit! (dwsh/update-shapes [id] ctsr/switch-to-radius-4))) - (st/emit! (dwsh/update-shapes [id] #(ctsr/set-radius-4 % :r1 value))))))} + :set + (fn [self value] + (let [id (obj/get self "$id") + shape (u/proxy->shape self)] + (cond + (not (us/safe-int? value)) + (u/display-not-valid :borderRadiusTopLeft value) + + (or (not (ctsr/has-radius? shape)) (not (ctsr/radius-4? shape))) + (st/emit! (dwsh/update-shapes [id] #(-> % + (ctsr/switch-to-radius-4) + (ctsr/set-radius-4 :r1 value)))) + + :else + (st/emit! (dwsh/update-shapes [id] #(ctsr/set-radius-4 % :r1 value))))))} {:name "borderRadiusTopRight" :get #(-> % u/proxy->shape :r2) - :set (fn [self value] - (let [id (obj/get self "$id") - shape (u/proxy->shape self)] - (when (us/safe-int? value) - (when (or (not (ctsr/has-radius? shape)) (not (ctsr/radius-4? shape))) - (st/emit! (dwsh/update-shapes [id] ctsr/switch-to-radius-4))) - (st/emit! (dwsh/update-shapes [id] #(ctsr/set-radius-4 % :r2 value))))))} + :set + (fn [self value] + (let [id (obj/get self "$id") + shape (u/proxy->shape self)] + (cond + (not (us/safe-int? value)) + (u/display-not-valid :borderRadiusTopRight value) + + (or (not (ctsr/has-radius? shape)) (not (ctsr/radius-4? shape))) + (st/emit! (dwsh/update-shapes [id] #(-> % + (ctsr/switch-to-radius-4) + (ctsr/set-radius-4 :r2 value)))) + + :else + (st/emit! (dwsh/update-shapes [id] #(ctsr/set-radius-4 % :r2 value))))))} {:name "borderRadiusBottomRight" :get #(-> % u/proxy->shape :r3) - :set (fn [self value] - (let [id (obj/get self "$id") - shape (u/proxy->shape self)] - (when (us/safe-int? value) - (when (or (not (ctsr/has-radius? shape)) (not (ctsr/radius-4? shape))) - (st/emit! (dwsh/update-shapes [id] ctsr/switch-to-radius-4))) - (st/emit! (dwsh/update-shapes [id] #(ctsr/set-radius-4 % :r3 value))))))} + :set + (fn [self value] + (let [id (obj/get self "$id") + shape (u/proxy->shape self)] + (cond + (not (us/safe-int? value)) + (u/display-not-valid :borderRadiusBottomRight value) + + (or (not (ctsr/has-radius? shape)) (not (ctsr/radius-4? shape))) + (st/emit! (dwsh/update-shapes [id] #(-> % + (ctsr/switch-to-radius-4) + (ctsr/set-radius-4 :r3 value)))) + + :else + (st/emit! (dwsh/update-shapes [id] #(ctsr/set-radius-4 % :r3 value))))))} {:name "borderRadiusBottomLeft" :get #(-> % u/proxy->shape :r4) - :set (fn [self value] - (let [id (obj/get self "$id") - shape (u/proxy->shape self)] - (when (us/safe-int? value) - (when (or (not (ctsr/has-radius? shape)) (not (ctsr/radius-4? shape))) - (st/emit! (dwsh/update-shapes [id] ctsr/switch-to-radius-4))) - (st/emit! (dwsh/update-shapes [id] #(ctsr/set-radius-4 % :r4 value))))))} + :set + (fn [self value] + (let [id (obj/get self "$id") + shape (u/proxy->shape self)] + (cond + (not (us/safe-int? value)) + (u/display-not-valid :borderRadiusBottomLeft value) + + (or (not (ctsr/has-radius? shape)) (not (ctsr/radius-4? shape))) + (st/emit! (dwsh/update-shapes [id] #(-> % + (ctsr/switch-to-radius-4) + (ctsr/set-radius-4 :r4 value)))) + + :else + (st/emit! (dwsh/update-shapes [id] #(ctsr/set-radius-4 % :r4 value))))))} {:name "opacity" :get #(-> % u/proxy->shape :opacity) - :set (fn [self value] - (let [id (obj/get self "$id")] - (when (and (us/safe-number? value) (>= value 0) (<= value 1)) - (st/emit! (dwsh/update-shapes [id] #(assoc % :opacity value))))))} + :set + (fn [self value] + (let [id (obj/get self "$id")] + (when (and (us/safe-number? value) (>= value 0) (<= value 1)) + (st/emit! (dwsh/update-shapes [id] #(assoc % :opacity value))))))} {:name "blendMode" :get #(-> % u/proxy->shape :blend-mode (d/nilv :normal) d/name) - :set (fn [self value] - (let [id (obj/get self "$id") - value (keyword value)] - (when (contains? cts/blend-modes value) - (st/emit! (dwsh/update-shapes [id] #(assoc % :blend-mode value))))))} + :set + (fn [self value] + (let [id (obj/get self "$id") + value (keyword value)] + (cond + (not (contains? cts/blend-modes value)) + (u/display-not-valid :blendMode value) + + :else + (st/emit! (dwsh/update-shapes [id] #(assoc % :blend-mode value))))))} {:name "shadows" :get #(-> % u/proxy->shape :shadow u/array-to-js) - :set (fn [self value] - (let [id (obj/get self "$id") - value (mapv (fn [val] - ;; Merge default shadow properties - (d/patch-object - {:id (uuid/next) - :style :drop-shadow - :color {:color clr/black :opacity 0.2} - :offset-x 4 - :offset-y 4 - :blur 4 - :spread 0 - :hidden false} - (u/from-js val #{:style :type}))) - value)] - (st/emit! (dwsh/update-shapes [id] #(assoc % :shadow value)))))} + :set + (fn [self value] + (let [id (obj/get self "$id") + value (mapv (fn [val] + ;; Merge default shadow properties + (d/patch-object + {:id (uuid/next) + :style :drop-shadow + :color {:color clr/black :opacity 0.2} + :offset-x 4 + :offset-y 4 + :blur 4 + :spread 0 + :hidden false} + (u/from-js val #{:style :type}))) + value)] + (cond + (not (sm/validate [:vector ::ctss/shadow] value)) + (u/display-not-valid :shadows value) + + :else + (st/emit! (dwsh/update-shapes [id] #(assoc % :shadow value))))))} {:name "blur" :get #(-> % u/proxy->shape :blur u/to-js) - :set (fn [self value] - (if (nil? value) - (st/emit! (dwsh/update-shapes [id] #(dissoc % :blur))) - (let [id (obj/get self "$id") - value - (d/patch-object - {:id (uuid/next) - :type :layer-blur - :value 4 - :hidden false} - (u/from-js value))] - (st/emit! (dwsh/update-shapes [id] #(assoc % :blur value))))))} + :set + (fn [self value] + (if (nil? value) + (st/emit! (dwsh/update-shapes [id] #(dissoc % :blur))) + (let [id (obj/get self "$id") + value + (d/patch-object + {:id (uuid/next) + :type :layer-blur + :value 4 + :hidden false} + (u/from-js value))] + (cond + (not (sm/validate ::ctsb/blur value)) + (u/display-not-valid :blur value) + + :else + (st/emit! (dwsh/update-shapes [id] #(assoc % :blur value)))))))} {:name "exports" :get #(-> % u/proxy->shape :exports u/array-to-js) - :set (fn [self value] - (let [id (obj/get self "$id") - value (mapv #(u/from-js %) value)] - (st/emit! (dwsh/update-shapes [id] #(assoc % :exports value)))))} + :set + (fn [self value] + (let [id (obj/get self "$id") + value (mapv #(u/from-js %) value)] + (cond + (not (sm/validate [:vector ::ctse/export] value)) + (u/display-not-valid :exports value) + + :else + (st/emit! (dwsh/update-shapes [id] #(assoc % :exports value))))))} ;; Geometry properties {:name "x" @@ -567,14 +760,24 @@ :set (fn [self value] (let [id (obj/get self "$id")] - (st/emit! (dw/update-position id {:x value}))))} + (cond + (not (us/safe-number? value)) + (u/display-not-valid :x value) + + :else + (st/emit! (dw/update-position id {:x value})))))} {:name "y" :get #(-> % u/proxy->shape :y) :set (fn [self value] (let [id (obj/get self "$id")] - (st/emit! (dw/update-position id {:y value}))))} + (cond + (not (us/safe-number? value)) + (u/display-not-valid :y value) + + :else + (st/emit! (dw/update-position id {:y value})))))} {:name "parentX" :get (fn [self] @@ -584,11 +787,16 @@ (- (:x shape) (:x parent)))) :set (fn [self value] - (let [id (obj/get self "$id") - parent-id (-> self u/proxy->shape :parent-id) - parent (u/locate-shape (obj/get self "$file") (obj/get self "$page") parent-id) - parent-x (:x parent)] - (st/emit! (dw/update-position id {:x (+ parent-x value)}))))} + (cond + (not (us/safe-number? value)) + (u/display-not-valid :parentX value) + + :else + (let [id (obj/get self "$id") + parent-id (-> self u/proxy->shape :parent-id) + parent (u/locate-shape (obj/get self "$file") (obj/get self "$page") parent-id) + parent-x (:x parent)] + (st/emit! (dw/update-position id {:x (+ parent-x value)})))))} {:name "parentY" :get (fn [self] @@ -599,11 +807,16 @@ (- (:y shape) parent-y))) :set (fn [self value] - (let [id (obj/get self "$id") - parent-id (-> self u/proxy->shape :parent-id) - parent (u/locate-shape (obj/get self "$file") (obj/get self "$page") parent-id) - parent-y (:y parent)] - (st/emit! (dw/update-position id {:y (+ parent-y value)}))))} + (cond + (not (us/safe-number? value)) + (u/display-not-valid :parentY value) + + :else + (let [id (obj/get self "$id") + parent-id (-> self u/proxy->shape :parent-id) + parent (u/locate-shape (obj/get self "$file") (obj/get self "$page") parent-id) + parent-y (:y parent)] + (st/emit! (dw/update-position id {:y (+ parent-y value)})))))} {:name "frameX" :get (fn [self] @@ -614,11 +827,16 @@ (- (:x shape) frame-x))) :set (fn [self value] - (let [id (obj/get self "$id") - frame-id (-> self u/proxy->shape :frame-id) - frame (u/locate-shape (obj/get self "$file") (obj/get self "$page") frame-id) - frame-x (:x frame)] - (st/emit! (dw/update-position id {:x (+ frame-x value)}))))} + (cond + (not (us/safe-number? value)) + (u/display-not-valid :frameX value) + + :else + (let [id (obj/get self "$id") + frame-id (-> self u/proxy->shape :frame-id) + frame (u/locate-shape (obj/get self "$file") (obj/get self "$page") frame-id) + frame-x (:x frame)] + (st/emit! (dw/update-position id {:x (+ frame-x value)})))))} {:name "frameY" :get (fn [self] @@ -629,11 +847,16 @@ (- (:y shape) frame-y))) :set (fn [self value] - (let [id (obj/get self "$id") - frame-id (-> self u/proxy->shape :frame-id) - frame (u/locate-shape (obj/get self "$file") (obj/get self "$page") frame-id) - frame-y (:y frame)] - (st/emit! (dw/update-position id {:y (+ frame-y value)}))))} + (cond + (not (us/safe-number? value)) + (u/display-not-valid :frameY value) + + :else + (let [id (obj/get self "$id") + frame-id (-> self u/proxy->shape :frame-id) + frame (u/locate-shape (obj/get self "$file") (obj/get self "$page") frame-id) + frame-y (:y frame)] + (st/emit! (dw/update-position id {:y (+ frame-y value)})))))} {:name "width" :get #(-> % u/proxy->shape :width)} @@ -645,49 +868,70 @@ :get #(-> % u/proxy->shape :rotation) :set (fn [self value] - (if (number? value) + (cond + (not (number? value)) + (u/display-not-valid :rotation value) + + :else (let [shape (u/proxy->shape self)] - (st/emit! (dw/increase-rotation #{(:id shape)} value))) - (u/display-not-valid :rotation value)))} + (st/emit! (dw/increase-rotation #{(:id shape)} value)))))} {:name "flipX" :get #(-> % u/proxy->shape :flip-x boolean) :set (fn [self value] - (if (boolean? value) + (cond + (not (boolean? value)) + (u/display-not-valid :flipX value) + + :else (let [id (obj/get self "$id")] - (st/emit! (dw/flip-horizontal-selected #{id}))) - (u/display-not-valid :flipX value)))} + (st/emit! (dw/flip-horizontal-selected #{id})))))} {:name "flipY" :get #(-> % u/proxy->shape :flip-y boolean) :set (fn [self value] - (if (boolean? value) + (cond + (not (boolean? value)) + (u/display-not-valid :flipY value) + + :else (let [id (obj/get self "$id")] - (st/emit! (dw/flip-vertical-selected #{id}))) - (u/display-not-valid :flipY value)))} + (st/emit! (dw/flip-vertical-selected #{id})))))} ;; Strokes and fills - ;; TODO: Validate fills input {:name "fills" :get #(if (cfh/text-shape? data) (-> % u/proxy->shape text-props :fills u/array-to-js) (-> % u/proxy->shape :fills u/array-to-js)) - :set (fn [self value] - (let [shape (u/proxy->shape self) - id (:id shape) - value (mapv #(u/from-js %) value)] - (if (cfh/text-shape? shape) - (st/emit! (dwt/update-attrs id {:fills value})) - (st/emit! (dwsh/update-shapes [id] #(assoc % :fills value))))))} + :set + (fn [self value] + (let [shape (u/proxy->shape self) + id (:id shape) + value (mapv #(u/from-js %) value)] + (cond + (not (sm/validate [:vector ::cts/fill] value)) + (u/display-not-valid :fills value) + + (cfh/text-shape? shape) + (st/emit! (dwt/update-attrs id {:fills value})) + + :else + (st/emit! (dwsh/update-shapes [id] #(assoc % :fills value))))))} {:name "strokes" :get #(-> % u/proxy->shape :strokes u/array-to-js) - :set (fn [self value] - (let [id (obj/get self "$id") - value (mapv #(u/from-js % #{:stroke-style :stroke-alignment}) value)] - (st/emit! (dwsh/update-shapes [id] #(assoc % :strokes value)))))} + :set + (fn [self value] + (let [id (obj/get self "$id") + value (mapv #(u/from-js % #{:stroke-style :stroke-alignment}) value)] + (cond + (not (sm/validate [:vector ::cts/stroke] value)) + (u/display-not-valid :strokes value) + + :else + (st/emit! (dwsh/update-shapes [id] #(assoc % :strokes value))))))} {:name "layoutChild" :get @@ -742,7 +986,12 @@ :set (fn [self value] (let [id (obj/get self "$id") value (mapv #(u/from-js %) value)] - (st/emit! (dwsh/update-shapes [id] #(assoc % :grids value)))))} + (cond + (not (sm/validate [:vector ::ctg/grid] value)) + (u/display-not-valid :guides value) + + :else + (st/emit! (dwsh/update-shapes [id] #(assoc % :grids value))))))} {:name "horizontalSizing" :get #(-> % u/proxy->shape :layout-item-h-sizing (d/nilv :fix) d/name) @@ -750,7 +999,11 @@ (fn [self value] (let [id (obj/get self "$id") value (keyword value)] - (when (contains? #{:fix :auto} value) + (cond + (not (contains? #{:fix :auto} value)) + (u/display-not-valid :horizontalSizing value) + + :else (st/emit! (dwsl/update-layout #{id} {:layout-item-h-sizing value})))))} {:name "verticalSizing" @@ -759,7 +1012,11 @@ (fn [self value] (let [id (obj/get self "$id") value (keyword value)] - (when (contains? #{:fix :auto} value) + (cond + (not (contains? #{:fix :auto} value)) + (u/display-not-valid :verticalSizing value) + + :else (st/emit! (dwsl/update-layout #{id} {:layout-item-v-sizing value})))))}))) (cond-> (cfh/text-shape? data) @@ -771,7 +1028,11 @@ (let [id (obj/get self "$id")] ;; The user is currently editing the text. We need to update the ;; editor as well - (when (contains? (:workspace-editor-state @st/state) id) + (cond + (or (not (string? value)) (empty? value)) + (u/display-not-valid :characters value) + + (contains? (:workspace-editor-state @st/state) id) (let [shape (u/proxy->shape self) editor (-> shape @@ -779,8 +1040,10 @@ :content ted/import-content ted/create-editor-state)] - (st/emit! (dwt/update-editor-state shape editor)))) - (st/emit! (dwsh/update-shapes [id] #(txt/change-text % value)))))} + (st/emit! (dwt/update-editor-state shape editor))) + + :else + (st/emit! (dwsh/update-shapes [id] #(txt/change-text % value))))))} {:name "growType" :get #(-> % u/proxy->shape :grow-type d/name) @@ -788,7 +1051,11 @@ (fn [self value] (let [id (obj/get self "$id") value (keyword value)] - (when (contains? #{:auto-width :auto-height :fixed} value) + (cond + (not (contains? #{:auto-width :auto-height :fixed} value)) + (u/display-not-valid :growType value) + + :else (st/emit! (dwsh/update-shapes [id] #(assoc % :grow-type value))))))} {:name "fontId" @@ -796,63 +1063,108 @@ :set (fn [self value] (let [id (obj/get self "$id")] - (st/emit! (dwt/update-attrs id {:font-id value}))))} + (cond + (not (string? value)) + (u/display-not-valid :fontId value) + + :else + (st/emit! (dwt/update-attrs id {:font-id value})))))} {:name "fontFamily" :get #(-> % u/proxy->shape text-props :font-family) :set (fn [self value] (let [id (obj/get self "$id")] - (st/emit! (dwt/update-attrs id {:font-id value}))))} + (cond + (not (string? value)) + (u/display-not-valid :fontFamily value) + + :else + (st/emit! (dwt/update-attrs id {:font-family value})))))} {:name "fontVariantId" :get #(-> % u/proxy->shape text-props :font-variant-id) :set (fn [self value] (let [id (obj/get self "$id")] - (st/emit! (dwt/update-attrs id {:font-id value}))))} + (cond + (not (string? value)) + (u/display-not-valid :fontVariantId value) + + :else + (st/emit! (dwt/update-attrs id {:font-variant-id value})))))} {:name "fontSize" :get #(-> % u/proxy->shape text-props :font-size) :set (fn [self value] (let [id (obj/get self "$id")] - (st/emit! (dwt/update-attrs id {:font-size value}))))} + (cond + (not (string? value)) + (u/display-not-valid :fontSize value) + + :else + (st/emit! (dwt/update-attrs id {:font-size value})))))} {:name "fontWeight" :get #(-> % u/proxy->shape text-props :font-weight) :set (fn [self value] (let [id (obj/get self "$id")] - (st/emit! (dwt/update-attrs id {:font-id value}))))} + (cond + (not (string? value)) + (u/display-not-valid :fontWeight value) + + :else + (st/emit! (dwt/update-attrs id {:font-weight value})))))} {:name "fontStyle" :get #(-> % u/proxy->shape text-props :font-style) :set (fn [self value] (let [id (obj/get self "$id")] - (st/emit! (dwt/update-attrs id {:font-style value}))))} + (cond + (not (string? value)) + (u/display-not-valid :fontStyle value) + + :else + (st/emit! (dwt/update-attrs id {:font-style value})))))} {:name "lineHeight" :get #(-> % u/proxy->shape text-props :line-height) :set (fn [self value] (let [id (obj/get self "$id")] - (st/emit! (dwt/update-attrs id {:line-height value}))))} + (cond + (not (string? value)) + (u/display-not-valid :lineHeight value) + + :else + (st/emit! (dwt/update-attrs id {:line-height value})))))} {:name "letterSpacing" :get #(-> % u/proxy->shape text-props :letter-spacing) :set (fn [self value] (let [id (obj/get self "$id")] - (st/emit! (dwt/update-attrs id {:letter-spacing value}))))} + (cond + (not (string? value)) + (u/display-not-valid :letterSpacing value) + + :else + (st/emit! (dwt/update-attrs id {:letter-spacing value})))))} {:name "textTransform" :get #(-> % u/proxy->shape text-props :text-transform) :set (fn [self value] (let [id (obj/get self "$id")] - (st/emit! (dwt/update-attrs id {:text-transform value}))))})) + (cond + (not (string? value)) + (u/display-not-valid :textTransform value) + + :else + (st/emit! (dwt/update-attrs id {:text-transform value})))))})) (cond-> (or (cfh/path-shape? data) (cfh/bool-shape? data)) (crc/add-properties! @@ -864,7 +1176,12 @@ (->> value (map u/from-js) (mapv parse-command) - (spp/simplify-commands)) - selrect (gsh/content->selrect content) - points (grc/rect->points selrect)] - (st/emit! (dwsh/update-shapes [id] (fn [shape] (assoc shape :content content :selrect selrect :points points))))))})))))) + (spp/simplify-commands))] + (cond + (not (sm/validate ::ctsp/content content)) + (u/display-not-valid :content value) + + :else + (let [selrect (gsh/content->selrect content) + points (grc/rect->points selrect)] + (st/emit! (dwsh/update-shapes [id] (fn [shape] (assoc shape :content content :selrect selrect :points points))))))))})))))) diff --git a/frontend/src/app/plugins/viewport.cljs b/frontend/src/app/plugins/viewport.cljs index 65e4423fb4..c426966415 100644 --- a/frontend/src/app/plugins/viewport.cljs +++ b/frontend/src/app/plugins/viewport.cljs @@ -14,6 +14,7 @@ [app.main.data.workspace.viewport :as dwv] [app.main.data.workspace.zoom :as dwz] [app.main.store :as st] + [app.plugins.utils :as u] [app.util.object :as obj])) (deftype ViewportProxy [$plugin] @@ -51,7 +52,14 @@ (fn [_ value] (let [new-x (obj/get value "x") new-y (obj/get value "y")] - (when (and (us/safe-number? new-x) (us/safe-number? new-y)) + (cond + (not (us/safe-number? new-x)) + (u/display-not-valid :center-x new-x) + + (not (us/safe-number? new-y)) + (u/display-not-valid :center-y new-y) + + :else (let [vb (dm/get-in @st/state [:workspace-local :vbox]) old-x (+ (:x vb) (/ (:width vb) 2)) old-y (+ (:y vb) (/ (:height vb) 2)) @@ -68,7 +76,11 @@ (dm/get-in @st/state [:workspace-local :zoom])) :set (fn [_ value] - (when (us/safe-number? value) + (cond + (not (us/safe-number? value)) + (u/display-not-valid :zoom value) + + :else (let [z (dm/get-in @st/state [:workspace-local :zoom])] (st/emit! (dwz/set-zoom (/ value z))))))} diff --git a/frontend/test/frontend_tests/plugins/context_shapes_test.cljs b/frontend/test/frontend_tests/plugins/context_shapes_test.cljs new file mode 100644 index 0000000000..ced9fff4b7 --- /dev/null +++ b/frontend/test/frontend_tests/plugins/context_shapes_test.cljs @@ -0,0 +1,260 @@ +;; This Source Code Form is subject to the terms of the Mozilla Public +;; License, v. 2.0. If a copy of the MPL was not distributed with this +;; file, You can obtain one at http://mozilla.org/MPL/2.0/. +;; +;; Copyright (c) KALEIDOS INC + +(ns frontend-tests.plugins.context-shapes-test + (:require + [app.common.math :as m] + [app.common.test-helpers.files :as cthf] + [app.common.test-helpers.ids-map :as cthi] + [app.common.test-helpers.shapes :as cths] + [app.common.uuid :as uuid] + [app.main.store :as st] + [app.plugins.api :as api] + [cljs.test :as t :include-macros true] + [frontend-tests.helpers.state :as ths])) + +(t/deftest test-common-shape-properties + (let [;; ==== Setup + store + (ths/setup-store (cthf/sample-file :file1 :page-label :page1)) + + _ (set! st/state store) + + context (api/create-context "tests") + + page (. context -currentPage) + + shape (.createRectangle context) + + get-shape-path + #(vector :workspace-data :pages-index (aget page "$id") :objects (aget shape "$id") %)] + + (t/testing "Basic shape properites" + (t/testing " - name" + (set! (.-name shape) "TEST") + (t/is (= (.-name shape) "TEST")) + (t/is (= (get-in @store (get-shape-path :name)) "TEST"))) + + (t/testing " - x" + (set! (.-x shape) 10) + (t/is (= (.-x shape) 10)) + (t/is (= (get-in @store (get-shape-path :x)) 10)) + + (set! (.-x shape) "fail") + (t/is (= (.-x shape) 10)) + (t/is (= (get-in @store (get-shape-path :x)) 10))) + + (t/testing " - y" + (set! (.-y shape) 50) + (t/is (= (.-y shape) 50)) + (t/is (= (get-in @store (get-shape-path :y)) 50)) + + (set! (.-y shape) "fail") + (t/is (= (.-y shape) 50)) + (t/is (= (get-in @store (get-shape-path :y)) 50))) + + (t/testing " - resize" + (.resize shape 250 300) + (t/is (= (.-width shape) 250)) + (t/is (= (.-height shape) 300)) + (t/is (= (get-in @store (get-shape-path :width)) 250)) + (t/is (= (get-in @store (get-shape-path :height)) 300)) + + (.resize shape 0 0) + (t/is (= (.-width shape) 250)) + (t/is (= (.-height shape) 300)) + (t/is (= (get-in @store (get-shape-path :width)) 250)) + (t/is (= (get-in @store (get-shape-path :height)) 300))) + + (t/testing " - blocked" + (set! (.-blocked shape) true) + (t/is (= (.-blocked shape) true)) + (t/is (= (get-in @store (get-shape-path :blocked)) true)) + + (set! (.-blocked shape) false) + (t/is (= (.-blocked shape) false)) + (t/is (= (get-in @store (get-shape-path :blocked)) false))) + + (t/testing " - hidden" + (set! (.-hidden shape) true) + (t/is (= (.-hidden shape) true)) + (t/is (= (get-in @store (get-shape-path :hidden)) true)) + + (set! (.-hidden shape) false) + (t/is (= (.-hidden shape) false)) + (t/is (= (get-in @store (get-shape-path :hidden)) false))) + + (t/testing " - proportionLock" + (set! (.-proportionLock shape) true) + (t/is (= (.-proportionLock shape) true)) + (t/is (= (get-in @store (get-shape-path :proportion-lock)) true))) + + (t/testing " - constraintsHorizontal" + (set! (.-constraintsHorizontal shape) "fail") + (t/is (not= (.-constraintsHorizontal shape) "fail")) + (t/is (not= (get-in @store (get-shape-path :constraints-h)) "fail")) + + (set! (.-constraintsHorizontal shape) "right") + (t/is (= (.-constraintsHorizontal shape) "right")) + (t/is (= (get-in @store (get-shape-path :constraints-h)) :right))) + + (t/testing " - constraintsVertical" + (set! (.-constraintsVertical shape) "fail") + (t/is (not= (.-constraintsVertical shape) "fail")) + (t/is (not= (get-in @store (get-shape-path :constraints-v)) "fail")) + + (set! (.-constraintsVertical shape) "bottom") + (t/is (= (.-constraintsVertical shape) "bottom")) + (t/is (= (get-in @store (get-shape-path :constraints-v)) :bottom))) + + (t/testing " - borderRadius" + (set! (.-borderRadius shape) 10) + (t/is (= (.-borderRadius shape) 10)) + (t/is (= (get-in @store (get-shape-path :rx)) 10)) + + (set! (.-borderRadiusTopLeft shape) 20) + (t/is (= (.-borderRadiusTopLeft shape) 20)) + (t/is (= (get-in @store (get-shape-path :rx)) nil)) + (t/is (= (get-in @store (get-shape-path :r1)) 20)) + (t/is (= (get-in @store (get-shape-path :r2)) 10)) + (t/is (= (get-in @store (get-shape-path :r3)) 10)) + (t/is (= (get-in @store (get-shape-path :r4)) 10)) + + (set! (.-borderRadiusTopRight shape) 30) + (set! (.-borderRadiusBottomRight shape) 40) + (set! (.-borderRadiusBottomLeft shape) 50) + (t/is (= (.-borderRadiusTopRight shape) 30)) + (t/is (= (.-borderRadiusBottomRight shape) 40)) + (t/is (= (.-borderRadiusBottomLeft shape) 50)) + + (t/is (= (get-in @store (get-shape-path :rx)) nil)) + (t/is (= (get-in @store (get-shape-path :r1)) 20)) + (t/is (= (get-in @store (get-shape-path :r2)) 30)) + (t/is (= (get-in @store (get-shape-path :r3)) 40)) + (t/is (= (get-in @store (get-shape-path :r4)) 50))) + + (t/testing " - opacity" + (set! (.-opacity shape) 0.5) + (t/is (= (.-opacity shape) 0.5)) + (t/is (= (get-in @store (get-shape-path :opacity)) 0.5))) + + (t/testing " - blendMode" + (set! (.-blendMode shape) "multiply") + (t/is (= (.-blendMode shape) "multiply")) + (t/is (= (get-in @store (get-shape-path :blend-mode)) :multiply)) + + (set! (.-blendMode shape) "fail") + (t/is (= (.-blendMode shape) "multiply")) + (t/is (= (get-in @store (get-shape-path :blend-mode)) :multiply))) + + (t/testing " - shadows" + (let [shadow #js {:style "drop-shadow" + :color #js {:color "#FABADA" :opacity 1}}] + (set! (.-shadows shape) #js [shadow]) + (let [shadow-id (uuid/uuid (aget (aget (aget shape "shadows") 0) "id"))] + (t/is (= (-> (. shape -shadows) (aget 0) (aget "style")) "drop-shadow")) + (t/is (= (get-in @store (get-shape-path :shadow)) [{:id shadow-id + :style :drop-shadow + :offset-x 4 + :offset-y 4 + :blur 4 + :spread 0 + :color {:color "#FABADA" :opacity 1} + :hidden false}])))) + + (let [shadow #js {:style "fail"}] + (set! (.-shadows shape) #js [shadow]) + (t/is (= (-> (. shape -shadows) (aget 0) (aget "style")) "drop-shadow")))) + + (t/testing " - blur" + (set! (.-blur shape) #js {:value 10}) + (t/is (= (-> (. shape -blur) (aget "type")) "layer-blur")) + (t/is (= (-> (. shape -blur) (aget "value")) 10)) + (t/is (= (-> (. shape -blur) (aget "hidden")) false)) + (let [id (-> (. shape -blur) (aget "id") uuid/uuid)] + (t/is (= (get-in @store (get-shape-path :blur)) {:id id :type :layer-blur :value 10 :hidden false})))) + + (t/testing " - exports" + (set! (.-exports shape) #js [#js {:type "pdf" :scale 2 :suffix "test"}]) + (t/is (= (-> (. shape -exports) (aget 0) (aget "type")) "pdf")) + (t/is (= (-> (. shape -exports) (aget 0) (aget "scale")) 2)) + (t/is (= (-> (. shape -exports) (aget 0) (aget "suffix")) "test")) + (t/is (= (get-in @store (get-shape-path :exports)) [{:type :pdf :scale 2 :suffix "test"}])) + + (set! (.-exports shape) #js [#js {:type 10 :scale 2 :suffix "test"}]) + (t/is (= (get-in @store (get-shape-path :exports)) [{:type :pdf :scale 2 :suffix "test"}]))) + + (t/testing " - flipX" + (set! (.-flipX shape) true) + (t/is (= (.-flipX shape) true)) + (t/is (= (get-in @store (get-shape-path :flip-x)) true))) + + (t/testing " - flipY" + (set! (.-flipY shape) true) + (t/is (= (.-flipY shape) true)) + (t/is (= (get-in @store (get-shape-path :flip-y)) true))) + + (t/testing " - rotation" + (set! (.-rotation shape) 45) + (t/is (= (.-rotation shape) 45)) + (t/is (= (get-in @store (get-shape-path :rotation)) 45)) + + (set! (.-rotation shape) 0) + (t/is (= (.-rotation shape) 0)) + (t/is (= (get-in @store (get-shape-path :rotation)) 0))) + + (t/testing " - fills" + (set! (.-fills shape) #js [#js {:fillColor 100}]) + (t/is (= (-> (. shape -fills) (aget 0) (aget "fillColor")) "#B1B2B5")) + (t/is (= (get-in @store (get-shape-path :fills)) [{:fill-color "#B1B2B5" :fill-opacity 1}])) + + (set! (.-fills shape) #js [#js {:fillColor "#FABADA" :fillOpacity 1}]) + (t/is (= (-> (. shape -fills) (aget 0) (aget "fillColor")) "#FABADA")) + (t/is (= (-> (. shape -fills) (aget 0) (aget "fillOpacity")) 1)) + (t/is (= (get-in @store (get-shape-path :fills)) [{:fill-color "#FABADA" :fill-opacity 1}]))) + + (t/testing " - strokes" + (set! (.-fills shape) #js [#js {:strokeColor "#FABADA" :strokeOpacity 1 :stroke-width 5}]) + (t/is (= (-> (. shape -fills) (aget 0) (aget "strokeColor")) "#FABADA")) + (t/is (= (-> (. shape -fills) (aget 0) (aget "strokeOpacity")) 1)) + (t/is (= (-> (. shape -fills) (aget 0) (aget "strokeWidth")) 5)) + (t/is (= (get-in @store (get-shape-path :fills)) [{:stroke-color "#FABADA" :stroke-opacity 1 :stroke-width 5}])))) + + (t/testing "Relative properties" + (let [frame (.createFrame context)] + (set! (.-x frame) 100) + (set! (.-y frame) 200) + (t/is (= (.-x frame) 100)) + (t/is (= (.-y frame) 200)) + (.appendChild frame shape) + + (t/testing " - frameX" + (set! (.-frameX shape) 10) + (t/is (m/close? (.-frameX shape) 10)) + (t/is (m/close? (.-x shape) 110)) + (t/is (m/close? (get-in @store (get-shape-path :x)) 110))) + + (t/testing " - frameY" + (set! (.-frameY shape) 20) + (t/is (m/close? (.-frameY shape) 20)) + (t/is (m/close? (.-y shape) 220)) + (t/is (m/close? (get-in @store (get-shape-path :y)) 220))) + + (t/testing " - parentX" + (set! (.-parentX shape) 30) + (t/is (m/close? (.-parentX shape) 30)) + (t/is (m/close? (.-x shape) 130)) + (t/is (m/close? (get-in @store (get-shape-path :x)) 130))) + + (t/testing " - parentY" + (set! (.-parentY shape) 40) + (t/is (m/close? (.-parentY shape) 40)) + (t/is (m/close? (.-y shape) 240)) + (t/is (m/close? (get-in @store (get-shape-path :y)) 240))))) + + (t/testing "Clone") + (t/testing "Remove"))) + From 7fd223893b1f136f270ac12718ae7645dd0ad597 Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Thu, 20 Jun 2024 13:16:23 +0200 Subject: [PATCH 225/476] :sparkles: Expose component properties in components --- frontend/src/app/plugins/api.cljs | 2 +- frontend/src/app/plugins/library.cljs | 15 ++++- frontend/src/app/plugins/shape.cljs | 93 ++++++++++++++++++++++++++- frontend/src/app/plugins/utils.cljs | 10 +++ 4 files changed, 116 insertions(+), 4 deletions(-) diff --git a/frontend/src/app/plugins/api.cljs b/frontend/src/app/plugins/api.cljs index adf18684a2..790197e648 100644 --- a/frontend/src/app/plugins/api.cljs +++ b/frontend/src/app/plugins/api.cljs @@ -205,7 +205,7 @@ (createShapeFromSvg [_ svg-string] (cond - (not (string? svg-string)) + (or (not (string? svg-string)) (empty? svg-string)) (u/display-not-valid :createShapeFromSvg svg-string) :else diff --git a/frontend/src/app/plugins/library.cljs b/frontend/src/app/plugins/library.cljs index de163e8b58..eb47da7133 100644 --- a/frontend/src/app/plugins/library.cljs +++ b/frontend/src/app/plugins/library.cljs @@ -14,6 +14,7 @@ [app.common.record :as cr] [app.common.schema :as sm] [app.common.types.color :as ctc] + [app.common.types.file :as ctf] [app.common.types.typography :as ctt] [app.common.uuid :as uuid] [app.main.data.workspace :as dw] @@ -630,7 +631,19 @@ :else (let [component (u/proxy->library-component self) value (dm/str value " / " (:name component))] - (st/emit! (dwl/rename-component id value)))))})) + (st/emit! (dwl/rename-component id value)))))} + + {:name "mainInstance" + :get + (fn [self] + (let [file-id (obj/get self "$file") + file (u/locate-file file-id) + component (u/proxy->library-component self) + root (ctf/get-component-root (:data file) component)] + (when (some? root) + (shape/shape-proxy plugin-id file-id (:main-instance-page component) (:id root)))))})) + +(set! shape/lib-component-proxy lib-component-proxy) (deftype Library [$plugin $id] Object diff --git a/frontend/src/app/plugins/shape.cljs b/frontend/src/app/plugins/shape.cljs index 44cc2af730..df6b8d1234 100644 --- a/frontend/src/app/plugins/shape.cljs +++ b/frontend/src/app/plugins/shape.cljs @@ -18,6 +18,9 @@ [app.common.spec :as us] [app.common.svg.path.legacy-parser2 :as spp] [app.common.text :as txt] + [app.common.types.component :as ctk] + [app.common.types.container :as ctn] + [app.common.types.file :as ctf] [app.common.types.grid :as ctg] [app.common.types.shape :as cts] [app.common.types.shape.blur :as ctsb] @@ -43,6 +46,7 @@ [cuerdas.core :as str])) (def lib-typography-proxy? nil) +(def lib-component-proxy nil) (deftype TextRange [$plugin $file $page $id start end] Object @@ -466,7 +470,39 @@ :else (let [typography (u/proxy->library-typography typography)] - (st/emit! (dwt/apply-typography #{$id} typography $file))))))) + (st/emit! (dwt/apply-typography #{$id} typography $file)))))) + + ;; COMPONENTS + (isComponentInstance + [self] + (let [shape (u/proxy->shape self) + file-id (obj/get self "$file") + page-id (obj/get self "$page") + objects (u/locate-objects file-id page-id)] + (ctn/in-any-component? objects shape))) + + (isComponentMainInstance + [self] + (let [shape (u/proxy->shape self) + file-id (obj/get self "$file") + page-id (obj/get self "$page") + objects (u/locate-objects file-id page-id)] + (ctn/inside-component-main? objects shape))) + + (isComponentCopyInstance + [self] + (let [shape (u/proxy->shape self)] + (ctk/in-component-copy? shape))) + + (isComponentRoot + [self] + (let [shape (u/proxy->shape self)] + (ctk/instance-root? shape))) + + (isComponentHead + [self] + (let [shape (u/proxy->shape self)] + (ctk/instance-head? shape)))) (crc/define-properties! ShapeProxy @@ -951,7 +987,60 @@ id (obj/get self "$id") objects (u/locate-objects file-id page-id)] (when (ctl/grid-layout-immediate-child-id? objects id) - (grid/layout-cell-proxy plugin-id file-id page-id id))))}) + (grid/layout-cell-proxy plugin-id file-id page-id id))))} + + ;; Components + {:name "componentRefShape" + :get + (fn [self] + (let [file-id (obj/get self "$file") + page-id (obj/get self "$page") + objects (u/locate-objects file-id page-id) + shape (u/proxy->shape self)] + (when (ctn/in-any-component? objects shape) + (let [plugin-id (obj/get self "$plugin") + [root component] (u/locate-component objects shape) + component-page-id (:main-instance-page component) + component-file (u/locate-file (:component-file root)) + ref-shape (ctf/get-ref-shape (:data component-file) component shape)] + (when (and (not (:deleted component)) (some? ref-shape) (some? component-file)) + (shape-proxy plugin-id (:id component-file) component-page-id (:id ref-shape)))))))} + + {:name "componentRoot" + :get + (fn [self] + (let [file-id (obj/get self "$file") + page-id (obj/get self "$page") + objects (u/locate-objects file-id page-id) + shape (u/proxy->shape self)] + (when (ctn/in-any-component? objects shape) + (let [plugin-id (obj/get self "$plugin") + [root component] (u/locate-component objects shape)] + (shape-proxy plugin-id (:component-file root) (:main-instance-page component) (:id root))))))} + + {:name "componentHead" + :get + (fn [self] + (let [file-id (obj/get self "$file") + objects (u/locate-objects file-id page-id) + shape (u/proxy->shape self)] + (when (ctn/in-any-component? objects shape) + (let [plugin-id (obj/get self "$plugin") + page-id (obj/get self "$page") + head (ctn/get-head-shape (u/locate-objects file-id page-id) shape)] + (shape-proxy plugin-id file-id page-id (:id head))))))} + + {:name "component" + :get + (fn [self] + (let [file-id (obj/get self "$file") + page-id (obj/get self "$page") + objects (u/locate-objects file-id page-id) + shape (u/proxy->shape self)] + (when (ctn/in-any-component? objects shape) + (let [plugin-id (obj/get self "$plugin") + [root component] (u/locate-component objects shape)] + (lib-component-proxy plugin-id (:component-file root) (:id component))))))}) (cond-> (or (cfh/frame-shape? data) (cfh/group-shape? data) (cfh/svg-raw-shape? data) (cfh/bool-shape? data)) (crc/add-properties! diff --git a/frontend/src/app/plugins/utils.cljs b/frontend/src/app/plugins/utils.cljs index 87fb3abb32..da600d4476 100644 --- a/frontend/src/app/plugins/utils.cljs +++ b/frontend/src/app/plugins/utils.cljs @@ -10,6 +10,8 @@ [app.common.data :as d] [app.common.data.macros :as dm] [app.common.spec :as us] + [app.common.types.container :as ctn] + [app.common.types.file :as ctf] [app.common.uuid :as uuid] [app.main.store :as st] [app.util.object :as obj] @@ -62,6 +64,14 @@ (let [{:keys [profile-id]} (locate-presence session-id)] (dm/get-in @st/state [:users profile-id]))) +(defn locate-component + [objects shape] + (let [current-file-id (:current-file-id @st/state) + workspace-data (:workspace-data @st/state) + workspace-libraries (:workspace-libraries @st/state) + root (ctn/get-instance-root objects shape)] + [root (ctf/resolve-component root {:id current-file-id :data workspace-data} workspace-libraries {:include-deleted? true})])) + (defn proxy->file [proxy] (let [id (obj/get proxy "$id")] From 47d211cd87bd869ab5446e852846d222e78b69a6 Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Thu, 20 Jun 2024 15:47:29 +0200 Subject: [PATCH 226/476] :arrow_up: Update plugin runtime --- frontend/resources/plugins-runtime/index.js | 490 +++++++++++--------- 1 file changed, 260 insertions(+), 230 deletions(-) diff --git a/frontend/resources/plugins-runtime/index.js b/frontend/resources/plugins-runtime/index.js index e3de504aa7..aa6199d6ae 100644 --- a/frontend/resources/plugins-runtime/index.js +++ b/frontend/resources/plugins-runtime/index.js @@ -56,7 +56,7 @@ const k = globalThis, { preventExtensions: Qs, setPrototypeOf: ko, values: Po, - fromEntries: ht + fromEntries: mt } = bn, { species: Vr, toStringTag: qe, @@ -76,7 +76,7 @@ const k = globalThis, { return n; }, { apply: ne, - construct: hr, + construct: mr, get: sa, getOwnPropertyDescriptor: aa, has: Io, @@ -94,7 +94,7 @@ const k = globalThis, { ), Oo = ( /** @type {any} */ P(_e.flatMap) -), gr = P(_e.pop), X = P(_e.push), ua = P(_e.slice), da = P(_e.some), Mo = P(_e.sort), fa = P(_e[rr]), $e = P(Nt.set), Ue = P(Nt.get), Lr = P(Nt.has), pa = P(Nt.delete), ma = P(Nt.entries), ha = P(Nt[rr]), Sn = P(nr.add); +), gr = P(_e.pop), X = P(_e.push), ua = P(_e.slice), da = P(_e.some), Mo = P(_e.sort), fa = P(_e[rr]), $e = P(Nt.set), Ue = P(Nt.get), Lr = P(Nt.has), pa = P(Nt.delete), ha = P(Nt.entries), ma = P(Nt[rr]), Sn = P(nr.add); P(nr.delete); const Wn = P(nr.forEach), xn = P(nr.has), ga = P(nr[rr]), kn = P(Rr.test), Pn = P(Rr.exec), ya = P(Rr[To]), Lo = P(Le.endsWith), Fo = P(Le.includes), va = P(Le.indexOf); P(Le.match); @@ -142,10 +142,10 @@ const { freeze: at } = Object, { apply: Aa } = Reflect, $n = (t) => (e, ...r) => u )} must be a string.`; let d = u; - const f = t.process || void 0, m = typeof f == "object" && f.env || void 0; - if (typeof m == "object" && c in m) { + const f = t.process || void 0, h = typeof f == "object" && f.env || void 0; + if (typeof h == "object" && c in h) { e || Ia(r, c); - const p = m[c]; + const p = h[c]; typeof p == "string" || ir`Environment option named ${nt( c )}, if present, must have a corresponding string value, got ${nt( @@ -204,7 +204,7 @@ const Ho = (t, e = void 0) => { return a; Mo(i); const u = se(i, (l) => [l, a[l]]); - return ht(u); + return mt(u); } case "function": return `[Function ${a.name || ""}]`; @@ -264,13 +264,13 @@ const { isSafeInteger: $a } = Number, { freeze: vt } = Object, { toStringTag: Na const c = (d, f) => { if (t < 1) return l; - let m = o(d); - if (m === void 0 && (m = Kn(void 0), Yn(n, m)), !m.data) - for (r += 1, m.data = /* @__PURE__ */ new WeakMap(), e.set(d, m); r > t; ) { + let h = o(d); + if (h === void 0 && (h = Kn(void 0), Yn(n, h)), !h.data) + for (r += 1, h.data = /* @__PURE__ */ new WeakMap(), e.set(d, h); r > t; ) { const p = n.prev; Kr(p), p.data = void 0, r -= 1; } - return m.data.set(d, f), l; + return h.data.set(d, f), l; }; vt(c); const u = (d) => { @@ -366,7 +366,7 @@ const Jo = ({ template: t, args: e }) => { X(r, o, i); } return r[r.length - 1] === "" && gr(r), r; -}, mr = new Me(); +}, hr = new Me(); let nn = 0; const Jn = new Me(), Xo = (t, e = t.name) => { let r = L(Jn, t); @@ -418,7 +418,7 @@ const Jn = new Me(), Xo = (t, e = t.name) => { writable: !0, enumerable: !1, configurable: !0 - })), ie(mr, l, Jo(i)), r !== void 0 && Xo(l, r), a && Fa(l), l; + })), ie(hr, l, Jo(i)), r !== void 0 && Xo(l, r), a && Fa(l), l; }; y(on); const { addLogArgs: Da, takeLogArgsArray: Ua } = Wo(), sn = new Me(), Nn = (t, e) => { @@ -446,10 +446,10 @@ const ja = (t) => { resetErrorTagNum: () => { nn = 0; }, - getMessageLogArgs: (t) => L(mr, t), + getMessageLogArgs: (t) => L(hr, t), takeMessageLogArgs: (t) => { - const e = L(mr, t); - return wa(mr, t), e; + const e = L(hr, t); + return wa(hr, t), e; }, takeNoteLogArgsArray: (t, e) => { const r = Ua(t); @@ -462,28 +462,28 @@ const ja = (t) => { }; y(br); const jr = (t = void 0, e = !1) => { - const r = e ? Yo : ft, n = r`Check failed`, o = (f = n, m = void 0, p = void 0) => { - const h = on(f, m, p); - throw t !== void 0 && t(h), h; + const r = e ? Yo : ft, n = r`Check failed`, o = (f = n, h = void 0, p = void 0) => { + const m = on(f, h, p); + throw t !== void 0 && t(m), m; }; y(o); - const a = (f, ...m) => o(r(f, ...m)); - function i(f, m = void 0, p = void 0, h = void 0) { - f || o(m, p, h); + const a = (f, ...h) => o(r(f, ...h)); + function i(f, h = void 0, p = void 0, m = void 0) { + f || o(h, p, m); } - const c = (f, m, p = void 0, h = void 0, _ = void 0) => { - Nr(f, m) || o( - p || r`Expected ${f} is same as ${m}`, - h || Xs, + const c = (f, h, p = void 0, m = void 0, _ = void 0) => { + Nr(f, h) || o( + p || r`Expected ${f} is same as ${h}`, + m || Xs, _ ); }; y(c); - const u = (f, m, p) => { - if (typeof f !== m) { - if (typeof m == "string" || a`${Je(m)} must be a string`, p === void 0) { - const h = _r(m); - p = r`${f} must be ${rn(h)}`; + const u = (f, h, p) => { + if (typeof f !== h) { + if (typeof h == "string" || a`${Je(h)} must be a string`, p === void 0) { + const m = _r(h); + p = r`${f} must be ${rn(m)}`; } o(p, v); } @@ -494,7 +494,7 @@ const jr = (t = void 0, e = !1) => { fail: o, equal: c, typeof: u, - string: (f, m = void 0) => u(f, "string", m), + string: (f, h = void 0) => u(f, "string", h), note: Nn, details: r, Fail: a, @@ -545,13 +545,13 @@ const Za = (t) => ne(es, t, []) !== void 0, za = (t) => { } const a = (d) => { Za(d) ? Ga(d) : y(d); - const f = Ze(d), m = j(d); - o(m), ut(De(f), (p) => { - const h = f[ + const f = Ze(d), h = j(d); + o(h), ut(De(f), (p) => { + const m = f[ /** @type {string} */ p ]; - oe(h, "value") ? o(h.value) : (o(h.get), o(h.set)); + oe(m, "value") ? o(m.value) : (o(m.get), o(m.set)); }); }, i = qr === void 0 && Pa === void 0 ? ( // On platforms without v8's error own stack accessor problem, @@ -1967,89 +1967,89 @@ const as = () => { }; function Ya(t, e) { let r = !1; - const n = (m, ...p) => (r || (console.groupCollapsed("Removing unpermitted intrinsics"), r = !0), console[m](...p)), o = ["undefined", "boolean", "number", "string", "symbol"], a = new Pe( + const n = (h, ...p) => (r || (console.groupCollapsed("Removing unpermitted intrinsics"), r = !0), console[h](...p)), o = ["undefined", "boolean", "number", "string", "symbol"], a = new Pe( Et ? se( Ke( re(wr["%SharedSymbol%"]), - ([m, p]) => p === "symbol" && typeof Et[m] == "symbol" + ([h, p]) => p === "symbol" && typeof Et[h] == "symbol" ), - ([m]) => [Et[m], `@@${m}`] + ([h]) => [Et[h], `@@${h}`] ) : [] ); - function i(m, p) { + function i(h, p) { if (typeof p == "string") return p; - const h = Ue(a, p); + const m = Ue(a, p); if (typeof p == "symbol") { - if (h) - return h; + if (m) + return m; { const _ = ta(p); return _ !== void 0 ? `RegisteredSymbol(${_})` : `Unique${pe(p)}`; } } - throw v(`Unexpected property name type ${m} ${p}`); + throw v(`Unexpected property name type ${h} ${p}`); } - function c(m, p, h) { + function c(h, p, m) { if (!Ye(p)) - throw v(`Object expected: ${m}, ${p}, ${h}`); + throw v(`Object expected: ${h}, ${p}, ${m}`); const _ = j(p); - if (!(_ === null && h === null)) { - if (h !== void 0 && typeof h != "string") - throw v(`Malformed whitelist permit ${m}.__proto__`); - if (_ !== t[h || "%ObjectPrototype%"]) - throw v(`Unexpected intrinsic ${m}.__proto__ at ${h}`); + if (!(_ === null && m === null)) { + if (m !== void 0 && typeof m != "string") + throw v(`Malformed whitelist permit ${h}.__proto__`); + if (_ !== t[m || "%ObjectPrototype%"]) + throw v(`Unexpected intrinsic ${h}.__proto__ at ${m}`); } } - function u(m, p, h, _) { + function u(h, p, m, _) { if (typeof _ == "object") - return f(m, p, _), !0; + return f(h, p, _), !0; if (_ === !1) return !1; if (typeof _ == "string") { - if (h === "prototype" || h === "constructor") { + if (m === "prototype" || m === "constructor") { if (oe(t, _)) { if (p !== t[_]) - throw v(`Does not match whitelist ${m}`); + throw v(`Does not match whitelist ${h}`); return !0; } } else if (Mr(o, _)) { if (typeof p !== _) throw v( - `At ${m} expected ${_} not ${typeof p}` + `At ${h} expected ${_} not ${typeof p}` ); return !0; } } - throw v(`Unexpected whitelist permit ${_} at ${m}`); + throw v(`Unexpected whitelist permit ${_} at ${h}`); } - function l(m, p, h, _) { - const E = J(p, h); + function l(h, p, m, _) { + const E = J(p, m); if (!E) - throw v(`Property ${h} not found at ${m}`); + throw v(`Property ${m} not found at ${h}`); if (oe(E, "value")) { if (eo(_)) - throw v(`Accessor expected at ${m}`); - return u(m, E.value, h, _); + throw v(`Accessor expected at ${h}`); + return u(h, E.value, m, _); } if (!eo(_)) - throw v(`Accessor not expected at ${m}`); - return u(`${m}`, E.get, h, _.get) && u(`${m}`, E.set, h, _.set); + throw v(`Accessor not expected at ${h}`); + return u(`${h}`, E.get, m, _.get) && u(`${h}`, E.set, m, _.set); } - function d(m, p, h) { - const _ = h === "__proto__" ? "--proto--" : h; + function d(h, p, m) { + const _ = m === "__proto__" ? "--proto--" : m; if (oe(p, _)) return p[_]; - if (typeof m == "function" && oe(an, _)) + if (typeof h == "function" && oe(an, _)) return an[_]; } - function f(m, p, h) { + function f(h, p, m) { if (p == null) return; - const _ = h["[[Proto]]"]; - c(m, p, _), typeof p == "function" && e(p); + const _ = m["[[Proto]]"]; + c(h, p, _), typeof p == "function" && e(p); for (const E of De(p)) { - const T = i(m, E), N = `${m}.${T}`, x = d(p, h, T); + const T = i(h, E), N = `${h}.${T}`, x = d(p, m, T); if (!x || !l(N, p, E, x)) { x !== !1 && n("warn", `Removing ${N}`); try { @@ -2138,7 +2138,7 @@ function Xa(t = "safe") { }, o = ({ powers: c = "none" } = {}) => { let u; return c === "original" ? u = function(...d) { - return new.target === void 0 ? ne(e, void 0, d) : hr(e, d, new.target); + return new.target === void 0 ? ne(e, void 0, d) : mr(e, d, new.target); } : u = function(...d) { if (new.target === void 0) throw v( @@ -2148,7 +2148,7 @@ function Xa(t = "safe") { throw v( "secure mode Calling new %SharedDate%() with no arguments throws" ); - return hr(e, d, new.target); + return mr(e, d, new.target); }, F(u, { length: { value: 7 }, prototype: { @@ -2222,7 +2222,7 @@ function ei(t = "safe") { throw v(`unrecognized regExpTaming ${t}`); const e = We.prototype, r = (a = {}) => { const i = function(...u) { - return new.target === void 0 ? We(...u) : hr(We, u, new.target); + return new.target === void 0 ? We(...u) : mr(We, u, new.target); }; if (F(i, { length: { value: 2 }, @@ -2425,9 +2425,9 @@ const ti = { }; function ni(t, e, r = []) { const n = new Ct(r); - function o(l, d, f, m) { - if ("value" in m && m.configurable) { - const { value: p } = m, h = xn(n, f), { get: _, set: E } = J( + function o(l, d, f, h) { + if ("value" in h && h.configurable) { + const { value: p } = h, m = xn(n, f), { get: _, set: E } = J( { get [f]() { return p; @@ -2439,7 +2439,7 @@ function ni(t, e, r = []) { f )}' of '${l}'` ); - oe(this, f) ? this[f] = T : (h && console.error(v(`Override property ${f}`)), M(this, f, { + oe(this, f) ? this[f] = T : (m && console.error(v(`Override property ${f}`)), M(this, f, { value: T, writable: !0, enumerable: !0, @@ -2457,33 +2457,33 @@ function ni(t, e, r = []) { }), M(d, f, { get: _, set: E, - enumerable: m.enumerable, - configurable: m.configurable + enumerable: h.enumerable, + configurable: h.configurable }); } } function a(l, d, f) { - const m = J(d, f); - m && o(l, d, f, m); + const h = J(d, f); + h && o(l, d, f, h); } function i(l, d) { const f = Ze(d); - f && ut(De(f), (m) => o(l, d, m, f[m])); + f && ut(De(f), (h) => o(l, d, h, f[h])); } function c(l, d, f) { - for (const m of De(f)) { - const p = J(d, m); + for (const h of De(f)) { + const p = J(d, h); if (!p || p.get || p.set) continue; - const h = `${l}.${pe(m)}`, _ = f[m]; + const m = `${l}.${pe(h)}`, _ = f[h]; if (_ === !0) - a(h, d, m); + a(m, d, h); else if (_ === "*") - i(h, p.value); + i(m, p.value); else if (Ye(_)) - c(h, p.value, _); + c(m, p.value, _); else - throw v(`Unexpected override enablement plan ${h}`); + throw v(`Unexpected override enablement plan ${m}`); } } let u; @@ -2690,7 +2690,7 @@ ${o} ), pi = new Cr( Cn, ps -), ms = (t) => { +), hs = (t) => { const e = { // inherit scopeTerminator behavior ...ps, @@ -2713,8 +2713,8 @@ ${o} r ); }; -y(ms); -const { Fail: mi } = G, hi = () => { +y(hs); +const { Fail: hi } = G, mi = () => { const t = z(null), e = y({ eval: { get() { @@ -2727,7 +2727,7 @@ const { Fail: mi } = G, hi = () => { evalScope: t, allowNextEvalToBeUnsafe() { const { revoked: n } = r; - n !== null && mi`a handler did not reset allowNextEvalToBeUnsafe ${n.err}`, F(t, e); + n !== null && hi`a handler did not reset allowNextEvalToBeUnsafe ${n.err}`, F(t, e); }, /** @type {null | { err: any }} */ revoked: null @@ -2754,15 +2754,15 @@ function On(t, e) { return An(Tn(t, 0, r), ` `).length + n; } -const hs = new We("(?:)", "g"), gs = (t) => { - const e = On(t, hs); +const ms = new We("(?:)", "g"), gs = (t) => { + const e = On(t, ms); if (e < 0) return t; const r = Rn(t); throw tr( `Possible HTML comment rejected at ${r}:${e}. (SES_HTML_COMMENT_REJECTED)` ); -}, ys = (t) => vr(t, hs, (r) => r[0] === "<" ? "< ! --" : "-- >"), vs = new We( +}, ys = (t) => vr(t, ms, (r) => r[0] === "<" ? "< ! --" : "-- >"), vs = new We( "(^|[^.]|\\.\\.\\.)\\bimport(\\s*(?:\\(|/[/*]))", "g" ), _s = (t) => { @@ -2924,7 +2924,7 @@ const wi = (t) => { globalTransforms: r = [], sloppyGlobalsMode: n = !1 }) => { - const o = n ? ms(t) : pi, a = hi(), { evalScope: i } = a, c = y({ + const o = n ? hs(t) : pi, a = mi(), { evalScope: i } = a, c = y({ evalScope: i, moduleLexicals: e, globalObject: t, @@ -2934,21 +2934,21 @@ const wi = (t) => { const l = () => { u || (u = wi(c)); }; - return { safeEvaluate: (f, m) => { - const { localTransforms: p = [] } = m || {}; + return { safeEvaluate: (f, h) => { + const { localTransforms: p = [] } = h || {}; l(), f = Ss(f, [ ...p, ...r, Es ]); - let h; + let m; try { return a.allowNextEvalToBeUnsafe(), ne(u, t, [f]); } catch (_) { - throw h = _, _; + throw m = _, _; } finally { const _ = "eval" in i; - delete i.eval, _ && (a.revoked = { err: h }, Ei`handler did not reset allowNextEvalToBeUnsafe ${h}`); + delete i.eval, _ && (a.revoked = { err: m }, Ei`handler did not reset allowNextEvalToBeUnsafe ${m}`); } } }; }, Si = ") { [native code] }"; @@ -3046,7 +3046,7 @@ const Ln = y([ ]), ki = (t, { shouldResetForDebugging: e = !1 } = {}) => { e && t.resetErrorTagNum(); let r = []; - const n = ht( + const n = mt( se(ks, ([i, c]) => { const u = (...l) => { X(r, [i, ...l]); @@ -3119,7 +3119,7 @@ const Dn = (t, e) => { for (const K of B) c(E, T, it.NOTE, K, x); u(E, x, N); - }, m = se(Ln, ([E, T]) => { + }, h = se(Ln, ([E, T]) => { const N = (...x) => { const D = [], B = i(x, D); t[E](...B), u(E, D); @@ -3128,12 +3128,12 @@ const Dn = (t, e) => { }), p = Ke( Fn, ([E, T]) => E in t - ), h = se(p, ([E, T]) => { + ), m = se(p, ([E, T]) => { const N = (...x) => { t[E](...x); }; return M(N, "name", { value: E }), [E, y(N)]; - }), _ = ht([...m, ...h]); + }), _ = mt([...h, ...m]); return ( /** @type {VirtualConsole} */ y(_) @@ -3149,7 +3149,7 @@ const Pi = (t, e, r) => { (l) => typeof l == "string" && Fo(l, ` `) ? Pi(l, ` `, n) : [l] - ), u = [...n, ...u]), r(...u)), a = (u, l) => ({ [u]: (...d) => l(...d) })[u], i = ht([ + ), u = [...n, ...u]), r(...u)), a = (u, l) => ({ [u]: (...d) => l(...d) })[u], i = mt([ ...se(Ln, ([u]) => [ u, a(u, o) @@ -3178,7 +3178,7 @@ const Ti = (t, e, r = void 0) => { ([i, c]) => i in t ), o = se(n, ([i, c]) => [i, y((...l) => { (c === void 0 || e.canLog(c)) && t[i](...l); - })]), a = ht(o); + })]), a = mt(o); return ( /** @type {VirtualConsole} */ y(a) @@ -3204,11 +3204,11 @@ const io = (t) => { }, unhandledRejectionHandler: (d, f) => { e += 1; - const m = e; - $e(r, m, d), ie(o, f, m), xa(i, f, m, f); + const h = e; + $e(r, h, d), ie(o, f, h), xa(i, f, h, f); }, processTerminationHandler: () => { - for (const [d, f] of ma(r)) + for (const [d, f] of ha(r)) n(d), t(f); } }; @@ -3300,7 +3300,7 @@ const io = (t) => { "toString" // TODO replace to use only whitelisted info ], Ci = (t) => { - const r = ht(se(Ii, (n) => { + const r = mt(se(Ii, (n) => { const o = t[n]; return [n, () => ne(o, t, [])]; })); @@ -3329,11 +3329,11 @@ const io = (t) => { return t; }, zi = (t, e, r, n) => { const o = t.captureStackTrace, a = (p) => n === "verbose" ? !0 : Fi(p.getFileName()), i = (p) => { - let h = `${p}`; - return n === "concise" && (h = Zi(h)), ` - at ${h}`; - }, c = (p, h) => Rt( - se(Ke(h, a), i), + let m = `${p}`; + return n === "concise" && (m = Zi(m)), ` + at ${m}`; + }, c = (p, m) => Rt( + se(Ke(m, a), i), "" ), u = new Me(), l = { // The optional `optFn` argument is for cutting off the bottom of @@ -3341,9 +3341,9 @@ const io = (t) => { // call to that function. Since this isn't the "real" captureStackTrace // but instead calls the real one, if no other cutoff is provided, // we cut this one off. - captureStackTrace(p, h = l.captureStackTrace) { + captureStackTrace(p, m = l.captureStackTrace) { if (typeof o == "function") { - ne(o, t, [p, h]); + ne(o, t, [p, m]); return; } Co(p, "stack", ""); @@ -3353,30 +3353,30 @@ const io = (t) => { // string associated with an error. // See https://tc39.es/proposal-error-stacks/ getStackString(p) { - let h = L(u, p); - if (h === void 0 && (p.stack, h = L(u, p), h || (h = { stackString: "" }, ie(u, p, h))), h.stackString !== void 0) - return h.stackString; - const _ = c(p, h.callSites); + let m = L(u, p); + if (m === void 0 && (p.stack, m = L(u, p), m || (m = { stackString: "" }, ie(u, p, m))), m.stackString !== void 0) + return m.stackString; + const _ = c(p, m.callSites); return ie(u, p, { stackString: _ }), _; }, - prepareStackTrace(p, h) { + prepareStackTrace(p, m) { if (r === "unsafe") { - const _ = c(p, h); + const _ = c(p, m); return ie(u, p, { stackString: _ }), `${p}${_}`; } else - return ie(u, p, { callSites: h }), ""; + return ie(u, p, { callSites: m }), ""; } }, d = l.prepareStackTrace; t.prepareStackTrace = d; - const f = new $t([d]), m = (p) => { + const f = new $t([d]), h = (p) => { if (or(f, p)) return p; - const h = { + const m = { prepareStackTrace(_, E) { return ie(u, _, { callSites: E }), p(_, $i(E)); } }; - return Fr(f, h.prepareStackTrace), h.prepareStackTrace; + return Fr(f, m.prepareStackTrace), m.prepareStackTrace; }; return F(e, { captureStackTrace: { @@ -3391,8 +3391,8 @@ const io = (t) => { }, set(p) { if (typeof p == "function") { - const h = m(p); - t.prepareStackTrace = h; + const m = h(p); + t.prepareStackTrace = m; } else t.prepareStackTrace = d; }, @@ -3411,9 +3411,9 @@ function Bi(t = "safe", e = "concise") { if (e !== "concise" && e !== "verbose") throw v(`unrecognized stackFiltering ${e}`); const r = ue.prototype, n = typeof ue.captureStackTrace == "function" ? "v8" : "unknown", { captureStackTrace: o } = ue, a = (l = {}) => { - const d = function(...m) { + const d = function(...h) { let p; - return new.target === void 0 ? p = ne(ue, this, m) : p = hr(ue, m, new.target), n === "v8" && ne(o, ue, [p, d]), p; + return new.target === void 0 ? p = ne(ue, this, h) : p = mr(ue, h, new.target), n === "v8" && ne(o, ue, [p, d]), p; }; return F(d, { length: { value: 1 }, @@ -3563,7 +3563,7 @@ const Ki = (t, e) => y({ o.imports, l, n - ), m = y({ + ), h = y({ compartment: r, staticModuleRecord: o, moduleSpecifier: n, @@ -3580,21 +3580,21 @@ const Ki = (t, e) => y({ i, c ]); - return $e(d, n, m), m; + return $e(d, n, h), h; }; function* Ji(t, e, r, n, o, a, i) { const { importHook: c, importNowHook: u, moduleMap: l, moduleMapHook: d, moduleRecords: f } = L(t, r); - let m = l[n]; - if (m === void 0 && d !== void 0 && (m = d(n)), typeof m == "string") + let h = l[n]; + if (h === void 0 && d !== void 0 && (h = d(n)), typeof h == "string") G.fail( un`Cannot map module ${xe(n)} to ${xe( - m + h )} in parent compartment, not yet implemented`, v ); - else if (m !== void 0) { - const h = L(e, m); - h === void 0 && G.fail( + else if (h !== void 0) { + const m = L(e, h); + m === void 0 && G.fail( un`Cannot map module ${xe( n )} because the value is not a module exports namespace, or is from another realm`, @@ -3603,8 +3603,8 @@ function* Ji(t, e, r, n, o, a, i) { const _ = yield Ut( t, e, - h.compartment, - h.specifier, + m.compartment, + m.specifier, o, a, i @@ -3626,14 +3626,14 @@ function* Ji(t, e, r, n, o, a, i) { "Cannot redirect to an explicit record with a specified compartment" ); const { - compartment: h = r, + compartment: m = r, specifier: _ = n, record: E, importMeta: T } = p, N = fo( t, e, - h, + m, _, E, o, @@ -3648,7 +3648,7 @@ function* Ji(t, e, r, n, o, a, i) { throw v( "Cannot redirect to an implicit record with a specified importMeta" ); - const h = yield Ut( + const m = yield Ut( t, e, p.compartment, @@ -3657,7 +3657,7 @@ function* Ji(t, e, r, n, o, a, i) { a, i ); - return $e(f, n, h), h; + return $e(f, n, m), m; } throw v("Unnexpected RedirectStaticModuleInterface record shape"); } @@ -3933,19 +3933,19 @@ const Qi = (t, e) => e, ec = (t, e) => t, po = async (t, e, r, n) => { `SES third-party static module record "exports" property must be an array of strings for module ${o}` ); ut(e.exports, (f) => { - let m = c[f]; + let h = c[f]; const p = []; M(c, f, { - get: () => m, + get: () => h, set: (E) => { - m = E; + h = E; for (const T of p) T(E); }, enumerable: !0, configurable: !1 }), l[f] = (E) => { - X(p, E), E(m); + X(p, E), E(h); }; }), l["*"] = (f) => { f(c); @@ -3985,18 +3985,18 @@ const Qi = (t, e) => e, ec = (t, e) => t, po = async (t, e, r, n) => { __syncModuleProgram__: l, __fixedExportMap__: d = {}, __liveExportMap__: f = {}, - __reexportMap__: m = {}, + __reexportMap__: h = {}, __needsImportMeta__: p = !1, - __syncModuleFunctor__: h + __syncModuleFunctor__: m } = i, _ = L(t, o), { __shimTransforms__: E, importMetaHook: T } = _, { exportsProxy: N, exportsTarget: x, activate: D } = Un( o, _, e, a - ), B = z(null), H = z(null), K = z(null), ze = z(null), me = z(null); - c && $r(me, c), p && T && T(a, me); + ), B = z(null), H = z(null), K = z(null), ze = z(null), he = z(null); + c && $r(he, c), p && T && T(a, he); const Ge = z(null), rt = z(null); - ut(re(d), ([he, [V]]) => { + ut(re(d), ([me, [V]]) => { let W = Ge[V]; if (!W) { let ee, te = !0, ce = []; @@ -4023,22 +4023,22 @@ const Qi = (t, e) => e, ec = (t, e) => t, po = async (t, e, r, n) => { } }, Ge[V] = W, K[V] = be; } - B[he] = { + B[me] = { get: W.get, set: void 0, enumerable: !0, configurable: !1 - }, rt[he] = W.notify; + }, rt[me] = W.notify; }), ut( re(f), - ([he, [V, W]]) => { + ([me, [V, W]]) => { let ee = Ge[V]; if (!ee) { let te, ce = !0; const Y = [], be = () => { if (ce) throw lt( - `binding ${cr(he)} not yet initialized` + `binding ${cr(me)} not yet initialized` ); return te; }, gt = y((Ee) => { @@ -4064,22 +4064,22 @@ const Qi = (t, e) => e, ec = (t, e) => t, po = async (t, e, r, n) => { configurable: !1 }), ze[V] = gt; } - B[he] = { + B[me] = { get: ee.get, set: void 0, enumerable: !0, configurable: !1 - }, rt[he] = ee.notify; + }, rt[me] = ee.notify; } ); - const Be = (he) => { - he(x); + const Be = (me) => { + me(x); }; rt["*"] = Be; - function ar(he) { + function ar(me) { const V = z(null); V.default = !1; - for (const [W, ee] of he) { + for (const [W, ee] of me) { const te = Ue(n, W); te.execute(); const { notifiers: ce } = te; @@ -4097,8 +4097,8 @@ const Qi = (t, e) => e, ec = (t, e) => t, po = async (t, e, r, n) => { ce )) V[Y] === void 0 ? V[Y] = be : V[Y] = !1; - if (m[W]) - for (const [Y, be] of m[W]) + if (h[W]) + for (const [Y, be] of h[W]) V[be] = ce[Y]; } for (const [W, ee] of re(V)) @@ -4120,7 +4120,7 @@ const Qi = (t, e) => e, ec = (t, e) => t, po = async (t, e, r, n) => { ), y(x), D(); } let Ot; - h !== void 0 ? Ot = h : Ot = As(_, l, { + m !== void 0 ? Ot = m : Ot = As(_, l, { globalObject: o.globalThis, transforms: E, __moduleShimLexicals__: H @@ -4128,15 +4128,15 @@ const Qi = (t, e) => e, ec = (t, e) => t, po = async (t, e, r, n) => { let Gn = !1, Bn; function Bs() { if (Ot) { - const he = Ot; + const me = Ot; Ot = null; try { - he( + me( y({ imports: y(ar), onceVar: y(K), liveVar: y(ze), - importMeta: me + importMeta: he }) ); } catch (V) { @@ -4228,13 +4228,13 @@ const dc = (t, e, r) => { ); $e(c, o, l); for (const [d, f] of re(a)) { - const m = Is( + const h = Is( t, e, n, f ); - $e(u, d, m); + $e(u, d, h); } return l; }, { quote: Xr } = G, bt = new Me(), Ce = new Me(), lr = (t) => { @@ -4247,7 +4247,7 @@ const dc = (t, e, r) => { throw v( "Compartment.prototype.constructor is not a valid constructor." ); -}, mo = (t, e) => { +}, ho = (t, e) => { const { execute: r, exportsProxy: n } = Is( Ce, bt, @@ -4294,7 +4294,7 @@ const dc = (t, e, r) => { throw v("first argument of import() must be a string"); return lr(this), jo( po(Ce, bt, this, t), - () => ({ namespace: mo( + () => ({ namespace: ho( /** @type {Compartment} */ this, t @@ -4309,7 +4309,7 @@ const dc = (t, e, r) => { importNow(t) { if (typeof t != "string") throw v("first argument of importNow() must be a string"); - return lr(this), tc(Ce, bt, this, t), mo( + return lr(this), tc(Ce, bt, this, t), ho( /** @type {Compartment} */ this, t @@ -4339,9 +4339,9 @@ const dn = (t, e, r) => { __shimTransforms__: l = [], resolveHook: d, importHook: f, - importNowHook: m, + importNowHook: h, moduleMapHook: p, - importMetaHook: h + importMetaHook: m } = i, _ = [...u, ...l], E = new Pe(), T = new Pe(), N = new Pe(); for (const [B, H] of re(a || {})) { if (typeof H == "string") @@ -4380,10 +4380,10 @@ const dn = (t, e, r) => { safeEvaluate: D, resolveHook: d, importHook: f, - importNowHook: m, + importNowHook: h, moduleMap: a, moduleMapHook: p, - importMetaHook: h, + importMetaHook: m, moduleRecords: E, __shimTransforms__: l, deferredExports: N, @@ -4399,7 +4399,7 @@ function fc() { return arguments; } const pc = () => { - const t = ve.prototype.constructor, e = J(fc(), "callee"), r = e && e.get, n = ba(new pe()), o = j(n), a = Rr[To] && ya(/./), i = a && j(a), c = fa([]), u = j(c), l = j(Ws), d = ha(new Pe()), f = j(d), m = ga(new Ct()), p = j(m), h = j(u); + const t = ve.prototype.constructor, e = J(fc(), "callee"), r = e && e.get, n = ba(new pe()), o = j(n), a = Rr[To] && ya(/./), i = a && j(a), c = fa([]), u = j(c), l = j(Ws), d = ma(new Pe()), f = j(d), h = ga(new Ct()), p = j(h), m = j(u); function* _() { } const E = Qr(_), T = E.prototype; @@ -4410,7 +4410,7 @@ const pc = () => { ), D = x.prototype, B = D.prototype, H = j(B); async function K() { } - const ze = Qr(K), me = { + const ze = Qr(K), he = { "%InertFunction%": t, "%ArrayIteratorPrototype%": u, "%InertAsyncFunction%": ze, @@ -4420,7 +4420,7 @@ const pc = () => { "%AsyncIteratorPrototype%": H, "%Generator%": T, "%InertGeneratorFunction%": E, - "%IteratorPrototype%": h, + "%IteratorPrototype%": m, "%MapIteratorPrototype%": f, "%RegExpStringIteratorPrototype%": i, "%SetIteratorPrototype%": p, @@ -4429,21 +4429,21 @@ const pc = () => { "%TypedArray%": l, "%InertCompartment%": jn }; - return k.Iterator && (me["%IteratorHelperPrototype%"] = j( + return k.Iterator && (he["%IteratorHelperPrototype%"] = j( // eslint-disable-next-line @endo/no-polymorphic-call k.Iterator.from([]).take(0) - ), me["%WrapForValidIteratorPrototype%"] = j( + ), he["%WrapForValidIteratorPrototype%"] = j( // eslint-disable-next-line @endo/no-polymorphic-call k.Iterator.from({ next() { } }) - )), k.AsyncIterator && (me["%AsyncIteratorHelperPrototype%"] = j( + )), k.AsyncIterator && (he["%AsyncIteratorHelperPrototype%"] = j( // eslint-disable-next-line @endo/no-polymorphic-call k.AsyncIterator.from([]).take(0) - ), me["%WrapForValidAsyncIteratorPrototype%"] = j( + ), he["%WrapForValidAsyncIteratorPrototype%"] = j( // eslint-disable-next-line @endo/no-polymorphic-call k.AsyncIterator.from({ next() { } }) - )), me; + )), he; }, Cs = (t, e) => { if (e !== "safe" && e !== "unsafe") throw v(`unrecognized fakeHardenOption ${e}`); @@ -4453,7 +4453,7 @@ const pc = () => { return r.isFake = !0, y(r); }; y(Cs); -const mc = () => { +const hc = () => { const t = Et, e = t.prototype, r = Sa(Et, void 0); F(e, { constructor: { @@ -4463,20 +4463,20 @@ const mc = () => { }); const n = re( Ze(t) - ), o = ht( + ), o = mt( se(n, ([a, i]) => [ a, { ...i, configurable: !0 } ]) ); return F(r, o), { "%SharedSymbol%": r }; -}, hc = (t) => { +}, mc = (t) => { try { return t(), !1; } catch { return !0; } -}, ho = (t, e, r) => { +}, mo = (t, e, r) => { if (t === void 0) return !1; const n = J(t, e); @@ -4489,18 +4489,18 @@ const mc = () => { if (ne(a, c, [i]), c[e] !== i) return !1; const u = { __proto__: t }; - return ne(a, u, [i]), u[e] !== i || !hc(() => ne(a, t, [r])) || "originalValue" in o || n.configurable === !1 ? !1 : (M(t, e, { + return ne(a, u, [i]), u[e] !== i || !mc(() => ne(a, t, [r])) || "originalValue" in o || n.configurable === !1 ? !1 : (M(t, e, { value: r, writable: !0, enumerable: n.enumerable, configurable: !0 }), !0); }, gc = (t) => { - ho( + mo( t["%IteratorPrototype%"], "constructor", t.Iterator - ), ho( + ), mo( t["%IteratorPrototype%"], qe, "Iterator" @@ -4550,10 +4550,10 @@ const yc = Ba(), vc = () => { /** @param {string} debugName */ (Be) => Be !== "" ), - __hardenTaming__: m = le("LOCKDOWN_HARDEN_TAMING", "safe"), + __hardenTaming__: h = le("LOCKDOWN_HARDEN_TAMING", "safe"), dateTaming: p = "safe", // deprecated - mathTaming: h = "safe", + mathTaming: m = "safe", // deprecated ..._ } = t; @@ -4573,17 +4573,17 @@ const yc = Ba(), vc = () => { "Already locked down but not by this SES instance (SES_MULTIPLE_INSTANCES)" ); xi(l); - const N = xs(), { addIntrinsics: x, completePrototypes: D, finalIntrinsics: B } = as(), H = Cs(yc, m); - x({ harden: H }), x(Ja()), x(Xa(p)), x(Bi(e, u)), x(Qa(h)), x(ei(o)), x(mc()), x(pc()), D(); + const N = xs(), { addIntrinsics: x, completePrototypes: D, finalIntrinsics: B } = as(), H = Cs(yc, h); + x({ harden: H }), x(Ja()), x(Xa(p)), x(Bi(e, u)), x(Qa(m)), x(ei(o)), x(hc()), x(pc()), D(); const K = B(), ze = { __proto__: null }; typeof k.Buffer == "function" && (ze.Buffer = k.Buffer); - let me; - e !== "unsafe" && (me = K["%InitialGetStackString%"]); + let he; + e !== "unsafe" && (he = K["%InitialGetStackString%"]); const Ge = Ai( i, r, n, - me + he ); if (k.console = /** @type {Console} */ Ge.console, typeof /** @type {any} */ @@ -4660,8 +4660,8 @@ k[wc] = bc; const Ec = (t, e) => { let r = { x: 0, y: 0 }, n = { x: 0, y: 0 }, o = { x: 0, y: 0 }; const a = (u) => { - const { clientX: l, clientY: d } = u, f = l - o.x + n.x, m = d - o.y + n.y; - r = { x: f, y: m }, t.style.transform = `translate(${f}px, ${m}px)`, e == null || e(); + const { clientX: l, clientY: d } = u, f = l - o.x + n.x, h = d - o.y + n.y; + r = { x: f, y: h }, t.style.transform = `translate(${f}px, ${h}px)`, e == null || e(); }, i = () => { document.removeEventListener("mousemove", a), document.removeEventListener("mouseup", i); }, c = (u) => { @@ -5034,7 +5034,7 @@ class Q { } const I = Object.freeze({ status: "aborted" -}), wt = (t) => ({ status: "dirty", value: t }), ae = (t) => ({ status: "valid", value: t }), pn = (t) => t.status === "aborted", mn = (t) => t.status === "dirty", jt = (t) => t.status === "valid", Zt = (t) => typeof Promise < "u" && t instanceof Promise; +}), wt = (t) => ({ status: "dirty", value: t }), ae = (t) => ({ status: "valid", value: t }), pn = (t) => t.status === "aborted", hn = (t) => t.status === "dirty", jt = (t) => t.status === "valid", Zt = (t) => typeof Promise < "u" && t instanceof Promise; function kr(t, e, r, n) { if (typeof e == "function" ? t !== e || !n : !e.has(t)) throw new TypeError("Cannot read private member from an object whose class did not declare it"); @@ -6305,10 +6305,10 @@ class U extends $ { return o.common.async ? Promise.resolve().then(async () => { const l = []; for (const d of u) { - const f = await d.key, m = await d.value; + const f = await d.key, h = await d.value; l.push({ key: f, - value: m, + value: h, alwaysSet: d.alwaysSet }); } @@ -6665,14 +6665,14 @@ class Zr extends $ { }); } } -function hn(t, e) { +function mn(t, e) { const r = Ve(t), n = Ve(e); if (t === e) return { valid: !0, data: t }; if (r === w.object && n === w.object) { const o = O.objectKeys(e), a = O.objectKeys(t).filter((c) => o.indexOf(c) !== -1), i = { ...t, ...e }; for (const c of a) { - const u = hn(t[c], e[c]); + const u = mn(t[c], e[c]); if (!u.valid) return { valid: !1 }; i[c] = u.data; @@ -6683,7 +6683,7 @@ function hn(t, e) { return { valid: !1 }; const o = []; for (let a = 0; a < t.length; a++) { - const i = t[a], c = e[a], u = hn(i, c); + const i = t[a], c = e[a], u = mn(i, c); if (!u.valid) return { valid: !1 }; o.push(u.data); @@ -6697,8 +6697,8 @@ class Vt extends $ { const { status: r, ctx: n } = this._processInputParams(e), o = (a, i) => { if (pn(a) || pn(i)) return I; - const c = hn(a.value, i.value); - return c.valid ? ((mn(a) || mn(i)) && r.dirty(), { status: r.value, value: c.data }) : (b(n, { + const c = mn(a.value, i.value); + return c.valid ? ((hn(a) || hn(i)) && r.dirty(), { status: r.value, value: c.data }) : (b(n, { code: g.invalid_intersection_types }), I); }; @@ -6869,7 +6869,7 @@ Ar.create = (t, e, r) => new Ar({ typeName: A.ZodMap, ...C(r) }); -class mt extends $ { +class ht extends $ { _parse(e) { const { status: r, ctx: n } = this._processInputParams(e); if (n.parsedType !== w.set) @@ -6908,13 +6908,13 @@ class mt extends $ { return n.common.async ? Promise.all(c).then((u) => i(u)) : i(c); } min(e, r) { - return new mt({ + return new ht({ ...this._def, minSize: { value: e, message: S.toString(r) } }); } max(e, r) { - return new mt({ + return new ht({ ...this._def, maxSize: { value: e, message: S.toString(r) } }); @@ -6926,7 +6926,7 @@ class mt extends $ { return this.min(1, e); } } -mt.create = (t, e) => new mt({ +ht.create = (t, e) => new ht({ valueType: t, minSize: null, maxSize: null, @@ -7474,7 +7474,7 @@ var A; })(A || (A = {})); const Vc = (t, e = { message: `Input not instance of ${t.name}` -}) => Ds((r) => r instanceof t, e), Us = ke.create, js = Xe.create, Wc = Ir.create, qc = Qe.create, Zs = zt.create, Kc = pt.create, Yc = Pr.create, Jc = Gt.create, Xc = Bt.create, Qc = At.create, el = dt.create, tl = je.create, rl = Tr.create, nl = Te.create, ol = U.create, sl = U.strictCreate, al = Ht.create, il = Zr.create, cl = Vt.create, ll = Oe.create, ul = Wt.create, dl = Ar.create, fl = mt.create, pl = xt.create, ml = qt.create, hl = Kt.create, gl = et.create, yl = Yt.create, vl = It.create, bo = Ae.create, _l = Ne.create, bl = tt.create, wl = Ae.createWithPreprocess, El = sr.create, Sl = () => Us().optional(), xl = () => js().optional(), kl = () => Zs().optional(), Pl = { +}) => Ds((r) => r instanceof t, e), Us = ke.create, js = Xe.create, Wc = Ir.create, qc = Qe.create, Zs = zt.create, Kc = pt.create, Yc = Pr.create, Jc = Gt.create, Xc = Bt.create, Qc = At.create, el = dt.create, tl = je.create, rl = Tr.create, nl = Te.create, ol = U.create, sl = U.strictCreate, al = Ht.create, il = Zr.create, cl = Vt.create, ll = Oe.create, ul = Wt.create, dl = Ar.create, fl = ht.create, pl = xt.create, hl = qt.create, ml = Kt.create, gl = et.create, yl = Yt.create, vl = It.create, bo = Ae.create, _l = Ne.create, bl = tt.create, wl = Ae.createWithPreprocess, El = sr.create, Sl = () => Us().optional(), xl = () => js().optional(), kl = () => Zs().optional(), Pl = { string: (t) => ke.create({ ...t, coerce: !0 }), number: (t) => Xe.create({ ...t, coerce: !0 }), boolean: (t) => zt.create({ @@ -7497,7 +7497,7 @@ var Z = /* @__PURE__ */ Object.freeze({ DIRTY: wt, OK: ae, isAborted: pn, - isDirty: mn, + isDirty: hn, isValid: jt, isAsync: Zt, get util() { @@ -7530,7 +7530,7 @@ var Z = /* @__PURE__ */ Object.freeze({ ZodTuple: Oe, ZodRecord: Wt, ZodMap: Ar, - ZodSet: mt, + ZodSet: ht, ZodFunction: xt, ZodLazy: qt, ZodLiteral: Kt, @@ -7567,8 +7567,8 @@ var Z = /* @__PURE__ */ Object.freeze({ function: pl, instanceof: Vc, intersection: cl, - lazy: ml, - literal: hl, + lazy: hl, + literal: ml, map: dl, nan: Wc, nativeEnum: yl, @@ -7619,8 +7619,8 @@ function Il(t, e, r, n) { `${l.inlineEnd}px` ); const d = window.innerWidth - l.inlineEnd, f = window.innerHeight - l.blockStart; - let m = Math.min((n == null ? void 0 : n.width) || c, d), p = Math.min((n == null ? void 0 : n.height) || u, f); - return m = Math.max(m, a), p = Math.max(p, i), o.setAttribute("title", t), o.setAttribute("iframe-src", e), o.setAttribute("width", String(m)), o.setAttribute("height", String(p)), document.body.appendChild(o), o; + let h = Math.min((n == null ? void 0 : n.width) || c, d), p = Math.min((n == null ? void 0 : n.height) || u, f); + return h = Math.max(h, a), p = Math.max(p, i), o.setAttribute("title", t), o.setAttribute("iframe-src", e), o.setAttribute("width", String(h)), o.setAttribute("height", String(p)), document.body.appendChild(o), o; } const Cl = Z.function().args( Z.string(), @@ -7713,15 +7713,38 @@ function Ml(t, e) { } }, utils: { + geometry: { + center(i) { + return window.app.plugins.public_utils.centerShapes(i); + } + }, types: { - isText(i) { - return i.type === "text"; + isFrame(i) { + return i.type === "frame"; + }, + isGroup(i) { + return i.type === "group"; + }, + isMask(i) { + return i.type === "group" && i.isMask(); + }, + isBool(i) { + return i.type === "bool"; }, isRectangle(i) { return i.type === "rect"; }, - isFrame(i) { - return i.type === "frame"; + isPath(i) { + return i.type === "path"; + }, + isText(i) { + return i.type === "text"; + }, + isEllipse(i) { + return i.type === "circle"; + }, + isSVG(i) { + return i.type === "svg-raw"; } } }, @@ -7755,6 +7778,9 @@ function Ml(t, e) { get library() { return t.library; }, + get fonts() { + return t.fonts; + }, get currentUser() { return t.currentUser; }, @@ -7867,6 +7893,10 @@ repairIntrinsics({ }); const Eo = globalThis; Eo.initPluginsRuntime = (t) => { - console.log("%c[PLUGINS] Initialize runtime", "color: #008d7c"), Fl(t), Eo.ɵcontext = t("TEST"), globalThis.ɵloadPlugin = Gs, globalThis.ɵloadPluginByUrl = Dl; + try { + console.log("%c[PLUGINS] Initialize runtime", "color: #008d7c"), Fl(t), Eo.ɵcontext = t("TEST"), globalThis.ɵloadPlugin = Gs, globalThis.ɵloadPluginByUrl = Dl; + } catch (e) { + console.error(e); + } }; //# sourceMappingURL=index.js.map From 31818ec365b9c88efdf26b8266e22b67d499ec50 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Fri, 21 Jun 2024 09:32:46 +0200 Subject: [PATCH 227/476] :sparkles: Replace other summary metrics with histogram --- backend/src/app/main.clj | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/backend/src/app/main.clj b/backend/src/app/main.clj index b0c6e0a4c7..5a959d39b7 100644 --- a/backend/src/app/main.clj +++ b/backend/src/app/main.clj @@ -102,13 +102,13 @@ {::mdef/name "penpot_tasks_timing" ::mdef/help "Background tasks timing (milliseconds)." ::mdef/labels ["name"] - ::mdef/type :summary} + ::mdef/type :histogram} :redis-eval-timing {::mdef/name "penpot_redis_eval_timing" ::mdef/help "Redis EVAL commands execution timings (ms)" ::mdef/labels ["name"] - ::mdef/type :summary} + ::mdef/type :histogram} :rpc-climit-queue {::mdef/name "penpot_rpc_climit_queue" @@ -144,7 +144,7 @@ {::mdef/name "penpot_audit_http_handler_timing" ::mdef/help "Summary of the time between queuing and executing on the audit log http handler" ::mdef/labels [] - ::mdef/type :summary} + ::mdef/type :histogram} :executors-active-threads {::mdef/name "penpot_executors_active_threads" From fb1429956ab734ce28e740e98e3b22846df36dbe Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Fri, 21 Jun 2024 12:44:35 +0200 Subject: [PATCH 228/476] :sparkles: Changed order of plugins initialization --- frontend/src/app/main.cljs | 6 +++--- frontend/src/app/plugins.cljs | 27 ++++++++++++++++----------- frontend/src/features.cljs | 2 +- 3 files changed, 20 insertions(+), 15 deletions(-) diff --git a/frontend/src/app/main.cljs b/frontend/src/app/main.cljs index 5227153315..3cbbe0d701 100644 --- a/frontend/src/app/main.cljs +++ b/frontend/src/app/main.cljs @@ -105,8 +105,7 @@ (rx/map deref) (rx/filter du/is-authenticated?) (rx/take 1) - (rx/map #(ws/initialize)) - (rx/tap #(plugins/init!))))))) + (rx/map #(ws/initialize))))))) (defn ^:export init [] @@ -116,7 +115,8 @@ (cur/init-styles) (thr/init!) (init-ui) - (st/emit! (initialize))) + (st/emit! (plugins/initialize) + (initialize))) (defn ^:export reinit ([] diff --git a/frontend/src/app/plugins.cljs b/frontend/src/app/plugins.cljs index 551591b4ae..36346de271 100644 --- a/frontend/src/app/plugins.cljs +++ b/frontend/src/app/plugins.cljs @@ -16,15 +16,20 @@ [beicon.v2.core :as rx] [potok.v2.core :as ptk])) -(defn init! +(defn init-plugins-runtime! [] - (->> st/stream - (rx/filter (ptk/type? ::features/initialize)) - (rx/take 1) - ;; We need to wait to the init event to finish - (rx/observe-on :async) - (rx/subs! - (fn [] - (when (features/active-feature? @st/state "plugins/runtime") - (when-let [init-runtime (obj/get global "initPluginsRuntime")] - (init-runtime (fn [plugin-id] (api/create-context plugin-id))))))))) + (when-let [init-runtime (obj/get global "initPluginsRuntime")] + (init-runtime (fn [plugin-id] (api/create-context plugin-id))))) + +(defn initialize + [] + (ptk/reify ::initialize + ptk/WatchEvent + (watch [_ _ stream] + (->> stream + (rx/filter (ptk/type? ::features/initialize)) + (rx/observe-on :async) + (rx/filter #(features/active-feature? @st/state "plugins/runtime")) + (rx/take 1) + (rx/tap init-plugins-runtime!) + (rx/ignore))))) diff --git a/frontend/src/features.cljs b/frontend/src/features.cljs index 5b111096ff..0fa5ec46ba 100644 --- a/frontend/src/features.cljs +++ b/frontend/src/features.cljs @@ -27,6 +27,6 @@ (defn ^:export plugins [] (st/emit! (features/enable-feature "plugins/runtime")) - (plugins/init!) + (plugins/init-plugins-runtime!) nil) From 4b67c0593d596d7e259c6b77684e5b65b81ad789 Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Fri, 21 Jun 2024 12:44:58 +0200 Subject: [PATCH 229/476] :sparkles: Upload media with data in plugins --- frontend/src/app/main/data/workspace/media.cljs | 2 +- frontend/src/app/plugins/api.cljs | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/frontend/src/app/main/data/workspace/media.cljs b/frontend/src/app/main/data/workspace/media.cljs index 8abf32dd83..d97d0b8035 100644 --- a/frontend/src/app/main/data/workspace/media.cljs +++ b/frontend/src/app/main/data/workspace/media.cljs @@ -131,7 +131,7 @@ (rx/merge-map svg->clj) (rx/tap on-svg))))) -(defn- process-blobs +(defn process-blobs [{:keys [file-id local? name blobs force-media on-image on-svg]}] (letfn [(svg-blob? [blob] (and (not force-media) diff --git a/frontend/src/app/plugins/api.cljs b/frontend/src/app/plugins/api.cljs index 790197e648..4de6700f8a 100644 --- a/frontend/src/app/plugins/api.cljs +++ b/frontend/src/app/plugins/api.cljs @@ -124,6 +124,22 @@ (rx/take 1) (rx/subs! resolve reject))))))) + (uploadMediaData + [_ name data mime-type] + (let [file-id (:current-file-id @st/state)] + (p/create + (fn [resolve reject] + (->> (dwm/process-blobs + {:file-id file-id + :local? false + :name name + :blobs [(js/Blob. #js [data] #js {:type mime-type})] + :on-image identity + :on-svg identity}) + (rx/take 1) + (rx/map u/to-js) + (rx/subs! resolve reject)))))) + (group [_ shapes] (cond From 7b8d1275833263a4557f3a896960e32a26bd1916 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Fri, 21 Jun 2024 11:47:26 +0200 Subject: [PATCH 230/476] :bug: Fix incorrect frame change detection on thumbnails generation --- .../app/main/data/workspace/thumbnails.cljs | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/frontend/src/app/main/data/workspace/thumbnails.cljs b/frontend/src/app/main/data/workspace/thumbnails.cljs index c4cde6e2de..ab28b902c8 100644 --- a/frontend/src/app/main/data/workspace/thumbnails.cljs +++ b/frontend/src/app/main/data/workspace/thumbnails.cljs @@ -10,6 +10,7 @@ [app.common.files.helpers :as cfh] [app.common.logging :as l] [app.common.thumbnails :as thc] + [app.common.uuid :as uuid] [app.config :as cf] [app.main.data.changes :as dch] [app.main.data.persistence :as-alias dps] @@ -192,8 +193,8 @@ :mov-objects (->> (:shapes change) (map #(vector page-id %))) [])) - get-frame-id - (fn [[_ id]] + get-frame-ids + (fn get-frame-ids [id] (let [old-objects (wsh/lookup-data-objects old-data page-id) new-objects (wsh/lookup-data-objects new-data page-id) @@ -208,12 +209,21 @@ (conj old-frame-id) (cfh/root-frame? new-objects new-frame-id) - (conj new-frame-id))))] + (conj new-frame-id) + + (and (uuid? (:frame-id old-shape)) + (not= uuid/zero (:frame-id old-shape))) + (into (get-frame-ids (:frame-id old-shape))) + + (and (uuid? (:frame-id new-shape)) + (not= uuid/zero (:frame-id new-shape))) + (into (get-frame-ids (:frame-id new-shape))))))] (into #{} (comp (mapcat extract-ids) (filter (fn [[page-id']] (= page-id page-id'))) - (mapcat get-frame-id)) + (map (fn [[_ id]] id)) + (mapcat get-frame-ids)) changes))) (defn watch-state-changes From b25a9f8626a50c73b91374dedab8e3279c3c8cb9 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Fri, 21 Jun 2024 12:09:50 +0200 Subject: [PATCH 231/476] :bug: Return back to use blob uris for transient thumbnails --- .../app/main/data/workspace/thumbnails.cljs | 52 +++++++++---------- 1 file changed, 25 insertions(+), 27 deletions(-) diff --git a/frontend/src/app/main/data/workspace/thumbnails.cljs b/frontend/src/app/main/data/workspace/thumbnails.cljs index ab28b902c8..625c207c62 100644 --- a/frontend/src/app/main/data/workspace/thumbnails.cljs +++ b/frontend/src/app/main/data/workspace/thumbnails.cljs @@ -11,7 +11,6 @@ [app.common.logging :as l] [app.common.thumbnails :as thc] [app.common.uuid :as uuid] - [app.config :as cf] [app.main.data.changes :as dch] [app.main.data.persistence :as-alias dps] [app.main.data.workspace.notifications :as-alias wnt] @@ -20,7 +19,6 @@ [app.main.refs :as refs] [app.main.render :as render] [app.main.repo :as rp] - [app.util.http :as http] [app.util.queue :as q] [app.util.time :as tp] [app.util.timers :as tm] @@ -150,34 +148,34 @@ ptk/WatchEvent (watch [_ state stream] (l/dbg :hint "update thumbnail" :requester requester :object-id object-id :tag tag) - ;; Send the update to the back-end - (->> (request-thumbnail state file-id page-id frame-id tag) - (rx/mapcat (fn [blob] - ;; Send the data to backend - (let [params {:file-id file-id - :object-id object-id - :media blob - :tag (or tag "frame")}] - (rp/cmd! :create-file-object-thumbnail params)))) + (let [tp (tp/tpoint-ms)] + ;; Send the update to the back-end + (->> (request-thumbnail state file-id page-id frame-id tag) + (rx/mapcat (fn [blob] + (let [uri (wapi/create-uri blob) + params {:file-id file-id + :object-id object-id + :media blob + :tag (or tag "frame")}] - (rx/mapcat (fn [{:keys [object-id media-id]}] - (let [uri (cf/resolve-media media-id)] - ;; We perform this request just for - ;; populate the browser CACHE and avoid - ;; unnecesary image flickering - (->> (http/send! {:uri uri :method :get}) - (rx/map #(assoc-thumbnail object-id uri)))))) + (rx/merge + (rx/of (assoc-thumbnail object-id uri)) + (->> (rp/cmd! :create-file-object-thumbnail params) + (rx/catch rx/empty) + (rx/ignore)))))) - (rx/catch (fn [cause] - (.error js/console cause) - (rx/empty))) + (rx/catch (fn [cause] + (.error js/console cause) + (rx/empty))) - ;; We cancel all the stream if user starts editing while - ;; thumbnail is generating - (rx/take-until - (->> stream - (rx/filter (ptk/type? ::clear-thumbnail)) - (rx/filter #(= (deref %) object-id))))))))) + (rx/tap #(l/trc :hint "thumbnail updated" :elapsed (dm/str (tp) "ms"))) + + ;; We cancel all the stream if user starts editing while + ;; thumbnail is generating + (rx/take-until + (->> stream + (rx/filter (ptk/type? ::clear-thumbnail)) + (rx/filter #(= (deref %) object-id)))))))))) (defn- extract-root-frame-changes "Process a changes set in a commit to extract the frames that are changing" From 84ecb99400e41ee58fe680dbda17a84e508402ef Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Mon, 24 Jun 2024 09:57:44 +0200 Subject: [PATCH 232/476] :sparkles: Add some missing text properties in plugins --- frontend/src/app/plugins/shape.cljs | 63 ++++++++++++++++++++++++++++- 1 file changed, 62 insertions(+), 1 deletion(-) diff --git a/frontend/src/app/plugins/shape.cljs b/frontend/src/app/plugins/shape.cljs index df6b8d1234..a51ae5e6e4 100644 --- a/frontend/src/app/plugins/shape.cljs +++ b/frontend/src/app/plugins/shape.cljs @@ -229,6 +229,19 @@ :else (st/emit! (dwt/update-text-range id start end {:direction value}))))} + {:name "align" + :get #(let [range-data + (-> % u/proxy->shape :content (txt/content-range->text+styles start end))] + (->> range-data (map :text-align) mixed-value)) + :set + (fn [_ value] + (cond + (not (string? value)) + (u/display-not-valid :text-align value) + + :else + (st/emit! (dwt/update-text-range id start end {:text-align value}))))} + {:name "fills" :get #(let [range-data (-> % u/proxy->shape :content (txt/content-range->text+styles start end))] @@ -1253,7 +1266,55 @@ (u/display-not-valid :textTransform value) :else - (st/emit! (dwt/update-attrs id {:text-transform value})))))})) + (st/emit! (dwt/update-attrs id {:text-transform value})))))} + + {:name "textDecoration" + :get #(-> % u/proxy->shape text-props :text-decoration) + :set + (fn [self value] + (let [id (obj/get self "$id")] + (cond + (not (string? value)) + (u/display-not-valid :textDecoration value) + + :else + (st/emit! (dwt/update-attrs id {:text-decoration value})))))} + + {:name "direction" + :get #(-> % u/proxy->shape text-props :text-direction) + :set + (fn [self value] + (let [id (obj/get self "$id")] + (cond + (not (string? value)) + (u/display-not-valid :textDecoration value) + + :else + (st/emit! (dwt/update-attrs id {:text-decoration value})))))} + + {:name "align" + :get #(-> % u/proxy->shape text-props :text-align) + :set + (fn [self value] + (let [id (obj/get self "$id")] + (cond + (not (string? value)) + (u/display-not-valid :align value) + + :else + (st/emit! (dwt/update-attrs id {:text-align value})))))} + + {:name "verticalAlign" + :get #(-> % u/proxy->shape text-props :vertical-align) + :set + (fn [self value] + (let [id (obj/get self "$id")] + (cond + (not (string? value)) + (u/display-not-valid :verticalAlign value) + + :else + (st/emit! (dwt/update-attrs id {:vertical-align value})))))})) (cond-> (or (cfh/path-shape? data) (cfh/bool-shape? data)) (crc/add-properties! From 8ff00154585c9bc5b8e7ae139d21c1233768d205 Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Mon, 24 Jun 2024 12:31:33 +0200 Subject: [PATCH 233/476] :sparkles: Add to plugins connect and fetch libraries --- .../app/main/data/workspace/libraries.cljs | 26 +++++----- frontend/src/app/plugins/library.cljs | 47 +++++++++++++++++-- 2 files changed, 56 insertions(+), 17 deletions(-) diff --git a/frontend/src/app/main/data/workspace/libraries.cljs b/frontend/src/app/main/data/workspace/libraries.cljs index c9be059e2f..2064d43416 100644 --- a/frontend/src/app/main/data/workspace/libraries.cljs +++ b/frontend/src/app/main/data/workspace/libraries.cljs @@ -1281,18 +1281,20 @@ ptk/WatchEvent (watch [_ state _] (let [features (features/get-team-enabled-features state)] - (rx/merge - (->> (rp/cmd! :link-file-to-library {:file-id file-id :library-id library-id}) - (rx/ignore)) - (->> (rp/cmd! :get-file {:id library-id :features features}) - (rx/merge-map fpmap/resolve-file) - (rx/map (fn [file] - (fn [state] - (assoc-in state [:workspace-libraries library-id] file))))) - (->> (rp/cmd! :get-file-object-thumbnails {:file-id library-id :tag "component"}) - (rx/map (fn [thumbnails] - (fn [state] - (update state :workspace-thumbnails merge thumbnails)))))))))) + (rx/concat + (rx/merge + (->> (rp/cmd! :link-file-to-library {:file-id file-id :library-id library-id}) + (rx/ignore)) + (->> (rp/cmd! :get-file {:id library-id :features features}) + (rx/merge-map fpmap/resolve-file) + (rx/map (fn [file] + (fn [state] + (assoc-in state [:workspace-libraries library-id] file))))) + (->> (rp/cmd! :get-file-object-thumbnails {:file-id library-id :tag "component"}) + (rx/map (fn [thumbnails] + (fn [state] + (update state :workspace-thumbnails merge thumbnails)))))) + (rx/of (ptk/reify ::attach-library-finished))))))) (defn unlink-file-from-library [file-id library-id] diff --git a/frontend/src/app/plugins/library.cljs b/frontend/src/app/plugins/library.cljs index eb47da7133..227ca3eb56 100644 --- a/frontend/src/app/plugins/library.cljs +++ b/frontend/src/app/plugins/library.cljs @@ -20,10 +20,14 @@ [app.main.data.workspace :as dw] [app.main.data.workspace.libraries :as dwl] [app.main.data.workspace.texts :as dwt] + [app.main.repo :as rp] [app.main.store :as st] [app.plugins.shape :as shape] [app.plugins.utils :as u] - [app.util.object :as obj])) + [app.util.object :as obj] + [beicon.v2.core :as rx] + [potok.v2.core :as ptk] + [promesa.core :as p])) (declare lib-color-proxy) (declare lib-typography-proxy) @@ -744,7 +748,7 @@ (cr/add-properties! (Library. plugin-id file-id) {:name "$plugin" :enumerable false :get (constantly plugin-id)} - {:name "$file" :enumerable false :get (constantly file-id)} + {:name "$id" :enumerable false :get (constantly file-id)} {:name "id" :get #(-> % u/proxy->file :id str)} @@ -780,10 +784,43 @@ (deftype PenpotLibrarySubcontext [$plugin] Object - (find - [_ _name]) + (availableLibraries + [_] + (let [team-id (:current-team-id @st/state)] + (p/create + (fn [resolve reject] + (let [current-libs (into #{} (map first) (get @st/state :workspace-libraries))] + (->> (rp/cmd! :get-team-shared-files {:team-id team-id}) + (rx/map (fn [result] + (->> result + (filter #(not (contains? current-libs (:id %)))) + (map + (fn [{:keys [id name library-summary]}] + #js {:id (dm/str id) + :name name + :numColors (-> library-summary :colors :count) + :numComponents (-> library-summary :components :count) + :numTypographies (-> library-summary :typographies :count)})) + (apply array)))) + (rx/subs! resolve reject))))))) - (find [_])) + (connectLibrary + [_ library-id] + (p/create + (fn [resolve reject] + (cond + (not (string? library-id)) + (do (u/display-not-valid :connectLibrary library-id) + (reject nil)) + + :else + (let [file-id (:current-file-id @st/state) + library-id (uuid/uuid library-id)] + (->> st/stream + (rx/filter (ptk/type? ::dwl/attach-library-finished)) + (rx/take 1) + (rx/subs! #(resolve (library-proxy $plugin library-id)) reject)) + (st/emit! (dwl/link-file-to-library file-id library-id)))))))) (defn library-subcontext [plugin-id] From f86156b6198ba7946816ed400bc99bff28feec11 Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Mon, 24 Jun 2024 15:26:21 +0200 Subject: [PATCH 234/476] :sparkles: Plugins support for code generation --- frontend/src/app/plugins/api.cljs | 49 ++++++++++++++++++- frontend/src/app/plugins/utils.cljs | 6 ++- frontend/src/app/util/code_gen.cljs | 12 +++-- frontend/src/app/util/code_gen/style_css.cljs | 4 +- 4 files changed, 61 insertions(+), 10 deletions(-) diff --git a/frontend/src/app/plugins/api.cljs b/frontend/src/app/plugins/api.cljs index 4de6700f8a..6ebdfa441b 100644 --- a/frontend/src/app/plugins/api.cljs +++ b/frontend/src/app/plugins/api.cljs @@ -244,7 +244,54 @@ (let [ids (into #{} (map #(obj/get % "$id")) shapes) id-ret (atom nil)] (st/emit! (dwb/create-bool bool-type ids {:id-ret id-ret})) - (shape/shape-proxy $plugin @id-ret)))))) + (shape/shape-proxy $plugin @id-ret))))) + + (generateMarkup + [_ shapes options] + (let [type (d/nilv (obj/get options "type") "html")] + (cond + (or (not (array? shapes)) (not (every? shape/shape-proxy? shapes))) + (u/display-not-valid :generateMarkup-shapes shapes) + + (and (some? type) (not (contains? #{"html" "svg"} type))) + (u/display-not-valid :generateMarkup-type type) + + :else + (let [objects (u/locate-objects) + shapes (into [] (map u/proxy->shape) shapes)] + (cg/generate-markup-code objects type shapes))))) + + (generateStyle + [_ shapes options] + (let [type (d/nilv (obj/get options "type") "css") + prelude? (d/nilv (obj/get options "withPrelude") false) + children? (d/nilv (obj/get options "includeChildren") true)] + (cond + (or (not (array? shapes)) (not (every? shape/shape-proxy? shapes))) + (u/display-not-valid :generateStyle-shapes shapes) + + (and (some? type) (not (contains? #{"css"} type))) + (u/display-not-valid :generateStyle-type type) + + (and (some? prelude?) (not (boolean? prelude?))) + (u/display-not-valid :generateStyle-withPrelude prelude?) + + (and (some? children?) (not (boolean? children?))) + (u/display-not-valid :generateStyle-includeChildren children?) + + :else + (let [objects (u/locate-objects) + shapes + (->> (into #{} (map u/proxy->shape) shapes) + (cfh/clean-loops objects)) + + shapes-with-children + (if children? + (->> shapes + (mapcat #(cfh/get-children-with-self objects (:id %)))) + shapes)] + (cg/generate-style-code + objects type shapes shapes-with-children {:with-prelude? prelude?})))))) (defn create-context [plugin-id] diff --git a/frontend/src/app/plugins/utils.cljs b/frontend/src/app/plugins/utils.cljs index da600d4476..ab3015a0b5 100644 --- a/frontend/src/app/plugins/utils.cljs +++ b/frontend/src/app/plugins/utils.cljs @@ -32,8 +32,10 @@ (dm/get-in (locate-file file-id) [:data :pages-index id])) (defn locate-objects - [file-id page-id] - (:objects (locate-page file-id page-id))) + ([] + (locate-objects (:current-file-id @st/state) (:current-page-id @st/state))) + ([file-id page-id] + (:objects (locate-page file-id page-id)))) (defn locate-shape [file-id page-id id] diff --git a/frontend/src/app/util/code_gen.cljs b/frontend/src/app/util/code_gen.cljs index 1c8e255b9c..99c5a4e89c 100644 --- a/frontend/src/app/util/code_gen.cljs +++ b/frontend/src/app/util/code_gen.cljs @@ -19,8 +19,10 @@ (generate-markup objects shapes))) (defn generate-style-code - [objects type root-shapes all-shapes] - (let [generate-style - (case type - "css" css/generate-style)] - (generate-style objects root-shapes all-shapes))) + ([objects type root-shapes all-shapes] + (generate-style-code objects type root-shapes all-shapes nil)) + ([objects type root-shapes all-shapes options] + (let [generate-style + (case type + "css" css/generate-style)] + (generate-style objects root-shapes all-shapes options)))) diff --git a/frontend/src/app/util/code_gen/style_css.cljs b/frontend/src/app/util/code_gen/style_css.cljs index 3a1ace59f6..8ebc10be21 100644 --- a/frontend/src/app/util/code_gen/style_css.cljs +++ b/frontend/src/app/util/code_gen/style_css.cljs @@ -300,10 +300,10 @@ body { (defn generate-style ([objects root-shapes all-shapes] (generate-style objects root-shapes all-shapes nil)) - ([objects root-shapes all-shapes options] + ([objects root-shapes all-shapes {:keys [with-prelude?] :or {with-prelude? true} :as options}] (let [options (assoc options :root-shapes (into #{} (map :id) root-shapes))] (dm/str - prelude + (if with-prelude? prelude "") (->> all-shapes (keep #(get-shape-css-selector % objects options)) (str/join "\n\n")))))) From 5771f2f8aadb5e469b49bc5baa1ca0f77b6b794c Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Mon, 24 Jun 2024 15:26:47 +0200 Subject: [PATCH 235/476] :sparkles: Plugins retrieve selection colors --- common/src/app/common/types/color.cljc | 122 ++++++++++++++++- .../options/menus/color_selection.cljs | 123 +----------------- frontend/src/app/plugins/api.cljs | 34 +++++ 3 files changed, 157 insertions(+), 122 deletions(-) diff --git a/common/src/app/common/types/color.cljc b/common/src/app/common/types/color.cljc index c8a1ef67bd..dea0ee6fc1 100644 --- a/common/src/app/common/types/color.cljc +++ b/common/src/app/common/types/color.cljc @@ -7,6 +7,7 @@ (ns app.common.types.color (:require [app.common.data :as d] + [app.common.data.macros :as dm] [app.common.schema :as sm] [app.common.schema.openapi :as-alias oapi] [app.common.text :as txt] @@ -14,7 +15,8 @@ [app.common.types.color.gradient :as-alias color-gradient] [app.common.types.color.gradient.stop :as-alias color-gradient-stop] [app.common.uuid :as uuid] - [clojure.test.check.generators :as tgen])) + [clojure.test.check.generators :as tgen] + [cuerdas.core :as str])) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; SCHEMAS @@ -383,3 +385,121 @@ (and (some? (:color c1)) (some? (:color c2)) (= (:color c1) (:color c2))))) + + +(defn stroke->color-att + [stroke file-id shared-libs] + (let [color-file-id (:stroke-color-ref-file stroke) + color-id (:stroke-color-ref-id stroke) + shared-libs-colors (dm/get-in shared-libs [color-file-id :data :colors]) + is-shared? (contains? shared-libs-colors color-id) + has-color? (or (not (nil? (:stroke-color stroke))) (not (nil? (:stroke-color-gradient stroke)))) + attrs (if (or is-shared? (= color-file-id file-id)) + (d/without-nils {:color (str/lower (:stroke-color stroke)) + :opacity (:stroke-opacity stroke) + :id color-id + :file-id color-file-id + :gradient (:stroke-color-gradient stroke)}) + (d/without-nils {:color (str/lower (:stroke-color stroke)) + :opacity (:stroke-opacity stroke) + :gradient (:stroke-color-gradient stroke)}))] + (when has-color? + {:attrs attrs + :prop :stroke + :shape-id (:shape-id stroke) + :index (:index stroke)}))) + +(defn shadow->color-att + [shadow file-id shared-libs] + (let [color-file-id (dm/get-in shadow [:color :file-id]) + color-id (dm/get-in shadow [:color :id]) + shared-libs-colors (dm/get-in shared-libs [color-file-id :data :colors]) + is-shared? (contains? shared-libs-colors color-id) + attrs (if (or is-shared? (= color-file-id file-id)) + (d/without-nils {:color (str/lower (dm/get-in shadow [:color :color])) + :opacity (dm/get-in shadow [:color :opacity]) + :id color-id + :file-id (dm/get-in shadow [:color :file-id]) + :gradient (dm/get-in shadow [:color :gradient])}) + (d/without-nils {:color (str/lower (dm/get-in shadow [:color :color])) + :opacity (dm/get-in shadow [:color :opacity]) + :gradient (dm/get-in shadow [:color :gradient])}))] + + + {:attrs attrs + :prop :shadow + :shape-id (:shape-id shadow) + :index (:index shadow)})) + +(defn text->color-att + [fill file-id shared-libs] + (let [color-file-id (:fill-color-ref-file fill) + color-id (:fill-color-ref-id fill) + shared-libs-colors (dm/get-in shared-libs [color-file-id :data :colors]) + is-shared? (contains? shared-libs-colors color-id) + attrs (if (or is-shared? (= color-file-id file-id)) + (d/without-nils {:color (str/lower (:fill-color fill)) + :opacity (:fill-opacity fill) + :id color-id + :file-id color-file-id + :gradient (:fill-color-gradient fill)}) + (d/without-nils {:color (str/lower (:fill-color fill)) + :opacity (:fill-opacity fill) + :gradient (:fill-color-gradient fill)}))] + {:attrs attrs + :prop :content + :shape-id (:shape-id fill) + :index (:index fill)})) + +(defn treat-node + [node shape-id] + (map-indexed #(assoc %2 :shape-id shape-id :index %1) node)) + +(defn extract-text-colors + [text file-id shared-libs] + (let [content (txt/node-seq txt/is-text-node? (:content text)) + content-filtered (map :fills content) + indexed (mapcat #(treat-node % (:id text)) content-filtered)] + (map #(text->color-att % file-id shared-libs) indexed))) + +(defn fill->color-att + [fill file-id shared-libs] + (let [color-file-id (:fill-color-ref-file fill) + color-id (:fill-color-ref-id fill) + shared-libs-colors (dm/get-in shared-libs [color-file-id :data :colors]) + is-shared? (contains? shared-libs-colors color-id) + has-color? (or (not (nil? (:fill-color fill))) (not (nil? (:fill-color-gradient fill)))) + attrs (if (or is-shared? (= color-file-id file-id)) + (d/without-nils {:color (str/lower (:fill-color fill)) + :opacity (:fill-opacity fill) + :id color-id + :file-id color-file-id + :gradient (:fill-color-gradient fill)}) + (d/without-nils {:color (str/lower (:fill-color fill)) + :opacity (:fill-opacity fill) + :gradient (:fill-color-gradient fill)}))] + (when has-color? + {:attrs attrs + :prop :fill + :shape-id (:shape-id fill) + :index (:index fill)}))) + +(defn extract-all-colors + [shapes file-id shared-libs] + (reduce + (fn [list shape] + (let [fill-obj (map-indexed #(assoc %2 :shape-id (:id shape) :index %1) (:fills shape)) + stroke-obj (map-indexed #(assoc %2 :shape-id (:id shape) :index %1) (:strokes shape)) + shadow-obj (map-indexed #(assoc %2 :shape-id (:id shape) :index %1) (:shadow shape))] + (if (= :text (:type shape)) + (-> list + (into (map #(stroke->color-att % file-id shared-libs)) stroke-obj) + (into (map #(shadow->color-att % file-id shared-libs)) shadow-obj) + (into (extract-text-colors shape file-id shared-libs))) + + (-> list + (into (map #(fill->color-att % file-id shared-libs)) fill-obj) + (into (map #(stroke->color-att % file-id shared-libs)) stroke-obj) + (into (map #(shadow->color-att % file-id shared-libs)) shadow-obj))))) + [] + shapes)) diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs b/frontend/src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs index 88f0ef0b40..b0c5b0cdc3 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs @@ -9,143 +9,24 @@ (:require [app.common.data :as d] [app.common.data.macros :as dm] - [app.common.text :as txt] + [app.common.types.color :as ctc] [app.main.data.workspace.colors :as dc] [app.main.data.workspace.selection :as dws] [app.main.store :as st] [app.main.ui.components.title-bar :refer [title-bar]] [app.main.ui.workspace.sidebar.options.rows.color-row :refer [color-row]] [app.util.i18n :as i18n :refer [tr]] - [cuerdas.core :as str] [rumext.v2 :as mf])) -(defn fill->color-att - [fill file-id shared-libs] - (let [color-file-id (:fill-color-ref-file fill) - color-id (:fill-color-ref-id fill) - shared-libs-colors (dm/get-in shared-libs [color-file-id :data :colors]) - is-shared? (contains? shared-libs-colors color-id) - has-color? (or (not (nil? (:fill-color fill))) (not (nil? (:fill-color-gradient fill)))) - attrs (if (or is-shared? (= color-file-id file-id)) - (d/without-nils {:color (str/lower (:fill-color fill)) - :opacity (:fill-opacity fill) - :id color-id - :file-id color-file-id - :gradient (:fill-color-gradient fill)}) - (d/without-nils {:color (str/lower (:fill-color fill)) - :opacity (:fill-opacity fill) - :gradient (:fill-color-gradient fill)}))] - (when has-color? - {:attrs attrs - :prop :fill - :shape-id (:shape-id fill) - :index (:index fill)}))) - -(defn stroke->color-att - [stroke file-id shared-libs] - (let [color-file-id (:stroke-color-ref-file stroke) - color-id (:stroke-color-ref-id stroke) - shared-libs-colors (dm/get-in shared-libs [color-file-id :data :colors]) - is-shared? (contains? shared-libs-colors color-id) - has-color? (or (not (nil? (:stroke-color stroke))) (not (nil? (:stroke-color-gradient stroke)))) - attrs (if (or is-shared? (= color-file-id file-id)) - (d/without-nils {:color (str/lower (:stroke-color stroke)) - :opacity (:stroke-opacity stroke) - :id color-id - :file-id color-file-id - :gradient (:stroke-color-gradient stroke)}) - (d/without-nils {:color (str/lower (:stroke-color stroke)) - :opacity (:stroke-opacity stroke) - :gradient (:stroke-color-gradient stroke)}))] - (when has-color? - {:attrs attrs - :prop :stroke - :shape-id (:shape-id stroke) - :index (:index stroke)}))) - -(defn shadow->color-att - [shadow file-id shared-libs] - (let [color-file-id (dm/get-in shadow [:color :file-id]) - color-id (dm/get-in shadow [:color :id]) - shared-libs-colors (dm/get-in shared-libs [color-file-id :data :colors]) - is-shared? (contains? shared-libs-colors color-id) - attrs (if (or is-shared? (= color-file-id file-id)) - (d/without-nils {:color (str/lower (dm/get-in shadow [:color :color])) - :opacity (dm/get-in shadow [:color :opacity]) - :id color-id - :file-id (dm/get-in shadow [:color :file-id]) - :gradient (dm/get-in shadow [:color :gradient])}) - (d/without-nils {:color (str/lower (dm/get-in shadow [:color :color])) - :opacity (dm/get-in shadow [:color :opacity]) - :gradient (dm/get-in shadow [:color :gradient])}))] - - - {:attrs attrs - :prop :shadow - :shape-id (:shape-id shadow) - :index (:index shadow)})) - -(defn text->color-att - [fill file-id shared-libs] - (let [color-file-id (:fill-color-ref-file fill) - color-id (:fill-color-ref-id fill) - shared-libs-colors (dm/get-in shared-libs [color-file-id :data :colors]) - is-shared? (contains? shared-libs-colors color-id) - attrs (if (or is-shared? (= color-file-id file-id)) - (d/without-nils {:color (str/lower (:fill-color fill)) - :opacity (:fill-opacity fill) - :id color-id - :file-id color-file-id - :gradient (:fill-color-gradient fill)}) - (d/without-nils {:color (str/lower (:fill-color fill)) - :opacity (:fill-opacity fill) - :gradient (:fill-color-gradient fill)}))] - {:attrs attrs - :prop :content - :shape-id (:shape-id fill) - :index (:index fill)})) - -(defn treat-node - [node shape-id] - (map-indexed #(assoc %2 :shape-id shape-id :index %1) node)) - -(defn extract-text-colors - [text file-id shared-libs] - (let [content (txt/node-seq txt/is-text-node? (:content text)) - content-filtered (map :fills content) - indexed (mapcat #(treat-node % (:id text)) content-filtered)] - (map #(text->color-att % file-id shared-libs) indexed))) - -(defn- extract-all-colors - [shapes file-id shared-libs] - (reduce - (fn [list shape] - (let [fill-obj (map-indexed #(assoc %2 :shape-id (:id shape) :index %1) (:fills shape)) - stroke-obj (map-indexed #(assoc %2 :shape-id (:id shape) :index %1) (:strokes shape)) - shadow-obj (map-indexed #(assoc %2 :shape-id (:id shape) :index %1) (:shadow shape))] - (if (= :text (:type shape)) - (-> list - (into (map #(stroke->color-att % file-id shared-libs)) stroke-obj) - (into (map #(shadow->color-att % file-id shared-libs)) shadow-obj) - (into (extract-text-colors shape file-id shared-libs))) - - (-> list - (into (map #(fill->color-att % file-id shared-libs)) fill-obj) - (into (map #(stroke->color-att % file-id shared-libs)) stroke-obj) - (into (map #(shadow->color-att % file-id shared-libs)) shadow-obj))))) - [] - shapes)) - (defn- prepare-colors [shapes file-id shared-libs] - (let [data (into [] (remove nil? (extract-all-colors shapes file-id shared-libs))) + (let [data (into [] (remove nil? (ctc/extract-all-colors shapes file-id shared-libs))) grouped-colors (group-by :attrs data) all-colors (distinct (mapv :attrs data)) tmp (group-by #(some? (:id %)) all-colors) library-colors (get tmp true) colors (get tmp false)] - {:grouped-colors grouped-colors :all-colors all-colors :colors colors diff --git a/frontend/src/app/plugins/api.cljs b/frontend/src/app/plugins/api.cljs index 6ebdfa441b..f6157303ee 100644 --- a/frontend/src/app/plugins/api.cljs +++ b/frontend/src/app/plugins/api.cljs @@ -7,11 +7,14 @@ (ns app.plugins.api "RPC for plugins runtime." (:require + [app.common.data :as d] [app.common.data.macros :as dm] [app.common.files.changes-builder :as cb] + [app.common.files.helpers :as cfh] [app.common.geom.point :as gpt] [app.common.record :as cr] [app.common.text :as txt] + [app.common.types.color :as ctc] [app.common.types.shape :as cts] [app.common.uuid :as uuid] [app.main.data.changes :as ch] @@ -28,6 +31,7 @@ [app.plugins.user :as user] [app.plugins.utils :as u] [app.plugins.viewport :as viewport] + [app.util.code-gen :as cg] [app.util.object :as obj] [beicon.v2.core :as rx] [promesa.core :as p])) @@ -83,6 +87,36 @@ (let [selection (get-in @st/state [:workspace-local :selected])] (apply array (sequence (map (partial shape/shape-proxy $plugin)) selection)))) + (getColors + [_ shapes] + (let [objects (u/locate-objects) + shapes (->> shapes + (map #(obj/get % "$id")) + (mapcat #(cfh/get-children-with-self objects %))) + + file-id (:current-file-id @st/state) + shared-libs (:workspace-libraries @st/state) + + colors + (apply + array + (->> (ctc/extract-all-colors shapes file-id shared-libs) + (group-by :attrs) + (map (fn [[color attrs]] + (let [shapes-info (apply array (map (fn [{:keys [prop shape-id index]}] + #js {:property (d/name prop) + :index index + :shapeId (str shape-id)}) attrs)) + color (u/to-js color)] + (obj/set! color "shapeInfo" shapes-info) + color)))))] + colors)) + + (changeColor + [_ _shapes _old-color _new-color] + ;; TODO + ) + (getRoot [_] (shape/shape-proxy $plugin uuid/zero)) From 97a1b59861de22395716d5a5c5327c6ee700daeb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bel=C3=A9n=20Albeza?= Date: Tue, 25 Jun 2024 11:51:34 +0200 Subject: [PATCH 236/476] :lipstick: Reformat DashboardPage.js according to prettier rules --- frontend/playwright/ui/pages/DashboardPage.js | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/frontend/playwright/ui/pages/DashboardPage.js b/frontend/playwright/ui/pages/DashboardPage.js index fbc373d3f3..0cda75b238 100644 --- a/frontend/playwright/ui/pages/DashboardPage.js +++ b/frontend/playwright/ui/pages/DashboardPage.js @@ -68,12 +68,12 @@ export class DashboardPage extends BaseWebSocketPage { this.libsTitle = page.getByRole("heading", { name: "Libraries", level: 1 }); this.searchButton = page.getByRole("button", { name: "dashboard-search" }); this.searchTitle = page.getByRole("heading", { name: "Search results" }); - this.searchInput = page.getByPlaceholder('Search…'); + this.searchInput = page.getByPlaceholder("Search…"); this.newFileName = page.getByText("New File 3"); - this.teamDropdown = page.getByRole('button', { name: 'Your Penpot' }); - this.userAccount = page.getByRole('button', { name: "Princesa Leia Princesa Leia" }); + this.teamDropdown = page.getByRole("button", { name: "Your Penpot" }); + this.userAccount = page.getByRole("button", { name: "Princesa Leia Princesa Leia" }); this.userProfileOption = page.getByText("Your account"); - this.userAccountTitle = page.getByRole("heading", {name: "Your account"}); + this.userAccountTitle = page.getByRole("heading", { name: "Your account" }); } async setupDraftsEmpty() { @@ -106,8 +106,8 @@ export class DashboardPage extends BaseWebSocketPage { await this.mockRPC("get-team-shared-files?project-id=*", "dashboard/get-shared-files.json"); await this.mockRPC("get-team-recent-files?team-id=*", "dashboard/get-team-recent-files.json"); await this.mockRPC("get-font-variants?team-id=*", "dashboard/get-font-variants.json"); - await this.mockRPC("search-files", "dashboard/search-files.json", { method: "POST" }); - await this.mockRPC("search-files", "dashboard/search-files.json" ); + await this.mockRPC("search-files", "dashboard/search-files.json", { method: "POST" }); + await this.mockRPC("search-files", "dashboard/search-files.json"); await this.mockRPC("get-teams", "logged-in-user/get-teams-complete.json"); } @@ -182,7 +182,6 @@ export class DashboardPage extends BaseWebSocketPage { } async goToAccount() { - await this.userAccount.click(); await this.userProfileOption.click(); From aa1cf3e03a6f0f442fd0fa76708afe1cea37be2b Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Tue, 25 Jun 2024 11:54:52 +0200 Subject: [PATCH 237/476] :sparkles: Add some redundancy to delete_object task --- backend/src/app/tasks/delete_object.clj | 45 +++++++++++++++++-------- 1 file changed, 31 insertions(+), 14 deletions(-) diff --git a/backend/src/app/tasks/delete_object.clj b/backend/src/app/tasks/delete_object.clj index 557e35b59d..87741b6cca 100644 --- a/backend/src/app/tasks/delete_object.clj +++ b/backend/src/app/tasks/delete_object.clj @@ -20,8 +20,13 @@ (defmethod delete-object :file [{:keys [::db/conn] :as cfg} {:keys [id deleted-at]}] - (l/trc :hint "marking for deletion" :rel "file" :id (str id)) (when-let [file (db/get* conn :file {:id id} {::db/remove-deleted false})] + (l/trc :hint "marking for deletion" :rel "file" :id (str id)) + (db/update! conn :file + {:deleted-at deleted-at} + {:id id} + {::db/return-keys false}) + (when (and (:is-shared file) (not *team-deletion*)) ;; NOTE: we don't prevent file deletion on absorb operation failure @@ -49,27 +54,39 @@ (defmethod delete-object :project [{:keys [::db/conn] :as cfg} {:keys [id deleted-at]}] (l/trc :hint "marking for deletion" :rel "project" :id (str id)) - (doseq [file (db/update! conn :file - {:deleted-at deleted-at} - {:project-id id} - {::db/return-keys [:id :deleted-at] - ::db/many true})] - (delete-object cfg (assoc file :object :file)))) + (db/update! conn :project + {:deleted-at deleted-at} + {:id id} + {::db/return-keys false}) + + (doseq [file (db/query conn :file + {:project-id id} + {::db/columns [:id :deleted-at]})] + (delete-object cfg (assoc file + :object :file + :deleted-at deleted-at)))) (defmethod delete-object :team [{:keys [::db/conn] :as cfg} {:keys [id deleted-at]}] (l/trc :hint "marking for deletion" :rel "team" :id (str id)) + (db/update! conn :team + {:deleted-at deleted-at} + {:id id} + {::db/return-keys false}) + (db/update! conn :team-font-variant {:deleted-at deleted-at} - {:team-id id}) + {:team-id id} + {::db/return-keys false}) (binding [*team-deletion* true] - (doseq [project (db/update! conn :project - {:deleted-at deleted-at} - {:team-id id} - {::db/return-keys [:id :deleted-at] - ::db/many true})] - (delete-object cfg (assoc project :object :project))))) + (doseq [project (db/query conn :project + {:team-id id} + {::db/columns [:id :deleted-at]})] + (delete-object cfg (assoc project + :object :project + :deleted-at deleted-at))))) + (defmethod delete-object :default [_cfg props] From ec4260830c8cd38dcc7ed0d74a14f50c6e7494c4 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Tue, 25 Jun 2024 11:56:23 +0200 Subject: [PATCH 238/476] :recycle: Add API consistency fixes for task calling Also adds a helper for calling tasks synchronously --- backend/src/app/email.clj | 13 ++--- backend/src/app/loggers/audit.clj | 22 ++++---- backend/src/app/loggers/webhooks.clj | 24 ++++---- backend/src/app/rpc/commands/files.clj | 10 ++-- backend/src/app/rpc/commands/projects.clj | 10 ++-- backend/src/app/rpc/commands/teams.clj | 10 ++-- backend/src/app/rpc/quotes.clj | 12 ++-- backend/src/app/srepl/main.clj | 55 ++++++++++--------- backend/src/app/storage/gc_deleted.clj | 4 +- backend/src/app/tasks/delete_object.clj | 8 +-- backend/src/app/tasks/file_gc.clj | 8 +-- backend/src/app/tasks/file_xlog_gc.clj | 6 +- backend/src/app/tasks/objects_gc.clj | 4 +- backend/src/app/tasks/orphan_teams_gc.clj | 19 +++---- backend/src/app/tasks/tasks_gc.clj | 6 +- backend/src/app/tasks/telemetry.clj | 12 ++-- backend/src/app/worker.clj | 29 +++++----- backend/test/backend_tests/helpers.clj | 7 ++- .../backend_tests/loggers_webhooks_test.clj | 38 ++++++------- 19 files changed, 145 insertions(+), 152 deletions(-) diff --git a/backend/src/app/email.clj b/backend/src/app/email.clj index 2cc47a37ac..0f7e356b69 100644 --- a/backend/src/app/email.clj +++ b/backend/src/app/email.clj @@ -262,13 +262,12 @@ (let [email (if factory (factory context) (dissoc context ::conn))] - (wrk/submit! (merge - {::wrk/task :sendmail - ::wrk/delay 0 - ::wrk/max-retries 4 - ::wrk/priority 200 - ::wrk/conn conn} - email)))) + (wrk/submit! {::wrk/task :sendmail + ::wrk/delay 0 + ::wrk/max-retries 4 + ::wrk/priority 200 + ::db/conn conn + ::wrk/params email}))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; SENDMAIL FN / TASK HANDLER diff --git a/backend/src/app/loggers/audit.clj b/backend/src/app/loggers/audit.clj index 08167da873..32cccb770c 100644 --- a/backend/src/app/loggers/audit.clj +++ b/backend/src/app/loggers/audit.clj @@ -241,18 +241,16 @@ :else label) dedupe? (boolean (and batch-key batch-timeout))] - (wrk/submit! ::wrk/conn (::db/conn cfg) - ::wrk/task :process-webhook-event - ::wrk/queue :webhooks - ::wrk/max-retries 0 - ::wrk/delay (or batch-timeout 0) - ::wrk/dedupe dedupe? - ::wrk/label label - - ::webhooks/event - (-> params - (dissoc :ip-addr) - (dissoc :type))))) + (wrk/submit! (-> cfg + (assoc ::wrk/task :process-webhook-event) + (assoc ::wrk/queue :webhooks) + (assoc ::wrk/max-retries 0) + (assoc ::wrk/delay (or batch-timeout 0)) + (assoc ::wrk/dedupe dedupe?) + (assoc ::wrk/label label) + (assoc ::wrk/params (-> params + (dissoc :ip-addr) + (dissoc :type))))))) params)) (defn submit! diff --git a/backend/src/app/loggers/webhooks.clj b/backend/src/app/loggers/webhooks.clj index 5f13bc55be..cd6385429f 100644 --- a/backend/src/app/loggers/webhooks.clj +++ b/backend/src/app/loggers/webhooks.clj @@ -64,22 +64,22 @@ (s/keys :req [::db/pool])) (defmethod ig/init-key ::process-event-handler - [_ {:keys [::db/pool] :as cfg}] + [_ cfg] (fn [{:keys [props] :as task}] - (let [event (::event props)] + (let [event (:event props)] (l/dbg :hint "process webhook event" :name (:name event)) (when-let [items (lookup-webhooks cfg event)] (l/trc :hint "webhooks found for event" :total (count items)) - (db/with-atomic [conn pool] - (doseq [item items] - (wrk/submit! ::wrk/conn conn - ::wrk/task :run-webhook - ::wrk/queue :webhooks - ::wrk/max-retries 3 - ::event event - ::config item))))))) + (db/tx-run! cfg (fn [cfg] + (doseq [item items] + (wrk/submit! (-> cfg + (assoc ::wrk/task :run-webhook) + (assoc ::wrk/queue :webhooks) + (assoc ::wrk/max-retries 3) + (assoc ::wrk/params {:event event + :config item})))))))))) ;; --- RUN @@ -128,8 +128,8 @@ :rsp-data (db/tjson rsp)}))] (fn [{:keys [props] :as task}] - (let [event (::event props) - whook (::config props) + (let [event (:event props) + whook (:config props) body (case (:mtype whook) "application/json" (json/write-str event json-write-opts) diff --git a/backend/src/app/rpc/commands/files.clj b/backend/src/app/rpc/commands/files.clj index dc48abd6e0..b0c74feb12 100644 --- a/backend/src/app/rpc/commands/files.clj +++ b/backend/src/app/rpc/commands/files.clj @@ -927,11 +927,11 @@ {:id file-id} {::db/return-keys [:id :name :is-shared :deleted-at :project-id :created-at :modified-at]})] - (wrk/submit! {::wrk/task :delete-object - ::wrk/conn conn - :object :file - :deleted-at (:deleted-at file) - :id file-id}) + (wrk/submit! {::db/conn conn + ::wrk/task :delete-object + ::wrk/params {:object :file + :deleted-at (:deleted-at file) + :id file-id}}) file)) (def ^:private diff --git a/backend/src/app/rpc/commands/projects.clj b/backend/src/app/rpc/commands/projects.clj index a8236008e3..16e892b17a 100644 --- a/backend/src/app/rpc/commands/projects.clj +++ b/backend/src/app/rpc/commands/projects.clj @@ -258,11 +258,11 @@ :code :non-deletable-project :hint "impossible to delete default project")) - (wrk/submit! {::wrk/task :delete-object - ::wrk/conn conn - :object :project - :deleted-at (:deleted-at project) - :id project-id}) + (wrk/submit! {::db/conn conn + ::wrk/task :delete-object + ::wrk/params {:object :project + :deleted-at (:deleted-at project) + :id project-id}}) project)) diff --git a/backend/src/app/rpc/commands/teams.clj b/backend/src/app/rpc/commands/teams.clj index ed018fa8e1..4730ee06ef 100644 --- a/backend/src/app/rpc/commands/teams.clj +++ b/backend/src/app/rpc/commands/teams.clj @@ -527,11 +527,11 @@ :code :non-deletable-team :hint "impossible to delete default team")) - (wrk/submit! {::wrk/task :delete-object - ::wrk/conn conn - :object :team - :deleted-at deleted-at - :id team-id}) + (wrk/submit! {::db/conn conn + ::wrk/task :delete-object + ::wrk/params {:object :team + :deleted-at deleted-at + :id team-id}}) team)) (def ^:private schema:delete-team diff --git a/backend/src/app/rpc/quotes.clj b/backend/src/app/rpc/quotes.clj index 3244bd03f9..87f9bf7f77 100644 --- a/backend/src/app/rpc/quotes.clj +++ b/backend/src/app/rpc/quotes.clj @@ -83,17 +83,17 @@ "- Quote ID: '~(::target params)'\n" "- Max: ~(::quote params)\n" "- Total: ~(::total params) (INCR ~(::incr params 1))\n")] - (wrk/submit! {::wrk/task :sendmail + (wrk/submit! {::db/conn conn + ::wrk/task :sendmail ::wrk/delay (dt/duration "30s") ::wrk/max-retries 4 ::wrk/priority 200 - ::wrk/conn conn ::wrk/dedupe true ::wrk/label "quotes-notification" - :to (vec admins) - :subject subject - :body [{:type "text/plain" - :content content}]})))) + ::wrk/params {:to (vec admins) + :subject subject + :body [{:type "text/plain" + :content content}]}})))) (defn- generic-check! [{:keys [::db/conn ::incr ::quote-sql ::count-sql ::default ::target] :or {incr 1} :as params}] diff --git a/backend/src/app/srepl/main.clj b/backend/src/app/srepl/main.clj index 193f72d1c6..c71c58db01 100644 --- a/backend/src/app/srepl/main.clj +++ b/backend/src/app/srepl/main.clj @@ -59,32 +59,27 @@ ([tname] (run-task! tname {})) ([tname params] - (let [tasks (:app.worker/registry main/system) - tname (if (keyword? tname) (name tname) name)] - (if-let [task-fn (get tasks tname)] - (task-fn params) - (println (format "no task '%s' found" tname)))))) + (wrk/invoke! (-> main/system + (assoc ::wrk/task tname) + (assoc ::wrk/params params))))) (defn schedule-task! ([name] (schedule-task! name {})) - ([name props] - (let [pool (:app.db/pool main/system)] - (wrk/submit! - ::wrk/conn pool - ::wrk/task name - ::wrk/props props)))) + ([name params] + (wrk/submit! (-> main/system + (assoc ::wrk/task name) + (assoc ::wrk/params params))))) (defn send-test-email! [destination] - (us/verify! - :expr (string? destination) - :hint "destination should be provided") - - (let [handler (:app.email/sendmail main/system)] - (handler {:body "test email" - :subject "test email" - :to [destination]}))) + (assert (string? destination) "destination should be provided") + (-> main/system + (assoc ::wrk/task :sendmail) + (assoc ::wrk/params {:body "test email" + :subject "test email" + :to [destination]}) + (wrk/invoke!))) (defn resend-email-verification-email! [email] @@ -562,22 +557,30 @@ "Mark a team for deletion" [team-id] (let [team-id (h/parse-uuid team-id)] - (db/tx-run! main/system (fn [{:keys [::db/conn]}] - (#'teams/delete-team conn team-id))))) - + (wrk/invoke! (-> main/system + (assoc ::wrk/task :delete-object) + (assoc ::wrk/params {:object :team + :deleted-at (dt/now) + :id team-id}))))) (defn delete-project! "Mark a project for deletion" [project-id] (let [project-id (h/parse-uuid project-id)] - (db/tx-run! main/system (fn [{:keys [::db/conn]}] - (#'projects/delete-project conn project-id))))) + (wrk/invoke! (-> main/system + (assoc ::wrk/task :delete-object) + (assoc ::wrk/params {:object :project + :deleted-at (dt/now) + :id project-id}))))) (defn delete-file! "Mark a project for deletion" [file-id] (let [file-id (h/parse-uuid file-id)] - (db/tx-run! main/system (fn [{:keys [::db/conn]}] - (#'files/mark-file-deleted conn file-id))))) + (wrk/invoke! (-> main/system + (assoc ::wrk/task :delete-object) + (assoc ::wrk/params {:object :file + :deleted-at (dt/now) + :id file-id}))))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; MISC diff --git a/backend/src/app/storage/gc_deleted.clj b/backend/src/app/storage/gc_deleted.clj index 8d1d0e5ad1..52cdce4b15 100644 --- a/backend/src/app/storage/gc_deleted.clj +++ b/backend/src/app/storage/gc_deleted.clj @@ -110,8 +110,8 @@ (defmethod ig/init-key ::handler [_ {:keys [::min-age] :as cfg}] - (fn [params] - (let [min-age (dt/duration (or (:min-age params) min-age))] + (fn [{:keys [props] :as task}] + (let [min-age (dt/duration (or (:min-age props) min-age))] (db/tx-run! cfg (fn [cfg] (let [cfg (assoc cfg ::min-age min-age) total (clean-deleted! cfg)] diff --git a/backend/src/app/tasks/delete_object.clj b/backend/src/app/tasks/delete_object.clj index 87741b6cca..06bbd36f78 100644 --- a/backend/src/app/tasks/delete_object.clj +++ b/backend/src/app/tasks/delete_object.clj @@ -23,9 +23,9 @@ (when-let [file (db/get* conn :file {:id id} {::db/remove-deleted false})] (l/trc :hint "marking for deletion" :rel "file" :id (str id)) (db/update! conn :file - {:deleted-at deleted-at} - {:id id} - {::db/return-keys false}) + {:deleted-at deleted-at} + {:id id} + {::db/return-keys false}) (when (and (:is-shared file) (not *team-deletion*)) @@ -97,5 +97,5 @@ (defmethod ig/init-key ::handler [_ cfg] - (fn [{:keys [props] :as params}] + (fn [{:keys [props] :as task}] (db/tx-run! cfg delete-object props))) diff --git a/backend/src/app/tasks/file_gc.clj b/backend/src/app/tasks/file_gc.clj index 88f1a74b47..8a2db9c57e 100644 --- a/backend/src/app/tasks/file_gc.clj +++ b/backend/src/app/tasks/file_gc.clj @@ -299,13 +299,13 @@ (defmethod ig/init-key ::handler [_ cfg] - (fn [{:keys [file-id] :as params}] + (fn [{:keys [props] :as task}] (db/tx-run! cfg (fn [{:keys [::db/conn] :as cfg}] - (let [min-age (dt/duration (or (:min-age params) (::min-age cfg))) + (let [min-age (dt/duration (or (:min-age props) (::min-age cfg))) cfg (-> cfg (update ::sto/storage media/configure-assets-storage conn) - (assoc ::file-id file-id) + (assoc ::file-id (:file-id props)) (assoc ::min-age min-age)) total (reduce (fn [total file] @@ -319,7 +319,7 @@ :processed total) ;; Allow optional rollback passed by params - (when (:rollback? params) + (when (:rollback? props) (db/rollback! conn)) {:processed total}))))) diff --git a/backend/src/app/tasks/file_xlog_gc.clj b/backend/src/app/tasks/file_xlog_gc.clj index c88f42a840..4e240d7f76 100644 --- a/backend/src/app/tasks/file_xlog_gc.clj +++ b/backend/src/app/tasks/file_xlog_gc.clj @@ -29,8 +29,8 @@ (defmethod ig/init-key ::handler [_ {:keys [::db/pool] :as cfg}] - (fn [params] - (let [min-age (or (:min-age params) (::min-age cfg))] + (fn [{:keys [props] :as task}] + (let [min-age (or (:min-age props) (::min-age cfg))] (db/with-atomic [conn pool] (let [interval (db/interval min-age) result (db/exec-one! conn [sql:delete-files-xlog interval]) @@ -38,7 +38,7 @@ (l/info :hint "task finished" :min-age (dt/format-duration min-age) :total result) - (when (:rollback? params) + (when (:rollback? props) (db/rollback! conn)) result))))) diff --git a/backend/src/app/tasks/objects_gc.clj b/backend/src/app/tasks/objects_gc.clj index da9e1232ff..16f7458360 100644 --- a/backend/src/app/tasks/objects_gc.clj +++ b/backend/src/app/tasks/objects_gc.clj @@ -302,8 +302,8 @@ (defmethod ig/init-key ::handler [_ cfg] - (fn [params] - (let [min-age (dt/duration (or (:min-age params) (::min-age cfg))) + (fn [{:keys [props] :as task}] + (let [min-age (dt/duration (or (:min-age props) (::min-age cfg))) cfg (-> cfg (assoc ::min-age (db/interval min-age)) (update ::sto/storage media/configure-assets-storage))] diff --git a/backend/src/app/tasks/orphan_teams_gc.clj b/backend/src/app/tasks/orphan_teams_gc.clj index 8869c72ccb..5bdb360c06 100644 --- a/backend/src/app/tasks/orphan_teams_gc.clj +++ b/backend/src/app/tasks/orphan_teams_gc.clj @@ -39,12 +39,11 @@ {:deleted-at deleted-at} {:id team-id}) - (wrk/submit! {::wrk/task :delete-object - ::wrk/conn conn - :object :team - :deleted-at deleted-at - :id team-id}) - + (wrk/submit! (-> cfg + (assoc ::wrk/task :delete-object) + (assoc ::wrk/params {:object :team + :deleted-at deleted-at + :id team-id}))) (inc total)) 0)))) @@ -53,15 +52,15 @@ (defmethod ig/init-key ::handler [_ cfg] - (fn [params] + (fn [{:keys [props] :as task}] (db/tx-run! cfg (fn [{:keys [::db/conn] :as cfg}] - (l/inf :hint "gc started" :rollback? (boolean (:rollback? params))) + (l/inf :hint "gc started" :rollback? (boolean (:rollback? props))) (let [total (delete-orphan-teams cfg)] (l/inf :hint "task finished" :teams total - :rollback? (boolean (:rollback? params))) + :rollback? (boolean (:rollback? props))) - (when (:rollback? params) + (when (:rollback? props) (db/rollback! conn)) {:processed total}))))) diff --git a/backend/src/app/tasks/tasks_gc.clj b/backend/src/app/tasks/tasks_gc.clj index 77f1f92fa8..cd69827995 100644 --- a/backend/src/app/tasks/tasks_gc.clj +++ b/backend/src/app/tasks/tasks_gc.clj @@ -27,8 +27,8 @@ (defmethod ig/init-key ::handler [_ {:keys [::db/pool ::min-age] :as cfg}] - (fn [params] - (let [min-age (or (:min-age params) min-age)] + (fn [{:keys [props] :as task}] + (let [min-age (or (:min-age props) min-age)] (db/with-atomic [conn pool] (let [interval (db/interval min-age) result (db/exec-one! conn [sql:delete-completed-tasks interval]) @@ -36,7 +36,7 @@ (l/debug :hint "task finished" :total result) - (when (:rollback? params) + (when (:rollback? props) (db/rollback! conn)) result))))) diff --git a/backend/src/app/tasks/telemetry.clj b/backend/src/app/tasks/telemetry.clj index ec07c67b3b..410595f722 100644 --- a/backend/src/app/tasks/telemetry.clj +++ b/backend/src/app/tasks/telemetry.clj @@ -206,14 +206,16 @@ (defmethod ig/init-key ::handler [_ {:keys [::db/pool ::setup/props] :as cfg}] - (fn [{:keys [send? enabled?] :or {send? true enabled? false}}] - (let [subs {:newsletter-updates (get-subscriptions-newsletter-updates pool) - :newsletter-news (get-subscriptions-newsletter-news pool)} - - enabled? (or enabled? + (fn [task] + (let [params (:props task) + send? (get params :send? true) + enabled? (or (get params :enabled? false) (contains? cf/flags :telemetry) (cf/get :telemetry-enabled)) + subs {:newsletter-updates (get-subscriptions-newsletter-updates pool) + :newsletter-news (get-subscriptions-newsletter-news pool)} + data {:subscriptions subs :version (:full cf/version) :instance-id (:instance-id props)}] diff --git a/backend/src/app/worker.clj b/backend/src/app/worker.clj index 1da2e8de08..d5a2a8551a 100644 --- a/backend/src/app/worker.clj +++ b/backend/src/app/worker.clj @@ -8,6 +8,7 @@ "Async tasks abstraction (impl)." (:require [app.common.data :as d] + [app.common.data.macros :as dm] [app.common.logging :as l] [app.common.spec :as us] [app.common.uuid :as uuid] @@ -58,17 +59,6 @@ ;; SUBMIT API ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -(defn- extract-props - [options] - (let [cns (namespace ::sample)] - (persistent! - (reduce-kv (fn [res k v] - (cond-> res - (not= (namespace k) cns) - (assoc! k v))) - (transient {}) - options)))) - (def ^:private sql:insert-new-task "insert into task (id, name, props, queue, label, priority, max_retries, scheduled_at) values (?, ?, ?, ?, ?, ?, ?, now() + ?) @@ -87,14 +77,13 @@ (s/def ::task (s/or :kw keyword? :str string?)) (s/def ::queue (s/or :kw keyword? :str string?)) (s/def ::delay (s/or :int integer? :duration dt/duration?)) -(s/def ::conn (s/or :pool ::db/pool :connection some?)) (s/def ::priority integer?) (s/def ::max-retries integer?) (s/def ::dedupe boolean?) (s/def ::submit-options (s/and - (s/keys :req [::task ::conn] + (s/keys :req [::task] :opt [::label ::delay ::queue ::priority ::max-retries ::dedupe]) (fn [{:keys [::dedupe ::label] :or {label ""}}] (if dedupe @@ -102,21 +91,23 @@ true)))) (defn submit! - [& {:keys [::task ::delay ::queue ::priority ::max-retries ::conn ::dedupe ::label] + [& {:keys [::params ::task ::delay ::queue ::priority ::max-retries ::dedupe ::label] :or {delay 0 queue :default priority 100 max-retries 3 label ""} :as options}] (us/verify! ::submit-options options) (let [duration (dt/duration delay) interval (db/interval duration) - props (-> options extract-props db/tjson) + props (db/tjson params) id (uuid/next) tenant (cf/get :tenant) task (d/name task) queue (str/ffmt "%:%" tenant (d/name queue)) + conn (db/get-connectable options) deleted (when dedupe (-> (db/exec-one! conn [sql:remove-not-started-tasks task queue label]) :next.jdbc/update-count))] + (l/trc :hint "submit task" :name task :task-id (str id) @@ -126,7 +117,13 @@ :delay (dt/format-duration duration) :replace (or deleted 0)) - (db/exec-one! conn [sql:insert-new-task id task props queue label priority max-retries interval]) id)) + +(defn invoke! + [{:keys [::task ::params] :as cfg}] + (assert (contains? cfg :app.worker/registry) + "missing worker registry on `cfg`") + (let [task-fn (dm/get-in cfg [:app.worker/registry (name task)])] + (task-fn {:props params}))) diff --git a/backend/test/backend_tests/helpers.clj b/backend/test/backend_tests/helpers.clj index cb399e70f2..9f754c2433 100644 --- a/backend/test/backend_tests/helpers.clj +++ b/backend/test/backend_tests/helpers.clj @@ -34,6 +34,7 @@ [app.util.blob :as blob] [app.util.services :as sv] [app.util.time :as dt] + [app.worker :as wrk] [app.worker.runner] [clojure.java.io :as io] [clojure.spec.alpha :as s] @@ -377,9 +378,9 @@ ([name] (run-task! name {})) ([name params] - (let [tasks (:app.worker/registry *system*)] - (let [task-fn (get tasks (d/name name))] - (task-fn params))))) + (wrk/invoke! (-> *system* + (assoc ::wrk/task name) + (assoc ::wrk/params params))))) (def sql:pending-tasks "select t.* from task as t diff --git a/backend/test/backend_tests/loggers_webhooks_test.clj b/backend/test/backend_tests/loggers_webhooks_test.clj index ab3a4e82ed..d0a8e7475c 100644 --- a/backend/test/backend_tests/loggers_webhooks_test.clj +++ b/backend/test/backend_tests/loggers_webhooks_test.clj @@ -21,11 +21,10 @@ (with-mocks [submit-mock {:target 'app.worker/submit! :return nil}] (let [prof (th/create-profile* 1 {:is-active true}) res (th/run-task! :process-webhook-event - {:props - {:app.loggers.webhooks/event - {:type "command" - :name "create-project" - :props {:team-id (:default-team-id prof)}}}})] + {:event + {:type "command" + :name "create-project" + :props {:team-id (:default-team-id prof)}}})] (t/is (= 0 (:call-count @submit-mock))) (t/is (nil? res))))) @@ -35,11 +34,10 @@ (let [prof (th/create-profile* 1 {:is-active true}) whk (th/create-webhook* {:team-id (:default-team-id prof)}) res (th/run-task! :process-webhook-event - {:props - {:app.loggers.webhooks/event - {:type "command" - :name "create-project" - :props {:team-id (:default-team-id prof)}}}})] + {:event + {:type "command" + :name "create-project" + :props {:team-id (:default-team-id prof)}}})] (t/is (= 1 (:call-count @submit-mock))) (t/is (nil? res))))) @@ -52,9 +50,8 @@ :name "create-project" :props {:team-id (:default-team-id prof)}} res (th/run-task! :run-webhook - {:props - {:app.loggers.webhooks/event evt - :app.loggers.webhooks/config whk}})] + {:event evt + :config whk})] (t/is (= 1 (:call-count @http-mock))) @@ -75,9 +72,8 @@ :name "create-project" :props {:team-id (:default-team-id prof)}} res (th/run-task! :run-webhook - {:props - {:app.loggers.webhooks/event evt - :app.loggers.webhooks/config whk}})] + {:event evt + :config whk})] (t/is (= 1 (:call-count @http-mock))) @@ -94,14 +90,12 @@ ;; RUN 2 times more (th/run-task! :run-webhook - {:props - {:app.loggers.webhooks/event evt - :app.loggers.webhooks/config whk}}) + {:event evt + :config whk}) (th/run-task! :run-webhook - {:props - {:app.loggers.webhooks/event evt - :app.loggers.webhooks/config whk}}) + {:event evt + :config whk}) (let [rows (th/db-query :webhook-delivery {:webhook-id (:id whk)})] From 8f3452c0af1924362dbb9bc2fffb7633ea74bafc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bel=C3=A9n=20Albeza?= Date: Tue, 25 Jun 2024 14:43:40 +0200 Subject: [PATCH 239/476] :sparkles: Avoid using unneeded test ids in dashboard POM --- frontend/playwright/ui/pages/DashboardPage.js | 33 ++++++++++++------- .../playwright/ui/specs/dashboard.spec.js | 14 +++----- .../ui/visual-specs/visual-dashboard.spec.js | 16 ++++----- .../src/app/main/ui/dashboard/sidebar.cljs | 3 +- 4 files changed, 35 insertions(+), 31 deletions(-) diff --git a/frontend/playwright/ui/pages/DashboardPage.js b/frontend/playwright/ui/pages/DashboardPage.js index 0cda75b238..995d8e15a5 100644 --- a/frontend/playwright/ui/pages/DashboardPage.js +++ b/frontend/playwright/ui/pages/DashboardPage.js @@ -1,3 +1,4 @@ +import { expect } from "@playwright/test"; import { BaseWebSocketPage } from "./BaseWebSocketPage"; export class DashboardPage extends BaseWebSocketPage { @@ -49,31 +50,38 @@ export class DashboardPage extends BaseWebSocketPage { } static anyTeamId = "c7ce0794-0992-8105-8004-38e630f40f6d"; - static secondTeamId = "dd33ff88-f4e5-8033-8003-8096cc07bdf3"; - static draftProjectId = "c7ce0794-0992-8105-8004-38e630f7920b"; constructor(page) { super(page); - this.titleLabel = page.getByRole("heading", { name: "Projects" }); - this.addProjectBtn = page.getByRole("button", { name: "+ NEW PROJECT" }); + + this.sidebar = page.getByTestId("dashboard-sidebar"); + this.sidebarMenu = this.sidebar.getByRole("menu"); + + this.projectsHeading = page.getByRole("heading", { name: "Projects" }); + this.addProjectButton = page.getByRole("button", { name: "+ NEW PROJECT" }); this.projectName = page.getByText("Project 1"); - this.draftTitle = page.getByRole("heading", { name: "Drafts" }); - this.draftLink = page.getByTestId("drafts-link-sidebar"); + + this.draftsTitle = page.getByRole("heading", { name: "Drafts" }); + this.draftsLink = this.sidebar.getByText("Drafts"); this.draftsFile = page.getByText(/New File 1/); - this.fontsLink = page.getByTestId("fonts-link-sidebar"); + + this.fontsLink = this.sidebar.getByText("Fonts"); this.fontsTitle = page.getByRole("heading", { name: "Fonts", level: 1 }); - this.libsLink = page.getByTestId("libs-link-sidebar"); + + this.libsLink = this.sidebar.getByText("Libraries"); this.libsTitle = page.getByRole("heading", { name: "Libraries", level: 1 }); + this.searchButton = page.getByRole("button", { name: "dashboard-search" }); this.searchTitle = page.getByRole("heading", { name: "Search results" }); this.searchInput = page.getByPlaceholder("Search…"); this.newFileName = page.getByText("New File 3"); - this.teamDropdown = page.getByRole("button", { name: "Your Penpot" }); - this.userAccount = page.getByRole("button", { name: "Princesa Leia Princesa Leia" }); - this.userProfileOption = page.getByText("Your account"); - this.userAccountTitle = page.getByRole("heading", { name: "Your account" }); + + this.teamDropdown = this.sidebar.getByRole("button", { name: "Your Penpot" }); + this.userAccount = this.sidebar.getByRole("button", { name: /Princesa Leia/ }); + this.userProfileOption = this.sidebarMenu.getByText("Your account"); + this.userAccountHeading = page.getByRole("heading", { name: "Your account" }); } async setupDraftsEmpty() { @@ -145,6 +153,7 @@ export class DashboardPage extends BaseWebSocketPage { async goToDashboard() { await this.page.goto(`#/dashboard/team/${DashboardPage.anyTeamId}/projects`); + await expect(this.projectsHeading).toBeVisible(); } async goToSecondTeamDashboard() { diff --git a/frontend/playwright/ui/specs/dashboard.spec.js b/frontend/playwright/ui/specs/dashboard.spec.js index 4cb381b4a3..5dc110d359 100644 --- a/frontend/playwright/ui/specs/dashboard.spec.js +++ b/frontend/playwright/ui/specs/dashboard.spec.js @@ -3,11 +3,7 @@ import DashboardPage from "../pages/DashboardPage"; test.beforeEach(async ({ page }) => { await DashboardPage.init(page); - await DashboardPage.mockRPC( - page, - "get-profile", - "logged-in-user/get-profile-logged-in-no-onboarding.json", - ); + await DashboardPage.mockRPC(page, "get-profile", "logged-in-user/get-profile-logged-in-no-onboarding.json"); }); test("Dashboad page has title ", async ({ page }) => { @@ -16,7 +12,7 @@ test("Dashboad page has title ", async ({ page }) => { await dashboardPage.goToDashboard(); await expect(dashboardPage.page).toHaveURL(/dashboard/); - await expect(dashboardPage.titleLabel).toBeVisible(); + await expect(dashboardPage.projectsHeading).toBeVisible(); }); test("User can create a new project", async ({ page }) => { @@ -24,7 +20,7 @@ test("User can create a new project", async ({ page }) => { await dashboardPage.setupNewProject(); await dashboardPage.goToDashboard(); - await dashboardPage.addProjectBtn.click(); + await dashboardPage.addProjectButton.click(); await expect(dashboardPage.projectName).toBeVisible(); }); @@ -34,9 +30,9 @@ test("User goes to draft page", async ({ page }) => { await dashboardPage.setupDraftsEmpty(); await dashboardPage.goToDashboard(); - await dashboardPage.draftLink.click(); + await dashboardPage.draftsLink.click(); - await expect(dashboardPage.draftTitle).toBeVisible(); + await expect(dashboardPage.draftsTitle).toBeVisible(); }); test("User loads the draft page", async ({ page }) => { diff --git a/frontend/playwright/ui/visual-specs/visual-dashboard.spec.js b/frontend/playwright/ui/visual-specs/visual-dashboard.spec.js index f7eeeb01a5..b2ddc888dc 100644 --- a/frontend/playwright/ui/visual-specs/visual-dashboard.spec.js +++ b/frontend/playwright/ui/visual-specs/visual-dashboard.spec.js @@ -11,7 +11,7 @@ test("User goes to an empty dashboard", async ({ page }) => { await dashboardPage.goToDashboard(); - await expect(dashboardPage.titleLabel).toBeVisible(); + await expect(dashboardPage.projectsHeading).toBeVisible(); await expect(dashboardPage.page).toHaveScreenshot(); }); @@ -22,9 +22,9 @@ test("User goes to an empty draft page", async ({ page }) => { await dashboardPage.setupDraftsEmpty(); await dashboardPage.goToDashboard(); - await dashboardPage.draftLink.click(); + await dashboardPage.draftsLink.click(); - await expect(dashboardPage.draftTitle).toBeVisible(); + await expect(dashboardPage.draftsTitle).toBeVisible(); await expect(dashboardPage.page).toHaveScreenshot(); }); @@ -86,9 +86,9 @@ test("User goes to an full draft page", async ({ page }) => { await dashboardPage.setupDashboardFull(); await dashboardPage.goToDashboard(); - await dashboardPage.draftLink.click(); + await dashboardPage.draftsLink.click(); - await expect(dashboardPage.draftTitle).toBeVisible(); + await expect(dashboardPage.draftsTitle).toBeVisible(); await expect(dashboardPage.page).toHaveScreenshot(); }); @@ -146,7 +146,7 @@ test("User goes to user profile", async ({ page }) => { await dashboardPage.goToDashboard(); await dashboardPage.goToAccount(); - await expect(dashboardPage.userAccountTitle).toBeVisible(); + await expect(dashboardPage.userAccountHeading).toBeVisible(); await expect(dashboardPage.page).toHaveScreenshot(); }); @@ -180,7 +180,7 @@ test("User opens teams selector with only one team", async ({ page }) => { const dashboardPage = new DashboardPage(page); await dashboardPage.goToDashboard(); - await expect(dashboardPage.titleLabel).toBeVisible(); + await expect(dashboardPage.projectsHeading).toBeVisible(); await dashboardPage.teamDropdown.click(); @@ -193,7 +193,7 @@ test("User opens teams selector with more than one team", async ({ page }) => { await dashboardPage.setupDashboardFull(); await dashboardPage.goToDashboard(); - await expect(dashboardPage.titleLabel).toBeVisible(); + await expect(dashboardPage.projectsHeading).toBeVisible(); await dashboardPage.teamDropdown.click(); diff --git a/frontend/src/app/main/ui/dashboard/sidebar.cljs b/frontend/src/app/main/ui/dashboard/sidebar.cljs index 83a915d75a..245145f446 100644 --- a/frontend/src/app/main/ui/dashboard/sidebar.cljs +++ b/frontend/src/app/main/ui/dashboard/sidebar.cljs @@ -786,7 +786,6 @@ [:li {:class (stl/css-case :current drafts? :sidebar-nav-item true)} [:& link {:action go-drafts - :data-testid "drafts-link-sidebar" :class (stl/css :sidebar-link) :keyboard-action go-drafts-with-key} [:span {:class (stl/css :element-title)} (tr "labels.drafts")]]] @@ -1052,7 +1051,7 @@ [props] (let [team (obj/get props "team") profile (obj/get props "profile")] - [:nav {:class (stl/css :dashboard-sidebar)} + [:nav {:class (stl/css :dashboard-sidebar) :data-testid "dashboard-sidebar"} [:> sidebar-content props] [:& profile-section {:profile profile From c14f783d946ebbd4c5fe59b20edcc2c3940a6a8e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bel=C3=A9n=20Albeza?= Date: Tue, 25 Jun 2024 15:16:13 +0200 Subject: [PATCH 240/476] :sparkles: Remove redundant locators for Dashboard POM --- frontend/playwright/ui/pages/DashboardPage.js | 9 ++---- .../playwright/ui/specs/dashboard.spec.js | 4 +-- .../ui/visual-specs/visual-dashboard.spec.js | 32 ++++++++----------- 3 files changed, 18 insertions(+), 27 deletions(-) diff --git a/frontend/playwright/ui/pages/DashboardPage.js b/frontend/playwright/ui/pages/DashboardPage.js index 995d8e15a5..95b63befd6 100644 --- a/frontend/playwright/ui/pages/DashboardPage.js +++ b/frontend/playwright/ui/pages/DashboardPage.js @@ -58,30 +58,25 @@ export class DashboardPage extends BaseWebSocketPage { this.sidebar = page.getByTestId("dashboard-sidebar"); this.sidebarMenu = this.sidebar.getByRole("menu"); + this.mainHeading = page.getByRole("heading", { level: 1 }); - this.projectsHeading = page.getByRole("heading", { name: "Projects" }); this.addProjectButton = page.getByRole("button", { name: "+ NEW PROJECT" }); this.projectName = page.getByText("Project 1"); - this.draftsTitle = page.getByRole("heading", { name: "Drafts" }); this.draftsLink = this.sidebar.getByText("Drafts"); this.draftsFile = page.getByText(/New File 1/); this.fontsLink = this.sidebar.getByText("Fonts"); - this.fontsTitle = page.getByRole("heading", { name: "Fonts", level: 1 }); this.libsLink = this.sidebar.getByText("Libraries"); - this.libsTitle = page.getByRole("heading", { name: "Libraries", level: 1 }); this.searchButton = page.getByRole("button", { name: "dashboard-search" }); - this.searchTitle = page.getByRole("heading", { name: "Search results" }); this.searchInput = page.getByPlaceholder("Search…"); this.newFileName = page.getByText("New File 3"); this.teamDropdown = this.sidebar.getByRole("button", { name: "Your Penpot" }); this.userAccount = this.sidebar.getByRole("button", { name: /Princesa Leia/ }); this.userProfileOption = this.sidebarMenu.getByText("Your account"); - this.userAccountHeading = page.getByRole("heading", { name: "Your account" }); } async setupDraftsEmpty() { @@ -153,7 +148,7 @@ export class DashboardPage extends BaseWebSocketPage { async goToDashboard() { await this.page.goto(`#/dashboard/team/${DashboardPage.anyTeamId}/projects`); - await expect(this.projectsHeading).toBeVisible(); + await expect(this.mainHeading).toBeVisible(); } async goToSecondTeamDashboard() { diff --git a/frontend/playwright/ui/specs/dashboard.spec.js b/frontend/playwright/ui/specs/dashboard.spec.js index 5dc110d359..515ad2b777 100644 --- a/frontend/playwright/ui/specs/dashboard.spec.js +++ b/frontend/playwright/ui/specs/dashboard.spec.js @@ -12,7 +12,7 @@ test("Dashboad page has title ", async ({ page }) => { await dashboardPage.goToDashboard(); await expect(dashboardPage.page).toHaveURL(/dashboard/); - await expect(dashboardPage.projectsHeading).toBeVisible(); + await expect(dashboardPage.mainHeading).toBeVisible(); }); test("User can create a new project", async ({ page }) => { @@ -32,7 +32,7 @@ test("User goes to draft page", async ({ page }) => { await dashboardPage.goToDashboard(); await dashboardPage.draftsLink.click(); - await expect(dashboardPage.draftsTitle).toBeVisible(); + await expect(dashboardPage.mainHeading).toHaveText("Drafts"); }); test("User loads the draft page", async ({ page }) => { diff --git a/frontend/playwright/ui/visual-specs/visual-dashboard.spec.js b/frontend/playwright/ui/visual-specs/visual-dashboard.spec.js index b2ddc888dc..c157d9159a 100644 --- a/frontend/playwright/ui/visual-specs/visual-dashboard.spec.js +++ b/frontend/playwright/ui/visual-specs/visual-dashboard.spec.js @@ -11,7 +11,7 @@ test("User goes to an empty dashboard", async ({ page }) => { await dashboardPage.goToDashboard(); - await expect(dashboardPage.projectsHeading).toBeVisible(); + await expect(dashboardPage.mainHeading).toBeVisible(); await expect(dashboardPage.page).toHaveScreenshot(); }); @@ -24,7 +24,7 @@ test("User goes to an empty draft page", async ({ page }) => { await dashboardPage.goToDashboard(); await dashboardPage.draftsLink.click(); - await expect(dashboardPage.draftsTitle).toBeVisible(); + await expect(dashboardPage.mainHeading).toHaveText("Drafts"); await expect(dashboardPage.page).toHaveScreenshot(); }); @@ -34,7 +34,7 @@ test("User goes to an empty fonts page", async ({ page }) => { await dashboardPage.goToDashboard(); await dashboardPage.fontsLink.click(); - await expect(dashboardPage.fontsTitle).toBeVisible(); + await expect(dashboardPage.mainHeading).toHaveText("Fonts"); await expect(dashboardPage.page).toHaveScreenshot(); }); @@ -45,7 +45,7 @@ test("User goes to an empty libraries page", async ({ page }) => { await dashboardPage.goToDashboard(); await dashboardPage.libsLink.click(); - await expect(dashboardPage.libsTitle).toBeVisible(); + await expect(dashboardPage.mainHeading).toHaveText("Libraries"); await expect(dashboardPage.page).toHaveScreenshot(); }); @@ -55,7 +55,7 @@ test("User goes to an empty search page", async ({ page }) => { await dashboardPage.goToSearch(); - await expect(dashboardPage.searchTitle).toBeVisible(); + await expect(dashboardPage.mainHeading).toHaveText("Search results"); await expect(dashboardPage.page).toHaveScreenshot(); }); @@ -81,40 +81,40 @@ test("User goes to a full dashboard", async ({ page }) => { await expect(dashboardPage.page).toHaveScreenshot(); }); -test("User goes to an full draft page", async ({ page }) => { +test("User goes to a full draft page", async ({ page }) => { const dashboardPage = new DashboardPage(page); await dashboardPage.setupDashboardFull(); await dashboardPage.goToDashboard(); await dashboardPage.draftsLink.click(); - await expect(dashboardPage.draftsTitle).toBeVisible(); + await expect(dashboardPage.mainHeading).toHaveText("Drafts"); await expect(dashboardPage.page).toHaveScreenshot(); }); -test("User goes to an full library page", async ({ page }) => { +test("User goes to a full library page", async ({ page }) => { const dashboardPage = new DashboardPage(page); await dashboardPage.setupDashboardFull(); await dashboardPage.goToDashboard(); await dashboardPage.libsLink.click(); - await expect(dashboardPage.libsTitle).toBeVisible(); + await expect(dashboardPage.mainHeading).toHaveText("Libraries"); await expect(dashboardPage.page).toHaveScreenshot(); }); -test("User goes to an full fonts page", async ({ page }) => { +test("User goes to a full fonts page", async ({ page }) => { const dashboardPage = new DashboardPage(page); await dashboardPage.setupDashboardFull(); await dashboardPage.goToDashboard(); await dashboardPage.fontsLink.click(); - await expect(dashboardPage.fontsTitle).toBeVisible(); + await expect(dashboardPage.mainHeading).toHaveText("Fonts"); await expect(dashboardPage.page).toHaveScreenshot(); }); -test("User goes to an full search page", async ({ page }) => { +test("User goes to a full search page", async ({ page }) => { const dashboardPage = new DashboardPage(page); await dashboardPage.setupDashboardFull(); @@ -123,7 +123,7 @@ test("User goes to an full search page", async ({ page }) => { await dashboardPage.searchInput.fill("New"); - await expect(dashboardPage.searchTitle).toBeVisible(); + await expect(dashboardPage.mainHeading).toHaveText("Search results"); await expect(dashboardPage.newFileName).toBeVisible(); await expect(dashboardPage.page).toHaveScreenshot(); }); @@ -146,7 +146,7 @@ test("User goes to user profile", async ({ page }) => { await dashboardPage.goToDashboard(); await dashboardPage.goToAccount(); - await expect(dashboardPage.userAccountHeading).toBeVisible(); + await expect(dashboardPage.mainHeading).toHaveText("Your account"); await expect(dashboardPage.page).toHaveScreenshot(); }); @@ -180,8 +180,6 @@ test("User opens teams selector with only one team", async ({ page }) => { const dashboardPage = new DashboardPage(page); await dashboardPage.goToDashboard(); - await expect(dashboardPage.projectsHeading).toBeVisible(); - await dashboardPage.teamDropdown.click(); await expect(page.getByText("Create new team")).toBeVisible(); @@ -193,8 +191,6 @@ test("User opens teams selector with more than one team", async ({ page }) => { await dashboardPage.setupDashboardFull(); await dashboardPage.goToDashboard(); - await expect(dashboardPage.projectsHeading).toBeVisible(); - await dashboardPage.teamDropdown.click(); await expect(page.getByText("Second Team")).toBeVisible(); From 6aeb87a122836f880f8acb8f505597830bffcacf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9s=20Moya?= Date: Fri, 21 Jun 2024 11:48:33 +0200 Subject: [PATCH 241/476] :bug: Rework svg export of deleted components --- frontend/src/app/main/render.cljs | 21 +++++++++++++-------- frontend/src/app/worker/export.cljs | 8 ++++---- 2 files changed, 17 insertions(+), 12 deletions(-) diff --git a/frontend/src/app/main/render.cljs b/frontend/src/app/main/render.cljs index bbf85e4add..4cec0c71ca 100644 --- a/frontend/src/app/main/render.cljs +++ b/frontend/src/app/main/render.cljs @@ -23,6 +23,7 @@ [app.common.geom.shapes.bounds :as gsb] [app.common.logging :as l] [app.common.math :as mth] + [app.common.types.components-list :as ctkl] [app.common.types.file :as ctf] [app.common.types.modifiers :as ctm] [app.common.types.shape-tree :as ctst] @@ -525,8 +526,10 @@ (mf/defc components-svg {::mf/wrap-props false} - [{:keys [data children embed include-metadata source]}] - (let [source (keyword (d/nilv source "components"))] + [{:keys [data children embed include-metadata deleted?]}] + (let [components (if (not deleted?) + (ctkl/components-seq data) + (ctkl/deleted-components-seq data))] [:& (mf/provider embed/context) {:value embed} [:& (mf/provider export/include-metadata-ctx) {:value include-metadata} [:svg {:version "1.1" @@ -536,9 +539,9 @@ :style {:display (when-not (some? children) "none")} :fill "none"} [:defs - (for [[id component] (source data)] + (for [component components] (let [component (ctf/load-component-objects data component)] - [:& component-symbol {:key (dm/str id) :component component}]))] + [:& component-symbol {:key (dm/str (:id component)) :component component}]))] children]]])) @@ -595,10 +598,12 @@ (rds/renderToStaticMarkup elem))))))) (defn render-components - [data source] + [data deleted?] (let [;; Join all components objects into a single map - objects (->> (source data) - (vals) + components (if (not deleted?) + (ctkl/components-seq data) + (ctkl/deleted-components-seq data)) + objects (->> components (map (partial ctf/load-component-objects data)) (map :objects) (reduce conj))] @@ -615,7 +620,7 @@ #js {:data data :embed true :include-metadata true - :source (name source)})] + :deleted? deleted?})] (rds/renderToStaticMarkup elem)))))))) (defn render-frame diff --git a/frontend/src/app/worker/export.cljs b/frontend/src/app/worker/export.cljs index 604845c73c..b43bbbe11a 100644 --- a/frontend/src/app/worker/export.cljs +++ b/frontend/src/app/worker/export.cljs @@ -52,7 +52,7 @@ :libraries (->> (:libraries file) (into #{}) (mapv str)) :exportType (d/name export-type) :hasComponents (d/not-empty? (ctkl/components-seq (:data file))) - :hasDeletedComponents (d/not-empty? (get-in file [:data :deleted-components])) + :hasDeletedComponents (d/not-empty? (ctkl/deleted-components-seq (:data file))) :hasMedia (d/not-empty? (get-in file [:data :media])) :hasColors (d/not-empty? (get-in file [:data :colors])) :hasTypographies (d/not-empty? (get-in file [:data :typographies]))}))))] @@ -151,12 +151,12 @@ (defn parse-library-components [file] - (->> (r/render-components (:data file) :components) + (->> (r/render-components (:data file) false) (rx/map #(vector (str (:id file) "/components.svg") %)))) (defn parse-deleted-components [file] - (->> (r/render-components (:data file) :deleted-components) + (->> (r/render-components (:data file) true) (rx/map #(vector (str (:id file) "/deleted-components.svg") %)))) (defn fetch-file-with-libraries @@ -380,7 +380,7 @@ deleted-components-stream (->> files-stream (rx/merge-map vals) - (rx/filter #(d/not-empty? (get-in % [:data :deleted-components]))) + (rx/filter #(d/not-empty? (ctkl/deleted-components-seq (:data %)))) (rx/merge-map parse-deleted-components)) pages-stream From 798970a9239d9accc8010a6bb47b1627e93dc1ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9s=20Moya?= Date: Fri, 21 Jun 2024 18:45:00 +0200 Subject: [PATCH 242/476] :bug: Rework svg import of deleted components --- common/src/app/common/files/builder.cljc | 85 +++++++++++++----------- frontend/src/app/main/render.cljs | 15 +++-- frontend/src/app/worker/import.cljs | 53 +++++++++------ 3 files changed, 88 insertions(+), 65 deletions(-) diff --git a/common/src/app/common/files/builder.cljc b/common/src/app/common/files/builder.cljc index 8605a5e1f9..988164c20a 100644 --- a/common/src/app/common/files/builder.cljc +++ b/common/src/app/common/files/builder.cljc @@ -41,16 +41,19 @@ (let [components-v2 (dm/get-in file [:data :options :components-v2]) component-id (:current-component-id file) change (cond-> change - (and add-container? (some? component-id)) + (and add-container? (some? component-id) (not components-v2)) (-> (assoc :component-id component-id) (cond-> (some? (:current-frame-id file)) (assoc :frame-id (:current-frame-id file)))) - (and add-container? (nil? component-id)) + (and add-container? (or (nil? component-id) components-v2)) (assoc :page-id (:current-page-id file) :frame-id (:current-frame-id file))) - valid? (ch/check-change! change)] + valid? (or (and components-v2 + (nil? (:component-id change)) + (nil? (:page-id change))) + (ch/check-change! change))] (when-not valid? (let [explain (sm/explain ::ch/change change)] @@ -62,7 +65,7 @@ ::sm/explain explain)))) (cond-> file - (and valid? (not (and components-v2 add-container? (some? component-id)))) + (and valid? (or (not add-container?) (some? (:component-id change)) (some? (:page-id change)))) (-> (update :changes conjv change) ;; In components-v2 we do not add shapes (update :data ch/process-changes [change] false)) ;; inside a component @@ -524,6 +527,11 @@ path (:path data) main-instance-id (:main-instance-id data) main-instance-page (:main-instance-page data) + + ;; In components v1 we must create the root shape and set it inside + ;; the :objects attribute of the component. When in components-v2, + ;; this will be ignored as the root shape has already been created + ;; in its page, by the normal page import. attrs (-> data (assoc :type root-type) (assoc :x (:x selrect)) @@ -559,6 +567,29 @@ (assoc :current-component-id (:id obj)) (assoc :current-frame-id (if (= (:type obj) :frame) (:id obj) uuid/zero)))))) +(defn start-deleted-component + [file data] + (let [attrs (-> data + (assoc :id (:main-instance-id data)) + (assoc :component-file (:id file)) + (assoc :component-id (:id data)) + (assoc :x (:main-instance-x data)) + (assoc :y (:main-instance-y data)) + (dissoc :path) + (dissoc :main-instance-id) + (dissoc :main-instance-page) + (dissoc :main-instance-x) + (dissoc :main-instance-y) + (dissoc :main-instance-parent) + (dissoc :main-instance-frame))] + ;; To create a deleted component, first we add all shapes of the main instance + ;; in the main instance page, and in the finish event we delete it. + (-> file + (update :parent-stack conjv (:main-instance-parent data)) + (assoc :current-page-id (:main-instance-page data)) + (assoc :current-frame-id (:main-instance-frame data)) + (add-artboard attrs)))) + (defn finish-component [file] (let [component-id (:current-component-id file) @@ -623,43 +654,18 @@ (update :parent-stack pop)))) (defn finish-deleted-component - [component-id page-id main-instance-x main-instance-y file] + [component-id file] (let [file (assoc file :current-component-id component-id) - page (ctpl/get-page (:data file) page-id) - component (ctkl/get-component (:data file) component-id) - main-instance-id (:main-instance-id component) - - ; To obtain a deleted component, we first create the component - ; and the main instance in the workspace, and then delete them. - [_ shapes] - (ctn/make-component-instance page - component - (:data file) - (gpt/point main-instance-x - main-instance-y) - true - {:main-instance true - :force-id main-instance-id})] - (as-> file $ - (reduce #(commit-change %1 - {:type :add-obj - :id (:id %2) - :page-id (:id page) - :parent-id (:parent-id %2) - :frame-id (:frame-id %2) - :ignore-touched true - :obj %2}) - $ - shapes) - (commit-change $ {:type :del-component + component (ctkl/get-component (:data file) component-id)] + (-> file + (close-artboard) + (commit-change {:type :del-component :id component-id}) - (reduce #(commit-change %1 {:type :del-obj - :page-id page-id - :ignore-touched true - :id (:id %2)}) - $ - shapes) - (dissoc $ :current-component-id)))) + (commit-change {:type :del-obj + :page-id (:main-instance-page component) + :id (:main-instance-id component) + :ignore-touched true}) + (dissoc :current-page-id)))) (defn create-component-instance [file data] @@ -670,7 +676,6 @@ page-id (:current-page-id file) page (ctpl/get-page (:data file) page-id) component (ctkl/get-component (:data file) component-id) - ;; main-instance-id (:main-instance-id component) components-v2 (dm/get-in file [:options :components-v2]) diff --git a/frontend/src/app/main/render.cljs b/frontend/src/app/main/render.cljs index 4cec0c71ca..a371a67d3d 100644 --- a/frontend/src/app/main/render.cljs +++ b/frontend/src/app/main/render.cljs @@ -485,15 +485,18 @@ path (:path component) root-id (or (:main-instance-id component) (:id component)) + orig-root (get (:objects component) root-id) objects (adapt-objects-for-shape (:objects component) root-id) root-shape (get objects root-id) selrect (:selrect root-shape) - main-instance-id (:main-instance-id component) - main-instance-page (:main-instance-page component) - main-instance-x (:main-instance-x component) - main-instance-y (:main-instance-y component) + main-instance-id (:main-instance-id component) + main-instance-page (:main-instance-page component) + main-instance-x (when (:deleted component) (:x orig-root)) + main-instance-y (when (:deleted component) (:y orig-root)) + main-instance-parent (when (:deleted component) (:parent-id orig-root)) + main-instance-frame (when (:deleted component) (:frame-id orig-root)) vbox (format-viewbox @@ -517,7 +520,9 @@ "penpot:main-instance-id" main-instance-id "penpot:main-instance-page" main-instance-page "penpot:main-instance-x" main-instance-x - "penpot:main-instance-y" main-instance-y} + "penpot:main-instance-y" main-instance-y + "penpot:main-instance-parent" main-instance-parent + "penpot:main-instance-frame" main-instance-frame} [:title name] [:> shape-container {:shape root-shape} (case (:type root-shape) diff --git a/frontend/src/app/worker/import.cljs b/frontend/src/app/worker/import.cljs index 901b3edcd4..186de184d6 100644 --- a/frontend/src/app/worker/import.cljs +++ b/frontend/src/app/worker/import.cljs @@ -253,6 +253,7 @@ frame (when (and (some? frame-id) (not= frame-id uuid/zero)) (fb/lookup-shape file frame-id))] + (js/console.log " translate-frame" (clj->js frame)) (if (some? frame) (-> data (d/update-when :x + (:x frame)) @@ -283,7 +284,13 @@ (cond-> (some? old-id) (assoc :id (resolve old-id))) (cond-> (< (:version context 1) 2) - (translate-frame type file)))] + (translate-frame type file)) + ;; Shapes inside the deleted component should be stored with absolute coordinates + ;; so we calculate that with the x and y stored in the context + (cond-> (:x context) + (assoc :x (:x context))) + (cond-> (:y context) + (assoc :y (:y context))))] (try (let [file (case type :frame (fb/add-artboard file data) @@ -455,17 +462,19 @@ (rx/map fb/finish-component)))) (defn import-deleted-component [context file node] - (let [resolve (:resolve context) - content (parser/find-node node :g) - file-id (:id file) - old-id (parser/get-id node) - id (resolve old-id) - path (get-in node [:attrs :penpot:path] "") - main-instance-id (resolve (uuid (get-in node [:attrs :penpot:main-instance-id] ""))) - main-instance-page (resolve (uuid (get-in node [:attrs :penpot:main-instance-page] ""))) - main-instance-x (get-in node [:attrs :penpot:main-instance-x] "") - main-instance-y (get-in node [:attrs :penpot:main-instance-y] "") - type (parser/get-type content) + (let [resolve (:resolve context) + content (parser/find-node node :g) + file-id (:id file) + old-id (parser/get-id node) + id (resolve old-id) + path (get-in node [:attrs :penpot:path] "") + main-instance-id (resolve (uuid (get-in node [:attrs :penpot:main-instance-id] ""))) + main-instance-page (resolve (uuid (get-in node [:attrs :penpot:main-instance-page] ""))) + main-instance-x (-> (get-in node [:attrs :penpot:main-instance-x] "") (d/parse-double)) + main-instance-y (-> (get-in node [:attrs :penpot:main-instance-y] "") (d/parse-double)) + main-instance-parent (resolve (uuid (get-in node [:attrs :penpot:main-instance-parent] ""))) + main-instance-frame (resolve (uuid (get-in node [:attrs :penpot:main-instance-frame] ""))) + type (parser/get-type content) data (-> (parser/parse-data type content) (assoc :path path) @@ -473,12 +482,20 @@ (assoc :main-instance-id main-instance-id) (assoc :main-instance-page main-instance-page) (assoc :main-instance-x main-instance-x) - (assoc :main-instance-y main-instance-y)) + (assoc :main-instance-y main-instance-y) + (assoc :main-instance-parent main-instance-parent) + (assoc :main-instance-frame main-instance-frame)) - file (-> file (fb/start-component data)) + file (-> file + (fb/start-component data) + (fb/start-deleted-component data)) component-id (:current-component-id file) - children (parser/node-seq node)] + children (parser/node-seq node) + ;; Shapes inside the deleted component should be stored with absolute coordinates so we include this info in the context. + context (-> context + (assoc :x main-instance-x) + (assoc :y main-instance-y))] (->> (rx/from children) (rx/filter parser/shape?) (rx/skip 1) @@ -486,11 +503,7 @@ (rx/mapcat (partial resolve-media context file-id)) (rx/reduce (partial process-import-node context) file) (rx/map fb/finish-component) - (rx/map (partial fb/finish-deleted-component - component-id - main-instance-page - main-instance-x - main-instance-y))))) + (rx/map (partial fb/finish-deleted-component component-id))))) (defn process-pages [context file] From 30edca024af3d517ae5b47faa8af67bff533cdd6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bel=C3=A9n=20Albeza?= Date: Tue, 25 Jun 2024 15:23:44 +0200 Subject: [PATCH 243/476] :sparkles: Remove unneeded draftsFile and newFile locators in dashboard POM --- frontend/playwright/ui/pages/DashboardPage.js | 5 +---- frontend/playwright/ui/specs/dashboard.spec.js | 5 +++-- frontend/playwright/ui/visual-specs/visual-dashboard.spec.js | 5 ++--- 3 files changed, 6 insertions(+), 9 deletions(-) diff --git a/frontend/playwright/ui/pages/DashboardPage.js b/frontend/playwright/ui/pages/DashboardPage.js index 95b63befd6..76fd633d12 100644 --- a/frontend/playwright/ui/pages/DashboardPage.js +++ b/frontend/playwright/ui/pages/DashboardPage.js @@ -64,15 +64,11 @@ export class DashboardPage extends BaseWebSocketPage { this.projectName = page.getByText("Project 1"); this.draftsLink = this.sidebar.getByText("Drafts"); - this.draftsFile = page.getByText(/New File 1/); - this.fontsLink = this.sidebar.getByText("Fonts"); - this.libsLink = this.sidebar.getByText("Libraries"); this.searchButton = page.getByRole("button", { name: "dashboard-search" }); this.searchInput = page.getByPlaceholder("Search…"); - this.newFileName = page.getByText("New File 3"); this.teamDropdown = this.sidebar.getByRole("button", { name: "Your Penpot" }); this.userAccount = this.sidebar.getByRole("button", { name: /Princesa Leia/ }); @@ -183,6 +179,7 @@ export class DashboardPage extends BaseWebSocketPage { await this.page.goto( `#/dashboard/team/${DashboardPage.anyTeamId}/projects/${DashboardPage.draftProjectId}`, ); + await expect(this.mainHeading).toHaveText("Drafts"); } async goToAccount() { diff --git a/frontend/playwright/ui/specs/dashboard.spec.js b/frontend/playwright/ui/specs/dashboard.spec.js index 515ad2b777..3e105199c4 100644 --- a/frontend/playwright/ui/specs/dashboard.spec.js +++ b/frontend/playwright/ui/specs/dashboard.spec.js @@ -35,11 +35,12 @@ test("User goes to draft page", async ({ page }) => { await expect(dashboardPage.mainHeading).toHaveText("Drafts"); }); -test("User loads the draft page", async ({ page }) => { +test("Lists files in the drafts page", async ({ page }) => { const dashboardPage = new DashboardPage(page); await dashboardPage.setupDrafts(); await dashboardPage.goToDrafts(); - await expect(dashboardPage.draftsFile).toBeVisible(); + await expect(dashboardPage.page.getByRole("button", { name: /New File 1/ })).toBeVisible(); + await expect(dashboardPage.page.getByRole("button", { name: /New File 2/ })).toBeVisible(); }); diff --git a/frontend/playwright/ui/visual-specs/visual-dashboard.spec.js b/frontend/playwright/ui/visual-specs/visual-dashboard.spec.js index c157d9159a..d0dfa96775 100644 --- a/frontend/playwright/ui/visual-specs/visual-dashboard.spec.js +++ b/frontend/playwright/ui/visual-specs/visual-dashboard.spec.js @@ -77,7 +77,6 @@ test("User goes to a full dashboard", async ({ page }) => { await dashboardPage.goToDashboard(); - await expect(dashboardPage.draftsFile).toBeVisible(); await expect(dashboardPage.page).toHaveScreenshot(); }); @@ -121,10 +120,10 @@ test("User goes to a full search page", async ({ page }) => { await dashboardPage.goToSearch(); await expect(dashboardPage.searchInput).toBeVisible(); - await dashboardPage.searchInput.fill("New"); + await dashboardPage.searchInput.fill("3"); await expect(dashboardPage.mainHeading).toHaveText("Search results"); - await expect(dashboardPage.newFileName).toBeVisible(); + await expect(dashboardPage.page.getByRole("button", { name: "New File 3" })).toBeVisible(); await expect(dashboardPage.page).toHaveScreenshot(); }); From fc30e81072342fd162f6637e0aeb8171366c1521 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Tue, 25 Jun 2024 15:47:24 +0200 Subject: [PATCH 244/476] :bug: Make component changes watcher look on local commits only --- frontend/src/app/main/data/workspace/libraries.cljs | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/frontend/src/app/main/data/workspace/libraries.cljs b/frontend/src/app/main/data/workspace/libraries.cljs index b8f7004722..81b064c494 100644 --- a/frontend/src/app/main/data/workspace/libraries.cljs +++ b/frontend/src/app/main/data/workspace/libraries.cljs @@ -1164,14 +1164,15 @@ changes-s (->> stream - (rx/filter #(or (dch/commit? %) - (ptk/type? % ::dwn/handle-file-change))) + (rx/filter dch/commit?) + (rx/map deref) + (rx/filter #(= :local (:source %))) (rx/observe-on :async)) check-changes (fn [[event [old-data _mid_data _new-data]]] (when old-data - (let [{:keys [file-id changes save-undo? undo-group]} (deref event) + (let [{:keys [file-id changes save-undo? undo-group]} event changed-components (when (or (nil? file-id) (= file-id (:id old-data))) @@ -1181,7 +1182,7 @@ (if (d/not-empty? changed-components) (if save-undo? - (do (log/info :msg "DETECTED COMPONENTS CHANGED" + (do (log/info :hint "detected component changes" :ids (map str changed-components) :undo-group undo-group) @@ -1190,7 +1191,8 @@ ;; even if save-undo? is false, we need to update the :modified-date of the component ;; (for example, for undos) (->> (rx/from changed-components) - (rx/map #(touch-component %)))) + (rx/map touch-component))) + (rx/empty))))) changes-s From 686f59b0de1ee73837a26a4efb1bab025bbf79cd Mon Sep 17 00:00:00 2001 From: Alejandro Alonso Date: Tue, 25 Jun 2024 15:53:17 +0200 Subject: [PATCH 245/476] :bug: Fix duplicate shapes with alt key --- frontend/src/app/main/data/workspace/modifiers.cljs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/frontend/src/app/main/data/workspace/modifiers.cljs b/frontend/src/app/main/data/workspace/modifiers.cljs index 74e243af84..d8e80e4d56 100644 --- a/frontend/src/app/main/data/workspace/modifiers.cljs +++ b/frontend/src/app/main/data/workspace/modifiers.cljs @@ -559,8 +559,10 @@ :layout-grid-rows]}) ;; We've applied the text-modifier so we can dissoc the temporary data (fn [state] - (update state :workspace-text-modifier #(apply dissoc % ids))) - (clear-local-transform)) + (update state :workspace-text-modifier #(apply dissoc % ids)))) + (if (nil? modifiers) + (rx/of (clear-local-transform)) + (rx/empty)) (if undo-transation? (rx/of (dwu/commit-undo-transaction undo-id)) (rx/empty)))))))) From 58466e6488216eb67d8d0727c29f182f853bd9eb Mon Sep 17 00:00:00 2001 From: Alejandro Alonso Date: Wed, 26 Jun 2024 08:27:24 +0200 Subject: [PATCH 246/476] :bug: Color library loses association with shapes when exporting/importing the document --- CHANGES.md | 1 + frontend/src/app/worker/import.cljs | 32 +++++++++++++++++++++++++++++ 2 files changed, 33 insertions(+) diff --git a/CHANGES.md b/CHANGES.md index eaf2c59a29..43ff3f8ab8 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -49,6 +49,7 @@ - Export shapes that are rotated act a bit strange when reimported [Taiga #7585](https://tree.taiga.io/project/penpot/issue/7585) - Penpot crashes when a new colorpicker is created while uploading an image to another instance [Taiga #8119](https://tree.taiga.io/project/penpot/issue/8119) - Removing Underline and Strikethrough Affects the Previous Text Object [Taiga #8103](https://tree.taiga.io/project/penpot/issue/8103) +- Color library loses association with shapes when exporting/importing the document [Taiga #8132](https://tree.taiga.io/project/penpot/issue/8132) ## 2.0.3 diff --git a/frontend/src/app/worker/import.cljs b/frontend/src/app/worker/import.cljs index 186de184d6..beb6e2b14e 100644 --- a/frontend/src/app/worker/import.cljs +++ b/frontend/src/app/worker/import.cljs @@ -223,6 +223,32 @@ (uuid? (get item :typography-ref-file)) (d/update-when :typography-ref-file resolve))))))) +(defn resolve-fills-content + [fills context] + (let [resolve (:resolve context)] + (->> fills + (mapv + (fn [fill] + (cond-> fill + (uuid? (get fill :fill-color-ref-id)) + (d/update-when :fill-color-ref-id resolve) + + (uuid? (get fill :fill-color-ref-file)) + (d/update-when :fill-color-ref-file resolve))))))) + +(defn resolve-strokes-content + [fills context] + (let [resolve (:resolve context)] + (->> fills + (mapv + (fn [fill] + (cond-> fill + (uuid? (get fill :stroke-color-ref-id)) + (d/update-when :stroke-color-ref-id resolve) + + (uuid? (get fill :stroke-color-ref-file)) + (d/update-when :stroke-color-ref-file resolve))))))) + (defn resolve-data-ids [data type context] (let [resolve (:resolve context)] @@ -238,6 +264,12 @@ (cond-> (= type :text) (d/update-when :content resolve-text-content context)) + (cond-> (:fills data) + (d/update-when :fills resolve-fills-content context)) + + (cond-> (:strokes data) + (d/update-when :strokes resolve-strokes-content context)) + (cond-> (and (= type :frame) (= :grid (:layout data))) (update :layout-grid-cells From 44b6d1a5160f470b0e659378eaf34fb1508af2d8 Mon Sep 17 00:00:00 2001 From: Jordi Sala Morales Date: Thu, 6 Jun 2024 12:40:29 +0000 Subject: [PATCH 247/476] :sparkles: Return blob when exporting using the lib-penpot --- frontend/src/app/libs/file_builder.cljs | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/frontend/src/app/libs/file_builder.cljs b/frontend/src/app/libs/file_builder.cljs index 63df0eb876..50ce20bf82 100644 --- a/frontend/src/app/libs/file_builder.cljs +++ b/frontend/src/app/libs/file_builder.cljs @@ -12,7 +12,6 @@ [app.common.media :as cm] [app.common.types.components-list :as ctkl] [app.common.uuid :as uuid] - [app.util.dom :as dom] [app.util.json :as json] [app.util.webapi :as wapi] [app.util.zip :as uz] @@ -262,12 +261,14 @@ (uuid/next)) (export [_] - (->> (export-file file) - (rx/subs! - (fn [value] - (when (not (contains? value :type)) - (let [[file export-blob] value] - (dom/trigger-download (:name file) export-blob)))))))) + (js/Promise. + (fn [resolve _reject] + (-> (export-file file) + (rx/subscribe + (fn [value] + (when (not (contains? value :type)) + (let [[_ export-blob] value] + (resolve export-blob)))))))))) (defn create-file-export [^string name] (binding [cfeat/*current* cfeat/default-features] From 4faf9bbff1d836b182d556c30a3cef5670f0a8b5 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Wed, 26 Jun 2024 11:23:28 +0200 Subject: [PATCH 248/476] :paperclip: Add minor change on how promise is created from observable --- frontend/src/app/libs/file_builder.cljs | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/frontend/src/app/libs/file_builder.cljs b/frontend/src/app/libs/file_builder.cljs index 50ce20bf82..1d8e2815ff 100644 --- a/frontend/src/app/libs/file_builder.cljs +++ b/frontend/src/app/libs/file_builder.cljs @@ -17,7 +17,8 @@ [app.util.zip :as uz] [app.worker.export :as e] [beicon.v2.core :as rx] - [cuerdas.core :as str])) + [cuerdas.core :as str] + [promesa.core :as p])) (defn parse-data [data] (as-> data $ @@ -261,14 +262,16 @@ (uuid/next)) (export [_] - (js/Promise. - (fn [resolve _reject] - (-> (export-file file) - (rx/subscribe - (fn [value] - (when (not (contains? value :type)) - (let [[_ export-blob] value] - (resolve export-blob)))))))))) + (p/create + (fn [resolve reject] + (->> (export-file file) + (rx/take 1) + (rx/subs! + (fn [value] + (when (not (contains? value :type)) + (let [[_ export-blob] value] + (resolve export-blob)))) + reject)))))) (defn create-file-export [^string name] (binding [cfeat/*current* cfeat/default-features] From 9ca1535a65c9f85ba82f9b4e1c4a377696ce8d45 Mon Sep 17 00:00:00 2001 From: Alejandro Alonso Date: Wed, 26 Jun 2024 12:57:53 +0200 Subject: [PATCH 249/476] :bug: Selected colors do not appear in the color palette --- frontend/src/app/main/data/workspace/colors.cljs | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/frontend/src/app/main/data/workspace/colors.cljs b/frontend/src/app/main/data/workspace/colors.cljs index 081ec53397..af771bd4aa 100644 --- a/frontend/src/app/main/data/workspace/colors.cljs +++ b/frontend/src/app/main/data/workspace/colors.cljs @@ -609,9 +609,13 @@ (assoc :type :color)))))))) ptk/WatchEvent (watch [_ state _] - ;; Type can be null, because the colorpicker can be closed while a color image finish its upload - (when (and add-recent? (some? (:type state))) - (let [formated-color (get-color-from-colorpicker-state (:colorpicker state))] + (let [selected-type (-> state + :colorpicker + :type) + formated-color (get-color-from-colorpicker-state (:colorpicker state)) + ;; Type is set to color on closing the colorpicker, but we can can close it while still uploading an image fill + ignore-color? (and (= selected-type :color) (nil? (:color formated-color)))] + (when (and add-recent? (not ignore-color?)) (rx/of (dwl/add-recent-color formated-color))))))) (defn update-colorpicker-gradient From 37d0cec26518689b41dc29d8ec0cdcebf8474d51 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Wed, 26 Jun 2024 14:59:38 +0200 Subject: [PATCH 250/476] :bug: Properly report importation errors --- backend/src/app/http/sse.clj | 2 ++ backend/src/app/rpc/commands/binfile.clj | 26 ++++++++++-------------- 2 files changed, 13 insertions(+), 15 deletions(-) diff --git a/backend/src/app/http/sse.clj b/backend/src/app/http/sse.clj index 8688010916..3da84322cb 100644 --- a/backend/src/app/http/sse.clj +++ b/backend/src/app/http/sse.clj @@ -61,6 +61,8 @@ (let [result (handler)] (events/tap :end result)) (catch Throwable cause + (l/err :hint "unexpected error on processing sse response" + :cause cause) (events/tap :error (errors/handle' cause request))) (finally (sp/close! events/*channel*) diff --git a/backend/src/app/rpc/commands/binfile.clj b/backend/src/app/rpc/commands/binfile.clj index d6759eb42a..3f5bb931c5 100644 --- a/backend/src/app/rpc/commands/binfile.clj +++ b/backend/src/app/rpc/commands/binfile.clj @@ -30,14 +30,12 @@ ;; --- Command: export-binfile -(def ^:private - schema:export-binfile - (sm/define - [:map {:title "export-binfile"} - [:name :string] - [:file-id ::sm/uuid] - [:include-libraries :boolean] - [:embed-assets :boolean]])) +(def ^:private schema:export-binfile + [:map {:title "export-binfile"} + [:name :string] + [:file-id ::sm/uuid] + [:include-libraries :boolean] + [:embed-assets :boolean]]) (sv/defmethod ::export-binfile "Export a penpot file in a binary format." @@ -76,13 +74,11 @@ {:id project-id}) result)) -(def ^:private - schema:import-binfile - (sm/define - [:map {:title "import-binfile"} - [:name :string] - [:project-id ::sm/uuid] - [:file ::media/upload]])) +(def ^:private schema:import-binfile + [:map {:title "import-binfile"} + [:name :string] + [:project-id ::sm/uuid] + [:file ::media/upload]]) (sv/defmethod ::import-binfile "Import a penpot file in a binary format." From 1c1929ed329fee963a2d0cc9fab95591b53e1644 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Wed, 26 Jun 2024 15:00:47 +0200 Subject: [PATCH 251/476] :paperclip: Add helpers for process deletion cascade of old objects --- backend/src/app/srepl/main.clj | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/backend/src/app/srepl/main.clj b/backend/src/app/srepl/main.clj index c71c58db01..aed63f1cdf 100644 --- a/backend/src/app/srepl/main.clj +++ b/backend/src/app/srepl/main.clj @@ -582,6 +582,38 @@ :deleted-at (dt/now) :id file-id}))))) + +(defn process-deleted-teams-cascade + [] + (->> (db/exec! main/system ["select id, deleted_at from team where deleted_at is not null"]) + (run! (fn [{:keys [id deleted-at]}] + (wrk/invoke! (-> main/system + (assoc ::wrk/task :delete-object) + (assoc ::wrk/params {:object :team + :deleted-at deleted-at + :id id}))))))) + + +(defn process-deleted-projects-cascade + [] + (->> (db/exec! main/system ["select id, deleted_at from project where deleted_at is not null"]) + (run! (fn [{:keys [id deleted-at]}] + (wrk/invoke! (-> main/system + (assoc ::wrk/task :delete-object) + (assoc ::wrk/params {:object :project + :deleted-at deleted-at + :id id}))))))) + +(defn process-deleted-files-cascade + [] + (->> (db/exec! main/system ["select id, deleted_at from file where deleted_at is not null"]) + (run! (fn [{:keys [id deleted-at]}] + (wrk/invoke! (-> main/system + (assoc ::wrk/task :delete-object) + (assoc ::wrk/params {:object :file + :deleted-at deleted-at + :id id}))))))) + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; MISC ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; From f306ddb51f2bf5cd78bd4b3c8448f04599732e75 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bel=C3=A9n=20Albeza?= Date: Wed, 26 Jun 2024 17:01:58 +0200 Subject: [PATCH 252/476] :bug: Fix onboarding playwright test on CI mode --- frontend/playwright/ui/pages/DashboardPage.js | 2 +- frontend/src/app/main/ui/dashboard/files.cljs | 2 +- frontend/src/app/main/ui/dashboard/fonts.cljs | 2 +- frontend/src/app/main/ui/dashboard/libraries.cljs | 2 +- frontend/src/app/main/ui/dashboard/projects.cljs | 2 +- frontend/src/app/main/ui/dashboard/search.cljs | 2 +- frontend/src/app/main/ui/dashboard/team.cljs | 2 +- frontend/src/app/main/ui/settings.cljs | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/frontend/playwright/ui/pages/DashboardPage.js b/frontend/playwright/ui/pages/DashboardPage.js index 76fd633d12..0c9bff0e99 100644 --- a/frontend/playwright/ui/pages/DashboardPage.js +++ b/frontend/playwright/ui/pages/DashboardPage.js @@ -58,7 +58,7 @@ export class DashboardPage extends BaseWebSocketPage { this.sidebar = page.getByTestId("dashboard-sidebar"); this.sidebarMenu = this.sidebar.getByRole("menu"); - this.mainHeading = page.getByRole("heading", { level: 1 }); + this.mainHeading = page.getByTestId("dashboard-header").getByRole("heading", { level: 1 }); this.addProjectButton = page.getByRole("button", { name: "+ NEW PROJECT" }); this.projectName = page.getByText("Project 1"); diff --git a/frontend/src/app/main/ui/dashboard/files.cljs b/frontend/src/app/main/ui/dashboard/files.cljs index 12994b559e..e533a6b857 100644 --- a/frontend/src/app/main/ui/dashboard/files.cljs +++ b/frontend/src/app/main/ui/dashboard/files.cljs @@ -66,7 +66,7 @@ (dd/clear-selected-files))))] - [:header {:class (stl/css :dashboard-header)} + [:header {:class (stl/css :dashboard-header) :data-testid "dashboard-header"} (if (:is-default project) [:div#dashboard-drafts-title {:class (stl/css :dashboard-title)} [:h1 (tr "labels.drafts")]] diff --git a/frontend/src/app/main/ui/dashboard/fonts.cljs b/frontend/src/app/main/ui/dashboard/fonts.cljs index ef5687740b..174b9ecfbd 100644 --- a/frontend/src/app/main/ui/dashboard/fonts.cljs +++ b/frontend/src/app/main/ui/dashboard/fonts.cljs @@ -47,7 +47,7 @@ ::mf/private true} [{:keys [section team]}] (use-page-title team section) - [:header {:class (stl/css :dashboard-header)} + [:header {:class (stl/css :dashboard-header) :data-testid "dashboard-header"} [:div#dashboard-fonts-title {:class (stl/css :dashboard-title)} [:h1 (tr "labels.fonts")]]]) diff --git a/frontend/src/app/main/ui/dashboard/libraries.cljs b/frontend/src/app/main/ui/dashboard/libraries.cljs index dd543c154e..78238721e9 100644 --- a/frontend/src/app/main/ui/dashboard/libraries.cljs +++ b/frontend/src/app/main/ui/dashboard/libraries.cljs @@ -48,7 +48,7 @@ (dd/clear-selected-files))) [:* - [:header {:class (stl/css :dashboard-header)} + [:header {:class (stl/css :dashboard-header) :data-testid "dashboard-header"} [:div#dashboard-libraries-title {:class (stl/css :dashboard-title)} [:h1 (tr "dashboard.libraries-title")]]] [:section {:class (stl/css :dashboard-container :no-bg :dashboard-shared) :ref rowref} diff --git a/frontend/src/app/main/ui/dashboard/projects.cljs b/frontend/src/app/main/ui/dashboard/projects.cljs index a894ee9327..deacac12a6 100644 --- a/frontend/src/app/main/ui/dashboard/projects.cljs +++ b/frontend/src/app/main/ui/dashboard/projects.cljs @@ -46,7 +46,7 @@ {::mf/wrap [mf/memo]} [] (let [on-click (mf/use-fn #(st/emit! (dd/create-project)))] - [:header {:class (stl/css :dashboard-header)} + [:header {:class (stl/css :dashboard-header) :data-testid "dashboard-header"} [:div#dashboard-projects-title {:class (stl/css :dashboard-title)} [:h1 (tr "dashboard.projects-title")]] [:button {:class (stl/css :btn-secondary :btn-small) diff --git a/frontend/src/app/main/ui/dashboard/search.cljs b/frontend/src/app/main/ui/dashboard/search.cljs index 3b4d090996..401d334944 100644 --- a/frontend/src/app/main/ui/dashboard/search.cljs +++ b/frontend/src/app/main/ui/dashboard/search.cljs @@ -37,7 +37,7 @@ (st/emit! (dd/search {:search-term search-term}) (dd/clear-selected-files)))) [:* - [:header {:class (stl/css :dashboard-header)} + [:header {:class (stl/css :dashboard-header) :data-testid "dashboard-header"} [:div#dashboard-search-title {:class (stl/css :dashboard-title)} [:h1 (tr "dashboard.title-search")]]] diff --git a/frontend/src/app/main/ui/dashboard/team.cljs b/frontend/src/app/main/ui/dashboard/team.cljs index f5860f85c0..e3d19a10e0 100644 --- a/frontend/src/app/main/ui/dashboard/team.cljs +++ b/frontend/src/app/main/ui/dashboard/team.cljs @@ -81,7 +81,7 @@ :team team :origin :team}))))] - [:header {:class (stl/css :dashboard-header :team)} + [:header {:class (stl/css :dashboard-header :team) :data-testid "dashboard-header"} [:div {:class (stl/css :dashboard-title)} [:h1 (cond members-section? (tr "labels.members") diff --git a/frontend/src/app/main/ui/settings.cljs b/frontend/src/app/main/ui/settings.cljs index 6d23aaa36f..04a9a08f20 100644 --- a/frontend/src/app/main/ui/settings.cljs +++ b/frontend/src/app/main/ui/settings.cljs @@ -26,7 +26,7 @@ (mf/defc header {::mf/wrap [mf/memo]} [] - [:header {:class (stl/css :dashboard-header)} + [:header {:class (stl/css :dashboard-header) :data-testid "dashboard-header"} [:div {:class (stl/css :dashboard-title)} [:h1 {:data-testid "account-title"} (tr "dashboard.your-account-title")]]]) From 16d0b925fa950d32c45b384896628e0597d14940 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bel=C3=A9n=20Albeza?= Date: Wed, 26 Jun 2024 17:02:24 +0200 Subject: [PATCH 253/476] :bug: Fix workspace 'make group' test on Mac --- frontend/playwright/ui/specs/workspace.spec.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/playwright/ui/specs/workspace.spec.js b/frontend/playwright/ui/specs/workspace.spec.js index 086b7de193..f069ed246f 100644 --- a/frontend/playwright/ui/specs/workspace.spec.js +++ b/frontend/playwright/ui/specs/workspace.spec.js @@ -50,7 +50,7 @@ test("User makes a group", async ({ page }) => { pageId: "6191cd35-bb1f-81f7-8004-7cc63d087375", }); await workspacePage.clickLeafLayer("Rectangle"); - await workspacePage.page.keyboard.press("ControlOrMeta+g"); + await workspacePage.page.keyboard.press("Control+g"); await workspacePage.expectSelectedLayer("Group"); }); From f393ce927359e7117c4479c276bb1d8b2f99b5fc Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Wed, 26 Jun 2024 19:46:29 +0200 Subject: [PATCH 254/476] :bug: Add migration for fix path shapes with invalid curve segment params --- common/src/app/common/files/defaults.cljc | 2 +- common/src/app/common/files/migrations.cljc | 51 ++++++++++++++++++++- common/src/app/common/svg.cljc | 1 - frontend/src/app/util/path/format.cljs | 2 + 4 files changed, 53 insertions(+), 3 deletions(-) diff --git a/common/src/app/common/files/defaults.cljc b/common/src/app/common/files/defaults.cljc index 91acf65394..0a2d031dbf 100644 --- a/common/src/app/common/files/defaults.cljc +++ b/common/src/app/common/files/defaults.cljc @@ -6,4 +6,4 @@ (ns app.common.files.defaults) -(def version 49) +(def version 50) diff --git a/common/src/app/common/files/migrations.cljc b/common/src/app/common/files/migrations.cljc index 4346309776..528345a6c2 100644 --- a/common/src/app/common/files/migrations.cljc +++ b/common/src/app/common/files/migrations.cljc @@ -957,6 +957,54 @@ (update data :pages-index update-vals update-page))) +(defn migrate-up-50 + "This migration mainly fixes paths with curve-to segments + without :c1x :c1y :c2x :c2y properties. Additionally, we found a + case where the params instead to be plain hash-map, is a points + instance. This migration normalizes all params to plain map." + + [data] + (let [update-segment + (fn [{:keys [command params] :as segment}] + (let [params (into {} params) + params (cond + (= :curve-to command) + (let [x (get params :x) + y (get params :y)] + + (cond-> params + (nil? (:c1x params)) + (assoc :c1x x) + + (nil? (:c1y params)) + (assoc :c1y y) + + (nil? (:c2x params)) + (assoc :c2x x) + + (nil? (:c2y params)) + (assoc :c2y y))) + + :else + params)] + + (assoc segment :params params))) + + update-shape + (fn [shape] + (if (cfh/path-shape? shape) + (d/update-when shape :content (fn [content] (mapv update-segment content))) + shape)) + + update-container + (fn [page] + (d/update-when page :objects update-vals update-shape))] + + (-> data + (update :pages-index update-vals update-container) + (update :components update-vals update-container)))) + + (def migrations "A vector of all applicable migrations" [{:id 2 :migrate-up migrate-up-2} @@ -997,4 +1045,5 @@ {:id 46 :migrate-up migrate-up-46} {:id 47 :migrate-up migrate-up-47} {:id 48 :migrate-up migrate-up-48} - {:id 49 :migrate-up migrate-up-49}]) + {:id 49 :migrate-up migrate-up-49} + {:id 50 :migrate-up migrate-up-50}]) diff --git a/common/src/app/common/svg.cljc b/common/src/app/common/svg.cljc index 1b50a9dded..4b9f715721 100644 --- a/common/src/app/common/svg.cljc +++ b/common/src/app/common/svg.cljc @@ -1046,7 +1046,6 @@ (str/includes? data "]*>" ""))) - (defn parse [text] #?(:cljs (tubax/xml->clj text) diff --git a/frontend/src/app/util/path/format.cljs b/frontend/src/app/util/path/format.cljs index 5a5860341b..b120ff4d33 100644 --- a/frontend/src/app/util/path/format.cljs +++ b/frontend/src/app/util/path/format.cljs @@ -10,6 +10,8 @@ [app.common.svg.path.subpath :refer [pt=]] [app.util.array :as arr])) +;; TODO: move to common + (def path-precision 3) (defn- join-params From f786aff3fc0776efbe3acd89bdceba9ad2b97d5f Mon Sep 17 00:00:00 2001 From: Pablo Alba Date: Tue, 25 Jun 2024 13:36:37 +0200 Subject: [PATCH 255/476] :bug: Fix can't collapse groups when searching in the assets tab --- CHANGES.md | 1 + frontend/src/app/main/data/workspace.cljs | 8 ++++++++ frontend/src/app/main/ui/workspace/sidebar/assets.cljs | 4 ++++ .../app/main/ui/workspace/sidebar/assets/components.cljs | 6 ++++-- .../main/ui/workspace/sidebar/assets/file_library.cljs | 7 +++++-- 5 files changed, 22 insertions(+), 4 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index 43ff3f8ab8..53f918038e 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -50,6 +50,7 @@ - Penpot crashes when a new colorpicker is created while uploading an image to another instance [Taiga #8119](https://tree.taiga.io/project/penpot/issue/8119) - Removing Underline and Strikethrough Affects the Previous Text Object [Taiga #8103](https://tree.taiga.io/project/penpot/issue/8103) - Color library loses association with shapes when exporting/importing the document [Taiga #8132](https://tree.taiga.io/project/penpot/issue/8132) +- Fix can't collapse groups when searching in the assets tab [Taiga #8125](https://tree.taiga.io/project/penpot/issue/8125) ## 2.0.3 diff --git a/frontend/src/app/main/data/workspace.cljs b/frontend/src/app/main/data/workspace.cljs index c2ce35228c..5faee0a0c7 100644 --- a/frontend/src/app/main/data/workspace.cljs +++ b/frontend/src/app/main/data/workspace.cljs @@ -1096,6 +1096,14 @@ (update [_ state] (assoc-in state [:workspace-assets :open-status file-id section] open?)))) +(defn clear-assets-section-open + [] + (ptk/reify ::clear-assets-section-open + ptk/UpdateEvent + (update [_ state] + (assoc-in state [:workspace-assets :open-status] {})))) + + (defn set-assets-group-open [file-id section path open?] (ptk/reify ::set-assets-group-open diff --git a/frontend/src/app/main/ui/workspace/sidebar/assets.cljs b/frontend/src/app/main/ui/workspace/sidebar/assets.cljs index 85e31946b8..a1ec847289 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/assets.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/assets.cljs @@ -9,8 +9,10 @@ (:require [app.common.data.macros :as dm] [app.main.data.modal :as modal] + [app.main.data.workspace :as dw] [app.main.data.workspace.assets :as dwa] [app.main.refs :as refs] + [app.main.store :as st] [app.main.ui.components.context-menu-a11y :refer [context-menu-a11y]] [app.main.ui.components.search-bar :refer [search-bar]] [app.main.ui.context :as ctx] @@ -103,6 +105,7 @@ on-search-term-change (mf/use-fn (fn [event] + (st/emit! (dw/clear-assets-section-open)) (swap! filters* assoc :term event))) on-section-filter-change @@ -112,6 +115,7 @@ (dom/get-value)) (as-> (dom/get-current-target event) $ (dom/get-attribute $ "data-testid")))] + (st/emit! (dw/clear-assets-section-open)) (swap! filters* assoc :section value :open-menu false)))) show-libraries-dialog diff --git a/frontend/src/app/main/ui/workspace/sidebar/assets/components.cljs b/frontend/src/app/main/ui/workspace/sidebar/assets/components.cljs index 371716d7ec..eb2c59c01a 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/assets/components.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/assets/components.cljs @@ -192,8 +192,10 @@ on-drag-start do-rename cancel-rename on-rename-group on-group on-ungroup on-context-menu selected-full local]}] - (let [group-open? (or ^boolean force-open? - ^boolean (get open-groups prefix (if (= prefix "") true false))) + (let [group-open? (if (false? (get open-groups prefix)) ;; if the user has closed it specifically, respect that + false + (or ^boolean force-open? + ^boolean (get open-groups prefix (if (= prefix "") true false)))) dragging* (mf/use-state false) dragging? (deref dragging*) diff --git a/frontend/src/app/main/ui/workspace/sidebar/assets/file_library.cljs b/frontend/src/app/main/ui/workspace/sidebar/assets/file_library.cljs index 109d067a61..b255013aa4 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/assets/file_library.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/assets/file_library.cljs @@ -318,6 +318,7 @@ (and has-term? (some pos? (map count [filtered-components filtered-colors filtered-media filtered-typographies])) (some #(> 60 (count %)) [filtered-components filtered-colors filtered-media filtered-typographies])))) + (mf/defc file-library {::mf/wrap-props false} [{:keys [file local? default-open? filters]}] @@ -333,8 +334,10 @@ open-status (mf/deref open-status-ref) force-open-lib? (force-lib-open? file-id filters) - open? (or force-open-lib? - (d/nilv (:library open-status) default-open?)) + open? (if (false? (:library open-status)) ;; if the user has closed it specifically, respect that + false + (or force-open-lib? + (d/nilv (:library open-status) default-open?))) unselect-all (mf/use-fn From a56e7e383fefd24acadab5820682217a61a49efd Mon Sep 17 00:00:00 2001 From: Pablo Alba Date: Tue, 25 Jun 2024 15:09:38 +0200 Subject: [PATCH 256/476] :bug: Fix 'Detach instance' shortcut is not working --- CHANGES.md | 2 ++ frontend/src/app/main/data/workspace/libraries.cljs | 3 +-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index 53f918038e..f383730d3b 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -51,6 +51,8 @@ - Removing Underline and Strikethrough Affects the Previous Text Object [Taiga #8103](https://tree.taiga.io/project/penpot/issue/8103) - Color library loses association with shapes when exporting/importing the document [Taiga #8132](https://tree.taiga.io/project/penpot/issue/8132) - Fix can't collapse groups when searching in the assets tab [Taiga #8125](https://tree.taiga.io/project/penpot/issue/8125) +- Fix 'Detach instance' shortcut is not working [Taiga #8102](https://tree.taiga.io/project/penpot/issue/8102) + ## 2.0.3 diff --git a/frontend/src/app/main/data/workspace/libraries.cljs b/frontend/src/app/main/data/workspace/libraries.cljs index 81b064c494..a1beaf1b52 100644 --- a/frontend/src/app/main/data/workspace/libraries.cljs +++ b/frontend/src/app/main/data/workspace/libraries.cljs @@ -615,7 +615,6 @@ (let [page-id (:current-page-id state) objects (wsh/lookup-page-objects state page-id) file (wsh/get-local-file state) - container (cfh/get-container file :page page-id) libraries (wsh/get-libraries state) selected (->> state (wsh/lookup-selected) @@ -627,7 +626,7 @@ changes (when can-detach? (reduce (fn [changes id] - (cll/generate-detach-instance changes container libraries id)) + (cll/generate-detach-component changes id file page-id libraries)) (pcb/empty-changes it) selected))] From 950d6195f6bb711cbe6320f46b0ad9835714f47c Mon Sep 17 00:00:00 2001 From: Pablo Alba Date: Tue, 25 Jun 2024 16:28:59 +0200 Subject: [PATCH 257/476] :bug: Fix import file message does not detect 0 as error --- CHANGES.md | 1 + frontend/src/app/main/ui/dashboard/import.cljs | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGES.md b/CHANGES.md index f383730d3b..5a75ae5a5e 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -52,6 +52,7 @@ - Color library loses association with shapes when exporting/importing the document [Taiga #8132](https://tree.taiga.io/project/penpot/issue/8132) - Fix can't collapse groups when searching in the assets tab [Taiga #8125](https://tree.taiga.io/project/penpot/issue/8125) - Fix 'Detach instance' shortcut is not working [Taiga #8102](https://tree.taiga.io/project/penpot/issue/8102) +- Fix import file message does not detect 0 as error [Taiga #6824](https://tree.taiga.io/project/penpot/issue/6824) ## 2.0.3 diff --git a/frontend/src/app/main/ui/dashboard/import.cljs b/frontend/src/app/main/ui/dashboard/import.cljs index 14f0318e3b..51b4371167 100644 --- a/frontend/src/app/main/ui/dashboard/import.cljs +++ b/frontend/src/app/main/ui/dashboard/import.cljs @@ -489,7 +489,7 @@ :else [:& context-notification - {:type :success + {:type (if (zero? success-num) :warning :success) :content (tr "dashboard.import.import-message" (i18n/c success-num))}])) (for [entry entries] From 034170afacd4a75a4d1620e2990fcaa3047eba8e Mon Sep 17 00:00:00 2001 From: Alejandro Alonso Date: Wed, 26 Jun 2024 19:04:39 +0200 Subject: [PATCH 258/476] :bug: Export/import of images doesn't work for .zip format --- frontend/src/app/main/ui/shapes/custom_stroke.cljs | 4 +++- frontend/src/app/main/ui/shapes/embed.cljs | 2 +- frontend/src/app/main/ui/shapes/fills.cljs | 5 +++-- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/frontend/src/app/main/ui/shapes/custom_stroke.cljs b/frontend/src/app/main/ui/shapes/custom_stroke.cljs index ed317cdbdc..3e664412fa 100644 --- a/frontend/src/app/main/ui/shapes/custom_stroke.cljs +++ b/frontend/src/app/main/ui/shapes/custom_stroke.cljs @@ -16,6 +16,7 @@ [app.config :as cf] [app.main.ui.context :as muc] [app.main.ui.shapes.attrs :as attrs] + [app.main.ui.shapes.embed :as embed] [app.main.ui.shapes.gradients :as grad] [app.util.object :as obj] [cuerdas.core :as str] @@ -213,6 +214,7 @@ :force-transform (cfh/path-shape? shape)} stroke-image (:stroke-image stroke) uri (when stroke-image (cf/resolve-file-media stroke-image)) + embed (embed/use-data-uris [uri]) stroke-width (case (:stroke-alignment stroke :center) :center (/ (:stroke-width stroke 0) 2) @@ -229,7 +231,7 @@ w (+ (dm/get-prop selrect :width) (* 2 stroke-margin)) h (+ (dm/get-prop selrect :height) (* 2 stroke-margin)) - image-props #js {:href uri + image-props #js {:href (get embed uri uri) :preserveAspectRatio "xMidYMid slice" :width 1 :height 1 diff --git a/frontend/src/app/main/ui/shapes/embed.cljs b/frontend/src/app/main/ui/shapes/embed.cljs index 218b9687b8..4283a6314a 100644 --- a/frontend/src/app/main/ui/shapes/embed.cljs +++ b/frontend/src/app/main/ui/shapes/embed.cljs @@ -31,7 +31,7 @@ (->> (http/fetch-data-uri uri true) ;; If fetching give an error we store the URI as its `data-uri` (rx/catch #(rx/of (hash-map uri uri))))))) - (rx/map identity obs))) + (rx/map (fn [uri] {uri uri}) obs))) sub (->> (rx/from urls) (rx/filter some?) diff --git a/frontend/src/app/main/ui/shapes/fills.cljs b/frontend/src/app/main/ui/shapes/fills.cljs index 076a662c04..4fb4a2996c 100644 --- a/frontend/src/app/main/ui/shapes/fills.cljs +++ b/frontend/src/app/main/ui/shapes/fills.cljs @@ -14,6 +14,7 @@ [app.common.geom.shapes.text :as gst] [app.config :as cf] [app.main.ui.shapes.attrs :as attrs] + [app.main.ui.shapes.embed :as embed] [app.main.ui.shapes.gradients :as grad] [app.util.object :as obj] [rumext.v2 :as mf])) @@ -57,7 +58,7 @@ (keep :fill-image) (map cf/resolve-file-media)) fills) - + embed (embed/use-data-uris uris) transform (gsh/transform-str shape) pat-props #js {:patternUnits "userSpaceOnUse" @@ -119,7 +120,7 @@ (let [uri (cf/resolve-file-media (:fill-image value)) keep-ar? (-> value :fill-image :keep-aspect-ratio) image-props #js {:id (dm/str "fill-image-" render-id "-" fill-index) - :href (get uris uri uri) + :href (get embed uri uri) :preserveAspectRatio (if keep-ar? "xMidYMid slice" "none") :width width :height height From 40b43c6c5b1d6ff81e0795feddfc29537b4a66a8 Mon Sep 17 00:00:00 2001 From: Alejandro Alonso Date: Wed, 26 Jun 2024 19:05:07 +0200 Subject: [PATCH 259/476] :bug: Fix lost image colors in library when export/import using zip format --- CHANGES.md | 2 +- frontend/src/app/worker/export.cljs | 45 ++++++++++++++++++++++++----- frontend/src/app/worker/import.cljs | 33 +++++++++++++++++---- 3 files changed, 67 insertions(+), 13 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index 5a75ae5a5e..71822e686f 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -53,7 +53,7 @@ - Fix can't collapse groups when searching in the assets tab [Taiga #8125](https://tree.taiga.io/project/penpot/issue/8125) - Fix 'Detach instance' shortcut is not working [Taiga #8102](https://tree.taiga.io/project/penpot/issue/8102) - Fix import file message does not detect 0 as error [Taiga #6824](https://tree.taiga.io/project/penpot/issue/6824) - +- Image Color Library is not persisted when exporting/importing in .zip [Taiga #8131](https://tree.taiga.io/project/penpot/issue/8131) ## 2.0.3 diff --git a/frontend/src/app/worker/export.cljs b/frontend/src/app/worker/export.cljs index b43bbbe11a..bd1ccd10c3 100644 --- a/frontend/src/app/worker/export.cljs +++ b/frontend/src/app/worker/export.cljs @@ -93,6 +93,9 @@ (def ^:const color-keys [:name :color :opacity :gradient :path]) +(def ^:const image-color-keys + [:width :height :mtype :name :keep-aspect-ratio]) + (def ^:const typography-keys [:name :font-family :font-id :font-size :font-style :font-variant-id :font-weight :letter-spacing :line-height :text-transform :path]) @@ -102,7 +105,21 @@ (defn collect-color [result color] - (collect-entries result color color-keys)) + (let [id (str (:id color)) + basic-data (select-keys color color-keys) + image-color-data (when-let [image-color (:image color)] + (->> (select-keys image-color image-color-keys))) + color-data (cond-> basic-data + (some? image-color-data) + (-> + (assoc :image image-color-data) + (assoc-in [:image :id] (str (get-in color [:image :id])))))] + (-> result + (assoc id + (->> color-data + (d/deep-mapm + (fn [[k v]] + [(-> k str/camel) v]))))))) (defn collect-typography [result typography] @@ -114,11 +131,25 @@ (defn parse-library-color [[file-id colors]] - (let [markup - (->> (vals colors) - (reduce collect-color {}) - (json/encode))] - [(str file-id "/colors.json") markup])) + (rx/merge + (let [markup + (->> (vals colors) + (reduce collect-color {}) + (json/encode))] + (rx/of (vector (str file-id "/colors.json") markup))) + + (->> (rx/from (vals colors)) + (rx/map :image) + (rx/filter d/not-empty?) + (rx/merge-map + (fn [image-color] + (let [file-path (str/concat file-id "/colors/" (:id image-color) (cm/mtype->extension (:mtype image-color)))] + (->> (http/send! + {:uri (cfg/resolve-file-media image-color) + :response-type :blob + :method :get}) + (rx/map :body) + (rx/map #(vector file-path %))))))))) (defn parse-library-typographies [[file-id typographies]] @@ -355,7 +386,7 @@ (rx/merge-map vals) (rx/map #(vector (:id %) (get-in % [:data :colors]))) (rx/filter #(d/not-empty? (second %))) - (rx/map parse-library-color)) + (rx/merge-map parse-library-color)) typographies-stream (->> files-stream diff --git a/frontend/src/app/worker/import.cljs b/frontend/src/app/worker/import.cljs index beb6e2b14e..89e50c6aa7 100644 --- a/frontend/src/app/worker/import.cljs +++ b/frontend/src/app/worker/import.cljs @@ -50,7 +50,9 @@ path (case type :manifest (str "manifest.json") :page (str file-id "/" id ".svg") - :colors (str file-id "/colors.json") + :colors-list (str file-id "/colors.json") + :colors (let [ext (cm/mtype->extension (:mtype media))] + (str/concat file-id "/colors/" id ext)) :typographies (str file-id "/typographies.json") :media-list (str file-id "/media.json") :media (let [ext (cm/mtype->extension (:mtype media))] @@ -560,15 +562,36 @@ (if (:has-colors context) (let [resolve (:resolve context) add-color - (fn [file [id color]] + (fn [file color] (let [color (-> color (d/update-in-when [:gradient :type] keyword) - (assoc :id (resolve id)))] + (d/update-in-when [:image :id] resolve) + (update :id resolve))] (fb/add-library-color file color)))] - (->> (get-file context :colors) + (->> (get-file context :colors-list) (rx/merge-map (comp d/kebab-keys parser/string->uuid)) + (rx/mapcat + (fn [[id color]] + (let [color (assoc color :id id) + color-image (:image color) + upload-image? (some? color-image) + color-image-id (:id color-image)] + (if upload-image? + (->> (get-file context :colors color-image-id color-image) + (rx/map (fn [blob] + (let [content (.slice blob 0 (.-size blob) (:mtype color-image))] + {:name (:name color-image) + :id (resolve color-image-id) + :file-id (:id file) + :content content + :is-local false}))) + (rx/tap #(progress! context :upload-media (:name %))) + (rx/merge-map #(rp/cmd! :upload-file-media-object %)) + (rx/map (constantly color)) + (rx/catch #(do (.error js/console (str "Error uploading color-image: " (:name color-image))) + (rx/empty)))) + (rx/of color))))) (rx/reduce add-color file))) - (rx/of file))) (defn process-library-typographies From 7e44ae62a272c8ed45d8bb9e8ad04bf2172d793c Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Thu, 27 Jun 2024 11:18:58 +0200 Subject: [PATCH 260/476] :bug: Fix profile deletion issue with 1 participant --- backend/src/app/rpc/commands/profile.clj | 22 +-- backend/src/app/tasks/orphan_teams_gc.clj | 1 - .../test/backend_tests/rpc_profile_test.clj | 157 +++++++++++++++++- 3 files changed, 167 insertions(+), 13 deletions(-) diff --git a/backend/src/app/rpc/commands/profile.clj b/backend/src/app/rpc/commands/profile.clj index fe33da10dc..5bdf6943ce 100644 --- a/backend/src/app/rpc/commands/profile.clj +++ b/backend/src/app/rpc/commands/profile.clj @@ -400,18 +400,18 @@ ;; --- HELPERS (def sql:owned-teams - "with owner_teams as ( - select tpr.team_id as id - from team_profile_rel as tpr - where tpr.is_owner is true - and tpr.profile_id = ? + "WITH owner_teams AS ( + SELECT tpr.team_id AS id + FROM team_profile_rel AS tpr + WHERE tpr.is_owner IS TRUE + AND tpr.profile_id = ? ) - select tpr.team_id as id, - count(tpr.profile_id) - 1 as participants - from team_profile_rel as tpr - where tpr.team_id in (select id from owner_teams) - and tpr.profile_id != ? - group by 1") + SELECT tpr.team_id AS id, + count(tpr.profile_id) AS participants + FROM team_profile_rel AS tpr + WHERE tpr.team_id IN (SELECT id from owner_teams) + AND tpr.profile_id != ? + GROUP BY 1") (defn- get-owned-teams-with-participants [conn profile-id] diff --git a/backend/src/app/tasks/orphan_teams_gc.clj b/backend/src/app/tasks/orphan_teams_gc.clj index c04123a831..bbc267e57d 100644 --- a/backend/src/app/tasks/orphan_teams_gc.clj +++ b/backend/src/app/tasks/orphan_teams_gc.clj @@ -22,7 +22,6 @@ [_ cfg] (fn [params] (db/tx-run! cfg (fn [{:keys [::db/conn] :as cfg}] - (l/inf :hint "gc started" :rollback? (boolean (:rollback? params))) (let [total (delete-orphan-teams! cfg)] (l/inf :hint "task finished" :teams total diff --git a/backend/test/backend_tests/rpc_profile_test.clj b/backend/test/backend_tests/rpc_profile_test.clj index 00d2f2ac0d..d52a0bac9c 100644 --- a/backend/test/backend_tests/rpc_profile_test.clj +++ b/backend/test/backend_tests/rpc_profile_test.clj @@ -126,7 +126,7 @@ ;; (th/print-result! out) (t/is (nil? (:error out))))))) -(t/deftest profile-deletion-simple +(t/deftest profile-deletion-1 (let [prof (th/create-profile* 1) file (th/create-file* 1 {:profile-id (:id prof) :project-id (:default-project-id prof) @@ -177,6 +177,161 @@ (let [result (:result out)] (t/is (= uuid/zero (:id result))))))) + +(t/deftest profile-deletion-2 + (let [prof1 (th/create-profile* 1) + prof2 (th/create-profile* 2) + file1 (th/create-file* 1 {:profile-id (:id prof1) + :project-id (:default-project-id prof1) + :is-shared false}) + team1 (th/create-team* 1 {:profile-id (:id prof1)}) + + role1 (th/create-team-role* {:team-id (:id team1) + :profile-id (:id prof2) + + :role :editor})] + ;; Assert all roles for team + (let [roles (th/db-query :team-profile-rel {:team-id (:id team1)})] + (t/is (= 2 (count roles)))) + + ;; Request profile to be deleted + (let [params {::th/type :delete-profile + ::rpc/profile-id (:id prof1)} + out (th/command! params)] + ;; (th/print-result! out) + + (let [error (:error out) + edata (ex-data error)] + (t/is (th/ex-info? error)) + (t/is (= (:type edata) :validation)) + (t/is (= (:code edata) :owner-teams-with-people)))))) + +(t/deftest profile-deletion-3 + (let [prof1 (th/create-profile* 1) + prof2 (th/create-profile* 2) + prof3 (th/create-profile* 3) + file1 (th/create-file* 1 {:profile-id (:id prof1) + :project-id (:default-project-id prof1) + :is-shared false}) + team1 (th/create-team* 1 {:profile-id (:id prof1)}) + + role1 (th/create-team-role* {:team-id (:id team1) + :profile-id (:id prof2) + :role :editor}) + role2 (th/create-team-role* {:team-id (:id team1) + :profile-id (:id prof3) + :role :editor})] + + ;; Assert all roles for team + (let [roles (th/db-query :team-profile-rel {:team-id (:id team1)})] + (t/is (= 3 (count roles)))) + + ;; Request profile to be deleted (it should fail) + (let [params {::th/type :delete-profile + ::rpc/profile-id (:id prof1)} + out (th/command! params)] + ;; (th/print-result! out) + + (let [error (:error out) + edata (ex-data error)] + (t/is (th/ex-info? error)) + (t/is (= (:type edata) :validation)) + (t/is (= (:code edata) :owner-teams-with-people)))) + + ;; Leave team by role 1 + (let [params {::th/type :leave-team + ::rpc/profile-id (:id prof2) + :id (:id team1)} + out (th/command! params)] + + ;; (th/print-result! out) + (t/is (nil? (:result out))) + (t/is (nil? (:error out)))) + + ;; Request profile to be deleted (it should fail) + (let [params {::th/type :delete-profile + ::rpc/profile-id (:id prof1)} + out (th/command! params)] + ;; (th/print-result! out) + (let [error (:error out) + edata (ex-data error)] + (t/is (th/ex-info? error)) + (t/is (= (:type edata) :validation)) + (t/is (= (:code edata) :owner-teams-with-people)))) + + + ;; Leave team by role 0 (the default) and reassing owner to role 3 + ;; without reassinging it (should fail) + (let [params {::th/type :leave-team + ::rpc/profile-id (:id prof1) + ;; :reassign-to (:id prof3) + :id (:id team1)} + out (th/command! params)] + + ;; (th/print-result! out) + + (let [error (:error out) + edata (ex-data error)] + (t/is (th/ex-info? error)) + (t/is (= (:type edata) :validation)) + (t/is (= (:code edata) :owner-cant-leave-team)))) + + ;; Leave team by role 0 (the default) and reassing owner to role 3 + (let [params {::th/type :leave-team + ::rpc/profile-id (:id prof1) + :reassign-to (:id prof3) + :id (:id team1)} + out (th/command! params)] + + ;; (th/print-result! out) + (t/is (nil? (:result out))) + (t/is (nil? (:error out)))) + + ;; Request profile to be deleted (it should fail) + (let [params {::th/type :delete-profile + ::rpc/profile-id (:id prof1)} + out (th/command! params)] + ;; (th/print-result! out) + + (t/is (= {} (:result out))) + (t/is (nil? (:error out)))) + + ;; query files after profile soft deletion + (let [params {::th/type :get-project-files + ::rpc/profile-id (:id prof1) + :project-id (:default-project-id prof1)} + out (th/command! params)] + ;; (th/print-result! out) + (t/is (nil? (:error out))) + (t/is (= 1 (count (:result out))))) + + ;; execute permanent deletion task + (let [result (th/run-task! :objects-gc {:min-age 0})] + (t/is (= 1 (:processed result)))) + + (let [row (th/db-get :team + {:id (:default-team-id prof1)} + {::db/remove-deleted false})] + (t/is (nil? (:deleted-at row)))) + + (let [result (th/run-task! :orphan-teams-gc {:min-age 0})] + (t/is (= 1 (:processed result)))) + + (let [row (th/db-get :team + {:id (:default-team-id prof1)} + {::db/remove-deleted false})] + (t/is (dt/instant? (:deleted-at row)))) + + ;; query profile after delete + (let [params {::th/type :get-profile + ::rpc/profile-id (:id prof1)} + out (th/command! params)] + ;; (th/print-result! out) + (let [result (:result out)] + (t/is (= uuid/zero (:id result))))))) + + + (t/deftest registration-domain-whitelist (let [whitelist #{"gmail.com" "hey.com" "ya.ru"}] (t/testing "allowed email domain" From 2cddbc8a3de54ef0659c64e8874ed19d13d528dd Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Thu, 27 Jun 2024 12:13:12 +0200 Subject: [PATCH 261/476] :bug: Fix error handling on account deletion process --- frontend/src/app/main/data/users.cljs | 6 ++---- frontend/src/app/main/ui/settings/delete_account.cljs | 11 ++++++----- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/frontend/src/app/main/data/users.cljs b/frontend/src/app/main/data/users.cljs index 8a540317f6..e82fee08fe 100644 --- a/frontend/src/app/main/data/users.cljs +++ b/frontend/src/app/main/data/users.cljs @@ -537,10 +537,8 @@ on-success identity}} (meta params)] (->> (rp/cmd! :delete-profile {}) (rx/tap on-success) - (rx/delay-at-least 300) - (rx/catch (constantly (rx/of 1))) - (rx/map logged-out) - (rx/catch on-error)))))) + (rx/catch on-error) + (rx/delay-at-least 300)))))) ;; --- EVENT: request-profile-recovery diff --git a/frontend/src/app/main/ui/settings/delete_account.cljs b/frontend/src/app/main/ui/settings/delete_account.cljs index 384907dfe6..3dd81a34b9 100644 --- a/frontend/src/app/main/ui/settings/delete_account.cljs +++ b/frontend/src/app/main/ui/settings/delete_account.cljs @@ -18,11 +18,12 @@ [rumext.v2 :as mf])) (defn on-error - [{:keys [code] :as error}] - (if (= :owner-teams-with-people code) - (let [msg (tr "notifications.profile-deletion-not-allowed")] - (rx/of (msg/error msg))) - (rx/throw error))) + [cause] + (let [code (-> cause ex-data :code)] + (if (= :owner-teams-with-people code) + (let [msg (tr "notifications.profile-deletion-not-allowed")] + (rx/of (msg/error msg))) + (rx/throw cause)))) (mf/defc delete-account-modal {::mf/register modal/components From 272edec3c647990794a3fbb6b8dd2c61ea073577 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Thu, 27 Jun 2024 13:52:23 +0200 Subject: [PATCH 262/476] :bug: Add missing logged-out event after account deletion --- frontend/src/app/main/data/users.cljs | 1 + 1 file changed, 1 insertion(+) diff --git a/frontend/src/app/main/data/users.cljs b/frontend/src/app/main/data/users.cljs index e82fee08fe..d84da5e526 100644 --- a/frontend/src/app/main/data/users.cljs +++ b/frontend/src/app/main/data/users.cljs @@ -538,6 +538,7 @@ (->> (rp/cmd! :delete-profile {}) (rx/tap on-success) (rx/catch on-error) + (rx/map logged-out) (rx/delay-at-least 300)))))) ;; --- EVENT: request-profile-recovery From 67489c0bb9b42dd77ba453d7b7cc6a5cc076d43d Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Thu, 27 Jun 2024 11:18:58 +0200 Subject: [PATCH 263/476] :bug: Fix profile deletion issue with 1 participant --- backend/src/app/rpc/commands/profile.clj | 22 +-- backend/src/app/tasks/orphan_teams_gc.clj | 1 - .../test/backend_tests/rpc_profile_test.clj | 154 +++++++++++++++++- 3 files changed, 164 insertions(+), 13 deletions(-) diff --git a/backend/src/app/rpc/commands/profile.clj b/backend/src/app/rpc/commands/profile.clj index 4064f0dd6f..24afb711c3 100644 --- a/backend/src/app/rpc/commands/profile.clj +++ b/backend/src/app/rpc/commands/profile.clj @@ -399,18 +399,18 @@ ;; --- HELPERS (def sql:owned-teams - "with owner_teams as ( - select tpr.team_id as id - from team_profile_rel as tpr - where tpr.is_owner is true - and tpr.profile_id = ? + "WITH owner_teams AS ( + SELECT tpr.team_id AS id + FROM team_profile_rel AS tpr + WHERE tpr.is_owner IS TRUE + AND tpr.profile_id = ? ) - select tpr.team_id as id, - count(tpr.profile_id) - 1 as participants - from team_profile_rel as tpr - where tpr.team_id in (select id from owner_teams) - and tpr.profile_id != ? - group by 1") + SELECT tpr.team_id AS id, + count(tpr.profile_id) AS participants + FROM team_profile_rel AS tpr + WHERE tpr.team_id IN (SELECT id from owner_teams) + AND tpr.profile_id != ? + GROUP BY 1") (defn- get-owned-teams-with-participants [conn profile-id] diff --git a/backend/src/app/tasks/orphan_teams_gc.clj b/backend/src/app/tasks/orphan_teams_gc.clj index 5bdb360c06..0e3de973a5 100644 --- a/backend/src/app/tasks/orphan_teams_gc.clj +++ b/backend/src/app/tasks/orphan_teams_gc.clj @@ -54,7 +54,6 @@ [_ cfg] (fn [{:keys [props] :as task}] (db/tx-run! cfg (fn [{:keys [::db/conn] :as cfg}] - (l/inf :hint "gc started" :rollback? (boolean (:rollback? props))) (let [total (delete-orphan-teams cfg)] (l/inf :hint "task finished" :teams total diff --git a/backend/test/backend_tests/rpc_profile_test.clj b/backend/test/backend_tests/rpc_profile_test.clj index 1777fecb1a..82168ecaff 100644 --- a/backend/test/backend_tests/rpc_profile_test.clj +++ b/backend/test/backend_tests/rpc_profile_test.clj @@ -127,7 +127,7 @@ ;; (th/print-result! out) (t/is (nil? (:error out))))))) -(t/deftest profile-deletion-simple +(t/deftest profile-deletion-1 (let [prof (th/create-profile* 1) file (th/create-file* 1 {:profile-id (:id prof) :project-id (:default-project-id prof) @@ -178,6 +178,158 @@ (let [result (:result out)] (t/is (= uuid/zero (:id result))))))) +(t/deftest profile-deletion-2 + (let [prof1 (th/create-profile* 1) + prof2 (th/create-profile* 2) + file1 (th/create-file* 1 {:profile-id (:id prof1) + :project-id (:default-project-id prof1) + :is-shared false}) + team1 (th/create-team* 1 {:profile-id (:id prof1)}) + + role1 (th/create-team-role* {:team-id (:id team1) + :profile-id (:id prof2) + + :role :editor})] + ;; Assert all roles for team + (let [roles (th/db-query :team-profile-rel {:team-id (:id team1)})] + (t/is (= 2 (count roles)))) + + ;; Request profile to be deleted + (let [params {::th/type :delete-profile + ::rpc/profile-id (:id prof1)} + out (th/command! params)] + ;; (th/print-result! out) + + (let [error (:error out) + edata (ex-data error)] + (t/is (th/ex-info? error)) + (t/is (= (:type edata) :validation)) + (t/is (= (:code edata) :owner-teams-with-people)))))) + +(t/deftest profile-deletion-3 + (let [prof1 (th/create-profile* 1) + prof2 (th/create-profile* 2) + prof3 (th/create-profile* 3) + file1 (th/create-file* 1 {:profile-id (:id prof1) + :project-id (:default-project-id prof1) + :is-shared false}) + team1 (th/create-team* 1 {:profile-id (:id prof1)}) + + role1 (th/create-team-role* {:team-id (:id team1) + :profile-id (:id prof2) + :role :editor}) + role2 (th/create-team-role* {:team-id (:id team1) + :profile-id (:id prof3) + :role :editor})] + + ;; Assert all roles for team + (let [roles (th/db-query :team-profile-rel {:team-id (:id team1)})] + (t/is (= 3 (count roles)))) + + ;; Request profile to be deleted (it should fail) + (let [params {::th/type :delete-profile + ::rpc/profile-id (:id prof1)} + out (th/command! params)] + ;; (th/print-result! out) + + (let [error (:error out) + edata (ex-data error)] + (t/is (th/ex-info? error)) + (t/is (= (:type edata) :validation)) + (t/is (= (:code edata) :owner-teams-with-people)))) + + ;; Leave team by role 1 + (let [params {::th/type :leave-team + ::rpc/profile-id (:id prof2) + :id (:id team1)} + out (th/command! params)] + + ;; (th/print-result! out) + (t/is (nil? (:result out))) + (t/is (nil? (:error out)))) + + ;; Request profile to be deleted (it should fail) + (let [params {::th/type :delete-profile + ::rpc/profile-id (:id prof1)} + out (th/command! params)] + ;; (th/print-result! out) + (let [error (:error out) + edata (ex-data error)] + (t/is (th/ex-info? error)) + (t/is (= (:type edata) :validation)) + (t/is (= (:code edata) :owner-teams-with-people)))) + + + ;; Leave team by role 0 (the default) and reassing owner to role 3 + ;; without reassinging it (should fail) + (let [params {::th/type :leave-team + ::rpc/profile-id (:id prof1) + ;; :reassign-to (:id prof3) + :id (:id team1)} + out (th/command! params)] + + ;; (th/print-result! out) + + (let [error (:error out) + edata (ex-data error)] + (t/is (th/ex-info? error)) + (t/is (= (:type edata) :validation)) + (t/is (= (:code edata) :owner-cant-leave-team)))) + + ;; Leave team by role 0 (the default) and reassing owner to role 3 + (let [params {::th/type :leave-team + ::rpc/profile-id (:id prof1) + :reassign-to (:id prof3) + :id (:id team1)} + out (th/command! params)] + + ;; (th/print-result! out) + (t/is (nil? (:result out))) + (t/is (nil? (:error out)))) + + ;; Request profile to be deleted (it should fail) + (let [params {::th/type :delete-profile + ::rpc/profile-id (:id prof1)} + out (th/command! params)] + ;; (th/print-result! out) + + (t/is (= {} (:result out))) + (t/is (nil? (:error out)))) + + ;; query files after profile soft deletion + (let [params {::th/type :get-project-files + ::rpc/profile-id (:id prof1) + :project-id (:default-project-id prof1)} + out (th/command! params)] + ;; (th/print-result! out) + (t/is (nil? (:error out))) + (t/is (= 1 (count (:result out))))) + + ;; execute permanent deletion task + (let [result (th/run-task! :objects-gc {:min-age 0})] + (t/is (= 1 (:processed result)))) + + (let [row (th/db-get :team + {:id (:default-team-id prof1)} + {::db/remove-deleted false})] + (t/is (nil? (:deleted-at row)))) + + (let [result (th/run-task! :orphan-teams-gc {:min-age 0})] + (t/is (= 1 (:processed result)))) + + (let [row (th/db-get :team + {:id (:default-team-id prof1)} + {::db/remove-deleted false})] + (t/is (dt/instant? (:deleted-at row)))) + + ;; query profile after delete + (let [params {::th/type :get-profile + ::rpc/profile-id (:id prof1)} + out (th/command! params)] + ;; (th/print-result! out) + (let [result (:result out)] + (t/is (= uuid/zero (:id result))))))) + (t/deftest email-blacklist-1 (t/is (false? (email.blacklist/enabled? th/*system*))) (t/is (true? (email.blacklist/enabled? (assoc th/*system* :app.email/blacklist [])))) From 56476acc1946af31e2b980576008c095fb037e1d Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Thu, 27 Jun 2024 12:13:12 +0200 Subject: [PATCH 264/476] :bug: Fix error handling on account deletion process --- frontend/src/app/main/data/users.cljs | 6 ++---- frontend/src/app/main/ui/settings/delete_account.cljs | 11 ++++++----- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/frontend/src/app/main/data/users.cljs b/frontend/src/app/main/data/users.cljs index e4f8c4d078..bc2b7dbcd1 100644 --- a/frontend/src/app/main/data/users.cljs +++ b/frontend/src/app/main/data/users.cljs @@ -569,10 +569,8 @@ on-success identity}} (meta params)] (->> (rp/cmd! :delete-profile {}) (rx/tap on-success) - (rx/delay-at-least 300) - (rx/catch (constantly (rx/of 1))) - (rx/map logged-out) - (rx/catch on-error)))))) + (rx/catch on-error) + (rx/delay-at-least 300)))))) ;; --- EVENT: request-profile-recovery diff --git a/frontend/src/app/main/ui/settings/delete_account.cljs b/frontend/src/app/main/ui/settings/delete_account.cljs index d7e941cea8..d4ed25f78a 100644 --- a/frontend/src/app/main/ui/settings/delete_account.cljs +++ b/frontend/src/app/main/ui/settings/delete_account.cljs @@ -18,11 +18,12 @@ [rumext.v2 :as mf])) (defn on-error - [{:keys [code] :as error}] - (if (= :owner-teams-with-people code) - (let [msg (tr "notifications.profile-deletion-not-allowed")] - (rx/of (msg/error msg))) - (rx/throw error))) + [cause] + (let [code (-> cause ex-data :code)] + (if (= :owner-teams-with-people code) + (let [msg (tr "notifications.profile-deletion-not-allowed")] + (rx/of (msg/error msg))) + (rx/throw cause)))) (mf/defc delete-account-modal {::mf/register modal/components From f9af7f0f09f2659d67272a225d14a5cd257ff4d4 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Thu, 27 Jun 2024 13:42:05 +0200 Subject: [PATCH 265/476] :bug: Make profile deletion follow the delete-object flow This removes the need of the specific task for cleaning orphan teams. --- backend/src/app/main.clj | 7 -- backend/src/app/rpc/commands/profile.clj | 26 ++++---- backend/src/app/tasks/delete_object.clj | 27 +++++++- backend/src/app/tasks/objects_gc.clj | 11 +--- backend/src/app/tasks/orphan_teams_gc.clj | 65 ------------------- .../test/backend_tests/rpc_profile_test.clj | 65 ++++++++++++------- 6 files changed, 83 insertions(+), 118 deletions(-) delete mode 100644 backend/src/app/tasks/orphan_teams_gc.clj diff --git a/backend/src/app/main.clj b/backend/src/app/main.clj index 5a959d39b7..f9797521d0 100644 --- a/backend/src/app/main.clj +++ b/backend/src/app/main.clj @@ -343,7 +343,6 @@ ::wrk/tasks {:sendmail (ig/ref ::email/handler) :objects-gc (ig/ref :app.tasks.objects-gc/handler) - :orphan-teams-gc (ig/ref :app.tasks.orphan-teams-gc/handler) :file-gc (ig/ref :app.tasks.file-gc/handler) :file-xlog-gc (ig/ref :app.tasks.file-xlog-gc/handler) :tasks-gc (ig/ref :app.tasks.tasks-gc/handler) @@ -388,9 +387,6 @@ {::db/pool (ig/ref ::db/pool) ::sto/storage (ig/ref ::sto/storage)} - :app.tasks.orphan-teams-gc/handler - {::db/pool (ig/ref ::db/pool)} - :app.tasks.delete-object/handler {::db/pool (ig/ref ::db/pool)} @@ -479,9 +475,6 @@ {:cron #app/cron "0 0 0 * * ?" ;; daily :task :objects-gc} - {:cron #app/cron "0 0 0 * * ?" ;; daily - :task :orphan-teams-gc} - {:cron #app/cron "0 0 0 * * ?" ;; daily :task :storage-gc-deleted} diff --git a/backend/src/app/rpc/commands/profile.clj b/backend/src/app/rpc/commands/profile.clj index 24afb711c3..985a8b211a 100644 --- a/backend/src/app/rpc/commands/profile.clj +++ b/backend/src/app/rpc/commands/profile.clj @@ -28,7 +28,7 @@ [app.tokens :as tokens] [app.util.services :as sv] [app.util.time :as dt] - [app.worker :as-alias wrk] + [app.worker :as wrk] [cuerdas.core :as str] [promesa.exec :as px])) @@ -366,13 +366,13 @@ ;; --- MUTATION: Delete Profile -(declare ^:private get-owned-teams-with-participants) +(declare ^:private get-owned-teams) (sv/defmethod ::delete-profile {::doc/added "1.0"} [{:keys [::db/pool] :as cfg} {:keys [::rpc/profile-id] :as params}] (db/with-atomic [conn pool] - (let [teams (get-owned-teams-with-participants conn profile-id) + (let [teams (get-owned-teams conn profile-id) deleted-at (dt/now)] ;; If we found owned teams with participants, we don't allow @@ -384,15 +384,18 @@ :hint "The user need to transfer ownership of owned teams." :context {:teams (mapv :id teams)})) - (doseq [{:keys [id]} teams] - (db/update! conn :team - {:deleted-at deleted-at} - {:id id})) - + ;; Mark profile deleted immediatelly (db/update! conn :profile {:deleted-at deleted-at} {:id profile-id}) + ;; Schedule cascade deletion to a worker + (wrk/submit! {::db/conn conn + ::wrk/task :delete-object + ::wrk/params {:object :profile + :deleted-at deleted-at + :id profile-id}}) + (rph/with-transform {} (session/delete-fn cfg))))) @@ -406,15 +409,14 @@ AND tpr.profile_id = ? ) SELECT tpr.team_id AS id, - count(tpr.profile_id) AS participants + count(tpr.profile_id) - 1 AS participants FROM team_profile_rel AS tpr WHERE tpr.team_id IN (SELECT id from owner_teams) - AND tpr.profile_id != ? GROUP BY 1") -(defn- get-owned-teams-with-participants +(defn get-owned-teams [conn profile-id] - (db/exec! conn [sql:owned-teams profile-id profile-id])) + (db/exec! conn [sql:owned-teams profile-id])) (def ^:private sql:profile-existence "select exists (select * from profile diff --git a/backend/src/app/tasks/delete_object.clj b/backend/src/app/tasks/delete_object.clj index 06bbd36f78..9c48d23091 100644 --- a/backend/src/app/tasks/delete_object.clj +++ b/backend/src/app/tasks/delete_object.clj @@ -10,6 +10,8 @@ [app.common.logging :as l] [app.db :as db] [app.rpc.commands.files :as files] + [app.rpc.commands.profile :as profile] + [app.util.time :as dt] [clojure.spec.alpha :as s] [integrant.core :as ig])) @@ -21,7 +23,9 @@ (defmethod delete-object :file [{:keys [::db/conn] :as cfg} {:keys [id deleted-at]}] (when-let [file (db/get* conn :file {:id id} {::db/remove-deleted false})] - (l/trc :hint "marking for deletion" :rel "file" :id (str id)) + (l/trc :hint "marking for deletion" :rel "file" :id (str id) + :deleted-at (dt/format-instant deleted-at)) + (db/update! conn :file {:deleted-at deleted-at} {:id id} @@ -53,7 +57,9 @@ (defmethod delete-object :project [{:keys [::db/conn] :as cfg} {:keys [id deleted-at]}] - (l/trc :hint "marking for deletion" :rel "project" :id (str id)) + (l/trc :hint "marking for deletion" :rel "project" :id (str id) + :deleted-at (dt/format-instant deleted-at)) + (db/update! conn :project {:deleted-at deleted-at} {:id id} @@ -68,7 +74,8 @@ (defmethod delete-object :team [{:keys [::db/conn] :as cfg} {:keys [id deleted-at]}] - (l/trc :hint "marking for deletion" :rel "team" :id (str id)) + (l/trc :hint "marking for deletion" :rel "team" :id (str id) + :deleted-at (dt/format-instant deleted-at)) (db/update! conn :team {:deleted-at deleted-at} {:id id} @@ -87,6 +94,20 @@ :object :project :deleted-at deleted-at))))) +(defmethod delete-object :profile + [{:keys [::db/conn] :as cfg} {:keys [id deleted-at]}] + (l/trc :hint "marking for deletion" :rel "profile" :id (str id) + :deleted-at (dt/format-instant deleted-at)) + + (db/update! conn :profile + {:deleted-at deleted-at} + {:id id} + {::db/return-keys false}) + + (doseq [team (profile/get-owned-teams conn id)] + (delete-object cfg (assoc team + :object :team + :deleted-at deleted-at)))) (defmethod delete-object :default [_cfg props] diff --git a/backend/src/app/tasks/objects_gc.clj b/backend/src/app/tasks/objects_gc.clj index 16f7458360..0cfd66a61a 100644 --- a/backend/src/app/tasks/objects_gc.clj +++ b/backend/src/app/tasks/objects_gc.clj @@ -35,11 +35,6 @@ ;; Mark as deleted the storage object (some->> photo-id (sto/touch-object! storage)) - ;; And finally, permanently delete the profile. The - ;; relevant objects will be deleted using DELETE - ;; CASCADE database triggers. This may leave orphan - ;; teams, but there is a special task for deleting - ;; orphaned teams. (db/delete! conn :profile {:id id}) (inc total)) @@ -269,15 +264,15 @@ 0))) (def ^:private deletion-proc-vars - [#'delete-file-media-objects! + [#'delete-profiles! + #'delete-file-media-objects! #'delete-file-data-fragments! #'delete-file-object-thumbnails! #'delete-file-thumbnails! #'delete-files! #'delete-projects! #'delete-fonts! - #'delete-teams! - #'delete-profiles!]) + #'delete-teams!]) (defn- execute-proc! "A generic function that executes the specified proc iterativelly diff --git a/backend/src/app/tasks/orphan_teams_gc.clj b/backend/src/app/tasks/orphan_teams_gc.clj deleted file mode 100644 index 0e3de973a5..0000000000 --- a/backend/src/app/tasks/orphan_teams_gc.clj +++ /dev/null @@ -1,65 +0,0 @@ -;; This Source Code Form is subject to the terms of the Mozilla Public -;; License, v. 2.0. If a copy of the MPL was not distributed with this -;; file, You can obtain one at http://mozilla.org/MPL/2.0/. -;; -;; Copyright (c) KALEIDOS INC - -(ns app.tasks.orphan-teams-gc - "A maintenance task that performs orphan teams GC." - (:require - [app.common.logging :as l] - [app.db :as db] - [app.util.time :as dt] - [app.worker :as wrk] - [clojure.spec.alpha :as s] - [integrant.core :as ig])) - -(def ^:private sql:get-orphan-teams - "SELECT t.id - FROM team AS t - LEFT JOIN team_profile_rel AS tpr - ON (t.id = tpr.team_id) - WHERE tpr.profile_id IS NULL - AND t.deleted_at IS NULL - ORDER BY t.created_at ASC - FOR UPDATE OF t - SKIP LOCKED") - -(defn- delete-orphan-teams - "Find all orphan teams (with no members) and mark them for - deletion (soft delete)." - [{:keys [::db/conn] :as cfg}] - (let [deleted-at (dt/now)] - (->> (db/cursor conn sql:get-orphan-teams) - (map :id) - (reduce (fn [total team-id] - (l/trc :hint "mark orphan team for deletion" :id (str team-id)) - - (db/update! conn :team - {:deleted-at deleted-at} - {:id team-id}) - - (wrk/submit! (-> cfg - (assoc ::wrk/task :delete-object) - (assoc ::wrk/params {:object :team - :deleted-at deleted-at - :id team-id}))) - (inc total)) - 0)))) - -(defmethod ig/pre-init-spec ::handler [_] - (s/keys :req [::db/pool])) - -(defmethod ig/init-key ::handler - [_ cfg] - (fn [{:keys [props] :as task}] - (db/tx-run! cfg (fn [{:keys [::db/conn] :as cfg}] - (let [total (delete-orphan-teams cfg)] - (l/inf :hint "task finished" - :teams total - :rollback? (boolean (:rollback? props))) - - (when (:rollback? props) - (db/rollback! conn)) - - {:processed total}))))) diff --git a/backend/test/backend_tests/rpc_profile_test.clj b/backend/test/backend_tests/rpc_profile_test.clj index 82168ecaff..839494a179 100644 --- a/backend/test/backend_tests/rpc_profile_test.clj +++ b/backend/test/backend_tests/rpc_profile_test.clj @@ -153,23 +153,22 @@ (t/is (nil? (:error out))) (t/is (= 1 (count (:result out))))) - ;; execute permanent deletion task - (let [result (th/run-task! :objects-gc {:min-age 0})] - (t/is (= 1 (:processed result)))) - - (let [row (th/db-get :team - {:id (:default-team-id prof)} - {::db/remove-deleted false})] - (t/is (nil? (:deleted-at row)))) - - (let [result (th/run-task! :orphan-teams-gc {:min-age 0})] - (t/is (= 1 (:processed result)))) + (th/run-pending-tasks!) (let [row (th/db-get :team {:id (:default-team-id prof)} {::db/remove-deleted false})] (t/is (dt/instant? (:deleted-at row)))) + ;; execute permanent deletion task + (let [result (th/run-task! :objects-gc {:min-age 0})] + (t/is (= 4 (:processed result)))) + + (let [row (th/db-get :team + {:id (:default-team-id prof)} + {::db/remove-deleted false})] + (t/is (nil? row))) + ;; query profile after delete (let [params {::th/type :get-profile ::rpc/profile-id (:id prof)} @@ -259,7 +258,6 @@ (t/is (= (:type edata) :validation)) (t/is (= (:code edata) :owner-teams-with-people)))) - ;; Leave team by role 0 (the default) and reassing owner to role 3 ;; without reassinging it (should fail) (let [params {::th/type :leave-team @@ -287,7 +285,7 @@ (t/is (nil? (:result out))) (t/is (nil? (:error out)))) - ;; Request profile to be deleted (it should fail) + ;; Request profile to be deleted (let [params {::th/type :delete-profile ::rpc/profile-id (:id prof1)} out (th/command! params)] @@ -305,22 +303,16 @@ (t/is (nil? (:error out))) (t/is (= 1 (count (:result out))))) + (th/run-pending-tasks!) + ;; execute permanent deletion task (let [result (th/run-task! :objects-gc {:min-age 0})] - (t/is (= 1 (:processed result)))) + (t/is (= 4 (:processed result)))) (let [row (th/db-get :team {:id (:default-team-id prof1)} {::db/remove-deleted false})] - (t/is (nil? (:deleted-at row)))) - - (let [result (th/run-task! :orphan-teams-gc {:min-age 0})] - (t/is (= 1 (:processed result)))) - - (let [row (th/db-get :team - {:id (:default-team-id prof1)} - {::db/remove-deleted false})] - (t/is (dt/instant? (:deleted-at row)))) + (t/is (nil? row))) ;; query profile after delete (let [params {::th/type :get-profile @@ -330,6 +322,33 @@ (let [result (:result out)] (t/is (= uuid/zero (:id result))))))) + +(t/deftest profile-deletion-4 + (let [prof1 (th/create-profile* 1) + file1 (th/create-file* 1 {:profile-id (:id prof1) + :project-id (:default-project-id prof1) + :is-shared false}) + team1 (th/create-team* 1 {:profile-id (:id prof1)}) + team2 (th/create-team* 2 {:profile-id (:id prof1)})] + + ;; Request profile to be deleted + (let [params {::th/type :delete-profile + ::rpc/profile-id (:id prof1)} + out (th/command! params)] + ;; (th/print-result! out) + (t/is (= {} (:result out))) + (t/is (nil? (:error out)))) + + (th/run-pending-tasks!) + + (let [rows (th/db-exec! ["select id,name,deleted_at from team where deleted_at is not null"])] + (t/is (= 3 (count rows)))) + + ;; execute permanent deletion task + (let [result (th/run-task! :objects-gc {:min-age 0})] + (t/is (= 8 (:processed result)))))) + + (t/deftest email-blacklist-1 (t/is (false? (email.blacklist/enabled? th/*system*))) (t/is (true? (email.blacklist/enabled? (assoc th/*system* :app.email/blacklist [])))) From ba721def26595453d929c2604cccbc922ad5a004 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Thu, 27 Jun 2024 13:46:52 +0200 Subject: [PATCH 266/476] :sparkles: Add srepl helpers for profile deletion handling --- backend/src/app/srepl/main.clj | 39 +++++++++++++++++++++++++++++++--- 1 file changed, 36 insertions(+), 3 deletions(-) diff --git a/backend/src/app/srepl/main.clj b/backend/src/app/srepl/main.clj index aed63f1cdf..1c4c5430aa 100644 --- a/backend/src/app/srepl/main.clj +++ b/backend/src/app/srepl/main.clj @@ -502,8 +502,6 @@ :restored) - - (defn- restore-project* [{:keys [::db/conn] :as cfg} project-id] @@ -535,6 +533,24 @@ :restored) +(defn- restore-profile* + [{:keys [::db/conn] :as cfg} profile-id] + (db/update! conn :profile + {:deleted-at nil} + {:id profile-id}) + + (doseq [{:keys [id]} (profile/get-owned-teams conn profile-id)] + (restore-team* cfg id)) + + :restored) + + +(defn restore-deleted-profile! + "Mark a team and all related objects as not deleted" + [profile-id] + (let [profile-id (h/parse-uuid profile-id)] + (db/tx-run! main/system restore-profile* profile-id))) + (defn restore-deleted-team! "Mark a team and all related objects as not deleted" [team-id] @@ -562,6 +578,15 @@ (assoc ::wrk/params {:object :team :deleted-at (dt/now) :id team-id}))))) +(defn delete-profile! + "Mark a profile for deletion" + [profile-id] + (let [profile-id (h/parse-uuid profile-id)] + (wrk/invoke! (-> main/system + (assoc ::wrk/task :delete-object) + (assoc ::wrk/params {:object :profile + :deleted-at (dt/now) + :id profile-id}))))) (defn delete-project! "Mark a project for deletion" [project-id] @@ -582,6 +607,15 @@ :deleted-at (dt/now) :id file-id}))))) +(defn process-deleted-profiles-cascade + [] + (->> (db/exec! main/system ["select id, deleted_at from profile where deleted_at is not null"]) + (run! (fn [{:keys [id deleted-at]}] + (wrk/invoke! (-> main/system + (assoc ::wrk/task :delete-object) + (assoc ::wrk/params {:object :profile + :deleted-at deleted-at + :id id}))))))) (defn process-deleted-teams-cascade [] @@ -593,7 +627,6 @@ :deleted-at deleted-at :id id}))))))) - (defn process-deleted-projects-cascade [] (->> (db/exec! main/system ["select id, deleted_at from project where deleted_at is not null"]) From 17015c53538fa073a4d411fff5882aa3c3795df9 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Thu, 27 Jun 2024 13:52:23 +0200 Subject: [PATCH 267/476] :bug: Add missing logged-out event after account deletion --- frontend/src/app/main/data/users.cljs | 1 + 1 file changed, 1 insertion(+) diff --git a/frontend/src/app/main/data/users.cljs b/frontend/src/app/main/data/users.cljs index bc2b7dbcd1..d3e2592d21 100644 --- a/frontend/src/app/main/data/users.cljs +++ b/frontend/src/app/main/data/users.cljs @@ -570,6 +570,7 @@ (->> (rp/cmd! :delete-profile {}) (rx/tap on-success) (rx/catch on-error) + (rx/map logged-out) (rx/delay-at-least 300)))))) ;; --- EVENT: request-profile-recovery From 0cbc3487b068172924efa9aef7c5fe1c5e592c71 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bel=C3=A9n=20Albeza?= Date: Wed, 19 Jun 2024 16:09:09 +0200 Subject: [PATCH 268/476] :wrench: Tweak the pixel diff ratio of playwright --- frontend/playwright.config.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/playwright.config.js b/frontend/playwright.config.js index 646795fd2e..6196826df5 100644 --- a/frontend/playwright.config.js +++ b/frontend/playwright.config.js @@ -48,7 +48,7 @@ export default defineConfig({ use: { ...devices["Desktop Chrome"] }, testDir: "./playwright/ui/visual-specs", expect: { - toHaveScreenshot: { maxDiffPixelRatio: 0.01 }, + toHaveScreenshot: { maxDiffPixelRatio: 0.005 }, }, }, ], From 595f153d8511109145555e2106f8a5cf26eafbaf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bel=C3=A9n=20Albeza?= Date: Wed, 19 Jun 2024 11:45:26 +0200 Subject: [PATCH 269/476] :sparkles: Remove importing animate.css --- frontend/package.json | 1 - .../common/dependencies/animations.scss | 3304 +---------------- frontend/resources/styles/main-default.scss | 1 - frontend/yarn.lock | 8 - 4 files changed, 10 insertions(+), 3304 deletions(-) diff --git a/frontend/package.json b/frontend/package.json index 51cf909c40..57df55eda4 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -48,7 +48,6 @@ "@storybook/react-vite": "^7.6.17", "@storybook/testing-library": "^0.2.2", "@types/node": "^20.11.20", - "animate.css": "^4.1.1", "autoprefixer": "^10.4.19", "concurrently": "^8.2.2", "draft-js": "git+https://github.com/penpot/draft-js.git#commit=4a99b2a6020b2af97f6dc5fa1b4275ec16b559a0", diff --git a/frontend/resources/styles/common/dependencies/animations.scss b/frontend/resources/styles/common/dependencies/animations.scss index 8b9a0fb031..c5030b2281 100644 --- a/frontend/resources/styles/common/dependencies/animations.scss +++ b/frontend/resources/styles/common/dependencies/animations.scss @@ -30,1228 +30,6 @@ animation-fill-mode: both; } -.animated.infinite { - -webkit-animation-iteration-count: infinite; - animation-iteration-count: infinite; -} - -.animated.hinge { - -webkit-animation-duration: 2s; - animation-duration: 2s; -} - -.animated.bounceIn, -.animated.bounceOut { - -webkit-animation-duration: 0.75s; - animation-duration: 0.75s; -} - -.animated.flipOutX, -.animated.flipOutY { - -webkit-animation-duration: 0.75s; - animation-duration: 0.75s; -} - -@-webkit-keyframes bounce { - 0%, - 20%, - 53%, - 80%, - 100% { - -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); - animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - } - - 40%, - 43% { - -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); - animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); - -webkit-transform: translate3d(0, -30px, 0); - transform: translate3d(0, -30px, 0); - } - - 70% { - -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); - animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); - -webkit-transform: translate3d(0, -15px, 0); - transform: translate3d(0, -15px, 0); - } - - 90% { - -webkit-transform: translate3d(0, -4px, 0); - transform: translate3d(0, -4px, 0); - } -} - -@keyframes bounce { - 0%, - 20%, - 53%, - 80%, - 100% { - -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); - animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - } - - 40%, - 43% { - -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); - animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); - -webkit-transform: translate3d(0, -30px, 0); - transform: translate3d(0, -30px, 0); - } - - 70% { - -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); - animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); - -webkit-transform: translate3d(0, -15px, 0); - transform: translate3d(0, -15px, 0); - } - - 90% { - -webkit-transform: translate3d(0, -4px, 0); - transform: translate3d(0, -4px, 0); - } -} - -.bounce { - -webkit-animation-name: bounce; - animation-name: bounce; - -webkit-transform-origin: center bottom; - transform-origin: center bottom; -} - -@-webkit-keyframes flash { - 0%, - 50%, - 100% { - opacity: 1; - } - - 25%, - 75% { - opacity: 0; - } -} - -@keyframes flash { - 0%, - 50%, - 100% { - opacity: 1; - } - - 25%, - 75% { - opacity: 0; - } -} - -.flash { - -webkit-animation-name: flash; - animation-name: flash; -} - -/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */ - -@-webkit-keyframes pulse { - 0% { - -webkit-transform: scale3d(1, 1, 1); - transform: scale3d(1, 1, 1); - } - - 50% { - -webkit-transform: scale3d(1.05, 1.05, 1.05); - transform: scale3d(1.05, 1.05, 1.05); - } - - 100% { - -webkit-transform: scale3d(1, 1, 1); - transform: scale3d(1, 1, 1); - } -} - -@keyframes pulse { - 0% { - -webkit-transform: scale3d(1, 1, 1); - transform: scale3d(1, 1, 1); - } - - 50% { - -webkit-transform: scale3d(1.05, 1.05, 1.05); - transform: scale3d(1.05, 1.05, 1.05); - } - - 100% { - -webkit-transform: scale3d(1, 1, 1); - transform: scale3d(1, 1, 1); - } -} - -.pulse { - -webkit-animation-name: pulse; - animation-name: pulse; -} - -@-webkit-keyframes rubberBand { - 0% { - -webkit-transform: scale3d(1, 1, 1); - transform: scale3d(1, 1, 1); - } - - 30% { - -webkit-transform: scale3d(1.25, 0.75, 1); - transform: scale3d(1.25, 0.75, 1); - } - - 40% { - -webkit-transform: scale3d(0.75, 1.25, 1); - transform: scale3d(0.75, 1.25, 1); - } - - 50% { - -webkit-transform: scale3d(1.15, 0.85, 1); - transform: scale3d(1.15, 0.85, 1); - } - - 65% { - -webkit-transform: scale3d(0.95, 1.05, 1); - transform: scale3d(0.95, 1.05, 1); - } - - 75% { - -webkit-transform: scale3d(1.05, 0.95, 1); - transform: scale3d(1.05, 0.95, 1); - } - - 100% { - -webkit-transform: scale3d(1, 1, 1); - transform: scale3d(1, 1, 1); - } -} - -@keyframes rubberBand { - 0% { - -webkit-transform: scale3d(1, 1, 1); - transform: scale3d(1, 1, 1); - } - - 30% { - -webkit-transform: scale3d(1.25, 0.75, 1); - transform: scale3d(1.25, 0.75, 1); - } - - 40% { - -webkit-transform: scale3d(0.75, 1.25, 1); - transform: scale3d(0.75, 1.25, 1); - } - - 50% { - -webkit-transform: scale3d(1.15, 0.85, 1); - transform: scale3d(1.15, 0.85, 1); - } - - 65% { - -webkit-transform: scale3d(0.95, 1.05, 1); - transform: scale3d(0.95, 1.05, 1); - } - - 75% { - -webkit-transform: scale3d(1.05, 0.95, 1); - transform: scale3d(1.05, 0.95, 1); - } - - 100% { - -webkit-transform: scale3d(1, 1, 1); - transform: scale3d(1, 1, 1); - } -} - -.rubberBand { - -webkit-animation-name: rubberBand; - animation-name: rubberBand; -} - -@-webkit-keyframes shake { - 0%, - 100% { - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - } - - 10%, - 30%, - 50%, - 70%, - 90% { - -webkit-transform: translate3d(-10px, 0, 0); - transform: translate3d(-10px, 0, 0); - } - - 20%, - 40%, - 60%, - 80% { - -webkit-transform: translate3d(10px, 0, 0); - transform: translate3d(10px, 0, 0); - } -} - -@keyframes shake { - 0%, - 100% { - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - } - - 10%, - 30%, - 50%, - 70%, - 90% { - -webkit-transform: translate3d(-10px, 0, 0); - transform: translate3d(-10px, 0, 0); - } - - 20%, - 40%, - 60%, - 80% { - -webkit-transform: translate3d(10px, 0, 0); - transform: translate3d(10px, 0, 0); - } -} - -.shake { - -webkit-animation-name: shake; - animation-name: shake; -} - -@-webkit-keyframes swing { - 20% { - -webkit-transform: rotate3d(0, 0, 1, 15deg); - transform: rotate3d(0, 0, 1, 15deg); - } - - 40% { - -webkit-transform: rotate3d(0, 0, 1, -10deg); - transform: rotate3d(0, 0, 1, -10deg); - } - - 60% { - -webkit-transform: rotate3d(0, 0, 1, 5deg); - transform: rotate3d(0, 0, 1, 5deg); - } - - 80% { - -webkit-transform: rotate3d(0, 0, 1, -5deg); - transform: rotate3d(0, 0, 1, -5deg); - } - - 100% { - -webkit-transform: rotate3d(0, 0, 1, 0deg); - transform: rotate3d(0, 0, 1, 0deg); - } -} - -@keyframes swing { - 20% { - -webkit-transform: rotate3d(0, 0, 1, 15deg); - transform: rotate3d(0, 0, 1, 15deg); - } - - 40% { - -webkit-transform: rotate3d(0, 0, 1, -10deg); - transform: rotate3d(0, 0, 1, -10deg); - } - - 60% { - -webkit-transform: rotate3d(0, 0, 1, 5deg); - transform: rotate3d(0, 0, 1, 5deg); - } - - 80% { - -webkit-transform: rotate3d(0, 0, 1, -5deg); - transform: rotate3d(0, 0, 1, -5deg); - } - - 100% { - -webkit-transform: rotate3d(0, 0, 1, 0deg); - transform: rotate3d(0, 0, 1, 0deg); - } -} - -.swing { - -webkit-transform-origin: top center; - transform-origin: top center; - -webkit-animation-name: swing; - animation-name: swing; -} - -@-webkit-keyframes tada { - 0% { - -webkit-transform: scale3d(1, 1, 1); - transform: scale3d(1, 1, 1); - } - - 10%, - 20% { - -webkit-transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg); - transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg); - } - - 30%, - 50%, - 70%, - 90% { - -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg); - transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg); - } - - 40%, - 60%, - 80% { - -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg); - transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg); - } - - 100% { - -webkit-transform: scale3d(1, 1, 1); - transform: scale3d(1, 1, 1); - } -} - -@keyframes tada { - 0% { - -webkit-transform: scale3d(1, 1, 1); - transform: scale3d(1, 1, 1); - } - - 10%, - 20% { - -webkit-transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg); - transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg); - } - - 30%, - 50%, - 70%, - 90% { - -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg); - transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg); - } - - 40%, - 60%, - 80% { - -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg); - transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg); - } - - 100% { - -webkit-transform: scale3d(1, 1, 1); - transform: scale3d(1, 1, 1); - } -} - -.tada { - -webkit-animation-name: tada; - animation-name: tada; -} - -/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */ - -@-webkit-keyframes wobble { - 0% { - -webkit-transform: none; - transform: none; - } - - 15% { - -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg); - transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg); - } - - 30% { - -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg); - transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg); - } - - 45% { - -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg); - transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg); - } - - 60% { - -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg); - transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg); - } - - 75% { - -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg); - transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg); - } - - 100% { - -webkit-transform: none; - transform: none; - } -} - -@keyframes wobble { - 0% { - -webkit-transform: none; - transform: none; - } - - 15% { - -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg); - transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg); - } - - 30% { - -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg); - transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg); - } - - 45% { - -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg); - transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg); - } - - 60% { - -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg); - transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg); - } - - 75% { - -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg); - transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg); - } - - 100% { - -webkit-transform: none; - transform: none; - } -} - -.wobble { - -webkit-animation-name: wobble; - animation-name: wobble; -} - -@-webkit-keyframes jello { - 11.1% { - -webkit-transform: none; - transform: none; - } - - 22.2% { - -webkit-transform: skewX(-12.5deg) skewY(-12.5deg); - transform: skewX(-12.5deg) skewY(-12.5deg); - } - 33.3% { - -webkit-transform: skewX(6.25deg) skewY(6.25deg); - transform: skewX(6.25deg) skewY(6.25deg); - } - 44.4% { - -webkit-transform: skewX(-3.125deg) skewY(-3.125deg); - transform: skewX(-3.125deg) skewY(-3.125deg); - } - 55.5% { - -webkit-transform: skewX(1.5625deg) skewY(1.5625deg); - transform: skewX(1.5625deg) skewY(1.5625deg); - } - 66.6% { - -webkit-transform: skewX(-0.78125deg) skewY(-0.78125deg); - transform: skewX(-0.78125deg) skewY(-0.78125deg); - } - 77.7% { - -webkit-transform: skewX(0.390625deg) skewY(0.390625deg); - transform: skewX(0.390625deg) skewY(0.390625deg); - } - 88.8% { - -webkit-transform: skewX(-0.1953125deg) skewY(-0.1953125deg); - transform: skewX(-0.1953125deg) skewY(-0.1953125deg); - } - 100% { - -webkit-transform: none; - transform: none; - } -} - -@keyframes jello { - 11.1% { - -webkit-transform: none; - transform: none; - } - - 22.2% { - -webkit-transform: skewX(-12.5deg) skewY(-12.5deg); - transform: skewX(-12.5deg) skewY(-12.5deg); - } - 33.3% { - -webkit-transform: skewX(6.25deg) skewY(6.25deg); - transform: skewX(6.25deg) skewY(6.25deg); - } - 44.4% { - -webkit-transform: skewX(-3.125deg) skewY(-3.125deg); - transform: skewX(-3.125deg) skewY(-3.125deg); - } - 55.5% { - -webkit-transform: skewX(1.5625deg) skewY(1.5625deg); - transform: skewX(1.5625deg) skewY(1.5625deg); - } - 66.6% { - -webkit-transform: skewX(-0.78125deg) skewY(-0.78125deg); - transform: skewX(-0.78125deg) skewY(-0.78125deg); - } - 77.7% { - -webkit-transform: skewX(0.390625deg) skewY(0.390625deg); - transform: skewX(0.390625deg) skewY(0.390625deg); - } - 88.8% { - -webkit-transform: skewX(-0.1953125deg) skewY(-0.1953125deg); - transform: skewX(-0.1953125deg) skewY(-0.1953125deg); - } - 100% { - -webkit-transform: none; - transform: none; - } -} - -.jello { - -webkit-animation-name: jello; - animation-name: jello; - -webkit-transform-origin: center; - - transform-origin: center; -} - -@-webkit-keyframes bounceIn { - 0%, - 20%, - 40%, - 60%, - 80%, - 100% { - -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); - animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); - } - - 0% { - opacity: 0; - -webkit-transform: scale3d(0.3, 0.3, 0.3); - transform: scale3d(0.3, 0.3, 0.3); - } - - 20% { - -webkit-transform: scale3d(1.1, 1.1, 1.1); - transform: scale3d(1.1, 1.1, 1.1); - } - - 40% { - -webkit-transform: scale3d(0.9, 0.9, 0.9); - transform: scale3d(0.9, 0.9, 0.9); - } - - 60% { - opacity: 1; - -webkit-transform: scale3d(1.03, 1.03, 1.03); - transform: scale3d(1.03, 1.03, 1.03); - } - - 80% { - -webkit-transform: scale3d(0.97, 0.97, 0.97); - transform: scale3d(0.97, 0.97, 0.97); - } - - 100% { - opacity: 1; - -webkit-transform: scale3d(1, 1, 1); - transform: scale3d(1, 1, 1); - } -} - -@keyframes bounceIn { - 0%, - 20%, - 40%, - 60%, - 80%, - 100% { - -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); - animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); - } - - 0% { - opacity: 0; - -webkit-transform: scale3d(0.3, 0.3, 0.3); - transform: scale3d(0.3, 0.3, 0.3); - } - - 20% { - -webkit-transform: scale3d(1.1, 1.1, 1.1); - transform: scale3d(1.1, 1.1, 1.1); - } - - 40% { - -webkit-transform: scale3d(0.9, 0.9, 0.9); - transform: scale3d(0.9, 0.9, 0.9); - } - - 60% { - opacity: 1; - -webkit-transform: scale3d(1.03, 1.03, 1.03); - transform: scale3d(1.03, 1.03, 1.03); - } - - 80% { - -webkit-transform: scale3d(0.97, 0.97, 0.97); - transform: scale3d(0.97, 0.97, 0.97); - } - - 100% { - opacity: 1; - -webkit-transform: scale3d(1, 1, 1); - transform: scale3d(1, 1, 1); - } -} - -.bounceIn { - -webkit-animation-name: bounceIn; - animation-name: bounceIn; -} - -@-webkit-keyframes bounceInDown { - 0%, - 60%, - 75%, - 90%, - 100% { - -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); - animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); - } - - 0% { - opacity: 0; - -webkit-transform: translate3d(0, -3000px, 0); - transform: translate3d(0, -3000px, 0); - } - - 60% { - opacity: 1; - -webkit-transform: translate3d(0, 25px, 0); - transform: translate3d(0, 25px, 0); - } - - 75% { - -webkit-transform: translate3d(0, -10px, 0); - transform: translate3d(0, -10px, 0); - } - - 90% { - -webkit-transform: translate3d(0, 5px, 0); - transform: translate3d(0, 5px, 0); - } - - 100% { - -webkit-transform: none; - transform: none; - } -} - -@keyframes bounceInDown { - 0%, - 60%, - 75%, - 90%, - 100% { - -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); - animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); - } - - 0% { - opacity: 0; - -webkit-transform: translate3d(0, -3000px, 0); - transform: translate3d(0, -3000px, 0); - } - - 60% { - opacity: 1; - -webkit-transform: translate3d(0, 25px, 0); - transform: translate3d(0, 25px, 0); - } - - 75% { - -webkit-transform: translate3d(0, -10px, 0); - transform: translate3d(0, -10px, 0); - } - - 90% { - -webkit-transform: translate3d(0, 5px, 0); - transform: translate3d(0, 5px, 0); - } - - 100% { - -webkit-transform: none; - transform: none; - } -} - -.bounceInDown { - -webkit-animation-name: bounceInDown; - animation-name: bounceInDown; -} - -@-webkit-keyframes bounceInLeft { - 0%, - 60%, - 75%, - 90%, - 100% { - -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); - animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); - } - - 0% { - opacity: 0; - -webkit-transform: translate3d(-3000px, 0, 0); - transform: translate3d(-3000px, 0, 0); - } - - 60% { - opacity: 1; - -webkit-transform: translate3d(25px, 0, 0); - transform: translate3d(25px, 0, 0); - } - - 75% { - -webkit-transform: translate3d(-10px, 0, 0); - transform: translate3d(-10px, 0, 0); - } - - 90% { - -webkit-transform: translate3d(5px, 0, 0); - transform: translate3d(5px, 0, 0); - } - - 100% { - -webkit-transform: none; - transform: none; - } -} - -@keyframes bounceInLeft { - 0%, - 60%, - 75%, - 90%, - 100% { - -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); - animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); - } - - 0% { - opacity: 0; - -webkit-transform: translate3d(-3000px, 0, 0); - transform: translate3d(-3000px, 0, 0); - } - - 60% { - opacity: 1; - -webkit-transform: translate3d(25px, 0, 0); - transform: translate3d(25px, 0, 0); - } - - 75% { - -webkit-transform: translate3d(-10px, 0, 0); - transform: translate3d(-10px, 0, 0); - } - - 90% { - -webkit-transform: translate3d(5px, 0, 0); - transform: translate3d(5px, 0, 0); - } - - 100% { - -webkit-transform: none; - transform: none; - } -} - -.bounceInLeft { - -webkit-animation-name: bounceInLeft; - animation-name: bounceInLeft; -} - -@-webkit-keyframes bounceInRight { - 0%, - 60%, - 75%, - 90%, - 100% { - -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); - animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); - } - - 0% { - opacity: 0; - -webkit-transform: translate3d(3000px, 0, 0); - transform: translate3d(3000px, 0, 0); - } - - 60% { - opacity: 1; - -webkit-transform: translate3d(-25px, 0, 0); - transform: translate3d(-25px, 0, 0); - } - - 75% { - -webkit-transform: translate3d(10px, 0, 0); - transform: translate3d(10px, 0, 0); - } - - 90% { - -webkit-transform: translate3d(-5px, 0, 0); - transform: translate3d(-5px, 0, 0); - } - - 100% { - -webkit-transform: none; - transform: none; - } -} - -@keyframes bounceInRight { - 0%, - 60%, - 75%, - 90%, - 100% { - -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); - animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); - } - - 0% { - opacity: 0; - -webkit-transform: translate3d(3000px, 0, 0); - transform: translate3d(3000px, 0, 0); - } - - 60% { - opacity: 1; - -webkit-transform: translate3d(-25px, 0, 0); - transform: translate3d(-25px, 0, 0); - } - - 75% { - -webkit-transform: translate3d(10px, 0, 0); - transform: translate3d(10px, 0, 0); - } - - 90% { - -webkit-transform: translate3d(-5px, 0, 0); - transform: translate3d(-5px, 0, 0); - } - - 100% { - -webkit-transform: none; - transform: none; - } -} - -.bounceInRight { - -webkit-animation-name: bounceInRight; - animation-name: bounceInRight; -} - -@-webkit-keyframes bounceInUp { - 0%, - 60%, - 75%, - 90%, - 100% { - -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); - animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); - } - - 0% { - opacity: 0; - -webkit-transform: translate3d(0, 3000px, 0); - transform: translate3d(0, 3000px, 0); - } - - 60% { - opacity: 1; - -webkit-transform: translate3d(0, -20px, 0); - transform: translate3d(0, -20px, 0); - } - - 75% { - -webkit-transform: translate3d(0, 10px, 0); - transform: translate3d(0, 10px, 0); - } - - 90% { - -webkit-transform: translate3d(0, -5px, 0); - transform: translate3d(0, -5px, 0); - } - - 100% { - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - } -} - -@keyframes bounceInUp { - 0%, - 60%, - 75%, - 90%, - 100% { - -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); - animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); - } - - 0% { - opacity: 0; - -webkit-transform: translate3d(0, 3000px, 0); - transform: translate3d(0, 3000px, 0); - } - - 60% { - opacity: 1; - -webkit-transform: translate3d(0, -20px, 0); - transform: translate3d(0, -20px, 0); - } - - 75% { - -webkit-transform: translate3d(0, 10px, 0); - transform: translate3d(0, 10px, 0); - } - - 90% { - -webkit-transform: translate3d(0, -5px, 0); - transform: translate3d(0, -5px, 0); - } - - 100% { - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - } -} - -.bounceInUp { - -webkit-animation-name: bounceInUp; - animation-name: bounceInUp; -} - -@-webkit-keyframes bounceOut { - 20% { - -webkit-transform: scale3d(0.9, 0.9, 0.9); - transform: scale3d(0.9, 0.9, 0.9); - } - - 50%, - 55% { - opacity: 1; - -webkit-transform: scale3d(1.1, 1.1, 1.1); - transform: scale3d(1.1, 1.1, 1.1); - } - - 100% { - opacity: 0; - -webkit-transform: scale3d(0.3, 0.3, 0.3); - transform: scale3d(0.3, 0.3, 0.3); - } -} - -@keyframes bounceOut { - 20% { - -webkit-transform: scale3d(0.9, 0.9, 0.9); - transform: scale3d(0.9, 0.9, 0.9); - } - - 50%, - 55% { - opacity: 1; - -webkit-transform: scale3d(1.1, 1.1, 1.1); - transform: scale3d(1.1, 1.1, 1.1); - } - - 100% { - opacity: 0; - -webkit-transform: scale3d(0.3, 0.3, 0.3); - transform: scale3d(0.3, 0.3, 0.3); - } -} - -.bounceOut { - -webkit-animation-name: bounceOut; - animation-name: bounceOut; -} - -@-webkit-keyframes bounceOutDown { - 20% { - -webkit-transform: translate3d(0, 10px, 0); - transform: translate3d(0, 10px, 0); - } - - 40%, - 45% { - opacity: 1; - -webkit-transform: translate3d(0, -20px, 0); - transform: translate3d(0, -20px, 0); - } - - 100% { - opacity: 0; - -webkit-transform: translate3d(0, 2000px, 0); - transform: translate3d(0, 2000px, 0); - } -} - -@keyframes bounceOutDown { - 20% { - -webkit-transform: translate3d(0, 10px, 0); - transform: translate3d(0, 10px, 0); - } - - 40%, - 45% { - opacity: 1; - -webkit-transform: translate3d(0, -20px, 0); - transform: translate3d(0, -20px, 0); - } - - 100% { - opacity: 0; - -webkit-transform: translate3d(0, 2000px, 0); - transform: translate3d(0, 2000px, 0); - } -} - -.bounceOutDown { - -webkit-animation-name: bounceOutDown; - animation-name: bounceOutDown; -} - -@-webkit-keyframes bounceOutLeft { - 20% { - opacity: 1; - -webkit-transform: translate3d(20px, 0, 0); - transform: translate3d(20px, 0, 0); - } - - 100% { - opacity: 0; - -webkit-transform: translate3d(-2000px, 0, 0); - transform: translate3d(-2000px, 0, 0); - } -} - -@keyframes bounceOutLeft { - 20% { - opacity: 1; - -webkit-transform: translate3d(20px, 0, 0); - transform: translate3d(20px, 0, 0); - } - - 100% { - opacity: 0; - -webkit-transform: translate3d(-2000px, 0, 0); - transform: translate3d(-2000px, 0, 0); - } -} - -.bounceOutLeft { - -webkit-animation-name: bounceOutLeft; - animation-name: bounceOutLeft; -} - -@-webkit-keyframes bounceOutRight { - 20% { - opacity: 1; - -webkit-transform: translate3d(-20px, 0, 0); - transform: translate3d(-20px, 0, 0); - } - - 100% { - opacity: 0; - -webkit-transform: translate3d(2000px, 0, 0); - transform: translate3d(2000px, 0, 0); - } -} - -@keyframes bounceOutRight { - 20% { - opacity: 1; - -webkit-transform: translate3d(-20px, 0, 0); - transform: translate3d(-20px, 0, 0); - } - - 100% { - opacity: 0; - -webkit-transform: translate3d(2000px, 0, 0); - transform: translate3d(2000px, 0, 0); - } -} - -.bounceOutRight { - -webkit-animation-name: bounceOutRight; - animation-name: bounceOutRight; -} - -@-webkit-keyframes bounceOutUp { - 20% { - -webkit-transform: translate3d(0, -10px, 0); - transform: translate3d(0, -10px, 0); - } - - 40%, - 45% { - opacity: 1; - -webkit-transform: translate3d(0, 20px, 0); - transform: translate3d(0, 20px, 0); - } - - 100% { - opacity: 0; - -webkit-transform: translate3d(0, -2000px, 0); - transform: translate3d(0, -2000px, 0); - } -} - -@keyframes bounceOutUp { - 20% { - -webkit-transform: translate3d(0, -10px, 0); - transform: translate3d(0, -10px, 0); - } - - 40%, - 45% { - opacity: 1; - -webkit-transform: translate3d(0, 20px, 0); - transform: translate3d(0, 20px, 0); - } - - 100% { - opacity: 0; - -webkit-transform: translate3d(0, -2000px, 0); - transform: translate3d(0, -2000px, 0); - } -} - -.bounceOutUp { - -webkit-animation-name: bounceOutUp; - animation-name: bounceOutUp; -} - @-webkit-keyframes fadeIn { 0% { opacity: 0; @@ -1310,2086 +88,16 @@ animation-name: fadeInDown; } -@-webkit-keyframes fadeInDownBig { - 0% { - opacity: 0; - -webkit-transform: translate3d(0, -2000px, 0); - transform: translate3d(0, -2000px, 0); - } - - 100% { - opacity: 1; - -webkit-transform: none; - transform: none; - } -} - -@keyframes fadeInDownBig { - 0% { - opacity: 0; - -webkit-transform: translate3d(0, -2000px, 0); - transform: translate3d(0, -2000px, 0); - } - - 100% { - opacity: 1; - -webkit-transform: none; - transform: none; - } -} - -.fadeInDownBig { - -webkit-animation-name: fadeInDownBig; - animation-name: fadeInDownBig; -} - -@-webkit-keyframes fadeInLeft { - 0% { - opacity: 0; - -webkit-transform: translate3d(-100%, 0, 0); - transform: translate3d(-100%, 0, 0); - } - - 100% { - opacity: 1; - -webkit-transform: none; - transform: none; - } -} - -@keyframes fadeInLeft { - 0% { - opacity: 0; - -webkit-transform: translate3d(-100%, 0, 0); - transform: translate3d(-100%, 0, 0); - } - - 100% { - opacity: 1; - -webkit-transform: none; - transform: none; - } -} - -.fadeInLeft { - -webkit-animation-name: fadeInLeft; - animation-name: fadeInLeft; -} - -@-webkit-keyframes fadeInLeftBig { - 0% { - opacity: 0; - -webkit-transform: translate3d(-2000px, 0, 0); - transform: translate3d(-2000px, 0, 0); - } - - 100% { - opacity: 1; - -webkit-transform: none; - transform: none; - } -} - -@keyframes fadeInLeftBig { - 0% { - opacity: 0; - -webkit-transform: translate3d(-2000px, 0, 0); - transform: translate3d(-2000px, 0, 0); - } - - 100% { - opacity: 1; - -webkit-transform: none; - transform: none; - } -} - -.fadeInLeftBig { - -webkit-animation-name: fadeInLeftBig; - animation-name: fadeInLeftBig; -} - -@-webkit-keyframes fadeInRight { - 0% { - opacity: 0; - -webkit-transform: translate3d(100%, 0, 0); - transform: translate3d(100%, 0, 0); - } - - 100% { - opacity: 1; - -webkit-transform: none; - transform: none; - } -} - -@keyframes fadeInRight { - 0% { - opacity: 0; - -webkit-transform: translate3d(100%, 0, 0); - transform: translate3d(100%, 0, 0); - } - - 100% { - opacity: 1; - -webkit-transform: none; - transform: none; - } -} - -.fadeInRight { - -webkit-animation-name: fadeInRight; - animation-name: fadeInRight; -} - -@-webkit-keyframes fadeInRightBig { - 0% { - opacity: 0; - -webkit-transform: translate3d(2000px, 0, 0); - transform: translate3d(2000px, 0, 0); - } - - 100% { - opacity: 1; - -webkit-transform: none; - transform: none; - } -} - -@keyframes fadeInRightBig { - 0% { - opacity: 0; - -webkit-transform: translate3d(2000px, 0, 0); - transform: translate3d(2000px, 0, 0); - } - - 100% { - opacity: 1; - -webkit-transform: none; - transform: none; - } -} - -.fadeInRightBig { - -webkit-animation-name: fadeInRightBig; - animation-name: fadeInRightBig; -} - -@-webkit-keyframes fadeInUp { - 0% { - opacity: 0; - -webkit-transform: translate3d(0, 100%, 0); - transform: translate3d(0, 100%, 0); - } - - 100% { - opacity: 1; - -webkit-transform: none; - transform: none; - } -} - -@keyframes fadeInUp { - 0% { - opacity: 0; - -webkit-transform: translate3d(0, 100%, 0); - transform: translate3d(0, 100%, 0); - max-height: 0px; - } - - 100% { - opacity: 1; - -webkit-transform: none; - transform: none; - } -} - -.fadeInUp { - -webkit-animation-name: fadeInUp; - animation-name: fadeInUp; -} - -@-webkit-keyframes fadeInUpBig { - 0% { - opacity: 0; - -webkit-transform: translate3d(0, 2000px, 0); - transform: translate3d(0, 2000px, 0); - } - - 100% { - opacity: 1; - -webkit-transform: none; - transform: none; - } -} - -@keyframes fadeInUpBig { - 0% { - opacity: 0; - -webkit-transform: translate3d(0, 2000px, 0); - transform: translate3d(0, 2000px, 0); - } - - 100% { - opacity: 1; - -webkit-transform: none; - transform: none; - } -} - -.fadeInUpBig { - -webkit-animation-name: fadeInUpBig; - animation-name: fadeInUpBig; -} - -@-webkit-keyframes fadeOut { - 0% { - opacity: 1; - } - - 100% { - opacity: 0; - } -} - -@keyframes fadeOut { - 0% { - opacity: 1; - } - - 100% { - opacity: 0; - } -} - -.fadeOut { - -webkit-animation-name: fadeOut; - animation-name: fadeOut; -} - -@-webkit-keyframes fadeOutDown { - 0% { - opacity: 1; - } - - 100% { - opacity: 0; - -webkit-transform: translate3d(0, 100%, 0); - transform: translate3d(0, 100%, 0); - } -} - -@keyframes fadeOutDown { - 0% { - opacity: 1; - } - - 100% { - opacity: 0; - -webkit-transform: translate3d(0, 100%, 0); - transform: translate3d(0, 100%, 0); - max-height: 0px; - } -} - -.fadeOutDown { - -webkit-animation-name: fadeOutDown; - animation-name: fadeOutDown; -} - -@-webkit-keyframes fadeOutDownBig { - 0% { - opacity: 1; - } - - 100% { - opacity: 0; - -webkit-transform: translate3d(0, 2000px, 0); - transform: translate3d(0, 2000px, 0); - } -} - -@keyframes fadeOutDownBig { - 0% { - opacity: 1; - } - - 100% { - opacity: 0; - -webkit-transform: translate3d(0, 2000px, 0); - transform: translate3d(0, 2000px, 0); - } -} - -.fadeOutDownBig { - -webkit-animation-name: fadeOutDownBig; - animation-name: fadeOutDownBig; -} - -@-webkit-keyframes fadeOutLeft { - 0% { - opacity: 1; - } - - 100% { - opacity: 0; - -webkit-transform: translate3d(-100%, 0, 0); - transform: translate3d(-100%, 0, 0); - } -} - -@keyframes fadeOutLeft { - 0% { - opacity: 1; - } - - 100% { - opacity: 0; - -webkit-transform: translate3d(-100%, 0, 0); - transform: translate3d(-100%, 0, 0); - } -} - -.fadeOutLeft { - -webkit-animation-name: fadeOutLeft; - animation-name: fadeOutLeft; -} - -@-webkit-keyframes fadeOutLeftBig { - 0% { - opacity: 1; - } - - 100% { - opacity: 0; - -webkit-transform: translate3d(-2000px, 0, 0); - transform: translate3d(-2000px, 0, 0); - } -} - -@keyframes fadeOutLeftBig { - 0% { - opacity: 1; - } - - 100% { - opacity: 0; - -webkit-transform: translate3d(-2000px, 0, 0); - transform: translate3d(-2000px, 0, 0); - } -} - -.fadeOutLeftBig { - -webkit-animation-name: fadeOutLeftBig; - animation-name: fadeOutLeftBig; -} - -@-webkit-keyframes fadeOutRight { - 0% { - opacity: 1; - } - - 100% { - opacity: 0; - -webkit-transform: translate3d(100%, 0, 0); - transform: translate3d(100%, 0, 0); - } -} - -@keyframes fadeOutRight { - 0% { - opacity: 1; - } - - 100% { - opacity: 0; - -webkit-transform: translate3d(100%, 0, 0); - transform: translate3d(100%, 0, 0); - } -} - -.fadeOutRight { - -webkit-animation-name: fadeOutRight; - animation-name: fadeOutRight; -} - -@-webkit-keyframes fadeOutRightBig { - 0% { - opacity: 1; - } - - 100% { - opacity: 0; - -webkit-transform: translate3d(2000px, 0, 0); - transform: translate3d(2000px, 0, 0); - } -} - -@keyframes fadeOutRightBig { - 0% { - opacity: 1; - } - - 100% { - opacity: 0; - -webkit-transform: translate3d(2000px, 0, 0); - transform: translate3d(2000px, 0, 0); - } -} - -.fadeOutRightBig { - -webkit-animation-name: fadeOutRightBig; - animation-name: fadeOutRightBig; -} - -@-webkit-keyframes fadeOutUp { - 0% { - opacity: 1; - } - - 100% { - opacity: 0; - -webkit-transform: translate3d(0, -100%, 0); - transform: translate3d(0, -100%, 0); - } -} - -@keyframes fadeOutUp { - 0% { - opacity: 1; - } - - 100% { - opacity: 0; - -webkit-transform: translate3d(0, -100%, 0); - transform: translate3d(0, -100%, 0); - } -} - -.fadeOutUp { - -webkit-animation-name: fadeOutUp; - animation-name: fadeOutUp; -} - -@-webkit-keyframes fadeOutUpBig { - 0% { - opacity: 1; - } - - 100% { - opacity: 0; - -webkit-transform: translate3d(0, -2000px, 0); - transform: translate3d(0, -2000px, 0); - } -} - -@keyframes fadeOutUpBig { - 0% { - opacity: 1; - } - - 100% { - opacity: 0; - -webkit-transform: translate3d(0, -2000px, 0); - transform: translate3d(0, -2000px, 0); - } -} - -.fadeOutUpBig { - -webkit-animation-name: fadeOutUpBig; - animation-name: fadeOutUpBig; -} - -@-webkit-keyframes flip { - 0% { - -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -360deg); - transform: perspective(400px) rotate3d(0, 1, 0, -360deg); - -webkit-animation-timing-function: ease-out; - animation-timing-function: ease-out; - } - - 40% { - -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg); - transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg); - -webkit-animation-timing-function: ease-out; - animation-timing-function: ease-out; - } - - 50% { - -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg); - transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg); - -webkit-animation-timing-function: ease-in; - animation-timing-function: ease-in; - } - - 80% { - -webkit-transform: perspective(400px) scale3d(0.95, 0.95, 0.95); - transform: perspective(400px) scale3d(0.95, 0.95, 0.95); - -webkit-animation-timing-function: ease-in; - animation-timing-function: ease-in; - } - - 100% { - -webkit-transform: perspective(400px); - transform: perspective(400px); - -webkit-animation-timing-function: ease-in; - animation-timing-function: ease-in; - } -} - -@keyframes flip { - 0% { - -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -360deg); - transform: perspective(400px) rotate3d(0, 1, 0, -360deg); - -webkit-animation-timing-function: ease-out; - animation-timing-function: ease-out; - } - - 40% { - -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg); - transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg); - -webkit-animation-timing-function: ease-out; - animation-timing-function: ease-out; - } - - 50% { - -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg); - transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg); - -webkit-animation-timing-function: ease-in; - animation-timing-function: ease-in; - } - - 80% { - -webkit-transform: perspective(400px) scale3d(0.95, 0.95, 0.95); - transform: perspective(400px) scale3d(0.95, 0.95, 0.95); - -webkit-animation-timing-function: ease-in; - animation-timing-function: ease-in; - } - - 100% { - -webkit-transform: perspective(400px); - transform: perspective(400px); - -webkit-animation-timing-function: ease-in; - animation-timing-function: ease-in; - } -} - -.animated.flip { - -webkit-backface-visibility: visible; - backface-visibility: visible; - -webkit-animation-name: flip; - animation-name: flip; -} - -@-webkit-keyframes flipInX { - 0% { - -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg); - transform: perspective(400px) rotate3d(1, 0, 0, 90deg); - -webkit-animation-timing-function: ease-in; - animation-timing-function: ease-in; - opacity: 0; - } - - 40% { - -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg); - transform: perspective(400px) rotate3d(1, 0, 0, -20deg); - -webkit-animation-timing-function: ease-in; - animation-timing-function: ease-in; - } - - 60% { - -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg); - transform: perspective(400px) rotate3d(1, 0, 0, 10deg); - opacity: 1; - } - - 80% { - -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg); - transform: perspective(400px) rotate3d(1, 0, 0, -5deg); - } - - 100% { - -webkit-transform: perspective(400px); - transform: perspective(400px); - } -} - -@keyframes flipInX { - 0% { - -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg); - transform: perspective(400px) rotate3d(1, 0, 0, 90deg); - -webkit-animation-timing-function: ease-in; - animation-timing-function: ease-in; - opacity: 0; - } - - 40% { - -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg); - transform: perspective(400px) rotate3d(1, 0, 0, -20deg); - -webkit-animation-timing-function: ease-in; - animation-timing-function: ease-in; - } - - 60% { - -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg); - transform: perspective(400px) rotate3d(1, 0, 0, 10deg); - opacity: 1; - } - - 80% { - -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg); - transform: perspective(400px) rotate3d(1, 0, 0, -5deg); - } - - 100% { - -webkit-transform: perspective(400px); - transform: perspective(400px); - } -} - -.flipInX { - -webkit-backface-visibility: visible !important; - backface-visibility: visible !important; - -webkit-animation-name: flipInX; - animation-name: flipInX; -} - -@-webkit-keyframes flipInY { - 0% { - -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg); - transform: perspective(400px) rotate3d(0, 1, 0, 90deg); - -webkit-animation-timing-function: ease-in; - animation-timing-function: ease-in; - opacity: 0; - } - - 40% { - -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -20deg); - transform: perspective(400px) rotate3d(0, 1, 0, -20deg); - -webkit-animation-timing-function: ease-in; - animation-timing-function: ease-in; - } - - 60% { - -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 10deg); - transform: perspective(400px) rotate3d(0, 1, 0, 10deg); - opacity: 1; - } - - 80% { - -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -5deg); - transform: perspective(400px) rotate3d(0, 1, 0, -5deg); - } - - 100% { - -webkit-transform: perspective(400px); - transform: perspective(400px); - } -} - -@keyframes flipInY { - 0% { - -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg); - transform: perspective(400px) rotate3d(0, 1, 0, 90deg); - -webkit-animation-timing-function: ease-in; - animation-timing-function: ease-in; - opacity: 0; - } - - 40% { - -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -20deg); - transform: perspective(400px) rotate3d(0, 1, 0, -20deg); - -webkit-animation-timing-function: ease-in; - animation-timing-function: ease-in; - } - - 60% { - -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 10deg); - transform: perspective(400px) rotate3d(0, 1, 0, 10deg); - opacity: 1; - } - - 80% { - -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -5deg); - transform: perspective(400px) rotate3d(0, 1, 0, -5deg); - } - - 100% { - -webkit-transform: perspective(400px); - transform: perspective(400px); - } -} - -.flipInY { - -webkit-backface-visibility: visible !important; - backface-visibility: visible !important; - -webkit-animation-name: flipInY; - animation-name: flipInY; -} - -@-webkit-keyframes flipOutX { - 0% { - -webkit-transform: perspective(400px); - transform: perspective(400px); - } - - 30% { - -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg); - transform: perspective(400px) rotate3d(1, 0, 0, -20deg); - opacity: 1; - } - - 100% { - -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg); - transform: perspective(400px) rotate3d(1, 0, 0, 90deg); - opacity: 0; - } -} - -@keyframes flipOutX { - 0% { - -webkit-transform: perspective(400px); - transform: perspective(400px); - } - - 30% { - -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg); - transform: perspective(400px) rotate3d(1, 0, 0, -20deg); - opacity: 1; - } - - 100% { - -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg); - transform: perspective(400px) rotate3d(1, 0, 0, 90deg); - opacity: 0; - } -} - -.flipOutX { - -webkit-animation-name: flipOutX; - animation-name: flipOutX; - -webkit-backface-visibility: visible !important; - backface-visibility: visible !important; -} - -@-webkit-keyframes flipOutY { - 0% { - -webkit-transform: perspective(400px); - transform: perspective(400px); - } - - 30% { - -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -15deg); - transform: perspective(400px) rotate3d(0, 1, 0, -15deg); - opacity: 1; - } - - 100% { - -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg); - transform: perspective(400px) rotate3d(0, 1, 0, 90deg); - opacity: 0; - } -} - -@keyframes flipOutY { - 0% { - -webkit-transform: perspective(400px); - transform: perspective(400px); - } - - 30% { - -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -15deg); - transform: perspective(400px) rotate3d(0, 1, 0, -15deg); - opacity: 1; - } - - 100% { - -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg); - transform: perspective(400px) rotate3d(0, 1, 0, 90deg); - opacity: 0; - } -} - -.flipOutY { - -webkit-backface-visibility: visible !important; - backface-visibility: visible !important; - -webkit-animation-name: flipOutY; - animation-name: flipOutY; -} - -@-webkit-keyframes lightSpeedIn { - 0% { - -webkit-transform: translate3d(100%, 0, 0) skewX(-30deg); - transform: translate3d(100%, 0, 0) skewX(-30deg); - opacity: 0; - } - - 60% { - -webkit-transform: skewX(20deg); - transform: skewX(20deg); - opacity: 1; - } - - 80% { - -webkit-transform: skewX(-5deg); - transform: skewX(-5deg); - opacity: 1; - } - - 100% { - -webkit-transform: none; - transform: none; - opacity: 1; - } -} - -@keyframes lightSpeedIn { - 0% { - -webkit-transform: translate3d(100%, 0, 0) skewX(-30deg); - transform: translate3d(100%, 0, 0) skewX(-30deg); - opacity: 0; - } - - 60% { - -webkit-transform: skewX(20deg); - transform: skewX(20deg); - opacity: 1; - } - - 80% { - -webkit-transform: skewX(-5deg); - transform: skewX(-5deg); - opacity: 1; - } - - 100% { - -webkit-transform: none; - transform: none; - opacity: 1; - } -} - -.lightSpeedIn { - -webkit-animation-name: lightSpeedIn; - animation-name: lightSpeedIn; - -webkit-animation-timing-function: ease-out; - animation-timing-function: ease-out; -} - -@-webkit-keyframes lightSpeedOut { - 0% { - opacity: 1; - } - - 100% { - -webkit-transform: translate3d(100%, 0, 0) skewX(30deg); - transform: translate3d(100%, 0, 0) skewX(30deg); - opacity: 0; - } -} - -@keyframes lightSpeedOut { - 0% { - opacity: 1; - } - - 100% { - -webkit-transform: translate3d(100%, 0, 0) skewX(30deg); - transform: translate3d(100%, 0, 0) skewX(30deg); - opacity: 0; - } -} - -.lightSpeedOut { - -webkit-animation-name: lightSpeedOut; - animation-name: lightSpeedOut; - -webkit-animation-timing-function: ease-in; - animation-timing-function: ease-in; -} - -@-webkit-keyframes rotateIn { - 0% { - -webkit-transform-origin: center; - transform-origin: center; - -webkit-transform: rotate3d(0, 0, 1, -200deg); - transform: rotate3d(0, 0, 1, -200deg); - opacity: 0; - } - - 100% { - -webkit-transform-origin: center; - transform-origin: center; - -webkit-transform: none; - transform: none; - opacity: 1; - } -} - -@keyframes rotateIn { - 0% { - -webkit-transform-origin: center; - transform-origin: center; - -webkit-transform: rotate3d(0, 0, 1, -200deg); - transform: rotate3d(0, 0, 1, -200deg); - opacity: 0; - } - - 100% { - -webkit-transform-origin: center; - transform-origin: center; - -webkit-transform: none; - transform: none; - opacity: 1; - } -} - -.rotateIn { - -webkit-animation-name: rotateIn; - animation-name: rotateIn; -} - -@-webkit-keyframes rotateInDownLeft { - 0% { - -webkit-transform-origin: left bottom; - transform-origin: left bottom; - -webkit-transform: rotate3d(0, 0, 1, -45deg); - transform: rotate3d(0, 0, 1, -45deg); - opacity: 0; - } - - 100% { - -webkit-transform-origin: left bottom; - transform-origin: left bottom; - -webkit-transform: none; - transform: none; - opacity: 1; - } -} - -@keyframes rotateInDownLeft { - 0% { - -webkit-transform-origin: left bottom; - transform-origin: left bottom; - -webkit-transform: rotate3d(0, 0, 1, -45deg); - transform: rotate3d(0, 0, 1, -45deg); - opacity: 0; - } - - 100% { - -webkit-transform-origin: left bottom; - transform-origin: left bottom; - -webkit-transform: none; - transform: none; - opacity: 1; - } -} - -.rotateInDownLeft { - -webkit-animation-name: rotateInDownLeft; - animation-name: rotateInDownLeft; -} - -@-webkit-keyframes rotateInDownRight { - 0% { - -webkit-transform-origin: right bottom; - transform-origin: right bottom; - -webkit-transform: rotate3d(0, 0, 1, 45deg); - transform: rotate3d(0, 0, 1, 45deg); - opacity: 0; - } - - 100% { - -webkit-transform-origin: right bottom; - transform-origin: right bottom; - -webkit-transform: none; - transform: none; - opacity: 1; - } -} - -@keyframes rotateInDownRight { - 0% { - -webkit-transform-origin: right bottom; - transform-origin: right bottom; - -webkit-transform: rotate3d(0, 0, 1, 45deg); - transform: rotate3d(0, 0, 1, 45deg); - opacity: 0; - } - - 100% { - -webkit-transform-origin: right bottom; - transform-origin: right bottom; - -webkit-transform: none; - transform: none; - opacity: 1; - } -} - -.rotateInDownRight { - -webkit-animation-name: rotateInDownRight; - animation-name: rotateInDownRight; -} - -@-webkit-keyframes rotateInUpLeft { - 0% { - -webkit-transform-origin: left bottom; - transform-origin: left bottom; - -webkit-transform: rotate3d(0, 0, 1, 45deg); - transform: rotate3d(0, 0, 1, 45deg); - opacity: 0; - } - - 100% { - -webkit-transform-origin: left bottom; - transform-origin: left bottom; - -webkit-transform: none; - transform: none; - opacity: 1; - } -} - -@keyframes rotateInUpLeft { - 0% { - -webkit-transform-origin: left bottom; - transform-origin: left bottom; - -webkit-transform: rotate3d(0, 0, 1, 45deg); - transform: rotate3d(0, 0, 1, 45deg); - opacity: 0; - } - - 100% { - -webkit-transform-origin: left bottom; - transform-origin: left bottom; - -webkit-transform: none; - transform: none; - opacity: 1; - } -} - -.rotateInUpLeft { - -webkit-animation-name: rotateInUpLeft; - animation-name: rotateInUpLeft; -} - -@-webkit-keyframes rotateInUpRight { - 0% { - -webkit-transform-origin: right bottom; - transform-origin: right bottom; - -webkit-transform: rotate3d(0, 0, 1, -90deg); - transform: rotate3d(0, 0, 1, -90deg); - opacity: 0; - } - - 100% { - -webkit-transform-origin: right bottom; - transform-origin: right bottom; - -webkit-transform: none; - transform: none; - opacity: 1; - } -} - -@keyframes rotateInUpRight { - 0% { - -webkit-transform-origin: right bottom; - transform-origin: right bottom; - -webkit-transform: rotate3d(0, 0, 1, -90deg); - transform: rotate3d(0, 0, 1, -90deg); - opacity: 0; - } - - 100% { - -webkit-transform-origin: right bottom; - transform-origin: right bottom; - -webkit-transform: none; - transform: none; - opacity: 1; - } -} - -.rotateInUpRight { - -webkit-animation-name: rotateInUpRight; - animation-name: rotateInUpRight; -} - -@-webkit-keyframes rotateOut { - 0% { - -webkit-transform-origin: center; - transform-origin: center; - opacity: 1; - } - - 100% { - -webkit-transform-origin: center; - transform-origin: center; - -webkit-transform: rotate3d(0, 0, 1, 200deg); - transform: rotate3d(0, 0, 1, 200deg); - opacity: 0; - } -} - -@keyframes rotateOut { - 0% { - -webkit-transform-origin: center; - transform-origin: center; - opacity: 1; - } - - 100% { - -webkit-transform-origin: center; - transform-origin: center; - -webkit-transform: rotate3d(0, 0, 1, 200deg); - transform: rotate3d(0, 0, 1, 200deg); - opacity: 0; - } -} - -.rotateOut { - -webkit-animation-name: rotateOut; - animation-name: rotateOut; -} - -@-webkit-keyframes rotateOutDownLeft { - 0% { - -webkit-transform-origin: left bottom; - transform-origin: left bottom; - opacity: 1; - } - - 100% { - -webkit-transform-origin: left bottom; - transform-origin: left bottom; - -webkit-transform: rotate3d(0, 0, 1, 45deg); - transform: rotate3d(0, 0, 1, 45deg); - opacity: 0; - } -} - -@keyframes rotateOutDownLeft { - 0% { - -webkit-transform-origin: left bottom; - transform-origin: left bottom; - opacity: 1; - } - - 100% { - -webkit-transform-origin: left bottom; - transform-origin: left bottom; - -webkit-transform: rotate3d(0, 0, 1, 45deg); - transform: rotate3d(0, 0, 1, 45deg); - opacity: 0; - } -} - -.rotateOutDownLeft { - -webkit-animation-name: rotateOutDownLeft; - animation-name: rotateOutDownLeft; -} - -@-webkit-keyframes rotateOutDownRight { - 0% { - -webkit-transform-origin: right bottom; - transform-origin: right bottom; - opacity: 1; - } - - 100% { - -webkit-transform-origin: right bottom; - transform-origin: right bottom; - -webkit-transform: rotate3d(0, 0, 1, -45deg); - transform: rotate3d(0, 0, 1, -45deg); - opacity: 0; - } -} - -@keyframes rotateOutDownRight { - 0% { - -webkit-transform-origin: right bottom; - transform-origin: right bottom; - opacity: 1; - } - - 100% { - -webkit-transform-origin: right bottom; - transform-origin: right bottom; - -webkit-transform: rotate3d(0, 0, 1, -45deg); - transform: rotate3d(0, 0, 1, -45deg); - opacity: 0; - } -} - -.rotateOutDownRight { - -webkit-animation-name: rotateOutDownRight; - animation-name: rotateOutDownRight; -} - -@-webkit-keyframes rotateOutUpLeft { - 0% { - -webkit-transform-origin: left bottom; - transform-origin: left bottom; - opacity: 1; - } - - 100% { - -webkit-transform-origin: left bottom; - transform-origin: left bottom; - -webkit-transform: rotate3d(0, 0, 1, -45deg); - transform: rotate3d(0, 0, 1, -45deg); - opacity: 0; - } -} - -@keyframes rotateOutUpLeft { - 0% { - -webkit-transform-origin: left bottom; - transform-origin: left bottom; - opacity: 1; - } - - 100% { - -webkit-transform-origin: left bottom; - transform-origin: left bottom; - -webkit-transform: rotate3d(0, 0, 1, -45deg); - transform: rotate3d(0, 0, 1, -45deg); - opacity: 0; - } -} - -.rotateOutUpLeft { - -webkit-animation-name: rotateOutUpLeft; - animation-name: rotateOutUpLeft; -} - -@-webkit-keyframes rotateOutUpRight { - 0% { - -webkit-transform-origin: right bottom; - transform-origin: right bottom; - opacity: 1; - } - - 100% { - -webkit-transform-origin: right bottom; - transform-origin: right bottom; - -webkit-transform: rotate3d(0, 0, 1, 90deg); - transform: rotate3d(0, 0, 1, 90deg); - opacity: 0; - } -} - -@keyframes rotateOutUpRight { - 0% { - -webkit-transform-origin: right bottom; - transform-origin: right bottom; - opacity: 1; - } - - 100% { - -webkit-transform-origin: right bottom; - transform-origin: right bottom; - -webkit-transform: rotate3d(0, 0, 1, 90deg); - transform: rotate3d(0, 0, 1, 90deg); - opacity: 0; - } -} - -.rotateOutUpRight { - -webkit-animation-name: rotateOutUpRight; - animation-name: rotateOutUpRight; -} - -@-webkit-keyframes hinge { - 0% { - -webkit-transform-origin: top left; - transform-origin: top left; - -webkit-animation-timing-function: ease-in-out; - animation-timing-function: ease-in-out; - } - - 20%, - 60% { - -webkit-transform: rotate3d(0, 0, 1, 80deg); - transform: rotate3d(0, 0, 1, 80deg); - -webkit-transform-origin: top left; - transform-origin: top left; - -webkit-animation-timing-function: ease-in-out; - animation-timing-function: ease-in-out; - } - - 40%, - 80% { - -webkit-transform: rotate3d(0, 0, 1, 60deg); - transform: rotate3d(0, 0, 1, 60deg); - -webkit-transform-origin: top left; - transform-origin: top left; - -webkit-animation-timing-function: ease-in-out; - animation-timing-function: ease-in-out; - opacity: 1; - } - - 100% { - -webkit-transform: translate3d(0, 700px, 0); - transform: translate3d(0, 700px, 0); - opacity: 0; - } -} - -@keyframes hinge { - 0% { - -webkit-transform-origin: top left; - transform-origin: top left; - -webkit-animation-timing-function: ease-in-out; - animation-timing-function: ease-in-out; - } - - 20%, - 60% { - -webkit-transform: rotate3d(0, 0, 1, 80deg); - transform: rotate3d(0, 0, 1, 80deg); - -webkit-transform-origin: top left; - transform-origin: top left; - -webkit-animation-timing-function: ease-in-out; - animation-timing-function: ease-in-out; - } - - 40%, - 80% { - -webkit-transform: rotate3d(0, 0, 1, 60deg); - transform: rotate3d(0, 0, 1, 60deg); - -webkit-transform-origin: top left; - transform-origin: top left; - -webkit-animation-timing-function: ease-in-out; - animation-timing-function: ease-in-out; - opacity: 1; - } - - 100% { - -webkit-transform: translate3d(0, 700px, 0); - transform: translate3d(0, 700px, 0); - opacity: 0; - } -} - -.hinge { - -webkit-animation-name: hinge; - animation-name: hinge; -} - -/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */ - -@-webkit-keyframes rollIn { - 0% { - opacity: 0; - -webkit-transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg); - transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg); - } - - 100% { - opacity: 1; - -webkit-transform: none; - transform: none; - } -} - -@keyframes rollIn { - 0% { - opacity: 0; - -webkit-transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg); - transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg); - } - - 100% { - opacity: 1; - -webkit-transform: none; - transform: none; - } -} - -.rollIn { - -webkit-animation-name: rollIn; - animation-name: rollIn; -} - -/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */ - -@-webkit-keyframes rollOut { - 0% { - opacity: 1; - } - - 100% { - opacity: 0; - -webkit-transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg); - transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg); - } -} - -@keyframes rollOut { - 0% { - opacity: 1; - } - - 100% { - opacity: 0; - -webkit-transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg); - transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg); - } -} - -.rollOut { - -webkit-animation-name: rollOut; - animation-name: rollOut; -} - -@-webkit-keyframes zoomIn { - 0% { - opacity: 0; - -webkit-transform: scale3d(0.3, 0.3, 0.3); - transform: scale3d(0.3, 0.3, 0.3); - } - - 50% { - opacity: 1; - } -} - -@keyframes zoomIn { - 0% { - opacity: 0; - -webkit-transform: scale3d(0.3, 0.3, 0.3); - transform: scale3d(0.3, 0.3, 0.3); - } - - 50% { - opacity: 1; - } -} - -.zoomIn { - -webkit-animation-name: zoomIn; - animation-name: zoomIn; -} - -@-webkit-keyframes zoomInDown { - 0% { - opacity: 0; - -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0); - transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0); - -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); - animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); - } - - 60% { - opacity: 1; - -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); - transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); - -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); - animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); - } -} - -@keyframes zoomInDown { - 0% { - opacity: 0; - -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0); - transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0); - -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); - animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); - } - - 60% { - opacity: 1; - -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); - transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); - -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); - animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); - } -} - -.zoomInDown { - -webkit-animation-name: zoomInDown; - animation-name: zoomInDown; -} - -@-webkit-keyframes zoomInLeft { - 0% { - opacity: 0; - -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0); - transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0); - -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); - animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); - } - - 60% { - opacity: 1; - -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0); - transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0); - -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); - animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); - } -} - -@keyframes zoomInLeft { - 0% { - opacity: 0; - -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0); - transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0); - -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); - animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); - } - - 60% { - opacity: 1; - -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0); - transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0); - -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); - animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); - } -} - -.zoomInLeft { - -webkit-animation-name: zoomInLeft; - animation-name: zoomInLeft; -} - -@-webkit-keyframes zoomInRight { - 0% { - opacity: 0; - -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0); - transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0); - -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); - animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); - } - - 60% { - opacity: 1; - -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0); - transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0); - -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); - animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); - } -} - -@keyframes zoomInRight { - 0% { - opacity: 0; - -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0); - transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0); - -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); - animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); - } - - 60% { - opacity: 1; - -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0); - transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0); - -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); - animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); - } -} - -.zoomInRight { - -webkit-animation-name: zoomInRight; - animation-name: zoomInRight; -} - -@-webkit-keyframes zoomInUp { - 0% { - opacity: 0; - -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0); - transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0); - -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); - animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); - } - - 60% { - opacity: 1; - -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0); - transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0); - -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); - animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); - } -} - -@keyframes zoomInUp { - 0% { - opacity: 0; - -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0); - transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0); - -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); - animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); - } - - 60% { - opacity: 1; - -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0); - transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0); - -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); - animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); - } -} - -.zoomInUp { - -webkit-animation-name: zoomInUp; - animation-name: zoomInUp; -} - -@-webkit-keyframes zoomOut { - 0% { - opacity: 1; - } - - 50% { - opacity: 0; - -webkit-transform: scale3d(0.3, 0.3, 0.3); - transform: scale3d(0.3, 0.3, 0.3); - } - - 100% { - opacity: 0; - } -} - -@keyframes zoomOut { - 0% { - opacity: 1; - } - - 50% { - opacity: 0; - -webkit-transform: scale3d(0.3, 0.3, 0.3); - transform: scale3d(0.3, 0.3, 0.3); - } - - 100% { - opacity: 0; - } -} - -.zoomOut { - -webkit-animation-name: zoomOut; - animation-name: zoomOut; -} - -@-webkit-keyframes zoomOutDown { - 40% { - opacity: 1; - -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0); - transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0); - -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); - animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); - } - - 100% { - opacity: 0; - -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0); - transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0); - -webkit-transform-origin: center bottom; - transform-origin: center bottom; - -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); - animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); - } -} - -@keyframes zoomOutDown { - 40% { - opacity: 1; - -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0); - transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0); - -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); - animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); - } - - 100% { - opacity: 0; - -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0); - transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0); - -webkit-transform-origin: center bottom; - transform-origin: center bottom; - -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); - animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); - } -} - -.zoomOutDown { - -webkit-animation-name: zoomOutDown; - animation-name: zoomOutDown; -} - -@-webkit-keyframes zoomOutLeft { - 40% { - opacity: 1; - -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0); - transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0); - } - - 100% { - opacity: 0; - -webkit-transform: scale(0.1) translate3d(-2000px, 0, 0); - transform: scale(0.1) translate3d(-2000px, 0, 0); - -webkit-transform-origin: left center; - transform-origin: left center; - } -} - -@keyframes zoomOutLeft { - 40% { - opacity: 1; - -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0); - transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0); - } - - 100% { - opacity: 0; - -webkit-transform: scale(0.1) translate3d(-2000px, 0, 0); - transform: scale(0.1) translate3d(-2000px, 0, 0); - -webkit-transform-origin: left center; - transform-origin: left center; - } -} - -.zoomOutLeft { - -webkit-animation-name: zoomOutLeft; - animation-name: zoomOutLeft; -} - -@-webkit-keyframes zoomOutRight { - 40% { - opacity: 1; - -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0); - transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0); - } - - 100% { - opacity: 0; - -webkit-transform: scale(0.1) translate3d(2000px, 0, 0); - transform: scale(0.1) translate3d(2000px, 0, 0); - -webkit-transform-origin: right center; - transform-origin: right center; - } -} - -@keyframes zoomOutRight { - 40% { - opacity: 1; - -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0); - transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0); - } - - 100% { - opacity: 0; - -webkit-transform: scale(0.1) translate3d(2000px, 0, 0); - transform: scale(0.1) translate3d(2000px, 0, 0); - -webkit-transform-origin: right center; - transform-origin: right center; - } -} - -.zoomOutRight { - -webkit-animation-name: zoomOutRight; - animation-name: zoomOutRight; -} - -@-webkit-keyframes zoomOutUp { - 40% { - opacity: 1; - -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); - transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); - -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); - animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); - } - - 100% { - opacity: 0; - -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0); - transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0); - -webkit-transform-origin: center bottom; - transform-origin: center bottom; - -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); - animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); - } -} - -@keyframes zoomOutUp { - 40% { - opacity: 1; - -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); - transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); - -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); - animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); - } - - 100% { - opacity: 0; - -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0); - transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0); - -webkit-transform-origin: center bottom; - transform-origin: center bottom; - -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); - animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); - } -} - -.zoomOutUp { - -webkit-animation-name: zoomOutUp; - animation-name: zoomOutUp; -} - -@-webkit-keyframes slideInDown { - 0% { - -webkit-transform: translate3d(0, -100%, 0); - transform: translate3d(0, -100%, 0); - visibility: visible; - } - - 100% { - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - } -} - -@keyframes slideInDown { - 0% { - -webkit-transform: translate3d(0, -100%, 0); - transform: translate3d(0, -100%, 0); - visibility: visible; - } - - 100% { - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - } -} - -.slideInDown { - -webkit-animation-name: slideInDown; - animation-name: slideInDown; -} - -@-webkit-keyframes slideInLeft { - 0% { - -webkit-transform: translate3d(-100%, 0, 0); - transform: translate3d(-100%, 0, 0); - visibility: visible; - } - - 100% { - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - } -} - -@keyframes slideInLeft { - 0% { - -webkit-transform: translate3d(-100%, 0, 0); - transform: translate3d(-100%, 0, 0); - visibility: visible; - } - - 100% { - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - } -} - -.slideInLeft { - -webkit-animation-name: slideInLeft; - animation-name: slideInLeft; -} - -@-webkit-keyframes slideInRight { - 0% { - -webkit-transform: translate3d(100%, 0, 0); - transform: translate3d(100%, 0, 0); - visibility: visible; - } - - 100% { - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - } -} - -@keyframes slideInRight { - 0% { - -webkit-transform: translate3d(100%, 0, 0); - transform: translate3d(100%, 0, 0); - visibility: visible; - } - - 100% { - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - } -} - -.slideInRight { - -webkit-animation-name: slideInRight; - animation-name: slideInRight; -} - -@-webkit-keyframes slideInUp { - 0% { - -webkit-transform: translate3d(0, 100%, 0); - transform: translate3d(0, 100%, 0); - visibility: visible; - } - - 100% { - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - } -} - -@keyframes slideInUp { - 0% { - -webkit-transform: translate3d(0, 100%, 0); - transform: translate3d(0, 100%, 0); - visibility: visible; - } - - 100% { - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - } -} - -.slideInUp { - -webkit-animation-name: slideInUp; - animation-name: slideInUp; -} - -@-webkit-keyframes slideOutDown { - 0% { - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - } - - 100% { - visibility: hidden; - -webkit-transform: translate3d(0, 100%, 0); - transform: translate3d(0, 100%, 0); - } -} - -@keyframes slideOutDown { - 0% { - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - } - - 100% { - visibility: hidden; - -webkit-transform: translate3d(0, 100%, 0); - transform: translate3d(0, 100%, 0); - } -} - -.slideOutDown { - -webkit-animation-name: slideOutDown; - animation-name: slideOutDown; -} - -@-webkit-keyframes slideOutLeft { - 0% { - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - } - - 100% { - visibility: hidden; - -webkit-transform: translate3d(-100%, 0, 0); - transform: translate3d(-100%, 0, 0); - } -} - -@keyframes slideOutLeft { - 0% { - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - } - - 100% { - visibility: hidden; - -webkit-transform: translate3d(-100%, 0, 0); - transform: translate3d(-100%, 0, 0); - } -} - -.slideOutLeft { - -webkit-animation-name: slideOutLeft; - animation-name: slideOutLeft; -} - -@-webkit-keyframes slideOutRight { - 0% { - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - } - - 100% { - visibility: hidden; - -webkit-transform: translate3d(100%, 0, 0); - transform: translate3d(100%, 0, 0); - } -} - -@keyframes slideOutRight { - 0% { - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - } - - 100% { - visibility: hidden; - -webkit-transform: translate3d(100%, 0, 0); - transform: translate3d(100%, 0, 0); - } -} - -.slideOutRight { - -webkit-animation-name: slideOutRight; - animation-name: slideOutRight; -} - -@-webkit-keyframes slideOutUp { - 0% { - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - } - - 100% { - visibility: hidden; - -webkit-transform: translate3d(0, -100%, 0); - transform: translate3d(0, -100%, 0); - } -} - -@keyframes slideOutUp { - 0% { - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - } - - 100% { - visibility: hidden; - -webkit-transform: translate3d(0, -100%, 0); - transform: translate3d(0, -100%, 0); - } -} - -.slideOutUp { - -webkit-animation-name: slideOutUp; - animation-name: slideOutUp; -} - // Loader animation @keyframes pen1 { 0% { transform: translateY(0px); } + 15% { transform: translateY(-10px); } + 30% { transform: translateY(0px); } @@ -3399,9 +107,11 @@ 30% { transform: translateY(0px); } + 45% { transform: translateY(-10px); } + 60% { transform: translateY(0px); } @@ -3411,9 +121,11 @@ 60% { transform: translateY(0px); } + 75% { transform: translateY(-10px); } + 90% { transform: translateY(0px); } @@ -3423,12 +135,15 @@ 0% { fill: #513b56; } + 33% { fill: #348aa7; } + 66% { fill: #5dd39e; } + 100% { fill: #513b56; } @@ -3439,6 +154,7 @@ 0% { transform: translateY(0); } + 100% { transform: translateY(-150px); } diff --git a/frontend/resources/styles/main-default.scss b/frontend/resources/styles/main-default.scss index 0f4f8e6217..e3157d0f28 100644 --- a/frontend/resources/styles/main-default.scss +++ b/frontend/resources/styles/main-default.scss @@ -23,7 +23,6 @@ @import "common/dependencies/z-index"; @import "common/dependencies/highlightjs-theme"; -@import "animate"; @import "common/refactor/color-defs.scss"; @import "common/refactor/themes.scss"; @import "common/refactor/design-tokens.scss"; diff --git a/frontend/yarn.lock b/frontend/yarn.lock index ce42f642a2..d96dca56af 100644 --- a/frontend/yarn.lock +++ b/frontend/yarn.lock @@ -4417,13 +4417,6 @@ __metadata: languageName: node linkType: hard -"animate.css@npm:^4.1.1": - version: 4.1.1 - resolution: "animate.css@npm:4.1.1" - checksum: 10c0/28fcf5a5f502e4c12186846d22aa1cd63b835955160a97116930c78bff8a89135aa5c57f94010252a29456ada7cfc8ed8791cac02521ec6402befaf883937159 - languageName: node - linkType: hard - "ansi-colors@npm:^1.0.1": version: 1.1.0 resolution: "ansi-colors@npm:1.1.0" @@ -7922,7 +7915,6 @@ __metadata: "@storybook/react-vite": "npm:^7.6.17" "@storybook/testing-library": "npm:^0.2.2" "@types/node": "npm:^20.11.20" - animate.css: "npm:^4.1.1" autoprefixer: "npm:^10.4.19" compression: "npm:^1.7.4" concurrently: "npm:^8.2.2" From 540875c41e537385c60199ba047791b7c928d7b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bel=C3=A9n=20Albeza?= Date: Wed, 19 Jun 2024 12:10:07 +0200 Subject: [PATCH 270/476] :sparkles: Remove unused css var colors --- frontend/resources/styles/common/base.scss | 2 +- .../styles/common/dependencies/colors.scss | 29 - .../resources/styles/common/framework.scss | 793 ------------------ .../styles/main/partials/workspace.scss | 2 +- .../app/main/ui/components/numeric_input.cljs | 2 +- .../main/ui/workspace/viewport/widgets.cljs | 2 +- 6 files changed, 4 insertions(+), 826 deletions(-) diff --git a/frontend/resources/styles/common/base.scss b/frontend/resources/styles/common/base.scss index 8ca76c9cad..105875aa18 100644 --- a/frontend/resources/styles/common/base.scss +++ b/frontend/resources/styles/common/base.scss @@ -248,7 +248,7 @@ h4 { } hr { - border-top: solid 1px $color-gray-60; + border-top: solid 1px var(--db-primary); border-right: 0; border-left: 0; border-bottom: 0; diff --git a/frontend/resources/styles/common/dependencies/colors.scss b/frontend/resources/styles/common/dependencies/colors.scss index 34bd2dccbb..f307fd84e8 100644 --- a/frontend/resources/styles/common/dependencies/colors.scss +++ b/frontend/resources/styles/common/dependencies/colors.scss @@ -4,22 +4,6 @@ // // Copyright (c) KALEIDOS INC -// New UI colors -$db-primary: #18181a; -$db-secondary: #000000; -$db-tertiary: #212426; -$db-quaternary: #2e3434; - -$df-primary: #ffffff; -$df-secondary: #8f9da3; - -$da-primary: #7efff5; -$da-primary-muted: rgba(126, 255, 245, 0.3); -$da-secondary: #bb97d8; -$da-tertiary: #00d1b8; - -$d-shadow: rgba(0, 0, 0, 0.6); - // Colors $color-white: #ffffff; $color-black: #000000; @@ -74,16 +58,3 @@ $color-info-darker: mix($color-info, $color-black, $mix-percentage-darker); // # // bg transparent $color-dark-bg: rgba(0, 0, 0, 0.4); - -// Transform scss variables into css variables to use them onto cljs files -:root { - // Secondary colors; - - --color-info: #{$color-info}; - --color-canvas: #e8e9ea; - - // Gray scale; - - --color-gray-20: #{$color-gray-20}; - --color-gray-60: #{$color-gray-60}; -} diff --git a/frontend/resources/styles/common/framework.scss b/frontend/resources/styles/common/framework.scss index a90e22dbdd..dbc7c7a170 100644 --- a/frontend/resources/styles/common/framework.scss +++ b/frontend/resources/styles/common/framework.scss @@ -49,38 +49,6 @@ } } -.btn-secondary { - @extend %btn; - background: $color-white; - border: 1px solid $color-gray-20; - color: $color-black; - &:hover { - background: $color-primary; - border-color: $color-primary; - color: $color-black; - } -} - -.btn-warning { - @extend %btn; - background: $color-warning; - color: $color-white; - &:hover { - background: $color-warning-dark; - color: $color-white; - } -} - -.btn-danger { - @extend %btn; - background: $color-danger; - color: $color-white; - &:hover { - background: $color-danger-dark; - color: $color-white; - } -} - input[type="button"][disabled], .btn-disabled { background-color: $color-gray-10; @@ -88,40 +56,6 @@ input[type="button"][disabled], pointer-events: none; } -// Slider dots - -ul.slider-dots { - align-items: center; - display: flex; - - li { - background-color: transparent; - border-radius: 50%; - border: 2px solid $color-white; - cursor: pointer; - height: 12px; - flex-shrink: 0; - margin: 6px; - width: 12px; - - &.current, - &:hover { - background-color: $color-gray-10; - } - } - - &.dots-purple { - li { - border-color: $color-complete; - - &.current, - &:hover { - background-color: $color-complete; - } - } - } -} - // Doted list .doted-list { @@ -146,78 +80,6 @@ ul.slider-dots { } } -// Tags - -.tags { - display: flex; - flex-wrap: wrap; - - &:last-child { - margin-right: 0; - } - - .tag { - background-color: $color-gray-20; - border-radius: $br3; - color: $color-white; - cursor: pointer; - font-size: $fs14; - font-weight: $fw700; - margin: 0 $size-2 $size-2 0; - padding: 4px 8px; - text-transform: uppercase; - - &:hover { - background-color: $color-gray-40; - } - - &.tag-primary { - background-color: $color-primary; - color: $color-white; - - &:hover { - background-color: $color-primary-dark; - } - } - - &.tag-green { - background-color: $color-success; - color: $color-white; - - &:hover { - background-color: $color-success-dark; - } - } - - &.tag-purple { - background-color: $color-complete; - color: $color-white; - - &:hover { - background-color: $color-complete-dark; - } - } - - &.tag-orange { - background-color: $color-warning; - color: $color-white; - - &:hover { - background-color: $color-warning-dark; - } - } - - &.tag-red { - background-color: $color-danger; - color: $color-white; - - &:hover { - background-color: $color-danger-dark; - } - } - } -} - // Input elements .input-element { display: flex; @@ -340,9 +202,7 @@ ul.slider-dots { input, select { - background-color: $color-white; box-sizing: border-box; - color: $color-gray-60; font-family: "worksans", sans-serif; font-size: $fs14; margin-bottom: $size-4; @@ -362,319 +222,6 @@ input[type="checkbox"] { color: $color-danger; } -// Input text - -.input-text { - border: none; - border-bottom: 1px solid transparent; - background-color: $color-white; - box-shadow: none; - outline: none; - padding: $size-2 $size-5 $size-2 $size-2; - position: relative; - - @include placeholder { - transition: all 0.3s ease; - } - - &:focus { - border-color: $color-gray-40; - box-shadow: none; - - @include placeholder { - opacity: 0; - transform: translateY(-20px); - transition: all 0.3s ease; - } - } - - &.success { - background-color: $color-success-lighter; - border-color: $color-success; - color: $color-success-dark; - } - - &.error { - background-color: $color-danger-lighter; - border-color: $color-danger; - color: $color-danger-dark; - } -} - -// Element-name - -input.element-name { - background-color: $color-white; - border: 1px solid $color-gray-40; - border-radius: $br3; - color: $color-gray-60; - font-size: $fs12; - margin: 0px; - padding: 3px; - width: 100%; -} - -// Input select - -.input-select { - @extend .input-text; - background-image: url("/images/icons/arrow-down-white.svg"); - background-repeat: no-repeat; - background-position: calc(100% - 4px) 48%; - background-size: 10px; - cursor: pointer; - - &.small { - padding: $size-1 $size-5 $size-1 $size-1; - } -} - -// Input radio - -.input-radio, -.input-checkbox { - align-items: center; - color: $color-gray-40; - display: flex; - margin-bottom: 10px; - margin-top: 10px; - padding-left: 0px; - - label { - cursor: pointer; - display: flex; - align-items: center; - margin-right: 15px; - font-size: $fs12; - - &:before { - content: ""; - width: 20px; - height: 20px; - margin-right: 10px; - background-color: $color-gray-10; - border: 1px solid $color-gray-30; - box-shadow: inset 0 0 0 0 $color-primary; - box-sizing: border-box; - flex-shrink: 0; - } - } - - &.column { - align-items: flex-start; - flex-direction: column; - } -} - -.input-radio { - label { - margin-bottom: 6px; - - &:before { - border-radius: $br99; - transition: - box-shadow 0.2s linear 0s, - color 0.2s linear 0s; - } - } - - input[type="radio"]:checked { - & + label { - &:before { - box-shadow: inset 0 0 0 5px $color-gray-20; - } - } - } - - input[type="radio"] { - display: none; - } - - input[type="radio"][disabled] { - & + label { - opacity: 0.65; - } - } -} -input[type="radio"]:checked + label:before { - .input-radio.radio-success & { - box-shadow: inset 0 0 0 5px $color-success; - } - - .input-radio.radio-primary & { - box-shadow: inset 0 0 0 5px $color-primary; - } - - .input-radio.radio-info & { - box-shadow: inset 0 0 0 5px $color-info; - } - - .input-radio.radio-warning & { - box-shadow: inset 0 0 0 5px $color-warning; - } - - .input-radio.radio-danger & { - box-shadow: inset 0 0 0 5px $color-danger; - } - - .input-radio.radio-complete & { - box-shadow: inset 0 0 0 5px $color-complete; - } -} - -// Input checkbox - -.input-checkbox { - input[type="radio"][disabled] { - & + label { - &:after { - background-color: $color-gray-10; - } - } - } - - label { - transition: - border 0.2s linear 0s, - color 0.2s linear 0s; - position: relative; - - &:before { - top: 1.4px; - border-radius: $br3; - transition: - border 0.2s linear 0s, - color 0.2s linear 0s; - } - - &::after { - display: inline-block; - width: 20px; - height: 20px; - position: absolute; - left: 3.2px; - top: 0; - font-size: $fs12; - transition: - border 0.2s linear 0s, - color 0.2s linear 0s; - } - - &:after { - border-radius: $br3; - } - } - - input[type="checkbox"] { - display: none; - } - - &.checkbox-circle { - label { - &:after { - border-radius: $br99; - } - - &:before { - border-radius: $br99; - } - } - } - - input[type="checkbox"]:checked { - & + label { - &:before { - border-width: 10px; - } - - &::after { - content: "✓"; - color: #ffffff; - font-size: $fs16; - } - } - } - - input[type="checkbox"][disabled] { - & + label { - opacity: 0.65; - - &:before { - background-color: #eceff3; - } - } - } - - input[type="checkbox"][indeterminate] { - & + label { - &::after { - content: "?"; - left: 4px; - } - } - } - - &.right { - label { - margin-right: 35px; - padding-left: 0 !important; - - &:before { - right: -35px; - left: auto; - } - } - - input[type="checkbox"]:checked { - & + label { - position: relative; - - &::after { - content: "✓"; - position: absolute; - right: -27px; - left: auto; - } - } - } - } -} - -input[type="checkbox"]:checked + label { - .input-checkbox.check-success &:before { - border-color: $color-success; - } - - .input-checkbox.check-primary &:before { - border-color: $color-primary; - } - - .input-checkbox.check-complete &:before { - border-color: $color-complete; - } - - .input-checkbox.check-warning &:before { - border-color: $color-warning; - } - - .input-checkbox.check-danger &:before { - border-color: $color-danger; - } - - .input-checkbox.check-info &:before { - border-color: $color-info; - } - - .input-checkbox.check-success &::after, - .input-checkbox.check-primary &::after, - .input-checkbox.check-complete &::after, - .input-checkbox.check-warning &::after, - .input-checkbox.check-danger &::after, - .input-checkbox.check-info &::after { - color: $color-white; - } -} - // Input slidebar input[type="range"] { @@ -805,334 +352,6 @@ input[type="range"]:focus::-ms-fill-upper { } } -// Tooltip - -.tooltip { - position: relative; - - &:hover { - &::after { - background-color: $color-white; - border-radius: $br3; - color: $color-gray-60; - content: attr(alt); - font-size: $fs12; - font-weight: $fw700; - padding: $size-1; - position: absolute; - left: 130%; - text-align: center; - top: 0; - white-space: nowrap; - z-index: 20; - @include animation(0.3s, 0.6s, fadeIn); - } - } - - // the default is the `right` - &.tooltip-bottom { - &:hover { - &::after { - left: 0; - top: 130%; - } - } - } - - &.tooltip-expand { - &:hover { - &::after { - min-width: 100%; - } - } - } - - &.tooltip-bottom-left { - &:hover { - &::after { - left: unset; - right: 0; - top: 130%; - } - } - } - - &.tooltip-top { - &:hover { - &::after { - top: -165%; - left: -60%; - } - } - } - - &.tooltip-right { - &:hover { - &::after { - top: 15%; - left: 120%; - } - } - } - - &.tooltip-left { - &:hover { - &::after { - left: unset; - right: 130%; - top: 15%; - } - } - } - - &.tooltip-hover { - &:hover { - &::after { - align-items: center; - background-color: $color-white; - box-sizing: border-box; - border-radius: $br0; - color: $color-gray-60; - display: flex; - height: 100%; - justify-content: center; - left: 0; - top: 0; - white-space: normal; - width: 100%; - } - } - } -} - -// Messages - -.banner { - position: relative; - - &.error { - background-color: $color-danger; - } - - &.success { - background-color: $color-success; - } - - &.warning { - background-color: $color-warning; - } - - &.info { - background-color: $color-info; - } - - &.hide { - @include animation(0, 0.6s, fadeOutUp); - } - - .icon { - display: flex; - - svg { - fill: $color-white; - height: 20px; - width: 20px; - } - } - - .content { - &.bottom-actions { - flex-direction: column; - - .actions { - margin-top: $size-4; - display: flex; - justify-content: flex-start; - } - } - - &.inline-actions { - flex-direction: row; - align-items: center; - justify-content: space-between; - - .actions { - display: flex; - justify-content: flex-start; - - .btn-secondary { - margin-left: $size-4; - } - } - } - - .link { - background: none; - border: none; - color: $color-info; - display: inline; - margin: 0; - text-decoration: underline; - } - } - - .btn-close { - position: absolute; - right: 0px; - top: 0px; - width: 48px; - height: 48px; - - display: flex; - justify-content: center; - align-items: center; - cursor: pointer; - opacity: 0.35; - - svg { - fill: $color-black; - height: 18px; - width: 18px; - transform: rotate(45deg); - } - - &:hover { - opacity: 0.8; - } - } - - &.fixed { - border-radius: $br3; - box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.2); - height: 48px; - max-width: 1000px; - min-width: 500px; - position: fixed; - padding-left: 16px; - top: 16px; - right: 16px; - z-index: 40; - - display: flex; - align-items: center; - - .wrapper { - display: flex; - justify-content: center; - align-items: center; - padding-right: 64px; - - .icon { - margin-right: $size-4; - } - - .content { - color: $color-white; - display: flex; - align-items: center; - justify-content: center; - font-size: $fs14; - } - } - } - - &.floating, - &.inline { - min-height: 40px; - - .wrapper { - display: flex; - align-items: center; - - .icon { - padding: $size-2; - width: 48px; - height: 48px; - justify-content: center; - align-items: center; - } - - .content { - color: $color-black; - display: flex; - font-size: $fs14; - padding: $size-2; - width: 100%; - align-items: center; - - padding: 10px 15px; - min-height: 48px; - } - } - - &.error { - .content { - background-color: lighten($color-danger, 30%); - } - } - - &.success { - .content { - background-color: lighten($color-success, 30%); - } - } - - &.warning { - .content { - background-color: lighten($color-warning, 30%); - } - } - - &.info { - .content { - background-color: lighten($color-info, 30%); - } - } - } - - &.floating { - box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.18); - position: absolute; - top: 70px; - left: 0; - right: 0; - width: 40rem; - margin-left: auto; - margin-right: auto; - z-index: 20; - - &.error { - border: 1px solid $color-danger; - } - - &.success { - border: 1px solid $color-success; - } - - &.warning { - border: 1px solid $color-warning; - } - - &.info { - border: 1px solid $color-info; - } - } - - &.inline { - width: 100%; - } -} - -.close-bezier { - fill: $color-danger; - stroke: $color-danger-dark; - stroke-width: 2px; - cursor: pointer; - &:hover { - fill: $color-white; - } -} - .message-inline { background-color: $color-info; color: $color-info-darker; @@ -1156,15 +375,3 @@ input[type="range"]:focus::-ms-fill-upper { -khtml-user-drag: element; -webkit-user-drag: element; } - -.dnd-over > .element-list-body { - border: 1px solid white !important; -} - -.dnd-over-top { - border-top: 1px solid white !important; -} - -.dnd-over-bot { - border-bottom: 1px solid white !important; -} diff --git a/frontend/resources/styles/main/partials/workspace.scss b/frontend/resources/styles/main/partials/workspace.scss index 088add9281..5184e1b9bb 100644 --- a/frontend/resources/styles/main/partials/workspace.scss +++ b/frontend/resources/styles/main/partials/workspace.scss @@ -279,7 +279,7 @@ $height-palette-max: 80px; .viewport-actions-container { padding-left: 1rem; gap: 12px; - color: var(--color-gray-60); + color: var(--db-primary); align-items: center; font-size: 12px; diff --git a/frontend/src/app/main/ui/components/numeric_input.cljs b/frontend/src/app/main/ui/components/numeric_input.cljs index 134a01440b..4a1823868a 100644 --- a/frontend/src/app/main/ui/components/numeric_input.cljs +++ b/frontend/src/app/main/ui/components/numeric_input.cljs @@ -36,7 +36,7 @@ title (unchecked-get props "title") default (unchecked-get props "default") nillable? (unchecked-get props "nillable") - class (d/nilv (unchecked-get props "className") "input-text") + class (d/nilv (unchecked-get props "className") "") min-value (d/parse-double min-value) max-value (d/parse-double max-value) diff --git a/frontend/src/app/main/ui/workspace/viewport/widgets.cljs b/frontend/src/app/main/ui/workspace/viewport/widgets.cljs index a9da0fd7c0..615ea9db0e 100644 --- a/frontend/src/app/main/ui/workspace/viewport/widgets.cljs +++ b/frontend/src/app/main/ui/workspace/viewport/widgets.cljs @@ -40,7 +40,7 @@ :pattern-units "userSpaceOnUse"} [:path {:d "M 1 0 L 0 0 0 1" :style {:fill "none" - :stroke (if (dbg/enabled? :pixel-grid) "red" "var(--color-info)") + :stroke (if (dbg/enabled? :pixel-grid) "red" "var(--status-color-info-500)") :stroke-opacity (if (dbg/enabled? :pixel-grid) 1 "0.2") :stroke-width (str (/ 1 zoom))}}]]] [:rect {:x (:x vbox) From 2d53b96a15ee0ea979fb979c21a7d32927f3d617 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bel=C3=A9n=20Albeza?= Date: Wed, 19 Jun 2024 14:59:15 +0200 Subject: [PATCH 271/476] :sparkles: Initial clean up of framework scss --- .../resources/styles/common/framework.scss | 181 ------------------ 1 file changed, 181 deletions(-) diff --git a/frontend/resources/styles/common/framework.scss b/frontend/resources/styles/common/framework.scss index dbc7c7a170..d21e68c080 100644 --- a/frontend/resources/styles/common/framework.scss +++ b/frontend/resources/styles/common/framework.scss @@ -56,150 +56,6 @@ input[type="button"][disabled], pointer-events: none; } -// Doted list - -.doted-list { - li { - align-items: center; - display: flex; - padding: $size-2 0; - - &::before { - background-color: $color-complete; - border-radius: 50%; - content: ""; - flex-shrink: 0; - height: 10px; - margin-right: 6px; - width: 10px; - } - - &.not-included { - text-decoration: line-through; - } - } -} - -// Input elements -.input-element { - display: flex; - flex-shrink: 0; - position: relative; - width: 75px; - - &::after, - .after { - color: $color-gray-20; - font-size: $fs12; - height: 20px; - position: absolute; - right: $size-2; - text-align: right; - top: 26%; - width: 18px; - - pointer-events: none; - max-width: 4rem; - overflow: hidden; - text-overflow: ellipsis; - } - - .after { - width: auto; - right: 6px; - } - - &.mini { - width: 43px; - } - - &.auto { - width: auto; - } - - // Input amounts - - &.pixels { - & input { - padding-right: 20px; - } - - &::after { - content: "px"; - } - } - - &.percentail { - &::after { - content: "%"; - } - } - - &.milliseconds { - &::after { - content: "ms"; - } - } - - &.degrees { - &::after { - content: "dg"; - } - } - - &.height { - &::after { - content: "H"; - } - } - - &.width { - &::after { - content: "W"; - } - } - - &.Xaxis { - &::after { - content: "X"; - } - } - - &.Yaxis { - &::after { - content: "Y"; - } - } - - &.maxW { - &::after { - content: attr(alt); - } - } - - &.minW { - &::after { - content: attr(alt); - } - } - - &.maxH { - &::after { - content: attr(alt); - } - } - - &.minH { - &::after { - content: attr(alt); - } - } - - &.large { - min-width: 7rem; - } -} - input, select { box-sizing: border-box; @@ -329,43 +185,6 @@ input[type="range"]:focus::-ms-fill-upper { background: $color-gray-60; } -// Scroll bar (chrome) - -::-webkit-scrollbar { - background-color: transparent; - cursor: pointer; - height: 8px; - width: 8px; -} - -::-webkit-scrollbar-track, -::-webkit-scrollbar-corner { - background-color: transparent; -} - -::-webkit-scrollbar-thumb { - background-color: $color-gray-20; - - &:hover { - background-color: darken($color-gray-20, 14%); - outline: 2px solid $color-primary; - } -} - -.message-inline { - background-color: $color-info; - color: $color-info-darker; - margin-bottom: 1.2rem; - padding: 0.8rem; - text-align: center; - p { - margin: 0; - } - .code { - font-family: monospace; - } -} - [draggable] { -moz-user-select: none; -khtml-user-select: none; From 0c3f47b0c36ee520d94ea180cd761fea81062c74 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bel=C3=A9n=20Albeza?= Date: Wed, 19 Jun 2024 15:35:50 +0200 Subject: [PATCH 272/476] :sparkles: Clean up unused selectors / mixins / sass vars --- frontend/resources/styles/common/base.scss | 28 +--- .../styles/common/dependencies/colors.scss | 60 --------- .../styles/common/dependencies/helpers.scss | 69 ---------- .../styles/common/dependencies/mixin.scss | 123 ------------------ .../resources/styles/common/framework.scss | 59 ++------- .../styles/common/refactor/color-defs.scss | 6 + frontend/resources/styles/main-default.scss | 5 +- .../styles/main/layouts/main-layout.scss | 19 --- .../styles/main/layouts/not-found.scss | 80 ------------ .../styles/main/partials/loader.scss | 2 +- .../resources/styles/main/partials/texts.scss | 2 +- .../styles/main/partials/workspace.scss | 81 ++---------- .../app/main/ui/components/button_link.cljs | 6 +- .../app/main/ui/components/button_link.scss | 28 ++++ frontend/src/app/main/ui/dashboard/grid.scss | 3 + 15 files changed, 70 insertions(+), 501 deletions(-) delete mode 100644 frontend/resources/styles/common/dependencies/colors.scss delete mode 100644 frontend/resources/styles/common/dependencies/helpers.scss delete mode 100644 frontend/resources/styles/main/layouts/not-found.scss create mode 100644 frontend/src/app/main/ui/components/button_link.scss diff --git a/frontend/resources/styles/common/base.scss b/frontend/resources/styles/common/base.scss index 105875aa18..a922d6cc72 100644 --- a/frontend/resources/styles/common/base.scss +++ b/frontend/resources/styles/common/base.scss @@ -9,8 +9,8 @@ } body { - background-color: lighten($color-gray-10, 5%); - color: $color-gray-20; + background-color: var(--db-primary); + color: var(--df-primary); display: flex; flex-direction: column; font-family: var(--font-family); @@ -79,19 +79,10 @@ p { font-size: $fs12; margin-bottom: 1rem; line-height: $lh-133; - - @include bp(baby-bear) { - font-size: $fs16; - line-height: $lh-143; - } } li { line-height: $lh-133; - - @include bp(baby-bear) { - line-height: $lh-143; - } } ul { @@ -111,31 +102,16 @@ h1 { font-weight: $fw500; line-height: $lh-115; - @include bp(baby-bear) { - font-size: $fs38; - line-height: $lh-125; - } - &.supertitle { font-size: $fs44; font-weight: $fw300; line-height: $lh-115; - - @include bp(baby-bear) { - font-size: $fs44; - line-height: $lh-125; - } } } h2 { font-size: $fs24; font-weight: $fw300; line-height: $lh-115; - - @include bp(baby-bear) { - font-size: $fs32; - line-height: $lh-125; - } } h3 { diff --git a/frontend/resources/styles/common/dependencies/colors.scss b/frontend/resources/styles/common/dependencies/colors.scss deleted file mode 100644 index f307fd84e8..0000000000 --- a/frontend/resources/styles/common/dependencies/colors.scss +++ /dev/null @@ -1,60 +0,0 @@ -// This Source Code Form is subject to the terms of the Mozilla Public -// License, v. 2.0. If a copy of the MPL was not distributed with this -// file, You can obtain one at http://mozilla.org/MPL/2.0/. -// -// Copyright (c) KALEIDOS INC - -// Colors -$color-white: #ffffff; -$color-black: #000000; -$color-canvas: #e8e9ea; -$color-dashboard: #f6f6f6; - -// Main color -$color-primary: #31efb8; - -// Secondary colors -$color-success: #49d793; -$color-complete: #a599c6; -$color-warning: #fc8802; -$color-danger: #e65244; -$color-info: #59b9e2; - -// Gray scale -$color-gray-10: #e3e3e3; -$color-gray-20: #b1b2b5; -$color-gray-30: #7b7d85; -$color-gray-40: #64666a; -$color-gray-50: #303236; -$color-gray-60: #1f1f1f; - -// Mixing Color variable for creating both light and dark colors -$mix-percentage-dark: 81%; -$mix-percentage-darker: 60%; -$mix-percentage-lighter: 20%; - -// Lighter colors - -$color-success-lighter: mix($color-success, $color-white, $mix-percentage-lighter); //#def3de - -$color-primary-lighter: mix($color-primary, $color-white, $mix-percentage-lighter); //#d6fcf1 - -$color-danger-lighter: mix($color-danger, $color-white, $mix-percentage-lighter); //#fadcda - -// Darker colors -$color-success-dark: mix($color-success, $color-black, $mix-percentage-dark); //#479e4b; - -$color-complete-dark: mix($color-complete, $color-black, $mix-percentage-dark); //#867ca0 -$color-complete-darker: mix($color-complete, $color-black, $mix-percentage-darker); //#635c77 - -$color-primary-dark: mix($color-primary, $color-black, $mix-percentage-dark); //#28c295; -$color-primary-darker: mix($color-primary, $color-black, $mix-percentage-darker); // #1d8f6e - -$color-warning-dark: mix($color-warning, $color-black, $mix-percentage-dark); // #cc6e02; - -$color-danger-dark: mix($color-danger, $color-black, $mix-percentage-dark); //#ba4237 - -$color-info-darker: mix($color-info, $color-black, $mix-percentage-darker); // #356f88; - -// bg transparent -$color-dark-bg: rgba(0, 0, 0, 0.4); diff --git a/frontend/resources/styles/common/dependencies/helpers.scss b/frontend/resources/styles/common/dependencies/helpers.scss deleted file mode 100644 index 005357e6af..0000000000 --- a/frontend/resources/styles/common/dependencies/helpers.scss +++ /dev/null @@ -1,69 +0,0 @@ -// This Source Code Form is subject to the terms of the Mozilla Public -// License, v. 2.0. If a copy of the MPL was not distributed with this -// file, You can obtain one at http://mozilla.org/MPL/2.0/. -// -// Copyright (c) KALEIDOS INC - -// Padding & Margin sizes -$size-1: 0.25rem; -$size-2: 0.5rem; -$size-3: 0.75rem; -$size-4: 1rem; -$size-5: 1.5rem; -$size-6: 2rem; - -// Border radius -$br0: 0px; -$br2: 2px; -$br3: 3px; -$br4: 4px; -$br5: 5px; -$br6: 6px; -$br7: 7px; -$br8: 8px; -$br10: 10px; -$br12: 12px; -$br25: 25px; -$br50: 50px; -$br99: 99px; -$br-circle: 50%; // Need to be investigated, before we can use variable - -.row-flex { - align-items: center; - display: flex; - margin-bottom: $size-1; - - &.column { - flex-direction: column; - } - - &.center { - justify-content: center; - } -} - -.row-grid-2 { - display: grid; - grid-template-columns: repeat(2, 1fr); -} - -.flex-grow { - flex-grow: 1; -} - -.column-half { - margin-right: $size-2; -} - -// Display -.hidden { - display: none; -} - -.hide { - opacity: 0; -} - -.display { - opacity: 1 !important; -} diff --git a/frontend/resources/styles/common/dependencies/mixin.scss b/frontend/resources/styles/common/dependencies/mixin.scss index e8ec11d408..73f5cc2488 100644 --- a/frontend/resources/styles/common/dependencies/mixin.scss +++ b/frontend/resources/styles/common/dependencies/mixin.scss @@ -4,114 +4,6 @@ // // Copyright (c) KALEIDOS INC -/// This mixin allows you to add styles to a specific Media query inside the style selector specifying which Breaking Point you want to choose. -/// @group Mixins -/// @parameter $point - This parameter decide which one of Breaking Point you want to use: "bp-desktop" (Desktop), "bp-tablet" (Tablet) and "bp-mobile" (Mobile). -$bp-min-720: "(min-width: 720px)"; -$bp-min-1020: "(min-width: 1020px)"; -$bp-min-1366: "(min-width: 1366px)"; -$bp-max-1366: "(max-width: 1366px)"; -$bp-min-2556: "(min-width: 2556px)"; - -@mixin bp($point) { - @if $point == mobile { - @media #{$bp-min-720} { - @content; - } - } @else if $point == tablet { - @media #{$bp-min-1020} { - @content; - } - } @else if $point == desktop { - @media #{$bp-min-1366} { - @content; - } - } -} - -// Advanced positioning -// ---------------- -@mixin position( - $type, - $top: $position-default, - $right: $position-default, - $bottom: $position-default, - $left: $position-default -) { - position: $type; - $allowed_types: absolute relative fixed; - @if not index($allowed_types, $type) { - @warn "Unknown position: #{$type}."; - } - @each $data in top $top, right $right, bottom $bottom, left $left { - #{nth($data, 1)}: nth($data, 2); - } -} -@mixin absolute( - $top: $position-default, - $right: $position-default, - $bottom: $position-default, - $left: $position-default -) { - @include position(absolute, $top, $right, $bottom, $left); -} -@mixin relative( - $top: $position-default, - $right: $position-default, - $bottom: $position-default, - $left: $position-default -) { - @include position(relative, $top, $right, $bottom, $left); -} -@mixin fixed( - $top: $position-default, - $right: $position-default, - $bottom: $position-default, - $left: $position-default -) { - @include position(fixed, $top, $right, $bottom, $left); -} - -/// Center an element vertically and horizontally with an absolute position. -/// @group Mixins - -@mixin centerer { - @include absolute(50%, null, null, 50%); - transform: translate(-50%, -50%); -} - -/// This mixing allow you to add placeholder colors in all available browsers -/// @group Mixins - -@mixin placeholder { - &::-webkit-input-placeholder { - @content; - } - - &:-moz-placeholder { - /* Firefox 18- */ - @content; - } - - &::-moz-placeholder { - /* Firefox 19+ */ - @content; - } - - &:-ms-input-placeholder { - @content; - } -} - -/// Allows you to visually -/// @group Mixins - -@mixin hide-text { - font: 0/0 a; - color: transparent; - text-shadow: none; -} - @mixin font-face($style-name, $file, $weight: unquote("normal"), $style: unquote("normal")) { $filepath: "/fonts/" + $file; @font-face { @@ -146,18 +38,3 @@ $bp-min-2556: "(min-width: 2556px)"; white-space: nowrap; overflow: hidden; } - -@mixin paragraph-ellipsis { - text-overflow: ellipsis; - overflow: hidden; - position: relative; - - &::after { - background-color: $color-gray-50; - bottom: -3px; - content: "..."; - padding-left: 10px; - position: absolute; - right: 2px; - } -} diff --git a/frontend/resources/styles/common/framework.scss b/frontend/resources/styles/common/framework.scss index d21e68c080..a4a02c0fba 100644 --- a/frontend/resources/styles/common/framework.scss +++ b/frontend/resources/styles/common/framework.scss @@ -4,54 +4,17 @@ // // Copyright (c) KALEIDOS INC -// Buttons +// TODO: These are legacy Sass vars that are now only used in this file. +// We should switch them for the new DS tokens. +$color-gray-40: #64666a; +$color-gray-60: #1f1f1f; +$size-4: 1rem; +$br7: 7px; +$br25: 25px; +$br50: 50px; -%btn { - appearance: none; - align-items: center; - border: none; - border-radius: $br3; - cursor: pointer; - display: flex; - font-family: "worksans", sans-serif; - font-size: $fs12; - height: 30px; - justify-content: center; - min-width: 25px; - padding: 0 1rem; - transition: all 0.4s; - text-decoration: none !important; - svg { - height: 16px; - width: 16px; - } - &.btn-large { - font-size: $fs14; - height: 40px; - svg { - height: 20px; - width: 20px; - } - } - &.btn-small { - height: 25px; - } -} - -.btn-primary { - @extend %btn; - background: $color-primary; - color: $color-black; - &:hover, - &:focus { - background: $color-black; - color: $color-primary; - } -} - -input[type="button"][disabled], -.btn-disabled { - background-color: $color-gray-10; +input[type="button"][disabled] { + background-color: var(--color-canvas); // TODO: see if we can remove this whole selector color: $color-gray-40; pointer-events: none; } @@ -75,7 +38,7 @@ input[type="checkbox"] { } .form-errors { - color: $color-danger; + color: var(--status-color-warning-500); } // Input slidebar diff --git a/frontend/resources/styles/common/refactor/color-defs.scss b/frontend/resources/styles/common/refactor/color-defs.scss index da1f0d784e..bb2294ca56 100644 --- a/frontend/resources/styles/common/refactor/color-defs.scss +++ b/frontend/resources/styles/common/refactor/color-defs.scss @@ -6,6 +6,11 @@ @use "sass:color"; +// TODO: legacy Sass colors, we should eventually try to remove them in +// favor of DS colors. +$color-gray-20: #b1b2b5; +$color-gray-50: #303236; + :root { // DARK // Dark background @@ -13,6 +18,7 @@ --db-primary-60: #{color.change(#18181a, $alpha: 0.6)}; --db-secondary: #000000; --db-secondary-30: #{color.change(#000000, $alpha: 0.3)}; + --db-secondary-40: #{color.change(#000000, $alpha: 0.4)}; --db-secondary-80: #{color.change(#000000, $alpha: 0.8)}; --db-tertiary: #212426; --db-quaternary: #2e3434; diff --git a/frontend/resources/styles/main-default.scss b/frontend/resources/styles/main-default.scss index e3157d0f28..b28260f4dd 100644 --- a/frontend/resources/styles/main-default.scss +++ b/frontend/resources/styles/main-default.scss @@ -14,8 +14,7 @@ // MAIN STYLES //################################################# -@import "common/dependencies/colors"; -@import "common/dependencies/helpers"; +@import "common/refactor/color-defs.scss"; @import "common/dependencies/mixin"; @import "common/dependencies/fonts"; @import "common/dependencies/reset"; @@ -23,7 +22,6 @@ @import "common/dependencies/z-index"; @import "common/dependencies/highlightjs-theme"; -@import "common/refactor/color-defs.scss"; @import "common/refactor/themes.scss"; @import "common/refactor/design-tokens.scss"; @@ -33,7 +31,6 @@ @import "common/base"; @import "main/layouts/main-layout"; -@import "main/layouts/not-found"; //################################################# // Commons diff --git a/frontend/resources/styles/main/layouts/main-layout.scss b/frontend/resources/styles/main/layouts/main-layout.scss index fbe768447a..d57c1f74dd 100644 --- a/frontend/resources/styles/main/layouts/main-layout.scss +++ b/frontend/resources/styles/main/layouts/main-layout.scss @@ -10,25 +10,6 @@ position: relative; } -.dashboard-layout { - background-color: $color-white; - display: grid; - grid-template-rows: 50px 1fr; - grid-template-columns: 40px 256px 1fr; - height: 100vh; - - .dashboard-sidebar { - grid-row: 1 / span 2; - grid-column: 1 / span 2; - padding: 1rem; - } - - .dashboard-content { - grid-row: 1 / span 2; - padding: 1rem 1rem 0 0; - } -} - .dashboard-content { display: flex; flex-direction: column; diff --git a/frontend/resources/styles/main/layouts/not-found.scss b/frontend/resources/styles/main/layouts/not-found.scss deleted file mode 100644 index d9cda82425..0000000000 --- a/frontend/resources/styles/main/layouts/not-found.scss +++ /dev/null @@ -1,80 +0,0 @@ -.not-found-layout { - display: grid; - - grid-template-rows: 120px auto; - grid-template-columns: 1fr; -} - -.not-found-header { - grid-column: 1 / span 1; - grid-row: 1 / span 1; - - display: flex; - align-items: center; - padding: 32px; - - svg { - height: 55px; - width: 170px; - } -} - -.not-found-content { - grid-column: 1 / span 1; - grid-row: 1 / span 2; - height: 100vh; - - display: flex; - justify-content: center; - align-items: center; - - .container { - max-width: 600px; - } - - .image { - align-items: center; - display: flex; - justify-content: center; - margin-bottom: 2rem; - - svg { - height: 220px; - width: 220px; - } - } - - .main-message { - color: $color-black; - font-size: $fs80; - line-height: $lh-188; // Original value was 150px; 150px/80px = 187.5 % => lh-188 (rounded) - text-align: center; - } - - .desc-message { - color: $color-black; - font-size: $fs26; - font-weight: $fw300; - text-align: center; - } - - .sign-info { - margin-top: 20px; - color: $color-black; - font-size: $fs16; - font-weight: $fw200; - text-align: center; - - display: flex; - flex-direction: column; - align-items: center; - - b { - font-weight: $fw400; - } - - .btn-primary { - margin-top: 15px; - } - } -} diff --git a/frontend/resources/styles/main/partials/loader.scss b/frontend/resources/styles/main/partials/loader.scss index ce2542d2db..14021d07e4 100644 --- a/frontend/resources/styles/main/partials/loader.scss +++ b/frontend/resources/styles/main/partials/loader.scss @@ -33,7 +33,7 @@ svg#loader-icon { // btn pencil loader svg#loader-pencil { - fill: $color-primary-darker; + fill: var(--color-accent-tertiary); width: 60px; } diff --git a/frontend/resources/styles/main/partials/texts.scss b/frontend/resources/styles/main/partials/texts.scss index ad53796b62..aab38a4966 100644 --- a/frontend/resources/styles/main/partials/texts.scss +++ b/frontend/resources/styles/main/partials/texts.scss @@ -1,6 +1,6 @@ .text-editor, .rich-text { - color: $color-black; + color: var(--app-black); height: 100%; font-family: sourcesanspro; diff --git a/frontend/resources/styles/main/partials/workspace.scss b/frontend/resources/styles/main/partials/workspace.scss index 5184e1b9bb..999856a250 100644 --- a/frontend/resources/styles/main/partials/workspace.scss +++ b/frontend/resources/styles/main/partials/workspace.scss @@ -4,6 +4,10 @@ // // Copyright (c) KALEIDOS INC +// TODO: legacy sass vars. To be removed in favor of DS tokens +$br3: 3px; +$br4: 4px; + $width-left-toolbar: 48px; $width-settings-bar: 256px; @@ -18,7 +22,7 @@ $height-palette-max: 80px; width: 100vw; height: 100%; user-select: none; - background-color: $color-canvas; + background-color: var(--color-canvas); display: grid; grid-template-areas: "header header header header" @@ -69,7 +73,7 @@ $height-palette-max: 80px; } .workspace-content { - background-color: $color-canvas; + background-color: var(--color-canvas); display: flex; padding: 0; margin: 0; @@ -96,7 +100,7 @@ $height-palette-max: 80px; } .coordinates { - background-color: $color-dark-bg; + background-color: var(--db-primary); border-radius: $br3; bottom: 0px; padding-left: 5px; @@ -114,16 +118,16 @@ $height-palette-max: 80px; } span { - color: $color-white; + color: var(--df-primary); font-size: $fs12; padding-right: 5px; } } .cursor-tooltip { - background-color: $color-dark-bg; + background-color: var(--db-secondary-40); border-radius: $br3; - color: $color-white; + color: var(--df-primary); font-size: $fs12; padding: 3px 8px; transition: none; @@ -208,7 +212,7 @@ $height-palette-max: 80px; z-index: 13; rect { - fill: $color-canvas; + fill: var(--color-canvas); } path { stroke: $color-gray-20; @@ -223,7 +227,7 @@ $height-palette-max: 80px; z-index: 13; rect { - fill: $color-canvas; + fill: var(--color-canvas); } path { stroke: $color-gray-20; @@ -264,12 +268,11 @@ $height-palette-max: 80px; z-index: 12; pointer-events: none; - .path-actions, .viewport-actions-container { pointer-events: initial; display: flex; flex-direction: row; - background: white; + background: var(--app-white); border-radius: $br3; padding: 0.5rem; border: 1px solid $color-gray-20; @@ -302,62 +305,4 @@ $height-palette-max: 80px; flex-direction: row; border-right: 1px solid $color-gray-20; } - - .viewport-actions-entry { - width: 28px; - height: 28px; - margin: 0 0.25rem; - cursor: pointer; - display: flex; - justify-content: center; - align-items: center; - border-radius: $br3; - - svg { - pointer-events: none; - width: 20px; - height: 20px; - } - - &:hover svg { - fill: $color-primary; - } - - &.is-disabled { - cursor: initial; - svg { - fill: $color-gray-20; - } - } - - &.is-toggled { - background: $color-black; - - svg { - fill: $color-primary; - } - } - } - - .viewport-actions-entry-wide { - width: 27px; - height: 20px; - - svg { - width: 27px; - height: 20px; - } - } - - .path-actions > :first-child .viewport-actions-entry { - margin-left: 0; - } - - .path-actions > :last-child { - border: none; - } - - .path-actions > :last-child .viewport-actions-entry { - margin-right: 0; - } } diff --git a/frontend/src/app/main/ui/components/button_link.cljs b/frontend/src/app/main/ui/components/button_link.cljs index fadfbd3478..bac6e8e874 100644 --- a/frontend/src/app/main/ui/components/button_link.cljs +++ b/frontend/src/app/main/ui/components/button_link.cljs @@ -5,7 +5,9 @@ ;; Copyright (c) KALEIDOS INC (ns app.main.ui.components.button-link + (:require-macros [app.main.style :as stl]) (:require + [app.common.data.macros :as dm] [app.util.keyboard :as kbd] [rumext.v2 :as mf])) @@ -18,8 +20,8 @@ (when (kbd/enter? event) (when (fn? on-click) (on-click event)))))] - [:a.btn-primary.btn-large.button-link - {:class class + [:a + {:class (dm/str class " " (stl/css :button)) :tab-index "0" :on-click on-click :on-key-down on-key-down} diff --git a/frontend/src/app/main/ui/components/button_link.scss b/frontend/src/app/main/ui/components/button_link.scss new file mode 100644 index 0000000000..3096853000 --- /dev/null +++ b/frontend/src/app/main/ui/components/button_link.scss @@ -0,0 +1,28 @@ +// This Source Code Form is subject to the terms of the Mozilla Public +// License, v. 2.0. If a copy of the MPL was not distributed with this +// file, You can obtain one at http://mozilla.org/MPL/2.0/. +// +// Copyright (c) KALEIDOS INC + +@import "refactor/common-refactor.scss"; + +.button { + appearance: none; + align-items: center; + border: none; + cursor: pointer; + display: flex; + font-family: "worksans", sans-serif; + justify-content: center; + min-width: 25px; + padding: 0 1rem; + transition: all 0.4s; + text-decoration: none !important; + + height: 40px; + + svg { + height: 20px; + width: 20px; + } +} diff --git a/frontend/src/app/main/ui/dashboard/grid.scss b/frontend/src/app/main/ui/dashboard/grid.scss index 72f95e4ec2..3853c71f70 100644 --- a/frontend/src/app/main/ui/dashboard/grid.scss +++ b/frontend/src/app/main/ui/dashboard/grid.scss @@ -6,6 +6,9 @@ @import "refactor/common-refactor.scss"; +// TODO: Legacy sass variables. We should remove them in favor of DS tokens. +$bp-max-1366: "(max-width: 1366px)"; + $thumbnail-default-width: $s-252; // Default width $thumbnail-default-height: $s-168; // Default width From 49fd00021740bf6d1111baeab049e62e57f7692b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bel=C3=A9n=20Albeza?= Date: Thu, 20 Jun 2024 11:56:41 +0200 Subject: [PATCH 273/476] :sparkles: Clean up fonts scss files --- frontend/resources/styles/common/base.scss | 12 ++++ .../styles/common/dependencies/fonts.scss | 71 ++++--------------- .../dependencies/highlightjs-theme.scss | 3 + .../styles/common/dependencies/mixin.scss | 40 ----------- .../styles/common/dependencies/reset.scss | 9 ++- .../resources/styles/common/framework.scss | 2 + .../styles/common/refactor/fonts.scss | 1 - frontend/resources/styles/main-default.scss | 1 - .../styles/main/partials/workspace.scss | 13 ++-- frontend/src/app/main/ui/workspace.scss | 8 --- 10 files changed, 47 insertions(+), 113 deletions(-) delete mode 100644 frontend/resources/styles/common/dependencies/mixin.scss diff --git a/frontend/resources/styles/common/base.scss b/frontend/resources/styles/common/base.scss index a922d6cc72..e5be26f6c6 100644 --- a/frontend/resources/styles/common/base.scss +++ b/frontend/resources/styles/common/base.scss @@ -4,6 +4,18 @@ // // Copyright (c) KALEIDOS INC +// TODO: Legacy sass vars. We should use DS tokens. +$fs12: 0.75rem; +$fs18: 1.125rem; +$fs24: 1.5rem; +$fs34: 2.125rem; +$fs44: 2.75rem; +$fw300: 300; +$fw500: 500; +$fw700: 700; +$lh-115: 1.15; +$lh-133: 1.33; + :root { --font-family: "worksans", sans-serif; } diff --git a/frontend/resources/styles/common/dependencies/fonts.scss b/frontend/resources/styles/common/dependencies/fonts.scss index 74cd114995..3837591fab 100644 --- a/frontend/resources/styles/common/dependencies/fonts.scss +++ b/frontend/resources/styles/common/dependencies/fonts.scss @@ -4,64 +4,18 @@ // // Copyright (c) KALEIDOS INC -// Font sizes -$fs8: 0.5rem; -$fs9: 0.5625rem; -$fs10: 0.625rem; -$fs11: 0.6875rem; -$fs12: 0.75rem; -$fs13: 0.8125rem; -$fs14: 0.875rem; -$fs15: 0.9375rem; -$fs16: 1rem; -$fs17: 1.0625rem; -$fs18: 1.125rem; -$fs19: 1.1875rem; -$fs20: 1.25rem; -$fs21: 1.315rem; -$fs22: 1.375rem; -$fs23: 1.4375rem; -$fs24: 1.5rem; -$fs26: 1.625rem; -$fs30: 1.875rem; -$fs32: 2rem; -$fs34: 2.125rem; -$fs36: 2.25rem; -$fs38: 2.375rem; -$fs40: 2.5rem; -$fs42: 2.675rem; -$fs44: 2.75rem; -$fs80: 5rem; +@mixin font-face($style-name, $file, $weight: unquote("normal"), $style: unquote("normal")) { + $filepath: "/fonts/" + $file; -// Font weight -// Taken from https://fonts.google.com/specimen/Work+Sans -$fw100: 100; // Thin -$fw200: 200; // Extra Light -$fw300: 300; // Light -$fw400: 400; // Regular (CSS value: 'normal') -$fw500: 500; // Medium -$fw600: 600; // Semi Bold -$fw700: 700; // Bold (CSS value: 'bold') -$fw800: 800; // Extra Bold -$fw900: 900; // Black - -// Line height -// Value are predefined as unitless (ratio to font size in %), because that is the best approach for browsers according to https://developer.mozilla.org/en-US/docs/Web/CSS/line-height#values -$lh-normal: normal; // line-height depends of font-family, font-size, your browser, maybe your OS http://meyerweb.com/eric/thoughts/2008/05/06/line-height-abnormal/ -$lh-088: 0.88; -$lh-100: 1; -$lh-115: 1.15; // original $title-lh-sm -$lh-125: 1.25; // original $title-lh -$lh-128: 1.28; -$lh-133: 1.33; // original $base-lh-sm -$lh-143: 1.43; // original $base-lh -$lh-145: 1.45; -$lh-150: 1.5; -$lh-188: 1.88; -$lh-192: 1.92; -$lh-200: 2; -$lh-236: 2.36; -$lh-500: 5; + @font-face { + font-family: "#{$style-name}"; + src: + url($filepath + ".woff2") format("woff2"), + url($filepath + ".ttf") format("truetype"); + font-weight: unquote($weight); + font-style: unquote($style); + } +} // Work Sans @include font-face("worksans", "WorkSans-Thin", "100"); @@ -105,3 +59,6 @@ $lh-500: 5; @include font-face("vazirmatn", "Vazirmatn-Bold", bold); @include font-face("vazirmatn", "Vazirmatn-ExtraBold", "800"); @include font-face("vazirmatn", "Vazirmatn-Black", "900"); + +// Space mono +@include font-face("robotomono", "RobotoMono-Regular", normal); diff --git a/frontend/resources/styles/common/dependencies/highlightjs-theme.scss b/frontend/resources/styles/common/dependencies/highlightjs-theme.scss index 8d8fbd6f99..00a68b011d 100644 --- a/frontend/resources/styles/common/dependencies/highlightjs-theme.scss +++ b/frontend/resources/styles/common/dependencies/highlightjs-theme.scss @@ -2,6 +2,9 @@ Monokai Sublime style. Derived from Monokai by noformnocontent http://nn.mit-license.org/ */ +// TODO: Legacy sass vars. We should use DS tokens. +$fw700: 700; + .hljs { display: block; overflow-x: auto; diff --git a/frontend/resources/styles/common/dependencies/mixin.scss b/frontend/resources/styles/common/dependencies/mixin.scss deleted file mode 100644 index 73f5cc2488..0000000000 --- a/frontend/resources/styles/common/dependencies/mixin.scss +++ /dev/null @@ -1,40 +0,0 @@ -// This Source Code Form is subject to the terms of the Mozilla Public -// License, v. 2.0. If a copy of the MPL was not distributed with this -// file, You can obtain one at http://mozilla.org/MPL/2.0/. -// -// Copyright (c) KALEIDOS INC - -@mixin font-face($style-name, $file, $weight: unquote("normal"), $style: unquote("normal")) { - $filepath: "/fonts/" + $file; - @font-face { - font-family: "#{$style-name}"; - src: - url($filepath + ".woff2") format("woff2"), - url($filepath + ".ttf") format("truetype"); - font-weight: unquote($weight); - font-style: unquote($style); - } -} - -@mixin tooltipShow { - &:hover { - .icon-tooltip { - display: block; - left: 2rem; - animation: tooltipAppear 0.2s linear; - } - } - &.active { - .icon-tooltip { - display: block; - left: 2rem; - animation: tooltipAppear 0.2s linear; - } - } -} - -@mixin text-ellipsis { - text-overflow: ellipsis; - white-space: nowrap; - overflow: hidden; -} diff --git a/frontend/resources/styles/common/dependencies/reset.scss b/frontend/resources/styles/common/dependencies/reset.scss index 6092943ca3..39e198d8d7 100644 --- a/frontend/resources/styles/common/dependencies/reset.scss +++ b/frontend/resources/styles/common/dependencies/reset.scss @@ -1,3 +1,7 @@ +// TODO: Legacy sass vars. We should not be using Sass vars here in this +// file at all. +$lh-143: 1.43; + /* http://meyerweb.com/eric/tools/css/reset/ v2.0 | 20110126 @@ -97,6 +101,9 @@ video { border: 0; font: inherit; font-size: 100%; + // TODO: Changing line-height to 1 (as it should be) makes the visual tests + // fail with a max pixel diff ratio of 0.005. + // We should tackle this later. line-height: $lh-143; margin: 0; padding: 0; @@ -118,7 +125,7 @@ section { display: block; } body { - line-height: $lh-100; + line-height: 1; } ol, diff --git a/frontend/resources/styles/common/framework.scss b/frontend/resources/styles/common/framework.scss index a4a02c0fba..22b9986809 100644 --- a/frontend/resources/styles/common/framework.scss +++ b/frontend/resources/styles/common/framework.scss @@ -12,6 +12,8 @@ $size-4: 1rem; $br7: 7px; $br25: 25px; $br50: 50px; +$fs14: 0.875rem; +$lh-normal: normal; // line-height depends of font-family, font-size, your browser, maybe your OS http://meyerweb.com/eric/thoughts/2008/05/06/line-height-abnormal/ input[type="button"][disabled] { background-color: var(--color-canvas); // TODO: see if we can remove this whole selector diff --git a/frontend/resources/styles/common/refactor/fonts.scss b/frontend/resources/styles/common/refactor/fonts.scss index 81a8b5f670..2382eca209 100644 --- a/frontend/resources/styles/common/refactor/fonts.scss +++ b/frontend/resources/styles/common/refactor/fonts.scss @@ -5,7 +5,6 @@ // Copyright (c) KALEIDOS INC @use "sass:math"; -@import "common/dependencies/mixin"; // Typography scale $fs-base: 16; diff --git a/frontend/resources/styles/main-default.scss b/frontend/resources/styles/main-default.scss index b28260f4dd..ecfeb0dcce 100644 --- a/frontend/resources/styles/main-default.scss +++ b/frontend/resources/styles/main-default.scss @@ -15,7 +15,6 @@ //################################################# @import "common/refactor/color-defs.scss"; -@import "common/dependencies/mixin"; @import "common/dependencies/fonts"; @import "common/dependencies/reset"; @import "common/dependencies/animations"; diff --git a/frontend/resources/styles/main/partials/workspace.scss b/frontend/resources/styles/main/partials/workspace.scss index 999856a250..3832b7444d 100644 --- a/frontend/resources/styles/main/partials/workspace.scss +++ b/frontend/resources/styles/main/partials/workspace.scss @@ -4,9 +4,12 @@ // // Copyright (c) KALEIDOS INC -// TODO: legacy sass vars. To be removed in favor of DS tokens +@import "refactor/common-refactor.scss"; + +// TODO: legacy sass vars. To be removed in favor of DS tokens. $br3: 3px; $br4: 4px; +$lh-150: 1.5; $width-left-toolbar: 48px; @@ -119,7 +122,7 @@ $height-palette-max: 80px; span { color: var(--df-primary); - font-size: $fs12; + font-size: $fs-12; padding-right: 5px; } } @@ -128,7 +131,7 @@ $height-palette-max: 80px; background-color: var(--db-secondary-40); border-radius: $br3; color: var(--df-primary); - font-size: $fs12; + font-size: $fs-12; padding: 3px 8px; transition: none; text-align: center; @@ -236,7 +239,7 @@ $height-palette-max: 80px; } .workspace-frame-label { - font-size: $fs12; + font-size: $fs-12; } .multiuser-cursor { @@ -252,7 +255,7 @@ $height-palette-max: 80px; display: flex; align-items: center; height: 20px; - font-size: $fs12; + font-size: $fs-12; line-height: $lh-150; } diff --git a/frontend/src/app/main/ui/workspace.scss b/frontend/src/app/main/ui/workspace.scss index 0cc517eae5..4badce13dd 100644 --- a/frontend/src/app/main/ui/workspace.scss +++ b/frontend/src/app/main/ui/workspace.scss @@ -6,14 +6,6 @@ @import "refactor/common-refactor.scss"; -// Work Sans -@include font-face("worksans", "WorkSans-Regular", normal); -@include font-face("worksans", "WorkSans-Medium", "500"); -@include font-face("worksans", "WorkSans-Bold", bold); - -// Space mono -@include font-face("robotomono", "RobotoMono-Regular", normal); - :global(:root) { --s-4: 0.25rem; --layer-indentation-size: calc(var(--s-4) * 6); From 6b8108afda8ffb1486ceb980d6edc60b36481390 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bel=C3=A9n=20Albeza?= Date: Thu, 20 Jun 2024 12:37:27 +0200 Subject: [PATCH 274/476] :sparkles: Make reset css to be included first thing in our styles --- frontend/resources/styles/main-default.scss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/resources/styles/main-default.scss b/frontend/resources/styles/main-default.scss index ecfeb0dcce..5cb537d137 100644 --- a/frontend/resources/styles/main-default.scss +++ b/frontend/resources/styles/main-default.scss @@ -14,9 +14,9 @@ // MAIN STYLES //################################################# +@import "common/dependencies/reset"; @import "common/refactor/color-defs.scss"; @import "common/dependencies/fonts"; -@import "common/dependencies/reset"; @import "common/dependencies/animations"; @import "common/dependencies/z-index"; @import "common/dependencies/highlightjs-theme"; From ed174d16d12e130b3c1e2f2cd9ec36f06502be24 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bel=C3=A9n=20Albeza?= Date: Thu, 20 Jun 2024 12:41:31 +0200 Subject: [PATCH 275/476] :sparkles: Remove unused animation mixin --- .../styles/common/dependencies/animations.scss | 17 ----------------- 1 file changed, 17 deletions(-) diff --git a/frontend/resources/styles/common/dependencies/animations.scss b/frontend/resources/styles/common/dependencies/animations.scss index c5030b2281..06f610df11 100644 --- a/frontend/resources/styles/common/dependencies/animations.scss +++ b/frontend/resources/styles/common/dependencies/animations.scss @@ -6,23 +6,6 @@ * Copyright (c) 2016 Daniel Eden */ -@mixin animation($delay, $duration, $animation) { - -webkit-animation-delay: $delay; - -webkit-animation-duration: $duration; - -webkit-animation-name: $animation; - -webkit-animation-fill-mode: both; - - -moz-animation-delay: $delay; - -moz-animation-duration: $duration; - -moz-animation-name: $animation; - -moz-animation-fill-mode: both; - - animation-delay: $delay; - animation-duration: $duration; - animation-name: $animation; - animation-fill-mode: both; -} - .animated { -webkit-animation-duration: 1s; animation-duration: 1s; From b6e918b024a84a4821f8b20c79c9cd257b6c95a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bel=C3=A9n=20Albeza?= Date: Thu, 20 Jun 2024 12:44:23 +0200 Subject: [PATCH 276/476] :sparkles: Remove unused legacy sass files --- frontend/resources/styles/common/base.scss | 1 + .../dependencies/highlightjs-theme.scss | 84 ------------------- .../styles/common/dependencies/z-index.scss | 10 --- .../styles/common/refactor/color-defs.scss | 1 - frontend/resources/styles/main-default.scss | 3 - .../styles/main/layouts/main-layout.scss | 33 -------- 6 files changed, 1 insertion(+), 131 deletions(-) delete mode 100644 frontend/resources/styles/common/dependencies/highlightjs-theme.scss delete mode 100644 frontend/resources/styles/common/dependencies/z-index.scss delete mode 100644 frontend/resources/styles/main/layouts/main-layout.scss diff --git a/frontend/resources/styles/common/base.scss b/frontend/resources/styles/common/base.scss index e5be26f6c6..ecbda4ab92 100644 --- a/frontend/resources/styles/common/base.scss +++ b/frontend/resources/styles/common/base.scss @@ -5,6 +5,7 @@ // Copyright (c) KALEIDOS INC // TODO: Legacy sass vars. We should use DS tokens. +$color-gray-50: #303236; $fs12: 0.75rem; $fs18: 1.125rem; $fs24: 1.5rem; diff --git a/frontend/resources/styles/common/dependencies/highlightjs-theme.scss b/frontend/resources/styles/common/dependencies/highlightjs-theme.scss deleted file mode 100644 index 00a68b011d..0000000000 --- a/frontend/resources/styles/common/dependencies/highlightjs-theme.scss +++ /dev/null @@ -1,84 +0,0 @@ -/* -Monokai Sublime style. Derived from Monokai by noformnocontent http://nn.mit-license.org/ -*/ - -// TODO: Legacy sass vars. We should use DS tokens. -$fw700: 700; - -.hljs { - display: block; - overflow-x: auto; - padding: 0.5em; - background: #23241f; -} - -.hljs, -.hljs-tag, -.hljs-subst { - color: #f8f8f2; -} - -.hljs-strong, -.hljs-emphasis { - color: #a8a8a2; -} - -.hljs-bullet, -.hljs-quote, -.hljs-number, -.hljs-regexp, -.hljs-literal, -.hljs-link { - color: #ae81ff; -} - -.hljs-code, -.hljs-title, -.hljs-section, -.hljs-selector-class { - color: #a6e22e; -} - -.hljs-strong { - font-weight: $fw700; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-keyword, -.hljs-selector-tag, -.hljs-name, -.hljs-attr { - color: #f92672; -} - -.hljs-symbol, -.hljs-attribute { - color: #66d9ef; -} - -.hljs-params, -.hljs-class .hljs-title { - color: #f8f8f2; -} - -.hljs-string, -.hljs-type, -.hljs-built_in, -.hljs-builtin-name, -.hljs-selector-id, -.hljs-selector-attr, -.hljs-selector-pseudo, -.hljs-addition, -.hljs-variable, -.hljs-template-variable { - color: #e6db74; -} - -.hljs-comment, -.hljs-deletion, -.hljs-meta { - color: #75715e; -} diff --git a/frontend/resources/styles/common/dependencies/z-index.scss b/frontend/resources/styles/common/dependencies/z-index.scss deleted file mode 100644 index 0275fbe3ec..0000000000 --- a/frontend/resources/styles/common/dependencies/z-index.scss +++ /dev/null @@ -1,10 +0,0 @@ -// This Source Code Form is subject to the terms of the Mozilla Public -// License, v. 2.0. If a copy of the MPL was not distributed with this -// file, You can obtain one at http://mozilla.org/MPL/2.0/. -// -// Copyright (c) KALEIDOS INC - -$autocomplete: 30000; -$index-lightbox-shadow: 60000; -$index-lightbox: 60001; -$index-lightbox-close-x: 200; diff --git a/frontend/resources/styles/common/refactor/color-defs.scss b/frontend/resources/styles/common/refactor/color-defs.scss index bb2294ca56..b28a159e6b 100644 --- a/frontend/resources/styles/common/refactor/color-defs.scss +++ b/frontend/resources/styles/common/refactor/color-defs.scss @@ -9,7 +9,6 @@ // TODO: legacy Sass colors, we should eventually try to remove them in // favor of DS colors. $color-gray-20: #b1b2b5; -$color-gray-50: #303236; :root { // DARK diff --git a/frontend/resources/styles/main-default.scss b/frontend/resources/styles/main-default.scss index 5cb537d137..7b7004f4f2 100644 --- a/frontend/resources/styles/main-default.scss +++ b/frontend/resources/styles/main-default.scss @@ -18,8 +18,6 @@ @import "common/refactor/color-defs.scss"; @import "common/dependencies/fonts"; @import "common/dependencies/animations"; -@import "common/dependencies/z-index"; -@import "common/dependencies/highlightjs-theme"; @import "common/refactor/themes.scss"; @import "common/refactor/design-tokens.scss"; @@ -29,7 +27,6 @@ //################################################# @import "common/base"; -@import "main/layouts/main-layout"; //################################################# // Commons diff --git a/frontend/resources/styles/main/layouts/main-layout.scss b/frontend/resources/styles/main/layouts/main-layout.scss deleted file mode 100644 index d57c1f74dd..0000000000 --- a/frontend/resources/styles/main/layouts/main-layout.scss +++ /dev/null @@ -1,33 +0,0 @@ -// This Source Code Form is subject to the terms of the Mozilla Public -// License, v. 2.0. If a copy of the MPL was not distributed with this -// file, You can obtain one at http://mozilla.org/MPL/2.0/. -// -// Copyright (c) KALEIDOS INC - -.main-content { - display: flex; - height: 100%; - position: relative; -} - -.dashboard-content { - display: flex; - flex-direction: column; - position: relative; -} - -.verify-token { - display: flex; - justify-content: center; - align-items: center; - height: 100vh; - - svg#loader-pencil { - fill: $color-gray-50; - } -} - -#screenshot { - display: flex; - flex-direction: column; -} From b192887d19e265f32c565e991e2a63a6ec089c4b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bel=C3=A9n=20Albeza?= Date: Thu, 20 Jun 2024 14:00:41 +0200 Subject: [PATCH 277/476] :sparkles: Remove framework scss stylesheet --- .../resources/styles/common/framework.scss | 131 ------------------ frontend/src/app/util/forms.cljs | 2 +- 2 files changed, 1 insertion(+), 132 deletions(-) diff --git a/frontend/resources/styles/common/framework.scss b/frontend/resources/styles/common/framework.scss index 22b9986809..74fd77d234 100644 --- a/frontend/resources/styles/common/framework.scss +++ b/frontend/resources/styles/common/framework.scss @@ -6,20 +6,8 @@ // TODO: These are legacy Sass vars that are now only used in this file. // We should switch them for the new DS tokens. -$color-gray-40: #64666a; -$color-gray-60: #1f1f1f; $size-4: 1rem; -$br7: 7px; -$br25: 25px; -$br50: 50px; $fs14: 0.875rem; -$lh-normal: normal; // line-height depends of font-family, font-size, your browser, maybe your OS http://meyerweb.com/eric/thoughts/2008/05/06/line-height-abnormal/ - -input[type="button"][disabled] { - background-color: var(--color-canvas); // TODO: see if we can remove this whole selector - color: $color-gray-40; - pointer-events: none; -} input, select { @@ -31,125 +19,6 @@ select { -moz-appearance: none; } -input[type="radio"], -input[type="checkbox"] { - box-sizing: border-box; - cursor: pointer; - line-height: $lh-normal; - margin-top: 1px 0 0; -} - -.form-errors { - color: var(--status-color-warning-500); -} - -// Input slidebar - -input[type="range"] { - background-color: transparent; - -webkit-appearance: none; - margin: 10px 0 10px 3px; - max-width: 70px; - width: 100%; -} -input[type="range"]:focus { - outline: none; -} -input[type="range"]::-webkit-slider-runnable-track { - width: 100%; - height: 6px; - cursor: pointer; - animate: 0.2s; - box-shadow: - 0px 0px 0px #000000, - 0px 0px 0px #0d0d0d; - background: $color-gray-60; - border-radius: $br25; - border: 0px solid #000101; -} -input[type="range"]::-webkit-slider-thumb { - box-shadow: - 0px 0px 0px #000000, - 0px 0px 0px #0d0d0d; - border: 0px solid #000000; - height: 18px; - width: 6px; - border-radius: $br7; - background: $color-gray-20; - cursor: pointer; - -webkit-appearance: none; - margin-top: -6px; -} -input[type="range"]:focus::-webkit-slider-runnable-track { - background: $color-gray-60; -} -input[type="range"]::-moz-range-track { - width: 100%; - height: 8px; - cursor: pointer; - animate: 0.2s; - box-shadow: - 0px 0px 0px #000000, - 0px 0px 0px #0d0d0d; - background: $color-gray-60; - border-radius: $br25; - border: 0px solid #000101; -} -input[type="range"]::-moz-range-thumb { - box-shadow: - 0px 0px 0px #000000, - 0px 0px 0px #0d0d0d; - border: 0px solid #000000; - height: 24px; - width: 8px; - border-radius: $br7; - background: $color-gray-20; - cursor: pointer; -} -input[type="range"]::-ms-track { - width: 100%; - height: 8px; - cursor: pointer; - animate: 0.2s; - background: transparent; - border-color: transparent; - border-width: 39px 0; - color: transparent; -} -input[type="range"]::-ms-fill-lower { - background: $color-gray-60; - border: 0px solid #000101; - border-radius: $br50; - box-shadow: - 0px 0px 0px #000000, - 0px 0px 0px #0d0d0d; -} -input[type="range"]::-ms-fill-upper { - background: $color-gray-60; - border: 0px solid #000101; - border-radius: $br50; - box-shadow: - 0px 0px 0px #000000, - 0px 0px 0px #0d0d0d; -} -input[type="range"]::-ms-thumb { - box-shadow: - 0px 0px 0px #000000, - 0px 0px 0px #0d0d0d; - border: 0px solid #000000; - height: 24px; - width: 8px; - border-radius: $br7; - background: $color-gray-20; - cursor: pointer; -} -input[type="range"]:focus::-ms-fill-lower { - background: $color-gray-60; -} -input[type="range"]:focus::-ms-fill-upper { - background: $color-gray-60; -} - [draggable] { -moz-user-select: none; -khtml-user-select: none; diff --git a/frontend/src/app/util/forms.cljs b/frontend/src/app/util/forms.cljs index 940b982596..8cbb792b2f 100644 --- a/frontend/src/app/util/forms.cljs +++ b/frontend/src/app/util/forms.cljs @@ -159,7 +159,7 @@ (ifn? type) (type (:type error)) :else false))] (when show? - [:ul.form-errors + [:ul [:li {:key (:code error)} (tr (:message error))]]))) (defn error-class From 9a2ee806e444c444443863365382f0d7875165aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bel=C3=A9n=20Albeza?= Date: Thu, 20 Jun 2024 14:58:19 +0200 Subject: [PATCH 278/476] :sparkles: Clean up base scss --- frontend/resources/styles/common/base.scss | 151 +++--------------- .../resources/styles/common/framework.scss | 30 ---- frontend/resources/styles/main-default.scss | 9 +- .../sidebar/options/menus/measures.cljs | 2 +- .../sidebar/options/menus/svg_attrs.cljs | 1 - 5 files changed, 25 insertions(+), 168 deletions(-) delete mode 100644 frontend/resources/styles/common/framework.scss diff --git a/frontend/resources/styles/common/base.scss b/frontend/resources/styles/common/base.scss index ecbda4ab92..f764e045f2 100644 --- a/frontend/resources/styles/common/base.scss +++ b/frontend/resources/styles/common/base.scss @@ -7,15 +7,16 @@ // TODO: Legacy sass vars. We should use DS tokens. $color-gray-50: #303236; $fs12: 0.75rem; +$fs14: 0.875rem; $fs18: 1.125rem; $fs24: 1.5rem; $fs34: 2.125rem; $fs44: 2.75rem; $fw300: 300; $fw500: 500; -$fw700: 700; $lh-115: 1.15; $lh-133: 1.33; +$size-4: 1rem; :root { --font-family: "worksans", sans-serif; @@ -42,27 +43,15 @@ body { * { box-sizing: border-box; scrollbar-width: thin; - // transition: all .4s ease; } +// Firefox-only hack @-moz-document url-prefix() { * { scrollbar-width: auto; } } -.global-zeroclipboard-container { - transition: none; - - #global-zeroclipboard-flash-bridge { - transition: none; - } - - object { - transition: none; - } -} - img { height: auto; width: 100%; @@ -102,25 +91,12 @@ ul { margin-bottom: 1rem; } -strong { - font-weight: $fw700; -} - -.relative { - position: relative; -} - h1 { font-size: $fs34; font-weight: $fw500; line-height: $lh-115; - - &.supertitle { - font-size: $fs44; - font-weight: $fw300; - line-height: $lh-115; - } } + h2 { font-size: $fs24; font-weight: $fw300; @@ -138,104 +114,6 @@ h4 { font-weight: $fw300; } -@-webkit-keyframes rotation { - from { - -webkit-transform: rotate(0deg); - } - to { - -webkit-transform: rotate(359deg); - } -} - -@-webkit-keyframes rotation-negative { - from { - -webkit-transform: rotate(0deg); - } - to { - -webkit-transform: rotate(-359deg); - } -} - -@keyframes tooltipAppear { - 0% { - opacity: 0; - display: none; - } - 1% { - display: block; - opacity: 0; - left: 3rem; - } - 100% { - opacity: 1; - left: 2rem; - } -} - -@keyframes show { - 0% { - opacity: 0; - display: none; - } - 1% { - display: block; - opacity: 0; - } - 100% { - opacity: 1; - } -} - -@keyframes hide { - 0% { - opacity: 1; - display: block; - } - 99% { - opacity: 0; - display: block; - } - 100% { - display: none; - } -} - -.hide { - display: none !important; - transition: all 0.5s ease; -} - -.visuallyHidden { - opacity: 0 !important; - transition: all 0.5s ease; -} - -.show { - animation: show 0.4s linear; - display: block !important; -} - -.center { - margin: 0 auto; - text-align: center; -} - -.hidden-input { - display: none; -} - -.bold { - font-weight: $fw700 !important; -} - -.nopd { - padding: 0 !important; -} - -.move-cursor { - cursor: move; -} - hr { border-top: solid 1px var(--db-primary); border-right: 0; @@ -259,7 +137,22 @@ input[type="number"] { user-select: text; } -[data-hidden="true"] { - display: none; - pointer-events: none; +input, +select { + box-sizing: border-box; + font-family: "worksans", sans-serif; + font-size: $fs14; + margin-bottom: $size-4; + -webkit-appearance: none; + -moz-appearance: none; +} + +[draggable] { + -moz-user-select: none; + -khtml-user-select: none; + -webkit-user-select: none; + user-select: none; + /* Required to make elements draggable in old WebKit */ + -khtml-user-drag: element; + -webkit-user-drag: element; } diff --git a/frontend/resources/styles/common/framework.scss b/frontend/resources/styles/common/framework.scss deleted file mode 100644 index 74fd77d234..0000000000 --- a/frontend/resources/styles/common/framework.scss +++ /dev/null @@ -1,30 +0,0 @@ -// This Source Code Form is subject to the terms of the Mozilla Public -// License, v. 2.0. If a copy of the MPL was not distributed with this -// file, You can obtain one at http://mozilla.org/MPL/2.0/. -// -// Copyright (c) KALEIDOS INC - -// TODO: These are legacy Sass vars that are now only used in this file. -// We should switch them for the new DS tokens. -$size-4: 1rem; -$fs14: 0.875rem; - -input, -select { - box-sizing: border-box; - font-family: "worksans", sans-serif; - font-size: $fs14; - margin-bottom: $size-4; - -webkit-appearance: none; - -moz-appearance: none; -} - -[draggable] { - -moz-user-select: none; - -khtml-user-select: none; - -webkit-user-select: none; - user-select: none; - /* Required to make elements draggable in old WebKit */ - -khtml-user-drag: element; - -webkit-user-drag: element; -} diff --git a/frontend/resources/styles/main-default.scss b/frontend/resources/styles/main-default.scss index 7b7004f4f2..aca47fd48b 100644 --- a/frontend/resources/styles/main-default.scss +++ b/frontend/resources/styles/main-default.scss @@ -4,12 +4,6 @@ // // Copyright (c) KALEIDOS INC -//################################################# -// Import libraries -//################################################# - -@use "sass:color"; - //################################################# // MAIN STYLES //################################################# @@ -32,7 +26,8 @@ // Commons //################################################# -@import "common/framework"; +// TODO: remove this stylesheet once the new text editor is in place +// https: //tree.taiga.io/project/penpot/us/8165 @import "main/partials/texts"; //################################################# diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/menus/measures.cljs b/frontend/src/app/main/ui/workspace/sidebar/options/menus/measures.cljs index 8b40932b4b..ffec58e41c 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/options/menus/measures.cljs @@ -480,7 +480,7 @@ [:div {:class (stl/css :radius-1) :title (tr "workspace.options.radius")} [:span {:class (stl/css :icon)} i/corner-radius] - [:input.input-text + [:input {:type "number" :placeholder "Mixed" :min 0 diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs b/frontend/src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs index 7c4a5a500f..1d6d009666 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs @@ -36,7 +36,6 @@ [:span {:class (stl/css :attr-name)} label] [:div {:class (stl/css :attr-input)} [:input {:value value - :class "input-text" :on-change handle-change}]] [:div {:class (stl/css :attr-actions)} [:button {:class (stl/css :attr-action-btn) From cd8e2540de8d2782d053cfbf5ec495bedf18f11c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bel=C3=A9n=20Albeza?= Date: Fri, 21 Jun 2024 14:16:53 +0200 Subject: [PATCH 279/476] :sparkles: Use CSS modules for styling the debug icons preview page --- frontend/resources/styles/main-default.scss | 1 - .../main/partials/debug-icons-preview.scss | 70 ------------------- frontend/src/app/main/ui.cljs | 8 +-- frontend/src/app/main/ui/cursors.cljs | 31 +------- .../src/app/main/ui/debug/icons_preview.cljs | 54 ++++++++++++++ .../src/app/main/ui/debug/icons_preview.scss | 51 ++++++++++++++ 6 files changed, 108 insertions(+), 107 deletions(-) delete mode 100644 frontend/resources/styles/main/partials/debug-icons-preview.scss create mode 100644 frontend/src/app/main/ui/debug/icons_preview.cljs create mode 100644 frontend/src/app/main/ui/debug/icons_preview.scss diff --git a/frontend/resources/styles/main-default.scss b/frontend/resources/styles/main-default.scss index aca47fd48b..dccaa2ef41 100644 --- a/frontend/resources/styles/main-default.scss +++ b/frontend/resources/styles/main-default.scss @@ -34,6 +34,5 @@ // Partials //################################################# -@import "main/partials/debug-icons-preview"; @import "main/partials/loader"; @import "main/partials/workspace"; diff --git a/frontend/resources/styles/main/partials/debug-icons-preview.scss b/frontend/resources/styles/main/partials/debug-icons-preview.scss deleted file mode 100644 index 4b72bd0a7e..0000000000 --- a/frontend/resources/styles/main/partials/debug-icons-preview.scss +++ /dev/null @@ -1,70 +0,0 @@ -.debug-preview { - display: flex; - flex-direction: column; - overflow: scroll; - height: 100%; - h1 { - color: white; - font-size: 24px; - display: block; - width: 100vw; - margin: 12px; - } -} - -.debug-icons-preview { - display: flex; - flex-wrap: wrap; - h2 { - color: white; - font-size: 16px; - display: block; - width: 100vw; - margin: 12px; - } - - .subtitle-old { - color: #ff3277; - } - - .icon-item, - .cursor-item, - .icon-item-old { - padding: 10px; - display: flex; - flex-direction: column; - width: 120px; - height: 120px; - margin: 10px; - align-items: center; - - svg { - width: 100%; - height: 100%; - min-width: 16px; - min-height: 16px; - fill: none; - color: transparent; - stroke: #91fadb; - } - - span { - color: white; - max-width: 100px; - overflow: hidden; - font-size: 12px; - margin-top: 4px; - word-break: break-word; - min-height: 40px; - } - } - - .cursor-item div, - .icon-item-old svg { - stroke: #aab5ba; - } - - .cursor-item { - height: auto; - } -} diff --git a/frontend/src/app/main/ui.cljs b/frontend/src/app/main/ui.cljs index e725698d51..60803b2ee5 100644 --- a/frontend/src/app/main/ui.cljs +++ b/frontend/src/app/main/ui.cljs @@ -10,8 +10,8 @@ [app.main.refs :as refs] [app.main.store :as st] [app.main.ui.context :as ctx] - [app.main.ui.cursors :as c] [app.main.ui.debug.components-preview :as cm] + [app.main.ui.debug.icons-preview :refer [icons-preview]] [app.main.ui.frame-preview :as frame-preview] [app.main.ui.icons :as i] [app.main.ui.messages :as msgs] @@ -76,11 +76,7 @@ :debug-icons-preview (when *assert* - [:div.debug-preview - [:h1 "Cursors"] - [:& c/debug-preview] - [:h1 "Icons"] - [:& i/debug-icons-preview]]) + [:& icons-preview]) (:dashboard-search :dashboard-projects diff --git a/frontend/src/app/main/ui/cursors.cljs b/frontend/src/app/main/ui/cursors.cljs index 8b41528167..ec76bbd0bd 100644 --- a/frontend/src/app/main/ui/cursors.cljs +++ b/frontend/src/app/main/ui/cursors.cljs @@ -5,11 +5,7 @@ ;; Copyright (c) KALEIDOS INC (ns app.main.ui.cursors - (:require-macros [app.main.ui.cursors :refer [cursor-ref cursor-fn collect-cursors]]) - (:require - [app.util.timers :as ts] - [cuerdas.core :as str] - [rumext.v2 :as mf])) + (:require-macros [app.main.ui.cursors :refer [cursor-ref cursor-fn collect-cursors]])) ;; Static cursors (def ^:cursor comments (cursor-ref :comments 0 2 20)) @@ -53,28 +49,3 @@ (def default "A collection of all icons" (collect-cursors)) - -(mf/defc debug-preview - {::mf/wrap-props false} - [] - (let [rotation (mf/use-state 0) - entries (->> (seq (js/Object.entries default)) - (sort-by first))] - - (mf/with-effect [] - (ts/interval 100 #(reset! rotation inc))) - - [:section.debug-icons-preview - (for [[key value] entries] - (let [value (if (fn? value) (value @rotation) value)] - [:div.cursor-item {:key key} - [:div {:style {:width "100px" - :height "100px" - :background-image (-> value (str/replace #"(url\(.*\)).*" "$1")) - :background-size "contain" - :background-repeat "no-repeat" - :background-position "center" - :cursor value}}] - - [:span {:style {:white-space "nowrap" - :margin-right "1rem"}} (pr-str key)]]))])) diff --git a/frontend/src/app/main/ui/debug/icons_preview.cljs b/frontend/src/app/main/ui/debug/icons_preview.cljs new file mode 100644 index 0000000000..9380dc8726 --- /dev/null +++ b/frontend/src/app/main/ui/debug/icons_preview.cljs @@ -0,0 +1,54 @@ +(ns app.main.ui.debug.icons-preview + (:require-macros [app.main.style :as stl]) + (:require + [app.main.ui.cursors :as c] + [app.main.ui.icons :as i] + [app.util.timers :as ts] + [cuerdas.core :as str] + [rumext.v2 :as mf])) + +(mf/defc icons-gallery + {::mf/wrap-props false + ::mf/private true} + [] + (let [entries (->> (seq (js/Object.entries i/default)) + (sort-by first))] + [:section {:class (stl/css :gallery)} + (for [[key val] entries] + [:div {:class (stl/css :gallery-item) + :key key + :title key} + val + [:span key]])])) + +(mf/defc cursors-gallery + {::mf/wrap-props false + ::mf/private true} + [] + (let [rotation (mf/use-state 0) + entries (->> (seq (js/Object.entries c/default)) + (sort-by first))] + + (mf/with-effect [] + (ts/interval 100 #(reset! rotation inc))) + + [:section {:class (stl/css :gallery)} + (for [[key value] entries] + (let [value (if (fn? value) (value @rotation) value)] + [:div {:key key :class (stl/css :gallery-item)} + [:div {:class (stl/css :cursor) + :style {:background-image (-> value (str/replace #"(url\(.*\)).*" "$1")) + :cursor value}}] + + [:span (pr-str key)]]))])) + + +(mf/defc icons-preview + {::mf/wrap-props false} + [] + [:article {:class (stl/css :container)} + [:h2 {:class (stl/css :title)} "Cursors"] + [:& cursors-gallery] + [:h2 {:class (stl/css :title)} "Icons"] + [:& icons-gallery]]) + diff --git a/frontend/src/app/main/ui/debug/icons_preview.scss b/frontend/src/app/main/ui/debug/icons_preview.scss new file mode 100644 index 0000000000..673c1b0658 --- /dev/null +++ b/frontend/src/app/main/ui/debug/icons_preview.scss @@ -0,0 +1,51 @@ +@use "common/refactor/common-refactor.scss" as *; + +.container { + display: grid; + row-gap: 1rem; + height: 100vh; + overflow-y: auto; + padding: 1rem; +} + +.title { + @include bigTitleTipography; + color: var(--color-foreground-primary); +} + +.gallery { + display: grid; + grid-template-columns: repeat(auto-fill, 120px); + grid-template-rows: repeat(auto-fill, 120px); + gap: 1rem; + + --cell-size: 64px; +} + +.gallery-item { + display: grid; + place-items: center; + row-gap: 0.5rem; + grid-template-rows: var(--cell-size) 1fr; + padding: 0.5rem; + + color: var(--color-foreground-primary); + word-break: break-word; + @include bodySmallTypography; + + svg { + width: var(--cell-size); + height: var(--cell-size); + fill: none; + color: transparent; + stroke: var(--color-accent-primary); + } +} + +.cursor { + width: var(--cell-size); + height: var(--cell-size); + background-size: contain; + background-repeat: no-repeat; + background-position: center; +} From ce9fb80558fe4298a36387e35d50b1ddec6c9c32 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bel=C3=A9n=20Albeza?= Date: Fri, 21 Jun 2024 14:27:43 +0200 Subject: [PATCH 280/476] :paperclip: Remove unused css for loader --- .../common/dependencies/animations.scss | 43 ------------------- .../styles/main/partials/loader.scss | 33 -------------- 2 files changed, 76 deletions(-) diff --git a/frontend/resources/styles/common/dependencies/animations.scss b/frontend/resources/styles/common/dependencies/animations.scss index 06f610df11..ea30c21e10 100644 --- a/frontend/resources/styles/common/dependencies/animations.scss +++ b/frontend/resources/styles/common/dependencies/animations.scss @@ -71,49 +71,6 @@ animation-name: fadeInDown; } -// Loader animation -@keyframes pen1 { - 0% { - transform: translateY(0px); - } - - 15% { - transform: translateY(-10px); - } - - 30% { - transform: translateY(0px); - } -} - -@keyframes pen2 { - 30% { - transform: translateY(0px); - } - - 45% { - transform: translateY(-10px); - } - - 60% { - transform: translateY(0px); - } -} - -@keyframes pen3 { - 60% { - transform: translateY(0px); - } - - 75% { - transform: translateY(-10px); - } - - 90% { - transform: translateY(0px); - } -} - @keyframes loaderColor { 0% { fill: #513b56; diff --git a/frontend/resources/styles/main/partials/loader.scss b/frontend/resources/styles/main/partials/loader.scss index 14021d07e4..14154849d6 100644 --- a/frontend/resources/styles/main/partials/loader.scss +++ b/frontend/resources/styles/main/partials/loader.scss @@ -1,36 +1,3 @@ -// full width BG -.loader-content { - align-items: center; - background-color: rgba(255, 255, 255, 0.85); - display: flex; - height: 100vh; - justify-content: center; - left: 0; - position: fixed; - top: 0; - width: 100%; - z-index: 40; -} - -// full with loader CSS -svg#loader-icon { - height: 100px; - width: 100px; - animation: loaderColor 5s infinite ease; -} - -#loader-pen1 { - animation: pen1 2s infinite ease; -} - -#loader-pen2 { - animation: pen2 2s infinite ease; -} - -#loader-pen3 { - animation: pen3 2s infinite ease; -} - // btn pencil loader svg#loader-pencil { fill: var(--color-accent-tertiary); From c9258b55266efc18cf79f338eedbc0ddf455bf13 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bel=C3=A9n=20Albeza?= Date: Fri, 21 Jun 2024 15:35:54 +0200 Subject: [PATCH 281/476] :sparkles: Remove workspace partial scss stylesheet --- .../styles/common/refactor/color-defs.scss | 4 - .../styles/common/refactor/fonts.scss | 3 + frontend/resources/styles/main-default.scss | 3 +- .../styles/main/partials/workspace.scss | 311 ------------------ frontend/src/app/main/ui/workspace.cljs | 9 +- frontend/src/app/main/ui/workspace.scss | 10 +- .../app/main/ui/workspace/coordinates.cljs | 8 +- .../app/main/ui/workspace/coordinates.scss | 33 ++ .../src/app/main/ui/workspace/palette.cljs | 2 +- .../src/app/main/ui/workspace/viewport.cljs | 10 +- .../src/app/main/ui/workspace/viewport.scss | 49 +++ .../main/ui/workspace/viewport/presence.cljs | 12 +- .../main/ui/workspace/viewport/presence.scss | 18 + 13 files changed, 131 insertions(+), 341 deletions(-) delete mode 100644 frontend/resources/styles/main/partials/workspace.scss create mode 100644 frontend/src/app/main/ui/workspace/coordinates.scss create mode 100644 frontend/src/app/main/ui/workspace/viewport.scss create mode 100644 frontend/src/app/main/ui/workspace/viewport/presence.scss diff --git a/frontend/resources/styles/common/refactor/color-defs.scss b/frontend/resources/styles/common/refactor/color-defs.scss index b28a159e6b..aad5ed19e9 100644 --- a/frontend/resources/styles/common/refactor/color-defs.scss +++ b/frontend/resources/styles/common/refactor/color-defs.scss @@ -6,10 +6,6 @@ @use "sass:color"; -// TODO: legacy Sass colors, we should eventually try to remove them in -// favor of DS colors. -$color-gray-20: #b1b2b5; - :root { // DARK // Dark background diff --git a/frontend/resources/styles/common/refactor/fonts.scss b/frontend/resources/styles/common/refactor/fonts.scss index 2382eca209..015555225a 100644 --- a/frontend/resources/styles/common/refactor/fonts.scss +++ b/frontend/resources/styles/common/refactor/fonts.scss @@ -23,3 +23,6 @@ $fs-36: math.div(36, $fs-base) + rem; $fw400: 400; // Regular (CSS value: 'normal') $fw500: 500; // Medium $fw700: 700; // Bold (CSS value: 'bold') + +// Line heights +$lh-150: 1.5; diff --git a/frontend/resources/styles/main-default.scss b/frontend/resources/styles/main-default.scss index dccaa2ef41..769e9a6d89 100644 --- a/frontend/resources/styles/main-default.scss +++ b/frontend/resources/styles/main-default.scss @@ -34,5 +34,6 @@ // Partials //################################################# +// TODO: encapsulate pencil loader into its own component +// https: //tree.taiga.io/project/penpot/task/8217 @import "main/partials/loader"; -@import "main/partials/workspace"; diff --git a/frontend/resources/styles/main/partials/workspace.scss b/frontend/resources/styles/main/partials/workspace.scss deleted file mode 100644 index 3832b7444d..0000000000 --- a/frontend/resources/styles/main/partials/workspace.scss +++ /dev/null @@ -1,311 +0,0 @@ -// This Source Code Form is subject to the terms of the Mozilla Public -// License, v. 2.0. If a copy of the MPL was not distributed with this -// file, You can obtain one at http://mozilla.org/MPL/2.0/. -// -// Copyright (c) KALEIDOS INC - -@import "refactor/common-refactor.scss"; - -// TODO: legacy sass vars. To be removed in favor of DS tokens. -$br3: 3px; -$br4: 4px; -$lh-150: 1.5; - -$width-left-toolbar: 48px; - -$width-settings-bar: 256px; -$width-settings-bar-min: 255px; -$width-settings-bar-max: 500px; - -$height-palette: 79px; -$height-palette-min: 54px; -$height-palette-max: 80px; - -#workspace { - width: 100vw; - height: 100%; - user-select: none; - background-color: var(--color-canvas); - display: grid; - grid-template-areas: - "header header header header" - "toolbar left-sidebar viewport right-sidebar" - "toolbar left-sidebar color-palette right-sidebar"; - - grid-template-rows: auto 1fr auto; - grid-template-columns: auto auto 1fr auto; - - .workspace-header { - grid-area: header; - height: 48px; - } - - .left-toolbar { - grid-area: toolbar; - width: $width-left-toolbar; - overflow-y: auto; - overflow-x: hidden; - } - - .settings-bar.settings-bar-left { - min-width: $width-settings-bar; - max-width: 500px; - width: var(--width, $width-settings-bar); - grid-area: left-sidebar; - } - - .settings-bar.settings-bar-right { - height: 100%; - width: var(--width, $width-settings-bar); - grid-area: right-sidebar; - - &.not-expand { - max-width: $width-settings-bar; - } - } - - .workspace-content { - grid-area: viewport; - } - - .color-palette { - grid-area: color-palette; - max-height: $height-palette-max; - height: var(--height, $height-palette); - } -} - -.workspace-content { - background-color: var(--color-canvas); - display: flex; - padding: 0; - margin: 0; - grid-area: viewport; - &.scrolling { - cursor: grab; - } - - &.no-tool-bar-right { - width: calc(100% - #{$width-left-toolbar} - #{$width-settings-bar}); - right: 0; - - .coordinates { - right: 10px; - } - } - - &.no-tool-bar-left { - width: calc(100% - #{$width-left-toolbar} - #{$width-settings-bar}); - - &.no-tool-bar-right { - width: 100%; - } - } - - .coordinates { - background-color: var(--db-primary); - border-radius: $br3; - bottom: 0px; - padding-left: 5px; - position: fixed; - right: calc(#{$width-settings-bar} + 14px); - text-align: center; - width: 125px; - white-space: nowrap; - padding-bottom: 2px; - transition: bottom 0.5s; - z-index: 2; - - &.color-palette-open { - bottom: 5rem; - } - - span { - color: var(--df-primary); - font-size: $fs-12; - padding-right: 5px; - } - } - - .cursor-tooltip { - background-color: var(--db-secondary-40); - border-radius: $br3; - color: var(--df-primary); - font-size: $fs-12; - padding: 3px 8px; - transition: none; - text-align: center; - } - - .workspace-viewport { - overflow: hidden; - transition: none; - display: grid; - grid-template-rows: 20px 1fr; - grid-template-columns: 20px 1fr; - flex: 1; - } - - .viewport { - cursor: none; - grid-column: 1 / span 2; - grid-row: 1 / span 2; - overflow: hidden; - position: relative; - - .viewport-overlays { - cursor: initial; - overflow: hidden; - pointer-events: none; - position: absolute; - top: 0; - left: 0; - bottom: 0; - right: 0; - z-index: 10; - - .pixel-overlay { - left: 0; - pointer-events: initial; - position: absolute; - top: 0; - right: 0; - bottom: 0; - z-index: 1; - } - } - - .render-shapes { - height: 100%; - position: absolute; - width: 100%; - } - - .frame-thumbnail-wrapper { - .fills, - .frame-clip-def { - opacity: 0; - } - } - - .viewport-controls { - position: absolute; - width: 100%; - height: 100%; - } - } - - .page-canvas, - .page-layout { - overflow: visible; - } - - /* Rules */ - - .empty-rule-square { - grid-column: 1 / span 1; - grid-row: 1 / span 1; - } - - .horizontal-rule { - transition: none; - pointer-events: none; - grid-column: 2 / span 1; - grid-row: 1 / span 1; - z-index: 13; - - rect { - fill: var(--color-canvas); - } - path { - stroke: $color-gray-20; - } - } - - .vertical-rule { - transition: none; - pointer-events: none; - grid-column: 1 / span 1; - grid-row: 2 / span 1; - z-index: 13; - - rect { - fill: var(--color-canvas); - } - path { - stroke: $color-gray-20; - } - } -} - -.workspace-frame-label { - font-size: $fs-12; -} - -.multiuser-cursor { - z-index: 10000; - pointer-events: none; -} - -.profile-name { - width: fit-content; - font-family: worksans; - padding: 2px 12px; - border-radius: $br4; - display: flex; - align-items: center; - height: 20px; - font-size: $fs-12; - line-height: $lh-150; -} - -.viewport-actions { - align-items: center; - display: flex; - flex-direction: row; - justify-content: center; - margin-left: auto; - margin-top: 2rem; - position: absolute; - width: 100%; - z-index: 12; - pointer-events: none; - - .viewport-actions-container { - pointer-events: initial; - display: flex; - flex-direction: row; - background: var(--app-white); - border-radius: $br3; - padding: 0.5rem; - border: 1px solid $color-gray-20; - box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2); - } - - .viewport-actions-container { - padding-left: 1rem; - gap: 12px; - color: var(--db-primary); - align-items: center; - font-size: 12px; - - .btn-primary, - .btn-secondary { - height: 24px; - } - - .viewport-actions-title { - margin-right: 2rem; - } - - .grid-edit-board-name { - font-weight: 600; - } - } - - .viewport-actions-group { - display: flex; - flex-direction: row; - border-right: 1px solid $color-gray-20; - } -} diff --git a/frontend/src/app/main/ui/workspace.cljs b/frontend/src/app/main/ui/workspace.cljs index 6365f0fe9c..6e22292f96 100644 --- a/frontend/src/app/main/ui/workspace.cljs +++ b/frontend/src/app/main/ui/workspace.cljs @@ -86,8 +86,9 @@ [:& palette {:layout layout :on-change-palette-size on-resize-palette}]) - [:section.workspace-content + [:section {:key (dm/str "workspace-" page-id) + :class (stl/css :workspace-content) :ref node-ref} [:section {:class (stl/css :workspace-viewport)} @@ -203,9 +204,9 @@ [:& (mf/provider ctx/current-page-id) {:value page-id} [:& (mf/provider ctx/components-v2) {:value components-v2?} [:& (mf/provider ctx/workspace-read-only?) {:value read-only?} - [:section#workspace-refactor {:class (stl/css :workspace) - :style {:background-color background-color - :touch-action "none"}} + [:section {:class (stl/css :workspace) + :style {:background-color background-color + :touch-action "none"}} [:& context-menu] (if ^boolean file-ready? diff --git a/frontend/src/app/main/ui/workspace.scss b/frontend/src/app/main/ui/workspace.scss index 4badce13dd..f190164cff 100644 --- a/frontend/src/app/main/ui/workspace.scss +++ b/frontend/src/app/main/ui/workspace.scss @@ -6,13 +6,9 @@ @import "refactor/common-refactor.scss"; -:global(:root) { - --s-4: 0.25rem; - --layer-indentation-size: calc(var(--s-4) * 6); -} - .workspace { @extend .new-scrollbar; + --layer-indentation-size: calc($s-4 * 6); width: 100vw; height: 100vh; max-height: 100vh; @@ -34,6 +30,10 @@ } .workspace-content { + background-color: var(--color-canvas); + display: flex; + padding: 0; + margin: 0; grid-area: viewport; } diff --git a/frontend/src/app/main/ui/workspace/coordinates.cljs b/frontend/src/app/main/ui/workspace/coordinates.cljs index 89717ef201..5ad5dfc572 100644 --- a/frontend/src/app/main/ui/workspace/coordinates.cljs +++ b/frontend/src/app/main/ui/workspace/coordinates.cljs @@ -5,6 +5,7 @@ ;; Copyright (c) KALEIDOS INC (ns app.main.ui.workspace.coordinates + (:require-macros [app.main.style :as stl]) (:require [app.main.streams :as ms] [app.main.ui.hooks :as hooks] @@ -13,8 +14,9 @@ (mf/defc coordinates [{:keys [colorpalette?]}] (let [coords (hooks/use-rxsub ms/mouse-position)] - [:ul.coordinates {:class (when colorpalette? "color-palette-open")} - [:span {:alt "x"} + [:div {:class (stl/css-case :container-color-palette-open colorpalette? + :container true)} + [:span {:alt "x" :class (stl/css :coordinate)} (str "X: " (:x coords "-"))] - [:span {:alt "y"} + [:span {:alt "y" :class (stl/css :coordinate)} (str "Y: " (:y coords "-"))]])) diff --git a/frontend/src/app/main/ui/workspace/coordinates.scss b/frontend/src/app/main/ui/workspace/coordinates.scss new file mode 100644 index 0000000000..f722e15261 --- /dev/null +++ b/frontend/src/app/main/ui/workspace/coordinates.scss @@ -0,0 +1,33 @@ +// This Source Code Form is subject to the terms of the Mozilla Public +// License, v. 2.0. If a copy of the MPL was not distributed with this +// file, You can obtain one at http://mozilla.org/MPL/2.0/. +// +// Copyright (c) KALEIDOS INC + +@use "common/refactor/common-refactor.scss" as *; + +$width-settings-bar: 256px; + +.container { + background-color: var(--db-primary); + border-radius: $br-4; + bottom: 0px; + padding: $s-2 $s-8; + position: fixed; + right: calc(#{$width-settings-bar} + #{$s-24}); + text-align: center; + white-space: nowrap; + transition: bottom 0.5s; + z-index: 2; + display: flex; + column-gap: 0.5rem; +} + +.container-color-palette-open { + bottom: $s-64; +} + +.coordinate { + color: var(--df-primary); + font-size: $fs-12; +} diff --git a/frontend/src/app/main/ui/workspace/palette.cljs b/frontend/src/app/main/ui/workspace/palette.cljs index bf3f262eaf..d643ecb8df 100644 --- a/frontend/src/app/main/ui/workspace/palette.cljs +++ b/frontend/src/app/main/ui/workspace/palette.cljs @@ -44,7 +44,7 @@ calculate-padding-left (+ rulers-width (or left-sidebar-size min-left-sidebar-width) left-padding 1)] #js {"paddingLeft" (dm/str calculate-padding-left "px") - "paddingRight" "calc(var(--s-4) * 70)"})) + "paddingRight" "280px"})) (mf/defc palette [{:keys [layout on-change-palette-size]}] diff --git a/frontend/src/app/main/ui/workspace/viewport.cljs b/frontend/src/app/main/ui/workspace/viewport.cljs index 670bd2c4cd..789df3efc6 100644 --- a/frontend/src/app/main/ui/workspace/viewport.cljs +++ b/frontend/src/app/main/ui/workspace/viewport.cljs @@ -5,6 +5,7 @@ ;; Copyright (c) KALEIDOS INC (ns app.main.ui.workspace.viewport + (:require-macros [app.main.style :as stl]) (:require [app.common.colors :as clr] [app.common.data :as d] @@ -276,9 +277,9 @@ (hooks/setup-shortcuts node-editing? drawing-path? text-editing? grid-editing?) (hooks/setup-active-frames base-objects hover-ids selected active-frames zoom transform vbox) - [:div.viewport {:style #js {"--zoom" zoom} :data-testid "viewport"} + [:div {:class (stl/css :viewport) :style #js {"--zoom" zoom} :data-testid "viewport"} [:& top-bar/top-bar {:layout layout}] - [:div.viewport-overlays + [:div {:class (stl/css :viewport-overlays)} ;; The behaviour inside a foreign object is a bit different that in plain HTML so we wrap ;; inside a foreign object "dummy" so this awkward behaviour is take into account [:svg {:style {:top 0 :left 0 :position "fixed" :width "100%" :height "100%" :opacity (when-not (dbg/enabled? :html-text) 0)}} @@ -308,8 +309,9 @@ :layout layout :viewport-ref viewport-ref}])] - [:svg.render-shapes + [:svg {:id "render" + :class (stl/css :render-shapes) :xmlns "http://www.w3.org/2000/svg" :xmlnsXlink "http://www.w3.org/1999/xlink" :xmlns:penpot "https://penpot.app/xmlns" @@ -359,7 +361,7 @@ :key (str "viewport" page-id) :view-box (utils/format-viewbox vbox) :ref on-viewport-ref - :class (dm/str @cursor (when drawing-tool " drawing")) + :class (dm/str @cursor (when drawing-tool " drawing") " " (stl/css :viewport-controls)) :style {:touch-action "none"} :fill "none" diff --git a/frontend/src/app/main/ui/workspace/viewport.scss b/frontend/src/app/main/ui/workspace/viewport.scss new file mode 100644 index 0000000000..647ce88a4b --- /dev/null +++ b/frontend/src/app/main/ui/workspace/viewport.scss @@ -0,0 +1,49 @@ +// This Source Code Form is subject to the terms of the Mozilla Public +// License, v. 2.0. If a copy of the MPL was not distributed with this +// file, You can obtain one at http://mozilla.org/MPL/2.0/. +// +// Copyright (c) KALEIDOS INC + +@use "common/refactor/common-refactor.scss" as *; + +.viewport { + cursor: none; + grid-column: 1 / span 2; + grid-row: 1 / span 2; + overflow: hidden; + position: relative; +} + +.viewport-controls { + position: absolute; + width: 100%; + height: 100%; +} + +.render-shapes { + height: 100%; + position: absolute; + width: 100%; +} + +.viewport-overlays { + cursor: initial; + overflow: hidden; + pointer-events: none; + position: absolute; + top: 0; + left: 0; + bottom: 0; + right: 0; + z-index: 10; + + .pixel-overlay { + left: 0; + pointer-events: initial; + position: absolute; + top: 0; + right: 0; + bottom: 0; + z-index: 1; + } +} diff --git a/frontend/src/app/main/ui/workspace/viewport/presence.cljs b/frontend/src/app/main/ui/workspace/viewport/presence.cljs index e5d019464f..f2909b239e 100644 --- a/frontend/src/app/main/ui/workspace/viewport/presence.cljs +++ b/frontend/src/app/main/ui/workspace/viewport/presence.cljs @@ -5,6 +5,7 @@ ;; Copyright (c) KALEIDOS INC (ns app.main.ui.workspace.viewport.presence + (:require-macros [app.main.style :as stl]) (:require [app.common.data.macros :as dm] [app.main.refs :as refs] @@ -40,15 +41,15 @@ (dm/str (str/slice fullname 0 12) "...") fullname)] - [:g.multiuser-cursor {:transform transform} + [:g {:class (stl/css :multiuser-cursor) :transform transform} [:path {:fill bg-color :d pointer-path}] [:g {:transform "translate(17 -10)"} [:foreignObject {:x -0.3 :y -12.5 :width 300 :height 120} - [:div.profile-name {:style {:background-color bg-color - :color fg-color}} + [:div {:class (stl/css :profile-name) + :style {:background-color bg-color :color fg-color}} fullname]]]])) (mf/defc active-cursors @@ -74,8 +75,3 @@ :zoom zoom :profile (get users (:profile-id session)) :key (dm/str (:id session))}]))) - - - - - diff --git a/frontend/src/app/main/ui/workspace/viewport/presence.scss b/frontend/src/app/main/ui/workspace/viewport/presence.scss new file mode 100644 index 0000000000..26e607a995 --- /dev/null +++ b/frontend/src/app/main/ui/workspace/viewport/presence.scss @@ -0,0 +1,18 @@ +@use "refactor/common-refactor.scss" as *; + +.profile-name { + width: fit-content; + font-family: worksans; + padding: 2px 12px; + border-radius: $br-4; + display: flex; + align-items: center; + height: 20px; + font-size: $fs-12; + line-height: $lh-150; +} + +.multiuser-cursor { + z-index: 10000; + pointer-events: none; +} From 7facd69039d21edb577f70fafc9d57f88c0ab2cf Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Thu, 27 Jun 2024 16:10:04 +0200 Subject: [PATCH 282/476] :bug: Set correct order of execution for logged-out event --- frontend/src/app/main/data/users.cljs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/src/app/main/data/users.cljs b/frontend/src/app/main/data/users.cljs index d3e2592d21..8ba0f7547c 100644 --- a/frontend/src/app/main/data/users.cljs +++ b/frontend/src/app/main/data/users.cljs @@ -569,8 +569,8 @@ on-success identity}} (meta params)] (->> (rp/cmd! :delete-profile {}) (rx/tap on-success) - (rx/catch on-error) (rx/map logged-out) + (rx/catch on-error) (rx/delay-at-least 300)))))) ;; --- EVENT: request-profile-recovery From f364666d48896cec4d8d7090383d47f6756764ef Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Thu, 27 Jun 2024 16:10:26 +0200 Subject: [PATCH 283/476] :bug: Fix error handling on verify-token page --- .../src/app/main/ui/auth/verify_token.cljs | 37 ++++++++++--------- 1 file changed, 19 insertions(+), 18 deletions(-) diff --git a/frontend/src/app/main/ui/auth/verify_token.cljs b/frontend/src/app/main/ui/auth/verify_token.cljs index a914bd46a2..c2925b429c 100644 --- a/frontend/src/app/main/ui/auth/verify_token.cljs +++ b/frontend/src/app/main/ui/auth/verify_token.cljs @@ -70,27 +70,28 @@ (rx/subs! (fn [tdata] (handle-token tdata)) - (fn [{:keys [type code] :as error}] - (cond - (or (= :validation type) - (= :invalid-token code) - (= :token-expired (:reason error))) - (reset! bad-token true) + (fn [cause] + (let [{:keys [type code] :as error} (ex-data cause)] + (cond + (or (= :validation type) + (= :invalid-token code) + (= :token-expired (:reason error))) + (reset! bad-token true) - (= :email-already-exists code) - (let [msg (tr "errors.email-already-exists")] - (ts/schedule 100 #(st/emit! (msg/error msg))) - (st/emit! (rt/nav :auth-login))) + (= :email-already-exists code) + (let [msg (tr "errors.email-already-exists")] + (ts/schedule 100 #(st/emit! (msg/error msg))) + (st/emit! (rt/nav :auth-login))) - (= :email-already-validated code) - (let [msg (tr "errors.email-already-validated")] - (ts/schedule 100 #(st/emit! (msg/warn msg))) - (st/emit! (rt/nav :auth-login))) + (= :email-already-validated code) + (let [msg (tr "errors.email-already-validated")] + (ts/schedule 100 #(st/emit! (msg/warn msg))) + (st/emit! (rt/nav :auth-login))) - :else - (let [msg (tr "errors.generic")] - (ts/schedule 100 #(st/emit! (msg/error msg))) - (st/emit! (rt/nav :auth-login)))))))) + :else + (let [msg (tr "errors.generic")] + (ts/schedule 100 #(st/emit! (msg/error msg))) + (st/emit! (rt/nav :auth-login))))))))) (if @bad-token [:> static/invalid-token {}] From c45a105186df74cc214f92f7ab609d0fda8fe602 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Thu, 27 Jun 2024 16:10:04 +0200 Subject: [PATCH 284/476] :bug: Set correct order of execution for logged-out event --- frontend/src/app/main/data/users.cljs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/src/app/main/data/users.cljs b/frontend/src/app/main/data/users.cljs index d84da5e526..7879ed6034 100644 --- a/frontend/src/app/main/data/users.cljs +++ b/frontend/src/app/main/data/users.cljs @@ -537,8 +537,8 @@ on-success identity}} (meta params)] (->> (rp/cmd! :delete-profile {}) (rx/tap on-success) - (rx/catch on-error) (rx/map logged-out) + (rx/catch on-error) (rx/delay-at-least 300)))))) ;; --- EVENT: request-profile-recovery From 56160cf64d1568098c0a35f3107ef82703b5525e Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Thu, 27 Jun 2024 16:10:26 +0200 Subject: [PATCH 285/476] :bug: Fix error handling on verify-token page --- .../src/app/main/ui/auth/verify_token.cljs | 37 ++++++++++--------- 1 file changed, 19 insertions(+), 18 deletions(-) diff --git a/frontend/src/app/main/ui/auth/verify_token.cljs b/frontend/src/app/main/ui/auth/verify_token.cljs index a914bd46a2..c2925b429c 100644 --- a/frontend/src/app/main/ui/auth/verify_token.cljs +++ b/frontend/src/app/main/ui/auth/verify_token.cljs @@ -70,27 +70,28 @@ (rx/subs! (fn [tdata] (handle-token tdata)) - (fn [{:keys [type code] :as error}] - (cond - (or (= :validation type) - (= :invalid-token code) - (= :token-expired (:reason error))) - (reset! bad-token true) + (fn [cause] + (let [{:keys [type code] :as error} (ex-data cause)] + (cond + (or (= :validation type) + (= :invalid-token code) + (= :token-expired (:reason error))) + (reset! bad-token true) - (= :email-already-exists code) - (let [msg (tr "errors.email-already-exists")] - (ts/schedule 100 #(st/emit! (msg/error msg))) - (st/emit! (rt/nav :auth-login))) + (= :email-already-exists code) + (let [msg (tr "errors.email-already-exists")] + (ts/schedule 100 #(st/emit! (msg/error msg))) + (st/emit! (rt/nav :auth-login))) - (= :email-already-validated code) - (let [msg (tr "errors.email-already-validated")] - (ts/schedule 100 #(st/emit! (msg/warn msg))) - (st/emit! (rt/nav :auth-login))) + (= :email-already-validated code) + (let [msg (tr "errors.email-already-validated")] + (ts/schedule 100 #(st/emit! (msg/warn msg))) + (st/emit! (rt/nav :auth-login))) - :else - (let [msg (tr "errors.generic")] - (ts/schedule 100 #(st/emit! (msg/error msg))) - (st/emit! (rt/nav :auth-login)))))))) + :else + (let [msg (tr "errors.generic")] + (ts/schedule 100 #(st/emit! (msg/error msg))) + (st/emit! (rt/nav :auth-login))))))))) (if @bad-token [:> static/invalid-token {}] From f6b367cdcafe20fa717add48ff6dba9a40bcd1bc Mon Sep 17 00:00:00 2001 From: Alejandro Alonso Date: Thu, 27 Jun 2024 13:44:24 +0200 Subject: [PATCH 286/476] :sparkles: Add extra events info to track teams and invitations --- backend/src/app/rpc/commands/teams.clj | 1 - backend/src/app/rpc/commands/verify_token.clj | 23 ++++++++++++------- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/backend/src/app/rpc/commands/teams.clj b/backend/src/app/rpc/commands/teams.clj index 4730ee06ef..b7a73213d9 100644 --- a/backend/src/app/rpc/commands/teams.clj +++ b/backend/src/app/rpc/commands/teams.clj @@ -867,7 +867,6 @@ :invitations invitations} {::audit/props {:invitations (count invitations)}}))))) - ;; --- Mutation: Create Team & Invite Members (def ^:private schema:create-team-with-invitations diff --git a/backend/src/app/rpc/commands/verify_token.clj b/backend/src/app/rpc/commands/verify_token.clj index e2641df230..1fc83bc85e 100644 --- a/backend/src/app/rpc/commands/verify_token.clj +++ b/backend/src/app/rpc/commands/verify_token.clj @@ -147,7 +147,7 @@ (defmethod process-token :team-invitation [{:keys [conn] :as cfg} - {:keys [::rpc/profile-id token]} + {:keys [::rpc/profile-id token] :as params} {:keys [member-id team-id member-email] :as claims}] (us/verify! ::team-invitation-claims claims) @@ -169,13 +169,20 @@ ;; if we have logged-in user and it matches the invitation we proceed ;; with accepting the invitation and joining the current profile to the ;; invited team. - (let [profile (accept-invitation cfg claims invitation profile)] - (-> (assoc claims :state :created) - (rph/with-meta {::audit/name "accept-team-invitation" - ::audit/profile-id (:id profile) - ::audit/props {:team-id (:team-id claims) - :role (:role claims) - :invitation-id (:id invitation)}}))) + (let [context (audit/params->context params) + props {:team-id (:team-id claims) + :role (:role claims) + :invitation-id (:id invitation)}] + + (accept-invitation cfg claims invitation profile) + (audit/submit! cfg + {::audit/type "action" + ::audit/name "accept-team-invitation" + ::audit/profile-id profile-id + ::audit/props props + ::audit/context context}) + + (assoc claims :state :created)) (ex/raise :type :validation :code :invalid-token From c090a11e5b3b23f79f4a55a5a311462de0d0e4c5 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Fri, 28 Jun 2024 09:04:35 +0200 Subject: [PATCH 287/476] :sparkles: Normalize audit event origin tracking on frontend and backend --- backend/src/app/loggers/audit.clj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/src/app/loggers/audit.clj b/backend/src/app/loggers/audit.clj index 32cccb770c..b2b29170c8 100644 --- a/backend/src/app/loggers/audit.clj +++ b/backend/src/app/loggers/audit.clj @@ -91,7 +91,7 @@ [params] (d/without-nils {:external-session-id (::rpc/external-session-id params) - :triggered-by (::rpc/handler-name params)})) + :event-origin (::rpc/handler-name params)})) ;; --- SPECS From 43455843844976f732fe3d86ea35d67127802c08 Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Fri, 28 Jun 2024 14:52:26 +0200 Subject: [PATCH 288/476] :bug: Fix problem with recursive properties --- frontend/src/app/plugins/library.cljs | 22 +++--- frontend/src/app/plugins/shape.cljs | 96 +++++++++++---------------- 2 files changed, 50 insertions(+), 68 deletions(-) diff --git a/frontend/src/app/plugins/library.cljs b/frontend/src/app/plugins/library.cljs index 227ca3eb56..6c46530eb6 100644 --- a/frontend/src/app/plugins/library.cljs +++ b/frontend/src/app/plugins/library.cljs @@ -594,7 +594,15 @@ :else (let [component (u/proxy->library-component self)] - (apply array (keys (dm/get-in component [:plugin-data (keyword "shared" namespace)]))))))) + (apply array (keys (dm/get-in component [:plugin-data (keyword "shared" namespace)])))))) + + (mainInstance + [self] + (let [file (u/locate-file $file) + component (u/proxy->library-component self) + root (ctf/get-component-root (:data file) component)] + (when (some? root) + (shape/shape-proxy $plugin $file (:main-instance-page component) (:id root)))))) (defn lib-component-proxy? [p] (instance? LibraryComponentProxy p)) @@ -635,17 +643,7 @@ :else (let [component (u/proxy->library-component self) value (dm/str value " / " (:name component))] - (st/emit! (dwl/rename-component id value)))))} - - {:name "mainInstance" - :get - (fn [self] - (let [file-id (obj/get self "$file") - file (u/locate-file file-id) - component (u/proxy->library-component self) - root (ctf/get-component-root (:data file) component)] - (when (some? root) - (shape/shape-proxy plugin-id file-id (:main-instance-page component) (:id root)))))})) + (st/emit! (dwl/rename-component id value)))))})) (set! shape/lib-component-proxy lib-component-proxy) diff --git a/frontend/src/app/plugins/shape.cljs b/frontend/src/app/plugins/shape.cljs index a51ae5e6e4..47312f0166 100644 --- a/frontend/src/app/plugins/shape.cljs +++ b/frontend/src/app/plugins/shape.cljs @@ -515,7 +515,44 @@ (isComponentHead [self] (let [shape (u/proxy->shape self)] - (ctk/instance-head? shape)))) + (ctk/instance-head? shape))) + + (componentRefShape + [self] + (let [objects (u/locate-objects $file $page) + shape (u/proxy->shape self)] + (when (ctn/in-any-component? objects shape) + (let [plugin-id (obj/get self "$plugin") + [root component] (u/locate-component objects shape) + component-page-id (:main-instance-page component) + component-file (u/locate-file (:component-file root)) + ref-shape (ctf/get-ref-shape (:data component-file) component shape)] + (when (and (not (:deleted component)) (some? ref-shape) (some? component-file)) + (shape-proxy plugin-id (:id component-file) component-page-id (:id ref-shape))))))) + + (componentRoot + [self] + (let [objects (u/locate-objects $file $page) + shape (u/proxy->shape self)] + (when (ctn/in-any-component? objects shape) + (let [[root component] (u/locate-component objects shape)] + (shape-proxy $plugin (:component-file root) (:main-instance-page component) (:id root)))))) + + (componentHead + [self] + (let [objects (u/locate-objects $file $page) + shape (u/proxy->shape self)] + (when (ctn/in-any-component? objects shape) + (let [head (ctn/get-head-shape (u/locate-objects $file $page) shape)] + (shape-proxy $plugin $file $page (:id head)))))) + + (component + [self] + (let [objects (u/locate-objects $file $page) + shape (u/proxy->shape self)] + (when (ctn/in-any-component? objects shape) + (let [[root component] (u/locate-component objects shape)] + (lib-component-proxy $plugin (:component-file root) (:id component))))))) (crc/define-properties! ShapeProxy @@ -553,7 +590,7 @@ :get #(-> % u/proxy->shape :id str)} {:name "type" - :get #(-> % u/proxy->shape :type name)} + :get #(-> % u/proxy->shape :type d/name)} {:name "name" :get #(-> % u/proxy->shape :name) @@ -1000,60 +1037,7 @@ id (obj/get self "$id") objects (u/locate-objects file-id page-id)] (when (ctl/grid-layout-immediate-child-id? objects id) - (grid/layout-cell-proxy plugin-id file-id page-id id))))} - - ;; Components - {:name "componentRefShape" - :get - (fn [self] - (let [file-id (obj/get self "$file") - page-id (obj/get self "$page") - objects (u/locate-objects file-id page-id) - shape (u/proxy->shape self)] - (when (ctn/in-any-component? objects shape) - (let [plugin-id (obj/get self "$plugin") - [root component] (u/locate-component objects shape) - component-page-id (:main-instance-page component) - component-file (u/locate-file (:component-file root)) - ref-shape (ctf/get-ref-shape (:data component-file) component shape)] - (when (and (not (:deleted component)) (some? ref-shape) (some? component-file)) - (shape-proxy plugin-id (:id component-file) component-page-id (:id ref-shape)))))))} - - {:name "componentRoot" - :get - (fn [self] - (let [file-id (obj/get self "$file") - page-id (obj/get self "$page") - objects (u/locate-objects file-id page-id) - shape (u/proxy->shape self)] - (when (ctn/in-any-component? objects shape) - (let [plugin-id (obj/get self "$plugin") - [root component] (u/locate-component objects shape)] - (shape-proxy plugin-id (:component-file root) (:main-instance-page component) (:id root))))))} - - {:name "componentHead" - :get - (fn [self] - (let [file-id (obj/get self "$file") - objects (u/locate-objects file-id page-id) - shape (u/proxy->shape self)] - (when (ctn/in-any-component? objects shape) - (let [plugin-id (obj/get self "$plugin") - page-id (obj/get self "$page") - head (ctn/get-head-shape (u/locate-objects file-id page-id) shape)] - (shape-proxy plugin-id file-id page-id (:id head))))))} - - {:name "component" - :get - (fn [self] - (let [file-id (obj/get self "$file") - page-id (obj/get self "$page") - objects (u/locate-objects file-id page-id) - shape (u/proxy->shape self)] - (when (ctn/in-any-component? objects shape) - (let [plugin-id (obj/get self "$plugin") - [root component] (u/locate-component objects shape)] - (lib-component-proxy plugin-id (:component-file root) (:id component))))))}) + (grid/layout-cell-proxy plugin-id file-id page-id id))))}) (cond-> (or (cfh/frame-shape? data) (cfh/group-shape? data) (cfh/svg-raw-shape? data) (cfh/bool-shape? data)) (crc/add-properties! From e1dc964c4ce2ec55775a8f38c6f6de7dd30e9bc8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bel=C3=A9n=20Albeza?= Date: Fri, 28 Jun 2024 10:04:04 +0200 Subject: [PATCH 289/476] :sparkles: Upgrade prettier and use specific settings for scss files only --- frontend/.prettierrc | 2 -- frontend/.prettierrc.json | 11 +++++++++++ frontend/package.json | 2 +- frontend/yarn.lock | 20 ++++++++++---------- 4 files changed, 22 insertions(+), 13 deletions(-) delete mode 100644 frontend/.prettierrc create mode 100644 frontend/.prettierrc.json diff --git a/frontend/.prettierrc b/frontend/.prettierrc deleted file mode 100644 index eb8da3b690..0000000000 --- a/frontend/.prettierrc +++ /dev/null @@ -1,2 +0,0 @@ ---- -printWidth: 110 \ No newline at end of file diff --git a/frontend/.prettierrc.json b/frontend/.prettierrc.json new file mode 100644 index 0000000000..f6769669c4 --- /dev/null +++ b/frontend/.prettierrc.json @@ -0,0 +1,11 @@ +{ + "overrides": [ + { + "files": "*.scss", + "options": { + "printWidth": 110 + } + } + ] +} + diff --git a/frontend/package.json b/frontend/package.json index 57df55eda4..ed9ef3bcca 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -73,7 +73,7 @@ "p-limit": "^5.0.0", "postcss": "^8.4.38", "postcss-clean": "^1.2.2", - "prettier": "^3.2.5", + "prettier": "3.3.2", "pretty-time": "^1.1.0", "prop-types": "^15.8.1", "rimraf": "^5.0.7", diff --git a/frontend/yarn.lock b/frontend/yarn.lock index d96dca56af..36f2b0f365 100644 --- a/frontend/yarn.lock +++ b/frontend/yarn.lock @@ -7950,7 +7950,7 @@ __metadata: postcss: "npm:^8.4.38" postcss-clean: "npm:^1.2.2" postcss-modules: "npm:^6.0.0" - prettier: "npm:^3.2.5" + prettier: "npm:3.3.2" pretty-time: "npm:^1.1.0" prop-types: "npm:^15.8.1" randomcolor: "npm:^0.6.2" @@ -12093,6 +12093,15 @@ __metadata: languageName: node linkType: hard +"prettier@npm:3.3.2": + version: 3.3.2 + resolution: "prettier@npm:3.3.2" + bin: + prettier: bin/prettier.cjs + checksum: 10c0/39ed27d17f0238da6dd6571d63026566bd790d3d0edac57c285fbab525982060c8f1e01955fe38134ab10f0951a6076da37f015db8173c02f14bc7f0803a384c + languageName: node + linkType: hard + "prettier@npm:^2.8.0": version: 2.8.8 resolution: "prettier@npm:2.8.8" @@ -12102,15 +12111,6 @@ __metadata: languageName: node linkType: hard -"prettier@npm:^3.2.5": - version: 3.2.5 - resolution: "prettier@npm:3.2.5" - bin: - prettier: bin/prettier.cjs - checksum: 10c0/ea327f37a7d46f2324a34ad35292af2ad4c4c3c3355da07313339d7e554320f66f65f91e856add8530157a733c6c4a897dc41b577056be5c24c40f739f5ee8c6 - languageName: node - linkType: hard - "pretty-format@npm:^27.0.2": version: 27.5.1 resolution: "pretty-format@npm:27.5.1" From 3efd5cb9e892f6c6a06c3248e55d63975d924d34 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bel=C3=A9n=20Albeza?= Date: Fri, 28 Jun 2024 10:41:48 +0200 Subject: [PATCH 290/476] :sparkles: Add prettier JS commands to package.json --- frontend/package.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/frontend/package.json b/frontend/package.json index ed9ef3bcca..e716c82fb9 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -19,6 +19,8 @@ "scripts": { "fmt:clj:check": "cljfmt check --parallel=false src/ test/", "fmt:clj": "cljfmt fix --parallel=true src/ test/", + "fmt:js:check": "yarn run prettier -c src/**/*.stories.jsx -c playwright/**/*.js -c scripts/**/*.js", + "fmt:js": "yarn run prettier -c src/**/*.stories.jsx -c playwright/**/*.js -c scripts/**/*.js -w", "lint:scss": "yarn run prettier -c resources/styles -c src/**/*.scss", "lint:scss:fix": "yarn run prettier -c resources/styles -c src/**/*.scss -w", "lint:clj": "clj-kondo --parallel --lint src/", From ecbedf847f8728c52f47cd59ffdfbc528d91bc98 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bel=C3=A9n=20Albeza?= Date: Mon, 1 Jul 2024 10:28:40 +0200 Subject: [PATCH 291/476] :lipstick: Reformat affected JS files --- .../playwright/helpers/MockWebSocketHelper.js | 17 ++- frontend/playwright/scripts/MockWebSocket.js | 20 ++- frontend/playwright/ui/pages/BasePage.js | 4 +- frontend/playwright/ui/pages/DashboardPage.js | 135 ++++++++++++++---- frontend/playwright/ui/pages/LoginPage.js | 49 +++++-- .../playwright/ui/pages/OnboardingPage.js | 28 ++-- frontend/playwright/ui/pages/ViewerPage.js | 67 ++++++--- frontend/playwright/ui/pages/WorkspacePage.js | 105 ++++++++++---- .../playwright/ui/specs/colorpicker.spec.js | 4 +- .../playwright/ui/specs/dashboard.spec.js | 14 +- .../playwright/ui/specs/design-tab.spec.js | 35 +++-- frontend/playwright/ui/specs/login.spec.js | 17 ++- .../playwright/ui/specs/onboarding.spec.js | 29 ++-- frontend/playwright/ui/specs/sidebar.spec.js | 31 +++- .../ui/specs/viewer-comments.spec.js | 14 +- .../playwright/ui/specs/viewer-header.spec.js | 5 +- .../playwright/ui/specs/workspace.spec.js | 90 +++++++++--- .../ui/visual-specs/visual-dashboard.spec.js | 14 +- .../ui/visual-specs/visual-viewer.spec.js | 52 +++++-- .../ui/visual-specs/workspace.spec.js | 36 +++-- frontend/scripts/_helpers.js | 41 ++++-- frontend/scripts/_worker.js | 34 +++-- frontend/scripts/compile.js | 4 +- frontend/scripts/e2e-server.js | 5 +- frontend/scripts/find-unused-translations.js | 95 ++++++------ frontend/scripts/validate-translations.js | 16 +-- frontend/scripts/watch.js | 36 ++--- .../buttons/simple_button.stories.jsx | 8 +- 28 files changed, 720 insertions(+), 285 deletions(-) diff --git a/frontend/playwright/helpers/MockWebSocketHelper.js b/frontend/playwright/helpers/MockWebSocketHelper.js index 42d06d5eba..8cf63f9737 100644 --- a/frontend/playwright/helpers/MockWebSocketHelper.js +++ b/frontend/playwright/helpers/MockWebSocketHelper.js @@ -14,12 +14,17 @@ export class MockWebSocketHelper extends EventTarget { } this.#mocks.get(url).dispatchEvent(new MessageEvent("message", { data })); }); - await page.exposeFunction("onMockWebSocketSpyClose", (url, code, reason) => { - if (!this.#mocks.has(url)) { - throw new Error(`WebSocket with URL ${url} not found`); - } - this.#mocks.get(url).dispatchEvent(new CloseEvent("close", { code, reason })); - }); + await page.exposeFunction( + "onMockWebSocketSpyClose", + (url, code, reason) => { + if (!this.#mocks.has(url)) { + throw new Error(`WebSocket with URL ${url} not found`); + } + this.#mocks + .get(url) + .dispatchEvent(new CloseEvent("close", { code, reason })); + }, + ); await page.addInitScript({ path: "playwright/scripts/MockWebSocket.js" }); } diff --git a/frontend/playwright/scripts/MockWebSocket.js b/frontend/playwright/scripts/MockWebSocket.js index aa54067da3..a401e6552f 100644 --- a/frontend/playwright/scripts/MockWebSocket.js +++ b/frontend/playwright/scripts/MockWebSocket.js @@ -188,13 +188,18 @@ window.WebSocket = class MockWebSocket extends EventTarget { mockClose(code, reason) { this.#readyState = MockWebSocket.CLOSED; - this.dispatchEvent(new CloseEvent("close", { code: code || 1000, reason: reason || "" })); + this.dispatchEvent( + new CloseEvent("close", { code: code || 1000, reason: reason || "" }), + ); return this; } send(data) { if (this.#readyState === MockWebSocket.CONNECTING) { - throw new DOMException("InvalidStateError", "MockWebSocket is not connected"); + throw new DOMException( + "InvalidStateError", + "MockWebSocket is not connected", + ); } if (this.#spyMessage) { @@ -203,7 +208,12 @@ window.WebSocket = class MockWebSocket extends EventTarget { } close(code, reason) { - if (code && !Number.isInteger(code) && code !== 1000 && (code < 3000 || code > 4999)) { + if ( + code && + !Number.isInteger(code) && + code !== 1000 && + (code < 3000 || code > 4999) + ) { throw new DOMException("InvalidAccessError", "Invalid code"); } @@ -214,7 +224,9 @@ window.WebSocket = class MockWebSocket extends EventTarget { } } - if ([MockWebSocket.CLOSED, MockWebSocket.CLOSING].includes(this.#readyState)) { + if ( + [MockWebSocket.CLOSED, MockWebSocket.CLOSING].includes(this.#readyState) + ) { return; } diff --git a/frontend/playwright/ui/pages/BasePage.js b/frontend/playwright/ui/pages/BasePage.js index 076bf13f68..b233be0604 100644 --- a/frontend/playwright/ui/pages/BasePage.js +++ b/frontend/playwright/ui/pages/BasePage.js @@ -4,7 +4,9 @@ export class BasePage { throw new TypeError("Invalid page argument. Must be a Playwright page."); } if (typeof path !== "string" && !(path instanceof RegExp)) { - throw new TypeError("Invalid path argument. Must be a string or a RegExp."); + throw new TypeError( + "Invalid path argument. Must be a string or a RegExp.", + ); } const url = typeof path === "string" ? `**/api/rpc/command/${path}` : path; diff --git a/frontend/playwright/ui/pages/DashboardPage.js b/frontend/playwright/ui/pages/DashboardPage.js index 0c9bff0e99..6d340c62e9 100644 --- a/frontend/playwright/ui/pages/DashboardPage.js +++ b/frontend/playwright/ui/pages/DashboardPage.js @@ -5,7 +5,11 @@ export class DashboardPage extends BaseWebSocketPage { static async init(page) { await BaseWebSocketPage.initWebSockets(page); - await BaseWebSocketPage.mockRPC(page, "get-teams", "logged-in-user/get-teams-default.json"); + await BaseWebSocketPage.mockRPC( + page, + "get-teams", + "logged-in-user/get-teams-default.json", + ); await BaseWebSocketPage.mockRPC( page, "get-font-variants?team-id=*", @@ -58,7 +62,9 @@ export class DashboardPage extends BaseWebSocketPage { this.sidebar = page.getByTestId("dashboard-sidebar"); this.sidebarMenu = this.sidebar.getByRole("menu"); - this.mainHeading = page.getByTestId("dashboard-header").getByRole("heading", { level: 1 }); + this.mainHeading = page + .getByTestId("dashboard-header") + .getByRole("heading", { level: 1 }); this.addProjectButton = page.getByRole("button", { name: "+ NEW PROJECT" }); this.projectName = page.getByText("Project 1"); @@ -70,13 +76,20 @@ export class DashboardPage extends BaseWebSocketPage { this.searchButton = page.getByRole("button", { name: "dashboard-search" }); this.searchInput = page.getByPlaceholder("Search…"); - this.teamDropdown = this.sidebar.getByRole("button", { name: "Your Penpot" }); - this.userAccount = this.sidebar.getByRole("button", { name: /Princesa Leia/ }); + this.teamDropdown = this.sidebar.getByRole("button", { + name: "Your Penpot", + }); + this.userAccount = this.sidebar.getByRole("button", { + name: /Princesa Leia/, + }); this.userProfileOption = this.sidebarMenu.getByText("Your account"); } async setupDraftsEmpty() { - await this.mockRPC("get-project-files?project-id=*", "dashboard/get-project-files-empty.json"); + await this.mockRPC( + "get-project-files?project-id=*", + "dashboard/get-project-files-empty.json", + ); } async setupSearchEmpty() { @@ -86,36 +99,74 @@ export class DashboardPage extends BaseWebSocketPage { } async setupLibrariesEmpty() { - await this.mockRPC("get-team-shared-files?team-id=*", "dashboard/get-shared-files-empty.json"); + await this.mockRPC( + "get-team-shared-files?team-id=*", + "dashboard/get-shared-files-empty.json", + ); } async setupDrafts() { - await this.mockRPC("get-project-files?project-id=*", "dashboard/get-project-files.json"); + await this.mockRPC( + "get-project-files?project-id=*", + "dashboard/get-project-files.json", + ); } async setupNewProject() { - await this.mockRPC("create-project", "dashboard/create-project.json", { method: "POST" }); - await this.mockRPC("get-projects?team-id=*", "dashboard/get-projects-new.json"); + await this.mockRPC("create-project", "dashboard/create-project.json", { + method: "POST", + }); + await this.mockRPC( + "get-projects?team-id=*", + "dashboard/get-projects-new.json", + ); } async setupDashboardFull() { - await this.mockRPC("get-projects?team-id=*", "dashboard/get-projects-full.json"); - await this.mockRPC("get-project-files?project-id=*", "dashboard/get-project-files.json"); - await this.mockRPC("get-team-shared-files?team-id=*", "dashboard/get-shared-files.json"); - await this.mockRPC("get-team-shared-files?project-id=*", "dashboard/get-shared-files.json"); - await this.mockRPC("get-team-recent-files?team-id=*", "dashboard/get-team-recent-files.json"); - await this.mockRPC("get-font-variants?team-id=*", "dashboard/get-font-variants.json"); - await this.mockRPC("search-files", "dashboard/search-files.json", { method: "POST" }); + await this.mockRPC( + "get-projects?team-id=*", + "dashboard/get-projects-full.json", + ); + await this.mockRPC( + "get-project-files?project-id=*", + "dashboard/get-project-files.json", + ); + await this.mockRPC( + "get-team-shared-files?team-id=*", + "dashboard/get-shared-files.json", + ); + await this.mockRPC( + "get-team-shared-files?project-id=*", + "dashboard/get-shared-files.json", + ); + await this.mockRPC( + "get-team-recent-files?team-id=*", + "dashboard/get-team-recent-files.json", + ); + await this.mockRPC( + "get-font-variants?team-id=*", + "dashboard/get-font-variants.json", + ); + await this.mockRPC("search-files", "dashboard/search-files.json", { + method: "POST", + }); await this.mockRPC("search-files", "dashboard/search-files.json"); await this.mockRPC("get-teams", "logged-in-user/get-teams-complete.json"); } async setupAccessTokensEmpty() { - await this.mockRPC("get-access-tokens", "dashboard/get-access-tokens-empty.json"); + await this.mockRPC( + "get-access-tokens", + "dashboard/get-access-tokens-empty.json", + ); } async createAccessToken() { - await this.mockRPC("create-access-token", "dashboard/create-access-token.json", { method: "POST" }); + await this.mockRPC( + "create-access-token", + "dashboard/create-access-token.json", + { method: "POST" }, + ); } async setupAccessTokens() { @@ -123,15 +174,24 @@ export class DashboardPage extends BaseWebSocketPage { } async setupTeamInvitationsEmpty() { - await this.mockRPC("get-team-invitations?team-id=*", "dashboard/get-team-invitations-empty.json"); + await this.mockRPC( + "get-team-invitations?team-id=*", + "dashboard/get-team-invitations-empty.json", + ); } async setupTeamInvitations() { - await this.mockRPC("get-team-invitations?team-id=*", "dashboard/get-team-invitations.json"); + await this.mockRPC( + "get-team-invitations?team-id=*", + "dashboard/get-team-invitations.json", + ); } async setupTeamWebhooksEmpty() { - await this.mockRPC("get-webhooks?team-id=*", "dashboard/get-webhooks-empty.json"); + await this.mockRPC( + "get-webhooks?team-id=*", + "dashboard/get-webhooks-empty.json", + ); } async setupTeamWebhooks() { @@ -139,36 +199,53 @@ export class DashboardPage extends BaseWebSocketPage { } async setupTeamSettings() { - await this.mockRPC("get-team-stats?team-id=*", "dashboard/get-team-stats.json"); + await this.mockRPC( + "get-team-stats?team-id=*", + "dashboard/get-team-stats.json", + ); } async goToDashboard() { - await this.page.goto(`#/dashboard/team/${DashboardPage.anyTeamId}/projects`); + await this.page.goto( + `#/dashboard/team/${DashboardPage.anyTeamId}/projects`, + ); await expect(this.mainHeading).toBeVisible(); } async goToSecondTeamDashboard() { - await this.page.goto(`#/dashboard/team/${DashboardPage.secondTeamId}/projects`); + await this.page.goto( + `#/dashboard/team/${DashboardPage.secondTeamId}/projects`, + ); } async goToSecondTeamMembersSection() { - await this.page.goto(`#/dashboard/team/${DashboardPage.secondTeamId}/members`); + await this.page.goto( + `#/dashboard/team/${DashboardPage.secondTeamId}/members`, + ); } async goToSecondTeamInvitationsSection() { - await this.page.goto(`#/dashboard/team/${DashboardPage.secondTeamId}/invitations`); + await this.page.goto( + `#/dashboard/team/${DashboardPage.secondTeamId}/invitations`, + ); } async goToSecondTeamWebhooksSection() { - await this.page.goto(`#/dashboard/team/${DashboardPage.secondTeamId}/webhooks`); + await this.page.goto( + `#/dashboard/team/${DashboardPage.secondTeamId}/webhooks`, + ); } async goToSecondTeamWebhooksSection() { - await this.page.goto(`#/dashboard/team/${DashboardPage.secondTeamId}/webhooks`); + await this.page.goto( + `#/dashboard/team/${DashboardPage.secondTeamId}/webhooks`, + ); } async goToSecondTeamSettingsSection() { - await this.page.goto(`#/dashboard/team/${DashboardPage.secondTeamId}/settings`); + await this.page.goto( + `#/dashboard/team/${DashboardPage.secondTeamId}/settings`, + ); } async goToSearch() { diff --git a/frontend/playwright/ui/pages/LoginPage.js b/frontend/playwright/ui/pages/LoginPage.js index 9657197145..0ee5f863cb 100644 --- a/frontend/playwright/ui/pages/LoginPage.js +++ b/frontend/playwright/ui/pages/LoginPage.js @@ -6,9 +6,13 @@ export class LoginPage extends BasePage { this.loginButton = page.getByRole("button", { name: "Login" }); this.password = page.getByLabel("Password"); this.userName = page.getByLabel("Email"); - this.invalidCredentialsError = page.getByText("Email or password is incorrect"); + this.invalidCredentialsError = page.getByText( + "Email or password is incorrect", + ); this.invalidEmailError = page.getByText("Enter a valid email please"); - this.initialHeading = page.getByRole("heading", { name: "Log into my account" }); + this.initialHeading = page.getByRole("heading", { + name: "Log into my account", + }); } async fillEmailAndPasswordInputs(email, password) { @@ -25,17 +29,35 @@ export class LoginPage extends BasePage { } async setupLoggedInUser() { - await this.mockRPC("get-profile", "logged-in-user/get-profile-logged-in.json"); + await this.mockRPC( + "get-profile", + "logged-in-user/get-profile-logged-in.json", + ); await this.mockRPC("get-teams", "logged-in-user/get-teams-default.json"); - await this.mockRPC("get-font-variants?team-id=*", "logged-in-user/get-font-variants-empty.json"); - await this.mockRPC("get-projects?team-id=*", "logged-in-user/get-projects-default.json"); - await this.mockRPC("get-team-members?team-id=*", "logged-in-user/get-team-members-your-penpot.json"); - await this.mockRPC("get-team-users?team-id=*", "logged-in-user/get-team-users-single-user.json"); + await this.mockRPC( + "get-font-variants?team-id=*", + "logged-in-user/get-font-variants-empty.json", + ); + await this.mockRPC( + "get-projects?team-id=*", + "logged-in-user/get-projects-default.json", + ); + await this.mockRPC( + "get-team-members?team-id=*", + "logged-in-user/get-team-members-your-penpot.json", + ); + await this.mockRPC( + "get-team-users?team-id=*", + "logged-in-user/get-team-users-single-user.json", + ); await this.mockRPC( "get-unread-comment-threads?team-id=*", "logged-in-user/get-team-users-single-user.json", ); - await this.mockRPC("get-team-recent-files?team-id=*", "logged-in-user/get-team-recent-files-empty.json"); + await this.mockRPC( + "get-team-recent-files?team-id=*", + "logged-in-user/get-team-recent-files-empty.json", + ); await this.mockRPC( "get-profiles-for-file-comments", "logged-in-user/get-profiles-for-file-comments-empty.json", @@ -43,11 +65,18 @@ export class LoginPage extends BasePage { } async setupLoginSuccess() { - await this.mockRPC("login-with-password", "logged-in-user/login-with-password-success.json"); + await this.mockRPC( + "login-with-password", + "logged-in-user/login-with-password-success.json", + ); } async setupLoginError() { - await this.mockRPC("login-with-password", "login-with-password-error.json", { status: 400 }); + await this.mockRPC( + "login-with-password", + "login-with-password-error.json", + { status: 400 }, + ); } } diff --git a/frontend/playwright/ui/pages/OnboardingPage.js b/frontend/playwright/ui/pages/OnboardingPage.js index 0fe68e78a8..81e1995889 100644 --- a/frontend/playwright/ui/pages/OnboardingPage.js +++ b/frontend/playwright/ui/pages/OnboardingPage.js @@ -3,42 +3,42 @@ import { BaseWebSocketPage } from "./BaseWebSocketPage"; export class OnboardingPage extends BaseWebSocketPage { constructor(page) { super(page); - this.submitButton = page.getByRole("Button",{ name: "Next" }) + this.submitButton = page.getByRole("Button", { name: "Next" }); } async fillOnboardingInputsStep1() { - await this.page.getByText('Personal').click(); - await this.page.getByText('Select option').click(); - await this.page.getByText('Testing before self-hosting').click(); + await this.page.getByText("Personal").click(); + await this.page.getByText("Select option").click(); + await this.page.getByText("Testing before self-hosting").click(); await this.submitButton.click(); } async fillOnboardingInputsStep2() { - await this.page.getByText('Figma').click(); + await this.page.getByText("Figma").click(); await this.submitButton.click(); } async fillOnboardingInputsStep3() { - await this.page.getByText('Select option').first().click(); - await this.page.getByText('Product Managment').click(); - await this.page.getByText('Select option').first().click(); - await this.page.getByText('Director').click(); - await this.page.getByText('Select option').click(); - await this.page.getByText('11-30').click(); + await this.page.getByText("Select option").first().click(); + await this.page.getByText("Product Managment").click(); + await this.page.getByText("Select option").first().click(); + await this.page.getByText("Director").click(); + await this.page.getByText("Select option").click(); + await this.page.getByText("11-30").click(); await this.submitButton.click(); } async fillOnboardingInputsStep4() { - await this.page.getByText('Other').click(); - await this.page.getByPlaceholder('Other (specify)').fill("Another"); + await this.page.getByText("Other").click(); + await this.page.getByPlaceholder("Other (specify)").fill("Another"); await this.submitButton.click(); } async fillOnboardingInputsStep5() { - await this.page.getByText('Event').click(); + await this.page.getByText("Event").click(); } } diff --git a/frontend/playwright/ui/pages/ViewerPage.js b/frontend/playwright/ui/pages/ViewerPage.js index fa06226412..41fd45a238 100644 --- a/frontend/playwright/ui/pages/ViewerPage.js +++ b/frontend/playwright/ui/pages/ViewerPage.js @@ -15,12 +15,21 @@ export class ViewerPage extends BaseWebSocketPage { } async setupLoggedInUser() { - await this.mockRPC("get-profile", "logged-in-user/get-profile-logged-in.json"); + await this.mockRPC( + "get-profile", + "logged-in-user/get-profile-logged-in.json", + ); } async setupEmptyFile() { - await this.mockRPC(/get\-view\-only\-bundle\?/, "viewer/get-view-only-bundle-empty-file.json"); - await this.mockRPC("get-comment-threads?file-id=*", "workspace/get-comment-threads-empty.json"); + await this.mockRPC( + /get\-view\-only\-bundle\?/, + "viewer/get-view-only-bundle-empty-file.json", + ); + await this.mockRPC( + "get-comment-threads?file-id=*", + "workspace/get-comment-threads-empty.json", + ); await this.mockRPC( "get-file-fragment?file-id=*&fragment-id=*", "viewer/get-file-fragment-empty-file.json", @@ -28,24 +37,42 @@ export class ViewerPage extends BaseWebSocketPage { } async setupFileWithSingleBoard() { - await this.mockRPC(/get\-view\-only\-bundle\?/, "viewer/get-view-only-bundle-single-board.json"); - await this.mockRPC("get-comment-threads?file-id=*", "workspace/get-comment-threads-empty.json"); + await this.mockRPC( + /get\-view\-only\-bundle\?/, + "viewer/get-view-only-bundle-single-board.json", + ); + await this.mockRPC( + "get-comment-threads?file-id=*", + "workspace/get-comment-threads-empty.json", + ); await this.mockRPC( "get-file-fragment?file-id=*&fragment-id=*", "viewer/get-file-fragment-single-board.json", ); - }; + } async setupFileWithComments() { - await this.mockRPC(/get\-view\-only\-bundle\?/, "viewer/get-view-only-bundle-single-board.json"); - await this.mockRPC("get-comment-threads?file-id=*", "workspace/get-comment-threads-not-empty.json"); + await this.mockRPC( + /get\-view\-only\-bundle\?/, + "viewer/get-view-only-bundle-single-board.json", + ); + await this.mockRPC( + "get-comment-threads?file-id=*", + "workspace/get-comment-threads-not-empty.json", + ); await this.mockRPC( "get-file-fragment?file-id=*&fragment-id=*", "viewer/get-file-fragment-single-board.json", ); - await this.mockRPC("get-comments?thread-id=*", "workspace/get-thread-comments.json"); - await this.mockRPC("update-comment-thread-status", "workspace/update-comment-thread-status.json"); - }; + await this.mockRPC( + "get-comments?thread-id=*", + "workspace/get-thread-comments.json", + ); + await this.mockRPC( + "update-comment-thread-status", + "workspace/update-comment-thread-status.json", + ); + } #ws = null; @@ -53,8 +80,13 @@ export class ViewerPage extends BaseWebSocketPage { super(page); } - async goToViewer({ fileId = ViewerPage.anyFileId, pageId = ViewerPage.anyPageId } = {}) { - await this.page.goto(`/#/view/${fileId}?page-id=${pageId}§ion=interactions&index=0`); + async goToViewer({ + fileId = ViewerPage.anyFileId, + pageId = ViewerPage.anyPageId, + } = {}) { + await this.page.goto( + `/#/view/${fileId}?page-id=${pageId}§ion=interactions&index=0`, + ); this.#ws = await this.waitForNotificationsWebSocket(); await this.#ws.mockOpen(); @@ -72,15 +104,14 @@ export class ViewerPage extends BaseWebSocketPage { async showCommentsThread(number, clickOptions = {}) { await this.page - .getByTestId("floating-thread-bubble") - .filter({ hasText: number.toString() }) - .click(clickOptions); + .getByTestId("floating-thread-bubble") + .filter({ hasText: number.toString() }) + .click(clickOptions); } async showCode(clickOptions = {}) { await this.page - .getByRole("button", { name: 'Inspect (G I)' }) + .getByRole("button", { name: "Inspect (G I)" }) .click(clickOptions); } } - diff --git a/frontend/playwright/ui/pages/WorkspacePage.js b/frontend/playwright/ui/pages/WorkspacePage.js index 6e6c8b597e..76f0c05341 100644 --- a/frontend/playwright/ui/pages/WorkspacePage.js +++ b/frontend/playwright/ui/pages/WorkspacePage.js @@ -11,7 +11,11 @@ export class WorkspacePage extends BaseWebSocketPage { static async init(page) { await BaseWebSocketPage.initWebSockets(page); - await BaseWebSocketPage.mockRPC(page, "get-profile", "logged-in-user/get-profile-logged-in.json"); + await BaseWebSocketPage.mockRPC( + page, + "get-profile", + "logged-in-user/get-profile-logged-in.json", + ); await BaseWebSocketPage.mockRPC( page, "get-team-users?file-id=*", @@ -22,8 +26,16 @@ export class WorkspacePage extends BaseWebSocketPage { "get-comment-threads?file-id=*", "workspace/get-comment-threads-empty.json", ); - await BaseWebSocketPage.mockRPC(page, "get-project?id=*", "workspace/get-project-default.json"); - await BaseWebSocketPage.mockRPC(page, "get-team?id=*", "workspace/get-team-default.json"); + await BaseWebSocketPage.mockRPC( + page, + "get-project?id=*", + "workspace/get-project-default.json", + ); + await BaseWebSocketPage.mockRPC( + page, + "get-team?id=*", + "workspace/get-team-default.json", + ); await BaseWebSocketPage.mockRPC( page, "get-profiles-for-file-comments?file-id=*", @@ -40,12 +52,18 @@ export class WorkspacePage extends BaseWebSocketPage { constructor(page) { super(page); this.pageName = page.getByTestId("page-name"); - this.presentUserListItems = page.getByTestId("active-users-list").getByAltText("Princesa Leia"); + this.presentUserListItems = page + .getByTestId("active-users-list") + .getByAltText("Princesa Leia"); this.viewport = page.getByTestId("viewport"); - this.rootShape = page.locator(`[id="shape-00000000-0000-0000-0000-000000000000"]`); + this.rootShape = page.locator( + `[id="shape-00000000-0000-0000-0000-000000000000"]`, + ); this.toolbarOptions = page.getByTestId("toolbar-options"); this.rectShapeButton = page.getByRole("button", { name: "Rectangle (R)" }); - this.toggleToolbarButton = page.getByRole("button", { name: "Toggle toolbar" }); + this.toggleToolbarButton = page.getByRole("button", { + name: "Toggle toolbar", + }); this.colorpicker = page.getByTestId("colorpicker"); this.layers = page.getByTestId("layer-tree"); this.palette = page.getByTestId("palette"); @@ -54,11 +72,18 @@ export class WorkspacePage extends BaseWebSocketPage { this.selectionRect = page.getByTestId("workspace-selection-rect"); this.horizontalScrollbar = page.getByTestId("horizontal-scrollbar"); this.librariesModal = page.getByTestId("libraries-modal"); - this.togglePalettesVisibility = page.getByTestId("toggle-palettes-visibility"); + this.togglePalettesVisibility = page.getByTestId( + "toggle-palettes-visibility", + ); } - async goToWorkspace({ fileId = WorkspacePage.anyFileId, pageId = WorkspacePage.anyPageId } = {}) { - await this.page.goto(`/#/workspace/${WorkspacePage.anyProjectId}/${fileId}?page-id=${pageId}`); + async goToWorkspace({ + fileId = WorkspacePage.anyFileId, + pageId = WorkspacePage.anyPageId, + } = {}) { + await this.page.goto( + `/#/workspace/${WorkspacePage.anyProjectId}/${fileId}?page-id=${pageId}`, + ); this.#ws = await this.waitForNotificationsWebSocket(); await this.#ws.mockOpen(); @@ -79,10 +104,22 @@ export class WorkspacePage extends BaseWebSocketPage { } async setupEmptyFile() { - await this.mockRPC("get-profile", "logged-in-user/get-profile-logged-in.json"); - await this.mockRPC("get-team-users?file-id=*", "logged-in-user/get-team-users-single-user.json"); - await this.mockRPC("get-comment-threads?file-id=*", "workspace/get-comment-threads-empty.json"); - await this.mockRPC("get-project?id=*", "workspace/get-project-default.json"); + await this.mockRPC( + "get-profile", + "logged-in-user/get-profile-logged-in.json", + ); + await this.mockRPC( + "get-team-users?file-id=*", + "logged-in-user/get-team-users-single-user.json", + ); + await this.mockRPC( + "get-comment-threads?file-id=*", + "workspace/get-comment-threads-empty.json", + ); + await this.mockRPC( + "get-project?id=*", + "workspace/get-project-default.json", + ); await this.mockRPC("get-team?id=*", "workspace/get-team-default.json"); await this.mockRPC( "get-profiles-for-file-comments?file-id=*", @@ -93,9 +130,18 @@ export class WorkspacePage extends BaseWebSocketPage { "get-file-object-thumbnails?file-id=*", "workspace/get-file-object-thumbnails-blank.json", ); - await this.mockRPC("get-font-variants?team-id=*", "workspace/get-font-variants-empty.json"); - await this.mockRPC("get-file-fragment?file-id=*", "workspace/get-file-fragment-blank.json"); - await this.mockRPC("get-file-libraries?file-id=*", "workspace/get-file-libraries-empty.json"); + await this.mockRPC( + "get-font-variants?team-id=*", + "workspace/get-font-variants-empty.json", + ); + await this.mockRPC( + "get-file-fragment?file-id=*", + "workspace/get-file-fragment-blank.json", + ); + await this.mockRPC( + "get-file-libraries?file-id=*", + "workspace/get-file-libraries-empty.json", + ); } async clickWithDragViewportAt(x, y, width, height) { @@ -132,14 +178,18 @@ export class WorkspacePage extends BaseWebSocketPage { } async clickToggableLayer(name, clickOptions = {}) { - const layer = this.layers.getByTestId("layer-item").filter({ has: this.page.getByText(name) }); + const layer = this.layers + .getByTestId("layer-item") + .filter({ has: this.page.getByText(name) }); await layer.getByRole("button").click(clickOptions); } async expectSelectedLayer(name) { - await expect(this.layers.getByTestId("layer-row").filter({ has: this.page.getByText(name) })).toHaveClass( - /selected/, - ); + await expect( + this.layers + .getByTestId("layer-row") + .filter({ has: this.page.getByText(name) }), + ).toHaveClass(/selected/); } async expectHiddenToolbarOptions() { @@ -163,19 +213,24 @@ export class WorkspacePage extends BaseWebSocketPage { } async closeLibrariesModal(clickOptions = {}) { - await this.librariesModal.getByRole("button", { name: "Close" }).click(clickOptions); + await this.librariesModal + .getByRole("button", { name: "Close" }) + .click(clickOptions); } async clickColorPalette(clickOptions = {}) { - await this.palette.getByRole("button", { name: "Color Palette (Alt+P)" }).click(clickOptions); + await this.palette + .getByRole("button", { name: "Color Palette (Alt+P)" }) + .click(clickOptions); } async clickColorPalette(clickOptions = {}) { - await this.palette.getByRole("button", { name: "Color Palette (Alt+P)" }).click(clickOptions); + await this.palette + .getByRole("button", { name: "Color Palette (Alt+P)" }) + .click(clickOptions); } async clickTogglePalettesVisibility(clickOptions = {}) { - await this.togglePalettesVisibility - .click(clickOptions); + await this.togglePalettesVisibility.click(clickOptions); } } diff --git a/frontend/playwright/ui/specs/colorpicker.spec.js b/frontend/playwright/ui/specs/colorpicker.spec.js index 1793f7ade6..0ea20f52ba 100644 --- a/frontend/playwright/ui/specs/colorpicker.spec.js +++ b/frontend/playwright/ui/specs/colorpicker.spec.js @@ -6,7 +6,9 @@ test.beforeEach(async ({ page }) => { }); // Fix for https://tree.taiga.io/project/penpot/issue/7549 -test("Bug 7549 - User clicks on color swatch to display the color picker next to it", async ({ page }) => { +test("Bug 7549 - User clicks on color swatch to display the color picker next to it", async ({ + page, +}) => { const workspacePage = new WorkspacePage(page); await workspacePage.setupEmptyFile(page); diff --git a/frontend/playwright/ui/specs/dashboard.spec.js b/frontend/playwright/ui/specs/dashboard.spec.js index 3e105199c4..b11e1a3264 100644 --- a/frontend/playwright/ui/specs/dashboard.spec.js +++ b/frontend/playwright/ui/specs/dashboard.spec.js @@ -3,7 +3,11 @@ import DashboardPage from "../pages/DashboardPage"; test.beforeEach(async ({ page }) => { await DashboardPage.init(page); - await DashboardPage.mockRPC(page, "get-profile", "logged-in-user/get-profile-logged-in-no-onboarding.json"); + await DashboardPage.mockRPC( + page, + "get-profile", + "logged-in-user/get-profile-logged-in-no-onboarding.json", + ); }); test("Dashboad page has title ", async ({ page }) => { @@ -41,6 +45,10 @@ test("Lists files in the drafts page", async ({ page }) => { await dashboardPage.goToDrafts(); - await expect(dashboardPage.page.getByRole("button", { name: /New File 1/ })).toBeVisible(); - await expect(dashboardPage.page.getByRole("button", { name: /New File 2/ })).toBeVisible(); + await expect( + dashboardPage.page.getByRole("button", { name: /New File 1/ }), + ).toBeVisible(); + await expect( + dashboardPage.page.getByRole("button", { name: /New File 2/ }), + ).toBeVisible(); }); diff --git a/frontend/playwright/ui/specs/design-tab.spec.js b/frontend/playwright/ui/specs/design-tab.spec.js index 7a43aa1661..3b28bb5343 100644 --- a/frontend/playwright/ui/specs/design-tab.spec.js +++ b/frontend/playwright/ui/specs/design-tab.spec.js @@ -12,7 +12,10 @@ const multipleAttributesPageId = `1795a568-0df0-8095-8004-7ba741f56be3`; const setupFileWithMultipeConstraints = async (workspace) => { await workspace.setupEmptyFile(); - await workspace.mockRPC(/get\-file\?/, "design/get-file-multiple-constraints.json"); + await workspace.mockRPC( + /get\-file\?/, + "design/get-file-multiple-constraints.json", + ); await workspace.mockRPC( "get-file-object-thumbnails?file-id=*", "design/get-file-object-thumbnails-multiple-constraints.json", @@ -25,7 +28,10 @@ const setupFileWithMultipeConstraints = async (workspace) => { const setupFileWithMultipeAttributes = async (workspace) => { await workspace.setupEmptyFile(); - await workspace.mockRPC(/get\-file\?/, "design/get-file-multiple-attributes.json"); + await workspace.mockRPC( + /get\-file\?/, + "design/get-file-multiple-attributes.json", + ); await workspace.mockRPC( "get-file-object-thumbnails?file-id=*", "design/get-file-object-thumbnails-multiple-attributes.json", @@ -47,9 +53,13 @@ test.describe("Constraints", () => { await workspace.clickLeafLayer("Ellipse"); await workspace.clickLeafLayer("Rectangle", { modifiers: ["Shift"] }); - const constraintVDropdown = workspace.page.getByTestId("constraint-v-select"); + const constraintVDropdown = workspace.page.getByTestId( + "constraint-v-select", + ); await expect(constraintVDropdown).toContainText("Mixed"); - const constraintHDropdown = workspace.page.getByTestId("constraint-h-select"); + const constraintHDropdown = workspace.page.getByTestId( + "constraint-h-select", + ); await expect(constraintHDropdown).toContainText("Mixed"); expect(false); @@ -57,7 +67,9 @@ test.describe("Constraints", () => { }); test.describe("Multiple shapes attributes", () => { - test("User selects multiple shapes with sames fills, strokes, shadows and blur", async ({ page }) => { + test("User selects multiple shapes with sames fills, strokes, shadows and blur", async ({ + page, + }) => { const workspace = new WorkspacePage(page); await setupFileWithMultipeConstraints(workspace); await workspace.goToWorkspace({ @@ -75,7 +87,9 @@ test.describe("Multiple shapes attributes", () => { await expect(workspace.page.getByTestId("add-blur")).toBeVisible(); }); - test("User selects multiple shapes with different fills, strokes, shadows and blur", async ({ page }) => { + test("User selects multiple shapes with different fills, strokes, shadows and blur", async ({ + page, + }) => { const workspace = new WorkspacePage(page); await setupFileWithMultipeAttributes(workspace); await workspace.goToWorkspace({ @@ -93,7 +107,9 @@ test.describe("Multiple shapes attributes", () => { }); }); -test("BUG 7760 - Layout losing properties when changing parents", async ({ page }) => { +test("BUG 7760 - Layout losing properties when changing parents", async ({ + page, +}) => { const workspacePage = new WorkspacePage(page); await workspacePage.setupEmptyFile(); await workspacePage.mockRPC(/get\-file\?/, "workspace/get-file-7760.json"); @@ -101,7 +117,10 @@ test("BUG 7760 - Layout losing properties when changing parents", async ({ page "get-file-fragment?file-id=*&fragment-id=*", "workspace/get-file-fragment-7760.json", ); - await workspacePage.mockRPC("update-file?id=*", "workspace/update-file-create-rect.json"); + await workspacePage.mockRPC( + "update-file?id=*", + "workspace/update-file-create-rect.json", + ); await workspacePage.goToWorkspace({ fileId: "cd90e028-326a-80b4-8004-7cdec16ffad5", diff --git a/frontend/playwright/ui/specs/login.spec.js b/frontend/playwright/ui/specs/login.spec.js index d730fb91e4..4a2604f4b1 100644 --- a/frontend/playwright/ui/specs/login.spec.js +++ b/frontend/playwright/ui/specs/login.spec.js @@ -8,7 +8,9 @@ test.beforeEach(async ({ page }) => { await page.goto("/#/auth/login"); }); -test("User is redirected to the login page when logged out", async ({ page }) => { +test("User is redirected to the login page when logged out", async ({ + page, +}) => { const loginPage = new LoginPage(page); await loginPage.setupLoggedInUser(); @@ -30,7 +32,9 @@ test.describe("Login form", () => { await expect(loginPage.page).toHaveURL(/dashboard/); }); - test("User gets error message when submitting an bad formatted email ", async ({ page }) => { + test("User gets error message when submitting an bad formatted email ", async ({ + page, + }) => { const loginPage = new LoginPage(page); await loginPage.setupLoginSuccess(); @@ -39,11 +43,16 @@ test.describe("Login form", () => { await expect(loginPage.invalidEmailError).toBeVisible(); }); - test("User gets error message when submitting wrong credentials", async ({ page }) => { + test("User gets error message when submitting wrong credentials", async ({ + page, + }) => { const loginPage = new LoginPage(page); await loginPage.setupLoginError(); - await loginPage.fillEmailAndPasswordInputs("test@example.com", "loremipsum"); + await loginPage.fillEmailAndPasswordInputs( + "test@example.com", + "loremipsum", + ); await loginPage.clickLoginButton(); await expect(loginPage.invalidCredentialsError).toBeVisible(); diff --git a/frontend/playwright/ui/specs/onboarding.spec.js b/frontend/playwright/ui/specs/onboarding.spec.js index 68e00fc505..968c888251 100644 --- a/frontend/playwright/ui/specs/onboarding.spec.js +++ b/frontend/playwright/ui/specs/onboarding.spec.js @@ -1,31 +1,44 @@ import { test, expect } from "@playwright/test"; import DashboardPage from "../pages/DashboardPage"; - import OnboardingPage from "../pages/OnboardingPage" +import OnboardingPage from "../pages/OnboardingPage"; test.beforeEach(async ({ page }) => { await DashboardPage.init(page); - await DashboardPage.mockRPC(page, "get-profile", "logged-in-user/get-profile-logged-in.json"); + await DashboardPage.mockRPC( + page, + "get-profile", + "logged-in-user/get-profile-logged-in.json", + ); }); - test("User can complete the onboarding", async ({ page }) => { const dashboardPage = new DashboardPage(page); const onboardingPage = new OnboardingPage(page); await dashboardPage.goToDashboard(); - await expect(page.getByRole("heading", { name: "Help us get to know you" })).toBeVisible(); + await expect( + page.getByRole("heading", { name: "Help us get to know you" }), + ).toBeVisible(); await onboardingPage.fillOnboardingInputsStep1(); - await expect(page.getByRole("heading", { name: "Which one of these tools do" })).toBeVisible(); + await expect( + page.getByRole("heading", { name: "Which one of these tools do" }), + ).toBeVisible(); await onboardingPage.fillOnboardingInputsStep2(); - await expect(page.getByRole("heading", { name: "Tell us about your job" })).toBeVisible(); + await expect( + page.getByRole("heading", { name: "Tell us about your job" }), + ).toBeVisible(); await onboardingPage.fillOnboardingInputsStep3(); - await expect(page.getByRole("heading", { name: "Where would you like to get" })).toBeVisible(); + await expect( + page.getByRole("heading", { name: "Where would you like to get" }), + ).toBeVisible(); await onboardingPage.fillOnboardingInputsStep4(); - await expect(page.getByRole("heading", { name: "How did you hear about Penpot?" })).toBeVisible(); + await expect( + page.getByRole("heading", { name: "How did you hear about Penpot?" }), + ).toBeVisible(); await onboardingPage.fillOnboardingInputsStep5(); await expect(page.getByRole("button", { name: "Start" })).toBeEnabled(); diff --git a/frontend/playwright/ui/specs/sidebar.spec.js b/frontend/playwright/ui/specs/sidebar.spec.js index bb0a4d451f..b97301889e 100644 --- a/frontend/playwright/ui/specs/sidebar.spec.js +++ b/frontend/playwright/ui/specs/sidebar.spec.js @@ -6,7 +6,9 @@ test.beforeEach(async ({ page }) => { }); test.describe("Layers tab", () => { - test("BUG 7466 - Layers tab height extends to the bottom when 'Pages' is collapsed", async ({ page }) => { + test("BUG 7466 - Layers tab height extends to the bottom when 'Pages' is collapsed", async ({ + page, + }) => { const workspace = new WorkspacePage(page); await workspace.setupEmptyFile(); @@ -21,11 +23,19 @@ test.describe("Layers tab", () => { }); test.describe("Assets tab", () => { - test("User adds a library and its automatically selected in the color palette", async ({ page }) => { + test("User adds a library and its automatically selected in the color palette", async ({ + page, + }) => { const workspacePage = new WorkspacePage(page); await workspacePage.setupEmptyFile(); - await workspacePage.mockRPC("link-file-to-library", "workspace/link-file-to-library.json"); - await workspacePage.mockRPC("unlink-file-from-library", "workspace/unlink-file-from-library.json"); + await workspacePage.mockRPC( + "link-file-to-library", + "workspace/link-file-to-library.json", + ); + await workspacePage.mockRPC( + "unlink-file-from-library", + "workspace/unlink-file-from-library.json", + ); await workspacePage.mockRPC( "get-team-shared-files?team-id=*", "workspace/get-team-shared-libraries-non-empty.json", @@ -37,12 +47,17 @@ test.describe("Assets tab", () => { await workspacePage.clickColorPalette(); await workspacePage.clickAssets(); // Now the get-file call should return a library - await workspacePage.mockRPC(/get\-file\?/, "workspace/get-file-library.json"); + await workspacePage.mockRPC( + /get\-file\?/, + "workspace/get-file-library.json", + ); await workspacePage.openLibrariesModal(); await workspacePage.clickLibrary("Testing library 1"); await workspacePage.closeLibrariesModal(); - await expect(workspacePage.palette.getByRole("button", { name: "test-color-187cd5" })).toBeVisible(); + await expect( + workspacePage.palette.getByRole("button", { name: "test-color-187cd5" }), + ).toBeVisible(); // Remove Testing library 1 await workspacePage.openLibrariesModal(); @@ -50,7 +65,9 @@ test.describe("Assets tab", () => { await workspacePage.closeLibrariesModal(); await expect( - workspacePage.palette.getByText("There are no color styles in your library yet"), + workspacePage.palette.getByText( + "There are no color styles in your library yet", + ), ).toBeVisible(); }); }); diff --git a/frontend/playwright/ui/specs/viewer-comments.spec.js b/frontend/playwright/ui/specs/viewer-comments.spec.js index 7d7b637eab..4ed32135a3 100644 --- a/frontend/playwright/ui/specs/viewer-comments.spec.js +++ b/frontend/playwright/ui/specs/viewer-comments.spec.js @@ -8,17 +8,23 @@ test.beforeEach(async ({ page }) => { const singleBoardFileId = "dd5cc0bb-91ff-81b9-8004-77df9cd3edb1"; const singleBoardPageId = "dd5cc0bb-91ff-81b9-8004-77df9cd3edb2"; - test("Comment is shown with scroll and valid position", async ({ page }) => { const viewer = new ViewerPage(page); await viewer.setupLoggedInUser(); await viewer.setupFileWithComments(); - await viewer.goToViewer({ fileId: singleBoardFileId, pageId: singleBoardPageId }); + await viewer.goToViewer({ + fileId: singleBoardFileId, + pageId: singleBoardPageId, + }); await viewer.showComments(); await viewer.showCommentsThread(1); - await expect(viewer.page.getByRole("textbox", { name: "Reply" })).toBeVisible(); + await expect( + viewer.page.getByRole("textbox", { name: "Reply" }), + ).toBeVisible(); await viewer.showCommentsThread(1); await viewer.showCommentsThread(2); - await expect(viewer.page.getByRole("textbox", { name: "Reply" })).toBeVisible(); + await expect( + viewer.page.getByRole("textbox", { name: "Reply" }), + ).toBeVisible(); }); diff --git a/frontend/playwright/ui/specs/viewer-header.spec.js b/frontend/playwright/ui/specs/viewer-header.spec.js index 81c01ee058..805d31c66e 100644 --- a/frontend/playwright/ui/specs/viewer-header.spec.js +++ b/frontend/playwright/ui/specs/viewer-header.spec.js @@ -30,7 +30,10 @@ test("Updates URL with zoom type", async ({ page }) => { await viewer.setupLoggedInUser(); await viewer.setupFileWithSingleBoard(viewer); - await viewer.goToViewer({ fileId: singleBoardFileId, pageId: singleBoardPageId }); + await viewer.goToViewer({ + fileId: singleBoardFileId, + pageId: singleBoardPageId, + }); await viewer.page.getByTitle("Zoom").click(); await viewer.page.getByText(/Fit/).click(); diff --git a/frontend/playwright/ui/specs/workspace.spec.js b/frontend/playwright/ui/specs/workspace.spec.js index f069ed246f..066486f50c 100644 --- a/frontend/playwright/ui/specs/workspace.spec.js +++ b/frontend/playwright/ui/specs/workspace.spec.js @@ -15,20 +15,27 @@ test("User loads worskpace with empty file", async ({ page }) => { await expect(workspacePage.pageName).toHaveText("Page 1"); }); -test("User receives presence notifications updates in the workspace", async ({ page }) => { +test("User receives presence notifications updates in the workspace", async ({ + page, +}) => { const workspacePage = new WorkspacePage(page); await workspacePage.setupEmptyFile(); await workspacePage.goToWorkspace(); await workspacePage.sendPresenceMessage(presenceFixture); - await expect(page.getByTestId("active-users-list").getByAltText("Princesa Leia")).toHaveCount(2); + await expect( + page.getByTestId("active-users-list").getByAltText("Princesa Leia"), + ).toHaveCount(2); }); test("User draws a rect", async ({ page }) => { const workspacePage = new WorkspacePage(page); await workspacePage.setupEmptyFile(); - await workspacePage.mockRPC("update-file?id=*", "workspace/update-file-create-rect.json"); + await workspacePage.mockRPC( + "update-file?id=*", + "workspace/update-file-create-rect.json", + ); await workspacePage.goToWorkspace(); await workspacePage.rectShapeButton.click(); @@ -42,8 +49,14 @@ test("User draws a rect", async ({ page }) => { test("User makes a group", async ({ page }) => { const workspacePage = new WorkspacePage(page); await workspacePage.setupEmptyFile(); - await workspacePage.mockRPC(/get\-file\?/, "workspace/get-file-not-empty.json"); - await workspacePage.mockRPC("update-file?id=*", "workspace/update-file-create-rect.json"); + await workspacePage.mockRPC( + /get\-file\?/, + "workspace/get-file-not-empty.json", + ); + await workspacePage.mockRPC( + "update-file?id=*", + "workspace/update-file-create-rect.json", + ); await workspacePage.goToWorkspace({ fileId: "6191cd35-bb1f-81f7-8004-7cc63d087374", @@ -54,7 +67,9 @@ test("User makes a group", async ({ page }) => { await workspacePage.expectSelectedLayer("Group"); }); -test("Bug 7654 - Toolbar keeps toggling on and off on spacebar press", async ({ page }) => { +test("Bug 7654 - Toolbar keeps toggling on and off on spacebar press", async ({ + page, +}) => { const workspacePage = new WorkspacePage(page); await workspacePage.setupEmptyFile(); await workspacePage.goToWorkspace(); @@ -65,11 +80,19 @@ test("Bug 7654 - Toolbar keeps toggling on and off on spacebar press", async ({ await workspacePage.expectHiddenToolbarOptions(); }); -test("Bug 7525 - User moves a scrollbar and no selciont rectangle appears", async ({ page }) => { +test("Bug 7525 - User moves a scrollbar and no selciont rectangle appears", async ({ + page, +}) => { const workspacePage = new WorkspacePage(page); await workspacePage.setupEmptyFile(); - await workspacePage.mockRPC(/get\-file\?/, "workspace/get-file-not-empty.json"); - await workspacePage.mockRPC("update-file?id=*", "workspace/update-file-create-rect.json"); + await workspacePage.mockRPC( + /get\-file\?/, + "workspace/get-file-not-empty.json", + ); + await workspacePage.mockRPC( + "update-file?id=*", + "workspace/update-file-create-rect.json", + ); await workspacePage.goToWorkspace({ fileId: "6191cd35-bb1f-81f7-8004-7cc63d087374", @@ -84,7 +107,7 @@ test("Bug 7525 - User moves a scrollbar and no selciont rectangle appears", asyn await expect(horizontalScrollbar).toBeVisible(); // Grab scrollbar and move - const {x, y} = await horizontalScrollbar.boundingBox(); + const { x, y } = await horizontalScrollbar.boundingBox(); await page.waitForTimeout(100); await workspacePage.viewport.hover({ position: { x: x, y: y + 5 } }); await page.mouse.down(); @@ -93,13 +116,24 @@ test("Bug 7525 - User moves a scrollbar and no selciont rectangle appears", asyn await expect(workspacePage.selectionRect).not.toBeInViewport(); }); -test("User adds a library and its automatically selected in the color palette", async ({ page }) => { +test("User adds a library and its automatically selected in the color palette", async ({ + page, +}) => { const workspacePage = new WorkspacePage(page); await workspacePage.setupEmptyFile(); - await workspacePage.mockRPC("link-file-to-library", "workspace/link-file-to-library.json"); - await workspacePage.mockRPC("unlink-file-from-library", "workspace/unlink-file-from-library.json"); - await workspacePage.mockRPC("get-team-shared-files?team-id=*", "workspace/get-team-shared-libraries-non-empty.json"); - + await workspacePage.mockRPC( + "link-file-to-library", + "workspace/link-file-to-library.json", + ); + await workspacePage.mockRPC( + "unlink-file-from-library", + "workspace/unlink-file-from-library.json", + ); + await workspacePage.mockRPC( + "get-team-shared-files?team-id=*", + "workspace/get-team-shared-libraries-non-empty.json", + ); + await workspacePage.goToWorkspace(); // Add Testing library 1 @@ -108,20 +142,28 @@ test("User adds a library and its automatically selected in the color palette", // Now the get-file call should return a library await workspacePage.mockRPC(/get\-file\?/, "workspace/get-file-library.json"); await workspacePage.openLibrariesModal(); - await workspacePage.clickLibrary("Testing library 1") - await workspacePage.closeLibrariesModal(); + await workspacePage.clickLibrary("Testing library 1"); + await workspacePage.closeLibrariesModal(); - await expect(workspacePage.palette.getByRole("button", { name: "test-color-187cd5" })).toBeVisible(); + await expect( + workspacePage.palette.getByRole("button", { name: "test-color-187cd5" }), + ).toBeVisible(); // Remove Testing library 1 await workspacePage.openLibrariesModal(); - await workspacePage.clickLibrary("Testing library 1") + await workspacePage.clickLibrary("Testing library 1"); await workspacePage.closeLibrariesModal(); - await expect(workspacePage.palette.getByText('There are no color styles in your library yet')).toBeVisible(); + await expect( + workspacePage.palette.getByText( + "There are no color styles in your library yet", + ), + ).toBeVisible(); }); -test("Bug 7489 - Workspace-palette items stay hidden when opening with keyboard-shortcut", async ({ page }) => { +test("Bug 7489 - Workspace-palette items stay hidden when opening with keyboard-shortcut", async ({ + page, +}) => { const workspacePage = new WorkspacePage(page); await workspacePage.setupEmptyFile(); await workspacePage.goToWorkspace(); @@ -129,5 +171,9 @@ test("Bug 7489 - Workspace-palette items stay hidden when opening with keyboard- await workspacePage.clickTogglePalettesVisibility(); await workspacePage.page.keyboard.press("Alt+t"); - await expect(workspacePage.palette.getByText("There are no typography styles in your library yet")).toBeVisible(); + await expect( + workspacePage.palette.getByText( + "There are no typography styles in your library yet", + ), + ).toBeVisible(); }); diff --git a/frontend/playwright/ui/visual-specs/visual-dashboard.spec.js b/frontend/playwright/ui/visual-specs/visual-dashboard.spec.js index d0dfa96775..44bfb9abb0 100644 --- a/frontend/playwright/ui/visual-specs/visual-dashboard.spec.js +++ b/frontend/playwright/ui/visual-specs/visual-dashboard.spec.js @@ -3,7 +3,11 @@ import DashboardPage from "../pages/DashboardPage"; test.beforeEach(async ({ page }) => { await DashboardPage.init(page); - await DashboardPage.mockRPC(page, "get-profile", "logged-in-user/get-profile-logged-in-no-onboarding.json"); + await DashboardPage.mockRPC( + page, + "get-profile", + "logged-in-user/get-profile-logged-in-no-onboarding.json", + ); }); test("User goes to an empty dashboard", async ({ page }) => { @@ -123,7 +127,9 @@ test("User goes to a full search page", async ({ page }) => { await dashboardPage.searchInput.fill("3"); await expect(dashboardPage.mainHeading).toHaveText("Search results"); - await expect(dashboardPage.page.getByRole("button", { name: "New File 3" })).toBeVisible(); + await expect( + dashboardPage.page.getByRole("button", { name: "New File 3" }), + ).toBeVisible(); await expect(dashboardPage.page).toHaveScreenshot(); }); @@ -157,7 +163,9 @@ test("User goes to password management section", async ({ page }) => { await page.getByText("Password").click(); - await expect(page.getByRole("heading", { name: "Change Password" })).toBeVisible(); + await expect( + page.getByRole("heading", { name: "Change Password" }), + ).toBeVisible(); await expect(dashboardPage.page).toHaveScreenshot(); }); diff --git a/frontend/playwright/ui/visual-specs/visual-viewer.spec.js b/frontend/playwright/ui/visual-specs/visual-viewer.spec.js index 48afc1a60f..a3eeddc82b 100644 --- a/frontend/playwright/ui/visual-specs/visual-viewer.spec.js +++ b/frontend/playwright/ui/visual-specs/visual-viewer.spec.js @@ -3,7 +3,6 @@ import { ViewerPage } from "../pages/ViewerPage"; test.beforeEach(async ({ page }) => { await ViewerPage.init(page); - }); const singleBoardFileId = "dd5cc0bb-91ff-81b9-8004-77df9cd3edb1"; @@ -25,7 +24,10 @@ test("User goes to the Viewer", async ({ page }) => { await viewerPage.setupLoggedInUser(); await viewerPage.setupFileWithSingleBoard(); - await viewerPage.goToViewer({ fileId: singleBoardFileId, pageId: singleBoardPageId }); + await viewerPage.goToViewer({ + fileId: singleBoardFileId, + pageId: singleBoardPageId, + }); await expect(viewerPage.page.getByTestId("penpot-logo-link")).toBeVisible(); await expect(viewerPage.page).toHaveScreenshot(); @@ -36,7 +38,10 @@ test("User goes to the Viewer and opens zoom modal", async ({ page }) => { await viewerPage.setupLoggedInUser(); await viewerPage.setupFileWithSingleBoard(); - await viewerPage.goToViewer({ fileId: singleBoardFileId, pageId: singleBoardPageId }); + await viewerPage.goToViewer({ + fileId: singleBoardFileId, + pageId: singleBoardPageId, + }); await viewerPage.page.getByTitle("Zoom").click(); @@ -49,11 +54,16 @@ test("User goes to the Viewer Comments", async ({ page }) => { await viewerPage.setupLoggedInUser(); await viewerPage.setupFileWithComments(); - await viewerPage.goToViewer({ fileId: singleBoardFileId, pageId: singleBoardPageId }); + await viewerPage.goToViewer({ + fileId: singleBoardFileId, + pageId: singleBoardPageId, + }); await viewerPage.showComments(); await viewerPage.showCommentsThread(1); - await expect(viewerPage.page.getByRole("textbox", { name: "Reply" })).toBeVisible(); + await expect( + viewerPage.page.getByRole("textbox", { name: "Reply" }), + ).toBeVisible(); await expect(viewerPage.page).toHaveScreenshot(); }); @@ -63,14 +73,19 @@ test("User opens Viewer comment list", async ({ page }) => { await viewerPage.setupLoggedInUser(); await viewerPage.setupFileWithComments(); - await viewerPage.goToViewer({ fileId: singleBoardFileId, pageId: singleBoardPageId }); + await viewerPage.goToViewer({ + fileId: singleBoardFileId, + pageId: singleBoardPageId, + }); await viewerPage.showComments(); await viewerPage.page.getByTestId("viewer-comments-dropdown").click(); await viewerPage.page.getByText("Show comments list").click(); - await expect(viewerPage.page.getByRole("button", { name: "Show all comments" })).toBeVisible(); + await expect( + viewerPage.page.getByRole("button", { name: "Show all comments" }), + ).toBeVisible(); await expect(viewerPage.page).toHaveScreenshot(); }); @@ -79,7 +94,10 @@ test("User goes to the Viewer Inspect code", async ({ page }) => { await viewerPage.setupLoggedInUser(); await viewerPage.setupFileWithComments(); - await viewerPage.goToViewer({ fileId: singleBoardFileId, pageId: singleBoardPageId }); + await viewerPage.goToViewer({ + fileId: singleBoardFileId, + pageId: singleBoardPageId, + }); await viewerPage.showCode(); @@ -93,12 +111,17 @@ test("User goes to the Viewer Inspect code, code tab", async ({ page }) => { await viewerPage.setupLoggedInUser(); await viewerPage.setupFileWithComments(); - await viewerPage.goToViewer({ fileId: singleBoardFileId, pageId: singleBoardPageId }); + await viewerPage.goToViewer({ + fileId: singleBoardFileId, + pageId: singleBoardPageId, + }); await viewerPage.showCode(); await viewerPage.page.getByTestId("code").click(); - await expect(viewerPage.page.getByRole("button", { name: "Copy all code" })).toBeVisible(); + await expect( + viewerPage.page.getByRole("button", { name: "Copy all code" }), + ).toBeVisible(); await expect(viewerPage.page).toHaveScreenshot(); }); @@ -108,10 +131,15 @@ test("User opens Share modal", async ({ page }) => { await viewerPage.setupLoggedInUser(); await viewerPage.setupFileWithSingleBoard(); - await viewerPage.goToViewer({ fileId: singleBoardFileId, pageId: singleBoardPageId }); + await viewerPage.goToViewer({ + fileId: singleBoardFileId, + pageId: singleBoardPageId, + }); await viewerPage.page.getByRole("button", { name: "Share" }).click(); - await expect(viewerPage.page.getByRole("button", { name: "Get link" })).toBeVisible(); + await expect( + viewerPage.page.getByRole("button", { name: "Get link" }), + ).toBeVisible(); await expect(viewerPage.page).toHaveScreenshot(); }); diff --git a/frontend/playwright/ui/visual-specs/workspace.spec.js b/frontend/playwright/ui/visual-specs/workspace.spec.js index b21f139967..69cc5a34d9 100644 --- a/frontend/playwright/ui/visual-specs/workspace.spec.js +++ b/frontend/playwright/ui/visual-specs/workspace.spec.js @@ -9,15 +9,20 @@ const setupFileWithAssets = async (workspace) => { const fileId = "015fda4f-caa6-8103-8004-862a00dd4f31"; const pageId = "015fda4f-caa6-8103-8004-862a00ddbe94"; const fragments = { - "015fda4f-caa6-8103-8004-862a9e4b4d4b": "assets/get-file-fragment-with-assets-components.json", - "015fda4f-caa6-8103-8004-862a9e4ad279": "assets/get-file-fragmnet-with-assets-page.json", + "015fda4f-caa6-8103-8004-862a9e4b4d4b": + "assets/get-file-fragment-with-assets-components.json", + "015fda4f-caa6-8103-8004-862a9e4ad279": + "assets/get-file-fragmnet-with-assets-page.json", }; await workspace.setupEmptyFile(); await workspace.mockRPC(/get\-file\?/, "assets/get-file-with-assets.json"); for (const [id, fixture] of Object.entries(fragments)) { - await workspace.mockRPC(`get-file-fragment?file-id=*&fragment-id=${id}`, fixture); + await workspace.mockRPC( + `get-file-fragment?file-id=*&fragment-id=${id}`, + fixture, + ); } return { fileId, pageId }; @@ -69,7 +74,10 @@ test.describe("Assets tab", () => { test("Shows the libraries modal correctly", async ({ page }) => { const workspace = new WorkspacePage(page); await workspace.setupEmptyFile(); - await workspace.mockRPC("link-file-to-library", "workspace/link-file-to-library.json"); + await workspace.mockRPC( + "link-file-to-library", + "workspace/link-file-to-library.json", + ); await workspace.mockRPC( "get-team-shared-files?team-id=*", "workspace/get-team-shared-libraries-non-empty.json", @@ -95,7 +103,9 @@ test.describe("Assets tab", () => { await workspace.clickAssets(); await workspace.sidebar.getByRole("button", { name: "Components" }).click(); await workspace.sidebar.getByRole("button", { name: "Colors" }).click(); - await workspace.sidebar.getByRole("button", { name: "Typographies" }).click(); + await workspace.sidebar + .getByRole("button", { name: "Typographies" }) + .click(); await expect(workspace.page).toHaveScreenshot(); @@ -114,11 +124,19 @@ test.describe("Palette", () => { await expect(workspace.page).toHaveScreenshot(); - await workspace.palette.getByRole("button", { name: "Typographies" }).click(); - await expect(workspace.palette.getByText("Source Sans Pro Regular")).toBeVisible(); + await workspace.palette + .getByRole("button", { name: "Typographies" }) + .click(); + await expect( + workspace.palette.getByText("Source Sans Pro Regular"), + ).toBeVisible(); await expect(workspace.page).toHaveScreenshot(); - await workspace.palette.getByRole("button", { name: "Color Palette" }).click(); - await expect(workspace.palette.getByRole("button", { name: "#7798ff" })).toBeVisible(); + await workspace.palette + .getByRole("button", { name: "Color Palette" }) + .click(); + await expect( + workspace.palette.getByRole("button", { name: "#7798ff" }), + ).toBeVisible(); }); }); diff --git a/frontend/scripts/_helpers.js b/frontend/scripts/_helpers.js index 0e284111d6..1dc4fb9633 100644 --- a/frontend/scripts/_helpers.js +++ b/frontend/scripts/_helpers.js @@ -34,7 +34,9 @@ async function findFiles(basePath, predicate, options = {}) { return true; }; - let files = await fs.readdir(basePath, { recursive: options.recursive ?? false }); + let files = await fs.readdir(basePath, { + recursive: options.recursive ?? false, + }); files = files.map((path) => ph.join(basePath, path)); return files; @@ -232,7 +234,9 @@ async function readTranslations() { lang = lang[0]; } - const content = await fs.readFile(`./translations/${filename}`, { encoding: "utf-8" }); + const content = await fs.readFile(`./translations/${filename}`, { + encoding: "utf-8", + }); lang = lang.toLowerCase(); @@ -291,15 +295,23 @@ async function generateSvgSprite(files, prefix) { } async function generateSvgSprites() { - await fs.mkdir("resources/public/images/sprites/symbol/", { recursive: true }); + await fs.mkdir("resources/public/images/sprites/symbol/", { + recursive: true, + }); const icons = await findFiles("resources/images/icons/", isSvgFile); const iconsSprite = await generateSvgSprite(icons, "icon-"); - await fs.writeFile("resources/public/images/sprites/symbol/icons.svg", iconsSprite); + await fs.writeFile( + "resources/public/images/sprites/symbol/icons.svg", + iconsSprite, + ); const cursors = await findFiles("resources/images/cursors/", isSvgFile); const cursorsSprite = await generateSvgSprite(icons, "cursor-"); - await fs.writeFile("resources/public/images/sprites/symbol/cursors.svg", cursorsSprite); + await fs.writeFile( + "resources/public/images/sprites/symbol/cursors.svg", + cursorsSprite, + ); } async function generateTemplates() { @@ -310,15 +322,23 @@ async function generateTemplates() { const manifest = await readShadowManifest(); let content; - const iconsSprite = await fs.readFile("resources/public/images/sprites/symbol/icons.svg", "utf8"); - const cursorsSprite = await fs.readFile("resources/public/images/sprites/symbol/cursors.svg", "utf8"); + const iconsSprite = await fs.readFile( + "resources/public/images/sprites/symbol/icons.svg", + "utf8", + ); + const cursorsSprite = await fs.readFile( + "resources/public/images/sprites/symbol/cursors.svg", + "utf8", + ); const partials = { "../public/images/sprites/symbol/icons.svg": iconsSprite, "../public/images/sprites/symbol/cursors.svg": cursorsSprite, }; const pluginRuntimeUri = - process.env.PENPOT_PLUGIN_DEV === "true" ? "http://localhost:4200" : "./plugins-runtime"; + process.env.PENPOT_PLUGIN_DEV === "true" + ? "http://localhost:4200" + : "./plugins-runtime"; content = await renderTemplate( "resources/templates/index.mustache", @@ -411,7 +431,10 @@ export async function copyAssets() { await syncDirs("resources/images/", "resources/public/images/"); await syncDirs("resources/fonts/", "resources/public/fonts/"); - await syncDirs("resources/plugins-runtime/", "resources/public/plugins-runtime/"); + await syncDirs( + "resources/plugins-runtime/", + "resources/public/plugins-runtime/", + ); const end = process.hrtime(start); log.info("done: copy assets", `(${ppt(end)})`); diff --git a/frontend/scripts/_worker.js b/frontend/scripts/_worker.js index eab272fbf0..47e3336642 100644 --- a/frontend/scripts/_worker.js +++ b/frontend/scripts/_worker.js @@ -17,18 +17,21 @@ async function compileFile(path) { const name = ph.basename(path, ".scss"); const dest = `${dir}${ph.sep}${name}.css`; - return new Promise(async (resolve, reject) => { try { const result = await compiler.compileAsync(path, { - loadPaths: ["node_modules/animate.css", "resources/styles/common/", "resources/styles"], - sourceMap: false + loadPaths: [ + "node_modules/animate.css", + "resources/styles/common/", + "resources/styles", + ], + sourceMap: false, }); // console.dir(result); resolve({ inputPath: path, outputPath: dest, - css: result.css + css: result.css, }); } catch (cause) { // console.error(cause); @@ -56,7 +59,7 @@ function configureModulesProcessor(options) { }); } -function configureProcessor(options={}) { +function configureProcessor(options = {}) { const processors = []; if (options.modules) { @@ -78,7 +81,7 @@ async function postProcessFile(data, options) { }); return Object.assign(data, { - css: result.css + css: result.css, }); } @@ -87,11 +90,14 @@ async function compile(path, options) { return await postProcessFile(result, options); } -wpool.worker({ - compileSass: compile -}, { - onTerminate: async (code) => { - // log.info("worker: terminate"); - await compiler.dispose(); - } -}); +wpool.worker( + { + compileSass: compile, + }, + { + onTerminate: async (code) => { + // log.info("worker: terminate"); + await compiler.dispose(); + }, + }, +); diff --git a/frontend/scripts/compile.js b/frontend/scripts/compile.js index e04d070013..8ee6dc9773 100644 --- a/frontend/scripts/compile.js +++ b/frontend/scripts/compile.js @@ -4,7 +4,7 @@ import log from "fancy-log"; import * as h from "./_helpers.js"; await h.compileStyles(); -await h.copyAssets() -await h.compileSvgSprites() +await h.copyAssets(); +await h.compileSvgSprites(); await h.compileTemplates(); await h.compilePolyfills(); diff --git a/frontend/scripts/e2e-server.js b/frontend/scripts/e2e-server.js index c057438132..77be5fccac 100644 --- a/frontend/scripts/e2e-server.js +++ b/frontend/scripts/e2e-server.js @@ -9,7 +9,10 @@ const port = 3000; app.use(compression()); -const staticPath = path.join(fileURLToPath(import.meta.url), "../../resources/public"); +const staticPath = path.join( + fileURLToPath(import.meta.url), + "../../resources/public", +); app.use(express.static(staticPath)); app.listen(port, () => { diff --git a/frontend/scripts/find-unused-translations.js b/frontend/scripts/find-unused-translations.js index 3369e4dce9..6a02198a48 100644 --- a/frontend/scripts/find-unused-translations.js +++ b/frontend/scripts/find-unused-translations.js @@ -1,26 +1,25 @@ -const fs = require('fs').promises; +const fs = require("fs").promises; const gt = require("gettext-parser"); -const path = require('path'); -const util = require('node:util'); -const execFile = util.promisify(require('node:child_process').execFile); +const path = require("path"); +const util = require("node:util"); +const execFile = util.promisify(require("node:child_process").execFile); - -async function processMsgId(msgId){ - return execFile('grep', ['-r', '-o', msgId, './src']) - .catch(()=> { return msgId}) +async function processMsgId(msgId) { + return execFile("grep", ["-r", "-o", msgId, "./src"]).catch(() => { + return msgId; + }); } - async function processFile(f) { const content = await fs.readFile(f); - const data = gt.po.parse(content, "utf-8") - const translations = data.translations['']; + const data = gt.po.parse(content, "utf-8"); + const translations = data.translations[""]; const badIds = []; for (const property in translations) { const data = await processMsgId(translations[property].msgid); - if (data!=null && data.stdout === undefined){ - badIds.push(data) + if (data != null && data.stdout === undefined) { + badIds.push(data); } } @@ -28,63 +27,77 @@ async function processFile(f) { } async function cleanFile(f, badIds) { - console.log ("\n\nDoing automatic cleanup") + console.log("\n\nDoing automatic cleanup"); const content = await fs.readFile(f); const data = gt.po.parse(content, "utf-8"); - const translations = data.translations['']; + const translations = data.translations[""]; const keys = Object.keys(translations); for (const key of keys) { property = translations[key]; - if (badIds.includes(property.msgid)){ - console.log ('----> deleting', property.msgid) - delete data.translations[''][key]; + if (badIds.includes(property.msgid)) { + console.log("----> deleting", property.msgid); + delete data.translations[""][key]; } } - const buff = gt.po.compile(data, {sort: true}); + const buff = gt.po.compile(data, { sort: true }); await fs.writeFile(f, buff); } - - async function findExecutionTimeTranslations() { - const { stdout } = await execFile('grep', ['-r', '-h', '-F', '(tr (', './src']); + const { stdout } = await execFile("grep", [ + "-r", + "-h", + "-F", + "(tr (", + "./src", + ]); console.log(stdout); } async function welcome() { - console.log ('####################################################################') - console.log ('# UNUSED TRANSLATIONS FINDER #') - console.log ('####################################################################') - console.log ('\n'); - console.log ('DISCLAIMER: Some translations are only available at execution time.') - console.log (' This finder can\'t process them, so there can be') - console.log (' false positives.\n') - console.log (' If you want to do an automatic clean anyway,') - console.log (' call the script with:') - console.log (' npm run find-unused-translations -- --clean') - console.log (' For example:'); - console.log ('--------------------------------------------------------------------'); + console.log( + "####################################################################", + ); + console.log( + "# UNUSED TRANSLATIONS FINDER #", + ); + console.log( + "####################################################################", + ); + console.log("\n"); + console.log( + "DISCLAIMER: Some translations are only available at execution time.", + ); + console.log(" This finder can't process them, so there can be"); + console.log(" false positives.\n"); + console.log(" If you want to do an automatic clean anyway,"); + console.log(" call the script with:"); + console.log(" npm run find-unused-translations -- --clean"); + console.log(" For example:"); + console.log( + "--------------------------------------------------------------------", + ); await findExecutionTimeTranslations(); - console.log ('--------------------------------------------------------------------'); + console.log( + "--------------------------------------------------------------------", + ); } - const doCleanup = process.argv.slice(2)[0] == "--clean"; - -;(async () => { +(async () => { await welcome(); const target = path.normalize("./translations/en.po"); const badIds = await processFile(target); - if (doCleanup){ + if (doCleanup) { cleanFile(target, badIds); } else { - for (const badId of badIds){ + for (const badId of badIds) { console.log(badId); } } -})() +})(); diff --git a/frontend/scripts/validate-translations.js b/frontend/scripts/validate-translations.js index f6ec245cab..0fe05e2c9f 100644 --- a/frontend/scripts/validate-translations.js +++ b/frontend/scripts/validate-translations.js @@ -1,7 +1,7 @@ -import {promises as fs} from 'fs'; -import gt from 'gettext-parser'; -import l from 'lodash'; -import path from 'path'; +import { promises as fs } from "fs"; +import gt from "gettext-parser"; +import l from "lodash"; +import path from "path"; async function* getFiles(dir) { const dirents = await fs.readdir(dir, { withFileTypes: true }); @@ -15,7 +15,7 @@ async function* getFiles(dir) { } } -;(async () => { +(async () => { const fileRe = /.+\.po$/; const target = path.normalize("./translations/"); const parent = path.join(target, ".."); @@ -24,8 +24,8 @@ async function* getFiles(dir) { const entry = path.relative(parent, f); console.log(`=> processing: ${entry}`); const content = await fs.readFile(f); - const data = gt.po.parse(content, "utf-8") - const buff = gt.po.compile(data, {sort: true}); + const data = gt.po.parse(content, "utf-8"); + const buff = gt.po.compile(data, { sort: true }); await fs.writeFile(f, buff); } -})() +})(); diff --git a/frontend/scripts/watch.js b/frontend/scripts/watch.js index f2c6b376cb..99ced7b708 100644 --- a/frontend/scripts/watch.js +++ b/frontend/scripts/watch.js @@ -11,7 +11,7 @@ let sass = null; async function compileSassAll() { const start = process.hrtime(); - log.info("init: compile styles") + log.info("init: compile styles"); sass = await h.compileSassAll(worker); let output = await h.concatSass(sass); @@ -24,7 +24,7 @@ async function compileSassAll() { async function compileSass(path) { const start = process.hrtime(); log.info("changed:", path); - const result = await h.compileSass(worker, path, {modules:true}); + const result = await h.compileSass(worker, path, { modules: true }); sass.index[result.outputPath] = result.css; const output = h.concatSass(sass); @@ -37,12 +37,12 @@ async function compileSass(path) { await fs.mkdir("./resources/public/css/", { recursive: true }); await compileSassAll(); -await h.copyAssets() -await h.compileSvgSprites() +await h.copyAssets(); +await h.compileSvgSprites(); await h.compileTemplates(); await h.compilePolyfills(); -log.info("watch: scss src (~)") +log.info("watch: scss src (~)"); h.watch("src", h.isSassFile, async function (path) { if (path.includes("common")) { @@ -52,30 +52,34 @@ h.watch("src", h.isSassFile, async function (path) { } }); -log.info("watch: scss: resources (~)") +log.info("watch: scss: resources (~)"); h.watch("resources/styles", h.isSassFile, async function (path) { log.info("changed:", path); - await compileSassAll() + await compileSassAll(); }); -log.info("watch: templates (~)") +log.info("watch: templates (~)"); h.watch("resources/templates", null, async function (path) { log.info("changed:", path); await h.compileTemplates(); }); -log.info("watch: translations (~)") +log.info("watch: translations (~)"); h.watch("translations", null, async function (path) { log.info("changed:", path); await h.compileTemplates(); }); -log.info("watch: assets (~)") -h.watch(["resources/images", "resources/fonts", "resources/plugins-runtime"], null, async function (path) { - log.info("changed:", path); - await h.compileSvgSprites(); - await h.copyAssets(); - await h.compileTemplates(); -}); +log.info("watch: assets (~)"); +h.watch( + ["resources/images", "resources/fonts", "resources/plugins-runtime"], + null, + async function (path) { + log.info("changed:", path); + await h.compileSvgSprites(); + await h.copyAssets(); + await h.compileTemplates(); + }, +); worker.terminate(); diff --git a/frontend/src/app/main/ui/components/buttons/simple_button.stories.jsx b/frontend/src/app/main/ui/components/buttons/simple_button.stories.jsx index 33142e12c4..d53eaf6380 100644 --- a/frontend/src/app/main/ui/components/buttons/simple_button.stories.jsx +++ b/frontend/src/app/main/ui/components/buttons/simple_button.stories.jsx @@ -4,16 +4,14 @@ import Components from "@target/components"; import Icons from "@target/icons"; export default { - title: 'Buttons/Simple Button', + title: "Buttons/Simple Button", component: Components.SimpleButton, }; export const Default = { render: () => ( - - Simple Button - + Simple Button ), }; @@ -27,4 +25,4 @@ export const WithIcon = { ), -} +}; From e448951d6fe56a5a6e4ce8191baeac33dde6d4b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bel=C3=A9n=20Albeza?= Date: Fri, 28 Jun 2024 10:49:55 +0200 Subject: [PATCH 292/476] :sparkles: Add CI rule for checking JS format --- .circleci/config.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.circleci/config.yml b/.circleci/config.yml index 13074f6bf0..9f87e47124 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -58,6 +58,7 @@ jobs: command: | yarn install yarn run fmt:clj:check + yarn run fmt:js:check - run: name: "common linter check" From 24b607cad326c47028f1a98df57e77f7fa2be5e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bel=C3=A9n=20Albeza?= Date: Fri, 28 Jun 2024 14:01:09 +0200 Subject: [PATCH 293/476] :lipstick: Move the stub design system component to its own ds folder --- frontend/shadow-cljs.edn | 2 +- frontend/src/app/main/ui/{components.cljs => ds.cljs} | 4 ++-- .../app/main/ui/{components => ds}/buttons/simple_button.cljs | 2 +- .../app/main/ui/{components => ds}/buttons/simple_button.mdx | 0 .../app/main/ui/{components => ds}/buttons/simple_button.scss | 0 .../ui/{components => ds}/buttons/simple_button.stories.jsx | 0 .../main/ui/{components => ds}/buttons/simple_button.test.mjs | 0 7 files changed, 4 insertions(+), 4 deletions(-) rename frontend/src/app/main/ui/{components.cljs => ds.cljs} (85%) rename frontend/src/app/main/ui/{components => ds}/buttons/simple_button.cljs (82%) rename frontend/src/app/main/ui/{components => ds}/buttons/simple_button.mdx (100%) rename frontend/src/app/main/ui/{components => ds}/buttons/simple_button.scss (100%) rename frontend/src/app/main/ui/{components => ds}/buttons/simple_button.stories.jsx (100%) rename frontend/src/app/main/ui/{components => ds}/buttons/simple_button.test.mjs (100%) diff --git a/frontend/shadow-cljs.edn b/frontend/shadow-cljs.edn index 7a5b4c4ff1..f223b5f715 100644 --- a/frontend/shadow-cljs.edn +++ b/frontend/shadow-cljs.edn @@ -97,7 +97,7 @@ :depends-on #{:base}} :components - {:exports {:default app.main.ui.components/default} + {:exports {:default app.main.ui.ds/default} :depends-on #{:base}}} :compiler-options diff --git a/frontend/src/app/main/ui/components.cljs b/frontend/src/app/main/ui/ds.cljs similarity index 85% rename from frontend/src/app/main/ui/components.cljs rename to frontend/src/app/main/ui/ds.cljs index 6119114fc6..ad5992c752 100644 --- a/frontend/src/app/main/ui/components.cljs +++ b/frontend/src/app/main/ui/ds.cljs @@ -4,9 +4,9 @@ ;; ;; Copyright (c) KALEIDOS INC -(ns app.main.ui.components +(ns app.main.ui.ds (:require - [app.main.ui.components.buttons.simple-button :as sb] + [app.main.ui.ds.buttons.simple-button :as sb] [rumext.v2 :as mf])) (mf/defc story-wrapper diff --git a/frontend/src/app/main/ui/components/buttons/simple_button.cljs b/frontend/src/app/main/ui/ds/buttons/simple_button.cljs similarity index 82% rename from frontend/src/app/main/ui/components/buttons/simple_button.cljs rename to frontend/src/app/main/ui/ds/buttons/simple_button.cljs index fb4bdd9952..095ed987ba 100644 --- a/frontend/src/app/main/ui/components/buttons/simple_button.cljs +++ b/frontend/src/app/main/ui/ds/buttons/simple_button.cljs @@ -1,4 +1,4 @@ -(ns app.main.ui.components.buttons.simple-button +(ns app.main.ui.ds.buttons.simple-button (:require-macros [app.main.style :as stl]) (:require [rumext.v2 :as mf])) diff --git a/frontend/src/app/main/ui/components/buttons/simple_button.mdx b/frontend/src/app/main/ui/ds/buttons/simple_button.mdx similarity index 100% rename from frontend/src/app/main/ui/components/buttons/simple_button.mdx rename to frontend/src/app/main/ui/ds/buttons/simple_button.mdx diff --git a/frontend/src/app/main/ui/components/buttons/simple_button.scss b/frontend/src/app/main/ui/ds/buttons/simple_button.scss similarity index 100% rename from frontend/src/app/main/ui/components/buttons/simple_button.scss rename to frontend/src/app/main/ui/ds/buttons/simple_button.scss diff --git a/frontend/src/app/main/ui/components/buttons/simple_button.stories.jsx b/frontend/src/app/main/ui/ds/buttons/simple_button.stories.jsx similarity index 100% rename from frontend/src/app/main/ui/components/buttons/simple_button.stories.jsx rename to frontend/src/app/main/ui/ds/buttons/simple_button.stories.jsx diff --git a/frontend/src/app/main/ui/components/buttons/simple_button.test.mjs b/frontend/src/app/main/ui/ds/buttons/simple_button.test.mjs similarity index 100% rename from frontend/src/app/main/ui/components/buttons/simple_button.test.mjs rename to frontend/src/app/main/ui/ds/buttons/simple_button.test.mjs From 2bb7726180c21c25bfd4dcb42762552b93dd774e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bel=C3=A9n=20Albeza?= Date: Fri, 28 Jun 2024 14:03:09 +0200 Subject: [PATCH 294/476] :paperclip: Remove unneeded icons export in the storybook target --- frontend/shadow-cljs.edn | 4 ---- .../app/main/ui/ds/buttons/simple_button.stories.jsx | 12 ------------ 2 files changed, 16 deletions(-) diff --git a/frontend/shadow-cljs.edn b/frontend/shadow-cljs.edn index f223b5f715..ebd3062c5f 100644 --- a/frontend/shadow-cljs.edn +++ b/frontend/shadow-cljs.edn @@ -92,10 +92,6 @@ {:base {:entries []} - :icons - {:exports {default app.main.ui.icons/default} - :depends-on #{:base}} - :components {:exports {:default app.main.ui.ds/default} :depends-on #{:base}}} diff --git a/frontend/src/app/main/ui/ds/buttons/simple_button.stories.jsx b/frontend/src/app/main/ui/ds/buttons/simple_button.stories.jsx index d53eaf6380..d4bb348fd3 100644 --- a/frontend/src/app/main/ui/ds/buttons/simple_button.stories.jsx +++ b/frontend/src/app/main/ui/ds/buttons/simple_button.stories.jsx @@ -1,7 +1,6 @@ import * as React from "react"; import Components from "@target/components"; -import Icons from "@target/icons"; export default { title: "Buttons/Simple Button", @@ -15,14 +14,3 @@ export const Default = { ), }; - -export const WithIcon = { - render: () => ( - - - {Icons.AddRefactor} - Simple Button - - - ), -}; From b5aba58aac728a0b58d72d2bcbc019c634bfd364 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bel=C3=A9n=20Albeza?= Date: Fri, 28 Jun 2024 15:03:25 +0200 Subject: [PATCH 295/476] :sparkles: Make storybook wrapper to render both dark and light themes --- frontend/.storybook/preview.js | 15 ++++++++++-- frontend/src/app/main/ui/ds.cljs | 13 ++++------- .../app/main/ui/ds/buttons/simple_button.mdx | 4 ---- .../app/main/ui/ds/buttons/simple_button.scss | 16 ++++--------- frontend/src/app/main/ui/ds/colors.scss | 23 +++++++++++++++++++ frontend/src/app/main/ui/ds/storybook.cljs | 18 +++++++++++++++ frontend/src/app/main/ui/ds/storybook.scss | 6 +++++ 7 files changed, 69 insertions(+), 26 deletions(-) create mode 100644 frontend/src/app/main/ui/ds/colors.scss create mode 100644 frontend/src/app/main/ui/ds/storybook.cljs create mode 100644 frontend/src/app/main/ui/ds/storybook.scss diff --git a/frontend/.storybook/preview.js b/frontend/.storybook/preview.js index de50ecbf73..132a209181 100644 --- a/frontend/.storybook/preview.js +++ b/frontend/.storybook/preview.js @@ -1,5 +1,3 @@ -import "../resources/public/css/main.css"; - /** @type { import('@storybook/react').Preview } */ const preview = { parameters: { @@ -10,6 +8,19 @@ const preview = { date: /Date$/i, }, }, + backgrounds: { + default: "dark", + values: [ + { + name: "dark", + value: "#18181a", + }, + { + name: "light", + value: "#fff", + }, + ], + }, }, }; diff --git a/frontend/src/app/main/ui/ds.cljs b/frontend/src/app/main/ui/ds.cljs index ad5992c752..ede983b450 100644 --- a/frontend/src/app/main/ui/ds.cljs +++ b/frontend/src/app/main/ui/ds.cljs @@ -6,15 +6,10 @@ (ns app.main.ui.ds (:require - [app.main.ui.ds.buttons.simple-button :as sb] - [rumext.v2 :as mf])) - -(mf/defc story-wrapper - {::mf/wrap-props false} - [{:keys [children]}] - [:.default children]) + [app.main.ui.ds.buttons.simple-button :refer [simple-button]] + [app.main.ui.ds.storybook :as sb])) (def default "A export used for storybook" - #js {:SimpleButton sb/simple-button - :StoryWrapper story-wrapper}) + #js {:SimpleButton simple-button + :StoryWrapper sb/story-wrapper}) diff --git a/frontend/src/app/main/ui/ds/buttons/simple_button.mdx b/frontend/src/app/main/ui/ds/buttons/simple_button.mdx index 6c93cc3a21..2c8636cb69 100644 --- a/frontend/src/app/main/ui/ds/buttons/simple_button.mdx +++ b/frontend/src/app/main/ui/ds/buttons/simple_button.mdx @@ -10,7 +10,3 @@ This is an example of **markdown** docs within storybook, for the component ` - -Simple buttons can also have **icons**: - - \ No newline at end of file diff --git a/frontend/src/app/main/ui/ds/buttons/simple_button.scss b/frontend/src/app/main/ui/ds/buttons/simple_button.scss index e1d162fbc1..a83a9c5d73 100644 --- a/frontend/src/app/main/ui/ds/buttons/simple_button.scss +++ b/frontend/src/app/main/ui/ds/buttons/simple_button.scss @@ -1,13 +1,7 @@ +@use "../colors.scss" as *; + .button { - font-family: monospace; - - display: flex; - align-items: center; - column-gap: 0.5rem; - - svg { - width: 16px; - height: 16px; - stroke: #000; - } + appearance: none; + border: 0; + background: var(--color-accent-primary); } diff --git a/frontend/src/app/main/ui/ds/colors.scss b/frontend/src/app/main/ui/ds/colors.scss new file mode 100644 index 0000000000..1cb92881e0 --- /dev/null +++ b/frontend/src/app/main/ui/ds/colors.scss @@ -0,0 +1,23 @@ +// This Source Code Form is subject to the terms of the Mozilla Public +// License, v. 2.0. If a copy of the MPL was not distributed with this +// file, You can obtain one at http://mozilla.org/MPL/2.0/. +// +// Copyright (c) KALEIDOS INC + +// Accent colors +$mint-150: #7efff5; +$purple-700: #6911d4; + +// Background colors +$white: #fff; +$gray-950: #18181a; + +:global(.light) { + --color-accent-primary: #{$mint-150}; + --color-background-primary: #{$white}; +} + +:global(.default) { + --color-accent-primary: #{$purple-700}; + --color-background-primary: #{$gray-950}; +} diff --git a/frontend/src/app/main/ui/ds/storybook.cljs b/frontend/src/app/main/ui/ds/storybook.cljs new file mode 100644 index 0000000000..ad0f360d73 --- /dev/null +++ b/frontend/src/app/main/ui/ds/storybook.cljs @@ -0,0 +1,18 @@ + +;; This Source Code Form is subject to the terms of the Mozilla Public +;; License, v. 2.0. If a copy of the MPL was not distributed with this +;; file, You can obtain one at http://mozilla.org/MPL/2.0/. +;; +;; Copyright (c) KALEIDOS INC + +(ns app.main.ui.ds.storybook + (:require-macros [app.main.style :as stl]) + (:require + [rumext.v2 :as mf])) + +(mf/defc story-wrapper + {::mf/wrap-props false} + [{:keys [children]}] + [:article {:class (stl/css :story-wrapper)} + [:section {:class "default"} children] + [:section {:class "light"} children]]) diff --git a/frontend/src/app/main/ui/ds/storybook.scss b/frontend/src/app/main/ui/ds/storybook.scss new file mode 100644 index 0000000000..4f680715e4 --- /dev/null +++ b/frontend/src/app/main/ui/ds/storybook.scss @@ -0,0 +1,6 @@ +@use "./colors.scss"; + +.story-wrapper { + display: grid; + row-gap: 1rem; +} From 6c68a34d63d47508df40d32fd9b5c8a81e0b2b33 Mon Sep 17 00:00:00 2001 From: Eva Marco Date: Mon, 1 Jul 2024 14:24:12 +0200 Subject: [PATCH 296/476] :sparkles: Add DS foundation colors --- frontend/src/app/main/ui/ds/colors.scss | 84 +++++++++++++++++++++++-- 1 file changed, 79 insertions(+), 5 deletions(-) diff --git a/frontend/src/app/main/ui/ds/colors.scss b/frontend/src/app/main/ui/ds/colors.scss index 1cb92881e0..488b7e1a86 100644 --- a/frontend/src/app/main/ui/ds/colors.scss +++ b/frontend/src/app/main/ui/ds/colors.scss @@ -4,20 +4,94 @@ // // Copyright (c) KALEIDOS INC -// Accent colors $mint-150: #7efff5; +$mint-250: #00d1b8; +$mint-700: #426158; + +$green-200: #a7e8d9; +$green-500: #2d9f8f; +$green-950: #0a2927; + +$orange-200: #ffc8a8; +$orange-500: #fe4811; +$orange-950: #440806; + +$red-200: #ffcada; +$red-500: #ff3277; +$red-700: #c80857; +$red-950: #500124; + +$pink-400: #ff6fe0; + +$purple-200: #e1d2f5; +$purple-400: #bb97d8; +$purple-600: #8c33eb; $purple-700: #6911d4; -// Background colors -$white: #fff; +$blue-200: #bae3fd; +$blue-500: #0e9be9; +$blue-950: #082c49; + +$cobalt-700: #1345aa; + +$black: #000; $gray-950: #18181a; +$gray-900: #212426; +$gray-800: #2e3434; +$gray-200: #e8eaee; +$gray-100: #eef0f2; +$gray-50: #f3f4f6; +$white: #fff; + +$blue-teal-700: #495e74; +$grayish-blue-500: #8f9da3; :global(.light) { - --color-accent-primary: #{$mint-150}; + --color-accent-primary: #{$purple-700}; + --color-accent-primary-muted: #{$purple-200}; + --color-accent-secondary: #{$cobalt-700}; + --color-accent-tertiary: #{$purple-600}; + --color-accent-quaternary: #{$pink-400}; + + --color-accent-success: #{$green-500}; + --color-background-success: #{$green-200}; + --color-accent-warning: #{$orange-500}; + --color-background-warning: #{$orange-200}; + --color-accent-error: #{$red-500}; + --color-background-error: #{$red-200}; + --color-accent-info: #{$blue-500}; + --color-background-info: #{$blue-200}; + --color-background-primary: #{$white}; + --color-background-secondary: #{$gray-200}; + --color-background-tertiary: #{$gray-50}; + --color-background-quaternary: #{$gray-100}; + + --color-foreground-primary: #{$black}; + --color-foreground-secondary: #{$blue-teal-700}; } :global(.default) { - --color-accent-primary: #{$purple-700}; + --color-accent-primary: #{$mint-150}; + --color-accent-primary-muted: #{$mint-700}; + --color-accent-secondary: #{$purple-400}; + --color-accent-tertiary: #{$mint-250}; + --color-accent-quaternary: #{$pink-400}; + + --color-accent-success: #{$green-500}; + --color-background-success: #{$green-950}; + --color-accent-warning: #{$orange-500}; + --color-background-warning: #{$orange-950}; + --color-accent-error: #{$red-700}; + --color-background-error: #{$red-950}; + --color-accent-info: #{$blue-500}; + --color-background-info: #{$blue-950}; + --color-background-primary: #{$gray-950}; + --color-background-secondary: #{$black}; + --color-background-tertiary: #{$gray-900}; + --color-background-quaternary: #{$gray-800}; + + --color-foreground-primary: #{$white}; + --color-foreground-secondary: #{$grayish-blue-500}; } From 8dcd538bd2face6c9089cc5f3076146b60fa049d Mon Sep 17 00:00:00 2001 From: Alejandro Alonso Date: Fri, 28 Jun 2024 13:50:52 +0200 Subject: [PATCH 297/476] :sparkles: Improve external origin events for audit_log --- backend/src/app/loggers/audit.clj | 19 +++++++++++-------- backend/src/app/rpc.clj | 2 ++ backend/src/app/rpc/commands/teams.clj | 13 +++++++++++-- frontend/src/app/main/data/dashboard.cljs | 15 ++++++++------- frontend/src/app/main/repo.cljs | 14 +++++++++----- .../src/app/main/ui/dashboard/team_form.cljs | 4 +++- .../app/main/ui/onboarding/team_choice.cljs | 6 ++++-- 7 files changed, 48 insertions(+), 25 deletions(-) diff --git a/backend/src/app/loggers/audit.clj b/backend/src/app/loggers/audit.clj index b2b29170c8..3ef9e94e88 100644 --- a/backend/src/app/loggers/audit.clj +++ b/backend/src/app/loggers/audit.clj @@ -91,7 +91,8 @@ [params] (d/without-nils {:external-session-id (::rpc/external-session-id params) - :event-origin (::rpc/handler-name params)})) + :event-origin (::rpc/external-event-origin params) + :triggered-by (::rpc/handler-name params)})) ;; --- SPECS @@ -147,18 +148,20 @@ (::rpc/profile-id params) uuid/zero) - session-id (get params ::rpc/external-session-id) - props (-> (or (::replace-props resultm) - (-> params - (merge (::props resultm)) - (dissoc :profile-id) - (dissoc :type))) + session-id (get params ::rpc/external-session-id) + event-origin (get params ::rpc/external-event-origin) + props (-> (or (::replace-props resultm) + (-> params + (merge (::props resultm)) + (dissoc :profile-id) + (dissoc :type))) - (clean-props)) + (clean-props)) token-id (::actoken/id request) context (-> (::context resultm) (assoc :external-session-id session-id) + (assoc :external-event-origin event-origin) (assoc :access-token-id (some-> token-id str)) (d/without-nils))] diff --git a/backend/src/app/rpc.clj b/backend/src/app/rpc.clj index c2a85413d9..fb68076515 100644 --- a/backend/src/app/rpc.clj +++ b/backend/src/app/rpc.clj @@ -80,11 +80,13 @@ (::actoken/profile-id request)) session-id (rreq/get-header request "x-external-session-id") + event-origin (rreq/get-header request "x-event-origin") data (-> params (assoc ::handler-name handler-name) (assoc ::request-at (dt/now)) (assoc ::external-session-id session-id) + (assoc ::external-event-origin event-origin) (assoc ::session/id (::session/id request)) (assoc ::cond/key etag) (cond-> (uuid? profile-id) diff --git a/backend/src/app/rpc/commands/teams.clj b/backend/src/app/rpc/commands/teams.clj index b7a73213d9..52353de244 100644 --- a/backend/src/app/rpc/commands/teams.clj +++ b/backend/src/app/rpc/commands/teams.clj @@ -880,7 +880,7 @@ (sv/defmethod ::create-team-with-invitations {::doc/added "1.17" ::sm/params schema:create-team-with-invitations} - [{:keys [::db/pool] :as cfg} {:keys [::rpc/profile-id emails role] :as params}] + [{:keys [::db/pool] :as cfg} {:keys [::rpc/profile-id emails role name] :as params}] (db/with-atomic [conn pool] (let [features (-> (cfeat/get-enabled-features cf/flags) @@ -893,7 +893,8 @@ cfg (assoc cfg ::db/conn conn) team (create-team cfg params) profile (db/get-by-id conn :profile profile-id) - emails (into #{} (map profile/clean-email) emails)] + emails (into #{} (map profile/clean-email) emails) + context (audit/params->context params)] ;; Create invitations for all provided emails. (->> emails @@ -917,6 +918,14 @@ ::quotes/team-id (:id team) ::quotes/incr (count emails)})) + (audit/submit! cfg + {::audit/type "action" + ::audit/name "create-team" + ::audit/profile-id profile-id + ::audit/props {:name name + :features features} + ::audit/context context}) + (audit/submit! cfg {::audit/type "command" ::audit/name "create-team-invitations" diff --git a/frontend/src/app/main/data/dashboard.cljs b/frontend/src/app/main/data/dashboard.cljs index 267e299e2a..6e5e53d1a1 100644 --- a/frontend/src/app/main/data/dashboard.cljs +++ b/frontend/src/app/main/data/dashboard.cljs @@ -405,12 +405,13 @@ (dm/assert! (string? name)) (ptk/reify ::create-team ptk/WatchEvent - (watch [_ state _] + (watch [it state _] (let [{:keys [on-success on-error] :or {on-success identity on-error rx/throw}} (meta params) - features (features/get-enabled-features state)] - (->> (rp/cmd! :create-team {:name name :features features}) + features (features/get-enabled-features state) + params {:name name :features features}] + (->> (rp/cmd! :create-team (with-meta params (meta it))) (rx/tap on-success) (rx/map team-created) (rx/catch on-error)))))) @@ -421,7 +422,7 @@ [{:keys [name emails role] :as params}] (ptk/reify ::create-team-with-invitations ptk/WatchEvent - (watch [_ state _] + (watch [it state _] (let [{:keys [on-success on-error] :or {on-success identity on-error rx/throw}} (meta params) @@ -430,7 +431,7 @@ :emails emails :role role :features features}] - (->> (rp/cmd! :create-team-with-invitations params) + (->> (rp/cmd! :create-team-with-invitations (with-meta params (meta it))) (rx/tap on-success) (rx/map team-created) (rx/catch on-error)))))) @@ -553,12 +554,12 @@ :resend resend?}) ptk/WatchEvent - (watch [_ _ _] + (watch [it _ _] (let [{:keys [on-success on-error] :or {on-success identity on-error rx/throw}} (meta params) params (dissoc params :resend?)] - (->> (rp/cmd! :create-team-invitations params) + (->> (rp/cmd! :create-team-invitations (with-meta params (meta it))) (rx/tap on-success) (rx/catch on-error)))))) diff --git a/frontend/src/app/main/repo.cljs b/frontend/src/app/main/repo.cljs index 7d9bee599d..b19edf933c 100644 --- a/frontend/src/app/main/repo.cljs +++ b/frontend/src/app/main/repo.cljs @@ -10,6 +10,7 @@ [app.common.transit :as t] [app.common.uri :as u] [app.config :as cf] + [app.main.data.events :as-alias ev] [app.util.http :as http] [app.util.sse :as sse] [beicon.v2.core :as rx] @@ -93,12 +94,12 @@ (= query-params :all) :get (str/starts-with? nid "get-") :get :else :post) - request {:method method :uri (u/join cf/public-uri "api/rpc/command/" nid) :credentials "include" :headers {"accept" "application/transit+json,text/event-stream,*/*" - "x-external-session-id" (cf/external-session-id)} + "x-external-session-id" (cf/external-session-id) + "x-event-origin" (::ev/origin (meta params))} :body (when (= method :post) (if form-data? (http/form-data params) @@ -137,7 +138,8 @@ (->> (http/send! {:method :post :uri uri :credentials "include" - :headers {"x-external-session-id" (cf/external-session-id)} + :headers {"x-external-session-id" (cf/external-session-id) + "x-event-origin" (::ev/origin (meta params))} :query params}) (rx/map http/conditional-decode-transit) (rx/mapcat handle-response)))) @@ -147,7 +149,8 @@ (->> (http/send! {:method :post :uri (u/join cf/public-uri "api/export") :body (http/transit-data (dissoc params :blob?)) - :headers {"x-external-session-id" (cf/external-session-id)} + :headers {"x-external-session-id" (cf/external-session-id) + "x-event-origin" (::ev/origin (meta params))} :credentials "include" :response-type (if blob? :blob :text)}) (rx/map http/conditional-decode-transit) @@ -167,7 +170,8 @@ (->> (http/send! {:method :post :uri (u/join cf/public-uri "api/rpc/command/" (name id)) :credentials "include" - :headers {"x-external-session-id" (cf/external-session-id)} + :headers {"x-external-session-id" (cf/external-session-id) + "x-event-origin" (::ev/origin (meta params))} :body (http/form-data params)}) (rx/map http/conditional-decode-transit) (rx/mapcat handle-response))) diff --git a/frontend/src/app/main/ui/dashboard/team_form.cljs b/frontend/src/app/main/ui/dashboard/team_form.cljs index 7a37ec9c6c..1fb08a6971 100644 --- a/frontend/src/app/main/ui/dashboard/team_form.cljs +++ b/frontend/src/app/main/ui/dashboard/team_form.cljs @@ -9,6 +9,7 @@ (:require [app.common.spec :as us] [app.main.data.dashboard :as dd] + [app.main.data.events :as ev] [app.main.data.messages :as msg] [app.main.data.modal :as modal] [app.main.store :as st] @@ -51,7 +52,8 @@ (let [mdata {:on-success (partial on-create-success form) :on-error (partial on-error form)} params {:name (get-in @form [:clean-data :name])}] - (st/emit! (dd/create-team (with-meta params mdata))))) + (st/emit! (-> (dd/create-team (with-meta params mdata)) + (with-meta {::ev/origin :dashboard}))))) (defn- on-update-submit [form] diff --git a/frontend/src/app/main/ui/onboarding/team_choice.cljs b/frontend/src/app/main/ui/onboarding/team_choice.cljs index 4525d7b711..072f301d94 100644 --- a/frontend/src/app/main/ui/onboarding/team_choice.cljs +++ b/frontend/src/app/main/ui/onboarding/team_choice.cljs @@ -100,7 +100,8 @@ (let [mdata {:on-success on-success :on-error on-error} params {:name name}] - (st/emit! (dd/create-team (with-meta params mdata)) + (st/emit! (-> (dd/create-team (with-meta params mdata)) + (with-meta {::ev/origin :onboarding-without-invitations})) (ptk/data-event ::ev/event {::ev/name "onboarding-step" :label "team:create-team-and-invite-later" @@ -115,7 +116,8 @@ (let [mdata {:on-success on-success :on-error on-error}] - (st/emit! (dd/create-team-with-invitations (with-meta params mdata)) + (st/emit! (-> (dd/create-team-with-invitations (with-meta params mdata)) + (with-meta {::ev/origin :onboarding-with-invitations})) (ptk/data-event ::ev/event {::ev/name "onboarding-step" :label "team:create-team-and-invite" From 42230f263015538e847260ac833c10c8b602aafd Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Tue, 25 Jun 2024 14:59:13 +0200 Subject: [PATCH 298/476] :sparkles: Change shapes color --- .../src/app/main/data/workspace/colors.cljs | 3 +- frontend/src/app/plugins/api.cljs | 84 +++++++++++----- frontend/src/app/plugins/format.cljs | 8 ++ frontend/src/app/plugins/parser.cljs | 98 +++++++++++++++++++ 4 files changed, 167 insertions(+), 26 deletions(-) create mode 100644 frontend/src/app/plugins/format.cljs create mode 100644 frontend/src/app/plugins/parser.cljs diff --git a/frontend/src/app/main/data/workspace/colors.cljs b/frontend/src/app/main/data/workspace/colors.cljs index af771bd4aa..dc0a44d4a2 100644 --- a/frontend/src/app/main/data/workspace/colors.cljs +++ b/frontend/src/app/main/data/workspace/colors.cljs @@ -24,6 +24,7 @@ [app.util.color :as uc] [app.util.storage :refer [storage]] [beicon.v2.core :as rx] + [cuerdas.core :as str] [potok.v2.core :as ptk])) ;; A set of keys that are used for shared state identifiers @@ -377,7 +378,7 @@ (defn color-att->text [color] - {:fill-color (:color color) + {:fill-color (when (:color color) (str/lower (:color color))) :fill-opacity (:opacity color) :fill-color-ref-id (:id color) :fill-color-ref-file (:file-id color) diff --git a/frontend/src/app/plugins/api.cljs b/frontend/src/app/plugins/api.cljs index f6157303ee..a645bb7918 100644 --- a/frontend/src/app/plugins/api.cljs +++ b/frontend/src/app/plugins/api.cljs @@ -13,12 +13,14 @@ [app.common.files.helpers :as cfh] [app.common.geom.point :as gpt] [app.common.record :as cr] + [app.common.schema :as sm] [app.common.text :as txt] [app.common.types.color :as ctc] [app.common.types.shape :as cts] [app.common.uuid :as uuid] [app.main.data.changes :as ch] [app.main.data.workspace.bool :as dwb] + [app.main.data.workspace.colors :as dwc] [app.main.data.workspace.groups :as dwg] [app.main.data.workspace.media :as dwm] [app.main.store :as st] @@ -27,6 +29,7 @@ [app.plugins.fonts :as fonts] [app.plugins.library :as library] [app.plugins.page :as page] + [app.plugins.parser :as parser] [app.plugins.shape :as shape] [app.plugins.user :as user] [app.plugins.utils :as u] @@ -87,35 +90,66 @@ (let [selection (get-in @st/state [:workspace-local :selected])] (apply array (sequence (map (partial shape/shape-proxy $plugin)) selection)))) - (getColors + (shapesColors [_ shapes] - (let [objects (u/locate-objects) - shapes (->> shapes - (map #(obj/get % "$id")) - (mapcat #(cfh/get-children-with-self objects %))) + (cond + (or (not (array? shapes)) (not (every? shape/shape-proxy? shapes))) + (u/display-not-valid :shapesColors-shapes shapes) - file-id (:current-file-id @st/state) - shared-libs (:workspace-libraries @st/state) + :else + (let [objects (u/locate-objects) + shapes (->> shapes + (map #(obj/get % "$id")) + (mapcat #(cfh/get-children-with-self objects %))) - colors - (apply - array - (->> (ctc/extract-all-colors shapes file-id shared-libs) - (group-by :attrs) - (map (fn [[color attrs]] - (let [shapes-info (apply array (map (fn [{:keys [prop shape-id index]}] - #js {:property (d/name prop) - :index index - :shapeId (str shape-id)}) attrs)) - color (u/to-js color)] - (obj/set! color "shapeInfo" shapes-info) - color)))))] - colors)) + file-id (:current-file-id @st/state) + shared-libs (:workspace-libraries @st/state) - (changeColor - [_ _shapes _old-color _new-color] - ;; TODO - ) + format-entry + (fn [{:keys [prop shape-id index]}] + #js {:property (d/name prop) + :index index + :shapeId (str shape-id)}) + format-result + (fn [[color attrs]] + (let [shapes-info (apply array (map format-entry attrs)) + color (u/to-js color)] + (obj/set! color "shapeInfo" shapes-info) + color))] + (apply + array + (->> (ctc/extract-all-colors shapes file-id shared-libs) + (group-by :attrs) + (map format-result)))))) + + (replaceColor + [_ shapes old-color new-color] + + (let [old-color (parser/parse-color old-color) + new-color (parser/parse-color new-color)] + (cond + (or (not (array? shapes)) (not (every? shape/shape-proxy? shapes))) + (u/display-not-valid :replaceColor-shapes shapes) + + (not (sm/validate ::ctc/color old-color)) + (u/display-not-valid :replaceColor-oldColor old-color) + + (not (sm/validate ::ctc/color new-color)) + (u/display-not-valid :replaceColor-newColor new-color) + + :else + (let [file-id (:current-file-id @st/state) + shared-libs (:workspace-libraries @st/state) + objects (u/locate-objects) + shapes + (->> shapes + (map #(obj/get % "$id")) + (mapcat #(cfh/get-children-with-self objects %))) + + shapes-by-color + (->> (ctc/extract-all-colors shapes file-id shared-libs) + (group-by :attrs))] + (st/emit! (dwc/change-color-in-selected new-color (get shapes-by-color old-color) old-color)))))) (getRoot [_] diff --git a/frontend/src/app/plugins/format.cljs b/frontend/src/app/plugins/format.cljs new file mode 100644 index 0000000000..4b2a44c096 --- /dev/null +++ b/frontend/src/app/plugins/format.cljs @@ -0,0 +1,8 @@ +;; This Source Code Form is subject to the terms of the Mozilla Public +;; License, v. 2.0. If a copy of the MPL was not distributed with this +;; file, You can obtain one at http://mozilla.org/MPL/2.0/. +;; +;; Copyright (c) KALEIDOS INC + +(ns app.plugins.format) + diff --git a/frontend/src/app/plugins/parser.cljs b/frontend/src/app/plugins/parser.cljs new file mode 100644 index 0000000000..0b12c96435 --- /dev/null +++ b/frontend/src/app/plugins/parser.cljs @@ -0,0 +1,98 @@ +;; This Source Code Form is subject to the terms of the Mozilla Public +;; License, v. 2.0. If a copy of the MPL was not distributed with this +;; file, You can obtain one at http://mozilla.org/MPL/2.0/. +;; +;; Copyright (c) KALEIDOS INC + +(ns app.plugins.parser + (:require + [app.common.data :as d] + [app.common.uuid :as uuid] + [app.util.object :as obj] + [cuerdas.core :as str])) + +(defn parse-id + [id] + (when id (uuid/uuid id))) + +(defn parse-keyword + [kw] + (when kw (keyword kw))) + +(defn parse-hex + [color] + (when color (-> color str/lower))) + +;;export type PenpotImageData = { +;; name?: string; +;; width: number; +;; height: number; +;; mtype?: string; +;; id: string; +;; keepApectRatio?: boolean; +;;} +(defn parse-image-data + [^js image-data] + (when image-data + (d/without-nils + {:id (-> (obj/get image-data "id") parse-id) + :name (obj/get image-data "name") + :width (obj/get image-data "width") + :height (obj/get image-data "height") + :mtype (obj/get image-data "mtype") + :keep-aspect-ratio (obj/get image-data "keepApectRatio")}))) + +;; export type PenpotGradient = { +;; type: 'linear' | 'radial'; +;; startX: number; +;; startY: number; +;; endX: number; +;; endY: number; +;; width: number; +;; stops: Array<{ color: string; opacity?: number; offset: number }>; +;; } +(defn parse-gradient-stop + [^js stop] + (when stop + (d/without-nils + {:color (-> (obj/get stop "color") parse-hex) + :opacity (obj/get stop "opacity") + :offset (obj/get stop "offset")}))) + +(defn parse-gradient + [^js gradient] + (when gradient + (d/without-nils + {:type (-> (obj/get gradient "type") parse-keyword) + :start-x (obj/get gradient "startX") + :start-y (obj/get gradient "startY") + :end-x (obj/get gradient "endX") + :end-y (obj/get gradient "endY") + :width (obj/get gradient "width") + :stops (->> (obj/get gradient "stops") + (mapv parse-gradient-stop))}))) + +;; export interface PenpotColor { +;; id?: string; +;; name?: string; +;; path?: string; +;; color?: string; +;; opacity?: number; +;; refId?: string; +;; refFile?: string; +;; gradient?: PenpotGradient; +;; image?: PenpotImageData; +;; } +(defn parse-color + [^js color] + (when color + (d/without-nils + {:id (-> (obj/get color "id") parse-id) + :name (obj/get color "name") + :path (obj/get color "path") + :color (-> (obj/get color "color") parse-hex) + :opacity (obj/get color "opacity") + :ref-id (-> (obj/get color "refId") parse-id) + :ref-file (-> (obj/get color "refFile") parse-id) + :gradient (-> (obj/get color "gradient") parse-gradient) + :image (-> (obj/get color "image") parse-image-data)}))) From ac58a5b8faaffe8a98894d1671f9c1f155b60bdd Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Thu, 27 Jun 2024 10:11:48 +0200 Subject: [PATCH 299/476] :sparkles: Improved transformation from and to JS for plugins --- frontend/src/app/plugins/api.cljs | 27 +- frontend/src/app/plugins/fonts.cljs | 3 +- frontend/src/app/plugins/format.cljs | 405 +++++++++++- frontend/src/app/plugins/grid.cljs | 11 +- frontend/src/app/plugins/library.cljs | 47 +- frontend/src/app/plugins/page.cljs | 29 +- frontend/src/app/plugins/parser.cljs | 308 ++++++++- frontend/src/app/plugins/public_utils.cljs | 3 +- frontend/src/app/plugins/shape.cljs | 625 ++++-------------- frontend/src/app/plugins/text.cljs | 434 ++++++++++++ frontend/src/app/plugins/user.cljs | 3 +- frontend/src/app/plugins/utils.cljs | 55 -- frontend/src/app/plugins/viewport.cljs | 3 +- frontend/src/app/util/object.cljs | 5 + .../plugins/context_shapes_test.cljs | 23 +- 15 files changed, 1359 insertions(+), 622 deletions(-) create mode 100644 frontend/src/app/plugins/text.cljs diff --git a/frontend/src/app/plugins/api.cljs b/frontend/src/app/plugins/api.cljs index a645bb7918..2cd3938a7f 100644 --- a/frontend/src/app/plugins/api.cljs +++ b/frontend/src/app/plugins/api.cljs @@ -27,6 +27,7 @@ [app.plugins.events :as events] [app.plugins.file :as file] [app.plugins.fonts :as fonts] + [app.plugins.format :as format] [app.plugins.library :as library] [app.plugins.page :as page] [app.plugins.parser :as parser] @@ -101,26 +102,12 @@ shapes (->> shapes (map #(obj/get % "$id")) (mapcat #(cfh/get-children-with-self objects %))) - file-id (:current-file-id @st/state) - shared-libs (:workspace-libraries @st/state) + shared-libs (:workspace-libraries @st/state)] - format-entry - (fn [{:keys [prop shape-id index]}] - #js {:property (d/name prop) - :index index - :shapeId (str shape-id)}) - format-result - (fn [[color attrs]] - (let [shapes-info (apply array (map format-entry attrs)) - color (u/to-js color)] - (obj/set! color "shapeInfo" shapes-info) - color))] - (apply - array - (->> (ctc/extract-all-colors shapes file-id shared-libs) - (group-by :attrs) - (map format-result)))))) + (->> (ctc/extract-all-colors shapes file-id shared-libs) + (group-by :attrs) + (format/format-array format/format-color-result))))) (replaceColor [_ shapes old-color new-color] @@ -188,8 +175,8 @@ (p/create (fn [resolve reject] (->> (dwm/upload-media-url name file-id url) - (rx/map u/to-js) (rx/take 1) + (rx/map format/format-image) (rx/subs! resolve reject))))))) (uploadMediaData @@ -205,7 +192,7 @@ :on-image identity :on-svg identity}) (rx/take 1) - (rx/map u/to-js) + (rx/map format/format-image) (rx/subs! resolve reject)))))) (group diff --git a/frontend/src/app/plugins/fonts.cljs b/frontend/src/app/plugins/fonts.cljs index 4902277bcd..74631e1a41 100644 --- a/frontend/src/app/plugins/fonts.cljs +++ b/frontend/src/app/plugins/fonts.cljs @@ -12,6 +12,7 @@ [app.main.fonts :as fonts] [app.main.store :as st] [app.plugins.shape :as shape] + [app.plugins.text :as text] [app.plugins.utils :as u] [app.util.object :as obj] [cuerdas.core :as str])) @@ -39,7 +40,7 @@ (applyToRange [_ range variant] (cond - (not (shape/text-range? range)) + (not (text/text-range? range)) (u/display-not-valid :applyToRange range) ;; TODO: Check variant inside font variants diff --git a/frontend/src/app/plugins/format.cljs b/frontend/src/app/plugins/format.cljs index 4b2a44c096..9df43773b7 100644 --- a/frontend/src/app/plugins/format.cljs +++ b/frontend/src/app/plugins/format.cljs @@ -4,5 +4,408 @@ ;; ;; Copyright (c) KALEIDOS INC -(ns app.plugins.format) +(ns app.plugins.format + (:require + [app.common.data :as d] + [app.common.data.macros :as dm] + [app.util.object :as obj])) +(defn format-id + [id] + (when id (dm/str id))) + +(defn format-key + [kw] + (when kw (d/name kw))) + +(defn format-array + [format-fn coll] + (when (some? coll) + (apply array (keep format-fn coll)))) + +;; export type PenpotPoint = { x: number; y: number }; +(defn format-point + [{:keys [x y] :as point}] + (when (some? point) + (obj/clear-empty + #js {:x x :y y}))) + +;;export type PenpotBounds = { +;; x: number; +;; y: number; +;; width: number; +;; height: number; +;;}; +(defn format-bounds + [{:keys [x y width height] :as bounds}] + (when (some? bounds) + (obj/clear-empty + #js {:x x :y y :width width :height height}))) + +;; export interface PenpotColorShapeInfoEntry { +;; readonly property: string; +;; readonly index?: number; +;; readonly shapeId: string; +;; } +(defn format-shape-info + [{:keys [prop shape-id index] :as info}] + (when (some? info) + (obj/clear-empty + #js {:property (d/name prop) + :index index + :shapeId (dm/str shape-id)}))) + +;; export type PenpotGradient = { +;; type: 'linear' | 'radial'; +;; startX: number; +;; startY: number; +;; endX: number; +;; endY: number; +;; width: number; +;; stops: Array<{ color: string; opacity?: number; offset: number }>; +;; }; +(defn format-stop + [{:keys [color opacity offset] :as stop}] + (when (some? stop) + (obj/clear-empty #js {:color color :opacity opacity :offset offset}))) + +(defn format-gradient + [{:keys [type start-x start-y end-x end-y width stops] :as gradient}] + (when (some? gradient) + (obj/clear-empty + #js {:type (format-key type) + :startX start-x + :startY start-y + :endX end-x + :endY end-y + :width width + :stops (format-array format-stop stops)}))) + +;; export type PenpotImageData = { +;; name?: string; +;; width: number; +;; height: number; +;; mtype?: string; +;; id: string; +;; keepApectRatio?: boolean; +;; }; +(defn format-image + [{:keys [name width height mtype id keep-aspect-ratio] :as image}] + (when (some? image) + (obj/clear-empty + #js {:name name + :width width + :height height + :mtype mtype + :id (format-id id) + :keepAspectRatio keep-aspect-ratio}))) + +;; export interface PenpotColor { +;; id?: string; +;; name?: string; +;; path?: string; +;; color?: string; +;; opacity?: number; +;; refId?: string; +;; refFile?: string; +;; gradient?: PenpotGradient; +;; image?: PenpotImageData; +;; } +(defn format-color + [{:keys [id name path color opacity ref-id ref-file gradient image] :as color-data}] + (when (some? color-data) + (obj/clear-empty + #js {:id (format-id id) + :name name + :path path + :color color + :opacity opacity + :refId (format-id ref-id) + :refFile (format-id ref-file) + :gradient (format-gradient gradient) + :image (format-image image)}))) + +;; PenpotColor & PenpotColorShapeInfo +(defn format-color-result + [[color attrs]] + (let [shapes-info (apply array (map format-shape-info attrs)) + color (format-color color)] + (obj/set! color "shapeInfo" shapes-info) + color)) + + +;; export interface PenpotShadow { +;; id?: string; +;; style?: 'drop-shadow' | 'inner-shadow'; +;; offsetX?: number; +;; offsetY?: number; +;; blur?: number; +;; spread?: number; +;; hidden?: boolean; +;; color?: PenpotColor; +;; } +(defn format-shadow + [{:keys [id style offset-x offset-y blur spread hidden color] :as shadow}] + (when (some? shadow) + (obj/clear-empty + #js {:id (-> id format-id) + :style (-> style format-key) + :offsetX offset-x + :offsetY offset-y + :blur blur + :spread spread + :hidden hidden + :color (format-color color)}))) + +(defn format-shadows + [shadows] + (when (some? shadows) + (format-array format-shadow shadows))) + +;;export interface PenpotFill { +;; fillColor?: string; +;; fillOpacity?: number; +;; fillColorGradient?: PenpotGradient; +;; fillColorRefFile?: string; +;; fillColorRefId?: string; +;; fillImage?: PenpotImageData; +;;} +(defn format-fill + [{:keys [fill-color fill-opacity fill-color-gradient fill-color-ref-file fill-color-ref-id fill-image] :as fill}] + (when (some? fill) + (obj/clear-empty + #js {:fillColor fill-color + :fillOpacity fill-opacity + :fillColorGradient (format-gradient fill-color-gradient) + :fillColorRefFile (format-id fill-color-ref-file) + :fillColorRefId (format-id fill-color-ref-id) + :fillImage (format-image fill-image)}))) + +(defn format-fills + [fills] + (when (some? fills) + (format-array format-fill fills))) + +;; export interface PenpotStroke { +;; strokeColor?: string; +;; strokeColorRefFile?: string; +;; strokeColorRefId?: string; +;; strokeOpacity?: number; +;; strokeStyle?: 'solid' | 'dotted' | 'dashed' | 'mixed' | 'none' | 'svg'; +;; strokeWidth?: number; +;; strokeAlignment?: 'center' | 'inner' | 'outer'; +;; strokeCapStart?: PenpotStrokeCap; +;; strokeCapEnd?: PenpotStrokeCap; +;; strokeColorGradient?: PenpotGradient; +;; } +(defn format-stroke + [{:keys [stroke-color stroke-color-ref-file stroke-color-ref-id + stroke-opacity stroke-style stroke-width stroke-alignment + stroke-cap-start stroke-cap-end stroke-color-gradient] :as stroke}] + + (when (some? stroke) + (obj/clear-empty + #js {:strokeColor stroke-color + :strokeColorRefFile (format-id stroke-color-ref-file) + :strokeColorRefId (format-id stroke-color-ref-id) + :strokeOpacity stroke-opacity + :strokeStyle (format-key stroke-style) + :strokeWidth stroke-width + :strokeAlignment (format-key stroke-alignment) + :strokeCapStart (format-key stroke-cap-start) + :strokeCapEnd (format-key stroke-cap-end) + :strokeColorGradient (format-gradient stroke-color-gradient)}))) + +(defn format-strokes + [strokes] + (when (some? strokes) + (format-array format-stroke strokes))) + +;; export interface PenpotBlur { +;; id?: string; +;; type?: 'layer-blur'; +;; value?: number; +;; hidden?: boolean; +;; } +(defn format-blur + [{:keys [id type value hidden] :as blur}] + (when (some? blur) + (obj/clear-empty + #js {:id (format-id id) + :type (format-key type) + :value value + :hidden hidden}))) + +;; export interface PenpotExport { +;; type: 'png' | 'jpeg' | 'svg' | 'pdf'; +;; scale: number; +;; suffix: string; +;; } +(defn format-export + [{:keys [type scale suffix] :as export}] + (when (some? export) + (obj/clear-empty + #js {:type (format-key type) + :scale scale + :suffix suffix}))) + +(defn format-exports + [exports] + (when (some? exports) + (format-array format-export exports))) + +;; export interface PenpotFrameGuideColumnParams { +;; color: { color: string; opacity: number }; +;; type?: 'stretch' | 'left' | 'center' | 'right'; +;; size?: number; +;; margin?: number; +;; itemLength?: number; +;; gutter?: number; +;; } +(defn format-frame-guide-column-params + [{:keys [color type size margin item-length gutter] :as params}] + (when (some? params) + (obj/clear-empty + #js {:color (format-color color) + :type (format-key type) + :size size + :margin margin + :itemLength item-length + :gutter gutter}))) + +;; export interface PenpotFrameGuideColumn { +;; type: 'column'; +;; display: boolean; +;; params: PenpotFrameGuideColumnParams; +;; } +(defn format-frame-guide-column + [{:keys [type display params] :as guide}] + (when (some? guide) + (obj/clear-empty + #js {:type (format-key type) + :display display + :params (format-frame-guide-column-params params)}))) + +;; export interface PenpotFrameGuideRow { +;; type: 'row'; +;; display: boolean; +;; params: PenpotFrameGuideColumnParams; +;; } +(defn format-frame-guide-row + [{:keys [type display params] :as guide}] + (when (some? guide) + (obj/clear-empty + #js {:type (format-key type) + :display display + :params (format-frame-guide-column-params params)}))) + +;;export interface PenpotFrameGuideSquareParams { +;; color: { color: string; opacity: number }; +;; size?: number; +;;} +(defn format-frame-guide-square-params + [{:keys [color size] :as params}] + (when (some? params) + (obj/clear-empty + #js {:color (format-color color) + :size size}))) + +;; export interface PenpotFrameGuideSquare { +;; type: 'square'; +;; display: boolean; +;; params: PenpotFrameGuideSquareParams; +;; } + +(defn format-frame-guide-square + [{:keys [type display params] :as guide}] + (when (some? guide) + (obj/clear-empty + #js {:type (format-key type) + :display display + :params (format-frame-guide-column-params params)}))) + +(defn format-frame-guide + [{:keys [type] :as guide}] + (when (some? guide) + (case type + :column (format-frame-guide-column guide) + :row (format-frame-guide-row guide) + :square (format-frame-guide-square guide)))) + +(defn format-frame-guides + [guides] + (when (some? guides) + (format-array format-frame-guide guides))) + +;;interface PenpotPathCommand { +;; command: +;; | 'M' | 'move-to' +;; | 'Z' | 'close-path' +;; | 'L' | 'line-to' +;; | 'H' | 'line-to-horizontal' +;; | 'V' | 'line-to-vertical' +;; | 'C' | 'curve-to' +;; | 'S' | 'smooth-curve-to' +;; | 'Q' | 'quadratic-bezier-curve-to' +;; | 'T' | 'smooth-quadratic-bezier-curve-to' +;; | 'A' | 'elliptical-arc'; +;; +;; params?: { +;; x?: number; +;; y?: number; +;; c1x: number; +;; c1y: number; +;; c2x: number; +;; c2y: number; +;; rx?: number; +;; ry?: number; +;; xAxisRotation?: number; +;; largeArcFlag?: boolean; +;; sweepFlag?: boolean; +;; }; +;;} +(defn format-command-params + [{:keys [x y c1x c1y c2x c2y rx ry x-axis-rotation large-arc-flag sweep-flag] :as props}] + (when (some? props) + (obj/clear-empty + #js {:x x + :y y + :c1x c1x + :c1y c1y + :c2x c2x + :c2y c2y + :rx rx + :ry ry + :xAxisRotation x-axis-rotation + :largeArcFlag large-arc-flag + :sweepFlag sweep-flag}))) + +(defn format-command + [{:keys [command params] :as props}] + (when (some? props) + (obj/clear-empty + #js {:command (format-key command) + :params (format-command-params params)}))) + +(defn format-path-content + [content] + (when (some? content) + (format-array format-command content))) + +;; export type PenpotTrackType = 'flex' | 'fixed' | 'percent' | 'auto'; +;; +;; export interface PenpotTrack { +;; type: PenpotTrackType; +;; value: number | null; +;; } +(defn format-track + [{:keys [type value] :as track}] + (when (some? track) + (obj/clear-empty + #js {:type (-> type format-key) + :value value}))) + +(defn format-tracks + [tracks] + (when (some? tracks) + (format-array format-track tracks))) diff --git a/frontend/src/app/plugins/grid.cljs b/frontend/src/app/plugins/grid.cljs index a715e0c7a2..eb255a008c 100644 --- a/frontend/src/app/plugins/grid.cljs +++ b/frontend/src/app/plugins/grid.cljs @@ -13,6 +13,7 @@ [app.main.data.workspace.shape-layout :as dwsl] [app.main.data.workspace.transforms :as dwt] [app.main.store :as st] + [app.plugins.format :as format] [app.plugins.utils :as u] [app.util.object :as obj] [potok.v2.core :as ptk])) @@ -20,12 +21,6 @@ ;; Define in `app.plugins.shape` we do this way to prevent circular dependency (def shape-proxy? nil) -(defn- make-tracks - [tracks] - (.freeze - js/Object - (apply array (->> tracks (map u/to-js))))) - (deftype GridLayout [$plugin $file $page $id] Object @@ -190,10 +185,10 @@ (st/emit! (dwsl/update-layout #{id} {:layout-grid-dir value}))))))} {:name "rows" - :get #(-> % u/proxy->shape :layout-grid-rows make-tracks)} + :get #(-> % u/proxy->shape :layout-grid-rows format/format-tracks)} {:name "columns" - :get #(-> % u/proxy->shape :layout-grid-columns make-tracks)} + :get #(-> % u/proxy->shape :layout-grid-columns format/format-tracks)} {:name "alignItems" :get #(-> % u/proxy->shape :layout-align-items d/name) diff --git a/frontend/src/app/plugins/library.cljs b/frontend/src/app/plugins/library.cljs index 6c46530eb6..7c90146f59 100644 --- a/frontend/src/app/plugins/library.cljs +++ b/frontend/src/app/plugins/library.cljs @@ -22,7 +22,10 @@ [app.main.data.workspace.texts :as dwt] [app.main.repo :as rp] [app.main.store :as st] + [app.plugins.format :as format] + [app.plugins.parser :as parser] [app.plugins.shape :as shape] + [app.plugins.text :as text] [app.plugins.utils :as u] [app.util.object :as obj] [beicon.v2.core :as rx] @@ -49,27 +52,25 @@ (asFill [_] (let [color (u/locate-library-color $file $id)] - (u/to-js - (d/without-nils - {:fill-color (:color color) - :fill-opacity (:opacity color) - :fill-color-gradient (:gradient color) - :fill-color-ref-file $file - :fill-color-ref-id $id - :fill-image (:image color)})))) + (format/format-fill + {:fill-color (:color color) + :fill-opacity (:opacity color) + :fill-color-gradient (:gradient color) + :fill-color-ref-file $file + :fill-color-ref-id $id + :fill-image (:image color)}))) (asStroke [_] (let [color (u/locate-library-color $file $id)] - (u/to-js - (d/without-nils - {:stroke-color (:color color) - :stroke-opacity (:opacity color) - :stroke-color-gradient (:gradient color) - :stroke-color-ref-file $file - :stroke-color-ref-id $id - :stroke-image (:image color) - :stroke-style :solid - :stroke-alignment :inner})))) + (format/format-stroke + {:stroke-color (:color color) + :stroke-opacity (:opacity color) + :stroke-color-gradient (:gradient color) + :stroke-color-ref-file $file + :stroke-color-ref-id $id + :stroke-image (:image color) + :stroke-style :solid + :stroke-alignment :inner}))) (getPluginData [self key] @@ -211,10 +212,10 @@ (st/emit! (dwl/update-color color file-id)))))} {:name "gradient" - :get #(-> % u/proxy->library-color :gradient u/to-js) + :get #(-> % u/proxy->library-color :gradient format/format-gradient) :set (fn [self value] - (let [value (u/from-js value)] + (let [value (parser/parse-gradient value)] (cond (not (sm/validate ::ctc/gradient value)) (u/display-not-valid :library-color-gradient value) @@ -225,10 +226,10 @@ (st/emit! (dwl/update-color color file-id))))))} {:name "image" - :get #(-> % u/proxy->library-color :image u/to-js) + :get #(-> % u/proxy->library-color :image format/format-image) :set (fn [self value] - (let [value (u/from-js value)] + (let [value (parser/parse-image-data value)] (cond (not (sm/validate ::ctc/image-color value)) (u/display-not-valid :library-color-image value) @@ -266,7 +267,7 @@ (applyToTextRange [self range] (cond - (not (shape/text-range? range)) + (not (text/text-range? range)) (u/display-not-valid :applyToText range) :else diff --git a/frontend/src/app/plugins/page.cljs b/frontend/src/app/plugins/page.cljs index 91da5bb0c9..66ff1877fa 100644 --- a/frontend/src/app/plugins/page.cljs +++ b/frontend/src/app/plugins/page.cljs @@ -13,9 +13,11 @@ [app.common.uuid :as uuid] [app.main.data.workspace :as dw] [app.main.store :as st] + [app.plugins.parser :as parser] [app.plugins.shape :as shape] [app.plugins.utils :as u] - [app.util.object :as obj])) + [app.util.object :as obj] + [cuerdas.core :as str])) (deftype PageProxy [$plugin $file $id] Object @@ -34,11 +36,28 @@ (shape/shape-proxy $plugin $file $id uuid/zero)) (findShapes - [_] + [_ criteria] ;; Returns a lazy (iterable) of all available shapes - (when (and (some? $file) (some? $id)) - (let [page (u/locate-page $file $id)] - (apply array (sequence (map (partial shape/shape-proxy $plugin)) (keys (:objects page))))))) + (let [criteria (parser/parse-criteria criteria) + match-criteria? + (if (some? criteria) + (fn [[_ shape]] + (and + (or (not (:name criteria)) + (= (str/lower (:name criteria)) (str/lower (:name shape)))) + + (or (not (:name-like criteria)) + (str/includes? (str/lower (:name shape)) (str/lower (:name-like criteria)))) + + (or (not (:type criteria)) + (= (:type criteria) (:type shape))))) + identity)] + (when (and (some? $file) (some? $id)) + (let [page (u/locate-page $file $id) + xf (comp + (filter match-criteria?) + (map #(shape/shape-proxy $plugin $file $id (first %))))] + (apply array (sequence xf (:objects page))))))) ;; Plugin data (getPluginData diff --git a/frontend/src/app/plugins/parser.cljs b/frontend/src/app/plugins/parser.cljs index 0b12c96435..3180a0e4b7 100644 --- a/frontend/src/app/plugins/parser.cljs +++ b/frontend/src/app/plugins/parser.cljs @@ -21,7 +21,29 @@ (defn parse-hex [color] - (when color (-> color str/lower))) + (if (string? color) (-> color str/lower) color)) + +;; { +;; name?: string; +;; nameLike?: string; +;; type?: +;; | 'frame' +;; | 'group' +;; | 'bool' +;; | 'rect' +;; | 'path' +;; | 'text' +;; | 'circle' +;; | 'svg-raw' +;; | 'image'; +;; } +(defn parse-criteria + [^js criteria] + (when (some? criteria) + (d/without-nils + {:name (obj/get criteria "name") + :name-like (obj/get criteria "nameLike") + :type (-> (obj/get criteria "type") parse-keyword)}))) ;;export type PenpotImageData = { ;; name?: string; @@ -33,7 +55,7 @@ ;;} (defn parse-image-data [^js image-data] - (when image-data + (when (some? image-data) (d/without-nils {:id (-> (obj/get image-data "id") parse-id) :name (obj/get image-data "name") @@ -53,7 +75,7 @@ ;; } (defn parse-gradient-stop [^js stop] - (when stop + (when (some? stop) (d/without-nils {:color (-> (obj/get stop "color") parse-hex) :opacity (obj/get stop "opacity") @@ -61,7 +83,7 @@ (defn parse-gradient [^js gradient] - (when gradient + (when (some? gradient) (d/without-nils {:type (-> (obj/get gradient "type") parse-keyword) :start-x (obj/get gradient "startX") @@ -85,7 +107,7 @@ ;; } (defn parse-color [^js color] - (when color + (when (some? color) (d/without-nils {:id (-> (obj/get color "id") parse-id) :name (obj/get color "name") @@ -96,3 +118,279 @@ :ref-file (-> (obj/get color "refFile") parse-id) :gradient (-> (obj/get color "gradient") parse-gradient) :image (-> (obj/get color "image") parse-image-data)}))) + +;; export interface PenpotShadow { +;; id?: string; +;; style?: 'drop-shadow' | 'inner-shadow'; +;; offsetX?: number; +;; offsetY?: number; +;; blur?: number; +;; spread?: number; +;; hidden?: boolean; +;; color?: PenpotColor; +;; } +(defn parse-shadow + [^js shadow] + (when (some? shadow) + (d/without-nils + {:id (-> (obj/get shadow "id") parse-id) + :style (-> (obj/get shadow "style") parse-keyword) + :offset-x (obj/get shadow "offsetX") + :offset-y (obj/get shadow "offsetY") + :blur (obj/get shadow "blur") + :spread (obj/get shadow "spread") + :hidden (obj/get shadow "hidden") + :color (-> (obj/get shadow "color") parse-color)}))) + +(defn parse-shadows + [^js shadows] + (when (some? shadows) + (into [] (map parse-shadow) shadows))) + +;;export interface PenpotFill { +;; fillColor?: string; +;; fillOpacity?: number; +;; fillColorGradient?: PenpotGradient; +;; fillColorRefFile?: string; +;; fillColorRefId?: string; +;; fillImage?: PenpotImageData; +;;} +(defn parse-fill + [^js fill] + (when (some? fill) + (d/without-nils + {:fill-color (-> (obj/get fill "fillColor") parse-hex) + :fill-opacity (obj/get fill "fillOpacity") + :fill-color-gradient (-> (obj/get fill "fillColorGradient") parse-gradient) + :fill-color-ref-file (-> (obj/get fill "fillColorRefFile") parse-id) + :fill-color-ref-id (-> (obj/get fill "fillColorRefId") parse-id) + :fill-image (-> (obj/get fill "fillImage") parse-image-data)}))) + +(defn parse-fills + [^js fills] + (when (some? fills) + (into [] (map parse-fill) fills))) + +;; export interface PenpotStroke { +;; strokeColor?: string; +;; strokeColorRefFile?: string; +;; strokeColorRefId?: string; +;; strokeOpacity?: number; +;; strokeStyle?: 'solid' | 'dotted' | 'dashed' | 'mixed' | 'none' | 'svg'; +;; strokeWidth?: number; +;; strokeAlignment?: 'center' | 'inner' | 'outer'; +;; strokeCapStart?: PenpotStrokeCap; +;; strokeCapEnd?: PenpotStrokeCap; +;; strokeColorGradient?: PenpotGradient; +;; } +(defn parse-stroke + [^js stroke] + (when (some? stroke) + (d/without-nils + {:stroke-color (-> (obj/get stroke "strokeColor") parse-hex) + :stroke-color-ref-file (-> (obj/get stroke "strokeColorRefFile") parse-id) + :stroke-color-ref-id (-> (obj/get stroke "strokeColorRefId") parse-id) + :stroke-opacity (obj/get stroke "strokeOpacity") + :stroke-style (-> (obj/get stroke "strokeStyle") parse-keyword) + :stroke-width (obj/get stroke "strokeWidth") + :stroke-alignment (-> (obj/get stroke "strokeAlignment") parse-keyword) + :stroke-cap-start (-> (obj/get stroke "strokeCapStart") parse-keyword) + :stroke-cap-end (-> (obj/get stroke "strokeCapEnd") parse-keyword) + :stroke-color-gradient (-> (obj/get stroke "strokeColorGradient") parse-gradient)}))) + +(defn parse-strokes + [^js strokes] + (when (some? strokes) + (into [] (map parse-stroke) strokes))) + +;; export interface PenpotBlur { +;; id?: string; +;; type?: 'layer-blur'; +;; value?: number; +;; hidden?: boolean; +;; } +(defn parse-blur + [^js blur] + (when (some? blur) + (d/without-nils + {:id (-> (obj/get blur "id") parse-id) + :type (-> (obj/get blur "type") parse-keyword) + :value (obj/get blur "value") + :hidden (obj/get blur "hidden")}))) + + +;; export interface PenpotExport { +;; type: 'png' | 'jpeg' | 'svg' | 'pdf'; +;; scale: number; +;; suffix: string; +;; } +(defn parse-export + [^js export] + (when (some? export) + (d/without-nils + {:type (-> (obj/get export "type") parse-keyword) + :scale (obj/get export "scale") + :suffix (obj/get export "suffix")}))) + +(defn parse-exports + [^js exports] + (when (some? exports) + (into [] (map parse-export) exports))) + +;; export interface PenpotFrameGuideColumnParams { +;; color: { color: string; opacity: number }; +;; type?: 'stretch' | 'left' | 'center' | 'right'; +;; size?: number; +;; margin?: number; +;; itemLength?: number; +;; gutter?: number; +;; } +(defn parse-frame-guide-column-params + [^js params] + (when params + (d/without-nils + {:color (-> (obj/get params "color") parse-color) + :type (-> (obj/get params "type") parse-keyword) + :size (obj/get params "size") + :margin (obj/get params "margin") + :item-length (obj/get params "itemLength") + :gutter (obj/get params "gutter")}))) + +;; export interface PenpotFrameGuideColumn { +;; type: 'column'; +;; display: boolean; +;; params: PenpotFrameGuideColumnParams; +;; } +(defn parse-frame-guide-column + [^js guide] + (when guide + (d/without-nils + {:type (-> (obj/get guide "type") parse-keyword) + :display (obj/get guide "display") + :params (-> (obj/get guide "params") parse-frame-guide-column-params)}))) + +;; export interface PenpotFrameGuideRow { +;; type: 'row'; +;; display: boolean; +;; params: PenpotFrameGuideColumnParams; +;; } + +(defn parse-frame-guide-row + [^js guide] + (when guide + (d/without-nils + {:type (-> (obj/get guide "type") parse-keyword) + :display (obj/get guide "display") + :params (-> (obj/get guide "params") parse-frame-guide-column-params)}))) + +;;export interface PenpotFrameGuideSquareParams { +;; color: { color: string; opacity: number }; +;; size?: number; +;;} +(defn parse-frame-guide-square-params + [^js params] + (when (some? params) + (d/without-nils + {:color (-> (obj/get params "color") parse-color) + :size (obj/get params "size")}))) + +;; export interface PenpotFrameGuideSquare { +;; type: 'square'; +;; display: boolean; +;; params: PenpotFrameGuideSquareParams; +;; } +(defn parse-frame-guide-square + [^js guide] + (when guide + (d/without-nils + {:type (-> (obj/get guide "type") parse-keyword) + :display (obj/get guide "display") + :params (-> (obj/get guide "params") parse-frame-guide-column-params)}))) + +(defn parse-frame-guide + [^js guide] + (when (some? guide) + (case (obj/get guide "type") + "column" + parse-frame-guide-column + + "row" + parse-frame-guide-row + + "square" + (parse-frame-guide-square guide)))) + +(defn parse-frame-guides + [^js guides] + (when (some? guides) + (into [] (map parse-frame-guide) guides))) + +;;interface PenpotPathCommand { +;; command: +;; | 'M' | 'move-to' +;; | 'Z' | 'close-path' +;; | 'L' | 'line-to' +;; | 'H' | 'line-to-horizontal' +;; | 'V' | 'line-to-vertical' +;; | 'C' | 'curve-to' +;; | 'S' | 'smooth-curve-to' +;; | 'Q' | 'quadratic-bezier-curve-to' +;; | 'T' | 'smooth-quadratic-bezier-curve-to' +;; | 'A' | 'elliptical-arc'; +;; +;; params?: { +;; x?: number; +;; y?: number; +;; c1x: number; +;; c1y: number; +;; c2x: number; +;; c2y: number; +;; rx?: number; +;; ry?: number; +;; xAxisRotation?: number; +;; largeArcFlag?: boolean; +;; sweepFlag?: boolean; +;; }; +;;} +(defn parse-command-type + [^string command-type] + (case command-type + "M" :move-to + "Z" :close-path + "L" :line-to + "H" :line-to-horizontal + "V" :line-to-vertical + "C" :curve-to + "S" :smooth-curve-to + "Q" :quadratic-bezier-curve-to + "T" :smooth-quadratic-bezier-curve-to + "A" :elliptical-arc + (parse-keyword command-type))) + +(defn parse-command-params + [^js params] + (when (some? params) + (d/without-nils + {:x (obj/get params "x") + :y (obj/get params "y") + :c1x (obj/get params "c1x") + :c1y (obj/get params "c1y") + :c2x (obj/get params "c2x") + :c2y (obj/get params "c2y") + :rx (obj/get params "rx") + :ry (obj/get params "ry") + :x-axis-rotation (obj/get params "xAxisRotation") + :large-arc-flag (obj/get params "largeArcFlag") + :sweep-flag (obj/get params "sweepFlag")}))) + +(defn parse-command + [^js command] + (when (some? command) + (d/without-nils + {:command (-> (obj/get command "command") parse-command-type) + :params (-> (obj/get command "paras") parse-command-params)}))) + +(defn parse-path-content + [^js content] + (when (some? content) + (into [] (map parse-command) content))) diff --git a/frontend/src/app/plugins/public_utils.cljs b/frontend/src/app/plugins/public_utils.cljs index 4ea08fa57a..d3ed6a46e2 100644 --- a/frontend/src/app/plugins/public_utils.cljs +++ b/frontend/src/app/plugins/public_utils.cljs @@ -9,6 +9,7 @@ (:require [app.common.geom.rect :as grc] [app.common.geom.shapes :as gsh] + [app.plugins.format :as format] [app.plugins.shape :as shape] [app.plugins.utils :as u])) @@ -22,4 +23,4 @@ (let [shapes (->> shapes (map u/proxy->shape))] (-> (gsh/shapes->rect shapes) (grc/rect->center) - (u/to-js))))) + (format/format-point))))) diff --git a/frontend/src/app/plugins/shape.cljs b/frontend/src/app/plugins/shape.cljs index 47312f0166..fb5a88ff6b 100644 --- a/frontend/src/app/plugins/shape.cljs +++ b/frontend/src/app/plugins/shape.cljs @@ -38,243 +38,18 @@ [app.main.data.workspace.texts :as dwt] [app.main.store :as st] [app.plugins.flex :as flex] + [app.plugins.format :as format] [app.plugins.grid :as grid] + [app.plugins.parser :as parser] + [app.plugins.text :as text] [app.plugins.utils :as u] [app.util.object :as obj] [app.util.path.format :as upf] - [app.util.text-editor :as ted] [cuerdas.core :as str])) (def lib-typography-proxy? nil) (def lib-component-proxy nil) -(deftype TextRange [$plugin $file $page $id start end] - Object - (applyTypography [_ typography] - (let [typography (u/proxy->library-typography typography) - attrs (-> typography - (assoc :typography-ref-file $file) - (assoc :typography-ref-id (:id typography)) - (dissoc :id :name))] - (st/emit! (dwt/update-text-range $id start end attrs))))) - -(defn mixed-value - [values] - (let [s (set values)] - (if (= (count s) 1) (first s) "mixed"))) - -(defn text-range? - [range] - (instance? TextRange range)) - -(defn text-range - [plugin-id file-id page-id id start end] - (-> (TextRange. plugin-id file-id page-id id start end) - (crc/add-properties! - {:name "$plugin" :enumerable false :get (constantly plugin-id)} - {:name "$id" :enumerable false :get (constantly id)} - {:name "$file" :enumerable false :get (constantly file-id)} - {:name "$page" :enumerable false :get (constantly page-id)} - - {:name "shape" - :get #(-> % u/proxy->shape)} - - {:name "characters" - :get #(let [range-data - (-> % u/proxy->shape :content (txt/content-range->text+styles start end))] - (->> range-data (map :text) (str/join "")))} - - {:name "fontId" - :get #(let [range-data - (-> % u/proxy->shape :content (txt/content-range->text+styles start end))] - (->> range-data (map :font-id) mixed-value)) - - :set - (fn [_ value] - (cond - (not (string? value)) - (u/display-not-valid :fontId value) - - :else - (st/emit! (dwt/update-text-range id start end {:font-id value}))))} - - {:name "fontFamily" - :get #(let [range-data - (-> % u/proxy->shape :content (txt/content-range->text+styles start end))] - (->> range-data (map :font-family) mixed-value)) - - :set - (fn [_ value] - (cond - (not (string? value)) - (u/display-not-valid :fontFamily value) - - :else - (st/emit! (dwt/update-text-range id start end {:font-family value}))))} - - {:name "fontVariantId" - :get #(let [range-data - (-> % u/proxy->shape :content (txt/content-range->text+styles start end))] - (->> range-data (map :font-variant-id) mixed-value)) - :set - (fn [_ value] - (cond - (not (string? value)) - (u/display-not-valid :fontVariantId value) - - :else - (st/emit! (dwt/update-text-range id start end {:font-variant-id value}))))} - - {:name "fontSize" - :get #(let [range-data - (-> % u/proxy->shape :content (txt/content-range->text+styles start end))] - (->> range-data (map :font-size) mixed-value)) - :set - (fn [_ value] - (cond - (not (string? value)) - (u/display-not-valid :fontSize value) - - :else - (st/emit! (dwt/update-text-range id start end {:font-size value}))))} - - {:name "fontWeight" - :get #(let [range-data - (-> % u/proxy->shape :content (txt/content-range->text+styles start end))] - (->> range-data (map :font-weight) mixed-value)) - :set - (fn [_ value] - (cond - (not (string? value)) - (u/display-not-valid :fontWeight value) - - :else - (st/emit! (dwt/update-text-range id start end {:font-weight value}))))} - - {:name "fontStyle" - :get #(let [range-data - (-> % u/proxy->shape :content (txt/content-range->text+styles start end))] - (->> range-data (map :font-style) mixed-value)) - :set - (fn [_ value] - (cond - (not (string? value)) - (u/display-not-valid :fontStyle value) - - :else - (st/emit! (dwt/update-text-range id start end {:font-style value}))))} - - {:name "lineHeight" - :get #(let [range-data - (-> % u/proxy->shape :content (txt/content-range->text+styles start end))] - (->> range-data (map :line-height) mixed-value)) - :set - (fn [_ value] - (cond - (not (string? value)) - (u/display-not-valid :lineHeight value) - - :else - (st/emit! (dwt/update-text-range id start end {:line-height value}))))} - - {:name "letterSpacing" - :get #(let [range-data - (-> % u/proxy->shape :content (txt/content-range->text+styles start end))] - (->> range-data (map :letter-spacing) mixed-value)) - :set - (fn [_ value] - (cond - (not (string? value)) - (u/display-not-valid :letterSpacing value) - - :else - (st/emit! (dwt/update-text-range id start end {:letter-spacing value}))))} - - {:name "textTransform" - :get #(let [range-data - (-> % u/proxy->shape :content (txt/content-range->text+styles start end))] - (->> range-data (map :text-transform) mixed-value)) - :set - (fn [_ value] - (cond - (not (string? value)) - (u/display-not-valid :textTransform value) - - :else - (st/emit! (dwt/update-text-range id start end {:text-transform value}))))} - - {:name "textDecoration" - :get #(let [range-data - (-> % u/proxy->shape :content (txt/content-range->text+styles start end))] - (->> range-data (map :text-decoration) mixed-value)) - :set - (fn [_ value] - (cond - (not (string? value)) - (u/display-not-valid :textDecoration value) - - :else - (st/emit! (dwt/update-text-range id start end {:text-decoration value}))))} - - {:name "direction" - :get #(let [range-data - (-> % u/proxy->shape :content (txt/content-range->text+styles start end))] - (->> range-data (map :direction) mixed-value)) - :set - (fn [_ value] - (cond - (not (string? value)) - (u/display-not-valid :direction value) - - :else - (st/emit! (dwt/update-text-range id start end {:direction value}))))} - - {:name "align" - :get #(let [range-data - (-> % u/proxy->shape :content (txt/content-range->text+styles start end))] - (->> range-data (map :text-align) mixed-value)) - :set - (fn [_ value] - (cond - (not (string? value)) - (u/display-not-valid :text-align value) - - :else - (st/emit! (dwt/update-text-range id start end {:text-align value}))))} - - {:name "fills" - :get #(let [range-data - (-> % u/proxy->shape :content (txt/content-range->text+styles start end))] - (->> range-data (map :fills) mixed-value u/array-to-js)) - :set - (fn [_ value] - (let [value (mapv #(u/from-js %) value)] - (cond - (not (sm/validate [:vector ::cts/fill] value)) - (u/display-not-valid :fills value) - - :else - (st/emit! (dwt/update-text-range id start end {:fills value})))))}))) - -(declare shape-proxy) - -(defn parse-command - [entry] - (update entry - :command - #(case % - "M" :move-to - "Z" :close-path - "L" :line-to - "H" :line-to-horizontal - "V" :line-to-vertical - "C" :curve-to - "S" :smooth-curve-to - "Q" :quadratic-bezier-curve-to - "T" :smooth-quadratic-bezier-curve-to - "A" :elliptical-arc - (keyword %)))) - (defn text-props [shape] (d/merge @@ -282,6 +57,48 @@ (dwt/current-paragraph-values {:shape shape :attrs txt/paragraph-attrs}) (dwt/current-text-values {:shape shape :attrs txt/text-node-attrs}))) +(declare shape-proxy) +(declare shape-proxy?) + +#_(defn parse-command + [entry] + (update entry + :command + #(case % + "M" :move-to + "Z" :close-path + "L" :line-to + "H" :line-to-horizontal + "V" :line-to-vertical + "C" :curve-to + "S" :smooth-curve-to + "Q" :quadratic-bezier-curve-to + "T" :smooth-quadratic-bezier-curve-to + "A" :elliptical-arc + (keyword %)))) + +(defn- shadow-defaults + [shadow] + (d/patch-object + {:id (uuid/next) + :style :drop-shadow + :color {:color clr/black :opacity 0.2} + :offset-x 4 + :offset-y 4 + :blur 4 + :spread 0 + :hidden false} + shadow)) + +(defn- blur-defaults + [blur] + (d/patch-object + {:id (uuid/next) + :type :layer-blur + :value 4 + :hidden false} + blur)) + (deftype ShapeProxy [$plugin $file $page $id] Object (resize @@ -392,67 +209,107 @@ (getChildren [_] (let [shape (u/locate-shape $file $page $id)] - (if (or (cfh/frame-shape? shape) (cfh/group-shape? shape) (cfh/svg-raw-shape? shape) (cfh/bool-shape? shape)) - (apply array (->> (u/locate-shape $file $page $id) - :shapes - (map #(shape-proxy $plugin $file $page %)))) - (u/display-not-valid :getChildren (:type shape))))) + (cond + + (and (not (cfh/frame-shape? shape)) + (not (cfh/group-shape? shape)) + (not (cfh/svg-raw-shape? shape)) + (not (cfh/bool-shape? shape))) + (u/display-not-valid :getChildren (:type shape)) + + :else + (->> (u/locate-shape $file $page $id) + (:shapes) + (format/format-array #(shape-proxy $plugin $file $page %)))))) (appendChild [_ child] (let [shape (u/locate-shape $file $page $id)] - (if (or (cfh/frame-shape? shape) (cfh/group-shape? shape) (cfh/svg-raw-shape? shape) (cfh/bool-shape? shape)) + (cond + (and (not (cfh/frame-shape? shape)) + (not (cfh/group-shape? shape)) + (not (cfh/svg-raw-shape? shape)) + (not (cfh/bool-shape? shape))) + (u/display-not-valid :appendChild (:type shape)) + + (not (shape-proxy? child)) + (u/display-not-valid :appendChild-child child) + + :else (let [child-id (obj/get child "$id")] - (st/emit! (dw/relocate-shapes #{child-id} $id 0))) - (u/display-not-valid :appendChild (:type shape))))) + (st/emit! (dw/relocate-shapes #{child-id} $id 0)))))) (insertChild [_ index child] (let [shape (u/locate-shape $file $page $id)] - (if (or (cfh/frame-shape? shape) (cfh/group-shape? shape) (cfh/svg-raw-shape? shape) (cfh/bool-shape? shape)) + (cond + (and (not (cfh/frame-shape? shape)) + (not (cfh/group-shape? shape)) + (not (cfh/svg-raw-shape? shape)) + (not (cfh/bool-shape? shape))) + (u/display-not-valid :insertChild (:type shape)) + + (not (shape-proxy? child)) + (u/display-not-valid :insertChild-child child) + + :else (let [child-id (obj/get child "$id")] - (st/emit! (dw/relocate-shapes #{child-id} $id index))) - (u/display-not-valid :insertChild (:type shape))))) + (st/emit! (dw/relocate-shapes #{child-id} $id index)))))) ;; Only for frames (addFlexLayout [_] (let [shape (u/locate-shape $file $page $id)] - (if (cfh/frame-shape? shape) + (cond + (not (cfh/frame-shape? shape)) + (u/display-not-valid :addFlexLayout (:type shape)) + + :else (do (st/emit! (dwsl/create-layout-from-id $id :flex :from-frame? true :calculate-params? false)) - (grid/grid-layout-proxy $plugin $file $page $id)) - (u/display-not-valid :addFlexLayout (:type shape))))) + (grid/grid-layout-proxy $plugin $file $page $id))))) (addGridLayout [_] (let [shape (u/locate-shape $file $page $id)] - (if (cfh/frame-shape? shape) + (cond + (not (cfh/frame-shape? shape)) + (u/display-not-valid :addGridLayout (:type shape)) + + :else (do (st/emit! (dwsl/create-layout-from-id $id :grid :from-frame? true :calculate-params? false)) - (grid/grid-layout-proxy $plugin $file $page $id)) - (u/display-not-valid :addGridLayout (:type shape))))) + (grid/grid-layout-proxy $plugin $file $page $id))))) ;; Make masks for groups (makeMask [_] (let [shape (u/locate-shape $file $page $id)] - (if (cfh/group-shape? shape) - (st/emit! (dwg/mask-group #{$id})) - (u/display-not-valid :makeMask (:type shape))))) + (cond + (not (cfh/group-shape? shape)) + (u/display-not-valid :makeMask (:type shape)) + + :else + (st/emit! (dwg/mask-group #{$id}))))) (removeMask [_] (let [shape (u/locate-shape $file $page $id)] - (if (cfh/mask-shape? shape) - (st/emit! (dwg/unmask-group #{$id})) - (u/display-not-valid :removeMask (:type shape))))) + (cond + (not (cfh/mask-shape? shape)) + (u/display-not-valid :removeMask (:type shape)) + + :else + (st/emit! (dwg/unmask-group #{$id}))))) ;; Only for path and bool shapes (toD [_] (let [shape (u/locate-shape $file $page $id)] - (if (cfh/path-shape? shape) - (upf/format-path (:content shape)) - (u/display-not-valid :makeMask (:type shape))))) + (cond + (not (cfh/path-shape? shape)) + (u/display-not-valid :makeMask (:type shape)) + + :else + (upf/format-path (:content shape))))) ;; Text shapes (getRange @@ -469,7 +326,7 @@ (u/display-not-valid :getRange-end end) :else - (text-range $plugin $file $page $id start end)))) + (text/text-range $plugin $file $page $id start end)))) (applyTypography [_ typography] @@ -554,11 +411,6 @@ (let [[root component] (u/locate-component objects shape)] (lib-component-proxy $plugin (:component-file root) (:id component))))))) -(crc/define-properties! - ShapeProxy - {:name js/Symbol.toStringTag - :get (fn [] (str "ShapeProxy"))}) - (defn shape-proxy? [p] (instance? ShapeProxy p)) @@ -566,6 +418,11 @@ (do (set! flex/shape-proxy? shape-proxy?) (set! grid/shape-proxy? shape-proxy?)) +(crc/define-properties! + ShapeProxy + {:name js/Symbol.toStringTag + :get (fn [] (str "ShapeProxy"))}) + (defn shape-proxy ([plugin-id id] (shape-proxy plugin-id (:current-file-id @st/state) (:current-page-id @st/state) id)) @@ -782,23 +639,11 @@ (st/emit! (dwsh/update-shapes [id] #(assoc % :blend-mode value))))))} {:name "shadows" - :get #(-> % u/proxy->shape :shadow u/array-to-js) + :get #(-> % u/proxy->shape :shadow format/format-shadows) :set (fn [self value] (let [id (obj/get self "$id") - value (mapv (fn [val] - ;; Merge default shadow properties - (d/patch-object - {:id (uuid/next) - :style :drop-shadow - :color {:color clr/black :opacity 0.2} - :offset-x 4 - :offset-y 4 - :blur 4 - :spread 0 - :hidden false} - (u/from-js val #{:style :type}))) - value)] + value (mapv #(shadow-defaults (parser/parse-shadow %)) value)] (cond (not (sm/validate [:vector ::ctss/shadow] value)) (u/display-not-valid :shadows value) @@ -807,19 +652,13 @@ (st/emit! (dwsh/update-shapes [id] #(assoc % :shadow value))))))} {:name "blur" - :get #(-> % u/proxy->shape :blur u/to-js) + :get #(-> % u/proxy->shape :blur format/format-blur) :set (fn [self value] (if (nil? value) (st/emit! (dwsh/update-shapes [id] #(dissoc % :blur))) (let [id (obj/get self "$id") - value - (d/patch-object - {:id (uuid/next) - :type :layer-blur - :value 4 - :hidden false} - (u/from-js value))] + value (blur-defaults (parser/parse-blur value))] (cond (not (sm/validate ::ctsb/blur value)) (u/display-not-valid :blur value) @@ -828,11 +667,11 @@ (st/emit! (dwsh/update-shapes [id] #(assoc % :blur value)))))))} {:name "exports" - :get #(-> % u/proxy->shape :exports u/array-to-js) + :get #(-> % u/proxy->shape :exports format/format-exports) :set (fn [self value] (let [id (obj/get self "$id") - value (mapv #(u/from-js %) value)] + value (parser/parse-exports value)] (cond (not (sm/validate [:vector ::ctse/export] value)) (u/display-not-valid :exports value) @@ -989,13 +828,13 @@ ;; Strokes and fills {:name "fills" :get #(if (cfh/text-shape? data) - (-> % u/proxy->shape text-props :fills u/array-to-js) - (-> % u/proxy->shape :fills u/array-to-js)) + (-> % u/proxy->shape text-props :fills format/format-fills) + (-> % u/proxy->shape :fills format/format-fills)) :set (fn [self value] (let [shape (u/proxy->shape self) id (:id shape) - value (mapv #(u/from-js %) value)] + value (parser/parse-fills value)] (cond (not (sm/validate [:vector ::cts/fill] value)) (u/display-not-valid :fills value) @@ -1007,11 +846,11 @@ (st/emit! (dwsh/update-shapes [id] #(assoc % :fills value))))))} {:name "strokes" - :get #(-> % u/proxy->shape :strokes u/array-to-js) + :get #(-> % u/proxy->shape :strokes format/format-strokes) :set (fn [self value] (let [id (obj/get self "$id") - value (mapv #(u/from-js % #{:stroke-style :stroke-alignment}) value)] + value (parser/parse-strokes value)] (cond (not (sm/validate [:vector ::cts/stroke] value)) (u/display-not-valid :strokes value) @@ -1068,10 +907,10 @@ (flex/flex-layout-proxy plugin-id file-id page-id id))))} {:name "guides" - :get #(-> % u/proxy->shape :grids u/array-to-js) + :get #(-> % u/proxy->shape :grids format/format-frame-guides) :set (fn [self value] (let [id (obj/get self "$id") - value (mapv #(u/from-js %) value)] + value (parser/parse-frame-guides value)] (cond (not (sm/validate [:vector ::ctg/grid] value)) (u/display-not-valid :guides value) @@ -1105,213 +944,21 @@ :else (st/emit! (dwsl/update-layout #{id} {:layout-item-v-sizing value})))))}))) - (cond-> (cfh/text-shape? data) - (crc/add-properties! - {:name "characters" - :get #(-> % u/proxy->shape :content txt/content->text) - :set - (fn [self value] - (let [id (obj/get self "$id")] - ;; The user is currently editing the text. We need to update the - ;; editor as well - (cond - (or (not (string? value)) (empty? value)) - (u/display-not-valid :characters value) - - (contains? (:workspace-editor-state @st/state) id) - (let [shape (u/proxy->shape self) - editor - (-> shape - (txt/change-text value) - :content - ted/import-content - ted/create-editor-state)] - (st/emit! (dwt/update-editor-state shape editor))) - - :else - (st/emit! (dwsh/update-shapes [id] #(txt/change-text % value))))))} - - {:name "growType" - :get #(-> % u/proxy->shape :grow-type d/name) - :set - (fn [self value] - (let [id (obj/get self "$id") - value (keyword value)] - (cond - (not (contains? #{:auto-width :auto-height :fixed} value)) - (u/display-not-valid :growType value) - - :else - (st/emit! (dwsh/update-shapes [id] #(assoc % :grow-type value))))))} - - {:name "fontId" - :get #(-> % u/proxy->shape text-props :font-id) - :set - (fn [self value] - (let [id (obj/get self "$id")] - (cond - (not (string? value)) - (u/display-not-valid :fontId value) - - :else - (st/emit! (dwt/update-attrs id {:font-id value})))))} - - {:name "fontFamily" - :get #(-> % u/proxy->shape text-props :font-family) - :set - (fn [self value] - (let [id (obj/get self "$id")] - (cond - (not (string? value)) - (u/display-not-valid :fontFamily value) - - :else - (st/emit! (dwt/update-attrs id {:font-family value})))))} - - {:name "fontVariantId" - :get #(-> % u/proxy->shape text-props :font-variant-id) - :set - (fn [self value] - (let [id (obj/get self "$id")] - (cond - (not (string? value)) - (u/display-not-valid :fontVariantId value) - - :else - (st/emit! (dwt/update-attrs id {:font-variant-id value})))))} - - {:name "fontSize" - :get #(-> % u/proxy->shape text-props :font-size) - :set - (fn [self value] - (let [id (obj/get self "$id")] - (cond - (not (string? value)) - (u/display-not-valid :fontSize value) - - :else - (st/emit! (dwt/update-attrs id {:font-size value})))))} - - {:name "fontWeight" - :get #(-> % u/proxy->shape text-props :font-weight) - :set - (fn [self value] - (let [id (obj/get self "$id")] - (cond - (not (string? value)) - (u/display-not-valid :fontWeight value) - - :else - (st/emit! (dwt/update-attrs id {:font-weight value})))))} - - {:name "fontStyle" - :get #(-> % u/proxy->shape text-props :font-style) - :set - (fn [self value] - (let [id (obj/get self "$id")] - (cond - (not (string? value)) - (u/display-not-valid :fontStyle value) - - :else - (st/emit! (dwt/update-attrs id {:font-style value})))))} - - {:name "lineHeight" - :get #(-> % u/proxy->shape text-props :line-height) - :set - (fn [self value] - (let [id (obj/get self "$id")] - (cond - (not (string? value)) - (u/display-not-valid :lineHeight value) - - :else - (st/emit! (dwt/update-attrs id {:line-height value})))))} - - {:name "letterSpacing" - :get #(-> % u/proxy->shape text-props :letter-spacing) - :set - (fn [self value] - (let [id (obj/get self "$id")] - (cond - (not (string? value)) - (u/display-not-valid :letterSpacing value) - - :else - (st/emit! (dwt/update-attrs id {:letter-spacing value})))))} - - {:name "textTransform" - :get #(-> % u/proxy->shape text-props :text-transform) - :set - (fn [self value] - (let [id (obj/get self "$id")] - (cond - (not (string? value)) - (u/display-not-valid :textTransform value) - - :else - (st/emit! (dwt/update-attrs id {:text-transform value})))))} - - {:name "textDecoration" - :get #(-> % u/proxy->shape text-props :text-decoration) - :set - (fn [self value] - (let [id (obj/get self "$id")] - (cond - (not (string? value)) - (u/display-not-valid :textDecoration value) - - :else - (st/emit! (dwt/update-attrs id {:text-decoration value})))))} - - {:name "direction" - :get #(-> % u/proxy->shape text-props :text-direction) - :set - (fn [self value] - (let [id (obj/get self "$id")] - (cond - (not (string? value)) - (u/display-not-valid :textDecoration value) - - :else - (st/emit! (dwt/update-attrs id {:text-decoration value})))))} - - {:name "align" - :get #(-> % u/proxy->shape text-props :text-align) - :set - (fn [self value] - (let [id (obj/get self "$id")] - (cond - (not (string? value)) - (u/display-not-valid :align value) - - :else - (st/emit! (dwt/update-attrs id {:text-align value})))))} - - {:name "verticalAlign" - :get #(-> % u/proxy->shape text-props :vertical-align) - :set - (fn [self value] - (let [id (obj/get self "$id")] - (cond - (not (string? value)) - (u/display-not-valid :verticalAlign value) - - :else - (st/emit! (dwt/update-attrs id {:vertical-align value})))))})) + (cond-> (cfh/text-shape? data) (text/add-text-props)) (cond-> (or (cfh/path-shape? data) (cfh/bool-shape? data)) (crc/add-properties! {:name "content" - :get #(-> % u/proxy->shape :content u/array-to-js) + :get #(-> % u/proxy->shape :content format/format-path-content) :set (fn [_ value] (let [content - (->> value - (map u/from-js) - (mapv parse-command) + (->> (parser/parse-path-content value) (spp/simplify-commands))] (cond + (not (cfh/path-shape? data)) + (u/display-not-valid :content-type type) + (not (sm/validate ::ctsp/content content)) (u/display-not-valid :content value) diff --git a/frontend/src/app/plugins/text.cljs b/frontend/src/app/plugins/text.cljs new file mode 100644 index 0000000000..5a05ebaaf8 --- /dev/null +++ b/frontend/src/app/plugins/text.cljs @@ -0,0 +1,434 @@ +;; This Source Code Form is subject to the terms of the Mozilla Public +;; License, v. 2.0. If a copy of the MPL was not distributed with this +;; file, You can obtain one at http://mozilla.org/MPL/2.0/. +;; +;; Copyright (c) KALEIDOS INC + +(ns app.plugins.text + (:require + [app.common.data :as d] + [app.common.record :as crc] + [app.common.schema :as sm] + [app.common.text :as txt] + [app.common.types.shape :as cts] + [app.main.data.workspace.shapes :as dwsh] + [app.main.data.workspace.texts :as dwt] + [app.main.store :as st] + [app.plugins.format :as format] + [app.plugins.parser :as parser] + [app.plugins.utils :as u] + [app.util.object :as obj] + [app.util.text-editor :as ted] + [cuerdas.core :as str])) + +(defn mixed-value + [values] + (let [s (set values)] + (if (= (count s) 1) (first s) "mixed"))) + +(deftype TextRange [$plugin $file $page $id start end] + Object + (applyTypography [_ typography] + (let [typography (u/proxy->library-typography typography) + attrs (-> typography + (assoc :typography-ref-file $file) + (assoc :typography-ref-id (:id typography)) + (dissoc :id :name))] + (st/emit! (dwt/update-text-range $id start end attrs))))) + +(defn text-range? + [range] + (instance? TextRange range)) + +(defn text-props + [shape] + (d/merge + (dwt/current-root-values {:shape shape :attrs txt/root-attrs}) + (dwt/current-paragraph-values {:shape shape :attrs txt/paragraph-attrs}) + (dwt/current-text-values {:shape shape :attrs txt/text-node-attrs}))) + +(defn text-range + [plugin-id file-id page-id id start end] + (-> (TextRange. plugin-id file-id page-id id start end) + (crc/add-properties! + {:name "$plugin" :enumerable false :get (constantly plugin-id)} + {:name "$id" :enumerable false :get (constantly id)} + {:name "$file" :enumerable false :get (constantly file-id)} + {:name "$page" :enumerable false :get (constantly page-id)} + + {:name "shape" + :get #(-> % u/proxy->shape)} + + {:name "characters" + :get #(let [range-data + (-> % u/proxy->shape :content (txt/content-range->text+styles start end))] + (->> range-data (map :text) (str/join "")))} + + {:name "fontId" + :get #(let [range-data + (-> % u/proxy->shape :content (txt/content-range->text+styles start end))] + (->> range-data (map :font-id) mixed-value)) + + :set + (fn [_ value] + (cond + (not (string? value)) + (u/display-not-valid :fontId value) + + :else + (st/emit! (dwt/update-text-range id start end {:font-id value}))))} + + {:name "fontFamily" + :get #(let [range-data + (-> % u/proxy->shape :content (txt/content-range->text+styles start end))] + (->> range-data (map :font-family) mixed-value)) + + :set + (fn [_ value] + (cond + (not (string? value)) + (u/display-not-valid :fontFamily value) + + :else + (st/emit! (dwt/update-text-range id start end {:font-family value}))))} + + {:name "fontVariantId" + :get #(let [range-data + (-> % u/proxy->shape :content (txt/content-range->text+styles start end))] + (->> range-data (map :font-variant-id) mixed-value)) + :set + (fn [_ value] + (cond + (not (string? value)) + (u/display-not-valid :fontVariantId value) + + :else + (st/emit! (dwt/update-text-range id start end {:font-variant-id value}))))} + + {:name "fontSize" + :get #(let [range-data + (-> % u/proxy->shape :content (txt/content-range->text+styles start end))] + (->> range-data (map :font-size) mixed-value)) + :set + (fn [_ value] + (cond + (not (string? value)) + (u/display-not-valid :fontSize value) + + :else + (st/emit! (dwt/update-text-range id start end {:font-size value}))))} + + {:name "fontWeight" + :get #(let [range-data + (-> % u/proxy->shape :content (txt/content-range->text+styles start end))] + (->> range-data (map :font-weight) mixed-value)) + :set + (fn [_ value] + (cond + (not (string? value)) + (u/display-not-valid :fontWeight value) + + :else + (st/emit! (dwt/update-text-range id start end {:font-weight value}))))} + + {:name "fontStyle" + :get #(let [range-data + (-> % u/proxy->shape :content (txt/content-range->text+styles start end))] + (->> range-data (map :font-style) mixed-value)) + :set + (fn [_ value] + (cond + (not (string? value)) + (u/display-not-valid :fontStyle value) + + :else + (st/emit! (dwt/update-text-range id start end {:font-style value}))))} + + {:name "lineHeight" + :get #(let [range-data + (-> % u/proxy->shape :content (txt/content-range->text+styles start end))] + (->> range-data (map :line-height) mixed-value)) + :set + (fn [_ value] + (cond + (not (string? value)) + (u/display-not-valid :lineHeight value) + + :else + (st/emit! (dwt/update-text-range id start end {:line-height value}))))} + + {:name "letterSpacing" + :get #(let [range-data + (-> % u/proxy->shape :content (txt/content-range->text+styles start end))] + (->> range-data (map :letter-spacing) mixed-value)) + :set + (fn [_ value] + (cond + (not (string? value)) + (u/display-not-valid :letterSpacing value) + + :else + (st/emit! (dwt/update-text-range id start end {:letter-spacing value}))))} + + {:name "textTransform" + :get #(let [range-data + (-> % u/proxy->shape :content (txt/content-range->text+styles start end))] + (->> range-data (map :text-transform) mixed-value)) + :set + (fn [_ value] + (cond + (not (string? value)) + (u/display-not-valid :textTransform value) + + :else + (st/emit! (dwt/update-text-range id start end {:text-transform value}))))} + + {:name "textDecoration" + :get #(let [range-data + (-> % u/proxy->shape :content (txt/content-range->text+styles start end))] + (->> range-data (map :text-decoration) mixed-value)) + :set + (fn [_ value] + (cond + (not (string? value)) + (u/display-not-valid :textDecoration value) + + :else + (st/emit! (dwt/update-text-range id start end {:text-decoration value}))))} + + {:name "direction" + :get #(let [range-data + (-> % u/proxy->shape :content (txt/content-range->text+styles start end))] + (->> range-data (map :direction) mixed-value)) + :set + (fn [_ value] + (cond + (not (string? value)) + (u/display-not-valid :direction value) + + :else + (st/emit! (dwt/update-text-range id start end {:direction value}))))} + + {:name "align" + :get #(let [range-data + (-> % u/proxy->shape :content (txt/content-range->text+styles start end))] + (->> range-data (map :text-align) mixed-value)) + :set + (fn [_ value] + (cond + (not (string? value)) + (u/display-not-valid :text-align value) + + :else + (st/emit! (dwt/update-text-range id start end {:text-align value}))))} + + {:name "fills" + :get #(let [range-data + (-> % u/proxy->shape :content (txt/content-range->text+styles start end))] + (->> range-data (map :fills) mixed-value format/format-fills)) + :set + (fn [_ value] + (let [value (parser/parse-fills value)] + (cond + (not (sm/validate [:vector ::cts/fill] value)) + (u/display-not-valid :fills value) + + :else + (st/emit! (dwt/update-text-range id start end {:fills value})))))}))) + +(defn add-text-props + [shape-proxy] + (crc/add-properties! + shape-proxy + {:name "characters" + :get #(-> % u/proxy->shape :content txt/content->text) + :set + (fn [self value] + (let [id (obj/get self "$id")] + ;; The user is currently editing the text. We need to update the + ;; editor as well + (cond + (or (not (string? value)) (empty? value)) + (u/display-not-valid :characters value) + + (contains? (:workspace-editor-state @st/state) id) + (let [shape (u/proxy->shape self) + editor + (-> shape + (txt/change-text value) + :content + ted/import-content + ted/create-editor-state)] + (st/emit! (dwt/update-editor-state shape editor))) + + :else + (st/emit! (dwsh/update-shapes [id] #(txt/change-text % value))))))} + + {:name "growType" + :get #(-> % u/proxy->shape :grow-type d/name) + :set + (fn [self value] + (let [id (obj/get self "$id") + value (keyword value)] + (cond + (not (contains? #{:auto-width :auto-height :fixed} value)) + (u/display-not-valid :growType value) + + :else + (st/emit! (dwsh/update-shapes [id] #(assoc % :grow-type value))))))} + + {:name "fontId" + :get #(-> % u/proxy->shape text-props :font-id) + :set + (fn [self value] + (let [id (obj/get self "$id")] + (cond + (not (string? value)) + (u/display-not-valid :fontId value) + + :else + (st/emit! (dwt/update-attrs id {:font-id value})))))} + + {:name "fontFamily" + :get #(-> % u/proxy->shape text-props :font-family) + :set + (fn [self value] + (let [id (obj/get self "$id")] + (cond + (not (string? value)) + (u/display-not-valid :fontFamily value) + + :else + (st/emit! (dwt/update-attrs id {:font-family value})))))} + + {:name "fontVariantId" + :get #(-> % u/proxy->shape text-props :font-variant-id) + :set + (fn [self value] + (let [id (obj/get self "$id")] + (cond + (not (string? value)) + (u/display-not-valid :fontVariantId value) + + :else + (st/emit! (dwt/update-attrs id {:font-variant-id value})))))} + + {:name "fontSize" + :get #(-> % u/proxy->shape text-props :font-size) + :set + (fn [self value] + (let [id (obj/get self "$id")] + (cond + (not (string? value)) + (u/display-not-valid :fontSize value) + + :else + (st/emit! (dwt/update-attrs id {:font-size value})))))} + + {:name "fontWeight" + :get #(-> % u/proxy->shape text-props :font-weight) + :set + (fn [self value] + (let [id (obj/get self "$id")] + (cond + (not (string? value)) + (u/display-not-valid :fontWeight value) + + :else + (st/emit! (dwt/update-attrs id {:font-weight value})))))} + + {:name "fontStyle" + :get #(-> % u/proxy->shape text-props :font-style) + :set + (fn [self value] + (let [id (obj/get self "$id")] + (cond + (not (string? value)) + (u/display-not-valid :fontStyle value) + + :else + (st/emit! (dwt/update-attrs id {:font-style value})))))} + + {:name "lineHeight" + :get #(-> % u/proxy->shape text-props :line-height) + :set + (fn [self value] + (let [id (obj/get self "$id")] + (cond + (not (string? value)) + (u/display-not-valid :lineHeight value) + + :else + (st/emit! (dwt/update-attrs id {:line-height value})))))} + + {:name "letterSpacing" + :get #(-> % u/proxy->shape text-props :letter-spacing) + :set + (fn [self value] + (let [id (obj/get self "$id")] + (cond + (not (string? value)) + (u/display-not-valid :letterSpacing value) + + :else + (st/emit! (dwt/update-attrs id {:letter-spacing value})))))} + + {:name "textTransform" + :get #(-> % u/proxy->shape text-props :text-transform) + :set + (fn [self value] + (let [id (obj/get self "$id")] + (cond + (not (string? value)) + (u/display-not-valid :textTransform value) + + :else + (st/emit! (dwt/update-attrs id {:text-transform value})))))} + + {:name "textDecoration" + :get #(-> % u/proxy->shape text-props :text-decoration) + :set + (fn [self value] + (let [id (obj/get self "$id")] + (cond + (not (string? value)) + (u/display-not-valid :textDecoration value) + + :else + (st/emit! (dwt/update-attrs id {:text-decoration value})))))} + + {:name "direction" + :get #(-> % u/proxy->shape text-props :text-direction) + :set + (fn [self value] + (let [id (obj/get self "$id")] + (cond + (not (string? value)) + (u/display-not-valid :textDecoration value) + + :else + (st/emit! (dwt/update-attrs id {:text-decoration value})))))} + + {:name "align" + :get #(-> % u/proxy->shape text-props :text-align) + :set + (fn [self value] + (let [id (obj/get self "$id")] + (cond + (not (string? value)) + (u/display-not-valid :align value) + + :else + (st/emit! (dwt/update-attrs id {:text-align value})))))} + + {:name "verticalAlign" + :get #(-> % u/proxy->shape text-props :vertical-align) + :set + (fn [self value] + (let [id (obj/get self "$id")] + (cond + (not (string? value)) + (u/display-not-valid :verticalAlign value) + + :else + (st/emit! (dwt/update-attrs id {:vertical-align value})))))})) diff --git a/frontend/src/app/plugins/user.cljs b/frontend/src/app/plugins/user.cljs index 42cd32f6e6..220a5e08c1 100644 --- a/frontend/src/app/plugins/user.cljs +++ b/frontend/src/app/plugins/user.cljs @@ -8,6 +8,7 @@ (:require [app.common.record :as crc] [app.config :as cfg] + [app.plugins.format :as format] [app.plugins.utils :as u] [app.util.object :as obj])) @@ -54,5 +55,5 @@ (-> (ActiveUserProxy. plugin-id session-id) (add-user-properties) (crc/add-properties! - {:name "position" :get (fn [_] (-> (u/locate-presence session-id) :point u/to-js))} + {:name "position" :get (fn [_] (-> (u/locate-presence session-id) :point format/format-point))} {:name "zoom" :get (fn [_] (-> (u/locate-presence session-id) :zoom))}))) diff --git a/frontend/src/app/plugins/utils.cljs b/frontend/src/app/plugins/utils.cljs index ab3015a0b5..4df6207d89 100644 --- a/frontend/src/app/plugins/utils.cljs +++ b/frontend/src/app/plugins/utils.cljs @@ -9,13 +9,10 @@ (:require [app.common.data :as d] [app.common.data.macros :as dm] - [app.common.spec :as us] [app.common.types.container :as ctn] [app.common.types.file :as ctf] - [app.common.uuid :as uuid] [app.main.store :as st] [app.util.object :as obj] - [cuerdas.core :as str] [promesa.core :as p])) (defn locate-file @@ -143,58 +140,6 @@ (-> (get-state self attr) (mapfn)))) -(defn from-js - "Converts the object back to js" - ([obj] - (from-js obj #{:type})) - ([obj keyword-keys] - (when (some? obj) - (let [process-node - (fn process-node [node] - (reduce-kv - (fn [m k v] - (let [k (keyword (str/kebab k)) - v (cond (map? v) - (process-node v) - - (vector? v) - (mapv process-node v) - - (and (string? v) (re-matches us/uuid-rx v)) - (uuid/uuid v) - - (contains? keyword-keys k) - (keyword v) - - :else v)] - (assoc m k v))) - {} - node))] - (process-node (js->clj obj)))))) - -(defn to-js - "Converts to javascript an camelize the keys" - [obj] - (when (some? obj) - (let [result - (reduce-kv - (fn [m k v] - (let [v (cond (object? v) (to-js v) - (uuid? v) (dm/str v) - :else v)] - (assoc m (str/camel (name k)) v))) - {} - obj)] - (clj->js result)))) - -(defn array-to-js - [value] - (if (coll? value) - (.freeze - js/Object - (apply array (->> value (map to-js)))) - value)) - (defn result-p "Creates a pair of atom+promise. The promise will be resolved when the atom gets a value. We use this to return the promise to the library clients and resolve its value when a value is passed diff --git a/frontend/src/app/plugins/viewport.cljs b/frontend/src/app/plugins/viewport.cljs index c426966415..6973f33f79 100644 --- a/frontend/src/app/plugins/viewport.cljs +++ b/frontend/src/app/plugins/viewport.cljs @@ -14,6 +14,7 @@ [app.main.data.workspace.viewport :as dwv] [app.main.data.workspace.zoom :as dwz] [app.main.store :as st] + [app.plugins.format :as format] [app.plugins.utils :as u] [app.util.object :as obj])) @@ -88,6 +89,6 @@ :get (fn [_] (let [vport (dm/get-in @st/state [:workspace-local :vport])] - (.freeze js/Object (clj->js vport))))})) + (.freeze js/Object (format/format-bounds vport))))})) diff --git a/frontend/src/app/util/object.cljs b/frontend/src/app/util/object.cljs index 620303adda..30962acc5a 100644 --- a/frontend/src/app/util/object.cljs +++ b/frontend/src/app/util/object.cljs @@ -156,3 +156,8 @@ x) :else x))) + +(defn clear-empty + [^js obj] + (when (some? obj) + (js* "Object.entries(~{}).reduce((a, [k,v]) => (v == null ? a : (a[k]=v, a)), {}) " obj))) diff --git a/frontend/test/frontend_tests/plugins/context_shapes_test.cljs b/frontend/test/frontend_tests/plugins/context_shapes_test.cljs index ced9fff4b7..e5e85a3265 100644 --- a/frontend/test/frontend_tests/plugins/context_shapes_test.cljs +++ b/frontend/test/frontend_tests/plugins/context_shapes_test.cljs @@ -162,9 +162,8 @@ :offset-y 4 :blur 4 :spread 0 - :color {:color "#FABADA" :opacity 1} + :color {:color "#fabada" :opacity 1} :hidden false}])))) - (let [shadow #js {:style "fail"}] (set! (.-shadows shape) #js [shadow]) (t/is (= (-> (. shape -shadows) (aget 0) (aget "style")) "drop-shadow")))) @@ -208,20 +207,20 @@ (t/testing " - fills" (set! (.-fills shape) #js [#js {:fillColor 100}]) - (t/is (= (-> (. shape -fills) (aget 0) (aget "fillColor")) "#B1B2B5")) (t/is (= (get-in @store (get-shape-path :fills)) [{:fill-color "#B1B2B5" :fill-opacity 1}])) + (t/is (= (-> (. shape -fills) (aget 0) (aget "fillColor")) "#B1B2B5")) - (set! (.-fills shape) #js [#js {:fillColor "#FABADA" :fillOpacity 1}]) - (t/is (= (-> (. shape -fills) (aget 0) (aget "fillColor")) "#FABADA")) - (t/is (= (-> (. shape -fills) (aget 0) (aget "fillOpacity")) 1)) - (t/is (= (get-in @store (get-shape-path :fills)) [{:fill-color "#FABADA" :fill-opacity 1}]))) + (set! (.-fills shape) #js [#js {:fillColor "#fabada" :fillOpacity 1}]) + (t/is (= (get-in @store (get-shape-path :fills)) [{:fill-color "#fabada" :fill-opacity 1}])) + (t/is (= (-> (. shape -fills) (aget 0) (aget "fillColor")) "#fabada")) + (t/is (= (-> (. shape -fills) (aget 0) (aget "fillOpacity")) 1))) (t/testing " - strokes" - (set! (.-fills shape) #js [#js {:strokeColor "#FABADA" :strokeOpacity 1 :stroke-width 5}]) - (t/is (= (-> (. shape -fills) (aget 0) (aget "strokeColor")) "#FABADA")) - (t/is (= (-> (. shape -fills) (aget 0) (aget "strokeOpacity")) 1)) - (t/is (= (-> (. shape -fills) (aget 0) (aget "strokeWidth")) 5)) - (t/is (= (get-in @store (get-shape-path :fills)) [{:stroke-color "#FABADA" :stroke-opacity 1 :stroke-width 5}])))) + (set! (.-strokes shape) #js [#js {:strokeColor "#fabada" :strokeOpacity 1 :strokeWidth 5}]) + (t/is (= (get-in @store (get-shape-path :strokes)) [{:stroke-color "#fabada" :stroke-opacity 1 :stroke-width 5}])) + (t/is (= (-> (. shape -strokes) (aget 0) (aget "strokeColor")) "#fabada")) + (t/is (= (-> (. shape -strokes) (aget 0) (aget "strokeOpacity")) 1)) + (t/is (= (-> (. shape -strokes) (aget 0) (aget "strokeWidth")) 5)))) (t/testing "Relative properties" (let [frame (.createFrame context)] From fbce59e81f6e4d9770f7f7222563a7e39e904f05 Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Thu, 27 Jun 2024 15:17:32 +0200 Subject: [PATCH 300/476] :sparkles: Improved text handling in plugins --- frontend/src/app/main/fonts.cljs | 12 ++ frontend/src/app/plugins/fonts.cljs | 7 +- frontend/src/app/plugins/format.cljs | 17 +- frontend/src/app/plugins/text.cljs | 230 +++++++++++++++++---------- 4 files changed, 175 insertions(+), 91 deletions(-) diff --git a/frontend/src/app/main/fonts.cljs b/frontend/src/app/main/fonts.cljs index 31949e7fe1..d563da84e2 100644 --- a/frontend/src/app/main/fonts.cljs +++ b/frontend/src/app/main/fonts.cljs @@ -71,6 +71,13 @@ (defn get-font-data [id] (get @fontsdb id)) +(defn find-font-data [data] + (d/seek + (fn [font] + (= (select-keys font (keys data)) + data)) + (vals @fontsdb))) + (defn resolve-variants [id] (get-in @fontsdb [id :variants])) @@ -249,6 +256,11 @@ (or (d/seek #(= (:id %) font-variant-id) variants) (get-default-variant font))) +(defn find-variant + [{:keys [variants] :as font} variant-data] + (let [props (keys variant-data)] + (d/seek #(= (select-keys % props) variant-data) variants))) + ;; Font embedding functions (defn get-node-fonts "Extracts the fonts used by some node" diff --git a/frontend/src/app/plugins/fonts.cljs b/frontend/src/app/plugins/fonts.cljs index 74631e1a41..cc73ee4b1b 100644 --- a/frontend/src/app/plugins/fonts.cljs +++ b/frontend/src/app/plugins/fonts.cljs @@ -19,6 +19,9 @@ (deftype PenpotFontVariant [name fontVariantId fontWeight fontStyle]) +(defn variant-proxy? [p] + (instance? PenpotFontVariant p)) + (deftype PenpotFont [name fontId fontFamily fontStyle fontVariantId fontWeight variants] Object @@ -60,13 +63,13 @@ (instance? PenpotFont p)) (defn font-proxy - [{:keys [id name variants] :as font}] + [{:keys [id family name variants] :as font}] (when (some? font) (let [default-variant (fonts/get-default-variant font)] (PenpotFont. name id - id + family (:style default-variant) (:id default-variant) (:weight default-variant) diff --git a/frontend/src/app/plugins/format.cljs b/frontend/src/app/plugins/format.cljs index 9df43773b7..4f6047df39 100644 --- a/frontend/src/app/plugins/format.cljs +++ b/frontend/src/app/plugins/format.cljs @@ -23,6 +23,12 @@ (when (some? coll) (apply array (keep format-fn coll)))) +(defn format-mixed + [value] + (if (= value :multiple) + "mixed" + value)) + ;; export type PenpotPoint = { x: number; y: number }; (defn format-point [{:keys [x y] :as point}] @@ -183,7 +189,14 @@ (defn format-fills [fills] - (when (some? fills) + (cond + (= fills :multiple) + "mixed" + + (= fills "mixed") + "mixed" + + (some? fills) (format-array format-fill fills))) ;; export interface PenpotStroke { @@ -393,7 +406,7 @@ (format-array format-command content))) ;; export type PenpotTrackType = 'flex' | 'fixed' | 'percent' | 'auto'; -;; +;; ;; export interface PenpotTrack { ;; type: PenpotTrackType; ;; value: number | null; diff --git a/frontend/src/app/plugins/text.cljs b/frontend/src/app/plugins/text.cljs index 5a05ebaaf8..05750c9bb2 100644 --- a/frontend/src/app/plugins/text.cljs +++ b/frontend/src/app/plugins/text.cljs @@ -7,12 +7,14 @@ (ns app.plugins.text (:require [app.common.data :as d] + [app.common.data.macros :as dm] [app.common.record :as crc] [app.common.schema :as sm] [app.common.text :as txt] [app.common.types.shape :as cts] [app.main.data.workspace.shapes :as dwsh] [app.main.data.workspace.texts :as dwt] + [app.main.fonts :as fonts] [app.main.store :as st] [app.plugins.format :as format] [app.plugins.parser :as parser] @@ -21,11 +23,39 @@ [app.util.text-editor :as ted] [cuerdas.core :as str])) +;; This regex seems duplicated but probably in the future when we support diferent units +;; this will need to reflect changes for each property + +(def font-size-re #"^\d*\.?\d*$") +(def line-height-re #"^\d*\.?\d*$") +(def letter-spacing-re #"^\d*\.?\d*$") +(def text-transform-re #"uppercase|capitalize|lowercase|none") +(def text-decoration-re #"underline|line-through|none") +(def text-direction-re #"ltr|rtl") +(def text-align-re #"left|center|right|justify") +(def vertical-align-re #"top|center|bottom") + (defn mixed-value [values] (let [s (set values)] (if (= (count s) 1) (first s) "mixed"))) +(defn font-data + [font variant] + (d/without-nils + {:font-id (:id font) + :font-family (:family font) + :font-variant-id (:id variant) + :font-style (:style variant) + :font-weight (:weight variant)})) + +(defn variant-data + [variant] + (d/without-nils + {:font-variant-id (:id variant) + :font-style (:style variant) + :font-weight (:weight variant)})) + (deftype TextRange [$plugin $file $page $id start end] Object (applyTypography [_ typography] @@ -71,12 +101,14 @@ :set (fn [_ value] - (cond - (not (string? value)) - (u/display-not-valid :fontId value) + (let [font (when (string? value) (fonts/get-font-data value)) + variant (fonts/get-default-variant font)] + (cond + (not (some? font)) + (u/display-not-valid :fontId value) - :else - (st/emit! (dwt/update-text-range id start end {:font-id value}))))} + :else + (st/emit! (dwt/update-text-range id start end (font-data font variant))))))} {:name "fontFamily" :get #(let [range-data @@ -85,25 +117,29 @@ :set (fn [_ value] - (cond - (not (string? value)) - (u/display-not-valid :fontFamily value) + (let [font (fonts/find-font-data {:font-family value}) + variant (fonts/get-default-variant font)] + (cond + (not (string? value)) + (u/display-not-valid :fontFamily value) - :else - (st/emit! (dwt/update-text-range id start end {:font-family value}))))} + :else + (st/emit! (dwt/update-text-range id start end (font-data font variant))))))} {:name "fontVariantId" :get #(let [range-data (-> % u/proxy->shape :content (txt/content-range->text+styles start end))] (->> range-data (map :font-variant-id) mixed-value)) :set - (fn [_ value] - (cond - (not (string? value)) - (u/display-not-valid :fontVariantId value) + (fn [self value] + (let [font (fonts/get-font-data (obj/get self "fontId")) + variant (fonts/get-variant font value)] + (cond + (not (string? value)) + (u/display-not-valid :fontVariantId value) - :else - (st/emit! (dwt/update-text-range id start end {:font-variant-id value}))))} + :else + (st/emit! (dwt/update-text-range id start end (variant-data variant))))))} {:name "fontSize" :get #(let [range-data @@ -111,38 +147,43 @@ (->> range-data (map :font-size) mixed-value)) :set (fn [_ value] - (cond - (not (string? value)) - (u/display-not-valid :fontSize value) + (let [value (str/trim (dm/str value))] + (cond + (or (empty? value) (not (re-matches font-size-re value))) + (u/display-not-valid :fontSize value) - :else - (st/emit! (dwt/update-text-range id start end {:font-size value}))))} + :else + (st/emit! (dwt/update-text-range id start end {:font-size value})))))} {:name "fontWeight" :get #(let [range-data (-> % u/proxy->shape :content (txt/content-range->text+styles start end))] (->> range-data (map :font-weight) mixed-value)) :set - (fn [_ value] - (cond - (not (string? value)) - (u/display-not-valid :fontWeight value) + (fn [self value] + (let [font (fonts/get-font-data (obj/get self "fontId")) + variant (fonts/find-variant font {:weight (dm/str value)})] + (cond + (nil? variant) + (u/display-not-valid :fontWeight (dm/str "Font weight '" value "' not supported for the current font")) - :else - (st/emit! (dwt/update-text-range id start end {:font-weight value}))))} + :else + (st/emit! (dwt/update-text-range id start end (variant-data variant))))))} {:name "fontStyle" :get #(let [range-data (-> % u/proxy->shape :content (txt/content-range->text+styles start end))] (->> range-data (map :font-style) mixed-value)) :set - (fn [_ value] - (cond - (not (string? value)) - (u/display-not-valid :fontStyle value) + (fn [self value] + (let [font (fonts/get-font-data (obj/get self "fontId")) + variant (fonts/find-variant font {:weight (dm/str value)})] + (cond + (nil? variant) + (u/display-not-valid :fontStyle (dm/str "Font style '" value "' not supported for the current font")) - :else - (st/emit! (dwt/update-text-range id start end {:font-style value}))))} + :else + (st/emit! (dwt/update-text-range id start end (variant-data variant))))))} {:name "lineHeight" :get #(let [range-data @@ -150,12 +191,13 @@ (->> range-data (map :line-height) mixed-value)) :set (fn [_ value] - (cond - (not (string? value)) - (u/display-not-valid :lineHeight value) + (let [value (str/trim (dm/str value))] + (cond + (or (empty? value) (not (re-matches line-height-re value))) + (u/display-not-valid :lineHeight value) - :else - (st/emit! (dwt/update-text-range id start end {:line-height value}))))} + :else + (st/emit! (dwt/update-text-range id start end {:line-height value})))))} {:name "letterSpacing" :get #(let [range-data @@ -163,12 +205,13 @@ (->> range-data (map :letter-spacing) mixed-value)) :set (fn [_ value] - (cond - (not (string? value)) - (u/display-not-valid :letterSpacing value) + (let [value (str/trim (dm/str value))] + (cond + (or (empty? value) (re-matches letter-spacing-re value)) + (u/display-not-valid :letterSpacing value) - :else - (st/emit! (dwt/update-text-range id start end {:letter-spacing value}))))} + :else + (st/emit! (dwt/update-text-range id start end {:letter-spacing value})))))} {:name "textTransform" :get #(let [range-data @@ -177,7 +220,7 @@ :set (fn [_ value] (cond - (not (string? value)) + (and (string? value) (re-matches text-transform-re value)) (u/display-not-valid :textTransform value) :else @@ -190,7 +233,7 @@ :set (fn [_ value] (cond - (not (string? value)) + (and (string? value) (re-matches text-decoration-re value)) (u/display-not-valid :textDecoration value) :else @@ -203,7 +246,7 @@ :set (fn [_ value] (cond - (not (string? value)) + (and (string? value) (re-matches text-direction-re value)) (u/display-not-valid :direction value) :else @@ -216,7 +259,7 @@ :set (fn [_ value] (cond - (not (string? value)) + (and (string? value) (re-matches text-align-re value)) (u/display-not-valid :text-align value) :else @@ -278,144 +321,157 @@ (st/emit! (dwsh/update-shapes [id] #(assoc % :grow-type value))))))} {:name "fontId" - :get #(-> % u/proxy->shape text-props :font-id) + :get #(-> % u/proxy->shape text-props :font-id format/format-mixed) :set (fn [self value] - (let [id (obj/get self "$id")] + (let [id (obj/get self "$id") + font (when (string? value) (fonts/get-font-data value)) + variant (fonts/get-default-variant font)] (cond - (not (string? value)) + (not (some? font)) (u/display-not-valid :fontId value) :else - (st/emit! (dwt/update-attrs id {:font-id value})))))} + (st/emit! (dwt/update-attrs id (font-data font variant))))))} {:name "fontFamily" - :get #(-> % u/proxy->shape text-props :font-family) + :get #(-> % u/proxy->shape text-props :font-family format/format-mixed) :set (fn [self value] - (let [id (obj/get self "$id")] + (let [id (obj/get self "$id") + font (fonts/find-font-data {:font-family value}) + variant (fonts/get-default-variant font)] (cond - (not (string? value)) + (not (some? font)) (u/display-not-valid :fontFamily value) :else - (st/emit! (dwt/update-attrs id {:font-family value})))))} + (st/emit! (dwt/update-attrs id (font-data font variant))))))} {:name "fontVariantId" - :get #(-> % u/proxy->shape text-props :font-variant-id) + :get #(-> % u/proxy->shape text-props :font-variant-id format/format-mixed) :set (fn [self value] - (let [id (obj/get self "$id")] + (let [id (obj/get self "$id") + font (fonts/get-font-data (obj/get self "fontId")) + variant (fonts/get-variant font value)] (cond - (not (string? value)) + (not (some? variant)) (u/display-not-valid :fontVariantId value) :else - (st/emit! (dwt/update-attrs id {:font-variant-id value})))))} + (st/emit! (dwt/update-attrs id (variant-data variant))))))} {:name "fontSize" - :get #(-> % u/proxy->shape text-props :font-size) + :get #(-> % u/proxy->shape text-props :font-size format/format-mixed) :set (fn [self value] - (let [id (obj/get self "$id")] + (let [id (obj/get self "$id") + value (str/trim (dm/str value))] (cond - (not (string? value)) + (or (empty? value) (not (re-matches font-size-re value))) (u/display-not-valid :fontSize value) :else (st/emit! (dwt/update-attrs id {:font-size value})))))} {:name "fontWeight" - :get #(-> % u/proxy->shape text-props :font-weight) + :get #(-> % u/proxy->shape text-props :font-weight format/format-mixed) :set (fn [self value] - (let [id (obj/get self "$id")] + (let [id (obj/get self "$id") + font (fonts/get-font-data (obj/get self "fontId")) + variant (fonts/find-variant font {:weight (dm/str value)})] (cond - (not (string? value)) - (u/display-not-valid :fontWeight value) + (nil? variant) + (u/display-not-valid :fontWeight (dm/str "Font weight '" value "' not supported for the current font")) :else - (st/emit! (dwt/update-attrs id {:font-weight value})))))} + (st/emit! (dwt/update-attrs id (variant-data variant))))))} {:name "fontStyle" - :get #(-> % u/proxy->shape text-props :font-style) + :get #(-> % u/proxy->shape text-props :font-style format/format-mixed) :set (fn [self value] - (let [id (obj/get self "$id")] + (let [id (obj/get self "$id") + font (fonts/get-font-data (obj/get self "fontId")) + variant (fonts/find-variant font {:weight (dm/str value)})] (cond - (not (string? value)) - (u/display-not-valid :fontStyle value) + (nil? variant) + (u/display-not-valid :fontStyle (dm/str "Font style '" value "' not supported for the current font")) :else - (st/emit! (dwt/update-attrs id {:font-style value})))))} + (st/emit! (dwt/update-attrs id (variant-data variant))))))} {:name "lineHeight" - :get #(-> % u/proxy->shape text-props :line-height) + :get #(-> % u/proxy->shape text-props :line-height format/format-mixed) :set (fn [self value] - (let [id (obj/get self "$id")] + (let [id (obj/get self "$id") + value (str/trim (dm/str value))] (cond - (not (string? value)) + (or (empty? value) (not (re-matches line-height-re value))) (u/display-not-valid :lineHeight value) :else (st/emit! (dwt/update-attrs id {:line-height value})))))} {:name "letterSpacing" - :get #(-> % u/proxy->shape text-props :letter-spacing) + :get #(-> % u/proxy->shape text-props :letter-spacing format/format-mixed) :set (fn [self value] - (let [id (obj/get self "$id")] + (let [id (obj/get self "$id") + value (str/trim (dm/str value))] (cond - (not (string? value)) + (or (empty? value) (re-matches letter-spacing-re value)) (u/display-not-valid :letterSpacing value) :else (st/emit! (dwt/update-attrs id {:letter-spacing value})))))} {:name "textTransform" - :get #(-> % u/proxy->shape text-props :text-transform) + :get #(-> % u/proxy->shape text-props :text-transform format/format-mixed) :set (fn [self value] (let [id (obj/get self "$id")] (cond - (not (string? value)) + (and (string? value) (re-matches text-transform-re value)) (u/display-not-valid :textTransform value) :else (st/emit! (dwt/update-attrs id {:text-transform value})))))} {:name "textDecoration" - :get #(-> % u/proxy->shape text-props :text-decoration) + :get #(-> % u/proxy->shape text-props :text-decoration format/format-mixed) :set (fn [self value] (let [id (obj/get self "$id")] (cond - (not (string? value)) + (and (string? value) (re-matches text-decoration-re value)) (u/display-not-valid :textDecoration value) :else (st/emit! (dwt/update-attrs id {:text-decoration value})))))} {:name "direction" - :get #(-> % u/proxy->shape text-props :text-direction) + :get #(-> % u/proxy->shape text-props :text-direction format/format-mixed) :set (fn [self value] (let [id (obj/get self "$id")] (cond - (not (string? value)) + (and (string? value) (re-matches text-direction-re value)) (u/display-not-valid :textDecoration value) :else (st/emit! (dwt/update-attrs id {:text-decoration value})))))} {:name "align" - :get #(-> % u/proxy->shape text-props :text-align) + :get #(-> % u/proxy->shape text-props :text-align format/format-mixed) :set (fn [self value] (let [id (obj/get self "$id")] (cond - (not (string? value)) + (and (string? value) (re-matches text-align-re value)) (u/display-not-valid :align value) :else @@ -427,7 +483,7 @@ (fn [self value] (let [id (obj/get self "$id")] (cond - (not (string? value)) + (and (string? value) (re-matches vertical-align-re value)) (u/display-not-valid :verticalAlign value) :else From 741bf3b6664567e3a3683a7ead37bbc328eb6cc3 Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Mon, 1 Jul 2024 15:35:31 +0200 Subject: [PATCH 301/476] :sparkles: New plugins permissions dialog --- frontend/resources/images/icons/oauth-1.svg | 1 + frontend/resources/images/icons/oauth-2.svg | 1 + frontend/resources/images/icons/oauth-3.svg | 1 + frontend/resources/images/icons/puzzle.svg | 1 + frontend/src/app/config.cljs | 1 + frontend/src/app/main/ui/icons.cljs | 4 + .../src/app/main/ui/workspace/main_menu.cljs | 3 +- .../src/app/main/ui/workspace/plugins.cljs | 136 ++++++++++++------ .../src/app/main/ui/workspace/plugins.scss | 88 ++++++++++-- .../app/main/ui/workspace/top_toolbar.cljs | 13 ++ frontend/src/app/plugins.cljs | 33 +++++ frontend/src/app/plugins/events.cljs | 28 ++-- frontend/src/app/plugins/shape.cljs | 17 --- frontend/translations/en.po | 24 ++++ frontend/translations/es.po | 24 ++++ 15 files changed, 291 insertions(+), 84 deletions(-) create mode 100644 frontend/resources/images/icons/oauth-1.svg create mode 100644 frontend/resources/images/icons/oauth-2.svg create mode 100644 frontend/resources/images/icons/oauth-3.svg create mode 100644 frontend/resources/images/icons/puzzle.svg diff --git a/frontend/resources/images/icons/oauth-1.svg b/frontend/resources/images/icons/oauth-1.svg new file mode 100644 index 0000000000..49a0dec9bf --- /dev/null +++ b/frontend/resources/images/icons/oauth-1.svg @@ -0,0 +1 @@ + diff --git a/frontend/resources/images/icons/oauth-2.svg b/frontend/resources/images/icons/oauth-2.svg new file mode 100644 index 0000000000..06c59a1852 --- /dev/null +++ b/frontend/resources/images/icons/oauth-2.svg @@ -0,0 +1 @@ + diff --git a/frontend/resources/images/icons/oauth-3.svg b/frontend/resources/images/icons/oauth-3.svg new file mode 100644 index 0000000000..db38820bcf --- /dev/null +++ b/frontend/resources/images/icons/oauth-3.svg @@ -0,0 +1 @@ + diff --git a/frontend/resources/images/icons/puzzle.svg b/frontend/resources/images/icons/puzzle.svg new file mode 100644 index 0000000000..6e978bac53 --- /dev/null +++ b/frontend/resources/images/icons/puzzle.svg @@ -0,0 +1 @@ + diff --git a/frontend/src/app/config.cljs b/frontend/src/app/config.cljs index b2e3d95c4f..286a179038 100644 --- a/frontend/src/app/config.cljs +++ b/frontend/src/app/config.cljs @@ -110,6 +110,7 @@ (def privacy-policy-uri (obj/get global "penpotPrivacyPolicyURI" "https://penpot.app/privacy")) (def flex-help-uri (obj/get global "penpotGridHelpURI" "https://help.penpot.app/user-guide/flexible-layouts/")) (def grid-help-uri (obj/get global "penpotGridHelpURI" "https://help.penpot.app/user-guide/flexible-layouts/")) +(def plugins-list-uri (obj/get global "penpotPluginsListUri" "https://penpot-docs-plugins.netlify.app/technical-guide/plugins/getting-started/#examples")) (defn- normalize-uri [uri-str] diff --git a/frontend/src/app/main/ui/icons.cljs b/frontend/src/app/main/ui/icons.cljs index 3191194248..324eb8098c 100644 --- a/frontend/src/app/main/ui/icons.cljs +++ b/frontend/src/app/main/ui/icons.cljs @@ -178,6 +178,9 @@ (def ^:icon msg-success (icon-xref :msg-success)) (def ^:icon msg-warning (icon-xref :msg-warning)) (def ^:icon open-link (icon-xref :open-link)) +(def ^:icon oauth-1 (icon-xref :oauth-1)) +(def ^:icon oauth-2 (icon-xref :oauth-2)) +(def ^:icon oauth-3 (icon-xref :oauth-3)) (def ^:icon padding-bottom (icon-xref :padding-bottom)) (def ^:icon padding-extended (icon-xref :padding-extended)) (def ^:icon padding-left (icon-xref :padding-left)) @@ -190,6 +193,7 @@ (def ^:icon picker (icon-xref :picker)) (def ^:icon pin (icon-xref :pin)) (def ^:icon play (icon-xref :play)) +(def ^:icon puzzle (icon-xref :puzzle)) (def ^:icon rectangle (icon-xref :rectangle)) (def ^:icon reload (icon-xref :reload)) (def ^:icon remove-icon (icon-xref :remove)) diff --git a/frontend/src/app/main/ui/workspace/main_menu.cljs b/frontend/src/app/main/ui/workspace/main_menu.cljs index 2abca79a0c..d2356c3f17 100644 --- a/frontend/src/app/main/ui/workspace/main_menu.cljs +++ b/frontend/src/app/main/ui/workspace/main_menu.cljs @@ -30,6 +30,7 @@ [app.main.ui.hooks.resize :as r] [app.main.ui.icons :as i] [app.main.ui.workspace.plugins :as uwp] + [app.plugins :as plugins] [app.util.dom :as dom] [app.util.i18n :as i18n :refer [tr]] [app.util.keyboard :as kbd] @@ -608,7 +609,7 @@ ::mf/wrap [mf/memo]} [{:keys [open-plugins on-close]}] (when (features/active-feature? @st/state "plugins/runtime") - (let [plugins (uwp/load-from-store)] + (let [plugins (plugins/load-from-store)] [:& dropdown-menu {:show true :list-class (stl/css-case :sub-menu true :plugins true) :on-close on-close} diff --git a/frontend/src/app/main/ui/workspace/plugins.cljs b/frontend/src/app/main/ui/workspace/plugins.cljs index cf55b802d0..e940151242 100644 --- a/frontend/src/app/main/ui/workspace/plugins.cljs +++ b/frontend/src/app/main/ui/workspace/plugins.cljs @@ -9,22 +9,23 @@ (:require [app.common.data :as d] [app.common.data.macros :as dm] - [app.common.uuid :as uuid] + [app.config :as cf] [app.main.data.modal :as modal] + [app.main.store :as st] [app.main.ui.components.search-bar :refer [search-bar]] [app.main.ui.components.title-bar :refer [title-bar]] [app.main.ui.icons :as i] + [app.plugins :as plugins] [app.util.avatars :as avatars] + [app.util.dom :as dom] [app.util.http :as http] [app.util.i18n :as i18n :refer [tr]] - [app.util.object :as obj] [beicon.v2.core :as rx] [rumext.v2 :as mf])) (def ^:private close-icon (i/icon-xref :close (stl/css :close-icon))) - (mf/defc plugin-entry [{:keys [index manifest on-open-plugin on-remove-plugin]}] @@ -55,20 +56,6 @@ [:button {:class (stl/css :trash-button) :on-click handle-delete-click} i/delete]])) -(defn load-from-store - [] - (let [ls (.-localStorage js/window) - plugins-val (.getItem ls "plugins")] - (when plugins-val - (let [plugins-js (.parse js/JSON plugins-val)] - (js->clj plugins-js {:keywordize-keys true}))))) - -(defn save-to-store - [plugins] - (let [ls (.-localStorage js/window) - plugins-js (clj->js plugins) - plugins-val (.stringify js/JSON plugins-js)] - (.setItem ls "plugins" plugins-val))) (defn open-plugin! [{:keys [plugin-id name description host code icon permissions]}] @@ -123,27 +110,20 @@ (rx/map :body) (rx/subs! (fn [body] - (let [name (obj/get body "name") - desc (obj/get body "description") - code (obj/get body "code") - icon (obj/get body "icon") - permissions (obj/get body "permissions") - origin (obj/get (js/URL. plugin-url) "origin") - plugin-id (str (uuid/next)) + (let [plugin (plugins/parser-manifest plugin-url body) + new-state (vec (conj (seq plugins-state) plugin))] - new-state - (conj plugins-state - {:plugin-id plugin-id - :name name - :description desc - :host origin - :code code - :icon icon - :permissions (->> permissions (mapv str))})] (reset! input-status* :success) (reset! plugin-url* "") (reset! plugins-state* new-state) - (save-to-store new-state))) + + (modal/show! + :plugin-permissions + {:plugin plugin + :on-accept + #(do + (plugins/save-to-store new-state) + (modal/show! :plugin-management {}))}))) (fn [_] (reset! input-status* :error-url)))))) @@ -162,16 +142,15 @@ (keep-indexed (fn [idx item] (when (not= idx plugin-index) item))) plugins-state)] - (reset! plugins-state* new-state) - (save-to-store new-state))))] + (plugins/save-to-store new-state))))] (mf/use-effect (fn [] - (reset! plugins-state* (d/nilv (load-from-store) [])))) + (reset! plugins-state* (d/nilv (plugins/load-from-store) [])))) [:div {:class (stl/css :modal-overlay)} - [:div {:class (stl/css :modal-dialog)} + [:div {:class (stl/css :modal-dialog :plugin-management)} [:button {:class (stl/css :close-btn) :on-click handle-close-dialog} close-icon] [:div {:class (stl/css :modal-title)} (tr "workspace.plugins.title")] @@ -183,7 +162,6 @@ :class (stl/css-case :input-error error?)}] [:button {:class (stl/css :primary-button) - :disabled (empty? plugin-url) :on-click handle-install-click} (tr "workspace.plugins.install")]] (when error? @@ -194,9 +172,9 @@ (if (empty? plugins-state) [:div {:class (stl/css :plugins-empty)} - [:div {:class (stl/css :plugins-empty-logo)} i/rocket] + [:div {:class (stl/css :plugins-empty-logo)} i/puzzle] [:div {:class (stl/css :plugins-empty-text)} (tr "workspace.plugins.empty-plugins")] - [:a {:class (stl/css :plugins-link) :href "#"} + [:a {:class (stl/css :plugins-link) :href cf/plugins-list-uri :target "_blank"} (tr "workspace.plugins.plugin-list-link") i/external-link]] [:* @@ -204,10 +182,84 @@ :title (tr "workspace.plugins.installed-plugins")}] [:div {:class (stl/css :plugins-list)} - (for [[idx manifest] (d/enumerate plugins-state)] [:& plugin-entry {:key (dm/str "plugin-" idx) :index idx :manifest manifest :on-open-plugin handle-open-plugin :on-remove-plugin handle-remove-plugin}])]])]]])) + +(mf/defc plugins-permissions-dialog + {::mf/register modal/components + ::mf/register-as :plugin-permissions} + [{:keys [plugin on-accept]}] + + (let [{:keys [permissions]} plugin + permissions (set permissions) + + handle-accept-dialog + (mf/use-callback + (fn [event] + (dom/prevent-default event) + (st/emit! (modal/hide)) + (on-accept))) + + handle-close-dialog + (mf/use-callback + (fn [event] + (dom/prevent-default event) + (st/emit! (modal/hide))))] + + [:div {:class (stl/css :modal-overlay)} + [:div {:class (stl/css :modal-dialog :plugin-permissions)} + [:button {:class (stl/css :close-btn) :on-click handle-close-dialog} close-icon] + [:div {:class (stl/css :modal-title)} (tr "workspace.plugins.permissions.title")] + + [:div {:class (stl/css :modal-content)} + [:div {:class (stl/css :permissions-list)} + (when (contains? permissions "content:read") + [:div {:class (stl/css :permissions-list-entry)} + i/oauth-1 + [:p {:class (stl/css :permissions-list-text)} + (tr "workspace.plugins.permissions.disclaimer")]]) + + (when (contains? permissions "content:write") + [:div {:class (stl/css :permissions-list-entry)} + i/oauth-1 + [:p {:class (stl/css :permissions-list-text)} + (tr "workspace.plugins.permissions.content-read")]]) + + (when (contains? permissions "user:read") + [:div {:class (stl/css :permissions-list-entry)} + i/oauth-2 + [:p {:class (stl/css :permissions-list-text)} + (tr "workspace.plugins.permissions.content-write")]]) + + (when (contains? permissions "library:read") + [:div {:class (stl/css :permissions-list-entry)} + i/oauth-3 + [:p {:class (stl/css :permissions-list-text)} + (tr "workspace.plugins.permissions.user-read")]]) + + (when (contains? permissions "library:write") + [:div {:class (stl/css :permissions-list-entry)} + i/oauth-3 + [:p {:class (stl/css :permissions-list-text)} + (tr "workspace.plugins.permissions.library-read")]])] + + [:div {:class (stl/css :permissions-disclaimer)} + (tr "workspace.plugins.permissions.library-write")]] + + [:div {:class (stl/css :modal-footer)} + [:div {:class (stl/css :action-buttons)} + [:input + {:class (stl/css :cancel-button :button-expand) + :type "button" + :value (tr "ds.confirm-cancel") + :on-click handle-close-dialog}] + + [:input + {:class (stl/css :primary-button :button-expand) + :type "button" + :value (tr "ds.confirm-allow") + :on-click handle-accept-dialog}]]]]])) diff --git a/frontend/src/app/main/ui/workspace/plugins.scss b/frontend/src/app/main/ui/workspace/plugins.scss index 0ff79d4885..fd9114e813 100644 --- a/frontend/src/app/main/ui/workspace/plugins.scss +++ b/frontend/src/app/main/ui/workspace/plugins.scss @@ -13,15 +13,27 @@ .modal-dialog { @extend .modal-container-base; display: grid; - grid-template-rows: auto 1fr; - width: $s-472; - max-width: $s-472; + grid-template-rows: auto 1fr auto; + + &.plugin-permissions { + width: $s-412; + max-width: $s-412; + } + + &.plugin-management { + width: $s-472; + max-width: $s-472; + } hr { border-color: $db-tertiary; } } +.modal-footer { + margin-top: 2rem; +} + .close-btn { @extend .modal-close-btn-base; } @@ -40,8 +52,15 @@ .modal-content { display: flex; flex-direction: column; - height: $s-380; - max-height: $s-380; + + .plugin-permissions & { + gap: $s-20; + } + + .plugin-management & { + height: $s-380; + max-height: $s-380; + } } .primary-button { @@ -50,6 +69,17 @@ padding: $s-0 $s-16; } +.button-expand { + width: 100%; + margin: 0; +} + +.cancel-button { + @extend .button-secondary; + @include headlineSmallTypography; + padding: $s-0 $s-16; +} + .search-icon { @include flexCenter; width: $s-20; @@ -87,7 +117,7 @@ .plugins-list { padding-top: $s-20; overflow-x: hidden; - overflow-y: scroll; + overflow-y: auto; flex: 1; display: flex; flex-direction: column; @@ -148,8 +178,8 @@ svg { width: $s-16; height: $s-16; - fill: $df-secondary; - stroke-width: 0; + stroke: $df-secondary; + fill: none; } } @@ -190,3 +220,45 @@ div.input-error { fill: none; } } + +.plugin-permissions { +} + +.permissions-list { + display: flex; + flex-direction: column; + gap: $s-24; +} + +.permissions-list-entry { + display: grid; + grid-template-columns: 24px 1fr; + gap: $s-16; + align-items: center; + + svg { + width: $s-24; + height: $s-24; + stroke: $da-primary; + fill: none; + } +} + +.permissions-list-text { + @include bodySmallTypography; + margin: 0; + color: $df-secondary; +} + +.permissions-disclaimer { + @include bodySmallTypography; + padding: $s-16; + background: $db-tertiary; + color: $df-secondary; + border-radius: $br-4; +} + +.action-buttons { + display: flex; + gap: $s-12; +} diff --git a/frontend/src/app/main/ui/workspace/top_toolbar.cljs b/frontend/src/app/main/ui/workspace/top_toolbar.cljs index f7b0bcf990..dfbb3fe1ae 100644 --- a/frontend/src/app/main/ui/workspace/top_toolbar.cljs +++ b/frontend/src/app/main/ui/workspace/top_toolbar.cljs @@ -11,11 +11,13 @@ [app.common.geom.point :as gpt] [app.common.media :as cm] [app.main.data.events :as ev] + [app.main.data.modal :as modal] [app.main.data.workspace :as dw] [app.main.data.workspace.common :as dwc] [app.main.data.workspace.media :as dwm] [app.main.data.workspace.path.state :as pst] [app.main.data.workspace.shortcuts :as sc] + [app.main.features :as features] [app.main.refs :as refs] [app.main.store :as st] [app.main.ui.components.file-uploader :refer [file-uploader]] @@ -192,6 +194,17 @@ :data-testid "path-btn"} i/path]] + (when (features/active-feature? @st/state "plugins/runtime") + [:li + [:button + {:title (tr "workspace.toolbar.plugins" (sc/get-tooltip :plugins)) + :aria-label (tr "workspace.toolbar.plugins" (sc/get-tooltip :plugins)) + :class (stl/css :main-toolbar-options-button) + :on-click #(modal/show! :plugin-management {}) + :data-tool "plugins" + :data-testid "plugins-btn"} + i/puzzle]]) + (when *assert* [:li [:button diff --git a/frontend/src/app/plugins.cljs b/frontend/src/app/plugins.cljs index 36346de271..7026336544 100644 --- a/frontend/src/app/plugins.cljs +++ b/frontend/src/app/plugins.cljs @@ -7,6 +7,7 @@ (ns app.plugins "RPC for plugins runtime." (:require + [app.common.uuid :as uuid] [app.main.features :as features] [app.main.store :as st] [app.plugins.api :as api] @@ -33,3 +34,35 @@ (rx/take 1) (rx/tap init-plugins-runtime!) (rx/ignore))))) + +(defn parser-manifest + [plugin-url ^js manifest] + (let [name (obj/get manifest "name") + desc (obj/get manifest "description") + code (obj/get manifest "code") + icon (obj/get manifest "icon") + permissions (obj/get manifest "permissions") + origin (obj/get (js/URL. plugin-url) "origin") + plugin-id (str (uuid/next))] + {:plugin-id plugin-id + :name name + :description desc + :host origin + :code code + :icon icon + :permissions (->> permissions (mapv str))})) + +(defn load-from-store + [] + (let [ls (.-localStorage js/window) + plugins-val (.getItem ls "plugins")] + (when plugins-val + (let [plugins-js (.parse js/JSON plugins-val)] + (js->clj plugins-js {:keywordize-keys true}))))) + +(defn save-to-store + [plugins] + (let [ls (.-localStorage js/window) + plugins-js (clj->js plugins) + plugins-val (.stringify js/JSON plugins-js)] + (.setItem ls "plugins" plugins-val))) diff --git a/frontend/src/app/plugins/events.cljs b/frontend/src/app/plugins/events.cljs index eada65d67c..27d9269484 100644 --- a/frontend/src/app/plugins/events.cljs +++ b/frontend/src/app/plugins/events.cljs @@ -6,7 +6,6 @@ (ns app.plugins.events (:require - [app.common.data.macros :as dm] [app.main.store :as st] [app.plugins.file :as file] [app.plugins.page :as page] @@ -24,25 +23,19 @@ (defmethod handle-state-change "filechange" [_ plugin-id old-val new-val] - (let [old-file (:workspace-file old-val) - new-file (:workspace-file new-val) - old-data (:workspace-data old-val) - new-data (:workspace-data new-val)] - (if (and (identical? old-file new-file) - (identical? old-data new-data)) + (let [old-file-id (:current-file-id old-val) + new-file-id (:current-file-id new-val)] + (if (identical? old-file-id new-file-id) ::not-changed - (file/file-proxy plugin-id (:id new-file))))) + (file/file-proxy plugin-id new-file-id)))) (defmethod handle-state-change "pagechange" [_ plugin-id old-val new-val] - (let [file-id (:current-file-id new-val) - old-page-id (:current-page-id old-val) - new-page-id (:current-page-id new-val) - old-page (dm/get-in old-val [:workspace-data :pages-index old-page-id]) - new-page (dm/get-in new-val [:workspace-data :pages-index new-page-id])] - (if (identical? old-page new-page) + (let [old-page-id (:current-page-id old-val) + new-page-id (:current-page-id new-val)] + (if (identical? old-page-id new-page-id) ::not-changed - (page/page-proxy plugin-id file-id new-page-id)))) + (page/page-proxy plugin-id (:current-file-id new-val) new-page-id)))) (defmethod handle-state-change "selectionchange" [_ _ old-val new-val] @@ -75,7 +68,10 @@ (fn [_ _ old-val new-val] (let [result (handle-state-change type plugin-id old-val new-val)] (when (not= ::not-changed result) - (callback result))))) + (try + (callback result) + (catch :default cause + (.error js/console cause))))))) ;; return the generated key key)) diff --git a/frontend/src/app/plugins/shape.cljs b/frontend/src/app/plugins/shape.cljs index fb5a88ff6b..bc1b53abab 100644 --- a/frontend/src/app/plugins/shape.cljs +++ b/frontend/src/app/plugins/shape.cljs @@ -60,23 +60,6 @@ (declare shape-proxy) (declare shape-proxy?) -#_(defn parse-command - [entry] - (update entry - :command - #(case % - "M" :move-to - "Z" :close-path - "L" :line-to - "H" :line-to-horizontal - "V" :line-to-vertical - "C" :curve-to - "S" :smooth-curve-to - "Q" :quadratic-bezier-curve-to - "T" :smooth-quadratic-bezier-curve-to - "A" :elliptical-arc - (keyword %)))) - (defn- shadow-defaults [shadow] (d/patch-object diff --git a/frontend/translations/en.po b/frontend/translations/en.po index 7a972067de..8458241ba9 100644 --- a/frontend/translations/en.po +++ b/frontend/translations/en.po @@ -847,6 +847,9 @@ msgstr "Cancel" msgid "ds.confirm-ok" msgstr "Ok" +msgid "ds.confirm-allow" +msgstr "Allow" + #: src/app/main/ui/confirm.cljs, src/app/main/ui/confirm.cljs msgid "ds.confirm-title" msgstr "Are you sure?" @@ -5290,3 +5293,24 @@ msgstr "Plugins manager" msgid "workspace.plugins.plugin-list-link" msgstr "Plugins List" + +msgid "workspace.plugins.permissions.title" +msgstr "THIS PLUGIN WANTS ACCESS TO:" + +msgid "workspace.plugins.permissions.disclaimer" +msgstr "Note that this plugin has been created by an external party." + +msgid "workspace.plugins.permissions.content-read" +msgstr "Read the content of files that users have access to." + +msgid "workspace.plugins.permissions.content-write" +msgstr "Read and modify the content of files that users have access to." + +msgid "workspace.plugins.permissions.user-read" +msgstr "Read the profile information of the current user." + +msgid "workspace.plugins.permissions.library-read" +msgstr "Read your libraries and assets." + +msgid "workspace.plugins.permissions.library-write" +msgstr "Read and modify your libraries and assets." diff --git a/frontend/translations/es.po b/frontend/translations/es.po index 76a2264ca0..187c38f822 100644 --- a/frontend/translations/es.po +++ b/frontend/translations/es.po @@ -869,6 +869,9 @@ msgstr "Cancelar" msgid "ds.confirm-ok" msgstr "Ok" +msgid "ds.confirm-allow" +msgstr "Permitir" + #: src/app/main/ui/confirm.cljs, src/app/main/ui/confirm.cljs msgid "ds.confirm-title" msgstr "¿Está Seguro?" @@ -5394,3 +5397,24 @@ msgstr "Gestor de extensiones" msgid "workspace.plugins.plugin-list-link" msgstr "Lista de extensiones" + +msgid "workspace.plugins.permissions.title" +msgstr "LA EXTENSIÓN SOLICITA PERMISO PARA ACCEDER:" + +msgid "workspace.plugins.permissions.disclaimer" +msgstr "Tenga en cuenta que esta extensión ha sido desarrollada por terceros." + +msgid "workspace.plugins.permissions.content-read" +msgstr "Leer el contenido de sus archivos." + +msgid "workspace.plugins.permissions.content-write" +msgstr "Leer y modificar el contenido de sus archivos." + +msgid "workspace.plugins.permissions.user-read" +msgstr "Leer la información del usuario actual." + +msgid "workspace.plugins.permissions.library-read" +msgstr "Leer la información de sus bibliotecas y recursos." + +msgid "workspace.plugins.permissions.library-write" +msgstr "Leer y modificar la información de sus bibliotecas y recursos." From 395a91c00ccd3f65da4d3811e860365294b5f01f Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Tue, 2 Jul 2024 10:40:46 +0200 Subject: [PATCH 302/476] :sparkles: Plugins permissions review --- .../src/app/main/ui/workspace/main_menu.cljs | 2 +- .../src/app/main/ui/workspace/plugins.cljs | 30 +- frontend/src/app/plugins.cljs | 21 +- frontend/src/app/plugins/file.cljs | 25 +- frontend/src/app/plugins/flex.cljs | 85 +++++ frontend/src/app/plugins/fonts.cljs | 7 +- frontend/src/app/plugins/grid.cljs | 102 +++++- frontend/src/app/plugins/library.cljs | 324 +++++++++++++----- frontend/src/app/plugins/page.cljs | 27 +- frontend/src/app/plugins/register.cljs | 55 +++ frontend/src/app/plugins/shape.cljs | 171 ++++++++- frontend/src/app/plugins/text.cljs | 93 ++++- .../plugins/context_shapes_test.cljs | 2 +- 13 files changed, 773 insertions(+), 171 deletions(-) create mode 100644 frontend/src/app/plugins/register.cljs diff --git a/frontend/src/app/main/ui/workspace/main_menu.cljs b/frontend/src/app/main/ui/workspace/main_menu.cljs index d2356c3f17..135cdc1b59 100644 --- a/frontend/src/app/main/ui/workspace/main_menu.cljs +++ b/frontend/src/app/main/ui/workspace/main_menu.cljs @@ -609,7 +609,7 @@ ::mf/wrap [mf/memo]} [{:keys [open-plugins on-close]}] (when (features/active-feature? @st/state "plugins/runtime") - (let [plugins (plugins/load-from-store)] + (let [plugins @plugins/pluginsdb] [:& dropdown-menu {:show true :list-class (stl/css-case :sub-menu true :plugins true) :on-close on-close} diff --git a/frontend/src/app/main/ui/workspace/plugins.cljs b/frontend/src/app/main/ui/workspace/plugins.cljs index e940151242..5ac397430d 100644 --- a/frontend/src/app/main/ui/workspace/plugins.cljs +++ b/frontend/src/app/main/ui/workspace/plugins.cljs @@ -77,7 +77,7 @@ ::mf/register-as :plugin-management} [] - (let [plugins-state* (mf/use-state []) + (let [plugins-state* (mf/use-state @plugins/pluginsdb) plugins-state @plugins-state* plugin-url* (mf/use-state "") @@ -110,20 +110,16 @@ (rx/map :body) (rx/subs! (fn [body] - (let [plugin (plugins/parser-manifest plugin-url body) - new-state (vec (conj (seq plugins-state) plugin))] - - (reset! input-status* :success) - (reset! plugin-url* "") - (reset! plugins-state* new-state) - + (let [plugin (plugins/parser-manifest plugin-url body)] (modal/show! :plugin-permissions {:plugin plugin :on-accept #(do - (plugins/save-to-store new-state) - (modal/show! :plugin-management {}))}))) + (plugins/install-plugin! plugin) + (modal/show! :plugin-management {}))}) + (reset! input-status* :success) + (reset! plugin-url* ""))) (fn [_] (reset! input-status* :error-url)))))) @@ -137,17 +133,9 @@ (mf/use-callback (mf/deps plugins-state) (fn [plugin-index] - (let [new-state - (into [] - (keep-indexed (fn [idx item] - (when (not= idx plugin-index) item))) - plugins-state)] - (reset! plugins-state* new-state) - (plugins/save-to-store new-state))))] - - (mf/use-effect - (fn [] - (reset! plugins-state* (d/nilv (plugins/load-from-store) [])))) + (let [plugin (nth @plugins/pluginsdb plugin-index)] + (plugins/remove-plugin! plugin) + (reset! plugins-state* @plugins/pluginsdb))))] [:div {:class (stl/css :modal-overlay)} [:div {:class (stl/css :modal-dialog :plugin-management)} diff --git a/frontend/src/app/plugins.cljs b/frontend/src/app/plugins.cljs index 7026336544..21e16d3c20 100644 --- a/frontend/src/app/plugins.cljs +++ b/frontend/src/app/plugins.cljs @@ -12,14 +12,20 @@ [app.main.store :as st] [app.plugins.api :as api] [app.plugins.public-utils] + [app.plugins.register :as register] [app.util.globals :refer [global]] [app.util.object :as obj] [beicon.v2.core :as rx] [potok.v2.core :as ptk])) +(def pluginsdb register/pluginsdb) +(def install-plugin! register/install-plugin!) +(def remove-plugin! register/remove-plugin!) + (defn init-plugins-runtime! [] (when-let [init-runtime (obj/get global "initPluginsRuntime")] + (register/init) (init-runtime (fn [plugin-id] (api/create-context plugin-id))))) (defn initialize @@ -51,18 +57,3 @@ :code code :icon icon :permissions (->> permissions (mapv str))})) - -(defn load-from-store - [] - (let [ls (.-localStorage js/window) - plugins-val (.getItem ls "plugins")] - (when plugins-val - (let [plugins-js (.parse js/JSON plugins-val)] - (js->clj plugins-js {:keywordize-keys true}))))) - -(defn save-to-store - [plugins] - (let [ls (.-localStorage js/window) - plugins-js (clj->js plugins) - plugins-val (.stringify js/JSON plugins-js)] - (.setItem ls "plugins" plugins-val))) diff --git a/frontend/src/app/plugins/file.cljs b/frontend/src/app/plugins/file.cljs index 9dc4d34b4f..5cc3810a7e 100644 --- a/frontend/src/app/plugins/file.cljs +++ b/frontend/src/app/plugins/file.cljs @@ -12,6 +12,7 @@ [app.main.data.workspace :as dw] [app.main.store :as st] [app.plugins.page :as page] + [app.plugins.register :as r] [app.plugins.utils :as u] [app.util.object :as obj])) @@ -26,7 +27,7 @@ [self key] (cond (not (string? key)) - (u/display-not-valid :file-plugin-data-key key) + (u/display-not-valid :getPluginData-key key) :else (let [file (u/proxy->file self)] @@ -36,10 +37,13 @@ [_ key value] (cond (or (not (string? key)) (empty? key)) - (u/display-not-valid :file-plugin-data-key key) + (u/display-not-valid :setPluginData-key key) (and (some? value) (not (string? value))) - (u/display-not-valid :file-plugin-data value) + (u/display-not-valid :setPluginData-value value) + + (not (r/check-permission $plugin "content:write")) + (u/display-not-valid :setPluginData "Plugin doesn't have 'content:write' permission") :else (st/emit! (dw/set-plugin-data $id :file (keyword "plugin" (str $plugin)) key value)))) @@ -53,10 +57,10 @@ [self namespace key] (cond (not (string? namespace)) - (u/display-not-valid :file-plugin-data-namespace namespace) + (u/display-not-valid :getSharedPluginData-namespace namespace) (not (string? key)) - (u/display-not-valid :file-plugin-data-key key) + (u/display-not-valid :getSharedPluginData-key key) :else (let [file (u/proxy->file self)] @@ -67,13 +71,16 @@ (cond (or (not (string? namespace)) (empty? namespace)) - (u/display-not-valid :file-plugin-data-namespace namespace) + (u/display-not-valid :setSharedPluginData-namespace namespace) (or (not (string? key)) (empty? key)) - (u/display-not-valid :file-plugin-data-key key) + (u/display-not-valid :setSharedPluginData-key key) (and (some? value) (not (string? value))) - (u/display-not-valid :file-plugin-data value) + (u/display-not-valid :setSharedPluginData-value value) + + (not (r/check-permission $plugin "content:write")) + (u/display-not-valid :setSharedPluginData "Plugin doesn't have 'content:write' permission") :else (st/emit! (dw/set-plugin-data $id :file (keyword "shared" namespace) key value)))) @@ -82,7 +89,7 @@ [self namespace] (cond (not (string? namespace)) - (u/display-not-valid :file-plugin-data-namespace namespace) + (u/display-not-valid :getSharedPluginDataKeys namespace) :else (let [file (u/proxy->file self)] diff --git a/frontend/src/app/plugins/flex.cljs b/frontend/src/app/plugins/flex.cljs index 098d11f2e7..9b6e89673c 100644 --- a/frontend/src/app/plugins/flex.cljs +++ b/frontend/src/app/plugins/flex.cljs @@ -13,6 +13,7 @@ [app.main.data.workspace.shape-layout :as dwsl] [app.main.data.workspace.transforms :as dwt] [app.main.store :as st] + [app.plugins.register :as r] [app.plugins.utils :as u] [app.util.object :as obj] [potok.v2.core :as ptk])) @@ -58,6 +59,9 @@ (not (contains? ctl/flex-direction-types value)) (u/display-not-valid :dir value) + (not (r/check-permission plugin-id "content:write")) + (u/display-not-valid :dir "Plugin doesn't have 'content:write' permission") + :else (let [id (obj/get self "$id")] (st/emit! (dwsl/update-layout #{id} {:layout-flex-dir value}))))))} @@ -71,6 +75,9 @@ (not (contains? ctl/align-items-types value)) (u/display-not-valid :alignItems value) + (not (r/check-permission plugin-id "content:write")) + (u/display-not-valid :alignItems "Plugin doesn't have 'content:write' permission") + :else (let [id (obj/get self "$id")] (st/emit! (dwsl/update-layout #{id} {:layout-align-items value}))))))} @@ -84,6 +91,9 @@ (not (contains? ctl/align-content-types value)) (u/display-not-valid :alignContent value) + (not (r/check-permission plugin-id "content:write")) + (u/display-not-valid :alignContent "Plugin doesn't have 'content:write' permission") + :else (let [id (obj/get self "$id")] (st/emit! (dwsl/update-layout #{id} {:layout-align-content value}))))))} @@ -97,6 +107,9 @@ (not (contains? ctl/justify-items-types value)) (u/display-not-valid :justifyItems value) + (not (r/check-permission plugin-id "content:write")) + (u/display-not-valid :justifyItems "Plugin doesn't have 'content:write' permission") + :else (let [id (obj/get self "$id")] (st/emit! (dwsl/update-layout #{id} {:layout-justify-items value}))))))} @@ -110,6 +123,9 @@ (not (contains? ctl/justify-content-types value)) (u/display-not-valid :justifyContent value) + (not (r/check-permission plugin-id "content:write")) + (u/display-not-valid :justifyContent "Plugin doesn't have 'content:write' permission") + :else (let [id (obj/get self "$id")] (st/emit! (dwsl/update-layout #{id} {:layout-justify-content value}))))))} @@ -122,6 +138,9 @@ (not (us/safe-int? value)) (u/display-not-valid :rowGap value) + (not (r/check-permission plugin-id "content:write")) + (u/display-not-valid :rowGap "Plugin doesn't have 'content:write' permission") + :else (let [id (obj/get self "$id")] (st/emit! (dwsl/update-layout #{id} {:layout-gap {:row-gap value}})))))} @@ -134,6 +153,9 @@ (not (us/safe-int? value)) (u/display-not-valid :columnGap value) + (not (r/check-permission plugin-id "content:write")) + (u/display-not-valid :columnGap "Plugin doesn't have 'content:write' permission") + :else (let [id (obj/get self "$id")] (st/emit! (dwsl/update-layout #{id} {:layout-gap {:column-gap value}})))))} @@ -146,6 +168,9 @@ (not (us/safe-int? value)) (u/display-not-valid :verticalPadding value) + (not (r/check-permission plugin-id "content:write")) + (u/display-not-valid :verticalPadding "Plugin doesn't have 'content:write' permission") + :else (let [id (obj/get self "$id")] (st/emit! (dwsl/update-layout #{id} {:layout-padding {:p1 value :p3 value}})))))} @@ -158,6 +183,9 @@ (not (us/safe-int? value)) (u/display-not-valid :horizontalPadding value) + (not (r/check-permission plugin-id "content:write")) + (u/display-not-valid :horizontalPadding "Plugin doesn't have 'content:write' permission") + :else (let [id (obj/get self "$id")] (st/emit! (dwsl/update-layout #{id} {:layout-padding {:p2 value :p4 value}})))))} @@ -171,6 +199,9 @@ (not (us/safe-int? value)) (u/display-not-valid :topPadding value) + (not (r/check-permission plugin-id "content:write")) + (u/display-not-valid :topPadding "Plugin doesn't have 'content:write' permission") + :else (let [id (obj/get self "$id")] (st/emit! (dwsl/update-layout #{id} {:layout-padding {:p1 value}})))))} @@ -183,6 +214,9 @@ (not (us/safe-int? value)) (u/display-not-valid :rightPadding value) + (not (r/check-permission plugin-id "content:write")) + (u/display-not-valid :rightPadding "Plugin doesn't have 'content:write' permission") + :else (let [id (obj/get self "$id")] (st/emit! (dwsl/update-layout #{id} {:layout-padding {:p2 value}})))))} @@ -195,6 +229,9 @@ (not (us/safe-int? value)) (u/display-not-valid :bottomPadding value) + (not (r/check-permission plugin-id "content:write")) + (u/display-not-valid :bottomPadding "Plugin doesn't have 'content:write' permission") + :else (let [id (obj/get self "$id")] (st/emit! (dwsl/update-layout #{id} {:layout-padding {:p3 value}})))))} @@ -207,6 +244,9 @@ (not (us/safe-int? value)) (u/display-not-valid :leftPadding value) + (not (r/check-permission plugin-id "content:write")) + (u/display-not-valid :leftPadding "Plugin doesn't have 'content:write' permission") + :else (let [id (obj/get self "$id")] (st/emit! (dwsl/update-layout #{id} {:layout-padding {:p4 value}})))))}))) @@ -234,6 +274,9 @@ (not (boolean? value)) (u/display-not-valid :absolute value) + (not (r/check-permission plugin-id "content:write")) + (u/display-not-valid :absolute "Plugin doesn't have 'content:write' permission") + :else (let [id (obj/get self "$id")] (st/emit! (dwsl/update-layout #{id} {:layout-item-absolute value})))))} @@ -246,6 +289,9 @@ (us/safe-int? value) (u/display-not-valid :zIndex value) + (not (r/check-permission plugin-id "content:write")) + (u/display-not-valid :zIndex "Plugin doesn't have 'content:write' permission") + :else (let [id (obj/get self "$id")] (st/emit! (dwsl/update-layout-child #{id} {:layout-item-z-index value})))))} @@ -259,6 +305,9 @@ (not (contains? ctl/item-h-sizing-types value)) (u/display-not-valid :horizontalPadding value) + (not (r/check-permission plugin-id "content:write")) + (u/display-not-valid :horizontalPadding "Plugin doesn't have 'content:write' permission") + :else (let [id (obj/get self "$id")] (st/emit! (dwsl/update-layout-child #{id} {:layout-item-h-sizing value}))))))} @@ -272,6 +321,9 @@ (not (contains? ctl/item-v-sizing-types value)) (u/display-not-valid :verticalSizing value) + (not (r/check-permission plugin-id "content:write")) + (u/display-not-valid :verticalSizing "Plugin doesn't have 'content:write' permission") + :else (let [id (obj/get self "$id")] (st/emit! (dwsl/update-layout-child #{id} {:layout-item-v-sizing value}))))))} @@ -285,6 +337,9 @@ (not (contains? ctl/item-align-self-types value)) (u/display-not-valid :alignSelf value) + (not (r/check-permission plugin-id "content:write")) + (u/display-not-valid :alignSelf "Plugin doesn't have 'content:write' permission") + :else (let [id (obj/get self "$id")] (st/emit! (dwsl/update-layout-child #{id} {:layout-item-align-self value}))))))} @@ -297,6 +352,9 @@ (not (us/safe-number? value)) (u/display-not-valid :verticalMargin value) + (not (r/check-permission plugin-id "content:write")) + (u/display-not-valid :verticalMargin "Plugin doesn't have 'content:write' permission") + :else (let [id (obj/get self "$id")] (st/emit! (dwsl/update-layout-child #{id} {:layout-item-margin {:m1 value :m3 value}})))))} @@ -309,6 +367,9 @@ (not (us/safe-number? value)) (u/display-not-valid :horizontalMargin value) + (not (r/check-permission plugin-id "content:write")) + (u/display-not-valid :horizontalMargin "Plugin doesn't have 'content:write' permission") + :else (let [id (obj/get self "$id")] (st/emit! (dwsl/update-layout-child #{id} {:layout-item-margin {:m2 value :m4 value}})))))} @@ -321,6 +382,9 @@ (not (us/safe-number? value)) (u/display-not-valid :topMargin value) + (not (r/check-permission plugin-id "content:write")) + (u/display-not-valid :topMargin "Plugin doesn't have 'content:write' permission") + :else (let [id (obj/get self "$id")] (st/emit! (dwsl/update-layout-child #{id} {:layout-item-margin {:m1 value}})))))} @@ -333,6 +397,9 @@ (not (us/safe-number? value)) (u/display-not-valid :rightMargin value) + (not (r/check-permission plugin-id "content:write")) + (u/display-not-valid :rightMargin "Plugin doesn't have 'content:write' permission") + :else (let [id (obj/get self "$id")] (st/emit! (dwsl/update-layout-child #{id} {:layout-item-margin {:m2 value}})))))} @@ -345,6 +412,9 @@ (not (us/safe-number? value)) (u/display-not-valid :bottomMargin value) + (not (r/check-permission plugin-id "content:write")) + (u/display-not-valid :bottomMargin "Plugin doesn't have 'content:write' permission") + :else (let [id (obj/get self "$id")] (st/emit! (dwsl/update-layout-child #{id} {:layout-item-margin {:m3 value}})))))} @@ -357,6 +427,9 @@ (not (us/safe-number? value)) (u/display-not-valid :leftMargin value) + (not (r/check-permission plugin-id "content:write")) + (u/display-not-valid :leftMargin "Plugin doesn't have 'content:write' permission") + :else (let [id (obj/get self "$id")] (st/emit! (dwsl/update-layout-child #{id} {:layout-item-margin {:m4 value}})))))} @@ -369,6 +442,9 @@ (not (us/safe-number? value)) (u/display-not-valid :maxWidth value) + (not (r/check-permission plugin-id "content:write")) + (u/display-not-valid :maxWidth "Plugin doesn't have 'content:write' permission") + :else (let [id (obj/get self "$id")] (st/emit! (dwsl/update-layout-child #{id} {:layout-item-max-w value})))))} @@ -381,6 +457,9 @@ (not (us/safe-number? value)) (u/display-not-valid :minWidth value) + (not (r/check-permission plugin-id "content:write")) + (u/display-not-valid :minWidth "Plugin doesn't have 'content:write' permission") + :else (let [id (obj/get self "$id")] (st/emit! (dwsl/update-layout-child #{id} {:layout-item-min-w value})))))} @@ -393,6 +472,9 @@ (not (us/safe-number? value)) (u/display-not-valid :maxHeight value) + (not (r/check-permission plugin-id "content:write")) + (u/display-not-valid :maxHeight "Plugin doesn't have 'content:write' permission") + :else (let [id (obj/get self "$id")] (st/emit! (dwsl/update-layout-child #{id} {:layout-item-max-h value})))))} @@ -405,6 +487,9 @@ (not (us/safe-number? value)) (u/display-not-valid :minHeight value) + (not (r/check-permission plugin-id "content:write")) + (u/display-not-valid :minHeight "Plugin doesn't have 'content:write' permission") + :else (let [id (obj/get self "$id")] (st/emit! (dwsl/update-layout-child #{id} {:layout-item-min-h value})))))}))) diff --git a/frontend/src/app/plugins/fonts.cljs b/frontend/src/app/plugins/fonts.cljs index cc73ee4b1b..e07ea77ba9 100644 --- a/frontend/src/app/plugins/fonts.cljs +++ b/frontend/src/app/plugins/fonts.cljs @@ -11,6 +11,7 @@ [app.main.data.workspace.texts :as dwt] [app.main.fonts :as fonts] [app.main.store :as st] + [app.plugins.register :as r] [app.plugins.shape :as shape] [app.plugins.text :as text] [app.plugins.utils :as u] @@ -30,7 +31,8 @@ (not (shape/shape-proxy? text)) (u/display-not-valid :applyToText text) - ;; TODO: Check variant inside font variants + (not (r/check-permission (obj/get text "$plugin") "content:write")) + (u/display-not-valid :applyToText "Plugin doesn't have 'content:write' permission") :else (let [id (obj/get text "$id") @@ -46,7 +48,8 @@ (not (text/text-range? range)) (u/display-not-valid :applyToRange range) - ;; TODO: Check variant inside font variants + (not (r/check-permission (obj/get range "$plugin") "content:write")) + (u/display-not-valid :applyToRange "Plugin doesn't have 'content:write' permission") :else (let [id (obj/get range "$id") diff --git a/frontend/src/app/plugins/grid.cljs b/frontend/src/app/plugins/grid.cljs index eb255a008c..3035948e2f 100644 --- a/frontend/src/app/plugins/grid.cljs +++ b/frontend/src/app/plugins/grid.cljs @@ -14,6 +14,7 @@ [app.main.data.workspace.transforms :as dwt] [app.main.store :as st] [app.plugins.format :as format] + [app.plugins.register :as r] [app.plugins.utils :as u] [app.util.object :as obj] [potok.v2.core :as ptk])) @@ -35,6 +36,9 @@ (not (us/safe-number? value))) (u/display-not-valid :addRow-value value) + (not (r/check-permission $plugin "content:write")) + (u/display-not-valid :addRow "Plugin doesn't have 'content:write' permission") + :else (st/emit! (dwsl/add-layout-track #{$id} :row {:type type :value value}))))) @@ -52,6 +56,9 @@ (not (us/safe-number? value))) (u/display-not-valid :addRowAtIndex-value value) + (not (r/check-permission $plugin "content:write")) + (u/display-not-valid :addRowAtIndex "Plugin doesn't have 'content:write' permission") + :else (st/emit! (dwsl/add-layout-track #{$id} :row {:type type :value value} index))))) @@ -66,6 +73,9 @@ (not (us/safe-number? value))) (u/display-not-valid :addColumn-value value) + (not (r/check-permission $plugin "content:write")) + (u/display-not-valid :addColumn "Plugin doesn't have 'content:write' permission") + :else (st/emit! (dwsl/add-layout-track #{$id} :column {:type type :value value}))))) @@ -82,6 +92,9 @@ (not (us/safe-number? value))) (u/display-not-valid :addColumnAtIndex-value value) + (not (r/check-permission $plugin "content:write")) + (u/display-not-valid :addColumnAtIndex "Plugin doesn't have 'content:write' permission") + :else (let [type (keyword type)] (st/emit! (dwsl/add-layout-track #{$id} :column {:type type :value value} index))))) @@ -92,6 +105,9 @@ (not (us/safe-int? index)) (u/display-not-valid :removeRow index) + (not (r/check-permission $plugin "content:write")) + (u/display-not-valid :removeRow "Plugin doesn't have 'content:write' permission") + :else (st/emit! (dwsl/remove-layout-track #{$id} :row index)))) @@ -101,6 +117,9 @@ (not (us/safe-int? index)) (u/display-not-valid :removeColumn index) + (not (r/check-permission $plugin "content:write")) + (u/display-not-valid :removeColumn "Plugin doesn't have 'content:write' permission") + :else (st/emit! (dwsl/remove-layout-track #{$id} :column index)))) @@ -118,6 +137,9 @@ (not (us/safe-number? value))) (u/display-not-valid :setColumn-value value) + (not (r/check-permission $plugin "content:write")) + (u/display-not-valid :setColumn "Plugin doesn't have 'content:write' permission") + :else (st/emit! (dwsl/change-layout-track #{$id} :column index (d/without-nils {:type type :value value})))))) @@ -135,12 +157,20 @@ (not (us/safe-number? value))) (u/display-not-valid :setRow-value value) + (not (r/check-permission $plugin "content:write")) + (u/display-not-valid :setRow "Plugin doesn't have 'content:write' permission") + :else (st/emit! (dwsl/change-layout-track #{$id} :row index (d/without-nils {:type type :value value})))))) (remove [_] - (st/emit! (dwsl/remove-layout #{$id}))) + (cond + (not (r/check-permission $plugin "content:write")) + (u/display-not-valid :remove "Plugin doesn't have 'content:write' permission") + + :else + (st/emit! (dwsl/remove-layout #{$id})))) (appendChild [_ child row column] @@ -154,6 +184,9 @@ (or (< column 0) (not (us/safe-int? column))) (u/display-not-valid :appendChild-column column) + (not (r/check-permission $plugin "content:write")) + (u/display-not-valid :appendChild "Plugin doesn't have 'content:write' permission") + :else (let [child-id (obj/get child "$id")] (st/emit! (dwt/move-shapes-to-frame #{child-id} $id nil [row column]) @@ -180,6 +213,9 @@ (not (contains? ctl/grid-direction-types value)) (u/display-not-valid :dir value) + (not (r/check-permission plugin-id "content:write")) + (u/display-not-valid :dir "Plugin doesn't have 'content:write' permission") + :else (let [id (obj/get self "$id")] (st/emit! (dwsl/update-layout #{id} {:layout-grid-dir value}))))))} @@ -199,6 +235,9 @@ (not (contains? ctl/align-items-types value)) (u/display-not-valid :alignItems value) + (not (r/check-permission plugin-id "content:write")) + (u/display-not-valid :alignItems "Plugin doesn't have 'content:write' permission") + :else (let [id (obj/get self "$id")] (st/emit! (dwsl/update-layout #{id} {:layout-align-items value}))))))} @@ -212,6 +251,9 @@ (not (contains? ctl/align-content-types value)) (u/display-not-valid :alignContent value) + (not (r/check-permission plugin-id "content:write")) + (u/display-not-valid :alignContent "Plugin doesn't have 'content:write' permission") + :else (let [id (obj/get self "$id")] (st/emit! (dwsl/update-layout #{id} {:layout-align-content value}))))))} @@ -225,6 +267,9 @@ (not (contains? ctl/justify-items-types value)) (u/display-not-valid :justifyItems value) + (not (r/check-permission plugin-id "content:write")) + (u/display-not-valid :justifyItems "Plugin doesn't have 'content:write' permission") + :else (let [id (obj/get self "$id")] (st/emit! (dwsl/update-layout #{id} {:layout-justify-items value}))))))} @@ -238,6 +283,9 @@ (not (contains? ctl/justify-content-types value)) (u/display-not-valid :justifyContent value) + (not (r/check-permission plugin-id "content:write")) + (u/display-not-valid :justifyContent "Plugin doesn't have 'content:write' permission") + :else (let [id (obj/get self "$id")] (st/emit! (dwsl/update-layout #{id} {:layout-justify-content value}))))))} @@ -250,6 +298,9 @@ (not (us/safe-int? value)) (u/display-not-valid :rowGap value) + (not (r/check-permission plugin-id "content:write")) + (u/display-not-valid :rowGap "Plugin doesn't have 'content:write' permission") + :else (let [id (obj/get self "$id")] (st/emit! (dwsl/update-layout #{id} {:layout-gap {:row-gap value}})))))} @@ -262,6 +313,9 @@ (not (us/safe-int? value)) (u/display-not-valid :columnGap value) + (not (r/check-permission plugin-id "content:write")) + (u/display-not-valid :columnGap "Plugin doesn't have 'content:write' permission") + :else (let [id (obj/get self "$id")] (st/emit! (dwsl/update-layout #{id} {:layout-gap {:column-gap value}})))))} @@ -274,6 +328,9 @@ (not (us/safe-int? value)) (u/display-not-valid :verticalPadding value) + (not (r/check-permission plugin-id "content:write")) + (u/display-not-valid :verticalPadding "Plugin doesn't have 'content:write' permission") + :else (let [id (obj/get self "$id")] (st/emit! (dwsl/update-layout #{id} {:layout-padding {:p1 value :p3 value}})))))} @@ -286,6 +343,9 @@ (not (us/safe-int? value)) (u/display-not-valid :horizontalPadding value) + (not (r/check-permission plugin-id "content:write")) + (u/display-not-valid :horizontalPadding "Plugin doesn't have 'content:write' permission") + :else (let [id (obj/get self "$id")] (st/emit! (dwsl/update-layout #{id} {:layout-padding {:p2 value :p4 value}})))))} @@ -298,6 +358,9 @@ (not (us/safe-int? value)) (u/display-not-valid :topPadding value) + (not (r/check-permission plugin-id "content:write")) + (u/display-not-valid :topPadding "Plugin doesn't have 'content:write' permission") + :else (let [id (obj/get self "$id")] (st/emit! (dwsl/update-layout #{id} {:layout-padding {:p1 value}})))))} @@ -310,6 +373,9 @@ (not (us/safe-int? value)) (u/display-not-valid :rightPadding value) + (not (r/check-permission plugin-id "content:write")) + (u/display-not-valid :righPadding "Plugin doesn't have 'content:write' permission") + :else (let [id (obj/get self "$id")] (st/emit! (dwsl/update-layout #{id} {:layout-padding {:p2 value}})))))} @@ -322,6 +388,9 @@ (not (us/safe-int? value)) (u/display-not-valid :bottomPadding value) + (not (r/check-permission plugin-id "content:write")) + (u/display-not-valid :bottomPadding "Plugin doesn't have 'content:write' permission") + :else (let [id (obj/get self "$id")] (st/emit! (dwsl/update-layout #{id} {:layout-padding {:p3 value}})))))} @@ -334,6 +403,9 @@ (not (us/safe-int? value)) (u/display-not-valid :leftPadding value) + (not (r/check-permission plugin-id "content:write")) + (u/display-not-valid :leftPadding "Plugin doesn't have 'content:write' permission") + :else (let [id (obj/get self "$id")] (st/emit! (dwsl/update-layout #{id} {:layout-padding {:p4 value}})))))}))) @@ -365,10 +437,13 @@ shape (u/proxy->shape self)] (cond (not (us/safe-int? value)) - (u/display-not-valid :row value) + (u/display-not-valid :row-value value) (nil? cell) - (u/display-not-valid :cell "cell not found") + (u/display-not-valid :row-cell "cell not found") + + (not (r/check-permission plugin-id "content:write")) + (u/display-not-valid :row "Plugin doesn't have 'content:write' permission") :else (st/emit! (dwsl/update-grid-cell-position (:parent-id shape) (:id cell) {:row value})))))} @@ -386,6 +461,9 @@ (nil? cell) (u/display-not-valid :rowSpan-cell "cell not found") + (not (r/check-permission plugin-id "content:write")) + (u/display-not-valid :rowSpan "Plugin doesn't have 'content:write' permission") + :else (st/emit! (dwsl/update-grid-cell-position (:parent-id shape) (:id cell) {:row-span value})))))} @@ -402,6 +480,9 @@ (nil? cell) (u/display-not-valid :column-cell "cell not found") + (not (r/check-permission plugin-id "content:write")) + (u/display-not-valid :column "Plugin doesn't have 'content:write' permission") + :else (st/emit! (dwsl/update-grid-cell-position (:parent-id shape) (:id cell) {:column value})))))} @@ -418,6 +499,9 @@ (nil? cell) (u/display-not-valid :columnSpan-cell "cell not found") + (not (r/check-permission plugin-id "content:write")) + (u/display-not-valid :columnSpan "Plugin doesn't have 'content:write' permission") + :else (st/emit! (dwsl/update-grid-cell-position (:parent-id shape) (:id cell) {:column-span value})))))} @@ -434,6 +518,9 @@ (nil? cell) (u/display-not-valid :areaName-cell "cell not found") + (not (r/check-permission plugin-id "content:write")) + (u/display-not-valid :areaName "Plugin doesn't have 'content:write' permission") + :else (st/emit! (dwsl/update-grid-cells (:parent-id shape) #{(:id cell)} {:area-name value})))))} @@ -451,6 +538,9 @@ (nil? cell) (u/display-not-valid :position-cell "cell not found") + (not (r/check-permission plugin-id "content:write")) + (u/display-not-valid :position "Plugin doesn't have 'content:write' permission") + :else (st/emit! (dwsl/change-cells-mode (:parent-id shape) #{(:id cell)} value)))))} @@ -468,6 +558,9 @@ (nil? cell) (u/display-not-valid :alignSelf-cell "cell not found") + (not (r/check-permission plugin-id "content:write")) + (u/display-not-valid :alignSelf "Plugin doesn't have 'content:write' permission") + :else (st/emit! (dwsl/update-grid-cells (:parent-id shape) #{(:id cell)} {:align-self value})))))} @@ -485,5 +578,8 @@ (nil? cell) (u/display-not-valid :justifySelf-cell "cell not found") + (not (r/check-permission plugin-id "content:write")) + (u/display-not-valid :justifySelf "Plugin doesn't have 'content:write' permission") + :else (st/emit! (dwsl/update-grid-cells (:parent-id shape) #{(:id cell)} {:justify-self value})))))})))) diff --git a/frontend/src/app/plugins/library.cljs b/frontend/src/app/plugins/library.cljs index 7c90146f59..1e00d27f31 100644 --- a/frontend/src/app/plugins/library.cljs +++ b/frontend/src/app/plugins/library.cljs @@ -24,6 +24,7 @@ [app.main.store :as st] [app.plugins.format :as format] [app.plugins.parser :as parser] + [app.plugins.register :as r] [app.plugins.shape :as shape] [app.plugins.text :as text] [app.plugins.utils :as u] @@ -40,15 +41,25 @@ (remove [_] - (st/emit! (dwl/delete-color {:id $id}))) + (cond + (not (r/check-permission $plugin "library:write")) + (u/display-not-valid :remove "Plugin doesn't have 'library:write' permission") + + :else + (st/emit! (dwl/delete-color {:id $id})))) (clone [_] - (let [color-id (uuid/next) - color (-> (u/locate-library-color $file $id) - (assoc :id color-id))] - (st/emit! (dwl/add-color color {:rename? false})) - (lib-color-proxy $plugin $id color-id))) + (cond + (not (r/check-permission $plugin "library:write")) + (u/display-not-valid :clone "Plugin doesn't have 'library:write' permission") + + :else + (let [color-id (uuid/next) + color (-> (u/locate-library-color $file $id) + (assoc :id color-id))] + (st/emit! (dwl/add-color color {:rename? false})) + (lib-color-proxy $plugin $id color-id)))) (asFill [_] (let [color (u/locate-library-color $file $id)] @@ -76,7 +87,7 @@ [self key] (cond (not (string? key)) - (u/display-not-valid :color-plugin-data-key key) + (u/display-not-valid :getPluginData-key key) :else (let [color (u/proxy->library-color self)] @@ -86,13 +97,16 @@ [_ key value] (cond (not= $file (:current-file-id @st/state)) - (u/display-not-valid :color-edit-non-local-library $file) + (u/display-not-valid :setPluginData-non-local-library $file) (not (string? key)) - (u/display-not-valid :color-plugin-data-key key) + (u/display-not-valid :setPluginData-key key) (and (some? value) (not (string? value))) - (u/display-not-valid :color-plugin-data value) + (u/display-not-valid :setPluginData-value value) + + (not (r/check-permission $plugin "library:write")) + (u/display-not-valid :setPluginData "Plugin doesn't have 'library:write' permission") :else (st/emit! (dw/set-plugin-data $file :color $id (keyword "plugin" (str $plugin)) key value)))) @@ -106,10 +120,10 @@ [self namespace key] (cond (not (string? namespace)) - (u/display-not-valid :color-plugin-data-namespace namespace) + (u/display-not-valid :getSharedPluginData-namespace namespace) (not (string? key)) - (u/display-not-valid :color-plugin-data-key key) + (u/display-not-valid :getSharedPluginData-key key) :else (let [color (u/proxy->library-color self)] @@ -119,16 +133,19 @@ [_ namespace key value] (cond (not= $file (:current-file-id @st/state)) - (u/display-not-valid :color-edit-non-local-library $file) + (u/display-not-valid :setSharedPluginData-non-local-library $file) (not (string? namespace)) - (u/display-not-valid :color-plugin-data-namespace namespace) + (u/display-not-valid :setSharedPluginData-namespace namespace) (not (string? key)) - (u/display-not-valid :color-plugin-data-key key) + (u/display-not-valid :setSharedPluginData-key key) (and (some? value) (not (string? value))) - (u/display-not-valid :color-plugin-data value) + (u/display-not-valid :setSharedPluginData-value value) + + (not (r/check-permission $plugin "library:write")) + (u/display-not-valid :setSharedPluginData "Plugin doesn't have 'library:write' permission") :else (st/emit! (dw/set-plugin-data $file :color $id (keyword "shared" namespace) key value)))) @@ -137,7 +154,7 @@ [self namespace] (cond (not (string? namespace)) - (u/display-not-valid :color-plugin-data-namespace namespace) + (u/display-not-valid :getSharedPluginDataKeys-namespace namespace) :else (let [color (u/proxy->library-color self)] @@ -165,7 +182,10 @@ (fn [self value] (cond (not (string? value)) - (u/display-not-valid :library-color-name value) + (u/display-not-valid :name value) + + (not (r/check-permission plugin-id "library:write")) + (u/display-not-valid :name "Plugin doesn't have 'library:write' permission") :else (let [color (u/proxy->library-color self) @@ -178,7 +198,10 @@ (fn [self value] (cond (not (string? value)) - (u/display-not-valid :library-color-path value) + (u/display-not-valid :path value) + + (not (r/check-permission plugin-id "library:write")) + (u/display-not-valid :path "Plugin doesn't have 'library:write' permission") :else (let [color (-> (u/proxy->library-color self) @@ -191,7 +214,10 @@ (fn [self value] (cond (or (not (string? value)) (not (cc/valid-hex-color? value))) - (u/display-not-valid :library-color-color value) + (u/display-not-valid :color value) + + (not (r/check-permission plugin-id "library:write")) + (u/display-not-valid :color "Plugin doesn't have 'library:write' permission") :else (let [color (-> (u/proxy->library-color self) @@ -204,7 +230,10 @@ (fn [self value] (cond (or (not (number? value)) (< value 0) (> value 1)) - (u/display-not-valid :library-color-opacity value) + (u/display-not-valid :opacity value) + + (not (r/check-permission plugin-id "library:write")) + (u/display-not-valid :opacity "Plugin doesn't have 'library:write' permission") :else (let [color (-> (u/proxy->library-color self) @@ -218,7 +247,10 @@ (let [value (parser/parse-gradient value)] (cond (not (sm/validate ::ctc/gradient value)) - (u/display-not-valid :library-color-gradient value) + (u/display-not-valid :gradient value) + + (not (r/check-permission plugin-id "library:write")) + (u/display-not-valid :gradient "Plugin doesn't have 'library:write' permission") :else (let [color (-> (u/proxy->library-color self) @@ -232,7 +264,10 @@ (let [value (parser/parse-image-data value)] (cond (not (sm/validate ::ctc/image-color value)) - (u/display-not-valid :library-color-image value) + (u/display-not-valid :image value) + + (not (r/check-permission plugin-id "library:write")) + (u/display-not-valid :image "Plugin doesn't have 'library:write' permission") :else (let [color (-> (u/proxy->library-color self) @@ -243,15 +278,25 @@ Object (remove [_] - (st/emit! (dwl/delete-typography {:id $id}))) + (cond + (not (r/check-permission $plugin "library:write")) + (u/display-not-valid :remove "Plugin doesn't have 'library:write' permission") + + :else + (st/emit! (dwl/delete-typography {:id $id})))) (clone [_] - (let [typo-id (uuid/next) - typo (-> (u/locate-library-typography $file $id) - (assoc :id typo-id))] - (st/emit! (dwl/add-typography typo false)) - (lib-typography-proxy $plugin $id typo-id))) + (cond + (not (r/check-permission $plugin "library:write")) + (u/display-not-valid :clone "Plugin doesn't have 'library:write' permission") + + :else + (let [typo-id (uuid/next) + typo (-> (u/locate-library-typography $file $id) + (assoc :id typo-id))] + (st/emit! (dwl/add-typography typo false)) + (lib-typography-proxy $plugin $id typo-id)))) (applyToText [_ shape] @@ -259,6 +304,9 @@ (not (shape/shape-proxy? shape)) (u/display-not-valid :applyToText shape) + (not (r/check-permission $plugin "content:write")) + (u/display-not-valid :applyToText "Plugin doesn't have 'content:write' permission") + :else (let [shape-id (obj/get shape "$id") typography (u/locate-library-typography $file $id)] @@ -270,6 +318,9 @@ (not (text/text-range? range)) (u/display-not-valid :applyToText range) + (not (r/check-permission $plugin "content:write")) + (u/display-not-valid :applyToText "Plugin doesn't have 'content:write' permission") + :else (let [shape-id (obj/get range "$id") start (obj/get range "start") @@ -296,13 +347,16 @@ [_ key value] (cond (not= $file (:current-file-id @st/state)) - (u/display-not-valid :typography-edit-non-local-library $file) + (u/display-not-valid :setPluginData-non-local-library $file) (not (string? key)) - (u/display-not-valid :typography-plugin-data-key key) + (u/display-not-valid :setPluginData-key key) (and (some? value) (not (string? value))) - (u/display-not-valid :typography-plugin-data value) + (u/display-not-valid :setPluginData-value value) + + (not (r/check-permission $plugin "library:write")) + (u/display-not-valid :setPluginData "Plugin doesn't have 'library:write' permission") :else (st/emit! (dw/set-plugin-data $file :typography $id (keyword "plugin" (str $plugin)) key value)))) @@ -316,10 +370,10 @@ [self namespace key] (cond (not (string? namespace)) - (u/display-not-valid :typography-plugin-data-namespace namespace) + (u/display-not-valid :getSharedPluginData-namespace namespace) (not (string? key)) - (u/display-not-valid :typography-plugin-data-key key) + (u/display-not-valid :getSharedPluginData-key key) :else (let [typography (u/proxy->library-typography self)] @@ -329,16 +383,19 @@ [_ namespace key value] (cond (not= $file (:current-file-id @st/state)) - (u/display-not-valid :typography-edit-non-local-library $file) + (u/display-not-valid :setSharedPluginData-non-local-library $file) (not (string? namespace)) - (u/display-not-valid :typography-plugin-data-namespace namespace) + (u/display-not-valid :setSharedPluginData-namespace namespace) (not (string? key)) - (u/display-not-valid :typography-plugin-data-key key) + (u/display-not-valid :setSharedPluginData-key key) (and (some? value) (not (string? value))) - (u/display-not-valid :typography-plugin-data value) + (u/display-not-valid :setSharedPluginData-value value) + + (not (r/check-permission $plugin "library:write")) + (u/display-not-valid :setSharedPluginData "Plugin doesn't have 'library:write' permission") :else (st/emit! (dw/set-plugin-data $file :typography $id (keyword "shared" namespace) key value)))) @@ -347,7 +404,7 @@ [self namespace] (cond (not (string? namespace)) - (u/display-not-valid :typography-plugin-data-namespace namespace) + (u/display-not-valid :getSharedPluginDataKeys-namespace namespace) :else (let [typography (u/proxy->library-typography self)] @@ -376,7 +433,10 @@ (fn [self value] (cond (not (string? value)) - (u/display-not-valid :library-typography-name value) + (u/display-not-valid :name value) + + (not (r/check-permission plugin-id "library:write")) + (u/display-not-valid :name "Plugin doesn't have 'library:write' permission") :else (let [typo (u/proxy->library-typography self) @@ -389,7 +449,10 @@ (fn [self value] (cond (not (string? value)) - (u/display-not-valid :library-typography-path value) + (u/display-not-valid :path value) + + (not (r/check-permission plugin-id "library:write")) + (u/display-not-valid :path "Plugin doesn't have 'library:write' permission") :else (let [typo (-> (u/proxy->library-typography self) @@ -402,7 +465,10 @@ (fn [self value] (cond (not (string? value)) - (u/display-not-valid :library-typography-font-id value) + (u/display-not-valid :fontId value) + + (not (r/check-permission plugin-id "library:write")) + (u/display-not-valid :fontId "Plugin doesn't have 'library:write' permission") :else (let [typo (-> (u/proxy->library-typography self) @@ -415,7 +481,10 @@ (fn [self value] (cond (not (string? value)) - (u/display-not-valid :library-typography-font-family value) + (u/display-not-valid :fontFamily value) + + (not (r/check-permission plugin-id "library:write")) + (u/display-not-valid :fontFamily "Plugin doesn't have 'library:write' permission") :else (let [typo (-> (u/proxy->library-typography self) @@ -428,7 +497,10 @@ (fn [self value] (cond (not (string? value)) - (u/display-not-valid :library-typography-font-variant-id value) + (u/display-not-valid :fontVariantId value) + + (not (r/check-permission plugin-id "library:write")) + (u/display-not-valid :fontVariantId "Plugin doesn't have 'library:write' permission") :else (let [typo (-> (u/proxy->library-typography self) @@ -441,7 +513,10 @@ (fn [self value] (cond (not (string? value)) - (u/display-not-valid :library-typography-font-size value) + (u/display-not-valid :fontSize value) + + (not (r/check-permission plugin-id "library:write")) + (u/display-not-valid :fontSize "Plugin doesn't have 'library:write' permission") :else (let [typo (-> (u/proxy->library-typography self) @@ -454,7 +529,10 @@ (fn [self value] (cond (not (string? value)) - (u/display-not-valid :library-typography-font-weight value) + (u/display-not-valid :fontWeight value) + + (not (r/check-permission plugin-id "library:write")) + (u/display-not-valid :fontWeight "Plugin doesn't have 'library:write' permission") :else (let [typo (-> (u/proxy->library-typography self) @@ -467,7 +545,10 @@ (fn [self value] (cond (not (string? value)) - (u/display-not-valid :library-typography-font-style value) + (u/display-not-valid :fontStyle value) + + (not (r/check-permission plugin-id "library:write")) + (u/display-not-valid :fontStyle "Plugin doesn't have 'library:write' permission") :else (let [typo (-> (u/proxy->library-typography self) @@ -480,7 +561,10 @@ (fn [self value] (cond (not (string? value)) - (u/display-not-valid :library-typography-font-height value) + (u/display-not-valid :lineHeight value) + + (not (r/check-permission plugin-id "library:write")) + (u/display-not-valid :lineHeight "Plugin doesn't have 'library:write' permission") :else (let [typo (-> (u/proxy->library-typography self) @@ -493,7 +577,10 @@ (fn [self value] (cond (not (string? value)) - (u/display-not-valid :library-typography-letter-spacing value) + (u/display-not-valid :letterSpacing value) + + (not (r/check-permission plugin-id "library:write")) + (u/display-not-valid :letterSpacing "Plugin doesn't have 'library:write' permission") :else (let [typo (-> (u/proxy->library-typography self) @@ -506,7 +593,10 @@ (fn [self value] (cond (not (string? value)) - (u/display-not-valid :library-typography-text-transform value) + (u/display-not-valid :textTransform value) + + (not (r/check-permission plugin-id "library:write")) + (u/display-not-valid :textTransform "Plugin doesn't have 'library:write' permission") :else (let [typo (-> (u/proxy->library-typography self) @@ -518,13 +608,23 @@ (remove [_] - (st/emit! (dwl/delete-component {:id $id}))) + (cond + (not (r/check-permission $plugin "library:write")) + (u/display-not-valid :remove "Plugin doesn't have 'library:write' permission") + + :else + (st/emit! (dwl/delete-component {:id $id})))) (instance [_] - (let [id-ref (atom nil)] - (st/emit! (dwl/instantiate-component $file $id (gpt/point 0 0) {:id-ref id-ref})) - (shape/shape-proxy $plugin @id-ref))) + (cond + (not (r/check-permission $plugin "content:write")) + (u/display-not-valid :instance "Plugin doesn't have 'content:write' permission") + + :else + (let [id-ref (atom nil)] + (st/emit! (dwl/instantiate-component $file $id (gpt/point 0 0) {:id-ref id-ref})) + (shape/shape-proxy $plugin @id-ref)))) (getPluginData [self key] @@ -540,13 +640,16 @@ [_ key value] (cond (not= $file (:current-file-id @st/state)) - (u/display-not-valid :component-edit-non-local-library $file) + (u/display-not-valid :setPluginData-non-local-library $file) (not (string? key)) - (u/display-not-valid :component-plugin-data-key key) + (u/display-not-valid :setPluginData-key key) (and (some? value) (not (string? value))) - (u/display-not-valid :component-plugin-data value) + (u/display-not-valid :setPluginData-value value) + + (not (r/check-permission $plugin "library:write")) + (u/display-not-valid :setPluginData "Plugin doesn't have 'library:write' permission") :else (st/emit! (dw/set-plugin-data $file :component $id (keyword "plugin" (str $plugin)) key value)))) @@ -573,16 +676,19 @@ [_ namespace key value] (cond (not= $file (:current-file-id @st/state)) - (u/display-not-valid :component-edit-non-local-library $file) + (u/display-not-valid :setSharedPluginData-non-local-library $file) (not (string? namespace)) - (u/display-not-valid :component-plugin-data-namespace namespace) + (u/display-not-valid :setSharedPluginData-namespace namespace) (not (string? key)) - (u/display-not-valid :component-plugin-data-key key) + (u/display-not-valid :setSharedPluginData-key key) (and (some? value) (not (string? value))) - (u/display-not-valid :component-plugin-data value) + (u/display-not-valid :setSharedPluginData-value value) + + (not (r/check-permission $plugin "library:write")) + (u/display-not-valid :setSharedPluginData "Plugin doesn't have 'library:write' permission") :else (st/emit! (dw/set-plugin-data $file :component $id (keyword "shared" namespace) key value)))) @@ -626,7 +732,10 @@ (fn [self value] (cond (not (string? value)) - (u/display-not-valid :library-component-name value) + (u/display-not-valid :name value) + + (not (r/check-permission plugin-id "library:write")) + (u/display-not-valid :name "Plugin doesn't have 'library:write' permission") :else (let [component (u/proxy->library-component self) @@ -639,7 +748,10 @@ (fn [self value] (cond (not (string? value)) - (u/display-not-valid :library-component-path value) + (u/display-not-valid :path value) + + (not (r/check-permission plugin-id "library:write")) + (u/display-not-valid :path "Plugin doesn't have 'library:write' permission") :else (let [component (u/proxy->library-component self) @@ -653,22 +765,37 @@ (createColor [_] - (let [color-id (uuid/next)] - (st/emit! (dwl/add-color {:id color-id :name "Color" :color "#000000" :opacity 1} {:rename? false})) - (lib-color-proxy $plugin $id color-id))) + (cond + (not (r/check-permission $plugin "library:write")) + (u/display-not-valid :createColor "Plugin doesn't have 'library:write' permission") + + :else + (let [color-id (uuid/next)] + (st/emit! (dwl/add-color {:id color-id :name "Color" :color "#000000" :opacity 1} {:rename? false})) + (lib-color-proxy $plugin $id color-id)))) (createTypography [_] - (let [typography-id (uuid/next)] - (st/emit! (dwl/add-typography (ctt/make-typography {:id typography-id :name "Typography"}) false)) - (lib-typography-proxy $plugin $id typography-id))) + (cond + (not (r/check-permission $plugin "library:write")) + (u/display-not-valid :createTypography "Plugin doesn't have 'library:write' permission") + + :else + (let [typography-id (uuid/next)] + (st/emit! (dwl/add-typography (ctt/make-typography {:id typography-id :name "Typography"}) false)) + (lib-typography-proxy $plugin $id typography-id)))) (createComponent [_ shapes] - (let [id-ref (atom nil) - ids (into #{} (map #(obj/get % "$id")) shapes)] - (st/emit! (dwl/add-component id-ref ids)) - (lib-component-proxy $plugin $id @id-ref))) + (cond + (not (r/check-permission $plugin "library:write")) + (u/display-not-valid :createComponent "Plugin doesn't have 'library:write' permission") + + :else + (let [id-ref (atom nil) + ids (into #{} (map #(obj/get % "$id")) shapes)] + (st/emit! (dwl/add-component id-ref ids)) + (lib-component-proxy $plugin $id @id-ref)))) ;; Plugin data (getPluginData @@ -685,10 +812,13 @@ [_ key value] (cond (not (string? key)) - (u/display-not-valid :file-plugin-data-key key) + (u/display-not-valid :setPluginData-key key) (and (some? value) (not (string? value))) - (u/display-not-valid :file-plugin-data value) + (u/display-not-valid :setPluginData-value value) + + (not (r/check-permission $plugin "library:write")) + (u/display-not-valid :setPluginData "Plugin doesn't have 'library:write' permission") :else (st/emit! (dw/set-plugin-data $id :file (keyword "plugin" (str $plugin)) key value)))) @@ -716,13 +846,16 @@ (cond (not (string? namespace)) - (u/display-not-valid :file-plugin-data-namespace namespace) + (u/display-not-valid :setSharedPluginData-namespace namespace) (not (string? key)) - (u/display-not-valid :file-plugin-data-key key) + (u/display-not-valid :setSharedPluginData-key key) (and (some? value) (not (string? value))) - (u/display-not-valid :file-plugin-data value) + (u/display-not-valid :setSharedPluginData-value value) + + (not (r/check-permission $plugin "library:write")) + (u/display-not-valid :setSharedPluginData "Plugin doesn't have 'library:write' permission") :else (st/emit! (dw/set-plugin-data $id :file (keyword "shared" namespace) key value)))) @@ -731,7 +864,7 @@ [self namespace] (cond (not (string? namespace)) - (u/display-not-valid :file-plugin-data-namespace namespace) + (u/display-not-valid :namespace namespace) :else (let [file (u/proxy->file self)] @@ -805,21 +938,26 @@ (connectLibrary [_ library-id] - (p/create - (fn [resolve reject] - (cond - (not (string? library-id)) - (do (u/display-not-valid :connectLibrary library-id) - (reject nil)) + (cond + (not (r/check-permission $plugin "library:write")) + (u/display-not-valid :connectLibrary "Plugin doesn't have 'library:write' permission") - :else - (let [file-id (:current-file-id @st/state) - library-id (uuid/uuid library-id)] - (->> st/stream - (rx/filter (ptk/type? ::dwl/attach-library-finished)) - (rx/take 1) - (rx/subs! #(resolve (library-proxy $plugin library-id)) reject)) - (st/emit! (dwl/link-file-to-library file-id library-id)))))))) + :else + (p/create + (fn [resolve reject] + (cond + (not (string? library-id)) + (do (u/display-not-valid :connectLibrary library-id) + (reject nil)) + + :else + (let [file-id (:current-file-id @st/state) + library-id (uuid/uuid library-id)] + (->> st/stream + (rx/filter (ptk/type? ::dwl/attach-library-finished)) + (rx/take 1) + (rx/subs! #(resolve (library-proxy $plugin library-id)) reject)) + (st/emit! (dwl/link-file-to-library file-id library-id))))))))) (defn library-subcontext [plugin-id] diff --git a/frontend/src/app/plugins/page.cljs b/frontend/src/app/plugins/page.cljs index 66ff1877fa..712b6293ca 100644 --- a/frontend/src/app/plugins/page.cljs +++ b/frontend/src/app/plugins/page.cljs @@ -14,6 +14,7 @@ [app.main.data.workspace :as dw] [app.main.store :as st] [app.plugins.parser :as parser] + [app.plugins.register :as r] [app.plugins.shape :as shape] [app.plugins.utils :as u] [app.util.object :as obj] @@ -74,10 +75,13 @@ [_ key value] (cond (not (string? key)) - (u/display-not-valid :page-plugin-data-key key) + (u/display-not-valid :setPluginData-key key) (and (some? value) (not (string? value))) - (u/display-not-valid :page-plugin-data value) + (u/display-not-valid :setPluginData-value value) + + (not (r/check-permission $plugin "content:write")) + (u/display-not-valid :setPluginData "Plugin doesn't have 'content:write' permission") :else (st/emit! (dw/set-plugin-data $file :page $id (keyword "plugin" (str $plugin)) key value)))) @@ -105,13 +109,16 @@ (cond (not (string? namespace)) - (u/display-not-valid :page-plugin-data-namespace namespace) + (u/display-not-valid :setSharedPluginData-namespace namespace) (not (string? key)) - (u/display-not-valid :page-plugin-data-key key) + (u/display-not-valid :setSharedPluginData-key key) (and (some? value) (not (string? value))) - (u/display-not-valid :page-plugin-data value) + (u/display-not-valid :setSharedPluginData-value value) + + (not (r/check-permission $plugin "content:write")) + (u/display-not-valid :setSharedPluginData "Plugin doesn't have 'content:write' permission") :else (st/emit! (dw/set-plugin-data $file :page $id (keyword "shared" namespace) key value)))) @@ -151,7 +158,10 @@ (fn [_ value] (cond (not (string? value)) - (u/display-not-valid :page-name value) + (u/display-not-valid :name value) + + (not (r/check-permission plugin-id "content:write")) + (u/display-not-valid :name "Plugin doesn't have 'content:write' permission") :else (st/emit! (dw/rename-page id value))))} @@ -167,7 +177,10 @@ (fn [_ value] (cond (or (not (string? value)) (not (cc/valid-hex-color? value))) - (u/display-not-valid :page-background-color value) + (u/display-not-valid :background value) + + (not (r/check-permission plugin-id "content:write")) + (u/display-not-valid :background "Plugin doesn't have 'content:write' permission") :else (st/emit! (dw/change-canvas-color id {:color value}))))})) diff --git a/frontend/src/app/plugins/register.cljs b/frontend/src/app/plugins/register.cljs new file mode 100644 index 0000000000..ab8fb1d801 --- /dev/null +++ b/frontend/src/app/plugins/register.cljs @@ -0,0 +1,55 @@ +;; This Source Code Form is subject to the terms of the Mozilla Public +;; License, v. 2.0. If a copy of the MPL was not distributed with this +;; file, You can obtain one at http://mozilla.org/MPL/2.0/. +;; +;; Copyright (c) KALEIDOS INC + +(ns app.plugins.register + "RPC for plugins runtime." + (:require + [app.common.data :as d])) + +;; TODO: Remove clj->js and parse into a better data structure for accessing the permissions + +(def pluginsdb (atom nil)) + +(defn load-from-store + [] + (let [ls (.-localStorage js/window) + plugins-val (.getItem ls "plugins")] + (when plugins-val + (let [plugins-js (.parse js/JSON plugins-val)] + (js->clj plugins-js {:keywordize-keys true}))))) + +(defn save-to-store + [plugins] + (let [ls (.-localStorage js/window) + plugins-js (clj->js plugins) + plugins-val (.stringify js/JSON plugins-js)] + (.setItem ls "plugins" plugins-val))) + +(defn init + [] + (reset! pluginsdb (load-from-store))) + +(defn install-plugin! + [plugin] + (let [plugins (vec (conj (seq @pluginsdb) plugin))] + (reset! pluginsdb plugins) + (save-to-store plugins))) + +(defn remove-plugin! + [{:keys [plugin-id]}] + (let [plugins + (into [] + (keep (fn [plugin] + (when (not= plugin-id (:plugin-id plugin)) plugin))) + @pluginsdb)] + (reset! pluginsdb plugins) + (save-to-store plugins))) + +(defn check-permission + [plugin-id permission] + (or (= plugin-id "TEST") + (let [{:keys [permissions]} (->> @pluginsdb (d/seek #(= (:plugin-id %) plugin-id)))] + (->> permissions (d/seek #(= % permission)))))) diff --git a/frontend/src/app/plugins/shape.cljs b/frontend/src/app/plugins/shape.cljs index bc1b53abab..727b2c70c9 100644 --- a/frontend/src/app/plugins/shape.cljs +++ b/frontend/src/app/plugins/shape.cljs @@ -41,6 +41,7 @@ [app.plugins.format :as format] [app.plugins.grid :as grid] [app.plugins.parser :as parser] + [app.plugins.register :as r] [app.plugins.text :as text] [app.plugins.utils :as u] [app.util.object :as obj] @@ -93,6 +94,9 @@ (or (not (us/safe-number? height)) (<= height 0)) (u/display-not-valid :resize height) + (not (r/check-permission $plugin "content:write")) + (u/display-not-valid :resize "Plugin doesn't have 'content:write' permission") + :else (st/emit! (dw/update-dimensions [$id] :width width) (dw/update-dimensions [$id] :height height)))) @@ -107,6 +111,9 @@ (and (some? center) (or (not (number? (:x center))) (not (number? (:y center))))) (u/display-not-valid :rotate-center center) + (not (r/check-permission $plugin "content:write")) + (u/display-not-valid :rotate "Plugin doesn't have 'content:write' permission") + :else (let [id (obj/get self "$id")] (st/emit! (dw/increase-rotation [id] angle {:center center :delta? true})))))) @@ -114,19 +121,29 @@ (clone [_] (let [ret-v (atom nil)] - (st/emit! (dws/duplicate-shapes #{$id} :change-selection? false :return-ref ret-v)) - (shape-proxy $plugin (deref ret-v)))) + (cond + (not (r/check-permission $plugin "content:write")) + (u/display-not-valid :clone "Plugin doesn't have 'content:write' permission") + + :else + (do (st/emit! (dws/duplicate-shapes #{$id} :change-selection? false :return-ref ret-v)) + (shape-proxy $plugin (deref ret-v)))))) (remove [_] - (st/emit! (dwsh/delete-shapes #{$id}))) + (cond + (not (r/check-permission $plugin "content:write")) + (u/display-not-valid :remove "Plugin doesn't have 'content:write' permission") + + :else + (st/emit! (dwsh/delete-shapes #{$id})))) ;; Plugin data (getPluginData [self key] (cond (not (string? key)) - (u/display-not-valid :shape-plugin-data-key key) + (u/display-not-valid :getPluginData key) :else (let [shape (u/proxy->shape self)] @@ -136,10 +153,13 @@ [_ key value] (cond (not (string? key)) - (u/display-not-valid :shape-plugin-data-key key) + (u/display-not-valid :setPluginData-key key) (and (some? value) (not (string? value))) - (u/display-not-valid :shape-plugin-data value) + (u/display-not-valid :setPluginData-value value) + + (not (r/check-permission $plugin "content:write")) + (u/display-not-valid :setPluginData "Plugin doesn't have 'content:write' permission") :else (st/emit! (dw/set-plugin-data $file :shape $id $page (keyword "plugin" (str $plugin)) key value)))) @@ -153,10 +173,10 @@ [self namespace key] (cond (not (string? namespace)) - (u/display-not-valid :shape-plugin-data-namespace namespace) + (u/display-not-valid :getSharedPluginData-namespace namespace) (not (string? key)) - (u/display-not-valid :shape-plugin-data-key key) + (u/display-not-valid :getSharedPluginData-key key) :else (let [shape (u/proxy->shape self)] @@ -167,13 +187,16 @@ (cond (not (string? namespace)) - (u/display-not-valid :shape-plugin-data-namespace namespace) + (u/display-not-valid :setSharedPluginData-namespace namespace) (not (string? key)) - (u/display-not-valid :shape-plugin-data-key key) + (u/display-not-valid :setSharedPluginData-key key) (and (some? value) (not (string? value))) - (u/display-not-valid :shape-plugin-data value) + (u/display-not-valid :setSharedPluginData-value value) + + (not (r/check-permission $plugin "content:write")) + (u/display-not-valid :setSharedPluginData "Plugin doesn't have 'content:write' permission") :else (st/emit! (dw/set-plugin-data $file :shape $id $page (keyword "shared" namespace) key value)))) @@ -182,7 +205,7 @@ [self namespace] (cond (not (string? namespace)) - (u/display-not-valid :shape-plugin-data-namespace namespace) + (u/display-not-valid :getSharedPluginDataKeys namespace) :else (let [shape (u/proxy->shape self)] @@ -218,6 +241,9 @@ (not (shape-proxy? child)) (u/display-not-valid :appendChild-child child) + (not (r/check-permission $plugin "content:write")) + (u/display-not-valid :appendChild "Plugin doesn't have 'content:write' permission") + :else (let [child-id (obj/get child "$id")] (st/emit! (dw/relocate-shapes #{child-id} $id 0)))))) @@ -235,6 +261,9 @@ (not (shape-proxy? child)) (u/display-not-valid :insertChild-child child) + (not (r/check-permission $plugin "content:write")) + (u/display-not-valid :insertChild "Plugin doesn't have 'content:write' permission") + :else (let [child-id (obj/get child "$id")] (st/emit! (dw/relocate-shapes #{child-id} $id index)))))) @@ -247,6 +276,9 @@ (not (cfh/frame-shape? shape)) (u/display-not-valid :addFlexLayout (:type shape)) + (not (r/check-permission $plugin "content:write")) + (u/display-not-valid :addFlexLayout "Plugin doesn't have 'content:write' permission") + :else (do (st/emit! (dwsl/create-layout-from-id $id :flex :from-frame? true :calculate-params? false)) (grid/grid-layout-proxy $plugin $file $page $id))))) @@ -258,6 +290,9 @@ (not (cfh/frame-shape? shape)) (u/display-not-valid :addGridLayout (:type shape)) + (not (r/check-permission $plugin "content:write")) + (u/display-not-valid :addGridLayout "Plugin doesn't have 'content:write' permission") + :else (do (st/emit! (dwsl/create-layout-from-id $id :grid :from-frame? true :calculate-params? false)) (grid/grid-layout-proxy $plugin $file $page $id))))) @@ -270,6 +305,9 @@ (not (cfh/group-shape? shape)) (u/display-not-valid :makeMask (:type shape)) + (not (r/check-permission $plugin "content:write")) + (u/display-not-valid :makeMask "Plugin doesn't have 'content:write' permission") + :else (st/emit! (dwg/mask-group #{$id}))))) @@ -280,6 +318,9 @@ (not (cfh/mask-shape? shape)) (u/display-not-valid :removeMask (:type shape)) + (not (r/check-permission $plugin "content:write")) + (u/display-not-valid :removeMask "Plugin doesn't have 'content:write' permission") + :else (st/emit! (dwg/unmask-group #{$id}))))) @@ -321,6 +362,9 @@ (not (cfh/text-shape? shape)) (u/display-not-valid :applyTypography-shape (:type shape)) + (not (r/check-permission $plugin "content:write")) + (u/display-not-valid :applyTypography "Plugin doesn't have 'content:write' permission") + :else (let [typography (u/proxy->library-typography typography)] (st/emit! (dwt/apply-typography #{$id} typography $file)))))) @@ -442,8 +486,11 @@ (not (str/ends-with? value "/")) (not (str/blank? value)))] (cond + (not (r/check-permission plugin-id "content:write")) + (u/display-not-valid :name "Plugin doesn't have 'content:write' permission") + (not valid?) - (u/display-not-valid :shape-name value) + (u/display-not-valid :name value) :else (st/emit! (dwsh/update-shapes [id] #(assoc % :name value))))))} @@ -456,6 +503,9 @@ (not (boolean? value)) (u/display-not-valid :blocked value) + (not (r/check-permission plugin-id "content:write")) + (u/display-not-valid :blocked "Plugin doesn't have 'content:write' permission") + :else (let [id (obj/get self "$id")] (st/emit! (dwsh/update-shapes [id] #(assoc % :blocked value))))))} @@ -468,6 +518,9 @@ (not (boolean? value)) (u/display-not-valid :hidden value) + (not (r/check-permission plugin-id "content:write")) + (u/display-not-valid :hidden "Plugin doesn't have 'content:write' permission") + :else (let [id (obj/get self "$id")] (st/emit! (dwsh/update-shapes [id] #(assoc % :hidden value))))))} @@ -480,6 +533,9 @@ (not (boolean? value)) (u/display-not-valid :proportionLock value) + (not (r/check-permission plugin-id "content:write")) + (u/display-not-valid :proportionLock "Plugin doesn't have 'content:write' permission") + :else (let [id (obj/get self "$id")] (st/emit! (dwsh/update-shapes [id] #(assoc % :proportion-lock value))))))} @@ -494,6 +550,9 @@ (not (contains? cts/horizontal-constraint-types value)) (u/display-not-valid :constraintsHorizontal value) + (not (r/check-permission plugin-id "content:write")) + (u/display-not-valid :constraintsHorizontal "Plugin doesn't have 'content:write' permission") + :else (st/emit! (dwsh/update-shapes [id] #(assoc % :constraints-h value))))))} @@ -507,6 +566,9 @@ (not (contains? cts/vertical-constraint-types value)) (u/display-not-valid :constraintsVertical value) + (not (r/check-permission plugin-id "content:write")) + (u/display-not-valid :constraintsVertical "Plugin doesn't have 'content:write' permission") + :else (st/emit! (dwsh/update-shapes [id] #(assoc % :constraints-v value))))))} @@ -520,6 +582,9 @@ (or (not (us/safe-int? value)) (< value 0)) (u/display-not-valid :borderRadius value) + (not (r/check-permission plugin-id "content:write")) + (u/display-not-valid :borderRadius "Plugin doesn't have 'content:write' permission") + (or (not (ctsr/has-radius? shape)) (ctsr/radius-4? shape)) (st/emit! (dwsh/update-shapes [id] #(-> % ctsr/switch-to-radius-1 @@ -538,6 +603,9 @@ (not (us/safe-int? value)) (u/display-not-valid :borderRadiusTopLeft value) + (not (r/check-permission plugin-id "content:write")) + (u/display-not-valid :borderRadiusTopLeft "Plugin doesn't have 'content:write' permission") + (or (not (ctsr/has-radius? shape)) (not (ctsr/radius-4? shape))) (st/emit! (dwsh/update-shapes [id] #(-> % (ctsr/switch-to-radius-4) @@ -556,6 +624,9 @@ (not (us/safe-int? value)) (u/display-not-valid :borderRadiusTopRight value) + (not (r/check-permission plugin-id "content:write")) + (u/display-not-valid :borderRadiusTopRight "Plugin doesn't have 'content:write' permission") + (or (not (ctsr/has-radius? shape)) (not (ctsr/radius-4? shape))) (st/emit! (dwsh/update-shapes [id] #(-> % (ctsr/switch-to-radius-4) @@ -574,6 +645,9 @@ (not (us/safe-int? value)) (u/display-not-valid :borderRadiusBottomRight value) + (not (r/check-permission plugin-id "content:write")) + (u/display-not-valid :borderRadiusBottomRight "Plugin doesn't have 'content:write' permission") + (or (not (ctsr/has-radius? shape)) (not (ctsr/radius-4? shape))) (st/emit! (dwsh/update-shapes [id] #(-> % (ctsr/switch-to-radius-4) @@ -592,6 +666,9 @@ (not (us/safe-int? value)) (u/display-not-valid :borderRadiusBottomLeft value) + (not (r/check-permission plugin-id "content:write")) + (u/display-not-valid :borderRadiusBottomLeft "Plugin doesn't have 'content:write' permission") + (or (not (ctsr/has-radius? shape)) (not (ctsr/radius-4? shape))) (st/emit! (dwsh/update-shapes [id] #(-> % (ctsr/switch-to-radius-4) @@ -605,7 +682,14 @@ :set (fn [self value] (let [id (obj/get self "$id")] - (when (and (us/safe-number? value) (>= value 0) (<= value 1)) + (cond + (or (not (us/safe-number? value)) (< value 0) (> value 1)) + (u/display-not-valid :opacity value) + + (not (r/check-permission plugin-id "content:write")) + (u/display-not-valid :opacity "Plugin doesn't have 'content:write' permission") + + :else (st/emit! (dwsh/update-shapes [id] #(assoc % :opacity value))))))} {:name "blendMode" @@ -618,6 +702,9 @@ (not (contains? cts/blend-modes value)) (u/display-not-valid :blendMode value) + (not (r/check-permission plugin-id "content:write")) + (u/display-not-valid :blendMode "Plugin doesn't have 'content:write' permission") + :else (st/emit! (dwsh/update-shapes [id] #(assoc % :blend-mode value))))))} @@ -631,6 +718,9 @@ (not (sm/validate [:vector ::ctss/shadow] value)) (u/display-not-valid :shadows value) + (not (r/check-permission plugin-id "content:write")) + (u/display-not-valid :shadows "Plugin doesn't have 'content:write' permission") + :else (st/emit! (dwsh/update-shapes [id] #(assoc % :shadow value))))))} @@ -646,6 +736,9 @@ (not (sm/validate ::ctsb/blur value)) (u/display-not-valid :blur value) + (not (r/check-permission plugin-id "content:write")) + (u/display-not-valid :blur "Plugin doesn't have 'content:write' permission") + :else (st/emit! (dwsh/update-shapes [id] #(assoc % :blur value)))))))} @@ -659,6 +752,9 @@ (not (sm/validate [:vector ::ctse/export] value)) (u/display-not-valid :exports value) + (not (r/check-permission plugin-id "content:write")) + (u/display-not-valid :exports "Plugin doesn't have 'content:write' permission") + :else (st/emit! (dwsh/update-shapes [id] #(assoc % :exports value))))))} @@ -672,6 +768,9 @@ (not (us/safe-number? value)) (u/display-not-valid :x value) + (not (r/check-permission plugin-id "content:write")) + (u/display-not-valid :x "Plugin doesn't have 'content:write' permission") + :else (st/emit! (dw/update-position id {:x value})))))} @@ -684,6 +783,9 @@ (not (us/safe-number? value)) (u/display-not-valid :y value) + (not (r/check-permission plugin-id "content:write")) + (u/display-not-valid :y "Plugin doesn't have 'content:write' permission") + :else (st/emit! (dw/update-position id {:y value})))))} @@ -699,6 +801,9 @@ (not (us/safe-number? value)) (u/display-not-valid :parentX value) + (not (r/check-permission plugin-id "content:write")) + (u/display-not-valid :parentX "Plugin doesn't have 'content:write' permission") + :else (let [id (obj/get self "$id") parent-id (-> self u/proxy->shape :parent-id) @@ -719,6 +824,9 @@ (not (us/safe-number? value)) (u/display-not-valid :parentY value) + (not (r/check-permission plugin-id "content:write")) + (u/display-not-valid :parentY "Plugin doesn't have 'content:write' permission") + :else (let [id (obj/get self "$id") parent-id (-> self u/proxy->shape :parent-id) @@ -739,6 +847,9 @@ (not (us/safe-number? value)) (u/display-not-valid :frameX value) + (not (r/check-permission plugin-id "content:write")) + (u/display-not-valid :frameX "Plugin doesn't have 'content:write' permission") + :else (let [id (obj/get self "$id") frame-id (-> self u/proxy->shape :frame-id) @@ -759,6 +870,9 @@ (not (us/safe-number? value)) (u/display-not-valid :frameY value) + (not (r/check-permission plugin-id "content:write")) + (u/display-not-valid :frameY "Plugin doesn't have 'content:write' permission") + :else (let [id (obj/get self "$id") frame-id (-> self u/proxy->shape :frame-id) @@ -780,6 +894,9 @@ (not (number? value)) (u/display-not-valid :rotation value) + (not (r/check-permission plugin-id "content:write")) + (u/display-not-valid :rotation "Plugin doesn't have 'content:write' permission") + :else (let [shape (u/proxy->shape self)] (st/emit! (dw/increase-rotation #{(:id shape)} value)))))} @@ -792,6 +909,9 @@ (not (boolean? value)) (u/display-not-valid :flipX value) + (not (r/check-permission plugin-id "content:write")) + (u/display-not-valid :flipX "Plugin doesn't have 'content:write' permission") + :else (let [id (obj/get self "$id")] (st/emit! (dw/flip-horizontal-selected #{id})))))} @@ -804,6 +924,9 @@ (not (boolean? value)) (u/display-not-valid :flipY value) + (not (r/check-permission plugin-id "content:write")) + (u/display-not-valid :flipY "Plugin doesn't have 'content:write' permission") + :else (let [id (obj/get self "$id")] (st/emit! (dw/flip-vertical-selected #{id})))))} @@ -825,6 +948,9 @@ (cfh/text-shape? shape) (st/emit! (dwt/update-attrs id {:fills value})) + (not (r/check-permission plugin-id "content:write")) + (u/display-not-valid :fills "Plugin doesn't have 'content:write' permission") + :else (st/emit! (dwsh/update-shapes [id] #(assoc % :fills value))))))} @@ -838,6 +964,9 @@ (not (sm/validate [:vector ::cts/stroke] value)) (u/display-not-valid :strokes value) + (not (r/check-permission plugin-id "content:write")) + (u/display-not-valid :strokes "Plugin doesn't have 'content:write' permission") + :else (st/emit! (dwsh/update-shapes [id] #(assoc % :strokes value))))))} @@ -898,6 +1027,9 @@ (not (sm/validate [:vector ::ctg/grid] value)) (u/display-not-valid :guides value) + (not (r/check-permission plugin-id "content:write")) + (u/display-not-valid :guides "Plugin doesn't have 'content:write' permission") + :else (st/emit! (dwsh/update-shapes [id] #(assoc % :grids value))))))} @@ -911,6 +1043,9 @@ (not (contains? #{:fix :auto} value)) (u/display-not-valid :horizontalSizing value) + (not (r/check-permission plugin-id "content:write")) + (u/display-not-valid :horizontalSizing "Plugin doesn't have 'content:write' permission") + :else (st/emit! (dwsl/update-layout #{id} {:layout-item-h-sizing value})))))} @@ -924,10 +1059,13 @@ (not (contains? #{:fix :auto} value)) (u/display-not-valid :verticalSizing value) + (not (r/check-permission plugin-id "content:write")) + (u/display-not-valid :verticalSizing "Plugin doesn't have 'content:write' permission") + :else (st/emit! (dwsl/update-layout #{id} {:layout-item-v-sizing value})))))}))) - (cond-> (cfh/text-shape? data) (text/add-text-props)) + (cond-> (cfh/text-shape? data) (text/add-text-props plugin-id)) (cond-> (or (cfh/path-shape? data) (cfh/bool-shape? data)) (crc/add-properties! @@ -945,6 +1083,9 @@ (not (sm/validate ::ctsp/content content)) (u/display-not-valid :content value) + (not (r/check-permission plugin-id "content:write")) + (u/display-not-valid :content "Plugin doesn't have 'content:write' permission") + :else (let [selrect (gsh/content->selrect content) points (grc/rect->points selrect)] diff --git a/frontend/src/app/plugins/text.cljs b/frontend/src/app/plugins/text.cljs index 05750c9bb2..d0558664c5 100644 --- a/frontend/src/app/plugins/text.cljs +++ b/frontend/src/app/plugins/text.cljs @@ -18,6 +18,7 @@ [app.main.store :as st] [app.plugins.format :as format] [app.plugins.parser :as parser] + [app.plugins.register :as r] [app.plugins.utils :as u] [app.util.object :as obj] [app.util.text-editor :as ted] @@ -107,6 +108,9 @@ (not (some? font)) (u/display-not-valid :fontId value) + (not (r/check-permission plugin-id "content:write")) + (u/display-not-valid :fontId "Plugin doesn't have 'content:write' permission") + :else (st/emit! (dwt/update-text-range id start end (font-data font variant))))))} @@ -123,6 +127,9 @@ (not (string? value)) (u/display-not-valid :fontFamily value) + (not (r/check-permission plugin-id "content:write")) + (u/display-not-valid :fontFamily "Plugin doesn't have 'content:write' permission") + :else (st/emit! (dwt/update-text-range id start end (font-data font variant))))))} @@ -138,6 +145,9 @@ (not (string? value)) (u/display-not-valid :fontVariantId value) + (not (r/check-permission plugin-id "content:write")) + (u/display-not-valid :fontVariantId "Plugin doesn't have 'content:write' permission") + :else (st/emit! (dwt/update-text-range id start end (variant-data variant))))))} @@ -152,6 +162,9 @@ (or (empty? value) (not (re-matches font-size-re value))) (u/display-not-valid :fontSize value) + (not (r/check-permission plugin-id "content:write")) + (u/display-not-valid :fontSize "Plugin doesn't have 'content:write' permission") + :else (st/emit! (dwt/update-text-range id start end {:font-size value})))))} @@ -167,6 +180,9 @@ (nil? variant) (u/display-not-valid :fontWeight (dm/str "Font weight '" value "' not supported for the current font")) + (not (r/check-permission plugin-id "content:write")) + (u/display-not-valid :fontWeight "Plugin doesn't have 'content:write' permission") + :else (st/emit! (dwt/update-text-range id start end (variant-data variant))))))} @@ -182,6 +198,9 @@ (nil? variant) (u/display-not-valid :fontStyle (dm/str "Font style '" value "' not supported for the current font")) + (not (r/check-permission plugin-id "content:write")) + (u/display-not-valid :fontStyle "Plugin doesn't have 'content:write' permission") + :else (st/emit! (dwt/update-text-range id start end (variant-data variant))))))} @@ -196,6 +215,9 @@ (or (empty? value) (not (re-matches line-height-re value))) (u/display-not-valid :lineHeight value) + (not (r/check-permission plugin-id "content:write")) + (u/display-not-valid :lineHeight "Plugin doesn't have 'content:write' permission") + :else (st/emit! (dwt/update-text-range id start end {:line-height value})))))} @@ -210,6 +232,9 @@ (or (empty? value) (re-matches letter-spacing-re value)) (u/display-not-valid :letterSpacing value) + (not (r/check-permission plugin-id "content:write")) + (u/display-not-valid :letterSpacing "Plugin doesn't have 'content:write' permission") + :else (st/emit! (dwt/update-text-range id start end {:letter-spacing value})))))} @@ -223,6 +248,9 @@ (and (string? value) (re-matches text-transform-re value)) (u/display-not-valid :textTransform value) + (not (r/check-permission plugin-id "content:write")) + (u/display-not-valid :textTransform "Plugin doesn't have 'content:write' permission") + :else (st/emit! (dwt/update-text-range id start end {:text-transform value}))))} @@ -236,6 +264,9 @@ (and (string? value) (re-matches text-decoration-re value)) (u/display-not-valid :textDecoration value) + (not (r/check-permission plugin-id "content:write")) + (u/display-not-valid :textDecoration "Plugin doesn't have 'content:write' permission") + :else (st/emit! (dwt/update-text-range id start end {:text-decoration value}))))} @@ -249,6 +280,9 @@ (and (string? value) (re-matches text-direction-re value)) (u/display-not-valid :direction value) + (not (r/check-permission plugin-id "content:write")) + (u/display-not-valid :direction "Plugin doesn't have 'content:write' permission") + :else (st/emit! (dwt/update-text-range id start end {:direction value}))))} @@ -260,7 +294,10 @@ (fn [_ value] (cond (and (string? value) (re-matches text-align-re value)) - (u/display-not-valid :text-align value) + (u/display-not-valid :align value) + + (not (r/check-permission plugin-id "content:write")) + (u/display-not-valid :align "Plugin doesn't have 'content:write' permission") :else (st/emit! (dwt/update-text-range id start end {:text-align value}))))} @@ -276,11 +313,14 @@ (not (sm/validate [:vector ::cts/fill] value)) (u/display-not-valid :fills value) + (not (r/check-permission plugin-id "content:write")) + (u/display-not-valid :fills "Plugin doesn't have 'content:write' permission") + :else (st/emit! (dwt/update-text-range id start end {:fills value})))))}))) (defn add-text-props - [shape-proxy] + [plugin-id shape-proxy] (crc/add-properties! shape-proxy {:name "characters" @@ -294,6 +334,9 @@ (or (not (string? value)) (empty? value)) (u/display-not-valid :characters value) + (not (r/check-permission plugin-id "content:write")) + (u/display-not-valid :characters "Plugin doesn't have 'content:write' permission") + (contains? (:workspace-editor-state @st/state) id) (let [shape (u/proxy->shape self) editor @@ -317,6 +360,9 @@ (not (contains? #{:auto-width :auto-height :fixed} value)) (u/display-not-valid :growType value) + (not (r/check-permission plugin-id "content:write")) + (u/display-not-valid :growType "Plugin doesn't have 'content:write' permission") + :else (st/emit! (dwsh/update-shapes [id] #(assoc % :grow-type value))))))} @@ -331,6 +377,9 @@ (not (some? font)) (u/display-not-valid :fontId value) + (not (r/check-permission plugin-id "content:write")) + (u/display-not-valid :fontId "Plugin doesn't have 'content:write' permission") + :else (st/emit! (dwt/update-attrs id (font-data font variant))))))} @@ -345,6 +394,9 @@ (not (some? font)) (u/display-not-valid :fontFamily value) + (not (r/check-permission plugin-id "content:write")) + (u/display-not-valid :fontFamily "Plugin doesn't have 'content:write' permission") + :else (st/emit! (dwt/update-attrs id (font-data font variant))))))} @@ -359,6 +411,9 @@ (not (some? variant)) (u/display-not-valid :fontVariantId value) + (not (r/check-permission plugin-id "content:write")) + (u/display-not-valid :fontVariantId "Plugin doesn't have 'content:write' permission") + :else (st/emit! (dwt/update-attrs id (variant-data variant))))))} @@ -372,6 +427,9 @@ (or (empty? value) (not (re-matches font-size-re value))) (u/display-not-valid :fontSize value) + (not (r/check-permission plugin-id "content:write")) + (u/display-not-valid :fontSize "Plugin doesn't have 'content:write' permission") + :else (st/emit! (dwt/update-attrs id {:font-size value})))))} @@ -386,6 +444,9 @@ (nil? variant) (u/display-not-valid :fontWeight (dm/str "Font weight '" value "' not supported for the current font")) + (not (r/check-permission plugin-id "content:write")) + (u/display-not-valid :fontWeight "Plugin doesn't have 'content:write' permission") + :else (st/emit! (dwt/update-attrs id (variant-data variant))))))} @@ -400,6 +461,9 @@ (nil? variant) (u/display-not-valid :fontStyle (dm/str "Font style '" value "' not supported for the current font")) + (not (r/check-permission plugin-id "content:write")) + (u/display-not-valid :fontStyle "Plugin doesn't have 'content:write' permission") + :else (st/emit! (dwt/update-attrs id (variant-data variant))))))} @@ -413,6 +477,9 @@ (or (empty? value) (not (re-matches line-height-re value))) (u/display-not-valid :lineHeight value) + (not (r/check-permission plugin-id "content:write")) + (u/display-not-valid :lineHeight "Plugin doesn't have 'content:write' permission") + :else (st/emit! (dwt/update-attrs id {:line-height value})))))} @@ -426,6 +493,9 @@ (or (empty? value) (re-matches letter-spacing-re value)) (u/display-not-valid :letterSpacing value) + (not (r/check-permission plugin-id "content:write")) + (u/display-not-valid :letterSpacing "Plugin doesn't have 'content:write' permission") + :else (st/emit! (dwt/update-attrs id {:letter-spacing value})))))} @@ -438,6 +508,9 @@ (and (string? value) (re-matches text-transform-re value)) (u/display-not-valid :textTransform value) + (not (r/check-permission plugin-id "content:write")) + (u/display-not-valid :textTransform "Plugin doesn't have 'content:write' permission") + :else (st/emit! (dwt/update-attrs id {:text-transform value})))))} @@ -450,6 +523,9 @@ (and (string? value) (re-matches text-decoration-re value)) (u/display-not-valid :textDecoration value) + (not (r/check-permission plugin-id "content:write")) + (u/display-not-valid :textDecoration "Plugin doesn't have 'content:write' permission") + :else (st/emit! (dwt/update-attrs id {:text-decoration value})))))} @@ -460,10 +536,13 @@ (let [id (obj/get self "$id")] (cond (and (string? value) (re-matches text-direction-re value)) - (u/display-not-valid :textDecoration value) + (u/display-not-valid :textDirection value) + + (not (r/check-permission plugin-id "content:write")) + (u/display-not-valid :textDirection "Plugin doesn't have 'content:write' permission") :else - (st/emit! (dwt/update-attrs id {:text-decoration value})))))} + (st/emit! (dwt/update-attrs id {:text-direction value})))))} {:name "align" :get #(-> % u/proxy->shape text-props :text-align format/format-mixed) @@ -474,6 +553,9 @@ (and (string? value) (re-matches text-align-re value)) (u/display-not-valid :align value) + (not (r/check-permission plugin-id "content:write")) + (u/display-not-valid :align "Plugin doesn't have 'content:write' permission") + :else (st/emit! (dwt/update-attrs id {:text-align value})))))} @@ -486,5 +568,8 @@ (and (string? value) (re-matches vertical-align-re value)) (u/display-not-valid :verticalAlign value) + (not (r/check-permission plugin-id "content:write")) + (u/display-not-valid :verticalAlign "Plugin doesn't have 'content:write' permission") + :else (st/emit! (dwt/update-attrs id {:vertical-align value})))))})) diff --git a/frontend/test/frontend_tests/plugins/context_shapes_test.cljs b/frontend/test/frontend_tests/plugins/context_shapes_test.cljs index e5e85a3265..af6638b827 100644 --- a/frontend/test/frontend_tests/plugins/context_shapes_test.cljs +++ b/frontend/test/frontend_tests/plugins/context_shapes_test.cljs @@ -23,7 +23,7 @@ _ (set! st/state store) - context (api/create-context "tests") + context (api/create-context "TEST") page (. context -currentPage) From 58fa10a0d547f0b1c232dc5b34e72aa2d1dfa670 Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Tue, 2 Jul 2024 11:08:56 +0200 Subject: [PATCH 303/476] :arrow_up: Update plugins runtime --- frontend/resources/plugins-runtime/index.js | 1401 ++++++++++--------- 1 file changed, 710 insertions(+), 691 deletions(-) diff --git a/frontend/resources/plugins-runtime/index.js b/frontend/resources/plugins-runtime/index.js index aa6199d6ae..1d75c17b15 100644 --- a/frontend/resources/plugins-runtime/index.js +++ b/frontend/resources/plugins-runtime/index.js @@ -2,7 +2,7 @@ var Vn = (t, e, r) => { if (!e.has(t)) throw TypeError("Cannot " + r); }; -var Se = (t, e, r) => (Vn(t, e, "read from private field"), r ? r.call(t) : e.get(t)), Gr = (t, e, r) => { +var Ee = (t, e, r) => (Vn(t, e, "read from private field"), r ? r.call(t) : e.get(t)), Gr = (t, e, r) => { if (e.has(t)) throw TypeError("Cannot add the same private member more than once"); e instanceof WeakSet ? e.add(t) : e.set(t, r); @@ -15,7 +15,7 @@ const k = globalThis, { JSON: qs, Map: Pe, Math: Ks, - Number: So, + Number: Eo, Object: bn, Promise: Ys, Proxy: Cr, @@ -23,7 +23,7 @@ const k = globalThis, { RegExp: We, Set: Ct, String: pe, - Symbol: Et, + Symbol: St, WeakMap: Me, WeakSet: $t } = globalThis, { @@ -56,7 +56,7 @@ const k = globalThis, { preventExtensions: Qs, setPrototypeOf: ko, values: Po, - fromEntries: mt + fromEntries: ht } = bn, { species: Vr, toStringTag: qe, @@ -65,7 +65,7 @@ const k = globalThis, { unscopables: ea, keyFor: ta, for: ra -} = Et, { isInteger: na } = So, { stringify: Ao } = qs, { defineProperty: oa } = bn, M = (t, e, r) => { +} = St, { isInteger: na } = Eo, { stringify: Ao } = qs, { defineProperty: oa } = bn, M = (t, e, r) => { const n = oa(t, e, r); if (n !== t) throw v( @@ -76,7 +76,7 @@ const k = globalThis, { return n; }, { apply: ne, - construct: mr, + construct: hr, get: sa, getOwnPropertyDescriptor: aa, has: Io, @@ -84,24 +84,24 @@ const k = globalThis, { ownKeys: De, preventExtensions: ca, set: Co -} = Js, { isArray: St, prototype: _e } = Hs, { prototype: Nt } = Pe, { prototype: Rr } = RegExp, { prototype: nr } = Ct, { prototype: Le } = pe, { prototype: Or } = Me, { prototype: $o } = $t, { prototype: En } = Function, { prototype: No } = Ys, { prototype: Ro } = j( +} = Js, { isArray: Et, prototype: _e } = Hs, { prototype: Nt } = Pe, { prototype: Rr } = RegExp, { prototype: nr } = Ct, { prototype: Le } = pe, { prototype: Or } = Me, { prototype: $o } = $t, { prototype: Sn } = Function, { prototype: No } = Ys, { prototype: Ro } = j( // eslint-disable-next-line no-empty-function, func-names function* () { } -), la = j(Uint8Array.prototype), { bind: tn } = En, P = tn.bind(tn.call), oe = P(wn.hasOwnProperty), Ke = P(_e.filter), ut = P(_e.forEach), Mr = P(_e.includes), Rt = P(_e.join), se = ( +), la = j(Uint8Array.prototype), { bind: tn } = Sn, P = tn.bind(tn.call), oe = P(wn.hasOwnProperty), Ke = P(_e.filter), ut = P(_e.forEach), Mr = P(_e.includes), Rt = P(_e.join), se = ( /** @type {any} */ P(_e.map) ), Oo = ( /** @type {any} */ P(_e.flatMap) -), gr = P(_e.pop), X = P(_e.push), ua = P(_e.slice), da = P(_e.some), Mo = P(_e.sort), fa = P(_e[rr]), $e = P(Nt.set), Ue = P(Nt.get), Lr = P(Nt.has), pa = P(Nt.delete), ha = P(Nt.entries), ma = P(Nt[rr]), Sn = P(nr.add); +), gr = P(_e.pop), X = P(_e.push), ua = P(_e.slice), da = P(_e.some), Mo = P(_e.sort), fa = P(_e[rr]), $e = P(Nt.set), Ue = P(Nt.get), Lr = P(Nt.has), pa = P(Nt.delete), ma = P(Nt.entries), ha = P(Nt[rr]), En = P(nr.add); P(nr.delete); const Wn = P(nr.forEach), xn = P(nr.has), ga = P(nr[rr]), kn = P(Rr.test), Pn = P(Rr.exec), ya = P(Rr[To]), Lo = P(Le.endsWith), Fo = P(Le.includes), va = P(Le.indexOf); P(Le.match); const yr = P(Ro.next), Do = P(Ro.throw), vr = ( /** @type {any} */ P(Le.replace) -), _a = P(Le.search), Tn = P(Le.slice), An = P(Le.split), Uo = P(Le.startsWith), ba = P(Le[rr]), wa = P(Or.delete), L = P(Or.get), In = P(Or.has), ie = P(Or.set), Fr = P($o.add), or = P($o.has), Ea = P(En.toString), Sa = P(tn); +), _a = P(Le.search), Tn = P(Le.slice), An = P(Le.split), Uo = P(Le.startsWith), ba = P(Le[rr]), wa = P(Or.delete), L = P(Or.get), In = P(Or.has), ie = P(Or.set), Fr = P($o.add), or = P($o.has), Sa = P(Sn.toString), Ea = P(tn); P(No.catch); const jo = ( /** @type {any} */ @@ -137,32 +137,32 @@ const { freeze: at } = Object, { apply: Aa } = Reflect, $n = (t) => (e, ...r) => r = `${r}${e[n]}${t[n + 1]}`; throw Error(r); }, Bo = (t, e = !1) => { - const r = [], n = (c, u, l = void 0) => { - typeof c == "string" || ir`Environment option name ${nt(c)} must be a string.`, typeof u == "string" || ir`Environment option default setting ${nt( - u + const r = [], n = (c, l, u = void 0) => { + typeof c == "string" || ir`Environment option name ${nt(c)} must be a string.`, typeof l == "string" || ir`Environment option default setting ${nt( + l )} must be a string.`; - let d = u; - const f = t.process || void 0, h = typeof f == "object" && f.env || void 0; - if (typeof h == "object" && c in h) { + let d = l; + const f = t.process || void 0, m = typeof f == "object" && f.env || void 0; + if (typeof m == "object" && c in m) { e || Ia(r, c); - const p = h[c]; + const p = m[c]; typeof p == "string" || ir`Environment option named ${nt( c )}, if present, must have a corresponding string value, got ${nt( p )}`, d = p; } - return l === void 0 || d === u || qn(l, d) || ir`Unrecognized ${nt(c)} value ${nt( + return u === void 0 || d === l || qn(u, d) || ir`Unrecognized ${nt(c)} value ${nt( d - )}. Expected one of ${nt([u, ...l])}`, d; + )}. Expected one of ${nt([l, ...u])}`, d; }; at(n); const o = (c) => { - const u = n(c, ""); - return at(u === "" ? [] : Ca(u, ",")); + const l = n(c, ""); + return at(l === "" ? [] : Ca(l, ",")); }; at(o); - const a = (c, u) => qn(o(c), u), i = () => at([...r]); + const a = (c, l) => qn(o(c), l), i = () => at([...r]); return at(i), at({ getEnvironmentOption: n, getEnvironmentOptionsList: o, @@ -185,26 +185,26 @@ const Ho = (t, e = void 0) => { return null; if (xn(r, a)) return "[Seen]"; - if (Sn(r, a), Dr(a)) + if (En(r, a), Dr(a)) return `[${a.name}: ${a.message}]`; if (qe in a) return `[${a[qe]}]`; - if (St(a)) + if (Et(a)) return a; const i = xo(a); if (i.length < 2) return a; let c = !0; - for (let l = 1; l < i.length; l += 1) - if (i[l - 1] >= i[l]) { + for (let u = 1; u < i.length; u += 1) + if (i[u - 1] >= i[u]) { c = !1; break; } if (c) return a; Mo(i); - const u = se(i, (l) => [l, a[l]]); - return mt(u); + const l = se(i, (u) => [u, a[u]]); + return ht(l); } case "function": return `[Function ${a.name || ""}]`; @@ -263,33 +263,33 @@ const { isSafeInteger: $a } = Number, { freeze: vt } = Object, { toStringTag: Na vt(i); const c = (d, f) => { if (t < 1) - return l; - let h = o(d); - if (h === void 0 && (h = Kn(void 0), Yn(n, h)), !h.data) - for (r += 1, h.data = /* @__PURE__ */ new WeakMap(), e.set(d, h); r > t; ) { + return u; + let m = o(d); + if (m === void 0 && (m = Kn(void 0), Yn(n, m)), !m.data) + for (r += 1, m.data = /* @__PURE__ */ new WeakMap(), e.set(d, m); r > t; ) { const p = n.prev; Kr(p), p.data = void 0, r -= 1; } - return h.data.set(d, f), l; + return m.data.set(d, f), u; }; vt(c); - const u = (d) => { + const l = (d) => { const f = e.get(d); return f === void 0 || (Kr(f), e.delete(d), f.data === void 0) ? !1 : (f.data = void 0, r -= 1, !0); }; - vt(u); - const l = vt({ + vt(l); + const u = vt({ has: a, get: i, set: c, - delete: u, + delete: l, // eslint-disable-next-line jsdoc/check-types [ /** @type {typeof Symbol.toStringTag} */ Na ]: "LRUCacheMap" }); - return l; + return u; }; vt(Vo); const { freeze: pr } = Object, { isSafeInteger: Ra } = Number, Oa = 1e3, Ma = 100, Wo = (t = Oa, e = Ma) => { @@ -366,7 +366,7 @@ const Jo = ({ template: t, args: e }) => { X(r, o, i); } return r[r.length - 1] === "" && gr(r), r; -}, hr = new Me(); +}, mr = new Me(); let nn = 0; const Jn = new Me(), Xo = (t, e = t.name) => { let r = L(Jn, t); @@ -379,20 +379,20 @@ const Jn = new Me(), Xo = (t, e = t.name) => { cause: a = void 0, stack: i = void 0, ...c - } = e, u = De(c); - if (u.length >= 1) { - for (const d of u) + } = e, l = De(c); + if (l.length >= 1) { + for (const d of l) delete t[d]; - const l = z(wn, c); + const u = z(wn, c); Nn( t, - ft`originally with properties ${Je(l)}` + ft`originally with properties ${Je(u)}` ); } - for (const l of De(t)) { - const d = e[l]; - d && oe(d, "get") && M(t, l, { - value: t[l] + for (const u of De(t)) { + const d = e[u]; + d && oe(d, "get") && M(t, u, { + value: t[u] // invoke the getter to convert to data property }); } @@ -407,18 +407,18 @@ const Jn = new Me(), Xo = (t, e = t.name) => { const i = L(Ur, t); if (i === void 0) throw v(`unrecognized details ${Je(t)}`); - const c = qo(i), u = n && { cause: n }; - let l; - return typeof Hr < "u" && e === Hr ? l = Hr(o || [], c, u) : (l = /** @type {ErrorConstructor} */ + const c = qo(i), l = n && { cause: n }; + let u; + return typeof Hr < "u" && e === Hr ? u = Hr(o || [], c, l) : (u = /** @type {ErrorConstructor} */ e( c, - u - ), o !== void 0 && M(l, "errors", { + l + ), o !== void 0 && M(u, "errors", { value: o, writable: !0, enumerable: !1, configurable: !0 - })), ie(hr, l, Jo(i)), r !== void 0 && Xo(l, r), a && Fa(l), l; + })), ie(mr, u, Jo(i)), r !== void 0 && Xo(u, r), a && Fa(u), u; }; y(on); const { addLogArgs: Da, takeLogArgsArray: Ua } = Wo(), sn = new Me(), Nn = (t, e) => { @@ -446,10 +446,10 @@ const ja = (t) => { resetErrorTagNum: () => { nn = 0; }, - getMessageLogArgs: (t) => L(hr, t), + getMessageLogArgs: (t) => L(mr, t), takeMessageLogArgs: (t) => { - const e = L(hr, t); - return wa(hr, t), e; + const e = L(mr, t); + return wa(mr, t), e; }, takeNoteLogArgsArray: (t, e) => { const r = Ua(t); @@ -462,39 +462,39 @@ const ja = (t) => { }; y(br); const jr = (t = void 0, e = !1) => { - const r = e ? Yo : ft, n = r`Check failed`, o = (f = n, h = void 0, p = void 0) => { - const m = on(f, h, p); - throw t !== void 0 && t(m), m; + const r = e ? Yo : ft, n = r`Check failed`, o = (f = n, m = void 0, p = void 0) => { + const h = on(f, m, p); + throw t !== void 0 && t(h), h; }; y(o); - const a = (f, ...h) => o(r(f, ...h)); - function i(f, h = void 0, p = void 0, m = void 0) { - f || o(h, p, m); + const a = (f, ...m) => o(r(f, ...m)); + function i(f, m = void 0, p = void 0, h = void 0) { + f || o(m, p, h); } - const c = (f, h, p = void 0, m = void 0, _ = void 0) => { - Nr(f, h) || o( - p || r`Expected ${f} is same as ${h}`, - m || Xs, + const c = (f, m, p = void 0, h = void 0, _ = void 0) => { + Nr(f, m) || o( + p || r`Expected ${f} is same as ${m}`, + h || Xs, _ ); }; y(c); - const u = (f, h, p) => { - if (typeof f !== h) { - if (typeof h == "string" || a`${Je(h)} must be a string`, p === void 0) { - const m = _r(h); - p = r`${f} must be ${rn(m)}`; + const l = (f, m, p) => { + if (typeof f !== m) { + if (typeof m == "string" || a`${Je(m)} must be a string`, p === void 0) { + const h = _r(m); + p = r`${f} must be ${rn(h)}`; } o(p, v); } }; - y(u); + y(l); const d = $r(i, { error: on, fail: o, equal: c, - typeof: u, - string: (f, h = void 0) => u(f, "string", h), + typeof: l, + string: (f, m = void 0) => l(f, "string", m), note: Nn, details: r, Fail: a, @@ -541,17 +541,17 @@ const Za = (t) => ne(es, t, []) !== void 0, za = (t) => { const f = typeof d; if (f !== "object" && f !== "function") throw v(`Unexpected typeof: ${f}`); - or(t, d) || xn(n, d) || Sn(n, d); + or(t, d) || xn(n, d) || En(n, d); } const a = (d) => { Za(d) ? Ga(d) : y(d); - const f = Ze(d), h = j(d); - o(h), ut(De(f), (p) => { - const m = f[ + const f = Ze(d), m = j(d); + o(m), ut(De(f), (p) => { + const h = f[ /** @type {string} */ p ]; - oe(m, "value") ? o(m.value) : (o(m.get), o(m.set)); + oe(h, "value") ? o(h.value) : (o(h.get), o(h.set)); }); }, i = qr === void 0 && Pa === void 0 ? ( // On platforms without v8's error own stack accessor problem, @@ -573,12 +573,12 @@ const Za = (t) => ne(es, t, []) !== void 0, za = (t) => { return a(d); }, c = () => { Wn(n, i); - }, u = (d) => { + }, l = (d) => { Fr(t, d); - }, l = () => { - Wn(n, u); + }, u = () => { + Wn(n, l); }; - return o(r), c(), l(), r; + return o(r), c(), u(), r; } }; return e; @@ -1923,18 +1923,18 @@ const as = () => { }; y(r); const n = () => { - for (const [c, u] of re(t)) { - if (!Ye(u) || !oe(u, "prototype")) + for (const [c, l] of re(t)) { + if (!Ye(l) || !oe(l, "prototype")) continue; - const l = wr[c]; - if (typeof l != "object") + const u = wr[c]; + if (typeof u != "object") throw v(`Expected permit object at whitelist.${c}`); - const d = l.prototype; + const d = u.prototype; if (!d) throw v(`${c}.prototype property not whitelisted`); if (typeof d != "string" || !oe(wr, d)) throw v(`Unrecognized ${c}.prototype whitelist entry`); - const f = u.prototype; + const f = l.prototype; if (oe(t, d)) { if (t[d] !== f) throw v(`Conflicting bindings of ${d}`); @@ -1967,96 +1967,96 @@ const as = () => { }; function Ya(t, e) { let r = !1; - const n = (h, ...p) => (r || (console.groupCollapsed("Removing unpermitted intrinsics"), r = !0), console[h](...p)), o = ["undefined", "boolean", "number", "string", "symbol"], a = new Pe( - Et ? se( + const n = (m, ...p) => (r || (console.groupCollapsed("Removing unpermitted intrinsics"), r = !0), console[m](...p)), o = ["undefined", "boolean", "number", "string", "symbol"], a = new Pe( + St ? se( Ke( re(wr["%SharedSymbol%"]), - ([h, p]) => p === "symbol" && typeof Et[h] == "symbol" + ([m, p]) => p === "symbol" && typeof St[m] == "symbol" ), - ([h]) => [Et[h], `@@${h}`] + ([m]) => [St[m], `@@${m}`] ) : [] ); - function i(h, p) { + function i(m, p) { if (typeof p == "string") return p; - const m = Ue(a, p); + const h = Ue(a, p); if (typeof p == "symbol") { - if (m) - return m; + if (h) + return h; { const _ = ta(p); return _ !== void 0 ? `RegisteredSymbol(${_})` : `Unique${pe(p)}`; } } - throw v(`Unexpected property name type ${h} ${p}`); + throw v(`Unexpected property name type ${m} ${p}`); } - function c(h, p, m) { + function c(m, p, h) { if (!Ye(p)) - throw v(`Object expected: ${h}, ${p}, ${m}`); + throw v(`Object expected: ${m}, ${p}, ${h}`); const _ = j(p); - if (!(_ === null && m === null)) { - if (m !== void 0 && typeof m != "string") - throw v(`Malformed whitelist permit ${h}.__proto__`); - if (_ !== t[m || "%ObjectPrototype%"]) - throw v(`Unexpected intrinsic ${h}.__proto__ at ${m}`); + if (!(_ === null && h === null)) { + if (h !== void 0 && typeof h != "string") + throw v(`Malformed whitelist permit ${m}.__proto__`); + if (_ !== t[h || "%ObjectPrototype%"]) + throw v(`Unexpected intrinsic ${m}.__proto__ at ${h}`); } } - function u(h, p, m, _) { + function l(m, p, h, _) { if (typeof _ == "object") - return f(h, p, _), !0; + return f(m, p, _), !0; if (_ === !1) return !1; if (typeof _ == "string") { - if (m === "prototype" || m === "constructor") { + if (h === "prototype" || h === "constructor") { if (oe(t, _)) { if (p !== t[_]) - throw v(`Does not match whitelist ${h}`); + throw v(`Does not match whitelist ${m}`); return !0; } } else if (Mr(o, _)) { if (typeof p !== _) throw v( - `At ${h} expected ${_} not ${typeof p}` + `At ${m} expected ${_} not ${typeof p}` ); return !0; } } - throw v(`Unexpected whitelist permit ${_} at ${h}`); + throw v(`Unexpected whitelist permit ${_} at ${m}`); } - function l(h, p, m, _) { - const E = J(p, m); - if (!E) - throw v(`Property ${m} not found at ${h}`); - if (oe(E, "value")) { + function u(m, p, h, _) { + const S = J(p, h); + if (!S) + throw v(`Property ${h} not found at ${m}`); + if (oe(S, "value")) { if (eo(_)) - throw v(`Accessor expected at ${h}`); - return u(h, E.value, m, _); + throw v(`Accessor expected at ${m}`); + return l(m, S.value, h, _); } if (!eo(_)) - throw v(`Accessor not expected at ${h}`); - return u(`${h}`, E.get, m, _.get) && u(`${h}`, E.set, m, _.set); + throw v(`Accessor not expected at ${m}`); + return l(`${m}`, S.get, h, _.get) && l(`${m}`, S.set, h, _.set); } - function d(h, p, m) { - const _ = m === "__proto__" ? "--proto--" : m; + function d(m, p, h) { + const _ = h === "__proto__" ? "--proto--" : h; if (oe(p, _)) return p[_]; - if (typeof h == "function" && oe(an, _)) + if (typeof m == "function" && oe(an, _)) return an[_]; } - function f(h, p, m) { + function f(m, p, h) { if (p == null) return; - const _ = m["[[Proto]]"]; - c(h, p, _), typeof p == "function" && e(p); - for (const E of De(p)) { - const T = i(h, E), N = `${h}.${T}`, x = d(p, m, T); - if (!x || !l(N, p, E, x)) { + const _ = h["[[Proto]]"]; + c(m, p, _), typeof p == "function" && e(p); + for (const S of De(p)) { + const T = i(m, S), N = `${m}.${T}`, x = d(p, h, T); + if (!x || !u(N, p, S, x)) { x !== !1 && n("warn", `Removing ${N}`); try { - delete p[E]; + delete p[S]; } catch (D) { - if (E in p) { - if (typeof p == "function" && E === "prototype" && (p.prototype = void 0, p.prototype === void 0)) { + if (S in p) { + if (typeof p == "function" && S === "prototype" && (p.prototype = void 0, p.prototype === void 0)) { n( "warn", `Tolerating undeletable ${N} === undefined` @@ -2088,10 +2088,10 @@ function Ja() { let a; try { a = (0, eval)(o); - } catch (u) { - if (u instanceof tr) + } catch (l) { + if (l instanceof tr) return; - throw u; + throw l; } const i = j(a), c = function() { throw v( @@ -2136,10 +2136,10 @@ function Xa(t = "safe") { throw v("secure mode Calling %SharedDate%.now() throws"); } }, o = ({ powers: c = "none" } = {}) => { - let u; - return c === "original" ? u = function(...d) { - return new.target === void 0 ? ne(e, void 0, d) : mr(e, d, new.target); - } : u = function(...d) { + let l; + return c === "original" ? l = function(...d) { + return new.target === void 0 ? ne(e, void 0, d) : hr(e, d, new.target); + } : l = function(...d) { if (new.target === void 0) throw v( "secure mode Calling %SharedDate% constructor as a function throws" @@ -2148,8 +2148,8 @@ function Xa(t = "safe") { throw v( "secure mode Calling new %SharedDate%() with no arguments throws" ); - return mr(e, d, new.target); - }, F(u, { + return hr(e, d, new.target); + }, F(l, { length: { value: 7 }, prototype: { value: r, @@ -2169,7 +2169,7 @@ function Xa(t = "safe") { enumerable: !1, configurable: !0 } - }), u; + }), l; }, a = o({ powers: "original" }), i = o({ powers: "none" }); return F(a, { now: { @@ -2221,8 +2221,8 @@ function ei(t = "safe") { if (t !== "safe" && t !== "unsafe") throw v(`unrecognized regExpTaming ${t}`); const e = We.prototype, r = (a = {}) => { - const i = function(...u) { - return new.target === void 0 ? We(...u) : mr(We, u, new.target); + const i = function(...l) { + return new.target === void 0 ? We(...l) : hr(We, l, new.target); }; if (F(i, { length: { value: 2 }, @@ -2425,9 +2425,9 @@ const ti = { }; function ni(t, e, r = []) { const n = new Ct(r); - function o(l, d, f, h) { - if ("value" in h && h.configurable) { - const { value: p } = h, m = xn(n, f), { get: _, set: E } = J( + function o(u, d, f, m) { + if ("value" in m && m.configurable) { + const { value: p } = m, h = xn(n, f), { get: _, set: S } = J( { get [f]() { return p; @@ -2437,9 +2437,9 @@ function ni(t, e, r = []) { throw v( `Cannot assign to read only property '${pe( f - )}' of '${l}'` + )}' of '${u}'` ); - oe(this, f) ? this[f] = T : (m && console.error(v(`Override property ${f}`)), M(this, f, { + oe(this, f) ? this[f] = T : (h && console.error(v(`Override property ${f}`)), M(this, f, { value: T, writable: !0, enumerable: !0, @@ -2456,56 +2456,56 @@ function ni(t, e, r = []) { configurable: !1 }), M(d, f, { get: _, - set: E, - enumerable: h.enumerable, - configurable: h.configurable + set: S, + enumerable: m.enumerable, + configurable: m.configurable }); } } - function a(l, d, f) { - const h = J(d, f); - h && o(l, d, f, h); + function a(u, d, f) { + const m = J(d, f); + m && o(u, d, f, m); } - function i(l, d) { + function i(u, d) { const f = Ze(d); - f && ut(De(f), (h) => o(l, d, h, f[h])); + f && ut(De(f), (m) => o(u, d, m, f[m])); } - function c(l, d, f) { - for (const h of De(f)) { - const p = J(d, h); + function c(u, d, f) { + for (const m of De(f)) { + const p = J(d, m); if (!p || p.get || p.set) continue; - const m = `${l}.${pe(h)}`, _ = f[h]; + const h = `${u}.${pe(m)}`, _ = f[m]; if (_ === !0) - a(m, d, h); + a(h, d, m); else if (_ === "*") - i(m, p.value); + i(h, p.value); else if (Ye(_)) - c(m, p.value, _); + c(h, p.value, _); else - throw v(`Unexpected override enablement plan ${m}`); + throw v(`Unexpected override enablement plan ${h}`); } } - let u; + let l; switch (e) { case "min": { - u = ti; + l = ti; break; } case "moderate": { - u = is; + l = is; break; } case "severe": { - u = ri; + l = ri; break; } default: throw v(`unrecognized overrideTaming ${e}`); } - c("root", t, u); + c("root", t, l); } -const { Fail: cn, quote: Er } = G, oi = /^(\w*[a-z])Locale([A-Z]\w*)$/, cs = { +const { Fail: cn, quote: Sr } = G, oi = /^(\w*[a-z])Locale([A-Z]\w*)$/, cs = { // See https://tc39.es/ecma262/#sec-string.prototype.localecompare localeCompare(t) { if (this === null || this === void 0) @@ -2513,7 +2513,7 @@ const { Fail: cn, quote: Er } = G, oi = /^(\w*[a-z])Locale([A-Z]\w*)$/, cs = { 'Cannot localeCompare with null or undefined "this" value' ); const e = `${this}`, r = `${t}`; - return e < r ? -1 : e > r ? 1 : (e === r || cn`expected ${Er(e)} and ${Er(r)} to compare`, 0); + return e < r ? -1 : e > r ? 1 : (e === r || cn`expected ${Sr(e)} and ${Sr(r)} to compare`, 0); }, toString() { return `${this}`; @@ -2532,13 +2532,13 @@ function ii(t, e = "safe") { for (const o of Dt(n)) { const a = Pn(oi, o); if (a) { - typeof n[o] == "function" || cn`expected ${Er(o)} to be a function`; + typeof n[o] == "function" || cn`expected ${Sr(o)} to be a function`; const i = `${a[1]}${a[2]}`, c = n[i]; - typeof c == "function" || cn`function ${Er(i)} not found`, M(n, o, { value: c }); + typeof c == "function" || cn`function ${Sr(i)} not found`, M(n, o, { value: c }); } } } - M(So.prototype, "toLocaleString", { + M(Eo.prototype, "toLocaleString", { value: ai }); } @@ -2690,7 +2690,7 @@ ${o} ), pi = new Cr( Cn, ps -), hs = (t) => { +), ms = (t) => { const e = { // inherit scopeTerminator behavior ...ps, @@ -2713,8 +2713,8 @@ ${o} r ); }; -y(hs); -const { Fail: hi } = G, mi = () => { +y(ms); +const { Fail: mi } = G, hi = () => { const t = z(null), e = y({ eval: { get() { @@ -2727,7 +2727,7 @@ const { Fail: hi } = G, mi = () => { evalScope: t, allowNextEvalToBeUnsafe() { const { revoked: n } = r; - n !== null && hi`a handler did not reset allowNextEvalToBeUnsafe ${n.err}`, F(t, e); + n !== null && mi`a handler did not reset allowNextEvalToBeUnsafe ${n.err}`, F(t, e); }, /** @type {null | { err: any }} */ revoked: null @@ -2754,15 +2754,15 @@ function On(t, e) { return An(Tn(t, 0, r), ` `).length + n; } -const ms = new We("(?:)", "g"), gs = (t) => { - const e = On(t, ms); +const hs = new We("(?:)", "g"), gs = (t) => { + const e = On(t, hs); if (e < 0) return t; const r = Rn(t); throw tr( `Possible HTML comment rejected at ${r}:${e}. (SES_HTML_COMMENT_REJECTED)` ); -}, ys = (t) => vr(t, ms, (r) => r[0] === "<" ? "< ! --" : "-- >"), vs = new We( +}, ys = (t) => vr(t, hs, (r) => r[0] === "<" ? "< ! --" : "-- >"), vs = new We( "(^|[^.]|\\.\\.\\.)\\bimport(\\s*(?:\\(|/[/*]))", "g" ), _s = (t) => { @@ -2784,7 +2784,7 @@ const ms = new We("(?:)", "g"), gs = (t) => { throw tr( `Possible direct eval expression rejected at ${r}:${e}. (SES_EVAL_REJECTED)` ); -}, Es = (t) => (t = gs(t), t = _s(t), t), Ss = (t, e) => { +}, Ss = (t) => (t = gs(t), t = _s(t), t), Es = (t, e) => { for (const r of e) t = r(t); return t; @@ -2795,8 +2795,8 @@ y({ rejectImportExpressions: y(_s), evadeImportExpressionTest: y(bs), rejectSomeDirectEvalExpressions: y(ws), - mandatoryTransforms: y(Es), - applyTransforms: y(Ss) + mandatoryTransforms: y(Ss), + applyTransforms: y(Es) }); const vi = [ // 11.6.2.1 Keywords @@ -2918,49 +2918,49 @@ const wi = (t) => { } `); return ne(a, t, []); -}, { Fail: Ei } = G, Mn = ({ +}, { Fail: Si } = G, Mn = ({ globalObject: t, moduleLexicals: e = {}, globalTransforms: r = [], sloppyGlobalsMode: n = !1 }) => { - const o = n ? hs(t) : pi, a = mi(), { evalScope: i } = a, c = y({ + const o = n ? ms(t) : pi, a = hi(), { evalScope: i } = a, c = y({ evalScope: i, moduleLexicals: e, globalObject: t, scopeTerminator: o }); - let u; - const l = () => { - u || (u = wi(c)); + let l; + const u = () => { + l || (l = wi(c)); }; - return { safeEvaluate: (f, h) => { - const { localTransforms: p = [] } = h || {}; - l(), f = Ss(f, [ + return { safeEvaluate: (f, m) => { + const { localTransforms: p = [] } = m || {}; + u(), f = Es(f, [ ...p, ...r, - Es + Ss ]); - let m; + let h; try { - return a.allowNextEvalToBeUnsafe(), ne(u, t, [f]); + return a.allowNextEvalToBeUnsafe(), ne(l, t, [f]); } catch (_) { - throw m = _, _; + throw h = _, _; } finally { const _ = "eval" in i; - delete i.eval, _ && (a.revoked = { err: m }, Ei`handler did not reset allowNextEvalToBeUnsafe ${m}`); + delete i.eval, _ && (a.revoked = { err: h }, Si`handler did not reset allowNextEvalToBeUnsafe ${h}`); } } }; -}, Si = ") { [native code] }"; +}, Ei = ") { [native code] }"; let Yr; const xs = () => { if (Yr === void 0) { const t = new $t(); - M(En, "toString", { + M(Sn, "toString", { value: { toString() { - const r = Ea(this); - return Lo(r, Si) || !or(t, this) ? r : `function ${this.name}() { [native code] }`; + const r = Sa(this); + return Lo(r, Ei) || !or(t, this) ? r : `function ${this.name}() { [native code] }`; } }.toString }), Yr = y( @@ -3046,12 +3046,12 @@ const Ln = y([ ]), ki = (t, { shouldResetForDebugging: e = !1 } = {}) => { e && t.resetErrorTagNum(); let r = []; - const n = mt( + const n = ht( se(ks, ([i, c]) => { - const u = (...l) => { - X(r, [i, ...l]); + const l = (...u) => { + X(r, [i, ...u]); }; - return M(u, "name", { value: i }), [i, y(u)]; + return M(l, "name", { value: i }), [i, y(l)]; }) ); y(n); @@ -3075,38 +3075,38 @@ y(it); const Dn = (t, e) => { if (!t) return; - const { getStackString: r, tagError: n, takeMessageLogArgs: o, takeNoteLogArgsArray: a } = e, i = (E, T) => se(E, (x) => Dr(x) ? (X(T, x), `(${n(x)})`) : x), c = (E, T, N, x, D) => { + const { getStackString: r, tagError: n, takeMessageLogArgs: o, takeNoteLogArgsArray: a } = e, i = (S, T) => se(S, (x) => Dr(x) ? (X(T, x), `(${n(x)})`) : x), c = (S, T, N, x, D) => { const B = n(T), H = N === it.MESSAGE ? `${B}:` : `${B} ${N}`, K = i(x, D); - t[E](H, ...K); - }, u = (E, T, N = void 0) => { + t[S](H, ...K); + }, l = (S, T, N = void 0) => { if (T.length === 0) return; if (T.length === 1 && N === void 0) { - f(E, T[0]); + f(S, T[0]); return; } let x; T.length === 1 ? x = "Nested error" : x = `Nested ${T.length} errors`, N !== void 0 && (x = `${x} under ${N}`), t.group(x); try { for (const D of T) - f(E, D); + f(S, D); } finally { t.groupEnd(); } - }, l = new $t(), d = (E) => (T, N) => { + }, u = new $t(), d = (S) => (T, N) => { const x = []; - c(E, T, it.NOTE, N, x), u(E, x, n(T)); - }, f = (E, T) => { - if (or(l, T)) + c(S, T, it.NOTE, N, x), l(S, x, n(T)); + }, f = (S, T) => { + if (or(u, T)) return; const N = n(T); - Fr(l, T); + Fr(u, T); const x = [], D = o(T), B = a( T, - d(E) + d(S) ); - D === void 0 ? t[E](`${N}:`, T.message) : c( - E, + D === void 0 ? t[S](`${N}:`, T.message) : c( + S, T, it.MESSAGE, D, @@ -3115,25 +3115,25 @@ const Dn = (t, e) => { let H = r(T); typeof H == "string" && H.length >= 1 && !Lo(H, ` `) && (H += ` -`), t[E](H), T.cause && c(E, T, it.CAUSE, [T.cause], x), T.errors && c(E, T, it.ERRORS, T.errors, x); +`), t[S](H), T.cause && c(S, T, it.CAUSE, [T.cause], x), T.errors && c(S, T, it.ERRORS, T.errors, x); for (const K of B) - c(E, T, it.NOTE, K, x); - u(E, x, N); - }, h = se(Ln, ([E, T]) => { + c(S, T, it.NOTE, K, x); + l(S, x, N); + }, m = se(Ln, ([S, T]) => { const N = (...x) => { const D = [], B = i(x, D); - t[E](...B), u(E, D); + t[S](...B), l(S, D); }; - return M(N, "name", { value: E }), [E, y(N)]; + return M(N, "name", { value: S }), [S, y(N)]; }), p = Ke( Fn, - ([E, T]) => E in t - ), m = se(p, ([E, T]) => { + ([S, T]) => S in t + ), h = se(p, ([S, T]) => { const N = (...x) => { - t[E](...x); + t[S](...x); }; - return M(N, "name", { value: E }), [E, y(N)]; - }), _ = mt([...h, ...m]); + return M(N, "name", { value: S }), [S, y(N)]; + }), _ = ht([...m, ...h]); return ( /** @type {VirtualConsole} */ y(_) @@ -3144,26 +3144,26 @@ const Pi = (t, e, r) => { const [n, ...o] = An(t, e), a = Oo(o, (i) => [e, ...r, i]); return ["", n, ...a]; }, Ps = (t) => y((r) => { - const n = [], o = (...u) => (n.length > 0 && (u = Oo( - u, - (l) => typeof l == "string" && Fo(l, ` -`) ? Pi(l, ` -`, n) : [l] - ), u = [...n, ...u]), r(...u)), a = (u, l) => ({ [u]: (...d) => l(...d) })[u], i = mt([ - ...se(Ln, ([u]) => [ - u, - a(u, o) + const n = [], o = (...l) => (n.length > 0 && (l = Oo( + l, + (u) => typeof u == "string" && Fo(u, ` +`) ? Pi(u, ` +`, n) : [u] + ), l = [...n, ...l]), r(...l)), a = (l, u) => ({ [l]: (...d) => u(...d) })[l], i = ht([ + ...se(Ln, ([l]) => [ + l, + a(l, o) ]), - ...se(Fn, ([u]) => [ - u, - a(u, (...l) => o(u, ...l)) + ...se(Fn, ([l]) => [ + l, + a(l, (...u) => o(l, ...u)) ]) ]); - for (const u of ["group", "groupCollapsed"]) - i[u] && (i[u] = a(u, (...l) => { - l.length >= 1 && o(...l), X(n, " "); + for (const l of ["group", "groupCollapsed"]) + i[l] && (i[l] = a(l, (...u) => { + u.length >= 1 && o(...u), X(n, " "); })); - return i.groupEnd && (i.groupEnd = a("groupEnd", (...u) => { + return i.groupEnd && (i.groupEnd = a("groupEnd", (...l) => { gr(n); })), harden(i), Dn( /** @type {VirtualConsole} */ @@ -3176,9 +3176,9 @@ const Ti = (t, e, r = void 0) => { const n = Ke( ks, ([i, c]) => i in t - ), o = se(n, ([i, c]) => [i, y((...l) => { - (c === void 0 || e.canLog(c)) && t[i](...l); - })]), a = mt(o); + ), o = se(n, ([i, c]) => [i, y((...u) => { + (c === void 0 || e.canLog(c)) && t[i](...u); + })]), a = ht(o); return ( /** @type {VirtualConsole} */ y(a) @@ -3204,11 +3204,11 @@ const io = (t) => { }, unhandledRejectionHandler: (d, f) => { e += 1; - const h = e; - $e(r, h, d), ie(o, f, h), xa(i, f, h, f); + const m = e; + $e(r, m, d), ie(o, f, m), xa(i, f, m, f); }, processTerminationHandler: () => { - for (const [d, f] of ha(r)) + for (const [d, f] of ma(r)) n(d), t(f); } }; @@ -3228,15 +3228,15 @@ const io = (t) => { // Make a good-enough console for eshost (including only functions that // log at a specific level with no special argument interpretation). // https://console.spec.whatwg.org/#logging - ((l) => y({ debug: l, log: l, info: l, warn: l, error: l }))( + ((u) => y({ debug: u, log: u, info: u, warn: u, error: u }))( // eslint-disable-next-line no-undef co(k.print) ) ) : void 0 ); if (a && a.log) - for (const l of ["warn", "error"]) - a[l] || M(a, l, { + for (const u of ["warn", "error"]) + a[u] || M(a, u, { value: co(a.log, a) }); const i = ( @@ -3244,14 +3244,14 @@ const io = (t) => { t === "unsafe" ? a : Dn(a, o) ), c = k.process || void 0; if (e !== "none" && typeof c == "object" && typeof c.on == "function") { - let l; + let u; if (e === "platform" || e === "exit") { const { exit: d } = c; - typeof d == "function" || Jr("missing process.exit"), l = () => d(c.exitCode || -1); + typeof d == "function" || Jr("missing process.exit"), u = () => d(c.exitCode || -1); } else - e === "abort" && (l = c.abort, typeof l == "function" || Jr("missing process.abort")); + e === "abort" && (u = c.abort, typeof u == "function" || Jr("missing process.abort")); c.on("uncaughtException", (d) => { - i.error(d), l && l(); + i.error(d), u && u(); }); } if (r !== "none" && typeof c == "object" && typeof c.on == "function") { @@ -3260,18 +3260,18 @@ const io = (t) => { }); d && (c.on("unhandledRejection", d.unhandledRejectionHandler), c.on("rejectionHandled", d.rejectionHandledHandler), c.on("exit", d.processTerminationHandler)); } - const u = k.window || void 0; - if (e !== "none" && typeof u == "object" && typeof u.addEventListener == "function" && u.addEventListener("error", (l) => { - l.preventDefault(), i.error(l.error), (e === "exit" || e === "abort") && (u.location.href = "about:blank"); - }), r !== "none" && typeof u == "object" && typeof u.addEventListener == "function") { + const l = k.window || void 0; + if (e !== "none" && typeof l == "object" && typeof l.addEventListener == "function" && l.addEventListener("error", (u) => { + u.preventDefault(), i.error(u.error), (e === "exit" || e === "abort") && (l.location.href = "about:blank"); + }), r !== "none" && typeof l == "object" && typeof l.addEventListener == "function") { const d = io((f) => { i.error("SES_UNHANDLED_REJECTION:", f); }); - d && (u.addEventListener("unhandledrejection", (f) => { + d && (l.addEventListener("unhandledrejection", (f) => { f.preventDefault(), d.unhandledRejectionHandler(f.reason, f.promise); - }), u.addEventListener("rejectionhandled", (f) => { + }), l.addEventListener("rejectionhandled", (f) => { f.preventDefault(), d.rejectionHandledHandler(f.promise); - }), u.addEventListener("beforeunload", (f) => { + }), l.addEventListener("beforeunload", (f) => { d.processTerminationHandler(); })); } @@ -3300,7 +3300,7 @@ const io = (t) => { "toString" // TODO replace to use only whitelisted info ], Ci = (t) => { - const r = mt(se(Ii, (n) => { + const r = ht(se(Ii, (n) => { const o = t[n]; return [n, () => ne(o, t, [])]; })); @@ -3329,21 +3329,21 @@ const io = (t) => { return t; }, zi = (t, e, r, n) => { const o = t.captureStackTrace, a = (p) => n === "verbose" ? !0 : Fi(p.getFileName()), i = (p) => { - let m = `${p}`; - return n === "concise" && (m = Zi(m)), ` - at ${m}`; - }, c = (p, m) => Rt( - se(Ke(m, a), i), + let h = `${p}`; + return n === "concise" && (h = Zi(h)), ` + at ${h}`; + }, c = (p, h) => Rt( + se(Ke(h, a), i), "" - ), u = new Me(), l = { + ), l = new Me(), u = { // The optional `optFn` argument is for cutting off the bottom of // the stack --- for capturing the stack only above the topmost // call to that function. Since this isn't the "real" captureStackTrace // but instead calls the real one, if no other cutoff is provided, // we cut this one off. - captureStackTrace(p, m = l.captureStackTrace) { + captureStackTrace(p, h = u.captureStackTrace) { if (typeof o == "function") { - ne(o, t, [p, m]); + ne(o, t, [p, h]); return; } Co(p, "stack", ""); @@ -3353,34 +3353,34 @@ const io = (t) => { // string associated with an error. // See https://tc39.es/proposal-error-stacks/ getStackString(p) { - let m = L(u, p); - if (m === void 0 && (p.stack, m = L(u, p), m || (m = { stackString: "" }, ie(u, p, m))), m.stackString !== void 0) - return m.stackString; - const _ = c(p, m.callSites); - return ie(u, p, { stackString: _ }), _; + let h = L(l, p); + if (h === void 0 && (p.stack, h = L(l, p), h || (h = { stackString: "" }, ie(l, p, h))), h.stackString !== void 0) + return h.stackString; + const _ = c(p, h.callSites); + return ie(l, p, { stackString: _ }), _; }, - prepareStackTrace(p, m) { + prepareStackTrace(p, h) { if (r === "unsafe") { - const _ = c(p, m); - return ie(u, p, { stackString: _ }), `${p}${_}`; + const _ = c(p, h); + return ie(l, p, { stackString: _ }), `${p}${_}`; } else - return ie(u, p, { callSites: m }), ""; + return ie(l, p, { callSites: h }), ""; } - }, d = l.prepareStackTrace; + }, d = u.prepareStackTrace; t.prepareStackTrace = d; - const f = new $t([d]), h = (p) => { + const f = new $t([d]), m = (p) => { if (or(f, p)) return p; - const m = { - prepareStackTrace(_, E) { - return ie(u, _, { callSites: E }), p(_, $i(E)); + const h = { + prepareStackTrace(_, S) { + return ie(l, _, { callSites: S }), p(_, $i(S)); } }; - return Fr(f, m.prepareStackTrace), m.prepareStackTrace; + return Fr(f, h.prepareStackTrace), h.prepareStackTrace; }; return F(e, { captureStackTrace: { - value: l.captureStackTrace, + value: u.captureStackTrace, writable: !0, enumerable: !1, configurable: !0 @@ -3391,15 +3391,15 @@ const io = (t) => { }, set(p) { if (typeof p == "function") { - const m = h(p); - t.prepareStackTrace = m; + const h = m(p); + t.prepareStackTrace = h; } else t.prepareStackTrace = d; }, enumerable: !1, configurable: !0 } - }), l.getStackString; + }), u.getStackString; }, lo = J(ue.prototype, "stack"), uo = lo && lo.get, Gi = { getStackString(t) { return typeof uo == "function" ? ne(uo, t, []) : "stack" in t ? `${t.stack}` : ""; @@ -3410,10 +3410,10 @@ function Bi(t = "safe", e = "concise") { throw v(`unrecognized errorTaming ${t}`); if (e !== "concise" && e !== "verbose") throw v(`unrecognized stackFiltering ${e}`); - const r = ue.prototype, n = typeof ue.captureStackTrace == "function" ? "v8" : "unknown", { captureStackTrace: o } = ue, a = (l = {}) => { - const d = function(...h) { + const r = ue.prototype, n = typeof ue.captureStackTrace == "function" ? "v8" : "unknown", { captureStackTrace: o } = ue, a = (u = {}) => { + const d = function(...m) { let p; - return new.target === void 0 ? p = ne(ue, this, h) : p = mr(ue, h, new.target), n === "v8" && ne(o, ue, [p, d]), p; + return new.target === void 0 ? p = ne(ue, this, m) : p = hr(ue, m, new.target), n === "v8" && ne(o, ue, [p, d]), p; }; return F(d, { length: { value: 1 }, @@ -3428,17 +3428,17 @@ function Bi(t = "safe", e = "concise") { F(r, { constructor: { value: c } }); - for (const l of os) - ko(l, c); + for (const u of os) + ko(u, c); F(i, { stackTraceLimit: { get() { if (typeof ue.stackTraceLimit == "number") return ue.stackTraceLimit; }, - set(l) { - if (typeof l == "number" && typeof ue.stackTraceLimit == "number") { - ue.stackTraceLimit = l; + set(u) { + if (typeof u == "number" && typeof ue.stackTraceLimit == "number") { + ue.stackTraceLimit = u; return; } }, @@ -3450,7 +3450,7 @@ function Bi(t = "safe", e = "concise") { stackTraceLimit: { get() { }, - set(l) { + set(u) { }, enumerable: !1, configurable: !0 @@ -3460,14 +3460,14 @@ function Bi(t = "safe", e = "concise") { get() { return () => ""; }, - set(l) { + set(u) { }, enumerable: !1, configurable: !0 }, captureStackTrace: { - value: (l, d) => { - M(l, "stack", { + value: (u, d) => { + M(u, "stack", { value: "" }); }, @@ -3476,8 +3476,8 @@ function Bi(t = "safe", e = "concise") { configurable: !0 } }); - let u = Gi.getStackString; - return n === "v8" ? u = zi( + let l = Gi.getStackString; + return n === "v8" ? l = zi( ue, i, t, @@ -3485,12 +3485,12 @@ function Bi(t = "safe", e = "concise") { ) : t === "unsafe" ? F(r, { stack: { get() { - return u(this); + return l(this); }, - set(l) { + set(u) { F(this, { stack: { - value: l, + value: u, writable: !0, enumerable: !0, configurable: !0 @@ -3503,10 +3503,10 @@ function Bi(t = "safe", e = "concise") { get() { return `${this}`; }, - set(l) { + set(u) { F(this, { stack: { - value: l, + value: u, writable: !0, enumerable: !0, configurable: !0 @@ -3515,7 +3515,7 @@ function Bi(t = "safe", e = "concise") { } } }), { - "%InitialGetStackString%": u, + "%InitialGetStackString%": l, "%InitialError%": i, "%SharedError%": c }; @@ -3555,20 +3555,20 @@ const Ki = (t, e) => y({ n[o] = a; } return y(n); -}, fo = (t, e, r, n, o, a, i, c, u) => { - const { resolveHook: l, moduleRecords: d } = L( +}, fo = (t, e, r, n, o, a, i, c, l) => { + const { resolveHook: u, moduleRecords: d } = L( t, r ), f = Yi( o.imports, - l, + u, n - ), h = y({ + ), m = y({ compartment: r, staticModuleRecord: o, moduleSpecifier: n, resolvedImports: f, - importMeta: u + importMeta: l }); for (const p of Po(f)) a(Ut, [ @@ -3580,21 +3580,21 @@ const Ki = (t, e) => y({ i, c ]); - return $e(d, n, h), h; + return $e(d, n, m), m; }; function* Ji(t, e, r, n, o, a, i) { - const { importHook: c, importNowHook: u, moduleMap: l, moduleMapHook: d, moduleRecords: f } = L(t, r); - let h = l[n]; - if (h === void 0 && d !== void 0 && (h = d(n)), typeof h == "string") + const { importHook: c, importNowHook: l, moduleMap: u, moduleMapHook: d, moduleRecords: f } = L(t, r); + let m = u[n]; + if (m === void 0 && d !== void 0 && (m = d(n)), typeof m == "string") G.fail( un`Cannot map module ${xe(n)} to ${xe( - h + m )} in parent compartment, not yet implemented`, v ); - else if (h !== void 0) { - const m = L(e, h); - m === void 0 && G.fail( + else if (m !== void 0) { + const h = L(e, m); + h === void 0 && G.fail( un`Cannot map module ${xe( n )} because the value is not a module exports namespace, or is from another realm`, @@ -3603,8 +3603,8 @@ function* Ji(t, e, r, n, o, a, i) { const _ = yield Ut( t, e, - m.compartment, - m.specifier, + h.compartment, + h.specifier, o, a, i @@ -3615,7 +3615,7 @@ function* Ji(t, e, r, n, o, a, i) { return Ue(f, n); const p = yield a( c, - u + l )(n); if ((p === null || typeof p != "object") && Hi`importHook must return a promise for an object, for module ${xe( n @@ -3626,16 +3626,16 @@ function* Ji(t, e, r, n, o, a, i) { "Cannot redirect to an explicit record with a specified compartment" ); const { - compartment: m = r, + compartment: h = r, specifier: _ = n, - record: E, + record: S, importMeta: T } = p, N = fo( t, e, - m, + h, _, - E, + S, o, a, i, @@ -3648,7 +3648,7 @@ function* Ji(t, e, r, n, o, a, i) { throw v( "Cannot redirect to an implicit record with a specified importMeta" ); - const m = yield Ut( + const h = yield Ut( t, e, p.compartment, @@ -3657,7 +3657,7 @@ function* Ji(t, e, r, n, o, a, i) { a, i ); - return $e(f, n, m), m; + return $e(f, n, h), h; } throw v("Unnexpected RedirectStaticModuleInterface record shape"); } @@ -3677,10 +3677,10 @@ const Ut = (t, e, r, n, o, a, i) => { t, r ); - let u = Ue(i, r); - u === void 0 && (u = new Pe(), $e(i, r, u)); - let l = Ue(u, n); - return l !== void 0 || (l = a(Wi, qi)( + let l = Ue(i, r); + l === void 0 && (l = new Pe(), $e(i, r, l)); + let u = Ue(l, n); + return u !== void 0 || (u = a(Wi, qi)( Ji, [ t, @@ -3699,12 +3699,12 @@ const Ut = (t, e, r, n, o, a, i) => { )}` ), d; } - ), $e(u, n, l)), l; + ), $e(l, n, u)), u; }; function Xi() { const t = new Ct(), e = []; return { enqueueJob: (o, a) => { - Sn( + En( t, jo(o(...a), Vi, (i) => { X(e, i); @@ -3741,9 +3741,9 @@ const Qi = (t, e) => e, ec = (t, e) => t, po = async (t, e, r, n) => { ec, a ]); - const u = await c(); + const l = await c(); Ts({ - errors: u, + errors: l, errorPrefix: `Failed to load module ${xe(n)} in package ${xe( o )}` @@ -3752,9 +3752,9 @@ const Qi = (t, e) => e, ec = (t, e) => t, po = async (t, e, r, n) => { const { name: o } = L( t, r - ), a = new Pe(), i = [], c = (u, l) => { + ), a = new Pe(), i = [], c = (l, u) => { try { - u(...l); + l(...u); } catch (d) { X(i, d); } @@ -3913,41 +3913,41 @@ const Qi = (t, e) => e, ec = (t, e) => t, po = async (t, e, r, n) => { // Note default on } = r, c = [...n]; o === !0 && X(c, ys), a === !0 && X(c, bs), i === !0 && X(c, ws); - const { safeEvaluate: u } = nc( + const { safeEvaluate: l } = nc( t, r ); - return u(e, { + return l(e, { localTransforms: c }); }, { quote: cr } = G, oc = (t, e, r, n, o, a) => { - const { exportsProxy: i, exportsTarget: c, activate: u } = Un( + const { exportsProxy: i, exportsTarget: c, activate: l } = Un( r, L(t, r), n, o - ), l = z(null); + ), u = z(null); if (e.exports) { - if (!St(e.exports) || da(e.exports, (f) => typeof f != "string")) + if (!Et(e.exports) || da(e.exports, (f) => typeof f != "string")) throw v( `SES third-party static module record "exports" property must be an array of strings for module ${o}` ); ut(e.exports, (f) => { - let h = c[f]; + let m = c[f]; const p = []; M(c, f, { - get: () => h, - set: (E) => { - h = E; + get: () => m, + set: (S) => { + m = S; for (const T of p) - T(E); + T(S); }, enumerable: !0, configurable: !1 - }), l[f] = (E) => { - X(p, E), E(h); + }), u[f] = (S) => { + X(p, S), S(m); }; - }), l["*"] = (f) => { + }), u["*"] = (f) => { f(c); }; } @@ -3955,13 +3955,13 @@ const Qi = (t, e) => e, ec = (t, e) => t, po = async (t, e, r, n) => { activated: !1 }; return y({ - notifiers: l, + notifiers: u, exportsProxy: i, execute() { if (Io(d, "errorFromExecute")) throw d.errorFromExecute; if (!d.activated) { - u(), d.activated = !0; + l(), d.activated = !0; try { e.execute( c, @@ -3981,22 +3981,22 @@ const Qi = (t, e) => e, ec = (t, e) => t, po = async (t, e, r, n) => { staticModuleRecord: i, importMeta: c } = r, { - reexports: u = [], - __syncModuleProgram__: l, + reexports: l = [], + __syncModuleProgram__: u, __fixedExportMap__: d = {}, __liveExportMap__: f = {}, - __reexportMap__: h = {}, + __reexportMap__: m = {}, __needsImportMeta__: p = !1, - __syncModuleFunctor__: m - } = i, _ = L(t, o), { __shimTransforms__: E, importMetaHook: T } = _, { exportsProxy: N, exportsTarget: x, activate: D } = Un( + __syncModuleFunctor__: h + } = i, _ = L(t, o), { __shimTransforms__: S, importMetaHook: T } = _, { exportsProxy: N, exportsTarget: x, activate: D } = Un( o, _, e, a - ), B = z(null), H = z(null), K = z(null), ze = z(null), he = z(null); - c && $r(he, c), p && T && T(a, he); + ), B = z(null), H = z(null), K = z(null), ze = z(null), me = z(null); + c && $r(me, c), p && T && T(a, me); const Ge = z(null), rt = z(null); - ut(re(d), ([me, [V]]) => { + ut(re(d), ([he, [V]]) => { let W = Ge[V]; if (!W) { let ee, te = !0, ce = []; @@ -4012,8 +4012,8 @@ const Qi = (t, e) => e, ec = (t, e) => t, po = async (t, e, r, n) => { ee = we; const Hn = ce; ce = null, te = !1; - for (const Ee of Hn || []) - Ee(we); + for (const Se of Hn || []) + Se(we); return we; }); W = { @@ -4023,39 +4023,39 @@ const Qi = (t, e) => e, ec = (t, e) => t, po = async (t, e, r, n) => { } }, Ge[V] = W, K[V] = be; } - B[me] = { + B[he] = { get: W.get, set: void 0, enumerable: !0, configurable: !1 - }, rt[me] = W.notify; + }, rt[he] = W.notify; }), ut( re(f), - ([me, [V, W]]) => { + ([he, [V, W]]) => { let ee = Ge[V]; if (!ee) { let te, ce = !0; const Y = [], be = () => { if (ce) throw lt( - `binding ${cr(me)} not yet initialized` + `binding ${cr(he)} not yet initialized` ); return te; - }, gt = y((Ee) => { - te = Ee, ce = !1; + }, gt = y((Se) => { + te = Se, ce = !1; for (const zr of Y) - zr(Ee); - }), we = (Ee) => { + zr(Se); + }), we = (Se) => { if (ce) throw lt(`binding ${cr(V)} not yet initialized`); - te = Ee; + te = Se; for (const zr of Y) - zr(Ee); + zr(Se); }; ee = { get: be, - notify: (Ee) => { - Ee !== gt && (X(Y, Ee), ce || Ee(te)); + notify: (Se) => { + Se !== gt && (X(Y, Se), ce || Se(te)); } }, Ge[V] = ee, W && M(H, V, { get: be, @@ -4064,22 +4064,22 @@ const Qi = (t, e) => e, ec = (t, e) => t, po = async (t, e, r, n) => { configurable: !1 }), ze[V] = gt; } - B[me] = { + B[he] = { get: ee.get, set: void 0, enumerable: !0, configurable: !1 - }, rt[me] = ee.notify; + }, rt[he] = ee.notify; } ); - const Be = (me) => { - me(x); + const Be = (he) => { + he(x); }; rt["*"] = Be; - function ar(me) { + function ar(he) { const V = z(null); V.default = !1; - for (const [W, ee] of me) { + for (const [W, ee] of he) { const te = Ue(n, W); te.execute(); const { notifiers: ce } = te; @@ -4092,13 +4092,13 @@ const Qi = (t, e) => e, ec = (t, e) => t, po = async (t, e, r, n) => { for (const we of be) gt(we); } - if (Mr(u, W)) + if (Mr(l, W)) for (const [Y, be] of re( ce )) V[Y] === void 0 ? V[Y] = be : V[Y] = !1; - if (h[W]) - for (const [Y, be] of h[W]) + if (m[W]) + for (const [Y, be] of m[W]) V[be] = ce[Y]; } for (const [W, ee] of re(V)) @@ -4120,23 +4120,23 @@ const Qi = (t, e) => e, ec = (t, e) => t, po = async (t, e, r, n) => { ), y(x), D(); } let Ot; - m !== void 0 ? Ot = m : Ot = As(_, l, { + h !== void 0 ? Ot = h : Ot = As(_, u, { globalObject: o.globalThis, - transforms: E, + transforms: S, __moduleShimLexicals__: H }); let Gn = !1, Bn; function Bs() { if (Ot) { - const me = Ot; + const he = Ot; Ot = null; try { - me( + he( y({ imports: y(ar), onceVar: y(K), liveVar: y(ze), - importMeta: he + importMeta: me }) ); } catch (V) { @@ -4180,7 +4180,7 @@ function cc(t) { } function lc(t, e) { const { exports: r } = t; - St(r) || ct`Property 'exports' of a third-party static module record must be an array, got ${q( + Et(r) || ct`Property 'exports' of a third-party static module record must be an array, got ${q( r )}, for module ${q(e)}`; } @@ -4189,11 +4189,11 @@ function uc(t, e) { t )}, for module ${q(e)}`; const { imports: r, exports: n, reexports: o = [] } = t; - St(r) || ct`Property 'imports' of a static module record must be an array, got ${q( + Et(r) || ct`Property 'imports' of a static module record must be an array, got ${q( r - )}, for module ${q(e)}`, St(n) || ct`Property 'exports' of a precompiled module record must be an array, got ${q( + )}, for module ${q(e)}`, Et(n) || ct`Property 'exports' of a precompiled module record must be an array, got ${q( n - )}, for module ${q(e)}`, St(o) || ct`Property 'reexports' of a precompiled module record must be an array if present, got ${q( + )}, for module ${q(e)}`, Et(o) || ct`Property 'reexports' of a precompiled module record must be an array if present, got ${q( o )}, for module ${q(e)}`; } @@ -4202,17 +4202,17 @@ const dc = (t, e, r) => { if (Lr(c, o)) return Ue(c, o); uc(i, o); - const u = new Pe(); - let l; + const l = new Pe(); + let u; if (ac(i)) - ic(i, o), l = sc( + ic(i, o), u = sc( t, e, r, - u + l ); else if (cc(i)) - lc(i, o), l = oc( + lc(i, o), u = oc( t, i, n, @@ -4226,17 +4226,17 @@ const dc = (t, e, r) => { i )}` ); - $e(c, o, l); + $e(c, o, u); for (const [d, f] of re(a)) { - const h = Is( + const m = Is( t, e, n, f ); - $e(u, d, h); + $e(l, d, m); } - return l; + return u; }, { quote: Xr } = G, bt = new Me(), Ce = new Me(), lr = (t) => { const { importHook: e, resolveHook: r } = L(Ce, t); if (typeof e != "function" || typeof r != "function") @@ -4247,7 +4247,7 @@ const dc = (t, e, r) => { throw v( "Compartment.prototype.constructor is not a valid constructor." ); -}, ho = (t, e) => { +}, mo = (t, e) => { const { execute: r, exportsProxy: n } = Is( Ce, bt, @@ -4294,7 +4294,7 @@ const dc = (t, e, r) => { throw v("first argument of import() must be a string"); return lr(this), jo( po(Ce, bt, this, t), - () => ({ namespace: ho( + () => ({ namespace: mo( /** @type {Compartment} */ this, t @@ -4309,7 +4309,7 @@ const dc = (t, e, r) => { importNow(t) { if (typeof t != "string") throw v("first argument of importNow() must be a string"); - return lr(this), tc(Ce, bt, this, t), ho( + return lr(this), tc(Ce, bt, this, t), mo( /** @type {Compartment} */ this, t @@ -4335,14 +4335,14 @@ const dn = (t, e, r) => { ); const { name: c = "", - transforms: u = [], - __shimTransforms__: l = [], + transforms: l = [], + __shimTransforms__: u = [], resolveHook: d, importHook: f, - importNowHook: h, + importNowHook: m, moduleMapHook: p, - importMetaHook: m - } = i, _ = [...u, ...l], E = new Pe(), T = new Pe(), N = new Pe(); + importMetaHook: h + } = i, _ = [...l, ...u], S = new Pe(), T = new Pe(), N = new Pe(); for (const [B, H] of re(a || {})) { if (typeof H == "string") throw v( @@ -4380,12 +4380,12 @@ const dn = (t, e, r) => { safeEvaluate: D, resolveHook: d, importHook: f, - importNowHook: h, + importNowHook: m, moduleMap: a, moduleMapHook: p, - importMetaHook: m, - moduleRecords: E, - __shimTransforms__: l, + importMetaHook: h, + moduleRecords: S, + __shimTransforms__: u, deferredExports: N, instances: T }); @@ -4399,10 +4399,10 @@ function fc() { return arguments; } const pc = () => { - const t = ve.prototype.constructor, e = J(fc(), "callee"), r = e && e.get, n = ba(new pe()), o = j(n), a = Rr[To] && ya(/./), i = a && j(a), c = fa([]), u = j(c), l = j(Ws), d = ma(new Pe()), f = j(d), h = ga(new Ct()), p = j(h), m = j(u); + const t = ve.prototype.constructor, e = J(fc(), "callee"), r = e && e.get, n = ba(new pe()), o = j(n), a = Rr[To] && ya(/./), i = a && j(a), c = fa([]), l = j(c), u = j(Ws), d = ha(new Pe()), f = j(d), m = ga(new Ct()), p = j(m), h = j(l); function* _() { } - const E = Qr(_), T = E.prototype; + const S = Qr(_), T = S.prototype; async function* N() { } const x = Qr( @@ -4410,40 +4410,40 @@ const pc = () => { ), D = x.prototype, B = D.prototype, H = j(B); async function K() { } - const ze = Qr(K), he = { + const ze = Qr(K), me = { "%InertFunction%": t, - "%ArrayIteratorPrototype%": u, + "%ArrayIteratorPrototype%": l, "%InertAsyncFunction%": ze, "%AsyncGenerator%": D, "%InertAsyncGeneratorFunction%": x, "%AsyncGeneratorPrototype%": B, "%AsyncIteratorPrototype%": H, "%Generator%": T, - "%InertGeneratorFunction%": E, - "%IteratorPrototype%": m, + "%InertGeneratorFunction%": S, + "%IteratorPrototype%": h, "%MapIteratorPrototype%": f, "%RegExpStringIteratorPrototype%": i, "%SetIteratorPrototype%": p, "%StringIteratorPrototype%": o, "%ThrowTypeError%": r, - "%TypedArray%": l, + "%TypedArray%": u, "%InertCompartment%": jn }; - return k.Iterator && (he["%IteratorHelperPrototype%"] = j( + return k.Iterator && (me["%IteratorHelperPrototype%"] = j( // eslint-disable-next-line @endo/no-polymorphic-call k.Iterator.from([]).take(0) - ), he["%WrapForValidIteratorPrototype%"] = j( + ), me["%WrapForValidIteratorPrototype%"] = j( // eslint-disable-next-line @endo/no-polymorphic-call k.Iterator.from({ next() { } }) - )), k.AsyncIterator && (he["%AsyncIteratorHelperPrototype%"] = j( + )), k.AsyncIterator && (me["%AsyncIteratorHelperPrototype%"] = j( // eslint-disable-next-line @endo/no-polymorphic-call k.AsyncIterator.from([]).take(0) - ), he["%WrapForValidAsyncIteratorPrototype%"] = j( + ), me["%WrapForValidAsyncIteratorPrototype%"] = j( // eslint-disable-next-line @endo/no-polymorphic-call k.AsyncIterator.from({ next() { } }) - )), he; + )), me; }, Cs = (t, e) => { if (e !== "safe" && e !== "unsafe") throw v(`unrecognized fakeHardenOption ${e}`); @@ -4453,8 +4453,8 @@ const pc = () => { return r.isFake = !0, y(r); }; y(Cs); -const hc = () => { - const t = Et, e = t.prototype, r = Sa(Et, void 0); +const mc = () => { + const t = St, e = t.prototype, r = Ea(St, void 0); F(e, { constructor: { value: r @@ -4463,20 +4463,20 @@ const hc = () => { }); const n = re( Ze(t) - ), o = mt( + ), o = ht( se(n, ([a, i]) => [ a, { ...i, configurable: !0 } ]) ); return F(r, o), { "%SharedSymbol%": r }; -}, mc = (t) => { +}, hc = (t) => { try { return t(), !1; } catch { return !0; } -}, mo = (t, e, r) => { +}, ho = (t, e, r) => { if (t === void 0) return !1; const n = J(t, e); @@ -4488,19 +4488,19 @@ const hc = () => { const i = "Seems to be a setter", c = { __proto__: null }; if (ne(a, c, [i]), c[e] !== i) return !1; - const u = { __proto__: t }; - return ne(a, u, [i]), u[e] !== i || !mc(() => ne(a, t, [r])) || "originalValue" in o || n.configurable === !1 ? !1 : (M(t, e, { + const l = { __proto__: t }; + return ne(a, l, [i]), l[e] !== i || !hc(() => ne(a, t, [r])) || "originalValue" in o || n.configurable === !1 ? !1 : (M(t, e, { value: r, writable: !0, enumerable: n.enumerable, configurable: !0 }), !0); }, gc = (t) => { - mo( + ho( t["%IteratorPrototype%"], "constructor", t.Iterator - ), mo( + ), ho( t["%IteratorPrototype%"], qe, "Iterator" @@ -4542,24 +4542,24 @@ const yc = Ba(), vc = () => { le("LOCKDOWN_CONSOLE_TAMING", "safe") ), overrideTaming: c = le("LOCKDOWN_OVERRIDE_TAMING", "moderate"), - stackFiltering: u = le("LOCKDOWN_STACK_FILTERING", "concise"), - domainTaming: l = le("LOCKDOWN_DOMAIN_TAMING", "safe"), + stackFiltering: l = le("LOCKDOWN_STACK_FILTERING", "concise"), + domainTaming: u = le("LOCKDOWN_DOMAIN_TAMING", "safe"), evalTaming: d = le("LOCKDOWN_EVAL_TAMING", "safeEval"), overrideDebug: f = Ke( An(le("LOCKDOWN_OVERRIDE_DEBUG", ""), ","), /** @param {string} debugName */ (Be) => Be !== "" ), - __hardenTaming__: h = le("LOCKDOWN_HARDEN_TAMING", "safe"), + __hardenTaming__: m = le("LOCKDOWN_HARDEN_TAMING", "safe"), dateTaming: p = "safe", // deprecated - mathTaming: m = "safe", + mathTaming: h = "safe", // deprecated ..._ } = t; d === "unsafeEval" || d === "safeEval" || d === "noEval" || go`lockdown(): non supported option evalTaming: ${vo(d)}`; - const E = De(_); - if (E.length === 0 || go`lockdown(): non supported option ${vo(E)}`, ur === void 0 || // eslint-disable-next-line @endo/no-polymorphic-call + const S = De(_); + if (S.length === 0 || go`lockdown(): non supported option ${vo(S)}`, ur === void 0 || // eslint-disable-next-line @endo/no-polymorphic-call G.fail( yo`Already locked down at ${ur} (SES_ALREADY_LOCKED_DOWN)`, v @@ -4572,18 +4572,18 @@ const yc = Ba(), vc = () => { throw v( "Already locked down but not by this SES instance (SES_MULTIPLE_INSTANCES)" ); - xi(l); - const N = xs(), { addIntrinsics: x, completePrototypes: D, finalIntrinsics: B } = as(), H = Cs(yc, h); - x({ harden: H }), x(Ja()), x(Xa(p)), x(Bi(e, u)), x(Qa(m)), x(ei(o)), x(hc()), x(pc()), D(); + xi(u); + const N = xs(), { addIntrinsics: x, completePrototypes: D, finalIntrinsics: B } = as(), H = Cs(yc, m); + x({ harden: H }), x(Ja()), x(Xa(p)), x(Bi(e, l)), x(Qa(h)), x(ei(o)), x(mc()), x(pc()), D(); const K = B(), ze = { __proto__: null }; typeof k.Buffer == "function" && (ze.Buffer = k.Buffer); - let he; - e !== "unsafe" && (he = K["%InitialGetStackString%"]); + let me; + e !== "unsafe" && (me = K["%InitialGetStackString%"]); const Ge = Ai( i, r, n, - he + me ); if (k.console = /** @type {Console} */ Ge.console, typeof /** @type {any} */ @@ -4657,18 +4657,18 @@ const bc = Ps(br), wc = ra( "MAKE_CAUSAL_CONSOLE_FROM_LOGGER_KEY_FOR_SES_AVA" ); k[wc] = bc; -const Ec = (t, e) => { +const Sc = (t, e) => { let r = { x: 0, y: 0 }, n = { x: 0, y: 0 }, o = { x: 0, y: 0 }; - const a = (u) => { - const { clientX: l, clientY: d } = u, f = l - o.x + n.x, h = d - o.y + n.y; - r = { x: f, y: h }, t.style.transform = `translate(${f}px, ${h}px)`, e == null || e(); + const a = (l) => { + const { clientX: u, clientY: d } = l, f = u - o.x + n.x, m = d - o.y + n.y; + r = { x: f, y: m }, t.style.transform = `translate(${f}px, ${m}px)`, e == null || e(); }, i = () => { document.removeEventListener("mousemove", a), document.removeEventListener("mouseup", i); - }, c = (u) => { - o = { x: u.clientX, y: u.clientY }, n = { x: r.x, y: r.y }, document.addEventListener("mousemove", a), document.addEventListener("mouseup", i); + }, c = (l) => { + o = { x: l.clientX, y: l.clientY }, n = { x: r.x, y: r.y }, document.addEventListener("mousemove", a), document.addEventListener("mouseup", i); }; return t.addEventListener("mousedown", c), i; -}, Sc = ":host{--spacing-4: .25rem;--spacing-8: calc(var(--spacing-4) * 2);--spacing-12: calc(var(--spacing-4) * 3);--spacing-16: calc(var(--spacing-4) * 4);--spacing-20: calc(var(--spacing-4) * 5);--spacing-24: calc(var(--spacing-4) * 6);--spacing-28: calc(var(--spacing-4) * 7);--spacing-32: calc(var(--spacing-4) * 8);--spacing-36: calc(var(--spacing-4) * 9);--spacing-40: calc(var(--spacing-4) * 10);--font-weight-regular: 400;--font-weight-bold: 500;--font-line-height-s: 1.2;--font-line-height-m: 1.4;--font-line-height-l: 1.5;--font-size-s: 12px;--font-size-m: 14px;--font-size-l: 16px}[data-theme]{background-color:var(--color-background-primary);color:var(--color-foreground-secondary)}.wrapper{box-sizing:border-box;display:flex;flex-direction:column;position:fixed;inset-block-start:var(--modal-block-start);inset-inline-end:var(--modal-inline-end);z-index:1000;padding:25px;border-radius:15px;border:2px solid var(--color-background-quaternary);box-shadow:0 0 10px #0000004d}.wrapper[data-theme=light]{border:none}.header{align-items:center;display:flex;justify-content:space-between;border-block-end:2px solid var(--color-background-quaternary);padding-block-end:var(--spacing-4)}button{background:transparent;border:0;cursor:pointer;padding:0}h1{font-size:var(--font-size-s);font-weight:var(--font-weight-bold);margin:0;margin-inline-end:var(--spacing-4);-webkit-user-select:none;user-select:none}iframe{border:none;inline-size:100%;block-size:100%}", xc = ` +}, Ec = ":host{--spacing-4: .25rem;--spacing-8: calc(var(--spacing-4) * 2);--spacing-12: calc(var(--spacing-4) * 3);--spacing-16: calc(var(--spacing-4) * 4);--spacing-20: calc(var(--spacing-4) * 5);--spacing-24: calc(var(--spacing-4) * 6);--spacing-28: calc(var(--spacing-4) * 7);--spacing-32: calc(var(--spacing-4) * 8);--spacing-36: calc(var(--spacing-4) * 9);--spacing-40: calc(var(--spacing-4) * 10);--font-weight-regular: 400;--font-weight-bold: 500;--font-line-height-s: 1.2;--font-line-height-m: 1.4;--font-line-height-l: 1.5;--font-size-s: 12px;--font-size-m: 14px;--font-size-l: 16px}[data-theme]{background-color:var(--color-background-primary);color:var(--color-foreground-secondary)}.wrapper{box-sizing:border-box;display:flex;flex-direction:column;position:fixed;inset-block-start:var(--modal-block-start);inset-inline-end:var(--modal-inline-end);z-index:1000;padding:25px;border-radius:15px;border:2px solid var(--color-background-quaternary);box-shadow:0 0 10px #0000004d}.header{align-items:center;display:flex;justify-content:space-between;border-block-end:2px solid var(--color-background-quaternary);padding-block-end:var(--spacing-4)}button{background:transparent;border:0;cursor:pointer;padding:0}h1{font-size:var(--font-size-s);font-weight:var(--font-weight-bold);margin:0;margin-inline-end:var(--spacing-4);-webkit-user-select:none;user-select:none}iframe{border:none;inline-size:100%;block-size:100%}", xc = ` `; var de, er; class kc extends HTMLElement { @@ -4679,11 +4679,11 @@ class kc extends HTMLElement { this.attachShadow({ mode: "open" }); } setTheme(r) { - Se(this, de) && Se(this, de).setAttribute("data-theme", r); + Ee(this, de) && Ee(this, de).setAttribute("data-theme", r); } disconnectedCallback() { var r; - (r = Se(this, er)) == null || r.call(this); + (r = Ee(this, er)) == null || r.call(this); } calculateZIndex() { const r = document.querySelectorAll("plugin-modal"), n = Array.from(r).filter((a) => a !== this).map((a) => Number(a.style.zIndex)), o = Math.max(...n, 0); @@ -4695,24 +4695,24 @@ class kc extends HTMLElement { throw new Error("title and iframe-src attributes are required"); if (!this.shadowRoot) throw new Error("Error creating shadow root"); - Br(this, de, document.createElement("div")), Se(this, de).classList.add("wrapper"), Se(this, de).style.inlineSize = `${o}px`, Se(this, de).style.blockSize = `${a}px`, Br(this, er, Ec(Se(this, de), () => { + Br(this, de, document.createElement("div")), Ee(this, de).classList.add("wrapper"), Ee(this, de).style.inlineSize = `${o}px`, Ee(this, de).style.blockSize = `${a}px`, Br(this, er, Sc(Ee(this, de), () => { this.calculateZIndex(); })); const i = document.createElement("div"); i.classList.add("header"); const c = document.createElement("h1"); c.textContent = r, i.appendChild(c); - const u = document.createElement("button"); - u.setAttribute("type", "button"), u.innerHTML = `

    `, u.addEventListener("click", () => { + const l = document.createElement("button"); + l.setAttribute("type", "button"), l.innerHTML = `
    ${xc}
    `, l.addEventListener("click", () => { this.shadowRoot && this.shadowRoot.dispatchEvent( new CustomEvent("close", { composed: !0, bubbles: !0 }) ); - }), i.appendChild(u); - const l = document.createElement("iframe"); - l.src = n, l.allow = "", l.sandbox.add( + }), i.appendChild(l); + const u = document.createElement("iframe"); + u.src = n, u.allow = "", u.sandbox.add( "allow-scripts", "allow-forms", "allow-modals", @@ -4720,10 +4720,10 @@ class kc extends HTMLElement { "allow-popups-to-escape-sandbox", "allow-storage-access-by-user-activation" ), this.addEventListener("message", (f) => { - l.contentWindow && l.contentWindow.postMessage(f.detail, "*"); - }), this.shadowRoot.appendChild(Se(this, de)), Se(this, de).appendChild(i), Se(this, de).appendChild(l); + u.contentWindow && u.contentWindow.postMessage(f.detail, "*"); + }), this.shadowRoot.appendChild(Ee(this, de)), Ee(this, de).appendChild(i), Ee(this, de).appendChild(u); const d = document.createElement("style"); - d.textContent = Sc, this.shadowRoot.appendChild(d), this.calculateZIndex(); + d.textContent = Ec, this.shadowRoot.appendChild(d), this.calculateZIndex(); } } de = new WeakMap(), er = new WeakMap(); @@ -4859,10 +4859,10 @@ class fe extends Error { else if (i.path.length === 0) n._errors.push(r(i)); else { - let c = n, u = 0; - for (; u < i.path.length; ) { - const l = i.path[u]; - u === i.path.length - 1 ? (c[l] = c[l] || { _errors: [] }, c[l]._errors.push(r(i))) : c[l] = c[l] || { _errors: [] }, c = c[l], u++; + let c = n, l = 0; + for (; l < i.path.length; ) { + const u = i.path[l]; + l === i.path.length - 1 ? (c[u] = c[u] || { _errors: [] }, c[u]._errors.push(r(i))) : c[u] = c[u] || { _errors: [] }, c = c[u], l++; } } }; @@ -4952,7 +4952,7 @@ let Ns = Tt; function Tc(t) { Ns = t; } -function Sr() { +function Er() { return Ns; } const xr = (t) => { @@ -4967,9 +4967,9 @@ const xr = (t) => { message: o.message }; let c = ""; - const u = n.filter((l) => !!l).slice().reverse(); - for (const l of u) - c = l(i, { data: e, defaultError: c }).message; + const l = n.filter((u) => !!u).slice().reverse(); + for (const u of l) + c = u(i, { data: e, defaultError: c }).message; return { ...o, path: a, @@ -4977,7 +4977,7 @@ const xr = (t) => { }; }, Ac = []; function b(t, e) { - const r = Sr(), n = xr({ + const r = Er(), n = xr({ issueData: e, data: t.data, path: t.path, @@ -5034,7 +5034,7 @@ class Q { } const I = Object.freeze({ status: "aborted" -}), wt = (t) => ({ status: "dirty", value: t }), ae = (t) => ({ status: "valid", value: t }), pn = (t) => t.status === "aborted", hn = (t) => t.status === "dirty", jt = (t) => t.status === "valid", Zt = (t) => typeof Promise < "u" && t instanceof Promise; +}), wt = (t) => ({ status: "dirty", value: t }), ae = (t) => ({ status: "valid", value: t }), pn = (t) => t.status === "aborted", mn = (t) => t.status === "dirty", jt = (t) => t.status === "valid", Zt = (t) => typeof Promise < "u" && t instanceof Promise; function kr(t, e, r, n) { if (typeof e == "function" ? t !== e || !n : !e.has(t)) throw new TypeError("Cannot read private member from an object whose class did not declare it"); @@ -5045,10 +5045,10 @@ function Rs(t, e, r, n, o) { throw new TypeError("Cannot write private member to an object whose class did not declare it"); return e.set(t, r), r; } -var S; +var E; (function(t) { t.errToObj = (e) => typeof e == "string" ? { message: e } : e || {}, t.toString = (e) => typeof e == "string" ? e : e == null ? void 0 : e.message; -})(S || (S = {})); +})(E || (E = {})); var Mt, Lt; class Re { constructor(e, r, n, o) { @@ -5080,9 +5080,9 @@ function C(t) { if (e && (r || n)) throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`); return e ? { errorMap: e, description: o } : { errorMap: (i, c) => { - var u, l; + var l, u; const { message: d } = t; - return i.code === "invalid_enum_value" ? { message: d ?? c.defaultError } : typeof c.data > "u" ? { message: (u = d ?? n) !== null && u !== void 0 ? u : c.defaultError } : i.code !== "invalid_type" ? { message: c.defaultError } : { message: (l = d ?? r) !== null && l !== void 0 ? l : c.defaultError }; + return i.code === "invalid_enum_value" ? { message: d ?? c.defaultError } : typeof c.data > "u" ? { message: (l = d ?? n) !== null && l !== void 0 ? l : c.defaultError } : i.code !== "invalid_type" ? { message: c.defaultError } : { message: (u = d ?? r) !== null && u !== void 0 ? u : c.defaultError }; }, description: o }; } class $ { @@ -5178,7 +5178,7 @@ class $ { code: g.custom, ...n(o) }); - return typeof Promise < "u" && i instanceof Promise ? i.then((u) => u ? !0 : (c(), !1)) : i ? !0 : (c(), !1); + return typeof Promise < "u" && i instanceof Promise ? i.then((l) => l ? !0 : (c(), !1)) : i ? !0 : (c(), !1); }); } refinement(e, r) { @@ -5434,7 +5434,7 @@ class ke extends $ { return this.refinement((o) => e.test(o), { validation: r, code: g.invalid_string, - ...S.errToObj(n) + ...E.errToObj(n) }); } _addCheck(e) { @@ -5444,34 +5444,34 @@ class ke extends $ { }); } email(e) { - return this._addCheck({ kind: "email", ...S.errToObj(e) }); + return this._addCheck({ kind: "email", ...E.errToObj(e) }); } url(e) { - return this._addCheck({ kind: "url", ...S.errToObj(e) }); + return this._addCheck({ kind: "url", ...E.errToObj(e) }); } emoji(e) { - return this._addCheck({ kind: "emoji", ...S.errToObj(e) }); + return this._addCheck({ kind: "emoji", ...E.errToObj(e) }); } uuid(e) { - return this._addCheck({ kind: "uuid", ...S.errToObj(e) }); + return this._addCheck({ kind: "uuid", ...E.errToObj(e) }); } nanoid(e) { - return this._addCheck({ kind: "nanoid", ...S.errToObj(e) }); + return this._addCheck({ kind: "nanoid", ...E.errToObj(e) }); } cuid(e) { - return this._addCheck({ kind: "cuid", ...S.errToObj(e) }); + return this._addCheck({ kind: "cuid", ...E.errToObj(e) }); } cuid2(e) { - return this._addCheck({ kind: "cuid2", ...S.errToObj(e) }); + return this._addCheck({ kind: "cuid2", ...E.errToObj(e) }); } ulid(e) { - return this._addCheck({ kind: "ulid", ...S.errToObj(e) }); + return this._addCheck({ kind: "ulid", ...E.errToObj(e) }); } base64(e) { - return this._addCheck({ kind: "base64", ...S.errToObj(e) }); + return this._addCheck({ kind: "base64", ...E.errToObj(e) }); } ip(e) { - return this._addCheck({ kind: "ip", ...S.errToObj(e) }); + return this._addCheck({ kind: "ip", ...E.errToObj(e) }); } datetime(e) { var r, n; @@ -5486,7 +5486,7 @@ class ke extends $ { precision: typeof (e == null ? void 0 : e.precision) > "u" ? null : e == null ? void 0 : e.precision, offset: (r = e == null ? void 0 : e.offset) !== null && r !== void 0 ? r : !1, local: (n = e == null ? void 0 : e.local) !== null && n !== void 0 ? n : !1, - ...S.errToObj(e == null ? void 0 : e.message) + ...E.errToObj(e == null ? void 0 : e.message) }); } date(e) { @@ -5500,17 +5500,17 @@ class ke extends $ { }) : this._addCheck({ kind: "time", precision: typeof (e == null ? void 0 : e.precision) > "u" ? null : e == null ? void 0 : e.precision, - ...S.errToObj(e == null ? void 0 : e.message) + ...E.errToObj(e == null ? void 0 : e.message) }); } duration(e) { - return this._addCheck({ kind: "duration", ...S.errToObj(e) }); + return this._addCheck({ kind: "duration", ...E.errToObj(e) }); } regex(e, r) { return this._addCheck({ kind: "regex", regex: e, - ...S.errToObj(r) + ...E.errToObj(r) }); } includes(e, r) { @@ -5518,42 +5518,42 @@ class ke extends $ { kind: "includes", value: e, position: r == null ? void 0 : r.position, - ...S.errToObj(r == null ? void 0 : r.message) + ...E.errToObj(r == null ? void 0 : r.message) }); } startsWith(e, r) { return this._addCheck({ kind: "startsWith", value: e, - ...S.errToObj(r) + ...E.errToObj(r) }); } endsWith(e, r) { return this._addCheck({ kind: "endsWith", value: e, - ...S.errToObj(r) + ...E.errToObj(r) }); } min(e, r) { return this._addCheck({ kind: "min", value: e, - ...S.errToObj(r) + ...E.errToObj(r) }); } max(e, r) { return this._addCheck({ kind: "max", value: e, - ...S.errToObj(r) + ...E.errToObj(r) }); } length(e, r) { return this._addCheck({ kind: "length", value: e, - ...S.errToObj(r) + ...E.errToObj(r) }); } /** @@ -5561,7 +5561,7 @@ class ke extends $ { * @see {@link ZodString.min} */ nonempty(e) { - return this.min(1, S.errToObj(e)); + return this.min(1, E.errToObj(e)); } trim() { return new ke({ @@ -5695,16 +5695,16 @@ class Xe extends $ { return { status: o.value, value: e.data }; } gte(e, r) { - return this.setLimit("min", e, !0, S.toString(r)); + return this.setLimit("min", e, !0, E.toString(r)); } gt(e, r) { - return this.setLimit("min", e, !1, S.toString(r)); + return this.setLimit("min", e, !1, E.toString(r)); } lte(e, r) { - return this.setLimit("max", e, !0, S.toString(r)); + return this.setLimit("max", e, !0, E.toString(r)); } lt(e, r) { - return this.setLimit("max", e, !1, S.toString(r)); + return this.setLimit("max", e, !1, E.toString(r)); } setLimit(e, r, n, o) { return new Xe({ @@ -5715,7 +5715,7 @@ class Xe extends $ { kind: e, value: r, inclusive: n, - message: S.toString(o) + message: E.toString(o) } ] }); @@ -5729,7 +5729,7 @@ class Xe extends $ { int(e) { return this._addCheck({ kind: "int", - message: S.toString(e) + message: E.toString(e) }); } positive(e) { @@ -5737,7 +5737,7 @@ class Xe extends $ { kind: "min", value: 0, inclusive: !1, - message: S.toString(e) + message: E.toString(e) }); } negative(e) { @@ -5745,7 +5745,7 @@ class Xe extends $ { kind: "max", value: 0, inclusive: !1, - message: S.toString(e) + message: E.toString(e) }); } nonpositive(e) { @@ -5753,7 +5753,7 @@ class Xe extends $ { kind: "max", value: 0, inclusive: !0, - message: S.toString(e) + message: E.toString(e) }); } nonnegative(e) { @@ -5761,20 +5761,20 @@ class Xe extends $ { kind: "min", value: 0, inclusive: !0, - message: S.toString(e) + message: E.toString(e) }); } multipleOf(e, r) { return this._addCheck({ kind: "multipleOf", value: e, - message: S.toString(r) + message: E.toString(r) }); } finite(e) { return this._addCheck({ kind: "finite", - message: S.toString(e) + message: E.toString(e) }); } safe(e) { @@ -5782,12 +5782,12 @@ class Xe extends $ { kind: "min", inclusive: !0, value: Number.MIN_SAFE_INTEGER, - message: S.toString(e) + message: E.toString(e) })._addCheck({ kind: "max", inclusive: !0, value: Number.MAX_SAFE_INTEGER, - message: S.toString(e) + message: E.toString(e) }); } get minValue() { @@ -5857,16 +5857,16 @@ class Qe extends $ { return { status: o.value, value: e.data }; } gte(e, r) { - return this.setLimit("min", e, !0, S.toString(r)); + return this.setLimit("min", e, !0, E.toString(r)); } gt(e, r) { - return this.setLimit("min", e, !1, S.toString(r)); + return this.setLimit("min", e, !1, E.toString(r)); } lte(e, r) { - return this.setLimit("max", e, !0, S.toString(r)); + return this.setLimit("max", e, !0, E.toString(r)); } lt(e, r) { - return this.setLimit("max", e, !1, S.toString(r)); + return this.setLimit("max", e, !1, E.toString(r)); } setLimit(e, r, n, o) { return new Qe({ @@ -5877,7 +5877,7 @@ class Qe extends $ { kind: e, value: r, inclusive: n, - message: S.toString(o) + message: E.toString(o) } ] }); @@ -5893,7 +5893,7 @@ class Qe extends $ { kind: "min", value: BigInt(0), inclusive: !1, - message: S.toString(e) + message: E.toString(e) }); } negative(e) { @@ -5901,7 +5901,7 @@ class Qe extends $ { kind: "max", value: BigInt(0), inclusive: !1, - message: S.toString(e) + message: E.toString(e) }); } nonpositive(e) { @@ -5909,7 +5909,7 @@ class Qe extends $ { kind: "max", value: BigInt(0), inclusive: !0, - message: S.toString(e) + message: E.toString(e) }); } nonnegative(e) { @@ -5917,14 +5917,14 @@ class Qe extends $ { kind: "min", value: BigInt(0), inclusive: !0, - message: S.toString(e) + message: E.toString(e) }); } multipleOf(e, r) { return this._addCheck({ kind: "multipleOf", value: e, - message: S.toString(r) + message: E.toString(r) }); } get minValue() { @@ -6016,14 +6016,14 @@ class pt extends $ { return this._addCheck({ kind: "min", value: e.getTime(), - message: S.toString(r) + message: E.toString(r) }); } max(e, r) { return this._addCheck({ kind: "max", value: e.getTime(), - message: S.toString(r) + message: E.toString(r) }); } get minDate() { @@ -6197,19 +6197,19 @@ class Te extends $ { min(e, r) { return new Te({ ...this._def, - minLength: { value: e, message: S.toString(r) } + minLength: { value: e, message: E.toString(r) } }); } max(e, r) { return new Te({ ...this._def, - maxLength: { value: e, message: S.toString(r) } + maxLength: { value: e, message: E.toString(r) } }); } length(e, r) { return new Te({ ...this._def, - exactLength: { value: e, message: S.toString(r) } + exactLength: { value: e, message: E.toString(r) } }); } nonempty(e) { @@ -6253,48 +6253,48 @@ class U extends $ { } _parse(e) { if (this._getType(e) !== w.object) { - const l = this._getOrReturnCtx(e); - return b(l, { + const u = this._getOrReturnCtx(e); + return b(u, { code: g.invalid_type, expected: w.object, - received: l.parsedType + received: u.parsedType }), I; } const { status: n, ctx: o } = this._processInputParams(e), { shape: a, keys: i } = this._getCached(), c = []; if (!(this._def.catchall instanceof je && this._def.unknownKeys === "strip")) - for (const l in o.data) - i.includes(l) || c.push(l); - const u = []; - for (const l of i) { - const d = a[l], f = o.data[l]; - u.push({ - key: { status: "valid", value: l }, - value: d._parse(new Re(o, f, o.path, l)), - alwaysSet: l in o.data + for (const u in o.data) + i.includes(u) || c.push(u); + const l = []; + for (const u of i) { + const d = a[u], f = o.data[u]; + l.push({ + key: { status: "valid", value: u }, + value: d._parse(new Re(o, f, o.path, u)), + alwaysSet: u in o.data }); } if (this._def.catchall instanceof je) { - const l = this._def.unknownKeys; - if (l === "passthrough") + const u = this._def.unknownKeys; + if (u === "passthrough") for (const d of c) - u.push({ + l.push({ key: { status: "valid", value: d }, value: { status: "valid", value: o.data[d] } }); - else if (l === "strict") + else if (u === "strict") c.length > 0 && (b(o, { code: g.unrecognized_keys, keys: c }), n.dirty()); - else if (l !== "strip") + else if (u !== "strip") throw new Error("Internal ZodObject error: invalid unknownKeys value."); } else { - const l = this._def.catchall; + const u = this._def.catchall; for (const d of c) { const f = o.data[d]; - u.push({ + l.push({ key: { status: "valid", value: d }, - value: l._parse( + value: u._parse( new Re(o, f, o.path, d) //, ctx.child(key), value, getParsedType(value) ), @@ -6303,33 +6303,33 @@ class U extends $ { } } return o.common.async ? Promise.resolve().then(async () => { - const l = []; - for (const d of u) { - const f = await d.key, h = await d.value; - l.push({ + const u = []; + for (const d of l) { + const f = await d.key, m = await d.value; + u.push({ key: f, - value: h, + value: m, alwaysSet: d.alwaysSet }); } - return l; - }).then((l) => Q.mergeObjectSync(n, l)) : Q.mergeObjectSync(n, u); + return u; + }).then((u) => Q.mergeObjectSync(n, u)) : Q.mergeObjectSync(n, l); } get shape() { return this._def.shape(); } strict(e) { - return S.errToObj, new U({ + return E.errToObj, new U({ ...this._def, unknownKeys: "strict", ...e !== void 0 ? { errorMap: (r, n) => { var o, a, i, c; - const u = (i = (a = (o = this._def).errorMap) === null || a === void 0 ? void 0 : a.call(o, r, n).message) !== null && i !== void 0 ? i : n.defaultError; + const l = (i = (a = (o = this._def).errorMap) === null || a === void 0 ? void 0 : a.call(o, r, n).message) !== null && i !== void 0 ? i : n.defaultError; return r.code === "unrecognized_keys" ? { - message: (c = S.errToObj(e).message) !== null && c !== void 0 ? c : u + message: (c = E.errToObj(e).message) !== null && c !== void 0 ? c : l } : { - message: u + message: l }; } } : {} @@ -6567,26 +6567,26 @@ class Ht extends $ { { let a; const i = []; - for (const u of n) { - const l = { + for (const l of n) { + const u = { ...r, common: { ...r.common, issues: [] }, parent: null - }, d = u._parseSync({ + }, d = l._parseSync({ data: r.data, path: r.path, - parent: l + parent: u }); if (d.status === "valid") return d; - d.status === "dirty" && !a && (a = { result: d, ctx: l }), l.common.issues.length && i.push(l.common.issues); + d.status === "dirty" && !a && (a = { result: d, ctx: u }), u.common.issues.length && i.push(u.common.issues); } if (a) return r.common.issues.push(...a.ctx.common.issues), a.result; - const c = i.map((u) => new fe(u)); + const c = i.map((l) => new fe(l)); return b(r, { code: g.invalid_union, unionErrors: c @@ -6665,17 +6665,17 @@ class Zr extends $ { }); } } -function mn(t, e) { +function hn(t, e) { const r = Ve(t), n = Ve(e); if (t === e) return { valid: !0, data: t }; if (r === w.object && n === w.object) { const o = O.objectKeys(e), a = O.objectKeys(t).filter((c) => o.indexOf(c) !== -1), i = { ...t, ...e }; for (const c of a) { - const u = mn(t[c], e[c]); - if (!u.valid) + const l = hn(t[c], e[c]); + if (!l.valid) return { valid: !1 }; - i[c] = u.data; + i[c] = l.data; } return { valid: !0, data: i }; } else if (r === w.array && n === w.array) { @@ -6683,10 +6683,10 @@ function mn(t, e) { return { valid: !1 }; const o = []; for (let a = 0; a < t.length; a++) { - const i = t[a], c = e[a], u = mn(i, c); - if (!u.valid) + const i = t[a], c = e[a], l = hn(i, c); + if (!l.valid) return { valid: !1 }; - o.push(u.data); + o.push(l.data); } return { valid: !0, data: o }; } else @@ -6697,8 +6697,8 @@ class Vt extends $ { const { status: r, ctx: n } = this._processInputParams(e), o = (a, i) => { if (pn(a) || pn(i)) return I; - const c = mn(a.value, i.value); - return c.valid ? ((hn(a) || hn(i)) && r.dirty(), { status: r.value, value: c.data }) : (b(n, { + const c = hn(a.value, i.value); + return c.valid ? ((mn(a) || mn(i)) && r.dirty(), { status: r.value, value: c.data }) : (b(n, { code: g.invalid_intersection_types }), I); }; @@ -6755,8 +6755,8 @@ class Oe extends $ { type: "array" }), r.dirty()); const a = [...n.data].map((i, c) => { - const u = this._def.items[c] || this._def.rest; - return u ? u._parse(new Re(n, i, n.path, c)) : null; + const l = this._def.items[c] || this._def.rest; + return l ? l._parse(new Re(n, i, n.path, c)) : null; }).filter((i) => !!i); return n.common.async ? Promise.all(a).then((i) => Q.mergeArray(r, i)) : Q.mergeArray(r, a); } @@ -6836,28 +6836,28 @@ class Ar extends $ { expected: w.map, received: n.parsedType }), I; - const o = this._def.keyType, a = this._def.valueType, i = [...n.data.entries()].map(([c, u], l) => ({ - key: o._parse(new Re(n, c, n.path, [l, "key"])), - value: a._parse(new Re(n, u, n.path, [l, "value"])) + const o = this._def.keyType, a = this._def.valueType, i = [...n.data.entries()].map(([c, l], u) => ({ + key: o._parse(new Re(n, c, n.path, [u, "key"])), + value: a._parse(new Re(n, l, n.path, [u, "value"])) })); if (n.common.async) { const c = /* @__PURE__ */ new Map(); return Promise.resolve().then(async () => { - for (const u of i) { - const l = await u.key, d = await u.value; - if (l.status === "aborted" || d.status === "aborted") + for (const l of i) { + const u = await l.key, d = await l.value; + if (u.status === "aborted" || d.status === "aborted") return I; - (l.status === "dirty" || d.status === "dirty") && r.dirty(), c.set(l.value, d.value); + (u.status === "dirty" || d.status === "dirty") && r.dirty(), c.set(u.value, d.value); } return { status: r.value, value: c }; }); } else { const c = /* @__PURE__ */ new Map(); - for (const u of i) { - const l = u.key, d = u.value; - if (l.status === "aborted" || d.status === "aborted") + for (const l of i) { + const u = l.key, d = l.value; + if (u.status === "aborted" || d.status === "aborted") return I; - (l.status === "dirty" || d.status === "dirty") && r.dirty(), c.set(l.value, d.value); + (u.status === "dirty" || d.status === "dirty") && r.dirty(), c.set(u.value, d.value); } return { status: r.value, value: c }; } @@ -6869,7 +6869,7 @@ Ar.create = (t, e, r) => new Ar({ typeName: A.ZodMap, ...C(r) }); -class ht extends $ { +class mt extends $ { _parse(e) { const { status: r, ctx: n } = this._processInputParams(e); if (n.parsedType !== w.set) @@ -6895,28 +6895,28 @@ class ht extends $ { message: o.maxSize.message }), r.dirty()); const a = this._def.valueType; - function i(u) { - const l = /* @__PURE__ */ new Set(); - for (const d of u) { + function i(l) { + const u = /* @__PURE__ */ new Set(); + for (const d of l) { if (d.status === "aborted") return I; - d.status === "dirty" && r.dirty(), l.add(d.value); + d.status === "dirty" && r.dirty(), u.add(d.value); } - return { status: r.value, value: l }; + return { status: r.value, value: u }; } - const c = [...n.data.values()].map((u, l) => a._parse(new Re(n, u, n.path, l))); - return n.common.async ? Promise.all(c).then((u) => i(u)) : i(c); + const c = [...n.data.values()].map((l, u) => a._parse(new Re(n, l, n.path, u))); + return n.common.async ? Promise.all(c).then((l) => i(l)) : i(c); } min(e, r) { - return new ht({ + return new mt({ ...this._def, - minSize: { value: e, message: S.toString(r) } + minSize: { value: e, message: E.toString(r) } }); } max(e, r) { - return new ht({ + return new mt({ ...this._def, - maxSize: { value: e, message: S.toString(r) } + maxSize: { value: e, message: E.toString(r) } }); } size(e, r) { @@ -6926,7 +6926,7 @@ class ht extends $ { return this.min(1, e); } } -ht.create = (t, e) => new ht({ +mt.create = (t, e) => new mt({ valueType: t, minSize: null, maxSize: null, @@ -6945,56 +6945,56 @@ class xt extends $ { expected: w.function, received: r.parsedType }), I; - function n(c, u) { + function n(c, l) { return xr({ data: c, path: r.path, errorMaps: [ r.common.contextualErrorMap, r.schemaErrorMap, - Sr(), + Er(), Tt - ].filter((l) => !!l), + ].filter((u) => !!u), issueData: { code: g.invalid_arguments, - argumentsError: u + argumentsError: l } }); } - function o(c, u) { + function o(c, l) { return xr({ data: c, path: r.path, errorMaps: [ r.common.contextualErrorMap, r.schemaErrorMap, - Sr(), + Er(), Tt - ].filter((l) => !!l), + ].filter((u) => !!u), issueData: { code: g.invalid_return_type, - returnTypeError: u + returnTypeError: l } }); } const a = { errorMap: r.common.contextualErrorMap }, i = r.data; if (this._def.returns instanceof It) { const c = this; - return ae(async function(...u) { - const l = new fe([]), d = await c._def.args.parseAsync(u, a).catch((p) => { - throw l.addIssue(n(u, p)), l; + return ae(async function(...l) { + const u = new fe([]), d = await c._def.args.parseAsync(l, a).catch((p) => { + throw u.addIssue(n(l, p)), u; }), f = await Reflect.apply(i, this, d); return await c._def.returns._def.type.parseAsync(f, a).catch((p) => { - throw l.addIssue(o(f, p)), l; + throw u.addIssue(o(f, p)), u; }); }); } else { const c = this; - return ae(function(...u) { - const l = c._def.args.safeParse(u, a); - if (!l.success) - throw new fe([n(u, l.error)]); - const d = Reflect.apply(i, this, l.data), f = c._def.returns.safeParse(d, a); + return ae(function(...l) { + const u = c._def.args.safeParse(l, a); + if (!u.success) + throw new fe([n(l, u.error)]); + const d = Reflect.apply(i, this, u.data), f = c._def.returns.safeParse(d, a); if (!f.success) throw new fe([o(d, f.error)]); return f.data; @@ -7215,12 +7215,12 @@ class Ae extends $ { return Promise.resolve(i).then(async (c) => { if (r.value === "aborted") return I; - const u = await this._def.schema._parseAsync({ + const l = await this._def.schema._parseAsync({ data: c, path: n.path, parent: n }); - return u.status === "aborted" ? I : u.status === "dirty" || r.value === "dirty" ? wt(u.value) : u; + return l.status === "aborted" ? I : l.status === "dirty" || r.value === "dirty" ? wt(l.value) : l; }); { if (r.value === "aborted") @@ -7235,10 +7235,10 @@ class Ae extends $ { } if (o.type === "refinement") { const i = (c) => { - const u = o.refinement(c, a); + const l = o.refinement(c, a); if (n.common.async) - return Promise.resolve(u); - if (u instanceof Promise) + return Promise.resolve(l); + if (l instanceof Promise) throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead."); return c; }; @@ -7460,8 +7460,8 @@ function Ds(t, e = {}, r) { return t ? At.create().superRefine((n, o) => { var a, i; if (!t(n)) { - const c = typeof e == "function" ? e(n) : typeof e == "string" ? { message: e } : e, u = (i = (a = c.fatal) !== null && a !== void 0 ? a : r) !== null && i !== void 0 ? i : !0, l = typeof c == "string" ? { message: c } : c; - o.addIssue({ code: "custom", ...l, fatal: u }); + const c = typeof e == "function" ? e(n) : typeof e == "string" ? { message: e } : e, l = (i = (a = c.fatal) !== null && a !== void 0 ? a : r) !== null && i !== void 0 ? i : !0, u = typeof c == "string" ? { message: c } : c; + o.addIssue({ code: "custom", ...u, fatal: l }); } }) : At.create(); } @@ -7474,7 +7474,7 @@ var A; })(A || (A = {})); const Vc = (t, e = { message: `Input not instance of ${t.name}` -}) => Ds((r) => r instanceof t, e), Us = ke.create, js = Xe.create, Wc = Ir.create, qc = Qe.create, Zs = zt.create, Kc = pt.create, Yc = Pr.create, Jc = Gt.create, Xc = Bt.create, Qc = At.create, el = dt.create, tl = je.create, rl = Tr.create, nl = Te.create, ol = U.create, sl = U.strictCreate, al = Ht.create, il = Zr.create, cl = Vt.create, ll = Oe.create, ul = Wt.create, dl = Ar.create, fl = ht.create, pl = xt.create, hl = qt.create, ml = Kt.create, gl = et.create, yl = Yt.create, vl = It.create, bo = Ae.create, _l = Ne.create, bl = tt.create, wl = Ae.createWithPreprocess, El = sr.create, Sl = () => Us().optional(), xl = () => js().optional(), kl = () => Zs().optional(), Pl = { +}) => Ds((r) => r instanceof t, e), Us = ke.create, js = Xe.create, Wc = Ir.create, qc = Qe.create, Zs = zt.create, Kc = pt.create, Yc = Pr.create, Jc = Gt.create, Xc = Bt.create, Qc = At.create, el = dt.create, tl = je.create, rl = Tr.create, nl = Te.create, ol = U.create, sl = U.strictCreate, al = Ht.create, il = Zr.create, cl = Vt.create, ll = Oe.create, ul = Wt.create, dl = Ar.create, fl = mt.create, pl = xt.create, ml = qt.create, hl = Kt.create, gl = et.create, yl = Yt.create, vl = It.create, bo = Ae.create, _l = Ne.create, bl = tt.create, wl = Ae.createWithPreprocess, Sl = sr.create, El = () => Us().optional(), xl = () => js().optional(), kl = () => Zs().optional(), Pl = { string: (t) => ke.create({ ...t, coerce: !0 }), number: (t) => Xe.create({ ...t, coerce: !0 }), boolean: (t) => zt.create({ @@ -7488,7 +7488,7 @@ var Z = /* @__PURE__ */ Object.freeze({ __proto__: null, defaultErrorMap: Tt, setErrorMap: Tc, - getErrorMap: Sr, + getErrorMap: Er, makeIssue: xr, EMPTY_PATH: Ac, addIssueToContext: b, @@ -7497,7 +7497,7 @@ var Z = /* @__PURE__ */ Object.freeze({ DIRTY: wt, OK: ae, isAborted: pn, - isDirty: hn, + isDirty: mn, isValid: jt, isAsync: Zt, get util() { @@ -7530,7 +7530,7 @@ var Z = /* @__PURE__ */ Object.freeze({ ZodTuple: Oe, ZodRecord: Wt, ZodMap: Ar, - ZodSet: ht, + ZodSet: mt, ZodFunction: xt, ZodLazy: qt, ZodLiteral: Kt, @@ -7567,8 +7567,8 @@ var Z = /* @__PURE__ */ Object.freeze({ function: pl, instanceof: Vc, intersection: cl, - lazy: hl, - literal: ml, + lazy: ml, + literal: hl, map: dl, nan: Wc, nativeEnum: yl, @@ -7580,8 +7580,8 @@ var Z = /* @__PURE__ */ Object.freeze({ oboolean: kl, onumber: xl, optional: _l, - ostring: Sl, - pipeline: El, + ostring: El, + pipeline: Sl, preprocess: wl, promise: vl, record: ul, @@ -7607,20 +7607,20 @@ const Al = Z.object({ function Il(t, e, r, n) { const o = document.createElement("plugin-modal"); o.setTheme(r); - const a = 200, i = 200, c = 335, u = 590, l = { + const a = 200, i = 200, c = 335, l = 590, u = { blockStart: 40, inlineEnd: 320 }; o.style.setProperty( "--modal-block-start", - `${l.blockStart}px` + `${u.blockStart}px` ), o.style.setProperty( "--modal-inline-end", - `${l.inlineEnd}px` + `${u.inlineEnd}px` ); - const d = window.innerWidth - l.inlineEnd, f = window.innerHeight - l.blockStart; - let h = Math.min((n == null ? void 0 : n.width) || c, d), p = Math.min((n == null ? void 0 : n.height) || u, f); - return h = Math.max(h, a), p = Math.max(p, i), o.setAttribute("title", t), o.setAttribute("iframe-src", e), o.setAttribute("width", String(h)), o.setAttribute("height", String(p)), document.body.appendChild(o), o; + const d = window.innerWidth - u.inlineEnd, f = window.innerHeight - u.blockStart; + let m = Math.min((n == null ? void 0 : n.width) || c, d), p = Math.min((n == null ? void 0 : n.height) || l, f); + return m = Math.max(m, a), p = Math.max(p, i), o.setAttribute("title", t), o.setAttribute("iframe-src", e), o.setAttribute("width", String(m)), o.setAttribute("height", String(p)), document.body.appendChild(o), o; } const Cl = Z.function().args( Z.string(), @@ -7636,11 +7636,11 @@ const Cl = Z.function().args( description: Z.string().max(200).optional(), permissions: Z.array( Z.enum([ - "page:read", - "page:write", - "file:read", - "file:write", - "selection:read" + "content:read", + "content:write", + "library:read", + "library:write", + "user:read" ]) ) }); @@ -7673,8 +7673,12 @@ const gn = [ let yn = [], vn = /* @__PURE__ */ new Set([]); const Ft = /* @__PURE__ */ new Map(); window.addEventListener("message", (t) => { - for (const e of yn) - e(t.data); + try { + for (const e of yn) + e(t.data); + } catch (e) { + console.error(e); + } }); function Ol(t, e) { t === "themechange" && vn.forEach((n) => { @@ -7691,14 +7695,14 @@ function Ml(t, e) { }; return { ui: { - open: (i, c, u) => { - const l = t.getTheme(); + open: (i, c, l) => { + const u = t.getTheme(); r = Cl( i, zs(e.host, c), - l, - u - ), r.setTheme(l), r.addEventListener("close", n, { + u, + l + ), r.setTheme(u), r.addEventListener("close", n, { once: !0 }), vn.add(r); }, @@ -7750,87 +7754,102 @@ function Ml(t, e) { }, closePlugin: n, on(i, c) { - Z.enum(gn).parse(i), Z.function().parse(c), i === "pagechange" ? o("page:read") : i === "filechange" ? o("file:read") : i === "selectionchange" && o("selection:read"); - const u = Ft.get(i) || []; - u.push(c), Ft.set(i, u); + Z.enum(gn).parse(i), Z.function().parse(c), o("content:read"); + const l = Ft.get(i) || []; + l.push(c), Ft.set(i, l); }, off(i, c) { Z.enum(gn).parse(i), Z.function().parse(c); - const u = Ft.get(i) || []; + const l = Ft.get(i) || []; Ft.set( i, - u.filter((l) => l !== c) + l.filter((u) => u !== c) ); }, // Penpot State API get root() { - return o("page:read"), t.root; + return o("content:read"), t.root; }, get currentPage() { - return o("page:read"), t.currentPage; + return o("content:read"), t.currentPage; }, get selection() { - return o("selection:read"), t.selection; + return o("content:read"), t.selection; }, get viewport() { return t.viewport; }, get library() { - return t.library; + return o("library:read"), t.library; }, get fonts() { - return t.fonts; + return o("content:read"), t.fonts; }, get currentUser() { - return t.currentUser; + return o("user:read"), t.currentUser; }, get activeUsers() { - return t.activeUsers; + return o("user:read"), t.activeUsers; }, getFile() { - return o("file:read"), t.getFile(); + return o("content:read"), t.getFile(); }, getPage() { - return o("page:read"), t.getPage(); + return o("content:read"), t.getPage(); }, getSelected() { - return o("selection:read"), t.getSelected(); + return o("content:read"), t.getSelected(); }, getSelectedShapes() { - return o("selection:read"), t.getSelectedShapes(); + return o("content:read"), t.getSelectedShapes(); + }, + shapesColors(i) { + return o("content:read"), t.shapesColors(i); + }, + replaceColor(i, c, l) { + return o("content:write"), t.replaceColor(i, c, l); }, getTheme() { return t.getTheme(); }, createFrame() { - return t.createFrame(); + return o("content:write"), t.createFrame(); }, createRectangle() { - return t.createRectangle(); + return o("content:write"), t.createRectangle(); }, createEllipse() { - return t.createEllipse(); + return o("content:write"), t.createEllipse(); }, createText(i) { - return t.createText(i); + return o("content:write"), t.createText(i); }, createPath() { - return t.createPath(); + return o("content:write"), t.createPath(); }, createBoolean(i, c) { - return t.createBoolean(i, c); + return o("content:write"), t.createBoolean(i, c); }, createShapeFromSvg(i) { - return t.createShapeFromSvg(i); + return o("content:write"), t.createShapeFromSvg(i); }, group(i) { - return t.group(i); + return o("content:write"), t.group(i); }, ungroup(i, ...c) { - t.ungroup(i, ...c); + o("content:write"), t.ungroup(i, ...c); }, uploadMediaUrl(i, c) { - return t.uploadMediaUrl(i, c); + return o("content:write"), t.uploadMediaUrl(i, c); + }, + uploadMediaData(i, c, l) { + return o("content:write"), t.uploadMediaData(i, c, l); + }, + generateMarkup(i, c) { + return o("content:read"), t.generateMarkup(i, c); + }, + generateStyle(i, c) { + return o("content:read"), t.generateStyle(i, c); } }; } @@ -7891,10 +7910,10 @@ repairIntrinsics({ errorTaming: "unsafe", consoleTaming: "unsafe" }); -const Eo = globalThis; -Eo.initPluginsRuntime = (t) => { +const So = globalThis; +So.initPluginsRuntime = (t) => { try { - console.log("%c[PLUGINS] Initialize runtime", "color: #008d7c"), Fl(t), Eo.ɵcontext = t("TEST"), globalThis.ɵloadPlugin = Gs, globalThis.ɵloadPluginByUrl = Dl; + console.log("%c[PLUGINS] Initialize runtime", "color: #008d7c"), Fl(t), So.ɵcontext = t("TEST"), globalThis.ɵloadPlugin = Gs, globalThis.ɵloadPluginByUrl = Dl; } catch (e) { console.error(e); } From f05113709884c6a588466940d2926a93645a9530 Mon Sep 17 00:00:00 2001 From: Alejandro Alonso Date: Tue, 2 Jul 2024 12:11:22 +0200 Subject: [PATCH 304/476] :sparkles: Add extra info to create team response --- backend/src/app/rpc/commands/teams.clj | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/backend/src/app/rpc/commands/teams.clj b/backend/src/app/rpc/commands/teams.clj index 52353de244..f30bc8870e 100644 --- a/backend/src/app/rpc/commands/teams.clj +++ b/backend/src/app/rpc/commands/teams.clj @@ -357,10 +357,12 @@ ::quotes/profile-id profile-id}) (let [features (-> (cfeat/get-enabled-features cf/flags) - (cfeat/check-client-features! (:features params)))] - (create-team cfg (assoc params - :profile-id profile-id - :features features)))))) + (cfeat/check-client-features! (:features params))) + team (create-team cfg (assoc params + :profile-id profile-id + :features features))] + (with-meta team + {::audit/props {:id (:id team)}}))))) (defn create-team "This is a complete team creation process, it creates the team From 139dd7d80f78c120ac3034ee054431424f76ef11 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Thu, 13 Jun 2024 11:45:01 +0200 Subject: [PATCH 305/476] :tada: Add new translations management script --- frontend/package.json | 1 + frontend/scripts/translations.js | 377 ++++++++++++++++++ frontend/scripts/validate-translations.js | 31 -- frontend/src/app/main/ui/auth/register.cljs | 9 +- frontend/src/app/main/ui/confirm.cljs | 10 +- frontend/src/app/main/ui/dashboard/fonts.cljs | 2 +- .../app/main/ui/dashboard/placeholder.cljs | 4 +- frontend/src/app/main/ui/dashboard/team.cljs | 8 +- frontend/src/app/main/ui/export.cljs | 12 +- frontend/src/app/main/ui/settings.cljs | 14 +- .../src/app/main/ui/settings/password.cljs | 22 +- .../src/app/main/ui/settings/sidebar.cljs | 5 +- .../ui/viewer/inspect/attributes/text.cljs | 16 +- .../main/ui/viewer/inspect/right_sidebar.cljs | 24 +- .../app/main/ui/workspace/context_menu.cljs | 2 +- .../ui/workspace/sidebar/assets/common.cljs | 18 +- .../main/ui/workspace/sidebar/history.cljs | 94 ++--- .../sidebar/options/menus/component.cljs | 10 +- .../main/ui/workspace/sidebar/shortcuts.cljs | 298 +++++++------- .../main/ui/workspace/viewport/top_bar.cljs | 5 +- frontend/src/app/util/i18n.cljs | 15 +- frontend/yarn.lock | 8 + 22 files changed, 677 insertions(+), 308 deletions(-) create mode 100755 frontend/scripts/translations.js delete mode 100644 frontend/scripts/validate-translations.js diff --git a/frontend/package.json b/frontend/package.json index e716c82fb9..56835d5110 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -55,6 +55,7 @@ "draft-js": "git+https://github.com/penpot/draft-js.git#commit=4a99b2a6020b2af97f6dc5fa1b4275ec16b559a0", "express": "^4.19.2", "fancy-log": "^2.0.0", + "getopts": "^2.3.0", "gettext-parser": "^8.0.0", "gulp": "4.0.2", "gulp-concat": "^2.6.1", diff --git a/frontend/scripts/translations.js b/frontend/scripts/translations.js new file mode 100755 index 0000000000..a781a45d8c --- /dev/null +++ b/frontend/scripts/translations.js @@ -0,0 +1,377 @@ +#!/usr/bin/env node + +import getopts from "getopts"; +import { promises as fs, createReadStream } from "fs"; +import gt from "gettext-parser"; +import l from "lodash"; +import path from "path"; +import readline from "readline"; + +const baseLocale = "en"; + +async function* getFiles(dir) { + // console.log("getFiles", dir) + const dirents = await fs.readdir(dir, { withFileTypes: true }); + for (const dirent of dirents) { + let res = path.resolve(dir, dirent.name); + res = path.relative(".", res); + + if (dirent.isDirectory()) { + yield* getFiles(res); + } else { + yield res; + } + } +} + +async function translationExists(locale) { + const target = path.normalize("./translations/"); + const targetPath = path.join(target, `${locale}.po`); + + try { + const result = await fs.stat(targetPath); + return true; + } catch (cause) { + return false; + } +} + +async function readLocaleByPath(path) { + const content = await fs.readFile(path); + return gt.po.parse(content, "utf-8"); +} + +async function writeLocaleByPath(path, data) { + const buff = gt.po.compile(data, { sort: true }); + await fs.writeFile(path, buff); +} + +async function readLocale(locale) { + const target = path.normalize("./translations/"); + const targetPath = path.join(target, `${locale}.po`); + return readLocaleByPath(targetPath); +} + +async function writeLocale(locale, data) { + const target = path.normalize("./translations/"); + const targetPath = path.join(target, `${locale}.po`); + return writeLocaleByPath(targetPath, data); +} + +async function* scanLocales() { + const fileRe = /.+\.po$/; + const target = path.normalize("./translations/"); + const parent = path.join(target, ".."); + + for await (const f of getFiles(target)) { + if (!fileRe.test(f)) continue; + const data = path.parse(f); + yield data; + } +} + +async function processLocale(options, f) { + let locales = options.locale; + if (typeof locales === "string") { + locales = locales.split(/,/); + } else if (Array.isArray(locales)) { + } else if (locales === undefined) { + } else { + console.error(`Invalid value found on locales parameter: '${locales}'`); + process.exit(-1); + } + + for await (const { name } of scanLocales()) { + if (locales === undefined || locales.includes(name)) { + await f(name); + } + } +} + +async function processTranslation(data, prefix, f) { + for (let key of Object.keys(data.translations[""])) { + if (key === prefix || key.startsWith(prefix)) { + let value = data.translations[""][key]; + value = await f(value); + data.translations[""][key] = value; + } + } + return data; +} + +async function* readLines(filePath) { + const fileStream = createReadStream(filePath); + + const reader = readline.createInterface({ + input: fileStream, + crlfDelay: Infinity, + }); + + let counter = 1; + + for await (const line of reader) { + yield [counter, line]; + counter++; + } +} + +const trRe1 = /\(tr\s+"([\w\.\-]+)"/g; + +function getTranslationStrings(line) { + const result = Array.from(line.matchAll(trRe1)).map((match) => { + return match[1]; + }); + + return result; +} + +async function deleteByPrefix(options, prefix, ...params) { + if (!prefix) { + console.error(`Prefix undefined`); + process.exit(1); + } + + await processLocale(options, async (locale) => { + const data = await readLocale(locale); + let deleted = []; + + for (const [key, value] of Object.entries(data.translations[""])) { + if (key.startsWith(prefix)) { + delete data.translations[""][key]; + deleted.push(key); + } + } + + await writeLocale(locale, data); + + console.log( + `=> Processed locale '${locale}': deleting prefix '${prefix}' (deleted=${deleted.length})`, + ); + + if (options.verbose) { + for (let key of deleted) { + console.log(`-> Deleted key: ${key}`); + } + } + }); +} + +async function markFuzzy(options, prefix, ...other) { + if (!prefix) { + console.error(`Prefix undefined`); + process.exit(1); + } + + await processLocale(options, async (locale) => { + let data = await readLocale(locale); + data = await processTranslation(data, prefix, (translation) => { + if (translation.comments === undefined) { + translation.comments = {}; + } + + const flagData = translation.comments.flag ?? ""; + const flags = flagData.split(/\s*,\s*/).filter((s) => s !== ""); + + if (!flags.includes("fuzzy")) { + flags.push("fuzzy"); + } + + translation.comments.flag = flags.join(", "); + + console.log( + `=> Processed '${locale}': marking fuzzy '${translation.msgid}'`, + ); + + return translation; + }); + + await writeLocale(locale, data); + }); +} + +async function rehash(options, ...other) { + const fileRe = /.+\.(?:clj|cljs|cljc)$/; + + // Iteration 1: process all locales and update it with existing + // entries on the source code. + + const used = await (async function () { + const result = {}; + + for await (const f of getFiles("src")) { + if (!fileRe.test(f)) continue; + + for await (const [n, line] of readLines(f)) { + const strings = getTranslationStrings(line); + + strings.forEach((key) => { + const entry = `${f}:${n}`; + if (result[key] !== undefined) { + result[key].push(entry); + } else { + result[key] = [entry]; + } + }); + } + } + + await processLocale({ locale: baseLocale }, async (locale) => { + const data = await readLocale(locale); + + for (let [key, val] of Object.entries(result)) { + let entry = data.translations[""][key]; + + if (entry === undefined) { + entry = { + msgid: key, + comments: { + reference: val.join(", "), + flag: "fuzzy", + }, + msgstr: [""], + }; + } else { + if (entry.comments === undefined) { + entry.comments = {}; + } + + entry.comments.reference = val.join(", "); + + const flagData = entry.comments.flag ?? ""; + const flags = flagData.split(/\s*,\s*/).filter((s) => s !== ""); + + if (flags.includes("unused")) { + flags = flags.filter((o) => o !== "unused"); + } + + entry.comments.flag = flags.join(", "); + } + + data.translations[""][key] = entry; + } + + await writeLocale(locale, data); + + const keys = Object.keys(data.translations[""]); + console.log(`=> Found ${keys.length} used translations`); + }); + + return result; + })(); + + // Iteration 2: process only base locale and properly detect unused + // translation strings. + + await (async function () { + let totalUnused = 0; + + await processLocale({ locale: baseLocale }, async (locale) => { + const data = await readLocale(locale); + + for (let [key, val] of Object.entries(data.translations[""])) { + if (key === "") continue; + + if (!used.hasOwnProperty(key)) { + totalUnused++; + + const entry = data.translations[""][key]; + if (entry.comments === undefined) { + entry.comments = {}; + } + + const flagData = entry.comments.flag ?? ""; + const flags = flagData.split(/\s*,\s*/).filter((s) => s !== ""); + + if (!flags.includes("unused")) { + flags.push("unused"); + } + + entry.comments.flag = flags.join(", "); + + data.translations[""][key] = entry; + } + } + + await writeLocale(locale, data); + }); + + console.log(`=> Found ${totalUnused} unused strings`); + })(); +} + +async function synchronize(options, ...other) { + const baseData = await readLocale(baseLocale); + + await processLocale(options, async (locale) => { + if (locale === baseLocale) return; + + const data = await readLocale(locale); + + for (let [key, val] of Object.entries(baseData.translations[""])) { + if (key === "") continue; + + const baseEntry = baseData.translations[""][key]; + const entry = data.translations[""][key]; + + if (entry === undefined) { + // Do nothing + } else { + entry.comments = baseEntry.comments; + data.translations[""][key] = entry; + } + } + + for (let [key, val] of Object.entries(data.translations[""])) { + if (key === "") continue; + + const baseEntry = baseData.translations[""][key]; + const entry = data.translations[""][key]; + + if (baseEntry === undefined) { + delete data.translations[""][key]; + } + } + + await writeLocale(locale, data); + }); +} + +const options = getopts(process.argv.slice(2), { + boolean: ["h", "v"], + alias: { + help: ["h"], + locale: ["l"], + verbose: ["v"], + }, + stopEarly: true, +}); + +const [command, ...params] = options._; + +if (command === "rehash") { + await rehash(options, ...params); +} else if (command === "sync") { + await synchronize(options, ...params); +} else if (command === "delete") { + await deleteByPrefix(options, ...params); +} else if (command === "fuzzy") { + await markFuzzy(options, ...params); +} else { + console.log(`Translations manipulation script. +How to use: +./scripts/translation.js + +Available options: + + --locale -l : specify a concrete locale + --verbose -v : enables verbose output + --help -h : prints this help + +Available subcommands: + + rehash : reads and writes all translations files, sorting and validating + sync : synchronize baselocale file with all other locale files + delete : delete all entries that matches the prefix + fuzzy : mark as fuzzy all entries that matches the prefix +`); +} diff --git a/frontend/scripts/validate-translations.js b/frontend/scripts/validate-translations.js deleted file mode 100644 index 0fe05e2c9f..0000000000 --- a/frontend/scripts/validate-translations.js +++ /dev/null @@ -1,31 +0,0 @@ -import { promises as fs } from "fs"; -import gt from "gettext-parser"; -import l from "lodash"; -import path from "path"; - -async function* getFiles(dir) { - const dirents = await fs.readdir(dir, { withFileTypes: true }); - for (const dirent of dirents) { - const res = path.resolve(dir, dirent.name); - if (dirent.isDirectory()) { - yield* getFiles(res); - } else { - yield res; - } - } -} - -(async () => { - const fileRe = /.+\.po$/; - const target = path.normalize("./translations/"); - const parent = path.join(target, ".."); - for await (const f of getFiles(target)) { - if (!fileRe.test(f)) continue; - const entry = path.relative(parent, f); - console.log(`=> processing: ${entry}`); - const content = await fs.readFile(f); - const data = gt.po.parse(content, "utf-8"); - const buff = gt.po.compile(data, { sort: true }); - await fs.writeFile(f, buff); - } -})(); diff --git a/frontend/src/app/main/ui/auth/register.cljs b/frontend/src/app/main/ui/auth/register.cljs index 1c1d0c5a16..90daacf1e6 100644 --- a/frontend/src/app/main/ui/auth/register.cljs +++ b/frontend/src/app/main/ui/auth/register.cljs @@ -18,7 +18,7 @@ [app.main.ui.components.forms :as fm] [app.main.ui.components.link :as lk] [app.main.ui.icons :as i] - [app.util.i18n :refer [tr tr-html]] + [app.util.i18n :as i18n :refer [tr]] [app.util.router :as rt] [app.util.storage :as sto] [beicon.v2.core :as rx] @@ -197,10 +197,11 @@ [] (let [terms-label (mf/html - [:& tr-html + [:> i18n/tr-html* {:tag-name "div" - :label "auth.terms-and-privacy-agreement" - :params [cf/terms-of-service-uri cf/privacy-policy-uri]}])] + :content (tr "auth.terms-and-privacy-agreement" + cf/terms-of-service-uri + cf/privacy-policy-uri)}])] [:div {:class (stl/css :fields-row :input-visible :accept-terms-and-privacy-wrapper)} [:& fm/input {:name :accept-terms-and-privacy diff --git a/frontend/src/app/main/ui/confirm.cljs b/frontend/src/app/main/ui/confirm.cljs index 66fd00e925..abb11ea8c7 100644 --- a/frontend/src/app/main/ui/confirm.cljs +++ b/frontend/src/app/main/ui/confirm.cljs @@ -11,7 +11,7 @@ [app.main.store :as st] [app.main.ui.icons :as i] [app.util.dom :as dom] - [app.util.i18n :as i18n :refer [tr t]] + [app.util.i18n :as i18n :refer [tr]] [app.util.keyboard :as k] [goog.events :as events] [rumext.v2 :as mf]) @@ -30,15 +30,13 @@ cancel-label accept-label accept-style] :as props}] - (let [locale (mf/deref i18n/locale) - - on-accept (or on-accept identity) + (let [on-accept (or on-accept identity) on-cancel (or on-cancel identity) - message (or message (t locale "ds.confirm-title")) + message (or message (tr "ds.confirm-title")) cancel-label (or cancel-label (tr "ds.confirm-cancel")) accept-label (or accept-label (tr "ds.confirm-ok")) accept-style (or accept-style :danger) - title (or title (t locale "ds.confirm-title")) + title (or title (tr "ds.confirm-title")) accept-fn (mf/use-callback diff --git a/frontend/src/app/main/ui/dashboard/fonts.cljs b/frontend/src/app/main/ui/dashboard/fonts.cljs index 174b9ecfbd..514be108d5 100644 --- a/frontend/src/app/main/ui/dashboard/fonts.cljs +++ b/frontend/src/app/main/ui/dashboard/fonts.cljs @@ -167,7 +167,7 @@ [:div {:class (stl/css :dashboard-fonts-hero)} [:div {:class (stl/css :desc)} [:h2 (tr "labels.upload-custom-fonts")] - [:& i18n/tr-html {:label "dashboard.fonts.hero-text1"}] + [:> i18n/tr-html* {:content (tr "dashboard.fonts.hero-text1")}] [:button {:class (stl/css :btn-primary) :on-click on-click diff --git a/frontend/src/app/main/ui/dashboard/placeholder.cljs b/frontend/src/app/main/ui/dashboard/placeholder.cljs index 08798b7076..15cb2d98d3 100644 --- a/frontend/src/app/main/ui/dashboard/placeholder.cljs +++ b/frontend/src/app/main/ui/dashboard/placeholder.cljs @@ -12,7 +12,7 @@ [rumext.v2 :as mf])) (mf/defc empty-placeholder - [{:keys [dragging? limit origin create-fn] :as props}] + [{:keys [dragging? limit origin create-fn]}] (let [on-click (mf/use-fn (mf/deps create-fn) @@ -29,7 +29,7 @@ [:div {:class (stl/css :grid-empty-placeholder :libs) :data-testid "empty-placeholder"} [:div {:class (stl/css :text)} - [:& i18n/tr-html {:label "dashboard.empty-placeholder-drafts"}]]] + [:> i18n/tr-html* {:content (tr "dashboard.empty-placeholder-drafts")}]]] :else [:div diff --git a/frontend/src/app/main/ui/dashboard/team.cljs b/frontend/src/app/main/ui/dashboard/team.cljs index e3d19a10e0..0d78ee520c 100644 --- a/frontend/src/app/main/ui/dashboard/team.cljs +++ b/frontend/src/app/main/ui/dashboard/team.cljs @@ -693,8 +693,8 @@ [:div {:class (stl/css :empty-invitations)} [:span (tr "labels.no-invitations")] (when can-invite? - [:& i18n/tr-html {:label "labels.no-invitations-hint" - :tag-name "span"}])]) + [:> i18n/tr-html* {:content (tr "labels.no-invitations-hint") + :tag-name "span"}])]) (mf/defc invitation-section [{:keys [team invitations] :as props}] @@ -878,8 +878,8 @@ [:div {:class (stl/css :webhooks-hero-container)} [:h2 {:class (stl/css :hero-title)} (tr "labels.webhooks")] - [:& i18n/tr-html {:class (stl/css :hero-desc) - :label "dashboard.webhooks.description"}] + [:> i18n/tr-html* {:class (stl/css :hero-desc) + :content (tr "dashboard.webhooks.description")}] [:button {:class (stl/css :hero-btn) :on-click #(st/emit! (modal/show :webhook {}))} (tr "dashboard.webhooks.create")]]) diff --git a/frontend/src/app/main/ui/export.cljs b/frontend/src/app/main/ui/export.cljs index c13b074a4e..f1c0a004b1 100644 --- a/frontend/src/app/main/ui/export.cljs +++ b/frontend/src/app/main/ui/export.cljs @@ -432,12 +432,12 @@ [:label {:for (str "export-" type) :class (stl/css-case :global/checked (= selected type))} ;; Execution time translation strings: - ;; dashboard.export.options.all.message - ;; dashboard.export.options.all.title - ;; dashboard.export.options.detach.message - ;; dashboard.export.options.detach.title - ;; dashboard.export.options.merge.message - ;; dashboard.export.options.merge.title + ;; (tr "dashboard.export.options.all.message") + ;; (tr "dashboard.export.options.all.title") + ;; (tr "dashboard.export.options.detach.message") + ;; (tr "dashboard.export.options.detach.title") + ;; (tr "dashboard.export.options.merge.message") + ;; (tr "dashboard.export.options.merge.title") [:span {:class (stl/css-case :global/checked (= selected type))} (when (= selected type) i/status-tick)] diff --git a/frontend/src/app/main/ui/settings.cljs b/frontend/src/app/main/ui/settings.cljs index 04a9a08f20..ce6099c884 100644 --- a/frontend/src/app/main/ui/settings.cljs +++ b/frontend/src/app/main/ui/settings.cljs @@ -33,18 +33,16 @@ (mf/defc settings [{:keys [route] :as props}] (let [section (get-in route [:data :name]) - profile (mf/deref refs/profile) - locale (mf/deref i18n/locale)] + profile (mf/deref refs/profile)] (hooks/use-shortcuts ::dashboard sc/shortcuts) - (mf/use-effect - #(when (nil? profile) + (mf/with-effect [profile] + (when (nil? profile) (st/emit! (rt/nav :auth-login)))) [:section {:class (stl/css :dashboard-layout-refactor :dashboard)} [:& sidebar {:profile profile - :locale locale :section section}] [:div {:class (stl/css :dashboard-content)} @@ -52,16 +50,16 @@ [:section {:class (stl/css :dashboard-container)} (case section :settings-profile - [:& profile-page {:locale locale}] + [:& profile-page] :settings-feedback [:& feedback-page] :settings-password - [:& password-page {:locale locale}] + [:& password-page] :settings-options - [:& options-page {:locale locale}] + [:& options-page] :settings-access-tokens [:& access-tokens-page])]]])) diff --git a/frontend/src/app/main/ui/settings/password.cljs b/frontend/src/app/main/ui/settings/password.cljs index bceecf29f3..3f3a4ca72f 100644 --- a/frontend/src/app/main/ui/settings/password.cljs +++ b/frontend/src/app/main/ui/settings/password.cljs @@ -13,7 +13,7 @@ [app.main.store :as st] [app.main.ui.components.forms :as fm] [app.util.dom :as dom] - [app.util.i18n :as i18n :refer [t tr]] + [app.util.i18n :as i18n :refer [tr]] [cljs.spec.alpha :as s] [rumext.v2 :as mf])) @@ -69,7 +69,7 @@ ::password-old])) (mf/defc password-form - [{:keys [locale] :as props}] + [] (let [initial (mf/use-memo (constantly {:password-old nil})) form (fm/use-form :spec ::password-form :validators [(fm/validate-not-all-spaces :password-old (tr "auth.password-not-empty")) @@ -86,35 +86,35 @@ {:type "password" :name :password-old :auto-focus? true - :label (t locale "labels.old-password")}]] + :label (tr "labels.old-password")}]] [:div {:class (stl/css :fields-row)} [:& fm/input {:type "password" :name :password-1 :show-success? true - :label (t locale "labels.new-password")}]] + :label (tr "labels.new-password")}]] [:div {:class (stl/css :fields-row)} [:& fm/input {:type "password" :name :password-2 :show-success? true - :label (t locale "labels.confirm-password")}]] + :label (tr "labels.confirm-password")}]] [:> fm/submit-button* - {:label (t locale "dashboard.password-change") + {:label (tr "dashboard.password-change") :data-testid "submit-password" :class (stl/css :update-btn)}]])) ;; --- Password Page (mf/defc password-page - [{:keys [locale]}] - (mf/use-effect - #(dom/set-html-title (tr "title.settings.password"))) + [] + (mf/with-effect [] + (dom/set-html-title (tr "title.settings.password"))) [:section {:class (stl/css :dashboard-settings)} [:div {:class (stl/css :form-container)} - [:h2 (t locale "dashboard.password-change")] - [:& password-form {:locale locale}]]]) + [:h2 (tr "dashboard.password-change")] + [:& password-form]]]) diff --git a/frontend/src/app/main/ui/settings/sidebar.cljs b/frontend/src/app/main/ui/settings/sidebar.cljs index 7fbe6021fe..651129a363 100644 --- a/frontend/src/app/main/ui/settings/sidebar.cljs +++ b/frontend/src/app/main/ui/settings/sidebar.cljs @@ -115,10 +115,9 @@ (mf/defc sidebar {::mf/wrap [mf/memo] ::mf/props :obj} - [{:keys [profile locale section]}] + [{:keys [profile section]}] [:div {:class (stl/css :dashboard-sidebar :settings)} [:& sidebar-content {:profile profile :section section}] - [:& profile-section {:profile profile - :locale locale}]]) + [:& profile-section {:profile profile}]]) diff --git a/frontend/src/app/main/ui/viewer/inspect/attributes/text.cljs b/frontend/src/app/main/ui/viewer/inspect/attributes/text.cljs index d2a3eceb85..66cf55eb39 100644 --- a/frontend/src/app/main/ui/viewer/inspect/attributes/text.cljs +++ b/frontend/src/app/main/ui/viewer/inspect/attributes/text.cljs @@ -142,9 +142,9 @@ [:div {:class (stl/css :global/attr-label)} (tr "inspect.attributes.typography.text-decoration")] ;; Execution time translation strings: - ;; inspect.attributes.typography.text-decoration.none - ;; inspect.attributes.typography.text-decoration.strikethrough - ;; inspect.attributes.typography.text-decoration.underline + ;; (tr "inspect.attributes.typography.text-decoration.none") + ;; (tr "inspect.attributes.typography.text-decoration.strikethrough") + ;; (tr "inspect.attributes.typography.text-decoration.underline") [:div {:class (stl/css :global/attr-value)} [:& copy-button {:data (copy-style-data style :text-decoration)} [:div {:class (stl/css :button-children)} @@ -155,11 +155,11 @@ [:div {:class (stl/css :global/attr-label)} (tr "inspect.attributes.typography.text-transform")] ;; Execution time translation strings: - ;; inspect.attributes.typography.text-transform.lowercase - ;; inspect.attributes.typography.text-transform.none - ;; inspect.attributes.typography.text-transform.titlecase - ;; inspect.attributes.typography.text-transform.uppercase - ;; inspect.attributes.typography.text-transform.unset + ;; (tr "inspect.attributes.typography.text-transform.lowercase") + ;; (tr "inspect.attributes.typography.text-transform.none") + ;; (tr "inspect.attributes.typography.text-transform.titlecase") + ;; (tr "inspect.attributes.typography.text-transform.uppercase") + ;; (tr "inspect.attributes.typography.text-transform.unset") [:div {:class (stl/css :global/attr-value)} [:& copy-button {:data (copy-style-data style :text-transform)} [:div {:class (stl/css :button-children)} diff --git a/frontend/src/app/main/ui/viewer/inspect/right_sidebar.cljs b/frontend/src/app/main/ui/viewer/inspect/right_sidebar.cljs index c90ab718a0..fe76cb6f3d 100644 --- a/frontend/src/app/main/ui/viewer/inspect/right_sidebar.cljs +++ b/frontend/src/app/main/ui/viewer/inspect/right_sidebar.cljs @@ -94,18 +94,18 @@ [:* [:span {:class (stl/css :shape-icon)} [:& sir/element-icon {:shape first-shape :main-instance? main-instance?}]] - ;; Execution time translation strings: - ;; inspect.tabs.code.selected.circle - ;; inspect.tabs.code.selected.component - ;; inspect.tabs.code.selected.curve - ;; inspect.tabs.code.selected.frame - ;; inspect.tabs.code.selected.group - ;; inspect.tabs.code.selected.image - ;; inspect.tabs.code.selected.mask - ;; inspect.tabs.code.selected.path - ;; inspect.tabs.code.selected.rect - ;; inspect.tabs.code.selected.svg-raw - ;; inspect.tabs.code.selected.text + ;; Execution time translation strings: + ;; (tr "inspect.tabs.code.selected.circle") + ;; (tr "inspect.tabs.code.selected.component") + ;; (tr "inspect.tabs.code.selected.curve") + ;; (tr "inspect.tabs.code.selected.frame") + ;; (tr "inspect.tabs.code.selected.group") + ;; (tr "inspect.tabs.code.selected.image") + ;; (tr "inspect.tabs.code.selected.mask") + ;; (tr "inspect.tabs.code.selected.path") + ;; (tr "inspect.tabs.code.selected.rect") + ;; (tr "inspect.tabs.code.selected.svg-raw") + ;; (tr "inspect.tabs.code.selected.text") [:span {:class (stl/css :layer-title)} (:name first-shape)]])] [:div {:class (stl/css :inspect-content)} [:& tab-container {:on-change-tab handle-change-tab diff --git a/frontend/src/app/main/ui/workspace/context_menu.cljs b/frontend/src/app/main/ui/workspace/context_menu.cljs index c25d5cdfe6..0d631ac45d 100644 --- a/frontend/src/app/main/ui/workspace/context_menu.cljs +++ b/frontend/src/app/main/ui/workspace/context_menu.cljs @@ -474,7 +474,7 @@ [:& menu-separator] (for [entry components-menu-entries :when (not (nil? entry))] [:& menu-entry {:key (uuid/next) - :title (tr (:msg entry)) + :title (:title entry) :shortcut (when (contains? entry :shortcut) (sc/get-tooltip (:shortcut entry))) :on-click (:action entry)}])])])) diff --git a/frontend/src/app/main/ui/workspace/sidebar/assets/common.cljs b/frontend/src/app/main/ui/workspace/sidebar/assets/common.cljs index 2e247e0f17..25a6252aa2 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/assets/common.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/assets/common.cljs @@ -421,27 +421,27 @@ (ts/schedule 1000 do-show-component))) menu-entries [(when (and (not multi) main-instance?) - {:msg "workspace.shape.menu.show-in-assets" + {:title (tr "workspace.shape.menu.show-in-assets") :action do-show-in-assets}) (when (and (not multi) main-instance? local-component? lacks-annotation? components-v2) - {:msg "workspace.shape.menu.create-annotation" + {:title (tr "workspace.shape.menu.create-annotation") :action do-create-annotation}) (when can-detach? - {:msg (if (> (count copies) 1) - "workspace.shape.menu.detach-instances-in-bulk" - "workspace.shape.menu.detach-instance") + {:title (if (> (count copies) 1) + (tr "workspace.shape.menu.detach-instances-in-bulk") + (tr "workspace.shape.menu.detach-instance")) :action do-detach-component :shortcut :detach-component}) (when can-reset-overrides? - {:msg "workspace.shape.menu.reset-overrides" + {:title (tr "workspace.shape.menu.reset-overrides") :action do-reset-component}) (when (and (seq restorable-copies) components-v2) - {:msg "workspace.shape.menu.restore-main" + {:title (tr "workspace.shape.menu.restore-main") :action do-restore-component}) (when can-show-component? - {:msg "workspace.shape.menu.show-main" + {:title (tr "workspace.shape.menu.show-main") :action do-show-component}) (when can-update-main? - {:msg "workspace.shape.menu.update-main" + {:title (tr "workspace.shape.menu.update-main") :action do-update-component})]] (filter (complement nil?) menu-entries))) diff --git a/frontend/src/app/main/ui/workspace/sidebar/history.cljs b/frontend/src/app/main/ui/workspace/sidebar/history.cljs index cb62682f39..7ea8e22fdb 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/history.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/history.cljs @@ -16,7 +16,7 @@ [app.main.store :as st] [app.main.ui.icons :as i] [app.util.dom :as dom] - [app.util.i18n :refer [t] :as i18n] + [app.util.i18n :refer [tr] :as i18n] [cuerdas.core :as str] [okulary.core :as l] [rumext.v2 :as mf])) @@ -104,49 +104,49 @@ (defn entry-type->message "Formats the message that will be displayed to the user" - [locale type multiple?] + [type multiple?] (let [arity (if multiple? "multiple" "single") attribute (name (or type :multiple))] ;; Execution time translation strings: - ;; workspace.undo.entry.multiple.circle - ;; workspace.undo.entry.multiple.color - ;; workspace.undo.entry.multiple.component - ;; workspace.undo.entry.multiple.curve - ;; workspace.undo.entry.multiple.frame - ;; workspace.undo.entry.multiple.group - ;; workspace.undo.entry.multiple.media - ;; workspace.undo.entry.multiple.multiple - ;; workspace.undo.entry.multiple.page - ;; workspace.undo.entry.multiple.path - ;; workspace.undo.entry.multiple.rect - ;; workspace.undo.entry.multiple.shape - ;; workspace.undo.entry.multiple.text - ;; workspace.undo.entry.multiple.typography - ;; workspace.undo.entry.single.circle - ;; workspace.undo.entry.single.color - ;; workspace.undo.entry.single.component - ;; workspace.undo.entry.single.curve - ;; workspace.undo.entry.single.frame - ;; workspace.undo.entry.single.group - ;; workspace.undo.entry.single.image - ;; workspace.undo.entry.single.media - ;; workspace.undo.entry.single.multiple - ;; workspace.undo.entry.single.page - ;; workspace.undo.entry.single.path - ;; workspace.undo.entry.single.rect - ;; workspace.undo.entry.single.shape - ;; workspace.undo.entry.single.text - ;; workspace.undo.entry.single.typography - (t locale (str/format "workspace.undo.entry.%s.%s" arity attribute)))) + ;; (tr "workspace.undo.entry.multiple.circle") + ;; (tr "workspace.undo.entry.multiple.color") + ;; (tr "workspace.undo.entry.multiple.component") + ;; (tr "workspace.undo.entry.multiple.curve") + ;; (tr "workspace.undo.entry.multiple.frame") + ;; (tr "workspace.undo.entry.multiple.group") + ;; (tr "workspace.undo.entry.multiple.media") + ;; (tr "workspace.undo.entry.multiple.multiple") + ;; (tr "workspace.undo.entry.multiple.page") + ;; (tr "workspace.undo.entry.multiple.path") + ;; (tr "workspace.undo.entry.multiple.rect") + ;; (tr "workspace.undo.entry.multiple.shape") + ;; (tr "workspace.undo.entry.multiple.text") + ;; (tr "workspace.undo.entry.multiple.typography") + ;; (tr "workspace.undo.entry.single.circle") + ;; (tr "workspace.undo.entry.single.color") + ;; (tr "workspace.undo.entry.single.component") + ;; (tr "workspace.undo.entry.single.curve") + ;; (tr "workspace.undo.entry.single.frame") + ;; (tr "workspace.undo.entry.single.group") + ;; (tr "workspace.undo.entry.single.image") + ;; (tr "workspace.undo.entry.single.media") + ;; (tr "workspace.undo.entry.single.multiple") + ;; (tr "workspace.undo.entry.single.page") + ;; (tr "workspace.undo.entry.single.path") + ;; (tr "workspace.undo.entry.single.rect") + ;; (tr "workspace.undo.entry.single.shape") + ;; (tr "workspace.undo.entry.single.text") + ;; (tr "workspace.undo.entry.single.typography") + (tr (str/format "workspace.undo.entry.%s.%s" arity attribute)))) -(defn entry->message [locale entry] - (let [value (entry-type->message locale (:type entry) (= :multiple (:id entry)))] +(defn entry->message [entry] + (let [value (entry-type->message (:type entry) (= :multiple (:id entry)))] (case (:operation entry) - :new (t locale "workspace.undo.entry.new" value) - :modify (t locale "workspace.undo.entry.modify" value) - :delete (t locale "workspace.undo.entry.delete" value) - :move (t locale "workspace.undo.entry.move" value) - (t locale "workspace.undo.entry.unknown" value)))) + :new (tr "workspace.undo.entry.new" value) + :modify (tr "workspace.undo.entry.modify" value) + :delete (tr "workspace.undo.entry.delete" value) + :move (tr "workspace.undo.entry.move" value) + (tr "workspace.undo.entry.unknown" value)))) (defn entry->icon [{:keys [type]}] (case type @@ -284,8 +284,9 @@ nil)])) -(mf/defc history-entry [{:keys [locale entry idx-entry disabled? current?]}] +(mf/defc history-entry {::mf/props :obj} + [{:keys [entry idx-entry disabled? current?]}] (let [hover? (mf/use-state false) show-detail? (mf/use-state false) toggle-show-detail @@ -309,7 +310,7 @@ [:div {:class (stl/css :history-entry-summary)} [:div {:class (stl/css :history-entry-summary-icon)} (entry->icon entry)] - [:div {:class (stl/css :history-entry-summary-text)} (entry->message locale entry)] + [:div {:class (stl/css :history-entry-summary-text)} (entry->message entry)] (when (:detail entry) [:div {:class (stl/css-case :history-entry-summary-button true :button-opened @show-detail?) @@ -320,9 +321,9 @@ (when @show-detail? [:& history-entry-details {:entry entry}])])) -(mf/defc history-toolbox [] - (let [locale (mf/deref i18n/locale) - objects (mf/deref refs/workspace-page-objects) +(mf/defc history-toolbox + [] + (let [objects (mf/deref refs/workspace-page-objects) {:keys [items index]} (mf/deref workspace-undo) entries (parse-entries items objects) toggle-history @@ -331,18 +332,17 @@ (vary-meta assoc ::ev/origin "history-toolbox"))))] [:div {:class (stl/css :history-toolbox)} [:div {:class (stl/css :history-toolbox-title)} - [:span (t locale "workspace.undo.title")] + [:span (tr "workspace.undo.title")] [:div {:class (stl/css :close-button) :on-click toggle-history} i/close]] (if (empty? entries) [:div {:class (stl/css :history-entry-empty)} [:div {:class (stl/css :history-entry-empty-icon)} i/history] - [:div {:class (stl/css :history-entry-empty-msg)} (t locale "workspace.undo.empty")]] + [:div {:class (stl/css :history-entry-empty-msg)} (tr "workspace.undo.empty")]] [:ul {:class (stl/css :history-entries)} (for [[idx-entry entry] (->> entries (map-indexed vector) reverse)] #_[i (range 0 10)] [:& history-entry {:key (str "entry-" idx-entry) - :locale locale :entry entry :idx-entry idx-entry :current? (= idx-entry index) diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/menus/component.cljs b/frontend/src/app/main/ui/workspace/sidebar/options/menus/component.cljs index aa40b01c00..9072c99620 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options/menus/component.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/options/menus/component.cljs @@ -512,12 +512,12 @@ [:& dropdown {:show show :on-close on-close} [:ul {:class (stl/css-case :custom-select-dropdown true :not-main (not main-instance))} - (for [{:keys [msg] :as entry} menu-entries] - (when (some? msg) - [:li {:key msg + (for [{:keys [title action]} menu-entries] + (when (some? title) + [:li {:key title :class (stl/css :dropdown-element) - :on-click (partial do-action (:action entry))} - [:span {:class (stl/css :dropdown-label)} (tr msg)]]))]])) + :on-click (partial do-action action)} + [:span {:class (stl/css :dropdown-label)} title]]))]])) (mf/defc component-menu {::mf/props :obj} diff --git a/frontend/src/app/main/ui/workspace/sidebar/shortcuts.cljs b/frontend/src/app/main/ui/workspace/sidebar/shortcuts.cljs index 20d41a9f7e..d2877b8a40 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/shortcuts.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/shortcuts.cljs @@ -52,144 +52,166 @@ (defn translation-keyname [type keyname] ;; Execution time translation strings: - ;; shortcut-subsection.alignment - ;; shortcut-subsection.edit - ;; shortcut-subsection.general-dashboard - ;; shortcut-subsection.general-viewer - ;; shortcut-subsection.main-menu - ;; shortcut-subsection.modify-layers - ;; shortcut-subsection.navigation-dashboard - ;; shortcut-subsection.navigation-viewer - ;; shortcut-subsection.navigation-workspace - ;; shortcut-subsection.panels - ;; shortcut-subsection.path-editor - ;; shortcut-subsection.shape - ;; shortcut-subsection.tools - ;; shortcut-subsection.zoom-viewer - ;; shortcut-subsection.zoom-workspace - ;; shortcuts.add-comment - ;; shortcuts.add-node - ;; shortcuts.align-bottom - ;; shortcuts.align-hcenter - ;; shortcuts.align-left - ;; shortcuts.align-right - ;; shortcuts.align-top - ;; shortcuts.align-vcenter - ;; shortcuts.artboard-selection - ;; shortcuts.bool-difference - ;; shortcuts.bool-exclude - ;; shortcuts.bool-intersection - ;; shortcuts.bool-union - ;; shortcuts.bring-back - ;; shortcuts.bring-backward - ;; shortcuts.bring-forward - ;; shortcuts.bring-front - ;; shortcuts.clear-undo - ;; shortcuts.copy - ;; shortcuts.create-component - ;; shortcuts.create-new-project - ;; shortcuts.cut - ;; shortcuts.decrease-zoom - ;; shortcuts.delete - ;; shortcuts.delete-node - ;; shortcuts.detach-component - ;; shortcuts.draw-curve - ;; shortcuts.draw-ellipse - ;; shortcuts.draw-frame - ;; shortcuts.draw-nodes - ;; shortcuts.draw-path - ;; shortcuts.draw-rect - ;; shortcuts.draw-text - ;; shortcuts.duplicate - ;; shortcuts.escape - ;; shortcuts.export-shapes - ;; shortcuts.fit-all - ;; shortcuts.flip-horizontal - ;; shortcuts.flip-vertical - ;; shortcuts.go-to-drafts - ;; shortcuts.go-to-libs - ;; shortcuts.go-to-search - ;; shortcuts.group - ;; shortcuts.h-distribute - ;; shortcuts.hide-ui - ;; shortcuts.increase-zoom - ;; shortcuts.insert-image - ;; shortcuts.join-nodes - ;; shortcuts.make-corner - ;; shortcuts.make-curve - ;; shortcuts.mask - ;; shortcuts.merge-nodes - ;; shortcuts.move - ;; shortcuts.move-fast-down - ;; shortcuts.move-fast-left - ;; shortcuts.move-fast-right - ;; shortcuts.move-fast-up - ;; shortcuts.move-nodes - ;; shortcuts.move-unit-down - ;; shortcuts.move-unit-left - ;; shortcuts.move-unit-right - ;; shortcuts.move-unit-up - ;; shortcuts.next-frame - ;; shortcuts.opacity-0 - ;; shortcuts.opacity-1 - ;; shortcuts.opacity-2 - ;; shortcuts.opacity-3 - ;; shortcuts.opacity-4 - ;; shortcuts.opacity-5 - ;; shortcuts.opacity-6 - ;; shortcuts.opacity-7 - ;; shortcuts.opacity-8 - ;; shortcuts.opacity-9 - ;; shortcuts.open-color-picker - ;; shortcuts.open-comments - ;; shortcuts.open-dashboard - ;; shortcuts.select-prev - ;; shortcuts.select-next - ;; shortcuts.open-inspect - ;; shortcuts.open-interactions - ;; shortcuts.open-viewer - ;; shortcuts.open-workspace - ;; shortcuts.paste - ;; shortcuts.prev-frame - ;; shortcuts.redo - ;; shortcuts.reset-zoom - ;; shortcuts.select-all - ;; shortcuts.separate-nodes - ;; shortcuts.show-pixel-grid - ;; shortcuts.show-shortcuts - ;; shortcuts.snap-nodes - ;; shortcuts.snap-pixel-grid - ;; shortcuts.start-editing - ;; shortcuts.start-measure - ;; shortcuts.stop-measure - ;; shortcuts.text-align-center - ;; shortcuts.text-align-left - ;; shortcuts.text-align-justify - ;; shortcuts.text-align-right - ;; shortcuts.thumbnail-set - ;; shortcuts.toggle-alignment - ;; shortcuts.toggle-assets - ;; shortcuts.toggle-colorpalette - ;; shortcuts.toggle-focus-mode - ;; shortcuts.toggle-guides - ;; shortcuts.toggle-history - ;; shortcuts.toggle-layers - ;; shortcuts.toggle-lock - ;; shortcuts.toggle-lock-size - ;; shortcuts.toggle-rules - ;; shortcuts.scale - ;; shortcuts.toggle-snap-guides - ;; shortcuts.toggle-snap-ruler-guide - ;; shortcuts.toggle-textpalette - ;; shortcuts.toggle-visibility - ;; shortcuts.toggle-zoom-style - ;; shortcuts.toggle-fullscreen - ;; shortcuts.undo - ;; shortcuts.ungroup - ;; shortcuts.unmask - ;; shortcuts.v-distribute - ;; shortcuts.zoom-selected - ;; shortcuts.toggle-layout-grid + (comment + (tr "shortcut-subsection.alignment") + (tr "shortcut-subsection.edit") + (tr "shortcut-subsection.general-dashboard") + (tr "shortcut-subsection.general-viewer") + (tr "shortcut-subsection.main-menu") + (tr "shortcut-subsection.modify-layers") + (tr "shortcut-subsection.navigation-dashboard") + (tr "shortcut-subsection.navigation-viewer") + (tr "shortcut-subsection.navigation-workspace") + (tr "shortcut-subsection.panels") + (tr "shortcut-subsection.path-editor") + (tr "shortcut-subsection.shape") + (tr "shortcut-subsection.text-editor") + (tr "shortcut-subsection.tools") + (tr "shortcut-subsection.zoom-viewer") + (tr "shortcut-subsection.zoom-workspace") + (tr "shortcuts.add-comment") + (tr "shortcuts.add-node") + (tr "shortcuts.align-bottom") + (tr "shortcuts.align-center") + (tr "shortcuts.align-hcenter") + (tr "shortcuts.align-justify") + (tr "shortcuts.align-left") + (tr "shortcuts.align-right") + (tr "shortcuts.align-top") + (tr "shortcuts.align-vcenter") + (tr "shortcuts.artboard-selection") + (tr "shortcuts.bold") + (tr "shortcuts.bool-difference") + (tr "shortcuts.bool-exclude") + (tr "shortcuts.bool-intersection") + (tr "shortcuts.bool-union") + (tr "shortcuts.bring-back") + (tr "shortcuts.bring-backward") + (tr "shortcuts.bring-forward") + (tr "shortcuts.bring-front") + (tr "shortcuts.clear-undo") + (tr "shortcuts.copy") + (tr "shortcuts.create-component") + (tr "shortcuts.create-new-project") + (tr "shortcuts.cut") + (tr "shortcuts.decrease-zoom") + (tr "shortcuts.delete") + (tr "shortcuts.delete-node") + (tr "shortcuts.detach-component") + (tr "shortcuts.draw-curve") + (tr "shortcuts.draw-ellipse") + (tr "shortcuts.draw-frame") + (tr "shortcuts.draw-nodes") + (tr "shortcuts.draw-path") + (tr "shortcuts.draw-rect") + (tr "shortcuts.draw-text") + (tr "shortcuts.duplicate") + (tr "shortcuts.escape") + (tr "shortcuts.export-shapes") + (tr "shortcuts.fit-all") + (tr "shortcuts.flip-horizontal") + (tr "shortcuts.flip-vertical") + (tr "shortcuts.font-size-dec") + (tr "shortcuts.font-size-inc") + (tr "shortcuts.go-to-drafts") + (tr "shortcuts.go-to-libs") + (tr "shortcuts.go-to-search") + (tr "shortcuts.group") + (tr "shortcuts.h-distribute") + (tr "shortcuts.hide-ui") + (tr "shortcuts.increase-zoom") + (tr "shortcuts.insert-image") + (tr "shortcuts.italic") + (tr "shortcuts.join-nodes") + (tr "shortcuts.letter-spacing-dec") + (tr "shortcuts.letter-spacing-inc") + (tr "shortcuts.line-height-dec") + (tr "shortcuts.line-height-inc") + (tr "shortcuts.line-through") + (tr "shortcuts.make-corner") + (tr "shortcuts.make-curve") + (tr "shortcuts.mask") + (tr "shortcuts.merge-nodes") + (tr "shortcuts.move") + (tr "shortcuts.move-fast-down") + (tr "shortcuts.move-fast-left") + (tr "shortcuts.move-fast-right") + (tr "shortcuts.move-fast-up") + (tr "shortcuts.move-nodes") + (tr "shortcuts.move-unit-down") + (tr "shortcuts.move-unit-left") + (tr "shortcuts.move-unit-right") + (tr "shortcuts.move-unit-up") + (tr "shortcuts.next-frame") + (tr "shortcuts.opacity-0") + (tr "shortcuts.opacity-1") + (tr "shortcuts.opacity-2") + (tr "shortcuts.opacity-3") + (tr "shortcuts.opacity-4") + (tr "shortcuts.opacity-5") + (tr "shortcuts.opacity-6") + (tr "shortcuts.opacity-7") + (tr "shortcuts.opacity-8") + (tr "shortcuts.opacity-9") + (tr "shortcuts.open-color-picker") + (tr "shortcuts.open-comments") + (tr "shortcuts.open-dashboard") + (tr "shortcuts.open-inspect") + (tr "shortcuts.open-interactions") + (tr "shortcuts.open-viewer") + (tr "shortcuts.open-workspace") + (tr "shortcuts.paste") + (tr "shortcuts.prev-frame") + (tr "shortcuts.redo") + (tr "shortcuts.reset-zoom") + (tr "shortcuts.scale") + (tr "shortcuts.search-placeholder") + (tr "shortcuts.select-all") + (tr "shortcuts.select-next") + (tr "shortcuts.select-parent-layer") + (tr "shortcuts.select-prev") + (tr "shortcuts.separate-nodes") + (tr "shortcuts.show-pixel-grid") + (tr "shortcuts.show-shortcuts") + (tr "shortcuts.snap-nodes") + (tr "shortcuts.snap-pixel-grid") + (tr "shortcuts.start-editing") + (tr "shortcuts.start-measure") + (tr "shortcuts.stop-measure") + (tr "shortcuts.text-align-center") + (tr "shortcuts.text-align-justify") + (tr "shortcuts.text-align-left") + (tr "shortcuts.text-align-right") + (tr "shortcuts.thumbnail-set") + (tr "shortcuts.toggle-alignment") + (tr "shortcuts.toggle-assets") + (tr "shortcuts.toggle-colorpalette") + (tr "shortcuts.toggle-focus-mode") + (tr "shortcuts.toggle-fullscreen") + (tr "shortcuts.toggle-guides") + (tr "shortcuts.toggle-history") + (tr "shortcuts.toggle-layers") + (tr "shortcuts.toggle-layout-flex") + (tr "shortcuts.toggle-layout-grid") + (tr "shortcuts.toggle-lock") + (tr "shortcuts.toggle-lock-size") + (tr "shortcuts.toggle-rulers") + (tr "shortcuts.toggle-rules") + (tr "shortcuts.toggle-snap-guides") + (tr "shortcuts.toggle-snap-ruler-guide") + (tr "shortcuts.toggle-textpalette") + (tr "shortcuts.toggle-theme") + (tr "shortcuts.toggle-visibility") + (tr "shortcuts.toggle-zoom-style") + (tr "shortcuts.underline") + (tr "shortcuts.undo") + (tr "shortcuts.ungroup") + (tr "shortcuts.unmask") + (tr "shortcuts.v-distribute") + (tr "shortcuts.zoom-lense-decrease") + (tr "shortcuts.zoom-lense-increase") + (tr "shortcuts.zoom-selected")) + (let [translat-pre (case type :sc "shortcuts." :sec "shortcut-section." diff --git a/frontend/src/app/main/ui/workspace/viewport/top_bar.cljs b/frontend/src/app/main/ui/workspace/viewport/top_bar.cljs index 1cbd37d1cb..7c2963ae1b 100644 --- a/frontend/src/app/main/ui/workspace/viewport/top_bar.cljs +++ b/frontend/src/app/main/ui/workspace/viewport/top_bar.cljs @@ -30,8 +30,9 @@ [:div {:class (stl/css :viewport-actions)} [:div {:class (stl/css :viewport-actions-container)} [:div {:class (stl/css :viewport-actions-title)} - [:& i18n/tr-html {:tag-name "span" - :label "workspace.top-bar.view-only"}]] + [:> i18n/tr-html* + {:tag-name "span" + :content (tr "workspace.top-bar.view-only")}]] [:button {:class (stl/css :done-btn) :on-click handle-close-view-mode} (tr "workspace.top-bar.read-only.done")]]])) diff --git a/frontend/src/app/util/i18n.cljs b/frontend/src/app/util/i18n.cljs index 39575d6014..c87ac6f205 100644 --- a/frontend/src/app/util/i18n.cljs +++ b/frontend/src/app/util/i18n.cljs @@ -12,7 +12,6 @@ [app.config :as cfg] [app.util.dom :as dom] [app.util.globals :as globals] - [app.util.object :as obj] [app.util.storage :refer [storage]] [cuerdas.core :as str] [goog.object :as gobj] @@ -173,15 +172,11 @@ ([code] (t @locale code)) ([code & args] (apply t @locale code args))) -(mf/defc tr-html - {::mf/wrap-props false} - [props] - (let [label (obj/get props "label") - class (obj/get props "class") - tag-name (obj/get props "tag-name" "p") - params (obj/get props "params" []) - html (apply tr (d/concat-vec [label] params))] - [:> tag-name {:dangerouslySetInnerHTML #js {:__html html} +(mf/defc tr-html* + {::mf/props :obj} + [{:keys [content class tag-name]}] + (let [tag-name (d/nilv tag-name "p")] + [:> tag-name {:dangerouslySetInnerHTML #js {:__html content} :className class}])) ;; DEPRECATED diff --git a/frontend/yarn.lock b/frontend/yarn.lock index 36f2b0f365..1eaae603b0 100644 --- a/frontend/yarn.lock +++ b/frontend/yarn.lock @@ -7923,6 +7923,7 @@ __metadata: eventsource-parser: "npm:^1.1.2" express: "npm:^4.19.2" fancy-log: "npm:^2.0.0" + getopts: "npm:^2.3.0" gettext-parser: "npm:^8.0.0" gulp: "npm:4.0.2" gulp-concat: "npm:^2.6.1" @@ -8236,6 +8237,13 @@ __metadata: languageName: node linkType: hard +"getopts@npm:^2.3.0": + version: 2.3.0 + resolution: "getopts@npm:2.3.0" + checksum: 10c0/edbcbd7020e9d87dc41e4ad9add5eb3873ae61339a62431bd92a461be2c0eaa9ec33b6fd0d67fa1b44feedffcf1cf28d6f9dbdb7d604cb1617eaba146a33cbca + languageName: node + linkType: hard + "gettext-parser@npm:^8.0.0": version: 8.0.0 resolution: "gettext-parser@npm:8.0.0" From 769655f5658815c44afce009f4213943dd3bf790 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bel=C3=A9n=20Albeza?= Date: Tue, 2 Jul 2024 15:18:27 +0200 Subject: [PATCH 306/476] :bug: Fix layer width on the left sidebar --- frontend/src/app/main/ui/workspace.scss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/src/app/main/ui/workspace.scss b/frontend/src/app/main/ui/workspace.scss index f190164cff..53ab9e778f 100644 --- a/frontend/src/app/main/ui/workspace.scss +++ b/frontend/src/app/main/ui/workspace.scss @@ -8,7 +8,7 @@ .workspace { @extend .new-scrollbar; - --layer-indentation-size: calc($s-4 * 6); + --layer-indentation-size: calc(#{$s-4} * 6); width: 100vw; height: 100vh; max-height: 100vh; From c66ff74f21edbc0fb1965708fb8c1540c552ed12 Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Tue, 2 Jul 2024 15:30:35 +0200 Subject: [PATCH 307/476] :bug: Fix some problems in plugins --- .../src/app/main/ui/workspace/plugins.cljs | 12 ++++----- frontend/src/app/plugins/text.cljs | 26 +++++++++---------- 2 files changed, 19 insertions(+), 19 deletions(-) diff --git a/frontend/src/app/main/ui/workspace/plugins.cljs b/frontend/src/app/main/ui/workspace/plugins.cljs index 5ac397430d..d7db43950c 100644 --- a/frontend/src/app/main/ui/workspace/plugins.cljs +++ b/frontend/src/app/main/ui/workspace/plugins.cljs @@ -209,34 +209,34 @@ [:div {:class (stl/css :permissions-list-entry)} i/oauth-1 [:p {:class (stl/css :permissions-list-text)} - (tr "workspace.plugins.permissions.disclaimer")]]) + (tr "workspace.plugins.permissions.content-read")]]) (when (contains? permissions "content:write") [:div {:class (stl/css :permissions-list-entry)} i/oauth-1 [:p {:class (stl/css :permissions-list-text)} - (tr "workspace.plugins.permissions.content-read")]]) + (tr "workspace.plugins.permissions.content-write")]]) (when (contains? permissions "user:read") [:div {:class (stl/css :permissions-list-entry)} i/oauth-2 [:p {:class (stl/css :permissions-list-text)} - (tr "workspace.plugins.permissions.content-write")]]) + (tr "workspace.plugins.permissions.user-read")]]) (when (contains? permissions "library:read") [:div {:class (stl/css :permissions-list-entry)} i/oauth-3 [:p {:class (stl/css :permissions-list-text)} - (tr "workspace.plugins.permissions.user-read")]]) + (tr "workspace.plugins.permissions.library-read")]]) (when (contains? permissions "library:write") [:div {:class (stl/css :permissions-list-entry)} i/oauth-3 [:p {:class (stl/css :permissions-list-text)} - (tr "workspace.plugins.permissions.library-read")]])] + (tr "workspace.plugins.permissions.library-write")]])] [:div {:class (stl/css :permissions-disclaimer)} - (tr "workspace.plugins.permissions.library-write")]] + (tr "workspace.plugins.permissions.disclaimer")]] [:div {:class (stl/css :modal-footer)} [:div {:class (stl/css :action-buttons)} diff --git a/frontend/src/app/plugins/text.cljs b/frontend/src/app/plugins/text.cljs index d0558664c5..b5e398d65c 100644 --- a/frontend/src/app/plugins/text.cljs +++ b/frontend/src/app/plugins/text.cljs @@ -105,7 +105,7 @@ (let [font (when (string? value) (fonts/get-font-data value)) variant (fonts/get-default-variant font)] (cond - (not (some? font)) + (not font) (u/display-not-valid :fontId value) (not (r/check-permission plugin-id "content:write")) @@ -121,7 +121,7 @@ :set (fn [_ value] - (let [font (fonts/find-font-data {:font-family value}) + (let [font (fonts/find-font-data {:family value}) variant (fonts/get-default-variant font)] (cond (not (string? value)) @@ -320,7 +320,7 @@ (st/emit! (dwt/update-text-range id start end {:fills value})))))}))) (defn add-text-props - [plugin-id shape-proxy] + [shape-proxy plugin-id] (crc/add-properties! shape-proxy {:name "characters" @@ -374,7 +374,7 @@ font (when (string? value) (fonts/get-font-data value)) variant (fonts/get-default-variant font)] (cond - (not (some? font)) + (not font) (u/display-not-valid :fontId value) (not (r/check-permission plugin-id "content:write")) @@ -388,10 +388,10 @@ :set (fn [self value] (let [id (obj/get self "$id") - font (fonts/find-font-data {:font-family value}) + font (fonts/find-font-data {:family value}) variant (fonts/get-default-variant font)] (cond - (not (some? font)) + (not font) (u/display-not-valid :fontFamily value) (not (r/check-permission plugin-id "content:write")) @@ -408,7 +408,7 @@ font (fonts/get-font-data (obj/get self "fontId")) variant (fonts/get-variant font value)] (cond - (not (some? variant)) + (not variant) (u/display-not-valid :fontVariantId value) (not (r/check-permission plugin-id "content:write")) @@ -490,7 +490,7 @@ (let [id (obj/get self "$id") value (str/trim (dm/str value))] (cond - (or (empty? value) (re-matches letter-spacing-re value)) + (or (not (string? value)) (not (re-matches letter-spacing-re value))) (u/display-not-valid :letterSpacing value) (not (r/check-permission plugin-id "content:write")) @@ -505,7 +505,7 @@ (fn [self value] (let [id (obj/get self "$id")] (cond - (and (string? value) (re-matches text-transform-re value)) + (or (not (string? value)) (not (re-matches text-transform-re value))) (u/display-not-valid :textTransform value) (not (r/check-permission plugin-id "content:write")) @@ -520,7 +520,7 @@ (fn [self value] (let [id (obj/get self "$id")] (cond - (and (string? value) (re-matches text-decoration-re value)) + (or (not (string? value)) (not (re-matches text-decoration-re value))) (u/display-not-valid :textDecoration value) (not (r/check-permission plugin-id "content:write")) @@ -535,7 +535,7 @@ (fn [self value] (let [id (obj/get self "$id")] (cond - (and (string? value) (re-matches text-direction-re value)) + (or (not (string? value)) (not (re-matches text-direction-re value))) (u/display-not-valid :textDirection value) (not (r/check-permission plugin-id "content:write")) @@ -550,7 +550,7 @@ (fn [self value] (let [id (obj/get self "$id")] (cond - (and (string? value) (re-matches text-align-re value)) + (or (not (string? value)) (not (re-matches text-align-re value))) (u/display-not-valid :align value) (not (r/check-permission plugin-id "content:write")) @@ -565,7 +565,7 @@ (fn [self value] (let [id (obj/get self "$id")] (cond - (and (string? value) (re-matches vertical-align-re value)) + (or (not (string? value)) (not (re-matches vertical-align-re value))) (u/display-not-valid :verticalAlign value) (not (r/check-permission plugin-id "content:write")) From 83e51abd354eb4d640c688fab830071943949c2b Mon Sep 17 00:00:00 2001 From: AzazelN28 Date: Tue, 2 Jul 2024 15:09:31 +0200 Subject: [PATCH 308/476] :bug: Fix package.json translation scripts --- frontend/package.json | 2 +- frontend/scripts/find-unused-translations.js | 12 +++++++----- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/frontend/package.json b/frontend/package.json index 56835d5110..2bbad53ed6 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -28,7 +28,7 @@ "test:run": "node target/tests.cjs", "test:watch": "clojure -M:dev:shadow-cljs watch test", "test": "yarn run test:compile && yarn run test:run", - "translations:validate": "node ./scripts/validate-translations.js", + "translations": "node ./scripts/translations.js", "translations:find-unused": "node ./scripts/find-unused-translations.js", "compile": "node ./scripts/compile.js", "compile:cljs": "clojure -M:dev:shadow-cljs compile main", diff --git a/frontend/scripts/find-unused-translations.js b/frontend/scripts/find-unused-translations.js index 6a02198a48..7770031f5b 100644 --- a/frontend/scripts/find-unused-translations.js +++ b/frontend/scripts/find-unused-translations.js @@ -1,8 +1,10 @@ -const fs = require("fs").promises; -const gt = require("gettext-parser"); -const path = require("path"); -const util = require("node:util"); -const execFile = util.promisify(require("node:child_process").execFile); +import gt from "gettext-parser"; +import fs from "node:fs/promises"; +import path from "node:path"; +import util from "node:util"; +import { execFile as execFileCb } from "node:child_process"; + +const execFile = util.promisify(execFileCb); async function processMsgId(msgId) { return execFile("grep", ["-r", "-o", msgId, "./src"]).catch(() => { From 5b6fc19e00433eef2f9c65c6657823fa61756380 Mon Sep 17 00:00:00 2001 From: AzazelN28 Date: Tue, 2 Jul 2024 16:04:57 +0200 Subject: [PATCH 309/476] :sparkles: Rehash and sync translations --- frontend/translations/af.po | 168 +- frontend/translations/ar.po | 2179 +++++++----- frontend/translations/bn.po | 37 +- frontend/translations/ca.po | 1821 ++++++---- frontend/translations/cs.po | 2323 ++++++++----- frontend/translations/da.po | 200 +- frontend/translations/de.po | 2695 ++++++++------ frontend/translations/el.po | 1054 +++--- frontend/translations/en.po | 2760 +++++++++------ frontend/translations/es.po | 2809 +++++++++------ frontend/translations/es_419.po | 224 +- frontend/translations/eu.po | 1969 +++++++---- frontend/translations/fa.po | 1436 ++++---- frontend/translations/fin_FI.po | 100 +- frontend/translations/fo.po | 275 +- frontend/translations/fr.po | 5567 +++++++++++++++-------------- frontend/translations/gl.po | 650 ++-- frontend/translations/ha.po | 2150 +++++++----- frontend/translations/he.po | 5529 +++++++++++++++-------------- frontend/translations/hr.po | 1927 +++++----- frontend/translations/id.po | 5613 ++++++++++++++++-------------- frontend/translations/ig.po | 994 +++--- frontend/translations/it.po | 824 +++-- frontend/translations/jpn_JP.po | 411 ++- frontend/translations/ko.po | 1508 ++++---- frontend/translations/lt.po | 198 +- frontend/translations/lv.po | 2389 ++++++++----- frontend/translations/ml.po | 100 +- frontend/translations/ms.po | 1219 ++++--- frontend/translations/nb_NO.po | 328 +- frontend/translations/nl.po | 2429 ++++++++----- frontend/translations/pl.po | 1809 ++++++---- frontend/translations/pt_BR.po | 1803 ++++++---- frontend/translations/pt_PT.po | 5520 +++++++++++++++-------------- frontend/translations/ro.po | 2240 +++++++----- frontend/translations/ru.po | 1701 +++++---- frontend/translations/ta.po | 82 +- frontend/translations/tr.po | 2462 +++++++------ frontend/translations/ukr_UA.po | 335 +- frontend/translations/yo.po | 2040 +++++++---- frontend/translations/zh_CN.po | 5586 +++++++++++++++-------------- frontend/translations/zh_Hant.po | 4186 +++++++++++----------- 42 files changed, 45817 insertions(+), 33833 deletions(-) diff --git a/frontend/translations/af.po b/frontend/translations/af.po index 5f940756e8..8d1d597f6b 100644 --- a/frontend/translations/af.po +++ b/frontend/translations/af.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "PO-Revision-Date: 2024-06-17 08:07+0000\n" "Last-Translator: Anonymous \n" -"Language-Team: Afrikaans \n" +"Language-Team: Afrikaans " +"\n" "Language: af\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" @@ -11,375 +11,404 @@ msgstr "" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 5.6-dev\n" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:151, src/app/main/ui/viewer/login.cljs:104 msgid "auth.already-have-account" msgstr "Reeds 'n rekening?" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:299 msgid "auth.check-your-email" msgstr "" "Gaan jou e-pos na en klik op die skakel om te verifieer en Penpot te begin " "gebruik." -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:78 msgid "auth.confirm-password" msgstr "Bevestig wagwoord" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/register.cljs:163 msgid "auth.create-demo-account" msgstr "Skep demo rekening" #: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#, unused msgid "auth.create-demo-profile" msgstr "Wil jy dit net probeer?" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/login.cljs:43 msgid "auth.demo-warning" msgstr "" "Dit is 'n DEMO-diens, MOENIE vir werklike werk gebruik nie, die projekte " "sal periodiek uitgevee word." -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:189, src/app/main/ui/viewer/login.cljs:90 msgid "auth.forgot-password" msgstr "Wagwoord vergeet?" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:254 msgid "auth.fullname" msgstr "Volle naam" -#: src/app/main/ui/auth/register.cljs -#, fuzzy +#: src/app/main/ui/auth/register.cljs:155, src/app/main/ui/viewer/login.cljs:107 msgid "auth.login-here" msgstr "Meld hier aan" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:195 msgid "auth.login-submit" msgstr "Meld aan" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:222 msgid "auth.login-with-github-submit" msgstr "GitHub" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:228 msgid "auth.login-with-gitlab-submit" msgstr "GitLab" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:216 msgid "auth.login-with-google-submit" msgstr "Google" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:201 msgid "auth.login-with-ldap-submit" msgstr "LDAP" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:234, src/app/main/ui/auth/login.cljs:255 msgid "auth.login-with-oidc-submit" msgstr "OpenID" -#: src/app/main/ui/settings/team-form.cljs, src/app/main/ui/auth/register.cljs, src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/onboarding/team_choice.cljs, src/app/main/ui/settings/access_tokens.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/settings/profile.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/auth/register.cljs:217, src/app/main/ui/dashboard/team_form.cljs:76, src/app/main/ui/onboarding/team_choice.cljs:180, src/app/main/ui/settings/access_tokens.cljs:66, src/app/main/ui/settings/feedback.cljs:34, src/app/main/ui/settings/profile.cljs:45, src/app/main/ui/workspace/sidebar/assets/groups.cljs:108 msgid "auth.name.not-all-space" msgstr "Die naam moet 'n ander karakter as spasie bevat." -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/onboarding/team_choice.cljs, src/app/main/ui/settings/access_tokens.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/settings/profile.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/auth/register.cljs:218, src/app/main/ui/dashboard/team_form.cljs:77, src/app/main/ui/onboarding/team_choice.cljs:181, src/app/main/ui/settings/access_tokens.cljs:67, src/app/main/ui/settings/feedback.cljs:33, src/app/main/ui/settings/profile.cljs:44, src/app/main/ui/workspace/sidebar/assets/groups.cljs:109 msgid "auth.name.too-long" msgstr "Die naam moet hoogstens 250 karakters bevat." -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:71 msgid "auth.new-password" msgstr "Tik 'n nuwe wagwoord in" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:42 msgid "auth.notifications.invalid-token-error" msgstr "Die hersteltoken is ongeldig." -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:46 msgid "auth.notifications.password-changed-successfully" msgstr "Wagwoord suksesvol verander" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:57 msgid "auth.notifications.profile-not-verified" msgstr "" "Profiel is nie geverifieer nie, verifieer asseblief profiel voordat jy " "voortgaan." -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:40 msgid "auth.notifications.recovery-token-sent" msgstr "Wagwoordherwinningskakel na jou inkassie gestuur." -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:47 msgid "auth.notifications.team-invitation-accepted" msgstr "Het suksesvol by die span aangesluit" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:179, src/app/main/ui/auth/register.cljs:115 msgid "auth.password" msgstr "Wagwoord" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:114 msgid "auth.password-length-hint" msgstr "Ten minste 8 karakters" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/recovery.cljs:61, src/app/main/ui/auth/recovery.cljs:62, src/app/main/ui/auth/register.cljs:81, src/app/main/ui/settings/password.cljs:75, src/app/main/ui/settings/password.cljs:76, src/app/main/ui/settings/password.cljs:77 msgid "auth.password-not-empty" msgstr "Wagwoord moet 'n ander karakter as spasie bevat." +#: src/app/main/ui/auth.cljs:41 msgid "auth.privacy-policy" msgstr "Privaatheidsbeleid" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:88 msgid "auth.recovery-request-submit" msgstr "Herstel Wagwoord" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:101 msgid "auth.recovery-request-subtitle" msgstr "Ons sal vir jou 'n e-pos stuur met instruksies" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:100 msgid "auth.recovery-request-title" msgstr "Wagwoord vergeet?" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:82 msgid "auth.recovery-submit" msgstr "Verander jou wagwoord" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:298, src/app/main/ui/viewer/login.cljs:93 msgid "auth.register" msgstr "Nog nie 'n rekening nie?" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:302, src/app/main/ui/auth/register.cljs:121, src/app/main/ui/auth/register.cljs:263, src/app/main/ui/viewer/login.cljs:97 msgid "auth.register-submit" msgstr "Skep 'n rekening" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:140 msgid "auth.register-title" msgstr "Skep 'n rekening" #: src/app/main/ui/auth.cljs +#, unused msgid "auth.sidebar-tagline" msgstr "Die oopbron-oplossing vir ontwerp en prototipering." +#: src/app/main/ui/auth.cljs:33, src/app/main/ui/dashboard/sidebar.cljs:1022, src/app/main/ui/workspace/main_menu.cljs:150 msgid "auth.terms-of-service" msgstr "Diensbepalings" -#: src/app/main/ui/auth/register.cljs +#, unused msgid "auth.terms-privacy-agreement" msgstr "" "Wanneer jy 'n nuwe rekening skep, stem jy in tot ons diensbepalings en " "privaatheidsbeleid." -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:297 msgid "auth.verification-email-sent" msgstr "Ons het 'n verifikasie-e-pos aan gestuur" #: src/app/main/ui/onboarding/questions.cljs +#, unused msgid "branding-illustrations-marketing-pieces" msgstr "...handelsmerk, illustrasies, bemarkingsstukke, ens." +#: src/app/main/ui/workspace/libraries.cljs:228 msgid "common.publish" msgstr "Publiseer" +#: src/app/main/ui/viewer/share_link.cljs:304, src/app/main/ui/viewer/share_link.cljs:314 msgid "common.share-link.all-users" msgstr "Alle Penpot-gebruikers" +#: src/app/main/ui/viewer/share_link.cljs:198 msgid "common.share-link.confirm-deletion-link-description" msgstr "" "Is jy seker jy wil hierdie skakel verwyder? As jy dit doen, is dit nie meer " "vir enigiemand beskikbaar nie" +#: src/app/main/ui/viewer/share_link.cljs:259, src/app/main/ui/viewer/share_link.cljs:289 msgid "common.share-link.current-tag" msgstr "(huidige)" +#: src/app/main/ui/viewer/share_link.cljs:207, src/app/main/ui/viewer/share_link.cljs:214 msgid "common.share-link.destroy-link" msgstr "Vernietig skakel" +#: src/app/main/ui/viewer/share_link.cljs:221 msgid "common.share-link.get-link" msgstr "Kry skakel" +#: src/app/main/ui/viewer/share_link.cljs:139 msgid "common.share-link.link-copied-success" msgstr "Skakel suksesvol gekopieer" +#: src/app/main/ui/viewer/share_link.cljs:231 msgid "common.share-link.manage-ops" msgstr "Bestuur toestemmings" +#: src/app/main/ui/viewer/share_link.cljs:277 msgid "common.share-link.page-shared" msgid_plural "common.share-link.page-shared" msgstr[0] "bladsy gedeel" msgstr[1] "%s bladsye gedeel" +#: src/app/main/ui/viewer/share_link.cljs:298 msgid "common.share-link.permissions-can-comment" msgstr "Kan kommentaar lewer" +#: src/app/main/ui/viewer/share_link.cljs:308 msgid "common.share-link.permissions-can-inspect" msgstr "Kan kode inspekteer" +#: src/app/main/ui/viewer/share_link.cljs:193 msgid "common.share-link.permissions-hint" msgstr "Enigiemand met skakel sal toegang hê" +#: src/app/main/ui/viewer/share_link.cljs:241 msgid "common.share-link.permissions-pages" msgstr "Bladsye gedeel" +#: src/app/main/ui/viewer/share_link.cljs:183 msgid "common.share-link.placeholder" msgstr "Deelbare skakel sal hier verskyn" +#: src/app/main/ui/viewer/share_link.cljs:303, src/app/main/ui/viewer/share_link.cljs:313 msgid "common.share-link.team-members" msgstr "Slegs spanlede" +#: src/app/main/ui/viewer/share_link.cljs:171 msgid "common.share-link.title" msgstr "Deel prototipes" +#: src/app/main/ui/viewer/share_link.cljs:269 msgid "common.share-link.view-all" msgstr "Kies Alles" +#: src/app/main/ui/workspace/libraries.cljs:224 msgid "common.unpublish" msgstr "Depubliseer" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:85 msgid "dasboard.team-hero.management" msgstr "Spanbestuur" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:84 msgid "dasboard.team-hero.text" msgstr "Penpot is bedoel vir spanne. Nooi lede om saam te werk aan projekte en lêers" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:82 msgid "dasboard.team-hero.title" msgstr "Span saam!" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.tutorial-hero.info" msgstr "" "Leer die basiese beginsels by Penpot terwyl jy pret het met hierdie " "praktiese tutoriaal." #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.tutorial-hero.start" msgstr "Begin die tutoriaal" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.walkthrough-hero.info" msgstr "Gaan stap deur Penpot en leer sy hoofkenmerke ken." #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.walkthrough-hero.start" msgstr "Begin die toer" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.walkthrough-hero.title" msgstr "Koppelvlak Deurloop" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:115 msgid "dashboard.access-tokens.copied-success" msgstr "Token gekopieer" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:202 msgid "dashboard.access-tokens.create" msgstr "Genereer nuwe token" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:76 msgid "dashboard.access-tokens.create.success" msgstr "Toegangstoken is suksesvol geskep." -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:300 msgid "dashboard.access-tokens.empty.add-one" msgstr "Druk die knoppie \"Genereer nuwe token\" om een te genereer." -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:299 msgid "dashboard.access-tokens.empty.no-access-tokens" msgstr "Jy het tot dusver geen tokens nie." -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:53 msgid "dashboard.access-tokens.errors-required-name" msgstr "Die naam word vereis" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:147 msgid "dashboard.access-tokens.expiration-180-days" msgstr "180 dae" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:144 msgid "dashboard.access-tokens.expiration-30-days" msgstr "30 dae" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:145 msgid "dashboard.access-tokens.expiration-60-days" msgstr "60 dae" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:146 msgid "dashboard.access-tokens.expiration-90-days" msgstr "90 dae" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:143 msgid "dashboard.access-tokens.expiration-never" msgstr "Nooit" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:282 msgid "dashboard.access-tokens.expired-on" msgstr "Het verval op %s" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:283 msgid "dashboard.access-tokens.expires-on" msgstr "Verval op %s" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:281 msgid "dashboard.access-tokens.no-expiration" msgstr "Geen verval datum nie" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:197 msgid "dashboard.access-tokens.personal" msgstr "Persoonlike toegangstokens" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:198 msgid "dashboard.access-tokens.personal.description" msgstr "" "Persoonlike toegangtokens funksioneer soos 'n alternatief vir ons " "aanmeld-/wagwoord-verifikasiestelsel en kan gebruik word om 'n toepassing " "toe te laat om toegang tot die interne Penpot API te verkry" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:154 msgid "dashboard.access-tokens.token-will-expire" msgstr "Die token sal verval op %s" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:155 msgid "dashboard.access-tokens.token-will-not-expire" msgstr "Die token het nie 'n verval datum nie" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:291, src/app/main/ui/workspace/main_menu.cljs:572 msgid "dashboard.add-shared" msgstr "Voeg by as Gedeelde Biblioteek" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:75 msgid "dashboard.change-email" msgstr "Verander e-pos" -#: src/app/main/data/dashboard.cljs, src/app/main/data/dashboard.cljs +#: src/app/main/data/dashboard.cljs:762, src/app/main/data/dashboard.cljs:983 msgid "dashboard.copy-suffix" msgstr "(kopieer)" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:338 msgid "dashboard.create-new-team" msgstr "Skep 'n nuwe span" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/components/context_menu_a11y.cljs:256, src/app/main/ui/dashboard/sidebar.cljs:646 msgid "dashboard.default-team-name" msgstr "Jou Penpot" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:571 msgid "dashboard.delete-team" msgstr "Verwyder span" +#: src/app/main/ui/dashboard/file_menu.cljs:296, src/app/main/ui/workspace/main_menu.cljs:589 msgid "dashboard.download-binary-file" msgstr "Laai Penpot-lêer (.penpot) af" +#: src/app/main/ui/dashboard/file_menu.cljs:300, src/app/main/ui/workspace/main_menu.cljs:597 msgid "dashboard.download-standard-file" msgstr "Laai standaardlêer af (.svg + .json)" -#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:276, src/app/main/ui/dashboard/project_menu.cljs:90 msgid "dashboard.duplicate" msgstr "Dupliseer" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:240 msgid "dashboard.duplicate-multi" msgstr "Dupliseer %s lêers" -#: src/app/main/ui/dashboard/grid.cljs +#: src/app/main/ui/dashboard/placeholder.cljs:32 #, markdown msgid "dashboard.empty-placeholder-drafts" msgstr "" @@ -387,15 +416,18 @@ msgstr "" "te deel of voeg by vanaf ons [Biblioteke en " "sjablone](https://penpot.app/libraries-templates)." +#: src/app/main/ui/dashboard/file_menu.cljs:249 msgid "dashboard.export-binary-multi" msgstr "Laai %s Penpot lêers (.penpot) af" +#: src/app/main/ui/workspace/main_menu.cljs:605 msgid "dashboard.export-frames" msgstr "Voer borde as PDF uit" -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:201 msgid "dashboard.export-frames.title" msgstr "Voer as PDF uit" +#, unused msgid "dashboard.export-multi" msgstr "Voer %s Penpot lêers uit" diff --git a/frontend/translations/ar.po b/frontend/translations/ar.po index 8c1d9e966b..8ccea8fab4 100644 --- a/frontend/translations/ar.po +++ b/frontend/translations/ar.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "PO-Revision-Date: 2024-06-17 08:07+0000\n" "Last-Translator: Anonymous \n" -"Language-Team: Arabic \n" +"Language-Team: Arabic " +"\n" "Language: ar\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" @@ -12,171 +12,204 @@ msgstr "" "&& n%100<=10 ? 3 : n%100>=11 ? 4 : 5;\n" "X-Generator: Weblate 5.6-dev\n" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:151, src/app/main/ui/viewer/login.cljs:104 msgid "auth.already-have-account" msgstr "هل لديك حساب؟" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:299 msgid "auth.check-your-email" msgstr "تحقق من بريدك الإلكتروني وانقر على الرابط للتحقق والبدء في استخدام Penpot." -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:78 msgid "auth.confirm-password" msgstr "تأكيد كلمة المرور" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/register.cljs:163 msgid "auth.create-demo-account" msgstr "إنشاء حساب تجريبي" #: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#, unused msgid "auth.create-demo-profile" msgstr "ترغب في التجربة فحسب؟" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/login.cljs:43 msgid "auth.demo-warning" msgstr "هذه خدمة تجريبية ، لا تستخدمها للعمل الحقيقي ، سيتم مسح المشاريع بشكل دوري." -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:189, src/app/main/ui/viewer/login.cljs:90 msgid "auth.forgot-password" msgstr "هل نسيت كلمة السر؟" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:254 msgid "auth.fullname" msgstr "الاسم الكامل" -#: src/app/main/ui/auth/register.cljs -#, fuzzy +#: src/app/main/ui/auth/login.cljs:282 +msgid "auth.login-account-title" +msgstr "قم بتسجيل الدخول إلى حسابي" + +#: src/app/main/ui/auth/register.cljs:155, src/app/main/ui/viewer/login.cljs:107 msgid "auth.login-here" msgstr "تسجيل الدخول هنا" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:195 msgid "auth.login-submit" msgstr "تسجيل الدخول" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:285 +msgid "auth.login-tagline" +msgstr "Penpot هو أداة تصميم مجانية ومفتوحة المصدر للتعاون بين التصميم والبرمجة" + +#: src/app/main/ui/auth/login.cljs:222 msgid "auth.login-with-github-submit" msgstr "Github" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:228 msgid "auth.login-with-gitlab-submit" msgstr "Gitlabسجل دخولك عن طريق" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:216 msgid "auth.login-with-google-submit" msgstr "جوجل" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:201 msgid "auth.login-with-ldap-submit" msgstr "LDAPسجل دخولك عن طريق" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:234, src/app/main/ui/auth/login.cljs:255 msgid "auth.login-with-oidc-submit" msgstr "OpenID سجل دخولك عن طريق" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/register.cljs:217, src/app/main/ui/dashboard/team_form.cljs:76, src/app/main/ui/onboarding/team_choice.cljs:180, src/app/main/ui/settings/access_tokens.cljs:66, src/app/main/ui/settings/feedback.cljs:34, src/app/main/ui/settings/profile.cljs:45, src/app/main/ui/workspace/sidebar/assets/groups.cljs:108 +msgid "auth.name.not-all-space" +msgstr "يجب أن يحتوي الاسم على بعض الأحرف غير الفراغات." + +#: src/app/main/ui/auth/register.cljs:218, src/app/main/ui/dashboard/team_form.cljs:77, src/app/main/ui/onboarding/team_choice.cljs:181, src/app/main/ui/settings/access_tokens.cljs:67, src/app/main/ui/settings/feedback.cljs:33, src/app/main/ui/settings/profile.cljs:44, src/app/main/ui/workspace/sidebar/assets/groups.cljs:109 +msgid "auth.name.too-long" +msgstr "يجب أن يحتوي الاسم على 250 حرفًا كحد أقصى." + +#: src/app/main/ui/auth/recovery.cljs:71 msgid "auth.new-password" msgstr "اكتب كلمة مرور جديدة" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:42 msgid "auth.notifications.invalid-token-error" msgstr "رمز الاسترداد غير صالح." -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:46 msgid "auth.notifications.password-changed-successfully" msgstr "تم تغيير كلمة المرور بنجاح" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:57 msgid "auth.notifications.profile-not-verified" msgstr "لم يتم التأكيد على الحساب الشخصي ، يرجى التحقق قبل المواصلة" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:40 msgid "auth.notifications.recovery-token-sent" msgstr "تم إرسال رمز الاسترداد لاستعادة كلمة المرور إلى صندوق البريد الخاص بك" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:47 msgid "auth.notifications.team-invitation-accepted" msgstr "تم الانضمام إلى الفريق بنجاح" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:179, src/app/main/ui/auth/register.cljs:115 msgid "auth.password" msgstr "كلمه السر" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:114 msgid "auth.password-length-hint" msgstr "8 أحرف على الأقل" +#: src/app/main/ui/auth.cljs:41 msgid "auth.privacy-policy" msgstr "سياسة الخصوصية" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:88 msgid "auth.recovery-request-submit" msgstr "إستعادة كلمة المرور" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:101 msgid "auth.recovery-request-subtitle" msgstr "سنرسل لك رسالة بريد إلكتروني تحتوي على التعليمات" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:100 msgid "auth.recovery-request-title" msgstr "نسيت كلمة المرور؟" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:82 msgid "auth.recovery-submit" msgstr "تغيير كلمة المرور" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:298, src/app/main/ui/viewer/login.cljs:93 msgid "auth.register" msgstr "لا تملك حساب بعد؟" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:302, src/app/main/ui/auth/register.cljs:121, src/app/main/ui/auth/register.cljs:263, src/app/main/ui/viewer/login.cljs:97 msgid "auth.register-submit" msgstr "إنشاء حساب" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:140 msgid "auth.register-title" msgstr "إنشاء حساب" #: src/app/main/ui/auth.cljs +#, unused msgid "auth.sidebar-tagline" msgstr "الحل (مفتوح المصدر) للتصميم والنمذجة." +#: src/app/main/ui/auth.cljs:33, src/app/main/ui/dashboard/sidebar.cljs:1022, src/app/main/ui/workspace/main_menu.cljs:150 msgid "auth.terms-of-service" msgstr "شروط الخدمة" -#: src/app/main/ui/auth/register.cljs +#, unused msgid "auth.terms-privacy-agreement" msgstr "عند إنشاء حساب جديد ، فإنك توافق على شروط الخدمة وسياسة الخصوصية الخاصة بنا." -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:297 msgid "auth.verification-email-sent" msgstr "لقد أرسلنا رسالة تحقق إلى بريدك الالكتروني" +#: src/app/main/ui/onboarding/questions.cljs +#, unused +msgid "branding-illustrations-marketing-pieces" +msgstr "...علامة تجارية، رسوم توضيحية، قطع تسويقية، إلخ." + +#: src/app/main/ui/workspace/libraries.cljs:228 msgid "common.publish" msgstr "أنشر" +#: src/app/main/ui/viewer/share_link.cljs:304, src/app/main/ui/viewer/share_link.cljs:314 msgid "common.share-link.all-users" msgstr "جميع مستخدمي Penpot" +#: src/app/main/ui/viewer/share_link.cljs:198 msgid "common.share-link.confirm-deletion-link-description" msgstr "" "هل أنت متأكد أنك تريد إزالة هذا الرابط؟ إذا قمت بذلك ، فلن يكون متاحًا لأي " "شخص" +#: src/app/main/ui/viewer/share_link.cljs:259, src/app/main/ui/viewer/share_link.cljs:289 msgid "common.share-link.current-tag" msgstr "(الحالي)" +#: src/app/main/ui/viewer/share_link.cljs:207, src/app/main/ui/viewer/share_link.cljs:214 msgid "common.share-link.destroy-link" msgstr "إتلاف الرابط" +#: src/app/main/ui/viewer/share_link.cljs:221 msgid "common.share-link.get-link" msgstr "خذ رابطا إلكتروني" +#: src/app/main/ui/viewer/share_link.cljs:139 msgid "common.share-link.link-copied-success" msgstr "تم نسخ الرابط بنجاح" +#: src/app/main/ui/viewer/share_link.cljs:231 msgid "common.share-link.manage-ops" msgstr "إدارة التصاريح" +#: src/app/main/ui/viewer/share_link.cljs:277 msgid "common.share-link.page-shared" msgid_plural "common.share-link.page-shared" msgstr[0] "لم يتم مشاركة الصفحة" @@ -186,199 +219,246 @@ msgstr[3] "مشاركة صفحات" msgstr[4] "مشاركة صفحة" msgstr[5] "مشاركة صفحة" +#: src/app/main/ui/viewer/share_link.cljs:298 msgid "common.share-link.permissions-can-comment" msgstr "يمكن التعليق" +#: src/app/main/ui/viewer/share_link.cljs:308 msgid "common.share-link.permissions-can-inspect" msgstr "يمكن فحص الكود" +#: src/app/main/ui/viewer/share_link.cljs:193 msgid "common.share-link.permissions-hint" msgstr "أي شخص لديه الرابط سيكون لديه حق الوصول" +#: src/app/main/ui/viewer/share_link.cljs:241 msgid "common.share-link.permissions-pages" msgstr "الصفحات المشتركة" +#: src/app/main/ui/viewer/share_link.cljs:183 msgid "common.share-link.placeholder" msgstr "سيظهر الرابط القابل للمشاركة هنا" +#: src/app/main/ui/viewer/share_link.cljs:303, src/app/main/ui/viewer/share_link.cljs:313 msgid "common.share-link.team-members" msgstr "أعضاء الفريق فقط" +#: src/app/main/ui/viewer/share_link.cljs:171 msgid "common.share-link.title" msgstr "مشاركة النماذج" +#: src/app/main/ui/viewer/share_link.cljs:269 msgid "common.share-link.view-all" msgstr "اختر الكل" +#: src/app/main/ui/workspace/libraries.cljs:224 msgid "common.unpublish" msgstr "إلغاء النشر" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:85 msgid "dasboard.team-hero.management" msgstr "إدارة الفريق" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:84 msgid "dasboard.team-hero.text" msgstr "Penpot تم تصميمه للفرق. أدعُ زملاءك للعمل سوياَ على المشاريع والملفات" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:82 msgid "dasboard.team-hero.title" msgstr "إعمل فريق!" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.tutorial-hero.info" msgstr "تعلم أساسيات برنامج Penpot بينما تستمع بتجربته في هذه الدورة التعليمية." #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.tutorial-hero.start" msgstr "إبدا الدورة التعليمية" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.tutorial-hero.title" msgstr "دورة تعليمية عملية" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.walkthrough-hero.info" msgstr "إذهب في جولة في البرنامج وتعرف على ميزاته." #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.walkthrough-hero.start" msgstr "إبدا الجولة" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.walkthrough-hero.title" msgstr "جولة في الواجهة" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/settings/access_tokens.cljs:115 +msgid "dashboard.access-tokens.copied-success" +msgstr "الرمز منسوخ" + +#: src/app/main/ui/settings/access_tokens.cljs:202 +msgid "dashboard.access-tokens.create" +msgstr "قم بإنشاء رمز جديد" + +#: src/app/main/ui/settings/access_tokens.cljs:76 +msgid "dashboard.access-tokens.create.success" +msgstr "تم إنشاء رمز الوصول بنجاح." + +#: src/app/main/ui/settings/access_tokens.cljs:300 +msgid "dashboard.access-tokens.empty.add-one" +msgstr "اضغط على الزر \"إنشاء رمز جديد\" لإنشاء واحد." + +#: src/app/main/ui/dashboard/file_menu.cljs:291, src/app/main/ui/workspace/main_menu.cljs:572 msgid "dashboard.add-shared" msgstr "أضف كمكتبة مشتركة" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:75 msgid "dashboard.change-email" msgstr "تغيير البريد الإلكتروني" -#: src/app/main/data/dashboard.cljs, src/app/main/data/dashboard.cljs +#: src/app/main/data/dashboard.cljs:762, src/app/main/data/dashboard.cljs:983 msgid "dashboard.copy-suffix" msgstr "(نسخة)" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:338 msgid "dashboard.create-new-team" msgstr "إنشاء فريق جديد" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/components/context_menu_a11y.cljs:256, src/app/main/ui/dashboard/sidebar.cljs:646 msgid "dashboard.default-team-name" msgstr "Penpot الخاص بك" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:571 msgid "dashboard.delete-team" msgstr "حذف الفريق" +#: src/app/main/ui/dashboard/file_menu.cljs:296, src/app/main/ui/workspace/main_menu.cljs:589 msgid "dashboard.download-binary-file" msgstr "تنزيل ملف Penpot (.penpot)" +#: src/app/main/ui/dashboard/file_menu.cljs:300, src/app/main/ui/workspace/main_menu.cljs:597 msgid "dashboard.download-standard-file" msgstr "تنزيل ملف قياسي (.svg + .json)" -#: src/app/main/ui/dashboard/project_menu.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:276, src/app/main/ui/dashboard/project_menu.cljs:90 msgid "dashboard.duplicate" msgstr "تكرير" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:240 msgid "dashboard.duplicate-multi" msgstr "تكرير %s الملفات" -#: src/app/main/ui/dashboard/grid.cljs +#: src/app/main/ui/dashboard/placeholder.cljs:32 +#, markdown msgid "dashboard.empty-placeholder-drafts" msgstr "" "أوه لا! ليس لديك ملفات بعد! إذا كنت تريد تجربة بعض القوالب ، فانتقل إلى " "[المكتبات والقوالب] (https://penpot.app/libraries-templates)" +#: src/app/main/ui/dashboard/file_menu.cljs:249 msgid "dashboard.export-binary-multi" msgstr "تنزيل ملفات ٪s Penpot (.penpot)" +#: src/app/main/ui/workspace/main_menu.cljs:605 msgid "dashboard.export-frames" msgstr "صدر اللوحة الفنية الى ملف PDF…" -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:201 msgid "dashboard.export-frames.title" msgstr "استخراج PDF" +#, unused msgid "dashboard.export-multi" msgstr "تصدير %s الملفات" -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:109 msgid "dashboard.export-multiple.selected" msgstr "%s من %s عناصر مختارة" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:578 msgid "dashboard.export-shapes" msgstr "استخراج" -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:180 msgid "dashboard.export-shapes.how-to" msgstr "" "يمكنك إضافة إعدادات التصدير إلى العناصر من خصائص التصميم (أسفل الشريط " "الجانبي الأيمن)." -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:184 msgid "dashboard.export-shapes.how-to-link" msgstr "معلومات عن كيفية إعداد التصدير." -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:179 msgid "dashboard.export-shapes.no-elements" msgstr "لا يوجد عناصر بإعدادت التصدير." -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:190 msgid "dashboard.export-shapes.title" msgstr "إختيار التصدير" +#: src/app/main/ui/dashboard/file_menu.cljs:252 msgid "dashboard.export-standard-multi" msgstr "تحميل %s ملفات أساسية (.svg + .json)" +#: src/app/main/ui/export.cljs:427 msgid "dashboard.export.detail" msgstr "* ربما يحتوي على عناصر، رسومات، الوان، و/أو خطوط." +#: src/app/main/ui/export.cljs:426 msgid "dashboard.export.explain" msgstr "" "ملف أو أكثر تريد تصديرهم يستخدمون مكتبات مشتركة. ماذا تريد أن تفعل في " "أصولهم*؟" +#: src/app/main/ui/export.cljs:435 msgid "dashboard.export.options.all.message" msgstr "سيتم ادراج الملفات التي لها مكتبات مشتركة في التصدير، مع الحفاظ على روابطهم." +#: src/app/main/ui/export.cljs:436 msgid "dashboard.export.options.all.title" msgstr "صدر المكتبات المشتركة" +#: src/app/main/ui/export.cljs:437 msgid "dashboard.export.options.detach.message" msgstr "" "لن يتم تضمين المكتبات المشتركة في التصدير ولن يتم إضافة أي أصول إلى " "المكتبة. " +#: src/app/main/ui/export.cljs:438 msgid "dashboard.export.options.detach.title" msgstr "عامل أصول المكتبة المشتركة كعناصر بسيطة" +#: src/app/main/ui/export.cljs:439 msgid "dashboard.export.options.merge.message" msgstr "سيتم تصدير ملفك مع دمج جميع الأصول الخارجية في مكتبة الملفات." +#: src/app/main/ui/export.cljs:440 msgid "dashboard.export.options.merge.title" msgstr "تضمين أصول المكتبة المشتركة في مكتبات الملفات" +#: src/app/main/ui/export.cljs:418 msgid "dashboard.export.title" msgstr "صدر الملفات" +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:309 msgid "dashboard.fonts.deleted-placeholder" msgstr "الخط محذوف" -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:206 msgid "dashboard.fonts.dismiss-all" msgstr "الغاء الكل" +#: src/app/main/ui/dashboard/fonts.cljs:436 msgid "dashboard.fonts.empty-placeholder" msgstr "لا يزال ليس لديك خطوط مخصصة مثبتة." -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:194 msgid "dashboard.fonts.fonts-added" msgid_plural "dashboard.fonts.fonts-added" msgstr[0] "لم يتم إضافة أي خط" @@ -388,6 +468,8 @@ msgstr[3] "عدد قليل من الخطوط المضافة" msgstr[4] "تمت إضافة العديد من الخطوط" msgstr[5] "" +#: src/app/main/ui/dashboard/fonts.cljs:170 +#, markdown msgid "dashboard.fonts.hero-text1" msgstr "" "ستتم إضافة أي خط ويب تقوم بتحميله هنا إلى قائمة عائلة الخطوط المتوفرة في " @@ -395,6 +477,8 @@ msgstr "" "عائلة الخطوط على أنها ** عائلة خط واحدة **. يمكنك تحميل الخطوط بالتنسيقات " "التالية: ** TTF و OTF و WOFF ** (ستحتاج إلى تنسيق واحد فقط)." +#: src/app/main/ui/dashboard/fonts.cljs:182 +#, markdown msgid "dashboard.fonts.hero-text2" msgstr "" "يجب عليك فقط تحميل الخطوط التي تمتلكها أو لديك ترخيص لاستخدامها في Penpot. " @@ -402,10 +486,12 @@ msgstr "" "(https://penpot.app/terms.html). قد ترغب أيضًا في القراءة عن [ترخيص الخطوط] " "(2)." -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:202 msgid "dashboard.fonts.upload-all" msgstr "حمل الكل" +#: src/app/main/ui/dashboard/fonts.cljs:187 +#, markdown msgid "dashboard.fonts.warning-text" msgstr "" "لقد اكتشفنا مشكلة محتملة في الخطوط الخاصة بك تتعلق بالمقاييس الرأسية لأنظمة " @@ -414,943 +500,1000 @@ msgstr "" "، نوصي باستخدام [Transfonter] (https://transfonter.org/) لإنشاء خطوط الويب " "وإصلاح الأخطاء. " +#: src/app/main/ui/dashboard/import.cljs:472, src/app/main/ui/dashboard/project_menu.cljs:108 msgid "dashboard.import" msgstr "استيراد ملفات" +#: src/app/main/ui/dashboard/import.cljs:304, src/app/worker/import.cljs:753, src/app/worker/import.cljs:755 msgid "dashboard.import.analyze-error" msgstr "لم نستطع استيراد أو إدراج هذا الملف" +#: src/app/main/ui/dashboard/import.cljs:308 msgid "dashboard.import.import-error" msgstr "حصل خلل خلال إدراج الملف. لم يتم إدراج الملف على البرنامج." +#: src/app/main/ui/dashboard/import.cljs:493 msgid "dashboard.import.import-message" msgstr "%s ملف تم ادراجهم بنجاح." +#: src/app/main/ui/dashboard/import.cljs:481, src/app/main/ui/dashboard/import.cljs:488 msgid "dashboard.import.import-warning" msgstr "تحتوي بعض الملفات على كائنات غير صالحة تمت إزالتها." +#: src/app/main/ui/dashboard/import.cljs:144 msgid "dashboard.import.progress.process-colors" msgstr "يتم معالجة الألوان" +#: src/app/main/ui/dashboard/import.cljs:153 msgid "dashboard.import.progress.process-components" msgstr "يتم معالجة العناصر" +#: src/app/main/ui/dashboard/import.cljs:150 msgid "dashboard.import.progress.process-media" msgstr "يتم معالجة الوسائط" +#: src/app/main/ui/dashboard/import.cljs:141 msgid "dashboard.import.progress.process-page" msgstr "يتم معالجة الصفحة: %s" +#: src/app/main/ui/dashboard/import.cljs:147 msgid "dashboard.import.progress.process-typographies" msgstr "يتم معالجة الخطوط" +#: src/app/main/ui/dashboard/import.cljs:135 msgid "dashboard.import.progress.upload-data" msgstr "تحميل البيانات للخادم (%s/%s)" +#: src/app/main/ui/dashboard/import.cljs:138 msgid "dashboard.import.progress.upload-media" msgstr "تحميل الملف: %s" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:109 msgid "dashboard.invite-profile" msgstr "قم بدعوة للفريق" -#: src/app/main/ui/dashboard/sidebar.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:547, src/app/main/ui/dashboard/sidebar.cljs:556, src/app/main/ui/dashboard/sidebar.cljs:563, src/app/main/ui/dashboard/team.cljs:312 msgid "dashboard.leave-team" msgstr "ترك الفريق" +#: src/app/main/ui/dashboard/templates.cljs:88, src/app/main/ui/dashboard/templates.cljs:163 msgid "dashboard.libraries-and-templates" msgstr "المكتبات & القوالب" +#: src/app/main/ui/dashboard/templates.cljs:164 msgid "dashboard.libraries-and-templates.explore" msgstr "استعرض المزيد منهم وتعلم كيف تساهم" +#: src/app/main/ui/dashboard/import.cljs:365 msgid "dashboard.libraries-and-templates.import-error" msgstr "حدثت مشكلة في استيراد النموذج. لم يتم استيراد النموذج." -#: src/app/main/ui/dashboard/libraries.cljs +#: src/app/main/ui/dashboard/libraries.cljs:53 msgid "dashboard.libraries-title" msgstr "المكتبات المشتركة" -#: src/app/main/ui/dashboard/grid.cljs +#: src/app/main/ui/dashboard/placeholder.cljs:45 msgid "dashboard.loading-files" msgstr "تحميل ملفاتك …" +#: src/app/main/ui/dashboard/fonts.cljs:431 msgid "dashboard.loading-fonts" msgstr "جاري تحميل الخطوط …" -#: src/app/main/ui/dashboard/project_menu.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:281, src/app/main/ui/dashboard/project_menu.cljs:100 msgid "dashboard.move-to" msgstr "الانتقال إلى" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:245 msgid "dashboard.move-to-multi" msgstr "أنقل %s الملفات إلى" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:226 msgid "dashboard.move-to-other-team" msgstr "الانتقال إلى فريق آخر" -#: src/app/main/ui/dashboard/projects.cljs, -#: src/app/main/ui/dashboard/files.cljs +#: src/app/main/ui/dashboard/files.cljs:105, src/app/main/ui/dashboard/projects.cljs:252, src/app/main/ui/dashboard/projects.cljs:253 msgid "dashboard.new-file" msgstr "+ ملف جديد" -#: src/app/main/data/dashboard.cljs +#: src/app/main/data/dashboard.cljs:958, src/app/main/data/dashboard.cljs:1181 msgid "dashboard.new-file-prefix" msgstr "ملف جديد" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:55 msgid "dashboard.new-project" msgstr "+ مشروع جديد" -#: src/app/main/data/dashboard.cljs +#: src/app/main/data/dashboard.cljs:726, src/app/main/data/dashboard.cljs:1184 msgid "dashboard.new-project-prefix" msgstr "مشروع جديد" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:60 msgid "dashboard.no-matches-for" msgstr "لم يتم العثور على مطابقات ل \"%s\"" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:827 msgid "dashboard.no-projects-placeholder" msgstr "ستظهر المشاريع المثبتة هنا" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:33 msgid "dashboard.notifications.email-changed-successfully" msgstr "تم تحديث عنوان بريدك الإلكتروني بنجاح" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:27 msgid "dashboard.notifications.email-verified-successfully" msgstr "تم التحقق من عنوان بريدك الإلكتروني بنجاح" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:37 msgid "dashboard.notifications.password-saved" msgstr "تم حفظ كلمة المرور بنجاح!" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1081 msgid "dashboard.num-of-members" msgstr "%s الأعضاء" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:267 msgid "dashboard.open-in-new-tab" msgstr "فتح ملف في علامة تبويب جديدة" +#: src/app/main/ui/dashboard/files.cljs:117, src/app/main/ui/dashboard/projects.cljs:260, src/app/main/ui/dashboard/projects.cljs:261 msgid "dashboard.options" msgstr "الخيارات" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:106, src/app/main/ui/settings/password.cljs:119 msgid "dashboard.password-change" msgstr "تغيير كلمة المرور" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/pin_button.cljs:24, src/app/main/ui/dashboard/project_menu.cljs:95 msgid "dashboard.pin-unpin" msgstr "تثبيت / إلغاء التثبيت" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:51 msgid "dashboard.projects-title" msgstr "المشاريع" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:86 msgid "dashboard.remove-account" msgstr "هل تريد إزالة حسابك؟" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "dashboard.remove-shared" msgstr "إزالة كمكتبة مشتركة" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:78 msgid "dashboard.save-settings" msgstr "حفظ الإعدادات" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:246, src/app/main/ui/dashboard/sidebar.cljs:247 msgid "dashboard.search-placeholder" msgstr "بحث…" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:55 msgid "dashboard.searching-for" msgstr "البحث عن \"%s\"…" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:56 msgid "dashboard.select-ui-language" msgstr "حدد لغة واجهة المستخدم" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:63 msgid "dashboard.select-ui-theme" msgstr "اختر نمطا" -#: src/app/main/ui/dashboard/grid.cljs +#: src/app/main/ui/dashboard/projects.cljs:282 msgid "dashboard.show-all-files" msgstr "إظهار كافة الملفات" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:96 msgid "dashboard.success-delete-file" msgstr "تم حذف ملفك بنجاح" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:59 msgid "dashboard.success-delete-project" msgstr "تم حذف مشروعك بنجاح" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:91 msgid "dashboard.success-duplicate-file" msgstr "تم تكرار ملفك بنجاح" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:33 msgid "dashboard.success-duplicate-project" msgstr "تم نسخ مشروعك بنجاح" -#: src/app/main/ui/dashboard/grid.cljs, src/app/main/ui/dashboard/sidebar.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:130, src/app/main/ui/dashboard/grid.cljs:558, src/app/main/ui/dashboard/sidebar.cljs:152 msgid "dashboard.success-move-file" msgstr "تم نقل ملفك بنجاح" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:129 msgid "dashboard.success-move-files" msgstr "تم نقل الملفات بنجاح" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:54 msgid "dashboard.success-move-project" msgstr "تم نقل مشروعك بنجاح" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1052 msgid "dashboard.team-info" msgstr "معلومات الفريق" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1070 msgid "dashboard.team-members" msgstr "أعضاء الفريق" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1085 msgid "dashboard.team-projects" msgstr "مشاريع الفريق" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:61 msgid "dashboard.theme-change" msgstr "ثيم واجهة الاستخدام" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:42 msgid "dashboard.title-search" msgstr "نتائج البحث" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:50 msgid "dashboard.type-something" msgstr "اكتب لإظهار نتائج البحث" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:287, src/app/main/ui/workspace/main_menu.cljs:566 msgid "dashboard.unpublish-shared" msgstr "الغاء نشر المكتبة" -#: src/app/main/ui/settings/profile.cljs, -#: src/app/main/ui/settings/password.cljs, -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:71 msgid "dashboard.update-settings" msgstr "تحديث الإعدادات" +#: src/app/main/ui/dashboard/team.cljs:861 msgid "dashboard.webhooks.active" msgstr "نشط" +#: src/app/main/ui/dashboard/team.cljs:862 msgid "dashboard.webhooks.active.explain" msgstr "عندما يتم تشغيل هذا الخطاف ، سيتم تسليم تفاصيل الحدث" +#: src/app/main/ui/dashboard/team.cljs:852 msgid "dashboard.webhooks.content-type" msgstr "نوع المحتوى" +#: src/app/main/ui/dashboard/team.cljs:885 msgid "dashboard.webhooks.create" msgstr "إنشاء الرد التلقائي على الويب" -#: src/app/main/ui/settings.cljs +#: src/app/main/ui/settings.cljs:31 msgid "dashboard.your-account-title" msgstr "حسابك" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:70 msgid "dashboard.your-email" msgstr "البريد الالكتروني" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:62 msgid "dashboard.your-name" msgstr "اسمك" -#: src/app/main/ui/dashboard/search.cljs, src/app/main/ui/dashboard/team.cljs, -#: src/app/main/ui/dashboard/libraries.cljs, -#: src/app/main/ui/dashboard/projects.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:38, src/app/main/ui/dashboard/fonts.cljs:33, src/app/main/ui/dashboard/libraries.cljs:42, src/app/main/ui/dashboard/projects.cljs:318, src/app/main/ui/dashboard/search.cljs:30, src/app/main/ui/dashboard/sidebar.cljs:312, src/app/main/ui/dashboard/team.cljs:495, src/app/main/ui/dashboard/team.cljs:729, src/app/main/ui/dashboard/team.cljs:991, src/app/main/ui/dashboard/team.cljs:1038 msgid "dashboard.your-penpot" msgstr "Penpot الخاص بك" -#: src/app/main/ui/alert.cljs +#: src/app/main/ui/alert.cljs:32 msgid "ds.alert-ok" msgstr "حسناَ" -#: src/app/main/ui/alert.cljs +#: src/app/main/ui/alert.cljs:31, src/app/main/ui/alert.cljs:34 msgid "ds.alert-title" msgstr "إنتباه" -#: src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:83 msgid "ds.component-subtitle" msgstr "عناصر سيتم تحديثها:" -#: src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:36, src/app/main/ui/workspace/plugins.cljs:246 msgid "ds.confirm-cancel" msgstr "إلغاء الأمر" -#: src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:37, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:141 msgid "ds.confirm-ok" msgstr "حسنا" -#: src/app/main/ui/confirm.cljs, src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:35, src/app/main/ui/confirm.cljs:39 msgid "ds.confirm-title" msgstr "هل أنت متأكد؟" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:62 msgid "errors.auth-provider-not-configured" msgstr "موفر المصادقة غير معد ومسجل." +#: src/app/main/errors.cljs:104 msgid "errors.auth.unable-to-login" msgstr "يبدوا أنك غير مصرح لك أو أن الجلسة إنتهت." +#: src/app/main/data/fonts.cljs:189 msgid "errors.bad-font" msgstr "تعذر تحميل الخط٪ s" +#: src/app/main/data/fonts.cljs:188 msgid "errors.bad-font-plural" msgstr "تعذر تحميل الخطوط٪ s" -#: src/app/main/data/workspace.cljs +#: src/app/main/data/workspace.cljs:1598 msgid "errors.clipboard-not-implemented" msgstr "لا يمكن للمتصفح إجراء هذه العملية" -#: src/app/main/ui/auth/verify_token.cljs, -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/auth/verify_token.cljs:82, src/app/main/ui/settings/change_email.cljs:46 msgid "errors.email-already-exists" msgstr "البريد الإلكتروني مستخدم بالفعل" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:87 msgid "errors.email-already-validated" msgstr "متم التحقق من صحة البريد الإلكتروني" +#: src/app/main/ui/settings/password.cljs:28 msgid "errors.email-as-password" msgstr "لا يمكنك استخدام بريدك الإلكتروني ككلمة مرور" -#: src/app/main/ui/auth/register.cljs, -#: src/app/main/ui/auth/recovery_request.cljs, -#: src/app/main/ui/settings/change_email.cljs, -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/auth/recovery_request.cljs:63, src/app/main/ui/dashboard/team.cljs:578, src/app/main/ui/settings/change_email.cljs:54 msgid "errors.email-has-permanent-bounces" msgstr "يحتوي البريد الإلكتروني «%s» على العديد من تقارير الارتداد الدائم." -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs, -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/login.cljs:81, src/app/main/ui/auth/recovery_request.cljs:31, src/app/main/ui/auth/register.cljs:43 msgid "errors.email-invalid" msgstr "أدخل بريدًا إلكترونيًا صالحًا من فضلك" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:35 msgid "errors.email-invalid-confirmation" msgstr "يجب أن يتطابق البريد الإلكتروني للتأكيد" +#: src/app/main/ui/dashboard/team.cljs:170 msgid "errors.email-spam-or-permanent-bounces" msgstr "تم الإبلاغ عن البريد الإلكتروني «٪ s» كبريد عشوائي أو مرتد بشكل دائم." -#: src/app/main/errors.cljs +#: src/app/main/errors.cljs:227 msgid "errors.feature-mismatch" msgstr "" "يبدو أنك تفتح ملفًا تم تمكين الميزة \"٪ s\" فيه ولكن الواجهة الأمامية لـ " "penpot لا تدعمه أو تم تعطيله." -#: src/app/main/errors.cljs +#: src/app/main/errors.cljs:231, src/app/main/errors.cljs:245 msgid "errors.feature-not-supported" msgstr "الميزة '٪ s' غير مدعومة." -#: src/app/main/ui/auth/verify_token.cljs, -#: src/app/main/ui/settings/feedback.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/data/users.cljs:709, src/app/main/ui/auth/login.cljs:65, src/app/main/ui/auth/login.cljs:116, src/app/main/ui/auth/register.cljs:69, src/app/main/ui/auth/register.cljs:237, src/app/main/ui/auth/verify_token.cljs:92, src/app/main/ui/dashboard/team.cljs:173, src/app/main/ui/onboarding/team_choice.cljs:95, src/app/main/ui/settings/access_tokens.cljs:91, src/app/main/ui/settings/feedback.cljs:52 msgid "errors.generic" msgstr "حدث خطأ ما." -#: src/app/main/ui/components/color_input.cljs +#: src/app/main/ui/components/color_input.cljs:57 msgid "errors.invalid-color" msgstr "لون غير صالح" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/static.cljs:43 msgid "errors.invite-invalid" msgstr "دعوة غير صالحة" +#: src/app/main/ui/static.cljs:44 msgid "errors.invite-invalid.info" msgstr "هذه الدعوة قد تلغى أو قد تنتهي." -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:101 msgid "errors.ldap-disabled" msgstr "تم تعطيل مصادقة LDAP." -#: src/app/main/data/workspace/persistence.cljs +#: src/app/main/data/workspace/media.cljs:184 msgid "errors.media-too-large" msgstr "الصورة كبيرة جدا بحيث لا يمكن إدراجها." -#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs +#: src/app/main/data/media.cljs:68, src/app/main/data/workspace/media.cljs:187 msgid "errors.media-type-mismatch" msgstr "يبدو أن محتويات الصورة لا تتطابق مع امتداد الملف." -#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs +#: src/app/main/data/media.cljs:65, src/app/main/data/workspace/media.cljs:172, src/app/main/data/workspace/media.cljs:175, src/app/main/data/workspace/media.cljs:178, src/app/main/data/workspace/media.cljs:181 msgid "errors.media-type-not-allowed" msgstr "يبدو أن هذه ليست صورة صالحة." -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:574 msgid "errors.member-is-muted" msgstr "" "يحتوي الملف الشخصي الذي تدعوه على رسائل بريد إلكتروني مكتومة (تقارير البريد " "المزعج أو الارتدادات العالية)." -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:61 msgid "errors.password-invalid-confirmation" msgstr "يجب أن تتطابق كلمة مرور التأكيد" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:64 msgid "errors.password-too-short" msgstr "يجب ألا تقل كلمة المرور عن 8 أحرف" +#: src/app/main/data/users.cljs:703, src/app/main/ui/auth/login.cljs:97, src/app/main/ui/auth/login.cljs:105 msgid "errors.profile-blocked" msgstr "هذا الملف الشخصي محظور" -#: src/app/main/ui/auth/recovery_request.cljs, -#: src/app/main/ui/settings/change_email.cljs, -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/auth/recovery_request.cljs:60, src/app/main/ui/dashboard/team.cljs:164, src/app/main/ui/dashboard/team.cljs:570, src/app/main/ui/settings/change_email.cljs:50 msgid "errors.profile-is-muted" msgstr "" "يحتوي ملفك الشخصي على رسائل بريد إلكتروني مكتومة (تقارير البريد المزعجة أو " "الارتدادات العالية)." -#: src/app/main/ui/auth/register.cljs +#: src/app/main/data/users.cljs:701, src/app/main/ui/auth/register.cljs:60 msgid "errors.registration-disabled" msgstr "التسجيل معطل حاليا." +#: src/app/main/ui/dashboard/sidebar.cljs:365, src/app/main/ui/dashboard/team.cljs:359 msgid "errors.team-leave.insufficient-members" msgstr "أعضاء غير كافيين لمغادرة الفريق ، ربما تريد حذفه." +#: src/app/main/ui/dashboard/sidebar.cljs:368, src/app/main/ui/dashboard/team.cljs:362 msgid "errors.team-leave.member-does-not-exists" msgstr "العضو الذي تحاول تعيينه غير موجود." +#: src/app/main/ui/dashboard/sidebar.cljs:371, src/app/main/ui/dashboard/team.cljs:365 msgid "errors.team-leave.owner-cant-leave" msgstr "لا يمكن للمالك مغادرة الفريق ، يجب إعادة تعيين دور المالك." -#: src/app/main/data/media.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs +#: src/app/main/data/media.cljs:71 msgid "errors.unexpected-error" msgstr "حدث خطأ غير متوقع." -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:60 msgid "errors.unexpected-token" msgstr "رمز غير معروف" +#: src/app/main/ui/dashboard/team.cljs:796 msgid "errors.webhooks.connection" msgstr "خطأ في الاتصال ، عنوان إلكتروني لا يمكن الوصول إليه" -#, fuzzy +#: src/app/main/ui/dashboard/team.cljs:949 msgid "errors.webhooks.last-delivery" msgstr "آخر تسليم لم يكن ناجحًا." +#: src/app/main/ui/dashboard/team.cljs:794 msgid "errors.webhooks.timeout" msgstr "نفذ الوقت" +#: src/app/main/ui/dashboard/team.cljs:788 msgid "errors.webhooks.unexpected" msgstr "خطأ غير متوقع في التحقق" +#: src/app/main/ui/dashboard/team.cljs:798, src/app/main/ui/dashboard/team.cljs:955 msgid "errors.webhooks.unexpected-status" msgstr "حالة غير متوقعة٪ s" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:109, src/app/main/ui/auth/login.cljs:113 msgid "errors.wrong-credentials" msgstr "يبدو أن اسم المستخدم أو كلمة المرور خاطئة." -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:25 msgid "errors.wrong-old-password" msgstr "كلمة المرور القديمة غير صحيحة" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:77 msgid "feedback.description" msgstr "وصف" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:95 msgid "feedback.discourse-go-to" msgstr "انتقل إلى منتدى Penpot" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:89 msgid "feedback.discourse-subtitle1" msgstr "يسعدنا وجودك هنا. إذا كنت بحاجة إلى مساعدة، يرجى البحث أولا قبل النشر." -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:88 msgid "feedback.discourse-title" msgstr "مجتمع Penpot" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:72 msgid "feedback.subject" msgstr "موضوع" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:69 msgid "feedback.subtitle" msgstr "" "يرجى وصف سبب بريدك الإلكتروني ، وتحديد ما إذا كانت مشكلة أم فكرة أم شك. " "سيرد أحد أعضاء فريقنا في أسرع وقت ممكن." -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:68 msgid "feedback.title" msgstr "البريد الإلكتروني" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:105 msgid "feedback.twitter-go-to" msgstr "اذهب إلى X" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:99 msgid "feedback.twitter-subtitle1" msgstr "هنا للمساعدة في استفساراتك التقنية." -#: src/app/main/ui/settings/feedback.cljs -#, fuzzy +#: src/app/main/ui/settings/feedback.cljs:98 msgid "feedback.twitter-title" msgstr "رد عنوان تويتر" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:30 msgid "generic.error" msgstr "حدث خطأ" -#: src/app/main/ui/inspect/attributes/blur.cljs +#: src/app/main/ui/viewer/inspect/attributes/blur.cljs:26 msgid "inspect.attributes.blur" msgstr "الضبابية" -#: src/app/main/ui/inspect/attributes/blur.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:115 msgid "inspect.attributes.blur.value" msgstr "تفتيش قيمة الطمس" -#: src/app/main/ui/inspect/attributes/common.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:112 msgid "inspect.attributes.color.hex" msgstr "تفتيش صفات اللون" -#: src/app/main/ui/inspect/attributes/common.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:114 msgid "inspect.attributes.color.hsla" msgstr "HSLAتتفتيش صفات اللون" -#: src/app/main/ui/inspect/attributes/common.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:113 msgid "inspect.attributes.color.rgba" msgstr "RGBAفتش اللون" -#: src/app/main/ui/inspect/attributes/fill.cljs +#: src/app/main/ui/viewer/inspect/attributes/fill.cljs:57 msgid "inspect.attributes.fill" msgstr "املأ" -#: src/app/main/ui/inspect/attributes/image.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:99, src/app/main/ui/viewer/inspect/attributes/image.cljs:51 msgid "inspect.attributes.image.download" msgstr "تحميل صورة المصدر" -#: src/app/main/ui/inspect/attributes/image.cljs +#: src/app/main/ui/viewer/inspect/attributes/image.cljs:39 msgid "inspect.attributes.image.height" msgstr "ارتفاع" -#: src/app/main/ui/inspect/attributes/image.cljs +#: src/app/main/ui/viewer/inspect/attributes/image.cljs:32 msgid "inspect.attributes.image.width" msgstr "عرض" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout" msgstr "تخطيط" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.height" msgstr "ارتفاع" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.left" msgstr "يسار" -#: src/app/main/ui/inspect/attributes/layout.cljs, -#: src/app/main/ui/inspect/attributes/layout.cljs +#: src/app/main/ui/inspect/attributes/layout.cljs, src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.radius" msgstr "نصف قطر" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.rotation" msgstr "دوران" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.top" msgstr "أعلى" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.width" msgstr "عرض" -#: src/app/main/ui/inspect/attributes/shadow.cljs +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:57 msgid "inspect.attributes.shadow" msgstr "ظلل" -#: src/app/main/ui/inspect/attributes/stroke.cljs +#: src/app/main/ui/viewer/inspect/attributes/stroke.cljs:52 msgid "inspect.attributes.stroke" msgstr "لون الحدّ" +#, permanent, unused msgid "inspect.attributes.stroke.alignment.center" msgstr "مركز" +#, permanent, unused msgid "inspect.attributes.stroke.alignment.inner" msgstr "داخل" +#, permanent, unused msgid "inspect.attributes.stroke.alignment.outer" msgstr "خارج" +#, unused msgid "inspect.attributes.stroke.style.dotted" msgstr "منقط" +#, unused msgid "inspect.attributes.stroke.style.mixed" msgstr "مختلط" +#, unused msgid "inspect.attributes.stroke.style.none" msgstr "لا أحد" +#, unused msgid "inspect.attributes.stroke.style.solid" msgstr "صلب" #: src/app/main/ui/inspect/attributes/stroke.cljs +#, unused msgid "inspect.attributes.stroke.width" msgstr "عرض" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:81, src/app/main/ui/viewer/inspect/attributes/text.cljs:194 msgid "inspect.attributes.typography" msgstr "صياغة الحروف" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:89 msgid "inspect.attributes.typography.font-family" msgstr "عائلة الخط" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:107 msgid "inspect.attributes.typography.font-size" msgstr "حجم الخط" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:98 msgid "inspect.attributes.typography.font-style" msgstr "نوع الخط" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:116 msgid "inspect.attributes.typography.font-weight" msgstr "وزن الخط" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:134 msgid "inspect.attributes.typography.letter-spacing" msgstr "تباعد الحروف" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:125 msgid "inspect.attributes.typography.line-height" msgstr "ارتفاع الخط" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:143 msgid "inspect.attributes.typography.text-decoration" msgstr "زخرفة النص" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:145 msgid "inspect.attributes.typography.text-decoration.none" msgstr "لا شئ" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:146 msgid "inspect.attributes.typography.text-decoration.strikethrough" msgstr "يتوسطه خط" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:147 msgid "inspect.attributes.typography.text-decoration.underline" msgstr "مسطر" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:156 msgid "inspect.attributes.typography.text-transform" msgstr "تغيير النص" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:158 msgid "inspect.attributes.typography.text-transform.lowercase" msgstr "أحرف صغيرة" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:159 msgid "inspect.attributes.typography.text-transform.none" msgstr "لا شئ" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:160 msgid "inspect.attributes.typography.text-transform.titlecase" msgstr "حالة العنوان" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:161 msgid "inspect.attributes.typography.text-transform.uppercase" msgstr "الأحرف الكبيرة" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:140 msgid "inspect.empty.help" msgstr "إذا كنت تريد معرفة المزيد عن فحص التصميم ، فتفضل بزيارة مركز مساعدة لPenpot" -#: src/app/main/ui/inspect/right_sidebar.cljs +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:125 msgid "inspect.tabs.code" msgstr "شفرة" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:98 msgid "inspect.tabs.code.selected.circle" msgstr "دائرة" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:99 msgid "inspect.tabs.code.selected.component" msgstr "مكون" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:100 msgid "inspect.tabs.code.selected.curve" msgstr "منحنى" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:101 msgid "inspect.tabs.code.selected.frame" msgstr "لوح الرسم" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:102 msgid "inspect.tabs.code.selected.group" msgstr "مجموعة" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:103 msgid "inspect.tabs.code.selected.image" msgstr "صورة" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:104 msgid "inspect.tabs.code.selected.mask" msgstr "قناع" -#: src/app/main/ui/inspect/right_sidebar.cljs +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:93 msgid "inspect.tabs.code.selected.multiple" msgstr "%s محدد" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:105 msgid "inspect.tabs.code.selected.path" msgstr "مسار" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:106 msgid "inspect.tabs.code.selected.rect" msgstr "رباعي" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:107 msgid "inspect.tabs.code.selected.svg-raw" msgstr "SVG" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:108 msgid "inspect.tabs.code.selected.text" msgstr "نص" -#: src/app/main/ui/inspect/right_sidebar.cljs +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:115 msgid "inspect.tabs.info" msgstr "معلومات" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:158 msgid "label.shortcuts" msgstr "الاختصارات" +#: src/app/main/ui/dashboard/import.cljs:527 msgid "labels.accept" msgstr "إقبل" +#: src/app/main/ui/dashboard/fonts.cljs:175 msgid "labels.add-custom-font" msgstr "إضافة خط مخصص" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:120, src/app/main/ui/dashboard/team.cljs:276, src/app/main/ui/dashboard/team.cljs:519, src/app/main/ui/dashboard/team.cljs:549, src/app/main/ui/onboarding/team_choice.cljs:67 msgid "labels.admin" msgstr "مشرف" #: src/app/main/ui/workspace/comments.cljs +#, unused msgid "labels.all" msgstr "الكل" +#: src/app/main/ui/auth.cljs:37 msgid "labels.and" msgstr "و" +#: src/app/main/ui/onboarding/team_choice.cljs:162 msgid "labels.back" msgstr "العودة" -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:59 msgid "labels.bad-gateway.desc-message" msgstr "" "يبدو أنك بحاجة إلى الانتظار قليلا وإعادة المحاولة. نحن نقوم بصيانة صغيرة " "لخوادمنا." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:58 msgid "labels.bad-gateway.main-message" msgstr "مدخل خاطأ" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/data/common.cljs:112, src/app/main/ui/dashboard/change_owner.cljs:69, src/app/main/ui/dashboard/import.cljs:514, src/app/main/ui/dashboard/team.cljs:868, src/app/main/ui/delete_shared.cljs:35, src/app/main/ui/export.cljs:164, src/app/main/ui/export.cljs:460, src/app/main/ui/settings/access_tokens.cljs:188, src/app/main/ui/viewer/share_link.cljs:203, src/app/main/ui/workspace/sidebar/assets/groups.cljs:149 msgid "labels.cancel" msgstr "الغاء" +#: src/app/main/ui/dashboard/projects.cljs:93, src/app/main/ui/export.cljs:478, src/app/main/ui/settings/access_tokens.cljs:183, src/app/main/ui/viewer/login.cljs:77, src/app/main/ui/viewer/share_link.cljs:174, src/app/main/ui/workspace/libraries.cljs:522 msgid "labels.close" msgstr "غلق" -#: src/app/main/ui/dashboard/comments.cljs +#: src/app/main/ui/dashboard/comments.cljs:104, src/app/main/ui/viewer/comments.cljs:70, src/app/main/ui/workspace/comments.cljs:126 msgid "labels.comments" msgstr "تعليقات" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:985, src/app/main/ui/workspace/main_menu.cljs:110 msgid "labels.community" msgstr "مجتمع" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:103 msgid "labels.confirm-password" msgstr "تأكيد كلمة المرور" +#: src/app/main/ui/dashboard/import.cljs:520, src/app/main/ui/export.cljs:465, src/app/main/ui/onboarding/newsletter.cljs:101 msgid "labels.continue" msgstr "استمر" +#, unused msgid "labels.continue-with" msgstr "تابع مع" +#: src/app/main/ui/viewer/login.cljs:75 msgid "labels.continue-with-penpot" msgstr "يمكنك المتابعة مع حساب Penpot" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:157, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:190 msgid "labels.create" msgstr "انشاء" -#: src/app/main/ui/dashboard/team_form.cljs, -#: src/app/main/ui/dashboard/team_form.cljs +#: src/app/main/ui/dashboard/team_form.cljs:101, src/app/main/ui/dashboard/team_form.cljs:121 msgid "labels.create-team" msgstr "إنشاء فريق جديد" -#: src/app/main/ui/dashboard/team_form.cljs +#: src/app/main/ui/dashboard/team_form.cljs:113 msgid "labels.create-team.placeholder" msgstr "أدخل اسم الفريق الجديد" +#, unused msgid "labels.custom-fonts" msgstr "خطوط مخصصة" -#: src/app/main/ui/settings/sidebar.cljs +#: src/app/main/ui/settings/sidebar.cljs:73 msgid "labels.dashboard" msgstr "لوحة التحكم" -#: src/app/main/ui/dashboard/project_menu.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:306, src/app/main/ui/dashboard/fonts.cljs:255, src/app/main/ui/dashboard/fonts.cljs:332, src/app/main/ui/dashboard/fonts.cljs:346, src/app/main/ui/dashboard/project_menu.cljs:115, src/app/main/ui/dashboard/team.cljs:904, src/app/main/ui/settings/access_tokens.cljs:209, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:209 msgid "labels.delete" msgstr "حذف" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:357 msgid "labels.delete-comment" msgstr "حذف التعليق" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:354 msgid "labels.delete-comment-thread" msgstr "حذف موضوع" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:648 msgid "labels.delete-invitation" msgstr "حذف الدعوة" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:262 msgid "labels.delete-multi-files" msgstr "حذف %s ملفات" -#: src/app/main/ui/dashboard/projects.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs, -#: src/app/main/ui/dashboard/files.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:28, src/app/main/ui/dashboard/files.cljs:72, src/app/main/ui/dashboard/files.cljs:156, src/app/main/ui/dashboard/projects.cljs:220, src/app/main/ui/dashboard/projects.cljs:224, src/app/main/ui/dashboard/sidebar.cljs:791 msgid "labels.drafts" msgstr "المسودات" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:350, src/app/main/ui/dashboard/fonts.cljs:252, src/app/main/ui/dashboard/team.cljs:902, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:205 msgid "labels.edit" msgstr "تعديل" +#, unused msgid "labels.edit-file" msgstr "تعديل ملف" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:118, src/app/main/ui/dashboard/team.cljs:279, src/app/main/ui/dashboard/team.cljs:520, src/app/main/ui/dashboard/team.cljs:553, src/app/main/ui/onboarding/team_choice.cljs:66 msgid "labels.editor" msgstr "محرر" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:661 msgid "labels.expired-invitation" msgstr "منتهي الصلاحية" +#: src/app/main/ui/export.cljs:173 msgid "labels.export" msgstr "استخراج" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:51 msgid "labels.feedback-disabled" msgstr "تعطيل الملاحظات" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:42 msgid "labels.feedback-sent" msgstr "تم إرسال الملاحظات" +#: src/app/main/ui/dashboard/fonts.cljs:412 msgid "labels.font-family" msgstr "عائلة الخط" +#, unused msgid "labels.font-providers" msgstr "موفري الخط" +#: src/app/main/ui/dashboard/fonts.cljs:413 msgid "labels.font-variants" msgstr "الأنماط" +#: src/app/main/ui/dashboard/fonts.cljs:52, src/app/main/ui/dashboard/sidebar.cljs:811 msgid "labels.fonts" msgstr "الخطوط" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:1015, src/app/main/ui/workspace/main_menu.cljs:142 msgid "labels.github-repo" msgstr "مستودع Github" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/settings/sidebar.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:1032, src/app/main/ui/settings/sidebar.cljs:113, src/app/main/ui/workspace/main_menu.cljs:171 msgid "labels.give-feedback" msgstr "إعطاء ملاحظات" +#: src/app/main/ui/auth/recovery_request.cljs:110, src/app/main/ui/auth/register.cljs:285, src/app/main/ui/viewer/login.cljs:117 msgid "labels.go-back" msgstr "الرجوع للخلف" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:978, src/app/main/ui/workspace/main_menu.cljs:102 msgid "labels.help-center" msgstr "مركز المساعدة" -#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/comments.cljs:103, src/app/main/ui/workspace/comments.cljs:67 msgid "labels.hide-resolved-comments" msgstr "إخفاء التعليقات التي تم حلها" +#: src/app/main/ui/dashboard/fonts.cljs:410 msgid "labels.installed-fonts" msgstr "الخطوط المتوفرة" -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:144 msgid "labels.internal-error.desc-message" msgstr "شيء سيء حدث الرجاء إعادة محاولة العملية وإذا استمرت المشكلة، اتصل بالدعم." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:143 msgid "labels.internal-error.main-message" msgstr "خطأ داخلي" -#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:516, src/app/main/ui/dashboard/team.cljs:89, src/app/main/ui/dashboard/team.cljs:97, src/app/main/ui/dashboard/team.cljs:708 msgid "labels.invitations" msgstr "الدعوات" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:51 msgid "labels.language" msgstr "اللغة" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:1008, src/app/main/ui/workspace/main_menu.cljs:134 msgid "labels.libraries-and-templates" msgstr "المكتبات والقوالب" +#: src/app/main/ui/viewer/header.cljs:203 msgid "labels.log-or-sign" msgstr "تسجيل الدخول أو الاشتراك" -#: src/app/main/ui/settings.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:1040 msgid "labels.logout" msgstr "تسجيل خروج" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/team.cljs:468 msgid "labels.member" msgstr "عضو" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:510, src/app/main/ui/dashboard/team.cljs:87, src/app/main/ui/dashboard/team.cljs:95 msgid "labels.members" msgstr "الأعضاء" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:96 msgid "labels.new-password" msgstr "كلمة مرور جديدة" -#: src/app/main/ui/workspace/comments.cljs, -#: src/app/main/ui/dashboard/comments.cljs +#: src/app/main/ui/dashboard/comments.cljs:128, src/app/main/ui/workspace/comments.cljs:161 msgid "labels.no-comments-available" msgstr "ليس لديك أي إشعارات تعليق معلقة" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:694 msgid "labels.no-invitations" msgstr "لا توجد دعوات." -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:696 +#, markdown msgid "labels.no-invitations-hint" msgstr "اضغط على الزر \"دعوة إلى الفريق\" لدعوة المزيد من الأعضاء إلى هذا الفريق." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:50 msgid "labels.not-found.desc-message" msgstr "قد لا تكون هذه الصفحة موجودة أو ليس لديك أذونات للوصول إليها." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:49 msgid "labels.not-found.main-message" msgstr "عفواً!" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/projects.cljs:239, src/app/main/ui/dashboard/team.cljs:1095 msgid "labels.num-of-files" msgid_plural "labels.num-of-files" msgstr[0] "0 ملف" @@ -1360,6 +1503,7 @@ msgstr[3] "قليل" msgstr[4] "كثير" msgstr[5] "غير ذلك" +#: src/app/main/ui/viewer/thumbnails.cljs:80 msgid "labels.num-of-frames" msgid_plural "labels.num-of-frames" msgstr[0] "0" @@ -1369,7 +1513,7 @@ msgstr[3] "بعض" msgstr[4] "العديد" msgstr[5] "غير ذلك" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1090 msgid "labels.num-of-projects" msgid_plural "labels.num-of-projects" msgstr[0] "0" @@ -1379,1171 +1523,1311 @@ msgstr[3] "بعض" msgstr[4] "الكثير" msgstr[5] "غير ذلك" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:89 msgid "labels.old-password" msgstr "كلمة المرور القديمة" #: src/app/main/ui/workspace/comments.cljs +#, unused msgid "labels.only-yours" msgstr "خاصة بك" +#, unused msgid "labels.or" msgstr "أو" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:286, src/app/main/ui/dashboard/team.cljs:518, src/app/main/ui/dashboard/team.cljs:1076 msgid "labels.owner" msgstr "مالك" -#: src/app/main/ui/settings/sidebar.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/settings/sidebar.cljs:87 msgid "labels.password" msgstr "كلمة المرور" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:662 msgid "labels.pending-invitation" msgstr "قيد الانتظار" -#: src/app/main/ui/settings/sidebar.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/settings/profile.cljs:118, src/app/main/ui/settings/sidebar.cljs:82 msgid "labels.profile" msgstr "الملف الشخصي" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:784 msgid "labels.projects" msgstr "المشاريع" -#: src/app/main/ui/settings/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:998, src/app/main/ui/settings/sidebar.cljs:106, src/app/main/ui/workspace/main_menu.cljs:126 msgid "labels.release-notes" msgstr "ملاحظات الإصدار" -#: src/app/main/ui/workspace/libraries.cljs, -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/workspace/libraries.cljs, src/app/main/ui/dashboard/team.cljs +#, unused msgid "labels.remove" msgstr "إزالة" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:316 msgid "labels.remove-member" msgstr "إزالة العضو" -#: src/app/main/ui/dashboard/sidebar.cljs, -#: src/app/main/ui/dashboard/project_menu.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:271, src/app/main/ui/dashboard/project_menu.cljs:85, src/app/main/ui/dashboard/sidebar.cljs:539, src/app/main/ui/workspace/sidebar/assets/groups.cljs:157 msgid "labels.rename" msgstr "اعاده تسميه" -#: src/app/main/ui/dashboard/team_form.cljs +#: src/app/main/ui/dashboard/team_form.cljs:99 msgid "labels.rename-team" msgstr "إعادة تسمية الفريق" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:645 msgid "labels.resend-invitation" msgstr "إعادة إرسال الدعوة" -#: src/app/main/ui/static.cljs, src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:61, src/app/main/ui/static.cljs:70, src/app/main/ui/static.cljs:148 msgid "labels.retry" msgstr "أعد المحاولة" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:469, src/app/main/ui/dashboard/team.cljs:709 msgid "labels.role" msgstr "دور" +#: src/app/main/ui/dashboard/fonts.cljs:380, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:191 msgid "labels.save" msgstr "حفظ" +#: src/app/main/ui/dashboard/fonts.cljs:415 msgid "labels.search-font" msgstr "البحث عن الخط" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:82 msgid "labels.send" msgstr "ارسل" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:82 msgid "labels.sending" msgstr "ارسال…" -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:68 msgid "labels.service-unavailable.desc-message" msgstr "نحن في صيانة مبرمجة لأنظمتنا." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:67 msgid "labels.service-unavailable.main-message" msgstr "الخدمة غير متوفرة" -#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:530, src/app/main/ui/dashboard/team.cljs:88, src/app/main/ui/dashboard/team.cljs:102, src/app/main/ui/settings/options.cljs:84, src/app/main/ui/settings/sidebar.cljs:93 msgid "labels.settings" msgstr "إعدادات" +#, unused msgid "labels.share-prototype" msgstr "مشاركة النموذج الأولي" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:800 msgid "labels.shared-libraries" msgstr "المكتبات المشتركة" -#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/comments.cljs:82, src/app/main/ui/workspace/comments.cljs:55, src/app/main/ui/workspace/comments.cljs:135 msgid "labels.show-all-comments" msgstr "إظهار كافة التعليقات" +#: src/app/main/ui/viewer/comments.cljs:115 msgid "labels.show-comments-list" msgstr "قائمة التعليقات" -#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/comments.cljs:91, src/app/main/ui/workspace/comments.cljs:61, src/app/main/ui/workspace/comments.cljs:136 msgid "labels.show-your-comments" msgstr "إظهار تعليقاتك فقط" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:710 msgid "labels.status" msgstr "الحالة" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:992, src/app/main/ui/workspace/main_menu.cljs:118 msgid "labels.tutorials" msgstr "الدروس" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:103 msgid "labels.update" msgstr "تحديث" -#: src/app/main/ui/dashboard/team_form.cljs +#: src/app/main/ui/dashboard/team_form.cljs:120 msgid "labels.update-team" msgstr "تحديث الفريق" +#: src/app/main/ui/dashboard/fonts.cljs:241 msgid "labels.upload" msgstr "رفع" +#: src/app/main/ui/dashboard/fonts.cljs:169 msgid "labels.upload-custom-fonts" msgstr "تحميل الخطوط المخصصة" +#: src/app/main/ui/dashboard/fonts.cljs:240 msgid "labels.uploading" msgstr "جارٍ الرفع …" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:123, src/app/main/ui/dashboard/team.cljs:282, src/app/main/ui/dashboard/team.cljs:521 msgid "labels.viewer" msgstr "مشاهد" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:194 msgid "labels.write-new-comment" msgstr "كتابة تعليق جديد" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/team.cljs:237 msgid "labels.you" msgstr "(أنت)" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:968 msgid "labels.your-account" msgstr "حسابك" -#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs +#: src/app/main/data/media.cljs:49, src/app/main/data/workspace/media.cljs:223, src/app/main/data/workspace/media.cljs:453 msgid "media.loading" msgstr "جاري تحميل الصورة…" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/data/common.cljs:113 msgid "modals.add-shared-confirm.accept" msgstr "إضافة كمكتبة مشتركة" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/data/common.cljs:111 msgid "modals.add-shared-confirm.hint" msgstr "" "بمجرد إضافتها كمكتبة مشتركة، ستكون أصول مكتبة الملفات هذه متاحة للاستخدام " "بين باقي ملفاتك." -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/data/common.cljs:110 msgid "modals.add-shared-confirm.message" msgstr "إضافة “%s” كمكتبة مشتركة" -#: src/app/main/ui/workspace/nudge.cljs +#: src/app/main/ui/workspace/nudge.cljs:60 msgid "modals.big-nudge" msgstr "دفعة كبيرة" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:127 msgid "modals.change-email.confirm-email" msgstr "تحقق من البريد الإلكتروني الجديد" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:114 msgid "modals.change-email.info" msgstr "سنرسل لك رسالة إلى بريدك الإلكتروني الحالي “%s” للتحقق من هويتك." -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:119 msgid "modals.change-email.new-email" msgstr "بريد إلكتروني جديد" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:136 msgid "modals.change-email.submit" msgstr "تغيير البريد الإلكتروني" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:107 msgid "modals.change-email.title" msgstr "تغيير بريدك الإلكتروني" -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:59 msgid "modals.delete-account.cancel" msgstr "إلغاء والاحتفاظ بحسابي" -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:64 msgid "modals.delete-account.confirm" msgstr "نعم، احذف حسابي" -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:53 msgid "modals.delete-account.info" msgstr "بحذف حسابك، ستفقد جميع مشاريعك وأرشيفاتك الحالية." -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:46 msgid "modals.delete-account.title" msgstr "هل انت متأكد انك تريد حذف حسابك؟" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:298 msgid "modals.delete-comment-thread.accept" msgstr "حذف المحادثة" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:297 msgid "modals.delete-comment-thread.message" msgstr "" "هل أنت متأكد أنك تريد حذف هذه المحادثة؟ سيتم حذف جميع التعليقات في هذا " "الموضوع." -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:296 msgid "modals.delete-comment-thread.title" msgstr "حذف المحادثة" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:123 msgid "modals.delete-file-confirm.accept" msgstr "حذف الملف" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:122 msgid "modals.delete-file-confirm.message" msgstr "هل أنت متأكد أنك تريد حذف هذا الملف؟" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:121 msgid "modals.delete-file-confirm.title" msgstr "حذف الملف" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:117 msgid "modals.delete-file-multi-confirm.accept" msgstr "حذف الملفات" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:116 msgid "modals.delete-file-multi-confirm.message" msgstr "هل تريد بالتأكيد حذف %s من الملفات؟" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:115 msgid "modals.delete-file-multi-confirm.title" msgstr "حذف %s الملفات" +#: src/app/main/ui/dashboard/fonts.cljs:345 msgid "modals.delete-font-variant.message" msgstr "" "هل أنت متأكد أنك تريد حذف نمط هذا الخط؟ لن يتم تحميله إذا تم استخدامه في " "ملف." +#: src/app/main/ui/dashboard/fonts.cljs:344 msgid "modals.delete-font-variant.title" msgstr "حذف نمط الخط" +#: src/app/main/ui/dashboard/fonts.cljs:331 msgid "modals.delete-font.message" msgstr "هل أنت متأكد أنك تريد حذف هذا الخط؟ لن يتم تحميله إذا تم استخدامه في ملف." +#: src/app/main/ui/dashboard/fonts.cljs:330 msgid "modals.delete-font.title" msgstr "حذف الخط" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs +#: src/app/main/ui/workspace/context_menu.cljs:522, src/app/main/ui/workspace/sidebar/sitemap.cljs:45 msgid "modals.delete-page.body" msgstr "هل أنت متأكد أنك تريد حذف هذه الصفحة؟" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs +#: src/app/main/ui/workspace/context_menu.cljs:521, src/app/main/ui/workspace/sidebar/sitemap.cljs:44 msgid "modals.delete-page.title" msgstr "حذف الصفحة" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:69 msgid "modals.delete-project-confirm.accept" msgstr "حذف المشروع" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:68 msgid "modals.delete-project-confirm.message" msgstr "هل أنت متأكد أنك تريد حذف هذا المشروع؟" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:67 msgid "modals.delete-project-confirm.title" msgstr "حذف المشروع" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:435 msgid "modals.delete-team-confirm.accept" msgstr "حذف الفريق" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:434 msgid "modals.delete-team-confirm.message" msgstr "" "هل أنت متأكد أنك تريد حذف هذا الفريق؟ سيتم حذف جميع المشاريع والملفات " "المرتبطة بالفريق نهائيًا." -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:433 msgid "modals.delete-team-confirm.title" msgstr "حذف الفريق" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:427 msgid "modals.delete-team-member-confirm.accept" msgstr "حذف عضو" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:426 msgid "modals.delete-team-member-confirm.message" msgstr "هل أنت متأكد أنك تريد حذف هذا العضو من الفريق؟" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:425 msgid "modals.delete-team-member-confirm.title" msgstr "حذف العضو" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:218 msgid "modals.invite-member-confirm.accept" msgstr "إرسال دعوة" +#: src/app/main/ui/dashboard/team.cljs:213, src/app/main/ui/onboarding/team_choice.cljs:156 msgid "modals.invite-member.emails" msgstr "رسائل البريد الإلكتروني، مفصولة بفواصل" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:190 msgid "modals.invite-team-member.title" msgstr "ادعُ الأعضاء إلى الفريق" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:423, src/app/main/ui/dashboard/team.cljs:393 msgid "modals.leave-and-close-confirm.hint" msgstr "نظرًا لأنك العضو الوحيد في هذا الفريق ، فسيتم حذف الفريق مع مشاريعه وملفاته." -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:422, src/app/main/ui/dashboard/team.cljs:392 msgid "modals.leave-and-close-confirm.message" msgstr "هل أنت متأكد أنك تريد مغادرة فريق %s ؟" +#: src/app/main/ui/dashboard/change_owner.cljs:59 msgid "modals.leave-and-reassign.forbidden" msgstr "" "لا يمكنك مغادرة الفريق إذا لم يكن هناك عضو آخر للترقية إلى المالك. قد ترغب " "في حذف الفريق." -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/change_owner.cljs:55 msgid "modals.leave-and-reassign.hint1" msgstr "أنت %s المالك." -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/change_owner.cljs:78 msgid "modals.leave-and-reassign.promote-and-leave" msgstr "قم بالترقية والمغادرة" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/change_owner.cljs:34 msgid "modals.leave-and-reassign.select-member-to-promote" msgstr "حدد عضوا للترقية" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/change_owner.cljs:49 msgid "modals.leave-and-reassign.title" msgstr "حدد عضوا للترقية" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:402, src/app/main/ui/dashboard/sidebar.cljs:424, src/app/main/ui/dashboard/team.cljs:394, src/app/main/ui/dashboard/team.cljs:416 msgid "modals.leave-confirm.accept" msgstr "ترك الفريق" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:401, src/app/main/ui/dashboard/team.cljs:415 msgid "modals.leave-confirm.message" msgstr "هل أنت متأكد أنك تريد مغادرة هذا الفريق؟" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:400, src/app/main/ui/dashboard/sidebar.cljs:421, src/app/main/ui/dashboard/team.cljs:391, src/app/main/ui/dashboard/team.cljs:414 msgid "modals.leave-confirm.title" msgstr "مغادرة الفريق" -#: src/app/main/ui/workspace/nudge.cljs +#: src/app/main/ui/workspace/main_menu.cljs:266, src/app/main/ui/workspace/nudge.cljs:47 msgid "modals.nudge-title" msgstr "كمية الدفع" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:340 msgid "modals.promote-owner-confirm.accept" msgstr "رقى" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:339 msgid "modals.promote-owner-confirm.hint" msgstr "" "إذا قمت بنقل الملكية ، فسوف تقوم بتغيير دورك إلى المسؤول ، وستفقد بعض " "الأذونات على هذا الفريق. " -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:338 msgid "modals.promote-owner-confirm.message" msgstr "هل أنت متأكد أنك تريد ترقية هذا المستخدم إلى مالك؟" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:337 msgid "modals.promote-owner-confirm.title" msgstr "الترقية إلى مالك" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "modals.remove-shared-confirm.accept" msgstr "إزالة كمكتبة مشتركة" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "modals.remove-shared-confirm.hint" msgstr "" "بمجرد إزالتها كمكتبة مشتركة ، ستتوقف مكتبة الملفات لهذا الملف عن كونها " "متاحة للاستخدام بين بقية ملفاتك." -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "modals.remove-shared-confirm.message" msgstr "إزالة “%s” كمكتبة مشتركة" -#: src/app/main/ui/workspace/nudge.cljs +#: src/app/main/ui/workspace/nudge.cljs:53 msgid "modals.small-nudge" msgstr "دفعة صغيرة" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:52 msgid "modals.unpublish-shared-confirm.accept" msgstr "إلغاء النشر" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#, unused msgid "modals.update-remote-component-in-bulk.hint" msgstr "" "أنت على وشك تحديث المكونات في مكتبة مشتركة. قد يؤثر هذا على الملفات الأخرى " "التي تستخدمها." -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#, unused msgid "modals.update-remote-component-in-bulk.message" msgstr "تحديث المكونات في مكتبة مشتركة" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:380 msgid "modals.update-remote-component.accept" msgstr "تحديث المكون" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:379 msgid "modals.update-remote-component.cancel" msgstr "إلغاﺀ" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:378 msgid "modals.update-remote-component.hint" msgstr "" "أنت على وشك تحديث مكون في مكتبة مشتركة. قد يؤثر هذا على الملفات الأخرى التي " "تستخدمها." -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:377 msgid "modals.update-remote-component.message" msgstr "تحديث المكون في المكتبة المشتركة" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:154, src/app/main/ui/dashboard/team.cljs:595 msgid "notifications.invitation-email-sent" msgstr "تم إرسال الدعوة بنجاح" -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:24 msgid "notifications.profile-deletion-not-allowed" msgstr "لا يمكنك حذف ملفّك الشخصي، قم بإحالة فريقك قبل المتابعة." -#: src/app/main/ui/settings/profile.cljs, src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:29, src/app/main/ui/settings/profile.cljs:35 msgid "notifications.profile-saved" msgstr "تم حفظ الملف الشخصي بنجاح!" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:63 msgid "notifications.validation-email-sent" msgstr "تم إرسال رسالة التحقق إلى %s. راجع بريدك الالكتروني!" +#, unused msgid "onboarding-v2.before-start.desc1" msgstr "" "يجب أن تعلم أن هناك الكثير من الموارد المتاحة لمساعدتك في بدء استخدام " "Penpot ، مثل دليل المستخدم وقناة Youtube الخاصة بنا." +#, unused msgid "onboarding-v2.before-start.desc2" msgstr "" "معلومات مفصلة حول كيفية استخدام Penpot. من النماذج الأولية إلى تنظيم أو " "مشاركة التصاميم." +#, unused msgid "onboarding-v2.before-start.desc2.title" msgstr "دليل المستخدم" +#, unused msgid "onboarding-v2.before-start.desc3" msgstr "يمكنك مشاهدة برامجنا التعليمية والبرامج التعليمية التي قدمها مجتمعنا." +#, unused msgid "onboarding-v2.before-start.desc3.title" msgstr "دروس الفيديو" +#, unused msgid "onboarding-v2.before-start.title" msgstr "قبل ان تبدا" +#, unused msgid "onboarding-v2.welcome.desc1" msgstr "" "Penpot هو برنامج مفتوح المصدر وهو من صنع Kaleidos وكذلك المجتمع ، حيث يساعد " "الكثير من الناس بعضهم البعض بالفعل. يمكن للجميع التعاون من خلال:" +#, unused msgid "onboarding-v2.welcome.desc2" msgstr "" "مساحة عامة للتعلم والمشاركة والمناقشة حول Penpot وحاضرها ومستقبلها مع " "المجتمع بأكمله وفريق Penpot الأساسي." +#, unused msgid "onboarding-v2.welcome.desc2.title" msgstr "المشاركة في المجتمع" +#, unused msgid "onboarding-v2.welcome.desc3" msgstr "" "حيث ستجد كيفية التعاون في الترجمات وطلبات الميزات والمساهمات الأساسية " "والبحث عن الأخطاء …" +#, unused msgid "onboarding-v2.welcome.desc3.title" msgstr "دليل المساهمة" +#: src/app/main/ui/onboarding/team_choice.cljs:31 msgid "onboarding-v2.welcome.title" msgstr "مرحبًا بك في Penpot!" +#: src/app/main/ui/onboarding/team_choice.cljs:215 msgid "onboarding.choice.team-up.create-team-desc" msgstr "بعد تسمية فريقك ، ستتمكن من دعوة الأشخاص للانضمام." +#: src/app/main/ui/onboarding/team_choice.cljs:224 msgid "onboarding.choice.team-up.create-team-placeholder" msgstr "أدخل اسم الفريق" +#: src/app/main/ui/dashboard/projects.cljs:89, src/app/main/ui/onboarding/team_choice.cljs:140 msgid "onboarding.choice.team-up.invite-members" msgstr "دعوة أعضاء" +#: src/app/main/ui/onboarding/team_choice.cljs:141 msgid "onboarding.choice.team-up.invite-members-info" msgstr "تذكر أن تشمل الجميع. المطورين والمصممين والمديرين ... التنوع يضيف :)" +#: src/app/main/ui/dashboard/team.cljs:202, src/app/main/ui/onboarding/team_choice.cljs:146 msgid "onboarding.choice.team-up.roles" msgstr "دعوة مع الدور:" +#, unused msgid "onboarding.newsletter.accept" msgstr "نعم ، اشترك" +#: src/app/main/ui/onboarding/newsletter.cljs:40 msgid "onboarding.newsletter.acceptance-message" msgstr "تم إرسال طلب الاشتراك الخاص بك ، وسوف نرسل لك بريدًا إلكترونيًا لتأكيده." +#: src/app/main/ui/onboarding/newsletter.cljs:95 msgid "onboarding.newsletter.policy" msgstr "سياسة الخصوصية." +#: src/app/main/ui/onboarding/newsletter.cljs:60 msgid "onboarding.newsletter.title" msgstr "هل تريد تلقي أخبار Penpot؟" +#: src/app/main/ui/onboarding/team_choice.cljs:213 msgid "onboarding.team-modal.create-team" msgstr "أنشئ فريقًا" +#: src/app/main/ui/onboarding/team_choice.cljs:35 msgid "onboarding.team-modal.create-team-desc" msgstr "" "يسمح لك الفريق بالتعاون مع مستخدمي Penpot الآخرين الذين يعملون في نفس " "الملفات والمشاريع." +#: src/app/main/ui/onboarding/team_choice.cljs:40 msgid "onboarding.team-modal.create-team-feature-1" msgstr "ملفات ومشاريع غير محدودة" +#: src/app/main/ui/onboarding/team_choice.cljs:44 msgid "onboarding.team-modal.create-team-feature-2" msgstr "إصدار متعدد اللاعبين" +#: src/app/main/ui/onboarding/team_choice.cljs:48 msgid "onboarding.team-modal.create-team-feature-3" msgstr "إدارة الأدوار" +#: src/app/main/ui/onboarding/team_choice.cljs:52 msgid "onboarding.team-modal.create-team-feature-4" msgstr "عدد غير محدود من الأعضاء" +#: src/app/main/ui/onboarding/team_choice.cljs:56 msgid "onboarding.team-modal.create-team-feature-5" msgstr "مجانا 100٪ !" +#: src/app/main/ui/onboarding/templates.cljs:78 msgid "onboarding.templates.subtitle" msgstr "فيما يلي بعض القوالب." +#: src/app/main/ui/onboarding/templates.cljs:77 msgid "onboarding.templates.title" msgstr "إبدأ التصميم" +#, unused msgid "onboarding.welcome.alt" msgstr "Penpotأهلا بك في" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:99 msgid "profile.recovery.go-to-login" msgstr "اذهب إلى تسجيل الدخول" -#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs +#: src/app/main/ui/viewer/inspect/exports.cljs:147, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:631, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:137, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:148, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:188, src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:158, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:399, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:410, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:430, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:441, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:458, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:472, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:309, src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:183, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:373, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:389, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:245, src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:172 msgid "settings.multiple" msgstr "مكرر" # SECTIONS +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:414 msgid "shortcut-section.basics" msgstr "الأساسيات" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:420 msgid "shortcut-section.dashboard" msgstr "لوحة القيادة" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:423 msgid "shortcut-section.viewer" msgstr "مشاهد" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:417 msgid "shortcut-section.workspace" msgstr "مساحة العمل" # SUBSECTIONS +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:56 msgid "shortcut-subsection.alignment" msgstr "محاذاة" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:57 msgid "shortcut-subsection.edit" msgstr "تعديل" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:58 msgid "shortcut-subsection.general-dashboard" msgstr "عام" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:59 msgid "shortcut-subsection.general-viewer" msgstr "عام" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:60 msgid "shortcut-subsection.main-menu" msgstr "القائمة الرئيسية" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:61 msgid "shortcut-subsection.modify-layers" msgstr "تعديل الطبقات" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:62 msgid "shortcut-subsection.navigation-dashboard" msgstr "التنقل" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:63 msgid "shortcut-subsection.navigation-viewer" msgstr "التنقل" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:64 msgid "shortcut-subsection.navigation-workspace" msgstr "التنقل" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:65 msgid "shortcut-subsection.panels" msgstr "اللوحات" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:66 msgid "shortcut-subsection.path-editor" msgstr "مسارات" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:67 msgid "shortcut-subsection.shape" msgstr "الأشكال" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:69 msgid "shortcut-subsection.tools" msgstr "أدوات" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:70 msgid "shortcut-subsection.zoom-viewer" msgstr "تكبير" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:71 msgid "shortcut-subsection.zoom-workspace" msgstr "تكبير" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:72 msgid "shortcuts.add-comment" msgstr "تعليقات" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:73 msgid "shortcuts.add-node" msgstr "إضافة عقدة" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:74 msgid "shortcuts.align-bottom" msgstr "محاذاة لأسفل" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:76 msgid "shortcuts.align-hcenter" msgstr "محاذاة المركز أفقيًا" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:78 msgid "shortcuts.align-left" msgstr "محاذاة اليسار" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:79 msgid "shortcuts.align-right" msgstr "محاذاة اليمين" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:80 msgid "shortcuts.align-top" msgstr "‌محاذاة الأعلى" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:81 msgid "shortcuts.align-vcenter" msgstr "محاذاة المركز عموديًا" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:82 msgid "shortcuts.artboard-selection" msgstr "إنشاء لوحة من الاختيار" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:84 msgid "shortcuts.bool-difference" msgstr "فرق منطقي" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:85 msgid "shortcuts.bool-exclude" msgstr "استبعاد منطقي" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:86 msgid "shortcuts.bool-intersection" msgstr "تقاطع منطقي" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:87 msgid "shortcuts.bool-union" msgstr "الاتحاد المنطقي" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:88 msgid "shortcuts.bring-back" msgstr "أرسل إلى الخلف" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:89 msgid "shortcuts.bring-backward" msgstr "إرسال إلى الوراء" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:90 msgid "shortcuts.bring-forward" msgstr "ثابر للأمام" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:91 msgid "shortcuts.bring-front" msgstr "أحضر إلى الأمام" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:92 msgid "shortcuts.clear-undo" msgstr "مسح التراجع" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:93 msgid "shortcuts.copy" msgstr "إنسخ" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:94 msgid "shortcuts.create-component" msgstr "تكوين المكون" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:95 msgid "shortcuts.create-new-project" msgstr "أضف جديد" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:96 msgid "shortcuts.cut" msgstr "إقطع" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:97 msgid "shortcuts.decrease-zoom" msgstr "تصغير" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:98 msgid "shortcuts.delete" msgstr "حذف" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:99 msgid "shortcuts.delete-node" msgstr "حذف العقدة" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:100 msgid "shortcuts.detach-component" msgstr "إفصل المكون" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:101 msgid "shortcuts.draw-curve" msgstr "منحنى" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:102 msgid "shortcuts.draw-ellipse" msgstr "الشكل البيضاوي" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:103 msgid "shortcuts.draw-frame" msgstr "لوحة" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:104 msgid "shortcuts.draw-nodes" msgstr "أرسم المسار" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:105 msgid "shortcuts.draw-path" msgstr "المسار" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:106 msgid "shortcuts.draw-rect" msgstr "مستطيل" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:107 msgid "shortcuts.draw-text" msgstr "نص" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:108 msgid "shortcuts.duplicate" msgstr "كرر" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:109 msgid "shortcuts.escape" msgstr "إلغي" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:110 msgid "shortcuts.export-shapes" msgstr "تصدير الأشكال" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:111 msgid "shortcuts.fit-all" msgstr "تكبير لتناسب الجميع" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:112 msgid "shortcuts.flip-horizontal" msgstr "قلب أفقيًا" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:113 msgid "shortcuts.flip-vertical" msgstr "قلب عموديًا" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:116 msgid "shortcuts.go-to-drafts" msgstr "إنتقل إلى المسودات" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:117 msgid "shortcuts.go-to-libs" msgstr "إذهب إلى المكتبات المشتركة" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:118 msgid "shortcuts.go-to-search" msgstr "بحث" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:119 msgid "shortcuts.group" msgstr "مجموعة" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:120 msgid "shortcuts.h-distribute" msgstr "وزع أفقيًا" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:121 msgid "shortcuts.hide-ui" msgstr "إظهار / إخفاء واجهة المستخدم" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:122 msgid "shortcuts.increase-zoom" msgstr "تكبير" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:123 msgid "shortcuts.insert-image" msgstr "إدراج صورة" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:125 msgid "shortcuts.join-nodes" msgstr "ربط العقد" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:131 msgid "shortcuts.make-corner" msgstr "إصنع زاوية" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:132 msgid "shortcuts.make-curve" msgstr "إصنع منحنى" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:133 msgid "shortcuts.mask" msgstr "قناع" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:134 msgid "shortcuts.merge-nodes" msgstr "دمج العقد" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:135 msgid "shortcuts.move" msgstr "تحرك" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:136 msgid "shortcuts.move-fast-down" msgstr "تحرك بسرعة لأسفل" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:137 msgid "shortcuts.move-fast-left" msgstr "تحرك يسارا بسرعة" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:138 msgid "shortcuts.move-fast-right" msgstr "تحرك يميناً بسرعة" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:139 msgid "shortcuts.move-fast-up" msgstr "تحرك للأعلى بسرعة" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:140 msgid "shortcuts.move-nodes" msgstr "نقل العقدة" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:141 msgid "shortcuts.move-unit-down" msgstr "تحرك لأسفل" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:142 msgid "shortcuts.move-unit-left" msgstr "تحرك يساراً" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:143 msgid "shortcuts.move-unit-right" msgstr "تحرك يميناً" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:144 msgid "shortcuts.move-unit-up" msgstr "تحرك للأعلى" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:145 msgid "shortcuts.next-frame" msgstr "اللوحة التالية" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:516 msgid "shortcuts.not-found" msgstr "لا يوجد إختصارات" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:146 msgid "shortcuts.opacity-0" msgstr "ضبط التعتيم على 100٪" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:147 msgid "shortcuts.opacity-1" msgstr "اضبط التعتيم على 10٪" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:148 msgid "shortcuts.opacity-2" msgstr "اضبط التعتيم على 20٪" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:149 msgid "shortcuts.opacity-3" msgstr "اضبط التعتيم على 30%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:150 msgid "shortcuts.opacity-4" msgstr "اضبط التعتيم على 40%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:151 msgid "shortcuts.opacity-5" msgstr "اضبط التعتيم على 50%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:152 msgid "shortcuts.opacity-6" msgstr "اضبط التعتيم على 60%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:153 msgid "shortcuts.opacity-7" msgstr "اضبط التعتيم على 70%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:154 msgid "shortcuts.opacity-8" msgstr "اضبط التعتيم على 80%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:155 msgid "shortcuts.opacity-9" msgstr "اضبط التعتيم على 90%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:156 msgid "shortcuts.open-color-picker" msgstr "أداة انتقاء اللون" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:158 msgid "shortcuts.open-dashboard" msgstr "إذهب إلى لوحة المعلومات" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:193 msgid "shortcuts.toggle-layers" msgstr "تبديل الطبقات" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:194 msgid "shortcuts.toggle-layout-flex" msgstr "أضف\\أزل ثني التخطيط" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:196 msgid "shortcuts.toggle-lock" msgstr "قفل\\فتح" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:197 msgid "shortcuts.toggle-lock-size" msgstr "قفل النسب" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:202 msgid "shortcuts.toggle-textpalette" msgstr "تبديل لوحة النص" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:204 msgid "shortcuts.toggle-visibility" msgstr "أظهر\\أخف" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:205 msgid "shortcuts.toggle-zoom-style" msgstr "تبديل أسلوب التكبير" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:206 msgid "shortcuts.underline" msgstr "الخط التحتي" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:207 msgid "shortcuts.undo" msgstr "الغاء" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:208 msgid "shortcuts.ungroup" msgstr "فك التجميع" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:209 msgid "shortcuts.unmask" msgstr "كشف القناع" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:210 msgid "shortcuts.v-distribute" msgstr "النشر عموديا" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:211 msgid "shortcuts.zoom-lense-decrease" msgstr "تنقيص عدسة التكبير" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:212 msgid "shortcuts.zoom-lense-increase" msgstr "زيادة عدسة التكبير" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:213 msgid "shortcuts.zoom-selected" msgstr "كبر المحدد" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:771 msgid "team.webhooks.max-length" msgstr "يجب الا يزيد اسم الويبهوك على 2048 حرفا" -#: src/app/main/ui/dashboard/files.cljs +#: src/app/main/ui/dashboard/files.cljs:158 msgid "title.dashboard.files" msgstr "%s - Penpotعنوان ملفات لوحة القيادة" -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:37 msgid "title.dashboard.font-providers" msgstr "مزودي أسلوب الخط - %s - Penpot" -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:36 msgid "title.dashboard.fonts" msgstr "أسلوب خط لوحة القيادة - %s - Penpot" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:320 msgid "title.dashboard.projects" msgstr "برامج ملفات القيادة - %s - Penpot" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:32 msgid "title.dashboard.search" msgstr "البحث - %s - Penpot" -#: src/app/main/ui/dashboard/libraries.cljs +#: src/app/main/ui/dashboard/libraries.cljs:44 msgid "title.dashboard.shared-libraries" msgstr "المكاتب المقسمة - %s - Penpot" -#: src/app/main/ui/auth/verify_token.cljs, src/app/main/ui/auth.cljs +#: src/app/main/ui/auth/verify_token.cljs:68, src/app/main/ui/auth.cljs:54 msgid "title.default" msgstr "Penpot - صمم حرية الفرق" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:292 msgid "title.settings.access-tokens" msgstr "رموز الوصول للحساب" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:110 msgid "title.settings.feedback" msgstr "جواب الرد - Penpot" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:80 msgid "title.settings.options" msgstr "إعدادات - Penpot" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:115 msgid "title.settings.password" msgstr "كلمة المرور - Penpot" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:115 msgid "title.settings.profile" msgstr "واجهة الحساب - Penpot" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:727 msgid "title.team-invitations" msgstr "الدعوات - %s - Penpot" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:493 msgid "title.team-members" msgstr "أعضاء الفريق - %s - Penpot" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1036 msgid "title.team-settings" msgstr "إعدادات - %s - Penpot" +#: src/app/main/ui/dashboard/team.cljs:989 msgid "title.team-webhooks" msgstr "خطافات الويب - %s - Penpot" -#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs +#: src/app/main/ui/viewer.cljs:419 msgid "title.viewer" msgstr "%s -أسلوب العرض - Penpot" -#: src/app/main/ui/workspace.cljs +#: src/app/main/ui/workspace.cljs:190 msgid "title.workspace" msgstr "%s -مساحة العمل Penpot" +#: src/app/main/ui.cljs:144 msgid "viewer.breaking-change.description" msgstr "" "وصف كسر التغييرThis shareable link is no longer valid. Create a new one or " "ask the owner for a new one.هذا الرابط القابل للمشاركة لم يعد صالحا.صمم " "جديدا أو اسأل مالكه للجديد" +#: src/app/main/ui.cljs:143 msgid "viewer.breaking-change.message" msgstr "آسف" -#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs +#: src/app/main/ui/viewer.cljs:569 msgid "viewer.empty-state" msgstr "No boards found on the page." -#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs +#: src/app/main/ui/viewer.cljs:574 msgid "viewer.frame-not-found" msgstr "لم يعثر على البورد ." +#: src/app/main/ui/viewer/header.cljs:336 msgid "viewer.header.comments-section" msgstr "التعليقات (%s)" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/interactions.cljs:292 msgid "viewer.header.dont-show-interactions" msgstr "لا تطهر التفاعلات" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/header.cljs:188 msgid "viewer.header.fullscreen" msgstr "تكبير الشاشة" +#: src/app/main/ui/viewer/header.cljs:345 msgid "viewer.header.inspect-section" msgstr "التفحص (%s)" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/interactions.cljs:282 msgid "viewer.header.interactions" msgstr "التفاعلات" +#: src/app/main/ui/viewer/header.cljs:327 msgid "viewer.header.interactions-section" msgstr "التفاعلات (%s)" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/share_link.cljs:187 msgid "viewer.header.share.copy-link" msgstr "نسخ الرابط" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/interactions.cljs:300 msgid "viewer.header.show-interactions" msgstr "أطهر التفاعلات بالنقر" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/interactions.cljs:311 msgid "viewer.header.show-interactions-on-click" msgstr "أطهر التفاعلات بالنقر" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/header.cljs:231 msgid "viewer.header.sitemap" msgstr "خريطة الموقع" -#, fuzzy +#: src/app/main/ui/dashboard/team.cljs:948 msgid "webhooks.last-delivery.success" msgstr "محاذاة المركز الأفقي" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:58 msgid "workspace.align.hcenter" msgstr "محاذاة المركز الأفقي (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:74 msgid "workspace.align.hdistribute" msgstr "توزيع المسافات الأفقية (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:50 msgid "workspace.align.hleft" msgstr "محاذاة لليسار (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:66 msgid "workspace.align.hright" msgstr "محاذاة لليمين (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:99 msgid "workspace.align.vbottom" msgstr "محاذاة للأسفل (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:91 msgid "workspace.align.vcenter" msgstr "محاذاة للمركز العمودي (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:104 msgid "workspace.align.vdistribute" msgstr "توزيع التباعد الرئسي (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:83 msgid "workspace.align.vtop" msgstr "محاذاة أعلى (%s)" #: src/app/main/ui/workspace/sidebar/assets.cljs +#, unused msgid "workspace.assets.assets" msgstr "أصول" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets.cljs:134 msgid "workspace.assets.box-filter-all" msgstr "كل الأصول" -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/dashboard/grid.cljs:130, src/app/main/ui/dashboard/grid.cljs:162, src/app/main/ui/workspace/sidebar/assets/colors.cljs:485, src/app/main/ui/workspace/sidebar/assets.cljs:150 msgid "workspace.assets.colors" msgstr "الألوان" -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/dashboard/grid.cljs:126, src/app/main/ui/dashboard/grid.cljs:141, src/app/main/ui/workspace/sidebar/assets/components.cljs:513, src/app/main/ui/workspace/sidebar/assets.cljs:139 msgid "workspace.assets.components" msgstr "عناصر" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:131 msgid "workspace.assets.create-group" msgstr "إيجاد مجموعة" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:142 msgid "workspace.assets.create-group-hint" msgstr "\"ستسمى عناصرك تلقائيا ك\"اسم مجموعة\" \"اسم عنصر" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/context_menu.cljs:529, src/app/main/ui/workspace/sidebar/assets/colors.cljs:251, src/app/main/ui/workspace/sidebar/assets/components.cljs:577, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:424, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:443 msgid "workspace.assets.delete" msgstr "امسح" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/context_menu.cljs:534, src/app/main/ui/workspace/sidebar/assets/components.cljs:572 msgid "workspace.assets.duplicate" msgstr "انسخ" +#: src/app/main/ui/workspace/sidebar/assets/components.cljs:571 msgid "workspace.assets.duplicate-main" msgstr "انسخ الأصل" -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:247, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:439 msgid "workspace.assets.edit" msgstr "التحرير" -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/graphics.cljs:384, src/app/main/ui/workspace/sidebar/assets.cljs:145 msgid "workspace.assets.graphics" msgstr "رسومات" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:255, src/app/main/ui/workspace/sidebar/assets/components.cljs:581, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:428, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:448 msgid "workspace.assets.group" msgstr "مجموعة" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:141 msgid "workspace.assets.group-name" msgstr "اسم المجموعة" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets.cljs:168 msgid "workspace.assets.libraries" msgstr "المكتبات" +#: src/app/main/ui/workspace/sidebar/assets/file_library.cljs:62, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:347 msgid "workspace.assets.local-library" msgstr "المكتبة المحلية" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/file_library.cljs:295 msgid "workspace.assets.not-found" msgstr "الأصل غير موجود" +#, unused msgid "workspace.assets.open-library" msgstr "افتح ملف المكتب" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/context_menu.cljs:532, src/app/main/ui/workspace/sidebar/assets/colors.cljs:243, src/app/main/ui/workspace/sidebar/assets/components.cljs:566, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:421, src/app/main/ui/workspace/sidebar/assets/groups.cljs:63, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:434 msgid "workspace.assets.rename" msgstr "إعادة تسمية" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:132 msgid "workspace.assets.rename-group" msgstr "إعادة تسمية المجموعة" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets.cljs:173 msgid "workspace.assets.search" msgstr "الخث عن أصل" #: src/app/main/ui/workspace/sidebar/assets.cljs +#, unused msgid "workspace.assets.selected-count" msgid_plural "workspace.assets.selected-count" msgstr[0] "%s العناصر المحددة" @@ -2554,1783 +2838,1896 @@ msgstr[4] "" msgstr[5] "" #: src/app/main/ui/workspace/sidebar/assets.cljs +#, unused msgid "workspace.assets.shared-library" msgstr "مكتبة مشتركة" -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/dashboard/grid.cljs:134, src/app/main/ui/dashboard/grid.cljs:189, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:397, src/app/main/ui/workspace/sidebar/assets.cljs:155 msgid "workspace.assets.typography" msgstr "الطباعة" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused msgid "workspace.assets.typography.font-id" msgstr "أسلوب الخط" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:505 msgid "workspace.assets.typography.font-size" msgstr "الحجم" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:501 msgid "workspace.assets.typography.font-variant-id" msgstr "البديل" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:523 msgid "workspace.assets.typography.go-to-edit" msgstr "اذهب إلى تحرير نوع ملف المكتبة" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:513 msgid "workspace.assets.typography.letter-spacing" msgstr "تباعد الحروف" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:509 msgid "workspace.assets.typography.line-height" msgstr "طول الخط" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, -#: src/app/main/ui/inspect/attributes/text.cljs, -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/dashboard/grid.cljs:199, src/app/main/ui/workspace/libraries.cljs:461, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:464, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:489, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:596, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:615 msgid "workspace.assets.typography.sample" msgstr "أسلوب خط النص" +#, unused msgid "workspace.assets.typography.text-styles" msgstr "أسلوب خط النص" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:517 msgid "workspace.assets.typography.text-transform" msgstr "تحويل النص" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:66 msgid "workspace.assets.ungroup" msgstr "فك التجميع" +#: src/app/main/ui/workspace/sidebar/layers.cljs:525 msgid "workspace.focus.focus-mode" msgstr "وضع التركيز" +#: src/app/main/ui/workspace/context_menu.cljs:287, src/app/main/ui/workspace/context_menu.cljs:553 msgid "workspace.focus.focus-off" msgstr "تعطيل التركيز" +#: src/app/main/ui/workspace/context_menu.cljs:286 msgid "workspace.focus.focus-on" msgstr "تشغيل التركيز" +#, unused msgid "workspace.focus.selection" msgstr "تحديد" -#: src/app/main/data/workspace/libraries.cljs, -#: src/app/main/ui/components/color_bullet.cljs +#: src/app/util/color.cljs:34 msgid "workspace.gradients.linear" msgstr "الانحدار الخطي" -#: src/app/main/data/workspace/libraries.cljs, -#: src/app/main/ui/components/color_bullet.cljs +#: src/app/util/color.cljs:35 msgid "workspace.gradients.radial" msgstr "الانحدار الشعاعي" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:238 msgid "workspace.header.menu.disable-dynamic-alignment" msgstr "إبطال المحاذاة الدينماكية" +#: src/app/main/ui/workspace/main_menu.cljs:192 msgid "workspace.header.menu.disable-scale-content" msgstr "Disable proportional scale" #: src/app/main/ui/workspace/header.cljs +#, unused msgid "workspace.header.menu.disable-scale-text" msgstr "إبطال المقياس النسبي" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:223 msgid "workspace.header.menu.disable-snap-guides" msgstr "إبطال الفرقعة للخ\\وط الإرشادية" +#: src/app/main/ui/workspace/main_menu.cljs:253 msgid "workspace.header.menu.disable-snap-pixel-grid" msgstr "إبطال الفرقعة للبكسل" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:239 msgid "workspace.header.menu.enable-dynamic-alignment" msgstr "تككين المحاذاة الدينماكية" +#: src/app/main/ui/workspace/main_menu.cljs:193 msgid "workspace.header.menu.enable-scale-content" msgstr "تمكين المقياس النسبي" #: src/app/main/ui/workspace/header.cljs +#, unused msgid "workspace.header.menu.enable-scale-text" msgstr "تمكين نص المقياس" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:224 msgid "workspace.header.menu.enable-snap-guides" msgstr "الفرقعة للخطوط الإرشادية" +#: src/app/main/ui/workspace/main_menu.cljs:254 msgid "workspace.header.menu.enable-snap-pixel-grid" msgstr "تمكين الفرقعة للبكسل" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:382 msgid "workspace.header.menu.hide-artboard-names" msgstr "إخفاء أسماء البورد" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:353 msgid "workspace.header.menu.hide-palette" msgstr "إخفاء لون اللوحة" +#: src/app/main/ui/workspace/main_menu.cljs:394 msgid "workspace.header.menu.hide-pixel-grid" msgstr "إخفاء تشبيك اللوحة" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:320 msgid "workspace.header.menu.hide-rules" msgstr "إخفاء المسطرات" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:367 msgid "workspace.header.menu.hide-textpalette" msgstr "إخفاء لوحة أسلوب خط" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:731 msgid "workspace.header.menu.option.edit" msgstr "التحرير" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:720 msgid "workspace.header.menu.option.file" msgstr "الملف" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:777 msgid "workspace.header.menu.option.help-info" msgstr "المساعدة و المعلومة" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:753 msgid "workspace.header.menu.option.preferences" msgstr "التفضيلات" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:742 msgid "workspace.header.menu.option.view" msgstr "المنظر" +#: src/app/main/ui/workspace/main_menu.cljs:459 msgid "workspace.header.menu.redo" msgstr "إعادة" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:432 msgid "workspace.header.menu.select-all" msgstr "حدد الجميع" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:383 msgid "workspace.header.menu.show-artboard-names" msgstr "أظهر أسماء البورد" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:354 msgid "workspace.header.menu.show-palette" msgstr "أظهر لون اللوحة" +#: src/app/main/ui/workspace/main_menu.cljs:395 msgid "workspace.header.menu.show-pixel-grid" msgstr "Show pixel grid" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:321 msgid "workspace.header.menu.show-rules" msgstr "أظهر المسطرات" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:368 msgid "workspace.header.menu.show-textpalette" msgstr "أظهر لوخة أسلوب الخط" +#: src/app/main/ui/workspace/main_menu.cljs:446 msgid "workspace.header.menu.undo" msgstr "الإلغاء" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/viewer/header.cljs:98, src/app/main/ui/workspace/right_header.cljs:120 msgid "workspace.header.reset-zoom" msgstr "إعادة ضبط" #: src/app/main/ui/workspace/header.cljs +#, unused msgid "workspace.header.save-error" msgstr "خطأ في حفظ الملف" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/right_header.cljs:52 msgid "workspace.header.saved" msgstr "تم الحفظ" #: src/app/main/ui/workspace/header.cljs +#, unused msgid "workspace.header.saving" msgstr "حفظ الملف" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/right_header.cljs:42, src/app/main/ui/workspace/right_header.cljs:47 msgid "workspace.header.unsaved" msgstr "تغييرات غير محفوظة" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/right_header.cljs:239 msgid "workspace.header.viewer" msgstr "وضع العرض (%s)" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/viewer/header.cljs:79, src/app/main/ui/workspace/right_header.cljs:103 msgid "workspace.header.zoom" msgstr "تكبير" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/viewer/header.cljs:109 msgid "workspace.header.zoom-fill" msgstr "مقياس الملأ" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/viewer/header.cljs:102 msgid "workspace.header.zoom-fit" msgstr "تقليص المقياس للتناسب" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/right_header.cljs:123 msgid "workspace.header.zoom-fit-all" msgstr "التكبير لتناسب الجميع" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/viewer/header.cljs:116 msgid "workspace.header.zoom-full-screen" msgstr "تكبير الشاشة" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/right_header.cljs:130 msgid "workspace.header.zoom-selected" msgstr "تكبير" +#: src/app/main/ui/workspace/viewport/grid_layout_editor.cljs:59 msgid "workspace.layout_grid.editor.title" msgstr "تحرير التشبيك" #: src/app/main/ui/workspace/libraries.cljs +#, unused msgid "workspace.libraries.add" msgstr "الإضافة" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:80, src/app/main/ui/workspace/libraries.cljs:99 msgid "workspace.libraries.colors" msgstr "%s الألوان" -#: src/app/main/ui/workspace/colorpalette.cljs +#: src/app/main/ui/workspace/color_palette.cljs:126 msgid "workspace.libraries.colors.empty-palette" msgstr "لا يوجد أنماط اللون في مكتبتك" -#: src/app/main/ui/workspace/textpalette.cljs +#: src/app/main/ui/workspace/text_palette.cljs:150 msgid "workspace.libraries.colors.empty-typography-palette" msgstr "لا يوجد أنماط الكتابة في مكتبتك" -#: src/app/main/ui/workspace/colorpicker/libraries.cljs, -#: src/app/main/ui/workspace/colorpalette.cljs +#: src/app/main/ui/workspace/color_palette_ctx_menu.cljs:60, src/app/main/ui/workspace/colorpicker/libraries.cljs:73, src/app/main/ui/workspace/text_palette_ctx_menu.cljs:50 msgid "workspace.libraries.colors.file-library" msgstr "مكتبة الملفات" #: src/app/main/ui/workspace/colorpicker.cljs +#, unused msgid "workspace.libraries.colors.hsv" msgstr "HSV" -#: src/app/main/ui/workspace/colorpicker/libraries.cljs, -#: src/app/main/ui/workspace/colorpalette.cljs +#: src/app/main/ui/workspace/color_palette_ctx_menu.cljs:82, src/app/main/ui/workspace/colorpicker/libraries.cljs:72 msgid "workspace.libraries.colors.recent-colors" msgstr "الألوان المؤخرة" #: src/app/main/ui/workspace/colorpicker.cljs +#, unused msgid "workspace.libraries.colors.rgb-complementary" msgstr "RGB مكملات" #: src/app/main/ui/workspace/colorpicker.cljs +#, unused msgid "workspace.libraries.colors.rgba" msgstr "RGBA" -#: src/app/main/ui/workspace/colorpicker.cljs +#: src/app/main/ui/workspace/colorpicker.cljs:372 msgid "workspace.libraries.colors.save-color" msgstr "حفظ أسلوب اللون" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:74, src/app/main/ui/workspace/libraries.cljs:91 msgid "workspace.libraries.components" msgstr "%s العناصر" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:215 msgid "workspace.libraries.file-library" msgstr "مكتبة الملف" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:77, src/app/main/ui/workspace/libraries.cljs:95 msgid "workspace.libraries.graphics" msgstr "%s الرسومات" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:209 msgid "workspace.libraries.in-this-file" msgstr "المكتبات في هذا الملف" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:526, src/app/main/ui/workspace/libraries.cljs:531 msgid "workspace.libraries.libraries" msgstr "المكتبات" #: src/app/main/ui/workspace/libraries.cljs +#, unused msgid "workspace.libraries.library" msgstr "المكتبة" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:382 msgid "workspace.libraries.library-updates" msgstr "تحديث المكتبة" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:380 msgid "workspace.libraries.no-libraries-need-sync" msgstr "لا يوجد مكتبات مشتركة تحتاج إلى تحديث" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:299 msgid "workspace.libraries.no-matches-for" msgstr "لا يوجد ما يطابق هذا “%s“" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:296 msgid "workspace.libraries.no-shared-libraries-available" msgstr "لا يوجد مكتبات مشتركة" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:260 msgid "workspace.libraries.search-shared-libraries" msgstr "البحث في المكتبات المشتركة" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:256 msgid "workspace.libraries.shared-libraries" msgstr "مكتبات مشتركة" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:308 msgid "workspace.libraries.text.multiple-typography" msgstr "كتابات عديدة" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:311 msgid "workspace.libraries.text.multiple-typography-tooltip" msgstr "إلغاء روابط كل الكتابات" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:83, src/app/main/ui/workspace/libraries.cljs:103 msgid "workspace.libraries.typography" msgstr "%s الكتابات" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:402 msgid "workspace.libraries.update" msgstr "التحديث" -#: src/app/main/data/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:477 msgid "workspace.libraries.update.see-all-changes" msgstr "رؤية جميع التغييرات" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:536 msgid "workspace.libraries.updates" msgstr "التحديثات" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:737 msgid "workspace.options.add-interaction" msgstr "انقر على زر +لإضافة التفاعلات" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:86, src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:102 msgid "workspace.options.blur-options.title" msgstr "الطمس" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:85 msgid "workspace.options.blur-options.title.group" msgstr "تطميس المجموعة" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:84 msgid "workspace.options.blur-options.title.multiple" msgstr "تطميس المحدد" -#: src/app/main/ui/workspace/sidebar/options/page.cljs +#: src/app/main/ui/workspace/sidebar/options/page.cljs:32, src/app/main/ui/workspace/sidebar/options/page.cljs:39 msgid "workspace.options.canvas-background" msgstr "خلفية اللوحة القماشية" +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:548 msgid "workspace.options.clip-content" msgstr "محتوى المقطع" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:600, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:605 msgid "workspace.options.component" msgstr "العنصر" +#: src/app/main/ui/viewer/inspect/annotation.cljs:19, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:181 msgid "workspace.options.component.annotation" msgstr "حاشية" +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:610 msgid "workspace.options.component.copy" msgstr "النسخ" +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:173 msgid "workspace.options.component.create-annotation" msgstr "إنشاء حاشية" +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:172 msgid "workspace.options.component.edit-annotation" msgstr "تحرير حاشية" +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:609 msgid "workspace.options.component.main" msgstr "أصل" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:163 msgid "workspace.options.constraints" msgstr "قيود" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:150 msgid "workspace.options.constraints.bottom" msgstr "أسفل" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:141, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:152 msgid "workspace.options.constraints.center" msgstr "وسط" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:229 msgid "workspace.options.constraints.fix-when-scrolling" msgstr "أصلح حين التمرير" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:138 msgid "workspace.options.constraints.left" msgstr "شمال" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:140 msgid "workspace.options.constraints.leftright" msgstr "يمين و شمال" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:139 msgid "workspace.options.constraints.right" msgstr "يمين" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:142, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:153 msgid "workspace.options.constraints.scale" msgstr "مقياس" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:149 msgid "workspace.options.constraints.top" msgstr "أعلى" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:151 msgid "workspace.options.constraints.topbottom" msgstr "أعلى و أسفل" -#: src/app/main/ui/workspace/sidebar/options.cljs +#: src/app/main/ui/workspace/sidebar/options.cljs:112 msgid "workspace.options.design" msgstr "تصميم" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs +#: src/app/main/ui/viewer/inspect/exports.cljs:139 msgid "workspace.options.export" msgstr "تصدير" #: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs +#, unused msgid "workspace.options.export-multiple" msgstr "تحديد المصدر" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs +#: src/app/main/ui/viewer/inspect/exports.cljs:178, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:219 msgid "workspace.options.export.suffix" msgstr "لاحقة" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs, src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/export.cljs:240 msgid "workspace.options.exporting-complete" msgstr "تم التصدير" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs +#: src/app/main/ui/export.cljs:172, src/app/main/ui/export.cljs:241, src/app/main/ui/viewer/inspect/exports.cljs:194, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:236 msgid "workspace.options.exporting-object" msgstr "جاري التصدير…" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs, src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/export.cljs:239 msgid "workspace.options.exporting-object-error" msgstr "Export failed" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs, src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/export.cljs:242 msgid "workspace.options.exporting-object-slow" msgstr "التصدير بطيء بشكل غير متوقع" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:49, src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:174 msgid "workspace.options.fill" msgstr "الملأ" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:178 msgid "workspace.options.flows.add-flow-start" msgstr "إضافة المخطط" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#, unused msgid "workspace.options.flows.flow-start" msgstr "إضافة المخطط" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:161 msgid "workspace.options.flows.flow-starts" msgstr "جاري التخطيط" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:29 msgid "workspace.options.grid.auto" msgstr "تلقائي" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:157 msgid "workspace.options.grid.column" msgstr "أعمدة" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused msgid "workspace.options.grid.grid-title" msgstr "تشبيك" +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:196, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:237 msgid "workspace.options.grid.params.color" msgstr "لون" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused msgid "workspace.options.grid.params.columns" msgstr "أعمدة" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:259 msgid "workspace.options.grid.params.gutter" msgstr "مزراب" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:246 msgid "workspace.options.grid.params.height" msgstr "طول" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:270 msgid "workspace.options.grid.params.margin" msgstr "هامش" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused msgid "workspace.options.grid.params.rows" msgstr "صفوف" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:216, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:290 msgid "workspace.options.grid.params.set-default" msgstr "تعيين كافتراضي" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused msgid "workspace.options.grid.params.size" msgstr "حجم" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused msgid "workspace.options.grid.params.type" msgstr "نوع" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:231 msgid "workspace.options.grid.params.type.bottom" msgstr "أسفل" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:229 msgid "workspace.options.grid.params.type.center" msgstr "وسط" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:228 msgid "workspace.options.grid.params.type.left" msgstr "شمال" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:232 msgid "workspace.options.grid.params.type.right" msgstr "يمين" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:225 msgid "workspace.options.grid.params.type.stretch" msgstr "تمديد" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:227 msgid "workspace.options.grid.params.type.top" msgstr "أعلى" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:211, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:288 msgid "workspace.options.grid.params.use-default" msgstr "استعمل الإفتراضي" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:247 msgid "workspace.options.grid.params.width" msgstr "عرض" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:158 msgid "workspace.options.grid.row" msgstr "صفوف" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:156 msgid "workspace.options.grid.square" msgstr "مربع" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:48 msgid "workspace.options.group-fill" msgstr "ملأ المجموعة" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:42 msgid "workspace.options.group-stroke" msgstr "ضرب المجموعة" +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:406 msgid "workspace.options.height" msgstr "طول" +#: src/app/main/ui/workspace/sidebar/options.cljs:161 msgid "workspace.options.inspect" msgstr "Inspectفحص" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:468 msgid "workspace.options.interaction-action" msgstr "فعل" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:41, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:367 msgid "workspace.options.interaction-after-delay" msgstr "بعد التأخير" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:614 msgid "workspace.options.interaction-animation" msgstr "الرسومات المتحركة" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:406 msgid "workspace.options.interaction-animation-dissolve" msgstr "تذوب" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:405 msgid "workspace.options.interaction-animation-none" msgstr "لا شيء" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:412 msgid "workspace.options.interaction-animation-push" msgstr "دفع" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:407 msgid "workspace.options.interaction-animation-slide" msgstr "انزلاق" +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:391 msgid "workspace.options.interaction-auto" msgstr "تلقائي" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:604 msgid "workspace.options.interaction-background" msgstr "إضافة تراكب الخلفية" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:590 msgid "workspace.options.interaction-close-outside" msgstr "عطل إذا نقر في الخارج" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:372 msgid "workspace.options.interaction-close-overlay" msgstr "إغلاق التراكب" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:56 msgid "workspace.options.interaction-close-overlay-dest" msgstr "إغلاق التراكب: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:456 msgid "workspace.options.interaction-delay" msgstr "تأخير" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:478 msgid "workspace.options.interaction-destination" msgstr "وجهة" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:661 msgid "workspace.options.interaction-duration" msgstr "مدة" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:674 msgid "workspace.options.interaction-easing" msgstr "تخفيف" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:416 msgid "workspace.options.interaction-easing-ease" msgstr "خفف" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:417 msgid "workspace.options.interaction-easing-ease-in" msgstr "خفف داخل" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:419 msgid "workspace.options.interaction-easing-ease-in-out" msgstr "خفف داخل و خارج" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:418 msgid "workspace.options.interaction-easing-ease-out" msgstr "خفف خارج" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:415 msgid "workspace.options.interaction-easing-linear" msgstr "خطي" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#, unused msgid "workspace.options.interaction-in" msgstr "داخل" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:39, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:364 msgid "workspace.options.interaction-mouse-enter" msgstr "إدخال الفأرة" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:40, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:365 msgid "workspace.options.interaction-mouse-leave" msgstr "إخراج الفأرة" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:458, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:459, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:464, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:663, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:665, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:669 msgid "workspace.options.interaction-ms" msgstr "القوائم" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:369 msgid "workspace.options.interaction-navigate-to" msgstr "الإنتقال الى" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:50 msgid "workspace.options.interaction-navigate-to-dest" msgstr "انتقال الى: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:51, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:53, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:55, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:380 msgid "workspace.options.interaction-none" msgstr "(غير مهيء)" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:691 msgid "workspace.options.interaction-offset-effect" msgstr "تأثير الإزاحة" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:35, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:360 msgid "workspace.options.interaction-on-click" msgstr "بعد النقر" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:370 msgid "workspace.options.interaction-open-overlay" msgstr "فتح التراكب" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:52 msgid "workspace.options.interaction-open-overlay-dest" msgstr "فتح التراكب: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:59, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:374 msgid "workspace.options.interaction-open-url" msgstr "رابط مفتوح" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#, unused msgid "workspace.options.interaction-out" msgstr "خارج" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:403 msgid "workspace.options.interaction-pos-bottom-center" msgstr "المركز السفلي" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:401 msgid "workspace.options.interaction-pos-bottom-left" msgstr "اأسفل اليسار" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:402 msgid "workspace.options.interaction-pos-bottom-right" msgstr "أسفل اليمين" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:397 msgid "workspace.options.interaction-pos-center" msgstr "مركز" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:396 msgid "workspace.options.interaction-pos-manual" msgstr "يدوي" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:400 msgid "workspace.options.interaction-pos-top-center" msgstr "المركز العلوي" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:398 msgid "workspace.options.interaction-pos-top-left" msgstr "أعلى اليسار" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:399 msgid "workspace.options.interaction-pos-top-right" msgstr "أعلى اليمين" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:524 msgid "workspace.options.interaction-position" msgstr "موضع" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:494 msgid "workspace.options.interaction-preserve-scroll" msgstr "حفظ موضع التمرير" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:58, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:373 msgid "workspace.options.interaction-prev-screen" msgstr "الشاشة السابقة" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:515 msgid "workspace.options.interaction-relative-to" msgstr "بالنسبة الى" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:57, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:379, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:393, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:394 msgid "workspace.options.interaction-self" msgstr "الذات" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:371 msgid "workspace.options.interaction-toggle-overlay" msgstr "تبديل التراكب" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:54 msgid "workspace.options.interaction-toggle-overlay-dest" msgstr "تبديل التراكب: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:445 msgid "workspace.options.interaction-trigger" msgstr "مشغل" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:503 msgid "workspace.options.interaction-url" msgstr "الرابط المفتوح" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:37, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:362 msgid "workspace.options.interaction-while-hovering" msgstr "حين التحوم" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:38, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:363 msgid "workspace.options.interaction-while-pressing" msgstr "حين الضغط" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:724 msgid "workspace.options.interactions" msgstr "التفاعلات" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:137 msgid "workspace.options.layer-options.blend-mode.color" msgstr "اللون" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:126 msgid "workspace.options.layer-options.blend-mode.color-burn" msgstr "احتراق اللون" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:129 msgid "workspace.options.layer-options.blend-mode.color-dodge" msgstr "انقاص كثافة اللون" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:124 msgid "workspace.options.layer-options.blend-mode.darken" msgstr "أغمق" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:133 msgid "workspace.options.layer-options.blend-mode.difference" msgstr "الفارق" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:134 msgid "workspace.options.layer-options.blend-mode.exclusion" msgstr "الإستبعاد" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:132 msgid "workspace.options.layer-options.blend-mode.hard-light" msgstr "ضوء الثابت" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:135 msgid "workspace.options.layer-options.blend-mode.hue" msgstr "مسحة" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:127 msgid "workspace.options.layer-options.blend-mode.lighten" msgstr "تفتيح" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:138 msgid "workspace.options.layer-options.blend-mode.luminosity" msgstr "لمعان" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:125 msgid "workspace.options.layer-options.blend-mode.multiply" msgstr "تضاعف" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:123 msgid "workspace.options.layer-options.blend-mode.normal" msgstr "عادي" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:130 msgid "workspace.options.layer-options.blend-mode.overlay" msgstr "تراكب" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:136 msgid "workspace.options.layer-options.blend-mode.saturation" msgstr "التشبع" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:128 msgid "workspace.options.layer-options.blend-mode.screen" msgstr "شاشة" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:131 msgid "workspace.options.layer-options.blend-mode.soft-light" msgstr "ضوء خافت" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#, unused msgid "workspace.options.layer-options.title" msgstr "طبقة" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#, unused msgid "workspace.options.layer-options.title.group" msgstr "طبقات المجموعة" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#, unused msgid "workspace.options.layer-options.title.multiple" msgstr "الطبقات المحددة" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout-item.advanced-ops" msgstr "خيارات متقدمة" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:564 msgid "workspace.options.layout-item.layout-item-max-h" msgstr "أقصى ارتفاع" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:531 msgid "workspace.options.layout-item.layout-item-max-w" msgstr "أقصى عرض" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:548 msgid "workspace.options.layout-item.layout-item-min-h" msgstr "الحد الأدنو للارتفاع" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:515 msgid "workspace.options.layout-item.layout-item-min-w" msgstr "الحد الأدنى للعرض" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout-item.title.layout-item-max-h" msgstr "أقصى ارتفاع" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout-item.title.layout-item-max-w" msgstr "أقصى عرض" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout-item.title.layout-item-min-h" msgstr "الحد الأدنى للطول" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout-item.title.layout-item-min-w" msgstr "الحد الأدنى للعرض" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.bottom" msgstr "أسفل" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.direction.column" msgstr "عمود" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.direction.column-reverse" msgstr "العموج العكسي" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.direction.row" msgstr "الصف" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.direction.row-reverse" msgstr "الصف العكسي" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.gap" msgstr "فجوة" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.left" msgstr "شمال" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout.margin" msgstr "هامش" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout.margin-all" msgstr "جميع النواحي" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout.margin-simple" msgstr "هامش بسيط" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.packed" msgstr "معباة" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.padding" msgstr "حشوة" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.padding-all" msgstr "جميع النواحي" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.padding-simple" msgstr "حشوة بسيطة" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.right" msgstr "يمين" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.space-around" msgstr "التباعد حول" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.space-between" msgstr "التباعد بين" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.top" msgstr "أعلى" -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:146 msgid "workspace.options.more-colors" msgstr "المزيد من الألوان" -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:123 msgid "workspace.options.more-lib-colors" msgstr "المزيد من ألوان المكتبة" +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:161 msgid "workspace.options.opacity" msgstr "العتامة" #: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#, unused msgid "workspace.options.position" msgstr "الموضع" -#: src/app/main/ui/workspace/sidebar/options.cljs +#: src/app/main/ui/workspace/sidebar/options.cljs:157 msgid "workspace.options.prototype" msgstr "النموذج المبدئي" +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:469, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:481 msgid "workspace.options.radius" msgstr "نصف القطر" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:513 msgid "workspace.options.radius-bottom-left" msgstr "أسفل اليسار" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:522 msgid "workspace.options.radius-bottom-right" msgstr "أسفل اليمين" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:495 msgid "workspace.options.radius-top-left" msgstr "أعلى الشمال" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:504 msgid "workspace.options.radius-top-right" msgstr "أعلى اليمين" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:532 msgid "workspace.options.radius.all-corners" msgstr "كل الزوايا" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:533 msgid "workspace.options.radius.single-corners" msgstr "زوايا مستقلة" +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:183 msgid "workspace.options.recent-fonts" msgstr "مؤخر" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs, src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/export.cljs:284 msgid "workspace.options.retry" msgstr "أعد المحاولة" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:451 msgid "workspace.options.rotation" msgstr "دوران" +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:180 msgid "workspace.options.search-font" msgstr "البخث عن نوع الخط" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:741 msgid "workspace.options.select-a-shape" msgstr "اختر الشكل أو اللوحة لجر الإتصال الى لوحة أو شكل آخر" -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:105 msgid "workspace.options.selection-color" msgstr "الألوان المختارة" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:47 msgid "workspace.options.selection-fill" msgstr "اختر نوع الملأ" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:41 msgid "workspace.options.selection-stroke" msgstr "ضرب الإختيار" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:40, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:198, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:200 msgid "workspace.options.shadow-options.blur" msgstr "تطميس" +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:238 msgid "workspace.options.shadow-options.color" msgstr "لون الظل" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:144 msgid "workspace.options.shadow-options.drop-shadow" msgstr "إسقاط الظل" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:145 msgid "workspace.options.shadow-options.inner-shadow" msgstr "التظليل الداخلي" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:38, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:186 msgid "workspace.options.shadow-options.offsetx" msgstr "X" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:39, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:224 msgid "workspace.options.shadow-options.offsety" msgstr "Y" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:41, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:211, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:213 msgid "workspace.options.shadow-options.spread" msgstr "الانتشار" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:296 msgid "workspace.options.shadow-options.title" msgstr "الظل" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:295 msgid "workspace.options.shadow-options.title.group" msgstr "ظل المجموعة" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:294 msgid "workspace.options.shadow-options.title.multiple" msgstr "ظلال الإختيار" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:193 msgid "workspace.options.show-fill-on-export" msgstr "أظهر في المصدر" +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:562 msgid "workspace.options.show-in-viewer" msgstr "أظهر في وضع العرض" -#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:162 msgid "workspace.options.size" msgstr "مقاس" -#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:355 msgid "workspace.options.size-presets" msgstr "الإعدادات المسبقة للحجم" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:43 msgid "workspace.options.stroke" msgstr "ضرب" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#, unused msgid "workspace.options.stroke-cap.circle-marker" msgstr "معلم الدائرة" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:129 msgid "workspace.options.stroke-cap.circle-marker-short" msgstr "الدائرة" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#, unused msgid "workspace.options.stroke-cap.diamond-marker" msgstr "معلم الماس" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:130 msgid "workspace.options.stroke-cap.diamond-marker-short" msgstr "الماس" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#, unused msgid "workspace.options.stroke-cap.line-arrow" msgstr "سهم الخط" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:126 msgid "workspace.options.stroke-cap.line-arrow-short" msgstr "سهم" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:124 msgid "workspace.options.stroke-cap.none" msgstr "لا شيء" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:132 msgid "workspace.options.stroke-cap.round" msgstr "دائري" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:133 msgid "workspace.options.stroke-cap.square" msgstr "مربع" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#, unused msgid "workspace.options.stroke-cap.square-marker" msgstr "معلم المربع" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:128 msgid "workspace.options.stroke-cap.square-marker-short" msgstr "مستطيل" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#, unused msgid "workspace.options.stroke-cap.triangle-arrow" msgstr "سهم المثلث" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:127 msgid "workspace.options.stroke-cap.triangle-arrow-short" msgstr "المثلث" +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:192 msgid "workspace.options.stroke-color" msgstr "لون الضرب" +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:165 msgid "workspace.options.stroke-width" msgstr "عرض الضرب" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:87 msgid "workspace.options.stroke.center" msgstr "مركز" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:105 msgid "workspace.options.stroke.dashed" msgstr "متقطع" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:104 msgid "workspace.options.stroke.dotted" msgstr "منقط" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:88 msgid "workspace.options.stroke.inner" msgstr "داخل" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:106 msgid "workspace.options.stroke.mixed" msgstr "مختلط" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:89 msgid "workspace.options.stroke.outer" msgstr "خارج" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:103 msgid "workspace.options.stroke.solid" msgstr "صلب" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:115 msgid "workspace.options.text-options.align-bottom" msgstr "محاذاة الأسفل" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:111 msgid "workspace.options.text-options.align-middle" msgstr "محاذاة الوسط" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:107 msgid "workspace.options.text-options.align-top" msgstr "محاذاة أعلى" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:82 msgid "workspace.options.text-options.direction-ltr" msgstr "LTR" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:87 msgid "workspace.options.text-options.direction-rtl" msgstr "RTL" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:149 msgid "workspace.options.text-options.grow-auto-height" msgstr "الإرتفاع التلقائي" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:145 msgid "workspace.options.text-options.grow-auto-width" msgstr "العرض التلقائي" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:141 msgid "workspace.options.text-options.grow-fixed" msgstr "مثبت" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:381 msgid "workspace.options.text-options.letter-spacing" msgstr "تباعد الحروف" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:364 msgid "workspace.options.text-options.line-height" msgstr "ارتفاع الخط" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused msgid "workspace.options.text-options.lowercase" msgstr "أحرف صغيرة" #: src/app/main/ui/workspace/sidebar/options/menus/text.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused msgid "workspace.options.text-options.none" msgstr "لا شيء" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:176 msgid "workspace.options.text-options.strikethrough" msgstr "الإضراب من خلال(%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:51 msgid "workspace.options.text-options.text-align-center" msgstr "محاذاة المركز (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:59 msgid "workspace.options.text-options.text-align-justify" msgstr "تعديل (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:47 msgid "workspace.options.text-options.text-align-left" msgstr "محاذاة (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:55 msgid "workspace.options.text-options.text-align-right" msgstr "محاذاة اليمين (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:189 msgid "workspace.options.text-options.title" msgstr "نص" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:188 msgid "workspace.options.text-options.title-group" msgstr "نص للمجموعة" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:187 msgid "workspace.options.text-options.title-selection" msgstr "نص الإختيار" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused msgid "workspace.options.text-options.titlecase" msgstr "Title case" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:171 msgid "workspace.options.text-options.underline" msgstr "تسطير (%s)" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused msgid "workspace.options.text-options.uppercase" msgstr "الأحرف الكبيرة" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:745 msgid "workspace.options.use-play-button" msgstr "استعمل زر التشغيل أعلاه لتشغيل منظر النموذج المبدئي." +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:395 msgid "workspace.options.width" msgstr "عرض" +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:427 msgid "workspace.options.x" msgstr "X محور" +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:438 msgid "workspace.options.y" msgstr "Y محور" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:167 msgid "workspace.path.actions.add-node" msgstr "أضف العقدة (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:174 msgid "workspace.path.actions.delete-node" msgstr "احذف العقدة (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:152 msgid "workspace.path.actions.draw-nodes" msgstr "جر العقدة (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:189 msgid "workspace.path.actions.join-nodes" msgstr "صل العقد (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:204 msgid "workspace.path.actions.make-corner" msgstr "الى الزاوية (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:211 msgid "workspace.path.actions.make-curve" msgstr "الى المنحنى (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:182 msgid "workspace.path.actions.merge-nodes" msgstr "دمج العقد (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:159 msgid "workspace.path.actions.move-nodes" msgstr "نقل العقد (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:196 msgid "workspace.path.actions.separate-nodes" msgstr "فصل العقد (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:218 msgid "workspace.path.actions.snap-nodes" msgstr "كسر العقد (%s)" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:441 msgid "workspace.shape.menu.add-flex" msgstr "إضافة تخطيط الثني" +#: src/app/main/ui/workspace/context_menu.cljs:445 msgid "workspace.shape.menu.add-grid" msgstr "إضافة تخطيط التشبيك" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:193 msgid "workspace.shape.menu.back" msgstr "أرسل الى الخلف" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:190 msgid "workspace.shape.menu.backward" msgstr "أرسل الى الخلف" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:139 msgid "workspace.shape.menu.copy" msgstr "انسخ" +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:427 msgid "workspace.shape.menu.create-annotation" msgstr "إنشاء تعليق توضيحي" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:275 msgid "workspace.shape.menu.create-artboard-from-selection" msgstr "تحديد محتوى اللوحة" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:465 msgid "workspace.shape.menu.create-component" msgstr "إنشاء نعصر" +#: src/app/main/ui/workspace/context_menu.cljs:469 msgid "workspace.shape.menu.create-multiple-components" msgstr "إنشاء عناصر جديدة" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:142 msgid "workspace.shape.menu.cut" msgstr "قطع" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:486 msgid "workspace.shape.menu.delete" msgstr "حذف" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:391 msgid "workspace.shape.menu.delete-flow-start" msgstr "حذف المخطط" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:432 msgid "workspace.shape.menu.detach-instance" msgstr "فصل المثال" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:431 msgid "workspace.shape.menu.detach-instances-in-bulk" msgstr "فصل الامثلة" +#: src/app/main/ui/workspace/context_menu.cljs:335, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:75 msgid "workspace.shape.menu.difference" msgstr "الفارق" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:148 msgid "workspace.shape.menu.duplicate" msgstr "ينسخ" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:321 msgid "workspace.shape.menu.edit" msgstr "تحرير" +#: src/app/main/ui/workspace/context_menu.cljs:341 msgid "workspace.shape.menu.exclude" msgstr "استبعاد" +#: src/app/main/ui/workspace/context_menu.cljs:348, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:89 msgid "workspace.shape.menu.flatten" msgstr "تسطيح" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:208 msgid "workspace.shape.menu.flip-horizontal" msgstr "Flip horizontal" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:204 msgid "workspace.shape.menu.flip-vertical" msgstr "التوجيه الرئسي" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:394 msgid "workspace.shape.menu.flow-start" msgstr "بداية المخطط" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:184 msgid "workspace.shape.menu.forward" msgstr "النقل الى الأمام" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:187 msgid "workspace.shape.menu.front" msgstr "النقل الى الأمام" #: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#, unused msgid "workspace.shape.menu.go-main" msgstr "انتقل الى ملف العنصر الأصلي" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:261 msgid "workspace.shape.menu.group" msgstr "مجموعة" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:363, src/app/main/ui/workspace/sidebar/layer_item.cljs:145 msgid "workspace.shape.menu.hide" msgstr "إخفاء" +#: src/app/main/ui/workspace/context_menu.cljs:548, src/app/main/ui/workspace/main_menu.cljs:408 msgid "workspace.shape.menu.hide-ui" msgstr "أظهر أو إخف UI" +#: src/app/main/ui/workspace/context_menu.cljs:338 msgid "workspace.shape.menu.intersection" msgstr "التفاعلات" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:371, src/app/main/ui/workspace/sidebar/layer_item.cljs:153 msgid "workspace.shape.menu.lock" msgstr "إغلاق" -#: src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:266 msgid "workspace.shape.menu.mask" msgstr "قناع" -#: src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:145, src/app/main/ui/workspace/context_menu.cljs:545 msgid "workspace.shape.menu.paste" msgstr "معجون" +#: src/app/main/ui/workspace/context_menu.cljs:331 msgid "workspace.shape.menu.path" msgstr "طريق" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:432 msgid "workspace.shape.menu.remove-flex" msgstr "إزالة تخطيط المنحنى" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:436 msgid "workspace.shape.menu.reset-overrides" msgstr "إعادة ضبط التجاوزات" +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:439 msgid "workspace.shape.menu.restore-main" msgstr "استعادة العنصر الرئيسي" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:174 msgid "workspace.shape.menu.select-layer" msgstr "اختيار الطبقة" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:360, src/app/main/ui/workspace/sidebar/layer_item.cljs:144 msgid "workspace.shape.menu.show" msgstr "العرض" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:424 msgid "workspace.shape.menu.show-in-assets" msgstr "العرض في لوحة الاصول" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:442, src/app/main/ui/workspace/sidebar/assets/components.cljs:586 msgid "workspace.shape.menu.show-main" msgstr "أظهر المكون الرئيسي" +#: src/app/main/ui/workspace/context_menu.cljs:221 msgid "workspace.shape.menu.thumbnail-remove" msgstr "أطهر الصورة المصغرة" +#: src/app/main/ui/workspace/context_menu.cljs:223 msgid "workspace.shape.menu.thumbnail-set" msgstr "تعيين كصورة مصغرة" +#: src/app/main/ui/workspace/context_menu.cljs:326 msgid "workspace.shape.menu.transform-to-path" msgstr "تحويل الى المسار" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:257 msgid "workspace.shape.menu.ungroup" msgstr "فك التجميع" +#: src/app/main/ui/workspace/context_menu.cljs:332, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:70 msgid "workspace.shape.menu.union" msgstr "اتحاد" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:368, src/app/main/ui/workspace/sidebar/layer_item.cljs:152 msgid "workspace.shape.menu.unlock" msgstr "الغاء القفل" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:271 msgid "workspace.shape.menu.unmask" msgstr "كشف القناع" #: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs +#, unused msgid "workspace.shape.menu.update-components-in-bulk" msgstr "تحديث العناصر الرئيسية" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:445 msgid "workspace.shape.menu.update-main" msgstr "تحديث العنصر الرئيسي" +#: src/app/main/ui/components/tab_container.cljs:50 msgid "workspace.sidebar.collapse" msgstr "انهيار الشريط الجانبي" +#: src/app/main/ui/workspace/sidebar/collapsable_button.cljs:26 msgid "workspace.sidebar.expand" msgstr "توسيع الشريط الجانبي" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/right_header.cljs:231, src/app/main/ui/workspace/right_header.cljs:232 msgid "workspace.sidebar.history" msgstr "التاريخ (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/sidebar/layers.cljs:522, src/app/main/ui/workspace/sidebar.cljs:100 msgid "workspace.sidebar.layers" msgstr "الطبقات" +#: src/app/main/ui/workspace/sidebar/layers.cljs:308, src/app/main/ui/workspace/sidebar/layers.cljs:380 msgid "workspace.sidebar.layers.components" msgstr "العناصر" +#: src/app/main/ui/workspace/sidebar/layers.cljs:305, src/app/main/ui/workspace/sidebar/layers.cljs:338 msgid "workspace.sidebar.layers.frames" msgstr "لوحات" +#: src/app/main/ui/workspace/sidebar/layers.cljs:306, src/app/main/ui/workspace/sidebar/layers.cljs:352 msgid "workspace.sidebar.layers.groups" msgstr "مجموعات" +#: src/app/main/ui/workspace/sidebar/layers.cljs:310, src/app/main/ui/workspace/sidebar/layers.cljs:408 msgid "workspace.sidebar.layers.images" msgstr "صور" +#: src/app/main/ui/workspace/sidebar/layers.cljs:307, src/app/main/ui/workspace/sidebar/layers.cljs:366 msgid "workspace.sidebar.layers.masks" msgstr "قناعات" +#: src/app/main/ui/workspace/sidebar/layers.cljs:311, src/app/main/ui/workspace/sidebar/layers.cljs:422 msgid "workspace.sidebar.layers.shapes" msgstr "بسومات" +#: src/app/main/ui/workspace/sidebar/layers.cljs:309, src/app/main/ui/workspace/sidebar/layers.cljs:394 msgid "workspace.sidebar.layers.texts" msgstr "نصوص" -#: src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs, src/app/main/ui/inspect/attributes/svg.cljs +#: src/app/main/ui/viewer/inspect/attributes/svg.cljs:56, src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs:91 msgid "workspace.sidebar.options.svg-attrs.title" msgstr "السمات المستوردةSVG" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs +#: src/app/main/ui/workspace/sidebar/sitemap.cljs:217 msgid "workspace.sidebar.sitemap" msgstr "صفحات" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/left_header.cljs:91 msgid "workspace.sitemap" msgstr "خريطة الموقع" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/sidebar.cljs:120 msgid "workspace.toolbar.assets" msgstr "أصول" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/palette.cljs:165, src/app/main/ui/workspace/palette.cljs:166 msgid "workspace.toolbar.color-palette" msgstr "لوحة اللون (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/right_header.cljs:220, src/app/main/ui/workspace/right_header.cljs:221 msgid "workspace.toolbar.comments" msgstr "تعليقات (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:180, src/app/main/ui/workspace/top_toolbar.cljs:181 msgid "workspace.toolbar.curve" msgstr "منحنى (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:160, src/app/main/ui/workspace/top_toolbar.cljs:161 msgid "workspace.toolbar.ellipse" msgstr "الشكل البيضاوي (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:142, src/app/main/ui/workspace/top_toolbar.cljs:143 msgid "workspace.toolbar.frame" msgstr "لوحة (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:59, src/app/main/ui/workspace/top_toolbar.cljs:60 msgid "workspace.toolbar.image" msgstr "صورة (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:132, src/app/main/ui/workspace/top_toolbar.cljs:133 msgid "workspace.toolbar.move" msgstr "تحريك (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:189, src/app/main/ui/workspace/top_toolbar.cljs:190 msgid "workspace.toolbar.path" msgstr "مسار (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:151, src/app/main/ui/workspace/top_toolbar.cljs:152 msgid "workspace.toolbar.rect" msgstr "مستطيل (%s)" #: src/app/main/ui/workspace/left_toolbar.cljs +#, unused msgid "workspace.toolbar.shortcuts" msgstr "الإختصار (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:169, src/app/main/ui/workspace/top_toolbar.cljs:170 msgid "workspace.toolbar.text" msgstr "نص (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/palette.cljs:173, src/app/main/ui/workspace/palette.cljs:174 msgid "workspace.toolbar.text-palette" msgstr "الكتابات (%s)" -#: src/app/main/ui/workspace/sidebar/history.cljs -msgid "workspace.undo.empty" -msgstr "لا يوجد تغييرات في التاريخ الى الآن" - -#: src/app/main/ui/workspace/sidebar/history.cljs -msgid "workspace.undo.entry.delete" -msgstr "محذوف %s" - -#: src/app/main/ui/workspace/sidebar/history.cljs -msgid "workspace.undo.entry.modify" -msgstr "معدل %s" - -#: src/app/main/ui/workspace/sidebar/history.cljs -msgid "workspace.undo.entry.move" -msgstr "المكونات المعدلة" - -msgid "workspace.undo.entry.multiple.circle" -msgstr "دوائر" - -msgid "workspace.undo.entry.multiple.color" -msgstr "أصول اللون" - -msgid "workspace.undo.entry.multiple.component" -msgstr "عناصر" - -msgid "workspace.undo.entry.multiple.curve" -msgstr "منحنيات" - -msgid "workspace.undo.entry.multiple.frame" -msgstr "لوحة" - -msgid "workspace.undo.entry.multiple.group" -msgstr "مجموعات" - -msgid "workspace.undo.entry.multiple.media" -msgstr "الأصول الرسومية" - -msgid "workspace.undo.entry.multiple.multiple" -msgstr "أشياء" - -msgid "workspace.undo.entry.multiple.page" -msgstr "صفحات" - -msgid "workspace.undo.entry.multiple.path" -msgstr "مسارات" - -msgid "workspace.undo.entry.multiple.rect" -msgstr "مستطيلات" - -msgid "workspace.undo.entry.multiple.shape" -msgstr "أشكال" - -msgid "workspace.undo.entry.multiple.text" -msgstr "نصوص" - -msgid "workspace.undo.entry.multiple.typography" -msgstr "أصول الكتابة" - -#: src/app/main/ui/workspace/sidebar/history.cljs -msgid "workspace.undo.entry.new" -msgstr "جديد %s" - -msgid "workspace.undo.entry.single.circle" -msgstr "دائرة" - -msgid "workspace.undo.entry.single.color" -msgstr "أصل اللون" - -msgid "workspace.undo.entry.single.component" -msgstr "component" - -msgid "workspace.undo.entry.single.curve" -msgstr "منحنى" - -msgid "workspace.undo.entry.single.frame" -msgstr "لوحة" - -msgid "workspace.undo.entry.single.group" -msgstr "مجموعة" - -msgid "workspace.undo.entry.single.image" -msgstr "صورة" - -msgid "workspace.undo.entry.single.media" -msgstr "أصل الرسومات" - -msgid "workspace.undo.entry.single.multiple" -msgstr "عنصر" - -msgid "workspace.undo.entry.single.page" -msgstr "صفحة" - -msgid "workspace.undo.entry.single.path" -msgstr "مسار" - -msgid "workspace.undo.entry.single.rect" -msgstr "مستطيل" - -msgid "workspace.undo.entry.single.shape" -msgstr "شكل" - -msgid "workspace.undo.entry.single.text" -msgstr "نص" - -msgid "workspace.undo.entry.single.typography" -msgstr "أصل الكتابة" - -#: src/app/main/ui/workspace/sidebar/history.cljs -msgid "workspace.undo.entry.unknown" -msgstr "انتهت العملية %s" - -#: src/app/main/ui/workspace/sidebar/history.cljs -msgid "workspace.undo.title" -msgstr "تاريخ" - -#: src/app/main/data/workspace/libraries.cljs -msgid "workspace.updates.dismiss" -msgstr "رفض" - -#: src/app/main/data/workspace/libraries.cljs -msgid "workspace.updates.more-info" -msgstr "مزيد من المعلومات" - -#: src/app/main/data/workspace/libraries.cljs -msgid "workspace.updates.there-are-updates" -msgstr "يوجد تحديثات في المكتبة المشتركة" - -#: src/app/main/data/workspace/libraries.cljs -msgid "workspace.updates.update" -msgstr "تحديث" - -msgid "workspace.viewport.click-to-close-path" -msgstr "انقر لتغلق المسار" - +#: src/app/main/ui/workspace/viewport/top_bar.cljs:38 msgid "workspace.top-bar.read-only.done" msgstr "تم" -#: src/app/main/ui/settings/access-tokens.cljs -msgid "dashboard.access-tokens.copied-success" -msgstr "الرمز منسوخ" +#: src/app/main/ui/workspace/sidebar/history.cljs:342 +msgid "workspace.undo.empty" +msgstr "لا يوجد تغييرات في التاريخ الى الآن" -#: src/app/main/ui/auth/login.cljs -msgid "auth.login-tagline" -msgstr "Penpot هو أداة تصميم مجانية ومفتوحة المصدر للتعاون بين التصميم والبرمجة" +#: src/app/main/ui/workspace/sidebar/history.cljs:147 +msgid "workspace.undo.entry.delete" +msgstr "محذوف %s" -#: src/app/main/ui/settings/team-form.cljs, src/app/main/ui/auth/register.cljs, src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/onboarding/team_choice.cljs, src/app/main/ui/settings/access_tokens.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/settings/profile.cljs, src/app/main/ui/workspace/sidebar/assets.cljs -msgid "auth.name.not-all-space" -msgstr "يجب أن يحتوي الاسم على بعض الأحرف غير الفراغات." +#: src/app/main/ui/workspace/sidebar/history.cljs:146 +msgid "workspace.undo.entry.modify" +msgstr "معدل %s" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/onboarding/team_choice.cljs, src/app/main/ui/settings/access_tokens.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/settings/profile.cljs, src/app/main/ui/workspace/sidebar/assets.cljs -msgid "auth.name.too-long" -msgstr "يجب أن يحتوي الاسم على 250 حرفًا كحد أقصى." +#: src/app/main/ui/workspace/sidebar/history.cljs:148 +msgid "workspace.undo.entry.move" +msgstr "المكونات المعدلة" -#: src/app/main/ui/settings/access-tokens.cljs -msgid "dashboard.access-tokens.empty.add-one" -msgstr "اضغط على الزر \"إنشاء رمز جديد\" لإنشاء واحد." +#: src/app/main/ui/workspace/sidebar/history.cljs:111 +msgid "workspace.undo.entry.multiple.circle" +msgstr "دوائر" -#: src/app/main/ui/onboarding/questions.cljs -msgid "branding-illustrations-marketing-pieces" -msgstr "...علامة تجارية، رسوم توضيحية، قطع تسويقية، إلخ." +#: src/app/main/ui/workspace/sidebar/history.cljs:112 +msgid "workspace.undo.entry.multiple.color" +msgstr "أصول اللون" -#: src/app/main/ui/auth/login.cljs -msgid "auth.login-account-title" -msgstr "قم بتسجيل الدخول إلى حسابي" +#: src/app/main/ui/workspace/sidebar/history.cljs:113 +msgid "workspace.undo.entry.multiple.component" +msgstr "عناصر" -#: src/app/main/ui/settings/access-tokens.cljs -msgid "dashboard.access-tokens.create" -msgstr "قم بإنشاء رمز جديد" +#: src/app/main/ui/workspace/sidebar/history.cljs:114 +msgid "workspace.undo.entry.multiple.curve" +msgstr "منحنيات" -#: src/app/main/ui/settings/access-tokens.cljs -msgid "dashboard.access-tokens.create.success" -msgstr "تم إنشاء رمز الوصول بنجاح." +#: src/app/main/ui/workspace/sidebar/history.cljs:115 +msgid "workspace.undo.entry.multiple.frame" +msgstr "لوحة" + +#: src/app/main/ui/workspace/sidebar/history.cljs:116 +msgid "workspace.undo.entry.multiple.group" +msgstr "مجموعات" + +#: src/app/main/ui/workspace/sidebar/history.cljs:117 +msgid "workspace.undo.entry.multiple.media" +msgstr "الأصول الرسومية" + +#: src/app/main/ui/workspace/sidebar/history.cljs:118 +msgid "workspace.undo.entry.multiple.multiple" +msgstr "أشياء" + +#: src/app/main/ui/workspace/sidebar/history.cljs:119 +msgid "workspace.undo.entry.multiple.page" +msgstr "صفحات" + +#: src/app/main/ui/workspace/sidebar/history.cljs:120 +msgid "workspace.undo.entry.multiple.path" +msgstr "مسارات" + +#: src/app/main/ui/workspace/sidebar/history.cljs:121 +msgid "workspace.undo.entry.multiple.rect" +msgstr "مستطيلات" + +#: src/app/main/ui/workspace/sidebar/history.cljs:122 +msgid "workspace.undo.entry.multiple.shape" +msgstr "أشكال" + +#: src/app/main/ui/workspace/sidebar/history.cljs:123 +msgid "workspace.undo.entry.multiple.text" +msgstr "نصوص" + +#: src/app/main/ui/workspace/sidebar/history.cljs:124 +msgid "workspace.undo.entry.multiple.typography" +msgstr "أصول الكتابة" + +#: src/app/main/ui/workspace/sidebar/history.cljs:145 +msgid "workspace.undo.entry.new" +msgstr "جديد %s" + +#: src/app/main/ui/workspace/sidebar/history.cljs:125 +msgid "workspace.undo.entry.single.circle" +msgstr "دائرة" + +#: src/app/main/ui/workspace/sidebar/history.cljs:126 +msgid "workspace.undo.entry.single.color" +msgstr "أصل اللون" + +#: src/app/main/ui/workspace/sidebar/history.cljs:127 +msgid "workspace.undo.entry.single.component" +msgstr "component" + +#: src/app/main/ui/workspace/sidebar/history.cljs:128 +msgid "workspace.undo.entry.single.curve" +msgstr "منحنى" + +#: src/app/main/ui/workspace/sidebar/history.cljs:129 +msgid "workspace.undo.entry.single.frame" +msgstr "لوحة" + +#: src/app/main/ui/workspace/sidebar/history.cljs:130 +msgid "workspace.undo.entry.single.group" +msgstr "مجموعة" + +#: src/app/main/ui/workspace/sidebar/history.cljs:131 +msgid "workspace.undo.entry.single.image" +msgstr "صورة" + +#: src/app/main/ui/workspace/sidebar/history.cljs:132 +msgid "workspace.undo.entry.single.media" +msgstr "أصل الرسومات" + +#: src/app/main/ui/workspace/sidebar/history.cljs:133 +msgid "workspace.undo.entry.single.multiple" +msgstr "عنصر" + +#: src/app/main/ui/workspace/sidebar/history.cljs:134 +msgid "workspace.undo.entry.single.page" +msgstr "صفحة" + +#: src/app/main/ui/workspace/sidebar/history.cljs:135 +msgid "workspace.undo.entry.single.path" +msgstr "مسار" + +#: src/app/main/ui/workspace/sidebar/history.cljs:136 +msgid "workspace.undo.entry.single.rect" +msgstr "مستطيل" + +#: src/app/main/ui/workspace/sidebar/history.cljs:137 +msgid "workspace.undo.entry.single.shape" +msgstr "شكل" + +#: src/app/main/ui/workspace/sidebar/history.cljs:138 +msgid "workspace.undo.entry.single.text" +msgstr "نص" + +#: src/app/main/ui/workspace/sidebar/history.cljs:139 +msgid "workspace.undo.entry.single.typography" +msgstr "أصل الكتابة" + +#: src/app/main/ui/workspace/sidebar/history.cljs:149 +msgid "workspace.undo.entry.unknown" +msgstr "انتهت العملية %s" + +#: src/app/main/ui/workspace/sidebar/history.cljs:335 +msgid "workspace.undo.title" +msgstr "تاريخ" + +#: src/app/main/data/workspace/libraries.cljs:1094 +msgid "workspace.updates.dismiss" +msgstr "رفض" + +#: src/app/main/data/workspace/libraries.cljs:1092 +msgid "workspace.updates.more-info" +msgstr "مزيد من المعلومات" + +#: src/app/main/data/workspace/libraries.cljs:1090 +msgid "workspace.updates.there-are-updates" +msgstr "يوجد تحديثات في المكتبة المشتركة" + +#: src/app/main/data/workspace/libraries.cljs:1097 +msgid "workspace.updates.update" +msgstr "تحديث" + +#, unused +msgid "workspace.viewport.click-to-close-path" +msgstr "انقر لتغلق المسار" diff --git a/frontend/translations/bn.po b/frontend/translations/bn.po index e6303cdcc6..c2c068ce40 100644 --- a/frontend/translations/bn.po +++ b/frontend/translations/bn.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "PO-Revision-Date: 2024-06-17 08:07+0000\n" "Last-Translator: Anonymous \n" -"Language-Team: Bengali \n" +"Language-Team: Bengali " +"\n" "Language: bn\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" @@ -11,71 +11,70 @@ msgstr "" "Plural-Forms: nplurals=2; plural=n > 1;\n" "X-Generator: Weblate 5.6-dev\n" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:151, src/app/main/ui/viewer/login.cljs:104 msgid "auth.already-have-account" msgstr "অ্যাকাউন্ট আছে?" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:299 msgid "auth.check-your-email" msgstr "" "আপনার ইমেইল চেক করুন এবং লিংকে ক্লিক করে ভেরিফাই করে Penpot ব্যবহার শুরু " "করুন।" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:78 msgid "auth.confirm-password" msgstr "পাসওয়ার্ড নিশ্চিত করুন" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/register.cljs:163 msgid "auth.create-demo-account" msgstr "ডেমো অ্যাকাউন্ট তৈরী করুন" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/login.cljs:43 msgid "auth.demo-warning" msgstr "" "এটি একটি ডেমো সার্ভিস। প্রয়োজনীয় কোনো কাজে ব্যবহার করবেন না। কিছু সময় পর " "প্রজেক্টগুলো মুছে ফেলা হবে।" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:189, src/app/main/ui/viewer/login.cljs:90 msgid "auth.forgot-password" msgstr "পাসওয়ার্ড ভুলে গেছেন?" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:254 msgid "auth.fullname" msgstr "পুরো নাম" -#: src/app/main/ui/auth/register.cljs -#, fuzzy +#: src/app/main/ui/auth/register.cljs:155, src/app/main/ui/viewer/login.cljs:107 msgid "auth.login-here" msgstr "এখানে লগিন করুন" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:195 msgid "auth.login-submit" msgstr "লগিন" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:222 msgid "auth.login-with-github-submit" msgstr "গিটহাব" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:228 msgid "auth.login-with-gitlab-submit" msgstr "গিটল্যাব" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:216 msgid "auth.login-with-google-submit" msgstr "গুগল" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:201 msgid "auth.login-with-ldap-submit" msgstr "LDAP" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:234, src/app/main/ui/auth/login.cljs:255 msgid "auth.login-with-oidc-submit" msgstr "ওপেনআইডি" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:71 msgid "auth.new-password" msgstr "নতুন পাসওয়ার্ড টাইপ করুন" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:42 msgid "auth.notifications.invalid-token-error" msgstr "রিকভারি টোকেন সঠিক নয়।" diff --git a/frontend/translations/ca.po b/frontend/translations/ca.po index b803c7206c..0878dd678e 100644 --- a/frontend/translations/ca.po +++ b/frontend/translations/ca.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "PO-Revision-Date: 2024-06-17 08:07+0000\n" "Last-Translator: Anonymous \n" -"Language-Team: Catalan \n" +"Language-Team: Catalan " +"\n" "Language: ca\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" @@ -11,385 +11,430 @@ msgstr "" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 5.6-dev\n" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:151, src/app/main/ui/viewer/login.cljs:104 msgid "auth.already-have-account" msgstr "Ja teniu un compte?" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:299 msgid "auth.check-your-email" msgstr "" "Reviseu el correu i feu clic en l'enllaç per a verificar i començar a " "utilitzar el Penpot." -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:78 msgid "auth.confirm-password" msgstr "Confirmeu la contrasenya" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/register.cljs:163 msgid "auth.create-demo-account" msgstr "Creeu un compte de prova" #: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#, unused msgid "auth.create-demo-profile" msgstr "Ho voleu provar?" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/login.cljs:43 msgid "auth.demo-warning" msgstr "" "Aquest és un servei de PROVA. NO L'UTILITZEU en treballs reals, ja que els " "projectes s'eliminaran periòdicament." -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:189, src/app/main/ui/viewer/login.cljs:90 msgid "auth.forgot-password" msgstr "Heu oblidat la contrasenya?" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:254 msgid "auth.fullname" msgstr "Nom complet" -#: src/app/main/ui/auth/register.cljs -#, fuzzy +#: src/app/main/ui/auth/register.cljs:155, src/app/main/ui/viewer/login.cljs:107 msgid "auth.login-here" msgstr "Inicieu la sessió aquí" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:195 msgid "auth.login-submit" msgstr "Entra" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:222 msgid "auth.login-with-github-submit" msgstr "GitHub" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:228 msgid "auth.login-with-gitlab-submit" msgstr "GitLab" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:216 msgid "auth.login-with-google-submit" msgstr "Google" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:201 msgid "auth.login-with-ldap-submit" msgstr "LDAP" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:234, src/app/main/ui/auth/login.cljs:255 msgid "auth.login-with-oidc-submit" msgstr "OpenID" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:71 msgid "auth.new-password" msgstr "Escriviu una contrasenya nova" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:42 msgid "auth.notifications.invalid-token-error" msgstr "El codi de recuperació no és vàlid." -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:46 msgid "auth.notifications.password-changed-successfully" msgstr "La contrasenya s'ha canviat correctament" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:57 msgid "auth.notifications.profile-not-verified" msgstr "El perfil encara no s'ha verificat, feu-ho abans de continuar." -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:40 msgid "auth.notifications.recovery-token-sent" msgstr "S'ha enviat un enllaç de recuperació de contrasenya al vostre correu." -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:47 msgid "auth.notifications.team-invitation-accepted" msgstr "Us heu unit a l'equip correctament" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:179, src/app/main/ui/auth/register.cljs:115 msgid "auth.password" msgstr "Contrasenya" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:114 msgid "auth.password-length-hint" msgstr "Com a mínim 8 caràcters" +#: src/app/main/ui/auth.cljs:41 msgid "auth.privacy-policy" msgstr "Política de privadesa" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:88 msgid "auth.recovery-request-submit" msgstr "Recupera la contrasenya" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:101 msgid "auth.recovery-request-subtitle" msgstr "Rebreu un correu electrònic amb instruccions" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:100 msgid "auth.recovery-request-title" msgstr "Heu oblidat la contrasenya?" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:82 msgid "auth.recovery-submit" msgstr "Canvieu la contrasenya" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:298, src/app/main/ui/viewer/login.cljs:93 msgid "auth.register" msgstr "No teniu un compte?" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:302, src/app/main/ui/auth/register.cljs:121, src/app/main/ui/auth/register.cljs:263, src/app/main/ui/viewer/login.cljs:97 msgid "auth.register-submit" msgstr "Creeu un compte" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:140 msgid "auth.register-title" msgstr "Crea un compte" #: src/app/main/ui/auth.cljs +#, unused msgid "auth.sidebar-tagline" msgstr "La solució de codi obert per a dissenyar i prototipar." +#: src/app/main/ui/auth.cljs:33, src/app/main/ui/dashboard/sidebar.cljs:1022, src/app/main/ui/workspace/main_menu.cljs:150 msgid "auth.terms-of-service" msgstr "Condicions del servei" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:297 msgid "auth.verification-email-sent" msgstr "S'ha enviat un correu de verificació a" +#: src/app/main/ui/workspace/libraries.cljs:228 msgid "common.publish" msgstr "Publica" +#: src/app/main/ui/viewer/share_link.cljs:304, src/app/main/ui/viewer/share_link.cljs:314 msgid "common.share-link.all-users" msgstr "Tots els usuaris de Penpot" +#: src/app/main/ui/viewer/share_link.cljs:198 msgid "common.share-link.confirm-deletion-link-description" msgstr "" "Segur que voleu eliminar l'enllaç? Si ho feu, ja no estarà disponible per a " "ningú" +#: src/app/main/ui/viewer/share_link.cljs:259, src/app/main/ui/viewer/share_link.cljs:289 msgid "common.share-link.current-tag" msgstr "(actual)" +#: src/app/main/ui/viewer/share_link.cljs:207, src/app/main/ui/viewer/share_link.cljs:214 msgid "common.share-link.destroy-link" msgstr "Destrueix l'enllaç" +#: src/app/main/ui/viewer/share_link.cljs:221 msgid "common.share-link.get-link" msgstr "Obtén l'enllaç" +#: src/app/main/ui/viewer/share_link.cljs:139 msgid "common.share-link.link-copied-success" msgstr "S'ha copiat l'enllaç correctament" +#: src/app/main/ui/viewer/share_link.cljs:231 msgid "common.share-link.manage-ops" msgstr "Gestió de permisos" +#: src/app/main/ui/viewer/share_link.cljs:277 msgid "common.share-link.page-shared" msgid_plural "common.share-link.page-shared" msgstr[0] "1 pàgina compartida" msgstr[1] "%s pàgines compartides" +#: src/app/main/ui/viewer/share_link.cljs:298 msgid "common.share-link.permissions-can-comment" msgstr "Pot comentar" +#: src/app/main/ui/viewer/share_link.cljs:308 msgid "common.share-link.permissions-can-inspect" msgstr "Pot inspeccionar el codi" +#: src/app/main/ui/viewer/share_link.cljs:193 msgid "common.share-link.permissions-hint" msgstr "Qualsevol persona amb l'enllaç hi tindrà accés" +#: src/app/main/ui/viewer/share_link.cljs:241 msgid "common.share-link.permissions-pages" msgstr "Pàgines compartides" +#: src/app/main/ui/viewer/share_link.cljs:183 msgid "common.share-link.placeholder" msgstr "L'enllaç per a compartir apareixerà aquí" +#: src/app/main/ui/viewer/share_link.cljs:303, src/app/main/ui/viewer/share_link.cljs:313 msgid "common.share-link.team-members" msgstr "Només membres de l'equip" +#: src/app/main/ui/viewer/share_link.cljs:171 msgid "common.share-link.title" msgstr "Compartiu prototips" +#: src/app/main/ui/viewer/share_link.cljs:269 msgid "common.share-link.view-all" msgstr "Selecciona-ho tot" +#: src/app/main/ui/workspace/libraries.cljs:224 msgid "common.unpublish" msgstr "Despublica" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:85 msgid "dasboard.team-hero.management" msgstr "Gestió de l'equip" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:84 msgid "dasboard.team-hero.text" msgstr "" "El Penpot està pensat per a equips. Convida a membres i treballeu plegats " "en projectes i fitxers" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:82 msgid "dasboard.team-hero.title" msgstr "Fes equip!" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.tutorial-hero.info" msgstr "" "Aprèn les bases del Penpot mentre et diverteixes amb aquest tutorial " "pràctic." #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.tutorial-hero.start" msgstr "Comença el tutorial" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.tutorial-hero.title" msgstr "Tutorial pràctic" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.walkthrough-hero.info" msgstr "Passeja't pel Penpot i coneix-ne les característiques principals." #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.walkthrough-hero.start" msgstr "Comença la visita" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.walkthrough-hero.title" msgstr "Passeig per la interfície" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:291, src/app/main/ui/workspace/main_menu.cljs:572 msgid "dashboard.add-shared" msgstr "Afegeix a la biblioteca compartida" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:75 msgid "dashboard.change-email" msgstr "Canvia el correu" -#: src/app/main/data/dashboard.cljs, src/app/main/data/dashboard.cljs +#: src/app/main/data/dashboard.cljs:762, src/app/main/data/dashboard.cljs:983 msgid "dashboard.copy-suffix" msgstr "(còpia)" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:338 msgid "dashboard.create-new-team" msgstr "Crea un equip nou" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/components/context_menu_a11y.cljs:256, src/app/main/ui/dashboard/sidebar.cljs:646 msgid "dashboard.default-team-name" msgstr "El meu Penpot" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:571 msgid "dashboard.delete-team" msgstr "Elimina l'equip" +#: src/app/main/ui/dashboard/file_menu.cljs:296, src/app/main/ui/workspace/main_menu.cljs:589 msgid "dashboard.download-binary-file" msgstr "Baixa el fitxer Penpot (.penpot)" +#: src/app/main/ui/dashboard/file_menu.cljs:300, src/app/main/ui/workspace/main_menu.cljs:597 msgid "dashboard.download-standard-file" msgstr "Baixa fitxer estàndard (.svg + .json)" -#: src/app/main/ui/dashboard/project_menu.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:276, src/app/main/ui/dashboard/project_menu.cljs:90 msgid "dashboard.duplicate" msgstr "Duplica" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:240 msgid "dashboard.duplicate-multi" msgstr "Duplica %s fitxers" -#: src/app/main/ui/dashboard/grid.cljs +#: src/app/main/ui/dashboard/placeholder.cljs:32 +#, markdown msgid "dashboard.empty-placeholder-drafts" msgstr "" "Encara no hi ha fitxers. Si voleu provar algunes plantilles, podeu anar a " "la secció [Biblioteques i " "plantilles](https://penpot.app/libraries-templates)" +#: src/app/main/ui/dashboard/file_menu.cljs:249 msgid "dashboard.export-binary-multi" msgstr "Baixa %s fitxers Penpot (.penpot)" +#: src/app/main/ui/workspace/main_menu.cljs:605 msgid "dashboard.export-frames" msgstr "Exporta els taulers a PDF" -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:201 msgid "dashboard.export-frames.title" msgstr "Exporta a PDF" +#, unused msgid "dashboard.export-multi" msgstr "Exporta %s fitxers de Penpot" -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:109 msgid "dashboard.export-multiple.selected" msgstr "%s de %s elements seleccionats" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:578 msgid "dashboard.export-shapes" msgstr "Exporta" -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:180 msgid "dashboard.export-shapes.how-to" msgstr "" "Podeu afegir una configuració d'exportació a elements des de les propietats " "del disseny (a sota de la barra de la dreta)." -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:184 msgid "dashboard.export-shapes.how-to-link" msgstr "Informació sobre com establir exportacions a Penpot." -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:179 msgid "dashboard.export-shapes.no-elements" msgstr "No hi ha elements amb configuració d'exportació." -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:190 msgid "dashboard.export-shapes.title" msgstr "Selecció d'exportació" +#: src/app/main/ui/dashboard/file_menu.cljs:252 msgid "dashboard.export-standard-multi" msgstr "Baixa %s fitxers estàndard (.svg + .json)" +#: src/app/main/ui/export.cljs:427 msgid "dashboard.export.detail" msgstr "* Pot incloure components, gràfics, colors i/o tipografies." +#: src/app/main/ui/export.cljs:426 msgid "dashboard.export.explain" msgstr "" "Un o més fitxers que voleu exportar utilitzen biblioteques compartides. Què " "voleu fer amb els seus recursos*?" +#: src/app/main/ui/export.cljs:435 msgid "dashboard.export.options.all.message" msgstr "" "els fitxers amb biblioteques compartides s’inclouran a l’exportació, " "mantenint la vinculació." +#: src/app/main/ui/export.cljs:436 msgid "dashboard.export.options.all.title" msgstr "Exporta les biblioteques compartides" +#: src/app/main/ui/export.cljs:437 msgid "dashboard.export.options.detach.message" msgstr "" "Les biblioteques compartides no s'inclouran en l'exportació i no s'afegiran " "recursos a la biblioteca. " +#: src/app/main/ui/export.cljs:438 msgid "dashboard.export.options.detach.title" msgstr "Tracta els recursos de la biblioteca compartida com a objectes bàsics" +#: src/app/main/ui/export.cljs:439 msgid "dashboard.export.options.merge.message" msgstr "" "El fitxer s'exportarà amb tots els recursos externs fusionats a la " "biblioteca de fitxers." +#: src/app/main/ui/export.cljs:440 msgid "dashboard.export.options.merge.title" msgstr "" "Inclou els recursos de la biblioteca compartida a les biblioteques del " "fitxer" +#: src/app/main/ui/export.cljs:418 msgid "dashboard.export.title" msgstr "Exporta els fitxers" +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:309 msgid "dashboard.fonts.deleted-placeholder" msgstr "S'ha eliminat la tipografia" -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:206 msgid "dashboard.fonts.dismiss-all" msgstr "Descarta-ho tot" +#: src/app/main/ui/dashboard/fonts.cljs:436 msgid "dashboard.fonts.empty-placeholder" msgstr "Encara no teniu cap tipografia personalitzada instal·lada." -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:194 msgid "dashboard.fonts.fonts-added" msgid_plural "dashboard.fonts.fonts-added" msgstr[0] "S'ha afegit 1 tipografia" msgstr[1] "S'han afegit %s tipografies" +#: src/app/main/ui/dashboard/fonts.cljs:170 +#, markdown msgid "dashboard.fonts.hero-text1" msgstr "" "Les tipografies web que pengeu aquí s'afegiran a la llista de famílies " @@ -398,6 +443,8 @@ msgstr "" "sola família tipogràfica**. Podeu pujar tipografies en aquests formats: " "**TTF, OTF i WOFF** (només en cal un)." +#: src/app/main/ui/dashboard/fonts.cljs:182 +#, markdown msgid "dashboard.fonts.hero-text2" msgstr "" "Només podeu pujar tipografies de la vostra propietat o de les que tingueu " @@ -406,3705 +453,3991 @@ msgstr "" "Penpot](https://penpot.app/terms.html). També podeu llegir sobre les " "[llicències de les tipografies](https://www.typography.com/faq)." -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:202 msgid "dashboard.fonts.upload-all" msgstr "Puja-ho tot" +#: src/app/main/ui/dashboard/import.cljs:472, src/app/main/ui/dashboard/project_menu.cljs:108 msgid "dashboard.import" msgstr "Importa fitxers de Penpot" +#: src/app/main/ui/dashboard/import.cljs:304, src/app/worker/import.cljs:753, src/app/worker/import.cljs:755 msgid "dashboard.import.analyze-error" msgstr "Vaja! No s'ha pogut importar aquest fitxer" +#: src/app/main/ui/dashboard/import.cljs:308 msgid "dashboard.import.import-error" msgstr "S'ha produït un problema en importar el fitxer i no s'ha importat." +#: src/app/main/ui/dashboard/import.cljs:493 msgid "dashboard.import.import-message" msgstr "S'han importat %s fitxers correctament." +#: src/app/main/ui/dashboard/import.cljs:481, src/app/main/ui/dashboard/import.cljs:488 msgid "dashboard.import.import-warning" msgstr "Alguns fitxers contenen objectes no vàlids que s'han eliminat." +#: src/app/main/ui/dashboard/import.cljs:144 msgid "dashboard.import.progress.process-colors" msgstr "S'estan carregant els colors" +#: src/app/main/ui/dashboard/import.cljs:153 msgid "dashboard.import.progress.process-components" msgstr "S'estan carregant els components" +#: src/app/main/ui/dashboard/import.cljs:150 msgid "dashboard.import.progress.process-media" msgstr "S'està carregant la multimèdia" +#: src/app/main/ui/dashboard/import.cljs:141 msgid "dashboard.import.progress.process-page" msgstr "S'està carregant la pàgina: %s" +#: src/app/main/ui/dashboard/import.cljs:147 msgid "dashboard.import.progress.process-typographies" msgstr "S'estan processant les tipografies" +#: src/app/main/ui/dashboard/import.cljs:135 msgid "dashboard.import.progress.upload-data" msgstr "S'estan penjant les dades al servidor (%s/%s)" +#: src/app/main/ui/dashboard/import.cljs:138 msgid "dashboard.import.progress.upload-media" msgstr "S'està pujant el fitxer: %s" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:109 msgid "dashboard.invite-profile" msgstr "Convida a l'equip" -#: src/app/main/ui/dashboard/sidebar.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:547, src/app/main/ui/dashboard/sidebar.cljs:556, src/app/main/ui/dashboard/sidebar.cljs:563, src/app/main/ui/dashboard/team.cljs:312 msgid "dashboard.leave-team" msgstr "Abandona l'equip" +#: src/app/main/ui/dashboard/templates.cljs:88, src/app/main/ui/dashboard/templates.cljs:163 msgid "dashboard.libraries-and-templates" msgstr "Biblioteques i plantilles" +#: src/app/main/ui/dashboard/templates.cljs:164 msgid "dashboard.libraries-and-templates.explore" msgstr "Explora'n més i coneix com contribuir-hi" +#: src/app/main/ui/dashboard/import.cljs:365 msgid "dashboard.libraries-and-templates.import-error" msgstr "" "Hi ha hagut un problema en importar la plantilla. La plantilla no s'ha " "importat." -#: src/app/main/ui/dashboard/libraries.cljs +#: src/app/main/ui/dashboard/libraries.cljs:53 msgid "dashboard.libraries-title" msgstr "Biblioteques compartides" -#: src/app/main/ui/dashboard/grid.cljs +#: src/app/main/ui/dashboard/placeholder.cljs:45 msgid "dashboard.loading-files" msgstr "S'estan carregant els fitxers…" +#: src/app/main/ui/dashboard/fonts.cljs:431 msgid "dashboard.loading-fonts" msgstr "s'estan carregant les tipografies…" -#: src/app/main/ui/dashboard/project_menu.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:281, src/app/main/ui/dashboard/project_menu.cljs:100 msgid "dashboard.move-to" msgstr "Mou a" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:245 msgid "dashboard.move-to-multi" msgstr "Mou %s fitxers a" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:226 msgid "dashboard.move-to-other-team" msgstr "Mou a un altre equip" -#: src/app/main/ui/dashboard/projects.cljs, -#: src/app/main/ui/dashboard/files.cljs +#: src/app/main/ui/dashboard/files.cljs:105, src/app/main/ui/dashboard/projects.cljs:252, src/app/main/ui/dashboard/projects.cljs:253 msgid "dashboard.new-file" msgstr "+ Fitxer nou" -#: src/app/main/data/dashboard.cljs +#: src/app/main/data/dashboard.cljs:958, src/app/main/data/dashboard.cljs:1181 msgid "dashboard.new-file-prefix" msgstr "Fitxer nou" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:55 msgid "dashboard.new-project" msgstr "+ Projecte nou" -#: src/app/main/data/dashboard.cljs +#: src/app/main/data/dashboard.cljs:726, src/app/main/data/dashboard.cljs:1184 msgid "dashboard.new-project-prefix" msgstr "Projecte nou" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:60 msgid "dashboard.no-matches-for" msgstr "No s'ha trobat cap coincidència amb “%s“" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:827 msgid "dashboard.no-projects-placeholder" msgstr "Els projectes fixats apareixeran aquí" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:33 msgid "dashboard.notifications.email-changed-successfully" msgstr "S'ha actualitzat l'adreça de correu" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:27 msgid "dashboard.notifications.email-verified-successfully" msgstr "S'ha verificat l'adreça de correu" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:37 msgid "dashboard.notifications.password-saved" msgstr "La contrasenya s'ha desat correctament!" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1081 msgid "dashboard.num-of-members" msgstr "%s membres" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:267 msgid "dashboard.open-in-new-tab" msgstr "Obre el fitxer en una pestanya nova" +#: src/app/main/ui/dashboard/files.cljs:117, src/app/main/ui/dashboard/projects.cljs:260, src/app/main/ui/dashboard/projects.cljs:261 msgid "dashboard.options" msgstr "Opcions" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:106, src/app/main/ui/settings/password.cljs:119 msgid "dashboard.password-change" msgstr "Canvia la contrasenya" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/pin_button.cljs:24, src/app/main/ui/dashboard/project_menu.cljs:95 msgid "dashboard.pin-unpin" msgstr "Fixa/Deixa de fixar" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:51 msgid "dashboard.projects-title" msgstr "Projectes" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:86 msgid "dashboard.remove-account" msgstr "Voleu eliminar el vostre compte?" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "dashboard.remove-shared" msgstr "Elimina de les biblioteques compartides" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:78 msgid "dashboard.save-settings" msgstr "Desa la configuració" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:246, src/app/main/ui/dashboard/sidebar.cljs:247 msgid "dashboard.search-placeholder" msgstr "Cerca…" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:55 msgid "dashboard.searching-for" msgstr "S'està cercant “%s“…" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:56 msgid "dashboard.select-ui-language" msgstr "Selecciona la llengua de la interfície" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:63 msgid "dashboard.select-ui-theme" msgstr "Selecciona un tema" -#: src/app/main/ui/dashboard/grid.cljs +#: src/app/main/ui/dashboard/projects.cljs:282 msgid "dashboard.show-all-files" msgstr "Mostra tots els fitxers" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:96 msgid "dashboard.success-delete-file" msgstr "S'ha eliminat el fitxer" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:59 msgid "dashboard.success-delete-project" msgstr "S'ha eliminat el projecte" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:91 msgid "dashboard.success-duplicate-file" msgstr "S'ha duplicat el fitxer" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:33 msgid "dashboard.success-duplicate-project" msgstr "S'ha eliminat el projecte" -#: src/app/main/ui/dashboard/grid.cljs, src/app/main/ui/dashboard/sidebar.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:130, src/app/main/ui/dashboard/grid.cljs:558, src/app/main/ui/dashboard/sidebar.cljs:152 msgid "dashboard.success-move-file" msgstr "S'ha mogut el fitxer" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:129 msgid "dashboard.success-move-files" msgstr "S'han mogut els fitxers" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:54 msgid "dashboard.success-move-project" msgstr "S'ha mogut el projecte" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1052 msgid "dashboard.team-info" msgstr "Informació de l'equip" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1070 msgid "dashboard.team-members" msgstr "Membres de l'equip" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1085 msgid "dashboard.team-projects" msgstr "Projectes de l'equip" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:61 msgid "dashboard.theme-change" msgstr "Tema de la interfície" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:42 msgid "dashboard.title-search" msgstr "Resultats de la cerca" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:50 msgid "dashboard.type-something" msgstr "Escriviu per cercar resultats" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:287, src/app/main/ui/workspace/main_menu.cljs:566 msgid "dashboard.unpublish-shared" msgstr "Despublica la biblioteca" -#: src/app/main/ui/settings/profile.cljs, -#: src/app/main/ui/settings/password.cljs, -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:71 msgid "dashboard.update-settings" msgstr "Actualitza la configuració" -#: src/app/main/ui/settings.cljs +#: src/app/main/ui/settings.cljs:31 msgid "dashboard.your-account-title" msgstr "El meu compte" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:70 msgid "dashboard.your-email" msgstr "Correu electrònic" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:62 msgid "dashboard.your-name" msgstr "Nom" -#: src/app/main/ui/dashboard/search.cljs, src/app/main/ui/dashboard/team.cljs, -#: src/app/main/ui/dashboard/libraries.cljs, -#: src/app/main/ui/dashboard/projects.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:38, src/app/main/ui/dashboard/fonts.cljs:33, src/app/main/ui/dashboard/libraries.cljs:42, src/app/main/ui/dashboard/projects.cljs:318, src/app/main/ui/dashboard/search.cljs:30, src/app/main/ui/dashboard/sidebar.cljs:312, src/app/main/ui/dashboard/team.cljs:495, src/app/main/ui/dashboard/team.cljs:729, src/app/main/ui/dashboard/team.cljs:991, src/app/main/ui/dashboard/team.cljs:1038 msgid "dashboard.your-penpot" msgstr "El meu Penpot" -#: src/app/main/ui/alert.cljs +#: src/app/main/ui/alert.cljs:32 msgid "ds.alert-ok" msgstr "D'acord" -#: src/app/main/ui/alert.cljs +#: src/app/main/ui/alert.cljs:31, src/app/main/ui/alert.cljs:34 msgid "ds.alert-title" msgstr "Atenció" -#: src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:83 msgid "ds.component-subtitle" msgstr "Components a actualitzar:" -#: src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:36, src/app/main/ui/workspace/plugins.cljs:246 msgid "ds.confirm-cancel" msgstr "Cancel·la" -#: src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:37, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:141 msgid "ds.confirm-ok" msgstr "D'acord" -#: src/app/main/ui/confirm.cljs, src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:35, src/app/main/ui/confirm.cljs:39 msgid "ds.confirm-title" msgstr "N'esteu segur?" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:62 msgid "errors.auth-provider-not-configured" msgstr "L'autenticació del proveïdor no està configurada." +#: src/app/main/errors.cljs:104 msgid "errors.auth.unable-to-login" msgstr "Sembla que no esteu autenticat o que la sessió ha caducat." -#: src/app/main/data/workspace.cljs +#: src/app/main/data/workspace.cljs:1598 msgid "errors.clipboard-not-implemented" msgstr "El vostre navegador no pot fer aquesta operació" -#: src/app/main/ui/auth/verify_token.cljs, -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/auth/verify_token.cljs:82, src/app/main/ui/settings/change_email.cljs:46 msgid "errors.email-already-exists" msgstr "Aquest correu ja està en ús" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:87 msgid "errors.email-already-validated" msgstr "Aquest correu ja està validat." +#: src/app/main/ui/settings/password.cljs:28 msgid "errors.email-as-password" msgstr "No podeu fer servir l'adreça de correu com a contrasenya" -#: src/app/main/ui/auth/register.cljs, -#: src/app/main/ui/auth/recovery_request.cljs, -#: src/app/main/ui/settings/change_email.cljs, -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/auth/recovery_request.cljs:63, src/app/main/ui/dashboard/team.cljs:578, src/app/main/ui/settings/change_email.cljs:54 msgid "errors.email-has-permanent-bounces" msgstr "El correu «%s» té molts informes de retorn permanents." -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:35 msgid "errors.email-invalid-confirmation" msgstr "El correu de confirmació ha de coincidir" +#: src/app/main/ui/dashboard/team.cljs:170 msgid "errors.email-spam-or-permanent-bounces" msgstr "El correu «%s» s'ha marcat com a brossa o rebot permanent." -#: src/app/main/ui/auth/verify_token.cljs, -#: src/app/main/ui/settings/feedback.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/data/users.cljs:709, src/app/main/ui/auth/login.cljs:65, src/app/main/ui/auth/login.cljs:116, src/app/main/ui/auth/register.cljs:69, src/app/main/ui/auth/register.cljs:237, src/app/main/ui/auth/verify_token.cljs:92, src/app/main/ui/dashboard/team.cljs:173, src/app/main/ui/onboarding/team_choice.cljs:95, src/app/main/ui/settings/access_tokens.cljs:91, src/app/main/ui/settings/feedback.cljs:52 msgid "errors.generic" msgstr "Alguna cosa ha anat malament." -#: src/app/main/ui/components/color_input.cljs +#: src/app/main/ui/components/color_input.cljs:57 msgid "errors.invalid-color" msgstr "El color no és vàlid" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/static.cljs:43 msgid "errors.invite-invalid" msgstr "Invitació no vàlida" +#: src/app/main/ui/static.cljs:44 msgid "errors.invite-invalid.info" msgstr "Aquesta invitació pot estar cancel·lada o caducada." -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:101 msgid "errors.ldap-disabled" msgstr "L'autenticació LDAP està inhabilitada." -#: src/app/main/data/workspace/persistence.cljs +#: src/app/main/data/workspace/media.cljs:184 msgid "errors.media-too-large" msgstr "La imatge és massa gran." -#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs +#: src/app/main/data/media.cljs:68, src/app/main/data/workspace/media.cljs:187 msgid "errors.media-type-mismatch" msgstr "" "Sembla que el contingut de la imatge no coincideix amb l'extensió del " "fitxer." -#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs +#: src/app/main/data/media.cljs:65, src/app/main/data/workspace/media.cljs:172, src/app/main/data/workspace/media.cljs:175, src/app/main/data/workspace/media.cljs:178, src/app/main/data/workspace/media.cljs:181 msgid "errors.media-type-not-allowed" msgstr "Sembla que la imatge no és vàlida." -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:574 msgid "errors.member-is-muted" msgstr "" "El perfil que estàs convidant té els missatges de correu silenciats (per " "informes de correu brossa o de retorns alts)." -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:61 msgid "errors.password-invalid-confirmation" msgstr "La contrasenya de confirmació ha de coincidir" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:64 msgid "errors.password-too-short" msgstr "La contrasenya ha de tenir 8 caràcters com a mínim" +#: src/app/main/data/users.cljs:703, src/app/main/ui/auth/login.cljs:97, src/app/main/ui/auth/login.cljs:105 msgid "errors.profile-blocked" msgstr "El perfil està bloquejat" -#: src/app/main/ui/auth/recovery_request.cljs, -#: src/app/main/ui/settings/change_email.cljs, -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/auth/recovery_request.cljs:60, src/app/main/ui/dashboard/team.cljs:164, src/app/main/ui/dashboard/team.cljs:570, src/app/main/ui/settings/change_email.cljs:50 msgid "errors.profile-is-muted" msgstr "" "El teu perfil té els missatges de correu silenciats (per informes de correu " "brossa o de retorn alts)." -#: src/app/main/ui/auth/register.cljs +#: src/app/main/data/users.cljs:701, src/app/main/ui/auth/register.cljs:60 msgid "errors.registration-disabled" msgstr "El registre està desactivat." +#: src/app/main/ui/dashboard/sidebar.cljs:365, src/app/main/ui/dashboard/team.cljs:359 msgid "errors.team-leave.insufficient-members" msgstr "" "No hi ha suficients membres com per a abandonar l'equip, potser voleu " "eliminar-lo." +#: src/app/main/ui/dashboard/sidebar.cljs:368, src/app/main/ui/dashboard/team.cljs:362 msgid "errors.team-leave.member-does-not-exists" msgstr "El membre que intenteu assignar no existeix." +#: src/app/main/ui/dashboard/sidebar.cljs:371, src/app/main/ui/dashboard/team.cljs:365 msgid "errors.team-leave.owner-cant-leave" msgstr "" "El propietari no pot abandonar l'equip, heu de reassignar el rol de " "propietat." -#: src/app/main/data/media.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs +#: src/app/main/data/media.cljs:71 msgid "errors.unexpected-error" msgstr "S'ha produït un error inesperat." -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:60 msgid "errors.unexpected-token" msgstr "Token desconegut" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:109, src/app/main/ui/auth/login.cljs:113 msgid "errors.wrong-credentials" msgstr "El nom d'usuari o la contrasenya sembla incorrecte." -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:25 msgid "errors.wrong-old-password" msgstr "La contrasenya anterior no és correcta" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:77 msgid "feedback.description" msgstr "Descripció" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:95 msgid "feedback.discourse-go-to" msgstr "Ves al fòrum de Penpot" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:89 msgid "feedback.discourse-subtitle1" msgstr "Ens encanta que sigueu aquí. Si necessiteu ajuda, cerqueu abans de publicar." -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:88 msgid "feedback.discourse-title" msgstr "Comunitat de Penpot" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:72 msgid "feedback.subject" msgstr "Tema" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:69 msgid "feedback.subtitle" msgstr "" "Descriviu la raó del correu electrònic, especificant si és una incidència, " "una idea o un dubte. Un membre del nostre equip respondrà tan aviat com " "sigui possible." -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:68 msgid "feedback.title" msgstr "Correu electrònic" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:105 msgid "feedback.twitter-go-to" msgstr "Ves al X" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:99 msgid "feedback.twitter-subtitle1" msgstr "Compte per a ajudar amb dubtes tècnics." -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:98 msgid "feedback.twitter-title" msgstr "Compte de X d'ajuda" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:30 msgid "generic.error" msgstr "S'ha produït un error" -#: src/app/main/ui/inspect/attributes/blur.cljs +#: src/app/main/ui/viewer/inspect/attributes/blur.cljs:26 msgid "inspect.attributes.blur" msgstr "Difuminat" -#: src/app/main/ui/inspect/attributes/blur.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:115 msgid "inspect.attributes.blur.value" msgstr "Valor" -#: src/app/main/ui/inspect/attributes/common.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:112 msgid "inspect.attributes.color.hex" msgstr "HEX" -#: src/app/main/ui/inspect/attributes/common.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:114 msgid "inspect.attributes.color.hsla" msgstr "HSLA" -#: src/app/main/ui/inspect/attributes/common.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:113 msgid "inspect.attributes.color.rgba" msgstr "RGBA" -#: src/app/main/ui/inspect/attributes/fill.cljs +#: src/app/main/ui/viewer/inspect/attributes/fill.cljs:57 msgid "inspect.attributes.fill" msgstr "Emplenat" -#: src/app/main/ui/inspect/attributes/image.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:99, src/app/main/ui/viewer/inspect/attributes/image.cljs:51 msgid "inspect.attributes.image.download" msgstr "Baixa la imatge original" -#: src/app/main/ui/inspect/attributes/image.cljs +#: src/app/main/ui/viewer/inspect/attributes/image.cljs:39 msgid "inspect.attributes.image.height" msgstr "Alçada" -#: src/app/main/ui/inspect/attributes/image.cljs +#: src/app/main/ui/viewer/inspect/attributes/image.cljs:32 msgid "inspect.attributes.image.width" msgstr "Amplada" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout" msgstr "Disposició" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.height" msgstr "Alçada" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.left" msgstr "Esquerra" -#: src/app/main/ui/inspect/attributes/layout.cljs, -#: src/app/main/ui/inspect/attributes/layout.cljs +#: src/app/main/ui/inspect/attributes/layout.cljs, src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.radius" msgstr "Radi" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.rotation" msgstr "Rotació" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.top" msgstr "Superior" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.width" msgstr "Amplada" -#: src/app/main/ui/inspect/attributes/shadow.cljs +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:57 msgid "inspect.attributes.shadow" msgstr "Ombra" -#: src/app/main/ui/inspect/attributes/stroke.cljs +#: src/app/main/ui/viewer/inspect/attributes/stroke.cljs:52 msgid "inspect.attributes.stroke" msgstr "Traç" +#, permanent, unused msgid "inspect.attributes.stroke.alignment.center" msgstr "Centre" +#, permanent, unused msgid "inspect.attributes.stroke.alignment.inner" msgstr "Interior" +#, permanent, unused msgid "inspect.attributes.stroke.alignment.outer" msgstr "Exterior" +#, unused msgid "inspect.attributes.stroke.style.dotted" msgstr "Puntejat" +#, unused msgid "inspect.attributes.stroke.style.mixed" msgstr "Mixte" +#, unused msgid "inspect.attributes.stroke.style.none" msgstr "Cap" +#, unused msgid "inspect.attributes.stroke.style.solid" msgstr "Sòlid" #: src/app/main/ui/inspect/attributes/stroke.cljs +#, unused msgid "inspect.attributes.stroke.width" msgstr "Amplada" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:81, src/app/main/ui/viewer/inspect/attributes/text.cljs:194 msgid "inspect.attributes.typography" msgstr "Tipografia" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:89 msgid "inspect.attributes.typography.font-family" msgstr "Família tipogràfica" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:107 msgid "inspect.attributes.typography.font-size" msgstr "Mida de la lletra" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:98 msgid "inspect.attributes.typography.font-style" msgstr "Estil de la lletra" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:134 msgid "inspect.attributes.typography.letter-spacing" msgstr "Espaiat de la lletra" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:125 msgid "inspect.attributes.typography.line-height" msgstr "Alçada de la línia" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:143 msgid "inspect.attributes.typography.text-decoration" msgstr "Decoració del text" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:145 msgid "inspect.attributes.typography.text-decoration.none" msgstr "Cap" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:146 msgid "inspect.attributes.typography.text-decoration.strikethrough" msgstr "Barrat" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:147 msgid "inspect.attributes.typography.text-decoration.underline" msgstr "Subratllat" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:156 msgid "inspect.attributes.typography.text-transform" msgstr "Transformació del text" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:158 msgid "inspect.attributes.typography.text-transform.lowercase" msgstr "Minúscules" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:159 msgid "inspect.attributes.typography.text-transform.none" msgstr "Cap" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:160 msgid "inspect.attributes.typography.text-transform.titlecase" msgstr "Inicials en majúscules" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:161 msgid "inspect.attributes.typography.text-transform.uppercase" msgstr "Majúscules" -#: src/app/main/ui/inspect/right_sidebar.cljs +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:125 msgid "inspect.tabs.code" msgstr "Codi" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:98 msgid "inspect.tabs.code.selected.circle" msgstr "Cercle" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:99 msgid "inspect.tabs.code.selected.component" msgstr "Component" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:100 msgid "inspect.tabs.code.selected.curve" msgstr "Corba" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:101 msgid "inspect.tabs.code.selected.frame" msgstr "Tauler" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:102 msgid "inspect.tabs.code.selected.group" msgstr "Grup" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:103 msgid "inspect.tabs.code.selected.image" msgstr "Imatge" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:104 msgid "inspect.tabs.code.selected.mask" msgstr "Màscara" -#: src/app/main/ui/inspect/right_sidebar.cljs +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:93 msgid "inspect.tabs.code.selected.multiple" msgstr "%s seleccionats" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:105 msgid "inspect.tabs.code.selected.path" msgstr "Camí" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:106 msgid "inspect.tabs.code.selected.rect" msgstr "Rectangle" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:107 msgid "inspect.tabs.code.selected.svg-raw" msgstr "SVG" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:108 msgid "inspect.tabs.code.selected.text" msgstr "Text" -#: src/app/main/ui/inspect/right_sidebar.cljs +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:115 msgid "inspect.tabs.info" msgstr "Informació" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:158 msgid "label.shortcuts" msgstr "Dreceres" +#: src/app/main/ui/dashboard/import.cljs:527 msgid "labels.accept" msgstr "Acceptar" +#: src/app/main/ui/dashboard/fonts.cljs:175 msgid "labels.add-custom-font" msgstr "Afegeix tipografia" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:120, src/app/main/ui/dashboard/team.cljs:276, src/app/main/ui/dashboard/team.cljs:519, src/app/main/ui/dashboard/team.cljs:549, src/app/main/ui/onboarding/team_choice.cljs:67 msgid "labels.admin" msgstr "Administració" #: src/app/main/ui/workspace/comments.cljs +#, unused msgid "labels.all" msgstr "Tots" +#: src/app/main/ui/auth.cljs:37 msgid "labels.and" msgstr "i" +#: src/app/main/ui/onboarding/team_choice.cljs:162 msgid "labels.back" msgstr "Enrere" -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:59 msgid "labels.bad-gateway.desc-message" msgstr "" "Sembla que heu d'esperar una mica i tornar a provar; estem realitzant un " "petit manteniment dels nostres servidors." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:58 msgid "labels.bad-gateway.main-message" msgstr "Error del servidor (Bad Gateway)" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/data/common.cljs:112, src/app/main/ui/dashboard/change_owner.cljs:69, src/app/main/ui/dashboard/import.cljs:514, src/app/main/ui/dashboard/team.cljs:868, src/app/main/ui/delete_shared.cljs:35, src/app/main/ui/export.cljs:164, src/app/main/ui/export.cljs:460, src/app/main/ui/settings/access_tokens.cljs:188, src/app/main/ui/viewer/share_link.cljs:203, src/app/main/ui/workspace/sidebar/assets/groups.cljs:149 msgid "labels.cancel" msgstr "Cancel·la" +#: src/app/main/ui/dashboard/projects.cljs:93, src/app/main/ui/export.cljs:478, src/app/main/ui/settings/access_tokens.cljs:183, src/app/main/ui/viewer/login.cljs:77, src/app/main/ui/viewer/share_link.cljs:174, src/app/main/ui/workspace/libraries.cljs:522 msgid "labels.close" msgstr "Tanca" -#: src/app/main/ui/dashboard/comments.cljs +#: src/app/main/ui/dashboard/comments.cljs:104, src/app/main/ui/viewer/comments.cljs:70, src/app/main/ui/workspace/comments.cljs:126 msgid "labels.comments" msgstr "Comentaris" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:985, src/app/main/ui/workspace/main_menu.cljs:110 msgid "labels.community" msgstr "Comunitat" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:103 msgid "labels.confirm-password" msgstr "Confirmeu la contrasenya" +#: src/app/main/ui/dashboard/import.cljs:520, src/app/main/ui/export.cljs:465, src/app/main/ui/onboarding/newsletter.cljs:101 msgid "labels.continue" msgstr "Continua" +#, unused msgid "labels.continue-with" msgstr "Continua amb" +#: src/app/main/ui/viewer/login.cljs:75 msgid "labels.continue-with-penpot" msgstr "Podeu continuar amb un compte de Penpot" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:157, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:190 msgid "labels.create" msgstr "Crea" -#: src/app/main/ui/dashboard/team_form.cljs, -#: src/app/main/ui/dashboard/team_form.cljs +#: src/app/main/ui/dashboard/team_form.cljs:101, src/app/main/ui/dashboard/team_form.cljs:121 msgid "labels.create-team" msgstr "Crea un equip nou" -#: src/app/main/ui/dashboard/team_form.cljs +#: src/app/main/ui/dashboard/team_form.cljs:113 msgid "labels.create-team.placeholder" msgstr "Introduïu el nom de l'equip nou" +#, unused msgid "labels.custom-fonts" msgstr "Tipografies personalitzades" -#: src/app/main/ui/settings/sidebar.cljs +#: src/app/main/ui/settings/sidebar.cljs:73 msgid "labels.dashboard" msgstr "Tauler" -#: src/app/main/ui/dashboard/project_menu.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:306, src/app/main/ui/dashboard/fonts.cljs:255, src/app/main/ui/dashboard/fonts.cljs:332, src/app/main/ui/dashboard/fonts.cljs:346, src/app/main/ui/dashboard/project_menu.cljs:115, src/app/main/ui/dashboard/team.cljs:904, src/app/main/ui/settings/access_tokens.cljs:209, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:209 msgid "labels.delete" msgstr "Elimina" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:357 msgid "labels.delete-comment" msgstr "Elimina el comentari" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:354 msgid "labels.delete-comment-thread" msgstr "Elimina el fil" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:648 msgid "labels.delete-invitation" msgstr "Esborra invitació" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:262 msgid "labels.delete-multi-files" msgstr "Elimina %s fitxers" -#: src/app/main/ui/dashboard/projects.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs, -#: src/app/main/ui/dashboard/files.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:28, src/app/main/ui/dashboard/files.cljs:72, src/app/main/ui/dashboard/files.cljs:156, src/app/main/ui/dashboard/projects.cljs:220, src/app/main/ui/dashboard/projects.cljs:224, src/app/main/ui/dashboard/sidebar.cljs:791 msgid "labels.drafts" msgstr "Esborranys" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:350, src/app/main/ui/dashboard/fonts.cljs:252, src/app/main/ui/dashboard/team.cljs:902, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:205 msgid "labels.edit" msgstr "Edita" +#, unused msgid "labels.edit-file" msgstr "Edita'l" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:118, src/app/main/ui/dashboard/team.cljs:279, src/app/main/ui/dashboard/team.cljs:520, src/app/main/ui/dashboard/team.cljs:553, src/app/main/ui/onboarding/team_choice.cljs:66 msgid "labels.editor" msgstr "Editor" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:661 msgid "labels.expired-invitation" msgstr "Ha caducat" +#: src/app/main/ui/export.cljs:173 msgid "labels.export" msgstr "Exporta" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:51 msgid "labels.feedback-disabled" msgstr "Opinions desactivades" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:42 msgid "labels.feedback-sent" msgstr "S'ha enviat l'opinió" +#: src/app/main/ui/dashboard/fonts.cljs:412 msgid "labels.font-family" msgstr "Família tipogràfica" +#, unused msgid "labels.font-providers" msgstr "Proveïdors de tipografies" +#: src/app/main/ui/dashboard/fonts.cljs:413 msgid "labels.font-variants" msgstr "Estils" +#: src/app/main/ui/dashboard/fonts.cljs:52, src/app/main/ui/dashboard/sidebar.cljs:811 msgid "labels.fonts" msgstr "Tipografies" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:1015, src/app/main/ui/workspace/main_menu.cljs:142 msgid "labels.github-repo" msgstr "Repositori Github" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/settings/sidebar.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:1032, src/app/main/ui/settings/sidebar.cljs:113, src/app/main/ui/workspace/main_menu.cljs:171 msgid "labels.give-feedback" msgstr "Envia opinions" +#: src/app/main/ui/auth/recovery_request.cljs:110, src/app/main/ui/auth/register.cljs:285, src/app/main/ui/viewer/login.cljs:117 msgid "labels.go-back" msgstr "Enrere" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:978, src/app/main/ui/workspace/main_menu.cljs:102 msgid "labels.help-center" msgstr "Centre d'ajuda" -#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/comments.cljs:103, src/app/main/ui/workspace/comments.cljs:67 msgid "labels.hide-resolved-comments" msgstr "Amaga els comentaris resolts" +#: src/app/main/ui/dashboard/fonts.cljs:410 msgid "labels.installed-fonts" msgstr "Tipografies instal·lades" -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:144 msgid "labels.internal-error.desc-message" msgstr "" "Alguna cosa ha fallat. Torneu a provar l'operació i, si el problema " "continua, poseu-vos en contacte amb el suport tècnic." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:143 msgid "labels.internal-error.main-message" msgstr "Error intern" -#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:516, src/app/main/ui/dashboard/team.cljs:89, src/app/main/ui/dashboard/team.cljs:97, src/app/main/ui/dashboard/team.cljs:708 msgid "labels.invitations" msgstr "Invitacions" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:51 msgid "labels.language" msgstr "Llengua" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:1008, src/app/main/ui/workspace/main_menu.cljs:134 msgid "labels.libraries-and-templates" msgstr "Biblioteques i plantilles" +#: src/app/main/ui/viewer/header.cljs:203 msgid "labels.log-or-sign" msgstr "Inicia sessió o registra'm" -#: src/app/main/ui/settings.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:1040 msgid "labels.logout" msgstr "Tanca la sessió" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/team.cljs:468 msgid "labels.member" msgstr "Membre" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:510, src/app/main/ui/dashboard/team.cljs:87, src/app/main/ui/dashboard/team.cljs:95 msgid "labels.members" msgstr "Membres" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:96 msgid "labels.new-password" msgstr "Contrasenya nova" -#: src/app/main/ui/workspace/comments.cljs, -#: src/app/main/ui/dashboard/comments.cljs +#: src/app/main/ui/dashboard/comments.cljs:128, src/app/main/ui/workspace/comments.cljs:161 msgid "labels.no-comments-available" msgstr "No teniu notificacions de comentaris pendents" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:694 msgid "labels.no-invitations" msgstr "No hi ha invitacions." -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:696 +#, markdown msgid "labels.no-invitations-hint" msgstr "" "Feu clic al botó «Convida a l'equip» per convidar més membres a aquest " "equip." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:50 msgid "labels.not-found.desc-message" msgstr "" "És possible que aquesta pàgina no existeixi o que no tingueu permisos per a " "accedir-hi." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:49 msgid "labels.not-found.main-message" msgstr "Vaja!" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/projects.cljs:239, src/app/main/ui/dashboard/team.cljs:1095 msgid "labels.num-of-files" msgid_plural "labels.num-of-files" msgstr[0] "1 fitxer" msgstr[1] "%s fitxers" +#: src/app/main/ui/viewer/thumbnails.cljs:80 msgid "labels.num-of-frames" msgid_plural "labels.num-of-frames" msgstr[0] "1 tauler" msgstr[1] "%s taulers" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1090 msgid "labels.num-of-projects" msgid_plural "labels.num-of-projects" msgstr[0] "1 projecte" msgstr[1] "%s projectes" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:89 msgid "labels.old-password" msgstr "Contrasenya antiga" #: src/app/main/ui/workspace/comments.cljs +#, unused msgid "labels.only-yours" msgstr "Només els meus" +#, unused msgid "labels.or" msgstr "o" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:286, src/app/main/ui/dashboard/team.cljs:518, src/app/main/ui/dashboard/team.cljs:1076 msgid "labels.owner" msgstr "Propietari" -#: src/app/main/ui/settings/sidebar.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/settings/sidebar.cljs:87 msgid "labels.password" msgstr "Contrasenya" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:662 msgid "labels.pending-invitation" msgstr "Pendent" -#: src/app/main/ui/settings/sidebar.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/settings/profile.cljs:118, src/app/main/ui/settings/sidebar.cljs:82 msgid "labels.profile" msgstr "Perfil" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:784 msgid "labels.projects" msgstr "Projectes" -#: src/app/main/ui/settings/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:998, src/app/main/ui/settings/sidebar.cljs:106, src/app/main/ui/workspace/main_menu.cljs:126 msgid "labels.release-notes" msgstr "Notes de la versió" -#: src/app/main/ui/workspace/libraries.cljs, -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/workspace/libraries.cljs, src/app/main/ui/dashboard/team.cljs +#, unused msgid "labels.remove" msgstr "Elimina" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:316 msgid "labels.remove-member" msgstr "Elimina membre" -#: src/app/main/ui/dashboard/sidebar.cljs, -#: src/app/main/ui/dashboard/project_menu.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:271, src/app/main/ui/dashboard/project_menu.cljs:85, src/app/main/ui/dashboard/sidebar.cljs:539, src/app/main/ui/workspace/sidebar/assets/groups.cljs:157 msgid "labels.rename" msgstr "Canvia el nom" -#: src/app/main/ui/dashboard/team_form.cljs +#: src/app/main/ui/dashboard/team_form.cljs:99 msgid "labels.rename-team" msgstr "Canvia el nom de l’equip" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:645 msgid "labels.resend-invitation" msgstr "Reenvia invitació" -#: src/app/main/ui/static.cljs, src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:61, src/app/main/ui/static.cljs:70, src/app/main/ui/static.cljs:148 msgid "labels.retry" msgstr "Tornar a intentar-ho" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:469, src/app/main/ui/dashboard/team.cljs:709 msgid "labels.role" msgstr "Rol" +#: src/app/main/ui/dashboard/fonts.cljs:380, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:191 msgid "labels.save" msgstr "Desa" +#: src/app/main/ui/dashboard/fonts.cljs:415 msgid "labels.search-font" msgstr "Cerca tipografia" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:82 msgid "labels.send" msgstr "Envia" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:82 msgid "labels.sending" msgstr "S'està enviant…" -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:68 msgid "labels.service-unavailable.desc-message" msgstr "Estem de manteniment programat dels nostres sistemes." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:67 msgid "labels.service-unavailable.main-message" msgstr "Servei no disponible" -#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:530, src/app/main/ui/dashboard/team.cljs:88, src/app/main/ui/dashboard/team.cljs:102, src/app/main/ui/settings/options.cljs:84, src/app/main/ui/settings/sidebar.cljs:93 msgid "labels.settings" msgstr "Configuració" +#, unused msgid "labels.share-prototype" msgstr "Comparteix prototip" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:800 msgid "labels.shared-libraries" msgstr "Biblioteques compartides" -#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/comments.cljs:82, src/app/main/ui/workspace/comments.cljs:55, src/app/main/ui/workspace/comments.cljs:135 msgid "labels.show-all-comments" msgstr "Mostra tots els comentaris" +#: src/app/main/ui/viewer/comments.cljs:115 msgid "labels.show-comments-list" msgstr "Mostra la llista de comentaris" -#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/comments.cljs:91, src/app/main/ui/workspace/comments.cljs:61, src/app/main/ui/workspace/comments.cljs:136 msgid "labels.show-your-comments" msgstr "Mostra només els meus comentaris" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:710 msgid "labels.status" msgstr "Estat" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:992, src/app/main/ui/workspace/main_menu.cljs:118 msgid "labels.tutorials" msgstr "Tutorials" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:103 msgid "labels.update" msgstr "Actualitza" -#: src/app/main/ui/dashboard/team_form.cljs +#: src/app/main/ui/dashboard/team_form.cljs:120 msgid "labels.update-team" msgstr "Actualitza l'equip" +#: src/app/main/ui/dashboard/fonts.cljs:241 msgid "labels.upload" msgstr "Puja" +#: src/app/main/ui/dashboard/fonts.cljs:169 msgid "labels.upload-custom-fonts" msgstr "Pugeu tipografies personalitzades" +#: src/app/main/ui/dashboard/fonts.cljs:240 msgid "labels.uploading" msgstr "S'està pujant…" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:123, src/app/main/ui/dashboard/team.cljs:282, src/app/main/ui/dashboard/team.cljs:521 msgid "labels.viewer" msgstr "Visor" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:194 msgid "labels.write-new-comment" msgstr "Escriu un comentari nou" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/team.cljs:237 msgid "labels.you" msgstr "(jo)" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:968 msgid "labels.your-account" msgstr "El meu compte" -#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs +#: src/app/main/data/media.cljs:49, src/app/main/data/workspace/media.cljs:223, src/app/main/data/workspace/media.cljs:453 msgid "media.loading" msgstr "S'està carregant la imatge…" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/data/common.cljs:113 msgid "modals.add-shared-confirm.accept" msgstr "Afegeix com a biblioteca compartida" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/data/common.cljs:111 msgid "modals.add-shared-confirm.hint" msgstr "" "Una vegada afegit com a biblioteca compartida, els recursos de la " "biblioteca d'aquest fitxer estaran disponibles per a usar-los entre la " "resta dels fitxers." -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/data/common.cljs:110 msgid "modals.add-shared-confirm.message" msgstr "Afegeix \"%s\" com a biblioteca compartida" -#: src/app/main/ui/workspace/nudge.cljs +#: src/app/main/ui/workspace/nudge.cljs:60 msgid "modals.big-nudge" msgstr "Màxima" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:127 msgid "modals.change-email.confirm-email" msgstr "Repetiu el correu electrònic nou" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:114 msgid "modals.change-email.info" msgstr "" "Us enviarem un correu electrònic a l'adreça actual \"%s\" per a verificar " "la vostra identitat." -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:119 msgid "modals.change-email.new-email" msgstr "Correu electrònic nou" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:136 msgid "modals.change-email.submit" msgstr "Canvia el correu" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:107 msgid "modals.change-email.title" msgstr "Canvieu el vostre correu electrònic" -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:59 msgid "modals.delete-account.cancel" msgstr "Cancel·la i conserva el meu compte" -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:64 msgid "modals.delete-account.confirm" msgstr "Sí, elimina el meu compte" -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:53 msgid "modals.delete-account.info" msgstr "Si suprimiu el compte, perdreu tots els vostres projectes i arxius actuals." -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:46 msgid "modals.delete-account.title" msgstr "Segur que voleu eliminar el compte?" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:298 msgid "modals.delete-comment-thread.accept" msgstr "Elimina la conversa" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:297 msgid "modals.delete-comment-thread.message" msgstr "" "Segur que voleu eliminar aquesta conversa? S'eliminaran tots els comentaris " "del fil." -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:296 msgid "modals.delete-comment-thread.title" msgstr "Elimina la conversa" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:123 msgid "modals.delete-file-confirm.accept" msgstr "Elimina el fitxer" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:122 msgid "modals.delete-file-confirm.message" msgstr "Segur que voleu eliminar el fitxer?" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:121 msgid "modals.delete-file-confirm.title" msgstr "Eliminar el fitxer" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:117 msgid "modals.delete-file-multi-confirm.accept" msgstr "Elimina fitxers" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:116 msgid "modals.delete-file-multi-confirm.message" msgstr "Segur que voleu eliminar %s fitxers?" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:115 msgid "modals.delete-file-multi-confirm.title" msgstr "S'estan eliminant %s fitxers" +#: src/app/main/ui/dashboard/fonts.cljs:345 msgid "modals.delete-font-variant.message" msgstr "" "Segur que voleu eliminar aquest estil de lletra? No es carregarà si " "s'utilitza en un fitxer." +#: src/app/main/ui/dashboard/fonts.cljs:344 msgid "modals.delete-font-variant.title" msgstr "S'està eliminant l'estil de tipografia" +#: src/app/main/ui/dashboard/fonts.cljs:331 msgid "modals.delete-font.message" msgstr "" "Segur que voleu eliminar aquesta tipografia? No es carregarà si s'utilitza " "en un fitxer." +#: src/app/main/ui/dashboard/fonts.cljs:330 msgid "modals.delete-font.title" msgstr "S'està eliminant la tipografia" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs +#: src/app/main/ui/workspace/context_menu.cljs:522, src/app/main/ui/workspace/sidebar/sitemap.cljs:45 msgid "modals.delete-page.body" msgstr "Segur que voleu eliminar la pàgina?" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs +#: src/app/main/ui/workspace/context_menu.cljs:521, src/app/main/ui/workspace/sidebar/sitemap.cljs:44 msgid "modals.delete-page.title" msgstr "Elimina la pàgina" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:69 msgid "modals.delete-project-confirm.accept" msgstr "Elimina el projecte" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:68 msgid "modals.delete-project-confirm.message" msgstr "Segur que voleu eliminar el projecte?" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:67 msgid "modals.delete-project-confirm.title" msgstr "Elimina el projecte" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:51 msgid "modals.delete-shared-confirm.accept" msgid_plural "modals.delete-shared-confirm.accept" msgstr[0] "Suprimeix el fitxer" msgstr[1] "Suprimeix els fitxers" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:46 msgid "modals.delete-shared-confirm.message" msgid_plural "modals.delete-shared-confirm.message" msgstr[0] "Esteu segur que voleu suprimir aquest fitxer?" msgstr[1] "Esteu segur que voleu suprimir aquests fitxers?" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:435 msgid "modals.delete-team-confirm.accept" msgstr "Elimina l'equip" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:434 msgid "modals.delete-team-confirm.message" msgstr "" "Segur que voleu eliminar l'equip? Tots els projectes i fitxers associats a " "l'equip s'eliminaran permanentment." -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:433 msgid "modals.delete-team-confirm.title" msgstr "S'està eliminant l'equip" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:427 msgid "modals.delete-team-member-confirm.accept" msgstr "Elimina el membre" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:426 msgid "modals.delete-team-member-confirm.message" msgstr "Segur que voleu eliminar aquest membre de l'equip?" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:425 msgid "modals.delete-team-member-confirm.title" msgstr "Elimina el membre de l'equip" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:218 msgid "modals.invite-member-confirm.accept" msgstr "Envia una invitació" +#: src/app/main/ui/dashboard/team.cljs:213, src/app/main/ui/onboarding/team_choice.cljs:156 msgid "modals.invite-member.emails" msgstr "Correus electrònics, separats per una coma" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:190 msgid "modals.invite-team-member.title" msgstr "Convida membres a l'equip" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:423, src/app/main/ui/dashboard/team.cljs:393 msgid "modals.leave-and-close-confirm.hint" msgstr "" "Com que no hi ha ningú més a aquest equip, s'eliminarà l'equip amb els seus " "arxius i projectes." -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:422, src/app/main/ui/dashboard/team.cljs:392 msgid "modals.leave-and-close-confirm.message" msgstr "Segur que vols deixar l'equip %s?" +#: src/app/main/ui/dashboard/change_owner.cljs:59 msgid "modals.leave-and-reassign.forbidden" msgstr "" "No es pot abandonar l'equip si no hi ha cap altre membre capaç d'ascendir a " "propietari. És possible que vulgueu eliminar l'equip." -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/change_owner.cljs:55 msgid "modals.leave-and-reassign.hint1" msgstr "Sou el propietari de %s." -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/change_owner.cljs:78 msgid "modals.leave-and-reassign.promote-and-leave" msgstr "Ascendeix i abandona" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/change_owner.cljs:34 msgid "modals.leave-and-reassign.select-member-to-promote" msgstr "Seleccioneu un membre per a ascendir" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/change_owner.cljs:49 msgid "modals.leave-and-reassign.title" msgstr "Seleccioneu un membre per a ascendir" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:402, src/app/main/ui/dashboard/sidebar.cljs:424, src/app/main/ui/dashboard/team.cljs:394, src/app/main/ui/dashboard/team.cljs:416 msgid "modals.leave-confirm.accept" msgstr "Abandona l'equip" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:401, src/app/main/ui/dashboard/team.cljs:415 msgid "modals.leave-confirm.message" msgstr "Segur que voleu deixar l'equip?" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:400, src/app/main/ui/dashboard/sidebar.cljs:421, src/app/main/ui/dashboard/team.cljs:391, src/app/main/ui/dashboard/team.cljs:414 msgid "modals.leave-confirm.title" msgstr "S'està abandonant l'equip" -#: src/app/main/ui/workspace/nudge.cljs +#: src/app/main/ui/workspace/main_menu.cljs:266, src/app/main/ui/workspace/nudge.cljs:47 msgid "modals.nudge-title" msgstr "Quantitat d'atracció" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:340 msgid "modals.promote-owner-confirm.accept" msgstr "Ascendeix" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:339 msgid "modals.promote-owner-confirm.hint" msgstr "" "Si transferiu la propietat, canviareu el vostre rol a admin, perdent alguns " "permisos sobre l'equip. " -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:338 msgid "modals.promote-owner-confirm.message" msgstr "" "Actualment sou el propietari de l'equip. Segur que voleu ascendir aquest " "usuari a propietari?" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:337 msgid "modals.promote-owner-confirm.title" msgstr "Ascendeix a propietari" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "modals.remove-shared-confirm.accept" msgstr "Elimina de la biblioteca compartida" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "modals.remove-shared-confirm.hint" msgstr "" "Una vegada suprimida com a biblioteca compartida, la biblioteca d'aquest " "fitxer deixarà d'estar disponible per a la resta dels fitxers." -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "modals.remove-shared-confirm.message" msgstr "Elimina «%s» com a biblioteca compartida" -#: src/app/main/ui/workspace/nudge.cljs +#: src/app/main/ui/workspace/nudge.cljs:53 msgid "modals.small-nudge" msgstr "Mínima" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#, unused msgid "modals.update-remote-component-in-bulk.hint" msgstr "" "S'actualitzaran els components en una llibreria compartida. Això podria " "afectar altres fitxers que els usen." -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#, unused msgid "modals.update-remote-component-in-bulk.message" msgstr "Actualitza els components en una biblioteca compartida" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:380 msgid "modals.update-remote-component.accept" msgstr "Actualitza" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:379 msgid "modals.update-remote-component.cancel" msgstr "Cancel·la" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:378 msgid "modals.update-remote-component.hint" msgstr "" "Esteu a punt d'actualitzar un component d'una biblioteca compartida. Això " "pot afectar altres fitxers que l'usen." -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:377 msgid "modals.update-remote-component.message" msgstr "Actualitza un component en una biblioteca compartida" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:154, src/app/main/ui/dashboard/team.cljs:595 msgid "notifications.invitation-email-sent" msgstr "La invitació s'ha enviat correctament" -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:24 msgid "notifications.profile-deletion-not-allowed" msgstr "" "No podeu eliminar el vostre perfil. Reassigneu els vostres equips abans de " "continuar." -#: src/app/main/ui/settings/profile.cljs, src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:29, src/app/main/ui/settings/profile.cljs:35 msgid "notifications.profile-saved" msgstr "El perfil s'ha desat correctament!" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:63 msgid "notifications.validation-email-sent" msgstr "S'ha enviat un correu electrònic de verificació a %s. Reviseu el correu!" +#, unused msgid "onboarding-v2.before-start.desc2.title" msgstr "Guia d'ús" +#: src/app/main/ui/onboarding/team_choice.cljs:31 msgid "onboarding-v2.welcome.title" msgstr "Us donem la benvinguda a Penpot!" +#: src/app/main/ui/onboarding/team_choice.cljs:215 msgid "onboarding.choice.team-up.create-team-desc" msgstr "Quan poseu un nom a l'equip, podreu convidar persones a unir-s'hi." +#: src/app/main/ui/onboarding/team_choice.cljs:224 msgid "onboarding.choice.team-up.create-team-placeholder" msgstr "Introduïu el nom de l'equip" +#: src/app/main/ui/dashboard/projects.cljs:89, src/app/main/ui/onboarding/team_choice.cljs:140 msgid "onboarding.choice.team-up.invite-members" msgstr "Convida membres" +#, unused msgid "onboarding.newsletter.accept" msgstr "Sí, subscriu-m'hi" +#: src/app/main/ui/onboarding/newsletter.cljs:40 msgid "onboarding.newsletter.acceptance-message" msgstr "" "S'ha enviat la sol·licitud de subscripció. Us enviarem un correu electrònic " "per confirmar-ho." +#: src/app/main/ui/onboarding/newsletter.cljs:95 msgid "onboarding.newsletter.policy" msgstr "Política de privacitat." +#: src/app/main/ui/onboarding/newsletter.cljs:60 msgid "onboarding.newsletter.title" msgstr "Voleu rebre les novetats de Penpot?" +#: src/app/main/ui/onboarding/team_choice.cljs:213 msgid "onboarding.team-modal.create-team" msgstr "Crea un equip" +#: src/app/main/ui/onboarding/templates.cljs:78 msgid "onboarding.templates.subtitle" msgstr "Aquí teniu algunes plantilles." +#: src/app/main/ui/onboarding/templates.cljs:77 msgid "onboarding.templates.title" msgstr "Comenceu a dissenyar" +#, unused msgid "onboarding.welcome.alt" msgstr "Penpot" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:99 msgid "profile.recovery.go-to-login" msgstr "Vés a l'inici de sessió" -#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs +#: src/app/main/ui/viewer/inspect/exports.cljs:147, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:631, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:137, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:148, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:188, src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:158, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:399, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:410, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:430, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:441, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:458, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:472, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:309, src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:183, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:373, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:389, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:245, src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:172 msgid "settings.multiple" msgstr "Mixt" # SECTIONS +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:414 msgid "shortcut-section.basics" msgstr "Bàsics" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:420 msgid "shortcut-section.dashboard" msgstr "Panell de control" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:423 msgid "shortcut-section.viewer" msgstr "Visor" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:417 msgid "shortcut-section.workspace" msgstr "Espai de treball" # SUBSECTIONS +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:56 msgid "shortcut-subsection.alignment" msgstr "Alineació" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:57 msgid "shortcut-subsection.edit" msgstr "Edició" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:58 msgid "shortcut-subsection.general-dashboard" msgstr "Genèric" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:59 msgid "shortcut-subsection.general-viewer" msgstr "Genèric" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:60 msgid "shortcut-subsection.main-menu" msgstr "Menú principal" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:61 msgid "shortcut-subsection.modify-layers" msgstr "Modifica les capes" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:62 msgid "shortcut-subsection.navigation-dashboard" msgstr "Navegació" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:63 msgid "shortcut-subsection.navigation-viewer" msgstr "Navegació" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:64 msgid "shortcut-subsection.navigation-workspace" msgstr "Navegació" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:65 msgid "shortcut-subsection.panels" msgstr "Panells" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:66 msgid "shortcut-subsection.path-editor" msgstr "Camins" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:67 msgid "shortcut-subsection.shape" msgstr "Formes" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:69 msgid "shortcut-subsection.tools" msgstr "Eines" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:70 msgid "shortcut-subsection.zoom-viewer" msgstr "Zoom" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:71 msgid "shortcut-subsection.zoom-workspace" msgstr "Zoom" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:72 msgid "shortcuts.add-comment" msgstr "Comentaris" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:73 msgid "shortcuts.add-node" msgstr "Afegeix node" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:74 msgid "shortcuts.align-bottom" msgstr "Alinea a baix" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:76 msgid "shortcuts.align-hcenter" msgstr "Alinea al centre horitzontalment" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:78 msgid "shortcuts.align-left" msgstr "Alinea a l'esquerra" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:79 msgid "shortcuts.align-right" msgstr "Alinea a la dreta" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:80 msgid "shortcuts.align-top" msgstr "Alinea a dalt" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:81 msgid "shortcuts.align-vcenter" msgstr "Alinea al centre verticalment" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:82 msgid "shortcuts.artboard-selection" msgstr "Crea un tauler a partir de selecció" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:84 msgid "shortcuts.bool-difference" msgstr "Diferència booleana" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:85 msgid "shortcuts.bool-exclude" msgstr "Exclusió booleana" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:86 msgid "shortcuts.bool-intersection" msgstr "Intersecció booleana" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:87 msgid "shortcuts.bool-union" msgstr "Unió booleana" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:88 msgid "shortcuts.bring-back" msgstr "Envia-ho al fons" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:89 msgid "shortcuts.bring-backward" msgstr "Envia-ho cap avall" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:90 msgid "shortcuts.bring-forward" msgstr "Envia-ho cap amunt" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:91 msgid "shortcuts.bring-front" msgstr "Envia-ho a dalt" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:92 msgid "shortcuts.clear-undo" msgstr "Esborra desfer" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:93 msgid "shortcuts.copy" msgstr "Copia" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:94 msgid "shortcuts.create-component" msgstr "Crea component" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:95 msgid "shortcuts.create-new-project" msgstr "Crea nou" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:96 msgid "shortcuts.cut" msgstr "Retalla" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:97 msgid "shortcuts.decrease-zoom" msgstr "Disminueix el zoom" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:98 msgid "shortcuts.delete" msgstr "Elimina" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:99 msgid "shortcuts.delete-node" msgstr "Elimina el node" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:100 msgid "shortcuts.detach-component" msgstr "Separa el component" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:101 msgid "shortcuts.draw-curve" msgstr "Corba" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:102 msgid "shortcuts.draw-ellipse" msgstr "El·lipse" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:103 msgid "shortcuts.draw-frame" msgstr "Tauler" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:104 msgid "shortcuts.draw-nodes" msgstr "Dibuixa el camí" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:105 msgid "shortcuts.draw-path" msgstr "Camí" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:106 msgid "shortcuts.draw-rect" msgstr "Rectangle" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:107 msgid "shortcuts.draw-text" msgstr "Text" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:108 msgid "shortcuts.duplicate" msgstr "Duplica" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:109 msgid "shortcuts.escape" msgstr "Cancel·la" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:110 msgid "shortcuts.export-shapes" msgstr "Exporta formes" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:111 msgid "shortcuts.fit-all" msgstr "Amplia per encabir-ho tot" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:112 msgid "shortcuts.flip-horizontal" msgstr "Gira horitzontalment" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:113 msgid "shortcuts.flip-vertical" msgstr "Gira verticalment" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:116 msgid "shortcuts.go-to-drafts" msgstr "Ves als esborranys" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:117 msgid "shortcuts.go-to-libs" msgstr "Ves a les biblioteques compartides" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:118 msgid "shortcuts.go-to-search" msgstr "Cerca" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:119 msgid "shortcuts.group" msgstr "Agrupa" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:120 msgid "shortcuts.h-distribute" msgstr "Distribueix horitzontalment" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:121 msgid "shortcuts.hide-ui" msgstr "Mostra/Amaga la interfície" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:122 msgid "shortcuts.increase-zoom" msgstr "Amplia" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:123 msgid "shortcuts.insert-image" msgstr "Insereix imatge" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:125 msgid "shortcuts.join-nodes" msgstr "Uneix nodes" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:131 msgid "shortcuts.make-corner" msgstr "Fes cantonada" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:132 msgid "shortcuts.make-curve" msgstr "Fes corba" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:133 msgid "shortcuts.mask" msgstr "Màscara" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:134 msgid "shortcuts.merge-nodes" msgstr "Fusiona nodes" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:135 msgid "shortcuts.move" msgstr "Mou" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:136 msgid "shortcuts.move-fast-down" msgstr "Mou avall ràpidament" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:137 msgid "shortcuts.move-fast-left" msgstr "Mou a l'esquerra ràpidament" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:138 msgid "shortcuts.move-fast-right" msgstr "Mou a la dreta ràpidament" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:139 msgid "shortcuts.move-fast-up" msgstr "Mou amunt ràpidament" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:140 msgid "shortcuts.move-nodes" msgstr "Mou node" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:141 msgid "shortcuts.move-unit-down" msgstr "Mou avall" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:142 msgid "shortcuts.move-unit-left" msgstr "Mou a l'esquerra" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:143 msgid "shortcuts.move-unit-right" msgstr "Mou a la dreta" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:144 msgid "shortcuts.move-unit-up" msgstr "Mou amunt" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:145 msgid "shortcuts.next-frame" msgstr "Següent tauler" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:516 msgid "shortcuts.not-found" msgstr "No s'han trobat dreceres" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:146 msgid "shortcuts.opacity-0" msgstr "Fixa l'opacitat al 100%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:147 msgid "shortcuts.opacity-1" msgstr "Fixa l'opacitat al 10%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:148 msgid "shortcuts.opacity-2" msgstr "Fixa l'opacitat al 20%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:149 msgid "shortcuts.opacity-3" msgstr "Fixa l'opacitat al 30%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:150 msgid "shortcuts.opacity-4" msgstr "Fixa l'opacitat al 40%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:151 msgid "shortcuts.opacity-5" msgstr "Fixa l'opacitat al 50%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:152 msgid "shortcuts.opacity-6" msgstr "Fixa l'opacitat al 60%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:153 msgid "shortcuts.opacity-7" msgstr "Fixa l'opacitat al 70%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:154 msgid "shortcuts.opacity-8" msgstr "Fixa l'opacitat al 80%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:155 msgid "shortcuts.opacity-9" msgstr "Fixa l'opacitat al 90%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:156 msgid "shortcuts.open-color-picker" msgstr "Selector de color" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:157 msgid "shortcuts.open-comments" msgstr "Ves als comentaris del visor" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:158 msgid "shortcuts.open-dashboard" msgstr "Ves al panell de control" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:160 msgid "shortcuts.open-interactions" msgstr "Ves a les interaccions del visor" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:161 msgid "shortcuts.open-viewer" msgstr "Ves a les interaccions del visor" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:162 msgid "shortcuts.open-workspace" msgstr "Ves a l'espai de treball" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:260 msgid "shortcuts.or" msgstr " o " +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:163 msgid "shortcuts.paste" msgstr "Enganxa" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:164 msgid "shortcuts.prev-frame" msgstr "Tauler anterior" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:165 msgid "shortcuts.redo" msgstr "Refés" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:166 msgid "shortcuts.reset-zoom" msgstr "Restableix el zoom" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:168 msgid "shortcuts.search-placeholder" msgstr "Cerca dreceres" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:169 msgid "shortcuts.select-all" msgstr "Selecciona-ho tot" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:173 msgid "shortcuts.separate-nodes" msgstr "Separa els nodes" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:174 msgid "shortcuts.show-pixel-grid" msgstr "Mostra/Amaga graella de píxels" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:175 msgid "shortcuts.show-shortcuts" msgstr "Mostra/Amaga dreceres" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:176 msgid "shortcuts.snap-nodes" msgstr "Ajusta als nodes" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:177 msgid "shortcuts.snap-pixel-grid" msgstr "Ajusta a la graella de píxels" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:178 msgid "shortcuts.start-editing" msgstr "Comença a editar" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:179 msgid "shortcuts.start-measure" msgstr "Comença a mesurar" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:180 msgid "shortcuts.stop-measure" msgstr "Deixa de mesurar" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:185 msgid "shortcuts.thumbnail-set" msgstr "Estableix miniatures" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:496, src/app/main/ui/workspace/sidebar/shortcuts.cljs:505 msgid "shortcuts.title" msgstr "Dreceres de teclat" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:186 msgid "shortcuts.toggle-alignment" msgstr "Commuta l'alineació dinàmica" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:187 msgid "shortcuts.toggle-assets" msgstr "Commuta els recursos" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:188 msgid "shortcuts.toggle-colorpalette" msgstr "Commuta paleta de colors" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:189 msgid "shortcuts.toggle-focus-mode" msgstr "Activa/desactiva el mode de concentració" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:190 msgid "shortcuts.toggle-fullscreen" msgstr "Activa/desactiva la pantalla completa" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:192 msgid "shortcuts.toggle-history" msgstr "Mostra/Amaga l'historial" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:193 msgid "shortcuts.toggle-layers" msgstr "Commutales capes" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:196 msgid "shortcuts.toggle-lock" msgstr "Bloqueja la selecció" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:197 msgid "shortcuts.toggle-lock-size" msgstr "Bloqueja les proporcions" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:202 msgid "shortcuts.toggle-textpalette" msgstr "Mostra/amaga la paleta de text" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:204 msgid "shortcuts.toggle-visibility" msgstr "Mostra/amaga l'element" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:205 msgid "shortcuts.toggle-zoom-style" msgstr "Commuta l'estil de zoom" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:207 msgid "shortcuts.undo" msgstr "Desfés" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:208 msgid "shortcuts.ungroup" msgstr "Desagrupa" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:209 msgid "shortcuts.unmask" msgstr "Desemmascara" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:210 msgid "shortcuts.v-distribute" msgstr "Distribueix verticalment" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:213 msgid "shortcuts.zoom-selected" msgstr "Amplia a la selecció" -#: src/app/main/ui/dashboard/files.cljs +#: src/app/main/ui/dashboard/files.cljs:158 msgid "title.dashboard.files" msgstr "%s - Penpot" -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:37 msgid "title.dashboard.font-providers" msgstr "Proveïdors de tipografies - %s - Penpot" -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:36 msgid "title.dashboard.fonts" msgstr "Tipografies - %s - Penpot" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:320 msgid "title.dashboard.projects" msgstr "Projectes - %s - Penpot" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:32 msgid "title.dashboard.search" msgstr "Cerca - %s - Penpot" -#: src/app/main/ui/dashboard/libraries.cljs +#: src/app/main/ui/dashboard/libraries.cljs:44 msgid "title.dashboard.shared-libraries" msgstr "Biblioteques compartides - %s - Penpot" -#: src/app/main/ui/auth/verify_token.cljs, src/app/main/ui/auth.cljs +#: src/app/main/ui/auth/verify_token.cljs:68, src/app/main/ui/auth.cljs:54 msgid "title.default" msgstr "Penpot - Llibertat de disseny per a equips" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:110 msgid "title.settings.feedback" msgstr "Envia opinions - Penpot" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:80 msgid "title.settings.options" msgstr "Configuració - Penpot" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:115 msgid "title.settings.password" msgstr "Contrasenya - Penpot" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:115 msgid "title.settings.profile" msgstr "Perfil - Penpot" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:727 msgid "title.team-invitations" msgstr "Invitacions - %s - Penpot" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:493 msgid "title.team-members" msgstr "Membres - %s - Penpot" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1036 msgid "title.team-settings" msgstr "Configuració - %s - Penpot" -#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs +#: src/app/main/ui/viewer.cljs:419 msgid "title.viewer" msgstr "%s - Visor - Penpot" -#: src/app/main/ui/workspace.cljs +#: src/app/main/ui/workspace.cljs:190 msgid "title.workspace" msgstr "%s - Penpot" +#: src/app/main/ui.cljs:144 msgid "viewer.breaking-change.description" msgstr "" "Aquest enllaç ja no és vàlid. Creeu-ne un de nou o demaneu-li'n un al " "propietari." +#: src/app/main/ui.cljs:143 msgid "viewer.breaking-change.message" msgstr "Ho sentim!" -#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs +#: src/app/main/ui/viewer.cljs:569 msgid "viewer.empty-state" msgstr "No s'ha trobat cap tauler a la pàgina." -#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs +#: src/app/main/ui/viewer.cljs:574 msgid "viewer.frame-not-found" msgstr "No s'ha trobat el tauler." +#: src/app/main/ui/viewer/header.cljs:336 msgid "viewer.header.comments-section" msgstr "Comentaris (%s)" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/interactions.cljs:292 msgid "viewer.header.dont-show-interactions" msgstr "No mostris les interaccions" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/header.cljs:188 msgid "viewer.header.fullscreen" msgstr "Pantalla completa" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/interactions.cljs:282 msgid "viewer.header.interactions" msgstr "Interaccions" +#: src/app/main/ui/viewer/header.cljs:327 msgid "viewer.header.interactions-section" msgstr "Interaccions (%s)" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/share_link.cljs:187 msgid "viewer.header.share.copy-link" msgstr "Copia l'enllaç" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/interactions.cljs:300 msgid "viewer.header.show-interactions" msgstr "Mostra les interaccions" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/interactions.cljs:311 msgid "viewer.header.show-interactions-on-click" msgstr "Mostra les interaccions en fer clic" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/header.cljs:231 msgid "viewer.header.sitemap" msgstr "Mapa del lloc" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:58 msgid "workspace.align.hcenter" msgstr "Alinea el centre horitzontal (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:74 msgid "workspace.align.hdistribute" msgstr "Distribueix l'espaiat horitzontal (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:50 msgid "workspace.align.hleft" msgstr "Alinea a l'esquerra (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:66 msgid "workspace.align.hright" msgstr "Alinea a la dreta (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:99 msgid "workspace.align.vbottom" msgstr "Alinea la part inferior (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:91 msgid "workspace.align.vcenter" msgstr "Alinea el centre vertical (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:104 msgid "workspace.align.vdistribute" msgstr "Distribueix l'espaiat vertical (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:83 msgid "workspace.align.vtop" msgstr "Alinea la part superior (%s)" #: src/app/main/ui/workspace/sidebar/assets.cljs +#, unused msgid "workspace.assets.assets" msgstr "Recursos" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets.cljs:134 msgid "workspace.assets.box-filter-all" msgstr "Tots els recursos" -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/dashboard/grid.cljs:130, src/app/main/ui/dashboard/grid.cljs:162, src/app/main/ui/workspace/sidebar/assets/colors.cljs:485, src/app/main/ui/workspace/sidebar/assets.cljs:150 msgid "workspace.assets.colors" msgstr "Colors" -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/dashboard/grid.cljs:126, src/app/main/ui/dashboard/grid.cljs:141, src/app/main/ui/workspace/sidebar/assets/components.cljs:513, src/app/main/ui/workspace/sidebar/assets.cljs:139 msgid "workspace.assets.components" msgstr "Components" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:131 msgid "workspace.assets.create-group" msgstr "Crea un grup" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:142 msgid "workspace.assets.create-group-hint" msgstr "" "Els elements s'anomenaran automàticament com a \"nom del grup / nom de " "l'element\"" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/context_menu.cljs:529, src/app/main/ui/workspace/sidebar/assets/colors.cljs:251, src/app/main/ui/workspace/sidebar/assets/components.cljs:577, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:424, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:443 msgid "workspace.assets.delete" msgstr "Elimina" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/context_menu.cljs:534, src/app/main/ui/workspace/sidebar/assets/components.cljs:572 msgid "workspace.assets.duplicate" msgstr "Duplica" -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:247, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:439 msgid "workspace.assets.edit" msgstr "Edita" -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/graphics.cljs:384, src/app/main/ui/workspace/sidebar/assets.cljs:145 msgid "workspace.assets.graphics" msgstr "Gràfics" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:255, src/app/main/ui/workspace/sidebar/assets/components.cljs:581, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:428, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:448 msgid "workspace.assets.group" msgstr "Agrupa" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:141 msgid "workspace.assets.group-name" msgstr "Nom del grup" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets.cljs:168 msgid "workspace.assets.libraries" msgstr "Biblioteques" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/file_library.cljs:295 msgid "workspace.assets.not-found" msgstr "No s'han trobat recursos" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/context_menu.cljs:532, src/app/main/ui/workspace/sidebar/assets/colors.cljs:243, src/app/main/ui/workspace/sidebar/assets/components.cljs:566, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:421, src/app/main/ui/workspace/sidebar/assets/groups.cljs:63, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:434 msgid "workspace.assets.rename" msgstr "Canvia el nom" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:132 msgid "workspace.assets.rename-group" msgstr "Canvia el nom del grup" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets.cljs:173 msgid "workspace.assets.search" msgstr "Cerca recursos" #: src/app/main/ui/workspace/sidebar/assets.cljs +#, unused msgid "workspace.assets.selected-count" msgid_plural "workspace.assets.selected-count" msgstr[0] "%s element seleccionat" msgstr[1] "%s elements seleccionats" -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/dashboard/grid.cljs:134, src/app/main/ui/dashboard/grid.cljs:189, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:397, src/app/main/ui/workspace/sidebar/assets.cljs:155 msgid "workspace.assets.typography" msgstr "Tipografies" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused msgid "workspace.assets.typography.font-id" msgstr "Tipografia" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:505 msgid "workspace.assets.typography.font-size" msgstr "Mida" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:501 msgid "workspace.assets.typography.font-variant-id" msgstr "Variant" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:523 msgid "workspace.assets.typography.go-to-edit" msgstr "Vés al fitxer de la biblioteca d'estils per a editar-lo" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:513 msgid "workspace.assets.typography.letter-spacing" msgstr "Espaiat de la lletra" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:509 msgid "workspace.assets.typography.line-height" msgstr "Alçada de la línia" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, -#: src/app/main/ui/inspect/attributes/text.cljs, -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/dashboard/grid.cljs:199, src/app/main/ui/workspace/libraries.cljs:461, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:464, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:489, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:596, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:615 msgid "workspace.assets.typography.sample" msgstr "Ag" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:517 msgid "workspace.assets.typography.text-transform" msgstr "Transforma el text" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:66 msgid "workspace.assets.ungroup" msgstr "Desagrupa" +#: src/app/main/ui/workspace/sidebar/layers.cljs:525 msgid "workspace.focus.focus-mode" msgstr "Mode d'enfocament" +#: src/app/main/ui/workspace/context_menu.cljs:287, src/app/main/ui/workspace/context_menu.cljs:553 msgid "workspace.focus.focus-off" msgstr "Enfocament apagat" +#: src/app/main/ui/workspace/context_menu.cljs:286 msgid "workspace.focus.focus-on" msgstr "Enfocament actiu" +#, unused msgid "workspace.focus.selection" msgstr "Selecció" -#: src/app/main/data/workspace/libraries.cljs, -#: src/app/main/ui/components/color_bullet.cljs +#: src/app/util/color.cljs:34 msgid "workspace.gradients.linear" msgstr "Degradat lineal" -#: src/app/main/data/workspace/libraries.cljs, -#: src/app/main/ui/components/color_bullet.cljs +#: src/app/util/color.cljs:35 msgid "workspace.gradients.radial" msgstr "Degradat radial" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:238 msgid "workspace.header.menu.disable-dynamic-alignment" msgstr "Desactiva l'alineació dinàmica" #: src/app/main/ui/workspace/header.cljs +#, unused msgid "workspace.header.menu.disable-scale-text" msgstr "Desactiva l'escalat del text" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:223 msgid "workspace.header.menu.disable-snap-guides" msgstr "No ajustis a les guies" +#: src/app/main/ui/workspace/main_menu.cljs:253 msgid "workspace.header.menu.disable-snap-pixel-grid" msgstr "No ajustis als píxels" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:239 msgid "workspace.header.menu.enable-dynamic-alignment" msgstr "Activa l'alineació dinàmica" #: src/app/main/ui/workspace/header.cljs +#, unused msgid "workspace.header.menu.enable-scale-text" msgstr "Activa l'escalat del text" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:224 msgid "workspace.header.menu.enable-snap-guides" msgstr "Ajusta a les guies" +#: src/app/main/ui/workspace/main_menu.cljs:254 msgid "workspace.header.menu.enable-snap-pixel-grid" msgstr "Ajusta als píxels" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:382 msgid "workspace.header.menu.hide-artboard-names" msgstr "Amaga els noms dels taulers" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:353 msgid "workspace.header.menu.hide-palette" msgstr "Amaga la paleta de colors" +#: src/app/main/ui/workspace/main_menu.cljs:394 msgid "workspace.header.menu.hide-pixel-grid" msgstr "Amaga la graella de píxels" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:320 msgid "workspace.header.menu.hide-rules" msgstr "Amaga les regles" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:367 msgid "workspace.header.menu.hide-textpalette" msgstr "Amaga la paleta de tipografies" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:731 msgid "workspace.header.menu.option.edit" msgstr "Edita" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:720 msgid "workspace.header.menu.option.file" msgstr "Fixer" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:777 msgid "workspace.header.menu.option.help-info" msgstr "Ajuda i informació" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:753 msgid "workspace.header.menu.option.preferences" msgstr "Preferències" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:742 msgid "workspace.header.menu.option.view" msgstr "Mostra" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:432 msgid "workspace.header.menu.select-all" msgstr "Selecciona-ho tot" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:383 msgid "workspace.header.menu.show-artboard-names" msgstr "Mostra els noms dels taulers" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:354 msgid "workspace.header.menu.show-palette" msgstr "Mostra la paleta de colors" +#: src/app/main/ui/workspace/main_menu.cljs:395 msgid "workspace.header.menu.show-pixel-grid" msgstr "Mostra graella de píxels" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:321 msgid "workspace.header.menu.show-rules" msgstr "Mostra les regles" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:368 msgid "workspace.header.menu.show-textpalette" msgstr "Mostra la paleta de tipografies" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/viewer/header.cljs:98, src/app/main/ui/workspace/right_header.cljs:120 msgid "workspace.header.reset-zoom" msgstr "Restableix" #: src/app/main/ui/workspace/header.cljs +#, unused msgid "workspace.header.save-error" msgstr "S'ha produït un error en desar" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/right_header.cljs:52 msgid "workspace.header.saved" msgstr "Desat" #: src/app/main/ui/workspace/header.cljs +#, unused msgid "workspace.header.saving" msgstr "S'està desant" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/right_header.cljs:42, src/app/main/ui/workspace/right_header.cljs:47 msgid "workspace.header.unsaved" msgstr "Canvis sense desar" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/right_header.cljs:239 msgid "workspace.header.viewer" msgstr "Visor (%s)" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/viewer/header.cljs:109 msgid "workspace.header.zoom-fill" msgstr "Emplena - Amplia per a omplir" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/viewer/header.cljs:102 msgid "workspace.header.zoom-fit" msgstr "Ajusta - Redueix per a encaixar" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/right_header.cljs:123 msgid "workspace.header.zoom-fit-all" msgstr "Apropa per a omplir-ho tot" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/viewer/header.cljs:116 msgid "workspace.header.zoom-full-screen" msgstr "Pantalla completa" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/right_header.cljs:130 msgid "workspace.header.zoom-selected" msgstr "Apropa la selecció" #: src/app/main/ui/workspace/libraries.cljs +#, unused msgid "workspace.libraries.add" msgstr "Afegeix" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:80, src/app/main/ui/workspace/libraries.cljs:99 msgid "workspace.libraries.colors" msgstr "%s colors" -#: src/app/main/ui/workspace/colorpicker/libraries.cljs, -#: src/app/main/ui/workspace/colorpalette.cljs +#: src/app/main/ui/workspace/color_palette_ctx_menu.cljs:60, src/app/main/ui/workspace/colorpicker/libraries.cljs:73, src/app/main/ui/workspace/text_palette_ctx_menu.cljs:50 msgid "workspace.libraries.colors.file-library" msgstr "Biblioteca del fitxer" #: src/app/main/ui/workspace/colorpicker.cljs +#, unused msgid "workspace.libraries.colors.hsv" msgstr "HSV" -#: src/app/main/ui/workspace/colorpicker/libraries.cljs, -#: src/app/main/ui/workspace/colorpalette.cljs +#: src/app/main/ui/workspace/color_palette_ctx_menu.cljs:82, src/app/main/ui/workspace/colorpicker/libraries.cljs:72 msgid "workspace.libraries.colors.recent-colors" msgstr "Colors recents" #: src/app/main/ui/workspace/colorpicker.cljs +#, unused msgid "workspace.libraries.colors.rgb-complementary" msgstr "Complementari d'RGB" #: src/app/main/ui/workspace/colorpicker.cljs +#, unused msgid "workspace.libraries.colors.rgba" msgstr "RGBA" -#: src/app/main/ui/workspace/colorpicker.cljs +#: src/app/main/ui/workspace/colorpicker.cljs:372 msgid "workspace.libraries.colors.save-color" msgstr "Desa l'estil de color" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:74, src/app/main/ui/workspace/libraries.cljs:91 msgid "workspace.libraries.components" msgstr "%s components" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:215 msgid "workspace.libraries.file-library" msgstr "Biblioteca del fitxer" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:77, src/app/main/ui/workspace/libraries.cljs:95 msgid "workspace.libraries.graphics" msgstr "%s gràfics" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:209 msgid "workspace.libraries.in-this-file" msgstr "BIBLIOTEQUES EN AQUEST FITXER" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:526, src/app/main/ui/workspace/libraries.cljs:531 msgid "workspace.libraries.libraries" msgstr "BIBLIOTEQUES" #: src/app/main/ui/workspace/libraries.cljs +#, unused msgid "workspace.libraries.library" msgstr "BIBLIOTECA" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:380 msgid "workspace.libraries.no-libraries-need-sync" msgstr "No hi ha biblioteques compartides pendents d'actualitzar" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:299 msgid "workspace.libraries.no-matches-for" msgstr "No s'ha trobat cap coincidència per a “%s“" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:296 msgid "workspace.libraries.no-shared-libraries-available" msgstr "No hi ha biblioteques compartides disponibles" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:260 msgid "workspace.libraries.search-shared-libraries" msgstr "Cerca biblioteques compartides" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:256 msgid "workspace.libraries.shared-libraries" msgstr "BIBLIOTEQUES COMPARTIDES" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:308 msgid "workspace.libraries.text.multiple-typography" msgstr "Diverses tipografies" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:311 msgid "workspace.libraries.text.multiple-typography-tooltip" msgstr "Desvincula totes les tipografies" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:83, src/app/main/ui/workspace/libraries.cljs:103 msgid "workspace.libraries.typography" msgstr "%s tipografies" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:402 msgid "workspace.libraries.update" msgstr "Actualitza" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:536 msgid "workspace.libraries.updates" msgstr "ACTUALITZACIONS" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:737 msgid "workspace.options.add-interaction" msgstr "Feu clic en el botó de + per a afegir interaccions." -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:86, src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:102 msgid "workspace.options.blur-options.title" msgstr "Difuminat" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:85 msgid "workspace.options.blur-options.title.group" msgstr "Difuminat del grup" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:84 msgid "workspace.options.blur-options.title.multiple" msgstr "Difuminat de selecció" -#: src/app/main/ui/workspace/sidebar/options/page.cljs +#: src/app/main/ui/workspace/sidebar/options/page.cljs:32, src/app/main/ui/workspace/sidebar/options/page.cljs:39 msgid "workspace.options.canvas-background" msgstr "Fons del llenç" +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:548 msgid "workspace.options.clip-content" msgstr "Trunca el contingut" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:600, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:605 msgid "workspace.options.component" msgstr "Component" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:163 msgid "workspace.options.constraints" msgstr "Restriccions" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:150 msgid "workspace.options.constraints.bottom" msgstr "Inferior" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:141, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:152 msgid "workspace.options.constraints.center" msgstr "Centre" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:229 msgid "workspace.options.constraints.fix-when-scrolling" msgstr "Fixa en desplaçar" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:138 msgid "workspace.options.constraints.left" msgstr "Esquerra" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:140 msgid "workspace.options.constraints.leftright" msgstr "Esquerra i dreta" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:139 msgid "workspace.options.constraints.right" msgstr "Dreta" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:142, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:153 msgid "workspace.options.constraints.scale" msgstr "Escala" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:149 msgid "workspace.options.constraints.top" msgstr "Superior" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:151 msgid "workspace.options.constraints.topbottom" msgstr "Superior i inferior" -#: src/app/main/ui/workspace/sidebar/options.cljs +#: src/app/main/ui/workspace/sidebar/options.cljs:112 msgid "workspace.options.design" msgstr "Disseny" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs +#: src/app/main/ui/viewer/inspect/exports.cljs:139 msgid "workspace.options.export" msgstr "Exporta" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs +#, unused msgid "workspace.options.export-multiple" msgstr "Exporta la selecció" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs +#: src/app/main/ui/viewer/inspect/exports.cljs:195, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:237 msgid "workspace.options.export-object" msgstr "Exporta 1 element" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs +#: src/app/main/ui/viewer/inspect/exports.cljs:178, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:219 msgid "workspace.options.export.suffix" msgstr "Sufix" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs, src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/export.cljs:240 msgid "workspace.options.exporting-complete" msgstr "Exportació completa" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs +#: src/app/main/ui/export.cljs:172, src/app/main/ui/export.cljs:241, src/app/main/ui/viewer/inspect/exports.cljs:194, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:236 msgid "workspace.options.exporting-object" msgstr "S'està exportant…" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs, src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/export.cljs:239 msgid "workspace.options.exporting-object-error" msgstr "Exportació fallida" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs, src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/export.cljs:242 msgid "workspace.options.exporting-object-slow" msgstr "Exportació inesperadament lenta" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:49, src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:174 msgid "workspace.options.fill" msgstr "Emplenat" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:178 msgid "workspace.options.flows.add-flow-start" msgstr "Afegeix l'inici del flux" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#, unused msgid "workspace.options.flows.flow-start" msgstr "Inici del flux" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:161 msgid "workspace.options.flows.flow-starts" msgstr "S'inicia el flux" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:29 msgid "workspace.options.grid.auto" msgstr "Automàtic" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:157 msgid "workspace.options.grid.column" msgstr "Columnes" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused msgid "workspace.options.grid.grid-title" msgstr "Graella" +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:196, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:237 msgid "workspace.options.grid.params.color" msgstr "Color" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused msgid "workspace.options.grid.params.columns" msgstr "Columnes" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:259 msgid "workspace.options.grid.params.gutter" msgstr "Espaiat" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:246 msgid "workspace.options.grid.params.height" msgstr "Alçada" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:270 msgid "workspace.options.grid.params.margin" msgstr "Marge" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused msgid "workspace.options.grid.params.rows" msgstr "Files" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:216, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:290 msgid "workspace.options.grid.params.set-default" msgstr "Estableix com a predeterminat" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused msgid "workspace.options.grid.params.size" msgstr "Mida" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused msgid "workspace.options.grid.params.type" msgstr "Tipus" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:231 msgid "workspace.options.grid.params.type.bottom" msgstr "Inferior" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:229 msgid "workspace.options.grid.params.type.center" msgstr "Centre" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:228 msgid "workspace.options.grid.params.type.left" msgstr "Esquerra" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:232 msgid "workspace.options.grid.params.type.right" msgstr "Dreta" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:225 msgid "workspace.options.grid.params.type.stretch" msgstr "Estira" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:227 msgid "workspace.options.grid.params.type.top" msgstr "Superior" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:211, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:288 msgid "workspace.options.grid.params.use-default" msgstr "Usa valors predeterminats" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:247 msgid "workspace.options.grid.params.width" msgstr "Ample" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:158 msgid "workspace.options.grid.row" msgstr "Files" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:156 msgid "workspace.options.grid.square" msgstr "Quadrat" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:48 msgid "workspace.options.group-fill" msgstr "Emplenament del grup" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:42 msgid "workspace.options.group-stroke" msgstr "Traç del grup" +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:406 msgid "workspace.options.height" msgstr "Altura" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:468 msgid "workspace.options.interaction-action" msgstr "Acció" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:41, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:367 msgid "workspace.options.interaction-after-delay" msgstr "Després de" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:614 msgid "workspace.options.interaction-animation" msgstr "Animació" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:406 msgid "workspace.options.interaction-animation-dissolve" msgstr "Dissol" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:405 msgid "workspace.options.interaction-animation-none" msgstr "Cap" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:412 msgid "workspace.options.interaction-animation-push" msgstr "Empenta" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:407 msgid "workspace.options.interaction-animation-slide" msgstr "Lliscament" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:604 msgid "workspace.options.interaction-background" msgstr "Afegeix una superposició de fons" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:590 msgid "workspace.options.interaction-close-outside" msgstr "Tanca en fer clic fora" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:372 msgid "workspace.options.interaction-close-overlay" msgstr "Tanca la superposició" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:56 msgid "workspace.options.interaction-close-overlay-dest" msgstr "Tanca la superposició: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:456 msgid "workspace.options.interaction-delay" msgstr "Retard" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:478 msgid "workspace.options.interaction-destination" msgstr "Destinació" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:661 msgid "workspace.options.interaction-duration" msgstr "Durada" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:674 msgid "workspace.options.interaction-easing" msgstr "Suavització" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:416 msgid "workspace.options.interaction-easing-ease" msgstr "Suau" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:417 msgid "workspace.options.interaction-easing-ease-in" msgstr "Entrada suau" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:419 msgid "workspace.options.interaction-easing-ease-in-out" msgstr "Entrada/sortida suau" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:418 msgid "workspace.options.interaction-easing-ease-out" msgstr "Sortida suau" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:415 msgid "workspace.options.interaction-easing-linear" msgstr "Lineal" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#, unused msgid "workspace.options.interaction-in" msgstr "Entrada" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:39, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:364 msgid "workspace.options.interaction-mouse-enter" msgstr "El ratolí entra" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:40, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:365 msgid "workspace.options.interaction-mouse-leave" msgstr "El ratolí abandona" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:458, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:459, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:464, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:663, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:665, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:669 msgid "workspace.options.interaction-ms" msgstr "ms" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:369 msgid "workspace.options.interaction-navigate-to" msgstr "Navega a" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:50 msgid "workspace.options.interaction-navigate-to-dest" msgstr "Navega a: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:51, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:53, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:55, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:380 msgid "workspace.options.interaction-none" msgstr "(sense definir)" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:691 msgid "workspace.options.interaction-offset-effect" msgstr "Efecte de desplaçament" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:35, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:360 msgid "workspace.options.interaction-on-click" msgstr "En fer clic" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:370 msgid "workspace.options.interaction-open-overlay" msgstr "Obre la superposició" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:52 msgid "workspace.options.interaction-open-overlay-dest" msgstr "Obre la superposició: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:59, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:374 msgid "workspace.options.interaction-open-url" msgstr "Obre una URL" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#, unused msgid "workspace.options.interaction-out" msgstr "Sortida" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:403 msgid "workspace.options.interaction-pos-bottom-center" msgstr "Inferior centrat" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:401 msgid "workspace.options.interaction-pos-bottom-left" msgstr "Inferior esquerra" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:402 msgid "workspace.options.interaction-pos-bottom-right" msgstr "Inferior dreta" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:397 msgid "workspace.options.interaction-pos-center" msgstr "Centre" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:396 msgid "workspace.options.interaction-pos-manual" msgstr "Manual" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:400 msgid "workspace.options.interaction-pos-top-center" msgstr "Centre superior" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:398 msgid "workspace.options.interaction-pos-top-left" msgstr "Superior esquerra" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:399 msgid "workspace.options.interaction-pos-top-right" msgstr "Superior dreta" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:524 msgid "workspace.options.interaction-position" msgstr "Posició" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:494 msgid "workspace.options.interaction-preserve-scroll" msgstr "Conserva la posició del desplaçament" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:58, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:373 msgid "workspace.options.interaction-prev-screen" msgstr "Pantalla anterior" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:57, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:379, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:393, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:394 msgid "workspace.options.interaction-self" msgstr "a si mateix" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:371 msgid "workspace.options.interaction-toggle-overlay" msgstr "Commuta la superposició" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:54 msgid "workspace.options.interaction-toggle-overlay-dest" msgstr "Commuta la superposició: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:445 msgid "workspace.options.interaction-trigger" msgstr "Activador" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:503 msgid "workspace.options.interaction-url" msgstr "URL" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:37, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:362 msgid "workspace.options.interaction-while-hovering" msgstr "Mentre el cursor està damunt" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:38, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:363 msgid "workspace.options.interaction-while-pressing" msgstr "Mentre es prem" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:724 msgid "workspace.options.interactions" msgstr "Interaccions" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:137 msgid "workspace.options.layer-options.blend-mode.color" msgstr "Color" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:126 msgid "workspace.options.layer-options.blend-mode.color-burn" msgstr "Crema el color" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:129 msgid "workspace.options.layer-options.blend-mode.color-dodge" msgstr "Aclareix el color" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:124 msgid "workspace.options.layer-options.blend-mode.darken" msgstr "Enfosqueix" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:133 msgid "workspace.options.layer-options.blend-mode.difference" msgstr "Resta" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:134 msgid "workspace.options.layer-options.blend-mode.exclusion" msgstr "Exclusió" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:132 msgid "workspace.options.layer-options.blend-mode.hard-light" msgstr "Llum forta" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:135 msgid "workspace.options.layer-options.blend-mode.hue" msgstr "To" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:127 msgid "workspace.options.layer-options.blend-mode.lighten" msgstr "Il·lumina" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:138 msgid "workspace.options.layer-options.blend-mode.luminosity" msgstr "Lluminositat" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:125 msgid "workspace.options.layer-options.blend-mode.multiply" msgstr "Multiplica" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:123 msgid "workspace.options.layer-options.blend-mode.normal" msgstr "Llum normal" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:130 msgid "workspace.options.layer-options.blend-mode.overlay" msgstr "Superposa" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:136 msgid "workspace.options.layer-options.blend-mode.saturation" msgstr "Saturació" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:128 msgid "workspace.options.layer-options.blend-mode.screen" msgstr "Pantalla" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:131 msgid "workspace.options.layer-options.blend-mode.soft-light" msgstr "Llum suau" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#, unused msgid "workspace.options.layer-options.title" msgstr "Capa" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#, unused msgid "workspace.options.layer-options.title.group" msgstr "Agrupa les capes" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#, unused msgid "workspace.options.layer-options.title.multiple" msgstr "Capes seleccionades" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout-item.advanced-ops" msgstr "Opcions avançades" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.bottom" msgstr "Baix" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.direction.column" msgstr "Columna" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.direction.column-reverse" msgstr "Columna invertida" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.direction.row" msgstr "Fila" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.direction.row-reverse" msgstr "Fila invertida" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.gap" msgstr "Espaiat" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.left" msgstr "Esquerra" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout.margin" msgstr "Marge" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout.margin-all" msgstr "Tots els costats" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout.margin-simple" msgstr "Marge senzill" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.packed" msgstr "ajuntat" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.padding-all" msgstr "Tots els costats" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.right" msgstr "Dreta" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.space-around" msgstr "separat" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.space-between" msgstr "espaiat" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.top" msgstr "Dalt" -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:146 msgid "workspace.options.more-colors" msgstr "Més colors" -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:123 msgid "workspace.options.more-lib-colors" msgstr "Més llibreries de colors" +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:161 msgid "workspace.options.opacity" msgstr "Opacitat" -#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#, unused msgid "workspace.options.position" msgstr "Posició" -#: src/app/main/ui/workspace/sidebar/options.cljs +#: src/app/main/ui/workspace/sidebar/options.cljs:157 msgid "workspace.options.prototype" msgstr "Prototip" +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:469, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:481 msgid "workspace.options.radius" msgstr "Radi" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:513 msgid "workspace.options.radius-bottom-left" msgstr "Inferior esquerra" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:522 msgid "workspace.options.radius-bottom-right" msgstr "Inferior dreta" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:495 msgid "workspace.options.radius-top-left" msgstr "Superior esquerra" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:504 msgid "workspace.options.radius-top-right" msgstr "Superior dreta" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:532 msgid "workspace.options.radius.all-corners" msgstr "Tots els cantons" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:533 msgid "workspace.options.radius.single-corners" msgstr "Cantons individuals" +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:183 msgid "workspace.options.recent-fonts" msgstr "Recent" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs, src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/export.cljs:284 msgid "workspace.options.retry" msgstr "Torna-ho a provar" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:451 msgid "workspace.options.rotation" msgstr "Rotació" +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:180 msgid "workspace.options.search-font" msgstr "Cerca tipografia" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:741 msgid "workspace.options.select-a-shape" msgstr "" "Seleccioneu una forma, un tauler o un grup per a arrossegar una connexió a " "un altre tauler." -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:105 msgid "workspace.options.selection-color" msgstr "Colors seleccionats" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:47 msgid "workspace.options.selection-fill" msgstr "Emplenament de selecció" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:41 msgid "workspace.options.selection-stroke" msgstr "Traç de la selecció" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:40, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:198, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:200 msgid "workspace.options.shadow-options.blur" msgstr "Difuminat" +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:238 msgid "workspace.options.shadow-options.color" msgstr "Color de l'ombra" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:144 msgid "workspace.options.shadow-options.drop-shadow" msgstr "Ombra caiguda" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:145 msgid "workspace.options.shadow-options.inner-shadow" msgstr "Ombra interior" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:38, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:186 msgid "workspace.options.shadow-options.offsetx" msgstr "X" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:39, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:224 msgid "workspace.options.shadow-options.offsety" msgstr "Y" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:41, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:211, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:213 msgid "workspace.options.shadow-options.spread" msgstr "Difusió" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:296 msgid "workspace.options.shadow-options.title" msgstr "Ombra" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:295 msgid "workspace.options.shadow-options.title.group" msgstr "Ombra del grup" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:294 msgid "workspace.options.shadow-options.title.multiple" msgstr "Ombres de selecció" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:193 msgid "workspace.options.show-fill-on-export" msgstr "Mostra en l'exportació" +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:562 msgid "workspace.options.show-in-viewer" msgstr "Mostra al visor" -#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:162 msgid "workspace.options.size" msgstr "Mida" -#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:355 msgid "workspace.options.size-presets" msgstr "Mides predefinides" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:43 msgid "workspace.options.stroke" msgstr "Traç" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#, unused msgid "workspace.options.stroke-cap.circle-marker" msgstr "Marcador circular" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#, unused msgid "workspace.options.stroke-cap.diamond-marker" msgstr "Marcador de diamant" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#, unused msgid "workspace.options.stroke-cap.line-arrow" msgstr "Fletxa de línia" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:124 msgid "workspace.options.stroke-cap.none" msgstr "Cap" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:132 msgid "workspace.options.stroke-cap.round" msgstr "Redó" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:133 msgid "workspace.options.stroke-cap.square" msgstr "Quadrat" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#, unused msgid "workspace.options.stroke-cap.square-marker" msgstr "Marcador quadrat" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#, unused msgid "workspace.options.stroke-cap.triangle-arrow" msgstr "Fletxa triangular" +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:192 msgid "workspace.options.stroke-color" msgstr "Color del traç" +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:165 msgid "workspace.options.stroke-width" msgstr "Ample del traç" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:87 msgid "workspace.options.stroke.center" msgstr "Centrat" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:105 msgid "workspace.options.stroke.dashed" msgstr "A ratlles" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:104 msgid "workspace.options.stroke.dotted" msgstr "Puntejat" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:88 msgid "workspace.options.stroke.inner" msgstr "Interior" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:106 msgid "workspace.options.stroke.mixed" msgstr "Mixte" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:89 msgid "workspace.options.stroke.outer" msgstr "Exterior" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:103 msgid "workspace.options.stroke.solid" msgstr "Sòlid" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:115 msgid "workspace.options.text-options.align-bottom" msgstr "Alinea a baix" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:111 msgid "workspace.options.text-options.align-middle" msgstr "Alinea al centre" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:107 msgid "workspace.options.text-options.align-top" msgstr "Alinea a dalt" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:82 msgid "workspace.options.text-options.direction-ltr" msgstr "LTR" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:87 msgid "workspace.options.text-options.direction-rtl" msgstr "RTL" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:149 msgid "workspace.options.text-options.grow-auto-height" msgstr "Alt automàtic" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:145 msgid "workspace.options.text-options.grow-auto-width" msgstr "Ample automàtic" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:141 msgid "workspace.options.text-options.grow-fixed" msgstr "Fix" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:381 msgid "workspace.options.text-options.letter-spacing" msgstr "Espaiat de la lletra" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:364 msgid "workspace.options.text-options.line-height" msgstr "Alçada de la línia" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused msgid "workspace.options.text-options.lowercase" msgstr "Minúscules" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused msgid "workspace.options.text-options.none" msgstr "Cap" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:176 msgid "workspace.options.text-options.strikethrough" msgstr "Ratllat (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:51 msgid "workspace.options.text-options.text-align-center" msgstr "Alinea el centre (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:59 msgid "workspace.options.text-options.text-align-justify" msgstr "Justifica (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:47 msgid "workspace.options.text-options.text-align-left" msgstr "Alinea a l'esquerra (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:55 msgid "workspace.options.text-options.text-align-right" msgstr "Alinea a la dreta (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:189 msgid "workspace.options.text-options.title" msgstr "Text" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:188 msgid "workspace.options.text-options.title-group" msgstr "Text del grup" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:187 msgid "workspace.options.text-options.title-selection" msgstr "Text de la selecció" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused msgid "workspace.options.text-options.titlecase" msgstr "Inicials en majúscules" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:171 msgid "workspace.options.text-options.underline" msgstr "Subratllat (%s)" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused msgid "workspace.options.text-options.uppercase" msgstr "Majúscules" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:745 msgid "workspace.options.use-play-button" msgstr "" "Utilitzeu el botó de «play» de la capçalera per a executar la vista de " "prototip." +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:395 msgid "workspace.options.width" msgstr "Ample" +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:427 msgid "workspace.options.x" msgstr "X" +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:438 msgid "workspace.options.y" msgstr "Y" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:167 msgid "workspace.path.actions.add-node" msgstr "Afegeix un node (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:174 msgid "workspace.path.actions.delete-node" msgstr "Elimina el node (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:152 msgid "workspace.path.actions.draw-nodes" msgstr "Dibuixa els nodes (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:189 msgid "workspace.path.actions.join-nodes" msgstr "Uneix els nodes (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:204 msgid "workspace.path.actions.make-corner" msgstr "Converteix a cantó (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:211 msgid "workspace.path.actions.make-curve" msgstr "Converteix a corba (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:182 msgid "workspace.path.actions.merge-nodes" msgstr "Combina els nodes (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:159 msgid "workspace.path.actions.move-nodes" msgstr "Mou els nodes (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:196 msgid "workspace.path.actions.separate-nodes" msgstr "Separa els nodes (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:218 msgid "workspace.path.actions.snap-nodes" msgstr "Alinea els nodes (%s)" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:193 msgid "workspace.shape.menu.back" msgstr "Envia-ho al fons" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:190 msgid "workspace.shape.menu.backward" msgstr "Envia-ho darrere" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:139 msgid "workspace.shape.menu.copy" msgstr "Copia" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:275 msgid "workspace.shape.menu.create-artboard-from-selection" msgstr "Selecciona al tauler" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:465 msgid "workspace.shape.menu.create-component" msgstr "Crea un component" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:142 msgid "workspace.shape.menu.cut" msgstr "Retalla" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:486 msgid "workspace.shape.menu.delete" msgstr "Elimina" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:391 msgid "workspace.shape.menu.delete-flow-start" msgstr "Elimina l'inici del flux" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:432 msgid "workspace.shape.menu.detach-instance" msgstr "Desconnecta la instància" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:431 msgid "workspace.shape.menu.detach-instances-in-bulk" msgstr "Desenganxa les instàncies" +#: src/app/main/ui/workspace/context_menu.cljs:335, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:75 msgid "workspace.shape.menu.difference" msgstr "Diferència" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:148 msgid "workspace.shape.menu.duplicate" msgstr "Duplica" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:321 msgid "workspace.shape.menu.edit" msgstr "Edita" +#: src/app/main/ui/workspace/context_menu.cljs:341 msgid "workspace.shape.menu.exclude" msgstr "Exclou" +#: src/app/main/ui/workspace/context_menu.cljs:348, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:89 msgid "workspace.shape.menu.flatten" msgstr "Aplana" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:208 msgid "workspace.shape.menu.flip-horizontal" msgstr "Volteja horitzontalment" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:204 msgid "workspace.shape.menu.flip-vertical" msgstr "Volteja verticalment" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:394 msgid "workspace.shape.menu.flow-start" msgstr "Inici del flux" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:184 msgid "workspace.shape.menu.forward" msgstr "Porta-ho endavant" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:187 msgid "workspace.shape.menu.front" msgstr "Porta-ho a primer pla" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#, unused msgid "workspace.shape.menu.go-main" msgstr "Vés al fitxer del component principal" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:261 msgid "workspace.shape.menu.group" msgstr "Agrupa" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:363, src/app/main/ui/workspace/sidebar/layer_item.cljs:145 msgid "workspace.shape.menu.hide" msgstr "Amaga" +#: src/app/main/ui/workspace/context_menu.cljs:548, src/app/main/ui/workspace/main_menu.cljs:408 msgid "workspace.shape.menu.hide-ui" msgstr "Mostra/Amaga la interfície" +#: src/app/main/ui/workspace/context_menu.cljs:338 msgid "workspace.shape.menu.intersection" msgstr "Intersecció" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:371, src/app/main/ui/workspace/sidebar/layer_item.cljs:153 msgid "workspace.shape.menu.lock" msgstr "Bloca" -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:266 msgid "workspace.shape.menu.mask" msgstr "Màscara" -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:145, src/app/main/ui/workspace/context_menu.cljs:545 msgid "workspace.shape.menu.paste" msgstr "Enganxa" +#: src/app/main/ui/workspace/context_menu.cljs:331 msgid "workspace.shape.menu.path" msgstr "Camí" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:436 msgid "workspace.shape.menu.reset-overrides" msgstr "Desfés les modificacions" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:174 msgid "workspace.shape.menu.select-layer" msgstr "Selecciona la capa" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:360, src/app/main/ui/workspace/sidebar/layer_item.cljs:144 msgid "workspace.shape.menu.show" msgstr "Mostra" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:442, src/app/main/ui/workspace/sidebar/assets/components.cljs:586 msgid "workspace.shape.menu.show-main" msgstr "Vés al component principal" +#: src/app/main/ui/workspace/context_menu.cljs:221 msgid "workspace.shape.menu.thumbnail-remove" msgstr "Elimina la miniatura" +#: src/app/main/ui/workspace/context_menu.cljs:223 msgid "workspace.shape.menu.thumbnail-set" msgstr "Estableix com a miniatura" +#: src/app/main/ui/workspace/context_menu.cljs:326 msgid "workspace.shape.menu.transform-to-path" msgstr "Transforma en camí" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:257 msgid "workspace.shape.menu.ungroup" msgstr "Desagrupa" +#: src/app/main/ui/workspace/context_menu.cljs:332, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:70 msgid "workspace.shape.menu.union" msgstr "Unió" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:368, src/app/main/ui/workspace/sidebar/layer_item.cljs:152 msgid "workspace.shape.menu.unlock" msgstr "Desbloca" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:271 msgid "workspace.shape.menu.unmask" msgstr "Desemmascara" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs +#, unused msgid "workspace.shape.menu.update-components-in-bulk" msgstr "Actualitza els components principals" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:445 msgid "workspace.shape.menu.update-main" msgstr "Actualitza el component principal" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/right_header.cljs:231, src/app/main/ui/workspace/right_header.cljs:232 msgid "workspace.sidebar.history" msgstr "Historial (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/sidebar/layers.cljs:522, src/app/main/ui/workspace/sidebar.cljs:100 msgid "workspace.sidebar.layers" msgstr "Capes" +#: src/app/main/ui/workspace/sidebar/layers.cljs:308, src/app/main/ui/workspace/sidebar/layers.cljs:380 msgid "workspace.sidebar.layers.components" msgstr "Components" +#: src/app/main/ui/workspace/sidebar/layers.cljs:305, src/app/main/ui/workspace/sidebar/layers.cljs:338 msgid "workspace.sidebar.layers.frames" msgstr "Taulers" +#: src/app/main/ui/workspace/sidebar/layers.cljs:306, src/app/main/ui/workspace/sidebar/layers.cljs:352 msgid "workspace.sidebar.layers.groups" msgstr "Grups" +#: src/app/main/ui/workspace/sidebar/layers.cljs:310, src/app/main/ui/workspace/sidebar/layers.cljs:408 msgid "workspace.sidebar.layers.images" msgstr "Imatges" +#: src/app/main/ui/workspace/sidebar/layers.cljs:307, src/app/main/ui/workspace/sidebar/layers.cljs:366 msgid "workspace.sidebar.layers.masks" msgstr "Màscares" +#: src/app/main/ui/workspace/sidebar/layers.cljs:289 msgid "workspace.sidebar.layers.search" msgstr "Cerca capes" +#: src/app/main/ui/workspace/sidebar/layers.cljs:311, src/app/main/ui/workspace/sidebar/layers.cljs:422 msgid "workspace.sidebar.layers.shapes" msgstr "Formes" +#: src/app/main/ui/workspace/sidebar/layers.cljs:309, src/app/main/ui/workspace/sidebar/layers.cljs:394 msgid "workspace.sidebar.layers.texts" msgstr "Textos" -#: src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs, -#: src/app/main/ui/inspect/attributes/svg.cljs +#: src/app/main/ui/viewer/inspect/attributes/svg.cljs:56, src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs:91 msgid "workspace.sidebar.options.svg-attrs.title" msgstr "Atributs SVG importats" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs +#: src/app/main/ui/workspace/sidebar/sitemap.cljs:217 msgid "workspace.sidebar.sitemap" msgstr "Pàgines" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/left_header.cljs:91 msgid "workspace.sitemap" msgstr "Mapa del lloc" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/sidebar.cljs:120 msgid "workspace.toolbar.assets" msgstr "Recursos" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/palette.cljs:165, src/app/main/ui/workspace/palette.cljs:166 msgid "workspace.toolbar.color-palette" msgstr "Paleta de colors (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/right_header.cljs:220, src/app/main/ui/workspace/right_header.cljs:221 msgid "workspace.toolbar.comments" msgstr "Comentaris (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:180, src/app/main/ui/workspace/top_toolbar.cljs:181 msgid "workspace.toolbar.curve" msgstr "Corba (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:160, src/app/main/ui/workspace/top_toolbar.cljs:161 msgid "workspace.toolbar.ellipse" msgstr "El·lipse (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:142, src/app/main/ui/workspace/top_toolbar.cljs:143 msgid "workspace.toolbar.frame" msgstr "Tauler (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:59, src/app/main/ui/workspace/top_toolbar.cljs:60 msgid "workspace.toolbar.image" msgstr "Imatge (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:132, src/app/main/ui/workspace/top_toolbar.cljs:133 msgid "workspace.toolbar.move" msgstr "Mou (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:189, src/app/main/ui/workspace/top_toolbar.cljs:190 msgid "workspace.toolbar.path" msgstr "Camí (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:151, src/app/main/ui/workspace/top_toolbar.cljs:152 msgid "workspace.toolbar.rect" msgstr "Rectangle (%s)" #: src/app/main/ui/workspace/left_toolbar.cljs +#, unused msgid "workspace.toolbar.shortcuts" msgstr "Dreceres (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:169, src/app/main/ui/workspace/top_toolbar.cljs:170 msgid "workspace.toolbar.text" msgstr "Text (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/palette.cljs:173, src/app/main/ui/workspace/palette.cljs:174 msgid "workspace.toolbar.text-palette" msgstr "Tipografies (%s)" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:342 msgid "workspace.undo.empty" msgstr "Encara no hi ha canvis a l'historial" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:147 msgid "workspace.undo.entry.delete" msgstr "S'ha eliminat %s" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:146 msgid "workspace.undo.entry.modify" msgstr "S'ha modificat %s" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:148 msgid "workspace.undo.entry.move" msgstr "Objectes moguts" +#: src/app/main/ui/workspace/sidebar/history.cljs:111 msgid "workspace.undo.entry.multiple.circle" msgstr "cercles" +#: src/app/main/ui/workspace/sidebar/history.cljs:112 msgid "workspace.undo.entry.multiple.color" msgstr "colors" +#: src/app/main/ui/workspace/sidebar/history.cljs:113 msgid "workspace.undo.entry.multiple.component" msgstr "components" +#: src/app/main/ui/workspace/sidebar/history.cljs:114 msgid "workspace.undo.entry.multiple.curve" msgstr "corbes" +#: src/app/main/ui/workspace/sidebar/history.cljs:115 msgid "workspace.undo.entry.multiple.frame" msgstr "tauler" +#: src/app/main/ui/workspace/sidebar/history.cljs:116 msgid "workspace.undo.entry.multiple.group" msgstr "grups" +#: src/app/main/ui/workspace/sidebar/history.cljs:117 msgid "workspace.undo.entry.multiple.media" msgstr "recursos gràfics" +#: src/app/main/ui/workspace/sidebar/history.cljs:118 msgid "workspace.undo.entry.multiple.multiple" msgstr "objectes" +#: src/app/main/ui/workspace/sidebar/history.cljs:119 msgid "workspace.undo.entry.multiple.page" msgstr "pàgines" +#: src/app/main/ui/workspace/sidebar/history.cljs:120 msgid "workspace.undo.entry.multiple.path" msgstr "camins" +#: src/app/main/ui/workspace/sidebar/history.cljs:121 msgid "workspace.undo.entry.multiple.rect" msgstr "rectangles" +#: src/app/main/ui/workspace/sidebar/history.cljs:122 msgid "workspace.undo.entry.multiple.shape" msgstr "formes" +#: src/app/main/ui/workspace/sidebar/history.cljs:123 msgid "workspace.undo.entry.multiple.text" msgstr "textos" +#: src/app/main/ui/workspace/sidebar/history.cljs:124 msgid "workspace.undo.entry.multiple.typography" msgstr "recursos tipogràfics" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:145 msgid "workspace.undo.entry.new" msgstr "Nou %s" +#: src/app/main/ui/workspace/sidebar/history.cljs:125 msgid "workspace.undo.entry.single.circle" msgstr "cercle" +#: src/app/main/ui/workspace/sidebar/history.cljs:126 msgid "workspace.undo.entry.single.color" msgstr "color" +#: src/app/main/ui/workspace/sidebar/history.cljs:127 msgid "workspace.undo.entry.single.component" msgstr "component" +#: src/app/main/ui/workspace/sidebar/history.cljs:128 msgid "workspace.undo.entry.single.curve" msgstr "corba" +#: src/app/main/ui/workspace/sidebar/history.cljs:129 msgid "workspace.undo.entry.single.frame" msgstr "tauler" +#: src/app/main/ui/workspace/sidebar/history.cljs:130 msgid "workspace.undo.entry.single.group" msgstr "grup" +#: src/app/main/ui/workspace/sidebar/history.cljs:131 msgid "workspace.undo.entry.single.image" msgstr "imatge" +#: src/app/main/ui/workspace/sidebar/history.cljs:132 msgid "workspace.undo.entry.single.media" msgstr "gràfic" +#: src/app/main/ui/workspace/sidebar/history.cljs:133 msgid "workspace.undo.entry.single.multiple" msgstr "objecte" +#: src/app/main/ui/workspace/sidebar/history.cljs:134 msgid "workspace.undo.entry.single.page" msgstr "pàgina" +#: src/app/main/ui/workspace/sidebar/history.cljs:135 msgid "workspace.undo.entry.single.path" msgstr "camí" +#: src/app/main/ui/workspace/sidebar/history.cljs:136 msgid "workspace.undo.entry.single.rect" msgstr "rectangle" +#: src/app/main/ui/workspace/sidebar/history.cljs:137 msgid "workspace.undo.entry.single.shape" msgstr "forma" +#: src/app/main/ui/workspace/sidebar/history.cljs:138 msgid "workspace.undo.entry.single.text" msgstr "text" +#: src/app/main/ui/workspace/sidebar/history.cljs:139 msgid "workspace.undo.entry.single.typography" msgstr "recurs tipogràfic" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:149 msgid "workspace.undo.entry.unknown" msgstr "Operació sobre %s" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:335 msgid "workspace.undo.title" msgstr "Historial" -#: src/app/main/data/workspace/libraries.cljs +#: src/app/main/data/workspace/libraries.cljs:1094 msgid "workspace.updates.dismiss" msgstr "Descarta" -#: src/app/main/data/workspace/libraries.cljs +#: src/app/main/data/workspace/libraries.cljs:1090 msgid "workspace.updates.there-are-updates" msgstr "Hi ha actualitzacions a les biblioteques compartides" -#: src/app/main/data/workspace/libraries.cljs +#: src/app/main/data/workspace/libraries.cljs:1097 msgid "workspace.updates.update" msgstr "Actualitza" +#, unused msgid "workspace.viewport.click-to-close-path" msgstr "Feu clic per a tancar el camí" diff --git a/frontend/translations/cs.po b/frontend/translations/cs.po index 862545f4cd..e4a0d5794d 100644 --- a/frontend/translations/cs.po +++ b/frontend/translations/cs.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "PO-Revision-Date: 2024-06-17 08:07+0000\n" "Last-Translator: Anonymous \n" -"Language-Team: Czech \n" +"Language-Team: Czech " +"\n" "Language: cs\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" @@ -11,482 +11,528 @@ msgstr "" "Plural-Forms: nplurals=3; plural=((n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2);\n" "X-Generator: Weblate 5.6-dev\n" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:151, src/app/main/ui/viewer/login.cljs:104 msgid "auth.already-have-account" msgstr "Už máte účet?" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:299 msgid "auth.check-your-email" msgstr "" "Zkontrolujte svůj e-mail a klikněte na odkaz pro ověření, abyste mohli " "začít používat Penpot." -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:78 msgid "auth.confirm-password" msgstr "Potvrďte heslo" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/register.cljs:163 msgid "auth.create-demo-account" msgstr "Vytvořit demo účet" #: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#, unused msgid "auth.create-demo-profile" msgstr "Chcete si to jen vyzkoušet?" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/login.cljs:43 msgid "auth.demo-warning" msgstr "" "Toto je DEMO služba, NEPOUŽÍVEJTE ji pro skutečnou práci, projekty budou " "pravidelně mazány." -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:189, src/app/main/ui/viewer/login.cljs:90 msgid "auth.forgot-password" msgstr "Zapomněli jste heslo?" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:254 msgid "auth.fullname" msgstr "Jméno a příjmení" -#: src/app/main/ui/auth/register.cljs -#, fuzzy +#: src/app/main/ui/auth/register.cljs:155, src/app/main/ui/viewer/login.cljs:107 msgid "auth.login-here" msgstr "Přihlaste se zde" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:195 msgid "auth.login-submit" msgstr "Přihlásit se" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:222 msgid "auth.login-with-github-submit" msgstr "GitHub" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:228 msgid "auth.login-with-gitlab-submit" msgstr "GitLab" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:216 msgid "auth.login-with-google-submit" msgstr "Google" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:201 msgid "auth.login-with-ldap-submit" msgstr "LDAP" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:234, src/app/main/ui/auth/login.cljs:255 msgid "auth.login-with-oidc-submit" msgstr "OpenID" -#: src/app/main/ui/settings/team-form.cljs, src/app/main/ui/auth/register.cljs, src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/onboarding/team_choice.cljs, src/app/main/ui/settings/access_tokens.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/settings/profile.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/auth/register.cljs:217, src/app/main/ui/dashboard/team_form.cljs:76, src/app/main/ui/onboarding/team_choice.cljs:180, src/app/main/ui/settings/access_tokens.cljs:66, src/app/main/ui/settings/feedback.cljs:34, src/app/main/ui/settings/profile.cljs:45, src/app/main/ui/workspace/sidebar/assets/groups.cljs:108 msgid "auth.name.not-all-space" msgstr "Název musí obsahovat jiný znak než mezeru." -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/onboarding/team_choice.cljs, src/app/main/ui/settings/access_tokens.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/settings/profile.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/auth/register.cljs:218, src/app/main/ui/dashboard/team_form.cljs:77, src/app/main/ui/onboarding/team_choice.cljs:181, src/app/main/ui/settings/access_tokens.cljs:67, src/app/main/ui/settings/feedback.cljs:33, src/app/main/ui/settings/profile.cljs:44, src/app/main/ui/workspace/sidebar/assets/groups.cljs:109 msgid "auth.name.too-long" msgstr "Název musí obsahovat maximálně 250 znaků." -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:71 msgid "auth.new-password" msgstr "Zadejte nové heslo" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:42 msgid "auth.notifications.invalid-token-error" msgstr "Token pro obnovení je neplatný." -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:46 msgid "auth.notifications.password-changed-successfully" msgstr "Heslo bylo úspěšně změněno" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:57 msgid "auth.notifications.profile-not-verified" msgstr "Profil není ověřen, před pokračováním prosím ověřte profil." -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:40 msgid "auth.notifications.recovery-token-sent" msgstr "Odkaz na obnovení hesla byl zaslán na váš e-mail." -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:47 msgid "auth.notifications.team-invitation-accepted" msgstr "Připojení k týmu proběhlo úspěšně" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:179, src/app/main/ui/auth/register.cljs:115 msgid "auth.password" msgstr "Heslo" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:114 msgid "auth.password-length-hint" msgstr "Minimálně 8 znaků" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/recovery.cljs:61, src/app/main/ui/auth/recovery.cljs:62, src/app/main/ui/auth/register.cljs:81, src/app/main/ui/settings/password.cljs:75, src/app/main/ui/settings/password.cljs:76, src/app/main/ui/settings/password.cljs:77 msgid "auth.password-not-empty" msgstr "Heslo musí obsahovat jiný znak než mezeru." +#: src/app/main/ui/auth.cljs:41 msgid "auth.privacy-policy" msgstr "Zásady ochrany osobních údajů" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:88 msgid "auth.recovery-request-submit" msgstr "Obnovit heslo" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:101 msgid "auth.recovery-request-subtitle" msgstr "Pošleme vám e-mail s pokyny" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:100 msgid "auth.recovery-request-title" msgstr "Zapomněli jste heslo?" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:82 msgid "auth.recovery-submit" msgstr "Změnit heslo" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:298, src/app/main/ui/viewer/login.cljs:93 msgid "auth.register" msgstr "Ještě nemáte účet?" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:302, src/app/main/ui/auth/register.cljs:121, src/app/main/ui/auth/register.cljs:263, src/app/main/ui/viewer/login.cljs:97 msgid "auth.register-submit" msgstr "Vytvořit účet" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:140 msgid "auth.register-title" msgstr "Vytvořit účet" #: src/app/main/ui/auth.cljs +#, unused msgid "auth.sidebar-tagline" msgstr "Open source řešení pro design a prototypování." +#: src/app/main/ui/auth.cljs:33, src/app/main/ui/dashboard/sidebar.cljs:1022, src/app/main/ui/workspace/main_menu.cljs:150 msgid "auth.terms-of-service" msgstr "Všeobecné podmínky poskytování služeb" -#: src/app/main/ui/auth/register.cljs +#, unused msgid "auth.terms-privacy-agreement" msgstr "" "Vytvořením nového účtu souhlasíte s všeobecnými podmínkami poskytování " "služeb a zásadami ochrany osobních údajů." -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:297 msgid "auth.verification-email-sent" msgstr "Ověřovací e-mail jsme odeslali na adresu" #: src/app/main/ui/onboarding/questions.cljs +#, unused msgid "branding-illustrations-marketing-pieces" msgstr "...branding, ilustrace, marketing atd." +#: src/app/main/ui/workspace/libraries.cljs:228 msgid "common.publish" msgstr "Zveřejnit" +#: src/app/main/ui/viewer/share_link.cljs:304, src/app/main/ui/viewer/share_link.cljs:314 msgid "common.share-link.all-users" msgstr "Všichni uživatelé Penpotu" +#: src/app/main/ui/viewer/share_link.cljs:198 msgid "common.share-link.confirm-deletion-link-description" msgstr "" "Opravdu chcete tento odkaz odstranit? Pokud to uděláte, nebude už pro " "nikoho dostupný" +#: src/app/main/ui/viewer/share_link.cljs:259, src/app/main/ui/viewer/share_link.cljs:289 msgid "common.share-link.current-tag" msgstr "(aktuální)" +#: src/app/main/ui/viewer/share_link.cljs:207, src/app/main/ui/viewer/share_link.cljs:214 msgid "common.share-link.destroy-link" msgstr "Zničit odkaz" +#: src/app/main/ui/viewer/share_link.cljs:221 msgid "common.share-link.get-link" msgstr "Získat odkaz" +#: src/app/main/ui/viewer/share_link.cljs:139 msgid "common.share-link.link-copied-success" msgstr "Odkaz byl úspěšně zkopírován" +#: src/app/main/ui/viewer/share_link.cljs:231 msgid "common.share-link.manage-ops" msgstr "Spravovat oprávnění" +#: src/app/main/ui/viewer/share_link.cljs:277 msgid "common.share-link.page-shared" msgid_plural "common.share-link.page-shared" msgstr[0] "1 sdílená stránka" msgstr[1] "%s sdílené stránky" msgstr[2] "%s sdílených stránek" +#: src/app/main/ui/viewer/share_link.cljs:298 msgid "common.share-link.permissions-can-comment" msgstr "Může komentovat" +#: src/app/main/ui/viewer/share_link.cljs:308 msgid "common.share-link.permissions-can-inspect" msgstr "Může prohlížet kód" +#: src/app/main/ui/viewer/share_link.cljs:193 msgid "common.share-link.permissions-hint" msgstr "Kdokoliv s odkazem bude mít přístup" +#: src/app/main/ui/viewer/share_link.cljs:241 msgid "common.share-link.permissions-pages" msgstr "Sdílené stránky" +#: src/app/main/ui/viewer/share_link.cljs:183 msgid "common.share-link.placeholder" msgstr "Odkaz ke sdílení se zobrazí zde" +#: src/app/main/ui/viewer/share_link.cljs:303, src/app/main/ui/viewer/share_link.cljs:313 msgid "common.share-link.team-members" msgstr "Pouze členové týmu" +#: src/app/main/ui/viewer/share_link.cljs:171 msgid "common.share-link.title" msgstr "Sdílet prototypy" +#: src/app/main/ui/viewer/share_link.cljs:269 msgid "common.share-link.view-all" msgstr "Vybrat vše" +#: src/app/main/ui/workspace/libraries.cljs:224 msgid "common.unpublish" msgstr "Zrušit zveřejnění" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:85 msgid "dasboard.team-hero.management" msgstr "Správa týmu" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:84 msgid "dasboard.team-hero.text" msgstr "" "Penpot je určený pro týmy. Pozvěte členy ke spolupráci na projektech a " "souborech" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:82 msgid "dasboard.team-hero.title" msgstr "Vytvořte tým!" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.tutorial-hero.info" msgstr "Naučte se základy Penpotu a pobavte se zároveň v tomto tutoriálu." #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.tutorial-hero.start" msgstr "Spustit tutoriál" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.tutorial-hero.title" msgstr "Praktický tutoriál" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.walkthrough-hero.info" msgstr "Projděte si Penpot a seznamte se s jeho hlavními funkcemi." #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.walkthrough-hero.start" msgstr "Začít prohlídku" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.walkthrough-hero.title" msgstr "Průvodce rozhraním" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:115 msgid "dashboard.access-tokens.copied-success" msgstr "Zkopírovaný token" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:202 msgid "dashboard.access-tokens.create" msgstr "Generovat nový token" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:76 msgid "dashboard.access-tokens.create.success" msgstr "Přístupový token byl úspěšně vytvořen." -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:300 msgid "dashboard.access-tokens.empty.add-one" msgstr "" "Pro vygenerování nového tokenu stiskněte tlačítko \"Vygenerovat nový " "token\"." -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:299 msgid "dashboard.access-tokens.empty.no-access-tokens" msgstr "Zatím nemáte žádné tokeny." -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:53 msgid "dashboard.access-tokens.errors-required-name" msgstr "Jméno je povinné" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:147 msgid "dashboard.access-tokens.expiration-180-days" msgstr "180 dní" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:144 msgid "dashboard.access-tokens.expiration-30-days" msgstr "30 dní" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:145 msgid "dashboard.access-tokens.expiration-60-days" msgstr "60 dní" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:146 msgid "dashboard.access-tokens.expiration-90-days" msgstr "90 dní" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:143 msgid "dashboard.access-tokens.expiration-never" msgstr "Nikdy" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:282 msgid "dashboard.access-tokens.expired-on" msgstr "Platnost vypršela %s" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:283 msgid "dashboard.access-tokens.expires-on" msgstr "Platnost vyprší %s" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:281 msgid "dashboard.access-tokens.no-expiration" msgstr "Žádné datum vypršení platnosti" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:197 msgid "dashboard.access-tokens.personal" msgstr "Osobní přístupové tokeny" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:198 msgid "dashboard.access-tokens.personal.description" msgstr "" "Osobní přístupové tokeny fungují jako alternativa k našemu systému " "ověřování přihlašovacích údajů/hesel a lze je použít k tomu, aby aplikaci " "umožnily přístup k internímu rozhraní Penpot API" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:154 msgid "dashboard.access-tokens.token-will-expire" msgstr "Platnost tokenu vyprší %s" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:155 msgid "dashboard.access-tokens.token-will-not-expire" msgstr "Token nemá žádné datum vypršení platnosti" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:291, src/app/main/ui/workspace/main_menu.cljs:572 msgid "dashboard.add-shared" msgstr "Přidat jako sdílenou knihovnu" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:75 msgid "dashboard.change-email" msgstr "Změnit e-mail" -#: src/app/main/data/dashboard.cljs, src/app/main/data/dashboard.cljs +#: src/app/main/data/dashboard.cljs:762, src/app/main/data/dashboard.cljs:983 msgid "dashboard.copy-suffix" msgstr "(zkopírovat)" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:338 msgid "dashboard.create-new-team" msgstr "Vytvořit nový tým" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/components/context_menu_a11y.cljs:256, src/app/main/ui/dashboard/sidebar.cljs:646 msgid "dashboard.default-team-name" msgstr "Váš Penpot" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:571 msgid "dashboard.delete-team" msgstr "Smazat tým" +#: src/app/main/ui/dashboard/file_menu.cljs:296, src/app/main/ui/workspace/main_menu.cljs:589 msgid "dashboard.download-binary-file" msgstr "Stáhnout soubor Penpot (.penpot)" +#: src/app/main/ui/dashboard/file_menu.cljs:300, src/app/main/ui/workspace/main_menu.cljs:597 msgid "dashboard.download-standard-file" msgstr "Stáhnout standardní soubor (.svg + .json)" -#: src/app/main/ui/dashboard/project_menu.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:276, src/app/main/ui/dashboard/project_menu.cljs:90 msgid "dashboard.duplicate" msgstr "Duplikovat" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:240 msgid "dashboard.duplicate-multi" msgstr "Duplikovat %s soubory" -#: src/app/main/ui/dashboard/grid.cljs +#: src/app/main/ui/dashboard/placeholder.cljs:32 +#, markdown msgid "dashboard.empty-placeholder-drafts" msgstr "" "Zde se zobrazí soubory přidané do knihoven. Zkuste své soubory sdílet nebo " "je přidat z našich [Libraries & " "templates](https://penpot.app/libraries-templates)." +#: src/app/main/ui/dashboard/file_menu.cljs:249 msgid "dashboard.export-binary-multi" msgstr "Stáhnout soubory %s Penpot (.penpot)" +#: src/app/main/ui/workspace/main_menu.cljs:605 msgid "dashboard.export-frames" msgstr "Exportovat tabule do PDF" -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:201 msgid "dashboard.export-frames.title" msgstr "Exportovat do PDF" +#, unused msgid "dashboard.export-multi" msgstr "Exportovat soubory Penpot %s" -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:109 msgid "dashboard.export-multiple.selected" msgstr "%s z %s prvků vybráno" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:578 msgid "dashboard.export-shapes" msgstr "Exportovat" -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:180 msgid "dashboard.export-shapes.how-to" msgstr "" "Nastavení exportu můžete přidat k prvkům ve vlastnostech návrhu (v dolní " "části pravého postranního panelu)." -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:184 msgid "dashboard.export-shapes.how-to-link" msgstr "Informace o nastavování exportů v Penpotu." -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:179 msgid "dashboard.export-shapes.no-elements" msgstr "Neexistují žádné prvky s nastavením exportu." -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:190 msgid "dashboard.export-shapes.title" msgstr "Výběr exportu" +#: src/app/main/ui/dashboard/file_menu.cljs:252 msgid "dashboard.export-standard-multi" msgstr "Stáhnout %s soubory (.svg + .json)" +#: src/app/main/ui/export.cljs:427 msgid "dashboard.export.detail" msgstr "* Může obsahovat komponenty, grafiku, barvy a/nebo typografii." +#: src/app/main/ui/export.cljs:426 msgid "dashboard.export.explain" msgstr "" "Jeden nebo více souborů, které chcete exportovat, používá sdílené knihovny. " "Co chcete dělat s jejich položkami*?" +#: src/app/main/ui/export.cljs:435 msgid "dashboard.export.options.all.message" msgstr "" "soubory se sdílenými knihovnami budou zahrnuty do exportu, čímž se zachová " "jejich propojení." +#: src/app/main/ui/export.cljs:436 msgid "dashboard.export.options.all.title" msgstr "Exportovat sdílené knihovny" +#: src/app/main/ui/export.cljs:437 msgid "dashboard.export.options.detach.message" msgstr "" "Sdílené knihovny nebudou zahrnuty do exportu a do knihovny nebudou přidány " "žádné položky. " +#: src/app/main/ui/export.cljs:438 msgid "dashboard.export.options.detach.title" msgstr "Zacházet s položkami sdílené knihovny jako se základními objekty" +#: src/app/main/ui/export.cljs:439 msgid "dashboard.export.options.merge.message" msgstr "" "Váš soubor bude exportován se všemi externími položkami sloučenými do " "knihovny souborů." +#: src/app/main/ui/export.cljs:440 msgid "dashboard.export.options.merge.title" msgstr "Zahrnout sdílené položky knihovny do knihoven souborů" +#: src/app/main/ui/export.cljs:418 msgid "dashboard.export.title" msgstr "Exportovat soubory" +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:309 msgid "dashboard.fonts.deleted-placeholder" msgstr "Písmo odstraněno" -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:206 msgid "dashboard.fonts.dismiss-all" msgstr "Odmítnout vše" +#: src/app/main/ui/dashboard/fonts.cljs:436 msgid "dashboard.fonts.empty-placeholder" msgstr "Stále nemáte nainstalované žádné vlastní písma." -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:194 msgid "dashboard.fonts.fonts-added" msgid_plural "dashboard.fonts.fonts-added" msgstr[0] "Přidáno 1 písmo" msgstr[1] "%s písma přidány" msgstr[2] "%s písem přidáno" +#: src/app/main/ui/dashboard/fonts.cljs:170 +#, markdown msgid "dashboard.fonts.hero-text1" msgstr "" "Jakékoli webové písmo, které sem nahrajete, bude přidáno do seznamu rodin " @@ -495,6 +541,8 @@ msgstr "" "Můžete nahrávat písma v následujících formátech: **TTF, OTF a WOFF** (bude " "potřeba pouze jeden)." +#: src/app/main/ui/dashboard/fonts.cljs:182 +#, markdown msgid "dashboard.fonts.hero-text2" msgstr "" "Měli byste nahrávat pouze písma, která vlastníte nebo máte licenci k " @@ -503,10 +551,12 @@ msgstr "" "Můžete si také přečíst o [licencování " "písem](https://www.typography.com/faq)." -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:202 msgid "dashboard.fonts.upload-all" msgstr "Nahrát vše" +#: src/app/main/ui/dashboard/fonts.cljs:187 +#, markdown msgid "dashboard.fonts.warning-text" msgstr "" "Zjistili jsme možný problém ve vašich písmech související s vertikálními " @@ -516,1503 +566,1664 @@ msgstr "" "[Transfonter](https://transfonter.org/) ke generování webových písem a " "opravě chyb. " +#: src/app/main/ui/dashboard/import.cljs:472, src/app/main/ui/dashboard/project_menu.cljs:108 msgid "dashboard.import" msgstr "Importovat Penpot soubory" +#: src/app/main/ui/dashboard/import.cljs:304, src/app/worker/import.cljs:753, src/app/worker/import.cljs:755 msgid "dashboard.import.analyze-error" msgstr "Ups! Tento soubor se nepodařilo importovat" +#: src/app/main/ui/dashboard/import.cljs:308 msgid "dashboard.import.import-error" msgstr "Při importu souboru došlo k problému. Soubor nebyl importován." +#: src/app/main/ui/dashboard/import.cljs:493 msgid "dashboard.import.import-message" msgstr "Soubory %s byly úspěšně importovány." +#: src/app/main/ui/dashboard/import.cljs:481, src/app/main/ui/dashboard/import.cljs:488 msgid "dashboard.import.import-warning" msgstr "Některé soubory obsahovaly neplatné objekty, které byly odstraněny." +#: src/app/main/ui/dashboard/import.cljs:144 msgid "dashboard.import.progress.process-colors" msgstr "Zpracovávání barev" +#: src/app/main/ui/dashboard/import.cljs:153 msgid "dashboard.import.progress.process-components" msgstr "Zpracovávání komponentů" +#: src/app/main/ui/dashboard/import.cljs:150 msgid "dashboard.import.progress.process-media" msgstr "Zpracovávání médií" +#: src/app/main/ui/dashboard/import.cljs:141 msgid "dashboard.import.progress.process-page" msgstr "Zpracovává se stránka: %s" +#: src/app/main/ui/dashboard/import.cljs:147 msgid "dashboard.import.progress.process-typographies" msgstr "Zpracovávání typografií" +#: src/app/main/ui/dashboard/import.cljs:135 msgid "dashboard.import.progress.upload-data" msgstr "Nahrávání dat na server (%s/%s)" +#: src/app/main/ui/dashboard/import.cljs:138 msgid "dashboard.import.progress.upload-media" msgstr "Nahrávání souboru: %s" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:109 msgid "dashboard.invite-profile" msgstr "Pozvat do týmu" -#: src/app/main/ui/dashboard/sidebar.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:547, src/app/main/ui/dashboard/sidebar.cljs:556, src/app/main/ui/dashboard/sidebar.cljs:563, src/app/main/ui/dashboard/team.cljs:312 msgid "dashboard.leave-team" msgstr "Odejít z týmu" +#: src/app/main/ui/dashboard/templates.cljs:88, src/app/main/ui/dashboard/templates.cljs:163 msgid "dashboard.libraries-and-templates" msgstr "Knihovny a šablony" +#: src/app/main/ui/dashboard/templates.cljs:164 msgid "dashboard.libraries-and-templates.explore" msgstr "Prozkoumejte je víc a zjistěte, jak přispět" +#: src/app/main/ui/dashboard/import.cljs:365 msgid "dashboard.libraries-and-templates.import-error" msgstr "Při importu šablony došlo k problému. Šablona nebyla importována." -#: src/app/main/ui/dashboard/libraries.cljs +#: src/app/main/ui/dashboard/libraries.cljs:53 msgid "dashboard.libraries-title" msgstr "Knihovny" -#: src/app/main/ui/dashboard/grid.cljs +#: src/app/main/ui/dashboard/placeholder.cljs:45 msgid "dashboard.loading-files" msgstr "načítání vašich souborů …" +#: src/app/main/ui/dashboard/fonts.cljs:431 msgid "dashboard.loading-fonts" msgstr "načítání vašich písem …" -#: src/app/main/ui/dashboard/project_menu.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:281, src/app/main/ui/dashboard/project_menu.cljs:100 msgid "dashboard.move-to" msgstr "Přesunout do" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:245 msgid "dashboard.move-to-multi" msgstr "Přesunout soubory %s do" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:226 msgid "dashboard.move-to-other-team" msgstr "Přesunout do jiného týmu" -#: src/app/main/ui/dashboard/projects.cljs, -#: src/app/main/ui/dashboard/files.cljs +#: src/app/main/ui/dashboard/files.cljs:105, src/app/main/ui/dashboard/projects.cljs:252, src/app/main/ui/dashboard/projects.cljs:253 msgid "dashboard.new-file" msgstr "+ Nový soubor" -#: src/app/main/data/dashboard.cljs +#: src/app/main/data/dashboard.cljs:958, src/app/main/data/dashboard.cljs:1181 msgid "dashboard.new-file-prefix" msgstr "Nový soubor" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:55 msgid "dashboard.new-project" msgstr "+ Nový projekt" -#: src/app/main/data/dashboard.cljs +#: src/app/main/data/dashboard.cljs:726, src/app/main/data/dashboard.cljs:1184 msgid "dashboard.new-project-prefix" msgstr "Nový projekt" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:60 msgid "dashboard.no-matches-for" msgstr "Nebyly nalezeny žádné shody pro “%s“" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:827 msgid "dashboard.no-projects-placeholder" msgstr "Připnuté projekty se zobrazí zde" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:33 msgid "dashboard.notifications.email-changed-successfully" msgstr "Vaše e-mailová adresa byla úspěšně aktualizována" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:27 msgid "dashboard.notifications.email-verified-successfully" msgstr "Vaše e-mailová adresa byla úspěšně ověřena" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:37 msgid "dashboard.notifications.password-saved" msgstr "Heslo bylo úspěšně uloženo!" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1081 msgid "dashboard.num-of-members" msgstr "Počet členů: %s" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:267 msgid "dashboard.open-in-new-tab" msgstr "Otevřít soubor na nové kartě" +#: src/app/main/ui/dashboard/files.cljs:117, src/app/main/ui/dashboard/projects.cljs:260, src/app/main/ui/dashboard/projects.cljs:261 msgid "dashboard.options" msgstr "Možnosti" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:106, src/app/main/ui/settings/password.cljs:119 msgid "dashboard.password-change" msgstr "Změnit heslo" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/pin_button.cljs:24, src/app/main/ui/dashboard/project_menu.cljs:95 msgid "dashboard.pin-unpin" msgstr "Připnout/Odepnout" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:51 msgid "dashboard.projects-title" msgstr "Projekty" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:86 msgid "dashboard.remove-account" msgstr "Chcete odstranit svůj účet?" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "dashboard.remove-shared" msgstr "Odstranit jako sdílenou knihovnu" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:78 msgid "dashboard.save-settings" msgstr "Uložit nastavení" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:246, src/app/main/ui/dashboard/sidebar.cljs:247 msgid "dashboard.search-placeholder" msgstr "Vyhledat…" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:55 msgid "dashboard.searching-for" msgstr "Hledá se “%s“…" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:56 msgid "dashboard.select-ui-language" msgstr "Vybrat jazyk uživatelského rozhraní" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:63 msgid "dashboard.select-ui-theme" msgstr "Vyberte téma" -#: src/app/main/ui/dashboard/grid.cljs +#: src/app/main/ui/dashboard/projects.cljs:282 msgid "dashboard.show-all-files" msgstr "Zobrazit všechny soubory" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:96 msgid "dashboard.success-delete-file" msgstr "Váš soubor byl úspěšně smazán" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:59 msgid "dashboard.success-delete-project" msgstr "Váš projekt byl úspěšně smazán" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:91 msgid "dashboard.success-duplicate-file" msgstr "Váš soubor byl úspěšně duplikován" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:33 msgid "dashboard.success-duplicate-project" msgstr "Váš projekt byl úspěšně duplikován" -#: src/app/main/ui/dashboard/grid.cljs, src/app/main/ui/dashboard/sidebar.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:130, src/app/main/ui/dashboard/grid.cljs:558, src/app/main/ui/dashboard/sidebar.cljs:152 msgid "dashboard.success-move-file" msgstr "Váš soubor byl úspěšně přesunut" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:129 msgid "dashboard.success-move-files" msgstr "Vaše soubory byly úspěšně přesunuty" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:54 msgid "dashboard.success-move-project" msgstr "Váš projekt byl úspěšně přesunut" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1052 msgid "dashboard.team-info" msgstr "Informace o týmu" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1070 msgid "dashboard.team-members" msgstr "Členové týmu" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1085 msgid "dashboard.team-projects" msgstr "Projekty týmu" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:61 msgid "dashboard.theme-change" msgstr "Téma UI" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:42 msgid "dashboard.title-search" msgstr "Výsledky vyhledávání" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:50 msgid "dashboard.type-something" msgstr "Zadejte výraz pro hledání" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:287, src/app/main/ui/workspace/main_menu.cljs:566 msgid "dashboard.unpublish-shared" msgstr "Zrušit zveřejnění knihovny" -#: src/app/main/ui/settings/password.cljs, -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:71 msgid "dashboard.update-settings" msgstr "Aktualizovat nastavení" +#: src/app/main/ui/dashboard/team.cljs:861 msgid "dashboard.webhooks.active" msgstr "Je aktivní" +#: src/app/main/ui/dashboard/team.cljs:862 msgid "dashboard.webhooks.active.explain" msgstr "Když je tento webhook spuštěn, budou doručeny podrobnosti o události" +#: src/app/main/ui/dashboard/team.cljs:852 msgid "dashboard.webhooks.content-type" msgstr "Typ obsahu" +#: src/app/main/ui/dashboard/team.cljs:885 msgid "dashboard.webhooks.create" msgstr "Vytvořit webhook" +#: src/app/main/ui/dashboard/team.cljs:775 msgid "dashboard.webhooks.create.success" msgstr "Webhook byl úspěšně vytvořen." +#: src/app/main/ui/dashboard/team.cljs:882 msgid "dashboard.webhooks.description" msgstr "" "Webhooky jsou jednoduchým způsobem, jak umožnit jiným webům a aplikacím, " "aby byly upozorňovány na určité události v Penpotu. Na každou z vámi " "poskytnutých adres URL odešleme požadavek POST." +#: src/app/main/ui/dashboard/team.cljs:1005 msgid "dashboard.webhooks.empty.add-one" msgstr "Chcete-li webhook přidat, stiskněte tlačítko „Přidat webhook“." +#: src/app/main/ui/dashboard/team.cljs:1004 msgid "dashboard.webhooks.empty.no-webhooks" msgstr "Dosud nebyly vytvořeny žádné webhooky." +#, unused msgid "dashboard.webhooks.update.success" msgstr "Webhook byl úspěšně aktualizován." -#: src/app/main/ui/settings.cljs +#: src/app/main/ui/settings.cljs:31 msgid "dashboard.your-account-title" msgstr "Váš účet" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:70 msgid "dashboard.your-email" msgstr "E-mail" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:62 msgid "dashboard.your-name" msgstr "Vaše jméno" -#: src/app/main/ui/dashboard/search.cljs, src/app/main/ui/dashboard/team.cljs, -#: src/app/main/ui/dashboard/libraries.cljs, -#: src/app/main/ui/dashboard/projects.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:38, src/app/main/ui/dashboard/fonts.cljs:33, src/app/main/ui/dashboard/libraries.cljs:42, src/app/main/ui/dashboard/projects.cljs:318, src/app/main/ui/dashboard/search.cljs:30, src/app/main/ui/dashboard/sidebar.cljs:312, src/app/main/ui/dashboard/team.cljs:495, src/app/main/ui/dashboard/team.cljs:729, src/app/main/ui/dashboard/team.cljs:991, src/app/main/ui/dashboard/team.cljs:1038 msgid "dashboard.your-penpot" msgstr "Váš Penpot" -#: src/app/main/ui/alert.cljs +#: src/app/main/ui/alert.cljs:32 msgid "ds.alert-ok" msgstr "OK" -#: src/app/main/ui/alert.cljs +#: src/app/main/ui/alert.cljs:31, src/app/main/ui/alert.cljs:34 msgid "ds.alert-title" msgstr "Pozor" -#: src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:83 msgid "ds.component-subtitle" msgstr "Komponenty k aktualizaci:" -#: src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:36, src/app/main/ui/workspace/plugins.cljs:246 msgid "ds.confirm-cancel" msgstr "Zrušit" -#: src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:37, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:141 msgid "ds.confirm-ok" msgstr "OK" -#: src/app/main/ui/confirm.cljs, src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:35, src/app/main/ui/confirm.cljs:39 msgid "ds.confirm-title" msgstr "Jste si jisti?" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:62 msgid "errors.auth-provider-not-configured" msgstr "Zprostředkovatel ověřování není nakonfigurován." +#: src/app/main/errors.cljs:104 msgid "errors.auth.unable-to-login" msgstr "Zdá se, že nejste ověřeni nebo platnost relace vypršela." +#: src/app/main/data/fonts.cljs:189 msgid "errors.bad-font" msgstr "Písmo %s se nepodařilo načíst" +#: src/app/main/data/fonts.cljs:188 msgid "errors.bad-font-plural" msgstr "Písma %s se nepodařilo načíst" +#: src/app/main/data/workspace/media.cljs:198 msgid "errors.cannot-upload" msgstr "Nelze nahrát soubor médií." -#: src/app/main/data/workspace.cljs +#: src/app/main/data/workspace.cljs:1598 msgid "errors.clipboard-not-implemented" msgstr "Váš prohlížeč tuto operaci nedokáže provést" -#: src/app/main/ui/auth/verify_token.cljs, -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/auth/verify_token.cljs:82, src/app/main/ui/settings/change_email.cljs:46 msgid "errors.email-already-exists" msgstr "Již použitá e-mailová adresa" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:87 msgid "errors.email-already-validated" msgstr "E-mail byl již ověřen." +#: src/app/main/ui/settings/password.cljs:28 msgid "errors.email-as-password" msgstr "Jako heslo nelze použít váš e-mail" -#: src/app/main/ui/auth/register.cljs, -#: src/app/main/ui/auth/recovery_request.cljs, -#: src/app/main/ui/settings/change_email.cljs, -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/auth/recovery_request.cljs:63, src/app/main/ui/dashboard/team.cljs:578, src/app/main/ui/settings/change_email.cljs:54 msgid "errors.email-has-permanent-bounces" msgstr "E-mail «%s» má mnoho trvalých zpráv o nedoručitelnosti." -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs, -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/login.cljs:81, src/app/main/ui/auth/recovery_request.cljs:31, src/app/main/ui/auth/register.cljs:43 msgid "errors.email-invalid" msgstr "Zadejte prosím platný email" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:35 msgid "errors.email-invalid-confirmation" msgstr "Potvrzovací e-mail se musí shodovat" +#: src/app/main/ui/dashboard/team.cljs:170 msgid "errors.email-spam-or-permanent-bounces" msgstr "E-mail «%s» byl nahlášen jako spam nebo byl trvale nedostupný." -#: src/app/main/errors.cljs +#: src/app/main/errors.cljs:227 msgid "errors.feature-mismatch" msgstr "" "Vypadá to, že otevíráte soubor, který má povolenou funkci '%s', ale " "aktuální verze penpotu ji nepodporuje nebo je deaktivovaná." -#: src/app/main/errors.cljs +#: src/app/main/errors.cljs:231, src/app/main/errors.cljs:245 msgid "errors.feature-not-supported" msgstr "Funkce '%s' není podporována." -#: src/app/main/errors.cljs +#: src/app/main/errors.cljs:223 msgid "errors.file-feature-mismatch" msgstr "" "Zdá se, že existuje nesoulad mezi povolenými funkcemi a funkcemi souboru, " "který se pokoušíte otevřít. Před otevřením souboru je třeba provést migraci " "pro '%s'." -#: src/app/main/ui/auth/verify_token.cljs, -#: src/app/main/ui/settings/feedback.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/data/users.cljs:709, src/app/main/ui/auth/login.cljs:65, src/app/main/ui/auth/login.cljs:116, src/app/main/ui/auth/register.cljs:69, src/app/main/ui/auth/register.cljs:237, src/app/main/ui/auth/verify_token.cljs:92, src/app/main/ui/dashboard/team.cljs:173, src/app/main/ui/onboarding/team_choice.cljs:95, src/app/main/ui/settings/access_tokens.cljs:91, src/app/main/ui/settings/feedback.cljs:52 msgid "errors.generic" msgstr "Něco se pokazilo." -#: src/app/main/ui/components/color_input.cljs +#: src/app/main/ui/components/color_input.cljs:57 msgid "errors.invalid-color" msgstr "Chybná barva" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/static.cljs:43 msgid "errors.invite-invalid" msgstr "Neplatná pozvánka" +#: src/app/main/ui/static.cljs:44 msgid "errors.invite-invalid.info" msgstr "Tato pozvánka byla pravděpodobně zrušena nebo vypršela její platnost." -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:101 msgid "errors.ldap-disabled" msgstr "Ověřování LDAP je vypnuto." -#: src/app/main/errors.cljs +#: src/app/main/errors.cljs:239 msgid "errors.max-quote-reached" msgstr "Dosáhli jste '%s' kvóty. Kontaktujte podporu." -#: src/app/main/data/workspace/persistence.cljs +#: src/app/main/data/workspace/media.cljs:184 msgid "errors.media-too-large" msgstr "Obrázek je příliš velký na to, aby mohl být vložen." -#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs +#: src/app/main/data/media.cljs:68, src/app/main/data/workspace/media.cljs:187 msgid "errors.media-type-mismatch" msgstr "Zdá se, že obsah obrázku neodpovídá příponě souboru." -#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs +#: src/app/main/data/media.cljs:65, src/app/main/data/workspace/media.cljs:172, src/app/main/data/workspace/media.cljs:175, src/app/main/data/workspace/media.cljs:178, src/app/main/data/workspace/media.cljs:181 msgid "errors.media-type-not-allowed" msgstr "Zdá se, že toto není platný obrázek." -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:574 msgid "errors.member-is-muted" msgstr "" "Profil, který zvete, má ztlumené e-maily (zprávy o spamu nebo vysoké " "nedoručitelnosti)." -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:61 msgid "errors.password-invalid-confirmation" msgstr "Potvrzovací heslo se musí shodovat" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:64 msgid "errors.password-too-short" msgstr "Heslo by mělo mít nejméně 8 znaků" +#: src/app/main/errors.cljs:124 msgid "errors.paste-data-validation" msgstr "Neplatná data ve schránce" +#: src/app/main/data/users.cljs:703, src/app/main/ui/auth/login.cljs:97, src/app/main/ui/auth/login.cljs:105 msgid "errors.profile-blocked" msgstr "Profil je zablokován" -#: src/app/main/ui/auth/recovery_request.cljs, -#: src/app/main/ui/settings/change_email.cljs, -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/auth/recovery_request.cljs:60, src/app/main/ui/dashboard/team.cljs:164, src/app/main/ui/dashboard/team.cljs:570, src/app/main/ui/settings/change_email.cljs:50 msgid "errors.profile-is-muted" msgstr "Váš profil má ztlumené e-maily (zprávy o spamu nebo vysoká nedoručitelnost)." -#: src/app/main/ui/auth/register.cljs +#: src/app/main/data/users.cljs:701, src/app/main/ui/auth/register.cljs:60 msgid "errors.registration-disabled" msgstr "Registrace je momentálně zakázána." -#: src/app/main/errors.cljs +#: src/app/main/errors.cljs:218 msgid "errors.team-feature-mismatch" msgstr "Zjištěna nekompatibilní funkce '%s'" +#: src/app/main/ui/dashboard/sidebar.cljs:365, src/app/main/ui/dashboard/team.cljs:359 msgid "errors.team-leave.insufficient-members" msgstr "" "Nedostatečný počet členů pro opuštění týmu, pravděpodobně jste chtěli tým " "smazat." +#: src/app/main/ui/dashboard/sidebar.cljs:368, src/app/main/ui/dashboard/team.cljs:362 msgid "errors.team-leave.member-does-not-exists" msgstr "Člen, kterého se pokoušíte přiřadit, neexistuje." +#: src/app/main/ui/dashboard/sidebar.cljs:371, src/app/main/ui/dashboard/team.cljs:365 msgid "errors.team-leave.owner-cant-leave" msgstr "Vlastník nemůže opustit tým, musíte přeřadit roli vlastníka." -#: src/app/main/data/media.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/handoff/exports.cljs +#: src/app/main/data/media.cljs:71 msgid "errors.unexpected-error" msgstr "Došlo k neočekávané chybě." -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:60 msgid "errors.unexpected-token" msgstr "Neznámý token" +#, unused msgid "errors.validation" msgstr "Chyba ověření" -#: src/app/main/errors.cljs +#: src/app/main/errors.cljs:235 msgid "errors.version-not-supported" msgstr "Soubor má nekompatibilní číslo verze" +#: src/app/main/ui/dashboard/team.cljs:796 msgid "errors.webhooks.connection" msgstr "Chyba připojení, adresa URL není dostupná" +#: src/app/main/ui/dashboard/team.cljs:790 msgid "errors.webhooks.invalid-uri" msgstr "Adresa URL neprošla ověřením." -#, fuzzy +#: src/app/main/ui/dashboard/team.cljs:949 msgid "errors.webhooks.last-delivery" msgstr "Poslední dodávka nebyla úspěšná." +#: src/app/main/ui/dashboard/team.cljs:792, src/app/main/ui/dashboard/team.cljs:952 msgid "errors.webhooks.ssl-validation" msgstr "Chyba při ověřování SSL." +#: src/app/main/ui/dashboard/team.cljs:794 msgid "errors.webhooks.timeout" msgstr "Timeout" +#: src/app/main/ui/dashboard/team.cljs:788 msgid "errors.webhooks.unexpected" msgstr "Při ověřování došlo k neočekávané chybě" +#: src/app/main/ui/dashboard/team.cljs:798, src/app/main/ui/dashboard/team.cljs:955 msgid "errors.webhooks.unexpected-status" msgstr "Neočekávaný stav %s" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:109, src/app/main/ui/auth/login.cljs:113 msgid "errors.wrong-credentials" msgstr "Uživatelské jméno nebo heslo se zdá být chybné." -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:25 msgid "errors.wrong-old-password" msgstr "Staré heslo je nesprávné" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:77 msgid "feedback.description" msgstr "Popisek" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:95 msgid "feedback.discourse-go-to" msgstr "Přejít na Penpot fórum" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:89 msgid "feedback.discourse-subtitle1" msgstr "" "Jsme rádi, že jste tady. Pokud potřebujete pomoc, zkuste nejdříve " "vyhledávání, než napíšete příspěvek." -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:88 msgid "feedback.discourse-title" msgstr "Penpot komunita" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:72 msgid "feedback.subject" msgstr "Předmět" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:69 msgid "feedback.subtitle" msgstr "" "Popište důvod svého e-mailu a uveďte, zda se jedná o problém, nápad nebo " "pochybnost. Člen našeho týmu vám co nejdříve odpoví." -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:68 msgid "feedback.title" msgstr "E-mail" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:105 msgid "feedback.twitter-go-to" msgstr "Přejít na X" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:99 msgid "feedback.twitter-subtitle1" msgstr "Zde vám pomůžeme s vašimi technickými dotazy." -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:98 msgid "feedback.twitter-title" msgstr "Účet podpory na Xu" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:30 msgid "generic.error" msgstr "Došlo k chybě" -#: src/app/main/ui/inspect/attributes/blur.cljs +#: src/app/main/ui/viewer/inspect/attributes/blur.cljs:26 msgid "inspect.attributes.blur" msgstr "Rozostření" -#: src/app/main/ui/inspect/attributes/blur.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:115 msgid "inspect.attributes.blur.value" msgstr "Hodnota" -#: src/app/main/ui/inspect/attributes/common.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:112 msgid "inspect.attributes.color.hex" msgstr "HEX" -#: src/app/main/ui/inspect/attributes/common.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:114 msgid "inspect.attributes.color.hsla" msgstr "HSLA" -#: src/app/main/ui/inspect/attributes/common.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:113 msgid "inspect.attributes.color.rgba" msgstr "RGBA" -#: src/app/main/ui/inspect/attributes/fill.cljs +#: src/app/main/ui/viewer/inspect/attributes/fill.cljs:57 msgid "inspect.attributes.fill" msgstr "Výplň" -#: src/app/main/ui/inspect/attributes/image.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:99, src/app/main/ui/viewer/inspect/attributes/image.cljs:51 msgid "inspect.attributes.image.download" msgstr "Stáhnout zdrojový obrázek" -#: src/app/main/ui/inspect/attributes/image.cljs +#: src/app/main/ui/viewer/inspect/attributes/image.cljs:39 msgid "inspect.attributes.image.height" msgstr "Výška" -#: src/app/main/ui/inspect/attributes/image.cljs +#: src/app/main/ui/viewer/inspect/attributes/image.cljs:32 msgid "inspect.attributes.image.width" msgstr "Šířka" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout" msgstr "Rozložení" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.height" msgstr "Výška" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.left" msgstr "Vlevo" -#: src/app/main/ui/inspect/attributes/layout.cljs, -#: src/app/main/ui/inspect/attributes/layout.cljs +#: src/app/main/ui/inspect/attributes/layout.cljs, src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.radius" msgstr "Poloměr" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.rotation" msgstr "Otáčení" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.top" msgstr "Nahoře" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.width" msgstr "Šířka" -#: src/app/main/ui/inspect/attributes/shadow.cljs +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:57 msgid "inspect.attributes.shadow" msgstr "Stín" -#: src/app/main/ui/inspect/attributes/layout.cljs +#: src/app/main/ui/viewer/inspect/attributes/geometry.cljs:40 msgid "inspect.attributes.size" msgstr "Velikost a poloha" -#: src/app/main/ui/inspect/attributes/stroke.cljs +#: src/app/main/ui/viewer/inspect/attributes/stroke.cljs:52 msgid "inspect.attributes.stroke" msgstr "Tah" +#, permanent, unused msgid "inspect.attributes.stroke.alignment.center" msgstr "Střed" +#, permanent, unused msgid "inspect.attributes.stroke.alignment.inner" msgstr "Uvnitř" +#, permanent, unused msgid "inspect.attributes.stroke.alignment.outer" msgstr "Venku" +#, unused msgid "inspect.attributes.stroke.style.dotted" msgstr "Tečkovaná" +#, unused msgid "inspect.attributes.stroke.style.mixed" msgstr "Smíšená" +#, unused msgid "inspect.attributes.stroke.style.none" msgstr "Žádná" +#, unused msgid "inspect.attributes.stroke.style.solid" msgstr "Plná" #: src/app/main/ui/inspect/attributes/stroke.cljs +#, unused msgid "inspect.attributes.stroke.width" msgstr "Šířka" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:81, src/app/main/ui/viewer/inspect/attributes/text.cljs:194 msgid "inspect.attributes.typography" msgstr "Typografie" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:89 msgid "inspect.attributes.typography.font-family" msgstr "Rodina písem" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:107 msgid "inspect.attributes.typography.font-size" msgstr "Velikost písma" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:98 msgid "inspect.attributes.typography.font-style" msgstr "Styl písma" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:116 msgid "inspect.attributes.typography.font-weight" msgstr "Tloušťka písma" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:134 msgid "inspect.attributes.typography.letter-spacing" msgstr "Mezery mezi písmeny" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:125 msgid "inspect.attributes.typography.line-height" msgstr "Výška řádku" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:143 msgid "inspect.attributes.typography.text-decoration" msgstr "Dekorace textu" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:145 msgid "inspect.attributes.typography.text-decoration.none" msgstr "Žádná" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:146 msgid "inspect.attributes.typography.text-decoration.strikethrough" msgstr "Přeškrtnutí" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:147 msgid "inspect.attributes.typography.text-decoration.underline" msgstr "Podtržení" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:156 msgid "inspect.attributes.typography.text-transform" msgstr "Transformace textu" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:158 msgid "inspect.attributes.typography.text-transform.lowercase" msgstr "Malá písmena" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:159 msgid "inspect.attributes.typography.text-transform.none" msgstr "Žádná" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:160 msgid "inspect.attributes.typography.text-transform.titlecase" msgstr "První písmena velká" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:162 msgid "inspect.attributes.typography.text-transform.unset" msgstr "Nenastaveno" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:161 msgid "inspect.attributes.typography.text-transform.uppercase" msgstr "Velká písmena" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:140 msgid "inspect.empty.help" msgstr "" "Pokud se chcete dozvědět více o inspektorovi designu, navštivte centrum " "nápovědy společnosti Penpot" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:143 msgid "inspect.empty.more-info" msgstr "Více informací o inspektorovi" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:135 msgid "inspect.empty.select" msgstr "" "Vyberte tvar, tabuli nebo skupinu, abyste mohli zkontrolovat jejich " "vlastnosti a kód" -#: src/app/main/ui/inspect/right_sidebar.cljs +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:125 msgid "inspect.tabs.code" msgstr "Kód" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:98 msgid "inspect.tabs.code.selected.circle" msgstr "Kruh" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:99 msgid "inspect.tabs.code.selected.component" msgstr "Komponent" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:100 msgid "inspect.tabs.code.selected.curve" msgstr "Křivka" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:101 msgid "inspect.tabs.code.selected.frame" msgstr "Tabule" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:102 msgid "inspect.tabs.code.selected.group" msgstr "Skupina" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:103 msgid "inspect.tabs.code.selected.image" msgstr "Obrázek" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:104 msgid "inspect.tabs.code.selected.mask" msgstr "Maska" -#: src/app/main/ui/inspect/right_sidebar.cljs +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:93 msgid "inspect.tabs.code.selected.multiple" msgstr "%s vybráno" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:105 msgid "inspect.tabs.code.selected.path" msgstr "Cesta" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:106 msgid "inspect.tabs.code.selected.rect" msgstr "Obdélník" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:107 msgid "inspect.tabs.code.selected.svg-raw" msgstr "SVG" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:108 msgid "inspect.tabs.code.selected.text" msgstr "Text" -#: src/app/main/ui/inspect/right_sidebar.cljs +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:115 msgid "inspect.tabs.info" msgstr "Informace" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:158 msgid "label.shortcuts" msgstr "Zkratky" +#: src/app/main/ui/dashboard/import.cljs:527 msgid "labels.accept" msgstr "Přijmout" -#: src/app/main/ui/settings/sidebar.cljs +#: src/app/main/ui/settings/sidebar.cljs:100 msgid "labels.access-tokens" msgstr "Přístupové tokeny" +#: src/app/main/ui/dashboard/team.cljs:968 msgid "labels.active" msgstr "Aktivní" +#: src/app/main/ui/dashboard/fonts.cljs:175 msgid "labels.add-custom-font" msgstr "Přidat vlastní písmo" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:120, src/app/main/ui/dashboard/team.cljs:276, src/app/main/ui/dashboard/team.cljs:519, src/app/main/ui/dashboard/team.cljs:549, src/app/main/ui/onboarding/team_choice.cljs:67 msgid "labels.admin" msgstr "Správce" +#: src/app/main/ui/onboarding/questions.cljs:174 +msgid "labels.adobe-xd" +msgstr "Adobe XD" + #: src/app/main/ui/workspace/comments.cljs +#, unused msgid "labels.all" msgstr "Vše" +#: src/app/main/ui/auth.cljs:37 msgid "labels.and" msgstr "a" +#: src/app/main/ui/onboarding/team_choice.cljs:162 msgid "labels.back" msgstr "Zpět" -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:59 msgid "labels.bad-gateway.desc-message" msgstr "" "Vypadá to, že musíte chvíli počkat a zkusit to znovu; provádíme drobnou " "údržbu našich serverů." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:58 msgid "labels.bad-gateway.main-message" msgstr "Špatná brána" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/data/common.cljs:112, src/app/main/ui/dashboard/change_owner.cljs:69, src/app/main/ui/dashboard/import.cljs:514, src/app/main/ui/dashboard/team.cljs:868, src/app/main/ui/delete_shared.cljs:35, src/app/main/ui/export.cljs:164, src/app/main/ui/export.cljs:460, src/app/main/ui/settings/access_tokens.cljs:188, src/app/main/ui/viewer/share_link.cljs:203, src/app/main/ui/workspace/sidebar/assets/groups.cljs:149 msgid "labels.cancel" msgstr "Zrušit" +#: src/app/main/ui/onboarding/questions.cljs:176 +msgid "labels.canva" +msgstr "Canva" + +#: src/app/main/ui/dashboard/projects.cljs:93, src/app/main/ui/export.cljs:478, src/app/main/ui/settings/access_tokens.cljs:183, src/app/main/ui/viewer/login.cljs:77, src/app/main/ui/viewer/share_link.cljs:174, src/app/main/ui/workspace/libraries.cljs:522 msgid "labels.close" msgstr "Zavřít" -#: src/app/main/ui/dashboard/comments.cljs +#: src/app/main/ui/dashboard/comments.cljs:104, src/app/main/ui/viewer/comments.cljs:70, src/app/main/ui/workspace/comments.cljs:126 msgid "labels.comments" msgstr "Komentáře" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:985, src/app/main/ui/workspace/main_menu.cljs:110 msgid "labels.community" msgstr "Komunita" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:103 msgid "labels.confirm-password" msgstr "Potvrďte heslo" +#: src/app/main/ui/dashboard/import.cljs:520, src/app/main/ui/export.cljs:465, src/app/main/ui/onboarding/newsletter.cljs:101 msgid "labels.continue" msgstr "Pokračovat" +#, unused msgid "labels.continue-with" msgstr "Pokračovat s" +#: src/app/main/ui/viewer/login.cljs:75 msgid "labels.continue-with-penpot" msgstr "Můžete pokračovat s účtem Penpot" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:642 msgid "labels.copy-invitation-link" msgstr "Kopírovat odkaz" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:157, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:190 msgid "labels.create" msgstr "Vytvořit" -#: src/app/main/ui/dashboard/team_form.cljs, -#: src/app/main/ui/dashboard/team_form.cljs +#: src/app/main/ui/dashboard/team_form.cljs:101, src/app/main/ui/dashboard/team_form.cljs:121 msgid "labels.create-team" msgstr "Vytvořit nový tým" -#: src/app/main/ui/dashboard/team_form.cljs +#: src/app/main/ui/dashboard/team_form.cljs:113 msgid "labels.create-team.placeholder" msgstr "Zadejte název nového týmu" +#, unused msgid "labels.custom-fonts" msgstr "Vlastní písma" -#: src/app/main/ui/settings/sidebar.cljs +#: src/app/main/ui/settings/sidebar.cljs:73 msgid "labels.dashboard" msgstr "Tabule" -#: src/app/main/ui/dashboard/project_menu.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:306, src/app/main/ui/dashboard/fonts.cljs:255, src/app/main/ui/dashboard/fonts.cljs:332, src/app/main/ui/dashboard/fonts.cljs:346, src/app/main/ui/dashboard/project_menu.cljs:115, src/app/main/ui/dashboard/team.cljs:904, src/app/main/ui/settings/access_tokens.cljs:209, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:209 msgid "labels.delete" msgstr "Smazat" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:357 msgid "labels.delete-comment" msgstr "Smazat komentář" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:354 msgid "labels.delete-comment-thread" msgstr "Smazat vlákno" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:648 msgid "labels.delete-invitation" msgstr "Smazat pozvánku" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:262 msgid "labels.delete-multi-files" msgstr "Smazat soubory %s" +#: src/app/main/ui/onboarding/questions.cljs:250 +msgid "labels.developer" +msgstr "Vývojář" + +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:199 msgid "labels.discard" msgstr "Zahodit" -#: src/app/main/ui/dashboard/projects.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs, -#: src/app/main/ui/dashboard/files.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:28, src/app/main/ui/dashboard/files.cljs:72, src/app/main/ui/dashboard/files.cljs:156, src/app/main/ui/dashboard/projects.cljs:220, src/app/main/ui/dashboard/projects.cljs:224, src/app/main/ui/dashboard/sidebar.cljs:791 msgid "labels.drafts" msgstr "Pracovní verze" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:350, src/app/main/ui/dashboard/fonts.cljs:252, src/app/main/ui/dashboard/team.cljs:902, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:205 msgid "labels.edit" msgstr "Upravit" +#, unused msgid "labels.edit-file" msgstr "Upravit soubor" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:118, src/app/main/ui/dashboard/team.cljs:279, src/app/main/ui/dashboard/team.cljs:520, src/app/main/ui/dashboard/team.cljs:553, src/app/main/ui/onboarding/team_choice.cljs:66 msgid "labels.editor" msgstr "Editor" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:661 msgid "labels.expired-invitation" msgstr "Platnost vypršela" +#: src/app/main/ui/export.cljs:173 msgid "labels.export" msgstr "Exportovat" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:51 msgid "labels.feedback-disabled" msgstr "Zpětná vazba zakázána" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:42 msgid "labels.feedback-sent" msgstr "Zpětná vazba byla odeslána" +#: src/app/main/ui/onboarding/questions.cljs:170 +msgid "labels.figma" +msgstr "Figma" + +#: src/app/main/ui/dashboard/fonts.cljs:412 msgid "labels.font-family" msgstr "Rodina písem" +#, unused msgid "labels.font-providers" msgstr "Poskytovatelé písem" +#: src/app/main/ui/dashboard/fonts.cljs:413 msgid "labels.font-variants" msgstr "Styly" +#: src/app/main/ui/dashboard/fonts.cljs:52, src/app/main/ui/dashboard/sidebar.cljs:811 msgid "labels.fonts" msgstr "Písma" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/onboarding/questions.cljs:263 +msgid "labels.founder" +msgstr "Zakladatel / viceprezident" + +#: src/app/main/ui/onboarding/questions.cljs:262 +msgid "labels.freelancer" +msgstr "Jsem freelancer" + +#: src/app/main/ui/dashboard/sidebar.cljs:1015, src/app/main/ui/workspace/main_menu.cljs:142 msgid "labels.github-repo" msgstr "Úložiště Github" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/settings/sidebar.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:1032, src/app/main/ui/settings/sidebar.cljs:113, src/app/main/ui/workspace/main_menu.cljs:171 msgid "labels.give-feedback" msgstr "Dát zpětnou vazbu" +#: src/app/main/ui/auth/recovery_request.cljs:110, src/app/main/ui/auth/register.cljs:285, src/app/main/ui/viewer/login.cljs:117 msgid "labels.go-back" msgstr "Jít zpět" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:978, src/app/main/ui/workspace/main_menu.cljs:102 msgid "labels.help-center" msgstr "Centrum nápovědy" -#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/comments.cljs:103, src/app/main/ui/workspace/comments.cljs:67 msgid "labels.hide-resolved-comments" msgstr "Skrýt vyřešené komentáře" +#: src/app/main/ui/dashboard/team.cljs:969 msgid "labels.inactive" msgstr "Neaktivní" +#: src/app/main/ui/dashboard/fonts.cljs:410 msgid "labels.installed-fonts" msgstr "Nainstalovaná písma" -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:144 msgid "labels.internal-error.desc-message" msgstr "" "Stalo se něco špatného. Opakujte operaci a pokud problém přetrvává, " "kontaktujte podporu." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:143 msgid "labels.internal-error.main-message" msgstr "Interní chyba" -#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/onboarding/questions.cljs:178 +msgid "labels.invision" +msgstr "InVision" + +#: src/app/main/ui/dashboard/sidebar.cljs:516, src/app/main/ui/dashboard/team.cljs:89, src/app/main/ui/dashboard/team.cljs:97, src/app/main/ui/dashboard/team.cljs:708 msgid "labels.invitations" msgstr "Pozvánky" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:51 msgid "labels.language" msgstr "Jazyk" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:1008, src/app/main/ui/workspace/main_menu.cljs:134 msgid "labels.libraries-and-templates" msgstr "Knihovny a šablony" +#: src/app/main/ui/viewer/header.cljs:203 msgid "labels.log-or-sign" msgstr "Přihlásit se ne registrovat" -#: src/app/main/ui/settings.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:1040 msgid "labels.logout" msgstr "Odhlásit se" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/onboarding/questions.cljs:253 +msgid "labels.marketing" +msgstr "Marketing" + +#: src/app/main/ui/dashboard/team.cljs:468 msgid "labels.member" msgstr "Člen" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:510, src/app/main/ui/dashboard/team.cljs:87, src/app/main/ui/dashboard/team.cljs:95 msgid "labels.members" msgstr "Členové" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:96 msgid "labels.new-password" msgstr "Nové heslo" -#: src/app/main/ui/workspace/comments.cljs, -#: src/app/main/ui/dashboard/comments.cljs +#: src/app/main/ui/dashboard/templates.cljs:269, src/app/main/ui/onboarding/questions.cljs:55 +msgid "labels.next" +msgstr "Další" + +#: src/app/main/ui/dashboard/comments.cljs:128, src/app/main/ui/workspace/comments.cljs:161 msgid "labels.no-comments-available" msgstr "Vše je aktuální! Zde se zobrazí upozornění na nové komentáře." -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:694 msgid "labels.no-invitations" msgstr "Nejsou žádné pozvánky." -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:696 +#, markdown msgid "labels.no-invitations-hint" msgstr "" "Chcete-li do tohoto týmu pozvat další členy, stiskněte tlačítko „Pozvat do " "týmu“." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:50 msgid "labels.not-found.desc-message" msgstr "Tato stránka možná neexistuje nebo k ní nemáte oprávnění k přístupu." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:49 msgid "labels.not-found.main-message" msgstr "Ups!" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/projects.cljs:239, src/app/main/ui/dashboard/team.cljs:1095 msgid "labels.num-of-files" msgid_plural "labels.num-of-files" msgstr[0] "1 soubor" msgstr[1] "%s soubory" msgstr[2] "%s souborů" +#: src/app/main/ui/viewer/thumbnails.cljs:80 msgid "labels.num-of-frames" msgid_plural "labels.num-of-frames" msgstr[0] "1 tabule" msgstr[1] "%s tabule" msgstr[2] "%s tabulí" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1090 msgid "labels.num-of-projects" msgid_plural "labels.num-of-projects" msgstr[0] "1 projekt" msgstr[1] "%s projekty" msgstr[2] "%s projektů" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:89 msgid "labels.old-password" msgstr "Staré heslo" #: src/app/main/ui/workspace/comments.cljs +#, unused msgid "labels.only-yours" msgstr "Jen vaše" +#, unused msgid "labels.or" msgstr "nebo" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/onboarding/questions.cljs:145, src/app/main/ui/onboarding/questions.cljs:214, src/app/main/ui/onboarding/questions.cljs:303, src/app/main/ui/onboarding/questions.cljs:316, src/app/main/ui/onboarding/questions.cljs:389, src/app/main/ui/onboarding/questions.cljs:447 +msgid "labels.other" +msgstr "Jiné (upřesněte)" + +#: src/app/main/ui/dashboard/team.cljs:286, src/app/main/ui/dashboard/team.cljs:518, src/app/main/ui/dashboard/team.cljs:1076 msgid "labels.owner" msgstr "Majitel" -#: src/app/main/ui/settings/sidebar.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/settings/sidebar.cljs:87 msgid "labels.password" msgstr "Heslo" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:662 msgid "labels.pending-invitation" msgstr "Nevyřízený" -#: src/app/main/ui/settings/sidebar.cljs +#: src/app/main/ui/onboarding/questions.cljs:51 +msgid "labels.previous" +msgstr "Předchozí" + +#: src/app/main/ui/onboarding/questions.cljs:254 +msgid "labels.product-management" +msgstr "Produktový nebo projektový manažer" + +#: src/app/main/ui/settings/profile.cljs:118, src/app/main/ui/settings/sidebar.cljs:82 msgid "labels.profile" msgstr "Profil" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:784 msgid "labels.projects" msgstr "Projekty" -#: src/app/main/ui/settings/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:998, src/app/main/ui/settings/sidebar.cljs:106, src/app/main/ui/workspace/main_menu.cljs:126 msgid "labels.release-notes" msgstr "Poznámky k verzi" #: src/app/main/ui/workspace.cljs +#, unused msgid "labels.reload-file" msgstr "Znovu načíst soubor" -#: src/app/main/ui/workspace/libraries.cljs, -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/workspace/libraries.cljs, src/app/main/ui/dashboard/team.cljs +#, unused msgid "labels.remove" msgstr "Odstranit" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:316 msgid "labels.remove-member" msgstr "Odebrat člena" -#: src/app/main/ui/dashboard/sidebar.cljs, -#: src/app/main/ui/dashboard/project_menu.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:271, src/app/main/ui/dashboard/project_menu.cljs:85, src/app/main/ui/dashboard/sidebar.cljs:539, src/app/main/ui/workspace/sidebar/assets/groups.cljs:157 msgid "labels.rename" msgstr "Přejmenovat" -#: src/app/main/ui/dashboard/team_form.cljs +#: src/app/main/ui/dashboard/team_form.cljs:99 msgid "labels.rename-team" msgstr "Přejmenovat tým" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:645 msgid "labels.resend-invitation" msgstr "Znovu poslat pozvánku" -#: src/app/main/ui/static.cljs, src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:61, src/app/main/ui/static.cljs:70, src/app/main/ui/static.cljs:148 msgid "labels.retry" msgstr "Zkusit znovu" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:469, src/app/main/ui/dashboard/team.cljs:709 msgid "labels.role" msgstr "Role" +#: src/app/main/ui/dashboard/fonts.cljs:380, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:191 msgid "labels.save" msgstr "Uložit" +#: src/app/main/ui/onboarding/questions.cljs:414, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:436 msgid "labels.search" msgstr "Hledat" +#: src/app/main/ui/dashboard/fonts.cljs:415 msgid "labels.search-font" msgstr "Hledat písmo" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/onboarding/questions.cljs:90, src/app/main/ui/onboarding/questions.cljs:248, src/app/main/ui/onboarding/questions.cljs:259, src/app/main/ui/onboarding/questions.cljs:270 +msgid "labels.select-option" +msgstr "Vyberte možnost" + +#: src/app/main/ui/settings/feedback.cljs:82 msgid "labels.send" msgstr "Poslat" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:82 msgid "labels.sending" msgstr "Odesílání…" -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:68 msgid "labels.service-unavailable.desc-message" msgstr "Provádíme plánovanou údržbu našich systémů." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:67 msgid "labels.service-unavailable.main-message" msgstr "Služba je nedostupná" -#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:530, src/app/main/ui/dashboard/team.cljs:88, src/app/main/ui/dashboard/team.cljs:102, src/app/main/ui/settings/options.cljs:84, src/app/main/ui/settings/sidebar.cljs:93 msgid "labels.settings" msgstr "Nastavení" +#: src/app/main/ui/viewer/header.cljs:199 msgid "labels.share" msgstr "Sdílet" +#, unused msgid "labels.share-prototype" msgstr "Sdílet prototyp" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:800 msgid "labels.shared-libraries" msgstr "Knihovny" -#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/comments.cljs:82, src/app/main/ui/workspace/comments.cljs:55, src/app/main/ui/workspace/comments.cljs:135 msgid "labels.show-all-comments" msgstr "Zobrazit všechny komentáře" +#: src/app/main/ui/viewer/comments.cljs:115 msgid "labels.show-comments-list" msgstr "Zobrazit seznam komentářů" -#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/comments.cljs:91, src/app/main/ui/workspace/comments.cljs:61, src/app/main/ui/workspace/comments.cljs:136 msgid "labels.show-your-comments" msgstr "Zobrazit pouze vaše komentáře" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/onboarding/questions.cljs:172 +msgid "labels.sketch" +msgstr "Sketch" + +#: src/app/main/ui/onboarding/questions.cljs:56 +msgid "labels.start" +msgstr "Start" + +#: src/app/main/ui/dashboard/team.cljs:710 msgid "labels.status" msgstr "Status" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/onboarding/questions.cljs:251 +msgid "labels.student-teacher" +msgstr "Student nebo učitel" + +#: src/app/main/ui/dashboard/sidebar.cljs:992, src/app/main/ui/workspace/main_menu.cljs:118 msgid "labels.tutorials" msgstr "Tutoriály" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:256 msgid "labels.unpublish-multi-files" msgstr "Zrušit publikování %s souborů" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:103 msgid "labels.update" msgstr "Aktualizovat" -#: src/app/main/ui/dashboard/team_form.cljs +#: src/app/main/ui/dashboard/team_form.cljs:120 msgid "labels.update-team" msgstr "Aktualizovat tým" +#: src/app/main/ui/dashboard/fonts.cljs:241 msgid "labels.upload" msgstr "Nahrát" +#: src/app/main/ui/dashboard/fonts.cljs:169 msgid "labels.upload-custom-fonts" msgstr "Nahrát vlastní písma" +#: src/app/main/ui/dashboard/fonts.cljs:240 msgid "labels.uploading" msgstr "Nahrávání…" +#: src/app/main/ui/workspace/sidebar/sitemap.cljs:223 msgid "labels.view-only" msgstr "POUZE ZOBRAZIT" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:123, src/app/main/ui/dashboard/team.cljs:282, src/app/main/ui/dashboard/team.cljs:521 msgid "labels.viewer" msgstr "Prohlížeč" +#: src/app/main/ui/dashboard/sidebar.cljs:523, src/app/main/ui/dashboard/team.cljs:90, src/app/main/ui/dashboard/team.cljs:100, src/app/main/ui/dashboard/team.cljs:880 msgid "labels.webhooks" msgstr "Webhooks" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:194 msgid "labels.write-new-comment" msgstr "Napsat nový komentář" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/team.cljs:237 msgid "labels.you" msgstr "(vy)" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:968 msgid "labels.your-account" msgstr "Váš účet" +#: src/app/main/ui/workspace/colorpicker.cljs:297, src/app/main/ui/workspace/colorpicker.cljs:298, src/app/main/ui/workspace/colorpicker.cljs:300 msgid "media.choose-image" msgstr "Vyberte obrázek" +#, unused msgid "media.gradient" msgstr "Přechod" +#: src/app/main/data/workspace/media.cljs:275, src/app/main/ui/components/color_bullet.cljs:32, src/app/main/ui/components/color_bullet.cljs:45, src/app/main/ui/viewer/inspect/attributes/common.cljs:66, src/app/main/ui/workspace/colorpicker.cljs:211, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:237 msgid "media.image" msgstr "Obrázek" +#: src/app/main/ui/workspace/colorpicker.cljs:208 msgid "media.linear" msgstr "Lineární" -#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs +#: src/app/main/data/media.cljs:49, src/app/main/data/workspace/media.cljs:223, src/app/main/data/workspace/media.cljs:453 msgid "media.loading" msgstr "Načítání obrázku…" +#: src/app/main/ui/workspace/colorpicker.cljs:209 msgid "media.radial" msgstr "Radiální" +#: src/app/main/ui/workspace/colorpicker.cljs:206 msgid "media.solid" msgstr "Plná" +#: src/app/main/data/common.cljs:111 msgid "modals.add-shared-confirm-empty.hint" msgstr "" "Vaše knihovna je prázdná. Po přidání jako sdílená knihovna budou položky, " "které vytvoříte, k dispozici pro použití se zbytkem vašich souborů. Opravdu " "ji chcete publikovat?" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/data/common.cljs:113 msgid "modals.add-shared-confirm.accept" msgstr "Přidat jako sdílenou knihovnu" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/data/common.cljs:111 msgid "modals.add-shared-confirm.hint" msgstr "" "Po přidání jako Sdílené knihovny budou položky této knihovny k dispozici " "pro použití se zbytkem vašich souborů." -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/data/common.cljs:110 msgid "modals.add-shared-confirm.message" msgstr "Přidat „%s“ jako Sdílenou knihovnu" -#: src/app/main/ui/workspace/nudge.cljs +#: src/app/main/ui/workspace/nudge.cljs:60 msgid "modals.big-nudge" msgstr "Velké posunutí" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:127 msgid "modals.change-email.confirm-email" msgstr "Ověřit nový e-mail" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:114 msgid "modals.change-email.info" msgstr "" "Zašleme vám e-mail na váš aktuální e-mail „%s“, abychom ověřili vaši " "identitu." -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:119 msgid "modals.change-email.new-email" msgstr "Nový e-mail" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:136 msgid "modals.change-email.submit" msgstr "Změnit e-mail" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:107 msgid "modals.change-email.title" msgstr "Změňte svůj e-mail" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:165, src/app/main/ui/settings/access_tokens.cljs:171 msgid "modals.create-access-token.copy-token" msgstr "Kopírovat token" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:142 msgid "modals.create-access-token.expiration-date.label" msgstr "Datum vypršení platnosti" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:136 msgid "modals.create-access-token.name.label" msgstr "Jméno" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:138 msgid "modals.create-access-token.name.placeholder" msgstr "Název může pomoci zjistit, k čemu token slouží" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:191 msgid "modals.create-access-token.submit-label" msgstr "Vytvořit token" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:123 msgid "modals.create-access-token.title" msgstr "Vygenerujte přístupový token" +#: src/app/main/ui/dashboard/team.cljs:873 msgid "modals.create-webhook.submit-label" msgstr "Vytvořit webhook" +#: src/app/main/ui/dashboard/team.cljs:838 msgid "modals.create-webhook.title" msgstr "Vytvořit webhook" +#: src/app/main/ui/dashboard/team.cljs:849 msgid "modals.create-webhook.url.label" msgstr "Adresa URL datové části" +#: src/app/main/ui/dashboard/team.cljs:850 msgid "modals.create-webhook.url.placeholder" msgstr "https://example.com/postreceive" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:271 msgid "modals.delete-acces-token.accept" msgstr "Smazat token" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:270 msgid "modals.delete-acces-token.message" msgstr "Opravdu chcete tento token smazat?" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:269 msgid "modals.delete-acces-token.title" msgstr "Smazat token" -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:59 msgid "modals.delete-account.cancel" msgstr "Zrušit a ponechat si můj účet" -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:64 msgid "modals.delete-account.confirm" msgstr "Ano, odstranit můj účet" -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:53 msgid "modals.delete-account.info" msgstr "Odebráním účtu ztratíte všechny své aktuální projekty a archivy." -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:46 msgid "modals.delete-account.title" msgstr "Opravdu chcete smazat svůj účet?" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:298 msgid "modals.delete-comment-thread.accept" msgstr "Smazat konverzaci" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:297 msgid "modals.delete-comment-thread.message" msgstr "" "Opravdu chcete smazat tuto konverzaci? Všechny komentáře v tomto vláknu " "budou smazány." -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:296 msgid "modals.delete-comment-thread.title" msgstr "Smazat konverzaci" +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:140 msgid "modals.delete-component-annotation.message" msgstr "Opravdu chcete smazat tuto anotaci?" +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:139 msgid "modals.delete-component-annotation.title" msgstr "Smazat anotaci" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:123 msgid "modals.delete-file-confirm.accept" msgstr "Smazat soubor" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:122 msgid "modals.delete-file-confirm.message" msgstr "Opravdu chcete tento soubor smazat?" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:121 msgid "modals.delete-file-confirm.title" msgstr "Mazání souboru" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:117 msgid "modals.delete-file-multi-confirm.accept" msgstr "Vymazat soubory" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:116 msgid "modals.delete-file-multi-confirm.message" msgstr "Opravdu chcete smazat soubory %s?" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:115 msgid "modals.delete-file-multi-confirm.title" msgstr "Mazání %s souborů" +#: src/app/main/ui/dashboard/fonts.cljs:345 msgid "modals.delete-font-variant.message" msgstr "" "Opravdu chcete smazat tento styl písma? Pokud je použit v souboru, nenačte " "se." +#: src/app/main/ui/dashboard/fonts.cljs:344 msgid "modals.delete-font-variant.title" msgstr "Odstranění stylu písma" +#: src/app/main/ui/dashboard/fonts.cljs:331 msgid "modals.delete-font.message" msgstr "Opravdu chcete smazat toto písmo? Pokud je použito v souboru, nenačte se." +#: src/app/main/ui/dashboard/fonts.cljs:330 msgid "modals.delete-font.title" msgstr "Mazání písma" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs +#: src/app/main/ui/workspace/context_menu.cljs:522, src/app/main/ui/workspace/sidebar/sitemap.cljs:45 msgid "modals.delete-page.body" msgstr "Opravdu chcete smazat tuto stránku?" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs +#: src/app/main/ui/workspace/context_menu.cljs:521, src/app/main/ui/workspace/sidebar/sitemap.cljs:44 msgid "modals.delete-page.title" msgstr "Smazat stránku" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:69 msgid "modals.delete-project-confirm.accept" msgstr "Smazat projekt" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:68 msgid "modals.delete-project-confirm.message" msgstr "Opravdu chcete smazat tento projekt?" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:67 msgid "modals.delete-project-confirm.title" msgstr "Smazat projekt" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:51 msgid "modals.delete-shared-confirm.accept" msgid_plural "modals.delete-shared-confirm.accept" msgstr[0] "Smazat soubor" msgstr[1] "Smazat soubory" msgstr[2] "Smazat soubory" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:55 msgid "modals.delete-shared-confirm.activated.no-files-message" msgid_plural "modals.delete-shared-confirm.activated.no-files-message" msgstr[0] "Není aktivován v žádném souboru." msgstr[1] "Nejsou aktivovány v žádném souboru." msgstr[2] "Nejsou aktivovány v žádném souboru." -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:57 msgid "modals.delete-shared-confirm.activated.scd-message" msgid_plural "modals.delete-shared-confirm.activated.scd-message" msgstr[0] "Tato knihovna je aktivována zde: " msgstr[1] "Tyto knihovny jsou aktivovány zde: " msgstr[2] "Tyto knihovny jsou aktivovány zde: " -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:46 msgid "modals.delete-shared-confirm.message" msgid_plural "modals.delete-shared-confirm.message" msgstr[0] "Opravdu chcete smazat tento soubor?" msgstr[1] "Opravdu chcete smazat tyto soubory?" msgstr[2] "Opravdu chcete smazat tyto soubory?" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:41 msgid "modals.delete-shared-confirm.title" msgid_plural "modals.delete-shared-confirm.title" msgstr[0] "Mazání souboru" msgstr[1] "Mazání souborů" msgstr[2] "Mazání souborů" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:435 msgid "modals.delete-team-confirm.accept" msgstr "Smazat tým" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:434 msgid "modals.delete-team-confirm.message" msgstr "" "Opravdu chcete tento tým smazat? Všechny projekty a soubory spojené s týmem " "budou trvale smazány." -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:433 msgid "modals.delete-team-confirm.title" msgstr "Mazání týmu" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:427 msgid "modals.delete-team-member-confirm.accept" msgstr "Smazat člena" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:426 msgid "modals.delete-team-member-confirm.message" msgstr "Opravdu chcete tohoto člena smazat z týmu?" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:425 msgid "modals.delete-team-member-confirm.title" msgstr "Smazat člena týmu" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:59 msgid "modals.delete-unpublish-shared-confirm.activated.hint" msgid_plural "modals.delete-unpublish-shared-confirm.activated.hint" msgstr[0] "" @@ -2025,1206 +2236,1344 @@ msgstr[2] "" "Aktiva, která již byla v těchto souborech použita, tam zůstanou (nebude " "porušen žádný návrh)." +#: src/app/main/ui/dashboard/team.cljs:942 msgid "modals.delete-webhook.accept" msgstr "Smazat webhook" +#: src/app/main/ui/dashboard/team.cljs:941 msgid "modals.delete-webhook.message" msgstr "Opravdu chcete tento webhook smazat?" +#: src/app/main/ui/dashboard/team.cljs:940 msgid "modals.delete-webhook.title" msgstr "Mazání webhooku" +#: src/app/main/ui/dashboard/team.cljs:872 msgid "modals.edit-webhook.submit-label" msgstr "Upravit webhook" +#: src/app/main/ui/dashboard/team.cljs:837 msgid "modals.edit-webhook.title" msgstr "Upravit webhook" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:218 msgid "modals.invite-member-confirm.accept" msgstr "Poslat pozvánku" +#: src/app/main/ui/dashboard/team.cljs:213, src/app/main/ui/onboarding/team_choice.cljs:156 msgid "modals.invite-member.emails" msgstr "E-maily oddělené čárkou" +#: src/app/main/ui/dashboard/team.cljs:197 msgid "modals.invite-member.repeated-invitation" msgstr "" "Některé e-maily jsou od současných členů týmu. Jejich pozvánky nebudou " "odeslány." -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:190 msgid "modals.invite-team-member.title" msgstr "Pozvat členy do týmu" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:423, src/app/main/ui/dashboard/team.cljs:393 msgid "modals.leave-and-close-confirm.hint" msgstr "" "Protože jste jediným členem tohoto týmu, tým bude smazán spolu s jeho " "projekty a soubory." -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:422, src/app/main/ui/dashboard/team.cljs:392 msgid "modals.leave-and-close-confirm.message" msgstr "Opravdu chcete opustit tým %s?" +#: src/app/main/ui/dashboard/change_owner.cljs:59 msgid "modals.leave-and-reassign.forbidden" msgstr "" "Nemůžete opustit tým, pokud není žádný jiný člen, kterého by bylo možné " "povýšit na vlastníka. Možná budete chtít tým smazat." -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/change_owner.cljs:55 msgid "modals.leave-and-reassign.hint1" msgstr "" "Jste vlastníkem tohoto týmu. Než odejdete, vyberte jiného člena, kterého " "chcete povýšit na vlastníka." -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/change_owner.cljs:78 msgid "modals.leave-and-reassign.promote-and-leave" msgstr "Povýšit a odejít" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/change_owner.cljs:34 msgid "modals.leave-and-reassign.select-member-to-promote" msgstr "Vyberte člena, kterého chcete povýšit" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/change_owner.cljs:49 msgid "modals.leave-and-reassign.title" msgstr "Než odejdete" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:402, src/app/main/ui/dashboard/sidebar.cljs:424, src/app/main/ui/dashboard/team.cljs:394, src/app/main/ui/dashboard/team.cljs:416 msgid "modals.leave-confirm.accept" msgstr "Opustit tým" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:401, src/app/main/ui/dashboard/team.cljs:415 msgid "modals.leave-confirm.message" msgstr "Opravdu chcete opustit tento tým?" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:400, src/app/main/ui/dashboard/sidebar.cljs:421, src/app/main/ui/dashboard/team.cljs:391, src/app/main/ui/dashboard/team.cljs:414 msgid "modals.leave-confirm.title" msgstr "Opuštění týmu" -#: src/app/main/ui/workspace/nudge.cljs +#: src/app/main/ui/workspace/main_menu.cljs:266, src/app/main/ui/workspace/nudge.cljs:47 msgid "modals.nudge-title" msgstr "Posunout o" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:340 msgid "modals.promote-owner-confirm.accept" msgstr "Převést vlastnictví" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:339 msgid "modals.promote-owner-confirm.hint" msgstr "" "Pokud převedete vlastnictví, změníte svou roli na správce a ztratíte " "některá oprávnění k tomuto týmu. " -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:338 msgid "modals.promote-owner-confirm.message" msgstr "" "Jste současným vlastníkem tohoto týmu. Opravdu chcete udělat %s novým " "vlastníkem týmu?" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:337 msgid "modals.promote-owner-confirm.title" msgstr "Nový majitel týmu" +#: src/app/main/ui/workspace/libraries.cljs:188 msgid "modals.publish-empty-library.accept" msgstr "Publikovat" +#: src/app/main/ui/workspace/libraries.cljs:187 msgid "modals.publish-empty-library.message" msgstr "Vaše knihovna je prázdná. Opravdu to chcete publikovat?" +#: src/app/main/ui/workspace/libraries.cljs:186 msgid "modals.publish-empty-library.title" msgstr "Publikovat prázdnou knihovnu" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "modals.remove-shared-confirm.accept" msgstr "Odebrat jako sdílenou knihovnu" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "modals.remove-shared-confirm.hint" msgstr "" "Po odstranění jako Sdílené knihovny přestane být knihovna tohoto souboru k " "dispozici pro použití se zbytkem vašich souborů." -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "modals.remove-shared-confirm.message" msgstr "Odebrat „%s“ jako sdílenou knihovnu" -#: src/app/main/ui/workspace/nudge.cljs +#: src/app/main/ui/workspace/nudge.cljs:53 msgid "modals.small-nudge" msgstr "Malé posunutí" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:52 msgid "modals.unpublish-shared-confirm.accept" msgstr "Zrušit publikování" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:47 msgid "modals.unpublish-shared-confirm.message" msgid_plural "modals.unpublish-shared-confirm.message" msgstr[0] "Opravdu chcete zrušit publikování této knihovny?" msgstr[1] "Opravdu chcete zrušit publikování těchto knihoven?" msgstr[2] "Opravdu chcete zrušit publikování těchto knihoven?" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:42 msgid "modals.unpublish-shared-confirm.title" msgid_plural "modals.unpublish-shared-confirm.title" msgstr[0] "Zrušit publikování knihovny" msgstr[1] "Zrušit publikování knihoven" msgstr[2] "Zrušit publikování knihoven" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#, unused msgid "modals.update-remote-component-in-bulk.hint" msgstr "" "Chystáte se aktualizovat komponenty ve sdílené knihovně. To může ovlivnit " "další soubory, které jej používají." -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#, unused msgid "modals.update-remote-component-in-bulk.message" msgstr "Aktualizujte komponenty ve sdílené knihovně" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:380 msgid "modals.update-remote-component.accept" msgstr "Aktualizovat" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:379 msgid "modals.update-remote-component.cancel" msgstr "Zrušit" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:378 msgid "modals.update-remote-component.hint" msgstr "" "Chystáte se aktualizovat komponentu ve sdílené knihovně. To může ovlivnit " "další soubory, které ji používají." -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:377 msgid "modals.update-remote-component.message" msgstr "Aktualizovat komponentu ve sdílené knihovně" -#: src/app/main/data/common.cljs +#: src/app/main/data/common.cljs:71 msgid "notifications.by-code.upgrade-version" msgstr "K dispozici je nová verze, obnovte prosím stránku" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:154, src/app/main/ui/dashboard/team.cljs:595 msgid "notifications.invitation-email-sent" msgstr "Pozvánka byla úspěšně odeslána" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:616 msgid "notifications.invitation-link-copied" msgstr "Odkaz na pozvánku zkopírován" -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:24 msgid "notifications.profile-deletion-not-allowed" msgstr "Nemůžete smazat svůj profil. Než budete pokračovat, znovu přiřaďte své týmy." -#: src/app/main/ui/settings/profile.cljs, src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:29, src/app/main/ui/settings/profile.cljs:35 msgid "notifications.profile-saved" msgstr "Profil byl úspěšně uložen!" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:63 msgid "notifications.validation-email-sent" msgstr "Ověřovací e-mail byl odeslán na adresu %s. Zkontrolujte si e-mail!" +#, unused msgid "onboarding-v2.before-start.desc1" msgstr "" "Měli byste vědět, že existuje spousta dostupných zdrojů, které vám pomohou " "začít s Penpot, jako je uživatelská příručka a náš kanál YouTube." +#, unused msgid "onboarding-v2.before-start.desc2" msgstr "" "Podrobné informace o tom, jak používat Penpot. Od prototypů po organizování " "nebo sdílení návrhů." +#, unused msgid "onboarding-v2.before-start.desc2.title" msgstr "Uživatelská příručka" +#, unused msgid "onboarding-v2.before-start.desc3" msgstr "Můžete se podívat na výukové materiály vytvořené námi a naší komunitou." +#, unused msgid "onboarding-v2.before-start.desc3.title" msgstr "Video tutoriály" +#, unused msgid "onboarding-v2.before-start.title" msgstr "Než začnete" +#: src/app/main/ui/onboarding/newsletter.cljs:63 msgid "onboarding-v2.newsletter.desc" msgstr "" "Přihlaste se k odběru novinek Penpot a zůstaňte informováni o pokroku ve " "vývoji produktu." +#: src/app/main/ui/onboarding/newsletter.cljs:83 msgid "onboarding-v2.newsletter.news" msgstr "Zasílejte mi novinky o Penpot (příspěvky na blogu, videonávody, streamy...)." +#: src/app/main/ui/onboarding/newsletter.cljs:91 msgid "onboarding-v2.newsletter.privacy1" msgstr "Záleží nám na soukromí, zde si můžete přečíst naše " +#: src/app/main/ui/onboarding/newsletter.cljs:97 msgid "onboarding-v2.newsletter.privacy2" msgstr "" "Budeme vám posílat pouze relevantní e-maily. Z odběru se můžete kdykoli " "odhlásit pomocí odhlašovacího odkazu v kterémkoli z našich newsletterů." +#: src/app/main/ui/onboarding/newsletter.cljs:71 msgid "onboarding-v2.newsletter.updates" msgstr "Zasílejte mi aktualizace produktu (nové funkce, verze, opravy...)." +#, unused msgid "onboarding-v2.welcome.desc1" msgstr "" "Penpot je Open Source a vytváří ho Kaleidos i komunita, kde si už spousta " "lidí pomáhá. Všichni mohou spolupracovat:" +#, unused msgid "onboarding-v2.welcome.desc2" msgstr "" "Veřejný prostor, kde se můžete učit, sdílet a diskutovat o Penpot, jeho " "současnosti a budoucnosti s celou komunitou a týmem Penpot." +#, unused msgid "onboarding-v2.welcome.desc2.title" msgstr "Účast v komunitě" +#, unused msgid "onboarding-v2.welcome.desc3" msgstr "" "Kde najdete, jak spolupracovat s překlady, požadavky na funkce, hlavními " "příspěvky, hledáním chyb…" +#, unused msgid "onboarding-v2.welcome.desc3.title" msgstr "Průvodce přispíváním" +#: src/app/main/ui/onboarding/team_choice.cljs:31 msgid "onboarding-v2.welcome.title" msgstr "Vítejte v Penpot!" +#: src/app/main/ui/onboarding/team_choice.cljs:229 msgid "onboarding.choice.team-up.continue-creating-team" msgstr "Pokračujte ve vytváření týmu" +#: src/app/main/ui/onboarding/team_choice.cljs:239 msgid "onboarding.choice.team-up.continue-without-a-team" msgstr "Pokračovat bez týmu" +#: src/app/main/ui/onboarding/team_choice.cljs:167 msgid "onboarding.choice.team-up.create-team-and-invite" msgstr "Vytvořte tým a pozvěte" +#, unused msgid "onboarding.choice.team-up.create-team-and-send-invites" msgstr "Vytvořte tým a odešlete pozvánky" +#: src/app/main/ui/onboarding/team_choice.cljs:170 msgid "onboarding.choice.team-up.create-team-and-send-invites-description" msgstr "Budete moci pozvat později" +#: src/app/main/ui/onboarding/team_choice.cljs:215 msgid "onboarding.choice.team-up.create-team-desc" msgstr "Po pojmenování svého týmu budete moci pozvat lidi, aby se přidali." +#: src/app/main/ui/onboarding/team_choice.cljs:224 msgid "onboarding.choice.team-up.create-team-placeholder" msgstr "Zadejte název týmu" +#: src/app/main/ui/onboarding/team_choice.cljs:168 msgid "onboarding.choice.team-up.create-team-without-invite" msgstr "Vytvořte tým" +#, unused msgid "onboarding.choice.team-up.create-team-without-inviting" msgstr "Vytvořte tým bez pozvánek" +#: src/app/main/ui/dashboard/projects.cljs:89, src/app/main/ui/onboarding/team_choice.cljs:140 msgid "onboarding.choice.team-up.invite-members" msgstr "Pozvat členy" +#: src/app/main/ui/onboarding/team_choice.cljs:141 msgid "onboarding.choice.team-up.invite-members-info" msgstr "" "Nezapomeňte zahrnout všechny. Vývojáře, designéry, manažéry... rozmanitost " "se počítá :)" +#: src/app/main/ui/dashboard/team.cljs:202, src/app/main/ui/onboarding/team_choice.cljs:146 msgid "onboarding.choice.team-up.roles" msgstr "Pozvat s rolí:" +#: src/app/main/ui/onboarding/team_choice.cljs:232 msgid "onboarding.choice.team-up.start-without-a-team" msgstr "Začněte bez týmu" +#: src/app/main/ui/onboarding/team_choice.cljs:234 msgid "onboarding.choice.team-up.start-without-a-team-description" msgstr "Později budete moci vytvořit tým." +#, unused msgid "onboarding.newsletter.accept" msgstr "Ano, přihlásit se k odběru" +#: src/app/main/ui/onboarding/newsletter.cljs:40 msgid "onboarding.newsletter.acceptance-message" msgstr "Vaše žádost k odběru byla odeslána, zašleme vám e-mail pro potvrzení." +#: src/app/main/ui/onboarding/newsletter.cljs:95 msgid "onboarding.newsletter.policy" msgstr "Zásady ochrany osobních údajů." +#: src/app/main/ui/onboarding/newsletter.cljs:60 msgid "onboarding.newsletter.title" msgstr "Chcete dostávat novinky Penpot?" +#: src/app/main/ui/onboarding/questions.cljs:118 +msgid "onboarding.questions.lets-get-started" +msgstr "Pusťme se do toho!" + +#: src/app/main/ui/onboarding/questions.cljs:307 +msgid "onboarding.questions.step3.question2" +msgstr "Jaká je vaše role?" + +#: src/app/main/ui/onboarding/questions.cljs:320 +msgid "onboarding.questions.step3.question3" +msgstr "Jaká je velikost vašeho týmu?" + +#: src/app/main/ui/onboarding/questions.cljs:273 +msgid "onboarding.questions.team-size.11-30" +msgstr "11-30" + +#: src/app/main/ui/onboarding/questions.cljs:274 +msgid "onboarding.questions.team-size.2-10" +msgstr "2-10" + +#: src/app/main/ui/onboarding/questions.cljs:272 +msgid "onboarding.questions.team-size.31-50" +msgstr "31-50" + +#: src/app/main/ui/onboarding/questions.cljs:271 +msgid "onboarding.questions.team-size.more-than-50" +msgstr "Více než 50" + +#: src/app/main/ui/onboarding/questions.cljs:276 +msgid "onboarding.questions.team-size.personal-project" +msgstr "Pracuji na osobním projektu" + +#: src/app/main/ui/onboarding/team_choice.cljs:213 msgid "onboarding.team-modal.create-team" msgstr "Vytvořte tým" +#: src/app/main/ui/onboarding/team_choice.cljs:35 msgid "onboarding.team-modal.create-team-desc" msgstr "" "Tým vám umožňuje spolupracovat s ostatními uživateli Penpot pracujícími na " "stejných souborech a projektech." +#: src/app/main/ui/onboarding/team_choice.cljs:40 msgid "onboarding.team-modal.create-team-feature-1" msgstr "Neomezené soubory a projekty" +#: src/app/main/ui/onboarding/team_choice.cljs:44 msgid "onboarding.team-modal.create-team-feature-2" msgstr "Multiplayerová edice" +#: src/app/main/ui/onboarding/team_choice.cljs:48 msgid "onboarding.team-modal.create-team-feature-3" msgstr "Správa rolí" +#: src/app/main/ui/onboarding/team_choice.cljs:52 msgid "onboarding.team-modal.create-team-feature-4" msgstr "Neomezený počet členů" +#: src/app/main/ui/onboarding/team_choice.cljs:56 msgid "onboarding.team-modal.create-team-feature-5" msgstr "100% zdarma!" +#: src/app/main/ui/onboarding/templates.cljs:78 msgid "onboarding.templates.subtitle" msgstr "Zde jsou některé šablony." +#: src/app/main/ui/onboarding/templates.cljs:77 msgid "onboarding.templates.title" msgstr "Začněte navrhovat" +#, unused msgid "onboarding.welcome.alt" msgstr "Penpot" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:99 msgid "profile.recovery.go-to-login" msgstr "Přejít na přihlášení" -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.team-size.11-30" -msgstr "11-30" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.team-size.2-10" -msgstr "2-10" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.team-size.31-50" -msgstr "31-50" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.adobe-xd" -msgstr "Adobe XD" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.canva" -msgstr "Canva" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.developer" -msgstr "Vývojář" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.figma" -msgstr "Figma" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.founder" -msgstr "Zakladatel / viceprezident" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.freelancer" -msgstr "Jsem freelancer" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.invision" -msgstr "InVision" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.lets-get-started" -msgstr "Pusťme se do toho!" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.product-management" -msgstr "Produktový nebo projektový manažer" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.marketing" -msgstr "Marketing" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.team-size.more-than-50" -msgstr "Více než 50" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.next" -msgstr "Další" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.other" -msgstr "Jiné (upřesněte)" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.team-size.personal-project" -msgstr "Pracuji na osobním projektu" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.previous" -msgstr "Předchozí" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.step3.question2" -msgstr "Jaká je vaše role?" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.select-option" -msgstr "Vyberte možnost" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.sketch" -msgstr "Sketch" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.start" -msgstr "Start" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.student-teacher" -msgstr "Student nebo učitel" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.step3.question3" -msgstr "Jaká je velikost vašeho týmu?" - -#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, +#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:221 msgid "settings.detach" msgstr "Odpojit" -#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs +#: src/app/main/ui/viewer/inspect/exports.cljs:147, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:631, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:137, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:148, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:188, src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:158, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:399, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:410, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:430, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:441, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:458, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:472, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:309, src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:183, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:373, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:389, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:245, src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:172 msgid "settings.multiple" msgstr "Smíšený" # SECTIONS +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:414 msgid "shortcut-section.basics" msgstr "Základy" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:420 msgid "shortcut-section.dashboard" msgstr "Nástěnka" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:423 msgid "shortcut-section.viewer" msgstr "Prohlížeč" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:417 msgid "shortcut-section.workspace" msgstr "Pracovní plocha" # SUBSECTIONS +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:56 msgid "shortcut-subsection.alignment" msgstr "Zarovnání" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:57 msgid "shortcut-subsection.edit" msgstr "Upravit" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:58 msgid "shortcut-subsection.general-dashboard" msgstr "Obecný" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:59 msgid "shortcut-subsection.general-viewer" msgstr "Obecný" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:60 msgid "shortcut-subsection.main-menu" msgstr "Hlavní menu" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:61 msgid "shortcut-subsection.modify-layers" msgstr "Upravit vrstvy" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:62 msgid "shortcut-subsection.navigation-dashboard" msgstr "Navigace" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:63 msgid "shortcut-subsection.navigation-viewer" msgstr "Navigace" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:64 msgid "shortcut-subsection.navigation-workspace" msgstr "Navigace" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:65 msgid "shortcut-subsection.panels" msgstr "Panely" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:66 msgid "shortcut-subsection.path-editor" msgstr "Cesty" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:67 msgid "shortcut-subsection.shape" msgstr "Tvary" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:68 msgid "shortcut-subsection.text-editor" msgstr "Texty" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:69 msgid "shortcut-subsection.tools" msgstr "Nástroje" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:70 msgid "shortcut-subsection.zoom-viewer" msgstr "Přiblížení" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:71 msgid "shortcut-subsection.zoom-workspace" msgstr "Přiblížení" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:72 msgid "shortcuts.add-comment" msgstr "Komentáře" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:73 msgid "shortcuts.add-node" msgstr "Přidat uzel" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:74 msgid "shortcuts.align-bottom" msgstr "Zarovnat dolů" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:75 msgid "shortcuts.align-center" msgstr "Zarovnat na střed" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:76 msgid "shortcuts.align-hcenter" msgstr "Zarovnat vodorovně na střed" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:77 msgid "shortcuts.align-justify" msgstr "Zarovnat do bloku" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:78 msgid "shortcuts.align-left" msgstr "Zarovnat vlevo" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:79 msgid "shortcuts.align-right" msgstr "Zarovnat vpravo" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:80 msgid "shortcuts.align-top" msgstr "Zarovnat nahoru" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:81 msgid "shortcuts.align-vcenter" msgstr "Zarovnat na střed svisle" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:82 msgid "shortcuts.artboard-selection" msgstr "Vytvořit tabuli z výběru" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:83 msgid "shortcuts.bold" msgstr "Přepnout tučné písmo" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:84 msgid "shortcuts.bool-difference" msgstr "Rozdíl" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:85 msgid "shortcuts.bool-exclude" msgstr "Vyloučení" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:86 msgid "shortcuts.bool-intersection" msgstr "Průnik" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:87 msgid "shortcuts.bool-union" msgstr "Sloučení" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:88 msgid "shortcuts.bring-back" msgstr "Přesunout dozadu" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:89 msgid "shortcuts.bring-backward" msgstr "Přesunout dozadu" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:90 msgid "shortcuts.bring-forward" msgstr "Přesunout dopředu" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:91 msgid "shortcuts.bring-front" msgstr "Posunout dopředu" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:92 msgid "shortcuts.clear-undo" msgstr "Vymazat zpět" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:93 msgid "shortcuts.copy" msgstr "Kopírovat" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:94 msgid "shortcuts.create-component" msgstr "Vytvořte komponentu" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:95 msgid "shortcuts.create-new-project" msgstr "Vytvořit nový" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:96 msgid "shortcuts.cut" msgstr "Vyjmout" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:97 msgid "shortcuts.decrease-zoom" msgstr "Oddálit" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:98 msgid "shortcuts.delete" msgstr "Smazat" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:99 msgid "shortcuts.delete-node" msgstr "Smazat uzel" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:100 msgid "shortcuts.detach-component" msgstr "Odpojit komponentu" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:101 msgid "shortcuts.draw-curve" msgstr "Křivka" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:102 msgid "shortcuts.draw-ellipse" msgstr "Elipsa" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:103 msgid "shortcuts.draw-frame" msgstr "Tabule" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:104 msgid "shortcuts.draw-nodes" msgstr "Nakreslit cestu" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:105 msgid "shortcuts.draw-path" msgstr "Cesta" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:106 msgid "shortcuts.draw-rect" msgstr "Obdélník" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:107 msgid "shortcuts.draw-text" msgstr "Text" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:108 msgid "shortcuts.duplicate" msgstr "Duplikovat" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:109 msgid "shortcuts.escape" msgstr "Zrušit" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:110 msgid "shortcuts.export-shapes" msgstr "Exportovat tvary" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:111 msgid "shortcuts.fit-all" msgstr "Přiblížit, aby se vešlo vše" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:112 msgid "shortcuts.flip-horizontal" msgstr "Překlopit vodorovně" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:113 msgid "shortcuts.flip-vertical" msgstr "Překlopit svisle" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:114 msgid "shortcuts.font-size-dec" msgstr "Zmenšit velikost písma" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:115 msgid "shortcuts.font-size-inc" msgstr "Zvětšit velikost písma" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:116 msgid "shortcuts.go-to-drafts" msgstr "Přejít na koncepty" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:117 msgid "shortcuts.go-to-libs" msgstr "Přejít na sdílené knihovny" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:118 msgid "shortcuts.go-to-search" msgstr "Hledat" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:119 msgid "shortcuts.group" msgstr "Skupina" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:120 msgid "shortcuts.h-distribute" msgstr "Rozložit vodorovně" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:121 msgid "shortcuts.hide-ui" msgstr "Zobrazit/skrýt uživatelské rozhraní" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:122 msgid "shortcuts.increase-zoom" msgstr "Přiblížit" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:123 msgid "shortcuts.insert-image" msgstr "Vložit obrázek" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:124 msgid "shortcuts.italic" msgstr "Přepnout kurzívu" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:125 msgid "shortcuts.join-nodes" msgstr "Propojit uzly" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:126 msgid "shortcuts.letter-spacing-dec" msgstr "Zmenšit mezery mezi písmeny" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:127 msgid "shortcuts.letter-spacing-inc" msgstr "Zvětšit mezery mezi písmeny" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:128 msgid "shortcuts.line-height-dec" msgstr "Snížit výšku řádku" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:129 msgid "shortcuts.line-height-inc" msgstr "Zvýšit výšku řádku" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:130 msgid "shortcuts.line-through" msgstr "Přepnout řádek" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:131 msgid "shortcuts.make-corner" msgstr "Udělat roh" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:132 msgid "shortcuts.make-curve" msgstr "Udělat křivku" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:133 msgid "shortcuts.mask" msgstr "Maska" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:134 msgid "shortcuts.merge-nodes" msgstr "Sloučit uzly" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:135 msgid "shortcuts.move" msgstr "Posunout" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:136 msgid "shortcuts.move-fast-down" msgstr "Posunout dolů rychle" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:137 msgid "shortcuts.move-fast-left" msgstr "Posunout doleva rychle" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:138 msgid "shortcuts.move-fast-right" msgstr "Posunout doprava rychle" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:139 msgid "shortcuts.move-fast-up" msgstr "Posunout nahoru rychle" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:140 msgid "shortcuts.move-nodes" msgstr "Posunout uzel" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:141 msgid "shortcuts.move-unit-down" msgstr "Posunout dolů" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:142 msgid "shortcuts.move-unit-left" msgstr "Posunout vlevo" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:143 msgid "shortcuts.move-unit-right" msgstr "Posunout vpravo" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:144 msgid "shortcuts.move-unit-up" msgstr "Posunout nahoru" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:145 msgid "shortcuts.next-frame" msgstr "Další tabule" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:516 msgid "shortcuts.not-found" msgstr "Nebyly nalezeny žádné zkratky" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:146 msgid "shortcuts.opacity-0" msgstr "Nastavit průhlednost na 100 %" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:147 msgid "shortcuts.opacity-1" msgstr "Nastavit průhlednost na 10 %" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:148 msgid "shortcuts.opacity-2" msgstr "Nastavit průhlednost na 20 %" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:149 msgid "shortcuts.opacity-3" msgstr "Nastavit průhlednost na 30 %" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:150 msgid "shortcuts.opacity-4" msgstr "Nastavit průhlednost na 40 %" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:151 msgid "shortcuts.opacity-5" msgstr "Nastavit průhlednost na 50 %" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:152 msgid "shortcuts.opacity-6" msgstr "Nastavit průhlednost na 60 %" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:153 msgid "shortcuts.opacity-7" msgstr "Nastavit průhlednost na 70 %" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:154 msgid "shortcuts.opacity-8" msgstr "Nastavit průhlednost na 80 %" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:155 msgid "shortcuts.opacity-9" msgstr "Nastavit průhlednost na 90 %" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:156 msgid "shortcuts.open-color-picker" msgstr "Výběr barvy" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:157 msgid "shortcuts.open-comments" msgstr "Přejít do sekce komentářů" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:158 msgid "shortcuts.open-dashboard" msgstr "Přejít na nástěnku" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:159 msgid "shortcuts.open-inspect" msgstr "Přejděte do sekce inspektor" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:160 msgid "shortcuts.open-interactions" msgstr "Přejít do části interakce" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:161 msgid "shortcuts.open-viewer" msgstr "Přejít do části interakce" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:162 msgid "shortcuts.open-workspace" msgstr "Přejít na pracovní plochu" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:260 msgid "shortcuts.or" msgstr " nebo " +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:163 msgid "shortcuts.paste" msgstr "Vložit" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:164 msgid "shortcuts.prev-frame" msgstr "Předchozí tabule" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:165 msgid "shortcuts.redo" msgstr "Znovu" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:166 msgid "shortcuts.reset-zoom" msgstr "Obnovit přiblížení" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:168 msgid "shortcuts.search-placeholder" msgstr "Prohledat zkratky" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:169 msgid "shortcuts.select-all" msgstr "Vybrat vše" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:170 msgid "shortcuts.select-next" msgstr "Vybrat další vrstvu" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:171 msgid "shortcuts.select-parent-layer" msgstr "Vybrat nadřazenou vrstvu" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:172 msgid "shortcuts.select-prev" msgstr "Vybrat předchozí vrstvu" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:173 msgid "shortcuts.separate-nodes" msgstr "Rozdělit uzly" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:174 msgid "shortcuts.show-pixel-grid" msgstr "Zobrazit/skrýt mřížku pixelů" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:175 msgid "shortcuts.show-shortcuts" msgstr "Zobrazit/skrýt zkratky" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:176 msgid "shortcuts.snap-nodes" msgstr "Přichytit k uzlům" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:177 msgid "shortcuts.snap-pixel-grid" msgstr "Přichytit k mřížce pixelů" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:178 msgid "shortcuts.start-editing" msgstr "Začít upravovat" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:179 msgid "shortcuts.start-measure" msgstr "Začít měření" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:180 msgid "shortcuts.stop-measure" msgstr "Zastavit měření" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:181 msgid "shortcuts.text-align-center" msgstr "Zarovnat na střed" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:182 msgid "shortcuts.text-align-justify" msgstr "Zarovnat do bloku" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:183 msgid "shortcuts.text-align-left" msgstr "Zarovnat vlevo" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:184 msgid "shortcuts.text-align-right" msgstr "Zarovnat vpravo" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:185 msgid "shortcuts.thumbnail-set" msgstr "Nastavit náhledy" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:496, src/app/main/ui/workspace/sidebar/shortcuts.cljs:505 msgid "shortcuts.title" msgstr "Klávesové zkratky" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:186 msgid "shortcuts.toggle-alignment" msgstr "Přepnout dynamické zarovnání" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:187 msgid "shortcuts.toggle-assets" msgstr "Přepnout podklady" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:188 msgid "shortcuts.toggle-colorpalette" msgstr "Přepnout paletu barev" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:189 msgid "shortcuts.toggle-focus-mode" msgstr "Přepnout režim soustředění" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:190 msgid "shortcuts.toggle-fullscreen" msgstr "Přepnout zobrazení na celou obrazovku" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:192 msgid "shortcuts.toggle-history" msgstr "Přepnout historii" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:193 msgid "shortcuts.toggle-layers" msgstr "Přepínání vrstev" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:194 msgid "shortcuts.toggle-layout-flex" msgstr "Přidat/odebrat flexibilní rozložení" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:196 msgid "shortcuts.toggle-lock" msgstr "Uzamknout vybrané" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:197 msgid "shortcuts.toggle-lock-size" msgstr "Uzamknout proporce" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:202 msgid "shortcuts.toggle-textpalette" msgstr "Přepnout paletu textu" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:204 msgid "shortcuts.toggle-visibility" msgstr "Přepnout viditelnost" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:205 msgid "shortcuts.toggle-zoom-style" msgstr "Přepnout styl přiblížení" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:206 msgid "shortcuts.underline" msgstr "Přepnout podtržení" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:207 msgid "shortcuts.undo" msgstr "Zpět" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:208 msgid "shortcuts.ungroup" msgstr "Zrušit seskupení" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:209 msgid "shortcuts.unmask" msgstr "Zrušit masku" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:210 msgid "shortcuts.v-distribute" msgstr "Rozmístit vertikálně" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:211 msgid "shortcuts.zoom-lense-decrease" msgstr "Zmenšení zoomu" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:212 msgid "shortcuts.zoom-lense-increase" msgstr "Zvětšení zoomu" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:213 msgid "shortcuts.zoom-selected" msgstr "Přiblížit na vybrané" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:771 msgid "team.webhooks.max-length" msgstr "Název webhooku musí obsahovat maximálně 2048 znaků." -#: src/app/main/ui/dashboard/files.cljs +#: src/app/main/ui/dashboard/files.cljs:158 msgid "title.dashboard.files" msgstr "%s - Penpot" -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:37 msgid "title.dashboard.font-providers" msgstr "Poskytovatelé písem - %s - Penpot" -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:36 msgid "title.dashboard.fonts" msgstr "Písma - %s - Penpot" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:320 msgid "title.dashboard.projects" msgstr "Projekty - %s - Penpot" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:32 msgid "title.dashboard.search" msgstr "Hledat - %s - Penpot" -#: src/app/main/ui/dashboard/libraries.cljs +#: src/app/main/ui/dashboard/libraries.cljs:44 msgid "title.dashboard.shared-libraries" msgstr "Sdílené knihovny - %s - Penpot" -#: src/app/main/ui/auth/verify_token.cljs, src/app/main/ui/auth.cljs +#: src/app/main/ui/auth/verify_token.cljs:68, src/app/main/ui/auth.cljs:54 msgid "title.default" msgstr "Penpot – Svoboda designu pro týmy" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:292 msgid "title.settings.access-tokens" msgstr "Profil – Přístupové tokeny" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:110 msgid "title.settings.feedback" msgstr "Poskytněte zpětnou vazbu – Penpot" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:80 msgid "title.settings.options" msgstr "Nastavení - Penpot" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:115 msgid "title.settings.password" msgstr "Heslo - Penpot" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:115 msgid "title.settings.profile" msgstr "Profil - Penpot" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:727 msgid "title.team-invitations" msgstr "Pozvánky – %s – Penpot" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:493 msgid "title.team-members" msgstr "Členové - %s - Penpot" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1036 msgid "title.team-settings" msgstr "Nastavení - %s - Penpot" +#: src/app/main/ui/dashboard/team.cljs:989 msgid "title.team-webhooks" msgstr "Webhooks - %s - Penpot" -#: src/app/main/ui/handoff.cljs, src/app/main/ui/viewer.cljs +#: src/app/main/ui/viewer.cljs:419 msgid "title.viewer" msgstr "%s - Režim zobrazení - Penpot" -#: src/app/main/ui/workspace.cljs +#: src/app/main/ui/workspace.cljs:190 msgid "title.workspace" msgstr "%s - Penpot" +#: src/app/main/ui.cljs:144 msgid "viewer.breaking-change.description" msgstr "Tento odkaz již není platný. Vytvořte nový nebo požádejte vlastníka o nový." +#: src/app/main/ui.cljs:143 msgid "viewer.breaking-change.message" msgstr "Pardon!" -#: src/app/main/ui/handoff.cljs, src/app/main/ui/viewer.cljs +#: src/app/main/ui/viewer.cljs:569 msgid "viewer.empty-state" msgstr "Na stránce nebyly nalezeny žádné tabule." -#: src/app/main/ui/handoff.cljs, src/app/main/ui/viewer.cljs +#: src/app/main/ui/viewer.cljs:574 msgid "viewer.frame-not-found" msgstr "Tabule nenalezena." +#: src/app/main/ui/viewer/header.cljs:336 msgid "viewer.header.comments-section" msgstr "Komentáře (%s)" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/interactions.cljs:292 msgid "viewer.header.dont-show-interactions" msgstr "Nezobrazovat interakce" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/header.cljs:188 msgid "viewer.header.fullscreen" msgstr "Celá obrazovka" +#: src/app/main/ui/viewer/header.cljs:345 msgid "viewer.header.inspect-section" msgstr "Zkontrolovat (%s)" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/interactions.cljs:282 msgid "viewer.header.interactions" msgstr "Interakce" +#: src/app/main/ui/viewer/header.cljs:327 msgid "viewer.header.interactions-section" msgstr "Interakce (%s)" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/share_link.cljs:187 msgid "viewer.header.share.copy-link" msgstr "Kopírovat odkaz" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/interactions.cljs:300 msgid "viewer.header.show-interactions" msgstr "Zobrazit interakce" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/interactions.cljs:311 msgid "viewer.header.show-interactions-on-click" msgstr "Zobrazit interakce po kliknutí" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/header.cljs:231 msgid "viewer.header.sitemap" msgstr "Mapa stránek" -#, fuzzy +#: src/app/main/ui/dashboard/team.cljs:948 msgid "webhooks.last-delivery.success" msgstr "Poslední doručení proběhlo úspěšně." -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:58 msgid "workspace.align.hcenter" msgstr "Zarovnat vodorovně na střed (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:74 msgid "workspace.align.hdistribute" msgstr "Rozmístit vodorovné mezery (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:50 msgid "workspace.align.hleft" msgstr "Zarovnat doleva (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:66 msgid "workspace.align.hright" msgstr "Zarovnat doprava (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:99 msgid "workspace.align.vbottom" msgstr "Zarovnat dolů (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:91 msgid "workspace.align.vcenter" msgstr "Zarovnat svisle na střed (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:104 msgid "workspace.align.vdistribute" msgstr "Rozmístit vertikální mezery (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:83 msgid "workspace.align.vtop" msgstr "Zarovnat nahoru (%s)" #: src/app/main/ui/workspace/sidebar/assets.cljs +#, unused msgid "workspace.assets.assets" msgstr "Podklady" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets.cljs:134 msgid "workspace.assets.box-filter-all" msgstr "Všechny podklady" -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/dashboard/grid.cljs:130, src/app/main/ui/dashboard/grid.cljs:162, src/app/main/ui/workspace/sidebar/assets/colors.cljs:485, src/app/main/ui/workspace/sidebar/assets.cljs:150 msgid "workspace.assets.colors" msgstr "Barvy" -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/dashboard/grid.cljs:126, src/app/main/ui/dashboard/grid.cljs:141, src/app/main/ui/workspace/sidebar/assets/components.cljs:513, src/app/main/ui/workspace/sidebar/assets.cljs:139 msgid "workspace.assets.components" msgstr "Komponenty" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:131 msgid "workspace.assets.create-group" msgstr "Vytvořit skupinu" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:142 msgid "workspace.assets.create-group-hint" msgstr "" "Vaše položky budou automaticky pojmenovány jako „název skupiny / název " "položky“" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/context_menu.cljs:529, src/app/main/ui/workspace/sidebar/assets/colors.cljs:251, src/app/main/ui/workspace/sidebar/assets/components.cljs:577, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:424, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:443 msgid "workspace.assets.delete" msgstr "Delete" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/context_menu.cljs:534, src/app/main/ui/workspace/sidebar/assets/components.cljs:572 msgid "workspace.assets.duplicate" msgstr "Duplikovat" +#: src/app/main/ui/workspace/sidebar/assets/components.cljs:571 msgid "workspace.assets.duplicate-main" msgstr "Duplikovat hlavní" -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:247, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:439 msgid "workspace.assets.edit" msgstr "Upravit" -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/graphics.cljs:384, src/app/main/ui/workspace/sidebar/assets.cljs:145 msgid "workspace.assets.graphics" msgstr "Grafika" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:255, src/app/main/ui/workspace/sidebar/assets/components.cljs:581, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:428, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:448 msgid "workspace.assets.group" msgstr "Skupina" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:141 msgid "workspace.assets.group-name" msgstr "Název skupiny" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets.cljs:168 msgid "workspace.assets.libraries" msgstr "Knihovny" +#: src/app/main/ui/workspace/sidebar/assets/file_library.cljs:62, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:347 msgid "workspace.assets.local-library" msgstr "místní knihovna" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/file_library.cljs:295 msgid "workspace.assets.not-found" msgstr "Nebyly nalezeny žádné podklady" +#, unused msgid "workspace.assets.open-library" msgstr "Otevřete soubor knihovny" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/context_menu.cljs:532, src/app/main/ui/workspace/sidebar/assets/colors.cljs:243, src/app/main/ui/workspace/sidebar/assets/components.cljs:566, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:421, src/app/main/ui/workspace/sidebar/assets/groups.cljs:63, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:434 msgid "workspace.assets.rename" msgstr "Přejmenovat" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:132 msgid "workspace.assets.rename-group" msgstr "Přejmenovat skupinu" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets.cljs:173 msgid "workspace.assets.search" msgstr "Hledat v podkladech" #: src/app/main/ui/workspace/sidebar/assets.cljs +#, unused msgid "workspace.assets.selected-count" msgid_plural "workspace.assets.selected-count" msgstr[0] "%s položka vybrána" @@ -3232,1807 +3581,1939 @@ msgstr[1] "Počet vybraných položek: %s" msgstr[2] "Počet vybraných položek: %s" #: src/app/main/ui/workspace/sidebar/assets.cljs +#, unused msgid "workspace.assets.shared-library" msgstr "Sdílená knihovna" -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/dashboard/grid.cljs:134, src/app/main/ui/dashboard/grid.cljs:189, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:397, src/app/main/ui/workspace/sidebar/assets.cljs:155 msgid "workspace.assets.typography" msgstr "Typografie" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused msgid "workspace.assets.typography.font-id" msgstr "Písmo" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:505 msgid "workspace.assets.typography.font-size" msgstr "Velikost" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:501 msgid "workspace.assets.typography.font-variant-id" msgstr "Varianta" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:523 msgid "workspace.assets.typography.go-to-edit" msgstr "Chcete-li upravit, přejděte do souboru knihovny stylů" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:513 msgid "workspace.assets.typography.letter-spacing" msgstr "Mezery mezi písmeny" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:509 msgid "workspace.assets.typography.line-height" msgstr "Výška řádku" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, -#: src/app/main/ui/handoff/attributes/text.cljs, -#: src/app/main/ui/handoff/attributes/text.cljs +#: src/app/main/ui/dashboard/grid.cljs:199, src/app/main/ui/workspace/libraries.cljs:461, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:464, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:489, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:596, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:615 msgid "workspace.assets.typography.sample" msgstr "Ag" +#, unused msgid "workspace.assets.typography.text-styles" msgstr "Styly textu" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:517 msgid "workspace.assets.typography.text-transform" msgstr "Transformace textu" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:66 msgid "workspace.assets.ungroup" msgstr "Zrušit seskupení" +#: src/app/main/ui/workspace/sidebar/layers.cljs:525 msgid "workspace.focus.focus-mode" msgstr "Režim soustředění" +#: src/app/main/ui/workspace/context_menu.cljs:287, src/app/main/ui/workspace/context_menu.cljs:553 msgid "workspace.focus.focus-off" msgstr "Vypnout režim soustředění" +#: src/app/main/ui/workspace/context_menu.cljs:286 msgid "workspace.focus.focus-on" msgstr "Zapnout režim soustředění" +#, unused msgid "workspace.focus.selection" msgstr "Výběr" -#: src/app/main/data/workspace/libraries.cljs, -#: src/app/main/ui/components/color_bullet.cljs +#: src/app/util/color.cljs:34 msgid "workspace.gradients.linear" msgstr "Lineární přechod" -#: src/app/main/data/workspace/libraries.cljs, -#: src/app/main/ui/components/color_bullet.cljs +#: src/app/util/color.cljs:35 msgid "workspace.gradients.radial" msgstr "Radiální přechod" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:238 msgid "workspace.header.menu.disable-dynamic-alignment" msgstr "Zakázat dynamické zarovnání" +#: src/app/main/ui/workspace/main_menu.cljs:192 msgid "workspace.header.menu.disable-scale-content" msgstr "Zakázat proporcionální měřítko" #: src/app/main/ui/workspace/header.cljs +#, unused msgid "workspace.header.menu.disable-scale-text" msgstr "Zakázat měřítko textu" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:223 msgid "workspace.header.menu.disable-snap-guides" msgstr "Zakázat přichycení k vodicím lištám" +#: src/app/main/ui/workspace/main_menu.cljs:253 msgid "workspace.header.menu.disable-snap-pixel-grid" msgstr "Zakázat přichycení k pixelu" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:239 msgid "workspace.header.menu.enable-dynamic-alignment" msgstr "Povolit dynamické zarovnání" +#: src/app/main/ui/workspace/main_menu.cljs:193 msgid "workspace.header.menu.enable-scale-content" msgstr "Povolit proporcionální měřítko" #: src/app/main/ui/workspace/header.cljs +#, unused msgid "workspace.header.menu.enable-scale-text" msgstr "Povolit měřítko textu" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:224 msgid "workspace.header.menu.enable-snap-guides" msgstr "Přichytit k vodicím lištám" +#: src/app/main/ui/workspace/main_menu.cljs:254 msgid "workspace.header.menu.enable-snap-pixel-grid" msgstr "Povolit přichycení k pixelu" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:382 msgid "workspace.header.menu.hide-artboard-names" msgstr "Skrýt názvy tabulí" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:353 msgid "workspace.header.menu.hide-palette" msgstr "Skrýt paletu barev" +#: src/app/main/ui/workspace/main_menu.cljs:394 msgid "workspace.header.menu.hide-pixel-grid" msgstr "Skrýt mřížku pixelů" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:320 msgid "workspace.header.menu.hide-rules" msgstr "Skrýt pravítka" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:367 msgid "workspace.header.menu.hide-textpalette" msgstr "Skrýt paletu písem" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:731 msgid "workspace.header.menu.option.edit" msgstr "Upravit" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:720 msgid "workspace.header.menu.option.file" msgstr "Soubor" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:777 msgid "workspace.header.menu.option.help-info" msgstr "Nápověda a informace" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:753 msgid "workspace.header.menu.option.preferences" msgstr "Předvolby" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:742 msgid "workspace.header.menu.option.view" msgstr "Pohled" +#: src/app/main/ui/workspace/main_menu.cljs:459 msgid "workspace.header.menu.redo" msgstr "Znovu" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:432 msgid "workspace.header.menu.select-all" msgstr "Vybrat vše" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:383 msgid "workspace.header.menu.show-artboard-names" msgstr "Zobrazit názvy tabulí" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:354 msgid "workspace.header.menu.show-palette" msgstr "Zobrazit paletu barev" +#: src/app/main/ui/workspace/main_menu.cljs:395 msgid "workspace.header.menu.show-pixel-grid" msgstr "Zobrazit mřížku pixelů" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:321 msgid "workspace.header.menu.show-rules" msgstr "Zobrazit pravítka" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:368 msgid "workspace.header.menu.show-textpalette" msgstr "Zobrazit paletu písem" +#: src/app/main/ui/workspace/main_menu.cljs:446 msgid "workspace.header.menu.undo" msgstr "Zpět" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/viewer/header.cljs:98, src/app/main/ui/workspace/right_header.cljs:120 msgid "workspace.header.reset-zoom" msgstr "Resetovat" #: src/app/main/ui/workspace/header.cljs +#, unused msgid "workspace.header.save-error" msgstr "Chyba při ukládání" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/right_header.cljs:52 msgid "workspace.header.saved" msgstr "Uloženo" #: src/app/main/ui/workspace/header.cljs +#, unused msgid "workspace.header.saving" msgstr "Ukládání" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/right_header.cljs:42, src/app/main/ui/workspace/right_header.cljs:47 msgid "workspace.header.unsaved" msgstr "Neuložené změny" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/right_header.cljs:239 msgid "workspace.header.viewer" msgstr "Režim zobrazení (%s)" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/viewer/header.cljs:79, src/app/main/ui/workspace/right_header.cljs:103 msgid "workspace.header.zoom" msgstr "Přiblížení" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/viewer/header.cljs:109 msgid "workspace.header.zoom-fill" msgstr "Výplň – přizpůsobit, aby vyplnil" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/viewer/header.cljs:102 msgid "workspace.header.zoom-fit" msgstr "Přizpůsobit - Zmenšit, aby se vešel" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/right_header.cljs:123 msgid "workspace.header.zoom-fit-all" msgstr "Přiblížit, aby se vešlo vše" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/viewer/header.cljs:116 msgid "workspace.header.zoom-full-screen" msgstr "Celá obrazovka" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/right_header.cljs:130 msgid "workspace.header.zoom-selected" msgstr "Přiblížit na vybrané" +#: src/app/main/ui/workspace/sidebar/options/menus/grid_cell.cljs:273, src/app/main/ui/workspace/sidebar/options/menus/grid_cell.cljs:275, src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:612 msgid "workspace.layout_grid.editor.options.edit-grid" msgstr "Upravit mřížku" +#: src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:1280 msgid "workspace.layout_grid.editor.options.exit" msgstr "Odejít" +#: src/app/main/ui/workspace/viewport/grid_layout_editor.cljs:59 msgid "workspace.layout_grid.editor.title" msgstr "Úprava mřížky" +#: src/app/main/ui/workspace/viewport/grid_layout_editor.cljs:65 msgid "workspace.layout_grid.editor.top-bar.done" msgstr "Hotovo" +#: src/app/main/ui/workspace/viewport/grid_layout_editor.cljs:62 msgid "workspace.layout_grid.editor.top-bar.locate" msgstr "Lokalizovat" #: src/app/main/ui/workspace/libraries.cljs +#, unused msgid "workspace.libraries.add" msgstr "Přidat" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:80, src/app/main/ui/workspace/libraries.cljs:99 msgid "workspace.libraries.colors" msgstr "barvy %s" -#: src/app/main/ui/workspace/colorpalette.cljs +#: src/app/main/ui/workspace/color_palette.cljs:126 msgid "workspace.libraries.colors.empty-palette" msgstr "Ve vaší knihovně zatím nejsou žádné barevné styly" -#: src/app/main/ui/workspace/textpalette.cljs +#: src/app/main/ui/workspace/text_palette.cljs:150 msgid "workspace.libraries.colors.empty-typography-palette" msgstr "Ve vaší knihovně zatím nejsou žádné typografické styly" -#: src/app/main/ui/workspace/colorpicker/libraries.cljs, -#: src/app/main/ui/workspace/colorpalette.cljs +#: src/app/main/ui/workspace/color_palette_ctx_menu.cljs:60, src/app/main/ui/workspace/colorpicker/libraries.cljs:73, src/app/main/ui/workspace/text_palette_ctx_menu.cljs:50 msgid "workspace.libraries.colors.file-library" msgstr "Knihovna souborů" #: src/app/main/ui/workspace/colorpicker.cljs +#, unused msgid "workspace.libraries.colors.hsv" msgstr "HSV" -#: src/app/main/ui/workspace/colorpicker/libraries.cljs, -#: src/app/main/ui/workspace/colorpalette.cljs +#: src/app/main/ui/workspace/color_palette_ctx_menu.cljs:82, src/app/main/ui/workspace/colorpicker/libraries.cljs:72 msgid "workspace.libraries.colors.recent-colors" msgstr "Nedávné barvy" #: src/app/main/ui/workspace/colorpicker.cljs +#, unused msgid "workspace.libraries.colors.rgb-complementary" msgstr "Doplňkové RGB" #: src/app/main/ui/workspace/colorpicker.cljs +#, unused msgid "workspace.libraries.colors.rgba" msgstr "RGBA" -#: src/app/main/ui/workspace/colorpicker.cljs +#: src/app/main/ui/workspace/colorpicker.cljs:372 msgid "workspace.libraries.colors.save-color" msgstr "Uložit styl barev" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:74, src/app/main/ui/workspace/libraries.cljs:91 msgid "workspace.libraries.components" msgstr "%s komponenty" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:215 msgid "workspace.libraries.file-library" msgstr "Knihovna souborů" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:77, src/app/main/ui/workspace/libraries.cljs:95 msgid "workspace.libraries.graphics" msgstr "%s grafika" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:209 msgid "workspace.libraries.in-this-file" msgstr "KNIHOVNY V TOMTO SOUBORU" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:526, src/app/main/ui/workspace/libraries.cljs:531 msgid "workspace.libraries.libraries" msgstr "KNIHOVNY" #: src/app/main/ui/workspace/libraries.cljs +#, unused msgid "workspace.libraries.library" msgstr "KNIHOVNA" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:382 msgid "workspace.libraries.library-updates" msgstr "AKTUALIZACE KNIHOVNY" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:380 msgid "workspace.libraries.no-libraries-need-sync" msgstr "Neexistují žádné sdílené knihovny, které by potřebovaly aktualizaci" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:299 msgid "workspace.libraries.no-matches-for" msgstr "Nebyly nalezeny žádné shody pro „%s“" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:296 msgid "workspace.libraries.no-shared-libraries-available" msgstr "Nejsou k dispozici žádné sdílené knihovny" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:260 msgid "workspace.libraries.search-shared-libraries" msgstr "Prohledat sdílené knihovny" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:256 msgid "workspace.libraries.shared-libraries" msgstr "SDÍLENÉ KNIHOVNY" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:308 msgid "workspace.libraries.text.multiple-typography" msgstr "Několik typografií" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:311 msgid "workspace.libraries.text.multiple-typography-tooltip" msgstr "Odpojte všechny typografie" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:83, src/app/main/ui/workspace/libraries.cljs:103 msgid "workspace.libraries.typography" msgstr "%s typografie" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:402 msgid "workspace.libraries.update" msgstr "Aktualizace" -#: src/app/main/data/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:477 msgid "workspace.libraries.update.see-all-changes" msgstr "zobrazit všechny změny" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:536 msgid "workspace.libraries.updates" msgstr "AKTUALIZACE" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:737 msgid "workspace.options.add-interaction" msgstr "Kliknutím na tlačítko + přidáte interakce." -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:86, src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:102 msgid "workspace.options.blur-options.title" msgstr "Rozostření" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:85 msgid "workspace.options.blur-options.title.group" msgstr "Rozostření skupiny" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:84 msgid "workspace.options.blur-options.title.multiple" msgstr "Rozostření výběru" -#: src/app/main/ui/workspace/sidebar/options/page.cljs +#: src/app/main/ui/workspace/sidebar/options/page.cljs:32, src/app/main/ui/workspace/sidebar/options/page.cljs:39 msgid "workspace.options.canvas-background" msgstr "Pozadí plátna" +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:548 msgid "workspace.options.clip-content" msgstr "Oříznout obsah" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:600, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:605 msgid "workspace.options.component" msgstr "Komponent" +#: src/app/main/ui/viewer/inspect/annotation.cljs:19, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:181 msgid "workspace.options.component.annotation" msgstr "Anotace" +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:610 msgid "workspace.options.component.copy" msgstr "Kopírovat" +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:173 msgid "workspace.options.component.create-annotation" msgstr "Vytvořte anotaci" +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:172 msgid "workspace.options.component.edit-annotation" msgstr "Upravit anotaci" +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:609 msgid "workspace.options.component.main" msgstr "Hlavní" +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:427 msgid "workspace.options.component.swap" msgstr "Vyměnit komponent" +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:471 msgid "workspace.options.component.swap.empty" msgstr "V této knihovně zatím nejsou žádné položky" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:163 msgid "workspace.options.constraints" msgstr "Omezení" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:150 msgid "workspace.options.constraints.bottom" msgstr "Dole" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:141, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:152 msgid "workspace.options.constraints.center" msgstr "Střed" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:229 msgid "workspace.options.constraints.fix-when-scrolling" msgstr "Při rolování nechat na místě" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:138 msgid "workspace.options.constraints.left" msgstr "Vlevo" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:140 msgid "workspace.options.constraints.leftright" msgstr "Vlevo a Vpravo" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:139 msgid "workspace.options.constraints.right" msgstr "Vpravo" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:142, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:153 msgid "workspace.options.constraints.scale" msgstr "Měřítko" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:149 msgid "workspace.options.constraints.top" msgstr "Nahoře" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:151 msgid "workspace.options.constraints.topbottom" msgstr "Nahoře a dole" -#: src/app/main/ui/workspace/sidebar/options.cljs +#: src/app/main/ui/workspace/sidebar/options.cljs:112 msgid "workspace.options.design" msgstr "Design" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/handoff/exports.cljs +#: src/app/main/ui/viewer/inspect/exports.cljs:139 msgid "workspace.options.export" msgstr "Exportovat" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/handoff/exports.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs +#, unused msgid "workspace.options.export-multiple" msgstr "Exportovat výběr" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/handoff/exports.cljs +#: src/app/main/ui/viewer/inspect/exports.cljs:195, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:237 msgid "workspace.options.export-object" msgid_plural "workspace.options.export-object" msgstr[0] "Exportovat 1 prvek" msgstr[1] "Exportovat %s prvky" msgstr[2] "Exportovat %s prvků" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs +#: src/app/main/ui/viewer/inspect/exports.cljs:178, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:219 msgid "workspace.options.export.suffix" msgstr "Přípona" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/handoff/exports.cljs, src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/export.cljs:240 msgid "workspace.options.exporting-complete" msgstr "Export byl dokončen" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/handoff/exports.cljs, src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/export.cljs:172, src/app/main/ui/export.cljs:241, src/app/main/ui/viewer/inspect/exports.cljs:194, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:236 msgid "workspace.options.exporting-object" msgstr "Exportování…" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/handoff/exports.cljs, src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/export.cljs:239 msgid "workspace.options.exporting-object-error" msgstr "Export se nezdařil" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/handoff/exports.cljs, src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/export.cljs:242 msgid "workspace.options.exporting-object-slow" msgstr "Export je nečekaně pomalý" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:49, src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:174 msgid "workspace.options.fill" msgstr "Výplň" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:178 msgid "workspace.options.flows.add-flow-start" msgstr "Přidat počáteční bod" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:174 msgid "workspace.options.flows.flow" msgstr "Flow" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#, unused msgid "workspace.options.flows.flow-start" msgstr "Začátek" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:161 msgid "workspace.options.flows.flow-starts" msgstr "Začátky" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:29 msgid "workspace.options.grid.auto" msgstr "Automaticky" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:157 msgid "workspace.options.grid.column" msgstr "Sloupce" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused msgid "workspace.options.grid.grid-title" msgstr "Mřížka" +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:196, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:237 msgid "workspace.options.grid.params.color" msgstr "Barva" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused msgid "workspace.options.grid.params.columns" msgstr "Sloupce" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:259 msgid "workspace.options.grid.params.gutter" msgstr "Mezera" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:246 msgid "workspace.options.grid.params.height" msgstr "Výška" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:270 msgid "workspace.options.grid.params.margin" msgstr "Mezera vně" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused msgid "workspace.options.grid.params.rows" msgstr "Řádky" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:216, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:290 msgid "workspace.options.grid.params.set-default" msgstr "Nastavit jako výchozí" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused msgid "workspace.options.grid.params.size" msgstr "Velikost" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused msgid "workspace.options.grid.params.type" msgstr "Typ" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:231 msgid "workspace.options.grid.params.type.bottom" msgstr "Dole" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:229 msgid "workspace.options.grid.params.type.center" msgstr "Střed" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:228 msgid "workspace.options.grid.params.type.left" msgstr "Vlevo" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:232 msgid "workspace.options.grid.params.type.right" msgstr "Vpravo" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:225 msgid "workspace.options.grid.params.type.stretch" msgstr "Roztáhnout" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:227 msgid "workspace.options.grid.params.type.top" msgstr "Nahoře" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:211, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:288 msgid "workspace.options.grid.params.use-default" msgstr "Použít výchozí" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:247 msgid "workspace.options.grid.params.width" msgstr "Šířka" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:158 msgid "workspace.options.grid.row" msgstr "Řádky" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:156 msgid "workspace.options.grid.square" msgstr "Čtverec" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:48 msgid "workspace.options.group-fill" msgstr "Výplň skupiny" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:42 msgid "workspace.options.group-stroke" msgstr "Ohraničení skupiny" +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:310 msgid "workspace.options.guides.title" msgstr "Vodítka" +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:406 msgid "workspace.options.height" msgstr "Výška" +#: src/app/main/ui/workspace/sidebar/options.cljs:161 msgid "workspace.options.inspect" msgstr "Inspektor" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:468 msgid "workspace.options.interaction-action" msgstr "Akce" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:41, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:367 msgid "workspace.options.interaction-after-delay" msgstr "Po prodlevě" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:614 msgid "workspace.options.interaction-animation" msgstr "Animace" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:406 msgid "workspace.options.interaction-animation-dissolve" msgstr "Dissolve" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:405 msgid "workspace.options.interaction-animation-none" msgstr "Žádná" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:412 msgid "workspace.options.interaction-animation-push" msgstr "Push" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:407 msgid "workspace.options.interaction-animation-slide" msgstr "Slide" +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:391 msgid "workspace.options.interaction-auto" msgstr "automaticky" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:604 msgid "workspace.options.interaction-background" msgstr "Přidejte překrytí pozadí" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:590 msgid "workspace.options.interaction-close-outside" msgstr "Zavřít při kliknutí mimo" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:372 msgid "workspace.options.interaction-close-overlay" msgstr "Zavřít překrytí" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:56 msgid "workspace.options.interaction-close-overlay-dest" msgstr "Zavřít překrytí: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:456 msgid "workspace.options.interaction-delay" msgstr "Prodleva" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:478 msgid "workspace.options.interaction-destination" msgstr "Cíl" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:661 msgid "workspace.options.interaction-duration" msgstr "Doba trvání" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:674 msgid "workspace.options.interaction-easing" msgstr "Easing" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:416 msgid "workspace.options.interaction-easing-ease" msgstr "Ease" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:417 msgid "workspace.options.interaction-easing-ease-in" msgstr "Ease in" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:419 msgid "workspace.options.interaction-easing-ease-in-out" msgstr "Ease in out" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:418 msgid "workspace.options.interaction-easing-ease-out" msgstr "Ease out" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:415 msgid "workspace.options.interaction-easing-linear" msgstr "Linear" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#, unused msgid "workspace.options.interaction-in" msgstr "Dovnitř" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:39, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:364 msgid "workspace.options.interaction-mouse-enter" msgstr "Mouse enter" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:40, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:365 msgid "workspace.options.interaction-mouse-leave" msgstr "Mouse leave" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:458, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:459, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:464, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:663, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:665, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:669 msgid "workspace.options.interaction-ms" msgstr "ms" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:369 msgid "workspace.options.interaction-navigate-to" msgstr "Přejít na" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:50 msgid "workspace.options.interaction-navigate-to-dest" msgstr "Přejít na: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:51, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:53, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:55, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:380 msgid "workspace.options.interaction-none" msgstr "(nenastaveno)" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:691 msgid "workspace.options.interaction-offset-effect" msgstr "Efekt offsetu" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:35, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:360 msgid "workspace.options.interaction-on-click" msgstr "Při kliknutí" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:370 msgid "workspace.options.interaction-open-overlay" msgstr "Otevřít překrytí" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:52 msgid "workspace.options.interaction-open-overlay-dest" msgstr "Otevřít překrytí: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:59, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:374 msgid "workspace.options.interaction-open-url" msgstr "Otevřít adresu URL" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#, unused msgid "workspace.options.interaction-out" msgstr "Ven" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:403 msgid "workspace.options.interaction-pos-bottom-center" msgstr "Dole uprostřed" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:401 msgid "workspace.options.interaction-pos-bottom-left" msgstr "Dole vlevo" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:402 msgid "workspace.options.interaction-pos-bottom-right" msgstr "Dole vpravo" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:397 msgid "workspace.options.interaction-pos-center" msgstr "Střed" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:396 msgid "workspace.options.interaction-pos-manual" msgstr "Ručně" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:400 msgid "workspace.options.interaction-pos-top-center" msgstr "Nahoře uprostřed" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:398 msgid "workspace.options.interaction-pos-top-left" msgstr "Nahoře vlevo" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:399 msgid "workspace.options.interaction-pos-top-right" msgstr "Nahoře vpravo" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:524 msgid "workspace.options.interaction-position" msgstr "Pozice" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:494 msgid "workspace.options.interaction-preserve-scroll" msgstr "Zachovat pozici posouvání" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:58, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:373 msgid "workspace.options.interaction-prev-screen" msgstr "Předchozí obrazovka" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:515 msgid "workspace.options.interaction-relative-to" msgstr "Relativní k" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:57, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:379, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:393, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:394 msgid "workspace.options.interaction-self" msgstr "já" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:371 msgid "workspace.options.interaction-toggle-overlay" msgstr "Přepnout překrytí" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:54 msgid "workspace.options.interaction-toggle-overlay-dest" msgstr "Přepnout překrytí: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:445 msgid "workspace.options.interaction-trigger" msgstr "Spustit" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:503 msgid "workspace.options.interaction-url" msgstr "URL" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:37, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:362 msgid "workspace.options.interaction-while-hovering" msgstr "Při najetí myši" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:38, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:363 msgid "workspace.options.interaction-while-pressing" msgstr "Při stisknutí" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:724 msgid "workspace.options.interactions" msgstr "Interakce" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:137 msgid "workspace.options.layer-options.blend-mode.color" msgstr "Color" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:126 msgid "workspace.options.layer-options.blend-mode.color-burn" msgstr "Color burn" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:129 msgid "workspace.options.layer-options.blend-mode.color-dodge" msgstr "Color dodge" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:124 msgid "workspace.options.layer-options.blend-mode.darken" msgstr "Darken" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:133 msgid "workspace.options.layer-options.blend-mode.difference" msgstr "Difference" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:134 msgid "workspace.options.layer-options.blend-mode.exclusion" msgstr "Exclusion" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:132 msgid "workspace.options.layer-options.blend-mode.hard-light" msgstr "Hard light" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:135 msgid "workspace.options.layer-options.blend-mode.hue" msgstr "Hue" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:127 msgid "workspace.options.layer-options.blend-mode.lighten" msgstr "Lighten" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:138 msgid "workspace.options.layer-options.blend-mode.luminosity" msgstr "Luminosity" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:125 msgid "workspace.options.layer-options.blend-mode.multiply" msgstr "Multiply" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:123 msgid "workspace.options.layer-options.blend-mode.normal" msgstr "Normal" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:130 msgid "workspace.options.layer-options.blend-mode.overlay" msgstr "Overlay" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:136 msgid "workspace.options.layer-options.blend-mode.saturation" msgstr "Saturation" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:128 msgid "workspace.options.layer-options.blend-mode.screen" msgstr "Screen" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:131 msgid "workspace.options.layer-options.blend-mode.soft-light" msgstr "Soft light" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#, unused msgid "workspace.options.layer-options.title" msgstr "Vrstva" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#, unused msgid "workspace.options.layer-options.title.group" msgstr "Seskupení vrstev" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#, unused msgid "workspace.options.layer-options.title.multiple" msgstr "Vybrané vrstvy" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout-item.advanced-ops" msgstr "Rozšířené možnosti" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:564 msgid "workspace.options.layout-item.layout-item-max-h" msgstr "Maximální výška" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:531 msgid "workspace.options.layout-item.layout-item-max-w" msgstr "Maximální šířka" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:548 msgid "workspace.options.layout-item.layout-item-min-h" msgstr "Minimální výška" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:515 msgid "workspace.options.layout-item.layout-item-min-w" msgstr "Minimální šířka" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout-item.title.layout-item-max-h" msgstr "Maximální výška" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout-item.title.layout-item-max-w" msgstr "Maximální šířka" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout-item.title.layout-item-min-h" msgstr "Minimální výška" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout-item.title.layout-item-min-w" msgstr "Minimální šířka" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.bottom" msgstr "Dole" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.direction.column" msgstr "Sloupec" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.direction.column-reverse" msgstr "Reverzní sloupec" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.direction.row" msgstr "Řádek" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.direction.row-reverse" msgstr "Reverzní řada" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.gap" msgstr "Mezera" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.left" msgstr "Vlevo" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout.margin" msgstr "Mezera vně" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout.margin-all" msgstr "Všechny strany" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout.margin-simple" msgstr "Mezera vně" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.packed" msgstr "těsně" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.padding" msgstr "Mezera uvnitř" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.padding-all" msgstr "Všechny strany" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.padding-simple" msgstr "mezera uvnitř" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.right" msgstr "Vpravo" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.space-around" msgstr "místo okolo" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.space-between" msgstr "místo mezi" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.top" msgstr "Nahoře" -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:146 msgid "workspace.options.more-colors" msgstr "Více barev" -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:123 msgid "workspace.options.more-lib-colors" msgstr "Více barev knihovny" +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:161 msgid "workspace.options.opacity" msgstr "Průhlednost" -#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#, unused msgid "workspace.options.position" msgstr "Pozice" -#: src/app/main/ui/workspace/sidebar/options.cljs +#: src/app/main/ui/workspace/sidebar/options.cljs:157 msgid "workspace.options.prototype" msgstr "Prototyp" +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:469, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:481 msgid "workspace.options.radius" msgstr "Poloměr" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:513 msgid "workspace.options.radius-bottom-left" msgstr "Dole vlevo" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:522 msgid "workspace.options.radius-bottom-right" msgstr "Dole vpravo" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:495 msgid "workspace.options.radius-top-left" msgstr "Nahoře vlevo" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:504 msgid "workspace.options.radius-top-right" msgstr "Nahoře vpravo" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:532 msgid "workspace.options.radius.all-corners" msgstr "Všechny rohy" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:533 msgid "workspace.options.radius.single-corners" msgstr "Nezávislé rohy" +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:183 msgid "workspace.options.recent-fonts" msgstr "Nedávné" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/handoff/exports.cljs, src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/export.cljs:284 msgid "workspace.options.retry" msgstr "Opakovat" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:451 msgid "workspace.options.rotation" msgstr "Otočit" +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:180 msgid "workspace.options.search-font" msgstr "Hledat písmo" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:741 msgid "workspace.options.select-a-shape" msgstr "Vyberte tvar, tabuli nebo skupinu a přetáhněte připojení k jiné tabuli." -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:105 msgid "workspace.options.selection-color" msgstr "Vybrané barvy" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:47 msgid "workspace.options.selection-fill" msgstr "Vyplnění výběru" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:41 msgid "workspace.options.selection-stroke" msgstr "Obrys výběru" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:40, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:198, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:200 msgid "workspace.options.shadow-options.blur" msgstr "Rozostření" +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:238 msgid "workspace.options.shadow-options.color" msgstr "Barva stínu" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:144 msgid "workspace.options.shadow-options.drop-shadow" msgstr "Vržený stín" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:145 msgid "workspace.options.shadow-options.inner-shadow" msgstr "Vnitřní stín" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:38, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:186 msgid "workspace.options.shadow-options.offsetx" msgstr "X" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:39, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:224 msgid "workspace.options.shadow-options.offsety" msgstr "Y" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:41, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:211, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:213 msgid "workspace.options.shadow-options.spread" msgstr "Rozpětí" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:296 msgid "workspace.options.shadow-options.title" msgstr "Stín" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:295 msgid "workspace.options.shadow-options.title.group" msgstr "Stín skupiny" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:294 msgid "workspace.options.shadow-options.title.multiple" msgstr "Stiny výběru" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:193 msgid "workspace.options.show-fill-on-export" msgstr "Zobrazit v exportech" +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:562 msgid "workspace.options.show-in-viewer" msgstr "Zobrazit v režimu zobrazení" -#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:162 msgid "workspace.options.size" msgstr "Velikost" -#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:355 msgid "workspace.options.size-presets" msgstr "Předvolby velikosti" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:43 msgid "workspace.options.stroke" msgstr "Tah" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#, unused msgid "workspace.options.stroke-cap.circle-marker" msgstr "Zakončení - kruh" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:129 msgid "workspace.options.stroke-cap.circle-marker-short" msgstr "Kruh" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#, unused msgid "workspace.options.stroke-cap.diamond-marker" msgstr "Zakončení - diamant" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:130 msgid "workspace.options.stroke-cap.diamond-marker-short" msgstr "Diamant" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#, unused msgid "workspace.options.stroke-cap.line-arrow" msgstr "Zakončení - šipka" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:126 msgid "workspace.options.stroke-cap.line-arrow-short" msgstr "Šipka" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:124 msgid "workspace.options.stroke-cap.none" msgstr "Žádné" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:132 msgid "workspace.options.stroke-cap.round" msgstr "Kulaté" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:133 msgid "workspace.options.stroke-cap.square" msgstr "Čtvercové" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#, unused msgid "workspace.options.stroke-cap.square-marker" msgstr "Zakončení - čtverec" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:128 msgid "workspace.options.stroke-cap.square-marker-short" msgstr "Obdélník" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#, unused msgid "workspace.options.stroke-cap.triangle-arrow" msgstr "Zakončení - trojúhelník" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:127 msgid "workspace.options.stroke-cap.triangle-arrow-short" msgstr "Trojúhelník" +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:192 msgid "workspace.options.stroke-color" msgstr "Barva tahu" +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:165 msgid "workspace.options.stroke-width" msgstr "Šířka tahu" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:87 msgid "workspace.options.stroke.center" msgstr "Uprostřed" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:105 msgid "workspace.options.stroke.dashed" msgstr "Přerušovaný" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:104 msgid "workspace.options.stroke.dotted" msgstr "Tečkovaný" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:88 msgid "workspace.options.stroke.inner" msgstr "Uvnitř" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:106 msgid "workspace.options.stroke.mixed" msgstr "Smíšený" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:89 msgid "workspace.options.stroke.outer" msgstr "Vně" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:103 msgid "workspace.options.stroke.solid" msgstr "Plný" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:115 msgid "workspace.options.text-options.align-bottom" msgstr "Zarovnat dolů" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:111 msgid "workspace.options.text-options.align-middle" msgstr "Zarovnat na střed" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:107 msgid "workspace.options.text-options.align-top" msgstr "Zarovnat nahoru" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:82 msgid "workspace.options.text-options.direction-ltr" msgstr "LTR" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:87 msgid "workspace.options.text-options.direction-rtl" msgstr "RTL" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:149 msgid "workspace.options.text-options.grow-auto-height" msgstr "Automatická výška" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:145 msgid "workspace.options.text-options.grow-auto-width" msgstr "Automatická šířka" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:141 msgid "workspace.options.text-options.grow-fixed" msgstr "Pevná" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:381 msgid "workspace.options.text-options.letter-spacing" msgstr "Mezery mezi písmeny" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:364 msgid "workspace.options.text-options.line-height" msgstr "Výška řádku" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused msgid "workspace.options.text-options.lowercase" msgstr "Malá písmena" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused msgid "workspace.options.text-options.none" msgstr "Žádné" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:176 msgid "workspace.options.text-options.strikethrough" msgstr "Přeškrtnutí (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:51 msgid "workspace.options.text-options.text-align-center" msgstr "Zarovnat doprostřed (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:59 msgid "workspace.options.text-options.text-align-justify" msgstr "Zarovnat (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:47 msgid "workspace.options.text-options.text-align-left" msgstr "Zarovnat vlevo (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:55 msgid "workspace.options.text-options.text-align-right" msgstr "Zarovnat vpravo (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:189 msgid "workspace.options.text-options.title" msgstr "Text" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:188 msgid "workspace.options.text-options.title-group" msgstr "Text skupiny" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:187 msgid "workspace.options.text-options.title-selection" msgstr "Text výběru" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused msgid "workspace.options.text-options.titlecase" msgstr "První písmeno velké" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:171 msgid "workspace.options.text-options.underline" msgstr "Podtrhnout (%s)" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused msgid "workspace.options.text-options.uppercase" msgstr "Velká písmena" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:745 msgid "workspace.options.use-play-button" msgstr "Pomocí tlačítka přehrávání v záhlaví spusťte zobrazení prototypu." +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:395 msgid "workspace.options.width" msgstr "Šířka" +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:427 msgid "workspace.options.x" msgstr "X" +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:438 msgid "workspace.options.y" msgstr "Y" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:167 msgid "workspace.path.actions.add-node" msgstr "Přidat uzel (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:174 msgid "workspace.path.actions.delete-node" msgstr "Smazat uzel (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:152 msgid "workspace.path.actions.draw-nodes" msgstr "Kreslit uzly (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:189 msgid "workspace.path.actions.join-nodes" msgstr "Připojit uzly (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:204 msgid "workspace.path.actions.make-corner" msgstr "Do rohu (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:211 msgid "workspace.path.actions.make-curve" msgstr "Do křivky (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:182 msgid "workspace.path.actions.merge-nodes" msgstr "Sloučit uzly (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:159 msgid "workspace.path.actions.move-nodes" msgstr "Přesunout uzly (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:196 msgid "workspace.path.actions.separate-nodes" msgstr "Oddělit uzly (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:218 msgid "workspace.path.actions.snap-nodes" msgstr "Přichytit uzly (%s)" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:441 msgid "workspace.shape.menu.add-flex" msgstr "Přidat flexibilní rozložení" +#: src/app/main/ui/workspace/context_menu.cljs:445 msgid "workspace.shape.menu.add-grid" msgstr "Přidat rozvržení mřížky" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:193 msgid "workspace.shape.menu.back" msgstr "Poslat na konec" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:190 msgid "workspace.shape.menu.backward" msgstr "Poslat dozadu" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:139 msgid "workspace.shape.menu.copy" msgstr "Kopírovat" +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:427 msgid "workspace.shape.menu.create-annotation" msgstr "Vytvořit anotaci" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:275 msgid "workspace.shape.menu.create-artboard-from-selection" msgstr "Výběr na tabuli" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:465 msgid "workspace.shape.menu.create-component" msgstr "Vytvořit komponent" +#: src/app/main/ui/workspace/context_menu.cljs:469 msgid "workspace.shape.menu.create-multiple-components" msgstr "Vytvořte více komponent" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:142 msgid "workspace.shape.menu.cut" msgstr "Vyjmout" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:486 msgid "workspace.shape.menu.delete" msgstr "Smazat" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:391 msgid "workspace.shape.menu.delete-flow-start" msgstr "Smazat počáteční bod" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:432 msgid "workspace.shape.menu.detach-instance" msgstr "Odpojit instanci" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:431 msgid "workspace.shape.menu.detach-instances-in-bulk" msgstr "Odpojit instance" +#: src/app/main/ui/workspace/context_menu.cljs:335, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:75 msgid "workspace.shape.menu.difference" msgstr "Rozdíl" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:148 msgid "workspace.shape.menu.duplicate" msgstr "Duplikovat" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:321 msgid "workspace.shape.menu.edit" msgstr "Upravit" +#: src/app/main/ui/workspace/context_menu.cljs:341 msgid "workspace.shape.menu.exclude" msgstr "Vyloučit" +#: src/app/main/ui/workspace/context_menu.cljs:348, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:89 msgid "workspace.shape.menu.flatten" msgstr "Vyrovnat" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:208 msgid "workspace.shape.menu.flip-horizontal" msgstr "Překlopit vodorovně" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:204 msgid "workspace.shape.menu.flip-vertical" msgstr "Překlopit svisle" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:394 msgid "workspace.shape.menu.flow-start" msgstr "začátek" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:184 msgid "workspace.shape.menu.forward" msgstr "Posunout dopředu" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:187 msgid "workspace.shape.menu.front" msgstr "Posunout na začátek" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#, unused msgid "workspace.shape.menu.go-main" msgstr "Přejít na hlavní soubor komponentu" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:261 msgid "workspace.shape.menu.group" msgstr "Skupina" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:363, src/app/main/ui/workspace/sidebar/layer_item.cljs:145 msgid "workspace.shape.menu.hide" msgstr "Skrýt" +#: src/app/main/ui/workspace/context_menu.cljs:548, src/app/main/ui/workspace/main_menu.cljs:408 msgid "workspace.shape.menu.hide-ui" msgstr "Zobrazit/skrýt uživatelské rozhraní" +#: src/app/main/ui/workspace/context_menu.cljs:338 msgid "workspace.shape.menu.intersection" msgstr "Průnik" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:371, src/app/main/ui/workspace/sidebar/layer_item.cljs:153 msgid "workspace.shape.menu.lock" msgstr "Zamknout" -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:266 msgid "workspace.shape.menu.mask" msgstr "Maska" -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:145, src/app/main/ui/workspace/context_menu.cljs:545 msgid "workspace.shape.menu.paste" msgstr "Vložit" +#: src/app/main/ui/workspace/context_menu.cljs:331 msgid "workspace.shape.menu.path" msgstr "Cesta" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:432 msgid "workspace.shape.menu.remove-flex" msgstr "Odstranit flexibilní rozložení" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:436 msgid "workspace.shape.menu.reset-overrides" msgstr "Obnovit" +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:439 msgid "workspace.shape.menu.restore-main" msgstr "Obnovit hlavní komponent" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:174 msgid "workspace.shape.menu.select-layer" msgstr "Vybrat vrstvu" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:360, src/app/main/ui/workspace/sidebar/layer_item.cljs:144 msgid "workspace.shape.menu.show" msgstr "Zobrazit" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:424 msgid "workspace.shape.menu.show-in-assets" msgstr "Zobrazit na panelu prostředků" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:442, src/app/main/ui/workspace/sidebar/assets/components.cljs:586 msgid "workspace.shape.menu.show-main" msgstr "Zobrazit hlavní komponent" +#: src/app/main/ui/workspace/context_menu.cljs:221 msgid "workspace.shape.menu.thumbnail-remove" msgstr "Odebrat miniaturu" +#: src/app/main/ui/workspace/context_menu.cljs:223 msgid "workspace.shape.menu.thumbnail-set" msgstr "Nastavit jako miniaturu" +#: src/app/main/ui/workspace/context_menu.cljs:326 msgid "workspace.shape.menu.transform-to-path" msgstr "Transformovat na cestu" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:257 msgid "workspace.shape.menu.ungroup" msgstr "Zrušit seskupení" +#: src/app/main/ui/workspace/context_menu.cljs:332, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:70 msgid "workspace.shape.menu.union" msgstr "Sloučení" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:368, src/app/main/ui/workspace/sidebar/layer_item.cljs:152 msgid "workspace.shape.menu.unlock" msgstr "Odemknout" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:271 msgid "workspace.shape.menu.unmask" msgstr "Zrušit masku" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs +#, unused msgid "workspace.shape.menu.update-components-in-bulk" msgstr "Aktualizujte hlavní komponenty" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:445 msgid "workspace.shape.menu.update-main" msgstr "Aktualizujte hlavní komponent" +#: src/app/main/ui/components/tab_container.cljs:50 msgid "workspace.sidebar.collapse" msgstr "Sbalit postranní panel" +#: src/app/main/ui/workspace/sidebar/collapsable_button.cljs:26 msgid "workspace.sidebar.expand" msgstr "Rozbalit postranní panel" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/right_header.cljs:231, src/app/main/ui/workspace/right_header.cljs:232 msgid "workspace.sidebar.history" msgstr "Historie (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/sidebar/layers.cljs:522, src/app/main/ui/workspace/sidebar.cljs:100 msgid "workspace.sidebar.layers" msgstr "Vrstvy" +#: src/app/main/ui/workspace/sidebar/layers.cljs:308, src/app/main/ui/workspace/sidebar/layers.cljs:380 msgid "workspace.sidebar.layers.components" msgstr "Komponenty" +#: src/app/main/ui/workspace/sidebar/layers.cljs:305, src/app/main/ui/workspace/sidebar/layers.cljs:338 msgid "workspace.sidebar.layers.frames" msgstr "Tabule" +#: src/app/main/ui/workspace/sidebar/layers.cljs:306, src/app/main/ui/workspace/sidebar/layers.cljs:352 msgid "workspace.sidebar.layers.groups" msgstr "Skupiny" +#: src/app/main/ui/workspace/sidebar/layers.cljs:310, src/app/main/ui/workspace/sidebar/layers.cljs:408 msgid "workspace.sidebar.layers.images" msgstr "Obrázky" +#: src/app/main/ui/workspace/sidebar/layers.cljs:307, src/app/main/ui/workspace/sidebar/layers.cljs:366 msgid "workspace.sidebar.layers.masks" msgstr "Masky" +#: src/app/main/ui/workspace/sidebar/layers.cljs:289 msgid "workspace.sidebar.layers.search" msgstr "Prohledat vrstvy" +#: src/app/main/ui/workspace/sidebar/layers.cljs:311, src/app/main/ui/workspace/sidebar/layers.cljs:422 msgid "workspace.sidebar.layers.shapes" msgstr "Tvary" +#: src/app/main/ui/workspace/sidebar/layers.cljs:309, src/app/main/ui/workspace/sidebar/layers.cljs:394 msgid "workspace.sidebar.layers.texts" msgstr "Texty" -#: src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs, -#: src/app/main/ui/handoff/attributes/svg.cljs +#: src/app/main/ui/viewer/inspect/attributes/svg.cljs:56, src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs:91 msgid "workspace.sidebar.options.svg-attrs.title" msgstr "Importované atributy SVG" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs +#: src/app/main/ui/workspace/sidebar/sitemap.cljs:217 msgid "workspace.sidebar.sitemap" msgstr "Stránky" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/left_header.cljs:91 msgid "workspace.sitemap" msgstr "Mapa stránek" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/sidebar.cljs:120 msgid "workspace.toolbar.assets" msgstr "Položky" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/palette.cljs:165, src/app/main/ui/workspace/palette.cljs:166 msgid "workspace.toolbar.color-palette" msgstr "Paleta barev (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/right_header.cljs:220, src/app/main/ui/workspace/right_header.cljs:221 msgid "workspace.toolbar.comments" msgstr "Komentáře (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:180, src/app/main/ui/workspace/top_toolbar.cljs:181 msgid "workspace.toolbar.curve" msgstr "Křivka (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:160, src/app/main/ui/workspace/top_toolbar.cljs:161 msgid "workspace.toolbar.ellipse" msgstr "Elipsa (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:142, src/app/main/ui/workspace/top_toolbar.cljs:143 msgid "workspace.toolbar.frame" msgstr "Tabule (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:59, src/app/main/ui/workspace/top_toolbar.cljs:60 msgid "workspace.toolbar.image" msgstr "Obrázek (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:132, src/app/main/ui/workspace/top_toolbar.cljs:133 msgid "workspace.toolbar.move" msgstr "Přesunout (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:189, src/app/main/ui/workspace/top_toolbar.cljs:190 msgid "workspace.toolbar.path" msgstr "Cesta (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:151, src/app/main/ui/workspace/top_toolbar.cljs:152 msgid "workspace.toolbar.rect" msgstr "Obdélník (%s)" #: src/app/main/ui/workspace/left_toolbar.cljs +#, unused msgid "workspace.toolbar.shortcuts" msgstr "Zkratky (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:169, src/app/main/ui/workspace/top_toolbar.cljs:170 msgid "workspace.toolbar.text" msgstr "Text (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/palette.cljs:173, src/app/main/ui/workspace/palette.cljs:174 msgid "workspace.toolbar.text-palette" msgstr "Typografie (%s)" +#: src/app/main/ui/workspace/viewport/top_bar.cljs:38 msgid "workspace.top-bar.read-only.done" msgstr "Hotovo" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:342 msgid "workspace.undo.empty" msgstr "Zatím nedošlo k žádným změnám v historii" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:147 msgid "workspace.undo.entry.delete" msgstr "Smazané %s" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:146 msgid "workspace.undo.entry.modify" msgstr "Změněné %s" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:148 msgid "workspace.undo.entry.move" msgstr "Přesunuté objekty" +#: src/app/main/ui/workspace/sidebar/history.cljs:111 msgid "workspace.undo.entry.multiple.circle" msgstr "kruhy" +#: src/app/main/ui/workspace/sidebar/history.cljs:112 msgid "workspace.undo.entry.multiple.color" msgstr "položky barvy" +#: src/app/main/ui/workspace/sidebar/history.cljs:113 msgid "workspace.undo.entry.multiple.component" msgstr "komponenty" +#: src/app/main/ui/workspace/sidebar/history.cljs:114 msgid "workspace.undo.entry.multiple.curve" msgstr "křivky" +#: src/app/main/ui/workspace/sidebar/history.cljs:115 msgid "workspace.undo.entry.multiple.frame" msgstr "tabule" +#: src/app/main/ui/workspace/sidebar/history.cljs:116 msgid "workspace.undo.entry.multiple.group" msgstr "skupiny" +#: src/app/main/ui/workspace/sidebar/history.cljs:117 msgid "workspace.undo.entry.multiple.media" msgstr "položky grafiky" +#: src/app/main/ui/workspace/sidebar/history.cljs:118 msgid "workspace.undo.entry.multiple.multiple" msgstr "objekty" +#: src/app/main/ui/workspace/sidebar/history.cljs:119 msgid "workspace.undo.entry.multiple.page" msgstr "stránky" +#: src/app/main/ui/workspace/sidebar/history.cljs:120 msgid "workspace.undo.entry.multiple.path" msgstr "cesty" +#: src/app/main/ui/workspace/sidebar/history.cljs:121 msgid "workspace.undo.entry.multiple.rect" msgstr "obdélníky" +#: src/app/main/ui/workspace/sidebar/history.cljs:122 msgid "workspace.undo.entry.multiple.shape" msgstr "tvary" +#: src/app/main/ui/workspace/sidebar/history.cljs:123 msgid "workspace.undo.entry.multiple.text" msgstr "texty" +#: src/app/main/ui/workspace/sidebar/history.cljs:124 msgid "workspace.undo.entry.multiple.typography" msgstr "položky typografie" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:145 msgid "workspace.undo.entry.new" msgstr "Nový %s" +#: src/app/main/ui/workspace/sidebar/history.cljs:125 msgid "workspace.undo.entry.single.circle" msgstr "kruh" +#: src/app/main/ui/workspace/sidebar/history.cljs:126 msgid "workspace.undo.entry.single.color" msgstr "položka barvy" +#: src/app/main/ui/workspace/sidebar/history.cljs:127 msgid "workspace.undo.entry.single.component" msgstr "komponent" +#: src/app/main/ui/workspace/sidebar/history.cljs:128 msgid "workspace.undo.entry.single.curve" msgstr "křivka" +#: src/app/main/ui/workspace/sidebar/history.cljs:129 msgid "workspace.undo.entry.single.frame" msgstr "tabule" +#: src/app/main/ui/workspace/sidebar/history.cljs:130 msgid "workspace.undo.entry.single.group" msgstr "skupina" +#: src/app/main/ui/workspace/sidebar/history.cljs:131 msgid "workspace.undo.entry.single.image" msgstr "obrázek" +#: src/app/main/ui/workspace/sidebar/history.cljs:132 msgid "workspace.undo.entry.single.media" msgstr "položka grafiky" +#: src/app/main/ui/workspace/sidebar/history.cljs:133 msgid "workspace.undo.entry.single.multiple" msgstr "objekt" +#: src/app/main/ui/workspace/sidebar/history.cljs:134 msgid "workspace.undo.entry.single.page" msgstr "stránka" +#: src/app/main/ui/workspace/sidebar/history.cljs:135 msgid "workspace.undo.entry.single.path" msgstr "cesta" +#: src/app/main/ui/workspace/sidebar/history.cljs:136 msgid "workspace.undo.entry.single.rect" msgstr "obdélník" +#: src/app/main/ui/workspace/sidebar/history.cljs:137 msgid "workspace.undo.entry.single.shape" msgstr "tvar" +#: src/app/main/ui/workspace/sidebar/history.cljs:138 msgid "workspace.undo.entry.single.text" msgstr "text" +#: src/app/main/ui/workspace/sidebar/history.cljs:139 msgid "workspace.undo.entry.single.typography" msgstr "položka typografie" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:149 msgid "workspace.undo.entry.unknown" msgstr "Operace nad %s" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:335 msgid "workspace.undo.title" msgstr "Historie" -#: src/app/main/data/workspace/libraries.cljs +#: src/app/main/data/workspace/libraries.cljs:1094 msgid "workspace.updates.dismiss" msgstr "Zrušit" -#: src/app/main/data/workspace/libraries.cljs +#: src/app/main/data/workspace/libraries.cljs:1092 msgid "workspace.updates.more-info" msgstr "Více informací" -#: src/app/main/data/workspace/libraries.cljs +#: src/app/main/data/workspace/libraries.cljs:1090 msgid "workspace.updates.there-are-updates" msgstr "Ve sdílených knihovnách jsou aktualizace" -#: src/app/main/data/workspace/libraries.cljs +#: src/app/main/data/workspace/libraries.cljs:1097 msgid "workspace.updates.update" msgstr "Aktualizace" +#, unused msgid "workspace.viewport.click-to-close-path" msgstr "Kliknutím zavřete cestu" diff --git a/frontend/translations/da.po b/frontend/translations/da.po index d90f002d52..a3d896d48b 100644 --- a/frontend/translations/da.po +++ b/frontend/translations/da.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "PO-Revision-Date: 2024-06-17 08:07+0000\n" "Last-Translator: Anonymous \n" -"Language-Team: Danish \n" +"Language-Team: Danish " +"\n" "Language: da\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" @@ -11,171 +11,173 @@ msgstr "" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 5.6-dev\n" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:151, src/app/main/ui/viewer/login.cljs:104 msgid "auth.already-have-account" msgstr "Har du allerede en konto?" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:299 msgid "auth.check-your-email" msgstr "" "Tjek din mail og klik på linket for at bekræfte og starte med at bruge " "Penpot." -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:78 msgid "auth.confirm-password" msgstr "Bekræft adgangskode" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/register.cljs:163 msgid "auth.create-demo-account" msgstr "Lav demokonto" #: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#, unused msgid "auth.create-demo-profile" msgstr "Vil du bare prøve det?" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/login.cljs:43 msgid "auth.demo-warning" msgstr "" "Det her er en DEMO service, BRUG IKKE for rigtigt arbejde, projekterne vil " "blive slettet periodevis." -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:189, src/app/main/ui/viewer/login.cljs:90 msgid "auth.forgot-password" msgstr "Glemt adgangskode?" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:254 msgid "auth.fullname" msgstr "Fulde Navn" -#: src/app/main/ui/auth/register.cljs -#, fuzzy +#: src/app/main/ui/auth/register.cljs:155, src/app/main/ui/viewer/login.cljs:107 msgid "auth.login-here" msgstr "Log på her" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:195 msgid "auth.login-submit" msgstr "Log på" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:222 msgid "auth.login-with-github-submit" msgstr "Github" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:228 msgid "auth.login-with-gitlab-submit" msgstr "Gitlab" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:216 msgid "auth.login-with-google-submit" msgstr "Google" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:201 msgid "auth.login-with-ldap-submit" msgstr "LDAP" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:234, src/app/main/ui/auth/login.cljs:255 msgid "auth.login-with-oidc-submit" msgstr "OpenID" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:71 msgid "auth.new-password" msgstr "Indtast et nyt kodeord" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:42 msgid "auth.notifications.invalid-token-error" msgstr "Genopretningspoletten er ugyldig." -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:46 msgid "auth.notifications.password-changed-successfully" msgstr "Adgangskoden er blevet ændret" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:57 msgid "auth.notifications.profile-not-verified" msgstr "Profilen er ikke bekræftet, venligt verificer profilen før du går videre." -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:40 msgid "auth.notifications.recovery-token-sent" msgstr "Gendannelseslink for adgangskoden er sendt til din indbakke." -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:47 msgid "auth.notifications.team-invitation-accepted" msgstr "Tilsluttet teamet med succes" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:179, src/app/main/ui/auth/register.cljs:115 msgid "auth.password" msgstr "Adgangskode" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:114 msgid "auth.password-length-hint" msgstr "Mindst 8 karakterer" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:88 msgid "auth.recovery-request-submit" msgstr "Gendan Adgangskode" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:101 msgid "auth.recovery-request-subtitle" msgstr "Vi sender dig en mail med instruktioner" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:100 msgid "auth.recovery-request-title" msgstr "Glemt adgangskode?" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:82 msgid "auth.recovery-submit" msgstr "Skift din adgangskode" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:298, src/app/main/ui/viewer/login.cljs:93 msgid "auth.register" msgstr "Ingen konto?" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:302, src/app/main/ui/auth/register.cljs:121, src/app/main/ui/auth/register.cljs:263, src/app/main/ui/viewer/login.cljs:97 msgid "auth.register-submit" msgstr "Opret en konto" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:140 msgid "auth.register-title" msgstr "Opret en konto" #: src/app/main/ui/auth.cljs +#, unused msgid "auth.sidebar-tagline" msgstr "Open-source løsningen for design og prototyping." -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:297 msgid "auth.verification-email-sent" msgstr "Vi har sendt en bekræftelsesmail til" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:291, src/app/main/ui/workspace/main_menu.cljs:572 msgid "dashboard.add-shared" msgstr "Tilføj som Delt Bibliotek" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:75 msgid "dashboard.change-email" msgstr "Skift email" -#: src/app/main/data/dashboard.cljs, src/app/main/data/dashboard.cljs +#: src/app/main/data/dashboard.cljs:762, src/app/main/data/dashboard.cljs:983 msgid "dashboard.copy-suffix" msgstr "(kopi)" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:338 msgid "dashboard.create-new-team" msgstr "Opret nyt team" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/components/context_menu_a11y.cljs:256, src/app/main/ui/dashboard/sidebar.cljs:646 msgid "dashboard.default-team-name" msgstr "Dit Penpot" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:571 msgid "dashboard.delete-team" msgstr "Slet team" -#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:276, src/app/main/ui/dashboard/project_menu.cljs:90 msgid "dashboard.duplicate" msgstr "Dublikér" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:240 msgid "dashboard.duplicate-multi" msgstr "Dublikér %s filer" +#: src/app/main/ui/dashboard/fonts.cljs:170 #, markdown msgid "dashboard.fonts.hero-text1" msgstr "" @@ -185,6 +187,7 @@ msgstr "" "som en **enkelt skrifttypefamilie**. Du kan uploade skrifttyper med " "følgende formater: **TTF, OTF og WOFF** (kun én er nødvendig)." +#: src/app/main/ui/dashboard/fonts.cljs:182 #, markdown msgid "dashboard.fonts.hero-text2" msgstr "" @@ -193,248 +196,261 @@ msgstr "" "Terms of Service] (https://penpot.app/terms.html). Du kan også læse om " "[font licensing](2)." -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:109 msgid "dashboard.invite-profile" msgstr "Invitér til team" -#: src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:547, src/app/main/ui/dashboard/sidebar.cljs:556, src/app/main/ui/dashboard/sidebar.cljs:563, src/app/main/ui/dashboard/team.cljs:312 msgid "dashboard.leave-team" msgstr "Forlad team" -#: src/app/main/ui/dashboard/libraries.cljs +#: src/app/main/ui/dashboard/libraries.cljs:53 msgid "dashboard.libraries-title" msgstr "Delte Biblioteker" -#: src/app/main/ui/dashboard/grid.cljs +#: src/app/main/ui/dashboard/placeholder.cljs:45 msgid "dashboard.loading-files" msgstr "indlæser dine filer…" -#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:281, src/app/main/ui/dashboard/project_menu.cljs:100 msgid "dashboard.move-to" msgstr "Flyt til" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:245 msgid "dashboard.move-to-multi" msgstr "Flyt %s filer til" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:226 msgid "dashboard.move-to-other-team" msgstr "Flyt til andet team" -#: src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/files.cljs +#: src/app/main/ui/dashboard/files.cljs:105, src/app/main/ui/dashboard/projects.cljs:252, src/app/main/ui/dashboard/projects.cljs:253 msgid "dashboard.new-file" msgstr "+ Ny Fil" -#: src/app/main/data/dashboard.cljs +#: src/app/main/data/dashboard.cljs:958, src/app/main/data/dashboard.cljs:1181 msgid "dashboard.new-file-prefix" msgstr "Ny Fil" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:55 msgid "dashboard.new-project" msgstr "+ Nyt projekt" -#: src/app/main/data/dashboard.cljs +#: src/app/main/data/dashboard.cljs:726, src/app/main/data/dashboard.cljs:1184 msgid "dashboard.new-project-prefix" msgstr "Nyt Projekt" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:60 msgid "dashboard.no-matches-for" msgstr "Intet match fundet for “%s“" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:827 msgid "dashboard.no-projects-placeholder" msgstr "Fastgjorte projekter bliver vist her" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:33 msgid "dashboard.notifications.email-changed-successfully" msgstr "Din email-adresse er blevet opdateret med succes" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:27 msgid "dashboard.notifications.email-verified-successfully" msgstr "Din email-adresse er blevet bekræftet med succes" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:37 msgid "dashboard.notifications.password-saved" msgstr "Adgangskode gemt med succes!" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1081 msgid "dashboard.num-of-members" msgstr "%s medlemmer" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:267 msgid "dashboard.open-in-new-tab" msgstr "Åben fil i en ny fane" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:106, src/app/main/ui/settings/password.cljs:119 msgid "dashboard.password-change" msgstr "Skift adgangskode" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/pin_button.cljs:24, src/app/main/ui/dashboard/project_menu.cljs:95 msgid "dashboard.pin-unpin" msgstr "Fastgør/Løsne" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:51 msgid "dashboard.projects-title" msgstr "Projekter" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:86 msgid "dashboard.remove-account" msgstr "Vil du slette din konto?" #: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "dashboard.remove-shared" msgstr "Fjern som Delt Bibliotek" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:246, src/app/main/ui/dashboard/sidebar.cljs:247 msgid "dashboard.search-placeholder" msgstr "Søg…" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:55 msgid "dashboard.searching-for" msgstr "Søger efter “%s“…" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:56 msgid "dashboard.select-ui-language" msgstr "Vælg UI sprog" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:63 msgid "dashboard.select-ui-theme" msgstr "Vælg tema" -#: src/app/main/ui/dashboard/grid.cljs +#: src/app/main/ui/dashboard/projects.cljs:282 msgid "dashboard.show-all-files" msgstr "Vis alle filer" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:96 msgid "dashboard.success-delete-file" msgstr "Din fil er blevet slettet med succes" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:59 msgid "dashboard.success-delete-project" msgstr "Dit projekt er blevet slettet med succes" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:91 msgid "dashboard.success-duplicate-file" msgstr "Din fil er blevet dublikeret med succes" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:33 msgid "dashboard.success-duplicate-project" msgstr "Dit projekt er blevet dublikeret med succes" -#: src/app/main/ui/dashboard/grid.cljs, src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:130, src/app/main/ui/dashboard/grid.cljs:558, src/app/main/ui/dashboard/sidebar.cljs:152 msgid "dashboard.success-move-file" msgstr "Din fil er blevet flyttet med succes" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:129 msgid "dashboard.success-move-files" msgstr "Dine filer er blevet flyttet med succes" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:54 msgid "dashboard.success-move-project" msgstr "Dit projekt er blevet flyttet med succes" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1052 msgid "dashboard.team-info" msgstr "Team info" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1070 msgid "dashboard.team-members" msgstr "Medlemmer" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1085 msgid "dashboard.team-projects" msgstr "Team projekter" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:61 msgid "dashboard.theme-change" msgstr "UI tema" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:42 msgid "dashboard.title-search" msgstr "Søgeresultater" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:50 msgid "dashboard.type-something" msgstr "Skriv for at søge i resultater" -#: src/app/main/ui/settings/profile.cljs, src/app/main/ui/settings/password.cljs, src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:71 msgid "dashboard.update-settings" msgstr "Opdater indstillinger" -#: src/app/main/ui/settings.cljs +#: src/app/main/ui/settings.cljs:31 msgid "dashboard.your-account-title" msgstr "Din konto" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:70 msgid "dashboard.your-email" msgstr "Email" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:62 msgid "dashboard.your-name" msgstr "Dit navn" -#: src/app/main/ui/dashboard/search.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/libraries.cljs, src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:38, src/app/main/ui/dashboard/fonts.cljs:33, src/app/main/ui/dashboard/libraries.cljs:42, src/app/main/ui/dashboard/projects.cljs:318, src/app/main/ui/dashboard/search.cljs:30, src/app/main/ui/dashboard/sidebar.cljs:312, src/app/main/ui/dashboard/team.cljs:495, src/app/main/ui/dashboard/team.cljs:729, src/app/main/ui/dashboard/team.cljs:991, src/app/main/ui/dashboard/team.cljs:1038 msgid "dashboard.your-penpot" msgstr "Dit Penpot" -#: src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:36, src/app/main/ui/workspace/plugins.cljs:246 msgid "ds.confirm-cancel" msgstr "Fortryd" -#: src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:37, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:141 msgid "ds.confirm-ok" msgstr "Ok" -#: src/app/main/ui/confirm.cljs, src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:35, src/app/main/ui/confirm.cljs:39 msgid "ds.confirm-title" msgstr "Er du sikker?" -#: src/app/main/data/workspace.cljs +#: src/app/main/data/workspace.cljs:1598 msgid "errors.clipboard-not-implemented" msgstr "Din browser kan ikke gøre denne operation" +#, unused msgid "labels.custom-fonts" msgstr "Brugerdefinerede skrifttyper" +#: src/app/main/ui/dashboard/fonts.cljs:412 msgid "labels.font-family" msgstr "Skrifttypefamilie" +#, unused msgid "labels.font-providers" msgstr "Skrifttype udbydere" +#: src/app/main/ui/dashboard/fonts.cljs:52, src/app/main/ui/dashboard/sidebar.cljs:811 msgid "labels.fonts" msgstr "Skrifttyper" +#: src/app/main/ui/auth/recovery_request.cljs:110, src/app/main/ui/auth/register.cljs:285, src/app/main/ui/viewer/login.cljs:117 msgid "labels.go-back" msgstr "Gå tilbage!" +#: src/app/main/ui/dashboard/fonts.cljs:410 msgid "labels.installed-fonts" msgstr "Installeret skrifttyper" +#: src/app/main/ui/dashboard/fonts.cljs:415 msgid "labels.search-font" msgstr "Søg efter skrifttype" +#: src/app/main/ui/dashboard/fonts.cljs:241 msgid "labels.upload" msgstr "Upload" +#: src/app/main/ui/dashboard/fonts.cljs:169 msgid "labels.upload-custom-fonts" msgstr "Upload brugerdefinerede skrifttyper" +#: src/app/main/ui/dashboard/fonts.cljs:240 msgid "labels.uploading" msgstr "Uploader..." +#: src/app/main/ui/dashboard/fonts.cljs:331 msgid "modals.delete-font.message" msgstr "" "Er du sikker på, at du vil slette denne skrifttype? Den vil ikke indlæse, " "hvis den bliver brugt i en fil." +#: src/app/main/ui/dashboard/fonts.cljs:330 msgid "modals.delete-font.title" msgstr "Sletter skrifttype" -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:37 msgid "title.dashboard.font-providers" msgstr "Skrifttype Udbydere - %s - Penpot" -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:36 msgid "title.dashboard.fonts" msgstr "Skrifttyper - %s - Penpot" diff --git a/frontend/translations/de.po b/frontend/translations/de.po index 48214d1fa3..1f12c8fe53 100644 --- a/frontend/translations/de.po +++ b/frontend/translations/de.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "PO-Revision-Date: 2024-06-17 08:07+0000\n" "Last-Translator: Anonymous \n" -"Language-Team: German \n" +"Language-Team: German " +"\n" "Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" @@ -11,2082 +11,2275 @@ msgstr "" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 5.6-dev\n" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:151, src/app/main/ui/viewer/login.cljs:104 msgid "auth.already-have-account" msgstr "Sie haben schon ein Konto?" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:299 msgid "auth.check-your-email" msgstr "" "Überprüfen Sie Ihre E-Mail und klicken Sie auf den Link, um sich zu " "verifizieren und Penpot zu nutzen." -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:78 msgid "auth.confirm-password" msgstr "Passwort bestätigen" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/register.cljs:163 msgid "auth.create-demo-account" msgstr "Ein Demo-Konto erstellen" #: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#, unused msgid "auth.create-demo-profile" msgstr "Wollen Sie es einfach ausprobieren?" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/login.cljs:43 msgid "auth.demo-warning" msgstr "" -"Das ist eine DEMO-VERSION, verwenden Sie es NICHT zum Arbeiten, die Projekte " -"werden regelmäßig gelöscht." +"Das ist eine DEMO-VERSION, verwenden Sie es NICHT zum Arbeiten, die " +"Projekte werden regelmäßig gelöscht." -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:189, src/app/main/ui/viewer/login.cljs:90 msgid "auth.forgot-password" msgstr "Passwort vergessen?" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:254 msgid "auth.fullname" msgstr "Vollständiger Name" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:282 msgid "auth.login-account-title" msgstr "In mein Konto einloggen" -#: src/app/main/ui/auth/register.cljs -#, fuzzy +#: src/app/main/ui/auth/register.cljs:155, src/app/main/ui/viewer/login.cljs:107 msgid "auth.login-here" msgstr "Hier anmelden" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:195 msgid "auth.login-submit" msgstr "Anmelden" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:285 msgid "auth.login-tagline" msgstr "" -"Penpot ist das kostenlose Open-Source-Design-Tool für die Zusammenarbeit von " -"Design und Code" +"Penpot ist das kostenlose Open-Source-Design-Tool für die Zusammenarbeit " +"von Design und Code" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:222 msgid "auth.login-with-github-submit" msgstr "GitHub" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:228 msgid "auth.login-with-gitlab-submit" msgstr "GitLab" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:216 msgid "auth.login-with-google-submit" msgstr "Google" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:201 msgid "auth.login-with-ldap-submit" msgstr "LDAP" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:234, src/app/main/ui/auth/login.cljs:255 msgid "auth.login-with-oidc-submit" msgstr "OpenID" -#: src/app/main/ui/settings/team-form.cljs, src/app/main/ui/auth/register.cljs, -#: src/app/main/ui/dashboard/team_form.cljs, -#: src/app/main/ui/onboarding/team_choice.cljs, -#: src/app/main/ui/settings/access_tokens.cljs, -#: src/app/main/ui/settings/feedback.cljs, -#: src/app/main/ui/settings/profile.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/auth/register.cljs:217, src/app/main/ui/dashboard/team_form.cljs:76, src/app/main/ui/onboarding/team_choice.cljs:180, src/app/main/ui/settings/access_tokens.cljs:66, src/app/main/ui/settings/feedback.cljs:34, src/app/main/ui/settings/profile.cljs:45, src/app/main/ui/workspace/sidebar/assets/groups.cljs:108 msgid "auth.name.not-all-space" msgstr "Der Name darf keine Leerzeichen enthalten." -#: src/app/main/ui/auth/register.cljs, -#: src/app/main/ui/dashboard/team_form.cljs, -#: src/app/main/ui/onboarding/team_choice.cljs, -#: src/app/main/ui/settings/access_tokens.cljs, -#: src/app/main/ui/settings/feedback.cljs, -#: src/app/main/ui/settings/profile.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/auth/register.cljs:218, src/app/main/ui/dashboard/team_form.cljs:77, src/app/main/ui/onboarding/team_choice.cljs:181, src/app/main/ui/settings/access_tokens.cljs:67, src/app/main/ui/settings/feedback.cljs:33, src/app/main/ui/settings/profile.cljs:44, src/app/main/ui/workspace/sidebar/assets/groups.cljs:109 msgid "auth.name.too-long" msgstr "Der Name darf höchstens 250 Zeichen lang sein." -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:71 msgid "auth.new-password" msgstr "Geben Sie ein neues Passwort ein" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:42 msgid "auth.notifications.invalid-token-error" msgstr "Der Wiederherstellungscode ist ungültig." -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:46 msgid "auth.notifications.password-changed-successfully" msgstr "Passwort erfolgreich geändert" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:57 msgid "auth.notifications.profile-not-verified" msgstr "" "Profil ist nicht verifiziert. Bevor Sie fortfahren, verifizieren Sie bitte " "das Profil." -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:40 msgid "auth.notifications.recovery-token-sent" -msgstr "" -"Der Link zur Wiederherstellung des Passworts wurde an Ihre E-Mail gesendet." +msgstr "Der Link zur Wiederherstellung des Passworts wurde an Ihre E-Mail gesendet." -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:47 msgid "auth.notifications.team-invitation-accepted" msgstr "Sie sind dem Team beigetreten" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:179, src/app/main/ui/auth/register.cljs:115 msgid "auth.password" msgstr "Passwort" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:114 msgid "auth.password-length-hint" msgstr "Mindestens 8 Zeichen" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/recovery.cljs:61, src/app/main/ui/auth/recovery.cljs:62, src/app/main/ui/auth/register.cljs:81, src/app/main/ui/settings/password.cljs:75, src/app/main/ui/settings/password.cljs:76, src/app/main/ui/settings/password.cljs:77 msgid "auth.password-not-empty" msgstr "Das Passwort darf keine Leerzeichen enthalten." +#: src/app/main/ui/auth.cljs:41 msgid "auth.privacy-policy" msgstr "Datenschutzerklärung" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:88 msgid "auth.recovery-request-submit" msgstr "Passwort wiederherstellen" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:101 msgid "auth.recovery-request-subtitle" msgstr "Wir senden Ihnen eine E-Mail mit Anweisungen zu" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:100 msgid "auth.recovery-request-title" msgstr "Passwort vergessen?" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:82 msgid "auth.recovery-submit" msgstr "Passwort ändern" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:298, src/app/main/ui/viewer/login.cljs:93 msgid "auth.register" msgstr "Noch kein Konto?" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:302, src/app/main/ui/auth/register.cljs:121, src/app/main/ui/auth/register.cljs:263, src/app/main/ui/viewer/login.cljs:97 msgid "auth.register-submit" msgstr "Konto erstellen" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:140 msgid "auth.register-title" msgstr "Konto erstellen" #: src/app/main/ui/auth.cljs +#, unused msgid "auth.sidebar-tagline" msgstr "Die Open-Source-Lösung für Design und Prototyping." +#: src/app/main/ui/auth.cljs:33, src/app/main/ui/dashboard/sidebar.cljs:1022, src/app/main/ui/workspace/main_menu.cljs:150 msgid "auth.terms-of-service" msgstr "Nutzungsbedingungen" -#: src/app/main/ui/auth/register.cljs +#, unused msgid "auth.terms-privacy-agreement" msgstr "" "Wenn Sie ein neues Konto erstellen, stimmen Sie unseren Nutzungsbedingungen " "und Datenschutzrichtlinien zu." -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:297 msgid "auth.verification-email-sent" msgstr "Wir haben eine Bestätigungs-E-Mail gesendet an" #: src/app/main/ui/onboarding/questions.cljs +#, unused msgid "branding-illustrations-marketing-pieces" msgstr "...Branding, Illustrationen, Marketingmaterialien, usw." +#: src/app/main/ui/workspace/libraries.cljs:228 msgid "common.publish" msgstr "Veröffentlichen" +#: src/app/main/ui/viewer/share_link.cljs:304, src/app/main/ui/viewer/share_link.cljs:314 msgid "common.share-link.all-users" msgstr "Alle Penpot-Benutzer" +#: src/app/main/ui/viewer/share_link.cljs:198 msgid "common.share-link.confirm-deletion-link-description" msgstr "" "Sind Sie sicher, dass Sie diesen Link löschen möchten? Wenn Sie das tun, " "wird er für niemanden mehr verfügbar sein" +#: src/app/main/ui/viewer/share_link.cljs:259, src/app/main/ui/viewer/share_link.cljs:289 msgid "common.share-link.current-tag" msgstr "(aktuell)" +#: src/app/main/ui/viewer/share_link.cljs:207, src/app/main/ui/viewer/share_link.cljs:214 msgid "common.share-link.destroy-link" msgstr "Link entfernen" +#: src/app/main/ui/viewer/share_link.cljs:221 msgid "common.share-link.get-link" msgstr "Link erstellen" +#: src/app/main/ui/viewer/share_link.cljs:139 msgid "common.share-link.link-copied-success" msgstr "Link wurde erfolgreich kopiert" +#: src/app/main/ui/viewer/share_link.cljs:231 msgid "common.share-link.manage-ops" msgstr "Verwalten von Berechtigungen" +#: src/app/main/ui/viewer/share_link.cljs:277 msgid "common.share-link.page-shared" msgid_plural "common.share-link.page-shared" msgstr[0] "1 Seite freigegeben" msgstr[1] "%s Seiten freigegeben" +#: src/app/main/ui/viewer/share_link.cljs:298 msgid "common.share-link.permissions-can-comment" msgstr "Können kommentieren" +#: src/app/main/ui/viewer/share_link.cljs:308 msgid "common.share-link.permissions-can-inspect" msgstr "Können den Code ansehen" +#: src/app/main/ui/viewer/share_link.cljs:193 msgid "common.share-link.permissions-hint" msgstr "Jeder mit dem Link kann auf die Datei zugreifen" +#: src/app/main/ui/viewer/share_link.cljs:241 msgid "common.share-link.permissions-pages" msgstr "Geteilte Seiten" +#: src/app/main/ui/viewer/share_link.cljs:183 msgid "common.share-link.placeholder" msgstr "Link zum Teilen wird hier erscheinen" +#: src/app/main/ui/viewer/share_link.cljs:303, src/app/main/ui/viewer/share_link.cljs:313 msgid "common.share-link.team-members" msgstr "Nur Teammitglieder" +#: src/app/main/ui/viewer/share_link.cljs:171 msgid "common.share-link.title" msgstr "Prototypen teilen" +#: src/app/main/ui/viewer/share_link.cljs:269 msgid "common.share-link.view-all" msgstr "Alle auswählen" +#: src/app/main/ui/workspace/libraries.cljs:224 msgid "common.unpublish" msgstr "Veröffentlichung aufheben" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:85 msgid "dasboard.team-hero.management" msgstr "Teammanagement" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:84 msgid "dasboard.team-hero.text" msgstr "" "Penpot ist für Teams gedacht. Um gemeinsam an Projekten und Dateien zu " "arbeiten, laden Sie Mitglieder ein" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:82 msgid "dasboard.team-hero.title" msgstr "Teamwork!" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.tutorial-hero.info" msgstr "" "Lernen Sie die Grundlagen von Penpot und haben Sie Spaß mit diesem " "praktischen Tutorial." #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.tutorial-hero.start" msgstr "Tutorial starten" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.tutorial-hero.title" msgstr "Praktisches Tutorial" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.walkthrough-hero.info" -msgstr "" -"Erkunden Sie Penpot um mehr über die wichtigsten Funktionen zu erfahren." +msgstr "Erkunden Sie Penpot um mehr über die wichtigsten Funktionen zu erfahren." #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.walkthrough-hero.start" msgstr "Tour starten" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.walkthrough-hero.title" msgstr "Benutzeroberfläche erkunden" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:115 msgid "dashboard.access-tokens.copied-success" msgstr "Token kopiert" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:202 msgid "dashboard.access-tokens.create" msgstr "Neues Token generieren" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:76 msgid "dashboard.access-tokens.create.success" msgstr "Der Zugangstoken wurde erfolgreich erstellt." -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:300 msgid "dashboard.access-tokens.empty.add-one" msgstr "" "Drücken Sie die Schaltfläche \"Neuen Token generieren\", um einen zu " "generieren." -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:299 msgid "dashboard.access-tokens.empty.no-access-tokens" msgstr "Du hast bisher keine Token." -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:53 msgid "dashboard.access-tokens.errors-required-name" msgstr "Der Name ist erforderlich" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:147 msgid "dashboard.access-tokens.expiration-180-days" msgstr "180 Tage" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:144 msgid "dashboard.access-tokens.expiration-30-days" msgstr "30 Tage" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:145 msgid "dashboard.access-tokens.expiration-60-days" msgstr "60 Tage" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:146 msgid "dashboard.access-tokens.expiration-90-days" msgstr "90 Tage" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:143 msgid "dashboard.access-tokens.expiration-never" msgstr "Nie" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:282 msgid "dashboard.access-tokens.expired-on" msgstr "Abgelaufen am %s" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:283 msgid "dashboard.access-tokens.expires-on" msgstr "Läuft ab am %s" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:281 msgid "dashboard.access-tokens.no-expiration" msgstr "Kein Ablaufdatum" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:197 msgid "dashboard.access-tokens.personal" msgstr "Persönliche Zugangstoken" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:198 msgid "dashboard.access-tokens.personal.description" msgstr "" -"Persönliche Zugangstoken stellen eine Alternative zu unserem Login/Passwort-" -"Authentifizierungssystem dar und können verwendet werden, um einer Anwendung " -"den Zugriff auf die interne Penpot-API zu ermöglichen" +"Persönliche Zugangstoken stellen eine Alternative zu unserem " +"Login/Passwort-Authentifizierungssystem dar und können verwendet werden, um " +"einer Anwendung den Zugriff auf die interne Penpot-API zu ermöglichen" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:154 msgid "dashboard.access-tokens.token-will-expire" msgstr "Der Token läuft am %s ab" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:155 msgid "dashboard.access-tokens.token-will-not-expire" msgstr "Der Token hat kein Ablaufdatum" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:291, src/app/main/ui/workspace/main_menu.cljs:572 msgid "dashboard.add-shared" msgstr "Hinzufügen als gemeinsam genutzte Bibliothek" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:75 msgid "dashboard.change-email" msgstr "E-Mail-Adresse ändern" -#: src/app/main/data/dashboard.cljs, src/app/main/data/dashboard.cljs +#: src/app/main/data/dashboard.cljs:762, src/app/main/data/dashboard.cljs:983 msgid "dashboard.copy-suffix" msgstr "(Kopie)" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:338 msgid "dashboard.create-new-team" msgstr "Neues Team erstellen" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/components/context_menu_a11y.cljs:256, src/app/main/ui/dashboard/sidebar.cljs:646 msgid "dashboard.default-team-name" msgstr "Ihr Penpot" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:571 msgid "dashboard.delete-team" msgstr "Team löschen" +#: src/app/main/ui/dashboard/file_menu.cljs:296, src/app/main/ui/workspace/main_menu.cljs:589 msgid "dashboard.download-binary-file" msgstr "Penpot-Datei herunterladen (.penpot)" +#: src/app/main/ui/dashboard/file_menu.cljs:300, src/app/main/ui/workspace/main_menu.cljs:597 msgid "dashboard.download-standard-file" msgstr "Standarddatei herunterladen (.svg + .json)" -#: src/app/main/ui/dashboard/project_menu.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:276, src/app/main/ui/dashboard/project_menu.cljs:90 msgid "dashboard.duplicate" msgstr "Duplizieren" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:240 msgid "dashboard.duplicate-multi" msgstr "%s Dateien duplizieren" -#: src/app/main/ui/dashboard/grid.cljs -#, fuzzy +#: src/app/main/ui/dashboard/placeholder.cljs:32 +#, markdown msgid "dashboard.empty-placeholder-drafts" msgstr "" "Zu Bibliotheken hinzugefügte Dateien werden hier angezeigt. Versuchen Sie, " "Ihre Dateien zu teilen oder fügen Sie sie aus unseren [Bibliotheken & " "Vorlagen](https://penpot.app/libraries-Vorlagen.html) hinzu." +#: src/app/main/ui/dashboard/file_menu.cljs:249 msgid "dashboard.export-binary-multi" msgstr "%s Penpot-Dateien herunterladen (.penpot)" +#: src/app/main/ui/workspace/main_menu.cljs:605 msgid "dashboard.export-frames" msgstr "Zeichenflächen als PDF exportieren" -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:201 msgid "dashboard.export-frames.title" msgstr "Als PDF exportieren" +#, unused msgid "dashboard.export-multi" msgstr "%s Dateien exportieren" -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:109 msgid "dashboard.export-multiple.selected" msgstr "%s von %s Elementen ausgewählt" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:578 msgid "dashboard.export-shapes" msgstr "Exportieren" -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:180 msgid "dashboard.export-shapes.how-to" msgstr "" "Sie können den Elementen über die Designeigenschaften (unten in der rechten " "Seitenleiste) Exporteinstellungen hinzufügen." -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:184 msgid "dashboard.export-shapes.how-to-link" msgstr "Informationen zum Festlegen von Exporten bei Penpot." -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:179 msgid "dashboard.export-shapes.no-elements" msgstr "Es gibt keine Elemente mit Exporteinstellungen." -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:190 msgid "dashboard.export-shapes.title" msgstr "Auswahl exportieren" +#: src/app/main/ui/dashboard/file_menu.cljs:252 msgid "dashboard.export-standard-multi" msgstr "%s Standarddateien herunterladen (.svg + .json)" +#: src/app/main/ui/export.cljs:427 msgid "dashboard.export.detail" msgstr "* kann Komponenten, Grafiken, Farben und/oder Textstile enthalten." +#: src/app/main/ui/export.cljs:426 msgid "dashboard.export.explain" msgstr "" "Eine oder mehrere Dateien, die Sie exportieren möchten, verwenden geteilte " -"Bibliotheken. Was möchten Sie mit den Assets* aus diesen Bibliotheken machen?" +"Bibliotheken. Was möchten Sie mit den Assets* aus diesen Bibliotheken " +"machen?" +#: src/app/main/ui/export.cljs:435 msgid "dashboard.export.options.all.message" msgstr "" -"Dateien mit geteilten Bibliotheken werden exportiert, und ihre Verknüpfungen " -"bleiben erhalten." +"Dateien mit geteilten Bibliotheken werden exportiert, und ihre " +"Verknüpfungen bleiben erhalten." +#: src/app/main/ui/export.cljs:436 msgid "dashboard.export.options.all.title" msgstr "Geteilte Bibliotheken exportieren" +#: src/app/main/ui/export.cljs:437 msgid "dashboard.export.options.detach.message" msgstr "" "Geteilte Bibliotheken werden nicht exportiert und der Bibliothek werden " "keine Assets hinzugefügt. " +#: src/app/main/ui/export.cljs:438 msgid "dashboard.export.options.detach.title" msgstr "Assets aus geteilten Bibliotheken als gewöhnliche Objekte behandeln" +#: src/app/main/ui/export.cljs:439 msgid "dashboard.export.options.merge.message" msgstr "" "Ihre Datei wird exportiert, und alle externen Assets werden der " "Dateibibliothek hinzugefügt." +#: src/app/main/ui/export.cljs:440 msgid "dashboard.export.options.merge.title" msgstr "Assets aus geteilten Bibliotheken in die Dateibibliothek aufnehmen" +#: src/app/main/ui/export.cljs:418 msgid "dashboard.export.title" msgstr "Dateien exportieren" +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:309 msgid "dashboard.fonts.deleted-placeholder" msgstr "Schriftart gelöscht" -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:206 msgid "dashboard.fonts.dismiss-all" msgstr "Alle ablehnen" +#: src/app/main/ui/dashboard/fonts.cljs:436 msgid "dashboard.fonts.empty-placeholder" msgstr "" "Die von Ihnen hochgeladenen benutzerdefinierten Schriftarten werden hier " "angezeigt." -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:194 msgid "dashboard.fonts.fonts-added" msgid_plural "dashboard.fonts.fonts-added" msgstr[0] "1 Schriftart hinzugefügt" msgstr[1] "%s Schriftarten hinzugefügt" +#: src/app/main/ui/dashboard/fonts.cljs:170 +#, markdown msgid "dashboard.fonts.hero-text1" msgstr "" "Jede Webschriftart, die Sie hier hochladen, wird der Liste der Schriftarten " -"hinzugefügt, die in den Texteigenschaften der Dateien dieses Teams verfügbar " -"ist. Schriftarten mit dem gleichen Schriftfamilien-Namen werden als **eine " -"einzige Schriftfamilie** gruppiert. Sie können Schriftarten in den folgenden " -"Formaten hochladen: **TTF, OTF und WOFF** (nur eine wird benötigt)." +"hinzugefügt, die in den Texteigenschaften der Dateien dieses Teams " +"verfügbar ist. Schriftarten mit dem gleichen Schriftfamilien-Namen werden " +"als **eine einzige Schriftfamilie** gruppiert. Sie können Schriftarten in " +"den folgenden Formaten hochladen: **TTF, OTF und WOFF** (nur eine wird " +"benötigt)." +#: src/app/main/ui/dashboard/fonts.cljs:182 +#, markdown msgid "dashboard.fonts.hero-text2" msgstr "" "Sie sollten nur Schriftarten hochladen, die Sie besitzen oder für die Sie " "eine Lizenz zur Verwendung in Penpot verfügen. Weitere Informationen finden " -"Sie im Abschnitt über Inhaltsrechte in den [Nutzungsbedingungen von Penpot]" -"(https://penpot.app/terms.html). Mehr über die [Lizenzierung von " +"Sie im Abschnitt über Inhaltsrechte in den [Nutzungsbedingungen von " +"Penpot](https://penpot.app/terms.html). Mehr über die [Lizenzierung von " "Schriftarten erfahren Sie hier](https://www.typography.com/faq)." -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:202 msgid "dashboard.fonts.upload-all" msgstr "Alle hochladen" +#: src/app/main/ui/dashboard/fonts.cljs:187 +#, markdown msgid "dashboard.fonts.warning-text" msgstr "" -"Wir haben ein mögliches Problem in Ihren Schriften festgestellt, das mit den " -"vertikalen Metriken für verschiedene Betriebssysteme zusammenhängt. Um dies " -"zu überprüfen, können Sie Online-Dienste wie [diesen](https://vertical-" -"metrics.netlify.app/) verwenden. Außerdem empfehlen wir die Verwendung von " -"[Transfonter](https://transfonter.org/), um Webfonts zu generieren und " -"Fehler zu beheben. " +"Wir haben ein mögliches Problem in Ihren Schriften festgestellt, das mit " +"den vertikalen Metriken für verschiedene Betriebssysteme zusammenhängt. Um " +"dies zu überprüfen, können Sie Online-Dienste wie " +"[diesen](https://vertical-metrics.netlify.app/) verwenden. Außerdem " +"empfehlen wir die Verwendung von [Transfonter](https://transfonter.org/), " +"um Webfonts zu generieren und Fehler zu beheben. " +#: src/app/main/ui/dashboard/import.cljs:472, src/app/main/ui/dashboard/project_menu.cljs:108 msgid "dashboard.import" msgstr "Dateien importieren" +#: src/app/main/ui/dashboard/import.cljs:304, src/app/worker/import.cljs:753, src/app/worker/import.cljs:755 msgid "dashboard.import.analyze-error" msgstr "Huch! Wir konnten diese Datei nicht importieren" +#, unused msgid "dashboard.import.analyze-error.components-v2" msgstr "" "Datei mit Komponenten v2 aktiviert, aber dieses Team unterstützt es noch " "nicht." +#: src/app/main/ui/dashboard/import.cljs:308 msgid "dashboard.import.import-error" msgstr "" -"Beim Importieren der Datei ist ein Fehler aufgetreten. Die Datei wurde nicht " -"importiert." +"Beim Importieren der Datei ist ein Fehler aufgetreten. Die Datei wurde " +"nicht importiert." +#: src/app/main/ui/dashboard/import.cljs:493 msgid "dashboard.import.import-message" msgstr "%s Dateien wurden erfolgreich importiert." +#: src/app/main/ui/dashboard/import.cljs:481, src/app/main/ui/dashboard/import.cljs:488 msgid "dashboard.import.import-warning" msgstr "Einige Dateien enthielten ungültige Objekte, die entfernt wurden." +#: src/app/main/ui/dashboard/import.cljs:144 msgid "dashboard.import.progress.process-colors" msgstr "Farben werden verarbeitet" +#: src/app/main/ui/dashboard/import.cljs:153 msgid "dashboard.import.progress.process-components" msgstr "Komponenten werden verarbeitet" +#: src/app/main/ui/dashboard/import.cljs:150 msgid "dashboard.import.progress.process-media" msgstr "Medien werden verarbeitet" +#: src/app/main/ui/dashboard/import.cljs:141 msgid "dashboard.import.progress.process-page" msgstr "Seite %s wird verarbeitet" +#: src/app/main/ui/dashboard/import.cljs:147 msgid "dashboard.import.progress.process-typographies" msgstr "Textstile werden verarbeitet" +#: src/app/main/ui/dashboard/import.cljs:135 msgid "dashboard.import.progress.upload-data" msgstr "Daten werden hochgeladen (%s/%s)" +#: src/app/main/ui/dashboard/import.cljs:138 msgid "dashboard.import.progress.upload-media" msgstr "Datei %s wird hochgeladen" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:109 msgid "dashboard.invite-profile" msgstr "Personen einladen" -#: src/app/main/ui/dashboard/sidebar.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:547, src/app/main/ui/dashboard/sidebar.cljs:556, src/app/main/ui/dashboard/sidebar.cljs:563, src/app/main/ui/dashboard/team.cljs:312 msgid "dashboard.leave-team" msgstr "Team verlassen" +#: src/app/main/ui/dashboard/templates.cljs:88, src/app/main/ui/dashboard/templates.cljs:163 msgid "dashboard.libraries-and-templates" msgstr "Bibliotheken & Vorlagen" +#: src/app/main/ui/dashboard/templates.cljs:164 msgid "dashboard.libraries-and-templates.explore" msgstr "Entdecken Sie weitere und erfahren Sie, wie Sie beitragen können" +#: src/app/main/ui/dashboard/import.cljs:365 msgid "dashboard.libraries-and-templates.import-error" msgstr "" "Beim Importieren der Vorlage ist ein Problem aufgetreten. Die Vorlage wurde " "nicht importiert." -#: src/app/main/ui/dashboard/libraries.cljs +#: src/app/main/ui/dashboard/libraries.cljs:53 msgid "dashboard.libraries-title" msgstr "Gemeinsam genutzte Bibliotheken" -#: src/app/main/ui/dashboard/grid.cljs +#: src/app/main/ui/dashboard/placeholder.cljs:45 msgid "dashboard.loading-files" msgstr "laden Ihrer Dateien …" +#: src/app/main/ui/dashboard/fonts.cljs:431 msgid "dashboard.loading-fonts" msgstr "laden Ihrer Schriftarten …" -#: src/app/main/ui/dashboard/project_menu.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:281, src/app/main/ui/dashboard/project_menu.cljs:100 msgid "dashboard.move-to" msgstr "Verschieben nach" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:245 msgid "dashboard.move-to-multi" msgstr "%s Dateien verschieben" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:226 msgid "dashboard.move-to-other-team" msgstr "Zu anderem Team verschieben" -#: src/app/main/ui/dashboard/projects.cljs, -#: src/app/main/ui/dashboard/files.cljs +#: src/app/main/ui/dashboard/files.cljs:105, src/app/main/ui/dashboard/projects.cljs:252, src/app/main/ui/dashboard/projects.cljs:253 msgid "dashboard.new-file" msgstr "+ Neue Datei" -#: src/app/main/data/dashboard.cljs +#: src/app/main/data/dashboard.cljs:958, src/app/main/data/dashboard.cljs:1181 msgid "dashboard.new-file-prefix" msgstr "Neue Datei" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:55 msgid "dashboard.new-project" msgstr "+ Neues Projekt" -#: src/app/main/data/dashboard.cljs +#: src/app/main/data/dashboard.cljs:726, src/app/main/data/dashboard.cljs:1184 msgid "dashboard.new-project-prefix" msgstr "Neues Projekt" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:60 msgid "dashboard.no-matches-for" msgstr "Keine Übereinstimmungen für “%s“ gefunden" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:827 msgid "dashboard.no-projects-placeholder" msgstr "Angeheftete Projekte werden hier angezeigt" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:33 msgid "dashboard.notifications.email-changed-successfully" msgstr "Ihre E-Mail-Adresse wurde erfolgreich aktualisiert" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:27 msgid "dashboard.notifications.email-verified-successfully" msgstr "Ihre E-Mail-Adresse wurde erfolgreich verifiziert" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:37 msgid "dashboard.notifications.password-saved" msgstr "Passwort wurde erfolgreich gespeichert!" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1081 msgid "dashboard.num-of-members" msgstr "%s Mitglieder" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:267 msgid "dashboard.open-in-new-tab" msgstr "Datei in neuem Tab öffnen" +#: src/app/main/ui/dashboard/files.cljs:117, src/app/main/ui/dashboard/projects.cljs:260, src/app/main/ui/dashboard/projects.cljs:261 msgid "dashboard.options" msgstr "Optionen" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:106, src/app/main/ui/settings/password.cljs:119 msgid "dashboard.password-change" msgstr "Passwort ändern" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/pin_button.cljs:24, src/app/main/ui/dashboard/project_menu.cljs:95 msgid "dashboard.pin-unpin" msgstr "Anheften/Lösen" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:51 msgid "dashboard.projects-title" msgstr "Projekte" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:86 msgid "dashboard.remove-account" msgstr "Möchten Sie Ihr Konto entfernen?" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "dashboard.remove-shared" msgstr "Als gemeinsam genutzte Bibliothek entfernen" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:78 msgid "dashboard.save-settings" msgstr "Einstellungen speichern" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:246, src/app/main/ui/dashboard/sidebar.cljs:247 msgid "dashboard.search-placeholder" msgstr "Suchen…" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:55 msgid "dashboard.searching-for" msgstr "Suche nach “%s“…" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:56 msgid "dashboard.select-ui-language" msgstr "Sprache der Benutzeroberfläche auswählen" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:63 msgid "dashboard.select-ui-theme" msgstr "Theme auswählen" -#: src/app/main/ui/dashboard/grid.cljs +#: src/app/main/ui/dashboard/projects.cljs:282 msgid "dashboard.show-all-files" msgstr "Alle Dateien anzeigen" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:96 msgid "dashboard.success-delete-file" msgid_plural "dashboard.success-delete-file" msgstr[0] "Ihre Datei wurde erfolgreich gelöscht" msgstr[1] "Ihre Dateien wurden erfolgreich gelöscht" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:59 msgid "dashboard.success-delete-project" msgstr "Ihr Projekt wurde erfolgreich gelöscht" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:91 msgid "dashboard.success-duplicate-file" msgid_plural "dashboard.success-delete-file" msgstr[0] "Ihre Datei wurde erfolgreich dupliziert" msgstr[1] "Ihre Dateien wurden erfolgreich dupliziert" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:33 msgid "dashboard.success-duplicate-project" msgstr "Ihr Projekt wurde erfolgreich dupliziert" -#: src/app/main/ui/dashboard/grid.cljs, src/app/main/ui/dashboard/sidebar.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:130, src/app/main/ui/dashboard/grid.cljs:558, src/app/main/ui/dashboard/sidebar.cljs:152 msgid "dashboard.success-move-file" msgstr "Ihre Datei wurde erfolgreich verschoben" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:129 msgid "dashboard.success-move-files" msgstr "Ihre Dateien wurden erfolgreich verschoben" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:54 msgid "dashboard.success-move-project" msgstr "Ihr Projekt wurde erfolgreich verschoben" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1052 msgid "dashboard.team-info" msgstr "Teaminformationen" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1070 msgid "dashboard.team-members" msgstr "Teammitglieder" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1085 msgid "dashboard.team-projects" msgstr "Teamprojekte" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:61 msgid "dashboard.theme-change" msgstr "UI-Theme" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:42 msgid "dashboard.title-search" msgstr "Suchergebnisse" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:50 msgid "dashboard.type-something" msgstr "Zum Suchen etwas eingeben" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:287, src/app/main/ui/workspace/main_menu.cljs:566 msgid "dashboard.unpublish-shared" msgstr "Veröffentlichung der Bibliothek aufheben" -#: src/app/main/ui/settings/profile.cljs, -#: src/app/main/ui/settings/password.cljs, -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:71 msgid "dashboard.update-settings" msgstr "Einstellungen aktualisieren" +#: src/app/main/ui/dashboard/team.cljs:861 msgid "dashboard.webhooks.active" msgstr "Aktiv" +#: src/app/main/ui/dashboard/team.cljs:862 msgid "dashboard.webhooks.active.explain" -msgstr "" -"Wenn dieser Hook ausgelöst wird, dann werden die Eventdetails übermittelt" +msgstr "Wenn dieser Hook ausgelöst wird, dann werden die Eventdetails übermittelt" +#: src/app/main/ui/dashboard/team.cljs:852 msgid "dashboard.webhooks.content-type" msgstr "Inhaltstyp" +#: src/app/main/ui/dashboard/team.cljs:885 msgid "dashboard.webhooks.create" msgstr "Webhook erstellen" +#: src/app/main/ui/dashboard/team.cljs:775 msgid "dashboard.webhooks.create.success" msgstr "Webhook wurde erfolgreich erstellt." +#: src/app/main/ui/dashboard/team.cljs:882 msgid "dashboard.webhooks.description" msgstr "" "Webhooks ermöglichen es, andere Websites und Anwendungen automatisch über " "bestimmte Ereignisse bei Penpot zu informieren. Dies geschieht durch das " "Versenden einer POST-Anfrage an die von Ihnen festgelegten URLs." +#: src/app/main/ui/dashboard/team.cljs:1005 msgid "dashboard.webhooks.empty.add-one" msgstr "" "Um einen Webhook hinzuzufügen, drücken Sie auf die Schaltfläche \"Webhook " "hinzufügen\"." +#: src/app/main/ui/dashboard/team.cljs:1004 msgid "dashboard.webhooks.empty.no-webhooks" msgstr "Bisher wurden noch keine Webhooks erstellt." +#, unused msgid "dashboard.webhooks.update.success" msgstr "Webhook wurde erfolgreich aktualisiert." -#: src/app/main/ui/settings.cljs +#: src/app/main/ui/settings.cljs:31 msgid "dashboard.your-account-title" msgstr "Ihr Konto" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:70 msgid "dashboard.your-email" msgstr "E-Mail" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:62 msgid "dashboard.your-name" msgstr "Ihr Name" -#: src/app/main/ui/dashboard/search.cljs, src/app/main/ui/dashboard/team.cljs, -#: src/app/main/ui/dashboard/libraries.cljs, -#: src/app/main/ui/dashboard/projects.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:38, src/app/main/ui/dashboard/fonts.cljs:33, src/app/main/ui/dashboard/libraries.cljs:42, src/app/main/ui/dashboard/projects.cljs:318, src/app/main/ui/dashboard/search.cljs:30, src/app/main/ui/dashboard/sidebar.cljs:312, src/app/main/ui/dashboard/team.cljs:495, src/app/main/ui/dashboard/team.cljs:729, src/app/main/ui/dashboard/team.cljs:991, src/app/main/ui/dashboard/team.cljs:1038 msgid "dashboard.your-penpot" msgstr "Ihr Penpot" -#: src/app/main/ui/alert.cljs +#: src/app/main/ui/alert.cljs:32 msgid "ds.alert-ok" msgstr "OK" -#: src/app/main/ui/alert.cljs +#: src/app/main/ui/alert.cljs:31, src/app/main/ui/alert.cljs:34 msgid "ds.alert-title" msgstr "Achtung" -#: src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:83 msgid "ds.component-subtitle" msgstr "Zu aktualisierende Komponenten:" -#: src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:36, src/app/main/ui/workspace/plugins.cljs:246 msgid "ds.confirm-cancel" msgstr "Abbrechen" -#: src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:37, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:141 msgid "ds.confirm-ok" msgstr "Ok" -#: src/app/main/ui/confirm.cljs, src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:35, src/app/main/ui/confirm.cljs:39 msgid "ds.confirm-title" msgstr "Sind Sie sicher?" -#: src/app/main/data/users.cljs +#: src/app/main/data/users.cljs:705 msgid "errors.auth-provider-not-allowed" msgstr "Auth-Provider für dieses Profil nicht erlaubt" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:62 msgid "errors.auth-provider-not-configured" msgstr "Authentifizierungsanbieter ist nicht konfiguriert." +#: src/app/main/errors.cljs:104 msgid "errors.auth.unable-to-login" -msgstr "" -"Anscheinend sind Sie nicht authentifiziert oder die Sitzung ist abgelaufen." +msgstr "Anscheinend sind Sie nicht authentifiziert oder die Sitzung ist abgelaufen." +#: src/app/main/data/fonts.cljs:189 msgid "errors.bad-font" msgstr "Die Schriftart %s konnte nicht geladen werden" +#: src/app/main/data/fonts.cljs:188 msgid "errors.bad-font-plural" msgstr "Die Schriftarten %s konnten nicht geladen werden" +#: src/app/main/data/workspace/media.cljs:198 msgid "errors.cannot-upload" msgstr "Die Mediendatei kann nicht hochgeladen werden." -#: src/app/main/data/workspace.cljs +#: src/app/main/data/workspace.cljs:1598 msgid "errors.clipboard-not-implemented" msgstr "Ihr Browser kann diese Funktion nicht ausführen" -#: src/app/main/ui/auth/verify_token.cljs, -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/auth/verify_token.cljs:82, src/app/main/ui/settings/change_email.cljs:46 msgid "errors.email-already-exists" msgstr "E-Mail-Adresse wird bereits verwendet" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:87 msgid "errors.email-already-validated" msgstr "E-Mail-Adresse wurde bereits validiert." +#: src/app/main/ui/settings/password.cljs:28 msgid "errors.email-as-password" msgstr "Sie können Ihre E-Mail-Adresse nicht als Passwort verwenden" -#: src/app/main/data/users.cljs +#: src/app/main/data/users.cljs:707, src/app/main/ui/auth/register.cljs:63 msgid "errors.email-domain-not-allowed" msgstr "Domain nicht zulässig" -#: src/app/main/ui/auth/register.cljs, -#: src/app/main/ui/auth/recovery_request.cljs, -#: src/app/main/ui/settings/change_email.cljs, -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/auth/recovery_request.cljs:63, src/app/main/ui/dashboard/team.cljs:578, src/app/main/ui/settings/change_email.cljs:54 msgid "errors.email-has-permanent-bounces" -msgstr "" -"Die E-Mail-Adresse «%s» hat viele permanente Unzustellbarkeitsberichte." +msgstr "Die E-Mail-Adresse «%s» hat viele permanente Unzustellbarkeitsberichte." -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs, -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/login.cljs:81, src/app/main/ui/auth/recovery_request.cljs:31, src/app/main/ui/auth/register.cljs:43 msgid "errors.email-invalid" msgstr "Geben Sie bitte eine gültige E-Mail-Adresse ein" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:35 msgid "errors.email-invalid-confirmation" msgstr "Bestätigungs-E-Mail muss übereinstimmen" +#: src/app/main/ui/dashboard/team.cljs:170 msgid "errors.email-spam-or-permanent-bounces" msgstr "Die E-Mail \"%s\" wurde als Spam oder dauerhaft abgelehnt gemeldet." -#: src/app/main/errors.cljs +#: src/app/main/errors.cljs:227 msgid "errors.feature-mismatch" msgstr "" "Es scheint als würden Sie eine Datei öffnen, bei der die Funktion '%s' " "aktiviert ist. Ihr aktuelle Version von Penpot unterstützt es aber nicht " "oder hat die Funktion deaktiviert." -#: src/app/main/errors.cljs +#: src/app/main/errors.cljs:231, src/app/main/errors.cljs:245 msgid "errors.feature-not-supported" msgstr "Die Funktion '%s' wird nicht unterstützt." -#: src/app/main/errors.cljs +#: src/app/main/errors.cljs:223 msgid "errors.file-feature-mismatch" msgstr "" -"Es scheint eine Nichtübereinstimmung zwischen den aktivierten Funktionen und " -"den Funktionen der Datei zu geben. Die Migrationen für '%s' müssen " +"Es scheint eine Nichtübereinstimmung zwischen den aktivierten Funktionen " +"und den Funktionen der Datei zu geben. Die Migrationen für '%s' müssen " "durchgeführt werden, bevor die Datei geöffnet werden kann." -#: src/app/main/ui/auth/verify_token.cljs, -#: src/app/main/ui/settings/feedback.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/data/users.cljs:709, src/app/main/ui/auth/login.cljs:65, src/app/main/ui/auth/login.cljs:116, src/app/main/ui/auth/register.cljs:69, src/app/main/ui/auth/register.cljs:237, src/app/main/ui/auth/verify_token.cljs:92, src/app/main/ui/dashboard/team.cljs:173, src/app/main/ui/onboarding/team_choice.cljs:95, src/app/main/ui/settings/access_tokens.cljs:91, src/app/main/ui/settings/feedback.cljs:52 msgid "errors.generic" msgstr "Etwas ist schief gelaufen." -#: src/app/main/ui/components/color_input.cljs +#: src/app/main/ui/components/color_input.cljs:57 msgid "errors.invalid-color" msgstr "Ungültige Farbe" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/static.cljs:43 msgid "errors.invite-invalid" msgstr "Einladung ist ungültig" +#: src/app/main/ui/static.cljs:44 msgid "errors.invite-invalid.info" msgstr "Diese Einladung wurde möglicherweise abgebrochen oder ist abgelaufen." -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:101 msgid "errors.ldap-disabled" msgstr "Die LDAP-Authentifizierung ist deaktiviert." -#: src/app/main/errors.cljs +#: src/app/main/errors.cljs:239 msgid "errors.max-quote-reached" msgstr "Sie haben das Limit von '%s' erreicht. Kontaktieren Sie den Support." -#: src/app/main/data/workspace/persistence.cljs +#: src/app/main/data/workspace/media.cljs:184 msgid "errors.media-too-large" msgstr "Das Bild ist zu groß, um eingefügt zu werden." -#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs +#: src/app/main/data/media.cljs:68, src/app/main/data/workspace/media.cljs:187 msgid "errors.media-type-mismatch" msgstr "" -"Es scheint, dass der Bildinhalt nicht mit der Dateierweiterung übereinstimmt." +"Es scheint, dass der Bildinhalt nicht mit der Dateierweiterung " +"übereinstimmt." -#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs +#: src/app/main/data/media.cljs:65, src/app/main/data/workspace/media.cljs:172, src/app/main/data/workspace/media.cljs:175, src/app/main/data/workspace/media.cljs:178, src/app/main/data/workspace/media.cljs:181 msgid "errors.media-type-not-allowed" msgstr "Es scheint, dass dies kein gültiges Bild ist." -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:574 msgid "errors.member-is-muted" msgstr "" -"In dem von Ihnen eingeladenen Profil sind E-Mails stummgeschaltet (Spam-" -"Berichte oder hohe Unzustellbarkeitsberichte)." +"In dem von Ihnen eingeladenen Profil sind E-Mails stummgeschaltet " +"(Spam-Berichte oder hohe Unzustellbarkeitsberichte)." -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:61 msgid "errors.password-invalid-confirmation" msgstr "Bestätigungspasswort muss übereinstimmen" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:64 msgid "errors.password-too-short" msgstr "Das Passwort sollte mindestens 8 Zeichen lang sein" +#: src/app/main/errors.cljs:124 msgid "errors.paste-data-validation" msgstr "Ungültige Daten in der Zwischenablage" +#: src/app/main/data/users.cljs:703, src/app/main/ui/auth/login.cljs:97, src/app/main/ui/auth/login.cljs:105 msgid "errors.profile-blocked" msgstr "Das Profil ist gesperrt" -#: src/app/main/ui/auth/recovery_request.cljs, -#: src/app/main/ui/settings/change_email.cljs, -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/auth/recovery_request.cljs:60, src/app/main/ui/dashboard/team.cljs:164, src/app/main/ui/dashboard/team.cljs:570, src/app/main/ui/settings/change_email.cljs:50 msgid "errors.profile-is-muted" msgstr "" "Ihr Profil hat stummgeschaltete E-Mails (Spam-Berichte oder hohe " "Unzustellbarkeitsberichte)." -#: src/app/main/ui/auth/register.cljs +#: src/app/main/data/users.cljs:701, src/app/main/ui/auth/register.cljs:60 msgid "errors.registration-disabled" msgstr "Die Registrierung ist derzeit deaktiviert." -#: src/app/main/errors.cljs +#: src/app/main/errors.cljs:218 msgid "errors.team-feature-mismatch" msgstr "Inkompatible Funktion '%s' erkannt" +#: src/app/main/ui/dashboard/sidebar.cljs:365, src/app/main/ui/dashboard/team.cljs:359 msgid "errors.team-leave.insufficient-members" msgstr "" "Nicht genügend Mitglieder, um das Team zu verlassen, wahrscheinlich wollen " "Sie es löschen." +#: src/app/main/ui/dashboard/sidebar.cljs:368, src/app/main/ui/dashboard/team.cljs:362 msgid "errors.team-leave.member-does-not-exists" msgstr "Das Mitglied, das Sie zuzuordnen möchten, existiert nicht." +#: src/app/main/ui/dashboard/sidebar.cljs:371, src/app/main/ui/dashboard/team.cljs:365 msgid "errors.team-leave.owner-cant-leave" msgstr "" -"Der Besitzer kann das Team nicht verlassen, Sie müssen die Besitzerrolle neu " -"zuweisen." +"Der Besitzer kann das Team nicht verlassen, Sie müssen die Besitzerrolle " +"neu zuweisen." -#: src/app/main/data/media.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs +#: src/app/main/data/media.cljs:71 msgid "errors.unexpected-error" msgstr "Ein unerwarteter Fehler ist aufgetreten." -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:60 msgid "errors.unexpected-token" msgstr "Unbekannter Token" +#, unused msgid "errors.validation" msgstr "Validierungsfehler" -#: src/app/main/errors.cljs +#: src/app/main/errors.cljs:235 msgid "errors.version-not-supported" msgstr "Die Datei hat eine inkompatible Versionsnummer" +#: src/app/main/ui/dashboard/team.cljs:796 msgid "errors.webhooks.connection" msgstr "Verbindungsfehler, URL ist nicht erreichbar" +#: src/app/main/ui/dashboard/team.cljs:790 msgid "errors.webhooks.invalid-uri" msgstr "Die URL erfüllt nicht die Validierungskriterien." +#: src/app/main/ui/dashboard/team.cljs:949 msgid "errors.webhooks.last-delivery" msgstr "Die letzte Übertragung war nicht erfolgreich." +#: src/app/main/ui/dashboard/team.cljs:792, src/app/main/ui/dashboard/team.cljs:952 msgid "errors.webhooks.ssl-validation" msgstr "Fehler bei der SSL-Validierung." +#: src/app/main/ui/dashboard/team.cljs:794 msgid "errors.webhooks.timeout" msgstr "Zeitüberschreitung" +#: src/app/main/ui/dashboard/team.cljs:788 msgid "errors.webhooks.unexpected" msgstr "Unerwarteter Fehler bei der Validierung" +#: src/app/main/ui/dashboard/team.cljs:798, src/app/main/ui/dashboard/team.cljs:955 msgid "errors.webhooks.unexpected-status" msgstr "Unerwarteter Status %s" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:109, src/app/main/ui/auth/login.cljs:113 msgid "errors.wrong-credentials" msgstr "Die E-Mail-Adresse oder das Passwort ist falsch." -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:25 msgid "errors.wrong-old-password" msgstr "Altes Passwort ist falsch" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:77 msgid "feedback.description" msgstr "Beschreibung" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:95 msgid "feedback.discourse-go-to" msgstr "Zum Penpot-Forum wechseln" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:89 msgid "feedback.discourse-subtitle1" msgstr "" "Wir sind froh, dass Sie hier sind. Wenn Sie Hilfe benötigen, verwenden Sie " "die Suchfunktion, bevor Sie einen Beitrag schreiben." -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:88 msgid "feedback.discourse-title" msgstr "Penpot-Community" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:72 msgid "feedback.subject" msgstr "Betreff" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:69 msgid "feedback.subtitle" msgstr "" -"Bitte beschreiben Sie den Grund Ihrer E-Mail und geben Sie an, ob es sich um " -"ein Problem, eine Idee oder einem Bedenken handelt. Ein Mitglied unseres " +"Bitte beschreiben Sie den Grund Ihrer E-Mail und geben Sie an, ob es sich " +"um ein Problem, eine Idee oder einem Bedenken handelt. Ein Mitglied unseres " "Teams wird Ihnen so schnell wie möglich antworten." -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:68 msgid "feedback.title" msgstr "E-Mail" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:105 msgid "feedback.twitter-go-to" msgstr "Zu X wechseln" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:99 msgid "feedback.twitter-subtitle1" msgstr "Hier helfen wir Ihnen bei technischen Fragen." -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:98 msgid "feedback.twitter-title" msgstr "X Support-Konto" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:30 msgid "generic.error" msgstr "Ein Fehler ist aufgetreten" -#: src/app/main/ui/inspect/attributes/blur.cljs +#: src/app/main/ui/viewer/inspect/attributes/blur.cljs:26 msgid "inspect.attributes.blur" msgstr "Weichzeichnen" -#: src/app/main/ui/inspect/attributes/blur.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:115 msgid "inspect.attributes.blur.value" msgstr "Wert" -#: src/app/main/ui/inspect/attributes/common.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:112 msgid "inspect.attributes.color.hex" msgstr "HEX" -#: src/app/main/ui/inspect/attributes/common.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:114 msgid "inspect.attributes.color.hsla" msgstr "HSLA" -#: src/app/main/ui/inspect/attributes/common.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:113 msgid "inspect.attributes.color.rgba" msgstr "RGBA" -#: src/app/main/ui/inspect/attributes/fill.cljs +#: src/app/main/ui/viewer/inspect/attributes/fill.cljs:57 msgid "inspect.attributes.fill" msgstr "Fläche" -#: src/app/main/ui/inspect/attributes/image.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:99, src/app/main/ui/viewer/inspect/attributes/image.cljs:51 msgid "inspect.attributes.image.download" msgstr "Originalbild herunterladen" -#: src/app/main/ui/inspect/attributes/image.cljs +#: src/app/main/ui/viewer/inspect/attributes/image.cljs:39 msgid "inspect.attributes.image.height" msgstr "Höhe" -#: src/app/main/ui/inspect/attributes/image.cljs +#: src/app/main/ui/viewer/inspect/attributes/image.cljs:32 msgid "inspect.attributes.image.width" msgstr "Breite" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout" msgstr "Layout" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.height" msgstr "Höhe" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.left" msgstr "Links" -#: src/app/main/ui/inspect/attributes/layout.cljs, -#: src/app/main/ui/inspect/attributes/layout.cljs +#: src/app/main/ui/inspect/attributes/layout.cljs, src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.radius" msgstr "Radius" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.rotation" msgstr "Drehung" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.top" msgstr "Oben" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.width" msgstr "Breite" -#: src/app/main/ui/inspect/attributes/shadow.cljs +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:57 msgid "inspect.attributes.shadow" msgstr "Schatten" -#: src/app/main/ui/inspect/attributes/layout.cljs +#: src/app/main/ui/viewer/inspect/attributes/geometry.cljs:40 msgid "inspect.attributes.size" msgstr "Größe und Position" -#: src/app/main/ui/inspect/attributes/stroke.cljs +#: src/app/main/ui/viewer/inspect/attributes/stroke.cljs:52 msgid "inspect.attributes.stroke" msgstr "Rahmen" +#, permanent, unused msgid "inspect.attributes.stroke.alignment.center" msgstr "Zentriert" +#, permanent, unused msgid "inspect.attributes.stroke.alignment.inner" msgstr "Innen" +#, permanent, unused msgid "inspect.attributes.stroke.alignment.outer" msgstr "Außen" +#, unused msgid "inspect.attributes.stroke.style.dotted" msgstr "Gepunktet" +#, unused msgid "inspect.attributes.stroke.style.mixed" msgstr "Mehrere" +#, unused msgid "inspect.attributes.stroke.style.none" msgstr "Keine" +#, unused msgid "inspect.attributes.stroke.style.solid" msgstr "Durchgezogen" #: src/app/main/ui/inspect/attributes/stroke.cljs +#, unused msgid "inspect.attributes.stroke.width" msgstr "Breite" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:81, src/app/main/ui/viewer/inspect/attributes/text.cljs:194 msgid "inspect.attributes.typography" msgstr "Typografie" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:89 msgid "inspect.attributes.typography.font-family" msgstr "Schriftart" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:107 msgid "inspect.attributes.typography.font-size" msgstr "Schriftgröße" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:98 msgid "inspect.attributes.typography.font-style" msgstr "Schriftschnitt" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:116 msgid "inspect.attributes.typography.font-weight" msgstr "Strichstärke" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:134 msgid "inspect.attributes.typography.letter-spacing" msgstr "Zeichenabstand" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:125 msgid "inspect.attributes.typography.line-height" msgstr "Zeilenabstand" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:143 msgid "inspect.attributes.typography.text-decoration" msgstr "Textdekoration" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:145 msgid "inspect.attributes.typography.text-decoration.none" msgstr "Keine" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:146 msgid "inspect.attributes.typography.text-decoration.strikethrough" msgstr "Durchgestrichen" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:147 msgid "inspect.attributes.typography.text-decoration.underline" msgstr "Unterstrichen" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:156 msgid "inspect.attributes.typography.text-transform" msgstr "Texttransformation" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:158 msgid "inspect.attributes.typography.text-transform.lowercase" msgstr "Kleinbuchstaben" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:159 msgid "inspect.attributes.typography.text-transform.none" msgstr "Keine" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:160 msgid "inspect.attributes.typography.text-transform.titlecase" msgstr "Kapitälchen" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:162 msgid "inspect.attributes.typography.text-transform.unset" msgstr "Nicht gesetzt" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:161 msgid "inspect.attributes.typography.text-transform.uppercase" msgstr "Großbuchstaben" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:140 msgid "inspect.empty.help" msgstr "" -"Für weitere Informationen zum Thema \"Auswerten von Design-" -"Spezifikationen\", besuchen Sie bitte das Penpot-Hilfezentrum" +"Für weitere Informationen zum Thema \"Auswerten von " +"Design-Spezifikationen\", besuchen Sie bitte das Penpot-Hilfezentrum" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:143 msgid "inspect.empty.more-info" msgstr "Weitere Informationen zur Inspektion" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:135 msgid "inspect.empty.select" msgstr "" -"Wählen Sie eine Form, ein Board oder eine Gruppe aus, um deren Eigenschaften " -"und Code zu überprüfen" +"Wählen Sie eine Form, ein Board oder eine Gruppe aus, um deren " +"Eigenschaften und Code zu überprüfen" -#: src/app/main/ui/inspect/right_sidebar.cljs +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:125 msgid "inspect.tabs.code" msgstr "Code" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:98 msgid "inspect.tabs.code.selected.circle" msgstr "Kreis" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:99 msgid "inspect.tabs.code.selected.component" msgstr "Komponente" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:100 msgid "inspect.tabs.code.selected.curve" msgstr "Kurve" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:101 msgid "inspect.tabs.code.selected.frame" msgstr "Zeichenfläche" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:102 msgid "inspect.tabs.code.selected.group" msgstr "Gruppe" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:103 msgid "inspect.tabs.code.selected.image" msgstr "Bild" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:104 msgid "inspect.tabs.code.selected.mask" msgstr "Maske" -#: src/app/main/ui/inspect/right_sidebar.cljs +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:93 msgid "inspect.tabs.code.selected.multiple" msgstr "%s Ausgewählt(e)" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:105 msgid "inspect.tabs.code.selected.path" msgstr "Pfad" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:106 msgid "inspect.tabs.code.selected.rect" msgstr "Rechteck" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:107 msgid "inspect.tabs.code.selected.svg-raw" msgstr "SVG" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:108 msgid "inspect.tabs.code.selected.text" msgstr "Text" -#: src/app/main/ui/inspect/right_sidebar.cljs +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:115 msgid "inspect.tabs.info" msgstr "Info" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:158 msgid "label.shortcuts" msgstr "Tastaturkürzel" +#: src/app/main/ui/dashboard/import.cljs:527 msgid "labels.accept" msgstr "Akzeptieren" -#: src/app/main/ui/settings/sidebar.cljs +#: src/app/main/ui/settings/sidebar.cljs:100 msgid "labels.access-tokens" msgstr "Zugangstoken" +#: src/app/main/ui/dashboard/team.cljs:968 msgid "labels.active" msgstr "Aktiv" +#: src/app/main/ui/dashboard/fonts.cljs:175 msgid "labels.add-custom-font" msgstr "Eigene Schriftart hinzufügen" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:120, src/app/main/ui/dashboard/team.cljs:276, src/app/main/ui/dashboard/team.cljs:519, src/app/main/ui/dashboard/team.cljs:549, src/app/main/ui/onboarding/team_choice.cljs:67 msgid "labels.admin" msgstr "Admin" +#: src/app/main/ui/onboarding/questions.cljs:174 +msgid "labels.adobe-xd" +msgstr "Adobe XD" + #: src/app/main/ui/workspace/comments.cljs +#, unused msgid "labels.all" msgstr "Alles" +#: src/app/main/ui/auth.cljs:37 msgid "labels.and" msgstr "und" +#: src/app/main/ui/onboarding/team_choice.cljs:162 msgid "labels.back" msgstr "Zurück" -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:59 msgid "labels.bad-gateway.desc-message" msgstr "" "Sie müssen ein wenig warten und es erneut versuchen. Wir führen eine kurze " "Wartung an unseren Servern durch." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:58 msgid "labels.bad-gateway.main-message" msgstr "Bad Gateway" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/data/common.cljs:112, src/app/main/ui/dashboard/change_owner.cljs:69, src/app/main/ui/dashboard/import.cljs:514, src/app/main/ui/dashboard/team.cljs:868, src/app/main/ui/delete_shared.cljs:35, src/app/main/ui/export.cljs:164, src/app/main/ui/export.cljs:460, src/app/main/ui/settings/access_tokens.cljs:188, src/app/main/ui/viewer/share_link.cljs:203, src/app/main/ui/workspace/sidebar/assets/groups.cljs:149 msgid "labels.cancel" msgstr "Abbrechen" +#: src/app/main/ui/onboarding/questions.cljs:176 +msgid "labels.canva" +msgstr "Canva" + +#: src/app/main/ui/dashboard/projects.cljs:93, src/app/main/ui/export.cljs:478, src/app/main/ui/settings/access_tokens.cljs:183, src/app/main/ui/viewer/login.cljs:77, src/app/main/ui/viewer/share_link.cljs:174, src/app/main/ui/workspace/libraries.cljs:522 msgid "labels.close" msgstr "Schließen" -#: src/app/main/ui/dashboard/comments.cljs +#: src/app/main/ui/dashboard/comments.cljs:104, src/app/main/ui/viewer/comments.cljs:70, src/app/main/ui/workspace/comments.cljs:126 msgid "labels.comments" msgstr "Kommentare" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:985, src/app/main/ui/workspace/main_menu.cljs:110 msgid "labels.community" msgstr "Community" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:103 msgid "labels.confirm-password" msgstr "Passwort bestätigen" +#: src/app/main/ui/dashboard/import.cljs:520, src/app/main/ui/export.cljs:465, src/app/main/ui/onboarding/newsletter.cljs:101 msgid "labels.continue" msgstr "Weiter" +#, unused msgid "labels.continue-with" msgstr "Weiter mit" +#: src/app/main/ui/viewer/login.cljs:75 msgid "labels.continue-with-penpot" msgstr "Sie können mit einem Penpot-Konto fortfahren" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:642 msgid "labels.copy-invitation-link" msgstr "Link kopieren" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:157, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:190 msgid "labels.create" msgstr "Erstellen" -#: src/app/main/ui/dashboard/team_form.cljs, -#: src/app/main/ui/dashboard/team_form.cljs +#: src/app/main/ui/dashboard/team_form.cljs:101, src/app/main/ui/dashboard/team_form.cljs:121 msgid "labels.create-team" msgstr "Neues Team erstellen" -#: src/app/main/ui/dashboard/team_form.cljs +#: src/app/main/ui/dashboard/team_form.cljs:113 msgid "labels.create-team.placeholder" msgstr "Neuen Teamnamen eingeben" +#, unused msgid "labels.custom-fonts" msgstr "Eigene Schriftarten" -#: src/app/main/ui/settings/sidebar.cljs +#: src/app/main/ui/settings/sidebar.cljs:73 msgid "labels.dashboard" msgstr "Dashboard" -#: src/app/main/ui/dashboard/project_menu.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:306, src/app/main/ui/dashboard/fonts.cljs:255, src/app/main/ui/dashboard/fonts.cljs:332, src/app/main/ui/dashboard/fonts.cljs:346, src/app/main/ui/dashboard/project_menu.cljs:115, src/app/main/ui/dashboard/team.cljs:904, src/app/main/ui/settings/access_tokens.cljs:209, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:209 msgid "labels.delete" msgstr "Löschen" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:357 msgid "labels.delete-comment" msgstr "Kommentar löschen" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:354 msgid "labels.delete-comment-thread" msgstr "Thread löschen" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:648 msgid "labels.delete-invitation" msgstr "Einladung löschen" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:262 msgid "labels.delete-multi-files" msgstr "%s Dateien löschen" +#: src/app/main/ui/onboarding/questions.cljs:250 +msgid "labels.developer" +msgstr "Developer" + +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:199 msgid "labels.discard" msgstr "Verwerfen" -#: src/app/main/ui/dashboard/projects.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs, -#: src/app/main/ui/dashboard/files.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:28, src/app/main/ui/dashboard/files.cljs:72, src/app/main/ui/dashboard/files.cljs:156, src/app/main/ui/dashboard/projects.cljs:220, src/app/main/ui/dashboard/projects.cljs:224, src/app/main/ui/dashboard/sidebar.cljs:791 msgid "labels.drafts" msgstr "Entwürfe" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:350, src/app/main/ui/dashboard/fonts.cljs:252, src/app/main/ui/dashboard/team.cljs:902, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:205 msgid "labels.edit" msgstr "Bearbeiten" +#, unused msgid "labels.edit-file" msgstr "Datei bearbeiten" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:118, src/app/main/ui/dashboard/team.cljs:279, src/app/main/ui/dashboard/team.cljs:520, src/app/main/ui/dashboard/team.cljs:553, src/app/main/ui/onboarding/team_choice.cljs:66 msgid "labels.editor" msgstr "Editor" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:661 msgid "labels.expired-invitation" msgstr "Abgelaufen" +#: src/app/main/ui/export.cljs:173 msgid "labels.export" msgstr "Exportieren" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:51 msgid "labels.feedback-disabled" msgstr "Feedback deaktiviert" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:42 msgid "labels.feedback-sent" msgstr "Feedback gesendet" +#: src/app/main/ui/onboarding/questions.cljs:170 +msgid "labels.figma" +msgstr "Figma" + +#: src/app/main/ui/dashboard/fonts.cljs:412 msgid "labels.font-family" msgstr "Schriftfamilie" +#, unused msgid "labels.font-providers" msgstr "Schriftenhersteller" +#: src/app/main/ui/dashboard/fonts.cljs:413 msgid "labels.font-variants" msgstr "Stile" +#: src/app/main/ui/dashboard/fonts.cljs:52, src/app/main/ui/dashboard/sidebar.cljs:811 msgid "labels.fonts" msgstr "Schriftarten" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/onboarding/questions.cljs:263 +msgid "labels.founder" +msgstr "Gründer/VP" + +#: src/app/main/ui/onboarding/questions.cljs:262 +msgid "labels.freelancer" +msgstr "Ich bin ein Freelancer" + +#: src/app/main/ui/dashboard/sidebar.cljs:1015, src/app/main/ui/workspace/main_menu.cljs:142 msgid "labels.github-repo" msgstr "Github-Repository" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/settings/sidebar.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:1032, src/app/main/ui/settings/sidebar.cljs:113, src/app/main/ui/workspace/main_menu.cljs:171 msgid "labels.give-feedback" msgstr "Feedback geben" +#: src/app/main/ui/auth/recovery_request.cljs:110, src/app/main/ui/auth/register.cljs:285, src/app/main/ui/viewer/login.cljs:117 msgid "labels.go-back" msgstr "Zurück" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:978, src/app/main/ui/workspace/main_menu.cljs:102 msgid "labels.help-center" msgstr "Hilfezentrum" -#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/comments.cljs:103, src/app/main/ui/workspace/comments.cljs:67 msgid "labels.hide-resolved-comments" msgstr "Erledigte Kommentare ausblenden" +#: src/app/main/ui/dashboard/team.cljs:969 msgid "labels.inactive" msgstr "Inaktiv" +#: src/app/main/ui/dashboard/fonts.cljs:410 msgid "labels.installed-fonts" msgstr "Installierte Schriftarten" -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:144 msgid "labels.internal-error.desc-message" msgstr "" "Etwas ist schiefgegangen. Bitte versuchen Sie den Vorgang erneut und wenn " "das Problem weiterhin besteht, kontaktieren Sie den Support." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:143 msgid "labels.internal-error.main-message" msgstr "Interner Fehler" -#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/onboarding/questions.cljs:178 +msgid "labels.invision" +msgstr "InVision" + +#: src/app/main/ui/dashboard/sidebar.cljs:516, src/app/main/ui/dashboard/team.cljs:89, src/app/main/ui/dashboard/team.cljs:97, src/app/main/ui/dashboard/team.cljs:708 msgid "labels.invitations" msgstr "Einladungen" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:51 msgid "labels.language" msgstr "Sprache" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:1008, src/app/main/ui/workspace/main_menu.cljs:134 msgid "labels.libraries-and-templates" msgstr "Bibliotheken & Vorlagen" +#: src/app/main/ui/viewer/header.cljs:203 msgid "labels.log-or-sign" msgstr "Einloggen oder anmelden" -#: src/app/main/ui/settings.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:1040 msgid "labels.logout" msgstr "Abmelden" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/onboarding/questions.cljs:253 +msgid "labels.marketing" +msgstr "Marketing" + +#: src/app/main/ui/dashboard/team.cljs:468 msgid "labels.member" msgstr "Mitglied" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:510, src/app/main/ui/dashboard/team.cljs:87, src/app/main/ui/dashboard/team.cljs:95 msgid "labels.members" msgstr "Mitglieder" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:96 msgid "labels.new-password" msgstr "Neues Passwort" -#: src/app/main/ui/workspace/comments.cljs, -#: src/app/main/ui/dashboard/comments.cljs +#: src/app/main/ui/dashboard/templates.cljs:269, src/app/main/ui/onboarding/questions.cljs:55 +msgid "labels.next" +msgstr "Weiter" + +#: src/app/main/ui/dashboard/comments.cljs:128, src/app/main/ui/workspace/comments.cljs:161 msgid "labels.no-comments-available" msgstr "" "Sie sind auf dem neuesten Stand! Neue Benachrichtigungen zu Kommentaren " "werden hier angezeigt." -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:694 msgid "labels.no-invitations" msgstr "Keine ausstehenden Einladungen." -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:696 +#, markdown msgid "labels.no-invitations-hint" msgstr "" "Drücken Sie auf die Schaltfläche **Personen einladen**, um Personen zu " "diesem Team einzuladen." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:50 msgid "labels.not-found.desc-message" msgstr "" "Möglicherweise existiert diese Seite nicht oder Sie haben keine " "Zugriffsrechte darauf." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:49 msgid "labels.not-found.main-message" msgstr "Ups!" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/projects.cljs:239, src/app/main/ui/dashboard/team.cljs:1095 msgid "labels.num-of-files" msgid_plural "labels.num-of-files" msgstr[0] "1 Datei" msgstr[1] "%s Dateien" +#: src/app/main/ui/viewer/thumbnails.cljs:80 msgid "labels.num-of-frames" msgid_plural "labels.num-of-frames" msgstr[0] "1 Zeichenfläche" msgstr[1] "%s Zeichenflächen" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1090 msgid "labels.num-of-projects" msgid_plural "labels.num-of-projects" msgstr[0] "1 Projekt" msgstr[1] "%s Projekte" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:89 msgid "labels.old-password" msgstr "Altes Passwort" #: src/app/main/ui/workspace/comments.cljs +#, unused msgid "labels.only-yours" msgstr "Nur Ihre" +#, unused msgid "labels.or" msgstr "oder" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/onboarding/questions.cljs:145, src/app/main/ui/onboarding/questions.cljs:214, src/app/main/ui/onboarding/questions.cljs:303, src/app/main/ui/onboarding/questions.cljs:316, src/app/main/ui/onboarding/questions.cljs:389, src/app/main/ui/onboarding/questions.cljs:447 +msgid "labels.other" +msgstr "Sonstiges (bitte angeben)" + +#: src/app/main/ui/dashboard/team.cljs:286, src/app/main/ui/dashboard/team.cljs:518, src/app/main/ui/dashboard/team.cljs:1076 msgid "labels.owner" msgstr "Eigentümer" -#: src/app/main/ui/settings/sidebar.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/settings/sidebar.cljs:87 msgid "labels.password" msgstr "Passwort" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:662 msgid "labels.pending-invitation" msgstr "Ausstehend" -#: src/app/main/ui/settings/sidebar.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/onboarding/questions.cljs:51 +msgid "labels.previous" +msgstr "Zurück" + +#: src/app/main/ui/onboarding/questions.cljs:254 +msgid "labels.product-management" +msgstr "Produkt- oder Projektmanager" + +#: src/app/main/ui/settings/profile.cljs:118, src/app/main/ui/settings/sidebar.cljs:82 msgid "labels.profile" msgstr "Profil" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:784 msgid "labels.projects" msgstr "Projekte" -#: src/app/main/ui/settings/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:998, src/app/main/ui/settings/sidebar.cljs:106, src/app/main/ui/workspace/main_menu.cljs:126 msgid "labels.release-notes" msgstr "Versionshinweise" #: src/app/main/ui/workspace.cljs +#, unused msgid "labels.reload-file" msgstr "Datei neu laden" -#: src/app/main/ui/workspace/libraries.cljs, -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/workspace/libraries.cljs, src/app/main/ui/dashboard/team.cljs +#, unused msgid "labels.remove" msgstr "Entfernen" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:316 msgid "labels.remove-member" msgstr "Mitglied entfernen" -#: src/app/main/ui/dashboard/sidebar.cljs, -#: src/app/main/ui/dashboard/project_menu.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:271, src/app/main/ui/dashboard/project_menu.cljs:85, src/app/main/ui/dashboard/sidebar.cljs:539, src/app/main/ui/workspace/sidebar/assets/groups.cljs:157 msgid "labels.rename" msgstr "Umbenennen" -#: src/app/main/ui/dashboard/team_form.cljs +#: src/app/main/ui/dashboard/team_form.cljs:99 msgid "labels.rename-team" msgstr "Team umbenennen" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:645 msgid "labels.resend-invitation" msgstr "Einladung erneut senden" -#: src/app/main/ui/static.cljs, src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:61, src/app/main/ui/static.cljs:70, src/app/main/ui/static.cljs:148 msgid "labels.retry" msgstr "Wiederholen" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:469, src/app/main/ui/dashboard/team.cljs:709 msgid "labels.role" msgstr "Rolle" +#: src/app/main/ui/dashboard/fonts.cljs:380, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:191 msgid "labels.save" msgstr "Speichern" +#: src/app/main/ui/onboarding/questions.cljs:414, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:436 msgid "labels.search" msgstr "Suchen" +#: src/app/main/ui/dashboard/fonts.cljs:415 msgid "labels.search-font" msgstr "Schriftart suchen" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/onboarding/questions.cljs:90, src/app/main/ui/onboarding/questions.cljs:248, src/app/main/ui/onboarding/questions.cljs:259, src/app/main/ui/onboarding/questions.cljs:270 +msgid "labels.select-option" +msgstr "Wählen Sie eine Option" + +#: src/app/main/ui/settings/feedback.cljs:82 msgid "labels.send" msgstr "Senden" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:82 msgid "labels.sending" msgstr "Senden…" -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:68 msgid "labels.service-unavailable.desc-message" msgstr "Wir befinden uns in der planmäßigen Wartung unserer Systeme." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:67 msgid "labels.service-unavailable.main-message" msgstr "Service nicht verfügbar" -#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:530, src/app/main/ui/dashboard/team.cljs:88, src/app/main/ui/dashboard/team.cljs:102, src/app/main/ui/settings/options.cljs:84, src/app/main/ui/settings/sidebar.cljs:93 msgid "labels.settings" msgstr "Einstellungen" +#: src/app/main/ui/viewer/header.cljs:199 msgid "labels.share" msgstr "Teilen" -#: src/app/main/ui/viewer/header.cljs, src/app/main/ui/viewer/header.cljs +#, unused msgid "labels.share-prototype" msgstr "Prototyp teilen" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:800 msgid "labels.shared-libraries" msgstr "Gemeinsam genutzte Bibliotheken" -#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/comments.cljs:82, src/app/main/ui/workspace/comments.cljs:55, src/app/main/ui/workspace/comments.cljs:135 msgid "labels.show-all-comments" msgstr "Alle Kommentare anzeigen" +#: src/app/main/ui/viewer/comments.cljs:115 msgid "labels.show-comments-list" msgstr "Kommentarliste anzeigen" -#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/comments.cljs:91, src/app/main/ui/workspace/comments.cljs:61, src/app/main/ui/workspace/comments.cljs:136 msgid "labels.show-your-comments" msgstr "Nur eigene Kommentare anzeigen" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/onboarding/questions.cljs:172 +msgid "labels.sketch" +msgstr "Sketch" + +#: src/app/main/ui/onboarding/questions.cljs:56 +msgid "labels.start" +msgstr "Start" + +#: src/app/main/ui/dashboard/team.cljs:710 msgid "labels.status" msgstr "Status" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/onboarding/questions.cljs:251 +msgid "labels.student-teacher" +msgstr "Schüler oder Lehrer" + +#: src/app/main/ui/dashboard/sidebar.cljs:992, src/app/main/ui/workspace/main_menu.cljs:118 msgid "labels.tutorials" msgstr "Tutorials" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:256 msgid "labels.unpublish-multi-files" msgstr "Veröffentlichung von %s-Dateien aufheben" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:103 msgid "labels.update" msgstr "Aktualisieren" -#: src/app/main/ui/dashboard/team_form.cljs +#: src/app/main/ui/dashboard/team_form.cljs:120 msgid "labels.update-team" msgstr "Team aktualisieren" +#: src/app/main/ui/dashboard/fonts.cljs:241 msgid "labels.upload" msgstr "Hochladen" +#: src/app/main/ui/dashboard/fonts.cljs:169 msgid "labels.upload-custom-fonts" msgstr "Eigene Schriftarten hochladen" +#: src/app/main/ui/dashboard/fonts.cljs:240 msgid "labels.uploading" msgstr "Hochladen…" +#: src/app/main/ui/workspace/sidebar/sitemap.cljs:223 msgid "labels.view-only" msgstr "Nur ansehen" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:123, src/app/main/ui/dashboard/team.cljs:282, src/app/main/ui/dashboard/team.cljs:521 msgid "labels.viewer" msgstr "Zuschauer" +#: src/app/main/ui/dashboard/sidebar.cljs:523, src/app/main/ui/dashboard/team.cljs:90, src/app/main/ui/dashboard/team.cljs:100, src/app/main/ui/dashboard/team.cljs:880 msgid "labels.webhooks" msgstr "Webhooks" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:194 msgid "labels.write-new-comment" msgstr "Neuen Kommentar schreiben" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/team.cljs:237 msgid "labels.you" msgstr "(Sie)" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:968 msgid "labels.your-account" msgstr "Ihr Konto" +#: src/app/main/ui/workspace/colorpicker.cljs:297, src/app/main/ui/workspace/colorpicker.cljs:298, src/app/main/ui/workspace/colorpicker.cljs:300 msgid "media.choose-image" msgstr "Bild auswählen" +#, unused msgid "media.gradient" msgstr "Verlauf" +#: src/app/main/data/workspace/media.cljs:275, src/app/main/ui/components/color_bullet.cljs:32, src/app/main/ui/components/color_bullet.cljs:45, src/app/main/ui/viewer/inspect/attributes/common.cljs:66, src/app/main/ui/workspace/colorpicker.cljs:211, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:237 msgid "media.image" msgstr "Bild" +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:77 msgid "media.image.short" msgstr "img" +#: src/app/main/ui/workspace/colorpicker.cljs:290 msgid "media.keep-aspect-ratio" msgstr "Seitenverhältnis beibehalten" +#: src/app/main/ui/workspace/colorpicker.cljs:208 msgid "media.linear" msgstr "Linear" -#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs +#: src/app/main/data/media.cljs:49, src/app/main/data/workspace/media.cljs:223, src/app/main/data/workspace/media.cljs:453 msgid "media.loading" msgstr "Bild laden…" +#: src/app/main/ui/workspace/colorpicker.cljs:209 msgid "media.radial" msgstr "Radial" +#: src/app/main/ui/workspace/colorpicker.cljs:206 msgid "media.solid" msgstr "Einfarbig" +#: src/app/main/data/common.cljs:111 msgid "modals.add-shared-confirm-empty.hint" msgstr "" "Ihre Bibliothek ist leer. Sobald es als Geteilte Bibliothek hinzugefügt " "wurde, können die von Ihnen erstellten Assets in den übrigen Dateien " "verwendet werden. Sind Sie sicher, dass Sie es veröffentlichen möchten?" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/data/common.cljs:113 msgid "modals.add-shared-confirm.accept" msgstr "Hinzufügen als gemeinsam genutzte Bibliothek" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/data/common.cljs:111 msgid "modals.add-shared-confirm.hint" msgstr "" "Sobald diese Datei als geteilte Bibliothek verwendet wird, können Sie die " "Assets dieser Dateibibliothek in anderen Dateien verwenden." -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/data/common.cljs:110 msgid "modals.add-shared-confirm.message" msgstr "Hinzufügen von “%s” als gemeinsam genutzte Bibliothek" -#: src/app/main/ui/workspace/nudge.cljs +#: src/app/main/ui/workspace/nudge.cljs:60 msgid "modals.big-nudge" msgstr "Maximal" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:127 msgid "modals.change-email.confirm-email" msgstr "Neue E-Mail-Adresse verifizieren" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:114 msgid "modals.change-email.info" msgstr "" "Wir senden Ihnen eine Nachricht an Ihre aktuelle E-Mail-Adresse “%s”, um " "Ihre Identität zu überprüfen." -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:119 msgid "modals.change-email.new-email" msgstr "Neue E-Mail-Adresse" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:136 msgid "modals.change-email.submit" msgstr "E-Mail-Adresse ändern" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:107 msgid "modals.change-email.title" msgstr "Ihre E-Mail-Adresse ändern" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:165, src/app/main/ui/settings/access_tokens.cljs:171 msgid "modals.create-access-token.copy-token" msgstr "Token kopieren" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:142 msgid "modals.create-access-token.expiration-date.label" msgstr "Ablaufdatum" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:136 msgid "modals.create-access-token.name.label" msgstr "Name" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:138 msgid "modals.create-access-token.name.placeholder" msgstr "Durch den Namen kann man erkennen, wofür der Token verwendet wird" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:191 msgid "modals.create-access-token.submit-label" msgstr "Token erzeugen" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:123 msgid "modals.create-access-token.title" msgstr "Zugangstoken generieren" +#: src/app/main/ui/dashboard/team.cljs:873 msgid "modals.create-webhook.submit-label" msgstr "Webhook erstellen" +#: src/app/main/ui/dashboard/team.cljs:838 msgid "modals.create-webhook.title" msgstr "Webhook erstellen" +#: src/app/main/ui/dashboard/team.cljs:849 msgid "modals.create-webhook.url.label" msgstr "Payload-URL" +#: src/app/main/ui/dashboard/team.cljs:850 msgid "modals.create-webhook.url.placeholder" msgstr "https://example.com/postreceive" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:271 msgid "modals.delete-acces-token.accept" msgstr "Token löschen" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:270 msgid "modals.delete-acces-token.message" msgstr "Sind Sie sicher, dass Sie diesen Token löschen möchten?" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:269 msgid "modals.delete-acces-token.title" msgstr "Token löschen" -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:59 msgid "modals.delete-account.cancel" msgstr "Abbrechen und mein Konto behalten" -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:64 msgid "modals.delete-account.confirm" msgstr "Ja, mein Konto löschen" -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:53 msgid "modals.delete-account.info" msgstr "" "Wenn Sie Ihr Konto löschen, verlieren Sie alle Ihre aktuellen Projekte und " "Archive." -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:46 msgid "modals.delete-account.title" msgstr "Sind Sie sicher, dass Sie Ihr Konto löschen möchten?" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:298 msgid "modals.delete-comment-thread.accept" msgstr "Konversation löschen" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:297 msgid "modals.delete-comment-thread.message" msgstr "" "Sind Sie sicher, dass Sie diese Konversation löschen möchten? Alle " "Kommentare in diesem Thread werden gelöscht." -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:296 msgid "modals.delete-comment-thread.title" msgstr "Konversation löschen" +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:140 msgid "modals.delete-component-annotation.message" msgstr "Sind Sie sicher, dass Sie diese Anmerkung löschen möchten?" +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:139 msgid "modals.delete-component-annotation.title" msgstr "Anmerkung löschen" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:123 msgid "modals.delete-file-confirm.accept" msgstr "Datei löschen" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:122 msgid "modals.delete-file-confirm.message" msgstr "Sind Sie sicher, dass Sie diese Datei löschen wollen?" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:121 msgid "modals.delete-file-confirm.title" msgstr "Datei löschen" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:117 msgid "modals.delete-file-multi-confirm.accept" msgstr "Dateien löschen" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:116 msgid "modals.delete-file-multi-confirm.message" msgstr "Sind Sie sicher, dass Sie %s Dateien löschen möchten?" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:115 msgid "modals.delete-file-multi-confirm.title" msgstr "Lösche %s Dateien" +#: src/app/main/ui/dashboard/fonts.cljs:345 msgid "modals.delete-font-variant.message" msgstr "" "Sind Sie sicher, dass Sie diesen Schriftschnitt löschen möchten? Sie wird " "nicht mehr geladen, wenn sie bereits in einer Datei verwendet wird." +#: src/app/main/ui/dashboard/fonts.cljs:344 msgid "modals.delete-font-variant.title" msgstr "Schriftschnitt löschen" +#: src/app/main/ui/dashboard/fonts.cljs:331 msgid "modals.delete-font.message" msgstr "" "Sind Sie sicher, dass Sie diese Schriftart löschen möchten? Sie wird nicht " "mehr geladen, wenn sie bereits in einer Datei verwendet wird." +#: src/app/main/ui/dashboard/fonts.cljs:330 msgid "modals.delete-font.title" msgstr "Schriftart löschen" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs +#: src/app/main/ui/workspace/context_menu.cljs:522, src/app/main/ui/workspace/sidebar/sitemap.cljs:45 msgid "modals.delete-page.body" msgstr "Sind Sie sicher, dass Sie diese Seite löschen wollen?" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs +#: src/app/main/ui/workspace/context_menu.cljs:521, src/app/main/ui/workspace/sidebar/sitemap.cljs:44 msgid "modals.delete-page.title" msgstr "Seite löschen" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:69 msgid "modals.delete-project-confirm.accept" msgstr "Projekt löschen" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:68 msgid "modals.delete-project-confirm.message" msgstr "Sind Sie sicher, dass Sie dieses Projekt löschen möchten?" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:67 msgid "modals.delete-project-confirm.title" msgstr "Projekt löschen" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:51 msgid "modals.delete-shared-confirm.accept" msgid_plural "modals.delete-shared-confirm.accept" msgstr[0] "Datei löschen" msgstr[1] "Dateien löschen" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:55 msgid "modals.delete-shared-confirm.activated.no-files-message" msgid_plural "modals.delete-shared-confirm.activated.no-files-message" msgstr[0] "Es ist in keiner Datei aktiviert." msgstr[1] "Sie sind in keiner Datei aktiviert." -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:57 msgid "modals.delete-shared-confirm.activated.scd-message" msgid_plural "modals.delete-shared-confirm.activated.scd-message" msgstr[0] "Diese Bibliothek ist hier aktiviert: " msgstr[1] "Diese Bibliotheken sind hier aktiviert: " -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:46 msgid "modals.delete-shared-confirm.message" msgid_plural "modals.delete-shared-confirm.message" msgstr[0] "Möchten Sie diese Datei wirklich löschen?" msgstr[1] "Möchten Sie diese Dateien wirklich löschen?" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:41 msgid "modals.delete-shared-confirm.title" msgid_plural "modals.delete-shared-confirm.title" msgstr[0] "Datei löschen" msgstr[1] "Dateien löschen" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:435 msgid "modals.delete-team-confirm.accept" msgstr "Team löschen" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:434 msgid "modals.delete-team-confirm.message" msgstr "" "Sind Sie sicher, dass Sie dieses Team löschen möchten? Alle Projekte und " "Dateien, die mit dem Team verbunden sind, werden dauerhaft gelöscht." -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:433 msgid "modals.delete-team-confirm.title" msgstr "Team löschen" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:427 msgid "modals.delete-team-member-confirm.accept" msgstr "Mitglied löschen" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:426 msgid "modals.delete-team-member-confirm.message" -msgstr "" -"Sind Sie sicher, dass Sie dieses Mitglied aus dem Team löschen möchten?" +msgstr "Sind Sie sicher, dass Sie dieses Mitglied aus dem Team löschen möchten?" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:425 msgid "modals.delete-team-member-confirm.title" msgstr "Teammitglied löschen" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:59 msgid "modals.delete-unpublish-shared-confirm.activated.hint" msgid_plural "modals.delete-unpublish-shared-confirm.activated.hint" msgstr[0] "" @@ -2096,3208 +2289,3520 @@ msgstr[1] "" "Assets, die bereits in diesen Dateien verwendet wurden, bleiben dort " "erhalten (das Design bleibt erhalten)." +#: src/app/main/ui/dashboard/team.cljs:942 msgid "modals.delete-webhook.accept" msgstr "Webhook löschen" +#: src/app/main/ui/dashboard/team.cljs:941 msgid "modals.delete-webhook.message" msgstr "Möchten Sie diesen Webhook wirklich löschen?" +#: src/app/main/ui/dashboard/team.cljs:940 msgid "modals.delete-webhook.title" msgstr "Webhook löschen" +#: src/app/main/ui/dashboard/team.cljs:872 msgid "modals.edit-webhook.submit-label" msgstr "Webhook bearbeiten" +#: src/app/main/ui/dashboard/team.cljs:837 msgid "modals.edit-webhook.title" msgstr "Webhook bearbeiten" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:218 msgid "modals.invite-member-confirm.accept" msgstr "Einladung senden" +#: src/app/main/ui/dashboard/team.cljs:213, src/app/main/ui/onboarding/team_choice.cljs:156 msgid "modals.invite-member.emails" msgstr "E-Mails, durch Komma getrennt" +#: src/app/main/ui/dashboard/team.cljs:197 msgid "modals.invite-member.repeated-invitation" msgstr "" "Einige E-Mails stammen von aktuellen Teammitgliedern. Ihre Einladungen " "werden nicht versendet." -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:190 msgid "modals.invite-team-member.title" msgstr "Mitglieder in das Team einladen" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:423, src/app/main/ui/dashboard/team.cljs:393 msgid "modals.leave-and-close-confirm.hint" msgstr "" "Da Sie das einzige Mitglied dieses Teams sind, wird das Team zusammen mit " "seinen Projekten und Dateien gelöscht." -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:422, src/app/main/ui/dashboard/team.cljs:392 msgid "modals.leave-and-close-confirm.message" msgstr "Sind Sie sicher, dass Sie das %s-Team verlassen wollen?" +#: src/app/main/ui/dashboard/change_owner.cljs:59 msgid "modals.leave-and-reassign.forbidden" msgstr "" -"Sie können das Team nicht verlassen, wenn es kein anderes Mitglied gibt, das " -"Sie zum Besitzer ernennen können. Sie können das Team jedoch löschen." +"Sie können das Team nicht verlassen, wenn es kein anderes Mitglied gibt, " +"das Sie zum Besitzer ernennen können. Sie können das Team jedoch löschen." -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/change_owner.cljs:55 msgid "modals.leave-and-reassign.hint1" msgstr "Sie sind der Eigentümer von %s." -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/change_owner.cljs:78 msgid "modals.leave-and-reassign.promote-and-leave" msgstr "Befördern und verlassen" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/change_owner.cljs:34 msgid "modals.leave-and-reassign.select-member-to-promote" msgstr "Wählen Sie ein Mitglied aus, das befördert werden soll" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/change_owner.cljs:49 msgid "modals.leave-and-reassign.title" msgstr "Wählen Sie ein Mitglied aus, das befördert werden soll" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:402, src/app/main/ui/dashboard/sidebar.cljs:424, src/app/main/ui/dashboard/team.cljs:394, src/app/main/ui/dashboard/team.cljs:416 msgid "modals.leave-confirm.accept" msgstr "Team verlassen" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:401, src/app/main/ui/dashboard/team.cljs:415 msgid "modals.leave-confirm.message" msgstr "Sind Sie sicher, dass Sie dieses Team verlassen wollen?" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:400, src/app/main/ui/dashboard/sidebar.cljs:421, src/app/main/ui/dashboard/team.cljs:391, src/app/main/ui/dashboard/team.cljs:414 msgid "modals.leave-confirm.title" msgstr "Team verlassen" +#: src/app/main/ui/delete_shared.cljs:53 msgid "modals.move-shared-confirm.accept" msgid_plural "modals.move-shared-confirm.accept" msgstr[0] "Verschieben" msgstr[1] "Verschieben" +#: src/app/main/ui/delete_shared.cljs:48 msgid "modals.move-shared-confirm.message" msgid_plural "modals.move-shared-confirm.message" msgstr[0] "Sind Sie sicher, dass Sie diese Bibliothek verschieben wollen?" msgstr[1] "Sind Sie sicher, dass Sie diese Bibliotheken verschieben wollen?" +#: src/app/main/ui/delete_shared.cljs:43 msgid "modals.move-shared-confirm.title" msgid_plural "modals.move-shared-confirm.title" msgstr[0] "Bibliothek verschieben" msgstr[1] "Bibliotheken verschieben" -#: src/app/main/ui/workspace/nudge.cljs +#: src/app/main/ui/workspace/main_menu.cljs:266, src/app/main/ui/workspace/nudge.cljs:47 msgid "modals.nudge-title" msgstr "Verschiebung" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:340 msgid "modals.promote-owner-confirm.accept" msgstr "Befördern" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:339 msgid "modals.promote-owner-confirm.hint" msgstr "" -"Wenn Sie die Eigentümerschaft übertragen, ändern Sie Ihre Rolle in Admin und " -"verlieren einige Berechtigungen für dieses Team. " +"Wenn Sie die Eigentümerschaft übertragen, ändern Sie Ihre Rolle in Admin " +"und verlieren einige Berechtigungen für dieses Team. " -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:338 msgid "modals.promote-owner-confirm.message" -msgstr "" -"Sind Sie sicher, dass Sie diesen Benutzer zum Eigentümer befördern wollen?" +msgstr "Sind Sie sicher, dass Sie diesen Benutzer zum Eigentümer befördern wollen?" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:337 msgid "modals.promote-owner-confirm.title" msgstr "Zum Eigentümer befördern" +#: src/app/main/ui/workspace/libraries.cljs:188 msgid "modals.publish-empty-library.accept" msgstr "Veröffentlichen" +#: src/app/main/ui/workspace/libraries.cljs:187 msgid "modals.publish-empty-library.message" msgstr "" "Ihre Bibliothek ist leer. Sind Sie sicher, dass Sie es veröffentlichen " "wollen?" +#: src/app/main/ui/workspace/libraries.cljs:186 msgid "modals.publish-empty-library.title" msgstr "Leere Bibliothek veröffentlichen" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "modals.remove-shared-confirm.accept" msgstr "Als gemeinsam genutzte Bibliothek entfernen" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "modals.remove-shared-confirm.hint" msgstr "" -"Sobald Sie diese Datai aus den geteilten Bibliotheken entfernen, steht Ihnen " -"die Bibliothek dieser Datei nicht mehr in anderen Dateien zur Verfügung." +"Sobald Sie diese Datai aus den geteilten Bibliotheken entfernen, steht " +"Ihnen die Bibliothek dieser Datei nicht mehr in anderen Dateien zur " +"Verfügung." -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "modals.remove-shared-confirm.message" msgstr "Entfernen Sie “%s” als gemeinsam genutzte Bibliothek" -#: src/app/main/ui/workspace/nudge.cljs +#: src/app/main/ui/workspace/nudge.cljs:53 msgid "modals.small-nudge" msgstr "Minimal" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:52 msgid "modals.unpublish-shared-confirm.accept" msgid_plural "modals.unpublish-shared-confirm.accept" msgstr[0] "Veröffentlichung aufheben" msgstr[1] "Veröffentlichung aufheben" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:47 msgid "modals.unpublish-shared-confirm.message" msgid_plural "modals.unpublish-shared-confirm.message" -msgstr[0] "" -"Möchten Sie die Veröffentlichung dieser Bibliothek wirklich aufheben?" -msgstr[1] "" -"Möchten Sie die Veröffentlichung dieser Bibliotheken wirklich aufheben?" +msgstr[0] "Möchten Sie die Veröffentlichung dieser Bibliothek wirklich aufheben?" +msgstr[1] "Möchten Sie die Veröffentlichung dieser Bibliotheken wirklich aufheben?" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:42 msgid "modals.unpublish-shared-confirm.title" msgid_plural "modals.unpublish-shared-confirm.title" msgstr[0] "Veröffentlichung der Bibliothek aufheben" msgstr[1] "Veröffentlichung der Bibliotheken aufheben" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#, unused msgid "modals.update-remote-component-in-bulk.hint" msgstr "" "Sie sind dabei, Komponenten in einer gemeinsam genutzten Bibliothek zu " "aktualisieren. Dies kann sich auf andere Dateien auswirken, die diese " "verwenden." -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#, unused msgid "modals.update-remote-component-in-bulk.message" msgstr "Komponenten in einer gemeinsamen Bibliothek aktualisieren" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:380 msgid "modals.update-remote-component.accept" msgstr "Aktualisieren" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:379 msgid "modals.update-remote-component.cancel" msgstr "Abbrechen" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:378 msgid "modals.update-remote-component.hint" msgstr "" "Sie sind dabei, eine Komponente in einer geteilten Bibliothek zu " "aktualisieren. Dies kann sich auf andere Dateien auswirken, die diese " "Komponente verwenden." -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:377 msgid "modals.update-remote-component.message" msgstr "Komponente aus einer geteilten Bibliothek aktualiseren" -#: src/app/main/data/common.cljs +#: src/app/main/data/common.cljs:71 msgid "notifications.by-code.upgrade-version" msgstr "Eine neue Version ist verfügbar, bitte aktualisieren Sie die Seite" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:154, src/app/main/ui/dashboard/team.cljs:595 msgid "notifications.invitation-email-sent" msgstr "Einladung erfolgreich gesendet" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:616 msgid "notifications.invitation-link-copied" msgstr "Einladungslink kopiert" -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:24 msgid "notifications.profile-deletion-not-allowed" msgstr "" -"Sie können Ihr Profil nicht löschen. Weisen Sie Ihre Teams neu zu, bevor Sie " -"fortfahren." +"Sie können Ihr Profil nicht löschen. Weisen Sie Ihre Teams neu zu, bevor " +"Sie fortfahren." -#: src/app/main/ui/settings/profile.cljs, src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:29, src/app/main/ui/settings/profile.cljs:35 msgid "notifications.profile-saved" msgstr "Profil erfolgreich gespeichert!" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:63 msgid "notifications.validation-email-sent" msgstr "Verifizierungs-E-Mail an %s gesendet. Prüfen Sie Ihren Posteingang!" +#, unused msgid "onboarding-v2.before-start.desc1" msgstr "" -"Sie sollten wissen, dass es viele Ressourcen gibt, die Ihnen den Einstieg in " -"Penpot erleichtern, wie z. B. das Benutzerhandbuch und unseren Youtube-Kanal." +"Sie sollten wissen, dass es viele Ressourcen gibt, die Ihnen den Einstieg " +"in Penpot erleichtern, wie z. B. das Benutzerhandbuch und unseren " +"Youtube-Kanal." +#, unused msgid "onboarding-v2.before-start.desc2" msgstr "" "Detaillierte Informationen über die Verwendung von Penpot. Vom Prototyping " "bis zum Organisieren und Teilen von Designs." +#, unused msgid "onboarding-v2.before-start.desc2.title" msgstr "Benutzerhandbuch" +#, unused msgid "onboarding-v2.before-start.desc3" msgstr "" "Sie können sich unsere Tutorials und die von unserer Community erstellten " "Tutorials ansehen." +#, unused msgid "onboarding-v2.before-start.desc3.title" msgstr "Video-Tutorials" +#, unused msgid "onboarding-v2.before-start.title" msgstr "Bevor Sie beginnen" +#: src/app/main/ui/onboarding/newsletter.cljs:63 msgid "onboarding-v2.newsletter.desc" msgstr "" "Um über den Fortschritt der Produktentwicklung und Neuigkeiten auf dem " "Laufenden zu bleiben, abonnieren Sie den Penpot-Newsletter." +#: src/app/main/ui/onboarding/newsletter.cljs:83 msgid "onboarding-v2.newsletter.news" msgstr "" "Senden Sie mir Neuigkeiten über Penpot (Blogbeiträge, Video-Tutorials, " "Streamings, ...)." +#: src/app/main/ui/onboarding/newsletter.cljs:91 msgid "onboarding-v2.newsletter.privacy1" msgstr "Datenschutz ist uns wichtig, hier können Sie das nachlesen " +#: src/app/main/ui/onboarding/newsletter.cljs:97 msgid "onboarding-v2.newsletter.privacy2" msgstr "" "Wir werden nur relevante E-Mails an Sie senden. Sie können sich jederzeit " "über den Abmeldelink in jedem unserer Newsletter abmelden." +#: src/app/main/ui/onboarding/newsletter.cljs:71 msgid "onboarding-v2.newsletter.updates" msgstr "" "Ich möchte Informationen über Produktaktualisierungen erhalten (neue " "Funktionen, Veröffentlichung neuer Versionen, Verbesserungen...)." +#, unused msgid "onboarding-v2.welcome.desc1" msgstr "" "Penpot ist Open Source und wird sowohl von Kaleidos als auch von der " "Community entwickelt, wo sich viele Leute bereits gegenseitig helfen. Jeder " "kann mitmachen:" +#, unused msgid "onboarding-v2.welcome.desc2" msgstr "" "Ein öffentlicher Raum zum Lernen, Teilen und Diskutieren über Penpot, seine " "Gegenwart und Zukunft mit der gesamten Community und dem Penpot-Kernteam." +#, unused msgid "onboarding-v2.welcome.desc2.title" msgstr "Mitwirkung in der Community" +#, unused msgid "onboarding-v2.welcome.desc3" msgstr "" -"Hier erfahren Sie, wie Sie bei Übersetzungen, Feature Requests, Core-" -"Entwicklung und der Fehlersuche helfen können…" +"Hier erfahren Sie, wie Sie bei Übersetzungen, Feature Requests, " +"Core-Entwicklung und der Fehlersuche helfen können…" +#, unused msgid "onboarding-v2.welcome.desc3.title" msgstr "Leitfaden für Mitwirkende" +#: src/app/main/ui/onboarding/team_choice.cljs:31 msgid "onboarding-v2.welcome.title" msgstr "Willkommen bei Penpot!" +#: src/app/main/ui/onboarding/team_choice.cljs:229 msgid "onboarding.choice.team-up.continue-creating-team" msgstr "Mit der Erstellung eines Teams fortsetzen" +#: src/app/main/ui/onboarding/team_choice.cljs:239 msgid "onboarding.choice.team-up.continue-without-a-team" msgstr "Ohne Team fortsetzen" +#: src/app/main/ui/onboarding/team_choice.cljs:167 msgid "onboarding.choice.team-up.create-team-and-invite" msgstr "Team erstellen & einladen" +#, unused msgid "onboarding.choice.team-up.create-team-and-send-invites" msgstr "Team erstellen und Einladungen versenden" +#: src/app/main/ui/onboarding/team_choice.cljs:170 msgid "onboarding.choice.team-up.create-team-and-send-invites-description" msgstr "Sie können später einladen" +#: src/app/main/ui/onboarding/team_choice.cljs:215 msgid "onboarding.choice.team-up.create-team-desc" msgstr "Nach der Bennenung Ihres Teams, können Sie andere Personen einladen." +#: src/app/main/ui/onboarding/team_choice.cljs:224 msgid "onboarding.choice.team-up.create-team-placeholder" msgstr "Geben Sie den Namen des Teams ein" +#: src/app/main/ui/onboarding/team_choice.cljs:168 msgid "onboarding.choice.team-up.create-team-without-invite" msgstr "Team erstellen" +#, unused msgid "onboarding.choice.team-up.create-team-without-inviting" msgstr "Team ohne Einladungen erstellen" +#: src/app/main/ui/dashboard/projects.cljs:89, src/app/main/ui/onboarding/team_choice.cljs:140 msgid "onboarding.choice.team-up.invite-members" msgstr "Mitglieder einladen" +#: src/app/main/ui/onboarding/team_choice.cljs:141 msgid "onboarding.choice.team-up.invite-members-info" msgstr "" "Denken Sie daran, alle einzubeziehen. Entwickler, Designer, Manager... die " "Vielfalt macht's :)" +#: src/app/main/ui/dashboard/team.cljs:202, src/app/main/ui/onboarding/team_choice.cljs:146 msgid "onboarding.choice.team-up.roles" msgstr "Einladen mit der Rolle:" +#: src/app/main/ui/onboarding/team_choice.cljs:232 msgid "onboarding.choice.team-up.start-without-a-team" msgstr "Ohne Team starten" +#: src/app/main/ui/onboarding/team_choice.cljs:234 msgid "onboarding.choice.team-up.start-without-a-team-description" msgstr "Sie können später ein Team erstellen." +#, unused msgid "onboarding.newsletter.accept" msgstr "Ja, abonnieren" +#: src/app/main/ui/onboarding/newsletter.cljs:40 msgid "onboarding.newsletter.acceptance-message" msgstr "" "Ihre Abonnementanfrage wurde gesendet, wir senden Ihnen eine E-Mail zur " "Bestätigung." +#: src/app/main/ui/onboarding/newsletter.cljs:95 msgid "onboarding.newsletter.policy" msgstr "Datenschutzbestimmungen." +#: src/app/main/ui/onboarding/newsletter.cljs:60 msgid "onboarding.newsletter.title" msgstr "Möchten Sie die Penpot-Nachrichten erhalten?" -msgid "onboarding.team-modal.create-team" -msgstr "Ein Team erstellen" - -msgid "onboarding.team-modal.create-team-desc" -msgstr "" -"In einem Team können Sie mit anderen Penpot-Nutzern zusammenarbeiten, die an " -"denselben Dateien und Projekten arbeiten." - -msgid "onboarding.team-modal.create-team-feature-1" -msgstr "Unbegrenzte Anzahl von Dateien und Projekten" - -msgid "onboarding.team-modal.create-team-feature-2" -msgstr "Multiplayer-Edition" - -msgid "onboarding.team-modal.create-team-feature-3" -msgstr "Rollenverwaltung" - -msgid "onboarding.team-modal.create-team-feature-4" -msgstr "Unbegrenzte Anzahl von Mitgliedern" - -msgid "onboarding.team-modal.create-team-feature-5" -msgstr "100% kostenlos!" - -msgid "onboarding.team-modal.team-definition" -msgstr "Was ist ein Team?" - -msgid "onboarding.templates.subtitle" -msgstr "Hier sind einige Vorlagen." - -msgid "onboarding.templates.title" -msgstr "Beginnen Sie mit dem Entwerfen" - -msgid "onboarding.welcome.alt" -msgstr "Penpot" - -#: src/app/main/ui/auth/recovery.cljs -msgid "profile.recovery.go-to-login" -msgstr "Zur Anmeldung" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.team-size.11-30" -msgstr "11-30" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.team-size.2-10" -msgstr "2-10" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.team-size.31-50" -msgstr "31-50" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.adobe-xd" -msgstr "Adobe XD" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.canva" -msgstr "Canva" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.developer" -msgstr "Developer" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.figma" -msgstr "Figma" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.founder" -msgstr "Gründer/VP" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.freelancer" -msgstr "Ich bin ein Freelancer" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.invision" -msgstr "InVision" - -#: src/app/main/ui/onboarding/questions.cljs +#: src/app/main/ui/onboarding/questions.cljs:118 msgid "onboarding.questions.lets-get-started" msgstr "Los geht's!" -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.product-management" -msgstr "Produkt- oder Projektmanager" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.marketing" -msgstr "Marketing" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.team-size.more-than-50" -msgstr "Mehr als 50" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.next" -msgstr "Weiter" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.other" -msgstr "Sonstiges (bitte angeben)" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.team-size.personal-project" -msgstr "Ich arbeite an einem persönlichen Projekt" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.previous" -msgstr "Zurück" - -#: src/app/main/ui/onboarding/questions.cljs +#: src/app/main/ui/onboarding/questions.cljs:307 msgid "onboarding.questions.step3.question2" msgstr "Was ist Ihre Rolle?" -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.select-option" -msgstr "Wählen Sie eine Option" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.sketch" -msgstr "Sketch" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.start" -msgstr "Start" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.student-teacher" -msgstr "Schüler oder Lehrer" - -#: src/app/main/ui/onboarding/questions.cljs +#: src/app/main/ui/onboarding/questions.cljs:320 msgid "onboarding.questions.step3.question3" msgstr "Wie groß ist Ihr Team?" -#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, +#: src/app/main/ui/onboarding/questions.cljs:273 +msgid "onboarding.questions.team-size.11-30" +msgstr "11-30" + +#: src/app/main/ui/onboarding/questions.cljs:274 +msgid "onboarding.questions.team-size.2-10" +msgstr "2-10" + +#: src/app/main/ui/onboarding/questions.cljs:272 +msgid "onboarding.questions.team-size.31-50" +msgstr "31-50" + +#: src/app/main/ui/onboarding/questions.cljs:271 +msgid "onboarding.questions.team-size.more-than-50" +msgstr "Mehr als 50" + +#: src/app/main/ui/onboarding/questions.cljs:276 +msgid "onboarding.questions.team-size.personal-project" +msgstr "Ich arbeite an einem persönlichen Projekt" + +#: src/app/main/ui/onboarding/team_choice.cljs:213 +msgid "onboarding.team-modal.create-team" +msgstr "Ein Team erstellen" + +#: src/app/main/ui/onboarding/team_choice.cljs:35 +msgid "onboarding.team-modal.create-team-desc" +msgstr "" +"In einem Team können Sie mit anderen Penpot-Nutzern zusammenarbeiten, die " +"an denselben Dateien und Projekten arbeiten." + +#: src/app/main/ui/onboarding/team_choice.cljs:40 +msgid "onboarding.team-modal.create-team-feature-1" +msgstr "Unbegrenzte Anzahl von Dateien und Projekten" + +#: src/app/main/ui/onboarding/team_choice.cljs:44 +msgid "onboarding.team-modal.create-team-feature-2" +msgstr "Multiplayer-Edition" + +#: src/app/main/ui/onboarding/team_choice.cljs:48 +msgid "onboarding.team-modal.create-team-feature-3" +msgstr "Rollenverwaltung" + +#: src/app/main/ui/onboarding/team_choice.cljs:52 +msgid "onboarding.team-modal.create-team-feature-4" +msgstr "Unbegrenzte Anzahl von Mitgliedern" + +#: src/app/main/ui/onboarding/team_choice.cljs:56 +msgid "onboarding.team-modal.create-team-feature-5" +msgstr "100% kostenlos!" + +#: src/app/main/ui/onboarding/team_choice.cljs:33 +msgid "onboarding.team-modal.team-definition" +msgstr "Was ist ein Team?" + +#: src/app/main/ui/onboarding/templates.cljs:78 +msgid "onboarding.templates.subtitle" +msgstr "Hier sind einige Vorlagen." + +#: src/app/main/ui/onboarding/templates.cljs:77 +msgid "onboarding.templates.title" +msgstr "Beginnen Sie mit dem Entwerfen" + +#, unused +msgid "onboarding.welcome.alt" +msgstr "Penpot" + +#: src/app/main/ui/auth/recovery.cljs:99 +msgid "profile.recovery.go-to-login" +msgstr "Zur Anmeldung" + +#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:221 msgid "settings.detach" msgstr "Trennen" -#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs +#: src/app/main/ui/viewer/inspect/exports.cljs:147, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:631, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:137, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:148, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:188, src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:158, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:399, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:410, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:430, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:441, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:458, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:472, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:309, src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:183, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:373, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:389, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:245, src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:172 msgid "settings.multiple" msgstr "Mehrere" -#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:271 msgid "settings.select-this-color" msgstr "Elemente mit diesem Stil auswählen" # SECTIONS +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:414 msgid "shortcut-section.basics" msgstr "Grundlagen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:420 msgid "shortcut-section.dashboard" msgstr "Dashboard" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:423 msgid "shortcut-section.viewer" msgstr "Ansicht" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:417 msgid "shortcut-section.workspace" msgstr "Arbeitsbereich" # SUBSECTIONS +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:56 msgid "shortcut-subsection.alignment" msgstr "Ausrichtung" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:57 msgid "shortcut-subsection.edit" msgstr "Bearbeiten" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:58 msgid "shortcut-subsection.general-dashboard" msgstr "Allgemein" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:59 msgid "shortcut-subsection.general-viewer" msgstr "Allgemein" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:60 msgid "shortcut-subsection.main-menu" msgstr "Hauptmenü" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:61 msgid "shortcut-subsection.modify-layers" msgstr "Ändern von Ebenen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:62 msgid "shortcut-subsection.navigation-dashboard" msgstr "Navigation" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:63 msgid "shortcut-subsection.navigation-viewer" msgstr "Navigation" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:64 msgid "shortcut-subsection.navigation-workspace" msgstr "Navigation" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:65 msgid "shortcut-subsection.panels" msgstr "Paneele" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:66 msgid "shortcut-subsection.path-editor" msgstr "Pfade" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:67 msgid "shortcut-subsection.shape" msgstr "Formen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:68 msgid "shortcut-subsection.text-editor" msgstr "Texte" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:69 msgid "shortcut-subsection.tools" msgstr "Werkzeuge" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:70 msgid "shortcut-subsection.zoom-viewer" msgstr "Zoom" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:71 msgid "shortcut-subsection.zoom-workspace" msgstr "Zoom" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:72 msgid "shortcuts.add-comment" msgstr "Kommentare" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:73 msgid "shortcuts.add-node" msgstr "Punkt hinzufügen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:74 msgid "shortcuts.align-bottom" msgstr "Unten ausrichten" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:75 msgid "shortcuts.align-center" msgstr "Zentrieren" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:76 msgid "shortcuts.align-hcenter" msgstr "Horizontal zentrieren" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:77 msgid "shortcuts.align-justify" msgstr "Blocksatz" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:78 msgid "shortcuts.align-left" msgstr "Linksbündig ausrichten" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:79 msgid "shortcuts.align-right" msgstr "Rechtsbündig ausrichten" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:80 msgid "shortcuts.align-top" msgstr "Oben ausrichten" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:81 msgid "shortcuts.align-vcenter" msgstr "Mittig ausrichten (vertikal)" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:82 msgid "shortcuts.artboard-selection" msgstr "Zeichenfläche aus Auswahl erstellen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:83 msgid "shortcuts.bold" msgstr "Umschalten auf Fettdruck" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:84 msgid "shortcuts.bool-difference" msgstr "Subtrahieren (Boolesche Operation)" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:85 msgid "shortcuts.bool-exclude" msgstr "Ausschluss" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:86 msgid "shortcuts.bool-intersection" msgstr "Schnittmenge" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:87 msgid "shortcuts.bool-union" msgstr "Vereinigung" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:88 msgid "shortcuts.bring-back" msgstr "In den Hintergrund" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:89 msgid "shortcuts.bring-backward" msgstr "Eins nach hinten" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:90 msgid "shortcuts.bring-forward" msgstr "Eins nach vorne" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:91 msgid "shortcuts.bring-front" msgstr "In den Vordergrund" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:92 msgid "shortcuts.clear-undo" msgstr "Verlauf löschen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:93 msgid "shortcuts.copy" msgstr "Kopieren" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:94 msgid "shortcuts.create-component" msgstr "Komponente erstellen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:95 msgid "shortcuts.create-new-project" msgstr "Neues Projekt erstellen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:96 msgid "shortcuts.cut" msgstr "Ausschneiden" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:97 msgid "shortcuts.decrease-zoom" msgstr "Auszoomen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:98 msgid "shortcuts.delete" msgstr "Löschen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:99 msgid "shortcuts.delete-node" msgstr "Punkt löschen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:100 msgid "shortcuts.detach-component" msgstr "Komponente lösen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:101 msgid "shortcuts.draw-curve" msgstr "Kurve" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:102 msgid "shortcuts.draw-ellipse" msgstr "Ellipse" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:103 msgid "shortcuts.draw-frame" msgstr "Board" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:104 msgid "shortcuts.draw-nodes" msgstr "Pfad zeichnen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:105 msgid "shortcuts.draw-path" msgstr "Pfad" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:106 msgid "shortcuts.draw-rect" msgstr "Rechteck" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:107 msgid "shortcuts.draw-text" msgstr "Text" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:108 msgid "shortcuts.duplicate" msgstr "Duplizieren" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:109 msgid "shortcuts.escape" msgstr "Abbrechen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:110 msgid "shortcuts.export-shapes" msgstr "Formen exportieren" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:111 msgid "shortcuts.fit-all" msgstr "Passend zoomen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:112 msgid "shortcuts.flip-horizontal" msgstr "Horizontal spiegeln" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:113 msgid "shortcuts.flip-vertical" msgstr "Vertikal spiegeln" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:114 msgid "shortcuts.font-size-dec" msgstr "Schriftgröße verkleinern" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:115 msgid "shortcuts.font-size-inc" msgstr "Schriftgröße erhöhen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:116 msgid "shortcuts.go-to-drafts" msgstr "Zu den Entwürfen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:117 msgid "shortcuts.go-to-libs" msgstr "Zu gemeinsam genutzten Bibliotheken wechseln" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:118 msgid "shortcuts.go-to-search" msgstr "Suchen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:119 msgid "shortcuts.group" msgstr "Gruppieren" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:120 msgid "shortcuts.h-distribute" msgstr "Horizontal verteilen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:121 msgid "shortcuts.hide-ui" msgstr "Benutzeroberfläche ein-/ausblenden" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:122 msgid "shortcuts.increase-zoom" msgstr "Einzoomen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:123 msgid "shortcuts.insert-image" msgstr "Bild einfügen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:124 msgid "shortcuts.italic" msgstr "Umschalten auf Kursivdruck" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:125 msgid "shortcuts.join-nodes" msgstr "Punkte verbinden" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:126 msgid "shortcuts.letter-spacing-dec" msgstr "Buchstabenabstand verringern" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:127 msgid "shortcuts.letter-spacing-inc" msgstr "Buchstabenabstand erhöhen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:128 msgid "shortcuts.line-height-dec" msgstr "Zeilenhöhe verringern" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:129 msgid "shortcuts.line-height-inc" msgstr "Zeilenhöhe erhöhen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:130 msgid "shortcuts.line-through" msgstr "Durchgestrichen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:131 msgid "shortcuts.make-corner" msgstr "Zur Ecke umwandeln" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:132 msgid "shortcuts.make-curve" msgstr "Kurve erstellen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:133 msgid "shortcuts.mask" msgstr "Maskieren" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:134 msgid "shortcuts.merge-nodes" msgstr "Punkte zusammenführen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:135 msgid "shortcuts.move" msgstr "Verschieben" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:136 msgid "shortcuts.move-fast-down" msgstr "Schnell nach unten verschieben" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:137 msgid "shortcuts.move-fast-left" msgstr "Schnell nach links verschieben" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:138 msgid "shortcuts.move-fast-right" msgstr "Schnell nach rechts verschieben" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:139 msgid "shortcuts.move-fast-up" msgstr "Schnell nach oben verschieben" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:140 msgid "shortcuts.move-nodes" msgstr "Punkte verschieben" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:141 msgid "shortcuts.move-unit-down" msgstr "Nach unten verschieben" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:142 msgid "shortcuts.move-unit-left" msgstr "Nach links verschieben" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:143 msgid "shortcuts.move-unit-right" msgstr "Nach rechts verschieben" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:144 msgid "shortcuts.move-unit-up" msgstr "Nach oben verschieben" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:145 msgid "shortcuts.next-frame" msgstr "Nächstes Board" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:516 msgid "shortcuts.not-found" msgstr "Kein Tastaturkürzel gefunden" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:146 msgid "shortcuts.opacity-0" msgstr "Deckkraft auf 100% setzen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:147 msgid "shortcuts.opacity-1" msgstr "Deckkraft auf 10% setzen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:148 msgid "shortcuts.opacity-2" msgstr "Deckkraft auf 20% setzen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:149 msgid "shortcuts.opacity-3" msgstr "Deckkraft auf 30% setzen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:150 msgid "shortcuts.opacity-4" msgstr "Deckkraft auf 40% setzen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:151 msgid "shortcuts.opacity-5" msgstr "Deckkraft auf 50% setzen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:152 msgid "shortcuts.opacity-6" msgstr "Deckkraft auf 60% setzen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:153 msgid "shortcuts.opacity-7" msgstr "Deckkraft auf 70% setzen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:154 msgid "shortcuts.opacity-8" msgstr "Deckkraft auf 80% setzen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:155 msgid "shortcuts.opacity-9" msgstr "Deckkraft auf 90% setzen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:156 msgid "shortcuts.open-color-picker" msgstr "Farbwähler" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:157 msgid "shortcuts.open-comments" msgstr "Zum Kommentarbereich im Ansichtsmodus" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:158 msgid "shortcuts.open-dashboard" msgstr "Zum Dashboard" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:159 msgid "shortcuts.open-inspect" msgstr "Zur Spezifikation im Ansichtsmodus" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:160 msgid "shortcuts.open-interactions" msgstr "Zum Ansichtsmodus" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:161 msgid "shortcuts.open-viewer" msgstr "Zum Ansichtsmodus" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:162 msgid "shortcuts.open-workspace" msgstr "Zum Arbeitsbereich" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:260 msgid "shortcuts.or" msgstr " oder " +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:163 msgid "shortcuts.paste" msgstr "Einfügen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:164 msgid "shortcuts.prev-frame" msgstr "Vorheriges Board" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:165 msgid "shortcuts.redo" msgstr "Wiederholen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:166 msgid "shortcuts.reset-zoom" msgstr "Zoom zurücksetzen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:167 msgid "shortcuts.scale" msgstr "Skalieren" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:168 msgid "shortcuts.search-placeholder" msgstr "Tastaturkürzel suchen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:169 msgid "shortcuts.select-all" msgstr "Alles auswählen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:170 msgid "shortcuts.select-next" msgstr "Nächste Ebene auswählen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:171 msgid "shortcuts.select-parent-layer" msgstr "Übergeordnete Ebene auswählen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:172 msgid "shortcuts.select-prev" msgstr "Vorherige Ebene auswählen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:173 msgid "shortcuts.separate-nodes" msgstr "Punkte trennen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:174 msgid "shortcuts.show-pixel-grid" msgstr "Pixelraster ein-/ausblenden" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:175 msgid "shortcuts.show-shortcuts" msgstr "Tastaturkürzel ein-/ausblenden" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:176 msgid "shortcuts.snap-nodes" msgstr "An den Punkten ausrichten" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:177 msgid "shortcuts.snap-pixel-grid" msgstr "Am Pixelraster ausrichten" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:178 msgid "shortcuts.start-editing" msgstr "Mit der Bearbeitung beginnen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:179 msgid "shortcuts.start-measure" msgstr "Mit der Vermessung beginnen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:180 msgid "shortcuts.stop-measure" msgstr "Mit der Vermessung abbrechen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:181 msgid "shortcuts.text-align-center" msgstr "Zentriert ausrichten" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:182 msgid "shortcuts.text-align-justify" msgstr "Blocksatz" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:183 msgid "shortcuts.text-align-left" msgstr "Linksbündig ausrichten" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:184 msgid "shortcuts.text-align-right" msgstr "Rechtsbündig ausrichten" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:185 msgid "shortcuts.thumbnail-set" msgstr "Miniaturansichten festlegen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:496, src/app/main/ui/workspace/sidebar/shortcuts.cljs:505 msgid "shortcuts.title" msgstr "Tastaturkürzel" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:186 msgid "shortcuts.toggle-alignment" msgstr "Dynamische Ausrichtung umschalten" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:187 msgid "shortcuts.toggle-assets" msgstr "Assets einblenden" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:188 msgid "shortcuts.toggle-colorpalette" msgstr "Farbpalette ein-/ausblenden" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:189 msgid "shortcuts.toggle-focus-mode" msgstr "Fokusmodus umschalten" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:190 msgid "shortcuts.toggle-fullscreen" msgstr "Vollbild aktivieren/deaktivieren" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:191 msgid "shortcuts.toggle-guides" msgstr "Hilfslinien anzeigen / ausblenden" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:192 msgid "shortcuts.toggle-history" msgstr "Verlauf ein-/ausblenden" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:193 msgid "shortcuts.toggle-layers" msgstr "Ebenen ein-/ausblenden" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:194 msgid "shortcuts.toggle-layout-flex" msgstr "Flex-Layout hinzufügen/entfernen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:195 msgid "shortcuts.toggle-layout-grid" msgstr "Grid-Layout hinzufügen/entfernen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:196 msgid "shortcuts.toggle-lock" msgstr "Auswahl sperren" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:197 msgid "shortcuts.toggle-lock-size" msgstr "Seitenverhältnis sperren/entsperren" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:198 msgid "shortcuts.toggle-rulers" msgstr "Lineale anzeigen / ausblenden" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:200 msgid "shortcuts.toggle-snap-guides" msgstr "An Hilfslinien ausrichten" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:201 +msgid "shortcuts.toggle-snap-ruler-guide" +msgstr "An den Hilfslinien des Lineals ausrichten" + +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:202 msgid "shortcuts.toggle-textpalette" msgstr "Textpalette ein-/ausblenden" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:203 msgid "shortcuts.toggle-theme" msgstr "Theme ändern" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:204 msgid "shortcuts.toggle-visibility" msgstr "Elemente ein-/ausblenden" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:205 msgid "shortcuts.toggle-zoom-style" msgstr "Zoom-Optionen umschalten" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:206 msgid "shortcuts.underline" msgstr "Unterstrichen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:207 msgid "shortcuts.undo" msgstr "Rückgängig" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:208 msgid "shortcuts.ungroup" msgstr "Gruppierung aufheben" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:209 msgid "shortcuts.unmask" msgstr "Maske entfernen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:210 msgid "shortcuts.v-distribute" msgstr "Vertikal verteilen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:211 msgid "shortcuts.zoom-lense-decrease" msgstr "Ansicht mit Zoomwerkzeug verkleinern" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:212 msgid "shortcuts.zoom-lense-increase" msgstr "Ansicht mit Zoomwerkzeug vergrößern" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:213 msgid "shortcuts.zoom-selected" msgstr "Zur Auswahl zoomen" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:771 msgid "team.webhooks.max-length" msgstr "Der Name des Webhooks darf höchstens 2048 Zeichen lang sein." -#: src/app/main/ui/dashboard/files.cljs +#: src/app/main/ui/dashboard/files.cljs:158 msgid "title.dashboard.files" msgstr "%s - Penpot" -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:37 msgid "title.dashboard.font-providers" msgstr "Schriftenhersteller - %s - Penpot" -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:36 msgid "title.dashboard.fonts" msgstr "Schriftarten - %s - Penpot" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:320 msgid "title.dashboard.projects" msgstr "Projekte - %s - Penpot" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:32 msgid "title.dashboard.search" msgstr "Suchen - %s - Penpot" -#: src/app/main/ui/dashboard/libraries.cljs +#: src/app/main/ui/dashboard/libraries.cljs:44 msgid "title.dashboard.shared-libraries" msgstr "Gemeinsam genutzte Bibliotheken - %s - Penpot" -#: src/app/main/ui/auth/verify_token.cljs, src/app/main/ui/auth.cljs +#: src/app/main/ui/auth/verify_token.cljs:68, src/app/main/ui/auth.cljs:54 msgid "title.default" msgstr "Penpot - Gestaltungsfreiheit für Teams" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:292 msgid "title.settings.access-tokens" msgstr "Profil - Zugangstokens" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:110 msgid "title.settings.feedback" msgstr "Feedback geben - Penpot" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:80 msgid "title.settings.options" msgstr "Einstellungen - Penpot" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:115 msgid "title.settings.password" msgstr "Passwort - Penpot" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:115 msgid "title.settings.profile" msgstr "Profil - Penpot" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:727 msgid "title.team-invitations" msgstr "Einladungen - %s - Penpot" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:493 msgid "title.team-members" msgstr "Mitglieder - %s - Penpot" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1036 msgid "title.team-settings" msgstr "Einstellungen - %s - Penpot" +#: src/app/main/ui/dashboard/team.cljs:989 msgid "title.team-webhooks" msgstr "Webhooks - %s - Penpot" -#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs +#: src/app/main/ui/viewer.cljs:419 msgid "title.viewer" msgstr "%s - Ansichtsmodus - Penpot" -#: src/app/main/ui/workspace.cljs +#: src/app/main/ui/workspace.cljs:190 msgid "title.workspace" msgstr "%s - Penpot" +#: src/app/main/ui.cljs:144 msgid "viewer.breaking-change.description" msgstr "" "Dieser geteilte Link ist nicht mehr gültig. Erstellen Sie einen neuen oder " "bitten Sie den Eigentümer um einen neuen Link." +#: src/app/main/ui.cljs:143 msgid "viewer.breaking-change.message" msgstr "Entschuldigung!" -#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs +#: src/app/main/ui/viewer.cljs:569 msgid "viewer.empty-state" msgstr "Keine Zeichenflächen auf der Seite gefunden." -#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs +#: src/app/main/ui/viewer.cljs:574 msgid "viewer.frame-not-found" msgstr "Keine Zeichenfläche gefunden." +#: src/app/main/ui/viewer/header.cljs:336 msgid "viewer.header.comments-section" msgstr "Kommentare (%s)" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/interactions.cljs:292 msgid "viewer.header.dont-show-interactions" msgstr "Interaktionen nicht anzeigen" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/header.cljs:188 msgid "viewer.header.fullscreen" msgstr "Vollbildmodus" +#: src/app/main/ui/viewer/header.cljs:345 msgid "viewer.header.inspect-section" msgstr "Spezifikation (%s)" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/interactions.cljs:282 msgid "viewer.header.interactions" msgstr "Interaktionen" +#: src/app/main/ui/viewer/header.cljs:327 msgid "viewer.header.interactions-section" msgstr "Interaktionen (%s)" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/share_link.cljs:187 msgid "viewer.header.share.copy-link" msgstr "Link kopieren" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/interactions.cljs:300 msgid "viewer.header.show-interactions" msgstr "Interaktionen anzeigen" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/interactions.cljs:311 msgid "viewer.header.show-interactions-on-click" msgstr "Interaktionen beim Klicken anzeigen" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/header.cljs:231 msgid "viewer.header.sitemap" msgstr "Sitemap" +#: src/app/main/ui/dashboard/team.cljs:948 msgid "webhooks.last-delivery.success" msgstr "Die letzte Übertragung war erfolgreich." -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:58 msgid "workspace.align.hcenter" msgstr "Zentrieren (horizontal) (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:74 msgid "workspace.align.hdistribute" msgstr "Horizontal verteilen (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:50 msgid "workspace.align.hleft" msgstr "Linksbündig ausrichten (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:66 msgid "workspace.align.hright" msgstr "Rechtsbündig ausrichten (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:99 msgid "workspace.align.vbottom" msgstr "Unten ausrichten (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:91 msgid "workspace.align.vcenter" msgstr "Mittig ausrichten (vertikal) (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:104 msgid "workspace.align.vdistribute" msgstr "Vertikal verteilen (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:83 msgid "workspace.align.vtop" msgstr "Oben ausrichten (%s)" #: src/app/main/ui/workspace/sidebar/assets.cljs +#, unused msgid "workspace.assets.assets" msgstr "Assets" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets.cljs:134 msgid "workspace.assets.box-filter-all" msgstr "Alle Assets" -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/dashboard/grid.cljs:130, src/app/main/ui/dashboard/grid.cljs:162, src/app/main/ui/workspace/sidebar/assets/colors.cljs:485, src/app/main/ui/workspace/sidebar/assets.cljs:150 msgid "workspace.assets.colors" msgstr "Farben" -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/dashboard/grid.cljs:126, src/app/main/ui/dashboard/grid.cljs:141, src/app/main/ui/workspace/sidebar/assets/components.cljs:513, src/app/main/ui/workspace/sidebar/assets.cljs:139 msgid "workspace.assets.components" msgstr "Komponenten" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:131 msgid "workspace.assets.create-group" msgstr "Gruppe erstellen" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:142 msgid "workspace.assets.create-group-hint" msgstr "" -"Ihre Elemente werden automatisch nach diesem Schema benannt: \"Gruppenname / " -"Elementname\"" +"Ihre Elemente werden automatisch nach diesem Schema benannt: \"Gruppenname " +"/ Elementname\"" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/context_menu.cljs:529, src/app/main/ui/workspace/sidebar/assets/colors.cljs:251, src/app/main/ui/workspace/sidebar/assets/components.cljs:577, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:424, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:443 msgid "workspace.assets.delete" msgstr "Löschen" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/context_menu.cljs:534, src/app/main/ui/workspace/sidebar/assets/components.cljs:572 msgid "workspace.assets.duplicate" msgstr "Duplizieren" +#: src/app/main/ui/workspace/sidebar/assets/components.cljs:571 msgid "workspace.assets.duplicate-main" msgstr "Hauptkomponente duplizieren" -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:247, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:439 msgid "workspace.assets.edit" msgstr "Bearbeiten" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets.cljs:176 msgid "workspace.assets.filter" msgstr "Filtern" -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/graphics.cljs:384, src/app/main/ui/workspace/sidebar/assets.cljs:145 msgid "workspace.assets.graphics" msgstr "Grafiken" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:255, src/app/main/ui/workspace/sidebar/assets/components.cljs:581, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:428, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:448 msgid "workspace.assets.group" msgstr "Gruppieren" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:141 msgid "workspace.assets.group-name" msgstr "Name der Gruppe" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets.cljs:168 msgid "workspace.assets.libraries" msgstr "Bibliotheken" +#: src/app/main/ui/workspace/sidebar/assets/file_library.cljs:62, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:347 msgid "workspace.assets.local-library" msgstr "lokale Bibliothek" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/file_library.cljs:295 msgid "workspace.assets.not-found" msgstr "Keine Assets gefunden" +#, unused msgid "workspace.assets.open-library" msgstr "Bibliotheksdatei öffnen" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/context_menu.cljs:532, src/app/main/ui/workspace/sidebar/assets/colors.cljs:243, src/app/main/ui/workspace/sidebar/assets/components.cljs:566, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:421, src/app/main/ui/workspace/sidebar/assets/groups.cljs:63, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:434 msgid "workspace.assets.rename" msgstr "Umbenennen" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:132 msgid "workspace.assets.rename-group" msgstr "Gruppe umbenennen" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets.cljs:173 msgid "workspace.assets.search" msgstr "Assets suchen" #: src/app/main/ui/workspace/sidebar/assets.cljs +#, unused msgid "workspace.assets.selected-count" msgid_plural "workspace.assets.selected-count" msgstr[0] "%s Element ausgewählt" msgstr[1] "%s Elemente ausgewählt" #: src/app/main/ui/workspace/sidebar/assets.cljs +#, unused msgid "workspace.assets.shared-library" msgstr "Geteilte Bibliothek" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:221 msgid "workspace.assets.sidebar.components" msgid_plural "workspace.assets.sidebar.components" msgstr[0] "1 Komponente" msgstr[1] "% Komponenten" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets.cljs:193 msgid "workspace.assets.sort" msgstr "Sortieren" -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/dashboard/grid.cljs:134, src/app/main/ui/dashboard/grid.cljs:189, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:397, src/app/main/ui/workspace/sidebar/assets.cljs:155 msgid "workspace.assets.typography" msgstr "Textstile" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused msgid "workspace.assets.typography.font-id" msgstr "Schriftart" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:505 msgid "workspace.assets.typography.font-size" msgstr "Größe" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:501 msgid "workspace.assets.typography.font-variant-id" msgstr "Variante" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:523 msgid "workspace.assets.typography.go-to-edit" msgstr "Wechseln Sie zur Stilbibliotheksdatei, um sie zu bearbeiten" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:513 msgid "workspace.assets.typography.letter-spacing" msgstr "Zeichenabstand" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:509 msgid "workspace.assets.typography.line-height" msgstr "Zeilenabstand" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, -#: src/app/main/ui/inspect/attributes/text.cljs, -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/dashboard/grid.cljs:199, src/app/main/ui/workspace/libraries.cljs:461, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:464, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:489, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:596, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:615 msgid "workspace.assets.typography.sample" msgstr "Ag" +#, unused msgid "workspace.assets.typography.text-styles" msgstr "Textstile" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:517 msgid "workspace.assets.typography.text-transform" msgstr "Texttransformation" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:66 msgid "workspace.assets.ungroup" msgstr "Gruppierung aufheben" +#: src/app/main/ui/workspace/context_menu.cljs:634 msgid "workspace.context-menu.grid-cells.area" msgstr "Bereich erstellen" +#: src/app/main/ui/workspace/context_menu.cljs:637 msgid "workspace.context-menu.grid-cells.create-board" msgstr "Board erstellen" +#: src/app/main/ui/workspace/context_menu.cljs:629 msgid "workspace.context-menu.grid-cells.merge" msgstr "Zellen zusammenführen" +#: src/app/main/ui/workspace/context_menu.cljs:594 msgid "workspace.context-menu.grid-track.column.add-after" msgstr "1 Spalte rechts einfügen" +#: src/app/main/ui/workspace/context_menu.cljs:593 msgid "workspace.context-menu.grid-track.column.add-before" msgstr "1 Spalte links einfügen" +#: src/app/main/ui/workspace/context_menu.cljs:595 msgid "workspace.context-menu.grid-track.column.delete" msgstr "Spalte löschen" +#: src/app/main/ui/workspace/context_menu.cljs:596 msgid "workspace.context-menu.grid-track.column.delete-shapes" msgstr "Spalte und Formen löschen" +#: src/app/main/ui/workspace/context_menu.cljs:592 msgid "workspace.context-menu.grid-track.column.duplicate" msgstr "Spalte duplizieren" +#: src/app/main/ui/workspace/context_menu.cljs:601 msgid "workspace.context-menu.grid-track.row.add-after" msgstr "1 Zeile unterhalb einfügen" +#: src/app/main/ui/workspace/context_menu.cljs:600 msgid "workspace.context-menu.grid-track.row.add-before" msgstr "1 Zeile oberhalb einfügen" +#: src/app/main/ui/workspace/context_menu.cljs:602 msgid "workspace.context-menu.grid-track.row.delete" msgstr "Zeile löschen" +#: src/app/main/ui/workspace/context_menu.cljs:603 msgid "workspace.context-menu.grid-track.row.delete-shapes" msgstr "Zeile und Formen löschen" +#: src/app/main/ui/workspace/context_menu.cljs:599 msgid "workspace.context-menu.grid-track.row.duplicate" msgstr "Zeile duplizieren" +#: src/app/main/ui/workspace/sidebar/layers.cljs:525 msgid "workspace.focus.focus-mode" msgstr "Fokus-Modus" +#: src/app/main/ui/workspace/context_menu.cljs:287, src/app/main/ui/workspace/context_menu.cljs:553 msgid "workspace.focus.focus-off" msgstr "Fokus aus" +#: src/app/main/ui/workspace/context_menu.cljs:286 msgid "workspace.focus.focus-on" msgstr "Fokus an" +#, unused msgid "workspace.focus.selection" msgstr "Auswahl" -#: src/app/main/data/workspace/libraries.cljs, -#: src/app/main/ui/components/color_bullet.cljs +#: src/app/util/color.cljs:34 msgid "workspace.gradients.linear" msgstr "Linearer Farbverlauf" -#: src/app/main/data/workspace/libraries.cljs, -#: src/app/main/ui/components/color_bullet.cljs +#: src/app/util/color.cljs:35 msgid "workspace.gradients.radial" msgstr "Radialer Farbverlauf" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:238 msgid "workspace.header.menu.disable-dynamic-alignment" msgstr "Dynamische Ausrichtung deaktivieren" +#: src/app/main/ui/workspace/main_menu.cljs:192 msgid "workspace.header.menu.disable-scale-content" msgstr "Proportionale Skalierung deaktivieren" #: src/app/main/ui/workspace/header.cljs +#, unused msgid "workspace.header.menu.disable-scale-text" msgstr "Textskalierung deaktivieren" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:223 msgid "workspace.header.menu.disable-snap-guides" msgstr "Ausrichten an Hilfslinien deaktivieren" +#: src/app/main/ui/workspace/main_menu.cljs:253 msgid "workspace.header.menu.disable-snap-pixel-grid" msgstr "Ausrichten am Pixel deaktivieren" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:207 +msgid "workspace.header.menu.disable-snap-ruler-guides" +msgstr "An den Hilfslinien des Lineals ausrichten deaktivieren" + +#: src/app/main/ui/workspace/main_menu.cljs:239 msgid "workspace.header.menu.enable-dynamic-alignment" msgstr "Dynamische Ausrichtung aktivieren" +#: src/app/main/ui/workspace/main_menu.cljs:193 msgid "workspace.header.menu.enable-scale-content" msgstr "Proportionale Skalierung aktivieren" #: src/app/main/ui/workspace/header.cljs +#, unused msgid "workspace.header.menu.enable-scale-text" msgstr "Textskalierung aktivieren" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:224 msgid "workspace.header.menu.enable-snap-guides" msgstr "An Hilfslinien ausrichten" +#: src/app/main/ui/workspace/main_menu.cljs:254 msgid "workspace.header.menu.enable-snap-pixel-grid" msgstr "Ausrichten am Pixel aktivieren" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:208 +msgid "workspace.header.menu.enable-snap-ruler-guides" +msgstr "An den Hilfslinien des Lineals ausrichten" + +#: src/app/main/ui/workspace/main_menu.cljs:382 msgid "workspace.header.menu.hide-artboard-names" msgstr "Namen von Zeichenflächen ausblenden" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:336 msgid "workspace.header.menu.hide-guides" msgstr "Hilfslinien ausblenden" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:353 msgid "workspace.header.menu.hide-palette" msgstr "Farbpalette ausblenden" +#: src/app/main/ui/workspace/main_menu.cljs:394 msgid "workspace.header.menu.hide-pixel-grid" msgstr "Pixelraster ausblenden" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:320 msgid "workspace.header.menu.hide-rules" msgstr "Lineale ausblenden" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:367 msgid "workspace.header.menu.hide-textpalette" msgstr "Schriftartenpalette ausblenden" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:731 msgid "workspace.header.menu.option.edit" msgstr "Bearbeiten" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:720 msgid "workspace.header.menu.option.file" msgstr "Datei" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:777 msgid "workspace.header.menu.option.help-info" msgstr "Hilfe und Infos" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:753 msgid "workspace.header.menu.option.preferences" msgstr "Einstellungen" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:742 msgid "workspace.header.menu.option.view" msgstr "Ansicht" +#: src/app/main/ui/workspace/main_menu.cljs:459 msgid "workspace.header.menu.redo" msgstr "Wiederherstellen" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:432 msgid "workspace.header.menu.select-all" msgstr "Alles auswählen" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:383 msgid "workspace.header.menu.show-artboard-names" msgstr "Namen der Zeichenflächen anzeigen" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:337 msgid "workspace.header.menu.show-guides" msgstr "Hilfslinien anzeigen" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:354 msgid "workspace.header.menu.show-palette" msgstr "Farbpalette einblenden" +#: src/app/main/ui/workspace/main_menu.cljs:395 msgid "workspace.header.menu.show-pixel-grid" msgstr "Pixelraster einblenden" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:321 msgid "workspace.header.menu.show-rules" msgstr "Lineale einblenden" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:368 msgid "workspace.header.menu.show-textpalette" msgstr "Schriftartenpalette anzeigen" +#: src/app/main/ui/workspace/main_menu.cljs:279 msgid "workspace.header.menu.toggle-dark-theme" msgstr "Zum dunklen Theme wechseln" +#: src/app/main/ui/workspace/main_menu.cljs:278 msgid "workspace.header.menu.toggle-light-theme" msgstr "Zum hellen Theme wechseln" +#: src/app/main/ui/workspace/main_menu.cljs:446 msgid "workspace.header.menu.undo" msgstr "Rückgängig" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/viewer/header.cljs:98, src/app/main/ui/workspace/right_header.cljs:120 msgid "workspace.header.reset-zoom" msgstr "Zurücksetzen" #: src/app/main/ui/workspace/header.cljs +#, unused msgid "workspace.header.save-error" msgstr "Fehler beim Speichern" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/right_header.cljs:52 msgid "workspace.header.saved" msgstr "Gespeichert" #: src/app/main/ui/workspace/header.cljs +#, unused msgid "workspace.header.saving" msgstr "Speichern" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/right_header.cljs:42, src/app/main/ui/workspace/right_header.cljs:47 msgid "workspace.header.unsaved" msgstr "Ungespeicherte Änderungen" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/right_header.cljs:239 msgid "workspace.header.viewer" msgstr "Ansichtsmodus (%s)" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/viewer/header.cljs:79, src/app/main/ui/workspace/right_header.cljs:103 msgid "workspace.header.zoom" msgstr "Vergrößern" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/viewer/header.cljs:109 msgid "workspace.header.zoom-fill" msgstr "Füllen - Skalieren zum Füllen" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/viewer/header.cljs:102 msgid "workspace.header.zoom-fit" msgstr "Anpassen - Verkleinern zum Einpassen" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/right_header.cljs:123 msgid "workspace.header.zoom-fit-all" msgstr "Passend zoomen" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/viewer/header.cljs:116 msgid "workspace.header.zoom-full-screen" msgstr "Vollbild" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/right_header.cljs:130 msgid "workspace.header.zoom-selected" msgstr "Zur Auswahl zoomen" +#: src/app/main/ui/workspace/sidebar/options/menus/grid_cell.cljs:273, src/app/main/ui/workspace/sidebar/options/menus/grid_cell.cljs:275, src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:612 msgid "workspace.layout_grid.editor.options.edit-grid" msgstr "Grid bearbeiten" +#: src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:1280 msgid "workspace.layout_grid.editor.options.exit" msgstr "Beenden" +#: src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:483 msgid "workspace.layout_grid.editor.padding.expand" msgstr "4-seitige Abstandsoptionen anzeigen" +#: src/app/main/ui/workspace/viewport/grid_layout_editor.cljs:59 msgid "workspace.layout_grid.editor.title" msgstr "Raster bearbeiten" +#: src/app/main/ui/workspace/viewport/grid_layout_editor.cljs:65 msgid "workspace.layout_grid.editor.top-bar.done" msgstr "Fertig" +#: src/app/main/ui/workspace/viewport/grid_layout_editor.cljs:62 msgid "workspace.layout_grid.editor.top-bar.locate" msgstr "Lokalisieren" +#: src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:1306 msgid "workspace.layout_grid.editor.top-bar.locate.tooltip" msgstr "Grid-Layout lokalisieren" #: src/app/main/ui/workspace/libraries.cljs +#, unused msgid "workspace.libraries.add" msgstr "Hinzufügen" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:80, src/app/main/ui/workspace/libraries.cljs:99 msgid "workspace.libraries.colors" msgstr "%s Farben" -#: src/app/main/ui/workspace/colorpalette.cljs +#: src/app/main/ui/workspace/color_palette.cljs:126 msgid "workspace.libraries.colors.empty-palette" msgstr "In Ihrer Bibliothek sind noch keine Farbstile vorhanden" -#: src/app/main/ui/workspace/textpalette.cljs +#: src/app/main/ui/workspace/text_palette.cljs:150 msgid "workspace.libraries.colors.empty-typography-palette" msgstr "In Ihrer Bibliothek sind noch keine Textstile vorhanden" -#: src/app/main/ui/workspace/colorpicker/libraries.cljs, -#: src/app/main/ui/workspace/colorpalette.cljs +#: src/app/main/ui/workspace/color_palette_ctx_menu.cljs:60, src/app/main/ui/workspace/colorpicker/libraries.cljs:73, src/app/main/ui/workspace/text_palette_ctx_menu.cljs:50 msgid "workspace.libraries.colors.file-library" msgstr "Dateibibliothek" #: src/app/main/ui/workspace/colorpicker.cljs +#, unused msgid "workspace.libraries.colors.hsv" msgstr "HSV" -#: src/app/main/ui/workspace/colorpicker/libraries.cljs, -#: src/app/main/ui/workspace/colorpalette.cljs +#: src/app/main/ui/workspace/color_palette_ctx_menu.cljs:82, src/app/main/ui/workspace/colorpicker/libraries.cljs:72 msgid "workspace.libraries.colors.recent-colors" msgstr "Aktuelle Farben" #: src/app/main/ui/workspace/colorpicker.cljs +#, unused msgid "workspace.libraries.colors.rgb-complementary" msgstr "RGB-komplementär" #: src/app/main/ui/workspace/colorpicker.cljs +#, unused msgid "workspace.libraries.colors.rgba" msgstr "RGBA" -#: src/app/main/ui/workspace/colorpicker.cljs +#: src/app/main/ui/workspace/colorpicker.cljs:372 msgid "workspace.libraries.colors.save-color" msgstr "Farbstil speichern" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:74, src/app/main/ui/workspace/libraries.cljs:91 msgid "workspace.libraries.components" msgstr "%s Komponenten" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:215 msgid "workspace.libraries.file-library" msgstr "Dateibibliothek" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:77, src/app/main/ui/workspace/libraries.cljs:95 msgid "workspace.libraries.graphics" msgstr "%s Grafik(en)" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:209 msgid "workspace.libraries.in-this-file" msgstr "BIBLIOTHEKEN IN DIESER DATEI" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:526, src/app/main/ui/workspace/libraries.cljs:531 msgid "workspace.libraries.libraries" msgstr "BIBLIOTHEKEN" #: src/app/main/ui/workspace/libraries.cljs +#, unused msgid "workspace.libraries.library" msgstr "BIBLIOTHEK" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:382 msgid "workspace.libraries.library-updates" msgstr "AKTUALISIERUNGEN DER BIBLIOTHEK" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:290 msgid "workspace.libraries.loading" msgstr "Laden…" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:380 msgid "workspace.libraries.no-libraries-need-sync" msgstr "" -"Es gibt keine gemeinsam genutzte Bibliotheken, die aktualisiert werden müssen" +"Es gibt keine gemeinsam genutzte Bibliotheken, die aktualisiert werden " +"müssen" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:299 msgid "workspace.libraries.no-matches-for" msgstr "Keine Übereinstimmungen für “%s“ gefunden" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:296 msgid "workspace.libraries.no-shared-libraries-available" msgstr "Es sind keine gemeinsam genutzte Bibliotheken verfügbar" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:260 msgid "workspace.libraries.search-shared-libraries" msgstr "Suche nach gemeinsam genutzten Bibliotheken" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:256 msgid "workspace.libraries.shared-libraries" msgstr "GEMEINSAM GENUTZTE BIBLIOTHEKEN" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:282 msgid "workspace.libraries.shared-library-btn" msgstr "Bibliothek verknüpfen" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:308 msgid "workspace.libraries.text.multiple-typography" msgstr "Mehrere Textstile" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:311 msgid "workspace.libraries.text.multiple-typography-tooltip" msgstr "Verknüpfung aller Textstile aufheben" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:83, src/app/main/ui/workspace/libraries.cljs:103 msgid "workspace.libraries.typography" msgstr "%s Textstile" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:249 msgid "workspace.libraries.unlink-library-btn" msgstr "Bibliothek trennen" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:402 msgid "workspace.libraries.update" msgstr "Aktualisieren" -#: src/app/main/data/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:477 msgid "workspace.libraries.update.see-all-changes" msgstr "alle Änderungen anzeigen" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:536 msgid "workspace.libraries.updates" msgstr "AKTUALISIERUNG" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:737 msgid "workspace.options.add-interaction" msgstr "Klicken Sie auf den + Button um Interaktionen hinzuzufügen." -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:86, src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:102 msgid "workspace.options.blur-options.title" msgstr "Weichzeichnen" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:85 msgid "workspace.options.blur-options.title.group" msgstr "Gruppe weichzeichnen" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:84 msgid "workspace.options.blur-options.title.multiple" msgstr "Auswahl weichzeichnen" -#: src/app/main/ui/workspace/sidebar/options/page.cljs +#: src/app/main/ui/workspace/sidebar/options/page.cljs:32, src/app/main/ui/workspace/sidebar/options/page.cljs:39 msgid "workspace.options.canvas-background" msgstr "Hintergrundfarbe" +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:548 msgid "workspace.options.clip-content" msgstr "Inhalt beschneiden" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:600, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:605 msgid "workspace.options.component" msgstr "Komponente" +#: src/app/main/ui/viewer/inspect/annotation.cljs:19, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:181 msgid "workspace.options.component.annotation" msgstr "Anmerkung" +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:610 msgid "workspace.options.component.copy" msgstr "Kopie" +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:173 msgid "workspace.options.component.create-annotation" msgstr "Eine Anmerkung erstellen" +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:172 msgid "workspace.options.component.edit-annotation" msgstr "Eine Anmerkung bearbeiten" +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:609 msgid "workspace.options.component.main" msgstr "Hauptkomponente" +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:427 msgid "workspace.options.component.swap" msgstr "Komponente austauschen" +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:471 msgid "workspace.options.component.swap.empty" msgstr "Es gibt noch keine Assets in dieser Bibliothek" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:163 msgid "workspace.options.constraints" msgstr "Beschränkungen" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:150 msgid "workspace.options.constraints.bottom" msgstr "Unten" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:141, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:152 msgid "workspace.options.constraints.center" msgstr "Mittig" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:229 msgid "workspace.options.constraints.fix-when-scrolling" msgstr "Beim Scrollen fixieren" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:138 msgid "workspace.options.constraints.left" msgstr "Links" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:140 msgid "workspace.options.constraints.leftright" msgstr "Links & Rechts" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:139 msgid "workspace.options.constraints.right" msgstr "Rechts" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:142, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:153 msgid "workspace.options.constraints.scale" msgstr "Skalieren" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:149 msgid "workspace.options.constraints.top" msgstr "Oben" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:151 msgid "workspace.options.constraints.topbottom" msgstr "Oben & Unten" -#: src/app/main/ui/workspace/sidebar/options.cljs +#: src/app/main/ui/workspace/sidebar/options.cljs:112 msgid "workspace.options.design" msgstr "Design" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs +#: src/app/main/ui/viewer/inspect/exports.cljs:139 msgid "workspace.options.export" msgstr "Exportieren" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs +#, unused msgid "workspace.options.export-multiple" msgstr "Auswahl exportieren" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs +#: src/app/main/ui/viewer/inspect/exports.cljs:195, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:237 msgid "workspace.options.export-object" msgid_plural "workspace.options.export-object" msgstr[0] "Ein Element exportieren" msgstr[1] "%s Elemente exportieren" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs +#: src/app/main/ui/viewer/inspect/exports.cljs:178, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:219 msgid "workspace.options.export.suffix" msgstr "Suffix" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs, src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/export.cljs:240 msgid "workspace.options.exporting-complete" msgstr "Export abgeschlossen" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs +#: src/app/main/ui/export.cljs:172, src/app/main/ui/export.cljs:241, src/app/main/ui/viewer/inspect/exports.cljs:194, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:236 msgid "workspace.options.exporting-object" msgstr "Exportiere…" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs, src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/export.cljs:239 msgid "workspace.options.exporting-object-error" msgstr "Export fehlgeschlagen" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs, src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/export.cljs:242 msgid "workspace.options.exporting-object-slow" msgstr "Export unerwartet langsam" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:49, src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:174 msgid "workspace.options.fill" msgstr "Fläche" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:178 msgid "workspace.options.flows.add-flow-start" msgstr "Flow-Startpunkt hinzufügen" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:174 msgid "workspace.options.flows.flow" msgstr "Flow" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#, unused msgid "workspace.options.flows.flow-start" msgstr "Flow-Startpunkt" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:161 msgid "workspace.options.flows.flow-starts" msgstr "Flow-Startpunkte" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:29 msgid "workspace.options.grid.auto" msgstr "Automatisch" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:157 msgid "workspace.options.grid.column" msgstr "Spalten" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused msgid "workspace.options.grid.grid-title" msgstr "Raster" +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:196, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:237 msgid "workspace.options.grid.params.color" msgstr "Farbe" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused msgid "workspace.options.grid.params.columns" msgstr "Spalten" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:259 msgid "workspace.options.grid.params.gutter" msgstr "Zwischenräume" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:246 msgid "workspace.options.grid.params.height" msgstr "Höhe" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:270 msgid "workspace.options.grid.params.margin" msgstr "Rand" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused msgid "workspace.options.grid.params.rows" msgstr "Zeilen" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:216, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:290 msgid "workspace.options.grid.params.set-default" msgstr "Als Standard festlegen" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused msgid "workspace.options.grid.params.size" msgstr "Größe" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused msgid "workspace.options.grid.params.type" msgstr "Art" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:231 msgid "workspace.options.grid.params.type.bottom" msgstr "Unten" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:229 msgid "workspace.options.grid.params.type.center" msgstr "Zentriert" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:228 msgid "workspace.options.grid.params.type.left" msgstr "Links" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:232 msgid "workspace.options.grid.params.type.right" msgstr "Rechts" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:225 msgid "workspace.options.grid.params.type.stretch" msgstr "Gestreckt" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:227 msgid "workspace.options.grid.params.type.top" msgstr "Oben" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:211, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:288 msgid "workspace.options.grid.params.use-default" msgstr "Standardwerte verwenden" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:247 msgid "workspace.options.grid.params.width" msgstr "Breite" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:158 msgid "workspace.options.grid.row" msgstr "Zeile" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:156 msgid "workspace.options.grid.square" msgstr "Quadrat" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:48 msgid "workspace.options.group-fill" msgstr "Gruppe füllen" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:42 msgid "workspace.options.group-stroke" msgstr "Gruppe einrahmen" +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:310 msgid "workspace.options.guides.title" msgstr "Hilfslinien" +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:406 msgid "workspace.options.height" msgstr "Höhe" +#: src/app/main/ui/workspace/sidebar/options.cljs:161 msgid "workspace.options.inspect" msgstr "Spezifikation" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:468 msgid "workspace.options.interaction-action" msgstr "Aktion" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:41, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:367 msgid "workspace.options.interaction-after-delay" msgstr "nach einer Verzögerung" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:614 msgid "workspace.options.interaction-animation" msgstr "Animation" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:406 msgid "workspace.options.interaction-animation-dissolve" msgstr "Auflösen" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:405 msgid "workspace.options.interaction-animation-none" msgstr "Keine" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:412 msgid "workspace.options.interaction-animation-push" msgstr "Push" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:407 msgid "workspace.options.interaction-animation-slide" msgstr "Reinfahren" +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:391 msgid "workspace.options.interaction-auto" msgstr "Automatisch" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:604 msgid "workspace.options.interaction-background" msgstr "Hintergrund hinzufügen" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:590 msgid "workspace.options.interaction-close-outside" msgstr "Schließen, wenn außerhalb geklickt wird" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:372 msgid "workspace.options.interaction-close-overlay" msgstr "Overlay schließen" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:56 msgid "workspace.options.interaction-close-overlay-dest" msgstr "Overlay %s schließen" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:456 msgid "workspace.options.interaction-delay" msgstr "Verzögerung" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:478 msgid "workspace.options.interaction-destination" msgstr "Ziel" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:661 msgid "workspace.options.interaction-duration" msgstr "Dauer" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:674 msgid "workspace.options.interaction-easing" msgstr "Easing" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:416 msgid "workspace.options.interaction-easing-ease" msgstr "Ease" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:417 msgid "workspace.options.interaction-easing-ease-in" msgstr "Ease in" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:419 msgid "workspace.options.interaction-easing-ease-in-out" msgstr "Ease in out" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:418 msgid "workspace.options.interaction-easing-ease-out" msgstr "Ease out" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:415 msgid "workspace.options.interaction-easing-linear" msgstr "Linear" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#, unused msgid "workspace.options.interaction-in" msgstr "In" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:39, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:364 msgid "workspace.options.interaction-mouse-enter" msgstr "Mauszeiger-Eintritt" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:40, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:365 msgid "workspace.options.interaction-mouse-leave" msgstr "Mauszeiger-Austritt" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:458, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:459, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:464, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:663, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:665, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:669 msgid "workspace.options.interaction-ms" msgstr "ms" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:369 msgid "workspace.options.interaction-navigate-to" msgstr "Navigation zu" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:50 msgid "workspace.options.interaction-navigate-to-dest" msgstr "Navigation zu: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:51, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:53, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:55, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:380 msgid "workspace.options.interaction-none" msgstr "(nicht festgelegt)" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:691 msgid "workspace.options.interaction-offset-effect" msgstr "Offset-Effekt" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:35, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:360 msgid "workspace.options.interaction-on-click" msgstr "Beim Klicken" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:370 msgid "workspace.options.interaction-open-overlay" msgstr "Overlay öffnen" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:52 msgid "workspace.options.interaction-open-overlay-dest" msgstr "Overlay %s öffnen" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:59, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:374 msgid "workspace.options.interaction-open-url" msgstr "URL öffnen" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#, unused msgid "workspace.options.interaction-out" msgstr "Out" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:403 msgid "workspace.options.interaction-pos-bottom-center" msgstr "Unten mittig" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:401 msgid "workspace.options.interaction-pos-bottom-left" msgstr "Unten links" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:402 msgid "workspace.options.interaction-pos-bottom-right" msgstr "Unten rechts" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:397 msgid "workspace.options.interaction-pos-center" msgstr "Zentriert" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:396 msgid "workspace.options.interaction-pos-manual" msgstr "Manuell" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:400 msgid "workspace.options.interaction-pos-top-center" msgstr "Oben mittig" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:398 msgid "workspace.options.interaction-pos-top-left" msgstr "Oben links" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:399 msgid "workspace.options.interaction-pos-top-right" msgstr "Oben rechts" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:524 msgid "workspace.options.interaction-position" msgstr "Position" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:494 msgid "workspace.options.interaction-preserve-scroll" msgstr "Scrollposition beibehalten" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:58, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:373 msgid "workspace.options.interaction-prev-screen" msgstr "Zum vorherigen Screen" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:515 msgid "workspace.options.interaction-relative-to" msgstr "Relativ zu" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:57, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:379, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:393, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:394 msgid "workspace.options.interaction-self" msgstr "sich selbst" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:371 msgid "workspace.options.interaction-toggle-overlay" msgstr "Overlay-Sichtbarkeit umschalten" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:54 msgid "workspace.options.interaction-toggle-overlay-dest" msgstr "Overlay-Sichtbarkeit für %s umschalten" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:445 msgid "workspace.options.interaction-trigger" msgstr "Auslöser" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:503 msgid "workspace.options.interaction-url" msgstr "URL" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:37, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:362 msgid "workspace.options.interaction-while-hovering" msgstr "Beim Überfahren mit dem Mauszeiger" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:38, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:363 msgid "workspace.options.interaction-while-pressing" msgstr "Bei gedrückter Maustaste" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:724 msgid "workspace.options.interactions" msgstr "Interaktionen" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:137 msgid "workspace.options.layer-options.blend-mode.color" msgstr "Farbe" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:126 msgid "workspace.options.layer-options.blend-mode.color-burn" msgstr "Farbig nachbelichten" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:129 msgid "workspace.options.layer-options.blend-mode.color-dodge" msgstr "Farbig abwedeln" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:124 msgid "workspace.options.layer-options.blend-mode.darken" msgstr "Abdunkeln" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:133 msgid "workspace.options.layer-options.blend-mode.difference" msgstr "Differenz" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:134 msgid "workspace.options.layer-options.blend-mode.exclusion" msgstr "Ausschluss" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:132 msgid "workspace.options.layer-options.blend-mode.hard-light" msgstr "Hartes Licht" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:135 msgid "workspace.options.layer-options.blend-mode.hue" msgstr "Farbton" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:127 msgid "workspace.options.layer-options.blend-mode.lighten" msgstr "Aufhellen" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:138 msgid "workspace.options.layer-options.blend-mode.luminosity" msgstr "Luminanz" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:125 msgid "workspace.options.layer-options.blend-mode.multiply" msgstr "Multiplizieren" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:123 msgid "workspace.options.layer-options.blend-mode.normal" msgstr "Normal" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:130 msgid "workspace.options.layer-options.blend-mode.overlay" msgstr "Ineinanderkopieren" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:136 msgid "workspace.options.layer-options.blend-mode.saturation" msgstr "Sättigung" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:128 msgid "workspace.options.layer-options.blend-mode.screen" msgstr "Negativ multiplizieren" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:131 msgid "workspace.options.layer-options.blend-mode.soft-light" msgstr "Weiches Licht" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#, unused msgid "workspace.options.layer-options.title" msgstr "Ebene" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#, unused msgid "workspace.options.layer-options.title.group" msgstr "Ebenen gruppieren" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#, unused msgid "workspace.options.layer-options.title.multiple" msgstr "Ausgewählte Ebenen" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout-item.advanced-ops" msgstr "Erweiterte Optionen" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:564 msgid "workspace.options.layout-item.layout-item-max-h" msgstr "Max.Höhe" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:531 msgid "workspace.options.layout-item.layout-item-max-w" msgstr "Max.Breite" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:548 msgid "workspace.options.layout-item.layout-item-min-h" msgstr "Min.Höhe" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:515 msgid "workspace.options.layout-item.layout-item-min-w" msgstr "Min.Breite" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout-item.title.layout-item-max-h" msgstr "Maximale Höhe" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout-item.title.layout-item-max-w" msgstr "Maximale Breite" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout-item.title.layout-item-min-h" msgstr "Mindesthöhe" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout-item.title.layout-item-min-w" msgstr "Mindestbreite" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.bottom" msgstr "Unten" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.direction.column" msgstr "Spalte" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.direction.column-reverse" msgstr "Spalte umkehren" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.direction.row" msgstr "Reihe" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.direction.row-reverse" msgstr "Reihe umkehren" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.gap" msgstr "Abstand" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.left" msgstr "Links" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout.margin" msgstr "Rand" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout.margin-all" msgstr "Alle Seiten" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout.margin-simple" msgstr "Einfacher Rand" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.packed" msgstr "kompakt" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.padding" msgstr "Padding" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.padding-all" msgstr "Alle Seiten" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.padding-simple" msgstr "Einfaches Padding" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.right" msgstr "Rechts" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.space-around" msgstr "im Leerraum verteilt" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.space-between" msgstr "Abstand zwischen" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.top" msgstr "Oben" -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:146 msgid "workspace.options.more-colors" msgstr "Weitere Farben" -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:123 msgid "workspace.options.more-lib-colors" msgstr "Weitere Bibliotheksfarben" +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:161 msgid "workspace.options.opacity" msgstr "Deckkraft" -#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#, unused msgid "workspace.options.position" msgstr "Position" -#: src/app/main/ui/workspace/sidebar/options.cljs +#: src/app/main/ui/workspace/sidebar/options.cljs:157 msgid "workspace.options.prototype" msgstr "Prototyp" +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:469, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:481 msgid "workspace.options.radius" msgstr "Radius" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:513 msgid "workspace.options.radius-bottom-left" msgstr "Unten links" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:522 msgid "workspace.options.radius-bottom-right" msgstr "Unten rechts" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:495 msgid "workspace.options.radius-top-left" msgstr "Oben links" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:504 msgid "workspace.options.radius-top-right" msgstr "Oben rechts" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:532 msgid "workspace.options.radius.all-corners" msgstr "Alle Ecken" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:533 msgid "workspace.options.radius.single-corners" msgstr "Ecken einzeln anpassen" +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:183 msgid "workspace.options.recent-fonts" msgstr "Aktuell" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs, src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/export.cljs:284 msgid "workspace.options.retry" msgstr "Wiederholen" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:451 msgid "workspace.options.rotation" msgstr "Drehung" +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:180 msgid "workspace.options.search-font" msgstr "Schriftart suchen" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:741 msgid "workspace.options.select-a-shape" msgstr "" "Wählen Sie eine Form, Zeichenfläche oder Gruppe aus, um eine Verbindung zu " "einer anderen Zeichenfläche herzustellen." -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:105 msgid "workspace.options.selection-color" msgstr "Ausgewählte Farben" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:47 msgid "workspace.options.selection-fill" msgstr "Auswahl füllen" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:41 msgid "workspace.options.selection-stroke" msgstr "Auswahl einrahmen" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:40, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:198, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:200 msgid "workspace.options.shadow-options.blur" msgstr "Weichzeichnen" +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:238 msgid "workspace.options.shadow-options.color" msgstr "Schattenfarbe" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:144 msgid "workspace.options.shadow-options.drop-shadow" msgstr "Schlagschatten" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:145 msgid "workspace.options.shadow-options.inner-shadow" msgstr "Schatten nach innen" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:38, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:186 msgid "workspace.options.shadow-options.offsetx" msgstr "X" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:39, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:224 msgid "workspace.options.shadow-options.offsety" msgstr "Y" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:41, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:211, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:213 msgid "workspace.options.shadow-options.spread" msgstr "Streuung" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:296 msgid "workspace.options.shadow-options.title" msgstr "Schatten" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:295 msgid "workspace.options.shadow-options.title.group" msgstr "Gruppe schattieren" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:294 msgid "workspace.options.shadow-options.title.multiple" msgstr "Auswahl schattieren" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:193 msgid "workspace.options.show-fill-on-export" msgstr "In Exporten anzeigen" +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:562 msgid "workspace.options.show-in-viewer" msgstr "Im Ansichtsmodus anzeigen" -#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:162 msgid "workspace.options.size" msgstr "Größe" -#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:355 msgid "workspace.options.size-presets" msgstr "Größenvoreinstellungen" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:43 msgid "workspace.options.stroke" msgstr "Rahmen" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#, unused msgid "workspace.options.stroke-cap.circle-marker" msgstr "Punkt" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:129 msgid "workspace.options.stroke-cap.circle-marker-short" msgstr "Kreis" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#, unused msgid "workspace.options.stroke-cap.diamond-marker" msgstr "Diamant-Marker" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:130 msgid "workspace.options.stroke-cap.diamond-marker-short" msgstr "Diamant" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#, unused msgid "workspace.options.stroke-cap.line-arrow" msgstr "Pfeil" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:126 msgid "workspace.options.stroke-cap.line-arrow-short" msgstr "Pfeil" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:124 msgid "workspace.options.stroke-cap.none" msgstr "Keine" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:132 msgid "workspace.options.stroke-cap.round" msgstr "Rund" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:133 msgid "workspace.options.stroke-cap.square" msgstr "Rechteckig" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#, unused msgid "workspace.options.stroke-cap.square-marker" msgstr "Quadrat" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:128 msgid "workspace.options.stroke-cap.square-marker-short" msgstr "Rechteck" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#, unused msgid "workspace.options.stroke-cap.triangle-arrow" msgstr "Dreieckiger Pfeil" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:127 msgid "workspace.options.stroke-cap.triangle-arrow-short" msgstr "Dreieck" +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:192 msgid "workspace.options.stroke-color" msgstr "Konturfarbe" +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:165 msgid "workspace.options.stroke-width" msgstr "Konturbreite" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:87 msgid "workspace.options.stroke.center" msgstr "Zentriert" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:105 msgid "workspace.options.stroke.dashed" msgstr "Gestrichelt" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:104 msgid "workspace.options.stroke.dotted" msgstr "Gepunktet" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:88 msgid "workspace.options.stroke.inner" msgstr "Innen" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:106 msgid "workspace.options.stroke.mixed" msgstr "Mehrere" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:89 msgid "workspace.options.stroke.outer" msgstr "Außen" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:103 msgid "workspace.options.stroke.solid" msgstr "Durchgezogen" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:115 msgid "workspace.options.text-options.align-bottom" msgstr "Unten ausrichten" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:111 msgid "workspace.options.text-options.align-middle" msgstr "An Mitte ausrichten" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:107 msgid "workspace.options.text-options.align-top" msgstr "Oben ausrichten" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:82 msgid "workspace.options.text-options.direction-ltr" msgstr "von links nach rechts" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:87 msgid "workspace.options.text-options.direction-rtl" msgstr "von rechts nach links" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:149 msgid "workspace.options.text-options.grow-auto-height" msgstr "Automatische Höhe" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:145 msgid "workspace.options.text-options.grow-auto-width" msgstr "Automatische Breite" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:141 msgid "workspace.options.text-options.grow-fixed" msgstr "Feste Größe" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:381 msgid "workspace.options.text-options.letter-spacing" msgstr "Zeichenabstand" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:364 msgid "workspace.options.text-options.line-height" msgstr "Zeilenabstand" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused msgid "workspace.options.text-options.lowercase" msgstr "Kleinbuchstaben" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused msgid "workspace.options.text-options.none" msgstr "Keine" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:176 msgid "workspace.options.text-options.strikethrough" msgstr "Durchgestrichen (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:51 msgid "workspace.options.text-options.text-align-center" msgstr "Zentrieren (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:59 msgid "workspace.options.text-options.text-align-justify" msgstr "Ausrichtung in der Breite (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:47 msgid "workspace.options.text-options.text-align-left" msgstr "Linksbündig ausrichten (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:55 msgid "workspace.options.text-options.text-align-right" msgstr "Rechtsbündig ausrichten (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:189 msgid "workspace.options.text-options.title" msgstr "Text" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:188 msgid "workspace.options.text-options.title-group" msgstr "Gruppe Text" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:187 msgid "workspace.options.text-options.title-selection" msgstr "Ausgewählter Text" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused msgid "workspace.options.text-options.titlecase" msgstr "Kapitälchen" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:171 msgid "workspace.options.text-options.underline" msgstr "Unterstrichen (%s)" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused msgid "workspace.options.text-options.uppercase" msgstr "Großbuchstaben" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:745 msgid "workspace.options.use-play-button" msgstr "" "Verwenden Sie die Wiedergabetaste in der Kopfzeile, um die Prototypansicht " "zu wechseln." +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:395 msgid "workspace.options.width" msgstr "Breite" +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:427 msgid "workspace.options.x" msgstr "X-Achse" +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:438 msgid "workspace.options.y" msgstr "Y-Achse" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:167 msgid "workspace.path.actions.add-node" msgstr "Ankerpunkt hinzufügen (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:174 msgid "workspace.path.actions.delete-node" msgstr "Ankerpunkt entfernen (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:152 msgid "workspace.path.actions.draw-nodes" msgstr "Ankerpunkte zeichnen (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:189 msgid "workspace.path.actions.join-nodes" msgstr "Ankerpunkte verbinden (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:204 msgid "workspace.path.actions.make-corner" msgstr "in Ecke umwandeln (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:211 msgid "workspace.path.actions.make-curve" msgstr "in Kurve umwandeln (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:182 msgid "workspace.path.actions.merge-nodes" msgstr "Ankerpunkte zusammenlegen (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:159 msgid "workspace.path.actions.move-nodes" msgstr "Ankerpunkte verschieben (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:196 msgid "workspace.path.actions.separate-nodes" msgstr "Ankerpunkte trennen (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:218 msgid "workspace.path.actions.snap-nodes" msgstr "An Ankerpunkten ausrichten (%s)" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/plugins.cljs:55 +msgid "workspace.plugins.button-open" +msgstr "Öffnen" + +#: src/app/main/ui/workspace/plugins.cljs:164 +msgid "workspace.plugins.empty-plugins" +msgstr "Noch keine Plugins installiert" + +#: src/app/main/ui/workspace/plugins.cljs:157 +msgid "workspace.plugins.error.url" +msgstr "Das Plugin existiert nicht oder die URL ist nicht korrekt." + +#: src/app/main/ui/workspace/plugins.cljs:153 +msgid "workspace.plugins.install" +msgstr "Installieren" + +#: src/app/main/ui/workspace/plugins.cljs:170 +msgid "workspace.plugins.installed-plugins" +msgstr "Installierte Plugins" + +#: src/app/main/ui/workspace/main_menu.cljs:624 +msgid "workspace.plugins.menu.plugins-manager" +msgstr "Plugin-Manager" + +#: src/app/main/ui/workspace/main_menu.cljs:765 +msgid "workspace.plugins.menu.title" +msgstr "Plugins" + +#: src/app/main/ui/workspace/plugins.cljs:166 +msgid "workspace.plugins.plugin-list-link" +msgstr "Liste der Plugins" + +#: src/app/main/ui/workspace/plugins.cljs:149 +msgid "workspace.plugins.search-placeholder" +msgstr "Eine URL des Plugins eingeben" + +#, unused +msgid "workspace.plugins.success" +msgstr "Plugin wurde korrekt geladen." + +#: src/app/main/ui/workspace/plugins.cljs:143 +msgid "workspace.plugins.title" +msgstr "Plugins" + +#: src/app/main/ui/workspace/context_menu.cljs:441 msgid "workspace.shape.menu.add-flex" msgstr "Flex-Layout hinzufügen" +#: src/app/main/ui/workspace/context_menu.cljs:445 msgid "workspace.shape.menu.add-grid" msgstr "Grid-Layout hinzufügen" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:193 msgid "workspace.shape.menu.back" msgstr "In den Hintergrund" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:190 msgid "workspace.shape.menu.backward" msgstr "Eins nach hinten" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:139 msgid "workspace.shape.menu.copy" msgstr "Kopieren" +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:427 msgid "workspace.shape.menu.create-annotation" msgstr "Anmerkung erstellen" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:275 msgid "workspace.shape.menu.create-artboard-from-selection" msgstr "Auswahl auf Zeichenfläche" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:465 msgid "workspace.shape.menu.create-component" msgstr "Komponente erstellen" +#: src/app/main/ui/workspace/context_menu.cljs:469 msgid "workspace.shape.menu.create-multiple-components" msgstr "Mehrere Komponenten erstellen" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:142 msgid "workspace.shape.menu.cut" msgstr "Ausschneiden" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:486 msgid "workspace.shape.menu.delete" msgstr "Löschen" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:391 msgid "workspace.shape.menu.delete-flow-start" msgstr "Startpunkt löschen" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:432 msgid "workspace.shape.menu.detach-instance" msgstr "Instanz trennen" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:431 msgid "workspace.shape.menu.detach-instances-in-bulk" msgstr "Instanzen trennen" +#: src/app/main/ui/workspace/context_menu.cljs:335, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:75 msgid "workspace.shape.menu.difference" msgstr "Subtrahieren" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:148 msgid "workspace.shape.menu.duplicate" msgstr "Duplizieren" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:321 msgid "workspace.shape.menu.edit" msgstr "Bearbeiten" +#: src/app/main/ui/workspace/context_menu.cljs:341 msgid "workspace.shape.menu.exclude" msgstr "Ausschließen" +#: src/app/main/ui/workspace/context_menu.cljs:348, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:89 msgid "workspace.shape.menu.flatten" msgstr "Pfade reduzieren" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:208 msgid "workspace.shape.menu.flip-horizontal" msgstr "Horizontal spiegeln" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:204 msgid "workspace.shape.menu.flip-vertical" msgstr "Vertikal spiegeln" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:394 msgid "workspace.shape.menu.flow-start" msgstr "Startpunkt" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:184 msgid "workspace.shape.menu.forward" msgstr "Eins nach vorne" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:187 msgid "workspace.shape.menu.front" msgstr "In den Vordergrund" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#, unused msgid "workspace.shape.menu.go-main" msgstr "Zur Hauptkomponentendatei wechseln" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:261 msgid "workspace.shape.menu.group" msgstr "Gruppieren" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:363, src/app/main/ui/workspace/sidebar/layer_item.cljs:145 msgid "workspace.shape.menu.hide" msgstr "Ausblenden" +#: src/app/main/ui/workspace/context_menu.cljs:548, src/app/main/ui/workspace/main_menu.cljs:408 msgid "workspace.shape.menu.hide-ui" msgstr "Benutzeroberfläche ein-/ausblenden" +#: src/app/main/ui/workspace/context_menu.cljs:338 msgid "workspace.shape.menu.intersection" msgstr "Überlappen" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:371, src/app/main/ui/workspace/sidebar/layer_item.cljs:153 msgid "workspace.shape.menu.lock" msgstr "Sperren" -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:266 msgid "workspace.shape.menu.mask" msgstr "Maskieren" -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:145, src/app/main/ui/workspace/context_menu.cljs:545 msgid "workspace.shape.menu.paste" msgstr "Einfügen" +#: src/app/main/ui/workspace/context_menu.cljs:331 msgid "workspace.shape.menu.path" msgstr "Pfad" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:432 msgid "workspace.shape.menu.remove-flex" msgstr "Flex-Layout entfernen" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:435 msgid "workspace.shape.menu.remove-grid" msgstr "Grid-Layout entfernen" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:436 msgid "workspace.shape.menu.reset-overrides" msgstr "Änderungen zurücksetzen" +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:439 msgid "workspace.shape.menu.restore-main" msgstr "Hauptkomponente wiederherstellen" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:174 msgid "workspace.shape.menu.select-layer" msgstr "Ebene auswählen" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:360, src/app/main/ui/workspace/sidebar/layer_item.cljs:144 msgid "workspace.shape.menu.show" msgstr "Anzeigen" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:424 msgid "workspace.shape.menu.show-in-assets" msgstr "Im Assets-Panel anzeigen" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:442, src/app/main/ui/workspace/sidebar/assets/components.cljs:586 msgid "workspace.shape.menu.show-main" msgstr "Hauptkomponente anzeigen" +#: src/app/main/ui/workspace/context_menu.cljs:221 msgid "workspace.shape.menu.thumbnail-remove" msgstr "Vorschaubild entfernen" +#: src/app/main/ui/workspace/context_menu.cljs:223 msgid "workspace.shape.menu.thumbnail-set" msgstr "Als Vorschaubild festlegen" +#: src/app/main/ui/workspace/context_menu.cljs:326 msgid "workspace.shape.menu.transform-to-path" msgstr "In Pfade umwandeln" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:257 msgid "workspace.shape.menu.ungroup" msgstr "Gruppierung aufheben" +#: src/app/main/ui/workspace/context_menu.cljs:332, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:70 msgid "workspace.shape.menu.union" msgstr "Hinzufügen" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:368, src/app/main/ui/workspace/sidebar/layer_item.cljs:152 msgid "workspace.shape.menu.unlock" msgstr "Entsperren" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:271 msgid "workspace.shape.menu.unmask" msgstr "Maske entfernen" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs +#, unused msgid "workspace.shape.menu.update-components-in-bulk" msgstr "Hauptkomponenten aktualisieren" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:445 msgid "workspace.shape.menu.update-main" msgstr "Hauptkomponente aktualisieren" +#: src/app/main/ui/components/tab_container.cljs:50 msgid "workspace.sidebar.collapse" msgstr "Seitenleiste ausblenden" +#: src/app/main/ui/workspace/sidebar/collapsable_button.cljs:26 msgid "workspace.sidebar.expand" msgstr "Seitenleiste einblenden" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/right_header.cljs:231, src/app/main/ui/workspace/right_header.cljs:232 msgid "workspace.sidebar.history" msgstr "Verlauf (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/sidebar/layers.cljs:522, src/app/main/ui/workspace/sidebar.cljs:100 msgid "workspace.sidebar.layers" msgstr "Ebenen" +#: src/app/main/ui/workspace/sidebar/layers.cljs:308, src/app/main/ui/workspace/sidebar/layers.cljs:380 msgid "workspace.sidebar.layers.components" msgstr "Komponenten" +#: src/app/main/ui/workspace/sidebar/layers.cljs:305, src/app/main/ui/workspace/sidebar/layers.cljs:338 msgid "workspace.sidebar.layers.frames" msgstr "Zeichenflächen" +#: src/app/main/ui/workspace/sidebar/layers.cljs:306, src/app/main/ui/workspace/sidebar/layers.cljs:352 msgid "workspace.sidebar.layers.groups" msgstr "Gruppen" +#: src/app/main/ui/workspace/sidebar/layers.cljs:310, src/app/main/ui/workspace/sidebar/layers.cljs:408 msgid "workspace.sidebar.layers.images" msgstr "Bilder" +#: src/app/main/ui/workspace/sidebar/layers.cljs:307, src/app/main/ui/workspace/sidebar/layers.cljs:366 msgid "workspace.sidebar.layers.masks" msgstr "Masken" +#: src/app/main/ui/workspace/sidebar/layers.cljs:289 msgid "workspace.sidebar.layers.search" msgstr "Ebenen durchsuchen" +#: src/app/main/ui/workspace/sidebar/layers.cljs:311, src/app/main/ui/workspace/sidebar/layers.cljs:422 msgid "workspace.sidebar.layers.shapes" msgstr "Formen" +#: src/app/main/ui/workspace/sidebar/layers.cljs:309, src/app/main/ui/workspace/sidebar/layers.cljs:394 msgid "workspace.sidebar.layers.texts" msgstr "Texte" -#: src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs, -#: src/app/main/ui/inspect/attributes/svg.cljs +#: src/app/main/ui/viewer/inspect/attributes/svg.cljs:56, src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs:91 msgid "workspace.sidebar.options.svg-attrs.title" msgstr "Importierte SVG-Attribute" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs +#: src/app/main/ui/workspace/sidebar/sitemap.cljs:217 msgid "workspace.sidebar.sitemap" msgstr "Seiten" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/left_header.cljs:91 msgid "workspace.sitemap" msgstr "Sitemap" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/sidebar.cljs:120 msgid "workspace.toolbar.assets" msgstr "Assets" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/palette.cljs:165, src/app/main/ui/workspace/palette.cljs:166 msgid "workspace.toolbar.color-palette" msgstr "Farbpalette (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/right_header.cljs:220, src/app/main/ui/workspace/right_header.cljs:221 msgid "workspace.toolbar.comments" msgstr "Kommentare (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:180, src/app/main/ui/workspace/top_toolbar.cljs:181 msgid "workspace.toolbar.curve" msgstr "Stift (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:160, src/app/main/ui/workspace/top_toolbar.cljs:161 msgid "workspace.toolbar.ellipse" msgstr "Ellipse (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:142, src/app/main/ui/workspace/top_toolbar.cljs:143 msgid "workspace.toolbar.frame" msgstr "Zeichenfläche (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:59, src/app/main/ui/workspace/top_toolbar.cljs:60 msgid "workspace.toolbar.image" msgstr "Bild (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:132, src/app/main/ui/workspace/top_toolbar.cljs:133 msgid "workspace.toolbar.move" msgstr "Verschieben (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:189, src/app/main/ui/workspace/top_toolbar.cljs:190 msgid "workspace.toolbar.path" msgstr "Pfad (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:151, src/app/main/ui/workspace/top_toolbar.cljs:152 msgid "workspace.toolbar.rect" msgstr "Rechteck (%s)" #: src/app/main/ui/workspace/left_toolbar.cljs +#, unused msgid "workspace.toolbar.shortcuts" msgstr "Tastaturkürzel (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:169, src/app/main/ui/workspace/top_toolbar.cljs:170 msgid "workspace.toolbar.text" msgstr "Text (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/palette.cljs:173, src/app/main/ui/workspace/palette.cljs:174 msgid "workspace.toolbar.text-palette" msgstr "Typografien (%s)" +#: src/app/main/ui/workspace/viewport/top_bar.cljs:38 msgid "workspace.top-bar.read-only.done" msgstr "Fertig" +#: src/app/main/ui/workspace/viewport/top_bar.cljs:35 +#, markdown msgid "workspace.top-bar.view-only" msgstr "**Code inspizieren** (nur ansehen)" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:342 msgid "workspace.undo.empty" msgstr "Es gibt bisher keine Änderungen im Verlauf" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:147 msgid "workspace.undo.entry.delete" msgstr "%s gelöscht" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:146 msgid "workspace.undo.entry.modify" msgstr "%s verändert" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:148 msgid "workspace.undo.entry.move" msgstr "Verschobene Objekte" +#: src/app/main/ui/workspace/sidebar/history.cljs:111 msgid "workspace.undo.entry.multiple.circle" msgstr "Kreise" +#: src/app/main/ui/workspace/sidebar/history.cljs:112 msgid "workspace.undo.entry.multiple.color" msgstr "Farben" +#: src/app/main/ui/workspace/sidebar/history.cljs:113 msgid "workspace.undo.entry.multiple.component" msgstr "Komponenten" +#: src/app/main/ui/workspace/sidebar/history.cljs:114 msgid "workspace.undo.entry.multiple.curve" msgstr "Kurven" +#: src/app/main/ui/workspace/sidebar/history.cljs:115 msgid "workspace.undo.entry.multiple.frame" msgstr "Zeichenfläche" +#: src/app/main/ui/workspace/sidebar/history.cljs:116 msgid "workspace.undo.entry.multiple.group" msgstr "Gruppen" +#: src/app/main/ui/workspace/sidebar/history.cljs:117 msgid "workspace.undo.entry.multiple.media" msgstr "Grafiken" +#: src/app/main/ui/workspace/sidebar/history.cljs:118 msgid "workspace.undo.entry.multiple.multiple" msgstr "Objekte" +#: src/app/main/ui/workspace/sidebar/history.cljs:119 msgid "workspace.undo.entry.multiple.page" msgstr "Seiten" +#: src/app/main/ui/workspace/sidebar/history.cljs:120 msgid "workspace.undo.entry.multiple.path" msgstr "Pfade" +#: src/app/main/ui/workspace/sidebar/history.cljs:121 msgid "workspace.undo.entry.multiple.rect" msgstr "Rechtecke" +#: src/app/main/ui/workspace/sidebar/history.cljs:122 msgid "workspace.undo.entry.multiple.shape" msgstr "Formen" +#: src/app/main/ui/workspace/sidebar/history.cljs:123 msgid "workspace.undo.entry.multiple.text" msgstr "Texte" +#: src/app/main/ui/workspace/sidebar/history.cljs:124 msgid "workspace.undo.entry.multiple.typography" msgstr "Typografie" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:145 msgid "workspace.undo.entry.new" msgstr "Neu: %s" +#: src/app/main/ui/workspace/sidebar/history.cljs:125 msgid "workspace.undo.entry.single.circle" msgstr "Kreis" +#: src/app/main/ui/workspace/sidebar/history.cljs:126 msgid "workspace.undo.entry.single.color" msgstr "Farben" +#: src/app/main/ui/workspace/sidebar/history.cljs:127 msgid "workspace.undo.entry.single.component" msgstr "Komponente" +#: src/app/main/ui/workspace/sidebar/history.cljs:128 msgid "workspace.undo.entry.single.curve" msgstr "Kurve" +#: src/app/main/ui/workspace/sidebar/history.cljs:129 msgid "workspace.undo.entry.single.frame" msgstr "Zeichenfläche" +#: src/app/main/ui/workspace/sidebar/history.cljs:130 msgid "workspace.undo.entry.single.group" msgstr "Gruppe" +#: src/app/main/ui/workspace/sidebar/history.cljs:131 msgid "workspace.undo.entry.single.image" msgstr "Bild" +#: src/app/main/ui/workspace/sidebar/history.cljs:132 msgid "workspace.undo.entry.single.media" msgstr "Grafik" +#: src/app/main/ui/workspace/sidebar/history.cljs:133 msgid "workspace.undo.entry.single.multiple" msgstr "Objekt" +#: src/app/main/ui/workspace/sidebar/history.cljs:134 msgid "workspace.undo.entry.single.page" msgstr "Seite" +#: src/app/main/ui/workspace/sidebar/history.cljs:135 msgid "workspace.undo.entry.single.path" msgstr "Pfad" +#: src/app/main/ui/workspace/sidebar/history.cljs:136 msgid "workspace.undo.entry.single.rect" msgstr "Rechteck" +#: src/app/main/ui/workspace/sidebar/history.cljs:137 msgid "workspace.undo.entry.single.shape" msgstr "Form" +#: src/app/main/ui/workspace/sidebar/history.cljs:138 msgid "workspace.undo.entry.single.text" msgstr "Text" +#: src/app/main/ui/workspace/sidebar/history.cljs:139 msgid "workspace.undo.entry.single.typography" msgstr "Typografie" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:149 msgid "workspace.undo.entry.unknown" msgstr "Vorgang über %s" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:335 msgid "workspace.undo.title" msgstr "Verlauf" -#: src/app/main/data/workspace/libraries.cljs +#: src/app/main/data/workspace/libraries.cljs:1094 msgid "workspace.updates.dismiss" msgstr "Ignorieren" -#: src/app/main/data/workspace/libraries.cljs +#: src/app/main/data/workspace/libraries.cljs:1092 msgid "workspace.updates.more-info" msgstr "Mehr Info" -#: src/app/main/data/workspace/libraries.cljs +#: src/app/main/data/workspace/libraries.cljs:1090 msgid "workspace.updates.there-are-updates" msgstr "Es gibt Updates in gemeinsam genutzten Bibliotheken" -#: src/app/main/data/workspace/libraries.cljs +#: src/app/main/data/workspace/libraries.cljs:1097 msgid "workspace.updates.update" msgstr "Aktualisieren" +#, unused msgid "workspace.viewport.click-to-close-path" msgstr "Klicken Sie, um den Pfad zu schließen" - -msgid "shortcuts.toggle-snap-ruler-guide" -msgstr "An den Hilfslinien des Lineals ausrichten" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.disable-snap-ruler-guides" -msgstr "An den Hilfslinien des Lineals ausrichten deaktivieren" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.enable-snap-ruler-guides" -msgstr "An den Hilfslinien des Lineals ausrichten" - -msgid "workspace.plugins.title" -msgstr "Plugins" - -msgid "workspace.plugins.search-placeholder" -msgstr "Eine URL des Plugins eingeben" - -msgid "workspace.plugins.install" -msgstr "Installieren" - -msgid "workspace.plugins.installed-plugins" -msgstr "Installierte Plugins" - -msgid "workspace.plugins.button-open" -msgstr "Öffnen" - -msgid "workspace.plugins.empty-plugins" -msgstr "Noch keine Plugins installiert" - -msgid "workspace.plugins.error.url" -msgstr "Das Plugin existiert nicht oder die URL ist nicht korrekt." - -msgid "workspace.plugins.menu.plugins-manager" -msgstr "Plugin-Manager" - -msgid "workspace.plugins.plugin-list-link" -msgstr "Liste der Plugins" - -msgid "workspace.plugins.menu.title" -msgstr "Plugins" - -msgid "workspace.plugins.success" -msgstr "Plugin wurde korrekt geladen." diff --git a/frontend/translations/el.po b/frontend/translations/el.po index 4f4c677c1b..ae9b1d94af 100644 --- a/frontend/translations/el.po +++ b/frontend/translations/el.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "PO-Revision-Date: 2024-06-17 08:07+0000\n" "Last-Translator: Anonymous \n" -"Language-Team: Greek \n" +"Language-Team: Greek " +"\n" "Language: el\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" @@ -11,2162 +11,2174 @@ msgstr "" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 5.6-dev\n" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:151, src/app/main/ui/viewer/login.cljs:104 msgid "auth.already-have-account" msgstr "Δημιουργία λογαριασμού επίδειξης" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:299 msgid "auth.check-your-email" msgstr "" "Ελέγξτε το email σας και κάντε κλικ στον σύνδεσμο για επαλήθευση και έναρξη " "χρήσης του Penpot." -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:78 msgid "auth.confirm-password" msgstr "Επιβεβαίωση Κωδικού" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/register.cljs:163 msgid "auth.create-demo-account" msgstr "Δημιουργία επίδειξης λογαριασμού" #: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#, unused msgid "auth.create-demo-profile" msgstr "Θέλετε να το δοκιμάσετε;" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/login.cljs:43 msgid "auth.demo-warning" msgstr "" "Αυτή είναι μια υπηρεσία DEMO, ΜΗ ΧΡΗΣΙΜΟΠΟΙΕΙΤΕ για πραγματική εργασία, τα " "έργα θα σβήνονται περιοδικά." -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:189, src/app/main/ui/viewer/login.cljs:90 msgid "auth.forgot-password" msgstr "Ξεχάσατε τον κωδικό;" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:254 msgid "auth.fullname" msgstr "Πλήρες όνομα" -#: src/app/main/ui/auth/register.cljs -#, fuzzy +#: src/app/main/ui/auth/register.cljs:155, src/app/main/ui/viewer/login.cljs:107 msgid "auth.login-here" msgstr "Συνδεθείτε εδώ" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:195 msgid "auth.login-submit" msgstr "Συνδεθείτε" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:222 msgid "auth.login-with-github-submit" msgstr "GitHub" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:228 msgid "auth.login-with-gitlab-submit" msgstr "GitLab" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:216 msgid "auth.login-with-google-submit" msgstr "Google" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:201 msgid "auth.login-with-ldap-submit" msgstr "LDAP" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:71 msgid "auth.new-password" msgstr "Πληκτρολογήστε έναν νέο κωδικό πρόσβασης." -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:42 msgid "auth.notifications.invalid-token-error" msgstr "Ο κωδικός ανάκτησης δεν είναι έγκυρος." -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:46 msgid "auth.notifications.password-changed-successfully" msgstr "Ο κωδικός έχει αλλάξει." -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:57 msgid "auth.notifications.profile-not-verified" msgstr "Το προφίλ δεν έχει επαληθευτεί ακόμη, επικυρώστε το προφίλ πριν συνεχίσετε." -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:40 msgid "auth.notifications.recovery-token-sent" msgstr "" "Στείλαμε στο email σας έναν link για να ανακτήσουμε τον κωδικό πρόσβασής " "σας." -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:47 msgid "auth.notifications.team-invitation-accepted" msgstr "Μπήκατε στην ομάδα" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:179, src/app/main/ui/auth/register.cljs:115 msgid "auth.password" msgstr "Κωδικός " -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:114 msgid "auth.password-length-hint" msgstr "Τουλάχιστον 8 χαρακτήρες" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:88 msgid "auth.recovery-request-submit" msgstr "Ανάκτηση κωδικού πρόσβασης" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:101 msgid "auth.recovery-request-subtitle" msgstr "Θα σας στείλουμε ένα email με οδηγίες " -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:100 msgid "auth.recovery-request-title" msgstr "Ξεχάσατε τον κωδικό σας;" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:82 msgid "auth.recovery-submit" msgstr "Αλλάξτε τον κωδικό σας" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:298, src/app/main/ui/viewer/login.cljs:93 msgid "auth.register" msgstr "Δεν έχετε λογαριασμό;" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:302, src/app/main/ui/auth/register.cljs:121, src/app/main/ui/auth/register.cljs:263, src/app/main/ui/viewer/login.cljs:97 msgid "auth.register-submit" msgstr "Δημιουργία λογαριασμού" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:140 msgid "auth.register-title" msgstr "Δημιουργία λογαριασμού" #: src/app/main/ui/auth.cljs +#, unused msgid "auth.sidebar-tagline" msgstr "Η λύση ανοιχτού κώδικα για σχεδιασμό και πρωτότυπο." -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:297 msgid "auth.verification-email-sent" msgstr "Εχουμε στείλει ενα mail επαλήθευσης " -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:291, src/app/main/ui/workspace/main_menu.cljs:572 msgid "dashboard.add-shared" msgstr "Προσθήκη ως Κοινόχρηστη βιβλιοθήκη" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:75 msgid "dashboard.change-email" msgstr "Αλλαγή email" -#: src/app/main/data/dashboard.cljs, src/app/main/data/dashboard.cljs +#: src/app/main/data/dashboard.cljs:762, src/app/main/data/dashboard.cljs:983 msgid "dashboard.copy-suffix" msgstr "(Αντίγραφο)" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:338 msgid "dashboard.create-new-team" msgstr "Δημιουργία νέας ομάδας" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/components/context_menu_a11y.cljs:256, src/app/main/ui/dashboard/sidebar.cljs:646 msgid "dashboard.default-team-name" msgstr "Το Penpot σας" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:571 msgid "dashboard.delete-team" msgstr "Διαγραφή ομάδας" -#: src/app/main/ui/dashboard/project_menu.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:276, src/app/main/ui/dashboard/project_menu.cljs:90 msgid "dashboard.duplicate" msgstr "Αντιγραφή" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:109 msgid "dashboard.invite-profile" msgstr "Πρόσκληση στην ομάδα" -#: src/app/main/ui/dashboard/sidebar.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:547, src/app/main/ui/dashboard/sidebar.cljs:556, src/app/main/ui/dashboard/sidebar.cljs:563, src/app/main/ui/dashboard/team.cljs:312 msgid "dashboard.leave-team" msgstr "Αφήστε την ομάδα" -#: src/app/main/ui/dashboard/libraries.cljs +#: src/app/main/ui/dashboard/libraries.cljs:53 msgid "dashboard.libraries-title" msgstr "Κοινόχρηστες βιβλιοθήκες" -#: src/app/main/ui/dashboard/grid.cljs +#: src/app/main/ui/dashboard/placeholder.cljs:45 msgid "dashboard.loading-files" msgstr "φόρτωση των αρχείων σας …" -#: src/app/main/ui/dashboard/project_menu.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:281, src/app/main/ui/dashboard/project_menu.cljs:100 msgid "dashboard.move-to" msgstr "Μετακίνηση" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:226 msgid "dashboard.move-to-other-team" msgstr "Μετακίνηση σε άλλη ομάδα" -#: src/app/main/ui/dashboard/projects.cljs, -#: src/app/main/ui/dashboard/files.cljs +#: src/app/main/ui/dashboard/files.cljs:105, src/app/main/ui/dashboard/projects.cljs:252, src/app/main/ui/dashboard/projects.cljs:253 msgid "dashboard.new-file" msgstr "Νεο αρχείο" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:55 msgid "dashboard.new-project" msgstr "+ Νέο έργο" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:60 msgid "dashboard.no-matches-for" msgstr "Δεν βρέθηκαν αντιστοιχίσεις για το “%s“" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:827 msgid "dashboard.no-projects-placeholder" msgstr "Τα καρφιτσωμένα έργα θα εμφανιστούν εδώ" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:33 msgid "dashboard.notifications.email-changed-successfully" msgstr "Η διεύθυνση email σας ενημερώθηκε με επιτυχία" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:27 msgid "dashboard.notifications.email-verified-successfully" msgstr "Η διεύθυνση email σας έχει επαληθευτεί" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:37 msgid "dashboard.notifications.password-saved" msgstr "Ο κωδικός πρόσβασης αποθηκεύτηκε!" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1081 msgid "dashboard.num-of-members" msgstr "% s μέλη" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:267 msgid "dashboard.open-in-new-tab" msgstr "Άνοιγμα αρχείου σε νέα καρτέλα" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:106, src/app/main/ui/settings/password.cljs:119 msgid "dashboard.password-change" msgstr "Αλλαξε κωδικό" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/pin_button.cljs:24, src/app/main/ui/dashboard/project_menu.cljs:95 msgid "dashboard.pin-unpin" msgstr "Καρφίτσωμα / ξεκαρφίτσωμα" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:51 msgid "dashboard.projects-title" msgstr "Εργα" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:86 msgid "dashboard.remove-account" msgstr "Θέλετε να καταργήσετε τον λογαριασμό σας;" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "dashboard.remove-shared" msgstr "Διαγραφή ως Κοινόχρηστη βιβλιοθήκη" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:246, src/app/main/ui/dashboard/sidebar.cljs:247 msgid "dashboard.search-placeholder" msgstr "Αναζήτηση…" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:55 msgid "dashboard.searching-for" msgstr "Αναζήτηση για “%s“…" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:56 msgid "dashboard.select-ui-language" msgstr "Αλλάξτε τη γλώσσα διεπαφής" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:63 msgid "dashboard.select-ui-theme" msgstr "Επιλέξτε ένα θέμα" -#: src/app/main/ui/dashboard/grid.cljs +#: src/app/main/ui/dashboard/projects.cljs:282 msgid "dashboard.show-all-files" msgstr "Εμφάνιση όλων των αρχείων" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:96 msgid "dashboard.success-delete-file" msgstr "Το έργο σας διαγράφηκε με επιτυχία" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:59 msgid "dashboard.success-delete-project" msgstr "Το έργο σας διαγράφηκε με επιτυχία" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:91 msgid "dashboard.success-duplicate-file" msgstr "Το έργο σας έχει αναπαραχθεί με επιτυχία" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:33 msgid "dashboard.success-duplicate-project" msgstr "Το έργο σας έχει αναπαραχθεί με επιτυχία" -#: src/app/main/ui/dashboard/grid.cljs, src/app/main/ui/dashboard/sidebar.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:130, src/app/main/ui/dashboard/grid.cljs:558, src/app/main/ui/dashboard/sidebar.cljs:152 msgid "dashboard.success-move-file" msgstr "Το έργο σας μετακινήθηκε με επιτυχία" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:54 msgid "dashboard.success-move-project" msgstr "Το έργο σας μετακινήθηκε με επιτυχία" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1052 msgid "dashboard.team-info" msgstr "Πληροφορίες ομάδας" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1070 msgid "dashboard.team-members" msgstr "Μέλη ομάδας" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1085 msgid "dashboard.team-projects" msgstr "Ομαδικά έργα" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:61 msgid "dashboard.theme-change" msgstr "Οπτικό θέμα" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:42 msgid "dashboard.title-search" msgstr "Αποτελέσματα αναζήτησης" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:50 msgid "dashboard.type-something" msgstr "Γράψτε κάτι για αναζήτηση" -#: src/app/main/ui/settings/profile.cljs, -#: src/app/main/ui/settings/password.cljs, -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:71 msgid "dashboard.update-settings" msgstr "Ενημέρωση επιλογών" -#: src/app/main/ui/settings.cljs +#: src/app/main/ui/settings.cljs:31 msgid "dashboard.your-account-title" msgstr "Ο λογαριασμός σας" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:70 msgid "dashboard.your-email" msgstr "Email" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:62 msgid "dashboard.your-name" msgstr "Το όνομα σου" -#: src/app/main/ui/dashboard/search.cljs, src/app/main/ui/dashboard/team.cljs, -#: src/app/main/ui/dashboard/libraries.cljs, -#: src/app/main/ui/dashboard/projects.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:38, src/app/main/ui/dashboard/fonts.cljs:33, src/app/main/ui/dashboard/libraries.cljs:42, src/app/main/ui/dashboard/projects.cljs:318, src/app/main/ui/dashboard/search.cljs:30, src/app/main/ui/dashboard/sidebar.cljs:312, src/app/main/ui/dashboard/team.cljs:495, src/app/main/ui/dashboard/team.cljs:729, src/app/main/ui/dashboard/team.cljs:991, src/app/main/ui/dashboard/team.cljs:1038 msgid "dashboard.your-penpot" msgstr "Το Penpot σας" -#: src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:36, src/app/main/ui/workspace/plugins.cljs:246 msgid "ds.confirm-cancel" msgstr "ακύρωση" -#: src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:37, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:141 msgid "ds.confirm-ok" msgstr "Ok" -#: src/app/main/ui/confirm.cljs, src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:35, src/app/main/ui/confirm.cljs:39 msgid "ds.confirm-title" msgstr "Είσαι σίγουρος;" -#: src/app/main/data/workspace.cljs +#: src/app/main/data/workspace.cljs:1598 msgid "errors.clipboard-not-implemented" msgstr "Το πρόγραμμα περιήγησής σας δεν μπορεί να εκτελέσει αυτήν τη λειτουργία" -#: src/app/main/ui/auth/verify_token.cljs, -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/auth/verify_token.cljs:82, src/app/main/ui/settings/change_email.cljs:46 msgid "errors.email-already-exists" msgstr "Το email έχει ήδη χρησιμοποιηθεί" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:87 msgid "errors.email-already-validated" msgstr "Αυτό το email έχει ήδη επικυρωθεί." -#: src/app/main/ui/auth/register.cljs, -#: src/app/main/ui/auth/recovery_request.cljs, -#: src/app/main/ui/settings/change_email.cljs, -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/auth/recovery_request.cljs:63, src/app/main/ui/dashboard/team.cljs:578, src/app/main/ui/settings/change_email.cljs:54 msgid "errors.email-has-permanent-bounces" msgstr "Το email «%s» έχει πολλές μόνιμες αναφορές αναπήδησης." -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:35 msgid "errors.email-invalid-confirmation" msgstr "Το email επιβεβαίωσης πρέπει να ταιριάζει" -#: src/app/main/ui/auth/verify_token.cljs, -#: src/app/main/ui/settings/feedback.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/data/users.cljs:709, src/app/main/ui/auth/login.cljs:65, src/app/main/ui/auth/login.cljs:116, src/app/main/ui/auth/register.cljs:69, src/app/main/ui/auth/register.cljs:237, src/app/main/ui/auth/verify_token.cljs:92, src/app/main/ui/dashboard/team.cljs:173, src/app/main/ui/onboarding/team_choice.cljs:95, src/app/main/ui/settings/access_tokens.cljs:91, src/app/main/ui/settings/feedback.cljs:52 msgid "errors.generic" msgstr "Έχει συμβεί κάτι λάθος." -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:101 msgid "errors.ldap-disabled" msgstr "Ο έλεγχος ταυτότητας LDAP είναι απενεργοποιημένος." -#: src/app/main/data/workspace/persistence.cljs +#: src/app/main/data/workspace/media.cljs:184 msgid "errors.media-too-large" msgstr "Η εικόνα είναι πολύ μεγάλη." -#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs +#: src/app/main/data/media.cljs:68, src/app/main/data/workspace/media.cljs:187 msgid "errors.media-type-mismatch" msgstr "" "Φαίνεται ότι το περιεχόμενο της εικόνας δεν ταιριάζει με την επέκταση " "αρχείου." -#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs +#: src/app/main/data/media.cljs:65, src/app/main/data/workspace/media.cljs:172, src/app/main/data/workspace/media.cljs:175, src/app/main/data/workspace/media.cljs:178, src/app/main/data/workspace/media.cljs:181 msgid "errors.media-type-not-allowed" msgstr "Φαίνεται ότι δεν είναι έγκυρη εικόνα." -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:574 msgid "errors.member-is-muted" msgstr "" "Το προφίλ που προσκαλείτε σταματά τα μηνύματα ηλεκτρονικού ταχυδρομείου " "(λόγω ανεπιθύμητων αναφορών ή υψηλού ποσοστού εγκατάλειψης)." -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:61 msgid "errors.password-invalid-confirmation" msgstr "Ο κωδικός επιβεβαίωσης πρέπει να ταιριάζει" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:64 msgid "errors.password-too-short" msgstr "Ο κωδικός πρόσβασης πρέπει να είναι τουλάχιστον 8 χαρακτήρες" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/data/users.cljs:701, src/app/main/ui/auth/register.cljs:60 msgid "errors.registration-disabled" msgstr "Η εγγραφή είναι απενεργοποιημένη αυτήν τη στιγμή." -#: src/app/main/data/media.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs +#: src/app/main/data/media.cljs:71 msgid "errors.unexpected-error" msgstr "Προέκυψε ένα μη αναμενόμενο σφάλμα." -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:60 msgid "errors.unexpected-token" msgstr "Άγνωστο διακριτικό" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:109, src/app/main/ui/auth/login.cljs:113 msgid "errors.wrong-credentials" msgstr "Το όνομα χρήστη ή ο κωδικός πρόσβασης φαίνεται να είναι λάθος." -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:25 msgid "errors.wrong-old-password" msgstr "Ο παλιός κωδικός πρόσβασης είναι λάθος " -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:77 msgid "feedback.description" msgstr "Περιγραφή" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:72 msgid "feedback.subject" msgstr "Επιχείρηση" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:69 msgid "feedback.subtitle" msgstr "" "Περιγράψτε τον λόγο του email σας, προσδιορίζοντας εάν πρόκειται για " "ζήτημα, ιδέα ή αμφιβολία. Ένα μέλος της ομάδας μας θα απαντήσει το " "συντομότερο δυνατό." -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:68 msgid "feedback.title" msgstr "Email" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:30 msgid "generic.error" msgstr "Παρουσιάστηκε σφάλμα" -#: src/app/main/ui/inspect/attributes/blur.cljs +#: src/app/main/ui/viewer/inspect/attributes/blur.cljs:26 msgid "inspect.attributes.blur" msgstr "Θολούρα" -#: src/app/main/ui/inspect/attributes/blur.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:115 msgid "inspect.attributes.blur.value" msgstr "αξία" -#: src/app/main/ui/inspect/attributes/common.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:112 msgid "inspect.attributes.color.hex" msgstr "HEX" -#: src/app/main/ui/inspect/attributes/common.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:114 msgid "inspect.attributes.color.hsla" msgstr "HSLA" -#: src/app/main/ui/inspect/attributes/common.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:113 msgid "inspect.attributes.color.rgba" msgstr "RGBA" -#: src/app/main/ui/inspect/attributes/fill.cljs +#: src/app/main/ui/viewer/inspect/attributes/fill.cljs:57 msgid "inspect.attributes.fill" msgstr "Γέμισμα" -#: src/app/main/ui/inspect/attributes/image.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:99, src/app/main/ui/viewer/inspect/attributes/image.cljs:51 msgid "inspect.attributes.image.download" msgstr "Λήψη εικόνας πηγής" -#: src/app/main/ui/inspect/attributes/image.cljs +#: src/app/main/ui/viewer/inspect/attributes/image.cljs:39 msgid "inspect.attributes.image.height" msgstr "Υψος" -#: src/app/main/ui/inspect/attributes/image.cljs +#: src/app/main/ui/viewer/inspect/attributes/image.cljs:32 msgid "inspect.attributes.image.width" msgstr "Πλάτος" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout" msgstr "Διάταξη" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.height" msgstr "Υψος" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.left" msgstr "Αριστερά" -#: src/app/main/ui/inspect/attributes/layout.cljs, -#: src/app/main/ui/inspect/attributes/layout.cljs +#: src/app/main/ui/inspect/attributes/layout.cljs, src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.radius" msgstr "Aκτίνα" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.rotation" msgstr "Περιστροφή" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.top" msgstr "Πάνω" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.width" msgstr "Πλάτος" -#: src/app/main/ui/inspect/attributes/shadow.cljs +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:57 msgid "inspect.attributes.shadow" msgstr "Σκιά " -#: src/app/main/ui/inspect/attributes/stroke.cljs +#: src/app/main/ui/viewer/inspect/attributes/stroke.cljs:52 msgid "inspect.attributes.stroke" msgstr "περίγραμμα" +#, permanent, unused msgid "inspect.attributes.stroke.alignment.center" msgstr "Κέντρο" +#, permanent, unused msgid "inspect.attributes.stroke.alignment.inner" msgstr "Μέσα" +#, permanent, unused msgid "inspect.attributes.stroke.alignment.outer" msgstr "Εξω" +#, unused msgid "inspect.attributes.stroke.style.dotted" msgstr "Διάστικτο" +#, unused msgid "inspect.attributes.stroke.style.mixed" msgstr "Μικτός" +#, unused msgid "inspect.attributes.stroke.style.none" msgstr "Κανένας" +#, unused msgid "inspect.attributes.stroke.style.solid" msgstr "Στερεός" #: src/app/main/ui/inspect/attributes/stroke.cljs +#, unused msgid "inspect.attributes.stroke.width" msgstr "Πλάτος" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:81, src/app/main/ui/viewer/inspect/attributes/text.cljs:194 msgid "inspect.attributes.typography" msgstr "Τυπογραφία" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:89 msgid "inspect.attributes.typography.font-family" msgstr "Οικογένεια γραμματοσειρών" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:107 msgid "inspect.attributes.typography.font-size" msgstr "Μέγεθος γραμματοσειράς" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:98 msgid "inspect.attributes.typography.font-style" msgstr "Στυλ γραμματοσειράς" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:134 msgid "inspect.attributes.typography.letter-spacing" msgstr "Διάστημα γραμμάτων" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:125 msgid "inspect.attributes.typography.line-height" msgstr "Ύψος γραμμής" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:143 msgid "inspect.attributes.typography.text-decoration" msgstr "Διακόσμηση κειμένου" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:145 msgid "inspect.attributes.typography.text-decoration.none" msgstr "Κανένα" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:146 msgid "inspect.attributes.typography.text-decoration.strikethrough" msgstr "διαγραφή" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:147 msgid "inspect.attributes.typography.text-decoration.underline" msgstr "υπογράμμιση" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:156 msgid "inspect.attributes.typography.text-transform" msgstr "Μετασχηματισμός κειμένου" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:158 msgid "inspect.attributes.typography.text-transform.lowercase" msgstr "Πεζά γράμματα" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:159 msgid "inspect.attributes.typography.text-transform.none" msgstr "Κανένα" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:160 msgid "inspect.attributes.typography.text-transform.titlecase" msgstr "Πρώτα κεφαλαία" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:161 msgid "inspect.attributes.typography.text-transform.uppercase" msgstr "Κεφαλαία γράμματα" -#: src/app/main/ui/inspect/right_sidebar.cljs +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:125 msgid "inspect.tabs.code" msgstr "Κώδικας" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:98 msgid "inspect.tabs.code.selected.circle" msgstr "Κύκλος" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:100 msgid "inspect.tabs.code.selected.curve" msgstr "Κυρτότητα" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:101 msgid "inspect.tabs.code.selected.frame" msgstr "Τραπέζι εργασίας" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:102 msgid "inspect.tabs.code.selected.group" msgstr "Ομάδα" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:103 msgid "inspect.tabs.code.selected.image" msgstr "Εικόνα" -#: src/app/main/ui/inspect/right_sidebar.cljs +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:93 msgid "inspect.tabs.code.selected.multiple" msgstr "%s Επιλεγμένα" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:105 msgid "inspect.tabs.code.selected.path" msgstr "Σχέδιο" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:106 msgid "inspect.tabs.code.selected.rect" msgstr "Ορθωγώνιο" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:107 msgid "inspect.tabs.code.selected.svg-raw" msgstr "SVG" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:108 msgid "inspect.tabs.code.selected.text" msgstr "Κείμενο" -#: src/app/main/ui/inspect/right_sidebar.cljs +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:115 msgid "inspect.tabs.info" msgstr "Πληροφορίες" +#: src/app/main/ui/dashboard/import.cljs:527 msgid "labels.accept" msgstr "Αποδέχομαι" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:120, src/app/main/ui/dashboard/team.cljs:276, src/app/main/ui/dashboard/team.cljs:519, src/app/main/ui/dashboard/team.cljs:549, src/app/main/ui/onboarding/team_choice.cljs:67 msgid "labels.admin" msgstr "Διαχειριστής" #: src/app/main/ui/workspace/comments.cljs +#, unused msgid "labels.all" msgstr "Ολα" -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:59 msgid "labels.bad-gateway.desc-message" msgstr "" "Φαίνεται ότι πρέπει να περιμένετε λίγο και να προσπαθήσετε ξανά. εκτελούμε " "μικρή συντήρηση των διακομιστών μας." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:58 msgid "labels.bad-gateway.main-message" msgstr "Bad Gateway" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/data/common.cljs:112, src/app/main/ui/dashboard/change_owner.cljs:69, src/app/main/ui/dashboard/import.cljs:514, src/app/main/ui/dashboard/team.cljs:868, src/app/main/ui/delete_shared.cljs:35, src/app/main/ui/export.cljs:164, src/app/main/ui/export.cljs:460, src/app/main/ui/settings/access_tokens.cljs:188, src/app/main/ui/viewer/share_link.cljs:203, src/app/main/ui/workspace/sidebar/assets/groups.cljs:149 msgid "labels.cancel" msgstr "ακύρωση" -#: src/app/main/ui/dashboard/comments.cljs +#: src/app/main/ui/dashboard/comments.cljs:104, src/app/main/ui/viewer/comments.cljs:70, src/app/main/ui/workspace/comments.cljs:126 msgid "labels.comments" msgstr "Σχόλια" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:103 msgid "labels.confirm-password" msgstr "Επιβεβαίωση Κωδικού" -#: src/app/main/ui/dashboard/team_form.cljs, -#: src/app/main/ui/dashboard/team_form.cljs +#: src/app/main/ui/dashboard/team_form.cljs:101, src/app/main/ui/dashboard/team_form.cljs:121 msgid "labels.create-team" msgstr "Δημιουργήστε μια νέα ομάδα" -#: src/app/main/ui/settings/sidebar.cljs +#: src/app/main/ui/settings/sidebar.cljs:73 msgid "labels.dashboard" msgstr "πίνακας" -#: src/app/main/ui/dashboard/project_menu.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:306, src/app/main/ui/dashboard/fonts.cljs:255, src/app/main/ui/dashboard/fonts.cljs:332, src/app/main/ui/dashboard/fonts.cljs:346, src/app/main/ui/dashboard/project_menu.cljs:115, src/app/main/ui/dashboard/team.cljs:904, src/app/main/ui/settings/access_tokens.cljs:209, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:209 msgid "labels.delete" msgstr "Διαγραφή" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:357 msgid "labels.delete-comment" msgstr "Διαγραφή σχολίου" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:354 msgid "labels.delete-comment-thread" msgstr "Διαγραφή νήματος" -#: src/app/main/ui/dashboard/projects.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs, -#: src/app/main/ui/dashboard/files.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:28, src/app/main/ui/dashboard/files.cljs:72, src/app/main/ui/dashboard/files.cljs:156, src/app/main/ui/dashboard/projects.cljs:220, src/app/main/ui/dashboard/projects.cljs:224, src/app/main/ui/dashboard/sidebar.cljs:791 msgid "labels.drafts" msgstr "Πρόχειρα" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:350, src/app/main/ui/dashboard/fonts.cljs:252, src/app/main/ui/dashboard/team.cljs:902, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:205 msgid "labels.edit" msgstr "Edit" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:118, src/app/main/ui/dashboard/team.cljs:279, src/app/main/ui/dashboard/team.cljs:520, src/app/main/ui/dashboard/team.cljs:553, src/app/main/ui/onboarding/team_choice.cljs:66 msgid "labels.editor" msgstr "Editor" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:51 msgid "labels.feedback-disabled" msgstr "Τα σχόλια απενεργοποιήθηκαν" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:42 msgid "labels.feedback-sent" msgstr "Εστάλη γνώμη" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/settings/sidebar.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:1032, src/app/main/ui/settings/sidebar.cljs:113, src/app/main/ui/workspace/main_menu.cljs:171 msgid "labels.give-feedback" msgstr "Δώστε μας τη γνώμη σας" +#: src/app/main/ui/auth/recovery_request.cljs:110, src/app/main/ui/auth/register.cljs:285, src/app/main/ui/viewer/login.cljs:117 msgid "labels.go-back" msgstr "Πίσω" -#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/comments.cljs:103, src/app/main/ui/workspace/comments.cljs:67 msgid "labels.hide-resolved-comments" msgstr "Απόκρυψη επιλυμένων σχολίων" -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:144 msgid "labels.internal-error.desc-message" msgstr "" "Κάτι κακό συνέβη. Δοκιμάστε ξανά τη λειτουργία και εάν το πρόβλημα " "παραμένει, επικοινωνήστε με την υποστήριξη." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:143 msgid "labels.internal-error.main-message" msgstr "Εσωτερικό σφάλμα" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:51 msgid "labels.language" msgstr "Γλώσσα" -#: src/app/main/ui/settings.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:1040 msgid "labels.logout" msgstr "Αποσύνδεση" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:510, src/app/main/ui/dashboard/team.cljs:87, src/app/main/ui/dashboard/team.cljs:95 msgid "labels.members" msgstr "Μέλη" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:96 msgid "labels.new-password" msgstr "Νέος κωδικός πρόσβασης" -#: src/app/main/ui/workspace/comments.cljs, -#: src/app/main/ui/dashboard/comments.cljs +#: src/app/main/ui/dashboard/comments.cljs:128, src/app/main/ui/workspace/comments.cljs:161 msgid "labels.no-comments-available" msgstr "Δεν έχετε εκκρεμείς ειδοποιήσεις σχολίων" -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:50 msgid "labels.not-found.desc-message" msgstr "" "Αυτή η σελίδα ενδέχεται να μην υπάρχει ή δεν έχετε δικαιώματα πρόσβασης σε " "αυτήν." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:49 msgid "labels.not-found.main-message" msgstr "Ωχ" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/projects.cljs:239, src/app/main/ui/dashboard/team.cljs:1095 msgid "labels.num-of-files" msgid_plural "labels.num-of-files" msgstr[0] "1 αρχείο" msgstr[1] "%s αρχεία" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1090 msgid "labels.num-of-projects" msgid_plural "labels.num-of-projects" msgstr[0] "1 έργο" msgstr[1] "%s έργα" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:89 msgid "labels.old-password" msgstr "Παλιός κωδικός" #: src/app/main/ui/workspace/comments.cljs +#, unused msgid "labels.only-yours" msgstr "Μόνο το δικό σου" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:286, src/app/main/ui/dashboard/team.cljs:518, src/app/main/ui/dashboard/team.cljs:1076 msgid "labels.owner" msgstr "Ιδιοκτήτης" -#: src/app/main/ui/settings/sidebar.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/settings/sidebar.cljs:87 msgid "labels.password" msgstr "Κωδικός πρόσβασης" -#: src/app/main/ui/settings/sidebar.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/settings/profile.cljs:118, src/app/main/ui/settings/sidebar.cljs:82 msgid "labels.profile" msgstr "Προφίλ" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:784 msgid "labels.projects" msgstr "Εργα" -#: src/app/main/ui/workspace/libraries.cljs, -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/workspace/libraries.cljs, src/app/main/ui/dashboard/team.cljs +#, unused msgid "labels.remove" msgstr "Διαγραφή" -#: src/app/main/ui/dashboard/sidebar.cljs, -#: src/app/main/ui/dashboard/project_menu.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:271, src/app/main/ui/dashboard/project_menu.cljs:85, src/app/main/ui/dashboard/sidebar.cljs:539, src/app/main/ui/workspace/sidebar/assets/groups.cljs:157 msgid "labels.rename" msgstr "Μετονομασία" -#: src/app/main/ui/dashboard/team_form.cljs +#: src/app/main/ui/dashboard/team_form.cljs:99 msgid "labels.rename-team" msgstr "Μετονομασία ομάδας " -#: src/app/main/ui/static.cljs, src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:61, src/app/main/ui/static.cljs:70, src/app/main/ui/static.cljs:148 msgid "labels.retry" msgstr "Ξαναδοκιμάσετε" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:469, src/app/main/ui/dashboard/team.cljs:709 msgid "labels.role" msgstr "Ρόλος" +#: src/app/main/ui/dashboard/fonts.cljs:380, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:191 msgid "labels.save" msgstr "Αποθηκεύση" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:82 msgid "labels.send" msgstr "Αποστολή ..." -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:82 msgid "labels.sending" msgstr "Αποστολή…" -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:68 msgid "labels.service-unavailable.desc-message" msgstr "Είμαστε σε προγραμματισμένη συντήρηση των συστημάτων μας." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:67 msgid "labels.service-unavailable.main-message" msgstr "Η υπηρεσία δεν είναι διαθέσιμη" -#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:530, src/app/main/ui/dashboard/team.cljs:88, src/app/main/ui/dashboard/team.cljs:102, src/app/main/ui/settings/options.cljs:84, src/app/main/ui/settings/sidebar.cljs:93 msgid "labels.settings" msgstr "Σύνθεση" -#: src/app/main/ui/viewer/header.cljs, src/app/main/ui/viewer/header.cljs +#, unused msgid "labels.share-prototype" msgstr "Μοιραστείτε το link" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:800 msgid "labels.shared-libraries" msgstr "Κοινόχρηστες βιβλιοθήκες" -#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/comments.cljs:82, src/app/main/ui/workspace/comments.cljs:55, src/app/main/ui/workspace/comments.cljs:135 msgid "labels.show-all-comments" msgstr "Εμφάνιση όλων των σχολίων" -#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/comments.cljs:91, src/app/main/ui/workspace/comments.cljs:61, src/app/main/ui/workspace/comments.cljs:136 msgid "labels.show-your-comments" msgstr "Εμφάνιση μόνο των δικών σας σχολίων" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:103 msgid "labels.update" msgstr "Ενημέρωση" -#: src/app/main/ui/dashboard/team_form.cljs +#: src/app/main/ui/dashboard/team_form.cljs:120 msgid "labels.update-team" msgstr "Ενημερώστε τον εξοπλισμό" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:123, src/app/main/ui/dashboard/team.cljs:282, src/app/main/ui/dashboard/team.cljs:521 msgid "labels.viewer" msgstr "Θεατής" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:194 msgid "labels.write-new-comment" msgstr "Γράψτε ένα νέο σχόλιο" -#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs +#: src/app/main/data/media.cljs:49, src/app/main/data/workspace/media.cljs:223, src/app/main/data/workspace/media.cljs:453 msgid "media.loading" msgstr "Φόρτωση εικόνας ..." -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/data/common.cljs:113 msgid "modals.add-shared-confirm.accept" msgstr "Προσθήκη ως Κοινόχρηστη βιβλιοθήκη" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/data/common.cljs:111 msgid "modals.add-shared-confirm.hint" msgstr "" "Μόλις προστεθεί ως Κοινόχρηστη βιβλιοθήκη, τα στοιχεία αυτής της " "βιβλιοθήκης αρχείων θα είναι διαθέσιμα για χρήση μεταξύ των υπόλοιπων " "αρχείων σας." -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/data/common.cljs:110 msgid "modals.add-shared-confirm.message" msgstr "Προσθήκη “%s” ως Κοινόχρηστη βιβλιοθήκη" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:127 msgid "modals.change-email.confirm-email" msgstr "16 / 5000 Resultados de traducción Επιβεβαιώστε νέο e-mail" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:114 msgid "modals.change-email.info" msgstr "" "Θα σας στείλουμε ένα email στο τρέχον email σας “%s” για να επαληθεύσουμε " "την ταυτότητά σας." -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:119 msgid "modals.change-email.new-email" msgstr "Νέο email" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:136 msgid "modals.change-email.submit" msgstr "Αλλαγή email" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:107 msgid "modals.change-email.title" msgstr "Αλλάξτε το email σας" -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:59 msgid "modals.delete-account.cancel" msgstr "Ακύρωση και διατήρηση του λογαριασμού μου" -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:64 msgid "modals.delete-account.confirm" msgstr "Ναι, διαγράψτε τον λογαριασμό μου" -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:53 msgid "modals.delete-account.info" msgstr "" "Καταργώντας τον λογαριασμό σας, θα χάσετε όλα τα τρέχοντα έργα και τα " "αρχεία σας." -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:46 msgid "modals.delete-account.title" msgstr "Είστε σίγουροι ότι θέλετε να διαγράψετε το λογαριασμό σας;" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:298 msgid "modals.delete-comment-thread.accept" msgstr "Διαγραφή συζήτησης" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:297 msgid "modals.delete-comment-thread.message" msgstr "" "Είστε σίγουροι ότι θέλετε να διαγράψετε αυτήν τη συνομιλία; Όλα τα σχόλια " "σε αυτό το νήμα θα διαγραφούν." -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:296 msgid "modals.delete-comment-thread.title" msgstr "Διαγραφή συζήτησης" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:123 msgid "modals.delete-file-confirm.accept" msgstr "Διαγραφή φακέλου" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:122 msgid "modals.delete-file-confirm.message" msgstr "Είστε σίγουροι ότι θέλετε να διαγράψετε αυτό το αρχείο?" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:121 msgid "modals.delete-file-confirm.title" msgstr "Διαγραφή αρχείου" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs +#: src/app/main/ui/workspace/context_menu.cljs:522, src/app/main/ui/workspace/sidebar/sitemap.cljs:45 msgid "modals.delete-page.body" msgstr "Είστε σίγουροι ότι θέλετε να διαγράψετε αυτή τη σελίδα;" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs +#: src/app/main/ui/workspace/context_menu.cljs:521, src/app/main/ui/workspace/sidebar/sitemap.cljs:44 msgid "modals.delete-page.title" msgstr "Διαγραφή σελίδας" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:69 msgid "modals.delete-project-confirm.accept" msgstr "Διαγραφή έργου" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:68 msgid "modals.delete-project-confirm.message" msgstr "Είστε σίγουροι ότι θέλετε να διαγράψετε αυτό το έργο" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:67 msgid "modals.delete-project-confirm.title" msgstr "Διαγραφή έργου" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:435 msgid "modals.delete-team-confirm.accept" msgstr "Διαγραφή ομάδας" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:434 msgid "modals.delete-team-confirm.message" msgstr "" "Είστε σίγουροι ότι θέλετε να διαγράψετε αυτή την ομάδα; Όλα τα έργα και τα " "αρχεία που σχετίζονται με την ομάδα θα διαγραφούν οριστικά." -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:433 msgid "modals.delete-team-confirm.title" msgstr "Διαγραφή ομάδας" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:427 msgid "modals.delete-team-member-confirm.accept" msgstr "Διαγραφή μέλους" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:426 msgid "modals.delete-team-member-confirm.message" msgstr "Είστε σίγουροι ότι θέλετε να διαγράψετε αυτό το μέλος από την ομάδα;" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:425 msgid "modals.delete-team-member-confirm.title" msgstr "Διαγραφή μέλους της ομάδας" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:218 msgid "modals.invite-member-confirm.accept" msgstr "Αποστολή πρόσκλησης" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/change_owner.cljs:55 msgid "modals.leave-and-reassign.hint1" msgstr "Είστε ο ιδιοκτήτης του %s" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/change_owner.cljs:78 msgid "modals.leave-and-reassign.promote-and-leave" msgstr "Προώθηση και αφήστε" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/change_owner.cljs:34 msgid "modals.leave-and-reassign.select-member-to-promote" msgstr "Επιλέξτε ένα μέλος για προώθηση" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/change_owner.cljs:49 msgid "modals.leave-and-reassign.title" msgstr "Επιλέξτε ένα μέλος για προώθηση" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:402, src/app/main/ui/dashboard/sidebar.cljs:424, src/app/main/ui/dashboard/team.cljs:394, src/app/main/ui/dashboard/team.cljs:416 msgid "modals.leave-confirm.accept" msgstr "Αφήστε την ομάδα" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:401, src/app/main/ui/dashboard/team.cljs:415 msgid "modals.leave-confirm.message" msgstr "Είστε σίγουροι ότι θέλετε να αφήσετε αυτή την ομάδα;" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:400, src/app/main/ui/dashboard/sidebar.cljs:421, src/app/main/ui/dashboard/team.cljs:391, src/app/main/ui/dashboard/team.cljs:414 msgid "modals.leave-confirm.title" msgstr "Αφήστε την ομάδα" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:340 msgid "modals.promote-owner-confirm.accept" msgstr "Προώθηση" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:338 msgid "modals.promote-owner-confirm.message" msgstr "Είστε σίγουροι ότι θέλετε να προωθήσετε αυτό το χρήστη στον ιδιοκτήτη;" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:337 msgid "modals.promote-owner-confirm.title" msgstr "Προώθηση σε κάτοχο" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "modals.remove-shared-confirm.accept" msgstr "Κατάργηση ως Κοινόχρηστη βιβλιοθήκη" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "modals.remove-shared-confirm.hint" msgstr "" "Μόλις καταργηθεί ως Κοινόχρηστη βιβλιοθήκη, η Βιβλιοθήκη αρχείων αυτού του " "αρχείου θα σταματήσει να είναι διαθέσιμη για χρήση στα υπόλοιπα αρχεία σας." -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "modals.remove-shared-confirm.message" msgstr "Καταργήστε το “%s” ως Κοινόχρηστη βιβλιοθήκη" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:380 msgid "modals.update-remote-component.accept" msgstr "Ενημέρωση στοιχείου" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:379 msgid "modals.update-remote-component.cancel" msgstr "Ακύρωση" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:378 msgid "modals.update-remote-component.hint" msgstr "" "Πρόκειται να ενημερώσετε ένα στοιχείο σε μια κοινόχρηστη βιβλιοθήκη. Αυτό " "μπορεί να επηρεάσει άλλα αρχεία που το χρησιμοποιούν." -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:377 msgid "modals.update-remote-component.message" msgstr "Ενημερώστε ένα στοιχείο σε μια κοινόχρηστη βιβλιοθήκη" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:154, src/app/main/ui/dashboard/team.cljs:595 msgid "notifications.invitation-email-sent" msgstr "Η πρόσκληση εστάλη με επιτυχία" -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:24 msgid "notifications.profile-deletion-not-allowed" msgstr "" "Δεν μπορείτε να διαγράψετε το προφίλ σας. Επανατοποθετήστε τις ομάδες σας " "προτού συνεχίσετε." -#: src/app/main/ui/settings/profile.cljs, src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:29, src/app/main/ui/settings/profile.cljs:35 msgid "notifications.profile-saved" msgstr "Το προφίλ αποθηκεύτηκε με επιτυχία!" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:63 msgid "notifications.validation-email-sent" msgstr "Το email επαλήθευσης εστάλη στο %s. Ελέγξτε το email σας!" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:99 msgid "profile.recovery.go-to-login" msgstr "Μεταβείτε στη σύνδεση" -#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs +#: src/app/main/ui/viewer/inspect/exports.cljs:147, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:631, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:137, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:148, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:188, src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:158, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:399, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:410, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:430, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:441, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:458, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:472, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:309, src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:183, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:373, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:389, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:245, src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:172 msgid "settings.multiple" msgstr "Μικτός " -#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs +#: src/app/main/ui/viewer.cljs:569 msgid "viewer.empty-state" msgstr "Δεν βρέθηκαν πλαίσια στη σελίδα" -#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs +#: src/app/main/ui/viewer.cljs:574 msgid "viewer.frame-not-found" msgstr "Το πλαίσιο δεν βρέθηκε." -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/interactions.cljs:292 msgid "viewer.header.dont-show-interactions" msgstr "Μην εμφανίζετε αλληλεπιδράσεις" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/header.cljs:188 msgid "viewer.header.fullscreen" msgstr "Πλήρης οθόνη" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/share_link.cljs:187 msgid "viewer.header.share.copy-link" msgstr "Αντιγραφή link" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/interactions.cljs:300 msgid "viewer.header.show-interactions" msgstr "Εμφάνιση αλληλεπιδράσεων" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/interactions.cljs:311 msgid "viewer.header.show-interactions-on-click" msgstr "Εμφάνιση αλληλεπιδράσεων με click" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/header.cljs:231 msgid "viewer.header.sitemap" msgstr "Sitemap" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:58 msgid "workspace.align.hcenter" msgstr "Στοίχιση στο κέντρο (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:74 msgid "workspace.align.hdistribute" msgstr "Κατανομή οριζόντιου χώρου (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:50 msgid "workspace.align.hleft" msgstr "Ευθυγράμμιση προς τα αριστερά (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:66 msgid "workspace.align.hright" msgstr "Ευθυγράμμιση προς τα δεξιά (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:99 msgid "workspace.align.vbottom" msgstr "Στοίχιση κάτω (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:91 msgid "workspace.align.vcenter" msgstr "Ευθυγραμμίστε το κάθετο κέντρο (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:104 msgid "workspace.align.vdistribute" msgstr "Κατανομή κατακόρυφων αποστάσεων (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:83 msgid "workspace.align.vtop" msgstr "Ευθυγραμμίστε την κορυφή (%s)" #: src/app/main/ui/workspace/sidebar/assets.cljs +#, unused msgid "workspace.assets.assets" msgstr "Περιουσιακά στοιχεία" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets.cljs:134 msgid "workspace.assets.box-filter-all" msgstr "Όλα τα περιουσιακά στοιχεία" -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/dashboard/grid.cljs:130, src/app/main/ui/dashboard/grid.cljs:162, src/app/main/ui/workspace/sidebar/assets/colors.cljs:485, src/app/main/ui/workspace/sidebar/assets.cljs:150 msgid "workspace.assets.colors" msgstr "Χρώματα" -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/dashboard/grid.cljs:126, src/app/main/ui/dashboard/grid.cljs:141, src/app/main/ui/workspace/sidebar/assets/components.cljs:513, src/app/main/ui/workspace/sidebar/assets.cljs:139 msgid "workspace.assets.components" msgstr "Συστατικά" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/context_menu.cljs:529, src/app/main/ui/workspace/sidebar/assets/colors.cljs:251, src/app/main/ui/workspace/sidebar/assets/components.cljs:577, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:424, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:443 msgid "workspace.assets.delete" msgstr "Διαγραφή" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/context_menu.cljs:534, src/app/main/ui/workspace/sidebar/assets/components.cljs:572 msgid "workspace.assets.duplicate" msgstr "Αντιγραφή" -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:247, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:439 msgid "workspace.assets.edit" msgstr "Επεξεργασία" -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/graphics.cljs:384, src/app/main/ui/workspace/sidebar/assets.cljs:145 msgid "workspace.assets.graphics" msgstr "Γραφικά" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets.cljs:168 msgid "workspace.assets.libraries" msgstr "Βιβλιοθήκες" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/file_library.cljs:295 msgid "workspace.assets.not-found" msgstr "Δεν βρέθηκαν στοιχεία" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/context_menu.cljs:532, src/app/main/ui/workspace/sidebar/assets/colors.cljs:243, src/app/main/ui/workspace/sidebar/assets/components.cljs:566, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:421, src/app/main/ui/workspace/sidebar/assets/groups.cljs:63, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:434 msgid "workspace.assets.rename" msgstr "Μετονομασία" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets.cljs:173 msgid "workspace.assets.search" msgstr "Αναζήτηση στοιχείων" -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/dashboard/grid.cljs:134, src/app/main/ui/dashboard/grid.cljs:189, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:397, src/app/main/ui/workspace/sidebar/assets.cljs:155 msgid "workspace.assets.typography" msgstr "Τυπογραφίες" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused msgid "workspace.assets.typography.font-id" msgstr "Γραμματοσειρά" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:505 msgid "workspace.assets.typography.font-size" msgstr "Μέγεθος" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:501 msgid "workspace.assets.typography.font-variant-id" msgstr "Παραλαγή" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:523 msgid "workspace.assets.typography.go-to-edit" msgstr "Μεταβείτε στο αρχείο βιβλιοθήκης στυλ για επεξεργασία" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:513 msgid "workspace.assets.typography.letter-spacing" msgstr "Διάστημα γραμμάτων" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:509 msgid "workspace.assets.typography.line-height" msgstr "Υψος γραμμής" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, -#: src/app/main/ui/inspect/attributes/text.cljs, -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/dashboard/grid.cljs:199, src/app/main/ui/workspace/libraries.cljs:461, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:464, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:489, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:596, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:615 msgid "workspace.assets.typography.sample" msgstr "Ag" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:517 msgid "workspace.assets.typography.text-transform" msgstr "Μετασχηματισμός κειμένου" -#: src/app/main/data/workspace/libraries.cljs, -#: src/app/main/ui/components/color_bullet.cljs +#: src/app/util/color.cljs:34 msgid "workspace.gradients.linear" msgstr "Γραμμική κλίση" -#: src/app/main/data/workspace/libraries.cljs, -#: src/app/main/ui/components/color_bullet.cljs +#: src/app/util/color.cljs:35 msgid "workspace.gradients.radial" msgstr "Ακτινική κλίση" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:238 msgid "workspace.header.menu.disable-dynamic-alignment" msgstr "Απενεργοποίηση δυναμικής ευθυγράμμισης" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:239 msgid "workspace.header.menu.enable-dynamic-alignment" msgstr "Ενεργοποίηση δυναμικής ευθυγράμμισης" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:353 msgid "workspace.header.menu.hide-palette" msgstr "Απόκρυψη παλέτας χρωμάτων" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:320 msgid "workspace.header.menu.hide-rules" msgstr "Απόκρυψη κανόνες" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:432 msgid "workspace.header.menu.select-all" msgstr "Επιλογή όλων" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:354 msgid "workspace.header.menu.show-palette" msgstr "Εμφάνιση παλέτας χρωμάτων" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:321 msgid "workspace.header.menu.show-rules" msgstr "Εμφάνιση κανόνες" #: src/app/main/ui/workspace/header.cljs +#, unused msgid "workspace.header.save-error" msgstr "Σφάλμα κατά την αποθήκευση" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/right_header.cljs:52 msgid "workspace.header.saved" msgstr "Αποθηκεύτηκε" #: src/app/main/ui/workspace/header.cljs +#, unused msgid "workspace.header.saving" msgstr "Aποθήκευση " -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/right_header.cljs:42, src/app/main/ui/workspace/right_header.cljs:47 msgid "workspace.header.unsaved" msgstr "Μη αποθηκευμένες αλλαγές" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/right_header.cljs:239 msgid "workspace.header.viewer" msgstr "Λειτουργία προβολής (%s)" #: src/app/main/ui/workspace/libraries.cljs +#, unused msgid "workspace.libraries.add" msgstr "Προσθήκη" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:80, src/app/main/ui/workspace/libraries.cljs:99 msgid "workspace.libraries.colors" msgstr "%s χρώματα" -#: src/app/main/ui/workspace/colorpicker/libraries.cljs, -#: src/app/main/ui/workspace/colorpalette.cljs +#: src/app/main/ui/workspace/color_palette_ctx_menu.cljs:60, src/app/main/ui/workspace/colorpicker/libraries.cljs:73, src/app/main/ui/workspace/text_palette_ctx_menu.cljs:50 msgid "workspace.libraries.colors.file-library" msgstr "Βιβλιοθήκη αρχείων" -#: src/app/main/ui/workspace/colorpicker/libraries.cljs, -#: src/app/main/ui/workspace/colorpalette.cljs +#: src/app/main/ui/workspace/color_palette_ctx_menu.cljs:82, src/app/main/ui/workspace/colorpicker/libraries.cljs:72 msgid "workspace.libraries.colors.recent-colors" msgstr "Πρόσφατα χρώματα" -#: src/app/main/ui/workspace/colorpicker.cljs +#: src/app/main/ui/workspace/colorpicker.cljs:372 msgid "workspace.libraries.colors.save-color" msgstr "Αποθηκεύστε το στυλ χρώματος" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:74, src/app/main/ui/workspace/libraries.cljs:91 msgid "workspace.libraries.components" msgstr "%s στοιχεία" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:215 msgid "workspace.libraries.file-library" msgstr "Βιβλιοθήκη αρχείων" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:77, src/app/main/ui/workspace/libraries.cljs:95 msgid "workspace.libraries.graphics" msgstr "%s γραφικά" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:209 msgid "workspace.libraries.in-this-file" msgstr "ΒΙΒΛΙΟΘΗΚΕΣ ΣΕ ΑΥΤΟ ΤΟ ΑΡΧΕΙΟ" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:526, src/app/main/ui/workspace/libraries.cljs:531 msgid "workspace.libraries.libraries" msgstr "ΒΙΒΛΙΟΘΗΚΕΣ" #: src/app/main/ui/workspace/libraries.cljs +#, unused msgid "workspace.libraries.library" msgstr "ΒΙΒΛΙΟΘΗΚΗ" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:380 msgid "workspace.libraries.no-libraries-need-sync" msgstr "Δεν υπάρχουν κοινόχρηστες βιβλιοθήκες που χρειάζονται ενημέρωση" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:299 msgid "workspace.libraries.no-matches-for" msgstr "Δεν βρίσκεται «%s»" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:296 msgid "workspace.libraries.no-shared-libraries-available" msgstr "Δεν υπάρχουν διαθέσιμες κοινόχρηστες βιβλιοθήκες" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:260 msgid "workspace.libraries.search-shared-libraries" msgstr "Αναζήτηση σε κοινόχρηστες βιβλιοθήκες" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:256 msgid "workspace.libraries.shared-libraries" msgstr "Κοινόχρηστες βιβλιοθήκες" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:308 msgid "workspace.libraries.text.multiple-typography" msgstr "Πολλαπλές τυπογραφίες" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:311 msgid "workspace.libraries.text.multiple-typography-tooltip" msgstr "Αποσύνδεση όλων των τυπογραφιών" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:83, src/app/main/ui/workspace/libraries.cljs:103 msgid "workspace.libraries.typography" msgstr "%s τυπογραφίες" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:402 msgid "workspace.libraries.update" msgstr "Ενημέρωση" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:536 msgid "workspace.libraries.updates" msgstr "ΕΝΗΜΕΡΩΣΕΙΣ" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:86, src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:102 msgid "workspace.options.blur-options.title" msgstr "Θολούρα" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:85 msgid "workspace.options.blur-options.title.group" msgstr "Θολούρα της ομάδας" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:84 msgid "workspace.options.blur-options.title.multiple" msgstr "Θόλωμα επιλογής" -#: src/app/main/ui/workspace/sidebar/options/page.cljs +#: src/app/main/ui/workspace/sidebar/options/page.cljs:32, src/app/main/ui/workspace/sidebar/options/page.cljs:39 msgid "workspace.options.canvas-background" msgstr "Χρώμα του φόντου" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:600, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:605 msgid "workspace.options.component" msgstr "Συστατικό" -#: src/app/main/ui/workspace/sidebar/options.cljs +#: src/app/main/ui/workspace/sidebar/options.cljs:112 msgid "workspace.options.design" msgstr "Σχέδιο" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs +#: src/app/main/ui/viewer/inspect/exports.cljs:139 msgid "workspace.options.export" msgstr "Εξαγωγή" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs +#: src/app/main/ui/viewer/inspect/exports.cljs:195, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:237 msgid "workspace.options.export-object" msgstr "Εξαγωγή σχήματος" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs +#: src/app/main/ui/viewer/inspect/exports.cljs:178, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:219 msgid "workspace.options.export.suffix" msgstr "Κατάληξη" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs +#: src/app/main/ui/export.cljs:172, src/app/main/ui/export.cljs:241, src/app/main/ui/viewer/inspect/exports.cljs:194, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:236 msgid "workspace.options.exporting-object" msgstr "Εξαγωγή ..." -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:49, src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:174 msgid "workspace.options.fill" msgstr "Γέμισμα" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:29 msgid "workspace.options.grid.auto" msgstr "Αυτόματο" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:157 msgid "workspace.options.grid.column" msgstr "Στήλες" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused msgid "workspace.options.grid.params.columns" msgstr "Στήλες" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:259 msgid "workspace.options.grid.params.gutter" msgstr "απόσταση" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:246 msgid "workspace.options.grid.params.height" msgstr "Υψος" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:270 msgid "workspace.options.grid.params.margin" msgstr "Περιθώριο" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused msgid "workspace.options.grid.params.rows" msgstr "Σειρές" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:216, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:290 msgid "workspace.options.grid.params.set-default" msgstr "Ορίσετε ως προεπιλογή" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused msgid "workspace.options.grid.params.size" msgstr "Μέγεθος" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused msgid "workspace.options.grid.params.type" msgstr "Τύπος" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:231 msgid "workspace.options.grid.params.type.bottom" msgstr "Κάτω" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:229 msgid "workspace.options.grid.params.type.center" msgstr "Κέντρο" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:228 msgid "workspace.options.grid.params.type.left" msgstr "Αριστερά" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:232 msgid "workspace.options.grid.params.type.right" msgstr "Δεξιά" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:225 msgid "workspace.options.grid.params.type.stretch" msgstr "Τέντωμα" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:227 msgid "workspace.options.grid.params.type.top" msgstr "Πάνω" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:211, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:288 msgid "workspace.options.grid.params.use-default" msgstr "χρήση προεπιλεγμένης" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:247 msgid "workspace.options.grid.params.width" msgstr "Πλάτος" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:158 msgid "workspace.options.grid.row" msgstr "Σειρές" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:156 msgid "workspace.options.grid.square" msgstr "τετράγωνο" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:48 msgid "workspace.options.group-fill" msgstr "Συμπλήρωση ομάδας" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:42 msgid "workspace.options.group-stroke" msgstr "Ομαδικό εγκεφαλικό" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:137 msgid "workspace.options.layer-options.blend-mode.color" msgstr "Χρώμα" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:126 msgid "workspace.options.layer-options.blend-mode.color-burn" msgstr "Έγκαυμα χρώματος" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:129 msgid "workspace.options.layer-options.blend-mode.color-dodge" msgstr "Χρώμα πιο μαλακό " -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:124 msgid "workspace.options.layer-options.blend-mode.darken" msgstr "Σκούρο" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:133 msgid "workspace.options.layer-options.blend-mode.difference" msgstr "Διαφορά" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:134 msgid "workspace.options.layer-options.blend-mode.exclusion" msgstr "Αποκλεισμός" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:132 msgid "workspace.options.layer-options.blend-mode.hard-light" msgstr "Δυνατο φως" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:135 msgid "workspace.options.layer-options.blend-mode.hue" msgstr "Απόχρωση" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:127 msgid "workspace.options.layer-options.blend-mode.lighten" msgstr "Φωτίζω" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:138 msgid "workspace.options.layer-options.blend-mode.luminosity" msgstr "Φωτεινότητα" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:125 msgid "workspace.options.layer-options.blend-mode.multiply" msgstr "Πολλαπλασιάζω" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:123 msgid "workspace.options.layer-options.blend-mode.normal" msgstr "Κανονικός" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:130 msgid "workspace.options.layer-options.blend-mode.overlay" msgstr "Επικάλυμμα" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:136 msgid "workspace.options.layer-options.blend-mode.saturation" msgstr "Κορεσμός" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:128 msgid "workspace.options.layer-options.blend-mode.screen" msgstr "Κόσκινο" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:131 msgid "workspace.options.layer-options.blend-mode.soft-light" msgstr "Απαλό φως" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#, unused msgid "workspace.options.layer-options.title" msgstr "Στρώμα" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#, unused msgid "workspace.options.layer-options.title.group" msgstr "στρώματα Ομάδα" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#, unused msgid "workspace.options.layer-options.title.multiple" msgstr "Επιλεγμένα επίπεδα" -#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#, unused msgid "workspace.options.position" msgstr "Θέση" -#: src/app/main/ui/workspace/sidebar/options.cljs +#: src/app/main/ui/workspace/sidebar/options.cljs:157 msgid "workspace.options.prototype" msgstr "Πρωτότυπο" +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:469, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:481 msgid "workspace.options.radius" msgstr "Ακτίνα κύκλου" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:532 msgid "workspace.options.radius.all-corners" msgstr "Όλες οι γωνίες" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:533 msgid "workspace.options.radius.single-corners" msgstr "Μονές γωνίες" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:451 msgid "workspace.options.rotation" msgstr "Περιστροφή" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:741 msgid "workspace.options.select-a-shape" msgstr "" "Επιλέξτε ένα σχήμα, ένα artboard ή μια ομάδα για να σύρετε μια σύνδεση με " "άλλο artboard." -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:47 msgid "workspace.options.selection-fill" msgstr "Συμπλήρωση επιλογής" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:41 msgid "workspace.options.selection-stroke" msgstr "Επιλογή διαδρομής" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:40, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:198, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:200 msgid "workspace.options.shadow-options.blur" msgstr "Θολούρα" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:144 msgid "workspace.options.shadow-options.drop-shadow" msgstr "Σκίαση" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:145 msgid "workspace.options.shadow-options.inner-shadow" msgstr "Εσωτερική σκιά" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:38, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:186 msgid "workspace.options.shadow-options.offsetx" msgstr "Χ" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:39, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:224 msgid "workspace.options.shadow-options.offsety" msgstr "Υ" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:41, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:211, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:213 msgid "workspace.options.shadow-options.spread" msgstr "Διάχυση" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:296 msgid "workspace.options.shadow-options.title" msgstr "Σκιά" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:295 msgid "workspace.options.shadow-options.title.group" msgstr "Ομαδική σκιά" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:294 msgid "workspace.options.shadow-options.title.multiple" msgstr "Επιλογή σκιών" -#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:162 msgid "workspace.options.size" msgstr "Μέγεθος" -#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:355 msgid "workspace.options.size-presets" msgstr "Προεπιλογές μεγέθους" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:43 msgid "workspace.options.stroke" msgstr "Ακρη" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:87 msgid "workspace.options.stroke.center" msgstr "Κέντρο" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:105 msgid "workspace.options.stroke.dashed" msgstr "Dashed" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:104 msgid "workspace.options.stroke.dotted" msgstr "Διάστικτο" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:88 msgid "workspace.options.stroke.inner" msgstr "Μέσα" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:106 msgid "workspace.options.stroke.mixed" msgstr "Μικτός" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:89 msgid "workspace.options.stroke.outer" msgstr "Εξω" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:103 msgid "workspace.options.stroke.solid" msgstr "Στερεός" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:115 msgid "workspace.options.text-options.align-bottom" msgstr "Στοίχιση κάτω" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:111 msgid "workspace.options.text-options.align-middle" msgstr "Στοίχιση στο κέντρο" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:107 msgid "workspace.options.text-options.align-top" msgstr "Ευθυγραμμίστε την κορυφή" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:149 msgid "workspace.options.text-options.grow-auto-height" msgstr "Αυτόματο ύψος" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:145 msgid "workspace.options.text-options.grow-auto-width" msgstr "Αυτόματο πλάτος" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:141 msgid "workspace.options.text-options.grow-fixed" msgstr "Σταθερός" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:381 msgid "workspace.options.text-options.letter-spacing" msgstr "Διάστημα γραμμάτων" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:364 msgid "workspace.options.text-options.line-height" msgstr "Υψος γραμμής" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused msgid "workspace.options.text-options.lowercase" msgstr "Πεζά" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused msgid "workspace.options.text-options.none" msgstr "Κανένας" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:176 msgid "workspace.options.text-options.strikethrough" msgstr "Διαγράμμιση (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:51 msgid "workspace.options.text-options.text-align-center" msgstr "Ευθυγράμμιση κέντρο (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:59 msgid "workspace.options.text-options.text-align-justify" msgstr "Δικαιολόγηση (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:47 msgid "workspace.options.text-options.text-align-left" msgstr "Στοίχιση αριστερά (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:55 msgid "workspace.options.text-options.text-align-right" msgstr "Για ευθυγράμμιση προς τα δεξιά (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:189 msgid "workspace.options.text-options.title" msgstr "Κείμενο" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:188 msgid "workspace.options.text-options.title-group" msgstr "Κείμενο ομάδας" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:187 msgid "workspace.options.text-options.title-selection" msgstr "Κείμενο επιλογής" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused msgid "workspace.options.text-options.titlecase" msgstr "Τίτλος υπόθεση" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:171 msgid "workspace.options.text-options.underline" msgstr "υπογράμμιση (%s)" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused msgid "workspace.options.text-options.uppercase" msgstr "κεφαλαία" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:745 msgid "workspace.options.use-play-button" msgstr "" "Χρησιμοποιήστε το κουμπί αναπαραγωγής στην κεφαλίδα για να εκτελέσετε την " "προβολή πρωτοτύπου." -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:193 msgid "workspace.shape.menu.back" msgstr "Αποστολή προς τα πίσω" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:190 msgid "workspace.shape.menu.backward" msgstr "Αποστολή προς τα πίσω" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:139 msgid "workspace.shape.menu.copy" msgstr "αντίγραφο" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:465 msgid "workspace.shape.menu.create-component" msgstr "Δημιουργία στοιχείου" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:142 msgid "workspace.shape.menu.cut" msgstr "Αποκοπή" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:486 msgid "workspace.shape.menu.delete" msgstr "Διαγραφή" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:432 msgid "workspace.shape.menu.detach-instance" msgstr "Αποσύνδεση παρουσίας" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:148 msgid "workspace.shape.menu.duplicate" msgstr "Αντίγραφο" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:321 msgid "workspace.shape.menu.edit" msgstr "Επεξεργασία" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:208 msgid "workspace.shape.menu.flip-horizontal" msgstr "Αναστρέψτε οριζόντια" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:204 msgid "workspace.shape.menu.flip-vertical" msgstr "Αναστροφή κάθετου" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:184 msgid "workspace.shape.menu.forward" msgstr "Φέρτε μπροστά" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:187 msgid "workspace.shape.menu.front" msgstr "Φέρτε μπροστά" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:261 msgid "workspace.shape.menu.group" msgstr "Ομάδα" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:363, src/app/main/ui/workspace/sidebar/layer_item.cljs:145 msgid "workspace.shape.menu.hide" msgstr "Κρύβω" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:371, src/app/main/ui/workspace/sidebar/layer_item.cljs:153 msgid "workspace.shape.menu.lock" msgstr "Κλείδωμα" -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:266 msgid "workspace.shape.menu.mask" msgstr "Μάσκα" -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:145, src/app/main/ui/workspace/context_menu.cljs:545 msgid "workspace.shape.menu.paste" msgstr "Επικόλληση" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:436 msgid "workspace.shape.menu.reset-overrides" msgstr "Επαναφορά παρακάμψεων" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:360, src/app/main/ui/workspace/sidebar/layer_item.cljs:144 msgid "workspace.shape.menu.show" msgstr "προβολή" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:257 msgid "workspace.shape.menu.ungroup" msgstr "Κατάργηση ομάδας" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:368, src/app/main/ui/workspace/sidebar/layer_item.cljs:152 msgid "workspace.shape.menu.unlock" msgstr "Ξεκλείδωμα" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:271 msgid "workspace.shape.menu.unmask" msgstr "Ανακάλυψη" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/right_header.cljs:231, src/app/main/ui/workspace/right_header.cljs:232 msgid "workspace.sidebar.history" msgstr "Ιστορικό (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/sidebar/layers.cljs:522, src/app/main/ui/workspace/sidebar.cljs:100 msgid "workspace.sidebar.layers" msgstr "στρώσεις" -#: src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs, -#: src/app/main/ui/inspect/attributes/svg.cljs +#: src/app/main/ui/viewer/inspect/attributes/svg.cljs:56, src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs:91 msgid "workspace.sidebar.options.svg-attrs.title" msgstr "Εισαγόμενα χαρακτηριστικά SVG" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs +#: src/app/main/ui/workspace/sidebar/sitemap.cljs:217 msgid "workspace.sidebar.sitemap" msgstr "Σελίδες" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/left_header.cljs:91 msgid "workspace.sitemap" msgstr "Χάρτης ιστοτόπου" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/sidebar.cljs:120 msgid "workspace.toolbar.assets" msgstr "Στοιχεία" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/palette.cljs:165, src/app/main/ui/workspace/palette.cljs:166 msgid "workspace.toolbar.color-palette" msgstr "Παλέτα χρωμάτων (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/right_header.cljs:220, src/app/main/ui/workspace/right_header.cljs:221 msgid "workspace.toolbar.comments" msgstr "Σχόλια (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:180, src/app/main/ui/workspace/top_toolbar.cljs:181 msgid "workspace.toolbar.curve" msgstr "Στροφή (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:160, src/app/main/ui/workspace/top_toolbar.cljs:161 msgid "workspace.toolbar.ellipse" msgstr "Έλλειψη (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:142, src/app/main/ui/workspace/top_toolbar.cljs:143 msgid "workspace.toolbar.frame" msgstr "Artboard (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:59, src/app/main/ui/workspace/top_toolbar.cljs:60 msgid "workspace.toolbar.image" msgstr "Εικόνα (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:132, src/app/main/ui/workspace/top_toolbar.cljs:133 msgid "workspace.toolbar.move" msgstr "" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:189, src/app/main/ui/workspace/top_toolbar.cljs:190 msgid "workspace.toolbar.path" msgstr "Path (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:151, src/app/main/ui/workspace/top_toolbar.cljs:152 msgid "workspace.toolbar.rect" msgstr "Ορθογώνιο (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:169, src/app/main/ui/workspace/top_toolbar.cljs:170 msgid "workspace.toolbar.text" msgstr "Κείμενο (%s)" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:342 msgid "workspace.undo.empty" msgstr "Δεν υπάρχουν μέχρι στιγμής αλλαγές στο ιστορικό" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:147 msgid "workspace.undo.entry.delete" msgstr "Διαγράφηκε %s" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:146 msgid "workspace.undo.entry.modify" msgstr "" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:148 msgid "workspace.undo.entry.move" msgstr "Τροποποιήθηκε %s" +#: src/app/main/ui/workspace/sidebar/history.cljs:111 msgid "workspace.undo.entry.multiple.circle" msgstr "κύκλους" +#: src/app/main/ui/workspace/sidebar/history.cljs:112 msgid "workspace.undo.entry.multiple.color" msgstr "χρώματα" +#: src/app/main/ui/workspace/sidebar/history.cljs:113 msgid "workspace.undo.entry.multiple.component" msgstr "συστατικά" +#: src/app/main/ui/workspace/sidebar/history.cljs:114 msgid "workspace.undo.entry.multiple.curve" msgstr "Kαμπύλες" +#: src/app/main/ui/workspace/sidebar/history.cljs:115 msgid "workspace.undo.entry.multiple.frame" msgstr "artboard" +#: src/app/main/ui/workspace/sidebar/history.cljs:116 msgid "workspace.undo.entry.multiple.group" msgstr "ομάδες" +#: src/app/main/ui/workspace/sidebar/history.cljs:117 msgid "workspace.undo.entry.multiple.media" msgstr "γραφικά στοιχεία" +#: src/app/main/ui/workspace/sidebar/history.cljs:118 msgid "workspace.undo.entry.multiple.multiple" msgstr "αντικείμενα" +#: src/app/main/ui/workspace/sidebar/history.cljs:119 msgid "workspace.undo.entry.multiple.page" msgstr "σελίδες" +#: src/app/main/ui/workspace/sidebar/history.cljs:120 msgid "workspace.undo.entry.multiple.path" msgstr "paths" +#: src/app/main/ui/workspace/sidebar/history.cljs:121 msgid "workspace.undo.entry.multiple.rect" msgstr "ορθογώνια" +#: src/app/main/ui/workspace/sidebar/history.cljs:122 msgid "workspace.undo.entry.multiple.shape" msgstr "σχήματα" +#: src/app/main/ui/workspace/sidebar/history.cljs:123 msgid "workspace.undo.entry.multiple.text" msgstr "κείμενα" +#: src/app/main/ui/workspace/sidebar/history.cljs:124 msgid "workspace.undo.entry.multiple.typography" msgstr "στοιχεία τυπογραφίας" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:145 msgid "workspace.undo.entry.new" msgstr "Νέα %s" +#: src/app/main/ui/workspace/sidebar/history.cljs:125 msgid "workspace.undo.entry.single.circle" msgstr "κύκλος" +#: src/app/main/ui/workspace/sidebar/history.cljs:126 msgid "workspace.undo.entry.single.color" msgstr "χρώμα" +#: src/app/main/ui/workspace/sidebar/history.cljs:127 msgid "workspace.undo.entry.single.component" msgstr "συστατικό" +#: src/app/main/ui/workspace/sidebar/history.cljs:128 msgid "workspace.undo.entry.single.curve" msgstr "καμπύλη" +#: src/app/main/ui/workspace/sidebar/history.cljs:129 msgid "workspace.undo.entry.single.frame" msgstr "artboard" +#: src/app/main/ui/workspace/sidebar/history.cljs:130 msgid "workspace.undo.entry.single.group" msgstr "ομάδα" +#: src/app/main/ui/workspace/sidebar/history.cljs:131 msgid "workspace.undo.entry.single.image" msgstr "εικόνα" +#: src/app/main/ui/workspace/sidebar/history.cljs:132 msgid "workspace.undo.entry.single.media" msgstr "γραφικό στοιχείο" +#: src/app/main/ui/workspace/sidebar/history.cljs:133 msgid "workspace.undo.entry.single.multiple" msgstr "αντικείμενο" +#: src/app/main/ui/workspace/sidebar/history.cljs:134 msgid "workspace.undo.entry.single.page" msgstr "σελίδα" +#: src/app/main/ui/workspace/sidebar/history.cljs:135 msgid "workspace.undo.entry.single.path" msgstr "path" +#: src/app/main/ui/workspace/sidebar/history.cljs:136 msgid "workspace.undo.entry.single.rect" msgstr "ορθωγώνιο" +#: src/app/main/ui/workspace/sidebar/history.cljs:137 msgid "workspace.undo.entry.single.shape" msgstr "σχήμα" +#: src/app/main/ui/workspace/sidebar/history.cljs:138 msgid "workspace.undo.entry.single.text" msgstr "κείμενο" +#: src/app/main/ui/workspace/sidebar/history.cljs:139 msgid "workspace.undo.entry.single.typography" msgstr "τυπογραφικό στοιχείο" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:149 msgid "workspace.undo.entry.unknown" msgstr "Λειτουργία άνω του %s" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:335 msgid "workspace.undo.title" msgstr "Ιστορία" -#: src/app/main/data/workspace/libraries.cljs +#: src/app/main/data/workspace/libraries.cljs:1094 msgid "workspace.updates.dismiss" msgstr "Παράβλεψη" -#: src/app/main/data/workspace/libraries.cljs +#: src/app/main/data/workspace/libraries.cljs:1090 msgid "workspace.updates.there-are-updates" msgstr "Υπάρχουν ενημερώσεις σε κοινόχρηστες βιβλιοθήκες" -#: src/app/main/data/workspace/libraries.cljs +#: src/app/main/data/workspace/libraries.cljs:1097 msgid "workspace.updates.update" msgstr "Ενημέρωση" +#, unused msgid "workspace.viewport.click-to-close-path" msgstr "Κάντε κλικ για να κλείσετε τη διαδρομή" diff --git a/frontend/translations/en.po b/frontend/translations/en.po index 8458241ba9..f6cc3c3b65 100644 --- a/frontend/translations/en.po +++ b/frontend/translations/en.po @@ -11,509 +11,557 @@ msgstr "" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 4.14-dev\n" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:151, src/app/main/ui/viewer/login.cljs:104 msgid "auth.already-have-account" msgstr "Already have an account?" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:296 +msgid "auth.check-mail" +msgstr "Check your email" + +#: src/app/main/ui/auth/register.cljs:299 msgid "auth.check-your-email" msgstr "Check your email and click on the link to verify and start using Penpot." -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:78 msgid "auth.confirm-password" msgstr "Confirm password" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/register.cljs:163 msgid "auth.create-demo-account" msgstr "Create demo account" #: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#, unused msgid "auth.create-demo-profile" msgstr "Just wanna try it?" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/login.cljs:43 msgid "auth.demo-warning" msgstr "" "This is a DEMO service, DO NOT USE for real work, the projects will be " "periodically wiped." -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/auth/login.cljs -msgid "auth.work-email" -msgstr "Work email" - -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:189, src/app/main/ui/viewer/login.cljs:90 msgid "auth.forgot-password" msgstr "Forgot password?" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:254 msgid "auth.fullname" msgstr "Full Name" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:282 msgid "auth.login-account-title" msgstr "Log into my account" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:155, src/app/main/ui/viewer/login.cljs:107 msgid "auth.login-here" msgstr "Login here." -#: src/app/main/ui/auth/register.cljs -msgid "auth.check-mail" -msgstr "Check your email" - -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:195 msgid "auth.login-submit" msgstr "Login" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:285 msgid "auth.login-tagline" msgstr "Penpot is the free open-source design tool for Design and Code collaboration" -#: src/app/main/ui/auth/login.cljs -msgid "auth.register-tagline" -msgstr "With a free Penpot account, you can create unlimited teams and collaborate with other designers and developers on as many projects as you like. " - -#: src/app/main/ui/auth/login.cljs -msgid "auth.register-account-tagline" -msgstr "Let us know what we should call you on the dashboard and in emails." - -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:222 msgid "auth.login-with-github-submit" msgstr "GitHub" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:228 msgid "auth.login-with-gitlab-submit" msgstr "GitLab" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:216 msgid "auth.login-with-google-submit" msgstr "Google" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:201 msgid "auth.login-with-ldap-submit" msgstr "LDAP" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:234, src/app/main/ui/auth/login.cljs:255 msgid "auth.login-with-oidc-submit" msgstr "OpenID" -#: src/app/main/ui/settings/team-form.cljs, src/app/main/ui/auth/register.cljs, src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/onboarding/team_choice.cljs, src/app/main/ui/settings/access_tokens.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/settings/profile.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/auth/register.cljs:217, src/app/main/ui/dashboard/team_form.cljs:76, src/app/main/ui/onboarding/team_choice.cljs:180, src/app/main/ui/settings/access_tokens.cljs:66, src/app/main/ui/settings/feedback.cljs:34, src/app/main/ui/settings/profile.cljs:45, src/app/main/ui/workspace/sidebar/assets/groups.cljs:108 msgid "auth.name.not-all-space" msgstr "The name must contain some character other than space." -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/onboarding/team_choice.cljs, src/app/main/ui/settings/access_tokens.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/settings/profile.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/auth/register.cljs:218, src/app/main/ui/dashboard/team_form.cljs:77, src/app/main/ui/onboarding/team_choice.cljs:181, src/app/main/ui/settings/access_tokens.cljs:67, src/app/main/ui/settings/feedback.cljs:33, src/app/main/ui/settings/profile.cljs:44, src/app/main/ui/workspace/sidebar/assets/groups.cljs:109 msgid "auth.name.too-long" msgstr "The name must contain at most 250 characters." -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:71 msgid "auth.new-password" msgstr "Type a new password" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:42 msgid "auth.notifications.invalid-token-error" msgstr "The recovery token is invalid." -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:46 msgid "auth.notifications.password-changed-successfully" msgstr "Password successfully changed" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:57 msgid "auth.notifications.profile-not-verified" msgstr "Profile is not verified, please verify profile before continue." -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:40 msgid "auth.notifications.recovery-token-sent" msgstr "Password recovery link sent to your inbox." -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:47 msgid "auth.notifications.team-invitation-accepted" msgstr "Joined the team successfully" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:179, src/app/main/ui/auth/register.cljs:115 msgid "auth.password" msgstr "Password" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:114 msgid "auth.password-length-hint" msgstr "At least 8 characters" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/recovery.cljs:61, src/app/main/ui/auth/recovery.cljs:62, src/app/main/ui/auth/register.cljs:81, src/app/main/ui/settings/password.cljs:75, src/app/main/ui/settings/password.cljs:76, src/app/main/ui/settings/password.cljs:77 msgid "auth.password-not-empty" msgstr "Password must contain some character other than space." +#: src/app/main/ui/auth.cljs:41 msgid "auth.privacy-policy" msgstr "Privacy policy" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:88 msgid "auth.recovery-request-submit" msgstr "Recover Password" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:101 msgid "auth.recovery-request-subtitle" msgstr "We'll send you an email with instructions" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:100 msgid "auth.recovery-request-title" msgstr "Forgot password?" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:82 msgid "auth.recovery-submit" msgstr "Change your password" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:298, src/app/main/ui/viewer/login.cljs:93 msgid "auth.register" msgstr "No account yet?" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs -msgid "auth.register-submit" -msgstr "Create an account" +#: src/app/main/ui/auth/register.cljs:277 +msgid "auth.register-account-tagline" +msgstr "Let us know what we should call you on the dashboard and in emails." -#: src/app/main/ui/auth/register.cljs -msgid "auth.register-title" -msgstr "Create an account" - -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:276 msgid "auth.register-account-title" msgstr "Your name" +#: src/app/main/ui/auth/login.cljs:302, src/app/main/ui/auth/register.cljs:121, src/app/main/ui/auth/register.cljs:263, src/app/main/ui/viewer/login.cljs:97 +msgid "auth.register-submit" +msgstr "Create an account" + +#: src/app/main/ui/auth/register.cljs:142 +msgid "auth.register-tagline" +msgstr "" +"With a free Penpot account, you can create unlimited teams and collaborate " +"with other designers and developers on as many projects as you like. " + +#: src/app/main/ui/auth/register.cljs:140 +msgid "auth.register-title" +msgstr "Create an account" + #: src/app/main/ui/auth.cljs +#, unused msgid "auth.sidebar-tagline" msgstr "The open-source solution for design and prototyping." +#: src/app/main/ui/auth/register.cljs:202 +#, markdown +msgid "auth.terms-and-privacy-agreement" +msgstr "I agree to the [terms of service](%s) and [privacy policy](%s)." + +#: src/app/main/ui/auth.cljs:33, src/app/main/ui/dashboard/sidebar.cljs:1022, src/app/main/ui/workspace/main_menu.cljs:150 msgid "auth.terms-of-service" msgstr "Terms of service" +#, unused msgid "auth.terms-privacy-agreement" msgstr "" "When creating a new account, you agree to ourf terms of service and privacy " "policy." -#: src/app/main/ui/auth/register.cljs -#, markdown -msgid "auth.terms-and-privacy-agreement" -msgstr "" -"I agree to the [terms of service](%s) and [privacy policy](%s)." - -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:297 msgid "auth.verification-email-sent" msgstr "We've sent a verification email to" +#: src/app/main/ui/auth/login.cljs:172, src/app/main/ui/auth/recovery_request.cljs:83, src/app/main/ui/auth/register.cljs:108 +msgid "auth.work-email" +msgstr "Work email" + #: src/app/main/ui/onboarding/questions.cljs +#, unused msgid "branding-illustrations-marketing-pieces" msgstr "...branding, illustrations, marketing pieces, etc." +#: src/app/main/ui/workspace/libraries.cljs:228 msgid "common.publish" msgstr "Publish" +#: src/app/main/ui/viewer/share_link.cljs:304, src/app/main/ui/viewer/share_link.cljs:314 msgid "common.share-link.all-users" msgstr "All Penpot users" +#: src/app/main/ui/viewer/share_link.cljs:198 msgid "common.share-link.confirm-deletion-link-description" msgstr "" "Are you sure you want to remove this link? If you do it, it's no longer be " "available for anyone" +#: src/app/main/ui/viewer/share_link.cljs:259, src/app/main/ui/viewer/share_link.cljs:289 msgid "common.share-link.current-tag" msgstr "(current)" +#: src/app/main/ui/viewer/share_link.cljs:207, src/app/main/ui/viewer/share_link.cljs:214 msgid "common.share-link.destroy-link" msgstr "Destroy link" +#: src/app/main/ui/viewer/share_link.cljs:221 msgid "common.share-link.get-link" msgstr "Get link" +#: src/app/main/ui/viewer/share_link.cljs:139 msgid "common.share-link.link-copied-success" msgstr "Link copied successfully" +#: src/app/main/ui/viewer/share_link.cljs:231 msgid "common.share-link.manage-ops" msgstr "Manage permissions" +#: src/app/main/ui/viewer/share_link.cljs:277 msgid "common.share-link.page-shared" msgid_plural "common.share-link.page-shared" msgstr[0] "1 page shared" msgstr[1] "%s pages shared" +#: src/app/main/ui/viewer/share_link.cljs:298 msgid "common.share-link.permissions-can-comment" msgstr "Can comment" +#: src/app/main/ui/viewer/share_link.cljs:308 msgid "common.share-link.permissions-can-inspect" msgstr "Can inspect code" +#: src/app/main/ui/viewer/share_link.cljs:193 msgid "common.share-link.permissions-hint" msgstr "Anyone with link will have access" +#: src/app/main/ui/viewer/share_link.cljs:241 msgid "common.share-link.permissions-pages" msgstr "Pages shared" +#: src/app/main/ui/viewer/share_link.cljs:183 msgid "common.share-link.placeholder" msgstr "Shareable link will appear here" +#: src/app/main/ui/viewer/share_link.cljs:303, src/app/main/ui/viewer/share_link.cljs:313 msgid "common.share-link.team-members" msgstr "Only team members" +#: src/app/main/ui/viewer/share_link.cljs:171 msgid "common.share-link.title" msgstr "Share prototypes" +#: src/app/main/ui/viewer/share_link.cljs:269 msgid "common.share-link.view-all" msgstr "Select All" +#: src/app/main/ui/workspace/libraries.cljs:224 msgid "common.unpublish" msgstr "Unpublish" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:85 msgid "dasboard.team-hero.management" msgstr "Team management" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:84 msgid "dasboard.team-hero.text" msgstr "" "Penpot is meant for teams. Invite members to work together on projects and " "files" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:82 msgid "dasboard.team-hero.title" msgstr "Team up!" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.tutorial-hero.info" msgstr "" "Learn the basics at Penpot while having some fun with this hands on " "tutorial." #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.tutorial-hero.start" msgstr "Start the tutorial" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.tutorial-hero.title" msgstr "Hands on Tutorial" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.walkthrough-hero.info" msgstr "Take a walk through Penpot and get to know its main features." #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.walkthrough-hero.start" msgstr "Start the tour" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.walkthrough-hero.title" msgstr "Interface Walkthrough" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:115 msgid "dashboard.access-tokens.copied-success" msgstr "Copied token" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:202 msgid "dashboard.access-tokens.create" msgstr "Generate new token" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:76 msgid "dashboard.access-tokens.create.success" msgstr "Access token created successfully." -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:300 msgid "dashboard.access-tokens.empty.add-one" msgstr "Press the button \"Generate new token\" to generate one." -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:299 msgid "dashboard.access-tokens.empty.no-access-tokens" msgstr "You have no tokens so far." -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:53 msgid "dashboard.access-tokens.errors-required-name" msgstr "The name is required" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:147 msgid "dashboard.access-tokens.expiration-180-days" msgstr "180 days" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:144 msgid "dashboard.access-tokens.expiration-30-days" msgstr "30 days" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:145 msgid "dashboard.access-tokens.expiration-60-days" msgstr "60 days" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:146 msgid "dashboard.access-tokens.expiration-90-days" msgstr "90 days" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:143 msgid "dashboard.access-tokens.expiration-never" msgstr "Never" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:282 msgid "dashboard.access-tokens.expired-on" msgstr "Expired on %s" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:283 msgid "dashboard.access-tokens.expires-on" msgstr "Expires on %s" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:281 msgid "dashboard.access-tokens.no-expiration" msgstr "No expiration date" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:197 msgid "dashboard.access-tokens.personal" msgstr "Personal access tokens" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:198 msgid "dashboard.access-tokens.personal.description" msgstr "" "Personal access tokens function like an alternative to our login/password " "authentication system and can be used to allow an application to access the " "internal Penpot API" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:154 msgid "dashboard.access-tokens.token-will-expire" msgstr "The token will expire on %s" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:155 msgid "dashboard.access-tokens.token-will-not-expire" msgstr "The token has no expiration date" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:291, src/app/main/ui/workspace/main_menu.cljs:572 msgid "dashboard.add-shared" msgstr "Add as Shared Library" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:75 msgid "dashboard.change-email" msgstr "Change email" -#: src/app/main/data/dashboard.cljs, src/app/main/data/dashboard.cljs +#: src/app/main/data/dashboard.cljs:762, src/app/main/data/dashboard.cljs:983 msgid "dashboard.copy-suffix" msgstr "(copy)" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:338 msgid "dashboard.create-new-team" msgstr "Create new team" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/components/context_menu_a11y.cljs:256, src/app/main/ui/dashboard/sidebar.cljs:646 msgid "dashboard.default-team-name" msgstr "Your Penpot" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:571 msgid "dashboard.delete-team" msgstr "Delete team" +#: src/app/main/ui/dashboard/file_menu.cljs:296, src/app/main/ui/workspace/main_menu.cljs:589 msgid "dashboard.download-binary-file" msgstr "Download Penpot file (.penpot)" +#: src/app/main/ui/dashboard/file_menu.cljs:300, src/app/main/ui/workspace/main_menu.cljs:597 msgid "dashboard.download-standard-file" msgstr "Download standard file (.svg + .json)" -#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:276, src/app/main/ui/dashboard/project_menu.cljs:90 msgid "dashboard.duplicate" msgstr "Duplicate" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:240 msgid "dashboard.duplicate-multi" msgstr "Duplicate %s files" -#: src/app/main/ui/dashboard/grid.cljs +#: src/app/main/ui/dashboard/placeholder.cljs:32 #, markdown msgid "dashboard.empty-placeholder-drafts" msgstr "" "Files added to Libraries will appear here. Try sharing your files or add " -"from our [Libraries & " -"templates](https://penpot.app/libraries-templates)." +"from our [Libraries & templates](https://penpot.app/libraries-templates)." +#: src/app/main/ui/dashboard/file_menu.cljs:249 msgid "dashboard.export-binary-multi" msgstr "Download %s Penpot files (.penpot)" +#: src/app/main/ui/workspace/main_menu.cljs:605 msgid "dashboard.export-frames" msgstr "Export boards as PDF" -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:201 msgid "dashboard.export-frames.title" msgstr "Export as PDF" +#, unused msgid "dashboard.export-multi" msgstr "Export Penpot %s files" -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:109 msgid "dashboard.export-multiple.selected" msgstr "%s of %s elements selected" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:578 msgid "dashboard.export-shapes" msgstr "Export" -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:180 msgid "dashboard.export-shapes.how-to" msgstr "" "You can add export settings to elements from the design properties (at the " "bottom of the right sidebar)." -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:184 msgid "dashboard.export-shapes.how-to-link" msgstr "Info how to set exports at Penpot." -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:179 msgid "dashboard.export-shapes.no-elements" msgstr "There are no elements with export settings." -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:190 msgid "dashboard.export-shapes.title" msgstr "Export selection" +#: src/app/main/ui/dashboard/file_menu.cljs:252 msgid "dashboard.export-standard-multi" msgstr "Download %s standard files (.svg + .json)" +#: src/app/main/ui/export.cljs:427 msgid "dashboard.export.detail" msgstr "* Might include components, graphics, colors and/or typographies." +#: src/app/main/ui/export.cljs:426 msgid "dashboard.export.explain" msgstr "" "One or more files that you want to export are using shared libraries. What " "do you want to do with their assets*?" +#: src/app/main/ui/export.cljs:435 msgid "dashboard.export.options.all.message" msgstr "" "files with shared libraries will be included in the export, maintaining " "their linkage." +#: src/app/main/ui/export.cljs:436 msgid "dashboard.export.options.all.title" msgstr "Export shared libraries" +#: src/app/main/ui/export.cljs:437 msgid "dashboard.export.options.detach.message" msgstr "" "Shared libraries will not be included in the export and no assets will be " "added to the library. " +#: src/app/main/ui/export.cljs:438 msgid "dashboard.export.options.detach.title" msgstr "Treat shared library assets as basic objects" +#: src/app/main/ui/export.cljs:439 msgid "dashboard.export.options.merge.message" msgstr "" "Your file will be exported with all external assets merged into the file " "library." +#: src/app/main/ui/export.cljs:440 msgid "dashboard.export.options.merge.title" msgstr "Include shared library assets in file libraries" +#: src/app/main/ui/export.cljs:418 msgid "dashboard.export.title" msgstr "Export files" +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:309 msgid "dashboard.fonts.deleted-placeholder" msgstr "Missing font" -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:206 msgid "dashboard.fonts.dismiss-all" msgstr "Dismiss all" +#: src/app/main/ui/dashboard/fonts.cljs:436 msgid "dashboard.fonts.empty-placeholder" msgstr "Custom fonts you upload will appear here." -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:194 msgid "dashboard.fonts.fonts-added" msgid_plural "dashboard.fonts.fonts-added" msgstr[0] "1 font added" msgstr[1] "%s fonts added" +#: src/app/main/ui/dashboard/fonts.cljs:170 #, markdown msgid "dashboard.fonts.hero-text1" msgstr "" @@ -523,6 +571,7 @@ msgstr "" "upload fonts with the following formats: **TTF, OTF and WOFF** (only one " "will be needed)." +#: src/app/main/ui/dashboard/fonts.cljs:182 #, markdown msgid "dashboard.fonts.hero-text2" msgstr "" @@ -531,10 +580,11 @@ msgstr "" "Service](https://penpot.app/terms.html). You also might want to read about " "[font licensing](https://www.typography.com/faq)." -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:202 msgid "dashboard.fonts.upload-all" msgstr "Upload all" +#: src/app/main/ui/dashboard/fonts.cljs:187 #, markdown msgid "dashboard.fonts.warning-text" msgstr "" @@ -545,1472 +595,1736 @@ msgstr "" "using [Transfonter](https://transfonter.org/) to generate webfonts and fix " "errors. " +#: src/app/main/ui/dashboard/import.cljs:472, src/app/main/ui/dashboard/project_menu.cljs:108 msgid "dashboard.import" msgstr "Import Penpot files" +#: src/app/main/ui/dashboard/import.cljs:304, src/app/worker/import.cljs:753, src/app/worker/import.cljs:755 msgid "dashboard.import.analyze-error" msgstr "Oops! We couldn't import this file" +#, unused msgid "dashboard.import.analyze-error.components-v2" msgstr "File with components v2 activated but this team doesn't support it yet." +#: src/app/main/ui/dashboard/import.cljs:308 msgid "dashboard.import.import-error" msgstr "There was a problem importing the file. The file wasn't imported." +#: src/app/main/ui/dashboard/import.cljs:493 msgid "dashboard.import.import-message" msgid_plural "dashboard.import.import-message" msgstr[0] "1 file has been imported successfully." msgstr[1] "%s files have been imported successfully." +#: src/app/main/ui/dashboard/import.cljs:481, src/app/main/ui/dashboard/import.cljs:488 msgid "dashboard.import.import-warning" msgstr "Some files containted invalid objects that have been removed." +#: src/app/main/ui/dashboard/import.cljs:144 msgid "dashboard.import.progress.process-colors" msgstr "Processing colors" +#: src/app/main/ui/dashboard/import.cljs:153 msgid "dashboard.import.progress.process-components" msgstr "Processing components" +#: src/app/main/ui/dashboard/import.cljs:150 msgid "dashboard.import.progress.process-media" msgstr "Processing media" +#: src/app/main/ui/dashboard/import.cljs:141 msgid "dashboard.import.progress.process-page" msgstr "Processing page: %s" +#: src/app/main/ui/dashboard/import.cljs:147 msgid "dashboard.import.progress.process-typographies" msgstr "Processing typographies" +#: src/app/main/ui/dashboard/import.cljs:135 msgid "dashboard.import.progress.upload-data" msgstr "Uploading data to server (%s/%s)" +#: src/app/main/ui/dashboard/import.cljs:138 msgid "dashboard.import.progress.upload-media" msgstr "Uploading file: %s" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:109 msgid "dashboard.invite-profile" msgstr "Invite people" -#: src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:547, src/app/main/ui/dashboard/sidebar.cljs:556, src/app/main/ui/dashboard/sidebar.cljs:563, src/app/main/ui/dashboard/team.cljs:312 msgid "dashboard.leave-team" msgstr "Leave team" +#: src/app/main/ui/dashboard/templates.cljs:88, src/app/main/ui/dashboard/templates.cljs:163 msgid "dashboard.libraries-and-templates" msgstr "Libraries & Templates" +#: src/app/main/ui/dashboard/templates.cljs:164 msgid "dashboard.libraries-and-templates.explore" msgstr "Explore more of them and know how to contribute" +#: src/app/main/ui/dashboard/import.cljs:365 msgid "dashboard.libraries-and-templates.import-error" msgstr "There was a problem importing the template. The template wasn't imported." -#: src/app/main/ui/dashboard/libraries.cljs +#: src/app/main/ui/dashboard/libraries.cljs:53 msgid "dashboard.libraries-title" msgstr "Libraries" -#: src/app/main/ui/dashboard/grid.cljs +#: src/app/main/ui/dashboard/placeholder.cljs:45 msgid "dashboard.loading-files" msgstr "loading your files …" +#: src/app/main/ui/dashboard/fonts.cljs:431 msgid "dashboard.loading-fonts" msgstr "loading your fonts …" -#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:281, src/app/main/ui/dashboard/project_menu.cljs:100 msgid "dashboard.move-to" msgstr "Move to" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:245 msgid "dashboard.move-to-multi" msgstr "Move %s files to" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:226 msgid "dashboard.move-to-other-team" msgstr "Move to other team" -#: src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/files.cljs +#: src/app/main/ui/dashboard/files.cljs:105, src/app/main/ui/dashboard/projects.cljs:252, src/app/main/ui/dashboard/projects.cljs:253 msgid "dashboard.new-file" msgstr "+ New File" -#: src/app/main/data/dashboard.cljs +#: src/app/main/data/dashboard.cljs:958, src/app/main/data/dashboard.cljs:1181 msgid "dashboard.new-file-prefix" msgstr "New File" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:55 msgid "dashboard.new-project" msgstr "+ New project" -#: src/app/main/data/dashboard.cljs +#: src/app/main/data/dashboard.cljs:726, src/app/main/data/dashboard.cljs:1184 msgid "dashboard.new-project-prefix" msgstr "New Project" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:60 msgid "dashboard.no-matches-for" msgstr "No matches found for “%s“" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:827 msgid "dashboard.no-projects-placeholder" msgstr "Pinned projects will appear here" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:33 msgid "dashboard.notifications.email-changed-successfully" msgstr "Your email address has been updated successfully" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:27 msgid "dashboard.notifications.email-verified-successfully" msgstr "Your email address has been verified successfully" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:37 msgid "dashboard.notifications.password-saved" msgstr "Password saved successfully!" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1081 msgid "dashboard.num-of-members" msgstr "%s members" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:267 msgid "dashboard.open-in-new-tab" msgstr "Open file in a new tab" +#: src/app/main/ui/dashboard/files.cljs:117, src/app/main/ui/dashboard/projects.cljs:260, src/app/main/ui/dashboard/projects.cljs:261 msgid "dashboard.options" msgstr "Options" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:106, src/app/main/ui/settings/password.cljs:119 msgid "dashboard.password-change" msgstr "Change password" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/pin_button.cljs:24, src/app/main/ui/dashboard/project_menu.cljs:95 msgid "dashboard.pin-unpin" msgstr "Pin/Unpin" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:51 msgid "dashboard.projects-title" msgstr "Projects" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:86 msgid "dashboard.remove-account" msgstr "Want to remove your account?" #: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "dashboard.remove-shared" msgstr "Remove as Shared Library" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:78 msgid "dashboard.save-settings" msgstr "Save settings" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:246, src/app/main/ui/dashboard/sidebar.cljs:247 msgid "dashboard.search-placeholder" msgstr "Search…" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:55 msgid "dashboard.searching-for" msgstr "Searching for “%s“…" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:56 msgid "dashboard.select-ui-language" msgstr "Select UI language" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:63 msgid "dashboard.select-ui-theme" msgstr "Select theme" -#: src/app/main/ui/dashboard/grid.cljs +#: src/app/main/ui/dashboard/projects.cljs:282 msgid "dashboard.show-all-files" msgstr "Show all files" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:96 msgid "dashboard.success-delete-file" msgid_plural "dashboard.success-delete-file" msgstr[0] "Your file has been deleted successfully" msgstr[1] "Your files have been deleted successfully" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:59 msgid "dashboard.success-delete-project" msgstr "Your project has been deleted successfully" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:91 msgid "dashboard.success-duplicate-file" msgid_plural "dashboard.success-delete-file" msgstr[0] "Your file has been duplicated successfully" msgstr[1] "Your files have been duplicated successfully" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:33 msgid "dashboard.success-duplicate-project" msgstr "Your project has been duplicated successfully" -#: src/app/main/ui/dashboard/grid.cljs, src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:130, src/app/main/ui/dashboard/grid.cljs:558, src/app/main/ui/dashboard/sidebar.cljs:152 msgid "dashboard.success-move-file" msgstr "Your file has been moved successfully" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:129 msgid "dashboard.success-move-files" msgstr "Your files have been moved successfully" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:54 msgid "dashboard.success-move-project" msgstr "Your project has been moved successfully" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1052 msgid "dashboard.team-info" msgstr "Team info" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1070 msgid "dashboard.team-members" msgstr "Team members" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1085 msgid "dashboard.team-projects" msgstr "Team projects" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:61 msgid "dashboard.theme-change" msgstr "UI theme" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:42 msgid "dashboard.title-search" msgstr "Search results" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:50 msgid "dashboard.type-something" msgstr "Type to search results" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:287, src/app/main/ui/workspace/main_menu.cljs:566 msgid "dashboard.unpublish-shared" msgstr "Unpublish Library" -#: src/app/main/ui/settings/password.cljs, src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:71 msgid "dashboard.update-settings" msgstr "Update settings" +#: src/app/main/ui/dashboard/team.cljs:861 msgid "dashboard.webhooks.active" msgstr "Is active" +#: src/app/main/ui/dashboard/team.cljs:862 msgid "dashboard.webhooks.active.explain" msgstr "When this hook is triggered event details will be delivered" +#: src/app/main/ui/dashboard/team.cljs:852 msgid "dashboard.webhooks.content-type" msgstr "Content type" +#: src/app/main/ui/dashboard/team.cljs:885 msgid "dashboard.webhooks.create" msgstr "Create webhook" +#: src/app/main/ui/dashboard/team.cljs:775 msgid "dashboard.webhooks.create.success" msgstr "Webhook created successfully." +#: src/app/main/ui/dashboard/team.cljs:882 msgid "dashboard.webhooks.description" msgstr "" "Webhooks are a simple way to allow other websites and apps to be notified " "when certain events happen at Penpot. We’ll send a POST request to each of " "the URLs you provide." +#: src/app/main/ui/dashboard/team.cljs:1005 msgid "dashboard.webhooks.empty.add-one" msgstr "Press the button \"Add webhook\" to add one." +#: src/app/main/ui/dashboard/team.cljs:1004 msgid "dashboard.webhooks.empty.no-webhooks" msgstr "No webhooks created so far." +#, unused msgid "dashboard.webhooks.update.success" msgstr "Webhook updated successfully." -#: src/app/main/ui/settings.cljs +#: src/app/main/ui/settings.cljs:31 msgid "dashboard.your-account-title" msgstr "Your account" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:70 msgid "dashboard.your-email" msgstr "Email" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:62 msgid "dashboard.your-name" msgstr "Your name" -#: src/app/main/ui/dashboard/search.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/libraries.cljs, src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:38, src/app/main/ui/dashboard/fonts.cljs:33, src/app/main/ui/dashboard/libraries.cljs:42, src/app/main/ui/dashboard/projects.cljs:318, src/app/main/ui/dashboard/search.cljs:30, src/app/main/ui/dashboard/sidebar.cljs:312, src/app/main/ui/dashboard/team.cljs:495, src/app/main/ui/dashboard/team.cljs:729, src/app/main/ui/dashboard/team.cljs:991, src/app/main/ui/dashboard/team.cljs:1038 msgid "dashboard.your-penpot" msgstr "Your Penpot" -#: src/app/main/ui/alert.cljs +#: src/app/main/ui/alert.cljs:32 msgid "ds.alert-ok" msgstr "Ok" -#: src/app/main/ui/alert.cljs +#: src/app/main/ui/alert.cljs:31, src/app/main/ui/alert.cljs:34 msgid "ds.alert-title" msgstr "Attention" -#: src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:83 msgid "ds.component-subtitle" msgstr "Components to update:" -#: src/app/main/ui/confirm.cljs -msgid "ds.confirm-cancel" -msgstr "Cancel" - -#: src/app/main/ui/confirm.cljs -msgid "ds.confirm-ok" -msgstr "Ok" - +#: src/app/main/ui/workspace/plugins.cljs:252 msgid "ds.confirm-allow" msgstr "Allow" -#: src/app/main/ui/confirm.cljs, src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:36, src/app/main/ui/workspace/plugins.cljs:246 +msgid "ds.confirm-cancel" +msgstr "Cancel" + +#: src/app/main/ui/confirm.cljs:37, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:141 +msgid "ds.confirm-ok" +msgstr "Ok" + +#: src/app/main/ui/confirm.cljs:35, src/app/main/ui/confirm.cljs:39 msgid "ds.confirm-title" msgstr "Are you sure?" -#: src/app/main/data/users.cljs +#: src/app/main/data/users.cljs:705 msgid "errors.auth-provider-not-allowed" msgstr "Auth provider not allowed for this profile" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:62 msgid "errors.auth-provider-not-configured" msgstr "Authentication provider not configured." +#: src/app/main/errors.cljs:104 msgid "errors.auth.unable-to-login" msgstr "Looks like you are not authenticated or session expired." +#: src/app/main/data/fonts.cljs:189 msgid "errors.bad-font" msgstr "The font %s could not be loaded" +#: src/app/main/data/fonts.cljs:188 msgid "errors.bad-font-plural" msgstr "The fonts %s could not be loaded" +#: src/app/main/data/workspace/media.cljs:198 msgid "errors.cannot-upload" msgstr "Cannot upload the media file." -#: src/app/main/data/workspace.cljs +#: src/app/main/data/workspace.cljs:1598 msgid "errors.clipboard-not-implemented" msgstr "Your browser cannot do this operation" -#: src/app/main/ui/auth/verify_token.cljs, src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/auth/verify_token.cljs:82, src/app/main/ui/settings/change_email.cljs:46 msgid "errors.email-already-exists" msgstr "Email already used" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:87 msgid "errors.email-already-validated" msgstr "Email already validated." +#: src/app/main/ui/settings/password.cljs:28 msgid "errors.email-as-password" msgstr "You can't use your email as password" -#: src/app/main/data/users.cljs +#: src/app/main/data/users.cljs:707, src/app/main/ui/auth/register.cljs:63 msgid "errors.email-domain-not-allowed" msgstr "Domain not allowed" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/settings/change_email.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/auth/recovery_request.cljs:63, src/app/main/ui/dashboard/team.cljs:578, src/app/main/ui/settings/change_email.cljs:54 msgid "errors.email-has-permanent-bounces" msgstr "The email «%s» has many permanent bounce reports." -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs, src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/login.cljs:81, src/app/main/ui/auth/recovery_request.cljs:31, src/app/main/ui/auth/register.cljs:43 msgid "errors.email-invalid" msgstr "Enter a valid email please" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:35 msgid "errors.email-invalid-confirmation" msgstr "Confirmation email must match" +#: src/app/main/ui/dashboard/team.cljs:170 msgid "errors.email-spam-or-permanent-bounces" msgstr "The email «%s» has been reported as spam or permanently bounce." -#: src/app/main/errors.cljs +#: src/app/main/errors.cljs:227 msgid "errors.feature-mismatch" msgstr "" "Looks like you are opening a file that has the feature '%s' enabled but the " "current penpot version does not supports it or has it disabled." -#: src/app/main/errors.cljs +#: src/app/main/errors.cljs:231, src/app/main/errors.cljs:245 msgid "errors.feature-not-supported" msgstr "Feature '%s' is not supported." -#: src/app/main/errors.cljs +#: src/app/main/errors.cljs:223 msgid "errors.file-feature-mismatch" msgstr "" "It seems that there is a mismatch between the enabled features and the " "features of the file you are trying to open. Migrations for '%s' need to be " "applied before the file can be opened." -#: src/app/main/ui/auth/verify_token.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/data/users.cljs:709, src/app/main/ui/auth/login.cljs:65, src/app/main/ui/auth/login.cljs:116, src/app/main/ui/auth/register.cljs:69, src/app/main/ui/auth/register.cljs:237, src/app/main/ui/auth/verify_token.cljs:92, src/app/main/ui/dashboard/team.cljs:173, src/app/main/ui/onboarding/team_choice.cljs:95, src/app/main/ui/settings/access_tokens.cljs:91, src/app/main/ui/settings/feedback.cljs:52 msgid "errors.generic" msgstr "Something wrong has happened." -#: src/app/main/ui/components/color_input.cljs +#: src/app/main/ui/components/color_input.cljs:57 msgid "errors.invalid-color" msgstr "Invalid color" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/static.cljs:43 msgid "errors.invite-invalid" msgstr "Invite invalid" +#: src/app/main/ui/static.cljs:44 msgid "errors.invite-invalid.info" msgstr "This invite might be canceled or may be expired." -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:101 msgid "errors.ldap-disabled" msgstr "LDAP authentication is disabled." -#: src/app/main/errors.cljs +#: src/app/main/errors.cljs:239 msgid "errors.max-quote-reached" msgstr "You have reached the '%s' quote. Contact with support." -#: src/app/main/data/workspace/persistence.cljs +#: src/app/main/data/workspace/media.cljs:184 msgid "errors.media-too-large" msgstr "The image is too large to be inserted." -#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs +#: src/app/main/data/media.cljs:68, src/app/main/data/workspace/media.cljs:187 msgid "errors.media-type-mismatch" msgstr "Seems that the contents of the image does not match the file extension." -#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/workspace/persistence.cljs, src/app/main/data/workspace/persistence.cljs, src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs +#: src/app/main/data/media.cljs:65, src/app/main/data/workspace/media.cljs:172, src/app/main/data/workspace/media.cljs:175, src/app/main/data/workspace/media.cljs:178, src/app/main/data/workspace/media.cljs:181 msgid "errors.media-type-not-allowed" msgstr "Seems that this is not a valid image." -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:574 msgid "errors.member-is-muted" msgstr "The profile you inviting has emails muted (spam reports or high bounces)." -#: src/app/main/ui/settings/password.cljs +#: src/app/main/errors.cljs:213 +#, fuzzy +msgid "errors.migration-in-progress" +msgstr "" + +#: src/app/main/ui/settings/password.cljs:61 msgid "errors.password-invalid-confirmation" msgstr "Confirmation password must match" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:64 msgid "errors.password-too-short" msgstr "Password should at least be 8 characters" +#: src/app/main/errors.cljs:124 msgid "errors.paste-data-validation" msgstr "Invalid data in clipboard" +#: src/app/main/data/users.cljs:703, src/app/main/ui/auth/login.cljs:97, src/app/main/ui/auth/login.cljs:105 msgid "errors.profile-blocked" msgstr "The profile is blocked" -#: src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/settings/change_email.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/auth/recovery_request.cljs:60, src/app/main/ui/dashboard/team.cljs:164, src/app/main/ui/dashboard/team.cljs:570, src/app/main/ui/settings/change_email.cljs:50 msgid "errors.profile-is-muted" msgstr "Your profile has emails muted (spam reports or high bounces)." -#: src/app/main/ui/auth/register.cljs +#: src/app/main/data/users.cljs:701, src/app/main/ui/auth/register.cljs:60 msgid "errors.registration-disabled" msgstr "The registration is currently disabled." -#: src/app/main/errors.cljs +#: src/app/main/errors.cljs:218 msgid "errors.team-feature-mismatch" msgstr "Detected incompatible feature '%s'" +#: src/app/main/ui/dashboard/sidebar.cljs:365, src/app/main/ui/dashboard/team.cljs:359 msgid "errors.team-leave.insufficient-members" msgstr "Insufficient members to leave team, you probably want to delete it." +#: src/app/main/ui/dashboard/sidebar.cljs:368, src/app/main/ui/dashboard/team.cljs:362 msgid "errors.team-leave.member-does-not-exists" msgstr "The member you try to assign does not exist." +#: src/app/main/ui/dashboard/sidebar.cljs:371, src/app/main/ui/dashboard/team.cljs:365 msgid "errors.team-leave.owner-cant-leave" msgstr "Owner can't leave team, you must reassign the owner role." -#: src/app/main/data/media.cljs, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs +#: src/app/main/data/media.cljs:71 msgid "errors.unexpected-error" msgstr "An unexpected error occurred." -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:60 msgid "errors.unexpected-token" msgstr "Unknown token" +#, unused msgid "errors.validation" msgstr "Validation Error" -#: src/app/main/errors.cljs +#: src/app/main/errors.cljs:235 msgid "errors.version-not-supported" msgstr "File has an incompatible version number" +#: src/app/main/ui/dashboard/team.cljs:796 msgid "errors.webhooks.connection" msgstr "Connection error, URL not reacheable" +#: src/app/main/ui/dashboard/team.cljs:790 msgid "errors.webhooks.invalid-uri" msgstr "URL does not pass validation." +#: src/app/main/ui/dashboard/team.cljs:949 msgid "errors.webhooks.last-delivery" msgstr "Last delivery was not successful." +#: src/app/main/ui/dashboard/team.cljs:792, src/app/main/ui/dashboard/team.cljs:952 msgid "errors.webhooks.ssl-validation" msgstr "Error on SSL validation." +#: src/app/main/ui/dashboard/team.cljs:794 msgid "errors.webhooks.timeout" msgstr "Timeout" +#: src/app/main/ui/dashboard/team.cljs:788 msgid "errors.webhooks.unexpected" msgstr "Unexpected error on validating" +#: src/app/main/ui/dashboard/team.cljs:798, src/app/main/ui/dashboard/team.cljs:955 msgid "errors.webhooks.unexpected-status" msgstr "Unexpected status %s" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:109, src/app/main/ui/auth/login.cljs:113 msgid "errors.wrong-credentials" msgstr "Email or password is incorrect." -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:25 msgid "errors.wrong-old-password" msgstr "Old password is incorrect" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:85 +#, fuzzy +msgid "exclude" +msgstr "" + +#: src/app/main/ui/settings/feedback.cljs:77 msgid "feedback.description" msgstr "Description" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:95 msgid "feedback.discourse-go-to" msgstr "Go to Penpot forum" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:89 msgid "feedback.discourse-subtitle1" msgstr "" "We're happy to have you here. If you need help, please search before you " "post." -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:88 msgid "feedback.discourse-title" msgstr "Penpot community" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:72 msgid "feedback.subject" msgstr "Subject" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:69 msgid "feedback.subtitle" msgstr "" "Please describe the reason of your email, specifying if is an issue, an " "idea or a doubt. A member of our team will respond as soon as possible." -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:68 msgid "feedback.title" msgstr "Email" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:105 msgid "feedback.twitter-go-to" msgstr "Go to X" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:99 msgid "feedback.twitter-subtitle1" msgstr "Here to help with your technical queries." -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:98 msgid "feedback.twitter-title" msgstr "X support account" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:30 msgid "generic.error" msgstr "An error has occurred" -#: src/app/main/ui/inspect/attributes/blur.cljs +#: src/app/main/ui/viewer/inspect/attributes/blur.cljs:26 msgid "inspect.attributes.blur" msgstr "Blur" -#: src/app/main/ui/inspect/attributes/blur.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:115 msgid "inspect.attributes.blur.value" msgstr "Value" -#: src/app/main/ui/inspect/attributes/common.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:112 msgid "inspect.attributes.color.hex" msgstr "HEX" -#: src/app/main/ui/inspect/attributes/common.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:114 msgid "inspect.attributes.color.hsla" msgstr "HSLA" -#: src/app/main/ui/inspect/attributes/common.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:113 msgid "inspect.attributes.color.rgba" msgstr "RGBA" -#: src/app/main/ui/inspect/attributes/fill.cljs +#: src/app/main/ui/viewer/inspect/attributes/fill.cljs:57 msgid "inspect.attributes.fill" msgstr "Fill" -#: src/app/main/ui/inspect/attributes/image.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:99, src/app/main/ui/viewer/inspect/attributes/image.cljs:51 msgid "inspect.attributes.image.download" msgstr "Download source image" -#: src/app/main/ui/inspect/attributes/image.cljs +#: src/app/main/ui/viewer/inspect/attributes/image.cljs:39 msgid "inspect.attributes.image.height" msgstr "Height" -#: src/app/main/ui/inspect/attributes/image.cljs +#: src/app/main/ui/viewer/inspect/attributes/image.cljs:32 msgid "inspect.attributes.image.width" msgstr "Width" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout" msgstr "Layout" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.height" msgstr "Height" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.left" msgstr "Left" #: src/app/main/ui/inspect/attributes/layout.cljs, src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.radius" msgstr "Radius" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.rotation" msgstr "Rotation" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.top" msgstr "Top" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.width" msgstr "Width" -#: src/app/main/ui/inspect/attributes/shadow.cljs +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:57 msgid "inspect.attributes.shadow" msgstr "Shadow" -#: src/app/main/ui/inspect/attributes/layout.cljs +#: src/app/main/ui/viewer/inspect/attributes/geometry.cljs:40 msgid "inspect.attributes.size" msgstr "Size and position" -#: src/app/main/ui/inspect/attributes/stroke.cljs +#: src/app/main/ui/viewer/inspect/attributes/stroke.cljs:52 msgid "inspect.attributes.stroke" msgstr "Stroke" -#, permanent +#, permanent, unused msgid "inspect.attributes.stroke.alignment.center" msgstr "Center" -#, permanent +#, permanent, unused msgid "inspect.attributes.stroke.alignment.inner" msgstr "Inside" -#, permanent +#, permanent, unused msgid "inspect.attributes.stroke.alignment.outer" msgstr "Outside" +#, unused msgid "inspect.attributes.stroke.style.dotted" msgstr "Dotted" +#, unused msgid "inspect.attributes.stroke.style.mixed" msgstr "Mixed" +#, unused msgid "inspect.attributes.stroke.style.none" msgstr "None" +#, unused msgid "inspect.attributes.stroke.style.solid" msgstr "Solid" #: src/app/main/ui/inspect/attributes/stroke.cljs +#, unused msgid "inspect.attributes.stroke.width" msgstr "Width" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:81, src/app/main/ui/viewer/inspect/attributes/text.cljs:194 msgid "inspect.attributes.typography" msgstr "Typography" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:89 msgid "inspect.attributes.typography.font-family" msgstr "Font Family" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:107 msgid "inspect.attributes.typography.font-size" msgstr "Font Size" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:98 msgid "inspect.attributes.typography.font-style" msgstr "Font Style" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:116 msgid "inspect.attributes.typography.font-weight" msgstr "Font Weight" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:134 msgid "inspect.attributes.typography.letter-spacing" msgstr "Letter Spacing" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:125 msgid "inspect.attributes.typography.line-height" msgstr "Line Height" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:143 msgid "inspect.attributes.typography.text-decoration" msgstr "Text Decoration" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:145 msgid "inspect.attributes.typography.text-decoration.none" msgstr "None" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:146 msgid "inspect.attributes.typography.text-decoration.strikethrough" msgstr "Strikethrough" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:147 msgid "inspect.attributes.typography.text-decoration.underline" msgstr "Underline" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:156 msgid "inspect.attributes.typography.text-transform" msgstr "Text Transform" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:158 msgid "inspect.attributes.typography.text-transform.lowercase" msgstr "Lower Case" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:159 msgid "inspect.attributes.typography.text-transform.none" msgstr "None" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:160 msgid "inspect.attributes.typography.text-transform.titlecase" msgstr "Title Case" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:162 msgid "inspect.attributes.typography.text-transform.unset" msgstr "Unset" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:161 msgid "inspect.attributes.typography.text-transform.uppercase" msgstr "Upper Case" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:140 msgid "inspect.empty.help" msgstr "If you want to know more about design inspect visit Penpot's help center" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:143 msgid "inspect.empty.more-info" msgstr "More info about inspect" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:135 msgid "inspect.empty.select" msgstr "Select a shape, board or group to inspect their properties and code" -#: src/app/main/ui/inspect/right_sidebar.cljs +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:125 msgid "inspect.tabs.code" msgstr "Code" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:98 msgid "inspect.tabs.code.selected.circle" msgstr "Circle" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:99 msgid "inspect.tabs.code.selected.component" msgstr "Component" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:100 msgid "inspect.tabs.code.selected.curve" msgstr "Curve" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:101 msgid "inspect.tabs.code.selected.frame" msgstr "Board" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:102 msgid "inspect.tabs.code.selected.group" msgstr "Group" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:103 msgid "inspect.tabs.code.selected.image" msgstr "Image" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:104 msgid "inspect.tabs.code.selected.mask" msgstr "Mask" -#: src/app/main/ui/inspect/right_sidebar.cljs +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:93 msgid "inspect.tabs.code.selected.multiple" msgstr "%s Selected" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:105 msgid "inspect.tabs.code.selected.path" msgstr "Path" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:106 msgid "inspect.tabs.code.selected.rect" msgstr "Rectangle" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:107 msgid "inspect.tabs.code.selected.svg-raw" msgstr "SVG" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:108 msgid "inspect.tabs.code.selected.text" msgstr "Text" -#: src/app/main/ui/inspect/right_sidebar.cljs +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:115 msgid "inspect.tabs.info" msgstr "Info" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:80 +#, fuzzy +msgid "intersection" +msgstr "" + +#: src/app/main/ui/workspace/main_menu.cljs:158 msgid "label.shortcuts" msgstr "Shortcuts" +#: src/app/main/ui/dashboard/import.cljs:527 msgid "labels.accept" msgstr "Accept" -#: src/app/main/ui/settings/sidebar.cljs +#: src/app/main/ui/settings/sidebar.cljs:100 msgid "labels.access-tokens" msgstr "Access tokens" +#: src/app/main/ui/dashboard/team.cljs:968 msgid "labels.active" msgstr "Active" +#: src/app/main/ui/dashboard/fonts.cljs:175 msgid "labels.add-custom-font" msgstr "Add custom font" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:120, src/app/main/ui/dashboard/team.cljs:276, src/app/main/ui/dashboard/team.cljs:519, src/app/main/ui/dashboard/team.cljs:549, src/app/main/ui/onboarding/team_choice.cljs:67 msgid "labels.admin" msgstr "Admin" +#: src/app/main/ui/onboarding/questions.cljs:174 +msgid "labels.adobe-xd" +msgstr "Adobe XD" + #: src/app/main/ui/workspace/comments.cljs +#, unused msgid "labels.all" msgstr "All" +#: src/app/main/ui/auth.cljs:37 msgid "labels.and" msgstr "and" +#: src/app/main/ui/onboarding/questions.cljs:416 +msgid "labels.article" +msgstr "Article (Blog, Post, Newsletter)" + +#: src/app/main/ui/onboarding/team_choice.cljs:162 msgid "labels.back" msgstr "Back" -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:59 msgid "labels.bad-gateway.desc-message" msgstr "" "Looks like you need to wait a bit and retry; we are performing small " "maintenance of our servers." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:58 msgid "labels.bad-gateway.main-message" msgstr "Bad Gateway" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/data/common.cljs:112, src/app/main/ui/dashboard/change_owner.cljs:69, src/app/main/ui/dashboard/import.cljs:514, src/app/main/ui/dashboard/team.cljs:868, src/app/main/ui/delete_shared.cljs:35, src/app/main/ui/export.cljs:164, src/app/main/ui/export.cljs:460, src/app/main/ui/settings/access_tokens.cljs:188, src/app/main/ui/viewer/share_link.cljs:203, src/app/main/ui/workspace/sidebar/assets/groups.cljs:149 msgid "labels.cancel" msgstr "Cancel" +#: src/app/main/ui/onboarding/questions.cljs:176 +msgid "labels.canva" +msgstr "Canva" + +#: src/app/main/ui/dashboard/projects.cljs:93, src/app/main/ui/export.cljs:478, src/app/main/ui/settings/access_tokens.cljs:183, src/app/main/ui/viewer/login.cljs:77, src/app/main/ui/viewer/share_link.cljs:174, src/app/main/ui/workspace/libraries.cljs:522 msgid "labels.close" msgstr "Close" -#: src/app/main/ui/dashboard/comments.cljs +#: src/app/main/ui/dashboard/comments.cljs:104, src/app/main/ui/viewer/comments.cljs:70, src/app/main/ui/workspace/comments.cljs:126 msgid "labels.comments" msgstr "Comments" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:985, src/app/main/ui/workspace/main_menu.cljs:110 msgid "labels.community" msgstr "Community" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:103 msgid "labels.confirm-password" msgstr "Confirm password" +#: src/app/main/ui/dashboard/import.cljs:520, src/app/main/ui/export.cljs:465, src/app/main/ui/onboarding/newsletter.cljs:101 msgid "labels.continue" msgstr "Continue" +#, unused msgid "labels.continue-with" msgstr "Continue with" +#: src/app/main/ui/viewer/login.cljs:75 msgid "labels.continue-with-penpot" msgstr "You can continue with a Penpot account" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:642 msgid "labels.copy-invitation-link" msgstr "Copy link" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:157, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:190 msgid "labels.create" msgstr "Create" -#: src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/dashboard/team_form.cljs +#: src/app/main/ui/dashboard/team_form.cljs:101, src/app/main/ui/dashboard/team_form.cljs:121 msgid "labels.create-team" msgstr "Create new team" -#: src/app/main/ui/dashboard/team_form.cljs +#: src/app/main/ui/dashboard/team_form.cljs:113 msgid "labels.create-team.placeholder" msgstr "Enter new team name" +#, unused msgid "labels.custom-fonts" msgstr "Custom fonts" -#: src/app/main/ui/settings/sidebar.cljs +#: src/app/main/ui/settings/sidebar.cljs:73 msgid "labels.dashboard" msgstr "Dashboard" -#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:306, src/app/main/ui/dashboard/fonts.cljs:255, src/app/main/ui/dashboard/fonts.cljs:332, src/app/main/ui/dashboard/fonts.cljs:346, src/app/main/ui/dashboard/project_menu.cljs:115, src/app/main/ui/dashboard/team.cljs:904, src/app/main/ui/settings/access_tokens.cljs:209, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:209 msgid "labels.delete" msgstr "Delete" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:357 msgid "labels.delete-comment" msgstr "Delete comment" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:354 msgid "labels.delete-comment-thread" msgstr "Delete thread" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:648 msgid "labels.delete-invitation" msgstr "Delete invitation" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:262 msgid "labels.delete-multi-files" msgstr "Delete %s files" +#: src/app/main/ui/onboarding/questions.cljs:250 +msgid "labels.developer" +msgstr "Development" + +#: src/app/main/ui/onboarding/questions.cljs:264 +msgid "labels.director" +msgstr "Director" + +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:199 msgid "labels.discard" msgstr "Discard" -#: src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/files.cljs, src/app/main/ui/dashboard/files.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:28, src/app/main/ui/dashboard/files.cljs:72, src/app/main/ui/dashboard/files.cljs:156, src/app/main/ui/dashboard/projects.cljs:220, src/app/main/ui/dashboard/projects.cljs:224, src/app/main/ui/dashboard/sidebar.cljs:791 msgid "labels.drafts" msgstr "Drafts" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:350, src/app/main/ui/dashboard/fonts.cljs:252, src/app/main/ui/dashboard/team.cljs:902, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:205 msgid "labels.edit" msgstr "Edit" +#, unused msgid "labels.edit-file" msgstr "Edit file" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:118, src/app/main/ui/dashboard/team.cljs:279, src/app/main/ui/dashboard/team.cljs:520, src/app/main/ui/dashboard/team.cljs:553, src/app/main/ui/onboarding/team_choice.cljs:66 msgid "labels.editor" msgstr "Editor" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/onboarding/questions.cljs:413 +msgid "labels.event" +msgstr "Event" + +#: src/app/main/ui/dashboard/team.cljs:661 msgid "labels.expired-invitation" msgstr "Expired" +#: src/app/main/ui/export.cljs:173 msgid "labels.export" msgstr "Export" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:51 msgid "labels.feedback-disabled" msgstr "Feedback disabled" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:42 msgid "labels.feedback-sent" msgstr "Feedback sent" +#: src/app/main/ui/onboarding/questions.cljs:170 +msgid "labels.figma" +msgstr "Figma" + +#: src/app/main/ui/dashboard/fonts.cljs:412 msgid "labels.font-family" msgstr "Font Family" +#, unused msgid "labels.font-providers" msgstr "Font providers" +#: src/app/main/ui/dashboard/fonts.cljs:413 msgid "labels.font-variants" msgstr "Styles" +#: src/app/main/ui/dashboard/fonts.cljs:52, src/app/main/ui/dashboard/sidebar.cljs:811 msgid "labels.fonts" msgstr "Fonts" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/onboarding/questions.cljs:263 +msgid "labels.founder" +msgstr "CEO or Founder" + +#: src/app/main/ui/onboarding/questions.cljs:262 +msgid "labels.freelancer" +msgstr "Freelancer" + +#: src/app/main/ui/dashboard/sidebar.cljs:1015, src/app/main/ui/workspace/main_menu.cljs:142 msgid "labels.github-repo" msgstr "Github repository" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:1032, src/app/main/ui/settings/sidebar.cljs:113, src/app/main/ui/workspace/main_menu.cljs:171 msgid "labels.give-feedback" msgstr "Give feedback" +#: src/app/main/ui/auth/recovery_request.cljs:110, src/app/main/ui/auth/register.cljs:285, src/app/main/ui/viewer/login.cljs:117 msgid "labels.go-back" msgstr "Go back" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/onboarding/questions.cljs:252 +msgid "labels.graphic-design" +msgstr "Graphic design" + +#: src/app/main/ui/dashboard/sidebar.cljs:978, src/app/main/ui/workspace/main_menu.cljs:102 msgid "labels.help-center" msgstr "Help Center" -#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/comments.cljs:103, src/app/main/ui/workspace/comments.cljs:67 msgid "labels.hide-resolved-comments" msgstr "Hide resolved comments" +#: src/app/main/ui/dashboard/team.cljs:969 msgid "labels.inactive" msgstr "Inactive" +#: src/app/main/ui/dashboard/fonts.cljs:410 msgid "labels.installed-fonts" msgstr "Installed fonts" -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:144 msgid "labels.internal-error.desc-message" msgstr "" "Something bad happened. Please retry the operation and if the problem " "persists, contact support." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:143 msgid "labels.internal-error.main-message" msgstr "Internal Error" -#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/onboarding/questions.cljs:178 +msgid "labels.invision" +msgstr "InVision" + +#: src/app/main/ui/dashboard/sidebar.cljs:516, src/app/main/ui/dashboard/team.cljs:89, src/app/main/ui/dashboard/team.cljs:97, src/app/main/ui/dashboard/team.cljs:708 msgid "labels.invitations" msgstr "Invitations" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:51 msgid "labels.language" msgstr "Language" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:1008, src/app/main/ui/workspace/main_menu.cljs:134 msgid "labels.libraries-and-templates" msgstr "Libraries & Templates" +#: src/app/main/ui/viewer/header.cljs:203 msgid "labels.log-or-sign" msgstr "Log in or sign up" -#: src/app/main/ui/settings.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:1040 msgid "labels.logout" msgstr "Logout" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/onboarding/questions.cljs:253 +msgid "labels.marketing" +msgstr "Marketing" + +#: src/app/main/ui/dashboard/team.cljs:468 msgid "labels.member" msgstr "Member" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:510, src/app/main/ui/dashboard/team.cljs:87, src/app/main/ui/dashboard/team.cljs:95 msgid "labels.members" msgstr "Members" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:96 msgid "labels.new-password" msgstr "New password" -#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/dashboard/comments.cljs +#: src/app/main/ui/dashboard/templates.cljs:269, src/app/main/ui/onboarding/questions.cljs:55 +msgid "labels.next" +msgstr "Next" + +#: src/app/main/ui/dashboard/comments.cljs:128, src/app/main/ui/workspace/comments.cljs:161 msgid "labels.no-comments-available" msgstr "You're all caught up! New comment notifications will appear here." -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:694 msgid "labels.no-invitations" msgstr "No pending invitations." -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:696 #, markdown msgid "labels.no-invitations-hint" msgstr "Click the **Invite people** button to invite people to this team." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:50 msgid "labels.not-found.desc-message" msgstr "This page might not exist or you don’t have permissions to access to it." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:49 msgid "labels.not-found.main-message" msgstr "Oops!" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/projects.cljs:239, src/app/main/ui/dashboard/team.cljs:1095 msgid "labels.num-of-files" msgid_plural "labels.num-of-files" msgstr[0] "1 file" msgstr[1] "%s files" +#: src/app/main/ui/viewer/thumbnails.cljs:80 msgid "labels.num-of-frames" msgid_plural "labels.num-of-frames" msgstr[0] "1 board" msgstr[1] "%s boards" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1090 msgid "labels.num-of-projects" msgid_plural "labels.num-of-projects" msgstr[0] "1 project" msgstr[1] "%s projects" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:89 msgid "labels.old-password" msgstr "Old password" #: src/app/main/ui/workspace/comments.cljs +#, unused msgid "labels.only-yours" msgstr "Only yours" +#, unused msgid "labels.or" msgstr "or" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/onboarding/questions.cljs:145, src/app/main/ui/onboarding/questions.cljs:214, src/app/main/ui/onboarding/questions.cljs:303, src/app/main/ui/onboarding/questions.cljs:316, src/app/main/ui/onboarding/questions.cljs:389, src/app/main/ui/onboarding/questions.cljs:447 +msgid "labels.other" +msgstr "Other (specify)" + +#: src/app/main/ui/onboarding/questions.cljs:105, src/app/main/ui/onboarding/questions.cljs:180, src/app/main/ui/onboarding/questions.cljs:255, src/app/main/ui/onboarding/questions.cljs:265, src/app/main/ui/onboarding/questions.cljs:357, src/app/main/ui/onboarding/questions.cljs:417 +msgid "labels.other-short" +msgstr "Other" + +#: src/app/main/ui/dashboard/team.cljs:286, src/app/main/ui/dashboard/team.cljs:518, src/app/main/ui/dashboard/team.cljs:1076 msgid "labels.owner" msgstr "Owner" -#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/settings/sidebar.cljs:87 msgid "labels.password" msgstr "Password" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:662 msgid "labels.pending-invitation" msgstr "Pending" -#: src/app/main/ui/settings/sidebar.cljs +#: src/app/main/ui/onboarding/questions.cljs:51 +msgid "labels.previous" +msgstr "Previous" + +#: src/app/main/ui/onboarding/questions.cljs:249 +msgid "labels.product-design" +msgstr "Product or UX design" + +#: src/app/main/ui/onboarding/questions.cljs:254 +msgid "labels.product-management" +msgstr "Product Managment" + +#: src/app/main/ui/settings/profile.cljs:118, src/app/main/ui/settings/sidebar.cljs:82 msgid "labels.profile" msgstr "Profile" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:784 msgid "labels.projects" msgstr "Projects" -#: src/app/main/ui/settings/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:998, src/app/main/ui/settings/sidebar.cljs:106, src/app/main/ui/workspace/main_menu.cljs:126 msgid "labels.release-notes" msgstr "Release notes" #: src/app/main/ui/workspace.cljs +#, unused msgid "labels.reload-file" msgstr "Reload file" #: src/app/main/ui/workspace/libraries.cljs, src/app/main/ui/dashboard/team.cljs +#, unused msgid "labels.remove" msgstr "Remove" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:316 msgid "labels.remove-member" msgstr "Remove member" -#: src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:271, src/app/main/ui/dashboard/project_menu.cljs:85, src/app/main/ui/dashboard/sidebar.cljs:539, src/app/main/ui/workspace/sidebar/assets/groups.cljs:157 msgid "labels.rename" msgstr "Rename" -#: src/app/main/ui/dashboard/team_form.cljs +#: src/app/main/ui/dashboard/team_form.cljs:99 msgid "labels.rename-team" msgstr "Rename team" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:645 msgid "labels.resend-invitation" msgstr "Resend invitation" -#: src/app/main/ui/static.cljs, src/app/main/ui/static.cljs, src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:61, src/app/main/ui/static.cljs:70, src/app/main/ui/static.cljs:148 msgid "labels.retry" msgstr "Retry" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:469, src/app/main/ui/dashboard/team.cljs:709 msgid "labels.role" msgstr "Role" +#: src/app/main/ui/dashboard/fonts.cljs:380, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:191 msgid "labels.save" msgstr "Save" +#: src/app/main/ui/onboarding/questions.cljs:414, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:436 msgid "labels.search" -msgstr "Search" +msgstr "Search Engine (Google, Yahoo, Bing)" +#: src/app/main/ui/dashboard/fonts.cljs:415 msgid "labels.search-font" msgstr "Search font" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/onboarding/questions.cljs:90, src/app/main/ui/onboarding/questions.cljs:248, src/app/main/ui/onboarding/questions.cljs:259, src/app/main/ui/onboarding/questions.cljs:270 +msgid "labels.select-option" +msgstr "Select option" + +#: src/app/main/ui/settings/feedback.cljs:82 msgid "labels.send" msgstr "Send" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:82 msgid "labels.sending" msgstr "Sending…" -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:68 msgid "labels.service-unavailable.desc-message" msgstr "We are in programmed maintenance of our systems." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:67 msgid "labels.service-unavailable.main-message" msgstr "Service Unavailable" -#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:530, src/app/main/ui/dashboard/team.cljs:88, src/app/main/ui/dashboard/team.cljs:102, src/app/main/ui/settings/options.cljs:84, src/app/main/ui/settings/sidebar.cljs:93 msgid "labels.settings" msgstr "Settings" +#: src/app/main/ui/viewer/header.cljs:199 msgid "labels.share" msgstr "Share" +#, unused msgid "labels.share-prototype" msgstr "Share prototype" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:800 msgid "labels.shared-libraries" msgstr "Libraries" -#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/comments.cljs:82, src/app/main/ui/workspace/comments.cljs:55, src/app/main/ui/workspace/comments.cljs:135 msgid "labels.show-all-comments" msgstr "Show all comments" +#: src/app/main/ui/viewer/comments.cljs:115 msgid "labels.show-comments-list" msgstr "Show comments list" -#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/comments.cljs:91, src/app/main/ui/workspace/comments.cljs:61, src/app/main/ui/workspace/comments.cljs:136 msgid "labels.show-your-comments" msgstr "Show only your comments" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/onboarding/questions.cljs:172 +msgid "labels.sketch" +msgstr "Sketch" + +#: src/app/main/ui/onboarding/questions.cljs:415 +msgid "labels.social" +msgstr "Social Media (X, Linkedin, FB, etc)" + +#: src/app/main/ui/onboarding/questions.cljs:56 +msgid "labels.start" +msgstr "Start" + +#: src/app/main/ui/dashboard/team.cljs:710 msgid "labels.status" msgstr "Status" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/onboarding/questions.cljs:251 +msgid "labels.student-teacher" +msgstr "Student or teacher" + +#: src/app/main/ui/onboarding/questions.cljs:260 +msgid "labels.team-leader" +msgstr "Team Leader" + +#: src/app/main/ui/onboarding/questions.cljs:261 +msgid "labels.team-member" +msgstr "Team member" + +#: src/app/main/ui/dashboard/sidebar.cljs:992, src/app/main/ui/workspace/main_menu.cljs:118 msgid "labels.tutorials" msgstr "Tutorials" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:256 msgid "labels.unpublish-multi-files" msgstr "Unpublish %s files" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:103 msgid "labels.update" msgstr "Update" -#: src/app/main/ui/dashboard/team_form.cljs +#: src/app/main/ui/dashboard/team_form.cljs:120 msgid "labels.update-team" msgstr "Update team" +#: src/app/main/ui/dashboard/fonts.cljs:241 msgid "labels.upload" msgstr "Upload" +#: src/app/main/ui/dashboard/fonts.cljs:169 msgid "labels.upload-custom-fonts" msgstr "Upload custom fonts" +#: src/app/main/ui/dashboard/fonts.cljs:240 msgid "labels.uploading" msgstr "Uploading…" +#: src/app/main/ui/workspace/sidebar/sitemap.cljs:223 msgid "labels.view-only" msgstr "View only" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:123, src/app/main/ui/dashboard/team.cljs:282, src/app/main/ui/dashboard/team.cljs:521 msgid "labels.viewer" msgstr "Viewer" +#: src/app/main/ui/dashboard/sidebar.cljs:523, src/app/main/ui/dashboard/team.cljs:90, src/app/main/ui/dashboard/team.cljs:100, src/app/main/ui/dashboard/team.cljs:880 msgid "labels.webhooks" msgstr "Webhooks" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:194 msgid "labels.write-new-comment" msgstr "Write new comment" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/team.cljs:237 msgid "labels.you" msgstr "(you)" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:968 msgid "labels.your-account" msgstr "Your account" +#: src/app/main/ui/onboarding/questions.cljs:412 +msgid "labels.youtube" +msgstr "YouTube" + +#: src/app/main/ui/workspace/colorpicker.cljs:297, src/app/main/ui/workspace/colorpicker.cljs:298, src/app/main/ui/workspace/colorpicker.cljs:300 msgid "media.choose-image" msgstr "Choose image" +#, unused msgid "media.gradient" msgstr "Gradient" +#: src/app/main/data/workspace/media.cljs:275, src/app/main/ui/components/color_bullet.cljs:32, src/app/main/ui/components/color_bullet.cljs:45, src/app/main/ui/viewer/inspect/attributes/common.cljs:66, src/app/main/ui/workspace/colorpicker.cljs:211, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:237 msgid "media.image" msgstr "Image" +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:77 msgid "media.image.short" msgstr "img" +#: src/app/main/ui/workspace/colorpicker.cljs:290 msgid "media.keep-aspect-ratio" msgstr "Keep aspect ratio" +#: src/app/main/ui/workspace/colorpicker.cljs:208 msgid "media.linear" msgstr "Linear" -#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs +#: src/app/main/data/media.cljs:49, src/app/main/data/workspace/media.cljs:223, src/app/main/data/workspace/media.cljs:453 msgid "media.loading" msgstr "Loading image…" +#: src/app/main/ui/workspace/colorpicker.cljs:209 msgid "media.radial" msgstr "Radial" +#: src/app/main/ui/workspace/colorpicker.cljs:206 msgid "media.solid" msgstr "Solid" +#: src/app/main/data/common.cljs:111 msgid "modals.add-shared-confirm-empty.hint" msgstr "" "Your library is empty. Once added as Shared Library, the assets you create " "will be available to be used among the rest of your files. Are you sure you " "want to publish it?" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/data/common.cljs:113 msgid "modals.add-shared-confirm.accept" msgstr "Add as Shared Library" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/data/common.cljs:111 msgid "modals.add-shared-confirm.hint" msgstr "" "Once added as Shared Library, the assets of this file library will be " "available to be used among the rest of your files." -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/data/common.cljs:110 msgid "modals.add-shared-confirm.message" msgstr "Add “%s” as Shared Library" -#: src/app/main/ui/workspace/nudge.cljs +#: src/app/main/ui/workspace/nudge.cljs:60 msgid "modals.big-nudge" msgstr "Big nudge" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:127 msgid "modals.change-email.confirm-email" msgstr "Verify new email" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:114 msgid "modals.change-email.info" msgstr "We'll send you an email to your current email “%s” to verify your identity." -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:119 msgid "modals.change-email.new-email" msgstr "New email" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:136 msgid "modals.change-email.submit" msgstr "Change email" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:107 msgid "modals.change-email.title" msgstr "Change your email" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:165, src/app/main/ui/settings/access_tokens.cljs:171 msgid "modals.create-access-token.copy-token" msgstr "Copy token" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:142 msgid "modals.create-access-token.expiration-date.label" msgstr "Expiration date" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:136 msgid "modals.create-access-token.name.label" msgstr "Name" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:138 msgid "modals.create-access-token.name.placeholder" msgstr "The name can help to know what's the token for" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:191 msgid "modals.create-access-token.submit-label" msgstr "Create token" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:123 msgid "modals.create-access-token.title" msgstr "Generate access token" +#: src/app/main/ui/settings/access_tokens.cljs:163 +#, fuzzy +msgid "modals.create-access-token.token" +msgstr "" + +#: src/app/main/ui/dashboard/team.cljs:873 msgid "modals.create-webhook.submit-label" msgstr "Create webhook" +#: src/app/main/ui/dashboard/team.cljs:838 msgid "modals.create-webhook.title" msgstr "Create webhook" +#: src/app/main/ui/dashboard/team.cljs:849 msgid "modals.create-webhook.url.label" msgstr "Payload URL" +#: src/app/main/ui/dashboard/team.cljs:850 msgid "modals.create-webhook.url.placeholder" msgstr "https://example.com/postreceive" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:271 msgid "modals.delete-acces-token.accept" msgstr "Delete token" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:270 msgid "modals.delete-acces-token.message" msgstr "Are you sure you want to delete this token?" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:269 msgid "modals.delete-acces-token.title" msgstr "Delete token" -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:59 msgid "modals.delete-account.cancel" msgstr "Cancel and keep my account" -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:64 msgid "modals.delete-account.confirm" msgstr "Yes, delete my account" -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:53 msgid "modals.delete-account.info" msgstr "By removing your account you’ll lose all your current projects and archives." -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:46 msgid "modals.delete-account.title" msgstr "Are you sure you want to delete your account?" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:298 msgid "modals.delete-comment-thread.accept" msgstr "Delete conversation" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:297 msgid "modals.delete-comment-thread.message" msgstr "" "Are you sure you want to delete this conversation? All comments in this " "thread will be deleted." -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:296 msgid "modals.delete-comment-thread.title" msgstr "Delete conversation" +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:140 msgid "modals.delete-component-annotation.message" msgstr "Are you sure you want to delete this annotation?" +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:139 msgid "modals.delete-component-annotation.title" msgstr "Delete annotation" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:123 msgid "modals.delete-file-confirm.accept" msgstr "Delete file" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:122 msgid "modals.delete-file-confirm.message" msgstr "Are you sure you want to delete this file?" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:121 msgid "modals.delete-file-confirm.title" msgstr "Deleting file" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:117 msgid "modals.delete-file-multi-confirm.accept" msgstr "Delete files" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:116 msgid "modals.delete-file-multi-confirm.message" msgstr "Are you sure you want to delete %s files?" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:115 msgid "modals.delete-file-multi-confirm.title" msgstr "Deleting %s files" +#: src/app/main/ui/dashboard/fonts.cljs:345 msgid "modals.delete-font-variant.message" msgstr "" "Are you sure you want to delete this font style? It will not load if is " "used in a file." +#: src/app/main/ui/dashboard/fonts.cljs:344 msgid "modals.delete-font-variant.title" msgstr "Deleting font style" +#: src/app/main/ui/dashboard/fonts.cljs:331 msgid "modals.delete-font.message" msgstr "" "Are you sure you want to delete this font? It will not load if is used in a " "file." +#: src/app/main/ui/dashboard/fonts.cljs:330 msgid "modals.delete-font.title" msgstr "Deleting font" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs +#: src/app/main/ui/workspace/context_menu.cljs:522, src/app/main/ui/workspace/sidebar/sitemap.cljs:45 msgid "modals.delete-page.body" msgstr "Are you sure you want to delete this page?" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs +#: src/app/main/ui/workspace/context_menu.cljs:521, src/app/main/ui/workspace/sidebar/sitemap.cljs:44 msgid "modals.delete-page.title" msgstr "Delete page" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:69 msgid "modals.delete-project-confirm.accept" msgstr "Delete project" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:68 msgid "modals.delete-project-confirm.message" msgstr "Are you sure you want to delete this project?" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:67 msgid "modals.delete-project-confirm.title" msgstr "Delete project" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:51 msgid "modals.delete-shared-confirm.accept" msgid_plural "modals.delete-shared-confirm.accept" msgstr[0] "Delete file" msgstr[1] "Delete files" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:55 msgid "modals.delete-shared-confirm.activated.no-files-message" msgid_plural "modals.delete-shared-confirm.activated.no-files-message" msgstr[0] "It isn't activated in any file." msgstr[1] "They aren't activated in any file." -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:57 msgid "modals.delete-shared-confirm.activated.scd-message" msgid_plural "modals.delete-shared-confirm.activated.scd-message" msgstr[0] "This library is activated here: " msgstr[1] "This libraries are activated here: " -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:46 msgid "modals.delete-shared-confirm.message" msgid_plural "modals.delete-shared-confirm.message" msgstr[0] "Are you sure you want to delete this file?" msgstr[1] "Are you sure you want to delete these files?" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:41 msgid "modals.delete-shared-confirm.title" msgid_plural "modals.delete-shared-confirm.title" msgstr[0] "Deleting file" msgstr[1] "Deleting files" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:435 msgid "modals.delete-team-confirm.accept" msgstr "Delete team" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:434 msgid "modals.delete-team-confirm.message" msgstr "" "Are you sure you want to delete this team? All projects and files " "associated with team will be permanently deleted." -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:433 msgid "modals.delete-team-confirm.title" msgstr "Deleting team" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:427 msgid "modals.delete-team-member-confirm.accept" msgstr "Delete member" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:426 msgid "modals.delete-team-member-confirm.message" msgstr "Are you sure you want to delete this member from the team?" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:425 msgid "modals.delete-team-member-confirm.title" msgstr "Delete team member" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:59 msgid "modals.delete-unpublish-shared-confirm.activated.hint" msgid_plural "modals.delete-unpublish-shared-confirm.activated.hint" msgstr[0] "" @@ -2020,3297 +2334,3643 @@ msgstr[1] "" "Assets that have already been used in those files will remain there (no " "design will be broken)." +#: src/app/main/ui/dashboard/team.cljs:942 msgid "modals.delete-webhook.accept" msgstr "Delete webhook" +#: src/app/main/ui/dashboard/team.cljs:941 msgid "modals.delete-webhook.message" msgstr "Are you sure you want to delete this webhook?" +#: src/app/main/ui/dashboard/team.cljs:940 msgid "modals.delete-webhook.title" msgstr "Deleting webhook" +#: src/app/main/ui/dashboard/team.cljs:872 msgid "modals.edit-webhook.submit-label" msgstr "Edit webhook" +#: src/app/main/ui/dashboard/team.cljs:837 msgid "modals.edit-webhook.title" msgstr "Edit webhook" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:218 msgid "modals.invite-member-confirm.accept" msgstr "Send invitation" +#: src/app/main/ui/dashboard/team.cljs:213, src/app/main/ui/onboarding/team_choice.cljs:156 msgid "modals.invite-member.emails" msgstr "Emails, comma separated" +#: src/app/main/ui/dashboard/team.cljs:197 msgid "modals.invite-member.repeated-invitation" msgstr "" "Some emails are from current team members. Their invitations will not be " "sent." -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:190 msgid "modals.invite-team-member.title" msgstr "Invite members to the team" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:423, src/app/main/ui/dashboard/team.cljs:393 msgid "modals.leave-and-close-confirm.hint" msgstr "" "As you're the only member of this team, the team will be deleted along with " "its projects and files." -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:422, src/app/main/ui/dashboard/team.cljs:392 msgid "modals.leave-and-close-confirm.message" msgstr "Are you sure you want to leave the %s team?" +#: src/app/main/ui/dashboard/change_owner.cljs:59 msgid "modals.leave-and-reassign.forbidden" msgstr "" "You can not leave the team if there is no other member to promote to owner. " "You might want to delete the team." -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/change_owner.cljs:55 msgid "modals.leave-and-reassign.hint1" msgstr "" "You are the owner of this team. Please select another member to promote to " "owner before you leave." -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/change_owner.cljs:78 msgid "modals.leave-and-reassign.promote-and-leave" msgstr "Promote and leave" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/change_owner.cljs:34 msgid "modals.leave-and-reassign.select-member-to-promote" msgstr "Select a member to promote" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/change_owner.cljs:49 msgid "modals.leave-and-reassign.title" msgstr "Before you leave" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:402, src/app/main/ui/dashboard/sidebar.cljs:424, src/app/main/ui/dashboard/team.cljs:394, src/app/main/ui/dashboard/team.cljs:416 msgid "modals.leave-confirm.accept" msgstr "Leave team" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:401, src/app/main/ui/dashboard/team.cljs:415 msgid "modals.leave-confirm.message" msgstr "Are you sure you want to leave this team?" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:400, src/app/main/ui/dashboard/sidebar.cljs:421, src/app/main/ui/dashboard/team.cljs:391, src/app/main/ui/dashboard/team.cljs:414 msgid "modals.leave-confirm.title" msgstr "Leaving team" +#: src/app/main/ui/delete_shared.cljs:53 msgid "modals.move-shared-confirm.accept" msgid_plural "modals.move-shared-confirm.accept" msgstr[0] "Move" msgstr[1] "Move" +#: src/app/main/ui/delete_shared.cljs:48 msgid "modals.move-shared-confirm.message" msgid_plural "modals.move-shared-confirm.message" msgstr[0] "Are you sure you want to move this library?" msgstr[1] "Are you sure you want to move these libraries?" +#: src/app/main/ui/delete_shared.cljs:43 msgid "modals.move-shared-confirm.title" msgid_plural "modals.move-shared-confirm.title" msgstr[0] "Move library" msgstr[1] "Move libraries" -#: src/app/main/ui/workspace/nudge.cljs +#: src/app/main/ui/workspace/main_menu.cljs:266, src/app/main/ui/workspace/nudge.cljs:47 msgid "modals.nudge-title" msgstr "Nudge amount" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:340 msgid "modals.promote-owner-confirm.accept" msgstr "Transfer ownership" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:339 msgid "modals.promote-owner-confirm.hint" msgstr "" "If you transfer the ownership, you will change your role to Admin, losing " "some permissions over this team. " -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:338 msgid "modals.promote-owner-confirm.message" msgstr "" "You are the current owner of this team. Are you sure you want to make %s " "the new owner of the team?" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:337 msgid "modals.promote-owner-confirm.title" msgstr "New team owner" +#: src/app/main/ui/workspace/libraries.cljs:188 msgid "modals.publish-empty-library.accept" msgstr "Publish" +#: src/app/main/ui/workspace/libraries.cljs:187 msgid "modals.publish-empty-library.message" msgstr "Your library is empty. Are you sure you want to publish it?" +#: src/app/main/ui/workspace/libraries.cljs:186 msgid "modals.publish-empty-library.title" msgstr "Publish empty library" #: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "modals.remove-shared-confirm.accept" msgstr "Remove as Shared Library" #: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "modals.remove-shared-confirm.hint" msgstr "" "Once removed as Shared Library, the File Library of this file will stop " "being available to be used among the rest of your files." #: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "modals.remove-shared-confirm.message" msgstr "Remove “%s” as Shared Library" -#: src/app/main/ui/workspace/nudge.cljs +#: src/app/main/ui/workspace/nudge.cljs:53 msgid "modals.small-nudge" msgstr "Small nudge" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:52 msgid "modals.unpublish-shared-confirm.accept" msgid_plural "modals.unpublish-shared-confirm.accept" msgstr[0] "Unpublish" msgstr[1] "Unpublish" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:47 msgid "modals.unpublish-shared-confirm.message" msgid_plural "modals.unpublish-shared-confirm.message" msgstr[0] "Are you sure you want to unpublish this library?" msgstr[1] "Are you sure you want to unpublish these libraries?" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:42 msgid "modals.unpublish-shared-confirm.title" msgid_plural "modals.unpublish-shared-confirm.title" msgstr[0] "Unpublish library" msgstr[1] "Unpublish libraries" #: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#, unused msgid "modals.update-remote-component-in-bulk.hint" msgstr "" "You are about to update components in a shared library. This may affect " "other files that use it." #: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#, unused msgid "modals.update-remote-component-in-bulk.message" msgstr "Update components in a shared library" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:380 msgid "modals.update-remote-component.accept" msgstr "Update" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:379 msgid "modals.update-remote-component.cancel" msgstr "Cancel" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:378 msgid "modals.update-remote-component.hint" msgstr "" "You are about to update a component in a shared library. This may affect " "other files that use it." -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:377 msgid "modals.update-remote-component.message" msgstr "Update a component in a shared library" -#: src/app/main/data/common.cljs +#: src/app/main/data/common.cljs:71 msgid "notifications.by-code.upgrade-version" msgstr "A new version is available, please refresh the page" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:154, src/app/main/ui/dashboard/team.cljs:595 msgid "notifications.invitation-email-sent" msgstr "Invitation sent successfully" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:616 msgid "notifications.invitation-link-copied" msgstr "Invitation link copied" -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:24 msgid "notifications.profile-deletion-not-allowed" msgstr "You can't delete your profile. Reassign your teams before proceed." -#: src/app/main/ui/settings/profile.cljs, src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:29, src/app/main/ui/settings/profile.cljs:35 msgid "notifications.profile-saved" msgstr "Profile saved successfully!" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:63 msgid "notifications.validation-email-sent" msgstr "Verification email sent to %s. Check your email!" +#, unused msgid "onboarding-v2.before-start.desc1" msgstr "" "You should know that there are lots of resources available to help you get " "started with Penpot, like the User Guide and our Youtube channel." +#, unused msgid "onboarding-v2.before-start.desc2" msgstr "" "Detailed info about how to use Penpot. From prototyping to organizing or " "sharing designs." +#, unused msgid "onboarding-v2.before-start.desc2.title" msgstr "User guide" +#, unused msgid "onboarding-v2.before-start.desc3" msgstr "You can watch our tutorials and the tutorials made by our community." +#, unused msgid "onboarding-v2.before-start.desc3.title" msgstr "Video tutorials" +#, unused msgid "onboarding-v2.before-start.title" msgstr "Before you start" +#: src/app/main/ui/onboarding/newsletter.cljs:63 msgid "onboarding-v2.newsletter.desc" msgstr "" "Subscribe to the Penpot newsletter to stay up to date with the product " "development progress and news." +#: src/app/main/ui/onboarding/newsletter.cljs:83 msgid "onboarding-v2.newsletter.news" msgstr "Send me news about Penpot (blog posts, video tutorials, streamings...)." +#: src/app/main/ui/onboarding/newsletter.cljs:91 msgid "onboarding-v2.newsletter.privacy1" msgstr "We care about privacy, here you can read our " +#: src/app/main/ui/onboarding/newsletter.cljs:97 msgid "onboarding-v2.newsletter.privacy2" msgstr "" "We will only send relevant emails to you. You can unsubscribe at any time " "via the unsubscribe link in any of our newsletters." +#: src/app/main/ui/onboarding/newsletter.cljs:71 msgid "onboarding-v2.newsletter.updates" msgstr "Send me product updates (new features, releases, fixes...)." +#, unused msgid "onboarding-v2.welcome.desc1" msgstr "" "Penpot is Open Source and it is made by Kaleidos as well as the community, " "where lots of people already help each other out. Everyone can collaborate " "by:" +#, unused msgid "onboarding-v2.welcome.desc2" msgstr "" "A public space to learn, share and discuss about Penpot, its present and " "future with the entire Community and the Penpot core team." +#, unused msgid "onboarding-v2.welcome.desc2.title" msgstr "Participating in the Community" +#, unused msgid "onboarding-v2.welcome.desc3" msgstr "" "Where you’ll find how to collaborate with translations, feature requests, " "core contributions, bug hunting…" +#, unused msgid "onboarding-v2.welcome.desc3.title" msgstr "Contributing guide" +#: src/app/main/ui/onboarding/team_choice.cljs:31 msgid "onboarding-v2.welcome.title" msgstr "Welcome to Penpot!" +#: src/app/main/ui/onboarding/team_choice.cljs:229 msgid "onboarding.choice.team-up.continue-creating-team" msgstr "Continue creating team" +#: src/app/main/ui/onboarding/team_choice.cljs:239 msgid "onboarding.choice.team-up.continue-without-a-team" msgstr "Continue without team" +#: src/app/main/ui/onboarding/team_choice.cljs:167 msgid "onboarding.choice.team-up.create-team-and-invite" msgstr "Create team & invite" +#, unused msgid "onboarding.choice.team-up.create-team-and-send-invites" msgstr "Create team and send invites" +#: src/app/main/ui/onboarding/team_choice.cljs:170 msgid "onboarding.choice.team-up.create-team-and-send-invites-description" msgstr "You'll be able to invite later" +#: src/app/main/ui/onboarding/team_choice.cljs:215 msgid "onboarding.choice.team-up.create-team-desc" msgstr "After naming your team, you will be able to invite people to join." +#: src/app/main/ui/onboarding/team_choice.cljs:224 msgid "onboarding.choice.team-up.create-team-placeholder" msgstr "Enter the name of the team" +#: src/app/main/ui/onboarding/team_choice.cljs:168 msgid "onboarding.choice.team-up.create-team-without-invite" msgstr "Create team" +#, unused msgid "onboarding.choice.team-up.create-team-without-inviting" msgstr "Create team without inviting" +#: src/app/main/ui/dashboard/projects.cljs:89, src/app/main/ui/onboarding/team_choice.cljs:140 msgid "onboarding.choice.team-up.invite-members" msgstr "Invite members" +#: src/app/main/ui/onboarding/team_choice.cljs:141 msgid "onboarding.choice.team-up.invite-members-info" msgstr "" "Remember to include everyone. Developers, designers, managers... diversity " "adds up :)" +#: src/app/main/ui/dashboard/team.cljs:202, src/app/main/ui/onboarding/team_choice.cljs:146 msgid "onboarding.choice.team-up.roles" msgstr "Invite with the role:" +#: src/app/main/ui/onboarding/team_choice.cljs:232 msgid "onboarding.choice.team-up.start-without-a-team" msgstr "Start without a team" +#: src/app/main/ui/onboarding/team_choice.cljs:234 msgid "onboarding.choice.team-up.start-without-a-team-description" msgstr "You will be able to create a team later." +#, unused msgid "onboarding.newsletter.accept" msgstr "Yes, subscribe" +#: src/app/main/ui/onboarding/newsletter.cljs:40 msgid "onboarding.newsletter.acceptance-message" msgstr "" "Your subscription request has been sent, we will send you an email to " "confirm it." +#: src/app/main/ui/onboarding/newsletter.cljs:95 msgid "onboarding.newsletter.policy" msgstr "Privacy Policy." +#: src/app/main/ui/onboarding/newsletter.cljs:60 msgid "onboarding.newsletter.title" msgstr "Want to receive Penpot news?" +#: src/app/main/ui/onboarding/questions.cljs:118 +msgid "onboarding.questions.lets-get-started" +msgstr "Let's get started!" + +#: src/app/main/ui/onboarding/questions.cljs:99 +msgid "onboarding.questions.reasons.alternative" +msgstr "Looking for an alternative to Figma, XD, etc" + +#: src/app/main/ui/onboarding/questions.cljs:93 +msgid "onboarding.questions.reasons.exploring" +msgstr "Just exploring" + +#: src/app/main/ui/onboarding/questions.cljs:96 +msgid "onboarding.questions.reasons.fit" +msgstr "Reviewing whether Penpot is a good fit for my team" + +#: src/app/main/ui/onboarding/questions.cljs:102 +msgid "onboarding.questions.reasons.testing" +msgstr "Testing before self-hosting" + +#: src/app/main/ui/onboarding/questions.cljs:355 +msgid "onboarding.questions.start-with.code" +msgstr "Generating real code from designs" + +#: src/app/main/ui/onboarding/questions.cljs:353 +msgid "onboarding.questions.start-with.ds" +msgstr "Creating Design Systems" + +#: src/app/main/ui/onboarding/questions.cljs:351 +msgid "onboarding.questions.start-with.prototyping" +msgstr "Prototyping" + +#: src/app/main/ui/onboarding/questions.cljs:347 +msgid "onboarding.questions.start-with.ui" +msgstr "Design the UI/UX of an app" + +#: src/app/main/ui/onboarding/questions.cljs:349 +msgid "onboarding.questions.start-with.wireframing" +msgstr "Wireframing" + +#: src/app/main/ui/onboarding/questions.cljs:126 +msgid "onboarding.questions.step1.question1" +msgstr "What will you be using Penpot for?" + +#: src/app/main/ui/onboarding/questions.cljs:133 +msgid "onboarding.questions.step1.question2" +msgstr "What brings you to Penpot today?" + +#: src/app/main/ui/onboarding/questions.cljs:122 +msgid "onboarding.questions.step1.subtitle" +msgstr "" +"Let us know a bit about you to help us make Penpot work for you. Your " +"answers will help us prioritize new features and point you in the right " +"direction to get started." + +#: src/app/main/ui/onboarding/questions.cljs:120 +msgid "onboarding.questions.step1.title" +msgstr "Help us get to know you" + +#: src/app/main/ui/onboarding/questions.cljs:201 +msgid "onboarding.questions.step2.title" +msgstr "Which one of these tools do you use the most?" + +#: src/app/main/ui/onboarding/questions.cljs:294 +msgid "onboarding.questions.step3.question1" +msgstr "What kind of work do you do?" + +#: src/app/main/ui/onboarding/questions.cljs:307 +msgid "onboarding.questions.step3.question2" +msgstr "What's your role?" + +#: src/app/main/ui/onboarding/questions.cljs:320 +msgid "onboarding.questions.step3.question3" +msgstr "What's the size of your company?" + +#: src/app/main/ui/onboarding/questions.cljs:292 +msgid "onboarding.questions.step3.title" +msgstr "Tell us about your job" + +#: src/app/main/ui/onboarding/questions.cljs:376 +msgid "onboarding.questions.step4.title" +msgstr "Where would you like to get started?" + +#: src/app/main/ui/onboarding/questions.cljs:437 +msgid "onboarding.questions.step5.title" +msgstr "How did you hear about Penpot?" + +#: src/app/main/ui/onboarding/questions.cljs:273 +msgid "onboarding.questions.team-size.11-30" +msgstr "11-30" + +#: src/app/main/ui/onboarding/questions.cljs:274 +msgid "onboarding.questions.team-size.2-10" +msgstr "2-10" + +#: src/app/main/ui/onboarding/questions.cljs:272 +msgid "onboarding.questions.team-size.31-50" +msgstr "31-50" + +#: src/app/main/ui/onboarding/questions.cljs:275 +msgid "onboarding.questions.team-size.freelancer" +msgstr "I'm a freelancer" + +#: src/app/main/ui/onboarding/questions.cljs:271 +msgid "onboarding.questions.team-size.more-than-50" +msgstr "More than 50" + +#: src/app/main/ui/onboarding/questions.cljs:276 +msgid "onboarding.questions.team-size.personal-project" +msgstr "I’m working in a personal project" + +#: src/app/main/ui/onboarding/questions.cljs:85 +msgid "onboarding.questions.use.education" +msgstr "Education" + +#: src/app/main/ui/onboarding/questions.cljs:86 +msgid "onboarding.questions.use.personal" +msgstr "Personal" + +#: src/app/main/ui/onboarding/questions.cljs:84 +msgid "onboarding.questions.use.work" +msgstr "Work" + +#: src/app/main/ui/onboarding/team_choice.cljs:213 msgid "onboarding.team-modal.create-team" msgstr "Create a team" +#: src/app/main/ui/onboarding/team_choice.cljs:35 msgid "onboarding.team-modal.create-team-desc" msgstr "" "A team allows you to collaborate with other Penpot users working in the " "same files and projects." +#: src/app/main/ui/onboarding/team_choice.cljs:40 msgid "onboarding.team-modal.create-team-feature-1" msgstr "Unlimited files and projects" +#: src/app/main/ui/onboarding/team_choice.cljs:44 msgid "onboarding.team-modal.create-team-feature-2" msgstr "Multiplayer edition" +#: src/app/main/ui/onboarding/team_choice.cljs:48 msgid "onboarding.team-modal.create-team-feature-3" msgstr "Roles management" +#: src/app/main/ui/onboarding/team_choice.cljs:52 msgid "onboarding.team-modal.create-team-feature-4" msgstr "Unlimited members" +#: src/app/main/ui/onboarding/team_choice.cljs:56 msgid "onboarding.team-modal.create-team-feature-5" msgstr "100% free!" +#: src/app/main/ui/onboarding/team_choice.cljs:33 msgid "onboarding.team-modal.team-definition" msgstr "What's a team?" +#: src/app/main/ui/onboarding/templates.cljs:78 msgid "onboarding.templates.subtitle" msgstr "Here are some templates." +#: src/app/main/ui/onboarding/templates.cljs:77 msgid "onboarding.templates.title" msgstr "Start designing" +#, unused msgid "onboarding.welcome.alt" msgstr "Penpot" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:99 msgid "profile.recovery.go-to-login" msgstr "Go to login" -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.step1.title" -msgstr "Help us get to know you" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.step1.subtitle" -msgstr "Let us know a bit about you to help us make Penpot work for you. Your answers will help us prioritize new features and point you in the right direction to get started." - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.step1.question1" -msgstr "What will you be using Penpot for?" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.use.work" -msgstr "Work" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.use.education" -msgstr "Education" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.use.personal" -msgstr "Personal" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.step1.question2" -msgstr "What brings you to Penpot today?" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.reasons.exploring" -msgstr "Just exploring" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.reasons.fit" -msgstr "Reviewing whether Penpot is a good fit for my team" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.reasons.alternative" -msgstr "Looking for an alternative to Figma, XD, etc" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.reasons.testing" -msgstr "Testing before self-hosting" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.step2.title" -msgstr "Which one of these tools do you use the most?" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.adobe-xd" -msgstr "Adobe XD" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.canva" -msgstr "Canva" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.figma" -msgstr "Figma" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.invision" -msgstr "InVision" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.sketch" -msgstr "Sketch" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.step3.title" -msgstr "Tell us about your job" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.step3.question1" -msgstr "What kind of work do you do?" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.product-design" -msgstr "Product or UX design" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.developer" -msgstr "Development" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.graphic-design" -msgstr "Graphic design" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.marketing" -msgstr "Marketing" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.product-management" -msgstr "Product Managment" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.step3.question2" -msgstr "What's your role?" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.team-leader" -msgstr "Team Leader" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.team-member" -msgstr "Team member" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.freelancer" -msgstr "Freelancer" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.founder" -msgstr "CEO or Founder" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.director" -msgstr "Director" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.step3.question3" -msgstr "What's the size of your company?" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.team-size.more-than-50" -msgstr "More than 50" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.team-size.31-50" -msgstr "31-50" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.team-size.11-30" -msgstr "11-30" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.team-size.2-10" -msgstr "2-10" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.team-size.freelancer" -msgstr "I'm a freelancer" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.team-size.personal-project" -msgstr "I’m working in a personal project" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.step4.title" -msgstr "Where would you like to get started?" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.start-with.ui" -msgstr "Design the UI/UX of an app" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.start-with.wireframing" -msgstr "Wireframing" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.start-with.prototyping" -msgstr "Prototyping" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.start-with.ds" -msgstr "Creating Design Systems" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.start-with.code" -msgstr "Generating real code from designs" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.step5.title" -msgstr "How did you hear about Penpot?" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.youtube" -msgstr "YouTube" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.event" -msgstr "Event" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.search" -msgstr "Search Engine (Google, Yahoo, Bing)" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.social" -msgstr "Social Media (X, Linkedin, FB, etc)" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.article" -msgstr "Article (Blog, Post, Newsletter)" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.lets-get-started" -msgstr "Let's get started!" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.next" -msgstr "Next" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.other" -msgstr "Other (specify)" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.other-short" -msgstr "Other" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.previous" -msgstr "Previous" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.select-option" -msgstr "Select option" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.start" -msgstr "Start" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.student-teacher" -msgstr "Student or teacher" - -#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, +#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:221 msgid "settings.detach" msgstr "Detach" -#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs, src/app/main/ui/workspace/sidebar/options/menus/layer.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs, src/app/main/ui/workspace/sidebar/options/menus/blur.cljs +#: src/app/main/ui/viewer/inspect/exports.cljs:147, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:631, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:137, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:148, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:188, src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:158, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:399, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:410, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:430, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:441, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:458, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:472, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:309, src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:183, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:373, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:389, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:245, src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:172 msgid "settings.multiple" msgstr "Mixed" -#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:271 msgid "settings.select-this-color" msgstr "Select items using this style" - # SECTIONS +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:414 msgid "shortcut-section.basics" msgstr "Basics" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:420 msgid "shortcut-section.dashboard" msgstr "Dashboard" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:423 msgid "shortcut-section.viewer" msgstr "Viewer" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:417 msgid "shortcut-section.workspace" msgstr "Workspace" # SUBSECTIONS +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:56 msgid "shortcut-subsection.alignment" msgstr "Alignment" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:57 msgid "shortcut-subsection.edit" msgstr "Edit" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:58 msgid "shortcut-subsection.general-dashboard" msgstr "Generic" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:59 msgid "shortcut-subsection.general-viewer" msgstr "Generic" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:60 msgid "shortcut-subsection.main-menu" msgstr "Main menu" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:61 msgid "shortcut-subsection.modify-layers" msgstr "Modify layers" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:62 msgid "shortcut-subsection.navigation-dashboard" msgstr "Navigation" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:63 msgid "shortcut-subsection.navigation-viewer" msgstr "Navigation" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:64 msgid "shortcut-subsection.navigation-workspace" msgstr "Navigation" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:65 msgid "shortcut-subsection.panels" msgstr "Panels" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:66 msgid "shortcut-subsection.path-editor" msgstr "Paths" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:67 msgid "shortcut-subsection.shape" msgstr "Shapes" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:68 msgid "shortcut-subsection.text-editor" msgstr "Texts" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:69 msgid "shortcut-subsection.tools" msgstr "Tools" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:70 msgid "shortcut-subsection.zoom-viewer" msgstr "Zoom" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:71 msgid "shortcut-subsection.zoom-workspace" msgstr "Zoom" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:72 msgid "shortcuts.add-comment" msgstr "Comments" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:73 msgid "shortcuts.add-node" msgstr "Add node" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:74 msgid "shortcuts.align-bottom" msgstr "Align bottom" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:75 msgid "shortcuts.align-center" msgstr "Align center" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:76 msgid "shortcuts.align-hcenter" msgstr "Align center horizontally" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:77 msgid "shortcuts.align-justify" msgstr "Align justify" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:78 msgid "shortcuts.align-left" msgstr "Align left" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:79 msgid "shortcuts.align-right" msgstr "Align right" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:80 msgid "shortcuts.align-top" msgstr "Align top" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:81 msgid "shortcuts.align-vcenter" msgstr "Align center vertically" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:82 msgid "shortcuts.artboard-selection" msgstr "Create board from selection" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:83 msgid "shortcuts.bold" msgstr "Toggle bold" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:84 msgid "shortcuts.bool-difference" msgstr "Boolean difference" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:85 msgid "shortcuts.bool-exclude" msgstr "Boolean exclude" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:86 msgid "shortcuts.bool-intersection" msgstr "Boolean intersection" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:87 msgid "shortcuts.bool-union" msgstr "Boolean union" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:88 msgid "shortcuts.bring-back" msgstr "Send to the back" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:89 msgid "shortcuts.bring-backward" msgstr "Send backward" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:90 msgid "shortcuts.bring-forward" msgstr "Bring forward" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:91 msgid "shortcuts.bring-front" msgstr "Bring to the front" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:92 msgid "shortcuts.clear-undo" msgstr "Clear undo" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:93 msgid "shortcuts.copy" msgstr "Copy" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:94 msgid "shortcuts.create-component" msgstr "Create component" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:95 msgid "shortcuts.create-new-project" msgstr "Create new" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:96 msgid "shortcuts.cut" msgstr "Cut" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:97 msgid "shortcuts.decrease-zoom" msgstr "Zoom out" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:98 msgid "shortcuts.delete" msgstr "Delete" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:99 msgid "shortcuts.delete-node" msgstr "Delete node" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:100 msgid "shortcuts.detach-component" msgstr "Detach component" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:101 msgid "shortcuts.draw-curve" msgstr "Curve" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:102 msgid "shortcuts.draw-ellipse" msgstr "Ellipse" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:103 msgid "shortcuts.draw-frame" msgstr "Board" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:104 msgid "shortcuts.draw-nodes" msgstr "Draw path" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:105 msgid "shortcuts.draw-path" msgstr "Path" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:106 msgid "shortcuts.draw-rect" msgstr "Rectangle" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:107 msgid "shortcuts.draw-text" msgstr "Text" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:108 msgid "shortcuts.duplicate" msgstr "Duplicate" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:109 msgid "shortcuts.escape" msgstr "Cancel" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:110 msgid "shortcuts.export-shapes" msgstr "Export shapes" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:111 msgid "shortcuts.fit-all" msgstr "Zoom to fit all" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:112 msgid "shortcuts.flip-horizontal" msgstr "Flip horizontally" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:113 msgid "shortcuts.flip-vertical" msgstr "Flip vertically" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:114 msgid "shortcuts.font-size-dec" msgstr "Decrement font size" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:115 msgid "shortcuts.font-size-inc" msgstr "Increment font size" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:116 msgid "shortcuts.go-to-drafts" msgstr "Go to drafts" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:117 msgid "shortcuts.go-to-libs" msgstr "Go to shared libraries" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:118 msgid "shortcuts.go-to-search" msgstr "Search" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:119 msgid "shortcuts.group" msgstr "Group" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:120 msgid "shortcuts.h-distribute" msgstr "Distribute horizontally" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:121 msgid "shortcuts.hide-ui" msgstr "Show / Hide UI" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:122 msgid "shortcuts.increase-zoom" msgstr "Zoom in" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:123 msgid "shortcuts.insert-image" msgstr "Insert image" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:124 msgid "shortcuts.italic" msgstr "Toggle italic" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:125 msgid "shortcuts.join-nodes" msgstr "Join nodes" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:126 msgid "shortcuts.letter-spacing-dec" msgstr "Decrement letter spacing" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:127 msgid "shortcuts.letter-spacing-inc" msgstr "Increment letter spacing" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:128 msgid "shortcuts.line-height-dec" msgstr "Decrement line height" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:129 msgid "shortcuts.line-height-inc" msgstr "Increment line height" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:130 msgid "shortcuts.line-through" msgstr "Toggle line through" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:131 msgid "shortcuts.make-corner" msgstr "Make corner" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:132 msgid "shortcuts.make-curve" msgstr "Make curve" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:133 msgid "shortcuts.mask" msgstr "Mask" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:134 msgid "shortcuts.merge-nodes" msgstr "Merge nodes" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:135 msgid "shortcuts.move" msgstr "Move" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:136 msgid "shortcuts.move-fast-down" msgstr "Move down fast" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:137 msgid "shortcuts.move-fast-left" msgstr "Move left fast" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:138 msgid "shortcuts.move-fast-right" msgstr "Move right fast" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:139 msgid "shortcuts.move-fast-up" msgstr "Move up fast" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:140 msgid "shortcuts.move-nodes" msgstr "Move node" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:141 msgid "shortcuts.move-unit-down" msgstr "Move down" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:142 msgid "shortcuts.move-unit-left" msgstr "Move left" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:143 msgid "shortcuts.move-unit-right" msgstr "Move right" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:144 msgid "shortcuts.move-unit-up" msgstr "Move up" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:145 msgid "shortcuts.next-frame" msgstr "Next board" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:516 msgid "shortcuts.not-found" msgstr "No shortcuts found" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:146 msgid "shortcuts.opacity-0" msgstr "Set opacity to 100%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:147 msgid "shortcuts.opacity-1" msgstr "Set opacity to 10%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:148 msgid "shortcuts.opacity-2" msgstr "Set opacity to 20%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:149 msgid "shortcuts.opacity-3" msgstr "Set opacity to 30%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:150 msgid "shortcuts.opacity-4" msgstr "Set opacity to 40%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:151 msgid "shortcuts.opacity-5" msgstr "Set opacity to 50%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:152 msgid "shortcuts.opacity-6" msgstr "Set opacity to 60%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:153 msgid "shortcuts.opacity-7" msgstr "Set opacity to 70%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:154 msgid "shortcuts.opacity-8" msgstr "Set opacity to 80%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:155 msgid "shortcuts.opacity-9" msgstr "Set opacity to 90%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:156 msgid "shortcuts.open-color-picker" msgstr "Color picker" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:157 msgid "shortcuts.open-comments" msgstr "Go to viewer comment section" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:158 msgid "shortcuts.open-dashboard" msgstr "Go to dashboard" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:159 msgid "shortcuts.open-inspect" msgstr "Go to viewer inspect section" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:160 msgid "shortcuts.open-interactions" msgstr "Go to viewer interactions section" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:161 msgid "shortcuts.open-viewer" msgstr "Go to viewer interactions section" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:162 msgid "shortcuts.open-workspace" msgstr "Go to workspace" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:260 msgid "shortcuts.or" msgstr " or " +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:163 msgid "shortcuts.paste" msgstr "Paste" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:164 msgid "shortcuts.prev-frame" msgstr "Previous board" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:165 msgid "shortcuts.redo" msgstr "Redo" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:166 msgid "shortcuts.reset-zoom" msgstr "Reset zoom" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:167 msgid "shortcuts.scale" msgstr "Scale" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:168 msgid "shortcuts.search-placeholder" msgstr "Search shortcuts" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:169 msgid "shortcuts.select-all" msgstr "Select all" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:170 msgid "shortcuts.select-next" msgstr "Select next layer" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:171 msgid "shortcuts.select-parent-layer" msgstr "Select parent layer" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:172 msgid "shortcuts.select-prev" msgstr "Select previous layer" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:173 msgid "shortcuts.separate-nodes" msgstr "Separate nodes" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:174 msgid "shortcuts.show-pixel-grid" msgstr "Show / Hide pixel grid" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:175 msgid "shortcuts.show-shortcuts" msgstr "Show / Hide shortcuts" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:176 msgid "shortcuts.snap-nodes" msgstr "Snap to nodes" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:177 msgid "shortcuts.snap-pixel-grid" msgstr "Snap to pixel grid" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:178 msgid "shortcuts.start-editing" msgstr "Start editing" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:179 msgid "shortcuts.start-measure" msgstr "Start measurement" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:180 msgid "shortcuts.stop-measure" msgstr "Stop measurement" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:181 msgid "shortcuts.text-align-center" msgstr "Align center" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:182 msgid "shortcuts.text-align-justify" msgstr "Align justify" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:183 msgid "shortcuts.text-align-left" msgstr "Align left" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:184 msgid "shortcuts.text-align-right" msgstr "Align right" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:185 msgid "shortcuts.thumbnail-set" msgstr "Set thumbnails" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:496, src/app/main/ui/workspace/sidebar/shortcuts.cljs:505 msgid "shortcuts.title" msgstr "Keyboard shortcuts" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:186 msgid "shortcuts.toggle-alignment" msgstr "Toggle dynamic alignment" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:187 msgid "shortcuts.toggle-assets" msgstr "Toggle assets" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:188 msgid "shortcuts.toggle-colorpalette" msgstr "Toggle color palette" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:189 msgid "shortcuts.toggle-focus-mode" msgstr "Toggle focus mode" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:190 msgid "shortcuts.toggle-fullscreen" msgstr "Toggle fullscreen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:191 msgid "shortcuts.toggle-guides" msgstr "Show / Hide guides" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:192 msgid "shortcuts.toggle-history" msgstr "Toggle history" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:193 msgid "shortcuts.toggle-layers" msgstr "Toggle layers" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:194 msgid "shortcuts.toggle-layout-flex" msgstr "Add / Remove flex layout" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:195 msgid "shortcuts.toggle-layout-grid" msgstr "Add/remove grid layout" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:196 msgid "shortcuts.toggle-lock" msgstr "Lock / Unlock" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:197 msgid "shortcuts.toggle-lock-size" msgstr "Lock proportions" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:198 msgid "shortcuts.toggle-rulers" msgstr "Show / Hide rulers" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:199 +#, fuzzy +msgid "shortcuts.toggle-rules" +msgstr "" + +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:200 msgid "shortcuts.toggle-snap-guides" msgstr "Snap to guides" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:201 msgid "shortcuts.toggle-snap-ruler-guide" msgstr "Snap to ruler guides" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:202 msgid "shortcuts.toggle-textpalette" msgstr "Toggle text palette" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:203 msgid "shortcuts.toggle-theme" msgstr "Change theme" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:204 msgid "shortcuts.toggle-visibility" msgstr "Show / Hide" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:205 msgid "shortcuts.toggle-zoom-style" msgstr "Toggle zoom style" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:206 msgid "shortcuts.underline" msgstr "Toggle underline" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:207 msgid "shortcuts.undo" msgstr "Undo" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:208 msgid "shortcuts.ungroup" msgstr "Ungroup" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:209 msgid "shortcuts.unmask" msgstr "Unmask" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:210 msgid "shortcuts.v-distribute" msgstr "Distribute vertically" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:211 msgid "shortcuts.zoom-lense-decrease" msgstr "Zoom lense decrease" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:212 msgid "shortcuts.zoom-lense-increase" msgstr "Zoom lense increase" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:213 msgid "shortcuts.zoom-selected" msgstr "Zoom to selected" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:771 msgid "team.webhooks.max-length" msgstr "The webhook name must contain at most 2048 characters." -#: src/app/main/ui/dashboard/files.cljs +#: src/app/main/ui/dashboard/files.cljs:158 msgid "title.dashboard.files" msgstr "%s - Penpot" -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:37 msgid "title.dashboard.font-providers" msgstr "Font Providers - %s - Penpot" -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:36 msgid "title.dashboard.fonts" msgstr "Fonts - %s - Penpot" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:320 msgid "title.dashboard.projects" msgstr "Projects - %s - Penpot" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:32 msgid "title.dashboard.search" msgstr "Search - %s - Penpot" -#: src/app/main/ui/dashboard/libraries.cljs +#: src/app/main/ui/dashboard/libraries.cljs:44 msgid "title.dashboard.shared-libraries" msgstr "Shared Libraries - %s - Penpot" -#: src/app/main/ui/auth/verify_token.cljs, src/app/main/ui/auth.cljs +#: src/app/main/ui/auth/verify_token.cljs:68, src/app/main/ui/auth.cljs:54 msgid "title.default" msgstr "Penpot - Design Freedom for Teams" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:292 msgid "title.settings.access-tokens" msgstr "Profile - Access tokens" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:110 msgid "title.settings.feedback" msgstr "Give feedback - Penpot" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:80 msgid "title.settings.options" msgstr "Settings - Penpot" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:115 msgid "title.settings.password" msgstr "Password - Penpot" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:115 msgid "title.settings.profile" msgstr "Profile - Penpot" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:727 msgid "title.team-invitations" msgstr "Invitations - %s - Penpot" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:493 msgid "title.team-members" msgstr "Members - %s - Penpot" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1036 msgid "title.team-settings" msgstr "Settings - %s - Penpot" +#: src/app/main/ui/dashboard/team.cljs:989 msgid "title.team-webhooks" msgstr "Webhooks - %s - Penpot" -#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs +#: src/app/main/ui/viewer.cljs:419 msgid "title.viewer" msgstr "%s - View mode - Penpot" -#: src/app/main/ui/workspace.cljs +#: src/app/main/ui/workspace.cljs:190 msgid "title.workspace" msgstr "%s - Penpot" +#: src/app/main/ui.cljs:144 msgid "viewer.breaking-change.description" msgstr "" "This shareable link is no longer valid. Create a new one or ask the owner " "for a new one." +#: src/app/main/ui.cljs:143 msgid "viewer.breaking-change.message" msgstr "Sorry!" -#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs +#: src/app/main/ui/viewer.cljs:569 msgid "viewer.empty-state" msgstr "No boards found on the page." -#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs +#: src/app/main/ui/viewer.cljs:574 msgid "viewer.frame-not-found" msgstr "Board not found." +#: src/app/main/ui/viewer/header.cljs:336 msgid "viewer.header.comments-section" msgstr "Comments (%s)" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/interactions.cljs:292 msgid "viewer.header.dont-show-interactions" msgstr "Don't show interactions" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/header.cljs:188 msgid "viewer.header.fullscreen" msgstr "Full Screen" +#: src/app/main/ui/viewer/header.cljs:345 msgid "viewer.header.inspect-section" msgstr "Inspect (%s)" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/interactions.cljs:282 msgid "viewer.header.interactions" msgstr "Interactions" +#: src/app/main/ui/viewer/header.cljs:327 msgid "viewer.header.interactions-section" msgstr "Interactions (%s)" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/share_link.cljs:187 msgid "viewer.header.share.copy-link" msgstr "Copy link" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/interactions.cljs:300 msgid "viewer.header.show-interactions" msgstr "Show interactions" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/interactions.cljs:311 msgid "viewer.header.show-interactions-on-click" msgstr "Show interactions on click" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/header.cljs:231 msgid "viewer.header.sitemap" msgstr "Sitemap" +#: src/app/main/ui/dashboard/team.cljs:948 msgid "webhooks.last-delivery.success" msgstr "Last delivery was successful." -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:58 msgid "workspace.align.hcenter" msgstr "Align horizontal center (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:74 msgid "workspace.align.hdistribute" msgstr "Distribute horizontal spacing (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:50 msgid "workspace.align.hleft" msgstr "Align left (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:66 msgid "workspace.align.hright" msgstr "Align right (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:99 msgid "workspace.align.vbottom" msgstr "Align bottom (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:91 msgid "workspace.align.vcenter" msgstr "Align vertical center (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:104 msgid "workspace.align.vdistribute" msgstr "Distribute vertical spacing (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:83 msgid "workspace.align.vtop" msgstr "Align top (%s)" #: src/app/main/ui/workspace/sidebar/assets.cljs +#, unused msgid "workspace.assets.assets" msgstr "Assets" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets.cljs:134 msgid "workspace.assets.box-filter-all" msgstr "All assets" -#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/dashboard/grid.cljs:130, src/app/main/ui/dashboard/grid.cljs:162, src/app/main/ui/workspace/sidebar/assets/colors.cljs:485, src/app/main/ui/workspace/sidebar/assets.cljs:150 msgid "workspace.assets.colors" msgstr "Colors" -#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/dashboard/grid.cljs:126, src/app/main/ui/dashboard/grid.cljs:141, src/app/main/ui/workspace/sidebar/assets/components.cljs:513, src/app/main/ui/workspace/sidebar/assets.cljs:139 msgid "workspace.assets.components" msgstr "Components" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:131 msgid "workspace.assets.create-group" msgstr "Create a group" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:142 msgid "workspace.assets.create-group-hint" msgstr "Your items are going to be named automatically as \"group name / item name\"" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/context_menu.cljs:529, src/app/main/ui/workspace/sidebar/assets/colors.cljs:251, src/app/main/ui/workspace/sidebar/assets/components.cljs:577, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:424, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:443 msgid "workspace.assets.delete" msgstr "Delete" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/context_menu.cljs:534, src/app/main/ui/workspace/sidebar/assets/components.cljs:572 msgid "workspace.assets.duplicate" msgstr "Duplicate" +#: src/app/main/ui/workspace/sidebar/assets/components.cljs:571 msgid "workspace.assets.duplicate-main" msgstr "Duplicate main" -#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:247, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:439 msgid "workspace.assets.edit" msgstr "Edit" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets.cljs:176 msgid "workspace.assets.filter" msgstr "Filter" -#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/graphics.cljs:384, src/app/main/ui/workspace/sidebar/assets.cljs:145 msgid "workspace.assets.graphics" msgstr "Graphics" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/components.cljs:529 +msgid "workspace.assets.grid-view" +msgstr "Grid view" + +#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:255, src/app/main/ui/workspace/sidebar/assets/components.cljs:581, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:428, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:448 msgid "workspace.assets.group" msgstr "Group" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:141 msgid "workspace.assets.group-name" msgstr "Group name" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets.cljs:168 msgid "workspace.assets.libraries" msgstr "Libraries" +#: src/app/main/ui/workspace/sidebar/assets/components.cljs:525 +msgid "workspace.assets.list-view" +msgstr "List view" + +#: src/app/main/ui/workspace/sidebar/assets/file_library.cljs:62, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:347 msgid "workspace.assets.local-library" msgstr "local library" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/file_library.cljs:295 msgid "workspace.assets.not-found" msgstr "No assets found" +#, unused msgid "workspace.assets.open-library" msgstr "Open library file" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/context_menu.cljs:532, src/app/main/ui/workspace/sidebar/assets/colors.cljs:243, src/app/main/ui/workspace/sidebar/assets/components.cljs:566, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:421, src/app/main/ui/workspace/sidebar/assets/groups.cljs:63, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:434 msgid "workspace.assets.rename" msgstr "Rename" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:132 msgid "workspace.assets.rename-group" msgstr "Rename group" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets.cljs:173 msgid "workspace.assets.search" msgstr "Search assets" #: src/app/main/ui/workspace/sidebar/assets.cljs +#, unused msgid "workspace.assets.selected-count" msgid_plural "workspace.assets.selected-count" msgstr[0] "%s item selected" msgstr[1] "%s items selected" #: src/app/main/ui/workspace/sidebar/assets.cljs +#, unused msgid "workspace.assets.shared-library" msgstr "Shared library" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:221 msgid "workspace.assets.sidebar.components" msgid_plural "workspace.assets.sidebar.components" msgstr[0] "1 component" msgstr[1] "%s components" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets.cljs:193 msgid "workspace.assets.sort" msgstr "Sort" -#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/dashboard/grid.cljs:134, src/app/main/ui/dashboard/grid.cljs:189, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:397, src/app/main/ui/workspace/sidebar/assets.cljs:155 msgid "workspace.assets.typography" msgstr "Typographies" -#: src/app/main/ui/workspace/sidebar/assets/components.cljs, src/app/main/wui/workspace/sidebar/options/menus/component.cljs -msgid "workspace.assets.grid-view" -msgstr "Grid view" - -#: src/app/main/ui/workspace/sidebar/assets/components.cljs, src/app/main/wui/workspace/sidebar/options/menus/component.cljs -msgid "workspace.assets.list-view" -msgstr "List view" - #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused msgid "workspace.assets.typography.font-id" msgstr "Font" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:505 msgid "workspace.assets.typography.font-size" msgstr "Size" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:501 msgid "workspace.assets.typography.font-variant-id" msgstr "Variant" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:523 msgid "workspace.assets.typography.go-to-edit" msgstr "Go to style library file to edit" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:513 msgid "workspace.assets.typography.letter-spacing" msgstr "Letter Spacing" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:509 msgid "workspace.assets.typography.line-height" msgstr "Line Height" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, src/app/main/ui/inspect/attributes/text.cljs, src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/dashboard/grid.cljs:199, src/app/main/ui/workspace/libraries.cljs:461, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:464, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:489, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:596, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:615 msgid "workspace.assets.typography.sample" msgstr "Ag" +#, unused msgid "workspace.assets.typography.text-styles" msgstr "Text styles" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:517 msgid "workspace.assets.typography.text-transform" msgstr "Text Transform" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:66 msgid "workspace.assets.ungroup" msgstr "Ungroup" +#: src/app/main/ui/workspace/context_menu.cljs:634 msgid "workspace.context-menu.grid-cells.area" msgstr "Create area" +#: src/app/main/ui/workspace/context_menu.cljs:637 msgid "workspace.context-menu.grid-cells.create-board" msgstr "Create board" +#: src/app/main/ui/workspace/context_menu.cljs:629 msgid "workspace.context-menu.grid-cells.merge" msgstr "Merge cells" +#: src/app/main/ui/workspace/context_menu.cljs:594 msgid "workspace.context-menu.grid-track.column.add-after" msgstr "Add 1 column to the right" +#: src/app/main/ui/workspace/context_menu.cljs:593 msgid "workspace.context-menu.grid-track.column.add-before" msgstr "Add 1 column to the left" +#: src/app/main/ui/workspace/context_menu.cljs:595 msgid "workspace.context-menu.grid-track.column.delete" msgstr "Delete column" +#: src/app/main/ui/workspace/context_menu.cljs:596 msgid "workspace.context-menu.grid-track.column.delete-shapes" msgstr "Delete column and shapes" +#: src/app/main/ui/workspace/context_menu.cljs:592 msgid "workspace.context-menu.grid-track.column.duplicate" msgstr "Duplicate column" +#: src/app/main/ui/workspace/context_menu.cljs:601 msgid "workspace.context-menu.grid-track.row.add-after" msgstr "Add 1 row below" +#: src/app/main/ui/workspace/context_menu.cljs:600 msgid "workspace.context-menu.grid-track.row.add-before" msgstr "Add 1 row above" +#: src/app/main/ui/workspace/context_menu.cljs:602 msgid "workspace.context-menu.grid-track.row.delete" msgstr "Delete row" +#: src/app/main/ui/workspace/context_menu.cljs:603 msgid "workspace.context-menu.grid-track.row.delete-shapes" msgstr "Delete row and shapes" +#: src/app/main/ui/workspace/context_menu.cljs:599 msgid "workspace.context-menu.grid-track.row.duplicate" msgstr "Duplicate row" +#: src/app/main/ui/workspace/sidebar/layers.cljs:525 msgid "workspace.focus.focus-mode" msgstr "Focus mode" +#: src/app/main/ui/workspace/context_menu.cljs:287, src/app/main/ui/workspace/context_menu.cljs:553 msgid "workspace.focus.focus-off" msgstr "Focus off" +#: src/app/main/ui/workspace/context_menu.cljs:286 msgid "workspace.focus.focus-on" msgstr "Focus on" +#, unused msgid "workspace.focus.selection" msgstr "Selection" -#: src/app/main/data/workspace/libraries.cljs, src/app/main/ui/components/color_bullet.cljs +#: src/app/util/color.cljs:34 msgid "workspace.gradients.linear" msgstr "Linear gradient" -#: src/app/main/data/workspace/libraries.cljs, src/app/main/ui/components/color_bullet.cljs +#: src/app/util/color.cljs:35 msgid "workspace.gradients.radial" msgstr "Radial gradient" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:238 msgid "workspace.header.menu.disable-dynamic-alignment" msgstr "Disable dynamic alignment" +#: src/app/main/ui/workspace/main_menu.cljs:192 msgid "workspace.header.menu.disable-scale-content" msgstr "Disable proportional scale" #: src/app/main/ui/workspace/header.cljs +#, unused msgid "workspace.header.menu.disable-scale-text" msgstr "Disable scale text" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:223 msgid "workspace.header.menu.disable-snap-guides" msgstr "Disable snap to guides" +#: src/app/main/ui/workspace/main_menu.cljs:253 msgid "workspace.header.menu.disable-snap-pixel-grid" msgstr "Disable snap to pixel" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:207 msgid "workspace.header.menu.disable-snap-ruler-guides" msgstr "Disable snap to ruler guides" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:239 msgid "workspace.header.menu.enable-dynamic-alignment" msgstr "Enable dynamic alignment" +#: src/app/main/ui/workspace/main_menu.cljs:193 msgid "workspace.header.menu.enable-scale-content" msgstr "Enable proportional scale" #: src/app/main/ui/workspace/header.cljs +#, unused msgid "workspace.header.menu.enable-scale-text" msgstr "Enable scale text" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:224 msgid "workspace.header.menu.enable-snap-guides" msgstr "Snap to guides" +#: src/app/main/ui/workspace/main_menu.cljs:254 msgid "workspace.header.menu.enable-snap-pixel-grid" msgstr "Enable snap to pixel" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:208 msgid "workspace.header.menu.enable-snap-ruler-guides" msgstr "Snap to ruler guides" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:382 msgid "workspace.header.menu.hide-artboard-names" msgstr "Hide board names" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:336 msgid "workspace.header.menu.hide-guides" msgstr "Hide guides" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:353 msgid "workspace.header.menu.hide-palette" msgstr "Hide color palette" +#: src/app/main/ui/workspace/main_menu.cljs:394 msgid "workspace.header.menu.hide-pixel-grid" msgstr "Hide pixel grid" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:320 msgid "workspace.header.menu.hide-rules" msgstr "Hide rulers" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:367 msgid "workspace.header.menu.hide-textpalette" msgstr "Hide fonts palette" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:731 msgid "workspace.header.menu.option.edit" msgstr "Edit" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:720 msgid "workspace.header.menu.option.file" msgstr "File" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:777 msgid "workspace.header.menu.option.help-info" msgstr "Help & info" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:753 msgid "workspace.header.menu.option.preferences" msgstr "Preferences" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:742 msgid "workspace.header.menu.option.view" msgstr "View" +#: src/app/main/ui/workspace/main_menu.cljs:459 msgid "workspace.header.menu.redo" msgstr "Redo" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:432 msgid "workspace.header.menu.select-all" msgstr "Select all" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:383 msgid "workspace.header.menu.show-artboard-names" msgstr "Show boards names" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:337 msgid "workspace.header.menu.show-guides" msgstr "Show guides" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:354 msgid "workspace.header.menu.show-palette" msgstr "Show color palette" +#: src/app/main/ui/workspace/main_menu.cljs:395 msgid "workspace.header.menu.show-pixel-grid" msgstr "Show pixel grid" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:321 msgid "workspace.header.menu.show-rules" msgstr "Show rulers" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:368 msgid "workspace.header.menu.show-textpalette" msgstr "Show fonts palette" +#: src/app/main/ui/workspace/main_menu.cljs:279 msgid "workspace.header.menu.toggle-dark-theme" msgstr "Switch to dark theme" +#: src/app/main/ui/workspace/main_menu.cljs:278 msgid "workspace.header.menu.toggle-light-theme" msgstr "Switch to light theme" +#: src/app/main/ui/workspace/main_menu.cljs:446 msgid "workspace.header.menu.undo" msgstr "Undo" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/viewer/header.cljs:98, src/app/main/ui/workspace/right_header.cljs:120 msgid "workspace.header.reset-zoom" msgstr "Reset" #: src/app/main/ui/workspace/header.cljs +#, unused msgid "workspace.header.save-error" msgstr "Error on saving" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/right_header.cljs:52 msgid "workspace.header.saved" msgstr "Saved" #: src/app/main/ui/workspace/header.cljs +#, unused msgid "workspace.header.saving" msgstr "Saving" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/right_header.cljs:42, src/app/main/ui/workspace/right_header.cljs:47 msgid "workspace.header.unsaved" msgstr "Unsaved changes" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/right_header.cljs:239 msgid "workspace.header.viewer" msgstr "View mode (%s)" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/viewer/header.cljs:79, src/app/main/ui/workspace/right_header.cljs:103 msgid "workspace.header.zoom" msgstr "Zoom" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/viewer/header.cljs:109 msgid "workspace.header.zoom-fill" msgstr "Fill - Scale to fill" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/viewer/header.cljs:102 msgid "workspace.header.zoom-fit" msgstr "Fit - Scale down to fit" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/right_header.cljs:123 msgid "workspace.header.zoom-fit-all" msgstr "Zoom to fit all" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/viewer/header.cljs:116 msgid "workspace.header.zoom-full-screen" msgstr "Full screen" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/right_header.cljs:130 msgid "workspace.header.zoom-selected" msgstr "Zoom to selected" +#: src/app/main/ui/workspace/sidebar/options/menus/grid_cell.cljs:273, src/app/main/ui/workspace/sidebar/options/menus/grid_cell.cljs:275, src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:612 msgid "workspace.layout_grid.editor.options.edit-grid" msgstr "Edit grid" +#: src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:1280 msgid "workspace.layout_grid.editor.options.exit" msgstr "Exit" +#: src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:483 msgid "workspace.layout_grid.editor.padding.expand" msgstr "Show 4 sided padding options" +#: src/app/main/ui/workspace/viewport/grid_layout_editor.cljs:59 msgid "workspace.layout_grid.editor.title" msgstr "Editing grid" +#: src/app/main/ui/workspace/viewport/grid_layout_editor.cljs:65 msgid "workspace.layout_grid.editor.top-bar.done" msgstr "Done" +#: src/app/main/ui/workspace/viewport/grid_layout_editor.cljs:62 msgid "workspace.layout_grid.editor.top-bar.locate" msgstr "Locate" +#: src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:1306 msgid "workspace.layout_grid.editor.top-bar.locate.tooltip" msgstr "Locate grid layout" #: src/app/main/ui/workspace/libraries.cljs +#, unused msgid "workspace.libraries.add" msgstr "Add" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:80, src/app/main/ui/workspace/libraries.cljs:99 msgid "workspace.libraries.colors" msgstr "%s colors" -#: src/app/main/ui/workspace/colorpalette.cljs +#: src/app/main/ui/workspace/color_palette.cljs:126 msgid "workspace.libraries.colors.empty-palette" msgstr "There are no color styles in your library yet" -#: src/app/main/ui/workspace/textpalette.cljs +#: src/app/main/ui/workspace/text_palette.cljs:150 msgid "workspace.libraries.colors.empty-typography-palette" msgstr "There are no typography styles in your library yet" -#: src/app/main/ui/workspace/colorpicker/libraries.cljs, src/app/main/ui/workspace/colorpalette.cljs +#: src/app/main/ui/workspace/color_palette_ctx_menu.cljs:60, src/app/main/ui/workspace/colorpicker/libraries.cljs:73, src/app/main/ui/workspace/text_palette_ctx_menu.cljs:50 msgid "workspace.libraries.colors.file-library" msgstr "File library" #: src/app/main/ui/workspace/colorpicker.cljs +#, unused msgid "workspace.libraries.colors.hsv" msgstr "HSV" -#: src/app/main/ui/workspace/colorpicker/libraries.cljs, src/app/main/ui/workspace/colorpalette.cljs +#: src/app/main/ui/workspace/color_palette_ctx_menu.cljs:82, src/app/main/ui/workspace/colorpicker/libraries.cljs:72 msgid "workspace.libraries.colors.recent-colors" msgstr "Recent colors" #: src/app/main/ui/workspace/colorpicker.cljs +#, unused msgid "workspace.libraries.colors.rgb-complementary" msgstr "RGB Complementary" #: src/app/main/ui/workspace/colorpicker.cljs +#, unused msgid "workspace.libraries.colors.rgba" msgstr "RGBA" -#: src/app/main/ui/workspace/colorpicker.cljs +#: src/app/main/ui/workspace/colorpicker.cljs:372 msgid "workspace.libraries.colors.save-color" msgstr "Save color style" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:74, src/app/main/ui/workspace/libraries.cljs:91 msgid "workspace.libraries.components" msgstr "%s components" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:215 msgid "workspace.libraries.file-library" msgstr "File library" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:77, src/app/main/ui/workspace/libraries.cljs:95 msgid "workspace.libraries.graphics" msgstr "%s graphics" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:209 msgid "workspace.libraries.in-this-file" msgstr "LIBRARIES IN THIS FILE" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:526, src/app/main/ui/workspace/libraries.cljs:531 msgid "workspace.libraries.libraries" msgstr "LIBRARIES" #: src/app/main/ui/workspace/libraries.cljs +#, unused msgid "workspace.libraries.library" msgstr "LIBRARY" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:382 msgid "workspace.libraries.library-updates" msgstr "LIBRARY UPDATES" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:290 msgid "workspace.libraries.loading" msgstr "Loading…" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:380 msgid "workspace.libraries.no-libraries-need-sync" msgstr "There are no Shared Libraries that need update" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:299 msgid "workspace.libraries.no-matches-for" msgstr "No matches found for “%s“" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:296 msgid "workspace.libraries.no-shared-libraries-available" msgstr "There are no Shared Libraries available" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:260 msgid "workspace.libraries.search-shared-libraries" msgstr "Search shared libraries" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:256 msgid "workspace.libraries.shared-libraries" msgstr "SHARED LIBRARIES" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:282 msgid "workspace.libraries.shared-library-btn" msgstr "Connect library" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:308 msgid "workspace.libraries.text.multiple-typography" msgstr "Multiple typographies" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:311 msgid "workspace.libraries.text.multiple-typography-tooltip" msgstr "Unlink all typographies" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:83, src/app/main/ui/workspace/libraries.cljs:103 msgid "workspace.libraries.typography" msgstr "%s typographies" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:249 msgid "workspace.libraries.unlink-library-btn" msgstr "Disconnect library" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:402 msgid "workspace.libraries.update" msgstr "Update" -#: src/app/main/data/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:477 msgid "workspace.libraries.update.see-all-changes" msgstr "see all changes" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:536 msgid "workspace.libraries.updates" msgstr "UPDATES" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:737 msgid "workspace.options.add-interaction" msgstr "Click the + button to add interactions." -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:86, src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:102 msgid "workspace.options.blur-options.title" msgstr "Blur" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:85 msgid "workspace.options.blur-options.title.group" msgstr "Group blur" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:84 msgid "workspace.options.blur-options.title.multiple" msgstr "Selection blur" -#: src/app/main/ui/workspace/sidebar/options/page.cljs +#: src/app/main/ui/workspace/sidebar/options/page.cljs:32, src/app/main/ui/workspace/sidebar/options/page.cljs:39 msgid "workspace.options.canvas-background" msgstr "Canvas background" +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:548 msgid "workspace.options.clip-content" msgstr "Clip content" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:600, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:605 msgid "workspace.options.component" msgstr "Component" +#: src/app/main/ui/viewer/inspect/annotation.cljs:19, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:181 msgid "workspace.options.component.annotation" msgstr "Annotation" +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:610 msgid "workspace.options.component.copy" msgstr "Copy" +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:173 msgid "workspace.options.component.create-annotation" msgstr "Create an annotation" +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:172 msgid "workspace.options.component.edit-annotation" msgstr "Edit an annotation" +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:609 msgid "workspace.options.component.main" msgstr "Main" +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:427 msgid "workspace.options.component.swap" msgstr "Swap component" +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:471 msgid "workspace.options.component.swap.empty" msgstr "There are no assets in this library yet" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:163 msgid "workspace.options.constraints" msgstr "Constraints" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:150 msgid "workspace.options.constraints.bottom" msgstr "Bottom" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:141, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:152 msgid "workspace.options.constraints.center" msgstr "Center" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:229 msgid "workspace.options.constraints.fix-when-scrolling" msgstr "Fix when scrolling" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:138 msgid "workspace.options.constraints.left" msgstr "Left" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:140 msgid "workspace.options.constraints.leftright" msgstr "Left & Right" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:139 msgid "workspace.options.constraints.right" msgstr "Right" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:142, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:153 msgid "workspace.options.constraints.scale" msgstr "Scale" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:149 msgid "workspace.options.constraints.top" msgstr "Top" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:151 msgid "workspace.options.constraints.topbottom" msgstr "Top & Bottom" -#: src/app/main/ui/workspace/sidebar/options.cljs +#: src/app/main/ui/workspace/sidebar/options.cljs:112 msgid "workspace.options.design" msgstr "Design" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs +#: src/app/main/ui/viewer/inspect/exports.cljs:139 msgid "workspace.options.export" msgstr "Export" #: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs +#, unused msgid "workspace.options.export-multiple" msgstr "Export selection" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs +#: src/app/main/ui/viewer/inspect/exports.cljs:195, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:237 msgid "workspace.options.export-object" msgid_plural "workspace.options.export-object" msgstr[0] "Export 1 element" msgstr[1] "Export %s elements" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs +#: src/app/main/ui/viewer/inspect/exports.cljs:178, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:219 msgid "workspace.options.export.suffix" msgstr "Suffix" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs, src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/export.cljs:240 msgid "workspace.options.exporting-complete" msgstr "Export complete" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs, src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/export.cljs:172, src/app/main/ui/export.cljs:241, src/app/main/ui/viewer/inspect/exports.cljs:194, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:236 msgid "workspace.options.exporting-object" msgstr "Exporting…" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs, src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/export.cljs:239 msgid "workspace.options.exporting-object-error" msgstr "Export failed" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs, src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/export.cljs:242 msgid "workspace.options.exporting-object-slow" msgstr "Export unexpectedly slow" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:49, src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:174 msgid "workspace.options.fill" msgstr "Fill" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:178 msgid "workspace.options.flows.add-flow-start" msgstr "Add flow start" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:174 msgid "workspace.options.flows.flow" msgstr "Flow" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#, unused msgid "workspace.options.flows.flow-start" msgstr "Flow start" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:161 msgid "workspace.options.flows.flow-starts" msgstr "Flow starts" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:29 msgid "workspace.options.grid.auto" msgstr "Auto" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:157 msgid "workspace.options.grid.column" msgstr "Columns" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused msgid "workspace.options.grid.grid-title" msgstr "Grid" +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:196, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:237 msgid "workspace.options.grid.params.color" msgstr "Color" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused msgid "workspace.options.grid.params.columns" msgstr "Columns" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:259 msgid "workspace.options.grid.params.gutter" msgstr "Gutter" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:246 msgid "workspace.options.grid.params.height" msgstr "Height" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:270 msgid "workspace.options.grid.params.margin" msgstr "Margin" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused msgid "workspace.options.grid.params.rows" msgstr "Rows" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:216, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:290 msgid "workspace.options.grid.params.set-default" msgstr "Set as default" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused msgid "workspace.options.grid.params.size" msgstr "Size" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused msgid "workspace.options.grid.params.type" msgstr "Type" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:231 msgid "workspace.options.grid.params.type.bottom" msgstr "Bottom" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:229 msgid "workspace.options.grid.params.type.center" msgstr "Center" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:228 msgid "workspace.options.grid.params.type.left" msgstr "Left" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:232 msgid "workspace.options.grid.params.type.right" msgstr "Right" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:225 msgid "workspace.options.grid.params.type.stretch" msgstr "Stretch" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:227 msgid "workspace.options.grid.params.type.top" msgstr "Top" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:211, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:288 msgid "workspace.options.grid.params.use-default" msgstr "Use default" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:247 msgid "workspace.options.grid.params.width" msgstr "Width" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:158 msgid "workspace.options.grid.row" msgstr "Rows" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:156 msgid "workspace.options.grid.square" msgstr "Square" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:48 msgid "workspace.options.group-fill" msgstr "Group fill" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:42 msgid "workspace.options.group-stroke" msgstr "Group stroke" +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:310 msgid "workspace.options.guides.title" msgstr "Guides" +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:406 msgid "workspace.options.height" msgstr "Height" +#: src/app/main/ui/workspace/sidebar/options.cljs:161 msgid "workspace.options.inspect" msgstr "Inspect" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:468 msgid "workspace.options.interaction-action" msgstr "Action" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:41, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:367 msgid "workspace.options.interaction-after-delay" msgstr "After delay" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:614 msgid "workspace.options.interaction-animation" msgstr "Animation" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:406 msgid "workspace.options.interaction-animation-dissolve" msgstr "Dissolve" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:405 msgid "workspace.options.interaction-animation-none" msgstr "None" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:412 msgid "workspace.options.interaction-animation-push" msgstr "Push" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:407 msgid "workspace.options.interaction-animation-slide" msgstr "Slide" +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:391 msgid "workspace.options.interaction-auto" msgstr "auto" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:604 msgid "workspace.options.interaction-background" msgstr "Add background overlay" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:590 msgid "workspace.options.interaction-close-outside" msgstr "Close when clicking outside" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:372 msgid "workspace.options.interaction-close-overlay" msgstr "Close overlay" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:56 msgid "workspace.options.interaction-close-overlay-dest" msgstr "Close overlay: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:456 msgid "workspace.options.interaction-delay" msgstr "Delay" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:478 msgid "workspace.options.interaction-destination" msgstr "Destination" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:661 msgid "workspace.options.interaction-duration" msgstr "Duration" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:674 msgid "workspace.options.interaction-easing" msgstr "Easing" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:416 msgid "workspace.options.interaction-easing-ease" msgstr "Ease" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:417 msgid "workspace.options.interaction-easing-ease-in" msgstr "Ease in" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:419 msgid "workspace.options.interaction-easing-ease-in-out" msgstr "Ease in out" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:418 msgid "workspace.options.interaction-easing-ease-out" msgstr "Ease out" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:415 msgid "workspace.options.interaction-easing-linear" msgstr "Linear" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#, unused msgid "workspace.options.interaction-in" msgstr "In" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:39, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:364 msgid "workspace.options.interaction-mouse-enter" msgstr "Mouse enter" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:40, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:365 msgid "workspace.options.interaction-mouse-leave" msgstr "Mouse leave" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:458, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:459, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:464, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:663, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:665, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:669 msgid "workspace.options.interaction-ms" msgstr "ms" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:369 msgid "workspace.options.interaction-navigate-to" msgstr "Navigate to" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:50 msgid "workspace.options.interaction-navigate-to-dest" msgstr "Navigate to: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:51, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:53, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:55, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:380 msgid "workspace.options.interaction-none" msgstr "(not set)" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:691 msgid "workspace.options.interaction-offset-effect" msgstr "Offset effect" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:35, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:360 msgid "workspace.options.interaction-on-click" msgstr "On Click" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:370 msgid "workspace.options.interaction-open-overlay" msgstr "Open overlay" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:52 msgid "workspace.options.interaction-open-overlay-dest" msgstr "Open overlay: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:59, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:374 msgid "workspace.options.interaction-open-url" msgstr "Open URL" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#, unused msgid "workspace.options.interaction-out" msgstr "Out" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:403 msgid "workspace.options.interaction-pos-bottom-center" msgstr "Bottom center" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:401 msgid "workspace.options.interaction-pos-bottom-left" msgstr "Bottom left" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:402 msgid "workspace.options.interaction-pos-bottom-right" msgstr "Bottom right" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:397 msgid "workspace.options.interaction-pos-center" msgstr "Center" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:396 msgid "workspace.options.interaction-pos-manual" msgstr "Manual" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:400 msgid "workspace.options.interaction-pos-top-center" msgstr "Top center" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:398 msgid "workspace.options.interaction-pos-top-left" msgstr "Top left" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:399 msgid "workspace.options.interaction-pos-top-right" msgstr "Top right" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:524 msgid "workspace.options.interaction-position" msgstr "Position" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:494 msgid "workspace.options.interaction-preserve-scroll" msgstr "Preserve scroll position" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:58, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:373 msgid "workspace.options.interaction-prev-screen" msgstr "Previous screen" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:515 msgid "workspace.options.interaction-relative-to" msgstr "Relative to" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:57, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:379, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:393, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:394 msgid "workspace.options.interaction-self" msgstr "self" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:371 msgid "workspace.options.interaction-toggle-overlay" msgstr "Toggle overlay" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:54 msgid "workspace.options.interaction-toggle-overlay-dest" msgstr "Toggle overlay: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:445 msgid "workspace.options.interaction-trigger" msgstr "Trigger" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:503 msgid "workspace.options.interaction-url" msgstr "URL" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:37, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:362 msgid "workspace.options.interaction-while-hovering" msgstr "While Hovering" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:38, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:363 msgid "workspace.options.interaction-while-pressing" msgstr "While Pressing" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:724 msgid "workspace.options.interactions" msgstr "Interactions" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:137 msgid "workspace.options.layer-options.blend-mode.color" msgstr "Color" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:126 msgid "workspace.options.layer-options.blend-mode.color-burn" msgstr "Color burn" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:129 msgid "workspace.options.layer-options.blend-mode.color-dodge" msgstr "Color dodge" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:124 msgid "workspace.options.layer-options.blend-mode.darken" msgstr "Darken" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:133 msgid "workspace.options.layer-options.blend-mode.difference" msgstr "Difference" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:134 msgid "workspace.options.layer-options.blend-mode.exclusion" msgstr "Exclusion" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:132 msgid "workspace.options.layer-options.blend-mode.hard-light" msgstr "Hard light" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:135 msgid "workspace.options.layer-options.blend-mode.hue" msgstr "Hue" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:127 msgid "workspace.options.layer-options.blend-mode.lighten" msgstr "Lighten" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:138 msgid "workspace.options.layer-options.blend-mode.luminosity" msgstr "Luminosity" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:125 msgid "workspace.options.layer-options.blend-mode.multiply" msgstr "Multiply" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:123 msgid "workspace.options.layer-options.blend-mode.normal" msgstr "Normal" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:130 msgid "workspace.options.layer-options.blend-mode.overlay" msgstr "Overlay" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:136 msgid "workspace.options.layer-options.blend-mode.saturation" msgstr "Saturation" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:128 msgid "workspace.options.layer-options.blend-mode.screen" msgstr "Screen" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:131 msgid "workspace.options.layer-options.blend-mode.soft-light" msgstr "Soft light" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#, unused msgid "workspace.options.layer-options.title" msgstr "Layer" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#, unused msgid "workspace.options.layer-options.title.group" msgstr "Group layers" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#, unused msgid "workspace.options.layer-options.title.multiple" msgstr "Selected layers" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout-item.advanced-ops" msgstr "Advanced options" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:564 msgid "workspace.options.layout-item.layout-item-max-h" msgstr "Max.Height" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:531 msgid "workspace.options.layout-item.layout-item-max-w" msgstr "Max.Width" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:548 msgid "workspace.options.layout-item.layout-item-min-h" msgstr "Min.Height" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:515 msgid "workspace.options.layout-item.layout-item-min-w" msgstr "Min.Width" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout-item.title.layout-item-max-h" msgstr "Maximum height" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout-item.title.layout-item-max-w" msgstr "Maximum width" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout-item.title.layout-item-min-h" msgstr "Minimum height" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout-item.title.layout-item-min-w" msgstr "Minimum width" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.bottom" msgstr "Bottom" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.direction.column" msgstr "Column" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.direction.column-reverse" msgstr "Reverse column" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.direction.row" msgstr "Row" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.direction.row-reverse" msgstr "Reverse row" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.gap" msgstr "Gap" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.left" msgstr "Left" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout.margin" msgstr "Margin" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout.margin-all" msgstr "All sides" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout.margin-simple" msgstr "Simple margin" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.packed" msgstr "packed" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.padding" msgstr "Padding" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.padding-all" msgstr "All sides" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.padding-simple" msgstr "Simple padding" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.right" msgstr "Right" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.space-around" msgstr "space around" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.space-between" msgstr "space between" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.top" msgstr "Top" -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:146 msgid "workspace.options.more-colors" msgstr "More colors" -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:123 msgid "workspace.options.more-lib-colors" msgstr "More library colors" +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:161 msgid "workspace.options.opacity" msgstr "Opacity" #: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#, unused msgid "workspace.options.position" msgstr "Position" -#: src/app/main/ui/workspace/sidebar/options.cljs +#: src/app/main/ui/workspace/sidebar/options.cljs:157 msgid "workspace.options.prototype" msgstr "Prototype" +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:469, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:481 msgid "workspace.options.radius" msgstr "Radius" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:513 msgid "workspace.options.radius-bottom-left" msgstr "Bottom left" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:522 msgid "workspace.options.radius-bottom-right" msgstr "Bottom right" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:495 msgid "workspace.options.radius-top-left" msgstr "Top left" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:504 msgid "workspace.options.radius-top-right" msgstr "Top right" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:532 msgid "workspace.options.radius.all-corners" msgstr "All corners" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:533 msgid "workspace.options.radius.single-corners" msgstr "Independent corners" +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:183 msgid "workspace.options.recent-fonts" msgstr "Recent" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs, src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/export.cljs:284 msgid "workspace.options.retry" msgstr "Retry" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:451 msgid "workspace.options.rotation" msgstr "Rotation" +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:180 msgid "workspace.options.search-font" msgstr "Search font" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:741 msgid "workspace.options.select-a-shape" msgstr "Select a shape, board or group to drag a connection to other board." -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:105 msgid "workspace.options.selection-color" msgstr "Selected colors" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:47 msgid "workspace.options.selection-fill" msgstr "Selection fill" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:41 msgid "workspace.options.selection-stroke" msgstr "Selection stroke" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:40, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:198, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:200 msgid "workspace.options.shadow-options.blur" msgstr "Blur" +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:238 msgid "workspace.options.shadow-options.color" msgstr "Shadow color" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:144 msgid "workspace.options.shadow-options.drop-shadow" msgstr "Drop shadow" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:145 msgid "workspace.options.shadow-options.inner-shadow" msgstr "Inner shadow" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:38, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:186 msgid "workspace.options.shadow-options.offsetx" msgstr "X" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:39, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:224 msgid "workspace.options.shadow-options.offsety" msgstr "Y" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:41, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:211, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:213 msgid "workspace.options.shadow-options.spread" msgstr "Spread" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:296 msgid "workspace.options.shadow-options.title" msgstr "Shadow" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:295 msgid "workspace.options.shadow-options.title.group" msgstr "Group shadow" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:294 msgid "workspace.options.shadow-options.title.multiple" msgstr "Selection shadows" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:193 msgid "workspace.options.show-fill-on-export" msgstr "Show in exports" +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:562 msgid "workspace.options.show-in-viewer" msgstr "Show in view mode" -#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:162 msgid "workspace.options.size" msgstr "Size" -#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:355 msgid "workspace.options.size-presets" msgstr "Size presets" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:43 msgid "workspace.options.stroke" msgstr "Stroke" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#, unused msgid "workspace.options.stroke-cap.circle-marker" msgstr "Circle marker" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:129 msgid "workspace.options.stroke-cap.circle-marker-short" msgstr "Circle" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#, unused msgid "workspace.options.stroke-cap.diamond-marker" msgstr "Diamond marker" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:130 msgid "workspace.options.stroke-cap.diamond-marker-short" msgstr "Diamond" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#, unused msgid "workspace.options.stroke-cap.line-arrow" msgstr "Line arrow" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:126 msgid "workspace.options.stroke-cap.line-arrow-short" msgstr "Arrow" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:124 msgid "workspace.options.stroke-cap.none" msgstr "None" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:132 msgid "workspace.options.stroke-cap.round" msgstr "Round" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:133 msgid "workspace.options.stroke-cap.square" msgstr "Square" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#, unused msgid "workspace.options.stroke-cap.square-marker" msgstr "Square marker" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:128 msgid "workspace.options.stroke-cap.square-marker-short" msgstr "Rectangle" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#, unused msgid "workspace.options.stroke-cap.triangle-arrow" msgstr "Triangle arrow" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:127 msgid "workspace.options.stroke-cap.triangle-arrow-short" msgstr "Triangle" +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:192 msgid "workspace.options.stroke-color" msgstr "Stroke color" +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:165 msgid "workspace.options.stroke-width" msgstr "Stroke width" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:87 msgid "workspace.options.stroke.center" msgstr "Center" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:105 msgid "workspace.options.stroke.dashed" msgstr "Dashed" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:104 msgid "workspace.options.stroke.dotted" msgstr "Dotted" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:88 msgid "workspace.options.stroke.inner" msgstr "Inside" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:106 msgid "workspace.options.stroke.mixed" msgstr "Mixed" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:89 msgid "workspace.options.stroke.outer" msgstr "Outside" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:103 msgid "workspace.options.stroke.solid" msgstr "Solid" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:115 msgid "workspace.options.text-options.align-bottom" msgstr "Align bottom" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:111 msgid "workspace.options.text-options.align-middle" msgstr "Align middle" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:107 msgid "workspace.options.text-options.align-top" msgstr "Align top" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:82 msgid "workspace.options.text-options.direction-ltr" msgstr "LTR" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:87 msgid "workspace.options.text-options.direction-rtl" msgstr "RTL" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:149 msgid "workspace.options.text-options.grow-auto-height" msgstr "Auto height" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:145 msgid "workspace.options.text-options.grow-auto-width" msgstr "Auto width" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:141 msgid "workspace.options.text-options.grow-fixed" msgstr "Fixed" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:381 msgid "workspace.options.text-options.letter-spacing" msgstr "Letter Spacing" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:364 msgid "workspace.options.text-options.line-height" msgstr "Line height" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused msgid "workspace.options.text-options.lowercase" msgstr "Lowercase" #: src/app/main/ui/workspace/sidebar/options/menus/text.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused msgid "workspace.options.text-options.none" msgstr "None" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:176 msgid "workspace.options.text-options.strikethrough" msgstr "Strikethrough (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:51 msgid "workspace.options.text-options.text-align-center" msgstr "Align center (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:59 msgid "workspace.options.text-options.text-align-justify" msgstr "Justify (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:47 msgid "workspace.options.text-options.text-align-left" msgstr "Align left (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:55 msgid "workspace.options.text-options.text-align-right" msgstr "Align right (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:189 msgid "workspace.options.text-options.title" msgstr "Text" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:188 msgid "workspace.options.text-options.title-group" msgstr "Group text" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:187 msgid "workspace.options.text-options.title-selection" msgstr "Selection text" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused msgid "workspace.options.text-options.titlecase" msgstr "Title case" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:171 msgid "workspace.options.text-options.underline" msgstr "Underline (%s)" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused msgid "workspace.options.text-options.uppercase" msgstr "Uppercase" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:745 msgid "workspace.options.use-play-button" msgstr "Use the play button at the header to run the prototype view." +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:395 msgid "workspace.options.width" msgstr "Width" +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:427 msgid "workspace.options.x" msgstr "X axis" +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:438 msgid "workspace.options.y" msgstr "Y axis" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:167 msgid "workspace.path.actions.add-node" msgstr "Add node (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:174 msgid "workspace.path.actions.delete-node" msgstr "Delete node (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:152 msgid "workspace.path.actions.draw-nodes" msgstr "Draw nodes (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:189 msgid "workspace.path.actions.join-nodes" msgstr "Join nodes (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:204 msgid "workspace.path.actions.make-corner" msgstr "To corner (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:211 msgid "workspace.path.actions.make-curve" msgstr "To curve (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:182 msgid "workspace.path.actions.merge-nodes" msgstr "Merge nodes (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:159 msgid "workspace.path.actions.move-nodes" msgstr "Move nodes (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:196 msgid "workspace.path.actions.separate-nodes" msgstr "Separate nodes (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:218 msgid "workspace.path.actions.snap-nodes" msgstr "Snap nodes (%s)" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/plugins.cljs:55 +msgid "workspace.plugins.button-open" +msgstr "Open" + +#: src/app/main/ui/workspace/plugins.cljs:164 +msgid "workspace.plugins.empty-plugins" +msgstr "No plugins installed yet" + +#: src/app/main/ui/workspace/plugins.cljs:157 +msgid "workspace.plugins.error.url" +msgstr "The plugin doesn't exist or the URL is not correct." + +#: src/app/main/ui/workspace/plugins.cljs:153 +msgid "workspace.plugins.install" +msgstr "Install" + +#: src/app/main/ui/workspace/plugins.cljs:170 +msgid "workspace.plugins.installed-plugins" +msgstr "Installed plugins" + +#: src/app/main/ui/workspace/main_menu.cljs:624 +msgid "workspace.plugins.menu.plugins-manager" +msgstr "Plugins manager" + +#: src/app/main/ui/workspace/main_menu.cljs:765 +msgid "workspace.plugins.menu.title" +msgstr "Plugins" + +#: src/app/main/ui/workspace/plugins.cljs:218 +msgid "workspace.plugins.permissions.content-read" +msgstr "Read the content of files that users have access to." + +#: src/app/main/ui/workspace/plugins.cljs:224 +msgid "workspace.plugins.permissions.content-write" +msgstr "Read and modify the content of files that users have access to." + +#: src/app/main/ui/workspace/plugins.cljs:212 +msgid "workspace.plugins.permissions.disclaimer" +msgstr "Note that this plugin has been created by an external party." + +#: src/app/main/ui/workspace/plugins.cljs:236 +msgid "workspace.plugins.permissions.library-read" +msgstr "Read your libraries and assets." + +#: src/app/main/ui/workspace/plugins.cljs:239 +msgid "workspace.plugins.permissions.library-write" +msgstr "Read and modify your libraries and assets." + +#: src/app/main/ui/workspace/plugins.cljs:204 +msgid "workspace.plugins.permissions.title" +msgstr "THIS PLUGIN WANTS ACCESS TO:" + +#: src/app/main/ui/workspace/plugins.cljs:230 +msgid "workspace.plugins.permissions.user-read" +msgstr "Read the profile information of the current user." + +#: src/app/main/ui/workspace/plugins.cljs:166 +msgid "workspace.plugins.plugin-list-link" +msgstr "Plugins List" + +#: src/app/main/ui/workspace/plugins.cljs:149 +msgid "workspace.plugins.search-placeholder" +msgstr "Write a plugin URL" + +#, unused +msgid "workspace.plugins.success" +msgstr "Plugin correctly loaded." + +#: src/app/main/ui/workspace/plugins.cljs:143 +msgid "workspace.plugins.title" +msgstr "Plugins" + +#: src/app/main/ui/workspace/context_menu.cljs:441 msgid "workspace.shape.menu.add-flex" msgstr "Add flex layout" +#: src/app/main/ui/workspace/context_menu.cljs:445 msgid "workspace.shape.menu.add-grid" msgstr "Add grid layout" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:193 msgid "workspace.shape.menu.back" msgstr "Send to back" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:190 msgid "workspace.shape.menu.backward" msgstr "Send backward" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:139 msgid "workspace.shape.menu.copy" msgstr "Copy" +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:427 msgid "workspace.shape.menu.create-annotation" msgstr "Create annotation" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:275 msgid "workspace.shape.menu.create-artboard-from-selection" msgstr "Selection to board" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:465 msgid "workspace.shape.menu.create-component" msgstr "Create component" +#: src/app/main/ui/workspace/context_menu.cljs:469 msgid "workspace.shape.menu.create-multiple-components" msgstr "Create multiple components" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:142 msgid "workspace.shape.menu.cut" msgstr "Cut" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:486 msgid "workspace.shape.menu.delete" msgstr "Delete" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:391 msgid "workspace.shape.menu.delete-flow-start" msgstr "Delete flow start" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:432 msgid "workspace.shape.menu.detach-instance" msgstr "Detach instance" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:431 msgid "workspace.shape.menu.detach-instances-in-bulk" msgstr "Detach instances" +#: src/app/main/ui/workspace/context_menu.cljs:335, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:75 msgid "workspace.shape.menu.difference" msgstr "Difference" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:148 msgid "workspace.shape.menu.duplicate" msgstr "Duplicate" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:321 msgid "workspace.shape.menu.edit" msgstr "Edit" +#: src/app/main/ui/workspace/context_menu.cljs:341 msgid "workspace.shape.menu.exclude" msgstr "Exclude" +#: src/app/main/ui/workspace/context_menu.cljs:348, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:89 msgid "workspace.shape.menu.flatten" msgstr "Flatten" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:208 msgid "workspace.shape.menu.flip-horizontal" msgstr "Flip horizontal" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:204 msgid "workspace.shape.menu.flip-vertical" msgstr "Flip vertical" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:394 msgid "workspace.shape.menu.flow-start" msgstr "Flow start" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:184 msgid "workspace.shape.menu.forward" msgstr "Bring forward" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:187 msgid "workspace.shape.menu.front" msgstr "Bring to front" #: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#, unused msgid "workspace.shape.menu.go-main" msgstr "Go to main component file" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:261 msgid "workspace.shape.menu.group" msgstr "Group" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:363, src/app/main/ui/workspace/sidebar/layer_item.cljs:145 msgid "workspace.shape.menu.hide" msgstr "Hide" +#: src/app/main/ui/workspace/context_menu.cljs:548, src/app/main/ui/workspace/main_menu.cljs:408 msgid "workspace.shape.menu.hide-ui" msgstr "Show / Hide UI" +#: src/app/main/ui/workspace/context_menu.cljs:338 msgid "workspace.shape.menu.intersection" msgstr "Intersection" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:371, src/app/main/ui/workspace/sidebar/layer_item.cljs:153 msgid "workspace.shape.menu.lock" msgstr "Lock" -#: src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:266 msgid "workspace.shape.menu.mask" msgstr "Mask" -#: src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:145, src/app/main/ui/workspace/context_menu.cljs:545 msgid "workspace.shape.menu.paste" msgstr "Paste" +#: src/app/main/ui/workspace/context_menu.cljs:331 msgid "workspace.shape.menu.path" msgstr "Path" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:432 msgid "workspace.shape.menu.remove-flex" msgstr "Remove flex layout" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:435 msgid "workspace.shape.menu.remove-grid" msgstr "Remove grid layout" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:436 msgid "workspace.shape.menu.reset-overrides" msgstr "Reset overrides" +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:439 msgid "workspace.shape.menu.restore-main" msgstr "Restore main component" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:174 msgid "workspace.shape.menu.select-layer" msgstr "Select layer" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:360, src/app/main/ui/workspace/sidebar/layer_item.cljs:144 msgid "workspace.shape.menu.show" msgstr "Show" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:424 msgid "workspace.shape.menu.show-in-assets" msgstr "Show in assets panel" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:442, src/app/main/ui/workspace/sidebar/assets/components.cljs:586 msgid "workspace.shape.menu.show-main" msgstr "Show main component" +#: src/app/main/ui/workspace/context_menu.cljs:221 msgid "workspace.shape.menu.thumbnail-remove" msgstr "Remove thumbnail" +#: src/app/main/ui/workspace/context_menu.cljs:223 msgid "workspace.shape.menu.thumbnail-set" msgstr "Set as thumbnail" +#: src/app/main/ui/workspace/context_menu.cljs:326 msgid "workspace.shape.menu.transform-to-path" msgstr "Transform to path" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:257 msgid "workspace.shape.menu.ungroup" msgstr "Ungroup" +#: src/app/main/ui/workspace/context_menu.cljs:332, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:70 msgid "workspace.shape.menu.union" msgstr "Union" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:368, src/app/main/ui/workspace/sidebar/layer_item.cljs:152 msgid "workspace.shape.menu.unlock" msgstr "Unlock" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:271 msgid "workspace.shape.menu.unmask" msgstr "Unmask" #: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs +#, unused msgid "workspace.shape.menu.update-components-in-bulk" msgstr "Update main components" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:445 msgid "workspace.shape.menu.update-main" msgstr "Update main component" +#: src/app/main/ui/components/tab_container.cljs:50 msgid "workspace.sidebar.collapse" msgstr "Collapse sidebar" +#: src/app/main/ui/workspace/sidebar/collapsable_button.cljs:26 msgid "workspace.sidebar.expand" msgstr "Expand sidebar" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/right_header.cljs:231, src/app/main/ui/workspace/right_header.cljs:232 msgid "workspace.sidebar.history" msgstr "History (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/sidebar/layers.cljs:522, src/app/main/ui/workspace/sidebar.cljs:100 msgid "workspace.sidebar.layers" msgstr "Layers" +#: src/app/main/ui/workspace/sidebar/layers.cljs:308, src/app/main/ui/workspace/sidebar/layers.cljs:380 msgid "workspace.sidebar.layers.components" msgstr "Components" +#: src/app/main/ui/workspace/sidebar/layers.cljs:305, src/app/main/ui/workspace/sidebar/layers.cljs:338 msgid "workspace.sidebar.layers.frames" msgstr "Boards" +#: src/app/main/ui/workspace/sidebar/layers.cljs:306, src/app/main/ui/workspace/sidebar/layers.cljs:352 msgid "workspace.sidebar.layers.groups" msgstr "Groups" +#: src/app/main/ui/workspace/sidebar/layers.cljs:310, src/app/main/ui/workspace/sidebar/layers.cljs:408 msgid "workspace.sidebar.layers.images" msgstr "Images" +#: src/app/main/ui/workspace/sidebar/layers.cljs:307, src/app/main/ui/workspace/sidebar/layers.cljs:366 msgid "workspace.sidebar.layers.masks" msgstr "Masks" +#: src/app/main/ui/workspace/sidebar/layers.cljs:289 msgid "workspace.sidebar.layers.search" msgstr "Search layers" +#: src/app/main/ui/workspace/sidebar/layers.cljs:311, src/app/main/ui/workspace/sidebar/layers.cljs:422 msgid "workspace.sidebar.layers.shapes" msgstr "Shapes" +#: src/app/main/ui/workspace/sidebar/layers.cljs:309, src/app/main/ui/workspace/sidebar/layers.cljs:394 msgid "workspace.sidebar.layers.texts" msgstr "Texts" -#: src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs, src/app/main/ui/inspect/attributes/svg.cljs +#: src/app/main/ui/viewer/inspect/attributes/svg.cljs:56, src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs:91 msgid "workspace.sidebar.options.svg-attrs.title" msgstr "Imported SVG Attributes" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs +#: src/app/main/ui/workspace/sidebar/sitemap.cljs:217 msgid "workspace.sidebar.sitemap" msgstr "Pages" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/left_header.cljs:91 msgid "workspace.sitemap" msgstr "Sitemap" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/sidebar.cljs:120 msgid "workspace.toolbar.assets" msgstr "Assets" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/palette.cljs:165, src/app/main/ui/workspace/palette.cljs:166 msgid "workspace.toolbar.color-palette" msgstr "Color Palette (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/right_header.cljs:220, src/app/main/ui/workspace/right_header.cljs:221 msgid "workspace.toolbar.comments" msgstr "Comments (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:180, src/app/main/ui/workspace/top_toolbar.cljs:181 msgid "workspace.toolbar.curve" msgstr "Curve (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:160, src/app/main/ui/workspace/top_toolbar.cljs:161 msgid "workspace.toolbar.ellipse" msgstr "Ellipse (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:142, src/app/main/ui/workspace/top_toolbar.cljs:143 msgid "workspace.toolbar.frame" msgstr "Board (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:59, src/app/main/ui/workspace/top_toolbar.cljs:60 msgid "workspace.toolbar.image" msgstr "Image (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:132, src/app/main/ui/workspace/top_toolbar.cljs:133 msgid "workspace.toolbar.move" msgstr "Move (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:189, src/app/main/ui/workspace/top_toolbar.cljs:190 msgid "workspace.toolbar.path" msgstr "Path (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:200, src/app/main/ui/workspace/top_toolbar.cljs:201 +#, fuzzy +msgid "workspace.toolbar.plugins" +msgstr "" + +#: src/app/main/ui/workspace/top_toolbar.cljs:151, src/app/main/ui/workspace/top_toolbar.cljs:152 msgid "workspace.toolbar.rect" msgstr "Rectangle (%s)" #: src/app/main/ui/workspace/left_toolbar.cljs +#, unused msgid "workspace.toolbar.shortcuts" msgstr "Shortcuts (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:169, src/app/main/ui/workspace/top_toolbar.cljs:170 msgid "workspace.toolbar.text" msgstr "Text (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/palette.cljs:173, src/app/main/ui/workspace/palette.cljs:174 msgid "workspace.toolbar.text-palette" msgstr "Typographies (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:216, src/app/main/ui/workspace/top_toolbar.cljs:217 msgid "workspace.toolbar.toggle-toolbar" msgstr "Toggle toolbar" +#: src/app/main/ui/workspace/viewport/top_bar.cljs:38 msgid "workspace.top-bar.read-only.done" msgstr "Done" +#: src/app/main/ui/workspace/viewport/top_bar.cljs:35 #, markdown msgid "workspace.top-bar.view-only" msgstr "**Inspecting code** (View Only)" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:342 msgid "workspace.undo.empty" msgstr "There are no history changes so far" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:147 msgid "workspace.undo.entry.delete" msgstr "Deleted %s" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:146 msgid "workspace.undo.entry.modify" msgstr "Modified %s" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:148 msgid "workspace.undo.entry.move" msgstr "Moved objects" +#: src/app/main/ui/workspace/sidebar/history.cljs:111 msgid "workspace.undo.entry.multiple.circle" msgstr "circles" +#: src/app/main/ui/workspace/sidebar/history.cljs:112 msgid "workspace.undo.entry.multiple.color" msgstr "color assets" +#: src/app/main/ui/workspace/sidebar/history.cljs:113 msgid "workspace.undo.entry.multiple.component" msgstr "components" +#: src/app/main/ui/workspace/sidebar/history.cljs:114 msgid "workspace.undo.entry.multiple.curve" msgstr "curves" +#: src/app/main/ui/workspace/sidebar/history.cljs:115 msgid "workspace.undo.entry.multiple.frame" msgstr "board" +#: src/app/main/ui/workspace/sidebar/history.cljs:116 msgid "workspace.undo.entry.multiple.group" msgstr "groups" +#: src/app/main/ui/workspace/sidebar/history.cljs:117 msgid "workspace.undo.entry.multiple.media" msgstr "graphic assets" +#: src/app/main/ui/workspace/sidebar/history.cljs:118 msgid "workspace.undo.entry.multiple.multiple" msgstr "objects" +#: src/app/main/ui/workspace/sidebar/history.cljs:119 msgid "workspace.undo.entry.multiple.page" msgstr "pages" +#: src/app/main/ui/workspace/sidebar/history.cljs:120 msgid "workspace.undo.entry.multiple.path" msgstr "paths" +#: src/app/main/ui/workspace/sidebar/history.cljs:121 msgid "workspace.undo.entry.multiple.rect" msgstr "rectangles" +#: src/app/main/ui/workspace/sidebar/history.cljs:122 msgid "workspace.undo.entry.multiple.shape" msgstr "shapes" +#: src/app/main/ui/workspace/sidebar/history.cljs:123 msgid "workspace.undo.entry.multiple.text" msgstr "texts" +#: src/app/main/ui/workspace/sidebar/history.cljs:124 msgid "workspace.undo.entry.multiple.typography" msgstr "typography assets" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:145 msgid "workspace.undo.entry.new" msgstr "New %s" +#: src/app/main/ui/workspace/sidebar/history.cljs:125 msgid "workspace.undo.entry.single.circle" msgstr "circle" +#: src/app/main/ui/workspace/sidebar/history.cljs:126 msgid "workspace.undo.entry.single.color" msgstr "color asset" +#: src/app/main/ui/workspace/sidebar/history.cljs:127 msgid "workspace.undo.entry.single.component" msgstr "component" +#: src/app/main/ui/workspace/sidebar/history.cljs:128 msgid "workspace.undo.entry.single.curve" msgstr "curve" +#: src/app/main/ui/workspace/sidebar/history.cljs:129 msgid "workspace.undo.entry.single.frame" msgstr "board" +#: src/app/main/ui/workspace/sidebar/history.cljs:130 msgid "workspace.undo.entry.single.group" msgstr "group" +#: src/app/main/ui/workspace/sidebar/history.cljs:131 msgid "workspace.undo.entry.single.image" msgstr "image" +#: src/app/main/ui/workspace/sidebar/history.cljs:132 msgid "workspace.undo.entry.single.media" msgstr "graphic asset" +#: src/app/main/ui/workspace/sidebar/history.cljs:133 msgid "workspace.undo.entry.single.multiple" msgstr "object" +#: src/app/main/ui/workspace/sidebar/history.cljs:134 msgid "workspace.undo.entry.single.page" msgstr "page" +#: src/app/main/ui/workspace/sidebar/history.cljs:135 msgid "workspace.undo.entry.single.path" msgstr "path" +#: src/app/main/ui/workspace/sidebar/history.cljs:136 msgid "workspace.undo.entry.single.rect" msgstr "rectangle" +#: src/app/main/ui/workspace/sidebar/history.cljs:137 msgid "workspace.undo.entry.single.shape" msgstr "shape" +#: src/app/main/ui/workspace/sidebar/history.cljs:138 msgid "workspace.undo.entry.single.text" msgstr "text" +#: src/app/main/ui/workspace/sidebar/history.cljs:139 msgid "workspace.undo.entry.single.typography" msgstr "typography asset" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:149 msgid "workspace.undo.entry.unknown" msgstr "Operation over %s" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:335 msgid "workspace.undo.title" msgstr "History" -#: src/app/main/data/workspace/libraries.cljs +#: src/app/main/data/workspace/libraries.cljs:1094 msgid "workspace.updates.dismiss" msgstr "Dismiss" -#: src/app/main/data/workspace/libraries.cljs +#: src/app/main/data/workspace/libraries.cljs:1092 msgid "workspace.updates.more-info" msgstr "More info" -#: src/app/main/data/workspace/libraries.cljs +#: src/app/main/data/workspace/libraries.cljs:1090 msgid "workspace.updates.there-are-updates" msgstr "There are updates in shared libraries" -#: src/app/main/data/workspace/libraries.cljs +#: src/app/main/data/workspace/libraries.cljs:1097 msgid "workspace.updates.update" msgstr "Update" +#, unused msgid "workspace.viewport.click-to-close-path" msgstr "Click to close the path" - -msgid "workspace.plugins.title" -msgstr "Plugins" - -msgid "workspace.plugins.search-placeholder" -msgstr "Write a plugin URL" - -msgid "workspace.plugins.install" -msgstr "Install" - -msgid "workspace.plugins.installed-plugins" -msgstr "Installed plugins" - -msgid "workspace.plugins.empty-plugins" -msgstr "No plugins installed yet" - -msgid "workspace.plugins.button-open" -msgstr "Open" - -msgid "workspace.plugins.error.url" -msgstr "The plugin doesn't exist or the URL is not correct." - -msgid "workspace.plugins.success" -msgstr "Plugin correctly loaded." - -msgid "workspace.plugins.menu.title" -msgstr "Plugins" - -msgid "workspace.plugins.menu.plugins-manager" -msgstr "Plugins manager" - -msgid "workspace.plugins.plugin-list-link" -msgstr "Plugins List" - -msgid "workspace.plugins.permissions.title" -msgstr "THIS PLUGIN WANTS ACCESS TO:" - -msgid "workspace.plugins.permissions.disclaimer" -msgstr "Note that this plugin has been created by an external party." - -msgid "workspace.plugins.permissions.content-read" -msgstr "Read the content of files that users have access to." - -msgid "workspace.plugins.permissions.content-write" -msgstr "Read and modify the content of files that users have access to." - -msgid "workspace.plugins.permissions.user-read" -msgstr "Read the profile information of the current user." - -msgid "workspace.plugins.permissions.library-read" -msgstr "Read your libraries and assets." - -msgid "workspace.plugins.permissions.library-write" -msgstr "Read and modify your libraries and assets." diff --git a/frontend/translations/es.po b/frontend/translations/es.po index 187c38f822..c3995ec7b4 100644 --- a/frontend/translations/es.po +++ b/frontend/translations/es.po @@ -11,516 +11,565 @@ msgstr "" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 5.5.1\n" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:151, src/app/main/ui/viewer/login.cljs:104 msgid "auth.already-have-account" msgstr "¿Tienes ya una cuenta?" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:296 +msgid "auth.check-mail" +msgstr "Comprueba tu correo" + +#: src/app/main/ui/auth/register.cljs:299 msgid "auth.check-your-email" msgstr "" "Comprueba tu email y haz click en el link de verificación para comenzar a " "usar Penpot." -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:78 msgid "auth.confirm-password" msgstr "Confirmar contraseña" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/register.cljs:163 msgid "auth.create-demo-account" msgstr "Crear cuenta de prueba" #: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#, unused msgid "auth.create-demo-profile" msgstr "¿Quieres probar?" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/login.cljs:43 msgid "auth.demo-warning" msgstr "" "Este es un servicio de DEMOSTRACIÓN. NO USAR para trabajo real, los " "proyectos serán borrados periodicamente." -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/auth/login.cljs -msgid "auth.work-email" -msgstr "Correo electrónico" - -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:189, src/app/main/ui/viewer/login.cljs:90 msgid "auth.forgot-password" msgstr "¿Olvidaste tu contraseña?" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:254 msgid "auth.fullname" msgstr "Nombre completo" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:282 msgid "auth.login-account-title" msgstr "Entrar en mi cuenta" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:155, src/app/main/ui/viewer/login.cljs:107 msgid "auth.login-here" msgstr "Inicia sesión aquí." -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:195 msgid "auth.login-submit" msgstr "Entrar" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:285 msgid "auth.login-tagline" msgstr "" "Penpot es la herramienta de diseño libre y open-source para la colaboración " "entre Diseño y Código" -#: src/app/main/ui/auth/login.cljs -msgid "auth.register-tagline" -msgstr "Con una cuenta gratuita de Penpot, puedes crear un número ilimitado de equipos y colaborar con otros diseñadores y desarrolladores en tantos proyectos como quieras." - -#: src/app/main/ui/auth/login.cljs -msgid "auth.register-account-tagline" -msgstr "Cuéntanos cómo quieres que nos dirijamos a tí." - -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:222 msgid "auth.login-with-github-submit" msgstr "GitHub" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:228 msgid "auth.login-with-gitlab-submit" msgstr "GitLab" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:216 msgid "auth.login-with-google-submit" msgstr "Google" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:201 msgid "auth.login-with-ldap-submit" msgstr "LDAP" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:234, src/app/main/ui/auth/login.cljs:255 msgid "auth.login-with-oidc-submit" msgstr "OpenID" -#: src/app/main/ui/settings/team-form.cljs, src/app/main/ui/auth/register.cljs, src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/onboarding/team_choice.cljs, src/app/main/ui/settings/access_tokens.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/settings/profile.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/auth/register.cljs:217, src/app/main/ui/dashboard/team_form.cljs:76, src/app/main/ui/onboarding/team_choice.cljs:180, src/app/main/ui/settings/access_tokens.cljs:66, src/app/main/ui/settings/feedback.cljs:34, src/app/main/ui/settings/profile.cljs:45, src/app/main/ui/workspace/sidebar/assets/groups.cljs:108 msgid "auth.name.not-all-space" msgstr "El nombre debe contener algún carácter diferente de espacio" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/onboarding/team_choice.cljs, src/app/main/ui/settings/access_tokens.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/settings/profile.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/auth/register.cljs:218, src/app/main/ui/dashboard/team_form.cljs:77, src/app/main/ui/onboarding/team_choice.cljs:181, src/app/main/ui/settings/access_tokens.cljs:67, src/app/main/ui/settings/feedback.cljs:33, src/app/main/ui/settings/profile.cljs:44, src/app/main/ui/workspace/sidebar/assets/groups.cljs:109 msgid "auth.name.too-long" msgstr "El nombre debe contener como máximo 250 caracteres." -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:71 msgid "auth.new-password" msgstr "Introduce la nueva contraseña" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:42 msgid "auth.notifications.invalid-token-error" msgstr "El código de recuperación no es válido." -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:46 msgid "auth.notifications.password-changed-successfully" msgstr "La contraseña ha sido cambiada" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:57 msgid "auth.notifications.profile-not-verified" msgstr "" "El perfil aun no ha sido verificado, por favor valida el perfil antes de " "continuar." -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:40 msgid "auth.notifications.recovery-token-sent" msgstr "Hemos enviado a tu buzón un enlace para recuperar tu contraseña." -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:47 msgid "auth.notifications.team-invitation-accepted" msgstr "Te uniste al equipo" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:179, src/app/main/ui/auth/register.cljs:115 msgid "auth.password" msgstr "Contraseña" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:114 msgid "auth.password-length-hint" msgstr "8 caracteres como mínimo" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/recovery.cljs:61, src/app/main/ui/auth/recovery.cljs:62, src/app/main/ui/auth/register.cljs:81, src/app/main/ui/settings/password.cljs:75, src/app/main/ui/settings/password.cljs:76, src/app/main/ui/settings/password.cljs:77 msgid "auth.password-not-empty" msgstr "La contraseña debe contener algún caracter diferente de espacio" +#: src/app/main/ui/auth.cljs:41 msgid "auth.privacy-policy" msgstr "Política de privacidad" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:88 msgid "auth.recovery-request-submit" msgstr "Recuperar contraseña" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:101 msgid "auth.recovery-request-subtitle" msgstr "Te enviaremos un correo electrónico con instrucciones" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:100 msgid "auth.recovery-request-title" msgstr "¿Olvidaste tu contraseña?" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:82 msgid "auth.recovery-submit" msgstr "Cambiar tu contraseña" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:298, src/app/main/ui/viewer/login.cljs:93 msgid "auth.register" msgstr "¿No tienes una cuenta?" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs -msgid "auth.register-submit" -msgstr "Crear una cuenta" +#: src/app/main/ui/auth/register.cljs:277 +msgid "auth.register-account-tagline" +msgstr "Cuéntanos cómo quieres que nos dirijamos a tí." -#: src/app/main/ui/auth/register.cljs -msgid "auth.register-title" -msgstr "Crear una cuenta" - -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:276 msgid "auth.register-account-title" msgstr "Tu nombre" +#: src/app/main/ui/auth/login.cljs:302, src/app/main/ui/auth/register.cljs:121, src/app/main/ui/auth/register.cljs:263, src/app/main/ui/viewer/login.cljs:97 +msgid "auth.register-submit" +msgstr "Crear una cuenta" + +#: src/app/main/ui/auth/register.cljs:142 +msgid "auth.register-tagline" +msgstr "" +"Con una cuenta gratuita de Penpot, puedes crear un número ilimitado de " +"equipos y colaborar con otros diseñadores y desarrolladores en tantos " +"proyectos como quieras." + +#: src/app/main/ui/auth/register.cljs:140 +msgid "auth.register-title" +msgstr "Crear una cuenta" + #: src/app/main/ui/auth.cljs +#, unused msgid "auth.sidebar-tagline" msgstr "La solución de código abierto para diseñar y prototipar." +#: src/app/main/ui/auth/register.cljs:202 +#, markdown +msgid "auth.terms-and-privacy-agreement" +msgstr "Yo acepto los [términos de servicio](%s) y la [política de privacidad](%s)." + +#: src/app/main/ui/auth.cljs:33, src/app/main/ui/dashboard/sidebar.cljs:1022, src/app/main/ui/workspace/main_menu.cljs:150 msgid "auth.terms-of-service" msgstr "Términos de servicio" +#, unused msgid "auth.terms-privacy-agreement" msgstr "" "Al crear una nueva cuenta, aceptas nuestros [términos de servicio](%s) y " "[política de privacidad](%s)." -#: src/app/main/ui/auth/register.cljs -#, markdown -msgid "auth.terms-and-privacy-agreement" -msgstr "" -"Yo acepto los [términos de servicio](%s) y la [política de privacidad](%s)." - -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:297 msgid "auth.verification-email-sent" msgstr "Hemos enviado un email de verificación a" -#: src/app/main/ui/auth/register.cljs -msgid "auth.check-mail" -msgstr "Comprueba tu correo" +#: src/app/main/ui/auth/login.cljs:172, src/app/main/ui/auth/recovery_request.cljs:83, src/app/main/ui/auth/register.cljs:108 +msgid "auth.work-email" +msgstr "Correo electrónico" #: src/app/main/ui/onboarding/questions.cljs +#, unused msgid "branding-illustrations-marketing-pieces" msgstr "diseño de marca, ilustraciones, piezas de marketing..." +#: src/app/main/ui/workspace/libraries.cljs:228 msgid "common.publish" msgstr "Publicar" +#: src/app/main/ui/viewer/share_link.cljs:304, src/app/main/ui/viewer/share_link.cljs:314 msgid "common.share-link.all-users" msgstr "Todo usario de Penpot" +#: src/app/main/ui/viewer/share_link.cljs:198 msgid "common.share-link.confirm-deletion-link-description" msgstr "" "¿Estas seguro que quieres eliminar el enlace? Si lo haces, el enlace dejara " "de funcionar para cualquiera" +#: src/app/main/ui/viewer/share_link.cljs:259, src/app/main/ui/viewer/share_link.cljs:289 msgid "common.share-link.current-tag" msgstr "(actual)" +#: src/app/main/ui/viewer/share_link.cljs:207, src/app/main/ui/viewer/share_link.cljs:214 msgid "common.share-link.destroy-link" msgstr "Eliminar enlace" +#: src/app/main/ui/viewer/share_link.cljs:221 msgid "common.share-link.get-link" msgstr "Obtener enlace" +#: src/app/main/ui/viewer/share_link.cljs:139 msgid "common.share-link.link-copied-success" msgstr "Enlace copiado satisfactoriamente" +#: src/app/main/ui/viewer/share_link.cljs:231 msgid "common.share-link.manage-ops" msgstr "Gestionar permisos" +#: src/app/main/ui/viewer/share_link.cljs:277 msgid "common.share-link.page-shared" msgid_plural "common.share-link.page-shared" msgstr[0] "1 página compartida" msgstr[1] "%s páginas compartidas" +#: src/app/main/ui/viewer/share_link.cljs:298 msgid "common.share-link.permissions-can-comment" msgstr "Pueden comentar" +#: src/app/main/ui/viewer/share_link.cljs:308 msgid "common.share-link.permissions-can-inspect" msgstr "Pueden ver código" +#: src/app/main/ui/viewer/share_link.cljs:193 msgid "common.share-link.permissions-hint" msgstr "Cualquiera con el enlace puede acceder" +#: src/app/main/ui/viewer/share_link.cljs:241 msgid "common.share-link.permissions-pages" msgstr "Páginas compartidas" +#: src/app/main/ui/viewer/share_link.cljs:183 msgid "common.share-link.placeholder" msgstr "El enlace para compartir aparecerá aquí" +#: src/app/main/ui/viewer/share_link.cljs:303, src/app/main/ui/viewer/share_link.cljs:313 msgid "common.share-link.team-members" msgstr "Sólo integrantes del equipo" +#: src/app/main/ui/viewer/share_link.cljs:171 msgid "common.share-link.title" msgstr "Compartir prototipos" +#: src/app/main/ui/viewer/share_link.cljs:269 msgid "common.share-link.view-all" msgstr "Selecctionar todas" +#: src/app/main/ui/workspace/libraries.cljs:224 msgid "common.unpublish" msgstr "Despublicar" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:85 msgid "dasboard.team-hero.management" msgstr "Gestión del equipo" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:84 msgid "dasboard.team-hero.text" msgstr "" "Penpot está dirigido a equipos. Invita a personas para trabajar " "conjuntamente en proyectos y archivos" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:82 msgid "dasboard.team-hero.title" msgstr "¡Forma equipo!" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.tutorial-hero.info" msgstr "" "Aprende los básicos de Penpot mientras pasas un buen rato con este tutorial " "práctico." #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.tutorial-hero.start" msgstr "Comenzar tutorial" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.tutorial-hero.title" msgstr "Tutorial práctico" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.walkthrough-hero.info" msgstr "Da un paseo por Penpot para conocer sus principales funcionalidades." #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.walkthrough-hero.start" msgstr "Comenzar" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.walkthrough-hero.title" msgstr "Recorrido por el interfaz" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:115 msgid "dashboard.access-tokens.copied-success" msgstr "Token copiado" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:202 msgid "dashboard.access-tokens.create" msgstr "Generar nuevo token" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:76 msgid "dashboard.access-tokens.create.success" msgstr "Access token creado con éxito." -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:300 msgid "dashboard.access-tokens.empty.add-one" msgstr "Pulsa el botón \"Generar nuevo token\" para generar uno." -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:299 msgid "dashboard.access-tokens.empty.no-access-tokens" msgstr "Todavía no tienes ningún token." -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:53 msgid "dashboard.access-tokens.errors-required-name" msgstr "El nombre es obligatorio" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:147 msgid "dashboard.access-tokens.expiration-180-days" msgstr "180 días" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:144 msgid "dashboard.access-tokens.expiration-30-days" msgstr "30 días" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:145 msgid "dashboard.access-tokens.expiration-60-days" msgstr "60 días" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:146 msgid "dashboard.access-tokens.expiration-90-days" msgstr "90 días" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:143 msgid "dashboard.access-tokens.expiration-never" msgstr "Nunca" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:282 msgid "dashboard.access-tokens.expired-on" msgstr "Expiró el %s" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:283 msgid "dashboard.access-tokens.expires-on" msgstr "Expira el %s" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:281 msgid "dashboard.access-tokens.no-expiration" msgstr "Sin fecha de expiración" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:197 msgid "dashboard.access-tokens.personal" msgstr "Access tokens personales" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:198 msgid "dashboard.access-tokens.personal.description" msgstr "" "Los access tokens personales funcionan como una alternativa a nuestro " "sistema de autenticación usuario/password y se pueden usar para permitir a " "otras aplicaciones acceso a la API interna de Penpot" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:154 msgid "dashboard.access-tokens.token-will-expire" msgstr "El token expirará el %s" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:155 msgid "dashboard.access-tokens.token-will-not-expire" msgstr "El token no tiene fecha de expiración" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:291, src/app/main/ui/workspace/main_menu.cljs:572 msgid "dashboard.add-shared" msgstr "Añadir como Biblioteca Compartida" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:75 msgid "dashboard.change-email" msgstr "Cambiar correo" -#: src/app/main/data/dashboard.cljs, src/app/main/data/dashboard.cljs +#: src/app/main/data/dashboard.cljs:762, src/app/main/data/dashboard.cljs:983 msgid "dashboard.copy-suffix" msgstr "(copia)" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:338 msgid "dashboard.create-new-team" msgstr "Crear nuevo equipo" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/components/context_menu_a11y.cljs:256, src/app/main/ui/dashboard/sidebar.cljs:646 msgid "dashboard.default-team-name" msgstr "Tu Penpot" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:571 msgid "dashboard.delete-team" msgstr "Eliminar equipo" +#: src/app/main/ui/dashboard/file_menu.cljs:296, src/app/main/ui/workspace/main_menu.cljs:589 msgid "dashboard.download-binary-file" msgstr "Descargar archivo Penpot (.penpot)" +#: src/app/main/ui/dashboard/file_menu.cljs:300, src/app/main/ui/workspace/main_menu.cljs:597 msgid "dashboard.download-standard-file" msgstr "Descargar archivo estándar (.svg + .json)" -#: src/app/main/ui/dashboard/project_menu.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:276, src/app/main/ui/dashboard/project_menu.cljs:90 msgid "dashboard.duplicate" msgstr "Duplicar" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:240 msgid "dashboard.duplicate-multi" msgstr "Duplicar %s archivos" -#: src/app/main/ui/dashboard/grid.cljs +#: src/app/main/ui/dashboard/placeholder.cljs:32 +#, markdown msgid "dashboard.empty-placeholder-drafts" msgstr "" "Los archivos agregados a las bibliotecas aparecerán aquí. Si quieres probar " "con alguna plantilla ve a [Bibliotecas y " "plantillas](https://penpot.app/libraries-templates)." +#: src/app/main/ui/dashboard/file_menu.cljs:249 msgid "dashboard.export-binary-multi" msgstr "Descargar %s archivos Penpot (.penpot)" +#: src/app/main/ui/workspace/main_menu.cljs:605 msgid "dashboard.export-frames" msgstr "Exportar tableros como PDF" -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:201 msgid "dashboard.export-frames.title" msgstr "Exportar como PDF" +#, unused msgid "dashboard.export-multi" msgstr "Exportar %s archivos Penpot" -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:109 msgid "dashboard.export-multiple.selected" msgstr "%s de %s elementos seleccionados" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:578 msgid "dashboard.export-shapes" msgstr "Exportar" -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:180 msgid "dashboard.export-shapes.how-to" msgstr "" "Puedes añadir configuraciones de exportación a elementos desde las " "propiedades de diseño (al final del lateral derecho)." -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:184 msgid "dashboard.export-shapes.how-to-link" msgstr "Información sobre cómo configurar exportaciones en Penpot." -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:179 msgid "dashboard.export-shapes.no-elements" msgstr "No hay elementos con configuraciones de exportación." -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:190 msgid "dashboard.export-shapes.title" msgstr "Exportar selección" +#: src/app/main/ui/dashboard/file_menu.cljs:252 msgid "dashboard.export-standard-multi" msgstr "Descargar %s archivos estándar (.svg + .json)" +#: src/app/main/ui/export.cljs:427 msgid "dashboard.export.detail" msgstr "* Pueden incluir components, gráficos, colores y/o tipografias." +#: src/app/main/ui/export.cljs:426 msgid "dashboard.export.explain" msgstr "" "Uno o mas ficheros que quieres exportar usan librerias compartidas. ¿Qué " "quieres hacer con los recursos*?" +#: src/app/main/ui/export.cljs:435 msgid "dashboard.export.options.all.message" msgstr "" "ficheros con librerias compartidas se inclurán en el paquete de exportación " "y mantendrán los enlaces." +#: src/app/main/ui/export.cljs:436 msgid "dashboard.export.options.all.title" msgstr "Exportar librerias compartidas" +#: src/app/main/ui/export.cljs:437 msgid "dashboard.export.options.detach.message" msgstr "" "Las biblioteca compartidas no se incluirán en la exportación y ningún " "recurso será incluido en la biblioteca. " +#: src/app/main/ui/export.cljs:438 msgid "dashboard.export.options.detach.title" msgstr "Usar los recursos como objetos básicos" +#: src/app/main/ui/export.cljs:439 msgid "dashboard.export.options.merge.message" msgstr "" "Tu fichero será exportado con todos los recursos dentro de la libreria del " "propio fichero." +#: src/app/main/ui/export.cljs:440 msgid "dashboard.export.options.merge.title" msgstr "Incluir librerias compartidas dentro de las librerias del fichero" +#: src/app/main/ui/export.cljs:418 msgid "dashboard.export.title" msgstr "Exportar ficheros" +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:309 msgid "dashboard.fonts.deleted-placeholder" msgstr "Fuente no encontrada" -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:206 msgid "dashboard.fonts.dismiss-all" msgstr "Ignorar todas" +#: src/app/main/ui/dashboard/fonts.cljs:436 msgid "dashboard.fonts.empty-placeholder" msgstr "Las fuentes personalizadas que subas aparecerán aquí." -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:194 msgid "dashboard.fonts.fonts-added" msgid_plural "dashboard.fonts.fonts-added" msgstr[0] "1 fuente añadida" msgstr[1] "%s fuentes añadidas" +#: src/app/main/ui/dashboard/fonts.cljs:170 #, markdown msgid "dashboard.fonts.hero-text1" msgstr "" @@ -530,6 +579,7 @@ msgstr "" "como una **única familia de fuentes**. Se pueden cargar fuentes con los " "siguientes formatos: **TTF, OTF and WOFF** (con uno es suficiente)." +#: src/app/main/ui/dashboard/fonts.cljs:182 #, markdown msgid "dashboard.fonts.hero-text2" msgstr "" @@ -540,10 +590,11 @@ msgstr "" "más sobre licencias tipográficas: [font " "licensing](https://www.typography.com/faq)." -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:202 msgid "dashboard.fonts.upload-all" msgstr "Cargar todas" +#: src/app/main/ui/dashboard/fonts.cljs:187 #, markdown msgid "dashboard.fonts.warning-text" msgstr "" @@ -554,1523 +605,1715 @@ msgstr "" "[Transfonter](https://transfonter.org/) para generar fuentes web y corregir " "posibles errores." +#: src/app/main/ui/dashboard/import.cljs:472, src/app/main/ui/dashboard/project_menu.cljs:108 msgid "dashboard.import" msgstr "Importar archivos Penpot" +#: src/app/main/ui/dashboard/import.cljs:304, src/app/worker/import.cljs:753, src/app/worker/import.cljs:755 msgid "dashboard.import.analyze-error" msgstr "¡Vaya! No hemos podido importar el fichero" +#, unused msgid "dashboard.import.analyze-error.components-v2" msgstr "" "Fichero exportado con componentes-v2 pero el equipo actual no lo soporta " "aún." +#: src/app/main/ui/dashboard/import.cljs:308 msgid "dashboard.import.import-error" msgstr "Hubo un problema importando el fichero. No ha podido ser importado." +#: src/app/main/ui/dashboard/import.cljs:493 msgid "dashboard.import.import-message" msgid_plural "dashboard.import.import-message" msgstr[0] "1 fichero se ha importado correctamente." msgstr[1] "%s ficheros se han importado correctamente." +#: src/app/main/ui/dashboard/import.cljs:481, src/app/main/ui/dashboard/import.cljs:488 msgid "dashboard.import.import-warning" msgstr "Algunos ficheros contenían objetos erroneos que no han sido importados." +#: src/app/main/ui/dashboard/import.cljs:144 msgid "dashboard.import.progress.process-colors" msgstr "Procesando colores" +#: src/app/main/ui/dashboard/import.cljs:153 msgid "dashboard.import.progress.process-components" msgstr "Procesando componentes" +#: src/app/main/ui/dashboard/import.cljs:150 msgid "dashboard.import.progress.process-media" msgstr "Procesando media" +#: src/app/main/ui/dashboard/import.cljs:141 msgid "dashboard.import.progress.process-page" msgstr "Procesando página: %s" +#: src/app/main/ui/dashboard/import.cljs:147 msgid "dashboard.import.progress.process-typographies" msgstr "Procesando tipografías" +#: src/app/main/ui/dashboard/import.cljs:135 msgid "dashboard.import.progress.upload-data" msgstr "Enviando datos al servidor (%s/%s)" +#: src/app/main/ui/dashboard/import.cljs:138 msgid "dashboard.import.progress.upload-media" msgstr "Enviando fichero: %s" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:109 msgid "dashboard.invite-profile" msgstr "Invitar a la gente" -#: src/app/main/ui/dashboard/sidebar.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:547, src/app/main/ui/dashboard/sidebar.cljs:556, src/app/main/ui/dashboard/sidebar.cljs:563, src/app/main/ui/dashboard/team.cljs:312 msgid "dashboard.leave-team" msgstr "Abandonar equipo" +#: src/app/main/ui/dashboard/templates.cljs:88, src/app/main/ui/dashboard/templates.cljs:163 msgid "dashboard.libraries-and-templates" msgstr "Bibliotecas y plantillas" +#: src/app/main/ui/dashboard/templates.cljs:164 msgid "dashboard.libraries-and-templates.explore" msgstr "Explora más y descubre cómo contribuir" +#: src/app/main/ui/dashboard/import.cljs:365 msgid "dashboard.libraries-and-templates.import-error" msgstr "Hubo un problema importando la plantilla. No ha podido ser importada." -#: src/app/main/ui/dashboard/libraries.cljs +#: src/app/main/ui/dashboard/libraries.cljs:53 msgid "dashboard.libraries-title" msgstr "Bibliotecas" -#: src/app/main/ui/dashboard/grid.cljs +#: src/app/main/ui/dashboard/placeholder.cljs:45 msgid "dashboard.loading-files" msgstr "cargando tus ficheros …" +#: src/app/main/ui/dashboard/fonts.cljs:431 msgid "dashboard.loading-fonts" msgstr "cargando tus fuentes …" -#: src/app/main/ui/dashboard/project_menu.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:281, src/app/main/ui/dashboard/project_menu.cljs:100 msgid "dashboard.move-to" msgstr "Mover a" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:245 msgid "dashboard.move-to-multi" msgstr "Mover %s archivos a" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:226 msgid "dashboard.move-to-other-team" msgstr "Mover a otro equipo" -#: src/app/main/ui/dashboard/projects.cljs, -#: src/app/main/ui/dashboard/files.cljs +#: src/app/main/ui/dashboard/files.cljs:105, src/app/main/ui/dashboard/projects.cljs:252, src/app/main/ui/dashboard/projects.cljs:253 msgid "dashboard.new-file" msgstr "+ Nuevo Archivo" -#: src/app/main/data/dashboard.cljs +#: src/app/main/data/dashboard.cljs:958, src/app/main/data/dashboard.cljs:1181 msgid "dashboard.new-file-prefix" msgstr "Nuevo Archivo" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:55 msgid "dashboard.new-project" msgstr "+ Nuevo proyecto" -#: src/app/main/data/dashboard.cljs +#: src/app/main/data/dashboard.cljs:726, src/app/main/data/dashboard.cljs:1184 msgid "dashboard.new-project-prefix" msgstr "Nuevo Proyecto" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:60 msgid "dashboard.no-matches-for" msgstr "No se encuentra “%s“" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:827 msgid "dashboard.no-projects-placeholder" msgstr "Los proyectos fijados aparecerán aquí" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:33 msgid "dashboard.notifications.email-changed-successfully" msgstr "Tu dirección de correo ha sido actualizada" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:27 msgid "dashboard.notifications.email-verified-successfully" msgstr "Tu dirección de correo ha sido verificada" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:37 msgid "dashboard.notifications.password-saved" msgstr "¡Contraseña guardada!" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1081 msgid "dashboard.num-of-members" msgstr "%s integrantes" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:267 msgid "dashboard.open-in-new-tab" msgstr "Abrir en una pestaña nueva" +#: src/app/main/ui/dashboard/files.cljs:117, src/app/main/ui/dashboard/projects.cljs:260, src/app/main/ui/dashboard/projects.cljs:261 msgid "dashboard.options" msgstr "Opciones" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:106, src/app/main/ui/settings/password.cljs:119 msgid "dashboard.password-change" msgstr "Cambiar contraseña" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/pin_button.cljs:24, src/app/main/ui/dashboard/project_menu.cljs:95 msgid "dashboard.pin-unpin" msgstr "Anclar/Desanclar" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:51 msgid "dashboard.projects-title" msgstr "Proyectos" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:86 msgid "dashboard.remove-account" msgstr "¿Quieres borrar tu cuenta?" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "dashboard.remove-shared" msgstr "Eliminar como Biblioteca Compartida" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:78 msgid "dashboard.save-settings" msgstr "Guardar opciones" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:246, src/app/main/ui/dashboard/sidebar.cljs:247 msgid "dashboard.search-placeholder" msgstr "Buscar…" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:55 msgid "dashboard.searching-for" msgstr "Buscando “%s“…" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:56 msgid "dashboard.select-ui-language" msgstr "Cambiar el idioma de la interfaz" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:63 msgid "dashboard.select-ui-theme" msgstr "Selecciona un tema" -#: src/app/main/ui/dashboard/grid.cljs +#: src/app/main/ui/dashboard/projects.cljs:282 msgid "dashboard.show-all-files" msgstr "Ver todos los archivos" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:96 msgid "dashboard.success-delete-file" msgid_plural "dashboard.success-delete-file" msgstr[0] "Tu archivo ha sido borrado con éxito" msgstr[1] "Tus archivos han sido borrado con éxito" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:59 msgid "dashboard.success-delete-project" msgstr "Tu proyecto ha sido borrado con éxito" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:91 msgid "dashboard.success-duplicate-file" msgid_plural "dashboard.success-delete-file" msgstr[0] "Tu archivo ha sido duplicado con éxito" msgstr[1] "Tus archivos han sido duplicado con éxito" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:33 msgid "dashboard.success-duplicate-project" msgstr "Tu proyecto ha sido duplicado con éxito" -#: src/app/main/ui/dashboard/grid.cljs, src/app/main/ui/dashboard/sidebar.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:130, src/app/main/ui/dashboard/grid.cljs:558, src/app/main/ui/dashboard/sidebar.cljs:152 msgid "dashboard.success-move-file" msgstr "Tu archivo ha sido movido con éxito" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:129 msgid "dashboard.success-move-files" msgstr "Tus archivos han sido movidos con éxito" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:54 msgid "dashboard.success-move-project" msgstr "Tu proyecto ha sido movido con éxito" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1052 msgid "dashboard.team-info" msgstr "Información del equipo" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1070 msgid "dashboard.team-members" msgstr "Integrantes del equipo" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1085 msgid "dashboard.team-projects" msgstr "Proyectos del equipo" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:61 msgid "dashboard.theme-change" msgstr "Tema visual" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:42 msgid "dashboard.title-search" msgstr "Resultados de búsqueda" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:50 msgid "dashboard.type-something" msgstr "Escribe algo para buscar" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:287, src/app/main/ui/workspace/main_menu.cljs:566 msgid "dashboard.unpublish-shared" msgstr "Despublicar Biblioteca" -#: src/app/main/ui/settings/password.cljs, -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:71 msgid "dashboard.update-settings" msgstr "Actualizar opciones" +#: src/app/main/ui/dashboard/team.cljs:861 msgid "dashboard.webhooks.active" msgstr "Activo" +#: src/app/main/ui/dashboard/team.cljs:862 msgid "dashboard.webhooks.active.explain" msgstr "Cuando se active este webhook se enviarán detalles del evento" +#: src/app/main/ui/dashboard/team.cljs:852 msgid "dashboard.webhooks.content-type" msgstr "Tipo de contenido" +#: src/app/main/ui/dashboard/team.cljs:885 msgid "dashboard.webhooks.create" msgstr "Crear webhook" +#: src/app/main/ui/dashboard/team.cljs:775 msgid "dashboard.webhooks.create.success" msgstr "Webhook creado con éxito." +#: src/app/main/ui/dashboard/team.cljs:882 msgid "dashboard.webhooks.description" msgstr "" "Los webhooks son una forma simple de permitir notificar a otros sitios web " "y aplicaciones cuando ocurren ciertos eventos en Penpot. Enviaremos una " "petición POST a cada una de las URLs que indiques." +#: src/app/main/ui/dashboard/team.cljs:1005 msgid "dashboard.webhooks.empty.add-one" msgstr "Pulsa el botón \"Crear webhook\" para añadir uno." +#: src/app/main/ui/dashboard/team.cljs:1004 msgid "dashboard.webhooks.empty.no-webhooks" msgstr "No hay ningún webhook aún." +#, unused msgid "dashboard.webhooks.update.success" msgstr "Webhook modificado con éxito." -#: src/app/main/ui/settings.cljs +#: src/app/main/ui/settings.cljs:31 msgid "dashboard.your-account-title" msgstr "Tu cuenta" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:70 msgid "dashboard.your-email" msgstr "Correo" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:62 msgid "dashboard.your-name" msgstr "Tu nombre" -#: src/app/main/ui/dashboard/search.cljs, src/app/main/ui/dashboard/team.cljs, -#: src/app/main/ui/dashboard/libraries.cljs, -#: src/app/main/ui/dashboard/projects.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:38, src/app/main/ui/dashboard/fonts.cljs:33, src/app/main/ui/dashboard/libraries.cljs:42, src/app/main/ui/dashboard/projects.cljs:318, src/app/main/ui/dashboard/search.cljs:30, src/app/main/ui/dashboard/sidebar.cljs:312, src/app/main/ui/dashboard/team.cljs:495, src/app/main/ui/dashboard/team.cljs:729, src/app/main/ui/dashboard/team.cljs:991, src/app/main/ui/dashboard/team.cljs:1038 msgid "dashboard.your-penpot" msgstr "Tu Penpot" -#: src/app/main/ui/alert.cljs +#: src/app/main/ui/alert.cljs:32 msgid "ds.alert-ok" msgstr "Ok" -#: src/app/main/ui/alert.cljs +#: src/app/main/ui/alert.cljs:31, src/app/main/ui/alert.cljs:34 msgid "ds.alert-title" msgstr "Atención" -#: src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:83 msgid "ds.component-subtitle" msgstr "Componentes a actualizar:" -#: src/app/main/ui/confirm.cljs -msgid "ds.confirm-cancel" -msgstr "Cancelar" - -#: src/app/main/ui/confirm.cljs -msgid "ds.confirm-ok" -msgstr "Ok" - +#: src/app/main/ui/workspace/plugins.cljs:252 msgid "ds.confirm-allow" msgstr "Permitir" -#: src/app/main/ui/confirm.cljs, src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:36, src/app/main/ui/workspace/plugins.cljs:246 +msgid "ds.confirm-cancel" +msgstr "Cancelar" + +#: src/app/main/ui/confirm.cljs:37, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:141 +msgid "ds.confirm-ok" +msgstr "Ok" + +#: src/app/main/ui/confirm.cljs:35, src/app/main/ui/confirm.cljs:39 msgid "ds.confirm-title" msgstr "¿Está Seguro?" -#: src/app/main/data/users.cljs +#: src/app/main/data/users.cljs:705 msgid "errors.auth-provider-not-allowed" msgstr "El proveedor de autenticación no permitido para este perfil de usuario" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:62 msgid "errors.auth-provider-not-configured" msgstr "Proveedor de autenticación no configurado." +#: src/app/main/errors.cljs:104 msgid "errors.auth.unable-to-login" msgstr "Parece que no has iniciado sesión, o la sesión ha expirado." +#: src/app/main/data/fonts.cljs:189 msgid "errors.bad-font" msgstr "No se ha podido cargar la fuente %s" +#: src/app/main/data/fonts.cljs:188 msgid "errors.bad-font-plural" msgstr "No se han podido cargar las fuentes %s" +#: src/app/main/data/workspace/media.cljs:198 msgid "errors.cannot-upload" msgstr "No se puede cargar el archivo multimedia." -#: src/app/main/data/workspace.cljs +#: src/app/main/data/workspace.cljs:1598 msgid "errors.clipboard-not-implemented" msgstr "Tu navegador no puede realizar esta operación" -#: src/app/main/ui/auth/verify_token.cljs, -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/auth/verify_token.cljs:82, src/app/main/ui/settings/change_email.cljs:46 msgid "errors.email-already-exists" msgstr "Este correo ya está en uso" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:87 msgid "errors.email-already-validated" msgstr "Este correo ya está validado." +#: src/app/main/ui/settings/password.cljs:28 msgid "errors.email-as-password" msgstr "No puedes usar tu correo electrónico como contraseña" -#: src/app/main/data/users.cljs +#: src/app/main/data/users.cljs:707, src/app/main/ui/auth/register.cljs:63 msgid "errors.email-domain-not-allowed" msgstr "Dominio no permitido" -#: src/app/main/ui/auth/register.cljs, -#: src/app/main/ui/auth/recovery_request.cljs, -#: src/app/main/ui/settings/change_email.cljs, -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/auth/recovery_request.cljs:63, src/app/main/ui/dashboard/team.cljs:578, src/app/main/ui/settings/change_email.cljs:54 msgid "errors.email-has-permanent-bounces" msgstr "El correo electrónico «%s» tiene varios reportes de rebote permanente." -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs, src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/login.cljs:81, src/app/main/ui/auth/recovery_request.cljs:31, src/app/main/ui/auth/register.cljs:43 msgid "errors.email-invalid" msgstr "Por favor, escribe un email válido" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:35 msgid "errors.email-invalid-confirmation" msgstr "El correo de confirmación debe coincidir" +#: src/app/main/ui/dashboard/team.cljs:170 msgid "errors.email-spam-or-permanent-bounces" msgstr "El email «%s» tiene reportes de spam o de rebote permanente." -#: src/app/main/errors.cljs +#: src/app/main/errors.cljs:227 msgid "errors.feature-mismatch" msgstr "" "Parece que está abriendo un archivo que tiene la función '%s' habilitada, " "pero la versión actual de penpot no la admite o la tiene deshabilitada." -#: src/app/main/errors.cljs +#: src/app/main/errors.cljs:231, src/app/main/errors.cljs:245 msgid "errors.feature-not-supported" msgstr "Caracteristica no soportada: '%s'." -#: src/app/main/errors.cljs +#: src/app/main/errors.cljs:223 msgid "errors.file-feature-mismatch" msgstr "" "Parece que hay discordancia entre las features habilitadas y las features " "del fichero que se esta intentando abrir. Falta aplicar migraciones para " "'%s' antes de poder abrir el fichero." -#: src/app/main/ui/auth/verify_token.cljs, -#: src/app/main/ui/settings/feedback.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/data/users.cljs:709, src/app/main/ui/auth/login.cljs:65, src/app/main/ui/auth/login.cljs:116, src/app/main/ui/auth/register.cljs:69, src/app/main/ui/auth/register.cljs:237, src/app/main/ui/auth/verify_token.cljs:92, src/app/main/ui/dashboard/team.cljs:173, src/app/main/ui/onboarding/team_choice.cljs:95, src/app/main/ui/settings/access_tokens.cljs:91, src/app/main/ui/settings/feedback.cljs:52 msgid "errors.generic" msgstr "Ha ocurrido algún error." -#: src/app/main/ui/components/color_input.cljs +#: src/app/main/ui/components/color_input.cljs:57 msgid "errors.invalid-color" msgstr "Color no válido" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/static.cljs:43 msgid "errors.invite-invalid" msgstr "Invitación inválida" +#: src/app/main/ui/static.cljs:44 msgid "errors.invite-invalid.info" msgstr "Esta invitación puede haber sido cancelada o ha expirado." -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:101 msgid "errors.ldap-disabled" msgstr "La autheticacion via LDAP esta deshabilitada." -#: src/app/main/errors.cljs +#: src/app/main/errors.cljs:239 msgid "errors.max-quote-reached" msgstr "Ha alcalzando el maximo de la quota '%s'. Contacte con soporte tecnico." -#: src/app/main/data/workspace/persistence.cljs +#: src/app/main/data/workspace/media.cljs:184 msgid "errors.media-too-large" msgstr "La imagen es demasiado grande." -#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs +#: src/app/main/data/media.cljs:68, src/app/main/data/workspace/media.cljs:187 msgid "errors.media-type-mismatch" msgstr "" "Parece que el contenido de la imagen no coincide con la extensión del " "archivo." -#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs +#: src/app/main/data/media.cljs:65, src/app/main/data/workspace/media.cljs:172, src/app/main/data/workspace/media.cljs:175, src/app/main/data/workspace/media.cljs:178, src/app/main/data/workspace/media.cljs:181 msgid "errors.media-type-not-allowed" msgstr "Parece que no es una imagen válida." -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:574 msgid "errors.member-is-muted" msgstr "" "El perfil que esta invitando tiene los emails silenciados (por reportes de " "spam o alto indice de rebote)." -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:61 msgid "errors.password-invalid-confirmation" msgstr "La contraseña de confirmación debe coincidir" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:64 msgid "errors.password-too-short" msgstr "La contraseña debe tener 8 caracteres como mínimo" +#: src/app/main/errors.cljs:124 msgid "errors.paste-data-validation" msgstr "Datos inválidos en el portapapeles" +#: src/app/main/data/users.cljs:703, src/app/main/ui/auth/login.cljs:97, src/app/main/ui/auth/login.cljs:105 msgid "errors.profile-blocked" msgstr "El perfil esta blockeado" -#: src/app/main/ui/auth/recovery_request.cljs, -#: src/app/main/ui/settings/change_email.cljs, -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/auth/recovery_request.cljs:60, src/app/main/ui/dashboard/team.cljs:164, src/app/main/ui/dashboard/team.cljs:570, src/app/main/ui/settings/change_email.cljs:50 msgid "errors.profile-is-muted" msgstr "" "Tu perfil tiene los emails silenciados (por reportes de spam o alto indice " "de rebote)." -#: src/app/main/ui/auth/register.cljs +#: src/app/main/data/users.cljs:701, src/app/main/ui/auth/register.cljs:60 msgid "errors.registration-disabled" msgstr "El registro está actualmente desactivado." -#: src/app/main/errors.cljs +#: src/app/main/errors.cljs:218 msgid "errors.team-feature-mismatch" msgstr "Detectada funcionalidad incompatible '%s'" +#: src/app/main/ui/dashboard/sidebar.cljs:365, src/app/main/ui/dashboard/team.cljs:359 msgid "errors.team-leave.insufficient-members" msgstr "" "No hay miembros suficientes para salir del equipo, probablemente quieras " "borrarlo." +#: src/app/main/ui/dashboard/sidebar.cljs:368, src/app/main/ui/dashboard/team.cljs:362 msgid "errors.team-leave.member-does-not-exists" msgstr "El integrante que intentas designar no existe." +#: src/app/main/ui/dashboard/sidebar.cljs:371, src/app/main/ui/dashboard/team.cljs:365 msgid "errors.team-leave.owner-cant-leave" msgstr "" "El propietario no puede salir del equipo, tienes que asignar la propiedad a " "otra persona." -#: src/app/main/data/media.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs +#: src/app/main/data/media.cljs:71 msgid "errors.unexpected-error" msgstr "Ha ocurrido un error inesperado." -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:60 msgid "errors.unexpected-token" msgstr "Token desconocido" +#, unused msgid "errors.validation" msgstr "Error de validación" -#: src/app/main/errors.cljs +#: src/app/main/errors.cljs:235 msgid "errors.version-not-supported" msgstr "El fichero tiene un número de versión incompatible" +#: src/app/main/ui/dashboard/team.cljs:796 msgid "errors.webhooks.connection" msgstr "Error de conexion, la url no es alcanzable" +#: src/app/main/ui/dashboard/team.cljs:790 msgid "errors.webhooks.invalid-uri" msgstr "La URL no pasa la validación." +#: src/app/main/ui/dashboard/team.cljs:949 msgid "errors.webhooks.last-delivery" msgstr "Hubo un problema en el último envío." +#: src/app/main/ui/dashboard/team.cljs:792, src/app/main/ui/dashboard/team.cljs:952 msgid "errors.webhooks.ssl-validation" msgstr "Error en la validación SSL." +#: src/app/main/ui/dashboard/team.cljs:794 msgid "errors.webhooks.timeout" msgstr "Timeout" +#: src/app/main/ui/dashboard/team.cljs:788 msgid "errors.webhooks.unexpected" msgstr "Error inesperado al validar" +#: src/app/main/ui/dashboard/team.cljs:798, src/app/main/ui/dashboard/team.cljs:955 msgid "errors.webhooks.unexpected-status" msgstr "Estado inesperado %s" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:109, src/app/main/ui/auth/login.cljs:113 msgid "errors.wrong-credentials" msgstr "El email o la contraseña son incorrectos." -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:25 msgid "errors.wrong-old-password" msgstr "La contraseña anterior no es correcta" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:77 msgid "feedback.description" msgstr "Descripción" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:95 msgid "feedback.discourse-go-to" msgstr "Ir al foro de Penpot" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:89 msgid "feedback.discourse-subtitle1" msgstr "" "Estamos encantados de tenerte por aquí. Si necesitas ayuda, busca, escribe " "o pregunta lo que necesites." -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:88 msgid "feedback.discourse-title" msgstr "Comunidad de Penpot" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:72 msgid "feedback.subject" msgstr "Asunto" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:69 msgid "feedback.subtitle" msgstr "" "Por favor describe el motivo de tu mensaje, especificando si es un " "problema, una idea o una duda. Alguien de nuestro equipo responderá tan " "pronto como sea posible." -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:68 msgid "feedback.title" msgstr "Correo electrónico" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:105 msgid "feedback.twitter-go-to" msgstr "Ir a X" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:99 msgid "feedback.twitter-subtitle1" msgstr "Cuenta habilitada para responder todas tus dudas técnicas." -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:98 msgid "feedback.twitter-title" msgstr "Cuenta de X para soporte" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:30 msgid "generic.error" msgstr "Ha ocurrido un error" -#: src/app/main/ui/inspect/attributes/blur.cljs +#: src/app/main/ui/viewer/inspect/attributes/blur.cljs:26 msgid "inspect.attributes.blur" msgstr "Desenfocado" -#: src/app/main/ui/inspect/attributes/blur.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:115 msgid "inspect.attributes.blur.value" msgstr "Valor" -#: src/app/main/ui/inspect/attributes/common.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:112 msgid "inspect.attributes.color.hex" msgstr "HEX" -#: src/app/main/ui/inspect/attributes/common.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:114 msgid "inspect.attributes.color.hsla" msgstr "HSLA" -#: src/app/main/ui/inspect/attributes/common.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:113 msgid "inspect.attributes.color.rgba" msgstr "RGBA" -#: src/app/main/ui/inspect/attributes/fill.cljs +#: src/app/main/ui/viewer/inspect/attributes/fill.cljs:57 msgid "inspect.attributes.fill" msgstr "Relleno" -#: src/app/main/ui/inspect/attributes/image.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:99, src/app/main/ui/viewer/inspect/attributes/image.cljs:51 msgid "inspect.attributes.image.download" msgstr "Descargar imagen original" -#: src/app/main/ui/inspect/attributes/image.cljs +#: src/app/main/ui/viewer/inspect/attributes/image.cljs:39 msgid "inspect.attributes.image.height" msgstr "Altura" -#: src/app/main/ui/inspect/attributes/image.cljs +#: src/app/main/ui/viewer/inspect/attributes/image.cljs:32 msgid "inspect.attributes.image.width" msgstr "Ancho" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout" msgstr "Estructura" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.height" msgstr "Altura" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.left" msgstr "Izquierda" -#: src/app/main/ui/inspect/attributes/layout.cljs, -#: src/app/main/ui/inspect/attributes/layout.cljs +#: src/app/main/ui/inspect/attributes/layout.cljs, src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.radius" msgstr "Radio" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.rotation" msgstr "Rotación" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.top" msgstr "Arriba" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.width" msgstr "Ancho" -#: src/app/main/ui/inspect/attributes/shadow.cljs +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:57 msgid "inspect.attributes.shadow" msgstr "Sombra" -#: src/app/main/ui/inspect/attributes/layout.cljs +#: src/app/main/ui/viewer/inspect/attributes/geometry.cljs:40 msgid "inspect.attributes.size" msgstr "Tamaño y posición" -#: src/app/main/ui/inspect/attributes/stroke.cljs +#: src/app/main/ui/viewer/inspect/attributes/stroke.cljs:52 msgid "inspect.attributes.stroke" msgstr "Borde" +#, permanent, unused msgid "inspect.attributes.stroke.alignment.center" msgstr "Centro" +#, permanent, unused msgid "inspect.attributes.stroke.alignment.inner" msgstr "Interior" +#, permanent, unused msgid "inspect.attributes.stroke.alignment.outer" msgstr "Exterior" +#, unused msgid "inspect.attributes.stroke.style.dotted" msgstr "Punteado" +#, unused msgid "inspect.attributes.stroke.style.mixed" msgstr "Mixto" +#, unused msgid "inspect.attributes.stroke.style.none" msgstr "Ninguno" +#, unused msgid "inspect.attributes.stroke.style.solid" msgstr "Sólido" #: src/app/main/ui/inspect/attributes/stroke.cljs +#, unused msgid "inspect.attributes.stroke.width" msgstr "Ancho" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:81, src/app/main/ui/viewer/inspect/attributes/text.cljs:194 msgid "inspect.attributes.typography" msgstr "Tipografía" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:89 msgid "inspect.attributes.typography.font-family" msgstr "Familia tipográfica" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:107 msgid "inspect.attributes.typography.font-size" msgstr "Tamaño de fuente" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:98 msgid "inspect.attributes.typography.font-style" msgstr "Estilo de fuente" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:116 msgid "inspect.attributes.typography.font-weight" msgstr "Grosor de fuente" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:134 msgid "inspect.attributes.typography.letter-spacing" msgstr "Espaciado de letras" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:125 msgid "inspect.attributes.typography.line-height" msgstr "Interlineado" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:143 msgid "inspect.attributes.typography.text-decoration" msgstr "Decoración de texto" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:145 msgid "inspect.attributes.typography.text-decoration.none" msgstr "Ninguna" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:146 msgid "inspect.attributes.typography.text-decoration.strikethrough" msgstr "Tachar" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:147 msgid "inspect.attributes.typography.text-decoration.underline" msgstr "Subrayar" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:156 msgid "inspect.attributes.typography.text-transform" msgstr "Transformación de texto" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:158 msgid "inspect.attributes.typography.text-transform.lowercase" msgstr "Minúsculas" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:159 msgid "inspect.attributes.typography.text-transform.none" msgstr "Ninguna" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:160 msgid "inspect.attributes.typography.text-transform.titlecase" msgstr "Primera en mayúscula" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:162 msgid "inspect.attributes.typography.text-transform.unset" msgstr "Sin asignar" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:161 msgid "inspect.attributes.typography.text-transform.uppercase" msgstr "Mayúsculas" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:140 msgid "inspect.empty.help" msgstr "" "Si quieres saber más sobre la inspección puedes visitar el centro de ayuda " "de Penpot" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:143 msgid "inspect.empty.more-info" msgstr "Más información sobre la inspección" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:135 msgid "inspect.empty.select" msgstr "Elige una forma, tablero o grupo para inspeccionar sus propiedades y código" -#: src/app/main/ui/inspect/right_sidebar.cljs +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:125 msgid "inspect.tabs.code" msgstr "Código" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:98 msgid "inspect.tabs.code.selected.circle" msgstr "Círculo" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:99 msgid "inspect.tabs.code.selected.component" msgstr "Componente" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:100 msgid "inspect.tabs.code.selected.curve" msgstr "Curva" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:101 msgid "inspect.tabs.code.selected.frame" msgstr "Mesa de trabajo" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:102 msgid "inspect.tabs.code.selected.group" msgstr "Grupo" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:103 msgid "inspect.tabs.code.selected.image" msgstr "Imagen" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:104 msgid "inspect.tabs.code.selected.mask" msgstr "Máscara" -#: src/app/main/ui/inspect/right_sidebar.cljs +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:93 msgid "inspect.tabs.code.selected.multiple" msgstr "%s Seleccionado" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:105 msgid "inspect.tabs.code.selected.path" msgstr "Trazado" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:106 msgid "inspect.tabs.code.selected.rect" msgstr "Rectángulo" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:107 msgid "inspect.tabs.code.selected.svg-raw" msgstr "SVG" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:108 msgid "inspect.tabs.code.selected.text" msgstr "Texto" -#: src/app/main/ui/inspect/right_sidebar.cljs +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:115 msgid "inspect.tabs.info" msgstr "Información" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:158 msgid "label.shortcuts" msgstr "Atajos de teclado" +#: src/app/main/ui/dashboard/import.cljs:527 msgid "labels.accept" msgstr "Aceptar" -#: src/app/main/ui/settings/sidebar.cljs +#: src/app/main/ui/settings/sidebar.cljs:100 msgid "labels.access-tokens" msgstr "Access tokens" +#: src/app/main/ui/dashboard/team.cljs:968 msgid "labels.active" msgstr "Activo" +#: src/app/main/ui/dashboard/fonts.cljs:175 msgid "labels.add-custom-font" msgstr "Añadir fuente personalizada" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:120, src/app/main/ui/dashboard/team.cljs:276, src/app/main/ui/dashboard/team.cljs:519, src/app/main/ui/dashboard/team.cljs:549, src/app/main/ui/onboarding/team_choice.cljs:67 msgid "labels.admin" msgstr "Administración" +#: src/app/main/ui/onboarding/questions.cljs:174 +msgid "labels.adobe-xd" +msgstr "Adobe XD" + #: src/app/main/ui/workspace/comments.cljs +#, unused msgid "labels.all" msgstr "Todo" +#: src/app/main/ui/auth.cljs:37 msgid "labels.and" msgstr "y" +#: src/app/main/ui/onboarding/team_choice.cljs:162 msgid "labels.back" msgstr "Volver" -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:59 msgid "labels.bad-gateway.desc-message" msgstr "" "Parece que necesitas esperar un poco y volverlo a intentar; estamos " "realizando operaciones de mantenimiento en nuestros servidores." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:58 msgid "labels.bad-gateway.main-message" msgstr "Error del servidor (Bad Gateway)" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/data/common.cljs:112, src/app/main/ui/dashboard/change_owner.cljs:69, src/app/main/ui/dashboard/import.cljs:514, src/app/main/ui/dashboard/team.cljs:868, src/app/main/ui/delete_shared.cljs:35, src/app/main/ui/export.cljs:164, src/app/main/ui/export.cljs:460, src/app/main/ui/settings/access_tokens.cljs:188, src/app/main/ui/viewer/share_link.cljs:203, src/app/main/ui/workspace/sidebar/assets/groups.cljs:149 msgid "labels.cancel" msgstr "Cancelar" +#: src/app/main/ui/onboarding/questions.cljs:176 +msgid "labels.canva" +msgstr "Canva" + +#: src/app/main/ui/dashboard/projects.cljs:93, src/app/main/ui/export.cljs:478, src/app/main/ui/settings/access_tokens.cljs:183, src/app/main/ui/viewer/login.cljs:77, src/app/main/ui/viewer/share_link.cljs:174, src/app/main/ui/workspace/libraries.cljs:522 msgid "labels.close" msgstr "Cerrar" -#: src/app/main/ui/dashboard/comments.cljs +#: src/app/main/ui/dashboard/comments.cljs:104, src/app/main/ui/viewer/comments.cljs:70, src/app/main/ui/workspace/comments.cljs:126 msgid "labels.comments" msgstr "Comentarios" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:985, src/app/main/ui/workspace/main_menu.cljs:110 msgid "labels.community" msgstr "Comunidad" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:103 msgid "labels.confirm-password" msgstr "Confirmar contraseña" +#: src/app/main/ui/dashboard/import.cljs:520, src/app/main/ui/export.cljs:465, src/app/main/ui/onboarding/newsletter.cljs:101 msgid "labels.continue" msgstr "Continuar" +#, unused msgid "labels.continue-with" msgstr "Continúa con" +#: src/app/main/ui/viewer/login.cljs:75 msgid "labels.continue-with-penpot" msgstr "Puedes continuar con una cuenta de Penpot" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:642 msgid "labels.copy-invitation-link" msgstr "Copiar enlace" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:157, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:190 msgid "labels.create" msgstr "Crear" -#: src/app/main/ui/dashboard/team_form.cljs, -#: src/app/main/ui/dashboard/team_form.cljs +#: src/app/main/ui/dashboard/team_form.cljs:101, src/app/main/ui/dashboard/team_form.cljs:121 msgid "labels.create-team" msgstr "Crea un nuevo equipo" +#: src/app/main/ui/dashboard/team_form.cljs:113 msgid "labels.create-team.placeholder" msgstr "Introduce un nuevo nombre de equipo" +#, unused msgid "labels.custom-fonts" msgstr "Fuentes personalizadas" -#: src/app/main/ui/settings/sidebar.cljs +#: src/app/main/ui/settings/sidebar.cljs:73 msgid "labels.dashboard" msgstr "Panel" -#: src/app/main/ui/dashboard/project_menu.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:306, src/app/main/ui/dashboard/fonts.cljs:255, src/app/main/ui/dashboard/fonts.cljs:332, src/app/main/ui/dashboard/fonts.cljs:346, src/app/main/ui/dashboard/project_menu.cljs:115, src/app/main/ui/dashboard/team.cljs:904, src/app/main/ui/settings/access_tokens.cljs:209, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:209 msgid "labels.delete" msgstr "Borrar" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:357 msgid "labels.delete-comment" msgstr "Eliminar comentario" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:354 msgid "labels.delete-comment-thread" msgstr "Eliminar hilo" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:648 msgid "labels.delete-invitation" msgstr "Eliminar invitation" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:262 msgid "labels.delete-multi-files" msgstr "Borrar %s archivos" +#: src/app/main/ui/onboarding/questions.cljs:250 +msgid "labels.developer" +msgstr "Desarrollo" + +#: src/app/main/ui/onboarding/questions.cljs:264 +msgid "labels.director" +msgstr "Director" + +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:199 msgid "labels.discard" msgstr "Descartar" -#: src/app/main/ui/dashboard/projects.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs, -#: src/app/main/ui/dashboard/files.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:28, src/app/main/ui/dashboard/files.cljs:72, src/app/main/ui/dashboard/files.cljs:156, src/app/main/ui/dashboard/projects.cljs:220, src/app/main/ui/dashboard/projects.cljs:224, src/app/main/ui/dashboard/sidebar.cljs:791 msgid "labels.drafts" msgstr "Borradores" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:350, src/app/main/ui/dashboard/fonts.cljs:252, src/app/main/ui/dashboard/team.cljs:902, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:205 msgid "labels.edit" msgstr "Editar" -#: src/app/main/ui/viewer/header.cljs +#, unused msgid "labels.edit-file" msgstr "Editar archivo" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:118, src/app/main/ui/dashboard/team.cljs:279, src/app/main/ui/dashboard/team.cljs:520, src/app/main/ui/dashboard/team.cljs:553, src/app/main/ui/onboarding/team_choice.cljs:66 msgid "labels.editor" msgstr "Edición" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:661 msgid "labels.expired-invitation" msgstr "Expirada" +#: src/app/main/ui/export.cljs:173 msgid "labels.export" msgstr "Exportar" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:51 msgid "labels.feedback-disabled" msgstr "El modulo de recepción de opiniones esta deshabilitado" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:42 msgid "labels.feedback-sent" msgstr "Opinión enviada" +#: src/app/main/ui/onboarding/questions.cljs:170 +msgid "labels.figma" +msgstr "Figma" + +#: src/app/main/ui/dashboard/fonts.cljs:412 msgid "labels.font-family" msgstr "Familia de fuente" +#, unused msgid "labels.font-providers" msgstr "Proveedores de fuentes" +#: src/app/main/ui/dashboard/fonts.cljs:413 msgid "labels.font-variants" msgstr "Estilos" +#: src/app/main/ui/dashboard/fonts.cljs:52, src/app/main/ui/dashboard/sidebar.cljs:811 msgid "labels.fonts" msgstr "Fuentes" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/onboarding/questions.cljs:263 +msgid "labels.founder" +msgstr "CEO o Fundador" + +#: src/app/main/ui/onboarding/questions.cljs:262 +msgid "labels.freelancer" +msgstr "Autónomo" + +#: src/app/main/ui/dashboard/sidebar.cljs:1015, src/app/main/ui/workspace/main_menu.cljs:142 msgid "labels.github-repo" msgstr "Repositorio de Github" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/settings/sidebar.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:1032, src/app/main/ui/settings/sidebar.cljs:113, src/app/main/ui/workspace/main_menu.cljs:171 msgid "labels.give-feedback" msgstr "Danos tu opinión" +#: src/app/main/ui/auth/recovery_request.cljs:110, src/app/main/ui/auth/register.cljs:285, src/app/main/ui/viewer/login.cljs:117 msgid "labels.go-back" msgstr "Volver" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/onboarding/questions.cljs:252 +msgid "labels.graphic-design" +msgstr "Diseño gráfico" + +#: src/app/main/ui/dashboard/sidebar.cljs:978, src/app/main/ui/workspace/main_menu.cljs:102 msgid "labels.help-center" msgstr "Centro de ayuda" -#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/comments.cljs:103, src/app/main/ui/workspace/comments.cljs:67 msgid "labels.hide-resolved-comments" msgstr "Ocultar comentarios resueltos" +#: src/app/main/ui/dashboard/team.cljs:969 msgid "labels.inactive" msgstr "Inactivo" +#: src/app/main/ui/dashboard/fonts.cljs:410 msgid "labels.installed-fonts" msgstr "Fuentes instaladas" -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:144 msgid "labels.internal-error.desc-message" msgstr "" "Ha ocurrido algo extraño. Por favor, reintenta la operación, y si el " "problema persiste, contacta con el servicio técnico." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:143 msgid "labels.internal-error.main-message" msgstr "Error interno" -#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/onboarding/questions.cljs:178 +msgid "labels.invision" +msgstr "InVision" + +#: src/app/main/ui/dashboard/sidebar.cljs:516, src/app/main/ui/dashboard/team.cljs:89, src/app/main/ui/dashboard/team.cljs:97, src/app/main/ui/dashboard/team.cljs:708 msgid "labels.invitations" msgstr "Invitaciones" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:51 msgid "labels.language" msgstr "Idioma" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:1008, src/app/main/ui/workspace/main_menu.cljs:134 msgid "labels.libraries-and-templates" msgstr "Bibliotecas y Plantillas" +#: src/app/main/ui/viewer/header.cljs:203 msgid "labels.log-or-sign" msgstr "Entra o regístrate" -#: src/app/main/ui/settings.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:1040 msgid "labels.logout" msgstr "Salir" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/onboarding/questions.cljs:253 +msgid "labels.marketing" +msgstr "Marketing" + +#: src/app/main/ui/dashboard/team.cljs:468 msgid "labels.member" msgstr "Integrante" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:510, src/app/main/ui/dashboard/team.cljs:87, src/app/main/ui/dashboard/team.cljs:95 msgid "labels.members" msgstr "Integrantes" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:96 msgid "labels.new-password" msgstr "Nueva contraseña" -#: src/app/main/ui/workspace/comments.cljs, -#: src/app/main/ui/dashboard/comments.cljs +#: src/app/main/ui/dashboard/templates.cljs:269, src/app/main/ui/onboarding/questions.cljs:55 +msgid "labels.next" +msgstr "Siguiente" + +#: src/app/main/ui/dashboard/comments.cljs:128, src/app/main/ui/workspace/comments.cljs:161 msgid "labels.no-comments-available" msgstr "¡Ya estás al día! Nuevas notificaciones de comentarios aparecerán aquí." -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:694 msgid "labels.no-invitations" msgstr "No hay invitaciones pendientes." -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:696 #, markdown msgid "labels.no-invitations-hint" msgstr "Pulsa el botón 'Invitar al equipo' para añadir más integrantes al equipo." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:50 msgid "labels.not-found.desc-message" msgstr "Esta página no existe o no tienes permisos para verla." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:49 msgid "labels.not-found.main-message" msgstr "¡Uy!" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/projects.cljs:239, src/app/main/ui/dashboard/team.cljs:1095 msgid "labels.num-of-files" msgid_plural "labels.num-of-files" msgstr[0] "1 archivo" msgstr[1] "%s archivos" +#: src/app/main/ui/viewer/thumbnails.cljs:80 msgid "labels.num-of-frames" msgid_plural "labels.num-of-frames" msgstr[0] "1 tablero" msgstr[1] "%s tableros" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1090 msgid "labels.num-of-projects" msgid_plural "labels.num-of-projects" msgstr[0] "1 proyecto" msgstr[1] "%s proyectos" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:89 msgid "labels.old-password" msgstr "Contraseña anterior" #: src/app/main/ui/workspace/comments.cljs +#, unused msgid "labels.only-yours" msgstr "Sólo los tuyos" +#, unused msgid "labels.or" msgstr "o" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/onboarding/questions.cljs:145, src/app/main/ui/onboarding/questions.cljs:214, src/app/main/ui/onboarding/questions.cljs:303, src/app/main/ui/onboarding/questions.cljs:316, src/app/main/ui/onboarding/questions.cljs:389, src/app/main/ui/onboarding/questions.cljs:447 +msgid "labels.other" +msgstr "Otra (especifica)" + +#: src/app/main/ui/onboarding/questions.cljs:105, src/app/main/ui/onboarding/questions.cljs:180, src/app/main/ui/onboarding/questions.cljs:255, src/app/main/ui/onboarding/questions.cljs:265, src/app/main/ui/onboarding/questions.cljs:357, src/app/main/ui/onboarding/questions.cljs:417 +msgid "labels.other-short" +msgstr "Otra" + +#: src/app/main/ui/dashboard/team.cljs:286, src/app/main/ui/dashboard/team.cljs:518, src/app/main/ui/dashboard/team.cljs:1076 msgid "labels.owner" msgstr "Propiedad" -#: src/app/main/ui/settings/sidebar.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/settings/sidebar.cljs:87 msgid "labels.password" msgstr "Contraseña" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:662 msgid "labels.pending-invitation" msgstr "Pendiente" -#: src/app/main/ui/settings/sidebar.cljs +#: src/app/main/ui/onboarding/questions.cljs:51 +msgid "labels.previous" +msgstr "Anterior" + +#: src/app/main/ui/onboarding/questions.cljs:249 +msgid "labels.product-design" +msgstr "Diseño de Producto o UX" + +#: src/app/main/ui/onboarding/questions.cljs:254 +msgid "labels.product-management" +msgstr "Product Managment" + +#: src/app/main/ui/settings/profile.cljs:118, src/app/main/ui/settings/sidebar.cljs:82 msgid "labels.profile" msgstr "Perfil" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:784 msgid "labels.projects" msgstr "Proyectos" -#: src/app/main/ui/settings/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:998, src/app/main/ui/settings/sidebar.cljs:106, src/app/main/ui/workspace/main_menu.cljs:126 msgid "labels.release-notes" msgstr "Notas de versión" #: src/app/main/ui/workspace.cljs +#, unused msgid "labels.reload-file" msgstr "Recargar archivo" -#: src/app/main/ui/workspace/libraries.cljs, -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/workspace/libraries.cljs, src/app/main/ui/dashboard/team.cljs +#, unused msgid "labels.remove" msgstr "Quitar" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:316 msgid "labels.remove-member" msgstr "Eliminar integrante" -#: src/app/main/ui/dashboard/sidebar.cljs, -#: src/app/main/ui/dashboard/project_menu.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:271, src/app/main/ui/dashboard/project_menu.cljs:85, src/app/main/ui/dashboard/sidebar.cljs:539, src/app/main/ui/workspace/sidebar/assets/groups.cljs:157 msgid "labels.rename" msgstr "Renombrar" -#: src/app/main/ui/dashboard/team_form.cljs +#: src/app/main/ui/dashboard/team_form.cljs:99 msgid "labels.rename-team" msgstr "Renombra el equipo" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:645 msgid "labels.resend-invitation" msgstr "Reenviar invitacion" -#: src/app/main/ui/static.cljs, src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:61, src/app/main/ui/static.cljs:70, src/app/main/ui/static.cljs:148 msgid "labels.retry" msgstr "Reintentar" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:469, src/app/main/ui/dashboard/team.cljs:709 msgid "labels.role" msgstr "Rol" +#: src/app/main/ui/dashboard/fonts.cljs:380, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:191 msgid "labels.save" msgstr "Guardar" +#: src/app/main/ui/onboarding/questions.cljs:414, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:436 msgid "labels.search" msgstr "Buscar" +#: src/app/main/ui/dashboard/fonts.cljs:415 msgid "labels.search-font" msgstr "Buscar fuente" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/onboarding/questions.cljs:90, src/app/main/ui/onboarding/questions.cljs:248, src/app/main/ui/onboarding/questions.cljs:259, src/app/main/ui/onboarding/questions.cljs:270 +msgid "labels.select-option" +msgstr "Selecciona una opción" + +#: src/app/main/ui/settings/feedback.cljs:82 msgid "labels.send" msgstr "Enviar" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:82 msgid "labels.sending" msgstr "Enviando…" -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:68 msgid "labels.service-unavailable.desc-message" msgstr "Estamos en una operación de mantenimiento programado de nuestros sistemas." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:67 msgid "labels.service-unavailable.main-message" msgstr "El servicio no está disponible" -#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:530, src/app/main/ui/dashboard/team.cljs:88, src/app/main/ui/dashboard/team.cljs:102, src/app/main/ui/settings/options.cljs:84, src/app/main/ui/settings/sidebar.cljs:93 msgid "labels.settings" msgstr "Configuración" +#: src/app/main/ui/viewer/header.cljs:199 msgid "labels.share" msgstr "Compartir" -#: src/app/main/ui/viewer/header.cljs, src/app/main/ui/viewer/header.cljs +#, unused msgid "labels.share-prototype" msgstr "Compartir prototipo" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:800 msgid "labels.shared-libraries" msgstr "Bibliotecas" -#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/comments.cljs:82, src/app/main/ui/workspace/comments.cljs:55, src/app/main/ui/workspace/comments.cljs:135 msgid "labels.show-all-comments" msgstr "Mostrar todos los comentarios" +#: src/app/main/ui/viewer/comments.cljs:115 msgid "labels.show-comments-list" msgstr "Mostrar lista de comentarios" -#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/comments.cljs:91, src/app/main/ui/workspace/comments.cljs:61, src/app/main/ui/workspace/comments.cljs:136 msgid "labels.show-your-comments" msgstr "Mostrar sólo tus comentarios" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/onboarding/questions.cljs:172 +msgid "labels.sketch" +msgstr "Sketch" + +#: src/app/main/ui/onboarding/questions.cljs:56 +msgid "labels.start" +msgstr "Comenzar" + +#: src/app/main/ui/dashboard/team.cljs:710 msgid "labels.status" msgstr "Status" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/onboarding/questions.cljs:251 +msgid "labels.student-teacher" +msgstr "Estudiante o profesorado" + +#: src/app/main/ui/onboarding/questions.cljs:260 +msgid "labels.team-leader" +msgstr "Líder de equipo" + +#: src/app/main/ui/onboarding/questions.cljs:261 +msgid "labels.team-member" +msgstr "Miembro de equipo" + +#: src/app/main/ui/dashboard/sidebar.cljs:992, src/app/main/ui/workspace/main_menu.cljs:118 msgid "labels.tutorials" msgstr "Tutoriales" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:256 msgid "labels.unpublish-multi-files" msgstr "Despublicar %s archivos" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:103 msgid "labels.update" msgstr "Actualizar" -#: src/app/main/ui/dashboard/team_form.cljs +#: src/app/main/ui/dashboard/team_form.cljs:120 msgid "labels.update-team" msgstr "Actualiza el equipo" +#: src/app/main/ui/dashboard/fonts.cljs:241 msgid "labels.upload" msgstr "Cargar" +#: src/app/main/ui/dashboard/fonts.cljs:169 msgid "labels.upload-custom-fonts" msgstr "Cargar fuente" +#: src/app/main/ui/dashboard/fonts.cljs:240 msgid "labels.uploading" msgstr "Subiendo…" +#: src/app/main/ui/workspace/sidebar/sitemap.cljs:223 msgid "labels.view-only" msgstr "Solo lectura" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:123, src/app/main/ui/dashboard/team.cljs:282, src/app/main/ui/dashboard/team.cljs:521 msgid "labels.viewer" msgstr "Visualizador" +#: src/app/main/ui/dashboard/sidebar.cljs:523, src/app/main/ui/dashboard/team.cljs:90, src/app/main/ui/dashboard/team.cljs:100, src/app/main/ui/dashboard/team.cljs:880 msgid "labels.webhooks" msgstr "Webhooks" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:194 msgid "labels.write-new-comment" msgstr "Escribir un nuevo comentario" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/team.cljs:237 msgid "labels.you" msgstr "(tú)" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:968 msgid "labels.your-account" msgstr "Tu cuenta" +#: src/app/main/ui/workspace/colorpicker.cljs:297, src/app/main/ui/workspace/colorpicker.cljs:298, src/app/main/ui/workspace/colorpicker.cljs:300 msgid "media.choose-image" msgstr "Elegir imagen" +#, unused msgid "media.gradient" msgstr "Gradiente" +#: src/app/main/data/workspace/media.cljs:275, src/app/main/ui/components/color_bullet.cljs:32, src/app/main/ui/components/color_bullet.cljs:45, src/app/main/ui/viewer/inspect/attributes/common.cljs:66, src/app/main/ui/workspace/colorpicker.cljs:211, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:237 msgid "media.image" msgstr "Imagen" +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:77 msgid "media.image.short" msgstr "img" +#: src/app/main/ui/workspace/colorpicker.cljs:290 msgid "media.keep-aspect-ratio" msgstr "Mantener la proporción" +#: src/app/main/ui/workspace/colorpicker.cljs:208 msgid "media.linear" msgstr "Linear" -#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs +#: src/app/main/data/media.cljs:49, src/app/main/data/workspace/media.cljs:223, src/app/main/data/workspace/media.cljs:453 msgid "media.loading" msgstr "Cargando imagen…" +#: src/app/main/ui/workspace/colorpicker.cljs:209 msgid "media.radial" msgstr "Radial" +#: src/app/main/ui/workspace/colorpicker.cljs:206 msgid "media.solid" msgstr "Sólido" +#: src/app/main/data/common.cljs:111 msgid "modals.add-shared-confirm-empty.hint" msgstr "" "Tu biblioteca está vacía. Una vez que se agregue como Biblioteca " "Compartida, los recursos que crees estarán disponibles para ser utilizados " "entre el resto de tus archivos. ¿Estás seguro de que deseas publicarlo?" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/data/common.cljs:113 msgid "modals.add-shared-confirm.accept" msgstr "Añadir como Biblioteca Compartida" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/data/common.cljs:111 msgid "modals.add-shared-confirm.hint" msgstr "" "Una vez añadido como Biblioteca Compartida, los recursos de este archivo " "estarán disponibles para ser usado por el resto de tus archivos." -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/data/common.cljs:110 msgid "modals.add-shared-confirm.message" msgstr "Añadir “%s” como Biblioteca Compartida" -#: src/app/main/ui/workspace/nudge.cljs +#: src/app/main/ui/workspace/nudge.cljs:60 msgid "modals.big-nudge" msgstr "Máximo" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:127 msgid "modals.change-email.confirm-email" msgstr "Verificar el nuevo correo" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:114 msgid "modals.change-email.info" msgstr "Enviaremos un mensaje a tu correo actual “%s” para verificar tu identidad." -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:119 msgid "modals.change-email.new-email" msgstr "Nuevo correo" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:136 msgid "modals.change-email.submit" msgstr "Cambiar correo" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:107 msgid "modals.change-email.title" msgstr "Cambiar tu correo" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:165, src/app/main/ui/settings/access_tokens.cljs:171 msgid "modals.create-access-token.copy-token" msgstr "Copiar token" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:142 msgid "modals.create-access-token.expiration-date.label" msgstr "Fecha de expiración" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:136 msgid "modals.create-access-token.name.label" msgstr "Nombre" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:138 msgid "modals.create-access-token.name.placeholder" msgstr "El nombre te pude ayudar a saber para qué se utiliza el token" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:191 msgid "modals.create-access-token.submit-label" msgstr "Crear token" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:123 msgid "modals.create-access-token.title" msgstr "Generar access token" +#: src/app/main/ui/dashboard/team.cljs:873 msgid "modals.create-webhook.submit-label" msgstr "Crear webhook" +#: src/app/main/ui/dashboard/team.cljs:838 msgid "modals.create-webhook.title" msgstr "Crear webhook" +#: src/app/main/ui/dashboard/team.cljs:849 msgid "modals.create-webhook.url.label" msgstr "Payload URL" +#: src/app/main/ui/dashboard/team.cljs:850 msgid "modals.create-webhook.url.placeholder" msgstr "https://example.com/postreceive" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:271 msgid "modals.delete-acces-token.accept" msgstr "Borrar token" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:270 msgid "modals.delete-acces-token.message" msgstr "¿Seguro que deseas borrar este token?" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:269 msgid "modals.delete-acces-token.title" msgstr "Borrar token" -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:59 msgid "modals.delete-account.cancel" msgstr "Cancelar y mantener mi cuenta" -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:64 msgid "modals.delete-account.confirm" msgstr "Si, borrar mi cuenta" -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:53 msgid "modals.delete-account.info" msgstr "Si borras tu cuenta perderás todos tus proyectos y archivos." -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:46 msgid "modals.delete-account.title" msgstr "¿Seguro que quieres borrar tu cuenta?" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:298 msgid "modals.delete-comment-thread.accept" msgstr "Eliminar conversación" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:297 msgid "modals.delete-comment-thread.message" msgstr "" "¿Seguro que quieres eliminar esta conversación? Todos los comentarios en " "este hilo serán eliminados." -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:296 msgid "modals.delete-comment-thread.title" msgstr "Eliminar conversación" +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:140 msgid "modals.delete-component-annotation.message" msgstr "¿Seguro que quieres borrar esta nota?" +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:139 msgid "modals.delete-component-annotation.title" msgstr "Borrar nota" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:123 msgid "modals.delete-file-confirm.accept" msgstr "Borrar archivo" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:122 msgid "modals.delete-file-confirm.message" msgstr "¿Seguro que quieres borrar este archivo?" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:121 msgid "modals.delete-file-confirm.title" msgstr "Borrando archivo" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:117 msgid "modals.delete-file-multi-confirm.accept" msgstr "Borrar archivos" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:116 msgid "modals.delete-file-multi-confirm.message" msgstr "¿Seguro que quieres borrar %s archivos?" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:115 msgid "modals.delete-file-multi-confirm.title" msgstr "Borrando %s archivos" +#: src/app/main/ui/dashboard/fonts.cljs:345 msgid "modals.delete-font-variant.message" msgstr "" "Estas seguro de querer eliminar esta estilo de fuente? Dejara de cargar si " "es usada en algun fichero." +#: src/app/main/ui/dashboard/fonts.cljs:344 msgid "modals.delete-font-variant.title" msgstr "Eliminando estilo de fuente" +#: src/app/main/ui/dashboard/fonts.cljs:331 msgid "modals.delete-font.message" msgstr "" "¿Seguro que quieres eliminar esta fuente? Si está siendo usada en algún " "fichero no se cargará." +#: src/app/main/ui/dashboard/fonts.cljs:330 msgid "modals.delete-font.title" msgstr "Eliminando fuente" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs +#: src/app/main/ui/workspace/context_menu.cljs:522, src/app/main/ui/workspace/sidebar/sitemap.cljs:45 msgid "modals.delete-page.body" msgstr "¿Seguro que quieres borrar esta página?" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs +#: src/app/main/ui/workspace/context_menu.cljs:521, src/app/main/ui/workspace/sidebar/sitemap.cljs:44 msgid "modals.delete-page.title" msgstr "Borrar página" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:69 msgid "modals.delete-project-confirm.accept" msgstr "Eliminar proyecto" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:68 msgid "modals.delete-project-confirm.message" msgstr "¿Seguro que quieres eliminar este proyecto?" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:67 msgid "modals.delete-project-confirm.title" msgstr "Eliminar proyecto" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:51 msgid "modals.delete-shared-confirm.accept" msgid_plural "modals.delete-shared-confirm.accept" msgstr[0] "Borrar archivo" msgstr[1] "Borrar archivos" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:55 msgid "modals.delete-shared-confirm.activated.no-files-message" msgid_plural "modals.delete-shared-confirm.activated.no-files-message" msgstr[0] "No está activa en ningún fichero." msgstr[1] "No están activas en ningún fichero." -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:57 msgid "modals.delete-shared-confirm.activated.scd-message" msgid_plural "modals.delete-shared-confirm.activated.scd-message" msgstr[0] "Esta biblioteca está activa aquí: " msgstr[1] "Estas bibliotecas están activas aquí: " -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:46 msgid "modals.delete-shared-confirm.message" msgid_plural "modals.delete-shared-confirm.message" msgstr[0] "¿Seguro que quieres borrar este archivo?" msgstr[1] "¿Seguro que quieres borrar estos archivos?" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:41 msgid "modals.delete-shared-confirm.title" msgid_plural "modals.delete-shared-confirm.title" msgstr[0] "Borrando archivo" msgstr[1] "Borrando archivos" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:435 msgid "modals.delete-team-confirm.accept" msgstr "Eliminar equipo" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:434 msgid "modals.delete-team-confirm.message" msgstr "" "¿Seguro que quieres eliminar este equipo? Todos los proyectos y archivos " "asociados con el equipo serán eliminados permamentemente." -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:433 msgid "modals.delete-team-confirm.title" msgstr "Eliminando equipo" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:427 msgid "modals.delete-team-member-confirm.accept" msgstr "Eliminando miembro" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:426 msgid "modals.delete-team-member-confirm.message" msgstr "¿Seguro que quieres eliminar este integrante del equipo?" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:425 msgid "modals.delete-team-member-confirm.title" msgstr "Eliminar integrante del equipo" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:59 msgid "modals.delete-unpublish-shared-confirm.activated.hint" msgid_plural "modals.delete-unpublish-shared-confirm.activated.hint" msgstr[0] "" @@ -2080,3341 +2323,3641 @@ msgstr[1] "" "Los elementos que hayan sido utilizados en esos archivos permanecerán allí " "(¡ningún diseño se romperá!)." +#: src/app/main/ui/dashboard/team.cljs:942 msgid "modals.delete-webhook.accept" msgstr "Borrar webhook" +#: src/app/main/ui/dashboard/team.cljs:941 msgid "modals.delete-webhook.message" msgstr "¿Seguro que quieres borrar este webhook?" +#: src/app/main/ui/dashboard/team.cljs:940 msgid "modals.delete-webhook.title" msgstr "Borrando webhook" +#: src/app/main/ui/dashboard/team.cljs:872 msgid "modals.edit-webhook.submit-label" msgstr "Modificar webhook" +#: src/app/main/ui/dashboard/team.cljs:837 msgid "modals.edit-webhook.title" msgstr "Modificar webhook" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:218 msgid "modals.invite-member-confirm.accept" msgstr "Enviar invitacion" +#: src/app/main/ui/dashboard/team.cljs:213, src/app/main/ui/onboarding/team_choice.cljs:156 msgid "modals.invite-member.emails" msgstr "Emails, separados por coma" +#: src/app/main/ui/dashboard/team.cljs:197 msgid "modals.invite-member.repeated-invitation" msgstr "" "Algunas direcciones de correo ya se encuentran entre los miembros. Estas " "invitaciones no serán enviadas." -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:190 msgid "modals.invite-team-member.title" msgstr "Invitar a miembros al equipo" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:423, src/app/main/ui/dashboard/team.cljs:393 msgid "modals.leave-and-close-confirm.hint" msgstr "" "Al ser la única persona integrante de este equipo, el equipo será eliminado " "junto con sus proyectos y archivos." -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:422, src/app/main/ui/dashboard/team.cljs:392 msgid "modals.leave-and-close-confirm.message" msgstr "¿Seguro que quieres abandonar el equipo %s?" +#: src/app/main/ui/dashboard/change_owner.cljs:59 msgid "modals.leave-and-reassign.forbidden" msgstr "" "No puede abandonar el equipo si no hay otro miembro al que promocionar a " "dueño. Quizás quiere borrar el equipo." -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/change_owner.cljs:55 msgid "modals.leave-and-reassign.hint1" msgstr "" "Tienes la propiedad de este equipo. Por favor selecciona otra persona " "integrante para promover al rol Propiedad." -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/change_owner.cljs:78 msgid "modals.leave-and-reassign.promote-and-leave" msgstr "Promocionar y abandonar" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/change_owner.cljs:34 msgid "modals.leave-and-reassign.select-member-to-promote" msgstr "Selecciona un miembro a promocionar" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/change_owner.cljs:49 msgid "modals.leave-and-reassign.title" msgstr "Antes de que abandones" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:402, src/app/main/ui/dashboard/sidebar.cljs:424, src/app/main/ui/dashboard/team.cljs:394, src/app/main/ui/dashboard/team.cljs:416 msgid "modals.leave-confirm.accept" msgstr "Abandonar el equipo" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:401, src/app/main/ui/dashboard/team.cljs:415 msgid "modals.leave-confirm.message" msgstr "¿Seguro que quieres abandonar este equipo?" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:400, src/app/main/ui/dashboard/sidebar.cljs:421, src/app/main/ui/dashboard/team.cljs:391, src/app/main/ui/dashboard/team.cljs:414 msgid "modals.leave-confirm.title" msgstr "Abandonando el equipo" +#: src/app/main/ui/delete_shared.cljs:53 msgid "modals.move-shared-confirm.accept" msgid_plural "modals.move-shared-confirm.accept" msgstr[0] "Mover" msgstr[1] "Mover" +#: src/app/main/ui/delete_shared.cljs:48 msgid "modals.move-shared-confirm.message" msgid_plural "modals.move-shared-confirm.message" msgstr[0] "¿Seguro que quieres mover esta biblioteca?" msgstr[1] "¿Seguro que quieres mover estas bibliotecas?" +#: src/app/main/ui/delete_shared.cljs:43 msgid "modals.move-shared-confirm.title" msgid_plural "modals.move-shared-confirm.title" msgstr[0] "Mover biblioteca" msgstr[1] "Mover bibliotecas" -#: src/app/main/ui/workspace/nudge.cljs +#: src/app/main/ui/workspace/main_menu.cljs:266, src/app/main/ui/workspace/nudge.cljs:47 msgid "modals.nudge-title" msgstr "Desplazamiento" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:340 msgid "modals.promote-owner-confirm.accept" msgstr "Transferir propiedad" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:339 msgid "modals.promote-owner-confirm.hint" msgstr "" "Si transfieres la propiedad, tu rol cambiará a Administración, perdiendo " "algunos permisos sobre este equipo. " -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:338 msgid "modals.promote-owner-confirm.message" msgstr "" "Tienes la propiedad de este equipo. ¿Seguro que quieres transferir la " "propiedad del equipo a %s?" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:337 msgid "modals.promote-owner-confirm.title" msgstr "Nueva propiedad del equipo" +#: src/app/main/ui/workspace/libraries.cljs:188 msgid "modals.publish-empty-library.accept" msgstr "Publicar" +#: src/app/main/ui/workspace/libraries.cljs:187 msgid "modals.publish-empty-library.message" msgstr "Tu biblioteca está vacía. ¿Seguro que quieres publicarla?" +#: src/app/main/ui/workspace/libraries.cljs:186 msgid "modals.publish-empty-library.title" msgstr "Publicar biblioteca vacía" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "modals.remove-shared-confirm.accept" msgstr "Eliminar como Biblioteca Compartida" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "modals.remove-shared-confirm.hint" msgstr "" "Una vez eliminado como Biblioteca Compartida, la Biblioteca de este archivo " "dejará de estar disponible para ser usada por el resto de tus archivos." -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "modals.remove-shared-confirm.message" msgstr "Añadir “%s” como Biblioteca Compartida" -#: src/app/main/ui/workspace/nudge.cljs +#: src/app/main/ui/workspace/nudge.cljs:53 msgid "modals.small-nudge" msgstr "Mínimo" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:52 msgid "modals.unpublish-shared-confirm.accept" msgid_plural "modals.unpublish-shared-confirm.accept" msgstr[0] "Despublicar" msgstr[1] "Despublicar" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:47 msgid "modals.unpublish-shared-confirm.message" msgid_plural "modals.unpublish-shared-confirm.message" msgstr[0] "¿Seguro que quieres despublicar esta biblioteca?" msgstr[1] "¿Seguro que quieres despublicar estas bibliotecas?" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:42 msgid "modals.unpublish-shared-confirm.title" msgid_plural "modals.unpublish-shared-confirm.title" msgstr[0] "Despublicar biblioteca" msgstr[1] "Despublicar bibliotecas" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#, unused msgid "modals.update-remote-component-in-bulk.hint" msgstr "" "Vas a actualizar componentes en una biblioteca compartida. Esto puede " "afectar a otros archivos que la usen." -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#, unused msgid "modals.update-remote-component-in-bulk.message" msgstr "Actualizar componentes en biblioteca" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:380 msgid "modals.update-remote-component.accept" msgstr "Actualizar" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:379 msgid "modals.update-remote-component.cancel" msgstr "Cancelar" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:378 msgid "modals.update-remote-component.hint" msgstr "" "Vas a actualizar un componente en una biblioteca compartida. Esto puede " "afectar a otros archivos que la usen." -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:377 msgid "modals.update-remote-component.message" msgstr "Actualizar un componente en biblioteca" -#: src/app/main/data/common.cljs +#: src/app/main/data/common.cljs:71 msgid "notifications.by-code.upgrade-version" msgstr "Una nueva versión está disponible, por favor actualiza la página" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:154, src/app/main/ui/dashboard/team.cljs:595 msgid "notifications.invitation-email-sent" msgstr "Invitación enviada con éxito" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:616 msgid "notifications.invitation-link-copied" msgstr "Enlace de invitacion copiado" -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:24 msgid "notifications.profile-deletion-not-allowed" msgstr "No puedes borrar tu perfil. Reasigna tus equipos antes de seguir." -#: src/app/main/ui/settings/profile.cljs, src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:29, src/app/main/ui/settings/profile.cljs:35 msgid "notifications.profile-saved" msgstr "Perfil guardado correctamente!" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:63 msgid "notifications.validation-email-sent" msgstr "Verificación de email enviada a %s. Comprueba tu correo." +#, unused msgid "onboarding-v2.before-start.desc1" msgstr "" "Hay multitud de recursos disponibles para ayudarte a comenzar con Penpot, " "como son la Guía de usuario y nuestro canal de Youtube." +#, unused msgid "onboarding-v2.before-start.desc2" msgstr "" "Información detallada sobre cómo usar Penpot. Desde prototipar a organizar " "y compartir diseños." +#, unused msgid "onboarding-v2.before-start.desc2.title" msgstr "Guía de usuario" +#, unused msgid "onboarding-v2.before-start.desc3" msgstr "Puedes ver nuestros tutoriales y los hechos por la comunidad." +#, unused msgid "onboarding-v2.before-start.desc3.title" msgstr "Tutoriales de video" +#, unused msgid "onboarding-v2.before-start.title" msgstr "Antes de comenzar" +#: src/app/main/ui/onboarding/newsletter.cljs:63 msgid "onboarding-v2.newsletter.desc" msgstr "" "Suscríbete a la newsletter de Penpot para estar al día de los progresos del " "producto y noticias." +#: src/app/main/ui/onboarding/newsletter.cljs:83 msgid "onboarding-v2.newsletter.news" msgstr "" "Quiero recibir noticias sobre Penpot (artículos del blog, vídeo tutoriales, " "directos...)." +#: src/app/main/ui/onboarding/newsletter.cljs:91 msgid "onboarding-v2.newsletter.privacy1" msgstr "Nos importa la privacidad, aquí puedes leer nuestra " +#: src/app/main/ui/onboarding/newsletter.cljs:97 msgid "onboarding-v2.newsletter.privacy2" msgstr "" "Sólo te enviaremos emails relevantes para ti. Puedes desuscribirte en " "cualquier momento usando el vínculo de desuscripción en cualquiera de " "nuestras newsletters." +#: src/app/main/ui/onboarding/newsletter.cljs:71 msgid "onboarding-v2.newsletter.updates" msgstr "" "Quiero recibir información sobre actualizaciones del producto (nuevas " "funcionalidades, releases, mejoras...)." +#, unused msgid "onboarding-v2.welcome.desc1" msgstr "" "Penpot es Código Abierto y está hecho por Kaleidos y la comunidad, donde ya " "hay mucha gente ayudándose unos a otros. Formas de colaborar:" +#, unused msgid "onboarding-v2.welcome.desc2" msgstr "" "Un espacio público donde aprender, compatir y discutir sobre el presente y " "futuro con toda la Comunidad y el equipo de Penpot." +#, unused msgid "onboarding-v2.welcome.desc2.title" msgstr "Participando en la Comunidad" +#, unused msgid "onboarding-v2.welcome.desc3" msgstr "" "Aquí encontrarás cómo colaborar con traducciones, solicitar " "funcionalidades, contribuir en el código, cazar errores…" +#, unused msgid "onboarding-v2.welcome.desc3.title" msgstr "Guía de contribución" +#: src/app/main/ui/onboarding/team_choice.cljs:31 msgid "onboarding-v2.welcome.title" msgstr "¡Te damos la bienvenida a Penpot!" +#: src/app/main/ui/onboarding/team_choice.cljs:229 msgid "onboarding.choice.team-up.continue-creating-team" msgstr "Continuar creando equipo" +#: src/app/main/ui/onboarding/team_choice.cljs:239 msgid "onboarding.choice.team-up.continue-without-a-team" msgstr "Seguir sin equipo" +#: src/app/main/ui/onboarding/team_choice.cljs:167 msgid "onboarding.choice.team-up.create-team-and-invite" msgstr "Crear equipo e invitar" +#, unused msgid "onboarding.choice.team-up.create-team-and-send-invites" msgstr "Crear equipo y enviar invitaciones" +#: src/app/main/ui/onboarding/team_choice.cljs:170 msgid "onboarding.choice.team-up.create-team-and-send-invites-description" msgstr "Podrás enviar invitaciones después" +#: src/app/main/ui/onboarding/team_choice.cljs:215 msgid "onboarding.choice.team-up.create-team-desc" msgstr "Tras nombrar tu equipo podrás invitar a personas para que se unan." +#: src/app/main/ui/onboarding/team_choice.cljs:224 msgid "onboarding.choice.team-up.create-team-placeholder" msgstr "Introduce el nombre del equipo" +#: src/app/main/ui/onboarding/team_choice.cljs:168 msgid "onboarding.choice.team-up.create-team-without-invite" msgstr "Crear equipo" +#, unused msgid "onboarding.choice.team-up.create-team-without-inviting" msgstr "Crear equipo sin invitar" +#: src/app/main/ui/dashboard/projects.cljs:89, src/app/main/ui/onboarding/team_choice.cljs:140 msgid "onboarding.choice.team-up.invite-members" msgstr "Invitar integrantes" +#: src/app/main/ui/onboarding/team_choice.cljs:141 msgid "onboarding.choice.team-up.invite-members-info" msgstr "" "No olvides incluir personas de desarrollo, diseño, gestión… la diversidad " "suma :)" +#: src/app/main/ui/dashboard/team.cljs:202, src/app/main/ui/onboarding/team_choice.cljs:146 msgid "onboarding.choice.team-up.roles" msgstr "Invitar con el rol:" +#: src/app/main/ui/onboarding/team_choice.cljs:232 msgid "onboarding.choice.team-up.start-without-a-team" msgstr "Comenzar sin equipo" +#: src/app/main/ui/onboarding/team_choice.cljs:234 msgid "onboarding.choice.team-up.start-without-a-team-description" msgstr "Podrás crear un equipo después." +#, unused msgid "onboarding.newsletter.accept" msgstr "Si, suscribirme" +#: src/app/main/ui/onboarding/newsletter.cljs:40 msgid "onboarding.newsletter.acceptance-message" msgstr "" "Tu solicitud de suscripción ha sido enviada, te haremos una confirmación a " "tu email." +#: src/app/main/ui/onboarding/newsletter.cljs:95 msgid "onboarding.newsletter.policy" msgstr "Política de Privacidad." +#: src/app/main/ui/onboarding/newsletter.cljs:60 msgid "onboarding.newsletter.title" msgstr "¿Quieres recibir noticias sobre Penpot?" +#: src/app/main/ui/onboarding/questions.cljs:118 +msgid "onboarding.questions.lets-get-started" +msgstr "¡Empecemos!" + +#: src/app/main/ui/onboarding/questions.cljs:99 +msgid "onboarding.questions.reasons.alternative" +msgstr "Buscar una alternativa a Figma, XD, etc." + +#: src/app/main/ui/onboarding/questions.cljs:93 +msgid "onboarding.questions.reasons.exploring" +msgstr "Estoy echando un vistazo" + +#: src/app/main/ui/onboarding/questions.cljs:96 +msgid "onboarding.questions.reasons.fit" +msgstr "Averiguar si Penpot es una buena opción para mi equipo" + +#: src/app/main/ui/onboarding/questions.cljs:102 +msgid "onboarding.questions.reasons.testing" +msgstr "Probar antes de self-hosting" + +#: src/app/main/ui/onboarding/questions.cljs:355 +msgid "onboarding.questions.start-with.code" +msgstr "Generando código a partir de diseños" + +#: src/app/main/ui/onboarding/questions.cljs:353 +msgid "onboarding.questions.start-with.ds" +msgstr "Creando sistemas de diseño" + +#: src/app/main/ui/onboarding/questions.cljs:351 +msgid "onboarding.questions.start-with.prototyping" +msgstr "Prototipado" + +#: src/app/main/ui/onboarding/questions.cljs:347 +msgid "onboarding.questions.start-with.ui" +msgstr "Diseñando el UX/UI de una aplicación" + +#: src/app/main/ui/onboarding/questions.cljs:349 +msgid "onboarding.questions.start-with.wireframing" +msgstr "Wireframing" + +#: src/app/main/ui/onboarding/questions.cljs:126 +msgid "onboarding.questions.step1.question1" +msgstr "¿Para qué utilizarás Penpot?" + +#: src/app/main/ui/onboarding/questions.cljs:133 +msgid "onboarding.questions.step1.question2" +msgstr "¿Qué te ha traído a Penpot?" + +#: src/app/main/ui/onboarding/questions.cljs:122 +msgid "onboarding.questions.step1.subtitle" +msgstr "" +"Cuéntanos un poco sobre tí para ayudarnos a que Penpot se adapte mejor a " +"tí. Tus respuestas nos ayudarán a priorizar nuevas funcionalidades y a " +"saber cómo podemos acompañarte mejor." + +#: src/app/main/ui/onboarding/questions.cljs:120 +msgid "onboarding.questions.step1.title" +msgstr "Ayúdanos a conocerte" + +#: src/app/main/ui/onboarding/questions.cljs:201 +msgid "onboarding.questions.step2.title" +msgstr "¿Cuál de estas herramientas utilizas más?" + +#: src/app/main/ui/onboarding/questions.cljs:294 +msgid "onboarding.questions.step3.question1" +msgstr "¿Qué tipo de trabajo haces?" + +#: src/app/main/ui/onboarding/questions.cljs:307 +msgid "onboarding.questions.step3.question2" +msgstr "¿Cuál es tu puesto?" + +#: src/app/main/ui/onboarding/questions.cljs:320 +msgid "onboarding.questions.step3.question3" +msgstr "¿Cuál es el tamaño de tu empresa?" + +#: src/app/main/ui/onboarding/questions.cljs:292 +msgid "onboarding.questions.step3.title" +msgstr "Háblanos de tu trabajo" + +#: src/app/main/ui/onboarding/questions.cljs:376 +msgid "onboarding.questions.step4.title" +msgstr "¿Por dónde te apetecería empezar?" + +#: src/app/main/ui/onboarding/questions.cljs:437 +msgid "onboarding.questions.step5.title" +msgstr "¿Cómo nos has descubierto?" + +#: src/app/main/ui/onboarding/questions.cljs:273 +msgid "onboarding.questions.team-size.11-30" +msgstr "11-30" + +#: src/app/main/ui/onboarding/questions.cljs:274 +msgid "onboarding.questions.team-size.2-10" +msgstr "2-10" + +#: src/app/main/ui/onboarding/questions.cljs:272 +msgid "onboarding.questions.team-size.31-50" +msgstr "31-50" + +#: src/app/main/ui/onboarding/questions.cljs:275 +msgid "onboarding.questions.team-size.freelancer" +msgstr "Soy autónomo" + +#: src/app/main/ui/onboarding/questions.cljs:271 +msgid "onboarding.questions.team-size.more-than-50" +msgstr "Más de 50" + +#: src/app/main/ui/onboarding/questions.cljs:276 +msgid "onboarding.questions.team-size.personal-project" +msgstr "Estoy trabajando en un proyecto personal" + +#: src/app/main/ui/onboarding/questions.cljs:85 +msgid "onboarding.questions.use.education" +msgstr "Educación" + +#: src/app/main/ui/onboarding/questions.cljs:86 +msgid "onboarding.questions.use.personal" +msgstr "Personal" + +#: src/app/main/ui/onboarding/questions.cljs:84 +msgid "onboarding.questions.use.work" +msgstr "Trabajo" + +#: src/app/main/ui/onboarding/team_choice.cljs:213 msgid "onboarding.team-modal.create-team" msgstr "Crea un equipo" +#: src/app/main/ui/onboarding/team_choice.cljs:35 msgid "onboarding.team-modal.create-team-desc" msgstr "" "Un equipo permite colaborar en Penpot trabajando en los mismos archivos y " "proyectos." +#: src/app/main/ui/onboarding/team_choice.cljs:40 msgid "onboarding.team-modal.create-team-feature-1" msgstr "Archivos y proyectos ilimitados" +#: src/app/main/ui/onboarding/team_choice.cljs:44 msgid "onboarding.team-modal.create-team-feature-2" msgstr "Edición multijugador" +#: src/app/main/ui/onboarding/team_choice.cljs:48 msgid "onboarding.team-modal.create-team-feature-3" msgstr "Gestión de roles" +#: src/app/main/ui/onboarding/team_choice.cljs:52 msgid "onboarding.team-modal.create-team-feature-4" msgstr "Sin límite de integrantes" +#: src/app/main/ui/onboarding/team_choice.cljs:56 msgid "onboarding.team-modal.create-team-feature-5" msgstr "¡100% gratis!" +#: src/app/main/ui/onboarding/team_choice.cljs:33 msgid "onboarding.team-modal.team-definition" msgstr "¿Qué es un equipo?" +#: src/app/main/ui/onboarding/templates.cljs:78 msgid "onboarding.templates.subtitle" msgstr "Aquí tienes algunas plantillas." +#: src/app/main/ui/onboarding/templates.cljs:77 msgid "onboarding.templates.title" msgstr "Empezar a diseñar" +#, unused msgid "onboarding.welcome.alt" msgstr "Penpot" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:99 msgid "profile.recovery.go-to-login" msgstr "Ir al login" -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.step1.title" -msgstr "Ayúdanos a conocerte" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.step1.subtitle" -msgstr "Cuéntanos un poco sobre tí para ayudarnos a que Penpot se adapte mejor a tí. Tus respuestas nos ayudarán a priorizar nuevas funcionalidades y a saber cómo podemos acompañarte mejor." - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.step1.question1" -msgstr "¿Para qué utilizarás Penpot?" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.use.work" -msgstr "Trabajo" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.use.education" -msgstr "Educación" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.use.personal" -msgstr "Personal" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.step1.question2" -msgstr "¿Qué te ha traído a Penpot?" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.reasons.exploring" -msgstr "Estoy echando un vistazo" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.reasons.fit" -msgstr "Averiguar si Penpot es una buena opción para mi equipo" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.reasons.alternative" -msgstr "Buscar una alternativa a Figma, XD, etc." - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.reasons.testing" -msgstr "Probar antes de self-hosting" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.step2.title" -msgstr "¿Cuál de estas herramientas utilizas más?" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.adobe-xd" -msgstr "Adobe XD" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.canva" -msgstr "Canva" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.figma" -msgstr "Figma" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.invision" -msgstr "InVision" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.sketch" -msgstr "Sketch" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.step3.title" -msgstr "Háblanos de tu trabajo" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.step3.question1" -msgstr "¿Qué tipo de trabajo haces?" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.product-design" -msgstr "Diseño de Producto o UX" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.developer" -msgstr "Desarrollo" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.graphic-design" -msgstr "Diseño gráfico" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.marketing" -msgstr "Marketing" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.product-management" -msgstr "Product Managment" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.step3.question2" -msgstr "¿Cuál es tu puesto?" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.team-leader" -msgstr "Líder de equipo" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.team-member" -msgstr "Miembro de equipo" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.freelancer" -msgstr "Autónomo" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.founder" -msgstr "CEO o Fundador" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.director" -msgstr "Director" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.step3.question3" -msgstr "¿Cuál es el tamaño de tu empresa?" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.team-size.more-than-50" -msgstr "Más de 50" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.team-size.31-50" -msgstr "31-50" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.team-size.11-30" -msgstr "11-30" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.team-size.2-10" -msgstr "2-10" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.team-size.freelancer" -msgstr "Soy autónomo" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.team-size.personal-project" -msgstr "Estoy trabajando en un proyecto personal" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.step4.title" -msgstr "¿Por dónde te apetecería empezar?" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.start-with.ui" -msgstr "Diseñando el UX/UI de una aplicación" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.start-with.wireframing" -msgstr "Wireframing" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.start-with.prototyping" -msgstr "Prototipado" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.start-with.ds" -msgstr "Creando sistemas de diseño" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.start-with.code" -msgstr "Generando código a partir de diseños" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.step5.title" -msgstr "¿Cómo nos has descubierto?" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.lets-get-started" -msgstr "¡Empecemos!" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.next" -msgstr "Siguiente" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.other" -msgstr "Otra (especifica)" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.other-short" -msgstr "Otra" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.previous" -msgstr "Anterior" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.select-option" -msgstr "Selecciona una opción" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.start" -msgstr "Comenzar" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.student-teacher" -msgstr "Estudiante o profesorado" - -#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, +#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:221 msgid "settings.detach" msgstr "Desacoplar" -#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs +#: src/app/main/ui/viewer/inspect/exports.cljs:147, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:631, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:137, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:148, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:188, src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:158, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:399, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:410, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:430, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:441, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:458, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:472, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:309, src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:183, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:373, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:389, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:245, src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:172 msgid "settings.multiple" msgstr "Varios" -#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:271 msgid "settings.select-this-color" msgstr "Seleccionar elementos que usan este estilo" # SECTIONS +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:414 msgid "shortcut-section.basics" msgstr "Básicos" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:420 msgid "shortcut-section.dashboard" msgstr "Panel" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:423 msgid "shortcut-section.viewer" msgstr "Modo visualización" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:417 msgid "shortcut-section.workspace" msgstr "Área de trabajo" # SUBSECTIONS +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:56 msgid "shortcut-subsection.alignment" msgstr "Alineamiento" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:57 msgid "shortcut-subsection.edit" msgstr "Editar" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:58 msgid "shortcut-subsection.general-dashboard" msgstr "Genérico" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:59 msgid "shortcut-subsection.general-viewer" msgstr "Genérico" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:60 msgid "shortcut-subsection.main-menu" msgstr "Menu principal" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:61 msgid "shortcut-subsection.modify-layers" msgstr "Modificar capas" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:62 msgid "shortcut-subsection.navigation-dashboard" msgstr "Navegación" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:63 msgid "shortcut-subsection.navigation-viewer" msgstr "Navegación" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:64 msgid "shortcut-subsection.navigation-workspace" msgstr "Navegación" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:65 msgid "shortcut-subsection.panels" msgstr "Paneles" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:66 msgid "shortcut-subsection.path-editor" msgstr "Ruta" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:67 msgid "shortcut-subsection.shape" msgstr "Formas" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:68 msgid "shortcut-subsection.text-editor" msgstr "Textos" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:69 msgid "shortcut-subsection.tools" msgstr "Herramientas" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:70 msgid "shortcut-subsection.zoom-viewer" msgstr "Zoom" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:71 msgid "shortcut-subsection.zoom-workspace" msgstr "Zoom" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:72 msgid "shortcuts.add-comment" msgstr "Añadir comentarios" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:73 msgid "shortcuts.add-node" msgstr "Añadir nodo" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:74 msgid "shortcuts.align-bottom" msgstr "Alinear abajo" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:75 msgid "shortcuts.align-center" msgstr "Alinear al centro" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:76 msgid "shortcuts.align-hcenter" msgstr "Alinear al centro horizontalmente" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:77 msgid "shortcuts.align-justify" msgstr "Alinear justificado" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:78 msgid "shortcuts.align-left" msgstr "Alinear a la izquierda" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:79 msgid "shortcuts.align-right" msgstr "Alinear a la derecha" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:80 msgid "shortcuts.align-top" msgstr "Alinear arriba" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:81 msgid "shortcuts.align-vcenter" msgstr "Alinear al centro verticalmente" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:82 msgid "shortcuts.artboard-selection" msgstr "Crear tablero desde la selección" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:83 msgid "shortcuts.bold" msgstr "Alternar negrita" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:84 msgid "shortcuts.bool-difference" msgstr "Diferencia" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:85 msgid "shortcuts.bool-exclude" msgstr "Exclusión" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:86 msgid "shortcuts.bool-intersection" msgstr "Interescción" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:87 msgid "shortcuts.bool-union" msgstr "Unión" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:88 msgid "shortcuts.bring-back" msgstr "Enviar detrás" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:89 msgid "shortcuts.bring-backward" msgstr "Enviar al fondo" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:90 msgid "shortcuts.bring-forward" msgstr "Mover al frente" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:91 msgid "shortcuts.bring-front" msgstr "Mover hacia adelante" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:92 msgid "shortcuts.clear-undo" msgstr "Limpiar historial" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:93 msgid "shortcuts.copy" msgstr "Copiar" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:94 msgid "shortcuts.create-component" msgstr "Crear componente" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:95 msgid "shortcuts.create-new-project" msgstr "Crear nuevo" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:96 msgid "shortcuts.cut" msgstr "Cortar" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:97 msgid "shortcuts.decrease-zoom" msgstr "Reducir zoom" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:98 msgid "shortcuts.delete" msgstr "Borrar" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:99 msgid "shortcuts.delete-node" msgstr "Borrar nodo" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:100 msgid "shortcuts.detach-component" msgstr "Desacoplar instancia" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:101 msgid "shortcuts.draw-curve" msgstr "Curva" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:102 msgid "shortcuts.draw-ellipse" msgstr "Elipse" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:103 msgid "shortcuts.draw-frame" msgstr "Tablero" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:104 msgid "shortcuts.draw-nodes" msgstr "Dibujar nodos" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:105 msgid "shortcuts.draw-path" msgstr "Ruta" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:106 msgid "shortcuts.draw-rect" msgstr "Rectángulo" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:107 msgid "shortcuts.draw-text" msgstr "Texto" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:108 msgid "shortcuts.duplicate" msgstr "Duplicar" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:109 msgid "shortcuts.escape" msgstr "Cancelar" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:110 msgid "shortcuts.export-shapes" msgstr "Exportar elementos" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:111 msgid "shortcuts.fit-all" msgstr "Zoom abarcar todo" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:112 msgid "shortcuts.flip-horizontal" msgstr "Voltear horizontalmente" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:113 msgid "shortcuts.flip-vertical" msgstr "Voltear verticalmente" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:114 msgid "shortcuts.font-size-dec" msgstr "Decrementar el tamaño de fuente" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:115 msgid "shortcuts.font-size-inc" msgstr "Incrementar el tamaño de fuente" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:116 msgid "shortcuts.go-to-drafts" msgstr "Ir a borradores" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:117 msgid "shortcuts.go-to-libs" msgstr "Ir a bibliotecas compartidas" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:118 msgid "shortcuts.go-to-search" msgstr "Buscar" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:119 msgid "shortcuts.group" msgstr "Agrupar" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:120 msgid "shortcuts.h-distribute" msgstr "Distribuir horizontalmente" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:121 msgid "shortcuts.hide-ui" msgstr "Mostrar/ocultar interfaz" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:122 msgid "shortcuts.increase-zoom" msgstr "Aumentar zoom" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:123 msgid "shortcuts.insert-image" msgstr "Insertar imagen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:124 msgid "shortcuts.italic" msgstr "Alternar cursiva" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:125 msgid "shortcuts.join-nodes" msgstr "Unir nodos" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:126 msgid "shortcuts.letter-spacing-dec" msgstr "Decrementar el espaciado de letras" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:127 msgid "shortcuts.letter-spacing-inc" msgstr "Incrementar el espaciado de letras" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:128 msgid "shortcuts.line-height-dec" msgstr "Decrementar el interlineado" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:129 msgid "shortcuts.line-height-inc" msgstr "Incrementar el interlineado" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:130 msgid "shortcuts.line-through" msgstr "Alternar tachado" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:131 msgid "shortcuts.make-corner" msgstr "Convertir en esquina" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:132 msgid "shortcuts.make-curve" msgstr "Convertir en curva" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:133 msgid "shortcuts.mask" msgstr "Máscara" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:134 msgid "shortcuts.merge-nodes" msgstr "Fusionar nodos" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:135 msgid "shortcuts.move" msgstr "Mover" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:136 msgid "shortcuts.move-fast-down" msgstr "Mover rápidamente hacia abajo" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:137 msgid "shortcuts.move-fast-left" msgstr "Mover rápidamente hacia la izquierda" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:138 msgid "shortcuts.move-fast-right" msgstr "Mover rápidamente hacia la derecha" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:139 msgid "shortcuts.move-fast-up" msgstr "Mover rápidamente hacia arriba" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:140 msgid "shortcuts.move-nodes" msgstr "Mover nodo" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:141 msgid "shortcuts.move-unit-down" msgstr "Mover hacia abajo" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:142 msgid "shortcuts.move-unit-left" msgstr "Mover hacia la izquierda" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:143 msgid "shortcuts.move-unit-right" msgstr "Mover hacia la derecha" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:144 msgid "shortcuts.move-unit-up" msgstr "Mover hacia arriba" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:145 msgid "shortcuts.next-frame" msgstr "Siguiente tablero" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:516 msgid "shortcuts.not-found" msgstr "No hay resultados" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:146 msgid "shortcuts.opacity-0" msgstr "Opacidad 100%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:147 msgid "shortcuts.opacity-1" msgstr "Opacidad 10%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:148 msgid "shortcuts.opacity-2" msgstr "Opacidad 20%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:149 msgid "shortcuts.opacity-3" msgstr "Opacidad 30%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:150 msgid "shortcuts.opacity-4" msgstr "Opacidad 40%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:151 msgid "shortcuts.opacity-5" msgstr "Opacidad 50%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:152 msgid "shortcuts.opacity-6" msgstr "Opacidad 60%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:153 msgid "shortcuts.opacity-7" msgstr "Opacidad 70%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:154 msgid "shortcuts.opacity-8" msgstr "Opacidad 80%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:155 msgid "shortcuts.opacity-9" msgstr "Opacidad 90%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:156 msgid "shortcuts.open-color-picker" msgstr "Abrir selector de color" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:157 msgid "shortcuts.open-comments" msgstr "Comentarios" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:158 msgid "shortcuts.open-dashboard" msgstr "Ir al dashboard" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:159 msgid "shortcuts.open-inspect" msgstr "Ir al inspector" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:160 msgid "shortcuts.open-interactions" msgstr "Ir a interacciones" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:161 msgid "shortcuts.open-viewer" msgstr "Ir al modo de visualización" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:162 msgid "shortcuts.open-workspace" msgstr "Ir al área de trabajo" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:260 msgid "shortcuts.or" msgstr " o " +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:163 msgid "shortcuts.paste" msgstr "Pegar" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:164 msgid "shortcuts.prev-frame" msgstr "Tablero anterior" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:165 msgid "shortcuts.redo" msgstr "Rehacer" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:166 msgid "shortcuts.reset-zoom" msgstr "Reiniciar zoom" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:167 msgid "shortcuts.scale" msgstr "Escalado" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:168 msgid "shortcuts.search-placeholder" msgstr "Buscar atajos" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:169 msgid "shortcuts.select-all" msgstr "Seleccionar todo" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:170 msgid "shortcuts.select-next" msgstr "Seleccionar capa siguiente" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:171 msgid "shortcuts.select-parent-layer" msgstr "Seleccionar capa padre" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:172 msgid "shortcuts.select-prev" msgstr "Seleccionar capa anterior" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:173 msgid "shortcuts.separate-nodes" msgstr "Separar nodos" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:174 msgid "shortcuts.show-pixel-grid" msgstr "Mostrar rejilla a pixel" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:175 msgid "shortcuts.show-shortcuts" msgstr "Mostrar atajos de teclado" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:176 msgid "shortcuts.snap-nodes" msgstr "Alinear nodos" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:177 msgid "shortcuts.snap-pixel-grid" msgstr "Activar alineación a rejilla de pixel" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:178 msgid "shortcuts.start-editing" msgstr "Comenzar edición" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:179 msgid "shortcuts.start-measure" msgstr "Comenzar medida" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:180 msgid "shortcuts.stop-measure" msgstr "Terminar medida" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:181 msgid "shortcuts.text-align-center" msgstr "Alinear al centro" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:182 msgid "shortcuts.text-align-justify" msgstr "Alinear justificado" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:183 msgid "shortcuts.text-align-left" msgstr "Alinear a la izquierda" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:184 msgid "shortcuts.text-align-right" msgstr "Alinear a la derecha" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:185 msgid "shortcuts.thumbnail-set" msgstr "Activar miniaturas" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:496, src/app/main/ui/workspace/sidebar/shortcuts.cljs:505 msgid "shortcuts.title" msgstr "Atajos de teclado" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:186 msgid "shortcuts.toggle-alignment" msgstr "Alternar alineación" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:187 msgid "shortcuts.toggle-assets" msgstr "Mostrar/ocultar recursos" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:188 msgid "shortcuts.toggle-colorpalette" msgstr "Mostrar/ocultar paleta de colores" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:189 msgid "shortcuts.toggle-focus-mode" msgstr "Mostrar/ocultar focus mode" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:190 msgid "shortcuts.toggle-fullscreen" msgstr "Activar/desactivar pantalla completa" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:191 msgid "shortcuts.toggle-guides" msgstr "Mostrar/ocultar guías" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:192 msgid "shortcuts.toggle-history" msgstr "Mostrar/ocultar histórico" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:193 msgid "shortcuts.toggle-layers" msgstr "Mostrar/ocultar capas" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:194 msgid "shortcuts.toggle-layout-flex" msgstr "Añadir/eliminar flex layout" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:195 msgid "shortcuts.toggle-layout-grid" msgstr "Añadir/eliminar grid layout" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:196 msgid "shortcuts.toggle-lock" msgstr "Bloquear/Desbloquear" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:197 msgid "shortcuts.toggle-lock-size" msgstr "Bloquear/Desbloquear proporciones" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:198 msgid "shortcuts.toggle-rulers" msgstr "Mostrar/ocultar reglas" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:200 msgid "shortcuts.toggle-snap-guides" msgstr "Alinear a las guías" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:201 msgid "shortcuts.toggle-snap-ruler-guide" msgstr "Alinear a las guías de reglas" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:202 msgid "shortcuts.toggle-textpalette" msgstr "Mostrar/ocultar paleta de textos" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:203 msgid "shortcuts.toggle-theme" msgstr "Cambiar tema" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:204 msgid "shortcuts.toggle-visibility" msgstr "Mostrar/ocultar elemento" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:205 msgid "shortcuts.toggle-zoom-style" msgstr "Alternar estilo de zoom" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:206 msgid "shortcuts.underline" msgstr "Alternar subrayado" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:207 msgid "shortcuts.undo" msgstr "Deshacer" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:208 msgid "shortcuts.ungroup" msgstr "Desagrupar" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:209 msgid "shortcuts.unmask" msgstr "Deshacer máscara" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:210 msgid "shortcuts.v-distribute" msgstr "Distribuir verticalmente" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:211 msgid "shortcuts.zoom-lense-decrease" msgstr "Decrementar zoom a objetivo" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:212 msgid "shortcuts.zoom-lense-increase" msgstr "Incrementar zoom a objetivo" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:213 msgid "shortcuts.zoom-selected" msgstr "Zoom a selección" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:771 msgid "team.webhooks.max-length" msgstr "El nombre del webhook debe contener como máximo 2048 caracteres." -#: src/app/main/ui/dashboard/files.cljs +#: src/app/main/ui/dashboard/files.cljs:158 msgid "title.dashboard.files" msgstr "%s - Penpot" -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:37 msgid "title.dashboard.font-providers" msgstr "Proveedores de fuentes - %s - Penpot" -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:36 msgid "title.dashboard.fonts" msgstr "Fuentes - %s - Penpot" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:320 msgid "title.dashboard.projects" msgstr "Proyectos - %s - Penpot" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:32 msgid "title.dashboard.search" msgstr "Buscar - %s - Penpot" -#: src/app/main/ui/dashboard/libraries.cljs +#: src/app/main/ui/dashboard/libraries.cljs:44 msgid "title.dashboard.shared-libraries" msgstr "Bibliotecas Compartidas - %s - Penpot" -#: src/app/main/ui/auth/verify_token.cljs, src/app/main/ui/auth.cljs +#: src/app/main/ui/auth/verify_token.cljs:68, src/app/main/ui/auth.cljs:54 msgid "title.default" msgstr "Penpot - Diseño Libre para Equipos" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:292 msgid "title.settings.access-tokens" msgstr "Perfil - Access tokens" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:110 msgid "title.settings.feedback" msgstr "Danos tu opinión - Penpot" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:80 msgid "title.settings.options" msgstr "Configuración - Penpot" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:115 msgid "title.settings.password" msgstr "Contraseña - Penpot" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:115 msgid "title.settings.profile" msgstr "Perfil - Penpot" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:727 msgid "title.team-invitations" msgstr "Invitaciones - %s - Penpot" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:493 msgid "title.team-members" msgstr "Integrantes - %s - Penpot" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1036 msgid "title.team-settings" msgstr "Configuración - %s - Penpot" +#: src/app/main/ui/dashboard/team.cljs:989 msgid "title.team-webhooks" msgstr "Webhooks - %s - Penpot" -#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs +#: src/app/main/ui/viewer.cljs:419 msgid "title.viewer" msgstr "%s - Modo de visualización - Penpot" -#: src/app/main/ui/workspace.cljs +#: src/app/main/ui/workspace.cljs:190 msgid "title.workspace" msgstr "%s - Penpot" +#: src/app/main/ui.cljs:144 msgid "viewer.breaking-change.description" msgstr "" "Este link compartido ya no funciona. Crea uno nuevo o pídelo a la persona " "que lo creó." +#: src/app/main/ui.cljs:143 msgid "viewer.breaking-change.message" msgstr "¡Lo sentimos!" -#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs +#: src/app/main/ui/viewer.cljs:569 msgid "viewer.empty-state" msgstr "No se ha encontrado ningún tablero." -#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs +#: src/app/main/ui/viewer.cljs:574 msgid "viewer.frame-not-found" msgstr "No se encuentra el tablero." +#: src/app/main/ui/viewer/header.cljs:336 msgid "viewer.header.comments-section" msgstr "Comentarios (%s)" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/interactions.cljs:292 msgid "viewer.header.dont-show-interactions" msgstr "No mostrar interacciones" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/header.cljs:188 msgid "viewer.header.fullscreen" msgstr "Pantalla completa" +#: src/app/main/ui/viewer/header.cljs:345 msgid "viewer.header.inspect-section" msgstr "Inspector (%s)" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/interactions.cljs:282 msgid "viewer.header.interactions" msgstr "Interacciones" +#: src/app/main/ui/viewer/header.cljs:327 msgid "viewer.header.interactions-section" msgstr "Interacciones (%s)" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/share_link.cljs:187 msgid "viewer.header.share.copy-link" msgstr "Copiar enlace" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/interactions.cljs:300 msgid "viewer.header.show-interactions" msgstr "Mostrar interacciones" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/interactions.cljs:311 msgid "viewer.header.show-interactions-on-click" msgstr "Mostrar interacciones al hacer click" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/header.cljs:231 msgid "viewer.header.sitemap" msgstr "Mapa del sitio" +#: src/app/main/ui/dashboard/team.cljs:948 msgid "webhooks.last-delivery.success" msgstr "El último envío fue correcto." -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:58 msgid "workspace.align.hcenter" msgstr "Alinear al centro (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:74 msgid "workspace.align.hdistribute" msgstr "Distribuir espacio horizontal (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:50 msgid "workspace.align.hleft" msgstr "Alinear a la izquierda (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:66 msgid "workspace.align.hright" msgstr "Alinear a la derecha (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:99 msgid "workspace.align.vbottom" msgstr "Alinear abajo (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:91 msgid "workspace.align.vcenter" msgstr "Alinear al centro (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:104 msgid "workspace.align.vdistribute" msgstr "Distribuir espacio vertical (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:83 msgid "workspace.align.vtop" msgstr "Alinear arriba (%s)" #: src/app/main/ui/workspace/sidebar/assets.cljs +#, unused msgid "workspace.assets.assets" msgstr "Recursos" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets.cljs:134 msgid "workspace.assets.box-filter-all" msgstr "Todos" -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/dashboard/grid.cljs:130, src/app/main/ui/dashboard/grid.cljs:162, src/app/main/ui/workspace/sidebar/assets/colors.cljs:485, src/app/main/ui/workspace/sidebar/assets.cljs:150 msgid "workspace.assets.colors" msgstr "Colores" -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/dashboard/grid.cljs:126, src/app/main/ui/dashboard/grid.cljs:141, src/app/main/ui/workspace/sidebar/assets/components.cljs:513, src/app/main/ui/workspace/sidebar/assets.cljs:139 msgid "workspace.assets.components" msgstr "Componentes" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:131 msgid "workspace.assets.create-group" msgstr "Crear un grupo" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:142 msgid "workspace.assets.create-group-hint" msgstr "" "Tus elementos se renombrarán automáticamente a \"nombre grupo / nombre " "elemento\"" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/context_menu.cljs:529, src/app/main/ui/workspace/sidebar/assets/colors.cljs:251, src/app/main/ui/workspace/sidebar/assets/components.cljs:577, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:424, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:443 msgid "workspace.assets.delete" msgstr "Borrar" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/context_menu.cljs:534, src/app/main/ui/workspace/sidebar/assets/components.cljs:572 msgid "workspace.assets.duplicate" msgstr "Duplicar" +#: src/app/main/ui/workspace/sidebar/assets/components.cljs:571 msgid "workspace.assets.duplicate-main" msgstr "Duplicar principal" -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:247, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:439 msgid "workspace.assets.edit" msgstr "Editar" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets.cljs:176 msgid "workspace.assets.filter" msgstr "Filtrar" -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/graphics.cljs:384, src/app/main/ui/workspace/sidebar/assets.cljs:145 msgid "workspace.assets.graphics" msgstr "Gráficos" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/components.cljs:529 +msgid "workspace.assets.grid-view" +msgstr "Ver como rejilla" + +#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:255, src/app/main/ui/workspace/sidebar/assets/components.cljs:581, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:428, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:448 msgid "workspace.assets.group" msgstr "Agrupar" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:141 msgid "workspace.assets.group-name" msgstr "Nombre del grupo" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets.cljs:168 msgid "workspace.assets.libraries" msgstr "Bibliotecas" +#: src/app/main/ui/workspace/sidebar/assets/components.cljs:525 +msgid "workspace.assets.list-view" +msgstr "Ver como lista" + +#: src/app/main/ui/workspace/sidebar/assets/file_library.cljs:62, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:347 msgid "workspace.assets.local-library" msgstr "biblioteca local" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/file_library.cljs:295 msgid "workspace.assets.not-found" msgstr "No se encontraron recursos" +#, unused msgid "workspace.assets.open-library" msgstr "Abrir el fichero de la biblioteca" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/context_menu.cljs:532, src/app/main/ui/workspace/sidebar/assets/colors.cljs:243, src/app/main/ui/workspace/sidebar/assets/components.cljs:566, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:421, src/app/main/ui/workspace/sidebar/assets/groups.cljs:63, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:434 msgid "workspace.assets.rename" msgstr "Renombrar" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:132 msgid "workspace.assets.rename-group" msgstr "Renombrar grupo" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets.cljs:173 msgid "workspace.assets.search" msgstr "Buscar recursos" #: src/app/main/ui/workspace/sidebar/assets.cljs +#, unused msgid "workspace.assets.selected-count" msgid_plural "workspace.assets.selected-count" msgstr[0] "%s elemento seleccionado" msgstr[1] "%s elementos seleccionados" #: src/app/main/ui/workspace/sidebar/assets.cljs +#, unused msgid "workspace.assets.shared-library" msgstr "Biblioteca compartida" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:221 msgid "workspace.assets.sidebar.components" msgid_plural "workspace.assets.sidebar.components" msgstr[0] "1 componente" msgstr[1] "%s componentes" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets.cljs:193 msgid "workspace.assets.sort" msgstr "Ordenar" -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/dashboard/grid.cljs:134, src/app/main/ui/dashboard/grid.cljs:189, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:397, src/app/main/ui/workspace/sidebar/assets.cljs:155 msgid "workspace.assets.typography" msgstr "Tipografías" -#: src/app/main/ui/workspace/sidebar/assets/components.cljs, src/app/main/wui/workspace/sidebar/options/menus/component.cljs -msgid "workspace.assets.grid-view" -msgstr "Ver como rejilla" - -#: src/app/main/ui/workspace/sidebar/assets/components.cljs, src/app/main/wui/workspace/sidebar/options/menus/component.cljs -msgid "workspace.assets.list-view" -msgstr "Ver como lista" - #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused msgid "workspace.assets.typography.font-id" msgstr "Fuente" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:505 msgid "workspace.assets.typography.font-size" msgstr "Tamaño" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:501 msgid "workspace.assets.typography.font-variant-id" msgstr "Variante" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:523 msgid "workspace.assets.typography.go-to-edit" msgstr "Ir al archivo de la biblioteca del estilo para editar" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:513 msgid "workspace.assets.typography.letter-spacing" msgstr "Interletrado" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:509 msgid "workspace.assets.typography.line-height" msgstr "Interlineado" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, -#: src/app/main/ui/inspect/attributes/text.cljs, -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/dashboard/grid.cljs:199, src/app/main/ui/workspace/libraries.cljs:461, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:464, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:489, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:596, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:615 msgid "workspace.assets.typography.sample" msgstr "Ag" +#, unused msgid "workspace.assets.typography.text-styles" msgstr "Estilos de texto" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:517 msgid "workspace.assets.typography.text-transform" msgstr "Transformar texto" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:66 msgid "workspace.assets.ungroup" msgstr "Desagrupar" +#: src/app/main/ui/workspace/context_menu.cljs:634 msgid "workspace.context-menu.grid-cells.area" msgstr "Crear area" +#: src/app/main/ui/workspace/context_menu.cljs:637 msgid "workspace.context-menu.grid-cells.create-board" msgstr "Crear tablero" +#: src/app/main/ui/workspace/context_menu.cljs:629 msgid "workspace.context-menu.grid-cells.merge" msgstr "Fusionar celdas" +#: src/app/main/ui/workspace/context_menu.cljs:594 msgid "workspace.context-menu.grid-track.column.add-after" msgstr "Añadir 1 columna a la derecha" +#: src/app/main/ui/workspace/context_menu.cljs:593 msgid "workspace.context-menu.grid-track.column.add-before" msgstr "Añadir 1 columna a la izquierda" +#: src/app/main/ui/workspace/context_menu.cljs:595 msgid "workspace.context-menu.grid-track.column.delete" msgstr "Borrar columna" +#: src/app/main/ui/workspace/context_menu.cljs:596 msgid "workspace.context-menu.grid-track.column.delete-shapes" msgstr "Borrar columna con el contenido" +#: src/app/main/ui/workspace/context_menu.cljs:592 msgid "workspace.context-menu.grid-track.column.duplicate" msgstr "Duplicar columna" +#: src/app/main/ui/workspace/context_menu.cljs:601 msgid "workspace.context-menu.grid-track.row.add-after" msgstr "Añadir 1 fila debajo" +#: src/app/main/ui/workspace/context_menu.cljs:600 msgid "workspace.context-menu.grid-track.row.add-before" msgstr "Añadir 1 fila encima" +#: src/app/main/ui/workspace/context_menu.cljs:602 msgid "workspace.context-menu.grid-track.row.delete" msgstr "Borrar fila" +#: src/app/main/ui/workspace/context_menu.cljs:603 msgid "workspace.context-menu.grid-track.row.delete-shapes" msgstr "Borrar fila con el contenido" +#: src/app/main/ui/workspace/context_menu.cljs:599 msgid "workspace.context-menu.grid-track.row.duplicate" msgstr "Duplicar fila" +#: src/app/main/ui/workspace/sidebar/layers.cljs:525 msgid "workspace.focus.focus-mode" msgstr "Modo foco" +#: src/app/main/ui/workspace/context_menu.cljs:287, src/app/main/ui/workspace/context_menu.cljs:553 msgid "workspace.focus.focus-off" msgstr "Desactivar modo foco" +#: src/app/main/ui/workspace/context_menu.cljs:286 msgid "workspace.focus.focus-on" msgstr "Activar modo foco" +#, unused msgid "workspace.focus.selection" msgstr "Selección" -#: src/app/main/data/workspace/libraries.cljs, -#: src/app/main/ui/components/color_bullet.cljs +#: src/app/util/color.cljs:34 msgid "workspace.gradients.linear" msgstr "Degradado lineal" -#: src/app/main/data/workspace/libraries.cljs, -#: src/app/main/ui/components/color_bullet.cljs +#: src/app/util/color.cljs:35 msgid "workspace.gradients.radial" msgstr "Degradado radial" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:238 msgid "workspace.header.menu.disable-dynamic-alignment" msgstr "Desactivar alineamiento dinámico" +#: src/app/main/ui/workspace/main_menu.cljs:192 msgid "workspace.header.menu.disable-scale-content" msgstr "Desactivar escala proporcional" #: src/app/main/ui/workspace/header.cljs +#, unused msgid "workspace.header.menu.disable-scale-text" msgstr "Desactivar escalar texto" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:223 msgid "workspace.header.menu.disable-snap-guides" msgstr "Desactivar alinear a las guias" +#: src/app/main/ui/workspace/main_menu.cljs:253 msgid "workspace.header.menu.disable-snap-pixel-grid" msgstr "Desactivar ajuste al pixel" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:207 msgid "workspace.header.menu.disable-snap-ruler-guides" msgstr "Desactivar alinear a las guias de reglas" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:239 msgid "workspace.header.menu.enable-dynamic-alignment" msgstr "Activar alineamiento dinámico" +#: src/app/main/ui/workspace/main_menu.cljs:193 msgid "workspace.header.menu.enable-scale-content" msgstr "Activar escala proporcional" #: src/app/main/ui/workspace/header.cljs +#, unused msgid "workspace.header.menu.enable-scale-text" msgstr "Activar escalar texto" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:224 msgid "workspace.header.menu.enable-snap-guides" msgstr "Alinear a las guias" +#: src/app/main/ui/workspace/main_menu.cljs:254 msgid "workspace.header.menu.enable-snap-pixel-grid" msgstr "Activar ajuste al pixel" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:208 msgid "workspace.header.menu.enable-snap-ruler-guides" msgstr "Alinear a las guias de reglas" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:382 msgid "workspace.header.menu.hide-artboard-names" msgstr "Ocultar nombres de tableros" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:336 msgid "workspace.header.menu.hide-guides" msgstr "Ocultar guías" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:353 msgid "workspace.header.menu.hide-palette" msgstr "Ocultar paleta de colores" +#: src/app/main/ui/workspace/main_menu.cljs:394 msgid "workspace.header.menu.hide-pixel-grid" msgstr "Ocultar rejilla de pixeles" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:320 msgid "workspace.header.menu.hide-rules" msgstr "Ocultar reglas" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:367 msgid "workspace.header.menu.hide-textpalette" msgstr "Ocultar paleta de textos" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:731 msgid "workspace.header.menu.option.edit" msgstr "Editar" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:720 msgid "workspace.header.menu.option.file" msgstr "Archivo" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:777 msgid "workspace.header.menu.option.help-info" msgstr "Ayuda e información" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:753 msgid "workspace.header.menu.option.preferences" msgstr "Preferencias" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:742 msgid "workspace.header.menu.option.view" msgstr "Ver" +#: src/app/main/ui/workspace/main_menu.cljs:459 msgid "workspace.header.menu.redo" msgstr "Rehacer" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:432 msgid "workspace.header.menu.select-all" msgstr "Seleccionar todo" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:383 msgid "workspace.header.menu.show-artboard-names" msgstr "Mostrar nombres de tableros" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:337 msgid "workspace.header.menu.show-guides" msgstr "Mostrar guías" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:354 msgid "workspace.header.menu.show-palette" msgstr "Mostrar paleta de colores" +#: src/app/main/ui/workspace/main_menu.cljs:395 msgid "workspace.header.menu.show-pixel-grid" msgstr "Mostrar rejilla de pixeles" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:321 msgid "workspace.header.menu.show-rules" msgstr "Mostrar reglas" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:368 msgid "workspace.header.menu.show-textpalette" msgstr "Mostrar paleta de textos" +#: src/app/main/ui/workspace/main_menu.cljs:279 msgid "workspace.header.menu.toggle-dark-theme" msgstr "Cambiar a tema oscuro" +#: src/app/main/ui/workspace/main_menu.cljs:278 msgid "workspace.header.menu.toggle-light-theme" msgstr "Cambiar a tema claro" +#: src/app/main/ui/workspace/main_menu.cljs:446 msgid "workspace.header.menu.undo" msgstr "Deshacer" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/viewer/header.cljs:98, src/app/main/ui/workspace/right_header.cljs:120 msgid "workspace.header.reset-zoom" msgstr "Restablecer" #: src/app/main/ui/workspace/header.cljs +#, unused msgid "workspace.header.save-error" msgstr "Error al guardar" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/right_header.cljs:52 msgid "workspace.header.saved" msgstr "Guardado" #: src/app/main/ui/workspace/header.cljs +#, unused msgid "workspace.header.saving" msgstr "Guardando" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/right_header.cljs:42, src/app/main/ui/workspace/right_header.cljs:47 msgid "workspace.header.unsaved" msgstr "Cambios sin guardar" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/right_header.cljs:239 msgid "workspace.header.viewer" msgstr "Modo de visualización (%s)" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/viewer/header.cljs:79, src/app/main/ui/workspace/right_header.cljs:103 msgid "workspace.header.zoom" msgstr "Zoom" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/viewer/header.cljs:109 msgid "workspace.header.zoom-fill" msgstr "Escalar para rellenar" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/viewer/header.cljs:102 msgid "workspace.header.zoom-fit" msgstr "Escalar para ajustar" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/right_header.cljs:123 msgid "workspace.header.zoom-fit-all" msgstr "Zoom abarcar todo" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/viewer/header.cljs:116 msgid "workspace.header.zoom-full-screen" msgstr "Pantalla completa" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/right_header.cljs:130 msgid "workspace.header.zoom-selected" msgstr "Zoom a selección" +#: src/app/main/ui/workspace/sidebar/options/menus/grid_cell.cljs:273, src/app/main/ui/workspace/sidebar/options/menus/grid_cell.cljs:275, src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:612 msgid "workspace.layout_grid.editor.options.edit-grid" msgstr "Editar rejilla" +#: src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:1280 msgid "workspace.layout_grid.editor.options.exit" msgstr "Salir" +#: src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:483 msgid "workspace.layout_grid.editor.padding.expand" msgstr "Mostrar el padding a 4 lados" +#: src/app/main/ui/workspace/viewport/grid_layout_editor.cljs:59 msgid "workspace.layout_grid.editor.title" msgstr "Editando rejilla" +#: src/app/main/ui/workspace/viewport/grid_layout_editor.cljs:65 msgid "workspace.layout_grid.editor.top-bar.done" msgstr "Hecho" +#: src/app/main/ui/workspace/viewport/grid_layout_editor.cljs:62 msgid "workspace.layout_grid.editor.top-bar.locate" msgstr "Mostrar" +#: src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:1306 msgid "workspace.layout_grid.editor.top-bar.locate.tooltip" msgstr "Mostrar grid layout" #: src/app/main/ui/workspace/libraries.cljs +#, unused msgid "workspace.libraries.add" msgstr "Añadir" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:80, src/app/main/ui/workspace/libraries.cljs:99 msgid "workspace.libraries.colors" msgstr "%s colores" -#: src/app/main/ui/workspace/colorpalette.cljs +#: src/app/main/ui/workspace/color_palette.cljs:126 msgid "workspace.libraries.colors.empty-palette" msgstr "Todavía no hay estilos de color en tu biblioteca" -#: src/app/main/ui/workspace/textpalette.cljs +#: src/app/main/ui/workspace/text_palette.cljs:150 msgid "workspace.libraries.colors.empty-typography-palette" msgstr "Todavía no hay tipografías en tu biblioteca" -#: src/app/main/ui/workspace/colorpicker/libraries.cljs, -#: src/app/main/ui/workspace/colorpalette.cljs +#: src/app/main/ui/workspace/color_palette_ctx_menu.cljs:60, src/app/main/ui/workspace/colorpicker/libraries.cljs:73, src/app/main/ui/workspace/text_palette_ctx_menu.cljs:50 msgid "workspace.libraries.colors.file-library" msgstr "Biblioteca del archivo" #: src/app/main/ui/workspace/colorpicker.cljs +#, unused msgid "workspace.libraries.colors.hsv" msgstr "HSV" -#: src/app/main/ui/workspace/colorpicker/libraries.cljs, -#: src/app/main/ui/workspace/colorpalette.cljs +#: src/app/main/ui/workspace/color_palette_ctx_menu.cljs:82, src/app/main/ui/workspace/colorpicker/libraries.cljs:72 msgid "workspace.libraries.colors.recent-colors" msgstr "Colores recientes" #: src/app/main/ui/workspace/colorpicker.cljs +#, unused msgid "workspace.libraries.colors.rgb-complementary" msgstr "RGB Complementario" #: src/app/main/ui/workspace/colorpicker.cljs +#, unused msgid "workspace.libraries.colors.rgba" msgstr "RGBA" -#: src/app/main/ui/workspace/colorpicker.cljs +#: src/app/main/ui/workspace/colorpicker.cljs:372 msgid "workspace.libraries.colors.save-color" msgstr "Guardar estilo de color" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:74, src/app/main/ui/workspace/libraries.cljs:91 msgid "workspace.libraries.components" msgstr "%s componentes" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:215 msgid "workspace.libraries.file-library" msgstr "Biblioteca del archivo" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:77, src/app/main/ui/workspace/libraries.cljs:95 msgid "workspace.libraries.graphics" msgstr "%s gráficos" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:209 msgid "workspace.libraries.in-this-file" msgstr "BIBLIOTECAS EN ESTE ARCHIVO" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:526, src/app/main/ui/workspace/libraries.cljs:531 msgid "workspace.libraries.libraries" msgstr "BIBLIOTECAS" #: src/app/main/ui/workspace/libraries.cljs +#, unused msgid "workspace.libraries.library" msgstr "BIBLIOTECA" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:382 msgid "workspace.libraries.library-updates" msgstr "ACTUALIZACIONES DE BIBLIOTECAS" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:290 msgid "workspace.libraries.loading" msgstr "Cargando…" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:380 msgid "workspace.libraries.no-libraries-need-sync" msgstr "No hay bibliotecas que necesiten ser actualizadas" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:299 msgid "workspace.libraries.no-matches-for" msgstr "No se encuentra “%s“" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:296 msgid "workspace.libraries.no-shared-libraries-available" msgstr "No hay bibliotecas compartidas disponibles" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:260 msgid "workspace.libraries.search-shared-libraries" msgstr "Buscar bibliotecas compartidas" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:256 msgid "workspace.libraries.shared-libraries" msgstr "BIBLIOTECAS COMPARTIDAS" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:282 msgid "workspace.libraries.shared-library-btn" msgstr "Conectar biblioteca" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:308 msgid "workspace.libraries.text.multiple-typography" msgstr "Varias tipografías" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:311 msgid "workspace.libraries.text.multiple-typography-tooltip" msgstr "Desvincular todas las tipografías" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:83, src/app/main/ui/workspace/libraries.cljs:103 msgid "workspace.libraries.typography" msgstr "%s tipografías" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:249 msgid "workspace.libraries.unlink-library-btn" msgstr "Desconectar biblioteca" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:402 msgid "workspace.libraries.update" msgstr "Actualizar" -#: src/app/main/data/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:477 msgid "workspace.libraries.update.see-all-changes" msgstr "ver todos los cambios" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:536 msgid "workspace.libraries.updates" msgstr "ACTUALIZACIONES" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:737 msgid "workspace.options.add-interaction" msgstr "Pulsa el botón + para añadir interacciones." -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:86, src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:102 msgid "workspace.options.blur-options.title" msgstr "Desenfoque" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:85 msgid "workspace.options.blur-options.title.group" msgstr "Desenfoque del grupo" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:84 msgid "workspace.options.blur-options.title.multiple" msgstr "Desenfoque de la selección" -#: src/app/main/ui/workspace/sidebar/options/page.cljs +#: src/app/main/ui/workspace/sidebar/options/page.cljs:32, src/app/main/ui/workspace/sidebar/options/page.cljs:39 msgid "workspace.options.canvas-background" msgstr "Color de fondo" +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:548 msgid "workspace.options.clip-content" msgstr "Truncar contenido" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:600, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:605 msgid "workspace.options.component" msgstr "Componente" +#: src/app/main/ui/viewer/inspect/annotation.cljs:19, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:181 msgid "workspace.options.component.annotation" msgstr "Nota" +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:610 msgid "workspace.options.component.copy" msgstr "Copia" +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:173 msgid "workspace.options.component.create-annotation" msgstr "Crear una nota" +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:172 msgid "workspace.options.component.edit-annotation" msgstr "Editar una nota" +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:609 msgid "workspace.options.component.main" msgstr "Principal" +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:427 msgid "workspace.options.component.swap" msgstr "Intercambiar componente" +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:471 msgid "workspace.options.component.swap.empty" msgstr "Aún no hay recursos en esta biblioteca" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:163 msgid "workspace.options.constraints" msgstr "Restricciones" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:150 msgid "workspace.options.constraints.bottom" msgstr "Abajo" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:141, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:152 msgid "workspace.options.constraints.center" msgstr "Centro" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:229 msgid "workspace.options.constraints.fix-when-scrolling" msgstr "Fijo al desplazar" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:138 msgid "workspace.options.constraints.left" msgstr "Izquierda" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:140 msgid "workspace.options.constraints.leftright" msgstr "Izq. y Der." -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:139 msgid "workspace.options.constraints.right" msgstr "Derecha" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:142, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:153 msgid "workspace.options.constraints.scale" msgstr "Escalar" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:149 msgid "workspace.options.constraints.top" msgstr "Arriba" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:151 msgid "workspace.options.constraints.topbottom" msgstr "Arriba y Abajo" -#: src/app/main/ui/workspace/sidebar/options.cljs +#: src/app/main/ui/workspace/sidebar/options.cljs:112 msgid "workspace.options.design" msgstr "Diseño" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs +#: src/app/main/ui/viewer/inspect/exports.cljs:139 msgid "workspace.options.export" msgstr "Exportar" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs +#, unused msgid "workspace.options.export-multiple" msgstr "Exportar selección" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs +#: src/app/main/ui/viewer/inspect/exports.cljs:195, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:237 msgid "workspace.options.export-object" msgid_plural "workspace.options.export-object" msgstr[0] "Exportar 1 elemento" msgstr[1] "Exportar %s elementos" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs +#: src/app/main/ui/viewer/inspect/exports.cljs:178, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:219 msgid "workspace.options.export.suffix" msgstr "Sufijo" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs, src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/export.cljs:240 msgid "workspace.options.exporting-complete" msgstr "Exportación completa" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs, src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/export.cljs:172, src/app/main/ui/export.cljs:241, src/app/main/ui/viewer/inspect/exports.cljs:194, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:236 msgid "workspace.options.exporting-object" msgstr "Exportando…" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs, src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/export.cljs:239 msgid "workspace.options.exporting-object-error" msgstr "Exportación fallida" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs, src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/export.cljs:242 msgid "workspace.options.exporting-object-slow" msgstr "Exportación lenta" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:49, src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:174 msgid "workspace.options.fill" msgstr "Relleno" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:178 msgid "workspace.options.flows.add-flow-start" msgstr "Añadir inicio de flujo" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:174 msgid "workspace.options.flows.flow" msgstr "Flujo" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#, unused msgid "workspace.options.flows.flow-start" msgstr "Inicio de flujo" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:161 msgid "workspace.options.flows.flow-starts" msgstr "Inicios de flujo" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:29 msgid "workspace.options.grid.auto" msgstr "Automático" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:157 msgid "workspace.options.grid.column" msgstr "Columnas" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused msgid "workspace.options.grid.grid-title" msgstr "Rejilla" +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:196, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:237 msgid "workspace.options.grid.params.color" msgstr "Color" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused msgid "workspace.options.grid.params.columns" msgstr "Columnas" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:259 msgid "workspace.options.grid.params.gutter" msgstr "Espaciado" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:246 msgid "workspace.options.grid.params.height" msgstr "Altura" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:270 msgid "workspace.options.grid.params.margin" msgstr "Margen" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused msgid "workspace.options.grid.params.rows" msgstr "Filas" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:216, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:290 msgid "workspace.options.grid.params.set-default" msgstr "Establecer valor por defecto" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused msgid "workspace.options.grid.params.size" msgstr "Tamaño" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused msgid "workspace.options.grid.params.type" msgstr "Tipo" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:231 msgid "workspace.options.grid.params.type.bottom" msgstr "Abajo" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:229 msgid "workspace.options.grid.params.type.center" msgstr "Centro" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:228 msgid "workspace.options.grid.params.type.left" msgstr "Izquierda" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:232 msgid "workspace.options.grid.params.type.right" msgstr "Derecha" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:225 msgid "workspace.options.grid.params.type.stretch" msgstr "Estirar" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:227 msgid "workspace.options.grid.params.type.top" msgstr "Arriba" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:211, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:288 msgid "workspace.options.grid.params.use-default" msgstr "Usar valor por defecto" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:247 msgid "workspace.options.grid.params.width" msgstr "Ancho" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:158 msgid "workspace.options.grid.row" msgstr "Filas" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:156 msgid "workspace.options.grid.square" msgstr "Cuadros" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:48 msgid "workspace.options.group-fill" msgstr "Relleno de grupo" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:42 msgid "workspace.options.group-stroke" msgstr "Borde de grupo" +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:310 msgid "workspace.options.guides.title" msgstr "Guías" +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:406 msgid "workspace.options.height" msgstr "Altura" +#: src/app/main/ui/workspace/sidebar/options.cljs:161 msgid "workspace.options.inspect" msgstr "Inspeccionar" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:468 msgid "workspace.options.interaction-action" msgstr "Acción" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:41, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:367 msgid "workspace.options.interaction-after-delay" msgstr "Tiempo" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:614 msgid "workspace.options.interaction-animation" msgstr "Animación" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:406 msgid "workspace.options.interaction-animation-dissolve" msgstr "Disolver" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:405 msgid "workspace.options.interaction-animation-none" msgstr "Ninguno" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:412 msgid "workspace.options.interaction-animation-push" msgstr "Empujar" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:407 msgid "workspace.options.interaction-animation-slide" msgstr "Deslizar" +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:391 msgid "workspace.options.interaction-auto" msgstr "automático" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:604 msgid "workspace.options.interaction-background" msgstr "Añadir sombreado de fondo" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:590 msgid "workspace.options.interaction-close-outside" msgstr "Cerrar al pulsar fuera" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:372 msgid "workspace.options.interaction-close-overlay" msgstr "Cerrar superposición" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:56 msgid "workspace.options.interaction-close-overlay-dest" msgstr "Cerrar superposición: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:456 msgid "workspace.options.interaction-delay" msgstr "Tiempo" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:478 msgid "workspace.options.interaction-destination" msgstr "Destino" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:661 msgid "workspace.options.interaction-duration" msgstr "Duración" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:674 msgid "workspace.options.interaction-easing" msgstr "Easing" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:416 msgid "workspace.options.interaction-easing-ease" msgstr "Ease" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:417 msgid "workspace.options.interaction-easing-ease-in" msgstr "Ease in" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:419 msgid "workspace.options.interaction-easing-ease-in-out" msgstr "Ease in out" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:418 msgid "workspace.options.interaction-easing-ease-out" msgstr "Ease out" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:415 msgid "workspace.options.interaction-easing-linear" msgstr "Linear" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#, unused msgid "workspace.options.interaction-in" msgstr "Dentro" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:39, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:364 msgid "workspace.options.interaction-mouse-enter" msgstr "Pasar encima" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:40, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:365 msgid "workspace.options.interaction-mouse-leave" msgstr "Retirar encima" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:458, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:459, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:464, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:663, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:665, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:669 msgid "workspace.options.interaction-ms" msgstr "ms" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:369 msgid "workspace.options.interaction-navigate-to" msgstr "Navegar a" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:50 msgid "workspace.options.interaction-navigate-to-dest" msgstr "Navegar a: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:51, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:53, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:55, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:380 msgid "workspace.options.interaction-none" msgstr "(sin definir)" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:691 msgid "workspace.options.interaction-offset-effect" msgstr "Offset effect" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:35, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:360 msgid "workspace.options.interaction-on-click" msgstr "En click" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:370 msgid "workspace.options.interaction-open-overlay" msgstr "Superposición" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:52 msgid "workspace.options.interaction-open-overlay-dest" msgstr "Superposición: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:59, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:374 msgid "workspace.options.interaction-open-url" msgstr "Abrir URL" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#, unused msgid "workspace.options.interaction-out" msgstr "Fuera" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:403 msgid "workspace.options.interaction-pos-bottom-center" msgstr "Abajo centro" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:401 msgid "workspace.options.interaction-pos-bottom-left" msgstr "Abajo izquierda" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:402 msgid "workspace.options.interaction-pos-bottom-right" msgstr "Abajo derecha" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:397 msgid "workspace.options.interaction-pos-center" msgstr "Centro" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:396 msgid "workspace.options.interaction-pos-manual" msgstr "Manual" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:400 msgid "workspace.options.interaction-pos-top-center" msgstr "Arriba centro" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:398 msgid "workspace.options.interaction-pos-top-left" msgstr "Arriba izquierda" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:399 msgid "workspace.options.interaction-pos-top-right" msgstr "Arriba derecha" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:524 msgid "workspace.options.interaction-position" msgstr "Posición" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:494 msgid "workspace.options.interaction-preserve-scroll" msgstr "Conservar posición de desplazamiento" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:58, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:373 msgid "workspace.options.interaction-prev-screen" msgstr "Pantalla anterior" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:515 msgid "workspace.options.interaction-relative-to" msgstr "Relativo a" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:57, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:379, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:393, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:394 msgid "workspace.options.interaction-self" msgstr "mismo" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:371 msgid "workspace.options.interaction-toggle-overlay" msgstr "Alternar superpos." -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:54 msgid "workspace.options.interaction-toggle-overlay-dest" msgstr "Alternar superpos.: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:445 msgid "workspace.options.interaction-trigger" msgstr "Disparador" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:503 msgid "workspace.options.interaction-url" msgstr "URL" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:37, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:362 msgid "workspace.options.interaction-while-hovering" msgstr "Mientras pasa encima" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:38, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:363 msgid "workspace.options.interaction-while-pressing" msgstr "Mientras pulsa" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:724 msgid "workspace.options.interactions" msgstr "Interacciones" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:137 msgid "workspace.options.layer-options.blend-mode.color" msgstr "Color" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:126 msgid "workspace.options.layer-options.blend-mode.color-burn" msgstr "Color más oscuro" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:129 msgid "workspace.options.layer-options.blend-mode.color-dodge" msgstr "Color más suave" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:124 msgid "workspace.options.layer-options.blend-mode.darken" msgstr "Oscurecer" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:133 msgid "workspace.options.layer-options.blend-mode.difference" msgstr "Diferencia" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:134 msgid "workspace.options.layer-options.blend-mode.exclusion" msgstr "Exclusión" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:132 msgid "workspace.options.layer-options.blend-mode.hard-light" msgstr "Luz fuerte" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:135 msgid "workspace.options.layer-options.blend-mode.hue" msgstr "Tono" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:127 msgid "workspace.options.layer-options.blend-mode.lighten" msgstr "Aclarar" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:138 msgid "workspace.options.layer-options.blend-mode.luminosity" msgstr "Luminosidad" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:125 msgid "workspace.options.layer-options.blend-mode.multiply" msgstr "Multiplicar" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:123 msgid "workspace.options.layer-options.blend-mode.normal" msgstr "Normal" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:130 msgid "workspace.options.layer-options.blend-mode.overlay" msgstr "Superponer" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:136 msgid "workspace.options.layer-options.blend-mode.saturation" msgstr "Saturación" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:128 msgid "workspace.options.layer-options.blend-mode.screen" msgstr "Trama" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:131 msgid "workspace.options.layer-options.blend-mode.soft-light" msgstr "Luz suave" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#, unused msgid "workspace.options.layer-options.title" msgstr "Capa" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#, unused msgid "workspace.options.layer-options.title.group" msgstr "Capas de grupo" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#, unused msgid "workspace.options.layer-options.title.multiple" msgstr "Capas seleccionadas" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout-item.advanced-ops" msgstr "Opciones avanzadas" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:564 msgid "workspace.options.layout-item.layout-item-max-h" msgstr "Altura.Max" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:531 msgid "workspace.options.layout-item.layout-item-max-w" msgstr "Ancho.Max" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:548 msgid "workspace.options.layout-item.layout-item-min-h" msgstr "Altura.Min" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:515 msgid "workspace.options.layout-item.layout-item-min-w" msgstr "Ancho.Min" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout-item.title.layout-item-max-h" msgstr "Altura máxima" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout-item.title.layout-item-max-w" msgstr "Ancho máximo" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout-item.title.layout-item-min-h" msgstr "Altura mínima" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout-item.title.layout-item-min-w" msgstr "Ancho mínimo" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.bottom" msgstr "Abajo" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.direction.column" msgstr "Columna" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.direction.column-reverse" msgstr "Columna invertida" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.direction.row" msgstr "Fila" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.direction.row-reverse" msgstr "Fila invertida" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.gap" msgstr "Espacio" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.left" msgstr "Izquierda" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout.margin" msgstr "Margen" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout.margin-all" msgstr "Todos" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout.margin-simple" msgstr "Margen sencillo" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.packed" msgstr "juntar" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.padding" msgstr "Distancia interna" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.padding-all" msgstr "Todos" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.padding-simple" msgstr "Padding sencillo" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.right" msgstr "Derecha" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.space-around" msgstr "separar" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.space-between" msgstr "espaciar" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.top" msgstr "Arriba" -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:146 msgid "workspace.options.more-colors" msgstr "Más colores" -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:123 msgid "workspace.options.more-lib-colors" msgstr "Más colores de la biblioteca" +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:161 msgid "workspace.options.opacity" msgstr "Opacidad" -#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#, unused msgid "workspace.options.position" msgstr "Posición" -#: src/app/main/ui/workspace/sidebar/options.cljs +#: src/app/main/ui/workspace/sidebar/options.cljs:157 msgid "workspace.options.prototype" msgstr "Prototipo" +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:469, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:481 msgid "workspace.options.radius" msgstr "Radio" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:513 msgid "workspace.options.radius-bottom-left" msgstr "Abajo izquierda" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:522 msgid "workspace.options.radius-bottom-right" msgstr "Abajo derecha" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:495 msgid "workspace.options.radius-top-left" msgstr "Arriba izquierda" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:504 msgid "workspace.options.radius-top-right" msgstr "Arriba derecha" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:532 msgid "workspace.options.radius.all-corners" msgstr "Todas las esquinas" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:533 msgid "workspace.options.radius.single-corners" msgstr "Esquinas individuales" +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:183 msgid "workspace.options.recent-fonts" msgstr "Recientes" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs, src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/export.cljs:284 msgid "workspace.options.retry" msgstr "Reintentar" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:451 msgid "workspace.options.rotation" msgstr "Rotación" +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:180 msgid "workspace.options.search-font" msgstr "Buscar fuente" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:741 msgid "workspace.options.select-a-shape" msgstr "" "Selecciona una figura, tablero o grupo para arrastrar una conexión a otro " "tablero." -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:105 msgid "workspace.options.selection-color" msgstr "Colores seleccionados" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:47 msgid "workspace.options.selection-fill" msgstr "Relleno de selección" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:41 msgid "workspace.options.selection-stroke" msgstr "Borde de selección" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:40, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:198, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:200 msgid "workspace.options.shadow-options.blur" msgstr "Desenfoque" +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:238 msgid "workspace.options.shadow-options.color" msgstr "Color de sombra" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:144 msgid "workspace.options.shadow-options.drop-shadow" msgstr "Sombra arrojada" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:145 msgid "workspace.options.shadow-options.inner-shadow" msgstr "Sombra interior" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:38, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:186 msgid "workspace.options.shadow-options.offsetx" msgstr "X" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:39, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:224 msgid "workspace.options.shadow-options.offsety" msgstr "Y" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:41, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:211, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:213 msgid "workspace.options.shadow-options.spread" msgstr "Difusión" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:296 msgid "workspace.options.shadow-options.title" msgstr "Sombra" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:295 msgid "workspace.options.shadow-options.title.group" msgstr "Sombra del grupo" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:294 msgid "workspace.options.shadow-options.title.multiple" msgstr "Sombras de la seleccíón" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:193 msgid "workspace.options.show-fill-on-export" msgstr "Mostrar al exportar" +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:562 msgid "workspace.options.show-in-viewer" msgstr "Mostrar en modo visualización" -#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:162 msgid "workspace.options.size" msgstr "Tamaño" -#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:355 msgid "workspace.options.size-presets" msgstr "Tamaños predefinidos" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:43 msgid "workspace.options.stroke" msgstr "Borde" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#, unused msgid "workspace.options.stroke-cap.circle-marker" msgstr "Marcador círculo" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:129 msgid "workspace.options.stroke-cap.circle-marker-short" msgstr "Círculo" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#, unused msgid "workspace.options.stroke-cap.diamond-marker" msgstr "Marcador diamante" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:130 msgid "workspace.options.stroke-cap.diamond-marker-short" msgstr "Diamante" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#, unused msgid "workspace.options.stroke-cap.line-arrow" msgstr "Flecha de línea" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:126 msgid "workspace.options.stroke-cap.line-arrow-short" msgstr "Flecha" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:124 msgid "workspace.options.stroke-cap.none" msgstr "Ninguno" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:132 msgid "workspace.options.stroke-cap.round" msgstr "Redondo" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:133 msgid "workspace.options.stroke-cap.square" msgstr "Cuadrado" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#, unused msgid "workspace.options.stroke-cap.square-marker" msgstr "Marcador cuadrado" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:128 msgid "workspace.options.stroke-cap.square-marker-short" msgstr "Rectángulo" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#, unused msgid "workspace.options.stroke-cap.triangle-arrow" msgstr "Flecha triángulo" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:127 msgid "workspace.options.stroke-cap.triangle-arrow-short" msgstr "Triángulo" +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:192 msgid "workspace.options.stroke-color" msgstr "Color del trazo" +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:165 msgid "workspace.options.stroke-width" msgstr "Ancho del trazo" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:87 msgid "workspace.options.stroke.center" msgstr "Centro" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:105 msgid "workspace.options.stroke.dashed" msgstr "Rayado" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:104 msgid "workspace.options.stroke.dotted" msgstr "Punteado" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:88 msgid "workspace.options.stroke.inner" msgstr "Interior" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:106 msgid "workspace.options.stroke.mixed" msgstr "Mezclado" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:89 msgid "workspace.options.stroke.outer" msgstr "Exterior" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:103 msgid "workspace.options.stroke.solid" msgstr "Sólido" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:115 msgid "workspace.options.text-options.align-bottom" msgstr "Alinear abajo" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:111 msgid "workspace.options.text-options.align-middle" msgstr "Alinear al centro" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:107 msgid "workspace.options.text-options.align-top" msgstr "Alinear arriba" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:82 msgid "workspace.options.text-options.direction-ltr" msgstr "LTR" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:87 msgid "workspace.options.text-options.direction-rtl" msgstr "RTL" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:149 msgid "workspace.options.text-options.grow-auto-height" msgstr "Alto automático" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:145 msgid "workspace.options.text-options.grow-auto-width" msgstr "Ancho automático" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:141 msgid "workspace.options.text-options.grow-fixed" msgstr "Fijo" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:381 msgid "workspace.options.text-options.letter-spacing" msgstr "Espaciado entre letras" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:364 msgid "workspace.options.text-options.line-height" msgstr "Altura de línea" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused msgid "workspace.options.text-options.lowercase" msgstr "Minúsculas" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused msgid "workspace.options.text-options.none" msgstr "Nada" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:176 msgid "workspace.options.text-options.strikethrough" msgstr "Tachado (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:51 msgid "workspace.options.text-options.text-align-center" msgstr "Alinear al centro (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:59 msgid "workspace.options.text-options.text-align-justify" msgstr "Justificar (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:47 msgid "workspace.options.text-options.text-align-left" msgstr "Alinear a la izquierda (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:55 msgid "workspace.options.text-options.text-align-right" msgstr "Alinear a la derecha (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:189 msgid "workspace.options.text-options.title" msgstr "Texto" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:188 msgid "workspace.options.text-options.title-group" msgstr "Texto de grupo" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:187 msgid "workspace.options.text-options.title-selection" msgstr "Texto de selección" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused msgid "workspace.options.text-options.titlecase" msgstr "Título" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:171 msgid "workspace.options.text-options.underline" msgstr "Subrayado (%s)" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused msgid "workspace.options.text-options.uppercase" msgstr "Mayúsculas" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:745 msgid "workspace.options.use-play-button" msgstr "Usa el botón de play de la cabecera para arrancar la vista de prototipo." +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:395 msgid "workspace.options.width" msgstr "Ancho" +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:427 msgid "workspace.options.x" msgstr "eje X" +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:438 msgid "workspace.options.y" msgstr "eje Y" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:167 msgid "workspace.path.actions.add-node" msgstr "Añadir nodo (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:174 msgid "workspace.path.actions.delete-node" msgstr "Borrar nodos (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:152 msgid "workspace.path.actions.draw-nodes" msgstr "Dibujar nodos (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:189 msgid "workspace.path.actions.join-nodes" msgstr "Unir nodos (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:204 msgid "workspace.path.actions.make-corner" msgstr "Convertir en esquina (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:211 msgid "workspace.path.actions.make-curve" msgstr "Convertir en curva (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:182 msgid "workspace.path.actions.merge-nodes" msgstr "Fusionar nodos (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:159 msgid "workspace.path.actions.move-nodes" msgstr "Mover nodes (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:196 msgid "workspace.path.actions.separate-nodes" msgstr "Separar nodos (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:218 msgid "workspace.path.actions.snap-nodes" msgstr "Alinear nodos (%s)" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/plugins.cljs:55 +msgid "workspace.plugins.button-open" +msgstr "Abrir" + +#: src/app/main/ui/workspace/plugins.cljs:164 +msgid "workspace.plugins.empty-plugins" +msgstr "No se encuentran extensiones" + +#: src/app/main/ui/workspace/plugins.cljs:157 +msgid "workspace.plugins.error.url" +msgstr "La extensión no existe o la url no es correcta." + +#: src/app/main/ui/workspace/plugins.cljs:153 +msgid "workspace.plugins.install" +msgstr "Instalar" + +#: src/app/main/ui/workspace/plugins.cljs:170 +msgid "workspace.plugins.installed-plugins" +msgstr "Extensiones instaladas" + +#: src/app/main/ui/workspace/main_menu.cljs:624 +msgid "workspace.plugins.menu.plugins-manager" +msgstr "Gestor de extensiones" + +#: src/app/main/ui/workspace/main_menu.cljs:765 +msgid "workspace.plugins.menu.title" +msgstr "Extensiones" + +#: src/app/main/ui/workspace/plugins.cljs:218 +msgid "workspace.plugins.permissions.content-read" +msgstr "Leer el contenido de sus archivos." + +#: src/app/main/ui/workspace/plugins.cljs:224 +msgid "workspace.plugins.permissions.content-write" +msgstr "Leer y modificar el contenido de sus archivos." + +#: src/app/main/ui/workspace/plugins.cljs:212 +msgid "workspace.plugins.permissions.disclaimer" +msgstr "Tenga en cuenta que esta extensión ha sido desarrollada por terceros." + +#: src/app/main/ui/workspace/plugins.cljs:236 +msgid "workspace.plugins.permissions.library-read" +msgstr "Leer la información de sus bibliotecas y recursos." + +#: src/app/main/ui/workspace/plugins.cljs:239 +msgid "workspace.plugins.permissions.library-write" +msgstr "Leer y modificar la información de sus bibliotecas y recursos." + +#: src/app/main/ui/workspace/plugins.cljs:204 +msgid "workspace.plugins.permissions.title" +msgstr "LA EXTENSIÓN SOLICITA PERMISO PARA ACCEDER:" + +#: src/app/main/ui/workspace/plugins.cljs:230 +msgid "workspace.plugins.permissions.user-read" +msgstr "Leer la información del usuario actual." + +#: src/app/main/ui/workspace/plugins.cljs:166 +msgid "workspace.plugins.plugin-list-link" +msgstr "Lista de extensiones" + +#: src/app/main/ui/workspace/plugins.cljs:149 +msgid "workspace.plugins.search-placeholder" +msgstr "Intruduzca URL de la extensión" + +#, unused +msgid "workspace.plugins.success" +msgstr "Extensión cargada correctamente." + +#: src/app/main/ui/workspace/plugins.cljs:143 +msgid "workspace.plugins.title" +msgstr "Extensiones" + +#: src/app/main/ui/workspace/context_menu.cljs:441 msgid "workspace.shape.menu.add-flex" msgstr "Añadir flex layout" +#: src/app/main/ui/workspace/context_menu.cljs:445 msgid "workspace.shape.menu.add-grid" msgstr "Añadir grid layout" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:193 msgid "workspace.shape.menu.back" msgstr "Enviar al fondo" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:190 msgid "workspace.shape.menu.backward" msgstr "Enviar atrás" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:139 msgid "workspace.shape.menu.copy" msgstr "Copiar" +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:427 msgid "workspace.shape.menu.create-annotation" msgstr "Crear una nota" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:275 msgid "workspace.shape.menu.create-artboard-from-selection" msgstr "Tablero de selección" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:465 msgid "workspace.shape.menu.create-component" msgstr "Crear componente" +#: src/app/main/ui/workspace/context_menu.cljs:469 msgid "workspace.shape.menu.create-multiple-components" msgstr "Crear múltiples componentes" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:142 msgid "workspace.shape.menu.cut" msgstr "Cortar" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:486 msgid "workspace.shape.menu.delete" msgstr "Eliminar" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:391 msgid "workspace.shape.menu.delete-flow-start" msgstr "Eliminar inicio de flujo" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:432 msgid "workspace.shape.menu.detach-instance" msgstr "Desacoplar instancia" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:431 msgid "workspace.shape.menu.detach-instances-in-bulk" msgstr "Desacoplar instancias" +#: src/app/main/ui/workspace/context_menu.cljs:335, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:75 msgid "workspace.shape.menu.difference" msgstr "Diferencia" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:148 msgid "workspace.shape.menu.duplicate" msgstr "Duplicar" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:321 msgid "workspace.shape.menu.edit" msgstr "Editar" +#: src/app/main/ui/workspace/context_menu.cljs:341 msgid "workspace.shape.menu.exclude" msgstr "Exclusión" +#: src/app/main/ui/workspace/context_menu.cljs:348, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:89 msgid "workspace.shape.menu.flatten" msgstr "Aplanar" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:208 msgid "workspace.shape.menu.flip-horizontal" msgstr "Voltear horizontal" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:204 msgid "workspace.shape.menu.flip-vertical" msgstr "Voltear vertical" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:394 msgid "workspace.shape.menu.flow-start" msgstr "Inicio de flujo" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:184 msgid "workspace.shape.menu.forward" msgstr "Mover hacia delante" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:187 msgid "workspace.shape.menu.front" msgstr "Mover al frente" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#, unused msgid "workspace.shape.menu.go-main" msgstr "Ir al archivo del componente principal" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:261 msgid "workspace.shape.menu.group" msgstr "Agrupar" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:363, src/app/main/ui/workspace/sidebar/layer_item.cljs:145 msgid "workspace.shape.menu.hide" msgstr "Ocultar" +#: src/app/main/ui/workspace/context_menu.cljs:548, src/app/main/ui/workspace/main_menu.cljs:408 msgid "workspace.shape.menu.hide-ui" msgstr "Mostrar/Ocultar Interfaz" +#: src/app/main/ui/workspace/context_menu.cljs:338 msgid "workspace.shape.menu.intersection" msgstr "Intersección" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:371, src/app/main/ui/workspace/sidebar/layer_item.cljs:153 msgid "workspace.shape.menu.lock" msgstr "Bloquear" -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:266 msgid "workspace.shape.menu.mask" msgstr "Crear máscara" -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:145, src/app/main/ui/workspace/context_menu.cljs:545 msgid "workspace.shape.menu.paste" msgstr "Pegar" +#: src/app/main/ui/workspace/context_menu.cljs:331 msgid "workspace.shape.menu.path" msgstr "Ruta" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:432 msgid "workspace.shape.menu.remove-flex" msgstr "Eliminar flex layout" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:435 msgid "workspace.shape.menu.remove-grid" msgstr "Eliminar grid layout" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:436 msgid "workspace.shape.menu.reset-overrides" msgstr "Deshacer modificaciones" +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:439 msgid "workspace.shape.menu.restore-main" msgstr "Restaurar componente principal" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:174 msgid "workspace.shape.menu.select-layer" msgstr "Seleccionar capa" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:360, src/app/main/ui/workspace/sidebar/layer_item.cljs:144 msgid "workspace.shape.menu.show" msgstr "Mostrar" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:424 msgid "workspace.shape.menu.show-in-assets" msgstr "Ver en el panel de recursos" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:442, src/app/main/ui/workspace/sidebar/assets/components.cljs:586 msgid "workspace.shape.menu.show-main" msgstr "Ver componente principal" +#: src/app/main/ui/workspace/context_menu.cljs:221 msgid "workspace.shape.menu.thumbnail-remove" msgstr "Quitar miniatura" +#: src/app/main/ui/workspace/context_menu.cljs:223 msgid "workspace.shape.menu.thumbnail-set" msgstr "Poner como miniatura" +#: src/app/main/ui/workspace/context_menu.cljs:326 msgid "workspace.shape.menu.transform-to-path" msgstr "Convertir en vector" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:257 msgid "workspace.shape.menu.ungroup" msgstr "Desagrupar" +#: src/app/main/ui/workspace/context_menu.cljs:332, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:70 msgid "workspace.shape.menu.union" msgstr "Unión" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:368, src/app/main/ui/workspace/sidebar/layer_item.cljs:152 msgid "workspace.shape.menu.unlock" msgstr "Desbloquear" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:271 msgid "workspace.shape.menu.unmask" msgstr "Quitar máscara" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs +#, unused msgid "workspace.shape.menu.update-components-in-bulk" msgstr "Actualizar componentes" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:445 msgid "workspace.shape.menu.update-main" msgstr "Actualizar componente principal" +#: src/app/main/ui/components/tab_container.cljs:50 msgid "workspace.sidebar.collapse" msgstr "Cerrar barra lateral" +#: src/app/main/ui/workspace/sidebar/collapsable_button.cljs:26 msgid "workspace.sidebar.expand" msgstr "Abrir barra lateral" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/right_header.cljs:231, src/app/main/ui/workspace/right_header.cljs:232 msgid "workspace.sidebar.history" msgstr "Historial (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/sidebar/layers.cljs:522, src/app/main/ui/workspace/sidebar.cljs:100 msgid "workspace.sidebar.layers" msgstr "Capas" +#: src/app/main/ui/workspace/sidebar/layers.cljs:308, src/app/main/ui/workspace/sidebar/layers.cljs:380 msgid "workspace.sidebar.layers.components" msgstr "Componentes" +#: src/app/main/ui/workspace/sidebar/layers.cljs:305, src/app/main/ui/workspace/sidebar/layers.cljs:338 msgid "workspace.sidebar.layers.frames" msgstr "Paneles" +#: src/app/main/ui/workspace/sidebar/layers.cljs:306, src/app/main/ui/workspace/sidebar/layers.cljs:352 msgid "workspace.sidebar.layers.groups" msgstr "Grupos" +#: src/app/main/ui/workspace/sidebar/layers.cljs:310, src/app/main/ui/workspace/sidebar/layers.cljs:408 msgid "workspace.sidebar.layers.images" msgstr "Imágenes" +#: src/app/main/ui/workspace/sidebar/layers.cljs:307, src/app/main/ui/workspace/sidebar/layers.cljs:366 msgid "workspace.sidebar.layers.masks" msgstr "Máscaras" +#: src/app/main/ui/workspace/sidebar/layers.cljs:289 msgid "workspace.sidebar.layers.search" msgstr "Buscar capas" +#: src/app/main/ui/workspace/sidebar/layers.cljs:311, src/app/main/ui/workspace/sidebar/layers.cljs:422 msgid "workspace.sidebar.layers.shapes" msgstr "Formas" +#: src/app/main/ui/workspace/sidebar/layers.cljs:309, src/app/main/ui/workspace/sidebar/layers.cljs:394 msgid "workspace.sidebar.layers.texts" msgstr "Textos" -#: src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs, -#: src/app/main/ui/inspect/attributes/svg.cljs +#: src/app/main/ui/viewer/inspect/attributes/svg.cljs:56, src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs:91 msgid "workspace.sidebar.options.svg-attrs.title" msgstr "Atributos del SVG Importado" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs +#: src/app/main/ui/workspace/sidebar/sitemap.cljs:217 msgid "workspace.sidebar.sitemap" msgstr "Páginas" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/left_header.cljs:91 msgid "workspace.sitemap" msgstr "Mapa del sitio" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/sidebar.cljs:120 msgid "workspace.toolbar.assets" msgstr "Recursos" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/palette.cljs:165, src/app/main/ui/workspace/palette.cljs:166 msgid "workspace.toolbar.color-palette" msgstr "Paleta de colores (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/right_header.cljs:220, src/app/main/ui/workspace/right_header.cljs:221 msgid "workspace.toolbar.comments" msgstr "Comentarios (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:180, src/app/main/ui/workspace/top_toolbar.cljs:181 msgid "workspace.toolbar.curve" msgstr "Curva (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:160, src/app/main/ui/workspace/top_toolbar.cljs:161 msgid "workspace.toolbar.ellipse" msgstr "Elipse (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:142, src/app/main/ui/workspace/top_toolbar.cljs:143 msgid "workspace.toolbar.frame" msgstr "Tablero (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:59, src/app/main/ui/workspace/top_toolbar.cljs:60 msgid "workspace.toolbar.image" msgstr "Imagen (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:132, src/app/main/ui/workspace/top_toolbar.cljs:133 msgid "workspace.toolbar.move" msgstr "Mover (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:189, src/app/main/ui/workspace/top_toolbar.cljs:190 msgid "workspace.toolbar.path" msgstr "Ruta (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:151, src/app/main/ui/workspace/top_toolbar.cljs:152 msgid "workspace.toolbar.rect" msgstr "Rectángulo (%s)" #: src/app/main/ui/workspace/left_toolbar.cljs +#, unused msgid "workspace.toolbar.shortcuts" msgstr "Atajos de teclado (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:169, src/app/main/ui/workspace/top_toolbar.cljs:170 msgid "workspace.toolbar.text" msgstr "Texto (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/palette.cljs:173, src/app/main/ui/workspace/palette.cljs:174 msgid "workspace.toolbar.text-palette" msgstr "Tipografías (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:216, src/app/main/ui/workspace/top_toolbar.cljs:217 msgid "workspace.toolbar.toggle-toolbar" msgstr "Alternar barra de herramientas" +#: src/app/main/ui/workspace/viewport/top_bar.cljs:38 msgid "workspace.top-bar.read-only.done" msgstr "Hecho" +#: src/app/main/ui/workspace/viewport/top_bar.cljs:35 #, markdown msgid "workspace.top-bar.view-only" msgstr "**Inspeccionando código** (View only)" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:342 msgid "workspace.undo.empty" msgstr "Todavía no hay cambios en el histórico" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:147 msgid "workspace.undo.entry.delete" msgstr "%s eliminado" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:146 msgid "workspace.undo.entry.modify" msgstr "%s modificado" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:148 msgid "workspace.undo.entry.move" msgstr "Objetos movidos" +#: src/app/main/ui/workspace/sidebar/history.cljs:111 msgid "workspace.undo.entry.multiple.circle" msgstr "círculos" +#: src/app/main/ui/workspace/sidebar/history.cljs:112 msgid "workspace.undo.entry.multiple.color" msgstr "colores" +#: src/app/main/ui/workspace/sidebar/history.cljs:113 msgid "workspace.undo.entry.multiple.component" msgstr "componentes" +#: src/app/main/ui/workspace/sidebar/history.cljs:114 msgid "workspace.undo.entry.multiple.curve" msgstr "curvas" +#: src/app/main/ui/workspace/sidebar/history.cljs:115 msgid "workspace.undo.entry.multiple.frame" msgstr "mesa de trabajo" +#: src/app/main/ui/workspace/sidebar/history.cljs:116 msgid "workspace.undo.entry.multiple.group" msgstr "grupos" +#: src/app/main/ui/workspace/sidebar/history.cljs:117 msgid "workspace.undo.entry.multiple.media" msgstr "gráficos" +#: src/app/main/ui/workspace/sidebar/history.cljs:118 msgid "workspace.undo.entry.multiple.multiple" msgstr "objetos" +#: src/app/main/ui/workspace/sidebar/history.cljs:119 msgid "workspace.undo.entry.multiple.page" msgstr "páginas" +#: src/app/main/ui/workspace/sidebar/history.cljs:120 msgid "workspace.undo.entry.multiple.path" msgstr "trazos" +#: src/app/main/ui/workspace/sidebar/history.cljs:121 msgid "workspace.undo.entry.multiple.rect" msgstr "rectángulos" +#: src/app/main/ui/workspace/sidebar/history.cljs:122 msgid "workspace.undo.entry.multiple.shape" msgstr "formas" +#: src/app/main/ui/workspace/sidebar/history.cljs:123 msgid "workspace.undo.entry.multiple.text" msgstr "textos" +#: src/app/main/ui/workspace/sidebar/history.cljs:124 msgid "workspace.undo.entry.multiple.typography" msgstr "tipografías" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:145 msgid "workspace.undo.entry.new" msgstr "Nuevo %s" +#: src/app/main/ui/workspace/sidebar/history.cljs:125 msgid "workspace.undo.entry.single.circle" msgstr "círculo" +#: src/app/main/ui/workspace/sidebar/history.cljs:126 msgid "workspace.undo.entry.single.color" msgstr "color" +#: src/app/main/ui/workspace/sidebar/history.cljs:127 msgid "workspace.undo.entry.single.component" msgstr "componente" +#: src/app/main/ui/workspace/sidebar/history.cljs:128 msgid "workspace.undo.entry.single.curve" msgstr "curva" +#: src/app/main/ui/workspace/sidebar/history.cljs:129 msgid "workspace.undo.entry.single.frame" msgstr "mesa de trabajo" +#: src/app/main/ui/workspace/sidebar/history.cljs:130 msgid "workspace.undo.entry.single.group" msgstr "grupo" +#: src/app/main/ui/workspace/sidebar/history.cljs:131 msgid "workspace.undo.entry.single.image" msgstr "imagen" +#: src/app/main/ui/workspace/sidebar/history.cljs:132 msgid "workspace.undo.entry.single.media" msgstr "gráfico" +#: src/app/main/ui/workspace/sidebar/history.cljs:133 msgid "workspace.undo.entry.single.multiple" msgstr "objeto" +#: src/app/main/ui/workspace/sidebar/history.cljs:134 msgid "workspace.undo.entry.single.page" msgstr "página" +#: src/app/main/ui/workspace/sidebar/history.cljs:135 msgid "workspace.undo.entry.single.path" msgstr "trazo" +#: src/app/main/ui/workspace/sidebar/history.cljs:136 msgid "workspace.undo.entry.single.rect" msgstr "rectángulo" +#: src/app/main/ui/workspace/sidebar/history.cljs:137 msgid "workspace.undo.entry.single.shape" msgstr "forma" +#: src/app/main/ui/workspace/sidebar/history.cljs:138 msgid "workspace.undo.entry.single.text" msgstr "texto" +#: src/app/main/ui/workspace/sidebar/history.cljs:139 msgid "workspace.undo.entry.single.typography" msgstr "tipografía" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:149 msgid "workspace.undo.entry.unknown" msgstr "Operación sobre %s" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:335 msgid "workspace.undo.title" msgstr "Histórico" -#: src/app/main/data/workspace/libraries.cljs +#: src/app/main/data/workspace/libraries.cljs:1094 msgid "workspace.updates.dismiss" msgstr "Ignorar" -#: src/app/main/data/workspace/libraries.cljs +#: src/app/main/data/workspace/libraries.cljs:1092 msgid "workspace.updates.more-info" msgstr "Más información" -#: src/app/main/data/workspace/libraries.cljs +#: src/app/main/data/workspace/libraries.cljs:1090 msgid "workspace.updates.there-are-updates" msgstr "Hay actualizaciones en bibliotecas compartidas" -#: src/app/main/data/workspace/libraries.cljs +#: src/app/main/data/workspace/libraries.cljs:1097 msgid "workspace.updates.update" msgstr "Actualizar" +#, unused msgid "workspace.viewport.click-to-close-path" msgstr "Pulsar para cerrar la ruta" - -msgid "workspace.plugins.title" -msgstr "Extensiones" - -msgid "workspace.plugins.search-placeholder" -msgstr "Intruduzca URL de la extensión" - -msgid "workspace.plugins.install" -msgstr "Instalar" - -msgid "workspace.plugins.installed-plugins" -msgstr "Extensiones instaladas" - -msgid "workspace.plugins.empty-plugins" -msgstr "No se encuentran extensiones" - -msgid "workspace.plugins.button-open" -msgstr "Abrir" - -msgid "workspace.plugins.error.url" -msgstr "La extensión no existe o la url no es correcta." - -msgid "workspace.plugins.success" -msgstr "Extensión cargada correctamente." - -msgid "workspace.plugins.menu.title" -msgstr "Extensiones" - -msgid "workspace.plugins.menu.plugins-manager" -msgstr "Gestor de extensiones" - -msgid "workspace.plugins.plugin-list-link" -msgstr "Lista de extensiones" - -msgid "workspace.plugins.permissions.title" -msgstr "LA EXTENSIÓN SOLICITA PERMISO PARA ACCEDER:" - -msgid "workspace.plugins.permissions.disclaimer" -msgstr "Tenga en cuenta que esta extensión ha sido desarrollada por terceros." - -msgid "workspace.plugins.permissions.content-read" -msgstr "Leer el contenido de sus archivos." - -msgid "workspace.plugins.permissions.content-write" -msgstr "Leer y modificar el contenido de sus archivos." - -msgid "workspace.plugins.permissions.user-read" -msgstr "Leer la información del usuario actual." - -msgid "workspace.plugins.permissions.library-read" -msgstr "Leer la información de sus bibliotecas y recursos." - -msgid "workspace.plugins.permissions.library-write" -msgstr "Leer y modificar la información de sus bibliotecas y recursos." diff --git a/frontend/translations/es_419.po b/frontend/translations/es_419.po index 97dfd69884..3660b7aae2 100644 --- a/frontend/translations/es_419.po +++ b/frontend/translations/es_419.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "PO-Revision-Date: 2024-06-17 08:07+0000\n" "Last-Translator: Anonymous \n" -"Language-Team: Spanish (Latin America) \n" +"Language-Team: Spanish (Latin America) " +"\n" "Language: es_419\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" @@ -11,380 +11,411 @@ msgstr "" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 5.6-dev\n" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:151, src/app/main/ui/viewer/login.cljs:104 msgid "auth.already-have-account" msgstr "¿Ya tienes una cuenta?" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:299 msgid "auth.check-your-email" msgstr "" "Revise su correo electrónico y haga clic en el enlace para verificar y " "comenzar a usar Penpot." -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:78 msgid "auth.confirm-password" msgstr "Confirmar Contraseña" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/register.cljs:163 msgid "auth.create-demo-account" msgstr "Crear cuenta demo" #: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#, unused msgid "auth.create-demo-profile" msgstr "¿Solo quieres probarlo?" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/login.cljs:43 msgid "auth.demo-warning" msgstr "" "Este es un servicio DEMO, NO LO UTILICE para trabajos reales, los proyectos " "se borrarán periódicamente." -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:189, src/app/main/ui/viewer/login.cljs:90 msgid "auth.forgot-password" msgstr "¿Has olvidado tu contraseña?" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:254 msgid "auth.fullname" msgstr "Nombre completo" -#: src/app/main/ui/auth/register.cljs -#, fuzzy +#: src/app/main/ui/auth/register.cljs:155, src/app/main/ui/viewer/login.cljs:107 msgid "auth.login-here" msgstr "Inicie sesión aquí" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:195 msgid "auth.login-submit" msgstr "Iniciar sesión" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:222 msgid "auth.login-with-github-submit" msgstr "GitHub" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:228 msgid "auth.login-with-gitlab-submit" msgstr "GitLab" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:216 msgid "auth.login-with-google-submit" msgstr "Google" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:201 msgid "auth.login-with-ldap-submit" msgstr "LDAP" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:234, src/app/main/ui/auth/login.cljs:255 msgid "auth.login-with-oidc-submit" msgstr "Open ID" -#: src/app/main/ui/settings/team-form.cljs, src/app/main/ui/auth/register.cljs, src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/onboarding/team_choice.cljs, src/app/main/ui/settings/access_tokens.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/settings/profile.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/auth/register.cljs:217, src/app/main/ui/dashboard/team_form.cljs:76, src/app/main/ui/onboarding/team_choice.cljs:180, src/app/main/ui/settings/access_tokens.cljs:66, src/app/main/ui/settings/feedback.cljs:34, src/app/main/ui/settings/profile.cljs:45, src/app/main/ui/workspace/sidebar/assets/groups.cljs:108 msgid "auth.name.not-all-space" msgstr "El nombre debe contener algún carácter distinto al del espacio." -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/onboarding/team_choice.cljs, src/app/main/ui/settings/access_tokens.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/settings/profile.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/auth/register.cljs:218, src/app/main/ui/dashboard/team_form.cljs:77, src/app/main/ui/onboarding/team_choice.cljs:181, src/app/main/ui/settings/access_tokens.cljs:67, src/app/main/ui/settings/feedback.cljs:33, src/app/main/ui/settings/profile.cljs:44, src/app/main/ui/workspace/sidebar/assets/groups.cljs:109 msgid "auth.name.too-long" msgstr "El nombre debe contener como máximo 250 caracteres." -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:71 msgid "auth.new-password" msgstr "Escribe una nueva contraseña" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:42 msgid "auth.notifications.invalid-token-error" msgstr "El token de recuperación no es válido." -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:46 msgid "auth.notifications.password-changed-successfully" msgstr "Contraseña cambiada correctamente" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:57 msgid "auth.notifications.profile-not-verified" msgstr "El perfil no está verificado, verifique el perfil antes de continuar." -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:40 msgid "auth.notifications.recovery-token-sent" msgstr "" "El enlace de recuperación de contraseña ha sido enviado a su bandeja de " "entrada de su correo electrónico." -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:47 msgid "auth.notifications.team-invitation-accepted" msgstr "Se unió al equipo con éxito" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:179, src/app/main/ui/auth/register.cljs:115 msgid "auth.password" msgstr "Contraseña" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:114 msgid "auth.password-length-hint" msgstr "Al menos 8 carácteres" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/recovery.cljs:61, src/app/main/ui/auth/recovery.cljs:62, src/app/main/ui/auth/register.cljs:81, src/app/main/ui/settings/password.cljs:75, src/app/main/ui/settings/password.cljs:76, src/app/main/ui/settings/password.cljs:77 msgid "auth.password-not-empty" msgstr "La contraseña debe contener algún carácter que no sea espacio." +#: src/app/main/ui/auth.cljs:41 msgid "auth.privacy-policy" msgstr "Política de privacidad" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:88 msgid "auth.recovery-request-submit" msgstr "Recuperar contraseña" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:101 msgid "auth.recovery-request-subtitle" msgstr "Le enviaremos un correo electrónico con instrucciones" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:100 msgid "auth.recovery-request-title" msgstr "¿Has olvidado tu contraseña?" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:82 msgid "auth.recovery-submit" msgstr "cambia tu contraseña" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:298, src/app/main/ui/viewer/login.cljs:93 msgid "auth.register" msgstr "¿No tienes cuenta aún?" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:302, src/app/main/ui/auth/register.cljs:121, src/app/main/ui/auth/register.cljs:263, src/app/main/ui/viewer/login.cljs:97 msgid "auth.register-submit" msgstr "Crea una cuenta" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:140 msgid "auth.register-title" msgstr "Crea una cuenta" #: src/app/main/ui/auth.cljs +#, unused msgid "auth.sidebar-tagline" msgstr "La solución de código abierto para diseño y creación de prototipos." +#: src/app/main/ui/auth.cljs:33, src/app/main/ui/dashboard/sidebar.cljs:1022, src/app/main/ui/workspace/main_menu.cljs:150 msgid "auth.terms-of-service" msgstr "Términos de servicio" +#, unused msgid "auth.terms-privacy-agreement" msgstr "" "Al crear una nueva cuenta, acepta nuestros términos de servicio y política " "de privacidad." -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:297 msgid "auth.verification-email-sent" msgstr "Hemos enviado un correo electrónico de verificación" #: src/app/main/ui/onboarding/questions.cljs +#, unused msgid "branding-illustrations-marketing-pieces" msgstr "...marca, ilustraciones, piezas de marketing, etc." +#: src/app/main/ui/workspace/libraries.cljs:228 msgid "common.publish" msgstr "Publicar" +#: src/app/main/ui/viewer/share_link.cljs:304, src/app/main/ui/viewer/share_link.cljs:314 msgid "common.share-link.all-users" msgstr "Todos los usuarios de Penpot" +#: src/app/main/ui/viewer/share_link.cljs:198 msgid "common.share-link.confirm-deletion-link-description" msgstr "" "¿Estás seguro de que deseas eliminar este enlace? Si lo haces ya no estará " "disponible para nadie" +#: src/app/main/ui/viewer/share_link.cljs:259, src/app/main/ui/viewer/share_link.cljs:289 msgid "common.share-link.current-tag" msgstr "(actual)" +#: src/app/main/ui/viewer/share_link.cljs:207, src/app/main/ui/viewer/share_link.cljs:214 msgid "common.share-link.destroy-link" msgstr "Borrar enlace" +#: src/app/main/ui/viewer/share_link.cljs:221 msgid "common.share-link.get-link" msgstr "Conseguir enlace" +#: src/app/main/ui/viewer/share_link.cljs:139 msgid "common.share-link.link-copied-success" msgstr "Enlace copiado exitosamente" +#: src/app/main/ui/viewer/share_link.cljs:231 msgid "common.share-link.manage-ops" msgstr "Administrar permisos" +#: src/app/main/ui/viewer/share_link.cljs:277 msgid "common.share-link.page-shared" msgid_plural "common.share-link.page-shared" msgstr[0] "1 página compartida" msgstr[1] "%s paginas compartidas" +#: src/app/main/ui/viewer/share_link.cljs:298 msgid "common.share-link.permissions-can-comment" msgstr "Puedes comentar" +#: src/app/main/ui/viewer/share_link.cljs:308 msgid "common.share-link.permissions-can-inspect" msgstr "Puedes inspeccionar el código" +#: src/app/main/ui/viewer/share_link.cljs:193 msgid "common.share-link.permissions-hint" msgstr "Cualquier persona con enlace tendrá acceso" +#: src/app/main/ui/viewer/share_link.cljs:241 msgid "common.share-link.permissions-pages" msgstr "Páginas compartidas" +#: src/app/main/ui/viewer/share_link.cljs:183 msgid "common.share-link.placeholder" msgstr "El enlace para compartir aparecerá aquí" +#: src/app/main/ui/viewer/share_link.cljs:303, src/app/main/ui/viewer/share_link.cljs:313 msgid "common.share-link.team-members" msgstr "Solo miembros del equipo" +#: src/app/main/ui/viewer/share_link.cljs:171 msgid "common.share-link.title" msgstr "Compartir prototipos" +#: src/app/main/ui/viewer/share_link.cljs:269 msgid "common.share-link.view-all" msgstr "Seleccionar todo" +#: src/app/main/ui/workspace/libraries.cljs:224 msgid "common.unpublish" msgstr "Despublicar" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:85 msgid "dasboard.team-hero.management" msgstr "Gestión de equipos" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:84 msgid "dasboard.team-hero.text" msgstr "" "Penpot está destinado a equipos. Invite a miembros a trabajar juntos en " "proyectos y archivos" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:82 msgid "dasboard.team-hero.title" msgstr "¡En equipo!" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.tutorial-hero.info" msgstr "" "Aprenda los conceptos básicos en Penpot mientras se divierte con este " "tutorial práctico." #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.tutorial-hero.start" msgstr "Iniciar el tutorial" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.tutorial-hero.title" msgstr "Tutorial práctico" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.walkthrough-hero.info" msgstr "Date un paseo por Penpot y conoce sus principales características." #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.walkthrough-hero.start" msgstr "Iniciar el recorrido" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.walkthrough-hero.title" msgstr "Tutorial de la interfaz" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:115 msgid "dashboard.access-tokens.copied-success" msgstr "Token copiado" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:202 msgid "dashboard.access-tokens.create" msgstr "Generar nuevo token" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:76 msgid "dashboard.access-tokens.create.success" msgstr "Token de acceso creado correctamente." -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:300 msgid "dashboard.access-tokens.empty.add-one" msgstr "Presione el botón \"Generar nuevo token\" para generar uno." -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:299 msgid "dashboard.access-tokens.empty.no-access-tokens" msgstr "No tienes tokens hasta el momento." -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:53 msgid "dashboard.access-tokens.errors-required-name" msgstr "El nombre es requerido" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:147 msgid "dashboard.access-tokens.expiration-180-days" msgstr "180 días" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:144 msgid "dashboard.access-tokens.expiration-30-days" msgstr "30 días" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:145 msgid "dashboard.access-tokens.expiration-60-days" msgstr "60 días" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:146 msgid "dashboard.access-tokens.expiration-90-days" msgstr "90 días" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:143 msgid "dashboard.access-tokens.expiration-never" msgstr "Nunca" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:282 msgid "dashboard.access-tokens.expired-on" msgstr "Expirado el %s" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:283 msgid "dashboard.access-tokens.expires-on" msgstr "Vence el %s" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:281 msgid "dashboard.access-tokens.no-expiration" msgstr "Sin fecha de vencimiento" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:197 msgid "dashboard.access-tokens.personal" msgstr "Tokens de acceso personal" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:198 msgid "dashboard.access-tokens.personal.description" msgstr "" "Los tokens de acceso personal funcionan como una alternativa a nuestro " "sistema de autenticación de inicio de sesión/contraseña y pueden usarse " "para permitir que una aplicación acceda a la API interna de Penpot" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:154 msgid "dashboard.access-tokens.token-will-expire" msgstr "El token caducará el %s" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:155 msgid "dashboard.access-tokens.token-will-not-expire" msgstr "El token no tiene fecha de vencimiento" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:291, src/app/main/ui/workspace/main_menu.cljs:572 msgid "dashboard.add-shared" msgstr "Agregar como biblioteca compartida" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:75 msgid "dashboard.change-email" msgstr "Cambiar el correo electrónico" -#: src/app/main/data/dashboard.cljs, src/app/main/data/dashboard.cljs +#: src/app/main/data/dashboard.cljs:762, src/app/main/data/dashboard.cljs:983 msgid "dashboard.copy-suffix" msgstr "(copiar)" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:338 msgid "dashboard.create-new-team" msgstr "Crear nuevo equipo" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/components/context_menu_a11y.cljs:256, src/app/main/ui/dashboard/sidebar.cljs:646 msgid "dashboard.default-team-name" msgstr "Tu Penpot" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:571 msgid "dashboard.delete-team" msgstr "Eliminar equipo" +#: src/app/main/ui/dashboard/file_menu.cljs:296, src/app/main/ui/workspace/main_menu.cljs:589 msgid "dashboard.download-binary-file" msgstr "Descargar el archivo Penpot (.penpot)" +#: src/app/main/ui/dashboard/file_menu.cljs:300, src/app/main/ui/workspace/main_menu.cljs:597 msgid "dashboard.download-standard-file" msgstr "Descargar archivo estándar (.svg + .json)" -#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:276, src/app/main/ui/dashboard/project_menu.cljs:90 msgid "dashboard.duplicate" msgstr "Duplicar" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:240 msgid "dashboard.duplicate-multi" msgstr "Duplicar %s archivos" -#: src/app/main/ui/dashboard/grid.cljs +#: src/app/main/ui/dashboard/placeholder.cljs:32 #, markdown msgid "dashboard.empty-placeholder-drafts" msgstr "" @@ -392,153 +423,172 @@ msgstr "" "sus archivos o agréguelos desde nuestras [Libraries & " "templates](https://penpot.app/libraries-templates)." +#: src/app/main/ui/dashboard/file_menu.cljs:249 msgid "dashboard.export-binary-multi" msgstr "Descargar %s archivos Penpot (.penpot)" +#: src/app/main/ui/workspace/main_menu.cljs:605 msgid "dashboard.export-frames" msgstr "Exportar tableros como PDF" -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:201 msgid "dashboard.export-frames.title" msgstr "Exportar como PDF" +#, unused msgid "dashboard.export-multi" msgstr "Exportar %s archivos de Penpot" -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:109 msgid "dashboard.export-multiple.selected" msgstr "%s de %s elementos seleccionados" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:578 msgid "dashboard.export-shapes" msgstr "Exportar" -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:180 msgid "dashboard.export-shapes.how-to" msgstr "" "Puede agregar configuraciones de exportación a elementos desde las " "propiedades de diseño (en la parte inferior de la barra lateral derecha)." -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:184 msgid "dashboard.export-shapes.how-to-link" msgstr "Información sobre cómo configurar las exportaciones en Penpot." -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:179 msgid "dashboard.export-shapes.no-elements" msgstr "No hay elementos con configuración de exportación." -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:190 msgid "dashboard.export-shapes.title" msgstr "Selección de exportación" +#: src/app/main/ui/dashboard/file_menu.cljs:252 msgid "dashboard.export-standard-multi" msgstr "Descargar %s archivos estándar (.svg + .json)" +#: src/app/main/ui/export.cljs:427 msgid "dashboard.export.detail" msgstr "* Puede incluir componentes, gráficos, colores y/o tipografías." +#: src/app/main/ui/export.cljs:426 msgid "dashboard.export.explain" msgstr "" "Uno o más archivos que desea exportar utilizan bibliotecas compartidas. " "¿Qué quiere hacer con sus activos*?" +#: src/app/main/ui/export.cljs:435 msgid "dashboard.export.options.all.message" msgstr "" "Los archivos con bibliotecas compartidas se incluirán en la exportación, " "manteniendo su vinculación." +#: src/app/main/ui/export.cljs:436 msgid "dashboard.export.options.all.title" msgstr "Exportar bibliotecas compartidas" +#: src/app/main/ui/export.cljs:437 msgid "dashboard.export.options.detach.message" msgstr "" "Las bibliotecas compartidas no se incluirán en la exportación y no se " "agregarán activos a la biblioteca. " +#: src/app/main/ui/export.cljs:438 msgid "dashboard.export.options.detach.title" msgstr "Trate los activos de biblioteca compartidos como objetos básicos" +#: src/app/main/ui/export.cljs:439 msgid "dashboard.export.options.merge.message" msgstr "" "Su archivo se exportará con todos los activos externos combinados en la " "biblioteca de archivos." +#: src/app/main/ui/export.cljs:440 msgid "dashboard.export.options.merge.title" msgstr "Incluir recursos de biblioteca compartidos en bibliotecas de archivos" +#: src/app/main/ui/dashboard/import.cljs:147 msgid "dashboard.import.progress.process-typographies" msgstr "Procesamiento de tipografías" +#: src/app/main/ui/dashboard/import.cljs:135 msgid "dashboard.import.progress.upload-data" msgstr "Subiendo datos al servidor (%s/%s)" +#: src/app/main/ui/dashboard/import.cljs:138 msgid "dashboard.import.progress.upload-media" msgstr "Subiendo archivo: %s" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:109 msgid "dashboard.invite-profile" msgstr "Invitar a la gente" -#: src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:547, src/app/main/ui/dashboard/sidebar.cljs:556, src/app/main/ui/dashboard/sidebar.cljs:563, src/app/main/ui/dashboard/team.cljs:312 msgid "dashboard.leave-team" msgstr "dejar el equipo" +#: src/app/main/ui/dashboard/templates.cljs:88, src/app/main/ui/dashboard/templates.cljs:163 msgid "dashboard.libraries-and-templates" msgstr "Bibliotecas y plantillas" +#: src/app/main/ui/dashboard/templates.cljs:164 msgid "dashboard.libraries-and-templates.explore" msgstr "Explore más de ellos y sepa cómo contribuir" +#: src/app/main/ui/dashboard/import.cljs:365 msgid "dashboard.libraries-and-templates.import-error" msgstr "Hubo un problema al importar la plantilla. La plantilla no fue importada." -#: src/app/main/ui/dashboard/libraries.cljs +#: src/app/main/ui/dashboard/libraries.cljs:53 msgid "dashboard.libraries-title" msgstr "Bibliotecas" -#: src/app/main/ui/dashboard/grid.cljs +#: src/app/main/ui/dashboard/placeholder.cljs:45 msgid "dashboard.loading-files" msgstr "cargando tus archivos…" +#: src/app/main/ui/dashboard/fonts.cljs:431 msgid "dashboard.loading-fonts" msgstr "cargando tus fuentes…" -#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:281, src/app/main/ui/dashboard/project_menu.cljs:100 msgid "dashboard.move-to" msgstr "Mover a" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:245 msgid "dashboard.move-to-multi" msgstr "Mover %s archivos a" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:226 msgid "dashboard.move-to-other-team" msgstr "Pasar a otro equipo" -#: src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/files.cljs +#: src/app/main/ui/dashboard/files.cljs:105, src/app/main/ui/dashboard/projects.cljs:252, src/app/main/ui/dashboard/projects.cljs:253 msgid "dashboard.new-file" msgstr "+ Nuevo archivo" -#: src/app/main/data/dashboard.cljs +#: src/app/main/data/dashboard.cljs:958, src/app/main/data/dashboard.cljs:1181 msgid "dashboard.new-file-prefix" msgstr "Archivo nuevo" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:55 msgid "dashboard.new-project" msgstr "+ Nuevo proyecto" -#: src/app/main/data/dashboard.cljs +#: src/app/main/data/dashboard.cljs:726, src/app/main/data/dashboard.cljs:1184 msgid "dashboard.new-project-prefix" msgstr "Nuevo proyecto" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:60 msgid "dashboard.no-matches-for" msgstr "No se encontraron coincidencias para \"%s\"" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:827 msgid "dashboard.no-projects-placeholder" msgstr "Los proyectos fijados aparecerán aquí" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:33 msgid "dashboard.notifications.email-changed-successfully" msgstr "Su dirección de correo electrónico se ha actualizado correctamente" diff --git a/frontend/translations/eu.po b/frontend/translations/eu.po index 485001f16e..9106c58a63 100644 --- a/frontend/translations/eu.po +++ b/frontend/translations/eu.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "PO-Revision-Date: 2024-06-17 08:07+0000\n" "Last-Translator: Anonymous \n" -"Language-Team: Basque \n" +"Language-Team: Basque " +"\n" "Language: eu\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" @@ -11,379 +11,424 @@ msgstr "" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 5.6-dev\n" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:151, src/app/main/ui/viewer/login.cljs:104 msgid "auth.already-have-account" msgstr "Baduzu kontua?" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:299 msgid "auth.check-your-email" msgstr "" "Begiratu zure eposta eta egin klik egiaztapen estekan Penpot erabiltzen " "hasteko." -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:78 msgid "auth.confirm-password" msgstr "Baieztatu pasahitza" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/register.cljs:163 msgid "auth.create-demo-account" msgstr "Sortu probak egiteko kontua" #: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#, unused msgid "auth.create-demo-profile" msgstr "Probatu egin nahi al duzu?" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/login.cljs:43 msgid "auth.demo-warning" msgstr "" "Hau PROBAK EGITEKO zerbitzua da. EZ ERABILI benetako lana egiteko, hemengo " "proiektuak noizean behin ezabatu egingo dira." -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:189, src/app/main/ui/viewer/login.cljs:90 msgid "auth.forgot-password" msgstr "Pasahitza ahaztu duzu?" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:254 msgid "auth.fullname" msgstr "Izen osoa" -#: src/app/main/ui/auth/register.cljs -#, fuzzy +#: src/app/main/ui/auth/register.cljs:155, src/app/main/ui/viewer/login.cljs:107 msgid "auth.login-here" msgstr "Sartu" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:195 msgid "auth.login-submit" msgstr "Sartu" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:222 msgid "auth.login-with-github-submit" msgstr "GitHub" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:228 msgid "auth.login-with-gitlab-submit" msgstr "GitLab" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:216 msgid "auth.login-with-google-submit" msgstr "Google" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:201 msgid "auth.login-with-ldap-submit" msgstr "LDAP" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:234, src/app/main/ui/auth/login.cljs:255 msgid "auth.login-with-oidc-submit" msgstr "OpenID" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:71 msgid "auth.new-password" msgstr "Sartu Pasahitz berria" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:42 msgid "auth.notifications.invalid-token-error" msgstr "Berreskuratzeko kodea ez da zuzena." -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:46 msgid "auth.notifications.password-changed-successfully" msgstr "Pasahitza ondo aldatu da" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:57 msgid "auth.notifications.profile-not-verified" msgstr "Profila ez da oraindik egiaztatu, egiaztatu ezazu jarraitu aurretik." -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:40 msgid "auth.notifications.recovery-token-sent" msgstr "Eposta mezu bat bidali dizugu zure pasahitza berreskuratzeko." -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:47 msgid "auth.notifications.team-invitation-accepted" msgstr "Taldera ondo gehitu zara" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:179, src/app/main/ui/auth/register.cljs:115 msgid "auth.password" msgstr "Pasahitza" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:114 msgid "auth.password-length-hint" msgstr "Gutxienez 8 karaktere" +#: src/app/main/ui/auth.cljs:41 msgid "auth.privacy-policy" msgstr "Pribatutasun politika" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:88 msgid "auth.recovery-request-submit" msgstr "Berreskuratu pasahitza" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:101 msgid "auth.recovery-request-subtitle" msgstr "Mezu bat bidaliko dizugu epostaz jarraibideekin" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:100 msgid "auth.recovery-request-title" msgstr "Pasahitza ahaztu duzu?" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:82 msgid "auth.recovery-submit" msgstr "Aldatu pasahitza" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:298, src/app/main/ui/viewer/login.cljs:93 msgid "auth.register" msgstr "Ez duzu konturik?" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:302, src/app/main/ui/auth/register.cljs:121, src/app/main/ui/auth/register.cljs:263, src/app/main/ui/viewer/login.cljs:97 msgid "auth.register-submit" msgstr "Sortu kontua" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:140 msgid "auth.register-title" msgstr "Sortu kontua" #: src/app/main/ui/auth.cljs +#, unused msgid "auth.sidebar-tagline" msgstr "Diseinuak eta prototipoak egiteko kode irekiko soluzioa." +#: src/app/main/ui/auth.cljs:33, src/app/main/ui/dashboard/sidebar.cljs:1022, src/app/main/ui/workspace/main_menu.cljs:150 msgid "auth.terms-of-service" msgstr "Zerbitzuaren erabilpen-baldintzak" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:297 msgid "auth.verification-email-sent" msgstr "Egiaztapen mezu bat bidali dugu helbide honetara" +#: src/app/main/ui/workspace/libraries.cljs:228 msgid "common.publish" msgstr "Argitaratu" +#: src/app/main/ui/viewer/share_link.cljs:304, src/app/main/ui/viewer/share_link.cljs:314 msgid "common.share-link.all-users" msgstr "Penpoten erabiltzaile guztiak" +#: src/app/main/ui/viewer/share_link.cljs:198 msgid "common.share-link.confirm-deletion-link-description" msgstr "Esteka ezabatu nahi duzu? Hori egiten baduzu, inori ez dio funtzionatuko" +#: src/app/main/ui/viewer/share_link.cljs:259, src/app/main/ui/viewer/share_link.cljs:289 msgid "common.share-link.current-tag" msgstr "(oraingoa)" +#: src/app/main/ui/viewer/share_link.cljs:207, src/app/main/ui/viewer/share_link.cljs:214 msgid "common.share-link.destroy-link" msgstr "Ezabatu esteka" +#: src/app/main/ui/viewer/share_link.cljs:221 msgid "common.share-link.get-link" msgstr "Lortu esteka" +#: src/app/main/ui/viewer/share_link.cljs:139 msgid "common.share-link.link-copied-success" msgstr "Esteka ondo kopiatu da" +#: src/app/main/ui/viewer/share_link.cljs:231 msgid "common.share-link.manage-ops" msgstr "Kudeatu baimenak" +#: src/app/main/ui/viewer/share_link.cljs:277 msgid "common.share-link.page-shared" msgid_plural "common.share-link.page-shared" msgstr[0] "Orrialde 1 partekatuta" msgstr[1] "%s orrialde partekatuta" +#: src/app/main/ui/viewer/share_link.cljs:298 msgid "common.share-link.permissions-can-comment" msgstr "Iruzkinak egin ditzakete" +#: src/app/main/ui/viewer/share_link.cljs:308 msgid "common.share-link.permissions-can-inspect" msgstr "Kodea ikus dezakete" +#: src/app/main/ui/viewer/share_link.cljs:193 msgid "common.share-link.permissions-hint" msgstr "Esteka duen edonor sar daiteke" +#: src/app/main/ui/viewer/share_link.cljs:241 msgid "common.share-link.permissions-pages" msgstr "Partekatutako orriak" +#: src/app/main/ui/viewer/share_link.cljs:183 msgid "common.share-link.placeholder" msgstr "Partekatzeko esteka hemen agertuko da" +#: src/app/main/ui/viewer/share_link.cljs:303, src/app/main/ui/viewer/share_link.cljs:313 msgid "common.share-link.team-members" msgstr "Taldeko kideak bakarrik" +#: src/app/main/ui/viewer/share_link.cljs:171 msgid "common.share-link.title" msgstr "Partekatu prototipoak" +#: src/app/main/ui/viewer/share_link.cljs:269 msgid "common.share-link.view-all" msgstr "Aukeratu guztiak" +#: src/app/main/ui/workspace/libraries.cljs:224 msgid "common.unpublish" msgstr "Argitaraketa atzera bota" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:85 msgid "dasboard.team-hero.management" msgstr "Taldearen kudeaketa" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:84 msgid "dasboard.team-hero.text" msgstr "" "Penpot taldeentzat sortuta dago. Gonbidatu beste pertsona batzuk proiektu " "eta fitxategietan batera lan egiteko" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:82 msgid "dasboard.team-hero.title" msgstr "Egin taldea!" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.tutorial-hero.info" msgstr "Ikasi Penpoten oinarriak tutorial atsegin honekin." #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.tutorial-hero.start" msgstr "Hasi tutoriala" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.tutorial-hero.title" msgstr "Tutorial atsegina" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.walkthrough-hero.info" msgstr "" "Eman begirada bat Penpoti bere oinarrizko funtzionalitateak zein diren " "ezagutzeko." #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.walkthrough-hero.start" msgstr "Hasi" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.walkthrough-hero.title" msgstr "Interfazea ezagutu" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:291, src/app/main/ui/workspace/main_menu.cljs:572 msgid "dashboard.add-shared" msgstr "Gehitu partekatutako liburutegi bezala" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:75 msgid "dashboard.change-email" msgstr "Eposta aldatu" -#: src/app/main/data/dashboard.cljs, src/app/main/data/dashboard.cljs +#: src/app/main/data/dashboard.cljs:762, src/app/main/data/dashboard.cljs:983 msgid "dashboard.copy-suffix" msgstr "(kopia)" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:338 msgid "dashboard.create-new-team" msgstr "Sortu talde berria" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/components/context_menu_a11y.cljs:256, src/app/main/ui/dashboard/sidebar.cljs:646 msgid "dashboard.default-team-name" msgstr "Zure Penpot" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:571 msgid "dashboard.delete-team" msgstr "Ezabatu taldea" +#: src/app/main/ui/dashboard/file_menu.cljs:296, src/app/main/ui/workspace/main_menu.cljs:589 msgid "dashboard.download-binary-file" msgstr "Deskargatu Penpot fitxategia (.penpot)" +#: src/app/main/ui/dashboard/file_menu.cljs:300, src/app/main/ui/workspace/main_menu.cljs:597 msgid "dashboard.download-standard-file" msgstr "Deskargatu fitxategi estandarra (.svg + .json)" -#: src/app/main/ui/dashboard/project_menu.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:276, src/app/main/ui/dashboard/project_menu.cljs:90 msgid "dashboard.duplicate" msgstr "Bikoiztu" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:240 msgid "dashboard.duplicate-multi" msgstr "%s fitxategi bizkoiztu" -#: src/app/main/ui/dashboard/grid.cljs +#: src/app/main/ui/dashboard/placeholder.cljs:32 +#, markdown msgid "dashboard.empty-placeholder-drafts" msgstr "" "Oh ez! Oraindik ez duzu fitxategirik! Txantiloi batekin proba egin nahi " "baduzu joan [Liburutegi eta " "txantiloiak](https://penpot.app/libraries-templates) atalera." +#: src/app/main/ui/dashboard/file_menu.cljs:249 msgid "dashboard.export-binary-multi" msgstr "Deskargatu %s Penpot fitxategi (.penpot)" +#: src/app/main/ui/workspace/main_menu.cljs:605 msgid "dashboard.export-frames" msgstr "Esportatu arbelak PDFra" -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:201 msgid "dashboard.export-frames.title" msgstr "Esportatu PDFra" +#, unused msgid "dashboard.export-multi" msgstr "Esportatu %s Penpot fitxategi" -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:109 msgid "dashboard.export-multiple.selected" msgstr "Aukeratutakoak: %s / %s" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:578 msgid "dashboard.export-shapes" msgstr "Esportatu" -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:180 msgid "dashboard.export-shapes.how-to" msgstr "" "Elementuei esportazioko ezarpenak gehitzeko aukeratu duzu diseinuaren " "propietateetatik (eskumako aldearen amaieran)." -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:184 msgid "dashboard.export-shapes.how-to-link" msgstr "Penpoten esportazioak konfiguratzeari buruzko informazioa." -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:179 msgid "dashboard.export-shapes.no-elements" msgstr "Ez dago esportazioko ezarpenik duen elementurik." -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:190 msgid "dashboard.export-shapes.title" msgstr "Esportatu aukeraketa" +#: src/app/main/ui/dashboard/file_menu.cljs:252 msgid "dashboard.export-standard-multi" msgstr "Deskargatu %s fitxategi estandar (.svn + .json)" +#: src/app/main/ui/export.cljs:427 msgid "dashboard.export.detail" msgstr "* Osagaiak, grafikoak, koloreak edo/eta tipografiak izan ditzakete." +#: src/app/main/ui/export.cljs:426 msgid "dashboard.export.explain" msgstr "" "Esportatu nahi duzun fitxategi bat edo gehiagok partekatutako liburutegiak " "darabiltzate. Zer egin nahi duzu baliabideekin*?" +#: src/app/main/ui/export.cljs:435 msgid "dashboard.export.options.all.message" msgstr "" "partekatutako liburutegiak dituzten fitxategiak esportazio paketean sartuko " "dira eta loturak mantenduko dituzte." +#: src/app/main/ui/export.cljs:436 msgid "dashboard.export.options.all.title" msgstr "Esportatu partekatutako liburutegiak" +#: src/app/main/ui/export.cljs:437 msgid "dashboard.export.options.detach.message" msgstr "" "Partekatutako liburutegiak ez dira esportazioan sartuko eta baliabide bat " "ere ez da liburutegian sartuko. " +#: src/app/main/ui/export.cljs:438 msgid "dashboard.export.options.detach.title" msgstr "Erabili baliabideak oinarrizko objektu bezala" +#: src/app/main/ui/export.cljs:439 msgid "dashboard.export.options.merge.message" msgstr "Zure fitxategia baliabide guztiak bere baitan dituela esportatuko da." +#: src/app/main/ui/export.cljs:440 msgid "dashboard.export.options.merge.title" msgstr "Sartu partekatutako liburutegiak fitxategiaren liburutegietan" +#: src/app/main/ui/export.cljs:418 msgid "dashboard.export.title" msgstr "Esportatu fitxategiak" +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:309 msgid "dashboard.fonts.deleted-placeholder" msgstr "Letra-tipoa ondo ezabatu da" -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:206 msgid "dashboard.fonts.dismiss-all" msgstr "Baztertu guztiak" +#: src/app/main/ui/dashboard/fonts.cljs:436 msgid "dashboard.fonts.empty-placeholder" msgstr "Ez duzu pertsonalizatutako letra-tiporik." -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:194 msgid "dashboard.fonts.fonts-added" msgid_plural "dashboard.fonts.fonts-added" msgstr[0] "Letra-tipo 1 gehitu da" msgstr[1] "%s letra-tipo gehitu dira" +#: src/app/main/ui/dashboard/fonts.cljs:170 +#, markdown msgid "dashboard.fonts.hero-text1" msgstr "" "Hemen gehitutako edozein letra-tipo pertsonalizatu, talde honen fitxategien " @@ -392,6 +437,8 @@ msgstr "" "honetako letra-tipoak kargatu daitezke: **TTF, OTF and WOFF** (batekin " "nahikoa da)." +#: src/app/main/ui/dashboard/fonts.cljs:182 +#, markdown msgid "dashboard.fonts.hero-text2" msgstr "" "Zureak diren edo Penpoten erabiltzeko lizentzia duzun letra-tipoak bakarrik " @@ -401,10 +448,12 @@ msgstr "" "inguruan irakurtzea ere interesgarria izan daiteke: [letra-tipoen " "lizentziak](https://www.typography.com/faq)." -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:202 msgid "dashboard.fonts.upload-all" msgstr "Kargatu guztiak" +#: src/app/main/ui/dashboard/fonts.cljs:187 +#, markdown msgid "dashboard.fonts.warning-text" msgstr "" "Zure letra-tipoek sistema eragile desberdinetan metrika bertikalekin " @@ -413,4121 +462,4499 @@ msgstr "" "dezakezu. Gainera, weberako letra-tipoak sortzeko " "[Transfonter](https://transfonter.org/) erabiltzea gomendatzen dugu. " +#: src/app/main/ui/dashboard/import.cljs:472, src/app/main/ui/dashboard/project_menu.cljs:108 msgid "dashboard.import" msgstr "Inportatu Penpot fitxategiak" +#: src/app/main/ui/dashboard/import.cljs:304, src/app/worker/import.cljs:753, src/app/worker/import.cljs:755 msgid "dashboard.import.analyze-error" msgstr "Ezin izan dugu fitxategia inportatu" +#: src/app/main/ui/dashboard/import.cljs:308 msgid "dashboard.import.import-error" msgstr "Errorea gertatu da fitxategia inportatzean. Ezin izan da inportatu." +#: src/app/main/ui/dashboard/import.cljs:493 msgid "dashboard.import.import-message" msgstr "%s fitxategi ondo inportatu dira." +#: src/app/main/ui/dashboard/import.cljs:481, src/app/main/ui/dashboard/import.cljs:488 msgid "dashboard.import.import-warning" msgstr "Fitxategi batzuk inportatu ez diren objektu akasdunak dituzte." +#: src/app/main/ui/dashboard/import.cljs:144 msgid "dashboard.import.progress.process-colors" msgstr "Koloreak prozesatzen" +#: src/app/main/ui/dashboard/import.cljs:153 msgid "dashboard.import.progress.process-components" msgstr "Osagaiak prozesatzen" +#: src/app/main/ui/dashboard/import.cljs:150 msgid "dashboard.import.progress.process-media" msgstr "Media prozesatzen" +#: src/app/main/ui/dashboard/import.cljs:141 msgid "dashboard.import.progress.process-page" msgstr "%s orrialdea prozesatzen" +#: src/app/main/ui/dashboard/import.cljs:147 msgid "dashboard.import.progress.process-typographies" msgstr "Letra-tipoak prozesatzen" +#: src/app/main/ui/dashboard/import.cljs:135 msgid "dashboard.import.progress.upload-data" msgstr "Datuak zerbitzarira bidaltzen (%s/%s)" +#: src/app/main/ui/dashboard/import.cljs:138 msgid "dashboard.import.progress.upload-media" msgstr "Fitxategia bidaltzen: %s" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:109 msgid "dashboard.invite-profile" msgstr "Gonbidatu taldera" -#: src/app/main/ui/dashboard/sidebar.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:547, src/app/main/ui/dashboard/sidebar.cljs:556, src/app/main/ui/dashboard/sidebar.cljs:563, src/app/main/ui/dashboard/team.cljs:312 msgid "dashboard.leave-team" msgstr "Utzi taldea" +#: src/app/main/ui/dashboard/templates.cljs:88, src/app/main/ui/dashboard/templates.cljs:163 msgid "dashboard.libraries-and-templates" msgstr "Liburutegi eta txantiloiak" +#: src/app/main/ui/dashboard/templates.cljs:164 msgid "dashboard.libraries-and-templates.explore" msgstr "Gehiago ikusi eta ikasi nola lagundu" +#: src/app/main/ui/dashboard/import.cljs:365 msgid "dashboard.libraries-and-templates.import-error" msgstr "Arazo bat egon da txantiloia inportatzean. Ezin izan da inportatu." -#: src/app/main/ui/dashboard/libraries.cljs +#: src/app/main/ui/dashboard/libraries.cljs:53 msgid "dashboard.libraries-title" msgstr "Partekatutako liburutegiak" -#: src/app/main/ui/dashboard/grid.cljs +#: src/app/main/ui/dashboard/placeholder.cljs:45 msgid "dashboard.loading-files" msgstr "zure fitxategiak kargatzen…" +#: src/app/main/ui/dashboard/fonts.cljs:431 msgid "dashboard.loading-fonts" msgstr "zure letra-tipoak kargatzen…" -#: src/app/main/ui/dashboard/project_menu.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:281, src/app/main/ui/dashboard/project_menu.cljs:100 msgid "dashboard.move-to" msgstr "Mugitu" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:245 msgid "dashboard.move-to-multi" msgstr "Mugitu %s fitxategi" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:226 msgid "dashboard.move-to-other-team" msgstr "Mugitu beste talde batera" -#: src/app/main/ui/dashboard/projects.cljs, -#: src/app/main/ui/dashboard/files.cljs +#: src/app/main/ui/dashboard/files.cljs:105, src/app/main/ui/dashboard/projects.cljs:252, src/app/main/ui/dashboard/projects.cljs:253 msgid "dashboard.new-file" msgstr "+ Fitxategi berria" -#: src/app/main/data/dashboard.cljs +#: src/app/main/data/dashboard.cljs:958, src/app/main/data/dashboard.cljs:1181 msgid "dashboard.new-file-prefix" msgstr "Fitxategi berria" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:55 msgid "dashboard.new-project" msgstr "+ Proiektu berria" -#: src/app/main/data/dashboard.cljs +#: src/app/main/data/dashboard.cljs:726, src/app/main/data/dashboard.cljs:1184 msgid "dashboard.new-project-prefix" msgstr "Proiektu berria" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:60 msgid "dashboard.no-matches-for" msgstr "Ez da \"%s\" aurkitu" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:827 msgid "dashboard.no-projects-placeholder" msgstr "Ainguratutako proiektuak hemen agertuko dira" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:33 msgid "dashboard.notifications.email-changed-successfully" msgstr "Zure eposta helbidea ondo eguneratu da" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:27 msgid "dashboard.notifications.email-verified-successfully" msgstr "Zure eposta helbidea egiaztatu egin da" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:37 msgid "dashboard.notifications.password-saved" msgstr "Pasahitza ondo gorde da!" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1081 msgid "dashboard.num-of-members" msgstr "%s kide" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:267 msgid "dashboard.open-in-new-tab" msgstr "Ireki fitxa berrian" +#: src/app/main/ui/dashboard/files.cljs:117, src/app/main/ui/dashboard/projects.cljs:260, src/app/main/ui/dashboard/projects.cljs:261 msgid "dashboard.options" msgstr "Aukerak" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:106, src/app/main/ui/settings/password.cljs:119 msgid "dashboard.password-change" msgstr "Aldatu pasahitza" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/pin_button.cljs:24, src/app/main/ui/dashboard/project_menu.cljs:95 msgid "dashboard.pin-unpin" msgstr "Ainguratu/Desainguratu" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:51 msgid "dashboard.projects-title" msgstr "Proiektuak" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:86 msgid "dashboard.remove-account" msgstr "Kontua ezabatu nahi duzu?" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "dashboard.remove-shared" msgstr "Ezabatu partekatutako liburutegi gisa" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:78 msgid "dashboard.save-settings" msgstr "Gorde aukerak" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:246, src/app/main/ui/dashboard/sidebar.cljs:247 msgid "dashboard.search-placeholder" msgstr "Bilatu…" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:55 msgid "dashboard.searching-for" msgstr "\"%s\" bilatzen…" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:56 msgid "dashboard.select-ui-language" msgstr "Aldatu hizkuntza" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:63 msgid "dashboard.select-ui-theme" msgstr "Aukeratu gaia" -#: src/app/main/ui/dashboard/grid.cljs +#: src/app/main/ui/dashboard/projects.cljs:282 msgid "dashboard.show-all-files" msgstr "Ikusi fitxategi guztiak" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:96 msgid "dashboard.success-delete-file" msgstr "Zure fitxategia ondo ezabatu da" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:59 msgid "dashboard.success-delete-project" msgstr "Zure proiektua ondo ezabatu da" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:91 msgid "dashboard.success-duplicate-file" msgstr "Zure fitxategia ondo bikoiztu da" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:33 msgid "dashboard.success-duplicate-project" msgstr "Zure proiektua ondo bikoiztu da" -#: src/app/main/ui/dashboard/grid.cljs, src/app/main/ui/dashboard/sidebar.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:130, src/app/main/ui/dashboard/grid.cljs:558, src/app/main/ui/dashboard/sidebar.cljs:152 msgid "dashboard.success-move-file" msgstr "Zure fitxategia ondo mugitu da" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:129 msgid "dashboard.success-move-files" msgstr "Zure fitxategiak ondo mugitu dira" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:54 msgid "dashboard.success-move-project" msgstr "Zure proiektua ondo mugitu da" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1052 msgid "dashboard.team-info" msgstr "Taldearen informazioa" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1070 msgid "dashboard.team-members" msgstr "Taldekideak" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1085 msgid "dashboard.team-projects" msgstr "Taldearen proiektuak" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:61 msgid "dashboard.theme-change" msgstr "Itxura" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:42 msgid "dashboard.title-search" msgstr "Bilaketaren emaitzak" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:50 msgid "dashboard.type-something" msgstr "Idatzi bilaktzeko zerbaitu" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:287, src/app/main/ui/workspace/main_menu.cljs:566 msgid "dashboard.unpublish-shared" msgstr "Atzera bota liburutegia argitaratzea" -#: src/app/main/ui/settings/password.cljs, -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:71 msgid "dashboard.update-settings" msgstr "Eguneratu aukerak" +#: src/app/main/ui/dashboard/team.cljs:861 msgid "dashboard.webhooks.active" msgstr "Aktibo" +#: src/app/main/ui/dashboard/team.cljs:862 msgid "dashboard.webhooks.active.explain" msgstr "Webhook hau aktibatzen denean gertaeraren xehetasunak bidaliko dira" +#: src/app/main/ui/dashboard/team.cljs:852 msgid "dashboard.webhooks.content-type" msgstr "Elementu mota" +#: src/app/main/ui/dashboard/team.cljs:885 msgid "dashboard.webhooks.create" msgstr "Sortu webhooka" +#: src/app/main/ui/dashboard/team.cljs:775 msgid "dashboard.webhooks.create.success" msgstr "Webhooka ondo sortu da." +#: src/app/main/ui/dashboard/team.cljs:882 msgid "dashboard.webhooks.description" msgstr "" "Webhookak beste webgune batzuei Penpoten zerbait gertatu dela jakinarazteko " "modu bat dira. Adierazitako URLtara POST eskaera bat bidaliko dugu." +#: src/app/main/ui/dashboard/team.cljs:1005 msgid "dashboard.webhooks.empty.add-one" msgstr "Sakatu \"Sortu webhooka\" botoia bat gehitzeko." +#: src/app/main/ui/dashboard/team.cljs:1004 msgid "dashboard.webhooks.empty.no-webhooks" msgstr "Ez dago webhookik." +#, unused msgid "dashboard.webhooks.update.success" msgstr "Webhooka ondo aldatu da." -#: src/app/main/ui/settings.cljs +#: src/app/main/ui/settings.cljs:31 msgid "dashboard.your-account-title" msgstr "Zure kontua" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:70 msgid "dashboard.your-email" msgstr "Eposta" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:62 msgid "dashboard.your-name" msgstr "Izena" -#: src/app/main/ui/dashboard/search.cljs, src/app/main/ui/dashboard/team.cljs, -#: src/app/main/ui/dashboard/libraries.cljs, -#: src/app/main/ui/dashboard/projects.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:38, src/app/main/ui/dashboard/fonts.cljs:33, src/app/main/ui/dashboard/libraries.cljs:42, src/app/main/ui/dashboard/projects.cljs:318, src/app/main/ui/dashboard/search.cljs:30, src/app/main/ui/dashboard/sidebar.cljs:312, src/app/main/ui/dashboard/team.cljs:495, src/app/main/ui/dashboard/team.cljs:729, src/app/main/ui/dashboard/team.cljs:991, src/app/main/ui/dashboard/team.cljs:1038 msgid "dashboard.your-penpot" msgstr "Zure Penpot" -#: src/app/main/ui/alert.cljs +#: src/app/main/ui/alert.cljs:32 msgid "ds.alert-ok" msgstr "Ok" -#: src/app/main/ui/alert.cljs +#: src/app/main/ui/alert.cljs:31, src/app/main/ui/alert.cljs:34 msgid "ds.alert-title" msgstr "Oharra" -#: src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:83 msgid "ds.component-subtitle" msgstr "Eguneratzeko dauden osagaiak:" -#: src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:36, src/app/main/ui/workspace/plugins.cljs:246 msgid "ds.confirm-cancel" msgstr "Utzi" -#: src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:37, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:141 msgid "ds.confirm-ok" msgstr "Ados" -#: src/app/main/ui/confirm.cljs, src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:35, src/app/main/ui/confirm.cljs:39 msgid "ds.confirm-title" msgstr "Ziur?" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:62 msgid "errors.auth-provider-not-configured" msgstr "Saioa hasteko hornitzailea ez dago konfiguratuta." +#: src/app/main/errors.cljs:104 msgid "errors.auth.unable-to-login" msgstr "Badirudi ez zarela sartu edo zure saioa iraungi egin dela." +#: src/app/main/data/fonts.cljs:189 msgid "errors.bad-font" msgstr "Ezin izan da %s letra-tipoa kargatu" +#: src/app/main/data/fonts.cljs:188 msgid "errors.bad-font-plural" msgstr "Ezin izan dira %s letra-tipoak kargatu" -#: src/app/main/data/workspace.cljs +#: src/app/main/data/workspace.cljs:1598 msgid "errors.clipboard-not-implemented" msgstr "Zure nabigatzaileak ezin du hori egin" -#: src/app/main/ui/auth/verify_token.cljs, -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/auth/verify_token.cljs:82, src/app/main/ui/settings/change_email.cljs:46 msgid "errors.email-already-exists" msgstr "Eposta helbide hori erabilita dago" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:87 msgid "errors.email-already-validated" msgstr "Eposta helbide hori egiaztatuta dago." +#: src/app/main/ui/settings/password.cljs:28 msgid "errors.email-as-password" msgstr "Ezin duzu zure eposta helbidea pasahitz gisa erabiliz" -#: src/app/main/ui/auth/register.cljs, -#: src/app/main/ui/auth/recovery_request.cljs, -#: src/app/main/ui/settings/change_email.cljs, -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/auth/recovery_request.cljs:63, src/app/main/ui/dashboard/team.cljs:578, src/app/main/ui/settings/change_email.cljs:54 msgid "errors.email-has-permanent-bounces" msgstr "«%s» helbideak ez ditu mezuak ondo jasotzen, itzuli egiten ditu." -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs, -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/login.cljs:81, src/app/main/ui/auth/recovery_request.cljs:31, src/app/main/ui/auth/register.cljs:43 msgid "errors.email-invalid" msgstr "Mesedez, idatzi eposta helbide zuzen bat" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:35 msgid "errors.email-invalid-confirmation" msgstr "Egiaztapenereko epostak bat etorri behar du aurrekoarekin" +#: src/app/main/ui/dashboard/team.cljs:170 msgid "errors.email-spam-or-permanent-bounces" msgstr "" "«%s» helbideak ez ditu mezuak ondo jasotzen, itzuli egiten ditu edo " "spamaren inguruko txostenak ditu." -#: src/app/main/errors.cljs +#: src/app/main/errors.cljs:227 msgid "errors.feature-mismatch" msgstr "" "Badirudi '%s' ezaugarria aktibo duen fitxategi bat irekitzen ari zarela " "baina zure penpot frontendak ezin du hori egin edo ezaugarri hori " "desaktibatuta du." -#: src/app/main/errors.cljs +#: src/app/main/errors.cljs:231, src/app/main/errors.cljs:245 msgid "errors.feature-not-supported" msgstr "Ezaugarria ezin da erabili: '%s'." -#: src/app/main/ui/auth/verify_token.cljs, -#: src/app/main/ui/settings/feedback.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/data/users.cljs:709, src/app/main/ui/auth/login.cljs:65, src/app/main/ui/auth/login.cljs:116, src/app/main/ui/auth/register.cljs:69, src/app/main/ui/auth/register.cljs:237, src/app/main/ui/auth/verify_token.cljs:92, src/app/main/ui/dashboard/team.cljs:173, src/app/main/ui/onboarding/team_choice.cljs:95, src/app/main/ui/settings/access_tokens.cljs:91, src/app/main/ui/settings/feedback.cljs:52 msgid "errors.generic" msgstr "Erroreren bat gertatu da." -#: src/app/main/ui/components/color_input.cljs +#: src/app/main/ui/components/color_input.cljs:57 msgid "errors.invalid-color" msgstr "Kolorea ez da zuzena" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/static.cljs:43 msgid "errors.invite-invalid" msgstr "Gonbidapena ez da zuzena" +#: src/app/main/ui/static.cljs:44 msgid "errors.invite-invalid.info" msgstr "Gonbidapen hau bertan behera utzi dute edo iraungi egin da." -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:101 msgid "errors.ldap-disabled" msgstr "LDAP bidez sartzea desgaituta dago." -#: src/app/main/errors.cljs +#: src/app/main/errors.cljs:239 msgid "errors.max-quote-reached" msgstr "" "Kuotaren maximora heldu zara: '%s'. Jarri kontaktuan laguntza " "zerbitzuarekin." -#: src/app/main/data/workspace/persistence.cljs +#: src/app/main/data/workspace/media.cljs:184 msgid "errors.media-too-large" msgstr "Irudia handiegia da (5mb baino gutxiago izan behar ditu)." -#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs +#: src/app/main/data/media.cljs:68, src/app/main/data/workspace/media.cljs:187 msgid "errors.media-type-mismatch" msgstr "Irudiaren edukia eta luzapena bat ez datozela dirudi." -#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs +#: src/app/main/data/media.cljs:65, src/app/main/data/workspace/media.cljs:172, src/app/main/data/workspace/media.cljs:175, src/app/main/data/workspace/media.cljs:178, src/app/main/data/workspace/media.cljs:181 msgid "errors.media-type-not-allowed" msgstr "Irudia zuzena ez dela dirudi." -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:574 msgid "errors.member-is-muted" msgstr "" "Gonbidatzen ari zaren profilak ez ditu eposta bidezko mezuak jasotzen (spam " "gisa markatu delako edo mezuak itzuli egiten dituelako)." -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:61 msgid "errors.password-invalid-confirmation" msgstr "Pasahitzaren egiaztapenak bat etorri behar du aurrekoarekin" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:64 msgid "errors.password-too-short" msgstr "Pasahitzak gutxienez 8 karaktere izan behar ditu" +#: src/app/main/data/users.cljs:703, src/app/main/ui/auth/login.cljs:97, src/app/main/ui/auth/login.cljs:105 msgid "errors.profile-blocked" msgstr "Profila blokeatuta dago" -#: src/app/main/ui/auth/recovery_request.cljs, -#: src/app/main/ui/settings/change_email.cljs, -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/auth/recovery_request.cljs:60, src/app/main/ui/dashboard/team.cljs:164, src/app/main/ui/dashboard/team.cljs:570, src/app/main/ui/settings/change_email.cljs:50 msgid "errors.profile-is-muted" msgstr "" "Zure profilak ez ditu eposta mezuak jasotzen (spam gisa markatu delako edo " "mezuak itzuli egiten dituelako)." -#: src/app/main/ui/auth/register.cljs +#: src/app/main/data/users.cljs:701, src/app/main/ui/auth/register.cljs:60 msgid "errors.registration-disabled" msgstr "Erregistroa desgaituta dago." +#: src/app/main/ui/dashboard/sidebar.cljs:365, src/app/main/ui/dashboard/team.cljs:359 msgid "errors.team-leave.insufficient-members" msgstr "" "Ez dago taldetik irteteko behar beste kide, seguru aski ezabatu egin nahiko " "duzu." +#: src/app/main/ui/dashboard/sidebar.cljs:368, src/app/main/ui/dashboard/team.cljs:362 msgid "errors.team-leave.member-does-not-exists" msgstr "Izendatu nahi duzun kidea ez da existitzen." +#: src/app/main/ui/dashboard/sidebar.cljs:371, src/app/main/ui/dashboard/team.cljs:365 msgid "errors.team-leave.owner-cant-leave" msgstr "Jabea ezin da taldetik irten, jabetza beste pertsona bati eman behar diozu." -#: src/app/main/data/media.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs +#: src/app/main/data/media.cljs:71 msgid "errors.unexpected-error" msgstr "Errore bat gertatut da." -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:60 msgid "errors.unexpected-token" msgstr "Tokena ez da zuzena" +#: src/app/main/ui/dashboard/team.cljs:796 msgid "errors.webhooks.connection" msgstr "Konexio errorea, URLa ezin da ireki" +#: src/app/main/ui/dashboard/team.cljs:790 msgid "errors.webhooks.invalid-uri" msgstr "URLak ez du balidazioa gainditu." -#, fuzzy +#: src/app/main/ui/dashboard/team.cljs:949 msgid "errors.webhooks.last-delivery" msgstr "Errore bat gertatu da azken bidalketan." +#: src/app/main/ui/dashboard/team.cljs:792, src/app/main/ui/dashboard/team.cljs:952 msgid "errors.webhooks.ssl-validation" msgstr "Errorea gertatu da SSL balidazioan." +#: src/app/main/ui/dashboard/team.cljs:794 msgid "errors.webhooks.timeout" msgstr "Denbora muga gainditu da" +#: src/app/main/ui/dashboard/team.cljs:788 msgid "errors.webhooks.unexpected" msgstr "Errore ezezaguna balidazioan" +#: src/app/main/ui/dashboard/team.cljs:798, src/app/main/ui/dashboard/team.cljs:955 msgid "errors.webhooks.unexpected-status" msgstr "Espero ez zen egoera %s" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:109, src/app/main/ui/auth/login.cljs:113 msgid "errors.wrong-credentials" msgstr "Izena edo pasahitza ez dira zuzenak." -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:25 msgid "errors.wrong-old-password" msgstr "Aurreko pasahitza ez da zuzena" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:77 msgid "feedback.description" msgstr "Deskribapena" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:95 msgid "feedback.discourse-go-to" msgstr "Penpoten forora joan" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:89 msgid "feedback.discourse-subtitle1" msgstr "Ongi etorri! Laguntza behar baduzu, bilatu, idatzi edo galdetu lasai." -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:88 msgid "feedback.discourse-title" msgstr "Penpot komunitatea" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:72 msgid "feedback.subject" msgstr "Gaia" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:69 msgid "feedback.subtitle" msgstr "" "Idatzi zure mezuaren gaia, arazo bat, ideia bat edo zalantza bat den " "esanez. Gure lantaldeko norbaitek ahal bezain laster erantzungo dizu." -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:68 msgid "feedback.title" msgstr "Posta elektronikoa" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:105 msgid "feedback.twitter-go-to" msgstr "Xrera joan" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:99 msgid "feedback.twitter-subtitle1" msgstr "Zure zalantza teknikoak erantzuteko kontua." -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:98 msgid "feedback.twitter-title" msgstr "Laguntzarako X kontua" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:30 msgid "generic.error" msgstr "Errore bat gertatu da" -#: src/app/main/ui/inspect/attributes/blur.cljs +#: src/app/main/ui/viewer/inspect/attributes/blur.cljs:26 msgid "inspect.attributes.blur" msgstr "Desenfokatuta" -#: src/app/main/ui/inspect/attributes/blur.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:115 msgid "inspect.attributes.blur.value" msgstr "Balioa" -#: src/app/main/ui/inspect/attributes/common.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:112 msgid "inspect.attributes.color.hex" msgstr "HEX" -#: src/app/main/ui/inspect/attributes/common.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:114 msgid "inspect.attributes.color.hsla" msgstr "HSLA" -#: src/app/main/ui/inspect/attributes/common.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:113 msgid "inspect.attributes.color.rgba" msgstr "RGBA" -#: src/app/main/ui/inspect/attributes/fill.cljs +#: src/app/main/ui/viewer/inspect/attributes/fill.cljs:57 msgid "inspect.attributes.fill" msgstr "Betegarria" -#: src/app/main/ui/inspect/attributes/image.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:99, src/app/main/ui/viewer/inspect/attributes/image.cljs:51 msgid "inspect.attributes.image.download" msgstr "Deskargatu jatorrizko irudia" -#: src/app/main/ui/inspect/attributes/image.cljs +#: src/app/main/ui/viewer/inspect/attributes/image.cljs:39 msgid "inspect.attributes.image.height" msgstr "Altuera" -#: src/app/main/ui/inspect/attributes/image.cljs +#: src/app/main/ui/viewer/inspect/attributes/image.cljs:32 msgid "inspect.attributes.image.width" msgstr "Zabalera" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout" msgstr "Egitura" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.height" msgstr "Altuera" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.left" msgstr "Ezkerra" -#: src/app/main/ui/inspect/attributes/layout.cljs, -#: src/app/main/ui/inspect/attributes/layout.cljs +#: src/app/main/ui/inspect/attributes/layout.cljs, src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.radius" msgstr "Erradioa" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.rotation" msgstr "Biraketa" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.top" msgstr "Goian" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.width" msgstr "Zabalera" -#: src/app/main/ui/inspect/attributes/shadow.cljs +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:57 msgid "inspect.attributes.shadow" msgstr "Itzala" -#: src/app/main/ui/inspect/attributes/layout.cljs +#: src/app/main/ui/viewer/inspect/attributes/geometry.cljs:40 msgid "inspect.attributes.size" msgstr "Tamaina eta posizioa" -#: src/app/main/ui/inspect/attributes/stroke.cljs +#: src/app/main/ui/viewer/inspect/attributes/stroke.cljs:52 msgid "inspect.attributes.stroke" msgstr "Ertza" +#, permanent, unused msgid "inspect.attributes.stroke.alignment.center" msgstr "Erdia" +#, permanent, unused msgid "inspect.attributes.stroke.alignment.inner" msgstr "Barnealdea" +#, permanent, unused msgid "inspect.attributes.stroke.alignment.outer" msgstr "Kanpoaldea" +#, unused msgid "inspect.attributes.stroke.style.dotted" msgstr "Puntuak" +#, unused msgid "inspect.attributes.stroke.style.mixed" msgstr "Nahasia" +#, unused msgid "inspect.attributes.stroke.style.none" msgstr "Bat ere ez" +#, unused msgid "inspect.attributes.stroke.style.solid" msgstr "Solidoa" #: src/app/main/ui/inspect/attributes/stroke.cljs +#, unused msgid "inspect.attributes.stroke.width" msgstr "Zabalera" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:81, src/app/main/ui/viewer/inspect/attributes/text.cljs:194 msgid "inspect.attributes.typography" msgstr "Letra-tipo" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:89 msgid "inspect.attributes.typography.font-family" msgstr "Letra-tipo familia" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:107 msgid "inspect.attributes.typography.font-size" msgstr "Letra-tipoaren tamaina" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:98 msgid "inspect.attributes.typography.font-style" msgstr "Letra-tipoaren estiloa" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:116 msgid "inspect.attributes.typography.font-weight" msgstr "Letra tipoaren lodiera" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:134 msgid "inspect.attributes.typography.letter-spacing" msgstr "Hizkien tartea" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:125 msgid "inspect.attributes.typography.line-height" msgstr "Lerroartea" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:143 msgid "inspect.attributes.typography.text-decoration" msgstr "Testuaren apainketa" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:145 msgid "inspect.attributes.typography.text-decoration.none" msgstr "Bat ere ez" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:146 msgid "inspect.attributes.typography.text-decoration.strikethrough" msgstr "Marratu" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:147 msgid "inspect.attributes.typography.text-decoration.underline" msgstr "Azpimarratu" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:156 msgid "inspect.attributes.typography.text-transform" msgstr "Testua eraldatu" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:158 msgid "inspect.attributes.typography.text-transform.lowercase" msgstr "Letra xeheak" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:159 msgid "inspect.attributes.typography.text-transform.none" msgstr "Bat ere ez" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:160 msgid "inspect.attributes.typography.text-transform.titlecase" msgstr "Lehenengoa letra larriz" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:161 msgid "inspect.attributes.typography.text-transform.uppercase" msgstr "Letra larriz" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:140 msgid "inspect.empty.help" msgstr "" "Diseinua ikuskatzeari buruz gehiago jakin nahi baduzu zoaz Penpoten " "laguntza zentrora" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:143 msgid "inspect.empty.more-info" msgstr "Informazio gehiago ikuskatzeari buruz" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:135 msgid "inspect.empty.select" msgstr "" "Aukeratu forma bat, taula bat edo talde bat beren propietateak eta kodea " "ikuskatzeko" -#: src/app/main/ui/inspect/right_sidebar.cljs +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:125 msgid "inspect.tabs.code" msgstr "Kodea" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:98 msgid "inspect.tabs.code.selected.circle" msgstr "Borobila" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:99 msgid "inspect.tabs.code.selected.component" msgstr "Osagaia" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:100 msgid "inspect.tabs.code.selected.curve" msgstr "Kurba" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:101 msgid "inspect.tabs.code.selected.frame" msgstr "Mahaigaina" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:102 msgid "inspect.tabs.code.selected.group" msgstr "Taldea" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:103 msgid "inspect.tabs.code.selected.image" msgstr "Irudia" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:104 msgid "inspect.tabs.code.selected.mask" msgstr "Maskara" -#: src/app/main/ui/inspect/right_sidebar.cljs +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:93 msgid "inspect.tabs.code.selected.multiple" msgstr "%s aukeratuta" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:105 msgid "inspect.tabs.code.selected.path" msgstr "Trazadura" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:106 msgid "inspect.tabs.code.selected.rect" msgstr "Laukia" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:107 msgid "inspect.tabs.code.selected.svg-raw" msgstr "SVG" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:108 msgid "inspect.tabs.code.selected.text" msgstr "Testua" -#: src/app/main/ui/inspect/right_sidebar.cljs +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:115 msgid "inspect.tabs.info" msgstr "Informazioa" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:158 msgid "label.shortcuts" msgstr "Lasterteklak" +#: src/app/main/ui/dashboard/import.cljs:527 msgid "labels.accept" msgstr "Onartu" +#: src/app/main/ui/dashboard/team.cljs:968 msgid "labels.active" msgstr "Aktibo" +#: src/app/main/ui/dashboard/fonts.cljs:175 msgid "labels.add-custom-font" msgstr "Gehitu letra-tipo pertsonalizatua" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:120, src/app/main/ui/dashboard/team.cljs:276, src/app/main/ui/dashboard/team.cljs:519, src/app/main/ui/dashboard/team.cljs:549, src/app/main/ui/onboarding/team_choice.cljs:67 msgid "labels.admin" msgstr "Kudeaketa" #: src/app/main/ui/workspace/comments.cljs +#, unused msgid "labels.all" msgstr "Guztia" +#: src/app/main/ui/auth.cljs:37 msgid "labels.and" msgstr "eta" +#: src/app/main/ui/onboarding/team_choice.cljs:162 msgid "labels.back" msgstr "Itzuli" -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:59 msgid "labels.bad-gateway.desc-message" msgstr "" "Pixkat itxaron eta berriz saiatu behar duzula dirudi; mantentze-lanak " "egiten ari gara." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:58 msgid "labels.bad-gateway.main-message" msgstr "Zerbitzariaren errorea (Bad Gateway)" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/data/common.cljs:112, src/app/main/ui/dashboard/change_owner.cljs:69, src/app/main/ui/dashboard/import.cljs:514, src/app/main/ui/dashboard/team.cljs:868, src/app/main/ui/delete_shared.cljs:35, src/app/main/ui/export.cljs:164, src/app/main/ui/export.cljs:460, src/app/main/ui/settings/access_tokens.cljs:188, src/app/main/ui/viewer/share_link.cljs:203, src/app/main/ui/workspace/sidebar/assets/groups.cljs:149 msgid "labels.cancel" msgstr "Utzi" +#: src/app/main/ui/dashboard/projects.cljs:93, src/app/main/ui/export.cljs:478, src/app/main/ui/settings/access_tokens.cljs:183, src/app/main/ui/viewer/login.cljs:77, src/app/main/ui/viewer/share_link.cljs:174, src/app/main/ui/workspace/libraries.cljs:522 msgid "labels.close" msgstr "Itxi" -#: src/app/main/ui/dashboard/comments.cljs +#: src/app/main/ui/dashboard/comments.cljs:104, src/app/main/ui/viewer/comments.cljs:70, src/app/main/ui/workspace/comments.cljs:126 msgid "labels.comments" msgstr "Iruzkinak" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:985, src/app/main/ui/workspace/main_menu.cljs:110 msgid "labels.community" msgstr "Komunitatea" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:103 msgid "labels.confirm-password" msgstr "Berretsi pasahitza" +#: src/app/main/ui/dashboard/import.cljs:520, src/app/main/ui/export.cljs:465, src/app/main/ui/onboarding/newsletter.cljs:101 msgid "labels.continue" msgstr "Jarraitu" +#, unused msgid "labels.continue-with" msgstr "Honekin jarraitu" +#: src/app/main/ui/viewer/login.cljs:75 msgid "labels.continue-with-penpot" msgstr "Penpot kontu batekin jarraitu dezakezu" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:642 msgid "labels.copy-invitation-link" msgstr "Kopiatu esteka" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:157, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:190 msgid "labels.create" msgstr "Sortu" -#: src/app/main/ui/dashboard/team_form.cljs, -#: src/app/main/ui/dashboard/team_form.cljs +#: src/app/main/ui/dashboard/team_form.cljs:101, src/app/main/ui/dashboard/team_form.cljs:121 msgid "labels.create-team" msgstr "Sortu talde berria" -#: src/app/main/ui/dashboard/team_form.cljs +#: src/app/main/ui/dashboard/team_form.cljs:113 msgid "labels.create-team.placeholder" msgstr "Sartu taldearen izena" +#, unused msgid "labels.custom-fonts" msgstr "Pertsonalizatutako letra-tipoak" -#: src/app/main/ui/settings/sidebar.cljs +#: src/app/main/ui/settings/sidebar.cljs:73 msgid "labels.dashboard" msgstr "Lanlekua" -#: src/app/main/ui/dashboard/project_menu.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:306, src/app/main/ui/dashboard/fonts.cljs:255, src/app/main/ui/dashboard/fonts.cljs:332, src/app/main/ui/dashboard/fonts.cljs:346, src/app/main/ui/dashboard/project_menu.cljs:115, src/app/main/ui/dashboard/team.cljs:904, src/app/main/ui/settings/access_tokens.cljs:209, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:209 msgid "labels.delete" msgstr "Ezabatu" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:357 msgid "labels.delete-comment" msgstr "Ezabatu iruzkina" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:354 msgid "labels.delete-comment-thread" msgstr "Ezabatu haria" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:648 msgid "labels.delete-invitation" msgstr "Ezabatu gonbidapena" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:262 msgid "labels.delete-multi-files" msgstr "Ezabatu %s fitxategi" -#: src/app/main/ui/dashboard/projects.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs, -#: src/app/main/ui/dashboard/files.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:28, src/app/main/ui/dashboard/files.cljs:72, src/app/main/ui/dashboard/files.cljs:156, src/app/main/ui/dashboard/projects.cljs:220, src/app/main/ui/dashboard/projects.cljs:224, src/app/main/ui/dashboard/sidebar.cljs:791 msgid "labels.drafts" msgstr "Zirriborroak" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:350, src/app/main/ui/dashboard/fonts.cljs:252, src/app/main/ui/dashboard/team.cljs:902, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:205 msgid "labels.edit" msgstr "Editatu" +#, unused msgid "labels.edit-file" msgstr "Editatu fitxategia" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:118, src/app/main/ui/dashboard/team.cljs:279, src/app/main/ui/dashboard/team.cljs:520, src/app/main/ui/dashboard/team.cljs:553, src/app/main/ui/onboarding/team_choice.cljs:66 msgid "labels.editor" msgstr "Edizioa" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:661 msgid "labels.expired-invitation" msgstr "Iraungita" +#: src/app/main/ui/export.cljs:173 msgid "labels.export" msgstr "Esportatu" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:51 msgid "labels.feedback-disabled" msgstr "Iritziak jasotzeko osagaia desgaituta dago" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:42 msgid "labels.feedback-sent" msgstr "Iritzia ondo bidali da" +#: src/app/main/ui/dashboard/fonts.cljs:412 msgid "labels.font-family" msgstr "Letra-tipo familia" +#, unused msgid "labels.font-providers" msgstr "Letra-tipo hornitzaileak" +#: src/app/main/ui/dashboard/fonts.cljs:413 msgid "labels.font-variants" msgstr "Estiloak" +#: src/app/main/ui/dashboard/fonts.cljs:52, src/app/main/ui/dashboard/sidebar.cljs:811 msgid "labels.fonts" msgstr "Letra-tipoak" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:1015, src/app/main/ui/workspace/main_menu.cljs:142 msgid "labels.github-repo" msgstr "GitHubeko errepositorioa" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/settings/sidebar.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:1032, src/app/main/ui/settings/sidebar.cljs:113, src/app/main/ui/workspace/main_menu.cljs:171 msgid "labels.give-feedback" msgstr "Eman zure iritzia" +#: src/app/main/ui/auth/recovery_request.cljs:110, src/app/main/ui/auth/register.cljs:285, src/app/main/ui/viewer/login.cljs:117 msgid "labels.go-back" msgstr "Itzuli" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:978, src/app/main/ui/workspace/main_menu.cljs:102 msgid "labels.help-center" msgstr "Laguntza zentroa" -#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/comments.cljs:103, src/app/main/ui/workspace/comments.cljs:67 msgid "labels.hide-resolved-comments" msgstr "Ezkutatu ebatzitzako iruzkinak" +#: src/app/main/ui/dashboard/team.cljs:969 msgid "labels.inactive" msgstr "Inaktibo" +#: src/app/main/ui/dashboard/fonts.cljs:410 msgid "labels.installed-fonts" msgstr "Instalatutako letra-tipoak" -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:144 msgid "labels.internal-error.desc-message" msgstr "" "Zerbait arraroa gertatu da. Saiatu berriz eta erroreak agertzen jarraitzen " "badu, jarri kontaktuan zerbitzu teknikoarekin." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:143 msgid "labels.internal-error.main-message" msgstr "Barneko errorea" -#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:516, src/app/main/ui/dashboard/team.cljs:89, src/app/main/ui/dashboard/team.cljs:97, src/app/main/ui/dashboard/team.cljs:708 msgid "labels.invitations" msgstr "Gonbidapenak" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:51 msgid "labels.language" msgstr "Hizkuntzak" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:1008, src/app/main/ui/workspace/main_menu.cljs:134 msgid "labels.libraries-and-templates" msgstr "Liburutegi eta Txantiloiak" +#: src/app/main/ui/viewer/header.cljs:203 msgid "labels.log-or-sign" msgstr "Sartu edo eman izena" -#: src/app/main/ui/settings.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:1040 msgid "labels.logout" msgstr "Irten" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/team.cljs:468 msgid "labels.member" msgstr "Kidea" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:510, src/app/main/ui/dashboard/team.cljs:87, src/app/main/ui/dashboard/team.cljs:95 msgid "labels.members" msgstr "Kideak" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:96 msgid "labels.new-password" msgstr "Pasahitz berria" -#: src/app/main/ui/workspace/comments.cljs, -#: src/app/main/ui/dashboard/comments.cljs +#: src/app/main/ui/dashboard/comments.cljs:128, src/app/main/ui/workspace/comments.cljs:161 msgid "labels.no-comments-available" msgstr "Ez duzu iruzkinen inguruko jakinarazpenik." -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:694 msgid "labels.no-invitations" msgstr "Ez dago gonbidapenik." -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:696 +#, markdown msgid "labels.no-invitations-hint" msgstr "Sakatu 'Taldera gonbdiatu' taldekide gehiago izateko." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:50 msgid "labels.not-found.desc-message" msgstr "Orrialde hau ez da existitzen edo ez duzu ikusteko baimenik." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:49 msgid "labels.not-found.main-message" msgstr "Atx!" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/projects.cljs:239, src/app/main/ui/dashboard/team.cljs:1095 msgid "labels.num-of-files" msgid_plural "labels.num-of-files" msgstr[0] "Fitxategi 1" msgstr[1] "%s fitxategi" +#: src/app/main/ui/viewer/thumbnails.cljs:80 msgid "labels.num-of-frames" msgid_plural "labels.num-of-frames" msgstr[0] "Arbel 1" msgstr[1] "%s arbel" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1090 msgid "labels.num-of-projects" msgid_plural "labels.num-of-projects" msgstr[0] "Proiektu 1" msgstr[1] "%s proiektu" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:89 msgid "labels.old-password" msgstr "Aurreko pasahitza" #: src/app/main/ui/workspace/comments.cljs +#, unused msgid "labels.only-yours" msgstr "Zureak bakarrik" +#, unused msgid "labels.or" msgstr "edo" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:286, src/app/main/ui/dashboard/team.cljs:518, src/app/main/ui/dashboard/team.cljs:1076 msgid "labels.owner" msgstr "Jabea" -#: src/app/main/ui/settings/sidebar.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/settings/sidebar.cljs:87 msgid "labels.password" msgstr "Pasahitza" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:662 msgid "labels.pending-invitation" msgstr "Zain" -#: src/app/main/ui/settings/sidebar.cljs +#: src/app/main/ui/settings/profile.cljs:118, src/app/main/ui/settings/sidebar.cljs:82 msgid "labels.profile" msgstr "Profila" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:784 msgid "labels.projects" msgstr "Proiektuak" -#: src/app/main/ui/settings/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:998, src/app/main/ui/settings/sidebar.cljs:106, src/app/main/ui/workspace/main_menu.cljs:126 msgid "labels.release-notes" msgstr "Bertsioaren oharrak" #: src/app/main/ui/workspace.cljs +#, unused msgid "labels.reload-file" msgstr "Birkargatu fitxategia" -#: src/app/main/ui/workspace/libraries.cljs, -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/workspace/libraries.cljs, src/app/main/ui/dashboard/team.cljs +#, unused msgid "labels.remove" msgstr "Kendu" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:316 msgid "labels.remove-member" msgstr "Kendu kidea" -#: src/app/main/ui/dashboard/sidebar.cljs, -#: src/app/main/ui/dashboard/project_menu.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:271, src/app/main/ui/dashboard/project_menu.cljs:85, src/app/main/ui/dashboard/sidebar.cljs:539, src/app/main/ui/workspace/sidebar/assets/groups.cljs:157 msgid "labels.rename" msgstr "Berrizendatu" -#: src/app/main/ui/dashboard/team_form.cljs +#: src/app/main/ui/dashboard/team_form.cljs:99 msgid "labels.rename-team" msgstr "Berrizendatu taldea" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:645 msgid "labels.resend-invitation" msgstr "Birbidali gonbidapena" -#: src/app/main/ui/static.cljs, src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:61, src/app/main/ui/static.cljs:70, src/app/main/ui/static.cljs:148 msgid "labels.retry" msgstr "Berriz saiatu" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:469, src/app/main/ui/dashboard/team.cljs:709 msgid "labels.role" msgstr "Rola" +#: src/app/main/ui/dashboard/fonts.cljs:380, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:191 msgid "labels.save" msgstr "Gorde" +#: src/app/main/ui/dashboard/fonts.cljs:415 msgid "labels.search-font" msgstr "Bilatu letra-tipoa" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:82 msgid "labels.send" msgstr "Bidali" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:82 msgid "labels.sending" msgstr "Bidaltzen…" -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:68 msgid "labels.service-unavailable.desc-message" msgstr "Gure sistemaren programatutako mantentze-lanak egiten ari gara." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:67 msgid "labels.service-unavailable.main-message" msgstr "Zerbitzua ez dago martxan" -#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:530, src/app/main/ui/dashboard/team.cljs:88, src/app/main/ui/dashboard/team.cljs:102, src/app/main/ui/settings/options.cljs:84, src/app/main/ui/settings/sidebar.cljs:93 msgid "labels.settings" msgstr "Ezarpenak" +#, unused msgid "labels.share-prototype" msgstr "Partekatu prototipoa" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:800 msgid "labels.shared-libraries" msgstr "Partekatutako liburutegiak" -#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/comments.cljs:82, src/app/main/ui/workspace/comments.cljs:55, src/app/main/ui/workspace/comments.cljs:135 msgid "labels.show-all-comments" msgstr "Erakutsi iruzkin guztiak" +#: src/app/main/ui/viewer/comments.cljs:115 msgid "labels.show-comments-list" msgstr "Erakutsi iruzkinen zerrenda" -#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/comments.cljs:91, src/app/main/ui/workspace/comments.cljs:61, src/app/main/ui/workspace/comments.cljs:136 msgid "labels.show-your-comments" msgstr "Erakutsi zure iruzkinak bakarrik" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:710 msgid "labels.status" msgstr "Egoera" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:992, src/app/main/ui/workspace/main_menu.cljs:118 msgid "labels.tutorials" msgstr "Tutorialak" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:256 msgid "labels.unpublish-multi-files" msgstr "%s fitxategi argitaratzeari utzi" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:103 msgid "labels.update" msgstr "Eguneratu" -#: src/app/main/ui/dashboard/team_form.cljs +#: src/app/main/ui/dashboard/team_form.cljs:120 msgid "labels.update-team" msgstr "Eguneratu taldea" +#: src/app/main/ui/dashboard/fonts.cljs:241 msgid "labels.upload" msgstr "Kargatu" +#: src/app/main/ui/dashboard/fonts.cljs:169 msgid "labels.upload-custom-fonts" msgstr "Kargatu letra-tipoa" +#: src/app/main/ui/dashboard/fonts.cljs:240 msgid "labels.uploading" msgstr "Kargatzen…" +#: src/app/main/ui/workspace/sidebar/sitemap.cljs:223 msgid "labels.view-only" msgstr "IKUSTEKO BAKARRIK" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:123, src/app/main/ui/dashboard/team.cljs:282, src/app/main/ui/dashboard/team.cljs:521 msgid "labels.viewer" msgstr "Bistarazlea" +#: src/app/main/ui/dashboard/sidebar.cljs:523, src/app/main/ui/dashboard/team.cljs:90, src/app/main/ui/dashboard/team.cljs:100, src/app/main/ui/dashboard/team.cljs:880 msgid "labels.webhooks" msgstr "Webhookak" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:194 msgid "labels.write-new-comment" msgstr "Idatzi iruzkin berria" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/team.cljs:237 msgid "labels.you" msgstr "(zu)" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:968 msgid "labels.your-account" msgstr "zure kontua" -#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs +#: src/app/main/data/media.cljs:49, src/app/main/data/workspace/media.cljs:223, src/app/main/data/workspace/media.cljs:453 msgid "media.loading" msgstr "Irudia kargatzen…" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/data/common.cljs:113 msgid "modals.add-shared-confirm.accept" msgstr "Gehitu partekatutako liburutegi gisa" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/data/common.cljs:111 msgid "modals.add-shared-confirm.hint" msgstr "" "Partekatutako liburutegi gisa gehitu ostean, fitxategi honetako baliabideak " "beste fitxategietan erabiltzeko bezala egongo dira." -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/data/common.cljs:110 msgid "modals.add-shared-confirm.message" msgstr "Gehitu \"%s\" partekatutako liburutegi gisa" -#: src/app/main/ui/workspace/nudge.cljs +#: src/app/main/ui/workspace/nudge.cljs:60 msgid "modals.big-nudge" msgstr "Gehienekoa" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:127 msgid "modals.change-email.confirm-email" msgstr "Egiaztatu posta elektroniko berria" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:114 msgid "modals.change-email.info" msgstr "" "Zure egungo \"%s\" helbidera mezu bat bidaliko du zure nortasuna " "egiaztatzeko." -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:119 msgid "modals.change-email.new-email" msgstr "Posta elektroniko berria" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:136 msgid "modals.change-email.submit" msgstr "Aldatu posta elektronikoa" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:107 msgid "modals.change-email.title" msgstr "Aldatu zure posta elektronikoa" +#: src/app/main/ui/dashboard/team.cljs:873 msgid "modals.create-webhook.submit-label" msgstr "Sortu webhooka" +#: src/app/main/ui/dashboard/team.cljs:838 msgid "modals.create-webhook.title" msgstr "Sortu webhooka" +#: src/app/main/ui/dashboard/team.cljs:849 msgid "modals.create-webhook.url.label" msgstr "Informazioaren URLa" +#: src/app/main/ui/dashboard/team.cljs:850 msgid "modals.create-webhook.url.placeholder" msgstr "https://example.com/postreceive" -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:59 msgid "modals.delete-account.cancel" msgstr "Utzi eta mantendu nire kontua" -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:64 msgid "modals.delete-account.confirm" msgstr "Bai, ezabatu nire kontua" -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:53 msgid "modals.delete-account.info" msgstr "" "Zure kontua ezabatzen baduzu zure proiektu eta fitxategi guztiak galduko " "dituzu." -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:46 msgid "modals.delete-account.title" msgstr "Zure kontua benetan ezabatu nahi duzu?" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:298 msgid "modals.delete-comment-thread.accept" msgstr "Ezabatu elkarrizketa" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:297 msgid "modals.delete-comment-thread.message" msgstr "" "Benetan elkarrizketa hau ezabatu nahi al duzu? Iruzkin guztiak ezabatu " "egingo dira." -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:296 msgid "modals.delete-comment-thread.title" msgstr "Ezabatu elkarrizketa" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:123 msgid "modals.delete-file-confirm.accept" msgstr "Ezabatu fitxategia" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:122 msgid "modals.delete-file-confirm.message" msgstr "Benetan fitxategi hau ezabatu egin nahi duzu?" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:121 msgid "modals.delete-file-confirm.title" msgstr "Fitxategia ezabatzen" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:117 msgid "modals.delete-file-multi-confirm.accept" msgstr "Ezabatu fitxategiak" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:116 msgid "modals.delete-file-multi-confirm.message" msgstr "Benetan %s fitxategi ezabatu egin nahi dituzu?" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:115 msgid "modals.delete-file-multi-confirm.title" msgstr "%s fitxategi ezabatzen" +#: src/app/main/ui/dashboard/fonts.cljs:345 msgid "modals.delete-font-variant.message" msgstr "" "Benetan letra-tipo estilo hau ezabatu egin nahi duzu? Ez da kargatuko " "fitxategiren baten erabiltzen baduzu." +#: src/app/main/ui/dashboard/fonts.cljs:344 msgid "modals.delete-font-variant.title" msgstr "Letra-tipo estiloa ezabatzen" +#: src/app/main/ui/dashboard/fonts.cljs:331 msgid "modals.delete-font.message" msgstr "" "Benetan letra-tipo hau ezabatu egin nahi duzu? Ez da kargatuko fitxategiren " "baten erabiltzen baduzu." +#: src/app/main/ui/dashboard/fonts.cljs:330 msgid "modals.delete-font.title" msgstr "Letra-tipoa ezabatzen" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs +#: src/app/main/ui/workspace/context_menu.cljs:522, src/app/main/ui/workspace/sidebar/sitemap.cljs:45 msgid "modals.delete-page.body" msgstr "Benetan orrialde hau ezabatu egin nahi duzu?" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs +#: src/app/main/ui/workspace/context_menu.cljs:521, src/app/main/ui/workspace/sidebar/sitemap.cljs:44 msgid "modals.delete-page.title" msgstr "Ezabatu orrialdea" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:69 msgid "modals.delete-project-confirm.accept" msgstr "Ezabatu proiektua" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:68 msgid "modals.delete-project-confirm.message" msgstr "Benetan proiektu hau ezabatu egin nahi duzu?" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:67 msgid "modals.delete-project-confirm.title" msgstr "Ezabatu proiektua" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:51 msgid "modals.delete-shared-confirm.accept" msgid_plural "modals.delete-shared-confirm.accept" msgstr[0] "Ezabatu fitxategia" msgstr[1] "Ezabatu fitxategiak" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:46 msgid "modals.delete-shared-confirm.message" msgid_plural "modals.delete-shared-confirm.message" msgstr[0] "Benetan fitxategi hau ezabatu nahi duzu?" msgstr[1] "Benetan fitxategi hauek ezabatu nahi dituzu?" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:41 msgid "modals.delete-shared-confirm.title" msgid_plural "modals.delete-shared-confirm.title" msgstr[0] "Ezabatu fitxategia" msgstr[1] "Ezabatu fitxategiak" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:435 msgid "modals.delete-team-confirm.accept" msgstr "Ezabatu taldea" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:434 msgid "modals.delete-team-confirm.message" msgstr "" "Benetan talde hau ezabatu egin nahi duzu? Taldeari lotutako proiektu eta " "fitxategi guztiak betiko ezabatuko dira." -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:433 msgid "modals.delete-team-confirm.title" msgstr "Taldea ezabatzen" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:427 msgid "modals.delete-team-member-confirm.accept" msgstr "Kidea ezabatzen" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:426 msgid "modals.delete-team-member-confirm.message" msgstr "Benetan kide hau taldetik ezabatu egin nahi duzu?" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:425 msgid "modals.delete-team-member-confirm.title" msgstr "Taldekidea ezabatzen" +#: src/app/main/ui/dashboard/team.cljs:942 msgid "modals.delete-webhook.accept" msgstr "Ezabatu webhooka" +#: src/app/main/ui/dashboard/team.cljs:941 msgid "modals.delete-webhook.message" msgstr "Benetan webhook hau ezabatu egin nahi duzu?" +#: src/app/main/ui/dashboard/team.cljs:940 msgid "modals.delete-webhook.title" msgstr "Webhooka ezabatzen" +#: src/app/main/ui/dashboard/team.cljs:872 msgid "modals.edit-webhook.submit-label" msgstr "Aldatu webhooka" +#: src/app/main/ui/dashboard/team.cljs:837 msgid "modals.edit-webhook.title" msgstr "Aldatu webhooka" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:218 msgid "modals.invite-member-confirm.accept" msgstr "Bidali gonbidapena" +#: src/app/main/ui/dashboard/team.cljs:213, src/app/main/ui/onboarding/team_choice.cljs:156 msgid "modals.invite-member.emails" msgstr "Posta elektronikoak, komarekin banatuta" +#: src/app/main/ui/dashboard/team.cljs:197 msgid "modals.invite-member.repeated-invitation" msgstr "Eposta helbide batzuk jada taldekideenak dira. Ez da gonbidapenik bidaliko." -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:190 msgid "modals.invite-team-member.title" msgstr "Gonbidatu kideak taldera" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:423, src/app/main/ui/dashboard/team.cljs:393 msgid "modals.leave-and-close-confirm.hint" msgstr "" "Talde honetako kide bakarra zarenez, taldea bere proiektu eta fitxategiekin " "ezabatuko da." -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:422, src/app/main/ui/dashboard/team.cljs:392 msgid "modals.leave-and-close-confirm.message" msgstr "Benetan %s taldea utzi egin nahi duzu?" +#: src/app/main/ui/dashboard/change_owner.cljs:59 msgid "modals.leave-and-reassign.forbidden" msgstr "" "Ezin duzu taldea utzi ez badago jabe berria izateko hautagairik. Agian " "taldea ezabatu egin nahi duzu." -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/change_owner.cljs:55 msgid "modals.leave-and-reassign.hint1" msgstr "Taldearen jabea zara. Aukeratu beste pertsona bat jabe izan dadin." -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/change_owner.cljs:78 msgid "modals.leave-and-reassign.promote-and-leave" msgstr "Jabe egin eta utzi" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/change_owner.cljs:34 msgid "modals.leave-and-reassign.select-member-to-promote" msgstr "Aukeratu jabe berria" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/change_owner.cljs:49 msgid "modals.leave-and-reassign.title" msgstr "Utzi aurretik" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:402, src/app/main/ui/dashboard/sidebar.cljs:424, src/app/main/ui/dashboard/team.cljs:394, src/app/main/ui/dashboard/team.cljs:416 msgid "modals.leave-confirm.accept" msgstr "Utzi taldea" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:401, src/app/main/ui/dashboard/team.cljs:415 msgid "modals.leave-confirm.message" msgstr "Benetal taldea utzi egin nahi duzu?" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:400, src/app/main/ui/dashboard/sidebar.cljs:421, src/app/main/ui/dashboard/team.cljs:391, src/app/main/ui/dashboard/team.cljs:414 msgid "modals.leave-confirm.title" msgstr "Taldea uzten" -#: src/app/main/ui/workspace/nudge.cljs +#: src/app/main/ui/workspace/main_menu.cljs:266, src/app/main/ui/workspace/nudge.cljs:47 msgid "modals.nudge-title" msgstr "Desplazamendua" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:340 msgid "modals.promote-owner-confirm.accept" msgstr "Eman jabetza" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:339 msgid "modals.promote-owner-confirm.hint" msgstr "" "Jabetza ematen baduzu, zure rola Kudeatzaile izatera pasatuko da, " "taldearekiko zure baimen batzuk galduz. " -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:338 msgid "modals.promote-owner-confirm.message" msgstr "Taldearen jabea zara. Benetan %s taldearen gabe egin nahi duzu?" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:337 msgid "modals.promote-owner-confirm.title" msgstr "Taldearen jabe berria" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "modals.remove-shared-confirm.accept" msgstr "Ezabatu partekatutako liburutegi gisa" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "modals.remove-shared-confirm.hint" msgstr "" "Partekatutako liburutegi gisa ezabatu ostean, fitxategi honen liburutegia " "ezingo da zure beste fitxategietan erabili." -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "modals.remove-shared-confirm.message" msgstr "Gehitu \"%s\" partekatutako liburutegi bezala" -#: src/app/main/ui/workspace/nudge.cljs +#: src/app/main/ui/workspace/nudge.cljs:53 msgid "modals.small-nudge" msgstr "Gutxienekoa" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:52 msgid "modals.unpublish-shared-confirm.accept" msgstr "Argitaratzea atzera bota" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:47 msgid "modals.unpublish-shared-confirm.message" msgid_plural "modals.unpublish-shared-confirm.message" msgstr[0] "Benetan liburutegi honen argitaratzea atzera bota nahi duzu?" msgstr[1] "Benetan liburutegi hauen argitaratzea atzera bota nahi duzu?" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:42 msgid "modals.unpublish-shared-confirm.title" msgid_plural "modals.unpublish-shared-confirm.title" msgstr[0] "Liburutegiaren argitaratzea atzera bota" msgstr[1] "Liburutegian argitaratzea atzera bota" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#, unused msgid "modals.update-remote-component-in-bulk.hint" msgstr "" "Partekatutako liburutegi baten osagaiak eguneratzera zoaz. Honek berau " "darabilten beste fitxategi batzuengan eragina izan dezake." -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#, unused msgid "modals.update-remote-component-in-bulk.message" msgstr "Eguneratu liburutegiaren osagaiak" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:380 msgid "modals.update-remote-component.accept" msgstr "Eguneratu" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:379 msgid "modals.update-remote-component.cancel" msgstr "Utzi" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:378 msgid "modals.update-remote-component.hint" msgstr "" "Partekatutako liburutegi baten osagai bat eguneratzera zoaz. Honek berau " "darabilten beste fitxategi batzuengan eragina izan dezake." -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:377 msgid "modals.update-remote-component.message" msgstr "Eguneratu liburutegiaren osagaia" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:154, src/app/main/ui/dashboard/team.cljs:595 msgid "notifications.invitation-email-sent" msgstr "Gonbidapena ondo bidali da" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:616 msgid "notifications.invitation-link-copied" msgstr "Gonbidapenaren esteka kopiatu da" -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:24 msgid "notifications.profile-deletion-not-allowed" msgstr "Ezin da zure profila ezabatu. Berresleitu zure taldeak jarraitu aurretik." -#: src/app/main/ui/settings/profile.cljs, src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:29, src/app/main/ui/settings/profile.cljs:35 msgid "notifications.profile-saved" msgstr "Profila ondo gorde da!" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:63 msgid "notifications.validation-email-sent" msgstr "" "Posta elektronikoa egiaztatzeko mezua ondo bidali da %s helbidera. " "Egiaztatu zure helbidea!" +#, unused msgid "onboarding-v2.before-start.desc1" msgstr "" "Penpotekin lanean hasteko hainbat eta hainbat baliabide daude, adibidez " "erabiltzailearen gida eta gure Youtube kanala." +#, unused msgid "onboarding-v2.before-start.desc2" msgstr "" "Penpot erabiltzeari buruko informazioa. Prototipoak egitetik, diseinuak " "antolatu eta partekatzera." +#, unused msgid "onboarding-v2.before-start.desc2.title" msgstr "Erabiltzailearen gida" +#, unused msgid "onboarding-v2.before-start.desc3" msgstr "Gure eta komunitateak egindako tutorialak ikusi ditzakezu." +#, unused msgid "onboarding-v2.before-start.desc3.title" msgstr "Bideo tutorialak" +#, unused msgid "onboarding-v2.before-start.title" msgstr "Hasi aurretik" +#: src/app/main/ui/onboarding/newsletter.cljs:63 msgid "onboarding-v2.newsletter.desc" msgstr "" "Harpidetu Penpoten buletinera produktuaren garapenaren inguruko albisteak " "ezagutzeko." +#: src/app/main/ui/onboarding/newsletter.cljs:83 msgid "onboarding-v2.newsletter.news" msgstr "" "Bidali Penpoti buruzko albisteak (blogeko artikuluak, bideo-tutorialak, " "zuzenekoak...)." +#: src/app/main/ui/onboarding/newsletter.cljs:91 msgid "onboarding-v2.newsletter.privacy1" msgstr "Zure pribatutasuna zaintzen dugu, hemen irakurri dezakezu gure " +#: src/app/main/ui/onboarding/newsletter.cljs:97 msgid "onboarding-v2.newsletter.privacy2" msgstr "" "Zuretzat garrantzitsuak diren mezuak bakarrik bidaliko dizkizugu. " "Harpidetza zuk nahi duzunean eten dezakezu buletinean dagoen esteka " "erabiliz." +#: src/app/main/ui/onboarding/newsletter.cljs:71 msgid "onboarding-v2.newsletter.updates" msgstr "" "Bidali produktuaren eguneraketak (ezaugarri berriak, bertsioak, " "konponketak, ...)." +#, unused msgid "onboarding-v2.welcome.desc1" msgstr "" "Penpot Kode Irekikoa da eta Kaleidos eta komunitateak egindakoa da. " "Laguntzeko erak:" +#, unused msgid "onboarding-v2.welcome.desc2" msgstr "" "Penpoten oraina eta etorkizunari buruz ikasi, partekatu eta eztabaidatzeko " "tokia." +#, unused msgid "onboarding-v2.welcome.desc2.title" msgstr "Komunitatean parte hartzen" +#, unused msgid "onboarding-v2.welcome.desc3" msgstr "" "Hemen izango duzu itzulpenekin laguntzeko informazioa, funtzionalitateak " "eskatzeko modua, erroreak bilatzekoa…" +#, unused msgid "onboarding-v2.welcome.desc3.title" msgstr "Laguntzeko gida" +#: src/app/main/ui/onboarding/team_choice.cljs:31 msgid "onboarding-v2.welcome.title" msgstr "Ongi etorri Penpotera!" +#: src/app/main/ui/onboarding/team_choice.cljs:215 msgid "onboarding.choice.team-up.create-team-desc" msgstr "Taldeari izena eman ostean, pertsona gehiago gonbidatu ditzakezu." +#: src/app/main/ui/onboarding/team_choice.cljs:224 msgid "onboarding.choice.team-up.create-team-placeholder" msgstr "Idatzi taldearen izena" +#: src/app/main/ui/dashboard/projects.cljs:89, src/app/main/ui/onboarding/team_choice.cljs:140 msgid "onboarding.choice.team-up.invite-members" msgstr "Gonbidatu kideak" +#: src/app/main/ui/onboarding/team_choice.cljs:141 msgid "onboarding.choice.team-up.invite-members-info" msgstr "" "Ez ahaztu garapeneko, diseinuko, kudeaketako... pertsonak sartzea, " "dibertsitatea ona da :)" +#: src/app/main/ui/dashboard/team.cljs:202, src/app/main/ui/onboarding/team_choice.cljs:146 msgid "onboarding.choice.team-up.roles" msgstr "Gonbidatu rol honekin:" +#, unused msgid "onboarding.newsletter.accept" msgstr "Bai, harpidetu" +#: src/app/main/ui/onboarding/newsletter.cljs:40 msgid "onboarding.newsletter.acceptance-message" msgstr "" "Zure harpidetza eskaera ondo bidali du, berrespen mezu bat jasoko duzu zure " "helbidean." +#: src/app/main/ui/onboarding/newsletter.cljs:95 msgid "onboarding.newsletter.policy" msgstr "Pribatutasun politika." +#: src/app/main/ui/onboarding/newsletter.cljs:60 msgid "onboarding.newsletter.title" msgstr "Penpoti buruzko albisteak jaso nahi dituzu?" +#: src/app/main/ui/onboarding/team_choice.cljs:213 msgid "onboarding.team-modal.create-team" msgstr "Sortu talde bat" +#: src/app/main/ui/onboarding/team_choice.cljs:35 msgid "onboarding.team-modal.create-team-desc" msgstr "" "Talde batek Penpoten fitxategi eta proiektuetan elkarrekin lan egiteko " "aukera ematen du." +#: src/app/main/ui/onboarding/team_choice.cljs:40 msgid "onboarding.team-modal.create-team-feature-1" msgstr "Mugarik gabeko fitxategi eta proiektu kopurua" +#: src/app/main/ui/onboarding/team_choice.cljs:44 msgid "onboarding.team-modal.create-team-feature-2" msgstr "Jokalari anitzeko edizioa" +#: src/app/main/ui/onboarding/team_choice.cljs:48 msgid "onboarding.team-modal.create-team-feature-3" msgstr "Rolen kudeaketa" +#: src/app/main/ui/onboarding/team_choice.cljs:52 msgid "onboarding.team-modal.create-team-feature-4" msgstr "Partehartzaile muga gabe" +#: src/app/main/ui/onboarding/team_choice.cljs:56 msgid "onboarding.team-modal.create-team-feature-5" msgstr "%100 doan!" +#: src/app/main/ui/onboarding/templates.cljs:78 msgid "onboarding.templates.subtitle" msgstr "Hemen dituzu txantiloi batzuk." +#: src/app/main/ui/onboarding/templates.cljs:77 msgid "onboarding.templates.title" msgstr "Hasi diseinatzen" +#, unused msgid "onboarding.welcome.alt" msgstr "Penpot" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:99 msgid "profile.recovery.go-to-login" msgstr "Sartu" -#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs +#: src/app/main/ui/viewer/inspect/exports.cljs:147, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:631, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:137, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:148, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:188, src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:158, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:399, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:410, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:430, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:441, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:458, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:472, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:309, src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:183, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:373, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:389, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:245, src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:172 msgid "settings.multiple" msgstr "Batzuk" # SECTIONS +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:414 msgid "shortcut-section.basics" msgstr "Oinarrizkoak" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:420 msgid "shortcut-section.dashboard" msgstr "Lanlekua" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:423 msgid "shortcut-section.viewer" msgstr "Ikusteko modua" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:417 msgid "shortcut-section.workspace" msgstr "Mahaigaina" # SUBSECTIONS +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:56 msgid "shortcut-subsection.alignment" msgstr "Lerrokatzea" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:57 msgid "shortcut-subsection.edit" msgstr "Editatu" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:58 msgid "shortcut-subsection.general-dashboard" msgstr "Orokorra" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:59 msgid "shortcut-subsection.general-viewer" msgstr "Orokorra" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:60 msgid "shortcut-subsection.main-menu" msgstr "Menu nagusia" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:61 msgid "shortcut-subsection.modify-layers" msgstr "Aldatu geruzak" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:62 msgid "shortcut-subsection.navigation-dashboard" msgstr "Nabigazioa" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:63 msgid "shortcut-subsection.navigation-viewer" msgstr "Nabigazioa" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:64 msgid "shortcut-subsection.navigation-workspace" msgstr "Nabigazioa" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:65 msgid "shortcut-subsection.panels" msgstr "Panelak" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:66 msgid "shortcut-subsection.path-editor" msgstr "Bidea" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:67 msgid "shortcut-subsection.shape" msgstr "Formak" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:68 msgid "shortcut-subsection.text-editor" msgstr "Testuak" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:69 msgid "shortcut-subsection.tools" msgstr "Tresnak" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:70 msgid "shortcut-subsection.zoom-viewer" msgstr "Zoom" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:71 msgid "shortcut-subsection.zoom-workspace" msgstr "Zoom" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:72 msgid "shortcuts.add-comment" msgstr "Gehitu iruzkinak" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:73 msgid "shortcuts.add-node" msgstr "Gehitu nodoa" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:74 msgid "shortcuts.align-bottom" msgstr "Lerrokatu behean" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:75 msgid "shortcuts.align-center" msgstr "Erdian lerrokatu" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:76 msgid "shortcuts.align-hcenter" msgstr "Lerrokatu erdian horizontalki" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:77 msgid "shortcuts.align-justify" msgstr "Justifikatuta lerrokatu" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:78 msgid "shortcuts.align-left" msgstr "Lerrokatu ezkerrean" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:79 msgid "shortcuts.align-right" msgstr "Lerrokatu eskuman" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:80 msgid "shortcuts.align-top" msgstr "Lerrokatu goian" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:81 msgid "shortcuts.align-vcenter" msgstr "Lerrokatu erdian bertikalki" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:82 msgid "shortcuts.artboard-selection" msgstr "Sortu arbela hautapenetik" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:83 msgid "shortcuts.bold" msgstr "Aktibatu/desaktibatu beltza" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:84 msgid "shortcuts.bool-difference" msgstr "Diferentzia" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:85 msgid "shortcuts.bool-exclude" msgstr "Baztertu" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:86 msgid "shortcuts.bool-intersection" msgstr "Ebakidura" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:87 msgid "shortcuts.bool-union" msgstr "Elkarketa" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:88 msgid "shortcuts.bring-back" msgstr "Bidali atzera" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:89 msgid "shortcuts.bring-backward" msgstr "Bidali hondora" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:90 msgid "shortcuts.bring-forward" msgstr "Mugitu aurrealdera" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:91 msgid "shortcuts.bring-front" msgstr "Mugitu aurrera" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:92 msgid "shortcuts.clear-undo" msgstr "Garbitu historiala" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:93 msgid "shortcuts.copy" msgstr "Kopiatu" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:94 msgid "shortcuts.create-component" msgstr "Sortu osagaia" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:95 msgid "shortcuts.create-new-project" msgstr "Sortu berria" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:96 msgid "shortcuts.cut" msgstr "Moztu" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:97 msgid "shortcuts.decrease-zoom" msgstr "Jaitsi zooma" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:98 msgid "shortcuts.delete" msgstr "Ezabatu" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:99 msgid "shortcuts.delete-node" msgstr "Ezabatu nodoa" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:100 msgid "shortcuts.detach-component" msgstr "Banandu osagaian" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:101 msgid "shortcuts.draw-curve" msgstr "Kurba" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:102 msgid "shortcuts.draw-ellipse" msgstr "Elipsea" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:103 msgid "shortcuts.draw-frame" msgstr "Arbela" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:104 msgid "shortcuts.draw-nodes" msgstr "Marraztu nodoak" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:105 msgid "shortcuts.draw-path" msgstr "Bidea" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:106 msgid "shortcuts.draw-rect" msgstr "Laukia" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:107 msgid "shortcuts.draw-text" msgstr "Testua" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:108 msgid "shortcuts.duplicate" msgstr "Bikoiztu" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:109 msgid "shortcuts.escape" msgstr "Utzi" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:110 msgid "shortcuts.export-shapes" msgstr "Esportatu osagaiak" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:111 msgid "shortcuts.fit-all" msgstr "Zoom dena ikusteko" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:112 msgid "shortcuts.flip-horizontal" msgstr "Irauli horizontalki" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:113 msgid "shortcuts.flip-vertical" msgstr "Irauli bertikalki" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:114 msgid "shortcuts.font-size-dec" msgstr "Letra tipoaren tamaina txikitu" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:115 msgid "shortcuts.font-size-inc" msgstr "Letra tipoaren tamaina handitu" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:116 msgid "shortcuts.go-to-drafts" msgstr "Joan zirriborroetara" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:117 msgid "shortcuts.go-to-libs" msgstr "Joan partekatutako liburutegietara" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:118 msgid "shortcuts.go-to-search" msgstr "Bilatu" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:119 msgid "shortcuts.group" msgstr "Taldekatu" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:120 msgid "shortcuts.h-distribute" msgstr "Banatu horizontalki" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:121 msgid "shortcuts.hide-ui" msgstr "Erakutsi/ezkutatu interfazea" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:122 msgid "shortcuts.increase-zoom" msgstr "Zooma handitu" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:123 msgid "shortcuts.insert-image" msgstr "Txertatu irudia" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:124 msgid "shortcuts.italic" msgstr "Aktibatu/desaktibatu etzana" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:125 msgid "shortcuts.join-nodes" msgstr "Elkartu nodoak" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:126 msgid "shortcuts.letter-spacing-dec" msgstr "Hizkien arteko espazioa txikitu" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:127 msgid "shortcuts.letter-spacing-inc" msgstr "Hizkien arteko espazioa handitu" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:128 msgid "shortcuts.line-height-dec" msgstr "Lerroen arteko tartea txikitu" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:129 msgid "shortcuts.line-height-inc" msgstr "Lerroen arteko tartea handitu" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:130 msgid "shortcuts.line-through" msgstr "Aktibatu/desaktibatu marratzea" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:131 msgid "shortcuts.make-corner" msgstr "Bihurtu ertz" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:132 msgid "shortcuts.make-curve" msgstr "Bihurtu kurba" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:133 msgid "shortcuts.mask" msgstr "Maskara" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:134 msgid "shortcuts.merge-nodes" msgstr "Elkartu nodoak" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:135 msgid "shortcuts.move" msgstr "Mugitu" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:136 msgid "shortcuts.move-fast-down" msgstr "Mugitu behera azkar" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:137 msgid "shortcuts.move-fast-left" msgstr "Mugitu ezkerrera azkar" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:138 msgid "shortcuts.move-fast-right" msgstr "Mugitu eskumara azar" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:139 msgid "shortcuts.move-fast-up" msgstr "Mugitu gora azkar" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:140 msgid "shortcuts.move-nodes" msgstr "Mugitu nodoa" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:141 msgid "shortcuts.move-unit-down" msgstr "Mugitu behera" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:142 msgid "shortcuts.move-unit-left" msgstr "Mugitu ezkerrera" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:143 msgid "shortcuts.move-unit-right" msgstr "Mugitu eskumara" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:144 msgid "shortcuts.move-unit-up" msgstr "Mugitu gora" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:145 msgid "shortcuts.next-frame" msgstr "Hurrengo arbela" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:516 msgid "shortcuts.not-found" msgstr "Ez dago emaitzarik" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:146 msgid "shortcuts.opacity-0" msgstr "Opakutasuna %100" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:147 msgid "shortcuts.opacity-1" msgstr "Opakutasuna %10" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:148 msgid "shortcuts.opacity-2" msgstr "Opakutasuna %20" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:149 msgid "shortcuts.opacity-3" msgstr "Opakutasuna %30" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:150 msgid "shortcuts.opacity-4" msgstr "Opakutasuna %40" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:151 msgid "shortcuts.opacity-5" msgstr "Opakutasuna %50" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:152 msgid "shortcuts.opacity-6" msgstr "Opakutasuna %60" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:153 msgid "shortcuts.opacity-7" msgstr "Opakutasuna %70" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:154 msgid "shortcuts.opacity-8" msgstr "Opakutasuna %80" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:155 msgid "shortcuts.opacity-9" msgstr "Opakutasuna %90" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:156 msgid "shortcuts.open-color-picker" msgstr "Ireki kolore-hautatzailea" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:157 msgid "shortcuts.open-comments" msgstr "Iruzkinak" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:158 msgid "shortcuts.open-dashboard" msgstr "Joan lan-lekura" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:159 msgid "shortcuts.open-inspect" msgstr "Ikuskagailura joan" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:160 msgid "shortcuts.open-interactions" msgstr "Joan interakzioetara" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:161 msgid "shortcuts.open-viewer" msgstr "Joan ikusteko modura" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:162 msgid "shortcuts.open-workspace" msgstr "Joan zure mahaigainera" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:260 msgid "shortcuts.or" msgstr " edo " +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:163 msgid "shortcuts.paste" msgstr "Itsatsi" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:164 msgid "shortcuts.prev-frame" msgstr "Aurreko arbela" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:165 msgid "shortcuts.redo" msgstr "Berregin" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:166 msgid "shortcuts.reset-zoom" msgstr "Berrezarri zooma" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:168 msgid "shortcuts.search-placeholder" msgstr "Bilatu lasterbideak" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:169 msgid "shortcuts.select-all" msgstr "Aukeratu guztia" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:170 msgid "shortcuts.select-next" msgstr "Aukeratu hurrengo geruza" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:172 msgid "shortcuts.select-prev" msgstr "Aukeratu aurreko geruza" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:173 msgid "shortcuts.separate-nodes" msgstr "Banatu nodoak" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:174 msgid "shortcuts.show-pixel-grid" msgstr "Erakutsi/ezkutatu pixel sarea" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:175 msgid "shortcuts.show-shortcuts" msgstr "Erakutsi/ezkutatu lasterbideak" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:176 msgid "shortcuts.snap-nodes" msgstr "Lerrokatu nodoak" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:177 msgid "shortcuts.snap-pixel-grid" msgstr "Aktibatu sarea pixelera lerrokatzea" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:178 msgid "shortcuts.start-editing" msgstr "Hasi edizioa" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:179 msgid "shortcuts.start-measure" msgstr "Hasi neurketa" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:180 msgid "shortcuts.stop-measure" msgstr "Amaitu neurketa" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:185 msgid "shortcuts.thumbnail-set" msgstr "Aktibatu iruditxoak" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:496, src/app/main/ui/workspace/sidebar/shortcuts.cljs:505 msgid "shortcuts.title" msgstr "Lasterteklak" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:186 msgid "shortcuts.toggle-alignment" msgstr "Lerrokatzea aldatu" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:187 msgid "shortcuts.toggle-assets" msgstr "Erakutsi/ezkutatu baliabideak" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:188 msgid "shortcuts.toggle-colorpalette" msgstr "Erakutsi/ezkutatu kolore paleta" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:189 msgid "shortcuts.toggle-focus-mode" msgstr "Erakutsi/ezkutatu foko-modua" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:190 msgid "shortcuts.toggle-fullscreen" msgstr "Aktibatu/desaktibatu pantaila osoa" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:192 msgid "shortcuts.toggle-history" msgstr "Erakutsi/Ezkutatu historikoa" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:193 msgid "shortcuts.toggle-layers" msgstr "Erakutsi/ezkutatu geruzak" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:194 msgid "shortcuts.toggle-layout-flex" msgstr "Gehitu/kendu flex diseinua" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:196 msgid "shortcuts.toggle-lock" msgstr "Blokeatu/Desblokeatu" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:197 msgid "shortcuts.toggle-lock-size" msgstr "Blokeatu/Desblokeatu proportzioak" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:202 msgid "shortcuts.toggle-textpalette" msgstr "Erakutsi/Ezkutatu testuen paleta" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:204 msgid "shortcuts.toggle-visibility" msgstr "Erakutsi/Ezkutatu elementua" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:205 msgid "shortcuts.toggle-zoom-style" msgstr "Erakutsi/Ezkutatu zoomaren estiloa" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:206 msgid "shortcuts.underline" msgstr "Aktibatu/desaktibatu azpimarraketa" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:207 msgid "shortcuts.undo" msgstr "Desegin" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:208 msgid "shortcuts.ungroup" msgstr "Banatu" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:209 msgid "shortcuts.unmask" msgstr "Desegin maskara" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:210 msgid "shortcuts.v-distribute" msgstr "Banatu bertikalki" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:211 msgid "shortcuts.zoom-lense-decrease" msgstr "Zooma txikitu" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:212 msgid "shortcuts.zoom-lense-increase" msgstr "Zooma handitu" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:213 msgid "shortcuts.zoom-selected" msgstr "Zooma aukeraketara" -#: src/app/main/ui/dashboard/files.cljs +#: src/app/main/ui/dashboard/files.cljs:158 msgid "title.dashboard.files" msgstr "%s - Penpot" -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:37 msgid "title.dashboard.font-providers" msgstr "Letra-tipoen hornitzaileak - %s - Penpot" -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:36 msgid "title.dashboard.fonts" msgstr "Letra-tipoak - %s - Penpot" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:320 msgid "title.dashboard.projects" msgstr "Proiektuak - %s - Penpot" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:32 msgid "title.dashboard.search" msgstr "Bilatu - %s - Penpot" -#: src/app/main/ui/dashboard/libraries.cljs +#: src/app/main/ui/dashboard/libraries.cljs:44 msgid "title.dashboard.shared-libraries" msgstr "Partekatutako liburutegiak - %s - Penpot" -#: src/app/main/ui/auth/verify_token.cljs, src/app/main/ui/auth.cljs +#: src/app/main/ui/auth/verify_token.cljs:68, src/app/main/ui/auth.cljs:54 msgid "title.default" msgstr "Penpot - Taldeentzako diseinu librea" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:110 msgid "title.settings.feedback" msgstr "Eman zure iritzia - Penpot" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:80 msgid "title.settings.options" msgstr "Ezarpenak - Penpot" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:115 msgid "title.settings.password" msgstr "Pasahitza - Penpot" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:115 msgid "title.settings.profile" msgstr "Profila - Penpot" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:727 msgid "title.team-invitations" msgstr "Gonbidapenak - %s - Penpot" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:493 msgid "title.team-members" msgstr "Kideak - %s - Penpot" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1036 msgid "title.team-settings" msgstr "Ezarpenak - %s - Penpot" +#: src/app/main/ui/dashboard/team.cljs:989 msgid "title.team-webhooks" msgstr "Webhookak - %s - Penpot" -#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs +#: src/app/main/ui/viewer.cljs:419 msgid "title.viewer" msgstr "%s - Ikusteko modua - Penpot" -#: src/app/main/ui/workspace.cljs +#: src/app/main/ui/workspace.cljs:190 msgid "title.workspace" msgstr "%s - Penpot" +#: src/app/main/ui.cljs:144 msgid "viewer.breaking-change.description" msgstr "" "Partekatutako esteka hau ez dabil- Sortu berri bat edo eska iezaiozu sortu " "zuen pertsonari." +#: src/app/main/ui.cljs:143 msgid "viewer.breaking-change.message" msgstr "Sentitzen dugu!" -#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs +#: src/app/main/ui/viewer.cljs:569 msgid "viewer.empty-state" msgstr "Ez da arbelik aurkitu." -#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs +#: src/app/main/ui/viewer.cljs:574 msgid "viewer.frame-not-found" msgstr "Ez dago arbel hori." +#: src/app/main/ui/viewer/header.cljs:336 msgid "viewer.header.comments-section" msgstr "Iruzkinak (%s)" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/interactions.cljs:292 msgid "viewer.header.dont-show-interactions" msgstr "Ez erakutsi interakzioak" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/header.cljs:188 msgid "viewer.header.fullscreen" msgstr "Pantaila osoa" +#: src/app/main/ui/viewer/header.cljs:345 msgid "viewer.header.inspect-section" msgstr "Ikuskagailua (%s)" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/interactions.cljs:282 msgid "viewer.header.interactions" msgstr "Interakzioak" +#: src/app/main/ui/viewer/header.cljs:327 msgid "viewer.header.interactions-section" msgstr "Interakzioak (%s)" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/share_link.cljs:187 msgid "viewer.header.share.copy-link" msgstr "Kopiatu esteka" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/interactions.cljs:300 msgid "viewer.header.show-interactions" msgstr "Erakutsi interakzioak" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/interactions.cljs:311 msgid "viewer.header.show-interactions-on-click" msgstr "Erakutsi interakzioak klik egitean" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/header.cljs:231 msgid "viewer.header.sitemap" msgstr "Webgunearen mapa" -#, fuzzy +#: src/app/main/ui/dashboard/team.cljs:948 msgid "webhooks.last-delivery.success" msgstr "Azken bidalketa ondo joan da." -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:58 msgid "workspace.align.hcenter" msgstr "Lerrokatu erdian (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:74 msgid "workspace.align.hdistribute" msgstr "Banatu espazioa horizontalki (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:50 msgid "workspace.align.hleft" msgstr "Lerrokatu ezkerrean (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:66 msgid "workspace.align.hright" msgstr "Lerrokatu eskuman (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:99 msgid "workspace.align.vbottom" msgstr "Lerrokatu behean (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:91 msgid "workspace.align.vcenter" msgstr "Lerrokatu erdian (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:104 msgid "workspace.align.vdistribute" msgstr "Banatu espazioa bertikalki (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:83 msgid "workspace.align.vtop" msgstr "Lerrokatu goian (%s)" #: src/app/main/ui/workspace/sidebar/assets.cljs +#, unused msgid "workspace.assets.assets" msgstr "Baliabideak" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets.cljs:134 msgid "workspace.assets.box-filter-all" msgstr "Guztiak" -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/dashboard/grid.cljs:130, src/app/main/ui/dashboard/grid.cljs:162, src/app/main/ui/workspace/sidebar/assets/colors.cljs:485, src/app/main/ui/workspace/sidebar/assets.cljs:150 msgid "workspace.assets.colors" msgstr "Koloreak" -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/dashboard/grid.cljs:126, src/app/main/ui/dashboard/grid.cljs:141, src/app/main/ui/workspace/sidebar/assets/components.cljs:513, src/app/main/ui/workspace/sidebar/assets.cljs:139 msgid "workspace.assets.components" msgstr "Osagaiak" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:131 msgid "workspace.assets.create-group" msgstr "Sortu talde bat" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:142 msgid "workspace.assets.create-group-hint" msgstr "" "Zure elementuak berrizendatu egingo dira: \"taldearen izena / elementuaren " "izena\"" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/context_menu.cljs:529, src/app/main/ui/workspace/sidebar/assets/colors.cljs:251, src/app/main/ui/workspace/sidebar/assets/components.cljs:577, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:424, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:443 msgid "workspace.assets.delete" msgstr "Ezabatu" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/context_menu.cljs:534, src/app/main/ui/workspace/sidebar/assets/components.cljs:572 msgid "workspace.assets.duplicate" msgstr "Bikoiztu" +#: src/app/main/ui/workspace/sidebar/assets/components.cljs:571 msgid "workspace.assets.duplicate-main" msgstr "Bikoiztu nagusia" -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:247, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:439 msgid "workspace.assets.edit" msgstr "Editatu" -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/graphics.cljs:384, src/app/main/ui/workspace/sidebar/assets.cljs:145 msgid "workspace.assets.graphics" msgstr "Grafikoak" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:255, src/app/main/ui/workspace/sidebar/assets/components.cljs:581, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:428, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:448 msgid "workspace.assets.group" msgstr "Taldekatu" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:141 msgid "workspace.assets.group-name" msgstr "Taldearen izena" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets.cljs:168 msgid "workspace.assets.libraries" msgstr "Liburutegiak" +#: src/app/main/ui/workspace/sidebar/assets/file_library.cljs:62, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:347 msgid "workspace.assets.local-library" msgstr "liburutegi lokala" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/file_library.cljs:295 msgid "workspace.assets.not-found" msgstr "Ez da baliabiderik aurkitu" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/context_menu.cljs:532, src/app/main/ui/workspace/sidebar/assets/colors.cljs:243, src/app/main/ui/workspace/sidebar/assets/components.cljs:566, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:421, src/app/main/ui/workspace/sidebar/assets/groups.cljs:63, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:434 msgid "workspace.assets.rename" msgstr "Izena aldatu" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:132 msgid "workspace.assets.rename-group" msgstr "Berrizendatu taldea" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets.cljs:173 msgid "workspace.assets.search" msgstr "Bilatu baliabideak" #: src/app/main/ui/workspace/sidebar/assets.cljs +#, unused msgid "workspace.assets.selected-count" msgid_plural "workspace.assets.selected-count" msgstr[0] "%s elementu aukeratuta" msgstr[1] "Ez da elementurik aukeratu" -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/dashboard/grid.cljs:134, src/app/main/ui/dashboard/grid.cljs:189, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:397, src/app/main/ui/workspace/sidebar/assets.cljs:155 msgid "workspace.assets.typography" msgstr "Letra-tipoak" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused msgid "workspace.assets.typography.font-id" msgstr "Letra-tipoak" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:505 msgid "workspace.assets.typography.font-size" msgstr "Tamaina" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:501 msgid "workspace.assets.typography.font-variant-id" msgstr "Aldaerak" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:523 msgid "workspace.assets.typography.go-to-edit" msgstr "Joan estilo liburutegiaren fitxategira editatzeko" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:513 msgid "workspace.assets.typography.letter-spacing" msgstr "Hizkien tartea" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:509 msgid "workspace.assets.typography.line-height" msgstr "Lerroaren altuera" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, -#: src/app/main/ui/inspect/attributes/text.cljs, -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/dashboard/grid.cljs:199, src/app/main/ui/workspace/libraries.cljs:461, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:464, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:489, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:596, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:615 msgid "workspace.assets.typography.sample" msgstr "Ag" +#, unused msgid "workspace.assets.typography.text-styles" msgstr "Testuen estiloak" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:517 msgid "workspace.assets.typography.text-transform" msgstr "Testua eraldatu" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:66 msgid "workspace.assets.ungroup" msgstr "Banatu" +#: src/app/main/ui/workspace/sidebar/layers.cljs:525 msgid "workspace.focus.focus-mode" msgstr "Foku-modua" +#: src/app/main/ui/workspace/context_menu.cljs:287, src/app/main/ui/workspace/context_menu.cljs:553 msgid "workspace.focus.focus-off" msgstr "Fokua kendu" +#: src/app/main/ui/workspace/context_menu.cljs:286 msgid "workspace.focus.focus-on" msgstr "Fokua gehitu" +#, unused msgid "workspace.focus.selection" msgstr "Aukeraketa" -#: src/app/main/data/workspace/libraries.cljs, -#: src/app/main/ui/components/color_bullet.cljs +#: src/app/util/color.cljs:34 msgid "workspace.gradients.linear" msgstr "Gradiente lineala" -#: src/app/main/data/workspace/libraries.cljs, -#: src/app/main/ui/components/color_bullet.cljs +#: src/app/util/color.cljs:35 msgid "workspace.gradients.radial" msgstr "Gradiente erradiala" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:238 msgid "workspace.header.menu.disable-dynamic-alignment" msgstr "Desaktibatu lerrokatze dinamikoa" +#: src/app/main/ui/workspace/main_menu.cljs:192 msgid "workspace.header.menu.disable-scale-content" msgstr "Desaktibatu eskala proportzionala" #: src/app/main/ui/workspace/header.cljs +#, unused msgid "workspace.header.menu.disable-scale-text" msgstr "Desaktibatu testu eskala" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:223 msgid "workspace.header.menu.disable-snap-guides" msgstr "Desaktibatu gidetara atxikitzea" +#: src/app/main/ui/workspace/main_menu.cljs:253 msgid "workspace.header.menu.disable-snap-pixel-grid" msgstr "Desaktibatu pixelera atxikitzea" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:239 msgid "workspace.header.menu.enable-dynamic-alignment" msgstr "Aktibatu lerrokatze dinamikoa" +#: src/app/main/ui/workspace/main_menu.cljs:193 msgid "workspace.header.menu.enable-scale-content" msgstr "Aktibatu eskala proportzionala" #: src/app/main/ui/workspace/header.cljs +#, unused msgid "workspace.header.menu.enable-scale-text" msgstr "Aktibatu testua eskalatzea" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:224 msgid "workspace.header.menu.enable-snap-guides" msgstr "Atxikitu gidetara" +#: src/app/main/ui/workspace/main_menu.cljs:254 msgid "workspace.header.menu.enable-snap-pixel-grid" msgstr "Aktibatu pixelera atxikitzea" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:382 msgid "workspace.header.menu.hide-artboard-names" msgstr "Ezkutatu arbelen izenak" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:353 msgid "workspace.header.menu.hide-palette" msgstr "Ezkutatu kolore-paleta" +#: src/app/main/ui/workspace/main_menu.cljs:394 msgid "workspace.header.menu.hide-pixel-grid" msgstr "Ezkutatu pixel sareta" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:320 msgid "workspace.header.menu.hide-rules" msgstr "Ezkutatu erregleank" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:367 msgid "workspace.header.menu.hide-textpalette" msgstr "Ezkutatu letra-tipoen paleta" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:731 msgid "workspace.header.menu.option.edit" msgstr "Editatu" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:720 msgid "workspace.header.menu.option.file" msgstr "Fitxategia" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:777 msgid "workspace.header.menu.option.help-info" msgstr "Laguntza eta informazioa" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:753 msgid "workspace.header.menu.option.preferences" msgstr "Hobespenak" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:742 msgid "workspace.header.menu.option.view" msgstr "Ikusi" +#: src/app/main/ui/workspace/main_menu.cljs:459 msgid "workspace.header.menu.redo" msgstr "Berregin" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:432 msgid "workspace.header.menu.select-all" msgstr "Guztiak aukeratu" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:383 msgid "workspace.header.menu.show-artboard-names" msgstr "Erakutsi arbelen izenak" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:354 msgid "workspace.header.menu.show-palette" msgstr "Erakutsi kolore-paleta" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:321 msgid "workspace.header.menu.show-rules" msgstr "Erakutsi erregelak" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:368 msgid "workspace.header.menu.show-textpalette" msgstr "Erakutsi letra-tipoen paleta" +#: src/app/main/ui/workspace/main_menu.cljs:446 msgid "workspace.header.menu.undo" msgstr "Desegin" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/viewer/header.cljs:98, src/app/main/ui/workspace/right_header.cljs:120 msgid "workspace.header.reset-zoom" msgstr "Berrezarri" #: src/app/main/ui/workspace/header.cljs +#, unused msgid "workspace.header.save-error" msgstr "Errorea gordetzean" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/right_header.cljs:52 msgid "workspace.header.saved" msgstr "Gordeta" #: src/app/main/ui/workspace/header.cljs +#, unused msgid "workspace.header.saving" msgstr "Gordetzen" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/right_header.cljs:42, src/app/main/ui/workspace/right_header.cljs:47 msgid "workspace.header.unsaved" msgstr "Gorde gabeko aldaketak" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/right_header.cljs:239 msgid "workspace.header.viewer" msgstr "Ikusteko modua (%s)" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/viewer/header.cljs:109 msgid "workspace.header.zoom-fill" msgstr "Bete - Eskala betetzeko" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/viewer/header.cljs:102 msgid "workspace.header.zoom-fit" msgstr "Egokitu - Eskalatu egokitzeko" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/right_header.cljs:123 msgid "workspace.header.zoom-fit-all" msgstr "Zoom dena ikusteko" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/viewer/header.cljs:116 msgid "workspace.header.zoom-full-screen" msgstr "Pantaila osoa" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/right_header.cljs:130 msgid "workspace.header.zoom-selected" msgstr "Zooma aukeraketara" #: src/app/main/ui/workspace/libraries.cljs +#, unused msgid "workspace.libraries.add" msgstr "Gehitu" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:80, src/app/main/ui/workspace/libraries.cljs:99 msgid "workspace.libraries.colors" msgstr "%s kolore" -#: src/app/main/ui/workspace/colorpicker/libraries.cljs, -#: src/app/main/ui/workspace/colorpalette.cljs +#: src/app/main/ui/workspace/color_palette_ctx_menu.cljs:60, src/app/main/ui/workspace/colorpicker/libraries.cljs:73, src/app/main/ui/workspace/text_palette_ctx_menu.cljs:50 msgid "workspace.libraries.colors.file-library" msgstr "Fitxategien liburutegia" #: src/app/main/ui/workspace/colorpicker.cljs +#, unused msgid "workspace.libraries.colors.hsv" msgstr "HSV" -#: src/app/main/ui/workspace/colorpicker/libraries.cljs, -#: src/app/main/ui/workspace/colorpalette.cljs +#: src/app/main/ui/workspace/color_palette_ctx_menu.cljs:82, src/app/main/ui/workspace/colorpicker/libraries.cljs:72 msgid "workspace.libraries.colors.recent-colors" msgstr "Azken koloreak" #: src/app/main/ui/workspace/colorpicker.cljs +#, unused msgid "workspace.libraries.colors.rgb-complementary" msgstr "RGB Osagarria" #: src/app/main/ui/workspace/colorpicker.cljs +#, unused msgid "workspace.libraries.colors.rgba" msgstr "RGBA" -#: src/app/main/ui/workspace/colorpicker.cljs +#: src/app/main/ui/workspace/colorpicker.cljs:372 msgid "workspace.libraries.colors.save-color" msgstr "Gorde kolorearen estiloa" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:74, src/app/main/ui/workspace/libraries.cljs:91 msgid "workspace.libraries.components" msgstr "%s osagai" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:215 msgid "workspace.libraries.file-library" msgstr "Fitxategien liburutegia" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:77, src/app/main/ui/workspace/libraries.cljs:95 msgid "workspace.libraries.graphics" msgstr "%s grafiko" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:209 msgid "workspace.libraries.in-this-file" msgstr "FITXATEGI HONETAKO LIBURUTEGIAK" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:526, src/app/main/ui/workspace/libraries.cljs:531 msgid "workspace.libraries.libraries" msgstr "LIBURUTEGIAK" #: src/app/main/ui/workspace/libraries.cljs +#, unused msgid "workspace.libraries.library" msgstr "LIBURUTEGIA" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:380 msgid "workspace.libraries.no-libraries-need-sync" msgstr "Ez dago eguneraketa behar duen partekatutako liburutegirik" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:299 msgid "workspace.libraries.no-matches-for" msgstr "Ez da ezer aurkitu bilaketa honentzat: \"%s\"" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:296 msgid "workspace.libraries.no-shared-libraries-available" msgstr "Ez dago partekatutako liburutegirik" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:260 msgid "workspace.libraries.search-shared-libraries" msgstr "Bilatu partekatutako liburutegiak" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:256 msgid "workspace.libraries.shared-libraries" msgstr "Partekatutako liburutegiak" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:308 msgid "workspace.libraries.text.multiple-typography" msgstr "Letra-tipo anitz" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:311 msgid "workspace.libraries.text.multiple-typography-tooltip" msgstr "Kendu esteka letra-tipo guztiei" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:83, src/app/main/ui/workspace/libraries.cljs:103 msgid "workspace.libraries.typography" msgstr "%s letra-tipo" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:402 msgid "workspace.libraries.update" msgstr "Eguneratu" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:536 msgid "workspace.libraries.updates" msgstr "EGUNERAKETAK" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:737 msgid "workspace.options.add-interaction" msgstr "Sakatu + botoia interakzioak gehitzeko." -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:86, src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:102 msgid "workspace.options.blur-options.title" msgstr "Lausotu" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:85 msgid "workspace.options.blur-options.title.group" msgstr "Taldea lausotu" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:84 msgid "workspace.options.blur-options.title.multiple" msgstr "Aukeraketa lausotu" -#: src/app/main/ui/workspace/sidebar/options/page.cljs +#: src/app/main/ui/workspace/sidebar/options/page.cljs:32, src/app/main/ui/workspace/sidebar/options/page.cljs:39 msgid "workspace.options.canvas-background" msgstr "Mihisearen atzeko planoa" +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:548 msgid "workspace.options.clip-content" msgstr "Edukia aukeratu" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:600, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:605 msgid "workspace.options.component" msgstr "Osagaia" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:163 msgid "workspace.options.constraints" msgstr "Murriztapenak" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:150 msgid "workspace.options.constraints.bottom" msgstr "Behean" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:141, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:152 msgid "workspace.options.constraints.center" msgstr "Erdiratu" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:229 msgid "workspace.options.constraints.fix-when-scrolling" msgstr "Konpondu scroll egitean" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:138 msgid "workspace.options.constraints.left" msgstr "Ezkerrean" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:140 msgid "workspace.options.constraints.leftright" msgstr "Ezker eta eskuma" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:139 msgid "workspace.options.constraints.right" msgstr "Eskuman" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:142, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:153 msgid "workspace.options.constraints.scale" msgstr "Eskala" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:149 msgid "workspace.options.constraints.top" msgstr "Goian" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:151 msgid "workspace.options.constraints.topbottom" msgstr "Goian eta behean" -#: src/app/main/ui/workspace/sidebar/options.cljs +#: src/app/main/ui/workspace/sidebar/options.cljs:112 msgid "workspace.options.design" msgstr "Diseinua" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs +#: src/app/main/ui/viewer/inspect/exports.cljs:139 msgid "workspace.options.export" msgstr "Esportatu" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs +#, unused msgid "workspace.options.export-multiple" msgstr "Esportatu aukeraketa" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs +#: src/app/main/ui/viewer/inspect/exports.cljs:195, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:237 msgid "workspace.options.export-object" msgid_plural "workspace.options.export-object" msgstr[0] "Esportatu elementu 1" msgstr[1] "Esportatu %s elementu" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs +#: src/app/main/ui/viewer/inspect/exports.cljs:178, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:219 msgid "workspace.options.export.suffix" msgstr "Aurrizkia" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs, src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/export.cljs:240 msgid "workspace.options.exporting-complete" msgstr "Esportazioa osatu da" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs, src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/export.cljs:172, src/app/main/ui/export.cljs:241, src/app/main/ui/viewer/inspect/exports.cljs:194, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:236 msgid "workspace.options.exporting-object" msgstr "Esportazen…" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs, src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/export.cljs:239 msgid "workspace.options.exporting-object-error" msgstr "Esportazioak huts egin du" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs, src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/export.cljs:242 msgid "workspace.options.exporting-object-slow" msgstr "Esportazio oso geldoa" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:49, src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:174 msgid "workspace.options.fill" msgstr "Bete" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:178 msgid "workspace.options.flows.add-flow-start" msgstr "Gehitu fluxuaren hasiera" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#, unused msgid "workspace.options.flows.flow-start" msgstr "Fluxuaren hasiera" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:161 msgid "workspace.options.flows.flow-starts" msgstr "Fluxua hasi da" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:29 msgid "workspace.options.grid.auto" msgstr "Auto" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:157 msgid "workspace.options.grid.column" msgstr "Zutabeak" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused msgid "workspace.options.grid.grid-title" msgstr "Sareta" +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:196, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:237 msgid "workspace.options.grid.params.color" msgstr "Kolorea" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused msgid "workspace.options.grid.params.columns" msgstr "Zutabeak" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:259 msgid "workspace.options.grid.params.gutter" msgstr "Erretena" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:246 msgid "workspace.options.grid.params.height" msgstr "Altuera" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:270 msgid "workspace.options.grid.params.margin" msgstr "Margina" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused msgid "workspace.options.grid.params.rows" msgstr "Lerroak" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:216, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:290 msgid "workspace.options.grid.params.set-default" msgstr "Defektuzko orri gisa ezarri" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused msgid "workspace.options.grid.params.size" msgstr "Tamaina" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused msgid "workspace.options.grid.params.type" msgstr "Elementu mota" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:231 msgid "workspace.options.grid.params.type.bottom" msgstr "Behean" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:229 msgid "workspace.options.grid.params.type.center" msgstr "Erdiratu" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:228 msgid "workspace.options.grid.params.type.left" msgstr "Ezkerrean" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:232 msgid "workspace.options.grid.params.type.right" msgstr "Eskuman" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:225 msgid "workspace.options.grid.params.type.stretch" msgstr "Luzatu" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:227 msgid "workspace.options.grid.params.type.top" msgstr "Goian" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:211, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:288 msgid "workspace.options.grid.params.use-default" msgstr "Erabili defektuzkoa" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:247 msgid "workspace.options.grid.params.width" msgstr "Zabalera" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:158 msgid "workspace.options.grid.row" msgstr "Lerroak" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:156 msgid "workspace.options.grid.square" msgstr "Karratua" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:48 msgid "workspace.options.group-fill" msgstr "Taldea bete" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:42 msgid "workspace.options.group-stroke" msgstr "Taldea trazatu" +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:406 msgid "workspace.options.height" msgstr "Altuera" +#: src/app/main/ui/workspace/sidebar/options.cljs:161 msgid "workspace.options.inspect" msgstr "Ikuskatu" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:468 msgid "workspace.options.interaction-action" msgstr "Ekintza" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:41, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:367 msgid "workspace.options.interaction-after-delay" msgstr "Atzerapen baten ostean" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:614 msgid "workspace.options.interaction-animation" msgstr "Animazioa" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:406 msgid "workspace.options.interaction-animation-dissolve" msgstr "Disolbatu" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:405 msgid "workspace.options.interaction-animation-none" msgstr "Bat ere ez" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:412 msgid "workspace.options.interaction-animation-push" msgstr "Sartu" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:407 msgid "workspace.options.interaction-animation-slide" msgstr "Irristatu" +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:391 msgid "workspace.options.interaction-auto" msgstr "automatikoa" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:604 msgid "workspace.options.interaction-background" msgstr "Gehitu atzeko planoko geruzi" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:590 msgid "workspace.options.interaction-close-outside" msgstr "Itxi kanpoan klik egitean" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:372 msgid "workspace.options.interaction-close-overlay" msgstr "Itxi geruza" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:56 msgid "workspace.options.interaction-close-overlay-dest" msgstr "Itxi geruza: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:456 msgid "workspace.options.interaction-delay" msgstr "Atzeratu" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:478 msgid "workspace.options.interaction-destination" msgstr "Helburua" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:661 msgid "workspace.options.interaction-duration" msgstr "Iraupena" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:674 msgid "workspace.options.interaction-easing" msgstr "Mugimendua" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:416 msgid "workspace.options.interaction-easing-ease" msgstr "Mugitu" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:417 msgid "workspace.options.interaction-easing-ease-in" msgstr "Mugitu barrura" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:419 msgid "workspace.options.interaction-easing-ease-in-out" msgstr "Mugitu barrura eta kanpora" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:418 msgid "workspace.options.interaction-easing-ease-out" msgstr "Mugitu kanpora" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:415 msgid "workspace.options.interaction-easing-linear" msgstr "Lineala" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#, unused msgid "workspace.options.interaction-in" msgstr "Barrura" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:39, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:364 msgid "workspace.options.interaction-mouse-enter" msgstr "Sagua sartzean" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:40, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:365 msgid "workspace.options.interaction-mouse-leave" msgstr "Sagua urruntzean" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:458, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:459, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:464, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:663, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:665, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:669 msgid "workspace.options.interaction-ms" msgstr "ms" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:369 msgid "workspace.options.interaction-navigate-to" msgstr "Nabigatu hona" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:50 msgid "workspace.options.interaction-navigate-to-dest" msgstr "Nabigatu hona: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:51, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:53, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:55, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:380 msgid "workspace.options.interaction-none" msgstr "(ez da ezarri)" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:691 msgid "workspace.options.interaction-offset-effect" msgstr "Desplazamenduaren efektua" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:35, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:360 msgid "workspace.options.interaction-on-click" msgstr "Klik egitean" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:370 msgid "workspace.options.interaction-open-overlay" msgstr "Ireki geruza" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:52 msgid "workspace.options.interaction-open-overlay-dest" msgstr "Ireki geruz: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:59, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:374 msgid "workspace.options.interaction-open-url" msgstr "Ireki helbidea" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#, unused msgid "workspace.options.interaction-out" msgstr "Kanpoan" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:403 msgid "workspace.options.interaction-pos-bottom-center" msgstr "Behean erdian" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:401 msgid "workspace.options.interaction-pos-bottom-left" msgstr "Behean ezkerrean" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:402 msgid "workspace.options.interaction-pos-bottom-right" msgstr "Behean eskuman" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:397 msgid "workspace.options.interaction-pos-center" msgstr "Erdiratu" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:396 msgid "workspace.options.interaction-pos-manual" msgstr "Eskuzkoa" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:400 msgid "workspace.options.interaction-pos-top-center" msgstr "Goian erdian" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:398 msgid "workspace.options.interaction-pos-top-left" msgstr "Goian ezkerrean" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:399 msgid "workspace.options.interaction-pos-top-right" msgstr "Goian eskuman" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:524 msgid "workspace.options.interaction-position" msgstr "Posizioa" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:494 msgid "workspace.options.interaction-preserve-scroll" msgstr "Mantendu scrollaren posizioa" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:58, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:373 msgid "workspace.options.interaction-prev-screen" msgstr "Aurreko pantaila" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:515 msgid "workspace.options.interaction-relative-to" msgstr "Honekiko erlatiboa" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:57, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:379, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:393, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:394 msgid "workspace.options.interaction-self" msgstr "norbera" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:371 msgid "workspace.options.interaction-toggle-overlay" msgstr "Erakutsi/Ezkutatu geruza" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:54 msgid "workspace.options.interaction-toggle-overlay-dest" msgstr "Erakutsi/Ezkutatu geruza: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:445 msgid "workspace.options.interaction-trigger" msgstr "Hasi" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:503 msgid "workspace.options.interaction-url" msgstr "URL" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:37, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:362 msgid "workspace.options.interaction-while-hovering" msgstr "Sagua gainetik pasatzean" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:38, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:363 msgid "workspace.options.interaction-while-pressing" msgstr "Sakatzean" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:724 msgid "workspace.options.interactions" msgstr "Interakzioak" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:137 msgid "workspace.options.layer-options.blend-mode.color" msgstr "Kolorea" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:126 msgid "workspace.options.layer-options.blend-mode.color-burn" msgstr "Erretako kolorea" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:129 msgid "workspace.options.layer-options.blend-mode.color-dodge" msgstr "Saihestu kolorea" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:124 msgid "workspace.options.layer-options.blend-mode.darken" msgstr "Ilundu" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:133 msgid "workspace.options.layer-options.blend-mode.difference" msgstr "Diferentzia" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:134 msgid "workspace.options.layer-options.blend-mode.exclusion" msgstr "Baztertu" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:132 msgid "workspace.options.layer-options.blend-mode.hard-light" msgstr "Argi gogorra" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:135 msgid "workspace.options.layer-options.blend-mode.hue" msgstr "Ñabardura" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:127 msgid "workspace.options.layer-options.blend-mode.lighten" msgstr "Argitu" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:138 msgid "workspace.options.layer-options.blend-mode.luminosity" msgstr "Argitasuna" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:125 msgid "workspace.options.layer-options.blend-mode.multiply" msgstr "Biderkatu" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:123 msgid "workspace.options.layer-options.blend-mode.normal" msgstr "Normala" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:130 msgid "workspace.options.layer-options.blend-mode.overlay" msgstr "Geruza" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:136 msgid "workspace.options.layer-options.blend-mode.saturation" msgstr "Asetasuna" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:128 msgid "workspace.options.layer-options.blend-mode.screen" msgstr "Pantaila" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:131 msgid "workspace.options.layer-options.blend-mode.soft-light" msgstr "Argi biguna" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#, unused msgid "workspace.options.layer-options.title" msgstr "Geruza" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#, unused msgid "workspace.options.layer-options.title.group" msgstr "Taldearen geruzak" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#, unused msgid "workspace.options.layer-options.title.multiple" msgstr "Aukeratutako geruzak" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout-item.advanced-ops" msgstr "Aukera aurreratuak" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:564 msgid "workspace.options.layout-item.layout-item-max-h" msgstr "Gehieneko altuera" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:531 msgid "workspace.options.layout-item.layout-item-max-w" msgstr "Gehieneko zabalera" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:548 msgid "workspace.options.layout-item.layout-item-min-h" msgstr "Gutxieneko altuera" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:515 msgid "workspace.options.layout-item.layout-item-min-w" msgstr "Gutxieneko zabalera" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout-item.title.layout-item-max-h" msgstr "Gehieneko altuera" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout-item.title.layout-item-max-w" msgstr "Gehieneko zabalaera" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout-item.title.layout-item-min-h" msgstr "Gutxieneko altuera" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout-item.title.layout-item-min-w" msgstr "Gutxieneko zabalera" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.bottom" msgstr "Behean" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.direction.column" msgstr "Zutabea" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.direction.column-reverse" msgstr "Alderantzikatu zutabea" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.direction.row" msgstr "Lerroa" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.direction.row-reverse" msgstr "Alderantzikatu lerroa" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.gap" msgstr "Saltoa" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.left" msgstr "Ezkerrean" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout.margin" msgstr "Margina" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout.margin-all" msgstr "Alde guztiak" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout.margin-simple" msgstr "Margin arrunta" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.packed" msgstr "Trinkotuta" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.padding" msgstr "Barrubetea" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.padding-all" msgstr "Alde guztiak" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.padding-simple" msgstr "Barrubete arrunta" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.right" msgstr "Eskuman" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.space-around" msgstr "tarteko espazioa" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.space-between" msgstr "Tarteko espazioa" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.top" msgstr "Goian" -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:146 msgid "workspace.options.more-colors" msgstr "Kolore gehiago" -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:123 msgid "workspace.options.more-lib-colors" msgstr "Liburutegiko kolore gehiago" +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:161 msgid "workspace.options.opacity" msgstr "Opakotasuna" -#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#, unused msgid "workspace.options.position" msgstr "Posizioa" -#: src/app/main/ui/workspace/sidebar/options.cljs +#: src/app/main/ui/workspace/sidebar/options.cljs:157 msgid "workspace.options.prototype" msgstr "Prototipoa" +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:469, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:481 msgid "workspace.options.radius" msgstr "Erradioa" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:513 msgid "workspace.options.radius-bottom-left" msgstr "Behean ezkerrean" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:522 msgid "workspace.options.radius-bottom-right" msgstr "Behean eskuman" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:495 msgid "workspace.options.radius-top-left" msgstr "Goian ezkerrean" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:504 msgid "workspace.options.radius-top-right" msgstr "Goian eskuman" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:532 msgid "workspace.options.radius.all-corners" msgstr "Ertz guztiak" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:533 msgid "workspace.options.radius.single-corners" msgstr "Ertz independenteak" +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:183 msgid "workspace.options.recent-fonts" msgstr "Azkenak" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs, src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/export.cljs:284 msgid "workspace.options.retry" msgstr "Berriz saiatu" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:451 msgid "workspace.options.rotation" msgstr "Biraketa" +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:180 msgid "workspace.options.search-font" msgstr "Bilatu letra-tipoa" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:741 msgid "workspace.options.select-a-shape" msgstr "" "Aukeratu forma bat, arbel bat edo talde bat eta arrastatu konexioa beste " "arbel batera." -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:105 msgid "workspace.options.selection-color" msgstr "Aukeratutako koloreak" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:47 msgid "workspace.options.selection-fill" msgstr "Aukeraketa bete" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:41 msgid "workspace.options.selection-stroke" msgstr "Aukeraketa trazatu" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:40, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:198, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:200 msgid "workspace.options.shadow-options.blur" msgstr "Lausotu" +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:238 msgid "workspace.options.shadow-options.color" msgstr "Itzalaren kolorea" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:144 msgid "workspace.options.shadow-options.drop-shadow" msgstr "Kendu itzala" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:145 msgid "workspace.options.shadow-options.inner-shadow" msgstr "Barruko itzala" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:38, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:186 msgid "workspace.options.shadow-options.offsetx" msgstr "X" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:39, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:224 msgid "workspace.options.shadow-options.offsety" msgstr "Y" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:41, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:211, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:213 msgid "workspace.options.shadow-options.spread" msgstr "Banatu" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:296 msgid "workspace.options.shadow-options.title" msgstr "Itzala" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:295 msgid "workspace.options.shadow-options.title.group" msgstr "Taldearen itzala" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:294 msgid "workspace.options.shadow-options.title.multiple" msgstr "Aukeraketaren itzalak" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:193 msgid "workspace.options.show-fill-on-export" msgstr "Erakutsi esportazioan" +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:562 msgid "workspace.options.show-in-viewer" msgstr "Erakutsi ikusteko moduan" -#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:162 msgid "workspace.options.size" msgstr "Tamaina" -#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:355 msgid "workspace.options.size-presets" msgstr "Aurredefinitutako tamaina" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:43 msgid "workspace.options.stroke" msgstr "Trazua" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#, unused msgid "workspace.options.stroke-cap.circle-marker" msgstr "Zirkulu erako markatzailea" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#, unused msgid "workspace.options.stroke-cap.diamond-marker" msgstr "Diamante erako markatzailea" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#, unused msgid "workspace.options.stroke-cap.line-arrow" msgstr "Lerro erako gezia" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:124 msgid "workspace.options.stroke-cap.none" msgstr "Bat ere ez" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:132 msgid "workspace.options.stroke-cap.round" msgstr "Txanda" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:133 msgid "workspace.options.stroke-cap.square" msgstr "Karratua" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#, unused msgid "workspace.options.stroke-cap.square-marker" msgstr "Lauki erako marka" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#, unused msgid "workspace.options.stroke-cap.triangle-arrow" msgstr "Hiruki gezia" +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:192 msgid "workspace.options.stroke-color" msgstr "Trazuaren kolorea" +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:165 msgid "workspace.options.stroke-width" msgstr "Marraren zabalera" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:87 msgid "workspace.options.stroke.center" msgstr "Erdiratu" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:105 msgid "workspace.options.stroke.dashed" msgstr "Marrekin" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:104 msgid "workspace.options.stroke.dotted" msgstr "Muntuekin" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:88 msgid "workspace.options.stroke.inner" msgstr "Barruan" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:106 msgid "workspace.options.stroke.mixed" msgstr "Nahastuta" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:89 msgid "workspace.options.stroke.outer" msgstr "Kanpoan" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:103 msgid "workspace.options.stroke.solid" msgstr "Solidoa" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:115 msgid "workspace.options.text-options.align-bottom" msgstr "Lerrokatu behean" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:111 msgid "workspace.options.text-options.align-middle" msgstr "Lerrokatu erdian" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:107 msgid "workspace.options.text-options.align-top" msgstr "Lerrokatu goian" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:82 msgid "workspace.options.text-options.direction-ltr" msgstr "LTR" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:87 msgid "workspace.options.text-options.direction-rtl" msgstr "RTL" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:149 msgid "workspace.options.text-options.grow-auto-height" msgstr "Altuera automatikoa" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:145 msgid "workspace.options.text-options.grow-auto-width" msgstr "Zabalera automatikoa" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:141 msgid "workspace.options.text-options.grow-fixed" msgstr "Finkoa" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:381 msgid "workspace.options.text-options.letter-spacing" msgstr "Hizkien tartea" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:364 msgid "workspace.options.text-options.line-height" msgstr "Lerroaren altuera" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused msgid "workspace.options.text-options.lowercase" msgstr "Letra xeheak" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused msgid "workspace.options.text-options.none" msgstr "Bat ere ez" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:176 msgid "workspace.options.text-options.strikethrough" msgstr "Gaineko marra (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:51 msgid "workspace.options.text-options.text-align-center" msgstr "Lerrokatu erdian (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:59 msgid "workspace.options.text-options.text-align-justify" msgstr "Justifikatu (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:47 msgid "workspace.options.text-options.text-align-left" msgstr "Lerrokatu ezkerrean (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:55 msgid "workspace.options.text-options.text-align-right" msgstr "Lerrokatu eskuman (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:189 msgid "workspace.options.text-options.title" msgstr "Kontsultaren testua" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:188 msgid "workspace.options.text-options.title-group" msgstr "Taldekatu testua" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:187 msgid "workspace.options.text-options.title-selection" msgstr "Aukeraketa testua" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused msgid "workspace.options.text-options.titlecase" msgstr "Izenburuaren mota" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:171 msgid "workspace.options.text-options.underline" msgstr "Azpimarra (%s)" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused msgid "workspace.options.text-options.uppercase" msgstr "Letra larriak" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:745 msgid "workspace.options.use-play-button" msgstr "Erabili goiburuko play botoia prototipoa ikusteko." +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:395 msgid "workspace.options.width" msgstr "Zabalera" +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:427 msgid "workspace.options.x" msgstr "X" +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:438 msgid "workspace.options.y" msgstr "Y" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:167 msgid "workspace.path.actions.add-node" msgstr "Gehitu nodoa (5s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:174 msgid "workspace.path.actions.delete-node" msgstr "Ezabatu nodoa" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:152 msgid "workspace.path.actions.draw-nodes" msgstr "Marraztu nodoak (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:189 msgid "workspace.path.actions.join-nodes" msgstr "Batu nodoak" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:204 msgid "workspace.path.actions.make-corner" msgstr "Ertzera (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:211 msgid "workspace.path.actions.make-curve" msgstr "Kurbara %s" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:182 msgid "workspace.path.actions.merge-nodes" msgstr "Batu nodoak (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:159 msgid "workspace.path.actions.move-nodes" msgstr "Mugitu nodoak (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:196 msgid "workspace.path.actions.separate-nodes" msgstr "Banatu nodoak (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:218 msgid "workspace.path.actions.snap-nodes" msgstr "Atxikitu nodoak (%s)" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:441 msgid "workspace.shape.menu.add-flex" msgstr "Gehitu flex diseinua" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:193 msgid "workspace.shape.menu.back" msgstr "Atzera bota" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:190 msgid "workspace.shape.menu.backward" msgstr "Atzera bidali" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:139 msgid "workspace.shape.menu.copy" msgstr "Kopiatu" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:275 msgid "workspace.shape.menu.create-artboard-from-selection" msgstr "Aukeraketa arbelera" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:465 msgid "workspace.shape.menu.create-component" msgstr "Sortu osagaia" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:142 msgid "workspace.shape.menu.cut" msgstr "Ebaki" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:486 msgid "workspace.shape.menu.delete" msgstr "Ezabatu" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:391 msgid "workspace.shape.menu.delete-flow-start" msgstr "Ezabatu fluxuaren hasiera" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:432 msgid "workspace.shape.menu.detach-instance" msgstr "Askatu instantzia" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:431 msgid "workspace.shape.menu.detach-instances-in-bulk" msgstr "Askatu instantziak" +#: src/app/main/ui/workspace/context_menu.cljs:335, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:75 msgid "workspace.shape.menu.difference" msgstr "Diferentzia" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:148 msgid "workspace.shape.menu.duplicate" msgstr "Bikoiztu" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:321 msgid "workspace.shape.menu.edit" msgstr "Editatu" +#: src/app/main/ui/workspace/context_menu.cljs:341 msgid "workspace.shape.menu.exclude" msgstr "Baztertu" +#: src/app/main/ui/workspace/context_menu.cljs:348, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:89 msgid "workspace.shape.menu.flatten" msgstr "Lautu" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:208 msgid "workspace.shape.menu.flip-horizontal" msgstr "Irauli horizontalki" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:204 msgid "workspace.shape.menu.flip-vertical" msgstr "Irauli bertikalki" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:394 msgid "workspace.shape.menu.flow-start" msgstr "Fluxuaren hasiera" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:184 msgid "workspace.shape.menu.forward" msgstr "Ekarri aurrera" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:187 msgid "workspace.shape.menu.front" msgstr "Ekarri aurrera" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#, unused msgid "workspace.shape.menu.go-main" msgstr "Joan osagai nagusiaren fitxategira" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:261 msgid "workspace.shape.menu.group" msgstr "Taldea" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:363, src/app/main/ui/workspace/sidebar/layer_item.cljs:145 msgid "workspace.shape.menu.hide" msgstr "Ezkutatu" +#: src/app/main/ui/workspace/context_menu.cljs:548, src/app/main/ui/workspace/main_menu.cljs:408 msgid "workspace.shape.menu.hide-ui" msgstr "Erakutsi/Ezkuatu interfazea" +#: src/app/main/ui/workspace/context_menu.cljs:338 msgid "workspace.shape.menu.intersection" msgstr "Ebakidura" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:371, src/app/main/ui/workspace/sidebar/layer_item.cljs:153 msgid "workspace.shape.menu.lock" msgstr "Blokeatu" -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:266 msgid "workspace.shape.menu.mask" msgstr "Maskara aplikatu" -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:145, src/app/main/ui/workspace/context_menu.cljs:545 msgid "workspace.shape.menu.paste" msgstr "Itsatsi" +#: src/app/main/ui/workspace/context_menu.cljs:331 msgid "workspace.shape.menu.path" msgstr "Bidea" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:432 msgid "workspace.shape.menu.remove-flex" msgstr "Ezabatu flex diseinua" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:436 msgid "workspace.shape.menu.reset-overrides" msgstr "Berrezarri gainidazketak" +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:439 msgid "workspace.shape.menu.restore-main" msgstr "Berrezarri osagai nagusia" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:174 msgid "workspace.shape.menu.select-layer" msgstr "Aukeratu geruza" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:360, src/app/main/ui/workspace/sidebar/layer_item.cljs:144 msgid "workspace.shape.menu.show" msgstr "Erakutsi" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:424 msgid "workspace.shape.menu.show-in-assets" msgstr "Ikusi baliabideen panelean" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:442, src/app/main/ui/workspace/sidebar/assets/components.cljs:586 msgid "workspace.shape.menu.show-main" msgstr "Erakutsi osagai nagusia" +#: src/app/main/ui/workspace/context_menu.cljs:221 msgid "workspace.shape.menu.thumbnail-remove" msgstr "Ezabatu iruditxoa" +#: src/app/main/ui/workspace/context_menu.cljs:223 msgid "workspace.shape.menu.thumbnail-set" msgstr "Ezarri iruditxo gisa" +#: src/app/main/ui/workspace/context_menu.cljs:326 msgid "workspace.shape.menu.transform-to-path" msgstr "Eraldatu bidera" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:257 msgid "workspace.shape.menu.ungroup" msgstr "Banatu" +#: src/app/main/ui/workspace/context_menu.cljs:332, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:70 msgid "workspace.shape.menu.union" msgstr "Batu" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:368, src/app/main/ui/workspace/sidebar/layer_item.cljs:152 msgid "workspace.shape.menu.unlock" msgstr "Desblokeatu" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:271 msgid "workspace.shape.menu.unmask" msgstr "Desegin maskara" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs +#, unused msgid "workspace.shape.menu.update-components-in-bulk" msgstr "Eguneratu osagai nagusiak" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:445 msgid "workspace.shape.menu.update-main" msgstr "Eguneratu osagai nagusia" +#: src/app/main/ui/components/tab_container.cljs:50 msgid "workspace.sidebar.collapse" msgstr "Itxi alboko barra" +#: src/app/main/ui/workspace/sidebar/collapsable_button.cljs:26 msgid "workspace.sidebar.expand" msgstr "Ireki alboko barra" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/right_header.cljs:231, src/app/main/ui/workspace/right_header.cljs:232 msgid "workspace.sidebar.history" msgstr "Historikoa (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/sidebar/layers.cljs:522, src/app/main/ui/workspace/sidebar.cljs:100 msgid "workspace.sidebar.layers" msgstr "Geruzak" +#: src/app/main/ui/workspace/sidebar/layers.cljs:308, src/app/main/ui/workspace/sidebar/layers.cljs:380 msgid "workspace.sidebar.layers.components" msgstr "Osagaiak" +#: src/app/main/ui/workspace/sidebar/layers.cljs:305, src/app/main/ui/workspace/sidebar/layers.cljs:338 msgid "workspace.sidebar.layers.frames" msgstr "Arbelak" +#: src/app/main/ui/workspace/sidebar/layers.cljs:306, src/app/main/ui/workspace/sidebar/layers.cljs:352 msgid "workspace.sidebar.layers.groups" msgstr "Taldeak" +#: src/app/main/ui/workspace/sidebar/layers.cljs:310, src/app/main/ui/workspace/sidebar/layers.cljs:408 msgid "workspace.sidebar.layers.images" msgstr "Irudiak" +#: src/app/main/ui/workspace/sidebar/layers.cljs:307, src/app/main/ui/workspace/sidebar/layers.cljs:366 msgid "workspace.sidebar.layers.masks" msgstr "Maskarak" +#: src/app/main/ui/workspace/sidebar/layers.cljs:289 msgid "workspace.sidebar.layers.search" msgstr "Bilatu geruzak" +#: src/app/main/ui/workspace/sidebar/layers.cljs:311, src/app/main/ui/workspace/sidebar/layers.cljs:422 msgid "workspace.sidebar.layers.shapes" msgstr "Formak" +#: src/app/main/ui/workspace/sidebar/layers.cljs:309, src/app/main/ui/workspace/sidebar/layers.cljs:394 msgid "workspace.sidebar.layers.texts" msgstr "Testuak" -#: src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs, -#: src/app/main/ui/inspect/attributes/svg.cljs +#: src/app/main/ui/viewer/inspect/attributes/svg.cljs:56, src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs:91 msgid "workspace.sidebar.options.svg-attrs.title" msgstr "Inportatutako SVG atributuak" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs +#: src/app/main/ui/workspace/sidebar/sitemap.cljs:217 msgid "workspace.sidebar.sitemap" msgstr "Orrialdeak" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/left_header.cljs:91 msgid "workspace.sitemap" msgstr "Web mapa" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/sidebar.cljs:120 msgid "workspace.toolbar.assets" msgstr "Baliabideak" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/palette.cljs:165, src/app/main/ui/workspace/palette.cljs:166 msgid "workspace.toolbar.color-palette" msgstr "Kolore paleta (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/right_header.cljs:220, src/app/main/ui/workspace/right_header.cljs:221 msgid "workspace.toolbar.comments" msgstr "Iruzkinak (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:180, src/app/main/ui/workspace/top_toolbar.cljs:181 msgid "workspace.toolbar.curve" msgstr "Kurba (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:160, src/app/main/ui/workspace/top_toolbar.cljs:161 msgid "workspace.toolbar.ellipse" msgstr "Elipsea (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:142, src/app/main/ui/workspace/top_toolbar.cljs:143 msgid "workspace.toolbar.frame" msgstr "Arbela (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:59, src/app/main/ui/workspace/top_toolbar.cljs:60 msgid "workspace.toolbar.image" msgstr "Irudia (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:132, src/app/main/ui/workspace/top_toolbar.cljs:133 msgid "workspace.toolbar.move" msgstr "Mugitu (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:189, src/app/main/ui/workspace/top_toolbar.cljs:190 msgid "workspace.toolbar.path" msgstr "Bidea (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:151, src/app/main/ui/workspace/top_toolbar.cljs:152 msgid "workspace.toolbar.rect" msgstr "Laukia (%s)" #: src/app/main/ui/workspace/left_toolbar.cljs +#, unused msgid "workspace.toolbar.shortcuts" msgstr "Lasterteklak (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:169, src/app/main/ui/workspace/top_toolbar.cljs:170 msgid "workspace.toolbar.text" msgstr "Testua (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/palette.cljs:173, src/app/main/ui/workspace/palette.cljs:174 msgid "workspace.toolbar.text-palette" msgstr "Letra-motak (%s)" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:342 msgid "workspace.undo.empty" msgstr "Ez dago historikoaren aldaketarik" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:147 msgid "workspace.undo.entry.delete" msgstr "Ezabatuta %s" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:146 msgid "workspace.undo.entry.modify" msgstr "Aldatuta (%s)" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:148 msgid "workspace.undo.entry.move" msgstr "Mugitutako objektuak" +#: src/app/main/ui/workspace/sidebar/history.cljs:111 msgid "workspace.undo.entry.multiple.circle" msgstr "borobilak" +#: src/app/main/ui/workspace/sidebar/history.cljs:112 msgid "workspace.undo.entry.multiple.color" msgstr "kolore baliabideak" +#: src/app/main/ui/workspace/sidebar/history.cljs:113 msgid "workspace.undo.entry.multiple.component" msgstr "osagaiak" +#: src/app/main/ui/workspace/sidebar/history.cljs:114 msgid "workspace.undo.entry.multiple.curve" msgstr "kurbak" +#: src/app/main/ui/workspace/sidebar/history.cljs:115 msgid "workspace.undo.entry.multiple.frame" msgstr "arbela" +#: src/app/main/ui/workspace/sidebar/history.cljs:116 msgid "workspace.undo.entry.multiple.group" msgstr "taldeak" +#: src/app/main/ui/workspace/sidebar/history.cljs:117 msgid "workspace.undo.entry.multiple.media" msgstr "baliabide grafikoak" +#: src/app/main/ui/workspace/sidebar/history.cljs:118 msgid "workspace.undo.entry.multiple.multiple" msgstr "objektuak" +#: src/app/main/ui/workspace/sidebar/history.cljs:119 msgid "workspace.undo.entry.multiple.page" msgstr "orrialdeak" +#: src/app/main/ui/workspace/sidebar/history.cljs:120 msgid "workspace.undo.entry.multiple.path" msgstr "bideak" +#: src/app/main/ui/workspace/sidebar/history.cljs:121 msgid "workspace.undo.entry.multiple.rect" msgstr "laukiak" +#: src/app/main/ui/workspace/sidebar/history.cljs:122 msgid "workspace.undo.entry.multiple.shape" msgstr "formak" +#: src/app/main/ui/workspace/sidebar/history.cljs:123 msgid "workspace.undo.entry.multiple.text" msgstr "testuak" +#: src/app/main/ui/workspace/sidebar/history.cljs:124 msgid "workspace.undo.entry.multiple.typography" msgstr "letra-tipoen baliabideak" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:145 msgid "workspace.undo.entry.new" msgstr "Berria (%s)" +#: src/app/main/ui/workspace/sidebar/history.cljs:125 msgid "workspace.undo.entry.single.circle" msgstr "borobila" +#: src/app/main/ui/workspace/sidebar/history.cljs:126 msgid "workspace.undo.entry.single.color" msgstr "kolore baliabidea" +#: src/app/main/ui/workspace/sidebar/history.cljs:127 msgid "workspace.undo.entry.single.component" msgstr "osagaia" +#: src/app/main/ui/workspace/sidebar/history.cljs:128 msgid "workspace.undo.entry.single.curve" msgstr "kurba" +#: src/app/main/ui/workspace/sidebar/history.cljs:129 msgid "workspace.undo.entry.single.frame" msgstr "arbela" +#: src/app/main/ui/workspace/sidebar/history.cljs:130 msgid "workspace.undo.entry.single.group" msgstr "taldea" +#: src/app/main/ui/workspace/sidebar/history.cljs:131 msgid "workspace.undo.entry.single.image" msgstr "irudia" +#: src/app/main/ui/workspace/sidebar/history.cljs:132 msgid "workspace.undo.entry.single.media" msgstr "baliabide grafikoa" +#: src/app/main/ui/workspace/sidebar/history.cljs:133 msgid "workspace.undo.entry.single.multiple" msgstr "objektua" +#: src/app/main/ui/workspace/sidebar/history.cljs:134 msgid "workspace.undo.entry.single.page" msgstr "orrialdea" +#: src/app/main/ui/workspace/sidebar/history.cljs:135 msgid "workspace.undo.entry.single.path" msgstr "bidea" +#: src/app/main/ui/workspace/sidebar/history.cljs:136 msgid "workspace.undo.entry.single.rect" msgstr "laukia" +#: src/app/main/ui/workspace/sidebar/history.cljs:137 msgid "workspace.undo.entry.single.shape" msgstr "forma" +#: src/app/main/ui/workspace/sidebar/history.cljs:138 msgid "workspace.undo.entry.single.text" msgstr "Testua" +#: src/app/main/ui/workspace/sidebar/history.cljs:139 msgid "workspace.undo.entry.single.typography" msgstr "letra-tipoaren baliabidea" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:149 msgid "workspace.undo.entry.unknown" msgstr "Honen gaineko eragiketa: %s" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:335 msgid "workspace.undo.title" msgstr "Historia" -#: src/app/main/data/workspace/libraries.cljs +#: src/app/main/data/workspace/libraries.cljs:1094 msgid "workspace.updates.dismiss" msgstr "Baztertu" -#: src/app/main/data/workspace/libraries.cljs +#: src/app/main/data/workspace/libraries.cljs:1090 msgid "workspace.updates.there-are-updates" msgstr "Eguneraketak daude partekatutako liburutegietan" -#: src/app/main/data/workspace/libraries.cljs +#: src/app/main/data/workspace/libraries.cljs:1097 msgid "workspace.updates.update" msgstr "Eguneratu" +#, unused msgid "workspace.viewport.click-to-close-path" msgstr "Egin klik bidea ixteko" diff --git a/frontend/translations/fa.po b/frontend/translations/fa.po index af9c817b28..d2236ba081 100644 --- a/frontend/translations/fa.po +++ b/frontend/translations/fa.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "PO-Revision-Date: 2024-06-17 08:07+0000\n" "Last-Translator: Anonymous \n" -"Language-Team: Persian \n" +"Language-Team: Persian " +"\n" "Language: fa\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" @@ -11,382 +11,415 @@ msgstr "" "Plural-Forms: nplurals=2; plural=n > 1;\n" "X-Generator: Weblate 5.6-dev\n" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:151, src/app/main/ui/viewer/login.cljs:104 msgid "auth.already-have-account" msgstr "از قبل حساب کاربری دارید؟" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:299 msgid "auth.check-your-email" msgstr "" "ایمیل خود را بررسی کنید و برای تأیید و شروع استفاده از Penpot روی لینک کلیک " "کنید." -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:78 msgid "auth.confirm-password" msgstr "تایید کلمه‌عبور" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/register.cljs:163 msgid "auth.create-demo-account" msgstr "ایجاد حساب دمو" #: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#, unused msgid "auth.create-demo-profile" msgstr "فقط می‌خواهید آن را امتحان کنید؟" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/login.cljs:43 msgid "auth.demo-warning" msgstr "" "این یک سرویس آزمایشی است، برای کار واقعی استفاده نکنید، پروژه‌ها به صورت " "دوره‌ای پاک می‌شوند." -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:189, src/app/main/ui/viewer/login.cljs:90 msgid "auth.forgot-password" msgstr "کلمه‌عبور را فراموش کرده‌اید؟" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:254 msgid "auth.fullname" msgstr "نام کامل" -#: src/app/main/ui/auth/register.cljs -#, fuzzy +#: src/app/main/ui/auth/register.cljs:155, src/app/main/ui/viewer/login.cljs:107 msgid "auth.login-here" msgstr "ورود از اینجا" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:195 msgid "auth.login-submit" msgstr "ورود" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:222 msgid "auth.login-with-github-submit" msgstr "گیتهاب" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:228 msgid "auth.login-with-gitlab-submit" msgstr "گیتلب" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:216 msgid "auth.login-with-google-submit" msgstr "گوگل" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:201 msgid "auth.login-with-ldap-submit" msgstr "LDAP" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:234, src/app/main/ui/auth/login.cljs:255 msgid "auth.login-with-oidc-submit" msgstr "OpenID" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:71 msgid "auth.new-password" msgstr "یک رمزعبور جدید تایپ کنید" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:42 msgid "auth.notifications.invalid-token-error" msgstr "توکن بازیابی نامعتبر است." -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:46 msgid "auth.notifications.password-changed-successfully" msgstr "کلمه‌عبور با موفقیت تغییر یافت" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:57 msgid "auth.notifications.profile-not-verified" msgstr "پروفایل تأیید نشده است، لطفاً قبل از ادامه، پروفایل را تأیید کنید." -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:40 msgid "auth.notifications.recovery-token-sent" msgstr "لینک بازیابی رمزعبور به صندوق ورودی شما ارسال شد." -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:47 msgid "auth.notifications.team-invitation-accepted" msgstr "با موفقیت به تیم پیوست" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:179, src/app/main/ui/auth/register.cljs:115 msgid "auth.password" msgstr "کلمه‌عبور" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:114 msgid "auth.password-length-hint" msgstr "حداقل ۸ حرف" +#: src/app/main/ui/auth.cljs:41 msgid "auth.privacy-policy" msgstr "سیاست حفظ حریم‌خصوصی" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:88 msgid "auth.recovery-request-submit" msgstr "بازیابی رمزعبور" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:101 msgid "auth.recovery-request-subtitle" msgstr "ما یک ایمیل با دستورالعمل برای شما ارسال خواهیم کرد" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:100 msgid "auth.recovery-request-title" msgstr "رمزعبور را فراموش کرده‌اید؟" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:82 msgid "auth.recovery-submit" msgstr "رمزعبور خود را تغییر دهید" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:298, src/app/main/ui/viewer/login.cljs:93 msgid "auth.register" msgstr "هنوز حسابی ندارید؟" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:302, src/app/main/ui/auth/register.cljs:121, src/app/main/ui/auth/register.cljs:263, src/app/main/ui/viewer/login.cljs:97 msgid "auth.register-submit" msgstr "ایجاد حساب‌کاربری" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:140 msgid "auth.register-title" msgstr "ایجاد حساب" #: src/app/main/ui/auth.cljs +#, unused msgid "auth.sidebar-tagline" msgstr "راه حل منبع-باز برای طراحی و نمونه‌سازی" +#: src/app/main/ui/auth.cljs:33, src/app/main/ui/dashboard/sidebar.cljs:1022, src/app/main/ui/workspace/main_menu.cljs:150 msgid "auth.terms-of-service" msgstr "شرایط استفاده از خدمات" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:297 msgid "auth.verification-email-sent" msgstr "ما یک ایمیل تأیید ارسال کردیم به" +#: src/app/main/ui/workspace/libraries.cljs:228 msgid "common.publish" msgstr "انتشار" +#: src/app/main/ui/viewer/share_link.cljs:304, src/app/main/ui/viewer/share_link.cljs:314 msgid "common.share-link.all-users" msgstr "همه کاربران Penpot" +#: src/app/main/ui/viewer/share_link.cljs:198 msgid "common.share-link.confirm-deletion-link-description" msgstr "" "آیا مطمئنید که می‌خواهید این لینک را حذف کنید؟ اگر این کار را انجام دهید، " "دیگر برای کسی در دسترس نیست" +#: src/app/main/ui/viewer/share_link.cljs:259, src/app/main/ui/viewer/share_link.cljs:289 msgid "common.share-link.current-tag" msgstr "(فعلی)" +#: src/app/main/ui/viewer/share_link.cljs:207, src/app/main/ui/viewer/share_link.cljs:214 msgid "common.share-link.destroy-link" msgstr "از بین بردن لینک" +#: src/app/main/ui/viewer/share_link.cljs:221 msgid "common.share-link.get-link" msgstr "دریافت لینک" +#: src/app/main/ui/viewer/share_link.cljs:139 msgid "common.share-link.link-copied-success" msgstr "لینک با موفقیت کپی شد" +#: src/app/main/ui/viewer/share_link.cljs:231 msgid "common.share-link.manage-ops" msgstr "مدیریت مجوزها" -#, fuzzy +#: src/app/main/ui/viewer/share_link.cljs:277 msgid "common.share-link.page-shared" msgid_plural "common.share-link.page-shared" msgstr[0] "۱ صفحه به اشتراک گذاشته شد" msgstr[1] "%s صفحه به اشتراک گذاشته شدند" -#, fuzzy +#: src/app/main/ui/viewer/share_link.cljs:298 msgid "common.share-link.permissions-can-comment" msgstr "می‌تواند نظر دهد" -#, fuzzy +#: src/app/main/ui/viewer/share_link.cljs:308 msgid "common.share-link.permissions-can-inspect" msgstr "می‌تواند کد را بررسی کند" +#: src/app/main/ui/viewer/share_link.cljs:193 msgid "common.share-link.permissions-hint" msgstr "هر کسی که لینک داشته باشد دسترسی خواهد داشت" +#: src/app/main/ui/viewer/share_link.cljs:241 msgid "common.share-link.permissions-pages" msgstr "صفحات به اشتراک گذاشته شده" +#: src/app/main/ui/viewer/share_link.cljs:183 msgid "common.share-link.placeholder" msgstr "پیوند قابل اشتراک‌گذاری در اینجا ظاهر می‌شود" +#: src/app/main/ui/viewer/share_link.cljs:303, src/app/main/ui/viewer/share_link.cljs:313 msgid "common.share-link.team-members" msgstr "فقط اعضای تیم" +#: src/app/main/ui/viewer/share_link.cljs:171 msgid "common.share-link.title" msgstr "اشتراک‌گذاری پروتوتایپ‌ها" +#: src/app/main/ui/viewer/share_link.cljs:269 msgid "common.share-link.view-all" msgstr "انتخاب همه" +#: src/app/main/ui/workspace/libraries.cljs:224 msgid "common.unpublish" msgstr "لغو انتشار" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:85 msgid "dasboard.team-hero.management" msgstr "مدیریت تیم" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:84 msgid "dasboard.team-hero.text" msgstr "" "Penpot برای تیم‌ها در نظر گرفته شده است. از اعضا دعوت کنید تا روی پروژه‌ها " "و فایل‌ها با هم کار کنند" -#: src/app/main/ui/dashboard/projects.cljs -#, fuzzy +#: src/app/main/ui/dashboard/projects.cljs:82 msgid "dasboard.team-hero.title" msgstr "تیم!" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.tutorial-hero.info" msgstr "در حالی که با این آموزش سرگرم می‌شوید، اصول اولیه را در Penpot بیاموزید." #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.tutorial-hero.start" msgstr "شروع آموزش" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.walkthrough-hero.info" msgstr "در پنپات قدم بزنید و با ویژگی‌های اصلی آن آشنا شوید." #: src/app/main/ui/dashboard/projects.cljs -#, fuzzy +#, unused msgid "dasboard.walkthrough-hero.start" msgstr "شروع تور" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:291, src/app/main/ui/workspace/main_menu.cljs:572 msgid "dashboard.add-shared" msgstr "افزودن به‌عنوان کتابخانه مشترک" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:75 msgid "dashboard.change-email" msgstr "تغییر ایمیل" -#: src/app/main/data/dashboard.cljs, src/app/main/data/dashboard.cljs +#: src/app/main/data/dashboard.cljs:762, src/app/main/data/dashboard.cljs:983 msgid "dashboard.copy-suffix" msgstr "(کپی)" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:338 msgid "dashboard.create-new-team" msgstr "ایجاد تیم جدید" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/components/context_menu_a11y.cljs:256, src/app/main/ui/dashboard/sidebar.cljs:646 msgid "dashboard.default-team-name" msgstr "Penpot شما" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:571 msgid "dashboard.delete-team" msgstr "حذف تیم" -#, fuzzy +#: src/app/main/ui/dashboard/file_menu.cljs:296, src/app/main/ui/workspace/main_menu.cljs:589 msgid "dashboard.download-binary-file" msgstr "دانلود فایل پنپات (.penpot)" -#, fuzzy +#: src/app/main/ui/dashboard/file_menu.cljs:300, src/app/main/ui/workspace/main_menu.cljs:597 msgid "dashboard.download-standard-file" msgstr "دانلود فایل استاندارد (.svg + .json)" -#: src/app/main/ui/dashboard/project_menu.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:276, src/app/main/ui/dashboard/project_menu.cljs:90 msgid "dashboard.duplicate" msgstr "تکثیر" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:240 msgid "dashboard.duplicate-multi" msgstr "فایل‌های %s را کپی کنید" -#: src/app/main/ui/dashboard/grid.cljs +#: src/app/main/ui/dashboard/placeholder.cljs:32 +#, markdown msgid "dashboard.empty-placeholder-drafts" msgstr "" "وای نه! شما هنوز هیچ فایلی ندارید! اگر می‌خواهید چند الگو را امتحان کنید، " -"به [کتابخانه‌ها و الگوها] بروید " -"(https://penpot.app/libraries-templates)" +"به [کتابخانه‌ها و الگوها] بروید (https://penpot.app/libraries-templates)" -#, fuzzy +#: src/app/main/ui/dashboard/file_menu.cljs:249 msgid "dashboard.export-binary-multi" msgstr "دانلود %s فایل پنپات (.penpot)" +#: src/app/main/ui/workspace/main_menu.cljs:605 msgid "dashboard.export-frames" msgstr "خروجی آرت‌بوردها به پی‌دی‌اف" -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:201 msgid "dashboard.export-frames.title" msgstr "اکسپورت به پی‌دی‌اف" +#, unused msgid "dashboard.export-multi" msgstr "خروجی فایل‌های %s پن‌پات" -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:109 msgid "dashboard.export-multiple.selected" msgstr "%s از %s عناصر انتخاب‌شده" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:578 msgid "dashboard.export-shapes" msgstr "اکسپورت" -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:180 msgid "dashboard.export-shapes.how-to" msgstr "" "می‌توانید تنظیمات اکسپورت را از ویژگی‌های طراحی (در پایین نوار کناری سمت " "راست) به عناصر اضافه کنید." -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:184 msgid "dashboard.export-shapes.how-to-link" msgstr "اطلاعات نحوه تنظیم اکسپورت در پنپات." -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:179 msgid "dashboard.export-shapes.no-elements" msgstr "هیچ عنصری با تنظیمات اکسپورت وجود ندارد." -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:190 msgid "dashboard.export-shapes.title" msgstr "انتخاب اکسپورت" -#, fuzzy +#: src/app/main/ui/dashboard/file_menu.cljs:252 msgid "dashboard.export-standard-multi" msgstr "دانلود %s فایل استاندارد (.svg + .json)" +#: src/app/main/ui/export.cljs:427 msgid "dashboard.export.detail" msgstr "* ممکن است شامل کامپوننت‌ها، گرافیک، رنگ‌ها و/یا تایپوگرافی باشد." +#: src/app/main/ui/export.cljs:426 msgid "dashboard.export.explain" msgstr "" "یک یا چند فایلی که می‌خواهید اکسپورت کنید از کتابخانه‌های مشترک استفاده " "می‌کنند. با دارایی‌های آن‌ها چه می‌خواهید بکنید*؟" +#: src/app/main/ui/export.cljs:435 msgid "dashboard.export.options.all.message" msgstr "" "فایل‌های دارای کتابخانه‌های مشترک در اکسپورت گنجانده می‌شوند و پیوند خود را " "حفظ می‌کنند." +#: src/app/main/ui/export.cljs:436 msgid "dashboard.export.options.all.title" msgstr "اکسپورت کتابخانه‌های مشترک" +#: src/app/main/ui/export.cljs:437 msgid "dashboard.export.options.detach.message" msgstr "" "کتابخانه‌های مشترک در صادرات گنجانده نخواهند شد و هیچ دارایی به کتابخانه " "اضافه نخواهد شد. " +#: src/app/main/ui/export.cljs:438 msgid "dashboard.export.options.detach.title" msgstr "دارایی‌های کتابخانه مشترک را به عنوان اشیاء اساسی در نظر بگیرید" +#: src/app/main/ui/export.cljs:439 msgid "dashboard.export.options.merge.message" msgstr "" "فایل شما با تمام دارایی‌های خارجی که در کتابخانه فایل ادغام شده‌اند اکسپورت " "می‌شود." +#: src/app/main/ui/export.cljs:440 msgid "dashboard.export.options.merge.title" msgstr "دارایی‌های کتابخانه مشترک را در کتابخانه‌های فایل قرار دهید" +#: src/app/main/ui/export.cljs:418 msgid "dashboard.export.title" msgstr "خروجی از فایل‌ها" +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:309 msgid "dashboard.fonts.deleted-placeholder" msgstr "فونت حذف شد" -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:206 msgid "dashboard.fonts.dismiss-all" msgstr "ردکردن همه" +#: src/app/main/ui/dashboard/fonts.cljs:436 msgid "dashboard.fonts.empty-placeholder" msgstr "شما هنوز هیچ فونت سفارشی‌ای نصب نکرده‌اید." -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:194 msgid "dashboard.fonts.fonts-added" msgid_plural "dashboard.fonts.fonts-added" msgstr[0] "۱ فونت اضافه شد" msgstr[1] "%s فونت اضافه شد" +#: src/app/main/ui/dashboard/fonts.cljs:170 +#, markdown msgid "dashboard.fonts.hero-text1" msgstr "" "هر وب فونتی که در اینجا آپلود کنید به لیست خانواده فونت‌های موجود در " @@ -395,6 +428,8 @@ msgstr "" "فرمت‌های زیر بارگذاری کنید: **TTF، OTF و WOFF** (فقط یکی مورد نیاز خواهد " "بود)." +#: src/app/main/ui/dashboard/fonts.cljs:182 +#, markdown msgid "dashboard.fonts.hero-text2" msgstr "" "شما فقط باید فونت‌هایی را که مالک آنها هستید یا مجوز استفاده از آنها را در " @@ -402,2659 +437,2734 @@ msgstr "" "(https://penpot.app/terms.html) اطلاعات بیشتری کسب کنید. همچنین ممکن است " "بخواهید درباره [مجوز فونت] (https://www.typography.com/faq) مطالعه کنید." -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:202 msgid "dashboard.fonts.upload-all" msgstr "آپلود همه" +#: src/app/main/ui/dashboard/import.cljs:472, src/app/main/ui/dashboard/project_menu.cljs:108 msgid "dashboard.import" msgstr "ایمپورت کردن فایل‌های پن‌پات" +#: src/app/main/ui/dashboard/import.cljs:304, src/app/worker/import.cljs:753, src/app/worker/import.cljs:755 msgid "dashboard.import.analyze-error" msgstr "اوه! ما نتوانستیم این فایل را ایمپورت کنیم" +#: src/app/main/ui/dashboard/import.cljs:308 msgid "dashboard.import.import-error" msgstr "مشکلی در ایمپورت کردن فایل وجود داشت. فایل ایمپورت نشد." +#: src/app/main/ui/dashboard/import.cljs:493 msgid "dashboard.import.import-message" msgstr "فایل‌های %s با موفقیت ایمپورت شد." -#, fuzzy +#: src/app/main/ui/dashboard/import.cljs:481, src/app/main/ui/dashboard/import.cljs:488 msgid "dashboard.import.import-warning" msgstr "برخی از فایل‌ها حاوی آبجکت‌های نامعتبر بودند که حذف شده‌اند." +#: src/app/main/ui/dashboard/import.cljs:144 msgid "dashboard.import.progress.process-colors" msgstr "در حال پردازش رنگ‌ها" +#: src/app/main/ui/dashboard/import.cljs:153 msgid "dashboard.import.progress.process-components" msgstr "در حال پردازش کامپوننت‌ها" +#: src/app/main/ui/dashboard/import.cljs:150 msgid "dashboard.import.progress.process-media" msgstr "در حال پردازش رسانه‌ها" +#: src/app/main/ui/dashboard/import.cljs:141 msgid "dashboard.import.progress.process-page" msgstr "در حال پردازش صفحه: %s" +#: src/app/main/ui/dashboard/import.cljs:147 msgid "dashboard.import.progress.process-typographies" msgstr "در حال پردازش تایپوگرافی‌ها" +#: src/app/main/ui/dashboard/import.cljs:135 msgid "dashboard.import.progress.upload-data" msgstr "در حال آپلود اطلاعات روی سرور (%s/%s)" +#: src/app/main/ui/dashboard/import.cljs:138 msgid "dashboard.import.progress.upload-media" msgstr "در حال آپلود فایل: %s" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:109 msgid "dashboard.invite-profile" msgstr "دعوت به تیم" -#: src/app/main/ui/dashboard/sidebar.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:547, src/app/main/ui/dashboard/sidebar.cljs:556, src/app/main/ui/dashboard/sidebar.cljs:563, src/app/main/ui/dashboard/team.cljs:312 msgid "dashboard.leave-team" msgstr "خروج از تیم" +#: src/app/main/ui/dashboard/templates.cljs:88, src/app/main/ui/dashboard/templates.cljs:163 msgid "dashboard.libraries-and-templates" msgstr "کتابخانه‌ها و قالب‌ها" -#, fuzzy +#: src/app/main/ui/dashboard/templates.cljs:164 msgid "dashboard.libraries-and-templates.explore" msgstr "بیشتر آنها را کاوش کنید و بدانید که چگونه مشارکت کنید" -#, fuzzy +#: src/app/main/ui/dashboard/import.cljs:365 msgid "dashboard.libraries-and-templates.import-error" msgstr "مشکلی در ایمپورت کردن قالب وجود داشت. قالب ایمپورت نشد." -#: src/app/main/ui/dashboard/libraries.cljs +#: src/app/main/ui/dashboard/libraries.cljs:53 msgid "dashboard.libraries-title" msgstr "کتابخانه‌های مشترک" -#: src/app/main/ui/dashboard/grid.cljs +#: src/app/main/ui/dashboard/placeholder.cljs:45 msgid "dashboard.loading-files" msgstr "در حال بارگذاری فایل‌های شما …" +#: src/app/main/ui/dashboard/fonts.cljs:431 msgid "dashboard.loading-fonts" msgstr "در حال بارگیری فونت‌های شما …" -#: src/app/main/ui/dashboard/project_menu.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:281, src/app/main/ui/dashboard/project_menu.cljs:100 msgid "dashboard.move-to" msgstr "انتقال به" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:245 msgid "dashboard.move-to-multi" msgstr "انتقال فایل‌های %s به" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:226 msgid "dashboard.move-to-other-team" msgstr "انتقال به تیم دیگر" -#: src/app/main/ui/dashboard/projects.cljs, -#: src/app/main/ui/dashboard/files.cljs +#: src/app/main/ui/dashboard/files.cljs:105, src/app/main/ui/dashboard/projects.cljs:252, src/app/main/ui/dashboard/projects.cljs:253 msgid "dashboard.new-file" msgstr "+ فایل جدید" -#: src/app/main/data/dashboard.cljs +#: src/app/main/data/dashboard.cljs:958, src/app/main/data/dashboard.cljs:1181 msgid "dashboard.new-file-prefix" msgstr "فایل جدید" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:55 msgid "dashboard.new-project" msgstr "+ پروژه جدید" -#: src/app/main/data/dashboard.cljs +#: src/app/main/data/dashboard.cljs:726, src/app/main/data/dashboard.cljs:1184 msgid "dashboard.new-project-prefix" msgstr "پروژه جدید" -#: src/app/main/ui/dashboard/search.cljs -#, fuzzy +#: src/app/main/ui/dashboard/search.cljs:60 msgid "dashboard.no-matches-for" msgstr "هیچ منطبقی برای «%s» یافت نشد" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:827 msgid "dashboard.no-projects-placeholder" msgstr "پروژه‌های پین شده در اینجا ظاهر می‌شوند" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:33 msgid "dashboard.notifications.email-changed-successfully" msgstr "آدرس ایمیل شما با موفقیت به‌روز شد" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:27 msgid "dashboard.notifications.email-verified-successfully" msgstr "آدرس ایمیل شما با موفقیت تایید شد" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:37 msgid "dashboard.notifications.password-saved" msgstr "رمزعبور با موفقیت ذخیره شد!" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1081 msgid "dashboard.num-of-members" msgstr "اعضای %s" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:267 msgid "dashboard.open-in-new-tab" msgstr "باز کردن فایل در تب جدید" +#: src/app/main/ui/dashboard/files.cljs:117, src/app/main/ui/dashboard/projects.cljs:260, src/app/main/ui/dashboard/projects.cljs:261 msgid "dashboard.options" msgstr "گزینه‌ها" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:106, src/app/main/ui/settings/password.cljs:119 msgid "dashboard.password-change" msgstr "تغییر رمزعبور" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/pin_button.cljs:24, src/app/main/ui/dashboard/project_menu.cljs:95 msgid "dashboard.pin-unpin" msgstr "پین/برداشتن پین" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:51 msgid "dashboard.projects-title" msgstr "پروژه‌ها" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:86 msgid "dashboard.remove-account" msgstr "آیا می‌خواهید حساب خود را حذف کنید؟" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs -#, fuzzy +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "dashboard.remove-shared" msgstr "حذف به عنوان کتابخانه مشترک" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:78 msgid "dashboard.save-settings" msgstr "ذخیره تنظیمات" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:246, src/app/main/ui/dashboard/sidebar.cljs:247 msgid "dashboard.search-placeholder" msgstr "جستجو…" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:55 msgid "dashboard.searching-for" msgstr "جستجو برای “%s“…" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:56 msgid "dashboard.select-ui-language" msgstr "زبان رابط کاربری را انتخاب کنید" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:63 msgid "dashboard.select-ui-theme" msgstr "انتخاب تم" -#: src/app/main/ui/dashboard/grid.cljs -#, fuzzy +#: src/app/main/ui/dashboard/projects.cljs:282 msgid "dashboard.show-all-files" msgstr "نمایش همه فایل‌ها" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:96 msgid "dashboard.success-delete-file" msgstr "فایل شما با موفقیت حذف شد" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:59 msgid "dashboard.success-delete-project" msgstr "پروژه شما با موفقیت حذف شد" -#: src/app/main/ui/dashboard/file_menu.cljs -#, fuzzy +#: src/app/main/ui/dashboard/file_menu.cljs:91 msgid "dashboard.success-duplicate-file" msgstr "فایل شما با موفقیت duplicate شد" -#: src/app/main/ui/dashboard/project_menu.cljs -#, fuzzy +#: src/app/main/ui/dashboard/project_menu.cljs:33 msgid "dashboard.success-duplicate-project" msgstr "پروژه شما با موفقیت duplicate شد" -#: src/app/main/ui/dashboard/grid.cljs, src/app/main/ui/dashboard/sidebar.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:130, src/app/main/ui/dashboard/grid.cljs:558, src/app/main/ui/dashboard/sidebar.cljs:152 msgid "dashboard.success-move-file" msgstr "فایل شما با موفقیت منتقل شد" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:129 msgid "dashboard.success-move-files" msgstr "فایل‌های شما با موفقیت منتقل شدند" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:54 msgid "dashboard.success-move-project" msgstr "پروژه شما با موفقیت منتقل شد" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1052 msgid "dashboard.team-info" msgstr "اطلاعات تیم" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1070 msgid "dashboard.team-members" msgstr "اعضای تیم" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1085 msgid "dashboard.team-projects" msgstr "پروژه‌های تیم" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:61 msgid "dashboard.theme-change" msgstr "تم رابط کاربری" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:42 msgid "dashboard.title-search" msgstr "نتایج جستجو" -#: src/app/main/ui/dashboard/search.cljs -#, fuzzy +#: src/app/main/ui/dashboard/search.cljs:50 msgid "dashboard.type-something" msgstr "برای نمایش نتایج جستجو تایپ کنید" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:287, src/app/main/ui/workspace/main_menu.cljs:566 msgid "dashboard.unpublish-shared" msgstr "لغو انتشار کتابخانه" -#: src/app/main/ui/settings/password.cljs, -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:71 msgid "dashboard.update-settings" msgstr "به‌روزرسانی تنظیمات" -#: src/app/main/ui/settings.cljs +#: src/app/main/ui/settings.cljs:31 msgid "dashboard.your-account-title" msgstr "حساب شما" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:70 msgid "dashboard.your-email" msgstr "ایمیل" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:62 msgid "dashboard.your-name" msgstr "نام شما" -#: src/app/main/ui/dashboard/search.cljs, src/app/main/ui/dashboard/team.cljs, -#: src/app/main/ui/dashboard/libraries.cljs, -#: src/app/main/ui/dashboard/projects.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:38, src/app/main/ui/dashboard/fonts.cljs:33, src/app/main/ui/dashboard/libraries.cljs:42, src/app/main/ui/dashboard/projects.cljs:318, src/app/main/ui/dashboard/search.cljs:30, src/app/main/ui/dashboard/sidebar.cljs:312, src/app/main/ui/dashboard/team.cljs:495, src/app/main/ui/dashboard/team.cljs:729, src/app/main/ui/dashboard/team.cljs:991, src/app/main/ui/dashboard/team.cljs:1038 msgid "dashboard.your-penpot" msgstr "پن‌پات شما" -#: src/app/main/ui/alert.cljs +#: src/app/main/ui/alert.cljs:32 msgid "ds.alert-ok" msgstr "خیلی خوب" -#: src/app/main/ui/alert.cljs -#, fuzzy +#: src/app/main/ui/alert.cljs:31, src/app/main/ui/alert.cljs:34 msgid "ds.alert-title" msgstr "توجه" -#: src/app/main/ui/confirm.cljs -#, fuzzy +#: src/app/main/ui/confirm.cljs:83 msgid "ds.component-subtitle" msgstr "کامپوننت‌ها برای به‌روزرسانی:" -#: src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:36, src/app/main/ui/workspace/plugins.cljs:246 msgid "ds.confirm-cancel" msgstr "لغو" -#: src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:37, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:141 msgid "ds.confirm-ok" msgstr "بله" -#: src/app/main/ui/confirm.cljs, src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:35, src/app/main/ui/confirm.cljs:39 msgid "ds.confirm-title" msgstr "مطمئنی؟" -#: src/app/main/ui/auth/login.cljs -#, fuzzy +#: src/app/main/ui/auth/login.cljs:62 msgid "errors.auth-provider-not-configured" msgstr "ارائه دهنده احراز هویت پیکربندی نشده است." -#, fuzzy +#: src/app/main/errors.cljs:104 msgid "errors.auth.unable-to-login" msgstr "به نظر می‌رسد شما احراز هویت نشده‌اید یا جلسه منقضی شده است." +#: src/app/main/data/fonts.cljs:189 msgid "errors.bad-font" msgstr "فونت %s بارگیری نشد" +#: src/app/main/data/fonts.cljs:188 msgid "errors.bad-font-plural" msgstr "فونت‌های %s بارگیری نشدند" -#: src/app/main/data/workspace.cljs +#: src/app/main/data/workspace.cljs:1598 msgid "errors.clipboard-not-implemented" msgstr "مرورگر شما نمی‌تواند این عملیات را انجام دهد" -#: src/app/main/ui/auth/verify_token.cljs, -#: src/app/main/ui/settings/change_email.cljs -#, fuzzy +#: src/app/main/ui/auth/verify_token.cljs:82, src/app/main/ui/settings/change_email.cljs:46 msgid "errors.email-already-exists" msgstr "ایمیل قبلا استفاده شده است" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:87 msgid "errors.email-already-validated" msgstr "ایمیل قبلاً تأیید شده است." +#: src/app/main/ui/settings/password.cljs:28 msgid "errors.email-as-password" msgstr "شما نمی‌توانید از ایمیل خود به عنوان رمزعبور استفاده کنید" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:35 msgid "errors.email-invalid-confirmation" msgstr "ایمیل تأیید باید مطابقت داشته باشد" -#: src/app/main/ui/auth/verify_token.cljs, -#: src/app/main/ui/settings/feedback.cljs, src/app/main/ui/dashboard/team.cljs -#, fuzzy +#: src/app/main/data/users.cljs:709, src/app/main/ui/auth/login.cljs:65, src/app/main/ui/auth/login.cljs:116, src/app/main/ui/auth/register.cljs:69, src/app/main/ui/auth/register.cljs:237, src/app/main/ui/auth/verify_token.cljs:92, src/app/main/ui/dashboard/team.cljs:173, src/app/main/ui/onboarding/team_choice.cljs:95, src/app/main/ui/settings/access_tokens.cljs:91, src/app/main/ui/settings/feedback.cljs:52 msgid "errors.generic" msgstr "اشتباهی رخ داده است." -#: src/app/main/ui/components/color_input.cljs +#: src/app/main/ui/components/color_input.cljs:57 msgid "errors.invalid-color" msgstr "رنگ نامعتبر" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/static.cljs:43 msgid "errors.invite-invalid" msgstr "دعوت نامعتبر" +#: src/app/main/ui/static.cljs:44 msgid "errors.invite-invalid.info" msgstr "این دعوت ممکن است لغو یا منقضی شده باشد." -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:101 msgid "errors.ldap-disabled" msgstr "احراز هویت LDAP غیرفعال است." -#: src/app/main/data/workspace/persistence.cljs +#: src/app/main/data/workspace/media.cljs:184 msgid "errors.media-too-large" msgstr "تصویر برای درج خیلی بزرگ است." -#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs +#: src/app/main/data/media.cljs:68, src/app/main/data/workspace/media.cljs:187 msgid "errors.media-type-mismatch" msgstr "به نظر می‌رسد که محتوای تصویر با پسوند فایل مطابقت ندارد." -#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs +#: src/app/main/data/media.cljs:65, src/app/main/data/workspace/media.cljs:172, src/app/main/data/workspace/media.cljs:175, src/app/main/data/workspace/media.cljs:178, src/app/main/data/workspace/media.cljs:181 msgid "errors.media-type-not-allowed" msgstr "به نظر می‌رسد که این یک تصویر معتبر نیست." -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:61 msgid "errors.password-invalid-confirmation" msgstr "رمزعبور تأیید باید مطابقت داشته باشد" -#: src/app/main/ui/settings/password.cljs -#, fuzzy +#: src/app/main/ui/settings/password.cljs:64 msgid "errors.password-too-short" msgstr "رمزعبور باید حداقل 8 کاراکتر باشد" +#: src/app/main/data/users.cljs:703, src/app/main/ui/auth/login.cljs:97, src/app/main/ui/auth/login.cljs:105 msgid "errors.profile-blocked" msgstr "پروفایل مسدود شده" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/data/users.cljs:701, src/app/main/ui/auth/register.cljs:60 msgid "errors.registration-disabled" msgstr "ثبت‌نام در حال حاضر غیرفعال است." +#: src/app/main/ui/dashboard/sidebar.cljs:365, src/app/main/ui/dashboard/team.cljs:359 msgid "errors.team-leave.insufficient-members" msgstr "اعضای کافی برای ترک تیم وجود ندارد، احتمالاً می‌خواهید آن را حذف کنید." -#, fuzzy +#: src/app/main/ui/dashboard/sidebar.cljs:368, src/app/main/ui/dashboard/team.cljs:362 msgid "errors.team-leave.member-does-not-exists" msgstr "عضوی که می‌خواهید اختصاص دهید وجود ندارد." +#: src/app/main/ui/dashboard/sidebar.cljs:371, src/app/main/ui/dashboard/team.cljs:365 msgid "errors.team-leave.owner-cant-leave" msgstr "مالک نمی‌تواند تیم را ترک کند، شما باید نقش مالک را مجدداً اختصاص دهید." -#: src/app/main/data/media.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs +#: src/app/main/data/media.cljs:71 msgid "errors.unexpected-error" msgstr "یک خطای غیرمنتظره رخ داد." -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:60 msgid "errors.unexpected-token" msgstr "توکن ناشناخته" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:109, src/app/main/ui/auth/login.cljs:113 msgid "errors.wrong-credentials" msgstr "به نظر می‌رسد نام‌کاربری یا رمزعبور اشتباه است." -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:25 msgid "errors.wrong-old-password" msgstr "رمزعبور قدیمی اشتباه است" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:77 msgid "feedback.description" msgstr "شرح" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:95 msgid "feedback.discourse-go-to" msgstr "به انجمن Penpot بروید" -#: src/app/main/ui/settings/feedback.cljs -#, fuzzy +#: src/app/main/ui/settings/feedback.cljs:89 msgid "feedback.discourse-subtitle1" msgstr "" "ما خوشحالیم که شما اینجا هستید. اگر به کمک نیاز دارید، لطفا قبل از ارسال " "پست جستجو کنید." -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:88 msgid "feedback.discourse-title" msgstr "انجمن Penpot" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:72 msgid "feedback.subject" msgstr "موضوع" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:69 msgid "feedback.subtitle" msgstr "" "لطفاً دلیل ایمیل خود را توضیح دهید و مشخص کنید که آیا یک مشکل، ایده یا شک " "است. یکی از اعضای تیم ما در اسرع وقت پاسخ خواهد داد." -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:68 msgid "feedback.title" msgstr "ایمیل" -#: src/app/main/ui/settings/feedback.cljs -#, fuzzy +#: src/app/main/ui/settings/feedback.cljs:105 msgid "feedback.twitter-go-to" msgstr "به توییتر بروید" -#: src/app/main/ui/settings/feedback.cljs -#, fuzzy +#: src/app/main/ui/settings/feedback.cljs:99 msgid "feedback.twitter-subtitle1" msgstr "اینجا برای کمک به سوالات فنی شما." -#: src/app/main/ui/settings/feedback.cljs -#, fuzzy +#: src/app/main/ui/settings/feedback.cljs:98 msgid "feedback.twitter-title" msgstr "حساب پشتیبانی در توییتر" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:30 msgid "generic.error" msgstr "خطایی رخ داده است" -#: src/app/main/ui/inspect/attributes/blur.cljs +#: src/app/main/ui/viewer/inspect/attributes/blur.cljs:26 msgid "inspect.attributes.blur" msgstr "محو" -#: src/app/main/ui/inspect/attributes/blur.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:115 msgid "inspect.attributes.blur.value" msgstr "مقدار" -#: src/app/main/ui/inspect/attributes/common.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:112 msgid "inspect.attributes.color.hex" msgstr "HEX" -#: src/app/main/ui/inspect/attributes/common.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:114 msgid "inspect.attributes.color.hsla" msgstr "HSLA" -#: src/app/main/ui/inspect/attributes/common.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:113 msgid "inspect.attributes.color.rgba" msgstr "RGBA" -#: src/app/main/ui/inspect/attributes/fill.cljs +#: src/app/main/ui/viewer/inspect/attributes/fill.cljs:57 msgid "inspect.attributes.fill" msgstr "پر" -#: src/app/main/ui/inspect/attributes/image.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:99, src/app/main/ui/viewer/inspect/attributes/image.cljs:51 msgid "inspect.attributes.image.download" msgstr "دانلود تصویر منبع" -#: src/app/main/ui/inspect/attributes/image.cljs +#: src/app/main/ui/viewer/inspect/attributes/image.cljs:39 msgid "inspect.attributes.image.height" msgstr "ارتفاع" -#: src/app/main/ui/inspect/attributes/image.cljs +#: src/app/main/ui/viewer/inspect/attributes/image.cljs:32 msgid "inspect.attributes.image.width" msgstr "عرض" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout" msgstr "چیدمان" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.height" msgstr "ارتفاع" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.left" msgstr "چپ" -#: src/app/main/ui/inspect/attributes/layout.cljs, -#: src/app/main/ui/inspect/attributes/layout.cljs +#: src/app/main/ui/inspect/attributes/layout.cljs, src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.radius" msgstr "گردی" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.rotation" msgstr "چرخش" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.top" msgstr "بالا" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.width" msgstr "عرض" -#: src/app/main/ui/inspect/attributes/shadow.cljs +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:57 msgid "inspect.attributes.shadow" msgstr "سایه" -#: src/app/main/ui/inspect/attributes/stroke.cljs -#, fuzzy +#: src/app/main/ui/viewer/inspect/attributes/stroke.cljs:52 msgid "inspect.attributes.stroke" msgstr "استروک" +#, permanent, unused msgid "inspect.attributes.stroke.alignment.center" msgstr "مرکز" +#, permanent, unused msgid "inspect.attributes.stroke.alignment.inner" msgstr "داخل" +#, permanent, unused msgid "inspect.attributes.stroke.alignment.outer" msgstr "بیرون" +#, unused msgid "inspect.attributes.stroke.style.dotted" msgstr "خط‌چین" +#, unused msgid "inspect.attributes.stroke.style.mixed" msgstr "‏مخلوط" +#, unused msgid "inspect.attributes.stroke.style.none" msgstr "هیچ‌یک" -#, fuzzy +#, unused msgid "inspect.attributes.stroke.style.solid" msgstr "جامد" #: src/app/main/ui/inspect/attributes/stroke.cljs +#, unused msgid "inspect.attributes.stroke.width" msgstr "عرض" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:81, src/app/main/ui/viewer/inspect/attributes/text.cljs:194 msgid "inspect.attributes.typography" msgstr "تایپوگرافی" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:89 msgid "inspect.attributes.typography.font-family" msgstr "خانواده فونت" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:107 msgid "inspect.attributes.typography.font-size" msgstr "اندازه فونت" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:98 msgid "inspect.attributes.typography.font-style" msgstr "استایل فونت" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:134 msgid "inspect.attributes.typography.letter-spacing" msgstr "فاصله بین حروف" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:125 msgid "inspect.attributes.typography.line-height" msgstr "ارتفاع خط" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:145 msgid "inspect.attributes.typography.text-decoration.none" msgstr "هیچ‌یک" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:147 msgid "inspect.attributes.typography.text-decoration.underline" msgstr "خط‌زیر" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:156 msgid "inspect.attributes.typography.text-transform" msgstr "تبدیل متن" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:158 msgid "inspect.attributes.typography.text-transform.lowercase" msgstr "حروف کوچک" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:159 msgid "inspect.attributes.typography.text-transform.none" msgstr "هیچ‌یک" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:161 msgid "inspect.attributes.typography.text-transform.uppercase" msgstr "حروف بزرگ" -#: src/app/main/ui/inspect/right_sidebar.cljs +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:125 msgid "inspect.tabs.code" msgstr "کد" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:98 msgid "inspect.tabs.code.selected.circle" msgstr "دایره" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:99 msgid "inspect.tabs.code.selected.component" msgstr "کامپوننت" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:100 msgid "inspect.tabs.code.selected.curve" msgstr "منحنی" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:101 msgid "inspect.tabs.code.selected.frame" msgstr "آرت‌برد" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:102 msgid "inspect.tabs.code.selected.group" msgstr "گروه" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:103 msgid "inspect.tabs.code.selected.image" msgstr "تصویر" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:104 msgid "inspect.tabs.code.selected.mask" msgstr "ماسک" -#: src/app/main/ui/inspect/right_sidebar.cljs -#, fuzzy +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:93 msgid "inspect.tabs.code.selected.multiple" msgstr "%s انتخاب شد" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:105 msgid "inspect.tabs.code.selected.path" msgstr "مسیر" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:106 msgid "inspect.tabs.code.selected.rect" msgstr "مستطیل" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:107 msgid "inspect.tabs.code.selected.svg-raw" msgstr "SVG" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:108 msgid "inspect.tabs.code.selected.text" msgstr "متن" -#: src/app/main/ui/inspect/right_sidebar.cljs +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:115 msgid "inspect.tabs.info" msgstr "اطلاعات" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:158 msgid "label.shortcuts" msgstr "میانبرها" +#: src/app/main/ui/dashboard/import.cljs:527 msgid "labels.accept" msgstr "تایید" +#: src/app/main/ui/dashboard/fonts.cljs:175 msgid "labels.add-custom-font" msgstr "اضافه کردن فونت سفارشی" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:120, src/app/main/ui/dashboard/team.cljs:276, src/app/main/ui/dashboard/team.cljs:519, src/app/main/ui/dashboard/team.cljs:549, src/app/main/ui/onboarding/team_choice.cljs:67 msgid "labels.admin" msgstr "مدیر" #: src/app/main/ui/workspace/comments.cljs +#, unused msgid "labels.all" msgstr "همه" +#: src/app/main/ui/auth.cljs:37 msgid "labels.and" msgstr "و" +#: src/app/main/ui/onboarding/team_choice.cljs:162 msgid "labels.back" msgstr "بازگشت" -#: src/app/main/ui/static.cljs -#, fuzzy +#: src/app/main/ui/static.cljs:59 msgid "labels.bad-gateway.desc-message" msgstr "" "به نظر می‌رسد باید کمی صبر کنید و دوباره تلاش کنید; ما در حال انجام تعمیرات " "کوچک روی سرورهای خود هستیم." -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/data/common.cljs:112, src/app/main/ui/dashboard/change_owner.cljs:69, src/app/main/ui/dashboard/import.cljs:514, src/app/main/ui/dashboard/team.cljs:868, src/app/main/ui/delete_shared.cljs:35, src/app/main/ui/export.cljs:164, src/app/main/ui/export.cljs:460, src/app/main/ui/settings/access_tokens.cljs:188, src/app/main/ui/viewer/share_link.cljs:203, src/app/main/ui/workspace/sidebar/assets/groups.cljs:149 msgid "labels.cancel" msgstr "لغو" +#: src/app/main/ui/dashboard/projects.cljs:93, src/app/main/ui/export.cljs:478, src/app/main/ui/settings/access_tokens.cljs:183, src/app/main/ui/viewer/login.cljs:77, src/app/main/ui/viewer/share_link.cljs:174, src/app/main/ui/workspace/libraries.cljs:522 msgid "labels.close" msgstr "بستن" -#: src/app/main/ui/dashboard/comments.cljs +#: src/app/main/ui/dashboard/comments.cljs:104, src/app/main/ui/viewer/comments.cljs:70, src/app/main/ui/workspace/comments.cljs:126 msgid "labels.comments" msgstr "نظرات" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:985, src/app/main/ui/workspace/main_menu.cljs:110 msgid "labels.community" msgstr "انجمن" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:103 msgid "labels.confirm-password" msgstr "تایید رمزعبور" +#: src/app/main/ui/dashboard/import.cljs:520, src/app/main/ui/export.cljs:465, src/app/main/ui/onboarding/newsletter.cljs:101 msgid "labels.continue" msgstr "ادامه" +#, unused msgid "labels.continue-with" msgstr "ادامه دادن با" +#: src/app/main/ui/viewer/login.cljs:75 msgid "labels.continue-with-penpot" msgstr "شما می‌توانید با یک حساب Penpot ادامه دهید" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:157, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:190 msgid "labels.create" msgstr "ایجاد" -#: src/app/main/ui/dashboard/team_form.cljs, -#: src/app/main/ui/dashboard/team_form.cljs +#: src/app/main/ui/dashboard/team_form.cljs:101, src/app/main/ui/dashboard/team_form.cljs:121 msgid "labels.create-team" msgstr "ایجاد تیم جدید" -#: src/app/main/ui/dashboard/team_form.cljs +#: src/app/main/ui/dashboard/team_form.cljs:113 msgid "labels.create-team.placeholder" msgstr "نام تیم جدید را وارد کنید" +#, unused msgid "labels.custom-fonts" msgstr "فونت‌های سفارشی" -#: src/app/main/ui/settings/sidebar.cljs +#: src/app/main/ui/settings/sidebar.cljs:73 msgid "labels.dashboard" msgstr "داشبورد" -#: src/app/main/ui/dashboard/project_menu.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:306, src/app/main/ui/dashboard/fonts.cljs:255, src/app/main/ui/dashboard/fonts.cljs:332, src/app/main/ui/dashboard/fonts.cljs:346, src/app/main/ui/dashboard/project_menu.cljs:115, src/app/main/ui/dashboard/team.cljs:904, src/app/main/ui/settings/access_tokens.cljs:209, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:209 msgid "labels.delete" msgstr "حذف" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:357 msgid "labels.delete-comment" msgstr "حذف نظر" -#: src/app/main/ui/comments.cljs -#, fuzzy +#: src/app/main/ui/comments.cljs:354 msgid "labels.delete-comment-thread" msgstr "حذف موضوع" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:648 msgid "labels.delete-invitation" msgstr "حذف دعوت" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:262 msgid "labels.delete-multi-files" msgstr "حذف فایل‌های %s" -#: src/app/main/ui/dashboard/projects.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs, -#: src/app/main/ui/dashboard/files.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:28, src/app/main/ui/dashboard/files.cljs:72, src/app/main/ui/dashboard/files.cljs:156, src/app/main/ui/dashboard/projects.cljs:220, src/app/main/ui/dashboard/projects.cljs:224, src/app/main/ui/dashboard/sidebar.cljs:791 msgid "labels.drafts" msgstr "پیش‌نویس‌ها" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:350, src/app/main/ui/dashboard/fonts.cljs:252, src/app/main/ui/dashboard/team.cljs:902, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:205 msgid "labels.edit" msgstr "ویرایش" +#, unused msgid "labels.edit-file" msgstr "ویرایش فایل" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:118, src/app/main/ui/dashboard/team.cljs:279, src/app/main/ui/dashboard/team.cljs:520, src/app/main/ui/dashboard/team.cljs:553, src/app/main/ui/onboarding/team_choice.cljs:66 msgid "labels.editor" msgstr "ویرایشگر" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:661 msgid "labels.expired-invitation" msgstr "منقضی شده" +#: src/app/main/ui/export.cljs:173 msgid "labels.export" msgstr "اکسپورت" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:51 msgid "labels.feedback-disabled" msgstr "بازخورد غیرفعال شد" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:42 msgid "labels.feedback-sent" msgstr "بازخورد ارسال شد" +#: src/app/main/ui/dashboard/fonts.cljs:412 msgid "labels.font-family" msgstr "خانواده فونت" +#, unused msgid "labels.font-providers" msgstr "ارائه‌دهندگان فونت" +#: src/app/main/ui/dashboard/fonts.cljs:413 msgid "labels.font-variants" msgstr "استایل‌ها" +#: src/app/main/ui/dashboard/fonts.cljs:52, src/app/main/ui/dashboard/sidebar.cljs:811 msgid "labels.fonts" msgstr "فونت‌ها" -#: src/app/main/ui/dashboard/sidebar.cljs -#, fuzzy +#: src/app/main/ui/dashboard/sidebar.cljs:1015, src/app/main/ui/workspace/main_menu.cljs:142 msgid "labels.github-repo" msgstr "مخزن Github" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/settings/sidebar.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:1032, src/app/main/ui/settings/sidebar.cljs:113, src/app/main/ui/workspace/main_menu.cljs:171 msgid "labels.give-feedback" msgstr "بازخورد بده" +#: src/app/main/ui/auth/recovery_request.cljs:110, src/app/main/ui/auth/register.cljs:285, src/app/main/ui/viewer/login.cljs:117 msgid "labels.go-back" msgstr "برگرد" -#: src/app/main/ui/dashboard/sidebar.cljs -#, fuzzy +#: src/app/main/ui/dashboard/sidebar.cljs:978, src/app/main/ui/workspace/main_menu.cljs:102 msgid "labels.help-center" msgstr "مرکز کمک" -#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs -#, fuzzy +#: src/app/main/ui/viewer/comments.cljs:103, src/app/main/ui/workspace/comments.cljs:67 msgid "labels.hide-resolved-comments" msgstr "پنهان کردن نظرات حل شده" +#: src/app/main/ui/dashboard/fonts.cljs:410 msgid "labels.installed-fonts" msgstr "فونت‌های نصب‌شده" -#: src/app/main/ui/static.cljs -#, fuzzy +#: src/app/main/ui/static.cljs:144 msgid "labels.internal-error.desc-message" msgstr "" "اتفاق بدی افتاد. لطفاً عملیات را دوباره امتحان کنید و اگر مشکل همچنان ادامه " "داشت، با پشتیبانی تماس بگیرید." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:143 msgid "labels.internal-error.main-message" msgstr "خطای داخلی" -#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:516, src/app/main/ui/dashboard/team.cljs:89, src/app/main/ui/dashboard/team.cljs:97, src/app/main/ui/dashboard/team.cljs:708 msgid "labels.invitations" msgstr "دعوت‌نامه‌ها" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:51 msgid "labels.language" msgstr "زبان" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:1008, src/app/main/ui/workspace/main_menu.cljs:134 msgid "labels.libraries-and-templates" msgstr "کتابخانه‌ها و قالب‌ها" +#: src/app/main/ui/viewer/header.cljs:203 msgid "labels.log-or-sign" msgstr "ورود یا ثبت نام" -#: src/app/main/ui/settings.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:1040 msgid "labels.logout" msgstr "خروج" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/team.cljs:468 msgid "labels.member" msgstr "عضو" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:510, src/app/main/ui/dashboard/team.cljs:87, src/app/main/ui/dashboard/team.cljs:95 msgid "labels.members" msgstr "اعضا" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:96 msgid "labels.new-password" msgstr "رمزعبور جدید" -#: src/app/main/ui/workspace/comments.cljs, -#: src/app/main/ui/dashboard/comments.cljs +#: src/app/main/ui/dashboard/comments.cljs:128, src/app/main/ui/workspace/comments.cljs:161 msgid "labels.no-comments-available" msgstr "هیچ اعلان نظر معلقی ندارید" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:694 msgid "labels.no-invitations" msgstr "هیچ دعوتنامه‌ای وجود ندارد." -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:696 +#, markdown msgid "labels.no-invitations-hint" msgstr "دکمه \"دعوت به تیم\" را فشار دهید تا اعضای بیشتری را به این تیم دعوت کنید." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:50 msgid "labels.not-found.desc-message" msgstr "ممکن است این صفحه وجود نداشته باشد یا شما مجوز دسترسی به آن را نداشته باشید." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:49 msgid "labels.not-found.main-message" msgstr "اوپس!" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/projects.cljs:239, src/app/main/ui/dashboard/team.cljs:1095 msgid "labels.num-of-files" msgid_plural "labels.num-of-files" msgstr[0] "۱ فایل" msgstr[1] "%s فایل" +#: src/app/main/ui/viewer/thumbnails.cljs:80 msgid "labels.num-of-frames" msgid_plural "labels.num-of-frames" msgstr[0] "۱ برد" msgstr[1] "%s برد" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1090 msgid "labels.num-of-projects" msgid_plural "labels.num-of-projects" msgstr[0] "۱ پروژه" msgstr[1] "%s پروژه" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:89 msgid "labels.old-password" msgstr "رمزعبور قدیمی" #: src/app/main/ui/workspace/comments.cljs -#, fuzzy +#, unused msgid "labels.only-yours" msgstr "فقط برای تو" +#, unused msgid "labels.or" msgstr "یا" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:286, src/app/main/ui/dashboard/team.cljs:518, src/app/main/ui/dashboard/team.cljs:1076 msgid "labels.owner" msgstr "مالک" -#: src/app/main/ui/settings/sidebar.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/settings/sidebar.cljs:87 msgid "labels.password" msgstr "کلمه‌عبور" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:662 msgid "labels.pending-invitation" msgstr "در انتظار" -#: src/app/main/ui/settings/sidebar.cljs +#: src/app/main/ui/settings/profile.cljs:118, src/app/main/ui/settings/sidebar.cljs:82 msgid "labels.profile" msgstr "پروفایل" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:784 msgid "labels.projects" msgstr "پروژه‌ها" -#: src/app/main/ui/settings/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:998, src/app/main/ui/settings/sidebar.cljs:106, src/app/main/ui/workspace/main_menu.cljs:126 msgid "labels.release-notes" msgstr "یادداشت‌های انتشار" -#: src/app/main/ui/workspace/libraries.cljs, -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/workspace/libraries.cljs, src/app/main/ui/dashboard/team.cljs +#, unused msgid "labels.remove" msgstr "حذف" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:316 msgid "labels.remove-member" msgstr "حذف عضو" -#: src/app/main/ui/dashboard/sidebar.cljs, -#: src/app/main/ui/dashboard/project_menu.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:271, src/app/main/ui/dashboard/project_menu.cljs:85, src/app/main/ui/dashboard/sidebar.cljs:539, src/app/main/ui/workspace/sidebar/assets/groups.cljs:157 msgid "labels.rename" msgstr "تغییرنام" -#: src/app/main/ui/dashboard/team_form.cljs +#: src/app/main/ui/dashboard/team_form.cljs:99 msgid "labels.rename-team" msgstr "تغییر نام تیم" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:645 msgid "labels.resend-invitation" msgstr "فرستادن مجدد دعوتنامه" -#: src/app/main/ui/static.cljs, src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:61, src/app/main/ui/static.cljs:70, src/app/main/ui/static.cljs:148 msgid "labels.retry" msgstr "امتحان دوباره" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:469, src/app/main/ui/dashboard/team.cljs:709 msgid "labels.role" msgstr "نقش" +#: src/app/main/ui/dashboard/fonts.cljs:380, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:191 msgid "labels.save" msgstr "ذخیره" +#: src/app/main/ui/dashboard/fonts.cljs:415 msgid "labels.search-font" msgstr "جستجوی فونت" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:82 msgid "labels.send" msgstr "ارسال" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:82 msgid "labels.sending" msgstr "درحال ارسال…" -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:68 msgid "labels.service-unavailable.desc-message" msgstr "ما در حال تعمیر و نگهداری برنامه‌ریزی شده سیستم‌های خود هستیم." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:67 msgid "labels.service-unavailable.main-message" msgstr "سرویس در دسترس نیست" -#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:530, src/app/main/ui/dashboard/team.cljs:88, src/app/main/ui/dashboard/team.cljs:102, src/app/main/ui/settings/options.cljs:84, src/app/main/ui/settings/sidebar.cljs:93 msgid "labels.settings" msgstr "تنظیمات" +#, unused msgid "labels.share-prototype" msgstr "به اشتراک گذاشتن پروتوتایپ" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:800 msgid "labels.shared-libraries" msgstr "کتابخانه‌های مشترک" -#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/comments.cljs:82, src/app/main/ui/workspace/comments.cljs:55, src/app/main/ui/workspace/comments.cljs:135 msgid "labels.show-all-comments" msgstr "نمایش همه نظرات" +#: src/app/main/ui/viewer/comments.cljs:115 msgid "labels.show-comments-list" msgstr "نمایش لیست نظرات" -#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs -#, fuzzy +#: src/app/main/ui/viewer/comments.cljs:91, src/app/main/ui/workspace/comments.cljs:61, src/app/main/ui/workspace/comments.cljs:136 msgid "labels.show-your-comments" msgstr "فقط نظرات خودتان را نشان دهید" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:710 msgid "labels.status" msgstr "وضعیت" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:992, src/app/main/ui/workspace/main_menu.cljs:118 msgid "labels.tutorials" msgstr "آموزش‌ها" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:103 msgid "labels.update" msgstr "به‌روزرسانی" -#: src/app/main/ui/dashboard/team_form.cljs -#, fuzzy +#: src/app/main/ui/dashboard/team_form.cljs:120 msgid "labels.update-team" msgstr "بروزرسانی تیم" +#: src/app/main/ui/dashboard/fonts.cljs:241 msgid "labels.upload" msgstr "بارگذاری" +#: src/app/main/ui/dashboard/fonts.cljs:169 msgid "labels.upload-custom-fonts" msgstr "آپلود فونت‌های سفارشی" +#: src/app/main/ui/dashboard/fonts.cljs:240 msgid "labels.uploading" msgstr "درحال بارگذاری…" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:123, src/app/main/ui/dashboard/team.cljs:282, src/app/main/ui/dashboard/team.cljs:521 msgid "labels.viewer" msgstr "بیننده" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:194 msgid "labels.write-new-comment" msgstr "نظر جدید بنویس" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/team.cljs:237 msgid "labels.you" msgstr "(شما)" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:968 msgid "labels.your-account" msgstr "حساب شما" -#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs +#: src/app/main/data/media.cljs:49, src/app/main/data/workspace/media.cljs:223, src/app/main/data/workspace/media.cljs:453 msgid "media.loading" msgstr "در حال بارگیری تصویر…" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs -#, fuzzy +#: src/app/main/data/common.cljs:113 msgid "modals.add-shared-confirm.accept" msgstr "افزودن به عنوان کتابخانه مشترک" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/data/common.cljs:111 msgid "modals.add-shared-confirm.hint" msgstr "" "پس از افزودن به‌عنوان کتابخانه مشترک، دارایی‌های این کتابخانۀ فایل برای " "استفاده در بین بقیه فایل‌های شما در دسترس خواهد بود." -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/data/common.cljs:110 msgid "modals.add-shared-confirm.message" msgstr "افزودن «%s» به عنوان کتابخانه مشترک" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:127 msgid "modals.change-email.confirm-email" msgstr "تایید ایمیل جدید" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:114 msgid "modals.change-email.info" msgstr "برای تأیید هویت شما یک ایمیل به ایمیل فعلی شما \"%s\" ارسال می‌کنیم." -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:119 msgid "modals.change-email.new-email" msgstr "ایمیل جدید" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:136 msgid "modals.change-email.submit" msgstr "تغییر ایمیل" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:107 msgid "modals.change-email.title" msgstr "ایمیل خود را تغییر دهید" -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:59 msgid "modals.delete-account.cancel" msgstr "لغو و نگه‌داشتن حساب من" -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:64 msgid "modals.delete-account.confirm" msgstr "بله، حسابم رو حذف کن" -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:53 msgid "modals.delete-account.info" msgstr "" "با حذف کردن حساب خود، تمام پروژه‌ها و آرشیوهای فعلی خود را از دست خواهید " "داد." -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:46 msgid "modals.delete-account.title" msgstr "آیا مطمئن هستید که می‌خواهید حساب خود را حذف کنید؟" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:298 msgid "modals.delete-comment-thread.accept" msgstr "حذف مکالمه" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:297 msgid "modals.delete-comment-thread.message" msgstr "" "آیا مطمئنید که می‌خواهید این مکالمه را حذف کنید؟ تمامی نظرات این تاپیک حذف " "خواهد شد." -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:296 msgid "modals.delete-comment-thread.title" msgstr "حذف مکالمه" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:123 msgid "modals.delete-file-confirm.accept" msgstr "حذف فایل" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:122 msgid "modals.delete-file-confirm.message" msgstr "آیا مطمئن هستید که می‌خواهید این فایل را حذف کنید؟" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:121 msgid "modals.delete-file-confirm.title" msgstr "در حال حذف فایل" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:117 msgid "modals.delete-file-multi-confirm.accept" msgstr "حذف فایل‌ها" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:116 msgid "modals.delete-file-multi-confirm.message" msgstr "آیا مطمئن هستید که می‌خواهید فایل‌های %s را حذف کنید؟" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:115 msgid "modals.delete-file-multi-confirm.title" msgstr "در حال حذف %s فایل‌ها" +#: src/app/main/ui/dashboard/fonts.cljs:345 msgid "modals.delete-font-variant.message" msgstr "" "آیا مطمئن هستید که می‌خواهید این سبک فونت را حذف کنید؟ اگر در یک فایل " "استفاده شود، بارگیری نمی‌شود." +#: src/app/main/ui/dashboard/fonts.cljs:344 msgid "modals.delete-font-variant.title" msgstr "درحال حذف استایل فونت" +#: src/app/main/ui/dashboard/fonts.cljs:331 msgid "modals.delete-font.message" msgstr "" "آیا مطمئن هستید که می‌خواهید این فونت را حذف کنید؟ اگر در یک فایل استفاده " "شود، بارگیری نمی‌شود." +#: src/app/main/ui/dashboard/fonts.cljs:330 msgid "modals.delete-font.title" msgstr "درحال حذف فونت" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs +#: src/app/main/ui/workspace/context_menu.cljs:522, src/app/main/ui/workspace/sidebar/sitemap.cljs:45 msgid "modals.delete-page.body" msgstr "آیا مطمئن هستید که می‌خواهید این صفحه را حذف کنید؟" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs +#: src/app/main/ui/workspace/context_menu.cljs:521, src/app/main/ui/workspace/sidebar/sitemap.cljs:44 msgid "modals.delete-page.title" msgstr "حذف صفحه" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:69 msgid "modals.delete-project-confirm.accept" msgstr "حذف پروژه" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:68 msgid "modals.delete-project-confirm.message" msgstr "آیا مطمئن هستید که می‌خواهید این پروژه را حذف کنید؟" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:67 msgid "modals.delete-project-confirm.title" msgstr "حذف پروژه" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:51 msgid "modals.delete-shared-confirm.accept" msgid_plural "modals.delete-shared-confirm.accept" msgstr[0] "حذف فایل" msgstr[1] "حذف فایل‌ها" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:46 msgid "modals.delete-shared-confirm.message" msgid_plural "modals.delete-shared-confirm.message" msgstr[0] "آیا مطمئن هستید که می‌خواهید این فایل را حذف کنید؟" msgstr[1] "آیا مطمئن هستید که می‌خواهید این فایل‌ها را حذف کنید؟" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:41 msgid "modals.delete-shared-confirm.title" msgid_plural "modals.delete-shared-confirm.title" msgstr[0] "درحال حذف فایل" msgstr[1] "درحال حذف فایل‌ها" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:435 msgid "modals.delete-team-confirm.accept" msgstr "حذف تیم" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:434 msgid "modals.delete-team-confirm.message" msgstr "" "آیا مطمئنید که می‌خواهید این تیم را حذف کنید؟ تمام پروژه‌ها و فایل‌های " "مرتبط با تیم به طور دائم حذف خواهند شد." -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:433 msgid "modals.delete-team-confirm.title" msgstr "درحال حذف تیم" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:427 msgid "modals.delete-team-member-confirm.accept" msgstr "حذف عضو" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:426 msgid "modals.delete-team-member-confirm.message" msgstr "آیا مطمئن هستید که می‌خواهید این عضو را از تیم حذف کنید؟" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:425 msgid "modals.delete-team-member-confirm.title" msgstr "حذف عضو تیم" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:218 msgid "modals.invite-member-confirm.accept" msgstr "ارسال دعوت‌نامه" +#: src/app/main/ui/dashboard/team.cljs:213, src/app/main/ui/onboarding/team_choice.cljs:156 msgid "modals.invite-member.emails" msgstr "ایمیل‌ها، با کاما از هم جدا شده‌اند" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:190 msgid "modals.invite-team-member.title" msgstr "دعوت اعضا به تیم" -#: src/app/main/ui/dashboard/sidebar.cljs -#, fuzzy +#: src/app/main/ui/dashboard/sidebar.cljs:423, src/app/main/ui/dashboard/team.cljs:393 msgid "modals.leave-and-close-confirm.hint" msgstr "" "از آنجایی که شما تنها عضو این تیم هستید، تیم به همراه پروژه‌ها و فایل‌هایش " "حذف خواهد شد." -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:422, src/app/main/ui/dashboard/team.cljs:392 msgid "modals.leave-and-close-confirm.message" msgstr "آیا مطمئنید که می‌خواهید تیم %s را ترک کنید؟" -#, fuzzy +#: src/app/main/ui/dashboard/change_owner.cljs:59 msgid "modals.leave-and-reassign.forbidden" msgstr "" "اگر عضو دیگری برای ارتقا به مالک وجود نداشته باشد، نمی‌توانید تیم را ترک " "کنید. شاید بخواهید تیم را حذف کنید." -#: src/app/main/ui/dashboard/sidebar.cljs -#, fuzzy +#: src/app/main/ui/dashboard/change_owner.cljs:55 msgid "modals.leave-and-reassign.hint1" msgstr "" "شما مالک این تیم هستید. لطفاً قبل از ترک تیم، عضو دیگری را برای ارتقاء به " "مالک انتخاب کنید." -#: src/app/main/ui/dashboard/sidebar.cljs -#, fuzzy +#: src/app/main/ui/dashboard/change_owner.cljs:34 msgid "modals.leave-and-reassign.select-member-to-promote" msgstr "انتخاب یک عضو برای ارتقا" -#: src/app/main/ui/dashboard/sidebar.cljs -#, fuzzy +#: src/app/main/ui/dashboard/change_owner.cljs:49 msgid "modals.leave-and-reassign.title" msgstr "قبل از رفتن" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:402, src/app/main/ui/dashboard/sidebar.cljs:424, src/app/main/ui/dashboard/team.cljs:394, src/app/main/ui/dashboard/team.cljs:416 msgid "modals.leave-confirm.accept" msgstr "خروج از تیم" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:401, src/app/main/ui/dashboard/team.cljs:415 msgid "modals.leave-confirm.message" msgstr "آیا مطمئنید که می‌خواهید این تیم را ترک کنید؟" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:400, src/app/main/ui/dashboard/sidebar.cljs:421, src/app/main/ui/dashboard/team.cljs:391, src/app/main/ui/dashboard/team.cljs:414 msgid "modals.leave-confirm.title" msgstr "درحال ترک تیم" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:340 msgid "modals.promote-owner-confirm.accept" msgstr "انتقال مالکیت" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:339 msgid "modals.promote-owner-confirm.hint" msgstr "" "اگر مالکیت را منتقل کنید، نقش خود را به مدیر تغییر می‌دهید و برخی از " "مجوزهای این تیم را از دست می‌دهید. " -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:338 msgid "modals.promote-owner-confirm.message" msgstr "" "شما مالک فعلی این تیم هستید. آیا مطمئنید که می‌خواهید %s را مالک جدید تیم " "کنید؟" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:337 msgid "modals.promote-owner-confirm.title" msgstr "مالک جدید تیم" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "modals.remove-shared-confirm.accept" msgstr "حذف به عنوان کتابخانه مشترک" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs -#, fuzzy +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "modals.remove-shared-confirm.hint" msgstr "" "پس از حذف به‌عنوان کتابخانه مشترک، کتابخانه فایل این فایل برای استفاده در " "بین بقیه فایل‌های شما در دسترس نخواهد بود." -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:380 msgid "modals.update-remote-component.accept" msgstr "به‌روزرسانی" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:379 msgid "modals.update-remote-component.cancel" msgstr "لغو" -#: src/app/main/ui/settings/profile.cljs, src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:29, src/app/main/ui/settings/profile.cljs:35 msgid "notifications.profile-saved" msgstr "پروفایل با موفقیت ذخیره شد!" -#, fuzzy +#, unused msgid "onboarding-v2.before-start.desc2" msgstr "" "اطلاعات دقیق در مورد نحوه استفاده از Penpot. از نمونه‌سازی تا سازماندهی یا " "به اشتراک‌گذاری طرح‌ها." -#, fuzzy +#, unused msgid "onboarding-v2.before-start.desc3" msgstr "" "شما می‌توانید آموزش‌های ما و آموزش‌های ساخته شده توسط انجمن ما را تماشا " "کنید." +#: src/app/main/ui/onboarding/team_choice.cljs:215 msgid "onboarding.choice.team-up.create-team-desc" msgstr "پس از نامگذاری تیم خود، می‌توانید افراد را برای پیوستن دعوت کنید." +#, unused msgid "onboarding.welcome.alt" msgstr "Penpot" -#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs +#: src/app/main/ui/viewer/inspect/exports.cljs:147, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:631, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:137, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:148, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:188, src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:158, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:399, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:410, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:430, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:441, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:458, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:472, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:309, src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:183, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:373, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:389, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:245, src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:172 msgid "settings.multiple" msgstr "مخلوط" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:420 msgid "shortcut-section.dashboard" msgstr "داشبورد" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:423 msgid "shortcut-section.viewer" msgstr "بیننده" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:57 msgid "shortcut-subsection.edit" msgstr "ویرایش" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:60 msgid "shortcut-subsection.main-menu" msgstr "منوی اصلی" -#, fuzzy +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:65 msgid "shortcut-subsection.panels" msgstr "پنل‌ها" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:66 msgid "shortcut-subsection.path-editor" msgstr "مسیرها" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:67 msgid "shortcut-subsection.shape" msgstr "شکل‌ها" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:69 msgid "shortcut-subsection.tools" msgstr "ابزار" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:70 msgid "shortcut-subsection.zoom-viewer" msgstr "بزرگنمایی" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:71 msgid "shortcut-subsection.zoom-workspace" msgstr "بزرگنمایی" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:72 msgid "shortcuts.add-comment" msgstr "نظرات" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:73 msgid "shortcuts.add-node" msgstr "افزودن گره" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:74 msgid "shortcuts.align-bottom" msgstr "تراز به پایین" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:93 msgid "shortcuts.copy" msgstr "کپی" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:98 msgid "shortcuts.delete" msgstr "حذف" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:101 msgid "shortcuts.draw-curve" msgstr "منحنی" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:102 msgid "shortcuts.draw-ellipse" msgstr "بیضی" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:103 msgid "shortcuts.draw-frame" msgstr "آرت‌بورد" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:105 msgid "shortcuts.draw-path" msgstr "مسیر" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:106 msgid "shortcuts.draw-rect" msgstr "مستطیل" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:107 msgid "shortcuts.draw-text" msgstr "متن" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:109 msgid "shortcuts.escape" msgstr "لغو" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:112 msgid "shortcuts.flip-horizontal" msgstr "حرکت افقی" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:113 msgid "shortcuts.flip-vertical" msgstr "حرکت عمودی" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:118 msgid "shortcuts.go-to-search" msgstr "جستجو" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:119 msgid "shortcuts.group" msgstr "گروه" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:133 msgid "shortcuts.mask" msgstr "ماسک" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:135 msgid "shortcuts.move" msgstr "انتقال" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:163 msgid "shortcuts.paste" msgstr "چسباندن" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:207 msgid "shortcuts.undo" msgstr "واگرد" -#, fuzzy +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:208 msgid "shortcuts.ungroup" msgstr "حذف گروه" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:209 msgid "shortcuts.unmask" msgstr "برداشتن ماسک" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:210 msgid "shortcuts.v-distribute" msgstr "توزیع به صورت عمودی" -#: src/app/main/ui/dashboard/files.cljs -#, fuzzy +#: src/app/main/ui/dashboard/files.cljs:158 msgid "title.dashboard.files" msgstr "%s - Penpot" -#: src/app/main/ui/dashboard/fonts.cljs -#, fuzzy +#: src/app/main/ui/dashboard/fonts.cljs:36 msgid "title.dashboard.fonts" msgstr "فونت‌ها - %s - Penpot" -#: src/app/main/ui/dashboard/projects.cljs -#, fuzzy +#: src/app/main/ui/dashboard/projects.cljs:320 msgid "title.dashboard.projects" msgstr "پروژه‌ها - %s - Penpot" -#: src/app/main/ui/dashboard/search.cljs -#, fuzzy +#: src/app/main/ui/dashboard/search.cljs:32 msgid "title.dashboard.search" msgstr "جستجو - %s - Penpot" -#: src/app/main/ui/dashboard/libraries.cljs +#: src/app/main/ui/dashboard/libraries.cljs:44 msgid "title.dashboard.shared-libraries" msgstr "کتابخانه‌های مشترک - %s - پن‌پات" -#: src/app/main/ui/auth/verify_token.cljs, src/app/main/ui/auth.cljs +#: src/app/main/ui/auth/verify_token.cljs:68, src/app/main/ui/auth.cljs:54 msgid "title.default" msgstr "Penpot - طراحی آزاد برای تیم‌ها" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:110 msgid "title.settings.feedback" msgstr "بازخورد بدهید - Penpot" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:80 msgid "title.settings.options" msgstr "تنظیمات - Penpot" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:115 msgid "title.settings.password" msgstr "رمزعبور - Penpot" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:115 msgid "title.settings.profile" msgstr "پروفایل - پن‌پات" -#: src/app/main/ui/dashboard/team.cljs -#, fuzzy +#: src/app/main/ui/dashboard/team.cljs:727 msgid "title.team-invitations" msgstr "دعوت‌نامه‌ها - %s - Penpot" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:493 msgid "title.team-members" msgstr "اعضا - %s - پن‌پات" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1036 msgid "title.team-settings" msgstr "تنظیمات - %s - پن‌پات" -#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs +#: src/app/main/ui/viewer.cljs:419 msgid "title.viewer" msgstr "%s - حالت مشاهده - پن‌پات" -#: src/app/main/ui/workspace.cljs -#, fuzzy +#: src/app/main/ui/workspace.cljs:190 msgid "title.workspace" msgstr "%s - Penpot" +#: src/app/main/ui.cljs:144 msgid "viewer.breaking-change.description" msgstr "" "این لینک قابل اشتراک‌گذاری دیگر معتبر نیست. یک مورد جدید ایجاد کنید یا از " "مالک یک مورد جدید بخواهید." +#: src/app/main/ui.cljs:143 msgid "viewer.breaking-change.message" msgstr "متاسفم!" -#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs +#: src/app/main/ui/viewer.cljs:569 msgid "viewer.empty-state" msgstr "هیچ آرت‌بوردی در صفحه یافت نشد." -#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs +#: src/app/main/ui/viewer.cljs:574 msgid "viewer.frame-not-found" msgstr "آرت‌بورد یافت نشد." +#: src/app/main/ui/viewer/header.cljs:336 msgid "viewer.header.comments-section" msgstr "نظرات (%s)" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/interactions.cljs:292 msgid "viewer.header.dont-show-interactions" msgstr "تعاملات را نشان ندهید" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/header.cljs:188 msgid "viewer.header.fullscreen" msgstr "تمام صفحه" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/interactions.cljs:282 msgid "viewer.header.interactions" msgstr "تعاملات" +#: src/app/main/ui/viewer/header.cljs:327 msgid "viewer.header.interactions-section" msgstr "تعاملات (%s)" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/share_link.cljs:187 msgid "viewer.header.share.copy-link" msgstr "کپی کردن لینک" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/interactions.cljs:300 msgid "viewer.header.show-interactions" msgstr "نشان دادن تعاملات" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/interactions.cljs:311 msgid "viewer.header.show-interactions-on-click" msgstr "نمایش تعاملات در کلیک" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/header.cljs:231 msgid "viewer.header.sitemap" msgstr "نقشه سایت" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:58 msgid "workspace.align.hcenter" msgstr "تراز کردن مرکز افقی (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:74 msgid "workspace.align.hdistribute" msgstr "توزیع فاصله افقی (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:50 msgid "workspace.align.hleft" msgstr "تراز به چپ (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:66 msgid "workspace.align.hright" msgstr "تراز کردن به راست (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:99 msgid "workspace.align.vbottom" msgstr "تراز کردن پایین (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:91 msgid "workspace.align.vcenter" msgstr "تراز کردن مرکز عمودی (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:104 msgid "workspace.align.vdistribute" msgstr "توزیع فاصله عمودی (%s)" #: src/app/main/ui/workspace/sidebar/assets.cljs +#, unused msgid "workspace.assets.assets" msgstr "دارایی‌ها" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets.cljs:134 msgid "workspace.assets.box-filter-all" msgstr "تمام دارایی‌ها" -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/dashboard/grid.cljs:130, src/app/main/ui/dashboard/grid.cljs:162, src/app/main/ui/workspace/sidebar/assets/colors.cljs:485, src/app/main/ui/workspace/sidebar/assets.cljs:150 msgid "workspace.assets.colors" msgstr "رنگ‌ها" -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/dashboard/grid.cljs:126, src/app/main/ui/dashboard/grid.cljs:141, src/app/main/ui/workspace/sidebar/assets/components.cljs:513, src/app/main/ui/workspace/sidebar/assets.cljs:139 msgid "workspace.assets.components" msgstr "کامپوننت‌ها" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:131 msgid "workspace.assets.create-group" msgstr "ایجاد یک گروه" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:142 msgid "workspace.assets.create-group-hint" msgstr "آیتم‌های شما به طور خودکار به عنوان \"نام گروه / نام آیتم\" نامگذاری می‌شوند" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/context_menu.cljs:529, src/app/main/ui/workspace/sidebar/assets/colors.cljs:251, src/app/main/ui/workspace/sidebar/assets/components.cljs:577, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:424, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:443 msgid "workspace.assets.delete" msgstr "حذف" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/context_menu.cljs:534, src/app/main/ui/workspace/sidebar/assets/components.cljs:572 msgid "workspace.assets.duplicate" msgstr "تکثیر" -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:247, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:439 msgid "workspace.assets.edit" msgstr "ویرایش" -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/graphics.cljs:384, src/app/main/ui/workspace/sidebar/assets.cljs:145 msgid "workspace.assets.graphics" msgstr "گرافیک" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:255, src/app/main/ui/workspace/sidebar/assets/components.cljs:581, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:428, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:448 msgid "workspace.assets.group" msgstr "گروه" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets.cljs:168 msgid "workspace.assets.libraries" msgstr "کتابخانه‌ها" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/context_menu.cljs:532, src/app/main/ui/workspace/sidebar/assets/colors.cljs:243, src/app/main/ui/workspace/sidebar/assets/components.cljs:566, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:421, src/app/main/ui/workspace/sidebar/assets/groups.cljs:63, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:434 msgid "workspace.assets.rename" msgstr "تغییرنام" -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/dashboard/grid.cljs:134, src/app/main/ui/dashboard/grid.cljs:189, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:397, src/app/main/ui/workspace/sidebar/assets.cljs:155 msgid "workspace.assets.typography" msgstr "تایپوگرافی‌ها" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused msgid "workspace.assets.typography.font-id" msgstr "فونت" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:505 msgid "workspace.assets.typography.font-size" msgstr "اندازه" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:501 msgid "workspace.assets.typography.font-variant-id" msgstr "گونه" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, -#: src/app/main/ui/handoff/attributes/text.cljs, -#: src/app/main/ui/handoff/attributes/text.cljs +#: src/app/main/ui/dashboard/grid.cljs:199, src/app/main/ui/workspace/libraries.cljs:461, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:464, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:489, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:596, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:615 msgid "workspace.assets.typography.sample" msgstr "مثال" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:517 msgid "workspace.assets.typography.text-transform" msgstr "تبدیل متن" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:66 msgid "workspace.assets.ungroup" msgstr "حذف گروه" +#, unused msgid "workspace.focus.selection" msgstr "انتخاب" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:367 msgid "workspace.header.menu.hide-textpalette" msgstr "پنهان کردن پالت فونت‌ها" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:731 msgid "workspace.header.menu.option.edit" msgstr "ویرایش" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:720 msgid "workspace.header.menu.option.file" msgstr "فایل" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:753 msgid "workspace.header.menu.option.preferences" msgstr "اولویت‌ها" -#: src/app/main/ui/workspace/header.cljs -#, fuzzy +#: src/app/main/ui/workspace/main_menu.cljs:742 msgid "workspace.header.menu.option.view" msgstr "بازدید" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:368 msgid "workspace.header.menu.show-textpalette" msgstr "نمایش پالت فونت‌ها" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/viewer/header.cljs:98, src/app/main/ui/workspace/right_header.cljs:120 msgid "workspace.header.reset-zoom" msgstr "بازنشانی" #: src/app/main/ui/workspace/header.cljs +#, unused msgid "workspace.header.save-error" msgstr "خطا در ذخیره" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/right_header.cljs:52 msgid "workspace.header.saved" msgstr "ذخیره‌شد" #: src/app/main/ui/workspace/header.cljs -#, fuzzy +#, unused msgid "workspace.header.saving" msgstr "ذخیره‌کردن" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/right_header.cljs:42, src/app/main/ui/workspace/right_header.cljs:47 msgid "workspace.header.unsaved" msgstr "تغییرات ذخیره نشده" #: src/app/main/ui/workspace/libraries.cljs +#, unused msgid "workspace.libraries.add" msgstr "افزودن" #: src/app/main/ui/workspace/colorpicker.cljs +#, unused msgid "workspace.libraries.colors.hsv" msgstr "HSV" #: src/app/main/ui/workspace/colorpicker.cljs +#, unused msgid "workspace.libraries.colors.rgba" msgstr "RGBA" -#: src/app/main/ui/workspace/colorpicker.cljs +#: src/app/main/ui/workspace/colorpicker.cljs:372 msgid "workspace.libraries.colors.save-color" msgstr "ذخیره استایل رنگ" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:526, src/app/main/ui/workspace/libraries.cljs:531 msgid "workspace.libraries.libraries" msgstr "کتابخانه‌ها" #: src/app/main/ui/workspace/libraries.cljs +#, unused msgid "workspace.libraries.library" msgstr "کتابخانه" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:380 msgid "workspace.libraries.no-libraries-need-sync" msgstr "هیچ کتابخانه مشترکی وجود ندارد که نیاز به به‌روزرسانی داشته باشد" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:296 msgid "workspace.libraries.no-shared-libraries-available" msgstr "هیچ کتابخانه مشترکی در دسترس نیست" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:260 msgid "workspace.libraries.search-shared-libraries" msgstr "جستجوی کتابخانه‌های مشترک" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:256 msgid "workspace.libraries.shared-libraries" msgstr "کتابخانه‌های مشترک" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:402 msgid "workspace.libraries.update" msgstr "به‌روزرسانی" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:536 msgid "workspace.libraries.updates" msgstr "به‌روزرسانی‌ها" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:86, src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:102 msgid "workspace.options.blur-options.title" msgstr "محو" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:600, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:605 msgid "workspace.options.component" msgstr "کامپوننت" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:163 msgid "workspace.options.constraints" msgstr "محدودیت‌ها" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:150 msgid "workspace.options.constraints.bottom" msgstr "پایین" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:141, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:152 msgid "workspace.options.constraints.center" msgstr "مرکز" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:138 msgid "workspace.options.constraints.left" msgstr "چپ" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:139 msgid "workspace.options.constraints.right" msgstr "راست" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:142, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:153 msgid "workspace.options.constraints.scale" msgstr "مقیاس" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:149 msgid "workspace.options.constraints.top" msgstr "بالا" -#: src/app/main/ui/workspace/sidebar/options.cljs +#: src/app/main/ui/workspace/sidebar/options.cljs:112 msgid "workspace.options.design" msgstr "طراحی" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs +#: src/app/main/ui/viewer/inspect/exports.cljs:139 msgid "workspace.options.export" msgstr "اکسپورت" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs +#: src/app/main/ui/viewer/inspect/exports.cljs:178, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:219 msgid "workspace.options.export.suffix" msgstr "پسوند" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs, src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/export.cljs:172, src/app/main/ui/export.cljs:241, src/app/main/ui/viewer/inspect/exports.cljs:194, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:236 msgid "workspace.options.exporting-object" msgstr "درحال گرفتن خروجی…" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:49, src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:174 msgid "workspace.options.fill" msgstr "پر" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:29 msgid "workspace.options.grid.auto" msgstr "خودکار" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:157 msgid "workspace.options.grid.column" msgstr "ستون‌ها" +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:196, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:237 msgid "workspace.options.grid.params.color" msgstr "رنگ" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused msgid "workspace.options.grid.params.columns" msgstr "ستون‌ها" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:246 msgid "workspace.options.grid.params.height" msgstr "ارتفاع" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:270 msgid "workspace.options.grid.params.margin" msgstr "لبه" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused msgid "workspace.options.grid.params.rows" msgstr "ردیف‌ها" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, fuzzy +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:216, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:290 msgid "workspace.options.grid.params.set-default" msgstr "تنظیم به عنوان پیش‌فرض" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused msgid "workspace.options.grid.params.size" msgstr "اندازه" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused msgid "workspace.options.grid.params.type" msgstr "نوع" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:231 msgid "workspace.options.grid.params.type.bottom" msgstr "پایین" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:229 msgid "workspace.options.grid.params.type.center" msgstr "مرکز" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:228 msgid "workspace.options.grid.params.type.left" msgstr "چپ" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:232 msgid "workspace.options.grid.params.type.right" msgstr "راست" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:227 msgid "workspace.options.grid.params.type.top" msgstr "بالا" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:247 msgid "workspace.options.grid.params.width" msgstr "پهنا" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:158 msgid "workspace.options.grid.row" msgstr "ردیف‌ها" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:156 msgid "workspace.options.grid.square" msgstr "مربع" +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:406 msgid "workspace.options.height" msgstr "بلندی" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:468 msgid "workspace.options.interaction-action" msgstr "عمل" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:614 msgid "workspace.options.interaction-animation" msgstr "انیمیشن" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -#, fuzzy +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:406 msgid "workspace.options.interaction-animation-dissolve" msgstr "حل کردن" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:405 msgid "workspace.options.interaction-animation-none" msgstr "هیچ‌یک" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:412 msgid "workspace.options.interaction-animation-push" msgstr "هل" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:407 msgid "workspace.options.interaction-animation-slide" msgstr "اسلاید" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:456 msgid "workspace.options.interaction-delay" msgstr "تاخیر" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:478 msgid "workspace.options.interaction-destination" msgstr "مقصد" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:661 msgid "workspace.options.interaction-duration" msgstr "مدت‌زمان" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:674 msgid "workspace.options.interaction-easing" msgstr "تسهیل" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:416 msgid "workspace.options.interaction-easing-ease" msgstr "سهولت" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:415 msgid "workspace.options.interaction-easing-linear" msgstr "خطی" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#, unused msgid "workspace.options.interaction-in" msgstr "در" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:458, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:459, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:464, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:663, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:665, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:669 msgid "workspace.options.interaction-ms" msgstr "م‌ث" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:51, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:53, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:55, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:380 msgid "workspace.options.interaction-none" msgstr "(تنظیم نشده)" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#, unused msgid "workspace.options.interaction-out" msgstr "خارج" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:397 msgid "workspace.options.interaction-pos-center" msgstr "مرکز" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:396 msgid "workspace.options.interaction-pos-manual" msgstr "دستی" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:524 msgid "workspace.options.interaction-position" msgstr "موقعیت" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:57, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:379, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:393, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:394 msgid "workspace.options.interaction-self" msgstr "خود" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:503 msgid "workspace.options.interaction-url" msgstr "URL" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:137 msgid "workspace.options.layer-options.blend-mode.color" msgstr "رنگ" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -#, fuzzy +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:124 msgid "workspace.options.layer-options.blend-mode.darken" msgstr "تاریک" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:133 msgid "workspace.options.layer-options.blend-mode.difference" msgstr "تفاوت" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -#, fuzzy +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:135 msgid "workspace.options.layer-options.blend-mode.hue" msgstr "رنگ" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -#, fuzzy +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:127 msgid "workspace.options.layer-options.blend-mode.lighten" msgstr "روشن کردن" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -#, fuzzy +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:138 msgid "workspace.options.layer-options.blend-mode.luminosity" msgstr "درخشندگی" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -#, fuzzy +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:125 msgid "workspace.options.layer-options.blend-mode.multiply" msgstr "تکثیر" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:123 msgid "workspace.options.layer-options.blend-mode.normal" msgstr "معمولی" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:136 msgid "workspace.options.layer-options.blend-mode.saturation" msgstr "اشباع" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:128 msgid "workspace.options.layer-options.blend-mode.screen" msgstr "صفحه نمایش" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#, unused msgid "workspace.options.layer-options.title" msgstr "لایه" -#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#, unused msgid "workspace.options.position" msgstr "موقعیت" -#: src/app/main/ui/workspace/sidebar/options.cljs +#: src/app/main/ui/workspace/sidebar/options.cljs:157 msgid "workspace.options.prototype" msgstr "پروتوتایپ" -#, fuzzy +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:469, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:481 msgid "workspace.options.radius" msgstr "گردی" +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:183 msgid "workspace.options.recent-fonts" msgstr "اخیر" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs, src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/export.cljs:284 msgid "workspace.options.retry" msgstr "تلاش دوباره" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:451 msgid "workspace.options.rotation" msgstr "چرخش" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -#, fuzzy +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:741 msgid "workspace.options.select-a-shape" msgstr "یک شکل، برد یا گروه را برای کشیدن اتصال به تابلوی دیگر انتخاب کنید." -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:40, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:198, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:200 msgid "workspace.options.shadow-options.blur" msgstr "محو" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:38, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:186 msgid "workspace.options.shadow-options.offsetx" msgstr "X" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:39, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:224 msgid "workspace.options.shadow-options.offsety" msgstr "Y" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:296 msgid "workspace.options.shadow-options.title" msgstr "سایه" -#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:162 msgid "workspace.options.size" msgstr "اندازه" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -#, fuzzy +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:43 msgid "workspace.options.stroke" msgstr "استروک" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:124 msgid "workspace.options.stroke-cap.none" msgstr "هیچ‌یک" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:132 msgid "workspace.options.stroke-cap.round" msgstr "گردی" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:133 msgid "workspace.options.stroke-cap.square" msgstr "مربع" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:87 msgid "workspace.options.stroke.center" msgstr "مرکز" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:105 msgid "workspace.options.stroke.dashed" msgstr "نقطه‌چین" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:104 msgid "workspace.options.stroke.dotted" msgstr "خط‌چین" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:88 msgid "workspace.options.stroke.inner" msgstr "داخل" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:106 msgid "workspace.options.stroke.mixed" msgstr "مخلوط" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:89 msgid "workspace.options.stroke.outer" msgstr "خارج" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:115 msgid "workspace.options.text-options.align-bottom" msgstr "تراز پایین" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:111 msgid "workspace.options.text-options.align-middle" msgstr "تراز وسط" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:107 msgid "workspace.options.text-options.align-top" msgstr "تراز بالا" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:82 msgid "workspace.options.text-options.direction-ltr" msgstr "LTR" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:87 msgid "workspace.options.text-options.direction-rtl" msgstr "RTL" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:149 msgid "workspace.options.text-options.grow-auto-height" msgstr "ارتفاع خودکار" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:145 msgid "workspace.options.text-options.grow-auto-width" msgstr "عرض خودکار" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:141 msgid "workspace.options.text-options.grow-fixed" msgstr "درست شد" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:381 msgid "workspace.options.text-options.letter-spacing" msgstr "فاصله بین حروف" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:364 msgid "workspace.options.text-options.line-height" msgstr "ارتفاع خط" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused msgid "workspace.options.text-options.lowercase" msgstr "حروف کوچک" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused msgid "workspace.options.text-options.none" msgstr "هیچ‌یک" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -#, fuzzy +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:51 msgid "workspace.options.text-options.text-align-center" msgstr "تراز در مرکز (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:47 msgid "workspace.options.text-options.text-align-left" msgstr "تراز چپ (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:55 msgid "workspace.options.text-options.text-align-right" msgstr "تراز راست (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:189 msgid "workspace.options.text-options.title" msgstr "متن" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -#, fuzzy +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:188 msgid "workspace.options.text-options.title-group" msgstr "متن گروهی" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:187 msgid "workspace.options.text-options.title-selection" msgstr "متن انتخابی" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:171 msgid "workspace.options.text-options.underline" msgstr "خط‌زیر (%s)" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused msgid "workspace.options.text-options.uppercase" msgstr "حروف بزرگ" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:745 msgid "workspace.options.use-play-button" msgstr "از دکمه پخش در هدر برای اجرای نمای پروتوتایپ استفاده کنید." +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:395 msgid "workspace.options.width" msgstr "پهنا" +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:427 msgid "workspace.options.x" msgstr "X" +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:438 msgid "workspace.options.y" msgstr "Y" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:167 msgid "workspace.path.actions.add-node" msgstr "افزودن گره (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:174 msgid "workspace.path.actions.delete-node" msgstr "حذف گره (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:182 msgid "workspace.path.actions.merge-nodes" msgstr "ادغام گره‌ها (%s)" -#, fuzzy +#: src/app/main/ui/workspace/viewport/path_actions.cljs:159 msgid "workspace.path.actions.move-nodes" msgstr "انتقال گره‌ها (%s)" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:193 msgid "workspace.shape.menu.back" msgstr "فرستادن به پشت" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:190 msgid "workspace.shape.menu.backward" msgstr "فرستادن به عقب" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:139 msgid "workspace.shape.menu.copy" msgstr "کپی" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:465 msgid "workspace.shape.menu.create-component" msgstr "ایجاد کامپوننت" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:142 msgid "workspace.shape.menu.cut" msgstr "برش" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:486 msgid "workspace.shape.menu.delete" msgstr "حذف" +#: src/app/main/ui/workspace/context_menu.cljs:335, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:75 msgid "workspace.shape.menu.difference" msgstr "تفاوت" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:148 msgid "workspace.shape.menu.duplicate" msgstr "تکرار" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:321 msgid "workspace.shape.menu.edit" msgstr "ویزایش" +#: src/app/main/ui/workspace/context_menu.cljs:348, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:89 msgid "workspace.shape.menu.flatten" msgstr "صاف" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:208 msgid "workspace.shape.menu.flip-horizontal" msgstr "حرکت افقی" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:204 msgid "workspace.shape.menu.flip-vertical" msgstr "چرخش عمودی" -#: src/app/main/ui/workspace/context_menu.cljs -#, fuzzy +#: src/app/main/ui/workspace/context_menu.cljs:394 msgid "workspace.shape.menu.flow-start" msgstr "شروع فلو" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:184 msgid "workspace.shape.menu.forward" msgstr "جلو بیاورید" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:187 msgid "workspace.shape.menu.front" msgstr "به جلو بیاورید" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#, unused msgid "workspace.shape.menu.go-main" msgstr "به فایل کامپوننت اصلی بروید" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:261 msgid "workspace.shape.menu.group" msgstr "گروه" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:363, src/app/main/ui/workspace/sidebar/layer_item.cljs:145 msgid "workspace.shape.menu.hide" msgstr "مخفی" +#: src/app/main/ui/workspace/context_menu.cljs:548, src/app/main/ui/workspace/main_menu.cljs:408 msgid "workspace.shape.menu.hide-ui" msgstr "نمایش/پنهان کردن رابط کاربری" -#, fuzzy +#: src/app/main/ui/workspace/context_menu.cljs:338 msgid "workspace.shape.menu.intersection" msgstr "تقاطع" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:371, src/app/main/ui/workspace/sidebar/layer_item.cljs:153 msgid "workspace.shape.menu.lock" msgstr "قفل" -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:266 msgid "workspace.shape.menu.mask" msgstr "ماسک" -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:145, src/app/main/ui/workspace/context_menu.cljs:545 msgid "workspace.shape.menu.paste" msgstr "چسباندن" +#: src/app/main/ui/workspace/context_menu.cljs:331 msgid "workspace.shape.menu.path" msgstr "مسیر" +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:439 msgid "workspace.shape.menu.restore-main" msgstr "بازیابی کامپوننت اصلی" -#: src/app/main/ui/workspace/context_menu.cljs -#, fuzzy +#: src/app/main/ui/workspace/context_menu.cljs:174 msgid "workspace.shape.menu.select-layer" msgstr "انتخاب لایه" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:360, src/app/main/ui/workspace/sidebar/layer_item.cljs:144 msgid "workspace.shape.menu.show" msgstr "نمایش" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs -#, fuzzy +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:424 msgid "workspace.shape.menu.show-in-assets" msgstr "نمایش در پنل دارایی" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:442, src/app/main/ui/workspace/sidebar/assets/components.cljs:586 msgid "workspace.shape.menu.show-main" msgstr "نمایش کامپوننت اصلی" +#: src/app/main/ui/workspace/context_menu.cljs:221 msgid "workspace.shape.menu.thumbnail-remove" msgstr "حذف تصویر کوچک" +#: src/app/main/ui/workspace/context_menu.cljs:223 msgid "workspace.shape.menu.thumbnail-set" msgstr "تنظیم بعنوان تصویر کوچک" +#: src/app/main/ui/workspace/context_menu.cljs:326 msgid "workspace.shape.menu.transform-to-path" msgstr "تبدیل به مسیر" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:257 msgid "workspace.shape.menu.ungroup" msgstr "حذف گروه" -#, fuzzy +#: src/app/main/ui/workspace/context_menu.cljs:332, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:70 msgid "workspace.shape.menu.union" msgstr "متحد" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:368, src/app/main/ui/workspace/sidebar/layer_item.cljs:152 msgid "workspace.shape.menu.unlock" msgstr "بازکردن قفل" -#: src/app/main/ui/workspace/context_menu.cljs -#, fuzzy +#: src/app/main/ui/workspace/context_menu.cljs:271 msgid "workspace.shape.menu.unmask" msgstr "حذف ماسک" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs +#, unused msgid "workspace.shape.menu.update-components-in-bulk" msgstr "به‌روزرسانی کامپوننت‌های اصلی" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:445 msgid "workspace.shape.menu.update-main" msgstr "به‌روزرسانی کامپوننت اصلی" +#: src/app/main/ui/workspace/sidebar/collapsable_button.cljs:26 msgid "workspace.sidebar.expand" msgstr "گسترش نوار کناری" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/right_header.cljs:231, src/app/main/ui/workspace/right_header.cljs:232 msgid "workspace.sidebar.history" msgstr "تاریخچه (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/sidebar/layers.cljs:522, src/app/main/ui/workspace/sidebar.cljs:100 msgid "workspace.sidebar.layers" msgstr "لایه‌ها" +#: src/app/main/ui/workspace/sidebar/layers.cljs:308, src/app/main/ui/workspace/sidebar/layers.cljs:380 msgid "workspace.sidebar.layers.components" msgstr "کامپوننت‌ها" +#: src/app/main/ui/workspace/sidebar/layers.cljs:305, src/app/main/ui/workspace/sidebar/layers.cljs:338 msgid "workspace.sidebar.layers.frames" msgstr "آرت‌بوردها" +#: src/app/main/ui/workspace/sidebar/layers.cljs:306, src/app/main/ui/workspace/sidebar/layers.cljs:352 msgid "workspace.sidebar.layers.groups" msgstr "گروه‌ها" +#: src/app/main/ui/workspace/sidebar/layers.cljs:310, src/app/main/ui/workspace/sidebar/layers.cljs:408 msgid "workspace.sidebar.layers.images" msgstr "تصاویر" +#: src/app/main/ui/workspace/sidebar/layers.cljs:307, src/app/main/ui/workspace/sidebar/layers.cljs:366 msgid "workspace.sidebar.layers.masks" msgstr "ماسک‌ها" +#: src/app/main/ui/workspace/sidebar/layers.cljs:289 msgid "workspace.sidebar.layers.search" msgstr "جستجوی لایه‌ها" +#: src/app/main/ui/workspace/sidebar/layers.cljs:311, src/app/main/ui/workspace/sidebar/layers.cljs:422 msgid "workspace.sidebar.layers.shapes" msgstr "شکل‌ها" +#: src/app/main/ui/workspace/sidebar/layers.cljs:309, src/app/main/ui/workspace/sidebar/layers.cljs:394 msgid "workspace.sidebar.layers.texts" msgstr "متن‌ها" -#: src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs, -#: src/app/main/ui/handoff/attributes/svg.cljs -#, fuzzy +#: src/app/main/ui/viewer/inspect/attributes/svg.cljs:56, src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs:91 msgid "workspace.sidebar.options.svg-attrs.title" msgstr "ویژگی‌های SVG ایمپورت شد" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs +#: src/app/main/ui/workspace/sidebar/sitemap.cljs:217 msgid "workspace.sidebar.sitemap" msgstr "صفحات" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/left_header.cljs:91 msgid "workspace.sitemap" msgstr "نقشه سایت" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/sidebar.cljs:120 msgid "workspace.toolbar.assets" msgstr "دارایی‌ها" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/palette.cljs:165, src/app/main/ui/workspace/palette.cljs:166 msgid "workspace.toolbar.color-palette" msgstr "پالت رنگ (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/right_header.cljs:220, src/app/main/ui/workspace/right_header.cljs:221 msgid "workspace.toolbar.comments" msgstr "نظرات (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:180, src/app/main/ui/workspace/top_toolbar.cljs:181 msgid "workspace.toolbar.curve" msgstr "منحنی (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:160, src/app/main/ui/workspace/top_toolbar.cljs:161 msgid "workspace.toolbar.ellipse" msgstr "بیضی (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:142, src/app/main/ui/workspace/top_toolbar.cljs:143 msgid "workspace.toolbar.frame" msgstr "آرت‌بورد (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:59, src/app/main/ui/workspace/top_toolbar.cljs:60 msgid "workspace.toolbar.image" msgstr "تصویر (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:132, src/app/main/ui/workspace/top_toolbar.cljs:133 msgid "workspace.toolbar.move" msgstr "انتقال (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:189, src/app/main/ui/workspace/top_toolbar.cljs:190 msgid "workspace.toolbar.path" msgstr "مسیر (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:151, src/app/main/ui/workspace/top_toolbar.cljs:152 msgid "workspace.toolbar.rect" msgstr "مستطیل (%s)" #: src/app/main/ui/workspace/left_toolbar.cljs +#, unused msgid "workspace.toolbar.shortcuts" msgstr "میانبرها (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:169, src/app/main/ui/workspace/top_toolbar.cljs:170 msgid "workspace.toolbar.text" msgstr "متن (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/palette.cljs:173, src/app/main/ui/workspace/palette.cljs:174 msgid "workspace.toolbar.text-palette" msgstr "تایپوگرافی‌ها (%s)" -#: src/app/main/ui/workspace/sidebar/history.cljs -#, fuzzy +#: src/app/main/ui/workspace/sidebar/history.cljs:342 msgid "workspace.undo.empty" msgstr "هیچ تاریخچه تغییری تاکنون وجود ندارد" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:147 msgid "workspace.undo.entry.delete" msgstr "%s حذف شد" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:146 msgid "workspace.undo.entry.modify" msgstr "اصلاح شد %s" +#: src/app/main/ui/workspace/sidebar/history.cljs:111 msgid "workspace.undo.entry.multiple.circle" msgstr "دایره‌ها" +#: src/app/main/ui/workspace/sidebar/history.cljs:112 msgid "workspace.undo.entry.multiple.color" msgstr "دارایی‌های رنگ" +#: src/app/main/ui/workspace/sidebar/history.cljs:113 msgid "workspace.undo.entry.multiple.component" msgstr "کامپوننت‌ها" +#: src/app/main/ui/workspace/sidebar/history.cljs:114 msgid "workspace.undo.entry.multiple.curve" msgstr "منحنی‌ها" +#: src/app/main/ui/workspace/sidebar/history.cljs:115 msgid "workspace.undo.entry.multiple.frame" msgstr "آرت‌بورد" +#: src/app/main/ui/workspace/sidebar/history.cljs:116 msgid "workspace.undo.entry.multiple.group" msgstr "گروه‌ها" +#: src/app/main/ui/workspace/sidebar/history.cljs:117 msgid "workspace.undo.entry.multiple.media" msgstr "دارایی‌های گرافیکی" +#: src/app/main/ui/workspace/sidebar/history.cljs:118 msgid "workspace.undo.entry.multiple.multiple" msgstr "اشیاء" +#: src/app/main/ui/workspace/sidebar/history.cljs:119 msgid "workspace.undo.entry.multiple.page" msgstr "صفحات" +#: src/app/main/ui/workspace/sidebar/history.cljs:120 msgid "workspace.undo.entry.multiple.path" msgstr "مسیرها" +#: src/app/main/ui/workspace/sidebar/history.cljs:121 msgid "workspace.undo.entry.multiple.rect" msgstr "مستطیل‌ها" +#: src/app/main/ui/workspace/sidebar/history.cljs:122 msgid "workspace.undo.entry.multiple.shape" msgstr "شکل‌ها" +#: src/app/main/ui/workspace/sidebar/history.cljs:123 msgid "workspace.undo.entry.multiple.text" msgstr "متن‌ها" +#: src/app/main/ui/workspace/sidebar/history.cljs:124 msgid "workspace.undo.entry.multiple.typography" msgstr "دارایی‌های تایپوگرافی" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:145 msgid "workspace.undo.entry.new" msgstr "%s جدید" +#: src/app/main/ui/workspace/sidebar/history.cljs:125 msgid "workspace.undo.entry.single.circle" msgstr "دایره" +#: src/app/main/ui/workspace/sidebar/history.cljs:126 msgid "workspace.undo.entry.single.color" msgstr "دارایی رنگ" +#: src/app/main/ui/workspace/sidebar/history.cljs:127 msgid "workspace.undo.entry.single.component" msgstr "کامپوننت" +#: src/app/main/ui/workspace/sidebar/history.cljs:128 msgid "workspace.undo.entry.single.curve" msgstr "منحنی" +#: src/app/main/ui/workspace/sidebar/history.cljs:129 msgid "workspace.undo.entry.single.frame" msgstr "آرت‌بورد" +#: src/app/main/ui/workspace/sidebar/history.cljs:130 msgid "workspace.undo.entry.single.group" msgstr "گروه" +#: src/app/main/ui/workspace/sidebar/history.cljs:131 msgid "workspace.undo.entry.single.image" msgstr "تصویر" +#: src/app/main/ui/workspace/sidebar/history.cljs:132 msgid "workspace.undo.entry.single.media" msgstr "دارایی گرافیکی" +#: src/app/main/ui/workspace/sidebar/history.cljs:133 msgid "workspace.undo.entry.single.multiple" msgstr "شیء" +#: src/app/main/ui/workspace/sidebar/history.cljs:134 msgid "workspace.undo.entry.single.page" msgstr "صفحه" +#: src/app/main/ui/workspace/sidebar/history.cljs:135 msgid "workspace.undo.entry.single.path" msgstr "مسیر" +#: src/app/main/ui/workspace/sidebar/history.cljs:136 msgid "workspace.undo.entry.single.rect" msgstr "مستطیل" +#: src/app/main/ui/workspace/sidebar/history.cljs:137 msgid "workspace.undo.entry.single.shape" msgstr "شکل" +#: src/app/main/ui/workspace/sidebar/history.cljs:138 msgid "workspace.undo.entry.single.text" msgstr "متن" +#: src/app/main/ui/workspace/sidebar/history.cljs:139 msgid "workspace.undo.entry.single.typography" msgstr "دارایی‌های تایپوگرافی" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:149 msgid "workspace.undo.entry.unknown" msgstr "عملیات بیش‌از %s" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:335 msgid "workspace.undo.title" msgstr "تاریخچه" -#: src/app/main/data/workspace/libraries.cljs +#: src/app/main/data/workspace/libraries.cljs:1094 msgid "workspace.updates.dismiss" msgstr "رد" -#: src/app/main/data/workspace/libraries.cljs +#: src/app/main/data/workspace/libraries.cljs:1090 msgid "workspace.updates.there-are-updates" msgstr "به‌روزرسانی در کتابخانه‌های مشترک وجود دارد" -#: src/app/main/data/workspace/libraries.cljs +#: src/app/main/data/workspace/libraries.cljs:1097 msgid "workspace.updates.update" msgstr "به‌روزرسانی" +#, unused msgid "workspace.viewport.click-to-close-path" msgstr "برای بستن مسیر کلیک کنید" diff --git a/frontend/translations/fin_FI.po b/frontend/translations/fin_FI.po index 48be1617c6..8b8513924b 100644 --- a/frontend/translations/fin_FI.po +++ b/frontend/translations/fin_FI.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "PO-Revision-Date: 2024-06-17 08:07+0000\n" "Last-Translator: Anonymous \n" -"Language-Team: Finnish \n" +"Language-Team: Finnish " +"\n" "Language: fin_FI\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" @@ -11,234 +11,256 @@ msgstr "" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 5.6-dev\n" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:151, src/app/main/ui/viewer/login.cljs:104 msgid "auth.already-have-account" msgstr "Onko sinulla jo käyttäjä?" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:299 msgid "auth.check-your-email" msgstr "" "Tarkista sähköpostisi ja paina vahvistuslinkkiä käyttääksesi " "Penpot-ohjelmaa." -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:78 msgid "auth.confirm-password" msgstr "Vahvista salasana" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/register.cljs:163 msgid "auth.create-demo-account" msgstr "Luo testikäyttäjä" #: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#, unused msgid "auth.create-demo-profile" msgstr "Haluatko vain kokeilla?" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/login.cljs:43 msgid "auth.demo-warning" msgstr "" "Tämä on DEMO versio, ÄLÄ KÄYTÄ oikeaan työhön, projektit tullaan määräajoin " "poistamaan." -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:189, src/app/main/ui/viewer/login.cljs:90 msgid "auth.forgot-password" msgstr "Unohditko salasanasi?" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:254 msgid "auth.fullname" msgstr "Koko nimi" -#: src/app/main/ui/auth/register.cljs -#, fuzzy +#: src/app/main/ui/auth/register.cljs:155, src/app/main/ui/viewer/login.cljs:107 msgid "auth.login-here" msgstr "Kirjaudu sisään" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:195 msgid "auth.login-submit" msgstr "Kirjaudu" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:222 msgid "auth.login-with-github-submit" msgstr "GitHub" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:228 msgid "auth.login-with-gitlab-submit" msgstr "GitLab" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:216 msgid "auth.login-with-google-submit" msgstr "Google" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:201 msgid "auth.login-with-ldap-submit" msgstr "LDAP" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:234, src/app/main/ui/auth/login.cljs:255 msgid "auth.login-with-oidc-submit" msgstr "OpenID" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:71 msgid "auth.new-password" msgstr "Syötä uusi salasana" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:42 msgid "auth.notifications.invalid-token-error" msgstr "Palautustunnus on virheellinen." -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:46 msgid "auth.notifications.password-changed-successfully" msgstr "Salasanan vaihto onnistui" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:57 msgid "auth.notifications.profile-not-verified" msgstr "Käyttäjäsi ei ole vahvistettu, vahvista se jatkaaksesi." -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:40 msgid "auth.notifications.recovery-token-sent" msgstr "Salasanan vaihtoon tarvittava linkki lähetetty sähköpostiisi." -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:47 msgid "auth.notifications.team-invitation-accepted" msgstr "Ryhmään liittyminen onnistui" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:179, src/app/main/ui/auth/register.cljs:115 msgid "auth.password" msgstr "Salasana" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:114 msgid "auth.password-length-hint" msgstr "Vähintään 8 merkkiä" +#: src/app/main/ui/auth.cljs:41 msgid "auth.privacy-policy" msgstr "Tietosuojaseloste" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:88 msgid "auth.recovery-request-submit" msgstr "Palauta salasana" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:101 msgid "auth.recovery-request-subtitle" msgstr "Lähetämme sinulle sähköpostin, jossa lukee ohjeet" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:100 msgid "auth.recovery-request-title" msgstr "Unohtuiko salasana?" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:82 msgid "auth.recovery-submit" msgstr "Vaihda salasanasi" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:298, src/app/main/ui/viewer/login.cljs:93 msgid "auth.register" msgstr "Ei käyttäjää?" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:302, src/app/main/ui/auth/register.cljs:121, src/app/main/ui/auth/register.cljs:263, src/app/main/ui/viewer/login.cljs:97 msgid "auth.register-submit" msgstr "Luo uusi käyttäjä" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:140 msgid "auth.register-title" msgstr "Luo uusi käyttäjä" #: src/app/main/ui/auth.cljs +#, unused msgid "auth.sidebar-tagline" msgstr "Avoimen lähdekoodin ratkaisu suunnitteluun ja prototyyppien valmistukseen." +#: src/app/main/ui/auth.cljs:33, src/app/main/ui/dashboard/sidebar.cljs:1022, src/app/main/ui/workspace/main_menu.cljs:150 msgid "auth.terms-of-service" msgstr "Käyttöehdot" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:297 msgid "auth.verification-email-sent" msgstr "Lähetimme vahvistussähköpostin osoitteeseen" +#: src/app/main/ui/workspace/libraries.cljs:228 msgid "common.publish" msgstr "Julkaise" +#: src/app/main/ui/viewer/share_link.cljs:304, src/app/main/ui/viewer/share_link.cljs:314 msgid "common.share-link.all-users" msgstr "Kaikki Penpotin käyttäjät" +#: src/app/main/ui/viewer/share_link.cljs:198 msgid "common.share-link.confirm-deletion-link-description" msgstr "" "Oletko varma, että haluat poistaa tämän linkin? Sen jälkeen kukaan ei voi " "käyttää sitä" +#: src/app/main/ui/viewer/share_link.cljs:259, src/app/main/ui/viewer/share_link.cljs:289 msgid "common.share-link.current-tag" msgstr "(nykyinen)" +#: src/app/main/ui/viewer/share_link.cljs:207, src/app/main/ui/viewer/share_link.cljs:214 msgid "common.share-link.destroy-link" msgstr "Poista linkki" +#: src/app/main/ui/viewer/share_link.cljs:221 msgid "common.share-link.get-link" msgstr "Hanki linkki" +#: src/app/main/ui/viewer/share_link.cljs:139 msgid "common.share-link.link-copied-success" msgstr "Linkin kopiointi onnistui" +#: src/app/main/ui/viewer/share_link.cljs:231 msgid "common.share-link.manage-ops" msgstr "Muokkaa käyttöoikeuksia" +#: src/app/main/ui/viewer/share_link.cljs:277 msgid "common.share-link.page-shared" msgid_plural "common.share-link.page-shared" msgstr[0] "Yksi sivu jaettu" msgstr[1] "%s sivua jaettu" +#: src/app/main/ui/viewer/share_link.cljs:298 msgid "common.share-link.permissions-can-comment" msgstr "Voi kommentoida" +#: src/app/main/ui/viewer/share_link.cljs:308 msgid "common.share-link.permissions-can-inspect" msgstr "Voi tarkastella koodia" +#: src/app/main/ui/viewer/share_link.cljs:193 msgid "common.share-link.permissions-hint" msgstr "Kaikilla linkin saaneilla on käyttöoikeus" +#: src/app/main/ui/viewer/share_link.cljs:241 msgid "common.share-link.permissions-pages" msgstr "Sivut jaettu" +#: src/app/main/ui/viewer/share_link.cljs:183 msgid "common.share-link.placeholder" msgstr "Jaettava linkki ilmestyy tähän" +#: src/app/main/ui/viewer/share_link.cljs:303, src/app/main/ui/viewer/share_link.cljs:313 msgid "common.share-link.team-members" msgstr "Vain ryhmän jäsenet" +#: src/app/main/ui/viewer/share_link.cljs:171 msgid "common.share-link.title" msgstr "Jaa prototyypit" +#: src/app/main/ui/viewer/share_link.cljs:269 msgid "common.share-link.view-all" msgstr "Valitse kaikki" +#: src/app/main/ui/workspace/libraries.cljs:224 msgid "common.unpublish" msgstr "Peruuta julkaisu" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:85 msgid "dasboard.team-hero.management" msgstr "Ryhmän hallinta" -#: src/app/main/ui/dashboard/projects.cljs -#, fuzzy +#: src/app/main/ui/dashboard/projects.cljs:84 msgid "dasboard.team-hero.text" msgstr "" "Penpot on tarkoitettu ryhmille. Kutsu jäseniä työstääksenne projekteja " "yhdessä" -#: src/app/main/ui/dashboard/projects.cljs -#, fuzzy +#: src/app/main/ui/dashboard/projects.cljs:82 msgid "dasboard.team-hero.title" msgstr "Ryhmäydy!" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.tutorial-hero.info" msgstr "" "Opettele Penpotin perusteet pitämällä hauskaa tämän opastuskierroksen " "kanssa." #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.tutorial-hero.start" msgstr "Aloita opastuskierros" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.tutorial-hero.title" msgstr "Käytännön opastus" #: src/app/main/ui/dashboard/projects.cljs -#, fuzzy +#, unused msgid "dasboard.walkthrough-hero.info" msgstr "Ota opastuskierros Penpotin erilaisista toiminnoista" diff --git a/frontend/translations/fo.po b/frontend/translations/fo.po index bb79b065bf..535023a857 100644 --- a/frontend/translations/fo.po +++ b/frontend/translations/fo.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "PO-Revision-Date: 2024-06-17 08:07+0000\n" "Last-Translator: Anonymous \n" -"Language-Team: Faroese \n" +"Language-Team: Faroese " +"\n" "Language: fo\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" @@ -11,629 +11,678 @@ msgstr "" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 5.6-dev\n" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:151, src/app/main/ui/viewer/login.cljs:104 msgid "auth.already-have-account" msgstr "Hevur tú longu ein brúkara?" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:299 msgid "auth.check-your-email" msgstr "" "Kanna tín teldupost og trýst á leinkina fyri at vátta og byrja at nýta " "Penpot." -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:78 msgid "auth.confirm-password" msgstr "Vátta loyniorðið" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/register.cljs:163 msgid "auth.create-demo-account" msgstr "Stovna royndarkonto" #: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#, unused msgid "auth.create-demo-profile" msgstr "Vilt tú royna tað?" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/login.cljs:43 msgid "auth.demo-warning" msgstr "" "Hetta er ein ROYNDAR tænasta, IKKI BRÚKA til veruligt arbeiði, " "verkætlanirnar verða slettaðar regluliga." -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:189, src/app/main/ui/viewer/login.cljs:90 msgid "auth.forgot-password" msgstr "Gloymt loyniorðið?" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:254 msgid "auth.fullname" msgstr "Fullfíggja navn" -#: src/app/main/ui/auth/register.cljs -#, fuzzy +#: src/app/main/ui/auth/register.cljs:155, src/app/main/ui/viewer/login.cljs:107 msgid "auth.login-here" msgstr "Innrita her" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:195 msgid "auth.login-submit" msgstr "Rita inn" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:222 msgid "auth.login-with-github-submit" msgstr "GitHub" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:228 msgid "auth.login-with-gitlab-submit" msgstr "GitLab" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:216 msgid "auth.login-with-google-submit" msgstr "Google" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:201 msgid "auth.login-with-ldap-submit" msgstr "LDAP" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:234, src/app/main/ui/auth/login.cljs:255 msgid "auth.login-with-oidc-submit" msgstr "OpenID" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:71 msgid "auth.new-password" msgstr "Skriva eitt nýtt loyniorð" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:46 msgid "auth.notifications.password-changed-successfully" msgstr "Loyniorðið er broytt" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:57 msgid "auth.notifications.profile-not-verified" msgstr "" "Vangamyndin er ikki váttað, vinarliga vátta vangamyndina áðrenn tú heldur " "áfram." -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:40 msgid "auth.notifications.recovery-token-sent" msgstr "Leinkjan til at endurseta títt loyniorð er send til tín postkassa." -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:47 msgid "auth.notifications.team-invitation-accepted" msgstr "Sameinaðan í toymið var væleydnað" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:179, src/app/main/ui/auth/register.cljs:115 msgid "auth.password" msgstr "Loyniorð" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:114 msgid "auth.password-length-hint" msgstr "Minst 8 stavir" +#: src/app/main/ui/auth.cljs:41 msgid "auth.privacy-policy" msgstr "Privat politikkur" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:88 msgid "auth.recovery-request-submit" msgstr "Endurstovna loyniorð" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:101 msgid "auth.recovery-request-subtitle" msgstr "Vit senda tær ein teldupost við vegleiðing" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:100 msgid "auth.recovery-request-title" msgstr "Gloymt loyniorð?" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:82 msgid "auth.recovery-submit" msgstr "Broyt títt loyniorð" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:298, src/app/main/ui/viewer/login.cljs:93 msgid "auth.register" msgstr "Onga konto enn?" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:302, src/app/main/ui/auth/register.cljs:121, src/app/main/ui/auth/register.cljs:263, src/app/main/ui/viewer/login.cljs:97 msgid "auth.register-submit" msgstr "Stovna konto" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:140 msgid "auth.register-title" msgstr "Stovna eina konto" +#: src/app/main/ui/auth.cljs:33, src/app/main/ui/dashboard/sidebar.cljs:1022, src/app/main/ui/workspace/main_menu.cljs:150 msgid "auth.terms-of-service" msgstr "Treytir" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:297 msgid "auth.verification-email-sent" msgstr "Vit hava sent ein váttanar teldupost til" +#: src/app/main/ui/workspace/libraries.cljs:228 msgid "common.publish" msgstr "Gev út" +#: src/app/main/ui/viewer/share_link.cljs:304, src/app/main/ui/viewer/share_link.cljs:314 msgid "common.share-link.all-users" msgstr "Allir Penpot brúkarar" +#: src/app/main/ui/viewer/share_link.cljs:198 msgid "common.share-link.confirm-deletion-link-description" msgstr "" "Ert tú vís(ur) í, at tú vilt strika hetta leinkið? Gert tú tað, er tað ikki " "longur tøkt hjá nøkrum" +#: src/app/main/ui/viewer/share_link.cljs:259, src/app/main/ui/viewer/share_link.cljs:289 msgid "common.share-link.current-tag" msgstr "(núverandi)" +#: src/app/main/ui/viewer/share_link.cljs:207, src/app/main/ui/viewer/share_link.cljs:214 msgid "common.share-link.destroy-link" msgstr "Strika leinki" +#: src/app/main/ui/viewer/share_link.cljs:221 msgid "common.share-link.get-link" msgstr "Fá leinkið" +#: src/app/main/ui/viewer/share_link.cljs:139 msgid "common.share-link.link-copied-success" msgstr "Leinkið avritað" +#: src/app/main/ui/viewer/share_link.cljs:231 msgid "common.share-link.manage-ops" msgstr "Fyrisit heimildir" +#: src/app/main/ui/viewer/share_link.cljs:277 msgid "common.share-link.page-shared" msgid_plural "common.share-link.page-shared" msgstr[0] "1 síða deild" msgstr[1] "%s síður deildar" +#: src/app/main/ui/viewer/share_link.cljs:298 msgid "common.share-link.permissions-can-comment" msgstr "Kann viðmerkja" +#: src/app/main/ui/viewer/share_link.cljs:308 msgid "common.share-link.permissions-can-inspect" msgstr "Kann skoða kotu" +#: src/app/main/ui/viewer/share_link.cljs:193 msgid "common.share-link.permissions-hint" msgstr "Ein og hvør við leinkjuni hevur atgongd" +#: src/app/main/ui/viewer/share_link.cljs:241 msgid "common.share-link.permissions-pages" msgstr "Síður deildar" +#: src/app/main/ui/viewer/share_link.cljs:183 msgid "common.share-link.placeholder" msgstr "Leinkja, ið kann deilast, verur at síggja her" +#: src/app/main/ui/viewer/share_link.cljs:303, src/app/main/ui/viewer/share_link.cljs:313 msgid "common.share-link.team-members" msgstr "Einans limir í toymi" +#: src/app/main/ui/viewer/share_link.cljs:171 msgid "common.share-link.title" msgstr "Deil frumsnið" +#: src/app/main/ui/viewer/share_link.cljs:269 msgid "common.share-link.view-all" msgstr "Vel alt" +#: src/app/main/ui/workspace/libraries.cljs:224 msgid "common.unpublish" msgstr "Angra útgevan" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:85 msgid "dasboard.team-hero.management" msgstr "Toymisleiðsla" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:84 msgid "dasboard.team-hero.text" msgstr "Penpot er fyri toymum. Bjóða limum at arbeiða saman á verkætlanir og fílur" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:82 msgid "dasboard.team-hero.title" msgstr "Toyma upp!" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.tutorial-hero.info" msgstr "" "Lær alt tað grundleggjandi í Penpot, meðan tú stuttleikar tær við hesari " "lær-og-ger leiðbeiningini." #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.tutorial-hero.start" msgstr "Byrja undirvísingina" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.tutorial-hero.title" msgstr "Lær-við-at-gera leiðbeining" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.walkthrough-hero.info" msgstr "Kom ein túr gjøgnum Penpot og lær høvuðsfunkurnar at kenna." #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.walkthrough-hero.start" msgstr "Byrja rundferð" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:291, src/app/main/ui/workspace/main_menu.cljs:572 msgid "dashboard.add-shared" msgstr "Legg afturat sum Deilt Savn" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:75 msgid "dashboard.change-email" msgstr "Broyt teldupost" -#: src/app/main/data/dashboard.cljs, src/app/main/data/dashboard.cljs +#: src/app/main/data/dashboard.cljs:762, src/app/main/data/dashboard.cljs:983 msgid "dashboard.copy-suffix" msgstr "(avrita)" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:338 msgid "dashboard.create-new-team" msgstr "Stovna nýtt toymi" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/components/context_menu_a11y.cljs:256, src/app/main/ui/dashboard/sidebar.cljs:646 msgid "dashboard.default-team-name" msgstr "Títt Penpot" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:571 msgid "dashboard.delete-team" msgstr "Strika toymi" +#: src/app/main/ui/dashboard/file_menu.cljs:296, src/app/main/ui/workspace/main_menu.cljs:589 msgid "dashboard.download-binary-file" msgstr "Heinta Penpot fílu (.penpot)" +#: src/app/main/ui/dashboard/file_menu.cljs:300, src/app/main/ui/workspace/main_menu.cljs:597 msgid "dashboard.download-standard-file" msgstr "Heinta standarafílu (.svg + .json)" -#: src/app/main/ui/dashboard/project_menu.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:276, src/app/main/ui/dashboard/project_menu.cljs:90 msgid "dashboard.duplicate" msgstr "Tvítøka" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:240 msgid "dashboard.duplicate-multi" msgstr "Tvítak %s fílur" -#: src/app/main/ui/dashboard/grid.cljs +#: src/app/main/ui/dashboard/placeholder.cljs:32 #, markdown msgid "dashboard.empty-placeholder-drafts" msgstr "" "Áh nei! Tú hevur ongar fílur enn! Um tú vilt royna við nøkrum skapilónum, " "vitja [Libraries & templates](https://penpot.app/libraries-templates)" +#: src/app/main/ui/dashboard/file_menu.cljs:249 msgid "dashboard.export-binary-multi" msgstr "Heinta %s Penpot fílur (.penpot)" +#: src/app/main/ui/workspace/main_menu.cljs:605 msgid "dashboard.export-frames" msgstr "Útflyt borð sum PDF" -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:201 msgid "dashboard.export-frames.title" msgstr "Útflyt til PDF" +#, unused msgid "dashboard.export-multi" msgstr "Útflyt Penpot %s fílur" -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:109 msgid "dashboard.export-multiple.selected" msgstr "%s av %s lutum eru valdir" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:578 msgid "dashboard.export-shapes" msgstr "Útflyt" -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:184 msgid "dashboard.export-shapes.how-to-link" msgstr "Upplýsingar um hvussu tú setur útflytingar í Penpot." -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:179 msgid "dashboard.export-shapes.no-elements" msgstr "Har eru ongin lutir við útflytsstillingum." -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:190 msgid "dashboard.export-shapes.title" msgstr "Valt til útflyting" +#: src/app/main/ui/dashboard/file_menu.cljs:252 msgid "dashboard.export-standard-multi" msgstr "Heinta %s standarafílur (.svg + .json)" +#: src/app/main/ui/export.cljs:436 msgid "dashboard.export.options.all.title" msgstr "Útflyt deild søvn" +#: src/app/main/ui/export.cljs:418 msgid "dashboard.export.title" msgstr "Útflyt fílur" +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:309 msgid "dashboard.fonts.deleted-placeholder" msgstr "Stavsniði er strika" +#: src/app/main/ui/dashboard/fonts.cljs:436 msgid "dashboard.fonts.empty-placeholder" msgstr "Tú hevur enn onki serstavsnið innlagt." -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:194 msgid "dashboard.fonts.fonts-added" msgid_plural "dashboard.fonts.fonts-added" msgstr[0] "1 stavsnið lagt afturat" msgstr[1] "% stavsnið løgd afturat" -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:202 msgid "dashboard.fonts.upload-all" msgstr "Legg øll afturat" +#: src/app/main/ui/dashboard/import.cljs:472, src/app/main/ui/dashboard/project_menu.cljs:108 msgid "dashboard.import" msgstr "Innflyt Penpot fílur" +#: src/app/main/ui/dashboard/import.cljs:304, src/app/worker/import.cljs:753, src/app/worker/import.cljs:755 msgid "dashboard.import.analyze-error" msgstr "Ups! Tað riggaði ikki at innflyta hesa fílu" +#: src/app/main/ui/dashboard/import.cljs:308 msgid "dashboard.import.import-error" msgstr "" "Har kom ein trupulleiki, tá vit royndu at innflyta fíluna. Fílan var ikki " "innflutt." +#: src/app/main/ui/dashboard/import.cljs:493 msgid "dashboard.import.import-message" msgstr "% fílur eru innfluttir." +#: src/app/main/ui/dashboard/import.cljs:144 msgid "dashboard.import.progress.process-colors" msgstr "Viðgerð litir" +#: src/app/main/ui/dashboard/import.cljs:153 msgid "dashboard.import.progress.process-components" msgstr "Viðgerð staklutir" +#: src/app/main/ui/dashboard/import.cljs:150 msgid "dashboard.import.progress.process-media" msgstr "Viðgerð miðlar" +#: src/app/main/ui/dashboard/import.cljs:141 msgid "dashboard.import.progress.process-page" msgstr "Viðger síðu: %s" +#: src/app/main/ui/dashboard/import.cljs:147 msgid "dashboard.import.progress.process-typographies" msgstr "Viðgerð stavsnið" +#: src/app/main/ui/dashboard/import.cljs:135 msgid "dashboard.import.progress.upload-data" msgstr "Sendur upp dátur til ambætara (%s/%s)" +#: src/app/main/ui/dashboard/import.cljs:138 msgid "dashboard.import.progress.upload-media" msgstr "Innleggur fílu: %s" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:109 msgid "dashboard.invite-profile" msgstr "Bjóða við í toymi" -#: src/app/main/ui/dashboard/sidebar.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:547, src/app/main/ui/dashboard/sidebar.cljs:556, src/app/main/ui/dashboard/sidebar.cljs:563, src/app/main/ui/dashboard/team.cljs:312 msgid "dashboard.leave-team" msgstr "Far úr toymu" -#: src/app/main/ui/dashboard/grid.cljs +#: src/app/main/ui/dashboard/placeholder.cljs:45 msgid "dashboard.loading-files" msgstr "lesur tínar fílur inn…" +#: src/app/main/ui/dashboard/fonts.cljs:431 msgid "dashboard.loading-fonts" msgstr "lesur tíni stavsnið inn…" -#: src/app/main/ui/dashboard/project_menu.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:281, src/app/main/ui/dashboard/project_menu.cljs:100 msgid "dashboard.move-to" msgstr "Flyt til" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:245 msgid "dashboard.move-to-multi" msgstr "Flyt %s fílur til" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:226 msgid "dashboard.move-to-other-team" msgstr "Flyt til eitt annað toymi" -#: src/app/main/ui/dashboard/projects.cljs, -#: src/app/main/ui/dashboard/files.cljs +#: src/app/main/ui/dashboard/files.cljs:105, src/app/main/ui/dashboard/projects.cljs:252, src/app/main/ui/dashboard/projects.cljs:253 msgid "dashboard.new-file" msgstr "+ Nýggja fílu" -#: src/app/main/data/dashboard.cljs +#: src/app/main/data/dashboard.cljs:958, src/app/main/data/dashboard.cljs:1181 msgid "dashboard.new-file-prefix" msgstr "Nýggja fílu" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:55 msgid "dashboard.new-project" msgstr "+ Nýggj verkætlan" -#: src/app/main/data/dashboard.cljs +#: src/app/main/data/dashboard.cljs:726, src/app/main/data/dashboard.cljs:1184 msgid "dashboard.new-project-prefix" msgstr "Nýggj verkætlan" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:60 msgid "dashboard.no-matches-for" msgstr "Onki samsvar funnið fyri \"%\"" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:827 msgid "dashboard.no-projects-placeholder" msgstr "Festar verkætlanir verða víst her" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:33 msgid "dashboard.notifications.email-changed-successfully" msgstr "Tín teldupostadressa er dagførd" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:27 msgid "dashboard.notifications.email-verified-successfully" msgstr "Tín teldupostadressa er váttta" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:37 msgid "dashboard.notifications.password-saved" msgstr "Loyniorði er goymt!" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1081 msgid "dashboard.num-of-members" msgstr "%s limir" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:267 msgid "dashboard.open-in-new-tab" msgstr "Lat fílu upp í nýggjum skiljiblaði" +#: src/app/main/ui/dashboard/files.cljs:117, src/app/main/ui/dashboard/projects.cljs:260, src/app/main/ui/dashboard/projects.cljs:261 msgid "dashboard.options" msgstr "Valmøguleikar" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:106, src/app/main/ui/settings/password.cljs:119 msgid "dashboard.password-change" msgstr "Broyt loyniorð" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/pin_button.cljs:24, src/app/main/ui/dashboard/project_menu.cljs:95 msgid "dashboard.pin-unpin" msgstr "Fest/Loys" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:51 msgid "dashboard.projects-title" msgstr "Verkætlanir" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:86 msgid "dashboard.remove-account" msgstr "Vilt tú strika tína konto?" #: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "dashboard.remove-shared" msgstr "Strikað sum Deilt Savn" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:78 msgid "dashboard.save-settings" msgstr "Goym stillingar" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:246, src/app/main/ui/dashboard/sidebar.cljs:247 msgid "dashboard.search-placeholder" msgstr "Leita…" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:55 msgid "dashboard.searching-for" msgstr "Leitar eftir \"%s\"…" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:56 msgid "dashboard.select-ui-language" msgstr "Vel mál til takførisflatu" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:63 msgid "dashboard.select-ui-theme" msgstr "Vel tema" -#: src/app/main/ui/dashboard/grid.cljs +#: src/app/main/ui/dashboard/projects.cljs:282 msgid "dashboard.show-all-files" msgstr "Vís allar fílurnar" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:96 msgid "dashboard.success-delete-file" msgstr "Tín fíla er strikað" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:59 msgid "dashboard.success-delete-project" msgstr "Tín verkætlan er strikað" -#: src/app/main/ui/dashboard/grid.cljs, src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:130, src/app/main/ui/dashboard/grid.cljs:558, src/app/main/ui/dashboard/sidebar.cljs:152 msgid "dashboard.success-move-file" msgstr "Tín fíla er flutt" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:129 msgid "dashboard.success-move-files" msgstr "Tínar fílur eru fluttar" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:54 msgid "dashboard.success-move-project" msgstr "Tín verkætlan er flutt" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1052 msgid "dashboard.team-info" msgstr "Toymisupplýsingar" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1070 msgid "dashboard.team-members" msgstr "Toymislimir" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1085 msgid "dashboard.team-projects" msgstr "Toymisverkætlanir" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:61 msgid "dashboard.theme-change" msgstr "Takførisflatastílur" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:42 msgid "dashboard.title-search" msgstr "Leitiúrslit" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:50 msgid "dashboard.type-something" msgstr "Skriva fyri at leita eftir úrslitum" -#: src/app/main/ui/alert.cljs +#: src/app/main/ui/alert.cljs:32 msgid "ds.alert-ok" msgstr "Ókey" -#: src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:37, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:141 msgid "ds.confirm-ok" msgstr "Ókey" +#: src/app/main/data/users.cljs:703, src/app/main/ui/auth/login.cljs:97, src/app/main/ui/auth/login.cljs:105 msgid "errors.profile-blocked" msgstr "Vangamyndin er stongd" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:262 msgid "labels.delete-multi-files" msgstr "Strikað %s fílur" +#, unused msgid "labels.edit-file" msgstr "Broyt fílu" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/projects.cljs:239, src/app/main/ui/dashboard/team.cljs:1095 msgid "labels.num-of-files" msgid_plural "labels.num-of-files" msgstr[0] "1 fíla" msgstr[1] "%s fílur" -#: src/app/main/ui/settings/sidebar.cljs +#: src/app/main/ui/settings/profile.cljs:118, src/app/main/ui/settings/sidebar.cljs:82 msgid "labels.profile" msgstr "Vangamynd" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/data/common.cljs:113 msgid "modals.add-shared-confirm.accept" msgstr "Legg afturat sum Deilt Savn" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/data/common.cljs:110 msgid "modals.add-shared-confirm.message" msgstr "Legg \"%s\" afturat sum Deilt Savn" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:123 msgid "modals.delete-file-confirm.accept" msgstr "Strikað fílu" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:122 msgid "modals.delete-file-confirm.message" msgstr "Ert tú vísur í, at tú ynskjur at strikað fílu?" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:121 msgid "modals.delete-file-confirm.title" msgstr "Strikar fílu" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:117 msgid "modals.delete-file-multi-confirm.accept" msgstr "Strikar fílur" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:116 msgid "modals.delete-file-multi-confirm.message" msgstr "Ert tú vísur í, at tú vil strikað %s fílur?" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:115 msgid "modals.delete-file-multi-confirm.title" msgstr "Strikar %s fílur" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:51 msgid "modals.delete-shared-confirm.accept" msgid_plural "modals.delete-shared-confirm.accept" msgstr[0] "Strike fílu" msgstr[1] "Strika fílur" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:46 msgid "modals.delete-shared-confirm.message" msgid_plural "modals.delete-shared-confirm.message" msgstr[0] "Ert tú vísur í, at tú vilt strikað hesa fílu?" msgstr[1] "Ert tú vísur í, at tú vilt strikað hesar fílur?" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:41 msgid "modals.delete-shared-confirm.title" msgid_plural "modals.delete-shared-confirm.title" msgstr[0] "Strikar fílu" msgstr[1] "Strikar fílur" #: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "modals.remove-shared-confirm.accept" msgstr "Strikað sum Deilt Savn" #: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "modals.remove-shared-confirm.message" msgstr "Strika \"%s\" sum Deilt Savn" -#: src/app/main/ui/dashboard/files.cljs +#: src/app/main/ui/dashboard/files.cljs:158 msgid "title.dashboard.files" msgstr "%s - Penpot" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:115 msgid "title.settings.profile" msgstr "Vangamynd - Penpot" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:720 msgid "workspace.header.menu.option.file" msgstr "Fílu" diff --git a/frontend/translations/fr.po b/frontend/translations/fr.po index 7882541726..04c3222e74 100644 --- a/frontend/translations/fr.po +++ b/frontend/translations/fr.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "PO-Revision-Date: 2024-06-17 08:07+0000\n" "Last-Translator: Anonymous \n" -"Language-Team: French \n" +"Language-Team: French " +"\n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" @@ -11,373 +11,411 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n!=1);\n" "X-Generator: Weblate 5.6-dev\n" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:151, src/app/main/ui/viewer/login.cljs:104 msgid "auth.already-have-account" msgstr "Vous avez déjà un compte ?" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:299 msgid "auth.check-your-email" msgstr "" "Vérifiez votre e‑mail et cliquez sur le lien pour vérifier et commencer à " "utiliser Penpot." -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:78 msgid "auth.confirm-password" msgstr "Confirmez le mot de passe" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/register.cljs:163 msgid "auth.create-demo-account" msgstr "Créer un compte de démonstration" #: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#, unused msgid "auth.create-demo-profile" msgstr "Vous voulez juste essayer ?" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/login.cljs:43 msgid "auth.demo-warning" msgstr "" "Il s’agit d’un service de DÉMONSTRATION, NE L'UTILISEZ PAS pour du vrai " "travail, les projets seront périodiquement supprimés." -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:189, src/app/main/ui/viewer/login.cljs:90 msgid "auth.forgot-password" msgstr "Mot de passe oublié ?" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:254 msgid "auth.fullname" msgstr "Nom complet" -#: src/app/main/ui/auth/register.cljs -#, fuzzy +#: src/app/main/ui/auth/login.cljs:282 +msgid "auth.login-account-title" +msgstr "Connexion à mon compte" + +#: src/app/main/ui/auth/register.cljs:155, src/app/main/ui/viewer/login.cljs:107 msgid "auth.login-here" msgstr "Connectez-vous ici" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:195 msgid "auth.login-submit" msgstr "Se connecter" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:285 +msgid "auth.login-tagline" +msgstr "" +"Penpot est l'outil de design libre et open-source pour la collaboration " +"entre Design et Développement" + +#: src/app/main/ui/auth/login.cljs:222 msgid "auth.login-with-github-submit" msgstr "GitHub" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:228 msgid "auth.login-with-gitlab-submit" msgstr "GitLab" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:216 msgid "auth.login-with-google-submit" msgstr "Google" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:201 msgid "auth.login-with-ldap-submit" msgstr "LDAP" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:234, src/app/main/ui/auth/login.cljs:255 msgid "auth.login-with-oidc-submit" msgstr "OpenID" -#: src/app/main/ui/settings/team-form.cljs, src/app/main/ui/auth/register.cljs, src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/onboarding/team_choice.cljs, src/app/main/ui/settings/access_tokens.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/settings/profile.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/auth/register.cljs:217, src/app/main/ui/dashboard/team_form.cljs:76, src/app/main/ui/onboarding/team_choice.cljs:180, src/app/main/ui/settings/access_tokens.cljs:66, src/app/main/ui/settings/feedback.cljs:34, src/app/main/ui/settings/profile.cljs:45, src/app/main/ui/workspace/sidebar/assets/groups.cljs:108 msgid "auth.name.not-all-space" msgstr "Le nom doit contenir au moins un caractère autre que l'espace." -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/onboarding/team_choice.cljs, src/app/main/ui/settings/access_tokens.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/settings/profile.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/auth/register.cljs:218, src/app/main/ui/dashboard/team_form.cljs:77, src/app/main/ui/onboarding/team_choice.cljs:181, src/app/main/ui/settings/access_tokens.cljs:67, src/app/main/ui/settings/feedback.cljs:33, src/app/main/ui/settings/profile.cljs:44, src/app/main/ui/workspace/sidebar/assets/groups.cljs:109 msgid "auth.name.too-long" msgstr "Le nom ne doit pas contenir plus de 250 caractères." -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:71 msgid "auth.new-password" msgstr "Saisissez un nouveau mot de passe" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:42 msgid "auth.notifications.invalid-token-error" msgstr "Le code de récupération n’est pas valide." -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:46 msgid "auth.notifications.password-changed-successfully" msgstr "Mot de passe changé avec succès" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:57 msgid "auth.notifications.profile-not-verified" msgstr "Le profil n’est pas vérifié. Veuillez vérifier le profil avant de continuer." -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:40 msgid "auth.notifications.recovery-token-sent" msgstr "Lien de récupération de mot de passe envoyé." -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:47 msgid "auth.notifications.team-invitation-accepted" msgstr "Vous avez rejoint l’équipe avec succès" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:179, src/app/main/ui/auth/register.cljs:115 msgid "auth.password" msgstr "Mot de passe" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:114 msgid "auth.password-length-hint" msgstr "Au moins 8 caractères" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/recovery.cljs:61, src/app/main/ui/auth/recovery.cljs:62, src/app/main/ui/auth/register.cljs:81, src/app/main/ui/settings/password.cljs:75, src/app/main/ui/settings/password.cljs:76, src/app/main/ui/settings/password.cljs:77 msgid "auth.password-not-empty" msgstr "Le mot de passe doit contenir au moins un caractère autre que l'espace." +#: src/app/main/ui/auth.cljs:41 msgid "auth.privacy-policy" msgstr "Politique de confidentialité" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:88 msgid "auth.recovery-request-submit" msgstr "Récupérer le mot de passe" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:101 msgid "auth.recovery-request-subtitle" msgstr "Nous vous enverrons un e‑mail avec des instructions" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:100 msgid "auth.recovery-request-title" msgstr "Mot de passe oublié ?" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:82 msgid "auth.recovery-submit" msgstr "Changez votre mot de passe" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:298, src/app/main/ui/viewer/login.cljs:93 msgid "auth.register" msgstr "Pas encore de compte ?" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:302, src/app/main/ui/auth/register.cljs:121, src/app/main/ui/auth/register.cljs:263, src/app/main/ui/viewer/login.cljs:97 msgid "auth.register-submit" msgstr "Créer un compte" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:140 msgid "auth.register-title" msgstr "Créer un compte" #: src/app/main/ui/auth.cljs +#, unused msgid "auth.sidebar-tagline" msgstr "La solution Open Source pour la conception et le prototypage." +#: src/app/main/ui/auth.cljs:33, src/app/main/ui/dashboard/sidebar.cljs:1022, src/app/main/ui/workspace/main_menu.cljs:150 msgid "auth.terms-of-service" msgstr "Conditions générales d'utilisation" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:297 msgid "auth.verification-email-sent" msgstr "Nous avons envoyé un e-mail de vérification à" #: src/app/main/ui/onboarding/questions.cljs +#, unused msgid "branding-illustrations-marketing-pieces" msgstr "...image de marque, illustrations, supports marketing, etc." +#: src/app/main/ui/workspace/libraries.cljs:228 msgid "common.publish" msgstr "Publier" +#: src/app/main/ui/viewer/share_link.cljs:304, src/app/main/ui/viewer/share_link.cljs:314 msgid "common.share-link.all-users" msgstr "Tous les utilisateurs de Penpot" +#: src/app/main/ui/viewer/share_link.cljs:198 msgid "common.share-link.confirm-deletion-link-description" msgstr "" "Êtes-vous certain de vouloir supprimer ce lien ? Si oui, plus personne ne " "pourra y accéder" +#: src/app/main/ui/viewer/share_link.cljs:259, src/app/main/ui/viewer/share_link.cljs:289 msgid "common.share-link.current-tag" msgstr "(actuel)" +#: src/app/main/ui/viewer/share_link.cljs:207, src/app/main/ui/viewer/share_link.cljs:214 msgid "common.share-link.destroy-link" msgstr "Supprimer le lien" +#: src/app/main/ui/viewer/share_link.cljs:221 msgid "common.share-link.get-link" msgstr "Obtenir le lien" +#: src/app/main/ui/viewer/share_link.cljs:139 msgid "common.share-link.link-copied-success" msgstr "Lien copié avec succès" +#: src/app/main/ui/viewer/share_link.cljs:231 msgid "common.share-link.manage-ops" msgstr "Modifier les permissions" +#: src/app/main/ui/viewer/share_link.cljs:277 msgid "common.share-link.page-shared" msgid_plural "common.share-link.page-shared" msgstr[0] "1 page partagée" msgstr[1] "%s pages partagées" +#: src/app/main/ui/viewer/share_link.cljs:298 msgid "common.share-link.permissions-can-comment" msgstr "Peut commenter" +#: src/app/main/ui/viewer/share_link.cljs:308 msgid "common.share-link.permissions-can-inspect" msgstr "Peut inspecter le code" +#: src/app/main/ui/viewer/share_link.cljs:193 msgid "common.share-link.permissions-hint" msgstr "N'importe qui possédant ce lien peut y accéder" +#: src/app/main/ui/viewer/share_link.cljs:241 msgid "common.share-link.permissions-pages" msgstr "Pages partagées" +#: src/app/main/ui/viewer/share_link.cljs:183 msgid "common.share-link.placeholder" msgstr "Le lien à partager apparaîtra ici" +#: src/app/main/ui/viewer/share_link.cljs:303, src/app/main/ui/viewer/share_link.cljs:313 msgid "common.share-link.team-members" msgstr "Seulement les membres de l'équipe" +#: src/app/main/ui/viewer/share_link.cljs:171 msgid "common.share-link.title" msgstr "Partager les prototypes" +#: src/app/main/ui/viewer/share_link.cljs:269 msgid "common.share-link.view-all" msgstr "Tout sélectionner" +#: src/app/main/ui/workspace/libraries.cljs:224 msgid "common.unpublish" msgstr "Dépublier" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:85 msgid "dasboard.team-hero.management" msgstr "Gestion de l'équipe" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:84 msgid "dasboard.team-hero.text" msgstr "" "Penpot est conçu pour les équipes. Invitez les membres pour collaborer sur " "des projets et des fichiers" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:82 msgid "dasboard.team-hero.title" msgstr "Faites une équipe  !" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.tutorial-hero.info" msgstr "Apprenez les bases de Penpot en s'amusant avec ce tutoriel pratique." #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.tutorial-hero.start" msgstr "Démarrer le tutoriel" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.tutorial-hero.title" msgstr "Tutoriel pratique" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.walkthrough-hero.info" msgstr "Explorez Penpot et découvrir ses fonctionnalités." #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.walkthrough-hero.start" msgstr "Commencer le guide" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.walkthrough-hero.title" msgstr "Démonstration de l'interface" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:115 msgid "dashboard.access-tokens.copied-success" msgstr "Jeton copié" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:202 msgid "dashboard.access-tokens.create" msgstr "Générer un nouveau jeton" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:76 msgid "dashboard.access-tokens.create.success" msgstr "Jeton d'accès créé avec succès." -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:300 msgid "dashboard.access-tokens.empty.add-one" msgstr "Pressez le bouton \"Générer un nouveau jeton\" pour en générer un." -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:299 msgid "dashboard.access-tokens.empty.no-access-tokens" msgstr "Vous n'avez pas encore de jeton." -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:53 msgid "dashboard.access-tokens.errors-required-name" msgstr "Le nom est requis" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:147 msgid "dashboard.access-tokens.expiration-180-days" msgstr "180 jours" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:144 msgid "dashboard.access-tokens.expiration-30-days" msgstr "30 jours" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:145 msgid "dashboard.access-tokens.expiration-60-days" msgstr "60 jours" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:146 msgid "dashboard.access-tokens.expiration-90-days" msgstr "90 jours" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:143 msgid "dashboard.access-tokens.expiration-never" msgstr "Jamais" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:282 msgid "dashboard.access-tokens.expired-on" msgstr "A expiré le %s" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:283 msgid "dashboard.access-tokens.expires-on" msgstr "Expire le %s" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:281 msgid "dashboard.access-tokens.no-expiration" msgstr "Aucune date d'expiration" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:197 msgid "dashboard.access-tokens.personal" msgstr "Jetons d'accès personnels" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:198 msgid "dashboard.access-tokens.personal.description" msgstr "" "Les jetons d'accès personnels fonctionnent comme une alternative à notre " "système d'authentification par login/mot de passe et peuvent être utilisés " "pour permettre à une application d'accéder à l'API interne de Penpot" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:154 msgid "dashboard.access-tokens.token-will-expire" msgstr "Le jeton expirera le %s" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:155 msgid "dashboard.access-tokens.token-will-not-expire" msgstr "Le jeton n'a pas de date d'expiration" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:291, src/app/main/ui/workspace/main_menu.cljs:572 msgid "dashboard.add-shared" msgstr "Ajouter une Bibliothèque Partagée" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:75 msgid "dashboard.change-email" msgstr "Changer l'adresse e‑mail" -#: src/app/main/data/dashboard.cljs, src/app/main/data/dashboard.cljs +#: src/app/main/data/dashboard.cljs:762, src/app/main/data/dashboard.cljs:983 msgid "dashboard.copy-suffix" msgstr "(copie)" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:338 msgid "dashboard.create-new-team" msgstr "+ Créer une nouvelle équipe" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/components/context_menu_a11y.cljs:256, src/app/main/ui/dashboard/sidebar.cljs:646 msgid "dashboard.default-team-name" msgstr "Votre Penpot" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:571 msgid "dashboard.delete-team" msgstr "Supprimer l’équipe" +#: src/app/main/ui/dashboard/file_menu.cljs:296, src/app/main/ui/workspace/main_menu.cljs:589 msgid "dashboard.download-binary-file" msgstr "Télécharger le fichier Penpot (.penpot)" +#: src/app/main/ui/dashboard/file_menu.cljs:300, src/app/main/ui/workspace/main_menu.cljs:597 msgid "dashboard.download-standard-file" msgstr "Télécharger le fichier standard (.svg + .json)" -#: src/app/main/ui/dashboard/project_menu.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:276, src/app/main/ui/dashboard/project_menu.cljs:90 msgid "dashboard.duplicate" msgstr "Dupliquer" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:240 msgid "dashboard.duplicate-multi" msgstr "Dupliquer %s fichiers" -#: src/app/main/ui/dashboard/grid.cljs +#: src/app/main/ui/dashboard/placeholder.cljs:32 #, markdown msgid "dashboard.empty-placeholder-drafts" msgstr "" @@ -385,105 +423,121 @@ msgstr "" "des modèles, allez sur [Bibliothèques et modèles] " "(https://penpot.app/libraries-templates)." +#: src/app/main/ui/dashboard/file_menu.cljs:249 msgid "dashboard.export-binary-multi" msgstr "Télécharger %s fichiers Penpot (.penpot)" +#: src/app/main/ui/workspace/main_menu.cljs:605 msgid "dashboard.export-frames" msgstr "Exporter les plans de travail au format PDF" -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:201 msgid "dashboard.export-frames.title" msgstr "Exporter en PDF" +#, unused msgid "dashboard.export-multi" msgstr "Exporter %s fichiers" -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:109 msgid "dashboard.export-multiple.selected" msgstr "%s de %s éléments sélectionnés" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:578 msgid "dashboard.export-shapes" msgstr "Exporter" -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:180 msgid "dashboard.export-shapes.how-to" msgstr "" "Vous pouvez ajouter des paramètres d'exportation aux formes depuis les " "propriétés de design (en bas de la barre latérale de droite)" -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:184 msgid "dashboard.export-shapes.how-to-link" msgstr "Information sur comment configurer l'export dans Penpot." -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:179 msgid "dashboard.export-shapes.no-elements" msgstr "Aucun élément avec des paramètres d'exportation." -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:190 msgid "dashboard.export-shapes.title" msgstr "Exporter la sélection" +#: src/app/main/ui/dashboard/file_menu.cljs:252 msgid "dashboard.export-standard-multi" msgstr "Télécharger %s fichiers standards (.svg + .json)" +#: src/app/main/ui/export.cljs:427 msgid "dashboard.export.detail" msgstr "" "* Peut inclure les composants, éléments graphiques, couleurs et/ou polices " "de caractère." +#: src/app/main/ui/export.cljs:426 msgid "dashboard.export.explain" msgstr "" "Un ou plusieurs fichiers que vous souhaitez exporter utilisent des " "bibliothèques partagées. Que voulez-vous faire avec leurs ressources ?" +#: src/app/main/ui/export.cljs:435 msgid "dashboard.export.options.all.message" msgstr "" "Les fichiers avec des bibliothèques partagées seront inclus dans " "l'exportation, en maintenant leur liaison." +#: src/app/main/ui/export.cljs:436 msgid "dashboard.export.options.all.title" msgstr "Exporter les bibliothèques partagées" +#: src/app/main/ui/export.cljs:437 msgid "dashboard.export.options.detach.message" msgstr "" "Les bibliothèques partagées ne seront pas incluses dans l'exportation et " "aucune ressource ne sera ajoutée à la librairie. " +#: src/app/main/ui/export.cljs:438 msgid "dashboard.export.options.detach.title" msgstr "" "Considérer les ressources des bibliothèques partagées comme des objets " "basiques" +#: src/app/main/ui/export.cljs:439 msgid "dashboard.export.options.merge.message" msgstr "" "Votre fichier sera exporté avec toutes les ressources externes fusionnées " "dans la bibliothèque de fichiers." +#: src/app/main/ui/export.cljs:440 msgid "dashboard.export.options.merge.title" msgstr "" "Inclure les ressources des bibliothèques partagées dans les bibliothèques " "de fichiers" +#: src/app/main/ui/export.cljs:418 msgid "dashboard.export.title" msgstr "Exporter les fichiers" +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:309 msgid "dashboard.fonts.deleted-placeholder" msgstr "Police supprimée" -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:206 msgid "dashboard.fonts.dismiss-all" msgstr "Tout ignorer" +#: src/app/main/ui/dashboard/fonts.cljs:436 msgid "dashboard.fonts.empty-placeholder" msgstr "Les polices personnalisées installées apparaîtront ici." -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:194 msgid "dashboard.fonts.fonts-added" msgid_plural "dashboard.fonts.fonts-added" msgstr[0] "1 police ajoutée" msgstr[1] "%s polices ajoutées" +#: src/app/main/ui/dashboard/fonts.cljs:170 #, markdown msgid "dashboard.fonts.hero-text1" msgstr "" @@ -493,6 +547,7 @@ msgstr "" "**une seule famille de polices**. Vous pouvez télécharger les polices au " "formats suivants : **TTF, OTF et WOFF** (un seul format est nécessaire)." +#: src/app/main/ui/dashboard/fonts.cljs:182 #, markdown msgid "dashboard.fonts.hero-text2" msgstr "" @@ -502,10 +557,11 @@ msgstr "" "de Penpot](https://penpot.app/terms.html). Vous pouvez également vous " "renseigner sur les [licenses de polices](https://www.typography.com/faq)." -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:202 msgid "dashboard.fonts.upload-all" msgstr "Uploader tout" +#: src/app/main/ui/dashboard/fonts.cljs:187 #, markdown msgid "dashboard.fonts.warning-text" msgstr "" @@ -517,263 +573,286 @@ msgstr "" "recommandons d'utiliser [Transfonter](https://transfonter.org/) pour " "générer des polices web et corriger les erreurs. " +#: src/app/main/ui/dashboard/import.cljs:472, src/app/main/ui/dashboard/project_menu.cljs:108 msgid "dashboard.import" msgstr "Importer fichiers" +#: src/app/main/ui/dashboard/import.cljs:304, src/app/worker/import.cljs:753, src/app/worker/import.cljs:755 msgid "dashboard.import.analyze-error" msgstr "Oups ! Nous n'avons pas pu importer ce fichier" +#, unused +msgid "dashboard.import.analyze-error.components-v2" +msgstr "" +"Fichier avec composants v2 activé mais n'est pas encore supporté par cette " +"équipe." + +#: src/app/main/ui/dashboard/import.cljs:308 msgid "dashboard.import.import-error" msgstr "" "Un problème est survenu lors de l'importation du fichier. Le fichier n'a " "pas été importé." +#: src/app/main/ui/dashboard/import.cljs:493 msgid "dashboard.import.import-message" msgstr "%s fichiers ont été importés avec succès." +#: src/app/main/ui/dashboard/import.cljs:481, src/app/main/ui/dashboard/import.cljs:488 msgid "dashboard.import.import-warning" msgstr "Certains fichiers contenaient des objets invalides qui ont été enlevés." +#: src/app/main/ui/dashboard/import.cljs:144 msgid "dashboard.import.progress.process-colors" msgstr "Traitement des couleurs" +#: src/app/main/ui/dashboard/import.cljs:153 msgid "dashboard.import.progress.process-components" msgstr "Traitement des composants" +#: src/app/main/ui/dashboard/import.cljs:150 msgid "dashboard.import.progress.process-media" msgstr "Médias en cours de traitement" +#: src/app/main/ui/dashboard/import.cljs:141 msgid "dashboard.import.progress.process-page" msgstr "Traitement de la page : %s" +#: src/app/main/ui/dashboard/import.cljs:147 msgid "dashboard.import.progress.process-typographies" msgstr "Traitement des typographies" +#: src/app/main/ui/dashboard/import.cljs:135 msgid "dashboard.import.progress.upload-data" msgstr "Envoi des données au serveur (%s/%s)" +#: src/app/main/ui/dashboard/import.cljs:138 msgid "dashboard.import.progress.upload-media" msgstr "Envoi du fichier : %s" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:109 msgid "dashboard.invite-profile" msgstr "Inviter des personnes" -#: src/app/main/ui/dashboard/sidebar.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:547, src/app/main/ui/dashboard/sidebar.cljs:556, src/app/main/ui/dashboard/sidebar.cljs:563, src/app/main/ui/dashboard/team.cljs:312 msgid "dashboard.leave-team" msgstr "Quitter l’équipe" +#: src/app/main/ui/dashboard/templates.cljs:88, src/app/main/ui/dashboard/templates.cljs:163 msgid "dashboard.libraries-and-templates" msgstr "Bibliothèques et Modèles" +#: src/app/main/ui/dashboard/templates.cljs:164 msgid "dashboard.libraries-and-templates.explore" msgstr "En explorez plus et découvrir comment contribuer" +#: src/app/main/ui/dashboard/import.cljs:365 msgid "dashboard.libraries-and-templates.import-error" msgstr "" "Il y avait un problème pendant l'importation de la modèle. La modèle n'est " "pas importé." -#: src/app/main/ui/dashboard/libraries.cljs +#: src/app/main/ui/dashboard/libraries.cljs:53 msgid "dashboard.libraries-title" msgstr "Bibliothèques Partagées" -#: src/app/main/ui/dashboard/grid.cljs +#: src/app/main/ui/dashboard/placeholder.cljs:45 msgid "dashboard.loading-files" msgstr "chargement de vos fichiers…" +#: src/app/main/ui/dashboard/fonts.cljs:431 msgid "dashboard.loading-fonts" msgstr "chargement de vos polices…" -#: src/app/main/ui/dashboard/project_menu.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:281, src/app/main/ui/dashboard/project_menu.cljs:100 msgid "dashboard.move-to" msgstr "Déplacer vers" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:245 msgid "dashboard.move-to-multi" msgstr "Déplacer %s fichiers vers" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:226 msgid "dashboard.move-to-other-team" msgstr "Déplacer vers une autre équipe" -#: src/app/main/ui/dashboard/projects.cljs, -#: src/app/main/ui/dashboard/files.cljs +#: src/app/main/ui/dashboard/files.cljs:105, src/app/main/ui/dashboard/projects.cljs:252, src/app/main/ui/dashboard/projects.cljs:253 msgid "dashboard.new-file" msgstr "+ Nouveau fichier" -#: src/app/main/data/dashboard.cljs +#: src/app/main/data/dashboard.cljs:958, src/app/main/data/dashboard.cljs:1181 msgid "dashboard.new-file-prefix" msgstr "Nouveau fichier" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:55 msgid "dashboard.new-project" msgstr "+ Nouveau projet" -#: src/app/main/data/dashboard.cljs +#: src/app/main/data/dashboard.cljs:726, src/app/main/data/dashboard.cljs:1184 msgid "dashboard.new-project-prefix" msgstr "Nouveau projet" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:60 msgid "dashboard.no-matches-for" msgstr "Aucune correspondance pour « %s »" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:827 msgid "dashboard.no-projects-placeholder" msgstr "Les projets épinglés apparaîtront ici" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:33 msgid "dashboard.notifications.email-changed-successfully" msgstr "Votre adresse e‑mail a été mise à jour avec succès" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:27 msgid "dashboard.notifications.email-verified-successfully" msgstr "Votre adresse e‑mail a été vérifiée avec succès" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:37 msgid "dashboard.notifications.password-saved" msgstr "Mot de passe enregistré avec succès !" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1081 msgid "dashboard.num-of-members" msgstr "%s membres" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:267 msgid "dashboard.open-in-new-tab" msgstr "Ouvrir fichier dans un nouvel onglet" +#: src/app/main/ui/dashboard/files.cljs:117, src/app/main/ui/dashboard/projects.cljs:260, src/app/main/ui/dashboard/projects.cljs:261 msgid "dashboard.options" msgstr "Options" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:106, src/app/main/ui/settings/password.cljs:119 msgid "dashboard.password-change" msgstr "Changer le mot de passe" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/pin_button.cljs:24, src/app/main/ui/dashboard/project_menu.cljs:95 msgid "dashboard.pin-unpin" msgstr "Épingler/Désépingler" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:51 msgid "dashboard.projects-title" msgstr "Projets" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:86 msgid "dashboard.remove-account" msgstr "Vous souhaitez supprimer votre compte ?" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "dashboard.remove-shared" msgstr "Retirer en tant que Bibliothèque Partagée" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:78 msgid "dashboard.save-settings" msgstr "Enregistrer les paramètres" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:246, src/app/main/ui/dashboard/sidebar.cljs:247 msgid "dashboard.search-placeholder" msgstr "Rechercher…" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:55 msgid "dashboard.searching-for" msgstr "Recherche de « %s »…" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:56 msgid "dashboard.select-ui-language" msgstr "Sélectionnez la langue de l’interface" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:63 msgid "dashboard.select-ui-theme" msgstr "Sélectionnez un thème" -#: src/app/main/ui/dashboard/grid.cljs +#: src/app/main/ui/dashboard/projects.cljs:282 msgid "dashboard.show-all-files" msgstr "Voir tous les fichiers" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:96 msgid "dashboard.success-delete-file" msgid_plural "dashboard.success-delete-file" msgstr[0] "Votre fichier a été supprimé avec succès" msgstr[1] "Vos fichiers ont été supprimés avec succès" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:59 msgid "dashboard.success-delete-project" msgstr "Votre projet a été supprimé avec succès" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:91 msgid "dashboard.success-duplicate-file" msgid_plural "dashboard.success-delete-file" msgstr[0] "Votre fichier a été dupliqué avec succès" msgstr[1] "Vos fichiers ont été dupliqués avec succès" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:33 msgid "dashboard.success-duplicate-project" msgstr "Votre projet a été dupliqué avec succès" -#: src/app/main/ui/dashboard/grid.cljs, src/app/main/ui/dashboard/sidebar.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:130, src/app/main/ui/dashboard/grid.cljs:558, src/app/main/ui/dashboard/sidebar.cljs:152 msgid "dashboard.success-move-file" msgstr "Votre fichier a été déplacé avec succès" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:129 msgid "dashboard.success-move-files" msgstr "Vos fichiers ont été déplacés avec succès" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:54 msgid "dashboard.success-move-project" msgstr "Votre projet a été déplacé avec succès" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1052 msgid "dashboard.team-info" msgstr "Information de l’équipe" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1070 msgid "dashboard.team-members" msgstr "Membres de l’équipe" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1085 msgid "dashboard.team-projects" msgstr "Projets de l’équipe" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:61 msgid "dashboard.theme-change" msgstr "Thème de l’interface" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:42 msgid "dashboard.title-search" msgstr "Résultats de recherche" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:50 msgid "dashboard.type-something" msgstr "Écrivez pour rechercher" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:287, src/app/main/ui/workspace/main_menu.cljs:566 msgid "dashboard.unpublish-shared" msgstr "Retirer la Bibliothèque" -#: src/app/main/ui/settings/profile.cljs, -#: src/app/main/ui/settings/password.cljs, -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:71 msgid "dashboard.update-settings" msgstr "Mettre à jour les paramètres" +#: src/app/main/ui/dashboard/team.cljs:861 msgid "dashboard.webhooks.active" msgstr "Actif" +#: src/app/main/ui/dashboard/team.cljs:862 msgid "dashboard.webhooks.active.explain" msgstr "Quand ce webhook sera activé, les détails de l'évènement seront envoyés" +#: src/app/main/ui/dashboard/team.cljs:852 msgid "dashboard.webhooks.content-type" msgstr "Type de contenu" +#: src/app/main/ui/dashboard/team.cljs:885 msgid "dashboard.webhooks.create" msgstr "Créer un webhook" +#: src/app/main/ui/dashboard/team.cljs:775 msgid "dashboard.webhooks.create.success" msgstr "Webhook créé avec succès." +#: src/app/main/ui/dashboard/team.cljs:882 msgid "dashboard.webhooks.description" msgstr "" "Les webhooks sont une manière simple de permettre à d'autres site web et " @@ -781,1218 +860,1414 @@ msgstr "" "dans Penpot. Nous enverrons une requête POST à toutes les URLs que vous " "avez indiquées." +#: src/app/main/ui/dashboard/team.cljs:1005 msgid "dashboard.webhooks.empty.add-one" msgstr "Appuyez sur le bouton « Ajouter un webhook » pour en ajouter un." +#: src/app/main/ui/dashboard/team.cljs:1004 msgid "dashboard.webhooks.empty.no-webhooks" msgstr "Aucun webhook créé jusqu’à présent." +#, unused msgid "dashboard.webhooks.update.success" msgstr "Webhook mis à jour avec succès." -#: src/app/main/ui/settings.cljs +#: src/app/main/ui/settings.cljs:31 msgid "dashboard.your-account-title" msgstr "Votre compte" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:70 msgid "dashboard.your-email" msgstr "E‑mail" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:62 msgid "dashboard.your-name" msgstr "Votre nom complet" -#: src/app/main/ui/dashboard/search.cljs, src/app/main/ui/dashboard/team.cljs, -#: src/app/main/ui/dashboard/libraries.cljs, -#: src/app/main/ui/dashboard/projects.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:38, src/app/main/ui/dashboard/fonts.cljs:33, src/app/main/ui/dashboard/libraries.cljs:42, src/app/main/ui/dashboard/projects.cljs:318, src/app/main/ui/dashboard/search.cljs:30, src/app/main/ui/dashboard/sidebar.cljs:312, src/app/main/ui/dashboard/team.cljs:495, src/app/main/ui/dashboard/team.cljs:729, src/app/main/ui/dashboard/team.cljs:991, src/app/main/ui/dashboard/team.cljs:1038 msgid "dashboard.your-penpot" msgstr "Votre Penpot" -#: src/app/main/ui/alert.cljs +#: src/app/main/ui/alert.cljs:32 msgid "ds.alert-ok" msgstr "Ok" -#: src/app/main/ui/alert.cljs +#: src/app/main/ui/alert.cljs:31, src/app/main/ui/alert.cljs:34 msgid "ds.alert-title" msgstr "Attention" -#: src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:83 msgid "ds.component-subtitle" msgstr "Composants à mettre à jour :" -#: src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:36, src/app/main/ui/workspace/plugins.cljs:246 msgid "ds.confirm-cancel" msgstr "Annuler" -#: src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:37, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:141 msgid "ds.confirm-ok" msgstr "Ok" -#: src/app/main/ui/confirm.cljs, src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:35, src/app/main/ui/confirm.cljs:39 msgid "ds.confirm-title" msgstr "Êtes‑vous sûr ?" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/data/users.cljs:705 +msgid "errors.auth-provider-not-allowed" +msgstr "Le fournisseur d'authentification n'est pas autorisé pour ce profil" + +#: src/app/main/ui/auth/login.cljs:62 msgid "errors.auth-provider-not-configured" msgstr "Fournisseur d'authentification non configuré." +#: src/app/main/errors.cljs:104 msgid "errors.auth.unable-to-login" msgstr "Il semblerait que vous n'êtes pas authentifié ou que votre session a expiré." +#: src/app/main/data/fonts.cljs:189 msgid "errors.bad-font" msgstr "La police %s n'a pas pu être chargée" +#: src/app/main/data/fonts.cljs:188 msgid "errors.bad-font-plural" msgstr "Les polices %s n'ont pas pu être chargées" +#: src/app/main/data/workspace/media.cljs:198 msgid "errors.cannot-upload" msgstr "Impossible de télécharger le fichier média." -#: src/app/main/data/workspace.cljs +#: src/app/main/data/workspace.cljs:1598 msgid "errors.clipboard-not-implemented" msgstr "Votre navigateur ne peut pas effectuer cette opération" -#: src/app/main/ui/auth/verify_token.cljs, -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/auth/verify_token.cljs:82, src/app/main/ui/settings/change_email.cljs:46 msgid "errors.email-already-exists" msgstr "Adresse e‑mail déjà utilisée" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:87 msgid "errors.email-already-validated" msgstr "Adresse e‑mail déjà validée." +#: src/app/main/ui/settings/password.cljs:28 msgid "errors.email-as-password" msgstr "Vous ne pouvez pas utiliser votre adresse e-mail comme mot de passe" -#: src/app/main/ui/auth/register.cljs, -#: src/app/main/ui/auth/recovery_request.cljs, -#: src/app/main/ui/settings/change_email.cljs, -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/data/users.cljs:707, src/app/main/ui/auth/register.cljs:63 +msgid "errors.email-domain-not-allowed" +msgstr "Domaine non autorisé" + +#: src/app/main/ui/auth/recovery_request.cljs:63, src/app/main/ui/dashboard/team.cljs:578, src/app/main/ui/settings/change_email.cljs:54 msgid "errors.email-has-permanent-bounces" msgstr "L'adresse e-mail « %s » a un taux de rebond trop élevé." -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs, src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/login.cljs:81, src/app/main/ui/auth/recovery_request.cljs:31, src/app/main/ui/auth/register.cljs:43 msgid "errors.email-invalid" msgstr "Veuillez entrer une adresse mail valide" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:35 msgid "errors.email-invalid-confirmation" msgstr "L’adresse e‑mail de confirmation doit correspondre" +#: src/app/main/ui/dashboard/team.cljs:170 msgid "errors.email-spam-or-permanent-bounces" msgstr "L'e-mail \"%s\" a été signalé comme spam ou a été rejeté." -#: src/app/main/errors.cljs +#: src/app/main/errors.cljs:227 msgid "errors.feature-mismatch" msgstr "" "Il semble que vous ouvrez un fichier qui a la fonctionnalité '%s' activée, " "mais votre interface Penpot ne la prend pas en charge ou l'a désactivée." -#: src/app/main/errors.cljs +#: src/app/main/errors.cljs:231, src/app/main/errors.cljs:245 msgid "errors.feature-not-supported" msgstr "La fonctionnalité '%s' n'est pas prise en charge." -#: src/app/main/errors.cljs +#: src/app/main/errors.cljs:223 msgid "errors.file-feature-mismatch" msgstr "" "Il semble y avoir une incompatibilité entre les fonctionnalités actives et " "celles du fichier que tentez d'ouvrir. Vous devez activer les migrations " "pour '%s' avant de pouvoir ouvrir le fichier." -#: src/app/main/ui/auth/verify_token.cljs, -#: src/app/main/ui/settings/feedback.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/data/users.cljs:709, src/app/main/ui/auth/login.cljs:65, src/app/main/ui/auth/login.cljs:116, src/app/main/ui/auth/register.cljs:69, src/app/main/ui/auth/register.cljs:237, src/app/main/ui/auth/verify_token.cljs:92, src/app/main/ui/dashboard/team.cljs:173, src/app/main/ui/onboarding/team_choice.cljs:95, src/app/main/ui/settings/access_tokens.cljs:91, src/app/main/ui/settings/feedback.cljs:52 msgid "errors.generic" msgstr "Un problème s’est produit." -#: src/app/main/ui/components/color_input.cljs +#: src/app/main/ui/components/color_input.cljs:57 msgid "errors.invalid-color" msgstr "Couleur invalide" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/static.cljs:43 msgid "errors.invite-invalid" msgstr "Invitation invalide" +#: src/app/main/ui/static.cljs:44 msgid "errors.invite-invalid.info" msgstr "Cette invitation est peut-être été annulée ou a expiré." -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:101 msgid "errors.ldap-disabled" msgstr "Authentification LDAP désactivée." -#: src/app/main/errors.cljs +#: src/app/main/errors.cljs:239 msgid "errors.max-quote-reached" msgstr "" "Vous avez atteint le quota maximum de '%s'. Veuillez contacter le support " "technique." -#: src/app/main/data/workspace/persistence.cljs +#: src/app/main/data/workspace/media.cljs:184 msgid "errors.media-too-large" msgstr "L’image est trop grande." -#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs +#: src/app/main/data/media.cljs:68, src/app/main/data/workspace/media.cljs:187 msgid "errors.media-type-mismatch" msgstr "" "Il semble que le contenu de l’image ne correspond pas à l’extension de " "fichier." -#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs +#: src/app/main/data/media.cljs:65, src/app/main/data/workspace/media.cljs:172, src/app/main/data/workspace/media.cljs:175, src/app/main/data/workspace/media.cljs:178, src/app/main/data/workspace/media.cljs:181 msgid "errors.media-type-not-allowed" msgstr "L’image ne semble pas être valide." -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:574 msgid "errors.member-is-muted" msgstr "" "L'adresse e-mail du profil que vous invitez est ignorée (signalée comme " "spam ou taux de rebond élevé)." -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:61 msgid "errors.password-invalid-confirmation" msgstr "Le mot de passe de confirmation doit correspondre" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:64 msgid "errors.password-too-short" msgstr "Le mot de passe doit contenir au moins 8 caractères" +#: src/app/main/errors.cljs:124 +msgid "errors.paste-data-validation" +msgstr "Données du presse-papier invalides" + +#: src/app/main/data/users.cljs:703, src/app/main/ui/auth/login.cljs:97, src/app/main/ui/auth/login.cljs:105 msgid "errors.profile-blocked" msgstr "Le profil est bloqué" -#: src/app/main/ui/auth/recovery_request.cljs, -#: src/app/main/ui/settings/change_email.cljs, -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/auth/recovery_request.cljs:60, src/app/main/ui/dashboard/team.cljs:164, src/app/main/ui/dashboard/team.cljs:570, src/app/main/ui/settings/change_email.cljs:50 msgid "errors.profile-is-muted" msgstr "" "L'adresse e-mail de votre profil est ignorée (signalée comme spam ou taux " "de rebond élevé)." -#: src/app/main/ui/auth/register.cljs +#: src/app/main/data/users.cljs:701, src/app/main/ui/auth/register.cljs:60 msgid "errors.registration-disabled" msgstr "L’enregistrement est actuellement désactivé." -#: src/app/main/errors.cljs +#: src/app/main/errors.cljs:218 msgid "errors.team-feature-mismatch" msgstr "Fonctionnalité incompatible détectée '%s'" +#: src/app/main/ui/dashboard/sidebar.cljs:365, src/app/main/ui/dashboard/team.cljs:359 msgid "errors.team-leave.insufficient-members" msgstr "" "Il n'y a pas assez de membres pour quitter l'équipe, vous voulez " "probablement la supprimer." +#: src/app/main/ui/dashboard/sidebar.cljs:368, src/app/main/ui/dashboard/team.cljs:362 msgid "errors.team-leave.member-does-not-exists" msgstr "Le membre que vous essayez d'assigner n'existe pas." +#: src/app/main/ui/dashboard/sidebar.cljs:371, src/app/main/ui/dashboard/team.cljs:365 msgid "errors.team-leave.owner-cant-leave" msgstr "" "Le propriétaire ne peut pas quitter l'équipe, vous devez réassigner le rôle " "de propriétaire." -#: src/app/main/data/media.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs +#: src/app/main/data/media.cljs:71 msgid "errors.unexpected-error" msgstr "Une erreur inattendue s’est produite." -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:60 msgid "errors.unexpected-token" msgstr "Jeton inconnu" -#: src/app/main/errors.cljs +#, unused +msgid "errors.validation" +msgstr "Erreur de validation" + +#: src/app/main/errors.cljs:235 msgid "errors.version-not-supported" msgstr "Le numéro de version du fichier est incompatible" +#: src/app/main/ui/dashboard/team.cljs:796 msgid "errors.webhooks.connection" msgstr "Erreur de connexion, URL inaccessible" +#: src/app/main/ui/dashboard/team.cljs:790 msgid "errors.webhooks.invalid-uri" msgstr "L'URL ne passe pas la validation." +#: src/app/main/ui/dashboard/team.cljs:949 msgid "errors.webhooks.last-delivery" msgstr "Il y a eu une erreur dans le dernier envoi." +#: src/app/main/ui/dashboard/team.cljs:792, src/app/main/ui/dashboard/team.cljs:952 msgid "errors.webhooks.ssl-validation" msgstr "Erreur lors de la validation SSL." +#: src/app/main/ui/dashboard/team.cljs:794 msgid "errors.webhooks.timeout" msgstr "Délai d'attente dépassé" +#: src/app/main/ui/dashboard/team.cljs:788 msgid "errors.webhooks.unexpected" msgstr "Erreur inattendue lors de la validation" +#: src/app/main/ui/dashboard/team.cljs:798, src/app/main/ui/dashboard/team.cljs:955 msgid "errors.webhooks.unexpected-status" msgstr "Statut inattendu %s" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:109, src/app/main/ui/auth/login.cljs:113 msgid "errors.wrong-credentials" msgstr "E-mail ou mot de passe incorrect." -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:25 msgid "errors.wrong-old-password" msgstr "L’ancien mot de passe est incorrect" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:77 msgid "feedback.description" msgstr "Description" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:95 msgid "feedback.discourse-go-to" msgstr "Accéder au forum Penpot" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:89 msgid "feedback.discourse-subtitle1" msgstr "" "Nous sommes heureux de vous avoir ici. Si vous avez besoin d'aide, merci " "d'effectuer une recherche avant de poster." -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:88 msgid "feedback.discourse-title" msgstr "Communauté Penpot" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:72 msgid "feedback.subject" msgstr "Sujet" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:69 msgid "feedback.subtitle" msgstr "" "Veuillez décrire la raison de votre e-mail, en précisant s'il s'agit d'un " "problème, d'une idée ou d'un doute. Un membre de notre équipe vous répondra " "dans les plus brefs délais." -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:68 msgid "feedback.title" msgstr "Email" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:105 msgid "feedback.twitter-go-to" msgstr "Accéder à X" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:99 msgid "feedback.twitter-subtitle1" msgstr "Nous sommes là pour répondre à vos questions techniques." -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:98 msgid "feedback.twitter-title" msgstr "Compte d’assistance X" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:30 msgid "generic.error" msgstr "Une erreur s’est produite" -#: src/app/main/ui/inspect/attributes/blur.cljs +#: src/app/main/ui/viewer/inspect/attributes/blur.cljs:26 msgid "inspect.attributes.blur" msgstr "Flou" -#: src/app/main/ui/inspect/attributes/blur.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:115 msgid "inspect.attributes.blur.value" msgstr "Valeur" -#: src/app/main/ui/inspect/attributes/common.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:112 msgid "inspect.attributes.color.hex" msgstr "HEX" -#: src/app/main/ui/inspect/attributes/common.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:114 msgid "inspect.attributes.color.hsla" msgstr "HSLA" -#: src/app/main/ui/inspect/attributes/common.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:113 msgid "inspect.attributes.color.rgba" msgstr "RGBA" -#: src/app/main/ui/inspect/attributes/fill.cljs +#: src/app/main/ui/viewer/inspect/attributes/fill.cljs:57 msgid "inspect.attributes.fill" msgstr "Remplir" -#: src/app/main/ui/inspect/attributes/image.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:99, src/app/main/ui/viewer/inspect/attributes/image.cljs:51 msgid "inspect.attributes.image.download" msgstr "Télécharger l’image source" -#: src/app/main/ui/inspect/attributes/image.cljs +#: src/app/main/ui/viewer/inspect/attributes/image.cljs:39 msgid "inspect.attributes.image.height" msgstr "Hauteur" -#: src/app/main/ui/inspect/attributes/image.cljs +#: src/app/main/ui/viewer/inspect/attributes/image.cljs:32 msgid "inspect.attributes.image.width" msgstr "Largeur" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout" msgstr "Mise en page" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.height" msgstr "Hauteur" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.left" msgstr "Gauche" -#: src/app/main/ui/inspect/attributes/layout.cljs, -#: src/app/main/ui/inspect/attributes/layout.cljs +#: src/app/main/ui/inspect/attributes/layout.cljs, src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.radius" msgstr "Rayon" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.rotation" msgstr "Rotation" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.top" msgstr "Haut" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.width" msgstr "Largeur" -#: src/app/main/ui/inspect/attributes/shadow.cljs +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:57 msgid "inspect.attributes.shadow" msgstr "Ombre" -#: src/app/main/ui/inspect/attributes/layout.cljs +#: src/app/main/ui/viewer/inspect/attributes/geometry.cljs:40 msgid "inspect.attributes.size" msgstr "Taille et position" -#: src/app/main/ui/inspect/attributes/stroke.cljs +#: src/app/main/ui/viewer/inspect/attributes/stroke.cljs:52 msgid "inspect.attributes.stroke" msgstr "Contour" +#, permanent, unused msgid "inspect.attributes.stroke.alignment.center" msgstr "Centre" +#, permanent, unused msgid "inspect.attributes.stroke.alignment.inner" msgstr "Intérieur" +#, permanent, unused msgid "inspect.attributes.stroke.alignment.outer" msgstr "Extérieur" +#, unused msgid "inspect.attributes.stroke.style.dotted" msgstr "Pointillé" +#, unused msgid "inspect.attributes.stroke.style.mixed" msgstr "Mixte" +#, unused msgid "inspect.attributes.stroke.style.none" msgstr "Aucun" +#, unused msgid "inspect.attributes.stroke.style.solid" msgstr "Solide" #: src/app/main/ui/inspect/attributes/stroke.cljs +#, unused msgid "inspect.attributes.stroke.width" msgstr "Épaisseur" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:81, src/app/main/ui/viewer/inspect/attributes/text.cljs:194 msgid "inspect.attributes.typography" msgstr "Typographie" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:89 msgid "inspect.attributes.typography.font-family" msgstr "Police de caractères" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:107 msgid "inspect.attributes.typography.font-size" msgstr "Taille de police" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:98 msgid "inspect.attributes.typography.font-style" msgstr "Style de police" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:116 msgid "inspect.attributes.typography.font-weight" msgstr "Graisse de la police" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:134 msgid "inspect.attributes.typography.letter-spacing" msgstr "Interlettrage" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:125 msgid "inspect.attributes.typography.line-height" msgstr "Interlignage" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:143 msgid "inspect.attributes.typography.text-decoration" msgstr "Décoration de texte" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:145 msgid "inspect.attributes.typography.text-decoration.none" msgstr "Aucune" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:146 msgid "inspect.attributes.typography.text-decoration.strikethrough" msgstr "Barré" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:147 msgid "inspect.attributes.typography.text-decoration.underline" msgstr "Soulignage" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:156 msgid "inspect.attributes.typography.text-transform" msgstr "Transformation de texte" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:158 msgid "inspect.attributes.typography.text-transform.lowercase" msgstr "Minuscule" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:159 msgid "inspect.attributes.typography.text-transform.none" msgstr "Aucune" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:160 msgid "inspect.attributes.typography.text-transform.titlecase" msgstr "Premières Lettres en Capitales" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:162 +msgid "inspect.attributes.typography.text-transform.unset" +msgstr "Non assigné" + +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:161 msgid "inspect.attributes.typography.text-transform.uppercase" msgstr "Capitales" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:140 msgid "inspect.empty.help" msgstr "Pour en savoir plus sur l'inspection, visitez le centre d'aide de Penpot" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:143 msgid "inspect.empty.more-info" msgstr "Plus d'informations sur l'inspection" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:135 msgid "inspect.empty.select" msgstr "" "Sélectionnez une forme, un plan de travail ou un groupe pour inspecter " "leurs propriétés et le code" -#: src/app/main/ui/inspect/right_sidebar.cljs +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:125 msgid "inspect.tabs.code" msgstr "Code" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:98 msgid "inspect.tabs.code.selected.circle" msgstr "Cercle" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:99 msgid "inspect.tabs.code.selected.component" msgstr "Composant" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:100 msgid "inspect.tabs.code.selected.curve" msgstr "Courbe" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:101 msgid "inspect.tabs.code.selected.frame" msgstr "Plan de travail" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:102 msgid "inspect.tabs.code.selected.group" msgstr "Groupe" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:103 msgid "inspect.tabs.code.selected.image" msgstr "Image" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:104 msgid "inspect.tabs.code.selected.mask" msgstr "Masque" -#: src/app/main/ui/inspect/right_sidebar.cljs +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:93 msgid "inspect.tabs.code.selected.multiple" msgstr "%s Sélectionné" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:105 msgid "inspect.tabs.code.selected.path" msgstr "Chemin" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:106 msgid "inspect.tabs.code.selected.rect" msgstr "Rectangle" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:107 msgid "inspect.tabs.code.selected.svg-raw" msgstr "SVG" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:108 msgid "inspect.tabs.code.selected.text" msgstr "Texte" -#: src/app/main/ui/inspect/right_sidebar.cljs +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:115 msgid "inspect.tabs.info" msgstr "Information" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:158 msgid "label.shortcuts" msgstr "Raccourcis" +#: src/app/main/ui/dashboard/import.cljs:527 msgid "labels.accept" msgstr "Accepter" -#: src/app/main/ui/settings/sidebar.cljs +#: src/app/main/ui/settings/sidebar.cljs:100 msgid "labels.access-tokens" msgstr "Jetons d'accès" +#: src/app/main/ui/dashboard/team.cljs:968 msgid "labels.active" msgstr "Activé" +#: src/app/main/ui/dashboard/fonts.cljs:175 msgid "labels.add-custom-font" msgstr "Ajouter police personnalisée" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:120, src/app/main/ui/dashboard/team.cljs:276, src/app/main/ui/dashboard/team.cljs:519, src/app/main/ui/dashboard/team.cljs:549, src/app/main/ui/onboarding/team_choice.cljs:67 msgid "labels.admin" msgstr "Administration" +#: src/app/main/ui/onboarding/questions.cljs:174 +msgid "labels.adobe-xd" +msgstr "Adobe XD" + #: src/app/main/ui/workspace/comments.cljs +#, unused msgid "labels.all" msgstr "Tous" +#: src/app/main/ui/auth.cljs:37 msgid "labels.and" msgstr "et" +#: src/app/main/ui/onboarding/team_choice.cljs:162 msgid "labels.back" msgstr "Retour" -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:59 msgid "labels.bad-gateway.desc-message" msgstr "" "Il semble que vous deviez attendre un peu et réessayer ; nous effectuons " "une petite maintenance de nos serveurs." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:58 msgid "labels.bad-gateway.main-message" msgstr "Bad Gateway" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/data/common.cljs:112, src/app/main/ui/dashboard/change_owner.cljs:69, src/app/main/ui/dashboard/import.cljs:514, src/app/main/ui/dashboard/team.cljs:868, src/app/main/ui/delete_shared.cljs:35, src/app/main/ui/export.cljs:164, src/app/main/ui/export.cljs:460, src/app/main/ui/settings/access_tokens.cljs:188, src/app/main/ui/viewer/share_link.cljs:203, src/app/main/ui/workspace/sidebar/assets/groups.cljs:149 msgid "labels.cancel" msgstr "Annuler" +#: src/app/main/ui/onboarding/questions.cljs:176 +msgid "labels.canva" +msgstr "Canevas" + +#: src/app/main/ui/dashboard/projects.cljs:93, src/app/main/ui/export.cljs:478, src/app/main/ui/settings/access_tokens.cljs:183, src/app/main/ui/viewer/login.cljs:77, src/app/main/ui/viewer/share_link.cljs:174, src/app/main/ui/workspace/libraries.cljs:522 msgid "labels.close" msgstr "Fermer" -#: src/app/main/ui/dashboard/comments.cljs +#: src/app/main/ui/dashboard/comments.cljs:104, src/app/main/ui/viewer/comments.cljs:70, src/app/main/ui/workspace/comments.cljs:126 msgid "labels.comments" msgstr "Commentaires" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:985, src/app/main/ui/workspace/main_menu.cljs:110 msgid "labels.community" msgstr "Communauté" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:103 msgid "labels.confirm-password" msgstr "Confirmer le mot de passe" +#: src/app/main/ui/dashboard/import.cljs:520, src/app/main/ui/export.cljs:465, src/app/main/ui/onboarding/newsletter.cljs:101 msgid "labels.continue" msgstr "Continuer" +#, unused msgid "labels.continue-with" msgstr "Continuer avec" +#: src/app/main/ui/viewer/login.cljs:75 msgid "labels.continue-with-penpot" msgstr "Vous pouvez continuer avec un compte Penpot" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:642 msgid "labels.copy-invitation-link" msgstr "Copier le lien" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:157, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:190 msgid "labels.create" msgstr "Créer" -#: src/app/main/ui/dashboard/team_form.cljs, -#: src/app/main/ui/dashboard/team_form.cljs +#: src/app/main/ui/dashboard/team_form.cljs:101, src/app/main/ui/dashboard/team_form.cljs:121 msgid "labels.create-team" msgstr "Créer nouvelle équipe" -#: src/app/main/ui/dashboard/team_form.cljs +#: src/app/main/ui/dashboard/team_form.cljs:113 msgid "labels.create-team.placeholder" msgstr "Entrer le nom de la nouvelle équipe" +#, unused msgid "labels.custom-fonts" msgstr "Polices personnalisées" -#: src/app/main/ui/settings/sidebar.cljs +#: src/app/main/ui/settings/sidebar.cljs:73 msgid "labels.dashboard" msgstr "Tableau de bord" -#: src/app/main/ui/dashboard/project_menu.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:306, src/app/main/ui/dashboard/fonts.cljs:255, src/app/main/ui/dashboard/fonts.cljs:332, src/app/main/ui/dashboard/fonts.cljs:346, src/app/main/ui/dashboard/project_menu.cljs:115, src/app/main/ui/dashboard/team.cljs:904, src/app/main/ui/settings/access_tokens.cljs:209, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:209 msgid "labels.delete" msgstr "Supprimer" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:357 msgid "labels.delete-comment" msgstr "Supprimer le commentaire" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:354 msgid "labels.delete-comment-thread" msgstr "Supprimer le fil" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:648 msgid "labels.delete-invitation" msgstr "Supprimer l'invitation" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:262 msgid "labels.delete-multi-files" msgstr "Supprimer %s fichiers" +#: src/app/main/ui/onboarding/questions.cljs:250 +msgid "labels.developer" +msgstr "Développeur" + +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:199 msgid "labels.discard" msgstr "Rejeter" -#: src/app/main/ui/dashboard/projects.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs, -#: src/app/main/ui/dashboard/files.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:28, src/app/main/ui/dashboard/files.cljs:72, src/app/main/ui/dashboard/files.cljs:156, src/app/main/ui/dashboard/projects.cljs:220, src/app/main/ui/dashboard/projects.cljs:224, src/app/main/ui/dashboard/sidebar.cljs:791 msgid "labels.drafts" msgstr "Brouillons" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:350, src/app/main/ui/dashboard/fonts.cljs:252, src/app/main/ui/dashboard/team.cljs:902, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:205 msgid "labels.edit" msgstr "Modifier" +#, unused msgid "labels.edit-file" msgstr "Modifier le fichier" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:118, src/app/main/ui/dashboard/team.cljs:279, src/app/main/ui/dashboard/team.cljs:520, src/app/main/ui/dashboard/team.cljs:553, src/app/main/ui/onboarding/team_choice.cljs:66 msgid "labels.editor" msgstr "Éditeur" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:661 msgid "labels.expired-invitation" msgstr "Expirée" +#: src/app/main/ui/export.cljs:173 msgid "labels.export" msgstr "Exporter" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:51 msgid "labels.feedback-disabled" msgstr "Avis désactivés" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:42 msgid "labels.feedback-sent" msgstr "Avis envoyé" +#: src/app/main/ui/onboarding/questions.cljs:170 +msgid "labels.figma" +msgstr "Figma" + +#: src/app/main/ui/dashboard/fonts.cljs:412 msgid "labels.font-family" msgstr "Famille de polices" +#, unused msgid "labels.font-providers" msgstr "Fournisseurs de polices" +#: src/app/main/ui/dashboard/fonts.cljs:413 msgid "labels.font-variants" msgstr "Styles" +#: src/app/main/ui/dashboard/fonts.cljs:52, src/app/main/ui/dashboard/sidebar.cljs:811 msgid "labels.fonts" msgstr "Polices" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/onboarding/questions.cljs:263 +msgid "labels.founder" +msgstr "Fondateur/Direction" + +#: src/app/main/ui/onboarding/questions.cljs:262 +msgid "labels.freelancer" +msgstr "Je suis freelance" + +#: src/app/main/ui/dashboard/sidebar.cljs:1015, src/app/main/ui/workspace/main_menu.cljs:142 msgid "labels.github-repo" msgstr "Dépôt GitHub" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/settings/sidebar.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:1032, src/app/main/ui/settings/sidebar.cljs:113, src/app/main/ui/workspace/main_menu.cljs:171 msgid "labels.give-feedback" msgstr "Donnez votre avis" +#: src/app/main/ui/auth/recovery_request.cljs:110, src/app/main/ui/auth/register.cljs:285, src/app/main/ui/viewer/login.cljs:117 msgid "labels.go-back" msgstr "Retour" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:978, src/app/main/ui/workspace/main_menu.cljs:102 msgid "labels.help-center" msgstr "Centre d'aide" -#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/comments.cljs:103, src/app/main/ui/workspace/comments.cljs:67 msgid "labels.hide-resolved-comments" msgstr "Masquer les commentaires résolus" +#: src/app/main/ui/dashboard/team.cljs:969 msgid "labels.inactive" msgstr "Inactif" +#: src/app/main/ui/dashboard/fonts.cljs:410 msgid "labels.installed-fonts" msgstr "Polices installées" -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:144 msgid "labels.internal-error.desc-message" msgstr "" "Un problème s’est produit. Veuillez réessayer l’opération et, si le " "problème persiste, contacter le service technique." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:143 msgid "labels.internal-error.main-message" msgstr "Erreur interne" -#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/onboarding/questions.cljs:178 +msgid "labels.invision" +msgstr "InVision" + +#: src/app/main/ui/dashboard/sidebar.cljs:516, src/app/main/ui/dashboard/team.cljs:89, src/app/main/ui/dashboard/team.cljs:97, src/app/main/ui/dashboard/team.cljs:708 msgid "labels.invitations" msgstr "Invitations" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:51 msgid "labels.language" msgstr "Langue" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:1008, src/app/main/ui/workspace/main_menu.cljs:134 msgid "labels.libraries-and-templates" msgstr "Bibliothèques et modèles" +#: src/app/main/ui/viewer/header.cljs:203 msgid "labels.log-or-sign" msgstr "Se connecter ou s'inscrire" -#: src/app/main/ui/settings.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:1040 msgid "labels.logout" msgstr "Se déconnecter" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/onboarding/questions.cljs:253 +msgid "labels.marketing" +msgstr "Marketing" + +#: src/app/main/ui/dashboard/team.cljs:468 msgid "labels.member" msgstr "Membre" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:510, src/app/main/ui/dashboard/team.cljs:87, src/app/main/ui/dashboard/team.cljs:95 msgid "labels.members" msgstr "Membres" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:96 msgid "labels.new-password" msgstr "Nouveau mot de passe" -#: src/app/main/ui/workspace/comments.cljs, -#: src/app/main/ui/dashboard/comments.cljs +#: src/app/main/ui/dashboard/templates.cljs:269, src/app/main/ui/onboarding/questions.cljs:55 +msgid "labels.next" +msgstr "Suivant" + +#: src/app/main/ui/dashboard/comments.cljs:128, src/app/main/ui/workspace/comments.cljs:161 msgid "labels.no-comments-available" msgstr "Vous n’avez aucune notification de commentaire en attente." -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:694 msgid "labels.no-invitations" msgstr "Aucune invitation en attente." -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:696 #, markdown msgid "labels.no-invitations-hint" msgstr "" "Appuyez sur le bouton \"Inviter des personnes\" pour inviter d'autres " "membres à cette équipe." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:50 msgid "labels.not-found.desc-message" msgstr "" "Cette page n’existe pas ou vous ne disposez pas des permissions nécessaires " "pour y accéder." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:49 msgid "labels.not-found.main-message" msgstr "Oups !" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/projects.cljs:239, src/app/main/ui/dashboard/team.cljs:1095 msgid "labels.num-of-files" msgid_plural "labels.num-of-files" msgstr[0] "1 fichier" msgstr[1] "%s fichiers" +#: src/app/main/ui/viewer/thumbnails.cljs:80 msgid "labels.num-of-frames" msgid_plural "labels.num-of-frames" msgstr[0] "1 plan de travail" msgstr[1] "%s plans de travail" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1090 msgid "labels.num-of-projects" msgid_plural "labels.num-of-projects" msgstr[0] "1 projet" msgstr[1] "%s projets" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:89 msgid "labels.old-password" msgstr "Ancien mot de passe" #: src/app/main/ui/workspace/comments.cljs +#, unused msgid "labels.only-yours" msgstr "Seulement les vôtres" +#, unused msgid "labels.or" msgstr "ou" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/onboarding/questions.cljs:145, src/app/main/ui/onboarding/questions.cljs:214, src/app/main/ui/onboarding/questions.cljs:303, src/app/main/ui/onboarding/questions.cljs:316, src/app/main/ui/onboarding/questions.cljs:389, src/app/main/ui/onboarding/questions.cljs:447 +msgid "labels.other" +msgstr "Autres (préciser)" + +#: src/app/main/ui/dashboard/team.cljs:286, src/app/main/ui/dashboard/team.cljs:518, src/app/main/ui/dashboard/team.cljs:1076 msgid "labels.owner" msgstr "Propriétaire" -#: src/app/main/ui/settings/sidebar.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/settings/sidebar.cljs:87 msgid "labels.password" msgstr "Mot de passe" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:662 msgid "labels.pending-invitation" msgstr "En attente" -#: src/app/main/ui/settings/sidebar.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/onboarding/questions.cljs:51 +msgid "labels.previous" +msgstr "Précédent" + +#: src/app/main/ui/onboarding/questions.cljs:254 +msgid "labels.product-management" +msgstr "Gestionnaire de produit ou de projet" + +#: src/app/main/ui/settings/profile.cljs:118, src/app/main/ui/settings/sidebar.cljs:82 msgid "labels.profile" msgstr "Profil" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:784 msgid "labels.projects" msgstr "Projets" -#: src/app/main/ui/settings/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:998, src/app/main/ui/settings/sidebar.cljs:106, src/app/main/ui/workspace/main_menu.cljs:126 msgid "labels.release-notes" msgstr "Notes de version" #: src/app/main/ui/workspace.cljs +#, unused msgid "labels.reload-file" msgstr "Actualiser le fichier" -#: src/app/main/ui/workspace/libraries.cljs, -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/workspace/libraries.cljs, src/app/main/ui/dashboard/team.cljs +#, unused msgid "labels.remove" msgstr "Retirer" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:316 msgid "labels.remove-member" msgstr "Retirer le membre" -#: src/app/main/ui/dashboard/sidebar.cljs, -#: src/app/main/ui/dashboard/project_menu.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:271, src/app/main/ui/dashboard/project_menu.cljs:85, src/app/main/ui/dashboard/sidebar.cljs:539, src/app/main/ui/workspace/sidebar/assets/groups.cljs:157 msgid "labels.rename" msgstr "Renommer" -#: src/app/main/ui/dashboard/team_form.cljs +#: src/app/main/ui/dashboard/team_form.cljs:99 msgid "labels.rename-team" msgstr "Renommer l'équipe" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:645 msgid "labels.resend-invitation" msgstr "Renvoyer l'invitation" -#: src/app/main/ui/static.cljs, src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:61, src/app/main/ui/static.cljs:70, src/app/main/ui/static.cljs:148 msgid "labels.retry" msgstr "Réessayer" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:469, src/app/main/ui/dashboard/team.cljs:709 msgid "labels.role" msgstr "Rôle" +#: src/app/main/ui/dashboard/fonts.cljs:380, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:191 msgid "labels.save" msgstr "Enregistrer" +#: src/app/main/ui/onboarding/questions.cljs:414, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:436 +msgid "labels.search" +msgstr "Rechercher" + +#: src/app/main/ui/dashboard/fonts.cljs:415 msgid "labels.search-font" msgstr "Rechercher une police" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/onboarding/questions.cljs:90, src/app/main/ui/onboarding/questions.cljs:248, src/app/main/ui/onboarding/questions.cljs:259, src/app/main/ui/onboarding/questions.cljs:270 +msgid "labels.select-option" +msgstr "Sélectionnez une option" + +#: src/app/main/ui/settings/feedback.cljs:82 msgid "labels.send" msgstr "Envoyer" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:82 msgid "labels.sending" msgstr "Envoi…" -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:68 msgid "labels.service-unavailable.desc-message" msgstr "Nous sommes en maintenance planifiée de nos systèmes." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:67 msgid "labels.service-unavailable.main-message" msgstr "Service non disponible" -#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:530, src/app/main/ui/dashboard/team.cljs:88, src/app/main/ui/dashboard/team.cljs:102, src/app/main/ui/settings/options.cljs:84, src/app/main/ui/settings/sidebar.cljs:93 msgid "labels.settings" msgstr "Configuration" -#: src/app/main/ui/viewer/header.cljs, src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/header.cljs:199 +msgid "labels.share" +msgstr "Partager" + +#, unused msgid "labels.share-prototype" msgstr "Partager le prototype" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:800 msgid "labels.shared-libraries" msgstr "Bibliothèques Partagées" -#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/comments.cljs:82, src/app/main/ui/workspace/comments.cljs:55, src/app/main/ui/workspace/comments.cljs:135 msgid "labels.show-all-comments" msgstr "Afficher tous les commentaires" +#: src/app/main/ui/viewer/comments.cljs:115 msgid "labels.show-comments-list" msgstr "Afficher la liste des commentaires" -#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/comments.cljs:91, src/app/main/ui/workspace/comments.cljs:61, src/app/main/ui/workspace/comments.cljs:136 msgid "labels.show-your-comments" msgstr "Afficher uniquement vos commentaires" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/onboarding/questions.cljs:172 +msgid "labels.sketch" +msgstr "Sketch" + +#: src/app/main/ui/onboarding/questions.cljs:56 +msgid "labels.start" +msgstr "Commencer" + +#: src/app/main/ui/dashboard/team.cljs:710 msgid "labels.status" msgstr "Statut" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/onboarding/questions.cljs:251 +msgid "labels.student-teacher" +msgstr "Étudiant ou enseignant" + +#: src/app/main/ui/dashboard/sidebar.cljs:992, src/app/main/ui/workspace/main_menu.cljs:118 msgid "labels.tutorials" msgstr "Tutoriels" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:256 msgid "labels.unpublish-multi-files" msgstr "Dépublier %s fichiers" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:103 msgid "labels.update" msgstr "Actualiser" -#: src/app/main/ui/dashboard/team_form.cljs +#: src/app/main/ui/dashboard/team_form.cljs:120 msgid "labels.update-team" msgstr "Mettre à jour l'équipe" +#: src/app/main/ui/dashboard/fonts.cljs:241 msgid "labels.upload" msgstr "Télécharger" +#: src/app/main/ui/dashboard/fonts.cljs:169 msgid "labels.upload-custom-fonts" msgstr "Télécharger des polices personnalisées" +#: src/app/main/ui/dashboard/fonts.cljs:240 msgid "labels.uploading" msgstr "Téléchargement…" +#: src/app/main/ui/workspace/sidebar/sitemap.cljs:223 msgid "labels.view-only" msgstr "Lecture seule" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:123, src/app/main/ui/dashboard/team.cljs:282, src/app/main/ui/dashboard/team.cljs:521 msgid "labels.viewer" msgstr "Spectateur" +#: src/app/main/ui/dashboard/sidebar.cljs:523, src/app/main/ui/dashboard/team.cljs:90, src/app/main/ui/dashboard/team.cljs:100, src/app/main/ui/dashboard/team.cljs:880 msgid "labels.webhooks" msgstr "Webhooks" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:194 msgid "labels.write-new-comment" msgstr "Écrire un nouveau commentaire" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/team.cljs:237 msgid "labels.you" msgstr "(vous)" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:968 msgid "labels.your-account" msgstr "Votre compte" -#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs +#: src/app/main/ui/workspace/colorpicker.cljs:297, src/app/main/ui/workspace/colorpicker.cljs:298, src/app/main/ui/workspace/colorpicker.cljs:300 +msgid "media.choose-image" +msgstr "Choisir image" + +#, unused +msgid "media.gradient" +msgstr "Gradient" + +#: src/app/main/data/workspace/media.cljs:275, src/app/main/ui/components/color_bullet.cljs:32, src/app/main/ui/components/color_bullet.cljs:45, src/app/main/ui/viewer/inspect/attributes/common.cljs:66, src/app/main/ui/workspace/colorpicker.cljs:211, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:237 +msgid "media.image" +msgstr "Image" + +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:77 +msgid "media.image.short" +msgstr "img" + +#: src/app/main/ui/workspace/colorpicker.cljs:290 +msgid "media.keep-aspect-ratio" +msgstr "Conserver le ratio" + +#: src/app/main/ui/workspace/colorpicker.cljs:208 +msgid "media.linear" +msgstr "Linéaire" + +#: src/app/main/data/media.cljs:49, src/app/main/data/workspace/media.cljs:223, src/app/main/data/workspace/media.cljs:453 msgid "media.loading" msgstr "Chargement de l’image…" +#: src/app/main/ui/workspace/colorpicker.cljs:209 +msgid "media.radial" +msgstr "Radial" + +#: src/app/main/ui/workspace/colorpicker.cljs:206 +msgid "media.solid" +msgstr "Solide" + +#: src/app/main/data/common.cljs:111 msgid "modals.add-shared-confirm-empty.hint" msgstr "" "Votre bibliothèque est vide. Une fois ajoutées comme Bibliothèque Partagée, " "les ressources que vous créez seront utilisables dans vos autres fichiers. " "Voulez-vous vraiment les publier ?" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/data/common.cljs:113 msgid "modals.add-shared-confirm.accept" msgstr "Ajouter comme Bibliothèque Partagée" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/data/common.cljs:111 msgid "modals.add-shared-confirm.hint" msgstr "" "Une fois ajoutées en tant que Bibliothèque Partagée, les ressources de " "cette bibliothèque de fichiers seront disponibles pour être utilisées parmi " "le reste de vos fichiers." -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/data/common.cljs:110 msgid "modals.add-shared-confirm.message" msgstr "Ajouter « %s » comme Bibliothèque Partagée" -#: src/app/main/ui/workspace/nudge.cljs +#: src/app/main/ui/workspace/nudge.cljs:60 msgid "modals.big-nudge" msgstr "Grand nudge" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:127 msgid "modals.change-email.confirm-email" msgstr "Vérifier la nouvelle adresse e‑mail" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:114 msgid "modals.change-email.info" msgstr "" "Nous enverrons un e‑mail à votre adresse actuelle « %s » pour vérifier " "votre identité." -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:119 msgid "modals.change-email.new-email" msgstr "Nouvel e‑mail" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:136 msgid "modals.change-email.submit" msgstr "Changer adresse e‑mail" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:107 msgid "modals.change-email.title" msgstr "Changez votre adresse e‑mail" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:165, src/app/main/ui/settings/access_tokens.cljs:171 msgid "modals.create-access-token.copy-token" msgstr "Copier le jeton" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:142 msgid "modals.create-access-token.expiration-date.label" msgstr "Date d'expiration" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:136 msgid "modals.create-access-token.name.label" msgstr "Nom" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:138 msgid "modals.create-access-token.name.placeholder" msgstr "Le nom aide à savoir comment le jeton sera utilisé" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:191 msgid "modals.create-access-token.submit-label" msgstr "Créer un jeton" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:123 msgid "modals.create-access-token.title" msgstr "Générer un jeton d'accès" +#: src/app/main/ui/dashboard/team.cljs:873 msgid "modals.create-webhook.submit-label" msgstr "Créer un webhook" +#: src/app/main/ui/dashboard/team.cljs:838 msgid "modals.create-webhook.title" msgstr "Créer un webhook" +#: src/app/main/ui/dashboard/team.cljs:849 msgid "modals.create-webhook.url.label" msgstr "URL de charge utile" +#: src/app/main/ui/dashboard/team.cljs:850 msgid "modals.create-webhook.url.placeholder" msgstr "https://example.com/postreceive" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:271 msgid "modals.delete-acces-token.accept" msgstr "Supprimer le jeton" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:270 msgid "modals.delete-acces-token.message" msgstr "Confirmez-vous que vous souhaitez supprimer ce jeton ?" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:269 msgid "modals.delete-acces-token.title" msgstr "Supprimer le jeton" -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:59 msgid "modals.delete-account.cancel" msgstr "Annuler et conserver mon compte" -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:64 msgid "modals.delete-account.confirm" msgstr "Oui, supprimer mon compte" -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:53 msgid "modals.delete-account.info" msgstr "" "En supprimant votre compte, vous perdrez tous vos projets et archives " "actuelles." -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:46 msgid "modals.delete-account.title" msgstr "Êtes‑vous sûr de vouloir supprimer votre compte ?" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:298 msgid "modals.delete-comment-thread.accept" msgstr "Supprimer la conversation" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:297 msgid "modals.delete-comment-thread.message" msgstr "" "Êtes‑vous sûr de vouloir supprimer cette conversation ? Tous les " "commentaires de ce fil seront supprimés." -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:296 msgid "modals.delete-comment-thread.title" msgstr "Supprimer une conversation" +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:140 msgid "modals.delete-component-annotation.message" msgstr "Confirmez-vous vouloir supprimer cette note ?" +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:139 msgid "modals.delete-component-annotation.title" msgstr "Supprimer la note" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:123 msgid "modals.delete-file-confirm.accept" msgstr "Supprimer le fichier" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:122 msgid "modals.delete-file-confirm.message" msgstr "Êtes‑vous sûr de vouloir supprimer ce fichier ?" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:121 msgid "modals.delete-file-confirm.title" msgstr "Supprimer un fichier" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:117 msgid "modals.delete-file-multi-confirm.accept" msgstr "Supprimer les fichiers" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:116 msgid "modals.delete-file-multi-confirm.message" msgstr "Êtes-vous sûr de vouloir supprimer %s fichiers ?" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:115 msgid "modals.delete-file-multi-confirm.title" msgstr "Suppression de %s fichiers" +#: src/app/main/ui/dashboard/fonts.cljs:345 msgid "modals.delete-font-variant.message" msgstr "" "Êtes-vous sûr de vouloir supprimer ce style de police ? Il ne sera pas " "chargé si il est utilisé dans un fichier." +#: src/app/main/ui/dashboard/fonts.cljs:344 msgid "modals.delete-font-variant.title" msgstr "Suppression du style de police" +#: src/app/main/ui/dashboard/fonts.cljs:331 msgid "modals.delete-font.message" msgstr "" "Êtes-vous sûr de vouloir supprimer cette police ? Elle ne se chargera pas " "si elle est utilisée dans un fichier." +#: src/app/main/ui/dashboard/fonts.cljs:330 msgid "modals.delete-font.title" msgstr "Suppression de la police" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs +#: src/app/main/ui/workspace/context_menu.cljs:522, src/app/main/ui/workspace/sidebar/sitemap.cljs:45 msgid "modals.delete-page.body" msgstr "Êtes‑vous sûr de vouloir supprimer cette page ?" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs +#: src/app/main/ui/workspace/context_menu.cljs:521, src/app/main/ui/workspace/sidebar/sitemap.cljs:44 msgid "modals.delete-page.title" msgstr "Supprimer une page" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:69 msgid "modals.delete-project-confirm.accept" msgstr "Supprimer le projet" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:68 msgid "modals.delete-project-confirm.message" msgstr "Êtes‑vous sûr de vouloir supprimer ce projet ?" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:67 msgid "modals.delete-project-confirm.title" msgstr "Supprimer un projet" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:51 msgid "modals.delete-shared-confirm.accept" msgid_plural "modals.delete-shared-confirm.accept" msgstr[0] "Supprimer le fichier" msgstr[1] "Supprimer les fichiers" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:55 msgid "modals.delete-shared-confirm.activated.no-files-message" msgid_plural "modals.delete-shared-confirm.activated.no-files-message" msgstr[0] "Activé dans aucun fichier." msgstr[1] "Activés dans aucun fichier." -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:57 msgid "modals.delete-shared-confirm.activated.scd-message" msgid_plural "modals.delete-shared-confirm.activated.scd-message" msgstr[0] "Cette bibliothèque est active ici : " msgstr[1] "Ces bibliothèques sont actives ici : " -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:46 msgid "modals.delete-shared-confirm.message" msgid_plural "modals.delete-shared-confirm.message" msgstr[0] "Vous confirmez vouloir supprimer ce fichier ?" msgstr[1] "Vous confirmez vouloir supprimer ces fichiers ?" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:41 msgid "modals.delete-shared-confirm.title" msgid_plural "modals.delete-shared-confirm.title" msgstr[0] "Suppression du fichier" msgstr[1] "Suppression des fichiers" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:435 msgid "modals.delete-team-confirm.accept" msgstr "Supprimer l’équipe" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:434 msgid "modals.delete-team-confirm.message" msgstr "" "Êtes‑vous sûr de vouloir supprimer cette équipe ? Tous les projets et " "fichiers associés à l’équipe seront définitivement supprimés." -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:433 msgid "modals.delete-team-confirm.title" msgstr "Suppression d’une équipe" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:427 msgid "modals.delete-team-member-confirm.accept" msgstr "Supprimer le membre" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:426 msgid "modals.delete-team-member-confirm.message" msgstr "Êtes‑vous sûr de vouloir supprimer ce membre de l’équipe ?" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:425 msgid "modals.delete-team-member-confirm.title" msgstr "Supprimer un membre d’équipe" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:59 msgid "modals.delete-unpublish-shared-confirm.activated.hint" msgid_plural "modals.delete-unpublish-shared-confirm.activated.hint" msgstr[0] "" @@ -2002,3218 +2277,3472 @@ msgstr[1] "" "Les éléments déjà utilisés dans ces fichiers resteront en place (aucun " "design ne sera altéré)." +#: src/app/main/ui/dashboard/team.cljs:942 msgid "modals.delete-webhook.accept" msgstr "Supprimer le webhook" +#: src/app/main/ui/dashboard/team.cljs:941 msgid "modals.delete-webhook.message" msgstr "Vous confirmez vouloir supprimer le webhook ?" +#: src/app/main/ui/dashboard/team.cljs:940 msgid "modals.delete-webhook.title" msgstr "Suppression du webhook en cours" +#: src/app/main/ui/dashboard/team.cljs:872 msgid "modals.edit-webhook.submit-label" msgstr "Modifier le webhook" +#: src/app/main/ui/dashboard/team.cljs:837 msgid "modals.edit-webhook.title" msgstr "Modifier le webhook" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:218 msgid "modals.invite-member-confirm.accept" msgstr "Envoyer l'invitation" +#: src/app/main/ui/dashboard/team.cljs:213, src/app/main/ui/onboarding/team_choice.cljs:156 msgid "modals.invite-member.emails" msgstr "Adresse e-mail, séparées par des virgules" +#: src/app/main/ui/dashboard/team.cljs:197 msgid "modals.invite-member.repeated-invitation" msgstr "" "Certains emails appartiennent à des membres actuels de l'équipe. Les " "invitations ne leur seront pas envoyées." -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:190 msgid "modals.invite-team-member.title" msgstr "Inviter des membres dans l'équipe" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:423, src/app/main/ui/dashboard/team.cljs:393 msgid "modals.leave-and-close-confirm.hint" msgstr "" "Comme vous êtes le seul membre de l'équipe, celle-ci sera supprimée avec " "ses projets et fichiers." -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:422, src/app/main/ui/dashboard/team.cljs:392 msgid "modals.leave-and-close-confirm.message" msgstr "Êtes-vous sûr de vouloir quitter l'équipe %s ?" +#: src/app/main/ui/dashboard/change_owner.cljs:59 msgid "modals.leave-and-reassign.forbidden" msgstr "" "Vous ne pouvez pas quitter l'équipe si il n'y a aucun membre à promouvoir " "comme propriétaire. Vous pourriez plutôt supprimer l'équipe." -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/change_owner.cljs:55 msgid "modals.leave-and-reassign.hint1" msgstr "Vous êtes le propriétaire de %s." -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/change_owner.cljs:78 msgid "modals.leave-and-reassign.promote-and-leave" msgstr "Promouvoir et quitter" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/change_owner.cljs:34 msgid "modals.leave-and-reassign.select-member-to-promote" msgstr "Sélectionnez un membre à promouvoir" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/change_owner.cljs:49 msgid "modals.leave-and-reassign.title" msgstr "Sélectionnez un membre à promouvoir" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:402, src/app/main/ui/dashboard/sidebar.cljs:424, src/app/main/ui/dashboard/team.cljs:394, src/app/main/ui/dashboard/team.cljs:416 msgid "modals.leave-confirm.accept" msgstr "Quitter l’équipe" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:401, src/app/main/ui/dashboard/team.cljs:415 msgid "modals.leave-confirm.message" msgstr "Êtes‑vous sûr de vouloir quitter cette équipe ?" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:400, src/app/main/ui/dashboard/sidebar.cljs:421, src/app/main/ui/dashboard/team.cljs:391, src/app/main/ui/dashboard/team.cljs:414 msgid "modals.leave-confirm.title" msgstr "Quitter l’équipe" -#: src/app/main/ui/workspace/nudge.cljs +#: src/app/main/ui/delete_shared.cljs:53 +msgid "modals.move-shared-confirm.accept" +msgid_plural "modals.move-shared-confirm.accept" +msgstr[0] "Déplacer" +msgstr[1] "Déplacer" + +#: src/app/main/ui/delete_shared.cljs:48 +msgid "modals.move-shared-confirm.message" +msgid_plural "modals.move-shared-confirm.message" +msgstr[0] "Êtes-vous sûr de vouloir déplacer cette librairie ?" +msgstr[1] "Êtes-vous sûr de vouloir déplacer ces librairies ?" + +#: src/app/main/ui/delete_shared.cljs:43 +msgid "modals.move-shared-confirm.title" +msgid_plural "modals.move-shared-confirm.title" +msgstr[0] "Déplacer librairie" +msgstr[1] "Déplacer librairies" + +#: src/app/main/ui/workspace/main_menu.cljs:266, src/app/main/ui/workspace/nudge.cljs:47 msgid "modals.nudge-title" msgstr "Taille du décalage" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:340 msgid "modals.promote-owner-confirm.accept" msgstr "Promouvoir" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:339 msgid "modals.promote-owner-confirm.hint" msgstr "" "Si vous transférez la propriété, vous changerez votre rôle en Admin, " "perdant ainsi certaines permissions sur cette équipe. " -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:338 msgid "modals.promote-owner-confirm.message" msgstr "Êtes‑vous sûr de vouloir promouvoir cette personne propriétaire ?" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:337 msgid "modals.promote-owner-confirm.title" msgstr "Promouvoir propriétaire" +#: src/app/main/ui/workspace/libraries.cljs:188 msgid "modals.publish-empty-library.accept" msgstr "Publier" +#: src/app/main/ui/workspace/libraries.cljs:187 msgid "modals.publish-empty-library.message" msgstr "Votre bibliothèque est vide. Voulez-vous la publier quand même ?" +#: src/app/main/ui/workspace/libraries.cljs:186 msgid "modals.publish-empty-library.title" msgstr "Publier la bibliothèque vide" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "modals.remove-shared-confirm.accept" msgstr "Supprimer en tant que Bibliothèque Partagée" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "modals.remove-shared-confirm.hint" msgstr "" "Une fois supprimée en tant que Bibliothèque Partagée, la Bibliothèque de ce " "fichier ne pourra plus être utilisée par le reste de vos fichiers." -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "modals.remove-shared-confirm.message" msgstr "Retirer « %s » en tant que Bibliothèque Partagée" -#: src/app/main/ui/workspace/nudge.cljs +#: src/app/main/ui/workspace/nudge.cljs:53 msgid "modals.small-nudge" msgstr "Petit nudge" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:52 msgid "modals.unpublish-shared-confirm.accept" msgid_plural "modals.unpublish-shared-confirm.accept" msgstr[0] "Dépublier" msgstr[1] "Dépublier" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:47 msgid "modals.unpublish-shared-confirm.message" msgid_plural "modals.unpublish-shared-confirm.message" msgstr[0] "Vous êtes sûr de vouloir retirer cette bibliothèque ?" msgstr[1] "Vous êtes sûr de vouloir retirer ces bibliothèques ?" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:42 msgid "modals.unpublish-shared-confirm.title" msgid_plural "modals.unpublish-shared-confirm.title" msgstr[0] "Retirer la bibliothèque" msgstr[1] "Retirer les bibliothèques" #: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#, unused msgid "modals.update-remote-component-in-bulk.hint" msgstr "" "Vous êtes sur le point de mettre à jour les composants d'une bibliothèque " "partagée. Cela peut affecter d'autres fichiers qui l'utilisent." #: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#, unused msgid "modals.update-remote-component-in-bulk.message" msgstr "Mise à jour des composants dans une bibliothèque partagée" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:380 msgid "modals.update-remote-component.accept" msgstr "Actualiser le composant" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:379 msgid "modals.update-remote-component.cancel" msgstr "Annuler" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:378 msgid "modals.update-remote-component.hint" msgstr "" "Vous êtes sur le point de mettre à jour le composant d’une Bibliothèque " "Partagée. Cela peut affecter d’autres fichiers qui l’utilisent." -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:377 msgid "modals.update-remote-component.message" msgstr "Actualiser le composant d’une bibliothèque" -#: src/app/main/data/common.cljs +#: src/app/main/data/common.cljs:71 msgid "notifications.by-code.upgrade-version" msgstr "Une nouvelle version est disponible, merci de rafraîchir la page" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:154, src/app/main/ui/dashboard/team.cljs:595 msgid "notifications.invitation-email-sent" msgstr "E‑mail d'invitation envoyé avec succès" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:616 msgid "notifications.invitation-link-copied" msgstr "Lien d'invitation copié" -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:24 msgid "notifications.profile-deletion-not-allowed" msgstr "" "Vous ne pouvez pas supprimer votre profil. Réassignez vos équipes avant de " "continuer." -#: src/app/main/ui/settings/profile.cljs, src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:29, src/app/main/ui/settings/profile.cljs:35 msgid "notifications.profile-saved" msgstr "Profil enregistré avec succès !" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:63 msgid "notifications.validation-email-sent" msgstr "E‑mail de vérification envoyé à %s. Vérifiez votre e‑mail !" +#, unused msgid "onboarding-v2.before-start.desc1" msgstr "" "Sachez qu’il existe de nombreuses ressources disponibles pour vous aider à " "démarrer avec Penpot, comme le Guide de l’utilisateur et notre chaîne " "Youtube." +#, unused msgid "onboarding-v2.before-start.desc2" msgstr "" "De l'information détaillée sur Penpot. De prototypage à l’organisation et " "le partage des designs." +#, unused msgid "onboarding-v2.before-start.desc2.title" msgstr "Guide utilisateur" +#, unused msgid "onboarding-v2.before-start.desc3" msgstr "" "Vous pouvez regarder nos tutoriels et les tutoriels réalisés par notre " "communauté." +#, unused msgid "onboarding-v2.before-start.desc3.title" msgstr "Tutoriels videos" +#, unused msgid "onboarding-v2.before-start.title" msgstr "Avant de démarrer" +#: src/app/main/ui/onboarding/newsletter.cljs:63 msgid "onboarding-v2.newsletter.desc" msgstr "" "Abonnez-vous à la newsletter de Penpot pour être tenu informé du " "développement du produit et de notre actualité." +#: src/app/main/ui/onboarding/newsletter.cljs:83 msgid "onboarding-v2.newsletter.news" msgstr "" "Envoyez-moi des nouvelles de Penpot (articles de blog, tutoriels vidéo, " "streamings...)." +#: src/app/main/ui/onboarding/newsletter.cljs:91 msgid "onboarding-v2.newsletter.privacy1" msgstr "Nous nous soucions de la vie privée, vous pouvez lire ici notre " +#: src/app/main/ui/onboarding/newsletter.cljs:97 msgid "onboarding-v2.newsletter.privacy2" msgstr "" "Nous ne vous enverrons que des e-mails pertinents. Vous pouvez vous " "désabonner à tout moment via votre profil d’utilisateur ou via le lien de " "désabonnement dans l’une de nos newsletters." +#: src/app/main/ui/onboarding/newsletter.cljs:71 msgid "onboarding-v2.newsletter.updates" msgstr "" "Envoyez-moi les mises à jour du produit (nouvelles fonctionnalités, " "versions, corrections...)." +#, unused msgid "onboarding-v2.welcome.desc1" msgstr "" "Penpot est un logiciel Open Source créé par Kaleidos et la communauté, où " "de nombreuses personnes s’entraident déjà. Tout le monde peut collaborer en " ":" +#, unused msgid "onboarding-v2.welcome.desc2" msgstr "" "Un espace public pour apprendre, partager et échanger autour de Penpot, de " "son présent et de son avenir avec l'ensemble de la communauté et l'équipe " "centrale de Penpot." +#, unused msgid "onboarding-v2.welcome.desc2.title" msgstr "Participation à la Communauté" +#, unused msgid "onboarding-v2.welcome.desc3" msgstr "" "Vous y trouverez comment collaborer avec des traductions, des demandes de " "fonctionnalités (feature requests), des contributions au code, la recherche " "de bugs…" +#, unused msgid "onboarding-v2.welcome.desc3.title" msgstr "Guide du contributeur" +#: src/app/main/ui/onboarding/team_choice.cljs:31 msgid "onboarding-v2.welcome.title" msgstr "Bienvenue sur Penpot !" +#: src/app/main/ui/onboarding/team_choice.cljs:229 +msgid "onboarding.choice.team-up.continue-creating-team" +msgstr "Continuer en créant une équipe" + +#: src/app/main/ui/onboarding/team_choice.cljs:239 +msgid "onboarding.choice.team-up.continue-without-a-team" +msgstr "Continuer sans équipe" + +#: src/app/main/ui/onboarding/team_choice.cljs:167 +msgid "onboarding.choice.team-up.create-team-and-invite" +msgstr "Créer une équipe et inviter" + +#, unused +msgid "onboarding.choice.team-up.create-team-and-send-invites" +msgstr "Créer une équipe et envoyer des invitations" + +#: src/app/main/ui/onboarding/team_choice.cljs:170 +msgid "onboarding.choice.team-up.create-team-and-send-invites-description" +msgstr "Vous pourrez envoyer les invitations plus tard" + +#: src/app/main/ui/onboarding/team_choice.cljs:215 msgid "onboarding.choice.team-up.create-team-desc" msgstr "" "Après avoir nommé votre équipe, vous pourrez inviter des personnes à la " "rejoindre." +#: src/app/main/ui/onboarding/team_choice.cljs:224 msgid "onboarding.choice.team-up.create-team-placeholder" msgstr "Entrez le nom de l'équipe" +#: src/app/main/ui/onboarding/team_choice.cljs:168 +msgid "onboarding.choice.team-up.create-team-without-invite" +msgstr "Créer l'équipe" + +#, unused +msgid "onboarding.choice.team-up.create-team-without-inviting" +msgstr "Créer l'équipe sans inviter" + +#: src/app/main/ui/dashboard/projects.cljs:89, src/app/main/ui/onboarding/team_choice.cljs:140 msgid "onboarding.choice.team-up.invite-members" msgstr "Inviter des membres" +#: src/app/main/ui/onboarding/team_choice.cljs:141 msgid "onboarding.choice.team-up.invite-members-info" msgstr "" "N'oubliez pas d'inclure tout le monde. Développeurs, concepteurs, " "gestionnaires... la diversité fait la force :)" +#: src/app/main/ui/dashboard/team.cljs:202, src/app/main/ui/onboarding/team_choice.cljs:146 msgid "onboarding.choice.team-up.roles" msgstr "Inviter avec le rôle :" +#: src/app/main/ui/onboarding/team_choice.cljs:232 +msgid "onboarding.choice.team-up.start-without-a-team" +msgstr "Commencer sans équipe" + +#: src/app/main/ui/onboarding/team_choice.cljs:234 +msgid "onboarding.choice.team-up.start-without-a-team-description" +msgstr "Vous pourrez créer une équipe plus tard." + +#, unused msgid "onboarding.newsletter.accept" msgstr "Oui, s'abonner" +#: src/app/main/ui/onboarding/newsletter.cljs:40 msgid "onboarding.newsletter.acceptance-message" msgstr "Demande d'abonnement envoyé, vous allez recevoir un e-mail de confirmation." +#: src/app/main/ui/onboarding/newsletter.cljs:95 msgid "onboarding.newsletter.policy" msgstr "Politique de confidentialité." +#: src/app/main/ui/onboarding/newsletter.cljs:60 msgid "onboarding.newsletter.title" msgstr "Vous souhaitez recevoir les actualités de Penpot ?" +#: src/app/main/ui/onboarding/questions.cljs:118 +msgid "onboarding.questions.lets-get-started" +msgstr "C'est parti !" + +#: src/app/main/ui/onboarding/questions.cljs:307 +msgid "onboarding.questions.step3.question2" +msgstr "Quel est votre rôle ?" + +#: src/app/main/ui/onboarding/questions.cljs:320 +msgid "onboarding.questions.step3.question3" +msgstr "Quelle est la taille de votre équipe ?" + +#: src/app/main/ui/onboarding/questions.cljs:273 +msgid "onboarding.questions.team-size.11-30" +msgstr "11-30" + +#: src/app/main/ui/onboarding/questions.cljs:274 +msgid "onboarding.questions.team-size.2-10" +msgstr "2-10" + +#: src/app/main/ui/onboarding/questions.cljs:272 +msgid "onboarding.questions.team-size.31-50" +msgstr "31-50" + +#: src/app/main/ui/onboarding/questions.cljs:271 +msgid "onboarding.questions.team-size.more-than-50" +msgstr "Plus que 50" + +#: src/app/main/ui/onboarding/questions.cljs:276 +msgid "onboarding.questions.team-size.personal-project" +msgstr "Je travaille sur un projet personnel" + +#: src/app/main/ui/onboarding/team_choice.cljs:213 msgid "onboarding.team-modal.create-team" msgstr "Créer une équipe" +#: src/app/main/ui/onboarding/team_choice.cljs:35 msgid "onboarding.team-modal.create-team-desc" msgstr "" "Une équipe vous permet de collaborer avec d'autres utilisateurs de Penpot " "travaillant sur les mêmes fichiers et projets." +#: src/app/main/ui/onboarding/team_choice.cljs:40 msgid "onboarding.team-modal.create-team-feature-1" msgstr "Nombre de projets et de fichiers illimité" +#: src/app/main/ui/onboarding/team_choice.cljs:44 msgid "onboarding.team-modal.create-team-feature-2" msgstr "Édition multijoueur" +#: src/app/main/ui/onboarding/team_choice.cljs:48 msgid "onboarding.team-modal.create-team-feature-3" msgstr "Gestion des rôles" +#: src/app/main/ui/onboarding/team_choice.cljs:52 msgid "onboarding.team-modal.create-team-feature-4" msgstr "Nombre de membres illimité" +#: src/app/main/ui/onboarding/team_choice.cljs:56 msgid "onboarding.team-modal.create-team-feature-5" msgstr "100% gratuit !" +#: src/app/main/ui/onboarding/team_choice.cljs:33 +msgid "onboarding.team-modal.team-definition" +msgstr "Qu'est-ce qu'une équipe ?" + +#: src/app/main/ui/onboarding/templates.cljs:78 msgid "onboarding.templates.subtitle" msgstr "Voici quelques modèles." +#: src/app/main/ui/onboarding/templates.cljs:77 msgid "onboarding.templates.title" msgstr "Commencer à concevoir" +#, unused msgid "onboarding.welcome.alt" msgstr "Penpot" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:99 msgid "profile.recovery.go-to-login" msgstr "Aller à la page de connexion" -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.team-size.11-30" -msgstr "11-30" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.team-size.2-10" -msgstr "2-10" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.team-size.31-50" -msgstr "31-50" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.adobe-xd" -msgstr "Adobe XD" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.canva" -msgstr "Canevas" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.developer" -msgstr "Développeur" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.figma" -msgstr "Figma" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.founder" -msgstr "Fondateur/Direction" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.freelancer" -msgstr "Je suis freelance" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.invision" -msgstr "InVision" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.lets-get-started" -msgstr "C'est parti !" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.product-management" -msgstr "Gestionnaire de produit ou de projet" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.marketing" -msgstr "Marketing" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.team-size.more-than-50" -msgstr "Plus que 50" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.next" -msgstr "Suivant" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.other" -msgstr "Autres (préciser)" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.team-size.personal-project" -msgstr "Je travaille sur un projet personnel" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.previous" -msgstr "Précédent" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.step3.question2" -msgstr "Quel est votre rôle ?" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.select-option" -msgstr "Sélectionnez une option" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.sketch" -msgstr "Sketch" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.start" -msgstr "Commencer" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.student-teacher" -msgstr "Étudiant ou enseignant" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.step3.question3" -msgstr "Quelle est la taille de votre équipe ?" - -#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, +#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:221 msgid "settings.detach" msgstr "Détacher" -#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs +#: src/app/main/ui/viewer/inspect/exports.cljs:147, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:631, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:137, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:148, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:188, src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:158, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:399, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:410, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:430, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:441, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:458, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:472, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:309, src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:183, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:373, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:389, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:245, src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:172 msgid "settings.multiple" msgstr "Divers" +#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:271 +msgid "settings.select-this-color" +msgstr "Sélectionnez les éléments qui utilisent ce style" + # SECTIONS +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:414 msgid "shortcut-section.basics" msgstr "Bases" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:420 msgid "shortcut-section.dashboard" msgstr "Tableau de bord" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:423 msgid "shortcut-section.viewer" msgstr "Spectateur" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:417 msgid "shortcut-section.workspace" msgstr "Espace de travail" # SUBSECTIONS +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:56 msgid "shortcut-subsection.alignment" msgstr "Alignement" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:57 msgid "shortcut-subsection.edit" msgstr "Modifier" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:58 msgid "shortcut-subsection.general-dashboard" msgstr "Générique" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:59 msgid "shortcut-subsection.general-viewer" msgstr "Générique" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:60 msgid "shortcut-subsection.main-menu" msgstr "Menu principal" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:61 msgid "shortcut-subsection.modify-layers" msgstr "Modifier les calques" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:62 msgid "shortcut-subsection.navigation-dashboard" msgstr "Navigation" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:63 msgid "shortcut-subsection.navigation-viewer" msgstr "Navigation" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:64 msgid "shortcut-subsection.navigation-workspace" msgstr "Navigation" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:65 msgid "shortcut-subsection.panels" msgstr "Panneaux" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:66 msgid "shortcut-subsection.path-editor" msgstr "Tracés" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:67 msgid "shortcut-subsection.shape" msgstr "Formes" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:68 msgid "shortcut-subsection.text-editor" msgstr "Textes" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:69 msgid "shortcut-subsection.tools" msgstr "Outils" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:70 msgid "shortcut-subsection.zoom-viewer" msgstr "Zoom" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:71 msgid "shortcut-subsection.zoom-workspace" msgstr "Zoom" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:72 msgid "shortcuts.add-comment" msgstr "Commentaires" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:73 msgid "shortcuts.add-node" msgstr "Ajouter un nœud" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:74 msgid "shortcuts.align-bottom" msgstr "Aligner en bas" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:75 msgid "shortcuts.align-center" msgstr "Aligner au centre" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:76 msgid "shortcuts.align-hcenter" msgstr "Aligner horizontalement au centre" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:77 msgid "shortcuts.align-justify" msgstr "Aligner justifié" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:78 msgid "shortcuts.align-left" msgstr "Aligner à gauche" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:79 msgid "shortcuts.align-right" msgstr "Aligner à droite" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:80 msgid "shortcuts.align-top" msgstr "Aligner en haut" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:81 msgid "shortcuts.align-vcenter" msgstr "Aligner verticalement au centre" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:82 msgid "shortcuts.artboard-selection" msgstr "Créer un plan de travail à partir de la sélection" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:83 msgid "shortcuts.bold" msgstr "Basculer en gras" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:84 msgid "shortcuts.bool-difference" msgstr "Soustraction booléenne" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:85 msgid "shortcuts.bool-exclude" msgstr "Exclusion booléenne" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:86 msgid "shortcuts.bool-intersection" msgstr "Intersection booléenne" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:87 msgid "shortcuts.bool-union" msgstr "Union booléenne" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:88 msgid "shortcuts.bring-back" msgstr "Mettre à l'arrière-plan" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:89 msgid "shortcuts.bring-backward" msgstr "Déplacer en arrière" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:90 msgid "shortcuts.bring-forward" msgstr "Déplacer vers l'avant" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:91 msgid "shortcuts.bring-front" msgstr "Mettre au premier plan" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:92 msgid "shortcuts.clear-undo" msgstr "Rétablir" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:93 msgid "shortcuts.copy" msgstr "Copier" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:94 msgid "shortcuts.create-component" msgstr "Créer un composant" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:95 msgid "shortcuts.create-new-project" msgstr "Créer" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:96 msgid "shortcuts.cut" msgstr "Couper" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:97 msgid "shortcuts.decrease-zoom" msgstr "Dézoomer" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:98 msgid "shortcuts.delete" msgstr "Supprimer" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:99 msgid "shortcuts.delete-node" msgstr "Supprimer le nœud" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:100 msgid "shortcuts.detach-component" msgstr "Détacher le composant" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:101 msgid "shortcuts.draw-curve" msgstr "Courbe" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:102 msgid "shortcuts.draw-ellipse" msgstr "Ellipse" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:103 msgid "shortcuts.draw-frame" msgstr "Plan de travail" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:104 msgid "shortcuts.draw-nodes" msgstr "Dessiner un tracé" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:105 msgid "shortcuts.draw-path" msgstr "Tracé" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:106 msgid "shortcuts.draw-rect" msgstr "Rectangle" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:107 msgid "shortcuts.draw-text" msgstr "Texte" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:108 msgid "shortcuts.duplicate" msgstr "Dupliquer" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:109 msgid "shortcuts.escape" msgstr "Annuler" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:110 msgid "shortcuts.export-shapes" msgstr "Exporter les formes" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:111 msgid "shortcuts.fit-all" msgstr "Zoom ajusté" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:112 msgid "shortcuts.flip-horizontal" msgstr "Retourner horizontalement" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:113 msgid "shortcuts.flip-vertical" msgstr "Retourner verticalement" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:114 msgid "shortcuts.font-size-dec" msgstr "Diminuer la taille de la police" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:115 msgid "shortcuts.font-size-inc" msgstr "Augmenter la taille de la police" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:116 msgid "shortcuts.go-to-drafts" msgstr "Accéder aux brouillons" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:117 msgid "shortcuts.go-to-libs" msgstr "Accéder aux bibliothèques partagées" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:118 msgid "shortcuts.go-to-search" msgstr "Recherche" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:119 msgid "shortcuts.group" msgstr "Grouper" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:120 msgid "shortcuts.h-distribute" msgstr "Répartir horizontalement" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:121 msgid "shortcuts.hide-ui" msgstr "Afficher/masquer l'interface utilisateur" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:122 msgid "shortcuts.increase-zoom" msgstr "Zoom avant" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:123 msgid "shortcuts.insert-image" msgstr "Insérer une image" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:124 msgid "shortcuts.italic" msgstr "Basculer en italique" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:125 msgid "shortcuts.join-nodes" msgstr "Joindre les nœuds" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:126 msgid "shortcuts.letter-spacing-dec" msgstr "Diminuer l'espacement entre les lettres" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:127 msgid "shortcuts.letter-spacing-inc" msgstr "Augmenter l'espacement entre les lettres" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:128 msgid "shortcuts.line-height-dec" msgstr "Diminuer la hauteur de ligne" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:129 msgid "shortcuts.line-height-inc" msgstr "Augmenter la hauteur de ligne" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:130 msgid "shortcuts.line-through" msgstr "Activer/désactiver texte barré" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:131 msgid "shortcuts.make-corner" msgstr "Créer un coin" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:132 msgid "shortcuts.make-curve" msgstr "Faire une courbe" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:133 msgid "shortcuts.mask" msgstr "Masque" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:134 msgid "shortcuts.merge-nodes" msgstr "Fusionner les nœuds" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:135 msgid "shortcuts.move" msgstr "Déplacer" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:136 msgid "shortcuts.move-fast-down" msgstr "Déplacement rapide vers le bas" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:137 msgid "shortcuts.move-fast-left" msgstr "Déplacement rapide vers la gauche" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:138 msgid "shortcuts.move-fast-right" msgstr "Déplacez-vous rapidement vers la droite" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:139 msgid "shortcuts.move-fast-up" msgstr "Déplacement rapide vers le haut" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:140 msgid "shortcuts.move-nodes" msgstr "Déplacer le nœud" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:141 msgid "shortcuts.move-unit-down" msgstr "Déplacer vers le bas" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:142 msgid "shortcuts.move-unit-left" msgstr "Déplacer vers la gauche" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:143 msgid "shortcuts.move-unit-right" msgstr "Déplacer vers la droite" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:144 msgid "shortcuts.move-unit-up" msgstr "Déplacer vers le haut" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:145 msgid "shortcuts.next-frame" msgstr "Plan de travail suivant" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:516 msgid "shortcuts.not-found" msgstr "Aucun raccourci trouvé" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:146 msgid "shortcuts.opacity-0" msgstr "Définir l'opacité à 100%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:147 msgid "shortcuts.opacity-1" msgstr "Définir l'opacité à 10%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:148 msgid "shortcuts.opacity-2" msgstr "Définir l'opacité à 20%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:149 msgid "shortcuts.opacity-3" msgstr "Définir l'opacité à 30%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:150 msgid "shortcuts.opacity-4" msgstr "Définir l'opacité à 40%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:151 msgid "shortcuts.opacity-5" msgstr "Définir l'opacité à 50%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:152 msgid "shortcuts.opacity-6" msgstr "Définir l'opacité à 60%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:153 msgid "shortcuts.opacity-7" msgstr "Définir l'opacité à 70%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:154 msgid "shortcuts.opacity-8" msgstr "Définir l'opacité à 80%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:155 msgid "shortcuts.opacity-9" msgstr "Définir l'opacité à 90%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:156 msgid "shortcuts.open-color-picker" msgstr "Sélecteur de couleurs" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:157 msgid "shortcuts.open-comments" msgstr "Accéder aux commentaires des spectateurs" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:158 msgid "shortcuts.open-dashboard" msgstr "Accéder au tableau de bord" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:159 msgid "shortcuts.open-inspect" msgstr "Aller à l'inspecteur" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:160 msgid "shortcuts.open-interactions" msgstr "Accéder aux interactions des spectateurs" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:161 msgid "shortcuts.open-viewer" msgstr "Accéder aux interactions des spectateurs" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:162 msgid "shortcuts.open-workspace" msgstr "Accéder à l’espace de travail" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:260 msgid "shortcuts.or" msgstr " ou " +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:163 msgid "shortcuts.paste" msgstr "Coller" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:164 msgid "shortcuts.prev-frame" msgstr "Plan de travail précédent" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:165 msgid "shortcuts.redo" msgstr "Rétablir" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:166 msgid "shortcuts.reset-zoom" msgstr "Réinitialiser le zoom" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:167 +msgid "shortcuts.scale" +msgstr "Échelle" + +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:168 msgid "shortcuts.search-placeholder" msgstr "Rechercher des raccourcis" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:169 msgid "shortcuts.select-all" msgstr "Tout sélectionner" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:170 msgid "shortcuts.select-next" msgstr "Sélectionner le calque suivant" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:171 msgid "shortcuts.select-parent-layer" msgstr "Sélectionner le calque parent" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:172 msgid "shortcuts.select-prev" msgstr "Sélectionner le calque précédent" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:173 msgid "shortcuts.separate-nodes" msgstr "Séparer les nœuds" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:174 msgid "shortcuts.show-pixel-grid" msgstr "Afficher/masquer la grille de pixels" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:175 msgid "shortcuts.show-shortcuts" msgstr "Afficher/masquer les raccourcis" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:176 msgid "shortcuts.snap-nodes" msgstr "Aligner sur les nœuds" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:177 msgid "shortcuts.snap-pixel-grid" msgstr "Aligner sur la grille de pixels" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:178 msgid "shortcuts.start-editing" msgstr "Commencer l'édition" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:179 msgid "shortcuts.start-measure" msgstr "Commencer la mesure" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:180 msgid "shortcuts.stop-measure" msgstr "Arrêter la mesure" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:181 msgid "shortcuts.text-align-center" msgstr "Aligner au centre" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:182 msgid "shortcuts.text-align-justify" msgstr "Aligner justifié" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:183 msgid "shortcuts.text-align-left" msgstr "Aligner à gauche" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:184 msgid "shortcuts.text-align-right" msgstr "Aligner à droite" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:185 msgid "shortcuts.thumbnail-set" msgstr "Définir les vignettes" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:496, src/app/main/ui/workspace/sidebar/shortcuts.cljs:505 msgid "shortcuts.title" msgstr "Raccourcis clavier" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:186 msgid "shortcuts.toggle-alignment" msgstr "Activer/désactiver l'alignement dynamique" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:187 msgid "shortcuts.toggle-assets" msgstr "Activer/désactiver les ressources" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:188 msgid "shortcuts.toggle-colorpalette" msgstr "Activer/désactiver la palette de couleurs" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:189 msgid "shortcuts.toggle-focus-mode" msgstr "Activer/désactiver le mode focus" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:190 msgid "shortcuts.toggle-fullscreen" msgstr "Activer/désactiver le plein écran" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:191 +msgid "shortcuts.toggle-guides" +msgstr "Montrer / Cacher les guides" + +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:192 msgid "shortcuts.toggle-history" msgstr "Activer/désactiver l'historique" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:193 msgid "shortcuts.toggle-layers" msgstr "Activer/désactiver les calques" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:194 msgid "shortcuts.toggle-layout-flex" msgstr "Ajouter/supprimer flex layout" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:195 +msgid "shortcuts.toggle-layout-grid" +msgstr "Ajouter / Retirer grid layout" + +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:196 msgid "shortcuts.toggle-lock" msgstr "Verrou sélectionné" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:197 msgid "shortcuts.toggle-lock-size" msgstr "Verrouiller les proportions" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:198 +msgid "shortcuts.toggle-rulers" +msgstr "Montrer / Cacher les règles" + +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:200 +msgid "shortcuts.toggle-snap-guides" +msgstr "Aligner selon les guides" + +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:201 +msgid "shortcuts.toggle-snap-ruler-guide" +msgstr "Aligner selon les guides de règles" + +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:202 msgid "shortcuts.toggle-textpalette" msgstr "Afficher/masquer la palette de texte" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:203 +msgid "shortcuts.toggle-theme" +msgstr "Changer le thème" + +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:204 msgid "shortcuts.toggle-visibility" msgstr "Afficher/masquer l’élément" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:205 msgid "shortcuts.toggle-zoom-style" msgstr "Alterner le style de zoom" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:206 msgid "shortcuts.underline" msgstr "Activer/désactiver le soulignement" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:207 msgid "shortcuts.undo" msgstr "Annuler" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:208 msgid "shortcuts.ungroup" msgstr "Dégrouper" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:209 msgid "shortcuts.unmask" msgstr "Démasquer" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:210 msgid "shortcuts.v-distribute" msgstr "Distribuer verticalement" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:211 msgid "shortcuts.zoom-lense-decrease" msgstr "Diminuer le zoom" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:212 msgid "shortcuts.zoom-lense-increase" msgstr "Augmenter le zoom" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:213 msgid "shortcuts.zoom-selected" msgstr "Zoomer sur la sélection" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:771 msgid "team.webhooks.max-length" msgstr "Le nom du webhook ne peut pas contenir plus de 2048 caractères." -#: src/app/main/ui/dashboard/files.cljs +#: src/app/main/ui/dashboard/files.cljs:158 msgid "title.dashboard.files" msgstr "%s - Penpot" -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:37 msgid "title.dashboard.font-providers" msgstr "Fournisseurs de polices - %s - Penpot" -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:36 msgid "title.dashboard.fonts" msgstr "Polices - %s - Penpot" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:320 msgid "title.dashboard.projects" msgstr "Projets - %s - Penpot" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:32 msgid "title.dashboard.search" msgstr "Rechercher - %s - Penpot" -#: src/app/main/ui/dashboard/libraries.cljs +#: src/app/main/ui/dashboard/libraries.cljs:44 msgid "title.dashboard.shared-libraries" msgstr "Bibliothèques Partagées - %s - Penpot" -#: src/app/main/ui/auth/verify_token.cljs, src/app/main/ui/auth.cljs +#: src/app/main/ui/auth/verify_token.cljs:68, src/app/main/ui/auth.cljs:54 msgid "title.default" msgstr "Penpot - Liberté de conception pour les équipes" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:292 msgid "title.settings.access-tokens" msgstr "Profil - Jetons d'accès" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:110 msgid "title.settings.feedback" msgstr "Donnez votre avis - Penpot" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:80 msgid "title.settings.options" msgstr "Configuration - Penpot" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:115 msgid "title.settings.password" msgstr "Mot de passe - Penpot" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:115 msgid "title.settings.profile" msgstr "Profil - Penpot" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:727 msgid "title.team-invitations" msgstr "Invitations - %s - Penpot" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:493 msgid "title.team-members" msgstr "Membres - %s - Penpot" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1036 msgid "title.team-settings" msgstr "Configuration - %s - Penpot" +#: src/app/main/ui/dashboard/team.cljs:989 msgid "title.team-webhooks" msgstr "Webhooks - %s - Penpot" -#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs +#: src/app/main/ui/viewer.cljs:419 msgid "title.viewer" msgstr "%s - Mode spectateur - Penpot" -#: src/app/main/ui/workspace.cljs +#: src/app/main/ui/workspace.cljs:190 msgid "title.workspace" msgstr "%s - Penpot" +#: src/app/main/ui.cljs:144 msgid "viewer.breaking-change.description" msgstr "" "Ce lien de partage n'est plus valide. Créez-en un nouveau ou demandez-en un " "nouveau au propriétaire." +#: src/app/main/ui.cljs:143 msgid "viewer.breaking-change.message" msgstr "Désolé !" -#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs +#: src/app/main/ui/viewer.cljs:569 msgid "viewer.empty-state" msgstr "Aucun plan de travail trouvé sur la page." -#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs +#: src/app/main/ui/viewer.cljs:574 msgid "viewer.frame-not-found" msgstr "Plan de travail introuvable." +#: src/app/main/ui/viewer/header.cljs:336 msgid "viewer.header.comments-section" msgstr "Commentaires (%s)" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/interactions.cljs:292 msgid "viewer.header.dont-show-interactions" msgstr "Ne pas afficher les interactions" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/header.cljs:188 msgid "viewer.header.fullscreen" msgstr "Plein écran" +#: src/app/main/ui/viewer/header.cljs:345 msgid "viewer.header.inspect-section" msgstr "Inspecter (%s)" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/interactions.cljs:282 msgid "viewer.header.interactions" msgstr "Interactions" +#: src/app/main/ui/viewer/header.cljs:327 msgid "viewer.header.interactions-section" msgstr "Interactions (%s)" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/share_link.cljs:187 msgid "viewer.header.share.copy-link" msgstr "Copier le lien" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/interactions.cljs:300 msgid "viewer.header.show-interactions" msgstr "Afficher les interactions" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/interactions.cljs:311 msgid "viewer.header.show-interactions-on-click" msgstr "Afficher les interactions au clic" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/header.cljs:231 msgid "viewer.header.sitemap" msgstr "Plan du site" +#: src/app/main/ui/dashboard/team.cljs:948 msgid "webhooks.last-delivery.success" msgstr "Le dernier envoi a réussi." -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:58 msgid "workspace.align.hcenter" msgstr "Aligner horizontalement au centre (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:74 msgid "workspace.align.hdistribute" msgstr "Répartir l’espacement horizontal (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:50 msgid "workspace.align.hleft" msgstr "Aligner à gauche (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:66 msgid "workspace.align.hright" msgstr "Aligner à droite (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:99 msgid "workspace.align.vbottom" msgstr "Aligner en bas (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:91 msgid "workspace.align.vcenter" msgstr "Aligner verticalement au centre (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:104 msgid "workspace.align.vdistribute" msgstr "Répartir l’espacement vertical (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:83 msgid "workspace.align.vtop" msgstr "Aligner en haut (%s)" #: src/app/main/ui/workspace/sidebar/assets.cljs +#, unused msgid "workspace.assets.assets" msgstr "Ressources" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets.cljs:134 msgid "workspace.assets.box-filter-all" msgstr "Toutes" -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/dashboard/grid.cljs:130, src/app/main/ui/dashboard/grid.cljs:162, src/app/main/ui/workspace/sidebar/assets/colors.cljs:485, src/app/main/ui/workspace/sidebar/assets.cljs:150 msgid "workspace.assets.colors" msgstr "Couleurs" -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/dashboard/grid.cljs:126, src/app/main/ui/dashboard/grid.cljs:141, src/app/main/ui/workspace/sidebar/assets/components.cljs:513, src/app/main/ui/workspace/sidebar/assets.cljs:139 msgid "workspace.assets.components" msgstr "Composants" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:131 msgid "workspace.assets.create-group" msgstr "Créer un groupe" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:142 msgid "workspace.assets.create-group-hint" msgstr "" "Vos éléments seront automatiquement nommées comme tels : « nom du groupe / " "nom de l'élément »" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/context_menu.cljs:529, src/app/main/ui/workspace/sidebar/assets/colors.cljs:251, src/app/main/ui/workspace/sidebar/assets/components.cljs:577, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:424, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:443 msgid "workspace.assets.delete" msgstr "Supprimer" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/context_menu.cljs:534, src/app/main/ui/workspace/sidebar/assets/components.cljs:572 msgid "workspace.assets.duplicate" msgstr "Dupliquer" +#: src/app/main/ui/workspace/sidebar/assets/components.cljs:571 msgid "workspace.assets.duplicate-main" msgstr "Dupliquer le principal" -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:247, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:439 msgid "workspace.assets.edit" msgstr "Modifier" -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets.cljs:176 +msgid "workspace.assets.filter" +msgstr "Filtrer" + +#: src/app/main/ui/workspace/sidebar/assets/graphics.cljs:384, src/app/main/ui/workspace/sidebar/assets.cljs:145 msgid "workspace.assets.graphics" msgstr "Graphiques" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:255, src/app/main/ui/workspace/sidebar/assets/components.cljs:581, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:428, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:448 msgid "workspace.assets.group" msgstr "Grouper" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:141 msgid "workspace.assets.group-name" msgstr "Nom du groupe" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets.cljs:168 msgid "workspace.assets.libraries" msgstr "Bibliothèques" +#: src/app/main/ui/workspace/sidebar/assets/file_library.cljs:62, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:347 msgid "workspace.assets.local-library" msgstr "Bibliothèque locale" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/file_library.cljs:295 msgid "workspace.assets.not-found" msgstr "Aucune ressource trouvée" +#, unused msgid "workspace.assets.open-library" msgstr "Ouvrir le fichier de la bibliothèque" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/context_menu.cljs:532, src/app/main/ui/workspace/sidebar/assets/colors.cljs:243, src/app/main/ui/workspace/sidebar/assets/components.cljs:566, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:421, src/app/main/ui/workspace/sidebar/assets/groups.cljs:63, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:434 msgid "workspace.assets.rename" msgstr "Renommer" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:132 msgid "workspace.assets.rename-group" msgstr "Renommer le groupe" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets.cljs:173 msgid "workspace.assets.search" msgstr "Chercher des ressources" #: src/app/main/ui/workspace/sidebar/assets.cljs +#, unused msgid "workspace.assets.selected-count" msgid_plural "workspace.assets.selected-count" msgstr[0] "%s élément sélectionné" msgstr[1] "%s éléments sélectionnés" #: src/app/main/ui/workspace/sidebar/assets.cljs +#, unused msgid "workspace.assets.shared-library" msgstr "Bibliothèque partagée" -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs -msgid "workspace.assets.typography" -msgstr "Typographies" - -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -msgid "workspace.assets.typography.font-id" -msgstr "Police" - -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -msgid "workspace.assets.typography.font-size" -msgstr "Taille" - -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -msgid "workspace.assets.typography.font-variant-id" -msgstr "Variante" - -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -msgid "workspace.assets.typography.go-to-edit" -msgstr "Accéder au fichier de bibliothèque de styles à modifier" - -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -msgid "workspace.assets.typography.letter-spacing" -msgstr "Interlettrage" - -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -msgid "workspace.assets.typography.line-height" -msgstr "Interlignage" - -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, -#: src/app/main/ui/inspect/attributes/text.cljs, -#: src/app/main/ui/inspect/attributes/text.cljs -msgid "workspace.assets.typography.sample" -msgstr "Ag" - -msgid "workspace.assets.typography.text-styles" -msgstr "Styles de texte" - -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -msgid "workspace.assets.typography.text-transform" -msgstr "Transformer le texte" - -#: src/app/main/ui/workspace/sidebar/assets.cljs -msgid "workspace.assets.ungroup" -msgstr "Dissocier" - -msgid "workspace.focus.focus-mode" -msgstr "Mode focus" - -msgid "workspace.focus.focus-off" -msgstr "Focus désactivé" - -msgid "workspace.focus.focus-on" -msgstr "Focus activé" - -msgid "workspace.focus.selection" -msgstr "Sélection" - -#: src/app/main/data/workspace/libraries.cljs, -#: src/app/main/ui/components/color_bullet.cljs -msgid "workspace.gradients.linear" -msgstr "Dégradé linéaire" - -#: src/app/main/data/workspace/libraries.cljs, -#: src/app/main/ui/components/color_bullet.cljs -msgid "workspace.gradients.radial" -msgstr "Dégradé radial" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.disable-dynamic-alignment" -msgstr "Désactiver l’alignement dynamique" - -msgid "workspace.header.menu.disable-scale-content" -msgstr "Désactiver l'échelle proportionnelle" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.disable-scale-text" -msgstr "Désactiver la mise à l'échelle du texte" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.disable-snap-guides" -msgstr "Désactiver l’alignement sur les guides" - -msgid "workspace.header.menu.disable-snap-pixel-grid" -msgstr "Désactiver l’accrochage au pixel" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.enable-dynamic-alignment" -msgstr "Activer l’alignement dynamique" - -msgid "workspace.header.menu.enable-scale-content" -msgstr "Activer l'échelle proportionnelle" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.enable-scale-text" -msgstr "Activer le redimensionnement du texte" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.enable-snap-guides" -msgstr "Aligner sur les guides" - -msgid "workspace.header.menu.enable-snap-pixel-grid" -msgstr "Activer l’alignement au pixel" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.hide-artboard-names" -msgstr "Masquer le nom des plans de travail" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.hide-palette" -msgstr "Masquer la palette de couleurs" - -msgid "workspace.header.menu.hide-pixel-grid" -msgstr "Masquer la grille de pixels" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.hide-rules" -msgstr "Masquer les règles" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.hide-textpalette" -msgstr "Masquer la palette de polices" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.option.edit" -msgstr "Éditer" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.option.file" -msgstr "Fichier" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.option.help-info" -msgstr "Aide et information" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.option.preferences" -msgstr "Préférences" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.option.view" -msgstr "Vue" - -msgid "workspace.header.menu.redo" -msgstr "Répéter" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.select-all" -msgstr "Tout sélectionner" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.show-artboard-names" -msgstr "Afficher le nom des plans de travail" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.show-palette" -msgstr "Montrer la palette de couleurs" - -msgid "workspace.header.menu.show-pixel-grid" -msgstr "Afficher la grille de pixels" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.show-rules" -msgstr "Montrer les règles" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.show-textpalette" -msgstr "Afficher la palette des polices" - -msgid "workspace.header.menu.undo" -msgstr "Annuler" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.reset-zoom" -msgstr "Réinitialiser" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.save-error" -msgstr "Erreur d’enregistrement" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.saved" -msgstr "Enregistré" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.saving" -msgstr "Enregistrement" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.unsaved" -msgstr "Modifications non sauvegardées" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.viewer" -msgstr "Mode spectateur (%s)" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.zoom" -msgstr "Zoom" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.zoom-fill" -msgstr "Remplir l’écran" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.zoom-fit" -msgstr "Ajuster à l’écran" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.zoom-fit-all" -msgstr "Zoomer pour montrer tous les éléments" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.zoom-full-screen" -msgstr "Plein écran" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.zoom-selected" -msgstr "Zoomer sur la sélection" - -msgid "workspace.layout_grid.editor.title" -msgstr "Édition de la grille" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.add" -msgstr "Ajouter" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.colors" -msgstr "%s couleurs" - -#: src/app/main/ui/workspace/colorpalette.cljs -msgid "workspace.libraries.colors.empty-palette" -msgstr "Il n'y a pas encore de styles de couleur dans votre bibliothèque" - -#: src/app/main/ui/workspace/textpalette.cljs -msgid "workspace.libraries.colors.empty-typography-palette" -msgstr "Il n'y a pas encore de styles typographiques dans votre bibliothèque" - -#: src/app/main/ui/workspace/colorpicker/libraries.cljs, -#: src/app/main/ui/workspace/colorpalette.cljs -msgid "workspace.libraries.colors.file-library" -msgstr "Bibliothèque du fichier" - -#: src/app/main/ui/workspace/colorpicker.cljs -msgid "workspace.libraries.colors.hsv" -msgstr "HSV" - -#: src/app/main/ui/workspace/colorpicker/libraries.cljs, -#: src/app/main/ui/workspace/colorpalette.cljs -msgid "workspace.libraries.colors.recent-colors" -msgstr "Couleurs récentes" - -#: src/app/main/ui/workspace/colorpicker.cljs -msgid "workspace.libraries.colors.rgb-complementary" -msgstr "Complémentaire en RVB" - -#: src/app/main/ui/workspace/colorpicker.cljs -msgid "workspace.libraries.colors.rgba" -msgstr "RVBA" - -#: src/app/main/ui/workspace/colorpicker.cljs -msgid "workspace.libraries.colors.save-color" -msgstr "Enregistrer le style de couleur" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.components" -msgstr "%s composants" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.file-library" -msgstr "Bibliothèque du fichier" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.graphics" -msgstr "%s graphiques" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.in-this-file" -msgstr "BIBLIOTHÈQUES DANS CE FICHIER" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.libraries" -msgstr "BIBLIOTHÈQUES" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.library" -msgstr "BIBLIOTHÈQUE" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.library-updates" -msgstr "MISES À JOUR DE LA BIBLIOTHÈQUE" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.no-libraries-need-sync" -msgstr "Aucune Bibliothèque Partagée n’a besoin d’être mise à jour" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.no-matches-for" -msgstr "Aucune correspondance pour « %s »" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.no-shared-libraries-available" -msgstr "Aucune Bibliothèque Partagée disponible" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.search-shared-libraries" -msgstr "Rechercher des Bibliothèques Partagées" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.shared-libraries" -msgstr "BIBLIOTHÈQUES PARTAGÉES" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.libraries.text.multiple-typography" -msgstr "Plusieurs typographies" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.libraries.text.multiple-typography-tooltip" -msgstr "Dissocier toutes les typographies" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.typography" -msgstr "%s typographies" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.update" -msgstr "Actualiser" - -#: src/app/main/data/workspace/libraries.cljs -msgid "workspace.libraries.update.see-all-changes" -msgstr "Voir tous les changements" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.updates" -msgstr "MISES À JOUR" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.add-interaction" -msgstr "Cliquer sur le bouton + pour ajouter des interactions." - -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs -msgid "workspace.options.blur-options.title" -msgstr "Flou" - -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs -msgid "workspace.options.blur-options.title.group" -msgstr "Flou de groupe" - -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs -msgid "workspace.options.blur-options.title.multiple" -msgstr "Flou de sélection" - -#: src/app/main/ui/workspace/sidebar/options/page.cljs -msgid "workspace.options.canvas-background" -msgstr "Couleur de fond du canvas" - -msgid "workspace.options.clip-content" -msgstr "Tronquer le contenu" - -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs -msgid "workspace.options.component" -msgstr "Composant" - -msgid "workspace.options.component.annotation" -msgstr "Note" - -msgid "workspace.options.component.copy" -msgstr "Copier" - -msgid "workspace.options.component.create-annotation" -msgstr "Créer une note" - -msgid "workspace.options.component.edit-annotation" -msgstr "Éditer une note" - -msgid "workspace.options.component.main" -msgstr "Principal" - -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -msgid "workspace.options.constraints" -msgstr "Contraintes" - -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -msgid "workspace.options.constraints.bottom" -msgstr "Bas" - -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -msgid "workspace.options.constraints.center" -msgstr "Centre" - -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -msgid "workspace.options.constraints.fix-when-scrolling" -msgstr "Fixe lors du défilement" - -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -msgid "workspace.options.constraints.left" -msgstr "Gauche" - -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -msgid "workspace.options.constraints.leftright" -msgstr "Gauche & droite" - -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -msgid "workspace.options.constraints.right" -msgstr "Droite" - -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -msgid "workspace.options.constraints.scale" -msgstr "Redimensionner" - -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -msgid "workspace.options.constraints.top" -msgstr "Haut" - -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -msgid "workspace.options.constraints.topbottom" -msgstr "Haut & bas" - -#: src/app/main/ui/workspace/sidebar/options.cljs -msgid "workspace.options.design" -msgstr "Conception" - -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs -msgid "workspace.options.export" -msgstr "Export" - -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs -msgid "workspace.options.export-multiple" -msgstr "Exporter la sélection" - -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs -msgid "workspace.options.export-object" -msgid_plural "workspace.options.export-object" -msgstr[0] "Exporter 1 élément" -msgstr[1] "Exporter %s éléments" - -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs -msgid "workspace.options.export.suffix" -msgstr "Suffixe" - -#: 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.exporting-complete" -msgstr "L'export est terminé" - -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs -msgid "workspace.options.exporting-object" -msgstr "Exportation…" - -#: 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.exporting-object-error" -msgstr "L'export a échoué" - -#: 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.exporting-object-slow" -msgstr "L'export est étonnamment lent" - -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs -msgid "workspace.options.fill" -msgstr "Remplissage" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.flows.add-flow-start" -msgstr "Indiquer le début du flux" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.flows.flow-start" -msgstr "Début du flux" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.flows.flow-starts" -msgstr "Départs des flux" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.auto" -msgstr "Automatique" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.column" -msgstr "Colonnes" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.grid-title" -msgstr "Quadrillage" - -msgid "workspace.options.grid.params.color" -msgstr "Couleur" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.columns" -msgstr "Colonnes" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.gutter" -msgstr "Gouttière" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.height" -msgstr "Hauteur" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.margin" -msgstr "Marge" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.rows" -msgstr "Lignes" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.set-default" -msgstr "Définir par défaut" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.size" -msgstr "Taille" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.type" -msgstr "Type" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.type.bottom" -msgstr "Bas" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.type.center" -msgstr "Centre" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.type.left" -msgstr "Gauche" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.type.right" -msgstr "Droite" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.type.stretch" -msgstr "Étirer" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.type.top" -msgstr "Haut" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.use-default" -msgstr "Utiliser la valeur par défaut" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.width" -msgstr "Largeur" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.row" -msgstr "Lignes" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.square" -msgstr "Carré" - -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs -msgid "workspace.options.group-fill" -msgstr "Remplissage de groupe" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.group-stroke" -msgstr "Contour de groupe" - -msgid "workspace.options.height" -msgstr "Hauteur" - -msgid "workspace.options.inspect" -msgstr "Inspecter" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-action" -msgstr "Action" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-after-delay" -msgstr "Après un délai" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-animation" -msgstr "Animation" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-animation-dissolve" -msgstr "Dissolution" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-animation-none" -msgstr "Aucune" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-animation-push" -msgstr "Pousser" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-animation-slide" -msgstr "Glissement" - -msgid "workspace.options.interaction-auto" -msgstr "automatique" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-background" -msgstr "Ajouter une superposition d'arrière-plan" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-close-outside" -msgstr "Fermer en cliquant a l'extérieur" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-close-overlay" -msgstr "Fermer la superposition" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-close-overlay-dest" -msgstr "Fermer la superposition : %s" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-delay" -msgstr "Délai" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-destination" -msgstr "Destination" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-duration" -msgstr "Durée" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-easing" -msgstr "Easing" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-easing-ease" -msgstr "Ease" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-easing-ease-in" -msgstr "Ease in" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-easing-ease-in-out" -msgstr "Ease in out" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-easing-ease-out" -msgstr "Ease out" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-easing-linear" -msgstr "Linéaire" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-in" -msgstr "Dans" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-mouse-enter" -msgstr "Entrée de la souris" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-mouse-leave" -msgstr "Sortie de la souris" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-ms" -msgstr "ms" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-navigate-to" -msgstr "Naviguer vers" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-navigate-to-dest" -msgstr "Naviguer vers : %s" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-none" -msgstr "(non définie)" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-offset-effect" -msgstr "Effet de décalage" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-on-click" -msgstr "Au clic" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-open-overlay" -msgstr "Ouvrir la superposition" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-open-overlay-dest" -msgstr "Ouvrir la superposition : %s" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-open-url" -msgstr "Ouvrir l'URL" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-out" -msgstr "Sortie" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-pos-bottom-center" -msgstr "Centré en bas" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-pos-bottom-left" -msgstr "En bas à gauche" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-pos-bottom-right" -msgstr "En bas à droite" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-pos-center" -msgstr "Au centre" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-pos-manual" -msgstr "Manuel" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-pos-top-center" -msgstr "Centrer en haut" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-pos-top-left" -msgstr "En haut à gauche" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-pos-top-right" -msgstr "En haut à droite" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-position" -msgstr "Position" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-preserve-scroll" -msgstr "Conserver la position du défilement" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-prev-screen" -msgstr "Écran précédent" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-relative-to" -msgstr "Relatif à" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-self" -msgstr "soi" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-toggle-overlay" -msgstr "Activer/désactiver la superposition" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-toggle-overlay-dest" -msgstr "Activer/désactiver la superposition : %s" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-trigger" -msgstr "Déclencheur" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-url" -msgstr "URL" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-while-hovering" -msgstr "En survolant" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-while-pressing" -msgstr "En appuyant" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interactions" -msgstr "Interactions" - -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.blend-mode.color" -msgstr "Couleur" - -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.blend-mode.color-burn" -msgstr "Densité plus forte" - -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.blend-mode.color-dodge" -msgstr "Densité plus faible" - -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.blend-mode.darken" -msgstr "Assombrir" - -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.blend-mode.difference" -msgstr "Différence" - -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.blend-mode.exclusion" -msgstr "Exclusion" - -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.blend-mode.hard-light" -msgstr "Lumière crue" - -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.blend-mode.hue" -msgstr "Teinte" - -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.blend-mode.lighten" -msgstr "Éclaircir" - -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.blend-mode.luminosity" -msgstr "Luminosité" - -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.blend-mode.multiply" -msgstr "Produit" - -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.blend-mode.normal" -msgstr "Normal" - -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.blend-mode.overlay" -msgstr "Incrustation" - -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.blend-mode.saturation" -msgstr "Saturation" - -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.blend-mode.screen" -msgstr "Superposition" - -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.blend-mode.soft-light" -msgstr "Lumière tamisée" - -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.title" -msgstr "Calque" - -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.title.group" -msgstr "Grouper les calques" - -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.title.multiple" -msgstr "Calques sélectionnés" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -msgid "workspace.options.layout-item.advanced-ops" -msgstr "Options avancées" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -msgid "workspace.options.layout-item.layout-item-max-h" -msgstr "Hauteur max" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -msgid "workspace.options.layout-item.layout-item-max-w" -msgstr "Largeur max" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -msgid "workspace.options.layout-item.layout-item-min-h" -msgstr "Hauteur min" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -msgid "workspace.options.layout-item.layout-item-min-w" -msgstr "Largeur min" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -msgid "workspace.options.layout-item.title.layout-item-max-h" -msgstr "Hauteur maximale" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -msgid "workspace.options.layout-item.title.layout-item-max-w" -msgstr "Largeur maximale" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -msgid "workspace.options.layout-item.title.layout-item-min-h" -msgstr "Hauteur minimale" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -msgid "workspace.options.layout-item.title.layout-item-min-w" -msgstr "Largeur minimale" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -msgid "workspace.options.layout.bottom" -msgstr "En bas" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -msgid "workspace.options.layout.direction.column" -msgstr "Colonne" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -msgid "workspace.options.layout.direction.column-reverse" -msgstr "Colonne inversée" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -msgid "workspace.options.layout.direction.row" -msgstr "Ligne" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -msgid "workspace.options.layout.direction.row-reverse" -msgstr "Ligne inversée" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -msgid "workspace.options.layout.gap" -msgstr "Gap" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -msgid "workspace.options.layout.left" -msgstr "A gauche" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -msgid "workspace.options.layout.margin" -msgstr "La marge" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -msgid "workspace.options.layout.margin-all" -msgstr "Tous les côtés" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -msgid "workspace.options.layout.margin-simple" -msgstr "Une marge simple" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -msgid "workspace.options.layout.packed" -msgstr "compacté" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -msgid "workspace.options.layout.padding" -msgstr "Marge intérieure" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -msgid "workspace.options.layout.padding-all" -msgstr "Tous les côtés" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -msgid "workspace.options.layout.padding-simple" -msgstr "Marge intérieure simple" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -msgid "workspace.options.layout.right" -msgstr "À droite" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -msgid "workspace.options.layout.space-around" -msgstr "espace autour" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -msgid "workspace.options.layout.space-between" -msgstr "espace entre" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -msgid "workspace.options.layout.top" -msgstr "En haut" - -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs -msgid "workspace.options.more-colors" -msgstr "Plus de couleurs" - -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs -msgid "workspace.options.more-lib-colors" -msgstr "Plus de couleurs de la bibliothèque" - -msgid "workspace.options.opacity" -msgstr "Opacité" - -#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -msgid "workspace.options.position" -msgstr "Position" - -#: src/app/main/ui/workspace/sidebar/options.cljs -msgid "workspace.options.prototype" -msgstr "Prototype" - -msgid "workspace.options.radius" -msgstr "Rayon" - -#: 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/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.all-corners" -msgstr "Tous les coins" - -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -msgid "workspace.options.radius.single-corners" -msgstr "Coins individuels" - -msgid "workspace.options.recent-fonts" -msgstr "Récentes" - -#: 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" - -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -msgid "workspace.options.rotation" -msgstr "Rotation" - -msgid "workspace.options.search-font" -msgstr "Rechercher une police" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.select-a-shape" -msgstr "" -"Sélectionnez une forme, un plan de travail ou un groupe pour faire glisser " -"une connexion vers un autre plan de travail." - -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs -msgid "workspace.options.selection-color" -msgstr "Couleurs sélectionnées" - -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs -msgid "workspace.options.selection-fill" -msgstr "Remplissage de sélection" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.selection-stroke" -msgstr "Contour de sélection" - -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs -msgid "workspace.options.shadow-options.blur" -msgstr "Flou" - -msgid "workspace.options.shadow-options.color" -msgstr "Couleur de l'ombre" - -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs -msgid "workspace.options.shadow-options.drop-shadow" -msgstr "Ombre portée" - -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs -msgid "workspace.options.shadow-options.inner-shadow" -msgstr "Ombre intérieure" - -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs -msgid "workspace.options.shadow-options.offsetx" -msgstr "X" - -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs -msgid "workspace.options.shadow-options.offsety" -msgstr "Y" - -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs -msgid "workspace.options.shadow-options.spread" -msgstr "Diffusion" - -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs -msgid "workspace.options.shadow-options.title" -msgstr "Ombre" - -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs -msgid "workspace.options.shadow-options.title.group" -msgstr "Ombre de groupe" - -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs -msgid "workspace.options.shadow-options.title.multiple" -msgstr "Ombres de la sélection" - -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs -msgid "workspace.options.show-fill-on-export" -msgstr "Afficher à l'export" - -msgid "workspace.options.show-in-viewer" -msgstr "Montrer en mode spectateur" - -#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -msgid "workspace.options.size" -msgstr "Taille" - -#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs -msgid "workspace.options.size-presets" -msgstr "Tailles prédéfinies" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke" -msgstr "Bordure" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke-cap.circle-marker" -msgstr "Marqueur cercle" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke-cap.circle-marker-short" -msgstr "Cercle" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke-cap.diamond-marker" -msgstr "Marqueur diamant" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke-cap.diamond-marker-short" -msgstr "Diamant" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke-cap.line-arrow" -msgstr "Flèche de ligne" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke-cap.line-arrow-short" -msgstr "Flèche" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke-cap.none" -msgstr "Aucune" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke-cap.round" -msgstr "Rond" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke-cap.square" -msgstr "Carré" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke-cap.square-marker" -msgstr "Marqueur carré" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke-cap.square-marker-short" -msgstr "Rectangle" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke-cap.triangle-arrow" -msgstr "Flèche triangle" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke-cap.triangle-arrow-short" -msgstr "Triangle" - -msgid "workspace.options.stroke-color" -msgstr "Couleur du tracé" - -msgid "workspace.options.stroke-width" -msgstr "Largeur du tracé" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke.center" -msgstr "Centre" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke.dashed" -msgstr "Tirets" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke.dotted" -msgstr "Pointillé" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke.inner" -msgstr "Intérieur" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke.mixed" -msgstr "Mixte" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke.outer" -msgstr "Extérieur" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke.solid" -msgstr "Solide" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.options.text-options.align-bottom" -msgstr "Aligner en bas" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.options.text-options.align-middle" -msgstr "Aligner verticalement au milieu" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.options.text-options.align-top" -msgstr "Aligner en haut" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.options.text-options.direction-ltr" -msgstr "Gauche à droite" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.options.text-options.direction-rtl" -msgstr "Droite à gauche" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.options.text-options.grow-auto-height" -msgstr "Hauteur automatique" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.options.text-options.grow-auto-width" -msgstr "Largeur automatique" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.options.text-options.grow-fixed" -msgstr "Fixe" - -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -msgid "workspace.options.text-options.letter-spacing" -msgstr "Interlettrage" - -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -msgid "workspace.options.text-options.line-height" -msgstr "Interlignage" - -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -msgid "workspace.options.text-options.lowercase" -msgstr "Minuscule" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -msgid "workspace.options.text-options.none" -msgstr "Aucune" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.options.text-options.strikethrough" -msgstr "Barré (%s)" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.options.text-options.text-align-center" -msgstr "Aligner au centre (%s)" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.options.text-options.text-align-justify" -msgstr "Justifier (%s)" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.options.text-options.text-align-left" -msgstr "Aligner à gauche (%s)" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.options.text-options.text-align-right" -msgstr "Aligner à droite (%s)" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.options.text-options.title" -msgstr "Texte" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.options.text-options.title-group" -msgstr "Texte de groupe" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.options.text-options.title-selection" -msgstr "Texte de la sélection" - -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -msgid "workspace.options.text-options.titlecase" -msgstr "Premières Lettres en Capitales" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.options.text-options.underline" -msgstr "Soulignage (%s)" - -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -msgid "workspace.options.text-options.uppercase" -msgstr "Majuscule" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.use-play-button" -msgstr "" -"Utilisez le bouton de lecture dans l’en‑tête pour exécuter la vue du " -"prototype." - -msgid "workspace.options.width" -msgstr "Largeur" - -msgid "workspace.options.x" -msgstr "Axe X" - -msgid "workspace.options.y" -msgstr "Axe Y" - -msgid "workspace.path.actions.add-node" -msgstr "Ajouter un nœud (%s)" - -msgid "workspace.path.actions.delete-node" -msgstr "Supprimer le nœud (%s)" - -msgid "workspace.path.actions.draw-nodes" -msgstr "Dessiner des nœuds (%s)" - -msgid "workspace.path.actions.join-nodes" -msgstr "Joindre les nœuds (%s)" - -msgid "workspace.path.actions.make-corner" -msgstr "Convertir en coin (%s)" - -msgid "workspace.path.actions.make-curve" -msgstr "Convertir en courbe (%s)" - -msgid "workspace.path.actions.merge-nodes" -msgstr "Fusionner les nœuds (%s)" - -msgid "workspace.path.actions.move-nodes" -msgstr "Déplacer les nœuds (%s)" - -msgid "workspace.path.actions.separate-nodes" -msgstr "Dissocier les nœuds (%s)" - -msgid "workspace.path.actions.snap-nodes" -msgstr "Aligner les nœuds (%s)" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.add-flex" -msgstr "Ajouter flex layout" - -msgid "workspace.shape.menu.add-grid" -msgstr "Ajouter disposition en grille" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.back" -msgstr "Envoyer au fond" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.backward" -msgstr "Éloigner" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.copy" -msgstr "Copier" - -msgid "workspace.shape.menu.create-annotation" -msgstr "Créer une note" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.create-artboard-from-selection" -msgstr "Créer un plan de travail depuis la sélection" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.create-component" -msgstr "Créer un composant" - -msgid "workspace.shape.menu.create-multiple-components" -msgstr "Créer plusieurs composants" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.cut" -msgstr "Couper" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.delete" -msgstr "Supprimer" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.delete-flow-start" -msgstr "Supprimer le départ du flux" - -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.detach-instance" -msgstr "Détacher l’instance" - -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.detach-instances-in-bulk" -msgstr "Détacher les instances" - -msgid "workspace.shape.menu.difference" -msgstr "Différence" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.duplicate" -msgstr "Dupliquer" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.edit" -msgstr "Modifier" - -msgid "workspace.shape.menu.exclude" -msgstr "Exclure" - -msgid "workspace.shape.menu.flatten" -msgstr "Aplatir" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.flip-horizontal" -msgstr "Retourner horizontalement" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.flip-vertical" -msgstr "Retourner verticalement" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.flow-start" -msgstr "Départ du flux" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.forward" -msgstr "Avancer" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.front" -msgstr "Amener au premier plan" - -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.go-main" -msgstr "Aller au fichier du composant principal" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.group" -msgstr "Groupe" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.hide" -msgstr "Masquer" - -msgid "workspace.shape.menu.hide-ui" -msgstr "Montrer/Masquer l'interface" - -msgid "workspace.shape.menu.intersection" -msgstr "Intersection" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.lock" -msgstr "Bloquer" - -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.mask" -msgstr "Masque" - -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.paste" -msgstr "Coller" - -msgid "workspace.shape.menu.path" -msgstr "Chemin" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.remove-flex" -msgstr "Retirer flex layout" - -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.reset-overrides" -msgstr "Annuler les modifications" - -msgid "workspace.shape.menu.restore-main" -msgstr "Rétablir le composant principal" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.select-layer" -msgstr "Sélectionner le calque" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.show" -msgstr "Montrer" - -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.show-in-assets" -msgstr "Afficher dans le panneau des ressources" - -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.show-main" -msgstr "Afficher le composant principal" - -msgid "workspace.shape.menu.thumbnail-remove" -msgstr "Retirer la miniature" - -msgid "workspace.shape.menu.thumbnail-set" -msgstr "Définir comme miniature" - -msgid "workspace.shape.menu.transform-to-path" -msgstr "Transformer en chemin" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.ungroup" -msgstr "Dégrouper" - -msgid "workspace.shape.menu.union" -msgstr "Union" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.unlock" -msgstr "Débloquer" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.unmask" -msgstr "Supprimer le masque" - -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.update-components-in-bulk" -msgstr "Mettre à jour les composants" - -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.update-main" -msgstr "Actualiser le composant principal" - -msgid "workspace.sidebar.collapse" -msgstr "Réduire la barre latérale" - -msgid "workspace.sidebar.expand" -msgstr "Ouvrir la barre latérale" - -#: src/app/main/ui/workspace/left_toolbar.cljs -msgid "workspace.sidebar.history" -msgstr "Historique (%s)" - -#: src/app/main/ui/workspace/left_toolbar.cljs -msgid "workspace.sidebar.layers" -msgstr "Calques" - -msgid "workspace.sidebar.layers.components" -msgstr "Composants" - -msgid "workspace.sidebar.layers.frames" -msgstr "Plans de travail" - -msgid "workspace.sidebar.layers.groups" -msgstr "Groupes" - -msgid "workspace.sidebar.layers.images" -msgstr "Images" - -msgid "workspace.sidebar.layers.masks" -msgstr "Les masques" - -msgid "workspace.sidebar.layers.search" -msgstr "Rechercher des calques" - -msgid "workspace.sidebar.layers.shapes" -msgstr "Formes" - -msgid "workspace.sidebar.layers.texts" -msgstr "Textes" - -#: src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs, -#: src/app/main/ui/inspect/attributes/svg.cljs -msgid "workspace.sidebar.options.svg-attrs.title" -msgstr "Attributs SVG importés" - -#: src/app/main/ui/workspace/sidebar/sitemap.cljs -msgid "workspace.sidebar.sitemap" -msgstr "Pages" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.sitemap" -msgstr "Plan du site" - -#: src/app/main/ui/workspace/left_toolbar.cljs -msgid "workspace.toolbar.assets" -msgstr "Ressources" - -#: src/app/main/ui/workspace/left_toolbar.cljs -msgid "workspace.toolbar.color-palette" -msgstr "Palette de couleurs (%s)" - -#: src/app/main/ui/workspace/left_toolbar.cljs -msgid "workspace.toolbar.comments" -msgstr "Commentaires (%s)" - -#: src/app/main/ui/workspace/left_toolbar.cljs -msgid "workspace.toolbar.curve" -msgstr "Courbe (%s)" - -#: src/app/main/ui/workspace/left_toolbar.cljs -msgid "workspace.toolbar.ellipse" -msgstr "Ellipse (%s)" - -#: src/app/main/ui/workspace/left_toolbar.cljs -msgid "workspace.toolbar.frame" -msgstr "Plan de travail (%s)" - -#: src/app/main/ui/workspace/left_toolbar.cljs -msgid "workspace.toolbar.image" -msgstr "Image (%s)" - -#: src/app/main/ui/workspace/left_toolbar.cljs -msgid "workspace.toolbar.move" -msgstr "Déplacer (%s)" - -#: src/app/main/ui/workspace/left_toolbar.cljs -msgid "workspace.toolbar.path" -msgstr "Chemin (%s)" - -#: src/app/main/ui/workspace/left_toolbar.cljs -msgid "workspace.toolbar.rect" -msgstr "Rectangle (%s)" - -#: src/app/main/ui/workspace/left_toolbar.cljs -msgid "workspace.toolbar.shortcuts" -msgstr "Raccourcis (%s)" - -#: src/app/main/ui/workspace/left_toolbar.cljs -msgid "workspace.toolbar.text" -msgstr "Texte (%s)" - -#: src/app/main/ui/workspace/left_toolbar.cljs -msgid "workspace.toolbar.text-palette" -msgstr "Polices (%s)" - -#: src/app/main/ui/workspace/sidebar/history.cljs -msgid "workspace.undo.empty" -msgstr "Il n’y a aucun changement dans l’historique pour l’instant" - -#: src/app/main/ui/workspace/sidebar/history.cljs -msgid "workspace.undo.entry.delete" -msgstr "Supprimé %s" - -#: src/app/main/ui/workspace/sidebar/history.cljs -msgid "workspace.undo.entry.modify" -msgstr "Modifié %s" - -#: src/app/main/ui/workspace/sidebar/history.cljs -msgid "workspace.undo.entry.move" -msgstr "Objets déplacés" - -msgid "workspace.undo.entry.multiple.circle" -msgstr "cercles" - -msgid "workspace.undo.entry.multiple.color" -msgstr "couleurs" - -msgid "workspace.undo.entry.multiple.component" -msgstr "composants" - -msgid "workspace.undo.entry.multiple.curve" -msgstr "courbes" - -msgid "workspace.undo.entry.multiple.frame" -msgstr "plan de travail" - -msgid "workspace.undo.entry.multiple.group" -msgstr "groupes" - -msgid "workspace.undo.entry.multiple.media" -msgstr "graphiques" - -msgid "workspace.undo.entry.multiple.multiple" -msgstr "objets" - -msgid "workspace.undo.entry.multiple.page" -msgstr "pages" - -msgid "workspace.undo.entry.multiple.path" -msgstr "chemins" - -msgid "workspace.undo.entry.multiple.rect" -msgstr "rectangles" - -msgid "workspace.undo.entry.multiple.shape" -msgstr "formes" - -msgid "workspace.undo.entry.multiple.text" -msgstr "textes" - -msgid "workspace.undo.entry.multiple.typography" -msgstr "typographie" - -#: src/app/main/ui/workspace/sidebar/history.cljs -msgid "workspace.undo.entry.new" -msgstr "Nouveau %s" - -msgid "workspace.undo.entry.single.circle" -msgstr "cercle" - -msgid "workspace.undo.entry.single.color" -msgstr "couleur" - -msgid "workspace.undo.entry.single.component" -msgstr "composant" - -msgid "workspace.undo.entry.single.curve" -msgstr "courbe" - -msgid "workspace.undo.entry.single.frame" -msgstr "plan de travail" - -msgid "workspace.undo.entry.single.group" -msgstr "groupe" - -msgid "workspace.undo.entry.single.image" -msgstr "image" - -msgid "workspace.undo.entry.single.media" -msgstr "graphique" - -msgid "workspace.undo.entry.single.multiple" -msgstr "objet" - -msgid "workspace.undo.entry.single.page" -msgstr "page" - -msgid "workspace.undo.entry.single.path" -msgstr "chemin" - -msgid "workspace.undo.entry.single.rect" -msgstr "rectangle" - -msgid "workspace.undo.entry.single.shape" -msgstr "forme" - -msgid "workspace.undo.entry.single.text" -msgstr "texte" - -msgid "workspace.undo.entry.single.typography" -msgstr "typographie" - -#: src/app/main/ui/workspace/sidebar/history.cljs -msgid "workspace.undo.entry.unknown" -msgstr "Opération sur %s" - -#: src/app/main/ui/workspace/sidebar/history.cljs -msgid "workspace.undo.title" -msgstr "Historique" - -#: src/app/main/data/workspace/libraries.cljs -msgid "workspace.updates.dismiss" -msgstr "Ignorer" - -#: src/app/main/data/workspace/libraries.cljs -msgid "workspace.updates.more-info" -msgstr "Plus d'information" - -#: src/app/main/data/workspace/libraries.cljs -msgid "workspace.updates.there-are-updates" -msgstr "Il y a des mises à jour dans les Bibliothèques Partagées" - -#: src/app/main/data/workspace/libraries.cljs -msgid "workspace.updates.update" -msgstr "Actualiser" - -msgid "workspace.viewport.click-to-close-path" -msgstr "Cliquez pour fermer le chemin" - -#: src/app/main/ui/workspace/sidebar/assets/common.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:221 msgid "workspace.assets.sidebar.components" msgid_plural "workspace.assets.sidebar.components" msgstr[0] "1 composant" msgstr[1] "%s composants" -msgid "modals.move-shared-confirm.message" -msgid_plural "modals.move-shared-confirm.message" -msgstr[0] "Êtes-vous sûr de vouloir déplacer cette librairie ?" -msgstr[1] "Êtes-vous sûr de vouloir déplacer ces librairies ?" - -msgid "modals.move-shared-confirm.title" -msgid_plural "modals.move-shared-confirm.title" -msgstr[0] "Déplacer librairie" -msgstr[1] "Déplacer librairies" - -msgid "onboarding.team-modal.team-definition" -msgstr "Qu'est-ce qu'une équipe ?" - -msgid "shortcuts.scale" -msgstr "Échelle" - -msgid "shortcuts.toggle-layout-grid" -msgstr "Ajouter / Retirer grid layout" - -msgid "workspace.context-menu.grid-cells.create-board" -msgstr "Créer un tableau" - -msgid "workspace.context-menu.grid-cells.merge" -msgstr "Fusionner les cellules" - -msgid "workspace.context-menu.grid-track.column.add-after" -msgstr "Ajouter une colonne à droite" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.enable-snap-ruler-guides" -msgstr "Aligner aux guides de règles" - -msgid "workspace.layout_grid.editor.options.edit-grid" -msgstr "Éditer la grille" - -msgid "workspace.layout_grid.editor.top-bar.locate" -msgstr "Montrer" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.remove-grid" -msgstr "Supprimer la disposition en grille" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.loading" -msgstr "Chargement…" - -msgid "inspect.attributes.typography.text-transform.unset" -msgstr "Non assigné" - -msgid "labels.share" -msgstr "Partager" - -msgid "labels.search" -msgstr "Rechercher" - -msgid "onboarding.choice.team-up.continue-creating-team" -msgstr "Continuer en créant une équipe" - -msgid "onboarding.choice.team-up.start-without-a-team" -msgstr "Commencer sans équipe" - -msgid "onboarding.choice.team-up.continue-without-a-team" -msgstr "Continuer sans équipe" - -msgid "onboarding.choice.team-up.create-team-and-send-invites" -msgstr "Créer une équipe et envoyer des invitations" - -msgid "onboarding.choice.team-up.start-without-a-team-description" -msgstr "Vous pourrez créer une équipe plus tard." - -msgid "onboarding.choice.team-up.create-team-and-invite" -msgstr "Créer une équipe et inviter" - -msgid "onboarding.choice.team-up.create-team-and-send-invites-description" -msgstr "Vous pourrez envoyer les invitations plus tard" - -msgid "onboarding.choice.team-up.create-team-without-invite" -msgstr "Créer l'équipe" - -msgid "onboarding.choice.team-up.create-team-without-inviting" -msgstr "Créer l'équipe sans inviter" - -msgid "workspace.layout_grid.editor.top-bar.done" -msgstr "Fait" - -msgid "workspace.layout_grid.editor.options.exit" -msgstr "Quitter" - -msgid "workspace.options.component.swap" -msgstr "Échanger composant" - -msgid "workspace.options.component.swap.empty" -msgstr "Cette librairie ne contient aucun élément pour le moment" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.flows.flow" -msgstr "Flux" - -msgid "media.radial" -msgstr "Radial" - -msgid "media.choose-image" -msgstr "Choisir image" - -msgid "media.gradient" -msgstr "Gradient" - -msgid "workspace.options.guides.title" -msgstr "Guides" - -#: src/app/main/ui/auth/login.cljs -msgid "auth.login-account-title" -msgstr "Connexion à mon compte" - -#: src/app/main/data/users.cljs -msgid "errors.email-domain-not-allowed" -msgstr "Domaine non autorisé" - -msgid "errors.paste-data-validation" -msgstr "Données du presse-papier invalides" - -msgid "errors.validation" -msgstr "Erreur de validation" - -msgid "media.image" -msgstr "Image" - -msgid "media.image.short" -msgstr "img" - -msgid "media.keep-aspect-ratio" -msgstr "Conserver le ratio" - -msgid "media.linear" -msgstr "Linéaire" - -msgid "media.solid" -msgstr "Solide" - -msgid "modals.move-shared-confirm.accept" -msgid_plural "modals.move-shared-confirm.accept" -msgstr[0] "Déplacer" -msgstr[1] "Déplacer" - -#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs -msgid "settings.select-this-color" -msgstr "Sélectionnez les éléments qui utilisent ce style" - -msgid "shortcuts.toggle-guides" -msgstr "Montrer / Cacher les guides" - -msgid "shortcuts.toggle-rulers" -msgstr "Montrer / Cacher les règles" - -msgid "shortcuts.toggle-snap-guides" -msgstr "Aligner selon les guides" - -msgid "shortcuts.toggle-snap-ruler-guide" -msgstr "Aligner selon les guides de règles" - -msgid "shortcuts.toggle-theme" -msgstr "Changer le thème" - -#: src/app/main/ui/workspace/sidebar/assets.cljs -msgid "workspace.assets.filter" -msgstr "Filtrer" - -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets.cljs:193 msgid "workspace.assets.sort" msgstr "Trier" +#: src/app/main/ui/dashboard/grid.cljs:134, src/app/main/ui/dashboard/grid.cljs:189, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:397, src/app/main/ui/workspace/sidebar/assets.cljs:155 +msgid "workspace.assets.typography" +msgstr "Typographies" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused +msgid "workspace.assets.typography.font-id" +msgstr "Police" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:505 +msgid "workspace.assets.typography.font-size" +msgstr "Taille" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:501 +msgid "workspace.assets.typography.font-variant-id" +msgstr "Variante" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:523 +msgid "workspace.assets.typography.go-to-edit" +msgstr "Accéder au fichier de bibliothèque de styles à modifier" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:513 +msgid "workspace.assets.typography.letter-spacing" +msgstr "Interlettrage" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:509 +msgid "workspace.assets.typography.line-height" +msgstr "Interlignage" + +#: src/app/main/ui/dashboard/grid.cljs:199, src/app/main/ui/workspace/libraries.cljs:461, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:464, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:489, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:596, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:615 +msgid "workspace.assets.typography.sample" +msgstr "Ag" + +#, unused +msgid "workspace.assets.typography.text-styles" +msgstr "Styles de texte" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:517 +msgid "workspace.assets.typography.text-transform" +msgstr "Transformer le texte" + +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:66 +msgid "workspace.assets.ungroup" +msgstr "Dissocier" + +#: src/app/main/ui/workspace/context_menu.cljs:634 +msgid "workspace.context-menu.grid-cells.area" +msgstr "Créer une zone" + +#: src/app/main/ui/workspace/context_menu.cljs:637 +msgid "workspace.context-menu.grid-cells.create-board" +msgstr "Créer un tableau" + +#: src/app/main/ui/workspace/context_menu.cljs:629 +msgid "workspace.context-menu.grid-cells.merge" +msgstr "Fusionner les cellules" + +#: src/app/main/ui/workspace/context_menu.cljs:594 +msgid "workspace.context-menu.grid-track.column.add-after" +msgstr "Ajouter une colonne à droite" + +#: src/app/main/ui/workspace/context_menu.cljs:593 msgid "workspace.context-menu.grid-track.column.add-before" msgstr "Ajouter une colonne à gauche" +#: src/app/main/ui/workspace/context_menu.cljs:595 msgid "workspace.context-menu.grid-track.column.delete" msgstr "Supprimer la colonne" +#: src/app/main/ui/workspace/context_menu.cljs:596 msgid "workspace.context-menu.grid-track.column.delete-shapes" msgstr "Supprimer la colonne et le contenu" +#: src/app/main/ui/workspace/context_menu.cljs:592 msgid "workspace.context-menu.grid-track.column.duplicate" msgstr "Dupliquer la colonne" +#: src/app/main/ui/workspace/context_menu.cljs:601 msgid "workspace.context-menu.grid-track.row.add-after" msgstr "Ajouter une rangée en-dessous" +#: src/app/main/ui/workspace/context_menu.cljs:600 msgid "workspace.context-menu.grid-track.row.add-before" msgstr "Ajouter une rangée au-dessus" +#: src/app/main/ui/workspace/context_menu.cljs:602 msgid "workspace.context-menu.grid-track.row.delete" msgstr "Supprimer la rangée" +#: src/app/main/ui/workspace/context_menu.cljs:603 msgid "workspace.context-menu.grid-track.row.delete-shapes" msgstr "Supprimer la rangée et son contenu" +#: src/app/main/ui/workspace/context_menu.cljs:599 msgid "workspace.context-menu.grid-track.row.duplicate" msgstr "Dupliquer la rangée" +#: src/app/main/ui/workspace/sidebar/layers.cljs:525 +msgid "workspace.focus.focus-mode" +msgstr "Mode focus" + +#: src/app/main/ui/workspace/context_menu.cljs:287, src/app/main/ui/workspace/context_menu.cljs:553 +msgid "workspace.focus.focus-off" +msgstr "Focus désactivé" + +#: src/app/main/ui/workspace/context_menu.cljs:286 +msgid "workspace.focus.focus-on" +msgstr "Focus activé" + +#, unused +msgid "workspace.focus.selection" +msgstr "Sélection" + +#: src/app/util/color.cljs:34 +msgid "workspace.gradients.linear" +msgstr "Dégradé linéaire" + +#: src/app/util/color.cljs:35 +msgid "workspace.gradients.radial" +msgstr "Dégradé radial" + +#: src/app/main/ui/workspace/main_menu.cljs:238 +msgid "workspace.header.menu.disable-dynamic-alignment" +msgstr "Désactiver l’alignement dynamique" + +#: src/app/main/ui/workspace/main_menu.cljs:192 +msgid "workspace.header.menu.disable-scale-content" +msgstr "Désactiver l'échelle proportionnelle" + #: src/app/main/ui/workspace/header.cljs +#, unused +msgid "workspace.header.menu.disable-scale-text" +msgstr "Désactiver la mise à l'échelle du texte" + +#: src/app/main/ui/workspace/main_menu.cljs:223 +msgid "workspace.header.menu.disable-snap-guides" +msgstr "Désactiver l’alignement sur les guides" + +#: src/app/main/ui/workspace/main_menu.cljs:253 +msgid "workspace.header.menu.disable-snap-pixel-grid" +msgstr "Désactiver l’accrochage au pixel" + +#: src/app/main/ui/workspace/main_menu.cljs:207 msgid "workspace.header.menu.disable-snap-ruler-guides" msgstr "Désactiver l'alignement aux guides de règles" +#: src/app/main/ui/workspace/main_menu.cljs:239 +msgid "workspace.header.menu.enable-dynamic-alignment" +msgstr "Activer l’alignement dynamique" + +#: src/app/main/ui/workspace/main_menu.cljs:193 +msgid "workspace.header.menu.enable-scale-content" +msgstr "Activer l'échelle proportionnelle" + #: src/app/main/ui/workspace/header.cljs +#, unused +msgid "workspace.header.menu.enable-scale-text" +msgstr "Activer le redimensionnement du texte" + +#: src/app/main/ui/workspace/main_menu.cljs:224 +msgid "workspace.header.menu.enable-snap-guides" +msgstr "Aligner sur les guides" + +#: src/app/main/ui/workspace/main_menu.cljs:254 +msgid "workspace.header.menu.enable-snap-pixel-grid" +msgstr "Activer l’alignement au pixel" + +#: src/app/main/ui/workspace/main_menu.cljs:208 +msgid "workspace.header.menu.enable-snap-ruler-guides" +msgstr "Aligner aux guides de règles" + +#: src/app/main/ui/workspace/main_menu.cljs:382 +msgid "workspace.header.menu.hide-artboard-names" +msgstr "Masquer le nom des plans de travail" + +#: src/app/main/ui/workspace/main_menu.cljs:336 +msgid "workspace.header.menu.hide-guides" +msgstr "Cacher les guides" + +#: src/app/main/ui/workspace/main_menu.cljs:353 +msgid "workspace.header.menu.hide-palette" +msgstr "Masquer la palette de couleurs" + +#: src/app/main/ui/workspace/main_menu.cljs:394 +msgid "workspace.header.menu.hide-pixel-grid" +msgstr "Masquer la grille de pixels" + +#: src/app/main/ui/workspace/main_menu.cljs:320 +msgid "workspace.header.menu.hide-rules" +msgstr "Masquer les règles" + +#: src/app/main/ui/workspace/main_menu.cljs:367 +msgid "workspace.header.menu.hide-textpalette" +msgstr "Masquer la palette de polices" + +#: src/app/main/ui/workspace/main_menu.cljs:731 +msgid "workspace.header.menu.option.edit" +msgstr "Éditer" + +#: src/app/main/ui/workspace/main_menu.cljs:720 +msgid "workspace.header.menu.option.file" +msgstr "Fichier" + +#: src/app/main/ui/workspace/main_menu.cljs:777 +msgid "workspace.header.menu.option.help-info" +msgstr "Aide et information" + +#: src/app/main/ui/workspace/main_menu.cljs:753 +msgid "workspace.header.menu.option.preferences" +msgstr "Préférences" + +#: src/app/main/ui/workspace/main_menu.cljs:742 +msgid "workspace.header.menu.option.view" +msgstr "Vue" + +#: src/app/main/ui/workspace/main_menu.cljs:459 +msgid "workspace.header.menu.redo" +msgstr "Répéter" + +#: src/app/main/ui/workspace/main_menu.cljs:432 +msgid "workspace.header.menu.select-all" +msgstr "Tout sélectionner" + +#: src/app/main/ui/workspace/main_menu.cljs:383 +msgid "workspace.header.menu.show-artboard-names" +msgstr "Afficher le nom des plans de travail" + +#: src/app/main/ui/workspace/main_menu.cljs:337 msgid "workspace.header.menu.show-guides" msgstr "Montrer les guides" +#: src/app/main/ui/workspace/main_menu.cljs:354 +msgid "workspace.header.menu.show-palette" +msgstr "Montrer la palette de couleurs" + +#: src/app/main/ui/workspace/main_menu.cljs:395 +msgid "workspace.header.menu.show-pixel-grid" +msgstr "Afficher la grille de pixels" + +#: src/app/main/ui/workspace/main_menu.cljs:321 +msgid "workspace.header.menu.show-rules" +msgstr "Montrer les règles" + +#: src/app/main/ui/workspace/main_menu.cljs:368 +msgid "workspace.header.menu.show-textpalette" +msgstr "Afficher la palette des polices" + +#: src/app/main/ui/workspace/main_menu.cljs:279 msgid "workspace.header.menu.toggle-dark-theme" msgstr "Basculer vers le thème sombre" +#: src/app/main/ui/workspace/main_menu.cljs:278 msgid "workspace.header.menu.toggle-light-theme" msgstr "Basculer vers le thème clair" +#: src/app/main/ui/workspace/main_menu.cljs:446 +msgid "workspace.header.menu.undo" +msgstr "Annuler" + +#: src/app/main/ui/viewer/header.cljs:98, src/app/main/ui/workspace/right_header.cljs:120 +msgid "workspace.header.reset-zoom" +msgstr "Réinitialiser" + +#: src/app/main/ui/workspace/header.cljs +#, unused +msgid "workspace.header.save-error" +msgstr "Erreur d’enregistrement" + +#: src/app/main/ui/workspace/right_header.cljs:52 +msgid "workspace.header.saved" +msgstr "Enregistré" + +#: src/app/main/ui/workspace/header.cljs +#, unused +msgid "workspace.header.saving" +msgstr "Enregistrement" + +#: src/app/main/ui/workspace/right_header.cljs:42, src/app/main/ui/workspace/right_header.cljs:47 +msgid "workspace.header.unsaved" +msgstr "Modifications non sauvegardées" + +#: src/app/main/ui/workspace/right_header.cljs:239 +msgid "workspace.header.viewer" +msgstr "Mode spectateur (%s)" + +#: src/app/main/ui/viewer/header.cljs:79, src/app/main/ui/workspace/right_header.cljs:103 +msgid "workspace.header.zoom" +msgstr "Zoom" + +#: src/app/main/ui/viewer/header.cljs:109 +msgid "workspace.header.zoom-fill" +msgstr "Remplir l’écran" + +#: src/app/main/ui/viewer/header.cljs:102 +msgid "workspace.header.zoom-fit" +msgstr "Ajuster à l’écran" + +#: src/app/main/ui/workspace/right_header.cljs:123 +msgid "workspace.header.zoom-fit-all" +msgstr "Zoomer pour montrer tous les éléments" + +#: src/app/main/ui/viewer/header.cljs:116 +msgid "workspace.header.zoom-full-screen" +msgstr "Plein écran" + +#: src/app/main/ui/workspace/right_header.cljs:130 +msgid "workspace.header.zoom-selected" +msgstr "Zoomer sur la sélection" + +#: src/app/main/ui/workspace/sidebar/options/menus/grid_cell.cljs:273, src/app/main/ui/workspace/sidebar/options/menus/grid_cell.cljs:275, src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:612 +msgid "workspace.layout_grid.editor.options.edit-grid" +msgstr "Éditer la grille" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:1280 +msgid "workspace.layout_grid.editor.options.exit" +msgstr "Quitter" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:483 msgid "workspace.layout_grid.editor.padding.expand" msgstr "Montrer les options de marge intérieure sur les 4 côtés" +#: src/app/main/ui/workspace/viewport/grid_layout_editor.cljs:59 +msgid "workspace.layout_grid.editor.title" +msgstr "Édition de la grille" + +#: src/app/main/ui/workspace/viewport/grid_layout_editor.cljs:65 +msgid "workspace.layout_grid.editor.top-bar.done" +msgstr "Fait" + +#: src/app/main/ui/workspace/viewport/grid_layout_editor.cljs:62 +msgid "workspace.layout_grid.editor.top-bar.locate" +msgstr "Montrer" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:1306 msgid "workspace.layout_grid.editor.top-bar.locate.tooltip" msgstr "Montrer la disposition en grille" #: src/app/main/ui/workspace/libraries.cljs +#, unused +msgid "workspace.libraries.add" +msgstr "Ajouter" + +#: src/app/main/ui/workspace/libraries.cljs:80, src/app/main/ui/workspace/libraries.cljs:99 +msgid "workspace.libraries.colors" +msgstr "%s couleurs" + +#: src/app/main/ui/workspace/color_palette.cljs:126 +msgid "workspace.libraries.colors.empty-palette" +msgstr "Il n'y a pas encore de styles de couleur dans votre bibliothèque" + +#: src/app/main/ui/workspace/text_palette.cljs:150 +msgid "workspace.libraries.colors.empty-typography-palette" +msgstr "Il n'y a pas encore de styles typographiques dans votre bibliothèque" + +#: src/app/main/ui/workspace/color_palette_ctx_menu.cljs:60, src/app/main/ui/workspace/colorpicker/libraries.cljs:73, src/app/main/ui/workspace/text_palette_ctx_menu.cljs:50 +msgid "workspace.libraries.colors.file-library" +msgstr "Bibliothèque du fichier" + +#: src/app/main/ui/workspace/colorpicker.cljs +#, unused +msgid "workspace.libraries.colors.hsv" +msgstr "HSV" + +#: src/app/main/ui/workspace/color_palette_ctx_menu.cljs:82, src/app/main/ui/workspace/colorpicker/libraries.cljs:72 +msgid "workspace.libraries.colors.recent-colors" +msgstr "Couleurs récentes" + +#: src/app/main/ui/workspace/colorpicker.cljs +#, unused +msgid "workspace.libraries.colors.rgb-complementary" +msgstr "Complémentaire en RVB" + +#: src/app/main/ui/workspace/colorpicker.cljs +#, unused +msgid "workspace.libraries.colors.rgba" +msgstr "RVBA" + +#: src/app/main/ui/workspace/colorpicker.cljs:372 +msgid "workspace.libraries.colors.save-color" +msgstr "Enregistrer le style de couleur" + +#: src/app/main/ui/workspace/libraries.cljs:74, src/app/main/ui/workspace/libraries.cljs:91 +msgid "workspace.libraries.components" +msgstr "%s composants" + +#: src/app/main/ui/workspace/libraries.cljs:215 +msgid "workspace.libraries.file-library" +msgstr "Bibliothèque du fichier" + +#: src/app/main/ui/workspace/libraries.cljs:77, src/app/main/ui/workspace/libraries.cljs:95 +msgid "workspace.libraries.graphics" +msgstr "%s graphiques" + +#: src/app/main/ui/workspace/libraries.cljs:209 +msgid "workspace.libraries.in-this-file" +msgstr "BIBLIOTHÈQUES DANS CE FICHIER" + +#: src/app/main/ui/workspace/libraries.cljs:526, src/app/main/ui/workspace/libraries.cljs:531 +msgid "workspace.libraries.libraries" +msgstr "BIBLIOTHÈQUES" + +#: src/app/main/ui/workspace/libraries.cljs +#, unused +msgid "workspace.libraries.library" +msgstr "BIBLIOTHÈQUE" + +#: src/app/main/ui/workspace/libraries.cljs:382 +msgid "workspace.libraries.library-updates" +msgstr "MISES À JOUR DE LA BIBLIOTHÈQUE" + +#: src/app/main/ui/workspace/libraries.cljs:290 +msgid "workspace.libraries.loading" +msgstr "Chargement…" + +#: src/app/main/ui/workspace/libraries.cljs:380 +msgid "workspace.libraries.no-libraries-need-sync" +msgstr "Aucune Bibliothèque Partagée n’a besoin d’être mise à jour" + +#: src/app/main/ui/workspace/libraries.cljs:299 +msgid "workspace.libraries.no-matches-for" +msgstr "Aucune correspondance pour « %s »" + +#: src/app/main/ui/workspace/libraries.cljs:296 +msgid "workspace.libraries.no-shared-libraries-available" +msgstr "Aucune Bibliothèque Partagée disponible" + +#: src/app/main/ui/workspace/libraries.cljs:260 +msgid "workspace.libraries.search-shared-libraries" +msgstr "Rechercher des Bibliothèques Partagées" + +#: src/app/main/ui/workspace/libraries.cljs:256 +msgid "workspace.libraries.shared-libraries" +msgstr "BIBLIOTHÈQUES PARTAGÉES" + +#: src/app/main/ui/workspace/libraries.cljs:282 msgid "workspace.libraries.shared-library-btn" msgstr "Connecter librairie" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:308 +msgid "workspace.libraries.text.multiple-typography" +msgstr "Plusieurs typographies" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:311 +msgid "workspace.libraries.text.multiple-typography-tooltip" +msgstr "Dissocier toutes les typographies" + +#: src/app/main/ui/workspace/libraries.cljs:83, src/app/main/ui/workspace/libraries.cljs:103 +msgid "workspace.libraries.typography" +msgstr "%s typographies" + +#: src/app/main/ui/workspace/libraries.cljs:249 msgid "workspace.libraries.unlink-library-btn" msgstr "Déconnecter librairie" +#: src/app/main/ui/workspace/libraries.cljs:402 +msgid "workspace.libraries.update" +msgstr "Actualiser" + +#: src/app/main/ui/workspace/libraries.cljs:477 +msgid "workspace.libraries.update.see-all-changes" +msgstr "Voir tous les changements" + +#: src/app/main/ui/workspace/libraries.cljs:536 +msgid "workspace.libraries.updates" +msgstr "MISES À JOUR" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:737 +msgid "workspace.options.add-interaction" +msgstr "Cliquer sur le bouton + pour ajouter des interactions." + +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:86, src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:102 +msgid "workspace.options.blur-options.title" +msgstr "Flou" + +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:85 +msgid "workspace.options.blur-options.title.group" +msgstr "Flou de groupe" + +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:84 +msgid "workspace.options.blur-options.title.multiple" +msgstr "Flou de sélection" + +#: src/app/main/ui/workspace/sidebar/options/page.cljs:32, src/app/main/ui/workspace/sidebar/options/page.cljs:39 +msgid "workspace.options.canvas-background" +msgstr "Couleur de fond du canvas" + +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:548 +msgid "workspace.options.clip-content" +msgstr "Tronquer le contenu" + +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:600, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:605 +msgid "workspace.options.component" +msgstr "Composant" + +#: src/app/main/ui/viewer/inspect/annotation.cljs:19, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:181 +msgid "workspace.options.component.annotation" +msgstr "Note" + +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:610 +msgid "workspace.options.component.copy" +msgstr "Copier" + +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:173 +msgid "workspace.options.component.create-annotation" +msgstr "Créer une note" + +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:172 +msgid "workspace.options.component.edit-annotation" +msgstr "Éditer une note" + +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:609 +msgid "workspace.options.component.main" +msgstr "Principal" + +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:427 +msgid "workspace.options.component.swap" +msgstr "Échanger composant" + +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:471 +msgid "workspace.options.component.swap.empty" +msgstr "Cette librairie ne contient aucun élément pour le moment" + +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:163 +msgid "workspace.options.constraints" +msgstr "Contraintes" + +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:150 +msgid "workspace.options.constraints.bottom" +msgstr "Bas" + +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:141, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:152 +msgid "workspace.options.constraints.center" +msgstr "Centre" + +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:229 +msgid "workspace.options.constraints.fix-when-scrolling" +msgstr "Fixe lors du défilement" + +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:138 +msgid "workspace.options.constraints.left" +msgstr "Gauche" + +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:140 +msgid "workspace.options.constraints.leftright" +msgstr "Gauche & droite" + +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:139 +msgid "workspace.options.constraints.right" +msgstr "Droite" + +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:142, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:153 +msgid "workspace.options.constraints.scale" +msgstr "Redimensionner" + +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:149 +msgid "workspace.options.constraints.top" +msgstr "Haut" + +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:151 +msgid "workspace.options.constraints.topbottom" +msgstr "Haut & bas" + +#: src/app/main/ui/workspace/sidebar/options.cljs:112 +msgid "workspace.options.design" +msgstr "Conception" + +#: src/app/main/ui/viewer/inspect/exports.cljs:139 +msgid "workspace.options.export" +msgstr "Export" + +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs +#, unused +msgid "workspace.options.export-multiple" +msgstr "Exporter la sélection" + +#: src/app/main/ui/viewer/inspect/exports.cljs:195, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:237 +msgid "workspace.options.export-object" +msgid_plural "workspace.options.export-object" +msgstr[0] "Exporter 1 élément" +msgstr[1] "Exporter %s éléments" + +#: src/app/main/ui/viewer/inspect/exports.cljs:178, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:219 +msgid "workspace.options.export.suffix" +msgstr "Suffixe" + +#: src/app/main/ui/export.cljs:240 +msgid "workspace.options.exporting-complete" +msgstr "L'export est terminé" + +#: src/app/main/ui/export.cljs:172, src/app/main/ui/export.cljs:241, src/app/main/ui/viewer/inspect/exports.cljs:194, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:236 +msgid "workspace.options.exporting-object" +msgstr "Exportation…" + +#: src/app/main/ui/export.cljs:239 +msgid "workspace.options.exporting-object-error" +msgstr "L'export a échoué" + +#: src/app/main/ui/export.cljs:242 +msgid "workspace.options.exporting-object-slow" +msgstr "L'export est étonnamment lent" + +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:49, src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:174 +msgid "workspace.options.fill" +msgstr "Remplissage" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:178 +msgid "workspace.options.flows.add-flow-start" +msgstr "Indiquer le début du flux" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:174 +msgid "workspace.options.flows.flow" +msgstr "Flux" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#, unused +msgid "workspace.options.flows.flow-start" +msgstr "Début du flux" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:161 +msgid "workspace.options.flows.flow-starts" +msgstr "Départs des flux" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:29 +msgid "workspace.options.grid.auto" +msgstr "Automatique" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:157 +msgid "workspace.options.grid.column" +msgstr "Colonnes" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused +msgid "workspace.options.grid.grid-title" +msgstr "Quadrillage" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:196, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:237 +msgid "workspace.options.grid.params.color" +msgstr "Couleur" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused +msgid "workspace.options.grid.params.columns" +msgstr "Colonnes" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:259 +msgid "workspace.options.grid.params.gutter" +msgstr "Gouttière" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:246 +msgid "workspace.options.grid.params.height" +msgstr "Hauteur" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:270 +msgid "workspace.options.grid.params.margin" +msgstr "Marge" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused +msgid "workspace.options.grid.params.rows" +msgstr "Lignes" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:216, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:290 +msgid "workspace.options.grid.params.set-default" +msgstr "Définir par défaut" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused +msgid "workspace.options.grid.params.size" +msgstr "Taille" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused +msgid "workspace.options.grid.params.type" +msgstr "Type" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:231 +msgid "workspace.options.grid.params.type.bottom" +msgstr "Bas" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:229 +msgid "workspace.options.grid.params.type.center" +msgstr "Centre" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:228 +msgid "workspace.options.grid.params.type.left" +msgstr "Gauche" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:232 +msgid "workspace.options.grid.params.type.right" +msgstr "Droite" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:225 +msgid "workspace.options.grid.params.type.stretch" +msgstr "Étirer" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:227 +msgid "workspace.options.grid.params.type.top" +msgstr "Haut" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:211, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:288 +msgid "workspace.options.grid.params.use-default" +msgstr "Utiliser la valeur par défaut" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:247 +msgid "workspace.options.grid.params.width" +msgstr "Largeur" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:158 +msgid "workspace.options.grid.row" +msgstr "Lignes" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:156 +msgid "workspace.options.grid.square" +msgstr "Carré" + +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:48 +msgid "workspace.options.group-fill" +msgstr "Remplissage de groupe" + +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:42 +msgid "workspace.options.group-stroke" +msgstr "Contour de groupe" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:310 +msgid "workspace.options.guides.title" +msgstr "Guides" + +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:406 +msgid "workspace.options.height" +msgstr "Hauteur" + +#: src/app/main/ui/workspace/sidebar/options.cljs:161 +msgid "workspace.options.inspect" +msgstr "Inspecter" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:468 +msgid "workspace.options.interaction-action" +msgstr "Action" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:41, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:367 +msgid "workspace.options.interaction-after-delay" +msgstr "Après un délai" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:614 +msgid "workspace.options.interaction-animation" +msgstr "Animation" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:406 +msgid "workspace.options.interaction-animation-dissolve" +msgstr "Dissolution" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:405 +msgid "workspace.options.interaction-animation-none" +msgstr "Aucune" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:412 +msgid "workspace.options.interaction-animation-push" +msgstr "Pousser" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:407 +msgid "workspace.options.interaction-animation-slide" +msgstr "Glissement" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:391 +msgid "workspace.options.interaction-auto" +msgstr "automatique" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:604 +msgid "workspace.options.interaction-background" +msgstr "Ajouter une superposition d'arrière-plan" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:590 +msgid "workspace.options.interaction-close-outside" +msgstr "Fermer en cliquant a l'extérieur" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:372 +msgid "workspace.options.interaction-close-overlay" +msgstr "Fermer la superposition" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:56 +msgid "workspace.options.interaction-close-overlay-dest" +msgstr "Fermer la superposition : %s" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:456 +msgid "workspace.options.interaction-delay" +msgstr "Délai" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:478 +msgid "workspace.options.interaction-destination" +msgstr "Destination" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:661 +msgid "workspace.options.interaction-duration" +msgstr "Durée" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:674 +msgid "workspace.options.interaction-easing" +msgstr "Easing" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:416 +msgid "workspace.options.interaction-easing-ease" +msgstr "Ease" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:417 +msgid "workspace.options.interaction-easing-ease-in" +msgstr "Ease in" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:419 +msgid "workspace.options.interaction-easing-ease-in-out" +msgstr "Ease in out" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:418 +msgid "workspace.options.interaction-easing-ease-out" +msgstr "Ease out" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:415 +msgid "workspace.options.interaction-easing-linear" +msgstr "Linéaire" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#, unused +msgid "workspace.options.interaction-in" +msgstr "Dans" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:39, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:364 +msgid "workspace.options.interaction-mouse-enter" +msgstr "Entrée de la souris" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:40, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:365 +msgid "workspace.options.interaction-mouse-leave" +msgstr "Sortie de la souris" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:458, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:459, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:464, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:663, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:665, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:669 +msgid "workspace.options.interaction-ms" +msgstr "ms" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:369 +msgid "workspace.options.interaction-navigate-to" +msgstr "Naviguer vers" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:50 +msgid "workspace.options.interaction-navigate-to-dest" +msgstr "Naviguer vers : %s" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:51, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:53, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:55, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:380 +msgid "workspace.options.interaction-none" +msgstr "(non définie)" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:691 +msgid "workspace.options.interaction-offset-effect" +msgstr "Effet de décalage" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:35, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:360 +msgid "workspace.options.interaction-on-click" +msgstr "Au clic" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:370 +msgid "workspace.options.interaction-open-overlay" +msgstr "Ouvrir la superposition" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:52 +msgid "workspace.options.interaction-open-overlay-dest" +msgstr "Ouvrir la superposition : %s" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:59, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:374 +msgid "workspace.options.interaction-open-url" +msgstr "Ouvrir l'URL" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#, unused +msgid "workspace.options.interaction-out" +msgstr "Sortie" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:403 +msgid "workspace.options.interaction-pos-bottom-center" +msgstr "Centré en bas" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:401 +msgid "workspace.options.interaction-pos-bottom-left" +msgstr "En bas à gauche" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:402 +msgid "workspace.options.interaction-pos-bottom-right" +msgstr "En bas à droite" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:397 +msgid "workspace.options.interaction-pos-center" +msgstr "Au centre" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:396 +msgid "workspace.options.interaction-pos-manual" +msgstr "Manuel" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:400 +msgid "workspace.options.interaction-pos-top-center" +msgstr "Centrer en haut" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:398 +msgid "workspace.options.interaction-pos-top-left" +msgstr "En haut à gauche" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:399 +msgid "workspace.options.interaction-pos-top-right" +msgstr "En haut à droite" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:524 +msgid "workspace.options.interaction-position" +msgstr "Position" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:494 +msgid "workspace.options.interaction-preserve-scroll" +msgstr "Conserver la position du défilement" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:58, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:373 +msgid "workspace.options.interaction-prev-screen" +msgstr "Écran précédent" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:515 +msgid "workspace.options.interaction-relative-to" +msgstr "Relatif à" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:57, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:379, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:393, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:394 +msgid "workspace.options.interaction-self" +msgstr "soi" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:371 +msgid "workspace.options.interaction-toggle-overlay" +msgstr "Activer/désactiver la superposition" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:54 +msgid "workspace.options.interaction-toggle-overlay-dest" +msgstr "Activer/désactiver la superposition : %s" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:445 +msgid "workspace.options.interaction-trigger" +msgstr "Déclencheur" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:503 +msgid "workspace.options.interaction-url" +msgstr "URL" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:37, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:362 +msgid "workspace.options.interaction-while-hovering" +msgstr "En survolant" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:38, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:363 +msgid "workspace.options.interaction-while-pressing" +msgstr "En appuyant" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:724 +msgid "workspace.options.interactions" +msgstr "Interactions" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:137 +msgid "workspace.options.layer-options.blend-mode.color" +msgstr "Couleur" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:126 +msgid "workspace.options.layer-options.blend-mode.color-burn" +msgstr "Densité plus forte" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:129 +msgid "workspace.options.layer-options.blend-mode.color-dodge" +msgstr "Densité plus faible" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:124 +msgid "workspace.options.layer-options.blend-mode.darken" +msgstr "Assombrir" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:133 +msgid "workspace.options.layer-options.blend-mode.difference" +msgstr "Différence" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:134 +msgid "workspace.options.layer-options.blend-mode.exclusion" +msgstr "Exclusion" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:132 +msgid "workspace.options.layer-options.blend-mode.hard-light" +msgstr "Lumière crue" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:135 +msgid "workspace.options.layer-options.blend-mode.hue" +msgstr "Teinte" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:127 +msgid "workspace.options.layer-options.blend-mode.lighten" +msgstr "Éclaircir" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:138 +msgid "workspace.options.layer-options.blend-mode.luminosity" +msgstr "Luminosité" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:125 +msgid "workspace.options.layer-options.blend-mode.multiply" +msgstr "Produit" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:123 +msgid "workspace.options.layer-options.blend-mode.normal" +msgstr "Normal" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:130 +msgid "workspace.options.layer-options.blend-mode.overlay" +msgstr "Incrustation" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:136 +msgid "workspace.options.layer-options.blend-mode.saturation" +msgstr "Saturation" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:128 +msgid "workspace.options.layer-options.blend-mode.screen" +msgstr "Superposition" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:131 +msgid "workspace.options.layer-options.blend-mode.soft-light" +msgstr "Lumière tamisée" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#, unused +msgid "workspace.options.layer-options.title" +msgstr "Calque" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#, unused +msgid "workspace.options.layer-options.title.group" +msgstr "Grouper les calques" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#, unused +msgid "workspace.options.layer-options.title.multiple" +msgstr "Calques sélectionnés" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused +msgid "workspace.options.layout-item.advanced-ops" +msgstr "Options avancées" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:564 +msgid "workspace.options.layout-item.layout-item-max-h" +msgstr "Hauteur max" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:531 +msgid "workspace.options.layout-item.layout-item-max-w" +msgstr "Largeur max" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:548 +msgid "workspace.options.layout-item.layout-item-min-h" +msgstr "Hauteur min" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:515 +msgid "workspace.options.layout-item.layout-item-min-w" +msgstr "Largeur min" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused +msgid "workspace.options.layout-item.title.layout-item-max-h" +msgstr "Hauteur maximale" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused +msgid "workspace.options.layout-item.title.layout-item-max-w" +msgstr "Largeur maximale" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused +msgid "workspace.options.layout-item.title.layout-item-min-h" +msgstr "Hauteur minimale" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused +msgid "workspace.options.layout-item.title.layout-item-min-w" +msgstr "Largeur minimale" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused +msgid "workspace.options.layout.bottom" +msgstr "En bas" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused +msgid "workspace.options.layout.direction.column" +msgstr "Colonne" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused +msgid "workspace.options.layout.direction.column-reverse" +msgstr "Colonne inversée" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused +msgid "workspace.options.layout.direction.row" +msgstr "Ligne" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused +msgid "workspace.options.layout.direction.row-reverse" +msgstr "Ligne inversée" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused +msgid "workspace.options.layout.gap" +msgstr "Gap" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused +msgid "workspace.options.layout.left" +msgstr "A gauche" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused +msgid "workspace.options.layout.margin" +msgstr "La marge" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused +msgid "workspace.options.layout.margin-all" +msgstr "Tous les côtés" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused +msgid "workspace.options.layout.margin-simple" +msgstr "Une marge simple" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused +msgid "workspace.options.layout.packed" +msgstr "compacté" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused +msgid "workspace.options.layout.padding" +msgstr "Marge intérieure" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused +msgid "workspace.options.layout.padding-all" +msgstr "Tous les côtés" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused +msgid "workspace.options.layout.padding-simple" +msgstr "Marge intérieure simple" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused +msgid "workspace.options.layout.right" +msgstr "À droite" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused +msgid "workspace.options.layout.space-around" +msgstr "espace autour" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused +msgid "workspace.options.layout.space-between" +msgstr "espace entre" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused +msgid "workspace.options.layout.top" +msgstr "En haut" + +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:146 +msgid "workspace.options.more-colors" +msgstr "Plus de couleurs" + +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:123 +msgid "workspace.options.more-lib-colors" +msgstr "Plus de couleurs de la bibliothèque" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:161 +msgid "workspace.options.opacity" +msgstr "Opacité" + +#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#, unused +msgid "workspace.options.position" +msgstr "Position" + +#: src/app/main/ui/workspace/sidebar/options.cljs:157 +msgid "workspace.options.prototype" +msgstr "Prototype" + +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:469, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:481 +msgid "workspace.options.radius" +msgstr "Rayon" + +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:513 +msgid "workspace.options.radius-bottom-left" +msgstr "En bas à gauche" + +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:522 +msgid "workspace.options.radius-bottom-right" +msgstr "En bas à droite" + +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:495 +msgid "workspace.options.radius-top-left" +msgstr "En haut à gauche" + +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:504 +msgid "workspace.options.radius-top-right" +msgstr "En haut à droite" + +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:532 +msgid "workspace.options.radius.all-corners" +msgstr "Tous les coins" + +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:533 +msgid "workspace.options.radius.single-corners" +msgstr "Coins individuels" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:183 +msgid "workspace.options.recent-fonts" +msgstr "Récentes" + +#: src/app/main/ui/export.cljs:284 +msgid "workspace.options.retry" +msgstr "Réessayer" + +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:451 +msgid "workspace.options.rotation" +msgstr "Rotation" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:180 +msgid "workspace.options.search-font" +msgstr "Rechercher une police" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:741 +msgid "workspace.options.select-a-shape" +msgstr "" +"Sélectionnez une forme, un plan de travail ou un groupe pour faire glisser " +"une connexion vers un autre plan de travail." + +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:105 +msgid "workspace.options.selection-color" +msgstr "Couleurs sélectionnées" + +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:47 +msgid "workspace.options.selection-fill" +msgstr "Remplissage de sélection" + +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:41 +msgid "workspace.options.selection-stroke" +msgstr "Contour de sélection" + +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:40, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:198, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:200 +msgid "workspace.options.shadow-options.blur" +msgstr "Flou" + +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:238 +msgid "workspace.options.shadow-options.color" +msgstr "Couleur de l'ombre" + +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:144 +msgid "workspace.options.shadow-options.drop-shadow" +msgstr "Ombre portée" + +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:145 +msgid "workspace.options.shadow-options.inner-shadow" +msgstr "Ombre intérieure" + +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:38, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:186 +msgid "workspace.options.shadow-options.offsetx" +msgstr "X" + +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:39, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:224 +msgid "workspace.options.shadow-options.offsety" +msgstr "Y" + +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:41, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:211, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:213 +msgid "workspace.options.shadow-options.spread" +msgstr "Diffusion" + +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:296 +msgid "workspace.options.shadow-options.title" +msgstr "Ombre" + +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:295 +msgid "workspace.options.shadow-options.title.group" +msgstr "Ombre de groupe" + +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:294 +msgid "workspace.options.shadow-options.title.multiple" +msgstr "Ombres de la sélection" + +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:193 +msgid "workspace.options.show-fill-on-export" +msgstr "Afficher à l'export" + +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:562 +msgid "workspace.options.show-in-viewer" +msgstr "Montrer en mode spectateur" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:162 +msgid "workspace.options.size" +msgstr "Taille" + +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:355 +msgid "workspace.options.size-presets" +msgstr "Tailles prédéfinies" + +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:43 +msgid "workspace.options.stroke" +msgstr "Bordure" + +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#, unused +msgid "workspace.options.stroke-cap.circle-marker" +msgstr "Marqueur cercle" + +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:129 +msgid "workspace.options.stroke-cap.circle-marker-short" +msgstr "Cercle" + +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#, unused +msgid "workspace.options.stroke-cap.diamond-marker" +msgstr "Marqueur diamant" + +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:130 +msgid "workspace.options.stroke-cap.diamond-marker-short" +msgstr "Diamant" + +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#, unused +msgid "workspace.options.stroke-cap.line-arrow" +msgstr "Flèche de ligne" + +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:126 +msgid "workspace.options.stroke-cap.line-arrow-short" +msgstr "Flèche" + +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:124 +msgid "workspace.options.stroke-cap.none" +msgstr "Aucune" + +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:132 +msgid "workspace.options.stroke-cap.round" +msgstr "Rond" + +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:133 +msgid "workspace.options.stroke-cap.square" +msgstr "Carré" + +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#, unused +msgid "workspace.options.stroke-cap.square-marker" +msgstr "Marqueur carré" + +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:128 +msgid "workspace.options.stroke-cap.square-marker-short" +msgstr "Rectangle" + +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#, unused +msgid "workspace.options.stroke-cap.triangle-arrow" +msgstr "Flèche triangle" + +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:127 +msgid "workspace.options.stroke-cap.triangle-arrow-short" +msgstr "Triangle" + +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:192 +msgid "workspace.options.stroke-color" +msgstr "Couleur du tracé" + +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:165 +msgid "workspace.options.stroke-width" +msgstr "Largeur du tracé" + +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:87 +msgid "workspace.options.stroke.center" +msgstr "Centre" + +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:105 +msgid "workspace.options.stroke.dashed" +msgstr "Tirets" + +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:104 +msgid "workspace.options.stroke.dotted" +msgstr "Pointillé" + +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:88 +msgid "workspace.options.stroke.inner" +msgstr "Intérieur" + +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:106 +msgid "workspace.options.stroke.mixed" +msgstr "Mixte" + +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:89 +msgid "workspace.options.stroke.outer" +msgstr "Extérieur" + +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:103 +msgid "workspace.options.stroke.solid" +msgstr "Solide" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:115 +msgid "workspace.options.text-options.align-bottom" +msgstr "Aligner en bas" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:111 +msgid "workspace.options.text-options.align-middle" +msgstr "Aligner verticalement au milieu" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:107 +msgid "workspace.options.text-options.align-top" +msgstr "Aligner en haut" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:82 +msgid "workspace.options.text-options.direction-ltr" +msgstr "Gauche à droite" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:87 +msgid "workspace.options.text-options.direction-rtl" +msgstr "Droite à gauche" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:149 +msgid "workspace.options.text-options.grow-auto-height" +msgstr "Hauteur automatique" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:145 +msgid "workspace.options.text-options.grow-auto-width" +msgstr "Largeur automatique" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:141 +msgid "workspace.options.text-options.grow-fixed" +msgstr "Fixe" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:381 +msgid "workspace.options.text-options.letter-spacing" +msgstr "Interlettrage" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:364 +msgid "workspace.options.text-options.line-height" +msgstr "Interlignage" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused +msgid "workspace.options.text-options.lowercase" +msgstr "Minuscule" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused +msgid "workspace.options.text-options.none" +msgstr "Aucune" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:176 +msgid "workspace.options.text-options.strikethrough" +msgstr "Barré (%s)" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:51 +msgid "workspace.options.text-options.text-align-center" +msgstr "Aligner au centre (%s)" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:59 +msgid "workspace.options.text-options.text-align-justify" +msgstr "Justifier (%s)" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:47 +msgid "workspace.options.text-options.text-align-left" +msgstr "Aligner à gauche (%s)" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:55 +msgid "workspace.options.text-options.text-align-right" +msgstr "Aligner à droite (%s)" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:189 +msgid "workspace.options.text-options.title" +msgstr "Texte" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:188 +msgid "workspace.options.text-options.title-group" +msgstr "Texte de groupe" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:187 +msgid "workspace.options.text-options.title-selection" +msgstr "Texte de la sélection" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused +msgid "workspace.options.text-options.titlecase" +msgstr "Premières Lettres en Capitales" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:171 +msgid "workspace.options.text-options.underline" +msgstr "Soulignage (%s)" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused +msgid "workspace.options.text-options.uppercase" +msgstr "Majuscule" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:745 +msgid "workspace.options.use-play-button" +msgstr "" +"Utilisez le bouton de lecture dans l’en‑tête pour exécuter la vue du " +"prototype." + +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:395 +msgid "workspace.options.width" +msgstr "Largeur" + +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:427 +msgid "workspace.options.x" +msgstr "Axe X" + +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:438 +msgid "workspace.options.y" +msgstr "Axe Y" + +#: src/app/main/ui/workspace/viewport/path_actions.cljs:167 +msgid "workspace.path.actions.add-node" +msgstr "Ajouter un nœud (%s)" + +#: src/app/main/ui/workspace/viewport/path_actions.cljs:174 +msgid "workspace.path.actions.delete-node" +msgstr "Supprimer le nœud (%s)" + +#: src/app/main/ui/workspace/viewport/path_actions.cljs:152 +msgid "workspace.path.actions.draw-nodes" +msgstr "Dessiner des nœuds (%s)" + +#: src/app/main/ui/workspace/viewport/path_actions.cljs:189 +msgid "workspace.path.actions.join-nodes" +msgstr "Joindre les nœuds (%s)" + +#: src/app/main/ui/workspace/viewport/path_actions.cljs:204 +msgid "workspace.path.actions.make-corner" +msgstr "Convertir en coin (%s)" + +#: src/app/main/ui/workspace/viewport/path_actions.cljs:211 +msgid "workspace.path.actions.make-curve" +msgstr "Convertir en courbe (%s)" + +#: src/app/main/ui/workspace/viewport/path_actions.cljs:182 +msgid "workspace.path.actions.merge-nodes" +msgstr "Fusionner les nœuds (%s)" + +#: src/app/main/ui/workspace/viewport/path_actions.cljs:159 +msgid "workspace.path.actions.move-nodes" +msgstr "Déplacer les nœuds (%s)" + +#: src/app/main/ui/workspace/viewport/path_actions.cljs:196 +msgid "workspace.path.actions.separate-nodes" +msgstr "Dissocier les nœuds (%s)" + +#: src/app/main/ui/workspace/viewport/path_actions.cljs:218 +msgid "workspace.path.actions.snap-nodes" +msgstr "Aligner les nœuds (%s)" + +#: src/app/main/ui/workspace/context_menu.cljs:441 +msgid "workspace.shape.menu.add-flex" +msgstr "Ajouter flex layout" + +#: src/app/main/ui/workspace/context_menu.cljs:445 +msgid "workspace.shape.menu.add-grid" +msgstr "Ajouter disposition en grille" + +#: src/app/main/ui/workspace/context_menu.cljs:193 +msgid "workspace.shape.menu.back" +msgstr "Envoyer au fond" + +#: src/app/main/ui/workspace/context_menu.cljs:190 +msgid "workspace.shape.menu.backward" +msgstr "Éloigner" + +#: src/app/main/ui/workspace/context_menu.cljs:139 +msgid "workspace.shape.menu.copy" +msgstr "Copier" + +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:427 +msgid "workspace.shape.menu.create-annotation" +msgstr "Créer une note" + +#: src/app/main/ui/workspace/context_menu.cljs:275 +msgid "workspace.shape.menu.create-artboard-from-selection" +msgstr "Créer un plan de travail depuis la sélection" + +#: src/app/main/ui/workspace/context_menu.cljs:465 +msgid "workspace.shape.menu.create-component" +msgstr "Créer un composant" + +#: src/app/main/ui/workspace/context_menu.cljs:469 +msgid "workspace.shape.menu.create-multiple-components" +msgstr "Créer plusieurs composants" + +#: src/app/main/ui/workspace/context_menu.cljs:142 +msgid "workspace.shape.menu.cut" +msgstr "Couper" + +#: src/app/main/ui/workspace/context_menu.cljs:486 +msgid "workspace.shape.menu.delete" +msgstr "Supprimer" + +#: src/app/main/ui/workspace/context_menu.cljs:391 +msgid "workspace.shape.menu.delete-flow-start" +msgstr "Supprimer le départ du flux" + +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:432 +msgid "workspace.shape.menu.detach-instance" +msgstr "Détacher l’instance" + +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:431 +msgid "workspace.shape.menu.detach-instances-in-bulk" +msgstr "Détacher les instances" + +#: src/app/main/ui/workspace/context_menu.cljs:335, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:75 +msgid "workspace.shape.menu.difference" +msgstr "Différence" + +#: src/app/main/ui/workspace/context_menu.cljs:148 +msgid "workspace.shape.menu.duplicate" +msgstr "Dupliquer" + +#: src/app/main/ui/workspace/context_menu.cljs:321 +msgid "workspace.shape.menu.edit" +msgstr "Modifier" + +#: src/app/main/ui/workspace/context_menu.cljs:341 +msgid "workspace.shape.menu.exclude" +msgstr "Exclure" + +#: src/app/main/ui/workspace/context_menu.cljs:348, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:89 +msgid "workspace.shape.menu.flatten" +msgstr "Aplatir" + +#: src/app/main/ui/workspace/context_menu.cljs:208 +msgid "workspace.shape.menu.flip-horizontal" +msgstr "Retourner horizontalement" + +#: src/app/main/ui/workspace/context_menu.cljs:204 +msgid "workspace.shape.menu.flip-vertical" +msgstr "Retourner verticalement" + +#: src/app/main/ui/workspace/context_menu.cljs:394 +msgid "workspace.shape.menu.flow-start" +msgstr "Départ du flux" + +#: src/app/main/ui/workspace/context_menu.cljs:184 +msgid "workspace.shape.menu.forward" +msgstr "Avancer" + +#: src/app/main/ui/workspace/context_menu.cljs:187 +msgid "workspace.shape.menu.front" +msgstr "Amener au premier plan" + +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#, unused +msgid "workspace.shape.menu.go-main" +msgstr "Aller au fichier du composant principal" + +#: src/app/main/ui/workspace/context_menu.cljs:261 +msgid "workspace.shape.menu.group" +msgstr "Groupe" + +#: src/app/main/ui/workspace/context_menu.cljs:363, src/app/main/ui/workspace/sidebar/layer_item.cljs:145 +msgid "workspace.shape.menu.hide" +msgstr "Masquer" + +#: src/app/main/ui/workspace/context_menu.cljs:548, src/app/main/ui/workspace/main_menu.cljs:408 +msgid "workspace.shape.menu.hide-ui" +msgstr "Montrer/Masquer l'interface" + +#: src/app/main/ui/workspace/context_menu.cljs:338 +msgid "workspace.shape.menu.intersection" +msgstr "Intersection" + +#: src/app/main/ui/workspace/context_menu.cljs:371, src/app/main/ui/workspace/sidebar/layer_item.cljs:153 +msgid "workspace.shape.menu.lock" +msgstr "Bloquer" + +#: src/app/main/ui/workspace/context_menu.cljs:266 +msgid "workspace.shape.menu.mask" +msgstr "Masque" + +#: src/app/main/ui/workspace/context_menu.cljs:145, src/app/main/ui/workspace/context_menu.cljs:545 +msgid "workspace.shape.menu.paste" +msgstr "Coller" + +#: src/app/main/ui/workspace/context_menu.cljs:331 +msgid "workspace.shape.menu.path" +msgstr "Chemin" + +#: src/app/main/ui/workspace/context_menu.cljs:432 +msgid "workspace.shape.menu.remove-flex" +msgstr "Retirer flex layout" + +#: src/app/main/ui/workspace/context_menu.cljs:435 +msgid "workspace.shape.menu.remove-grid" +msgstr "Supprimer la disposition en grille" + +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:436 +msgid "workspace.shape.menu.reset-overrides" +msgstr "Annuler les modifications" + +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:439 +msgid "workspace.shape.menu.restore-main" +msgstr "Rétablir le composant principal" + +#: src/app/main/ui/workspace/context_menu.cljs:174 +msgid "workspace.shape.menu.select-layer" +msgstr "Sélectionner le calque" + +#: src/app/main/ui/workspace/context_menu.cljs:360, src/app/main/ui/workspace/sidebar/layer_item.cljs:144 +msgid "workspace.shape.menu.show" +msgstr "Montrer" + +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:424 +msgid "workspace.shape.menu.show-in-assets" +msgstr "Afficher dans le panneau des ressources" + +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:442, src/app/main/ui/workspace/sidebar/assets/components.cljs:586 +msgid "workspace.shape.menu.show-main" +msgstr "Afficher le composant principal" + +#: src/app/main/ui/workspace/context_menu.cljs:221 +msgid "workspace.shape.menu.thumbnail-remove" +msgstr "Retirer la miniature" + +#: src/app/main/ui/workspace/context_menu.cljs:223 +msgid "workspace.shape.menu.thumbnail-set" +msgstr "Définir comme miniature" + +#: src/app/main/ui/workspace/context_menu.cljs:326 +msgid "workspace.shape.menu.transform-to-path" +msgstr "Transformer en chemin" + +#: src/app/main/ui/workspace/context_menu.cljs:257 +msgid "workspace.shape.menu.ungroup" +msgstr "Dégrouper" + +#: src/app/main/ui/workspace/context_menu.cljs:332, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:70 +msgid "workspace.shape.menu.union" +msgstr "Union" + +#: src/app/main/ui/workspace/context_menu.cljs:368, src/app/main/ui/workspace/sidebar/layer_item.cljs:152 +msgid "workspace.shape.menu.unlock" +msgstr "Débloquer" + +#: src/app/main/ui/workspace/context_menu.cljs:271 +msgid "workspace.shape.menu.unmask" +msgstr "Supprimer le masque" + +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs +#, unused +msgid "workspace.shape.menu.update-components-in-bulk" +msgstr "Mettre à jour les composants" + +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:445 +msgid "workspace.shape.menu.update-main" +msgstr "Actualiser le composant principal" + +#: src/app/main/ui/components/tab_container.cljs:50 +msgid "workspace.sidebar.collapse" +msgstr "Réduire la barre latérale" + +#: src/app/main/ui/workspace/sidebar/collapsable_button.cljs:26 +msgid "workspace.sidebar.expand" +msgstr "Ouvrir la barre latérale" + +#: src/app/main/ui/workspace/right_header.cljs:231, src/app/main/ui/workspace/right_header.cljs:232 +msgid "workspace.sidebar.history" +msgstr "Historique (%s)" + +#: src/app/main/ui/workspace/sidebar/layers.cljs:522, src/app/main/ui/workspace/sidebar.cljs:100 +msgid "workspace.sidebar.layers" +msgstr "Calques" + +#: src/app/main/ui/workspace/sidebar/layers.cljs:308, src/app/main/ui/workspace/sidebar/layers.cljs:380 +msgid "workspace.sidebar.layers.components" +msgstr "Composants" + +#: src/app/main/ui/workspace/sidebar/layers.cljs:305, src/app/main/ui/workspace/sidebar/layers.cljs:338 +msgid "workspace.sidebar.layers.frames" +msgstr "Plans de travail" + +#: src/app/main/ui/workspace/sidebar/layers.cljs:306, src/app/main/ui/workspace/sidebar/layers.cljs:352 +msgid "workspace.sidebar.layers.groups" +msgstr "Groupes" + +#: src/app/main/ui/workspace/sidebar/layers.cljs:310, src/app/main/ui/workspace/sidebar/layers.cljs:408 +msgid "workspace.sidebar.layers.images" +msgstr "Images" + +#: src/app/main/ui/workspace/sidebar/layers.cljs:307, src/app/main/ui/workspace/sidebar/layers.cljs:366 +msgid "workspace.sidebar.layers.masks" +msgstr "Les masques" + +#: src/app/main/ui/workspace/sidebar/layers.cljs:289 +msgid "workspace.sidebar.layers.search" +msgstr "Rechercher des calques" + +#: src/app/main/ui/workspace/sidebar/layers.cljs:311, src/app/main/ui/workspace/sidebar/layers.cljs:422 +msgid "workspace.sidebar.layers.shapes" +msgstr "Formes" + +#: src/app/main/ui/workspace/sidebar/layers.cljs:309, src/app/main/ui/workspace/sidebar/layers.cljs:394 +msgid "workspace.sidebar.layers.texts" +msgstr "Textes" + +#: src/app/main/ui/viewer/inspect/attributes/svg.cljs:56, src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs:91 +msgid "workspace.sidebar.options.svg-attrs.title" +msgstr "Attributs SVG importés" + +#: src/app/main/ui/workspace/sidebar/sitemap.cljs:217 +msgid "workspace.sidebar.sitemap" +msgstr "Pages" + +#: src/app/main/ui/workspace/left_header.cljs:91 +msgid "workspace.sitemap" +msgstr "Plan du site" + +#: src/app/main/ui/workspace/sidebar.cljs:120 +msgid "workspace.toolbar.assets" +msgstr "Ressources" + +#: src/app/main/ui/workspace/palette.cljs:165, src/app/main/ui/workspace/palette.cljs:166 +msgid "workspace.toolbar.color-palette" +msgstr "Palette de couleurs (%s)" + +#: src/app/main/ui/workspace/right_header.cljs:220, src/app/main/ui/workspace/right_header.cljs:221 +msgid "workspace.toolbar.comments" +msgstr "Commentaires (%s)" + +#: src/app/main/ui/workspace/top_toolbar.cljs:180, src/app/main/ui/workspace/top_toolbar.cljs:181 +msgid "workspace.toolbar.curve" +msgstr "Courbe (%s)" + +#: src/app/main/ui/workspace/top_toolbar.cljs:160, src/app/main/ui/workspace/top_toolbar.cljs:161 +msgid "workspace.toolbar.ellipse" +msgstr "Ellipse (%s)" + +#: src/app/main/ui/workspace/top_toolbar.cljs:142, src/app/main/ui/workspace/top_toolbar.cljs:143 +msgid "workspace.toolbar.frame" +msgstr "Plan de travail (%s)" + +#: src/app/main/ui/workspace/top_toolbar.cljs:59, src/app/main/ui/workspace/top_toolbar.cljs:60 +msgid "workspace.toolbar.image" +msgstr "Image (%s)" + +#: src/app/main/ui/workspace/top_toolbar.cljs:132, src/app/main/ui/workspace/top_toolbar.cljs:133 +msgid "workspace.toolbar.move" +msgstr "Déplacer (%s)" + +#: src/app/main/ui/workspace/top_toolbar.cljs:189, src/app/main/ui/workspace/top_toolbar.cljs:190 +msgid "workspace.toolbar.path" +msgstr "Chemin (%s)" + +#: src/app/main/ui/workspace/top_toolbar.cljs:151, src/app/main/ui/workspace/top_toolbar.cljs:152 +msgid "workspace.toolbar.rect" +msgstr "Rectangle (%s)" + +#: src/app/main/ui/workspace/left_toolbar.cljs +#, unused +msgid "workspace.toolbar.shortcuts" +msgstr "Raccourcis (%s)" + +#: src/app/main/ui/workspace/top_toolbar.cljs:169, src/app/main/ui/workspace/top_toolbar.cljs:170 +msgid "workspace.toolbar.text" +msgstr "Texte (%s)" + +#: src/app/main/ui/workspace/palette.cljs:173, src/app/main/ui/workspace/palette.cljs:174 +msgid "workspace.toolbar.text-palette" +msgstr "Polices (%s)" + +#: src/app/main/ui/workspace/viewport/top_bar.cljs:38 msgid "workspace.top-bar.read-only.done" msgstr "Fait" +#: src/app/main/ui/workspace/viewport/top_bar.cljs:35 #, markdown msgid "workspace.top-bar.view-only" msgstr "**Inspection du code** (Vue uniquement)" -#: src/app/main/ui/auth/login.cljs -msgid "auth.login-tagline" -msgstr "" -"Penpot est l'outil de design libre et open-source pour la collaboration " -"entre Design et Développement" +#: src/app/main/ui/workspace/sidebar/history.cljs:342 +msgid "workspace.undo.empty" +msgstr "Il n’y a aucun changement dans l’historique pour l’instant" -msgid "dashboard.import.analyze-error.components-v2" -msgstr "" -"Fichier avec composants v2 activé mais n'est pas encore supporté par cette " -"équipe." +#: src/app/main/ui/workspace/sidebar/history.cljs:147 +msgid "workspace.undo.entry.delete" +msgstr "Supprimé %s" -#: src/app/main/data/users.cljs -msgid "errors.auth-provider-not-allowed" -msgstr "Le fournisseur d'authentification n'est pas autorisé pour ce profil" +#: src/app/main/ui/workspace/sidebar/history.cljs:146 +msgid "workspace.undo.entry.modify" +msgstr "Modifié %s" -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.hide-guides" -msgstr "Cacher les guides" +#: src/app/main/ui/workspace/sidebar/history.cljs:148 +msgid "workspace.undo.entry.move" +msgstr "Objets déplacés" -msgid "workspace.context-menu.grid-cells.area" -msgstr "Créer une zone" +#: src/app/main/ui/workspace/sidebar/history.cljs:111 +msgid "workspace.undo.entry.multiple.circle" +msgstr "cercles" + +#: src/app/main/ui/workspace/sidebar/history.cljs:112 +msgid "workspace.undo.entry.multiple.color" +msgstr "couleurs" + +#: src/app/main/ui/workspace/sidebar/history.cljs:113 +msgid "workspace.undo.entry.multiple.component" +msgstr "composants" + +#: src/app/main/ui/workspace/sidebar/history.cljs:114 +msgid "workspace.undo.entry.multiple.curve" +msgstr "courbes" + +#: src/app/main/ui/workspace/sidebar/history.cljs:115 +msgid "workspace.undo.entry.multiple.frame" +msgstr "plan de travail" + +#: src/app/main/ui/workspace/sidebar/history.cljs:116 +msgid "workspace.undo.entry.multiple.group" +msgstr "groupes" + +#: src/app/main/ui/workspace/sidebar/history.cljs:117 +msgid "workspace.undo.entry.multiple.media" +msgstr "graphiques" + +#: src/app/main/ui/workspace/sidebar/history.cljs:118 +msgid "workspace.undo.entry.multiple.multiple" +msgstr "objets" + +#: src/app/main/ui/workspace/sidebar/history.cljs:119 +msgid "workspace.undo.entry.multiple.page" +msgstr "pages" + +#: src/app/main/ui/workspace/sidebar/history.cljs:120 +msgid "workspace.undo.entry.multiple.path" +msgstr "chemins" + +#: src/app/main/ui/workspace/sidebar/history.cljs:121 +msgid "workspace.undo.entry.multiple.rect" +msgstr "rectangles" + +#: src/app/main/ui/workspace/sidebar/history.cljs:122 +msgid "workspace.undo.entry.multiple.shape" +msgstr "formes" + +#: src/app/main/ui/workspace/sidebar/history.cljs:123 +msgid "workspace.undo.entry.multiple.text" +msgstr "textes" + +#: src/app/main/ui/workspace/sidebar/history.cljs:124 +msgid "workspace.undo.entry.multiple.typography" +msgstr "typographie" + +#: src/app/main/ui/workspace/sidebar/history.cljs:145 +msgid "workspace.undo.entry.new" +msgstr "Nouveau %s" + +#: src/app/main/ui/workspace/sidebar/history.cljs:125 +msgid "workspace.undo.entry.single.circle" +msgstr "cercle" + +#: src/app/main/ui/workspace/sidebar/history.cljs:126 +msgid "workspace.undo.entry.single.color" +msgstr "couleur" + +#: src/app/main/ui/workspace/sidebar/history.cljs:127 +msgid "workspace.undo.entry.single.component" +msgstr "composant" + +#: src/app/main/ui/workspace/sidebar/history.cljs:128 +msgid "workspace.undo.entry.single.curve" +msgstr "courbe" + +#: src/app/main/ui/workspace/sidebar/history.cljs:129 +msgid "workspace.undo.entry.single.frame" +msgstr "plan de travail" + +#: src/app/main/ui/workspace/sidebar/history.cljs:130 +msgid "workspace.undo.entry.single.group" +msgstr "groupe" + +#: src/app/main/ui/workspace/sidebar/history.cljs:131 +msgid "workspace.undo.entry.single.image" +msgstr "image" + +#: src/app/main/ui/workspace/sidebar/history.cljs:132 +msgid "workspace.undo.entry.single.media" +msgstr "graphique" + +#: src/app/main/ui/workspace/sidebar/history.cljs:133 +msgid "workspace.undo.entry.single.multiple" +msgstr "objet" + +#: src/app/main/ui/workspace/sidebar/history.cljs:134 +msgid "workspace.undo.entry.single.page" +msgstr "page" + +#: src/app/main/ui/workspace/sidebar/history.cljs:135 +msgid "workspace.undo.entry.single.path" +msgstr "chemin" + +#: src/app/main/ui/workspace/sidebar/history.cljs:136 +msgid "workspace.undo.entry.single.rect" +msgstr "rectangle" + +#: src/app/main/ui/workspace/sidebar/history.cljs:137 +msgid "workspace.undo.entry.single.shape" +msgstr "forme" + +#: src/app/main/ui/workspace/sidebar/history.cljs:138 +msgid "workspace.undo.entry.single.text" +msgstr "texte" + +#: src/app/main/ui/workspace/sidebar/history.cljs:139 +msgid "workspace.undo.entry.single.typography" +msgstr "typographie" + +#: src/app/main/ui/workspace/sidebar/history.cljs:149 +msgid "workspace.undo.entry.unknown" +msgstr "Opération sur %s" + +#: src/app/main/ui/workspace/sidebar/history.cljs:335 +msgid "workspace.undo.title" +msgstr "Historique" + +#: src/app/main/data/workspace/libraries.cljs:1094 +msgid "workspace.updates.dismiss" +msgstr "Ignorer" + +#: src/app/main/data/workspace/libraries.cljs:1092 +msgid "workspace.updates.more-info" +msgstr "Plus d'information" + +#: src/app/main/data/workspace/libraries.cljs:1090 +msgid "workspace.updates.there-are-updates" +msgstr "Il y a des mises à jour dans les Bibliothèques Partagées" + +#: src/app/main/data/workspace/libraries.cljs:1097 +msgid "workspace.updates.update" +msgstr "Actualiser" + +#, unused +msgid "workspace.viewport.click-to-close-path" +msgstr "Cliquez pour fermer le chemin" diff --git a/frontend/translations/gl.po b/frontend/translations/gl.po index 3055ed0933..8f5c101b8c 100644 --- a/frontend/translations/gl.po +++ b/frontend/translations/gl.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "PO-Revision-Date: 2024-06-17 08:07+0000\n" "Last-Translator: Anonymous \n" -"Language-Team: Galician \n" +"Language-Team: Galician " +"\n" "Language: gl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" @@ -11,378 +11,423 @@ msgstr "" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 5.6-dev\n" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:151, src/app/main/ui/viewer/login.cljs:104 msgid "auth.already-have-account" msgstr "Xa tes unha conta?" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:299 msgid "auth.check-your-email" msgstr "" "Consulta o teu correo electrónico e preme na ligazón de verificación para " "comezar a usar Penpot." -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:78 msgid "auth.confirm-password" msgstr "Confirmar o contrasinal" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/register.cljs:163 msgid "auth.create-demo-account" msgstr "Crear unha conta de proba" #: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#, unused msgid "auth.create-demo-profile" msgstr "Queres probar?" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/login.cljs:43 msgid "auth.demo-warning" msgstr "" "Este é un servizo de DEMOSTRACIÓN. NON O UTILICES para traballos reais, os " "proxectos eliminanse periódicamente." -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:189, src/app/main/ui/viewer/login.cljs:90 msgid "auth.forgot-password" msgstr "Esqueciches o teu contrasinal?" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:254 msgid "auth.fullname" msgstr "Nome completo" -#: src/app/main/ui/auth/register.cljs -#, fuzzy +#: src/app/main/ui/auth/register.cljs:155, src/app/main/ui/viewer/login.cljs:107 msgid "auth.login-here" msgstr "Entra aquí" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:195 msgid "auth.login-submit" msgstr "Entrar" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:222 msgid "auth.login-with-github-submit" msgstr "GitHub" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:228 msgid "auth.login-with-gitlab-submit" msgstr "Gitlab" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:216 msgid "auth.login-with-google-submit" msgstr "Google" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:201 msgid "auth.login-with-ldap-submit" msgstr "LDAP" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:234, src/app/main/ui/auth/login.cljs:255 msgid "auth.login-with-oidc-submit" msgstr "OpenID" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:71 msgid "auth.new-password" msgstr "Escribe un contrasinal novo" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:42 msgid "auth.notifications.invalid-token-error" msgstr "O código de recuperación non é correcto." -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:46 msgid "auth.notifications.password-changed-successfully" msgstr "O contrasinal cambiouse correctamente" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:57 msgid "auth.notifications.profile-not-verified" msgstr "Perfil sen verificar, valida o perfil antes de continuar." -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:40 msgid "auth.notifications.recovery-token-sent" msgstr "Enviouse ó teu correo electrónico un enlace co que recuperar o contrasinal." -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:47 msgid "auth.notifications.team-invitation-accepted" msgstr "Unícheste ao equipo" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:179, src/app/main/ui/auth/register.cljs:115 msgid "auth.password" msgstr "Contrasinal" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:114 msgid "auth.password-length-hint" msgstr "Un mínimo de 8 caracteres" +#: src/app/main/ui/auth.cljs:41 msgid "auth.privacy-policy" msgstr "Política de privacidade" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:88 msgid "auth.recovery-request-submit" msgstr "Recuperar contrasinal" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:101 msgid "auth.recovery-request-subtitle" msgstr "Enviarémosche un correo electrónico con instrucións" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:100 msgid "auth.recovery-request-title" msgstr "Esqueceches o teu contrasinal?" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:82 msgid "auth.recovery-submit" msgstr "Cambiar o teu contrasinal" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:298, src/app/main/ui/viewer/login.cljs:93 msgid "auth.register" msgstr "Ainda non tes unha conta?" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:302, src/app/main/ui/auth/register.cljs:121, src/app/main/ui/auth/register.cljs:263, src/app/main/ui/viewer/login.cljs:97 msgid "auth.register-submit" msgstr "Crea unha conta" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:140 msgid "auth.register-title" msgstr "Crea unha conta" #: src/app/main/ui/auth.cljs +#, unused msgid "auth.sidebar-tagline" msgstr "A solución de código aberto para deseñar e crear prototipos." +#: src/app/main/ui/auth.cljs:33, src/app/main/ui/dashboard/sidebar.cljs:1022, src/app/main/ui/workspace/main_menu.cljs:150 msgid "auth.terms-of-service" msgstr "Condicións de servizo" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:297 msgid "auth.verification-email-sent" msgstr "Enviamos un correo electrónico de verificación a" +#: src/app/main/ui/workspace/libraries.cljs:228 msgid "common.publish" msgstr "Publicar" +#: src/app/main/ui/viewer/share_link.cljs:304, src/app/main/ui/viewer/share_link.cljs:314 msgid "common.share-link.all-users" msgstr "Todas as persoas usuarias de Penpot" +#: src/app/main/ui/viewer/share_link.cljs:198 msgid "common.share-link.confirm-deletion-link-description" msgstr "" "Seguro que queres eliminar esta ligazón? Se o fas, non estará dispoñible " "para ninguén" +#: src/app/main/ui/viewer/share_link.cljs:259, src/app/main/ui/viewer/share_link.cljs:289 msgid "common.share-link.current-tag" msgstr "(actual)" +#: src/app/main/ui/viewer/share_link.cljs:207, src/app/main/ui/viewer/share_link.cljs:214 msgid "common.share-link.destroy-link" msgstr "Eliminar ligazón" +#: src/app/main/ui/viewer/share_link.cljs:221 msgid "common.share-link.get-link" msgstr "Obter ligazón" +#: src/app/main/ui/viewer/share_link.cljs:139 msgid "common.share-link.link-copied-success" msgstr "A ligazón copiouse correctamente" +#: src/app/main/ui/viewer/share_link.cljs:231 msgid "common.share-link.manage-ops" msgstr "Xestionar permisos" +#: src/app/main/ui/viewer/share_link.cljs:277 msgid "common.share-link.page-shared" msgid_plural "common.share-link.page-shared" msgstr[0] "1 páxina compartida" msgstr[1] "% páxinas compartidas" +#: src/app/main/ui/viewer/share_link.cljs:298 msgid "common.share-link.permissions-can-comment" msgstr "Poden comentar" +#: src/app/main/ui/viewer/share_link.cljs:308 msgid "common.share-link.permissions-can-inspect" msgstr "Poden ver o código" +#: src/app/main/ui/viewer/share_link.cljs:193 msgid "common.share-link.permissions-hint" msgstr "Calquera persoa ca ligazón terá acceso" +#: src/app/main/ui/viewer/share_link.cljs:241 msgid "common.share-link.permissions-pages" msgstr "Páxinas compartidas" +#: src/app/main/ui/viewer/share_link.cljs:183 msgid "common.share-link.placeholder" msgstr "A ligazón para compartir aparecerá aquí" +#: src/app/main/ui/viewer/share_link.cljs:303, src/app/main/ui/viewer/share_link.cljs:313 msgid "common.share-link.team-members" msgstr "Só membros do equipo" +#: src/app/main/ui/viewer/share_link.cljs:171 msgid "common.share-link.title" msgstr "Compartir prototipos" +#: src/app/main/ui/viewer/share_link.cljs:269 msgid "common.share-link.view-all" msgstr "Seleccionar todas" +#: src/app/main/ui/workspace/libraries.cljs:224 msgid "common.unpublish" msgstr "Cancelar publicación" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:85 msgid "dasboard.team-hero.management" msgstr "Xestión do equipo" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:84 msgid "dasboard.team-hero.text" msgstr "" "Penpot está deseñado para equipos. Convida a persoas coas que trallar en " "proxectos e ficheiros" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.tutorial-hero.info" msgstr "" "Aprende os conceptos básicos de Penpot mentres te divirtes con este " "titorial práctico." #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.tutorial-hero.start" msgstr "Comeza o titorial" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.tutorial-hero.title" msgstr "Titorial práctico" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.walkthrough-hero.info" msgstr "Da unha volta por Penpot e coñece as súas características principais." #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.walkthrough-hero.start" msgstr "Comeza a visita" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.walkthrough-hero.title" msgstr "Percorrido pola interface" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:291, src/app/main/ui/workspace/main_menu.cljs:572 msgid "dashboard.add-shared" msgstr "Engadir como Biblioteca Compartida" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:75 msgid "dashboard.change-email" msgstr "Cambiar correo electrónico" -#: src/app/main/data/dashboard.cljs, src/app/main/data/dashboard.cljs +#: src/app/main/data/dashboard.cljs:762, src/app/main/data/dashboard.cljs:983 msgid "dashboard.copy-suffix" msgstr "(copia)" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:338 msgid "dashboard.create-new-team" msgstr "Crear novo equipo" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/components/context_menu_a11y.cljs:256, src/app/main/ui/dashboard/sidebar.cljs:646 msgid "dashboard.default-team-name" msgstr "O teu Penpot" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:571 msgid "dashboard.delete-team" msgstr "Eliminar equipo" +#: src/app/main/ui/dashboard/file_menu.cljs:296, src/app/main/ui/workspace/main_menu.cljs:589 msgid "dashboard.download-binary-file" msgstr "Descargar ficheiro Penpot (.penpot)" +#: src/app/main/ui/dashboard/file_menu.cljs:300, src/app/main/ui/workspace/main_menu.cljs:597 msgid "dashboard.download-standard-file" msgstr "Descargar ficheiro estándar (.svg + .json)" -#: src/app/main/ui/dashboard/project_menu.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:276, src/app/main/ui/dashboard/project_menu.cljs:90 msgid "dashboard.duplicate" msgstr "Duplicar" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:240 msgid "dashboard.duplicate-multi" msgstr "Duplicar % ficheiros" -#: src/app/main/ui/dashboard/grid.cljs +#: src/app/main/ui/dashboard/placeholder.cljs:32 +#, markdown msgid "dashboard.empty-placeholder-drafts" msgstr "" "Ai non! Ainda non tes ficheiros! Se queres facer a proba con algún modelo " "vai a [Bibliotecas e modelos] (https://penpot.app/libraries-templates)" +#: src/app/main/ui/dashboard/file_menu.cljs:249 msgid "dashboard.export-binary-multi" msgstr "Descargar %s ficheiros Penpot (.penpot)" +#: src/app/main/ui/workspace/main_menu.cljs:605 msgid "dashboard.export-frames" msgstr "Exportar marcos a PDF" -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:201 msgid "dashboard.export-frames.title" msgstr "Exportar a PDF" +#, unused msgid "dashboard.export-multi" msgstr "Exportar % ficheiros Penpot" -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:109 msgid "dashboard.export-multiple.selected" msgstr "% de % elementos seleccionados" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:578 msgid "dashboard.export-shapes" msgstr "Exportar" -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:180 msgid "dashboard.export-shapes.how-to" msgstr "" "Podes engadir axustes na exportación aos elementos dende as propiedades do " "deseño (parte inferior da barra lateral dereita)." -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:184 msgid "dashboard.export-shapes.how-to-link" msgstr "Información sobre como configurar as exportacións en Penpot." -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:179 msgid "dashboard.export-shapes.no-elements" msgstr "Non hai elementos con configuración de exportación." -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:190 msgid "dashboard.export-shapes.title" msgstr "Exportar selección" +#: src/app/main/ui/dashboard/file_menu.cljs:252 msgid "dashboard.export-standard-multi" msgstr "Descargar %s ficheiros estándar (.svg + .json)" +#: src/app/main/ui/export.cljs:427 msgid "dashboard.export.detail" msgstr "* Pode incluir compoñentes, gráficos, cores e/ou fontes." +#: src/app/main/ui/export.cljs:426 msgid "dashboard.export.explain" msgstr "" "Un ou máis ficheiros dos que queres exportar usan bibliotecas compartidas. " "Que queres facer cos recursos?" +#: src/app/main/ui/export.cljs:435 msgid "dashboard.export.options.all.message" msgstr "" "os ficheiros con bibliotecas compartidas incluiranse na exportación " "mantendo os vínculos." +#: src/app/main/ui/export.cljs:436 msgid "dashboard.export.options.all.title" msgstr "Exportar bibliotecas compartidas" +#: src/app/main/ui/export.cljs:437 msgid "dashboard.export.options.detach.message" msgstr "" "As bibliotecas compartidas non se incluirán na exportación e non se " "engadirán recursos á biblioteca. " +#: src/app/main/ui/export.cljs:438 msgid "dashboard.export.options.detach.title" msgstr "Tratar os recursos da biblioteca compartida coma obxetos básicos" +#: src/app/main/ui/export.cljs:439 msgid "dashboard.export.options.merge.message" msgstr "" "O teu ficheiro exportarase con todos os recursos externos metidos na " "biblioteca do ficheiro." +#: src/app/main/ui/export.cljs:440 msgid "dashboard.export.options.merge.title" msgstr "Incluir os recursos de bibliotecas compartidas na biblioteca do ficheiro" +#: src/app/main/ui/export.cljs:418 msgid "dashboard.export.title" msgstr "Exportar ficheiros" +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:309 msgid "dashboard.fonts.deleted-placeholder" msgstr "Fonte eliminada" -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:206 msgid "dashboard.fonts.dismiss-all" msgstr "Desbotar todas" +#: src/app/main/ui/dashboard/fonts.cljs:436 msgid "dashboard.fonts.empty-placeholder" msgstr "Aínda non instalaches as túas propas fontes." -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:194 msgid "dashboard.fonts.fonts-added" msgid_plural "dashboard.fonts.fonts-added" msgstr[0] "Engadiuse 1 fonte" msgstr[1] "Engadíronse % fontes" +#: src/app/main/ui/dashboard/fonts.cljs:170 +#, markdown msgid "dashboard.fonts.hero-text1" msgstr "" "Calquera fonte que cargues aquí engadirase na listaxe de familias de fontes " @@ -391,6 +436,8 @@ msgstr "" "Podes cargar fontes cos seguintes formatos: **TTF, OFT e WOFF** (só se " "precisa un)." +#: src/app/main/ui/dashboard/fonts.cljs:182 +#, markdown msgid "dashboard.fonts.hero-text2" msgstr "" "Só debes cargar fontes da túa propiedade ou das que teñas licenza para usar " @@ -398,1077 +445,1154 @@ msgstr "" "[Condicións do servizo de Penpot](https://penpot.app/terms.html). Podes ler " "máis sobre [licenzas de fontes](https://www.typography.com/faq)." -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:202 msgid "dashboard.fonts.upload-all" msgstr "Cargar todas" +#: src/app/main/ui/dashboard/import.cljs:472, src/app/main/ui/dashboard/project_menu.cljs:108 msgid "dashboard.import" msgstr "Importar archivos de Penpot" +#: src/app/main/ui/dashboard/import.cljs:304, src/app/worker/import.cljs:753, src/app/worker/import.cljs:755 msgid "dashboard.import.analyze-error" msgstr "Vaia! Non se puido importar o ficheiro" +#: src/app/main/ui/dashboard/import.cljs:308 msgid "dashboard.import.import-error" msgstr "Houbo un problema ao importar o ficheiro. Non se puido importar o ficheiro." +#: src/app/main/ui/dashboard/import.cljs:493 msgid "dashboard.import.import-message" msgstr "% ficheiros importáronse correctamente." +#: src/app/main/ui/dashboard/import.cljs:481, src/app/main/ui/dashboard/import.cljs:488 msgid "dashboard.import.import-warning" msgstr "Algúns ficheiros contiñan obxectos non válidos que foron eliminados." +#: src/app/main/ui/dashboard/import.cljs:144 msgid "dashboard.import.progress.process-colors" msgstr "Procesando cores" +#: src/app/main/ui/dashboard/import.cljs:153 msgid "dashboard.import.progress.process-components" msgstr "Procesando compoñentes" +#: src/app/main/ui/dashboard/import.cljs:150 msgid "dashboard.import.progress.process-media" msgstr "Procesando medios" +#: src/app/main/ui/dashboard/import.cljs:141 msgid "dashboard.import.progress.process-page" msgstr "Procesando páxina: %s" +#: src/app/main/ui/dashboard/import.cljs:147 msgid "dashboard.import.progress.process-typographies" msgstr "Procesando fontes" +#: src/app/main/ui/dashboard/import.cljs:135 msgid "dashboard.import.progress.upload-data" msgstr "Enviando datos ao servidor (%s/%s)" +#: src/app/main/ui/dashboard/import.cljs:138 msgid "dashboard.import.progress.upload-media" msgstr "Enviando ficheiro: %s" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:109 msgid "dashboard.invite-profile" msgstr "Invitar ao equipo" -#: src/app/main/ui/dashboard/sidebar.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:547, src/app/main/ui/dashboard/sidebar.cljs:556, src/app/main/ui/dashboard/sidebar.cljs:563, src/app/main/ui/dashboard/team.cljs:312 msgid "dashboard.leave-team" msgstr "Abandonar o equipo" +#: src/app/main/ui/dashboard/templates.cljs:88, src/app/main/ui/dashboard/templates.cljs:163 msgid "dashboard.libraries-and-templates" msgstr "Bibliotecas e Modelos" +#: src/app/main/ui/dashboard/templates.cljs:164 msgid "dashboard.libraries-and-templates.explore" msgstr "Explora máis e descubre como contribuír" +#: src/app/main/ui/dashboard/import.cljs:365 msgid "dashboard.libraries-and-templates.import-error" msgstr "Ocorreu un problema ao importar o modelo. Non se importou o modelo." -#: src/app/main/ui/dashboard/libraries.cljs +#: src/app/main/ui/dashboard/libraries.cljs:53 msgid "dashboard.libraries-title" msgstr "Bibliotecas compartidas" -#: src/app/main/ui/dashboard/grid.cljs +#: src/app/main/ui/dashboard/placeholder.cljs:45 msgid "dashboard.loading-files" msgstr "cargando os teus ficheiros …" +#: src/app/main/ui/dashboard/fonts.cljs:431 msgid "dashboard.loading-fonts" msgstr "cargando as túas fontes …" -#: src/app/main/ui/dashboard/project_menu.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:281, src/app/main/ui/dashboard/project_menu.cljs:100 msgid "dashboard.move-to" msgstr "Mover a" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:245 msgid "dashboard.move-to-multi" msgstr "Mover % ficheiros a" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:226 msgid "dashboard.move-to-other-team" msgstr "Mover a outro equipo" -#: src/app/main/ui/dashboard/projects.cljs, -#: src/app/main/ui/dashboard/files.cljs +#: src/app/main/ui/dashboard/files.cljs:105, src/app/main/ui/dashboard/projects.cljs:252, src/app/main/ui/dashboard/projects.cljs:253 msgid "dashboard.new-file" msgstr "+ Novo ficheiro" -#: src/app/main/data/dashboard.cljs +#: src/app/main/data/dashboard.cljs:958, src/app/main/data/dashboard.cljs:1181 msgid "dashboard.new-file-prefix" msgstr "Novo ficheiro" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:55 msgid "dashboard.new-project" msgstr "+ Novo proxecto" -#: src/app/main/data/dashboard.cljs +#: src/app/main/data/dashboard.cljs:726, src/app/main/data/dashboard.cljs:1184 msgid "dashboard.new-project-prefix" msgstr "Novo proxecto" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:60 msgid "dashboard.no-matches-for" msgstr "Non se atoparon resultados para “%s“" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:827 msgid "dashboard.no-projects-placeholder" msgstr "Os proxectos fixados aparecerán aquí" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:33 msgid "dashboard.notifications.email-changed-successfully" msgstr "Actualizouse a túa dirección de correo" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:27 msgid "dashboard.notifications.email-verified-successfully" msgstr "Verificouse a túa dirección de correo" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:37 msgid "dashboard.notifications.password-saved" msgstr "Contrasinal gardado correctamente!" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1081 msgid "dashboard.num-of-members" msgstr "%s integrantes" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:267 msgid "dashboard.open-in-new-tab" msgstr "Abrir ficheiro nunha nova lapela" +#: src/app/main/ui/dashboard/files.cljs:117, src/app/main/ui/dashboard/projects.cljs:260, src/app/main/ui/dashboard/projects.cljs:261 msgid "dashboard.options" msgstr "Opcións" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:106, src/app/main/ui/settings/password.cljs:119 msgid "dashboard.password-change" msgstr "Cambiar contrasinal" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:51 msgid "dashboard.projects-title" msgstr "Proxectos" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:86 msgid "dashboard.remove-account" msgstr "Queres borrar a túa conta?" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "dashboard.remove-shared" msgstr "Eliminar das bibliotecas compartidas" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:78 msgid "dashboard.save-settings" msgstr "Gardar configuración" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:246, src/app/main/ui/dashboard/sidebar.cljs:247 msgid "dashboard.search-placeholder" msgstr "Buscar…" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:55 msgid "dashboard.searching-for" msgstr "Procurando “%s“…" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:56 msgid "dashboard.select-ui-language" msgstr "Escolle idioma da interface" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:63 msgid "dashboard.select-ui-theme" msgstr "Escolle un tema" -#: src/app/main/ui/dashboard/grid.cljs +#: src/app/main/ui/dashboard/projects.cljs:282 msgid "dashboard.show-all-files" msgstr "Mostra todos os ficheiros" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:96 msgid "dashboard.success-delete-file" msgstr "Eliminouse o ficheiro" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:59 msgid "dashboard.success-delete-project" msgstr "Eliminouse o proxecto" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:91 msgid "dashboard.success-duplicate-file" msgstr "Duplicouse o ficheiro" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:33 msgid "dashboard.success-duplicate-project" msgstr "Duplicouse o proxecto" -#: src/app/main/ui/dashboard/grid.cljs, src/app/main/ui/dashboard/sidebar.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:130, src/app/main/ui/dashboard/grid.cljs:558, src/app/main/ui/dashboard/sidebar.cljs:152 msgid "dashboard.success-move-file" msgstr "Moveuse o ficheiro" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:129 msgid "dashboard.success-move-files" msgstr "Movéronse os ficheiros" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:54 msgid "dashboard.success-move-project" msgstr "Moveuse o proxecto" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1052 msgid "dashboard.team-info" msgstr "Información do equipo" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1070 msgid "dashboard.team-members" msgstr "Integrantes do equipo" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1085 msgid "dashboard.team-projects" msgstr "Proxectos do equipo" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:61 msgid "dashboard.theme-change" msgstr "Tema da interface" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:42 msgid "dashboard.title-search" msgstr "Resultados da procura" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:50 msgid "dashboard.type-something" msgstr "Escribe algo para procurar" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:287, src/app/main/ui/workspace/main_menu.cljs:566 msgid "dashboard.unpublish-shared" msgstr "Cancelar publicación da Biblioteca" -#: src/app/main/ui/settings/password.cljs, -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:71 msgid "dashboard.update-settings" msgstr "Actualizar configuración" -#: src/app/main/ui/settings.cljs +#: src/app/main/ui/settings.cljs:31 msgid "dashboard.your-account-title" msgstr "A túa conta" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:70 msgid "dashboard.your-email" msgstr "Correo electrónico" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:62 msgid "dashboard.your-name" msgstr "Nome" -#: src/app/main/ui/dashboard/search.cljs, src/app/main/ui/dashboard/team.cljs, -#: src/app/main/ui/dashboard/libraries.cljs, -#: src/app/main/ui/dashboard/projects.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:38, src/app/main/ui/dashboard/fonts.cljs:33, src/app/main/ui/dashboard/libraries.cljs:42, src/app/main/ui/dashboard/projects.cljs:318, src/app/main/ui/dashboard/search.cljs:30, src/app/main/ui/dashboard/sidebar.cljs:312, src/app/main/ui/dashboard/team.cljs:495, src/app/main/ui/dashboard/team.cljs:729, src/app/main/ui/dashboard/team.cljs:991, src/app/main/ui/dashboard/team.cljs:1038 msgid "dashboard.your-penpot" msgstr "O teu Penpot" -#: src/app/main/ui/alert.cljs +#: src/app/main/ui/alert.cljs:32 msgid "ds.alert-ok" msgstr "De acordo" -#: src/app/main/ui/alert.cljs +#: src/app/main/ui/alert.cljs:31, src/app/main/ui/alert.cljs:34 msgid "ds.alert-title" msgstr "Atención" -#: src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:83 msgid "ds.component-subtitle" msgstr "Compoñentes para actualizar:" -#: src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:36, src/app/main/ui/workspace/plugins.cljs:246 msgid "ds.confirm-cancel" msgstr "Cancelar" -#: src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:37, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:141 msgid "ds.confirm-ok" msgstr "Ok" -#: src/app/main/ui/confirm.cljs, src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:35, src/app/main/ui/confirm.cljs:39 msgid "ds.confirm-title" msgstr "Seguro?" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:62 msgid "errors.auth-provider-not-configured" msgstr "Provedor de autenticación non configurado." -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:77 msgid "feedback.description" msgstr "Descrición" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:72 msgid "feedback.subject" msgstr "Asunto" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:68 msgid "feedback.title" msgstr "Correo electrónico" -#: src/app/main/ui/inspect/attributes/blur.cljs +#: src/app/main/ui/viewer/inspect/attributes/blur.cljs:26 msgid "inspect.attributes.blur" msgstr "Desenfoque" -#: src/app/main/ui/inspect/attributes/blur.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:115 msgid "inspect.attributes.blur.value" msgstr "Valor" -#: src/app/main/ui/inspect/attributes/common.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:112 msgid "inspect.attributes.color.hex" msgstr "HEX" -#: src/app/main/ui/inspect/attributes/common.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:114 msgid "inspect.attributes.color.hsla" msgstr "HSLA" -#: src/app/main/ui/inspect/attributes/common.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:113 msgid "inspect.attributes.color.rgba" msgstr "RGBA" -#: src/app/main/ui/inspect/attributes/fill.cljs +#: src/app/main/ui/viewer/inspect/attributes/fill.cljs:57 msgid "inspect.attributes.fill" msgstr "Recheo" -#: src/app/main/ui/inspect/attributes/image.cljs +#: src/app/main/ui/viewer/inspect/attributes/image.cljs:39 msgid "inspect.attributes.image.height" msgstr "Altura" -#: src/app/main/ui/inspect/attributes/image.cljs +#: src/app/main/ui/viewer/inspect/attributes/image.cljs:32 msgid "inspect.attributes.image.width" msgstr "Ancho" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout" msgstr "Disposición" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.height" msgstr "Altura" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.left" msgstr "Esquerda" -#: src/app/main/ui/inspect/attributes/layout.cljs, -#: src/app/main/ui/inspect/attributes/layout.cljs +#: src/app/main/ui/inspect/attributes/layout.cljs, src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.radius" msgstr "Radio" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.rotation" msgstr "Rotación" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.top" msgstr "Enriba" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.width" msgstr "Ancho" -#: src/app/main/ui/inspect/attributes/shadow.cljs +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:57 msgid "inspect.attributes.shadow" msgstr "Sombra" -#: src/app/main/ui/inspect/attributes/stroke.cljs +#: src/app/main/ui/viewer/inspect/attributes/stroke.cljs:52 msgid "inspect.attributes.stroke" msgstr "Bordo" +#, permanent, unused msgid "inspect.attributes.stroke.alignment.center" msgstr "Centro" +#, permanent, unused msgid "inspect.attributes.stroke.alignment.inner" msgstr "Interior" +#, permanent, unused msgid "inspect.attributes.stroke.alignment.outer" msgstr "Exterior" +#, unused msgid "inspect.attributes.stroke.style.dotted" msgstr "Punteado" +#, unused msgid "inspect.attributes.stroke.style.mixed" msgstr "Mixto" +#, unused msgid "inspect.attributes.stroke.style.none" msgstr "Ningún" +#, unused msgid "inspect.attributes.stroke.style.solid" msgstr "Sólido" #: src/app/main/ui/inspect/attributes/stroke.cljs +#, unused msgid "inspect.attributes.stroke.width" msgstr "Ancho" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:81, src/app/main/ui/viewer/inspect/attributes/text.cljs:194 msgid "inspect.attributes.typography" msgstr "Tipografía" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:145 msgid "inspect.attributes.typography.text-decoration.none" msgstr "Ningunha" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:146 msgid "inspect.attributes.typography.text-decoration.strikethrough" msgstr "Riscar" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:147 msgid "inspect.attributes.typography.text-decoration.underline" msgstr "Suliñar" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:159 msgid "inspect.attributes.typography.text-transform.none" msgstr "Ningunha" -#: src/app/main/ui/inspect/right_sidebar.cljs +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:125 msgid "inspect.tabs.code" msgstr "Código" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:98 msgid "inspect.tabs.code.selected.circle" msgstr "Círculo" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:99 msgid "inspect.tabs.code.selected.component" msgstr "Compoñente" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:100 msgid "inspect.tabs.code.selected.curve" msgstr "Curva" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:101 msgid "inspect.tabs.code.selected.frame" msgstr "taboleiro" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:102 msgid "inspect.tabs.code.selected.group" msgstr "Grupo" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:103 msgid "inspect.tabs.code.selected.image" msgstr "Imaxe" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:104 msgid "inspect.tabs.code.selected.mask" msgstr "Máscara" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:105 msgid "inspect.tabs.code.selected.path" msgstr "Trazado" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:106 msgid "inspect.tabs.code.selected.rect" msgstr "Rectángulo" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:107 msgid "inspect.tabs.code.selected.svg-raw" msgstr "SVG" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:108 msgid "inspect.tabs.code.selected.text" msgstr "Texto" -#: src/app/main/ui/inspect/right_sidebar.cljs +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:115 msgid "inspect.tabs.info" msgstr "Información" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:158 msgid "label.shortcuts" msgstr "Atallos do teclado" +#: src/app/main/ui/dashboard/import.cljs:527 msgid "labels.accept" msgstr "Aceptar" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:120, src/app/main/ui/dashboard/team.cljs:276, src/app/main/ui/dashboard/team.cljs:519, src/app/main/ui/dashboard/team.cljs:549, src/app/main/ui/onboarding/team_choice.cljs:67 msgid "labels.admin" msgstr "Administración" #: src/app/main/ui/workspace/comments.cljs +#, unused msgid "labels.all" msgstr "Todo" +#: src/app/main/ui/auth.cljs:37 msgid "labels.and" msgstr "e" +#: src/app/main/ui/onboarding/team_choice.cljs:162 msgid "labels.back" msgstr "Volver" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/data/common.cljs:112, src/app/main/ui/dashboard/change_owner.cljs:69, src/app/main/ui/dashboard/import.cljs:514, src/app/main/ui/dashboard/team.cljs:868, src/app/main/ui/delete_shared.cljs:35, src/app/main/ui/export.cljs:164, src/app/main/ui/export.cljs:460, src/app/main/ui/settings/access_tokens.cljs:188, src/app/main/ui/viewer/share_link.cljs:203, src/app/main/ui/workspace/sidebar/assets/groups.cljs:149 msgid "labels.cancel" msgstr "Cancelar" +#: src/app/main/ui/dashboard/projects.cljs:93, src/app/main/ui/export.cljs:478, src/app/main/ui/settings/access_tokens.cljs:183, src/app/main/ui/viewer/login.cljs:77, src/app/main/ui/viewer/share_link.cljs:174, src/app/main/ui/workspace/libraries.cljs:522 msgid "labels.close" msgstr "Pechar" -#: src/app/main/ui/dashboard/comments.cljs +#: src/app/main/ui/dashboard/comments.cljs:104, src/app/main/ui/viewer/comments.cljs:70, src/app/main/ui/workspace/comments.cljs:126 msgid "labels.comments" msgstr "Comentarios" +#: src/app/main/ui/dashboard/import.cljs:520, src/app/main/ui/export.cljs:465, src/app/main/ui/onboarding/newsletter.cljs:101 msgid "labels.continue" msgstr "Continuar" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:157, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:190 msgid "labels.create" msgstr "Crear" -#: src/app/main/ui/settings/sidebar.cljs +#: src/app/main/ui/settings/sidebar.cljs:73 msgid "labels.dashboard" msgstr "Panel" -#: src/app/main/ui/dashboard/project_menu.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:306, src/app/main/ui/dashboard/fonts.cljs:255, src/app/main/ui/dashboard/fonts.cljs:332, src/app/main/ui/dashboard/fonts.cljs:346, src/app/main/ui/dashboard/project_menu.cljs:115, src/app/main/ui/dashboard/team.cljs:904, src/app/main/ui/settings/access_tokens.cljs:209, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:209 msgid "labels.delete" msgstr "Eliminar" -#: src/app/main/ui/dashboard/projects.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs, -#: src/app/main/ui/dashboard/files.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:28, src/app/main/ui/dashboard/files.cljs:72, src/app/main/ui/dashboard/files.cljs:156, src/app/main/ui/dashboard/projects.cljs:220, src/app/main/ui/dashboard/projects.cljs:224, src/app/main/ui/dashboard/sidebar.cljs:791 msgid "labels.drafts" msgstr "Borradores" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:350, src/app/main/ui/dashboard/fonts.cljs:252, src/app/main/ui/dashboard/team.cljs:902, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:205 msgid "labels.edit" msgstr "Editar" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:118, src/app/main/ui/dashboard/team.cljs:279, src/app/main/ui/dashboard/team.cljs:520, src/app/main/ui/dashboard/team.cljs:553, src/app/main/ui/onboarding/team_choice.cljs:66 msgid "labels.editor" msgstr "Editor" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:661 msgid "labels.expired-invitation" msgstr "Caducada" +#: src/app/main/ui/export.cljs:173 msgid "labels.export" msgstr "Exportar" +#: src/app/main/ui/dashboard/fonts.cljs:413 msgid "labels.font-variants" msgstr "Estilos" +#: src/app/main/ui/dashboard/fonts.cljs:52, src/app/main/ui/dashboard/sidebar.cljs:811 msgid "labels.fonts" msgstr "Fontes" -#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:516, src/app/main/ui/dashboard/team.cljs:89, src/app/main/ui/dashboard/team.cljs:97, src/app/main/ui/dashboard/team.cljs:708 msgid "labels.invitations" msgstr "Invitacións" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:51 msgid "labels.language" msgstr "Lingua" -#: src/app/main/ui/settings.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:1040 msgid "labels.logout" msgstr "Pechar sesión" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/team.cljs:468 msgid "labels.member" msgstr "Integrante" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:510, src/app/main/ui/dashboard/team.cljs:87, src/app/main/ui/dashboard/team.cljs:95 msgid "labels.members" msgstr "Integrantes" -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:49 msgid "labels.not-found.main-message" msgstr "Vaia!" +#, unused msgid "labels.or" msgstr "ou" -#: src/app/main/ui/settings/sidebar.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/settings/sidebar.cljs:87 msgid "labels.password" msgstr "Contrasinal" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:662 msgid "labels.pending-invitation" msgstr "Pendente" -#: src/app/main/ui/settings/sidebar.cljs +#: src/app/main/ui/settings/profile.cljs:118, src/app/main/ui/settings/sidebar.cljs:82 msgid "labels.profile" msgstr "Perfil" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:784 msgid "labels.projects" msgstr "Proxectos" -#: src/app/main/ui/workspace/libraries.cljs, -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/workspace/libraries.cljs, src/app/main/ui/dashboard/team.cljs +#, unused msgid "labels.remove" msgstr "Retirar" -#: src/app/main/ui/dashboard/sidebar.cljs, -#: src/app/main/ui/dashboard/project_menu.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:271, src/app/main/ui/dashboard/project_menu.cljs:85, src/app/main/ui/dashboard/sidebar.cljs:539, src/app/main/ui/workspace/sidebar/assets/groups.cljs:157 msgid "labels.rename" msgstr "Mudar o nome" -#: src/app/main/ui/static.cljs, src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:61, src/app/main/ui/static.cljs:70, src/app/main/ui/static.cljs:148 msgid "labels.retry" msgstr "Volver tentar" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:469, src/app/main/ui/dashboard/team.cljs:709 msgid "labels.role" msgstr "Rol" +#: src/app/main/ui/dashboard/fonts.cljs:380, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:191 msgid "labels.save" msgstr "Gardar" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:82 msgid "labels.send" msgstr "Enviar" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:82 msgid "labels.sending" msgstr "Enviando…" -#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:530, src/app/main/ui/dashboard/team.cljs:88, src/app/main/ui/dashboard/team.cljs:102, src/app/main/ui/settings/options.cljs:84, src/app/main/ui/settings/sidebar.cljs:93 msgid "labels.settings" msgstr "Configuración" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:800 msgid "labels.shared-libraries" msgstr "Bibliotecas" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:710 msgid "labels.status" msgstr "Estado" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:992, src/app/main/ui/workspace/main_menu.cljs:118 msgid "labels.tutorials" msgstr "Titoriales" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:103 msgid "labels.update" msgstr "Actualizar" +#: src/app/main/ui/dashboard/fonts.cljs:241 msgid "labels.upload" msgstr "Cargar" +#: src/app/main/ui/dashboard/fonts.cljs:240 msgid "labels.uploading" msgstr "Cargando…" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:123, src/app/main/ui/dashboard/team.cljs:282, src/app/main/ui/dashboard/team.cljs:521 msgid "labels.viewer" msgstr "Visor" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/team.cljs:237 msgid "labels.you" msgstr "(ti)" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:380 msgid "modals.update-remote-component.accept" msgstr "Actualizar" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:379 msgid "modals.update-remote-component.cancel" msgstr "Cancelar" +#, unused msgid "onboarding.welcome.alt" msgstr "Penpot" # SECTIONS +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:414 msgid "shortcut-section.basics" msgstr "Básicos" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:420 msgid "shortcut-section.dashboard" msgstr "Panel" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:423 msgid "shortcut-section.viewer" msgstr "Visor" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:417 msgid "shortcut-section.workspace" msgstr "Espazo de traballo" # SUBSECTIONS +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:56 msgid "shortcut-subsection.alignment" msgstr "Aliñamento" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:57 msgid "shortcut-subsection.edit" msgstr "Editar" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:58 msgid "shortcut-subsection.general-dashboard" msgstr "Xenérico" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:59 msgid "shortcut-subsection.general-viewer" msgstr "Xenérico" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:62 msgid "shortcut-subsection.navigation-dashboard" msgstr "Navegación" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:63 msgid "shortcut-subsection.navigation-viewer" msgstr "Navegación" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:64 msgid "shortcut-subsection.navigation-workspace" msgstr "Navegación" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:65 msgid "shortcut-subsection.panels" msgstr "Paneis" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:66 msgid "shortcut-subsection.path-editor" msgstr "Ruta" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:67 msgid "shortcut-subsection.shape" msgstr "Formas" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:69 msgid "shortcut-subsection.tools" msgstr "Ferramentas" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:70 msgid "shortcut-subsection.zoom-viewer" msgstr "Zoom" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:71 msgid "shortcut-subsection.zoom-workspace" msgstr "Zoom" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:72 msgid "shortcuts.add-comment" msgstr "Comentarios" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:93 msgid "shortcuts.copy" msgstr "Copiar" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:96 msgid "shortcuts.cut" msgstr "Cortar" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:98 msgid "shortcuts.delete" msgstr "Eliminar" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:101 msgid "shortcuts.draw-curve" msgstr "Curva" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:102 msgid "shortcuts.draw-ellipse" msgstr "Elipse" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:103 msgid "shortcuts.draw-frame" msgstr "Taboleiro" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:105 msgid "shortcuts.draw-path" msgstr "Ruta" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:106 msgid "shortcuts.draw-rect" msgstr "Rectángulo" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:107 msgid "shortcuts.draw-text" msgstr "Texto" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:108 msgid "shortcuts.duplicate" msgstr "Duplicar" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:109 msgid "shortcuts.escape" msgstr "Cancelar" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:118 msgid "shortcuts.go-to-search" msgstr "Buscar" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:119 msgid "shortcuts.group" msgstr "Agrupar" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:133 msgid "shortcuts.mask" msgstr "Máscara" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:135 msgid "shortcuts.move" msgstr "Mover" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:163 msgid "shortcuts.paste" msgstr "Pegar" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:165 msgid "shortcuts.redo" msgstr "Refacer" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:207 msgid "shortcuts.undo" msgstr "Desfacer" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:208 msgid "shortcuts.ungroup" msgstr "Dispersar" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:209 msgid "shortcuts.unmask" msgstr "Quitar máscara" +#: src/app/main/ui.cljs:143 msgid "viewer.breaking-change.message" msgstr "Sentímolo!" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/interactions.cljs:282 msgid "viewer.header.interactions" msgstr "Interaccións" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/header.cljs:231 msgid "viewer.header.sitemap" msgstr "Mapa do sitio" #: src/app/main/ui/workspace/sidebar/assets.cljs +#, unused msgid "workspace.assets.assets" msgstr "Recursos" -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/dashboard/grid.cljs:130, src/app/main/ui/dashboard/grid.cljs:162, src/app/main/ui/workspace/sidebar/assets/colors.cljs:485, src/app/main/ui/workspace/sidebar/assets.cljs:150 msgid "workspace.assets.colors" msgstr "Cores" -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/dashboard/grid.cljs:126, src/app/main/ui/dashboard/grid.cljs:141, src/app/main/ui/workspace/sidebar/assets/components.cljs:513, src/app/main/ui/workspace/sidebar/assets.cljs:139 msgid "workspace.assets.components" msgstr "Compoñentes" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/context_menu.cljs:529, src/app/main/ui/workspace/sidebar/assets/colors.cljs:251, src/app/main/ui/workspace/sidebar/assets/components.cljs:577, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:424, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:443 msgid "workspace.assets.delete" msgstr "Eliminar" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/context_menu.cljs:534, src/app/main/ui/workspace/sidebar/assets/components.cljs:572 msgid "workspace.assets.duplicate" msgstr "Duplicar" -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:247, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:439 msgid "workspace.assets.edit" msgstr "Editar" -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/graphics.cljs:384, src/app/main/ui/workspace/sidebar/assets.cljs:145 msgid "workspace.assets.graphics" msgstr "Gráficos" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:255, src/app/main/ui/workspace/sidebar/assets/components.cljs:581, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:428, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:448 msgid "workspace.assets.group" msgstr "Agrupar" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets.cljs:168 msgid "workspace.assets.libraries" msgstr "Bibliotecas" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/context_menu.cljs:532, src/app/main/ui/workspace/sidebar/assets/colors.cljs:243, src/app/main/ui/workspace/sidebar/assets/components.cljs:566, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:421, src/app/main/ui/workspace/sidebar/assets/groups.cljs:63, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:434 msgid "workspace.assets.rename" msgstr "Mudar o nome" -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/dashboard/grid.cljs:134, src/app/main/ui/dashboard/grid.cljs:189, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:397, src/app/main/ui/workspace/sidebar/assets.cljs:155 msgid "workspace.assets.typography" msgstr "Tipografías" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused msgid "workspace.assets.typography.font-id" msgstr "Fonte" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:505 msgid "workspace.assets.typography.font-size" msgstr "Tamaño" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:501 msgid "workspace.assets.typography.font-variant-id" msgstr "Variante" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, -#: src/app/main/ui/inspect/attributes/text.cljs, -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/dashboard/grid.cljs:199, src/app/main/ui/workspace/libraries.cljs:461, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:464, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:489, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:596, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:615 msgid "workspace.assets.typography.sample" msgstr "Ag" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:66 msgid "workspace.assets.ungroup" msgstr "Dispersar" +#, unused msgid "workspace.focus.selection" msgstr "Selección" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:731 msgid "workspace.header.menu.option.edit" msgstr "Editar" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:720 msgid "workspace.header.menu.option.file" msgstr "Ficheiro" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:753 msgid "workspace.header.menu.option.preferences" msgstr "Preferencias" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/viewer/header.cljs:98, src/app/main/ui/workspace/right_header.cljs:120 msgid "workspace.header.reset-zoom" msgstr "Restablecer" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/right_header.cljs:52 msgid "workspace.header.saved" msgstr "Gardado" #: src/app/main/ui/workspace/header.cljs +#, unused msgid "workspace.header.saving" msgstr "Gardando" #: src/app/main/ui/workspace/libraries.cljs +#, unused msgid "workspace.libraries.add" msgstr "Engadir" #: src/app/main/ui/workspace/colorpicker.cljs +#, unused msgid "workspace.libraries.colors.hsv" msgstr "HSV" #: src/app/main/ui/workspace/colorpicker.cljs +#, unused msgid "workspace.libraries.colors.rgba" msgstr "RGBA" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:526, src/app/main/ui/workspace/libraries.cljs:531 msgid "workspace.libraries.libraries" msgstr "BIBLIOTECAS" #: src/app/main/ui/workspace/libraries.cljs +#, unused msgid "workspace.libraries.library" msgstr "BIBLIOTECA" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:402 msgid "workspace.libraries.update" msgstr "Actualizar" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:536 msgid "workspace.libraries.updates" msgstr "Actualizacións" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:86, src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:102 msgid "workspace.options.blur-options.title" msgstr "Desenfoque" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:600, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:605 msgid "workspace.options.component" msgstr "Compoñente" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:163 msgid "workspace.options.constraints" msgstr "Restricións" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:150 msgid "workspace.options.constraints.bottom" msgstr "Embaixo" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:141, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:152 msgid "workspace.options.constraints.center" msgstr "Centro" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:138 msgid "workspace.options.constraints.left" msgstr "Esquerda" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:140 msgid "workspace.options.constraints.leftright" msgstr "Esquerda e Dereita" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:139 msgid "workspace.options.constraints.right" msgstr "Dereita" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:149 msgid "workspace.options.constraints.top" msgstr "Enriba" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:151 msgid "workspace.options.constraints.topbottom" msgstr "Enriba e Embaixo" -#: src/app/main/ui/workspace/sidebar/options.cljs +#: src/app/main/ui/workspace/sidebar/options.cljs:112 msgid "workspace.options.design" msgstr "Deseño" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs +#: src/app/main/ui/viewer/inspect/exports.cljs:139 msgid "workspace.options.export" msgstr "Exportar" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs +#, unused msgid "workspace.options.export-multiple" msgstr "Exportar selección" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs +#: src/app/main/ui/viewer/inspect/exports.cljs:195, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:237 msgid "workspace.options.export-object" msgid_plural "workspace.options.export-object" msgstr[0] "Exportar 1 elemento" msgstr[1] "Exportar %s elementos" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs +#: src/app/main/ui/viewer/inspect/exports.cljs:178, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:219 msgid "workspace.options.export.suffix" msgstr "Sufixo" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs, src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/export.cljs:240 msgid "workspace.options.exporting-complete" msgstr "Exportación completada" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs, src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/export.cljs:172, src/app/main/ui/export.cljs:241, src/app/main/ui/viewer/inspect/exports.cljs:194, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:236 msgid "workspace.options.exporting-object" msgstr "Exportando…" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs, src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/export.cljs:239 msgid "workspace.options.exporting-object-error" msgstr "Erro na exportación" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:49, src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:174 msgid "workspace.options.fill" msgstr "Recheo" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:29 msgid "workspace.options.grid.auto" msgstr "Automático" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:157 msgid "workspace.options.grid.column" msgstr "Columna" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused msgid "workspace.options.grid.grid-title" msgstr "Grade" +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:196, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:237 msgid "workspace.options.grid.params.color" msgstr "Cor" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused msgid "workspace.options.grid.params.columns" msgstr "Columnas" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:270 msgid "workspace.options.grid.params.margin" msgstr "Marxe" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:231 msgid "workspace.options.grid.params.type.bottom" msgstr "Embaixo" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:229 msgid "workspace.options.grid.params.type.center" msgstr "Centro" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:228 msgid "workspace.options.grid.params.type.left" msgstr "Esquerda" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:232 msgid "workspace.options.grid.params.type.right" msgstr "Dereita" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:227 msgid "workspace.options.grid.params.type.top" msgstr "Enriba" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:405 msgid "workspace.options.interaction-animation-none" msgstr "Ningún" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:397 msgid "workspace.options.interaction-pos-center" msgstr "Centro" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.bottom" msgstr "Embaixo" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.left" msgstr "Esquerda" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout.margin" msgstr "Marxe" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.right" msgstr "Dereita" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.top" msgstr "Enriba" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:124 msgid "workspace.options.stroke-cap.none" msgstr "Ningún" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:87 msgid "workspace.options.stroke.center" msgstr "Centro" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused msgid "workspace.options.text-options.none" msgstr "Nada" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:321 msgid "workspace.shape.menu.edit" msgstr "Editar" diff --git a/frontend/translations/ha.po b/frontend/translations/ha.po index 858165e3c4..7e0afce72b 100644 --- a/frontend/translations/ha.po +++ b/frontend/translations/ha.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "PO-Revision-Date: 2024-06-17 08:07+0000\n" "Last-Translator: Anonymous \n" -"Language-Team: Hausa \n" +"Language-Team: Hausa " +"\n" "Language: ha\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" @@ -11,447 +11,494 @@ msgstr "" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 5.6-dev\n" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:151, src/app/main/ui/viewer/login.cljs:104 msgid "auth.already-have-account" msgstr "ka na da taska?" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:299 msgid "auth.check-your-email" msgstr "" "bincika taskarka ta imel,ka danna alamar mahaxa domin tabbatarwa,sannan ka " "fara amfani da fenfot." -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:78 msgid "auth.confirm-password" msgstr "tabbatar da kalmar buxewa" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/register.cljs:163 msgid "auth.create-demo-account" msgstr "qirqiri taskar gwaji" #: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#, unused msgid "auth.create-demo-profile" msgstr "ka na son gwadawa ne kawai?" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/login.cljs:43 msgid "auth.demo-warning" msgstr "" "wannan aikin gwaji ne kawai,kar ka yi amfani da shi a aikin gaske,lokaci " "zuwa lokaci za ya ringa vacewa ne." -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:189, src/app/main/ui/viewer/login.cljs:90 msgid "auth.forgot-password" msgstr "ka manta lambar tsaro?" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:254 msgid "auth.fullname" msgstr "cikakken suna" -#: src/app/main/ui/auth/register.cljs -#, fuzzy +#: src/app/main/ui/auth/register.cljs:155, src/app/main/ui/viewer/login.cljs:107 msgid "auth.login-here" msgstr "shiga nan" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:195 msgid "auth.login-submit" msgstr "shiga ciki" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:222 msgid "auth.login-with-github-submit" msgstr "matattarar manazarta" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:228 msgid "auth.login-with-gitlab-submit" msgstr "wurin nazari" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:216 msgid "auth.login-with-google-submit" msgstr "Gugul" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:201 msgid "auth.login-with-ldap-submit" msgstr "LDAP" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:234, src/app/main/ui/auth/login.cljs:255 msgid "auth.login-with-oidc-submit" msgstr "shaidar buxewa" -#: src/app/main/ui/settings/team-form.cljs, src/app/main/ui/auth/register.cljs, src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/onboarding/team_choice.cljs, src/app/main/ui/settings/access_tokens.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/settings/profile.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/auth/register.cljs:217, src/app/main/ui/dashboard/team_form.cljs:76, src/app/main/ui/onboarding/team_choice.cljs:180, src/app/main/ui/settings/access_tokens.cljs:66, src/app/main/ui/settings/feedback.cljs:34, src/app/main/ui/settings/profile.cljs:45, src/app/main/ui/workspace/sidebar/assets/groups.cljs:108 msgid "auth.name.not-all-space" msgstr "dole suna ya qumshi waxansu alamimon rubutu, sannan tazara." -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/onboarding/team_choice.cljs, src/app/main/ui/settings/access_tokens.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/settings/profile.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/auth/register.cljs:218, src/app/main/ui/dashboard/team_form.cljs:77, src/app/main/ui/onboarding/team_choice.cljs:181, src/app/main/ui/settings/access_tokens.cljs:67, src/app/main/ui/settings/feedback.cljs:33, src/app/main/ui/settings/profile.cljs:44, src/app/main/ui/workspace/sidebar/assets/groups.cljs:109 msgid "auth.name.too-long" msgstr "suna dole ya qunshi alamomin rubutu 250." -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:71 msgid "auth.new-password" msgstr "sanya sabuwar lambar tsaro" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:42 msgid "auth.notifications.invalid-token-error" msgstr "lambar tsaron da ka sanya ba daidai ba ce." -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:46 msgid "auth.notifications.password-changed-successfully" msgstr "ka canza lambar tsaro" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:57 msgid "auth.notifications.profile-not-verified" msgstr "ba a tantance bayananka ba,sai an tantance a ci gaba." -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:40 msgid "auth.notifications.recovery-token-sent" msgstr "an aika maka da saqon matakan da za a bi domin dawo da lambar tsaronka." -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:47 msgid "auth.notifications.team-invitation-accepted" msgstr "ka zama dan tawaga" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:179, src/app/main/ui/auth/register.cljs:115 msgid "auth.password" msgstr "lambar tsaro" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:114 msgid "auth.password-length-hint" msgstr "aqalla a sami alamoni 8" +#: src/app/main/ui/auth.cljs:41 msgid "auth.privacy-policy" msgstr "matakan kaxaita" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:101 msgid "auth.recovery-request-subtitle" msgstr "za mu aika maka da saqon qa'idoji ta imel" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:82 msgid "auth.recovery-submit" msgstr "canza lambar tsaro" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:140 msgid "auth.register-title" msgstr "qirqiri sabon kundi" #: src/app/main/ui/auth.cljs +#, unused msgid "auth.sidebar-tagline" msgstr "samun hanyar magance matsalar zane-zane." +#: src/app/main/ui/auth.cljs:33, src/app/main/ui/dashboard/sidebar.cljs:1022, src/app/main/ui/workspace/main_menu.cljs:150 msgid "auth.terms-of-service" msgstr "dokokin aiki" +#, unused msgid "auth.terms-privacy-agreement" msgstr "" "lokacin qirqirar kundi, sai ka amincewa da yanayi aikin da " "qa'idojinmuqa'idoji." -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:297 msgid "auth.verification-email-sent" msgstr "mun aika maka da saqon tantancewa ta imel" #: src/app/main/ui/onboarding/questions.cljs +#, unused msgid "branding-illustrations-marketing-pieces" msgstr "...branding, illustrations, marketing pieces, etc." +#: src/app/main/ui/workspace/libraries.cljs:228 msgid "common.publish" msgstr "wallafawa" +#: src/app/main/ui/viewer/share_link.cljs:304, src/app/main/ui/viewer/share_link.cljs:314 msgid "common.share-link.all-users" msgstr "duk fenfot" +#: src/app/main/ui/viewer/share_link.cljs:198 msgid "common.share-link.confirm-deletion-link-description" msgstr "ka tabbata ka na son rufe wannan hanyar? idan ka rufe ba mai iya sake bi" +#: src/app/main/ui/viewer/share_link.cljs:259, src/app/main/ui/viewer/share_link.cljs:289 msgid "common.share-link.current-tag" msgstr "(yanzu)" +#: src/app/main/ui/viewer/share_link.cljs:207, src/app/main/ui/viewer/share_link.cljs:214 msgid "common.share-link.destroy-link" msgstr "tarwatsa hanya" +#: src/app/main/ui/viewer/share_link.cljs:221 msgid "common.share-link.get-link" msgstr "samun hanya" +#: src/app/main/ui/viewer/share_link.cljs:139 msgid "common.share-link.link-copied-success" msgstr "an samo kwafi" +#: src/app/main/ui/viewer/share_link.cljs:231 msgid "common.share-link.manage-ops" msgstr "amincewar shugaba" +#: src/app/main/ui/viewer/share_link.cljs:277 msgid "common.share-link.page-shared" msgid_plural "common.share-link.page-shared" msgstr[0] "tura shafi 1" msgstr[1] "%s an tura shafi" +#: src/app/main/ui/viewer/share_link.cljs:298 msgid "common.share-link.permissions-can-comment" msgstr "sharhi" +#: src/app/main/ui/viewer/share_link.cljs:308 msgid "common.share-link.permissions-can-inspect" msgstr "iya bincka lamba" +#: src/app/main/ui/viewer/share_link.cljs:193 msgid "common.share-link.permissions-hint" msgstr "duk wanda ya mallaki mataki,za ya iya shiga" +#: src/app/main/ui/viewer/share_link.cljs:241 msgid "common.share-link.permissions-pages" msgstr "tura shafuka" +#: src/app/main/ui/viewer/share_link.cljs:183 msgid "common.share-link.placeholder" msgstr "hanya mai kyau za ta bayyana a nan" +#: src/app/main/ui/viewer/share_link.cljs:303, src/app/main/ui/viewer/share_link.cljs:313 msgid "common.share-link.team-members" msgstr "memba kaxai" +#: src/app/main/ui/viewer/share_link.cljs:171 msgid "common.share-link.title" msgstr "fenfot" +#: src/app/main/ui/viewer/share_link.cljs:269 msgid "common.share-link.view-all" msgstr "zavi duka" +#: src/app/main/ui/workspace/libraries.cljs:224 msgid "common.unpublish" msgstr "maras wallafa" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:85 msgid "dasboard.team-hero.management" msgstr "shuwagabannin tawaga" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:84 msgid "dasboard.team-hero.text" msgstr "fenfot ta menbobin tawaga ce. kirawo kowa domin yin aiki tarekundaye" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:82 msgid "dasboard.team-hero.title" msgstr "haxin guiwa!" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.tutorial-hero.info" msgstr "ka san dokokin fenfot lokacin da ka ke tare da masoya koyarwa." #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.tutorial-hero.start" msgstr "fara jagoranci" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.tutorial-hero.title" msgstr "jagoranci" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.walkthrough-hero.info" msgstr "bincika manhaja domin sanin manyan sassanta." #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.walkthrough-hero.start" msgstr "fara koyarwa" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.walkthrough-hero.title" msgstr "ma'aunin karvuwar aiki" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:115 msgid "dashboard.access-tokens.copied-success" msgstr "kwafar lambar tsaro" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:202 msgid "dashboard.access-tokens.create" msgstr "samo sabuwar lambar tsaro" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:76 msgid "dashboard.access-tokens.create.success" msgstr "ka sami lambar tsaron da aka yi." -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:300 msgid "dashboard.access-tokens.empty.add-one" msgstr "" "danna maddanin qasa\"danna qasa\n" "emo sabuwar lambar tsaro\" samar da wani." -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:299 msgid "dashboard.access-tokens.empty.no-access-tokens" msgstr "ba ka da wasu lambobin tsaro yanzu." -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:53 msgid "dashboard.access-tokens.errors-required-name" msgstr "ana buqatar suna" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:147 msgid "dashboard.access-tokens.expiration-180-days" msgstr "kwanaki 180" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:144 msgid "dashboard.access-tokens.expiration-30-days" msgstr "kwanaki 30" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:145 msgid "dashboard.access-tokens.expiration-60-days" msgstr "kwanaki 60" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:146 msgid "dashboard.access-tokens.expiration-90-days" msgstr "kwanaki 90" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:143 msgid "dashboard.access-tokens.expiration-never" msgstr "bai yiwuwa" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:282 msgid "dashboard.access-tokens.expired-on" msgstr "gama aiki kan %s" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:283 msgid "dashboard.access-tokens.expires-on" msgstr "gama aiki kan %s" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:281 msgid "dashboard.access-tokens.no-expiration" msgstr "ba lokacin daina amfani" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:197 msgid "dashboard.access-tokens.personal" msgstr "mallakar lambobin shiga na sirri" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:198 msgid "dashboard.access-tokens.personal.description" msgstr "" "lambarka ta shiga na a matsayin zabin hanyar shiga/lambar tsaronmuza a iya " "amfani tsarin tantancewa,domin shiga manhajar cikin fenfot API" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:154 msgid "dashboard.access-tokens.token-will-expire" msgstr "lambar tsaron za ta gama aiki %s" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:155 msgid "dashboard.access-tokens.token-will-not-expire" msgstr "lambar tsaron ba ta da lokacin daina aiki" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:291, src/app/main/ui/workspace/main_menu.cljs:572 msgid "dashboard.add-shared" msgstr "tura tamkar fenfot" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:75 msgid "dashboard.change-email" msgstr "canza imel" -#: src/app/main/data/dashboard.cljs, src/app/main/data/dashboard.cljs +#: src/app/main/data/dashboard.cljs:762, src/app/main/data/dashboard.cljs:983 msgid "dashboard.copy-suffix" msgstr "(kwafi)" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:338 msgid "dashboard.create-new-team" msgstr "yi sabuwar tawaga" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/components/context_menu_a11y.cljs:256, src/app/main/ui/dashboard/sidebar.cljs:646 msgid "dashboard.default-team-name" msgstr "manhajar fenfot" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:571 msgid "dashboard.delete-team" msgstr "goge tawaga" +#: src/app/main/ui/dashboard/file_menu.cljs:296, src/app/main/ui/workspace/main_menu.cljs:589 msgid "dashboard.download-binary-file" msgstr "sauke manhajar fenfot(.manhajar fenfot)" +#: src/app/main/ui/dashboard/file_menu.cljs:300, src/app/main/ui/workspace/main_menu.cljs:597 msgid "dashboard.download-standard-file" msgstr "sauke cikakken kundi(.svg + .json)" -#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:276, src/app/main/ui/dashboard/project_menu.cljs:90 msgid "dashboard.duplicate" msgstr "kwafi" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:240 msgid "dashboard.duplicate-multi" msgstr "kwafi %s kundaye" -#: src/app/main/ui/dashboard/grid.cljs -#, fuzzy, markdown +#: src/app/main/ui/dashboard/placeholder.cljs:32 +#, markdown msgid "dashboard.empty-placeholder-drafts" msgstr "" "nan za a sami kundayen da aka sanya a taska. gwada sanya na ka kundin \"a " -"taskirarmumaginar kundi](https://manhajar fenfot/taskokin maginar kundaye." -"html)." +"taskirarmumaginar kundi](https://manhajar fenfot/taskokin maginar " +"kundaye.html)." +#: src/app/main/ui/dashboard/file_menu.cljs:249 msgid "dashboard.export-binary-multi" msgstr "sauke %s kundayen manhajar fenfot(.penpot)" +#: src/app/main/ui/workspace/main_menu.cljs:605 msgid "dashboard.export-frames" msgstr "Allon fitarwa na PDF" -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:201 msgid "dashboard.export-frames.title" msgstr "Fitarwa a PDF" +#, unused msgid "dashboard.export-multi" msgstr "fitar da fenfot %s kundaye" -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:109 msgid "dashboard.export-multiple.selected" msgstr "%s of %s tubullan da aka zava" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:578 msgid "dashboard.export-shapes" msgstr "Fitarwa" -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:180 msgid "dashboard.export-shapes.how-to" msgstr "" "za ka iya daidaita kayan zanenka ta hanyar (amfani da madannin qasa sashen " "dama)." -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:184 msgid "dashboard.export-shapes.how-to-link" msgstr "bayanin yadda ake fitarwa daga fenfot" -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:179 msgid "dashboard.export-shapes.no-elements" msgstr "ba wasu abubuwan da ake daidaitawa wajen tsara fitarwa." -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:190 msgid "dashboard.export-shapes.title" msgstr "Fitar da zavi" +#: src/app/main/ui/dashboard/file_menu.cljs:252 msgid "dashboard.export-standard-multi" msgstr "Sauke %s cikakken kundi (.svg + .json)" +#: src/app/main/ui/export.cljs:427 msgid "dashboard.export.detail" msgstr "*akwai sassan,hotuna,launuka,da/kozane-zane." +#: src/app/main/ui/export.cljs:426 msgid "dashboard.export.explain" msgstr "za ka iya fitar da kundi daya ko fiye ta hanyar tura taska. \"me \"*?" +#: src/app/main/ui/export.cljs:435 msgid "dashboard.export.options.all.message" msgstr "manhajar tura kundi ta kunshi fitarwa, tattali mahaxarsu." +#: src/app/main/ui/export.cljs:436 msgid "dashboard.export.options.all.title" msgstr "fitar da manhajar tura kundi" +#: src/app/main/ui/export.cljs:437 msgid "dashboard.export.options.detach.message" msgstr "manhajar tura kundi ba ta shiga cikin fitarwa, wani amfaniqarawa a taska. " +#: src/app/main/ui/export.cljs:438 msgid "dashboard.export.options.detach.title" msgstr "lura da bayanan da ke cikin manhajar tura kundi" +#: src/app/main/ui/export.cljs:439 msgid "dashboard.export.options.merge.message" msgstr "" "za ka iya fitar da kundi tare da haxe muhimman abubuwa, na waje a " "kunditaskira." +#: src/app/main/ui/export.cljs:440 msgid "dashboard.export.options.merge.title" msgstr "tura taska ya qunshi bayanan da ke cikin kundin taskoki" +#: src/app/main/ui/export.cljs:418 msgid "dashboard.export.title" msgstr "fitar da kundayr" +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:309 msgid "dashboard.fonts.deleted-placeholder" msgstr "rashin font" -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:206 msgid "dashboard.fonts.dismiss-all" msgstr "goge duka" +#: src/app/main/ui/dashboard/fonts.cljs:436 msgid "dashboard.fonts.empty-placeholder" msgstr "fonts da ka xora nan za ya bayyana." -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:194 msgid "dashboard.fonts.fonts-added" msgid_plural "dashboard.fonts.fonts-added" msgstr[0] "an qara font 1" msgstr[1] "%s an qara fonts da yawa" +#: src/app/main/ui/dashboard/fonts.cljs:170 #, markdown msgid "dashboard.fonts.hero-text1" msgstr "" @@ -460,6 +507,7 @@ msgstr "" "kasawa**gwaurayen font**. Za ka iya xora font ta waxannan hanyoyin: **TTF, " "OTF and WOFF** (xaya kawai ake buqata)." +#: src/app/main/ui/dashboard/fonts.cljs:182 #, markdown msgid "dashboard.fonts.hero-text2" msgstr "" @@ -468,10 +516,11 @@ msgstr "" "fpntaiki](https://fenfot.app/dokoki.html). Za ka so bayani game " "da[ffonts](https://www.rubutu.com/faq)." -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:202 msgid "dashboard.fonts.upload-all" msgstr "xora duka" +#: src/app/main/ui/dashboard/fonts.cljs:187 #, markdown msgid "dashboard.fonts.warning-text" msgstr "" @@ -481,1405 +530,1591 @@ msgstr "" "mun aminta da amfani da [taransifota](https://taransifota.org/) domin samo " "webfonts da adana kurakurai. " +#: src/app/main/ui/dashboard/import.cljs:472, src/app/main/ui/dashboard/project_menu.cljs:108 msgid "dashboard.import" msgstr "shigo da kundin fenfot" +#: src/app/main/ui/dashboard/import.cljs:304, src/app/worker/import.cljs:753, src/app/worker/import.cljs:755 msgid "dashboard.import.analyze-error" msgstr "kash! mun gaza shigo da kundinka" +#: src/app/main/ui/dashboard/import.cljs:308 msgid "dashboard.import.import-error" msgstr "akwi matsala a kundin. ba a shio da kundin ba." +#: src/app/main/ui/dashboard/import.cljs:493 msgid "dashboard.import.import-message" msgid_plural "dashboard.import.import-message" msgstr[0] "an shigar kundi 1." msgstr[1] "%s kundaye sun shiga." +#: src/app/main/ui/dashboard/import.cljs:481, src/app/main/ui/dashboard/import.cljs:488 msgid "dashboard.import.import-warning" msgstr "wasu kundayen na dauke da abubuwan da ba su da amfani." +#: src/app/main/ui/dashboard/import.cljs:144 msgid "dashboard.import.progress.process-colors" msgstr "aikin rini" +#: src/app/main/ui/dashboard/import.cljs:153 msgid "dashboard.import.progress.process-components" msgstr "aikin sassa" +#: src/app/main/ui/dashboard/import.cljs:150 msgid "dashboard.import.progress.process-media" msgstr "kammala aiki" +#: src/app/main/ui/dashboard/import.cljs:141 msgid "dashboard.import.progress.process-page" msgstr "fejin kasuwar duniya: %s" +#: src/app/main/ui/dashboard/import.cljs:147 msgid "dashboard.import.progress.process-typographies" msgstr "kula da rubutu" +#: src/app/main/ui/dashboard/import.cljs:135 msgid "dashboard.import.progress.upload-data" msgstr "xora bayani akan sabis (%s/%s)" +#: src/app/main/ui/dashboard/import.cljs:138 msgid "dashboard.import.progress.upload-media" msgstr "xora kundaye: %s" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:109 msgid "dashboard.invite-profile" msgstr "neman mutane" -#: src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:547, src/app/main/ui/dashboard/sidebar.cljs:556, src/app/main/ui/dashboard/sidebar.cljs:563, src/app/main/ui/dashboard/team.cljs:312 msgid "dashboard.leave-team" msgstr "fita tawaga" +#: src/app/main/ui/dashboard/templates.cljs:88, src/app/main/ui/dashboard/templates.cljs:163 msgid "dashboard.libraries-and-templates" msgstr "taska da shaidar kamfanoni" +#: src/app/main/ui/dashboard/templates.cljs:164 msgid "dashboard.libraries-and-templates.explore" msgstr "bincika su da kyau kasan ta yadda za ka bayar da gudunmawa" +#: src/app/main/ui/dashboard/import.cljs:365 msgid "dashboard.libraries-and-templates.import-error" msgstr "akwai matsala wurin shigo da fejin talla. fejin tallar ba ya xauko." -#: src/app/main/ui/dashboard/libraries.cljs +#: src/app/main/ui/dashboard/libraries.cljs:53 msgid "dashboard.libraries-title" msgstr "taskoki" -#: src/app/main/ui/dashboard/grid.cljs +#: src/app/main/ui/dashboard/placeholder.cljs:45 msgid "dashboard.loading-files" msgstr "aikin dora kundaye …" +#: src/app/main/ui/dashboard/fonts.cljs:431 msgid "dashboard.loading-fonts" msgstr "xora abin adonka …" -#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:281, src/app/main/ui/dashboard/project_menu.cljs:100 msgid "dashboard.move-to" msgstr "tura a" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:245 msgid "dashboard.move-to-multi" msgstr "tura %s kundaye a" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:226 msgid "dashboard.move-to-other-team" msgstr "tura ma sauran tawaga" -#: src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/files.cljs +#: src/app/main/ui/dashboard/files.cljs:105, src/app/main/ui/dashboard/projects.cljs:252, src/app/main/ui/dashboard/projects.cljs:253 msgid "dashboard.new-file" msgstr "+ sabon kundi" -#: src/app/main/data/dashboard.cljs +#: src/app/main/data/dashboard.cljs:958, src/app/main/data/dashboard.cljs:1181 msgid "dashboard.new-file-prefix" msgstr "sabon kundi" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:55 msgid "dashboard.new-project" msgstr "+ sabon aiki" -#: src/app/main/data/dashboard.cljs +#: src/app/main/data/dashboard.cljs:726, src/app/main/data/dashboard.cljs:1184 msgid "dashboard.new-project-prefix" msgstr "sabon aiki" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:60 msgid "dashboard.no-matches-for" msgstr "ba wanda ya yi daidai da “%s“" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:827 msgid "dashboard.no-projects-placeholder" msgstr "nan za a ga bayanin aiki" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:33 msgid "dashboard.notifications.email-changed-successfully" msgstr "ka zamanantar da adireshinka na imel" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:27 msgid "dashboard.notifications.email-verified-successfully" msgstr "an tantance adireshinka na imel" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:37 msgid "dashboard.notifications.password-saved" msgstr "an tsare maka shaidar tsaro!" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1081 msgid "dashboard.num-of-members" msgstr "%s memba" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:267 msgid "dashboard.open-in-new-tab" msgstr "buxe kundi a sabon wurin buxewa" +#: src/app/main/ui/dashboard/files.cljs:117, src/app/main/ui/dashboard/projects.cljs:260, src/app/main/ui/dashboard/projects.cljs:261 msgid "dashboard.options" msgstr "zavi" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:106, src/app/main/ui/settings/password.cljs:119 msgid "dashboard.password-change" msgstr "sauya lambar tsaro" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/pin_button.cljs:24, src/app/main/ui/dashboard/project_menu.cljs:95 msgid "dashboard.pin-unpin" msgstr "rufewa/buxewa" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:51 msgid "dashboard.projects-title" msgstr "aiki" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:86 msgid "dashboard.remove-account" msgstr "ka na son cire taskarka?" #: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "dashboard.remove-shared" msgstr "cire matattarar kundate" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:78 msgid "dashboard.save-settings" msgstr "wurin ajiyar saiti" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:246, src/app/main/ui/dashboard/sidebar.cljs:247 msgid "dashboard.search-placeholder" msgstr "nema …" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:55 msgid "dashboard.searching-for" msgstr "neman “%s“…" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:56 msgid "dashboard.select-ui-language" msgstr "zavavven harshen UI" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:63 msgid "dashboard.select-ui-theme" msgstr "zaven batu" -#: src/app/main/ui/dashboard/grid.cljs +#: src/app/main/ui/dashboard/projects.cljs:282 msgid "dashboard.show-all-files" msgstr "duk kundaye" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:96 msgid "dashboard.success-delete-file" msgid_plural "dashboard.success-delete-file" msgstr[0] "an goge kundinka" msgstr[1] "an goge kundayenka" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:59 msgid "dashboard.success-delete-project" msgstr "ka goge aikinka" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:91 msgid "dashboard.success-duplicate-file" msgid_plural "dashboard.success-delete-file" msgstr[0] "an kwafi kundinka" msgstr[1] "an kwafi kundayenka" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:33 msgid "dashboard.success-duplicate-project" msgstr "an kwafi aikinka" -#: src/app/main/ui/dashboard/grid.cljs, src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:130, src/app/main/ui/dashboard/grid.cljs:558, src/app/main/ui/dashboard/sidebar.cljs:152 msgid "dashboard.success-move-file" msgstr "an tura aikinka" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:129 msgid "dashboard.success-move-files" msgstr "an tura kundayenka" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:54 msgid "dashboard.success-move-project" msgstr "an tura aikinka" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1052 msgid "dashboard.team-info" msgstr "bayanin tawaga" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1070 msgid "dashboard.team-members" msgstr "mambobin tawaga" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1085 msgid "dashboard.team-projects" msgstr "aiyukan tawaga" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:61 msgid "dashboard.theme-change" msgstr "batun UI" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:42 msgid "dashboard.title-search" msgstr "neman sakamako" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:50 msgid "dashboard.type-something" msgstr "rubuta neman sakamako" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:287, src/app/main/ui/workspace/main_menu.cljs:566 msgid "dashboard.unpublish-shared" msgstr "wallafa taska" -#: src/app/main/ui/settings/password.cljs, src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:71 msgid "dashboard.update-settings" msgstr "zamanartarwa wurin gyara" +#: src/app/main/ui/dashboard/team.cljs:861 msgid "dashboard.webhooks.active" msgstr "ya na amfani" +#: src/app/main/ui/dashboard/team.cljs:862 msgid "dashboard.webhooks.active.explain" msgstr "idan an sami sauyi a nan ake kawo shi" +#: src/app/main/ui/dashboard/team.cljs:852 msgid "dashboard.webhooks.content-type" msgstr "irin ra'ayi" +#: src/app/main/ui/dashboard/team.cljs:885 msgid "dashboard.webhooks.create" msgstr "yin webhook" +#: src/app/main/ui/dashboard/team.cljs:775 msgid "dashboard.webhooks.create.success" msgstr "an gina Webhook." +#: src/app/main/ui/dashboard/team.cljs:882 msgid "dashboard.webhooks.description" msgstr "" "Webhooks hanyar sanar da manhajoji da addireshi intanet idan wani ya faru a " "Penpot. za a tura maka da saqon talla URLs ka samar da." +#: src/app/main/ui/dashboard/team.cljs:1005 msgid "dashboard.webhooks.empty.add-one" msgstr "danna qasa \"sanya webhook\" qara xaya." +#: src/app/main/ui/dashboard/team.cljs:1004 msgid "dashboard.webhooks.empty.no-webhooks" msgstr "ba a gina wani webhooks ba." +#, unused msgid "dashboard.webhooks.update.success" msgstr "sabunta Webhook." -#: src/app/main/ui/settings.cljs +#: src/app/main/ui/settings.cljs:31 msgid "dashboard.your-account-title" msgstr "gidanka" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:70 msgid "dashboard.your-email" msgstr "imel" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:62 msgid "dashboard.your-name" msgstr "sunanka" -#: src/app/main/ui/dashboard/search.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/libraries.cljs, src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:38, src/app/main/ui/dashboard/fonts.cljs:33, src/app/main/ui/dashboard/libraries.cljs:42, src/app/main/ui/dashboard/projects.cljs:318, src/app/main/ui/dashboard/search.cljs:30, src/app/main/ui/dashboard/sidebar.cljs:312, src/app/main/ui/dashboard/team.cljs:495, src/app/main/ui/dashboard/team.cljs:729, src/app/main/ui/dashboard/team.cljs:991, src/app/main/ui/dashboard/team.cljs:1038 msgid "dashboard.your-penpot" msgstr "fenfot na ka" -#: src/app/main/ui/alert.cljs +#: src/app/main/ui/alert.cljs:32 msgid "ds.alert-ok" msgstr "haka" -#: src/app/main/ui/alert.cljs +#: src/app/main/ui/alert.cljs:31, src/app/main/ui/alert.cljs:34 msgid "ds.alert-title" msgstr "natsu" -#: src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:83 msgid "ds.component-subtitle" msgstr "zamanantar da sassa:" -#: src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:36, src/app/main/ui/workspace/plugins.cljs:246 msgid "ds.confirm-cancel" msgstr "goge" -#: src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:37, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:141 msgid "ds.confirm-ok" msgstr "haka" -#: src/app/main/ui/confirm.cljs, src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:35, src/app/main/ui/confirm.cljs:39 msgid "ds.confirm-title" msgstr "ka tabbata?" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:62 msgid "errors.auth-provider-not-configured" msgstr "manhajar tantancewar ba ta tsaru ba." +#: src/app/main/errors.cljs:104 msgid "errors.auth.unable-to-login" msgstr "lokacin ya qare ko ba a tantance ka ba." +#: src/app/main/data/fonts.cljs:189 msgid "errors.bad-font" msgstr "ba za a iya xora fonts %s ba" +#: src/app/main/data/fonts.cljs:188 msgid "errors.bad-font-plural" msgstr "ba za a iya xora fonts %s ba" +#: src/app/main/data/workspace/media.cljs:198 msgid "errors.cannot-upload" msgstr "kasa xora xan aiken kundi." -#: src/app/main/data/workspace.cljs +#: src/app/main/data/workspace.cljs:1598 msgid "errors.clipboard-not-implemented" msgstr "manhajar binciken nan ba ta iya yin wannan aikin" -#: src/app/main/ui/auth/verify_token.cljs, src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/auth/verify_token.cljs:82, src/app/main/ui/settings/change_email.cljs:46 msgid "errors.email-already-exists" msgstr "an yi amfani da imel" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:87 msgid "errors.email-already-validated" msgstr "an farfaxo da imel." +#: src/app/main/ui/settings/password.cljs:28 msgid "errors.email-as-password" msgstr "ba za ka iya amfani da imel ba a matsayin lambar tsaro ba" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/settings/change_email.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/auth/recovery_request.cljs:63, src/app/main/ui/dashboard/team.cljs:578, src/app/main/ui/settings/change_email.cljs:54 msgid "errors.email-has-permanent-bounces" msgstr "imel «%s» na da bayanan matsaloli na dindindin." -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs, src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/login.cljs:81, src/app/main/ui/auth/recovery_request.cljs:31, src/app/main/ui/auth/register.cljs:43 msgid "errors.email-invalid" msgstr "sanya imel mai amfani" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:35 msgid "errors.email-invalid-confirmation" msgstr "tabbata imel xinka ya yi daidai" +#: src/app/main/ui/dashboard/team.cljs:170 msgid "errors.email-spam-or-permanent-bounces" msgstr "saqonni marasa amfani na imel «%s»." -#: src/app/main/errors.cljs +#: src/app/main/errors.cljs:227 msgid "errors.feature-mismatch" msgstr "" "tamkar ka buxe wani kundi da ke da muhimmanci '%s' bayar da dama qarin da " "ka yi ma fenfot xinka bai karbu ba ko ba zai yi aiki ba." -#: src/app/main/errors.cljs +#: src/app/main/errors.cljs:231, src/app/main/errors.cljs:245 msgid "errors.feature-not-supported" msgstr "sassa '%s' ba za su yi aiki ba." -#: src/app/main/ui/auth/verify_token.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/data/users.cljs:709, src/app/main/ui/auth/login.cljs:65, src/app/main/ui/auth/login.cljs:116, src/app/main/ui/auth/register.cljs:69, src/app/main/ui/auth/register.cljs:237, src/app/main/ui/auth/verify_token.cljs:92, src/app/main/ui/dashboard/team.cljs:173, src/app/main/ui/onboarding/team_choice.cljs:95, src/app/main/ui/settings/access_tokens.cljs:91, src/app/main/ui/settings/feedback.cljs:52 msgid "errors.generic" msgstr "wata matsala ta faru." -#: src/app/main/ui/components/color_input.cljs +#: src/app/main/ui/components/color_input.cljs:57 msgid "errors.invalid-color" msgstr "launin bai yi ba" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/static.cljs:43 msgid "errors.invite-invalid" msgstr "gaiyar ba ta yi ba" +#: src/app/main/ui/static.cljs:44 msgid "errors.invite-invalid.info" msgstr "za a iya soke gayyata ko ta ki aiki." -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:101 msgid "errors.ldap-disabled" msgstr "LDAP ya gaza tantancewa." -#: src/app/main/errors.cljs +#: src/app/main/errors.cljs:239 msgid "errors.max-quote-reached" msgstr "kammala adadin '%s' madogara. gyara." -#: src/app/main/data/workspace/persistence.cljs +#: src/app/main/data/workspace/media.cljs:184 msgid "errors.media-too-large" msgstr "hoton da za ka sanya ya yi girma." -#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs +#: src/app/main/data/media.cljs:68, src/app/main/data/workspace/media.cljs:187 msgid "errors.media-type-mismatch" msgstr "hoton da aka sanya bai yi daidai da kundin da ake son faxaxawa ba." -#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/workspace/persistence.cljs, src/app/main/data/workspace/persistence.cljs, src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs +#: src/app/main/data/media.cljs:65, src/app/main/data/workspace/media.cljs:172, src/app/main/data/workspace/media.cljs:175, src/app/main/data/workspace/media.cljs:178, src/app/main/data/workspace/media.cljs:181 msgid "errors.media-type-not-allowed" msgstr "wannan hoton ba ya aiki." -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:574 msgid "errors.member-is-muted" msgstr "bayanan da ka nema imel din su ya suma (bayanan matsaloli)." -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:61 msgid "errors.password-invalid-confirmation" msgstr "tabbata labar tsaro ta yi daidai" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:64 msgid "errors.password-too-short" msgstr "lambar tsaro dole ta kai yawan alamu 8" +#: src/app/main/data/users.cljs:703, src/app/main/ui/auth/login.cljs:97, src/app/main/ui/auth/login.cljs:105 msgid "errors.profile-blocked" msgstr "bayanan a rufe suke" -#: src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/settings/change_email.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/auth/recovery_request.cljs:60, src/app/main/ui/dashboard/team.cljs:164, src/app/main/ui/dashboard/team.cljs:570, src/app/main/ui/settings/change_email.cljs:50 msgid "errors.profile-is-muted" msgstr "bayananka su na da imel maras motsi (baiyana matsaloli)." -#: src/app/main/ui/auth/register.cljs +#: src/app/main/data/users.cljs:701, src/app/main/ui/auth/register.cljs:60 msgid "errors.registration-disabled" msgstr "rigitar ba ta yi ba." +#: src/app/main/ui/dashboard/sidebar.cljs:365, src/app/main/ui/dashboard/team.cljs:359 msgid "errors.team-leave.insufficient-members" msgstr "ba sauran masu fita daga tawaga, ba bu tabbacin gogewa." +#: src/app/main/ui/dashboard/sidebar.cljs:368, src/app/main/ui/dashboard/team.cljs:362 msgid "errors.team-leave.member-does-not-exists" msgstr "mamban da ka ke son sanyawa ba ya a ciki." +#: src/app/main/ui/dashboard/sidebar.cljs:371, src/app/main/ui/dashboard/team.cljs:365 msgid "errors.team-leave.owner-cant-leave" msgstr "mai abu ba ya barin tawaga, dole adubi matsayin mai abu." -#: src/app/main/data/media.cljs, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs +#: src/app/main/data/media.cljs:71 msgid "errors.unexpected-error" msgstr "afkuwar kuskuren da ba a zata ba." -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:60 msgid "errors.unexpected-token" msgstr "tukuicin da ba a san da shi ba" +#: src/app/main/ui/dashboard/team.cljs:796 msgid "errors.webhooks.connection" msgstr "hadin bai yi ba, ba a iya samun URL" +#: src/app/main/ui/dashboard/team.cljs:790 msgid "errors.webhooks.invalid-uri" msgstr "URL bai gyaru ba." -#, fuzzy +#: src/app/main/ui/dashboard/team.cljs:949 msgid "errors.webhooks.last-delivery" msgstr "saqon qarshe bai je ba." +#: src/app/main/ui/dashboard/team.cljs:792, src/app/main/ui/dashboard/team.cljs:952 msgid "errors.webhooks.ssl-validation" msgstr "kuskure kan farfaxo da SSL." +#: src/app/main/ui/dashboard/team.cljs:794 msgid "errors.webhooks.timeout" msgstr "dakatarwa" +#: src/app/main/ui/dashboard/team.cljs:788 msgid "errors.webhooks.unexpected" msgstr "matsalar da ba zata ba lokacin farfaxowa" +#: src/app/main/ui/dashboard/team.cljs:798, src/app/main/ui/dashboard/team.cljs:955 msgid "errors.webhooks.unexpected-status" msgstr "matsayin da ba zato %s" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:109, src/app/main/ui/auth/login.cljs:113 msgid "errors.wrong-credentials" msgstr "kuskuren imel ko lambar tsaro." -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:25 msgid "errors.wrong-old-password" msgstr "tsohuwar lambar tsaro ba daidai ba ce" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:77 msgid "feedback.description" msgstr "bayani" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:95 msgid "feedback.discourse-go-to" msgstr "je ka taskar fenfot" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:89 msgid "feedback.discourse-subtitle1" msgstr "" "mun yi farin ciki da samunka a nan. idan ka na da buqatar taimako sai ka " "tuntuvi na gaba da kai matsayi." -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:88 msgid "feedback.discourse-title" msgstr "dangin fenfot" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:72 msgid "feedback.subject" msgstr "shugabanci" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:69 msgid "feedback.subtitle" msgstr "" "bayyana dalilin imel dinka, faiyace idan akwai matsala, an shawarwari ko " "hasashe. tawaga ko mamba za a kula da kai." -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:68 msgid "feedback.title" msgstr "imel" -#: src/app/main/ui/settings/feedback.cljs -#, fuzzy +#: src/app/main/ui/settings/feedback.cljs:105 msgid "feedback.twitter-go-to" msgstr "je ka tiwita" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:99 msgid "feedback.twitter-subtitle1" msgstr "tambayoyin da ke buqatar amsa." -#: src/app/main/ui/settings/feedback.cljs -#, fuzzy +#: src/app/main/ui/settings/feedback.cljs:98 msgid "feedback.twitter-title" msgstr "wurin karvar qorafin tiwita" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:30 msgid "generic.error" msgstr "afkuwar matsala" -#: src/app/main/ui/inspect/attributes/blur.cljs +#: src/app/main/ui/viewer/inspect/attributes/blur.cljs:26 msgid "inspect.attributes.blur" msgstr "xige-xige" -#: src/app/main/ui/inspect/attributes/blur.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:115 msgid "inspect.attributes.blur.value" msgstr "muhimmanci" -#: src/app/main/ui/inspect/attributes/common.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:112 msgid "inspect.attributes.color.hex" msgstr "HEX" -#: src/app/main/ui/inspect/attributes/common.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:114 msgid "inspect.attributes.color.hsla" msgstr "HSLA" -#: src/app/main/ui/inspect/attributes/common.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:113 msgid "inspect.attributes.color.rgba" msgstr "RGBA" -#: src/app/main/ui/inspect/attributes/fill.cljs +#: src/app/main/ui/viewer/inspect/attributes/fill.cljs:57 msgid "inspect.attributes.fill" msgstr "cika" -#: src/app/main/ui/inspect/attributes/image.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:99, src/app/main/ui/viewer/inspect/attributes/image.cljs:51 msgid "inspect.attributes.image.download" msgstr "sauke hanyar hoto" -#: src/app/main/ui/inspect/attributes/image.cljs +#: src/app/main/ui/viewer/inspect/attributes/image.cljs:39 msgid "inspect.attributes.image.height" msgstr "tsawo" -#: src/app/main/ui/inspect/attributes/image.cljs +#: src/app/main/ui/viewer/inspect/attributes/image.cljs:32 msgid "inspect.attributes.image.width" msgstr "faxi" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout" msgstr "shiri" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.height" msgstr "tsawo" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.left" msgstr "hagu" #: src/app/main/ui/inspect/attributes/layout.cljs, src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.radius" msgstr "tsakiya" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.rotation" msgstr "jujjuyawa" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.top" msgstr "sama" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.width" msgstr "fadi" -#: src/app/main/ui/inspect/attributes/shadow.cljs +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:57 msgid "inspect.attributes.shadow" msgstr "inuwa" -#: src/app/main/ui/inspect/attributes/layout.cljs +#: src/app/main/ui/viewer/inspect/attributes/geometry.cljs:40 msgid "inspect.attributes.size" msgstr "wurin daxa girma" -#: src/app/main/ui/inspect/attributes/stroke.cljs +#: src/app/main/ui/viewer/inspect/attributes/stroke.cljs:52 msgid "inspect.attributes.stroke" msgstr "yankewa" -#, permanent +#, permanent, unused msgid "inspect.attributes.stroke.alignment.center" msgstr "tsakiya" -#, permanent +#, permanent, unused msgid "inspect.attributes.stroke.alignment.inner" msgstr "daga ciki" -#, permanent +#, permanent, unused msgid "inspect.attributes.stroke.alignment.outer" msgstr "daga waje" +#, unused msgid "inspect.attributes.stroke.style.dotted" msgstr "xige-xige" +#, unused msgid "inspect.attributes.stroke.style.mixed" msgstr "gauraya" +#, unused msgid "inspect.attributes.stroke.style.none" msgstr "babu" +#, unused msgid "inspect.attributes.stroke.style.solid" msgstr "tauri" #: src/app/main/ui/inspect/attributes/stroke.cljs +#, unused msgid "inspect.attributes.stroke.width" msgstr "fadi" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:81, src/app/main/ui/viewer/inspect/attributes/text.cljs:194 msgid "inspect.attributes.typography" msgstr "tsara rubutu" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:89 msgid "inspect.attributes.typography.font-family" msgstr "gidan salo" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:107 msgid "inspect.attributes.typography.font-size" msgstr "girman salo" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:98 msgid "inspect.attributes.typography.font-style" msgstr "tsarin salo" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:116 msgid "inspect.attributes.typography.font-weight" msgstr "kaurin salon" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:134 msgid "inspect.attributes.typography.letter-spacing" msgstr "tazarar harafi" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:125 msgid "inspect.attributes.typography.line-height" msgstr "tsawon layi" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:143 msgid "inspect.attributes.typography.text-decoration" msgstr "kwalliyar rubutu" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:145 msgid "inspect.attributes.typography.text-decoration.none" msgstr "babu" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:146 msgid "inspect.attributes.typography.text-decoration.strikethrough" msgstr "zana layi tsakiyar rubutu" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:147 msgid "inspect.attributes.typography.text-decoration.underline" msgstr "jan layi" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:156 msgid "inspect.attributes.typography.text-transform" msgstr "masarrafin rubu,manya ko qanana" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:158 msgid "inspect.attributes.typography.text-transform.lowercase" msgstr "qananan baqaqe" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:159 msgid "inspect.attributes.typography.text-transform.none" msgstr "babu" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:160 msgid "inspect.attributes.typography.text-transform.titlecase" msgstr "yadda ake rubuta batu" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:161 msgid "inspect.attributes.typography.text-transform.uppercase" msgstr "manyan baqaqe" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:140 msgid "inspect.empty.help" msgstr "domin neman qarin bayani game da fenfot a tuntubi sashen agaji" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:143 msgid "inspect.empty.more-info" msgstr "qarin bayani a fagen lura" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:135 msgid "inspect.empty.select" msgstr "zabar zubi, hukumar masu sa ido akan bangarorinsu da lambobinsu" -#: src/app/main/ui/inspect/right_sidebar.cljs +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:125 msgid "inspect.tabs.code" msgstr "lamba" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:98 msgid "inspect.tabs.code.selected.circle" msgstr "da'ira" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:99 msgid "inspect.tabs.code.selected.component" msgstr "bangare" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:100 msgid "inspect.tabs.code.selected.curve" msgstr "lankwasa" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:101 msgid "inspect.tabs.code.selected.frame" msgstr "hukuma" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:102 msgid "inspect.tabs.code.selected.group" msgstr "qungiya" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:103 msgid "inspect.tabs.code.selected.image" msgstr "hoto" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:104 msgid "inspect.tabs.code.selected.mask" msgstr "marfi" -#: src/app/main/ui/inspect/right_sidebar.cljs +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:93 msgid "inspect.tabs.code.selected.multiple" msgstr "%s zavavve" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:105 msgid "inspect.tabs.code.selected.path" msgstr "hanya" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:106 msgid "inspect.tabs.code.selected.rect" msgstr "rektangul" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:107 msgid "inspect.tabs.code.selected.svg-raw" msgstr "SVG" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:108 msgid "inspect.tabs.code.selected.text" msgstr "rubutu" -#: src/app/main/ui/inspect/right_sidebar.cljs +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:115 msgid "inspect.tabs.info" msgstr "bayani" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:158 msgid "label.shortcuts" msgstr "yanke" +#: src/app/main/ui/dashboard/import.cljs:527 msgid "labels.accept" msgstr "karva" -#: src/app/main/ui/settings/sidebar.cljs +#: src/app/main/ui/settings/sidebar.cljs:100 msgid "labels.access-tokens" msgstr "lambobi masu xauke da bayani" +#: src/app/main/ui/dashboard/team.cljs:968 msgid "labels.active" msgstr "mai amfani" +#: src/app/main/ui/dashboard/fonts.cljs:175 msgid "labels.add-custom-font" msgstr "inganta font" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:120, src/app/main/ui/dashboard/team.cljs:276, src/app/main/ui/dashboard/team.cljs:519, src/app/main/ui/dashboard/team.cljs:549, src/app/main/ui/onboarding/team_choice.cljs:67 msgid "labels.admin" msgstr "shugaba" +#: src/app/main/ui/onboarding/questions.cljs:174 +msgid "labels.adobe-xd" +msgstr "Adobe XD" + #: src/app/main/ui/workspace/comments.cljs +#, unused msgid "labels.all" msgstr "duk" +#: src/app/main/ui/auth.cljs:37 msgid "labels.and" msgstr "da" +#: src/app/main/ui/onboarding/team_choice.cljs:162 msgid "labels.back" msgstr "baya" -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:59 msgid "labels.bad-gateway.desc-message" msgstr "" "ka jinkirta kaxan sannan ka qara gwadawa; mu na aiki daidai domin tattala " "aikinmu." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:58 msgid "labels.bad-gateway.main-message" msgstr "akwai matsala" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/data/common.cljs:112, src/app/main/ui/dashboard/change_owner.cljs:69, src/app/main/ui/dashboard/import.cljs:514, src/app/main/ui/dashboard/team.cljs:868, src/app/main/ui/delete_shared.cljs:35, src/app/main/ui/export.cljs:164, src/app/main/ui/export.cljs:460, src/app/main/ui/settings/access_tokens.cljs:188, src/app/main/ui/viewer/share_link.cljs:203, src/app/main/ui/workspace/sidebar/assets/groups.cljs:149 msgid "labels.cancel" msgstr "sokewa" +#: src/app/main/ui/onboarding/questions.cljs:176 +msgid "labels.canva" +msgstr "Canva" + +#: src/app/main/ui/dashboard/projects.cljs:93, src/app/main/ui/export.cljs:478, src/app/main/ui/settings/access_tokens.cljs:183, src/app/main/ui/viewer/login.cljs:77, src/app/main/ui/viewer/share_link.cljs:174, src/app/main/ui/workspace/libraries.cljs:522 msgid "labels.close" msgstr "rufewa" -#: src/app/main/ui/dashboard/comments.cljs +#: src/app/main/ui/dashboard/comments.cljs:104, src/app/main/ui/viewer/comments.cljs:70, src/app/main/ui/workspace/comments.cljs:126 msgid "labels.comments" msgstr "yabo" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:985, src/app/main/ui/workspace/main_menu.cljs:110 msgid "labels.community" msgstr "matattara" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:103 msgid "labels.confirm-password" msgstr "tabbatar da lambar tsaro" +#: src/app/main/ui/dashboard/import.cljs:520, src/app/main/ui/export.cljs:465, src/app/main/ui/onboarding/newsletter.cljs:101 msgid "labels.continue" msgstr "ci gaba" +#, unused msgid "labels.continue-with" msgstr "ci gaba da" +#: src/app/main/ui/viewer/login.cljs:75 msgid "labels.continue-with-penpot" msgstr "za ka iya ci gaba a idanka na fenfot" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:642 msgid "labels.copy-invitation-link" msgstr "kwafar hanya" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:157, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:190 msgid "labels.create" msgstr "yi" -#: src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/dashboard/team_form.cljs +#: src/app/main/ui/dashboard/team_form.cljs:101, src/app/main/ui/dashboard/team_form.cljs:121 msgid "labels.create-team" msgstr "yi sabuwar tawaga" -#: src/app/main/ui/dashboard/team_form.cljs +#: src/app/main/ui/dashboard/team_form.cljs:113 msgid "labels.create-team.placeholder" msgstr "shigar da sabon sunan tawaga" +#, unused msgid "labels.custom-fonts" msgstr "kwalliya da fenfot" -#: src/app/main/ui/settings/sidebar.cljs +#: src/app/main/ui/settings/sidebar.cljs:73 msgid "labels.dashboard" msgstr "dashbod" -#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:306, src/app/main/ui/dashboard/fonts.cljs:255, src/app/main/ui/dashboard/fonts.cljs:332, src/app/main/ui/dashboard/fonts.cljs:346, src/app/main/ui/dashboard/project_menu.cljs:115, src/app/main/ui/dashboard/team.cljs:904, src/app/main/ui/settings/access_tokens.cljs:209, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:209 msgid "labels.delete" msgstr "goge" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:357 msgid "labels.delete-comment" msgstr "goge yabo" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:354 msgid "labels.delete-comment-thread" msgstr "goge rubutu" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:648 msgid "labels.delete-invitation" msgstr "goge gayyata" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:262 msgid "labels.delete-multi-files" msgstr "goge %s kundaye" +#: src/app/main/ui/onboarding/questions.cljs:250 +msgid "labels.developer" +msgstr "ma su qirqira" + +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:199 msgid "labels.discard" msgstr "vatar" -#: src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/files.cljs, src/app/main/ui/dashboard/files.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:28, src/app/main/ui/dashboard/files.cljs:72, src/app/main/ui/dashboard/files.cljs:156, src/app/main/ui/dashboard/projects.cljs:220, src/app/main/ui/dashboard/projects.cljs:224, src/app/main/ui/dashboard/sidebar.cljs:791 msgid "labels.drafts" msgstr "adana" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:350, src/app/main/ui/dashboard/fonts.cljs:252, src/app/main/ui/dashboard/team.cljs:902, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:205 msgid "labels.edit" msgstr "gyara" +#, unused msgid "labels.edit-file" msgstr "gyara kundi" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:118, src/app/main/ui/dashboard/team.cljs:279, src/app/main/ui/dashboard/team.cljs:520, src/app/main/ui/dashboard/team.cljs:553, src/app/main/ui/onboarding/team_choice.cljs:66 msgid "labels.editor" msgstr "maigyara" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:661 msgid "labels.expired-invitation" msgstr "daina aiki" +#: src/app/main/ui/export.cljs:173 msgid "labels.export" msgstr "fitarwa" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:51 msgid "labels.feedback-disabled" msgstr "kasa samun bayani" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:42 msgid "labels.feedback-sent" msgstr "aika bayani" +#: src/app/main/ui/onboarding/questions.cljs:170 +msgid "labels.figma" +msgstr "Figma" + +#: src/app/main/ui/dashboard/fonts.cljs:412 msgid "labels.font-family" msgstr "ire-iren font" +#, unused msgid "labels.font-providers" msgstr "ma su fenfot" +#: src/app/main/ui/dashboard/fonts.cljs:413 msgid "labels.font-variants" msgstr "salo" +#: src/app/main/ui/dashboard/fonts.cljs:52, src/app/main/ui/dashboard/sidebar.cljs:811 msgid "labels.fonts" msgstr "Font" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/onboarding/questions.cljs:263 +msgid "labels.founder" +msgstr "mawallafi/VP" + +#: src/app/main/ui/onboarding/questions.cljs:262 +msgid "labels.freelancer" +msgstr "ni mai zaman kansa ne" + +#: src/app/main/ui/dashboard/sidebar.cljs:1015, src/app/main/ui/workspace/main_menu.cljs:142 msgid "labels.github-repo" msgstr "taskar rubuce-rubuce" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:1032, src/app/main/ui/settings/sidebar.cljs:113, src/app/main/ui/workspace/main_menu.cljs:171 msgid "labels.give-feedback" msgstr "bada bayani" +#: src/app/main/ui/auth/recovery_request.cljs:110, src/app/main/ui/auth/register.cljs:285, src/app/main/ui/viewer/login.cljs:117 msgid "labels.go-back" msgstr "koma baya" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:978, src/app/main/ui/workspace/main_menu.cljs:102 msgid "labels.help-center" msgstr "sashen taimako" -#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/comments.cljs:103, src/app/main/ui/workspace/comments.cljs:67 msgid "labels.hide-resolved-comments" msgstr "voye saqon da aka buxa" +#: src/app/main/ui/dashboard/team.cljs:969 msgid "labels.inactive" msgstr "maras amfani" +#: src/app/main/ui/dashboard/fonts.cljs:410 msgid "labels.installed-fonts" msgstr "sanya fenfot" -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:144 msgid "labels.internal-error.desc-message" msgstr "" "an sami matsala. sake gwadawa idan matsalar ba ta kauce ba, tuntubi sashen " "taimako." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:143 msgid "labels.internal-error.main-message" msgstr "kuskuren ciki" -#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/onboarding/questions.cljs:178 +msgid "labels.invision" +msgstr "teburin aiki" + +#: src/app/main/ui/dashboard/sidebar.cljs:516, src/app/main/ui/dashboard/team.cljs:89, src/app/main/ui/dashboard/team.cljs:97, src/app/main/ui/dashboard/team.cljs:708 msgid "labels.invitations" msgstr "gayyata" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:51 msgid "labels.language" msgstr "harshe" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:1008, src/app/main/ui/workspace/main_menu.cljs:134 msgid "labels.libraries-and-templates" msgstr "taskoki & allunan talla" +#: src/app/main/ui/viewer/header.cljs:203 msgid "labels.log-or-sign" msgstr "yi ko shiga" -#: src/app/main/ui/settings.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:1040 msgid "labels.logout" msgstr "fita" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/onboarding/questions.cljs:253 +msgid "labels.marketing" +msgstr "kasuwanci" + +#: src/app/main/ui/dashboard/team.cljs:468 msgid "labels.member" msgstr "mamba" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:510, src/app/main/ui/dashboard/team.cljs:87, src/app/main/ui/dashboard/team.cljs:95 msgid "labels.members" msgstr "mambobi" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:96 msgid "labels.new-password" msgstr "sabuwar lambar tsaro" -#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/dashboard/comments.cljs +#: src/app/main/ui/dashboard/templates.cljs:269, src/app/main/ui/onboarding/questions.cljs:55 +msgid "labels.next" +msgstr "na gaba" + +#: src/app/main/ui/dashboard/comments.cljs:128, src/app/main/ui/workspace/comments.cljs:161 msgid "labels.no-comments-available" msgstr "an dakatar da kai duka! Alamar sabon sharhi za ta fito nan." -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:694 msgid "labels.no-invitations" msgstr "ba saqon da ba a buxa ba." -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:696 #, markdown msgid "labels.no-invitations-hint" msgstr "danna **gayyato mutane** wurin da ake nemo mutane a wannan tawaga." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:50 msgid "labels.not-found.desc-message" msgstr "babu wannan fagen, ko ba ka da izinin shiga." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:49 msgid "labels.not-found.main-message" msgstr "alama!" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/projects.cljs:239, src/app/main/ui/dashboard/team.cljs:1095 msgid "labels.num-of-files" msgid_plural "labels.num-of-files" msgstr[0] "kundi 1" msgstr[1] "kundaye %s" +#: src/app/main/ui/viewer/thumbnails.cljs:80 msgid "labels.num-of-frames" msgid_plural "labels.num-of-frames" msgstr[0] "allo 1" msgstr[1] "alluna %s" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1090 msgid "labels.num-of-projects" msgid_plural "labels.num-of-projects" msgstr[0] "aiki" msgstr[1] "aiyuka %s" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:89 msgid "labels.old-password" msgstr "tsohuwar lambar tsaro" #: src/app/main/ui/workspace/comments.cljs +#, unused msgid "labels.only-yours" msgstr "naka kawai" +#, unused msgid "labels.or" msgstr "ko" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/onboarding/questions.cljs:145, src/app/main/ui/onboarding/questions.cljs:214, src/app/main/ui/onboarding/questions.cljs:303, src/app/main/ui/onboarding/questions.cljs:316, src/app/main/ui/onboarding/questions.cljs:389, src/app/main/ui/onboarding/questions.cljs:447 +msgid "labels.other" +msgstr "idan akwai qari (bayyana)" + +#: src/app/main/ui/dashboard/team.cljs:286, src/app/main/ui/dashboard/team.cljs:518, src/app/main/ui/dashboard/team.cljs:1076 msgid "labels.owner" msgstr "mai" -#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/settings/sidebar.cljs:87 msgid "labels.password" msgstr "lambar tsaro" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:662 msgid "labels.pending-invitation" msgstr "tukuna" -#: src/app/main/ui/settings/sidebar.cljs +#: src/app/main/ui/onboarding/questions.cljs:51 +msgid "labels.previous" +msgstr "can baya" + +#: src/app/main/ui/onboarding/questions.cljs:254 +msgid "labels.product-management" +msgstr "shugaban aiki" + +#: src/app/main/ui/settings/profile.cljs:118, src/app/main/ui/settings/sidebar.cljs:82 msgid "labels.profile" msgstr "kundi" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:784 msgid "labels.projects" msgstr "aiyuka" -#: src/app/main/ui/settings/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:998, src/app/main/ui/settings/sidebar.cljs:106, src/app/main/ui/workspace/main_menu.cljs:126 msgid "labels.release-notes" msgstr "bayar da bayani" #: src/app/main/ui/workspace.cljs +#, unused msgid "labels.reload-file" msgstr "qara dora kundi" #: src/app/main/ui/workspace/libraries.cljs, src/app/main/ui/dashboard/team.cljs +#, unused msgid "labels.remove" msgstr "cire" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:316 msgid "labels.remove-member" msgstr "cire mamba" -#: src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:271, src/app/main/ui/dashboard/project_menu.cljs:85, src/app/main/ui/dashboard/sidebar.cljs:539, src/app/main/ui/workspace/sidebar/assets/groups.cljs:157 msgid "labels.rename" msgstr "sake suna" -#: src/app/main/ui/dashboard/team_form.cljs +#: src/app/main/ui/dashboard/team_form.cljs:99 msgid "labels.rename-team" msgstr "sake suna tawaga" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:645 msgid "labels.resend-invitation" msgstr "sake aika saqon gayyata" -#: src/app/main/ui/static.cljs, src/app/main/ui/static.cljs, src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:61, src/app/main/ui/static.cljs:70, src/app/main/ui/static.cljs:148 msgid "labels.retry" msgstr "sake gwadawa" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:469, src/app/main/ui/dashboard/team.cljs:709 msgid "labels.role" msgstr "matsayi" +#: src/app/main/ui/dashboard/fonts.cljs:380, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:191 msgid "labels.save" msgstr "ajiye" +#: src/app/main/ui/dashboard/fonts.cljs:415 msgid "labels.search-font" msgstr "neman font" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/onboarding/questions.cljs:90, src/app/main/ui/onboarding/questions.cljs:248, src/app/main/ui/onboarding/questions.cljs:259, src/app/main/ui/onboarding/questions.cljs:270 +msgid "labels.select-option" +msgstr "dauki wanda kake so" + +#: src/app/main/ui/settings/feedback.cljs:82 msgid "labels.send" msgstr "aika" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:82 msgid "labels.sending" msgstr "aikawa…" -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:68 msgid "labels.service-unavailable.desc-message" msgstr "mu na cikin kula a tsarinka." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:67 msgid "labels.service-unavailable.main-message" msgstr "ba sabis" -#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:530, src/app/main/ui/dashboard/team.cljs:88, src/app/main/ui/dashboard/team.cljs:102, src/app/main/ui/settings/options.cljs:84, src/app/main/ui/settings/sidebar.cljs:93 msgid "labels.settings" msgstr "gyara" +#, unused msgid "labels.share-prototype" msgstr "tura manhajar rubutu" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:800 msgid "labels.shared-libraries" msgstr "taskoki" -#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/comments.cljs:82, src/app/main/ui/workspace/comments.cljs:55, src/app/main/ui/workspace/comments.cljs:135 msgid "labels.show-all-comments" msgstr "fito da yabo" +#: src/app/main/ui/viewer/comments.cljs:115 msgid "labels.show-comments-list" msgstr "jerin ire-iren yabo" -#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/comments.cljs:91, src/app/main/ui/workspace/comments.cljs:61, src/app/main/ui/workspace/comments.cljs:136 msgid "labels.show-your-comments" msgstr "bayyana na ka ra’ayin" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/onboarding/questions.cljs:172 +msgid "labels.sketch" +msgstr "zana" + +#: src/app/main/ui/onboarding/questions.cljs:56 +msgid "labels.start" +msgstr "fara" + +#: src/app/main/ui/dashboard/team.cljs:710 msgid "labels.status" msgstr "daraja" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/onboarding/questions.cljs:251 +msgid "labels.student-teacher" +msgstr "malami ko dalibi" + +#: src/app/main/ui/dashboard/sidebar.cljs:992, src/app/main/ui/workspace/main_menu.cljs:118 msgid "labels.tutorials" msgstr "koyarwa" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:256 msgid "labels.unpublish-multi-files" msgstr "kundayen da ba a wallafa ba %s" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:103 msgid "labels.update" msgstr "sabunta" -#: src/app/main/ui/dashboard/team_form.cljs +#: src/app/main/ui/dashboard/team_form.cljs:120 msgid "labels.update-team" msgstr "sabunta tawaga" +#: src/app/main/ui/dashboard/fonts.cljs:241 msgid "labels.upload" msgstr "xorawa" +#: src/app/main/ui/dashboard/fonts.cljs:169 msgid "labels.upload-custom-fonts" msgstr "Upload custom fonts" +#: src/app/main/ui/dashboard/fonts.cljs:240 msgid "labels.uploading" msgstr "ana dorawa…" +#: src/app/main/ui/workspace/sidebar/sitemap.cljs:223 msgid "labels.view-only" msgstr "gani kaxai" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:123, src/app/main/ui/dashboard/team.cljs:282, src/app/main/ui/dashboard/team.cljs:521 msgid "labels.viewer" msgstr "ma su kallo" +#: src/app/main/ui/dashboard/sidebar.cljs:523, src/app/main/ui/dashboard/team.cljs:90, src/app/main/ui/dashboard/team.cljs:100, src/app/main/ui/dashboard/team.cljs:880 msgid "labels.webhooks" msgstr "Webhooks" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:194 msgid "labels.write-new-comment" msgstr "rubuta s abon yabo" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/team.cljs:237 msgid "labels.you" msgstr "(kai)" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:968 msgid "labels.your-account" msgstr "fagenka" -#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs +#: src/app/main/data/media.cljs:49, src/app/main/data/workspace/media.cljs:223, src/app/main/data/workspace/media.cljs:453 msgid "media.loading" msgstr "xora hoto …" +#: src/app/main/data/common.cljs:111 msgid "modals.add-shared-confirm-empty.hint" msgstr "" "xakin ba komai. wurin ajiyar tawaga, turken da ka yi za ya yi aiki a sauran " "kundaye. ka tabbata kai ne ka ke son wallafa shi?" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/data/common.cljs:113 msgid "modals.add-shared-confirm.accept" msgstr "qara yin wurin ajiyar tawaga" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/data/common.cljs:111 msgid "modals.add-shared-confirm.hint" msgstr "" "idan ka aje a wurin ajiyar tawaga, turken kundin xakin ajiyar za ya kasance " "za a iya amfani da shi a sauran kundaye." -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/data/common.cljs:110 msgid "modals.add-shared-confirm.message" msgstr "qara “%s” xakin ajiya" -#: src/app/main/ui/workspace/nudge.cljs +#: src/app/main/ui/workspace/nudge.cljs:60 msgid "modals.big-nudge" msgstr "jan hankali" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:127 msgid "modals.change-email.confirm-email" msgstr "tantance sabon imel" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:114 msgid "modals.change-email.info" msgstr "" "za mu aika maka da imel ta wannan imel xin “%s” domin tantance " "shaidarka." -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:119 msgid "modals.change-email.new-email" msgstr "sabon imel" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:136 msgid "modals.change-email.submit" msgstr "sake imel" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:107 msgid "modals.change-email.title" msgstr "sake imel xinka" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:165, src/app/main/ui/settings/access_tokens.cljs:171 msgid "modals.create-access-token.copy-token" msgstr "kwafar kyauta" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:142 msgid "modals.create-access-token.expiration-date.label" msgstr "lokacin daina aiki" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:136 msgid "modals.create-access-token.name.label" msgstr "suna" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:138 msgid "modals.create-access-token.name.placeholder" msgstr "sunan zai iya taimakawa wajen sanin menene alama" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:191 msgid "modals.create-access-token.submit-label" msgstr "yi sabuwar alama" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:123 msgid "modals.create-access-token.title" msgstr "samar da alamar shiga" +#: src/app/main/ui/dashboard/team.cljs:873 msgid "modals.create-webhook.submit-label" msgstr "qirqirar webhook" +#: src/app/main/ui/dashboard/team.cljs:838 msgid "modals.create-webhook.title" msgstr "qirqirar webhook" +#: src/app/main/ui/dashboard/team.cljs:849 msgid "modals.create-webhook.url.label" msgstr "farashin URL" +#: src/app/main/ui/dashboard/team.cljs:850 msgid "modals.create-webhook.url.placeholder" msgstr "https://misali.com/postreceive" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:271 msgid "modals.delete-acces-token.accept" msgstr "goge alama" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:270 msgid "modals.delete-acces-token.message" msgstr "ka tabbata kana son goge wannan alamar?" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:269 msgid "modals.delete-acces-token.title" msgstr "goge alama" -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:59 msgid "modals.delete-account.cancel" msgstr "ajiye asusu da soke shi" -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:64 msgid "modals.delete-account.confirm" msgstr "haka, goge asusu" -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:53 msgid "modals.delete-account.info" msgstr "idan ka cire asusunka za ka iya rasa aikin da ka kammala." -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:46 msgid "modals.delete-account.title" msgstr "ka tabbata ka na son goge asusunka?" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:298 msgid "modals.delete-comment-thread.accept" msgstr "goge fira" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:297 msgid "modals.delete-comment-thread.message" msgstr "ka tabbata ka na son goge fira? duk sharhi a nan za a goge matsaloli." -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:296 msgid "modals.delete-comment-thread.title" msgstr "goge tattaunawa" +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:140 msgid "modals.delete-component-annotation.message" msgstr "ka tabbata kana son goge wannan bayanin?" +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:139 msgid "modals.delete-component-annotation.title" msgstr "goge bayani" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:123 msgid "modals.delete-file-confirm.accept" msgstr "goge kundi" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:122 msgid "modals.delete-file-confirm.message" msgstr "ka tabbata kana son goge wannan kundin?" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:121 msgid "modals.delete-file-confirm.title" msgstr "goge kundi" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:117 msgid "modals.delete-file-multi-confirm.accept" msgstr "goge kundaye" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:116 msgid "modals.delete-file-multi-confirm.message" msgstr "ka tabbata kana son goge %s kundaye?" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:115 msgid "modals.delete-file-multi-confirm.title" msgstr "gogewa %s kundaye" +#: src/app/main/ui/dashboard/fonts.cljs:345 msgid "modals.delete-font-variant.message" msgstr "" "ka tabbata kana son goge wannan salon font din? ba zai xoru ba idan an yi " "amfani da shi a kundi." +#: src/app/main/ui/dashboard/fonts.cljs:344 msgid "modals.delete-font-variant.title" msgstr "goge salon font" +#: src/app/main/ui/dashboard/fonts.cljs:331 msgid "modals.delete-font.message" msgstr "" "ka tabbata kana son goge wannan font xin ? ba zai yi aiki ba idan an yi " "amfani da shi a kundi." +#: src/app/main/ui/dashboard/fonts.cljs:330 msgid "modals.delete-font.title" msgstr "goge font" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs +#: src/app/main/ui/workspace/context_menu.cljs:522, src/app/main/ui/workspace/sidebar/sitemap.cljs:45 msgid "modals.delete-page.body" msgstr "ka tabbata kana son goge wannan shafin?" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs +#: src/app/main/ui/workspace/context_menu.cljs:521, src/app/main/ui/workspace/sidebar/sitemap.cljs:44 msgid "modals.delete-page.title" msgstr "goge shafi" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:69 msgid "modals.delete-project-confirm.accept" msgstr "goge aiki" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:68 msgid "modals.delete-project-confirm.message" msgstr "ka tabbata kana son goge wannan aikin?" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:67 msgid "modals.delete-project-confirm.title" msgstr "goge aikin" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:51 msgid "modals.delete-shared-confirm.accept" msgid_plural "modals.delete-shared-confirm.accept" msgstr[0] "goge kundi" msgstr[1] "goge kundaye" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:55 msgid "modals.delete-shared-confirm.activated.no-files-message" msgid_plural "modals.delete-shared-confirm.activated.no-files-message" msgstr[0] "ba zai yi aiki a kowane kundi ba." msgstr[1] "ba za su yi aiki a kowane kundi ba." -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:57 msgid "modals.delete-shared-confirm.activated.scd-message" msgid_plural "modals.delete-shared-confirm.activated.scd-message" msgstr[0] "za a iya buxe wannan taskirar a nan: " msgstr[1] "za a iya buxe taskirorin nan a nan: " -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:46 msgid "modals.delete-shared-confirm.message" msgid_plural "modals.delete-shared-confirm.message" msgstr[0] "ka tabbata kana son goge wannan kundin?" msgstr[1] "ka tabbata kana son goge waxannan kundayen?" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:41 msgid "modals.delete-shared-confirm.title" msgid_plural "modals.delete-shared-confirm.title" msgstr[0] "goge kundi" msgstr[1] "goge kundaye" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:435 msgid "modals.delete-team-confirm.accept" msgstr "goge tawaga" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:434 msgid "modals.delete-team-confirm.message" msgstr "" "ka tabbata kana son goge wannan tawagar? Duk aiyukanka na kundayen da suka " "danganci tawagar za su yi gogewar dindindin." -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:433 msgid "modals.delete-team-confirm.title" msgstr "gogewar tawaga" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:427 msgid "modals.delete-team-member-confirm.accept" msgstr "goge memba" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:426 msgid "modals.delete-team-member-confirm.message" msgstr "ka tabbata kana son cire wannan memban a wannan tawaar?" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:425 msgid "modals.delete-team-member-confirm.title" msgstr "cire memban tawaga" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:59 msgid "modals.delete-unpublish-shared-confirm.activated.hint" msgid_plural "modals.delete-unpublish-shared-confirm.activated.hint" msgstr[0] "" @@ -1889,2892 +2124,3205 @@ msgstr[1] "" "duk aikin da aka yi a waxancan kundayen, can za a same su (ba zane da za " "iya tsinkawa)." +#: src/app/main/ui/dashboard/team.cljs:942 msgid "modals.delete-webhook.accept" msgstr "goge webhook" +#: src/app/main/ui/dashboard/team.cljs:941 msgid "modals.delete-webhook.message" msgstr "ka tabbata ka na son goge webhook?" +#: src/app/main/ui/dashboard/team.cljs:940 msgid "modals.delete-webhook.title" msgstr "gogewa webhook" +#: src/app/main/ui/dashboard/team.cljs:872 msgid "modals.edit-webhook.submit-label" msgstr "gyara webhook" +#: src/app/main/ui/dashboard/team.cljs:837 msgid "modals.edit-webhook.title" msgstr "gyara webhook" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:218 msgid "modals.invite-member-confirm.accept" msgstr "aika saqon" +#: src/app/main/ui/dashboard/team.cljs:213, src/app/main/ui/onboarding/team_choice.cljs:156 msgid "modals.invite-member.emails" msgstr "imel, rabawar waqafi" +#: src/app/main/ui/dashboard/team.cljs:197 msgid "modals.invite-member.repeated-invitation" msgstr "" "waxansu imel daga membobin qungiyar na yanzu. ba za a aikawa da gayyatarsu " "ba ." -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:190 msgid "modals.invite-team-member.title" msgstr "gayyato membobi zuwa ga tawaga" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:423, src/app/main/ui/dashboard/team.cljs:393 msgid "modals.leave-and-close-confirm.hint" msgstr "" "ka tabbata memban tawaga kaxai, za ya iya goge tawaga tare da aikinta da " "kundaye." -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:422, src/app/main/ui/dashboard/team.cljs:392 msgid "modals.leave-and-close-confirm.message" msgstr "ka tabbata ka na son fita daga %s tawaga?" +#: src/app/main/ui/dashboard/change_owner.cljs:59 msgid "modals.leave-and-reassign.forbidden" msgstr "" "Webhooks hanyar sanar da manhajoji da addireshi intanet idan wani ya faru a " "Penpot. za a tura maka da saqon talla URLs ka samar da." -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/change_owner.cljs:55 msgid "modals.leave-and-reassign.hint1" msgstr "" "kai ne mai wannan tawagar. zabi wani memba da za ya iya inganta wa mai shi " "kafin ka fita." -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/change_owner.cljs:78 msgid "modals.leave-and-reassign.promote-and-leave" msgstr "inganta sannan ka bari" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/change_owner.cljs:34 msgid "modals.leave-and-reassign.select-member-to-promote" msgstr "zavi memba domin havakawa" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/change_owner.cljs:49 msgid "modals.leave-and-reassign.title" msgstr "kafin ka fita" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:402, src/app/main/ui/dashboard/sidebar.cljs:424, src/app/main/ui/dashboard/team.cljs:394, src/app/main/ui/dashboard/team.cljs:416 msgid "modals.leave-confirm.accept" msgstr "barin tawaga" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:401, src/app/main/ui/dashboard/team.cljs:415 msgid "modals.leave-confirm.message" msgstr "ka tabbata ka na son barin wannan tawagar?" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:400, src/app/main/ui/dashboard/sidebar.cljs:421, src/app/main/ui/dashboard/team.cljs:391, src/app/main/ui/dashboard/team.cljs:414 msgid "modals.leave-confirm.title" msgstr "barin tawaga" -#: src/app/main/ui/workspace/nudge.cljs +#: src/app/main/ui/workspace/main_menu.cljs:266, src/app/main/ui/workspace/nudge.cljs:47 msgid "modals.nudge-title" msgstr "adadin jan hankali" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:340 msgid "modals.promote-owner-confirm.accept" msgstr "canza wurin mallaka" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:339 msgid "modals.promote-owner-confirm.hint" msgstr "" "idan ka canza wurin mallaka, ba za ka iya sauya matsayin shugaba ba, " "gazawar wasu dokokin wannan tawaagar. " -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:338 msgid "modals.promote-owner-confirm.message" msgstr "kai ke da wannan tawagar yanzu. ka tabbata kana son yin %s sabon mai tawaga?" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:337 msgid "modals.promote-owner-confirm.title" msgstr "mallakar tawaga" +#: src/app/main/ui/workspace/libraries.cljs:188 msgid "modals.publish-empty-library.accept" msgstr "wallafa" +#: src/app/main/ui/workspace/libraries.cljs:187 msgid "modals.publish-empty-library.message" msgstr "ba komai a taskarka. ka na son wallafa ta?" +#: src/app/main/ui/workspace/libraries.cljs:186 msgid "modals.publish-empty-library.title" msgstr "wallafa taska maras komai" #: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "modals.remove-shared-confirm.accept" msgstr "cire taskar shiye-shirye" #: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "modals.remove-shared-confirm.hint" msgstr "" "idan ba ka cire taskar shirye-shirye ba, kundin taskar na wannan kundin zai " "tsaya kasancewar za ka iya amfani da shi a cikin kundayenka." #: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "modals.remove-shared-confirm.message" msgstr "cire “%s” a taskar shirye-shirye" -#: src/app/main/ui/workspace/nudge.cljs +#: src/app/main/ui/workspace/nudge.cljs:53 msgid "modals.small-nudge" msgstr "qaramin jan hankali" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:52 msgid "modals.unpublish-shared-confirm.accept" msgid_plural "modals.unpublish-shared-confirm.accept" msgstr[0] "maras wallafa" msgstr[1] "maras wallafa" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:47 msgid "modals.unpublish-shared-confirm.message" msgid_plural "modals.unpublish-shared-confirm.message" msgstr[0] "ka tabbata ka na son rufe taskar nan?" msgstr[1] "ka tabbata ka na son rufe taskokin nan?" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:42 msgid "modals.unpublish-shared-confirm.title" msgid_plural "modals.unpublish-shared-confirm.title" msgstr[0] "rufe taska" msgstr[1] "rufe taskoki" #: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#, unused msgid "modals.update-remote-component-in-bulk.hint" msgstr "" "ka kusa sabunta taskar ajiyar shir-shirye. zai iya shafar sauran kundayen " "da ke amfani da ita." -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:380 msgid "modals.update-remote-component.accept" msgstr "sabunta" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:379 msgid "modals.update-remote-component.cancel" msgstr "soke" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:378 msgid "modals.update-remote-component.hint" msgstr "" "ka kusa sabunta sashe a babbar taska. wannan za ya iya aiki a sauran " "kundayen da ke amfani da ita." -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:377 msgid "modals.update-remote-component.message" msgstr "sabunta sashe a babbar taska" -#: src/app/main/data/common.cljs +#: src/app/main/data/common.cljs:71 msgid "notifications.by-code.upgrade-version" msgstr "akwai sabon yayi, fatan za a sabunta fage" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:154, src/app/main/ui/dashboard/team.cljs:595 msgid "notifications.invitation-email-sent" msgstr "an aika da saqon" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:616 msgid "notifications.invitation-link-copied" msgstr "kwafar hanyar gayya" -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:24 msgid "notifications.profile-deletion-not-allowed" msgstr "ba za ka iya goge kundin ba. ka jira umarnin tawaga ka fin ka ci gaba." -#: src/app/main/ui/settings/profile.cljs, src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:29, src/app/main/ui/settings/profile.cljs:35 msgid "notifications.profile-saved" msgstr "an ajiye bayanai!" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:63 msgid "notifications.validation-email-sent" msgstr "an aika da imel din tantancewa %s. bincika imel xinka!" +#, unused msgid "onboarding-v2.before-start.desc1" msgstr "" "ya kamata kasan akwai kayayyaki da yawa da za su iya taimaka maka ka sami " "damar fara aiki da fenfot, kamar jagoran mai amfani tasharmu ta youtub." +#, unused msgid "onboarding-v2.before-start.desc2" msgstr "" "cikakken bayanin yadda za a yi amfani da fenfot. daga rubutu zuwa tsara ko " "rarraba iri." +#, unused msgid "onboarding-v2.before-start.desc2.title" msgstr "xanjagora" +#, unused msgid "onboarding-v2.before-start.desc3" msgstr "za ka iya kallon koyarwarmu da mutanenmu ke yi." +#, unused msgid "onboarding-v2.before-start.desc3.title" msgstr "koyarwa ta hoto mai motsi" +#, unused msgid "onboarding-v2.before-start.title" msgstr "kafin ka fara" +#: src/app/main/ui/onboarding/newsletter.cljs:63 msgid "onboarding-v2.newsletter.desc" msgstr "" "domin jin daxin fenfot , sai ka biya kuxi domin labarai da ci gaban da ake " "samu." +#: src/app/main/ui/onboarding/newsletter.cljs:83 msgid "onboarding-v2.newsletter.news" msgstr "aiko man da bayanin fenfot (rubutun blog, bidiyon koyarwa, kallo...)." +#: src/app/main/ui/onboarding/newsletter.cljs:91 msgid "onboarding-v2.newsletter.privacy1" msgstr "mu na kula da sirri, a nan za ka karanta na mu " +#: src/app/main/ui/onboarding/newsletter.cljs:97 msgid "onboarding-v2.newsletter.privacy2" msgstr "" "za mu aika maka da imel mai amfani. za ka iya biya a kowane lokaci za ka " "iya ta kowace hanyar biyanmu." +#: src/app/main/ui/onboarding/newsletter.cljs:71 msgid "onboarding-v2.newsletter.updates" msgstr "aiko man da sabbin abubuwan da aka yi (sabbib fasali, fitowa, gyara...)." +#, unused msgid "onboarding-v2.welcome.desc1" msgstr "" "fenfot ne ke yin kelaidos kamar yadda mutane ke yi, mutane na taimakon " "junansu. kowa za ya iya hada hannu da:" +#, unused msgid "onboarding-v2.welcome.desc2" msgstr "" "wurin da kowa zai iya koyo, fahimtar ta juna a kan fenfot, kasancewarta " "manyan tawagar fenfot da sauran mutane." +#, unused msgid "onboarding-v2.welcome.desc2.title" msgstr "hulxa da kai cikin mutane" +#, unused msgid "onboarding-v2.welcome.desc3" msgstr "" "wurin da za ka san yadda za ka hada-hannu da fassara, neman fasali, manyan " "gudunmawa, magance matsala…" +#, unused msgid "onboarding-v2.welcome.desc3.title" msgstr "gudunmawar jagora" +#: src/app/main/ui/onboarding/team_choice.cljs:31 msgid "onboarding-v2.welcome.title" msgstr "barka da zuwa fenfot!" +#: src/app/main/ui/onboarding/team_choice.cljs:215 msgid "onboarding.choice.team-up.create-team-desc" msgstr "bayan ka yi wa tawagarka suna, za ka iya gaiyato mutane ku hadu." +#: src/app/main/ui/onboarding/team_choice.cljs:224 msgid "onboarding.choice.team-up.create-team-placeholder" msgstr "sanya sunan tawaga" +#: src/app/main/ui/dashboard/projects.cljs:89, src/app/main/ui/onboarding/team_choice.cljs:140 msgid "onboarding.choice.team-up.invite-members" msgstr "gayyato mambobi" +#: src/app/main/ui/onboarding/team_choice.cljs:141 msgid "onboarding.choice.team-up.invite-members-info" msgstr "" "ka tuna da kowa. masu qirqira, masu tsarawa, shuwagabanniS... daban-daban " "ya qara :)" +#: src/app/main/ui/dashboard/team.cljs:202, src/app/main/ui/onboarding/team_choice.cljs:146 msgid "onboarding.choice.team-up.roles" msgstr "gayyata tare da bayar da matsayi:" +#, unused msgid "onboarding.newsletter.accept" msgstr "haka, za a biya" +#: src/app/main/ui/onboarding/newsletter.cljs:40 msgid "onboarding.newsletter.acceptance-message" msgstr "" "an aika maka da saqon buqatar biya, za mu aika maka da saqon imel tabbatar " "da shi." +#: src/app/main/ui/onboarding/newsletter.cljs:95 msgid "onboarding.newsletter.policy" msgstr "dokoki." +#: src/app/main/ui/onboarding/newsletter.cljs:60 msgid "onboarding.newsletter.title" msgstr "ka buqatar labaran fenfot?" +#: src/app/main/ui/onboarding/questions.cljs:118 +msgid "onboarding.questions.lets-get-started" +msgstr "za mu fara!" + +#: src/app/main/ui/onboarding/questions.cljs:307 +msgid "onboarding.questions.step3.question2" +msgstr "mi ne ne matsayinka?" + +#: src/app/main/ui/onboarding/questions.cljs:320 +msgid "onboarding.questions.step3.question3" +msgstr "bayyana yawan tawagarka?" + +#: src/app/main/ui/onboarding/questions.cljs:273 +msgid "onboarding.questions.team-size.11-30" +msgstr "11-30" + +#: src/app/main/ui/onboarding/questions.cljs:274 +msgid "onboarding.questions.team-size.2-10" +msgstr "2-10" + +#: src/app/main/ui/onboarding/questions.cljs:272 +msgid "onboarding.questions.team-size.31-50" +msgstr "31-50" + +#: src/app/main/ui/onboarding/questions.cljs:271 +msgid "onboarding.questions.team-size.more-than-50" +msgstr "fiye da 50" + +#: src/app/main/ui/onboarding/questions.cljs:276 +msgid "onboarding.questions.team-size.personal-project" +msgstr "ina aikin kaina" + +#: src/app/main/ui/onboarding/team_choice.cljs:213 msgid "onboarding.team-modal.create-team" msgstr "yin tawaga" +#: src/app/main/ui/onboarding/team_choice.cljs:35 msgid "onboarding.team-modal.create-team-desc" msgstr "" "tawaga na ba ka damar haduwa da masu amfani da fenfot domin yi aiki daya " "akan kundaye." +#: src/app/main/ui/onboarding/team_choice.cljs:40 msgid "onboarding.team-modal.create-team-feature-1" msgstr "aiyuka da kundaye da yawa" +#: src/app/main/ui/onboarding/team_choice.cljs:44 msgid "onboarding.team-modal.create-team-feature-2" msgstr "ma su yin shiri dayawa lokaci xaya" +#: src/app/main/ui/onboarding/team_choice.cljs:48 msgid "onboarding.team-modal.create-team-feature-3" msgstr "aiyukan shugaba" +#: src/app/main/ui/onboarding/team_choice.cljs:52 msgid "onboarding.team-modal.create-team-feature-4" msgstr "Unlimited members" +#: src/app/main/ui/onboarding/team_choice.cljs:56 msgid "onboarding.team-modal.create-team-feature-5" msgstr "100% kyauta!" +#: src/app/main/ui/onboarding/templates.cljs:78 msgid "onboarding.templates.subtitle" msgstr "ga wasu hotunan talla nan." +#: src/app/main/ui/onboarding/templates.cljs:77 msgid "onboarding.templates.title" msgstr "fara tsarawa" +#, unused msgid "onboarding.welcome.alt" msgstr "fenfot" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:99 msgid "profile.recovery.go-to-login" msgstr "je ka hanyar shiga" -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.team-size.11-30" -msgstr "11-30" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.team-size.2-10" -msgstr "2-10" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.team-size.31-50" -msgstr "31-50" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.adobe-xd" -msgstr "Adobe XD" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.canva" -msgstr "Canva" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.developer" -msgstr "ma su qirqira" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.figma" -msgstr "Figma" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.founder" -msgstr "mawallafi/VP" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.freelancer" -msgstr "ni mai zaman kansa ne" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.invision" -msgstr "teburin aiki" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.lets-get-started" -msgstr "za mu fara!" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.product-management" -msgstr "shugaban aiki" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.marketing" -msgstr "kasuwanci" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.team-size.more-than-50" -msgstr "fiye da 50" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.next" -msgstr "na gaba" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.other" -msgstr "idan akwai qari (bayyana)" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.team-size.personal-project" -msgstr "ina aikin kaina" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.previous" -msgstr "can baya" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.step3.question2" -msgstr "mi ne ne matsayinka?" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.select-option" -msgstr "dauki wanda kake so" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.sketch" -msgstr "zana" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.start" -msgstr "fara" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.student-teacher" -msgstr "malami ko dalibi" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.step3.question3" -msgstr "bayyana yawan tawagarka?" - -#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, +#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:221 msgid "settings.detach" msgstr "cire" -#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs, src/app/main/ui/workspace/sidebar/options/menus/layer.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs, src/app/main/ui/workspace/sidebar/options/menus/blur.cljs +#: src/app/main/ui/viewer/inspect/exports.cljs:147, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:631, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:137, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:148, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:188, src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:158, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:399, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:410, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:430, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:441, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:458, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:472, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:309, src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:183, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:373, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:389, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:245, src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:172 msgid "settings.multiple" msgstr "gauraya" # SECTIONS +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:414 msgid "shortcut-section.basics" msgstr "shikashikai" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:420 msgid "shortcut-section.dashboard" msgstr "allon kallo" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:423 msgid "shortcut-section.viewer" msgstr "Dankallo" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:417 msgid "shortcut-section.workspace" msgstr "fagen aiki" # SUBSECTIONS +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:56 msgid "shortcut-subsection.alignment" msgstr "kwaskwarima" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:57 msgid "shortcut-subsection.edit" msgstr "Tace" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:58 msgid "shortcut-subsection.general-dashboard" msgstr "gamayya" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:59 msgid "shortcut-subsection.general-viewer" msgstr "gamayya" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:60 msgid "shortcut-subsection.main-menu" msgstr "Babbar kumshiya" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:61 msgid "shortcut-subsection.modify-layers" msgstr "gyara shimfida" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:62 msgid "shortcut-subsection.navigation-dashboard" msgstr "shawagi" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:63 msgid "shortcut-subsection.navigation-viewer" msgstr "shawagi" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:64 msgid "shortcut-subsection.navigation-workspace" msgstr "shawagi" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:65 msgid "shortcut-subsection.panels" msgstr "allon sarrarfav naura" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:66 msgid "shortcut-subsection.path-editor" msgstr "Hanya" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:67 msgid "shortcut-subsection.shape" msgstr "Siffa" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:68 msgid "shortcut-subsection.text-editor" msgstr "Rubutu" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:69 msgid "shortcut-subsection.tools" msgstr "Kayan aiki" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:70 msgid "shortcut-subsection.zoom-viewer" msgstr "Zukowa" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:71 msgid "shortcut-subsection.zoom-workspace" msgstr "Zukowa" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:72 msgid "shortcuts.add-comment" msgstr "Bayyana Ra'ayi" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:73 msgid "shortcuts.add-node" msgstr "kara Girma" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:74 msgid "shortcuts.align-bottom" msgstr "tsarin kasa" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:75 msgid "shortcuts.align-center" msgstr "tsarin tsakiya" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:76 msgid "shortcuts.align-hcenter" msgstr "tsarin tsakiya ko ina" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:77 msgid "shortcuts.align-justify" msgstr "Tabbataccan tsari" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:78 msgid "shortcuts.align-left" msgstr "tsarin hagu" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:79 msgid "shortcuts.align-right" msgstr "tsarin dama" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:80 msgid "shortcuts.align-top" msgstr "tsarin sama" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:81 msgid "shortcuts.align-vcenter" msgstr "tsarin tsakiya a tsaye" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:82 msgid "shortcuts.artboard-selection" msgstr "kirkiri allo daga zabi" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:83 msgid "shortcuts.bold" msgstr "fito da shi barobaro" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:84 msgid "shortcuts.bool-difference" msgstr "ma'auni mabanbanci" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:85 msgid "shortcuts.bool-exclude" msgstr "kebentaccan ma'auni" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:86 msgid "shortcuts.bool-intersection" msgstr "ma'aunin abubuwa daban daban" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:87 msgid "shortcuts.bool-union" msgstr "ma'auni hadaka" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:88 msgid "shortcuts.bring-back" msgstr "tura zuwa baya" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:89 msgid "shortcuts.bring-backward" msgstr "komawa baya" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:90 msgid "shortcuts.bring-forward" msgstr "tura gaba" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:91 msgid "shortcuts.bring-front" msgstr "kawo zuwa gaba" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:92 msgid "shortcuts.clear-undo" msgstr "goge sake" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:93 msgid "shortcuts.copy" msgstr "kwafi" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:94 msgid "shortcuts.create-component" msgstr "samar da abubuwa iri- iri" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:95 msgid "shortcuts.create-new-project" msgstr "samar da sabo abu" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:96 msgid "shortcuts.cut" msgstr "cire" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:97 msgid "shortcuts.decrease-zoom" msgstr "fito da shi waje" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:98 msgid "shortcuts.delete" msgstr "goge" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:99 msgid "shortcuts.delete-node" msgstr "fita da ga cikin net wok" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:100 msgid "shortcuts.detach-component" msgstr "rarraba abubuwan da su ke a ware" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:101 msgid "shortcuts.draw-curve" msgstr "Ratse" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:102 msgid "shortcuts.draw-ellipse" msgstr "siffar kwai" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:103 msgid "shortcuts.draw-frame" msgstr "Allo" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:104 msgid "shortcuts.draw-nodes" msgstr "samar da hanya" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:105 msgid "shortcuts.draw-path" msgstr "Hanya" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:106 msgid "shortcuts.draw-rect" msgstr "Ractangula" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:107 msgid "shortcuts.draw-text" msgstr "rubutaccan sako" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:108 msgid "shortcuts.duplicate" msgstr "maimaita" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:109 msgid "shortcuts.escape" msgstr "kubuta" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:110 msgid "shortcuts.export-shapes" msgstr "samar da sabbabbin abubuwa" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:111 msgid "shortcuts.fit-all" msgstr "fitar da abubuwan da zai dace da ko wane abu" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:112 msgid "shortcuts.flip-horizontal" msgstr "kifa shi dai dai" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:113 msgid "shortcuts.flip-vertical" msgstr "kifa ta tsaye" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:114 msgid "shortcuts.font-size-dec" msgstr "rage girman rubutu" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:115 msgid "shortcuts.font-size-inc" msgstr "kara gaban yanayi" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:116 msgid "shortcuts.go-to-drafts" msgstr "ta fi rumbu" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:117 msgid "shortcuts.go-to-libs" msgstr "ta fi zuwa rabbabben ma'ajiya" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:118 msgid "shortcuts.go-to-search" msgstr "gajeran sako" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:119 msgid "shortcuts.group" msgstr "rukuni" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:120 msgid "shortcuts.h-distribute" msgstr "raba ta tsaye" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:121 msgid "shortcuts.hide-ui" msgstr "fito / boye UI" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:122 msgid "shortcuts.increase-zoom" msgstr "zuko ciki" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:123 msgid "shortcuts.insert-image" msgstr "sa hoto" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:124 msgid "shortcuts.italic" msgstr "juya zuwa kwantaccen rubuyu" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:125 msgid "shortcuts.join-nodes" msgstr "hada abubuwan" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:126 msgid "shortcuts.letter-spacing-dec" msgstr "rage filin harafin" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:127 msgid "shortcuts.letter-spacing-inc" msgstr "kara filin harafin" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:128 msgid "shortcuts.line-height-dec" msgstr "rage tsawon layi" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:129 msgid "shortcuts.line-height-inc" msgstr "kara tsawon layi" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:130 msgid "shortcuts.line-through" msgstr "danna layin duk" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:131 msgid "shortcuts.make-corner" msgstr "kirkiri kwana" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:132 msgid "shortcuts.make-curve" msgstr "kirkiri lankwasa" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:133 msgid "shortcuts.mask" msgstr "takunkumi" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:134 msgid "shortcuts.merge-nodes" msgstr "hada da kauri" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:135 msgid "shortcuts.move" msgstr "matsa" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:136 msgid "shortcuts.move-fast-down" msgstr "Matsa kasa da sauri" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:137 msgid "shortcuts.move-fast-left" msgstr "Matsa hagu da sauri" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:138 msgid "shortcuts.move-fast-right" msgstr "matsa dama da sauri" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:139 msgid "shortcuts.move-fast-up" msgstr "Matsa sama da sauri" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:140 msgid "shortcuts.move-nodes" msgstr "matsa a hade" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:141 msgid "shortcuts.move-unit-down" msgstr "Matsa da sashin kasa" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:142 msgid "shortcuts.move-unit-left" msgstr "Matsa da sashin hagu" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:143 msgid "shortcuts.move-unit-right" msgstr "Matsa da sashin dama" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:144 msgid "shortcuts.move-unit-up" msgstr "Matsa da sashin samu" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:145 msgid "shortcuts.next-frame" msgstr "wani tsari" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:516 msgid "shortcuts.not-found" msgstr "babu gajeriyar hanya" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:146 msgid "shortcuts.opacity-0" msgstr "Saita dishi dishi zuwa kashi 100" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:147 msgid "shortcuts.opacity-1" msgstr "saita dishi dishi zuwa kashi 10" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:148 msgid "shortcuts.opacity-2" msgstr "Saita dishi dishi zuwa kashi 20" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:149 msgid "shortcuts.opacity-3" msgstr "Seta dashi dashi zuwa kashi 50" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:150 msgid "shortcuts.opacity-4" msgstr "Saita dishi dishi zuwa kashi 40" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:151 msgid "shortcuts.opacity-5" msgstr "Saita dishi dishi zuwa kashi 50" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:152 msgid "shortcuts.opacity-6" msgstr "Saita dishi dishi zuwa kashi 60" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:153 msgid "shortcuts.opacity-7" msgstr "Saita dishi dishi zuwa kashi 70" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:154 msgid "shortcuts.opacity-8" msgstr "seta dishi dishin zuwa kashi 8o" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:155 msgid "shortcuts.opacity-9" msgstr "Seta dish dishi zuwa 90" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:156 msgid "shortcuts.open-color-picker" msgstr "abin daukan kala" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:157 msgid "shortcuts.open-comments" msgstr "tafi inda 'yan kallo za su bayyana ra'ayi" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:158 msgid "shortcuts.open-dashboard" msgstr "tafi gaban allon" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:159 msgid "shortcuts.open-inspect" msgstr "tafi sashin da 'yan kallo za su duba" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:160 msgid "shortcuts.open-interactions" msgstr "tafi sashin da masu kallo suke hulda" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:161 msgid "shortcuts.open-viewer" msgstr "tafi sashin da masu kallo suke hulda" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:162 msgid "shortcuts.open-workspace" msgstr "tafi fagen aiki" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:260 msgid "shortcuts.or" msgstr " ko " +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:163 msgid "shortcuts.paste" msgstr "manna" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:164 msgid "shortcuts.prev-frame" msgstr "allon da ya gabata" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:165 msgid "shortcuts.redo" msgstr "gyara" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:166 msgid "shortcuts.reset-zoom" msgstr "zake zukowa" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:168 msgid "shortcuts.search-placeholder" msgstr "takaitaccen sako yanken" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:169 msgid "shortcuts.select-all" msgstr "zabi duka" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:170 msgid "shortcuts.select-next" msgstr "zabi wani shafi" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:171 msgid "shortcuts.select-parent-layer" msgstr "zabi ainihin shafi" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:172 msgid "shortcuts.select-prev" msgstr "zabi shafin da ya gabata" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:173 msgid "shortcuts.separate-nodes" msgstr "raba kauri" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:174 msgid "shortcuts.show-pixel-grid" msgstr "nuna / boye akwatin pixel" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:175 msgid "shortcuts.show-shortcuts" msgstr "nuna / boye yanken" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:176 msgid "shortcuts.snap-nodes" msgstr "yanke kauri" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:177 msgid "shortcuts.snap-pixel-grid" msgstr "yanke zuwa ga akwatin pixel" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:178 msgid "shortcuts.start-editing" msgstr "fara gyarawa" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:179 msgid "shortcuts.start-measure" msgstr "fara aunawa" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:180 msgid "shortcuts.stop-measure" msgstr "dena aunawa" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:181 msgid "shortcuts.text-align-center" msgstr "jera tsakiya" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:182 msgid "shortcuts.text-align-justify" msgstr "jera da inganci" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:183 msgid "shortcuts.text-align-left" msgstr "jera hagu" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:184 msgid "shortcuts.text-align-right" msgstr "jera dama" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:185 msgid "shortcuts.thumbnail-set" msgstr "saita babban yatsa" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:496, src/app/main/ui/workspace/sidebar/shortcuts.cljs:505 msgid "shortcuts.title" msgstr "allon harufa yanke" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:186 msgid "shortcuts.toggle-alignment" msgstr "Danna a jere" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:187 msgid "shortcuts.toggle-assets" msgstr "Danna kadara" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:188 msgid "shortcuts.toggle-colorpalette" msgstr "Danna launukan kala" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:189 msgid "shortcuts.toggle-focus-mode" msgstr "Danna yanayin maida hankali" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:190 msgid "shortcuts.toggle-fullscreen" msgstr "Danna fuskar ta cika duka" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:192 msgid "shortcuts.toggle-history" msgstr "Danna tarihi" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:193 msgid "shortcuts.toggle-layers" msgstr "Danna shimfida" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:194 msgid "shortcuts.toggle-layout-flex" msgstr "Tara/fitar da lankwasashhiyar shimfida" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:196 msgid "shortcuts.toggle-lock" msgstr "Rufe/bude" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:197 msgid "shortcuts.toggle-lock-size" msgstr "Rufe rabo" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:202 msgid "shortcuts.toggle-textpalette" msgstr "Juya zuwa launukan rubutu" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:204 msgid "shortcuts.toggle-visibility" msgstr "Nuna/boye" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:205 msgid "shortcuts.toggle-zoom-style" msgstr "Danna salon zukowa" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:206 msgid "shortcuts.underline" msgstr "Danna ta layi a kasa" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:207 msgid "shortcuts.undo" msgstr "Cire" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:208 msgid "shortcuts.ungroup" msgstr "Fita daka rukuni" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:209 msgid "shortcuts.unmask" msgstr "Cire takunkumi" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:210 msgid "shortcuts.v-distribute" msgstr "Rarraba ta tsaye" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:211 msgid "shortcuts.zoom-lense-decrease" msgstr "Zuko raguwar ido" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:212 msgid "shortcuts.zoom-lense-increase" msgstr "Zuko karuwar ido" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:213 msgid "shortcuts.zoom-selected" msgstr "Zuko wanda aka zaba" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:771 msgid "team.webhooks.max-length" msgstr "Sunan shafin yanar gizon zai kunshi a mafi yawa haruffa 2048." -#: src/app/main/ui/dashboard/files.cljs +#: src/app/main/ui/dashboard/files.cljs:158 msgid "title.dashboard.files" msgstr "%s - Tukunyar aje biro" -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:37 msgid "title.dashboard.font-providers" msgstr "samar da jerin harufa - %s - Mazubin biruka" -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:36 msgid "title.dashboard.fonts" msgstr "jerin harufa - %s - Mazubin biruka" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:320 msgid "title.dashboard.projects" msgstr "tsare tsare - %s - Mazubin biruka" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:32 msgid "title.dashboard.search" msgstr "nema - %s - Mazubin biruka" -#: src/app/main/ui/dashboard/libraries.cljs +#: src/app/main/ui/dashboard/libraries.cljs:44 msgid "title.dashboard.shared-libraries" msgstr "Rababban dakin karatu- %s - Mazubin biruka" -#: src/app/main/ui/auth/verify_token.cljs, src/app/main/ui/auth.cljs +#: src/app/main/ui/auth/verify_token.cljs:68, src/app/main/ui/auth.cljs:54 msgid "title.default" msgstr "Mazubin biruka - Tsara yanci ga tawaga" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:292 msgid "title.settings.access-tokens" msgstr "karin bayani - Shiga alama" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:110 msgid "title.settings.feedback" msgstr "bada martani - Mazubin biruka" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:80 msgid "title.settings.options" msgstr "Saiti - Mazubin biruka" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:115 msgid "title.settings.password" msgstr "Nambobin sirri - Mazubin biruka" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:115 msgid "title.settings.profile" msgstr "Karin bayani - Mazubin biruka" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:727 msgid "title.team-invitations" msgstr "Gayyata - %s - Mazubin biruka" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:493 msgid "title.team-members" msgstr "Yan kungiya - %s - Mazubin biruka" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1036 msgid "title.team-settings" msgstr "Saiti - %s - Mazubin biruka" +#: src/app/main/ui/dashboard/team.cljs:989 msgid "title.team-webhooks" msgstr "gidan yanar gizo - %s - Mazubin biruka" -#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs +#: src/app/main/ui/viewer.cljs:419 msgid "title.viewer" msgstr "%s - duba kumburi - Mazubin biruka" -#: src/app/main/ui/workspace.cljs +#: src/app/main/ui/workspace.cljs:190 msgid "title.workspace" msgstr "%s - Mazubin biruka" +#: src/app/main/ui.cljs:144 msgid "viewer.breaking-change.description" msgstr "" "Wannan mahadar da aka raba yanxu batada ingaci. Ka/ki kirkiri wata ko ka/ki " "tamayi maishi a baka/ki sabuwa." +#: src/app/main/ui.cljs:143 msgid "viewer.breaking-change.message" msgstr "Sannu!" -#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs +#: src/app/main/ui/viewer.cljs:569 msgid "viewer.empty-state" msgstr "Babu allon da aka samu a wannan fejin." -#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs +#: src/app/main/ui/viewer.cljs:574 msgid "viewer.frame-not-found" msgstr "Ba'a sami allon ba." +#: src/app/main/ui/viewer/header.cljs:336 msgid "viewer.header.comments-section" msgstr "Bayyana ra'ayi(%s)" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/interactions.cljs:292 msgid "viewer.header.dont-show-interactions" msgstr "Karka/ki nuna hulda" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/header.cljs:188 msgid "viewer.header.fullscreen" msgstr "Cika fuskar" +#: src/app/main/ui/viewer/header.cljs:345 msgid "viewer.header.inspect-section" msgstr "Duba (%s)" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/interactions.cljs:282 msgid "viewer.header.interactions" msgstr "Hulda" +#: src/app/main/ui/viewer/header.cljs:327 msgid "viewer.header.interactions-section" msgstr "Hulda (%s)" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/share_link.cljs:187 msgid "viewer.header.share.copy-link" msgstr "Kwafi mahada" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/interactions.cljs:300 msgid "viewer.header.show-interactions" msgstr "Nuna hulda" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/interactions.cljs:311 msgid "viewer.header.show-interactions-on-click" msgstr "Nuna hulda da an danna" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/header.cljs:231 msgid "viewer.header.sitemap" msgstr "taswirar wuri" +#: src/app/main/ui/dashboard/team.cljs:948 msgid "webhooks.last-delivery.success" msgstr "Sakon karshe ya isa." -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:58 msgid "workspace.align.hcenter" msgstr "Daidaita tsakiya a kwance (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:74 msgid "workspace.align.hdistribute" msgstr "rarraba filin kwance (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:50 msgid "workspace.align.hleft" msgstr "Daidaita hagu (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:66 msgid "workspace.align.hright" msgstr "Daidaita dama (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:99 msgid "workspace.align.vbottom" msgstr "Daidaita kasa (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:91 msgid "workspace.align.vcenter" msgstr "Daidaita a kwance tsakiya (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:104 msgid "workspace.align.vdistribute" msgstr "rarraba filin tsaye (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:83 msgid "workspace.align.vtop" msgstr "Daidaita sama(%s)" #: src/app/main/ui/workspace/sidebar/assets.cljs +#, unused msgid "workspace.assets.assets" msgstr "kadara" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets.cljs:134 msgid "workspace.assets.box-filter-all" msgstr "duka kadara" -#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/dashboard/grid.cljs:130, src/app/main/ui/dashboard/grid.cljs:162, src/app/main/ui/workspace/sidebar/assets/colors.cljs:485, src/app/main/ui/workspace/sidebar/assets.cljs:150 msgid "workspace.assets.colors" msgstr "kala" -#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/dashboard/grid.cljs:126, src/app/main/ui/dashboard/grid.cljs:141, src/app/main/ui/workspace/sidebar/assets/components.cljs:513, src/app/main/ui/workspace/sidebar/assets.cljs:139 msgid "workspace.assets.components" msgstr "Bangarori" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:131 msgid "workspace.assets.create-group" msgstr "kirkiri rukuni" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:142 msgid "workspace.assets.create-group-hint" msgstr "abubuwanka za a samu su suna nan take kamar \"sunan kungiya/ sunan abubuwan\"" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/context_menu.cljs:529, src/app/main/ui/workspace/sidebar/assets/colors.cljs:251, src/app/main/ui/workspace/sidebar/assets/components.cljs:577, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:424, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:443 msgid "workspace.assets.delete" msgstr "goge" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/context_menu.cljs:534, src/app/main/ui/workspace/sidebar/assets/components.cljs:572 msgid "workspace.assets.duplicate" msgstr "maimaita" +#: src/app/main/ui/workspace/sidebar/assets/components.cljs:571 msgid "workspace.assets.duplicate-main" msgstr "maimaita ainihin" -#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:247, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:439 msgid "workspace.assets.edit" msgstr "tace" -#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/graphics.cljs:384, src/app/main/ui/workspace/sidebar/assets.cljs:145 msgid "workspace.assets.graphics" msgstr "zane zane" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:255, src/app/main/ui/workspace/sidebar/assets/components.cljs:581, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:428, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:448 msgid "workspace.assets.group" msgstr "rukuni" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:141 msgid "workspace.assets.group-name" msgstr "sunan kungiya" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets.cljs:168 msgid "workspace.assets.libraries" msgstr "dakunan karatu" +#: src/app/main/ui/workspace/sidebar/assets/file_library.cljs:62, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:347 msgid "workspace.assets.local-library" msgstr "dakin karatun gida" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/file_library.cljs:295 msgid "workspace.assets.not-found" msgstr "ba'a samu kadara ba" +#, unused msgid "workspace.assets.open-library" msgstr "bude fiyal din dakin karatu" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/context_menu.cljs:532, src/app/main/ui/workspace/sidebar/assets/colors.cljs:243, src/app/main/ui/workspace/sidebar/assets/components.cljs:566, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:421, src/app/main/ui/workspace/sidebar/assets/groups.cljs:63, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:434 msgid "workspace.assets.rename" msgstr "sake suna" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:132 msgid "workspace.assets.rename-group" msgstr "sake sunan kungiyar" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets.cljs:173 msgid "workspace.assets.search" msgstr "nemo kadarar" #: src/app/main/ui/workspace/sidebar/assets.cljs +#, unused msgid "workspace.assets.selected-count" msgid_plural "workspace.assets.selected-count" msgstr[0] "%s" msgstr[1] "%s zababbun abubuwan" #: src/app/main/ui/workspace/sidebar/assets.cljs +#, unused msgid "workspace.assets.shared-library" msgstr "rababben dakin karatu" -#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/dashboard/grid.cljs:134, src/app/main/ui/dashboard/grid.cljs:189, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:397, src/app/main/ui/workspace/sidebar/assets.cljs:155 msgid "workspace.assets.typography" msgstr "rubutun rubutu" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused msgid "workspace.assets.typography.font-id" msgstr "tsarin haruffa" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:505 msgid "workspace.assets.typography.font-size" msgstr "girma" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:501 msgid "workspace.assets.typography.font-variant-id" msgstr "bambanci" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:523 msgid "workspace.assets.typography.go-to-edit" msgstr "tafi zuwa salon dakin karatu don a tace" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:513 msgid "workspace.assets.typography.letter-spacing" msgstr "fili a tsakanin haruffa" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:509 msgid "workspace.assets.typography.line-height" msgstr "tsawon layi" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, src/app/main/ui/inspect/attributes/text.cljs, src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/dashboard/grid.cljs:199, src/app/main/ui/workspace/libraries.cljs:461, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:464, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:489, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:596, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:615 msgid "workspace.assets.typography.sample" msgstr "Ag" +#, unused msgid "workspace.assets.typography.text-styles" msgstr "salon rubutu" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:517 msgid "workspace.assets.typography.text-transform" msgstr "canja rubutu" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:66 msgid "workspace.assets.ungroup" msgstr "kashe daga kungiya" +#: src/app/main/ui/workspace/sidebar/layers.cljs:525 msgid "workspace.focus.focus-mode" msgstr "tsarin maida hankali" +#: src/app/main/ui/workspace/context_menu.cljs:287, src/app/main/ui/workspace/context_menu.cljs:553 msgid "workspace.focus.focus-off" msgstr "karka maida hankali" +#: src/app/main/ui/workspace/context_menu.cljs:286 msgid "workspace.focus.focus-on" msgstr "maida hankali" +#, unused msgid "workspace.focus.selection" msgstr "zaba" -#: src/app/main/data/workspace/libraries.cljs, src/app/main/ui/components/color_bullet.cljs +#: src/app/util/color.cljs:34 msgid "workspace.gradients.linear" msgstr "a layi mikakke" -#: src/app/main/data/workspace/libraries.cljs, src/app/main/ui/components/color_bullet.cljs +#: src/app/util/color.cljs:35 msgid "workspace.gradients.radial" msgstr "a da'ira" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:238 msgid "workspace.header.menu.disable-dynamic-alignment" msgstr "kashe daidaitawa mai canjawa" +#: src/app/main/ui/workspace/main_menu.cljs:192 msgid "workspace.header.menu.disable-scale-content" msgstr "kashe sikelin rabo" #: src/app/main/ui/workspace/header.cljs +#, unused msgid "workspace.header.menu.disable-scale-text" msgstr "kashe sikelin rubutu" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:223 msgid "workspace.header.menu.disable-snap-guides" msgstr "kashe tsinkewa zuwa mai jagora" +#: src/app/main/ui/workspace/main_menu.cljs:253 msgid "workspace.header.menu.disable-snap-pixel-grid" msgstr "kashe tsinkewa zuwa pixel" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:239 msgid "workspace.header.menu.enable-dynamic-alignment" msgstr "bada damar daidaitawa mai canjawa" +#: src/app/main/ui/workspace/main_menu.cljs:193 msgid "workspace.header.menu.enable-scale-content" msgstr "bada damar sikelin rabo" #: src/app/main/ui/workspace/header.cljs +#, unused msgid "workspace.header.menu.enable-scale-text" msgstr "bada damar sikelin rubutu" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:224 msgid "workspace.header.menu.enable-snap-guides" msgstr "Tsinke zuwa mai jagora" +#: src/app/main/ui/workspace/main_menu.cljs:254 msgid "workspace.header.menu.enable-snap-pixel-grid" msgstr "Bda damar tsinkewa zuwa akwatin pixel" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:382 msgid "workspace.header.menu.hide-artboard-names" msgstr "Boye allom suna" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:353 msgid "workspace.header.menu.hide-palette" msgstr "farantin launuka" +#: src/app/main/ui/workspace/main_menu.cljs:394 msgid "workspace.header.menu.hide-pixel-grid" msgstr "boye pixel akwati" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:320 msgid "workspace.header.menu.hide-rules" msgstr "boye ma'auni" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:367 msgid "workspace.header.menu.hide-textpalette" msgstr "boye launukan yanayin tsarin rubutu" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:731 msgid "workspace.header.menu.option.edit" msgstr "Tace" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:720 msgid "workspace.header.menu.option.file" msgstr "fayil" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:777 msgid "workspace.header.menu.option.help-info" msgstr "taimako & bayani" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:753 msgid "workspace.header.menu.option.preferences" msgstr "fifiko" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:742 msgid "workspace.header.menu.option.view" msgstr "gani" +#: src/app/main/ui/workspace/main_menu.cljs:459 msgid "workspace.header.menu.redo" msgstr "sake" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:432 msgid "workspace.header.menu.select-all" msgstr "zabi duka" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:383 msgid "workspace.header.menu.show-artboard-names" msgstr "Nuna sunayen allo" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:354 msgid "workspace.header.menu.show-palette" msgstr "nuna launukan kala" +#: src/app/main/ui/workspace/main_menu.cljs:395 msgid "workspace.header.menu.show-pixel-grid" msgstr "Nuna akwatin pixel" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:321 msgid "workspace.header.menu.show-rules" msgstr "Nuna ma'auni" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:368 msgid "workspace.header.menu.show-textpalette" msgstr "Nuna launukan tsarin rubutu" +#: src/app/main/ui/workspace/main_menu.cljs:446 msgid "workspace.header.menu.undo" msgstr "Cire" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/viewer/header.cljs:98, src/app/main/ui/workspace/right_header.cljs:120 msgid "workspace.header.reset-zoom" msgstr "Kara saitawa" #: src/app/main/ui/workspace/header.cljs +#, unused msgid "workspace.header.save-error" msgstr "an samu kuskure wajen adanawa" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/right_header.cljs:52 msgid "workspace.header.saved" msgstr "An adana" #: src/app/main/ui/workspace/header.cljs +#, unused msgid "workspace.header.saving" msgstr "Adanawa" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/right_header.cljs:42, src/app/main/ui/workspace/right_header.cljs:47 msgid "workspace.header.unsaved" msgstr "Canja canjan da ba'a adana ba" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/right_header.cljs:239 msgid "workspace.header.viewer" msgstr "yanayin kallo (%s)" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/viewer/header.cljs:79, src/app/main/ui/workspace/right_header.cljs:103 msgid "workspace.header.zoom" msgstr "Zuko" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/viewer/header.cljs:109 msgid "workspace.header.zoom-fill" msgstr "cike - cika sikeli" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/viewer/header.cljs:102 msgid "workspace.header.zoom-fit" msgstr "dace - ja sikeli ya dace da shi" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/right_header.cljs:123 msgid "workspace.header.zoom-fit-all" msgstr "zuko yayi daidai da ko'ina" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/viewer/header.cljs:116 msgid "workspace.header.zoom-full-screen" msgstr "Cika allon" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/right_header.cljs:130 msgid "workspace.header.zoom-selected" msgstr "zuko zababbe" +#: src/app/main/ui/workspace/viewport/grid_layout_editor.cljs:59 msgid "workspace.layout_grid.editor.title" msgstr "tace akwati" #: src/app/main/ui/workspace/libraries.cljs +#, unused msgid "workspace.libraries.add" msgstr "tarawa" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:80, src/app/main/ui/workspace/libraries.cljs:99 msgid "workspace.libraries.colors" msgstr "%s kala" -#: src/app/main/ui/workspace/colorpalette.cljs +#: src/app/main/ui/workspace/color_palette.cljs:126 msgid "workspace.libraries.colors.empty-palette" msgstr "Babu salon kaloli a ma'ajiya yanzu" -#: src/app/main/ui/workspace/textpalette.cljs +#: src/app/main/ui/workspace/text_palette.cljs:150 msgid "workspace.libraries.colors.empty-typography-palette" msgstr "Babu rubutun rubutu a ma'ajiya yanzu" -#: src/app/main/ui/workspace/colorpicker/libraries.cljs, src/app/main/ui/workspace/colorpalette.cljs +#: src/app/main/ui/workspace/color_palette_ctx_menu.cljs:60, src/app/main/ui/workspace/colorpicker/libraries.cljs:73, src/app/main/ui/workspace/text_palette_ctx_menu.cljs:50 msgid "workspace.libraries.colors.file-library" msgstr "F" #: src/app/main/ui/workspace/colorpicker.cljs +#, unused msgid "workspace.libraries.colors.hsv" msgstr "HSV" -#: src/app/main/ui/workspace/colorpicker/libraries.cljs, src/app/main/ui/workspace/colorpalette.cljs +#: src/app/main/ui/workspace/color_palette_ctx_menu.cljs:82, src/app/main/ui/workspace/colorpicker/libraries.cljs:72 msgid "workspace.libraries.colors.recent-colors" msgstr "kalar yanzu" #: src/app/main/ui/workspace/colorpicker.cljs +#, unused msgid "workspace.libraries.colors.rgb-complementary" msgstr "Jituwar RGB" #: src/app/main/ui/workspace/colorpicker.cljs +#, unused msgid "workspace.libraries.colors.rgba" msgstr "RGBA" -#: src/app/main/ui/workspace/colorpicker.cljs +#: src/app/main/ui/workspace/colorpicker.cljs:372 msgid "workspace.libraries.colors.save-color" msgstr "Adana salon kala" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:74, src/app/main/ui/workspace/libraries.cljs:91 msgid "workspace.libraries.components" msgstr "%s bangarori" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:215 msgid "workspace.libraries.file-library" msgstr "Ma'adanar fiyal" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:77, src/app/main/ui/workspace/libraries.cljs:95 msgid "workspace.libraries.graphics" msgstr "%s zane zane" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:209 msgid "workspace.libraries.in-this-file" msgstr "Ma'adana a wanna fiyal" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:526, src/app/main/ui/workspace/libraries.cljs:531 msgid "workspace.libraries.libraries" msgstr "ma'adanai" #: src/app/main/ui/workspace/libraries.cljs +#, unused msgid "workspace.libraries.library" msgstr "ma'adana" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:382 msgid "workspace.libraries.library-updates" msgstr "sabunta ma'adana" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:380 msgid "workspace.libraries.no-libraries-need-sync" msgstr "Babu rabben ma'adanai da suke bukatar sabuntawa" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:299 msgid "workspace.libraries.no-matches-for" msgstr "Babu daidaituwa da aka samu na “%s“" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:296 msgid "workspace.libraries.no-shared-libraries-available" msgstr "Babu rababbun ma'adanai wanda aka samu" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:260 msgid "workspace.libraries.search-shared-libraries" msgstr "Duba rabbaun ma'adanai" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:256 msgid "workspace.libraries.shared-libraries" msgstr "Rabban ma'adanai" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:308 msgid "workspace.libraries.text.multiple-typography" msgstr "Rubutun rubutu dayawa" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:311 msgid "workspace.libraries.text.multiple-typography-tooltip" msgstr "Cire mahadar duka rabutun rubutu" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:83, src/app/main/ui/workspace/libraries.cljs:103 msgid "workspace.libraries.typography" msgstr "%s Rubutun rubutu" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:402 msgid "workspace.libraries.update" msgstr "Sabuntawa" -#: src/app/main/data/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:477 msgid "workspace.libraries.update.see-all-changes" msgstr "Aga duka canjin" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:536 msgid "workspace.libraries.updates" msgstr "sabuntawa" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:737 msgid "workspace.options.add-interaction" msgstr "Danna wannan madannin + domin saka hulda." -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:86, src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:102 msgid "workspace.options.blur-options.title" msgstr "Dishi dishi" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:85 msgid "workspace.options.blur-options.title.group" msgstr "rukuni" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:84 msgid "workspace.options.blur-options.title.multiple" msgstr "zabin dishi dishi" -#: src/app/main/ui/workspace/sidebar/options/page.cljs +#: src/app/main/ui/workspace/sidebar/options/page.cljs:32, src/app/main/ui/workspace/sidebar/options/page.cljs:39 msgid "workspace.options.canvas-background" msgstr "bayan zane" +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:548 msgid "workspace.options.clip-content" msgstr "Matse abun ciki" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:600, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:605 msgid "workspace.options.component" msgstr "Bangarori" +#: src/app/main/ui/viewer/inspect/annotation.cljs:19, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:181 msgid "workspace.options.component.annotation" msgstr "Yin sharhin rubutu" +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:610 msgid "workspace.options.component.copy" msgstr "Kwafa" +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:173 msgid "workspace.options.component.create-annotation" msgstr "Kirkiri sharhin rubuta" +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:172 msgid "workspace.options.component.edit-annotation" msgstr "Tace sharhin rubutu" +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:609 msgid "workspace.options.component.main" msgstr "Ainahin" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:163 msgid "workspace.options.constraints" msgstr "Takura" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:150 msgid "workspace.options.constraints.bottom" msgstr "Kasa" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:141, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:152 msgid "workspace.options.constraints.center" msgstr "Tsakiya" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:229 msgid "workspace.options.constraints.fix-when-scrolling" msgstr "gyara nemowa" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:138 msgid "workspace.options.constraints.left" msgstr "Hagu" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:140 msgid "workspace.options.constraints.leftright" msgstr "hagu & dama" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:139 msgid "workspace.options.constraints.right" msgstr "dama" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:142, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:153 msgid "workspace.options.constraints.scale" msgstr "maauni" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:149 msgid "workspace.options.constraints.top" msgstr "sama" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:151 msgid "workspace.options.constraints.topbottom" msgstr "sama & kasa" -#: src/app/main/ui/workspace/sidebar/options.cljs +#: src/app/main/ui/workspace/sidebar/options.cljs:112 msgid "workspace.options.design" msgstr "zane" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs +#: src/app/main/ui/viewer/inspect/exports.cljs:139 msgid "workspace.options.export" msgstr "fitarwa" #: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs +#, unused msgid "workspace.options.export-multiple" msgstr "Fitar da zababbun" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs +#: src/app/main/ui/viewer/inspect/exports.cljs:195, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:237 msgid "workspace.options.export-object" msgid_plural "workspace.options.export-object" msgstr[0] "Fitarwa 1 Sashi" msgstr[1] "Fitarwa %s sashi-sashi" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs +#: src/app/main/ui/viewer/inspect/exports.cljs:178, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:219 msgid "workspace.options.export.suffix" msgstr "Kari na bayan baki" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs, src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/export.cljs:240 msgid "workspace.options.exporting-complete" msgstr "An gama fitarwa" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs, src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/export.cljs:172, src/app/main/ui/export.cljs:241, src/app/main/ui/viewer/inspect/exports.cljs:194, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:236 msgid "workspace.options.exporting-object" msgstr "Ana fitarwa" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs, src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/export.cljs:239 msgid "workspace.options.exporting-object-error" msgstr "An gaza fitarwa" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs, src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/export.cljs:242 msgid "workspace.options.exporting-object-slow" msgstr "Fitarwa ba tsammani ta sami tsaiko" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:49, src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:174 msgid "workspace.options.fill" msgstr "Cikawa" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:178 msgid "workspace.options.flows.add-flow-start" msgstr "Kara gudun farko" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#, unused msgid "workspace.options.flows.flow-start" msgstr "Gudun farko" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:161 msgid "workspace.options.flows.flow-starts" msgstr "gudun farko" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:29 msgid "workspace.options.grid.auto" msgstr "da kanshi" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:157 msgid "workspace.options.grid.column" msgstr "shafi" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused msgid "workspace.options.grid.grid-title" msgstr "Akwati" +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:196, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:237 msgid "workspace.options.grid.params.color" msgstr "Kala" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused msgid "workspace.options.grid.params.columns" msgstr "shafi" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:259 msgid "workspace.options.grid.params.gutter" msgstr "mahada" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:246 msgid "workspace.options.grid.params.height" msgstr "tsawo" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:270 msgid "workspace.options.grid.params.margin" msgstr "gefe" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused msgid "workspace.options.grid.params.rows" msgstr "jere" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:216, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:290 msgid "workspace.options.grid.params.set-default" msgstr "saita a tsoho" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused msgid "workspace.options.grid.params.size" msgstr "girma" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused msgid "workspace.options.grid.params.type" msgstr "Nau'i" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:231 msgid "workspace.options.grid.params.type.bottom" msgstr "Kasa" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:229 msgid "workspace.options.grid.params.type.center" msgstr "Tsakiya" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:228 msgid "workspace.options.grid.params.type.left" msgstr "Hagu" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:232 msgid "workspace.options.grid.params.type.right" msgstr "Dama" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:225 msgid "workspace.options.grid.params.type.stretch" msgstr "mikewa" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:227 msgid "workspace.options.grid.params.type.top" msgstr "sama" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:211, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:288 msgid "workspace.options.grid.params.use-default" msgstr "yi amfani da tsoho" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:247 msgid "workspace.options.grid.params.width" msgstr "fadi" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:158 msgid "workspace.options.grid.row" msgstr "layuka" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:156 msgid "workspace.options.grid.square" msgstr "murabba'i" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:48 msgid "workspace.options.group-fill" msgstr "Cika rukuni" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:42 msgid "workspace.options.group-stroke" msgstr "Ja layi a rukuni" +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:406 msgid "workspace.options.height" msgstr "Tsawo" +#: src/app/main/ui/workspace/sidebar/options.cljs:161 msgid "workspace.options.inspect" msgstr "Duba" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:468 msgid "workspace.options.interaction-action" msgstr "aiki" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:41, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:367 msgid "workspace.options.interaction-after-delay" msgstr "Bayan jinkiri" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:614 msgid "workspace.options.interaction-animation" msgstr "hotuna masu motsi" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:406 msgid "workspace.options.interaction-animation-dissolve" msgstr "narkewa" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:405 msgid "workspace.options.interaction-animation-none" msgstr "Babu" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:412 msgid "workspace.options.interaction-animation-push" msgstr "Tura" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:407 msgid "workspace.options.interaction-animation-slide" msgstr "Ja" +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:391 msgid "workspace.options.interaction-auto" msgstr "da kanshi" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:604 msgid "workspace.options.interaction-background" msgstr "kara mai rufin bayan" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:590 msgid "workspace.options.interaction-close-outside" msgstr "rufe yayin matsewa ta waje" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:372 msgid "workspace.options.interaction-close-overlay" msgstr "kulle mai rufi" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:56 msgid "workspace.options.interaction-close-overlay-dest" msgstr "kulle mai rufi %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:456 msgid "workspace.options.interaction-delay" msgstr "jinkiri" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:478 msgid "workspace.options.interaction-destination" msgstr "makoma" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:661 msgid "workspace.options.interaction-duration" msgstr "tsahon lokaci" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:674 msgid "workspace.options.interaction-easing" msgstr "saukakawa" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:416 msgid "workspace.options.interaction-easing-ease" msgstr "sauki" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:417 msgid "workspace.options.interaction-easing-ease-in" msgstr "sauki ciki" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:419 msgid "workspace.options.interaction-easing-ease-in-out" msgstr "sauki ciki waje" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:418 msgid "workspace.options.interaction-easing-ease-out" msgstr "sauki waje" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:415 msgid "workspace.options.interaction-easing-linear" msgstr "mikakke" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#, unused msgid "workspace.options.interaction-in" msgstr "ciki" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:39, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:364 msgid "workspace.options.interaction-mouse-enter" msgstr "linzamin kwamfuter ya shiga" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:40, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:365 msgid "workspace.options.interaction-mouse-leave" msgstr "linzamin kwamfutar ya fita" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:458, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:459, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:464, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:663, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:665, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:669 msgid "workspace.options.interaction-ms" msgstr "ms" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:369 msgid "workspace.options.interaction-navigate-to" msgstr "kewayawa zuwa" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:50 msgid "workspace.options.interaction-navigate-to-dest" msgstr "kewayawa zywa: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:51, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:53, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:55, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:380 msgid "workspace.options.interaction-none" msgstr "(ba'a saita ba )" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:691 msgid "workspace.options.interaction-offset-effect" msgstr "cire tasiri" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:35, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:360 msgid "workspace.options.interaction-on-click" msgstr "da an danna" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:370 msgid "workspace.options.interaction-open-overlay" msgstr "bude mai rufi" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:52 msgid "workspace.options.interaction-open-overlay-dest" msgstr "bude mai rufi: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:59, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:374 msgid "workspace.options.interaction-open-url" msgstr "bude URL" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#, unused msgid "workspace.options.interaction-out" msgstr "fita" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:403 msgid "workspace.options.interaction-pos-bottom-center" msgstr "kasa tsakiya" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:401 msgid "workspace.options.interaction-pos-bottom-left" msgstr "kasa hagu" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:402 msgid "workspace.options.interaction-pos-bottom-right" msgstr "kasa dama" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:397 msgid "workspace.options.interaction-pos-center" msgstr "tsakiya" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:396 msgid "workspace.options.interaction-pos-manual" msgstr "Yi da kanka" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:400 msgid "workspace.options.interaction-pos-top-center" msgstr "sama tsakiya" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:398 msgid "workspace.options.interaction-pos-top-left" msgstr "sama hagu" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:399 msgid "workspace.options.interaction-pos-top-right" msgstr "sama dama" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:524 msgid "workspace.options.interaction-position" msgstr "Mataki" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:494 msgid "workspace.options.interaction-preserve-scroll" msgstr "adana komawa sama da kasa" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:58, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:373 msgid "workspace.options.interaction-prev-screen" msgstr "allon daya gabata" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:515 msgid "workspace.options.interaction-relative-to" msgstr "alaka zuwa" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:57, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:379, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:393, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:394 msgid "workspace.options.interaction-self" msgstr "kai/ni" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:371 msgid "workspace.options.interaction-toggle-overlay" msgstr "Juya mai murfi" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:54 msgid "workspace.options.interaction-toggle-overlay-dest" msgstr "Juya mai murfi: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:445 msgid "workspace.options.interaction-trigger" msgstr "Jawo" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:503 msgid "workspace.options.interaction-url" msgstr "URL" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:37, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:362 msgid "workspace.options.interaction-while-hovering" msgstr "yayin shawagi" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:38, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:363 msgid "workspace.options.interaction-while-pressing" msgstr "yayin dannawa" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:724 msgid "workspace.options.interactions" msgstr "yayin hulda" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:137 msgid "workspace.options.layer-options.blend-mode.color" msgstr "kala" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:126 msgid "workspace.options.layer-options.blend-mode.color-burn" msgstr "kala konanniya" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:129 msgid "workspace.options.layer-options.blend-mode.color-dodge" msgstr "kala gudajjiya" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:124 msgid "workspace.options.layer-options.blend-mode.darken" msgstr "kara masa duhu" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:133 msgid "workspace.options.layer-options.blend-mode.difference" msgstr "banbanci" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:134 msgid "workspace.options.layer-options.blend-mode.exclusion" msgstr "warewa" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:132 msgid "workspace.options.layer-options.blend-mode.hard-light" msgstr "Haske mai muya" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:135 msgid "workspace.options.layer-options.blend-mode.hue" msgstr "Haske haske" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:127 msgid "workspace.options.layer-options.blend-mode.lighten" msgstr "kara masa haske" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:138 msgid "workspace.options.layer-options.blend-mode.luminosity" msgstr "warewa" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:125 msgid "workspace.options.layer-options.blend-mode.multiply" msgstr "sau" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:123 msgid "workspace.options.layer-options.blend-mode.normal" msgstr "na kullum" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:130 msgid "workspace.options.layer-options.blend-mode.overlay" msgstr "mai rufi" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:136 msgid "workspace.options.layer-options.blend-mode.saturation" msgstr "jikewa" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:128 msgid "workspace.options.layer-options.blend-mode.screen" msgstr "allo" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:131 msgid "workspace.options.layer-options.blend-mode.soft-light" msgstr "haske mai sauki" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#, unused msgid "workspace.options.layer-options.title" msgstr "shafi" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#, unused msgid "workspace.options.layer-options.title.group" msgstr "rukunin shafi" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#, unused msgid "workspace.options.layer-options.title.multiple" msgstr "dayawa" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout-item.advanced-ops" msgstr "zabi na ci gaba" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:564 msgid "workspace.options.layout-item.layout-item-max-h" msgstr "tsawo mafi yawa" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:531 msgid "workspace.options.layout-item.layout-item-max-w" msgstr "fadi mafi yawa" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:548 msgid "workspace.options.layout-item.layout-item-min-h" msgstr "tsawo mafi kankanta" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:515 msgid "workspace.options.layout-item.layout-item-min-w" msgstr "fadi mafi kankanta" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout-item.title.layout-item-max-h" msgstr "tsawo mafi yawa" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout-item.title.layout-item-max-w" msgstr "fadi mafi yawa" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout-item.title.layout-item-min-h" msgstr "tsaho mafi kankanta" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout-item.title.layout-item-min-w" msgstr "fadi mafi kankanta" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.bottom" msgstr "kasa" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.direction.column" msgstr "shafi" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.direction.column-reverse" msgstr "sake shafi" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.direction.row" msgstr "jerawa" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.direction.row-reverse" msgstr "jera sauyin fasali" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.gap" msgstr "Gibi" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.left" msgstr "hagu" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout.margin" msgstr "gefe" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout.margin-all" msgstr "gefen duka" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout.margin-simple" msgstr "Samfarin gefe" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.packed" msgstr "cushe" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.padding" msgstr "filla filla" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.padding-all" msgstr "duka gefan" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.padding-simple" msgstr "sassaukan ciko" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.right" msgstr "dama" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.space-around" msgstr "kewayayyen sarrari" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.space-between" msgstr "sarari tsakani" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.top" msgstr "sama" -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:146 msgid "workspace.options.more-colors" msgstr "kaloli masu yawa" -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:123 msgid "workspace.options.more-lib-colors" msgstr "Ma'ajiyar kaloli masu yawa" +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:161 msgid "workspace.options.opacity" msgstr "dishi dishi" #: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#, unused msgid "workspace.options.position" msgstr "matsayi" -#: src/app/main/ui/workspace/sidebar/options.cljs +#: src/app/main/ui/workspace/sidebar/options.cljs:157 msgid "workspace.options.prototype" msgstr "samfur" +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:469, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:481 msgid "workspace.options.radius" msgstr "digon tsakiyar da'ira" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:513 msgid "workspace.options.radius-bottom-left" msgstr "kasan hagu" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:522 msgid "workspace.options.radius-bottom-right" msgstr "kasan dama" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:495 msgid "workspace.options.radius-top-left" msgstr "saman hagu" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:504 msgid "workspace.options.radius-top-right" msgstr "saman dama" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:532 msgid "workspace.options.radius.all-corners" msgstr "duka kwanar" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:533 msgid "workspace.options.radius.single-corners" msgstr "kwanar da take cin gashin kanta" +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:183 msgid "workspace.options.recent-fonts" msgstr "da dimi dimi" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs, src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/export.cljs:284 msgid "workspace.options.retry" msgstr "sake" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:451 msgid "workspace.options.rotation" msgstr "juyawa" +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:180 msgid "workspace.options.search-font" msgstr "nemo jerin harufa" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:741 msgid "workspace.options.select-a-shape" msgstr "zabi surar allo, ko rukuni ta hadu da daya allon." -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:105 msgid "workspace.options.selection-color" msgstr "zababbabbin kaloli" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:47 msgid "workspace.options.selection-fill" msgstr "cika zabi" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:41 msgid "workspace.options.selection-stroke" msgstr "gigciye zabi" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:40, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:198, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:200 msgid "workspace.options.shadow-options.blur" msgstr "dishi dishi" +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:238 msgid "workspace.options.shadow-options.color" msgstr "inuwar kala" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:144 msgid "workspace.options.shadow-options.drop-shadow" msgstr "ajiye inuwa" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:145 msgid "workspace.options.shadow-options.inner-shadow" msgstr "Inuwar ciki" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:38, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:186 msgid "workspace.options.shadow-options.offsetx" msgstr "X" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:39, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:224 msgid "workspace.options.shadow-options.offsety" msgstr "Y" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:41, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:211, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:213 msgid "workspace.options.shadow-options.spread" msgstr "bazu" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:296 msgid "workspace.options.shadow-options.title" msgstr "inuwa" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:295 msgid "workspace.options.shadow-options.title.group" msgstr "rukunin inuwa" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:294 msgid "workspace.options.shadow-options.title.multiple" msgstr "inuwar zabi" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:193 msgid "workspace.options.show-fill-on-export" msgstr "fito da shi a ga" +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:562 msgid "workspace.options.show-in-viewer" msgstr "fito da kaurin sosai" -#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:162 msgid "workspace.options.size" msgstr "girma" -#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:355 msgid "workspace.options.size-presets" msgstr "yanayin girman yanayin" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:43 msgid "workspace.options.stroke" msgstr "gigciye" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#, unused msgid "workspace.options.stroke-cap.circle-marker" msgstr "da'irar kasuwa" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:129 msgid "workspace.options.stroke-cap.circle-marker-short" msgstr "da'ira" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#, unused msgid "workspace.options.stroke-cap.diamond-marker" msgstr "darajar kasuwa" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:130 msgid "workspace.options.stroke-cap.diamond-marker-short" msgstr "mai daraja" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#, unused msgid "workspace.options.stroke-cap.line-arrow" msgstr "layin mashiw" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:126 msgid "workspace.options.stroke-cap.line-arrow-short" msgstr "mashi" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:124 msgid "workspace.options.stroke-cap.none" msgstr "ba komai" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:132 msgid "workspace.options.stroke-cap.round" msgstr "da'ira" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:133 msgid "workspace.options.stroke-cap.square" msgstr "murabba'i" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#, unused msgid "workspace.options.stroke-cap.square-marker" msgstr "murabba'in kasuwa" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:128 msgid "workspace.options.stroke-cap.square-marker-short" msgstr "Rectangle" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#, unused msgid "workspace.options.stroke-cap.triangle-arrow" msgstr "Triangle mashi" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:127 msgid "workspace.options.stroke-cap.triangle-arrow-short" msgstr "Triangle" +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:192 msgid "workspace.options.stroke-color" msgstr "gigciye kalar" +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:165 msgid "workspace.options.stroke-width" msgstr "gigciye fadin" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:87 msgid "workspace.options.stroke.center" msgstr "tsakiya" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:105 msgid "workspace.options.stroke.dashed" msgstr "layin raba abu" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:104 msgid "workspace.options.stroke.dotted" msgstr "digo digo" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:88 msgid "workspace.options.stroke.inner" msgstr "ciki" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:106 msgid "workspace.options.stroke.mixed" msgstr "gauraya" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:89 msgid "workspace.options.stroke.outer" msgstr "waje" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:103 msgid "workspace.options.stroke.solid" msgstr "mai tauri" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:115 msgid "workspace.options.text-options.align-bottom" msgstr "jerin kasa" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:111 msgid "workspace.options.text-options.align-middle" msgstr "jerin tsakiya" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:107 msgid "workspace.options.text-options.align-top" msgstr "jerin sama" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:82 msgid "workspace.options.text-options.direction-ltr" msgstr "LTR" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:87 msgid "workspace.options.text-options.direction-rtl" msgstr "RTL" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:149 msgid "workspace.options.text-options.grow-auto-height" msgstr "sarrafaffan tsaho" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:145 msgid "workspace.options.text-options.grow-auto-width" msgstr "sarrafaffen fadi" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:141 msgid "workspace.options.text-options.grow-fixed" msgstr "dasa" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:381 msgid "workspace.options.text-options.letter-spacing" msgstr "tazarar harafi" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:364 msgid "workspace.options.text-options.line-height" msgstr "tsahon layi" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused msgid "workspace.options.text-options.lowercase" msgstr "yanayin kasa" #: src/app/main/ui/workspace/sidebar/options/menus/text.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused msgid "workspace.options.text-options.none" msgstr "babu" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:176 msgid "workspace.options.text-options.strikethrough" msgstr "gigciye ta cikinsa (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:51 msgid "workspace.options.text-options.text-align-center" msgstr "jerin tsakiya (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:59 msgid "workspace.options.text-options.text-align-justify" msgstr "tabbatarwa (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:47 msgid "workspace.options.text-options.text-align-left" msgstr "jera hagu (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:55 msgid "workspace.options.text-options.text-align-right" msgstr "jera dama (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:189 msgid "workspace.options.text-options.title" msgstr "rubutu" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:188 msgid "workspace.options.text-options.title-group" msgstr "rukunin rubutu" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:187 msgid "workspace.options.text-options.title-selection" msgstr "zababbun rubutu" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused msgid "workspace.options.text-options.titlecase" msgstr "yanayin lakani" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:171 msgid "workspace.options.text-options.underline" msgstr "ja layi (%s)" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused msgid "workspace.options.text-options.uppercase" msgstr "yanayin sama" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:745 msgid "workspace.options.use-play-button" msgstr "yi amfani da madanneta ta sama ki tafi da samfuri." +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:395 msgid "workspace.options.width" msgstr "fadi" +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:427 msgid "workspace.options.x" msgstr "X layi" +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:438 msgid "workspace.options.y" msgstr "Y layi" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:167 msgid "workspace.path.actions.add-node" msgstr "kara kauri (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:174 msgid "workspace.path.actions.delete-node" msgstr "goge kauri (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:152 msgid "workspace.path.actions.draw-nodes" msgstr "zane da kauri (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:189 msgid "workspace.path.actions.join-nodes" msgstr "hada kauri (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:204 msgid "workspace.path.actions.make-corner" msgstr "ta kwana (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:211 msgid "workspace.path.actions.make-curve" msgstr "Ta lankwasa (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:182 msgid "workspace.path.actions.merge-nodes" msgstr "hade kauri (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:159 msgid "workspace.path.actions.move-nodes" msgstr "tafi da kauri (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:196 msgid "workspace.path.actions.separate-nodes" msgstr "raba kauri (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:218 msgid "workspace.path.actions.snap-nodes" msgstr "tsinke kauri (%s)" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:441 msgid "workspace.shape.menu.add-flex" msgstr "kara sassaukan tsarit" +#: src/app/main/ui/workspace/context_menu.cljs:445 msgid "workspace.shape.menu.add-grid" msgstr "kara akwatin tsari" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:193 msgid "workspace.shape.menu.back" msgstr "tura zuwa baya" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:190 msgid "workspace.shape.menu.backward" msgstr "tura zuwa baya" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:139 msgid "workspace.shape.menu.copy" msgstr "kwafi" +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:427 msgid "workspace.shape.menu.create-annotation" msgstr "kirkiri hoto mai motsi" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:275 msgid "workspace.shape.menu.create-artboard-from-selection" msgstr "zababban allo" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:465 msgid "workspace.shape.menu.create-component" msgstr "kirkiri abubuwa" +#: src/app/main/ui/workspace/context_menu.cljs:469 msgid "workspace.shape.menu.create-multiple-components" msgstr "kirkiri abubuwa da yawa" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:142 msgid "workspace.shape.menu.cut" msgstr "cire" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:486 msgid "workspace.shape.menu.delete" msgstr "goge" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:391 msgid "workspace.shape.menu.delete-flow-start" msgstr "goge kwararar farko" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:432 msgid "workspace.shape.menu.detach-instance" msgstr "raba yanayin abin" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:431 msgid "workspace.shape.menu.detach-instances-in-bulk" msgstr "raba yanayin abin" +#: src/app/main/ui/workspace/context_menu.cljs:335, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:75 msgid "workspace.shape.menu.difference" msgstr "bambanci" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:148 msgid "workspace.shape.menu.duplicate" msgstr "maimaita" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:321 msgid "workspace.shape.menu.edit" msgstr "tace" +#: src/app/main/ui/workspace/context_menu.cljs:341 msgid "workspace.shape.menu.exclude" msgstr "kebe" +#: src/app/main/ui/workspace/context_menu.cljs:348, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:89 msgid "workspace.shape.menu.flatten" msgstr "mikad da abu" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:208 msgid "workspace.shape.menu.flip-horizontal" msgstr "kifa ta tsaye" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:204 msgid "workspace.shape.menu.flip-vertical" msgstr "kifa ta kwance" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:394 msgid "workspace.shape.menu.flow-start" msgstr "fara malala" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:184 msgid "workspace.shape.menu.forward" msgstr "kawo ta gaba" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:187 msgid "workspace.shape.menu.front" msgstr "kawo zuwa gaba" #: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#, unused msgid "workspace.shape.menu.go-main" msgstr "tafi ainihin wurin fal" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:261 msgid "workspace.shape.menu.group" msgstr "rukuni" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:363, src/app/main/ui/workspace/sidebar/layer_item.cljs:145 msgid "workspace.shape.menu.hide" msgstr "boye" +#: src/app/main/ui/workspace/context_menu.cljs:548, src/app/main/ui/workspace/main_menu.cljs:408 msgid "workspace.shape.menu.hide-ui" msgstr "nuna / boye UI" +#: src/app/main/ui/workspace/context_menu.cljs:338 msgid "workspace.shape.menu.intersection" msgstr "mahada" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:371, src/app/main/ui/workspace/sidebar/layer_item.cljs:153 msgid "workspace.shape.menu.lock" msgstr "kulle" -#: src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:266 msgid "workspace.shape.menu.mask" msgstr "takunkumik" -#: src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:145, src/app/main/ui/workspace/context_menu.cljs:545 msgid "workspace.shape.menu.paste" msgstr "manna" +#: src/app/main/ui/workspace/context_menu.cljs:331 msgid "workspace.shape.menu.path" msgstr "hanya" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:432 msgid "workspace.shape.menu.remove-flex" msgstr "cire sassaukan tsari" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:436 msgid "workspace.shape.menu.reset-overrides" msgstr "sake saita sokewa" +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:439 msgid "workspace.shape.menu.restore-main" msgstr "saita ainihin wurin" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:174 msgid "workspace.shape.menu.select-layer" msgstr "zabi shimfida" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:360, src/app/main/ui/workspace/sidebar/layer_item.cljs:144 msgid "workspace.shape.menu.show" msgstr "nuna" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:424 msgid "workspace.shape.menu.show-in-assets" msgstr "nuna ta kusuwar kadara" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:442, src/app/main/ui/workspace/sidebar/assets/components.cljs:586 msgid "workspace.shape.menu.show-main" msgstr "nuna ainihin wurin" +#: src/app/main/ui/workspace/context_menu.cljs:221 msgid "workspace.shape.menu.thumbnail-remove" msgstr "cire girman babban danyatsa" +#: src/app/main/ui/workspace/context_menu.cljs:223 msgid "workspace.shape.menu.thumbnail-set" msgstr "kara kamar girman babban yatsa" +#: src/app/main/ui/workspace/context_menu.cljs:326 msgid "workspace.shape.menu.transform-to-path" msgstr "sauya zuwa hanya" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:257 msgid "workspace.shape.menu.ungroup" msgstr "raba rukunin" +#: src/app/main/ui/workspace/context_menu.cljs:332, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:70 msgid "workspace.shape.menu.union" msgstr "hadakan" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:368, src/app/main/ui/workspace/sidebar/layer_item.cljs:152 msgid "workspace.shape.menu.unlock" msgstr "bude" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:271 msgid "workspace.shape.menu.unmask" msgstr "bude takunkumi" #: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs +#, unused msgid "workspace.shape.menu.update-components-in-bulk" msgstr "sabunta ainihin wurin" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:445 msgid "workspace.shape.menu.update-main" msgstr "sabunta ainihin wurin" +#: src/app/main/ui/components/tab_container.cljs:50 msgid "workspace.sidebar.collapse" msgstr "ruguza a'ajiyar bayani" +#: src/app/main/ui/workspace/sidebar/collapsable_button.cljs:26 msgid "workspace.sidebar.expand" msgstr "kara yankin ma'agiyar bayani" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/right_header.cljs:231, src/app/main/ui/workspace/right_header.cljs:232 msgid "workspace.sidebar.history" msgstr "labari (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/sidebar/layers.cljs:522, src/app/main/ui/workspace/sidebar.cljs:100 msgid "workspace.sidebar.layers" msgstr "shafi" +#: src/app/main/ui/workspace/sidebar/layers.cljs:308, src/app/main/ui/workspace/sidebar/layers.cljs:380 msgid "workspace.sidebar.layers.components" msgstr "bangare" +#: src/app/main/ui/workspace/sidebar/layers.cljs:305, src/app/main/ui/workspace/sidebar/layers.cljs:338 msgid "workspace.sidebar.layers.frames" msgstr "allo" +#: src/app/main/ui/workspace/sidebar/layers.cljs:306, src/app/main/ui/workspace/sidebar/layers.cljs:352 msgid "workspace.sidebar.layers.groups" msgstr "rukuni" +#: src/app/main/ui/workspace/sidebar/layers.cljs:310, src/app/main/ui/workspace/sidebar/layers.cljs:408 msgid "workspace.sidebar.layers.images" msgstr "hoto" +#: src/app/main/ui/workspace/sidebar/layers.cljs:307, src/app/main/ui/workspace/sidebar/layers.cljs:366 msgid "workspace.sidebar.layers.masks" msgstr "takunkumi" +#: src/app/main/ui/workspace/sidebar/layers.cljs:289 msgid "workspace.sidebar.layers.search" msgstr "nemo shimfida" +#: src/app/main/ui/workspace/sidebar/layers.cljs:311, src/app/main/ui/workspace/sidebar/layers.cljs:422 msgid "workspace.sidebar.layers.shapes" msgstr "Siffa" +#: src/app/main/ui/workspace/sidebar/layers.cljs:309, src/app/main/ui/workspace/sidebar/layers.cljs:394 msgid "workspace.sidebar.layers.texts" msgstr "rubutu" -#: src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs, src/app/main/ui/inspect/attributes/svg.cljs +#: src/app/main/ui/viewer/inspect/attributes/svg.cljs:56, src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs:91 msgid "workspace.sidebar.options.svg-attrs.title" msgstr "shigo da shi SVG halaye" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs +#: src/app/main/ui/workspace/sidebar/sitemap.cljs:217 msgid "workspace.sidebar.sitemap" msgstr "shafi" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/left_header.cljs:91 msgid "workspace.sitemap" msgstr "taswirar wuri" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/sidebar.cljs:120 msgid "workspace.toolbar.assets" msgstr "kadara" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/palette.cljs:165, src/app/main/ui/workspace/palette.cljs:166 msgid "workspace.toolbar.color-palette" msgstr "farantin kala (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/right_header.cljs:220, src/app/main/ui/workspace/right_header.cljs:221 msgid "workspace.toolbar.comments" msgstr "ra'ayi (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:180, src/app/main/ui/workspace/top_toolbar.cljs:181 msgid "workspace.toolbar.curve" msgstr "kwana(%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:160, src/app/main/ui/workspace/top_toolbar.cljs:161 msgid "workspace.toolbar.ellipse" msgstr "siffar kwai (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:142, src/app/main/ui/workspace/top_toolbar.cljs:143 msgid "workspace.toolbar.frame" msgstr "allo (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:59, src/app/main/ui/workspace/top_toolbar.cljs:60 msgid "workspace.toolbar.image" msgstr "hoto (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:132, src/app/main/ui/workspace/top_toolbar.cljs:133 msgid "workspace.toolbar.move" msgstr "motsa (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:189, src/app/main/ui/workspace/top_toolbar.cljs:190 msgid "workspace.toolbar.path" msgstr "hanya (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:151, src/app/main/ui/workspace/top_toolbar.cljs:152 msgid "workspace.toolbar.rect" msgstr "Rectangle (%s)" #: src/app/main/ui/workspace/left_toolbar.cljs +#, unused msgid "workspace.toolbar.shortcuts" msgstr "yanke (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:169, src/app/main/ui/workspace/top_toolbar.cljs:170 msgid "workspace.toolbar.text" msgstr "rubutu (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/palette.cljs:173, src/app/main/ui/workspace/palette.cljs:174 msgid "workspace.toolbar.text-palette" msgstr "rubutub rubutu (%s)" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:342 msgid "workspace.undo.empty" msgstr "babu labaran da su ka canja a yanzu" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:147 msgid "workspace.undo.entry.delete" msgstr "gogagge %s" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:146 msgid "workspace.undo.entry.modify" msgstr "gyaggyarawa %s" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:148 msgid "workspace.undo.entry.move" msgstr "motsa abun" +#: src/app/main/ui/workspace/sidebar/history.cljs:111 msgid "workspace.undo.entry.multiple.circle" msgstr "da'ira" +#: src/app/main/ui/workspace/sidebar/history.cljs:112 msgid "workspace.undo.entry.multiple.color" msgstr "kadarar kala" +#: src/app/main/ui/workspace/sidebar/history.cljs:113 msgid "workspace.undo.entry.multiple.component" msgstr "bangare" +#: src/app/main/ui/workspace/sidebar/history.cljs:114 msgid "workspace.undo.entry.multiple.curve" msgstr "kwana" +#: src/app/main/ui/workspace/sidebar/history.cljs:115 msgid "workspace.undo.entry.multiple.frame" msgstr "allo" +#: src/app/main/ui/workspace/sidebar/history.cljs:116 msgid "workspace.undo.entry.multiple.group" msgstr "rukunis" +#: src/app/main/ui/workspace/sidebar/history.cljs:117 msgid "workspace.undo.entry.multiple.media" msgstr "kadarar zane" +#: src/app/main/ui/workspace/sidebar/history.cljs:118 msgid "workspace.undo.entry.multiple.multiple" msgstr "abu" +#: src/app/main/ui/workspace/sidebar/history.cljs:119 msgid "workspace.undo.entry.multiple.page" msgstr "shafi" +#: src/app/main/ui/workspace/sidebar/history.cljs:120 msgid "workspace.undo.entry.multiple.path" msgstr "hanya" +#: src/app/main/ui/workspace/sidebar/history.cljs:121 msgid "workspace.undo.entry.multiple.rect" msgstr "rectangles" +#: src/app/main/ui/workspace/sidebar/history.cljs:122 msgid "workspace.undo.entry.multiple.shape" msgstr "siffa" +#: src/app/main/ui/workspace/sidebar/history.cljs:123 msgid "workspace.undo.entry.multiple.text" msgstr "rubutu" +#: src/app/main/ui/workspace/sidebar/history.cljs:124 msgid "workspace.undo.entry.multiple.typography" msgstr "rubutun rubuta kadara" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:145 msgid "workspace.undo.entry.new" msgstr "sabo %s" +#: src/app/main/ui/workspace/sidebar/history.cljs:125 msgid "workspace.undo.entry.single.circle" msgstr "da'ira" +#: src/app/main/ui/workspace/sidebar/history.cljs:126 msgid "workspace.undo.entry.single.color" msgstr "kalar kadara" +#: src/app/main/ui/workspace/sidebar/history.cljs:127 msgid "workspace.undo.entry.single.component" msgstr "bangarori" +#: src/app/main/ui/workspace/sidebar/history.cljs:128 msgid "workspace.undo.entry.single.curve" msgstr "lankwasa" +#: src/app/main/ui/workspace/sidebar/history.cljs:129 msgid "workspace.undo.entry.single.frame" msgstr "allo" +#: src/app/main/ui/workspace/sidebar/history.cljs:130 msgid "workspace.undo.entry.single.group" msgstr "rukuni" +#: src/app/main/ui/workspace/sidebar/history.cljs:131 msgid "workspace.undo.entry.single.image" msgstr "hoto" +#: src/app/main/ui/workspace/sidebar/history.cljs:132 msgid "workspace.undo.entry.single.media" msgstr "kadarar zanen hotuna" +#: src/app/main/ui/workspace/sidebar/history.cljs:133 msgid "workspace.undo.entry.single.multiple" msgstr "wani abu" +#: src/app/main/ui/workspace/sidebar/history.cljs:134 msgid "workspace.undo.entry.single.page" msgstr "shafi" +#: src/app/main/ui/workspace/sidebar/history.cljs:135 msgid "workspace.undo.entry.single.path" msgstr "hanya" +#: src/app/main/ui/workspace/sidebar/history.cljs:136 msgid "workspace.undo.entry.single.rect" msgstr "rectangle" +#: src/app/main/ui/workspace/sidebar/history.cljs:137 msgid "workspace.undo.entry.single.shape" msgstr "siffa" +#: src/app/main/ui/workspace/sidebar/history.cljs:138 msgid "workspace.undo.entry.single.text" msgstr "sako" +#: src/app/main/ui/workspace/sidebar/history.cljs:139 msgid "workspace.undo.entry.single.typography" msgstr "rubutun rubuta kadara" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:149 msgid "workspace.undo.entry.unknown" msgstr "yanayi fiye da %s" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:335 msgid "workspace.undo.title" msgstr "labari" -#: src/app/main/data/workspace/libraries.cljs +#: src/app/main/data/workspace/libraries.cljs:1094 msgid "workspace.updates.dismiss" msgstr "watsar" -#: src/app/main/data/workspace/libraries.cljs +#: src/app/main/data/workspace/libraries.cljs:1092 msgid "workspace.updates.more-info" msgstr "bayanai masu yawa" -#: src/app/main/data/workspace/libraries.cljs +#: src/app/main/data/workspace/libraries.cljs:1090 msgid "workspace.updates.there-are-updates" msgstr "a kwai na zamani a rababban ma'ajiya" -#: src/app/main/data/workspace/libraries.cljs +#: src/app/main/data/workspace/libraries.cljs:1097 msgid "workspace.updates.update" msgstr "sabintawas" +#, unused msgid "workspace.viewport.click-to-close-path" msgstr "latsa kusa da hanya" diff --git a/frontend/translations/he.po b/frontend/translations/he.po index abdf5f5b38..b2c68d2cdc 100644 --- a/frontend/translations/he.po +++ b/frontend/translations/he.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "PO-Revision-Date: 2024-06-17 08:07+0000\n" "Last-Translator: Anonymous \n" -"Language-Team: Hebrew \n" +"Language-Team: Hebrew " +"\n" "Language: he\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" @@ -12,207 +12,206 @@ msgstr "" "n % 10 == 0) ? 2 : 3));\n" "X-Generator: Weblate 5.6-dev\n" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:151, src/app/main/ui/viewer/login.cljs:104 msgid "auth.already-have-account" msgstr "כבר יש לך חשבון?" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:299 msgid "auth.check-your-email" -msgstr "" -"נא לחפש בדוא״ל הנכנס שלך וללחוץ על הקישור כדי לאמת ולהתחיל להשתמש ב־Penpot." +msgstr "נא לחפש בדוא״ל הנכנס שלך וללחוץ על הקישור כדי לאמת ולהתחיל להשתמש ב־Penpot." -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:78 msgid "auth.confirm-password" msgstr "אישור הסיסמה" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/register.cljs:163 msgid "auth.create-demo-account" msgstr "יצירת חשבון הדגמה" #: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#, unused msgid "auth.create-demo-profile" msgstr "מעניין אותך רק להתנסות?" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/login.cljs:43 msgid "auth.demo-warning" -msgstr "" -"זה שירות ניסיוני, לא להשתמש בו לעבודה אמתית, המיזמים יימחקו מדי פעם בפעם." +msgstr "זה שירות ניסיוני, לא להשתמש בו לעבודה אמתית, המיזמים יימחקו מדי פעם בפעם." -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:189, src/app/main/ui/viewer/login.cljs:90 msgid "auth.forgot-password" msgstr "שכחת סיסמה?" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:254 msgid "auth.fullname" msgstr "שם מלא" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:282 msgid "auth.login-account-title" msgstr "כניסה לחשבון שלי" -#: src/app/main/ui/auth/register.cljs -#, fuzzy +#: src/app/main/ui/auth/register.cljs:155, src/app/main/ui/viewer/login.cljs:107 msgid "auth.login-here" msgstr "כניסה מכאן" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:195 msgid "auth.login-submit" msgstr "כניסה" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:285 msgid "auth.login-tagline" msgstr "Penpot הוא כלי בקוד פתוח לשיתוף עיצוב וקוד" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:222 msgid "auth.login-with-github-submit" msgstr "GitHub" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:228 msgid "auth.login-with-gitlab-submit" msgstr "GitLab" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:216 msgid "auth.login-with-google-submit" msgstr "Google" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:201 msgid "auth.login-with-ldap-submit" msgstr "LDAP" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:234, src/app/main/ui/auth/login.cljs:255 msgid "auth.login-with-oidc-submit" msgstr "‎OpenID Connect" -#: src/app/main/ui/settings/team-form.cljs, src/app/main/ui/auth/register.cljs, -#: src/app/main/ui/dashboard/team_form.cljs, -#: src/app/main/ui/onboarding/team_choice.cljs, -#: src/app/main/ui/settings/access_tokens.cljs, -#: src/app/main/ui/settings/feedback.cljs, -#: src/app/main/ui/settings/profile.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/auth/register.cljs:217, src/app/main/ui/dashboard/team_form.cljs:76, src/app/main/ui/onboarding/team_choice.cljs:180, src/app/main/ui/settings/access_tokens.cljs:66, src/app/main/ui/settings/feedback.cljs:34, src/app/main/ui/settings/profile.cljs:45, src/app/main/ui/workspace/sidebar/assets/groups.cljs:108 msgid "auth.name.not-all-space" msgstr "השם חייב להכיל תווים שאינם רווחים." -#: src/app/main/ui/auth/register.cljs, -#: src/app/main/ui/dashboard/team_form.cljs, -#: src/app/main/ui/onboarding/team_choice.cljs, -#: src/app/main/ui/settings/access_tokens.cljs, -#: src/app/main/ui/settings/feedback.cljs, -#: src/app/main/ui/settings/profile.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/auth/register.cljs:218, src/app/main/ui/dashboard/team_form.cljs:77, src/app/main/ui/onboarding/team_choice.cljs:181, src/app/main/ui/settings/access_tokens.cljs:67, src/app/main/ui/settings/feedback.cljs:33, src/app/main/ui/settings/profile.cljs:44, src/app/main/ui/workspace/sidebar/assets/groups.cljs:109 msgid "auth.name.too-long" msgstr "השם חייב להכיל 250 תווים לכל היותר." -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:71 msgid "auth.new-password" msgstr "נא להקליד סיסמה חדשה" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:42 msgid "auth.notifications.invalid-token-error" msgstr "אסימון השחזור שגוי." -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:46 msgid "auth.notifications.password-changed-successfully" msgstr "הסיסמה הוחלפה בהצלחה" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:57 msgid "auth.notifications.profile-not-verified" msgstr "הפרופיל לא עבר אימות, נא לאמת את הפרופיל לפני המשך התהליך." -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:40 msgid "auth.notifications.recovery-token-sent" msgstr "קישור לשחזור סיסמה נשלח לתיבת הדוא״ל הנכנס שלך." -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:47 msgid "auth.notifications.team-invitation-accepted" msgstr "הצטרפת לצוות בהצלחה" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:179, src/app/main/ui/auth/register.cljs:115 msgid "auth.password" msgstr "סיסמה" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:114 msgid "auth.password-length-hint" msgstr "8 תווים לפחות" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/recovery.cljs:61, src/app/main/ui/auth/recovery.cljs:62, src/app/main/ui/auth/register.cljs:81, src/app/main/ui/settings/password.cljs:75, src/app/main/ui/settings/password.cljs:76, src/app/main/ui/settings/password.cljs:77 msgid "auth.password-not-empty" msgstr "הסיסמה חייבת להכיל תווים שאינם רווחים." +#: src/app/main/ui/auth.cljs:41 msgid "auth.privacy-policy" msgstr "מדיניות פרטיות" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:88 msgid "auth.recovery-request-submit" msgstr "שחזור סיסמה" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:101 msgid "auth.recovery-request-subtitle" msgstr "נשלח לך הודעה בדוא״ל עם ההנחיות" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:100 msgid "auth.recovery-request-title" msgstr "שכחת סיסמה?" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:82 msgid "auth.recovery-submit" msgstr "החלפת הסיסמה שלך" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:298, src/app/main/ui/viewer/login.cljs:93 msgid "auth.register" msgstr "אין לך חשבון עדיין?" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:302, src/app/main/ui/auth/register.cljs:121, src/app/main/ui/auth/register.cljs:263, src/app/main/ui/viewer/login.cljs:97 msgid "auth.register-submit" msgstr "יצירת חשבון" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:140 msgid "auth.register-title" msgstr "יצירת חשבון" #: src/app/main/ui/auth.cljs +#, unused msgid "auth.sidebar-tagline" msgstr "הפתרון בקוד פתוח לעיצוב ויצירת אבטיפוס." +#: src/app/main/ui/auth.cljs:33, src/app/main/ui/dashboard/sidebar.cljs:1022, src/app/main/ui/workspace/main_menu.cljs:150 msgid "auth.terms-of-service" msgstr "תנאי השירות" -#: src/app/main/ui/auth/register.cljs +#, unused msgid "auth.terms-privacy-agreement" msgstr "יצירת חשבון חדש מהווה את הסכמתך לתנאי השירות ולמדיניות הפרטיות." -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:297 msgid "auth.verification-email-sent" msgstr "שלחנו הודעת דוא״ל לאימות אל" #: src/app/main/ui/onboarding/questions.cljs +#, unused msgid "branding-illustrations-marketing-pieces" msgstr "…מיתוג, איורים, חומרים שיווקיים ועוד." +#: src/app/main/ui/workspace/libraries.cljs:228 msgid "common.publish" msgstr "פרסום" +#: src/app/main/ui/viewer/share_link.cljs:304, src/app/main/ui/viewer/share_link.cljs:314 msgid "common.share-link.all-users" msgstr "כל משתמשי Penpot" +#: src/app/main/ui/viewer/share_link.cljs:198 msgid "common.share-link.confirm-deletion-link-description" msgstr "להסיר את הקישור הזה? ביצוע פעולה זו תמנע מכולם לגשת אליו" +#: src/app/main/ui/viewer/share_link.cljs:259, src/app/main/ui/viewer/share_link.cljs:289 msgid "common.share-link.current-tag" msgstr "(נוכחי)" +#: src/app/main/ui/viewer/share_link.cljs:207, src/app/main/ui/viewer/share_link.cljs:214 msgid "common.share-link.destroy-link" msgstr "השמדת קישור" +#: src/app/main/ui/viewer/share_link.cljs:221 msgid "common.share-link.get-link" msgstr "קבלת קישור" +#: src/app/main/ui/viewer/share_link.cljs:139 msgid "common.share-link.link-copied-success" msgstr "הקישור הועתק בהצלחה" +#: src/app/main/ui/viewer/share_link.cljs:231 msgid "common.share-link.manage-ops" msgstr "ניהול הרשאות" +#: src/app/main/ui/viewer/share_link.cljs:277 msgid "common.share-link.page-shared" msgid_plural "common.share-link.page-shared" msgstr[0] "עמוד שותף" @@ -220,271 +219,300 @@ msgstr[1] "%s עמודים שותפו" msgstr[2] "%s עמודים שותפו" msgstr[3] "%s עמודים שותפו" +#: src/app/main/ui/viewer/share_link.cljs:298 msgid "common.share-link.permissions-can-comment" msgstr "הרשאות תגובה" +#: src/app/main/ui/viewer/share_link.cljs:308 msgid "common.share-link.permissions-can-inspect" msgstr "הרשאות לחקירת הקוד" +#: src/app/main/ui/viewer/share_link.cljs:193 msgid "common.share-link.permissions-hint" msgstr "כל מי שיש לו את הקישור יכול לגשת" +#: src/app/main/ui/viewer/share_link.cljs:241 msgid "common.share-link.permissions-pages" msgstr "עמודים ששותפו" +#: src/app/main/ui/viewer/share_link.cljs:183 msgid "common.share-link.placeholder" msgstr "הקישור לשיתוף יופיע כאן" +#: src/app/main/ui/viewer/share_link.cljs:303, src/app/main/ui/viewer/share_link.cljs:313 msgid "common.share-link.team-members" msgstr "רק חברי צוות" +#: src/app/main/ui/viewer/share_link.cljs:171 msgid "common.share-link.title" msgstr "שיתוף אבות טיפוס" +#: src/app/main/ui/viewer/share_link.cljs:269 msgid "common.share-link.view-all" msgstr "בחירה בהכול" +#: src/app/main/ui/workspace/libraries.cljs:224 msgid "common.unpublish" msgstr "ביטול פרסום" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:85 msgid "dasboard.team-hero.management" msgstr "ניהול צוות" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:84 msgid "dasboard.team-hero.text" -msgstr "" -"Penpot מיועד לצוותים. אפשר להזמין חברים כדי לעבוד ביחד על מיזמים וקבצים" +msgstr "Penpot מיועד לצוותים. אפשר להזמין חברים כדי לעבוד ביחד על מיזמים וקבצים" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:82 msgid "dasboard.team-hero.title" msgstr "להתגבש כקבוצה!" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.tutorial-hero.info" msgstr "כאן נלמד את היסודות של Penpot תוך השתעשעות עם המדריך המעשי הזה." #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.tutorial-hero.start" msgstr "התחלת המדריך" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.tutorial-hero.title" msgstr "מדריך מעשי" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.walkthrough-hero.info" msgstr "סיור במרחבי Penpot ועריכת היכרות עם יכולות המפתח שלו." #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.walkthrough-hero.start" msgstr "התחלת הסיור" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.walkthrough-hero.title" msgstr "סיור בנבכי מנשק המשתמש" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:115 msgid "dashboard.access-tokens.copied-success" msgstr "האסימון הועתק" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:202 msgid "dashboard.access-tokens.create" msgstr "יצירת אסימון חדש" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:76 msgid "dashboard.access-tokens.create.success" msgstr "אסימון הגישה נוצר בהצלחה." -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:300 msgid "dashboard.access-tokens.empty.add-one" msgstr "נא ללחוץ על הכפתור „יצירת אסימון חדש” כדי ליצור אחד חדש." -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:299 msgid "dashboard.access-tokens.empty.no-access-tokens" msgstr "אין לך אסימונים עדיין." -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:53 msgid "dashboard.access-tokens.errors-required-name" msgstr "השם הוא בגדר חובה" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:147 msgid "dashboard.access-tokens.expiration-180-days" msgstr "180 יום" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:144 msgid "dashboard.access-tokens.expiration-30-days" msgstr "30 יום" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:145 msgid "dashboard.access-tokens.expiration-60-days" msgstr "60 יום" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:146 msgid "dashboard.access-tokens.expiration-90-days" msgstr "90 יום" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:143 msgid "dashboard.access-tokens.expiration-never" msgstr "לעולם לא" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:282 msgid "dashboard.access-tokens.expired-on" msgstr "התוקף פג ב־%s" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:283 msgid "dashboard.access-tokens.expires-on" msgstr "התוקף יפוג ב־%s" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:281 msgid "dashboard.access-tokens.no-expiration" msgstr "אין תאריך תפוגה" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:197 msgid "dashboard.access-tokens.personal" msgstr "אסימוני כניסה אישיים" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:198 msgid "dashboard.access-tokens.personal.description" msgstr "" "אסימוני גישה אישיים הם דרך חלופית למערכת אימות הכניסה/סיסמה שלנו ומאפשרים " "ליישום לגשת ל־API הפנימי של Penpot" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:154 msgid "dashboard.access-tokens.token-will-expire" msgstr "האסימון יפוג ב־%s" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:155 msgid "dashboard.access-tokens.token-will-not-expire" msgstr "לאסימון אין תאריך תפוגה" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:291, src/app/main/ui/workspace/main_menu.cljs:572 msgid "dashboard.add-shared" msgstr "הוספת ספריה משותפת" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:75 msgid "dashboard.change-email" msgstr "החלפת דוא״ל" -#: src/app/main/data/dashboard.cljs, src/app/main/data/dashboard.cljs +#: src/app/main/data/dashboard.cljs:762, src/app/main/data/dashboard.cljs:983 msgid "dashboard.copy-suffix" msgstr "(עותק)" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:338 msgid "dashboard.create-new-team" msgstr "יצירת צוות חדש" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/components/context_menu_a11y.cljs:256, src/app/main/ui/dashboard/sidebar.cljs:646 msgid "dashboard.default-team-name" msgstr "ה־Penpot שלך" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:571 msgid "dashboard.delete-team" msgstr "מחיקת צוות" +#: src/app/main/ui/dashboard/file_menu.cljs:296, src/app/main/ui/workspace/main_menu.cljs:589 msgid "dashboard.download-binary-file" msgstr "הורדת קובץ Penpot‏ (‎.penpot)" +#: src/app/main/ui/dashboard/file_menu.cljs:300, src/app/main/ui/workspace/main_menu.cljs:597 msgid "dashboard.download-standard-file" msgstr "הורדת קובץ תקני (‎.svg + .json)" -#: src/app/main/ui/dashboard/project_menu.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:276, src/app/main/ui/dashboard/project_menu.cljs:90 msgid "dashboard.duplicate" msgstr "שכפול" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:240 msgid "dashboard.duplicate-multi" msgstr "שכפול %s קבצים" -#: src/app/main/ui/dashboard/grid.cljs +#: src/app/main/ui/dashboard/placeholder.cljs:32 +#, markdown msgid "dashboard.empty-placeholder-drafts" msgstr "" "קבצים שנוספו לספריות יתווספו לכאן. כדאי לנסות לשתף את הקבצים שלך או להוסיף " "אותם מ[הספריות והתבניות](https://penpot.app/libraries-templates)." +#: src/app/main/ui/dashboard/file_menu.cljs:249 msgid "dashboard.export-binary-multi" msgstr "הורדת %s קובצי Penpot‏ (‎.penpot)" +#: src/app/main/ui/workspace/main_menu.cljs:605 msgid "dashboard.export-frames" msgstr "ייצוא לוחות אומנות כ־PDF" -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:201 msgid "dashboard.export-frames.title" msgstr "ייצוא כ־PDF" +#, unused msgid "dashboard.export-multi" msgstr "ייצוא קובצי %s של Penpot" -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:109 msgid "dashboard.export-multiple.selected" msgstr "נבחרו %s מתוך %s רכיבים" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:578 msgid "dashboard.export-shapes" msgstr "ייצוא" -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:180 msgid "dashboard.export-shapes.how-to" -msgstr "" -"אפשר להוסיף הגדרות ייצוא לרכיבים ממאפייני העיצוב (מתחתית הסרגל שמשמאל)." +msgstr "אפשר להוסיף הגדרות ייצוא לרכיבים ממאפייני העיצוב (מתחתית הסרגל שמשמאל)." -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:184 msgid "dashboard.export-shapes.how-to-link" msgstr "מידע על הגדרות ייצוא ב־Penpot." -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:179 msgid "dashboard.export-shapes.no-elements" msgstr "אין רכיבים עם הגדרות ייצוא." -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:190 msgid "dashboard.export-shapes.title" msgstr "ייצוא הבחירה" +#: src/app/main/ui/dashboard/file_menu.cljs:252 msgid "dashboard.export-standard-multi" msgstr "הורדת %s קבצים תקניים (‎.svg + .json)" +#: src/app/main/ui/export.cljs:427 msgid "dashboard.export.detail" msgstr "* עשוי לכלול רכיבים, גרפיקה, צבעים ו/או טיפוגרפיות." +#: src/app/main/ui/export.cljs:426 msgid "dashboard.export.explain" msgstr "" "אחד או יותר מהקבצים שברצונך לייצא משתמשים בספריות משותפות. מה לעשות עם " "המשאבים שלהן*?" +#: src/app/main/ui/export.cljs:435 msgid "dashboard.export.options.all.message" msgstr "קבצים עם ספריות משותפות יצורפו לייצוא, תוך שימור הקישוריות שלהם." +#: src/app/main/ui/export.cljs:436 msgid "dashboard.export.options.all.title" msgstr "ייצוא ספריות משותפות" +#: src/app/main/ui/export.cljs:437 msgid "dashboard.export.options.detach.message" msgstr "ספריות משותפות לא יצורפו לייצוא ואף משאב לא יתווסף לספריה. " +#: src/app/main/ui/export.cljs:438 msgid "dashboard.export.options.detach.title" msgstr "להתייחס למשאבים בספריות משותפות כעצמים בסיסיים" +#: src/app/main/ui/export.cljs:439 msgid "dashboard.export.options.merge.message" msgstr "הקובץ שלך ייוצא כשכל המשאבים החיצוניים ממוזגים לספריית הקבצים." +#: src/app/main/ui/export.cljs:440 msgid "dashboard.export.options.merge.title" msgstr "לכלול משאבי ספריה משותפת בספריות הקבצים" +#: src/app/main/ui/export.cljs:418 msgid "dashboard.export.title" msgstr "ייצוא קבצים" +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:309 msgid "dashboard.fonts.deleted-placeholder" msgstr "הגופן נמחק" -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:206 msgid "dashboard.fonts.dismiss-all" msgstr "להתעלם מהכול" +#: src/app/main/ui/dashboard/fonts.cljs:436 msgid "dashboard.fonts.empty-placeholder" msgstr "גופנים שהעלית יופיעו כאן." -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:194 msgid "dashboard.fonts.fonts-added" msgid_plural "dashboard.fonts.fonts-added" msgstr[0] "נוסף גופן" @@ -492,43 +520,54 @@ msgstr[1] "נוספו 2 גופנים" msgstr[2] "נוספו %s גופנים" msgstr[3] "נוספו %s גופנים" +#: src/app/main/ui/dashboard/fonts.cljs:170 +#, markdown msgid "dashboard.fonts.hero-text1" msgstr "" -"כל גופן דפדפן שיועלה כאן יתווסף לרשימת משפחת הגופנים שזמין במאפייני הטקסט של " -"הקבצים של הצוות הזה. גופנים מאותו שם של משפחת גופנים יקובצו תחת **משפחת " +"כל גופן דפדפן שיועלה כאן יתווסף לרשימת משפחת הגופנים שזמין במאפייני הטקסט " +"של הקבצים של הצוות הזה. גופנים מאותו שם של משפחת גופנים יקובצו תחת **משפחת " "גופנים יחידה**. ניתן להעלות גופנים מהסוגים הבאים: **TTF,‏ OTF ו־WOFF** (אחד " "הסוגים יספיק)." +#: src/app/main/ui/dashboard/fonts.cljs:182 +#, markdown msgid "dashboard.fonts.hero-text2" msgstr "" "עליך להעלות גופנים בבעלותך או שיש לך רישיון להשתמש בהם ב־Penpot. ניתן למצוא " -"על כך מידע נוסף בסעיף זכויות התוכן של [תנאי השירות של Penpot](https://penpot." -"app/terms.html). אפשר גם לקרוא גם על [רישוי גופנים](https://www.typography." -"com/faq)." +"על כך מידע נוסף בסעיף זכויות התוכן של [תנאי השירות של " +"Penpot](https://penpot.app/terms.html). אפשר גם לקרוא גם על [רישוי " +"גופנים](https://www.typography.com/faq)." -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:202 msgid "dashboard.fonts.upload-all" msgstr "להעלות הכול" +#: src/app/main/ui/dashboard/fonts.cljs:187 +#, markdown msgid "dashboard.fonts.warning-text" msgstr "" "זיהינו בעיה אפשרית בגודפים שלך ביחס למדדים אנכיים למערכת הפעלה שונות. כדי " -"לבדוק את זה אפשר להשתמש בשירות מדידות אנכיות של גופנים כגון [זה]](https://" -"vertical-metrics.netlify.app/). בנוסף, המלצתנו היא להשתמש ב־[Transfonter]" -"(https://transfonter.org/) כדי לייצר גופני רשת ולתקן שגיאות. " +"לבדוק את זה אפשר להשתמש בשירות מדידות אנכיות של גופנים כגון " +"[זה]](https://vertical-metrics.netlify.app/). בנוסף, המלצתנו היא להשתמש " +"ב־[Transfonter](https://transfonter.org/) כדי לייצר גופני רשת ולתקן שגיאות. " +#: src/app/main/ui/dashboard/import.cljs:472, src/app/main/ui/dashboard/project_menu.cljs:108 msgid "dashboard.import" msgstr "ייבוא קובצי Penpot" +#: src/app/main/ui/dashboard/import.cljs:304, src/app/worker/import.cljs:753, src/app/worker/import.cljs:755 msgid "dashboard.import.analyze-error" msgstr "אופס! לא הצלחנו לייבא את הקובץ הזה" +#, unused msgid "dashboard.import.analyze-error.components-v2" msgstr "קובץ עם רכיבים בגרסה 2 מופעל אך הצוות הזה לא תומך בזה עדיין." +#: src/app/main/ui/dashboard/import.cljs:308 msgid "dashboard.import.import-error" msgstr "אירעה תקלה בייבוא הקובץ. הוא לא ייובא." +#: src/app/main/ui/dashboard/import.cljs:493 msgid "dashboard.import.import-message" msgid_plural "dashboard.import.import-message" msgstr[0] "קובץ יובא בהצלחה." @@ -536,166 +575,176 @@ msgstr[1] "%s קבצים יובאו בהצלחה." msgstr[2] "%s קבצים יובאו בהצלחה." msgstr[3] "%s קבצים יובאו בהצלחה." +#: src/app/main/ui/dashboard/import.cljs:481, src/app/main/ui/dashboard/import.cljs:488 msgid "dashboard.import.import-warning" msgstr "חלק מהקבצים הכילו פריטים שגויים שהוסרו." +#: src/app/main/ui/dashboard/import.cljs:144 msgid "dashboard.import.progress.process-colors" msgstr "עיבוד צבעים" +#: src/app/main/ui/dashboard/import.cljs:153 msgid "dashboard.import.progress.process-components" msgstr "עיבוד רכיבים" +#: src/app/main/ui/dashboard/import.cljs:150 msgid "dashboard.import.progress.process-media" msgstr "עיבוד מדיה" +#: src/app/main/ui/dashboard/import.cljs:141 msgid "dashboard.import.progress.process-page" msgstr "עיבוד עמוד: %s" +#: src/app/main/ui/dashboard/import.cljs:147 msgid "dashboard.import.progress.process-typographies" msgstr "עיבוד טיפוגרפיות" +#: src/app/main/ui/dashboard/import.cljs:135 msgid "dashboard.import.progress.upload-data" msgstr "הנתונים נשלחים לשרת (%s/%s)" +#: src/app/main/ui/dashboard/import.cljs:138 msgid "dashboard.import.progress.upload-media" msgstr "נשלח קובץ: %s" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:109 msgid "dashboard.invite-profile" msgstr "הזמנת אנשים" -#: src/app/main/ui/dashboard/sidebar.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:547, src/app/main/ui/dashboard/sidebar.cljs:556, src/app/main/ui/dashboard/sidebar.cljs:563, src/app/main/ui/dashboard/team.cljs:312 msgid "dashboard.leave-team" msgstr "עזיבת הצוות" +#: src/app/main/ui/dashboard/templates.cljs:88, src/app/main/ui/dashboard/templates.cljs:163 msgid "dashboard.libraries-and-templates" msgstr "ספריות ותבניות" +#: src/app/main/ui/dashboard/templates.cljs:164 msgid "dashboard.libraries-and-templates.explore" msgstr "עיון ביותר כאלה והסברים כיצד לתרום להן" +#: src/app/main/ui/dashboard/import.cljs:365 msgid "dashboard.libraries-and-templates.import-error" msgstr "אירעה שגיאה בייבוא התבנית והיא לא ייובאה." -#: src/app/main/ui/dashboard/libraries.cljs +#: src/app/main/ui/dashboard/libraries.cljs:53 msgid "dashboard.libraries-title" msgstr "ספריות משותפות" -#: src/app/main/ui/dashboard/grid.cljs +#: src/app/main/ui/dashboard/placeholder.cljs:45 msgid "dashboard.loading-files" msgstr "הקבצים שלך נטענים…" +#: src/app/main/ui/dashboard/fonts.cljs:431 msgid "dashboard.loading-fonts" msgstr "הגופנים שלך נטענים…" -#: src/app/main/ui/dashboard/project_menu.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:281, src/app/main/ui/dashboard/project_menu.cljs:100 msgid "dashboard.move-to" msgstr "העברה אל" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:245 msgid "dashboard.move-to-multi" msgstr "העברה של %s קבצים אל" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:226 msgid "dashboard.move-to-other-team" msgstr "העברה לצוות אחר" -#: src/app/main/ui/dashboard/projects.cljs, -#: src/app/main/ui/dashboard/files.cljs +#: src/app/main/ui/dashboard/files.cljs:105, src/app/main/ui/dashboard/projects.cljs:252, src/app/main/ui/dashboard/projects.cljs:253 msgid "dashboard.new-file" msgstr "+ קובץ חדש" -#: src/app/main/data/dashboard.cljs +#: src/app/main/data/dashboard.cljs:958, src/app/main/data/dashboard.cljs:1181 msgid "dashboard.new-file-prefix" msgstr "קובץ חדש" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:55 msgid "dashboard.new-project" msgstr "+ מיזם חדש" -#: src/app/main/data/dashboard.cljs +#: src/app/main/data/dashboard.cljs:726, src/app/main/data/dashboard.cljs:1184 msgid "dashboard.new-project-prefix" msgstr "מיזם חדש" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:60 msgid "dashboard.no-matches-for" msgstr "לא נמצאו תוצאות לחיפוש אחר „%s”" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:827 msgid "dashboard.no-projects-placeholder" msgstr "מיזמים נעוצים יופיעו כאן" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:33 msgid "dashboard.notifications.email-changed-successfully" msgstr "כתובת הדוא״ל שלך עודכנה בהצלחה" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:27 msgid "dashboard.notifications.email-verified-successfully" msgstr "כתובת הדוא״ל שלך אומתה בהצלחה" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:37 msgid "dashboard.notifications.password-saved" msgstr "הסיסמה נשמרה בהצלחה!" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1081 msgid "dashboard.num-of-members" msgstr "%s חברים" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:267 msgid "dashboard.open-in-new-tab" msgstr "פתיחת קובץ בלשונית חדשה" +#: src/app/main/ui/dashboard/files.cljs:117, src/app/main/ui/dashboard/projects.cljs:260, src/app/main/ui/dashboard/projects.cljs:261 msgid "dashboard.options" msgstr "אפשרויות" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:106, src/app/main/ui/settings/password.cljs:119 msgid "dashboard.password-change" msgstr "החלפת סיסמה" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/pin_button.cljs:24, src/app/main/ui/dashboard/project_menu.cljs:95 msgid "dashboard.pin-unpin" msgstr "נעיצה/שחרור" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:51 msgid "dashboard.projects-title" msgstr "מיזמים" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:86 msgid "dashboard.remove-account" msgstr "להסיר את החשבון שלך?" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "dashboard.remove-shared" msgstr "הסרה כספריה משותפת" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:78 msgid "dashboard.save-settings" msgstr "שמירת ההגדרות" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:246, src/app/main/ui/dashboard/sidebar.cljs:247 msgid "dashboard.search-placeholder" msgstr "חיפוש…" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:55 msgid "dashboard.searching-for" msgstr "מתבצע חיפוש אחר „%s”…" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:56 msgid "dashboard.select-ui-language" msgstr "בחירת שפת מנשק משתמש" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:63 msgid "dashboard.select-ui-theme" msgstr "בחירת ערכת עיצוב" -#: src/app/main/ui/dashboard/grid.cljs +#: src/app/main/ui/dashboard/projects.cljs:282 msgid "dashboard.show-all-files" msgstr "הצגת כל הקבצים" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:96 msgid "dashboard.success-delete-file" msgid_plural "dashboard.success-delete-file" msgstr[0] "הקובץ שלך נמחק בהצלחה" @@ -703,11 +752,11 @@ msgstr[1] "הקבצים שלך נמחקו בהצלחה" msgstr[2] "הקבצים שלך נמחקו בהצלחה" msgstr[3] "הקבצים שלך נמחקו בהצלחה" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:59 msgid "dashboard.success-delete-project" msgstr "המיזם שלך נמחק בהצלחה" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:91 msgid "dashboard.success-duplicate-file" msgid_plural "dashboard.success-delete-file" msgstr[0] "הקובץ שלך שוכפל בהצלחה" @@ -715,845 +764,933 @@ msgstr[1] "הקבצים שלך שוכפלו בהצלחה" msgstr[2] "הקבצים שלך שוכפלו בהצלחה" msgstr[3] "הקבצים שלך שוכפלו בהצלחה" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:33 msgid "dashboard.success-duplicate-project" msgstr "המיזם שלך שוכפל בהצלחה" -#: src/app/main/ui/dashboard/grid.cljs, src/app/main/ui/dashboard/sidebar.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:130, src/app/main/ui/dashboard/grid.cljs:558, src/app/main/ui/dashboard/sidebar.cljs:152 msgid "dashboard.success-move-file" msgstr "הקובץ שלך הועבר בהצלחה" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:129 msgid "dashboard.success-move-files" msgstr "הקבצים שלך הועברו בהצלחה" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:54 msgid "dashboard.success-move-project" msgstr "המיזם שלך הועבר בהצלחה" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1052 msgid "dashboard.team-info" msgstr "פרטי הצוות" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1070 msgid "dashboard.team-members" msgstr "חברי הצוות" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1085 msgid "dashboard.team-projects" msgstr "מיזמי הצוות" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:61 msgid "dashboard.theme-change" msgstr "ערכת עיצוב מנשק משתמש" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:42 msgid "dashboard.title-search" msgstr "תוצאות חיפוש" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:50 msgid "dashboard.type-something" msgstr "נא להקליד כדי לחפש" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:287, src/app/main/ui/workspace/main_menu.cljs:566 msgid "dashboard.unpublish-shared" msgstr "ביטול פרסום ספרייה" -#: src/app/main/ui/settings/profile.cljs, -#: src/app/main/ui/settings/password.cljs, -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:71 msgid "dashboard.update-settings" msgstr "עדכון הגדרות" +#: src/app/main/ui/dashboard/team.cljs:861 msgid "dashboard.webhooks.active" msgstr "פעילה" +#: src/app/main/ui/dashboard/team.cljs:862 msgid "dashboard.webhooks.active.explain" msgstr "כאשר ההתליה הזאת מופעלת פרטי האירוע יישלחו" +#: src/app/main/ui/dashboard/team.cljs:852 msgid "dashboard.webhooks.content-type" msgstr "סוג תוכן" +#: src/app/main/ui/dashboard/team.cljs:885 msgid "dashboard.webhooks.create" msgstr "יצירת התליית רשת" +#: src/app/main/ui/dashboard/team.cljs:775 msgid "dashboard.webhooks.create.success" msgstr "התליית הרשת נוצרה בהצלחה." +#: src/app/main/ui/dashboard/team.cljs:882 msgid "dashboard.webhooks.description" msgstr "" "התליות רשת הן דרך פשוטה לאפשר לאתרים אחרים לקבל הודעות כשאירועים מסוימים " "מתרחשים ב־Penpot. אנו נשלח בקשת POST לכל אחת מהכתובות שתצויינה." +#: src/app/main/ui/dashboard/team.cljs:1005 msgid "dashboard.webhooks.empty.add-one" msgstr "לחיצה על הכפתור „הוספת התליית רשת” תוסיף אחת." +#: src/app/main/ui/dashboard/team.cljs:1004 msgid "dashboard.webhooks.empty.no-webhooks" msgstr "לא נוצרו התליות רשת עדיין." +#, unused msgid "dashboard.webhooks.update.success" msgstr "התליות הרשת עודכנו בהצלחה." -#: src/app/main/ui/settings.cljs +#: src/app/main/ui/settings.cljs:31 msgid "dashboard.your-account-title" msgstr "החשבון שלך" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:70 msgid "dashboard.your-email" msgstr "דוא״ל" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:62 msgid "dashboard.your-name" msgstr "שמך" -#: src/app/main/ui/dashboard/search.cljs, src/app/main/ui/dashboard/team.cljs, -#: src/app/main/ui/dashboard/libraries.cljs, -#: src/app/main/ui/dashboard/projects.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:38, src/app/main/ui/dashboard/fonts.cljs:33, src/app/main/ui/dashboard/libraries.cljs:42, src/app/main/ui/dashboard/projects.cljs:318, src/app/main/ui/dashboard/search.cljs:30, src/app/main/ui/dashboard/sidebar.cljs:312, src/app/main/ui/dashboard/team.cljs:495, src/app/main/ui/dashboard/team.cljs:729, src/app/main/ui/dashboard/team.cljs:991, src/app/main/ui/dashboard/team.cljs:1038 msgid "dashboard.your-penpot" msgstr "ה־Penpot שלך" -#: src/app/main/ui/alert.cljs +#: src/app/main/ui/alert.cljs:32 msgid "ds.alert-ok" msgstr "אישור" -#: src/app/main/ui/alert.cljs +#: src/app/main/ui/alert.cljs:31, src/app/main/ui/alert.cljs:34 msgid "ds.alert-title" msgstr "תשומת לב" -#: src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:83 msgid "ds.component-subtitle" msgstr "רכיבים לעדכון:" -#: src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:36, src/app/main/ui/workspace/plugins.cljs:246 msgid "ds.confirm-cancel" msgstr "ביטול" -#: src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:37, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:141 msgid "ds.confirm-ok" msgstr "אישור" -#: src/app/main/ui/confirm.cljs, src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:35, src/app/main/ui/confirm.cljs:39 msgid "ds.confirm-title" msgstr "להמשיך?" -#: src/app/main/data/users.cljs +#: src/app/main/data/users.cljs:705 msgid "errors.auth-provider-not-allowed" msgstr "ספק האימות לא מורשה לפרופיל הזה" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:62 msgid "errors.auth-provider-not-configured" msgstr "לא מוגדר ספק אימות." +#: src/app/main/errors.cljs:104 msgid "errors.auth.unable-to-login" msgstr "נראה שלא עברת אימות או שתוקף ההפעלה פג." +#: src/app/main/data/fonts.cljs:189 msgid "errors.bad-font" msgstr "לא ניתן לטעון את הגופן %s" +#: src/app/main/data/fonts.cljs:188 msgid "errors.bad-font-plural" msgstr "לא ניתן לטעון את הגופנים %s" +#: src/app/main/data/workspace/media.cljs:198 msgid "errors.cannot-upload" msgstr "לא ניתן להעלות את קובץ המדיה." -#: src/app/main/data/workspace.cljs +#: src/app/main/data/workspace.cljs:1598 msgid "errors.clipboard-not-implemented" msgstr "הדפדפן שלך לא יכול לבצע את הפעולה הזאת" -#: src/app/main/ui/auth/verify_token.cljs, -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/auth/verify_token.cljs:82, src/app/main/ui/settings/change_email.cljs:46 msgid "errors.email-already-exists" msgstr "כתובת הדוא״ל כבר בשימוש" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:87 msgid "errors.email-already-validated" msgstr "כתובת הדוא״ל כבר אומתה." +#: src/app/main/ui/settings/password.cljs:28 msgid "errors.email-as-password" msgstr "אין לך אפשרות להשתמש בכתובת הדוא״ל שלך כסיסמה" -#: src/app/main/data/users.cljs +#: src/app/main/data/users.cljs:707, src/app/main/ui/auth/register.cljs:63 msgid "errors.email-domain-not-allowed" msgstr "שם התחום לא מורשה" -#: src/app/main/ui/auth/register.cljs, -#: src/app/main/ui/auth/recovery_request.cljs, -#: src/app/main/ui/settings/change_email.cljs, -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/auth/recovery_request.cljs:63, src/app/main/ui/dashboard/team.cljs:578, src/app/main/ui/settings/change_email.cljs:54 msgid "errors.email-has-permanent-bounces" msgstr "לכתובת הדוא״ל „%s” יש יותר מדי דוחות החזרה קבועים." -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs, -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/login.cljs:81, src/app/main/ui/auth/recovery_request.cljs:31, src/app/main/ui/auth/register.cljs:43 msgid "errors.email-invalid" msgstr "נא למלא כתובת דוא״ל תקפה בבקשה" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:35 msgid "errors.email-invalid-confirmation" msgstr "כתובת הדוא״ל לאימות חייבת להיות תואמת" +#: src/app/main/ui/dashboard/team.cljs:170 msgid "errors.email-spam-or-permanent-bounces" msgstr "כתובת הדוא״ל „%s” דווחה כספאם או שההודעות תוקפצנה לצמיתות." -#: src/app/main/errors.cljs +#: src/app/main/errors.cljs:227 msgid "errors.feature-mismatch" msgstr "" -"נראה שניסית לפתוח קובץ בו פעילה היכולת ‚%s’ אבל מנשק ה־Penpot שלך לא תומך בה " -"או שהיא מושבתת." +"נראה שניסית לפתוח קובץ בו פעילה היכולת ‚%s’ אבל מנשק ה־Penpot שלך לא תומך " +"בה או שהיא מושבתת." -#: src/app/main/errors.cljs +#: src/app/main/errors.cljs:231, src/app/main/errors.cljs:245 msgid "errors.feature-not-supported" msgstr "אין תמיכה ביכולת ‚%s’." -#: src/app/main/errors.cljs +#: src/app/main/errors.cljs:223 msgid "errors.file-feature-mismatch" msgstr "" "נראה שאין התאמ בין היכולות הפעילות לבין הקובץ שניסית לפתוח. יש להחיל הסבות " "עבור ‚%s’ לפני שיתאפשר לפתוח את הקובץ הזה." -#: src/app/main/ui/auth/verify_token.cljs, -#: src/app/main/ui/settings/feedback.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/data/users.cljs:709, src/app/main/ui/auth/login.cljs:65, src/app/main/ui/auth/login.cljs:116, src/app/main/ui/auth/register.cljs:69, src/app/main/ui/auth/register.cljs:237, src/app/main/ui/auth/verify_token.cljs:92, src/app/main/ui/dashboard/team.cljs:173, src/app/main/ui/onboarding/team_choice.cljs:95, src/app/main/ui/settings/access_tokens.cljs:91, src/app/main/ui/settings/feedback.cljs:52 msgid "errors.generic" msgstr "קרה משהו לא טוב." -#: src/app/main/ui/components/color_input.cljs +#: src/app/main/ui/components/color_input.cljs:57 msgid "errors.invalid-color" msgstr "צבע שגוי" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/static.cljs:43 msgid "errors.invite-invalid" msgstr "ההזמנה שגויה" +#: src/app/main/ui/static.cljs:44 msgid "errors.invite-invalid.info" msgstr "ההזמנה כנראה בוטלה או שתוקפה פג." -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:101 msgid "errors.ldap-disabled" msgstr "אימות מול LDAP הושבת." -#: src/app/main/errors.cljs +#: src/app/main/errors.cljs:239 msgid "errors.max-quote-reached" msgstr "הגעת למיכסת ה־‚%s’. נא ליצור קשר עם התמיכה." -#: src/app/main/data/workspace/persistence.cljs +#: src/app/main/data/workspace/media.cljs:184 msgid "errors.media-too-large" msgstr "התמונה גדולה מכדי להוסיף אותה." -#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs +#: src/app/main/data/media.cljs:68, src/app/main/data/workspace/media.cljs:187 msgid "errors.media-type-mismatch" msgstr "נראה כי תוכן התמונה לא תואם לסיומת הקובץ." -#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs +#: src/app/main/data/media.cljs:65, src/app/main/data/workspace/media.cljs:172, src/app/main/data/workspace/media.cljs:175, src/app/main/data/workspace/media.cljs:178, src/app/main/data/workspace/media.cljs:181 msgid "errors.media-type-not-allowed" msgstr "נראה כי זאת תמונה שגויה." -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:574 msgid "errors.member-is-muted" -msgstr "" -"הודעות הדוא״ל לפרופיל שהזמנת מושתקות (דיווחים על דואר זבל או הרבה החזרות)." +msgstr "הודעות הדוא״ל לפרופיל שהזמנת מושתקות (דיווחים על דואר זבל או הרבה החזרות)." -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:61 msgid "errors.password-invalid-confirmation" msgstr "סיסמת האימות חייבת להיות תואמת" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:64 msgid "errors.password-too-short" msgstr "הסיסמה חייבת להיות באורך 8 תווים לפחות" +#: src/app/main/errors.cljs:124 msgid "errors.paste-data-validation" msgstr "נתונים שגויים בלוח הגזירים" +#: src/app/main/data/users.cljs:703, src/app/main/ui/auth/login.cljs:97, src/app/main/ui/auth/login.cljs:105 msgid "errors.profile-blocked" msgstr "הפרופיל חסום" -#: src/app/main/ui/auth/recovery_request.cljs, -#: src/app/main/ui/settings/change_email.cljs, -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/auth/recovery_request.cljs:60, src/app/main/ui/dashboard/team.cljs:164, src/app/main/ui/dashboard/team.cljs:570, src/app/main/ui/settings/change_email.cljs:50 msgid "errors.profile-is-muted" msgstr "הודעות הדוא״ל לפרופיל שלך מושתקות (דיווחי דואר זבל או הרבה החזרות)." -#: src/app/main/ui/auth/register.cljs +#: src/app/main/data/users.cljs:701, src/app/main/ui/auth/register.cljs:60 msgid "errors.registration-disabled" msgstr "ההרשמה מושבתת כרגע." -#: src/app/main/errors.cljs +#: src/app/main/errors.cljs:218 msgid "errors.team-feature-mismatch" msgstr "התגלתה יכולת לא תואמת ‚%s’" +#: src/app/main/ui/dashboard/sidebar.cljs:365, src/app/main/ui/dashboard/team.cljs:359 msgid "errors.team-leave.insufficient-members" msgstr "אין מספיק חברים כדי לעזוב את הצוות, כנראה יהיה עליך למחוק אותו." +#: src/app/main/ui/dashboard/sidebar.cljs:368, src/app/main/ui/dashboard/team.cljs:362 msgid "errors.team-leave.member-does-not-exists" msgstr "החבר שניסית להקצות לא קיים." +#: src/app/main/ui/dashboard/sidebar.cljs:371, src/app/main/ui/dashboard/team.cljs:365 msgid "errors.team-leave.owner-cant-leave" msgstr "הבעלים לא יכולים לעזוב את הקבוצה, עליך להעביר את תפקיד הבעלות." -#: src/app/main/data/media.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs +#: src/app/main/data/media.cljs:71 msgid "errors.unexpected-error" msgstr "אירעה שגיאה בלתי צפויה." -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:60 msgid "errors.unexpected-token" msgstr "אסימון בלתי ידוע" +#, unused msgid "errors.validation" msgstr "שגיאת אימות" -#: src/app/main/errors.cljs +#: src/app/main/errors.cljs:235 msgid "errors.version-not-supported" msgstr "מספר גרסת הקובץ לא תואם" +#: src/app/main/ui/dashboard/team.cljs:796 msgid "errors.webhooks.connection" msgstr "שגיאת תקשורת, הכתובת אינה נגישה" +#: src/app/main/ui/dashboard/team.cljs:790 msgid "errors.webhooks.invalid-uri" msgstr "הכתובת לא מעבירה תיקוף." +#: src/app/main/ui/dashboard/team.cljs:949 msgid "errors.webhooks.last-delivery" msgstr "ההעברה האחרונה לא הצליחה." +#: src/app/main/ui/dashboard/team.cljs:792, src/app/main/ui/dashboard/team.cljs:952 msgid "errors.webhooks.ssl-validation" msgstr "שגיאה בתיקוף SSL." +#: src/app/main/ui/dashboard/team.cljs:794 msgid "errors.webhooks.timeout" msgstr "תום זמן המתנה" +#: src/app/main/ui/dashboard/team.cljs:788 msgid "errors.webhooks.unexpected" msgstr "שגיאה לא צפויה בעת תיקוף" +#: src/app/main/ui/dashboard/team.cljs:798, src/app/main/ui/dashboard/team.cljs:955 msgid "errors.webhooks.unexpected-status" msgstr "המצב %s לא צפוי" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:109, src/app/main/ui/auth/login.cljs:113 msgid "errors.wrong-credentials" msgstr "כתובת הדוא״ל או הסיסמה שגויים." -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:25 msgid "errors.wrong-old-password" msgstr "הסיסמה הישנה שגויה" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:77 msgid "feedback.description" msgstr "תיאור" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:95 msgid "feedback.discourse-go-to" msgstr "מעבר לפורום של Penpot" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:89 msgid "feedback.discourse-subtitle1" msgstr "אנחנו שמחים שהצטרפת אלינו. לקבלת עזרה, נא לחפש בטרם פרסום הודעה." -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:88 msgid "feedback.discourse-title" msgstr "קהילת Penpot" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:72 msgid "feedback.subject" msgstr "נושא" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:69 msgid "feedback.subtitle" msgstr "" "נא לתאר את הסיבה שלך לשליחת ההודעה תוך פירוט האם זאת תקלה, רעיון או בספק. " "אחד מחברי הצוות שלנו יגיב לך במהירות האפשרית." -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:68 msgid "feedback.title" msgstr "דוא״ל" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:105 msgid "feedback.twitter-go-to" msgstr "מעבר ל־X" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:99 msgid "feedback.twitter-subtitle1" msgstr "כאן כדי לסייע בסוגיות טכניות." -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:98 msgid "feedback.twitter-title" msgstr "חשבון תמיכה ב־X" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:30 msgid "generic.error" msgstr "אירעה שגיאה" -#: src/app/main/ui/inspect/attributes/blur.cljs +#: src/app/main/ui/viewer/inspect/attributes/blur.cljs:26 msgid "inspect.attributes.blur" msgstr "טשטוש" -#: src/app/main/ui/inspect/attributes/blur.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:115 msgid "inspect.attributes.blur.value" msgstr "ערך" -#: src/app/main/ui/inspect/attributes/common.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:112 msgid "inspect.attributes.color.hex" msgstr "הקסדצימלי" -#: src/app/main/ui/inspect/attributes/common.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:114 msgid "inspect.attributes.color.hsla" msgstr "HSLA" -#: src/app/main/ui/inspect/attributes/common.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:113 msgid "inspect.attributes.color.rgba" msgstr "RGBA" -#: src/app/main/ui/inspect/attributes/fill.cljs +#: src/app/main/ui/viewer/inspect/attributes/fill.cljs:57 msgid "inspect.attributes.fill" msgstr "מילוי" -#: src/app/main/ui/inspect/attributes/image.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:99, src/app/main/ui/viewer/inspect/attributes/image.cljs:51 msgid "inspect.attributes.image.download" msgstr "הורדת תמונת מקור" -#: src/app/main/ui/inspect/attributes/image.cljs +#: src/app/main/ui/viewer/inspect/attributes/image.cljs:39 msgid "inspect.attributes.image.height" msgstr "גובה" -#: src/app/main/ui/inspect/attributes/image.cljs +#: src/app/main/ui/viewer/inspect/attributes/image.cljs:32 msgid "inspect.attributes.image.width" msgstr "רוחב" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout" msgstr "פריסה" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.height" msgstr "גובה" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.left" msgstr "שמאל" -#: src/app/main/ui/inspect/attributes/layout.cljs, -#: src/app/main/ui/inspect/attributes/layout.cljs +#: src/app/main/ui/inspect/attributes/layout.cljs, src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.radius" msgstr "רדיוס" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.rotation" msgstr "סיבוב" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.top" msgstr "עליון" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.width" msgstr "רוחב" -#: src/app/main/ui/inspect/attributes/shadow.cljs +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:57 msgid "inspect.attributes.shadow" msgstr "צל" -#: src/app/main/ui/inspect/attributes/layout.cljs +#: src/app/main/ui/viewer/inspect/attributes/geometry.cljs:40 msgid "inspect.attributes.size" msgstr "גודל ומיקום" -#: src/app/main/ui/inspect/attributes/stroke.cljs +#: src/app/main/ui/viewer/inspect/attributes/stroke.cljs:52 msgid "inspect.attributes.stroke" msgstr "מתאר" +#, permanent, unused msgid "inspect.attributes.stroke.alignment.center" msgstr "מרכז" +#, permanent, unused msgid "inspect.attributes.stroke.alignment.inner" msgstr "בפנים" +#, permanent, unused msgid "inspect.attributes.stroke.alignment.outer" msgstr "בחוץ" +#, unused msgid "inspect.attributes.stroke.style.dotted" msgstr "מנוקד" +#, unused msgid "inspect.attributes.stroke.style.mixed" msgstr "מעורב" +#, unused msgid "inspect.attributes.stroke.style.none" msgstr "ללא" +#, unused msgid "inspect.attributes.stroke.style.solid" msgstr "אחיד" #: src/app/main/ui/inspect/attributes/stroke.cljs +#, unused msgid "inspect.attributes.stroke.width" msgstr "רוחב" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:81, src/app/main/ui/viewer/inspect/attributes/text.cljs:194 msgid "inspect.attributes.typography" msgstr "טיפוגרפיה" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:89 msgid "inspect.attributes.typography.font-family" msgstr "משפחת גופנים" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:107 msgid "inspect.attributes.typography.font-size" msgstr "גודל גופן" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:98 msgid "inspect.attributes.typography.font-style" msgstr "סגנון גופן" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:116 msgid "inspect.attributes.typography.font-weight" msgstr "משקל גופן" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:134 msgid "inspect.attributes.typography.letter-spacing" msgstr "ריווח תווים" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:125 msgid "inspect.attributes.typography.line-height" msgstr "גובה שורה" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:143 msgid "inspect.attributes.typography.text-decoration" msgstr "עיטור טקסט" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:145 msgid "inspect.attributes.typography.text-decoration.none" msgstr "ללא" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:146 msgid "inspect.attributes.typography.text-decoration.strikethrough" msgstr "קו חוצה" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:147 msgid "inspect.attributes.typography.text-decoration.underline" msgstr "קו תחתי" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:156 msgid "inspect.attributes.typography.text-transform" msgstr "התמרת טקסט" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:158 msgid "inspect.attributes.typography.text-transform.lowercase" msgstr "אותיות קטנות" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:159 msgid "inspect.attributes.typography.text-transform.none" msgstr "ללא" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:160 msgid "inspect.attributes.typography.text-transform.titlecase" msgstr "ראשונות גדולות" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:162 msgid "inspect.attributes.typography.text-transform.unset" msgstr "ביטול הגדרה" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:161 msgid "inspect.attributes.typography.text-transform.uppercase" msgstr "אותיות גדולות" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:140 msgid "inspect.empty.help" msgstr "למידע נוסף על חקירת עיצוב אפשר לבקר במרכז העזרה של Penpot" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:143 msgid "inspect.empty.more-info" msgstr "מידע נוסף על חקירה" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:135 msgid "inspect.empty.select" msgstr "ניתן לבחור צורה, לוח או קבוצה ולראות את המאפיינים והקוד שלהם" -#: src/app/main/ui/inspect/right_sidebar.cljs +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:125 msgid "inspect.tabs.code" msgstr "קוד" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:98 msgid "inspect.tabs.code.selected.circle" msgstr "עיגול" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:99 msgid "inspect.tabs.code.selected.component" msgstr "רכיב" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:100 msgid "inspect.tabs.code.selected.curve" msgstr "עיקול" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:101 msgid "inspect.tabs.code.selected.frame" msgstr "לוח" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:102 msgid "inspect.tabs.code.selected.group" msgstr "קבוצה" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:103 msgid "inspect.tabs.code.selected.image" msgstr "תמונה" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:104 msgid "inspect.tabs.code.selected.mask" msgstr "מסכה" -#: src/app/main/ui/inspect/right_sidebar.cljs +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:93 msgid "inspect.tabs.code.selected.multiple" msgstr "%s נבחרו" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:105 msgid "inspect.tabs.code.selected.path" msgstr "נתיב" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:106 msgid "inspect.tabs.code.selected.rect" msgstr "מרובע" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:107 msgid "inspect.tabs.code.selected.svg-raw" msgstr "SVG" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:108 msgid "inspect.tabs.code.selected.text" msgstr "טקסט" -#: src/app/main/ui/inspect/right_sidebar.cljs +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:115 msgid "inspect.tabs.info" msgstr "מידע" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:158 msgid "label.shortcuts" msgstr "קיצורי דרך" +#: src/app/main/ui/dashboard/import.cljs:527 msgid "labels.accept" msgstr "מקובל" -#: src/app/main/ui/settings/sidebar.cljs +#: src/app/main/ui/settings/sidebar.cljs:100 msgid "labels.access-tokens" msgstr "אסימוני גישה" +#: src/app/main/ui/dashboard/team.cljs:968 msgid "labels.active" msgstr "פעיל" +#: src/app/main/ui/dashboard/fonts.cljs:175 msgid "labels.add-custom-font" msgstr "הוספת גופן משלך" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:120, src/app/main/ui/dashboard/team.cljs:276, src/app/main/ui/dashboard/team.cljs:519, src/app/main/ui/dashboard/team.cljs:549, src/app/main/ui/onboarding/team_choice.cljs:67 msgid "labels.admin" msgstr "ניהול" +#: src/app/main/ui/onboarding/questions.cljs:174 +msgid "labels.adobe-xd" +msgstr "Adobe XD" + #: src/app/main/ui/workspace/comments.cljs +#, unused msgid "labels.all" msgstr "הכול" +#: src/app/main/ui/auth.cljs:37 msgid "labels.and" msgstr "וגם" +#: src/app/main/ui/onboarding/team_choice.cljs:162 msgid "labels.back" msgstr "חזרה" -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:59 msgid "labels.bad-gateway.desc-message" msgstr "" "נראה כאילו עליך להמתין מעט ולנסות שוב, אנו מבצעים עבודות תחזוקה פשוטות " "בשרתים שלנו." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:58 msgid "labels.bad-gateway.main-message" msgstr "שער גישה שגוי" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/data/common.cljs:112, src/app/main/ui/dashboard/change_owner.cljs:69, src/app/main/ui/dashboard/import.cljs:514, src/app/main/ui/dashboard/team.cljs:868, src/app/main/ui/delete_shared.cljs:35, src/app/main/ui/export.cljs:164, src/app/main/ui/export.cljs:460, src/app/main/ui/settings/access_tokens.cljs:188, src/app/main/ui/viewer/share_link.cljs:203, src/app/main/ui/workspace/sidebar/assets/groups.cljs:149 msgid "labels.cancel" msgstr "ביטול" +#: src/app/main/ui/onboarding/questions.cljs:176 +msgid "labels.canva" +msgstr "Canva" + +#: src/app/main/ui/dashboard/projects.cljs:93, src/app/main/ui/export.cljs:478, src/app/main/ui/settings/access_tokens.cljs:183, src/app/main/ui/viewer/login.cljs:77, src/app/main/ui/viewer/share_link.cljs:174, src/app/main/ui/workspace/libraries.cljs:522 msgid "labels.close" msgstr "סגירה" -#: src/app/main/ui/dashboard/comments.cljs +#: src/app/main/ui/dashboard/comments.cljs:104, src/app/main/ui/viewer/comments.cljs:70, src/app/main/ui/workspace/comments.cljs:126 msgid "labels.comments" msgstr "הערות" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:985, src/app/main/ui/workspace/main_menu.cljs:110 msgid "labels.community" msgstr "קהילה" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:103 msgid "labels.confirm-password" msgstr "אישור סיסמה" +#: src/app/main/ui/dashboard/import.cljs:520, src/app/main/ui/export.cljs:465, src/app/main/ui/onboarding/newsletter.cljs:101 msgid "labels.continue" msgstr "להמשיך" +#, unused msgid "labels.continue-with" msgstr "להמשיך עם" +#: src/app/main/ui/viewer/login.cljs:75 msgid "labels.continue-with-penpot" msgstr "אפשר להמשיך עם חשבון Penpot" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:642 msgid "labels.copy-invitation-link" msgstr "העתקת קישור" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:157, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:190 msgid "labels.create" msgstr "יצירה" -#: src/app/main/ui/dashboard/team_form.cljs, -#: src/app/main/ui/dashboard/team_form.cljs +#: src/app/main/ui/dashboard/team_form.cljs:101, src/app/main/ui/dashboard/team_form.cljs:121 msgid "labels.create-team" msgstr "יצירת צוות חדש" -#: src/app/main/ui/dashboard/team_form.cljs +#: src/app/main/ui/dashboard/team_form.cljs:113 msgid "labels.create-team.placeholder" msgstr "נא למלא שם לצוות החדש" +#, unused msgid "labels.custom-fonts" msgstr "גופנים משלך" -#: src/app/main/ui/settings/sidebar.cljs +#: src/app/main/ui/settings/sidebar.cljs:73 msgid "labels.dashboard" msgstr "לוח בקרה" -#: src/app/main/ui/dashboard/project_menu.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:306, src/app/main/ui/dashboard/fonts.cljs:255, src/app/main/ui/dashboard/fonts.cljs:332, src/app/main/ui/dashboard/fonts.cljs:346, src/app/main/ui/dashboard/project_menu.cljs:115, src/app/main/ui/dashboard/team.cljs:904, src/app/main/ui/settings/access_tokens.cljs:209, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:209 msgid "labels.delete" msgstr "מחיקה" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:357 msgid "labels.delete-comment" msgstr "מחיקת הערה" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:354 msgid "labels.delete-comment-thread" msgstr "מחיקת שרשור" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:648 msgid "labels.delete-invitation" msgstr "מחיקת הזמנה" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:262 msgid "labels.delete-multi-files" msgstr "מחיקת %s קבצים" +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:199 msgid "labels.discard" msgstr "התעלמות" -#: src/app/main/ui/dashboard/projects.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs, -#: src/app/main/ui/dashboard/files.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:28, src/app/main/ui/dashboard/files.cljs:72, src/app/main/ui/dashboard/files.cljs:156, src/app/main/ui/dashboard/projects.cljs:220, src/app/main/ui/dashboard/projects.cljs:224, src/app/main/ui/dashboard/sidebar.cljs:791 msgid "labels.drafts" msgstr "טיוטות" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:350, src/app/main/ui/dashboard/fonts.cljs:252, src/app/main/ui/dashboard/team.cljs:902, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:205 msgid "labels.edit" msgstr "עריכה" +#, unused msgid "labels.edit-file" msgstr "עריכת קובץ" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:118, src/app/main/ui/dashboard/team.cljs:279, src/app/main/ui/dashboard/team.cljs:520, src/app/main/ui/dashboard/team.cljs:553, src/app/main/ui/onboarding/team_choice.cljs:66 msgid "labels.editor" msgstr "עורך" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:661 msgid "labels.expired-invitation" msgstr "התוקף פג" +#: src/app/main/ui/export.cljs:173 msgid "labels.export" msgstr "ייצוא" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:51 msgid "labels.feedback-disabled" msgstr "המשוב הושבת" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:42 msgid "labels.feedback-sent" msgstr "המשוב נשלח" +#: src/app/main/ui/onboarding/questions.cljs:170 +msgid "labels.figma" +msgstr "Figma" + +#: src/app/main/ui/dashboard/fonts.cljs:412 msgid "labels.font-family" msgstr "משפחת גופנים" +#, unused msgid "labels.font-providers" msgstr "ספקי גופנים" +#: src/app/main/ui/dashboard/fonts.cljs:413 msgid "labels.font-variants" msgstr "סגנונות" +#: src/app/main/ui/dashboard/fonts.cljs:52, src/app/main/ui/dashboard/sidebar.cljs:811 msgid "labels.fonts" msgstr "גופנים" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/onboarding/questions.cljs:263 +msgid "labels.founder" +msgstr "מייסד/סגן נשיא" + +#: src/app/main/ui/onboarding/questions.cljs:262 +msgid "labels.freelancer" +msgstr "יש לי עסק משלי" + +#: src/app/main/ui/dashboard/sidebar.cljs:1015, src/app/main/ui/workspace/main_menu.cljs:142 msgid "labels.github-repo" msgstr "מאגר GitHub" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/settings/sidebar.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:1032, src/app/main/ui/settings/sidebar.cljs:113, src/app/main/ui/workspace/main_menu.cljs:171 msgid "labels.give-feedback" msgstr "הגשת משוב" +#: src/app/main/ui/auth/recovery_request.cljs:110, src/app/main/ui/auth/register.cljs:285, src/app/main/ui/viewer/login.cljs:117 msgid "labels.go-back" msgstr "חזרה" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:978, src/app/main/ui/workspace/main_menu.cljs:102 msgid "labels.help-center" msgstr "מרכז העזרה" -#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/comments.cljs:103, src/app/main/ui/workspace/comments.cljs:67 msgid "labels.hide-resolved-comments" msgstr "הסתרת הערות שנפתרו" +#: src/app/main/ui/dashboard/team.cljs:969 msgid "labels.inactive" msgstr "בלתי פעיל" +#: src/app/main/ui/dashboard/fonts.cljs:410 msgid "labels.installed-fonts" msgstr "גופנים מותקנים" -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:144 msgid "labels.internal-error.desc-message" msgstr "" "משהו לא טוב קרה. נא לנסות לבצע את הפעולה שוב ואם הבעיה חוזרת, נא ליצור קשר " "עם התמיכה." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:143 msgid "labels.internal-error.main-message" msgstr "שגיאה פנימית" -#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/onboarding/questions.cljs:178 +msgid "labels.invision" +msgstr "InVision" + +#: src/app/main/ui/dashboard/sidebar.cljs:516, src/app/main/ui/dashboard/team.cljs:89, src/app/main/ui/dashboard/team.cljs:97, src/app/main/ui/dashboard/team.cljs:708 msgid "labels.invitations" msgstr "הזמנות" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:51 msgid "labels.language" msgstr "שפה" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:1008, src/app/main/ui/workspace/main_menu.cljs:134 msgid "labels.libraries-and-templates" msgstr "ספריות ותבניות" +#: src/app/main/ui/viewer/header.cljs:203 msgid "labels.log-or-sign" msgstr "כניסה או הרשמה" -#: src/app/main/ui/settings.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:1040 msgid "labels.logout" msgstr "יציאה" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/team.cljs:468 msgid "labels.member" msgstr "חבר" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:510, src/app/main/ui/dashboard/team.cljs:87, src/app/main/ui/dashboard/team.cljs:95 msgid "labels.members" msgstr "חברים" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:96 msgid "labels.new-password" msgstr "סיסמה חדשה" -#: src/app/main/ui/workspace/comments.cljs, -#: src/app/main/ui/dashboard/comments.cljs +#: src/app/main/ui/dashboard/templates.cljs:269, src/app/main/ui/onboarding/questions.cljs:55 +msgid "labels.next" +msgstr "הבאה" + +#: src/app/main/ui/dashboard/comments.cljs:128, src/app/main/ui/workspace/comments.cljs:161 msgid "labels.no-comments-available" msgstr "עברת על הכול! התראות על הערות חדשות תופענה כאן." -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:694 msgid "labels.no-invitations" msgstr "אין הזמנות ממתינות." -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:696 +#, markdown msgid "labels.no-invitations-hint" msgstr "לחיצה על הכפתור **הזמנת אנשים** תאפשר להזמין אנשים לצוות." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:50 msgid "labels.not-found.desc-message" msgstr "יכול להיות שהעמוד לא קיים או שאין לך הרשאות לגשת אליו." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:49 msgid "labels.not-found.main-message" msgstr "אופס!" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/projects.cljs:239, src/app/main/ui/dashboard/team.cljs:1095 msgid "labels.num-of-files" msgid_plural "labels.num-of-files" msgstr[0] "קובץ" @@ -1561,6 +1698,7 @@ msgstr[1] "%s קבצים" msgstr[2] "%s קבצים" msgstr[3] "%s קבצים" +#: src/app/main/ui/viewer/thumbnails.cljs:80 msgid "labels.num-of-frames" msgid_plural "labels.num-of-frames" msgstr[0] "לוח" @@ -1568,7 +1706,7 @@ msgstr[1] "%s לוחות" msgstr[2] "%s לוחות" msgstr[3] "%s לוחות" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1090 msgid "labels.num-of-projects" msgid_plural "labels.num-of-projects" msgstr[0] "מיזם" @@ -1576,388 +1714,442 @@ msgstr[1] "%s מיזמים" msgstr[2] "%s מיזמים" msgstr[3] "%s מיזמים" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:89 msgid "labels.old-password" msgstr "סיסמה ישנה" #: src/app/main/ui/workspace/comments.cljs +#, unused msgid "labels.only-yours" msgstr "שלך בלבד" +#, unused msgid "labels.or" msgstr "או" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/onboarding/questions.cljs:145, src/app/main/ui/onboarding/questions.cljs:214, src/app/main/ui/onboarding/questions.cljs:303, src/app/main/ui/onboarding/questions.cljs:316, src/app/main/ui/onboarding/questions.cljs:389, src/app/main/ui/onboarding/questions.cljs:447 +msgid "labels.other" +msgstr "אחר (נא לפרט)" + +#: src/app/main/ui/dashboard/team.cljs:286, src/app/main/ui/dashboard/team.cljs:518, src/app/main/ui/dashboard/team.cljs:1076 msgid "labels.owner" msgstr "בעלים" -#: src/app/main/ui/settings/sidebar.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/settings/sidebar.cljs:87 msgid "labels.password" msgstr "סיסמה" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:662 msgid "labels.pending-invitation" msgstr "בהמתנה" -#: src/app/main/ui/settings/sidebar.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/onboarding/questions.cljs:51 +msgid "labels.previous" +msgstr "הקודמת" + +#: src/app/main/ui/settings/profile.cljs:118, src/app/main/ui/settings/sidebar.cljs:82 msgid "labels.profile" msgstr "פרופיל" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:784 msgid "labels.projects" msgstr "מיזמים" -#: src/app/main/ui/settings/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:998, src/app/main/ui/settings/sidebar.cljs:106, src/app/main/ui/workspace/main_menu.cljs:126 msgid "labels.release-notes" msgstr "הודעות מהדורה" #: src/app/main/ui/workspace.cljs +#, unused msgid "labels.reload-file" msgstr "רענון קובץ" -#: src/app/main/ui/workspace/libraries.cljs, -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/workspace/libraries.cljs, src/app/main/ui/dashboard/team.cljs +#, unused msgid "labels.remove" msgstr "הסרה" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:316 msgid "labels.remove-member" msgstr "הסרת חבר" -#: src/app/main/ui/dashboard/sidebar.cljs, -#: src/app/main/ui/dashboard/project_menu.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:271, src/app/main/ui/dashboard/project_menu.cljs:85, src/app/main/ui/dashboard/sidebar.cljs:539, src/app/main/ui/workspace/sidebar/assets/groups.cljs:157 msgid "labels.rename" msgstr "שינוי שם" -#: src/app/main/ui/dashboard/team_form.cljs +#: src/app/main/ui/dashboard/team_form.cljs:99 msgid "labels.rename-team" msgstr "שינוי שם לצוות" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:645 msgid "labels.resend-invitation" msgstr "שליחת ההזמנה מחדש" -#: src/app/main/ui/static.cljs, src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:61, src/app/main/ui/static.cljs:70, src/app/main/ui/static.cljs:148 msgid "labels.retry" msgstr "ניסיון חוזר" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:469, src/app/main/ui/dashboard/team.cljs:709 msgid "labels.role" msgstr "תפקיד" +#: src/app/main/ui/dashboard/fonts.cljs:380, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:191 msgid "labels.save" msgstr "שמירה" +#: src/app/main/ui/onboarding/questions.cljs:414, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:436 msgid "labels.search" msgstr "חיפוש" +#: src/app/main/ui/dashboard/fonts.cljs:415 msgid "labels.search-font" msgstr "חיפוש גופן" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/onboarding/questions.cljs:90, src/app/main/ui/onboarding/questions.cljs:248, src/app/main/ui/onboarding/questions.cljs:259, src/app/main/ui/onboarding/questions.cljs:270 +msgid "labels.select-option" +msgstr "בחירת אפשרות" + +#: src/app/main/ui/settings/feedback.cljs:82 msgid "labels.send" msgstr "שליחה" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:82 msgid "labels.sending" msgstr "מתבצעת שליחה…" -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:68 msgid "labels.service-unavailable.desc-message" msgstr "אנחנו בהפוגת תחזוקה מתוכננת של המערכות שלנו." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:67 msgid "labels.service-unavailable.main-message" msgstr "השירות אינו זמין" -#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:530, src/app/main/ui/dashboard/team.cljs:88, src/app/main/ui/dashboard/team.cljs:102, src/app/main/ui/settings/options.cljs:84, src/app/main/ui/settings/sidebar.cljs:93 msgid "labels.settings" msgstr "הגדרות" +#: src/app/main/ui/viewer/header.cljs:199 msgid "labels.share" msgstr "שיתוף" +#, unused msgid "labels.share-prototype" msgstr "שיתוף אבטיפוס" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:800 msgid "labels.shared-libraries" msgstr "ספריות משותפות" -#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/comments.cljs:82, src/app/main/ui/workspace/comments.cljs:55, src/app/main/ui/workspace/comments.cljs:135 msgid "labels.show-all-comments" msgstr "הצגת כל ההערות" +#: src/app/main/ui/viewer/comments.cljs:115 msgid "labels.show-comments-list" msgstr "הצגת רשימת הערות" -#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/comments.cljs:91, src/app/main/ui/workspace/comments.cljs:61, src/app/main/ui/workspace/comments.cljs:136 msgid "labels.show-your-comments" msgstr "הצגת ההערות שלך בלבד" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/onboarding/questions.cljs:172 +msgid "labels.sketch" +msgstr "Sketch" + +#: src/app/main/ui/onboarding/questions.cljs:56 +msgid "labels.start" +msgstr "התחלה" + +#: src/app/main/ui/dashboard/team.cljs:710 msgid "labels.status" msgstr "מצב" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/onboarding/questions.cljs:251 +msgid "labels.student-teacher" +msgstr "סטודנט/ית או מרצה" + +#: src/app/main/ui/dashboard/sidebar.cljs:992, src/app/main/ui/workspace/main_menu.cljs:118 msgid "labels.tutorials" msgstr "מדריכים" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:256 msgid "labels.unpublish-multi-files" msgstr "ביטול פרסום קובצי %s" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:103 msgid "labels.update" msgstr "עדכון" -#: src/app/main/ui/dashboard/team_form.cljs +#: src/app/main/ui/dashboard/team_form.cljs:120 msgid "labels.update-team" msgstr "עדכון צוות" +#: src/app/main/ui/dashboard/fonts.cljs:241 msgid "labels.upload" msgstr "העלאה" +#: src/app/main/ui/dashboard/fonts.cljs:169 msgid "labels.upload-custom-fonts" msgstr "העלאת גופנים משלך" +#: src/app/main/ui/dashboard/fonts.cljs:240 msgid "labels.uploading" msgstr "מתבצעת העלאה…" +#: src/app/main/ui/workspace/sidebar/sitemap.cljs:223 msgid "labels.view-only" msgstr "תצוגה בלבד" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:123, src/app/main/ui/dashboard/team.cljs:282, src/app/main/ui/dashboard/team.cljs:521 msgid "labels.viewer" msgstr "מציג" +#: src/app/main/ui/dashboard/sidebar.cljs:523, src/app/main/ui/dashboard/team.cljs:90, src/app/main/ui/dashboard/team.cljs:100, src/app/main/ui/dashboard/team.cljs:880 msgid "labels.webhooks" msgstr "התליות" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:194 msgid "labels.write-new-comment" msgstr "כתיבת הערה חדשה" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/team.cljs:237 msgid "labels.you" msgstr "(אני)" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:968 msgid "labels.your-account" msgstr "החשבון שלך" +#: src/app/main/ui/workspace/colorpicker.cljs:297, src/app/main/ui/workspace/colorpicker.cljs:298, src/app/main/ui/workspace/colorpicker.cljs:300 msgid "media.choose-image" msgstr "בחירת תמונה" +#, unused msgid "media.gradient" msgstr "מדרג" +#: src/app/main/data/workspace/media.cljs:275, src/app/main/ui/components/color_bullet.cljs:32, src/app/main/ui/components/color_bullet.cljs:45, src/app/main/ui/viewer/inspect/attributes/common.cljs:66, src/app/main/ui/workspace/colorpicker.cljs:211, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:237 msgid "media.image" msgstr "תמונה" +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:77 +msgid "media.image.short" +msgstr "תמונה" + +#: src/app/main/ui/workspace/colorpicker.cljs:290 +msgid "media.keep-aspect-ratio" +msgstr "שמירה על יחס גובה־רוחב" + +#: src/app/main/ui/workspace/colorpicker.cljs:208 msgid "media.linear" msgstr "קווי" -#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs +#: src/app/main/data/media.cljs:49, src/app/main/data/workspace/media.cljs:223, src/app/main/data/workspace/media.cljs:453 msgid "media.loading" msgstr "התמונה נטענת…" +#: src/app/main/ui/workspace/colorpicker.cljs:209 msgid "media.radial" msgstr "מעגלי" +#: src/app/main/ui/workspace/colorpicker.cljs:206 msgid "media.solid" msgstr "אחיד" +#: src/app/main/data/common.cljs:111 msgid "modals.add-shared-confirm-empty.hint" msgstr "" "הספרייה שלך ריקה. לאחר שנוספה כתיקייה משותפת, הנכסים שנוצרים על ידיך יהיו " "זמינים לצד שאר הקבצים שלך. לפרסם אותה?" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/data/common.cljs:113 msgid "modals.add-shared-confirm.accept" msgstr "הוספה כספריה משותפת" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/data/common.cljs:111 msgid "modals.add-shared-confirm.hint" msgstr "" "לאחר שנוספה כספריה משותפת, המשאבים בספריית הקבצים הזאת יהיו זמינים בנוסף " "לשאר הקבצים שלך." -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/data/common.cljs:110 msgid "modals.add-shared-confirm.message" msgstr "הוספת „%s” כספריה משותפת" -#: src/app/main/ui/workspace/nudge.cljs +#: src/app/main/ui/workspace/nudge.cljs:60 msgid "modals.big-nudge" msgstr "הינד גדול" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:127 msgid "modals.change-email.confirm-email" msgstr "אימות כתובת דוא״ל חדשה" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:114 msgid "modals.change-email.info" msgstr "נשלח הודעה לכתובת הדוא״ל הנוכחית שלך „%s” כדי לאמת את הזהות שלך." -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:119 msgid "modals.change-email.new-email" msgstr "כתובת דוא״ל חדשה" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:136 msgid "modals.change-email.submit" msgstr "החלפת כתובת דוא״ל" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:107 msgid "modals.change-email.title" msgstr "החלפת כתובת הדוא״ל שלך" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:165, src/app/main/ui/settings/access_tokens.cljs:171 msgid "modals.create-access-token.copy-token" msgstr "העתקת אסימון" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:142 msgid "modals.create-access-token.expiration-date.label" msgstr "תאריך תפוגה" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:136 msgid "modals.create-access-token.name.label" msgstr "שם" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:138 msgid "modals.create-access-token.name.placeholder" msgstr "השם יכול לסייע לך להבין למה מיועד האסימון" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:191 msgid "modals.create-access-token.submit-label" msgstr "יצירת אסימון" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:123 msgid "modals.create-access-token.title" msgstr "יצירת אסימון גישה" +#: src/app/main/ui/dashboard/team.cljs:873 msgid "modals.create-webhook.submit-label" msgstr "יצירת התליה" +#: src/app/main/ui/dashboard/team.cljs:838 msgid "modals.create-webhook.title" msgstr "יצירת התליה" +#: src/app/main/ui/dashboard/team.cljs:849 msgid "modals.create-webhook.url.label" msgstr "כתובת מטען" +#: src/app/main/ui/dashboard/team.cljs:850 msgid "modals.create-webhook.url.placeholder" msgstr "https://example.com/postreceive" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:271 msgid "modals.delete-acces-token.accept" msgstr "מחיקת אסימון" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:270 msgid "modals.delete-acces-token.message" msgstr "למחוק את האסימון הזה?" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:269 msgid "modals.delete-acces-token.title" msgstr "מחיקת אסימון" -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:59 msgid "modals.delete-account.cancel" msgstr "ביטול ושמירה על החשבון שלי" -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:64 msgid "modals.delete-account.confirm" msgstr "כן, למחוק את החשבון שלי" -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:53 msgid "modals.delete-account.info" msgstr "הסרת החשבון שלך תוביל לאיבוד כל המיזמים והארכיונים הקיימים שלך." -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:46 msgid "modals.delete-account.title" msgstr "למחוק את החשבון שלך?" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:298 msgid "modals.delete-comment-thread.accept" msgstr "מחיקת דיון" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:297 msgid "modals.delete-comment-thread.message" msgstr "למחוק את הדיון הזה? כל התגובות בשרשור תימחקנה." -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:296 msgid "modals.delete-comment-thread.title" msgstr "מחיקת דיון" +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:140 msgid "modals.delete-component-annotation.message" msgstr "למחוק את הסימון הזה?" +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:139 msgid "modals.delete-component-annotation.title" msgstr "מחיקת סימון" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:123 msgid "modals.delete-file-confirm.accept" msgstr "מחיקת קובץ" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:122 msgid "modals.delete-file-confirm.message" msgstr "למחוק את הקובץ?" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:121 msgid "modals.delete-file-confirm.title" msgstr "הקובץ נמחק" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:117 msgid "modals.delete-file-multi-confirm.accept" msgstr "מחיקת קבצים" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:116 msgid "modals.delete-file-multi-confirm.message" msgstr "למחוק %s קבצים?" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:115 msgid "modals.delete-file-multi-confirm.title" msgstr "%s קבצים נמחקים" +#: src/app/main/ui/dashboard/fonts.cljs:345 msgid "modals.delete-font-variant.message" msgstr "למחוק את סגנון הגופן הזה? הוא לא ייטען אם נעשה בו שימוש בקובץ." +#: src/app/main/ui/dashboard/fonts.cljs:344 msgid "modals.delete-font-variant.title" msgstr "סגנון גופן נמחק" +#: src/app/main/ui/dashboard/fonts.cljs:331 msgid "modals.delete-font.message" msgstr "למחוק את הגופן הזה? הוא לא ייטען אם נעשה בו שימוש בקובץ." +#: src/app/main/ui/dashboard/fonts.cljs:330 msgid "modals.delete-font.title" msgstr "גופן נמחק" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs +#: src/app/main/ui/workspace/context_menu.cljs:522, src/app/main/ui/workspace/sidebar/sitemap.cljs:45 msgid "modals.delete-page.body" msgstr "למחוק את העמוד הזה?" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs +#: src/app/main/ui/workspace/context_menu.cljs:521, src/app/main/ui/workspace/sidebar/sitemap.cljs:44 msgid "modals.delete-page.title" msgstr "מחיקת עמוד" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:69 msgid "modals.delete-project-confirm.accept" msgstr "מחיקת מיזם" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:68 msgid "modals.delete-project-confirm.message" msgstr "למחוק את המיזם הזה?" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:67 msgid "modals.delete-project-confirm.title" msgstr "מחיקת מיזם" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:51 msgid "modals.delete-shared-confirm.accept" msgid_plural "modals.delete-shared-confirm.accept" msgstr[0] "מחיקת קובץ" @@ -1965,8 +2157,7 @@ msgstr[1] "מחיקת קבצים" msgstr[2] "מחיקת קבצים" msgstr[3] "מחיקת קבצים" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:55 msgid "modals.delete-shared-confirm.activated.no-files-message" msgid_plural "modals.delete-shared-confirm.activated.no-files-message" msgstr[0] "לא מופעל באף קובץ." @@ -1974,8 +2165,7 @@ msgstr[1] "לא מופעלים באף קובץ." msgstr[2] "לא מופעלים באף קובץ." msgstr[3] "לא מופעלים באף קובץ." -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:57 msgid "modals.delete-shared-confirm.activated.scd-message" msgid_plural "modals.delete-shared-confirm.activated.scd-message" msgstr[0] "הספרייה הזאת מופעלת כאן: " @@ -1983,8 +2173,7 @@ msgstr[1] "הספריות האלו מופעלות כאן: " msgstr[2] "הספריות האלו מופעלות כאן: " msgstr[3] "הספריות האלו מופעלות כאן: " -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:46 msgid "modals.delete-shared-confirm.message" msgid_plural "modals.delete-shared-confirm.message" msgstr[0] "למחוק את הקובץ?" @@ -1992,8 +2181,7 @@ msgstr[1] "למחוק את הקבצים?" msgstr[2] "למחוק את הקבצים?" msgstr[3] "למחוק את הקבצים?" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:41 msgid "modals.delete-shared-confirm.title" msgid_plural "modals.delete-shared-confirm.title" msgstr[0] "מחיקת קובץ" @@ -2001,114 +2189,125 @@ msgstr[1] "מחיקת קבצים" msgstr[2] "מחיקת קבצים" msgstr[3] "מחיקת קבצים" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:435 msgid "modals.delete-team-confirm.accept" msgstr "מחיקת צוות" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:434 msgid "modals.delete-team-confirm.message" msgstr "למחוק את הצוות הזה? כל המיזמים והקבצים שמשויכים לצוות יימחקו לצמיתות." -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:433 msgid "modals.delete-team-confirm.title" msgstr "צוות נמחק" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:427 msgid "modals.delete-team-member-confirm.accept" msgstr "מחיקת חבר" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:426 msgid "modals.delete-team-member-confirm.message" msgstr "למחוק את החבר הזה מהצוות?" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:425 msgid "modals.delete-team-member-confirm.title" msgstr "למחוק חבר בצוות" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:59 msgid "modals.delete-unpublish-shared-confirm.activated.hint" msgid_plural "modals.delete-unpublish-shared-confirm.activated.hint" msgstr[0] "נכסים שכבר נעשה בהם שימוש בקובץ הזה יישארו שם (אף עיצוב לא ייפגע)." -msgstr[1] "" -"נכסים שכבר נעשה בהם שימוש בקבצים האלה יישארו שם (אף עיצוב לא ייפגע)." -msgstr[2] "" -"נכסים שכבר נעשה בהם שימוש בקבצים האלה יישארו שם (אף עיצוב לא ייפגע)." -msgstr[3] "" -"נכסים שכבר נעשה בהם שימוש בקבצים האלה יישארו שם (אף עיצוב לא ייפגע)." +msgstr[1] "נכסים שכבר נעשה בהם שימוש בקבצים האלה יישארו שם (אף עיצוב לא ייפגע)." +msgstr[2] "נכסים שכבר נעשה בהם שימוש בקבצים האלה יישארו שם (אף עיצוב לא ייפגע)." +msgstr[3] "נכסים שכבר נעשה בהם שימוש בקבצים האלה יישארו שם (אף עיצוב לא ייפגע)." +#: src/app/main/ui/dashboard/team.cljs:942 msgid "modals.delete-webhook.accept" msgstr "מחיקת התליה" +#: src/app/main/ui/dashboard/team.cljs:941 msgid "modals.delete-webhook.message" msgstr "למחוק את ההתליה?" +#: src/app/main/ui/dashboard/team.cljs:940 msgid "modals.delete-webhook.title" msgstr "מחיקת התליה" +#: src/app/main/ui/dashboard/team.cljs:872 msgid "modals.edit-webhook.submit-label" msgstr "עריכת התליה" +#: src/app/main/ui/dashboard/team.cljs:837 msgid "modals.edit-webhook.title" msgstr "עריכת התליה" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:218 msgid "modals.invite-member-confirm.accept" msgstr "שליחת הזמנה" +#: src/app/main/ui/dashboard/team.cljs:213, src/app/main/ui/onboarding/team_choice.cljs:156 msgid "modals.invite-member.emails" msgstr "כתובות דוא״ל, מופרדות בפסיקים" +#: src/app/main/ui/dashboard/team.cljs:197 msgid "modals.invite-member.repeated-invitation" msgstr "חלק מכתובות הדוא״ל הן של חברי צוות נוכחיים. ההזמנות לא תישלחנה אליהם." -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:190 msgid "modals.invite-team-member.title" msgstr "הזמנת חברים לצוות" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:423, src/app/main/ui/dashboard/team.cljs:393 msgid "modals.leave-and-close-confirm.hint" -msgstr "" -"כיוון שאין עוד חברים בצוות הזה מלבדך, הצוות יימחק על כל המיזמים והקבצים שלו." +msgstr "כיוון שאין עוד חברים בצוות הזה מלבדך, הצוות יימחק על כל המיזמים והקבצים שלו." -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:422, src/app/main/ui/dashboard/team.cljs:392 msgid "modals.leave-and-close-confirm.message" msgstr "ברצונך לעזוב את הצוות %s?" +#: src/app/main/ui/dashboard/change_owner.cljs:59 msgid "modals.leave-and-reassign.forbidden" msgstr "" "אי אפשר לעזוב צוות אם אין חברים שאפשר לקדם לבעלות עליה. אולי עדיף למחוק את " "הצוות." -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/change_owner.cljs:55 msgid "modals.leave-and-reassign.hint1" -msgstr "" -"הבעלות על הצוות הזה בידיך. נא לבחור מישהו כדי לקידום לבעלות בטרם עזיבתך." +msgstr "הבעלות על הצוות הזה בידיך. נא לבחור מישהו כדי לקידום לבעלות בטרם עזיבתך." -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/change_owner.cljs:78 msgid "modals.leave-and-reassign.promote-and-leave" msgstr "קידום ועזיבה" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/change_owner.cljs:34 msgid "modals.leave-and-reassign.select-member-to-promote" msgstr "נא לבחור חבר לקידום" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/change_owner.cljs:49 msgid "modals.leave-and-reassign.title" msgstr "בטרם עזיבתך" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:402, src/app/main/ui/dashboard/sidebar.cljs:424, src/app/main/ui/dashboard/team.cljs:394, src/app/main/ui/dashboard/team.cljs:416 msgid "modals.leave-confirm.accept" msgstr "עזיבת צוות" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:401, src/app/main/ui/dashboard/team.cljs:415 msgid "modals.leave-confirm.message" msgstr "לעזוב את הצוות הזה?" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:400, src/app/main/ui/dashboard/sidebar.cljs:421, src/app/main/ui/dashboard/team.cljs:391, src/app/main/ui/dashboard/team.cljs:414 msgid "modals.leave-confirm.title" msgstr "עזיבת הצוות" +#: src/app/main/ui/delete_shared.cljs:53 +msgid "modals.move-shared-confirm.accept" +msgid_plural "modals.move-shared-confirm.accept" +msgstr[0] "העברה" +msgstr[1] "העברה" +msgstr[2] "העברה" +msgstr[3] "העברה" + +#: src/app/main/ui/delete_shared.cljs:48 msgid "modals.move-shared-confirm.message" msgid_plural "modals.move-shared-confirm.message" msgstr[0] "להעביר את הספרייה הזאת?" @@ -2116,6 +2315,7 @@ msgstr[1] "להעביר את הספריות האלו?" msgstr[2] "להעביר את הספריות האלו?" msgstr[3] "להעביר את הספריות האלו?" +#: src/app/main/ui/delete_shared.cljs:43 msgid "modals.move-shared-confirm.title" msgid_plural "modals.move-shared-confirm.title" msgstr[0] "העברת ספרייה" @@ -2123,60 +2323,62 @@ msgstr[1] "העברת ספריות" msgstr[2] "העברת ספריות" msgstr[3] "העברת ספריות" -#: src/app/main/ui/workspace/nudge.cljs +#: src/app/main/ui/workspace/main_menu.cljs:266, src/app/main/ui/workspace/nudge.cljs:47 msgid "modals.nudge-title" msgstr "כמות ההינד" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:340 msgid "modals.promote-owner-confirm.accept" msgstr "העברת בעלות" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:339 msgid "modals.promote-owner-confirm.hint" msgstr "" "העברת בעלות תשנה את תפקידך לחלק מההנהלה תוך אובדן חלק מההרשאות שלך על הצוות " "הזה. " -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:338 msgid "modals.promote-owner-confirm.message" msgstr "הצוות הזה הוא כרגע בבעלותך. להפוך את %s לבעלים החדשים של הצוות?" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:337 msgid "modals.promote-owner-confirm.title" msgstr "בעלים חדשים לצוות" +#: src/app/main/ui/workspace/libraries.cljs:188 msgid "modals.publish-empty-library.accept" msgstr "פרסום" +#: src/app/main/ui/workspace/libraries.cljs:187 msgid "modals.publish-empty-library.message" msgstr "הספרייה שלך ריקה. לפרסם אותה בכל זאת?" +#: src/app/main/ui/workspace/libraries.cljs:186 msgid "modals.publish-empty-library.title" msgstr "פרסום ספרייה ריקה" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "modals.remove-shared-confirm.accept" msgstr "הסרה כספריה משותפת" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "modals.remove-shared-confirm.hint" msgstr "" -"לאחר הסרה כספריה משותפת, ספריית הקבצים של הקובץ הזה לא תהיה זמינה עוד לשימוש " -"בקרב שאר הקבצים שלך." +"לאחר הסרה כספריה משותפת, ספריית הקבצים של הקובץ הזה לא תהיה זמינה עוד " +"לשימוש בקרב שאר הקבצים שלך." -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "modals.remove-shared-confirm.message" msgstr "הסרת „%s” כספריה משותפת" -#: src/app/main/ui/workspace/nudge.cljs +#: src/app/main/ui/workspace/nudge.cljs:53 msgid "modals.small-nudge" msgstr "הינד קטן" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:52 msgid "modals.unpublish-shared-confirm.accept" msgid_plural "modals.unpublish-shared-confirm.accept" msgstr[0] "ביטול פרסום" @@ -2184,8 +2386,7 @@ msgstr[1] "ביטול פרסום" msgstr[2] "ביטול פרסום" msgstr[3] "ביטול פרסום" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:47 msgid "modals.unpublish-shared-confirm.message" msgid_plural "modals.unpublish-shared-confirm.message" msgstr[0] "לבטל את פרסום הספרייה הזאת?" @@ -2193,8 +2394,7 @@ msgstr[1] "לבטל את פרסום הספריות האלו?" msgstr[2] "לבטל את פרסום הספריות האלו?" msgstr[3] "לבטל את פרסום הספריות האלו?" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:42 msgid "modals.unpublish-shared-confirm.title" msgid_plural "modals.unpublish-shared-confirm.title" msgstr[0] "ביטול פרסום ספרייה" @@ -2202,1062 +2402,1219 @@ msgstr[1] "ביטול פרסום ספריות" msgstr[2] "ביטול פרסום ספריות" msgstr[3] "ביטול פרסום ספריות" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#, unused msgid "modals.update-remote-component-in-bulk.hint" msgstr "" -"פעולה זו תעדכן רכיבים בספרייה משותפת. עשוי להשפיע על קבצים אחרים שמשתמשים בה." +"פעולה זו תעדכן רכיבים בספרייה משותפת. עשוי להשפיע על קבצים אחרים שמשתמשים " +"בה." -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#, unused msgid "modals.update-remote-component-in-bulk.message" msgstr "עדכון רכיבים בספרייה משותפת" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:380 msgid "modals.update-remote-component.accept" msgstr "עדכון" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:379 msgid "modals.update-remote-component.cancel" msgstr "ביטול" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:378 msgid "modals.update-remote-component.hint" msgstr "" "פעולה זו תעדכן רכיב בספריה משותפת. זה עשוי להשפיע על הקבצים האחרים שמשתמשים " "בה." -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:377 msgid "modals.update-remote-component.message" msgstr "עדכון רכיב בספריה משותפת" -#: src/app/main/data/common.cljs +#: src/app/main/data/common.cljs:71 msgid "notifications.by-code.upgrade-version" msgstr "יש גרסה חדשה, נא לרענן את העמוד" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:154, src/app/main/ui/dashboard/team.cljs:595 msgid "notifications.invitation-email-sent" msgstr "ההזמנה נשלחה בהצלחה" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:616 msgid "notifications.invitation-link-copied" msgstr "קישור ההזמנה הועתק" -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:24 msgid "notifications.profile-deletion-not-allowed" msgstr "" -"אי אפשר למחוק את הפרופיל שלך. יש להקצות את הצוותים שלך מחדש בטרם המשך בתהליך." +"אי אפשר למחוק את הפרופיל שלך. יש להקצות את הצוותים שלך מחדש בטרם המשך " +"בתהליך." -#: src/app/main/ui/settings/profile.cljs, src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:29, src/app/main/ui/settings/profile.cljs:35 msgid "notifications.profile-saved" msgstr "הפרופיל נשמר בהצלחה!" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:63 msgid "notifications.validation-email-sent" msgstr "הודעת האימות נשלחה בדוא״ל אל %s. נא לבדוק את הדוא״ל שלך!" +#, unused msgid "onboarding-v2.before-start.desc1" msgstr "" -"רצוי לדעת שיש מגוון משאבים זמינים לך כדי לסייע לך להתחיל להשתמש ב־Penpot כמו " -"המדריך למשתמשים וערוץ ה־YouTube שלנו." +"רצוי לדעת שיש מגוון משאבים זמינים לך כדי לסייע לך להתחיל להשתמש ב־Penpot " +"כמו המדריך למשתמשים וערוץ ה־YouTube שלנו." +#, unused msgid "onboarding-v2.before-start.desc2" -msgstr "" -"מידע מפורט על אופן השימוש ב־Penpot. החל מתכנון אבטיפוס ועד שיתוף עיצובים." +msgstr "מידע מפורט על אופן השימוש ב־Penpot. החל מתכנון אבטיפוס ועד שיתוף עיצובים." +#, unused msgid "onboarding-v2.before-start.desc2.title" msgstr "מדריך למשתמשים" +#, unused msgid "onboarding-v2.before-start.desc3" msgstr "אפשר לצפות במדריכים שלנו ובמדריכים שנוצרו על ידי חברי הקהילה שלנו." +#, unused msgid "onboarding-v2.before-start.desc3.title" msgstr "מדריכים מצולמים" +#, unused msgid "onboarding-v2.before-start.title" msgstr "לפני שמתחילים" +#: src/app/main/ui/onboarding/newsletter.cljs:63 msgid "onboarding-v2.newsletter.desc" msgstr "" "ניתן להירשם לרשימת הדיוור של Penpot כדי להתעדכן בתהליך פיתוח המוצר ובחדשות " "נוספות." +#: src/app/main/ui/onboarding/newsletter.cljs:83 msgid "onboarding-v2.newsletter.news" msgstr "נא לשלוח לי חדשות על Penpot (בלוגים, מדריכים מצולמים, שידורים…)." +#: src/app/main/ui/onboarding/newsletter.cljs:91 msgid "onboarding-v2.newsletter.privacy1" msgstr "אכפת לנו מפרטיות, כאן ניתן לקרוא את " +#: src/app/main/ui/onboarding/newsletter.cljs:97 msgid "onboarding-v2.newsletter.privacy2" msgstr "" "אנו נשלח לך בדוא״ל רק הודעות שרלוונטיות לך. אפשר לבטל את המינוי דרך כפתור " "ביטול המינוי בכל אחת מהודעות הדיוור שלנו." +#: src/app/main/ui/onboarding/newsletter.cljs:71 msgid "onboarding-v2.newsletter.updates" msgstr "נא לשלוח לי עדכונים על המוצר (יכולות חדשות, מהדורות, תיקונים…)." +#, unused msgid "onboarding-v2.welcome.desc1" msgstr "" "Penpot הוא בקוד פתוח והוא נוצר על ידי Kaleidos וגם על ידי הקהילה בה מגוון " "אנשים כבר מסייעים זה לזה. כל אחד יכול לתרום דרך:" +#, unused msgid "onboarding-v2.welcome.desc2" msgstr "" "מקום ציבורי ללמידה, שיתוף ודיון על Penpot, ההווה והעתיד שלו עם כל הקהילה " "וצוות הליבה של Penpot." +#, unused msgid "onboarding-v2.welcome.desc2.title" msgstr "השתתפות בפעילות הקהילתית" +#, unused msgid "onboarding-v2.welcome.desc3" msgstr "" "כאן אפשר למצוא מידע על כיצד לשתף פעולה בנושאי תרגום, בקשות יכולות, תרומות " "ליבה, מצוד אחר תקלות…" +#, unused msgid "onboarding-v2.welcome.desc3.title" msgstr "מדריך למתנדבים" +#: src/app/main/ui/onboarding/team_choice.cljs:31 msgid "onboarding-v2.welcome.title" msgstr "ברוך בואך ל־Penpot!" +#: src/app/main/ui/onboarding/team_choice.cljs:229 msgid "onboarding.choice.team-up.continue-creating-team" msgstr "להמשיך ביצירת צוות" +#: src/app/main/ui/onboarding/team_choice.cljs:239 msgid "onboarding.choice.team-up.continue-without-a-team" msgstr "להמשיך בלי צוות" +#: src/app/main/ui/onboarding/team_choice.cljs:167 msgid "onboarding.choice.team-up.create-team-and-invite" msgstr "ליצור צוות ולהזמין" +#, unused msgid "onboarding.choice.team-up.create-team-and-send-invites" msgstr "ליצור צוות ולשלוח הזמנות" +#: src/app/main/ui/onboarding/team_choice.cljs:170 msgid "onboarding.choice.team-up.create-team-and-send-invites-description" msgstr "אפשר להזמין בהמשך" +#: src/app/main/ui/onboarding/team_choice.cljs:215 msgid "onboarding.choice.team-up.create-team-desc" msgstr "לאחר מתן שם לצוות שלך, יתאפשר לך להזמין אנשים להצטרף." +#: src/app/main/ui/onboarding/team_choice.cljs:224 msgid "onboarding.choice.team-up.create-team-placeholder" msgstr "נא למלא את שם הצוות" +#: src/app/main/ui/onboarding/team_choice.cljs:168 msgid "onboarding.choice.team-up.create-team-without-invite" msgstr "ליצור צוות" +#, unused msgid "onboarding.choice.team-up.create-team-without-inviting" msgstr "ליצור צוות בלי לשלוח הזמנות" +#: src/app/main/ui/dashboard/projects.cljs:89, src/app/main/ui/onboarding/team_choice.cljs:140 msgid "onboarding.choice.team-up.invite-members" msgstr "הזמנת חברים" +#: src/app/main/ui/onboarding/team_choice.cljs:141 msgid "onboarding.choice.team-up.invite-members-info" msgstr "רצוי לזכור לכלול את כולם. מפתחים, מעצבים, מנהלים… גיוון מעשיר :)" +#: src/app/main/ui/dashboard/team.cljs:202, src/app/main/ui/onboarding/team_choice.cljs:146 msgid "onboarding.choice.team-up.roles" msgstr "הזמנה עם התפקיד:" +#: src/app/main/ui/onboarding/team_choice.cljs:232 msgid "onboarding.choice.team-up.start-without-a-team" msgstr "להתחיל בלי צוות" +#: src/app/main/ui/onboarding/team_choice.cljs:234 msgid "onboarding.choice.team-up.start-without-a-team-description" msgstr "אפשר ליצור צוות בהמשך." +#, unused msgid "onboarding.newsletter.accept" msgstr "כן, להירשם" +#: src/app/main/ui/onboarding/newsletter.cljs:40 msgid "onboarding.newsletter.acceptance-message" msgstr "בקשת המינוי שלך נשלחה, נשלח לך הודעה בדוא״ל כדי לאשר אותה." +#: src/app/main/ui/onboarding/newsletter.cljs:95 msgid "onboarding.newsletter.policy" msgstr "מדיניות פרטיות." +#: src/app/main/ui/onboarding/newsletter.cljs:60 msgid "onboarding.newsletter.title" msgstr "מעניין אותך לקבל חדשות על Penpot?" +#: src/app/main/ui/onboarding/questions.cljs:118 +msgid "onboarding.questions.lets-get-started" +msgstr "מתחילים!" + +#: src/app/main/ui/onboarding/questions.cljs:320 +msgid "onboarding.questions.step3.question3" +msgstr "מה גודל הצוות שלך?" + +#: src/app/main/ui/onboarding/questions.cljs:273 +msgid "onboarding.questions.team-size.11-30" +msgstr "11‏-30" + +#: src/app/main/ui/onboarding/questions.cljs:274 +msgid "onboarding.questions.team-size.2-10" +msgstr "2-‏10" + +#: src/app/main/ui/onboarding/questions.cljs:272 +msgid "onboarding.questions.team-size.31-50" +msgstr "31‏-50" + +#: src/app/main/ui/onboarding/questions.cljs:271 +msgid "onboarding.questions.team-size.more-than-50" +msgstr "גדול מ־50" + +#: src/app/main/ui/onboarding/questions.cljs:276 +msgid "onboarding.questions.team-size.personal-project" +msgstr "זאת עבודה על מיזם פרטי" + +#: src/app/main/ui/onboarding/team_choice.cljs:213 msgid "onboarding.team-modal.create-team" msgstr "יצירת צוות" +#: src/app/main/ui/onboarding/team_choice.cljs:35 msgid "onboarding.team-modal.create-team-desc" msgstr "" "צוות מאפשר לך לשתף פעולה עם משתמשים אחרים ב־Penpot שעובדים על אותם קבצים " "ומיזמים." +#: src/app/main/ui/onboarding/team_choice.cljs:40 msgid "onboarding.team-modal.create-team-feature-1" msgstr "אין הגבלה על קבצים או מיזמים" +#: src/app/main/ui/onboarding/team_choice.cljs:44 msgid "onboarding.team-modal.create-team-feature-2" msgstr "מהדורת ריבוי משתתפים" +#: src/app/main/ui/onboarding/team_choice.cljs:48 msgid "onboarding.team-modal.create-team-feature-3" msgstr "ניהול תפקידים" +#: src/app/main/ui/onboarding/team_choice.cljs:52 msgid "onboarding.team-modal.create-team-feature-4" msgstr "ללא הגבלת משתמשים" +#: src/app/main/ui/onboarding/team_choice.cljs:56 msgid "onboarding.team-modal.create-team-feature-5" msgstr "100% בחינם!" +#: src/app/main/ui/onboarding/team_choice.cljs:33 msgid "onboarding.team-modal.team-definition" msgstr "מה זה צוות?" +#: src/app/main/ui/onboarding/templates.cljs:78 msgid "onboarding.templates.subtitle" msgstr "הנה כמה תבניות." +#: src/app/main/ui/onboarding/templates.cljs:77 msgid "onboarding.templates.title" msgstr "להתחיל לעצב" +#, unused msgid "onboarding.welcome.alt" msgstr "Penpot" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:99 msgid "profile.recovery.go-to-login" msgstr "מעבר למסך הכניסה" -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.team-size.11-30" -msgstr "11‏-30" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.team-size.2-10" -msgstr "2-‏10" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.team-size.31-50" -msgstr "31‏-50" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.adobe-xd" -msgstr "Adobe XD" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.canva" -msgstr "Canva" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.figma" -msgstr "Figma" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.founder" -msgstr "מייסד/סגן נשיא" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.freelancer" -msgstr "יש לי עסק משלי" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.invision" -msgstr "InVision" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.lets-get-started" -msgstr "מתחילים!" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.team-size.more-than-50" -msgstr "גדול מ־50" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.next" -msgstr "הבאה" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.other" -msgstr "אחר (נא לפרט)" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.team-size.personal-project" -msgstr "זאת עבודה על מיזם פרטי" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.previous" -msgstr "הקודמת" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.select-option" -msgstr "בחירת אפשרות" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.sketch" -msgstr "Sketch" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.start" -msgstr "התחלה" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.student-teacher" -msgstr "סטודנט/ית או מרצה" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.step3.question3" -msgstr "מה גודל הצוות שלך?" - -#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, +#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:221 msgid "settings.detach" msgstr "ניתוק" -#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs +#: src/app/main/ui/viewer/inspect/exports.cljs:147, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:631, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:137, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:148, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:188, src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:158, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:399, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:410, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:430, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:441, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:458, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:472, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:309, src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:183, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:373, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:389, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:245, src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:172 msgid "settings.multiple" msgstr "מעורב" -#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:271 msgid "settings.select-this-color" msgstr "בחירת פריטים שמשתמשים בסגנון הזה" # SECTIONS +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:414 msgid "shortcut-section.basics" msgstr "יסודות" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:420 msgid "shortcut-section.dashboard" msgstr "לוח בקרה" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:423 msgid "shortcut-section.viewer" msgstr "מציג" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:417 msgid "shortcut-section.workspace" msgstr "סביבת עבודה" # SUBSECTIONS +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:56 msgid "shortcut-subsection.alignment" msgstr "יישור" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:57 msgid "shortcut-subsection.edit" msgstr "עריכה" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:58 msgid "shortcut-subsection.general-dashboard" msgstr "כללי" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:59 msgid "shortcut-subsection.general-viewer" msgstr "כללי" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:60 msgid "shortcut-subsection.main-menu" msgstr "תפריט ראשי" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:61 msgid "shortcut-subsection.modify-layers" msgstr "שינוי שכבות" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:62 msgid "shortcut-subsection.navigation-dashboard" msgstr "ניווט" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:63 msgid "shortcut-subsection.navigation-viewer" msgstr "ניווט" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:64 msgid "shortcut-subsection.navigation-workspace" msgstr "ניווט" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:65 msgid "shortcut-subsection.panels" msgstr "לוחות" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:66 msgid "shortcut-subsection.path-editor" msgstr "נתיבים" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:67 msgid "shortcut-subsection.shape" msgstr "צורות" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:68 msgid "shortcut-subsection.text-editor" msgstr "טקסטים" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:69 msgid "shortcut-subsection.tools" msgstr "כלים" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:70 msgid "shortcut-subsection.zoom-viewer" msgstr "תקריב" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:71 msgid "shortcut-subsection.zoom-workspace" msgstr "תקריב" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:72 msgid "shortcuts.add-comment" msgstr "הערות" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:73 msgid "shortcuts.add-node" msgstr "הוספת מפרק" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:74 msgid "shortcuts.align-bottom" msgstr "יישור לתחתית" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:75 msgid "shortcuts.align-center" msgstr "יישור למרכז" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:76 msgid "shortcuts.align-hcenter" msgstr "יישור למרכז אופקית" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:77 msgid "shortcuts.align-justify" msgstr "יישור משני הצדדים" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:78 msgid "shortcuts.align-left" msgstr "יישור שמאלה" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:79 msgid "shortcuts.align-right" msgstr "יישור ימינה" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:80 msgid "shortcuts.align-top" msgstr "יישור לראש" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:81 msgid "shortcuts.align-vcenter" msgstr "יישור למרכז אנכית" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:82 msgid "shortcuts.artboard-selection" msgstr "יצירת לוח מהבחירה" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:83 msgid "shortcuts.bold" msgstr "החלפת מצב מודגש" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:84 msgid "shortcuts.bool-difference" msgstr "הבדל בוליאני" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:85 msgid "shortcuts.bool-exclude" msgstr "החרגה בוליאנית" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:86 msgid "shortcuts.bool-intersection" msgstr "הצלבה בוליאנית" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:87 msgid "shortcuts.bool-union" msgstr "איחוד בוליאני" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:88 msgid "shortcuts.bring-back" msgstr "שליחה אחורה" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:89 msgid "shortcuts.bring-backward" msgstr "הרחקה לאחור" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:90 msgid "shortcuts.bring-forward" msgstr "קידום" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:91 msgid "shortcuts.bring-front" msgstr "הבאה לחזית" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:92 msgid "shortcuts.clear-undo" msgstr "פינוי ביטול" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:93 msgid "shortcuts.copy" msgstr "העתקה" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:94 msgid "shortcuts.create-component" msgstr "יצירת רכיב" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:95 msgid "shortcuts.create-new-project" msgstr "יצירת חדש" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:96 msgid "shortcuts.cut" msgstr "גזירה" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:97 msgid "shortcuts.decrease-zoom" msgstr "התרחקות" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:98 msgid "shortcuts.delete" msgstr "מחיקה" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:99 msgid "shortcuts.delete-node" msgstr "מחיקת מפרק" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:100 msgid "shortcuts.detach-component" msgstr "ניתוק רכיב" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:101 msgid "shortcuts.draw-curve" msgstr "עיקול" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:102 msgid "shortcuts.draw-ellipse" msgstr "אליפסה" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:103 msgid "shortcuts.draw-frame" msgstr "לוח" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:104 msgid "shortcuts.draw-nodes" msgstr "ציור נתיב" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:105 msgid "shortcuts.draw-path" msgstr "נתיב" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:106 msgid "shortcuts.draw-rect" msgstr "מרובע" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:107 msgid "shortcuts.draw-text" msgstr "טקסט" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:108 msgid "shortcuts.duplicate" msgstr "שכפול" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:109 msgid "shortcuts.escape" msgstr "ביטול" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:110 msgid "shortcuts.export-shapes" msgstr "ייצוא צורות" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:111 msgid "shortcuts.fit-all" msgstr "כיוון תקריב כדי להציג הכול" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:112 msgid "shortcuts.flip-horizontal" msgstr "היפוך אופקי" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:113 msgid "shortcuts.flip-vertical" msgstr "היפוך אנכי" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:114 msgid "shortcuts.font-size-dec" msgstr "הקטנת גודל הכתב" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:115 msgid "shortcuts.font-size-inc" msgstr "הגדלת גודל הכתב" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:116 msgid "shortcuts.go-to-drafts" msgstr "מעבר לטיוטות" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:117 msgid "shortcuts.go-to-libs" msgstr "מעבר לספריות המשותפות" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:118 msgid "shortcuts.go-to-search" msgstr "חיפוש" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:119 msgid "shortcuts.group" msgstr "קבוצה" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:120 msgid "shortcuts.h-distribute" msgstr "פיזור אופקית" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:121 msgid "shortcuts.hide-ui" msgstr "הצגת/הסתרת מנשק משתמש" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:122 msgid "shortcuts.increase-zoom" msgstr "התקרבות" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:123 msgid "shortcuts.insert-image" msgstr "הוספת תמונה" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:124 msgid "shortcuts.italic" msgstr "החלפת מצב נטוי" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:125 msgid "shortcuts.join-nodes" msgstr "צירוף מפרקים" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:126 msgid "shortcuts.letter-spacing-dec" msgstr "הקטנת ריווח תווים" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:127 msgid "shortcuts.letter-spacing-inc" msgstr "הגדלת ריווח תווים" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:128 msgid "shortcuts.line-height-dec" msgstr "הנמכת שורה" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:129 msgid "shortcuts.line-height-inc" msgstr "הגבהת שורה" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:130 msgid "shortcuts.line-through" msgstr "החלפת מצב קו חוצה" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:131 msgid "shortcuts.make-corner" msgstr "הפיכה לפינה" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:132 msgid "shortcuts.make-curve" msgstr "הפיכה לעיקול" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:133 msgid "shortcuts.mask" msgstr "מסכה" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:134 msgid "shortcuts.merge-nodes" msgstr "מיזוג מפרקים" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:135 msgid "shortcuts.move" msgstr "העברה" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:136 msgid "shortcuts.move-fast-down" msgstr "העברה למטה מהר" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:137 msgid "shortcuts.move-fast-left" msgstr "העברה שמאלה מהר" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:138 msgid "shortcuts.move-fast-right" msgstr "העברה ימינה מהר" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:139 msgid "shortcuts.move-fast-up" msgstr "העברה למעלה מהר" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:140 msgid "shortcuts.move-nodes" msgstr "העברת מפרק" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:141 msgid "shortcuts.move-unit-down" msgstr "העברה למטה" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:142 msgid "shortcuts.move-unit-left" msgstr "העברה שמאלה" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:143 msgid "shortcuts.move-unit-right" msgstr "העברה ימינה" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:144 msgid "shortcuts.move-unit-up" msgstr "העברה למעלה" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:145 msgid "shortcuts.next-frame" msgstr "הלוח הבא" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:516 msgid "shortcuts.not-found" msgstr "לא נמצאו קיצורי דרך" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:146 msgid "shortcuts.opacity-0" msgstr "הגדרת אטימות ל־100%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:147 msgid "shortcuts.opacity-1" msgstr "הגדרת אטימות ל־10%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:148 msgid "shortcuts.opacity-2" msgstr "הגדרת אטימות ל־20%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:149 msgid "shortcuts.opacity-3" msgstr "הגדרת אטימות ל־30%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:150 msgid "shortcuts.opacity-4" msgstr "הגדרת אטימות ל־40%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:151 msgid "shortcuts.opacity-5" msgstr "הגדרת אטימות ל־50%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:152 msgid "shortcuts.opacity-6" msgstr "הגדרת אטימות ל־60%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:153 msgid "shortcuts.opacity-7" msgstr "הגדרת אטימות ל־70%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:154 msgid "shortcuts.opacity-8" msgstr "הגדרת אטימות ל־80%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:155 msgid "shortcuts.opacity-9" msgstr "הגדרת אטימות ל־90%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:156 msgid "shortcuts.open-color-picker" msgstr "בוחר צבעים" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:157 msgid "shortcuts.open-comments" msgstr "מעבר לסעיף הערות צופים" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:158 msgid "shortcuts.open-dashboard" msgstr "מעבר ללוח בקרה" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:159 msgid "shortcuts.open-inspect" msgstr "מעבר לסעיף חקירת צופה" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:160 msgid "shortcuts.open-interactions" msgstr "מעבר לסעיף תפעול משתמש" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:161 msgid "shortcuts.open-viewer" msgstr "מעבר לסעיף תפעול צופה" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:162 msgid "shortcuts.open-workspace" msgstr "מעבר לסביבת עבודה" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:260 msgid "shortcuts.or" msgstr " או " +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:163 msgid "shortcuts.paste" msgstr "הדבקה" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:164 msgid "shortcuts.prev-frame" msgstr "לוח קודם" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:165 msgid "shortcuts.redo" msgstr "ביצוע חוזר" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:166 msgid "shortcuts.reset-zoom" msgstr "איפוס תקריב" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:167 msgid "shortcuts.scale" msgstr "התאמת גודל" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:168 msgid "shortcuts.search-placeholder" msgstr "חיפוש בקיצורי הדרך" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:169 msgid "shortcuts.select-all" msgstr "בחירה בהכול" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:170 msgid "shortcuts.select-next" msgstr "בחירת השכבה הבאה" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:171 msgid "shortcuts.select-parent-layer" msgstr "בחירת שכבת הורה" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:172 msgid "shortcuts.select-prev" msgstr "בחירת השכבה הקודמת" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:173 msgid "shortcuts.separate-nodes" msgstr "הפרדת מפרקים" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:174 msgid "shortcuts.show-pixel-grid" msgstr "הצגת/הסתרת רשת פיקסלים" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:175 msgid "shortcuts.show-shortcuts" msgstr "הצגת/הסתרת קיצורי דרך" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:176 msgid "shortcuts.snap-nodes" msgstr "הצמדה למפרקים" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:177 msgid "shortcuts.snap-pixel-grid" msgstr "הצמדה לרשת פיקסלים" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:178 msgid "shortcuts.start-editing" msgstr "התחלת עריכה" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:179 msgid "shortcuts.start-measure" msgstr "התחלת מדידה" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:180 msgid "shortcuts.stop-measure" msgstr "עצירת מדידה" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:181 msgid "shortcuts.text-align-center" msgstr "יישור למרכז" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:182 msgid "shortcuts.text-align-justify" msgstr "פיזור שווה" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:183 msgid "shortcuts.text-align-left" msgstr "יישור לשמאל" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:184 msgid "shortcuts.text-align-right" msgstr "יישור לימין" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:185 msgid "shortcuts.thumbnail-set" msgstr "הגדרת תמונות ממוזערות" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:496, src/app/main/ui/workspace/sidebar/shortcuts.cljs:505 msgid "shortcuts.title" msgstr "קיצורי מקלדת" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:186 msgid "shortcuts.toggle-alignment" msgstr "החלפת מצב יישור דינמי" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:187 msgid "shortcuts.toggle-assets" msgstr "החלפת מצב נכסים" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:188 msgid "shortcuts.toggle-colorpalette" msgstr "החלפת מצב לוח צבעים" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:189 msgid "shortcuts.toggle-focus-mode" msgstr "החלפת מצב מיקוד" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:190 msgid "shortcuts.toggle-fullscreen" msgstr "החלפת מילוי מסך" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:191 msgid "shortcuts.toggle-guides" msgstr "הצגת / הסתרת קווים מנחים" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:192 msgid "shortcuts.toggle-history" msgstr "החלפת הצגת היסטוריה" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:193 msgid "shortcuts.toggle-layers" msgstr "החלפת הצגת שכבות" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:194 msgid "shortcuts.toggle-layout-flex" msgstr "הוספת/הסרת פריסת flex" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:195 msgid "shortcuts.toggle-layout-grid" msgstr "הוספת/הסרת פריסת רשת" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:196 msgid "shortcuts.toggle-lock" msgstr "נעילת הנבחרים" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:197 msgid "shortcuts.toggle-lock-size" msgstr "נעילת יחס" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:198 msgid "shortcuts.toggle-rulers" msgstr "הצגת / הסתרת סרגלים" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:200 msgid "shortcuts.toggle-snap-guides" msgstr "הצמדה לקווים מנחים" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:201 msgid "shortcuts.toggle-snap-ruler-guide" msgstr "הצמדה לקווים מנחים סרגלים" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:202 msgid "shortcuts.toggle-textpalette" msgstr "החלפת לוח טקסט" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:203 msgid "shortcuts.toggle-theme" msgstr "החלפת ערכת עיצוב" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:204 msgid "shortcuts.toggle-visibility" msgstr "החלפת מצב הצגה" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:205 msgid "shortcuts.toggle-zoom-style" msgstr "החלפת סגנון תקריב" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:206 msgid "shortcuts.underline" msgstr "החלפת מצב קו תחתי" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:207 msgid "shortcuts.undo" msgstr "ביטול" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:208 msgid "shortcuts.ungroup" msgstr "פירוק קבוצה" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:209 msgid "shortcuts.unmask" msgstr "ביטול מסכה" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:210 msgid "shortcuts.v-distribute" msgstr "פיזור אנכי" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:211 msgid "shortcuts.zoom-lense-decrease" msgstr "הקטנת עדשת תקריב" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:212 msgid "shortcuts.zoom-lense-increase" msgstr "הגדלת עדשת תקריב" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:213 msgid "shortcuts.zoom-selected" msgstr "התמקדות על הנבחר" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:771 msgid "team.webhooks.max-length" msgstr "אורך שם ההתליה הוא עד 2048 תווים." -#: src/app/main/ui/dashboard/files.cljs +#: src/app/main/ui/dashboard/files.cljs:158 msgid "title.dashboard.files" msgstr "%s‏ - Penpot" -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:37 msgid "title.dashboard.font-providers" msgstr "ספקי גופנים - %s‏ - Penpot" -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:36 msgid "title.dashboard.fonts" msgstr "גופנים - %s‏ - Penpot" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:320 msgid "title.dashboard.projects" msgstr "מיזמים - %s‏ - Penpot" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:32 msgid "title.dashboard.search" msgstr "חיפוש - %s‏ - Penpot" -#: src/app/main/ui/dashboard/libraries.cljs +#: src/app/main/ui/dashboard/libraries.cljs:44 msgid "title.dashboard.shared-libraries" msgstr "ספריות משותפות - %s‏ - Penpot" -#: src/app/main/ui/auth/verify_token.cljs, src/app/main/ui/auth.cljs +#: src/app/main/ui/auth/verify_token.cljs:68, src/app/main/ui/auth.cljs:54 msgid "title.default" msgstr "Penpot - חופש עיצובי לצוותים" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:292 msgid "title.settings.access-tokens" msgstr "פרופיל - אסימוני גישה" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:110 msgid "title.settings.feedback" msgstr "הגשת משוב - Penpot" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:80 msgid "title.settings.options" msgstr "הגדרות - Penpot" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:115 msgid "title.settings.password" msgstr "סיסמה - Penpot" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:115 msgid "title.settings.profile" msgstr "פרופיל - Penpot" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:727 msgid "title.team-invitations" msgstr "הזמנות - %s -‏ Penpot" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:493 msgid "title.team-members" msgstr "חברים - %s‏ - Penpot" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1036 msgid "title.team-settings" msgstr "הגדרות - %s‏ - Penpot" +#: src/app/main/ui/dashboard/team.cljs:989 msgid "title.team-webhooks" msgstr "התליות - %s‏ - Penpot" -#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs +#: src/app/main/ui/viewer.cljs:419 msgid "title.viewer" msgstr "%s - מצב תצוגה - Penpot" -#: src/app/main/ui/workspace.cljs +#: src/app/main/ui/workspace.cljs:190 msgid "title.workspace" msgstr "%s‏ - Penpot" +#: src/app/main/ui.cljs:144 msgid "viewer.breaking-change.description" msgstr "" -"קישור זה לשיתוף אינו תקף עוד. נא ליצור אחד חדש או לבקש מהבעלים ליצור אחד חדש." +"קישור זה לשיתוף אינו תקף עוד. נא ליצור אחד חדש או לבקש מהבעלים ליצור אחד " +"חדש." +#: src/app/main/ui.cljs:143 msgid "viewer.breaking-change.message" msgstr "מתנצלים!" -#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs +#: src/app/main/ui/viewer.cljs:569 msgid "viewer.empty-state" msgstr "לא נמצאו לוחות בעמוד." -#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs +#: src/app/main/ui/viewer.cljs:574 msgid "viewer.frame-not-found" msgstr "הלוח לא נמצא." +#: src/app/main/ui/viewer/header.cljs:336 msgid "viewer.header.comments-section" msgstr "הערות (%s)" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/interactions.cljs:292 msgid "viewer.header.dont-show-interactions" msgstr "לא להציג אינטראקציות" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/header.cljs:188 msgid "viewer.header.fullscreen" msgstr "מסך מלא" +#: src/app/main/ui/viewer/header.cljs:345 msgid "viewer.header.inspect-section" msgstr "חקירה (%s)" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/interactions.cljs:282 msgid "viewer.header.interactions" msgstr "אינטראקציות" +#: src/app/main/ui/viewer/header.cljs:327 msgid "viewer.header.interactions-section" msgstr "אינטראקציות (%s)" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/share_link.cljs:187 msgid "viewer.header.share.copy-link" msgstr "העתקת קישור" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/interactions.cljs:300 msgid "viewer.header.show-interactions" msgstr "הצגת פעילויות" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/interactions.cljs:311 msgid "viewer.header.show-interactions-on-click" msgstr "הצגת פעילויות בקליק" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/header.cljs:231 msgid "viewer.header.sitemap" msgstr "מפת אתר" +#: src/app/main/ui/dashboard/team.cljs:948 msgid "webhooks.last-delivery.success" msgstr "ההעברה האחרונה הצליחה." -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:58 msgid "workspace.align.hcenter" msgstr "(%s) יישור למרכז האופקי" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:74 msgid "workspace.align.hdistribute" msgstr "(%s) פיזור ריווח אופקי" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:50 msgid "workspace.align.hleft" msgstr "(%s) יישור שמאלה" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:66 msgid "workspace.align.hright" msgstr "(%s) יישור ימינה" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:99 msgid "workspace.align.vbottom" msgstr "(%s) יישור למטה" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:91 msgid "workspace.align.vcenter" msgstr "(%s) יישור למרכז אנכית" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:104 msgid "workspace.align.vdistribute" msgstr "(%s) פיזור בריווח אנכי" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:83 msgid "workspace.align.vtop" msgstr "(%s) יישור למעלה" #: src/app/main/ui/workspace/sidebar/assets.cljs +#, unused msgid "workspace.assets.assets" msgstr "משאבים" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets.cljs:134 msgid "workspace.assets.box-filter-all" msgstr "כל המשאבים" -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/dashboard/grid.cljs:130, src/app/main/ui/dashboard/grid.cljs:162, src/app/main/ui/workspace/sidebar/assets/colors.cljs:485, src/app/main/ui/workspace/sidebar/assets.cljs:150 msgid "workspace.assets.colors" msgstr "צבעים" -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/dashboard/grid.cljs:126, src/app/main/ui/dashboard/grid.cljs:141, src/app/main/ui/workspace/sidebar/assets/components.cljs:513, src/app/main/ui/workspace/sidebar/assets.cljs:139 msgid "workspace.assets.components" msgstr "רכיבים" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:131 msgid "workspace.assets.create-group" msgstr "יצירת קבוצה" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:142 msgid "workspace.assets.create-group-hint" msgstr "הפריטים שלך יקבלו אוטומטית שם בסגנון „שם קבוצה / שם פריט”" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/context_menu.cljs:529, src/app/main/ui/workspace/sidebar/assets/colors.cljs:251, src/app/main/ui/workspace/sidebar/assets/components.cljs:577, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:424, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:443 msgid "workspace.assets.delete" msgstr "מחיקה" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/context_menu.cljs:534, src/app/main/ui/workspace/sidebar/assets/components.cljs:572 msgid "workspace.assets.duplicate" msgstr "שכפול" +#: src/app/main/ui/workspace/sidebar/assets/components.cljs:571 msgid "workspace.assets.duplicate-main" msgstr "שכפול הראשי" -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:247, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:439 msgid "workspace.assets.edit" msgstr "עריכה" -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets.cljs:176 +msgid "workspace.assets.filter" +msgstr "סינון" + +#: src/app/main/ui/workspace/sidebar/assets/graphics.cljs:384, src/app/main/ui/workspace/sidebar/assets.cljs:145 msgid "workspace.assets.graphics" msgstr "גרפיקה" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:255, src/app/main/ui/workspace/sidebar/assets/components.cljs:581, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:428, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:448 msgid "workspace.assets.group" msgstr "קבוצה" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:141 msgid "workspace.assets.group-name" msgstr "שם קבוצה" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets.cljs:168 msgid "workspace.assets.libraries" msgstr "ספריות" +#: src/app/main/ui/workspace/sidebar/assets/file_library.cljs:62, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:347 msgid "workspace.assets.local-library" msgstr "ספרייה מקומית" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/file_library.cljs:295 msgid "workspace.assets.not-found" msgstr "לא נמצאו משאבים" +#, unused msgid "workspace.assets.open-library" msgstr "פתיחת קובץ ספרייה" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/context_menu.cljs:532, src/app/main/ui/workspace/sidebar/assets/colors.cljs:243, src/app/main/ui/workspace/sidebar/assets/components.cljs:566, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:421, src/app/main/ui/workspace/sidebar/assets/groups.cljs:63, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:434 msgid "workspace.assets.rename" msgstr "שינוי שם" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:132 msgid "workspace.assets.rename-group" msgstr "שינוי שם קבוצה" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets.cljs:173 msgid "workspace.assets.search" msgstr "חיפוש במשאבים" #: src/app/main/ui/workspace/sidebar/assets.cljs +#, unused msgid "workspace.assets.selected-count" msgid_plural "workspace.assets.selected-count" msgstr[0] "פריט נבחר" @@ -3266,1905 +3623,11 @@ msgstr[2] "%s פריטים נבחרו" msgstr[3] "%s פריטים נבחרו" #: src/app/main/ui/workspace/sidebar/assets.cljs +#, unused msgid "workspace.assets.shared-library" msgstr "ספרייה משותפת" -#: src/app/main/ui/workspace/sidebar/assets.cljs -msgid "workspace.assets.sort" -msgstr "מיון" - -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs -msgid "workspace.assets.typography" -msgstr "טיפוגרפיות" - -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -msgid "workspace.assets.typography.font-id" -msgstr "גופן" - -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -msgid "workspace.assets.typography.font-size" -msgstr "גודל" - -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -msgid "workspace.assets.typography.font-variant-id" -msgstr "הגוון" - -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -msgid "workspace.assets.typography.go-to-edit" -msgstr "מעבר לקובץ ספריית סגנון כדי לערוך" - -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -msgid "workspace.assets.typography.letter-spacing" -msgstr "ריווח תווים" - -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -msgid "workspace.assets.typography.line-height" -msgstr "גובה שורה" - -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, -#: src/app/main/ui/inspect/attributes/text.cljs, -#: src/app/main/ui/inspect/attributes/text.cljs -msgid "workspace.assets.typography.sample" -msgstr "שצ" - -msgid "workspace.assets.typography.text-styles" -msgstr "סגנונות טקסט" - -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -msgid "workspace.assets.typography.text-transform" -msgstr "התמרת טקסט" - -#: src/app/main/ui/workspace/sidebar/assets.cljs -msgid "workspace.assets.ungroup" -msgstr "פירוק קבוצה" - -msgid "workspace.context-menu.grid-cells.area" -msgstr "יצירת שטח" - -msgid "workspace.context-menu.grid-cells.create-board" -msgstr "יצירת לוח" - -msgid "workspace.context-menu.grid-cells.merge" -msgstr "מיזוג תאים" - -msgid "workspace.context-menu.grid-track.column.add-after" -msgstr "הוספת עמודה מימין" - -msgid "workspace.context-menu.grid-track.column.add-before" -msgstr "הוספת עמודה משמאל" - -msgid "workspace.context-menu.grid-track.column.delete" -msgstr "מחיקת עמודה" - -msgid "workspace.context-menu.grid-track.column.delete-shapes" -msgstr "מחיקת עמודה וצורות" - -msgid "workspace.context-menu.grid-track.column.duplicate" -msgstr "שכפול עמודה" - -msgid "workspace.context-menu.grid-track.row.add-after" -msgstr "הוספת שורה מתחת" - -msgid "workspace.context-menu.grid-track.row.add-before" -msgstr "הוספת שורה למעלה" - -msgid "workspace.context-menu.grid-track.row.delete" -msgstr "מחיקת שורה" - -msgid "workspace.context-menu.grid-track.row.delete-shapes" -msgstr "מחיקת שורה וצורות" - -msgid "workspace.context-menu.grid-track.row.duplicate" -msgstr "שכפול שורה" - -msgid "workspace.focus.focus-mode" -msgstr "מצב מיקוד" - -msgid "workspace.focus.focus-off" -msgstr "מיקוד כבוי" - -msgid "workspace.focus.focus-on" -msgstr "מיקוד פעיל" - -msgid "workspace.focus.selection" -msgstr "בחירה" - -#: src/app/main/data/workspace/libraries.cljs, -#: src/app/main/ui/components/color_bullet.cljs -msgid "workspace.gradients.linear" -msgstr "מדרג קווי" - -#: src/app/main/data/workspace/libraries.cljs, -#: src/app/main/ui/components/color_bullet.cljs -msgid "workspace.gradients.radial" -msgstr "מדרג מעגלי" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.disable-dynamic-alignment" -msgstr "השבתת יישור דינמי" - -msgid "workspace.header.menu.disable-scale-content" -msgstr "השבתת קנה מידה יחסי" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.disable-scale-text" -msgstr "השבתת שינוי גודל טקסט" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.disable-snap-guides" -msgstr "השבתת הצמדה לקווים המנחים" - -msgid "workspace.header.menu.disable-snap-pixel-grid" -msgstr "השבתת הצמדה לפיקסל" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.enable-dynamic-alignment" -msgstr "הפעלת יישור דינמי" - -msgid "workspace.header.menu.enable-scale-content" -msgstr "הפעלת קנה מידה יחסי" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.enable-scale-text" -msgstr "הפעלת שינוי גודל טקסט" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.enable-snap-guides" -msgstr "הצמדה לקווים מנחים" - -msgid "workspace.header.menu.enable-snap-pixel-grid" -msgstr "הפעלת הצמדה לפיקסל" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.hide-artboard-names" -msgstr "הסתרת שמות לוחות" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.hide-palette" -msgstr "הסתרת ערכת צבעים" - -msgid "workspace.header.menu.hide-pixel-grid" -msgstr "הסתרת רשת פיקסלים" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.hide-rules" -msgstr "הסתרת סרגלים" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.hide-textpalette" -msgstr "הסתרת לוח גופנים" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.option.edit" -msgstr "עריכה" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.option.file" -msgstr "קובץ" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.option.help-info" -msgstr "עזרה ומידע" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.option.preferences" -msgstr "העדפות" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.option.view" -msgstr "תצוגה" - -msgid "workspace.header.menu.redo" -msgstr "ביצוע מחדש" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.select-all" -msgstr "לבחור הכול" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.show-artboard-names" -msgstr "הצגת שמות לוחות" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.show-palette" -msgstr "הצגת ערכת צבעים" - -msgid "workspace.header.menu.show-pixel-grid" -msgstr "הצגת רשת פיקסלים" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.show-rules" -msgstr "הצגת סרגלים" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.show-textpalette" -msgstr "הצגת לוח גופנים" - -msgid "workspace.header.menu.toggle-dark-theme" -msgstr "החלפה לערכת עיצוב כהה" - -msgid "workspace.header.menu.toggle-light-theme" -msgstr "החלפה לערכת עיצוב בהירה" - -msgid "workspace.header.menu.undo" -msgstr "החזרה" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.reset-zoom" -msgstr "איפוס" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.save-error" -msgstr "שגיאה בשמירה" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.saved" -msgstr "נשמר" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.saving" -msgstr "בשמירה" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.unsaved" -msgstr "שינויים שלא נשמרו" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.viewer" -msgstr "מצב תצוגה (%s)" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.zoom" -msgstr "תקריב" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.zoom-fill" -msgstr "מילוי - שינוי גודל כדי למלא" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.zoom-fit" -msgstr "התאמה - שינוי גודל כדי להתאים" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.zoom-fit-all" -msgstr "כיוון תקריב כדי להציג הכול" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.zoom-full-screen" -msgstr "מסך מלא" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.zoom-selected" -msgstr "התמקדות על הנבחר" - -msgid "workspace.layout_grid.editor.options.edit-grid" -msgstr "עריכת רשת" - -msgid "workspace.layout_grid.editor.options.exit" -msgstr "יציאה מהמערכת" - -msgid "workspace.layout_grid.editor.title" -msgstr "רשת עריכה" - -msgid "workspace.layout_grid.editor.top-bar.done" -msgstr "בוצע" - -msgid "workspace.layout_grid.editor.top-bar.locate" -msgstr "איתור" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.add" -msgstr "הוספה" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.colors" -msgstr "%s צבעים" - -#: src/app/main/ui/workspace/colorpalette.cljs -msgid "workspace.libraries.colors.empty-palette" -msgstr "אין עדיין סגנונות צבע בספרייה שלך" - -#: src/app/main/ui/workspace/textpalette.cljs -msgid "workspace.libraries.colors.empty-typography-palette" -msgstr "עדיין אין סוגי טיפוגרפיה בספרייה שלך" - -#: src/app/main/ui/workspace/colorpicker/libraries.cljs, -#: src/app/main/ui/workspace/colorpalette.cljs -msgid "workspace.libraries.colors.file-library" -msgstr "ספריית קבצים" - -#: src/app/main/ui/workspace/colorpicker.cljs -msgid "workspace.libraries.colors.hsv" -msgstr "HSV" - -#: src/app/main/ui/workspace/colorpicker/libraries.cljs, -#: src/app/main/ui/workspace/colorpalette.cljs -msgid "workspace.libraries.colors.recent-colors" -msgstr "צבעים אחרונים" - -#: src/app/main/ui/workspace/colorpicker.cljs -msgid "workspace.libraries.colors.rgb-complementary" -msgstr "RGB משלים" - -#: src/app/main/ui/workspace/colorpicker.cljs -msgid "workspace.libraries.colors.rgba" -msgstr "RGBA" - -#: src/app/main/ui/workspace/colorpicker.cljs -msgid "workspace.libraries.colors.save-color" -msgstr "שמירת סגנון צבע" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.components" -msgstr "%s רכיבים" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.file-library" -msgstr "ספריית קבצים" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.graphics" -msgstr "%s גרפיקה" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.in-this-file" -msgstr "ספריות בקובץ הזה" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.libraries" -msgstr "ספריות" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.library" -msgstr "ספרייה" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.library-updates" -msgstr "עדכוני ספרייה" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.loading" -msgstr "בטעינה…" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.no-libraries-need-sync" -msgstr "אין ספריות משותפות שדורשות עדכון" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.no-matches-for" -msgstr "לא נמצאו תוצאות לחיפוש אחר „%s”" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.no-shared-libraries-available" -msgstr "אין ספריות משותפות זמינות" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.search-shared-libraries" -msgstr "חיפוש בספריות המשותפות" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.shared-libraries" -msgstr "ספריות משותפות" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.libraries.text.multiple-typography" -msgstr "מגוון טיפוגרפיות" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.libraries.text.multiple-typography-tooltip" -msgstr "ניתוק כל הטיפוגרפיות" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.typography" -msgstr "%s טיפוגרפיות" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.update" -msgstr "עדכון" - -#: src/app/main/data/workspace/libraries.cljs -msgid "workspace.libraries.update.see-all-changes" -msgstr "הצגת כל השינויים" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.updates" -msgstr "עדכונים" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.add-interaction" -msgstr "יש ללחוץ על הכפתור + כדי להוסיף אינטראקציות." - -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs -msgid "workspace.options.blur-options.title" -msgstr "טשטוש" - -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs -msgid "workspace.options.blur-options.title.group" -msgstr "טשטוש קבוצה" - -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs -msgid "workspace.options.blur-options.title.multiple" -msgstr "טשטוש בחירה" - -#: src/app/main/ui/workspace/sidebar/options/page.cljs -msgid "workspace.options.canvas-background" -msgstr "רקע משטח ציור" - -msgid "workspace.options.clip-content" -msgstr "חיתוך התוכן" - -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs -msgid "workspace.options.component" -msgstr "רכיב" - -msgid "workspace.options.component.annotation" -msgstr "הסבר" - -msgid "workspace.options.component.copy" -msgstr "העתקה" - -msgid "workspace.options.component.create-annotation" -msgstr "יצירת הסבר" - -msgid "workspace.options.component.edit-annotation" -msgstr "עריכת הסבר" - -msgid "workspace.options.component.main" -msgstr "ראשי" - -msgid "workspace.options.component.swap" -msgstr "החלפת רכיב" - -msgid "workspace.options.component.swap.empty" -msgstr "עדיין אין נכסים בתיקייה הזאת" - -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -msgid "workspace.options.constraints" -msgstr "הגבלות" - -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -msgid "workspace.options.constraints.bottom" -msgstr "תחתית" - -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -msgid "workspace.options.constraints.center" -msgstr "מרכז" - -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -msgid "workspace.options.constraints.fix-when-scrolling" -msgstr "תיקון בעת גלילה" - -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -msgid "workspace.options.constraints.left" -msgstr "שמאל" - -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -msgid "workspace.options.constraints.leftright" -msgstr "שמאל וימין" - -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -msgid "workspace.options.constraints.right" -msgstr "ימין" - -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -msgid "workspace.options.constraints.scale" -msgstr "שינוי גודל" - -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -msgid "workspace.options.constraints.top" -msgstr "עליון" - -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -msgid "workspace.options.constraints.topbottom" -msgstr "עליון ותחתון" - -#: src/app/main/ui/workspace/sidebar/options.cljs -msgid "workspace.options.design" -msgstr "עיצוב" - -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs -msgid "workspace.options.export" -msgstr "ייצוא" - -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs -msgid "workspace.options.export-multiple" -msgstr "ייצוא הבחירה" - -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs -msgid "workspace.options.export-object" -msgid_plural "workspace.options.export-object" -msgstr[0] "ייצוא רכיב" -msgstr[1] "ייצוא %s רכיבים" -msgstr[2] "ייצוא %s רכיבים" -msgstr[3] "ייצוא %s רכיבים" - -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs -msgid "workspace.options.export.suffix" -msgstr "סיומת" - -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs, src/app/main/ui/workspace/header.cljs -msgid "workspace.options.exporting-complete" -msgstr "הייצוא הושלם" - -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs -msgid "workspace.options.exporting-object" -msgstr "מתבצע ייצוא…" - -#: 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.exporting-object-error" -msgstr "הייצוא נכשל" - -#: 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.exporting-object-slow" -msgstr "הייצוא אטי בהגזמה" - -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs -msgid "workspace.options.fill" -msgstr "מילוי" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.flows.add-flow-start" -msgstr "הוספת תחילת זרימה" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.flows.flow" -msgstr "זרימה" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.flows.flow-start" -msgstr "התחלת זרימה" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.flows.flow-starts" -msgstr "הזרימה מתחילה" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.auto" -msgstr "אוטומטי" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.column" -msgstr "עמודות" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.grid-title" -msgstr "טבלה" - -msgid "workspace.options.grid.params.color" -msgstr "צבע" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.columns" -msgstr "עמודות" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.gutter" -msgstr "מרזב" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.height" -msgstr "גובה" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.margin" -msgstr "שול" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.rows" -msgstr "שורות" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.set-default" -msgstr "הגדרה כבררת מחדל" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.size" -msgstr "גודל" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.type" -msgstr "סוג" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.type.bottom" -msgstr "תחתון" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.type.center" -msgstr "מרכז" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.type.left" -msgstr "שמאל" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.type.right" -msgstr "ימין" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.type.stretch" -msgstr "מתיחה" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.type.top" -msgstr "עליון" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.use-default" -msgstr "להשתמש בבררת המחדל" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.width" -msgstr "רוחב" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.row" -msgstr "שורות" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.square" -msgstr "ריבוע" - -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs -msgid "workspace.options.group-fill" -msgstr "מילוי קבוצה" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.group-stroke" -msgstr "מתאר קבוצה" - -msgid "workspace.options.guides.title" -msgstr "קווים מנחים" - -msgid "workspace.options.height" -msgstr "גובה" - -msgid "workspace.options.inspect" -msgstr "חקירה" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-action" -msgstr "פעולה" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-after-delay" -msgstr "לאחר השהיה" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-animation" -msgstr "הנפשה" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-animation-dissolve" -msgstr "התמוססות" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-animation-none" -msgstr "ללא" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-animation-push" -msgstr "דחיפה" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-animation-slide" -msgstr "גלישה" - -msgid "workspace.options.interaction-auto" -msgstr "אוטו" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-background" -msgstr "הוספת שכבת רקע" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-close-outside" -msgstr "תיסגר בלחיצה מחוצה לה" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-close-overlay" -msgstr "סגירת שכבת על" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-close-overlay-dest" -msgstr "סגירת שכבת על: %s" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-delay" -msgstr "השהיה" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-destination" -msgstr "יעד" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-duration" -msgstr "משך" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-easing" -msgstr "החלקה" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-easing-ease" -msgstr "קלה" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-easing-ease-in" -msgstr "החלקה פנימה" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-easing-ease-in-out" -msgstr "החלקה פנימה החוצה" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-easing-ease-out" -msgstr "החלקה החוצה" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-easing-linear" -msgstr "קווי" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-in" -msgstr "פנימה" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-mouse-enter" -msgstr "כניסת עכבר" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-mouse-leave" -msgstr "יציאת עכבר" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-ms" -msgstr "מילישניות" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-navigate-to" -msgstr "ניווט אל" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-navigate-to-dest" -msgstr "ניווט אל: %s" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-none" -msgstr "(לא הוגדר)" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-offset-effect" -msgstr "אפקט הזחה" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-on-click" -msgstr "בלחיצה" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-open-overlay" -msgstr "פתיחת שכבת על" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-open-overlay-dest" -msgstr "פתיחת שכבת על: %s" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-open-url" -msgstr "פתיחת כתובת" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-out" -msgstr "החוצה" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-pos-bottom-center" -msgstr "בתחתית במרכז" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-pos-bottom-left" -msgstr "בתחתית משמאל" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-pos-bottom-right" -msgstr "בתחתית מימין" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-pos-center" -msgstr "מרכז" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-pos-manual" -msgstr "ידני" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-pos-top-center" -msgstr "בראש באמצע" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-pos-top-left" -msgstr "בראש משמאל" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-pos-top-right" -msgstr "בראש מימין" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-position" -msgstr "מיקום" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-preserve-scroll" -msgstr "שימור מיקום גלילה" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-prev-screen" -msgstr "המסך הקודם" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-relative-to" -msgstr "יחסי אל" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-self" -msgstr "עצמי" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-toggle-overlay" -msgstr "החלפת מצב שכבת על" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-toggle-overlay-dest" -msgstr "החלפת מצב שכבת על: %s" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-trigger" -msgstr "הקפצה" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-url" -msgstr "כתובת" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-while-hovering" -msgstr "בזמן ריחוף" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-while-pressing" -msgstr "בזמן לחיצה" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interactions" -msgstr "אינטראקציות" - -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.blend-mode.color" -msgstr "צבע" - -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.blend-mode.color-burn" -msgstr "צריבת צבע" - -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.blend-mode.color-dodge" -msgstr "בריחת צבע" - -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.blend-mode.darken" -msgstr "החשכה" - -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.blend-mode.difference" -msgstr "הבדל" - -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.blend-mode.exclusion" -msgstr "הדרה" - -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.blend-mode.hard-light" -msgstr "אור קשיח" - -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.blend-mode.hue" -msgstr "גוון" - -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.blend-mode.lighten" -msgstr "הבהרה" - -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.blend-mode.luminosity" -msgstr "תאורה" - -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.blend-mode.multiply" -msgstr "הכפלה" - -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.blend-mode.normal" -msgstr "רגיל" - -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.blend-mode.overlay" -msgstr "שכבת על" - -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.blend-mode.saturation" -msgstr "רוויה" - -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.blend-mode.screen" -msgstr "מסך" - -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.blend-mode.soft-light" -msgstr "אור רך" - -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.title" -msgstr "שכבה" - -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.title.group" -msgstr "קיבוץ שכבות" - -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.title.multiple" -msgstr "שכבות נבחרות" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -msgid "workspace.options.layout-item.advanced-ops" -msgstr "אפשרויות מתקדמות" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -msgid "workspace.options.layout-item.layout-item-max-h" -msgstr "גובה מר.‏" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -msgid "workspace.options.layout-item.layout-item-max-w" -msgstr "רוחב מר.‏" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -msgid "workspace.options.layout-item.layout-item-min-h" -msgstr "גובה מז.‏" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -msgid "workspace.options.layout-item.layout-item-min-w" -msgstr "רוחב מז.‏" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -msgid "workspace.options.layout-item.title.layout-item-max-h" -msgstr "גובה מרבי" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -msgid "workspace.options.layout-item.title.layout-item-max-w" -msgstr "רוחב מרבי" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -msgid "workspace.options.layout-item.title.layout-item-min-h" -msgstr "גובה מזערי" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -msgid "workspace.options.layout-item.title.layout-item-min-w" -msgstr "רוחב מזערי" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -msgid "workspace.options.layout.bottom" -msgstr "תחתית" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -msgid "workspace.options.layout.direction.column" -msgstr "עמודה" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -msgid "workspace.options.layout.direction.column-reverse" -msgstr "היפוך עמודה" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -msgid "workspace.options.layout.direction.row" -msgstr "שורה" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -msgid "workspace.options.layout.direction.row-reverse" -msgstr "היפוך שורה" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -msgid "workspace.options.layout.gap" -msgstr "מרווח" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -msgid "workspace.options.layout.left" -msgstr "שמאל" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -msgid "workspace.options.layout.margin" -msgstr "שול" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -msgid "workspace.options.layout.margin-all" -msgstr "כל הצדדים" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -msgid "workspace.options.layout.margin-simple" -msgstr "שול פשוט" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -msgid "workspace.options.layout.packed" -msgstr "אסוף" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -msgid "workspace.options.layout.padding" -msgstr "ריפוד" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -msgid "workspace.options.layout.padding-all" -msgstr "כל הצדדים" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -msgid "workspace.options.layout.padding-simple" -msgstr "ריפוד פשוט" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -msgid "workspace.options.layout.right" -msgstr "ימין" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -msgid "workspace.options.layout.space-around" -msgstr "רווח מסביב" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -msgid "workspace.options.layout.space-between" -msgstr "רווח בין לבין" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -msgid "workspace.options.layout.top" -msgstr "עליון" - -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs -msgid "workspace.options.more-colors" -msgstr "צבעים נוספים" - -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs -msgid "workspace.options.more-lib-colors" -msgstr "צבעי ספרייה נוספים" - -msgid "workspace.options.opacity" -msgstr "אטימות" - -#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -msgid "workspace.options.position" -msgstr "מיקום" - -#: src/app/main/ui/workspace/sidebar/options.cljs -msgid "workspace.options.prototype" -msgstr "אבטיפוס" - -msgid "workspace.options.radius" -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 "בתחתית מימין" - -#: 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.all-corners" -msgstr "כל הפינות" - -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -msgid "workspace.options.radius.single-corners" -msgstr "פינות עצמאיות" - -msgid "workspace.options.recent-fonts" -msgstr "אחרונים" - -#: 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 "לנסות שוב" - -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -msgid "workspace.options.rotation" -msgstr "סיבוב" - -msgid "workspace.options.search-font" -msgstr "חיפוש גופן" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.select-a-shape" -msgstr "נא לבחור צורה, לוח או קבוצה כדי לגרור חיבור ללוח אחר." - -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs -msgid "workspace.options.selection-color" -msgstr "צבעים נבחרים" - -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs -msgid "workspace.options.selection-fill" -msgstr "מילוי בחירה" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.selection-stroke" -msgstr "מתאר בחירה" - -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs -msgid "workspace.options.shadow-options.blur" -msgstr "טשטוש" - -msgid "workspace.options.shadow-options.color" -msgstr "צבע הצללה" - -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs -msgid "workspace.options.shadow-options.drop-shadow" -msgstr "הטלת צל" - -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs -msgid "workspace.options.shadow-options.inner-shadow" -msgstr "צל פנימי" - -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs -msgid "workspace.options.shadow-options.offsetx" -msgstr "X" - -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs -msgid "workspace.options.shadow-options.offsety" -msgstr "Y" - -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs -msgid "workspace.options.shadow-options.spread" -msgstr "פיזור" - -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs -msgid "workspace.options.shadow-options.title" -msgstr "צל" - -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs -msgid "workspace.options.shadow-options.title.group" -msgstr "צל של קבוצה" - -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs -msgid "workspace.options.shadow-options.title.multiple" -msgstr "צללים של בחירה" - -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs -msgid "workspace.options.show-fill-on-export" -msgstr "הצגה בייצואים" - -msgid "workspace.options.show-in-viewer" -msgstr "להציג במצב הצגה" - -#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -msgid "workspace.options.size" -msgstr "גודל" - -#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs -msgid "workspace.options.size-presets" -msgstr "תבניות גודל" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke" -msgstr "מתאר" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke-cap.circle-marker" -msgstr "סמן עגול" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke-cap.circle-marker-short" -msgstr "עיגול" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke-cap.diamond-marker" -msgstr "סמן יהלום" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke-cap.diamond-marker-short" -msgstr "יהלום" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke-cap.line-arrow" -msgstr "חץ קו" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke-cap.line-arrow-short" -msgstr "חץ" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke-cap.none" -msgstr "ללא" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke-cap.round" -msgstr "עגול" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke-cap.square" -msgstr "ריבוע" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke-cap.square-marker" -msgstr "סמן ריבוע" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke-cap.square-marker-short" -msgstr "מרובע" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke-cap.triangle-arrow" -msgstr "חץ משולש" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke-cap.triangle-arrow-short" -msgstr "משולש" - -msgid "workspace.options.stroke-color" -msgstr "צבע מתאר" - -msgid "workspace.options.stroke-width" -msgstr "עובי מתאר" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke.center" -msgstr "מרכז" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke.dashed" -msgstr "מקווקוו" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke.dotted" -msgstr "מנוקד" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke.inner" -msgstr "בפנים" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke.mixed" -msgstr "מעורב" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke.outer" -msgstr "בחוץ" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke.solid" -msgstr "אחיד" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.options.text-options.align-bottom" -msgstr "יישור לתחתית" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.options.text-options.align-middle" -msgstr "יישור לאמצע" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.options.text-options.align-top" -msgstr "יישור לראש" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.options.text-options.direction-ltr" -msgstr "משמאל לימין" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.options.text-options.direction-rtl" -msgstr "מימין לשמאל" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.options.text-options.grow-auto-height" -msgstr "גובה אוטומטי" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.options.text-options.grow-auto-width" -msgstr "רוחב אוטומטי" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.options.text-options.grow-fixed" -msgstr "קבוע" - -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -msgid "workspace.options.text-options.letter-spacing" -msgstr "ריווח תווים" - -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -msgid "workspace.options.text-options.line-height" -msgstr "גובה שורה" - -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -msgid "workspace.options.text-options.lowercase" -msgstr "אותיות קטנות" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -msgid "workspace.options.text-options.none" -msgstr "ללא" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.options.text-options.strikethrough" -msgstr "קו חוצה (%s)" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.options.text-options.text-align-center" -msgstr "יישור למרכז (%s)" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.options.text-options.text-align-justify" -msgstr "יישור לשני הצדדים (%s)" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.options.text-options.text-align-left" -msgstr "יישור שמאלה (%s)" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.options.text-options.text-align-right" -msgstr "יישור ימינה (%s)" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.options.text-options.title" -msgstr "טקסט" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.options.text-options.title-group" -msgstr "קיבוץ טקסט" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.options.text-options.title-selection" -msgstr "טקסט בחירה" - -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -msgid "workspace.options.text-options.titlecase" -msgstr "רישיות כותרת" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.options.text-options.underline" -msgstr "קו תחתי (%s)" - -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -msgid "workspace.options.text-options.uppercase" -msgstr "אותיות גדולות" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.use-play-button" -msgstr "ניתן להשתמש בכפתור הנגינה שבכותרת כדי להריץ את תצוגת האבטיפוס." - -msgid "workspace.options.width" -msgstr "עובי" - -msgid "workspace.options.x" -msgstr "ציר X" - -msgid "workspace.options.y" -msgstr "ציר Y" - -msgid "workspace.path.actions.add-node" -msgstr "הוספת מפרק (%s)" - -msgid "workspace.path.actions.delete-node" -msgstr "מחיקת מפרק (%s)" - -msgid "workspace.path.actions.draw-nodes" -msgstr "ציור מפרקים (%s)" - -msgid "workspace.path.actions.join-nodes" -msgstr "צירוף מפרקים (%s)" - -msgid "workspace.path.actions.make-corner" -msgstr "לפינה (%s)" - -msgid "workspace.path.actions.make-curve" -msgstr "לעיקול (%s)" - -msgid "workspace.path.actions.merge-nodes" -msgstr "מיזוג מפרקים (%s)" - -msgid "workspace.path.actions.move-nodes" -msgstr "העברת מפרקים (%s)" - -msgid "workspace.path.actions.separate-nodes" -msgstr "הפרדת מפרקים (%s)" - -msgid "workspace.path.actions.snap-nodes" -msgstr "הצמדת מפרקים (%s)" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.add-flex" -msgstr "הוספת פריסת flex" - -msgid "workspace.shape.menu.add-grid" -msgstr "הוספת פריסת רשת" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.back" -msgstr "הרחקה" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.backward" -msgstr "הרחקה לאחור" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.copy" -msgstr "העתקה" - -msgid "workspace.shape.menu.create-annotation" -msgstr "יצירת הסבר" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.create-artboard-from-selection" -msgstr "בחירה ללוח" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.create-component" -msgstr "יצירת רכיב" - -msgid "workspace.shape.menu.create-multiple-components" -msgstr "יצירת מגוון רכיבים" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.cut" -msgstr "גזירה" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.delete" -msgstr "מחיקה" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.delete-flow-start" -msgstr "מחיקת התחלת זרימה" - -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.detach-instance" -msgstr "ניתוק מופע" - -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.detach-instances-in-bulk" -msgstr "הפרדת מופעים" - -msgid "workspace.shape.menu.difference" -msgstr "הבדל" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.duplicate" -msgstr "שכפול" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.edit" -msgstr "עריכה" - -msgid "workspace.shape.menu.exclude" -msgstr "החרגה" - -msgid "workspace.shape.menu.flatten" -msgstr "שיטוח" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.flip-horizontal" -msgstr "היפוך אופקי" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.flip-vertical" -msgstr "היפוך אנכי" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.flow-start" -msgstr "התחלת זרימה" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.forward" -msgstr "קידום" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.front" -msgstr "קידום לחזית" - -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.go-main" -msgstr "מעבר לקובץ הרכיב הראשי" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.group" -msgstr "קבוצה" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.hide" -msgstr "הסתרה" - -msgid "workspace.shape.menu.hide-ui" -msgstr "הצגת/הסתרת מנשק משתמש" - -msgid "workspace.shape.menu.intersection" -msgstr "הצלבה" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.lock" -msgstr "נעילה" - -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.mask" -msgstr "מסכה" - -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.paste" -msgstr "הדבקה" - -msgid "workspace.shape.menu.path" -msgstr "נתיב" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.remove-flex" -msgstr "הסרת פריסת flex" - -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.reset-overrides" -msgstr "איפוס מעקפים" - -msgid "workspace.shape.menu.restore-main" -msgstr "שחזור הרכיב הראשי" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.select-layer" -msgstr "בחירת שכבה" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.show" -msgstr "הצגה" - -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.show-in-assets" -msgstr "הצגה בלוח משאבים" - -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.show-main" -msgstr "הצגת הרכיב הראשי" - -msgid "workspace.shape.menu.thumbnail-remove" -msgstr "הסרת התמונה הממוזערת" - -msgid "workspace.shape.menu.thumbnail-set" -msgstr "הגדרה כתמונה ממוזערת" - -msgid "workspace.shape.menu.transform-to-path" -msgstr "המרה לנתיב" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.ungroup" -msgstr "פירוק קבוצה" - -msgid "workspace.shape.menu.union" -msgstr "איחוד" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.unlock" -msgstr "שחרור נעילה" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.unmask" -msgstr "ביטול מסכה" - -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.update-components-in-bulk" -msgstr "עדכון הרכיבים הראשיים" - -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.update-main" -msgstr "עדכון הרכיב הראשי" - -msgid "workspace.sidebar.collapse" -msgstr "צמצום סרגל צד" - -msgid "workspace.sidebar.expand" -msgstr "הרחבת סרגל צד" - -#: src/app/main/ui/workspace/left_toolbar.cljs -msgid "workspace.sidebar.history" -msgstr "היסטוריה (%s)" - -#: src/app/main/ui/workspace/left_toolbar.cljs -msgid "workspace.sidebar.layers" -msgstr "שכבות" - -msgid "workspace.sidebar.layers.components" -msgstr "רכיבים" - -msgid "workspace.sidebar.layers.frames" -msgstr "לוחות" - -msgid "workspace.sidebar.layers.groups" -msgstr "קבוצות" - -msgid "workspace.sidebar.layers.images" -msgstr "תמונות" - -msgid "workspace.sidebar.layers.masks" -msgstr "מסכות" - -msgid "workspace.sidebar.layers.search" -msgstr "חיפוש בשכבות" - -msgid "workspace.sidebar.layers.shapes" -msgstr "צורות" - -msgid "workspace.sidebar.layers.texts" -msgstr "טקסטים" - -#: src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs, -#: src/app/main/ui/inspect/attributes/svg.cljs -msgid "workspace.sidebar.options.svg-attrs.title" -msgstr "מאפייני SVG יובאו" - -#: src/app/main/ui/workspace/sidebar/sitemap.cljs -msgid "workspace.sidebar.sitemap" -msgstr "עמודים" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.sitemap" -msgstr "מפת אתר" - -#: src/app/main/ui/workspace/left_toolbar.cljs -msgid "workspace.toolbar.assets" -msgstr "משאבים" - -#: src/app/main/ui/workspace/left_toolbar.cljs -msgid "workspace.toolbar.color-palette" -msgstr "ערכת צבעים (%s)" - -#: src/app/main/ui/workspace/left_toolbar.cljs -msgid "workspace.toolbar.comments" -msgstr "הערות (%s)" - -#: src/app/main/ui/workspace/left_toolbar.cljs -msgid "workspace.toolbar.curve" -msgstr "עיקול (%s)" - -#: src/app/main/ui/workspace/left_toolbar.cljs -msgid "workspace.toolbar.ellipse" -msgstr "אליפסה (%s)" - -#: src/app/main/ui/workspace/left_toolbar.cljs -msgid "workspace.toolbar.frame" -msgstr "לוח (%s)" - -#: src/app/main/ui/workspace/left_toolbar.cljs -msgid "workspace.toolbar.image" -msgstr "תמונה (%s)" - -#: src/app/main/ui/workspace/left_toolbar.cljs -msgid "workspace.toolbar.move" -msgstr "העברה (%s)" - -#: src/app/main/ui/workspace/left_toolbar.cljs -msgid "workspace.toolbar.path" -msgstr "נתיב (%s)" - -#: src/app/main/ui/workspace/left_toolbar.cljs -msgid "workspace.toolbar.rect" -msgstr "ריבוע (%s)" - -#: src/app/main/ui/workspace/left_toolbar.cljs -msgid "workspace.toolbar.shortcuts" -msgstr "קיצורי דרך (%s)" - -#: src/app/main/ui/workspace/left_toolbar.cljs -msgid "workspace.toolbar.text" -msgstr "טקסט (%s)" - -#: src/app/main/ui/workspace/left_toolbar.cljs -msgid "workspace.toolbar.text-palette" -msgstr "טיפוגרפיות (%s)" - -msgid "workspace.top-bar.read-only.done" -msgstr "בוצע" - -#: src/app/main/ui/workspace/sidebar/history.cljs -msgid "workspace.undo.empty" -msgstr "אין שינויים היסטוריים עד כה" - -#: src/app/main/ui/workspace/sidebar/history.cljs -msgid "workspace.undo.entry.delete" -msgstr "%s נמחק" - -#: src/app/main/ui/workspace/sidebar/history.cljs -msgid "workspace.undo.entry.modify" -msgstr "%s נערך" - -#: src/app/main/ui/workspace/sidebar/history.cljs -msgid "workspace.undo.entry.move" -msgstr "פריטים שהועברו" - -msgid "workspace.undo.entry.multiple.circle" -msgstr "עיגולים" - -msgid "workspace.undo.entry.multiple.color" -msgstr "משאבי צבע" - -msgid "workspace.undo.entry.multiple.component" -msgstr "רכיבים" - -msgid "workspace.undo.entry.multiple.curve" -msgstr "עיקולים" - -msgid "workspace.undo.entry.multiple.frame" -msgstr "לוח" - -msgid "workspace.undo.entry.multiple.group" -msgstr "קבוצות" - -msgid "workspace.undo.entry.multiple.media" -msgstr "משאבים גרפיים" - -msgid "workspace.undo.entry.multiple.multiple" -msgstr "פריטים" - -msgid "workspace.undo.entry.multiple.page" -msgstr "עמודים" - -msgid "workspace.undo.entry.multiple.path" -msgstr "נתיבים" - -msgid "workspace.undo.entry.multiple.rect" -msgstr "ריבועים" - -msgid "workspace.undo.entry.multiple.shape" -msgstr "צורות" - -msgid "workspace.undo.entry.multiple.text" -msgstr "טקסטים" - -msgid "workspace.undo.entry.multiple.typography" -msgstr "משאבים טיפוגרפיים" - -#: src/app/main/ui/workspace/sidebar/history.cljs -msgid "workspace.undo.entry.new" -msgstr "%s חדש" - -msgid "workspace.undo.entry.single.circle" -msgstr "עיגול" - -msgid "workspace.undo.entry.single.color" -msgstr "משאב צבע" - -msgid "workspace.undo.entry.single.component" -msgstr "רכיב" - -msgid "workspace.undo.entry.single.curve" -msgstr "עיקול" - -msgid "workspace.undo.entry.single.frame" -msgstr "לוח" - -msgid "workspace.undo.entry.single.group" -msgstr "קבוצה" - -msgid "workspace.undo.entry.single.image" -msgstr "תמונה" - -msgid "workspace.undo.entry.single.media" -msgstr "משאב גרפי" - -msgid "workspace.undo.entry.single.multiple" -msgstr "פריט" - -msgid "workspace.undo.entry.single.page" -msgstr "עמוד" - -msgid "workspace.undo.entry.single.path" -msgstr "נתיב" - -msgid "workspace.undo.entry.single.rect" -msgstr "מרובע" - -msgid "workspace.undo.entry.single.shape" -msgstr "צורה" - -msgid "workspace.undo.entry.single.text" -msgstr "טקסט" - -msgid "workspace.undo.entry.single.typography" -msgstr "משאב טיפוגרפי" - -#: src/app/main/ui/workspace/sidebar/history.cljs -msgid "workspace.undo.entry.unknown" -msgstr "פעולה על %s" - -#: src/app/main/ui/workspace/sidebar/history.cljs -msgid "workspace.undo.title" -msgstr "היסטוריה" - -#: src/app/main/data/workspace/libraries.cljs -msgid "workspace.updates.dismiss" -msgstr "התעלמות" - -#: src/app/main/data/workspace/libraries.cljs -msgid "workspace.updates.more-info" -msgstr "מידע נוסף" - -#: src/app/main/data/workspace/libraries.cljs -msgid "workspace.updates.there-are-updates" -msgstr "יש עדכונים בספריות המשותפות" - -#: src/app/main/data/workspace/libraries.cljs -msgid "workspace.updates.update" -msgstr "עדכון" - -msgid "workspace.viewport.click-to-close-path" -msgstr "לחיצה תסגור את הנתיב" - -msgid "media.image.short" -msgstr "תמונה" - -msgid "media.keep-aspect-ratio" -msgstr "שמירה על יחס גובה־רוחב" - -#: src/app/main/ui/workspace/sidebar/assets.cljs -msgid "workspace.assets.filter" -msgstr "סינון" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.disable-snap-ruler-guides" -msgstr "השבתת הצמדה לקווים מנחים סרגלים" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.enable-snap-ruler-guides" -msgstr "הצמדה לקווים מנחים סרגלים" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.hide-guides" -msgstr "הסתרת קווים מנחים" - -msgid "workspace.layout_grid.editor.padding.expand" -msgstr "הצגת אפשרויות ריפוד עם 4 צדדים" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.unlink-library-btn" -msgstr "ניתוק ספרייה" - -msgid "workspace.top-bar.view-only" -msgstr "**חקירת קוד** (צפייה בלבד)" - -msgid "modals.move-shared-confirm.accept" -msgid_plural "modals.move-shared-confirm.accept" -msgstr[0] "העברה" -msgstr[1] "העברה" -msgstr[2] "העברה" -msgstr[3] "העברה" - -#: src/app/main/ui/workspace/sidebar/assets/common.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:221 msgid "workspace.assets.sidebar.components" msgid_plural "workspace.assets.sidebar.components" msgstr[0] "רכיב" @@ -5172,17 +3635,2045 @@ msgstr[1] "שני רכיבים" msgstr[2] "%s רכיבים" msgstr[3] "%s רכיבים" +#: src/app/main/ui/workspace/sidebar/assets.cljs:193 +msgid "workspace.assets.sort" +msgstr "מיון" + +#: src/app/main/ui/dashboard/grid.cljs:134, src/app/main/ui/dashboard/grid.cljs:189, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:397, src/app/main/ui/workspace/sidebar/assets.cljs:155 +msgid "workspace.assets.typography" +msgstr "טיפוגרפיות" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused +msgid "workspace.assets.typography.font-id" +msgstr "גופן" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:505 +msgid "workspace.assets.typography.font-size" +msgstr "גודל" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:501 +msgid "workspace.assets.typography.font-variant-id" +msgstr "הגוון" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:523 +msgid "workspace.assets.typography.go-to-edit" +msgstr "מעבר לקובץ ספריית סגנון כדי לערוך" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:513 +msgid "workspace.assets.typography.letter-spacing" +msgstr "ריווח תווים" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:509 +msgid "workspace.assets.typography.line-height" +msgstr "גובה שורה" + +#: src/app/main/ui/dashboard/grid.cljs:199, src/app/main/ui/workspace/libraries.cljs:461, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:464, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:489, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:596, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:615 +msgid "workspace.assets.typography.sample" +msgstr "שצ" + +#, unused +msgid "workspace.assets.typography.text-styles" +msgstr "סגנונות טקסט" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:517 +msgid "workspace.assets.typography.text-transform" +msgstr "התמרת טקסט" + +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:66 +msgid "workspace.assets.ungroup" +msgstr "פירוק קבוצה" + +#: src/app/main/ui/workspace/context_menu.cljs:634 +msgid "workspace.context-menu.grid-cells.area" +msgstr "יצירת שטח" + +#: src/app/main/ui/workspace/context_menu.cljs:637 +msgid "workspace.context-menu.grid-cells.create-board" +msgstr "יצירת לוח" + +#: src/app/main/ui/workspace/context_menu.cljs:629 +msgid "workspace.context-menu.grid-cells.merge" +msgstr "מיזוג תאים" + +#: src/app/main/ui/workspace/context_menu.cljs:594 +msgid "workspace.context-menu.grid-track.column.add-after" +msgstr "הוספת עמודה מימין" + +#: src/app/main/ui/workspace/context_menu.cljs:593 +msgid "workspace.context-menu.grid-track.column.add-before" +msgstr "הוספת עמודה משמאל" + +#: src/app/main/ui/workspace/context_menu.cljs:595 +msgid "workspace.context-menu.grid-track.column.delete" +msgstr "מחיקת עמודה" + +#: src/app/main/ui/workspace/context_menu.cljs:596 +msgid "workspace.context-menu.grid-track.column.delete-shapes" +msgstr "מחיקת עמודה וצורות" + +#: src/app/main/ui/workspace/context_menu.cljs:592 +msgid "workspace.context-menu.grid-track.column.duplicate" +msgstr "שכפול עמודה" + +#: src/app/main/ui/workspace/context_menu.cljs:601 +msgid "workspace.context-menu.grid-track.row.add-after" +msgstr "הוספת שורה מתחת" + +#: src/app/main/ui/workspace/context_menu.cljs:600 +msgid "workspace.context-menu.grid-track.row.add-before" +msgstr "הוספת שורה למעלה" + +#: src/app/main/ui/workspace/context_menu.cljs:602 +msgid "workspace.context-menu.grid-track.row.delete" +msgstr "מחיקת שורה" + +#: src/app/main/ui/workspace/context_menu.cljs:603 +msgid "workspace.context-menu.grid-track.row.delete-shapes" +msgstr "מחיקת שורה וצורות" + +#: src/app/main/ui/workspace/context_menu.cljs:599 +msgid "workspace.context-menu.grid-track.row.duplicate" +msgstr "שכפול שורה" + +#: src/app/main/ui/workspace/sidebar/layers.cljs:525 +msgid "workspace.focus.focus-mode" +msgstr "מצב מיקוד" + +#: src/app/main/ui/workspace/context_menu.cljs:287, src/app/main/ui/workspace/context_menu.cljs:553 +msgid "workspace.focus.focus-off" +msgstr "מיקוד כבוי" + +#: src/app/main/ui/workspace/context_menu.cljs:286 +msgid "workspace.focus.focus-on" +msgstr "מיקוד פעיל" + +#, unused +msgid "workspace.focus.selection" +msgstr "בחירה" + +#: src/app/util/color.cljs:34 +msgid "workspace.gradients.linear" +msgstr "מדרג קווי" + +#: src/app/util/color.cljs:35 +msgid "workspace.gradients.radial" +msgstr "מדרג מעגלי" + +#: src/app/main/ui/workspace/main_menu.cljs:238 +msgid "workspace.header.menu.disable-dynamic-alignment" +msgstr "השבתת יישור דינמי" + +#: src/app/main/ui/workspace/main_menu.cljs:192 +msgid "workspace.header.menu.disable-scale-content" +msgstr "השבתת קנה מידה יחסי" + #: src/app/main/ui/workspace/header.cljs +#, unused +msgid "workspace.header.menu.disable-scale-text" +msgstr "השבתת שינוי גודל טקסט" + +#: src/app/main/ui/workspace/main_menu.cljs:223 +msgid "workspace.header.menu.disable-snap-guides" +msgstr "השבתת הצמדה לקווים המנחים" + +#: src/app/main/ui/workspace/main_menu.cljs:253 +msgid "workspace.header.menu.disable-snap-pixel-grid" +msgstr "השבתת הצמדה לפיקסל" + +#: src/app/main/ui/workspace/main_menu.cljs:207 +msgid "workspace.header.menu.disable-snap-ruler-guides" +msgstr "השבתת הצמדה לקווים מנחים סרגלים" + +#: src/app/main/ui/workspace/main_menu.cljs:239 +msgid "workspace.header.menu.enable-dynamic-alignment" +msgstr "הפעלת יישור דינמי" + +#: src/app/main/ui/workspace/main_menu.cljs:193 +msgid "workspace.header.menu.enable-scale-content" +msgstr "הפעלת קנה מידה יחסי" + +#: src/app/main/ui/workspace/header.cljs +#, unused +msgid "workspace.header.menu.enable-scale-text" +msgstr "הפעלת שינוי גודל טקסט" + +#: src/app/main/ui/workspace/main_menu.cljs:224 +msgid "workspace.header.menu.enable-snap-guides" +msgstr "הצמדה לקווים מנחים" + +#: src/app/main/ui/workspace/main_menu.cljs:254 +msgid "workspace.header.menu.enable-snap-pixel-grid" +msgstr "הפעלת הצמדה לפיקסל" + +#: src/app/main/ui/workspace/main_menu.cljs:208 +msgid "workspace.header.menu.enable-snap-ruler-guides" +msgstr "הצמדה לקווים מנחים סרגלים" + +#: src/app/main/ui/workspace/main_menu.cljs:382 +msgid "workspace.header.menu.hide-artboard-names" +msgstr "הסתרת שמות לוחות" + +#: src/app/main/ui/workspace/main_menu.cljs:336 +msgid "workspace.header.menu.hide-guides" +msgstr "הסתרת קווים מנחים" + +#: src/app/main/ui/workspace/main_menu.cljs:353 +msgid "workspace.header.menu.hide-palette" +msgstr "הסתרת ערכת צבעים" + +#: src/app/main/ui/workspace/main_menu.cljs:394 +msgid "workspace.header.menu.hide-pixel-grid" +msgstr "הסתרת רשת פיקסלים" + +#: src/app/main/ui/workspace/main_menu.cljs:320 +msgid "workspace.header.menu.hide-rules" +msgstr "הסתרת סרגלים" + +#: src/app/main/ui/workspace/main_menu.cljs:367 +msgid "workspace.header.menu.hide-textpalette" +msgstr "הסתרת לוח גופנים" + +#: src/app/main/ui/workspace/main_menu.cljs:731 +msgid "workspace.header.menu.option.edit" +msgstr "עריכה" + +#: src/app/main/ui/workspace/main_menu.cljs:720 +msgid "workspace.header.menu.option.file" +msgstr "קובץ" + +#: src/app/main/ui/workspace/main_menu.cljs:777 +msgid "workspace.header.menu.option.help-info" +msgstr "עזרה ומידע" + +#: src/app/main/ui/workspace/main_menu.cljs:753 +msgid "workspace.header.menu.option.preferences" +msgstr "העדפות" + +#: src/app/main/ui/workspace/main_menu.cljs:742 +msgid "workspace.header.menu.option.view" +msgstr "תצוגה" + +#: src/app/main/ui/workspace/main_menu.cljs:459 +msgid "workspace.header.menu.redo" +msgstr "ביצוע מחדש" + +#: src/app/main/ui/workspace/main_menu.cljs:432 +msgid "workspace.header.menu.select-all" +msgstr "לבחור הכול" + +#: src/app/main/ui/workspace/main_menu.cljs:383 +msgid "workspace.header.menu.show-artboard-names" +msgstr "הצגת שמות לוחות" + +#: src/app/main/ui/workspace/main_menu.cljs:337 msgid "workspace.header.menu.show-guides" msgstr "הצגת קווים מנחים" +#: src/app/main/ui/workspace/main_menu.cljs:354 +msgid "workspace.header.menu.show-palette" +msgstr "הצגת ערכת צבעים" + +#: src/app/main/ui/workspace/main_menu.cljs:395 +msgid "workspace.header.menu.show-pixel-grid" +msgstr "הצגת רשת פיקסלים" + +#: src/app/main/ui/workspace/main_menu.cljs:321 +msgid "workspace.header.menu.show-rules" +msgstr "הצגת סרגלים" + +#: src/app/main/ui/workspace/main_menu.cljs:368 +msgid "workspace.header.menu.show-textpalette" +msgstr "הצגת לוח גופנים" + +#: src/app/main/ui/workspace/main_menu.cljs:279 +msgid "workspace.header.menu.toggle-dark-theme" +msgstr "החלפה לערכת עיצוב כהה" + +#: src/app/main/ui/workspace/main_menu.cljs:278 +msgid "workspace.header.menu.toggle-light-theme" +msgstr "החלפה לערכת עיצוב בהירה" + +#: src/app/main/ui/workspace/main_menu.cljs:446 +msgid "workspace.header.menu.undo" +msgstr "החזרה" + +#: src/app/main/ui/viewer/header.cljs:98, src/app/main/ui/workspace/right_header.cljs:120 +msgid "workspace.header.reset-zoom" +msgstr "איפוס" + +#: src/app/main/ui/workspace/header.cljs +#, unused +msgid "workspace.header.save-error" +msgstr "שגיאה בשמירה" + +#: src/app/main/ui/workspace/right_header.cljs:52 +msgid "workspace.header.saved" +msgstr "נשמר" + +#: src/app/main/ui/workspace/header.cljs +#, unused +msgid "workspace.header.saving" +msgstr "בשמירה" + +#: src/app/main/ui/workspace/right_header.cljs:42, src/app/main/ui/workspace/right_header.cljs:47 +msgid "workspace.header.unsaved" +msgstr "שינויים שלא נשמרו" + +#: src/app/main/ui/workspace/right_header.cljs:239 +msgid "workspace.header.viewer" +msgstr "מצב תצוגה (%s)" + +#: src/app/main/ui/viewer/header.cljs:79, src/app/main/ui/workspace/right_header.cljs:103 +msgid "workspace.header.zoom" +msgstr "תקריב" + +#: src/app/main/ui/viewer/header.cljs:109 +msgid "workspace.header.zoom-fill" +msgstr "מילוי - שינוי גודל כדי למלא" + +#: src/app/main/ui/viewer/header.cljs:102 +msgid "workspace.header.zoom-fit" +msgstr "התאמה - שינוי גודל כדי להתאים" + +#: src/app/main/ui/workspace/right_header.cljs:123 +msgid "workspace.header.zoom-fit-all" +msgstr "כיוון תקריב כדי להציג הכול" + +#: src/app/main/ui/viewer/header.cljs:116 +msgid "workspace.header.zoom-full-screen" +msgstr "מסך מלא" + +#: src/app/main/ui/workspace/right_header.cljs:130 +msgid "workspace.header.zoom-selected" +msgstr "התמקדות על הנבחר" + +#: src/app/main/ui/workspace/sidebar/options/menus/grid_cell.cljs:273, src/app/main/ui/workspace/sidebar/options/menus/grid_cell.cljs:275, src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:612 +msgid "workspace.layout_grid.editor.options.edit-grid" +msgstr "עריכת רשת" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:1280 +msgid "workspace.layout_grid.editor.options.exit" +msgstr "יציאה מהמערכת" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:483 +msgid "workspace.layout_grid.editor.padding.expand" +msgstr "הצגת אפשרויות ריפוד עם 4 צדדים" + +#: src/app/main/ui/workspace/viewport/grid_layout_editor.cljs:59 +msgid "workspace.layout_grid.editor.title" +msgstr "רשת עריכה" + +#: src/app/main/ui/workspace/viewport/grid_layout_editor.cljs:65 +msgid "workspace.layout_grid.editor.top-bar.done" +msgstr "בוצע" + +#: src/app/main/ui/workspace/viewport/grid_layout_editor.cljs:62 +msgid "workspace.layout_grid.editor.top-bar.locate" +msgstr "איתור" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:1306 msgid "workspace.layout_grid.editor.top-bar.locate.tooltip" msgstr "איתור פריסת הרשת" #: src/app/main/ui/workspace/libraries.cljs +#, unused +msgid "workspace.libraries.add" +msgstr "הוספה" + +#: src/app/main/ui/workspace/libraries.cljs:80, src/app/main/ui/workspace/libraries.cljs:99 +msgid "workspace.libraries.colors" +msgstr "%s צבעים" + +#: src/app/main/ui/workspace/color_palette.cljs:126 +msgid "workspace.libraries.colors.empty-palette" +msgstr "אין עדיין סגנונות צבע בספרייה שלך" + +#: src/app/main/ui/workspace/text_palette.cljs:150 +msgid "workspace.libraries.colors.empty-typography-palette" +msgstr "עדיין אין סוגי טיפוגרפיה בספרייה שלך" + +#: src/app/main/ui/workspace/color_palette_ctx_menu.cljs:60, src/app/main/ui/workspace/colorpicker/libraries.cljs:73, src/app/main/ui/workspace/text_palette_ctx_menu.cljs:50 +msgid "workspace.libraries.colors.file-library" +msgstr "ספריית קבצים" + +#: src/app/main/ui/workspace/colorpicker.cljs +#, unused +msgid "workspace.libraries.colors.hsv" +msgstr "HSV" + +#: src/app/main/ui/workspace/color_palette_ctx_menu.cljs:82, src/app/main/ui/workspace/colorpicker/libraries.cljs:72 +msgid "workspace.libraries.colors.recent-colors" +msgstr "צבעים אחרונים" + +#: src/app/main/ui/workspace/colorpicker.cljs +#, unused +msgid "workspace.libraries.colors.rgb-complementary" +msgstr "RGB משלים" + +#: src/app/main/ui/workspace/colorpicker.cljs +#, unused +msgid "workspace.libraries.colors.rgba" +msgstr "RGBA" + +#: src/app/main/ui/workspace/colorpicker.cljs:372 +msgid "workspace.libraries.colors.save-color" +msgstr "שמירת סגנון צבע" + +#: src/app/main/ui/workspace/libraries.cljs:74, src/app/main/ui/workspace/libraries.cljs:91 +msgid "workspace.libraries.components" +msgstr "%s רכיבים" + +#: src/app/main/ui/workspace/libraries.cljs:215 +msgid "workspace.libraries.file-library" +msgstr "ספריית קבצים" + +#: src/app/main/ui/workspace/libraries.cljs:77, src/app/main/ui/workspace/libraries.cljs:95 +msgid "workspace.libraries.graphics" +msgstr "%s גרפיקה" + +#: src/app/main/ui/workspace/libraries.cljs:209 +msgid "workspace.libraries.in-this-file" +msgstr "ספריות בקובץ הזה" + +#: src/app/main/ui/workspace/libraries.cljs:526, src/app/main/ui/workspace/libraries.cljs:531 +msgid "workspace.libraries.libraries" +msgstr "ספריות" + +#: src/app/main/ui/workspace/libraries.cljs +#, unused +msgid "workspace.libraries.library" +msgstr "ספרייה" + +#: src/app/main/ui/workspace/libraries.cljs:382 +msgid "workspace.libraries.library-updates" +msgstr "עדכוני ספרייה" + +#: src/app/main/ui/workspace/libraries.cljs:290 +msgid "workspace.libraries.loading" +msgstr "בטעינה…" + +#: src/app/main/ui/workspace/libraries.cljs:380 +msgid "workspace.libraries.no-libraries-need-sync" +msgstr "אין ספריות משותפות שדורשות עדכון" + +#: src/app/main/ui/workspace/libraries.cljs:299 +msgid "workspace.libraries.no-matches-for" +msgstr "לא נמצאו תוצאות לחיפוש אחר „%s”" + +#: src/app/main/ui/workspace/libraries.cljs:296 +msgid "workspace.libraries.no-shared-libraries-available" +msgstr "אין ספריות משותפות זמינות" + +#: src/app/main/ui/workspace/libraries.cljs:260 +msgid "workspace.libraries.search-shared-libraries" +msgstr "חיפוש בספריות המשותפות" + +#: src/app/main/ui/workspace/libraries.cljs:256 +msgid "workspace.libraries.shared-libraries" +msgstr "ספריות משותפות" + +#: src/app/main/ui/workspace/libraries.cljs:282 msgid "workspace.libraries.shared-library-btn" msgstr "חיבור ספרייה" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:308 +msgid "workspace.libraries.text.multiple-typography" +msgstr "מגוון טיפוגרפיות" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:311 +msgid "workspace.libraries.text.multiple-typography-tooltip" +msgstr "ניתוק כל הטיפוגרפיות" + +#: src/app/main/ui/workspace/libraries.cljs:83, src/app/main/ui/workspace/libraries.cljs:103 +msgid "workspace.libraries.typography" +msgstr "%s טיפוגרפיות" + +#: src/app/main/ui/workspace/libraries.cljs:249 +msgid "workspace.libraries.unlink-library-btn" +msgstr "ניתוק ספרייה" + +#: src/app/main/ui/workspace/libraries.cljs:402 +msgid "workspace.libraries.update" +msgstr "עדכון" + +#: src/app/main/ui/workspace/libraries.cljs:477 +msgid "workspace.libraries.update.see-all-changes" +msgstr "הצגת כל השינויים" + +#: src/app/main/ui/workspace/libraries.cljs:536 +msgid "workspace.libraries.updates" +msgstr "עדכונים" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:737 +msgid "workspace.options.add-interaction" +msgstr "יש ללחוץ על הכפתור + כדי להוסיף אינטראקציות." + +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:86, src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:102 +msgid "workspace.options.blur-options.title" +msgstr "טשטוש" + +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:85 +msgid "workspace.options.blur-options.title.group" +msgstr "טשטוש קבוצה" + +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:84 +msgid "workspace.options.blur-options.title.multiple" +msgstr "טשטוש בחירה" + +#: src/app/main/ui/workspace/sidebar/options/page.cljs:32, src/app/main/ui/workspace/sidebar/options/page.cljs:39 +msgid "workspace.options.canvas-background" +msgstr "רקע משטח ציור" + +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:548 +msgid "workspace.options.clip-content" +msgstr "חיתוך התוכן" + +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:600, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:605 +msgid "workspace.options.component" +msgstr "רכיב" + +#: src/app/main/ui/viewer/inspect/annotation.cljs:19, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:181 +msgid "workspace.options.component.annotation" +msgstr "הסבר" + +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:610 +msgid "workspace.options.component.copy" +msgstr "העתקה" + +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:173 +msgid "workspace.options.component.create-annotation" +msgstr "יצירת הסבר" + +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:172 +msgid "workspace.options.component.edit-annotation" +msgstr "עריכת הסבר" + +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:609 +msgid "workspace.options.component.main" +msgstr "ראשי" + +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:427 +msgid "workspace.options.component.swap" +msgstr "החלפת רכיב" + +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:471 +msgid "workspace.options.component.swap.empty" +msgstr "עדיין אין נכסים בתיקייה הזאת" + +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:163 +msgid "workspace.options.constraints" +msgstr "הגבלות" + +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:150 +msgid "workspace.options.constraints.bottom" +msgstr "תחתית" + +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:141, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:152 +msgid "workspace.options.constraints.center" +msgstr "מרכז" + +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:229 +msgid "workspace.options.constraints.fix-when-scrolling" +msgstr "תיקון בעת גלילה" + +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:138 +msgid "workspace.options.constraints.left" +msgstr "שמאל" + +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:140 +msgid "workspace.options.constraints.leftright" +msgstr "שמאל וימין" + +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:139 +msgid "workspace.options.constraints.right" +msgstr "ימין" + +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:142, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:153 +msgid "workspace.options.constraints.scale" +msgstr "שינוי גודל" + +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:149 +msgid "workspace.options.constraints.top" +msgstr "עליון" + +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:151 +msgid "workspace.options.constraints.topbottom" +msgstr "עליון ותחתון" + +#: src/app/main/ui/workspace/sidebar/options.cljs:112 +msgid "workspace.options.design" +msgstr "עיצוב" + +#: src/app/main/ui/viewer/inspect/exports.cljs:139 +msgid "workspace.options.export" +msgstr "ייצוא" + +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs +#, unused +msgid "workspace.options.export-multiple" +msgstr "ייצוא הבחירה" + +#: src/app/main/ui/viewer/inspect/exports.cljs:195, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:237 +msgid "workspace.options.export-object" +msgid_plural "workspace.options.export-object" +msgstr[0] "ייצוא רכיב" +msgstr[1] "ייצוא %s רכיבים" +msgstr[2] "ייצוא %s רכיבים" +msgstr[3] "ייצוא %s רכיבים" + +#: src/app/main/ui/viewer/inspect/exports.cljs:178, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:219 +msgid "workspace.options.export.suffix" +msgstr "סיומת" + +#: src/app/main/ui/export.cljs:240 +msgid "workspace.options.exporting-complete" +msgstr "הייצוא הושלם" + +#: src/app/main/ui/export.cljs:172, src/app/main/ui/export.cljs:241, src/app/main/ui/viewer/inspect/exports.cljs:194, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:236 +msgid "workspace.options.exporting-object" +msgstr "מתבצע ייצוא…" + +#: src/app/main/ui/export.cljs:239 +msgid "workspace.options.exporting-object-error" +msgstr "הייצוא נכשל" + +#: src/app/main/ui/export.cljs:242 +msgid "workspace.options.exporting-object-slow" +msgstr "הייצוא אטי בהגזמה" + +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:49, src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:174 +msgid "workspace.options.fill" +msgstr "מילוי" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:178 +msgid "workspace.options.flows.add-flow-start" +msgstr "הוספת תחילת זרימה" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:174 +msgid "workspace.options.flows.flow" +msgstr "זרימה" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#, unused +msgid "workspace.options.flows.flow-start" +msgstr "התחלת זרימה" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:161 +msgid "workspace.options.flows.flow-starts" +msgstr "הזרימה מתחילה" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:29 +msgid "workspace.options.grid.auto" +msgstr "אוטומטי" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:157 +msgid "workspace.options.grid.column" +msgstr "עמודות" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused +msgid "workspace.options.grid.grid-title" +msgstr "טבלה" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:196, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:237 +msgid "workspace.options.grid.params.color" +msgstr "צבע" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused +msgid "workspace.options.grid.params.columns" +msgstr "עמודות" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:259 +msgid "workspace.options.grid.params.gutter" +msgstr "מרזב" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:246 +msgid "workspace.options.grid.params.height" +msgstr "גובה" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:270 +msgid "workspace.options.grid.params.margin" +msgstr "שול" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused +msgid "workspace.options.grid.params.rows" +msgstr "שורות" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:216, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:290 +msgid "workspace.options.grid.params.set-default" +msgstr "הגדרה כבררת מחדל" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused +msgid "workspace.options.grid.params.size" +msgstr "גודל" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused +msgid "workspace.options.grid.params.type" +msgstr "סוג" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:231 +msgid "workspace.options.grid.params.type.bottom" +msgstr "תחתון" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:229 +msgid "workspace.options.grid.params.type.center" +msgstr "מרכז" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:228 +msgid "workspace.options.grid.params.type.left" +msgstr "שמאל" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:232 +msgid "workspace.options.grid.params.type.right" +msgstr "ימין" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:225 +msgid "workspace.options.grid.params.type.stretch" +msgstr "מתיחה" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:227 +msgid "workspace.options.grid.params.type.top" +msgstr "עליון" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:211, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:288 +msgid "workspace.options.grid.params.use-default" +msgstr "להשתמש בבררת המחדל" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:247 +msgid "workspace.options.grid.params.width" +msgstr "רוחב" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:158 +msgid "workspace.options.grid.row" +msgstr "שורות" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:156 +msgid "workspace.options.grid.square" +msgstr "ריבוע" + +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:48 +msgid "workspace.options.group-fill" +msgstr "מילוי קבוצה" + +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:42 +msgid "workspace.options.group-stroke" +msgstr "מתאר קבוצה" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:310 +msgid "workspace.options.guides.title" +msgstr "קווים מנחים" + +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:406 +msgid "workspace.options.height" +msgstr "גובה" + +#: src/app/main/ui/workspace/sidebar/options.cljs:161 +msgid "workspace.options.inspect" +msgstr "חקירה" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:468 +msgid "workspace.options.interaction-action" +msgstr "פעולה" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:41, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:367 +msgid "workspace.options.interaction-after-delay" +msgstr "לאחר השהיה" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:614 +msgid "workspace.options.interaction-animation" +msgstr "הנפשה" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:406 +msgid "workspace.options.interaction-animation-dissolve" +msgstr "התמוססות" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:405 +msgid "workspace.options.interaction-animation-none" +msgstr "ללא" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:412 +msgid "workspace.options.interaction-animation-push" +msgstr "דחיפה" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:407 +msgid "workspace.options.interaction-animation-slide" +msgstr "גלישה" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:391 +msgid "workspace.options.interaction-auto" +msgstr "אוטו" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:604 +msgid "workspace.options.interaction-background" +msgstr "הוספת שכבת רקע" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:590 +msgid "workspace.options.interaction-close-outside" +msgstr "תיסגר בלחיצה מחוצה לה" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:372 +msgid "workspace.options.interaction-close-overlay" +msgstr "סגירת שכבת על" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:56 +msgid "workspace.options.interaction-close-overlay-dest" +msgstr "סגירת שכבת על: %s" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:456 +msgid "workspace.options.interaction-delay" +msgstr "השהיה" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:478 +msgid "workspace.options.interaction-destination" +msgstr "יעד" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:661 +msgid "workspace.options.interaction-duration" +msgstr "משך" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:674 +msgid "workspace.options.interaction-easing" +msgstr "החלקה" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:416 +msgid "workspace.options.interaction-easing-ease" +msgstr "קלה" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:417 +msgid "workspace.options.interaction-easing-ease-in" +msgstr "החלקה פנימה" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:419 +msgid "workspace.options.interaction-easing-ease-in-out" +msgstr "החלקה פנימה החוצה" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:418 +msgid "workspace.options.interaction-easing-ease-out" +msgstr "החלקה החוצה" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:415 +msgid "workspace.options.interaction-easing-linear" +msgstr "קווי" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#, unused +msgid "workspace.options.interaction-in" +msgstr "פנימה" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:39, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:364 +msgid "workspace.options.interaction-mouse-enter" +msgstr "כניסת עכבר" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:40, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:365 +msgid "workspace.options.interaction-mouse-leave" +msgstr "יציאת עכבר" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:458, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:459, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:464, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:663, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:665, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:669 +msgid "workspace.options.interaction-ms" +msgstr "מילישניות" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:369 +msgid "workspace.options.interaction-navigate-to" +msgstr "ניווט אל" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:50 +msgid "workspace.options.interaction-navigate-to-dest" +msgstr "ניווט אל: %s" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:51, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:53, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:55, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:380 +msgid "workspace.options.interaction-none" +msgstr "(לא הוגדר)" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:691 +msgid "workspace.options.interaction-offset-effect" +msgstr "אפקט הזחה" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:35, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:360 +msgid "workspace.options.interaction-on-click" +msgstr "בלחיצה" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:370 +msgid "workspace.options.interaction-open-overlay" +msgstr "פתיחת שכבת על" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:52 +msgid "workspace.options.interaction-open-overlay-dest" +msgstr "פתיחת שכבת על: %s" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:59, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:374 +msgid "workspace.options.interaction-open-url" +msgstr "פתיחת כתובת" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#, unused +msgid "workspace.options.interaction-out" +msgstr "החוצה" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:403 +msgid "workspace.options.interaction-pos-bottom-center" +msgstr "בתחתית במרכז" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:401 +msgid "workspace.options.interaction-pos-bottom-left" +msgstr "בתחתית משמאל" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:402 +msgid "workspace.options.interaction-pos-bottom-right" +msgstr "בתחתית מימין" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:397 +msgid "workspace.options.interaction-pos-center" +msgstr "מרכז" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:396 +msgid "workspace.options.interaction-pos-manual" +msgstr "ידני" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:400 +msgid "workspace.options.interaction-pos-top-center" +msgstr "בראש באמצע" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:398 +msgid "workspace.options.interaction-pos-top-left" +msgstr "בראש משמאל" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:399 +msgid "workspace.options.interaction-pos-top-right" +msgstr "בראש מימין" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:524 +msgid "workspace.options.interaction-position" +msgstr "מיקום" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:494 +msgid "workspace.options.interaction-preserve-scroll" +msgstr "שימור מיקום גלילה" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:58, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:373 +msgid "workspace.options.interaction-prev-screen" +msgstr "המסך הקודם" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:515 +msgid "workspace.options.interaction-relative-to" +msgstr "יחסי אל" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:57, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:379, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:393, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:394 +msgid "workspace.options.interaction-self" +msgstr "עצמי" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:371 +msgid "workspace.options.interaction-toggle-overlay" +msgstr "החלפת מצב שכבת על" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:54 +msgid "workspace.options.interaction-toggle-overlay-dest" +msgstr "החלפת מצב שכבת על: %s" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:445 +msgid "workspace.options.interaction-trigger" +msgstr "הקפצה" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:503 +msgid "workspace.options.interaction-url" +msgstr "כתובת" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:37, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:362 +msgid "workspace.options.interaction-while-hovering" +msgstr "בזמן ריחוף" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:38, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:363 +msgid "workspace.options.interaction-while-pressing" +msgstr "בזמן לחיצה" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:724 +msgid "workspace.options.interactions" +msgstr "אינטראקציות" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:137 +msgid "workspace.options.layer-options.blend-mode.color" +msgstr "צבע" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:126 +msgid "workspace.options.layer-options.blend-mode.color-burn" +msgstr "צריבת צבע" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:129 +msgid "workspace.options.layer-options.blend-mode.color-dodge" +msgstr "בריחת צבע" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:124 +msgid "workspace.options.layer-options.blend-mode.darken" +msgstr "החשכה" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:133 +msgid "workspace.options.layer-options.blend-mode.difference" +msgstr "הבדל" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:134 +msgid "workspace.options.layer-options.blend-mode.exclusion" +msgstr "הדרה" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:132 +msgid "workspace.options.layer-options.blend-mode.hard-light" +msgstr "אור קשיח" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:135 +msgid "workspace.options.layer-options.blend-mode.hue" +msgstr "גוון" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:127 +msgid "workspace.options.layer-options.blend-mode.lighten" +msgstr "הבהרה" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:138 +msgid "workspace.options.layer-options.blend-mode.luminosity" +msgstr "תאורה" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:125 +msgid "workspace.options.layer-options.blend-mode.multiply" +msgstr "הכפלה" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:123 +msgid "workspace.options.layer-options.blend-mode.normal" +msgstr "רגיל" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:130 +msgid "workspace.options.layer-options.blend-mode.overlay" +msgstr "שכבת על" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:136 +msgid "workspace.options.layer-options.blend-mode.saturation" +msgstr "רוויה" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:128 +msgid "workspace.options.layer-options.blend-mode.screen" +msgstr "מסך" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:131 +msgid "workspace.options.layer-options.blend-mode.soft-light" +msgstr "אור רך" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#, unused +msgid "workspace.options.layer-options.title" +msgstr "שכבה" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#, unused +msgid "workspace.options.layer-options.title.group" +msgstr "קיבוץ שכבות" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#, unused +msgid "workspace.options.layer-options.title.multiple" +msgstr "שכבות נבחרות" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused +msgid "workspace.options.layout-item.advanced-ops" +msgstr "אפשרויות מתקדמות" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:564 +msgid "workspace.options.layout-item.layout-item-max-h" +msgstr "גובה מר.‏" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:531 +msgid "workspace.options.layout-item.layout-item-max-w" +msgstr "רוחב מר.‏" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:548 +msgid "workspace.options.layout-item.layout-item-min-h" +msgstr "גובה מז.‏" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:515 +msgid "workspace.options.layout-item.layout-item-min-w" +msgstr "רוחב מז.‏" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused +msgid "workspace.options.layout-item.title.layout-item-max-h" +msgstr "גובה מרבי" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused +msgid "workspace.options.layout-item.title.layout-item-max-w" +msgstr "רוחב מרבי" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused +msgid "workspace.options.layout-item.title.layout-item-min-h" +msgstr "גובה מזערי" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused +msgid "workspace.options.layout-item.title.layout-item-min-w" +msgstr "רוחב מזערי" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused +msgid "workspace.options.layout.bottom" +msgstr "תחתית" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused +msgid "workspace.options.layout.direction.column" +msgstr "עמודה" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused +msgid "workspace.options.layout.direction.column-reverse" +msgstr "היפוך עמודה" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused +msgid "workspace.options.layout.direction.row" +msgstr "שורה" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused +msgid "workspace.options.layout.direction.row-reverse" +msgstr "היפוך שורה" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused +msgid "workspace.options.layout.gap" +msgstr "מרווח" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused +msgid "workspace.options.layout.left" +msgstr "שמאל" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused +msgid "workspace.options.layout.margin" +msgstr "שול" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused +msgid "workspace.options.layout.margin-all" +msgstr "כל הצדדים" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused +msgid "workspace.options.layout.margin-simple" +msgstr "שול פשוט" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused +msgid "workspace.options.layout.packed" +msgstr "אסוף" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused +msgid "workspace.options.layout.padding" +msgstr "ריפוד" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused +msgid "workspace.options.layout.padding-all" +msgstr "כל הצדדים" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused +msgid "workspace.options.layout.padding-simple" +msgstr "ריפוד פשוט" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused +msgid "workspace.options.layout.right" +msgstr "ימין" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused +msgid "workspace.options.layout.space-around" +msgstr "רווח מסביב" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused +msgid "workspace.options.layout.space-between" +msgstr "רווח בין לבין" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused +msgid "workspace.options.layout.top" +msgstr "עליון" + +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:146 +msgid "workspace.options.more-colors" +msgstr "צבעים נוספים" + +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:123 +msgid "workspace.options.more-lib-colors" +msgstr "צבעי ספרייה נוספים" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:161 +msgid "workspace.options.opacity" +msgstr "אטימות" + +#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#, unused +msgid "workspace.options.position" +msgstr "מיקום" + +#: src/app/main/ui/workspace/sidebar/options.cljs:157 +msgid "workspace.options.prototype" +msgstr "אבטיפוס" + +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:469, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:481 +msgid "workspace.options.radius" +msgstr "רדיוס" + +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:513 +msgid "workspace.options.radius-bottom-left" +msgstr "בתחתית משמאל" + +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:522 +msgid "workspace.options.radius-bottom-right" +msgstr "בתחתית מימין" + +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:495 +msgid "workspace.options.radius-top-left" +msgstr "בראש משמאל" + +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:504 +msgid "workspace.options.radius-top-right" +msgstr "בראש מימין" + +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:532 +msgid "workspace.options.radius.all-corners" +msgstr "כל הפינות" + +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:533 +msgid "workspace.options.radius.single-corners" +msgstr "פינות עצמאיות" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:183 +msgid "workspace.options.recent-fonts" +msgstr "אחרונים" + +#: src/app/main/ui/export.cljs:284 +msgid "workspace.options.retry" +msgstr "לנסות שוב" + +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:451 +msgid "workspace.options.rotation" +msgstr "סיבוב" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:180 +msgid "workspace.options.search-font" +msgstr "חיפוש גופן" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:741 +msgid "workspace.options.select-a-shape" +msgstr "נא לבחור צורה, לוח או קבוצה כדי לגרור חיבור ללוח אחר." + +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:105 +msgid "workspace.options.selection-color" +msgstr "צבעים נבחרים" + +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:47 +msgid "workspace.options.selection-fill" +msgstr "מילוי בחירה" + +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:41 +msgid "workspace.options.selection-stroke" +msgstr "מתאר בחירה" + +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:40, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:198, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:200 +msgid "workspace.options.shadow-options.blur" +msgstr "טשטוש" + +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:238 +msgid "workspace.options.shadow-options.color" +msgstr "צבע הצללה" + +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:144 +msgid "workspace.options.shadow-options.drop-shadow" +msgstr "הטלת צל" + +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:145 +msgid "workspace.options.shadow-options.inner-shadow" +msgstr "צל פנימי" + +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:38, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:186 +msgid "workspace.options.shadow-options.offsetx" +msgstr "X" + +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:39, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:224 +msgid "workspace.options.shadow-options.offsety" +msgstr "Y" + +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:41, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:211, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:213 +msgid "workspace.options.shadow-options.spread" +msgstr "פיזור" + +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:296 +msgid "workspace.options.shadow-options.title" +msgstr "צל" + +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:295 +msgid "workspace.options.shadow-options.title.group" +msgstr "צל של קבוצה" + +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:294 +msgid "workspace.options.shadow-options.title.multiple" +msgstr "צללים של בחירה" + +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:193 +msgid "workspace.options.show-fill-on-export" +msgstr "הצגה בייצואים" + +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:562 +msgid "workspace.options.show-in-viewer" +msgstr "להציג במצב הצגה" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:162 +msgid "workspace.options.size" +msgstr "גודל" + +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:355 +msgid "workspace.options.size-presets" +msgstr "תבניות גודל" + +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:43 +msgid "workspace.options.stroke" +msgstr "מתאר" + +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#, unused +msgid "workspace.options.stroke-cap.circle-marker" +msgstr "סמן עגול" + +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:129 +msgid "workspace.options.stroke-cap.circle-marker-short" +msgstr "עיגול" + +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#, unused +msgid "workspace.options.stroke-cap.diamond-marker" +msgstr "סמן יהלום" + +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:130 +msgid "workspace.options.stroke-cap.diamond-marker-short" +msgstr "יהלום" + +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#, unused +msgid "workspace.options.stroke-cap.line-arrow" +msgstr "חץ קו" + +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:126 +msgid "workspace.options.stroke-cap.line-arrow-short" +msgstr "חץ" + +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:124 +msgid "workspace.options.stroke-cap.none" +msgstr "ללא" + +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:132 +msgid "workspace.options.stroke-cap.round" +msgstr "עגול" + +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:133 +msgid "workspace.options.stroke-cap.square" +msgstr "ריבוע" + +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#, unused +msgid "workspace.options.stroke-cap.square-marker" +msgstr "סמן ריבוע" + +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:128 +msgid "workspace.options.stroke-cap.square-marker-short" +msgstr "מרובע" + +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#, unused +msgid "workspace.options.stroke-cap.triangle-arrow" +msgstr "חץ משולש" + +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:127 +msgid "workspace.options.stroke-cap.triangle-arrow-short" +msgstr "משולש" + +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:192 +msgid "workspace.options.stroke-color" +msgstr "צבע מתאר" + +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:165 +msgid "workspace.options.stroke-width" +msgstr "עובי מתאר" + +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:87 +msgid "workspace.options.stroke.center" +msgstr "מרכז" + +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:105 +msgid "workspace.options.stroke.dashed" +msgstr "מקווקוו" + +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:104 +msgid "workspace.options.stroke.dotted" +msgstr "מנוקד" + +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:88 +msgid "workspace.options.stroke.inner" +msgstr "בפנים" + +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:106 +msgid "workspace.options.stroke.mixed" +msgstr "מעורב" + +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:89 +msgid "workspace.options.stroke.outer" +msgstr "בחוץ" + +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:103 +msgid "workspace.options.stroke.solid" +msgstr "אחיד" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:115 +msgid "workspace.options.text-options.align-bottom" +msgstr "יישור לתחתית" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:111 +msgid "workspace.options.text-options.align-middle" +msgstr "יישור לאמצע" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:107 +msgid "workspace.options.text-options.align-top" +msgstr "יישור לראש" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:82 +msgid "workspace.options.text-options.direction-ltr" +msgstr "משמאל לימין" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:87 +msgid "workspace.options.text-options.direction-rtl" +msgstr "מימין לשמאל" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:149 +msgid "workspace.options.text-options.grow-auto-height" +msgstr "גובה אוטומטי" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:145 +msgid "workspace.options.text-options.grow-auto-width" +msgstr "רוחב אוטומטי" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:141 +msgid "workspace.options.text-options.grow-fixed" +msgstr "קבוע" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:381 +msgid "workspace.options.text-options.letter-spacing" +msgstr "ריווח תווים" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:364 +msgid "workspace.options.text-options.line-height" +msgstr "גובה שורה" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused +msgid "workspace.options.text-options.lowercase" +msgstr "אותיות קטנות" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused +msgid "workspace.options.text-options.none" +msgstr "ללא" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:176 +msgid "workspace.options.text-options.strikethrough" +msgstr "קו חוצה (%s)" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:51 +msgid "workspace.options.text-options.text-align-center" +msgstr "יישור למרכז (%s)" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:59 +msgid "workspace.options.text-options.text-align-justify" +msgstr "יישור לשני הצדדים (%s)" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:47 +msgid "workspace.options.text-options.text-align-left" +msgstr "יישור שמאלה (%s)" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:55 +msgid "workspace.options.text-options.text-align-right" +msgstr "יישור ימינה (%s)" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:189 +msgid "workspace.options.text-options.title" +msgstr "טקסט" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:188 +msgid "workspace.options.text-options.title-group" +msgstr "קיבוץ טקסט" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:187 +msgid "workspace.options.text-options.title-selection" +msgstr "טקסט בחירה" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused +msgid "workspace.options.text-options.titlecase" +msgstr "רישיות כותרת" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:171 +msgid "workspace.options.text-options.underline" +msgstr "קו תחתי (%s)" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused +msgid "workspace.options.text-options.uppercase" +msgstr "אותיות גדולות" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:745 +msgid "workspace.options.use-play-button" +msgstr "ניתן להשתמש בכפתור הנגינה שבכותרת כדי להריץ את תצוגת האבטיפוס." + +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:395 +msgid "workspace.options.width" +msgstr "עובי" + +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:427 +msgid "workspace.options.x" +msgstr "ציר X" + +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:438 +msgid "workspace.options.y" +msgstr "ציר Y" + +#: src/app/main/ui/workspace/viewport/path_actions.cljs:167 +msgid "workspace.path.actions.add-node" +msgstr "הוספת מפרק (%s)" + +#: src/app/main/ui/workspace/viewport/path_actions.cljs:174 +msgid "workspace.path.actions.delete-node" +msgstr "מחיקת מפרק (%s)" + +#: src/app/main/ui/workspace/viewport/path_actions.cljs:152 +msgid "workspace.path.actions.draw-nodes" +msgstr "ציור מפרקים (%s)" + +#: src/app/main/ui/workspace/viewport/path_actions.cljs:189 +msgid "workspace.path.actions.join-nodes" +msgstr "צירוף מפרקים (%s)" + +#: src/app/main/ui/workspace/viewport/path_actions.cljs:204 +msgid "workspace.path.actions.make-corner" +msgstr "לפינה (%s)" + +#: src/app/main/ui/workspace/viewport/path_actions.cljs:211 +msgid "workspace.path.actions.make-curve" +msgstr "לעיקול (%s)" + +#: src/app/main/ui/workspace/viewport/path_actions.cljs:182 +msgid "workspace.path.actions.merge-nodes" +msgstr "מיזוג מפרקים (%s)" + +#: src/app/main/ui/workspace/viewport/path_actions.cljs:159 +msgid "workspace.path.actions.move-nodes" +msgstr "העברת מפרקים (%s)" + +#: src/app/main/ui/workspace/viewport/path_actions.cljs:196 +msgid "workspace.path.actions.separate-nodes" +msgstr "הפרדת מפרקים (%s)" + +#: src/app/main/ui/workspace/viewport/path_actions.cljs:218 +msgid "workspace.path.actions.snap-nodes" +msgstr "הצמדת מפרקים (%s)" + +#: src/app/main/ui/workspace/context_menu.cljs:441 +msgid "workspace.shape.menu.add-flex" +msgstr "הוספת פריסת flex" + +#: src/app/main/ui/workspace/context_menu.cljs:445 +msgid "workspace.shape.menu.add-grid" +msgstr "הוספת פריסת רשת" + +#: src/app/main/ui/workspace/context_menu.cljs:193 +msgid "workspace.shape.menu.back" +msgstr "הרחקה" + +#: src/app/main/ui/workspace/context_menu.cljs:190 +msgid "workspace.shape.menu.backward" +msgstr "הרחקה לאחור" + +#: src/app/main/ui/workspace/context_menu.cljs:139 +msgid "workspace.shape.menu.copy" +msgstr "העתקה" + +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:427 +msgid "workspace.shape.menu.create-annotation" +msgstr "יצירת הסבר" + +#: src/app/main/ui/workspace/context_menu.cljs:275 +msgid "workspace.shape.menu.create-artboard-from-selection" +msgstr "בחירה ללוח" + +#: src/app/main/ui/workspace/context_menu.cljs:465 +msgid "workspace.shape.menu.create-component" +msgstr "יצירת רכיב" + +#: src/app/main/ui/workspace/context_menu.cljs:469 +msgid "workspace.shape.menu.create-multiple-components" +msgstr "יצירת מגוון רכיבים" + +#: src/app/main/ui/workspace/context_menu.cljs:142 +msgid "workspace.shape.menu.cut" +msgstr "גזירה" + +#: src/app/main/ui/workspace/context_menu.cljs:486 +msgid "workspace.shape.menu.delete" +msgstr "מחיקה" + +#: src/app/main/ui/workspace/context_menu.cljs:391 +msgid "workspace.shape.menu.delete-flow-start" +msgstr "מחיקת התחלת זרימה" + +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:432 +msgid "workspace.shape.menu.detach-instance" +msgstr "ניתוק מופע" + +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:431 +msgid "workspace.shape.menu.detach-instances-in-bulk" +msgstr "הפרדת מופעים" + +#: src/app/main/ui/workspace/context_menu.cljs:335, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:75 +msgid "workspace.shape.menu.difference" +msgstr "הבדל" + +#: src/app/main/ui/workspace/context_menu.cljs:148 +msgid "workspace.shape.menu.duplicate" +msgstr "שכפול" + +#: src/app/main/ui/workspace/context_menu.cljs:321 +msgid "workspace.shape.menu.edit" +msgstr "עריכה" + +#: src/app/main/ui/workspace/context_menu.cljs:341 +msgid "workspace.shape.menu.exclude" +msgstr "החרגה" + +#: src/app/main/ui/workspace/context_menu.cljs:348, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:89 +msgid "workspace.shape.menu.flatten" +msgstr "שיטוח" + +#: src/app/main/ui/workspace/context_menu.cljs:208 +msgid "workspace.shape.menu.flip-horizontal" +msgstr "היפוך אופקי" + +#: src/app/main/ui/workspace/context_menu.cljs:204 +msgid "workspace.shape.menu.flip-vertical" +msgstr "היפוך אנכי" + +#: src/app/main/ui/workspace/context_menu.cljs:394 +msgid "workspace.shape.menu.flow-start" +msgstr "התחלת זרימה" + +#: src/app/main/ui/workspace/context_menu.cljs:184 +msgid "workspace.shape.menu.forward" +msgstr "קידום" + +#: src/app/main/ui/workspace/context_menu.cljs:187 +msgid "workspace.shape.menu.front" +msgstr "קידום לחזית" + +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#, unused +msgid "workspace.shape.menu.go-main" +msgstr "מעבר לקובץ הרכיב הראשי" + +#: src/app/main/ui/workspace/context_menu.cljs:261 +msgid "workspace.shape.menu.group" +msgstr "קבוצה" + +#: src/app/main/ui/workspace/context_menu.cljs:363, src/app/main/ui/workspace/sidebar/layer_item.cljs:145 +msgid "workspace.shape.menu.hide" +msgstr "הסתרה" + +#: src/app/main/ui/workspace/context_menu.cljs:548, src/app/main/ui/workspace/main_menu.cljs:408 +msgid "workspace.shape.menu.hide-ui" +msgstr "הצגת/הסתרת מנשק משתמש" + +#: src/app/main/ui/workspace/context_menu.cljs:338 +msgid "workspace.shape.menu.intersection" +msgstr "הצלבה" + +#: src/app/main/ui/workspace/context_menu.cljs:371, src/app/main/ui/workspace/sidebar/layer_item.cljs:153 +msgid "workspace.shape.menu.lock" +msgstr "נעילה" + +#: src/app/main/ui/workspace/context_menu.cljs:266 +msgid "workspace.shape.menu.mask" +msgstr "מסכה" + +#: src/app/main/ui/workspace/context_menu.cljs:145, src/app/main/ui/workspace/context_menu.cljs:545 +msgid "workspace.shape.menu.paste" +msgstr "הדבקה" + +#: src/app/main/ui/workspace/context_menu.cljs:331 +msgid "workspace.shape.menu.path" +msgstr "נתיב" + +#: src/app/main/ui/workspace/context_menu.cljs:432 +msgid "workspace.shape.menu.remove-flex" +msgstr "הסרת פריסת flex" + +#: src/app/main/ui/workspace/context_menu.cljs:435 msgid "workspace.shape.menu.remove-grid" msgstr "הסרת פריסת רשת" + +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:436 +msgid "workspace.shape.menu.reset-overrides" +msgstr "איפוס מעקפים" + +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:439 +msgid "workspace.shape.menu.restore-main" +msgstr "שחזור הרכיב הראשי" + +#: src/app/main/ui/workspace/context_menu.cljs:174 +msgid "workspace.shape.menu.select-layer" +msgstr "בחירת שכבה" + +#: src/app/main/ui/workspace/context_menu.cljs:360, src/app/main/ui/workspace/sidebar/layer_item.cljs:144 +msgid "workspace.shape.menu.show" +msgstr "הצגה" + +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:424 +msgid "workspace.shape.menu.show-in-assets" +msgstr "הצגה בלוח משאבים" + +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:442, src/app/main/ui/workspace/sidebar/assets/components.cljs:586 +msgid "workspace.shape.menu.show-main" +msgstr "הצגת הרכיב הראשי" + +#: src/app/main/ui/workspace/context_menu.cljs:221 +msgid "workspace.shape.menu.thumbnail-remove" +msgstr "הסרת התמונה הממוזערת" + +#: src/app/main/ui/workspace/context_menu.cljs:223 +msgid "workspace.shape.menu.thumbnail-set" +msgstr "הגדרה כתמונה ממוזערת" + +#: src/app/main/ui/workspace/context_menu.cljs:326 +msgid "workspace.shape.menu.transform-to-path" +msgstr "המרה לנתיב" + +#: src/app/main/ui/workspace/context_menu.cljs:257 +msgid "workspace.shape.menu.ungroup" +msgstr "פירוק קבוצה" + +#: src/app/main/ui/workspace/context_menu.cljs:332, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:70 +msgid "workspace.shape.menu.union" +msgstr "איחוד" + +#: src/app/main/ui/workspace/context_menu.cljs:368, src/app/main/ui/workspace/sidebar/layer_item.cljs:152 +msgid "workspace.shape.menu.unlock" +msgstr "שחרור נעילה" + +#: src/app/main/ui/workspace/context_menu.cljs:271 +msgid "workspace.shape.menu.unmask" +msgstr "ביטול מסכה" + +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs +#, unused +msgid "workspace.shape.menu.update-components-in-bulk" +msgstr "עדכון הרכיבים הראשיים" + +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:445 +msgid "workspace.shape.menu.update-main" +msgstr "עדכון הרכיב הראשי" + +#: src/app/main/ui/components/tab_container.cljs:50 +msgid "workspace.sidebar.collapse" +msgstr "צמצום סרגל צד" + +#: src/app/main/ui/workspace/sidebar/collapsable_button.cljs:26 +msgid "workspace.sidebar.expand" +msgstr "הרחבת סרגל צד" + +#: src/app/main/ui/workspace/right_header.cljs:231, src/app/main/ui/workspace/right_header.cljs:232 +msgid "workspace.sidebar.history" +msgstr "היסטוריה (%s)" + +#: src/app/main/ui/workspace/sidebar/layers.cljs:522, src/app/main/ui/workspace/sidebar.cljs:100 +msgid "workspace.sidebar.layers" +msgstr "שכבות" + +#: src/app/main/ui/workspace/sidebar/layers.cljs:308, src/app/main/ui/workspace/sidebar/layers.cljs:380 +msgid "workspace.sidebar.layers.components" +msgstr "רכיבים" + +#: src/app/main/ui/workspace/sidebar/layers.cljs:305, src/app/main/ui/workspace/sidebar/layers.cljs:338 +msgid "workspace.sidebar.layers.frames" +msgstr "לוחות" + +#: src/app/main/ui/workspace/sidebar/layers.cljs:306, src/app/main/ui/workspace/sidebar/layers.cljs:352 +msgid "workspace.sidebar.layers.groups" +msgstr "קבוצות" + +#: src/app/main/ui/workspace/sidebar/layers.cljs:310, src/app/main/ui/workspace/sidebar/layers.cljs:408 +msgid "workspace.sidebar.layers.images" +msgstr "תמונות" + +#: src/app/main/ui/workspace/sidebar/layers.cljs:307, src/app/main/ui/workspace/sidebar/layers.cljs:366 +msgid "workspace.sidebar.layers.masks" +msgstr "מסכות" + +#: src/app/main/ui/workspace/sidebar/layers.cljs:289 +msgid "workspace.sidebar.layers.search" +msgstr "חיפוש בשכבות" + +#: src/app/main/ui/workspace/sidebar/layers.cljs:311, src/app/main/ui/workspace/sidebar/layers.cljs:422 +msgid "workspace.sidebar.layers.shapes" +msgstr "צורות" + +#: src/app/main/ui/workspace/sidebar/layers.cljs:309, src/app/main/ui/workspace/sidebar/layers.cljs:394 +msgid "workspace.sidebar.layers.texts" +msgstr "טקסטים" + +#: src/app/main/ui/viewer/inspect/attributes/svg.cljs:56, src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs:91 +msgid "workspace.sidebar.options.svg-attrs.title" +msgstr "מאפייני SVG יובאו" + +#: src/app/main/ui/workspace/sidebar/sitemap.cljs:217 +msgid "workspace.sidebar.sitemap" +msgstr "עמודים" + +#: src/app/main/ui/workspace/left_header.cljs:91 +msgid "workspace.sitemap" +msgstr "מפת אתר" + +#: src/app/main/ui/workspace/sidebar.cljs:120 +msgid "workspace.toolbar.assets" +msgstr "משאבים" + +#: src/app/main/ui/workspace/palette.cljs:165, src/app/main/ui/workspace/palette.cljs:166 +msgid "workspace.toolbar.color-palette" +msgstr "ערכת צבעים (%s)" + +#: src/app/main/ui/workspace/right_header.cljs:220, src/app/main/ui/workspace/right_header.cljs:221 +msgid "workspace.toolbar.comments" +msgstr "הערות (%s)" + +#: src/app/main/ui/workspace/top_toolbar.cljs:180, src/app/main/ui/workspace/top_toolbar.cljs:181 +msgid "workspace.toolbar.curve" +msgstr "עיקול (%s)" + +#: src/app/main/ui/workspace/top_toolbar.cljs:160, src/app/main/ui/workspace/top_toolbar.cljs:161 +msgid "workspace.toolbar.ellipse" +msgstr "אליפסה (%s)" + +#: src/app/main/ui/workspace/top_toolbar.cljs:142, src/app/main/ui/workspace/top_toolbar.cljs:143 +msgid "workspace.toolbar.frame" +msgstr "לוח (%s)" + +#: src/app/main/ui/workspace/top_toolbar.cljs:59, src/app/main/ui/workspace/top_toolbar.cljs:60 +msgid "workspace.toolbar.image" +msgstr "תמונה (%s)" + +#: src/app/main/ui/workspace/top_toolbar.cljs:132, src/app/main/ui/workspace/top_toolbar.cljs:133 +msgid "workspace.toolbar.move" +msgstr "העברה (%s)" + +#: src/app/main/ui/workspace/top_toolbar.cljs:189, src/app/main/ui/workspace/top_toolbar.cljs:190 +msgid "workspace.toolbar.path" +msgstr "נתיב (%s)" + +#: src/app/main/ui/workspace/top_toolbar.cljs:151, src/app/main/ui/workspace/top_toolbar.cljs:152 +msgid "workspace.toolbar.rect" +msgstr "ריבוע (%s)" + +#: src/app/main/ui/workspace/left_toolbar.cljs +#, unused +msgid "workspace.toolbar.shortcuts" +msgstr "קיצורי דרך (%s)" + +#: src/app/main/ui/workspace/top_toolbar.cljs:169, src/app/main/ui/workspace/top_toolbar.cljs:170 +msgid "workspace.toolbar.text" +msgstr "טקסט (%s)" + +#: src/app/main/ui/workspace/palette.cljs:173, src/app/main/ui/workspace/palette.cljs:174 +msgid "workspace.toolbar.text-palette" +msgstr "טיפוגרפיות (%s)" + +#: src/app/main/ui/workspace/viewport/top_bar.cljs:38 +msgid "workspace.top-bar.read-only.done" +msgstr "בוצע" + +#: src/app/main/ui/workspace/viewport/top_bar.cljs:35 +#, markdown +msgid "workspace.top-bar.view-only" +msgstr "**חקירת קוד** (צפייה בלבד)" + +#: src/app/main/ui/workspace/sidebar/history.cljs:342 +msgid "workspace.undo.empty" +msgstr "אין שינויים היסטוריים עד כה" + +#: src/app/main/ui/workspace/sidebar/history.cljs:147 +msgid "workspace.undo.entry.delete" +msgstr "%s נמחק" + +#: src/app/main/ui/workspace/sidebar/history.cljs:146 +msgid "workspace.undo.entry.modify" +msgstr "%s נערך" + +#: src/app/main/ui/workspace/sidebar/history.cljs:148 +msgid "workspace.undo.entry.move" +msgstr "פריטים שהועברו" + +#: src/app/main/ui/workspace/sidebar/history.cljs:111 +msgid "workspace.undo.entry.multiple.circle" +msgstr "עיגולים" + +#: src/app/main/ui/workspace/sidebar/history.cljs:112 +msgid "workspace.undo.entry.multiple.color" +msgstr "משאבי צבע" + +#: src/app/main/ui/workspace/sidebar/history.cljs:113 +msgid "workspace.undo.entry.multiple.component" +msgstr "רכיבים" + +#: src/app/main/ui/workspace/sidebar/history.cljs:114 +msgid "workspace.undo.entry.multiple.curve" +msgstr "עיקולים" + +#: src/app/main/ui/workspace/sidebar/history.cljs:115 +msgid "workspace.undo.entry.multiple.frame" +msgstr "לוח" + +#: src/app/main/ui/workspace/sidebar/history.cljs:116 +msgid "workspace.undo.entry.multiple.group" +msgstr "קבוצות" + +#: src/app/main/ui/workspace/sidebar/history.cljs:117 +msgid "workspace.undo.entry.multiple.media" +msgstr "משאבים גרפיים" + +#: src/app/main/ui/workspace/sidebar/history.cljs:118 +msgid "workspace.undo.entry.multiple.multiple" +msgstr "פריטים" + +#: src/app/main/ui/workspace/sidebar/history.cljs:119 +msgid "workspace.undo.entry.multiple.page" +msgstr "עמודים" + +#: src/app/main/ui/workspace/sidebar/history.cljs:120 +msgid "workspace.undo.entry.multiple.path" +msgstr "נתיבים" + +#: src/app/main/ui/workspace/sidebar/history.cljs:121 +msgid "workspace.undo.entry.multiple.rect" +msgstr "ריבועים" + +#: src/app/main/ui/workspace/sidebar/history.cljs:122 +msgid "workspace.undo.entry.multiple.shape" +msgstr "צורות" + +#: src/app/main/ui/workspace/sidebar/history.cljs:123 +msgid "workspace.undo.entry.multiple.text" +msgstr "טקסטים" + +#: src/app/main/ui/workspace/sidebar/history.cljs:124 +msgid "workspace.undo.entry.multiple.typography" +msgstr "משאבים טיפוגרפיים" + +#: src/app/main/ui/workspace/sidebar/history.cljs:145 +msgid "workspace.undo.entry.new" +msgstr "%s חדש" + +#: src/app/main/ui/workspace/sidebar/history.cljs:125 +msgid "workspace.undo.entry.single.circle" +msgstr "עיגול" + +#: src/app/main/ui/workspace/sidebar/history.cljs:126 +msgid "workspace.undo.entry.single.color" +msgstr "משאב צבע" + +#: src/app/main/ui/workspace/sidebar/history.cljs:127 +msgid "workspace.undo.entry.single.component" +msgstr "רכיב" + +#: src/app/main/ui/workspace/sidebar/history.cljs:128 +msgid "workspace.undo.entry.single.curve" +msgstr "עיקול" + +#: src/app/main/ui/workspace/sidebar/history.cljs:129 +msgid "workspace.undo.entry.single.frame" +msgstr "לוח" + +#: src/app/main/ui/workspace/sidebar/history.cljs:130 +msgid "workspace.undo.entry.single.group" +msgstr "קבוצה" + +#: src/app/main/ui/workspace/sidebar/history.cljs:131 +msgid "workspace.undo.entry.single.image" +msgstr "תמונה" + +#: src/app/main/ui/workspace/sidebar/history.cljs:132 +msgid "workspace.undo.entry.single.media" +msgstr "משאב גרפי" + +#: src/app/main/ui/workspace/sidebar/history.cljs:133 +msgid "workspace.undo.entry.single.multiple" +msgstr "פריט" + +#: src/app/main/ui/workspace/sidebar/history.cljs:134 +msgid "workspace.undo.entry.single.page" +msgstr "עמוד" + +#: src/app/main/ui/workspace/sidebar/history.cljs:135 +msgid "workspace.undo.entry.single.path" +msgstr "נתיב" + +#: src/app/main/ui/workspace/sidebar/history.cljs:136 +msgid "workspace.undo.entry.single.rect" +msgstr "מרובע" + +#: src/app/main/ui/workspace/sidebar/history.cljs:137 +msgid "workspace.undo.entry.single.shape" +msgstr "צורה" + +#: src/app/main/ui/workspace/sidebar/history.cljs:138 +msgid "workspace.undo.entry.single.text" +msgstr "טקסט" + +#: src/app/main/ui/workspace/sidebar/history.cljs:139 +msgid "workspace.undo.entry.single.typography" +msgstr "משאב טיפוגרפי" + +#: src/app/main/ui/workspace/sidebar/history.cljs:149 +msgid "workspace.undo.entry.unknown" +msgstr "פעולה על %s" + +#: src/app/main/ui/workspace/sidebar/history.cljs:335 +msgid "workspace.undo.title" +msgstr "היסטוריה" + +#: src/app/main/data/workspace/libraries.cljs:1094 +msgid "workspace.updates.dismiss" +msgstr "התעלמות" + +#: src/app/main/data/workspace/libraries.cljs:1092 +msgid "workspace.updates.more-info" +msgstr "מידע נוסף" + +#: src/app/main/data/workspace/libraries.cljs:1090 +msgid "workspace.updates.there-are-updates" +msgstr "יש עדכונים בספריות המשותפות" + +#: src/app/main/data/workspace/libraries.cljs:1097 +msgid "workspace.updates.update" +msgstr "עדכון" + +#, unused +msgid "workspace.viewport.click-to-close-path" +msgstr "לחיצה תסגור את הנתיב" diff --git a/frontend/translations/hr.po b/frontend/translations/hr.po index b29b453ade..ac02a686b3 100644 --- a/frontend/translations/hr.po +++ b/frontend/translations/hr.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "PO-Revision-Date: 2024-06-17 08:07+0000\n" "Last-Translator: Anonymous \n" -"Language-Team: Croatian \n" +"Language-Team: Croatian " +"\n" "Language: hr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" @@ -12,381 +12,425 @@ msgstr "" "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" "X-Generator: Weblate 5.6-dev\n" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:151, src/app/main/ui/viewer/login.cljs:104 msgid "auth.already-have-account" msgstr "Već imaš račun?" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:299 msgid "auth.check-your-email" msgstr "Provjeri svoj e-mail i klikni na vezu da potvrdiš i počneš koristiti Penpot." -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:78 msgid "auth.confirm-password" msgstr "Potvrdi lozinku" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/register.cljs:163 msgid "auth.create-demo-account" msgstr "Kreiraj demo račun" #: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#, unused msgid "auth.create-demo-profile" msgstr "Samo želiš isprobati?" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/login.cljs:43 msgid "auth.demo-warning" msgstr "" "Ovo je DEMO usluga. NEMOJ KORISTITI za pravi rad. Projekti će se povremeno " "brisati." -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:189, src/app/main/ui/viewer/login.cljs:90 msgid "auth.forgot-password" msgstr "Zaboravljena lozinka?" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:254 msgid "auth.fullname" msgstr "Puno ime" -#: src/app/main/ui/auth/register.cljs -#, fuzzy +#: src/app/main/ui/auth/register.cljs:155, src/app/main/ui/viewer/login.cljs:107 msgid "auth.login-here" msgstr "Prijavi se ovdje" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:195 msgid "auth.login-submit" msgstr "Prijava" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:222 msgid "auth.login-with-github-submit" msgstr "GitHub" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:228 msgid "auth.login-with-gitlab-submit" msgstr "GitLab" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:216 msgid "auth.login-with-google-submit" msgstr "Google" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:201 msgid "auth.login-with-ldap-submit" msgstr "LDAP" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:234, src/app/main/ui/auth/login.cljs:255 msgid "auth.login-with-oidc-submit" msgstr "OpenID" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:71 msgid "auth.new-password" msgstr "Unesi novu lozinku" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:42 msgid "auth.notifications.invalid-token-error" msgstr "Token za oporavak je nevažeći." -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:46 msgid "auth.notifications.password-changed-successfully" msgstr "Lozinka uspješno promijenjena" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:57 msgid "auth.notifications.profile-not-verified" msgstr "Profil nije potvrđen, potvrdi profil prije nastavka." -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:40 msgid "auth.notifications.recovery-token-sent" msgstr "Veza za oporavak lozinke poslana je u tvoj inbox." -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:47 msgid "auth.notifications.team-invitation-accepted" msgstr "Uspješno pridružen/a timu" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:179, src/app/main/ui/auth/register.cljs:115 msgid "auth.password" msgstr "Lozinka" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:114 msgid "auth.password-length-hint" msgstr "Najmanje 8 znamenki" +#: src/app/main/ui/auth.cljs:41 msgid "auth.privacy-policy" msgstr "Pravila privatnosti" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:88 msgid "auth.recovery-request-submit" msgstr "Obnovi lozinku" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:101 msgid "auth.recovery-request-subtitle" msgstr "Poslat ćemo ti e-mail sa uputama" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:100 msgid "auth.recovery-request-title" msgstr "Zaboravljena lozinka?" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:82 msgid "auth.recovery-submit" msgstr "Promjeni lozinku" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:298, src/app/main/ui/viewer/login.cljs:93 msgid "auth.register" msgstr "Još nemaš račun?" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:302, src/app/main/ui/auth/register.cljs:121, src/app/main/ui/auth/register.cljs:263, src/app/main/ui/viewer/login.cljs:97 msgid "auth.register-submit" msgstr "Stvori račun" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:140 msgid "auth.register-title" msgstr "Stvori račun" #: src/app/main/ui/auth.cljs +#, unused msgid "auth.sidebar-tagline" msgstr "Open Source rješenje za dizajn i izradu prototipova." +#: src/app/main/ui/auth.cljs:33, src/app/main/ui/dashboard/sidebar.cljs:1022, src/app/main/ui/workspace/main_menu.cljs:150 msgid "auth.terms-of-service" msgstr "Uvjeti pružanja usluge" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:297 msgid "auth.verification-email-sent" msgstr "Poslali smo e-mail za potvrdu na" +#: src/app/main/ui/workspace/libraries.cljs:228 msgid "common.publish" msgstr "Objavi" +#: src/app/main/ui/viewer/share_link.cljs:304, src/app/main/ui/viewer/share_link.cljs:314 msgid "common.share-link.all-users" msgstr "Svi Penpot korisnici" +#: src/app/main/ui/viewer/share_link.cljs:198 msgid "common.share-link.confirm-deletion-link-description" msgstr "" "Jesi li siguran/na da želiš ukloniti ovu vezu? Ako to učiniš, više nikome " "neće biti dostupno" +#: src/app/main/ui/viewer/share_link.cljs:259, src/app/main/ui/viewer/share_link.cljs:289 msgid "common.share-link.current-tag" msgstr "(postojeći)" +#: src/app/main/ui/viewer/share_link.cljs:207, src/app/main/ui/viewer/share_link.cljs:214 msgid "common.share-link.destroy-link" msgstr "Poništi poveznicu" +#: src/app/main/ui/viewer/share_link.cljs:221 msgid "common.share-link.get-link" msgstr "Izradi poveznicu" +#: src/app/main/ui/viewer/share_link.cljs:139 msgid "common.share-link.link-copied-success" msgstr "Poveznica uspješno kopirana" +#: src/app/main/ui/viewer/share_link.cljs:231 msgid "common.share-link.manage-ops" msgstr "Upravljanje dopuštenjima" +#: src/app/main/ui/viewer/share_link.cljs:277 msgid "common.share-link.page-shared" msgid_plural "common.share-link.page-shared" msgstr[0] "1 stranica podijeljena" msgstr[1] "%s stranica podijeljeno" msgstr[2] "%s stranica podijeljeno" +#: src/app/main/ui/viewer/share_link.cljs:298 msgid "common.share-link.permissions-can-comment" msgstr "Dopušten komentar" +#: src/app/main/ui/viewer/share_link.cljs:308 msgid "common.share-link.permissions-can-inspect" msgstr "Dopušteno provjeriti kod" +#: src/app/main/ui/viewer/share_link.cljs:193 msgid "common.share-link.permissions-hint" msgstr "Svatko sa poveznicom imat će pristup" +#: src/app/main/ui/viewer/share_link.cljs:241 msgid "common.share-link.permissions-pages" msgstr "Stranice podijeljene" +#: src/app/main/ui/viewer/share_link.cljs:183 msgid "common.share-link.placeholder" msgstr "Ovdje će se pojaviti poveznica za dijeljenje" +#: src/app/main/ui/viewer/share_link.cljs:303, src/app/main/ui/viewer/share_link.cljs:313 msgid "common.share-link.team-members" msgstr "Samo članovi tima" +#: src/app/main/ui/viewer/share_link.cljs:171 msgid "common.share-link.title" msgstr "Podijeli prototip" +#: src/app/main/ui/viewer/share_link.cljs:269 msgid "common.share-link.view-all" msgstr "Označi sve" +#: src/app/main/ui/workspace/libraries.cljs:224 msgid "common.unpublish" msgstr "Poništi objavu" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:85 msgid "dasboard.team-hero.management" msgstr "Upravljanje timom" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:84 msgid "dasboard.team-hero.text" msgstr "" "Penpot je namijenjen timovima. Pozovi članove da zajedno rade na projektima " "i datotekama" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:82 msgid "dasboard.team-hero.title" msgstr "Udruži se!" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.tutorial-hero.info" msgstr "Nauči osnove na Penpotu dok se zabavljaš uz ovaj praktični vodič." #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.tutorial-hero.start" msgstr "Pokreni praktični vodič" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.tutorial-hero.title" msgstr "Praktični vodič" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.walkthrough-hero.info" msgstr "Prošeći Penpotom i upoznaj glavne karakteristike." #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.walkthrough-hero.start" msgstr "Započni obilazak" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.walkthrough-hero.title" msgstr "Pregledaj sučelje" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:291, src/app/main/ui/workspace/main_menu.cljs:572 msgid "dashboard.add-shared" msgstr "Dodaj kao zajedničku biblioteku" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:75 msgid "dashboard.change-email" msgstr "Promijeni e-mail" -#: src/app/main/data/dashboard.cljs, src/app/main/data/dashboard.cljs +#: src/app/main/data/dashboard.cljs:762, src/app/main/data/dashboard.cljs:983 msgid "dashboard.copy-suffix" msgstr "(kopiraj)" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:338 msgid "dashboard.create-new-team" msgstr "+ Kreiraj novi tim" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/components/context_menu_a11y.cljs:256, src/app/main/ui/dashboard/sidebar.cljs:646 msgid "dashboard.default-team-name" msgstr "Tvoj Penpot" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:571 msgid "dashboard.delete-team" msgstr "Obriši tim" +#: src/app/main/ui/dashboard/file_menu.cljs:296, src/app/main/ui/workspace/main_menu.cljs:589 msgid "dashboard.download-binary-file" msgstr "Preuzmi Penpot datoteku (.penpot)" +#: src/app/main/ui/dashboard/file_menu.cljs:300, src/app/main/ui/workspace/main_menu.cljs:597 msgid "dashboard.download-standard-file" msgstr "Preuzmi standardnu datoteku (.svg + .json)" -#: src/app/main/ui/dashboard/project_menu.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:276, src/app/main/ui/dashboard/project_menu.cljs:90 msgid "dashboard.duplicate" msgstr "Kopija" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:240 msgid "dashboard.duplicate-multi" msgstr "Kopiraj %s datoteka" -#: src/app/main/ui/dashboard/grid.cljs +#: src/app/main/ui/dashboard/placeholder.cljs:32 +#, markdown msgid "dashboard.empty-placeholder-drafts" msgstr "" "O ne! Još nemaš datoteka! Ako želiš isprobati neke predloške, idi na " "[Biblioteke i predlošci](https://penpot.app/libraries-templates)" +#: src/app/main/ui/dashboard/file_menu.cljs:249 msgid "dashboard.export-binary-multi" msgstr "Preuzmi %s Penpot datoteke (.penpot)" +#: src/app/main/ui/workspace/main_menu.cljs:605 msgid "dashboard.export-frames" msgstr "Izvezi artboard u PDF…" -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:201 msgid "dashboard.export-frames.title" msgstr "Izvezi u PDF" +#, unused msgid "dashboard.export-multi" msgstr "Izvezi Penpot %s datoteka" -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:109 msgid "dashboard.export-multiple.selected" msgstr "% od % elementa označeno" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:578 msgid "dashboard.export-shapes" msgstr "Izvezi" -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:180 msgid "dashboard.export-shapes.how-to" msgstr "" "Postavke izvoza možeš dodati elementima iz svojstava dizajna (na dnu desne " "bočne trake)." -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:184 msgid "dashboard.export-shapes.how-to-link" msgstr "Informacije kako postaviti izvoz na Penpot." -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:179 msgid "dashboard.export-shapes.no-elements" msgstr "Nema elemenata s postavkama izvoza." -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:190 msgid "dashboard.export-shapes.title" msgstr "Izvezi odabir" +#: src/app/main/ui/dashboard/file_menu.cljs:252 msgid "dashboard.export-standard-multi" msgstr "Preuzmi %s standardne datoteke (.svg + .json)" +#: src/app/main/ui/export.cljs:427 msgid "dashboard.export.detail" msgstr "* Može uključivati komponente, grafike, boje i/ili tipografije." +#: src/app/main/ui/export.cljs:426 msgid "dashboard.export.explain" msgstr "" "Jedna ili više datoteka koju želiš izvesti koristi zajedničke biblioteke. " "Što želiš učiniti s njihovim stavkama*?" +#: src/app/main/ui/export.cljs:435 msgid "dashboard.export.options.all.message" msgstr "" "datoteke sa zajedničkim bibliotekama bit će uključene u izvoz, održavajući " "njihovu poveznicu." +#: src/app/main/ui/export.cljs:436 msgid "dashboard.export.options.all.title" msgstr "Izvezi zajedničke biblioteke" +#: src/app/main/ui/export.cljs:437 msgid "dashboard.export.options.detach.message" msgstr "" "Zajedničke biblioteke neće biti uključene u izvoz i nikakve stavke neće " "biti dodani u biblioteku. " +#: src/app/main/ui/export.cljs:438 msgid "dashboard.export.options.detach.title" msgstr "Tretiraj stavke zajedničke biblioteke kao osnovne objekte" +#: src/app/main/ui/export.cljs:439 msgid "dashboard.export.options.merge.message" msgstr "" "Tvoja će datoteka biti izvezena sa svim vanjskim stavkama spojenim u " "biblioteku datoteka." +#: src/app/main/ui/export.cljs:440 msgid "dashboard.export.options.merge.title" msgstr "Uključi stavke zajedničke biblioteke u biblioteke datoteka" +#: src/app/main/ui/export.cljs:418 msgid "dashboard.export.title" msgstr "Izvezi datoteke" +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:309 msgid "dashboard.fonts.deleted-placeholder" msgstr "Font izbrisan" -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:206 msgid "dashboard.fonts.dismiss-all" msgstr "Odbaci sve" -#, fuzzy +#: src/app/main/ui/dashboard/fonts.cljs:436 msgid "dashboard.fonts.empty-placeholder" msgstr "Još uvijek nemaš instalirane custom fontove." -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:194 msgid "dashboard.fonts.fonts-added" msgid_plural "dashboard.fonts.fonts-added" msgstr[0] "1 font dodan" msgstr[1] "%s fontova dodano" msgstr[2] "%s fontova dodano" +#: src/app/main/ui/dashboard/fonts.cljs:170 +#, markdown msgid "dashboard.fonts.hero-text1" msgstr "" "Svaki web-font koji ovdje preneseš biti će dodan na popis fontova koji je " @@ -394,6 +438,8 @@ msgstr "" "će grupirani kao **jedan font**. Možeš učitati fontove sa sljedećim " "formatima: **TTF, OTF i WOFF** (biti će potreban samo jedan)." +#: src/app/main/ui/dashboard/fonts.cljs:182 +#, markdown msgid "dashboard.fonts.hero-text2" msgstr "" "Možeš učitavati samo fontove koje posjeduješ ili imaš licencu za korištenje " @@ -401,3878 +447,4115 @@ msgstr "" "pružanja usluge](https://penpot.app/terms.html). Također možeš pročitati o " "[licenciranju fontova](https://www.typography.com/faq)." -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:202 msgid "dashboard.fonts.upload-all" msgstr "Učitaj sve" +#: src/app/main/ui/dashboard/import.cljs:472, src/app/main/ui/dashboard/project_menu.cljs:108 msgid "dashboard.import" msgstr "Uvezi Penpot datoteke" +#: src/app/main/ui/dashboard/import.cljs:304, src/app/worker/import.cljs:753, src/app/worker/import.cljs:755 msgid "dashboard.import.analyze-error" msgstr "Ups! Nismo mogli uvesti ovu datoteku" +#: src/app/main/ui/dashboard/import.cljs:308 msgid "dashboard.import.import-error" msgstr "Došlo je do problema pri uvozu datoteke. Datoteka nije uvezena." +#: src/app/main/ui/dashboard/import.cljs:493 msgid "dashboard.import.import-message" msgstr "%s datoteka je uspješno uvezeno." +#: src/app/main/ui/dashboard/import.cljs:481, src/app/main/ui/dashboard/import.cljs:488 msgid "dashboard.import.import-warning" msgstr "Neke su datoteke sadržavale nevažeće objekte koji su uklonjeni." +#: src/app/main/ui/dashboard/import.cljs:144 msgid "dashboard.import.progress.process-colors" msgstr "Obrada boja" +#: src/app/main/ui/dashboard/import.cljs:153 msgid "dashboard.import.progress.process-components" msgstr "Obrada komponenti" +#: src/app/main/ui/dashboard/import.cljs:150 msgid "dashboard.import.progress.process-media" msgstr "Obrada medija" +#: src/app/main/ui/dashboard/import.cljs:141 msgid "dashboard.import.progress.process-page" msgstr "Obrada stranice: %s" +#: src/app/main/ui/dashboard/import.cljs:147 msgid "dashboard.import.progress.process-typographies" msgstr "Obrada tipografija" +#: src/app/main/ui/dashboard/import.cljs:135 msgid "dashboard.import.progress.upload-data" msgstr "Prijenos podataka na poslužitelj (%s/%s)" +#: src/app/main/ui/dashboard/import.cljs:138 msgid "dashboard.import.progress.upload-media" msgstr "Prijenos datoteke: %s" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:109 msgid "dashboard.invite-profile" msgstr "Pozovi u tim" -#: src/app/main/ui/dashboard/sidebar.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:547, src/app/main/ui/dashboard/sidebar.cljs:556, src/app/main/ui/dashboard/sidebar.cljs:563, src/app/main/ui/dashboard/team.cljs:312 msgid "dashboard.leave-team" msgstr "Napusti tim" +#: src/app/main/ui/dashboard/templates.cljs:88, src/app/main/ui/dashboard/templates.cljs:163 msgid "dashboard.libraries-and-templates" msgstr "Biblioteke i predlošci" +#: src/app/main/ui/dashboard/templates.cljs:164 msgid "dashboard.libraries-and-templates.explore" msgstr "Istraži više njih i saznaj kako doprinijeti" +#: src/app/main/ui/dashboard/import.cljs:365 msgid "dashboard.libraries-and-templates.import-error" msgstr "Došlo je do problema prilikom uvoza predloška. Predložak nije uvezen." -#: src/app/main/ui/dashboard/libraries.cljs +#: src/app/main/ui/dashboard/libraries.cljs:53 msgid "dashboard.libraries-title" msgstr "Biblioteke" -#: src/app/main/ui/dashboard/grid.cljs +#: src/app/main/ui/dashboard/placeholder.cljs:45 msgid "dashboard.loading-files" msgstr "učitavanje tvojih datoteka…" +#: src/app/main/ui/dashboard/fonts.cljs:431 msgid "dashboard.loading-fonts" msgstr "učitavanje tvojih fontova…" -#: src/app/main/ui/dashboard/project_menu.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:281, src/app/main/ui/dashboard/project_menu.cljs:100 msgid "dashboard.move-to" msgstr "Premijesti u" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:245 msgid "dashboard.move-to-multi" msgstr "Premijesti %s datoteke u" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:226 msgid "dashboard.move-to-other-team" msgstr "Premijesti u drugi tim" -#: src/app/main/ui/dashboard/projects.cljs, -#: src/app/main/ui/dashboard/files.cljs +#: src/app/main/ui/dashboard/files.cljs:105, src/app/main/ui/dashboard/projects.cljs:252, src/app/main/ui/dashboard/projects.cljs:253 msgid "dashboard.new-file" msgstr "+ Nova datoteka" -#: src/app/main/data/dashboard.cljs +#: src/app/main/data/dashboard.cljs:958, src/app/main/data/dashboard.cljs:1181 msgid "dashboard.new-file-prefix" msgstr "Nova datoteka" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:55 msgid "dashboard.new-project" msgstr "+ Novi projekt" -#: src/app/main/data/dashboard.cljs +#: src/app/main/data/dashboard.cljs:726, src/app/main/data/dashboard.cljs:1184 msgid "dashboard.new-project-prefix" msgstr "Novi projekt" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:60 msgid "dashboard.no-matches-for" msgstr "Nisu pronađeni rezultati za “%s”" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:827 msgid "dashboard.no-projects-placeholder" msgstr "Prikvačeni projekti pojavit će se ovdje" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:33 msgid "dashboard.notifications.email-changed-successfully" msgstr "Tvoja e-mail adresa je uspješno ažurirana" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:27 msgid "dashboard.notifications.email-verified-successfully" msgstr "Tvoja e-mail adresa je uspješno potvrđena" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:37 msgid "dashboard.notifications.password-saved" msgstr "Lozinka je uspješno spremljena!" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1081 msgid "dashboard.num-of-members" msgstr "%s članova" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:267 msgid "dashboard.open-in-new-tab" msgstr "Otvori datoteku u novoj kartici" +#: src/app/main/ui/dashboard/files.cljs:117, src/app/main/ui/dashboard/projects.cljs:260, src/app/main/ui/dashboard/projects.cljs:261 msgid "dashboard.options" msgstr "Mogućnosti" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:106, src/app/main/ui/settings/password.cljs:119 msgid "dashboard.password-change" msgstr "Promjeni lozinku" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/pin_button.cljs:24, src/app/main/ui/dashboard/project_menu.cljs:95 msgid "dashboard.pin-unpin" msgstr "Prikvači/Otkvači" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:51 msgid "dashboard.projects-title" msgstr "Projekti" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:86 msgid "dashboard.remove-account" msgstr "Želiš li ukloniti svoj račun?" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "dashboard.remove-shared" msgstr "Ukloni kao zajedničku biblioteku" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:78 msgid "dashboard.save-settings" msgstr "Spremi postavke" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:246, src/app/main/ui/dashboard/sidebar.cljs:247 msgid "dashboard.search-placeholder" msgstr "Pretraži…" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:55 msgid "dashboard.searching-for" msgstr "Pretraga \"%s\"…" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:56 msgid "dashboard.select-ui-language" msgstr "Odaberite jezik korisničkog sučelja" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:63 msgid "dashboard.select-ui-theme" msgstr "Odaberi temu" -#: src/app/main/ui/dashboard/grid.cljs +#: src/app/main/ui/dashboard/projects.cljs:282 msgid "dashboard.show-all-files" msgstr "Prikaži sve datoteke" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:96 msgid "dashboard.success-delete-file" msgstr "Tvoja datoteka je uspješno izbrisana" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:59 msgid "dashboard.success-delete-project" msgstr "Tvoj projekt je uspješno izbrisan" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:91 msgid "dashboard.success-duplicate-file" msgstr "Tvoja datoteka je uspješno duplicirana" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:33 msgid "dashboard.success-duplicate-project" msgstr "Tvoj projekt je uspješno dupliciran" -#: src/app/main/ui/dashboard/grid.cljs, src/app/main/ui/dashboard/sidebar.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:130, src/app/main/ui/dashboard/grid.cljs:558, src/app/main/ui/dashboard/sidebar.cljs:152 msgid "dashboard.success-move-file" msgstr "Tvoja datoteka je uspješno premještena" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:129 msgid "dashboard.success-move-files" msgstr "Tvoje datoteke su uspješno premještene" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:54 msgid "dashboard.success-move-project" msgstr "Tvoj projekt je uspješno premješten" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1052 msgid "dashboard.team-info" msgstr "Informacije tima" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1070 msgid "dashboard.team-members" msgstr "Članovi tima" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1085 msgid "dashboard.team-projects" msgstr "Projekti tima" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:61 msgid "dashboard.theme-change" msgstr "Tema korisničkog sučelja" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:42 msgid "dashboard.title-search" msgstr "Pretraži rezultate" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:50 msgid "dashboard.type-something" msgstr "Upiši za rezultate pretraživanja" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:287, src/app/main/ui/workspace/main_menu.cljs:566 msgid "dashboard.unpublish-shared" msgstr "Poništi objavu biblioteke" -#: src/app/main/ui/settings/password.cljs, -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:71 msgid "dashboard.update-settings" msgstr "Ažuriraj postavke" -#: src/app/main/ui/settings.cljs +#: src/app/main/ui/settings.cljs:31 msgid "dashboard.your-account-title" msgstr "Tvoj korisnički račun" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:70 msgid "dashboard.your-email" msgstr "E-mail" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:62 msgid "dashboard.your-name" msgstr "Ime" -#: src/app/main/ui/dashboard/search.cljs, src/app/main/ui/dashboard/team.cljs, -#: src/app/main/ui/dashboard/libraries.cljs, -#: src/app/main/ui/dashboard/projects.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:38, src/app/main/ui/dashboard/fonts.cljs:33, src/app/main/ui/dashboard/libraries.cljs:42, src/app/main/ui/dashboard/projects.cljs:318, src/app/main/ui/dashboard/search.cljs:30, src/app/main/ui/dashboard/sidebar.cljs:312, src/app/main/ui/dashboard/team.cljs:495, src/app/main/ui/dashboard/team.cljs:729, src/app/main/ui/dashboard/team.cljs:991, src/app/main/ui/dashboard/team.cljs:1038 msgid "dashboard.your-penpot" msgstr "Tvoj Penpot" -#: src/app/main/ui/alert.cljs +#: src/app/main/ui/alert.cljs:32 msgid "ds.alert-ok" msgstr "U redu" -#: src/app/main/ui/alert.cljs +#: src/app/main/ui/alert.cljs:31, src/app/main/ui/alert.cljs:34 msgid "ds.alert-title" msgstr "Pažnja" -#: src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:83 msgid "ds.component-subtitle" msgstr "Komponente za ažuriranje:" -#: src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:36, src/app/main/ui/workspace/plugins.cljs:246 msgid "ds.confirm-cancel" msgstr "Poništi" -#: src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:37, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:141 msgid "ds.confirm-ok" msgstr "U redu" -#: src/app/main/ui/confirm.cljs, src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:35, src/app/main/ui/confirm.cljs:39 msgid "ds.confirm-title" msgstr "Jesi li siguran/na?" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:62 msgid "errors.auth-provider-not-configured" msgstr "Pružatelj autentifikacije nije konfiguriran." -#, fuzzy +#: src/app/main/errors.cljs:104 msgid "errors.auth.unable-to-login" msgstr "Čini se da nisi autentificiran/a ili je sesija istekla." -#: src/app/main/data/workspace.cljs +#: src/app/main/data/workspace.cljs:1598 msgid "errors.clipboard-not-implemented" msgstr "Tvoj preglednik ne može izvršiti ovu operaciju" -#: src/app/main/ui/auth/verify_token.cljs, -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/auth/verify_token.cljs:82, src/app/main/ui/settings/change_email.cljs:46 msgid "errors.email-already-exists" msgstr "E-mail se već koristi" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:87 msgid "errors.email-already-validated" msgstr "E-mail je već potvrđen." +#: src/app/main/ui/settings/password.cljs:28 msgid "errors.email-as-password" msgstr "Ne možeš koristiti svoj e-mail kao lozinku" -#: src/app/main/ui/auth/register.cljs, -#: src/app/main/ui/auth/recovery_request.cljs, -#: src/app/main/ui/settings/change_email.cljs, -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/auth/recovery_request.cljs:63, src/app/main/ui/dashboard/team.cljs:578, src/app/main/ui/settings/change_email.cljs:54 msgid "errors.email-has-permanent-bounces" msgstr "E-pmail «%s» ima mnogo trajnih izvješća o odbijanju." -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:35 msgid "errors.email-invalid-confirmation" msgstr "E-mail za potvrdu mora odgovarati" +#: src/app/main/ui/dashboard/team.cljs:170 msgid "errors.email-spam-or-permanent-bounces" msgstr "E-mail «%s» je prijavljen kao neželjena pošta ili je trajno odbijen." -#: src/app/main/ui/auth/verify_token.cljs, -#: src/app/main/ui/settings/feedback.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/data/users.cljs:709, src/app/main/ui/auth/login.cljs:65, src/app/main/ui/auth/login.cljs:116, src/app/main/ui/auth/register.cljs:69, src/app/main/ui/auth/register.cljs:237, src/app/main/ui/auth/verify_token.cljs:92, src/app/main/ui/dashboard/team.cljs:173, src/app/main/ui/onboarding/team_choice.cljs:95, src/app/main/ui/settings/access_tokens.cljs:91, src/app/main/ui/settings/feedback.cljs:52 msgid "errors.generic" msgstr "Dogodilo se nešto loše." -#: src/app/main/ui/components/color_input.cljs +#: src/app/main/ui/components/color_input.cljs:57 msgid "errors.invalid-color" msgstr "Pogrešna boja" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/static.cljs:43 msgid "errors.invite-invalid" msgstr "Pogrešna pozivnica" +#: src/app/main/ui/static.cljs:44 msgid "errors.invite-invalid.info" msgstr "Ova pozivnica je možda otkazana ili je istekla." -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:101 msgid "errors.ldap-disabled" msgstr "Onemogućena je LDAP provjera autentičnosti." -#: src/app/main/data/workspace/persistence.cljs +#: src/app/main/data/workspace/media.cljs:184 msgid "errors.media-too-large" msgstr "Slika je prevelika za umetanje." -#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs +#: src/app/main/data/media.cljs:68, src/app/main/data/workspace/media.cljs:187 msgid "errors.media-type-mismatch" msgstr "Čini se da sadržaj slike ne odgovara ekstenziji datoteke." -#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs +#: src/app/main/data/media.cljs:65, src/app/main/data/workspace/media.cljs:172, src/app/main/data/workspace/media.cljs:175, src/app/main/data/workspace/media.cljs:178, src/app/main/data/workspace/media.cljs:181 msgid "errors.media-type-not-allowed" msgstr "Čini se da ovo nije važeća slika." -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:574 msgid "errors.member-is-muted" msgstr "" "Profil koji pozivaš ima isključen e-email (izvješća o neželjenoj pošti ili " "veliki broj odbijanja)." -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:61 msgid "errors.password-invalid-confirmation" msgstr "Lozinka za potvrdu mora odgovarati" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:64 msgid "errors.password-too-short" msgstr "Lozinka mora sadržavati najmanje 8 znakova" -#: src/app/main/ui/auth/recovery_request.cljs, -#: src/app/main/ui/settings/change_email.cljs, -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/auth/recovery_request.cljs:60, src/app/main/ui/dashboard/team.cljs:164, src/app/main/ui/dashboard/team.cljs:570, src/app/main/ui/settings/change_email.cljs:50 msgid "errors.profile-is-muted" msgstr "" "Tvoj profil ima isključen e-mail (izvješća o neželjenoj pošti ili veliki " "broj odbijanja)." -#: src/app/main/ui/auth/register.cljs +#: src/app/main/data/users.cljs:701, src/app/main/ui/auth/register.cljs:60 msgid "errors.registration-disabled" msgstr "Registracija je trenutno onemogućena." +#: src/app/main/ui/dashboard/sidebar.cljs:365, src/app/main/ui/dashboard/team.cljs:359 msgid "errors.team-leave.insufficient-members" msgstr "Nedovoljno članova za napuštanje tima, vjerojatno ga želiš izbrisati." +#: src/app/main/ui/dashboard/sidebar.cljs:368, src/app/main/ui/dashboard/team.cljs:362 msgid "errors.team-leave.member-does-not-exists" msgstr "Član kojeg pokušavaš dodijeliti ne postoji." +#: src/app/main/ui/dashboard/sidebar.cljs:371, src/app/main/ui/dashboard/team.cljs:365 msgid "errors.team-leave.owner-cant-leave" msgstr "Vlasnik ne može napustiti tim, moraš ponovno dodijeliti ulogu vlasnika." -#: src/app/main/data/media.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs +#: src/app/main/data/media.cljs:71 msgid "errors.unexpected-error" msgstr "Došlo je do neočekivane pogreške." -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:60 msgid "errors.unexpected-token" msgstr "Nepoznati token" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:109, src/app/main/ui/auth/login.cljs:113 msgid "errors.wrong-credentials" msgstr "Čini se da su korisničko ime ili lozinka pogrešni." -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:25 msgid "errors.wrong-old-password" msgstr "Stara lozinka je netočna" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:77 msgid "feedback.description" msgstr "Opis" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:95 msgid "feedback.discourse-go-to" msgstr "Idi na Penpot forum" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:89 msgid "feedback.discourse-subtitle1" msgstr "Sretni smo što si ovdje. Ako trebaš pomoć, pretraži prije objavljivanja." -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:88 msgid "feedback.discourse-title" msgstr "Penpot zajednica" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:72 msgid "feedback.subject" msgstr "Tema" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:69 msgid "feedback.subtitle" msgstr "" "Opiši razlog svojeg e-maila, navedi radi li se o problemu, ideji ili " "nedoumici. Član našeg tima će odgovoriti u najkraćem mogućem roku." -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:68 msgid "feedback.title" msgstr "E-mail" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:105 msgid "feedback.twitter-go-to" msgstr "Idi na X" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:99 msgid "feedback.twitter-subtitle1" msgstr "Ovdje za pomoć za tvoje tehničke upite." -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:98 msgid "feedback.twitter-title" msgstr "X korisnički račun za podršku" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:30 msgid "generic.error" msgstr "Došlo je do pogreške" -#: src/app/main/ui/inspect/attributes/blur.cljs +#: src/app/main/ui/viewer/inspect/attributes/blur.cljs:26 msgid "inspect.attributes.blur" msgstr "Zamućenje" -#: src/app/main/ui/inspect/attributes/blur.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:115 msgid "inspect.attributes.blur.value" msgstr "Vrijednost" -#: src/app/main/ui/inspect/attributes/common.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:112 msgid "inspect.attributes.color.hex" msgstr "HEX" -#: src/app/main/ui/inspect/attributes/common.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:114 msgid "inspect.attributes.color.hsla" msgstr "HSLA" -#: src/app/main/ui/inspect/attributes/common.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:113 msgid "inspect.attributes.color.rgba" msgstr "RGBA" -#: src/app/main/ui/inspect/attributes/fill.cljs +#: src/app/main/ui/viewer/inspect/attributes/fill.cljs:57 msgid "inspect.attributes.fill" msgstr "Ispuna" -#: src/app/main/ui/inspect/attributes/image.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:99, src/app/main/ui/viewer/inspect/attributes/image.cljs:51 msgid "inspect.attributes.image.download" msgstr "Preuzmi izvornu sliku" -#: src/app/main/ui/inspect/attributes/image.cljs +#: src/app/main/ui/viewer/inspect/attributes/image.cljs:39 msgid "inspect.attributes.image.height" msgstr "Visina" -#: src/app/main/ui/inspect/attributes/image.cljs +#: src/app/main/ui/viewer/inspect/attributes/image.cljs:32 msgid "inspect.attributes.image.width" msgstr "Širina" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout" msgstr "Raspored" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.height" msgstr "Visina" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.left" msgstr "Lijevo" -#: src/app/main/ui/inspect/attributes/layout.cljs, -#: src/app/main/ui/inspect/attributes/layout.cljs +#: src/app/main/ui/inspect/attributes/layout.cljs, src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.radius" msgstr "Radius" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.rotation" msgstr "Rotacija" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.top" msgstr "Vrh" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.width" msgstr "Širina" -#: src/app/main/ui/inspect/attributes/shadow.cljs +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:57 msgid "inspect.attributes.shadow" msgstr "Sjena" -#: src/app/main/ui/inspect/attributes/stroke.cljs +#: src/app/main/ui/viewer/inspect/attributes/stroke.cljs:52 msgid "inspect.attributes.stroke" msgstr "Potez" +#, permanent, unused msgid "inspect.attributes.stroke.alignment.center" msgstr "Sredina" +#, permanent, unused msgid "inspect.attributes.stroke.alignment.inner" msgstr "Unutra" +#, permanent, unused msgid "inspect.attributes.stroke.alignment.outer" msgstr "Vani" +#, unused msgid "inspect.attributes.stroke.style.dotted" msgstr "Točkasto" +#, unused msgid "inspect.attributes.stroke.style.mixed" msgstr "Miksano" +#, unused msgid "inspect.attributes.stroke.style.none" msgstr "Nikakav" +#, unused msgid "inspect.attributes.stroke.style.solid" msgstr "Solidan" #: src/app/main/ui/inspect/attributes/stroke.cljs +#, unused msgid "inspect.attributes.stroke.width" msgstr "Širina" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:81, src/app/main/ui/viewer/inspect/attributes/text.cljs:194 msgid "inspect.attributes.typography" msgstr "Tipografija" -#: src/app/main/ui/inspect/attributes/text.cljs -#, fuzzy +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:89 msgid "inspect.attributes.typography.font-family" msgstr "Font" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:107 msgid "inspect.attributes.typography.font-size" msgstr "Veličina fonta" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:98 msgid "inspect.attributes.typography.font-style" msgstr "Stil fonta" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:134 msgid "inspect.attributes.typography.letter-spacing" msgstr "Razmak između slova" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:125 msgid "inspect.attributes.typography.line-height" msgstr "Visina linije" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:143 msgid "inspect.attributes.typography.text-decoration" msgstr "Dekoracija teksta" -#, fuzzy +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:145 msgid "inspect.attributes.typography.text-decoration.none" msgstr "Nikakav" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:146 msgid "inspect.attributes.typography.text-decoration.strikethrough" msgstr "Precrtano" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:147 msgid "inspect.attributes.typography.text-decoration.underline" msgstr "Podcrtano" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:156 msgid "inspect.attributes.typography.text-transform" msgstr "Transformiraj tekst" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:158 msgid "inspect.attributes.typography.text-transform.lowercase" msgstr "Mala slova" -#, fuzzy +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:159 msgid "inspect.attributes.typography.text-transform.none" msgstr "Nikakav" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:160 msgid "inspect.attributes.typography.text-transform.titlecase" msgstr "Velika i mala slova" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:161 msgid "inspect.attributes.typography.text-transform.uppercase" msgstr "Velika slova" -#: src/app/main/ui/inspect/right_sidebar.cljs +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:125 msgid "inspect.tabs.code" msgstr "Kod" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:98 msgid "inspect.tabs.code.selected.circle" msgstr "Krug" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:99 msgid "inspect.tabs.code.selected.component" msgstr "Komponenta" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:100 msgid "inspect.tabs.code.selected.curve" msgstr "Krivulja" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:101 msgid "inspect.tabs.code.selected.frame" msgstr "Ploča" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:102 msgid "inspect.tabs.code.selected.group" msgstr "Grupa" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:103 msgid "inspect.tabs.code.selected.image" msgstr "Slika" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:104 msgid "inspect.tabs.code.selected.mask" msgstr "Maska" -#: src/app/main/ui/inspect/right_sidebar.cljs +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:93 msgid "inspect.tabs.code.selected.multiple" msgstr "%s Označeno" -#, fuzzy +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:105 msgid "inspect.tabs.code.selected.path" msgstr "Path" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:106 msgid "inspect.tabs.code.selected.rect" msgstr "Pravokutnik" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:107 msgid "inspect.tabs.code.selected.svg-raw" msgstr "SVG" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:108 msgid "inspect.tabs.code.selected.text" msgstr "Tekst" -#: src/app/main/ui/inspect/right_sidebar.cljs +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:115 msgid "inspect.tabs.info" msgstr "Informacija" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:158 msgid "label.shortcuts" msgstr "Prečaci" +#: src/app/main/ui/dashboard/import.cljs:527 msgid "labels.accept" msgstr "Prihvati" -#, fuzzy +#: src/app/main/ui/dashboard/fonts.cljs:175 msgid "labels.add-custom-font" msgstr "Dodajte custom font" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:120, src/app/main/ui/dashboard/team.cljs:276, src/app/main/ui/dashboard/team.cljs:519, src/app/main/ui/dashboard/team.cljs:549, src/app/main/ui/onboarding/team_choice.cljs:67 msgid "labels.admin" msgstr "Administrator" #: src/app/main/ui/workspace/comments.cljs +#, unused msgid "labels.all" msgstr "Sve" +#: src/app/main/ui/auth.cljs:37 msgid "labels.and" msgstr "i" +#: src/app/main/ui/onboarding/team_choice.cljs:162 msgid "labels.back" msgstr "Povratak" -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:59 msgid "labels.bad-gateway.desc-message" msgstr "" "Čini se da moraš malo pričekati i pokušati ponovno; vršimo mala održavanja " "naših servera." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:58 msgid "labels.bad-gateway.main-message" msgstr "Loš Gateway" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/data/common.cljs:112, src/app/main/ui/dashboard/change_owner.cljs:69, src/app/main/ui/dashboard/import.cljs:514, src/app/main/ui/dashboard/team.cljs:868, src/app/main/ui/delete_shared.cljs:35, src/app/main/ui/export.cljs:164, src/app/main/ui/export.cljs:460, src/app/main/ui/settings/access_tokens.cljs:188, src/app/main/ui/viewer/share_link.cljs:203, src/app/main/ui/workspace/sidebar/assets/groups.cljs:149 msgid "labels.cancel" msgstr "Odbaci" +#: src/app/main/ui/dashboard/projects.cljs:93, src/app/main/ui/export.cljs:478, src/app/main/ui/settings/access_tokens.cljs:183, src/app/main/ui/viewer/login.cljs:77, src/app/main/ui/viewer/share_link.cljs:174, src/app/main/ui/workspace/libraries.cljs:522 msgid "labels.close" msgstr "Zatvori" -#: src/app/main/ui/dashboard/comments.cljs +#: src/app/main/ui/dashboard/comments.cljs:104, src/app/main/ui/viewer/comments.cljs:70, src/app/main/ui/workspace/comments.cljs:126 msgid "labels.comments" msgstr "Komentari" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:985, src/app/main/ui/workspace/main_menu.cljs:110 msgid "labels.community" msgstr "Zajenica" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:103 msgid "labels.confirm-password" msgstr "Potvrdi lozinku" +#: src/app/main/ui/dashboard/import.cljs:520, src/app/main/ui/export.cljs:465, src/app/main/ui/onboarding/newsletter.cljs:101 msgid "labels.continue" msgstr "Nastavi" +#, unused msgid "labels.continue-with" msgstr "Nastavi sa" +#: src/app/main/ui/viewer/login.cljs:75 msgid "labels.continue-with-penpot" msgstr "Možeš nastaviti s Penpot računom" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:157, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:190 msgid "labels.create" msgstr "Kreiraj" -#: src/app/main/ui/dashboard/team_form.cljs, -#: src/app/main/ui/dashboard/team_form.cljs +#: src/app/main/ui/dashboard/team_form.cljs:101, src/app/main/ui/dashboard/team_form.cljs:121 msgid "labels.create-team" msgstr "Kreiraj novi tim" -#: src/app/main/ui/dashboard/team_form.cljs +#: src/app/main/ui/dashboard/team_form.cljs:113 msgid "labels.create-team.placeholder" msgstr "Unesi ime novog tima" +#, unused msgid "labels.custom-fonts" msgstr "Custom fontovi" -#: src/app/main/ui/settings/sidebar.cljs +#: src/app/main/ui/settings/sidebar.cljs:73 msgid "labels.dashboard" msgstr "Nadzorna ploča" -#: src/app/main/ui/dashboard/project_menu.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:306, src/app/main/ui/dashboard/fonts.cljs:255, src/app/main/ui/dashboard/fonts.cljs:332, src/app/main/ui/dashboard/fonts.cljs:346, src/app/main/ui/dashboard/project_menu.cljs:115, src/app/main/ui/dashboard/team.cljs:904, src/app/main/ui/settings/access_tokens.cljs:209, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:209 msgid "labels.delete" msgstr "Izbriši" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:357 msgid "labels.delete-comment" msgstr "Izbriši komentar" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:354 msgid "labels.delete-comment-thread" msgstr "Izbriši thread" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:648 msgid "labels.delete-invitation" msgstr "Izbriši pozivnicu" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:262 msgid "labels.delete-multi-files" msgstr "Izbriši %s datoteka" -#: src/app/main/ui/dashboard/projects.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs, -#: src/app/main/ui/dashboard/files.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:28, src/app/main/ui/dashboard/files.cljs:72, src/app/main/ui/dashboard/files.cljs:156, src/app/main/ui/dashboard/projects.cljs:220, src/app/main/ui/dashboard/projects.cljs:224, src/app/main/ui/dashboard/sidebar.cljs:791 msgid "labels.drafts" msgstr "Nacrti" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:350, src/app/main/ui/dashboard/fonts.cljs:252, src/app/main/ui/dashboard/team.cljs:902, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:205 msgid "labels.edit" msgstr "Uredi" +#, unused msgid "labels.edit-file" msgstr "Uredi datoteku" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:118, src/app/main/ui/dashboard/team.cljs:279, src/app/main/ui/dashboard/team.cljs:520, src/app/main/ui/dashboard/team.cljs:553, src/app/main/ui/onboarding/team_choice.cljs:66 msgid "labels.editor" msgstr "Urednik" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:661 msgid "labels.expired-invitation" msgstr "Isteklo" +#: src/app/main/ui/export.cljs:173 msgid "labels.export" msgstr "Izvezi" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:51 msgid "labels.feedback-disabled" msgstr "Povratne informacije onemogućene" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:42 msgid "labels.feedback-sent" msgstr "Povratne informacije poslane" -#, fuzzy +#: src/app/main/ui/dashboard/fonts.cljs:412 msgid "labels.font-family" msgstr "Font" +#, unused msgid "labels.font-providers" msgstr "Pružatelji fontova" +#: src/app/main/ui/dashboard/fonts.cljs:413 msgid "labels.font-variants" msgstr "Stilovi" +#: src/app/main/ui/dashboard/fonts.cljs:52, src/app/main/ui/dashboard/sidebar.cljs:811 msgid "labels.fonts" msgstr "Fontovi" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:1015, src/app/main/ui/workspace/main_menu.cljs:142 msgid "labels.github-repo" msgstr "Github repozitorij" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/settings/sidebar.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:1032, src/app/main/ui/settings/sidebar.cljs:113, src/app/main/ui/workspace/main_menu.cljs:171 msgid "labels.give-feedback" msgstr "Daj povratnu informaciju" +#: src/app/main/ui/auth/recovery_request.cljs:110, src/app/main/ui/auth/register.cljs:285, src/app/main/ui/viewer/login.cljs:117 msgid "labels.go-back" msgstr "Povratak" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:978, src/app/main/ui/workspace/main_menu.cljs:102 msgid "labels.help-center" msgstr "Centar za pomoć" -#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/comments.cljs:103, src/app/main/ui/workspace/comments.cljs:67 msgid "labels.hide-resolved-comments" msgstr "Sakrij riješene komentare" +#: src/app/main/ui/dashboard/fonts.cljs:410 msgid "labels.installed-fonts" msgstr "Instalirani fontovi" -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:144 msgid "labels.internal-error.desc-message" msgstr "" "Nešto loše se dogodilo. Molimo pokušaj ponovno i ako problem potraje, " "kontaktiraj podršku." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:143 msgid "labels.internal-error.main-message" msgstr "Interna pogreška" -#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:516, src/app/main/ui/dashboard/team.cljs:89, src/app/main/ui/dashboard/team.cljs:97, src/app/main/ui/dashboard/team.cljs:708 msgid "labels.invitations" msgstr "Pozivnice" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:51 msgid "labels.language" msgstr "Jezik" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:1008, src/app/main/ui/workspace/main_menu.cljs:134 msgid "labels.libraries-and-templates" msgstr "Biblioteke i predlošci" +#: src/app/main/ui/viewer/header.cljs:203 msgid "labels.log-or-sign" msgstr "Prijava ili registracija" -#: src/app/main/ui/settings.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:1040 msgid "labels.logout" msgstr "Odjava" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/team.cljs:468 msgid "labels.member" msgstr "Član" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:510, src/app/main/ui/dashboard/team.cljs:87, src/app/main/ui/dashboard/team.cljs:95 msgid "labels.members" msgstr "Članovi" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:96 msgid "labels.new-password" msgstr "Nova lozinka" -#: src/app/main/ui/workspace/comments.cljs, -#: src/app/main/ui/dashboard/comments.cljs +#: src/app/main/ui/dashboard/comments.cljs:128, src/app/main/ui/workspace/comments.cljs:161 msgid "labels.no-comments-available" msgstr "Nemaš obavijesti o komentarima na čekanju" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:694 msgid "labels.no-invitations" msgstr "Nema pozivnica." -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:696 +#, markdown msgid "labels.no-invitations-hint" msgstr "Pritisni gumb \"Pozovi u tim\" da pozoveš više članova u ovaj tim." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:50 msgid "labels.not-found.desc-message" msgstr "Ova stranica možda ne postoji ili nemaš dopuštenja za pristup." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:49 msgid "labels.not-found.main-message" msgstr "Ups!" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/projects.cljs:239, src/app/main/ui/dashboard/team.cljs:1095 msgid "labels.num-of-files" msgid_plural "labels.num-of-files" msgstr[0] "1 datoteka" msgstr[1] "%s datoteka" msgstr[2] "%s datoteka" +#: src/app/main/ui/viewer/thumbnails.cljs:80 msgid "labels.num-of-frames" msgid_plural "labels.num-of-frames" msgstr[0] "1 ploča" msgstr[1] "%s ploča" msgstr[2] "%s ploča" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1090 msgid "labels.num-of-projects" msgid_plural "labels.num-of-projects" msgstr[0] "1 projekt" msgstr[1] "%s projekata" msgstr[2] "%s projekata" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:89 msgid "labels.old-password" msgstr "Stara lozinka" #: src/app/main/ui/workspace/comments.cljs +#, unused msgid "labels.only-yours" msgstr "Samo tvoj" +#, unused msgid "labels.or" msgstr "ili" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:286, src/app/main/ui/dashboard/team.cljs:518, src/app/main/ui/dashboard/team.cljs:1076 msgid "labels.owner" msgstr "Vlasnik" -#: src/app/main/ui/settings/sidebar.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/settings/sidebar.cljs:87 msgid "labels.password" msgstr "Lozinka" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:662 msgid "labels.pending-invitation" msgstr "U tijeku" -#: src/app/main/ui/settings/sidebar.cljs +#: src/app/main/ui/settings/profile.cljs:118, src/app/main/ui/settings/sidebar.cljs:82 msgid "labels.profile" msgstr "Profil" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:784 msgid "labels.projects" msgstr "Projekti" -#: src/app/main/ui/settings/sidebar.cljs -#, fuzzy +#: src/app/main/ui/dashboard/sidebar.cljs:998, src/app/main/ui/settings/sidebar.cljs:106, src/app/main/ui/workspace/main_menu.cljs:126 msgid "labels.release-notes" msgstr "Release notes" -#: src/app/main/ui/workspace/libraries.cljs, -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/workspace/libraries.cljs, src/app/main/ui/dashboard/team.cljs +#, unused msgid "labels.remove" msgstr "Ukloni" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:316 msgid "labels.remove-member" msgstr "Ukloni člana" -#: src/app/main/ui/dashboard/sidebar.cljs, -#: src/app/main/ui/dashboard/project_menu.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:271, src/app/main/ui/dashboard/project_menu.cljs:85, src/app/main/ui/dashboard/sidebar.cljs:539, src/app/main/ui/workspace/sidebar/assets/groups.cljs:157 msgid "labels.rename" msgstr "Preimenuj" -#: src/app/main/ui/dashboard/team_form.cljs +#: src/app/main/ui/dashboard/team_form.cljs:99 msgid "labels.rename-team" msgstr "Preimenuj tim" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:645 msgid "labels.resend-invitation" msgstr "Ponovno pošalji pozivnicu" -#: src/app/main/ui/static.cljs, src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:61, src/app/main/ui/static.cljs:70, src/app/main/ui/static.cljs:148 msgid "labels.retry" msgstr "Pokušaj ponovo" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:469, src/app/main/ui/dashboard/team.cljs:709 msgid "labels.role" msgstr "Uloga" +#: src/app/main/ui/dashboard/fonts.cljs:380, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:191 msgid "labels.save" msgstr "Spremi" +#: src/app/main/ui/dashboard/fonts.cljs:415 msgid "labels.search-font" msgstr "Pretraži font" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:82 msgid "labels.send" msgstr "Pošalji" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:82 msgid "labels.sending" msgstr "Slanje…" -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:68 msgid "labels.service-unavailable.desc-message" msgstr "U programiranom smo održavanju naših sustava." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:67 msgid "labels.service-unavailable.main-message" msgstr "Usluga je nedostupna" -#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:530, src/app/main/ui/dashboard/team.cljs:88, src/app/main/ui/dashboard/team.cljs:102, src/app/main/ui/settings/options.cljs:84, src/app/main/ui/settings/sidebar.cljs:93 msgid "labels.settings" msgstr "Postavke" +#, unused msgid "labels.share-prototype" msgstr "Podijeli prototip" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:800 msgid "labels.shared-libraries" msgstr "Bibiloteke" -#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/comments.cljs:82, src/app/main/ui/workspace/comments.cljs:55, src/app/main/ui/workspace/comments.cljs:135 msgid "labels.show-all-comments" msgstr "Prikaži sve komentare" +#: src/app/main/ui/viewer/comments.cljs:115 msgid "labels.show-comments-list" msgstr "Prikaži listu komentara" -#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/comments.cljs:91, src/app/main/ui/workspace/comments.cljs:61, src/app/main/ui/workspace/comments.cljs:136 msgid "labels.show-your-comments" msgstr "Prikaži samo tvoje komentare" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:710 msgid "labels.status" msgstr "Status" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:992, src/app/main/ui/workspace/main_menu.cljs:118 msgid "labels.tutorials" msgstr "Upute" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:103 msgid "labels.update" msgstr "Ažuriraj" -#: src/app/main/ui/dashboard/team_form.cljs +#: src/app/main/ui/dashboard/team_form.cljs:120 msgid "labels.update-team" msgstr "Ažuriraj tim" +#: src/app/main/ui/dashboard/fonts.cljs:241 msgid "labels.upload" msgstr "Prenesi" +#: src/app/main/ui/dashboard/fonts.cljs:169 msgid "labels.upload-custom-fonts" msgstr "Prenesi custom fontove" +#: src/app/main/ui/dashboard/fonts.cljs:240 msgid "labels.uploading" msgstr "Prijenos…" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:123, src/app/main/ui/dashboard/team.cljs:282, src/app/main/ui/dashboard/team.cljs:521 msgid "labels.viewer" msgstr "Promatrač" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:194 msgid "labels.write-new-comment" msgstr "Napiši novi komentar" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/team.cljs:237 msgid "labels.you" msgstr "(ti)" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:968 msgid "labels.your-account" msgstr "Tvoj korisnički račun" -#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs +#: src/app/main/data/media.cljs:49, src/app/main/data/workspace/media.cljs:223, src/app/main/data/workspace/media.cljs:453 msgid "media.loading" msgstr "Učitavanje slike…" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/data/common.cljs:113 msgid "modals.add-shared-confirm.accept" msgstr "Dodaj kao zajedničku biblioteku" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/data/common.cljs:111 msgid "modals.add-shared-confirm.hint" msgstr "" "Nakon dodavanja kao zajedničku biblioteku, stavke ove biblioteke datoteka " "bit će dostupni za korištenje među ostalim tvojim datotekama." -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/data/common.cljs:110 msgid "modals.add-shared-confirm.message" msgstr "Dodajte “%s” kao zajedničku biblioteku" -#: src/app/main/ui/workspace/nudge.cljs -#, fuzzy +#: src/app/main/ui/workspace/nudge.cljs:60 msgid "modals.big-nudge" msgstr "Big nudge" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:127 msgid "modals.change-email.confirm-email" msgstr "Potvrdite novi e-mail" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:114 msgid "modals.change-email.info" msgstr "" "Poslat ćemo e-mail na tvoj trenutni e-mail \"%s\" kako bismo potvrdili tvoj " "identitet." -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:119 msgid "modals.change-email.new-email" msgstr "Novi e-mail" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:136 msgid "modals.change-email.submit" msgstr "Promijeni e-mail" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:107 msgid "modals.change-email.title" msgstr "Promijeni svoj e-mail" -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:59 msgid "modals.delete-account.cancel" msgstr "Otkaži i zadrži moj račun" -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:64 msgid "modals.delete-account.confirm" msgstr "Da, obriši moj račun" -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:53 msgid "modals.delete-account.info" msgstr "Uklanjanjem računa izgubit ćeš sve svoje trenutne projekte i arhive." -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:46 msgid "modals.delete-account.title" msgstr "Jeste li siguran/na da želiš izbrisati svoj račun?" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:298 msgid "modals.delete-comment-thread.accept" msgstr "Obriši razgovor" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:297 msgid "modals.delete-comment-thread.message" msgstr "" "Jesi li siguran/na da želiš izbrisati ovaj razgovor? Svi komentari u ovoj " "temi biti će izbrisani." -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:296 msgid "modals.delete-comment-thread.title" msgstr "Izbriši razgovor" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:123 msgid "modals.delete-file-confirm.accept" msgstr "Izbriši datoteku" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:122 msgid "modals.delete-file-confirm.message" msgstr "Jesi li siguran/na da želiš izbrisati ovu datoteku?" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:121 msgid "modals.delete-file-confirm.title" msgstr "Brisanje datoteke" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:117 msgid "modals.delete-file-multi-confirm.accept" msgstr "Izbriši datoteke" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:116 msgid "modals.delete-file-multi-confirm.message" msgstr "Jesi li siguran/na da želiš izbrisati %s datoteke?" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:115 msgid "modals.delete-file-multi-confirm.title" msgstr "Brisanje %s datoteka" +#: src/app/main/ui/dashboard/fonts.cljs:345 msgid "modals.delete-font-variant.message" msgstr "" "Jesi li siguran/na da želiš izbrisati ovaj stil fonta? Neće se učitati ako " "se koristi u datoteci." +#: src/app/main/ui/dashboard/fonts.cljs:344 msgid "modals.delete-font-variant.title" msgstr "Brisanje fonta" +#: src/app/main/ui/dashboard/fonts.cljs:331 msgid "modals.delete-font.message" msgstr "" "Jesi li siguran/na da želiš izbrisati ovaj font? Neće se učitati ako se " "koristi u datoteci." +#: src/app/main/ui/dashboard/fonts.cljs:330 msgid "modals.delete-font.title" msgstr "Brisanje fonta" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs +#: src/app/main/ui/workspace/context_menu.cljs:522, src/app/main/ui/workspace/sidebar/sitemap.cljs:45 msgid "modals.delete-page.body" msgstr "Jesi li siguran/na da želiš izbrisati ovu stranicu?" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs +#: src/app/main/ui/workspace/context_menu.cljs:521, src/app/main/ui/workspace/sidebar/sitemap.cljs:44 msgid "modals.delete-page.title" msgstr "Brisanje stranice" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:69 msgid "modals.delete-project-confirm.accept" msgstr "Brisanje projekta" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:68 msgid "modals.delete-project-confirm.message" msgstr "Jesi li siguran/na da želiš izbrisati ovaj projekt?" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:67 msgid "modals.delete-project-confirm.title" msgstr "Brisanje projekta" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:51 msgid "modals.delete-shared-confirm.accept" msgid_plural "modals.delete-shared-confirm.accept" msgstr[0] "Izbriši datoteku" msgstr[1] "Izbriši datoteke" msgstr[2] "Izbriši datoteke" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:46 msgid "modals.delete-shared-confirm.message" msgid_plural "modals.delete-shared-confirm.message" msgstr[0] "Jesi li siguran/na da želiš izbrisati ovu datoteku?" msgstr[1] "Jesi li siguran/na da želiš izbrisati ove datoteke?" msgstr[2] "Jesi li siguran/na da želiš izbrisati ove datoteke?" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:41 msgid "modals.delete-shared-confirm.title" msgid_plural "modals.delete-shared-confirm.title" msgstr[0] "Brisanje datoteke" msgstr[1] "Brisanje datoteka" msgstr[2] "Brisanje datoteka" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:435 msgid "modals.delete-team-confirm.accept" msgstr "Brisanje tima" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:434 msgid "modals.delete-team-confirm.message" msgstr "" "Jesi li siguran/na da želiš izbrisati ovaj tim? Svi projekti i datoteke " "povezane s timom biti će trajno izbrisane." -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:433 msgid "modals.delete-team-confirm.title" msgstr "Brisanje tima" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:427 msgid "modals.delete-team-member-confirm.accept" msgstr "Brisanje člana" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:426 msgid "modals.delete-team-member-confirm.message" msgstr "Jesi li siguran/na da želiš izbrisati ovog člana iz tima?" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:425 msgid "modals.delete-team-member-confirm.title" msgstr "Brisanje člana tima" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:218 msgid "modals.invite-member-confirm.accept" msgstr "Pošalji pozivnicu" +#: src/app/main/ui/dashboard/team.cljs:213, src/app/main/ui/onboarding/team_choice.cljs:156 msgid "modals.invite-member.emails" msgstr "E-mail, odvojeno zarezom" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:190 msgid "modals.invite-team-member.title" msgstr "Pozovi članove u tim" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:423, src/app/main/ui/dashboard/team.cljs:393 msgid "modals.leave-and-close-confirm.hint" msgstr "" "Budući da si jedini član ovog tima, tim će biti izbrisan zajedno sa svojim " "projektima i datotekama." -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:422, src/app/main/ui/dashboard/team.cljs:392 msgid "modals.leave-and-close-confirm.message" msgstr "Jesi li siguran/na da želiš napustiti tim %s?" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/change_owner.cljs:55 msgid "modals.leave-and-reassign.hint1" msgstr "" "Ti si vlasnik ovog tima. Prije odlaska odaberi drugog člana kojeg želiš " "promovirati u vlasnika." -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/change_owner.cljs:78 msgid "modals.leave-and-reassign.promote-and-leave" msgstr "Promoviraj i napusti" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/change_owner.cljs:34 msgid "modals.leave-and-reassign.select-member-to-promote" msgstr "Odaberi člana za promociju" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/change_owner.cljs:49 msgid "modals.leave-and-reassign.title" msgstr "Prije nego odeš" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:402, src/app/main/ui/dashboard/sidebar.cljs:424, src/app/main/ui/dashboard/team.cljs:394, src/app/main/ui/dashboard/team.cljs:416 msgid "modals.leave-confirm.accept" msgstr "Napusti tim" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:401, src/app/main/ui/dashboard/team.cljs:415 msgid "modals.leave-confirm.message" msgstr "Jesi li siguran/na da želiš napustiti ovaj tim?" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:400, src/app/main/ui/dashboard/sidebar.cljs:421, src/app/main/ui/dashboard/team.cljs:391, src/app/main/ui/dashboard/team.cljs:414 msgid "modals.leave-confirm.title" msgstr "Napuštanje tima" -#: src/app/main/ui/workspace/nudge.cljs -#, fuzzy +#: src/app/main/ui/workspace/main_menu.cljs:266, src/app/main/ui/workspace/nudge.cljs:47 msgid "modals.nudge-title" msgstr "Nudge amount" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:340 msgid "modals.promote-owner-confirm.accept" msgstr "Prenesi vlasništvo" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:339 msgid "modals.promote-owner-confirm.hint" msgstr "" "Ako preneseš vlasništvo, promijenit ćeš svoju ulogu u Administrator, čime " "ćeš izgubiti neka dopuštenja za ovaj tim. " -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:338 msgid "modals.promote-owner-confirm.message" msgstr "" "Ti si trenutni vlasnik ovog tima. Jesi li siguran/na da %s želiš postaviti " "za novog vlasnika tima?" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:337 msgid "modals.promote-owner-confirm.title" msgstr "Novi vlasnik tima" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "modals.remove-shared-confirm.accept" msgstr "Ukloni kao zajedničku biblioteku" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs -#, fuzzy +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "modals.remove-shared-confirm.hint" msgstr "" "Nakon uklanjanja kao zajedničke biblioteke, biblioteka datoteka ove " "datoteke više neće biti dostupna za korištenje među tvojim ostalim " "datotekama." -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "modals.remove-shared-confirm.message" msgstr "Ukloni “%s” kao zajedničku biblioteku" -#: src/app/main/ui/workspace/nudge.cljs +#: src/app/main/ui/workspace/nudge.cljs:53 msgid "modals.small-nudge" msgstr "Mali pomak" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:52 msgid "modals.unpublish-shared-confirm.accept" msgstr "Poništi objavu" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:47 msgid "modals.unpublish-shared-confirm.message" msgid_plural "modals.unpublish-shared-confirm.message" msgstr[0] "Jesi li siguran/na da želiš poništiti objavu ove biblioteke?" msgstr[1] "Jesi li siguran/na da želiš poništiti objavu ovih biblioteka?" msgstr[2] "Jesi li siguran/na da želiš poništiti objavu ovih biblioteka?" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:42 msgid "modals.unpublish-shared-confirm.title" msgid_plural "modals.unpublish-shared-confirm.title" msgstr[0] "Poništi objavu biblioteke" msgstr[1] "Poništi objavu biblioteka" msgstr[2] "Poništi objavu biblioteka" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#, unused msgid "modals.update-remote-component-in-bulk.hint" msgstr "" "Upravo ćeš ažurirati komponente u zajedničkoj biblioteci. To može utjecati " "na druge datoteke koje ga koriste." -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#, unused msgid "modals.update-remote-component-in-bulk.message" msgstr "Ažuriraj komponente u zajedničkoj biblioteci" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:380 msgid "modals.update-remote-component.accept" msgstr "Ažuriraj" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:379 msgid "modals.update-remote-component.cancel" msgstr "Poništi" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:378 msgid "modals.update-remote-component.hint" msgstr "" "Upravo ćeš ažurirati komponentu u zajedničkoj biblioteci. To može utjecati " "na druge datoteke koje ga koriste." -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:377 msgid "modals.update-remote-component.message" msgstr "Ažuriraj komponentu u zajedničkoj biblioteci" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:154, src/app/main/ui/dashboard/team.cljs:595 msgid "notifications.invitation-email-sent" msgstr "Pozivnica je uspješno poslana" -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:24 msgid "notifications.profile-deletion-not-allowed" msgstr "" "Ne možeš izbrisati svoj profil. Ponovno dodijeli svoje timove prije " "nastavka." -#: src/app/main/ui/settings/profile.cljs, src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:29, src/app/main/ui/settings/profile.cljs:35 msgid "notifications.profile-saved" msgstr "Profil je uspješno spremljen!" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:63 msgid "notifications.validation-email-sent" msgstr "E-mail za potvrdu poslana je na %s. Provjeri e-email!" +#, unused msgid "onboarding-v2.before-start.desc1" msgstr "" "Postoji mnogo dostupnih resursa koji će ti pomoći da počneš koristiti " "Penpot, poput korisničkog vodiča i našeg Youtube kanala." +#, unused msgid "onboarding-v2.before-start.desc2" msgstr "" "Detaljne informacije o tome kako koristiti Penpot. Od izrade prototipova do " "organiziranja ili dijeljenja dizajna." +#, unused msgid "onboarding-v2.before-start.desc2.title" msgstr "Korisnički priručnik" +#, unused msgid "onboarding-v2.before-start.desc3" msgstr "Možeš gledati naše upute i upute koje je izradila naša zajednica." +#, unused msgid "onboarding-v2.before-start.desc3.title" msgstr "Video tutorijali" +#, unused msgid "onboarding-v2.before-start.title" msgstr "Prije nego počneš" +#, unused msgid "onboarding-v2.welcome.desc1" msgstr "" "Penpot je Open Source i izradio ga je Kaleidos kao i zajednica, gdje mnogi " "ljudi već pomažu jedni drugima. Svi mogu surađivati na:" +#, unused msgid "onboarding-v2.welcome.desc2" msgstr "" "Javni prostor za učenje, dijeljenje i raspravu o Penpotu, njegovoj " "sadašnjosti i budućnosti s cijelom zajednicom i glavnim timom Penpota." +#, unused msgid "onboarding-v2.welcome.desc2.title" msgstr "Sudjelovanje u Community-u" +#, unused msgid "onboarding-v2.welcome.desc3" msgstr "" "Gdje ćete pronaći kako surađivati s prijevodima, zahtjevima za unapređenje, " "temeljnim doprinosima, potragom za bugovima…" +#, unused msgid "onboarding-v2.welcome.desc3.title" msgstr "Vodič za doprinos" +#: src/app/main/ui/onboarding/team_choice.cljs:31 msgid "onboarding-v2.welcome.title" msgstr "Dobrodošli u Penpot!" +#: src/app/main/ui/onboarding/team_choice.cljs:215 msgid "onboarding.choice.team-up.create-team-desc" msgstr "Nakon što imenuješ svoj tim, moći ćeš pozvati ljude da se pridruže." +#: src/app/main/ui/onboarding/team_choice.cljs:224 msgid "onboarding.choice.team-up.create-team-placeholder" msgstr "Unesi naziv tima" +#: src/app/main/ui/dashboard/projects.cljs:89, src/app/main/ui/onboarding/team_choice.cljs:140 msgid "onboarding.choice.team-up.invite-members" msgstr "Pozovi članove" +#: src/app/main/ui/onboarding/team_choice.cljs:141 msgid "onboarding.choice.team-up.invite-members-info" msgstr "" "Ne zaboravi uključiti sve. Programere, dizajnere, menadžere... raznolikost " "se isplati :)" +#: src/app/main/ui/dashboard/team.cljs:202, src/app/main/ui/onboarding/team_choice.cljs:146 msgid "onboarding.choice.team-up.roles" msgstr "Pozovi s ulogom:" +#, unused msgid "onboarding.newsletter.accept" msgstr "Da, pretplati se" +#: src/app/main/ui/onboarding/newsletter.cljs:40 msgid "onboarding.newsletter.acceptance-message" msgstr "Tvoj zahtjev za pretplatu je poslan, poslat ćemo ti e-mail da ga potvrdiš." +#: src/app/main/ui/onboarding/newsletter.cljs:95 msgid "onboarding.newsletter.policy" msgstr "Politika privatnosti." +#: src/app/main/ui/onboarding/newsletter.cljs:60 msgid "onboarding.newsletter.title" msgstr "Želiš primati Penpot novostii?" +#: src/app/main/ui/onboarding/team_choice.cljs:213 msgid "onboarding.team-modal.create-team" msgstr "Kreiraj tim" +#: src/app/main/ui/onboarding/team_choice.cljs:35 msgid "onboarding.team-modal.create-team-desc" msgstr "" "Tim ti omogućuje suradnju s drugim Penpot korisnicima koji rade na istim " "datotekama i projektima." +#: src/app/main/ui/onboarding/team_choice.cljs:40 msgid "onboarding.team-modal.create-team-feature-1" msgstr "Neograničen broj datoteka i projekata" +#: src/app/main/ui/onboarding/team_choice.cljs:44 msgid "onboarding.team-modal.create-team-feature-2" msgstr "Izdanje za više igrača" +#: src/app/main/ui/onboarding/team_choice.cljs:48 msgid "onboarding.team-modal.create-team-feature-3" msgstr "Upravljanje ulogama" +#: src/app/main/ui/onboarding/team_choice.cljs:52 msgid "onboarding.team-modal.create-team-feature-4" msgstr "Neograničen broj članova" +#: src/app/main/ui/onboarding/team_choice.cljs:56 msgid "onboarding.team-modal.create-team-feature-5" msgstr "100% besplatno!" +#: src/app/main/ui/onboarding/templates.cljs:78 msgid "onboarding.templates.subtitle" msgstr "Evo nekoliko predložaka." +#: src/app/main/ui/onboarding/templates.cljs:77 msgid "onboarding.templates.title" msgstr "Počni dizajnirati" +#, unused msgid "onboarding.welcome.alt" msgstr "Penpot" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:99 msgid "profile.recovery.go-to-login" msgstr "Idi na prijavu" -#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs +#: src/app/main/ui/viewer/inspect/exports.cljs:147, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:631, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:137, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:148, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:188, src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:158, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:399, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:410, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:430, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:441, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:458, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:472, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:309, src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:183, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:373, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:389, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:245, src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:172 msgid "settings.multiple" msgstr "Izmješano" # SECTIONS +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:414 msgid "shortcut-section.basics" msgstr "Osnove" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:420 msgid "shortcut-section.dashboard" msgstr "Nadzorna ploča" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:423 msgid "shortcut-section.viewer" msgstr "Gledatelj" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:417 msgid "shortcut-section.workspace" msgstr "Radni prostor" # SUBSECTIONS +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:56 msgid "shortcut-subsection.alignment" msgstr "Poravnanje" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:57 msgid "shortcut-subsection.edit" msgstr "Uredi" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:58 msgid "shortcut-subsection.general-dashboard" msgstr "Generičko" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:59 msgid "shortcut-subsection.general-viewer" msgstr "Generičko" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:60 msgid "shortcut-subsection.main-menu" msgstr "Glavni meni" -#, fuzzy +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:61 msgid "shortcut-subsection.modify-layers" msgstr "Izmijeni layere" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:62 msgid "shortcut-subsection.navigation-dashboard" msgstr "Navigacija" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:63 msgid "shortcut-subsection.navigation-viewer" msgstr "Navigacija" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:64 msgid "shortcut-subsection.navigation-workspace" msgstr "Navigacija" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:65 msgid "shortcut-subsection.panels" msgstr "Paneli" -#, fuzzy +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:66 msgid "shortcut-subsection.path-editor" msgstr "Paths" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:67 msgid "shortcut-subsection.shape" msgstr "Oblici" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:69 msgid "shortcut-subsection.tools" msgstr "Alati" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:70 msgid "shortcut-subsection.zoom-viewer" msgstr "Zoom" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:71 msgid "shortcut-subsection.zoom-workspace" msgstr "Zoom" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:72 msgid "shortcuts.add-comment" msgstr "Komentari" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:73 msgid "shortcuts.add-node" msgstr "Dodaj čvor" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:74 msgid "shortcuts.align-bottom" msgstr "Poravnaj dno" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:76 msgid "shortcuts.align-hcenter" msgstr "Poravnaj sredinu vodoravno" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:78 msgid "shortcuts.align-left" msgstr "Poravnaj lijevo" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:79 msgid "shortcuts.align-right" msgstr "Poravnaj desno" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:80 msgid "shortcuts.align-top" msgstr "Poravnaj vrh" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:81 msgid "shortcuts.align-vcenter" msgstr "Poravnaj sredinu okomito" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:82 msgid "shortcuts.artboard-selection" msgstr "Kreiraj ploču iz odabira" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:84 msgid "shortcuts.bool-difference" msgstr "Boolean razlika" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:85 msgid "shortcuts.bool-exclude" msgstr "Boolean isključenje" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:86 msgid "shortcuts.bool-intersection" msgstr "Boolean presijek" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:87 msgid "shortcuts.bool-union" msgstr "Boolean unija" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:88 msgid "shortcuts.bring-back" msgstr "Premijesti u pozadinu" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:89 msgid "shortcuts.bring-backward" msgstr "Premiijesti nazad" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:90 msgid "shortcuts.bring-forward" msgstr "Premijesti naprijed" -#, fuzzy +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:91 msgid "shortcuts.bring-front" msgstr "Premijesti skroz naprijed" -#, fuzzy +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:92 msgid "shortcuts.clear-undo" msgstr "Obriši povrat" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:93 msgid "shortcuts.copy" msgstr "Kopiraj" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:94 msgid "shortcuts.create-component" msgstr "Kreiraj komponentu" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:95 msgid "shortcuts.create-new-project" msgstr "Kreiraj novo" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:96 msgid "shortcuts.cut" msgstr "Izreži" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:97 msgid "shortcuts.decrease-zoom" msgstr "Zoom out" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:98 msgid "shortcuts.delete" msgstr "Izbriši" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:99 msgid "shortcuts.delete-node" msgstr "Izbriši čvor" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:100 msgid "shortcuts.detach-component" msgstr "Odvoji komponentu" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:101 msgid "shortcuts.draw-curve" msgstr "Krivulja" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:102 msgid "shortcuts.draw-ellipse" msgstr "Elipsa" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:103 msgid "shortcuts.draw-frame" msgstr "Panel" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:104 msgid "shortcuts.draw-nodes" msgstr "Ucrtaj put" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:105 msgid "shortcuts.draw-path" msgstr "Put" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:106 msgid "shortcuts.draw-rect" msgstr "Pravokutnik" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:107 msgid "shortcuts.draw-text" msgstr "Tekst" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:108 msgid "shortcuts.duplicate" msgstr "Dupliciraj" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:109 msgid "shortcuts.escape" msgstr "Poništi" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:110 msgid "shortcuts.export-shapes" msgstr "Izvezi oblike" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:111 msgid "shortcuts.fit-all" msgstr "Zumiraj da stane sve" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:112 msgid "shortcuts.flip-horizontal" msgstr "Okreni vodoravno" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:113 msgid "shortcuts.flip-vertical" msgstr "Okreni okomito" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:116 msgid "shortcuts.go-to-drafts" msgstr "Idi na nacrte" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:117 msgid "shortcuts.go-to-libs" msgstr "Idi na zajedničke biblioteke" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:118 msgid "shortcuts.go-to-search" msgstr "Traži" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:119 msgid "shortcuts.group" msgstr "Grupiraj" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:120 msgid "shortcuts.h-distribute" msgstr "Distribuiraj vodoravno" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:121 msgid "shortcuts.hide-ui" msgstr "Prikaži/sakrij UI" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:122 msgid "shortcuts.increase-zoom" msgstr "Zoom in" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:123 msgid "shortcuts.insert-image" msgstr "Umetni sliku" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:125 msgid "shortcuts.join-nodes" msgstr "Spoji čvorove" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:131 msgid "shortcuts.make-corner" msgstr "Izradi rub" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:132 msgid "shortcuts.make-curve" msgstr "Izradi krivulju" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:133 msgid "shortcuts.mask" msgstr "Maskiraj" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:134 msgid "shortcuts.merge-nodes" msgstr "Spoji čvorove" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:135 msgid "shortcuts.move" msgstr "Premijesti" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:136 msgid "shortcuts.move-fast-down" msgstr "Premijesti brzo dolje" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:137 msgid "shortcuts.move-fast-left" msgstr "Premijesti brzo lijevo" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:138 msgid "shortcuts.move-fast-right" msgstr "Premijesti brzo desno" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:139 msgid "shortcuts.move-fast-up" msgstr "Premijesti brzo gore" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:140 msgid "shortcuts.move-nodes" msgstr "Premijesti čvor" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:141 msgid "shortcuts.move-unit-down" msgstr "Premijesti dolje" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:142 msgid "shortcuts.move-unit-left" msgstr "Premijesti lijevo" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:143 msgid "shortcuts.move-unit-right" msgstr "Premijesti desno" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:144 msgid "shortcuts.move-unit-up" msgstr "Premijesti gore" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:145 msgid "shortcuts.next-frame" msgstr "Slijedeća ploča" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:516 msgid "shortcuts.not-found" msgstr "Nema pronađenih prečaca" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:146 msgid "shortcuts.opacity-0" msgstr "Postavi neprozirnost na 100%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:147 msgid "shortcuts.opacity-1" msgstr "Postavi neprozirnost na 10%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:148 msgid "shortcuts.opacity-2" msgstr "Postavi neprozirnost na 20%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:149 msgid "shortcuts.opacity-3" msgstr "Postavi neprozirnost na 30%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:150 msgid "shortcuts.opacity-4" msgstr "Postavi neprozirnost na 40%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:151 msgid "shortcuts.opacity-5" msgstr "Postavi neprozirnost na 50%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:152 msgid "shortcuts.opacity-6" msgstr "Postavi neprozirnost na 60%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:153 msgid "shortcuts.opacity-7" msgstr "Postavi neprozirnost na 70%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:154 msgid "shortcuts.opacity-8" msgstr "Postavi neprozirnost na 80%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:155 msgid "shortcuts.opacity-9" msgstr "Postavi neprozirnost na 90%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:156 msgid "shortcuts.open-color-picker" msgstr "Birač boja" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:157 msgid "shortcuts.open-comments" msgstr "Idi na odjeljak s komentarima" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:158 msgid "shortcuts.open-dashboard" msgstr "Idi na nadzornu ploču" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:160 msgid "shortcuts.open-interactions" msgstr "Idi na odjeljak interakcija" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:161 msgid "shortcuts.open-viewer" msgstr "Idi na odjeljak interakcija gledatelja" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:162 msgid "shortcuts.open-workspace" msgstr "Idi na radni prostor" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:260 msgid "shortcuts.or" msgstr " ili " +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:163 msgid "shortcuts.paste" msgstr "Zaljepi" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:164 msgid "shortcuts.prev-frame" msgstr "Prethodna ploča" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:165 msgid "shortcuts.redo" msgstr "Ponovi" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:166 msgid "shortcuts.reset-zoom" msgstr "Resetiraj zoom" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:168 msgid "shortcuts.search-placeholder" msgstr "Pretraži prečace" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:169 msgid "shortcuts.select-all" msgstr "Označi sve" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:173 msgid "shortcuts.separate-nodes" msgstr "Posebni čvorovi" -#, fuzzy +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:174 msgid "shortcuts.show-pixel-grid" msgstr "Prikaži/sakrij \"pixel grid\"" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:175 msgid "shortcuts.show-shortcuts" msgstr "Prikaži/sakrij prečace" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:176 msgid "shortcuts.snap-nodes" msgstr "Priključi na čvorove" -#, fuzzy +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:177 msgid "shortcuts.snap-pixel-grid" msgstr "Priključi na \"pixel grid\"" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:178 msgid "shortcuts.start-editing" msgstr "Počni uređivanje" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:179 msgid "shortcuts.start-measure" msgstr "Počni mjerenje" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:180 msgid "shortcuts.stop-measure" msgstr "Zaustavi mjerenje" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:185 msgid "shortcuts.thumbnail-set" msgstr "Postavi sličice" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:496, src/app/main/ui/workspace/sidebar/shortcuts.cljs:505 msgid "shortcuts.title" msgstr "Prečaci na tipkovnici" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:186 msgid "shortcuts.toggle-alignment" msgstr "Promijena dinamičkog poravnanja" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:187 msgid "shortcuts.toggle-assets" msgstr "Promijena stavaka" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:188 msgid "shortcuts.toggle-colorpalette" msgstr "Promijena palete boja" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:189 msgid "shortcuts.toggle-focus-mode" msgstr "Promijena fokus moda" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:190 msgid "shortcuts.toggle-fullscreen" msgstr "Promijeni cijeli zaslon" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:192 msgid "shortcuts.toggle-history" msgstr "Promijena povijesti" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:193 msgid "shortcuts.toggle-layers" msgstr "Promijena layera" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:196 msgid "shortcuts.toggle-lock" msgstr "Zaključaj odabrano" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:197 msgid "shortcuts.toggle-lock-size" msgstr "Zaključaj proporcije" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:202 msgid "shortcuts.toggle-textpalette" msgstr "Promijeni paletu teksta" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:204 msgid "shortcuts.toggle-visibility" msgstr "Promijeni vidljivost" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:205 msgid "shortcuts.toggle-zoom-style" msgstr "Promijeni stil zooma" -#, fuzzy +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:207 msgid "shortcuts.undo" msgstr "Undo" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:208 msgid "shortcuts.ungroup" msgstr "Razgrupiraj" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:209 msgid "shortcuts.unmask" msgstr "Makni masku" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:210 msgid "shortcuts.v-distribute" msgstr "Distribuiraj okomito" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:213 msgid "shortcuts.zoom-selected" msgstr "Zoomiraj na selektirano" -#: src/app/main/ui/dashboard/files.cljs +#: src/app/main/ui/dashboard/files.cljs:158 msgid "title.dashboard.files" msgstr "%s - Penpot" -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:37 msgid "title.dashboard.font-providers" msgstr "Dobavljači fontova - %s - Penpot" -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:36 msgid "title.dashboard.fonts" msgstr "Fontovi - %s - Penpot" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:320 msgid "title.dashboard.projects" msgstr "Projekti - %s - Penpot" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:32 msgid "title.dashboard.search" msgstr "Traži - %s - Penpot" -#: src/app/main/ui/dashboard/libraries.cljs +#: src/app/main/ui/dashboard/libraries.cljs:44 msgid "title.dashboard.shared-libraries" msgstr "Zajedničke biblioteke - %s - Penpot" -#: src/app/main/ui/auth/verify_token.cljs, src/app/main/ui/auth.cljs +#: src/app/main/ui/auth/verify_token.cljs:68, src/app/main/ui/auth.cljs:54 msgid "title.default" msgstr "Penpot - Sloboda dizajna za timove" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:110 msgid "title.settings.feedback" msgstr "Pošalji povratnu informaciju - Penpot" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:80 msgid "title.settings.options" msgstr "Postavke - Penpot" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:115 msgid "title.settings.password" msgstr "Lozinka - Penpot" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:115 msgid "title.settings.profile" msgstr "Profil - Penpot" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:727 msgid "title.team-invitations" msgstr "Pozivnice - %s - Penpot" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:493 msgid "title.team-members" msgstr "Članovi - %s - Penpot" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1036 msgid "title.team-settings" msgstr "Postavke - %s - Penpot" -#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs +#: src/app/main/ui/viewer.cljs:419 msgid "title.viewer" msgstr "%s - Način prikaza - Penpot" -#: src/app/main/ui/workspace.cljs +#: src/app/main/ui/workspace.cljs:190 msgid "title.workspace" msgstr "%s - Penpot" +#: src/app/main/ui.cljs:144 msgid "viewer.breaking-change.description" msgstr "" "Ova poveznica za dijeljenje više nije važeća. Napravi novu ili traži novu " "od vlasnika." +#: src/app/main/ui.cljs:143 msgid "viewer.breaking-change.message" msgstr "Oprosti!" -#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs +#: src/app/main/ui/viewer.cljs:569 msgid "viewer.empty-state" msgstr "Na stranici nisu pronađene ploče." -#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs +#: src/app/main/ui/viewer.cljs:574 msgid "viewer.frame-not-found" msgstr "Ploča nije pronađena." +#: src/app/main/ui/viewer/header.cljs:336 msgid "viewer.header.comments-section" msgstr "Komentari (%s)" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/interactions.cljs:292 msgid "viewer.header.dont-show-interactions" msgstr "Ne prikazuj interakcije" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/header.cljs:188 msgid "viewer.header.fullscreen" msgstr "Cijeli zaslon" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/interactions.cljs:282 msgid "viewer.header.interactions" msgstr "Interakcije" +#: src/app/main/ui/viewer/header.cljs:327 msgid "viewer.header.interactions-section" msgstr "Interakcije (%s)" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/share_link.cljs:187 msgid "viewer.header.share.copy-link" msgstr "Kopiraj poveznicu" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/interactions.cljs:300 msgid "viewer.header.show-interactions" msgstr "Prikaži interakcije" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/interactions.cljs:311 msgid "viewer.header.show-interactions-on-click" msgstr "Prikaži interakcije na klik" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/header.cljs:231 msgid "viewer.header.sitemap" msgstr "Sitemap" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:58 msgid "workspace.align.hcenter" msgstr "Poravnaj vodoravno u sredinu (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:74 msgid "workspace.align.hdistribute" msgstr "Distribuiraj vodoravni razmak (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:50 msgid "workspace.align.hleft" msgstr "Poravnaj lijevo (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:66 msgid "workspace.align.hright" msgstr "Poravnaj desno (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:99 msgid "workspace.align.vbottom" msgstr "Poravnaj dolje (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:91 msgid "workspace.align.vcenter" msgstr "Poravnaj okomito u sredinu (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:104 msgid "workspace.align.vdistribute" msgstr "Distribuiraj okomiti razmak (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:83 msgid "workspace.align.vtop" msgstr "Poravnaj gore (%s)" #: src/app/main/ui/workspace/sidebar/assets.cljs +#, unused msgid "workspace.assets.assets" msgstr "Stavke" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets.cljs:134 msgid "workspace.assets.box-filter-all" msgstr "Sve stavke" -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/dashboard/grid.cljs:130, src/app/main/ui/dashboard/grid.cljs:162, src/app/main/ui/workspace/sidebar/assets/colors.cljs:485, src/app/main/ui/workspace/sidebar/assets.cljs:150 msgid "workspace.assets.colors" msgstr "Boje" -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/dashboard/grid.cljs:126, src/app/main/ui/dashboard/grid.cljs:141, src/app/main/ui/workspace/sidebar/assets/components.cljs:513, src/app/main/ui/workspace/sidebar/assets.cljs:139 msgid "workspace.assets.components" msgstr "Komponente" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:131 msgid "workspace.assets.create-group" msgstr "Kreiraj grupu" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:142 msgid "workspace.assets.create-group-hint" msgstr "Tvoje stavke će se automatski imenovati kao \"naziv grupe / naziv stavke\"" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/context_menu.cljs:529, src/app/main/ui/workspace/sidebar/assets/colors.cljs:251, src/app/main/ui/workspace/sidebar/assets/components.cljs:577, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:424, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:443 msgid "workspace.assets.delete" msgstr "Izbriši" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/context_menu.cljs:534, src/app/main/ui/workspace/sidebar/assets/components.cljs:572 msgid "workspace.assets.duplicate" msgstr "Dupliciraj" -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:247, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:439 msgid "workspace.assets.edit" msgstr "Uredi" -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/graphics.cljs:384, src/app/main/ui/workspace/sidebar/assets.cljs:145 msgid "workspace.assets.graphics" msgstr "Grafika" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:255, src/app/main/ui/workspace/sidebar/assets/components.cljs:581, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:428, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:448 msgid "workspace.assets.group" msgstr "Grupa" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:141 msgid "workspace.assets.group-name" msgstr "Ime grupe" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets.cljs:168 msgid "workspace.assets.libraries" msgstr "Biblioteke" +#: src/app/main/ui/workspace/sidebar/assets/file_library.cljs:62, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:347 msgid "workspace.assets.local-library" msgstr "lokalna biblioteka" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/file_library.cljs:295 msgid "workspace.assets.not-found" msgstr "Nisu pronađene stavke" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/context_menu.cljs:532, src/app/main/ui/workspace/sidebar/assets/colors.cljs:243, src/app/main/ui/workspace/sidebar/assets/components.cljs:566, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:421, src/app/main/ui/workspace/sidebar/assets/groups.cljs:63, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:434 msgid "workspace.assets.rename" msgstr "Preimenuj" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:132 msgid "workspace.assets.rename-group" msgstr "Preimenuj grupu" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets.cljs:173 msgid "workspace.assets.search" msgstr "Pretraži stavke" #: src/app/main/ui/workspace/sidebar/assets.cljs +#, unused msgid "workspace.assets.selected-count" msgid_plural "workspace.assets.selected-count" msgstr[0] "%s odabrana stavka" msgstr[1] "%s odabranih stavki" msgstr[2] "%s odabranih stavki" -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/dashboard/grid.cljs:134, src/app/main/ui/dashboard/grid.cljs:189, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:397, src/app/main/ui/workspace/sidebar/assets.cljs:155 msgid "workspace.assets.typography" msgstr "Tipografija" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused msgid "workspace.assets.typography.font-id" msgstr "Font" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:505 msgid "workspace.assets.typography.font-size" msgstr "Veličina" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:501 msgid "workspace.assets.typography.font-variant-id" msgstr "Varijanta" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:523 msgid "workspace.assets.typography.go-to-edit" msgstr "Idi na datoteku biblioteke stilova za uređivanje" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:513 msgid "workspace.assets.typography.letter-spacing" msgstr "Razmak između slova" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:509 msgid "workspace.assets.typography.line-height" msgstr "Visina linije" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, -#: src/app/main/ui/inspect/attributes/text.cljs, -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/dashboard/grid.cljs:199, src/app/main/ui/workspace/libraries.cljs:461, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:464, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:489, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:596, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:615 msgid "workspace.assets.typography.sample" msgstr "Ag" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:517 msgid "workspace.assets.typography.text-transform" msgstr "Transformiraj tekst" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:66 msgid "workspace.assets.ungroup" msgstr "Razgrupiraj" +#: src/app/main/ui/workspace/sidebar/layers.cljs:525 msgid "workspace.focus.focus-mode" msgstr "Fokus mode" +#: src/app/main/ui/workspace/context_menu.cljs:287, src/app/main/ui/workspace/context_menu.cljs:553 msgid "workspace.focus.focus-off" msgstr "Fokus isključen" +#: src/app/main/ui/workspace/context_menu.cljs:286 msgid "workspace.focus.focus-on" msgstr "Fokus uključen" +#, unused msgid "workspace.focus.selection" msgstr "Odabir" -#: src/app/main/data/workspace/libraries.cljs, -#: src/app/main/ui/components/color_bullet.cljs +#: src/app/util/color.cljs:34 msgid "workspace.gradients.linear" msgstr "Linearni gradijent" -#: src/app/main/data/workspace/libraries.cljs, -#: src/app/main/ui/components/color_bullet.cljs +#: src/app/util/color.cljs:35 msgid "workspace.gradients.radial" msgstr "Radijalni gradijent" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:238 msgid "workspace.header.menu.disable-dynamic-alignment" msgstr "Onemogući dinamičko poravnanje" #: src/app/main/ui/workspace/header.cljs +#, unused msgid "workspace.header.menu.disable-scale-text" msgstr "Onemogući skaliranje teksta" -#: src/app/main/ui/workspace/header.cljs -#, fuzzy +#: src/app/main/ui/workspace/main_menu.cljs:223 msgid "workspace.header.menu.disable-snap-guides" msgstr "Onemogući \"snap to guides\"" -#, fuzzy +#: src/app/main/ui/workspace/main_menu.cljs:253 msgid "workspace.header.menu.disable-snap-pixel-grid" msgstr "Onemogući \"snap to pixel\"" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:239 msgid "workspace.header.menu.enable-dynamic-alignment" msgstr "Omogući dinamičko poravnanje" #: src/app/main/ui/workspace/header.cljs +#, unused msgid "workspace.header.menu.enable-scale-text" msgstr "Omogući skaliranje teksta" -#: src/app/main/ui/workspace/header.cljs -#, fuzzy +#: src/app/main/ui/workspace/main_menu.cljs:224 msgid "workspace.header.menu.enable-snap-guides" msgstr "Snap to guides" -#, fuzzy +#: src/app/main/ui/workspace/main_menu.cljs:254 msgid "workspace.header.menu.enable-snap-pixel-grid" msgstr "Omogući \"snap to pixel\"" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:382 msgid "workspace.header.menu.hide-artboard-names" msgstr "Sakrij nazive ploča" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:353 msgid "workspace.header.menu.hide-palette" msgstr "Sakrij paletu boja" -#, fuzzy +#: src/app/main/ui/workspace/main_menu.cljs:394 msgid "workspace.header.menu.hide-pixel-grid" msgstr "Sakrij \"pixel grid\"" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:320 msgid "workspace.header.menu.hide-rules" msgstr "Sakrij \"rules\"" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:367 msgid "workspace.header.menu.hide-textpalette" msgstr "Sakrij paletu boja" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:731 msgid "workspace.header.menu.option.edit" msgstr "Uredi" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:720 msgid "workspace.header.menu.option.file" msgstr "Datoteka" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:777 msgid "workspace.header.menu.option.help-info" msgstr "Pomoć i informacije" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:753 msgid "workspace.header.menu.option.preferences" msgstr "Preferencije" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:742 msgid "workspace.header.menu.option.view" msgstr "Pregled" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:432 msgid "workspace.header.menu.select-all" msgstr "Odaberi sve" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:383 msgid "workspace.header.menu.show-artboard-names" msgstr "Prikaži nazive ploča" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:354 msgid "workspace.header.menu.show-palette" msgstr "Prikaži paletu boja" -#, fuzzy +#: src/app/main/ui/workspace/main_menu.cljs:395 msgid "workspace.header.menu.show-pixel-grid" msgstr "Prikaži \"pixel grid\"" -#: src/app/main/ui/workspace/header.cljs -#, fuzzy +#: src/app/main/ui/workspace/main_menu.cljs:321 msgid "workspace.header.menu.show-rules" msgstr "Prikaži \"rules\"" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:368 msgid "workspace.header.menu.show-textpalette" msgstr "Prikaži paletu fontova" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/viewer/header.cljs:98, src/app/main/ui/workspace/right_header.cljs:120 msgid "workspace.header.reset-zoom" msgstr "Resetiraj" #: src/app/main/ui/workspace/header.cljs +#, unused msgid "workspace.header.save-error" msgstr "Greška kod spremanja" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/right_header.cljs:52 msgid "workspace.header.saved" msgstr "Spremljeno" #: src/app/main/ui/workspace/header.cljs +#, unused msgid "workspace.header.saving" msgstr "Spremanje" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/right_header.cljs:42, src/app/main/ui/workspace/right_header.cljs:47 msgid "workspace.header.unsaved" msgstr "Nespremljene izmijene" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/right_header.cljs:239 msgid "workspace.header.viewer" msgstr "Način prikaza (%s)" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/viewer/header.cljs:109 msgid "workspace.header.zoom-fill" msgstr "Ispuna - Skaliraj za popunjavanje" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/viewer/header.cljs:102 msgid "workspace.header.zoom-fit" msgstr "Prilagodi - Smanji veličinu da pristane" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/right_header.cljs:123 msgid "workspace.header.zoom-fit-all" msgstr "Zumiraj da stane sve" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/viewer/header.cljs:116 msgid "workspace.header.zoom-full-screen" msgstr "Cijeli ekran" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/right_header.cljs:130 msgid "workspace.header.zoom-selected" msgstr "Zumiraj na odabrano" #: src/app/main/ui/workspace/libraries.cljs +#, unused msgid "workspace.libraries.add" msgstr "Dodaj" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:80, src/app/main/ui/workspace/libraries.cljs:99 msgid "workspace.libraries.colors" msgstr "%s boje" -#: src/app/main/ui/workspace/colorpicker/libraries.cljs, -#: src/app/main/ui/workspace/colorpalette.cljs +#: src/app/main/ui/workspace/color_palette_ctx_menu.cljs:60, src/app/main/ui/workspace/colorpicker/libraries.cljs:73, src/app/main/ui/workspace/text_palette_ctx_menu.cljs:50 msgid "workspace.libraries.colors.file-library" msgstr "Biblioteka datoteka" #: src/app/main/ui/workspace/colorpicker.cljs +#, unused msgid "workspace.libraries.colors.hsv" msgstr "HSV" -#: src/app/main/ui/workspace/colorpicker/libraries.cljs, -#: src/app/main/ui/workspace/colorpalette.cljs +#: src/app/main/ui/workspace/color_palette_ctx_menu.cljs:82, src/app/main/ui/workspace/colorpicker/libraries.cljs:72 msgid "workspace.libraries.colors.recent-colors" msgstr "Nedavno korištene boje" #: src/app/main/ui/workspace/colorpicker.cljs +#, unused msgid "workspace.libraries.colors.rgb-complementary" msgstr "RGB komplementarno" #: src/app/main/ui/workspace/colorpicker.cljs +#, unused msgid "workspace.libraries.colors.rgba" msgstr "RGBA" -#: src/app/main/ui/workspace/colorpicker.cljs +#: src/app/main/ui/workspace/colorpicker.cljs:372 msgid "workspace.libraries.colors.save-color" msgstr "Spremi u stil boja" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:74, src/app/main/ui/workspace/libraries.cljs:91 msgid "workspace.libraries.components" msgstr "%s komponente" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:215 msgid "workspace.libraries.file-library" msgstr "Biblioteka datoteka" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:77, src/app/main/ui/workspace/libraries.cljs:95 msgid "workspace.libraries.graphics" msgstr "%s grafike" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:209 msgid "workspace.libraries.in-this-file" msgstr "BIBLIOTEKE U OVOJ DATOTECI" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:526, src/app/main/ui/workspace/libraries.cljs:531 msgid "workspace.libraries.libraries" msgstr "BIBLIOTEKE" #: src/app/main/ui/workspace/libraries.cljs +#, unused msgid "workspace.libraries.library" msgstr "BIBLIOTEKA" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:380 msgid "workspace.libraries.no-libraries-need-sync" msgstr "Ne postoje zajedničke biblioteke koje je potrebno ažurirati" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:299 msgid "workspace.libraries.no-matches-for" msgstr "Nisu pronađeni rezultati za “%s”" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:296 msgid "workspace.libraries.no-shared-libraries-available" msgstr "Nema dostupnih zajedničkih biblioteka" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:260 msgid "workspace.libraries.search-shared-libraries" msgstr "Pretraži zajedničke biblioteke" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:256 msgid "workspace.libraries.shared-libraries" msgstr "ZAJEDNIČKE BIBLIOTEKE" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:308 msgid "workspace.libraries.text.multiple-typography" msgstr "Višestruke tipografije" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:311 msgid "workspace.libraries.text.multiple-typography-tooltip" msgstr "Prekini vezu svih tipografija" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:83, src/app/main/ui/workspace/libraries.cljs:103 msgid "workspace.libraries.typography" msgstr "%s tipografije" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:402 msgid "workspace.libraries.update" msgstr "Ažuriranje" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:536 msgid "workspace.libraries.updates" msgstr "AŽURIRANJA" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:737 msgid "workspace.options.add-interaction" msgstr "Klikni gumb + za dodavanje interakcija." -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:86, src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:102 msgid "workspace.options.blur-options.title" msgstr "Zamuti" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:85 msgid "workspace.options.blur-options.title.group" msgstr "Grupiraj zamućenje" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:84 msgid "workspace.options.blur-options.title.multiple" msgstr "Odabir zamućenja" -#: src/app/main/ui/workspace/sidebar/options/page.cljs +#: src/app/main/ui/workspace/sidebar/options/page.cljs:32, src/app/main/ui/workspace/sidebar/options/page.cljs:39 msgid "workspace.options.canvas-background" msgstr "Pozadina canvasa" +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:548 msgid "workspace.options.clip-content" msgstr "Isjeci sadržaj" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:600, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:605 msgid "workspace.options.component" msgstr "Komponenta" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:163 msgid "workspace.options.constraints" msgstr "Ograničenja" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:150 msgid "workspace.options.constraints.bottom" msgstr "Dno" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:141, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:152 msgid "workspace.options.constraints.center" msgstr "Sredina" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:229 msgid "workspace.options.constraints.fix-when-scrolling" msgstr "Popravi prilikom scrolanja" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:138 msgid "workspace.options.constraints.left" msgstr "Lijevo" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:140 msgid "workspace.options.constraints.leftright" msgstr "Lijevo i desno" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:139 msgid "workspace.options.constraints.right" msgstr "Desno" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:142, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:153 msgid "workspace.options.constraints.scale" msgstr "Skala" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:149 msgid "workspace.options.constraints.top" msgstr "Vrh" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:151 msgid "workspace.options.constraints.topbottom" msgstr "Vrh i dno" -#: src/app/main/ui/workspace/sidebar/options.cljs +#: src/app/main/ui/workspace/sidebar/options.cljs:112 msgid "workspace.options.design" msgstr "Dizajn" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs +#: src/app/main/ui/viewer/inspect/exports.cljs:139 msgid "workspace.options.export" msgstr "Izvoz" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs +#, unused msgid "workspace.options.export-multiple" msgstr "Izvezi selektirano" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs +#: src/app/main/ui/viewer/inspect/exports.cljs:195, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:237 msgid "workspace.options.export-object" msgid_plural "workspace.options.export-object" msgstr[0] "Izvezi 1 element" msgstr[1] "Izvezi %s elemenata" msgstr[2] "Izvezi %s elemenata" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs +#: src/app/main/ui/viewer/inspect/exports.cljs:178, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:219 msgid "workspace.options.export.suffix" msgstr "Sufiks" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs, src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/export.cljs:240 msgid "workspace.options.exporting-complete" msgstr "Izvoz završen" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs, src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/export.cljs:172, src/app/main/ui/export.cljs:241, src/app/main/ui/viewer/inspect/exports.cljs:194, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:236 msgid "workspace.options.exporting-object" msgstr "Izvoz…" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs, src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/export.cljs:239 msgid "workspace.options.exporting-object-error" msgstr "Izvoz nije uspio" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs, src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/export.cljs:242 msgid "workspace.options.exporting-object-slow" msgstr "Izvoz neočekivano spor" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:49, src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:174 msgid "workspace.options.fill" msgstr "Ispuni" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -#, fuzzy +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:178 msgid "workspace.options.flows.add-flow-start" msgstr "Dodaj početak flowa" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -#, fuzzy +#, unused msgid "workspace.options.flows.flow-start" msgstr "Početak toka" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -#, fuzzy +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:161 msgid "workspace.options.flows.flow-starts" msgstr "Flow započinje" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:29 msgid "workspace.options.grid.auto" msgstr "Auto" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:157 msgid "workspace.options.grid.column" msgstr "Kolumne" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, fuzzy +#, unused msgid "workspace.options.grid.grid-title" msgstr "Grid" +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:196, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:237 msgid "workspace.options.grid.params.color" msgstr "Boja" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused msgid "workspace.options.grid.params.columns" msgstr "Kolumne" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, fuzzy +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:259 msgid "workspace.options.grid.params.gutter" msgstr "Gutter" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:246 msgid "workspace.options.grid.params.height" msgstr "Visina" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:270 msgid "workspace.options.grid.params.margin" msgstr "Margina" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused msgid "workspace.options.grid.params.rows" msgstr "Redovi" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:216, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:290 msgid "workspace.options.grid.params.set-default" msgstr "Postavi kao zadano" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused msgid "workspace.options.grid.params.size" msgstr "Veličina" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused msgid "workspace.options.grid.params.type" msgstr "Tip" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:231 msgid "workspace.options.grid.params.type.bottom" msgstr "Dno" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:229 msgid "workspace.options.grid.params.type.center" msgstr "Sredina" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:228 msgid "workspace.options.grid.params.type.left" msgstr "Lijevo" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:232 msgid "workspace.options.grid.params.type.right" msgstr "Desno" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:225 msgid "workspace.options.grid.params.type.stretch" msgstr "Razvuci" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:227 msgid "workspace.options.grid.params.type.top" msgstr "Vrh" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:211, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:288 msgid "workspace.options.grid.params.use-default" msgstr "Koristi zadano" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:247 msgid "workspace.options.grid.params.width" msgstr "Širina" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:158 msgid "workspace.options.grid.row" msgstr "Redovi" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:156 msgid "workspace.options.grid.square" msgstr "Pravokutnik" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:48 msgid "workspace.options.group-fill" msgstr "Popunjavanje grupe" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -#, fuzzy +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:42 msgid "workspace.options.group-stroke" msgstr "Grupni potez" +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:406 msgid "workspace.options.height" msgstr "Visina" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:468 msgid "workspace.options.interaction-action" msgstr "Akcija" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:41, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:367 msgid "workspace.options.interaction-after-delay" msgstr "Nakon kašnjenja" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:614 msgid "workspace.options.interaction-animation" msgstr "Animacija" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -#, fuzzy +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:406 msgid "workspace.options.interaction-animation-dissolve" msgstr "Razriješi" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:405 msgid "workspace.options.interaction-animation-none" msgstr "Nijedan" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:412 msgid "workspace.options.interaction-animation-push" msgstr "Gurni" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -#, fuzzy +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:407 msgid "workspace.options.interaction-animation-slide" msgstr "Slide" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:604 msgid "workspace.options.interaction-background" msgstr "Dodajte pozadinsko preklapanje" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:590 msgid "workspace.options.interaction-close-outside" msgstr "Zatvori kada klikneš izvana" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:372 msgid "workspace.options.interaction-close-overlay" msgstr "Zatvori preklapanje" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:56 msgid "workspace.options.interaction-close-overlay-dest" msgstr "Zatvori preklapanje: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:456 msgid "workspace.options.interaction-delay" msgstr "Odgoda" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:478 msgid "workspace.options.interaction-destination" msgstr "Odredište" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:661 msgid "workspace.options.interaction-duration" msgstr "Trajanje" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:674 msgid "workspace.options.interaction-easing" msgstr "Easing" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:416 msgid "workspace.options.interaction-easing-ease" msgstr "Ease" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -#, fuzzy +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:417 msgid "workspace.options.interaction-easing-ease-in" msgstr "Ease in" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -#, fuzzy +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:419 msgid "workspace.options.interaction-easing-ease-in-out" msgstr "Ease in out" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -#, fuzzy +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:418 msgid "workspace.options.interaction-easing-ease-out" msgstr "Ease out" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:415 msgid "workspace.options.interaction-easing-linear" msgstr "Linearno" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#, unused msgid "workspace.options.interaction-in" msgstr "U" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -#, fuzzy +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:39, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:364 msgid "workspace.options.interaction-mouse-enter" msgstr "Ulaz mišem" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:40, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:365 msgid "workspace.options.interaction-mouse-leave" msgstr "Izlaz mišem" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:458, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:459, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:464, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:663, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:665, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:669 msgid "workspace.options.interaction-ms" msgstr "ms" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:369 msgid "workspace.options.interaction-navigate-to" msgstr "Idi do" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:50 msgid "workspace.options.interaction-navigate-to-dest" msgstr "Idi do: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -#, fuzzy +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:51, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:53, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:55, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:380 msgid "workspace.options.interaction-none" msgstr "(nije spremno)" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:691 msgid "workspace.options.interaction-offset-effect" msgstr "Offset učinak" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:35, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:360 msgid "workspace.options.interaction-on-click" msgstr "Na klik" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:370 msgid "workspace.options.interaction-open-overlay" msgstr "Otvoreno preklapanje" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:52 msgid "workspace.options.interaction-open-overlay-dest" msgstr "Otvoreno preklapanje: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:59, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:374 msgid "workspace.options.interaction-open-url" msgstr "Otvoreni url" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -#, fuzzy +#, unused msgid "workspace.options.interaction-out" msgstr "Vani" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:403 msgid "workspace.options.interaction-pos-bottom-center" msgstr "Dolje sredina" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:401 msgid "workspace.options.interaction-pos-bottom-left" msgstr "Dolje lijevo" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:402 msgid "workspace.options.interaction-pos-bottom-right" msgstr "Dolje desno" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:397 msgid "workspace.options.interaction-pos-center" msgstr "Sredina" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:396 msgid "workspace.options.interaction-pos-manual" msgstr "Priručnik" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:400 msgid "workspace.options.interaction-pos-top-center" msgstr "Gore sredina" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:398 msgid "workspace.options.interaction-pos-top-left" msgstr "Gore lijevo" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:399 msgid "workspace.options.interaction-pos-top-right" msgstr "Gore desno" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:524 msgid "workspace.options.interaction-position" msgstr "Pozicija" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:494 msgid "workspace.options.interaction-preserve-scroll" msgstr "Sačuvaj položaj scrolanja" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:58, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:373 msgid "workspace.options.interaction-prev-screen" msgstr "Prethodni ekran" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -#, fuzzy +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:57, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:379, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:393, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:394 msgid "workspace.options.interaction-self" msgstr "sebe" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:371 msgid "workspace.options.interaction-toggle-overlay" msgstr "Uključi/isključi preklapanje" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:54 msgid "workspace.options.interaction-toggle-overlay-dest" msgstr "Uključi/isključi preklapanje: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:445 msgid "workspace.options.interaction-trigger" msgstr "Okidač" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:503 msgid "workspace.options.interaction-url" msgstr "URL" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:37, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:362 msgid "workspace.options.interaction-while-hovering" msgstr "Na hover" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:38, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:363 msgid "workspace.options.interaction-while-pressing" msgstr "Dok pritisneš" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:724 msgid "workspace.options.interactions" msgstr "Interakcije" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:137 msgid "workspace.options.layer-options.blend-mode.color" msgstr "Boja" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:126 msgid "workspace.options.layer-options.blend-mode.color-burn" msgstr "Izgaranje boje" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:129 msgid "workspace.options.layer-options.blend-mode.color-dodge" msgstr "Izbjegavanje boja" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:124 msgid "workspace.options.layer-options.blend-mode.darken" msgstr "Zatamni" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:133 msgid "workspace.options.layer-options.blend-mode.difference" msgstr "Razlika" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:134 msgid "workspace.options.layer-options.blend-mode.exclusion" msgstr "Ekskluzija" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:132 msgid "workspace.options.layer-options.blend-mode.hard-light" msgstr "Tvrdo svjetlo" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:135 msgid "workspace.options.layer-options.blend-mode.hue" msgstr "Nijansa" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:127 msgid "workspace.options.layer-options.blend-mode.lighten" msgstr "Posvijetli" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:138 msgid "workspace.options.layer-options.blend-mode.luminosity" msgstr "Svjetlost" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:125 msgid "workspace.options.layer-options.blend-mode.multiply" msgstr "Umnoži" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:123 msgid "workspace.options.layer-options.blend-mode.normal" msgstr "Normalno" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:130 msgid "workspace.options.layer-options.blend-mode.overlay" msgstr "Preklapanje" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:136 msgid "workspace.options.layer-options.blend-mode.saturation" msgstr "Saturacija" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:128 msgid "workspace.options.layer-options.blend-mode.screen" msgstr "Ekran" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:131 msgid "workspace.options.layer-options.blend-mode.soft-light" msgstr "Nježno svjetlo" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -#, fuzzy +#, unused msgid "workspace.options.layer-options.title" msgstr "Layer" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -#, fuzzy +#, unused msgid "workspace.options.layer-options.title.group" msgstr "Grupiraj layere" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -#, fuzzy +#, unused msgid "workspace.options.layer-options.title.multiple" msgstr "Označeni layeri" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout-item.advanced-ops" msgstr "Napredne opcije" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:564 msgid "workspace.options.layout-item.layout-item-max-h" msgstr "Max.visina" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:531 msgid "workspace.options.layout-item.layout-item-max-w" msgstr "Max.širina" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:548 msgid "workspace.options.layout-item.layout-item-min-h" msgstr "Min.visina" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:515 msgid "workspace.options.layout-item.layout-item-min-w" msgstr "Min.širina" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout-item.title.layout-item-max-h" msgstr "Maksimalna visina" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout-item.title.layout-item-max-w" msgstr "Maksimalna širina" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout-item.title.layout-item-min-h" msgstr "Minimalna visina" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout-item.title.layout-item-min-w" msgstr "Minimalna širina" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.bottom" msgstr "Dno" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.gap" msgstr "Razmak" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.left" msgstr "Lijevo" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout.margin" msgstr "Margina" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout.margin-all" msgstr "Sve strane" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout.margin-simple" msgstr "Jednostavna margina" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, fuzzy +#, unused msgid "workspace.options.layout.packed" msgstr "upakiran" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, fuzzy +#, unused msgid "workspace.options.layout.padding" msgstr "Padding" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.padding-all" msgstr "Sve strane" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.padding-simple" msgstr "Jednostavni padding" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.right" msgstr "Desno" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.space-around" msgstr "prostor okolo" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.space-between" msgstr "prostor između" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.top" msgstr "Vrh" -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:146 msgid "workspace.options.more-colors" msgstr "Više boja" -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:123 msgid "workspace.options.more-lib-colors" msgstr "Više boja iz biblioteke" +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:161 msgid "workspace.options.opacity" msgstr "Neprozirnost" -#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#, unused msgid "workspace.options.position" msgstr "Pozicija" -#: src/app/main/ui/workspace/sidebar/options.cljs +#: src/app/main/ui/workspace/sidebar/options.cljs:157 msgid "workspace.options.prototype" msgstr "Prototip" +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:469, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:481 msgid "workspace.options.radius" msgstr "Radius" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:513 msgid "workspace.options.radius-bottom-left" msgstr "Dolje lijevo" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:522 msgid "workspace.options.radius-bottom-right" msgstr "Dolje desno" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:495 msgid "workspace.options.radius-top-left" msgstr "Gore lijevo" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:504 msgid "workspace.options.radius-top-right" msgstr "Gore desno" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:532 msgid "workspace.options.radius.all-corners" msgstr "Svi kutevi" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -#, fuzzy +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:533 msgid "workspace.options.radius.single-corners" msgstr "Jednostruki kutovi" +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:183 msgid "workspace.options.recent-fonts" msgstr "Nedavni" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs, src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/export.cljs:284 msgid "workspace.options.retry" msgstr "Pokušaj ponovo" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:451 msgid "workspace.options.rotation" msgstr "Rotacija" +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:180 msgid "workspace.options.search-font" msgstr "Pretraži font" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:741 msgid "workspace.options.select-a-shape" msgstr "Odaberi oblik, ploču ili grupu za povlačenje veze na drugu ploču." -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:105 msgid "workspace.options.selection-color" msgstr "Odabrane boje" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:47 msgid "workspace.options.selection-fill" msgstr "Ispuna odabira" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -#, fuzzy +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:41 msgid "workspace.options.selection-stroke" msgstr "Potez selektirano" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:40, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:198, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:200 msgid "workspace.options.shadow-options.blur" msgstr "Zamućeno" +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:238 msgid "workspace.options.shadow-options.color" msgstr "Boja sjene" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:144 msgid "workspace.options.shadow-options.drop-shadow" msgstr "Spusti sjenu" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:145 msgid "workspace.options.shadow-options.inner-shadow" msgstr "Unutarnja sjena" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:38, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:186 msgid "workspace.options.shadow-options.offsetx" msgstr "X" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:39, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:224 msgid "workspace.options.shadow-options.offsety" msgstr "Y" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:41, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:211, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:213 msgid "workspace.options.shadow-options.spread" msgstr "Proširi" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:296 msgid "workspace.options.shadow-options.title" msgstr "Sjena" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:295 msgid "workspace.options.shadow-options.title.group" msgstr "Grupiraj sjenu" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:294 msgid "workspace.options.shadow-options.title.multiple" msgstr "Odabir sjena" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:193 msgid "workspace.options.show-fill-on-export" msgstr "Prikaži u izvozu" +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:562 msgid "workspace.options.show-in-viewer" msgstr "Prikaži u načinu pregleda" -#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:162 msgid "workspace.options.size" msgstr "Veličina" -#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs -#, fuzzy +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:355 msgid "workspace.options.size-presets" msgstr "Unaprijed postavljena veličina" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:43 msgid "workspace.options.stroke" msgstr "Potez" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#, unused msgid "workspace.options.stroke-cap.circle-marker" msgstr "Kružni marker" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#, unused msgid "workspace.options.stroke-cap.diamond-marker" msgstr "Dijamantni marker" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#, unused msgid "workspace.options.stroke-cap.line-arrow" msgstr "Strelica linije" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:124 msgid "workspace.options.stroke-cap.none" msgstr "Nijedan" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -#, fuzzy +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:132 msgid "workspace.options.stroke-cap.round" msgstr "Krug" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:133 msgid "workspace.options.stroke-cap.square" msgstr "Pravokutnik" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#, unused msgid "workspace.options.stroke-cap.square-marker" msgstr "Pravokutni marker" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#, unused msgid "workspace.options.stroke-cap.triangle-arrow" msgstr "Trokutna strelica" +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:192 msgid "workspace.options.stroke-color" msgstr "Boja poteza" +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:165 msgid "workspace.options.stroke-width" msgstr "Širina poteza" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:87 msgid "workspace.options.stroke.center" msgstr "Sredina" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:105 msgid "workspace.options.stroke.dashed" msgstr "Crtkano" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:104 msgid "workspace.options.stroke.dotted" msgstr "Točkasto" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:88 msgid "workspace.options.stroke.inner" msgstr "Unutra" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:106 msgid "workspace.options.stroke.mixed" msgstr "Miješano" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:89 msgid "workspace.options.stroke.outer" msgstr "Vani" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:103 msgid "workspace.options.stroke.solid" msgstr "Čvrsto" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:115 msgid "workspace.options.text-options.align-bottom" msgstr "Poravnaj dno" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:111 msgid "workspace.options.text-options.align-middle" msgstr "Poravnaj sredinu" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:107 msgid "workspace.options.text-options.align-top" msgstr "Poravnaj vrh" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:82 msgid "workspace.options.text-options.direction-ltr" msgstr "LTR" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:87 msgid "workspace.options.text-options.direction-rtl" msgstr "RTL" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:149 msgid "workspace.options.text-options.grow-auto-height" msgstr "Automatska visina" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:145 msgid "workspace.options.text-options.grow-auto-width" msgstr "Automatska širina" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -#, fuzzy +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:141 msgid "workspace.options.text-options.grow-fixed" msgstr "Popravljeno" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:381 msgid "workspace.options.text-options.letter-spacing" msgstr "Razmak između slova" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:364 msgid "workspace.options.text-options.line-height" msgstr "Visina linije" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused msgid "workspace.options.text-options.lowercase" msgstr "Mala slova" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused msgid "workspace.options.text-options.none" msgstr "Nijedan" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:176 msgid "workspace.options.text-options.strikethrough" msgstr "Precrtanko (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:51 msgid "workspace.options.text-options.text-align-center" msgstr "Poravnaj sredinu (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -#, fuzzy +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:59 msgid "workspace.options.text-options.text-align-justify" msgstr "Složi u blok (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:47 msgid "workspace.options.text-options.text-align-left" msgstr "Poravnaj lijevo (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:55 msgid "workspace.options.text-options.text-align-right" msgstr "Poravnaj desno (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:189 msgid "workspace.options.text-options.title" msgstr "Tekst" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:188 msgid "workspace.options.text-options.title-group" msgstr "Grupiraj tekst" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:187 msgid "workspace.options.text-options.title-selection" msgstr "Selektiraj tekst" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused msgid "workspace.options.text-options.titlecase" msgstr "Velika i mala slova" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:171 msgid "workspace.options.text-options.underline" msgstr "Podcrtano (%s)" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused msgid "workspace.options.text-options.uppercase" msgstr "Velika slova" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:745 msgid "workspace.options.use-play-button" msgstr "Upotrijebi play gumb u zaglavlju za pokretanje prikaza prototipa." +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:395 msgid "workspace.options.width" msgstr "Širina" +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:427 msgid "workspace.options.x" msgstr "X" +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:438 msgid "workspace.options.y" msgstr "Y" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:167 msgid "workspace.path.actions.add-node" msgstr "Dodaj čvor (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:174 msgid "workspace.path.actions.delete-node" msgstr "Izbriši čvor (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:152 msgid "workspace.path.actions.draw-nodes" msgstr "Crtaj čvorove (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:189 msgid "workspace.path.actions.join-nodes" msgstr "Spoji čvorove (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:204 msgid "workspace.path.actions.make-corner" msgstr "Do kuta (%s)" -#, fuzzy +#: src/app/main/ui/workspace/viewport/path_actions.cljs:211 msgid "workspace.path.actions.make-curve" msgstr "Do krivulje (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:182 msgid "workspace.path.actions.merge-nodes" msgstr "Spoji čvorove (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:159 msgid "workspace.path.actions.move-nodes" msgstr "Premijesti čvorove (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:196 msgid "workspace.path.actions.separate-nodes" msgstr "Odvoji čvorove(%s)" -#, fuzzy +#: src/app/main/ui/workspace/viewport/path_actions.cljs:218 msgid "workspace.path.actions.snap-nodes" msgstr "Priključi čvorove (%s)" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:193 msgid "workspace.shape.menu.back" msgstr "Pošalji natrag" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:190 msgid "workspace.shape.menu.backward" msgstr "Pošalji u pozadinu" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:139 msgid "workspace.shape.menu.copy" msgstr "Kopiraj" -#: src/app/main/ui/workspace/context_menu.cljs -#, fuzzy +#: src/app/main/ui/workspace/context_menu.cljs:275 msgid "workspace.shape.menu.create-artboard-from-selection" msgstr "Odabir na ploču" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:465 msgid "workspace.shape.menu.create-component" msgstr "Kreiraj komponentu" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:142 msgid "workspace.shape.menu.cut" msgstr "Izreži" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:486 msgid "workspace.shape.menu.delete" msgstr "Izbriši" -#: src/app/main/ui/workspace/context_menu.cljs -#, fuzzy +#: src/app/main/ui/workspace/context_menu.cljs:391 msgid "workspace.shape.menu.delete-flow-start" msgstr "Izbriši početak flowa" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:432 msgid "workspace.shape.menu.detach-instance" msgstr "Odvoji instancu" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:431 msgid "workspace.shape.menu.detach-instances-in-bulk" msgstr "Odvoji instance" +#: src/app/main/ui/workspace/context_menu.cljs:335, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:75 msgid "workspace.shape.menu.difference" msgstr "Razlika" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:148 msgid "workspace.shape.menu.duplicate" msgstr "Dupliciraj" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:321 msgid "workspace.shape.menu.edit" msgstr "Uredi" +#: src/app/main/ui/workspace/context_menu.cljs:341 msgid "workspace.shape.menu.exclude" msgstr "Izuzmi" +#: src/app/main/ui/workspace/context_menu.cljs:348, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:89 msgid "workspace.shape.menu.flatten" msgstr "Spljošti" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:208 msgid "workspace.shape.menu.flip-horizontal" msgstr "Okreni vodoravno" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:204 msgid "workspace.shape.menu.flip-vertical" msgstr "Okreni okomito" -#: src/app/main/ui/workspace/context_menu.cljs -#, fuzzy +#: src/app/main/ui/workspace/context_menu.cljs:394 msgid "workspace.shape.menu.flow-start" msgstr "Početak flowa" -#: src/app/main/ui/workspace/context_menu.cljs -#, fuzzy +#: src/app/main/ui/workspace/context_menu.cljs:184 msgid "workspace.shape.menu.forward" msgstr "Postavi ispred" -#: src/app/main/ui/workspace/context_menu.cljs -#, fuzzy +#: src/app/main/ui/workspace/context_menu.cljs:187 msgid "workspace.shape.menu.front" msgstr "Postavi naprijed" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#, unused msgid "workspace.shape.menu.go-main" msgstr "Idi na datoteku glavne komponente" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:261 msgid "workspace.shape.menu.group" msgstr "Grupiraj" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:363, src/app/main/ui/workspace/sidebar/layer_item.cljs:145 msgid "workspace.shape.menu.hide" msgstr "Sakrij" +#: src/app/main/ui/workspace/context_menu.cljs:548, src/app/main/ui/workspace/main_menu.cljs:408 msgid "workspace.shape.menu.hide-ui" msgstr "Prikaži/sakrij korisničko sučelje" +#: src/app/main/ui/workspace/context_menu.cljs:338 msgid "workspace.shape.menu.intersection" msgstr "Presjek" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:371, src/app/main/ui/workspace/sidebar/layer_item.cljs:153 msgid "workspace.shape.menu.lock" msgstr "Zaključaj" -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:266 msgid "workspace.shape.menu.mask" msgstr "Maskiraj" -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:145, src/app/main/ui/workspace/context_menu.cljs:545 msgid "workspace.shape.menu.paste" msgstr "Zalijepi" -#, fuzzy +#: src/app/main/ui/workspace/context_menu.cljs:331 msgid "workspace.shape.menu.path" msgstr "Path" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs -#, fuzzy +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:436 msgid "workspace.shape.menu.reset-overrides" msgstr "Poništi overrides" +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:439 msgid "workspace.shape.menu.restore-main" msgstr "Vrati glavnu komponentu" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:174 msgid "workspace.shape.menu.select-layer" msgstr "Označi layer" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:360, src/app/main/ui/workspace/sidebar/layer_item.cljs:144 msgid "workspace.shape.menu.show" msgstr "Prikaži" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:442, src/app/main/ui/workspace/sidebar/assets/components.cljs:586 msgid "workspace.shape.menu.show-main" msgstr "Prikaži glavnu komponentu" +#: src/app/main/ui/workspace/context_menu.cljs:221 msgid "workspace.shape.menu.thumbnail-remove" msgstr "Ukloni sličicu" +#: src/app/main/ui/workspace/context_menu.cljs:223 msgid "workspace.shape.menu.thumbnail-set" msgstr "Postavi kao sličicu" -#, fuzzy +#: src/app/main/ui/workspace/context_menu.cljs:326 msgid "workspace.shape.menu.transform-to-path" msgstr "Transformiraj u path" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:257 msgid "workspace.shape.menu.ungroup" msgstr "Razgrupiraj" +#: src/app/main/ui/workspace/context_menu.cljs:332, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:70 msgid "workspace.shape.menu.union" msgstr "Unija" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:368, src/app/main/ui/workspace/sidebar/layer_item.cljs:152 msgid "workspace.shape.menu.unlock" msgstr "Otključaj" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:271 msgid "workspace.shape.menu.unmask" msgstr "Ukloni masku" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs +#, unused msgid "workspace.shape.menu.update-components-in-bulk" msgstr "Ažuriraj glavne komponente" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:445 msgid "workspace.shape.menu.update-main" msgstr "Ažuriraj glavnu komponentu" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/right_header.cljs:231, src/app/main/ui/workspace/right_header.cljs:232 msgid "workspace.sidebar.history" msgstr "Povijest (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs -#, fuzzy +#: src/app/main/ui/workspace/sidebar/layers.cljs:522, src/app/main/ui/workspace/sidebar.cljs:100 msgid "workspace.sidebar.layers" msgstr "Layeri" +#: src/app/main/ui/workspace/sidebar/layers.cljs:308, src/app/main/ui/workspace/sidebar/layers.cljs:380 msgid "workspace.sidebar.layers.components" msgstr "Komponente" +#: src/app/main/ui/workspace/sidebar/layers.cljs:305, src/app/main/ui/workspace/sidebar/layers.cljs:338 msgid "workspace.sidebar.layers.frames" msgstr "Ploče" +#: src/app/main/ui/workspace/sidebar/layers.cljs:306, src/app/main/ui/workspace/sidebar/layers.cljs:352 msgid "workspace.sidebar.layers.groups" msgstr "Grupe" +#: src/app/main/ui/workspace/sidebar/layers.cljs:310, src/app/main/ui/workspace/sidebar/layers.cljs:408 msgid "workspace.sidebar.layers.images" msgstr "Slike" +#: src/app/main/ui/workspace/sidebar/layers.cljs:307, src/app/main/ui/workspace/sidebar/layers.cljs:366 msgid "workspace.sidebar.layers.masks" msgstr "Maske" -#, fuzzy +#: src/app/main/ui/workspace/sidebar/layers.cljs:289 msgid "workspace.sidebar.layers.search" msgstr "Traži layere" +#: src/app/main/ui/workspace/sidebar/layers.cljs:311, src/app/main/ui/workspace/sidebar/layers.cljs:422 msgid "workspace.sidebar.layers.shapes" msgstr "Oblici" +#: src/app/main/ui/workspace/sidebar/layers.cljs:309, src/app/main/ui/workspace/sidebar/layers.cljs:394 msgid "workspace.sidebar.layers.texts" msgstr "Tekstovi" -#: src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs, -#: src/app/main/ui/inspect/attributes/svg.cljs +#: src/app/main/ui/viewer/inspect/attributes/svg.cljs:56, src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs:91 msgid "workspace.sidebar.options.svg-attrs.title" msgstr "Uvezeni SVG atributi" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs +#: src/app/main/ui/workspace/sidebar/sitemap.cljs:217 msgid "workspace.sidebar.sitemap" msgstr "Stranice" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/left_header.cljs:91 msgid "workspace.sitemap" msgstr "Sitemap" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/sidebar.cljs:120 msgid "workspace.toolbar.assets" msgstr "Stavke" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/palette.cljs:165, src/app/main/ui/workspace/palette.cljs:166 msgid "workspace.toolbar.color-palette" msgstr "Paleta boja (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/right_header.cljs:220, src/app/main/ui/workspace/right_header.cljs:221 msgid "workspace.toolbar.comments" msgstr "Komentari (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:180, src/app/main/ui/workspace/top_toolbar.cljs:181 msgid "workspace.toolbar.curve" msgstr "Krivulja (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:160, src/app/main/ui/workspace/top_toolbar.cljs:161 msgid "workspace.toolbar.ellipse" msgstr "Elipsa (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:142, src/app/main/ui/workspace/top_toolbar.cljs:143 msgid "workspace.toolbar.frame" msgstr "Ploča (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:59, src/app/main/ui/workspace/top_toolbar.cljs:60 msgid "workspace.toolbar.image" msgstr "Slika (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:132, src/app/main/ui/workspace/top_toolbar.cljs:133 msgid "workspace.toolbar.move" msgstr "Premijesti (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs -#, fuzzy +#: src/app/main/ui/workspace/top_toolbar.cljs:189, src/app/main/ui/workspace/top_toolbar.cljs:190 msgid "workspace.toolbar.path" msgstr "Path (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:151, src/app/main/ui/workspace/top_toolbar.cljs:152 msgid "workspace.toolbar.rect" msgstr "Pravokutnik (%s)" #: src/app/main/ui/workspace/left_toolbar.cljs +#, unused msgid "workspace.toolbar.shortcuts" msgstr "Prečaci (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:169, src/app/main/ui/workspace/top_toolbar.cljs:170 msgid "workspace.toolbar.text" msgstr "Tekst (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/palette.cljs:173, src/app/main/ui/workspace/palette.cljs:174 msgid "workspace.toolbar.text-palette" msgstr "Tipografija (%s)" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:342 msgid "workspace.undo.empty" msgstr "Do sada nema promjena povijesti" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:147 msgid "workspace.undo.entry.delete" msgstr "Izbrisano %s" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:146 msgid "workspace.undo.entry.modify" msgstr "Izmijenjeno %s" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:148 msgid "workspace.undo.entry.move" msgstr "Premiješteni objekti" +#: src/app/main/ui/workspace/sidebar/history.cljs:111 msgid "workspace.undo.entry.multiple.circle" msgstr "krugovi" +#: src/app/main/ui/workspace/sidebar/history.cljs:112 msgid "workspace.undo.entry.multiple.color" msgstr "stavke boja" +#: src/app/main/ui/workspace/sidebar/history.cljs:113 msgid "workspace.undo.entry.multiple.component" msgstr "komponente" +#: src/app/main/ui/workspace/sidebar/history.cljs:114 msgid "workspace.undo.entry.multiple.curve" msgstr "krivulje" +#: src/app/main/ui/workspace/sidebar/history.cljs:115 msgid "workspace.undo.entry.multiple.frame" msgstr "ploča" +#: src/app/main/ui/workspace/sidebar/history.cljs:116 msgid "workspace.undo.entry.multiple.group" msgstr "grupe" +#: src/app/main/ui/workspace/sidebar/history.cljs:117 msgid "workspace.undo.entry.multiple.media" msgstr "grafičke stavke" +#: src/app/main/ui/workspace/sidebar/history.cljs:118 msgid "workspace.undo.entry.multiple.multiple" msgstr "objekti" +#: src/app/main/ui/workspace/sidebar/history.cljs:119 msgid "workspace.undo.entry.multiple.page" msgstr "stranice" -#, fuzzy +#: src/app/main/ui/workspace/sidebar/history.cljs:120 msgid "workspace.undo.entry.multiple.path" msgstr "paths" +#: src/app/main/ui/workspace/sidebar/history.cljs:121 msgid "workspace.undo.entry.multiple.rect" msgstr "pravokutnici" +#: src/app/main/ui/workspace/sidebar/history.cljs:122 msgid "workspace.undo.entry.multiple.shape" msgstr "oblici" +#: src/app/main/ui/workspace/sidebar/history.cljs:123 msgid "workspace.undo.entry.multiple.text" msgstr "tekstovi" +#: src/app/main/ui/workspace/sidebar/history.cljs:124 msgid "workspace.undo.entry.multiple.typography" msgstr "tipografske stavke" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:145 msgid "workspace.undo.entry.new" msgstr "Novo %s" +#: src/app/main/ui/workspace/sidebar/history.cljs:125 msgid "workspace.undo.entry.single.circle" msgstr "krug" +#: src/app/main/ui/workspace/sidebar/history.cljs:126 msgid "workspace.undo.entry.single.color" msgstr "stavka boja" +#: src/app/main/ui/workspace/sidebar/history.cljs:127 msgid "workspace.undo.entry.single.component" msgstr "komponenta" +#: src/app/main/ui/workspace/sidebar/history.cljs:128 msgid "workspace.undo.entry.single.curve" msgstr "krivulja" +#: src/app/main/ui/workspace/sidebar/history.cljs:129 msgid "workspace.undo.entry.single.frame" msgstr "ploča" +#: src/app/main/ui/workspace/sidebar/history.cljs:130 msgid "workspace.undo.entry.single.group" msgstr "grupa" +#: src/app/main/ui/workspace/sidebar/history.cljs:131 msgid "workspace.undo.entry.single.image" msgstr "slika" +#: src/app/main/ui/workspace/sidebar/history.cljs:132 msgid "workspace.undo.entry.single.media" msgstr "grafička stavka" +#: src/app/main/ui/workspace/sidebar/history.cljs:133 msgid "workspace.undo.entry.single.multiple" msgstr "objekt" +#: src/app/main/ui/workspace/sidebar/history.cljs:134 msgid "workspace.undo.entry.single.page" msgstr "stranica" -#, fuzzy +#: src/app/main/ui/workspace/sidebar/history.cljs:135 msgid "workspace.undo.entry.single.path" msgstr "path" +#: src/app/main/ui/workspace/sidebar/history.cljs:136 msgid "workspace.undo.entry.single.rect" msgstr "pravokutnik" +#: src/app/main/ui/workspace/sidebar/history.cljs:137 msgid "workspace.undo.entry.single.shape" msgstr "oblik" +#: src/app/main/ui/workspace/sidebar/history.cljs:138 msgid "workspace.undo.entry.single.text" msgstr "tekst" +#: src/app/main/ui/workspace/sidebar/history.cljs:139 msgid "workspace.undo.entry.single.typography" msgstr "tipografska stavka" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:149 msgid "workspace.undo.entry.unknown" msgstr "Operacija izvršena %s" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:335 msgid "workspace.undo.title" msgstr "Povijest" -#: src/app/main/data/workspace/libraries.cljs +#: src/app/main/data/workspace/libraries.cljs:1094 msgid "workspace.updates.dismiss" msgstr "Odbaci" -#: src/app/main/data/workspace/libraries.cljs +#: src/app/main/data/workspace/libraries.cljs:1090 msgid "workspace.updates.there-are-updates" msgstr "Postoje ažuriranja u zajedničkim bibliotekama" -#: src/app/main/data/workspace/libraries.cljs +#: src/app/main/data/workspace/libraries.cljs:1097 msgid "workspace.updates.update" msgstr "Ažuriraj" -#, fuzzy +#, unused msgid "workspace.viewport.click-to-close-path" msgstr "Pritisni da zatvoriš path" diff --git a/frontend/translations/id.po b/frontend/translations/id.po index 9e6bef4d69..d1838e9ba0 100644 --- a/frontend/translations/id.po +++ b/frontend/translations/id.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "PO-Revision-Date: 2024-06-17 08:07+0000\n" "Last-Translator: Anonymous \n" -"Language-Team: Indonesian \n" +"Language-Team: Indonesian " +"\n" "Language: id\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" @@ -11,5175 +11,5672 @@ msgstr "" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Weblate 5.6-dev\n" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:151, src/app/main/ui/viewer/login.cljs:104 msgid "auth.already-have-account" msgstr "Sudah memiliki akun?" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:299 msgid "auth.check-your-email" msgstr "" "Periksa surel Anda dan klik pada tautan tersebut untuk memverifikasi dan " "mulai menggunakan Penpot." -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:78 msgid "auth.confirm-password" msgstr "Konfirmasi kata sandi" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/register.cljs:163 msgid "auth.create-demo-account" msgstr "Buat akun demo" #: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#, unused msgid "auth.create-demo-profile" msgstr "Hanya ingin mencobanya?" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/login.cljs:43 msgid "auth.demo-warning" msgstr "" "Ini layanan DEMO, JANGAN GUNAKAN untuk pekerjaan nyata, proyek-proyek ini " "akan di hapus secara berkala." -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:189, src/app/main/ui/viewer/login.cljs:90 msgid "auth.forgot-password" msgstr "Lupa kata sandi?" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:254 msgid "auth.fullname" msgstr "Nama Lengkap" -#: src/app/main/ui/auth/register.cljs -#, fuzzy +#: src/app/main/ui/auth/login.cljs:282 +msgid "auth.login-account-title" +msgstr "Masuk ke akun saya" + +#: src/app/main/ui/auth/register.cljs:155, src/app/main/ui/viewer/login.cljs:107 msgid "auth.login-here" msgstr "Masuk di sini" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:195 msgid "auth.login-submit" msgstr "Masuk" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:285 +msgid "auth.login-tagline" +msgstr "" +"Penpot adalah peralatan desain bebas & bersumber terbuka untuk kolaborasi " +"Desain dan Kode" + +#: src/app/main/ui/auth/login.cljs:222 msgid "auth.login-with-github-submit" msgstr "GitHub" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:228 msgid "auth.login-with-gitlab-submit" msgstr "GitLab" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:216 msgid "auth.login-with-google-submit" msgstr "Google" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:201 msgid "auth.login-with-ldap-submit" msgstr "LDAP" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:234, src/app/main/ui/auth/login.cljs:255 msgid "auth.login-with-oidc-submit" msgstr "OpenID Connect" -#: src/app/main/ui/settings/team-form.cljs, src/app/main/ui/auth/register.cljs, -#: src/app/main/ui/dashboard/team_form.cljs, -#: src/app/main/ui/onboarding/team_choice.cljs, -#: src/app/main/ui/settings/access_tokens.cljs, -#: src/app/main/ui/settings/feedback.cljs, -#: src/app/main/ui/settings/profile.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/auth/register.cljs:217, src/app/main/ui/dashboard/team_form.cljs:76, src/app/main/ui/onboarding/team_choice.cljs:180, src/app/main/ui/settings/access_tokens.cljs:66, src/app/main/ui/settings/feedback.cljs:34, src/app/main/ui/settings/profile.cljs:45, src/app/main/ui/workspace/sidebar/assets/groups.cljs:108 msgid "auth.name.not-all-space" msgstr "Nama harus berisi beberapa karakter selain spasi." -#: src/app/main/ui/auth/register.cljs, -#: src/app/main/ui/dashboard/team_form.cljs, -#: src/app/main/ui/onboarding/team_choice.cljs, -#: src/app/main/ui/settings/access_tokens.cljs, -#: src/app/main/ui/settings/feedback.cljs, -#: src/app/main/ui/settings/profile.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/auth/register.cljs:218, src/app/main/ui/dashboard/team_form.cljs:77, src/app/main/ui/onboarding/team_choice.cljs:181, src/app/main/ui/settings/access_tokens.cljs:67, src/app/main/ui/settings/feedback.cljs:33, src/app/main/ui/settings/profile.cljs:44, src/app/main/ui/workspace/sidebar/assets/groups.cljs:109 msgid "auth.name.too-long" msgstr "Nama harus berisi setidaknya 250 karakter." -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:71 msgid "auth.new-password" msgstr "Ketik kata sandi baru" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:42 msgid "auth.notifications.invalid-token-error" msgstr "Token pemulihan tidak sah." -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:46 msgid "auth.notifications.password-changed-successfully" msgstr "Kata sandi berhasil diubah" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:57 msgid "auth.notifications.profile-not-verified" -msgstr "" -"Profil belum terverifikasi, harap verifikasi profil sebelum melanjutkan." +msgstr "Profil belum terverifikasi, harap verifikasi profil sebelum melanjutkan." -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:40 msgid "auth.notifications.recovery-token-sent" msgstr "Tautan pemulihan kata sandi telah dikirim ke kotak masuk Anda." -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:47 msgid "auth.notifications.team-invitation-accepted" msgstr "Berhasil bergabung ke tim" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:179, src/app/main/ui/auth/register.cljs:115 msgid "auth.password" msgstr "Kata sandi" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:114 msgid "auth.password-length-hint" msgstr "Setidaknya 8 karakter" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/recovery.cljs:61, src/app/main/ui/auth/recovery.cljs:62, src/app/main/ui/auth/register.cljs:81, src/app/main/ui/settings/password.cljs:75, src/app/main/ui/settings/password.cljs:76, src/app/main/ui/settings/password.cljs:77 msgid "auth.password-not-empty" msgstr "Kata sandi harus berisi beberapa karakter selain spasi." +#: src/app/main/ui/auth.cljs:41 msgid "auth.privacy-policy" msgstr "Kebijakan privasi" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:88 msgid "auth.recovery-request-submit" msgstr "Pulihkan Kata Sandi" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:101 msgid "auth.recovery-request-subtitle" msgstr "Kami akan mengirimkan Anda surel dengan instruksi" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:100 msgid "auth.recovery-request-title" msgstr "Lupa kata sandi?" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:82 msgid "auth.recovery-submit" msgstr "Ubah kata sandi Anda" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:298, src/app/main/ui/viewer/login.cljs:93 msgid "auth.register" msgstr "Belum punya akun?" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:302, src/app/main/ui/auth/register.cljs:121, src/app/main/ui/auth/register.cljs:263, src/app/main/ui/viewer/login.cljs:97 msgid "auth.register-submit" msgstr "Buat akun baru" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:140 msgid "auth.register-title" msgstr "Buat akun baru" #: src/app/main/ui/auth.cljs +#, unused msgid "auth.sidebar-tagline" msgstr "Solusi sumber terbuka untuk pembuatan desain dan prototipe." +#: src/app/main/ui/auth.cljs:33, src/app/main/ui/dashboard/sidebar.cljs:1022, src/app/main/ui/workspace/main_menu.cljs:150 msgid "auth.terms-of-service" msgstr "Kebijakan layanan" -#: src/app/main/ui/auth/register.cljs +#, unused msgid "auth.terms-privacy-agreement" msgstr "" "Ketika membuat akun baru, Anda menyetujui kebijakan layanan dan kebijakan " "privasi kami." -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:297 msgid "auth.verification-email-sent" msgstr "Kami telah mengirimkan surel verifikasi ke" #: src/app/main/ui/onboarding/questions.cljs +#, unused msgid "branding-illustrations-marketing-pieces" msgstr "...pencitraan merek, ilustrasi, bagian pemasaran, dll." +#: src/app/main/ui/workspace/libraries.cljs:228 msgid "common.publish" msgstr "Terbitkan" +#: src/app/main/ui/viewer/share_link.cljs:304, src/app/main/ui/viewer/share_link.cljs:314 msgid "common.share-link.all-users" msgstr "Semua pengguna Penpot" +#: src/app/main/ui/viewer/share_link.cljs:198 msgid "common.share-link.confirm-deletion-link-description" msgstr "" "Apakah Anda yakin ingin menghapus tautan ini? Jika Anda menghapusnya, maka " "tautan tersebut tidak akan lagi tersedia bagi siapa pun" +#: src/app/main/ui/viewer/share_link.cljs:259, src/app/main/ui/viewer/share_link.cljs:289 msgid "common.share-link.current-tag" msgstr "(saat ini)" +#: src/app/main/ui/viewer/share_link.cljs:207, src/app/main/ui/viewer/share_link.cljs:214 msgid "common.share-link.destroy-link" msgstr "Hancurkan tautan" +#: src/app/main/ui/viewer/share_link.cljs:221 msgid "common.share-link.get-link" msgstr "Dapatkan tautan" +#: src/app/main/ui/viewer/share_link.cljs:139 msgid "common.share-link.link-copied-success" msgstr "Tautan berhasil disalin" +#: src/app/main/ui/viewer/share_link.cljs:231 msgid "common.share-link.manage-ops" msgstr "Atur perizinan" +#: src/app/main/ui/viewer/share_link.cljs:277 msgid "common.share-link.page-shared" msgid_plural "common.share-link.page-shared" msgstr[0] "%s halaman dibagikan" +#: src/app/main/ui/viewer/share_link.cljs:298 msgid "common.share-link.permissions-can-comment" msgstr "Dapat berkomentar" +#: src/app/main/ui/viewer/share_link.cljs:308 msgid "common.share-link.permissions-can-inspect" msgstr "Dapat menginspeksi kode" +#: src/app/main/ui/viewer/share_link.cljs:193 msgid "common.share-link.permissions-hint" msgstr "Siapapun yang memiliki tautan dapat mengakses" +#: src/app/main/ui/viewer/share_link.cljs:241 msgid "common.share-link.permissions-pages" msgstr "Halaman yang dibagikan" +#: src/app/main/ui/viewer/share_link.cljs:183 msgid "common.share-link.placeholder" msgstr "Tautan yang dapat dibagikan akan muncul di sini" +#: src/app/main/ui/viewer/share_link.cljs:303, src/app/main/ui/viewer/share_link.cljs:313 msgid "common.share-link.team-members" msgstr "Hanya anggota tim" +#: src/app/main/ui/viewer/share_link.cljs:171 msgid "common.share-link.title" msgstr "Bagikan prototipe" +#: src/app/main/ui/viewer/share_link.cljs:269 msgid "common.share-link.view-all" msgstr "Pilih Semua" +#: src/app/main/ui/workspace/libraries.cljs:224 msgid "common.unpublish" msgstr "Batalkan penerbitan" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:85 msgid "dasboard.team-hero.management" msgstr "Pengelolaan tim" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:84 msgid "dasboard.team-hero.text" msgstr "" "Penpot dimaksud untuk tim. Undang anggota untuk bekerja bersama pada " "berbagai proyek dan berkas" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:82 msgid "dasboard.team-hero.title" msgstr "Bersekutu!" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.tutorial-hero.info" msgstr "" -"Pelajari dasarnya di Penpot sambil bersenang-senang dengan tutorial langsung " -"ini." +"Pelajari dasarnya di Penpot sambil bersenang-senang dengan tutorial " +"langsung ini." #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.tutorial-hero.start" msgstr "Mulai tutorial" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.tutorial-hero.title" msgstr "Tutorial Langsung" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.walkthrough-hero.info" msgstr "Lihat sekitar Penpot dan ketahui fitur utamanya." #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.walkthrough-hero.start" msgstr "Mulai tur" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.walkthrough-hero.title" msgstr "Panduan Antarmuka" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:115 msgid "dashboard.access-tokens.copied-success" msgstr "Token disalin" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:202 msgid "dashboard.access-tokens.create" msgstr "Buat token baru" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:76 msgid "dashboard.access-tokens.create.success" msgstr "Token akses berhasil dibuat." -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:300 msgid "dashboard.access-tokens.empty.add-one" msgstr "Tekan tombol \"Buat token baru\" untuk membuat token." -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:299 msgid "dashboard.access-tokens.empty.no-access-tokens" msgstr "Anda belum memiliki token." -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:53 msgid "dashboard.access-tokens.errors-required-name" msgstr "Nama diperlukan" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:147 msgid "dashboard.access-tokens.expiration-180-days" msgstr "180 hari" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:144 msgid "dashboard.access-tokens.expiration-30-days" msgstr "30 hari" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:145 msgid "dashboard.access-tokens.expiration-60-days" msgstr "60 hari" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:146 msgid "dashboard.access-tokens.expiration-90-days" msgstr "90 hari" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:143 msgid "dashboard.access-tokens.expiration-never" msgstr "Tidak pernah" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:282 msgid "dashboard.access-tokens.expired-on" msgstr "Telah kedaluwarsa pada %s" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:283 msgid "dashboard.access-tokens.expires-on" msgstr "Kedaluwarsa pada %s" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:281 msgid "dashboard.access-tokens.no-expiration" msgstr "Tidak ada tanggal kedaluwarsa" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:197 msgid "dashboard.access-tokens.personal" msgstr "Token akses pribadi" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:198 msgid "dashboard.access-tokens.personal.description" msgstr "" "Token akses pribadi berfungsi sebagai alternatif sistem autentikasi nama " "pengguna dan kata sandi dan dapat digunakan untuk memperbolehkan sebuah " "aplikasi untuk mengakses API Penpot internal" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:154 msgid "dashboard.access-tokens.token-will-expire" msgstr "Token akan kedaluwarsa pada %s" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:155 msgid "dashboard.access-tokens.token-will-not-expire" msgstr "Token tidak memiliki tanggal kedaluwarsa" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:291, src/app/main/ui/workspace/main_menu.cljs:572 msgid "dashboard.add-shared" msgstr "Tambahkan sebagai Pustaka Bersama" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:75 msgid "dashboard.change-email" msgstr "Ubah surel" -#: src/app/main/data/dashboard.cljs, src/app/main/data/dashboard.cljs +#: src/app/main/data/dashboard.cljs:762, src/app/main/data/dashboard.cljs:983 msgid "dashboard.copy-suffix" msgstr "(salin)" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:338 msgid "dashboard.create-new-team" msgstr "Buat tim baru" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/components/context_menu_a11y.cljs:256, src/app/main/ui/dashboard/sidebar.cljs:646 msgid "dashboard.default-team-name" msgstr "Penpot Anda" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:571 msgid "dashboard.delete-team" msgstr "Hapus tim" +#: src/app/main/ui/dashboard/file_menu.cljs:296, src/app/main/ui/workspace/main_menu.cljs:589 msgid "dashboard.download-binary-file" msgstr "Unduh berkas Penpot (.penpot)" +#: src/app/main/ui/dashboard/file_menu.cljs:300, src/app/main/ui/workspace/main_menu.cljs:597 msgid "dashboard.download-standard-file" msgstr "Unduh berkas standar (.svg + .json)" -#: src/app/main/ui/dashboard/project_menu.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:276, src/app/main/ui/dashboard/project_menu.cljs:90 msgid "dashboard.duplicate" msgstr "Duplikasi" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:240 msgid "dashboard.duplicate-multi" msgstr "Gandakan % berkas" -#: src/app/main/ui/dashboard/grid.cljs +#: src/app/main/ui/dashboard/placeholder.cljs:32 +#, markdown msgid "dashboard.empty-placeholder-drafts" msgstr "" "Berkas yang ditambahkan ke Pustaka akan muncul di sini. Coba membagikan " -"berkas Anda atau menambahkan dari [Pustaka & templat](https://penpot.app/" -"libraries-templates) kami." +"berkas Anda atau menambahkan dari [Pustaka & " +"templat](https://penpot.app/libraries-templates) kami." +#: src/app/main/ui/dashboard/file_menu.cljs:249 msgid "dashboard.export-binary-multi" msgstr "Unduh %s berkas Penpot (.penpot)" +#: src/app/main/ui/workspace/main_menu.cljs:605 msgid "dashboard.export-frames" msgstr "Ekspor papan sebagai PDF" -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:201 msgid "dashboard.export-frames.title" msgstr "Ekspor sebagai PDF" +#, unused msgid "dashboard.export-multi" msgstr "Ekspor %s berkas Penpot" -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:109 msgid "dashboard.export-multiple.selected" msgstr "%s dari %s elemen dipilih" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:578 msgid "dashboard.export-shapes" msgstr "Ekspor" -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:180 msgid "dashboard.export-shapes.how-to" msgstr "" "Anda dapat menambahkan pengaturan pengeksporan ke elemen dari properti " "desain (di bawah dari bilah sisi kanan)." -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:184 msgid "dashboard.export-shapes.how-to-link" msgstr "Info bagaimana menetapkan pengeksporan di Penpot." -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:179 msgid "dashboard.export-shapes.no-elements" msgstr "Tidak ada elemen dengan pengaturan pengeksporan." -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:190 msgid "dashboard.export-shapes.title" msgstr "Ekspor pilihan" +#: src/app/main/ui/dashboard/file_menu.cljs:252 msgid "dashboard.export-standard-multi" msgstr "Unduh %s berkas standar (.svg + .json)" +#: src/app/main/ui/export.cljs:427 msgid "dashboard.export.detail" msgstr "* Dapat mencakup komponen, grafik, warna dan/atau tipografi." +#: src/app/main/ui/export.cljs:426 msgid "dashboard.export.explain" msgstr "" "Satu atau lebih berkas yang ingin Anda ekspor menggunakan pustaka bersama. " "Apa yang ingin Anda lakukan dengan asetnya*?" +#: src/app/main/ui/export.cljs:435 msgid "dashboard.export.options.all.message" msgstr "berkas dengan pustaka bersama akan dimasukkan dalam hasil ekspor." +#: src/app/main/ui/export.cljs:436 msgid "dashboard.export.options.all.title" msgstr "Ekspor pustaka bersama" +#: src/app/main/ui/export.cljs:437 msgid "dashboard.export.options.detach.message" msgstr "" "Pustaka bersama tidak akan dimasukkan dalam hasil ekspor dan tidak ada aset " "yang akan ditambahkan ke pustaka. " +#: src/app/main/ui/export.cljs:438 msgid "dashboard.export.options.detach.title" msgstr "Perlakukan aset pustaka terbagi sebagai objek dasar" +#: src/app/main/ui/export.cljs:439 msgid "dashboard.export.options.merge.message" msgstr "" "Berkas Anda akan diekspor dengan semua aset eksternal tergabung dalam " "pustaka berkas." +#: src/app/main/ui/export.cljs:440 msgid "dashboard.export.options.merge.title" msgstr "Termasuk aset pustaka terbagi dalam pustaka berkas" +#: src/app/main/ui/export.cljs:418 msgid "dashboard.export.title" msgstr "Ekspor berkas" +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:309 msgid "dashboard.fonts.deleted-placeholder" msgstr "Fon dihapus" -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:206 msgid "dashboard.fonts.dismiss-all" msgstr "Abaikan semua" +#: src/app/main/ui/dashboard/fonts.cljs:436 msgid "dashboard.fonts.empty-placeholder" msgstr "Fon khusus yang Anda unggah akan muncul di sini." -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:194 msgid "dashboard.fonts.fonts-added" msgid_plural "dashboard.fonts.fonts-added" msgstr[0] "%s fon ditambahkan" +#: src/app/main/ui/dashboard/fonts.cljs:170 +#, markdown msgid "dashboard.fonts.hero-text1" msgstr "" -"Fon web apa pun yang Anda unggah di sini akan ditambahkan ke daftar keluarga " -"fon yang tersedia di properti teks dari berkas dari tim ini. Fon dengan nama " -"keluarga fon yang sama akan dikelompokkan sebagai **keluarga fon tunggal**. " -"Anda dapat mengunggah fon dengan format berikut: **TTF, OTF, dan WOFF** " -"(hanya satu yang diperlukan)." +"Fon web apa pun yang Anda unggah di sini akan ditambahkan ke daftar " +"keluarga fon yang tersedia di properti teks dari berkas dari tim ini. Fon " +"dengan nama keluarga fon yang sama akan dikelompokkan sebagai **keluarga " +"fon tunggal**. Anda dapat mengunggah fon dengan format berikut: **TTF, OTF, " +"dan WOFF** (hanya satu yang diperlukan)." +#: src/app/main/ui/dashboard/fonts.cljs:182 +#, markdown msgid "dashboard.fonts.hero-text2" msgstr "" "Anda seharusnya hanya mengunggah fon yang Anda miliki atau memiliki izin " "untuk menggunakannya dalam Penpot. Ketahui lebih lanjut dalam bagian Hak " -"konten (Content rights) dari [Ketentuan Layanan Penpot](https://penpot.app/" -"terms.html). Anda mungkin juga ingin membaca tentang [lisensi fon](https://" -"www.typography.com/faq)." +"konten (Content rights) dari [Ketentuan Layanan " +"Penpot](https://penpot.app/terms.html). Anda mungkin juga ingin membaca " +"tentang [lisensi fon](https://www.typography.com/faq)." -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:202 msgid "dashboard.fonts.upload-all" msgstr "Unggah semua" +#: src/app/main/ui/dashboard/fonts.cljs:187 +#, markdown msgid "dashboard.fonts.warning-text" msgstr "" -"Kami telah mendeteksi masalah yang mungkin ada dalam fon Anda terkair dengan " -"metrik vertikal untuk berbagai sistem operasi. Supaya bisa diperiksa, Anda " -"dapat menggunakan layanan metrik vertikal fon seperti [yang ini](https://" -"vertical-metrics.netlify.app/). Sebagai tambahan, kami juga menyarankan " -"menggunakan [Transfonter](https://transfonter.org/) untuk membuat fon web " -"dan memperbaiki kesalahan. " +"Kami telah mendeteksi masalah yang mungkin ada dalam fon Anda terkair " +"dengan metrik vertikal untuk berbagai sistem operasi. Supaya bisa " +"diperiksa, Anda dapat menggunakan layanan metrik vertikal fon seperti [yang " +"ini](https://vertical-metrics.netlify.app/). Sebagai tambahan, kami juga " +"menyarankan menggunakan [Transfonter](https://transfonter.org/) untuk " +"membuat fon web dan memperbaiki kesalahan. " +#: src/app/main/ui/dashboard/import.cljs:472, src/app/main/ui/dashboard/project_menu.cljs:108 msgid "dashboard.import" msgstr "Impor berkas Penpot" +#: src/app/main/ui/dashboard/import.cljs:304, src/app/worker/import.cljs:753, src/app/worker/import.cljs:755 msgid "dashboard.import.analyze-error" msgstr "Aduh! Kami tidak dapat mengimpor berkas ini" +#, unused msgid "dashboard.import.analyze-error.components-v2" -msgstr "" -"Berkas dengan komponen v2 diaktifkan tetapi tim ini belum mendukungnya." +msgstr "Berkas dengan komponen v2 diaktifkan tetapi tim ini belum mendukungnya." +#: src/app/main/ui/dashboard/import.cljs:308 msgid "dashboard.import.import-error" msgstr "Terdapat masalah saat mengimpor berkas. Berkasnya tidak terimpor." +#: src/app/main/ui/dashboard/import.cljs:493 msgid "dashboard.import.import-message" msgstr "%s berkas telah berhasil diimpor." +#: src/app/main/ui/dashboard/import.cljs:481, src/app/main/ui/dashboard/import.cljs:488 msgid "dashboard.import.import-warning" msgstr "Beberapa berkas berisi objek yang tidak valid yang telah dihapus." +#: src/app/main/ui/dashboard/import.cljs:144 msgid "dashboard.import.progress.process-colors" msgstr "Memproses warna" +#: src/app/main/ui/dashboard/import.cljs:153 msgid "dashboard.import.progress.process-components" msgstr "Memproses komponen" +#: src/app/main/ui/dashboard/import.cljs:150 msgid "dashboard.import.progress.process-media" msgstr "Memproses media" +#: src/app/main/ui/dashboard/import.cljs:141 msgid "dashboard.import.progress.process-page" msgstr "Memproses halaman: %s" +#: src/app/main/ui/dashboard/import.cljs:147 msgid "dashboard.import.progress.process-typographies" msgstr "Memproses tipografi" +#: src/app/main/ui/dashboard/import.cljs:135 msgid "dashboard.import.progress.upload-data" msgstr "Mengunggah data ke server (%s/%s)" +#: src/app/main/ui/dashboard/import.cljs:138 msgid "dashboard.import.progress.upload-media" msgstr "Mengunggah berkas: %s" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:109 msgid "dashboard.invite-profile" msgstr "Undang orang" -#: src/app/main/ui/dashboard/sidebar.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:547, src/app/main/ui/dashboard/sidebar.cljs:556, src/app/main/ui/dashboard/sidebar.cljs:563, src/app/main/ui/dashboard/team.cljs:312 msgid "dashboard.leave-team" msgstr "Tinggalkan tim" +#: src/app/main/ui/dashboard/templates.cljs:88, src/app/main/ui/dashboard/templates.cljs:163 msgid "dashboard.libraries-and-templates" msgstr "Pustaka & Template" +#: src/app/main/ui/dashboard/templates.cljs:164 msgid "dashboard.libraries-and-templates.explore" msgstr "Jelajahi lebih banyak dan pelajari cara berkontribusi" +#: src/app/main/ui/dashboard/import.cljs:365 msgid "dashboard.libraries-and-templates.import-error" msgstr "Terjadi masalah saat mengimpor template. Template tidak diimpor." -#: src/app/main/ui/dashboard/libraries.cljs +#: src/app/main/ui/dashboard/libraries.cljs:53 msgid "dashboard.libraries-title" msgstr "Pustaka" -#: src/app/main/ui/dashboard/grid.cljs +#: src/app/main/ui/dashboard/placeholder.cljs:45 msgid "dashboard.loading-files" msgstr "memuat berkas Anda …" +#: src/app/main/ui/dashboard/fonts.cljs:431 msgid "dashboard.loading-fonts" msgstr "memuat fon Anda …" -#: src/app/main/ui/dashboard/project_menu.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:281, src/app/main/ui/dashboard/project_menu.cljs:100 msgid "dashboard.move-to" msgstr "Pindahkan ke" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:245 msgid "dashboard.move-to-multi" msgstr "Pindahkan %s berkas ke" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:226 msgid "dashboard.move-to-other-team" msgstr "Pindahkan ke tim lain" -#: src/app/main/ui/dashboard/projects.cljs, -#: src/app/main/ui/dashboard/files.cljs +#: src/app/main/ui/dashboard/files.cljs:105, src/app/main/ui/dashboard/projects.cljs:252, src/app/main/ui/dashboard/projects.cljs:253 msgid "dashboard.new-file" msgstr "+ Buat Berkas" -#: src/app/main/data/dashboard.cljs +#: src/app/main/data/dashboard.cljs:958, src/app/main/data/dashboard.cljs:1181 msgid "dashboard.new-file-prefix" msgstr "Berkas Baru" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:55 msgid "dashboard.new-project" msgstr "+ Buat Proyek" -#: src/app/main/data/dashboard.cljs +#: src/app/main/data/dashboard.cljs:726, src/app/main/data/dashboard.cljs:1184 msgid "dashboard.new-project-prefix" msgstr "Proyek Baru" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:60 msgid "dashboard.no-matches-for" msgstr "Tidak ada hasil yang ditemukan untuk “%s”" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:827 msgid "dashboard.no-projects-placeholder" msgstr "Proyek yang disemat akan muncul di sini" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:33 msgid "dashboard.notifications.email-changed-successfully" msgstr "Alamat surel Anda berhasil diperbarui" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:27 msgid "dashboard.notifications.email-verified-successfully" msgstr "Alamat surel Anda berhasil diverifikasi" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:37 msgid "dashboard.notifications.password-saved" msgstr "Berhasil menyimpan kata sandi!" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1081 msgid "dashboard.num-of-members" msgstr "%s anggota" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:267 msgid "dashboard.open-in-new-tab" msgstr "Buka berkas di tab baru" +#: src/app/main/ui/dashboard/files.cljs:117, src/app/main/ui/dashboard/projects.cljs:260, src/app/main/ui/dashboard/projects.cljs:261 msgid "dashboard.options" msgstr "Opsi" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:106, src/app/main/ui/settings/password.cljs:119 msgid "dashboard.password-change" msgstr "Ubah kata sandi" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/pin_button.cljs:24, src/app/main/ui/dashboard/project_menu.cljs:95 msgid "dashboard.pin-unpin" msgstr "Semat/Lepas semat" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:51 msgid "dashboard.projects-title" msgstr "Proyek" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:86 msgid "dashboard.remove-account" msgstr "Ingin menghapus akun Anda?" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "dashboard.remove-shared" msgstr "Hapus sebagai Pustaka Terbagi" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:78 msgid "dashboard.save-settings" msgstr "Simpan pengaturan" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:246, src/app/main/ui/dashboard/sidebar.cljs:247 msgid "dashboard.search-placeholder" msgstr "Cari…" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:55 msgid "dashboard.searching-for" msgstr "Mencari “%s”…" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:56 msgid "dashboard.select-ui-language" msgstr "Pilih bahasa antarmuka" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:63 msgid "dashboard.select-ui-theme" msgstr "Pilih tema" -#: src/app/main/ui/dashboard/grid.cljs +#: src/app/main/ui/dashboard/projects.cljs:282 msgid "dashboard.show-all-files" msgstr "Tampilkan semua berkas" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:96 msgid "dashboard.success-delete-file" msgid_plural "dashboard.success-delete-file" msgstr[0] "Berkas Anda berhasil dihapus" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:59 msgid "dashboard.success-delete-project" msgstr "Proyek Anda berhasil dihapus" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:91 msgid "dashboard.success-duplicate-file" msgid_plural "dashboard.success-delete-file" msgstr[0] "Berkas Anda berhasil digandakan" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:33 msgid "dashboard.success-duplicate-project" msgstr "Proyek Anda berhasil digandakan" -#: src/app/main/ui/dashboard/grid.cljs, src/app/main/ui/dashboard/sidebar.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:130, src/app/main/ui/dashboard/grid.cljs:558, src/app/main/ui/dashboard/sidebar.cljs:152 msgid "dashboard.success-move-file" msgstr "Berkas Anda berhasil dipindah" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:129 msgid "dashboard.success-move-files" msgstr "Berkas Anda berhasil dipindah" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:54 msgid "dashboard.success-move-project" msgstr "Proyek Anda berhasil dipindah" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1052 msgid "dashboard.team-info" msgstr "Info tim" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1070 msgid "dashboard.team-members" msgstr "Anggota tim" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1085 msgid "dashboard.team-projects" msgstr "Proyek tim" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:61 msgid "dashboard.theme-change" msgstr "Tema antarmuka" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:42 msgid "dashboard.title-search" msgstr "Hasil pencarian" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:50 msgid "dashboard.type-something" msgstr "Ketik untuk mencari hasil" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:287, src/app/main/ui/workspace/main_menu.cljs:566 msgid "dashboard.unpublish-shared" msgstr "Batal Penerbitan Pustaka" -#: src/app/main/ui/settings/password.cljs, -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:71 msgid "dashboard.update-settings" msgstr "Perbarui pengaturan" +#: src/app/main/ui/dashboard/team.cljs:861 msgid "dashboard.webhooks.active" msgstr "Aktif" +#: src/app/main/ui/dashboard/team.cljs:862 msgid "dashboard.webhooks.active.explain" msgstr "Ketika kaitan ini dipicu detail peristiwa akan dikirim" +#: src/app/main/ui/dashboard/team.cljs:852 msgid "dashboard.webhooks.content-type" msgstr "Jenis konten" +#: src/app/main/ui/dashboard/team.cljs:885 msgid "dashboard.webhooks.create" msgstr "Buat kaitan web" +#: src/app/main/ui/dashboard/team.cljs:775 msgid "dashboard.webhooks.create.success" msgstr "Kaitan web berhasil dibuat." +#: src/app/main/ui/dashboard/team.cljs:882 msgid "dashboard.webhooks.description" msgstr "" "Kaitan web (webhook) adalah cara yang sederhana untuk memperbolehkan situs " -"web dan aplikasi lain untuk diberi tahu ketika beberapa peristiwa terjadi di " -"Penpot. Kami mengirim permintaan POST untuk setiap URL yang Anda sediakan." +"web dan aplikasi lain untuk diberi tahu ketika beberapa peristiwa terjadi " +"di Penpot. Kami mengirim permintaan POST untuk setiap URL yang Anda " +"sediakan." +#: src/app/main/ui/dashboard/team.cljs:1005 msgid "dashboard.webhooks.empty.add-one" msgstr "Klik tombol \"Tambahkan kaitan web\" untuk menambahkan." +#: src/app/main/ui/dashboard/team.cljs:1004 msgid "dashboard.webhooks.empty.no-webhooks" msgstr "Tidak ada kaitan web yang dibuat sejauh ini." +#, unused msgid "dashboard.webhooks.update.success" msgstr "Kaitan web berhasil diperbarui." -#: src/app/main/ui/settings.cljs +#: src/app/main/ui/settings.cljs:31 msgid "dashboard.your-account-title" msgstr "Akun Anda" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:70 msgid "dashboard.your-email" msgstr "Surel" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:62 msgid "dashboard.your-name" msgstr "Nama Anda" -#: src/app/main/ui/dashboard/search.cljs, src/app/main/ui/dashboard/team.cljs, -#: src/app/main/ui/dashboard/libraries.cljs, -#: src/app/main/ui/dashboard/projects.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:38, src/app/main/ui/dashboard/fonts.cljs:33, src/app/main/ui/dashboard/libraries.cljs:42, src/app/main/ui/dashboard/projects.cljs:318, src/app/main/ui/dashboard/search.cljs:30, src/app/main/ui/dashboard/sidebar.cljs:312, src/app/main/ui/dashboard/team.cljs:495, src/app/main/ui/dashboard/team.cljs:729, src/app/main/ui/dashboard/team.cljs:991, src/app/main/ui/dashboard/team.cljs:1038 msgid "dashboard.your-penpot" msgstr "Penpot Anda" -#: src/app/main/ui/alert.cljs +#: src/app/main/ui/alert.cljs:32 msgid "ds.alert-ok" msgstr "Oke" -#: src/app/main/ui/alert.cljs +#: src/app/main/ui/alert.cljs:31, src/app/main/ui/alert.cljs:34 msgid "ds.alert-title" msgstr "Peringatan" -#: src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:83 msgid "ds.component-subtitle" msgstr "Komponen untuk diperbarui:" -#: src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:36, src/app/main/ui/workspace/plugins.cljs:246 msgid "ds.confirm-cancel" msgstr "Batal" -#: src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:37, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:141 msgid "ds.confirm-ok" msgstr "Oke" -#: src/app/main/ui/confirm.cljs, src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:35, src/app/main/ui/confirm.cljs:39 msgid "ds.confirm-title" msgstr "Apakah Anda yakin?" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/data/users.cljs:705 +msgid "errors.auth-provider-not-allowed" +msgstr "Penyedia autentikasi tidak diperbolehkan untuk profil ini" + +#: src/app/main/ui/auth/login.cljs:62 msgid "errors.auth-provider-not-configured" msgstr "Penyedia autentikasi tidak dikonfigurasi." +#: src/app/main/errors.cljs:104 msgid "errors.auth.unable-to-login" msgstr "Sepertinya Anda tidak terautentikasi atau sesi kedaluwarsa." +#: src/app/main/data/fonts.cljs:189 msgid "errors.bad-font" msgstr "Fon %s tidak dapat dimuat" +#: src/app/main/data/fonts.cljs:188 msgid "errors.bad-font-plural" msgstr "Fon %s tidak dapat dimuat" +#: src/app/main/data/workspace/media.cljs:198 msgid "errors.cannot-upload" msgstr "Tidak dapat mengunggah berkas media." -#: src/app/main/data/workspace.cljs +#: src/app/main/data/workspace.cljs:1598 msgid "errors.clipboard-not-implemented" msgstr "Peramban Anda tidak dapat melakukan operasi ini" -#: src/app/main/ui/auth/verify_token.cljs, -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/auth/verify_token.cljs:82, src/app/main/ui/settings/change_email.cljs:46 msgid "errors.email-already-exists" msgstr "Surel sudah digunakan" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:87 msgid "errors.email-already-validated" msgstr "Surel sudah divalidasi." +#: src/app/main/ui/settings/password.cljs:28 msgid "errors.email-as-password" msgstr "Anda tidak dapat menggunakan surel Anda sebagai kata sandi" -#: src/app/main/ui/auth/register.cljs, -#: src/app/main/ui/auth/recovery_request.cljs, -#: src/app/main/ui/settings/change_email.cljs, -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/data/users.cljs:707, src/app/main/ui/auth/register.cljs:63 +msgid "errors.email-domain-not-allowed" +msgstr "Domain tidak diperbolehkan" + +#: src/app/main/ui/auth/recovery_request.cljs:63, src/app/main/ui/dashboard/team.cljs:578, src/app/main/ui/settings/change_email.cljs:54 msgid "errors.email-has-permanent-bounces" msgstr "Surel “%s” memiliki banyak laporan lompatan permanen." -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs, -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/login.cljs:81, src/app/main/ui/auth/recovery_request.cljs:31, src/app/main/ui/auth/register.cljs:43 msgid "errors.email-invalid" msgstr "Silakan menyediakan surel yang valid" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:35 msgid "errors.email-invalid-confirmation" msgstr "Surel konfirmasi harus cocok" +#: src/app/main/ui/dashboard/team.cljs:170 msgid "errors.email-spam-or-permanent-bounces" msgstr "Surel “%s” telah dilaporkan sebagai spam atau lompatan permanen." -#: src/app/main/errors.cljs +#: src/app/main/errors.cljs:227 msgid "errors.feature-mismatch" msgstr "" "Sepertinya Anda membuka berkas yang memiliki fitur '%s' aktif tetapi " "frontend Penpot Anda tidak mendukungnya atau menonaktifkannya." -#: src/app/main/errors.cljs +#: src/app/main/errors.cljs:231, src/app/main/errors.cljs:245 msgid "errors.feature-not-supported" msgstr "Fitur '%s' tidak didukung." -#: src/app/main/errors.cljs +#: src/app/main/errors.cljs:223 msgid "errors.file-feature-mismatch" msgstr "" "Sepertinya ada ketidakcocokan antara fitur yang diaktifkan dengan fitur " "berkas yang sedang Anda buka. Migrasi untuk '%s' harus diterapkan sebelum " "berkasnya dapat dibuka." -#: src/app/main/ui/auth/verify_token.cljs, -#: src/app/main/ui/settings/feedback.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/data/users.cljs:709, src/app/main/ui/auth/login.cljs:65, src/app/main/ui/auth/login.cljs:116, src/app/main/ui/auth/register.cljs:69, src/app/main/ui/auth/register.cljs:237, src/app/main/ui/auth/verify_token.cljs:92, src/app/main/ui/dashboard/team.cljs:173, src/app/main/ui/onboarding/team_choice.cljs:95, src/app/main/ui/settings/access_tokens.cljs:91, src/app/main/ui/settings/feedback.cljs:52 msgid "errors.generic" msgstr "Sesuatu yang salah terjadi." -#: src/app/main/ui/components/color_input.cljs +#: src/app/main/ui/components/color_input.cljs:57 msgid "errors.invalid-color" msgstr "Warna tidak valid" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/static.cljs:43 msgid "errors.invite-invalid" msgstr "Undangan tidak valid" +#: src/app/main/ui/static.cljs:44 msgid "errors.invite-invalid.info" msgstr "Undangan ini mungkin dibatalkan atau telah kedaluwarsa." -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:101 msgid "errors.ldap-disabled" msgstr "Autentikasi LDAP dinonaktifkan." -#: src/app/main/errors.cljs +#: src/app/main/errors.cljs:239 msgid "errors.max-quote-reached" msgstr "Anda telah meraih kutipan '%s'. Hubungi dukungan." -#: src/app/main/data/workspace/persistence.cljs +#: src/app/main/data/workspace/media.cljs:184 msgid "errors.media-too-large" msgstr "Gambar terlalu besar untuk disematkan." -#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs +#: src/app/main/data/media.cljs:68, src/app/main/data/workspace/media.cljs:187 msgid "errors.media-type-mismatch" msgstr "Serpertinya konten gambar tidak cocok dengan ekstensi berkas." -#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs +#: src/app/main/data/media.cljs:65, src/app/main/data/workspace/media.cljs:172, src/app/main/data/workspace/media.cljs:175, src/app/main/data/workspace/media.cljs:178, src/app/main/data/workspace/media.cljs:181 msgid "errors.media-type-not-allowed" msgstr "Sepertinya ini bukan gambar yang valid." -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:574 msgid "errors.member-is-muted" msgstr "" -"Profil yang Anda undang membisukan surel (laporan spam atau lompatan tinggi)." +"Profil yang Anda undang membisukan surel (laporan spam atau lompatan " +"tinggi)." -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:61 msgid "errors.password-invalid-confirmation" msgstr "Kata sandi konfirmasi harus cocok" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:64 msgid "errors.password-too-short" msgstr "Kata sandi setidaknya 8 karakter" +#: src/app/main/errors.cljs:124 msgid "errors.paste-data-validation" msgstr "Data tidak valid dalam papan klip" +#: src/app/main/data/users.cljs:703, src/app/main/ui/auth/login.cljs:97, src/app/main/ui/auth/login.cljs:105 msgid "errors.profile-blocked" msgstr "Profil diblokir" -#: src/app/main/ui/auth/recovery_request.cljs, -#: src/app/main/ui/settings/change_email.cljs, -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/auth/recovery_request.cljs:60, src/app/main/ui/dashboard/team.cljs:164, src/app/main/ui/dashboard/team.cljs:570, src/app/main/ui/settings/change_email.cljs:50 msgid "errors.profile-is-muted" msgstr "Profil Anda membisukan surel (laporan spam atau lompatan tinggi)." -#: src/app/main/ui/auth/register.cljs +#: src/app/main/data/users.cljs:701, src/app/main/ui/auth/register.cljs:60 msgid "errors.registration-disabled" msgstr "Pendaftaran saat ini dinonaktifkan." -#: src/app/main/errors.cljs +#: src/app/main/errors.cljs:218 msgid "errors.team-feature-mismatch" msgstr "Fitur '%s' tidak kompatibel terdeteksi" +#: src/app/main/ui/dashboard/sidebar.cljs:365, src/app/main/ui/dashboard/team.cljs:359 msgid "errors.team-leave.insufficient-members" msgstr "" "Anggota tidak cukup untuk meninggalkan tim, Anda mungkin ingin menghapusnya " "saja." +#: src/app/main/ui/dashboard/sidebar.cljs:368, src/app/main/ui/dashboard/team.cljs:362 msgid "errors.team-leave.member-does-not-exists" msgstr "Anggota yang Anda mencoba untuk memberikan peran tidak ada." +#: src/app/main/ui/dashboard/sidebar.cljs:371, src/app/main/ui/dashboard/team.cljs:365 msgid "errors.team-leave.owner-cant-leave" msgstr "" "Pemilik tidak dapat meninggalkan tim, Anda harus memberikan ulang peran " "pemilik." -#: src/app/main/data/media.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/handoff/exports.cljs +#: src/app/main/data/media.cljs:71 msgid "errors.unexpected-error" msgstr "Sebuah kesalahan tidak terduga terjadi." -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:60 msgid "errors.unexpected-token" msgstr "Token tidak diketahui" +#, unused msgid "errors.validation" msgstr "Kesalahan Validasi" -#: src/app/main/errors.cljs +#: src/app/main/errors.cljs:235 msgid "errors.version-not-supported" msgstr "Berkas memiliki nomor versi tidak kompatibel" +#: src/app/main/ui/dashboard/team.cljs:796 msgid "errors.webhooks.connection" msgstr "Kesalahan koneksi, URL tidak dapat diraih" +#: src/app/main/ui/dashboard/team.cljs:790 msgid "errors.webhooks.invalid-uri" msgstr "URL tidak melewati validasi." +#: src/app/main/ui/dashboard/team.cljs:949 msgid "errors.webhooks.last-delivery" msgstr "Pengiriman terakhir tidak berhasil." +#: src/app/main/ui/dashboard/team.cljs:792, src/app/main/ui/dashboard/team.cljs:952 msgid "errors.webhooks.ssl-validation" msgstr "Terjadi kesalahan pada validasi SSL." +#: src/app/main/ui/dashboard/team.cljs:794 msgid "errors.webhooks.timeout" msgstr "Waktu habis" +#: src/app/main/ui/dashboard/team.cljs:788 msgid "errors.webhooks.unexpected" msgstr "Terjadi kesalahan tidak terduga saat memvalidasi" +#: src/app/main/ui/dashboard/team.cljs:798, src/app/main/ui/dashboard/team.cljs:955 msgid "errors.webhooks.unexpected-status" msgstr "Status %s tidak diduga" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:109, src/app/main/ui/auth/login.cljs:113 msgid "errors.wrong-credentials" msgstr "Surel atau kata sandi tidak benar." -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:25 msgid "errors.wrong-old-password" msgstr "Kata sandi lama tidak benar" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:77 msgid "feedback.description" msgstr "Deskripsi" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:95 msgid "feedback.discourse-go-to" msgstr "Pergi ke forum Penpot" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:89 msgid "feedback.discourse-subtitle1" msgstr "" "Kami senang memiliki Anda di sini. Jika Anda membutuhkan bantuan, silakan " "mencari sebelum Anda mengirim." -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:88 msgid "feedback.discourse-title" msgstr "Komunitas Penpot" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:72 msgid "feedback.subject" msgstr "Subjek" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:69 msgid "feedback.subtitle" msgstr "" "Silakan jelaskan alasan surel Anda, menetapkan bahwa itu adalah sebuah " "masalah, sebuah ide, atau sebuah keluhan. Salah satu anggota dari tim kami " "akan menjawab sesegera mungkin." -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:68 msgid "feedback.title" msgstr "Surel" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:105 msgid "feedback.twitter-go-to" msgstr "Pergi ke X" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:99 msgid "feedback.twitter-subtitle1" msgstr "Di sini untuk membantu dengan kueri teknis Anda." -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:98 msgid "feedback.twitter-title" msgstr "Akun dukungan X" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:30 msgid "generic.error" msgstr "Sebuah kesalahan telah terjadi" -#: src/app/main/ui/inspect/attributes/blur.cljs +#: src/app/main/ui/viewer/inspect/attributes/blur.cljs:26 msgid "inspect.attributes.blur" msgstr "Buram" -#: src/app/main/ui/inspect/attributes/blur.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:115 msgid "inspect.attributes.blur.value" msgstr "Nilai" -#: src/app/main/ui/inspect/attributes/common.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:112 msgid "inspect.attributes.color.hex" msgstr "HEX" -#: src/app/main/ui/inspect/attributes/common.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:114 msgid "inspect.attributes.color.hsla" msgstr "HSLA" -#: src/app/main/ui/inspect/attributes/common.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:113 msgid "inspect.attributes.color.rgba" msgstr "RGBA" -#: src/app/main/ui/inspect/attributes/fill.cljs +#: src/app/main/ui/viewer/inspect/attributes/fill.cljs:57 msgid "inspect.attributes.fill" msgstr "Isian" -#: src/app/main/ui/inspect/attributes/image.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:99, src/app/main/ui/viewer/inspect/attributes/image.cljs:51 msgid "inspect.attributes.image.download" msgstr "Unduh gambar sumber" -#: src/app/main/ui/inspect/attributes/image.cljs +#: src/app/main/ui/viewer/inspect/attributes/image.cljs:39 msgid "inspect.attributes.image.height" msgstr "Tinggi" -#: src/app/main/ui/inspect/attributes/image.cljs +#: src/app/main/ui/viewer/inspect/attributes/image.cljs:32 msgid "inspect.attributes.image.width" msgstr "Lebar" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout" msgstr "Tata Letak" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.height" msgstr "Tinggi" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.left" msgstr "Kiri" -#: src/app/main/ui/inspect/attributes/layout.cljs, -#: src/app/main/ui/inspect/attributes/layout.cljs +#: src/app/main/ui/inspect/attributes/layout.cljs, src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.radius" msgstr "Radius" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.rotation" msgstr "Rotasi" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.top" msgstr "Atas" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.width" msgstr "Lebar" -#: src/app/main/ui/inspect/attributes/shadow.cljs +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:57 msgid "inspect.attributes.shadow" msgstr "Bayangan" -#: src/app/main/ui/inspect/attributes/layout.cljs +#: src/app/main/ui/viewer/inspect/attributes/geometry.cljs:40 msgid "inspect.attributes.size" msgstr "Ukuran dan posisi" -#: src/app/main/ui/inspect/attributes/stroke.cljs +#: src/app/main/ui/viewer/inspect/attributes/stroke.cljs:52 msgid "inspect.attributes.stroke" msgstr "Sapuan" +#, permanent, unused msgid "inspect.attributes.stroke.alignment.center" msgstr "Tengah" +#, permanent, unused msgid "inspect.attributes.stroke.alignment.inner" msgstr "Dalam" +#, permanent, unused msgid "inspect.attributes.stroke.alignment.outer" msgstr "Luar" +#, unused msgid "inspect.attributes.stroke.style.dotted" msgstr "Titik" +#, unused msgid "inspect.attributes.stroke.style.mixed" msgstr "Tercampur" +#, unused msgid "inspect.attributes.stroke.style.none" msgstr "Tidak ada" +#, unused msgid "inspect.attributes.stroke.style.solid" msgstr "Padat" #: src/app/main/ui/inspect/attributes/stroke.cljs +#, unused msgid "inspect.attributes.stroke.width" msgstr "Lebar" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:81, src/app/main/ui/viewer/inspect/attributes/text.cljs:194 msgid "inspect.attributes.typography" msgstr "Tipografi" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:89 msgid "inspect.attributes.typography.font-family" msgstr "Keluarga Fon" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:107 msgid "inspect.attributes.typography.font-size" msgstr "Ukuran Fon" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:98 msgid "inspect.attributes.typography.font-style" msgstr "Gaya Fon" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:116 msgid "inspect.attributes.typography.font-weight" msgstr "Berat Fon" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:134 msgid "inspect.attributes.typography.letter-spacing" msgstr "Spasi Huruf" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:125 msgid "inspect.attributes.typography.line-height" msgstr "Tinggi Garis" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:143 msgid "inspect.attributes.typography.text-decoration" msgstr "Dekorasi Teks" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:145 msgid "inspect.attributes.typography.text-decoration.none" msgstr "Tidak ada" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:146 msgid "inspect.attributes.typography.text-decoration.strikethrough" msgstr "Coret" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:147 msgid "inspect.attributes.typography.text-decoration.underline" msgstr "Garis bawah" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:156 msgid "inspect.attributes.typography.text-transform" msgstr "Transformasi Teks" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:158 msgid "inspect.attributes.typography.text-transform.lowercase" msgstr "Huruf Kecil" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:159 msgid "inspect.attributes.typography.text-transform.none" msgstr "Tidak ada" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:160 msgid "inspect.attributes.typography.text-transform.titlecase" msgstr "Huruf Judul" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:162 msgid "inspect.attributes.typography.text-transform.unset" msgstr "Tidak ditetapkan" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:161 msgid "inspect.attributes.typography.text-transform.uppercase" msgstr "Huruf Besar" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:140 msgid "inspect.empty.help" msgstr "" "Jika Anda ingin mengetahui lebih lanjut tentang inspeksi desain kunjungi " "pusat bantuan Penpot" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:143 msgid "inspect.empty.more-info" msgstr "Lebih banyak info tentang inspeksi" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:135 msgid "inspect.empty.select" -msgstr "" -"Pilih bentuk, papan, atau grup untuk menginskpeksi properti dan kodenya" +msgstr "Pilih bentuk, papan, atau grup untuk menginskpeksi properti dan kodenya" -#: src/app/main/ui/inspect/right_sidebar.cljs +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:125 msgid "inspect.tabs.code" msgstr "Kode" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:98 msgid "inspect.tabs.code.selected.circle" msgstr "Lingkaran" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:99 msgid "inspect.tabs.code.selected.component" msgstr "Komponen" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:100 msgid "inspect.tabs.code.selected.curve" msgstr "Kurva" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:101 msgid "inspect.tabs.code.selected.frame" msgstr "Papan" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:102 msgid "inspect.tabs.code.selected.group" msgstr "Grup" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:103 msgid "inspect.tabs.code.selected.image" msgstr "Gambar" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:104 msgid "inspect.tabs.code.selected.mask" msgstr "Topeng" -#: src/app/main/ui/inspect/right_sidebar.cljs +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:93 msgid "inspect.tabs.code.selected.multiple" msgstr "%s Dipilih" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:105 msgid "inspect.tabs.code.selected.path" msgstr "Jalur" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:106 msgid "inspect.tabs.code.selected.rect" msgstr "Persegi Panjang" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:107 msgid "inspect.tabs.code.selected.svg-raw" msgstr "SVG" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:108 msgid "inspect.tabs.code.selected.text" msgstr "Teks" -#: src/app/main/ui/inspect/right_sidebar.cljs +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:115 msgid "inspect.tabs.info" msgstr "Info" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:158 msgid "label.shortcuts" msgstr "Pintasan" +#: src/app/main/ui/dashboard/import.cljs:527 msgid "labels.accept" msgstr "Terima" -#: src/app/main/ui/settings/sidebar.cljs +#: src/app/main/ui/settings/sidebar.cljs:100 msgid "labels.access-tokens" msgstr "Token akses" +#: src/app/main/ui/dashboard/team.cljs:968 msgid "labels.active" msgstr "Aktif" +#: src/app/main/ui/dashboard/fonts.cljs:175 msgid "labels.add-custom-font" msgstr "Tambahkan fon khusus" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:120, src/app/main/ui/dashboard/team.cljs:276, src/app/main/ui/dashboard/team.cljs:519, src/app/main/ui/dashboard/team.cljs:549, src/app/main/ui/onboarding/team_choice.cljs:67 msgid "labels.admin" msgstr "Admin" +#: src/app/main/ui/onboarding/questions.cljs:174 +msgid "labels.adobe-xd" +msgstr "Adobe XD" + #: src/app/main/ui/workspace/comments.cljs +#, unused msgid "labels.all" msgstr "Semua" +#: src/app/main/ui/auth.cljs:37 msgid "labels.and" msgstr "dan" +#: src/app/main/ui/onboarding/team_choice.cljs:162 msgid "labels.back" msgstr "Kembali" -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:59 msgid "labels.bad-gateway.desc-message" msgstr "" "Sepertinya Anda harus menunggu sebentar dan mencoba lagi; kami melakukan " "pemeliharaan kecil pada peladen kami." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:58 msgid "labels.bad-gateway.main-message" msgstr "Gerbang Jalur Buruk" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/data/common.cljs:112, src/app/main/ui/dashboard/change_owner.cljs:69, src/app/main/ui/dashboard/import.cljs:514, src/app/main/ui/dashboard/team.cljs:868, src/app/main/ui/delete_shared.cljs:35, src/app/main/ui/export.cljs:164, src/app/main/ui/export.cljs:460, src/app/main/ui/settings/access_tokens.cljs:188, src/app/main/ui/viewer/share_link.cljs:203, src/app/main/ui/workspace/sidebar/assets/groups.cljs:149 msgid "labels.cancel" msgstr "Batal" +#: src/app/main/ui/onboarding/questions.cljs:176 +msgid "labels.canva" +msgstr "Canva" + +#: src/app/main/ui/dashboard/projects.cljs:93, src/app/main/ui/export.cljs:478, src/app/main/ui/settings/access_tokens.cljs:183, src/app/main/ui/viewer/login.cljs:77, src/app/main/ui/viewer/share_link.cljs:174, src/app/main/ui/workspace/libraries.cljs:522 msgid "labels.close" msgstr "Tutup" -#: src/app/main/ui/dashboard/comments.cljs +#: src/app/main/ui/dashboard/comments.cljs:104, src/app/main/ui/viewer/comments.cljs:70, src/app/main/ui/workspace/comments.cljs:126 msgid "labels.comments" msgstr "Komentar" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:985, src/app/main/ui/workspace/main_menu.cljs:110 msgid "labels.community" msgstr "Komunitas" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:103 msgid "labels.confirm-password" msgstr "Konfirmasi kata sandi" +#: src/app/main/ui/dashboard/import.cljs:520, src/app/main/ui/export.cljs:465, src/app/main/ui/onboarding/newsletter.cljs:101 msgid "labels.continue" msgstr "Lanjutkan" +#, unused msgid "labels.continue-with" msgstr "Lanjutkan dengan" +#: src/app/main/ui/viewer/login.cljs:75 msgid "labels.continue-with-penpot" msgstr "Anda dapat melanjutkan dengan sebuah akun Penpot" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:642 msgid "labels.copy-invitation-link" msgstr "Salin tautan" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:157, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:190 msgid "labels.create" msgstr "Buat" -#: src/app/main/ui/dashboard/team_form.cljs, -#: src/app/main/ui/dashboard/team_form.cljs +#: src/app/main/ui/dashboard/team_form.cljs:101, src/app/main/ui/dashboard/team_form.cljs:121 msgid "labels.create-team" msgstr "Buat tim baru" -#: src/app/main/ui/dashboard/team_form.cljs +#: src/app/main/ui/dashboard/team_form.cljs:113 msgid "labels.create-team.placeholder" msgstr "Masukkan nama tim baru" +#, unused msgid "labels.custom-fonts" msgstr "Fon khusus" -#: src/app/main/ui/settings/sidebar.cljs +#: src/app/main/ui/settings/sidebar.cljs:73 msgid "labels.dashboard" msgstr "Dasbor" -#: src/app/main/ui/dashboard/project_menu.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:306, src/app/main/ui/dashboard/fonts.cljs:255, src/app/main/ui/dashboard/fonts.cljs:332, src/app/main/ui/dashboard/fonts.cljs:346, src/app/main/ui/dashboard/project_menu.cljs:115, src/app/main/ui/dashboard/team.cljs:904, src/app/main/ui/settings/access_tokens.cljs:209, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:209 msgid "labels.delete" msgstr "Hapus" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:357 msgid "labels.delete-comment" msgstr "Hapus komentar" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:354 msgid "labels.delete-comment-thread" msgstr "Hapus utasan" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:648 msgid "labels.delete-invitation" msgstr "Hapus undangan" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:262 msgid "labels.delete-multi-files" msgstr "Hapus %s berkas" +#: src/app/main/ui/onboarding/questions.cljs:250 +msgid "labels.developer" +msgstr "Pengembang" + +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:199 msgid "labels.discard" msgstr "Abaikan" -#: src/app/main/ui/dashboard/projects.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs, -#: src/app/main/ui/dashboard/files.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:28, src/app/main/ui/dashboard/files.cljs:72, src/app/main/ui/dashboard/files.cljs:156, src/app/main/ui/dashboard/projects.cljs:220, src/app/main/ui/dashboard/projects.cljs:224, src/app/main/ui/dashboard/sidebar.cljs:791 msgid "labels.drafts" msgstr "Draf" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:350, src/app/main/ui/dashboard/fonts.cljs:252, src/app/main/ui/dashboard/team.cljs:902, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:205 msgid "labels.edit" msgstr "Sunting" +#, unused msgid "labels.edit-file" msgstr "Sunting berkas" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:118, src/app/main/ui/dashboard/team.cljs:279, src/app/main/ui/dashboard/team.cljs:520, src/app/main/ui/dashboard/team.cljs:553, src/app/main/ui/onboarding/team_choice.cljs:66 msgid "labels.editor" msgstr "Penyunting" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:661 msgid "labels.expired-invitation" msgstr "Kedaluwarsa" +#: src/app/main/ui/export.cljs:173 msgid "labels.export" msgstr "Ekspor" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:51 msgid "labels.feedback-disabled" msgstr "Masukan dinonaktifkan" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:42 msgid "labels.feedback-sent" msgstr "Masukan dikirim" +#: src/app/main/ui/onboarding/questions.cljs:170 +msgid "labels.figma" +msgstr "Figma" + +#: src/app/main/ui/dashboard/fonts.cljs:412 msgid "labels.font-family" msgstr "Keluarga Fon" +#, unused msgid "labels.font-providers" msgstr "Penyedia fon" +#: src/app/main/ui/dashboard/fonts.cljs:413 msgid "labels.font-variants" msgstr "Gaya" +#: src/app/main/ui/dashboard/fonts.cljs:52, src/app/main/ui/dashboard/sidebar.cljs:811 msgid "labels.fonts" msgstr "Fon" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/onboarding/questions.cljs:262 +msgid "labels.freelancer" +msgstr "Saya seorang pekerja lepas" + +#: src/app/main/ui/dashboard/sidebar.cljs:1015, src/app/main/ui/workspace/main_menu.cljs:142 msgid "labels.github-repo" msgstr "Repositori GitHub" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/settings/sidebar.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:1032, src/app/main/ui/settings/sidebar.cljs:113, src/app/main/ui/workspace/main_menu.cljs:171 msgid "labels.give-feedback" msgstr "Berikan masukan" +#: src/app/main/ui/auth/recovery_request.cljs:110, src/app/main/ui/auth/register.cljs:285, src/app/main/ui/viewer/login.cljs:117 msgid "labels.go-back" msgstr "Kembali" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:978, src/app/main/ui/workspace/main_menu.cljs:102 msgid "labels.help-center" msgstr "Pusat Bantuan" -#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/comments.cljs:103, src/app/main/ui/workspace/comments.cljs:67 msgid "labels.hide-resolved-comments" msgstr "Sembunyikan komentar yang telah diselesaikan" +#: src/app/main/ui/dashboard/team.cljs:969 msgid "labels.inactive" msgstr "Tidak Aktif" +#: src/app/main/ui/dashboard/fonts.cljs:410 msgid "labels.installed-fonts" msgstr "Fon terpasang" -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:144 msgid "labels.internal-error.desc-message" msgstr "" "Sesuatu yang buruk terjadi. Silakan mencoba lagi operasi dan jika masalah " "masih ada, hubungi dukungan." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:143 msgid "labels.internal-error.main-message" msgstr "Kesalahan Internal" -#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/onboarding/questions.cljs:178 +msgid "labels.invision" +msgstr "InVision" + +#: src/app/main/ui/dashboard/sidebar.cljs:516, src/app/main/ui/dashboard/team.cljs:89, src/app/main/ui/dashboard/team.cljs:97, src/app/main/ui/dashboard/team.cljs:708 msgid "labels.invitations" msgstr "Undangan" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:51 msgid "labels.language" msgstr "Bahasa" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:1008, src/app/main/ui/workspace/main_menu.cljs:134 msgid "labels.libraries-and-templates" msgstr "Pustaka & Templat" +#: src/app/main/ui/viewer/header.cljs:203 msgid "labels.log-or-sign" msgstr "Masuk atau daftar" -#: src/app/main/ui/settings.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:1040 msgid "labels.logout" msgstr "Keluar" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/team.cljs:468 msgid "labels.member" msgstr "Anggota" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:510, src/app/main/ui/dashboard/team.cljs:87, src/app/main/ui/dashboard/team.cljs:95 msgid "labels.members" msgstr "Anggota" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:96 msgid "labels.new-password" msgstr "Kata sandi baru" -#: src/app/main/ui/workspace/comments.cljs, -#: src/app/main/ui/dashboard/comments.cljs -msgid "labels.no-comments-available" -msgstr "" -"Anda telah melihat semuanya! Notifikasi komentar baru akan muncul di sini." +#: src/app/main/ui/dashboard/templates.cljs:269, src/app/main/ui/onboarding/questions.cljs:55 +msgid "labels.next" +msgstr "Berikutnya" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/comments.cljs:128, src/app/main/ui/workspace/comments.cljs:161 +msgid "labels.no-comments-available" +msgstr "Anda telah melihat semuanya! Notifikasi komentar baru akan muncul di sini." + +#: src/app/main/ui/dashboard/team.cljs:694 msgid "labels.no-invitations" msgstr "Tidak ada undangan yang menunggu." -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:696 +#, markdown msgid "labels.no-invitations-hint" msgstr "Tekan tombol **Undang orang** untuk mengundang orang-orang ke tim ini." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:50 msgid "labels.not-found.desc-message" msgstr "" -"Laman ini mungkin tidak ada atau Anda tidak memiliki izin untuk mengaksesnya." +"Laman ini mungkin tidak ada atau Anda tidak memiliki izin untuk " +"mengaksesnya." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:49 msgid "labels.not-found.main-message" msgstr "Aduh!" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/projects.cljs:239, src/app/main/ui/dashboard/team.cljs:1095 msgid "labels.num-of-files" msgid_plural "labels.num-of-files" msgstr[0] "%s berkas" +#: src/app/main/ui/viewer/thumbnails.cljs:80 msgid "labels.num-of-frames" msgid_plural "labels.num-of-frames" msgstr[0] "%s papan" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1090 msgid "labels.num-of-projects" msgid_plural "labels.num-of-projects" msgstr[0] "%s proyek" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:89 msgid "labels.old-password" msgstr "Kata sandi lama" #: src/app/main/ui/workspace/comments.cljs +#, unused msgid "labels.only-yours" msgstr "Hanya Anda" +#, unused msgid "labels.or" msgstr "atau" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/onboarding/questions.cljs:145, src/app/main/ui/onboarding/questions.cljs:214, src/app/main/ui/onboarding/questions.cljs:303, src/app/main/ui/onboarding/questions.cljs:316, src/app/main/ui/onboarding/questions.cljs:389, src/app/main/ui/onboarding/questions.cljs:447 +msgid "labels.other" +msgstr "Lainnya (jelaskan)" + +#: src/app/main/ui/dashboard/team.cljs:286, src/app/main/ui/dashboard/team.cljs:518, src/app/main/ui/dashboard/team.cljs:1076 msgid "labels.owner" msgstr "Pemilik" -#: src/app/main/ui/settings/sidebar.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/settings/sidebar.cljs:87 msgid "labels.password" msgstr "Kata sandi" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:662 msgid "labels.pending-invitation" msgstr "Ditunda" -#: src/app/main/ui/settings/sidebar.cljs +#: src/app/main/ui/onboarding/questions.cljs:51 +msgid "labels.previous" +msgstr "Sebelumnya" + +#: src/app/main/ui/settings/profile.cljs:118, src/app/main/ui/settings/sidebar.cljs:82 msgid "labels.profile" msgstr "Profil" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:784 msgid "labels.projects" msgstr "Proyek" -#: src/app/main/ui/settings/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:998, src/app/main/ui/settings/sidebar.cljs:106, src/app/main/ui/workspace/main_menu.cljs:126 msgid "labels.release-notes" msgstr "Catatan rilis" #: src/app/main/ui/workspace.cljs +#, unused msgid "labels.reload-file" msgstr "Muat ulang berkas" -#: src/app/main/ui/workspace/libraries.cljs, -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/workspace/libraries.cljs, src/app/main/ui/dashboard/team.cljs +#, unused msgid "labels.remove" msgstr "Hapus" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:316 msgid "labels.remove-member" msgstr "Keluarkan anggota" -#: src/app/main/ui/dashboard/sidebar.cljs, -#: src/app/main/ui/dashboard/project_menu.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:271, src/app/main/ui/dashboard/project_menu.cljs:85, src/app/main/ui/dashboard/sidebar.cljs:539, src/app/main/ui/workspace/sidebar/assets/groups.cljs:157 msgid "labels.rename" msgstr "Ubah nama" -#: src/app/main/ui/dashboard/team_form.cljs +#: src/app/main/ui/dashboard/team_form.cljs:99 msgid "labels.rename-team" msgstr "Ubah nama tim" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:645 msgid "labels.resend-invitation" msgstr "Kirim ulang undangan" -#: src/app/main/ui/static.cljs, src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:61, src/app/main/ui/static.cljs:70, src/app/main/ui/static.cljs:148 msgid "labels.retry" msgstr "Coba lagi" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:469, src/app/main/ui/dashboard/team.cljs:709 msgid "labels.role" msgstr "Peran" +#: src/app/main/ui/dashboard/fonts.cljs:380, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:191 msgid "labels.save" msgstr "Simpan" +#: src/app/main/ui/onboarding/questions.cljs:414, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:436 msgid "labels.search" msgstr "Cari" +#: src/app/main/ui/dashboard/fonts.cljs:415 msgid "labels.search-font" msgstr "Cari fon" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/onboarding/questions.cljs:90, src/app/main/ui/onboarding/questions.cljs:248, src/app/main/ui/onboarding/questions.cljs:259, src/app/main/ui/onboarding/questions.cljs:270 +msgid "labels.select-option" +msgstr "Pilih opsi" + +#: src/app/main/ui/settings/feedback.cljs:82 msgid "labels.send" msgstr "Kirim" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:82 msgid "labels.sending" msgstr "Mengirim…" -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:68 msgid "labels.service-unavailable.desc-message" msgstr "Kami dalam pemeliharaan yang telah diprogram untuk sistem kami." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:67 msgid "labels.service-unavailable.main-message" msgstr "Layanan Tidak Tersedia" -#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:530, src/app/main/ui/dashboard/team.cljs:88, src/app/main/ui/dashboard/team.cljs:102, src/app/main/ui/settings/options.cljs:84, src/app/main/ui/settings/sidebar.cljs:93 msgid "labels.settings" msgstr "Pengaturan" +#: src/app/main/ui/viewer/header.cljs:199 msgid "labels.share" msgstr "Bagikan" +#, unused msgid "labels.share-prototype" msgstr "Bagikan prototipe" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:800 msgid "labels.shared-libraries" msgstr "Pustaka" -#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/comments.cljs:82, src/app/main/ui/workspace/comments.cljs:55, src/app/main/ui/workspace/comments.cljs:135 msgid "labels.show-all-comments" msgstr "Tampilkan semua komentar" +#: src/app/main/ui/viewer/comments.cljs:115 msgid "labels.show-comments-list" msgstr "Tampilkan daftar komentar" -#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/comments.cljs:91, src/app/main/ui/workspace/comments.cljs:61, src/app/main/ui/workspace/comments.cljs:136 msgid "labels.show-your-comments" msgstr "Hanya tampilkan komentar Anda" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/onboarding/questions.cljs:172 +msgid "labels.sketch" +msgstr "Sketch" + +#: src/app/main/ui/onboarding/questions.cljs:56 +msgid "labels.start" +msgstr "Mulai" + +#: src/app/main/ui/dashboard/team.cljs:710 msgid "labels.status" msgstr "Status" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/onboarding/questions.cljs:251 +msgid "labels.student-teacher" +msgstr "Siswa atau Guru" + +#: src/app/main/ui/dashboard/sidebar.cljs:992, src/app/main/ui/workspace/main_menu.cljs:118 msgid "labels.tutorials" msgstr "Tutorial" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:256 msgid "labels.unpublish-multi-files" msgstr "Batalkan publikasi %s berkas" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:103 msgid "labels.update" msgstr "Perbarui" -#: src/app/main/ui/dashboard/team_form.cljs +#: src/app/main/ui/dashboard/team_form.cljs:120 msgid "labels.update-team" msgstr "Perbarui tim" +#: src/app/main/ui/dashboard/fonts.cljs:241 msgid "labels.upload" msgstr "Unggah" +#: src/app/main/ui/dashboard/fonts.cljs:169 msgid "labels.upload-custom-fonts" msgstr "Unggah fon khusus" +#: src/app/main/ui/dashboard/fonts.cljs:240 msgid "labels.uploading" msgstr "Mengunggah…" +#: src/app/main/ui/workspace/sidebar/sitemap.cljs:223 msgid "labels.view-only" msgstr "TAMPILAN SAJA" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:123, src/app/main/ui/dashboard/team.cljs:282, src/app/main/ui/dashboard/team.cljs:521 msgid "labels.viewer" msgstr "Pelihat" +#: src/app/main/ui/dashboard/sidebar.cljs:523, src/app/main/ui/dashboard/team.cljs:90, src/app/main/ui/dashboard/team.cljs:100, src/app/main/ui/dashboard/team.cljs:880 msgid "labels.webhooks" msgstr "Kaitan web" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:194 msgid "labels.write-new-comment" msgstr "Tulis komentar baru" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/team.cljs:237 msgid "labels.you" msgstr "(Anda)" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:968 msgid "labels.your-account" msgstr "Akun Anda" +#: src/app/main/ui/workspace/colorpicker.cljs:297, src/app/main/ui/workspace/colorpicker.cljs:298, src/app/main/ui/workspace/colorpicker.cljs:300 msgid "media.choose-image" msgstr "Pilih gambar" +#, unused msgid "media.gradient" msgstr "Gradien" +#: src/app/main/data/workspace/media.cljs:275, src/app/main/ui/components/color_bullet.cljs:32, src/app/main/ui/components/color_bullet.cljs:45, src/app/main/ui/viewer/inspect/attributes/common.cljs:66, src/app/main/ui/workspace/colorpicker.cljs:211, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:237 msgid "media.image" msgstr "Gambar" +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:77 +msgid "media.image.short" +msgstr "gambar" + +#: src/app/main/ui/workspace/colorpicker.cljs:290 +msgid "media.keep-aspect-ratio" +msgstr "Jaga rasio aspek" + +#: src/app/main/ui/workspace/colorpicker.cljs:208 msgid "media.linear" msgstr "Linear" -#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs +#: src/app/main/data/media.cljs:49, src/app/main/data/workspace/media.cljs:223, src/app/main/data/workspace/media.cljs:453 msgid "media.loading" msgstr "Memuat gambar…" +#: src/app/main/ui/workspace/colorpicker.cljs:209 msgid "media.radial" msgstr "Radial" +#: src/app/main/ui/workspace/colorpicker.cljs:206 msgid "media.solid" msgstr "Padat" +#: src/app/main/data/common.cljs:111 msgid "modals.add-shared-confirm-empty.hint" msgstr "" "Pustaka Anda saat ini kosong. Ketika ditambahkan sebagai Pustaka Terbagi, " "aset yang Anda buat akan tersedia untuk digunakan bersama dengan berkas " "Anda. Apakah Anda yakin ingin menerbitkannya?" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/data/common.cljs:113 msgid "modals.add-shared-confirm.accept" msgstr "Tambahkan sebagai Pustaka Terbagi" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/data/common.cljs:111 msgid "modals.add-shared-confirm.hint" msgstr "" "Ketika ditambahkan sebagai Pustaka Terbagi, aset dari pustaka berkas ini " "akan tersedia untuk digunakan di antara berkas Anda yang lain." -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/data/common.cljs:110 msgid "modals.add-shared-confirm.message" msgstr "Tambahkan “%s” sebagai Pustaka Terbagi" -#: src/app/main/ui/workspace/nudge.cljs +#: src/app/main/ui/workspace/nudge.cljs:60 msgid "modals.big-nudge" msgstr "Dorongan besar" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:127 msgid "modals.change-email.confirm-email" msgstr "Verifikasi surel baru" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:114 msgid "modals.change-email.info" msgstr "" "Kami akan mengirim Anda sebuah surel ke surel Anda “%s” saat ini untuk " "memverifikasi identitas Anda." -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:119 msgid "modals.change-email.new-email" msgstr "Surel baru" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:136 msgid "modals.change-email.submit" msgstr "Ubah surel" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:107 msgid "modals.change-email.title" msgstr "Ubah surel Anda" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:165, src/app/main/ui/settings/access_tokens.cljs:171 msgid "modals.create-access-token.copy-token" msgstr "Salin token" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:142 msgid "modals.create-access-token.expiration-date.label" msgstr "Tanggal kedaluwarsa" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:136 msgid "modals.create-access-token.name.label" msgstr "Nama" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:138 msgid "modals.create-access-token.name.placeholder" msgstr "Namanya dapat mengetahui kegunaan tokennya" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:191 msgid "modals.create-access-token.submit-label" msgstr "Buat token" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:123 msgid "modals.create-access-token.title" msgstr "Buat token baru" +#: src/app/main/ui/dashboard/team.cljs:873 msgid "modals.create-webhook.submit-label" msgstr "Buat kaitan web" +#: src/app/main/ui/dashboard/team.cljs:838 msgid "modals.create-webhook.title" msgstr "Buat kaitan web" +#: src/app/main/ui/dashboard/team.cljs:849 msgid "modals.create-webhook.url.label" msgstr "URL Muatan" +#: src/app/main/ui/dashboard/team.cljs:850 msgid "modals.create-webhook.url.placeholder" msgstr "https://contoh.co.id/terimapos" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:271 msgid "modals.delete-acces-token.accept" msgstr "Hapus token" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:270 msgid "modals.delete-acces-token.message" msgstr "Apakah Anda ingin menghapus token ini?" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:269 msgid "modals.delete-acces-token.title" msgstr "Hapus token" -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:59 msgid "modals.delete-account.cancel" msgstr "Batalkan dan jaga akun saya" -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:64 msgid "modals.delete-account.confirm" msgstr "Ya, hapus akun saya" -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:53 msgid "modals.delete-account.info" msgstr "" "Dengan menghapus akun Anda akan kehilangan semua proyek dan arsip Anda saat " "ini." -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:46 msgid "modals.delete-account.title" msgstr "Apakah Anda yakin ingin menghapus akun Anda?" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:298 msgid "modals.delete-comment-thread.accept" msgstr "Hapus percakapan" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:297 msgid "modals.delete-comment-thread.message" msgstr "" "Apakah Anda yakin ingin menghapus percakapan ini? Semua komentar dalam " "utasan ini akan dihapus." -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:296 msgid "modals.delete-comment-thread.title" msgstr "Hapus percakapan" +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:140 msgid "modals.delete-component-annotation.message" msgstr "Apakah Anda yakin ingin menghapus anotasi ini?" +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:139 msgid "modals.delete-component-annotation.title" msgstr "Haus anotasi" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:123 msgid "modals.delete-file-confirm.accept" msgstr "Hapus berkas" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:122 msgid "modals.delete-file-confirm.message" msgstr "Apakah Anda yakin ingin menghapus berkas ini?" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:121 msgid "modals.delete-file-confirm.title" msgstr "Menghapus berkas" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:117 msgid "modals.delete-file-multi-confirm.accept" msgstr "Hapus berkas" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:116 msgid "modals.delete-file-multi-confirm.message" msgstr "Apakah Anda yakin ingin menghapus %s berkas?" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:115 msgid "modals.delete-file-multi-confirm.title" msgstr "Menghapus %s berkas" +#: src/app/main/ui/dashboard/fonts.cljs:345 msgid "modals.delete-font-variant.message" msgstr "" "Apakah Anda yakin ingin menghapus gaya fon ini? Ini tidak akan muat jika " "digunakan dalam sebuah berkas." +#: src/app/main/ui/dashboard/fonts.cljs:344 msgid "modals.delete-font-variant.title" msgstr "Menghapus gaya fon" +#: src/app/main/ui/dashboard/fonts.cljs:331 msgid "modals.delete-font.message" msgstr "" "Apakah Anda yakin ingin menghapus fon ini? Ini tidak akan muat jika " "digunakan dalam sebuah berkas." +#: src/app/main/ui/dashboard/fonts.cljs:330 msgid "modals.delete-font.title" msgstr "Menghapus fon" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs +#: src/app/main/ui/workspace/context_menu.cljs:522, src/app/main/ui/workspace/sidebar/sitemap.cljs:45 msgid "modals.delete-page.body" msgstr "Apakah Anda yakin ingin menghapus halaman ini?" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs +#: src/app/main/ui/workspace/context_menu.cljs:521, src/app/main/ui/workspace/sidebar/sitemap.cljs:44 msgid "modals.delete-page.title" msgstr "Hapus halaman" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:69 msgid "modals.delete-project-confirm.accept" msgstr "Hapus proyek" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:68 msgid "modals.delete-project-confirm.message" msgstr "Apakah Anda yakin ingin menghapus proyek ini?" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:67 msgid "modals.delete-project-confirm.title" msgstr "Hapus proyek" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:51 msgid "modals.delete-shared-confirm.accept" msgid_plural "modals.delete-shared-confirm.accept" msgstr[0] "Hapus berkas" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:55 msgid "modals.delete-shared-confirm.activated.no-files-message" msgid_plural "modals.delete-shared-confirm.activated.no-files-message" msgstr[0] "Tidak diaktifkan dalam berkas mana pun." -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:57 msgid "modals.delete-shared-confirm.activated.scd-message" msgid_plural "modals.delete-shared-confirm.activated.scd-message" msgstr[0] "Pustaka ini diaktifkan di sini: " -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:46 msgid "modals.delete-shared-confirm.message" msgid_plural "modals.delete-shared-confirm.message" msgstr[0] "Apakah Anda yakin ingin menghapus berkas ini?" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:41 msgid "modals.delete-shared-confirm.title" msgid_plural "modals.delete-shared-confirm.title" msgstr[0] "Menghapus berkas" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:435 msgid "modals.delete-team-confirm.accept" msgstr "Hapus tim" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:434 msgid "modals.delete-team-confirm.message" msgstr "" "Apakah Anda yakin ingin menghapus tim ini? Semua proyek dan berkas terkait " "dengan tim akan dihapus secara permanen." -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:433 msgid "modals.delete-team-confirm.title" msgstr "Menghapus tim" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:427 msgid "modals.delete-team-member-confirm.accept" msgstr "Keluarkan anggota" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:426 msgid "modals.delete-team-member-confirm.message" msgstr "Apakah Anda yakin ingin mengeluarkan anggota ini dari tim?" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:425 msgid "modals.delete-team-member-confirm.title" msgstr "Keluarkan anggota tim" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:59 msgid "modals.delete-unpublish-shared-confirm.activated.hint" msgid_plural "modals.delete-unpublish-shared-confirm.activated.hint" msgstr[0] "" "Aset yang telah digunakan dalam berkas akan tetap di sana (tidak ada desain " "yang akan rusak)." +#: src/app/main/ui/dashboard/team.cljs:942 msgid "modals.delete-webhook.accept" msgstr "Hapus kaitan web" +#: src/app/main/ui/dashboard/team.cljs:941 msgid "modals.delete-webhook.message" msgstr "Apakah Anda yakin ingin menghapus kaitan web ini?" +#: src/app/main/ui/dashboard/team.cljs:940 msgid "modals.delete-webhook.title" msgstr "Menghapus kaitan web" +#: src/app/main/ui/dashboard/team.cljs:872 msgid "modals.edit-webhook.submit-label" msgstr "Sunting kaitan web" +#: src/app/main/ui/dashboard/team.cljs:837 msgid "modals.edit-webhook.title" msgstr "Sunting kaitan web" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:218 msgid "modals.invite-member-confirm.accept" msgstr "Kirim undangan" +#: src/app/main/ui/dashboard/team.cljs:213, src/app/main/ui/onboarding/team_choice.cljs:156 msgid "modals.invite-member.emails" msgstr "Surel, dipisah dengan koma" +#: src/app/main/ui/dashboard/team.cljs:197 msgid "modals.invite-member.repeated-invitation" msgstr "" -"Beberapa surel berasal dari anggota tim saat ini. Undangan mereka tidak akan " -"dikirim." +"Beberapa surel berasal dari anggota tim saat ini. Undangan mereka tidak " +"akan dikirim." -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:190 msgid "modals.invite-team-member.title" msgstr "Undang anggota ke tim" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:423, src/app/main/ui/dashboard/team.cljs:393 msgid "modals.leave-and-close-confirm.hint" msgstr "" "Karena Anda anggota satu-satunya dari tim ini, tim akan dihapus beserta " "proyek dan berkasnya." -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:422, src/app/main/ui/dashboard/team.cljs:392 msgid "modals.leave-and-close-confirm.message" msgstr "Apakah Anda yakin ingin meninggalkan tim %s?" +#: src/app/main/ui/dashboard/change_owner.cljs:59 msgid "modals.leave-and-reassign.forbidden" msgstr "" "Anda tidak dapat tinggalkan tim jika tidak ada anggota lain untuk " "dipromosikan sebagai pemilik. Anda mungkin ingin menghapus tim ini." -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/change_owner.cljs:55 msgid "modals.leave-and-reassign.hint1" msgstr "" "Anda adalah pemilik dari tim ini. Silakan memilih anggota lain untuk " "mempromosikan sebagai pemilik sebelum Anda tinggal." -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/change_owner.cljs:78 msgid "modals.leave-and-reassign.promote-and-leave" msgstr "Promosikan dan tinggal" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/change_owner.cljs:34 msgid "modals.leave-and-reassign.select-member-to-promote" msgstr "Pilih seorang anggota untuk dipromosikan" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/change_owner.cljs:49 msgid "modals.leave-and-reassign.title" msgstr "Sebelum Anda tinggal" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:402, src/app/main/ui/dashboard/sidebar.cljs:424, src/app/main/ui/dashboard/team.cljs:394, src/app/main/ui/dashboard/team.cljs:416 msgid "modals.leave-confirm.accept" msgstr "Tinggalkan tim" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:401, src/app/main/ui/dashboard/team.cljs:415 msgid "modals.leave-confirm.message" msgstr "Apakah Anda ingin meninggalkan tim ini?" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:400, src/app/main/ui/dashboard/sidebar.cljs:421, src/app/main/ui/dashboard/team.cljs:391, src/app/main/ui/dashboard/team.cljs:414 msgid "modals.leave-confirm.title" msgstr "Meninggalkan tim" -#: src/app/main/ui/workspace/nudge.cljs +#: src/app/main/ui/delete_shared.cljs:53 +msgid "modals.move-shared-confirm.accept" +msgid_plural "modals.move-shared-confirm.accept" +msgstr[0] "Pindahkan" + +#: src/app/main/ui/delete_shared.cljs:48 +msgid "modals.move-shared-confirm.message" +msgid_plural "modals.move-shared-confirm.message" +msgstr[0] "Apakah Anda yakin ingin memindahkan pustaka ini?" + +#: src/app/main/ui/delete_shared.cljs:43 +msgid "modals.move-shared-confirm.title" +msgid_plural "modals.move-shared-confirm.title" +msgstr[0] "Pindahkan pustaka" + +#: src/app/main/ui/workspace/main_menu.cljs:266, src/app/main/ui/workspace/nudge.cljs:47 msgid "modals.nudge-title" msgstr "Jumlah dorongan" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:340 msgid "modals.promote-owner-confirm.accept" msgstr "Transfer kemilikan" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:339 msgid "modals.promote-owner-confirm.hint" msgstr "" -"Jika Anda mentransfer kemilikan, Anda akan mengubah peran Anda ke Admin, dan " -"kehilangan beberapa izin pada tim ini. " +"Jika Anda mentransfer kemilikan, Anda akan mengubah peran Anda ke Admin, " +"dan kehilangan beberapa izin pada tim ini. " -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:338 msgid "modals.promote-owner-confirm.message" msgstr "" "Anda saat ini adalah pemilik dari tim ini. Apakah Anda yakin ingin membuat " "%s sebagai pemilik tim ini?" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:337 msgid "modals.promote-owner-confirm.title" msgstr "Pemilik tim baru" +#: src/app/main/ui/workspace/libraries.cljs:188 msgid "modals.publish-empty-library.accept" msgstr "Terbitkan" +#: src/app/main/ui/workspace/libraries.cljs:187 msgid "modals.publish-empty-library.message" msgstr "Pustaka Anda sedang kosong. Apakah Anda ingin menerbitkannya?" +#: src/app/main/ui/workspace/libraries.cljs:186 msgid "modals.publish-empty-library.title" msgstr "Terbitkan pustaka kosong" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "modals.remove-shared-confirm.accept" msgstr "Hapus sebagai Pustaka Terbagi" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "modals.remove-shared-confirm.hint" msgstr "" "Ketika dihapus sebagai Pustaka Terbagi, Pustaka Berkas dari berkas ini akan " "tidak lagi tersedia untuk digunakan di antara berkas Anda." -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "modals.remove-shared-confirm.message" msgstr "Hapus “%s” sebagai Pustaka Terbagi" -#: src/app/main/ui/workspace/nudge.cljs +#: src/app/main/ui/workspace/nudge.cljs:53 msgid "modals.small-nudge" msgstr "Dorongan kecil" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:52 msgid "modals.unpublish-shared-confirm.accept" msgid_plural "modals.unpublish-shared-confirm.accept" msgstr[0] "Batalkan penerbitan" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:47 msgid "modals.unpublish-shared-confirm.message" msgid_plural "modals.unpublish-shared-confirm.message" msgstr[0] "Apakah Anda yakin ingin membatalkan penerbitan pustaka ini?" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:42 msgid "modals.unpublish-shared-confirm.title" msgid_plural "modals.unpublish-shared-confirm.title" msgstr[0] "Batalkan penerbitan pustaka" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#, unused msgid "modals.update-remote-component-in-bulk.hint" msgstr "" "Anda akan memperbarui komponen dalam pustaka terbagi. Ini mungkin " "memengaruhi berkas lain yang menggunakannya." -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#, unused msgid "modals.update-remote-component-in-bulk.message" msgstr "Perbarui komponen dalam pustaka terbagi" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:380 msgid "modals.update-remote-component.accept" msgstr "Perbarui" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:379 msgid "modals.update-remote-component.cancel" msgstr "Batal" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:378 msgid "modals.update-remote-component.hint" msgstr "" "Anda akan memperbarui sebuah komponen dalam sebuah pustaka terbagi. Ini " "mungkin memengaruhi berkas lain yang menggunakannya." -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:377 msgid "modals.update-remote-component.message" msgstr "Perbarui sebuah komponen dalam sebuah pustaka terbagi" -#: src/app/main/data/common.cljs +#: src/app/main/data/common.cljs:71 msgid "notifications.by-code.upgrade-version" msgstr "Versi baru sudah tersedia, silakan muat ulang laman" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:154, src/app/main/ui/dashboard/team.cljs:595 msgid "notifications.invitation-email-sent" msgstr "Undangan berhasil dikirim" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:616 msgid "notifications.invitation-link-copied" msgstr "Tautan undangan disalin" -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:24 msgid "notifications.profile-deletion-not-allowed" msgstr "" "Anda tidak dapat menghapus profil Anda. Ubah peran pada tim Anda sebelum " "menlanjutkan." -#: src/app/main/ui/settings/profile.cljs, src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:29, src/app/main/ui/settings/profile.cljs:35 msgid "notifications.profile-saved" msgstr "Profil berhasil disimpan!" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:63 msgid "notifications.validation-email-sent" msgstr "Surel verifikasi dikirim ke %s. Periksa surel Anda!" +#, unused msgid "onboarding-v2.before-start.desc1" msgstr "" "Anda seharusnya tahu bahwa ada banyak sumber daya yang tersedia untuk " "membantu Anda memulai dengan Penpot, seperti Panduan Pengguna dan saluran " "YouTube kami." +#, unused msgid "onboarding-v2.before-start.desc2" msgstr "" "Info detail cara menggunakan Penpot. Dari pembuatan prototipe sampai " "mengelola atau membagikan desain." +#, unused msgid "onboarding-v2.before-start.desc2.title" msgstr "Panduan pengguna" +#, unused msgid "onboarding-v2.before-start.desc3" msgstr "" "Anda dapat melihat tutorial kami dan tutorial lain yang dibuat oleh " "komunitas kami." +#, unused msgid "onboarding-v2.before-start.desc3.title" msgstr "Tutorial video" +#, unused msgid "onboarding-v2.before-start.title" msgstr "Sebelum Anda mulai" +#: src/app/main/ui/onboarding/newsletter.cljs:63 msgid "onboarding-v2.newsletter.desc" msgstr "" "Berlangganan ke buletin Penpot untuk tetap terkini dengan kemajuan " "pengembangan dan berita produk." +#: src/app/main/ui/onboarding/newsletter.cljs:83 msgid "onboarding-v2.newsletter.news" -msgstr "" -"Kirimkan saya berita tentang Penpot (pos blog, tutorial video, siaran...)." +msgstr "Kirimkan saya berita tentang Penpot (pos blog, tutorial video, siaran...)." +#: src/app/main/ui/onboarding/newsletter.cljs:91 msgid "onboarding-v2.newsletter.privacy1" msgstr "Kami peduli tentang privasi, di sini Anda dapat membaca " +#: src/app/main/ui/onboarding/newsletter.cljs:97 msgid "onboarding-v2.newsletter.privacy2" msgstr "" "Kami hanya akan mengirim surel yang relevan. Anda dapat berhenti " "berlangganan kapan pun melalui tautan berhenti langganan di buletin apa pun " "dari kami." +#: src/app/main/ui/onboarding/newsletter.cljs:71 msgid "onboarding-v2.newsletter.updates" msgstr "Kirimkan saya pembaruan produk (fitur baru, rilis, perbaikan...)." +#, unused msgid "onboarding-v2.welcome.desc1" msgstr "" "Penpot itu Sumber Terbuka dan dibuat oleh Kaleidos beserta komunitasnya, di " "mana banyak orang sudah membantu sesama. Siapa pun dapat berkontribusi " "dengan:" +#, unused msgid "onboarding-v2.welcome.desc2" msgstr "" "Sebuah ruang umum untuk belajar, berbagi, dan berdiskusi tentang Penpot, " "masa sekarang dan masa depan dengan seluruh Komunitas dan tim inti Penpot." +#, unused msgid "onboarding-v2.welcome.desc2.title" msgstr "Berpartisipasi dalam Komunitas" +#, unused msgid "onboarding-v2.welcome.desc3" msgstr "" -"Di mana Anda akan menemukan cara berkolaborasi dengan terjemahan, permintaan " -"fitur, kontribusi inti, pemburuan kutu…" +"Di mana Anda akan menemukan cara berkolaborasi dengan terjemahan, " +"permintaan fitur, kontribusi inti, pemburuan kutu…" +#, unused msgid "onboarding-v2.welcome.desc3.title" msgstr "Panduan berkontribusi" +#: src/app/main/ui/onboarding/team_choice.cljs:31 msgid "onboarding-v2.welcome.title" msgstr "Selamat datang di Penpot!" +#: src/app/main/ui/onboarding/team_choice.cljs:229 msgid "onboarding.choice.team-up.continue-creating-team" msgstr "Lanjutkan membuat tim" +#: src/app/main/ui/onboarding/team_choice.cljs:239 msgid "onboarding.choice.team-up.continue-without-a-team" msgstr "Lanjutkan tanpa tim" +#: src/app/main/ui/onboarding/team_choice.cljs:167 msgid "onboarding.choice.team-up.create-team-and-invite" msgstr "Buat tim & undang" +#, unused msgid "onboarding.choice.team-up.create-team-and-send-invites" msgstr "Buat tim dan kirim undangan" +#: src/app/main/ui/onboarding/team_choice.cljs:170 msgid "onboarding.choice.team-up.create-team-and-send-invites-description" msgstr "Anda nanti akan dapat mengundang" +#: src/app/main/ui/onboarding/team_choice.cljs:215 msgid "onboarding.choice.team-up.create-team-desc" msgstr "" "Setelah memberi nama tim, Anda akan dapat mengundang orang-orang untuk " "bergabung." +#: src/app/main/ui/onboarding/team_choice.cljs:224 msgid "onboarding.choice.team-up.create-team-placeholder" msgstr "Masukkan nama tim" +#: src/app/main/ui/onboarding/team_choice.cljs:168 msgid "onboarding.choice.team-up.create-team-without-invite" msgstr "Buat tim" +#, unused msgid "onboarding.choice.team-up.create-team-without-inviting" msgstr "Buat tim tanpa mengundang" +#: src/app/main/ui/dashboard/projects.cljs:89, src/app/main/ui/onboarding/team_choice.cljs:140 msgid "onboarding.choice.team-up.invite-members" msgstr "Undang anggota" +#: src/app/main/ui/onboarding/team_choice.cljs:141 msgid "onboarding.choice.team-up.invite-members-info" msgstr "" "Pastikan untuk menyertakan semuanya. Pengembang, pendesain, pengelola... " "keragaman bertambah :)" +#: src/app/main/ui/dashboard/team.cljs:202, src/app/main/ui/onboarding/team_choice.cljs:146 msgid "onboarding.choice.team-up.roles" msgstr "Undang dengan peran:" +#: src/app/main/ui/onboarding/team_choice.cljs:232 msgid "onboarding.choice.team-up.start-without-a-team" msgstr "Mulai tanpa tim" +#: src/app/main/ui/onboarding/team_choice.cljs:234 msgid "onboarding.choice.team-up.start-without-a-team-description" msgstr "Anda nanti akan dapat membuat tim." +#, unused msgid "onboarding.newsletter.accept" msgstr "Ya, berlangganan" +#: src/app/main/ui/onboarding/newsletter.cljs:40 msgid "onboarding.newsletter.acceptance-message" msgstr "" "Permintaan langganan Anda telah dikirim, kami akan mengirim Anda sebuah " "surel untuk mengonfirmasinya." +#: src/app/main/ui/onboarding/newsletter.cljs:95 msgid "onboarding.newsletter.policy" msgstr "Kebijakan Privasi kami." +#: src/app/main/ui/onboarding/newsletter.cljs:60 msgid "onboarding.newsletter.title" msgstr "Ingin menerima berita Penpot?" +#: src/app/main/ui/onboarding/questions.cljs:118 +msgid "onboarding.questions.lets-get-started" +msgstr "Mari kita mulai!" + +#: src/app/main/ui/onboarding/questions.cljs:273 +msgid "onboarding.questions.team-size.11-30" +msgstr "11–30" + +#: src/app/main/ui/onboarding/questions.cljs:274 +msgid "onboarding.questions.team-size.2-10" +msgstr "2–10" + +#: src/app/main/ui/onboarding/questions.cljs:272 +msgid "onboarding.questions.team-size.31-50" +msgstr "31–50" + +#: src/app/main/ui/onboarding/questions.cljs:271 +msgid "onboarding.questions.team-size.more-than-50" +msgstr "Lebih dari 50" + +#: src/app/main/ui/onboarding/questions.cljs:276 +msgid "onboarding.questions.team-size.personal-project" +msgstr "Saya mengerjakan proyek pribadi" + +#: src/app/main/ui/onboarding/team_choice.cljs:213 msgid "onboarding.team-modal.create-team" msgstr "Buat sebuah tim" +#: src/app/main/ui/onboarding/team_choice.cljs:35 msgid "onboarding.team-modal.create-team-desc" msgstr "" "Sebuah tim memungkinkan Anda berkolaborasi dengan pengguna Penpot lain " "bekerja dalam berkas dan proyek yang sama." +#: src/app/main/ui/onboarding/team_choice.cljs:40 msgid "onboarding.team-modal.create-team-feature-1" msgstr "Berkas dan proyek tidak terbatas" +#: src/app/main/ui/onboarding/team_choice.cljs:44 msgid "onboarding.team-modal.create-team-feature-2" msgstr "Edisi multipemain" +#: src/app/main/ui/onboarding/team_choice.cljs:48 msgid "onboarding.team-modal.create-team-feature-3" msgstr "Pengelolaan peran" +#: src/app/main/ui/onboarding/team_choice.cljs:52 msgid "onboarding.team-modal.create-team-feature-4" msgstr "Anggota tidak terbatas" +#: src/app/main/ui/onboarding/team_choice.cljs:56 msgid "onboarding.team-modal.create-team-feature-5" msgstr "100% gratis!" +#: src/app/main/ui/onboarding/team_choice.cljs:33 +msgid "onboarding.team-modal.team-definition" +msgstr "Apa itu tim?" + +#: src/app/main/ui/onboarding/templates.cljs:78 msgid "onboarding.templates.subtitle" msgstr "Berikut adalah beberapa templat." +#: src/app/main/ui/onboarding/templates.cljs:77 msgid "onboarding.templates.title" msgstr "Mulai mendesain" +#, unused msgid "onboarding.welcome.alt" msgstr "Penpot" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:99 msgid "profile.recovery.go-to-login" msgstr "Pergi ke log masuk" -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.team-size.11-30" -msgstr "11–30" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.team-size.2-10" -msgstr "2–10" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.team-size.31-50" -msgstr "31–50" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.adobe-xd" -msgstr "Adobe XD" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.canva" -msgstr "Canva" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.developer" -msgstr "Pengembang" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.figma" -msgstr "Figma" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.freelancer" -msgstr "Saya seorang pekerja lepas" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.invision" -msgstr "InVision" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.lets-get-started" -msgstr "Mari kita mulai!" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.team-size.more-than-50" -msgstr "Lebih dari 50" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.next" -msgstr "Berikutnya" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.other" -msgstr "Lainnya (jelaskan)" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.team-size.personal-project" -msgstr "Saya mengerjakan proyek pribadi" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.previous" -msgstr "Sebelumnya" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.select-option" -msgstr "Pilih opsi" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.sketch" -msgstr "Sketch" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.start" -msgstr "Mulai" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.student-teacher" -msgstr "Siswa atau Guru" - -#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, +#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:221 msgid "settings.detach" msgstr "Copot" -#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs +#: src/app/main/ui/viewer/inspect/exports.cljs:147, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:631, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:137, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:148, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:188, src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:158, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:399, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:410, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:430, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:441, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:458, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:472, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:309, src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:183, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:373, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:389, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:245, src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:172 msgid "settings.multiple" msgstr "Tercampur" +#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:271 +msgid "settings.select-this-color" +msgstr "Pilih item menggunakan gaya ini" + # SECTIONS +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:414 msgid "shortcut-section.basics" msgstr "Dasar" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:420 msgid "shortcut-section.dashboard" msgstr "Dasbor" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:423 msgid "shortcut-section.viewer" msgstr "Pelihat" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:417 msgid "shortcut-section.workspace" msgstr "Ruang Kerja" # SUBSECTIONS +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:56 msgid "shortcut-subsection.alignment" msgstr "Penyesuaian" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:57 msgid "shortcut-subsection.edit" msgstr "Sunting" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:58 msgid "shortcut-subsection.general-dashboard" msgstr "Generik" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:59 msgid "shortcut-subsection.general-viewer" msgstr "Generik" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:60 msgid "shortcut-subsection.main-menu" msgstr "Menu utama" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:61 msgid "shortcut-subsection.modify-layers" msgstr "Ubah lapisan" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:62 msgid "shortcut-subsection.navigation-dashboard" msgstr "Navigasi" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:63 msgid "shortcut-subsection.navigation-viewer" msgstr "Navigasi" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:64 msgid "shortcut-subsection.navigation-workspace" msgstr "Navigasi" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:65 msgid "shortcut-subsection.panels" msgstr "Panel" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:66 msgid "shortcut-subsection.path-editor" msgstr "Jejak" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:67 msgid "shortcut-subsection.shape" msgstr "Bentuk" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:68 msgid "shortcut-subsection.text-editor" msgstr "Teks" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:69 msgid "shortcut-subsection.tools" msgstr "Peralatan" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:70 msgid "shortcut-subsection.zoom-viewer" msgstr "Zum" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:71 msgid "shortcut-subsection.zoom-workspace" msgstr "Zum" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:72 msgid "shortcuts.add-comment" msgstr "Komentar" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:73 msgid "shortcuts.add-node" msgstr "Tambahkan simpul" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:74 msgid "shortcuts.align-bottom" msgstr "Sesuaikan ke bawah" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:75 msgid "shortcuts.align-center" msgstr "Paskan ke tengah" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:76 msgid "shortcuts.align-hcenter" msgstr "Sesuaikan ke tengah secara horizontal" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:77 msgid "shortcuts.align-justify" msgstr "Paskan secara rata" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:78 msgid "shortcuts.align-left" msgstr "Sesuaikan ke kiri" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:79 msgid "shortcuts.align-right" msgstr "Sesuaikan ke kanan" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:80 msgid "shortcuts.align-top" msgstr "Sesuaikan ke atas" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:81 msgid "shortcuts.align-vcenter" msgstr "Sesuaikan ke tengah secara vertikal" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:82 msgid "shortcuts.artboard-selection" msgstr "Buat papan dari seleksi" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:83 msgid "shortcuts.bold" msgstr "Tebal" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:84 msgid "shortcuts.bool-difference" msgstr "Perbedaan boolean" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:85 msgid "shortcuts.bool-exclude" msgstr "Pengecualian boolean" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:86 msgid "shortcuts.bool-intersection" msgstr "Berpotongan boolean" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:87 msgid "shortcuts.bool-union" msgstr "Serikat boolean" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:88 msgid "shortcuts.bring-back" msgstr "Turunkan ke paling belakang" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:89 msgid "shortcuts.bring-backward" msgstr "Turunkan ke belakang" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:90 msgid "shortcuts.bring-forward" msgstr "Naikkan ke atas" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:91 msgid "shortcuts.bring-front" msgstr "Naikkan ke paling atas" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:92 msgid "shortcuts.clear-undo" msgstr "Hapus urungan" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:93 msgid "shortcuts.copy" msgstr "Salin" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:94 msgid "shortcuts.create-component" msgstr "Buat komponen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:95 msgid "shortcuts.create-new-project" msgstr "Buat baru" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:96 msgid "shortcuts.cut" msgstr "Potong" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:97 msgid "shortcuts.decrease-zoom" msgstr "Perkecil" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:98 msgid "shortcuts.delete" msgstr "Hapus" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:99 msgid "shortcuts.delete-node" msgstr "Hapus simpul" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:100 msgid "shortcuts.detach-component" msgstr "Lepaskan komponen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:101 msgid "shortcuts.draw-curve" msgstr "Kurva" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:102 msgid "shortcuts.draw-ellipse" msgstr "Elipss" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:103 msgid "shortcuts.draw-frame" msgstr "Papan" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:104 msgid "shortcuts.draw-nodes" msgstr "Gambar jalur" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:105 msgid "shortcuts.draw-path" msgstr "Jalur" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:106 msgid "shortcuts.draw-rect" msgstr "Persegi Panjang" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:107 msgid "shortcuts.draw-text" msgstr "Teks" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:108 msgid "shortcuts.duplicate" msgstr "Gandakan" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:109 msgid "shortcuts.escape" msgstr "Batal" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:110 msgid "shortcuts.export-shapes" msgstr "Ekspor bentuk" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:111 msgid "shortcuts.fit-all" msgstr "Zum untuk muat semua" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:112 msgid "shortcuts.flip-horizontal" msgstr "Balikkan secara horizontal" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:113 msgid "shortcuts.flip-vertical" msgstr "Balikkan secara vertikal" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:114 msgid "shortcuts.font-size-dec" msgstr "Kurangi ukuran fon" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:115 msgid "shortcuts.font-size-inc" msgstr "Tambahkan ukuran fon" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:116 msgid "shortcuts.go-to-drafts" msgstr "Pergi ke draf" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:117 msgid "shortcuts.go-to-libs" msgstr "Pergi ke pustaka terbagi" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:118 msgid "shortcuts.go-to-search" msgstr "Cari" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:119 msgid "shortcuts.group" msgstr "Kelompok" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:120 msgid "shortcuts.h-distribute" msgstr "Distribusikan secara horizontal" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:121 msgid "shortcuts.hide-ui" msgstr "Tampilkan/sembunyikan antarmuka" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:122 msgid "shortcuts.increase-zoom" msgstr "Perbesar" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:123 msgid "shortcuts.insert-image" msgstr "Sematkan gambar" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:124 msgid "shortcuts.italic" msgstr "Miring" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:125 msgid "shortcuts.join-nodes" msgstr "Gabungkan simpul" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:126 msgid "shortcuts.letter-spacing-dec" msgstr "Kurangi spasi huruf" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:127 msgid "shortcuts.letter-spacing-inc" msgstr "Tambahkan spasi huruf" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:128 msgid "shortcuts.line-height-dec" msgstr "Kurangi ketinggian baris" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:129 msgid "shortcuts.line-height-inc" msgstr "Tambahkan ketinggian baris" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:130 msgid "shortcuts.line-through" msgstr "Coret" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:131 msgid "shortcuts.make-corner" msgstr "Buat sudut" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:132 msgid "shortcuts.make-curve" msgstr "Buat kurva" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:133 msgid "shortcuts.mask" msgstr "Topeng" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:134 msgid "shortcuts.merge-nodes" msgstr "Gabungkan simpul" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:135 msgid "shortcuts.move" msgstr "Pindah" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:136 msgid "shortcuts.move-fast-down" msgstr "Pindah ke bawah secara cepat" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:137 msgid "shortcuts.move-fast-left" msgstr "Pindah ke kiri secara cepat" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:138 msgid "shortcuts.move-fast-right" msgstr "Pindah ke kanan secara cepat" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:139 msgid "shortcuts.move-fast-up" msgstr "Pindah ke atas secara cepat" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:140 msgid "shortcuts.move-nodes" msgstr "Pindahkan simpul" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:141 msgid "shortcuts.move-unit-down" msgstr "Pindah ke bawah" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:142 msgid "shortcuts.move-unit-left" msgstr "Pindah ke kiri" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:143 msgid "shortcuts.move-unit-right" msgstr "Pindah ke kanan" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:144 msgid "shortcuts.move-unit-up" msgstr "Pindah ke atas" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:145 msgid "shortcuts.next-frame" msgstr "Papan berikutnya" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:516 msgid "shortcuts.not-found" msgstr "Tidak ada pintasan yang ditemukan" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:146 msgid "shortcuts.opacity-0" msgstr "Tetapkan opasitas ke 100%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:147 msgid "shortcuts.opacity-1" msgstr "Tetapkan opasitas ke 10%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:148 msgid "shortcuts.opacity-2" msgstr "Tetapkan opasitas ke 20%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:149 msgid "shortcuts.opacity-3" msgstr "Tetapkan opasitas ke 30%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:150 msgid "shortcuts.opacity-4" msgstr "Tetapkan opasitas ke 40%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:151 msgid "shortcuts.opacity-5" msgstr "Tetapkan opasitas ke 50%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:152 msgid "shortcuts.opacity-6" msgstr "Tetapkan opasitas ke 60%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:153 msgid "shortcuts.opacity-7" msgstr "Tetapkan opasitas ke 70%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:154 msgid "shortcuts.opacity-8" msgstr "Tetapkan opasitas ke 80%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:155 msgid "shortcuts.opacity-9" msgstr "Tetapkan opasitas ke 90%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:156 msgid "shortcuts.open-color-picker" msgstr "Pemilih warna" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:157 msgid "shortcuts.open-comments" msgstr "Pergi ke bagian komentar pelihat" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:158 msgid "shortcuts.open-dashboard" msgstr "Pergi ke dasbor" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:159 msgid "shortcuts.open-inspect" msgstr "Pergi ke bagian inspeksi penampil" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:160 msgid "shortcuts.open-interactions" msgstr "Pergi ke bagian interaksi pelihat" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:161 msgid "shortcuts.open-viewer" msgstr "Pergi ke bagian interaksi pelihat" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:162 msgid "shortcuts.open-workspace" msgstr "Pergi ke ruang kerja" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:260 msgid "shortcuts.or" msgstr " atau " +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:163 msgid "shortcuts.paste" msgstr "Tempelkan" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:164 msgid "shortcuts.prev-frame" msgstr "Papan sebelumnya" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:165 msgid "shortcuts.redo" msgstr "Ulangi" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:166 msgid "shortcuts.reset-zoom" msgstr "Atur ulang zum" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:167 +msgid "shortcuts.scale" +msgstr "Skala" + +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:168 msgid "shortcuts.search-placeholder" msgstr "Cari pintasan" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:169 msgid "shortcuts.select-all" msgstr "Pilih semua" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:170 msgid "shortcuts.select-next" msgstr "Pilih lapisan berikutnya" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:171 msgid "shortcuts.select-parent-layer" msgstr "Pilih lapisan induk" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:172 msgid "shortcuts.select-prev" msgstr "Pilih lapisan sebelumnya" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:173 msgid "shortcuts.separate-nodes" msgstr "Pisahkan simpul" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:174 msgid "shortcuts.show-pixel-grid" msgstr "Tampilkan/sembunyikan kisi piksel" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:175 msgid "shortcuts.show-shortcuts" msgstr "Tampilkan/sembunyikan pintasan" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:176 msgid "shortcuts.snap-nodes" msgstr "Tancap ke simpul" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:177 msgid "shortcuts.snap-pixel-grid" msgstr "Tancap ke kisi piksel" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:178 msgid "shortcuts.start-editing" msgstr "Mulai menyunting" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:179 msgid "shortcuts.start-measure" msgstr "Mulai mengukur" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:180 msgid "shortcuts.stop-measure" msgstr "Berhenti mengukur" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:181 msgid "shortcuts.text-align-center" msgstr "Paskan ke tengah" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:182 msgid "shortcuts.text-align-justify" msgstr "Paskan secara rata" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:183 msgid "shortcuts.text-align-left" msgstr "Paskan ke kiri" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:184 msgid "shortcuts.text-align-right" msgstr "Paskan ke kanan" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:185 msgid "shortcuts.thumbnail-set" msgstr "Tetapkan gambar kecil" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:496, src/app/main/ui/workspace/sidebar/shortcuts.cljs:505 msgid "shortcuts.title" msgstr "Pintasan papan ketik" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:186 msgid "shortcuts.toggle-alignment" msgstr "Alih penyesuaian dinamis" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:187 msgid "shortcuts.toggle-assets" msgstr "Alih aset" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:188 msgid "shortcuts.toggle-colorpalette" msgstr "Alih palet warna" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:189 msgid "shortcuts.toggle-focus-mode" msgstr "Alih mode fokus" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:190 msgid "shortcuts.toggle-fullscreen" msgstr "Alih layar penuh" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:191 +msgid "shortcuts.toggle-guides" +msgstr "Tampilkan / Sembunyikan panduan" + +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:192 msgid "shortcuts.toggle-history" msgstr "Alih riwayat" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:193 msgid "shortcuts.toggle-layers" msgstr "Alih lapisan" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:194 msgid "shortcuts.toggle-layout-flex" msgstr "Tambahkan/hapus tata letak flex" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:195 +msgid "shortcuts.toggle-layout-grid" +msgstr "Tambahkan/hapus tata letak kisi" + +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:196 msgid "shortcuts.toggle-lock" msgstr "Kunci dipilih" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:197 msgid "shortcuts.toggle-lock-size" msgstr "Kunci proporsi" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:198 +msgid "shortcuts.toggle-rulers" +msgstr "Tampilkan / Sembunyikan penggaris" + +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:200 +msgid "shortcuts.toggle-snap-guides" +msgstr "Pasang ke panduan" + +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:201 +msgid "shortcuts.toggle-snap-ruler-guide" +msgstr "Pasang ke panduan penggaris" + +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:202 msgid "shortcuts.toggle-textpalette" msgstr "Alih palet teks" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:203 msgid "shortcuts.toggle-theme" msgstr "Ubah tema" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:204 msgid "shortcuts.toggle-visibility" msgstr "Alih keterlihatan" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:205 msgid "shortcuts.toggle-zoom-style" msgstr "Alih gaya zum" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:206 msgid "shortcuts.underline" msgstr "Garis bawah" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:207 msgid "shortcuts.undo" msgstr "Urungkan" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:208 msgid "shortcuts.ungroup" msgstr "Lepaskan kelompok" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:209 msgid "shortcuts.unmask" msgstr "Lepaskan topeng" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:210 msgid "shortcuts.v-distribute" msgstr "Distribusikan secara vertikal" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:211 msgid "shortcuts.zoom-lense-decrease" msgstr "Kurangi lensa zum" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:212 msgid "shortcuts.zoom-lense-increase" msgstr "Tambahkan lensa zum" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:213 msgid "shortcuts.zoom-selected" msgstr "Zum ke terpilih" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:771 msgid "team.webhooks.max-length" msgstr "Nama webhook berisi sampai 2048 karakter." -#: src/app/main/ui/dashboard/files.cljs +#: src/app/main/ui/dashboard/files.cljs:158 msgid "title.dashboard.files" msgstr "%s - Penpot" -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:37 msgid "title.dashboard.font-providers" msgstr "Penyedia Fon - %s - Penpot" -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:36 msgid "title.dashboard.fonts" msgstr "Fon - %s - Penpot" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:320 msgid "title.dashboard.projects" msgstr "Proyek - %s - Penpot" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:32 msgid "title.dashboard.search" msgstr "Cari - %s - Penpot" -#: src/app/main/ui/dashboard/libraries.cljs +#: src/app/main/ui/dashboard/libraries.cljs:44 msgid "title.dashboard.shared-libraries" msgstr "Pustaka Terbagi - %s - Penpot" -#: src/app/main/ui/auth/verify_token.cljs, src/app/main/ui/auth.cljs +#: src/app/main/ui/auth/verify_token.cljs:68, src/app/main/ui/auth.cljs:54 msgid "title.default" msgstr "Penpot - Kebebasan Desain untuk Tim" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:292 msgid "title.settings.access-tokens" msgstr "Profil - Token akses" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:110 msgid "title.settings.feedback" msgstr "Berikan masukan - Penpot" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:80 msgid "title.settings.options" msgstr "Pengaturan - Penpot" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:115 msgid "title.settings.password" msgstr "Kata sandi - Penpot" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:115 msgid "title.settings.profile" msgstr "Profil - Penpot" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:727 msgid "title.team-invitations" msgstr "Undangan - %s - Penpot" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:493 msgid "title.team-members" msgstr "Anggota - %s - Penpot" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1036 msgid "title.team-settings" msgstr "Pengaturan - %s - Penpot" +#: src/app/main/ui/dashboard/team.cljs:989 msgid "title.team-webhooks" msgstr "Kaitan Web - %s - Penpot" -#: src/app/main/ui/handoff.cljs, src/app/main/ui/viewer.cljs +#: src/app/main/ui/viewer.cljs:419 msgid "title.viewer" msgstr "%s - Mode penampilan - Penpot" -#: src/app/main/ui/workspace.cljs +#: src/app/main/ui/workspace.cljs:190 msgid "title.workspace" msgstr "%s - Penpot" +#: src/app/main/ui.cljs:144 msgid "viewer.breaking-change.description" msgstr "" "Tautan yang dapat dibagikan ini tidak valid lagi. Buat yang baru atau " "tanyakan kepada pemilik untuk membuat lagi." +#: src/app/main/ui.cljs:143 msgid "viewer.breaking-change.message" msgstr "Maaf!" -#: src/app/main/ui/handoff.cljs, src/app/main/ui/viewer.cljs +#: src/app/main/ui/viewer.cljs:569 msgid "viewer.empty-state" msgstr "Tidak ada papan yang ditemukan di halaman." -#: src/app/main/ui/handoff.cljs, src/app/main/ui/viewer.cljs +#: src/app/main/ui/viewer.cljs:574 msgid "viewer.frame-not-found" msgstr "Papan tidak ditemukan." +#: src/app/main/ui/viewer/header.cljs:336 msgid "viewer.header.comments-section" msgstr "Komentar (%s)" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/interactions.cljs:292 msgid "viewer.header.dont-show-interactions" msgstr "Jangan tampilkan interaksi" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/header.cljs:188 msgid "viewer.header.fullscreen" msgstr "Layar Penuh" +#: src/app/main/ui/viewer/header.cljs:345 msgid "viewer.header.inspect-section" msgstr "Inspeksi (%s)" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/interactions.cljs:282 msgid "viewer.header.interactions" msgstr "Interaksi" +#: src/app/main/ui/viewer/header.cljs:327 msgid "viewer.header.interactions-section" msgstr "Interaksi (%s)" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/share_link.cljs:187 msgid "viewer.header.share.copy-link" msgstr "Salin tautan" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/interactions.cljs:300 msgid "viewer.header.show-interactions" msgstr "Tampilkan interaksi" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/interactions.cljs:311 msgid "viewer.header.show-interactions-on-click" msgstr "Tampilkan interaksi pada klik" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/header.cljs:231 msgid "viewer.header.sitemap" msgstr "Peta Situs" +#: src/app/main/ui/dashboard/team.cljs:948 msgid "webhooks.last-delivery.success" msgstr "Pengiriman terakhir berhasil." -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:58 msgid "workspace.align.hcenter" msgstr "Sesuaikan tengah horizontal (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:74 msgid "workspace.align.hdistribute" msgstr "Distribusikan spasi horizontal (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:50 msgid "workspace.align.hleft" msgstr "Sesuaikan ke kiri (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:66 msgid "workspace.align.hright" msgstr "Sesuaikan ke kanan (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:99 msgid "workspace.align.vbottom" msgstr "Sesuaikan ke bawah (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:91 msgid "workspace.align.vcenter" msgstr "Sesuaikan ke tengah vertikal (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:104 msgid "workspace.align.vdistribute" msgstr "Distribusikan spasi vertikal (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:83 msgid "workspace.align.vtop" msgstr "Sesuaikan ke atas (%s)" #: src/app/main/ui/workspace/sidebar/assets.cljs +#, unused msgid "workspace.assets.assets" msgstr "Aset" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets.cljs:134 msgid "workspace.assets.box-filter-all" msgstr "Semua aset" -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/dashboard/grid.cljs:130, src/app/main/ui/dashboard/grid.cljs:162, src/app/main/ui/workspace/sidebar/assets/colors.cljs:485, src/app/main/ui/workspace/sidebar/assets.cljs:150 msgid "workspace.assets.colors" msgstr "Warna" -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/dashboard/grid.cljs:126, src/app/main/ui/dashboard/grid.cljs:141, src/app/main/ui/workspace/sidebar/assets/components.cljs:513, src/app/main/ui/workspace/sidebar/assets.cljs:139 msgid "workspace.assets.components" msgstr "Komponen" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:131 msgid "workspace.assets.create-group" msgstr "Buat sebuah kelompok" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:142 msgid "workspace.assets.create-group-hint" -msgstr "" -"Butir Anda akan dinamakan \"nama kelompok / nama butir\" secara otomatis" +msgstr "Butir Anda akan dinamakan \"nama kelompok / nama butir\" secara otomatis" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/context_menu.cljs:529, src/app/main/ui/workspace/sidebar/assets/colors.cljs:251, src/app/main/ui/workspace/sidebar/assets/components.cljs:577, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:424, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:443 msgid "workspace.assets.delete" msgstr "Hapus" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/context_menu.cljs:534, src/app/main/ui/workspace/sidebar/assets/components.cljs:572 msgid "workspace.assets.duplicate" msgstr "Gandakan" +#: src/app/main/ui/workspace/sidebar/assets/components.cljs:571 msgid "workspace.assets.duplicate-main" msgstr "Gandakan utama" -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:247, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:439 msgid "workspace.assets.edit" msgstr "Sunting" -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets.cljs:176 +msgid "workspace.assets.filter" +msgstr "Penyaring" + +#: src/app/main/ui/workspace/sidebar/assets/graphics.cljs:384, src/app/main/ui/workspace/sidebar/assets.cljs:145 msgid "workspace.assets.graphics" msgstr "Grafis" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:255, src/app/main/ui/workspace/sidebar/assets/components.cljs:581, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:428, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:448 msgid "workspace.assets.group" msgstr "Kelompok" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:141 msgid "workspace.assets.group-name" msgstr "Nama kelompok" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets.cljs:168 msgid "workspace.assets.libraries" msgstr "Pustaka" +#: src/app/main/ui/workspace/sidebar/assets/file_library.cljs:62, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:347 msgid "workspace.assets.local-library" msgstr "pustaka lokal" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/file_library.cljs:295 msgid "workspace.assets.not-found" msgstr "Tidak ada aset yang ditemukan" +#, unused msgid "workspace.assets.open-library" msgstr "Buka berkas pustaka" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/context_menu.cljs:532, src/app/main/ui/workspace/sidebar/assets/colors.cljs:243, src/app/main/ui/workspace/sidebar/assets/components.cljs:566, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:421, src/app/main/ui/workspace/sidebar/assets/groups.cljs:63, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:434 msgid "workspace.assets.rename" msgstr "Ubah nama" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:132 msgid "workspace.assets.rename-group" msgstr "Ubah nama kelompok" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets.cljs:173 msgid "workspace.assets.search" msgstr "Cari aset" #: src/app/main/ui/workspace/sidebar/assets.cljs +#, unused msgid "workspace.assets.selected-count" msgid_plural "workspace.assets.selected-count" msgstr[0] "%s aset dipilih" #: src/app/main/ui/workspace/sidebar/assets.cljs +#, unused msgid "workspace.assets.shared-library" msgstr "Pustaka terbagi" -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs -msgid "workspace.assets.typography" -msgstr "Tipografi" - -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -msgid "workspace.assets.typography.font-id" -msgstr "Fon" - -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -msgid "workspace.assets.typography.font-size" -msgstr "Ukuran" - -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -msgid "workspace.assets.typography.font-variant-id" -msgstr "Varian" - -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -msgid "workspace.assets.typography.go-to-edit" -msgstr "Pergi ke berkas pustaka untuk menyunting" - -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -msgid "workspace.assets.typography.letter-spacing" -msgstr "Spasi Huruf" - -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -msgid "workspace.assets.typography.line-height" -msgstr "Ketinggian Garis" - -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, -#: src/app/main/ui/handoff/attributes/text.cljs, -#: src/app/main/ui/handoff/attributes/text.cljs -msgid "workspace.assets.typography.sample" -msgstr "Ag" - -msgid "workspace.assets.typography.text-styles" -msgstr "Gaya teks" - -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -msgid "workspace.assets.typography.text-transform" -msgstr "Transformasi Teks" - -#: src/app/main/ui/workspace/sidebar/assets.cljs -msgid "workspace.assets.ungroup" -msgstr "Lepas kelompok" - -msgid "workspace.context-menu.grid-cells.area" -msgstr "Buat area" - -msgid "workspace.context-menu.grid-cells.create-board" -msgstr "Buat papan" - -msgid "workspace.context-menu.grid-cells.merge" -msgstr "Gabungkan sel" - -msgid "workspace.context-menu.grid-track.column.add-after" -msgstr "Tambah 1 kolom ke kanan" - -msgid "workspace.context-menu.grid-track.column.add-before" -msgstr "Tambah 1 kolom ke kiri" - -msgid "workspace.context-menu.grid-track.column.delete" -msgstr "Hapus kolom" - -msgid "workspace.context-menu.grid-track.column.delete-shapes" -msgstr "Hapus kolom dan bentuk" - -msgid "workspace.context-menu.grid-track.column.duplicate" -msgstr "Gandakan kolom" - -msgid "workspace.context-menu.grid-track.row.add-after" -msgstr "Tambah 1 baris di bawah" - -msgid "workspace.context-menu.grid-track.row.add-before" -msgstr "Tambah 1 baris di atas" - -msgid "workspace.context-menu.grid-track.row.delete" -msgstr "Hapus baris" - -msgid "workspace.context-menu.grid-track.row.delete-shapes" -msgstr "Hapus baris dan bentuk" - -msgid "workspace.context-menu.grid-track.row.duplicate" -msgstr "Gandakan baris" - -msgid "workspace.focus.focus-mode" -msgstr "Mode fokus" - -msgid "workspace.focus.focus-off" -msgstr "Fokus nonaktif" - -msgid "workspace.focus.focus-on" -msgstr "Fokus aktif" - -msgid "workspace.focus.selection" -msgstr "Seleksi" - -#: src/app/main/data/workspace/libraries.cljs, -#: src/app/main/ui/components/color_bullet.cljs -msgid "workspace.gradients.linear" -msgstr "Gradien linear" - -#: src/app/main/data/workspace/libraries.cljs, -#: src/app/main/ui/components/color_bullet.cljs -msgid "workspace.gradients.radial" -msgstr "Gradien radial" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.disable-dynamic-alignment" -msgstr "Nonaktifkan penyesuaian dinamis" - -msgid "workspace.header.menu.disable-scale-content" -msgstr "Nonaktifkan skala proporsional" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.disable-scale-text" -msgstr "Nonaktifkan skala teks" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.disable-snap-guides" -msgstr "Nonaktifkan tancapan ke pemandu" - -msgid "workspace.header.menu.disable-snap-pixel-grid" -msgstr "Nonaktifkan tancapan ke piksel" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.enable-dynamic-alignment" -msgstr "Aktifkan penyesuaian dinamis" - -msgid "workspace.header.menu.enable-scale-content" -msgstr "Aktifkan skala proporsional" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.enable-scale-text" -msgstr "Aktifkan skala teks" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.enable-snap-guides" -msgstr "Tancapkan ke pemandu" - -msgid "workspace.header.menu.enable-snap-pixel-grid" -msgstr "Aktifkan tancapkan ke piksel" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.hide-artboard-names" -msgstr "Sembunyikan nama papan" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.hide-palette" -msgstr "Sembunyikan palet warna" - -msgid "workspace.header.menu.hide-pixel-grid" -msgstr "Sembunyikan kisi piksel" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.hide-rules" -msgstr "Sembunyikan penggaris" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.hide-textpalette" -msgstr "Sembunyikan palet fon" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.option.edit" -msgstr "Sunting" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.option.file" -msgstr "Berkas" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.option.help-info" -msgstr "Bantuan & info" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.option.preferences" -msgstr "Preferensi" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.option.view" -msgstr "Tampilan" - -msgid "workspace.header.menu.redo" -msgstr "Ulangi" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.select-all" -msgstr "Pilih semua" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.show-artboard-names" -msgstr "Tampilkan nama papan" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.show-palette" -msgstr "Tampilkan palet warna" - -msgid "workspace.header.menu.show-pixel-grid" -msgstr "Tampilkan kisi piksel" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.show-rules" -msgstr "Tampilkan penggaris" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.show-textpalette" -msgstr "Tampilkan palet fon" - -msgid "workspace.header.menu.toggle-dark-theme" -msgstr "Ubah ke tema gelap" - -msgid "workspace.header.menu.toggle-light-theme" -msgstr "Ubah ke tema terang" - -msgid "workspace.header.menu.undo" -msgstr "Urungkan" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.reset-zoom" -msgstr "Atur ulang" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.save-error" -msgstr "Kesalahan saat menyimpan" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.saved" -msgstr "Disimpan" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.saving" -msgstr "Menyimpan" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.unsaved" -msgstr "Perubahan belum disimpan" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.viewer" -msgstr "Mode penampilan (%s)" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.zoom" -msgstr "Zum" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.zoom-fill" -msgstr "Penuhi - Ubah ukuran untuk memenuhi" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.zoom-fit" -msgstr "Pas - Ubah ukuran supaya pas" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.zoom-fit-all" -msgstr "Zum supaya pas semua" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.zoom-full-screen" -msgstr "Layar penuh" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.zoom-selected" -msgstr "Zum ke terpilih" - -msgid "workspace.layout_grid.editor.options.edit-grid" -msgstr "Sunting kisi" - -msgid "workspace.layout_grid.editor.options.exit" -msgstr "Keluar" - -msgid "workspace.layout_grid.editor.title" -msgstr "Kisi penyuntingan" - -msgid "workspace.layout_grid.editor.top-bar.done" -msgstr "Selesai" - -msgid "workspace.layout_grid.editor.top-bar.locate" -msgstr "Cari lokasi" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.add" -msgstr "Tambahkan" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.colors" -msgstr "%s warna" - -#: src/app/main/ui/workspace/colorpalette.cljs -msgid "workspace.libraries.colors.empty-palette" -msgstr "Belum ada gaya warna dalam pustaka Anda" - -#: src/app/main/ui/workspace/textpalette.cljs -msgid "workspace.libraries.colors.empty-typography-palette" -msgstr "Belum ada gaya tipografi dalam pustaka Anda" - -#: src/app/main/ui/workspace/colorpicker/libraries.cljs, -#: src/app/main/ui/workspace/colorpalette.cljs -msgid "workspace.libraries.colors.file-library" -msgstr "Pustaka berkas" - -#: src/app/main/ui/workspace/colorpicker.cljs -msgid "workspace.libraries.colors.hsv" -msgstr "HSV" - -#: src/app/main/ui/workspace/colorpicker/libraries.cljs, -#: src/app/main/ui/workspace/colorpalette.cljs -msgid "workspace.libraries.colors.recent-colors" -msgstr "Warna terkini" - -#: src/app/main/ui/workspace/colorpicker.cljs -msgid "workspace.libraries.colors.rgb-complementary" -msgstr "Pelengkap RGB" - -#: src/app/main/ui/workspace/colorpicker.cljs -msgid "workspace.libraries.colors.rgba" -msgstr "RGBA" - -#: src/app/main/ui/workspace/colorpicker.cljs -msgid "workspace.libraries.colors.save-color" -msgstr "Simpan gaya warna" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.components" -msgstr "%s komponen" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.file-library" -msgstr "Pustaka berkas" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.graphics" -msgstr "%s grafis" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.in-this-file" -msgstr "PUSTAKA DALAM BERKAS INI" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.libraries" -msgstr "PUSTAKA" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.library" -msgstr "PUSTAKA" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.library-updates" -msgstr "PEMBARUAN PUSTAKA" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.loading" -msgstr "Memuat…" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.no-libraries-need-sync" -msgstr "Tidak ada Pustaka Terbagi yang membutuhkan pembaruan" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.no-matches-for" -msgstr "Tidak ada yang cocok dengan “%s”" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.no-shared-libraries-available" -msgstr "Tidak ada Pustaka Terbagi yang tersedia" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.search-shared-libraries" -msgstr "Cari pustaka terbagi" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.shared-libraries" -msgstr "PUSTAKA TERBAGI" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.libraries.text.multiple-typography" -msgstr "Beberapa tipografi" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.libraries.text.multiple-typography-tooltip" -msgstr "Lepaskan tautan dari semua tipografi" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.typography" -msgstr "%s tipografi" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.update" -msgstr "Perbarui" - -#: src/app/main/data/workspace/libraries.cljs -msgid "workspace.libraries.update.see-all-changes" -msgstr "lihat semua perubahan" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.updates" -msgstr "PEMBARUAN" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.add-interaction" -msgstr "Klik tombol + untuk menambahkan interaksi." - -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs -msgid "workspace.options.blur-options.title" -msgstr "Buram" - -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs -msgid "workspace.options.blur-options.title.group" -msgstr "Buram kelompok" - -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs -msgid "workspace.options.blur-options.title.multiple" -msgstr "Buram seleksi" - -#: src/app/main/ui/workspace/sidebar/options/page.cljs -msgid "workspace.options.canvas-background" -msgstr "Latar belakang kanvas" - -msgid "workspace.options.clip-content" -msgstr "Klip konten" - -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs -msgid "workspace.options.component" -msgstr "Komponen" - -msgid "workspace.options.component.annotation" -msgstr "Anotasi" - -msgid "workspace.options.component.copy" -msgstr "Salin" - -msgid "workspace.options.component.create-annotation" -msgstr "Buat anotasi" - -msgid "workspace.options.component.edit-annotation" -msgstr "Sunting anotasi" - -msgid "workspace.options.component.main" -msgstr "Utama" - -msgid "workspace.options.component.swap" -msgstr "Ganti komponen" - -msgid "workspace.options.component.swap.empty" -msgstr "Belum ada aset dalam pustaka ini" - -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -msgid "workspace.options.constraints" -msgstr "Pasangan" - -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -msgid "workspace.options.constraints.bottom" -msgstr "Bawah" - -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -msgid "workspace.options.constraints.center" -msgstr "Tengah" - -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -msgid "workspace.options.constraints.fix-when-scrolling" -msgstr "Tetap ketika menggulir" - -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -msgid "workspace.options.constraints.left" -msgstr "Kiri" - -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -msgid "workspace.options.constraints.leftright" -msgstr "Kiri & Kanan" - -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -msgid "workspace.options.constraints.right" -msgstr "Kanan" - -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -msgid "workspace.options.constraints.scale" -msgstr "Ukuran" - -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -msgid "workspace.options.constraints.top" -msgstr "Atas" - -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -msgid "workspace.options.constraints.topbottom" -msgstr "Atas & Bawah" - -#: src/app/main/ui/workspace/sidebar/options.cljs -msgid "workspace.options.design" -msgstr "Desain" - -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/handoff/exports.cljs -msgid "workspace.options.export" -msgstr "Ekspor" - -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/handoff/exports.cljs -msgid "workspace.options.export-multiple" -msgstr "Ekspor seleksi" - -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/handoff/exports.cljs -msgid "workspace.options.export-object" -msgid_plural "workspace.options.export-object" -msgstr[0] "Ekspor %s elemen" - -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs -msgid "workspace.options.export.suffix" -msgstr "Akhiran" - -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/handoff/exports.cljs, src/app/main/ui/workspace/header.cljs -msgid "workspace.options.exporting-complete" -msgstr "Pengeksporan selesai" - -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/handoff/exports.cljs, src/app/main/ui/workspace/header.cljs -msgid "workspace.options.exporting-object" -msgstr "Mengekspor…" - -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/handoff/exports.cljs, src/app/main/ui/workspace/header.cljs -msgid "workspace.options.exporting-object-error" -msgstr "Pengeksporan gagal" - -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/handoff/exports.cljs, src/app/main/ui/workspace/header.cljs -msgid "workspace.options.exporting-object-slow" -msgstr "Pengeksporan secara tidak terduga lambat" - -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs -msgid "workspace.options.fill" -msgstr "Isian" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.flows.add-flow-start" -msgstr "Tambahkan awalan alur" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.flows.flow" -msgstr "Alur" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.flows.flow-start" -msgstr "Awalan alur" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.flows.flow-starts" -msgstr "Aluran dimulai" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.auto" -msgstr "Otomatis" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.column" -msgstr "Kolom" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.grid-title" -msgstr "Kisi" - -msgid "workspace.options.grid.params.color" -msgstr "Warna" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.columns" -msgstr "Kolom" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.gutter" -msgstr "Selokan" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.height" -msgstr "Tinggi" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.margin" -msgstr "Margin" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.rows" -msgstr "Baris" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.set-default" -msgstr "Tetapkan sebagai bawaan" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.size" -msgstr "Ukuran" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.type" -msgstr "Jenis" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.type.bottom" -msgstr "Bawah" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.type.center" -msgstr "Tengah" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.type.left" -msgstr "Kiri" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.type.right" -msgstr "Kanan" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.type.stretch" -msgstr "Lebarkan" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.type.top" -msgstr "Atas" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.use-default" -msgstr "Gunakan bawaan" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.width" -msgstr "Lebar" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.row" -msgstr "Baris" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.square" -msgstr "Kotak" - -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs -msgid "workspace.options.group-fill" -msgstr "Isian kelompok" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.group-stroke" -msgstr "Sapuan kelompok" - -msgid "workspace.options.guides.title" -msgstr "Panduan" - -msgid "workspace.options.height" -msgstr "Tinggi" - -msgid "workspace.options.inspect" -msgstr "Inspeksi" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-action" -msgstr "Tindakan" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-after-delay" -msgstr "Setelah jeda" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-animation" -msgstr "Animasi" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-animation-dissolve" -msgstr "Larut" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-animation-none" -msgstr "Tidak ada" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-animation-push" -msgstr "Dorong" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-animation-slide" -msgstr "Geser" - -msgid "workspace.options.interaction-auto" -msgstr "otomatis" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-background" -msgstr "Tambahkan hamparan latar belakang" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-close-outside" -msgstr "Tutup ketika mengeklik di luar" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-close-overlay" -msgstr "Tutup hamparan" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-close-overlay-dest" -msgstr "Tutup hamparan: %s" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-delay" -msgstr "Jeda" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-destination" -msgstr "Tujuan" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-duration" -msgstr "Durasi" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-easing" -msgstr "Pemasukan" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-easing-ease" -msgstr "Ease" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-easing-ease-in" -msgstr "Ease masuk" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-easing-ease-in-out" -msgstr "Ease masuk keluar" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-easing-ease-out" -msgstr "Ease keluar" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-easing-linear" -msgstr "Linear" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-in" -msgstr "Masuk" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-mouse-enter" -msgstr "Tetikus masuk" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-mouse-leave" -msgstr "Tetikus keluar" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-ms" -msgstr "md" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-navigate-to" -msgstr "Navigasi ke" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-navigate-to-dest" -msgstr "Navigasi ke: %s" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-none" -msgstr "(tidak ditetapkan)" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-offset-effect" -msgstr "Efek ofset" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-on-click" -msgstr "Pada Klik" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-open-overlay" -msgstr "Buka hamparan" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-open-overlay-dest" -msgstr "Buka hamparan: %s" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-open-url" -msgstr "Buka URL" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-out" -msgstr "Keluar" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-pos-bottom-center" -msgstr "Tengah bawah" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-pos-bottom-left" -msgstr "Kiri bawah" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-pos-bottom-right" -msgstr "Kanan bawah" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-pos-center" -msgstr "Tengah" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-pos-manual" -msgstr "Manual" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-pos-top-center" -msgstr "Tengah atas" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-pos-top-left" -msgstr "Kiri atas" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-pos-top-right" -msgstr "Kanan atas" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-position" -msgstr "Posisi" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-preserve-scroll" -msgstr "Jaga posisi gulir" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-prev-screen" -msgstr "Layar sebelumnya" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-relative-to" -msgstr "Relatif ke" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-self" -msgstr "diri sendiri" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-toggle-overlay" -msgstr "Alih hamparan" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-toggle-overlay-dest" -msgstr "Alih hamparan: %s" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-trigger" -msgstr "Picuan" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-url" -msgstr "URL" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-while-hovering" -msgstr "Saat Melayang" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-while-pressing" -msgstr "Saat Menekan" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interactions" -msgstr "Interaksi" - -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.blend-mode.color" -msgstr "Warna" - -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.blend-mode.color-burn" -msgstr "Bakaran warna" - -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.blend-mode.color-dodge" -msgstr "Penghindaran warna" - -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.blend-mode.darken" -msgstr "Gelapkan" - -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.blend-mode.difference" -msgstr "Perbedaan" - -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.blend-mode.exclusion" -msgstr "Tidak termasukan" - -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.blend-mode.hard-light" -msgstr "Cahaya keras" - -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.blend-mode.hue" -msgstr "Rona" - -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.blend-mode.lighten" -msgstr "Terangkan" - -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.blend-mode.luminosity" -msgstr "Kilau" - -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.blend-mode.multiply" -msgstr "Kalikan" - -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.blend-mode.normal" -msgstr "Normal" - -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.blend-mode.overlay" -msgstr "Hamparan" - -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.blend-mode.saturation" -msgstr "Saturasi" - -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.blend-mode.screen" -msgstr "Layar" - -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.blend-mode.soft-light" -msgstr "Cahaya lembut" - -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.title" -msgstr "Lapisan" - -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.title.group" -msgstr "Lapisan kelompok" - -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.title.multiple" -msgstr "Lapisan terpilih" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -msgid "workspace.options.layout-item.advanced-ops" -msgstr "Opsi tingkat lanjut" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -msgid "workspace.options.layout-item.layout-item-max-h" -msgstr "Max.Height" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -msgid "workspace.options.layout-item.layout-item-max-w" -msgstr "Max.Width" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -msgid "workspace.options.layout-item.layout-item-min-h" -msgstr "Min.Height" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -msgid "workspace.options.layout-item.layout-item-min-w" -msgstr "Min.Width" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -msgid "workspace.options.layout-item.title.layout-item-max-h" -msgstr "Tinggi maksimum" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -msgid "workspace.options.layout-item.title.layout-item-max-w" -msgstr "Lebar maksimum" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -msgid "workspace.options.layout-item.title.layout-item-min-h" -msgstr "Tinggi minimum" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -msgid "workspace.options.layout-item.title.layout-item-min-w" -msgstr "Lebar minimum" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -msgid "workspace.options.layout.bottom" -msgstr "Bawah" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -msgid "workspace.options.layout.direction.column" -msgstr "Kolom" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -msgid "workspace.options.layout.direction.column-reverse" -msgstr "Kolom terbalik" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -msgid "workspace.options.layout.direction.row" -msgstr "Barisan" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -msgid "workspace.options.layout.direction.row-reverse" -msgstr "Baris terbalik" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -msgid "workspace.options.layout.gap" -msgstr "Celah" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -msgid "workspace.options.layout.left" -msgstr "Kiri" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -msgid "workspace.options.layout.margin" -msgstr "Margin" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -msgid "workspace.options.layout.margin-all" -msgstr "Semua sisi" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -msgid "workspace.options.layout.margin-simple" -msgstr "Margin sederhana" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -msgid "workspace.options.layout.packed" -msgstr "dipaket" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -msgid "workspace.options.layout.padding" -msgstr "Padding" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -msgid "workspace.options.layout.padding-all" -msgstr "Semua sisi" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -msgid "workspace.options.layout.padding-simple" -msgstr "Padding sederhana" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -msgid "workspace.options.layout.right" -msgstr "Kanan" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -msgid "workspace.options.layout.space-around" -msgstr "ruang di sekitar" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -msgid "workspace.options.layout.space-between" -msgstr "ruang di antara" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -msgid "workspace.options.layout.top" -msgstr "Atas" - -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs -msgid "workspace.options.more-colors" -msgstr "Lebih banyak warna" - -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs -msgid "workspace.options.more-lib-colors" -msgstr "Lebih banyak warna pustaka" - -msgid "workspace.options.opacity" -msgstr "Opasitas" - -#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -msgid "workspace.options.position" -msgstr "Posisi" - -#: src/app/main/ui/workspace/sidebar/options.cljs -msgid "workspace.options.prototype" -msgstr "Prototipe" - -msgid "workspace.options.radius" -msgstr "Radius" - -#: 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" - -#: 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.all-corners" -msgstr "Semua sudut" - -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -msgid "workspace.options.radius.single-corners" -msgstr "Sudut tersendiri" - -msgid "workspace.options.recent-fonts" -msgstr "Terkini" - -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/handoff/exports.cljs, src/app/main/ui/workspace/header.cljs -msgid "workspace.options.retry" -msgstr "Coba lagi" - -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -msgid "workspace.options.rotation" -msgstr "Rotasi" - -msgid "workspace.options.search-font" -msgstr "Cari fon" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.select-a-shape" -msgstr "" -"Pilih bentuk, papan, atau kelompok untuk menyeret koneksi ke papan lain." - -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs -msgid "workspace.options.selection-color" -msgstr "Warna terpilih" - -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs -msgid "workspace.options.selection-fill" -msgstr "Isian seleksi" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.selection-stroke" -msgstr "Sapuan seleksi" - -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs -msgid "workspace.options.shadow-options.blur" -msgstr "Buram" - -msgid "workspace.options.shadow-options.color" -msgstr "Warna bayangan" - -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs -msgid "workspace.options.shadow-options.drop-shadow" -msgstr "Bayangan jatuhan" - -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs -msgid "workspace.options.shadow-options.inner-shadow" -msgstr "Bayangan masuk" - -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs -msgid "workspace.options.shadow-options.offsetx" -msgstr "X" - -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs -msgid "workspace.options.shadow-options.offsety" -msgstr "Y" - -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs -msgid "workspace.options.shadow-options.spread" -msgstr "Tersebar" - -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs -msgid "workspace.options.shadow-options.title" -msgstr "Bayangan" - -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs -msgid "workspace.options.shadow-options.title.group" -msgstr "Bayangan kelompok" - -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs -msgid "workspace.options.shadow-options.title.multiple" -msgstr "Bayangan seleksi" - -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs -msgid "workspace.options.show-fill-on-export" -msgstr "Tampilkan dalam ekspor" - -msgid "workspace.options.show-in-viewer" -msgstr "Tampilkan dalam mode penampil" - -#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -msgid "workspace.options.size" -msgstr "Ukuran" - -#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs -msgid "workspace.options.size-presets" -msgstr "Prasetel ukuran" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke" -msgstr "Sapuan" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke-cap.circle-marker" -msgstr "Penanda lingkaran" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke-cap.circle-marker-short" -msgstr "Lingkaran" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke-cap.diamond-marker" -msgstr "Penanda berlian" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke-cap.diamond-marker-short" -msgstr "Berlian" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke-cap.line-arrow" -msgstr "Panah garis" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke-cap.line-arrow-short" -msgstr "Tanda panah" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke-cap.none" -msgstr "Tidak ada" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke-cap.round" -msgstr "Bulat" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke-cap.square" -msgstr "Kotak" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke-cap.square-marker" -msgstr "Penanda kotak" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke-cap.square-marker-short" -msgstr "Persegi panjang" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke-cap.triangle-arrow" -msgstr "Panah segi tiga" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke-cap.triangle-arrow-short" -msgstr "Segitiga" - -msgid "workspace.options.stroke-color" -msgstr "Warna sapuan" - -msgid "workspace.options.stroke-width" -msgstr "Lebar sapuan" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke.center" -msgstr "Tengah" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke.dashed" -msgstr "Garis" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke.dotted" -msgstr "Titik" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke.inner" -msgstr "Dalam" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke.mixed" -msgstr "Tercampur" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke.outer" -msgstr "Luar" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke.solid" -msgstr "Padat" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.options.text-options.align-bottom" -msgstr "Paskan ke bawah" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.options.text-options.align-middle" -msgstr "Paskan ke tengah" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.options.text-options.align-top" -msgstr "Paskan ke atas" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.options.text-options.direction-ltr" -msgstr "Kiri ke Kanan" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.options.text-options.direction-rtl" -msgstr "Kanan ke Kiri" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.options.text-options.grow-auto-height" -msgstr "Tinggi otomatis" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.options.text-options.grow-auto-width" -msgstr "Lebar otomatis" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.options.text-options.grow-fixed" -msgstr "Tetap" - -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -msgid "workspace.options.text-options.letter-spacing" -msgstr "Spasi Huruf" - -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -msgid "workspace.options.text-options.line-height" -msgstr "Tinggi garis" - -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -msgid "workspace.options.text-options.lowercase" -msgstr "Huruf kecil" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -msgid "workspace.options.text-options.none" -msgstr "Tidak ada" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.options.text-options.strikethrough" -msgstr "Coret (%s)" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.options.text-options.text-align-center" -msgstr "Paskan ke tengah (%s)" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.options.text-options.text-align-justify" -msgstr "Rata Kiri Kanan (%s)" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.options.text-options.text-align-left" -msgstr "Paskan ke kiri (%s)" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.options.text-options.text-align-right" -msgstr "Paskan ke kanan (%s)" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.options.text-options.title" -msgstr "Teks" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.options.text-options.title-group" -msgstr "Teks kelompok" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.options.text-options.title-selection" -msgstr "Teks seleksi" - -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -msgid "workspace.options.text-options.titlecase" -msgstr "Huruf judul" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.options.text-options.underline" -msgstr "Garis bawah (%s)" - -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -msgid "workspace.options.text-options.uppercase" -msgstr "Huruf Besar" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.use-play-button" -msgstr "Gunakan tombol main di tajuk untuk menjalankan tampilan prototipe." - -msgid "workspace.options.width" -msgstr "Lebar" - -msgid "workspace.options.x" -msgstr "Sumbu X" - -msgid "workspace.options.y" -msgstr "Sumbu Y" - -msgid "workspace.path.actions.add-node" -msgstr "Tambahkan simpul (%s)" - -msgid "workspace.path.actions.delete-node" -msgstr "Hapus simpul (%s)" - -msgid "workspace.path.actions.draw-nodes" -msgstr "Gambar simpul (%s)" - -msgid "workspace.path.actions.join-nodes" -msgstr "Gabungkan simpul (%s)" - -msgid "workspace.path.actions.make-corner" -msgstr "Ke sudut (%s)" - -msgid "workspace.path.actions.make-curve" -msgstr "Ke kurva (%s)" - -msgid "workspace.path.actions.merge-nodes" -msgstr "Gabungkan simpul (%s)" - -msgid "workspace.path.actions.move-nodes" -msgstr "Pindahkan simpul (%s)" - -msgid "workspace.path.actions.separate-nodes" -msgstr "Simpul terpisah (%s)" - -msgid "workspace.path.actions.snap-nodes" -msgstr "Tancap simpul (%s)" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.add-flex" -msgstr "Tambahkan tata letak flex" - -msgid "workspace.shape.menu.add-grid" -msgstr "Tambahkan tata letak kisi" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.back" -msgstr "Kirim ke paling belakang" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.backward" -msgstr "Kirim ke belakang" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.copy" -msgstr "Salin" - -msgid "workspace.shape.menu.create-annotation" -msgstr "Buat anotasi" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.create-artboard-from-selection" -msgstr "Seleksi ke papan" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.create-component" -msgstr "Buat komponen" - -msgid "workspace.shape.menu.create-multiple-components" -msgstr "Buat beberapa komponen" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.cut" -msgstr "Potong" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.delete" -msgstr "Hapus" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.delete-flow-start" -msgstr "Hapus awalan alur" - -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.detach-instance" -msgstr "Lepaskan bagian" - -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.detach-instances-in-bulk" -msgstr "Lepaskan bagian" - -msgid "workspace.shape.menu.difference" -msgstr "Perbedaan" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.duplicate" -msgstr "Gandakan" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.edit" -msgstr "Sunting" - -msgid "workspace.shape.menu.exclude" -msgstr "Tidak termasuk" - -msgid "workspace.shape.menu.flatten" -msgstr "Ratakan" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.flip-horizontal" -msgstr "Balikkan secara horizontal" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.flip-vertical" -msgstr "Balikkan secara vertikal" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.flow-start" -msgstr "Awalan alur" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.forward" -msgstr "Bawa ke depan" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.front" -msgstr "Bawa ke paling depan" - -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.go-main" -msgstr "Pergi ke berkas komponen utama" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.group" -msgstr "Kelompok" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.hide" -msgstr "Sembunyikan" - -msgid "workspace.shape.menu.hide-ui" -msgstr "Tampilkan/Sembunyikan Antarmuka" - -msgid "workspace.shape.menu.intersection" -msgstr "Persimpangan" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.lock" -msgstr "Kunci" - -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.mask" -msgstr "Topeng" - -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.paste" -msgstr "Tempelkan" - -msgid "workspace.shape.menu.path" -msgstr "Jalur" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.remove-flex" -msgstr "Hapus tata letak flex" - -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.reset-overrides" -msgstr "Atur ulang timpaan" - -msgid "workspace.shape.menu.restore-main" -msgstr "Pulihkan komponen utama" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.select-layer" -msgstr "Pilih lapisan" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.show" -msgstr "Tampilkan" - -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.show-in-assets" -msgstr "Tampilkan dalam panel aset" - -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.show-main" -msgstr "Tampilkan komponen utama" - -msgid "workspace.shape.menu.thumbnail-remove" -msgstr "Hapus gambar kecil" - -msgid "workspace.shape.menu.thumbnail-set" -msgstr "Tetapkan sebagai gambar kecil" - -msgid "workspace.shape.menu.transform-to-path" -msgstr "Transformasi ke jalur" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.ungroup" -msgstr "Lepaskan kelompok" - -msgid "workspace.shape.menu.union" -msgstr "Serikat" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.unlock" -msgstr "Buka kunci" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.unmask" -msgstr "Buka topeng" - -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.update-components-in-bulk" -msgstr "Perbarui komponen utama" - -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.update-main" -msgstr "Perbarui komponen utama" - -msgid "workspace.sidebar.collapse" -msgstr "Tutup bilah samping" - -msgid "workspace.sidebar.expand" -msgstr "Buka bilah samping" - -#: src/app/main/ui/workspace/left_toolbar.cljs -msgid "workspace.sidebar.history" -msgstr "Riwayat (%s)" - -#: src/app/main/ui/workspace/left_toolbar.cljs -msgid "workspace.sidebar.layers" -msgstr "Lapisan" - -msgid "workspace.sidebar.layers.components" -msgstr "Komponen" - -msgid "workspace.sidebar.layers.frames" -msgstr "Papan" - -msgid "workspace.sidebar.layers.groups" -msgstr "Kelompok" - -msgid "workspace.sidebar.layers.images" -msgstr "Gambar" - -msgid "workspace.sidebar.layers.masks" -msgstr "Topeng" - -msgid "workspace.sidebar.layers.search" -msgstr "Cari lapisan" - -msgid "workspace.sidebar.layers.shapes" -msgstr "Bentuk" - -msgid "workspace.sidebar.layers.texts" -msgstr "Teks" - -#: src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs, -#: src/app/main/ui/handoff/attributes/svg.cljs -msgid "workspace.sidebar.options.svg-attrs.title" -msgstr "Atribut SVG Diimpor" - -#: src/app/main/ui/workspace/sidebar/sitemap.cljs -msgid "workspace.sidebar.sitemap" -msgstr "Halaman" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.sitemap" -msgstr "Peta Situs" - -#: src/app/main/ui/workspace/left_toolbar.cljs -msgid "workspace.toolbar.assets" -msgstr "Aset" - -#: src/app/main/ui/workspace/left_toolbar.cljs -msgid "workspace.toolbar.color-palette" -msgstr "Palet Warna (%s)" - -#: src/app/main/ui/workspace/left_toolbar.cljs -msgid "workspace.toolbar.comments" -msgstr "Komentar (%s)" - -#: src/app/main/ui/workspace/left_toolbar.cljs -msgid "workspace.toolbar.curve" -msgstr "Kurva (%s)" - -#: src/app/main/ui/workspace/left_toolbar.cljs -msgid "workspace.toolbar.ellipse" -msgstr "Elips (%s)" - -#: src/app/main/ui/workspace/left_toolbar.cljs -msgid "workspace.toolbar.frame" -msgstr "Papan (%s)" - -#: src/app/main/ui/workspace/left_toolbar.cljs -msgid "workspace.toolbar.image" -msgstr "Gambar (%s)" - -#: src/app/main/ui/workspace/left_toolbar.cljs -msgid "workspace.toolbar.move" -msgstr "Pindahkan (%s)" - -#: src/app/main/ui/workspace/left_toolbar.cljs -msgid "workspace.toolbar.path" -msgstr "Jalur (%s)" - -#: src/app/main/ui/workspace/left_toolbar.cljs -msgid "workspace.toolbar.rect" -msgstr "Persegi Panjang (%s)" - -#: src/app/main/ui/workspace/left_toolbar.cljs -msgid "workspace.toolbar.shortcuts" -msgstr "Pintasan (%s)" - -#: src/app/main/ui/workspace/left_toolbar.cljs -msgid "workspace.toolbar.text" -msgstr "Teks (%s)" - -#: src/app/main/ui/workspace/left_toolbar.cljs -msgid "workspace.toolbar.text-palette" -msgstr "Tipografi (%s)" - -msgid "workspace.top-bar.read-only.done" -msgstr "Selesai" - -#: src/app/main/ui/workspace/sidebar/history.cljs -msgid "workspace.undo.empty" -msgstr "Tidak ada riwayat perubahan sejauh ini" - -#: src/app/main/ui/workspace/sidebar/history.cljs -msgid "workspace.undo.entry.delete" -msgstr "%s dihapus" - -#: src/app/main/ui/workspace/sidebar/history.cljs -msgid "workspace.undo.entry.modify" -msgstr "%s diubah" - -#: src/app/main/ui/workspace/sidebar/history.cljs -msgid "workspace.undo.entry.move" -msgstr "Objek dipindah" - -msgid "workspace.undo.entry.multiple.circle" -msgstr "lingkaran" - -msgid "workspace.undo.entry.multiple.color" -msgstr "aset warna" - -msgid "workspace.undo.entry.multiple.component" -msgstr "komponen" - -msgid "workspace.undo.entry.multiple.curve" -msgstr "kurva" - -msgid "workspace.undo.entry.multiple.frame" -msgstr "papan" - -msgid "workspace.undo.entry.multiple.group" -msgstr "kelompok" - -msgid "workspace.undo.entry.multiple.media" -msgstr "aset grafis" - -msgid "workspace.undo.entry.multiple.multiple" -msgstr "objek" - -msgid "workspace.undo.entry.multiple.page" -msgstr "halaman" - -msgid "workspace.undo.entry.multiple.path" -msgstr "jejak" - -msgid "workspace.undo.entry.multiple.rect" -msgstr "persegi panjang" - -msgid "workspace.undo.entry.multiple.shape" -msgstr "bentuk" - -msgid "workspace.undo.entry.multiple.text" -msgstr "teks" - -msgid "workspace.undo.entry.multiple.typography" -msgstr "aset tipografi" - -#: src/app/main/ui/workspace/sidebar/history.cljs -msgid "workspace.undo.entry.new" -msgstr "%s Baru" - -msgid "workspace.undo.entry.single.circle" -msgstr "lingkaran" - -msgid "workspace.undo.entry.single.color" -msgstr "aset warna" - -msgid "workspace.undo.entry.single.component" -msgstr "komponen" - -msgid "workspace.undo.entry.single.curve" -msgstr "kurva" - -msgid "workspace.undo.entry.single.frame" -msgstr "papan" - -msgid "workspace.undo.entry.single.group" -msgstr "kelompok" - -msgid "workspace.undo.entry.single.image" -msgstr "gambar" - -msgid "workspace.undo.entry.single.media" -msgstr "aset grafis" - -msgid "workspace.undo.entry.single.multiple" -msgstr "objek" - -msgid "workspace.undo.entry.single.page" -msgstr "halaman" - -msgid "workspace.undo.entry.single.path" -msgstr "jalur" - -msgid "workspace.undo.entry.single.rect" -msgstr "persegi panjang" - -msgid "workspace.undo.entry.single.shape" -msgstr "bentuk" - -msgid "workspace.undo.entry.single.text" -msgstr "teks" - -msgid "workspace.undo.entry.single.typography" -msgstr "aset tipografi" - -#: src/app/main/ui/workspace/sidebar/history.cljs -msgid "workspace.undo.entry.unknown" -msgstr "Operasi pada %s" - -#: src/app/main/ui/workspace/sidebar/history.cljs -msgid "workspace.undo.title" -msgstr "Riwayat" - -#: src/app/main/data/workspace/libraries.cljs -msgid "workspace.updates.dismiss" -msgstr "Abaikan" - -#: src/app/main/data/workspace/libraries.cljs -msgid "workspace.updates.more-info" -msgstr "Info lebih lanjut" - -#: src/app/main/data/workspace/libraries.cljs -msgid "workspace.updates.there-are-updates" -msgstr "Ada pembaruan dalam pustaka terbagi" - -#: src/app/main/data/workspace/libraries.cljs -msgid "workspace.updates.update" -msgstr "Perbarui" - -msgid "workspace.viewport.click-to-close-path" -msgstr "Klik untuk menutup jalur" - -#: src/app/main/ui/auth/login.cljs -msgid "auth.login-account-title" -msgstr "Masuk ke akun saya" - -msgid "media.image.short" -msgstr "gambar" - -msgid "media.keep-aspect-ratio" -msgstr "Jaga rasio aspek" - -msgid "modals.move-shared-confirm.title" -msgid_plural "modals.move-shared-confirm.title" -msgstr[0] "Pindahkan pustaka" - -#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs -msgid "settings.select-this-color" -msgstr "Pilih item menggunakan gaya ini" - -msgid "shortcuts.toggle-layout-grid" -msgstr "Tambahkan/hapus tata letak kisi" - -msgid "shortcuts.toggle-rulers" -msgstr "Tampilkan / Sembunyikan penggaris" - -#: src/app/main/data/users.cljs -msgid "errors.auth-provider-not-allowed" -msgstr "Penyedia autentikasi tidak diperbolehkan untuk profil ini" - -#: src/app/main/data/users.cljs -msgid "errors.email-domain-not-allowed" -msgstr "Domain tidak diperbolehkan" - -msgid "modals.move-shared-confirm.message" -msgid_plural "modals.move-shared-confirm.message" -msgstr[0] "Apakah Anda yakin ingin memindahkan pustaka ini?" - -msgid "shortcuts.toggle-guides" -msgstr "Tampilkan / Sembunyikan panduan" - -msgid "onboarding.team-modal.team-definition" -msgstr "Apa itu tim?" - -msgid "shortcuts.toggle-snap-guides" -msgstr "Pasang ke panduan" - -msgid "shortcuts.toggle-snap-ruler-guide" -msgstr "Pasang ke panduan penggaris" - -#: src/app/main/ui/workspace/sidebar/assets/common.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:221 msgid "workspace.assets.sidebar.components" msgid_plural "workspace.assets.sidebar.components" msgstr[0] "%s komponen" -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.enable-snap-ruler-guides" -msgstr "Pasang ke panduan penggaris" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.hide-guides" -msgstr "Sembunyikan panduan" - -msgid "workspace.layout_grid.editor.padding.expand" -msgstr "Tampilkan opsi bantalan 4 sisi" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.remove-grid" -msgstr "Hapus tata letak kisi" - -msgid "shortcuts.scale" -msgstr "Skala" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.disable-snap-ruler-guides" -msgstr "Nonaktifkan pemasangan ke panduan penggaris" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.show-guides" -msgstr "Tampilkan panduan" - -msgid "workspace.top-bar.view-only" -msgstr "**Menginspeksi kode** (Hanya Lihat)" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.unlink-library-btn" -msgstr "Putuskan pustaka" - -#: src/app/main/ui/workspace/sidebar/assets.cljs -msgid "workspace.assets.filter" -msgstr "Penyaring" - -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets.cljs:193 msgid "workspace.assets.sort" msgstr "Urutkan" +#: src/app/main/ui/dashboard/grid.cljs:134, src/app/main/ui/dashboard/grid.cljs:189, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:397, src/app/main/ui/workspace/sidebar/assets.cljs:155 +msgid "workspace.assets.typography" +msgstr "Tipografi" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused +msgid "workspace.assets.typography.font-id" +msgstr "Fon" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:505 +msgid "workspace.assets.typography.font-size" +msgstr "Ukuran" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:501 +msgid "workspace.assets.typography.font-variant-id" +msgstr "Varian" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:523 +msgid "workspace.assets.typography.go-to-edit" +msgstr "Pergi ke berkas pustaka untuk menyunting" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:513 +msgid "workspace.assets.typography.letter-spacing" +msgstr "Spasi Huruf" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:509 +msgid "workspace.assets.typography.line-height" +msgstr "Ketinggian Garis" + +#: src/app/main/ui/dashboard/grid.cljs:199, src/app/main/ui/workspace/libraries.cljs:461, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:464, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:489, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:596, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:615 +msgid "workspace.assets.typography.sample" +msgstr "Ag" + +#, unused +msgid "workspace.assets.typography.text-styles" +msgstr "Gaya teks" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:517 +msgid "workspace.assets.typography.text-transform" +msgstr "Transformasi Teks" + +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:66 +msgid "workspace.assets.ungroup" +msgstr "Lepas kelompok" + +#: src/app/main/ui/workspace/context_menu.cljs:634 +msgid "workspace.context-menu.grid-cells.area" +msgstr "Buat area" + +#: src/app/main/ui/workspace/context_menu.cljs:637 +msgid "workspace.context-menu.grid-cells.create-board" +msgstr "Buat papan" + +#: src/app/main/ui/workspace/context_menu.cljs:629 +msgid "workspace.context-menu.grid-cells.merge" +msgstr "Gabungkan sel" + +#: src/app/main/ui/workspace/context_menu.cljs:594 +msgid "workspace.context-menu.grid-track.column.add-after" +msgstr "Tambah 1 kolom ke kanan" + +#: src/app/main/ui/workspace/context_menu.cljs:593 +msgid "workspace.context-menu.grid-track.column.add-before" +msgstr "Tambah 1 kolom ke kiri" + +#: src/app/main/ui/workspace/context_menu.cljs:595 +msgid "workspace.context-menu.grid-track.column.delete" +msgstr "Hapus kolom" + +#: src/app/main/ui/workspace/context_menu.cljs:596 +msgid "workspace.context-menu.grid-track.column.delete-shapes" +msgstr "Hapus kolom dan bentuk" + +#: src/app/main/ui/workspace/context_menu.cljs:592 +msgid "workspace.context-menu.grid-track.column.duplicate" +msgstr "Gandakan kolom" + +#: src/app/main/ui/workspace/context_menu.cljs:601 +msgid "workspace.context-menu.grid-track.row.add-after" +msgstr "Tambah 1 baris di bawah" + +#: src/app/main/ui/workspace/context_menu.cljs:600 +msgid "workspace.context-menu.grid-track.row.add-before" +msgstr "Tambah 1 baris di atas" + +#: src/app/main/ui/workspace/context_menu.cljs:602 +msgid "workspace.context-menu.grid-track.row.delete" +msgstr "Hapus baris" + +#: src/app/main/ui/workspace/context_menu.cljs:603 +msgid "workspace.context-menu.grid-track.row.delete-shapes" +msgstr "Hapus baris dan bentuk" + +#: src/app/main/ui/workspace/context_menu.cljs:599 +msgid "workspace.context-menu.grid-track.row.duplicate" +msgstr "Gandakan baris" + +#: src/app/main/ui/workspace/sidebar/layers.cljs:525 +msgid "workspace.focus.focus-mode" +msgstr "Mode fokus" + +#: src/app/main/ui/workspace/context_menu.cljs:287, src/app/main/ui/workspace/context_menu.cljs:553 +msgid "workspace.focus.focus-off" +msgstr "Fokus nonaktif" + +#: src/app/main/ui/workspace/context_menu.cljs:286 +msgid "workspace.focus.focus-on" +msgstr "Fokus aktif" + +#, unused +msgid "workspace.focus.selection" +msgstr "Seleksi" + +#: src/app/util/color.cljs:34 +msgid "workspace.gradients.linear" +msgstr "Gradien linear" + +#: src/app/util/color.cljs:35 +msgid "workspace.gradients.radial" +msgstr "Gradien radial" + +#: src/app/main/ui/workspace/main_menu.cljs:238 +msgid "workspace.header.menu.disable-dynamic-alignment" +msgstr "Nonaktifkan penyesuaian dinamis" + +#: src/app/main/ui/workspace/main_menu.cljs:192 +msgid "workspace.header.menu.disable-scale-content" +msgstr "Nonaktifkan skala proporsional" + +#: src/app/main/ui/workspace/header.cljs +#, unused +msgid "workspace.header.menu.disable-scale-text" +msgstr "Nonaktifkan skala teks" + +#: src/app/main/ui/workspace/main_menu.cljs:223 +msgid "workspace.header.menu.disable-snap-guides" +msgstr "Nonaktifkan tancapan ke pemandu" + +#: src/app/main/ui/workspace/main_menu.cljs:253 +msgid "workspace.header.menu.disable-snap-pixel-grid" +msgstr "Nonaktifkan tancapan ke piksel" + +#: src/app/main/ui/workspace/main_menu.cljs:207 +msgid "workspace.header.menu.disable-snap-ruler-guides" +msgstr "Nonaktifkan pemasangan ke panduan penggaris" + +#: src/app/main/ui/workspace/main_menu.cljs:239 +msgid "workspace.header.menu.enable-dynamic-alignment" +msgstr "Aktifkan penyesuaian dinamis" + +#: src/app/main/ui/workspace/main_menu.cljs:193 +msgid "workspace.header.menu.enable-scale-content" +msgstr "Aktifkan skala proporsional" + +#: src/app/main/ui/workspace/header.cljs +#, unused +msgid "workspace.header.menu.enable-scale-text" +msgstr "Aktifkan skala teks" + +#: src/app/main/ui/workspace/main_menu.cljs:224 +msgid "workspace.header.menu.enable-snap-guides" +msgstr "Tancapkan ke pemandu" + +#: src/app/main/ui/workspace/main_menu.cljs:254 +msgid "workspace.header.menu.enable-snap-pixel-grid" +msgstr "Aktifkan tancapkan ke piksel" + +#: src/app/main/ui/workspace/main_menu.cljs:208 +msgid "workspace.header.menu.enable-snap-ruler-guides" +msgstr "Pasang ke panduan penggaris" + +#: src/app/main/ui/workspace/main_menu.cljs:382 +msgid "workspace.header.menu.hide-artboard-names" +msgstr "Sembunyikan nama papan" + +#: src/app/main/ui/workspace/main_menu.cljs:336 +msgid "workspace.header.menu.hide-guides" +msgstr "Sembunyikan panduan" + +#: src/app/main/ui/workspace/main_menu.cljs:353 +msgid "workspace.header.menu.hide-palette" +msgstr "Sembunyikan palet warna" + +#: src/app/main/ui/workspace/main_menu.cljs:394 +msgid "workspace.header.menu.hide-pixel-grid" +msgstr "Sembunyikan kisi piksel" + +#: src/app/main/ui/workspace/main_menu.cljs:320 +msgid "workspace.header.menu.hide-rules" +msgstr "Sembunyikan penggaris" + +#: src/app/main/ui/workspace/main_menu.cljs:367 +msgid "workspace.header.menu.hide-textpalette" +msgstr "Sembunyikan palet fon" + +#: src/app/main/ui/workspace/main_menu.cljs:731 +msgid "workspace.header.menu.option.edit" +msgstr "Sunting" + +#: src/app/main/ui/workspace/main_menu.cljs:720 +msgid "workspace.header.menu.option.file" +msgstr "Berkas" + +#: src/app/main/ui/workspace/main_menu.cljs:777 +msgid "workspace.header.menu.option.help-info" +msgstr "Bantuan & info" + +#: src/app/main/ui/workspace/main_menu.cljs:753 +msgid "workspace.header.menu.option.preferences" +msgstr "Preferensi" + +#: src/app/main/ui/workspace/main_menu.cljs:742 +msgid "workspace.header.menu.option.view" +msgstr "Tampilan" + +#: src/app/main/ui/workspace/main_menu.cljs:459 +msgid "workspace.header.menu.redo" +msgstr "Ulangi" + +#: src/app/main/ui/workspace/main_menu.cljs:432 +msgid "workspace.header.menu.select-all" +msgstr "Pilih semua" + +#: src/app/main/ui/workspace/main_menu.cljs:383 +msgid "workspace.header.menu.show-artboard-names" +msgstr "Tampilkan nama papan" + +#: src/app/main/ui/workspace/main_menu.cljs:337 +msgid "workspace.header.menu.show-guides" +msgstr "Tampilkan panduan" + +#: src/app/main/ui/workspace/main_menu.cljs:354 +msgid "workspace.header.menu.show-palette" +msgstr "Tampilkan palet warna" + +#: src/app/main/ui/workspace/main_menu.cljs:395 +msgid "workspace.header.menu.show-pixel-grid" +msgstr "Tampilkan kisi piksel" + +#: src/app/main/ui/workspace/main_menu.cljs:321 +msgid "workspace.header.menu.show-rules" +msgstr "Tampilkan penggaris" + +#: src/app/main/ui/workspace/main_menu.cljs:368 +msgid "workspace.header.menu.show-textpalette" +msgstr "Tampilkan palet fon" + +#: src/app/main/ui/workspace/main_menu.cljs:279 +msgid "workspace.header.menu.toggle-dark-theme" +msgstr "Ubah ke tema gelap" + +#: src/app/main/ui/workspace/main_menu.cljs:278 +msgid "workspace.header.menu.toggle-light-theme" +msgstr "Ubah ke tema terang" + +#: src/app/main/ui/workspace/main_menu.cljs:446 +msgid "workspace.header.menu.undo" +msgstr "Urungkan" + +#: src/app/main/ui/viewer/header.cljs:98, src/app/main/ui/workspace/right_header.cljs:120 +msgid "workspace.header.reset-zoom" +msgstr "Atur ulang" + +#: src/app/main/ui/workspace/header.cljs +#, unused +msgid "workspace.header.save-error" +msgstr "Kesalahan saat menyimpan" + +#: src/app/main/ui/workspace/right_header.cljs:52 +msgid "workspace.header.saved" +msgstr "Disimpan" + +#: src/app/main/ui/workspace/header.cljs +#, unused +msgid "workspace.header.saving" +msgstr "Menyimpan" + +#: src/app/main/ui/workspace/right_header.cljs:42, src/app/main/ui/workspace/right_header.cljs:47 +msgid "workspace.header.unsaved" +msgstr "Perubahan belum disimpan" + +#: src/app/main/ui/workspace/right_header.cljs:239 +msgid "workspace.header.viewer" +msgstr "Mode penampilan (%s)" + +#: src/app/main/ui/viewer/header.cljs:79, src/app/main/ui/workspace/right_header.cljs:103 +msgid "workspace.header.zoom" +msgstr "Zum" + +#: src/app/main/ui/viewer/header.cljs:109 +msgid "workspace.header.zoom-fill" +msgstr "Penuhi - Ubah ukuran untuk memenuhi" + +#: src/app/main/ui/viewer/header.cljs:102 +msgid "workspace.header.zoom-fit" +msgstr "Pas - Ubah ukuran supaya pas" + +#: src/app/main/ui/workspace/right_header.cljs:123 +msgid "workspace.header.zoom-fit-all" +msgstr "Zum supaya pas semua" + +#: src/app/main/ui/viewer/header.cljs:116 +msgid "workspace.header.zoom-full-screen" +msgstr "Layar penuh" + +#: src/app/main/ui/workspace/right_header.cljs:130 +msgid "workspace.header.zoom-selected" +msgstr "Zum ke terpilih" + +#: src/app/main/ui/workspace/sidebar/options/menus/grid_cell.cljs:273, src/app/main/ui/workspace/sidebar/options/menus/grid_cell.cljs:275, src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:612 +msgid "workspace.layout_grid.editor.options.edit-grid" +msgstr "Sunting kisi" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:1280 +msgid "workspace.layout_grid.editor.options.exit" +msgstr "Keluar" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:483 +msgid "workspace.layout_grid.editor.padding.expand" +msgstr "Tampilkan opsi bantalan 4 sisi" + +#: src/app/main/ui/workspace/viewport/grid_layout_editor.cljs:59 +msgid "workspace.layout_grid.editor.title" +msgstr "Kisi penyuntingan" + +#: src/app/main/ui/workspace/viewport/grid_layout_editor.cljs:65 +msgid "workspace.layout_grid.editor.top-bar.done" +msgstr "Selesai" + +#: src/app/main/ui/workspace/viewport/grid_layout_editor.cljs:62 +msgid "workspace.layout_grid.editor.top-bar.locate" +msgstr "Cari lokasi" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:1306 msgid "workspace.layout_grid.editor.top-bar.locate.tooltip" msgstr "Lokasi tata letak kisi" #: src/app/main/ui/workspace/libraries.cljs +#, unused +msgid "workspace.libraries.add" +msgstr "Tambahkan" + +#: src/app/main/ui/workspace/libraries.cljs:80, src/app/main/ui/workspace/libraries.cljs:99 +msgid "workspace.libraries.colors" +msgstr "%s warna" + +#: src/app/main/ui/workspace/color_palette.cljs:126 +msgid "workspace.libraries.colors.empty-palette" +msgstr "Belum ada gaya warna dalam pustaka Anda" + +#: src/app/main/ui/workspace/text_palette.cljs:150 +msgid "workspace.libraries.colors.empty-typography-palette" +msgstr "Belum ada gaya tipografi dalam pustaka Anda" + +#: src/app/main/ui/workspace/color_palette_ctx_menu.cljs:60, src/app/main/ui/workspace/colorpicker/libraries.cljs:73, src/app/main/ui/workspace/text_palette_ctx_menu.cljs:50 +msgid "workspace.libraries.colors.file-library" +msgstr "Pustaka berkas" + +#: src/app/main/ui/workspace/colorpicker.cljs +#, unused +msgid "workspace.libraries.colors.hsv" +msgstr "HSV" + +#: src/app/main/ui/workspace/color_palette_ctx_menu.cljs:82, src/app/main/ui/workspace/colorpicker/libraries.cljs:72 +msgid "workspace.libraries.colors.recent-colors" +msgstr "Warna terkini" + +#: src/app/main/ui/workspace/colorpicker.cljs +#, unused +msgid "workspace.libraries.colors.rgb-complementary" +msgstr "Pelengkap RGB" + +#: src/app/main/ui/workspace/colorpicker.cljs +#, unused +msgid "workspace.libraries.colors.rgba" +msgstr "RGBA" + +#: src/app/main/ui/workspace/colorpicker.cljs:372 +msgid "workspace.libraries.colors.save-color" +msgstr "Simpan gaya warna" + +#: src/app/main/ui/workspace/libraries.cljs:74, src/app/main/ui/workspace/libraries.cljs:91 +msgid "workspace.libraries.components" +msgstr "%s komponen" + +#: src/app/main/ui/workspace/libraries.cljs:215 +msgid "workspace.libraries.file-library" +msgstr "Pustaka berkas" + +#: src/app/main/ui/workspace/libraries.cljs:77, src/app/main/ui/workspace/libraries.cljs:95 +msgid "workspace.libraries.graphics" +msgstr "%s grafis" + +#: src/app/main/ui/workspace/libraries.cljs:209 +msgid "workspace.libraries.in-this-file" +msgstr "PUSTAKA DALAM BERKAS INI" + +#: src/app/main/ui/workspace/libraries.cljs:526, src/app/main/ui/workspace/libraries.cljs:531 +msgid "workspace.libraries.libraries" +msgstr "PUSTAKA" + +#: src/app/main/ui/workspace/libraries.cljs +#, unused +msgid "workspace.libraries.library" +msgstr "PUSTAKA" + +#: src/app/main/ui/workspace/libraries.cljs:382 +msgid "workspace.libraries.library-updates" +msgstr "PEMBARUAN PUSTAKA" + +#: src/app/main/ui/workspace/libraries.cljs:290 +msgid "workspace.libraries.loading" +msgstr "Memuat…" + +#: src/app/main/ui/workspace/libraries.cljs:380 +msgid "workspace.libraries.no-libraries-need-sync" +msgstr "Tidak ada Pustaka Terbagi yang membutuhkan pembaruan" + +#: src/app/main/ui/workspace/libraries.cljs:299 +msgid "workspace.libraries.no-matches-for" +msgstr "Tidak ada yang cocok dengan “%s”" + +#: src/app/main/ui/workspace/libraries.cljs:296 +msgid "workspace.libraries.no-shared-libraries-available" +msgstr "Tidak ada Pustaka Terbagi yang tersedia" + +#: src/app/main/ui/workspace/libraries.cljs:260 +msgid "workspace.libraries.search-shared-libraries" +msgstr "Cari pustaka terbagi" + +#: src/app/main/ui/workspace/libraries.cljs:256 +msgid "workspace.libraries.shared-libraries" +msgstr "PUSTAKA TERBAGI" + +#: src/app/main/ui/workspace/libraries.cljs:282 msgid "workspace.libraries.shared-library-btn" msgstr "Hubungkan pustaka" -#: src/app/main/ui/auth/login.cljs -msgid "auth.login-tagline" -msgstr "" -"Penpot adalah peralatan desain bebas & bersumber terbuka untuk kolaborasi " -"Desain dan Kode" +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:308 +msgid "workspace.libraries.text.multiple-typography" +msgstr "Beberapa tipografi" -msgid "modals.move-shared-confirm.accept" -msgid_plural "modals.move-shared-confirm.accept" -msgstr[0] "Pindahkan" +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:311 +msgid "workspace.libraries.text.multiple-typography-tooltip" +msgstr "Lepaskan tautan dari semua tipografi" + +#: src/app/main/ui/workspace/libraries.cljs:83, src/app/main/ui/workspace/libraries.cljs:103 +msgid "workspace.libraries.typography" +msgstr "%s tipografi" + +#: src/app/main/ui/workspace/libraries.cljs:249 +msgid "workspace.libraries.unlink-library-btn" +msgstr "Putuskan pustaka" + +#: src/app/main/ui/workspace/libraries.cljs:402 +msgid "workspace.libraries.update" +msgstr "Perbarui" + +#: src/app/main/ui/workspace/libraries.cljs:477 +msgid "workspace.libraries.update.see-all-changes" +msgstr "lihat semua perubahan" + +#: src/app/main/ui/workspace/libraries.cljs:536 +msgid "workspace.libraries.updates" +msgstr "PEMBARUAN" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:737 +msgid "workspace.options.add-interaction" +msgstr "Klik tombol + untuk menambahkan interaksi." + +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:86, src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:102 +msgid "workspace.options.blur-options.title" +msgstr "Buram" + +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:85 +msgid "workspace.options.blur-options.title.group" +msgstr "Buram kelompok" + +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:84 +msgid "workspace.options.blur-options.title.multiple" +msgstr "Buram seleksi" + +#: src/app/main/ui/workspace/sidebar/options/page.cljs:32, src/app/main/ui/workspace/sidebar/options/page.cljs:39 +msgid "workspace.options.canvas-background" +msgstr "Latar belakang kanvas" + +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:548 +msgid "workspace.options.clip-content" +msgstr "Klip konten" + +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:600, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:605 +msgid "workspace.options.component" +msgstr "Komponen" + +#: src/app/main/ui/viewer/inspect/annotation.cljs:19, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:181 +msgid "workspace.options.component.annotation" +msgstr "Anotasi" + +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:610 +msgid "workspace.options.component.copy" +msgstr "Salin" + +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:173 +msgid "workspace.options.component.create-annotation" +msgstr "Buat anotasi" + +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:172 +msgid "workspace.options.component.edit-annotation" +msgstr "Sunting anotasi" + +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:609 +msgid "workspace.options.component.main" +msgstr "Utama" + +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:427 +msgid "workspace.options.component.swap" +msgstr "Ganti komponen" + +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:471 +msgid "workspace.options.component.swap.empty" +msgstr "Belum ada aset dalam pustaka ini" + +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:163 +msgid "workspace.options.constraints" +msgstr "Pasangan" + +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:150 +msgid "workspace.options.constraints.bottom" +msgstr "Bawah" + +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:141, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:152 +msgid "workspace.options.constraints.center" +msgstr "Tengah" + +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:229 +msgid "workspace.options.constraints.fix-when-scrolling" +msgstr "Tetap ketika menggulir" + +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:138 +msgid "workspace.options.constraints.left" +msgstr "Kiri" + +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:140 +msgid "workspace.options.constraints.leftright" +msgstr "Kiri & Kanan" + +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:139 +msgid "workspace.options.constraints.right" +msgstr "Kanan" + +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:142, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:153 +msgid "workspace.options.constraints.scale" +msgstr "Ukuran" + +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:149 +msgid "workspace.options.constraints.top" +msgstr "Atas" + +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:151 +msgid "workspace.options.constraints.topbottom" +msgstr "Atas & Bawah" + +#: src/app/main/ui/workspace/sidebar/options.cljs:112 +msgid "workspace.options.design" +msgstr "Desain" + +#: src/app/main/ui/viewer/inspect/exports.cljs:139 +msgid "workspace.options.export" +msgstr "Ekspor" + +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs +#, unused +msgid "workspace.options.export-multiple" +msgstr "Ekspor seleksi" + +#: src/app/main/ui/viewer/inspect/exports.cljs:195, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:237 +msgid "workspace.options.export-object" +msgid_plural "workspace.options.export-object" +msgstr[0] "Ekspor %s elemen" + +#: src/app/main/ui/viewer/inspect/exports.cljs:178, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:219 +msgid "workspace.options.export.suffix" +msgstr "Akhiran" + +#: src/app/main/ui/export.cljs:240 +msgid "workspace.options.exporting-complete" +msgstr "Pengeksporan selesai" + +#: src/app/main/ui/export.cljs:172, src/app/main/ui/export.cljs:241, src/app/main/ui/viewer/inspect/exports.cljs:194, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:236 +msgid "workspace.options.exporting-object" +msgstr "Mengekspor…" + +#: src/app/main/ui/export.cljs:239 +msgid "workspace.options.exporting-object-error" +msgstr "Pengeksporan gagal" + +#: src/app/main/ui/export.cljs:242 +msgid "workspace.options.exporting-object-slow" +msgstr "Pengeksporan secara tidak terduga lambat" + +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:49, src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:174 +msgid "workspace.options.fill" +msgstr "Isian" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:178 +msgid "workspace.options.flows.add-flow-start" +msgstr "Tambahkan awalan alur" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:174 +msgid "workspace.options.flows.flow" +msgstr "Alur" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#, unused +msgid "workspace.options.flows.flow-start" +msgstr "Awalan alur" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:161 +msgid "workspace.options.flows.flow-starts" +msgstr "Aluran dimulai" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:29 +msgid "workspace.options.grid.auto" +msgstr "Otomatis" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:157 +msgid "workspace.options.grid.column" +msgstr "Kolom" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused +msgid "workspace.options.grid.grid-title" +msgstr "Kisi" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:196, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:237 +msgid "workspace.options.grid.params.color" +msgstr "Warna" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused +msgid "workspace.options.grid.params.columns" +msgstr "Kolom" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:259 +msgid "workspace.options.grid.params.gutter" +msgstr "Selokan" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:246 +msgid "workspace.options.grid.params.height" +msgstr "Tinggi" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:270 +msgid "workspace.options.grid.params.margin" +msgstr "Margin" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused +msgid "workspace.options.grid.params.rows" +msgstr "Baris" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:216, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:290 +msgid "workspace.options.grid.params.set-default" +msgstr "Tetapkan sebagai bawaan" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused +msgid "workspace.options.grid.params.size" +msgstr "Ukuran" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused +msgid "workspace.options.grid.params.type" +msgstr "Jenis" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:231 +msgid "workspace.options.grid.params.type.bottom" +msgstr "Bawah" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:229 +msgid "workspace.options.grid.params.type.center" +msgstr "Tengah" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:228 +msgid "workspace.options.grid.params.type.left" +msgstr "Kiri" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:232 +msgid "workspace.options.grid.params.type.right" +msgstr "Kanan" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:225 +msgid "workspace.options.grid.params.type.stretch" +msgstr "Lebarkan" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:227 +msgid "workspace.options.grid.params.type.top" +msgstr "Atas" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:211, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:288 +msgid "workspace.options.grid.params.use-default" +msgstr "Gunakan bawaan" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:247 +msgid "workspace.options.grid.params.width" +msgstr "Lebar" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:158 +msgid "workspace.options.grid.row" +msgstr "Baris" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:156 +msgid "workspace.options.grid.square" +msgstr "Kotak" + +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:48 +msgid "workspace.options.group-fill" +msgstr "Isian kelompok" + +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:42 +msgid "workspace.options.group-stroke" +msgstr "Sapuan kelompok" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:310 +msgid "workspace.options.guides.title" +msgstr "Panduan" + +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:406 +msgid "workspace.options.height" +msgstr "Tinggi" + +#: src/app/main/ui/workspace/sidebar/options.cljs:161 +msgid "workspace.options.inspect" +msgstr "Inspeksi" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:468 +msgid "workspace.options.interaction-action" +msgstr "Tindakan" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:41, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:367 +msgid "workspace.options.interaction-after-delay" +msgstr "Setelah jeda" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:614 +msgid "workspace.options.interaction-animation" +msgstr "Animasi" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:406 +msgid "workspace.options.interaction-animation-dissolve" +msgstr "Larut" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:405 +msgid "workspace.options.interaction-animation-none" +msgstr "Tidak ada" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:412 +msgid "workspace.options.interaction-animation-push" +msgstr "Dorong" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:407 +msgid "workspace.options.interaction-animation-slide" +msgstr "Geser" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:391 +msgid "workspace.options.interaction-auto" +msgstr "otomatis" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:604 +msgid "workspace.options.interaction-background" +msgstr "Tambahkan hamparan latar belakang" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:590 +msgid "workspace.options.interaction-close-outside" +msgstr "Tutup ketika mengeklik di luar" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:372 +msgid "workspace.options.interaction-close-overlay" +msgstr "Tutup hamparan" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:56 +msgid "workspace.options.interaction-close-overlay-dest" +msgstr "Tutup hamparan: %s" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:456 +msgid "workspace.options.interaction-delay" +msgstr "Jeda" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:478 +msgid "workspace.options.interaction-destination" +msgstr "Tujuan" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:661 +msgid "workspace.options.interaction-duration" +msgstr "Durasi" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:674 +msgid "workspace.options.interaction-easing" +msgstr "Pemasukan" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:416 +msgid "workspace.options.interaction-easing-ease" +msgstr "Ease" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:417 +msgid "workspace.options.interaction-easing-ease-in" +msgstr "Ease masuk" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:419 +msgid "workspace.options.interaction-easing-ease-in-out" +msgstr "Ease masuk keluar" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:418 +msgid "workspace.options.interaction-easing-ease-out" +msgstr "Ease keluar" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:415 +msgid "workspace.options.interaction-easing-linear" +msgstr "Linear" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#, unused +msgid "workspace.options.interaction-in" +msgstr "Masuk" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:39, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:364 +msgid "workspace.options.interaction-mouse-enter" +msgstr "Tetikus masuk" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:40, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:365 +msgid "workspace.options.interaction-mouse-leave" +msgstr "Tetikus keluar" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:458, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:459, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:464, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:663, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:665, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:669 +msgid "workspace.options.interaction-ms" +msgstr "md" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:369 +msgid "workspace.options.interaction-navigate-to" +msgstr "Navigasi ke" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:50 +msgid "workspace.options.interaction-navigate-to-dest" +msgstr "Navigasi ke: %s" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:51, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:53, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:55, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:380 +msgid "workspace.options.interaction-none" +msgstr "(tidak ditetapkan)" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:691 +msgid "workspace.options.interaction-offset-effect" +msgstr "Efek ofset" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:35, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:360 +msgid "workspace.options.interaction-on-click" +msgstr "Pada Klik" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:370 +msgid "workspace.options.interaction-open-overlay" +msgstr "Buka hamparan" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:52 +msgid "workspace.options.interaction-open-overlay-dest" +msgstr "Buka hamparan: %s" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:59, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:374 +msgid "workspace.options.interaction-open-url" +msgstr "Buka URL" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#, unused +msgid "workspace.options.interaction-out" +msgstr "Keluar" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:403 +msgid "workspace.options.interaction-pos-bottom-center" +msgstr "Tengah bawah" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:401 +msgid "workspace.options.interaction-pos-bottom-left" +msgstr "Kiri bawah" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:402 +msgid "workspace.options.interaction-pos-bottom-right" +msgstr "Kanan bawah" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:397 +msgid "workspace.options.interaction-pos-center" +msgstr "Tengah" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:396 +msgid "workspace.options.interaction-pos-manual" +msgstr "Manual" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:400 +msgid "workspace.options.interaction-pos-top-center" +msgstr "Tengah atas" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:398 +msgid "workspace.options.interaction-pos-top-left" +msgstr "Kiri atas" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:399 +msgid "workspace.options.interaction-pos-top-right" +msgstr "Kanan atas" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:524 +msgid "workspace.options.interaction-position" +msgstr "Posisi" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:494 +msgid "workspace.options.interaction-preserve-scroll" +msgstr "Jaga posisi gulir" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:58, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:373 +msgid "workspace.options.interaction-prev-screen" +msgstr "Layar sebelumnya" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:515 +msgid "workspace.options.interaction-relative-to" +msgstr "Relatif ke" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:57, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:379, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:393, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:394 +msgid "workspace.options.interaction-self" +msgstr "diri sendiri" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:371 +msgid "workspace.options.interaction-toggle-overlay" +msgstr "Alih hamparan" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:54 +msgid "workspace.options.interaction-toggle-overlay-dest" +msgstr "Alih hamparan: %s" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:445 +msgid "workspace.options.interaction-trigger" +msgstr "Picuan" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:503 +msgid "workspace.options.interaction-url" +msgstr "URL" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:37, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:362 +msgid "workspace.options.interaction-while-hovering" +msgstr "Saat Melayang" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:38, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:363 +msgid "workspace.options.interaction-while-pressing" +msgstr "Saat Menekan" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:724 +msgid "workspace.options.interactions" +msgstr "Interaksi" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:137 +msgid "workspace.options.layer-options.blend-mode.color" +msgstr "Warna" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:126 +msgid "workspace.options.layer-options.blend-mode.color-burn" +msgstr "Bakaran warna" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:129 +msgid "workspace.options.layer-options.blend-mode.color-dodge" +msgstr "Penghindaran warna" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:124 +msgid "workspace.options.layer-options.blend-mode.darken" +msgstr "Gelapkan" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:133 +msgid "workspace.options.layer-options.blend-mode.difference" +msgstr "Perbedaan" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:134 +msgid "workspace.options.layer-options.blend-mode.exclusion" +msgstr "Tidak termasukan" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:132 +msgid "workspace.options.layer-options.blend-mode.hard-light" +msgstr "Cahaya keras" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:135 +msgid "workspace.options.layer-options.blend-mode.hue" +msgstr "Rona" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:127 +msgid "workspace.options.layer-options.blend-mode.lighten" +msgstr "Terangkan" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:138 +msgid "workspace.options.layer-options.blend-mode.luminosity" +msgstr "Kilau" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:125 +msgid "workspace.options.layer-options.blend-mode.multiply" +msgstr "Kalikan" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:123 +msgid "workspace.options.layer-options.blend-mode.normal" +msgstr "Normal" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:130 +msgid "workspace.options.layer-options.blend-mode.overlay" +msgstr "Hamparan" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:136 +msgid "workspace.options.layer-options.blend-mode.saturation" +msgstr "Saturasi" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:128 +msgid "workspace.options.layer-options.blend-mode.screen" +msgstr "Layar" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:131 +msgid "workspace.options.layer-options.blend-mode.soft-light" +msgstr "Cahaya lembut" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#, unused +msgid "workspace.options.layer-options.title" +msgstr "Lapisan" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#, unused +msgid "workspace.options.layer-options.title.group" +msgstr "Lapisan kelompok" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#, unused +msgid "workspace.options.layer-options.title.multiple" +msgstr "Lapisan terpilih" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused +msgid "workspace.options.layout-item.advanced-ops" +msgstr "Opsi tingkat lanjut" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:564 +msgid "workspace.options.layout-item.layout-item-max-h" +msgstr "Max.Height" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:531 +msgid "workspace.options.layout-item.layout-item-max-w" +msgstr "Max.Width" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:548 +msgid "workspace.options.layout-item.layout-item-min-h" +msgstr "Min.Height" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:515 +msgid "workspace.options.layout-item.layout-item-min-w" +msgstr "Min.Width" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused +msgid "workspace.options.layout-item.title.layout-item-max-h" +msgstr "Tinggi maksimum" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused +msgid "workspace.options.layout-item.title.layout-item-max-w" +msgstr "Lebar maksimum" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused +msgid "workspace.options.layout-item.title.layout-item-min-h" +msgstr "Tinggi minimum" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused +msgid "workspace.options.layout-item.title.layout-item-min-w" +msgstr "Lebar minimum" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused +msgid "workspace.options.layout.bottom" +msgstr "Bawah" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused +msgid "workspace.options.layout.direction.column" +msgstr "Kolom" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused +msgid "workspace.options.layout.direction.column-reverse" +msgstr "Kolom terbalik" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused +msgid "workspace.options.layout.direction.row" +msgstr "Barisan" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused +msgid "workspace.options.layout.direction.row-reverse" +msgstr "Baris terbalik" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused +msgid "workspace.options.layout.gap" +msgstr "Celah" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused +msgid "workspace.options.layout.left" +msgstr "Kiri" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused +msgid "workspace.options.layout.margin" +msgstr "Margin" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused +msgid "workspace.options.layout.margin-all" +msgstr "Semua sisi" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused +msgid "workspace.options.layout.margin-simple" +msgstr "Margin sederhana" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused +msgid "workspace.options.layout.packed" +msgstr "dipaket" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused +msgid "workspace.options.layout.padding" +msgstr "Padding" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused +msgid "workspace.options.layout.padding-all" +msgstr "Semua sisi" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused +msgid "workspace.options.layout.padding-simple" +msgstr "Padding sederhana" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused +msgid "workspace.options.layout.right" +msgstr "Kanan" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused +msgid "workspace.options.layout.space-around" +msgstr "ruang di sekitar" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused +msgid "workspace.options.layout.space-between" +msgstr "ruang di antara" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused +msgid "workspace.options.layout.top" +msgstr "Atas" + +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:146 +msgid "workspace.options.more-colors" +msgstr "Lebih banyak warna" + +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:123 +msgid "workspace.options.more-lib-colors" +msgstr "Lebih banyak warna pustaka" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:161 +msgid "workspace.options.opacity" +msgstr "Opasitas" + +#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#, unused +msgid "workspace.options.position" +msgstr "Posisi" + +#: src/app/main/ui/workspace/sidebar/options.cljs:157 +msgid "workspace.options.prototype" +msgstr "Prototipe" + +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:469, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:481 +msgid "workspace.options.radius" +msgstr "Radius" + +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:513 +msgid "workspace.options.radius-bottom-left" +msgstr "Kiri bawah" + +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:522 +msgid "workspace.options.radius-bottom-right" +msgstr "Kanan bawah" + +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:495 +msgid "workspace.options.radius-top-left" +msgstr "Kiri atas" + +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:504 +msgid "workspace.options.radius-top-right" +msgstr "Kanan atas" + +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:532 +msgid "workspace.options.radius.all-corners" +msgstr "Semua sudut" + +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:533 +msgid "workspace.options.radius.single-corners" +msgstr "Sudut tersendiri" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:183 +msgid "workspace.options.recent-fonts" +msgstr "Terkini" + +#: src/app/main/ui/export.cljs:284 +msgid "workspace.options.retry" +msgstr "Coba lagi" + +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:451 +msgid "workspace.options.rotation" +msgstr "Rotasi" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:180 +msgid "workspace.options.search-font" +msgstr "Cari fon" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:741 +msgid "workspace.options.select-a-shape" +msgstr "Pilih bentuk, papan, atau kelompok untuk menyeret koneksi ke papan lain." + +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:105 +msgid "workspace.options.selection-color" +msgstr "Warna terpilih" + +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:47 +msgid "workspace.options.selection-fill" +msgstr "Isian seleksi" + +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:41 +msgid "workspace.options.selection-stroke" +msgstr "Sapuan seleksi" + +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:40, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:198, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:200 +msgid "workspace.options.shadow-options.blur" +msgstr "Buram" + +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:238 +msgid "workspace.options.shadow-options.color" +msgstr "Warna bayangan" + +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:144 +msgid "workspace.options.shadow-options.drop-shadow" +msgstr "Bayangan jatuhan" + +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:145 +msgid "workspace.options.shadow-options.inner-shadow" +msgstr "Bayangan masuk" + +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:38, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:186 +msgid "workspace.options.shadow-options.offsetx" +msgstr "X" + +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:39, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:224 +msgid "workspace.options.shadow-options.offsety" +msgstr "Y" + +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:41, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:211, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:213 +msgid "workspace.options.shadow-options.spread" +msgstr "Tersebar" + +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:296 +msgid "workspace.options.shadow-options.title" +msgstr "Bayangan" + +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:295 +msgid "workspace.options.shadow-options.title.group" +msgstr "Bayangan kelompok" + +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:294 +msgid "workspace.options.shadow-options.title.multiple" +msgstr "Bayangan seleksi" + +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:193 +msgid "workspace.options.show-fill-on-export" +msgstr "Tampilkan dalam ekspor" + +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:562 +msgid "workspace.options.show-in-viewer" +msgstr "Tampilkan dalam mode penampil" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:162 +msgid "workspace.options.size" +msgstr "Ukuran" + +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:355 +msgid "workspace.options.size-presets" +msgstr "Prasetel ukuran" + +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:43 +msgid "workspace.options.stroke" +msgstr "Sapuan" + +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#, unused +msgid "workspace.options.stroke-cap.circle-marker" +msgstr "Penanda lingkaran" + +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:129 +msgid "workspace.options.stroke-cap.circle-marker-short" +msgstr "Lingkaran" + +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#, unused +msgid "workspace.options.stroke-cap.diamond-marker" +msgstr "Penanda berlian" + +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:130 +msgid "workspace.options.stroke-cap.diamond-marker-short" +msgstr "Berlian" + +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#, unused +msgid "workspace.options.stroke-cap.line-arrow" +msgstr "Panah garis" + +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:126 +msgid "workspace.options.stroke-cap.line-arrow-short" +msgstr "Tanda panah" + +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:124 +msgid "workspace.options.stroke-cap.none" +msgstr "Tidak ada" + +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:132 +msgid "workspace.options.stroke-cap.round" +msgstr "Bulat" + +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:133 +msgid "workspace.options.stroke-cap.square" +msgstr "Kotak" + +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#, unused +msgid "workspace.options.stroke-cap.square-marker" +msgstr "Penanda kotak" + +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:128 +msgid "workspace.options.stroke-cap.square-marker-short" +msgstr "Persegi panjang" + +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#, unused +msgid "workspace.options.stroke-cap.triangle-arrow" +msgstr "Panah segi tiga" + +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:127 +msgid "workspace.options.stroke-cap.triangle-arrow-short" +msgstr "Segitiga" + +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:192 +msgid "workspace.options.stroke-color" +msgstr "Warna sapuan" + +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:165 +msgid "workspace.options.stroke-width" +msgstr "Lebar sapuan" + +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:87 +msgid "workspace.options.stroke.center" +msgstr "Tengah" + +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:105 +msgid "workspace.options.stroke.dashed" +msgstr "Garis" + +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:104 +msgid "workspace.options.stroke.dotted" +msgstr "Titik" + +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:88 +msgid "workspace.options.stroke.inner" +msgstr "Dalam" + +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:106 +msgid "workspace.options.stroke.mixed" +msgstr "Tercampur" + +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:89 +msgid "workspace.options.stroke.outer" +msgstr "Luar" + +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:103 +msgid "workspace.options.stroke.solid" +msgstr "Padat" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:115 +msgid "workspace.options.text-options.align-bottom" +msgstr "Paskan ke bawah" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:111 +msgid "workspace.options.text-options.align-middle" +msgstr "Paskan ke tengah" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:107 +msgid "workspace.options.text-options.align-top" +msgstr "Paskan ke atas" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:82 +msgid "workspace.options.text-options.direction-ltr" +msgstr "Kiri ke Kanan" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:87 +msgid "workspace.options.text-options.direction-rtl" +msgstr "Kanan ke Kiri" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:149 +msgid "workspace.options.text-options.grow-auto-height" +msgstr "Tinggi otomatis" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:145 +msgid "workspace.options.text-options.grow-auto-width" +msgstr "Lebar otomatis" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:141 +msgid "workspace.options.text-options.grow-fixed" +msgstr "Tetap" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:381 +msgid "workspace.options.text-options.letter-spacing" +msgstr "Spasi Huruf" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:364 +msgid "workspace.options.text-options.line-height" +msgstr "Tinggi garis" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused +msgid "workspace.options.text-options.lowercase" +msgstr "Huruf kecil" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused +msgid "workspace.options.text-options.none" +msgstr "Tidak ada" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:176 +msgid "workspace.options.text-options.strikethrough" +msgstr "Coret (%s)" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:51 +msgid "workspace.options.text-options.text-align-center" +msgstr "Paskan ke tengah (%s)" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:59 +msgid "workspace.options.text-options.text-align-justify" +msgstr "Rata Kiri Kanan (%s)" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:47 +msgid "workspace.options.text-options.text-align-left" +msgstr "Paskan ke kiri (%s)" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:55 +msgid "workspace.options.text-options.text-align-right" +msgstr "Paskan ke kanan (%s)" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:189 +msgid "workspace.options.text-options.title" +msgstr "Teks" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:188 +msgid "workspace.options.text-options.title-group" +msgstr "Teks kelompok" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:187 +msgid "workspace.options.text-options.title-selection" +msgstr "Teks seleksi" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused +msgid "workspace.options.text-options.titlecase" +msgstr "Huruf judul" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:171 +msgid "workspace.options.text-options.underline" +msgstr "Garis bawah (%s)" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused +msgid "workspace.options.text-options.uppercase" +msgstr "Huruf Besar" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:745 +msgid "workspace.options.use-play-button" +msgstr "Gunakan tombol main di tajuk untuk menjalankan tampilan prototipe." + +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:395 +msgid "workspace.options.width" +msgstr "Lebar" + +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:427 +msgid "workspace.options.x" +msgstr "Sumbu X" + +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:438 +msgid "workspace.options.y" +msgstr "Sumbu Y" + +#: src/app/main/ui/workspace/viewport/path_actions.cljs:167 +msgid "workspace.path.actions.add-node" +msgstr "Tambahkan simpul (%s)" + +#: src/app/main/ui/workspace/viewport/path_actions.cljs:174 +msgid "workspace.path.actions.delete-node" +msgstr "Hapus simpul (%s)" + +#: src/app/main/ui/workspace/viewport/path_actions.cljs:152 +msgid "workspace.path.actions.draw-nodes" +msgstr "Gambar simpul (%s)" + +#: src/app/main/ui/workspace/viewport/path_actions.cljs:189 +msgid "workspace.path.actions.join-nodes" +msgstr "Gabungkan simpul (%s)" + +#: src/app/main/ui/workspace/viewport/path_actions.cljs:204 +msgid "workspace.path.actions.make-corner" +msgstr "Ke sudut (%s)" + +#: src/app/main/ui/workspace/viewport/path_actions.cljs:211 +msgid "workspace.path.actions.make-curve" +msgstr "Ke kurva (%s)" + +#: src/app/main/ui/workspace/viewport/path_actions.cljs:182 +msgid "workspace.path.actions.merge-nodes" +msgstr "Gabungkan simpul (%s)" + +#: src/app/main/ui/workspace/viewport/path_actions.cljs:159 +msgid "workspace.path.actions.move-nodes" +msgstr "Pindahkan simpul (%s)" + +#: src/app/main/ui/workspace/viewport/path_actions.cljs:196 +msgid "workspace.path.actions.separate-nodes" +msgstr "Simpul terpisah (%s)" + +#: src/app/main/ui/workspace/viewport/path_actions.cljs:218 +msgid "workspace.path.actions.snap-nodes" +msgstr "Tancap simpul (%s)" + +#: src/app/main/ui/workspace/context_menu.cljs:441 +msgid "workspace.shape.menu.add-flex" +msgstr "Tambahkan tata letak flex" + +#: src/app/main/ui/workspace/context_menu.cljs:445 +msgid "workspace.shape.menu.add-grid" +msgstr "Tambahkan tata letak kisi" + +#: src/app/main/ui/workspace/context_menu.cljs:193 +msgid "workspace.shape.menu.back" +msgstr "Kirim ke paling belakang" + +#: src/app/main/ui/workspace/context_menu.cljs:190 +msgid "workspace.shape.menu.backward" +msgstr "Kirim ke belakang" + +#: src/app/main/ui/workspace/context_menu.cljs:139 +msgid "workspace.shape.menu.copy" +msgstr "Salin" + +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:427 +msgid "workspace.shape.menu.create-annotation" +msgstr "Buat anotasi" + +#: src/app/main/ui/workspace/context_menu.cljs:275 +msgid "workspace.shape.menu.create-artboard-from-selection" +msgstr "Seleksi ke papan" + +#: src/app/main/ui/workspace/context_menu.cljs:465 +msgid "workspace.shape.menu.create-component" +msgstr "Buat komponen" + +#: src/app/main/ui/workspace/context_menu.cljs:469 +msgid "workspace.shape.menu.create-multiple-components" +msgstr "Buat beberapa komponen" + +#: src/app/main/ui/workspace/context_menu.cljs:142 +msgid "workspace.shape.menu.cut" +msgstr "Potong" + +#: src/app/main/ui/workspace/context_menu.cljs:486 +msgid "workspace.shape.menu.delete" +msgstr "Hapus" + +#: src/app/main/ui/workspace/context_menu.cljs:391 +msgid "workspace.shape.menu.delete-flow-start" +msgstr "Hapus awalan alur" + +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:432 +msgid "workspace.shape.menu.detach-instance" +msgstr "Lepaskan bagian" + +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:431 +msgid "workspace.shape.menu.detach-instances-in-bulk" +msgstr "Lepaskan bagian" + +#: src/app/main/ui/workspace/context_menu.cljs:335, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:75 +msgid "workspace.shape.menu.difference" +msgstr "Perbedaan" + +#: src/app/main/ui/workspace/context_menu.cljs:148 +msgid "workspace.shape.menu.duplicate" +msgstr "Gandakan" + +#: src/app/main/ui/workspace/context_menu.cljs:321 +msgid "workspace.shape.menu.edit" +msgstr "Sunting" + +#: src/app/main/ui/workspace/context_menu.cljs:341 +msgid "workspace.shape.menu.exclude" +msgstr "Tidak termasuk" + +#: src/app/main/ui/workspace/context_menu.cljs:348, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:89 +msgid "workspace.shape.menu.flatten" +msgstr "Ratakan" + +#: src/app/main/ui/workspace/context_menu.cljs:208 +msgid "workspace.shape.menu.flip-horizontal" +msgstr "Balikkan secara horizontal" + +#: src/app/main/ui/workspace/context_menu.cljs:204 +msgid "workspace.shape.menu.flip-vertical" +msgstr "Balikkan secara vertikal" + +#: src/app/main/ui/workspace/context_menu.cljs:394 +msgid "workspace.shape.menu.flow-start" +msgstr "Awalan alur" + +#: src/app/main/ui/workspace/context_menu.cljs:184 +msgid "workspace.shape.menu.forward" +msgstr "Bawa ke depan" + +#: src/app/main/ui/workspace/context_menu.cljs:187 +msgid "workspace.shape.menu.front" +msgstr "Bawa ke paling depan" + +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#, unused +msgid "workspace.shape.menu.go-main" +msgstr "Pergi ke berkas komponen utama" + +#: src/app/main/ui/workspace/context_menu.cljs:261 +msgid "workspace.shape.menu.group" +msgstr "Kelompok" + +#: src/app/main/ui/workspace/context_menu.cljs:363, src/app/main/ui/workspace/sidebar/layer_item.cljs:145 +msgid "workspace.shape.menu.hide" +msgstr "Sembunyikan" + +#: src/app/main/ui/workspace/context_menu.cljs:548, src/app/main/ui/workspace/main_menu.cljs:408 +msgid "workspace.shape.menu.hide-ui" +msgstr "Tampilkan/Sembunyikan Antarmuka" + +#: src/app/main/ui/workspace/context_menu.cljs:338 +msgid "workspace.shape.menu.intersection" +msgstr "Persimpangan" + +#: src/app/main/ui/workspace/context_menu.cljs:371, src/app/main/ui/workspace/sidebar/layer_item.cljs:153 +msgid "workspace.shape.menu.lock" +msgstr "Kunci" + +#: src/app/main/ui/workspace/context_menu.cljs:266 +msgid "workspace.shape.menu.mask" +msgstr "Topeng" + +#: src/app/main/ui/workspace/context_menu.cljs:145, src/app/main/ui/workspace/context_menu.cljs:545 +msgid "workspace.shape.menu.paste" +msgstr "Tempelkan" + +#: src/app/main/ui/workspace/context_menu.cljs:331 +msgid "workspace.shape.menu.path" +msgstr "Jalur" + +#: src/app/main/ui/workspace/context_menu.cljs:432 +msgid "workspace.shape.menu.remove-flex" +msgstr "Hapus tata letak flex" + +#: src/app/main/ui/workspace/context_menu.cljs:435 +msgid "workspace.shape.menu.remove-grid" +msgstr "Hapus tata letak kisi" + +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:436 +msgid "workspace.shape.menu.reset-overrides" +msgstr "Atur ulang timpaan" + +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:439 +msgid "workspace.shape.menu.restore-main" +msgstr "Pulihkan komponen utama" + +#: src/app/main/ui/workspace/context_menu.cljs:174 +msgid "workspace.shape.menu.select-layer" +msgstr "Pilih lapisan" + +#: src/app/main/ui/workspace/context_menu.cljs:360, src/app/main/ui/workspace/sidebar/layer_item.cljs:144 +msgid "workspace.shape.menu.show" +msgstr "Tampilkan" + +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:424 +msgid "workspace.shape.menu.show-in-assets" +msgstr "Tampilkan dalam panel aset" + +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:442, src/app/main/ui/workspace/sidebar/assets/components.cljs:586 +msgid "workspace.shape.menu.show-main" +msgstr "Tampilkan komponen utama" + +#: src/app/main/ui/workspace/context_menu.cljs:221 +msgid "workspace.shape.menu.thumbnail-remove" +msgstr "Hapus gambar kecil" + +#: src/app/main/ui/workspace/context_menu.cljs:223 +msgid "workspace.shape.menu.thumbnail-set" +msgstr "Tetapkan sebagai gambar kecil" + +#: src/app/main/ui/workspace/context_menu.cljs:326 +msgid "workspace.shape.menu.transform-to-path" +msgstr "Transformasi ke jalur" + +#: src/app/main/ui/workspace/context_menu.cljs:257 +msgid "workspace.shape.menu.ungroup" +msgstr "Lepaskan kelompok" + +#: src/app/main/ui/workspace/context_menu.cljs:332, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:70 +msgid "workspace.shape.menu.union" +msgstr "Serikat" + +#: src/app/main/ui/workspace/context_menu.cljs:368, src/app/main/ui/workspace/sidebar/layer_item.cljs:152 +msgid "workspace.shape.menu.unlock" +msgstr "Buka kunci" + +#: src/app/main/ui/workspace/context_menu.cljs:271 +msgid "workspace.shape.menu.unmask" +msgstr "Buka topeng" + +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs +#, unused +msgid "workspace.shape.menu.update-components-in-bulk" +msgstr "Perbarui komponen utama" + +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:445 +msgid "workspace.shape.menu.update-main" +msgstr "Perbarui komponen utama" + +#: src/app/main/ui/components/tab_container.cljs:50 +msgid "workspace.sidebar.collapse" +msgstr "Tutup bilah samping" + +#: src/app/main/ui/workspace/sidebar/collapsable_button.cljs:26 +msgid "workspace.sidebar.expand" +msgstr "Buka bilah samping" + +#: src/app/main/ui/workspace/right_header.cljs:231, src/app/main/ui/workspace/right_header.cljs:232 +msgid "workspace.sidebar.history" +msgstr "Riwayat (%s)" + +#: src/app/main/ui/workspace/sidebar/layers.cljs:522, src/app/main/ui/workspace/sidebar.cljs:100 +msgid "workspace.sidebar.layers" +msgstr "Lapisan" + +#: src/app/main/ui/workspace/sidebar/layers.cljs:308, src/app/main/ui/workspace/sidebar/layers.cljs:380 +msgid "workspace.sidebar.layers.components" +msgstr "Komponen" + +#: src/app/main/ui/workspace/sidebar/layers.cljs:305, src/app/main/ui/workspace/sidebar/layers.cljs:338 +msgid "workspace.sidebar.layers.frames" +msgstr "Papan" + +#: src/app/main/ui/workspace/sidebar/layers.cljs:306, src/app/main/ui/workspace/sidebar/layers.cljs:352 +msgid "workspace.sidebar.layers.groups" +msgstr "Kelompok" + +#: src/app/main/ui/workspace/sidebar/layers.cljs:310, src/app/main/ui/workspace/sidebar/layers.cljs:408 +msgid "workspace.sidebar.layers.images" +msgstr "Gambar" + +#: src/app/main/ui/workspace/sidebar/layers.cljs:307, src/app/main/ui/workspace/sidebar/layers.cljs:366 +msgid "workspace.sidebar.layers.masks" +msgstr "Topeng" + +#: src/app/main/ui/workspace/sidebar/layers.cljs:289 +msgid "workspace.sidebar.layers.search" +msgstr "Cari lapisan" + +#: src/app/main/ui/workspace/sidebar/layers.cljs:311, src/app/main/ui/workspace/sidebar/layers.cljs:422 +msgid "workspace.sidebar.layers.shapes" +msgstr "Bentuk" + +#: src/app/main/ui/workspace/sidebar/layers.cljs:309, src/app/main/ui/workspace/sidebar/layers.cljs:394 +msgid "workspace.sidebar.layers.texts" +msgstr "Teks" + +#: src/app/main/ui/viewer/inspect/attributes/svg.cljs:56, src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs:91 +msgid "workspace.sidebar.options.svg-attrs.title" +msgstr "Atribut SVG Diimpor" + +#: src/app/main/ui/workspace/sidebar/sitemap.cljs:217 +msgid "workspace.sidebar.sitemap" +msgstr "Halaman" + +#: src/app/main/ui/workspace/left_header.cljs:91 +msgid "workspace.sitemap" +msgstr "Peta Situs" + +#: src/app/main/ui/workspace/sidebar.cljs:120 +msgid "workspace.toolbar.assets" +msgstr "Aset" + +#: src/app/main/ui/workspace/palette.cljs:165, src/app/main/ui/workspace/palette.cljs:166 +msgid "workspace.toolbar.color-palette" +msgstr "Palet Warna (%s)" + +#: src/app/main/ui/workspace/right_header.cljs:220, src/app/main/ui/workspace/right_header.cljs:221 +msgid "workspace.toolbar.comments" +msgstr "Komentar (%s)" + +#: src/app/main/ui/workspace/top_toolbar.cljs:180, src/app/main/ui/workspace/top_toolbar.cljs:181 +msgid "workspace.toolbar.curve" +msgstr "Kurva (%s)" + +#: src/app/main/ui/workspace/top_toolbar.cljs:160, src/app/main/ui/workspace/top_toolbar.cljs:161 +msgid "workspace.toolbar.ellipse" +msgstr "Elips (%s)" + +#: src/app/main/ui/workspace/top_toolbar.cljs:142, src/app/main/ui/workspace/top_toolbar.cljs:143 +msgid "workspace.toolbar.frame" +msgstr "Papan (%s)" + +#: src/app/main/ui/workspace/top_toolbar.cljs:59, src/app/main/ui/workspace/top_toolbar.cljs:60 +msgid "workspace.toolbar.image" +msgstr "Gambar (%s)" + +#: src/app/main/ui/workspace/top_toolbar.cljs:132, src/app/main/ui/workspace/top_toolbar.cljs:133 +msgid "workspace.toolbar.move" +msgstr "Pindahkan (%s)" + +#: src/app/main/ui/workspace/top_toolbar.cljs:189, src/app/main/ui/workspace/top_toolbar.cljs:190 +msgid "workspace.toolbar.path" +msgstr "Jalur (%s)" + +#: src/app/main/ui/workspace/top_toolbar.cljs:151, src/app/main/ui/workspace/top_toolbar.cljs:152 +msgid "workspace.toolbar.rect" +msgstr "Persegi Panjang (%s)" + +#: src/app/main/ui/workspace/left_toolbar.cljs +#, unused +msgid "workspace.toolbar.shortcuts" +msgstr "Pintasan (%s)" + +#: src/app/main/ui/workspace/top_toolbar.cljs:169, src/app/main/ui/workspace/top_toolbar.cljs:170 +msgid "workspace.toolbar.text" +msgstr "Teks (%s)" + +#: src/app/main/ui/workspace/palette.cljs:173, src/app/main/ui/workspace/palette.cljs:174 +msgid "workspace.toolbar.text-palette" +msgstr "Tipografi (%s)" + +#: src/app/main/ui/workspace/viewport/top_bar.cljs:38 +msgid "workspace.top-bar.read-only.done" +msgstr "Selesai" + +#: src/app/main/ui/workspace/viewport/top_bar.cljs:35 +#, markdown +msgid "workspace.top-bar.view-only" +msgstr "**Menginspeksi kode** (Hanya Lihat)" + +#: src/app/main/ui/workspace/sidebar/history.cljs:342 +msgid "workspace.undo.empty" +msgstr "Tidak ada riwayat perubahan sejauh ini" + +#: src/app/main/ui/workspace/sidebar/history.cljs:147 +msgid "workspace.undo.entry.delete" +msgstr "%s dihapus" + +#: src/app/main/ui/workspace/sidebar/history.cljs:146 +msgid "workspace.undo.entry.modify" +msgstr "%s diubah" + +#: src/app/main/ui/workspace/sidebar/history.cljs:148 +msgid "workspace.undo.entry.move" +msgstr "Objek dipindah" + +#: src/app/main/ui/workspace/sidebar/history.cljs:111 +msgid "workspace.undo.entry.multiple.circle" +msgstr "lingkaran" + +#: src/app/main/ui/workspace/sidebar/history.cljs:112 +msgid "workspace.undo.entry.multiple.color" +msgstr "aset warna" + +#: src/app/main/ui/workspace/sidebar/history.cljs:113 +msgid "workspace.undo.entry.multiple.component" +msgstr "komponen" + +#: src/app/main/ui/workspace/sidebar/history.cljs:114 +msgid "workspace.undo.entry.multiple.curve" +msgstr "kurva" + +#: src/app/main/ui/workspace/sidebar/history.cljs:115 +msgid "workspace.undo.entry.multiple.frame" +msgstr "papan" + +#: src/app/main/ui/workspace/sidebar/history.cljs:116 +msgid "workspace.undo.entry.multiple.group" +msgstr "kelompok" + +#: src/app/main/ui/workspace/sidebar/history.cljs:117 +msgid "workspace.undo.entry.multiple.media" +msgstr "aset grafis" + +#: src/app/main/ui/workspace/sidebar/history.cljs:118 +msgid "workspace.undo.entry.multiple.multiple" +msgstr "objek" + +#: src/app/main/ui/workspace/sidebar/history.cljs:119 +msgid "workspace.undo.entry.multiple.page" +msgstr "halaman" + +#: src/app/main/ui/workspace/sidebar/history.cljs:120 +msgid "workspace.undo.entry.multiple.path" +msgstr "jejak" + +#: src/app/main/ui/workspace/sidebar/history.cljs:121 +msgid "workspace.undo.entry.multiple.rect" +msgstr "persegi panjang" + +#: src/app/main/ui/workspace/sidebar/history.cljs:122 +msgid "workspace.undo.entry.multiple.shape" +msgstr "bentuk" + +#: src/app/main/ui/workspace/sidebar/history.cljs:123 +msgid "workspace.undo.entry.multiple.text" +msgstr "teks" + +#: src/app/main/ui/workspace/sidebar/history.cljs:124 +msgid "workspace.undo.entry.multiple.typography" +msgstr "aset tipografi" + +#: src/app/main/ui/workspace/sidebar/history.cljs:145 +msgid "workspace.undo.entry.new" +msgstr "%s Baru" + +#: src/app/main/ui/workspace/sidebar/history.cljs:125 +msgid "workspace.undo.entry.single.circle" +msgstr "lingkaran" + +#: src/app/main/ui/workspace/sidebar/history.cljs:126 +msgid "workspace.undo.entry.single.color" +msgstr "aset warna" + +#: src/app/main/ui/workspace/sidebar/history.cljs:127 +msgid "workspace.undo.entry.single.component" +msgstr "komponen" + +#: src/app/main/ui/workspace/sidebar/history.cljs:128 +msgid "workspace.undo.entry.single.curve" +msgstr "kurva" + +#: src/app/main/ui/workspace/sidebar/history.cljs:129 +msgid "workspace.undo.entry.single.frame" +msgstr "papan" + +#: src/app/main/ui/workspace/sidebar/history.cljs:130 +msgid "workspace.undo.entry.single.group" +msgstr "kelompok" + +#: src/app/main/ui/workspace/sidebar/history.cljs:131 +msgid "workspace.undo.entry.single.image" +msgstr "gambar" + +#: src/app/main/ui/workspace/sidebar/history.cljs:132 +msgid "workspace.undo.entry.single.media" +msgstr "aset grafis" + +#: src/app/main/ui/workspace/sidebar/history.cljs:133 +msgid "workspace.undo.entry.single.multiple" +msgstr "objek" + +#: src/app/main/ui/workspace/sidebar/history.cljs:134 +msgid "workspace.undo.entry.single.page" +msgstr "halaman" + +#: src/app/main/ui/workspace/sidebar/history.cljs:135 +msgid "workspace.undo.entry.single.path" +msgstr "jalur" + +#: src/app/main/ui/workspace/sidebar/history.cljs:136 +msgid "workspace.undo.entry.single.rect" +msgstr "persegi panjang" + +#: src/app/main/ui/workspace/sidebar/history.cljs:137 +msgid "workspace.undo.entry.single.shape" +msgstr "bentuk" + +#: src/app/main/ui/workspace/sidebar/history.cljs:138 +msgid "workspace.undo.entry.single.text" +msgstr "teks" + +#: src/app/main/ui/workspace/sidebar/history.cljs:139 +msgid "workspace.undo.entry.single.typography" +msgstr "aset tipografi" + +#: src/app/main/ui/workspace/sidebar/history.cljs:149 +msgid "workspace.undo.entry.unknown" +msgstr "Operasi pada %s" + +#: src/app/main/ui/workspace/sidebar/history.cljs:335 +msgid "workspace.undo.title" +msgstr "Riwayat" + +#: src/app/main/data/workspace/libraries.cljs:1094 +msgid "workspace.updates.dismiss" +msgstr "Abaikan" + +#: src/app/main/data/workspace/libraries.cljs:1092 +msgid "workspace.updates.more-info" +msgstr "Info lebih lanjut" + +#: src/app/main/data/workspace/libraries.cljs:1090 +msgid "workspace.updates.there-are-updates" +msgstr "Ada pembaruan dalam pustaka terbagi" + +#: src/app/main/data/workspace/libraries.cljs:1097 +msgid "workspace.updates.update" +msgstr "Perbarui" + +#, unused +msgid "workspace.viewport.click-to-close-path" +msgstr "Klik untuk menutup jalur" diff --git a/frontend/translations/ig.po b/frontend/translations/ig.po index 6eb4ae1cbe..f09b825da5 100644 --- a/frontend/translations/ig.po +++ b/frontend/translations/ig.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "PO-Revision-Date: 2024-06-17 08:07+0000\n" "Last-Translator: Anonymous \n" -"Language-Team: Igbo " -"\n" +"Language-Team: Igbo " +"\n" "Language: ig\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" @@ -11,2008 +11,2214 @@ msgstr "" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Weblate 5.6-dev\n" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:299 msgid "auth.check-your-email" msgstr "Nyoo ozi- n gị ma pịa na njikọ inyocha ma bido jiri ite mkpịsị rụwa ọrụ ." -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:78 msgid "auth.confirm-password" msgstr "kpebie akara mpibanye" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/register.cljs:163 msgid "auth.create-demo-account" msgstr "mebeta akara ozigosi" #: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#, unused msgid "auth.create-demo-profile" msgstr "Chọọ nọọ ị nwa ya. ?" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/login.cljs:43 msgid "auth.demo-warning" msgstr "" "Ihe bụ ọrụ ozigosi ,e jile ya rụọ ezigbo ọrụ , ọrụ ndị a ga-ekpochapụ site " "na oge ruo na oge" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:189, src/app/main/ui/viewer/login.cljs:90 msgid "auth.forgot-password" msgstr "Chefuru akara mpibanye ?" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:254 msgid "auth.fullname" msgstr "Aha n'uju" -#: src/app/main/ui/auth/register.cljs -#, fuzzy +#: src/app/main/ui/auth/register.cljs:155, src/app/main/ui/viewer/login.cljs:107 msgid "auth.login-here" msgstr "Banye ebe a" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:195 msgid "auth.login-submit" msgstr "Banye" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:222 msgid "auth.login-with-github-submit" msgstr "Obi Git" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:228 msgid "auth.login-with-gitlab-submit" msgstr "Ụlọ nchọcha Git" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:216 msgid "auth.login-with-google-submit" msgstr "Gọgụlụ" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:201 msgid "auth.login-with-ldap-submit" msgstr "LDAP" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:234, src/app/main/ui/auth/login.cljs:255 msgid "auth.login-with-oidc-submit" msgstr "Mepe ID" -#: src/app/main/ui/settings/team-form.cljs, src/app/main/ui/auth/register.cljs, src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/onboarding/team_choice.cljs, src/app/main/ui/settings/access_tokens.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/settings/profile.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/auth/register.cljs:217, src/app/main/ui/dashboard/team_form.cljs:76, src/app/main/ui/onboarding/team_choice.cljs:180, src/app/main/ui/settings/access_tokens.cljs:66, src/app/main/ui/settings/feedback.cljs:34, src/app/main/ui/settings/profile.cljs:45, src/app/main/ui/workspace/sidebar/assets/groups.cljs:108 msgid "auth.name.not-all-space" msgstr "Aha ga-enweriri ụfọdụ mkpụrụ edemede karịa oghere ." -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/onboarding/team_choice.cljs, src/app/main/ui/settings/access_tokens.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/settings/profile.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/auth/register.cljs:218, src/app/main/ui/dashboard/team_form.cljs:77, src/app/main/ui/onboarding/team_choice.cljs:181, src/app/main/ui/settings/access_tokens.cljs:67, src/app/main/ui/settings/feedback.cljs:33, src/app/main/ui/settings/profile.cljs:44, src/app/main/ui/workspace/sidebar/assets/groups.cljs:109 msgid "auth.name.too-long" msgstr "Aha ga-enweriri ọ karịa mkpụrụ okwu narị abụọ na iri ise" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:71 msgid "auth.new-password" msgstr "Pinye akara mpịbanye ọhụrụ" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:42 msgid "auth.notifications.invalid-token-error" msgstr "Ọdịmara e nweghachitere adabaghị ." -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:46 msgid "auth.notifications.password-changed-successfully" msgstr "Akara mpịbanye a gbanwere gara aga" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:57 msgid "auth.notifications.profile-not-verified" msgstr "E nyochaghị nchịkọta , Biko nyocha nchịkọta tupu ị gaa n'ihu." -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:40 msgid "auth.notifications.recovery-token-sent" msgstr "E zigara akara njikọ nnweghachi akara mpibanye n'igbe mbata ozi gị ." -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:47 msgid "auth.notifications.team-invitation-accepted" msgstr "Sonyere n'otu nke ọma" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:114 msgid "auth.password-length-hint" msgstr "Ọ karịa mkpụrụ ederede asatọ" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/recovery.cljs:61, src/app/main/ui/auth/recovery.cljs:62, src/app/main/ui/auth/register.cljs:81, src/app/main/ui/settings/password.cljs:75, src/app/main/ui/settings/password.cljs:76, src/app/main/ui/settings/password.cljs:77 msgid "auth.password-not-empty" msgstr "Akara mpịbanye ga-enweriri ụfọdụ leta/akara mpị karịa oghere ." +#: src/app/main/ui/auth.cljs:41 msgid "auth.privacy-policy" msgstr "Iwu oñiño onwe" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:88 msgid "auth.recovery-request-submit" msgstr "Nweghachite akara mpịbanye" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:101 msgid "auth.recovery-request-subtitle" msgstr "Anyị ga-ezita ozi n na ndụmọdụ" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:100 msgid "auth.recovery-request-title" msgstr "Chefuru akara mpịbanye ?" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:82 msgid "auth.recovery-submit" msgstr "Gbanye akara mpịbanye." -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:298, src/app/main/ui/viewer/login.cljs:93 msgid "auth.register" msgstr "E nweghị ebe Ntinye ihe ma kịta?" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:302, src/app/main/ui/auth/register.cljs:121, src/app/main/ui/auth/register.cljs:263, src/app/main/ui/viewer/login.cljs:97 msgid "auth.register-submit" msgstr "Mepee ebe Ntinye ihe" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:140 msgid "auth.register-title" msgstr "Mepee ebe ntinye ihe" #: src/app/main/ui/auth.cljs +#, unused msgid "auth.sidebar-tagline" msgstr "Nsina ghere oghe iji mee nse na atụtụ" +#: src/app/main/ui/auth.cljs:33, src/app/main/ui/dashboard/sidebar.cljs:1022, src/app/main/ui/workspace/main_menu.cljs:150 msgid "auth.terms-of-service" msgstr "Ọnọdụ ọrụ" +#, unused msgid "auth.terms-privacy-agreement" msgstr "" "Mgbe Ị na-emepe akara mbata ọhụrụ , ị ga-ekwe nye n'ọnọdụ ọrụ anyị na iwu " "oñiño onwe" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:297 msgid "auth.verification-email-sent" msgstr "Anyị ezigaala ozi nnyocha na" #: src/app/main/ui/onboarding/questions.cljs +#, unused msgid "branding-illustrations-marketing-pieces" msgstr "...onyinye aha, nkọwa gasị, ngwa ire ahịa dịrị gabazịa." +#: src/app/main/ui/workspace/libraries.cljs:228 msgid "common.publish" msgstr "bipụta" +#: src/app/main/ui/viewer/share_link.cljs:304, src/app/main/ui/viewer/share_link.cljs:314 msgid "common.share-link.all-users" msgstr "Ndị niile ji ite mkpịsị arụ ọrụ" +#: src/app/main/ui/viewer/share_link.cljs:259, src/app/main/ui/viewer/share_link.cljs:289 msgid "common.share-link.current-tag" msgstr "(kee ugbu a )" +#: src/app/main/ui/viewer/share_link.cljs:207, src/app/main/ui/viewer/share_link.cljs:214 msgid "common.share-link.destroy-link" msgstr "Mebie njiko" +#: src/app/main/ui/viewer/share_link.cljs:221 msgid "common.share-link.get-link" msgstr "Weta njiko" +#: src/app/main/ui/viewer/share_link.cljs:139 msgid "common.share-link.link-copied-success" msgstr "E setere njiko nke ọma" +#: src/app/main/ui/viewer/share_link.cljs:231 msgid "common.share-link.manage-ops" msgstr "Jikwa ikike" +#: src/app/main/ui/viewer/share_link.cljs:298 msgid "common.share-link.permissions-can-comment" msgstr "nwere ike ikwu okwu" +#: src/app/main/ui/viewer/share_link.cljs:308 msgid "common.share-link.permissions-can-inspect" msgstr "Nwere Ike inyocha akara" +#: src/app/main/ui/viewer/share_link.cljs:193 msgid "common.share-link.permissions-hint" msgstr "Onye ọ bụla ga-enwe ohere mbanye" +#: src/app/main/ui/viewer/share_link.cljs:241 msgid "common.share-link.permissions-pages" msgstr "Ihu akwụkwọ ekekoritara" +#: src/app/main/ui/viewer/share_link.cljs:183 msgid "common.share-link.placeholder" msgstr "Njikọ e nwere ike ikekorita ga-apụta" +#: src/app/main/ui/viewer/share_link.cljs:303, src/app/main/ui/viewer/share_link.cljs:313 msgid "common.share-link.team-members" msgstr "Sọọsọ ndị otu" +#: src/app/main/ui/viewer/share_link.cljs:171 msgid "common.share-link.title" msgstr "Kee atụ gasị" +#: src/app/main/ui/workspace/libraries.cljs:224 msgid "common.unpublish" msgstr "Ebiputaghị" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:84 msgid "dasboard.team-hero.text" msgstr "" "Ite mkpịsị bụ maka otu . Kpọọ ndị otu ka arụkọta ọnụ on arụmarụ na ederede " "ọnụ" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:82 msgid "dasboard.team-hero.title" msgstr "Jikota ọnụ !" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.tutorial-hero.info" msgstr "Mụọ ntọala na ite mkpịsị maka iji nkuzi mmemmekwa eme ihe egwu" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.tutorial-hero.start" msgstr "Bido ọmụmụ" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.tutorial-hero.title" msgstr "Nkuzi mmemmekwa" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.walkthrough-hero.info" msgstr "Mee ngagharị na ite mkpịsị ma mata isi a gwara ya." #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.walkthrough-hero.start" msgstr "Bido njem" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.walkthrough-hero.title" msgstr "Aba ngagharị" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:202 msgid "dashboard.access-tokens.create" msgstr "Mepụta ọdịmara ọhụrụ" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:76 msgid "dashboard.access-tokens.create.success" msgstr "Mmepụtara ọdịmara nnweta gara nke ọma ." -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:300 msgid "dashboard.access-tokens.empty.add-one" msgstr "Pịa mpi \"Nweta ọdịmara ọhụrụ \" inweta otu ." -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:53 msgid "dashboard.access-tokens.errors-required-name" msgstr "A chọrọ aha" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:147 msgid "dashboard.access-tokens.expiration-180-days" msgstr "Mkpụrụ ụbọchị narị na iri asatọ" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:144 msgid "dashboard.access-tokens.expiration-30-days" msgstr "Mkpụrụ ụbọchị iri atọ" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:145 msgid "dashboard.access-tokens.expiration-60-days" msgstr "Mkpụrụ ụbọchị iri isii" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:146 msgid "dashboard.access-tokens.expiration-90-days" msgstr "Mkpụrụ ụbọchị iri itoolu" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:143 msgid "dashboard.access-tokens.expiration-never" msgstr "Ncha ncha" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:282 msgid "dashboard.access-tokens.expired-on" msgstr "Mebiri na%s" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:283 msgid "dashboard.access-tokens.expires-on" msgstr "Na-emebi na%s" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:281 msgid "dashboard.access-tokens.no-expiration" msgstr "Enweghị ụbọchị mmebi" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:197 msgid "dashboard.access-tokens.personal" msgstr "Ọdịmara nkeonwe" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:198 msgid "dashboard.access-tokens.personal.description" msgstr "" "Ọdịmara nnweta nke onwe na-arụ ọrụ dị ka mgbamonwe mbanye anyị /akara " "mpịbanye e nwere ike iji usoro mbinye aka kwe ka ngwa nweta ndịnime ite " "mkpịsị API" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:154 msgid "dashboard.access-tokens.token-will-expire" msgstr "Ọdịmara ga-emebi na%s" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:155 msgid "dashboard.access-tokens.token-will-not-expire" msgstr "Ọdịmara enweghị ụbọchị mmebi" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:291, src/app/main/ui/workspace/main_menu.cljs:572 msgid "dashboard.add-shared" msgstr "Tinye dị ka ọ a nkwekọrịta" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:75 msgid "dashboard.change-email" msgstr "Gbanwee ozi - n" -#: src/app/main/data/dashboard.cljs, src/app/main/data/dashboard.cljs +#: src/app/main/data/dashboard.cljs:762, src/app/main/data/dashboard.cljs:983 msgid "dashboard.copy-suffix" msgstr "(sere)" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:338 msgid "dashboard.create-new-team" msgstr "Mebe otu ọhụrụ" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/components/context_menu_a11y.cljs:256, src/app/main/ui/dashboard/sidebar.cljs:646 msgid "dashboard.default-team-name" msgstr "Ite mkpịsị gị" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:571 msgid "dashboard.delete-team" msgstr "kacha otu" +#: src/app/main/ui/dashboard/file_menu.cljs:296, src/app/main/ui/workspace/main_menu.cljs:589 msgid "dashboard.download-binary-file" msgstr "Butuo ederede ite mkpịsị (.penpot)" +#: src/app/main/ui/dashboard/file_menu.cljs:300, src/app/main/ui/workspace/main_menu.cljs:597 msgid "dashboard.download-standard-file" msgstr "Butuo ederede tozuru etozu (.svg + .json)" -#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:276, src/app/main/ui/dashboard/project_menu.cljs:90 msgid "dashboard.duplicate" msgstr "mee oyiri" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:240 msgid "dashboard.duplicate-multi" msgstr "Mee o yiri %s ederede" -#: src/app/main/ui/dashboard/grid.cljs -#, fuzzy, markdown +#: src/app/main/ui/dashboard/placeholder.cljs:32 +#, markdown msgid "dashboard.empty-placeholder-drafts" msgstr "" "Ederede a tinyere n'ọba ederede ga-apụta ebe a. Gbalịa ikesa ma ọ bụ tinye " -"site n'[Ọba ederede na ndebiri anyị ](https://itemkpịsị.app/ọba ederede gasị-" -"ndebiri gasị.html)." +"site n'[Ọba ederede na ndebiri anyị ](https://itemkpịsị.app/ọba ederede " +"gasị-ndebiri gasị.html)." +#: src/app/main/ui/dashboard/file_menu.cljs:249 msgid "dashboard.export-binary-multi" msgstr "Butuo %s ederede ite mkpịsị (.penpot)" +#: src/app/main/ui/workspace/main_menu.cljs:605 msgid "dashboard.export-frames" msgstr "Bupu bọọdụ dị ka PDF" -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:201 msgid "dashboard.export-frames.title" msgstr "Bupu dị ka PDF" +#, unused msgid "dashboard.export-multi" msgstr "Bupu %s ederede Ite mkpịsị" -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:109 msgid "dashboard.export-multiple.selected" msgstr "A họrọ %s nke %s ndị na" -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:180 msgid "dashboard.export-shapes.how-to" msgstr "" "Ị nwere ike ị tinye ntọala mbupu na ndịna site na ngwongwo nse (n'ala akụkụ " "aka nri ihe ndepụta)" -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:184 msgid "dashboard.export-shapes.how-to-link" msgstr "Ozi etu esi ahazi mbupu n'ite mkpịsị" -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:179 msgid "dashboard.export-shapes.no-elements" msgstr "E nweghị ndịna ọ bụla na ntọala mbupu" -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:190 msgid "dashboard.export-shapes.title" msgstr "Nhọrọ mbupu" +#: src/app/main/ui/dashboard/file_menu.cljs:252 msgid "dashboard.export-standard-multi" msgstr "Buto %s ederede tozuru etozu (.svg + .json)" +#: src/app/main/ui/export.cljs:427 msgid "dashboard.export.detail" msgstr "* Nwere Ike ịgụnye ngwa , esereese gasị, agwụgwara na/ma ọ bụ akara nkụpụta." +#: src/app/main/ui/export.cljs:435 msgid "dashboard.export.options.all.message" msgstr "" "A ga-atinye ederede nwere ọba ederede nkekọrịta ma gụnyere mbupu , ma " "jidekwa ụkpụrụ njikọ ha" +#: src/app/main/ui/export.cljs:436 msgid "dashboard.export.options.all.title" msgstr "Bupu ọba ederede nkekọrịta" +#: src/app/main/ui/export.cljs:437 msgid "dashboard.export.options.detach.message" msgstr "" "Agaghị a tinye ọba ederede nkekọrịta na mbupu ma o nweghị ihe nnwe a ga a " "tinye ọ a ederede . " +#: src/app/main/ui/export.cljs:440 msgid "dashboard.export.options.merge.title" msgstr "Tinye ihe nnwe ọba ederede nkekọrịta n'ime ọ a ederede." +#: src/app/main/ui/export.cljs:418 msgid "dashboard.export.title" msgstr "Ederede mbupu gasị" +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:309 msgid "dashboard.fonts.deleted-placeholder" msgstr "Mkpụrụ edemede na-efu efu" -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:206 msgid "dashboard.fonts.dismiss-all" msgstr "Gbasaa ha niile" +#: src/app/main/ui/dashboard/fonts.cljs:436 msgid "dashboard.fonts.empty-placeholder" msgstr "Mkpụrụ edemede ndị ị bugoro ga-apụta ebe." -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:202 msgid "dashboard.fonts.upload-all" msgstr "Bugo ha niile" +#: src/app/main/ui/dashboard/fonts.cljs:187 #, markdown msgid "dashboard.fonts.warning-text" msgstr "" "Anyị chọpụtara nsogbu nwere ike ịpụta na mkpụrụ edide gị gbasara ntụ kwụ " "ọtọ " +#: src/app/main/ui/dashboard/import.cljs:304, src/app/worker/import.cljs:753, src/app/worker/import.cljs:755 msgid "dashboard.import.analyze-error" msgstr "Ewuu! Anyị enweghị ike bubata ederede a" +#: src/app/main/ui/dashboard/import.cljs:308 msgid "dashboard.import.import-error" msgstr "E nwere nsogbu na ibubata ederede . E bubataghị ederede ." +#: src/app/main/ui/dashboard/import.cljs:481, src/app/main/ui/dashboard/import.cljs:488 msgid "dashboard.import.import-warning" msgstr "Ụfọdụ ederede nwere ihe ndị adabaghị na ya nke ewepugoro. ." +#: src/app/main/ui/dashboard/import.cljs:144 msgid "dashboard.import.progress.process-colors" msgstr "Nhazi agwụgwara gasị" +#: src/app/main/ui/dashboard/import.cljs:153 msgid "dashboard.import.progress.process-components" msgstr "Nhazi ngwa gasị" +#: src/app/main/ui/dashboard/import.cljs:150 msgid "dashboard.import.progress.process-media" msgstr "Nhazi mgbasa ozi" +#: src/app/main/ui/dashboard/import.cljs:141 msgid "dashboard.import.progress.process-page" msgstr "Nhazi ihu akwụkwọ : %s" +#: src/app/main/ui/dashboard/import.cljs:147 msgid "dashboard.import.progress.process-typographies" msgstr "Nhazi akara nkụpụta" +#: src/app/main/ui/dashboard/import.cljs:135 msgid "dashboard.import.progress.upload-data" msgstr "Ibugo njatụle n'ebe nkesa (%s/%s)" +#: src/app/main/ui/dashboard/import.cljs:138 msgid "dashboard.import.progress.upload-media" msgstr "Ibugo ederede : %s" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:109 msgid "dashboard.invite-profile" msgstr "Kpọta mmadụ" -#: src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:547, src/app/main/ui/dashboard/sidebar.cljs:556, src/app/main/ui/dashboard/sidebar.cljs:563, src/app/main/ui/dashboard/team.cljs:312 msgid "dashboard.leave-team" msgstr "Hapụ otu" +#: src/app/main/ui/dashboard/templates.cljs:88, src/app/main/ui/dashboard/templates.cljs:163 msgid "dashboard.libraries-and-templates" msgstr "Ọba ederede gasị & ndebiri" +#: src/app/main/ui/dashboard/templates.cljs:164 msgid "dashboard.libraries-and-templates.explore" msgstr "Nyocha ọtụtụ n'ime ha ma mara etu ị ga-esi tinye ọnụ" +#: src/app/main/ui/dashboard/import.cljs:365 msgid "dashboard.libraries-and-templates.import-error" msgstr "E nwere nsogbu ibu aba ndebiri . E bubataghị ndebiri." -#: src/app/main/ui/dashboard/libraries.cljs +#: src/app/main/ui/dashboard/libraries.cljs:53 msgid "dashboard.libraries-title" msgstr "Ọba ederede gasị" -#: src/app/main/ui/dashboard/grid.cljs +#: src/app/main/ui/dashboard/placeholder.cljs:45 msgid "dashboard.loading-files" msgstr "Mbụbata ederede gị …" +#: src/app/main/ui/dashboard/fonts.cljs:431 msgid "dashboard.loading-fonts" msgstr "mbubata mkpụrụ edemede gị …" -#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:281, src/app/main/ui/dashboard/project_menu.cljs:100 msgid "dashboard.move-to" msgstr "Ga na" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:245 msgid "dashboard.move-to-multi" msgstr "Buga %s ederede gasị na" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:226 msgid "dashboard.move-to-other-team" msgstr "Gaa n'otu ọzọ" -#: src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/files.cljs +#: src/app/main/ui/dashboard/files.cljs:105, src/app/main/ui/dashboard/projects.cljs:252, src/app/main/ui/dashboard/projects.cljs:253 msgid "dashboard.new-file" msgstr "+ Ederede ọhụrụ" -#: src/app/main/data/dashboard.cljs +#: src/app/main/data/dashboard.cljs:958, src/app/main/data/dashboard.cljs:1181 msgid "dashboard.new-file-prefix" msgstr "Ederede ọhụrụ" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:55 msgid "dashboard.new-project" msgstr "+ Nchọcha ọhụrụ" -#: src/app/main/data/dashboard.cljs +#: src/app/main/data/dashboard.cljs:726, src/app/main/data/dashboard.cljs:1184 msgid "dashboard.new-project-prefix" msgstr "Arụmarụ ọhụrụ" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:60 msgid "dashboard.no-matches-for" msgstr "Ọ nweghị ihe ndabara e nwetara maka “%s“" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:827 msgid "dashboard.no-projects-placeholder" msgstr "Arụmarụ a kụdoro ga-apụta ebe a" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:33 msgid "dashboard.notifications.email-changed-successfully" msgstr "Adreesị ozi - n gị ahazigharịala gara nke ọma" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:27 msgid "dashboard.notifications.email-verified-successfully" msgstr "E nyochala adreesị ozi - n gị nke ọma" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:37 msgid "dashboard.notifications.password-saved" msgstr "E dọkwara akara mpịbanye nke ọma !" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1081 msgid "dashboard.num-of-members" msgstr "%s Ndị otu" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:267 msgid "dashboard.open-in-new-tab" msgstr "Mepe ederede na tabụ ọhụrụ" +#: src/app/main/ui/dashboard/files.cljs:117, src/app/main/ui/dashboard/projects.cljs:260, src/app/main/ui/dashboard/projects.cljs:261 msgid "dashboard.options" msgstr "Nhọrọ gasị" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:106, src/app/main/ui/settings/password.cljs:119 msgid "dashboard.password-change" msgstr "Gbanwee akara mpịbanye" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/pin_button.cljs:24, src/app/main/ui/dashboard/project_menu.cljs:95 msgid "dashboard.pin-unpin" msgstr "Nọmba /Wepụ nọmba" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:51 msgid "dashboard.projects-title" msgstr "Arụmarụ" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:86 msgid "dashboard.remove-account" msgstr "Chọọ iwepu ebe Ntinye ihe gị ?" #: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "dashboard.remove-shared" msgstr "Wepụ dị ka ọba ederede nkekọrịta" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:78 msgid "dashboard.save-settings" msgstr "Dokwa ntọala" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:246, src/app/main/ui/dashboard/sidebar.cljs:247 msgid "dashboard.search-placeholder" msgstr "Chọọ…" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:55 msgid "dashboard.searching-for" msgstr "Na-achọ “%s“…" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:56 msgid "dashboard.select-ui-language" msgstr "Họrọ asụsụ UI" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:33 msgid "dashboard.success-duplicate-project" msgstr "E megharịala arụmarụ gị nke ọma\"" -#: src/app/main/ui/dashboard/grid.cljs, src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:130, src/app/main/ui/dashboard/grid.cljs:558, src/app/main/ui/dashboard/sidebar.cljs:152 msgid "dashboard.success-move-file" msgstr "E wepula ederede gị nke ọma\"" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:54 msgid "dashboard.success-move-project" msgstr "E bupula arụmarụ gị nke ọma" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1052 msgid "dashboard.team-info" msgstr "Ozi otu" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1070 msgid "dashboard.team-members" msgstr "Ndị otu" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1085 msgid "dashboard.team-projects" msgstr "Arụmarụ otu" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:61 msgid "dashboard.theme-change" msgstr "Isiokwu UI" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:42 msgid "dashboard.title-search" msgstr "Chọọ risọltụ gasị" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:50 msgid "dashboard.type-something" msgstr "Pinye ịchọ risọltụ" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:287, src/app/main/ui/workspace/main_menu.cljs:566 msgid "dashboard.unpublish-shared" msgstr "Ọba ederede ebiputaghị" -#: src/app/main/ui/settings/password.cljs, src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:71 msgid "dashboard.update-settings" msgstr "Hazie ntọala" +#: src/app/main/ui/dashboard/team.cljs:861 msgid "dashboard.webhooks.active" msgstr "Dị gara gara" +#: src/app/main/ui/dashboard/team.cljs:862 msgid "dashboard.webhooks.active.explain" msgstr "Mgbe a kpọlitere nkọ a, ọ ga-Ezipụta nkọwa emume n'uju" +#: src/app/main/ui/dashboard/team.cljs:852 msgid "dashboard.webhooks.content-type" msgstr "Ụdị ndịna" +#: src/app/main/ui/dashboard/team.cljs:885 msgid "dashboard.webhooks.create" msgstr "Mepe nko - ududọ" +#: src/app/main/ui/dashboard/team.cljs:775 msgid "dashboard.webhooks.create.success" msgstr "E mepere nko-ududọ nke ọma ." +#: src/app/main/ui/dashboard/team.cljs:882 msgid "dashboard.webhooks.description" msgstr "" "Nko-ududọ bụ ụzọ dị mfe ga-ekwe ka ebe ududọ na apps ndị ọzọ nweta ozi Mgbe " "ụfọdụ emume na eme n'ite mkpịsị . Anyị ga e ziga OZI arịrịọ nwe URLs ọ bụla " "ị nwetara" +#: src/app/main/ui/dashboard/team.cljs:1005 msgid "dashboard.webhooks.empty.add-one" msgstr "Pịa mpị \"Tinye nko-ududọ \" ịtinye otu ." +#: src/app/main/ui/dashboard/team.cljs:1004 msgid "dashboard.webhooks.empty.no-webhooks" msgstr "E nweghị Nko-ududọ e ebere ruo ugbu a ." +#, unused msgid "dashboard.webhooks.update.success" msgstr "Ahazigharịrị nko-ududọ nke ọma ." -#: src/app/main/ui/settings.cljs +#: src/app/main/ui/settings.cljs:31 msgid "dashboard.your-account-title" msgstr "Ebe Ntinye ihe gị" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:70 msgid "dashboard.your-email" msgstr "Ozi-n" -#: src/app/main/ui/dashboard/search.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/libraries.cljs, src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:38, src/app/main/ui/dashboard/fonts.cljs:33, src/app/main/ui/dashboard/libraries.cljs:42, src/app/main/ui/dashboard/projects.cljs:318, src/app/main/ui/dashboard/search.cljs:30, src/app/main/ui/dashboard/sidebar.cljs:312, src/app/main/ui/dashboard/team.cljs:495, src/app/main/ui/dashboard/team.cljs:729, src/app/main/ui/dashboard/team.cljs:991, src/app/main/ui/dashboard/team.cljs:1038 msgid "dashboard.your-penpot" msgstr "Ite mkpịsị. gị" -#: src/app/main/ui/alert.cljs +#: src/app/main/ui/alert.cljs:32 msgid "ds.alert-ok" msgstr "Okay" -#: src/app/main/ui/alert.cljs +#: src/app/main/ui/alert.cljs:31, src/app/main/ui/alert.cljs:34 msgid "ds.alert-title" msgstr "Gee ntị" -#: src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:36, src/app/main/ui/workspace/plugins.cljs:246 msgid "ds.confirm-cancel" msgstr "Kagbuo" -#: src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:37, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:141 msgid "ds.confirm-ok" msgstr "Okay" -#: src/app/main/ui/confirm.cljs, src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:35, src/app/main/ui/confirm.cljs:39 msgid "ds.confirm-title" msgstr "Ọ doro gị anya ?" +#: src/app/main/errors.cljs:104 msgid "errors.auth.unable-to-login" msgstr "Ọ dị ka enyochaghị gị ma ọ bụ na oge agwụla ." +#: src/app/main/data/fonts.cljs:189 msgid "errors.bad-font" msgstr "E nweghị ike bugo %s mkpụrụ edide" +#: src/app/main/data/fonts.cljs:188 msgid "errors.bad-font-plural" msgstr "E nweghị ike bugo %s mkpụrụ edide" +#: src/app/main/data/workspace/media.cljs:198 msgid "errors.cannot-upload" msgstr "E nweghị ike ị ugo ederede ." -#: src/app/main/data/workspace.cljs +#: src/app/main/data/workspace.cljs:1598 msgid "errors.clipboard-not-implemented" msgstr "Your browser cannot do this operation" -#: src/app/main/ui/auth/verify_token.cljs, src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/auth/verify_token.cljs:82, src/app/main/ui/settings/change_email.cljs:46 msgid "errors.email-already-exists" msgstr "E jibuola ozi - n rụọ ọrụ" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:87 msgid "errors.email-already-validated" msgstr "Aha ozi-n adabala." +#: src/app/main/ui/settings/password.cljs:28 msgid "errors.email-as-password" msgstr "Ị nweghị ike iji aha ozi-n gị dị ka akara mpịbanye" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/settings/change_email.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/auth/recovery_request.cljs:63, src/app/main/ui/dashboard/team.cljs:578, src/app/main/ui/settings/change_email.cljs:54 msgid "errors.email-has-permanent-bounces" msgstr "Ozi-n «%s» nwere ọtụtụ ozi nkọwa mbịaghachigide." -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs, src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/login.cljs:81, src/app/main/ui/auth/recovery_request.cljs:31, src/app/main/ui/auth/register.cljs:43 msgid "errors.email-invalid" msgstr "Debanye aha ozi-n dabara adaba" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:35 msgid "errors.email-invalid-confirmation" msgstr "Ozi-n nnabata ga-adabrịrị" +#: src/app/main/ui/dashboard/team.cljs:170 msgid "errors.email-spam-or-permanent-bounces" msgstr "E nwela ozi nkọwa na ozi-n«%s» dị ka ozi abaghị uru ma ọ bụ mbịaghachigide." -#: src/app/main/errors.cljs +#: src/app/main/errors.cljs:227 msgid "errors.feature-mismatch" msgstr "" "Ọ dị ka ị na-emepe ederede nwere a gwara naọ gara aga '%s' mana ihu " "itemkpịsị gị akwadoghị ya ma ọ bụ gosiri ọ gaghị aga." -#: src/app/main/errors.cljs +#: src/app/main/errors.cljs:231, src/app/main/errors.cljs:245 msgid "errors.feature-not-supported" msgstr "Akwadoghị agwara '%s' ." -#: src/app/main/ui/auth/verify_token.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/data/users.cljs:709, src/app/main/ui/auth/login.cljs:65, src/app/main/ui/auth/login.cljs:116, src/app/main/ui/auth/register.cljs:69, src/app/main/ui/auth/register.cljs:237, src/app/main/ui/auth/verify_token.cljs:92, src/app/main/ui/dashboard/team.cljs:173, src/app/main/ui/onboarding/team_choice.cljs:95, src/app/main/ui/settings/access_tokens.cljs:91, src/app/main/ui/settings/feedback.cljs:52 msgid "errors.generic" msgstr "Ihe ezighị ezi emela ." -#: src/app/main/ui/components/color_input.cljs +#: src/app/main/ui/components/color_input.cljs:57 msgid "errors.invalid-color" msgstr "Agwụgwara adabaghị" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/static.cljs:43 msgid "errors.invite-invalid" msgstr "kpọọ òkù adabaghị" +#: src/app/main/ui/static.cljs:44 msgid "errors.invite-invalid.info" msgstr "This invite might be canceled or may be expired." -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:101 msgid "errors.ldap-disabled" msgstr "LDAP mbinye aka agaghị ." -#: src/app/main/errors.cljs +#: src/app/main/errors.cljs:239 msgid "errors.max-quote-reached" msgstr "I ruola '%s' ole a chọrọ . Chọọ enyemaka nkwado ." -#: src/app/main/data/workspace/persistence.cljs +#: src/app/main/data/workspace/media.cljs:184 msgid "errors.media-too-large" msgstr "Onyinyo a ebuka ibu maka itinye ." -#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs +#: src/app/main/data/media.cljs:68, src/app/main/data/workspace/media.cljs:187 msgid "errors.media-type-mismatch" msgstr "Dị ka ihe dị na onyinyo adabaghị na mgbatị ederede." -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:574 msgid "errors.member-is-muted" msgstr "" "Nchịkọta gị nwere ozi-n mechiri emechi (akụkọ ozi-n adịghị mma ma ọ bụ " "nwere oké bịaghachiri )." +#: src/app/main/data/users.cljs:703, src/app/main/ui/auth/login.cljs:97, src/app/main/ui/auth/login.cljs:105 msgid "errors.profile-blocked" msgstr "A gbachiri nchịkọta agbachi" -#: src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/settings/change_email.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/auth/recovery_request.cljs:60, src/app/main/ui/dashboard/team.cljs:164, src/app/main/ui/dashboard/team.cljs:570, src/app/main/ui/settings/change_email.cljs:50 msgid "errors.profile-is-muted" msgstr "" "Nchịkọta gị lnwere ozi-n mechiri emechi(akụkọ ozi-n adịghị mma ma ọ bụ " "nwere oké bịaghachiri ).\")." -#: src/app/main/ui/auth/register.cljs +#: src/app/main/data/users.cljs:701, src/app/main/ui/auth/register.cljs:60 msgid "errors.registration-disabled" msgstr "Ndebanye merụrụ emerụ ugbu a." +#: src/app/main/ui/dashboard/sidebar.cljs:365, src/app/main/ui/dashboard/team.cljs:359 msgid "errors.team-leave.insufficient-members" msgstr "Ndị otu ezughị okè ịhapụ otu, ọ nyere ike na ị chọrọ ihichapụ ya ." +#: src/app/main/ui/dashboard/sidebar.cljs:368, src/app/main/ui/dashboard/team.cljs:362 msgid "errors.team-leave.member-does-not-exists" msgstr "Onye otu ị na-achọ inye adịghị ." +#: src/app/main/ui/dashboard/sidebar.cljs:371, src/app/main/ui/dashboard/team.cljs:365 msgid "errors.team-leave.owner-cant-leave" msgstr "O wee enweghị ike ịhapụ otu, ị ga-enyegharịrị ọrụ onwee." -#: src/app/main/data/media.cljs, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs +#: src/app/main/data/media.cljs:71 msgid "errors.unexpected-error" msgstr "Ndejo atughị anya ya pụtara ." -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:60 msgid "errors.unexpected-token" msgstr "Ọdịmara amaghị ama" +#: src/app/main/ui/dashboard/team.cljs:796 msgid "errors.webhooks.connection" msgstr "Mmejọ, e nwetaghị URL" +#: src/app/main/ui/dashboard/team.cljs:790 msgid "errors.webhooks.invalid-uri" msgstr "URL enweghị nkwado ." +#: src/app/main/ui/dashboard/team.cljs:792, src/app/main/ui/dashboard/team.cljs:952 msgid "errors.webhooks.ssl-validation" msgstr "Mmejọ na nkwado SSL ." +#: src/app/main/ui/dashboard/team.cljs:794 msgid "errors.webhooks.timeout" msgstr "Oge ezuola" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:109, src/app/main/ui/auth/login.cljs:113 msgid "errors.wrong-credentials" msgstr "Ozi-na ma ọ bụ akara mpịbanye adịghị mma ." -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:25 msgid "errors.wrong-old-password" msgstr "Akara mpịbanye ochie adịghị mma" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:77 msgid "feedback.description" msgstr "Nkọwa" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:95 msgid "feedback.discourse-go-to" msgstr "Gaa n'ebe ite mkpịsị" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:89 msgid "feedback.discourse-subtitle1" msgstr "" "Obi dị anyị añụrị ịhụ gị ebea. Ọ bụrụ na enyemaka dị mkpa , biko chọọ tupu " "ị ịga ozi ." -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:88 msgid "feedback.discourse-title" msgstr "Ogbe Ite mkpịsị" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:72 msgid "feedback.subject" msgstr "Isiokwu" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:69 msgid "feedback.subtitle" msgstr "" "Biko, kọwaa ihe isi ozi-n gị , kwuo ma ọ bụ nsogbu , ncheputara ma ọ bụ " "ekaenyeghị. Onye otu anyị ga-azaghachi ozugbo ọ nwere ike ." -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:68 msgid "feedback.title" msgstr "Ozi- n" -#: src/app/main/ui/settings/feedback.cljs -#, fuzzy +#: src/app/main/ui/settings/feedback.cljs:105 msgid "feedback.twitter-go-to" msgstr "Gaa na Twita" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:99 msgid "feedback.twitter-subtitle1" msgstr "Ebe inyere gị aka n'ajụjụ nkà gị ." -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:30 msgid "generic.error" msgstr "Mmehie apụtala" -#: src/app/main/ui/inspect/attributes/blur.cljs +#: src/app/main/ui/viewer/inspect/attributes/blur.cljs:26 msgid "inspect.attributes.blur" msgstr "Inyogo" -#: src/app/main/ui/inspect/attributes/blur.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:115 msgid "inspect.attributes.blur.value" msgstr "Uru" -#: src/app/main/ui/inspect/attributes/common.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:112 msgid "inspect.attributes.color.hex" msgstr "HEX" -#: src/app/main/ui/inspect/attributes/common.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:114 msgid "inspect.attributes.color.hsla" msgstr "HSLA" -#: src/app/main/ui/inspect/attributes/common.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:113 msgid "inspect.attributes.color.rgba" msgstr "RGBA" -#: src/app/main/ui/inspect/attributes/fill.cljs +#: src/app/main/ui/viewer/inspect/attributes/fill.cljs:57 msgid "inspect.attributes.fill" msgstr "Wunye" -#: src/app/main/ui/inspect/attributes/image.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:99, src/app/main/ui/viewer/inspect/attributes/image.cljs:51 msgid "inspect.attributes.image.download" msgstr "Butuo onyinyo nsina" -#: src/app/main/ui/inspect/attributes/image.cljs +#: src/app/main/ui/viewer/inspect/attributes/image.cljs:39 msgid "inspect.attributes.image.height" msgstr "Ogo" -#: src/app/main/ui/inspect/attributes/image.cljs +#: src/app/main/ui/viewer/inspect/attributes/image.cljs:32 msgid "inspect.attributes.image.width" msgstr "Uhie" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout" msgstr "Mpụta" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.height" msgstr "Ogo" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.left" msgstr "Aka ekpe" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.rotation" msgstr "Ntụgharị" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.top" msgstr "Elu" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.width" msgstr "Uhie" -#: src/app/main/ui/inspect/attributes/shadow.cljs +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:57 msgid "inspect.attributes.shadow" msgstr "Oninyo" -#: src/app/main/ui/inspect/attributes/layout.cljs +#: src/app/main/ui/viewer/inspect/attributes/geometry.cljs:40 msgid "inspect.attributes.size" msgstr "Nhazi na ọnọdụ" -#: src/app/main/ui/inspect/attributes/stroke.cljs +#: src/app/main/ui/viewer/inspect/attributes/stroke.cljs:52 msgid "inspect.attributes.stroke" msgstr "Akara" -#, permanent +#, permanent, unused msgid "inspect.attributes.stroke.alignment.center" msgstr "Etiti" -#, permanent +#, permanent, unused msgid "inspect.attributes.stroke.alignment.inner" msgstr "Ime" -#, permanent +#, permanent, unused msgid "inspect.attributes.stroke.alignment.outer" msgstr "Ezi" +#, unused msgid "inspect.attributes.stroke.style.dotted" msgstr "Atụrụ kpọm kpọm" +#, unused msgid "inspect.attributes.stroke.style.mixed" msgstr "Gwakọtara" +#, unused msgid "inspect.attributes.stroke.style.none" msgstr "Ncha ncha" +#, unused msgid "inspect.attributes.stroke.style.solid" msgstr "Akpụrụka" #: src/app/main/ui/inspect/attributes/stroke.cljs +#, unused msgid "inspect.attributes.stroke.width" msgstr "Uhie" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:81, src/app/main/ui/viewer/inspect/attributes/text.cljs:194 msgid "inspect.attributes.typography" msgstr "Akara nkụpụta" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:89 msgid "inspect.attributes.typography.font-family" msgstr "Ezinụlọ mkpụrụ edide" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:107 msgid "inspect.attributes.typography.font-size" msgstr "Nhazi mkpụrụ edide" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:134 msgid "inspect.attributes.typography.letter-spacing" msgstr "Ndesa mkpụrụ edemede" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:125 msgid "inspect.attributes.typography.line-height" msgstr "Ogo akara" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:143 msgid "inspect.attributes.typography.text-decoration" msgstr "Nkwazi ederede" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:145 msgid "inspect.attributes.typography.text-decoration.none" msgstr "Ncha ncha" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:146 msgid "inspect.attributes.typography.text-decoration.strikethrough" msgstr "Kụọgafee" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:147 msgid "inspect.attributes.typography.text-decoration.underline" msgstr "N'okpuru" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:156 msgid "inspect.attributes.typography.text-transform" msgstr "Mgbanwe ederede" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:159 msgid "inspect.attributes.typography.text-transform.none" msgstr "None" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:160 msgid "inspect.attributes.typography.text-transform.titlecase" msgstr "Mkpụrụ edemede isiokwu" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:161 msgid "inspect.attributes.typography.text-transform.uppercase" msgstr "Mkpụrụ edemede nnukwu" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:140 msgid "inspect.empty.help" msgstr "" "Ị chọọ ị ma ihe ndị ọzọ maka nnyocha esereese, gaa n'ebe enyemaka ite " "mkpịsị r" -#: src/app/main/ui/inspect/right_sidebar.cljs +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:125 msgid "inspect.tabs.code" msgstr "Akara" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:98 msgid "inspect.tabs.code.selected.circle" msgstr "Okirikiri" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:99 msgid "inspect.tabs.code.selected.component" msgstr "Ndịna" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:100 msgid "inspect.tabs.code.selected.curve" msgstr "Nrọgọ" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:101 msgid "inspect.tabs.code.selected.frame" msgstr "Ogwe." +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:102 msgid "inspect.tabs.code.selected.group" msgstr "Otu" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:103 msgid "inspect.tabs.code.selected.image" msgstr "Onyinyo" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:104 msgid "inspect.tabs.code.selected.mask" msgstr "kpuchie" -#: src/app/main/ui/inspect/right_sidebar.cljs +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:93 msgid "inspect.tabs.code.selected.multiple" msgstr "%s a họrọ" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:105 msgid "inspect.tabs.code.selected.path" msgstr "Ụzọ" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:106 msgid "inspect.tabs.code.selected.rect" msgstr "Rekụtagụlụ" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:107 msgid "inspect.tabs.code.selected.svg-raw" msgstr "SVG" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:108 msgid "inspect.tabs.code.selected.text" msgstr "Ederede" -#: src/app/main/ui/inspect/right_sidebar.cljs +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:115 msgid "inspect.tabs.info" msgstr "Ozi" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:158 msgid "label.shortcuts" msgstr "Ụzọ mkpirisi" +#: src/app/main/ui/dashboard/import.cljs:527 msgid "labels.accept" msgstr "Nabata" -#: src/app/main/ui/settings/sidebar.cljs +#: src/app/main/ui/settings/sidebar.cljs:100 msgid "labels.access-tokens" msgstr "Nweta ọdịmara gasị" +#: src/app/main/ui/dashboard/team.cljs:968 msgid "labels.active" msgstr "Gara gara" +#: src/app/main/ui/dashboard/fonts.cljs:175 msgid "labels.add-custom-font" msgstr "Tinye mkpụrụ edide a haziri ahazi" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:120, src/app/main/ui/dashboard/team.cljs:276, src/app/main/ui/dashboard/team.cljs:519, src/app/main/ui/dashboard/team.cljs:549, src/app/main/ui/onboarding/team_choice.cljs:67 msgid "labels.admin" msgstr "Ọchịkwa" +#: src/app/main/ui/onboarding/questions.cljs:174 +msgid "labels.adobe-xd" +msgstr "Ngwa nrụkọrịta ọrụ Adobe" + #: src/app/main/ui/workspace/comments.cljs +#, unused msgid "labels.all" msgstr "Ha niile" +#: src/app/main/ui/auth.cljs:37 msgid "labels.and" msgstr "na" +#: src/app/main/ui/onboarding/team_choice.cljs:162 msgid "labels.back" msgstr "Azụ" -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:58 msgid "labels.bad-gateway.main-message" msgstr "Ajọ ụzọ mbanye" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/data/common.cljs:112, src/app/main/ui/dashboard/change_owner.cljs:69, src/app/main/ui/dashboard/import.cljs:514, src/app/main/ui/dashboard/team.cljs:868, src/app/main/ui/delete_shared.cljs:35, src/app/main/ui/export.cljs:164, src/app/main/ui/export.cljs:460, src/app/main/ui/settings/access_tokens.cljs:188, src/app/main/ui/viewer/share_link.cljs:203, src/app/main/ui/workspace/sidebar/assets/groups.cljs:149 msgid "labels.cancel" msgstr "Kagbuo" +#: src/app/main/ui/onboarding/questions.cljs:176 +msgid "labels.canva" +msgstr "Kanva" + +#: src/app/main/ui/dashboard/projects.cljs:93, src/app/main/ui/export.cljs:478, src/app/main/ui/settings/access_tokens.cljs:183, src/app/main/ui/viewer/login.cljs:77, src/app/main/ui/viewer/share_link.cljs:174, src/app/main/ui/workspace/libraries.cljs:522 msgid "labels.close" msgstr "Megbuo" -#: src/app/main/ui/dashboard/comments.cljs +#: src/app/main/ui/dashboard/comments.cljs:104, src/app/main/ui/viewer/comments.cljs:70, src/app/main/ui/workspace/comments.cljs:126 msgid "labels.comments" msgstr "Okwu gasị" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:985, src/app/main/ui/workspace/main_menu.cljs:110 msgid "labels.community" msgstr "Ogbe" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:103 msgid "labels.confirm-password" msgstr "Nabata akara mpịbanye" +#: src/app/main/ui/dashboard/import.cljs:520, src/app/main/ui/export.cljs:465, src/app/main/ui/onboarding/newsletter.cljs:101 msgid "labels.continue" msgstr "Ga n'ihu" +#, unused msgid "labels.continue-with" msgstr "Gaa n'ihu" +#: src/app/main/ui/viewer/login.cljs:75 msgid "labels.continue-with-penpot" msgstr "I Nwere Ike ịganihu" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:642 msgid "labels.copy-invitation-link" msgstr "Dọrọ njikọ" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:157, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:190 msgid "labels.create" msgstr "Meputa" -#: src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/dashboard/team_form.cljs +#: src/app/main/ui/dashboard/team_form.cljs:101, src/app/main/ui/dashboard/team_form.cljs:121 msgid "labels.create-team" msgstr "Mepee otu ọhụrụ" +#, unused msgid "labels.custom-fonts" msgstr "mkpụrụ edide a haziri" -#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:306, src/app/main/ui/dashboard/fonts.cljs:255, src/app/main/ui/dashboard/fonts.cljs:332, src/app/main/ui/dashboard/fonts.cljs:346, src/app/main/ui/dashboard/project_menu.cljs:115, src/app/main/ui/dashboard/team.cljs:904, src/app/main/ui/settings/access_tokens.cljs:209, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:209 msgid "labels.delete" msgstr "Hichaa" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:357 msgid "labels.delete-comment" msgstr "Hichaa okwu" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:354 msgid "labels.delete-comment-thread" msgstr "Hichapụ eri" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:648 msgid "labels.delete-invitation" msgstr "Hichapụ oku" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:262 msgid "labels.delete-multi-files" msgstr "Hichapụ ederede %s" -#: src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/files.cljs, src/app/main/ui/dashboard/files.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/onboarding/questions.cljs:250 +msgid "labels.developer" +msgstr "Onye nrụpụta" + +#: src/app/main/ui/dashboard/file_menu.cljs:28, src/app/main/ui/dashboard/files.cljs:72, src/app/main/ui/dashboard/files.cljs:156, src/app/main/ui/dashboard/projects.cljs:220, src/app/main/ui/dashboard/projects.cljs:224, src/app/main/ui/dashboard/sidebar.cljs:791 msgid "labels.drafts" msgstr "Ndesita" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:350, src/app/main/ui/dashboard/fonts.cljs:252, src/app/main/ui/dashboard/team.cljs:902, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:205 msgid "labels.edit" msgstr "Dezie" +#, unused msgid "labels.edit-file" msgstr "Dezie ederede" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:118, src/app/main/ui/dashboard/team.cljs:279, src/app/main/ui/dashboard/team.cljs:520, src/app/main/ui/dashboard/team.cljs:553, src/app/main/ui/onboarding/team_choice.cljs:66 msgid "labels.editor" msgstr "Odezi" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:661 msgid "labels.expired-invitation" msgstr "Mebiri" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:51 msgid "labels.feedback-disabled" msgstr "Nzaghachi merụrụ emeru" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:42 msgid "labels.feedback-sent" msgstr "Zigara nzaghachi" +#: src/app/main/ui/onboarding/questions.cljs:170 +msgid "labels.figma" +msgstr "Ihe onyonyo" + +#: src/app/main/ui/dashboard/fonts.cljs:412 msgid "labels.font-family" msgstr "Ezinụlọ mkpụrụ edide" +#, unused msgid "labels.font-providers" msgstr "Ndị na-enye mkpụrụ edide" +#: src/app/main/ui/dashboard/fonts.cljs:413 msgid "labels.font-variants" msgstr "Ụdịdị gasị" +#: src/app/main/ui/dashboard/fonts.cljs:52, src/app/main/ui/dashboard/sidebar.cljs:811 msgid "labels.fonts" msgstr "Mkpụrụ edide gasị" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/onboarding/questions.cljs:263 +msgid "labels.founder" +msgstr "Onye malitere /VP" + +#: src/app/main/ui/onboarding/questions.cljs:262 +msgid "labels.freelancer" +msgstr "Onye nwere onwe ya" + +#: src/app/main/ui/dashboard/sidebar.cljs:1015, src/app/main/ui/workspace/main_menu.cljs:142 msgid "labels.github-repo" msgstr "Ọ a Github" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:1032, src/app/main/ui/settings/sidebar.cljs:113, src/app/main/ui/workspace/main_menu.cljs:171 msgid "labels.give-feedback" msgstr "Nye nzaghachi" +#: src/app/main/ui/auth/recovery_request.cljs:110, src/app/main/ui/auth/register.cljs:285, src/app/main/ui/viewer/login.cljs:117 msgid "labels.go-back" msgstr "Gaa azụ" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:978, src/app/main/ui/workspace/main_menu.cljs:102 msgid "labels.help-center" msgstr "Ebe enyemaka" -#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/comments.cljs:103, src/app/main/ui/workspace/comments.cljs:67 msgid "labels.hide-resolved-comments" msgstr "Zoo nkwupụta e kpebiri" +#: src/app/main/ui/dashboard/team.cljs:969 msgid "labels.inactive" msgstr "Arụghị ọrụ" +#: src/app/main/ui/dashboard/fonts.cljs:410 msgid "labels.installed-fonts" msgstr "Mkpụrụ edide gasị ewubere" -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:144 msgid "labels.internal-error.desc-message" msgstr "Ihe ọjọọ mere . Biko, rụgharịa ọrụ ma ọ bụ na nsogbu aka dị , kpọọ nkwado ." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:143 msgid "labels.internal-error.main-message" msgstr "Nrụjọ ndịnime" -#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/onboarding/questions.cljs:178 +msgid "labels.invision" +msgstr "Mmakpo" + +#: src/app/main/ui/dashboard/sidebar.cljs:516, src/app/main/ui/dashboard/team.cljs:89, src/app/main/ui/dashboard/team.cljs:97, src/app/main/ui/dashboard/team.cljs:708 msgid "labels.invitations" msgstr "Akwụkwọ ịkpọ ọkụ gasị" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:51 msgid "labels.language" msgstr "Asụsụ" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:1008, src/app/main/ui/workspace/main_menu.cljs:134 msgid "labels.libraries-and-templates" msgstr "Ọba ederede na Ndebiri gasị" +#: src/app/main/ui/viewer/header.cljs:203 msgid "labels.log-or-sign" msgstr "Banye ma ọ bụ debanye" -#: src/app/main/ui/settings.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:1040 msgid "labels.logout" msgstr "Pụọ" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/onboarding/questions.cljs:253 +msgid "labels.marketing" +msgstr "Ịzụ ahịa" + +#: src/app/main/ui/dashboard/team.cljs:468 msgid "labels.member" msgstr "Onye otu" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:510, src/app/main/ui/dashboard/team.cljs:87, src/app/main/ui/dashboard/team.cljs:95 msgid "labels.members" msgstr "Ndị otu" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:96 msgid "labels.new-password" msgstr "Akara mpịbanye ọhụrụ" -#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/dashboard/comments.cljs +#: src/app/main/ui/dashboard/templates.cljs:269, src/app/main/ui/onboarding/questions.cljs:55 +msgid "labels.next" +msgstr "Ọzọ" + +#: src/app/main/ui/dashboard/comments.cljs:128, src/app/main/ui/workspace/comments.cljs:161 msgid "labels.no-comments-available" msgstr "E jidere unu niile! Ngosi nkwupụta ọhụrụ ga-apụta ebe a ." -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:694 msgid "labels.no-invitations" msgstr "E nweghị ọkụ na-echere" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:696 #, markdown msgid "labels.no-invitations-hint" msgstr "Pịa mpị**kpọọ ndị mmadụ ** ịkpọọ ndị mmadụ n'otu a." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:50 msgid "labels.not-found.desc-message" msgstr "Ihu akwụkwọ a nwere ike ọ gaghị adị ma ọ bụ ị nweghị ikikere inweta ya ." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:49 msgid "labels.not-found.main-message" msgstr "E wuu !" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:89 msgid "labels.old-password" msgstr "Akara mpịbanye ochie" #: src/app/main/ui/workspace/comments.cljs +#, unused msgid "labels.only-yours" msgstr "Sọọsọ nke gị" +#, unused msgid "labels.or" msgstr "ma ọ bụ" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/onboarding/questions.cljs:145, src/app/main/ui/onboarding/questions.cljs:214, src/app/main/ui/onboarding/questions.cljs:303, src/app/main/ui/onboarding/questions.cljs:316, src/app/main/ui/onboarding/questions.cljs:389, src/app/main/ui/onboarding/questions.cljs:447 +msgid "labels.other" +msgstr "Ọzọ (zipụta)" + +#: src/app/main/ui/dashboard/team.cljs:286, src/app/main/ui/dashboard/team.cljs:518, src/app/main/ui/dashboard/team.cljs:1076 msgid "labels.owner" msgstr "Onye nwe" -#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/settings/sidebar.cljs:87 msgid "labels.password" msgstr "Akara mpịbanye" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:662 msgid "labels.pending-invitation" msgstr "Na-echere" -#: src/app/main/ui/settings/sidebar.cljs +#: src/app/main/ui/onboarding/questions.cljs:254 +msgid "labels.product-management" +msgstr "Onye njikwa ngwaahịa ma ọ bụ arụmarụ" + +#: src/app/main/ui/settings/profile.cljs:118, src/app/main/ui/settings/sidebar.cljs:82 msgid "labels.profile" msgstr "Nchịkọta" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:784 msgid "labels.projects" msgstr "Ọrụ gasị" -#: src/app/main/ui/settings/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:998, src/app/main/ui/settings/sidebar.cljs:106, src/app/main/ui/workspace/main_menu.cljs:126 msgid "labels.release-notes" msgstr "Wepụta ndetu" #: src/app/main/ui/workspace.cljs +#, unused msgid "labels.reload-file" msgstr "Bugharịa ederede" #: src/app/main/ui/workspace/libraries.cljs, src/app/main/ui/dashboard/team.cljs +#, unused msgid "labels.remove" msgstr "Wepu" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:316 msgid "labels.remove-member" msgstr "Wepụ onye otu" -#: src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:271, src/app/main/ui/dashboard/project_menu.cljs:85, src/app/main/ui/dashboard/sidebar.cljs:539, src/app/main/ui/workspace/sidebar/assets/groups.cljs:157 msgid "labels.rename" msgstr "Nyegharịa aha" -#: src/app/main/ui/dashboard/team_form.cljs +#: src/app/main/ui/dashboard/team_form.cljs:99 msgid "labels.rename-team" msgstr "Nyegharịa otu" -#: src/app/main/ui/static.cljs, src/app/main/ui/static.cljs, src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:61, src/app/main/ui/static.cljs:70, src/app/main/ui/static.cljs:148 msgid "labels.retry" msgstr "Nwagharịa" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:469, src/app/main/ui/dashboard/team.cljs:709 msgid "labels.role" msgstr "Ọrụ" +#: src/app/main/ui/dashboard/fonts.cljs:380, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:191 msgid "labels.save" msgstr "Dokwa" +#: src/app/main/ui/dashboard/fonts.cljs:415 msgid "labels.search-font" msgstr "Chọọ mkpụrụ edide" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/onboarding/questions.cljs:90, src/app/main/ui/onboarding/questions.cljs:248, src/app/main/ui/onboarding/questions.cljs:259, src/app/main/ui/onboarding/questions.cljs:270 +msgid "labels.select-option" +msgstr "Họrọ nhọ" + +#: src/app/main/ui/settings/feedback.cljs:82 msgid "labels.send" msgstr "Ziga" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:82 msgid "labels.sending" msgstr "Na-eziga…" -#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:530, src/app/main/ui/dashboard/team.cljs:88, src/app/main/ui/dashboard/team.cljs:102, src/app/main/ui/settings/options.cljs:84, src/app/main/ui/settings/sidebar.cljs:93 msgid "labels.settings" msgstr "Ntọala" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:800 msgid "labels.shared-libraries" msgstr "Ọba ederede" -#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/comments.cljs:82, src/app/main/ui/workspace/comments.cljs:55, src/app/main/ui/workspace/comments.cljs:135 msgid "labels.show-all-comments" msgstr "Gosi nkwupụta niile" +#: src/app/main/ui/viewer/comments.cljs:115 msgid "labels.show-comments-list" msgstr "Gosi ndepụta nkwupụta gasị" -#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/comments.cljs:91, src/app/main/ui/workspace/comments.cljs:61, src/app/main/ui/workspace/comments.cljs:136 msgid "labels.show-your-comments" msgstr "Gosi nanị nkwupụta gị gasị" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/onboarding/questions.cljs:172 +msgid "labels.sketch" +msgstr "Eserese" + +#: src/app/main/ui/onboarding/questions.cljs:56 +msgid "labels.start" +msgstr "Bido" + +#: src/app/main/ui/dashboard/team.cljs:710 msgid "labels.status" msgstr "Ọnọdụ" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/onboarding/questions.cljs:251 +msgid "labels.student-teacher" +msgstr "Nwata akwụkwọ ma ọ bụ onye nkụzi" + +#: src/app/main/ui/dashboard/sidebar.cljs:992, src/app/main/ui/workspace/main_menu.cljs:118 msgid "labels.tutorials" msgstr "Nkuzi" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:256 msgid "labels.unpublish-multi-files" msgstr "%s ederede ebipụtaghị" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:103 msgid "labels.update" msgstr "Hazigharịa" -#: src/app/main/ui/dashboard/team_form.cljs +#: src/app/main/ui/dashboard/team_form.cljs:120 msgid "labels.update-team" msgstr "Hazigharịa otu" +#: src/app/main/ui/dashboard/fonts.cljs:241 msgid "labels.upload" msgstr "Bugo" +#: src/app/main/ui/dashboard/fonts.cljs:169 msgid "labels.upload-custom-fonts" msgstr "Bugo ederede gasị ahaziri" +#: src/app/main/ui/dashboard/fonts.cljs:240 msgid "labels.uploading" msgstr "Na-ebugo…" +#: src/app/main/ui/workspace/sidebar/sitemap.cljs:223 msgid "labels.view-only" msgstr "Sọọsọ nkiri" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:123, src/app/main/ui/dashboard/team.cljs:282, src/app/main/ui/dashboard/team.cljs:521 msgid "labels.viewer" msgstr "Ndị nkiri" +#: src/app/main/ui/dashboard/sidebar.cljs:523, src/app/main/ui/dashboard/team.cljs:90, src/app/main/ui/dashboard/team.cljs:100, src/app/main/ui/dashboard/team.cljs:880 msgid "labels.webhooks" msgstr "Nko-ududọ" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:194 msgid "labels.write-new-comment" msgstr "Dee nkwupụta ọhụrụ" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/team.cljs:237 msgid "labels.you" msgstr "(gị)" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:968 msgid "labels.your-account" msgstr "Akara mbata gị" -#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs +#: src/app/main/data/media.cljs:49, src/app/main/data/workspace/media.cljs:223, src/app/main/data/workspace/media.cljs:453 msgid "media.loading" msgstr "Na-ebupụta onyinyo …" +#: src/app/main/data/common.cljs:111 msgid "modals.add-shared-confirm-empty.hint" msgstr "" "E nweghị ihe dị n'ọba ederede gị. \"Ozugbo e tinyere dị ka ọba ederede " "ekekoritara, ngwongwo ị mepere ga a dị maka iji ya rụọ ọrụ n'edemede gị ndị " "ọzọ niile. Ọ kara gị obi na ị chọrọ ị bipụta ya?" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/data/common.cljs:113 msgid "modals.add-shared-confirm.accept" msgstr "Tinye ka ọba ederede Kekoritara" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/data/common.cljs:111 msgid "modals.add-shared-confirm.hint" msgstr "" ".Ozugbo e tinyere dị ka ọba ederede ekekoritara, ngwongwo ị mepere ga a dị " "maka iji ya rụọ ọrụ n'edemede gị ndị ọzọ niile." -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/data/common.cljs:110 msgid "modals.add-shared-confirm.message" msgstr "Tinye “%s” dị ka ọba ederede ekekoritara" -#: src/app/main/ui/workspace/nudge.cljs +#: src/app/main/ui/workspace/nudge.cljs:60 msgid "modals.big-nudge" msgstr "nnukwu nkpatụ" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:136 msgid "modals.change-email.submit" msgstr "Gbanwee ozi nl" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:142 msgid "modals.create-access-token.expiration-date.label" msgstr "Ụbọchị mmebi" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:136 msgid "modals.create-access-token.name.label" msgstr "Aha" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:191 msgid "modals.create-access-token.submit-label" msgstr "Create token" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:123 msgid "modals.create-access-token.title" msgstr "Mepụta ọdịmara nweta" +#: src/app/main/ui/dashboard/team.cljs:873 msgid "modals.create-webhook.submit-label" msgstr "Mebe nko - ududo" +#: src/app/main/ui/dashboard/team.cljs:838 msgid "modals.create-webhook.title" msgstr "Mebe nko-ududo" +#: src/app/main/ui/dashboard/team.cljs:849 msgid "modals.create-webhook.url.label" msgstr "Isi ozi URL" +#: src/app/main/ui/dashboard/team.cljs:850 msgid "modals.create-webhook.url.placeholder" msgstr "https://ọmụmaaụ.com/ozi anabara" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:271 msgid "modals.delete-acces-token.accept" msgstr "Hichapụ ọdịmara" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:269 msgid "modals.delete-acces-token.title" msgstr "Hichapụ ọdịmara" -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:59 msgid "modals.delete-account.cancel" msgstr "Kagbuo ma dobe ebe ntinye ihe m" -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:64 msgid "modals.delete-account.confirm" msgstr "Eee, hichapụ ebe ntinye ihe m" -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:53 msgid "modals.delete-account.info" msgstr "" "Site na iwepu ebe ntinye ihe gị, arụmarụ gị gasị ugbu a naebe nchekwa " "ga-efu ." -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:46 msgid "modals.delete-account.title" msgstr "Ọ kara gị obi na ị chọrọ ị hichapụ ebe ntinye ihe gị?" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:298 msgid "modals.delete-comment-thread.accept" msgstr "Hichapụ mkparịtaụka" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:297 msgid "modals.delete-comment-thread.message" msgstr "Ọ kara gị obi na ị chọrọ ị hichapụ mkparịtaụka a?" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:296 msgid "modals.delete-comment-thread.title" msgstr "Hichaa mkparịtaụka" +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:140 msgid "modals.delete-component-annotation.message" msgstr "Ọ kara gị obi na ị chọrọ ị hichapụ nkọwa ?" +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:139 msgid "modals.delete-component-annotation.title" msgstr "Hichapụ nkọwa" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:123 msgid "modals.delete-file-confirm.accept" msgstr "Hichapụ ederede" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:122 msgid "modals.delete-file-confirm.message" msgstr "Ọ kara gị obi na ị chọrọ ị hichapụ ederede ?" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:121 msgid "modals.delete-file-confirm.title" msgstr "Na-ehichapụ ederede" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:115 msgid "modals.delete-file-multi-confirm.title" msgstr "Na-ehichapụ ederede %s" +#: src/app/main/ui/dashboard/fonts.cljs:330 msgid "modals.delete-font.title" msgstr "Na-ehichapụ mkpụrụ edide" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs +#: src/app/main/ui/workspace/context_menu.cljs:522, src/app/main/ui/workspace/sidebar/sitemap.cljs:45 msgid "modals.delete-page.body" msgstr "Ọ kara gị obi na ị chọrọ ị hichapụ ihu akwụkwọ a?" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs +#: src/app/main/ui/workspace/context_menu.cljs:521, src/app/main/ui/workspace/sidebar/sitemap.cljs:44 msgid "modals.delete-page.title" msgstr "Hichapụ ihu akwụkwọ" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:69 msgid "modals.delete-project-confirm.accept" msgstr "Hichapụ arụmarụ" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:68 msgid "modals.delete-project-confirm.message" msgstr "Ọ kara gị obi na ị chọrọ ị hichapụ arụmarụ ?" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:67 msgid "modals.delete-project-confirm.title" msgstr "Hichapụ arụmarụ" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:435 msgid "modals.delete-team-confirm.accept" msgstr "Hichapụ otu" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:434 msgid "modals.delete-team-confirm.message" msgstr "" "Ọ kara gị obi na ị chọrọ ị hichapụ otu? ARỤMARỤ na ederede nille gasị " "gbasara otú ga-ehichapụ kpam kpam" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:433 msgid "modals.delete-team-confirm.title" msgstr "Na-ehichapụ otu" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:427 msgid "modals.delete-team-member-confirm.accept" msgstr "Hichapụ onye otu" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:426 msgid "modals.delete-team-member-confirm.message" msgstr "Ọ kara gị obi na ị chọrọ ị hichapụ onye otu n'otu a?" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:425 msgid "modals.delete-team-member-confirm.title" msgstr "Hichapụ onye otu" +#: src/app/main/ui/dashboard/team.cljs:942 msgid "modals.delete-webhook.accept" msgstr "Hichapụ nko-ududọ" +#: src/app/main/ui/dashboard/team.cljs:941 msgid "modals.delete-webhook.message" msgstr "Ọ kara gị obi na ị chọrọ ị hichapụ nko-ududọ ?" +#: src/app/main/ui/dashboard/team.cljs:940 msgid "modals.delete-webhook.title" msgstr "Na-ehichapụ nko-ududo" +#: src/app/main/ui/dashboard/team.cljs:872 msgid "modals.edit-webhook.submit-label" msgstr "Dezie nko-ududo" +#: src/app/main/ui/dashboard/team.cljs:837 msgid "modals.edit-webhook.title" msgstr "Dezie nko-ududo" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:218 msgid "modals.invite-member-confirm.accept" msgstr "Ziga akwụkwọ ozi mkpọta" +#: src/app/main/ui/dashboard/team.cljs:213, src/app/main/ui/onboarding/team_choice.cljs:156 msgid "modals.invite-member.emails" msgstr "Ozi-n gasị, Rịkọm e kewara" +#: src/app/main/ui/dashboard/team.cljs:197 msgid "modals.invite-member.repeated-invitation" msgstr "Ụfọdụ ozi n sitere na ndị ugbu a A gaghị e ịga akwụkwọ ozi mkpọta ha" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:190 msgid "modals.invite-team-member.title" msgstr "kpọta ndị otu n'otu a" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:423, src/app/main/ui/dashboard/team.cljs:393 msgid "modals.leave-and-close-confirm.hint" msgstr "" "Etu ị bụ sọọ otu onye otu , a ga e hichapụ otu a ya n'ọrụ na ederede ya " "gasịits projects and files." -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:422, src/app/main/ui/dashboard/team.cljs:392 msgid "modals.leave-and-close-confirm.message" msgstr "Ọ kara gị obi na ị chọrọ ịhapụ otu %s ?" +#: src/app/main/ui/dashboard/change_owner.cljs:59 msgid "modals.leave-and-reassign.forbidden" msgstr "" "I nweghị ike ịhapụ otu ma ọ bụrụ na e nweghị onye otu ọzọ akwalitere ga na " "onye nwe ya . Ị nwere ike chọọ ị hichapụ otu ." -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/change_owner.cljs:55 msgid "modals.leave-and-reassign.hint1" msgstr "" "Gị bụ onye nwee otu a, . Biko, họrọ onye otu ọzọ maka ịkwalite gana onye " "nweeya tupu ị hapụ ." -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/change_owner.cljs:78 msgid "modals.leave-and-reassign.promote-and-leave" msgstr "Kwalite ma hapụ" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/change_owner.cljs:34 msgid "modals.leave-and-reassign.select-member-to-promote" msgstr "Họrọ onye otu maka ịkwalite" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/change_owner.cljs:49 msgid "modals.leave-and-reassign.title" msgstr "Tupu ị hapụ" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:402, src/app/main/ui/dashboard/sidebar.cljs:424, src/app/main/ui/dashboard/team.cljs:394, src/app/main/ui/dashboard/team.cljs:416 msgid "modals.leave-confirm.accept" msgstr "Hapụ otu" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:401, src/app/main/ui/dashboard/team.cljs:415 msgid "modals.leave-confirm.message" msgstr "Ọ kara gị obi na ịchọrọ ịhapụ otu ?" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:400, src/app/main/ui/dashboard/sidebar.cljs:421, src/app/main/ui/dashboard/team.cljs:391, src/app/main/ui/dashboard/team.cljs:414 msgid "modals.leave-confirm.title" msgstr "Nhapụ otu" -#: src/app/main/ui/workspace/nudge.cljs +#: src/app/main/ui/workspace/main_menu.cljs:266, src/app/main/ui/workspace/nudge.cljs:47 msgid "modals.nudge-title" msgstr "ọnụ ọgụgụ nkpatụ" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:339 msgid "modals.promote-owner-confirm.hint" msgstr "" "Ọ bụrụ na Inyefe onwunwe , ị ga-agbanwe ọrụ gị ka ọchikwa, ụfọdụ ikikere " "n'isi ndị otu na-efu " -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:338 msgid "modals.promote-owner-confirm.message" msgstr "" "G bụ onye nwe otu a ugbu a, Ọ doro gị anya na ị chọrọ ime%s Onye ọhụrụ nwe " "otu a?" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:337 msgid "modals.promote-owner-confirm.title" msgstr "Onye nwe otu ọhụrụ" +#: src/app/main/ui/workspace/libraries.cljs:188 msgid "modals.publish-empty-library.accept" msgstr "Biputa" +#: src/app/main/ui/workspace/libraries.cljs:187 msgid "modals.publish-empty-library.message" msgstr "Your library is empty. Are you sure you want to publish it?" +#: src/app/main/ui/workspace/libraries.cljs:186 msgid "modals.publish-empty-library.title" msgstr "Biputa ọba ederede efu" #: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "modals.remove-shared-confirm.accept" msgstr "Wepụ dịka ọba ederede ekekoritara" #: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "modals.remove-shared-confirm.hint" msgstr "" "Ozugbo e wepụrụ dị ka ọba ederede ekekoritara, ọba ederede ederede a " "ga-akwụsị dị n'ime ederede ndị ọzọ gasị e ji rụọ ọrụ" #: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "modals.remove-shared-confirm.message" msgstr "Wepu“%s” dịka ọba ederede ekekoritara" -#: src/app/main/ui/workspace/nudge.cljs +#: src/app/main/ui/workspace/nudge.cljs:53 msgid "modals.small-nudge" msgstr "kpatụ obere" #: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#, unused msgid "modals.update-remote-component-in-bulk.hint" msgstr "" "Ị na-achọ ịhazigharị ngwa gasị n'ọba ederede ekekoritara. Ihe nwere ike " "imetuta ederede ndị ọzọ ji ya arụ ọrụ" #: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#, unused msgid "modals.update-remote-component-in-bulk.message" msgstr "Update components in a shared library" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:380 msgid "modals.update-remote-component.accept" msgstr "Hazigharịa" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:379 msgid "modals.update-remote-component.cancel" msgstr "Kagbuo" -#: src/app/main/data/common.cljs +#: src/app/main/data/common.cljs:71 msgid "notifications.by-code.upgrade-version" msgstr "A new version is available, please refresh the page" -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:24 msgid "notifications.profile-deletion-not-allowed" msgstr "I nweghị ike ị hichapụ nchịkọta gị . Nyegharịa ya ndị otu gị tupu ị ganihu" -#: src/app/main/ui/settings/profile.cljs, src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:29, src/app/main/ui/settings/profile.cljs:35 msgid "notifications.profile-saved" msgstr "E dọkwara nchịkọta nke ọma" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:63 msgid "notifications.validation-email-sent" msgstr "Ozi nnyocha n zigara na%s. Mepe ozi n gị !" +#, unused msgid "onboarding-v2.before-start.desc1" msgstr "" "I kwesịrị ịma na e nwere ọtụtụ ihe e ji arụ ọrụ dị inwere gị iji bido n'ite " "mkpịsị , dị ka ntuziaka onye ọrụ na ọwa YouTube anyị l." +#, unused msgid "onboarding-v2.before-start.desc2" msgstr "" "Ozi banyere etu esi eji ite mkpịsị arụ ọrụ uju. Site na ime atụtụ ga na " "nhazi ma ọ bụ nkesa esereese ." +#, unused msgid "onboarding-v2.before-start.desc2.title" msgstr "Mkpanaka" +#, unused msgid "onboarding-v2.before-start.desc3" msgstr "Ị nwere ike ikiri amụmamụ anyị na amụmamụ nke ndị obodo anyị mere." +#, unused msgid "onboarding-v2.before-start.desc3.title" msgstr "Amụmamụ onyonyo" +#, unused msgid "onboarding-v2.before-start.title" msgstr "Tupu i bido" +#: src/app/main/ui/onboarding/newsletter.cljs:63 msgid "onboarding-v2.newsletter.desc" msgstr "" "Debanye aha n'akụkụ ozi ite mkpịsị iji nọrọ gam gam na ngwa ahịa aaga n'ihu " "mwulite na akụkọ ụwa." +#: src/app/main/ui/onboarding/newsletter.cljs:83 msgid "onboarding-v2.newsletter.news" msgstr "" "Zitere m akụkọ banyere ite mkpịsị (ozi edemonye gasị, Nkụzi ihe onyonyo, " "nkirigarị...)." +#: src/app/main/ui/onboarding/newsletter.cljs:91 msgid "onboarding-v2.newsletter.privacy1" msgstr "Anyị na-eche banyere nzochi onwe, ebe a inwere ike ịgụ..... anyị " +#: src/app/main/ui/onboarding/newsletter.cljs:97 msgid "onboarding-v2.newsletter.privacy2" msgstr "" "Anyị ga e zitere ozi n bara uru sọọsọ . Ị nwere ike idepu aha oge ọ bụla " "site na njikọ ndepu aha n'akwụkwọ ozi gasị anyị ọ bụla ." +#: src/app/main/ui/onboarding/newsletter.cljs:71 msgid "onboarding-v2.newsletter.updates" msgstr "" "Zitere m nhazigharị ngwa ahịa (a gwara ọhụrụ gasị , ihe ndị ewepụta gasịrị " ", ndo ị gasị..)." +#, unused msgid "onboarding-v2.welcome.desc1" msgstr "" "Ite mkpịsị bụ nsina ghere oghe ma bụrụ nke Kaleidos nakwa ndị obodo rụrụ " "Ebe ọtụtụ mmadụ nyewegoroa onwe anyị aka..Onye ọ bụla nwere arụkọrịtasite " "na :" +#, unused msgid "onboarding-v2.welcome.desc2" msgstr "" "Oghere ọha na ndị obodo niile na ndị otu ite mkpịsị kpọmkwem ịmụ, kesa ma " "kọwaa maka ite mkpịsị , ọnọdụ ya ugbu a na ọdịnihu ya" +#, unused msgid "onboarding-v2.welcome.desc3.title" msgstr "Ntụziaka inye aka" +#: src/app/main/ui/onboarding/team_choice.cljs:31 msgid "onboarding-v2.welcome.title" msgstr "Nabata ite mkpịsị !" +#: src/app/main/ui/onboarding/team_choice.cljs:215 msgid "onboarding.choice.team-up.create-team-desc" msgstr "I nye ha otu gị aha , I nwere ike ị kpọta ndị mmadụ ka ha sonye." +#: src/app/main/ui/onboarding/team_choice.cljs:224 msgid "onboarding.choice.team-up.create-team-placeholder" msgstr "Denye aha otu" +#: src/app/main/ui/dashboard/projects.cljs:89, src/app/main/ui/onboarding/team_choice.cljs:140 msgid "onboarding.choice.team-up.invite-members" msgstr "Kpọta ndị otu" +#: src/app/main/ui/onboarding/team_choice.cljs:141 msgid "onboarding.choice.team-up.invite-members-info" msgstr "" "Cheta ka itinye onye ọ bụla Ndị nzụlite, ndị nrụpụta, ndị njikwa... dị iche " "iche adds up :)" +#: src/app/main/ui/dashboard/team.cljs:202, src/app/main/ui/onboarding/team_choice.cljs:146 msgid "onboarding.choice.team-up.roles" msgstr "kpọta tinye ọrụ :" +#, unused msgid "onboarding.newsletter.accept" msgstr "Eee, debanye aha" +#: src/app/main/ui/onboarding/newsletter.cljs:40 msgid "onboarding.newsletter.acceptance-message" msgstr "E zigala arịrịọ ndenye aha gị , anyị ga-ezi tara gị ozi - n iji nabata ya" +#: src/app/main/ui/onboarding/newsletter.cljs:60 msgid "onboarding.newsletter.title" msgstr "Chọrọ inweta ozi ite mkpịsị ?" +#: src/app/main/ui/onboarding/questions.cljs:118 +msgid "onboarding.questions.lets-get-started" +msgstr "Ka anyị bido!" + +#: src/app/main/ui/onboarding/questions.cljs:307 +msgid "onboarding.questions.step3.question2" +msgstr "Gịnị bụ ọrụ gị ?" + +#: src/app/main/ui/onboarding/questions.cljs:320 +msgid "onboarding.questions.step3.question3" +msgstr "Kedụ ka otu gị ha?" + +#: src/app/main/ui/onboarding/questions.cljs:273 +msgid "onboarding.questions.team-size.11-30" +msgstr "Iri na otu ruo na iri atọ" + +#: src/app/main/ui/onboarding/questions.cljs:274 +msgid "onboarding.questions.team-size.2-10" +msgstr "Abụọ ruo na iri" + +#: src/app/main/ui/onboarding/questions.cljs:272 +msgid "onboarding.questions.team-size.31-50" +msgstr "Iri atọ na otu ruo na iri ise" + +#: src/app/main/ui/onboarding/questions.cljs:271 +msgid "onboarding.questions.team-size.more-than-50" +msgstr "Karịrị iri ise" + +#: src/app/main/ui/onboarding/questions.cljs:276 +msgid "onboarding.questions.team-size.personal-project" +msgstr "A na m arụ ọrụ n'arụmarụ onwe" + +#: src/app/main/ui/onboarding/team_choice.cljs:213 msgid "onboarding.team-modal.create-team" msgstr "Mepụta otu" +#: src/app/main/ui/onboarding/team_choice.cljs:35 msgid "onboarding.team-modal.create-team-desc" msgstr "" "Otu ga-ekwe gị na ndị ọzọ ji ite mkpịsị arụ ọrụ ịrụkọta n'otu ederede na " "arụmarụ gasị ." +#: src/app/main/ui/onboarding/team_choice.cljs:40 msgid "onboarding.team-modal.create-team-feature-1" msgstr "Ederede na arụmarụ na enweghị njedebe" +#: src/app/main/ui/onboarding/team_choice.cljs:44 msgid "onboarding.team-modal.create-team-feature-2" msgstr "Mbipụta ọtụtụ egwuregwu" +#: src/app/main/ui/onboarding/team_choice.cljs:48 msgid "onboarding.team-modal.create-team-feature-3" msgstr "Njikwa ọrụ" +#: src/app/main/ui/onboarding/team_choice.cljs:52 msgid "onboarding.team-modal.create-team-feature-4" msgstr "Ndị otu enweghị njedebe" +#: src/app/main/ui/onboarding/team_choice.cljs:56 msgid "onboarding.team-modal.create-team-feature-5" msgstr "% narị efu!" +#: src/app/main/ui/onboarding/templates.cljs:78 msgid "onboarding.templates.subtitle" msgstr "Ụfọdụ ndebiri nọ ebe a." +#: src/app/main/ui/onboarding/templates.cljs:77 msgid "onboarding.templates.title" msgstr "Bido osise" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:99 msgid "profile.recovery.go-to-login" msgstr "Gaa na mbanye" -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.team-size.11-30" -msgstr "Iri na otu ruo na iri atọ" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.team-size.2-10" -msgstr "Abụọ ruo na iri" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.team-size.31-50" -msgstr "Iri atọ na otu ruo na iri ise" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.adobe-xd" -msgstr "Ngwa nrụkọrịta ọrụ Adobe" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.canva" -msgstr "Kanva" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.developer" -msgstr "Onye nrụpụta" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.figma" -msgstr "Ihe onyonyo" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.founder" -msgstr "Onye malitere /VP" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.freelancer" -msgstr "Onye nwere onwe ya" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.invision" -msgstr "Mmakpo" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.lets-get-started" -msgstr "Ka anyị bido!" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.product-management" -msgstr "Onye njikwa ngwaahịa ma ọ bụ arụmarụ" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.marketing" -msgstr "Ịzụ ahịa" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.team-size.more-than-50" -msgstr "Karịrị iri ise" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.next" -msgstr "Ọzọ" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.other" -msgstr "Ọzọ (zipụta)" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.team-size.personal-project" -msgstr "A na m arụ ọrụ n'arụmarụ onwe" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.step3.question2" -msgstr "Gịnị bụ ọrụ gị ?" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.select-option" -msgstr "Họrọ nhọ" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.sketch" -msgstr "Eserese" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.start" -msgstr "Bido" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.student-teacher" -msgstr "Nwata akwụkwọ ma ọ bụ onye nkụzi" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.step3.question3" -msgstr "Kedụ ka otu gị ha?" - +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:89 msgid "shortcuts.bring-backward" msgstr "Wega ebe azụ" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:108 msgid "shortcuts.duplicate" msgstr "Mkpị" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:127 msgid "shortcuts.letter-spacing-inc" msgstr "Leta mmụba oghere" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:163 msgid "shortcuts.paste" msgstr "Nyado" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:183 msgid "shortcuts.text-align-left" msgstr "Dozie akaekpe" +#: src/app/main/ui.cljs:143 msgid "viewer.breaking-change.message" msgstr "Ndo" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/context_menu.cljs:529, src/app/main/ui/workspace/sidebar/assets/colors.cljs:251, src/app/main/ui/workspace/sidebar/assets/components.cljs:577, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:424, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:443 msgid "workspace.assets.delete" msgstr "Kachapụ" +#: src/app/main/ui/workspace/sidebar/layers.cljs:525 msgid "workspace.focus.focus-mode" msgstr "Umezi nlekwasa anya" +#: src/app/main/ui/workspace/context_menu.cljs:286 msgid "workspace.focus.focus-on" msgstr "Gbanye nlekwasa anya" +#: src/app/main/ui/workspace/context_menu.cljs:469 msgid "workspace.shape.menu.create-multiple-components" msgstr "Mee ọtụtụ akọrọngwa ga" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/palette.cljs:165, src/app/main/ui/workspace/palette.cljs:166 msgid "workspace.toolbar.color-palette" msgstr "Agba[ Palette (Na narị)" -#: src/app/main/data/workspace/libraries.cljs +#: src/app/main/data/workspace/libraries.cljs:1090 msgid "workspace.updates.there-are-updates" msgstr "E nwegasịrị nhazizigharị nime ọba ederede ga e kere eke" diff --git a/frontend/translations/it.po b/frontend/translations/it.po index 47ea14afa7..4d47818810 100644 --- a/frontend/translations/it.po +++ b/frontend/translations/it.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "PO-Revision-Date: 2024-06-17 08:07+0000\n" "Last-Translator: Anonymous \n" -"Language-Team: Italian \n" +"Language-Team: Italian " +"\n" "Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" @@ -11,375 +11,419 @@ msgstr "" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 5.6-dev\n" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:151, src/app/main/ui/viewer/login.cljs:104 msgid "auth.already-have-account" msgstr "Hai già un account?" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:299 msgid "auth.check-your-email" msgstr "" "Controlla la tua e-mail e clicca sul link di verifica per iniziare a usare " "Penpot." -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:78 msgid "auth.confirm-password" msgstr "Conferma la password" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/register.cljs:163 msgid "auth.create-demo-account" msgstr "Creare un account demo" #: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#, unused msgid "auth.create-demo-profile" msgstr "Vuoi solamente provare?" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/login.cljs:43 msgid "auth.demo-warning" msgstr "" "Questo è un servizio di prova, non utilizzare per il lavoro reale, i " "progetti verranno eliminati periodicamente." -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:189, src/app/main/ui/viewer/login.cljs:90 msgid "auth.forgot-password" msgstr "Hai dimenticato la password?" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:254 msgid "auth.fullname" msgstr "Nome completo" -#: src/app/main/ui/auth/register.cljs -#, fuzzy +#: src/app/main/ui/auth/register.cljs:155, src/app/main/ui/viewer/login.cljs:107 msgid "auth.login-here" msgstr "Accedere qui" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:195 msgid "auth.login-submit" msgstr "Accedi" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:222 msgid "auth.login-with-github-submit" msgstr "GitHub" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:228 msgid "auth.login-with-gitlab-submit" msgstr "GitLab" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:216 msgid "auth.login-with-google-submit" msgstr "Google" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:201 msgid "auth.login-with-ldap-submit" msgstr "LDAP" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:234, src/app/main/ui/auth/login.cljs:255 msgid "auth.login-with-oidc-submit" msgstr "OpenID" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:71 msgid "auth.new-password" msgstr "Inserisci una nuova password" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:42 msgid "auth.notifications.invalid-token-error" msgstr "Il codice di recupero non è valido." -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:46 msgid "auth.notifications.password-changed-successfully" msgstr "La password è stata modificata con successo" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:57 msgid "auth.notifications.profile-not-verified" msgstr "Il profilo non è verificato. Verifica il profilo prima di continuare." -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:40 msgid "auth.notifications.recovery-token-sent" msgstr "Il link per il recupero password è stato inviato alla tua e-mail." -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:179, src/app/main/ui/auth/register.cljs:115 msgid "auth.password" msgstr "Password" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:114 msgid "auth.password-length-hint" msgstr "Almeno 8 caratteri" +#: src/app/main/ui/auth.cljs:41 msgid "auth.privacy-policy" msgstr "Informativa sulla privacy" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:88 msgid "auth.recovery-request-submit" msgstr "Recupera password" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:101 msgid "auth.recovery-request-subtitle" msgstr "Ti invieremo un'e-mail con le istruzioni" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:100 msgid "auth.recovery-request-title" msgstr "Hai dimenticato la password?" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:82 msgid "auth.recovery-submit" msgstr "Cambia la tua password" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:298, src/app/main/ui/viewer/login.cljs:93 msgid "auth.register" msgstr "Non hai ancora un account?" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:302, src/app/main/ui/auth/register.cljs:121, src/app/main/ui/auth/register.cljs:263, src/app/main/ui/viewer/login.cljs:97 msgid "auth.register-submit" msgstr "Crea un account" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:140 msgid "auth.register-title" msgstr "Crea un account" #: src/app/main/ui/auth.cljs +#, unused msgid "auth.sidebar-tagline" msgstr "La soluzione open source per il design e la prototipazione." +#: src/app/main/ui/auth.cljs:33, src/app/main/ui/dashboard/sidebar.cljs:1022, src/app/main/ui/workspace/main_menu.cljs:150 msgid "auth.terms-of-service" msgstr "Condizioni di servizio" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:297 msgid "auth.verification-email-sent" msgstr "Abbiamo inviato l'e-mail di verifica a" +#: src/app/main/ui/workspace/libraries.cljs:228 msgid "common.publish" msgstr "Pubblica" +#: src/app/main/ui/viewer/share_link.cljs:304, src/app/main/ui/viewer/share_link.cljs:314 msgid "common.share-link.all-users" msgstr "Tutti gli utenti Penpot" +#: src/app/main/ui/viewer/share_link.cljs:198 msgid "common.share-link.confirm-deletion-link-description" msgstr "" "Sei sicuro di voler eliminare questo link? Se sì, non sarà più disponibile " "per nessuno" +#: src/app/main/ui/viewer/share_link.cljs:259, src/app/main/ui/viewer/share_link.cljs:289 msgid "common.share-link.current-tag" msgstr "(attuale)" +#: src/app/main/ui/viewer/share_link.cljs:207, src/app/main/ui/viewer/share_link.cljs:214 msgid "common.share-link.destroy-link" msgstr "Elimina link" +#: src/app/main/ui/viewer/share_link.cljs:221 msgid "common.share-link.get-link" msgstr "Ottieni link" +#: src/app/main/ui/viewer/share_link.cljs:139 msgid "common.share-link.link-copied-success" msgstr "Link copiato con successo" +#: src/app/main/ui/viewer/share_link.cljs:231 msgid "common.share-link.manage-ops" msgstr "Gestisci permessi" +#: src/app/main/ui/viewer/share_link.cljs:277 msgid "common.share-link.page-shared" msgid_plural "common.share-link.page-shared" msgstr[0] "1 pagina condivisa" msgstr[1] "% di pagine condivise" +#: src/app/main/ui/viewer/share_link.cljs:298 msgid "common.share-link.permissions-can-comment" msgstr "Può commentare" +#: src/app/main/ui/viewer/share_link.cljs:308 msgid "common.share-link.permissions-can-inspect" msgstr "Può ispezionare il codice" +#: src/app/main/ui/viewer/share_link.cljs:193 msgid "common.share-link.permissions-hint" msgstr "Chiunque possieda questo link può accedere" +#: src/app/main/ui/viewer/share_link.cljs:241 msgid "common.share-link.permissions-pages" msgstr "Pagine condivise" +#: src/app/main/ui/viewer/share_link.cljs:183 msgid "common.share-link.placeholder" msgstr "Il codice per condividere apparirà qui" +#: src/app/main/ui/viewer/share_link.cljs:303, src/app/main/ui/viewer/share_link.cljs:313 msgid "common.share-link.team-members" msgstr "Solo i membri del team" +#: src/app/main/ui/viewer/share_link.cljs:171 msgid "common.share-link.title" msgstr "Condividi i prototipi" +#: src/app/main/ui/viewer/share_link.cljs:269 msgid "common.share-link.view-all" msgstr "Seleziona tutto" +#: src/app/main/ui/workspace/libraries.cljs:224 msgid "common.unpublish" msgstr "Spubblica" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:85 msgid "dasboard.team-hero.management" msgstr "Gestisci team" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:84 msgid "dasboard.team-hero.text" msgstr "" "Penpot è studiato per i team. Invita membri per lavorare insieme a file e " "progetti" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:82 msgid "dasboard.team-hero.title" msgstr "Fai squadra!" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.tutorial-hero.info" msgstr "Impara le basi di Penpot divertendoti con questo tutorial pratico." #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.tutorial-hero.start" msgstr "Inizia il tutorial" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.tutorial-hero.title" msgstr "Tutorial pratico" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.walkthrough-hero.info" msgstr "Esplora Penpot e scopri le sue principali funzionalità." #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.walkthrough-hero.start" msgstr "Inizia il tour" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.walkthrough-hero.title" msgstr "Spiegazione dell'interfaccia passo per passo" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:291, src/app/main/ui/workspace/main_menu.cljs:572 msgid "dashboard.add-shared" msgstr "Aggiungi una libreria condivisa" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:75 msgid "dashboard.change-email" msgstr "Cambia indirizzo e-mail" -#: src/app/main/data/dashboard.cljs, src/app/main/data/dashboard.cljs +#: src/app/main/data/dashboard.cljs:762, src/app/main/data/dashboard.cljs:983 msgid "dashboard.copy-suffix" msgstr "(copia)" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:338 msgid "dashboard.create-new-team" msgstr "Crea un nuovo team" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/components/context_menu_a11y.cljs:256, src/app/main/ui/dashboard/sidebar.cljs:646 msgid "dashboard.default-team-name" msgstr "Il tuo Penpot" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:571 msgid "dashboard.delete-team" msgstr "Elimina team" +#: src/app/main/ui/dashboard/file_menu.cljs:296, src/app/main/ui/workspace/main_menu.cljs:589 msgid "dashboard.download-binary-file" msgstr "Scarica il file Penpot (.penpot)" +#: src/app/main/ui/dashboard/file_menu.cljs:300, src/app/main/ui/workspace/main_menu.cljs:597 msgid "dashboard.download-standard-file" msgstr "Scarica il file standard (.svg + .json)" -#: src/app/main/ui/dashboard/project_menu.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:276, src/app/main/ui/dashboard/project_menu.cljs:90 msgid "dashboard.duplicate" msgstr "Duplica" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:240 msgid "dashboard.duplicate-multi" msgstr "Duplicare %s file" -#: src/app/main/ui/dashboard/grid.cljs +#: src/app/main/ui/dashboard/placeholder.cljs:32 +#, markdown msgid "dashboard.empty-placeholder-drafts" msgstr "" "Oh no! Non hai ancora nessun file! Se desideri provare alcuni template vai " "su [Librerie e template](https://penpot.app/libraries-templates)" +#: src/app/main/ui/dashboard/file_menu.cljs:249 msgid "dashboard.export-binary-multi" msgstr "Scarica %s file Penpot (.penpot)" +#: src/app/main/ui/workspace/main_menu.cljs:605 msgid "dashboard.export-frames" msgstr "Esportare le tavole da disegno in PDF" -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:201 msgid "dashboard.export-frames.title" msgstr "Esporta in PDF" +#, unused msgid "dashboard.export-multi" msgstr "Esportare %s file Penpot" -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:109 msgid "dashboard.export-multiple.selected" msgstr "%s di %s elementi selezionati" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:578 msgid "dashboard.export-shapes" msgstr "Esporta" -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:180 msgid "dashboard.export-shapes.how-to" msgstr "" "Puoi aggiungere dei parametri di esportazione agli elementi accedendo alle " "proprietà del design (in fondo alla barra laterale destra)." -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:184 msgid "dashboard.export-shapes.how-to-link" msgstr "Informazioni utili su come configurare l'esportazione in Penpot." -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:179 msgid "dashboard.export-shapes.no-elements" msgstr "Non ci sono elementi con parametri di esportazione." -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:190 msgid "dashboard.export-shapes.title" msgstr "Esporta selezionati" +#: src/app/main/ui/dashboard/file_menu.cljs:252 msgid "dashboard.export-standard-multi" msgstr "Scarica %s file standard (.svg + .json)" +#: src/app/main/ui/export.cljs:427 msgid "dashboard.export.detail" msgstr "" "* Può includere componenti, elementi grafici, colori e/o elementi " "tipografici." +#: src/app/main/ui/export.cljs:426 msgid "dashboard.export.explain" msgstr "" "Uno o più file che desideri esportare utilizzano librerie condivise. Che " "cosa desideri fare con le loro risorse*?" +#: src/app/main/ui/export.cljs:435 msgid "dashboard.export.options.all.message" msgstr "" "I file con librerie condivise verranno inclusi nell'esportazione, " "mantenendo il loro collegamento." +#: src/app/main/ui/export.cljs:436 msgid "dashboard.export.options.all.title" msgstr "Esporta le librerie condivise" +#: src/app/main/ui/export.cljs:437 msgid "dashboard.export.options.detach.message" msgstr "" "Le librerie condivise non saranno incluse nell'esportazione e nessuna " "risorsa verrà aggiunta alla libreria. " +#: src/app/main/ui/export.cljs:438 msgid "dashboard.export.options.detach.title" msgstr "Considera le risorse delle librerie condivise come oggetti di base" +#: src/app/main/ui/export.cljs:439 msgid "dashboard.export.options.merge.message" msgstr "" "Il tuo file verrà esportato con tutte le risorse esterne riunite nella " "libreria dei file." +#: src/app/main/ui/export.cljs:418 msgid "dashboard.export.title" msgstr "Esporta i file" +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:309 msgid "dashboard.fonts.deleted-placeholder" msgstr "Font eliminato" -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:206 msgid "dashboard.fonts.dismiss-all" msgstr "Chiudere tutto" +#: src/app/main/ui/dashboard/fonts.cljs:436 msgid "dashboard.fonts.empty-placeholder" msgstr "Non hai ancora installato font personalizzati." -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:194 msgid "dashboard.fonts.fonts-added" msgid_plural "dashboard.fonts.fonts-added" msgstr[0] "1 font aggiunto" msgstr[1] "%s font aggiunti" +#: src/app/main/ui/dashboard/fonts.cljs:170 +#, markdown msgid "dashboard.fonts.hero-text1" msgstr "" "Qualsiasi font web caricato qui verrà aggiunto alla lista dei font family " @@ -388,6 +432,8 @@ msgstr "" "**singolo font family**. È possibile caricare font con i seguenti " "formati:**TTF, OTF e WOFF**(uno solo di questi è necessario)." +#: src/app/main/ui/dashboard/fonts.cljs:182 +#, markdown msgid "dashboard.fonts.hero-text2" msgstr "" "È consigliabile caricare unicamente font di cui si è proprietari o dei " @@ -396,1468 +442,1538 @@ msgstr "" "di Penpot](https://penpot.app/terms.html). Potresti anche voler " "approfondire le [licenze per i font](https://www.typography.com/faq)." -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:202 msgid "dashboard.fonts.upload-all" msgstr "Carica tutto" +#: src/app/main/ui/dashboard/import.cljs:472, src/app/main/ui/dashboard/project_menu.cljs:108 msgid "dashboard.import" msgstr "Importare file Penpot" +#: src/app/main/ui/dashboard/import.cljs:304, src/app/worker/import.cljs:753, src/app/worker/import.cljs:755 msgid "dashboard.import.analyze-error" msgstr "Ops! Non possiamo importare questo file" +#: src/app/main/ui/dashboard/import.cljs:308 msgid "dashboard.import.import-error" msgstr "" "C'è stato un problema con l'importazione del file. Il file non è stato " "importato." +#: src/app/main/ui/dashboard/import.cljs:493 msgid "dashboard.import.import-message" msgstr "%s file sono stati importati con successo." +#: src/app/main/ui/dashboard/import.cljs:481, src/app/main/ui/dashboard/import.cljs:488 msgid "dashboard.import.import-warning" msgstr "Alcuni file contenenti oggetti non validi sono stati rimossi." +#: src/app/main/ui/dashboard/import.cljs:144 msgid "dashboard.import.progress.process-colors" msgstr "Elaborazione dei colori" +#: src/app/main/ui/dashboard/import.cljs:153 msgid "dashboard.import.progress.process-components" msgstr "Elaborazione dei componenti" +#: src/app/main/ui/dashboard/import.cljs:150 msgid "dashboard.import.progress.process-media" msgstr "Elaborazione dei media" +#: src/app/main/ui/dashboard/import.cljs:141 msgid "dashboard.import.progress.process-page" msgstr "Elaborazione pagina: %s" +#: src/app/main/ui/dashboard/import.cljs:147 msgid "dashboard.import.progress.process-typographies" msgstr "Elaborazione degli elementi tipografici" +#: src/app/main/ui/dashboard/import.cljs:135 msgid "dashboard.import.progress.upload-data" msgstr "Caricamento dei dati sul server (%s/%s)" +#: src/app/main/ui/dashboard/import.cljs:138 msgid "dashboard.import.progress.upload-media" msgstr "Caricamento file: %s" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:109 msgid "dashboard.invite-profile" msgstr "Invita nel team" -#: src/app/main/ui/dashboard/sidebar.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:547, src/app/main/ui/dashboard/sidebar.cljs:556, src/app/main/ui/dashboard/sidebar.cljs:563, src/app/main/ui/dashboard/team.cljs:312 msgid "dashboard.leave-team" msgstr "Abbandona il team" +#: src/app/main/ui/dashboard/templates.cljs:88, src/app/main/ui/dashboard/templates.cljs:163 msgid "dashboard.libraries-and-templates" msgstr "Librerie e template" +#: src/app/main/ui/dashboard/templates.cljs:164 msgid "dashboard.libraries-and-templates.explore" msgstr "Esplorane di più e scopri come contribuire" +#: src/app/main/ui/dashboard/import.cljs:365 msgid "dashboard.libraries-and-templates.import-error" msgstr "" "Si è verificato un problema nell'importazione del template. Il template non " "è stato importato." -#: src/app/main/ui/dashboard/libraries.cljs +#: src/app/main/ui/dashboard/libraries.cljs:53 msgid "dashboard.libraries-title" msgstr "Librerie condivise" -#: src/app/main/ui/dashboard/grid.cljs +#: src/app/main/ui/dashboard/placeholder.cljs:45 msgid "dashboard.loading-files" msgstr "caricamento dei file …" +#: src/app/main/ui/dashboard/fonts.cljs:431 msgid "dashboard.loading-fonts" msgstr "caricamento dei font …" -#: src/app/main/ui/dashboard/project_menu.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:281, src/app/main/ui/dashboard/project_menu.cljs:100 msgid "dashboard.move-to" msgstr "Sposta verso" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:245 msgid "dashboard.move-to-multi" msgstr "Sposta %s file verso" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:226 msgid "dashboard.move-to-other-team" msgstr "Sposta verso un altro team" -#: src/app/main/ui/dashboard/projects.cljs, -#: src/app/main/ui/dashboard/files.cljs +#: src/app/main/ui/dashboard/files.cljs:105, src/app/main/ui/dashboard/projects.cljs:252, src/app/main/ui/dashboard/projects.cljs:253 msgid "dashboard.new-file" msgstr "+ Nuovo File" -#: src/app/main/data/dashboard.cljs +#: src/app/main/data/dashboard.cljs:958, src/app/main/data/dashboard.cljs:1181 msgid "dashboard.new-file-prefix" msgstr "Nuovo File" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:55 msgid "dashboard.new-project" msgstr "+ Nuovo progetto" -#: src/app/main/data/dashboard.cljs +#: src/app/main/data/dashboard.cljs:726, src/app/main/data/dashboard.cljs:1184 msgid "dashboard.new-project-prefix" msgstr "Nuovo progetto" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:60 msgid "dashboard.no-matches-for" msgstr "Nessuna corrispondenza trovata per \"%s\"" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:827 msgid "dashboard.no-projects-placeholder" msgstr "I progetti appuntati appariranno qui" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:33 msgid "dashboard.notifications.email-changed-successfully" msgstr "Il tuo indirizzo e-mail è stato aggiornato con successo" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:27 msgid "dashboard.notifications.email-verified-successfully" msgstr "Il tuo indirizzo e-mail è stato verificato con successo" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:37 msgid "dashboard.notifications.password-saved" msgstr "La password è stata salvata con successo!" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1081 msgid "dashboard.num-of-members" msgstr "%s membri" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:267 msgid "dashboard.open-in-new-tab" msgstr "Apri file in una nuova scheda" +#: src/app/main/ui/dashboard/files.cljs:117, src/app/main/ui/dashboard/projects.cljs:260, src/app/main/ui/dashboard/projects.cljs:261 msgid "dashboard.options" msgstr "Opzioni" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:106, src/app/main/ui/settings/password.cljs:119 msgid "dashboard.password-change" msgstr "Cambia password" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/pin_button.cljs:24, src/app/main/ui/dashboard/project_menu.cljs:95 msgid "dashboard.pin-unpin" msgstr "Appunta/Rimuovi" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:51 msgid "dashboard.projects-title" msgstr "Progetti" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:86 msgid "dashboard.remove-account" msgstr "Desideri eliminare il tuo account?" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "dashboard.remove-shared" msgstr "Elimina come Libreria Condivisa" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:78 msgid "dashboard.save-settings" msgstr "Salva impostazioni" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:246, src/app/main/ui/dashboard/sidebar.cljs:247 msgid "dashboard.search-placeholder" msgstr "Cerca …" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:55 msgid "dashboard.searching-for" msgstr "Ricerca di \"%s\"…" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:56 msgid "dashboard.select-ui-language" msgstr "Seleziona la lingua per l'interfaccia utente" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:63 msgid "dashboard.select-ui-theme" msgstr "Seleziona un tema" -#: src/app/main/ui/dashboard/grid.cljs +#: src/app/main/ui/dashboard/projects.cljs:282 msgid "dashboard.show-all-files" msgstr "Mostra tutti i file" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:96 msgid "dashboard.success-delete-file" msgstr "Il tuo file è stato eliminato con successo" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:59 msgid "dashboard.success-delete-project" msgstr "Il tuo progetto è stato eliminato con successo" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:91 msgid "dashboard.success-duplicate-file" msgstr "Il tuo file è stato duplicato con successo" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:33 msgid "dashboard.success-duplicate-project" msgstr "Il tuo progetto è stato duplicato con successo" -#: src/app/main/ui/dashboard/grid.cljs, src/app/main/ui/dashboard/sidebar.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:130, src/app/main/ui/dashboard/grid.cljs:558, src/app/main/ui/dashboard/sidebar.cljs:152 msgid "dashboard.success-move-file" msgstr "Il tuo file è stato spostato con successo" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:129 msgid "dashboard.success-move-files" msgstr "I tuoi file sono stati spostati con successo" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:54 msgid "dashboard.success-move-project" msgstr "Il tuo progetto è stato spostato con successo" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1052 msgid "dashboard.team-info" msgstr "Informazioni sul team" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1070 msgid "dashboard.team-members" msgstr "Membri del team" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1085 msgid "dashboard.team-projects" msgstr "Progetti del team" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:61 msgid "dashboard.theme-change" msgstr "Tema dell'interfaccia utente" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:42 msgid "dashboard.title-search" msgstr "Risultati della ricerca" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:50 msgid "dashboard.type-something" msgstr "Scrivi per cercare" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:287, src/app/main/ui/workspace/main_menu.cljs:566 msgid "dashboard.unpublish-shared" msgstr "Spubblicare la libreria" -#: src/app/main/ui/settings/password.cljs, -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:71 msgid "dashboard.update-settings" msgstr "Aggiorna le impostazioni" -#: src/app/main/ui/settings.cljs +#: src/app/main/ui/settings.cljs:31 msgid "dashboard.your-account-title" msgstr "Il tuo account" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:70 msgid "dashboard.your-email" msgstr "E-mail" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:62 msgid "dashboard.your-name" msgstr "Il tuo nome" -#: src/app/main/ui/dashboard/search.cljs, src/app/main/ui/dashboard/team.cljs, -#: src/app/main/ui/dashboard/libraries.cljs, -#: src/app/main/ui/dashboard/projects.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:38, src/app/main/ui/dashboard/fonts.cljs:33, src/app/main/ui/dashboard/libraries.cljs:42, src/app/main/ui/dashboard/projects.cljs:318, src/app/main/ui/dashboard/search.cljs:30, src/app/main/ui/dashboard/sidebar.cljs:312, src/app/main/ui/dashboard/team.cljs:495, src/app/main/ui/dashboard/team.cljs:729, src/app/main/ui/dashboard/team.cljs:991, src/app/main/ui/dashboard/team.cljs:1038 msgid "dashboard.your-penpot" msgstr "Il tuo Penpot" -#: src/app/main/ui/alert.cljs +#: src/app/main/ui/alert.cljs:32 msgid "ds.alert-ok" msgstr "Ok" -#: src/app/main/ui/alert.cljs +#: src/app/main/ui/alert.cljs:31, src/app/main/ui/alert.cljs:34 msgid "ds.alert-title" msgstr "Attenzione" -#: src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:83 msgid "ds.component-subtitle" msgstr "Componenti da aggiornare:" -#: src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:36, src/app/main/ui/workspace/plugins.cljs:246 msgid "ds.confirm-cancel" msgstr "Annulla" -#: src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:37, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:141 msgid "ds.confirm-ok" msgstr "Ok" -#: src/app/main/ui/confirm.cljs, src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:35, src/app/main/ui/confirm.cljs:39 msgid "ds.confirm-title" msgstr "Sei sicuro?" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:62 msgid "errors.auth-provider-not-configured" msgstr "Provider di autenticazione non configurato." +#: src/app/main/errors.cljs:104 msgid "errors.auth.unable-to-login" msgstr "Sembra che tu non ti sia autenticato o che la sessione sia scaduta." -#: src/app/main/data/workspace.cljs +#: src/app/main/data/workspace.cljs:1598 msgid "errors.clipboard-not-implemented" msgstr "Il tuo browser non può effettuare questa operazione" -#: src/app/main/ui/auth/verify_token.cljs, -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/auth/verify_token.cljs:82, src/app/main/ui/settings/change_email.cljs:46 msgid "errors.email-already-exists" msgstr "Indirizzo e-mail già utilizzato" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:87 msgid "errors.email-already-validated" msgstr "Indirizzo e-mail già convalidato." +#: src/app/main/ui/settings/password.cljs:28 msgid "errors.email-as-password" msgstr "Non è possibile utilizzare il tuo indirizzo e-mail come password" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:35 msgid "errors.email-invalid-confirmation" msgstr "L'indirizzo e-mail di conferma deve corrispondere" +#: src/app/main/ui/dashboard/team.cljs:170 msgid "errors.email-spam-or-permanent-bounces" msgstr "L'e-mail \"%s\" è stata riportata come spam o respinta in modo permanente." -#: src/app/main/ui/auth/verify_token.cljs, -#: src/app/main/ui/settings/feedback.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/data/users.cljs:709, src/app/main/ui/auth/login.cljs:65, src/app/main/ui/auth/login.cljs:116, src/app/main/ui/auth/register.cljs:69, src/app/main/ui/auth/register.cljs:237, src/app/main/ui/auth/verify_token.cljs:92, src/app/main/ui/dashboard/team.cljs:173, src/app/main/ui/onboarding/team_choice.cljs:95, src/app/main/ui/settings/access_tokens.cljs:91, src/app/main/ui/settings/feedback.cljs:52 msgid "errors.generic" msgstr "Si è verificato un problema." -#: src/app/main/ui/components/color_input.cljs +#: src/app/main/ui/components/color_input.cljs:57 msgid "errors.invalid-color" msgstr "Colore non valido" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/static.cljs:43 msgid "errors.invite-invalid" msgstr "Invito non valido" +#: src/app/main/ui/static.cljs:44 msgid "errors.invite-invalid.info" msgstr "Questo è invito può essere stato revocato o può essere scaduto." -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:101 msgid "errors.ldap-disabled" msgstr "Autenticazione LDAP disattivata." -#: src/app/main/data/workspace/persistence.cljs +#: src/app/main/data/workspace/media.cljs:184 msgid "errors.media-too-large" msgstr "L'immagine è troppo grande (deve essere inferiore a 5MB)." -#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs +#: src/app/main/data/media.cljs:68, src/app/main/data/workspace/media.cljs:187 msgid "errors.media-type-mismatch" msgstr "" "Sembra che il contenuto dell'immagine non corrisponda all'estensione del " "file." -#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs +#: src/app/main/data/media.cljs:65, src/app/main/data/workspace/media.cljs:172, src/app/main/data/workspace/media.cljs:175, src/app/main/data/workspace/media.cljs:178, src/app/main/data/workspace/media.cljs:181 msgid "errors.media-type-not-allowed" msgstr "L'immagine non sembra valida." -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:61 msgid "errors.password-invalid-confirmation" msgstr "La password di conferma deve corrispondere" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:64 msgid "errors.password-too-short" msgstr "La password deve contenere almeno 8 caratteri" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/data/users.cljs:701, src/app/main/ui/auth/register.cljs:60 msgid "errors.registration-disabled" msgstr "La registrazione è al momento disattivata." +#: src/app/main/ui/dashboard/sidebar.cljs:365, src/app/main/ui/dashboard/team.cljs:359 msgid "errors.team-leave.insufficient-members" msgstr "" "Il numero di membri non è sufficiente per abbandonare il team. Vuoi " "probabilmente eliminare il team." +#: src/app/main/ui/dashboard/sidebar.cljs:368, src/app/main/ui/dashboard/team.cljs:362 msgid "errors.team-leave.member-does-not-exists" msgstr "Il membro che stai provando ad assegnare non esiste." +#: src/app/main/ui/dashboard/sidebar.cljs:371, src/app/main/ui/dashboard/team.cljs:365 msgid "errors.team-leave.owner-cant-leave" msgstr "" "Il proprietario non può abbandonare il team. Devi riassegnare il ruolo di " "proprietario." -#: src/app/main/data/media.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs +#: src/app/main/data/media.cljs:71 msgid "errors.unexpected-error" msgstr "Si è verificato un errore inaspettato." -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:60 msgid "errors.unexpected-token" msgstr "Token sconosciuto" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:109, src/app/main/ui/auth/login.cljs:113 msgid "errors.wrong-credentials" msgstr "Il nome utente o la password sembrano essere sbagliati." -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:25 msgid "errors.wrong-old-password" msgstr "La password precedente non è corretta" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:77 msgid "feedback.description" msgstr "Descrizione" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:95 msgid "feedback.discourse-go-to" msgstr "Vai al forum Penpot" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:89 msgid "feedback.discourse-subtitle1" msgstr "" "Siamo felici di averti qui. Se hai bisogno di aiuto, fai una ricerca prima " "di postare una richiesta." -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:88 msgid "feedback.discourse-title" msgstr "Community di Penpot" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:72 msgid "feedback.subject" msgstr "Soggetto" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:69 msgid "feedback.subtitle" msgstr "" "Descrivi per favore il motivo della tua e-mail, specificando se si tratta " "di un problema, di un'idea oppure di un dubbio. Un membro del nostro team " "ti risponderà il prima possibile." -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:68 msgid "feedback.title" msgstr "E-mail" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:105 msgid "feedback.twitter-go-to" msgstr "Vai su X" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:99 msgid "feedback.twitter-subtitle1" msgstr "Siamo qui per aiutarti con le tue domande tecniche." -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:98 msgid "feedback.twitter-title" msgstr "Account di supporto X" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:30 msgid "generic.error" msgstr "Si è verificato un errore" -#: src/app/main/ui/inspect/attributes/blur.cljs +#: src/app/main/ui/viewer/inspect/attributes/blur.cljs:26 msgid "inspect.attributes.blur" msgstr "Sfumatura" -#: src/app/main/ui/inspect/attributes/blur.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:115 msgid "inspect.attributes.blur.value" msgstr "Valore" -#: src/app/main/ui/inspect/attributes/common.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:112 msgid "inspect.attributes.color.hex" msgstr "HEX" -#: src/app/main/ui/inspect/attributes/common.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:114 msgid "inspect.attributes.color.hsla" msgstr "HSLA" -#: src/app/main/ui/inspect/attributes/common.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:113 msgid "inspect.attributes.color.rgba" msgstr "RGBA" -#: src/app/main/ui/inspect/attributes/fill.cljs +#: src/app/main/ui/viewer/inspect/attributes/fill.cljs:57 msgid "inspect.attributes.fill" msgstr "Riempire" -#: src/app/main/ui/inspect/attributes/image.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:99, src/app/main/ui/viewer/inspect/attributes/image.cljs:51 msgid "inspect.attributes.image.download" msgstr "Scaricare l'immagine sorgente" -#: src/app/main/ui/inspect/attributes/image.cljs +#: src/app/main/ui/viewer/inspect/attributes/image.cljs:39 msgid "inspect.attributes.image.height" msgstr "Altezza" -#: src/app/main/ui/inspect/attributes/image.cljs +#: src/app/main/ui/viewer/inspect/attributes/image.cljs:32 msgid "inspect.attributes.image.width" msgstr "Larghezza" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout" msgstr "Disposizione" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.height" msgstr "Altezza" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.left" msgstr "Sinistra" -#: src/app/main/ui/inspect/attributes/layout.cljs, -#: src/app/main/ui/inspect/attributes/layout.cljs +#: src/app/main/ui/inspect/attributes/layout.cljs, src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.radius" msgstr "Raggio" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.rotation" msgstr "Rotazione" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.top" msgstr "In alto" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.width" msgstr "Larghezza" -#: src/app/main/ui/inspect/attributes/shadow.cljs +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:57 msgid "inspect.attributes.shadow" msgstr "Ombra" -#: src/app/main/ui/inspect/attributes/stroke.cljs +#: src/app/main/ui/viewer/inspect/attributes/stroke.cljs:52 msgid "inspect.attributes.stroke" msgstr "Contorno" +#, permanent, unused msgid "inspect.attributes.stroke.alignment.center" msgstr "Centro" +#, permanent, unused msgid "inspect.attributes.stroke.alignment.inner" msgstr "Interno" +#, permanent, unused msgid "inspect.attributes.stroke.alignment.outer" msgstr "Esterno" +#, unused msgid "inspect.attributes.stroke.style.dotted" msgstr "Tratteggiato" +#, unused msgid "inspect.attributes.stroke.style.mixed" msgstr "Misto" +#, unused msgid "inspect.attributes.stroke.style.none" msgstr "Nessuno" +#, unused msgid "inspect.attributes.stroke.style.solid" msgstr "Solido" #: src/app/main/ui/inspect/attributes/stroke.cljs +#, unused msgid "inspect.attributes.stroke.width" msgstr "Larghezza" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:81, src/app/main/ui/viewer/inspect/attributes/text.cljs:194 msgid "inspect.attributes.typography" msgstr "Tipografia" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:89 msgid "inspect.attributes.typography.font-family" msgstr "Font Family" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:107 msgid "inspect.attributes.typography.font-size" msgstr "Dimensione del carattere" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:98 msgid "inspect.attributes.typography.font-style" msgstr "Stile del carattere" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:134 msgid "inspect.attributes.typography.letter-spacing" msgstr "Spaziatura delle lettere" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:125 msgid "inspect.attributes.typography.line-height" msgstr "Altezza Linea" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:143 msgid "inspect.attributes.typography.text-decoration" msgstr "Decorazioni testo" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:145 msgid "inspect.attributes.typography.text-decoration.none" msgstr "Nessuno" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:146 msgid "inspect.attributes.typography.text-decoration.strikethrough" msgstr "Barrato" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:147 msgid "inspect.attributes.typography.text-decoration.underline" msgstr "Sottolineato" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:156 msgid "inspect.attributes.typography.text-transform" msgstr "Trasforma Testo" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:158 msgid "inspect.attributes.typography.text-transform.lowercase" msgstr "Minuscolo" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:159 msgid "inspect.attributes.typography.text-transform.none" msgstr "Nessuno" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:160 msgid "inspect.attributes.typography.text-transform.titlecase" msgstr "Prime lettere maiuscole" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:161 msgid "inspect.attributes.typography.text-transform.uppercase" msgstr "Maiuscolo" -#: src/app/main/ui/inspect/right_sidebar.cljs +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:125 msgid "inspect.tabs.code" msgstr "Codice" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:98 msgid "inspect.tabs.code.selected.circle" msgstr "Cerchio" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:99 msgid "inspect.tabs.code.selected.component" msgstr "Componente" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:100 msgid "inspect.tabs.code.selected.curve" msgstr "Curvo" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:102 msgid "inspect.tabs.code.selected.group" msgstr "Raggruppa" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:103 msgid "inspect.tabs.code.selected.image" msgstr "Immagine" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:104 msgid "inspect.tabs.code.selected.mask" msgstr "Maschera" -#: src/app/main/ui/inspect/right_sidebar.cljs +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:93 msgid "inspect.tabs.code.selected.multiple" msgstr "%s selezionati" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:105 msgid "inspect.tabs.code.selected.path" msgstr "Tracciato" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:106 msgid "inspect.tabs.code.selected.rect" msgstr "Rettangolo" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:107 msgid "inspect.tabs.code.selected.svg-raw" msgstr "SVG" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:108 msgid "inspect.tabs.code.selected.text" msgstr "Testo" -#: src/app/main/ui/inspect/right_sidebar.cljs +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:115 msgid "inspect.tabs.info" msgstr "Informazione" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:158 msgid "label.shortcuts" msgstr "Scorciatoie" +#: src/app/main/ui/dashboard/import.cljs:527 msgid "labels.accept" msgstr "Accettare" +#: src/app/main/ui/dashboard/fonts.cljs:175 msgid "labels.add-custom-font" msgstr "Aggiungere un carattere personalizzato" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:120, src/app/main/ui/dashboard/team.cljs:276, src/app/main/ui/dashboard/team.cljs:519, src/app/main/ui/dashboard/team.cljs:549, src/app/main/ui/onboarding/team_choice.cljs:67 msgid "labels.admin" msgstr "Amministratore" #: src/app/main/ui/workspace/comments.cljs +#, unused msgid "labels.all" msgstr "Tutti" +#: src/app/main/ui/auth.cljs:37 msgid "labels.and" msgstr "e" +#: src/app/main/ui/onboarding/team_choice.cljs:162 msgid "labels.back" msgstr "Indietro" -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:59 msgid "labels.bad-gateway.desc-message" msgstr "" "Sembra che tu debba aspettare un po' e riprovare; stiamo eseguendo dei " "piccoli lavori di manutenzione sui nostri server." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:58 msgid "labels.bad-gateway.main-message" msgstr "Gateway non corretto" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/data/common.cljs:112, src/app/main/ui/dashboard/change_owner.cljs:69, src/app/main/ui/dashboard/import.cljs:514, src/app/main/ui/dashboard/team.cljs:868, src/app/main/ui/delete_shared.cljs:35, src/app/main/ui/export.cljs:164, src/app/main/ui/export.cljs:460, src/app/main/ui/settings/access_tokens.cljs:188, src/app/main/ui/viewer/share_link.cljs:203, src/app/main/ui/workspace/sidebar/assets/groups.cljs:149 msgid "labels.cancel" msgstr "Annulla" +#: src/app/main/ui/dashboard/projects.cljs:93, src/app/main/ui/export.cljs:478, src/app/main/ui/settings/access_tokens.cljs:183, src/app/main/ui/viewer/login.cljs:77, src/app/main/ui/viewer/share_link.cljs:174, src/app/main/ui/workspace/libraries.cljs:522 msgid "labels.close" msgstr "Chiudere" -#: src/app/main/ui/dashboard/comments.cljs +#: src/app/main/ui/dashboard/comments.cljs:104, src/app/main/ui/viewer/comments.cljs:70, src/app/main/ui/workspace/comments.cljs:126 msgid "labels.comments" msgstr "Commenti" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:985, src/app/main/ui/workspace/main_menu.cljs:110 msgid "labels.community" msgstr "Community" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:103 msgid "labels.confirm-password" msgstr "Conferma la password" +#: src/app/main/ui/dashboard/import.cljs:520, src/app/main/ui/export.cljs:465, src/app/main/ui/onboarding/newsletter.cljs:101 msgid "labels.continue" msgstr "Continua" +#, unused msgid "labels.continue-with" msgstr "Continua con" +#: src/app/main/ui/viewer/login.cljs:75 msgid "labels.continue-with-penpot" msgstr "Puoi continuare con un account Penpot" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:157, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:190 msgid "labels.create" msgstr "Crea" -#: src/app/main/ui/dashboard/team_form.cljs, -#: src/app/main/ui/dashboard/team_form.cljs +#: src/app/main/ui/dashboard/team_form.cljs:101, src/app/main/ui/dashboard/team_form.cljs:121 msgid "labels.create-team" msgstr "Crea un nuovo team" -#: src/app/main/ui/dashboard/team_form.cljs +#: src/app/main/ui/dashboard/team_form.cljs:113 msgid "labels.create-team.placeholder" msgstr "Inserisci il nome del nuovo team" +#, unused msgid "labels.custom-fonts" msgstr "Font personalizzati" -#: src/app/main/ui/settings/sidebar.cljs +#: src/app/main/ui/settings/sidebar.cljs:73 msgid "labels.dashboard" msgstr "Dashboard" -#: src/app/main/ui/dashboard/project_menu.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:306, src/app/main/ui/dashboard/fonts.cljs:255, src/app/main/ui/dashboard/fonts.cljs:332, src/app/main/ui/dashboard/fonts.cljs:346, src/app/main/ui/dashboard/project_menu.cljs:115, src/app/main/ui/dashboard/team.cljs:904, src/app/main/ui/settings/access_tokens.cljs:209, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:209 msgid "labels.delete" msgstr "Eliminare" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:357 msgid "labels.delete-comment" msgstr "Eliminare il commento" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:354 msgid "labels.delete-comment-thread" msgstr "Eliminare il thread" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:648 msgid "labels.delete-invitation" msgstr "Eliminare l'invito" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:262 msgid "labels.delete-multi-files" msgstr "Eliminare %s file" -#: src/app/main/ui/dashboard/projects.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs, -#: src/app/main/ui/dashboard/files.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:28, src/app/main/ui/dashboard/files.cljs:72, src/app/main/ui/dashboard/files.cljs:156, src/app/main/ui/dashboard/projects.cljs:220, src/app/main/ui/dashboard/projects.cljs:224, src/app/main/ui/dashboard/sidebar.cljs:791 msgid "labels.drafts" msgstr "Bozze" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:350, src/app/main/ui/dashboard/fonts.cljs:252, src/app/main/ui/dashboard/team.cljs:902, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:205 msgid "labels.edit" msgstr "Modificare" +#, unused msgid "labels.edit-file" msgstr "Modificare il file" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:118, src/app/main/ui/dashboard/team.cljs:279, src/app/main/ui/dashboard/team.cljs:520, src/app/main/ui/dashboard/team.cljs:553, src/app/main/ui/onboarding/team_choice.cljs:66 msgid "labels.editor" msgstr "Redattore" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:661 msgid "labels.expired-invitation" msgstr "Scaduto" +#: src/app/main/ui/export.cljs:173 msgid "labels.export" msgstr "Esportare" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:51 msgid "labels.feedback-disabled" msgstr "Feedback disabilitato" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:42 msgid "labels.feedback-sent" msgstr "Feedback inviato" +#: src/app/main/ui/dashboard/fonts.cljs:412 msgid "labels.font-family" msgstr "Font Family" +#, unused msgid "labels.font-providers" msgstr "Fornitori di font" +#: src/app/main/ui/dashboard/fonts.cljs:413 msgid "labels.font-variants" msgstr "Stili" +#: src/app/main/ui/dashboard/fonts.cljs:52, src/app/main/ui/dashboard/sidebar.cljs:811 msgid "labels.fonts" msgstr "Font" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:1015, src/app/main/ui/workspace/main_menu.cljs:142 msgid "labels.github-repo" msgstr "Repository Github" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/settings/sidebar.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:1032, src/app/main/ui/settings/sidebar.cljs:113, src/app/main/ui/workspace/main_menu.cljs:171 msgid "labels.give-feedback" msgstr "Dai la tua opinione" +#: src/app/main/ui/auth/recovery_request.cljs:110, src/app/main/ui/auth/register.cljs:285, src/app/main/ui/viewer/login.cljs:117 msgid "labels.go-back" msgstr "Torna indietro" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:978, src/app/main/ui/workspace/main_menu.cljs:102 msgid "labels.help-center" msgstr "Supporto" -#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/comments.cljs:103, src/app/main/ui/workspace/comments.cljs:67 msgid "labels.hide-resolved-comments" msgstr "Non mostrare i commenti risolti" +#: src/app/main/ui/dashboard/fonts.cljs:410 msgid "labels.installed-fonts" msgstr "Font installati" -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:144 msgid "labels.internal-error.desc-message" msgstr "" "Si è verificato un problema. Ritenta l'operazione, se il problema persiste " "contatta il supporto." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:143 msgid "labels.internal-error.main-message" msgstr "Errore interno" -#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:516, src/app/main/ui/dashboard/team.cljs:89, src/app/main/ui/dashboard/team.cljs:97, src/app/main/ui/dashboard/team.cljs:708 msgid "labels.invitations" msgstr "Inviti" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:51 msgid "labels.language" msgstr "Lingua" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:1008, src/app/main/ui/workspace/main_menu.cljs:134 msgid "labels.libraries-and-templates" msgstr "Librerie e template" +#: src/app/main/ui/viewer/header.cljs:203 msgid "labels.log-or-sign" msgstr "Connettiti o iscriviti" -#: src/app/main/ui/settings.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:1040 msgid "labels.logout" msgstr "Disconnetti" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/team.cljs:468 msgid "labels.member" msgstr "Membro" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:510, src/app/main/ui/dashboard/team.cljs:87, src/app/main/ui/dashboard/team.cljs:95 msgid "labels.members" msgstr "Membri" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:96 msgid "labels.new-password" msgstr "Nuova password" -#: src/app/main/ui/workspace/comments.cljs, -#: src/app/main/ui/dashboard/comments.cljs +#: src/app/main/ui/dashboard/comments.cljs:128, src/app/main/ui/workspace/comments.cljs:161 msgid "labels.no-comments-available" msgstr "Non ci sono notifiche di commenti in attesa" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:694 msgid "labels.no-invitations" msgstr "Non ci sono inviti." -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:696 +#, markdown msgid "labels.no-invitations-hint" msgstr "" "Premi il pulsante \"Invita nel team\" per invitare altri membri in questo " "team." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:50 msgid "labels.not-found.desc-message" msgstr "Questa pagina non esiste oppure non hai i permessi necessari per accedervi." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:49 msgid "labels.not-found.main-message" msgstr "Ops!" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/projects.cljs:239, src/app/main/ui/dashboard/team.cljs:1095 msgid "labels.num-of-files" msgid_plural "labels.num-of-files" msgstr[0] "1 file" msgstr[1] "%s file" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1090 msgid "labels.num-of-projects" msgid_plural "labels.num-of-projects" msgstr[0] "1 progetto" msgstr[1] "%s progetti" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:89 msgid "labels.old-password" msgstr "Vecchia password" #: src/app/main/ui/workspace/comments.cljs +#, unused msgid "labels.only-yours" msgstr "Solo tuoi" +#, unused msgid "labels.or" msgstr "oppure" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:286, src/app/main/ui/dashboard/team.cljs:518, src/app/main/ui/dashboard/team.cljs:1076 msgid "labels.owner" msgstr "Proprietario" -#: src/app/main/ui/settings/sidebar.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/settings/sidebar.cljs:87 msgid "labels.password" msgstr "Password" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:662 msgid "labels.pending-invitation" msgstr "In attesa" -#: src/app/main/ui/settings/sidebar.cljs +#: src/app/main/ui/settings/profile.cljs:118, src/app/main/ui/settings/sidebar.cljs:82 msgid "labels.profile" msgstr "Profilo" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:784 msgid "labels.projects" msgstr "Progetti" -#: src/app/main/ui/settings/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:998, src/app/main/ui/settings/sidebar.cljs:106, src/app/main/ui/workspace/main_menu.cljs:126 msgid "labels.release-notes" msgstr "Note di versione" -#: src/app/main/ui/workspace/libraries.cljs, -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/workspace/libraries.cljs, src/app/main/ui/dashboard/team.cljs +#, unused msgid "labels.remove" msgstr "Rimuovere" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:316 msgid "labels.remove-member" msgstr "Rimuovi membro" -#: src/app/main/ui/dashboard/sidebar.cljs, -#: src/app/main/ui/dashboard/project_menu.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:271, src/app/main/ui/dashboard/project_menu.cljs:85, src/app/main/ui/dashboard/sidebar.cljs:539, src/app/main/ui/workspace/sidebar/assets/groups.cljs:157 msgid "labels.rename" msgstr "Rinominare" -#: src/app/main/ui/dashboard/team_form.cljs +#: src/app/main/ui/dashboard/team_form.cljs:99 msgid "labels.rename-team" msgstr "Rinominare il team" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:645 msgid "labels.resend-invitation" msgstr "Invia di nuovo l'invito" -#: src/app/main/ui/static.cljs, src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:61, src/app/main/ui/static.cljs:70, src/app/main/ui/static.cljs:148 msgid "labels.retry" msgstr "Riprova" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:469, src/app/main/ui/dashboard/team.cljs:709 msgid "labels.role" msgstr "Ruolo" +#: src/app/main/ui/dashboard/fonts.cljs:380, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:191 msgid "labels.save" msgstr "Salvare" +#: src/app/main/ui/dashboard/fonts.cljs:415 msgid "labels.search-font" msgstr "Cerca un font" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:82 msgid "labels.send" msgstr "Inviare" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:82 msgid "labels.sending" msgstr "Invio…" -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:68 msgid "labels.service-unavailable.desc-message" msgstr "Stiamo effettuando la manutenzione programmata dei nostri sistemi." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:67 msgid "labels.service-unavailable.main-message" msgstr "Servizio non disponibile" -#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:530, src/app/main/ui/dashboard/team.cljs:88, src/app/main/ui/dashboard/team.cljs:102, src/app/main/ui/settings/options.cljs:84, src/app/main/ui/settings/sidebar.cljs:93 msgid "labels.settings" msgstr "Configurazione" +#, unused msgid "labels.share-prototype" msgstr "Condividi il prototipo" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:800 msgid "labels.shared-libraries" msgstr "Librerie condivise" -#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/comments.cljs:82, src/app/main/ui/workspace/comments.cljs:55, src/app/main/ui/workspace/comments.cljs:135 msgid "labels.show-all-comments" msgstr "Mostra tutti i commenti" +#: src/app/main/ui/viewer/comments.cljs:115 msgid "labels.show-comments-list" msgstr "Mostra la lista dei commenti" -#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/comments.cljs:91, src/app/main/ui/workspace/comments.cljs:61, src/app/main/ui/workspace/comments.cljs:136 msgid "labels.show-your-comments" msgstr "Mostra solo i tuoi commenti" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:710 msgid "labels.status" msgstr "Stato" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:992, src/app/main/ui/workspace/main_menu.cljs:118 msgid "labels.tutorials" msgstr "Tutorial" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:103 msgid "labels.update" msgstr "Aggiorna" -#: src/app/main/ui/dashboard/team_form.cljs +#: src/app/main/ui/dashboard/team_form.cljs:120 msgid "labels.update-team" msgstr "Aggiorna team" +#: src/app/main/ui/dashboard/fonts.cljs:241 msgid "labels.upload" msgstr "Caricare" +#: src/app/main/ui/dashboard/fonts.cljs:169 msgid "labels.upload-custom-fonts" msgstr "Caricare font personalizzati" +#: src/app/main/ui/dashboard/fonts.cljs:240 msgid "labels.uploading" msgstr "Caricamento…" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:123, src/app/main/ui/dashboard/team.cljs:282, src/app/main/ui/dashboard/team.cljs:521 msgid "labels.viewer" msgstr "" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:194 msgid "labels.write-new-comment" msgstr "Scrivere un nuovo commento" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/team.cljs:237 msgid "labels.you" msgstr "(tu)" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:968 msgid "labels.your-account" msgstr "Il tuo account" -#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs +#: src/app/main/data/media.cljs:49, src/app/main/data/workspace/media.cljs:223, src/app/main/data/workspace/media.cljs:453 msgid "media.loading" msgstr "Caricamento dell'immagine…" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/data/common.cljs:113 msgid "modals.add-shared-confirm.accept" msgstr "Aggiungere come libreria condivisa" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/data/common.cljs:111 msgid "modals.add-shared-confirm.hint" msgstr "" "Una volta aggiunta come libreria condivisa, le risorse di questa libreria " "saranno disponibili per essere utilizzate nel resto dei tuoi file." -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/data/common.cljs:110 msgid "modals.add-shared-confirm.message" msgstr "Aggiungere \"%s\" come libreria condivisa" -#: src/app/main/ui/workspace/nudge.cljs +#: src/app/main/ui/workspace/nudge.cljs:60 msgid "modals.big-nudge" msgstr "Grande scatto" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:127 msgid "modals.change-email.confirm-email" msgstr "Verificare il nuovo indirizzo e-mail" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:114 msgid "modals.change-email.info" msgstr "" "Ti invieremo un'e-mail al tuo attuale indirizzo e-mail \"%s\" per " "verificare la tua identità." -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:119 msgid "modals.change-email.new-email" msgstr "Nuovo indirizzo e-mail" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:136 msgid "modals.change-email.submit" msgstr "Cambiare indirizzo e-mail" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:107 msgid "modals.change-email.title" msgstr "Cambia il tuo indirizzo e-mail" -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:59 msgid "modals.delete-account.cancel" msgstr "Annulla e mantieni il mio account" -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:64 msgid "modals.delete-account.confirm" msgstr "Sì, cancellare il mio account" -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:53 msgid "modals.delete-account.info" msgstr "" "Cancellando il tuo account, perderai tutti i tuoi archivi e progetti " "attuali." -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:46 msgid "modals.delete-account.title" msgstr "Eliminare il proprio account?" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:298 msgid "modals.delete-comment-thread.accept" msgstr "Elimina conversazione" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:297 msgid "modals.delete-comment-thread.message" msgstr "" "Eliminare questa conversazione? Tutti i commenti in questo thread saranno " "cancellati." -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:296 msgid "modals.delete-comment-thread.title" msgstr "Elimina conversazione" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:123 msgid "modals.delete-file-confirm.accept" msgstr "Elimina file" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:122 msgid "modals.delete-file-confirm.message" msgstr "Eliminare questo file?" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:121 msgid "modals.delete-file-confirm.title" msgstr "Eliminazione file" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:117 msgid "modals.delete-file-multi-confirm.accept" msgstr "Elimina files" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:116 msgid "modals.delete-file-multi-confirm.message" msgstr "Eliminare %s files?" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:115 msgid "modals.delete-file-multi-confirm.title" msgstr "Eliminazione %s files" +#: src/app/main/ui/dashboard/fonts.cljs:345 msgid "modals.delete-font-variant.message" msgstr "" "Eliminare questo stile del carattere? Se è usato in un file, non verrà " "caricato." +#: src/app/main/ui/dashboard/fonts.cljs:344 msgid "modals.delete-font-variant.title" msgstr "Eliminazione stile del carattere" +#: src/app/main/ui/dashboard/fonts.cljs:331 msgid "modals.delete-font.message" msgstr "Eliminare questo carattere? Se è usato in un file, non verrà caricato." +#: src/app/main/ui/dashboard/fonts.cljs:330 msgid "modals.delete-font.title" msgstr "Eliminazione carattere" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs +#: src/app/main/ui/workspace/context_menu.cljs:522, src/app/main/ui/workspace/sidebar/sitemap.cljs:45 msgid "modals.delete-page.body" msgstr "Eliminare questa pagina?" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs +#: src/app/main/ui/workspace/context_menu.cljs:521, src/app/main/ui/workspace/sidebar/sitemap.cljs:44 msgid "modals.delete-page.title" msgstr "Elimina pagina" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:69 msgid "modals.delete-project-confirm.accept" msgstr "Elimina progetto" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:68 msgid "modals.delete-project-confirm.message" msgstr "Eliminare questo progetto?" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:67 msgid "modals.delete-project-confirm.title" msgstr "Elimina progetto" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:51 msgid "modals.delete-shared-confirm.accept" msgid_plural "modals.delete-shared-confirm.accept" msgstr[0] "Elimina file" msgstr[1] "Elimina i file" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:46 msgid "modals.delete-shared-confirm.message" msgid_plural "modals.delete-shared-confirm.message" msgstr[0] "Eliminare questo file?" msgstr[1] "Eliminare questi file?" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:41 msgid "modals.delete-shared-confirm.title" msgid_plural "modals.delete-shared-confirm.title" msgstr[0] "Eliminazione del file" msgstr[1] "Eliminazione dei file" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:435 msgid "modals.delete-team-confirm.accept" msgstr "Elimina team" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:434 msgid "modals.delete-team-confirm.message" msgstr "" "Eliminare questo team? Tutti i progetti e i file associati con questo team " "verranno cancellati permanentemente." -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:433 msgid "modals.delete-team-confirm.title" msgstr "Eliminazione del team in corso" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:427 msgid "modals.delete-team-member-confirm.accept" msgstr "Elimina membro" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:426 msgid "modals.delete-team-member-confirm.message" msgstr "Eliminare questo membro dal team?" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:425 msgid "modals.delete-team-member-confirm.title" msgstr "Elimina membro del team" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:218 msgid "modals.invite-member-confirm.accept" msgstr "Invia invito" +#: src/app/main/ui/dashboard/team.cljs:213, src/app/main/ui/onboarding/team_choice.cljs:156 msgid "modals.invite-member.emails" msgstr "Email, separate da virgole" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:190 msgid "modals.invite-team-member.title" msgstr "Invita membri al team" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:423, src/app/main/ui/dashboard/team.cljs:393 msgid "modals.leave-and-close-confirm.hint" msgstr "" "Poiché sei il solo membro di questo team, il team verrà eliminato insieme " "ai sui file e progetti." -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:422, src/app/main/ui/dashboard/team.cljs:392 msgid "modals.leave-and-close-confirm.message" msgstr "Lasciare il team di %s?" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/change_owner.cljs:55 msgid "modals.leave-and-reassign.hint1" msgstr "" "Sei il proprietario di questo team. Per favore seleziona un altro membro da " "promuovere a proprietario prima di uscire." -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/change_owner.cljs:78 msgid "modals.leave-and-reassign.promote-and-leave" msgstr "Promuovi e esci" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/change_owner.cljs:34 msgid "modals.leave-and-reassign.select-member-to-promote" msgstr "Seleziona un membro da promuovere" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/change_owner.cljs:49 msgid "modals.leave-and-reassign.title" msgstr "Prima di uscire" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:402, src/app/main/ui/dashboard/sidebar.cljs:424, src/app/main/ui/dashboard/team.cljs:394, src/app/main/ui/dashboard/team.cljs:416 msgid "modals.leave-confirm.accept" msgstr "Lascia il team" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:401, src/app/main/ui/dashboard/team.cljs:415 msgid "modals.leave-confirm.message" msgstr "Vuoi lasciare questo team?" -#: src/app/main/ui/workspace/nudge.cljs +#: src/app/main/ui/workspace/main_menu.cljs:266, src/app/main/ui/workspace/nudge.cljs:47 msgid "modals.nudge-title" msgstr "Ampiezza scatto" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:340 msgid "modals.promote-owner-confirm.accept" msgstr "Trasferisci proprietà" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:339 msgid "modals.promote-owner-confirm.hint" msgstr "" "Trasferendo la proprietà, il tuo ruolo diverrà quello di Admin, perdendo " "alcuni privilegi su questo team. " -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:338 msgid "modals.promote-owner-confirm.message" msgstr "" "Sei l'attuale proprietario di questo team. Trasferire la proprietà del team " "a %s?" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:337 msgid "modals.promote-owner-confirm.title" msgstr "Nuovo proprietario del team" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "modals.remove-shared-confirm.accept" msgstr "Elimina come Libreria Condivisa" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "modals.remove-shared-confirm.hint" msgstr "" "Una volta eliminata come Libreria Condivisa, la Libreria dei File di questo " "file smetterà di essere a disposizione per essere usata con il resto dei " "tuoi file." -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "modals.remove-shared-confirm.message" msgstr "Elimina \"%s\" come Libreria Condivisa" -#: src/app/main/ui/workspace/nudge.cljs +#: src/app/main/ui/workspace/nudge.cljs:53 msgid "modals.small-nudge" msgstr "Piccolo scatto" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:52 msgid "modals.unpublish-shared-confirm.accept" msgstr "Annulla pubblicazione" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:47 msgid "modals.unpublish-shared-confirm.message" msgid_plural "modals.unpublish-shared-confirm.message" msgstr[0] "Annullare la pubblicazione di questa libreria?" msgstr[1] "Annullare la pubblicazione di queste librerie?" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:42 msgid "modals.unpublish-shared-confirm.title" msgid_plural "modals.unpublish-shared-confirm.title" msgstr[0] "Annulla pubblicazione libreria" msgstr[1] "Annulla pubblicazione librerie" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#, unused msgid "modals.update-remote-component-in-bulk.hint" msgstr "" "Stai per aggiornare i componenti in una libreria condivisa. Questo potrebbe " "causare modifiche nei file che la utilizzano." -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#, unused msgid "modals.update-remote-component-in-bulk.message" msgstr "Aggiorna componenti in una libreria condivisa" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:380 msgid "modals.update-remote-component.accept" msgstr "Aggiorna" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:379 msgid "modals.update-remote-component.cancel" msgstr "Cancella" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:378 msgid "modals.update-remote-component.hint" msgstr "" "Stai per aggiornare un componente in una libreria condivisa. Questo " "potrebbe causare modifiche nei file che la utilizzano." -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:377 msgid "modals.update-remote-component.message" msgstr "Aggiorna un componente in una libreria condivisa" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:154, src/app/main/ui/dashboard/team.cljs:595 msgid "notifications.invitation-email-sent" msgstr "Invito inviato con successo" -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:24 msgid "notifications.profile-deletion-not-allowed" msgstr "Non puoi eliminare il tuo profilo. Riassegna i tuoi team prima di procedere." -#: src/app/main/ui/settings/profile.cljs, src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:29, src/app/main/ui/settings/profile.cljs:35 msgid "notifications.profile-saved" msgstr "Profilo salvato con successo!" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:63 msgid "notifications.validation-email-sent" msgstr "Email di verifica inviata a %s. Controlla la tua email!" +#, unused msgid "onboarding-v2.before-start.desc1" msgstr "" "Suggerimento: ci sono tantissime risorse disponibili per aiutarti nei tuoi " "primi passi con Penpot, come la Guida Utenti e il nostro canale di Youtube." +#, unused msgid "onboarding-v2.before-start.desc2" msgstr "" "Informazioni dettagliate su come usare Penpot. Dalla prototipazione " "all'organizzazione o condivisione di design." +#, unused msgid "onboarding-v2.before-start.desc2.title" msgstr "Guida utenti" +#, unused msgid "onboarding-v2.before-start.desc3" msgstr "Puoi guardare i nostri tutorial e quelli creati dalla nostra comunità." +#, unused msgid "onboarding-v2.before-start.desc3.title" msgstr "Video tutorial" +#, unused msgid "onboarding-v2.before-start.title" msgstr "Prima di cominciare" +#, unused msgid "onboarding-v2.welcome.desc1" msgstr "" "Penpot è Open Source ed è prodotto da Kaleidos così come dalla comunità, in " "cui già adesso tantissime persone si aiutano a vicenda. Chiunque può " "collaborare:" +#, unused msgid "onboarding-v2.welcome.desc2" msgstr "" "Uno spazio pubblico dove imparare, condividere e discutere su Penpot, il " "suo presente e futuro con l'intera Comunità e con il team di Penpot." +#, unused msgid "onboarding-v2.welcome.desc2.title" msgstr "Partecipando nella Comunità" +#, unused msgid "onboarding-v2.welcome.desc3" msgstr "" "Qui troverai come collaborare con le traduzioni, richiedere funzionalità, " "contribuire al codice, cercare bug…" +#, unused msgid "onboarding-v2.welcome.desc3.title" msgstr "Guida alla contribuzione" +#: src/app/main/ui/onboarding/team_choice.cljs:31 msgid "onboarding-v2.welcome.title" msgstr "Benvenuti su Penpot!" +#: src/app/main/ui/onboarding/team_choice.cljs:215 msgid "onboarding.choice.team-up.create-team-desc" msgstr "Dopo aver nominato il tuo team, potrai invitare persone ad unirsi ad esso." +#: src/app/main/ui/onboarding/team_choice.cljs:224 msgid "onboarding.choice.team-up.create-team-placeholder" msgstr "Inserisci il nome del team" +#: src/app/main/ui/dashboard/projects.cljs:89, src/app/main/ui/onboarding/team_choice.cljs:140 msgid "onboarding.choice.team-up.invite-members" msgstr "Invita membri" +#: src/app/main/ui/onboarding/team_choice.cljs:141 msgid "onboarding.choice.team-up.invite-members-info" msgstr "" "Non dimenticarti di includere ogni tipo di persona. Programmatori, " "designers, responsabili... la diversità si somma :)" +#: src/app/main/ui/dashboard/team.cljs:202, src/app/main/ui/onboarding/team_choice.cljs:146 msgid "onboarding.choice.team-up.roles" msgstr "Invita con il ruolo:" +#, unused msgid "onboarding.newsletter.accept" msgstr "Si, iscrivimi" +#: src/app/main/ui/onboarding/newsletter.cljs:40 msgid "onboarding.newsletter.acceptance-message" msgstr "" "La tua richiesta di iscrizione è stata invita, ti invieremo un'email di " "conferma." +#: src/app/main/ui/onboarding/newsletter.cljs:95 msgid "onboarding.newsletter.policy" msgstr "Condizioni sulla Privacy." +#: src/app/main/ui/onboarding/newsletter.cljs:60 msgid "onboarding.newsletter.title" msgstr "Vuoi ricevere le news di Pentot?" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:727 msgid "title.team-invitations" msgstr "Inviti - %s - Penpot" diff --git a/frontend/translations/jpn_JP.po b/frontend/translations/jpn_JP.po index 9b325ce044..d3d35466f0 100644 --- a/frontend/translations/jpn_JP.po +++ b/frontend/translations/jpn_JP.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "PO-Revision-Date: 2024-06-17 08:07+0000\n" "Last-Translator: Anonymous \n" -"Language-Team: Japanese \n" +"Language-Team: Japanese " +"\n" "Language: jpn_JP\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" @@ -11,901 +11,968 @@ msgstr "" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Weblate 5.6-dev\n" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:151, src/app/main/ui/viewer/login.cljs:104 msgid "auth.already-have-account" msgstr "アカウントをお持ちですか?" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:299 msgid "auth.check-your-email" msgstr "Penpotを使う前にメールのリンクをクリックして、メールアドレスを認証してください。" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:78 msgid "auth.confirm-password" msgstr "パスワードを確認" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/register.cljs:163 msgid "auth.create-demo-account" msgstr "デモアカウントを作成" #: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#, unused msgid "auth.create-demo-profile" msgstr "試してみませんか?" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/login.cljs:43 msgid "auth.demo-warning" msgstr "このサービスはデモ版です。実際の業務には使用しないでください。" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:189, src/app/main/ui/viewer/login.cljs:90 msgid "auth.forgot-password" msgstr "パスワードを忘れましたか?" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:254 msgid "auth.fullname" msgstr "フルネーム" -#: src/app/main/ui/auth/register.cljs -#, fuzzy +#: src/app/main/ui/auth/register.cljs:155, src/app/main/ui/viewer/login.cljs:107 msgid "auth.login-here" msgstr "こちらからログイン" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:195 msgid "auth.login-submit" msgstr "ログイン" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:222 msgid "auth.login-with-github-submit" msgstr "GitHub" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:228 msgid "auth.login-with-gitlab-submit" msgstr "Gitlab" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:216 msgid "auth.login-with-google-submit" msgstr "Google" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:201 msgid "auth.login-with-ldap-submit" msgstr "LDAPでログイン" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:234, src/app/main/ui/auth/login.cljs:255 msgid "auth.login-with-oidc-submit" msgstr "OpenID Connect" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:71 msgid "auth.new-password" msgstr "新しいパスワードを入力" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:42 msgid "auth.notifications.invalid-token-error" msgstr "リカバリコードが無効です。" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:46 msgid "auth.notifications.password-changed-successfully" msgstr "パスワードを変更しました" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:57 msgid "auth.notifications.profile-not-verified" msgstr "プロフィールが確認されていません。続ける前にプロフィールを確認してください。" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:40 msgid "auth.notifications.recovery-token-sent" msgstr "パスワード変更リンクをメールで送信しました。" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:47 msgid "auth.notifications.team-invitation-accepted" msgstr "チームに参加しました" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:179, src/app/main/ui/auth/register.cljs:115 msgid "auth.password" msgstr "パスワード" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:114 msgid "auth.password-length-hint" msgstr "登録" +#: src/app/main/ui/auth.cljs:41 msgid "auth.privacy-policy" msgstr "プライバシーポリシー" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:88 msgid "auth.recovery-request-submit" msgstr "パスワードを回復" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:101 msgid "auth.recovery-request-subtitle" msgstr "手順を記載したメールをお送りします" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:100 msgid "auth.recovery-request-title" msgstr "パスワードを忘れましたか?" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:82 msgid "auth.recovery-submit" msgstr "パスワードを変更" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:298, src/app/main/ui/viewer/login.cljs:93 msgid "auth.register" msgstr "アカウントをお持ちでない方はこちら" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:302, src/app/main/ui/auth/register.cljs:121, src/app/main/ui/auth/register.cljs:263, src/app/main/ui/viewer/login.cljs:97 msgid "auth.register-submit" msgstr "アカウントを作成" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:140 msgid "auth.register-title" msgstr "アカウントを作成" #: src/app/main/ui/auth.cljs +#, unused msgid "auth.sidebar-tagline" msgstr "デザインとプロトタイピングのためのオープンソースです。" +#: src/app/main/ui/auth.cljs:33, src/app/main/ui/dashboard/sidebar.cljs:1022, src/app/main/ui/workspace/main_menu.cljs:150 msgid "auth.terms-of-service" msgstr "利用規約" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:297 msgid "auth.verification-email-sent" msgstr "認証メールを送信しました" +#: src/app/main/ui/workspace/libraries.cljs:228 msgid "common.publish" msgstr "公開" +#: src/app/main/ui/viewer/share_link.cljs:304, src/app/main/ui/viewer/share_link.cljs:314 msgid "common.share-link.all-users" msgstr "すべてのPenpotユーザー" +#: src/app/main/ui/viewer/share_link.cljs:198 msgid "common.share-link.confirm-deletion-link-description" msgstr "本当にこのリンクを削除しますか?削除すると、リンクは使用できなくなります" +#: src/app/main/ui/viewer/share_link.cljs:259, src/app/main/ui/viewer/share_link.cljs:289 msgid "common.share-link.current-tag" msgstr "(現在有効)" +#: src/app/main/ui/viewer/share_link.cljs:207, src/app/main/ui/viewer/share_link.cljs:214 msgid "common.share-link.destroy-link" msgstr "リンクを削除" +#: src/app/main/ui/viewer/share_link.cljs:221 msgid "common.share-link.get-link" msgstr "リンクを取得" +#: src/app/main/ui/viewer/share_link.cljs:139 msgid "common.share-link.link-copied-success" msgstr "リンクをコピーしました" +#: src/app/main/ui/viewer/share_link.cljs:231 msgid "common.share-link.manage-ops" msgstr "権限の管理" +#: src/app/main/ui/viewer/share_link.cljs:277 msgid "common.share-link.page-shared" msgid_plural "common.share-link.page-shared" msgstr[0] "%s ページが共有済み" +#: src/app/main/ui/viewer/share_link.cljs:298 msgid "common.share-link.permissions-can-comment" msgstr "コメント可能" +#: src/app/main/ui/viewer/share_link.cljs:308 msgid "common.share-link.permissions-can-inspect" msgstr "コードを調査" +#: src/app/main/ui/viewer/share_link.cljs:193 msgid "common.share-link.permissions-hint" msgstr "リンクを知っている全員がアクセス可能" +#: src/app/main/ui/viewer/share_link.cljs:241 msgid "common.share-link.permissions-pages" msgstr "ページ共有済み" +#: src/app/main/ui/viewer/share_link.cljs:183 msgid "common.share-link.placeholder" msgstr "共有リンクはここに表示されます" +#: src/app/main/ui/viewer/share_link.cljs:303, src/app/main/ui/viewer/share_link.cljs:313 msgid "common.share-link.team-members" msgstr "チームのメンバーのみ" +#: src/app/main/ui/viewer/share_link.cljs:171 msgid "common.share-link.title" msgstr "プロトタイプを共有" +#: src/app/main/ui/viewer/share_link.cljs:269 msgid "common.share-link.view-all" msgstr "すべて選択" +#: src/app/main/ui/workspace/libraries.cljs:224 msgid "common.unpublish" msgstr "非公開" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:85 msgid "dasboard.team-hero.management" msgstr "チームを管理" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.tutorial-hero.start" msgstr "チュートリアルを始める" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:291, src/app/main/ui/workspace/main_menu.cljs:572 msgid "dashboard.add-shared" msgstr "共有ライブラリとして追加" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:75 msgid "dashboard.change-email" msgstr "メールアドレスを変更" -#: src/app/main/data/dashboard.cljs, src/app/main/data/dashboard.cljs +#: src/app/main/data/dashboard.cljs:762, src/app/main/data/dashboard.cljs:983 msgid "dashboard.copy-suffix" msgstr "(コピー)" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:338 msgid "dashboard.create-new-team" msgstr "チームを新規作成" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/components/context_menu_a11y.cljs:256, src/app/main/ui/dashboard/sidebar.cljs:646 msgid "dashboard.default-team-name" msgstr "あなたのPenpot" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:571 msgid "dashboard.delete-team" msgstr "チームを削除" +#: src/app/main/ui/dashboard/file_menu.cljs:296, src/app/main/ui/workspace/main_menu.cljs:589 msgid "dashboard.download-binary-file" msgstr "Penpotファイル(.penpot)をダウンロード" +#: src/app/main/ui/dashboard/file_menu.cljs:300, src/app/main/ui/workspace/main_menu.cljs:597 msgid "dashboard.download-standard-file" msgstr "標準形式(.svg+.json)でダウンロード" -#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:276, src/app/main/ui/dashboard/project_menu.cljs:90 msgid "dashboard.duplicate" msgstr "複製" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:240 msgid "dashboard.duplicate-multi" msgstr "%s ファイルを複製" -#: src/app/main/ui/dashboard/grid.cljs +#: src/app/main/ui/dashboard/placeholder.cljs:32 #, markdown msgid "dashboard.empty-placeholder-drafts" msgstr "" "まだファイルがありません。もしいくつかのテンプレートを試してみたいなら、[Libraries & " "templates](https://penpot.app/libraries-templates) をチェックしてみてください。" +#: src/app/main/ui/workspace/main_menu.cljs:605 msgid "dashboard.export-frames" msgstr "PDFでエクスポート" -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:201 msgid "dashboard.export-frames.title" msgstr "PDFにエクスポート" -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:190 msgid "dashboard.export-shapes.title" msgstr "エクスポートの選択" +#: src/app/main/ui/export.cljs:436 msgid "dashboard.export.options.all.title" msgstr "共有ライブラリとしてエクスポート" -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:194 msgid "dashboard.fonts.fonts-added" msgid_plural "dashboard.fonts.fonts-added" msgstr[0] "%s フォントを追加しました" -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:202 msgid "dashboard.fonts.upload-all" msgstr "すべてアップロード" +#: src/app/main/ui/dashboard/import.cljs:472, src/app/main/ui/dashboard/project_menu.cljs:108 msgid "dashboard.import" msgstr "Penpotをインポート" +#: src/app/main/ui/dashboard/import.cljs:304, src/app/worker/import.cljs:753, src/app/worker/import.cljs:755 msgid "dashboard.import.analyze-error" msgstr "Penpotファイルをインポート" +#: src/app/main/ui/dashboard/import.cljs:144 msgid "dashboard.import.progress.process-colors" msgstr "色を処理しています" +#: src/app/main/ui/dashboard/import.cljs:153 msgid "dashboard.import.progress.process-components" msgstr "コンポーネントを処理しています" +#: src/app/main/ui/dashboard/import.cljs:150 msgid "dashboard.import.progress.process-media" msgstr "メディアを処理しています" +#: src/app/main/ui/dashboard/import.cljs:141 msgid "dashboard.import.progress.process-page" msgstr "%s ページ処理中" +#: src/app/main/ui/dashboard/import.cljs:135 msgid "dashboard.import.progress.upload-data" msgstr "アップロード中 (%s/%s)" +#: src/app/main/ui/dashboard/import.cljs:138 msgid "dashboard.import.progress.upload-media" msgstr "アップロード中: %s" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:109 msgid "dashboard.invite-profile" msgstr "チームに招待" -#: src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:547, src/app/main/ui/dashboard/sidebar.cljs:556, src/app/main/ui/dashboard/sidebar.cljs:563, src/app/main/ui/dashboard/team.cljs:312 msgid "dashboard.leave-team" msgstr "チームから脱退" -#: src/app/main/ui/dashboard/libraries.cljs +#: src/app/main/ui/dashboard/libraries.cljs:53 msgid "dashboard.libraries-title" msgstr "共有ライブラリ" -#: src/app/main/ui/dashboard/grid.cljs +#: src/app/main/ui/dashboard/placeholder.cljs:45 msgid "dashboard.loading-files" msgstr "ファイルを読みこんでいます…" +#: src/app/main/ui/dashboard/fonts.cljs:431 msgid "dashboard.loading-fonts" msgstr "フォントを読みこんでいます…" -#: src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/files.cljs +#: src/app/main/ui/dashboard/files.cljs:105, src/app/main/ui/dashboard/projects.cljs:252, src/app/main/ui/dashboard/projects.cljs:253 msgid "dashboard.new-file" msgstr "+ 新しいファイル" -#: src/app/main/data/dashboard.cljs +#: src/app/main/data/dashboard.cljs:958, src/app/main/data/dashboard.cljs:1181 msgid "dashboard.new-file-prefix" msgstr "新しいファイル" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:55 msgid "dashboard.new-project" msgstr "+ 新規プロジェクト" -#: src/app/main/data/dashboard.cljs +#: src/app/main/data/dashboard.cljs:726, src/app/main/data/dashboard.cljs:1184 msgid "dashboard.new-project-prefix" msgstr "新規プロジェクト" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:60 msgid "dashboard.no-matches-for" msgstr "\"%s\"が見つかりませんでした" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:827 msgid "dashboard.no-projects-placeholder" msgstr "ピン留めされたプロジェクトはここに表示されます" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:33 msgid "dashboard.notifications.email-changed-successfully" msgstr "メールアドレスが更新されました" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:27 msgid "dashboard.notifications.email-verified-successfully" msgstr "メールアドレスが認証されました" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:37 msgid "dashboard.notifications.password-saved" msgstr "パスワードを保存しました!" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1081 msgid "dashboard.num-of-members" msgstr "%s メンバー" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:267 msgid "dashboard.open-in-new-tab" msgstr "新しいタブでファイルで開く" +#: src/app/main/ui/dashboard/files.cljs:117, src/app/main/ui/dashboard/projects.cljs:260, src/app/main/ui/dashboard/projects.cljs:261 msgid "dashboard.options" msgstr "オプション" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:106, src/app/main/ui/settings/password.cljs:119 msgid "dashboard.password-change" msgstr "パスワードを変更" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:51 msgid "dashboard.projects-title" msgstr "プロジェクト" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:86 msgid "dashboard.remove-account" msgstr "アカウントを削除したいですか?" #: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "dashboard.remove-shared" msgstr "共有ライブラリから削除" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:78 msgid "dashboard.save-settings" msgstr "設定を保存" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:246, src/app/main/ui/dashboard/sidebar.cljs:247 msgid "dashboard.search-placeholder" msgstr "検索…" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:55 msgid "dashboard.searching-for" msgstr "“%s“ を検索しています…" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:56 msgid "dashboard.select-ui-language" msgstr "表示言語を選択" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:63 msgid "dashboard.select-ui-theme" msgstr "テーマを選択" -#: src/app/main/ui/dashboard/grid.cljs +#: src/app/main/ui/dashboard/projects.cljs:282 msgid "dashboard.show-all-files" msgstr "すべてのファイルを表示" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:96 msgid "dashboard.success-delete-file" msgstr "ファイルを削除しました" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:59 msgid "dashboard.success-delete-project" msgstr "プロジェクトを削除しました" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:91 msgid "dashboard.success-duplicate-file" msgstr "ファイルを複製しました" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:33 msgid "dashboard.success-duplicate-project" msgstr "プロジェクトを複製しました" -#: src/app/main/ui/dashboard/grid.cljs, src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:130, src/app/main/ui/dashboard/grid.cljs:558, src/app/main/ui/dashboard/sidebar.cljs:152 msgid "dashboard.success-move-file" msgstr "ファイルを移動しました" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:129 msgid "dashboard.success-move-files" msgstr "ファイルを移動しました" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:54 msgid "dashboard.success-move-project" msgstr "ファイルを削除しました" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1052 msgid "dashboard.team-info" msgstr "チーム情報" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1070 msgid "dashboard.team-members" msgstr "チームのメンバー" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1085 msgid "dashboard.team-projects" msgstr "チームのプロジェクト" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:61 msgid "dashboard.theme-change" msgstr "UIテーマ" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:42 msgid "dashboard.title-search" msgstr "検索結果" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:50 msgid "dashboard.type-something" msgstr "タイプして検索" -#: src/app/main/ui/settings/password.cljs, src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:71 msgid "dashboard.update-settings" msgstr "設定を更新" -#: src/app/main/ui/settings.cljs +#: src/app/main/ui/settings.cljs:31 msgid "dashboard.your-account-title" msgstr "あなたのアカウント" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:70 msgid "dashboard.your-email" msgstr "Eメール" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:62 msgid "dashboard.your-name" msgstr "名前" -#: src/app/main/ui/dashboard/search.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/libraries.cljs, src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, fuzzy +#: src/app/main/ui/dashboard/file_menu.cljs:38, src/app/main/ui/dashboard/fonts.cljs:33, src/app/main/ui/dashboard/libraries.cljs:42, src/app/main/ui/dashboard/projects.cljs:318, src/app/main/ui/dashboard/search.cljs:30, src/app/main/ui/dashboard/sidebar.cljs:312, src/app/main/ui/dashboard/team.cljs:495, src/app/main/ui/dashboard/team.cljs:729, src/app/main/ui/dashboard/team.cljs:991, src/app/main/ui/dashboard/team.cljs:1038 msgid "dashboard.your-penpot" msgstr "あなたのPenpot" -#: src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:36, src/app/main/ui/workspace/plugins.cljs:246 msgid "ds.confirm-cancel" msgstr "キャンセル" -#: src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:37, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:141 msgid "ds.confirm-ok" msgstr "OK" -#: src/app/main/ui/confirm.cljs, src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:35, src/app/main/ui/confirm.cljs:39 msgid "ds.confirm-title" msgstr "本当に実行しますか?" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:62 msgid "errors.auth-provider-not-configured" msgstr "認証プロバイダが設定されていません。" +#: src/app/main/errors.cljs:104 msgid "errors.auth.unable-to-login" msgstr "認証されていないか、セッションが失効しているようです。" -#: src/app/main/data/workspace.cljs +#: src/app/main/data/workspace.cljs:1598 msgid "errors.clipboard-not-implemented" msgstr "この処理は実行できません" -#: src/app/main/ui/auth/verify_token.cljs, src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/auth/verify_token.cljs:82, src/app/main/ui/settings/change_email.cljs:46 msgid "errors.email-already-exists" msgstr "メールアドレスは使用されています" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:87 msgid "errors.email-already-validated" msgstr "メールアドレスはすでに有効です。" +#: src/app/main/ui/settings/password.cljs:28 msgid "errors.email-as-password" msgstr "メールアドレスはパスワードとして設定できません" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/settings/change_email.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/auth/recovery_request.cljs:63, src/app/main/ui/dashboard/team.cljs:578, src/app/main/ui/settings/change_email.cljs:54 msgid "errors.email-has-permanent-bounces" msgstr "メールアドレス «%s» には多くの受信失敗レポートがあります。" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:35 msgid "errors.email-invalid-confirmation" msgstr "メールアドレスは同じものを入力する必要があります" +#: src/app/main/ui/dashboard/team.cljs:170 msgid "errors.email-spam-or-permanent-bounces" msgstr "«%s» はスパムとして報告されたか、または恒久的に受信失敗しています" -#: src/app/main/ui/auth/verify_token.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/data/users.cljs:709, src/app/main/ui/auth/login.cljs:65, src/app/main/ui/auth/login.cljs:116, src/app/main/ui/auth/register.cljs:69, src/app/main/ui/auth/register.cljs:237, src/app/main/ui/auth/verify_token.cljs:92, src/app/main/ui/dashboard/team.cljs:173, src/app/main/ui/onboarding/team_choice.cljs:95, src/app/main/ui/settings/access_tokens.cljs:91, src/app/main/ui/settings/feedback.cljs:52 msgid "errors.generic" msgstr "エラーが発生しました。" -#: src/app/main/ui/components/color_input.cljs +#: src/app/main/ui/components/color_input.cljs:57 msgid "errors.invalid-color" msgstr "無効な色" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/static.cljs:43 msgid "errors.invite-invalid" msgstr "招待が無効" +#: src/app/main/ui/static.cljs:44 msgid "errors.invite-invalid.info" msgstr "この招待はキャンセルされたか、失効しています。" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:101 msgid "errors.ldap-disabled" msgstr "LDAP認証は無効になっています。" -#: src/app/main/data/workspace/persistence.cljs +#: src/app/main/data/workspace/media.cljs:184 msgid "errors.media-too-large" msgstr "画像が大きすぎます。5MB以下にしてください。" -#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs +#: src/app/main/data/media.cljs:68, src/app/main/data/workspace/media.cljs:187 msgid "errors.media-type-mismatch" msgstr "画像の内容と拡張子が一致しません。" -#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/workspace/persistence.cljs, src/app/main/data/workspace/persistence.cljs, src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs +#: src/app/main/data/media.cljs:65, src/app/main/data/workspace/media.cljs:172, src/app/main/data/workspace/media.cljs:175, src/app/main/data/workspace/media.cljs:178, src/app/main/data/workspace/media.cljs:181 msgid "errors.media-type-not-allowed" msgstr "無効な画像です。" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:64 msgid "errors.password-too-short" msgstr "パスワードは8文字以上である必要があります" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/data/users.cljs:701, src/app/main/ui/auth/register.cljs:60 msgid "errors.registration-disabled" msgstr "新規登録は無効化されています。" +#: src/app/main/ui/dashboard/sidebar.cljs:371, src/app/main/ui/dashboard/team.cljs:365 msgid "errors.team-leave.owner-cant-leave" msgstr "オーナーはチームを脱退できません。オーナーロールを外してください。" -#: src/app/main/data/media.cljs, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs +#: src/app/main/data/media.cljs:71 msgid "errors.unexpected-error" msgstr "エラーが発生しました。" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:60 msgid "errors.unexpected-token" msgstr "不明なトークン" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:109, src/app/main/ui/auth/login.cljs:113 msgid "errors.wrong-credentials" msgstr "ユーザー名かパスワードが正しくありません。" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:25 msgid "errors.wrong-old-password" msgstr "以前のパスワードが正しくありません" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:77 msgid "feedback.description" msgstr "記述" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:95 msgid "feedback.discourse-go-to" msgstr "Penpot forumに参加" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:88 msgid "feedback.discourse-title" msgstr "Penpot コミュニティ" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:72 msgid "feedback.subject" msgstr "題名" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:68 msgid "feedback.title" msgstr "メールアドレス" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:98 msgid "feedback.twitter-title" msgstr "Xサポートアカウント" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:30 msgid "generic.error" msgstr "エラーが発生しました" -#: src/app/main/ui/inspect/attributes/blur.cljs +#: src/app/main/ui/viewer/inspect/attributes/blur.cljs:26 msgid "inspect.attributes.blur" msgstr "ぼかし" -#: src/app/main/ui/inspect/attributes/fill.cljs +#: src/app/main/ui/viewer/inspect/attributes/fill.cljs:57 msgid "inspect.attributes.fill" msgstr "塗りつぶし" -#: src/app/main/ui/inspect/attributes/image.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:99, src/app/main/ui/viewer/inspect/attributes/image.cljs:51 msgid "inspect.attributes.image.download" msgstr "画像をダウンロード" -#: src/app/main/ui/inspect/attributes/image.cljs +#: src/app/main/ui/viewer/inspect/attributes/image.cljs:39 msgid "inspect.attributes.image.height" msgstr "高さ" -#: src/app/main/ui/inspect/attributes/image.cljs +#: src/app/main/ui/viewer/inspect/attributes/image.cljs:32 msgid "inspect.attributes.image.width" msgstr "横幅" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout" msgstr "レイアウト" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.height" msgstr "高さ" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.left" msgstr "左" #: src/app/main/ui/inspect/attributes/layout.cljs, src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.radius" msgstr "半径" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.rotation" msgstr "回転" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.top" msgstr "上" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.width" msgstr "幅" -#: src/app/main/ui/inspect/attributes/shadow.cljs +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:57 msgid "inspect.attributes.shadow" msgstr "シャドウ" -#, permanent +#, permanent, unused msgid "inspect.attributes.stroke.alignment.center" msgstr "中央" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:89 msgid "inspect.attributes.typography.font-family" msgstr "フォントファミリー" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:107 msgid "inspect.attributes.typography.font-size" msgstr "フォントサイズ" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:98 msgid "inspect.attributes.typography.font-style" msgstr "フォントスタイル" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:125 msgid "inspect.attributes.typography.line-height" msgstr "行の高さ" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:143 msgid "inspect.attributes.typography.text-decoration" msgstr "文字装飾" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:147 msgid "inspect.attributes.typography.text-decoration.underline" msgstr "下線" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:98 msgid "inspect.tabs.code.selected.circle" msgstr "円" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:99 msgid "inspect.tabs.code.selected.component" msgstr "コンポーネント" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:100 msgid "inspect.tabs.code.selected.curve" msgstr "曲線" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:102 msgid "inspect.tabs.code.selected.group" msgstr "グループ" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:103 msgid "inspect.tabs.code.selected.image" msgstr "画像" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:104 msgid "inspect.tabs.code.selected.mask" msgstr "マスク" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:158 msgid "label.shortcuts" msgstr "ショートカット" +#: src/app/main/ui/dashboard/fonts.cljs:175 msgid "labels.add-custom-font" msgstr "カスタムフォントを追加" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/data/common.cljs:112, src/app/main/ui/dashboard/change_owner.cljs:69, src/app/main/ui/dashboard/import.cljs:514, src/app/main/ui/dashboard/team.cljs:868, src/app/main/ui/delete_shared.cljs:35, src/app/main/ui/export.cljs:164, src/app/main/ui/export.cljs:460, src/app/main/ui/settings/access_tokens.cljs:188, src/app/main/ui/viewer/share_link.cljs:203, src/app/main/ui/workspace/sidebar/assets/groups.cljs:149 msgid "labels.cancel" msgstr "キャンセル" -#: src/app/main/ui/dashboard/comments.cljs +#: src/app/main/ui/dashboard/comments.cljs:104, src/app/main/ui/viewer/comments.cljs:70, src/app/main/ui/workspace/comments.cljs:126 msgid "labels.comments" msgstr "コメント" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:985, src/app/main/ui/workspace/main_menu.cljs:110 msgid "labels.community" msgstr "コミュニティ" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:103 msgid "labels.confirm-password" msgstr "パスワードを確認" +#: src/app/main/ui/dashboard/import.cljs:520, src/app/main/ui/export.cljs:465, src/app/main/ui/onboarding/newsletter.cljs:101 msgid "labels.continue" msgstr "続ける" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:157, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:190 msgid "labels.create" msgstr "作成" -#: src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/dashboard/team_form.cljs +#: src/app/main/ui/dashboard/team_form.cljs:101, src/app/main/ui/dashboard/team_form.cljs:121 msgid "labels.create-team" msgstr "チームを作成" -#: src/app/main/ui/dashboard/team_form.cljs +#: src/app/main/ui/dashboard/team_form.cljs:113 msgid "labels.create-team.placeholder" msgstr "チームの名前を入力" +#, unused msgid "labels.custom-fonts" msgstr "カスタムフォント" -#: src/app/main/ui/settings/sidebar.cljs +#: src/app/main/ui/settings/sidebar.cljs:73 msgid "labels.dashboard" msgstr "ダッシュボード" -#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:306, src/app/main/ui/dashboard/fonts.cljs:255, src/app/main/ui/dashboard/fonts.cljs:332, src/app/main/ui/dashboard/fonts.cljs:346, src/app/main/ui/dashboard/project_menu.cljs:115, src/app/main/ui/dashboard/team.cljs:904, src/app/main/ui/settings/access_tokens.cljs:209, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:209 msgid "labels.delete" msgstr "削除" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:357 msgid "labels.delete-comment" msgstr "コメントを削除" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:354 msgid "labels.delete-comment-thread" msgstr "スレッドを削除" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:648 msgid "labels.delete-invitation" msgstr "招待を削除" -#: src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/files.cljs, src/app/main/ui/dashboard/files.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:28, src/app/main/ui/dashboard/files.cljs:72, src/app/main/ui/dashboard/files.cljs:156, src/app/main/ui/dashboard/projects.cljs:220, src/app/main/ui/dashboard/projects.cljs:224, src/app/main/ui/dashboard/sidebar.cljs:791 msgid "labels.drafts" msgstr "下書き" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:350, src/app/main/ui/dashboard/fonts.cljs:252, src/app/main/ui/dashboard/team.cljs:902, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:205 msgid "labels.edit" msgstr "編集" +#, unused msgid "labels.edit-file" msgstr "ファイルを編集" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:118, src/app/main/ui/dashboard/team.cljs:279, src/app/main/ui/dashboard/team.cljs:520, src/app/main/ui/dashboard/team.cljs:553, src/app/main/ui/onboarding/team_choice.cljs:66 msgid "labels.editor" msgstr "エディタ" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:661 msgid "labels.expired-invitation" msgstr "失効済み" +#: src/app/main/ui/export.cljs:173 msgid "labels.export" msgstr "エクスポート" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:42 msgid "labels.feedback-sent" msgstr "フィードバックを送信しました" +#: src/app/main/ui/dashboard/fonts.cljs:412 msgid "labels.font-family" msgstr "フォントファミリー" +#: src/app/main/ui/dashboard/fonts.cljs:413 msgid "labels.font-variants" msgstr "スタイル" +#: src/app/main/ui/dashboard/fonts.cljs:52, src/app/main/ui/dashboard/sidebar.cljs:811 msgid "labels.fonts" msgstr "フォント" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:1015, src/app/main/ui/workspace/main_menu.cljs:142 msgid "labels.github-repo" msgstr "GitHubレポジトリ" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:1032, src/app/main/ui/settings/sidebar.cljs:113, src/app/main/ui/workspace/main_menu.cljs:171 msgid "labels.give-feedback" msgstr "フィードバックする" +#: src/app/main/ui/auth/recovery_request.cljs:110, src/app/main/ui/auth/register.cljs:285, src/app/main/ui/viewer/login.cljs:117 msgid "labels.go-back" msgstr "戻る" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:978, src/app/main/ui/workspace/main_menu.cljs:102 msgid "labels.help-center" msgstr "ヘルプセンター" -#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/comments.cljs:103, src/app/main/ui/workspace/comments.cljs:67 msgid "labels.hide-resolved-comments" msgstr "解決済みのコメントを非表示" -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:143 msgid "labels.internal-error.main-message" msgstr "内部エラー" -#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:516, src/app/main/ui/dashboard/team.cljs:89, src/app/main/ui/dashboard/team.cljs:97, src/app/main/ui/dashboard/team.cljs:708 msgid "labels.invitations" msgstr "招待" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:51 msgid "labels.language" msgstr "言語" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:1008, src/app/main/ui/workspace/main_menu.cljs:134 msgid "labels.libraries-and-templates" msgstr "ライブラリ&テンプレート" -#: src/app/main/ui/settings.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:1040 msgid "labels.logout" msgstr "ログアウト" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/team.cljs:468 msgid "labels.member" msgstr "メンバー" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:510, src/app/main/ui/dashboard/team.cljs:87, src/app/main/ui/dashboard/team.cljs:95 msgid "labels.members" msgstr "メンバー" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:96 msgid "labels.new-password" msgstr "新しいパスワード" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:694 msgid "labels.no-invitations" msgstr "招待がありません。" -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:49 msgid "labels.not-found.main-message" msgstr "おっと!" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:89 msgid "labels.old-password" msgstr "以前のパスワード" #: src/app/main/ui/workspace/comments.cljs +#, unused msgid "labels.only-yours" msgstr "あなた専用" +#, unused msgid "labels.or" msgstr "または" -#: src/app/main/ui/settings/sidebar.cljs +#: src/app/main/ui/settings/profile.cljs:118, src/app/main/ui/settings/sidebar.cljs:82 msgid "labels.profile" msgstr "プロフィール" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:784 msgid "labels.projects" msgstr "プロジェクト" -#: src/app/main/ui/settings/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:998, src/app/main/ui/settings/sidebar.cljs:106, src/app/main/ui/workspace/main_menu.cljs:126 msgid "labels.release-notes" msgstr "リリースノート" #: src/app/main/ui/workspace/libraries.cljs, src/app/main/ui/dashboard/team.cljs +#, unused msgid "labels.remove" msgstr "削除" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:316 msgid "labels.remove-member" msgstr "メンバーを削除" -#: src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:271, src/app/main/ui/dashboard/project_menu.cljs:85, src/app/main/ui/dashboard/sidebar.cljs:539, src/app/main/ui/workspace/sidebar/assets/groups.cljs:157 msgid "labels.rename" msgstr "名前を変更" -#: src/app/main/ui/dashboard/team_form.cljs +#: src/app/main/ui/dashboard/team_form.cljs:99 msgid "labels.rename-team" msgstr "チーム名を変更" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:645 msgid "labels.resend-invitation" msgstr "招待を再送" -#: src/app/main/ui/static.cljs, src/app/main/ui/static.cljs, src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:61, src/app/main/ui/static.cljs:70, src/app/main/ui/static.cljs:148 msgid "labels.retry" msgstr "リトライ" diff --git a/frontend/translations/ko.po b/frontend/translations/ko.po index 3bd56f6d27..a91fbffc6a 100644 --- a/frontend/translations/ko.po +++ b/frontend/translations/ko.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "PO-Revision-Date: 2024-06-17 08:07+0000\n" "Last-Translator: Anonymous \n" -"Language-Team: Korean \n" +"Language-Team: Korean " +"\n" "Language: ko\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" @@ -11,826 +11,910 @@ msgstr "" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Weblate 5.6-dev\n" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:151, src/app/main/ui/viewer/login.cljs:104 msgid "auth.already-have-account" msgstr "이미 계정이 있으신가요?" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/register.cljs:299 +msgid "auth.check-your-email" +msgstr "이메일에 포함된 링크를 클릭하여 계정을 인증하고 펜팟의 사용을 시작하십시오." + +#: src/app/main/ui/auth/recovery.cljs:78 msgid "auth.confirm-password" msgstr "비밀번호 확인하기" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/register.cljs:163 msgid "auth.create-demo-account" msgstr "데모 계정을 생성하세요" #: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#, unused msgid "auth.create-demo-profile" msgstr "그냥 해볼까요?" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:43 +msgid "auth.demo-warning" +msgstr "데모 서비스입니다. 실제 작업에 사용하지 마십시오. 생성된 프로젝트는 주기적으로 삭제될 것입니다." + +#: src/app/main/ui/auth/login.cljs:189, src/app/main/ui/viewer/login.cljs:90 msgid "auth.forgot-password" msgstr "비밀번호를 잊어버리셨나요?" -#: src/app/main/ui/auth/register.cljs -#, fuzzy +#: src/app/main/ui/auth/register.cljs:254 +msgid "auth.fullname" +msgstr "이름 (성명)" + +#: src/app/main/ui/auth/login.cljs:282 +msgid "auth.login-account-title" +msgstr "내 계정에 로그인하기" + +#: src/app/main/ui/auth/register.cljs:155, src/app/main/ui/viewer/login.cljs:107 msgid "auth.login-here" msgstr "여기서 로그인하세요" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:195 msgid "auth.login-submit" msgstr "로그인" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:285 +msgid "auth.login-tagline" +msgstr "펜팟은 디자인과 코딩의 협업을 위한 무료 오픈소스 디자인 도구입니다" + +#: src/app/main/ui/auth/login.cljs:222 msgid "auth.login-with-github-submit" msgstr "깃허브 (GitHub)" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:228 msgid "auth.login-with-gitlab-submit" msgstr "깃랩 (GitLab)" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:216 msgid "auth.login-with-google-submit" msgstr "구글 (Google)" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/login.cljs:201 +msgid "auth.login-with-ldap-submit" +msgstr "LDAP" + +#: src/app/main/ui/auth/login.cljs:234, src/app/main/ui/auth/login.cljs:255 +msgid "auth.login-with-oidc-submit" +msgstr "오픈아이디 (OpenID)" + +#: src/app/main/ui/auth/register.cljs:217, src/app/main/ui/dashboard/team_form.cljs:76, src/app/main/ui/onboarding/team_choice.cljs:180, src/app/main/ui/settings/access_tokens.cljs:66, src/app/main/ui/settings/feedback.cljs:34, src/app/main/ui/settings/profile.cljs:45, src/app/main/ui/workspace/sidebar/assets/groups.cljs:108 +msgid "auth.name.not-all-space" +msgstr "이름은 공백 이외의 글자를 포함해야 합니다." + +#: src/app/main/ui/auth/register.cljs:218, src/app/main/ui/dashboard/team_form.cljs:77, src/app/main/ui/onboarding/team_choice.cljs:181, src/app/main/ui/settings/access_tokens.cljs:67, src/app/main/ui/settings/feedback.cljs:33, src/app/main/ui/settings/profile.cljs:44, src/app/main/ui/workspace/sidebar/assets/groups.cljs:109 +msgid "auth.name.too-long" +msgstr "이름은 최대 250자까지만 입력 가능합니다." + +#: src/app/main/ui/auth/recovery.cljs:71 msgid "auth.new-password" msgstr "새 비밀번호를 입력하세요" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:42 +msgid "auth.notifications.invalid-token-error" +msgstr "복구 토큰이 유효하지 않습니다." + +#: src/app/main/ui/auth/recovery.cljs:46 msgid "auth.notifications.password-changed-successfully" msgstr "비밀번호가 성공적으로 변경되었어요" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:57 msgid "auth.notifications.profile-not-verified" msgstr "프로필이 검증되지 않았어요. 계속 하려면 검증절차를 완료해주세요." -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:40 msgid "auth.notifications.recovery-token-sent" msgstr "비밀번호 복구를 위한 링크를 메일함으로 보냈어요" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:47 msgid "auth.notifications.team-invitation-accepted" msgstr "팀에 성공적으로 합류했어요" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:179, src/app/main/ui/auth/register.cljs:115 msgid "auth.password" msgstr "비밀번호" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:114 msgid "auth.password-length-hint" msgstr "최소 8개의 문자" +#: src/app/main/ui/auth/recovery.cljs:61, src/app/main/ui/auth/recovery.cljs:62, src/app/main/ui/auth/register.cljs:81, src/app/main/ui/settings/password.cljs:75, src/app/main/ui/settings/password.cljs:76, src/app/main/ui/settings/password.cljs:77 +msgid "auth.password-not-empty" +msgstr "비밀번호는 공백 이외의 글자를 포함해야 합니다." + +#: src/app/main/ui/auth.cljs:41 msgid "auth.privacy-policy" msgstr "개인 정보 정책" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:88 msgid "auth.recovery-request-submit" msgstr "비밀번호 복구하기" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:101 msgid "auth.recovery-request-subtitle" msgstr "이용지침을 메일로 전달해드릴거에요" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:100 msgid "auth.recovery-request-title" msgstr "비밀번호를 잊으셨나요?" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:82 msgid "auth.recovery-submit" msgstr "비밀번호를 바꾸세요" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:298, src/app/main/ui/viewer/login.cljs:93 msgid "auth.register" msgstr "아직 계정이 없으신가요?" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:302, src/app/main/ui/auth/register.cljs:121, src/app/main/ui/auth/register.cljs:263, src/app/main/ui/viewer/login.cljs:97 msgid "auth.register-submit" msgstr "계정을 생성하세요" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:140 msgid "auth.register-title" msgstr "계정을 생성하세요" #: src/app/main/ui/auth.cljs +#, unused msgid "auth.sidebar-tagline" msgstr "디자인과 프로토타이핑을 위한 오픈소스 솔루션." +#: src/app/main/ui/auth.cljs:33, src/app/main/ui/dashboard/sidebar.cljs:1022, src/app/main/ui/workspace/main_menu.cljs:150 msgid "auth.terms-of-service" msgstr "서비스 정책" -#: src/app/main/ui/auth/register.cljs +#, unused msgid "auth.terms-privacy-agreement" -msgstr "새로운 계정을 생성하시면, 사용자는 펜팟의 서비스 정책과 개인 정보 정책에 " -"동의하는 것으로 간주됩니다." +msgstr "새로운 계정을 생성하시면, 사용자는 펜팟의 서비스 정책과 개인 정보 정책에 동의하는 것으로 간주됩니다." -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:297 msgid "auth.verification-email-sent" msgstr "검증 메일을 ~에 보냈어요" -msgid "common.publish" -msgstr "발행하기" - -msgid "common.share-link.all-users" -msgstr "모든 펜팟 유저들" - -msgid "common.share-link.confirm-deletion-link-description" -msgstr "정말로 링크를 제거하고 싶으세요? 제거하시면, 더이상 아무도 이용할 수 없어요" - -msgid "common.share-link.current-tag" -msgstr "(현재)" - -msgid "common.share-link.get-link" -msgstr "링크 얻기" - -msgid "common.share-link.link-copied-success" -msgstr "링크를 성공적으로 복사했어요" - -msgid "common.share-link.manage-ops" -msgstr "권한을 관리하세요" - -msgid "common.share-link.permissions-can-comment" -msgstr "코멘트를 달 수 있어요" - -msgid "common.share-link.permissions-can-inspect" -msgstr "코드를 검사할 수 있어요" - -msgid "common.share-link.permissions-hint" -msgstr "링크를 가진 누구나 접근할 수 있어요" - -msgid "common.share-link.permissions-pages" -msgstr "페이지가 공유됐어요" - -msgid "common.share-link.placeholder" -msgstr "공유할 수 있는 링크는 여기 나타날거에요" - -msgid "common.share-link.team-members" -msgstr "오직 팀원들을 위해" - -msgid "common.share-link.title" -msgstr "프로토타입을 공유해요" - -msgid "common.share-link.view-all" -msgstr "모두 선택해요" - -msgid "common.unpublish" -msgstr "발행취소하기" - -#: src/app/main/ui/dashboard/projects.cljs -msgid "dasboard.team-hero.management" -msgstr "팀 관리" - -#: src/app/main/ui/dashboard/projects.cljs -msgid "dasboard.team-hero.title" -msgstr "팀을 이뤄요!" - -#: src/app/main/ui/dashboard/projects.cljs -msgid "dasboard.tutorial-hero.start" -msgstr "튜토리얼을 시작하세요" - -#: src/app/main/ui/dashboard/projects.cljs -msgid "dasboard.walkthrough-hero.start" -msgstr "투어를 시작해요" - -#: src/app/main/ui/settings/profile.cljs -msgid "dashboard.change-email" -msgstr "이메일을 변경해요" - -#: src/app/main/data/dashboard.cljs, src/app/main/data/dashboard.cljs -msgid "dashboard.copy-suffix" -msgstr "(복사)" - -#: src/app/main/ui/dashboard/sidebar.cljs -msgid "dashboard.create-new-team" -msgstr "새 팀을 생성해요" - -#: src/app/main/ui/dashboard/sidebar.cljs -msgid "dashboard.default-team-name" -msgstr "당신의 펜팟" - -#: src/app/main/ui/dashboard/sidebar.cljs -msgid "dashboard.delete-team" -msgstr "팀을 해체해요" - -msgid "dashboard.download-binary-file" -msgstr "펜팟 파일(.penpot)을 다운로드해요" - -msgid "dashboard.download-standard-file" -msgstr "표준 파일(.svg + .json)을 다운로드해요" - -#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs -msgid "dashboard.duplicate" -msgstr "복제해요" - -#: src/app/main/ui/dashboard/file_menu.cljs -msgid "dashboard.duplicate-multi" -msgstr "%파일을 복제해요" - -msgid "dashboard.export-frames" -msgstr "대지를 PDF로 내보내요" - -#: src/app/main/ui/export.cljs -msgid "dashboard.export-frames.title" -msgstr "PDF로 내보내요" - -#: src/app/main/ui/workspace/header.cljs -msgid "dashboard.export-shapes" -msgstr "내보내요" - -#: src/app/main/ui/inspect/attributes/blur.cljs -msgid "inspect.attributes.blur" -msgstr "흐림" - -#: src/app/main/ui/inspect/attributes/blur.cljs -msgid "inspect.attributes.blur.value" -msgstr "값" - -#: src/app/main/ui/inspect/attributes/common.cljs -msgid "inspect.attributes.color.hex" -msgstr "HEX" - -#: src/app/main/ui/inspect/attributes/common.cljs -msgid "inspect.attributes.color.hsla" -msgstr "HSLA" - -#: src/app/main/ui/inspect/attributes/common.cljs -msgid "inspect.attributes.color.rgba" -msgstr "RGBA" - -#: src/app/main/ui/inspect/attributes/fill.cljs -msgid "inspect.attributes.fill" -msgstr "채우기" - -#: src/app/main/ui/inspect/attributes/image.cljs -msgid "inspect.attributes.image.download" -msgstr "소스 이미지 다운로드" - -#: src/app/main/ui/inspect/attributes/image.cljs -msgid "inspect.attributes.image.height" -msgstr "높이" - -#: src/app/main/ui/inspect/attributes/image.cljs -msgid "inspect.attributes.image.width" -msgstr "폭" - -#: src/app/main/ui/inspect/attributes/layout.cljs -msgid "inspect.attributes.layout" -msgstr "레이아웃" - -#: src/app/main/ui/inspect/attributes/layout.cljs -msgid "inspect.attributes.layout.height" -msgstr "높이" - -#: src/app/main/ui/inspect/attributes/layout.cljs -msgid "inspect.attributes.layout.left" -msgstr "왼쪽" - -#: src/app/main/ui/inspect/attributes/layout.cljs, src/app/main/ui/inspect/attributes/layout.cljs -msgid "inspect.attributes.layout.radius" -msgstr "반지름" - -#: src/app/main/ui/inspect/attributes/layout.cljs -msgid "inspect.attributes.layout.rotation" -msgstr "회전" - -#: src/app/main/ui/inspect/attributes/layout.cljs -msgid "inspect.attributes.layout.top" -msgstr "위" - -#: src/app/main/ui/inspect/attributes/layout.cljs -msgid "inspect.attributes.layout.width" -msgstr "폭" - -#: src/app/main/ui/inspect/attributes/shadow.cljs -msgid "inspect.attributes.shadow" -msgstr "그림자" - -#: src/app/main/ui/inspect/attributes/layout.cljs -msgid "inspect.attributes.size" -msgstr "사이즈와 위치" - -#: src/app/main/ui/inspect/attributes/stroke.cljs -msgid "inspect.attributes.stroke" -msgstr "선" - -#, permanent -msgid "inspect.attributes.stroke.alignment.center" -msgstr "중앙" - -#, permanent -msgid "inspect.attributes.stroke.alignment.inner" -msgstr "안쪽" - -#, permanent -msgid "inspect.attributes.stroke.alignment.outer" -msgstr "바깥쪽" - -msgid "inspect.attributes.stroke.style.dotted" -msgstr "점선" - -msgid "inspect.attributes.stroke.style.mixed" -msgstr "혼합" - -msgid "inspect.attributes.stroke.style.solid" -msgstr "단색" - -#: src/app/main/ui/inspect/attributes/stroke.cljs -msgid "inspect.attributes.stroke.width" -msgstr "폭" - -#: src/app/main/ui/inspect/attributes/text.cljs -msgid "inspect.attributes.typography" -msgstr "타이포그래피" - -#: src/app/main/ui/inspect/attributes/text.cljs -msgid "inspect.attributes.typography.font-family" -msgstr "폰트 패밀리" - -#: src/app/main/ui/inspect/attributes/text.cljs -msgid "inspect.attributes.typography.font-size" -msgstr "폰트 사이즈" - -#: src/app/main/ui/inspect/attributes/text.cljs -msgid "inspect.attributes.typography.font-style" -msgstr "폰트 스타일" - -msgid "inspect.attributes.typography.text-decoration.strikethrough" -msgstr "취소선" - -msgid "inspect.attributes.typography.text-decoration.underline" -msgstr "밑줄" - -#: src/app/main/ui/inspect/attributes/text.cljs -msgid "inspect.attributes.typography.text-transform" -msgstr "텍스트 변형" - -msgid "inspect.attributes.typography.text-transform.lowercase" -msgstr "소문자" - -msgid "inspect.attributes.typography.text-transform.uppercase" -msgstr "대문자" - -#: src/app/main/ui/inspect/right_sidebar.cljs -msgid "inspect.tabs.code" -msgstr "코드" - -msgid "inspect.tabs.code.selected.circle" -msgstr "원" - -msgid "inspect.tabs.code.selected.component" -msgstr "컴포넌트" - -msgid "inspect.tabs.code.selected.curve" -msgstr "커브" - -msgid "inspect.tabs.code.selected.frame" -msgstr "보드" - -msgid "inspect.tabs.code.selected.group" -msgstr "그룹" - -msgid "inspect.tabs.code.selected.image" -msgstr "이미지" - -msgid "inspect.tabs.code.selected.mask" -msgstr "마스크" - -msgid "inspect.tabs.code.selected.path" -msgstr "패스" - -msgid "inspect.tabs.code.selected.rect" -msgstr "사각형" - -msgid "inspect.tabs.code.selected.svg-raw" -msgstr "SVG" - -msgid "inspect.tabs.code.selected.text" -msgstr "텍스트" - -#: src/app/main/ui/inspect/right_sidebar.cljs -msgid "inspect.tabs.info" -msgstr "정보" - -#: src/app/main/ui/workspace/header.cljs -msgid "label.shortcuts" -msgstr "단축키" - -msgid "labels.accept" -msgstr "허가" - -msgid "labels.active" -msgstr "활성화" - -msgid "labels.add-custom-font" -msgstr "커스텀 폰트 추가" - -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs -msgid "labels.admin" -msgstr "관리자" - -#: src/app/main/ui/workspace/comments.cljs -msgid "labels.all" -msgstr "전체" - -msgid "labels.and" -msgstr "그리고" - -msgid "labels.back" -msgstr "뒤로" - -#: src/app/main/ui/static.cljs -msgid "labels.bad-gateway.main-message" -msgstr "잘못된 경로" - -#: src/app/main/ui/dashboard/sidebar.cljs -msgid "labels.cancel" -msgstr "취소" - -msgid "labels.close" -msgstr "닫기" - -#: src/app/main/ui/dashboard/comments.cljs -msgid "labels.comments" -msgstr "코멘트" - -#: src/app/main/ui/dashboard/sidebar.cljs -msgid "labels.community" -msgstr "커뮤니티" - -#: src/app/main/ui/settings/password.cljs -msgid "labels.confirm-password" -msgstr "비밀번호 확인하기" - -msgid "labels.continue" -msgstr "계속하기" - -#: src/app/main/ui/dashboard/team.cljs -msgid "labels.copy-invitation-link" -msgstr "링크 복사하기" - -#: src/app/main/ui/workspace/sidebar/assets.cljs -msgid "labels.create" -msgstr "생성하기" - -#: src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/dashboard/team_form.cljs -msgid "labels.create-team" -msgstr "새로운 팀 만들기" - -#: src/app/main/ui/dashboard/team_form.cljs -msgid "labels.create-team.placeholder" -msgstr "새로운 팀명 입력하세요" - -msgid "labels.custom-fonts" -msgstr "커스텀 폰트" - -#: src/app/main/ui/settings/sidebar.cljs -msgid "labels.dashboard" -msgstr "대시보드" - -#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs -msgid "labels.delete" -msgstr "삭제하기" - -#: src/app/main/ui/comments.cljs -msgid "labels.delete-comment" -msgstr "코멘트 삭제하기" - -#: src/app/main/ui/comments.cljs -msgid "labels.delete-comment-thread" -msgstr "스레드 제거하기" - -#: src/app/main/ui/dashboard/team.cljs -msgid "labels.delete-invitation" -msgstr "초대장 제거하기" - -#: src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/files.cljs, src/app/main/ui/dashboard/files.cljs, src/app/main/ui/dashboard/file_menu.cljs -msgid "labels.drafts" -msgstr "초안" - -#: src/app/main/ui/comments.cljs -msgid "labels.edit" -msgstr "편집" - -msgid "labels.edit-file" -msgstr "파일 편집" - -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs -msgid "labels.editor" -msgstr "작성자" - -#: src/app/main/ui/dashboard/team.cljs -msgid "labels.expired-invitation" -msgstr "기한이 만료된" - -msgid "labels.export" -msgstr "내보내기" - -msgid "labels.font-family" -msgstr "폰트 패밀리" - -msgid "labels.font-providers" -msgstr "폰트 공급자" - -msgid "labels.font-variants" -msgstr "스타일" - -msgid "labels.fonts" -msgstr "폰트" - -msgid "labels.go-back" -msgstr "뒤로 가기" - -#: src/app/main/ui/dashboard/sidebar.cljs -msgid "labels.help-center" -msgstr "고객센터" - -msgid "labels.inactive" -msgstr "비활성화" - -msgid "labels.view-only" -msgstr "보기 전용" - -#: src/app/main/ui/dashboard/team.cljs -msgid "labels.viewer" -msgstr "뷰어" - -msgid "labels.webhooks" -msgstr "웹훅" - -#: src/app/main/ui/comments.cljs -msgid "labels.write-new-comment" -msgstr "새 코멘트 쓰기" - -#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs -msgid "media.loading" -msgstr "이미지 로딩중…" - -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -msgid "modals.add-shared-confirm.accept" -msgstr "공유된 라이브러리로 추가" - -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -msgid "modals.add-shared-confirm.message" -msgstr " " - -#: src/app/main/ui/settings/change_email.cljs -msgid "modals.change-email.confirm-email" -msgstr "새 이메일 인증하기" - -#: src/app/main/ui/settings/change_email.cljs -msgid "modals.change-email.new-email" -msgstr "새 이메일" - -#: src/app/main/ui/settings/change_email.cljs -msgid "modals.change-email.submit" -msgstr "이메일 변경하기" - -#: src/app/main/ui/settings/change_email.cljs -msgid "modals.change-email.title" -msgstr "이메일을 변경하세요" - -msgid "modals.create-webhook.submit-label" -msgstr "웹훅 만들기" - -msgid "modals.create-webhook.title" -msgstr "웹훅 생성하기" - -#: src/app/main/ui/comments.cljs -msgid "modals.delete-comment-thread.accept" -msgstr "대회 지우기" - -#: src/app/main/ui/comments.cljs -msgid "modals.delete-comment-thread.title" -msgstr "대화 지우기" - -#: src/app/main/ui/dashboard/file_menu.cljs -msgid "modals.delete-file-confirm.accept" -msgstr "파일 지우기" - -#: src/app/main/ui/dashboard/file_menu.cljs -msgid "modals.delete-file-confirm.message" -msgstr "이 파일을 정말로 지우시겠습니까?" - -#: src/app/main/ui/dashboard/file_menu.cljs -msgid "modals.delete-file-confirm.title" -msgstr "파일 삭제중" - -#: src/app/main/ui/dashboard/file_menu.cljs -msgid "modals.delete-file-multi-confirm.accept" -msgstr "여러 파일 지우기" - -msgid "modals.delete-font-variant.title" -msgstr "폰트 스타일 지우는 중" - -msgid "modals.delete-font.title" -msgstr "폰트 지우는 중" - -#: src/app/main/ui/workspace/sidebar/sitemap.cljs -msgid "modals.delete-page.body" -msgstr "정말로 해당 페이지를 지우시겠습니까?" - -#: src/app/main/ui/workspace/sidebar/sitemap.cljs -msgid "modals.delete-page.title" -msgstr "페이지 삭제" - -#: src/app/main/ui/dashboard/project_menu.cljs -msgid "modals.delete-project-confirm.accept" -msgstr "프로젝트 제거" - -#: src/app/main/ui/dashboard/project_menu.cljs -msgid "modals.delete-project-confirm.message" -msgstr "정말로 해당 프로젝트를 지우시겠습니까?" - -#: src/app/main/ui/dashboard/project_menu.cljs -msgid "modals.delete-project-confirm.title" -msgstr "프로젝트 제거" - -#: src/app/main/ui/settings/profile.cljs, src/app/main/ui/settings/options.cljs -msgid "notifications.profile-saved" -msgstr "프로필이 성공적으로 저장되었습니다!" - -msgid "shortcuts.flip-horizontal" -msgstr "가로로 뒤집기" - -msgid "shortcuts.flip-vertical" -msgstr "세로로 뒤집기" - -msgid "shortcuts.go-to-drafts" -msgstr "초안으로 가기" - -msgid "shortcuts.go-to-libs" -msgstr "공유된 라이브러리로 가기" - -msgid "shortcuts.go-to-search" -msgstr "찾기" - -msgid "shortcuts.group" -msgstr "그룹" - -msgid "shortcuts.h-distribute" -msgstr "가로로 분배하기" - -#: src/app/main/ui/auth/register.cljs -msgid "auth.check-your-email" -msgstr "이메일에 포함된 링크를 클릭하여 계정을 인증하고 펜팟의 사용을 시작하십시오." - -#: src/app/main/ui/auth/register.cljs -msgid "auth.fullname" -msgstr "이름 (성명)" - -#: src/app/main/ui/auth/register.cljs -msgid "auth.demo-warning" -msgstr "데모 서비스입니다. 실제 작업에 사용하지 마십시오. 생성된 프로젝트는 " -"주기적으로 삭제될 것입니다." - -#: src/app/main/ui/auth/recovery.cljs -msgid "auth.notifications.invalid-token-error" -msgstr "복구 토큰이 유효하지 않습니다." - -msgid "common.share-link.destroy-link" -msgstr "링크 제거하기" - -#: src/app/main/ui/dashboard/projects.cljs -msgid "dasboard.walkthrough-hero.info" -msgstr "펜팟을 둘러보고 주요 기능에 대한 정보를 습득하십시오." - -#: src/app/main/ui/dashboard/projects.cljs -msgid "dasboard.walkthrough-hero.title" -msgstr "인터페이스 둘러보기" - -#: src/app/main/ui/settings/access-tokens.cljs -msgid "dashboard.access-tokens.create" -msgstr "새로운 토큰 생성하기" - -#: src/app/main/ui/settings/access-tokens.cljs -msgid "dashboard.access-tokens.empty.add-one" -msgstr "\"새로운 토큰 생성하기\" 버튼을 눌러 토큰을 생성하십시오." - -#: src/app/main/ui/settings/access-tokens.cljs -msgid "dashboard.access-tokens.empty.no-access-tokens" -msgstr "현재 가지고 있는 토큰이 없습니다." - -#: src/app/main/ui/settings/access-tokens.cljs -msgid "dashboard.access-tokens.personal" -msgstr "개인용 엑세스 토큰" - -#: src/app/main/ui/settings/access-tokens.cljs -msgid "dashboard.access-tokens.expired-on" -msgstr "%s에 만료되었습니다" - -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/onboarding/team_choice.cljs, src/app/main/ui/settings/access_tokens.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/settings/profile.cljs, src/app/main/ui/workspace/sidebar/assets.cljs -msgid "auth.name.too-long" -msgstr "이름은 최대 250자까지만 입력 가능합니다." - -#: src/app/main/ui/settings/access-tokens.cljs -msgid "dashboard.access-tokens.errors-required-name" -msgstr "이름을 입력하십시오" - -#: src/app/main/ui/settings/access-tokens.cljs -msgid "dashboard.access-tokens.copied-success" -msgstr "복사된 토큰" - -#: src/app/main/ui/settings/access-tokens.cljs -msgid "dashboard.access-tokens.expiration-90-days" -msgstr "90일" - -#: src/app/main/ui/auth/login.cljs -msgid "auth.login-with-ldap-submit" -msgstr "LDAP" - -#: src/app/main/ui/settings/access-tokens.cljs -msgid "dashboard.access-tokens.expires-on" -msgstr "%s에 만료됩니다" - -#: src/app/main/ui/settings/access-tokens.cljs -msgid "dashboard.access-tokens.no-expiration" -msgstr "만료 기한 없음" - #: src/app/main/ui/onboarding/questions.cljs +#, unused msgid "branding-illustrations-marketing-pieces" msgstr "...브랜딩, 일러스트레이션, 마케팅 자료 등." -#: src/app/main/ui/auth/login.cljs -msgid "auth.login-tagline" -msgstr "펜팟은 디자인과 코딩의 협업을 위한 무료 오픈소스 디자인 도구입니다" +#: src/app/main/ui/workspace/libraries.cljs:228 +msgid "common.publish" +msgstr "발행하기" -#: src/app/main/ui/auth/register.cljs -msgid "auth.password-not-empty" -msgstr "비밀번호는 공백 이외의 글자를 포함해야 합니다." +#: src/app/main/ui/viewer/share_link.cljs:304, src/app/main/ui/viewer/share_link.cljs:314 +msgid "common.share-link.all-users" +msgstr "모든 펜팟 유저들" -#: src/app/main/ui/dashboard/projects.cljs -msgid "dasboard.team-hero.text" -msgstr "펜팟은 팀을 위한 도구입니다. 팀원들을 초대하여 프로젝트 및 파일 단위로 " -"협업하십시오" +#: src/app/main/ui/viewer/share_link.cljs:198 +msgid "common.share-link.confirm-deletion-link-description" +msgstr "정말로 링크를 제거하고 싶으세요? 제거하시면, 더이상 아무도 이용할 수 없어요" -#: src/app/main/ui/auth/login.cljs -msgid "auth.login-with-oidc-submit" -msgstr "오픈아이디 (OpenID)" +#: src/app/main/ui/viewer/share_link.cljs:259, src/app/main/ui/viewer/share_link.cljs:289 +msgid "common.share-link.current-tag" +msgstr "(현재)" -#: src/app/main/ui/dashboard/projects.cljs -msgid "dasboard.tutorial-hero.title" -msgstr "실습용 튜토리얼" +#: src/app/main/ui/viewer/share_link.cljs:207, src/app/main/ui/viewer/share_link.cljs:214 +msgid "common.share-link.destroy-link" +msgstr "링크 제거하기" -#: src/app/main/ui/auth/login.cljs -msgid "auth.login-account-title" -msgstr "내 계정에 로그인하기" +#: src/app/main/ui/viewer/share_link.cljs:221 +msgid "common.share-link.get-link" +msgstr "링크 얻기" -#: src/app/main/ui/settings/team-form.cljs, src/app/main/ui/auth/register.cljs, src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/onboarding/team_choice.cljs, src/app/main/ui/settings/access_tokens.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/settings/profile.cljs, src/app/main/ui/workspace/sidebar/assets.cljs -msgid "auth.name.not-all-space" -msgstr "이름은 공백 이외의 글자를 포함해야 합니다." +#: src/app/main/ui/viewer/share_link.cljs:139 +msgid "common.share-link.link-copied-success" +msgstr "링크를 성공적으로 복사했어요" -#: src/app/main/ui/dashboard/projects.cljs -msgid "dasboard.tutorial-hero.info" -msgstr "본 실습용 튜토리얼을 통해 펜팟의 기본 기능에 대하여 재미있게 학습하십시오." - -#: src/app/main/ui/settings/access-tokens.cljs -msgid "dashboard.access-tokens.create.success" -msgstr "엑세스 토큰이 성공적으로 생성되었습니다." - -#: src/app/main/ui/settings/access-tokens.cljs -msgid "dashboard.access-tokens.expiration-180-days" -msgstr "180일" - -#: src/app/main/ui/settings/access-tokens.cljs -msgid "dashboard.access-tokens.expiration-30-days" -msgstr "30일" - -#: src/app/main/ui/settings/access-tokens.cljs -msgid "dashboard.access-tokens.expiration-60-days" -msgstr "60일" - -#: src/app/main/ui/settings/access-tokens.cljs -msgid "dashboard.access-tokens.expiration-never" -msgstr "기한 없음" - -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -msgid "dashboard.add-shared" -msgstr "공유 라이브러리로 추가하기" - -#: src/app/main/ui/settings/access-tokens.cljs -msgid "dashboard.access-tokens.personal.description" -msgstr "" -"개인용 엑세스 토큰은 펜팟의 로그인/암호 인증 시스템의 대안으로 사용되며, " -"어플리케이션의 펜팟 내부 API 엑세스를 위해 사용될 수 있습니다" +#: src/app/main/ui/viewer/share_link.cljs:231 +msgid "common.share-link.manage-ops" +msgstr "권한을 관리하세요" +#: src/app/main/ui/viewer/share_link.cljs:277 msgid "common.share-link.page-shared" msgid_plural "common.share-link.page-shared" msgstr[0] "%s 페이지가 공유되었습니다" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/viewer/share_link.cljs:298 +msgid "common.share-link.permissions-can-comment" +msgstr "코멘트를 달 수 있어요" + +#: src/app/main/ui/viewer/share_link.cljs:308 +msgid "common.share-link.permissions-can-inspect" +msgstr "코드를 검사할 수 있어요" + +#: src/app/main/ui/viewer/share_link.cljs:193 +msgid "common.share-link.permissions-hint" +msgstr "링크를 가진 누구나 접근할 수 있어요" + +#: src/app/main/ui/viewer/share_link.cljs:241 +msgid "common.share-link.permissions-pages" +msgstr "페이지가 공유됐어요" + +#: src/app/main/ui/viewer/share_link.cljs:183 +msgid "common.share-link.placeholder" +msgstr "공유할 수 있는 링크는 여기 나타날거에요" + +#: src/app/main/ui/viewer/share_link.cljs:303, src/app/main/ui/viewer/share_link.cljs:313 +msgid "common.share-link.team-members" +msgstr "오직 팀원들을 위해" + +#: src/app/main/ui/viewer/share_link.cljs:171 +msgid "common.share-link.title" +msgstr "프로토타입을 공유해요" + +#: src/app/main/ui/viewer/share_link.cljs:269 +msgid "common.share-link.view-all" +msgstr "모두 선택해요" + +#: src/app/main/ui/workspace/libraries.cljs:224 +msgid "common.unpublish" +msgstr "발행취소하기" + +#: src/app/main/ui/dashboard/projects.cljs:85 +msgid "dasboard.team-hero.management" +msgstr "팀 관리" + +#: src/app/main/ui/dashboard/projects.cljs:84 +msgid "dasboard.team-hero.text" +msgstr "펜팟은 팀을 위한 도구입니다. 팀원들을 초대하여 프로젝트 및 파일 단위로 협업하십시오" + +#: src/app/main/ui/dashboard/projects.cljs:82 +msgid "dasboard.team-hero.title" +msgstr "팀을 이뤄요!" + +#: src/app/main/ui/dashboard/projects.cljs +#, unused +msgid "dasboard.tutorial-hero.info" +msgstr "본 실습용 튜토리얼을 통해 펜팟의 기본 기능에 대하여 재미있게 학습하십시오." + +#: src/app/main/ui/dashboard/projects.cljs +#, unused +msgid "dasboard.tutorial-hero.start" +msgstr "튜토리얼을 시작하세요" + +#: src/app/main/ui/dashboard/projects.cljs +#, unused +msgid "dasboard.tutorial-hero.title" +msgstr "실습용 튜토리얼" + +#: src/app/main/ui/dashboard/projects.cljs +#, unused +msgid "dasboard.walkthrough-hero.info" +msgstr "펜팟을 둘러보고 주요 기능에 대한 정보를 습득하십시오." + +#: src/app/main/ui/dashboard/projects.cljs +#, unused +msgid "dasboard.walkthrough-hero.start" +msgstr "투어를 시작해요" + +#: src/app/main/ui/dashboard/projects.cljs +#, unused +msgid "dasboard.walkthrough-hero.title" +msgstr "인터페이스 둘러보기" + +#: src/app/main/ui/settings/access_tokens.cljs:115 +msgid "dashboard.access-tokens.copied-success" +msgstr "복사된 토큰" + +#: src/app/main/ui/settings/access_tokens.cljs:202 +msgid "dashboard.access-tokens.create" +msgstr "새로운 토큰 생성하기" + +#: src/app/main/ui/settings/access_tokens.cljs:76 +msgid "dashboard.access-tokens.create.success" +msgstr "엑세스 토큰이 성공적으로 생성되었습니다." + +#: src/app/main/ui/settings/access_tokens.cljs:300 +msgid "dashboard.access-tokens.empty.add-one" +msgstr "\"새로운 토큰 생성하기\" 버튼을 눌러 토큰을 생성하십시오." + +#: src/app/main/ui/settings/access_tokens.cljs:299 +msgid "dashboard.access-tokens.empty.no-access-tokens" +msgstr "현재 가지고 있는 토큰이 없습니다." + +#: src/app/main/ui/settings/access_tokens.cljs:53 +msgid "dashboard.access-tokens.errors-required-name" +msgstr "이름을 입력하십시오" + +#: src/app/main/ui/settings/access_tokens.cljs:147 +msgid "dashboard.access-tokens.expiration-180-days" +msgstr "180일" + +#: src/app/main/ui/settings/access_tokens.cljs:144 +msgid "dashboard.access-tokens.expiration-30-days" +msgstr "30일" + +#: src/app/main/ui/settings/access_tokens.cljs:145 +msgid "dashboard.access-tokens.expiration-60-days" +msgstr "60일" + +#: src/app/main/ui/settings/access_tokens.cljs:146 +msgid "dashboard.access-tokens.expiration-90-days" +msgstr "90일" + +#: src/app/main/ui/settings/access_tokens.cljs:143 +msgid "dashboard.access-tokens.expiration-never" +msgstr "기한 없음" + +#: src/app/main/ui/settings/access_tokens.cljs:282 +msgid "dashboard.access-tokens.expired-on" +msgstr "%s에 만료되었습니다" + +#: src/app/main/ui/settings/access_tokens.cljs:283 +msgid "dashboard.access-tokens.expires-on" +msgstr "%s에 만료됩니다" + +#: src/app/main/ui/settings/access_tokens.cljs:281 +msgid "dashboard.access-tokens.no-expiration" +msgstr "만료 기한 없음" + +#: src/app/main/ui/settings/access_tokens.cljs:197 +msgid "dashboard.access-tokens.personal" +msgstr "개인용 엑세스 토큰" + +#: src/app/main/ui/settings/access_tokens.cljs:198 +msgid "dashboard.access-tokens.personal.description" +msgstr "" +"개인용 엑세스 토큰은 펜팟의 로그인/암호 인증 시스템의 대안으로 사용되며, 어플리케이션의 펜팟 내부 API 엑세스를 위해 사용될 수 " +"있습니다" + +#: src/app/main/ui/settings/access_tokens.cljs:154 msgid "dashboard.access-tokens.token-will-expire" msgstr "토큰은 %s에 만료 예정입니다" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:155 msgid "dashboard.access-tokens.token-will-not-expire" msgstr "토큰의 만료 기한이 없습니다" +#: src/app/main/ui/dashboard/file_menu.cljs:291, src/app/main/ui/workspace/main_menu.cljs:572 +msgid "dashboard.add-shared" +msgstr "공유 라이브러리로 추가하기" + +#: src/app/main/ui/settings/profile.cljs:75 +msgid "dashboard.change-email" +msgstr "이메일을 변경해요" + +#: src/app/main/data/dashboard.cljs:762, src/app/main/data/dashboard.cljs:983 +msgid "dashboard.copy-suffix" +msgstr "(복사)" + +#: src/app/main/ui/dashboard/sidebar.cljs:338 +msgid "dashboard.create-new-team" +msgstr "새 팀을 생성해요" + +#: src/app/main/ui/components/context_menu_a11y.cljs:256, src/app/main/ui/dashboard/sidebar.cljs:646 +msgid "dashboard.default-team-name" +msgstr "당신의 펜팟" + +#: src/app/main/ui/dashboard/sidebar.cljs:571 +msgid "dashboard.delete-team" +msgstr "팀을 해체해요" + +#: src/app/main/ui/dashboard/file_menu.cljs:296, src/app/main/ui/workspace/main_menu.cljs:589 +msgid "dashboard.download-binary-file" +msgstr "펜팟 파일(.penpot)을 다운로드해요" + +#: src/app/main/ui/dashboard/file_menu.cljs:300, src/app/main/ui/workspace/main_menu.cljs:597 +msgid "dashboard.download-standard-file" +msgstr "표준 파일(.svg + .json)을 다운로드해요" + +#: src/app/main/ui/dashboard/file_menu.cljs:276, src/app/main/ui/dashboard/project_menu.cljs:90 +msgid "dashboard.duplicate" +msgstr "복제해요" + +#: src/app/main/ui/dashboard/file_menu.cljs:240 +msgid "dashboard.duplicate-multi" +msgstr "%파일을 복제해요" + +#: src/app/main/ui/dashboard/placeholder.cljs:32 +#, markdown +msgid "dashboard.empty-placeholder-drafts" +msgstr "" +"라이브러리에 추가된 파일은 여기에서 볼 수 있습니다. 파일을 공유하거나 펜팟의 [라이브러리와 " +"템플릿](https://penpot.app/libraries-templates.html) 에서 추가해 보십시오." + +#: src/app/main/ui/dashboard/file_menu.cljs:249 msgid "dashboard.export-binary-multi" msgstr "%s 펜팟 파일 (.penpot) 다운로드 하기" -#: src/app/main/ui/dashboard/grid.cljs -#, fuzzy, markdown -msgid "dashboard.empty-placeholder-drafts" -msgstr "" -"라이브러리에 추가된 파일은 여기에서 볼 수 있습니다. 파일을 공유하거나 펜팟의 " -"[라이브러리와 템플릿](https://penpot.app/libraries-templates.html) 에서 " -"추가해 보십시오." +#: src/app/main/ui/workspace/main_menu.cljs:605 +msgid "dashboard.export-frames" +msgstr "대지를 PDF로 내보내요" + +#: src/app/main/ui/export.cljs:201 +msgid "dashboard.export-frames.title" +msgstr "PDF로 내보내요" + +#: src/app/main/ui/workspace/main_menu.cljs:578 +msgid "dashboard.export-shapes" +msgstr "내보내요" + +#: src/app/main/ui/viewer/inspect/attributes/blur.cljs:26 +msgid "inspect.attributes.blur" +msgstr "흐림" + +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:115 +msgid "inspect.attributes.blur.value" +msgstr "값" + +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:112 +msgid "inspect.attributes.color.hex" +msgstr "HEX" + +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:114 +msgid "inspect.attributes.color.hsla" +msgstr "HSLA" + +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:113 +msgid "inspect.attributes.color.rgba" +msgstr "RGBA" + +#: src/app/main/ui/viewer/inspect/attributes/fill.cljs:57 +msgid "inspect.attributes.fill" +msgstr "채우기" + +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:99, src/app/main/ui/viewer/inspect/attributes/image.cljs:51 +msgid "inspect.attributes.image.download" +msgstr "소스 이미지 다운로드" + +#: src/app/main/ui/viewer/inspect/attributes/image.cljs:39 +msgid "inspect.attributes.image.height" +msgstr "높이" + +#: src/app/main/ui/viewer/inspect/attributes/image.cljs:32 +msgid "inspect.attributes.image.width" +msgstr "폭" + +#: src/app/main/ui/inspect/attributes/layout.cljs +#, unused +msgid "inspect.attributes.layout" +msgstr "레이아웃" + +#: src/app/main/ui/inspect/attributes/layout.cljs +#, unused +msgid "inspect.attributes.layout.height" +msgstr "높이" + +#: src/app/main/ui/inspect/attributes/layout.cljs +#, unused +msgid "inspect.attributes.layout.left" +msgstr "왼쪽" + +#: src/app/main/ui/inspect/attributes/layout.cljs, src/app/main/ui/inspect/attributes/layout.cljs +#, unused +msgid "inspect.attributes.layout.radius" +msgstr "반지름" + +#: src/app/main/ui/inspect/attributes/layout.cljs +#, unused +msgid "inspect.attributes.layout.rotation" +msgstr "회전" + +#: src/app/main/ui/inspect/attributes/layout.cljs +#, unused +msgid "inspect.attributes.layout.top" +msgstr "위" + +#: src/app/main/ui/inspect/attributes/layout.cljs +#, unused +msgid "inspect.attributes.layout.width" +msgstr "폭" + +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:57 +msgid "inspect.attributes.shadow" +msgstr "그림자" + +#: src/app/main/ui/viewer/inspect/attributes/geometry.cljs:40 +msgid "inspect.attributes.size" +msgstr "사이즈와 위치" + +#: src/app/main/ui/viewer/inspect/attributes/stroke.cljs:52 +msgid "inspect.attributes.stroke" +msgstr "선" + +#, permanent, unused +msgid "inspect.attributes.stroke.alignment.center" +msgstr "중앙" + +#, permanent, unused +msgid "inspect.attributes.stroke.alignment.inner" +msgstr "안쪽" + +#, permanent, unused +msgid "inspect.attributes.stroke.alignment.outer" +msgstr "바깥쪽" + +#, unused +msgid "inspect.attributes.stroke.style.dotted" +msgstr "점선" + +#, unused +msgid "inspect.attributes.stroke.style.mixed" +msgstr "혼합" + +#, unused +msgid "inspect.attributes.stroke.style.solid" +msgstr "단색" + +#: src/app/main/ui/inspect/attributes/stroke.cljs +#, unused +msgid "inspect.attributes.stroke.width" +msgstr "폭" + +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:81, src/app/main/ui/viewer/inspect/attributes/text.cljs:194 +msgid "inspect.attributes.typography" +msgstr "타이포그래피" + +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:89 +msgid "inspect.attributes.typography.font-family" +msgstr "폰트 패밀리" + +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:107 +msgid "inspect.attributes.typography.font-size" +msgstr "폰트 사이즈" + +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:98 +msgid "inspect.attributes.typography.font-style" +msgstr "폰트 스타일" + +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:146 +msgid "inspect.attributes.typography.text-decoration.strikethrough" +msgstr "취소선" + +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:147 +msgid "inspect.attributes.typography.text-decoration.underline" +msgstr "밑줄" + +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:156 +msgid "inspect.attributes.typography.text-transform" +msgstr "텍스트 변형" + +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:158 +msgid "inspect.attributes.typography.text-transform.lowercase" +msgstr "소문자" + +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:161 +msgid "inspect.attributes.typography.text-transform.uppercase" +msgstr "대문자" + +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:125 +msgid "inspect.tabs.code" +msgstr "코드" + +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:98 +msgid "inspect.tabs.code.selected.circle" +msgstr "원" + +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:99 +msgid "inspect.tabs.code.selected.component" +msgstr "컴포넌트" + +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:100 +msgid "inspect.tabs.code.selected.curve" +msgstr "커브" + +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:101 +msgid "inspect.tabs.code.selected.frame" +msgstr "보드" + +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:102 +msgid "inspect.tabs.code.selected.group" +msgstr "그룹" + +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:103 +msgid "inspect.tabs.code.selected.image" +msgstr "이미지" + +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:104 +msgid "inspect.tabs.code.selected.mask" +msgstr "마스크" + +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:105 +msgid "inspect.tabs.code.selected.path" +msgstr "패스" + +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:106 +msgid "inspect.tabs.code.selected.rect" +msgstr "사각형" + +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:107 +msgid "inspect.tabs.code.selected.svg-raw" +msgstr "SVG" + +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:108 +msgid "inspect.tabs.code.selected.text" +msgstr "텍스트" + +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:115 +msgid "inspect.tabs.info" +msgstr "정보" + +#: src/app/main/ui/workspace/main_menu.cljs:158 +msgid "label.shortcuts" +msgstr "단축키" + +#: src/app/main/ui/dashboard/import.cljs:527 +msgid "labels.accept" +msgstr "허가" + +#: src/app/main/ui/dashboard/team.cljs:968 +msgid "labels.active" +msgstr "활성화" + +#: src/app/main/ui/dashboard/fonts.cljs:175 +msgid "labels.add-custom-font" +msgstr "커스텀 폰트 추가" + +#: src/app/main/ui/dashboard/team.cljs:120, src/app/main/ui/dashboard/team.cljs:276, src/app/main/ui/dashboard/team.cljs:519, src/app/main/ui/dashboard/team.cljs:549, src/app/main/ui/onboarding/team_choice.cljs:67 +msgid "labels.admin" +msgstr "관리자" + +#: src/app/main/ui/workspace/comments.cljs +#, unused +msgid "labels.all" +msgstr "전체" + +#: src/app/main/ui/auth.cljs:37 +msgid "labels.and" +msgstr "그리고" + +#: src/app/main/ui/onboarding/team_choice.cljs:162 +msgid "labels.back" +msgstr "뒤로" + +#: src/app/main/ui/static.cljs:58 +msgid "labels.bad-gateway.main-message" +msgstr "잘못된 경로" + +#: src/app/main/data/common.cljs:112, src/app/main/ui/dashboard/change_owner.cljs:69, src/app/main/ui/dashboard/import.cljs:514, src/app/main/ui/dashboard/team.cljs:868, src/app/main/ui/delete_shared.cljs:35, src/app/main/ui/export.cljs:164, src/app/main/ui/export.cljs:460, src/app/main/ui/settings/access_tokens.cljs:188, src/app/main/ui/viewer/share_link.cljs:203, src/app/main/ui/workspace/sidebar/assets/groups.cljs:149 +msgid "labels.cancel" +msgstr "취소" + +#: src/app/main/ui/dashboard/projects.cljs:93, src/app/main/ui/export.cljs:478, src/app/main/ui/settings/access_tokens.cljs:183, src/app/main/ui/viewer/login.cljs:77, src/app/main/ui/viewer/share_link.cljs:174, src/app/main/ui/workspace/libraries.cljs:522 +msgid "labels.close" +msgstr "닫기" + +#: src/app/main/ui/dashboard/comments.cljs:104, src/app/main/ui/viewer/comments.cljs:70, src/app/main/ui/workspace/comments.cljs:126 +msgid "labels.comments" +msgstr "코멘트" + +#: src/app/main/ui/dashboard/sidebar.cljs:985, src/app/main/ui/workspace/main_menu.cljs:110 +msgid "labels.community" +msgstr "커뮤니티" + +#: src/app/main/ui/settings/password.cljs:103 +msgid "labels.confirm-password" +msgstr "비밀번호 확인하기" + +#: src/app/main/ui/dashboard/import.cljs:520, src/app/main/ui/export.cljs:465, src/app/main/ui/onboarding/newsletter.cljs:101 +msgid "labels.continue" +msgstr "계속하기" + +#: src/app/main/ui/dashboard/team.cljs:642 +msgid "labels.copy-invitation-link" +msgstr "링크 복사하기" + +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:157, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:190 +msgid "labels.create" +msgstr "생성하기" + +#: src/app/main/ui/dashboard/team_form.cljs:101, src/app/main/ui/dashboard/team_form.cljs:121 +msgid "labels.create-team" +msgstr "새로운 팀 만들기" + +#: src/app/main/ui/dashboard/team_form.cljs:113 +msgid "labels.create-team.placeholder" +msgstr "새로운 팀명 입력하세요" + +#, unused +msgid "labels.custom-fonts" +msgstr "커스텀 폰트" + +#: src/app/main/ui/settings/sidebar.cljs:73 +msgid "labels.dashboard" +msgstr "대시보드" + +#: src/app/main/ui/dashboard/file_menu.cljs:306, src/app/main/ui/dashboard/fonts.cljs:255, src/app/main/ui/dashboard/fonts.cljs:332, src/app/main/ui/dashboard/fonts.cljs:346, src/app/main/ui/dashboard/project_menu.cljs:115, src/app/main/ui/dashboard/team.cljs:904, src/app/main/ui/settings/access_tokens.cljs:209, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:209 +msgid "labels.delete" +msgstr "삭제하기" + +#: src/app/main/ui/comments.cljs:357 +msgid "labels.delete-comment" +msgstr "코멘트 삭제하기" + +#: src/app/main/ui/comments.cljs:354 +msgid "labels.delete-comment-thread" +msgstr "스레드 제거하기" + +#: src/app/main/ui/dashboard/team.cljs:648 +msgid "labels.delete-invitation" +msgstr "초대장 제거하기" + +#: src/app/main/ui/dashboard/file_menu.cljs:28, src/app/main/ui/dashboard/files.cljs:72, src/app/main/ui/dashboard/files.cljs:156, src/app/main/ui/dashboard/projects.cljs:220, src/app/main/ui/dashboard/projects.cljs:224, src/app/main/ui/dashboard/sidebar.cljs:791 +msgid "labels.drafts" +msgstr "초안" + +#: src/app/main/ui/comments.cljs:350, src/app/main/ui/dashboard/fonts.cljs:252, src/app/main/ui/dashboard/team.cljs:902, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:205 +msgid "labels.edit" +msgstr "편집" + +#, unused +msgid "labels.edit-file" +msgstr "파일 편집" + +#: src/app/main/ui/dashboard/team.cljs:118, src/app/main/ui/dashboard/team.cljs:279, src/app/main/ui/dashboard/team.cljs:520, src/app/main/ui/dashboard/team.cljs:553, src/app/main/ui/onboarding/team_choice.cljs:66 +msgid "labels.editor" +msgstr "작성자" + +#: src/app/main/ui/dashboard/team.cljs:661 +msgid "labels.expired-invitation" +msgstr "기한이 만료된" + +#: src/app/main/ui/export.cljs:173 +msgid "labels.export" +msgstr "내보내기" + +#: src/app/main/ui/dashboard/fonts.cljs:412 +msgid "labels.font-family" +msgstr "폰트 패밀리" + +#, unused +msgid "labels.font-providers" +msgstr "폰트 공급자" + +#: src/app/main/ui/dashboard/fonts.cljs:413 +msgid "labels.font-variants" +msgstr "스타일" + +#: src/app/main/ui/dashboard/fonts.cljs:52, src/app/main/ui/dashboard/sidebar.cljs:811 +msgid "labels.fonts" +msgstr "폰트" + +#: src/app/main/ui/auth/recovery_request.cljs:110, src/app/main/ui/auth/register.cljs:285, src/app/main/ui/viewer/login.cljs:117 +msgid "labels.go-back" +msgstr "뒤로 가기" + +#: src/app/main/ui/dashboard/sidebar.cljs:978, src/app/main/ui/workspace/main_menu.cljs:102 +msgid "labels.help-center" +msgstr "고객센터" + +#: src/app/main/ui/dashboard/team.cljs:969 +msgid "labels.inactive" +msgstr "비활성화" + +#: src/app/main/ui/workspace/sidebar/sitemap.cljs:223 +msgid "labels.view-only" +msgstr "보기 전용" + +#: src/app/main/ui/dashboard/team.cljs:123, src/app/main/ui/dashboard/team.cljs:282, src/app/main/ui/dashboard/team.cljs:521 +msgid "labels.viewer" +msgstr "뷰어" + +#: src/app/main/ui/dashboard/sidebar.cljs:523, src/app/main/ui/dashboard/team.cljs:90, src/app/main/ui/dashboard/team.cljs:100, src/app/main/ui/dashboard/team.cljs:880 +msgid "labels.webhooks" +msgstr "웹훅" + +#: src/app/main/ui/comments.cljs:194 +msgid "labels.write-new-comment" +msgstr "새 코멘트 쓰기" + +#: src/app/main/data/media.cljs:49, src/app/main/data/workspace/media.cljs:223, src/app/main/data/workspace/media.cljs:453 +msgid "media.loading" +msgstr "이미지 로딩중…" + +#: src/app/main/data/common.cljs:113 +msgid "modals.add-shared-confirm.accept" +msgstr "공유된 라이브러리로 추가" + +#: src/app/main/data/common.cljs:110 +msgid "modals.add-shared-confirm.message" +msgstr " " + +#: src/app/main/ui/settings/change_email.cljs:127 +msgid "modals.change-email.confirm-email" +msgstr "새 이메일 인증하기" + +#: src/app/main/ui/settings/change_email.cljs:119 +msgid "modals.change-email.new-email" +msgstr "새 이메일" + +#: src/app/main/ui/settings/change_email.cljs:136 +msgid "modals.change-email.submit" +msgstr "이메일 변경하기" + +#: src/app/main/ui/settings/change_email.cljs:107 +msgid "modals.change-email.title" +msgstr "이메일을 변경하세요" + +#: src/app/main/ui/dashboard/team.cljs:873 +msgid "modals.create-webhook.submit-label" +msgstr "웹훅 만들기" + +#: src/app/main/ui/dashboard/team.cljs:838 +msgid "modals.create-webhook.title" +msgstr "웹훅 생성하기" + +#: src/app/main/ui/comments.cljs:298 +msgid "modals.delete-comment-thread.accept" +msgstr "대회 지우기" + +#: src/app/main/ui/comments.cljs:296 +msgid "modals.delete-comment-thread.title" +msgstr "대화 지우기" + +#: src/app/main/ui/dashboard/file_menu.cljs:123 +msgid "modals.delete-file-confirm.accept" +msgstr "파일 지우기" + +#: src/app/main/ui/dashboard/file_menu.cljs:122 +msgid "modals.delete-file-confirm.message" +msgstr "이 파일을 정말로 지우시겠습니까?" + +#: src/app/main/ui/dashboard/file_menu.cljs:121 +msgid "modals.delete-file-confirm.title" +msgstr "파일 삭제중" + +#: src/app/main/ui/dashboard/file_menu.cljs:117 +msgid "modals.delete-file-multi-confirm.accept" +msgstr "여러 파일 지우기" + +#: src/app/main/ui/dashboard/fonts.cljs:344 +msgid "modals.delete-font-variant.title" +msgstr "폰트 스타일 지우는 중" + +#: src/app/main/ui/dashboard/fonts.cljs:330 +msgid "modals.delete-font.title" +msgstr "폰트 지우는 중" + +#: src/app/main/ui/workspace/context_menu.cljs:522, src/app/main/ui/workspace/sidebar/sitemap.cljs:45 +msgid "modals.delete-page.body" +msgstr "정말로 해당 페이지를 지우시겠습니까?" + +#: src/app/main/ui/workspace/context_menu.cljs:521, src/app/main/ui/workspace/sidebar/sitemap.cljs:44 +msgid "modals.delete-page.title" +msgstr "페이지 삭제" + +#: src/app/main/ui/dashboard/project_menu.cljs:69 +msgid "modals.delete-project-confirm.accept" +msgstr "프로젝트 제거" + +#: src/app/main/ui/dashboard/project_menu.cljs:68 +msgid "modals.delete-project-confirm.message" +msgstr "정말로 해당 프로젝트를 지우시겠습니까?" + +#: src/app/main/ui/dashboard/project_menu.cljs:67 +msgid "modals.delete-project-confirm.title" +msgstr "프로젝트 제거" + +#: src/app/main/ui/settings/options.cljs:29, src/app/main/ui/settings/profile.cljs:35 +msgid "notifications.profile-saved" +msgstr "프로필이 성공적으로 저장되었습니다!" + +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:112 +msgid "shortcuts.flip-horizontal" +msgstr "가로로 뒤집기" + +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:113 +msgid "shortcuts.flip-vertical" +msgstr "세로로 뒤집기" + +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:116 +msgid "shortcuts.go-to-drafts" +msgstr "초안으로 가기" + +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:117 +msgid "shortcuts.go-to-libs" +msgstr "공유된 라이브러리로 가기" + +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:118 +msgid "shortcuts.go-to-search" +msgstr "찾기" + +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:119 +msgid "shortcuts.group" +msgstr "그룹" + +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:120 +msgid "shortcuts.h-distribute" +msgstr "가로로 분배하기" diff --git a/frontend/translations/lt.po b/frontend/translations/lt.po index 707e94a2bc..bebfabb410 100644 --- a/frontend/translations/lt.po +++ b/frontend/translations/lt.po @@ -2,278 +2,302 @@ msgid "" msgstr "" "PO-Revision-Date: 2024-06-17 08:07+0000\n" "Last-Translator: Anonymous \n" -"Language-Team: Lithuanian \n" +"Language-Team: Lithuanian " +"\n" "Language: lt\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (" -"n%100<10 || n%100>=20) ? 1 : 2);\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"(n%100<10 || n%100>=20) ? 1 : 2);\n" "X-Generator: Weblate 5.6-dev\n" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:151, src/app/main/ui/viewer/login.cljs:104 msgid "auth.already-have-account" msgstr "Jau turite paskyrą?" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:299 msgid "auth.check-your-email" msgstr "" "Pasitikrinkite savo el. paštą, ten rasite pranešimą su nuorodą, kurią " "paspaudę galėsite pradėti naudotis Penpot." -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:78 msgid "auth.confirm-password" msgstr "Slaptažodžio patvirtinimas" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/register.cljs:163 msgid "auth.create-demo-account" msgstr "Kurti demonstracinę paskyrą" #: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#, unused msgid "auth.create-demo-profile" msgstr "Norite tik išmėginti?" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/login.cljs:43 msgid "auth.demo-warning" msgstr "" "Tai yra DEMONSTRACINĖ versija, NEKURKITE tikrų darbų, nes projektai " "periodiškai - šalinami." -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:189, src/app/main/ui/viewer/login.cljs:90 msgid "auth.forgot-password" msgstr "Pamiršote slaptažodį?" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:254 msgid "auth.fullname" msgstr "Vardas ir Pavardė" -#: src/app/main/ui/auth/register.cljs -#, fuzzy +#: src/app/main/ui/auth/register.cljs:155, src/app/main/ui/viewer/login.cljs:107 msgid "auth.login-here" msgstr "Prisijungimas čia" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:195 msgid "auth.login-submit" msgstr "Prisijungti" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:222 msgid "auth.login-with-github-submit" msgstr "GitHub" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:228 msgid "auth.login-with-gitlab-submit" msgstr "GitLab" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:216 msgid "auth.login-with-google-submit" msgstr "Google" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:201 msgid "auth.login-with-ldap-submit" msgstr "LDAP" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:234, src/app/main/ui/auth/login.cljs:255 msgid "auth.login-with-oidc-submit" msgstr "OpenID" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:71 msgid "auth.new-password" msgstr "Įveskite naują slaptažodį" -#: src/app/main/ui/auth/recovery.cljs -#, fuzzy +#: src/app/main/ui/auth/recovery.cljs:42 msgid "auth.notifications.invalid-token-error" msgstr "Atkūrimo prieigos raktas neteisingas." -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:46 msgid "auth.notifications.password-changed-successfully" msgstr "Slaptažodis sėkmingai pakeistas" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:57 msgid "auth.notifications.profile-not-verified" msgstr "Paskyra yra nepatvirtinta, prieš tęsdami patikrinkite paskyrą." -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:40 msgid "auth.notifications.recovery-token-sent" msgstr "Slaptažodžio atkūrimo nuoroda išsiųsta į jūsų pašto dėžutę." -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:47 msgid "auth.notifications.team-invitation-accepted" msgstr "Sėkmingai prisijungė prie komandos" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:179, src/app/main/ui/auth/register.cljs:115 msgid "auth.password" msgstr "Slaptažodis" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:114 msgid "auth.password-length-hint" msgstr "Ne mažiau kaip 8 simboliai" +#: src/app/main/ui/auth.cljs:41 msgid "auth.privacy-policy" msgstr "Privatumo politika" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:88 msgid "auth.recovery-request-submit" msgstr "Atkurti slaptažodį" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:101 msgid "auth.recovery-request-subtitle" msgstr "Atsiųsime jums el. laišką su instrukcijomis" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:100 msgid "auth.recovery-request-title" msgstr "Pamiršote slaptažodį?" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:82 msgid "auth.recovery-submit" msgstr "Slaptažodžio keitimas" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:298, src/app/main/ui/viewer/login.cljs:93 msgid "auth.register" msgstr "Dar neturite paskyros?" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:302, src/app/main/ui/auth/register.cljs:121, src/app/main/ui/auth/register.cljs:263, src/app/main/ui/viewer/login.cljs:97 msgid "auth.register-submit" msgstr "Sukurti paskyrą" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:140 msgid "auth.register-title" msgstr "Sukurti paskyrą" #: src/app/main/ui/auth.cljs +#, unused msgid "auth.sidebar-tagline" msgstr "Atviro kodo dizaino ir prototipų kūrimo sprendimas." +#: src/app/main/ui/auth.cljs:33, src/app/main/ui/dashboard/sidebar.cljs:1022, src/app/main/ui/workspace/main_menu.cljs:150 msgid "auth.terms-of-service" msgstr "Paslaugų teikimo sąlygos" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:297 msgid "auth.verification-email-sent" msgstr "Išsiuntėme patvirtinimo el. laišką adresu" +#: src/app/main/ui/workspace/libraries.cljs:228 msgid "common.publish" msgstr "Paskelbti" +#: src/app/main/ui/viewer/share_link.cljs:304, src/app/main/ui/viewer/share_link.cljs:314 msgid "common.share-link.all-users" msgstr "Visi Penpot vartotojai" +#: src/app/main/ui/viewer/share_link.cljs:198 msgid "common.share-link.confirm-deletion-link-description" msgstr "" "Ar tikrai norite pašalinti šią nuorodą? Jei tai padarysite, ji niekam " "nebebus pasiekiama" +#: src/app/main/ui/viewer/share_link.cljs:259, src/app/main/ui/viewer/share_link.cljs:289 msgid "common.share-link.current-tag" msgstr "(dabartinis)" +#: src/app/main/ui/viewer/share_link.cljs:207, src/app/main/ui/viewer/share_link.cljs:214 msgid "common.share-link.destroy-link" msgstr "Naikinti nuorodą" +#: src/app/main/ui/viewer/share_link.cljs:221 msgid "common.share-link.get-link" msgstr "Gauti nuorodą" +#: src/app/main/ui/viewer/share_link.cljs:139 msgid "common.share-link.link-copied-success" msgstr "Nuoroda sėkmingai nukopijuota" +#: src/app/main/ui/viewer/share_link.cljs:231 msgid "common.share-link.manage-ops" msgstr "Valdyti leidimus" +#: src/app/main/ui/viewer/share_link.cljs:277 msgid "common.share-link.page-shared" msgid_plural "common.share-link.page-shared" msgstr[0] "Bendrinamas 1 puslapis" msgstr[1] "Bendrinami % puslapiai" msgstr[2] "Bendrinama % puslapių" +#: src/app/main/ui/viewer/share_link.cljs:298 msgid "common.share-link.permissions-can-comment" msgstr "Gali komentuoti" +#: src/app/main/ui/viewer/share_link.cljs:308 msgid "common.share-link.permissions-can-inspect" msgstr "Gali apžiūrėti kodą" +#: src/app/main/ui/viewer/share_link.cljs:193 msgid "common.share-link.permissions-hint" msgstr "Kiekvienas, turintis nuorodą, turės prieigą" +#: src/app/main/ui/viewer/share_link.cljs:241 msgid "common.share-link.permissions-pages" msgstr "Bendrinti puslapiai" +#: src/app/main/ui/viewer/share_link.cljs:183 msgid "common.share-link.placeholder" msgstr "Bendrinama nuoroda bus rodoma čia" +#: src/app/main/ui/viewer/share_link.cljs:303, src/app/main/ui/viewer/share_link.cljs:313 msgid "common.share-link.team-members" msgstr "Tik komandos nariams" +#: src/app/main/ui/viewer/share_link.cljs:171 msgid "common.share-link.title" msgstr "Dalinkitės prototipais" +#: src/app/main/ui/viewer/share_link.cljs:269 msgid "common.share-link.view-all" msgstr "Rinktis viską" +#: src/app/main/ui/workspace/libraries.cljs:224 msgid "common.unpublish" msgstr "Atšaukti paskelbimą" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:85 msgid "dasboard.team-hero.management" msgstr "Komandos valdymas" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:84 msgid "dasboard.team-hero.text" msgstr "" "Penpot yra skirtas komandoms. Pakvieskite narius bendram darbui su " "projektais ir failais" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:82 msgid "dasboard.team-hero.title" msgstr "Suburkite komandą!" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.tutorial-hero.info" msgstr "Išmokite Penpot pagrindus ir mėgaukitės šia pamoka." #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.tutorial-hero.start" msgstr "Pradėti pamoką" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.walkthrough-hero.info" msgstr "Panagrinėkite Penpot ir susipažinkite su pagrindinėmis jo savybėmis." #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.walkthrough-hero.start" msgstr "Pradėkite apžvalgą" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:291, src/app/main/ui/workspace/main_menu.cljs:572 msgid "dashboard.add-shared" msgstr "Pridėti kaip bendrinamą biblioteką" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:75 msgid "dashboard.change-email" msgstr "Keisti el. paštą" -#: src/app/main/data/dashboard.cljs, src/app/main/data/dashboard.cljs +#: src/app/main/data/dashboard.cljs:762, src/app/main/data/dashboard.cljs:983 msgid "dashboard.copy-suffix" msgstr "(kopija)" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:338 msgid "dashboard.create-new-team" msgstr "Sukurti naują komandą" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/components/context_menu_a11y.cljs:256, src/app/main/ui/dashboard/sidebar.cljs:646 msgid "dashboard.default-team-name" msgstr "Jūsų Penpot" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:571 msgid "dashboard.delete-team" msgstr "Naikinti komandą" -#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:276, src/app/main/ui/dashboard/project_menu.cljs:90 msgid "dashboard.duplicate" msgstr "Dublikatas" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:240 msgid "dashboard.duplicate-multi" msgstr "Dubliuoti %s failus" -#: src/app/main/ui/dashboard/grid.cljs +#: src/app/main/ui/dashboard/placeholder.cljs:32 #, markdown msgid "dashboard.empty-placeholder-drafts" msgstr "" @@ -281,96 +305,110 @@ msgstr "" "arba pridėti iš mūsų [Bibliotekos ir šablonai] " "(https://penpot.app/libraries-templates)" +#: src/app/main/ui/workspace/main_menu.cljs:605 msgid "dashboard.export-frames" msgstr "Eksportuokite darbalaukius į PDF" -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:201 msgid "dashboard.export-frames.title" msgstr "Eksportuoti į PDF" +#, unused msgid "dashboard.export-multi" msgstr "Eksportuoti Penpot %s failus" -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:109 msgid "dashboard.export-multiple.selected" msgstr "Pasirinkta %s iš %s elementų" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:578 msgid "dashboard.export-shapes" msgstr "Eksportuoti" -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:180 msgid "dashboard.export-shapes.how-to" msgstr "" "Galite pridėti eksportavimo nustatymus prie elementų iš dizaino ypatybių " "(dešinės šoninės juostos apačioje)." -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:184 msgid "dashboard.export-shapes.how-to-link" msgstr "Informacija, kaip nustatyti eksportą \"Penpot\"." -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:179 msgid "dashboard.export-shapes.no-elements" msgstr "Nėra elementų su eksporto nustatymais." -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:190 msgid "dashboard.export-shapes.title" msgstr "Eksportuoti pažymėtą sritį" +#: src/app/main/ui/export.cljs:427 msgid "dashboard.export.detail" msgstr "* Gali apimti komponentus, grafiką, spalvas ir (arba) tipografiją." +#: src/app/main/ui/export.cljs:426 msgid "dashboard.export.explain" msgstr "" "Viename ar keliuose failuose, kuriuos norite eksportuoti, naudojamos " "bendros bibliotekos. Ką norite daryti su jų komponentais*?" +#: src/app/main/ui/export.cljs:435 msgid "dashboard.export.options.all.message" msgstr "" "failai su bendromis bibliotekomis bus įtraukti į eksportą, išlaikant jų " "susiejimą." +#: src/app/main/ui/export.cljs:436 msgid "dashboard.export.options.all.title" msgstr "Eksportuoti bendrai naudojamas bibliotekas" +#: src/app/main/ui/export.cljs:437 msgid "dashboard.export.options.detach.message" msgstr "" "Bendrai naudojamos bibliotekos nebus įtrauktos į eksportą ir į biblioteką " "nebus pridėta jokių išteklių. " +#: src/app/main/ui/export.cljs:438 msgid "dashboard.export.options.detach.title" msgstr "" "Bendrai naudojamus bibliotekos komponentus traktuokite kaip pagrindinius " "objektus" +#: src/app/main/ui/export.cljs:439 msgid "dashboard.export.options.merge.message" msgstr "" "Jūsų failas bus eksportuotas su visais išoriniais komponentais, sujungtais " "į failų biblioteką." +#: src/app/main/ui/export.cljs:440 msgid "dashboard.export.options.merge.title" msgstr "Įtraukti bendrai naudojamus bibliotekos komponentus į failų bibliotekas" +#: src/app/main/ui/export.cljs:418 msgid "dashboard.export.title" msgstr "Eksportuoti failus" +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:309 msgid "dashboard.fonts.deleted-placeholder" msgstr "Šriftas ištrintas" -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:206 msgid "dashboard.fonts.dismiss-all" msgstr "Atmesti visus" +#: src/app/main/ui/dashboard/fonts.cljs:436 msgid "dashboard.fonts.empty-placeholder" msgstr "Vis dar neįdiegėte tinkintų šriftų." -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:194 msgid "dashboard.fonts.fonts-added" msgid_plural "dashboard.fonts.fonts-added" msgstr[0] "Pridėtas 1 šriftas" msgstr[1] "Pridėti %s šriftai" msgstr[2] "Šriftas(-ai) pridėti" +#: src/app/main/ui/dashboard/fonts.cljs:170 #, markdown msgid "dashboard.fonts.hero-text1" msgstr "" @@ -380,6 +418,7 @@ msgstr "" "šriftų šeima**. Galite įkelti šių formatų šriftus: **TTF, OTF ir WOFF** " "(reikės tik vieno)." +#: src/app/main/ui/dashboard/fonts.cljs:182 #, markdown msgid "dashboard.fonts.hero-text2" msgstr "" @@ -389,106 +428,119 @@ msgstr "" "\"Turinio teisės\". Taip pat galite paskaityti apie [šriftų " "licencijavimą](https://www.typography.com/faq)." -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:202 msgid "dashboard.fonts.upload-all" msgstr "Įkelti viską" +#: src/app/main/ui/dashboard/import.cljs:472, src/app/main/ui/dashboard/project_menu.cljs:108 msgid "dashboard.import" msgstr "Importuokite Penpot failus" +#: src/app/main/ui/dashboard/import.cljs:304, src/app/worker/import.cljs:753, src/app/worker/import.cljs:755 msgid "dashboard.import.analyze-error" msgstr "Oi! Nepavyko importuoti šio failo" +#: src/app/main/ui/dashboard/import.cljs:308 msgid "dashboard.import.import-error" msgstr "Iškilo problema importuojant failą. Failas nebuvo importuotas." +#: src/app/main/ui/dashboard/import.cljs:481, src/app/main/ui/dashboard/import.cljs:488 msgid "dashboard.import.import-warning" msgstr "Kai kuriuose failuose buvo netinkamų objektų, kurie buvo pašalinti." +#: src/app/main/ui/dashboard/import.cljs:144 msgid "dashboard.import.progress.process-colors" msgstr "Apdorojimo spalvos" +#: src/app/main/ui/dashboard/import.cljs:153 msgid "dashboard.import.progress.process-components" msgstr "Komponentų apdorojimas" +#: src/app/main/ui/dashboard/import.cljs:150 msgid "dashboard.import.progress.process-media" msgstr "Apdorojamos laikmenos" +#: src/app/main/ui/dashboard/import.cljs:141 msgid "dashboard.import.progress.process-page" msgstr "Apdorojamas puslapis: %s" +#: src/app/main/ui/dashboard/import.cljs:147 msgid "dashboard.import.progress.process-typographies" msgstr "Tipografijų apdorojimas" +#: src/app/main/ui/dashboard/import.cljs:135 msgid "dashboard.import.progress.upload-data" msgstr "Įkeliami duomenys į serverį (%s/%s)" +#: src/app/main/ui/dashboard/import.cljs:138 msgid "dashboard.import.progress.upload-media" msgstr "Įkeliamas failas: %s" -#: src/app/main/data/dashboard.cljs +#: src/app/main/data/dashboard.cljs:958, src/app/main/data/dashboard.cljs:1181 msgid "dashboard.new-file-prefix" msgstr "Naujas failas" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:55 msgid "dashboard.new-project" msgstr "+ Naujas projektas" -#: src/app/main/data/dashboard.cljs +#: src/app/main/data/dashboard.cljs:726, src/app/main/data/dashboard.cljs:1184 msgid "dashboard.new-project-prefix" msgstr "Naujas projektas" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:60 msgid "dashboard.no-matches-for" msgstr "Nerasta jokių atitikmenų pagal \"%s\"" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:827 msgid "dashboard.no-projects-placeholder" msgstr "Prisegti projektai bus rodomi čia" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:33 msgid "dashboard.notifications.email-changed-successfully" msgstr "Jūsų el. pašto adresas sėkmingai atnaujintas" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:27 msgid "dashboard.notifications.email-verified-successfully" msgstr "Jūsų el. pašto adresas buvo sėkmingai patvirtintas" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:37 msgid "dashboard.notifications.password-saved" msgstr "Slaptažodis sėkmingai išsaugotas!" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1081 msgid "dashboard.num-of-members" msgstr "%s nariai" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:267 msgid "dashboard.open-in-new-tab" msgstr "Atidarykite failą naujame skirtuke" +#: src/app/main/ui/dashboard/files.cljs:117, src/app/main/ui/dashboard/projects.cljs:260, src/app/main/ui/dashboard/projects.cljs:261 msgid "dashboard.options" msgstr "Nustatymai" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:106, src/app/main/ui/settings/password.cljs:119 msgid "dashboard.password-change" msgstr "Keisti slaptažodį" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/pin_button.cljs:24, src/app/main/ui/dashboard/project_menu.cljs:95 msgid "dashboard.pin-unpin" msgstr "Prisegti/Atsegti" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:51 msgid "dashboard.projects-title" msgstr "Projektai" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:86 msgid "dashboard.remove-account" msgstr "Norite pašalinti paskyrą?" #: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "dashboard.remove-shared" msgstr "Pašalinti kaip bendrinamą biblioteką" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:61 msgid "dashboard.theme-change" msgstr "Vartotojo sąsajos tema" diff --git a/frontend/translations/lv.po b/frontend/translations/lv.po index bb7a0d34bb..0089b96d48 100644 --- a/frontend/translations/lv.po +++ b/frontend/translations/lv.po @@ -2,498 +2,544 @@ msgid "" msgstr "" "PO-Revision-Date: 2024-06-17 08:07+0000\n" "Last-Translator: Anonymous \n" -"Language-Team: Latvian \n" +"Language-Team: Latvian " +"\n" "Language: lv\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=3; plural=(n % 10 == 0 || n % 100 >= 11 && n % 100 <= " -"19) ? 0 : ((n % 10 == 1 && n % 100 != 11) ? 1 : 2);\n" +"Plural-Forms: nplurals=3; plural=(n % 10 == 0 || n % 100 >= 11 && n % 100 " +"<= 19) ? 0 : ((n % 10 == 1 && n % 100 != 11) ? 1 : 2);\n" "X-Generator: Weblate 5.6-dev\n" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:151, src/app/main/ui/viewer/login.cljs:104 msgid "auth.already-have-account" msgstr "Jau ir konts?" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:299 msgid "auth.check-your-email" msgstr "" "Jāpārbauda savs e-pasts un jānoklikšķina uz saites, lai apstiprinātu un " "sāktu izmantot Penpot." -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:78 msgid "auth.confirm-password" msgstr "Apstipriniet paroli" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/register.cljs:163 msgid "auth.create-demo-account" msgstr "Izveidot demonstrācijas kontu" #: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#, unused msgid "auth.create-demo-profile" msgstr "Gribat tikai pamēģināt?" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/login.cljs:43 msgid "auth.demo-warning" msgstr "" "Šis ir IZRĀDĪŠANAS pakalpojums, kas NAV IZMANTOJAMS īstam darbam, jo " "projekti ik pēc noteikta laika posma tiks izdzēsti." -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:189, src/app/main/ui/viewer/login.cljs:90 msgid "auth.forgot-password" msgstr "Aizmirsta parole?" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:254 msgid "auth.fullname" msgstr "Pilns vārds" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:282 msgid "auth.login-account-title" msgstr "Pieteikties manā kontā" -#: src/app/main/ui/auth/register.cljs -#, fuzzy +#: src/app/main/ui/auth/register.cljs:155, src/app/main/ui/viewer/login.cljs:107 msgid "auth.login-here" msgstr "Pieteikties šeit" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:195 msgid "auth.login-submit" msgstr "Pieteikties" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:285 msgid "auth.login-tagline" msgstr "Penpot ir bezmaksas atvērtā pirmkoda dizaina rīks dizaina un koda sadarbībai" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:222 msgid "auth.login-with-github-submit" msgstr "GitHub" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:228 msgid "auth.login-with-gitlab-submit" msgstr "GitLab" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:216 msgid "auth.login-with-google-submit" msgstr "Google" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:201 msgid "auth.login-with-ldap-submit" msgstr "LDAP" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:234, src/app/main/ui/auth/login.cljs:255 msgid "auth.login-with-oidc-submit" msgstr "AtvērtoID (OpenID)" -#: src/app/main/ui/settings/team-form.cljs, src/app/main/ui/auth/register.cljs, src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/onboarding/team_choice.cljs, src/app/main/ui/settings/access_tokens.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/settings/profile.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/auth/register.cljs:217, src/app/main/ui/dashboard/team_form.cljs:76, src/app/main/ui/onboarding/team_choice.cljs:180, src/app/main/ui/settings/access_tokens.cljs:66, src/app/main/ui/settings/feedback.cljs:34, src/app/main/ui/settings/profile.cljs:45, src/app/main/ui/workspace/sidebar/assets/groups.cljs:108 msgid "auth.name.not-all-space" msgstr "Nosaukumam jāsatur simboli, kas nav atstarpe." -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/onboarding/team_choice.cljs, src/app/main/ui/settings/access_tokens.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/settings/profile.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/auth/register.cljs:218, src/app/main/ui/dashboard/team_form.cljs:77, src/app/main/ui/onboarding/team_choice.cljs:181, src/app/main/ui/settings/access_tokens.cljs:67, src/app/main/ui/settings/feedback.cljs:33, src/app/main/ui/settings/profile.cljs:44, src/app/main/ui/workspace/sidebar/assets/groups.cljs:109 msgid "auth.name.too-long" msgstr "Nosaukumus nedrīkst pārsniegt 250 simbolus." -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:71 msgid "auth.new-password" msgstr "Ierakstiet jaunu paroli" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:42 msgid "auth.notifications.invalid-token-error" msgstr "Atkopšanas tekstvienība nav derīga." -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:46 msgid "auth.notifications.password-changed-successfully" msgstr "Parole ir veiksmīgi nomainīta" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:57 msgid "auth.notifications.profile-not-verified" msgstr "" "Profils nav apliecināts, lūgums pirms turpināšanas veikt profila " "apstiprināšanu." -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:40 msgid "auth.notifications.recovery-token-sent" msgstr "Paroles atkopšanas saite ir nosūtīta e-pastā." -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:47 msgid "auth.notifications.team-invitation-accepted" msgstr "Pievienošanās komandai bija veiksmīga" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:179, src/app/main/ui/auth/register.cljs:115 msgid "auth.password" msgstr "Parole" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:114 msgid "auth.password-length-hint" msgstr "Vismaz 8 rakstzīmes" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/recovery.cljs:61, src/app/main/ui/auth/recovery.cljs:62, src/app/main/ui/auth/register.cljs:81, src/app/main/ui/settings/password.cljs:75, src/app/main/ui/settings/password.cljs:76, src/app/main/ui/settings/password.cljs:77 msgid "auth.password-not-empty" msgstr "Parolē ir jābūt arī citām rakstzīmēm bez atstarpes." +#: src/app/main/ui/auth.cljs:41 msgid "auth.privacy-policy" msgstr "Privātuma politika" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:88 msgid "auth.recovery-request-submit" msgstr "Atkopt paroli" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:101 msgid "auth.recovery-request-subtitle" msgstr "Mēs nosūtīsim e-pasta ziņojumu ar norādēm" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:100 msgid "auth.recovery-request-title" msgstr "Aizmirsat paroli?" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:82 msgid "auth.recovery-submit" msgstr "Nomainīt paroli" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:298, src/app/main/ui/viewer/login.cljs:93 msgid "auth.register" msgstr "Vēl nav konta?" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:302, src/app/main/ui/auth/register.cljs:121, src/app/main/ui/auth/register.cljs:263, src/app/main/ui/viewer/login.cljs:97 msgid "auth.register-submit" msgstr "Izveidot kontu" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:140 msgid "auth.register-title" msgstr "Izveidot kontu" #: src/app/main/ui/auth.cljs +#, unused msgid "auth.sidebar-tagline" msgstr "Atvērtā pirmkoda risinājums dizaina izstrādei un modelēšanai." +#: src/app/main/ui/auth.cljs:33, src/app/main/ui/dashboard/sidebar.cljs:1022, src/app/main/ui/workspace/main_menu.cljs:150 msgid "auth.terms-of-service" msgstr "Pakalpojumu sniegšanas noteikumi" -#: src/app/main/ui/auth/register.cljs +#, unused msgid "auth.terms-privacy-agreement" msgstr "" "Ar jauna konta izveidošanu tiek piekrists mūsu pakalpojuma noteikumiem un " "privātuma nosacījumiem." -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:297 msgid "auth.verification-email-sent" msgstr "Mēs esam nosūtījuši apstiprinājuma e-pasta ziņojumu uz" #: src/app/main/ui/onboarding/questions.cljs +#, unused msgid "branding-illustrations-marketing-pieces" msgstr "... zīmolrades, ilustrācijām, mārketinga materiāliem utt." +#: src/app/main/ui/workspace/libraries.cljs:228 msgid "common.publish" msgstr "Publicēt" +#: src/app/main/ui/viewer/share_link.cljs:304, src/app/main/ui/viewer/share_link.cljs:314 msgid "common.share-link.all-users" msgstr "Visi Penpot lietotāji" +#: src/app/main/ui/viewer/share_link.cljs:198 msgid "common.share-link.confirm-deletion-link-description" msgstr "Vai tiešām noņemt šo saiti? Noņemot to, saite vairs nebūs pieejama nevienam" +#: src/app/main/ui/viewer/share_link.cljs:259, src/app/main/ui/viewer/share_link.cljs:289 msgid "common.share-link.current-tag" msgstr "(pašreizējais)" +#: src/app/main/ui/viewer/share_link.cljs:207, src/app/main/ui/viewer/share_link.cljs:214 msgid "common.share-link.destroy-link" msgstr "Iznīcināt saiti" +#: src/app/main/ui/viewer/share_link.cljs:221 msgid "common.share-link.get-link" msgstr "Iegūt saiti" +#: src/app/main/ui/viewer/share_link.cljs:139 msgid "common.share-link.link-copied-success" msgstr "Saite ir veiksmīgi nokopēta" +#: src/app/main/ui/viewer/share_link.cljs:231 msgid "common.share-link.manage-ops" msgstr "Pārvaldīt atļaujas" +#: src/app/main/ui/viewer/share_link.cljs:277 msgid "common.share-link.page-shared" msgid_plural "common.share-link.page-shared" msgstr[0] "%s kopīgotu lapu" msgstr[1] "%s kopīgota lapa" msgstr[2] "%s kopīgotas lapas" +#: src/app/main/ui/viewer/share_link.cljs:298 msgid "common.share-link.permissions-can-comment" msgstr "Var komentēt" +#: src/app/main/ui/viewer/share_link.cljs:308 msgid "common.share-link.permissions-can-inspect" msgstr "Var apskatīt kodu" +#: src/app/main/ui/viewer/share_link.cljs:193 msgid "common.share-link.permissions-hint" msgstr "Ikvienam, kam ir saite, būs piekļuve" +#: src/app/main/ui/viewer/share_link.cljs:241 msgid "common.share-link.permissions-pages" msgstr "Kopīgotas lapas" +#: src/app/main/ui/viewer/share_link.cljs:183 msgid "common.share-link.placeholder" msgstr "Šeit tiks parādīta kopīgojama saite" +#: src/app/main/ui/viewer/share_link.cljs:303, src/app/main/ui/viewer/share_link.cljs:313 msgid "common.share-link.team-members" msgstr "Tikai komandas dalībnieki" +#: src/app/main/ui/viewer/share_link.cljs:171 msgid "common.share-link.title" msgstr "Kopīgot prototipus" +#: src/app/main/ui/viewer/share_link.cljs:269 msgid "common.share-link.view-all" msgstr "Atlasīt visu" +#: src/app/main/ui/workspace/libraries.cljs:224 msgid "common.unpublish" msgstr "Atcelt publikāciju" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:85 msgid "dasboard.team-hero.management" msgstr "Komandas pārvaldība" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:84 msgid "dasboard.team-hero.text" msgstr "" "Penpot ir paredzēta komandām. Jāuzaicina dalībnieki, lai kopā strādātu ar " "projektiem un datnēm" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:82 msgid "dasboard.team-hero.title" msgstr "Apvienojieties!" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.tutorial-hero.info" msgstr "Penpot pamatu apgūšana, kamēr tiek gūts prieks, ar šo praktisko apmācību." #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.tutorial-hero.start" msgstr "Sākt apmācību" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.tutorial-hero.title" msgstr "Praktiskā apmācība" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.walkthrough-hero.info" msgstr "Caurskati Penpot un iepazīsties ar tās galvenajām iespējām." #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.walkthrough-hero.start" msgstr "Sākt iepazīšanos" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.walkthrough-hero.title" msgstr "Saskarnes caurskate" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:115 msgid "dashboard.access-tokens.copied-success" msgstr "Pilnvara ievietota starpliktuvē" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:202 msgid "dashboard.access-tokens.create" msgstr "Izveidot jaunu pilnvaru" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:76 msgid "dashboard.access-tokens.create.success" msgstr "Piekļuves pilnvara ir veiksmīgi izveidota." -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:300 msgid "dashboard.access-tokens.empty.add-one" msgstr "Jānospiež poga \"Izveidot jaunu pilnvaru\", lai izveidotu kādu." -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:299 msgid "dashboard.access-tokens.empty.no-access-tokens" msgstr "Pagaidām vēl nav pilnvaru." -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:53 msgid "dashboard.access-tokens.errors-required-name" msgstr "Nosaukums ir obligāts" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:147 msgid "dashboard.access-tokens.expiration-180-days" msgstr "180 dienas" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:144 msgid "dashboard.access-tokens.expiration-30-days" msgstr "30 dienas" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:145 msgid "dashboard.access-tokens.expiration-60-days" msgstr "60 dienas" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:146 msgid "dashboard.access-tokens.expiration-90-days" msgstr "90 dienas" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:143 msgid "dashboard.access-tokens.expiration-never" msgstr "Nekad" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:282 msgid "dashboard.access-tokens.expired-on" msgstr "Izbeidzās %s" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:283 msgid "dashboard.access-tokens.expires-on" msgstr "Derīgs līdz %s" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:281 msgid "dashboard.access-tokens.no-expiration" msgstr "Bez derīguma termiņa" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:197 msgid "dashboard.access-tokens.personal" msgstr "Privātās piekļuves pilnvaras" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:198 msgid "dashboard.access-tokens.personal.description" msgstr "" "Privātās piekļuves pilnvaras darbojas kā alternatīva mūsu " "pieteikšanās/paroles autentificēšanas sistēmai, un tās var izmantot, lai " "ļautu lietotnēm piekļūt iekšējam Penpot API" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:154 msgid "dashboard.access-tokens.token-will-expire" msgstr "Pilnvara ir derīga līdz %s" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:155 msgid "dashboard.access-tokens.token-will-not-expire" msgstr "Pilnvarai nav derīguma beigu datuma" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:291, src/app/main/ui/workspace/main_menu.cljs:572 msgid "dashboard.add-shared" msgstr "Pievienot kā koplietojamu bibliotēku" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:75 msgid "dashboard.change-email" msgstr "Mainīt e-pasta adresi" -#: src/app/main/data/dashboard.cljs, src/app/main/data/dashboard.cljs +#: src/app/main/data/dashboard.cljs:762, src/app/main/data/dashboard.cljs:983 msgid "dashboard.copy-suffix" msgstr "(kopija)" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:338 msgid "dashboard.create-new-team" msgstr "Izveidot jaunu komandu" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/components/context_menu_a11y.cljs:256, src/app/main/ui/dashboard/sidebar.cljs:646 msgid "dashboard.default-team-name" msgstr "Mans Penpot" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:571 msgid "dashboard.delete-team" msgstr "Dzēst komandu" +#: src/app/main/ui/dashboard/file_menu.cljs:296, src/app/main/ui/workspace/main_menu.cljs:589 msgid "dashboard.download-binary-file" msgstr "Lejupielādēt Penpot datni (.penpot)" +#: src/app/main/ui/dashboard/file_menu.cljs:300, src/app/main/ui/workspace/main_menu.cljs:597 msgid "dashboard.download-standard-file" msgstr "Lejupielādēt standarta datni (.svg + .json)" -#: src/app/main/ui/dashboard/project_menu.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:276, src/app/main/ui/dashboard/project_menu.cljs:90 msgid "dashboard.duplicate" msgstr "Divkāršot" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:240 msgid "dashboard.duplicate-multi" msgstr "Divkāršot %s datnes" -#: src/app/main/ui/dashboard/grid.cljs +#: src/app/main/ui/dashboard/placeholder.cljs:32 +#, markdown msgid "dashboard.empty-placeholder-drafts" msgstr "" "Šeit tiks parādītas bibliotēkām pievienotās datnes. Mēģini koplietot datnes " "vai pievienot tās no mūsu [bibliotēkām un " "veidnēm](https://penpot.app/libraries-templates)." +#: src/app/main/ui/dashboard/file_menu.cljs:249 msgid "dashboard.export-binary-multi" msgstr "Lejupielādēt %s Penpot datnes (.penpot)" +#: src/app/main/ui/workspace/main_menu.cljs:605 msgid "dashboard.export-frames" msgstr "Izgūt plātnes kā PDF" -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:201 msgid "dashboard.export-frames.title" msgstr "Izgūt kā PDF" +#, unused msgid "dashboard.export-multi" msgstr "Izgūt Penpot %s datnes" -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:109 msgid "dashboard.export-multiple.selected" msgstr "Atlasīti elementi - %s no %s" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:578 msgid "dashboard.export-shapes" msgstr "Izgūt" -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:180 msgid "dashboard.export-shapes.how-to" msgstr "" "Izgūšanas iestatījumus elementiem var pievienot no noformējuma īpašībām " "(labās sānjoslas apakšā)." -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:184 msgid "dashboard.export-shapes.how-to-link" msgstr "Informācija par to, kā iestatīt izgūšanu Penpot." -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:179 msgid "dashboard.export-shapes.no-elements" msgstr "Nav elementu ar izgūšanas iestatījumiem." -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:190 msgid "dashboard.export-shapes.title" msgstr "Izgūt atlasi" +#: src/app/main/ui/dashboard/file_menu.cljs:252 msgid "dashboard.export-standard-multi" msgstr "Lejupielādēt %s standarta datnes (. svg +. json)" +#: src/app/main/ui/export.cljs:427 msgid "dashboard.export.detail" msgstr "* var ietvert sastāvdaļas, attēlus, krāsas un/vai burtu stilus un veidus." +#: src/app/main/ui/export.cljs:426 msgid "dashboard.export.explain" msgstr "" "Viena vai vairākas izgūstamās datnes izmanto koplietojamas bibliotēkas. Ko " "iesākt ar to līdzekļiem*?" +#: src/app/main/ui/export.cljs:435 msgid "dashboard.export.options.all.message" msgstr "" "izguvē tiks iekļautas datnes ar koplietojamām bibliotēkām, saglabājot to " "sasaisti." +#: src/app/main/ui/export.cljs:436 msgid "dashboard.export.options.all.title" msgstr "Izgūt koplietojamās bibliotēkas" +#: src/app/main/ui/export.cljs:437 msgid "dashboard.export.options.detach.message" msgstr "" "Koplietojamās bibliotēkas netiks iekļautas izguvē, un bibliotēkai netiks " "pievienoti līdzekļi. " +#: src/app/main/ui/export.cljs:438 msgid "dashboard.export.options.detach.title" msgstr "Attiekties pret koplietojamo bibliotēku līdzekļiem kā pret pamatobjektiem" +#: src/app/main/ui/export.cljs:439 msgid "dashboard.export.options.merge.message" msgstr "" "Datne tiks izgūta ar visiem ārējiem līdzekļiem, kas tiks apvienoti datnes " "bibliotēkā." +#: src/app/main/ui/export.cljs:440 msgid "dashboard.export.options.merge.title" msgstr "Iekļaut koplietojamos bibliotēkas līdzekļus datņu bibliotēkās" +#: src/app/main/ui/export.cljs:418 msgid "dashboard.export.title" msgstr "Izgūt datnes" +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:309 msgid "dashboard.fonts.deleted-placeholder" msgstr "Fonts izdzēsts" -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:206 msgid "dashboard.fonts.dismiss-all" msgstr "Noraidīt visu" +#: src/app/main/ui/dashboard/fonts.cljs:436 msgid "dashboard.fonts.empty-placeholder" msgstr "Šeit tiks parādīti augšupielādētie pielāgotie fonti." -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:194 msgid "dashboard.fonts.fonts-added" msgid_plural "dashboard.fonts.fonts-added" msgstr[0] "Nav pievienoti fonti" msgstr[1] "Fonts pievienots" msgstr[2] "%s fonti pievienoti" +#: src/app/main/ui/dashboard/fonts.cljs:170 +#, markdown msgid "dashboard.fonts.hero-text1" msgstr "" "Visi augšupielādētie tīmekļa fonti tiks pievienoti fontu saimju sarakstam, " @@ -501,6 +547,8 @@ msgstr "" "saimes nosaukumu tiks apkopoti kā **viena fontu saime**. Var augšupielādēt " "fontus šādos veidolos: **TTF, OTF un WOFF** (būs nepieciešams tikai viens)." +#: src/app/main/ui/dashboard/fonts.cljs:182 +#, markdown msgid "dashboard.fonts.hero-text2" msgstr "" "Vajadzētu augšupielādēt tikai sev piederošus fontus vai tos, kuriem ir " @@ -508,10 +556,12 @@ msgstr "" "sniegšanas noteikumos](https://penpot.app/terms.html). Varētu būt noderīgi " "izlasīt arī par [fontu licencēšanu](https://www.typography.com/faq)." -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:202 msgid "dashboard.fonts.upload-all" msgstr "Augšupielādēt visu" +#: src/app/main/ui/dashboard/fonts.cljs:187 +#, markdown msgid "dashboard.fonts.warning-text" msgstr "" "Esam noteikuši iespējamu sarežģījumu ar fontiem, kas ir saistīta ar " @@ -521,1527 +571,1692 @@ msgstr "" "[Transfonter](https://transfonter.org/), lai izveidotu tīmekļa fontus un " "novērstu kļūdas. " +#: src/app/main/ui/dashboard/import.cljs:472, src/app/main/ui/dashboard/project_menu.cljs:108 msgid "dashboard.import" msgstr "Ievietot Penpot datnes" +#: src/app/main/ui/dashboard/import.cljs:304, src/app/worker/import.cljs:753, src/app/worker/import.cljs:755 msgid "dashboard.import.analyze-error" msgstr "Ak vai! Šo datni nevarēja ievietot" +#, unused msgid "dashboard.import.analyze-error.components-v2" msgstr "Datne ar v2 sastāvdaļām ir aktivizēta, bet šī komanda to vēl neatbalsta." +#: src/app/main/ui/dashboard/import.cljs:308 msgid "dashboard.import.import-error" msgstr "Datnes ievietošanas laikā radās sarežģījumi. Datne netika ievietota." +#: src/app/main/ui/dashboard/import.cljs:493 msgid "dashboard.import.import-message" msgid_plural "dashboard.import.import-message" msgstr[0] "%s datņu tika veiksmīgi ievietotas." msgstr[1] "%s datne tika veiksmīgi ievietota." msgstr[2] "%s datnes tika veiksmīgi ievietotas." +#: src/app/main/ui/dashboard/import.cljs:481, src/app/main/ui/dashboard/import.cljs:488 msgid "dashboard.import.import-warning" msgstr "Dažās datnēs bija nederīgi objekti, kuri tika noņemti." +#: src/app/main/ui/dashboard/import.cljs:144 msgid "dashboard.import.progress.process-colors" msgstr "Krāsu apstrāde" +#: src/app/main/ui/dashboard/import.cljs:153 msgid "dashboard.import.progress.process-components" msgstr "Apstrādā sastāvdaļas" +#: src/app/main/ui/dashboard/import.cljs:150 msgid "dashboard.import.progress.process-media" msgstr "Multivides apstrāde" +#: src/app/main/ui/dashboard/import.cljs:141 msgid "dashboard.import.progress.process-page" msgstr "%s lapas apstrāde" +#: src/app/main/ui/dashboard/import.cljs:147 msgid "dashboard.import.progress.process-typographies" msgstr "Apstrādā burtu stilus un veidus" +#: src/app/main/ui/dashboard/import.cljs:135 msgid "dashboard.import.progress.upload-data" msgstr "Augšupielādē datus serverī (%s/%s)" +#: src/app/main/ui/dashboard/import.cljs:138 msgid "dashboard.import.progress.upload-media" msgstr "Augšupielādē datni: %s" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:109 msgid "dashboard.invite-profile" msgstr "Uzaicināt personas" -#: src/app/main/ui/dashboard/sidebar.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:547, src/app/main/ui/dashboard/sidebar.cljs:556, src/app/main/ui/dashboard/sidebar.cljs:563, src/app/main/ui/dashboard/team.cljs:312 msgid "dashboard.leave-team" msgstr "Atstāt komandu" +#: src/app/main/ui/dashboard/templates.cljs:88, src/app/main/ui/dashboard/templates.cljs:163 msgid "dashboard.libraries-and-templates" msgstr "Bibliotēkas un veidnes" +#: src/app/main/ui/dashboard/templates.cljs:164 msgid "dashboard.libraries-and-templates.explore" msgstr "Izpētīt vairāk un uzzinātt, kā sniegt ieguldījumu" +#: src/app/main/ui/dashboard/import.cljs:365 msgid "dashboard.libraries-and-templates.import-error" msgstr "Veidnes ievietošanas laikā radās sarežģījumi. Veidne netika ievietota." -#: src/app/main/ui/dashboard/libraries.cljs +#: src/app/main/ui/dashboard/libraries.cljs:53 msgid "dashboard.libraries-title" msgstr "Bibliotēkas" -#: src/app/main/ui/dashboard/grid.cljs +#: src/app/main/ui/dashboard/placeholder.cljs:45 msgid "dashboard.loading-files" msgstr "ielādē datnes …" +#: src/app/main/ui/dashboard/fonts.cljs:431 msgid "dashboard.loading-fonts" msgstr "notiek fontu ielāde …" -#: src/app/main/ui/dashboard/project_menu.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:281, src/app/main/ui/dashboard/project_menu.cljs:100 msgid "dashboard.move-to" msgstr "Pārvietot uz" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:245 msgid "dashboard.move-to-multi" msgstr "Pārvietot %s datnes uz" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:226 msgid "dashboard.move-to-other-team" msgstr "Pārvietot uz citu komandu" -#: src/app/main/ui/dashboard/projects.cljs, -#: src/app/main/ui/dashboard/files.cljs +#: src/app/main/ui/dashboard/files.cljs:105, src/app/main/ui/dashboard/projects.cljs:252, src/app/main/ui/dashboard/projects.cljs:253 msgid "dashboard.new-file" msgstr "+ Jauna datne" -#: src/app/main/data/dashboard.cljs +#: src/app/main/data/dashboard.cljs:958, src/app/main/data/dashboard.cljs:1181 msgid "dashboard.new-file-prefix" msgstr "Jauna datne" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:55 msgid "dashboard.new-project" msgstr "+ Jauns projekts" -#: src/app/main/data/dashboard.cljs +#: src/app/main/data/dashboard.cljs:726, src/app/main/data/dashboard.cljs:1184 msgid "dashboard.new-project-prefix" msgstr "Jauns projekts" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:60 msgid "dashboard.no-matches-for" msgstr "“%s” nav atrasta neviena atbilstība" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:827 msgid "dashboard.no-projects-placeholder" msgstr "Šeit būs redzami piespraustie projekti" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:33 msgid "dashboard.notifications.email-changed-successfully" msgstr "E-pasta adrese tika veiksmīgi atjaunināta" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:27 msgid "dashboard.notifications.email-verified-successfully" msgstr "E-pasta adrese tika veiksmīgi apliecināta" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:37 msgid "dashboard.notifications.password-saved" msgstr "Parole ir veiksmīgi saglabāta." -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1081 msgid "dashboard.num-of-members" msgstr "Dalībieki: %s" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:267 msgid "dashboard.open-in-new-tab" msgstr "Atvērt datni jaunā cilnē" +#: src/app/main/ui/dashboard/files.cljs:117, src/app/main/ui/dashboard/projects.cljs:260, src/app/main/ui/dashboard/projects.cljs:261 msgid "dashboard.options" msgstr "Opcijas" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:106, src/app/main/ui/settings/password.cljs:119 msgid "dashboard.password-change" msgstr "Mainīt paroli" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/pin_button.cljs:24, src/app/main/ui/dashboard/project_menu.cljs:95 msgid "dashboard.pin-unpin" msgstr "Piespraust/Atspraust" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:51 msgid "dashboard.projects-title" msgstr "Projekti" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:86 msgid "dashboard.remove-account" msgstr "Noņemt savu kontu?" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "dashboard.remove-shared" msgstr "Noņemt kā koplietojamo bibliotēku" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:78 msgid "dashboard.save-settings" msgstr "Saglabāt iestatījumus" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:246, src/app/main/ui/dashboard/sidebar.cljs:247 msgid "dashboard.search-placeholder" msgstr "Meklēt…" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:55 msgid "dashboard.searching-for" msgstr "Meklē pēc “%s“…" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:56 msgid "dashboard.select-ui-language" msgstr "Atlasīt saskarnes valodu" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:63 msgid "dashboard.select-ui-theme" msgstr "Atlasīt dizainu" -#: src/app/main/ui/dashboard/grid.cljs +#: src/app/main/ui/dashboard/projects.cljs:282 msgid "dashboard.show-all-files" msgstr "Rādīt visas datnes" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:96 msgid "dashboard.success-delete-file" msgid_plural "dashboard.success-delete-file" msgstr[0] "Datnes netika izdzēstas" msgstr[1] "Datne ir sekmīgi izdzēsta" msgstr[2] "Datnes ir sekmīgi izdzēstas" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:59 msgid "dashboard.success-delete-project" msgstr "Projekts tika veiksmīgi izdzēsts" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:91 msgid "dashboard.success-duplicate-file" msgid_plural "dashboard.success-delete-file" msgstr[0] "Neviena datne netika sekmīgi divkāršota" msgstr[1] "Datne tika sekmīgi divkāršota" msgstr[2] "Datnes tika sekmīgi divkāršotas" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:33 msgid "dashboard.success-duplicate-project" msgstr "Projekts tika veiksmīgi divkāršots" -#: src/app/main/ui/dashboard/grid.cljs, src/app/main/ui/dashboard/sidebar.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:130, src/app/main/ui/dashboard/grid.cljs:558, src/app/main/ui/dashboard/sidebar.cljs:152 msgid "dashboard.success-move-file" msgstr "Datne tika sekmīgi pārvietota" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:129 msgid "dashboard.success-move-files" msgstr "Datnes tika veiksmīgi pārvietotas" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:54 msgid "dashboard.success-move-project" msgstr "Projekts tika veiksmīgi pārvietots" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1052 msgid "dashboard.team-info" msgstr "Par komandu" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1070 msgid "dashboard.team-members" msgstr "Komandas dalībnieki" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1085 msgid "dashboard.team-projects" msgstr "Komandas projekti" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:61 msgid "dashboard.theme-change" msgstr "Saskarnes dizains" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:42 msgid "dashboard.title-search" msgstr "Meklēšanas rezultāti" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:50 msgid "dashboard.type-something" msgstr "Jāievada, lai meklētu" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:287, src/app/main/ui/workspace/main_menu.cljs:566 msgid "dashboard.unpublish-shared" msgstr "Atcelt bibliotēkas publicēšanu" -#: src/app/main/ui/settings/password.cljs, -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:71 msgid "dashboard.update-settings" msgstr "Atjaunināt iestatījumus" +#: src/app/main/ui/dashboard/team.cljs:861 msgid "dashboard.webhooks.active" msgstr "Ir aktīvs" +#: src/app/main/ui/dashboard/team.cljs:862 msgid "dashboard.webhooks.active.explain" msgstr "Kad tiks aktivizēts āķis, notikuma detaļas tiks piegādātās" +#: src/app/main/ui/dashboard/team.cljs:852 msgid "dashboard.webhooks.content-type" msgstr "Satura tips" +#: src/app/main/ui/dashboard/team.cljs:885 msgid "dashboard.webhooks.create" msgstr "Izveidot tīmekļa aizķeri" +#: src/app/main/ui/dashboard/team.cljs:775 msgid "dashboard.webhooks.create.success" msgstr "Tīmekļa aizķere ir veiksmīgi izveidota." +#: src/app/main/ui/dashboard/team.cljs:882 msgid "dashboard.webhooks.description" msgstr "" "Tīmekļa aizķeres ir vienkāršs veids, kā ļaut citām tīmekļa vietnēm un " "lietotnēm saņemt paziņojumus, kad Penpot notiek noteikti notikumi. Mēs " "nosūtīsim POST pieprasījumu katram norādītajam URL." +#: src/app/main/ui/dashboard/team.cljs:1005 msgid "dashboard.webhooks.empty.add-one" msgstr "Jānospiež poga \"Pievienot tīmekļa aizķeri\", lai pievienotu kādu." +#: src/app/main/ui/dashboard/team.cljs:1004 msgid "dashboard.webhooks.empty.no-webhooks" msgstr "Līdz šim nav izveidota neviena tīmekļa aizķere." +#, unused msgid "dashboard.webhooks.update.success" msgstr "Tīmekļa aizķere ir sekmīgi atjaunināta." -#: src/app/main/ui/settings.cljs +#: src/app/main/ui/settings.cljs:31 msgid "dashboard.your-account-title" msgstr "Mans konts" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:70 msgid "dashboard.your-email" msgstr "E-pasta adrese" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:62 msgid "dashboard.your-name" msgstr "Vārds" -#: src/app/main/ui/dashboard/search.cljs, src/app/main/ui/dashboard/team.cljs, -#: src/app/main/ui/dashboard/libraries.cljs, -#: src/app/main/ui/dashboard/projects.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:38, src/app/main/ui/dashboard/fonts.cljs:33, src/app/main/ui/dashboard/libraries.cljs:42, src/app/main/ui/dashboard/projects.cljs:318, src/app/main/ui/dashboard/search.cljs:30, src/app/main/ui/dashboard/sidebar.cljs:312, src/app/main/ui/dashboard/team.cljs:495, src/app/main/ui/dashboard/team.cljs:729, src/app/main/ui/dashboard/team.cljs:991, src/app/main/ui/dashboard/team.cljs:1038 msgid "dashboard.your-penpot" msgstr "Mans Penpot" -#: src/app/main/ui/alert.cljs +#: src/app/main/ui/alert.cljs:32 msgid "ds.alert-ok" msgstr "Labi" -#: src/app/main/ui/alert.cljs +#: src/app/main/ui/alert.cljs:31, src/app/main/ui/alert.cljs:34 msgid "ds.alert-title" msgstr "Uzmanību" -#: src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:83 msgid "ds.component-subtitle" msgstr "Atjaunināmās sastāvdaļas:" -#: src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:36, src/app/main/ui/workspace/plugins.cljs:246 msgid "ds.confirm-cancel" msgstr "Atcelt" -#: src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:37, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:141 msgid "ds.confirm-ok" msgstr "Labi" -#: src/app/main/ui/confirm.cljs, src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:35, src/app/main/ui/confirm.cljs:39 msgid "ds.confirm-title" msgstr "Vai esat pārliecināti?" -#: src/app/main/data/users.cljs +#: src/app/main/data/users.cljs:705 msgid "errors.auth-provider-not-allowed" msgstr "Autentifikācijas nodrošinātājs nav atļauts šim profilam" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:62 msgid "errors.auth-provider-not-configured" msgstr "Autentifikācijas nodrošinātājs nav konfigurēts." +#: src/app/main/errors.cljs:104 msgid "errors.auth.unable-to-login" msgstr "Šķiet, ka neesi autentificēts vai ir beidzies sesijas derīgums." +#: src/app/main/data/fonts.cljs:189 msgid "errors.bad-font" msgstr "Fontu %s nevarēja ielādēt" +#: src/app/main/data/fonts.cljs:188 msgid "errors.bad-font-plural" msgstr "Fontus %s nevarēja ielādēt" +#: src/app/main/data/workspace/media.cljs:198 msgid "errors.cannot-upload" msgstr "Nevar augšupielādēt multivides datni." -#: src/app/main/data/workspace.cljs +#: src/app/main/data/workspace.cljs:1598 msgid "errors.clipboard-not-implemented" msgstr "Izmantotais pārlūks nevar veikt šo darbību" -#: src/app/main/ui/auth/verify_token.cljs, -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/auth/verify_token.cljs:82, src/app/main/ui/settings/change_email.cljs:46 msgid "errors.email-already-exists" msgstr "E-pasta adrese jau tiek izmantota" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:87 msgid "errors.email-already-validated" msgstr "E-pasta adrese jau ir apliecināta." +#: src/app/main/ui/settings/password.cljs:28 msgid "errors.email-as-password" msgstr "E-pastu nevar izmantot kā paroli" -#: src/app/main/data/users.cljs +#: src/app/main/data/users.cljs:707, src/app/main/ui/auth/register.cljs:63 msgid "errors.email-domain-not-allowed" msgstr "Domēns nav atļauts" -#: src/app/main/ui/auth/register.cljs, -#: src/app/main/ui/auth/recovery_request.cljs, -#: src/app/main/ui/settings/change_email.cljs, -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/auth/recovery_request.cljs:63, src/app/main/ui/dashboard/team.cljs:578, src/app/main/ui/settings/change_email.cljs:54 msgid "errors.email-has-permanent-bounces" msgstr "E-pastam “%s” ir daudz pastāvīgu atlēcienu atskaišu." -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs, -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/login.cljs:81, src/app/main/ui/auth/recovery_request.cljs:31, src/app/main/ui/auth/register.cljs:43 msgid "errors.email-invalid" msgstr "Lūgums ievadīt derīgu e-pasta adresi" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:35 msgid "errors.email-invalid-confirmation" msgstr "Apstiprinājuma e-pastam jāatbilst" +#: src/app/main/ui/dashboard/team.cljs:170 msgid "errors.email-spam-or-permanent-bounces" msgstr "E-pasta adrese “%s” ir atzīmēta surogātpasts vai pastāvīgi saņem atlēcienu." -#: src/app/main/errors.cljs +#: src/app/main/errors.cljs:227 msgid "errors.feature-mismatch" msgstr "" "Šķiet, ka tiek atvērta datne, kurā ir iespējota iespēja '%s', bet " "pašreizējā Penpot versija to neatbalsta vai tā ir atspējota." -#: src/app/main/errors.cljs +#: src/app/main/errors.cljs:231, src/app/main/errors.cljs:245 msgid "errors.feature-not-supported" msgstr "Līdzeklis '%s' netiek atbalstīts." -#: src/app/main/errors.cljs +#: src/app/main/errors.cljs:223 msgid "errors.file-feature-mismatch" msgstr "" "Izskatās, ka ir nesaderība starp iespējotajām iespējām un iespējām datnē, " "kuru tiek mēģināts atvērt. Jāpiemēro '%s' migrācijas, pirms datne var tikt " "atvērta." -#: src/app/main/ui/auth/verify_token.cljs, -#: src/app/main/ui/settings/feedback.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/data/users.cljs:709, src/app/main/ui/auth/login.cljs:65, src/app/main/ui/auth/login.cljs:116, src/app/main/ui/auth/register.cljs:69, src/app/main/ui/auth/register.cljs:237, src/app/main/ui/auth/verify_token.cljs:92, src/app/main/ui/dashboard/team.cljs:173, src/app/main/ui/onboarding/team_choice.cljs:95, src/app/main/ui/settings/access_tokens.cljs:91, src/app/main/ui/settings/feedback.cljs:52 msgid "errors.generic" msgstr "Noticis kaut kas nelāgs." -#: src/app/main/ui/components/color_input.cljs +#: src/app/main/ui/components/color_input.cljs:57 msgid "errors.invalid-color" msgstr "Nederīga krāsa" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/static.cljs:43 msgid "errors.invite-invalid" msgstr "Nederīgs ielūgums" +#: src/app/main/ui/static.cljs:44 msgid "errors.invite-invalid.info" msgstr "Iespējams, ka šis uzaicinājums ir atcelts vai ir beidzies tā derīgums." -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:101 msgid "errors.ldap-disabled" msgstr "LDAP autentifikācija ir atspējota." -#: src/app/main/errors.cljs +#: src/app/main/errors.cljs:239 msgid "errors.max-quote-reached" msgstr "Ir sasniegts '%s' ierobežojums. Jāsazinās ar atbalstu." -#: src/app/main/data/workspace/persistence.cljs +#: src/app/main/data/workspace/media.cljs:184 msgid "errors.media-too-large" msgstr "Attēls ir pārāk liels, lai to ievietotu." -#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs +#: src/app/main/data/media.cljs:68, src/app/main/data/workspace/media.cljs:187 msgid "errors.media-type-mismatch" msgstr "Šķiet, ka attēla saturs neatbilst datnes paplašinājumam." -#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs +#: src/app/main/data/media.cljs:65, src/app/main/data/workspace/media.cljs:172, src/app/main/data/workspace/media.cljs:175, src/app/main/data/workspace/media.cljs:178, src/app/main/data/workspace/media.cljs:181 msgid "errors.media-type-not-allowed" msgstr "Šķiet, ka šis nav derīgs attēls." -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:574 msgid "errors.member-is-muted" msgstr "" "Uzaicinātajam profilam ir apklusināta e-pasta saņemšana (ziņojumi par " "surogātpastu vai daudz atlēcienu)." -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:61 msgid "errors.password-invalid-confirmation" msgstr "Apstiprinājuma parolei ir jāsakrīt" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:64 msgid "errors.password-too-short" msgstr "Parolē ir jābūt vismaz 8 rakstzīmēm" +#: src/app/main/errors.cljs:124 msgid "errors.paste-data-validation" msgstr "Starpliktuvē ir nederīgi dati" +#: src/app/main/data/users.cljs:703, src/app/main/ui/auth/login.cljs:97, src/app/main/ui/auth/login.cljs:105 msgid "errors.profile-blocked" msgstr "Profils ir bloķēts" -#: src/app/main/ui/auth/recovery_request.cljs, -#: src/app/main/ui/settings/change_email.cljs, -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/auth/recovery_request.cljs:60, src/app/main/ui/dashboard/team.cljs:164, src/app/main/ui/dashboard/team.cljs:570, src/app/main/ui/settings/change_email.cljs:50 msgid "errors.profile-is-muted" msgstr "" "Profila epasta saņemšana ir apklusināta (ziņojumi par surogātpastu vai " "daudz atlēcienu)." -#: src/app/main/ui/auth/register.cljs +#: src/app/main/data/users.cljs:701, src/app/main/ui/auth/register.cljs:60 msgid "errors.registration-disabled" msgstr "Reģistrācija pašlaik ir atspējota." -#: src/app/main/errors.cljs +#: src/app/main/errors.cljs:218 msgid "errors.team-feature-mismatch" msgstr "Noteikta nesaderīga iespēja '%s'" +#: src/app/main/ui/dashboard/sidebar.cljs:365, src/app/main/ui/dashboard/team.cljs:359 msgid "errors.team-leave.insufficient-members" msgstr "" "Komandā ir nepietiekams dalībnieku skaits, lai to pamestu. Iespējams, ka to " "ir vēlams izdzēst." +#: src/app/main/ui/dashboard/sidebar.cljs:368, src/app/main/ui/dashboard/team.cljs:362 msgid "errors.team-leave.member-does-not-exists" msgstr "Dalībnieks, kuru mēģināt piešķirt, nepastāv." +#: src/app/main/ui/dashboard/sidebar.cljs:371, src/app/main/ui/dashboard/team.cljs:365 msgid "errors.team-leave.owner-cant-leave" msgstr "Īpašnieks nevar pamest komandu, ir jāpiešķir īpašnieka loma citam." -#: src/app/main/data/media.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs +#: src/app/main/data/media.cljs:71 msgid "errors.unexpected-error" msgstr "Atgadījās neparedzēta kļūda." -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:60 msgid "errors.unexpected-token" msgstr "Nezināma tekstvienība" +#, unused msgid "errors.validation" msgstr "Pārbaudes kļūda" -#: src/app/main/errors.cljs +#: src/app/main/errors.cljs:235 msgid "errors.version-not-supported" msgstr "Datnei ir nesaderīgs versijas numurs" +#: src/app/main/ui/dashboard/team.cljs:796 msgid "errors.webhooks.connection" msgstr "Savienojuma kļūda, URL nav sasniedzams" +#: src/app/main/ui/dashboard/team.cljs:790 msgid "errors.webhooks.invalid-uri" msgstr "URL neiztur pārbaudi." +#: src/app/main/ui/dashboard/team.cljs:949 msgid "errors.webhooks.last-delivery" msgstr "Pēdējā piegāde nebija veiksmīga." +#: src/app/main/ui/dashboard/team.cljs:792, src/app/main/ui/dashboard/team.cljs:952 msgid "errors.webhooks.ssl-validation" msgstr "Kļūda SSL pārbaudē." +#: src/app/main/ui/dashboard/team.cljs:794 msgid "errors.webhooks.timeout" msgstr "Noilgums" +#: src/app/main/ui/dashboard/team.cljs:788 msgid "errors.webhooks.unexpected" msgstr "Pārbaudes laikā atgadījās neparedzēta kļūda" +#: src/app/main/ui/dashboard/team.cljs:798, src/app/main/ui/dashboard/team.cljs:955 msgid "errors.webhooks.unexpected-status" msgstr "Neparedzēts statuss %s" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:109, src/app/main/ui/auth/login.cljs:113 msgid "errors.wrong-credentials" msgstr "E-pasta adrese vai parole nav pareiza." -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:25 msgid "errors.wrong-old-password" msgstr "Vecā parole nav pareiza" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:77 msgid "feedback.description" msgstr "Apraksts" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:95 msgid "feedback.discourse-go-to" msgstr "Doties uz Penpot forumu" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:89 msgid "feedback.discourse-subtitle1" msgstr "" "Mēs esam priecīgi Tevi šeit redzēt. Ja ir nepieciešama palīdzība, lūgums " "meklēt pirms ieraksta veikšanas." -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:88 msgid "feedback.discourse-title" msgstr "Penpot kopiena" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:72 msgid "feedback.subject" msgstr "Temats" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:69 msgid "feedback.subtitle" msgstr "" "Lūgums aprakstīt e-pasta ziņojuma iemeslu, norādot, vai tā ir nepilnība, " "ierosinājums vai šaubas. Kāds mūsu komandas dalībnieks atbildēs pēc " "iespējas ātrāk." -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:68 msgid "feedback.title" msgstr "E-pasts" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:105 msgid "feedback.twitter-go-to" msgstr "Atvērt X" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:99 msgid "feedback.twitter-subtitle1" msgstr "Šeit, lai palīdzētu ar tehniskajiem jautājumiem." -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:98 msgid "feedback.twitter-title" msgstr "X atbalsta konts" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:30 msgid "generic.error" msgstr "Radās kļūda" -#: src/app/main/ui/inspect/attributes/blur.cljs +#: src/app/main/ui/viewer/inspect/attributes/blur.cljs:26 msgid "inspect.attributes.blur" msgstr "Aizmiglošana" -#: src/app/main/ui/inspect/attributes/blur.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:115 msgid "inspect.attributes.blur.value" msgstr "Vērtība" -#: src/app/main/ui/inspect/attributes/common.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:112 msgid "inspect.attributes.color.hex" msgstr "HEX" -#: src/app/main/ui/inspect/attributes/common.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:114 msgid "inspect.attributes.color.hsla" msgstr "HSLA" -#: src/app/main/ui/inspect/attributes/common.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:113 msgid "inspect.attributes.color.rgba" msgstr "RGBA" -#: src/app/main/ui/inspect/attributes/fill.cljs +#: src/app/main/ui/viewer/inspect/attributes/fill.cljs:57 msgid "inspect.attributes.fill" msgstr "Aizpildījums" -#: src/app/main/ui/inspect/attributes/image.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:99, src/app/main/ui/viewer/inspect/attributes/image.cljs:51 msgid "inspect.attributes.image.download" msgstr "Lejupielādēt avota attēlu" -#: src/app/main/ui/inspect/attributes/image.cljs +#: src/app/main/ui/viewer/inspect/attributes/image.cljs:39 msgid "inspect.attributes.image.height" msgstr "Augstums" -#: src/app/main/ui/inspect/attributes/image.cljs +#: src/app/main/ui/viewer/inspect/attributes/image.cljs:32 msgid "inspect.attributes.image.width" msgstr "Platums" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout" msgstr "Izkārtojums" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.height" msgstr "Augstums" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.left" msgstr "Kreisi" -#: src/app/main/ui/inspect/attributes/layout.cljs, -#: src/app/main/ui/inspect/attributes/layout.cljs +#: src/app/main/ui/inspect/attributes/layout.cljs, src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.radius" msgstr "Rādiuss" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.rotation" msgstr "Pagriešana" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.top" msgstr "Augša" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.width" msgstr "Platums" -#: src/app/main/ui/inspect/attributes/shadow.cljs +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:57 msgid "inspect.attributes.shadow" msgstr "Ēna" -#: src/app/main/ui/inspect/attributes/layout.cljs +#: src/app/main/ui/viewer/inspect/attributes/geometry.cljs:40 msgid "inspect.attributes.size" msgstr "Izmērs un novietojums" -#: src/app/main/ui/inspect/attributes/stroke.cljs +#: src/app/main/ui/viewer/inspect/attributes/stroke.cljs:52 msgid "inspect.attributes.stroke" msgstr "Vilkums" +#, permanent, unused msgid "inspect.attributes.stroke.alignment.center" msgstr "Centrs" +#, permanent, unused msgid "inspect.attributes.stroke.alignment.inner" msgstr "Iekšpuse" +#, permanent, unused msgid "inspect.attributes.stroke.alignment.outer" msgstr "Ārpuse" +#, unused msgid "inspect.attributes.stroke.style.dotted" msgstr "Punktots" +#, unused msgid "inspect.attributes.stroke.style.mixed" msgstr "Sajaukts" +#, unused msgid "inspect.attributes.stroke.style.none" msgstr "Nav" +#, unused msgid "inspect.attributes.stroke.style.solid" msgstr "Nepārtrauktā" #: src/app/main/ui/inspect/attributes/stroke.cljs +#, unused msgid "inspect.attributes.stroke.width" msgstr "Platums" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:81, src/app/main/ui/viewer/inspect/attributes/text.cljs:194 msgid "inspect.attributes.typography" msgstr "Burtu stils un veids" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:89 msgid "inspect.attributes.typography.font-family" msgstr "Fontu saime" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:107 msgid "inspect.attributes.typography.font-size" msgstr "Fonta izmērs" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:98 msgid "inspect.attributes.typography.font-style" msgstr "Fonta stils" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:116 msgid "inspect.attributes.typography.font-weight" msgstr "Fonta Treknums" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:134 msgid "inspect.attributes.typography.letter-spacing" msgstr "Burtu atstarpes" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:125 msgid "inspect.attributes.typography.line-height" msgstr "Līnijas augstums" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:143 msgid "inspect.attributes.typography.text-decoration" msgstr "Teksta noformējums" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:145 msgid "inspect.attributes.typography.text-decoration.none" msgstr "Nav" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:146 msgid "inspect.attributes.typography.text-decoration.strikethrough" msgstr "Pārsvītrojums" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:147 msgid "inspect.attributes.typography.text-decoration.underline" msgstr "Pasvītrojums" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:156 msgid "inspect.attributes.typography.text-transform" msgstr "Teksta transformācija" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:158 msgid "inspect.attributes.typography.text-transform.lowercase" msgstr "Mazie burti" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:159 msgid "inspect.attributes.typography.text-transform.none" msgstr "Nav" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:160 msgid "inspect.attributes.typography.text-transform.titlecase" msgstr "Virsraksta stils" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:162 msgid "inspect.attributes.typography.text-transform.unset" msgstr "Atiestatīt" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:161 msgid "inspect.attributes.typography.text-transform.uppercase" msgstr "Lielie burti" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:140 msgid "inspect.empty.help" msgstr "" "Ja ir vēlme uzzināt vairāk par dizaina apskati, jāapmeklē Penpot palīdzības " "centrs" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:143 msgid "inspect.empty.more-info" msgstr "Vairāk informācijas par apskatīšanu" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:135 msgid "inspect.empty.select" msgstr "Jāatlasa apveids, plātne vai kopa, lai apskatītu to īpašības un kodu" -#: src/app/main/ui/inspect/right_sidebar.cljs +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:125 msgid "inspect.tabs.code" msgstr "Kods" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:98 msgid "inspect.tabs.code.selected.circle" msgstr "Aplis" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:99 msgid "inspect.tabs.code.selected.component" msgstr "Sastāvdaļa" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:100 msgid "inspect.tabs.code.selected.curve" msgstr "Līkne" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:101 msgid "inspect.tabs.code.selected.frame" msgstr "Plātne" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:102 msgid "inspect.tabs.code.selected.group" msgstr "Kopa" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:103 msgid "inspect.tabs.code.selected.image" msgstr "Attēls" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:104 msgid "inspect.tabs.code.selected.mask" msgstr "Maska" -#: src/app/main/ui/inspect/right_sidebar.cljs +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:93 msgid "inspect.tabs.code.selected.multiple" msgstr "Atlasīti: %s" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:105 msgid "inspect.tabs.code.selected.path" msgstr "Ceļš" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:106 msgid "inspect.tabs.code.selected.rect" msgstr "Taisnstūris" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:107 msgid "inspect.tabs.code.selected.svg-raw" msgstr "SVG" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:108 msgid "inspect.tabs.code.selected.text" msgstr "Teksts" -#: src/app/main/ui/inspect/right_sidebar.cljs +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:115 msgid "inspect.tabs.info" msgstr "Infomācija" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:158 msgid "label.shortcuts" msgstr "Saīsnes" +#: src/app/main/ui/dashboard/import.cljs:527 msgid "labels.accept" msgstr "Pieņemt" -#: src/app/main/ui/settings/sidebar.cljs +#: src/app/main/ui/settings/sidebar.cljs:100 msgid "labels.access-tokens" msgstr "Piekļuves pilnvaras" +#: src/app/main/ui/dashboard/team.cljs:968 msgid "labels.active" msgstr "Aktīvs" +#: src/app/main/ui/dashboard/fonts.cljs:175 msgid "labels.add-custom-font" msgstr "Pievienot pielāgotu fontu" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:120, src/app/main/ui/dashboard/team.cljs:276, src/app/main/ui/dashboard/team.cljs:519, src/app/main/ui/dashboard/team.cljs:549, src/app/main/ui/onboarding/team_choice.cljs:67 msgid "labels.admin" msgstr "Pārvaldnieks" +#: src/app/main/ui/onboarding/questions.cljs:174 +msgid "labels.adobe-xd" +msgstr "Adobe XD" + #: src/app/main/ui/workspace/comments.cljs +#, unused msgid "labels.all" msgstr "Visi" +#: src/app/main/ui/auth.cljs:37 msgid "labels.and" msgstr "un" +#: src/app/main/ui/onboarding/team_choice.cljs:162 msgid "labels.back" msgstr "Atpakaļ" -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:59 msgid "labels.bad-gateway.desc-message" msgstr "" "Izskatās, ka mazliet jāuzgaida un jāmēģina vēlreiz; mēs veicam nelielus " "mūsu serveru uzturēšanas darbus." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:58 msgid "labels.bad-gateway.main-message" msgstr "Nepareiza vārteja" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/data/common.cljs:112, src/app/main/ui/dashboard/change_owner.cljs:69, src/app/main/ui/dashboard/import.cljs:514, src/app/main/ui/dashboard/team.cljs:868, src/app/main/ui/delete_shared.cljs:35, src/app/main/ui/export.cljs:164, src/app/main/ui/export.cljs:460, src/app/main/ui/settings/access_tokens.cljs:188, src/app/main/ui/viewer/share_link.cljs:203, src/app/main/ui/workspace/sidebar/assets/groups.cljs:149 msgid "labels.cancel" msgstr "Atcelt" +#: src/app/main/ui/onboarding/questions.cljs:176 +msgid "labels.canva" +msgstr "Canva" + +#: src/app/main/ui/dashboard/projects.cljs:93, src/app/main/ui/export.cljs:478, src/app/main/ui/settings/access_tokens.cljs:183, src/app/main/ui/viewer/login.cljs:77, src/app/main/ui/viewer/share_link.cljs:174, src/app/main/ui/workspace/libraries.cljs:522 msgid "labels.close" msgstr "Aizvērt" -#: src/app/main/ui/dashboard/comments.cljs +#: src/app/main/ui/dashboard/comments.cljs:104, src/app/main/ui/viewer/comments.cljs:70, src/app/main/ui/workspace/comments.cljs:126 msgid "labels.comments" msgstr "Komentāri" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:985, src/app/main/ui/workspace/main_menu.cljs:110 msgid "labels.community" msgstr "Kopiena" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:103 msgid "labels.confirm-password" msgstr "Apstiprināt paroli" +#: src/app/main/ui/dashboard/import.cljs:520, src/app/main/ui/export.cljs:465, src/app/main/ui/onboarding/newsletter.cljs:101 msgid "labels.continue" msgstr "Turpināt" +#, unused msgid "labels.continue-with" msgstr "Turpināt ar" +#: src/app/main/ui/viewer/login.cljs:75 msgid "labels.continue-with-penpot" msgstr "Varat turpināt ar Penpot kontu" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:642 msgid "labels.copy-invitation-link" msgstr "Kopēt saiti" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:157, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:190 msgid "labels.create" msgstr "Izveidot" -#: src/app/main/ui/dashboard/team_form.cljs, -#: src/app/main/ui/dashboard/team_form.cljs +#: src/app/main/ui/dashboard/team_form.cljs:101, src/app/main/ui/dashboard/team_form.cljs:121 msgid "labels.create-team" msgstr "Izveidot jaunu komandu" -#: src/app/main/ui/dashboard/team_form.cljs +#: src/app/main/ui/dashboard/team_form.cljs:113 msgid "labels.create-team.placeholder" msgstr "Jāievada jaunās komandas nosaukums" +#, unused msgid "labels.custom-fonts" msgstr "Pielāgotie fonti" -#: src/app/main/ui/settings/sidebar.cljs +#: src/app/main/ui/settings/sidebar.cljs:73 msgid "labels.dashboard" msgstr "Informācijas panelis" -#: src/app/main/ui/dashboard/project_menu.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:306, src/app/main/ui/dashboard/fonts.cljs:255, src/app/main/ui/dashboard/fonts.cljs:332, src/app/main/ui/dashboard/fonts.cljs:346, src/app/main/ui/dashboard/project_menu.cljs:115, src/app/main/ui/dashboard/team.cljs:904, src/app/main/ui/settings/access_tokens.cljs:209, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:209 msgid "labels.delete" msgstr "Dzēst" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:357 msgid "labels.delete-comment" msgstr "Dzēst komentāru" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:354 msgid "labels.delete-comment-thread" msgstr "Dzēst pavedienu" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:648 msgid "labels.delete-invitation" msgstr "Dzēst uzaicinājumu" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:262 msgid "labels.delete-multi-files" msgstr "Izdzēst %s datnes" +#: src/app/main/ui/onboarding/questions.cljs:250 +msgid "labels.developer" +msgstr "Izstrādātājs" + +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:199 msgid "labels.discard" msgstr "Atmest" -#: src/app/main/ui/dashboard/projects.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs, -#: src/app/main/ui/dashboard/files.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:28, src/app/main/ui/dashboard/files.cljs:72, src/app/main/ui/dashboard/files.cljs:156, src/app/main/ui/dashboard/projects.cljs:220, src/app/main/ui/dashboard/projects.cljs:224, src/app/main/ui/dashboard/sidebar.cljs:791 msgid "labels.drafts" msgstr "Melnraksti" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:350, src/app/main/ui/dashboard/fonts.cljs:252, src/app/main/ui/dashboard/team.cljs:902, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:205 msgid "labels.edit" msgstr "Labot" +#, unused msgid "labels.edit-file" msgstr "Labot datni" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:118, src/app/main/ui/dashboard/team.cljs:279, src/app/main/ui/dashboard/team.cljs:520, src/app/main/ui/dashboard/team.cljs:553, src/app/main/ui/onboarding/team_choice.cljs:66 msgid "labels.editor" msgstr "Redaktors" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:661 msgid "labels.expired-invitation" msgstr "Beidzies derīgums" +#: src/app/main/ui/export.cljs:173 msgid "labels.export" msgstr "Izgūt" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:51 msgid "labels.feedback-disabled" msgstr "Atsauksme atspējota" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:42 msgid "labels.feedback-sent" msgstr "Atsauksme nosūtīta" +#: src/app/main/ui/onboarding/questions.cljs:170 +msgid "labels.figma" +msgstr "Figma" + +#: src/app/main/ui/dashboard/fonts.cljs:412 msgid "labels.font-family" msgstr "Fontu saime" +#, unused msgid "labels.font-providers" msgstr "Fontu nodrošinātāji" +#: src/app/main/ui/dashboard/fonts.cljs:413 msgid "labels.font-variants" msgstr "Stili" +#: src/app/main/ui/dashboard/fonts.cljs:52, src/app/main/ui/dashboard/sidebar.cljs:811 msgid "labels.fonts" msgstr "Fonti" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/onboarding/questions.cljs:263 +msgid "labels.founder" +msgstr "Dibinātājs/viceprezidents" + +#: src/app/main/ui/onboarding/questions.cljs:262 +msgid "labels.freelancer" +msgstr "Esmu ārštātnieks(-ce)/Pašnodarbināts(-ā)" + +#: src/app/main/ui/dashboard/sidebar.cljs:1015, src/app/main/ui/workspace/main_menu.cljs:142 msgid "labels.github-repo" msgstr "GitHub repozitorijs" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/settings/sidebar.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:1032, src/app/main/ui/settings/sidebar.cljs:113, src/app/main/ui/workspace/main_menu.cljs:171 msgid "labels.give-feedback" msgstr "Sniegt atsauksmi" +#: src/app/main/ui/auth/recovery_request.cljs:110, src/app/main/ui/auth/register.cljs:285, src/app/main/ui/viewer/login.cljs:117 msgid "labels.go-back" msgstr "Atpakaļ" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:978, src/app/main/ui/workspace/main_menu.cljs:102 msgid "labels.help-center" msgstr "Palīdzības centrs" -#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/comments.cljs:103, src/app/main/ui/workspace/comments.cljs:67 msgid "labels.hide-resolved-comments" msgstr "Paslēpt atrisinātos komentārus" +#: src/app/main/ui/dashboard/team.cljs:969 msgid "labels.inactive" msgstr "Neaktīvs" +#: src/app/main/ui/dashboard/fonts.cljs:410 msgid "labels.installed-fonts" msgstr "Instalētie fonti" -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:144 msgid "labels.internal-error.desc-message" msgstr "" "Notika kaut kas slikts. Lūgums mēģināt vēlreiz un, ja sarežģījumi joprojām " "pastāv, jāsazinās ar atbalstu." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:143 msgid "labels.internal-error.main-message" msgstr "Iekšēja kļūda" -#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/onboarding/questions.cljs:178 +msgid "labels.invision" +msgstr "InVision" + +#: src/app/main/ui/dashboard/sidebar.cljs:516, src/app/main/ui/dashboard/team.cljs:89, src/app/main/ui/dashboard/team.cljs:97, src/app/main/ui/dashboard/team.cljs:708 msgid "labels.invitations" msgstr "Ielūgumi" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:51 msgid "labels.language" msgstr "Valoda" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:1008, src/app/main/ui/workspace/main_menu.cljs:134 msgid "labels.libraries-and-templates" msgstr "Bibliotēkas un veidnes" +#: src/app/main/ui/viewer/header.cljs:203 msgid "labels.log-or-sign" msgstr "Pieteikties vai reģistrēties" -#: src/app/main/ui/settings.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:1040 msgid "labels.logout" msgstr "Atteikties" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/onboarding/questions.cljs:253 +msgid "labels.marketing" +msgstr "Tirgvedība" + +#: src/app/main/ui/dashboard/team.cljs:468 msgid "labels.member" msgstr "Dalībnieks" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:510, src/app/main/ui/dashboard/team.cljs:87, src/app/main/ui/dashboard/team.cljs:95 msgid "labels.members" msgstr "Dalībnieki" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:96 msgid "labels.new-password" msgstr "Jaunā parole" -#: src/app/main/ui/workspace/comments.cljs, -#: src/app/main/ui/dashboard/comments.cljs +#: src/app/main/ui/dashboard/templates.cljs:269, src/app/main/ui/onboarding/questions.cljs:55 +msgid "labels.next" +msgstr "Nākamais" + +#: src/app/main/ui/dashboard/comments.cljs:128, src/app/main/ui/workspace/comments.cljs:161 msgid "labels.no-comments-available" msgstr "Jūs esat pieķerti! Šeit tiks parādīti jaunu komentāru paziņojumi." -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:694 msgid "labels.no-invitations" msgstr "Nav gaidošu uzaicinājumu." -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:696 +#, markdown msgid "labels.no-invitations-hint" msgstr "" "Jānoklikšķina uz pogas **Uzaicināt cilvēkus**, lai šajā komandā uzaicinātu " "cilvēkus." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:50 msgid "labels.not-found.desc-message" msgstr "Šī lapa, iespējams, nepastāv, vai arī nav atļauju tai piekļūt." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:49 msgid "labels.not-found.main-message" msgstr "Ups!" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/projects.cljs:239, src/app/main/ui/dashboard/team.cljs:1095 msgid "labels.num-of-files" msgid_plural "labels.num-of-files" msgstr[0] "0 datņu" msgstr[1] "%s datne" msgstr[2] "%s datnes" +#: src/app/main/ui/viewer/thumbnails.cljs:80 msgid "labels.num-of-frames" msgid_plural "labels.num-of-frames" msgstr[0] "%s plātņu" msgstr[1] "%s plātne" msgstr[2] "%s plātnes" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1090 msgid "labels.num-of-projects" msgid_plural "labels.num-of-projects" msgstr[0] "0 projektu" msgstr[1] "Projekts" msgstr[2] "%s projekti" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:89 msgid "labels.old-password" msgstr "Vecā parole" #: src/app/main/ui/workspace/comments.cljs +#, unused msgid "labels.only-yours" msgstr "Tikai mans" +#, unused msgid "labels.or" msgstr "vai" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/onboarding/questions.cljs:145, src/app/main/ui/onboarding/questions.cljs:214, src/app/main/ui/onboarding/questions.cljs:303, src/app/main/ui/onboarding/questions.cljs:316, src/app/main/ui/onboarding/questions.cljs:389, src/app/main/ui/onboarding/questions.cljs:447 +msgid "labels.other" +msgstr "Cits (jānorāda)" + +#: src/app/main/ui/dashboard/team.cljs:286, src/app/main/ui/dashboard/team.cljs:518, src/app/main/ui/dashboard/team.cljs:1076 msgid "labels.owner" msgstr "Īpašnieks" -#: src/app/main/ui/settings/sidebar.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/settings/sidebar.cljs:87 msgid "labels.password" msgstr "Parole" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:662 msgid "labels.pending-invitation" msgstr "Gaidīšana" -#: src/app/main/ui/settings/sidebar.cljs +#: src/app/main/ui/onboarding/questions.cljs:51 +msgid "labels.previous" +msgstr "Iepriekšējais" + +#: src/app/main/ui/onboarding/questions.cljs:254 +msgid "labels.product-management" +msgstr "Produktu vai projektu vadītājs" + +#: src/app/main/ui/settings/profile.cljs:118, src/app/main/ui/settings/sidebar.cljs:82 msgid "labels.profile" msgstr "Profils" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:784 msgid "labels.projects" msgstr "Projekti" -#: src/app/main/ui/settings/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:998, src/app/main/ui/settings/sidebar.cljs:106, src/app/main/ui/workspace/main_menu.cljs:126 msgid "labels.release-notes" msgstr "Laidiena apraksts" #: src/app/main/ui/workspace.cljs +#, unused msgid "labels.reload-file" msgstr "Pārlādēt datni" -#: src/app/main/ui/workspace/libraries.cljs, -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/workspace/libraries.cljs, src/app/main/ui/dashboard/team.cljs +#, unused msgid "labels.remove" msgstr "Noņemt" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:316 msgid "labels.remove-member" msgstr "Noņemt dalībnieku" -#: src/app/main/ui/dashboard/sidebar.cljs, -#: src/app/main/ui/dashboard/project_menu.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:271, src/app/main/ui/dashboard/project_menu.cljs:85, src/app/main/ui/dashboard/sidebar.cljs:539, src/app/main/ui/workspace/sidebar/assets/groups.cljs:157 msgid "labels.rename" msgstr "Pārdēvēt" -#: src/app/main/ui/dashboard/team_form.cljs +#: src/app/main/ui/dashboard/team_form.cljs:99 msgid "labels.rename-team" msgstr "Pārdēvēt grupu" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:645 msgid "labels.resend-invitation" msgstr "Nosūtīt uzaicinājumu vēlreiz" -#: src/app/main/ui/static.cljs, src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:61, src/app/main/ui/static.cljs:70, src/app/main/ui/static.cljs:148 msgid "labels.retry" msgstr "Pamēģināt vēlreiz" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:469, src/app/main/ui/dashboard/team.cljs:709 msgid "labels.role" msgstr "Loma" +#: src/app/main/ui/dashboard/fonts.cljs:380, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:191 msgid "labels.save" msgstr "Saglabāt" +#: src/app/main/ui/onboarding/questions.cljs:414, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:436 msgid "labels.search" msgstr "Meklēt" +#: src/app/main/ui/dashboard/fonts.cljs:415 msgid "labels.search-font" msgstr "Meklēt fontu" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/onboarding/questions.cljs:90, src/app/main/ui/onboarding/questions.cljs:248, src/app/main/ui/onboarding/questions.cljs:259, src/app/main/ui/onboarding/questions.cljs:270 +msgid "labels.select-option" +msgstr "Atlasīt iespēju" + +#: src/app/main/ui/settings/feedback.cljs:82 msgid "labels.send" msgstr "Nosūtīt" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:82 msgid "labels.sending" msgstr "Nosūtīšana…" -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:68 msgid "labels.service-unavailable.desc-message" msgstr "Mēs esam ieplānotos sistēmu uzturēšanas darbos." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:67 msgid "labels.service-unavailable.main-message" msgstr "Pakalpojums nav pieejams" -#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:530, src/app/main/ui/dashboard/team.cljs:88, src/app/main/ui/dashboard/team.cljs:102, src/app/main/ui/settings/options.cljs:84, src/app/main/ui/settings/sidebar.cljs:93 msgid "labels.settings" msgstr "Iestatījumi" +#: src/app/main/ui/viewer/header.cljs:199 msgid "labels.share" msgstr "Kopīgot" +#, unused msgid "labels.share-prototype" msgstr "Kopīgot prototipu" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:800 msgid "labels.shared-libraries" msgstr "Bibliotēkas" -#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/comments.cljs:82, src/app/main/ui/workspace/comments.cljs:55, src/app/main/ui/workspace/comments.cljs:135 msgid "labels.show-all-comments" msgstr "Rādīt visus komentārus" +#: src/app/main/ui/viewer/comments.cljs:115 msgid "labels.show-comments-list" msgstr "Rādīt komentāru sarakstu" -#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/comments.cljs:91, src/app/main/ui/workspace/comments.cljs:61, src/app/main/ui/workspace/comments.cljs:136 msgid "labels.show-your-comments" msgstr "Rādīt tikai manas piebildes" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/onboarding/questions.cljs:172 +msgid "labels.sketch" +msgstr "Sketch" + +#: src/app/main/ui/onboarding/questions.cljs:56 +msgid "labels.start" +msgstr "Sākt" + +#: src/app/main/ui/dashboard/team.cljs:710 msgid "labels.status" msgstr "Statuss" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/onboarding/questions.cljs:251 +msgid "labels.student-teacher" +msgstr "Students vai pasniedzējs" + +#: src/app/main/ui/dashboard/sidebar.cljs:992, src/app/main/ui/workspace/main_menu.cljs:118 msgid "labels.tutorials" msgstr "Pamācības" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:256 msgid "labels.unpublish-multi-files" msgstr "Atcelt %s datņu publicēšanu" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:103 msgid "labels.update" msgstr "Atjaunināt" -#: src/app/main/ui/dashboard/team_form.cljs +#: src/app/main/ui/dashboard/team_form.cljs:120 msgid "labels.update-team" msgstr "Atjaunināt komandu" +#: src/app/main/ui/dashboard/fonts.cljs:241 msgid "labels.upload" msgstr "Augšupielādēt" +#: src/app/main/ui/dashboard/fonts.cljs:169 msgid "labels.upload-custom-fonts" msgstr "Augšupielādēt pielāgotos fontus" +#: src/app/main/ui/dashboard/fonts.cljs:240 msgid "labels.uploading" msgstr "Augšupielādē…" +#: src/app/main/ui/workspace/sidebar/sitemap.cljs:223 msgid "labels.view-only" msgstr "TIKAI SKATĪT" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:123, src/app/main/ui/dashboard/team.cljs:282, src/app/main/ui/dashboard/team.cljs:521 msgid "labels.viewer" msgstr "Pārlūks" +#: src/app/main/ui/dashboard/sidebar.cljs:523, src/app/main/ui/dashboard/team.cljs:90, src/app/main/ui/dashboard/team.cljs:100, src/app/main/ui/dashboard/team.cljs:880 msgid "labels.webhooks" msgstr "Tīmekļa aizķeres" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:194 msgid "labels.write-new-comment" msgstr "Rakstīt jaunu komentāru" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/team.cljs:237 msgid "labels.you" msgstr "(Jūs)" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:968 msgid "labels.your-account" msgstr "Mans konts" +#: src/app/main/ui/workspace/colorpicker.cljs:297, src/app/main/ui/workspace/colorpicker.cljs:298, src/app/main/ui/workspace/colorpicker.cljs:300 msgid "media.choose-image" msgstr "Izvēlēties attēlu" +#, unused msgid "media.gradient" msgstr "Pāreja" +#: src/app/main/data/workspace/media.cljs:275, src/app/main/ui/components/color_bullet.cljs:32, src/app/main/ui/components/color_bullet.cljs:45, src/app/main/ui/viewer/inspect/attributes/common.cljs:66, src/app/main/ui/workspace/colorpicker.cljs:211, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:237 msgid "media.image" msgstr "Attēls" +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:77 msgid "media.image.short" msgstr "att." +#: src/app/main/ui/workspace/colorpicker.cljs:290 msgid "media.keep-aspect-ratio" msgstr "Paturēt samēru" +#: src/app/main/ui/workspace/colorpicker.cljs:208 msgid "media.linear" msgstr "Līnijveida" -#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs +#: src/app/main/data/media.cljs:49, src/app/main/data/workspace/media.cljs:223, src/app/main/data/workspace/media.cljs:453 msgid "media.loading" msgstr "Ielādē attēlu…" +#: src/app/main/ui/workspace/colorpicker.cljs:209 msgid "media.radial" msgstr "Radiāls" +#: src/app/main/ui/workspace/colorpicker.cljs:206 msgid "media.solid" msgstr "Viengabalains" +#: src/app/main/data/common.cljs:111 msgid "modals.add-shared-confirm-empty.hint" msgstr "" "Bibliotēka ir tukša. Tiklīdz tā būs pievienota kā koplietojama bibliotēka, " "izveidotie līdzekļi būs pieejami izmantošanai pārējos failos. Vai tiešām " "padarīt to pieejamu?" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/data/common.cljs:113 msgid "modals.add-shared-confirm.accept" msgstr "Pievienot kā koplietojamu bibliotēku" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/data/common.cljs:111 msgid "modals.add-shared-confirm.hint" msgstr "" "Tiklīdz šīs datņu bibliotēkas līdzekļi būs pievienot kā koplietojama " "bibliotēka, tā tie būs pieejami izmantošanai arī pārējās datnēs." -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/data/common.cljs:110 msgid "modals.add-shared-confirm.message" msgstr "Pievienot “%s” kā koplietojamu bibliotēku" -#: src/app/main/ui/workspace/nudge.cljs +#: src/app/main/ui/workspace/nudge.cljs:60 msgid "modals.big-nudge" msgstr "Liela nobīde" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:127 msgid "modals.change-email.confirm-email" msgstr "Pārbaudīt jauno e-pastu" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:114 msgid "modals.change-email.info" msgstr "" "Mēs nosūtīsim e-pasta ziņojumu uz pašreizējo e-pasta adresi “%s”, lai " "pārbaudītu identitāti." -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:119 msgid "modals.change-email.new-email" msgstr "Jauna e-pasta adrese" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:136 msgid "modals.change-email.submit" msgstr "Mainīt e-pasta adresi" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:107 msgid "modals.change-email.title" msgstr "E-pasta maiņa" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:165, src/app/main/ui/settings/access_tokens.cljs:171 msgid "modals.create-access-token.copy-token" msgstr "Ievietot pilnvaru starpliktuvē" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:142 msgid "modals.create-access-token.expiration-date.label" msgstr "Derīguma termiņš" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:136 msgid "modals.create-access-token.name.label" msgstr "Nosaukums" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:138 msgid "modals.create-access-token.name.placeholder" msgstr "Nosaukums var palīdzēt saprast, kam pilnvara ir paredzēta" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:191 msgid "modals.create-access-token.submit-label" msgstr "Izveidot pilnvaru" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:123 msgid "modals.create-access-token.title" msgstr "Izveidot jaunu piekļuves pilnvaru" +#: src/app/main/ui/dashboard/team.cljs:873 msgid "modals.create-webhook.submit-label" msgstr "Izveidot tīmekļa aizķeri" +#: src/app/main/ui/dashboard/team.cljs:838 msgid "modals.create-webhook.title" msgstr "Izveidot tīmekļa aizķeri" +#: src/app/main/ui/dashboard/team.cljs:849 msgid "modals.create-webhook.url.label" msgstr "Vērtuma URL" +#: src/app/main/ui/dashboard/team.cljs:850 msgid "modals.create-webhook.url.placeholder" msgstr "https://example.com/postreceive" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:271 msgid "modals.delete-acces-token.accept" msgstr "Izdzēst pilnvaru" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:270 msgid "modals.delete-acces-token.message" msgstr "Vai tiešām izdzēst šo pilnvaru?" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:269 msgid "modals.delete-acces-token.title" msgstr "Izdzēst pilnvaru" -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:59 msgid "modals.delete-account.cancel" msgstr "Atcelt un paturēt manu kontu" -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:64 msgid "modals.delete-account.confirm" msgstr "Jā, dzēst manu kontu" -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:53 msgid "modals.delete-account.info" msgstr "Pēc konta noņemšanas tiks zaudēti visi pašreizējie projekti un arhīvi." -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:46 msgid "modals.delete-account.title" msgstr "Vai tiešām izdzēst savu kontu?" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:298 msgid "modals.delete-comment-thread.accept" msgstr "Dzēst sarunu" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:297 msgid "modals.delete-comment-thread.message" msgstr "Vai tiešām izdzēst šo sarunu? Visas šī pavediena piebildes tiks izdzēstas." -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:296 msgid "modals.delete-comment-thread.title" msgstr "Dzēst sarunu" +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:140 msgid "modals.delete-component-annotation.message" msgstr "Vai tiešām izdzēst šo piezīmi?" +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:139 msgid "modals.delete-component-annotation.title" msgstr "Izdzēst piezīmi" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:123 msgid "modals.delete-file-confirm.accept" msgstr "Izdzēst datni" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:122 msgid "modals.delete-file-confirm.message" msgstr "Vai tiešām izdzēst šo datni?" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:121 msgid "modals.delete-file-confirm.title" msgstr "Izdzēš datni" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:117 msgid "modals.delete-file-multi-confirm.accept" msgstr "Izdzēst datnes" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:116 msgid "modals.delete-file-multi-confirm.message" msgstr "Vai tiešām izdzēst %s datnes?" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:115 msgid "modals.delete-file-multi-confirm.title" msgstr "Izdzēš %s datnes" +#: src/app/main/ui/dashboard/fonts.cljs:345 msgid "modals.delete-font-variant.message" msgstr "" "Vai tiešām izdzēst šo fontu stilu? Tas netiks ielādēts, ja tiek izmantots " "datnē." +#: src/app/main/ui/dashboard/fonts.cljs:344 msgid "modals.delete-font-variant.title" msgstr "Fonta stila dzēšana" +#: src/app/main/ui/dashboard/fonts.cljs:331 msgid "modals.delete-font.message" msgstr "Vai tiešām izdzēst šo fontu? Tas netiks ielādēts, ja tiek izmantots datnē." +#: src/app/main/ui/dashboard/fonts.cljs:330 msgid "modals.delete-font.title" msgstr "Fonta dzēšana" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs +#: src/app/main/ui/workspace/context_menu.cljs:522, src/app/main/ui/workspace/sidebar/sitemap.cljs:45 msgid "modals.delete-page.body" msgstr "Vai tiešām izdzēst šo lapu?" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs +#: src/app/main/ui/workspace/context_menu.cljs:521, src/app/main/ui/workspace/sidebar/sitemap.cljs:44 msgid "modals.delete-page.title" msgstr "Dzēst lapu" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:69 msgid "modals.delete-project-confirm.accept" msgstr "Dzēst projektu" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:68 msgid "modals.delete-project-confirm.message" msgstr "Vai tiešām izdzēst šo projektu?" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:67 msgid "modals.delete-project-confirm.title" msgstr "Dzēst projektu" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:51 msgid "modals.delete-shared-confirm.accept" msgid_plural "modals.delete-shared-confirm.accept" msgstr[0] "Nav izdzēšamu datņu" msgstr[1] "Izdzēst datni" msgstr[2] "Izdzēst datnes" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:55 msgid "modals.delete-shared-confirm.activated.no-files-message" msgid_plural "modals.delete-shared-confirm.activated.no-files-message" msgstr[0] "Tie nav aktivēti nevienā datnē." msgstr[1] "Tas nav aktivēts nevienā datnē." msgstr[2] "Tie nav aktivēti nevienā datnē." -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:57 msgid "modals.delete-shared-confirm.activated.scd-message" msgid_plural "modals.delete-shared-confirm.activated.scd-message" msgstr[0] "Šīs bibliotēkas ir aktivētas šeit: " msgstr[1] "Šī bibliotēka ir aktivēta šeit: " msgstr[2] "Šīs bibliotēkas ir aktivētas šeit: " -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:46 msgid "modals.delete-shared-confirm.message" msgid_plural "modals.delete-shared-confirm.message" msgstr[0] "Nav izdzēšamu datņu" msgstr[1] "Vai tiešām izdzēst šo datni?" msgstr[2] "Vai tiešām izdzēst šīs datnes?" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:41 msgid "modals.delete-shared-confirm.title" msgid_plural "modals.delete-shared-confirm.title" msgstr[0] "Nav izdzēšamu datņu" msgstr[1] "Izdzēš datni" msgstr[2] "Izdzēš datnes" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:435 msgid "modals.delete-team-confirm.accept" msgstr "Dzēst komandu" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:434 msgid "modals.delete-team-confirm.message" msgstr "" "Vai tiešām izdzēst šo komandu? Visi ar komandu saistītie projekti un datnes " "tiks neatgriezeniski izdzēstas." -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:433 msgid "modals.delete-team-confirm.title" msgstr "Notiek komandas dzēšana" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:427 msgid "modals.delete-team-member-confirm.accept" msgstr "Dzēst dalībnieku" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:426 msgid "modals.delete-team-member-confirm.message" msgstr "Vai tiešām izdzēst šo dalībnieku no komandas?" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:425 msgid "modals.delete-team-member-confirm.title" msgstr "Dzēst komandas dalībnieku" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:59 msgid "modals.delete-unpublish-shared-confirm.activated.hint" msgid_plural "modals.delete-unpublish-shared-confirm.activated.hint" msgstr[0] "" @@ -2054,1266 +2269,1416 @@ msgstr[2] "" "Līdzekļi, kas jau tiek izmantoti šajā datnē, paliks tajā (dizains netiks " "salauzts)." +#: src/app/main/ui/dashboard/team.cljs:942 msgid "modals.delete-webhook.accept" msgstr "Izdzēst tīmekļa aizķeri" +#: src/app/main/ui/dashboard/team.cljs:941 msgid "modals.delete-webhook.message" msgstr "Vai tiešām izdzēst šo tīmekļa aizķeri?" +#: src/app/main/ui/dashboard/team.cljs:940 msgid "modals.delete-webhook.title" msgstr "Notiek tīmekļa aizķeres izdzēšana" +#: src/app/main/ui/dashboard/team.cljs:872 msgid "modals.edit-webhook.submit-label" msgstr "Labot tīmekļa aizķeri" +#: src/app/main/ui/dashboard/team.cljs:837 msgid "modals.edit-webhook.title" msgstr "Labot tīmekļa aizķeri" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:218 msgid "modals.invite-member-confirm.accept" msgstr "Nosūtīt uzaicinājumu" +#: src/app/main/ui/dashboard/team.cljs:213, src/app/main/ui/onboarding/team_choice.cljs:156 msgid "modals.invite-member.emails" msgstr "E-pasta ziņojumi, atdalīti ar komatiem" +#: src/app/main/ui/dashboard/team.cljs:197 msgid "modals.invite-member.repeated-invitation" msgstr "" "Dažas no e-pasta adresēm ir pašreizējiem komandas dalībniekiem. Ielūgumi " "viņiem netiks nosūtīti." -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:190 msgid "modals.invite-team-member.title" msgstr "Uzaicināt dalībniekus uz komandu" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:423, src/app/main/ui/dashboard/team.cljs:393 msgid "modals.leave-and-close-confirm.hint" msgstr "" "Tā kā esi šīs komandas vienīgais dalībnieks, tā tiks izdzēsta līdz ar tās " "projektiem un datnēm." -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:422, src/app/main/ui/dashboard/team.cljs:392 msgid "modals.leave-and-close-confirm.message" msgstr "Vai tiešām pamest komandu %s?" +#: src/app/main/ui/dashboard/change_owner.cljs:59 msgid "modals.leave-and-reassign.forbidden" msgstr "" "Nevar pamest komandu, ja nav cita dalībnieka, ko norādīt kā īpašnieku. " "Iespējams, ka komandu ir vēlams izdzēst." -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/change_owner.cljs:55 msgid "modals.leave-and-reassign.hint1" msgstr "" "Tu esi šīs komandas īpašnieks. Lūgums pirms pamešanas atlasīt citu " "dalībnieku, lai to norādītu kā īpašnieku." -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/change_owner.cljs:78 msgid "modals.leave-and-reassign.promote-and-leave" msgstr "Nozīmēt un pamest" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/change_owner.cljs:34 msgid "modals.leave-and-reassign.select-member-to-promote" msgstr "Atlasīt dalībnieku, ko nozīmēt" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/change_owner.cljs:49 msgid "modals.leave-and-reassign.title" msgstr "Pirms pamešanas" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:402, src/app/main/ui/dashboard/sidebar.cljs:424, src/app/main/ui/dashboard/team.cljs:394, src/app/main/ui/dashboard/team.cljs:416 msgid "modals.leave-confirm.accept" msgstr "Pamest komandu" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:401, src/app/main/ui/dashboard/team.cljs:415 msgid "modals.leave-confirm.message" msgstr "Vai tiešām pamest šo komandu?" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:400, src/app/main/ui/dashboard/sidebar.cljs:421, src/app/main/ui/dashboard/team.cljs:391, src/app/main/ui/dashboard/team.cljs:414 msgid "modals.leave-confirm.title" msgstr "Komandas pamešana" +#: src/app/main/ui/delete_shared.cljs:53 msgid "modals.move-shared-confirm.accept" msgid_plural "modals.move-shared-confirm.accept" msgstr[0] "Pārvietot" msgstr[1] "Pārvietot" msgstr[2] "Pārvietot" +#: src/app/main/ui/delete_shared.cljs:48 msgid "modals.move-shared-confirm.message" msgid_plural "modals.move-shared-confirm.message" msgstr[0] "Vai tiešām pārvietot šīs bibliotēkas?" msgstr[1] "Vai tiešām pārvietot šīs bibliotēkas?" msgstr[2] "Vai tiešām pārvietot šīs bibliotēkas?" +#: src/app/main/ui/delete_shared.cljs:43 msgid "modals.move-shared-confirm.title" msgid_plural "modals.move-shared-confirm.title" msgstr[0] "Pārvietot bibliotēkas" msgstr[1] "Pārvietot bibliotēkas" msgstr[2] "Pārvietot bibliotēkas" -#: src/app/main/ui/workspace/nudge.cljs +#: src/app/main/ui/workspace/main_menu.cljs:266, src/app/main/ui/workspace/nudge.cljs:47 msgid "modals.nudge-title" msgstr "Nobīdes apjoms" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:340 msgid "modals.promote-owner-confirm.accept" msgstr "Nodot īpašumtiesības" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:339 msgid "modals.promote-owner-confirm.hint" msgstr "" "Ja tiks nodotas īpašumtiesības, ieņemamā loma tiks nomainīta uz " "\"Pārvaldnieks\", zaudējot dažas atļaujas šajā komandā. " -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:338 msgid "modals.promote-owner-confirm.message" msgstr "" "Tu esi šīs komandas pašreizējais īpašnieks. Vai tiešām iecelt %s par jauno " "komandas īpašnieku?" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:337 msgid "modals.promote-owner-confirm.title" msgstr "Jauns komandas īpašnieks" +#: src/app/main/ui/workspace/libraries.cljs:188 msgid "modals.publish-empty-library.accept" msgstr "Publicēt" +#: src/app/main/ui/workspace/libraries.cljs:187 msgid "modals.publish-empty-library.message" msgstr "Bibliotēka ir tukša. Vai tiešām publicēt to?" +#: src/app/main/ui/workspace/libraries.cljs:186 msgid "modals.publish-empty-library.title" msgstr "Publicēt tukšu bibliotēku" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "modals.remove-shared-confirm.accept" msgstr "Noņemt kā koplietojamo bibliotēku" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "modals.remove-shared-confirm.hint" msgstr "" "Tiklīdz šīs datnes datņu bibliotēka būs noņemta kā koplietojama bibliotēka, " "tā pārstās būt pieejama izmantošanai pārējās datnēs." -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "modals.remove-shared-confirm.message" msgstr "Noņemt “%s” kā koplietojamu bibliotēku" -#: src/app/main/ui/workspace/nudge.cljs +#: src/app/main/ui/workspace/nudge.cljs:53 msgid "modals.small-nudge" msgstr "Maza nobīde" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:52 msgid "modals.unpublish-shared-confirm.accept" msgid_plural "modals.unpublish-shared-confirm.accept" msgstr[0] "Nav atlases" msgstr[1] "Atcelt publicēšanu" msgstr[2] "Atcelt publicēšanu" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:47 msgid "modals.unpublish-shared-confirm.message" msgid_plural "modals.unpublish-shared-confirm.message" msgstr[0] "Nav izvēlēta neviena bibliotēka" msgstr[1] "Vai tiešām atcelt šīs bibliotēkas publicēšanu?" msgstr[2] "Vai tiešām atcelt šo bibliotēku publicēšanu?" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:42 msgid "modals.unpublish-shared-confirm.title" msgid_plural "modals.unpublish-shared-confirm.title" msgstr[0] "Atcelt bibliotēkas publicēšanu" msgstr[1] "Atcelt bibliotēkas publicēšanu" msgstr[2] "Atcelt bibliotēku publicēšanu" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#, unused msgid "modals.update-remote-component-in-bulk.hint" msgstr "" "Tiks atjauninātas sastāvdaļas koplietojamā bibliotēkā. Tas var ietekmēt " "citas datnes, kurās tās ir izmantotas." -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#, unused msgid "modals.update-remote-component-in-bulk.message" msgstr "Atjaunināt sastāvdaļas koplietojamā bibliotēkā" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:380 msgid "modals.update-remote-component.accept" msgstr "Atjaunināt" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:379 msgid "modals.update-remote-component.cancel" msgstr "Atcelt" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:378 msgid "modals.update-remote-component.hint" msgstr "" "Tiks atjaunināta koplietojamas bibliotēkas sastāvdaļa. Tas var ietekmēt " "citas datnes, kurās tā ir izmantota." -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:377 msgid "modals.update-remote-component.message" msgstr "Atjaunināt sastāvdaļu koplietojamā bibliotēkā" -#: src/app/main/data/common.cljs +#: src/app/main/data/common.cljs:71 msgid "notifications.by-code.upgrade-version" msgstr "Ir pieejama jauna versija, lūgums atsvaidzināt lapu" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:154, src/app/main/ui/dashboard/team.cljs:595 msgid "notifications.invitation-email-sent" msgstr "Uzaicinājums veiksmīgi nosūtīts" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:616 msgid "notifications.invitation-link-copied" msgstr "Uzaicinājuma saite nokopēta" -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:24 msgid "notifications.profile-deletion-not-allowed" msgstr "Profilu nevar izdzēst. Pirms turpināšanas jāpiešķir savas komandas citiem." -#: src/app/main/ui/settings/profile.cljs, src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:29, src/app/main/ui/settings/profile.cljs:35 msgid "notifications.profile-saved" msgstr "Profils ir veiksmīgi saglabāts." -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:63 msgid "notifications.validation-email-sent" msgstr "" "Patiesuma pārbaudes e-pasta ziņojums tika nosūtīts uz %s. Jāpārbauda savs " "e-pasts." +#, unused msgid "onboarding-v2.before-start.desc1" msgstr "" "Jāņem vērā, ka ir pieejami daudz avotu, kas var palīdzēt uzsākt darbu ar " "Penpot, piemēram, lietotāja rokasgrāmata un mūsu Youtube kanāls." +#, unused msgid "onboarding-v2.before-start.desc2" msgstr "" "Izvērsta informācija par Penpot izmantošanu. No prototipa izveides līdz " "dizainu kārtošanai vai kopīgošanai." +#, unused msgid "onboarding-v2.before-start.desc2.title" msgstr "Lietotāja rokasgrāmata" +#, unused msgid "onboarding-v2.before-start.desc3" msgstr "Ir iespējams apskatīt mūsu pamācības un mūsu kopienas izveidotās pamācības." +#, unused msgid "onboarding-v2.before-start.desc3.title" msgstr "Video pamācības" +#, unused msgid "onboarding-v2.before-start.title" msgstr "Pirms sākt" +#: src/app/main/ui/onboarding/newsletter.cljs:63 msgid "onboarding-v2.newsletter.desc" msgstr "" "Abonēt Penpot biļetenu, lai uzzinātu par produkta izstrādes gaitu un " "jaunumiem." +#: src/app/main/ui/onboarding/newsletter.cljs:83 msgid "onboarding-v2.newsletter.news" msgstr "" "Sūtīt man jaunumus par Penpot (emuāra ieraksti, video pamācības, " "straumēšanas...)." +#: src/app/main/ui/onboarding/newsletter.cljs:91 msgid "onboarding-v2.newsletter.privacy1" msgstr "Mums rūp privātums, šeit var lasīt mūsu " +#: src/app/main/ui/onboarding/newsletter.cljs:97 msgid "onboarding-v2.newsletter.privacy2" msgstr "" "Mēs nosūtīsim tikai atbilstošus e-pasta ziņojumus. Atteikt abonēšanu var " "jebkurā laikā ar abonēšanas atteikšanas saiti jebkurā mūsu biļetenā." +#: src/app/main/ui/onboarding/newsletter.cljs:71 msgid "onboarding-v2.newsletter.updates" msgstr "" "Nosūtīt man produkta atjauninājumus (jaunas funkcijas, izlaidumi, " "labojumi...)." +#, unused msgid "onboarding-v2.welcome.desc1" msgstr "" "Penpot ir Atvērtā pirmkoda lietotne, un to izstrādā Kaleidos, kā arī " "kopiena, kurā daudz cilvēku jau palīdz cits citam. Visi var sadarboties:" +#, unused msgid "onboarding-v2.welcome.desc2" msgstr "" "Publiska telpa, lai mācītos, dalītos un apspriestu Penpot, tās tagadni un " "nākotni ar visu kopienu un Penpot kodola komandu." +#, unused msgid "onboarding-v2.welcome.desc2.title" msgstr "Dalība Kopienā" +#, unused msgid "onboarding-v2.welcome.desc3" msgstr "" "Kur būs atrodams, kā līdzdarboties pie tulkojumiem, iespēju pieprasījumiem, " "devuma kodolam, kļūdu meklēšanas…" +#, unused msgid "onboarding-v2.welcome.desc3.title" msgstr "Līdzdalības rokasgrāmata" +#: src/app/main/ui/onboarding/team_choice.cljs:31 msgid "onboarding-v2.welcome.title" msgstr "Laipni lūdzam Penpot!" +#: src/app/main/ui/onboarding/team_choice.cljs:229 msgid "onboarding.choice.team-up.continue-creating-team" msgstr "Turpināt komandas izveidošanu" +#: src/app/main/ui/onboarding/team_choice.cljs:239 msgid "onboarding.choice.team-up.continue-without-a-team" msgstr "Turpināt bez komandas" +#: src/app/main/ui/onboarding/team_choice.cljs:167 msgid "onboarding.choice.team-up.create-team-and-invite" msgstr "Izveidot komandu un uzaicināt" +#, unused msgid "onboarding.choice.team-up.create-team-and-send-invites" msgstr "Izveidot komandu un nosūtīt uzaicinājumus" +#: src/app/main/ui/onboarding/team_choice.cljs:170 msgid "onboarding.choice.team-up.create-team-and-send-invites-description" msgstr "Uzaicināt būs iespējams vēlāk" +#: src/app/main/ui/onboarding/team_choice.cljs:215 msgid "onboarding.choice.team-up.create-team-desc" msgstr "" "Pēc komandas nosaukuma piešķiršanas varēs uzaicināt cilvēkus tai " "pievienoties." +#: src/app/main/ui/onboarding/team_choice.cljs:224 msgid "onboarding.choice.team-up.create-team-placeholder" msgstr "Jāievada komandas nosaukums" +#: src/app/main/ui/onboarding/team_choice.cljs:168 msgid "onboarding.choice.team-up.create-team-without-invite" msgstr "Izveidot komandu" +#, unused msgid "onboarding.choice.team-up.create-team-without-inviting" msgstr "Izveidot komandu bez uzaicināšanas" +#: src/app/main/ui/dashboard/projects.cljs:89, src/app/main/ui/onboarding/team_choice.cljs:140 msgid "onboarding.choice.team-up.invite-members" msgstr "Uzaicināt dalībniekus" +#: src/app/main/ui/onboarding/team_choice.cljs:141 msgid "onboarding.choice.team-up.invite-members-info" msgstr "" "Jāatceras iekļaut visi. Izstrādātāji, dizaineri, vadītāji... Viedokļu " "dažādībā ir spēks :)" +#: src/app/main/ui/dashboard/team.cljs:202, src/app/main/ui/onboarding/team_choice.cljs:146 msgid "onboarding.choice.team-up.roles" msgstr "Uzaicināt ar lomu:" +#: src/app/main/ui/onboarding/team_choice.cljs:232 msgid "onboarding.choice.team-up.start-without-a-team" msgstr "Uzsākt bez komandas" +#: src/app/main/ui/onboarding/team_choice.cljs:234 msgid "onboarding.choice.team-up.start-without-a-team-description" msgstr "Komandu būs iespējams izveidot vēlāk." +#, unused msgid "onboarding.newsletter.accept" msgstr "Jā, abonēt" +#: src/app/main/ui/onboarding/newsletter.cljs:40 msgid "onboarding.newsletter.acceptance-message" msgstr "" "Abonēšanas pieprasījums ir nosūtīts, un mēs nosūtīsim e-pasta ziņojumu tā " "apstiprināšanai." +#: src/app/main/ui/onboarding/newsletter.cljs:95 msgid "onboarding.newsletter.policy" msgstr "Konfidencialitātes politika." +#: src/app/main/ui/onboarding/newsletter.cljs:60 msgid "onboarding.newsletter.title" msgstr "Vai saņemt Penpot jaunumus?" +#: src/app/main/ui/onboarding/questions.cljs:118 +msgid "onboarding.questions.lets-get-started" +msgstr "Ķeramies pie darba!" + +#: src/app/main/ui/onboarding/questions.cljs:307 +msgid "onboarding.questions.step3.question2" +msgstr "Kāda ir ieņemamā loma?" + +#: src/app/main/ui/onboarding/questions.cljs:320 +msgid "onboarding.questions.step3.question3" +msgstr "Cik liela ir komanda?" + +#: src/app/main/ui/onboarding/questions.cljs:273 +msgid "onboarding.questions.team-size.11-30" +msgstr "11-30" + +#: src/app/main/ui/onboarding/questions.cljs:274 +msgid "onboarding.questions.team-size.2-10" +msgstr "2-10" + +#: src/app/main/ui/onboarding/questions.cljs:272 +msgid "onboarding.questions.team-size.31-50" +msgstr "31-50" + +#: src/app/main/ui/onboarding/questions.cljs:271 +msgid "onboarding.questions.team-size.more-than-50" +msgstr "Vairāk nekā 50" + +#: src/app/main/ui/onboarding/questions.cljs:276 +msgid "onboarding.questions.team-size.personal-project" +msgstr "Strādāju personīgā projektā" + +#: src/app/main/ui/onboarding/team_choice.cljs:213 msgid "onboarding.team-modal.create-team" msgstr "Izveidot komandu" +#: src/app/main/ui/onboarding/team_choice.cljs:35 msgid "onboarding.team-modal.create-team-desc" msgstr "" "Komanda ļauj sadarboties ar citiem Penpot lietotājiem, kas darbojas ar tām " "pašām datnēm un projektiem." +#: src/app/main/ui/onboarding/team_choice.cljs:40 msgid "onboarding.team-modal.create-team-feature-1" msgstr "Neierobežotas datnes un projekti" +#: src/app/main/ui/onboarding/team_choice.cljs:44 msgid "onboarding.team-modal.create-team-feature-2" msgstr "Vairāku lietotāju izdevums" +#: src/app/main/ui/onboarding/team_choice.cljs:48 msgid "onboarding.team-modal.create-team-feature-3" msgstr "Lomu pārvaldība" +#: src/app/main/ui/onboarding/team_choice.cljs:52 msgid "onboarding.team-modal.create-team-feature-4" msgstr "Neierobežoti dalībnieki" +#: src/app/main/ui/onboarding/team_choice.cljs:56 msgid "onboarding.team-modal.create-team-feature-5" msgstr "100% bez maksas!" +#: src/app/main/ui/onboarding/team_choice.cljs:33 msgid "onboarding.team-modal.team-definition" msgstr "Kas ir komanda?" +#: src/app/main/ui/onboarding/templates.cljs:78 msgid "onboarding.templates.subtitle" msgstr "Lūk, dažas veidnes." +#: src/app/main/ui/onboarding/templates.cljs:77 msgid "onboarding.templates.title" msgstr "Sākt projektēšanu" +#, unused msgid "onboarding.welcome.alt" msgstr "Penpot" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:99 msgid "profile.recovery.go-to-login" msgstr "Doties uz pieteikšanos" -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.team-size.11-30" -msgstr "11-30" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.team-size.2-10" -msgstr "2-10" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.team-size.31-50" -msgstr "31-50" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.adobe-xd" -msgstr "Adobe XD" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.canva" -msgstr "Canva" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.developer" -msgstr "Izstrādātājs" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.figma" -msgstr "Figma" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.founder" -msgstr "Dibinātājs/viceprezidents" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.freelancer" -msgstr "Esmu ārštātnieks(-ce)/Pašnodarbināts(-ā)" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.invision" -msgstr "InVision" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.lets-get-started" -msgstr "Ķeramies pie darba!" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.product-management" -msgstr "Produktu vai projektu vadītājs" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.marketing" -msgstr "Tirgvedība" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.team-size.more-than-50" -msgstr "Vairāk nekā 50" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.next" -msgstr "Nākamais" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.other" -msgstr "Cits (jānorāda)" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.team-size.personal-project" -msgstr "Strādāju personīgā projektā" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.previous" -msgstr "Iepriekšējais" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.step3.question2" -msgstr "Kāda ir ieņemamā loma?" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.select-option" -msgstr "Atlasīt iespēju" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.sketch" -msgstr "Sketch" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.start" -msgstr "Sākt" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.student-teacher" -msgstr "Students vai pasniedzējs" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.step3.question3" -msgstr "Cik liela ir komanda?" - -#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, +#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:221 msgid "settings.detach" msgstr "Atdalīt" -#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs +#: src/app/main/ui/viewer/inspect/exports.cljs:147, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:631, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:137, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:148, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:188, src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:158, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:399, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:410, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:430, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:441, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:458, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:472, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:309, src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:183, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:373, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:389, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:245, src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:172 msgid "settings.multiple" msgstr "Jaukts" -#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:271 msgid "settings.select-this-color" msgstr "Atlasīt vienumus, kas izmanto šo stilu" # SECTIONS +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:414 msgid "shortcut-section.basics" msgstr "Pamati" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:420 msgid "shortcut-section.dashboard" msgstr "Informācijas panelis" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:423 msgid "shortcut-section.viewer" msgstr "Pārlūks" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:417 msgid "shortcut-section.workspace" msgstr "Darbvieta" # SUBSECTIONS +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:56 msgid "shortcut-subsection.alignment" msgstr "Līdzināšana" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:57 msgid "shortcut-subsection.edit" msgstr "Labot" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:58 msgid "shortcut-subsection.general-dashboard" msgstr "Vispārējs" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:59 msgid "shortcut-subsection.general-viewer" msgstr "Vispārējs" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:60 msgid "shortcut-subsection.main-menu" msgstr "Galvenā izvēlne" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:61 msgid "shortcut-subsection.modify-layers" msgstr "Mainīt slāņus" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:62 msgid "shortcut-subsection.navigation-dashboard" msgstr "Navigācija" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:63 msgid "shortcut-subsection.navigation-viewer" msgstr "Navigācija" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:64 msgid "shortcut-subsection.navigation-workspace" msgstr "Navigācija" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:65 msgid "shortcut-subsection.panels" msgstr "Paneļi" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:66 msgid "shortcut-subsection.path-editor" msgstr "Ceļi" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:67 msgid "shortcut-subsection.shape" msgstr "Formas" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:68 msgid "shortcut-subsection.text-editor" msgstr "Teksti" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:69 msgid "shortcut-subsection.tools" msgstr "Rīki" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:70 msgid "shortcut-subsection.zoom-viewer" msgstr "Tālummaiņa" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:71 msgid "shortcut-subsection.zoom-workspace" msgstr "Tālummaiņa" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:72 msgid "shortcuts.add-comment" msgstr "Komentāri" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:73 msgid "shortcuts.add-node" msgstr "Pievienot mezglu" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:74 msgid "shortcuts.align-bottom" msgstr "Līdzināt pie apakšas" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:75 msgid "shortcuts.align-center" msgstr "Līdzināt vidū" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:76 msgid "shortcuts.align-hcenter" msgstr "Līdzināt vidū līmeniski" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:77 msgid "shortcuts.align-justify" msgstr "Līdzināt pie abām malām" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:78 msgid "shortcuts.align-left" msgstr "Līdzināt pie kreisās malas" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:79 msgid "shortcuts.align-right" msgstr "Līdzināt pa labi" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:80 msgid "shortcuts.align-top" msgstr "Līdzināt pie augšas" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:81 msgid "shortcuts.align-vcenter" msgstr "Līdzināt vidū stateniski" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:82 msgid "shortcuts.artboard-selection" msgstr "Izveidot plātni no atlases" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:83 msgid "shortcuts.bold" msgstr "Pārslēgt treknrakstu" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:84 msgid "shortcuts.bool-difference" msgstr "Būla starpība" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:85 msgid "shortcuts.bool-exclude" msgstr "Būla izslēgšana" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:86 msgid "shortcuts.bool-intersection" msgstr "Būla krustošanās" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:87 msgid "shortcuts.bool-union" msgstr "Būla apvienošana" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:88 msgid "shortcuts.bring-back" msgstr "Sūtīt uz aizmuguri" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:89 msgid "shortcuts.bring-backward" msgstr "Sūtīt atpakaļ" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:90 msgid "shortcuts.bring-forward" msgstr "Virzīt uz priekšu" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:91 msgid "shortcuts.bring-front" msgstr "Izvirzīt priekšā" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:92 msgid "shortcuts.clear-undo" msgstr "Iztīrīt atsaukšanu" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:93 msgid "shortcuts.copy" msgstr "Kopēt" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:94 msgid "shortcuts.create-component" msgstr "Izveidot sastāvdaļu" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:95 msgid "shortcuts.create-new-project" msgstr "Izveidot jaunu" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:96 msgid "shortcuts.cut" msgstr "Izgriezt" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:97 msgid "shortcuts.decrease-zoom" msgstr "Tālināt" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:98 msgid "shortcuts.delete" msgstr "Dzēst" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:99 msgid "shortcuts.delete-node" msgstr "Dzēst mezglu" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:100 msgid "shortcuts.detach-component" msgstr "Atdalīt sastāvdaļu" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:101 msgid "shortcuts.draw-curve" msgstr "Līkne" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:102 msgid "shortcuts.draw-ellipse" msgstr "Elipse" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:103 msgid "shortcuts.draw-frame" msgstr "Plātne" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:104 msgid "shortcuts.draw-nodes" msgstr "Zīmēt ceļu" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:105 msgid "shortcuts.draw-path" msgstr "Ceļš" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:106 msgid "shortcuts.draw-rect" msgstr "Taisnstūris" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:107 msgid "shortcuts.draw-text" msgstr "Teksts" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:108 msgid "shortcuts.duplicate" msgstr "Divkāršot" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:109 msgid "shortcuts.escape" msgstr "Atcelt" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:110 msgid "shortcuts.export-shapes" msgstr "Izgūt apveidus" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:111 msgid "shortcuts.fit-all" msgstr "Tālummainīt, lai ietilpinātu visu" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:112 msgid "shortcuts.flip-horizontal" msgstr "Apvērst līmeniski" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:113 msgid "shortcuts.flip-vertical" msgstr "Apvērst stateniski" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:114 msgid "shortcuts.font-size-dec" msgstr "Samazināt fonta izmēru" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:115 msgid "shortcuts.font-size-inc" msgstr "Palielināt fonta izmēru" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:116 msgid "shortcuts.go-to-drafts" msgstr "Doties uz melnrakstiem" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:117 msgid "shortcuts.go-to-libs" msgstr "Doties uz koplietojamām bibliotēkām" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:118 msgid "shortcuts.go-to-search" msgstr "Meklēt" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:119 msgid "shortcuts.group" msgstr "Apkopot" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:120 msgid "shortcuts.h-distribute" msgstr "Izkliedēt līmeniski" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:121 msgid "shortcuts.hide-ui" msgstr "Rādīt / paslēpt lietotāja saskarni" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:122 msgid "shortcuts.increase-zoom" msgstr "Tuvināt" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:123 msgid "shortcuts.insert-image" msgstr "Ievietot attēlu" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:124 msgid "shortcuts.italic" msgstr "Pārslēgt slīprakstu" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:125 msgid "shortcuts.join-nodes" msgstr "Savienot mezglus" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:126 msgid "shortcuts.letter-spacing-dec" msgstr "Samazināt burtstarpu" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:127 msgid "shortcuts.letter-spacing-inc" msgstr "Palielināt burtstarpu" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:128 msgid "shortcuts.line-height-dec" msgstr "Samazināt līnijas augstumu" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:129 msgid "shortcuts.line-height-inc" msgstr "Palielināt līnijas augstumu" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:130 msgid "shortcuts.line-through" msgstr "Pārslēgt svītrojumu" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:131 msgid "shortcuts.make-corner" msgstr "Izveidot stūri" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:132 msgid "shortcuts.make-curve" msgstr "Izveidot līkni" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:133 msgid "shortcuts.mask" msgstr "Maska" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:134 msgid "shortcuts.merge-nodes" msgstr "Sapludināt mezglus" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:135 msgid "shortcuts.move" msgstr "Pārvietot" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:136 msgid "shortcuts.move-fast-down" msgstr "Strauji pārvietot uz leju" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:137 msgid "shortcuts.move-fast-left" msgstr "Strauji pārvietot pa kreisi" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:138 msgid "shortcuts.move-fast-right" msgstr "Strauji pārvietot pa labi" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:139 msgid "shortcuts.move-fast-up" msgstr "Strauji pārvietot uz augšu" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:140 msgid "shortcuts.move-nodes" msgstr "Pārvietot mezglu" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:141 msgid "shortcuts.move-unit-down" msgstr "Pārvietot uz leju" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:142 msgid "shortcuts.move-unit-left" msgstr "Pārvietot pa kreisi" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:143 msgid "shortcuts.move-unit-right" msgstr "Pārvietot pa labi" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:144 msgid "shortcuts.move-unit-up" msgstr "Pārvietot uz augšu" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:145 msgid "shortcuts.next-frame" msgstr "Nākamā plātne" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:516 msgid "shortcuts.not-found" msgstr "Saīsnes nav atrastas" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:146 msgid "shortcuts.opacity-0" msgstr "Iestatīt necaurspīdīgumu uz 100%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:147 msgid "shortcuts.opacity-1" msgstr "Iestatīt necaurspīdīgumu uz 10%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:148 msgid "shortcuts.opacity-2" msgstr "Iestatīt necaurspīdīgumu uz 20%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:149 msgid "shortcuts.opacity-3" msgstr "Iestatīt necaurspīdīgumu uz 30%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:150 msgid "shortcuts.opacity-4" msgstr "Iestatīt necaurspīdīgumu uz 40%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:151 msgid "shortcuts.opacity-5" msgstr "Iestatīt necaurspīdīgumu uz 50%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:152 msgid "shortcuts.opacity-6" msgstr "Iestatīt necaurspīdīgumu uz 60%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:153 msgid "shortcuts.opacity-7" msgstr "Iestatīt necaurspīdīgumu uz 70%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:154 msgid "shortcuts.opacity-8" msgstr "Iestatīt necaurspīdīgumu uz 80%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:155 msgid "shortcuts.opacity-9" msgstr "Iestatīt necaurspīdīgumu uz 90%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:156 msgid "shortcuts.open-color-picker" msgstr "Krāsu atlasītājs" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:157 msgid "shortcuts.open-comments" msgstr "Atvērt pārlūka komentāru sadaļu" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:158 msgid "shortcuts.open-dashboard" msgstr "Doties uz informācijas paneli" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:159 msgid "shortcuts.open-inspect" msgstr "Doties uz skatītāja apskatīšanas sadaļu" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:160 msgid "shortcuts.open-interactions" msgstr "Doties uz skatītāja mijiedarbības sadaļu" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:161 msgid "shortcuts.open-viewer" msgstr "Doties uz skatītāja mijiedarbības sadaļu" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:162 msgid "shortcuts.open-workspace" msgstr "Doties uz darbvietu" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:260 msgid "shortcuts.or" msgstr " vai " +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:163 msgid "shortcuts.paste" msgstr "Ielīmēt" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:164 msgid "shortcuts.prev-frame" msgstr "Iepriekšējā plātne" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:165 msgid "shortcuts.redo" msgstr "Atatsaukt" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:166 msgid "shortcuts.reset-zoom" msgstr "Atiestatīt tālummaiņu" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:167 msgid "shortcuts.scale" msgstr "Mērogot" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:168 msgid "shortcuts.search-placeholder" msgstr "Meklēt saīsnes" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:169 msgid "shortcuts.select-all" msgstr "Atlasīt visu" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:170 msgid "shortcuts.select-next" msgstr "Atlasīt nākamo slāni" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:171 msgid "shortcuts.select-parent-layer" msgstr "Atlasīt vecākslāni" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:172 msgid "shortcuts.select-prev" msgstr "Atlasīt iepriekšējo slāni" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:173 msgid "shortcuts.separate-nodes" msgstr "Atdalīt mezglus" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:174 msgid "shortcuts.show-pixel-grid" msgstr "Rādīt/paslēpt pikseļu režģi" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:175 msgid "shortcuts.show-shortcuts" msgstr "Rādīt/paslēpt saīsnes" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:176 msgid "shortcuts.snap-nodes" msgstr "Pieķerties mezgliem" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:177 msgid "shortcuts.snap-pixel-grid" msgstr "Pieķerties pikseļu režģim" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:178 msgid "shortcuts.start-editing" msgstr "Sākt labošanu" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:179 msgid "shortcuts.start-measure" msgstr "Sākt mērīšanu" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:180 msgid "shortcuts.stop-measure" msgstr "Beigt mērīšanu" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:181 msgid "shortcuts.text-align-center" msgstr "Līdzināt vidū" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:182 msgid "shortcuts.text-align-justify" msgstr "Līdzināt pie abām malām" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:183 msgid "shortcuts.text-align-left" msgstr "Līdzināt pa kreisi" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:184 msgid "shortcuts.text-align-right" msgstr "Līdzināt pa labi" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:185 msgid "shortcuts.thumbnail-set" msgstr "Iestatīt sīktēlus" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:496, src/app/main/ui/workspace/sidebar/shortcuts.cljs:505 msgid "shortcuts.title" msgstr "Īsinājumtaustiņi" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:186 msgid "shortcuts.toggle-alignment" msgstr "Pārslēgt dinamisko līdzināšanu" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:187 msgid "shortcuts.toggle-assets" msgstr "Pārslēgt līdzekļus" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:188 msgid "shortcuts.toggle-colorpalette" msgstr "Pārslēgt krāsu paleti" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:189 msgid "shortcuts.toggle-focus-mode" msgstr "Pārslēgt fokusa režīmu" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:190 msgid "shortcuts.toggle-fullscreen" msgstr "Pārslēgt pilnekrāna režīmu" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:191 msgid "shortcuts.toggle-guides" msgstr "Rādīt/paslēpt vadlīnijas" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:192 msgid "shortcuts.toggle-history" msgstr "Pārslēgt vēsturi" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:193 msgid "shortcuts.toggle-layers" msgstr "Pārslēgt slāņus" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:194 msgid "shortcuts.toggle-layout-flex" msgstr "Pievienot / Noņemt elastīgo izkārtojumu" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:195 msgid "shortcuts.toggle-layout-grid" msgstr "Pievienot/noņemt režģa izkārtojumu" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:196 msgid "shortcuts.toggle-lock" msgstr "Slēgt / Atslēgt" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:197 msgid "shortcuts.toggle-lock-size" msgstr "Slēgt proporcijas" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:198 msgid "shortcuts.toggle-rulers" msgstr "Rādīt/paslēpt mērjoslas" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:200 msgid "shortcuts.toggle-snap-guides" msgstr "Pievilkt pie vadlīnijām" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:201 msgid "shortcuts.toggle-snap-ruler-guide" msgstr "Pievilkt pie mērjoslu vadlīnijām" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:202 msgid "shortcuts.toggle-textpalette" msgstr "Pārslēgt teksta paleti" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:203 msgid "shortcuts.toggle-theme" msgstr "Mainīt izskatu" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:204 msgid "shortcuts.toggle-visibility" msgstr "Pārslēgt redzamību" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:205 msgid "shortcuts.toggle-zoom-style" msgstr "Pārslēgt tālummaiņas stilu" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:206 msgid "shortcuts.underline" msgstr "Pārslēgt pasvītrojumu" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:207 msgid "shortcuts.undo" msgstr "Atsaukt" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:208 msgid "shortcuts.ungroup" msgstr "Atapkopot" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:209 msgid "shortcuts.unmask" msgstr "Noņemt masku" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:210 msgid "shortcuts.v-distribute" msgstr "Izkliedēt stateniski" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:211 msgid "shortcuts.zoom-lense-decrease" msgstr "Tālummaiņas samazinājums" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:212 msgid "shortcuts.zoom-lense-increase" msgstr "Tālummaiņas palielinājums" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:213 msgid "shortcuts.zoom-selected" msgstr "Tālummainīt uz atlasi" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:771 msgid "team.webhooks.max-length" msgstr "Tīmekļa aizķeres nosaukumā drīkst būt ne vairāk kā 2048 rakstzīmes." -#: src/app/main/ui/dashboard/files.cljs +#: src/app/main/ui/dashboard/files.cljs:158 msgid "title.dashboard.files" msgstr "%s - Penpot" -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:37 msgid "title.dashboard.font-providers" msgstr "Fontu nodrošinātāji - %s - Penpot" -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:36 msgid "title.dashboard.fonts" msgstr "Fonti - %s - Penpot" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:320 msgid "title.dashboard.projects" msgstr "Projekti - %s - Penpot" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:32 msgid "title.dashboard.search" msgstr "Meklēšana - %s - Penpot" -#: src/app/main/ui/dashboard/libraries.cljs +#: src/app/main/ui/dashboard/libraries.cljs:44 msgid "title.dashboard.shared-libraries" msgstr "Koplietojamās bibliotēkas - %s - Penpot" -#: src/app/main/ui/auth/verify_token.cljs, src/app/main/ui/auth.cljs +#: src/app/main/ui/auth/verify_token.cljs:68, src/app/main/ui/auth.cljs:54 msgid "title.default" msgstr "Penpot - Modelēšanas brīvība komandām" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:292 msgid "title.settings.access-tokens" msgstr "Profils - piekļuves pilnvaras" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:110 msgid "title.settings.feedback" msgstr "Sniegt atsauksmes - Penpot" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:80 msgid "title.settings.options" msgstr "Iestatījumi - Penpot" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:115 msgid "title.settings.password" msgstr "Parole - Penpot" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:115 msgid "title.settings.profile" msgstr "Profils - Penpot" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:727 msgid "title.team-invitations" msgstr "Ielūgumi - %s - Penpot" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:493 msgid "title.team-members" msgstr "Dalībnieki - %s - Penpot" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1036 msgid "title.team-settings" msgstr "Iestatījumi - %s - Penpot" +#: src/app/main/ui/dashboard/team.cljs:989 msgid "title.team-webhooks" msgstr "Tīmekļa aizķeres - %s - Penpot" -#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs +#: src/app/main/ui/viewer.cljs:419 msgid "title.viewer" msgstr "%s - skatīšana - Penpot" -#: src/app/main/ui/workspace.cljs +#: src/app/main/ui/workspace.cljs:190 msgid "title.workspace" msgstr "%s - Penpot" +#: src/app/main/ui.cljs:144 msgid "viewer.breaking-change.description" msgstr "Šī kopīgojamā saite vairs nav derīga. Jāizveido vai jālūdz īpašniekam jauna." +#: src/app/main/ui.cljs:143 msgid "viewer.breaking-change.message" msgstr "Piedošanu!" -#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs +#: src/app/main/ui/viewer.cljs:569 msgid "viewer.empty-state" msgstr "Lapā nav atrasta neviena plātne." -#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs +#: src/app/main/ui/viewer.cljs:574 msgid "viewer.frame-not-found" msgstr "Plātne netika atrasta." +#: src/app/main/ui/viewer/header.cljs:336 msgid "viewer.header.comments-section" msgstr "Komentāri (%s)" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/interactions.cljs:292 msgid "viewer.header.dont-show-interactions" msgstr "Nerādīt mijiedarbības" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/header.cljs:188 msgid "viewer.header.fullscreen" msgstr "Pilnekrāns" +#: src/app/main/ui/viewer/header.cljs:345 msgid "viewer.header.inspect-section" msgstr "Apskatīt (%s)" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/interactions.cljs:282 msgid "viewer.header.interactions" msgstr "Mijiedarbības" +#: src/app/main/ui/viewer/header.cljs:327 msgid "viewer.header.interactions-section" msgstr "Mijiedarbības (%s)" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/share_link.cljs:187 msgid "viewer.header.share.copy-link" msgstr "Kopēt saiti" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/interactions.cljs:300 msgid "viewer.header.show-interactions" msgstr "Rādīt mijiedarbības" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/interactions.cljs:311 msgid "viewer.header.show-interactions-on-click" msgstr "Rādīt mijiedarbības pēc klikšķa" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/header.cljs:231 msgid "viewer.header.sitemap" msgstr "Vietnes karte" +#: src/app/main/ui/dashboard/team.cljs:948 msgid "webhooks.last-delivery.success" msgstr "Pēdējā piegāde bija veiksmīga." -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:58 msgid "workspace.align.hcenter" msgstr "Līdzināt līmeniskajā vidū (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:74 msgid "workspace.align.hdistribute" msgstr "Izlīdzināt līmeniskās atstarpes (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:50 msgid "workspace.align.hleft" msgstr "Līdzināt pa kreisi (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:66 msgid "workspace.align.hright" msgstr "Līdzināt pa labi (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:99 msgid "workspace.align.vbottom" msgstr "Līdzināt pie apakšas (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:91 msgid "workspace.align.vcenter" msgstr "Līdzināt stateniskajā vidū (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:104 msgid "workspace.align.vdistribute" msgstr "Izlīdzināt stateniskās atstarpes (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:83 msgid "workspace.align.vtop" msgstr "Līdzināt pie augšas (%s)" #: src/app/main/ui/workspace/sidebar/assets.cljs +#, unused msgid "workspace.assets.assets" msgstr "Līdzekļi" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets.cljs:134 msgid "workspace.assets.box-filter-all" msgstr "Visi līdzekļi" -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/dashboard/grid.cljs:130, src/app/main/ui/dashboard/grid.cljs:162, src/app/main/ui/workspace/sidebar/assets/colors.cljs:485, src/app/main/ui/workspace/sidebar/assets.cljs:150 msgid "workspace.assets.colors" msgstr "Krāsas" -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/dashboard/grid.cljs:126, src/app/main/ui/dashboard/grid.cljs:141, src/app/main/ui/workspace/sidebar/assets/components.cljs:513, src/app/main/ui/workspace/sidebar/assets.cljs:139 msgid "workspace.assets.components" msgstr "Sastāvdaļas" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:131 msgid "workspace.assets.create-group" msgstr "Izveidot kopu" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:142 msgid "workspace.assets.create-group-hint" msgstr "Vienumi tiks automātiski nosaukti kā “kopas nosaukums/vienuma nosaukums”" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/context_menu.cljs:529, src/app/main/ui/workspace/sidebar/assets/colors.cljs:251, src/app/main/ui/workspace/sidebar/assets/components.cljs:577, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:424, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:443 msgid "workspace.assets.delete" msgstr "Dzēst" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/context_menu.cljs:534, src/app/main/ui/workspace/sidebar/assets/components.cljs:572 msgid "workspace.assets.duplicate" msgstr "Divkāršot" +#: src/app/main/ui/workspace/sidebar/assets/components.cljs:571 msgid "workspace.assets.duplicate-main" msgstr "Divkāršot galveno" -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:247, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:439 msgid "workspace.assets.edit" msgstr "Labot" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets.cljs:176 msgid "workspace.assets.filter" msgstr "Atlasīt" -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/graphics.cljs:384, src/app/main/ui/workspace/sidebar/assets.cljs:145 msgid "workspace.assets.graphics" msgstr "Attēli" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:255, src/app/main/ui/workspace/sidebar/assets/components.cljs:581, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:428, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:448 msgid "workspace.assets.group" msgstr "Kopa" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:141 msgid "workspace.assets.group-name" msgstr "Kopas nosaukums" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets.cljs:168 msgid "workspace.assets.libraries" msgstr "Bibliotēkas" +#: src/app/main/ui/workspace/sidebar/assets/file_library.cljs:62, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:347 msgid "workspace.assets.local-library" msgstr "vietējā bibliotēka" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/file_library.cljs:295 msgid "workspace.assets.not-found" msgstr "Līdzekļi nav atrasti" +#, unused msgid "workspace.assets.open-library" msgstr "Atvērt bibliotēkas datni" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/context_menu.cljs:532, src/app/main/ui/workspace/sidebar/assets/colors.cljs:243, src/app/main/ui/workspace/sidebar/assets/components.cljs:566, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:421, src/app/main/ui/workspace/sidebar/assets/groups.cljs:63, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:434 msgid "workspace.assets.rename" msgstr "Pārdēvēt" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:132 msgid "workspace.assets.rename-group" msgstr "Pārdēvēt kopu" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets.cljs:173 msgid "workspace.assets.search" msgstr "Meklēt līdzekļus" #: src/app/main/ui/workspace/sidebar/assets.cljs +#, unused msgid "workspace.assets.selected-count" msgid_plural "workspace.assets.selected-count" msgstr[0] "atlasīts %s vienums" @@ -3321,1905 +3686,2055 @@ msgstr[1] "atlasīts %s vienums" msgstr[2] "atlasīti %s vienumi" #: src/app/main/ui/workspace/sidebar/assets.cljs +#, unused msgid "workspace.assets.shared-library" msgstr "Koplietojama bibliotēka" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:221 msgid "workspace.assets.sidebar.components" msgid_plural "workspace.assets.sidebar.components" msgstr[0] "%s sastāvdaļu" msgstr[1] "%s sastāvdaļa" msgstr[2] "%s sastāvdaļas" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets.cljs:193 msgid "workspace.assets.sort" msgstr "Kārtot" -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/dashboard/grid.cljs:134, src/app/main/ui/dashboard/grid.cljs:189, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:397, src/app/main/ui/workspace/sidebar/assets.cljs:155 msgid "workspace.assets.typography" msgstr "Burtu stili un veidi" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused msgid "workspace.assets.typography.font-id" msgstr "Fonti" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:505 msgid "workspace.assets.typography.font-size" msgstr "Izmērs" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:501 msgid "workspace.assets.typography.font-variant-id" msgstr "Fonta variants" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:523 msgid "workspace.assets.typography.go-to-edit" msgstr "Doties uz stilu bibliotēkas datni, lai labotu" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:513 msgid "workspace.assets.typography.letter-spacing" msgstr "Burtstarpa" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:509 msgid "workspace.assets.typography.line-height" msgstr "Rindas augstums" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, -#: src/app/main/ui/inspect/attributes/text.cljs, -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/dashboard/grid.cljs:199, src/app/main/ui/workspace/libraries.cljs:461, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:464, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:489, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:596, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:615 msgid "workspace.assets.typography.sample" msgstr "Ag" +#, unused msgid "workspace.assets.typography.text-styles" msgstr "Teksta stili" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:517 msgid "workspace.assets.typography.text-transform" msgstr "Teksta pārveide" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:66 msgid "workspace.assets.ungroup" msgstr "Atapkopot" +#: src/app/main/ui/workspace/context_menu.cljs:634 msgid "workspace.context-menu.grid-cells.area" msgstr "Izveidot laukumu" +#: src/app/main/ui/workspace/context_menu.cljs:637 msgid "workspace.context-menu.grid-cells.create-board" msgstr "Izveidot plātni" +#: src/app/main/ui/workspace/context_menu.cljs:629 msgid "workspace.context-menu.grid-cells.merge" msgstr "Apvienot šūnas" +#: src/app/main/ui/workspace/context_menu.cljs:594 msgid "workspace.context-menu.grid-track.column.add-after" msgstr "Pievienot 1 sleju pa labi" +#: src/app/main/ui/workspace/context_menu.cljs:593 msgid "workspace.context-menu.grid-track.column.add-before" msgstr "Pievienot 1 sleju pa kreisi" +#: src/app/main/ui/workspace/context_menu.cljs:595 msgid "workspace.context-menu.grid-track.column.delete" msgstr "Izdzēst sleju" +#: src/app/main/ui/workspace/context_menu.cljs:596 msgid "workspace.context-menu.grid-track.column.delete-shapes" msgstr "Izdzēst slejas un apveidus" +#: src/app/main/ui/workspace/context_menu.cljs:592 msgid "workspace.context-menu.grid-track.column.duplicate" msgstr "Divkāršota sleja" +#: src/app/main/ui/workspace/context_menu.cljs:601 msgid "workspace.context-menu.grid-track.row.add-after" msgstr "Pievienot 1 rindu zem" +#: src/app/main/ui/workspace/context_menu.cljs:600 msgid "workspace.context-menu.grid-track.row.add-before" msgstr "Pievienot 1 rindu virs" +#: src/app/main/ui/workspace/context_menu.cljs:602 msgid "workspace.context-menu.grid-track.row.delete" msgstr "Izdzēst rindu" +#: src/app/main/ui/workspace/context_menu.cljs:603 msgid "workspace.context-menu.grid-track.row.delete-shapes" msgstr "Izdzēst rindu un apveidus" +#: src/app/main/ui/workspace/context_menu.cljs:599 msgid "workspace.context-menu.grid-track.row.duplicate" msgstr "Divkāršot rindu" +#: src/app/main/ui/workspace/sidebar/layers.cljs:525 msgid "workspace.focus.focus-mode" msgstr "Fokusa režīms" +#: src/app/main/ui/workspace/context_menu.cljs:287, src/app/main/ui/workspace/context_menu.cljs:553 msgid "workspace.focus.focus-off" msgstr "Izslēgt fokusu" +#: src/app/main/ui/workspace/context_menu.cljs:286 msgid "workspace.focus.focus-on" msgstr "Ieslēgt fokusu" +#, unused msgid "workspace.focus.selection" msgstr "Atlase" -#: src/app/main/data/workspace/libraries.cljs, -#: src/app/main/ui/components/color_bullet.cljs +#: src/app/util/color.cljs:34 msgid "workspace.gradients.linear" msgstr "Lineārais gradients" -#: src/app/main/data/workspace/libraries.cljs, -#: src/app/main/ui/components/color_bullet.cljs +#: src/app/util/color.cljs:35 msgid "workspace.gradients.radial" msgstr "Radiālais gradients" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:238 msgid "workspace.header.menu.disable-dynamic-alignment" msgstr "Atspējot dinamisko līdzināšanu" +#: src/app/main/ui/workspace/main_menu.cljs:192 msgid "workspace.header.menu.disable-scale-content" msgstr "Atspējot proporcionālo mērogu" #: src/app/main/ui/workspace/header.cljs +#, unused msgid "workspace.header.menu.disable-scale-text" msgstr "Deaktivizēt teksta mērogošanu" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:223 msgid "workspace.header.menu.disable-snap-guides" msgstr "Atspējot pieķeršanos vadotnēm" +#: src/app/main/ui/workspace/main_menu.cljs:253 msgid "workspace.header.menu.disable-snap-pixel-grid" msgstr "Atspējot pieķeršanos pikselim" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:207 msgid "workspace.header.menu.disable-snap-ruler-guides" msgstr "Atspējot pievilkšanu mērjoslu vadlīnijām" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:239 msgid "workspace.header.menu.enable-dynamic-alignment" msgstr "Iespējot dinamisko līdzināšanu" +#: src/app/main/ui/workspace/main_menu.cljs:193 msgid "workspace.header.menu.enable-scale-content" msgstr "Iespējot proporcionālo mērogu" #: src/app/main/ui/workspace/header.cljs +#, unused msgid "workspace.header.menu.enable-scale-text" msgstr "Aktivizēt teksta mērogošanu" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:224 msgid "workspace.header.menu.enable-snap-guides" msgstr "Pieķerties vadotnēm" +#: src/app/main/ui/workspace/main_menu.cljs:254 msgid "workspace.header.menu.enable-snap-pixel-grid" msgstr "Iespējot pieķeršanos pikselim" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:208 msgid "workspace.header.menu.enable-snap-ruler-guides" msgstr "Pievilkt pie mērjoslu vadlīnijām" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:382 msgid "workspace.header.menu.hide-artboard-names" msgstr "Paslēpt plātņu nosaukumus" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:336 msgid "workspace.header.menu.hide-guides" msgstr "Paslēpt vadlīnijas" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:353 msgid "workspace.header.menu.hide-palette" msgstr "Paslēpt krāsu paleti" +#: src/app/main/ui/workspace/main_menu.cljs:394 msgid "workspace.header.menu.hide-pixel-grid" msgstr "Paslēpt pikseļu režģi" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:320 msgid "workspace.header.menu.hide-rules" msgstr "Paslēpt mērjoslas" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:367 msgid "workspace.header.menu.hide-textpalette" msgstr "Paslēpt fontu paleti" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:731 msgid "workspace.header.menu.option.edit" msgstr "Labot" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:720 msgid "workspace.header.menu.option.file" msgstr "Datne" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:777 msgid "workspace.header.menu.option.help-info" msgstr "Palīdzība un informācija" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:753 msgid "workspace.header.menu.option.preferences" msgstr "Izvēles" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:742 msgid "workspace.header.menu.option.view" msgstr "Skatīt" +#: src/app/main/ui/workspace/main_menu.cljs:459 msgid "workspace.header.menu.redo" msgstr "Atkārtot" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:432 msgid "workspace.header.menu.select-all" msgstr "Atlasīt visu" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:383 msgid "workspace.header.menu.show-artboard-names" msgstr "Rādīt plātņu nosaukumus" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:337 msgid "workspace.header.menu.show-guides" msgstr "Parādīt vadlīnijas" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:354 msgid "workspace.header.menu.show-palette" msgstr "Rādīt krāsu paleti" +#: src/app/main/ui/workspace/main_menu.cljs:395 msgid "workspace.header.menu.show-pixel-grid" msgstr "Rādīt pikseļu režģi" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:321 msgid "workspace.header.menu.show-rules" msgstr "Rādīt mērjoslas" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:368 msgid "workspace.header.menu.show-textpalette" msgstr "Rādīt fontu paleti" +#: src/app/main/ui/workspace/main_menu.cljs:279 msgid "workspace.header.menu.toggle-dark-theme" msgstr "Pārslēgties uz tumšo izskatu" +#: src/app/main/ui/workspace/main_menu.cljs:278 msgid "workspace.header.menu.toggle-light-theme" msgstr "Pārslēgties uz gaišo izskatu" +#: src/app/main/ui/workspace/main_menu.cljs:446 msgid "workspace.header.menu.undo" msgstr "Atsaukt" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/viewer/header.cljs:98, src/app/main/ui/workspace/right_header.cljs:120 msgid "workspace.header.reset-zoom" msgstr "Atiestatīt" #: src/app/main/ui/workspace/header.cljs +#, unused msgid "workspace.header.save-error" msgstr "Saglabāšanas kļūda" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/right_header.cljs:52 msgid "workspace.header.saved" msgstr "Saglabāts" #: src/app/main/ui/workspace/header.cljs +#, unused msgid "workspace.header.saving" msgstr "Saglabāšana" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/right_header.cljs:42, src/app/main/ui/workspace/right_header.cljs:47 msgid "workspace.header.unsaved" msgstr "Nesaglabātas izmaiņas" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/right_header.cljs:239 msgid "workspace.header.viewer" msgstr "Skatīšana (%s)" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/viewer/header.cljs:79, src/app/main/ui/workspace/right_header.cljs:103 msgid "workspace.header.zoom" msgstr "Tālummaiņa" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/viewer/header.cljs:109 msgid "workspace.header.zoom-fill" msgstr "Aizpildījums — mērogot, lai aizpildītu" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/viewer/header.cljs:102 msgid "workspace.header.zoom-fit" msgstr "Ietilpināt — samazināt, lai ietilpinātu" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/right_header.cljs:123 msgid "workspace.header.zoom-fit-all" msgstr "Tālummainīt, lai ietilpinātu visu" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/viewer/header.cljs:116 msgid "workspace.header.zoom-full-screen" msgstr "Pilnekrāns" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/right_header.cljs:130 msgid "workspace.header.zoom-selected" msgstr "Tālummainīt uz atlasi" +#: src/app/main/ui/workspace/sidebar/options/menus/grid_cell.cljs:273, src/app/main/ui/workspace/sidebar/options/menus/grid_cell.cljs:275, src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:612 msgid "workspace.layout_grid.editor.options.edit-grid" msgstr "Labot režģi" +#: src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:1280 msgid "workspace.layout_grid.editor.options.exit" msgstr "Iziet" +#: src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:483 msgid "workspace.layout_grid.editor.padding.expand" msgstr "Rādīt četrpusējas atbīdes iespējas" +#: src/app/main/ui/workspace/viewport/grid_layout_editor.cljs:59 msgid "workspace.layout_grid.editor.title" msgstr "Režģa labošana" +#: src/app/main/ui/workspace/viewport/grid_layout_editor.cljs:65 msgid "workspace.layout_grid.editor.top-bar.done" msgstr "Darīts" +#: src/app/main/ui/workspace/viewport/grid_layout_editor.cljs:62 msgid "workspace.layout_grid.editor.top-bar.locate" msgstr "Noteikt atrašanās vietu" +#: src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:1306 msgid "workspace.layout_grid.editor.top-bar.locate.tooltip" msgstr "Norādīt režģa izkārtojumu" #: src/app/main/ui/workspace/libraries.cljs +#, unused msgid "workspace.libraries.add" msgstr "Pievienot" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:80, src/app/main/ui/workspace/libraries.cljs:99 msgid "workspace.libraries.colors" msgstr "%s krāsas" -#: src/app/main/ui/workspace/colorpalette.cljs +#: src/app/main/ui/workspace/color_palette.cljs:126 msgid "workspace.libraries.colors.empty-palette" msgstr "Bibliotēkā vēl nav krāsu stilu" -#: src/app/main/ui/workspace/textpalette.cljs +#: src/app/main/ui/workspace/text_palette.cljs:150 msgid "workspace.libraries.colors.empty-typography-palette" msgstr "Bibliotēkā vēl nav burtu stilu un veidu" -#: src/app/main/ui/workspace/colorpicker/libraries.cljs, -#: src/app/main/ui/workspace/colorpalette.cljs +#: src/app/main/ui/workspace/color_palette_ctx_menu.cljs:60, src/app/main/ui/workspace/colorpicker/libraries.cljs:73, src/app/main/ui/workspace/text_palette_ctx_menu.cljs:50 msgid "workspace.libraries.colors.file-library" msgstr "Datņu bibliotēka" #: src/app/main/ui/workspace/colorpicker.cljs +#, unused msgid "workspace.libraries.colors.hsv" msgstr "HSV" -#: src/app/main/ui/workspace/colorpicker/libraries.cljs, -#: src/app/main/ui/workspace/colorpalette.cljs +#: src/app/main/ui/workspace/color_palette_ctx_menu.cljs:82, src/app/main/ui/workspace/colorpicker/libraries.cljs:72 msgid "workspace.libraries.colors.recent-colors" msgstr "Nesen izmantotās krāsas" #: src/app/main/ui/workspace/colorpicker.cljs +#, unused msgid "workspace.libraries.colors.rgb-complementary" msgstr "Papildu RGB" #: src/app/main/ui/workspace/colorpicker.cljs +#, unused msgid "workspace.libraries.colors.rgba" msgstr "RGBA" -#: src/app/main/ui/workspace/colorpicker.cljs +#: src/app/main/ui/workspace/colorpicker.cljs:372 msgid "workspace.libraries.colors.save-color" msgstr "Saglabāt krāsu stilu" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:74, src/app/main/ui/workspace/libraries.cljs:91 msgid "workspace.libraries.components" msgstr "%s sastāvdaļas" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:215 msgid "workspace.libraries.file-library" msgstr "Datņu bibliotēka" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:77, src/app/main/ui/workspace/libraries.cljs:95 msgid "workspace.libraries.graphics" msgstr "%s attēli" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:209 msgid "workspace.libraries.in-this-file" msgstr "BIBLIOTĒKAS ŠAJĀ DATNĒ" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:526, src/app/main/ui/workspace/libraries.cljs:531 msgid "workspace.libraries.libraries" msgstr "BIBLIOTĒKAS" #: src/app/main/ui/workspace/libraries.cljs +#, unused msgid "workspace.libraries.library" msgstr "BIBLIOTĒKA" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:382 msgid "workspace.libraries.library-updates" msgstr "BIBLIOTĒKAS JAUNINĀJUMI" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:290 msgid "workspace.libraries.loading" msgstr "Ielādē…" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:380 msgid "workspace.libraries.no-libraries-need-sync" msgstr "Nav nevienas koplietojamās bibliotēkas, kas būtu jāatjaunina" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:299 msgid "workspace.libraries.no-matches-for" msgstr "“%s” nav atrasta neviena atbilstība" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:296 msgid "workspace.libraries.no-shared-libraries-available" msgstr "Nav pieejamu koplietojamo bibliotēku" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:260 msgid "workspace.libraries.search-shared-libraries" msgstr "Meklēt koplietojamās bibliotēkas" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:256 msgid "workspace.libraries.shared-libraries" msgstr "KOPLIETOJAMĀS BIBLIOTĒKAS" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:282 msgid "workspace.libraries.shared-library-btn" msgstr "Savienot bibliotēku" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:308 msgid "workspace.libraries.text.multiple-typography" msgstr "Vairāki burtu stili un veidi" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:311 msgid "workspace.libraries.text.multiple-typography-tooltip" msgstr "Atsaistīt visus burtu stilus un veidus" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:83, src/app/main/ui/workspace/libraries.cljs:103 msgid "workspace.libraries.typography" msgstr "%s burtu stili un veidi" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:249 msgid "workspace.libraries.unlink-library-btn" msgstr "Atvienot bibliotēku" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:402 msgid "workspace.libraries.update" msgstr "Atjaunināt" -#: src/app/main/data/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:477 msgid "workspace.libraries.update.see-all-changes" msgstr "apskatīt visas izmaiņas" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:536 msgid "workspace.libraries.updates" msgstr "ATJAUNINĀJUMI" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:737 msgid "workspace.options.add-interaction" msgstr "Jāklikšķina uz pogas \"+\", lai pievienotu mijiedarbības." -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:86, src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:102 msgid "workspace.options.blur-options.title" msgstr "Aizmiglojums" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:85 msgid "workspace.options.blur-options.title.group" msgstr "Kopas aizmiglojums" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:84 msgid "workspace.options.blur-options.title.multiple" msgstr "Atlases aizmiglojums" -#: src/app/main/ui/workspace/sidebar/options/page.cljs +#: src/app/main/ui/workspace/sidebar/options/page.cljs:32, src/app/main/ui/workspace/sidebar/options/page.cljs:39 msgid "workspace.options.canvas-background" msgstr "Kanvas fons" +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:548 msgid "workspace.options.clip-content" msgstr "Apcirpt saturu" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:600, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:605 msgid "workspace.options.component" msgstr "Sastāvdaļa" +#: src/app/main/ui/viewer/inspect/annotation.cljs:19, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:181 msgid "workspace.options.component.annotation" msgstr "Piezīme" +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:610 msgid "workspace.options.component.copy" msgstr "Ievietot starpliktuvē" +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:173 msgid "workspace.options.component.create-annotation" msgstr "Izveidot piezīmi" +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:172 msgid "workspace.options.component.edit-annotation" msgstr "Labot piezīmi" +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:609 msgid "workspace.options.component.main" msgstr "Galvenais" +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:427 msgid "workspace.options.component.swap" msgstr "Mijmainīt sastāvdaļu" +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:471 msgid "workspace.options.component.swap.empty" msgstr "Šajā bibliotēkā vēl nav līdzekļu" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:163 msgid "workspace.options.constraints" msgstr "Ierobežojumi" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:150 msgid "workspace.options.constraints.bottom" msgstr "Apakša" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:141, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:152 msgid "workspace.options.constraints.center" msgstr "Centrs" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:229 msgid "workspace.options.constraints.fix-when-scrolling" msgstr "Nofiksēt ritināšanas laikā" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:138 msgid "workspace.options.constraints.left" msgstr "Pa kreisi" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:140 msgid "workspace.options.constraints.leftright" msgstr "Pa kreisi un labi" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:139 msgid "workspace.options.constraints.right" msgstr "Pa labi" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:142, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:153 msgid "workspace.options.constraints.scale" msgstr "Mērogs" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:149 msgid "workspace.options.constraints.top" msgstr "Augša" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:151 msgid "workspace.options.constraints.topbottom" msgstr "Augša un apakša" -#: src/app/main/ui/workspace/sidebar/options.cljs +#: src/app/main/ui/workspace/sidebar/options.cljs:112 msgid "workspace.options.design" msgstr "Dizains" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs +#: src/app/main/ui/viewer/inspect/exports.cljs:139 msgid "workspace.options.export" msgstr "Izguve" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs +#, unused msgid "workspace.options.export-multiple" msgstr "Izgūt atlasi" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs +#: src/app/main/ui/viewer/inspect/exports.cljs:195, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:237 msgid "workspace.options.export-object" msgid_plural "workspace.options.export-object" msgstr[0] "Izgūt %s elementus" msgstr[1] "Izgūt %s elementu" msgstr[2] "Izgūt %s elementus" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs +#: src/app/main/ui/viewer/inspect/exports.cljs:178, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:219 msgid "workspace.options.export.suffix" msgstr "Piedēklis" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs, src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/export.cljs:240 msgid "workspace.options.exporting-complete" msgstr "Izguve pabeigta" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs, src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/export.cljs:172, src/app/main/ui/export.cljs:241, src/app/main/ui/viewer/inspect/exports.cljs:194, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:236 msgid "workspace.options.exporting-object" msgstr "Notiek izgūšana…" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs, src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/export.cljs:239 msgid "workspace.options.exporting-object-error" msgstr "Izgūšana neizdevās" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs, src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/export.cljs:242 msgid "workspace.options.exporting-object-slow" msgstr "Izgūšana ir neparedzēti lēna" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:49, src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:174 msgid "workspace.options.fill" msgstr "Aizpildīšana" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:178 msgid "workspace.options.flows.add-flow-start" msgstr "Pievienot plūsmas sākumu" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:174 msgid "workspace.options.flows.flow" msgstr "Plūsma" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#, unused msgid "workspace.options.flows.flow-start" msgstr "Plūsmas sākums" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:161 msgid "workspace.options.flows.flow-starts" msgstr "Plūsma sākas" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:29 msgid "workspace.options.grid.auto" msgstr "Auto" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:157 msgid "workspace.options.grid.column" msgstr "Slejas" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused msgid "workspace.options.grid.grid-title" msgstr "Režģis" +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:196, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:237 msgid "workspace.options.grid.params.color" msgstr "Krāsa" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused msgid "workspace.options.grid.params.columns" msgstr "Slejas" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:259 msgid "workspace.options.grid.params.gutter" msgstr "Rene" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:246 msgid "workspace.options.grid.params.height" msgstr "Augstums" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:270 msgid "workspace.options.grid.params.margin" msgstr "Mala" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused msgid "workspace.options.grid.params.rows" msgstr "Rindas" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:216, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:290 msgid "workspace.options.grid.params.set-default" msgstr "Iestatīt kā noklusējumu" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused msgid "workspace.options.grid.params.size" msgstr "Izmērs" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused msgid "workspace.options.grid.params.type" msgstr "Tips" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:231 msgid "workspace.options.grid.params.type.bottom" msgstr "Apakša" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:229 msgid "workspace.options.grid.params.type.center" msgstr "Centrs" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:228 msgid "workspace.options.grid.params.type.left" msgstr "Pa kreiss" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:232 msgid "workspace.options.grid.params.type.right" msgstr "Pa labi" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:225 msgid "workspace.options.grid.params.type.stretch" msgstr "Izstiept" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:227 msgid "workspace.options.grid.params.type.top" msgstr "Augša" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:211, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:288 msgid "workspace.options.grid.params.use-default" msgstr "Izmantot noklusējumu" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:247 msgid "workspace.options.grid.params.width" msgstr "Platums" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:158 msgid "workspace.options.grid.row" msgstr "Rindas" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:156 msgid "workspace.options.grid.square" msgstr "Kvadrāts" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:48 msgid "workspace.options.group-fill" msgstr "Kopas aizpildījums" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:42 msgid "workspace.options.group-stroke" msgstr "Kopas vilkums" +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:310 msgid "workspace.options.guides.title" msgstr "Vadotnes" +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:406 msgid "workspace.options.height" msgstr "Augstums" +#: src/app/main/ui/workspace/sidebar/options.cljs:161 msgid "workspace.options.inspect" msgstr "Apskatīt" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:468 msgid "workspace.options.interaction-action" msgstr "Darbība" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:41, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:367 msgid "workspace.options.interaction-after-delay" msgstr "Pēc kavēšanās" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:614 msgid "workspace.options.interaction-animation" msgstr "Animācija" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:406 msgid "workspace.options.interaction-animation-dissolve" msgstr "Izšķīst" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:405 msgid "workspace.options.interaction-animation-none" msgstr "Nav" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:412 msgid "workspace.options.interaction-animation-push" msgstr "Grūdiens" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:407 msgid "workspace.options.interaction-animation-slide" msgstr "Bīdīšana" +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:391 msgid "workspace.options.interaction-auto" msgstr "auto" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:604 msgid "workspace.options.interaction-background" msgstr "Pievienot fona pārklājumu" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:590 msgid "workspace.options.interaction-close-outside" msgstr "Aizvērt, noklikšķinot ārpus" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:372 msgid "workspace.options.interaction-close-overlay" msgstr "Aizvērt pārklājumu" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:56 msgid "workspace.options.interaction-close-overlay-dest" msgstr "Aizvērt pārklājumu: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:456 msgid "workspace.options.interaction-delay" msgstr "Nobīde" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:478 msgid "workspace.options.interaction-destination" msgstr "Galamērķis" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:661 msgid "workspace.options.interaction-duration" msgstr "Ilgums" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:674 msgid "workspace.options.interaction-easing" msgstr "Mīkstināšana" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:416 msgid "workspace.options.interaction-easing-ease" msgstr "Mīkstināt" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:417 msgid "workspace.options.interaction-easing-ease-in" msgstr "Viegli iekšā" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:419 msgid "workspace.options.interaction-easing-ease-in-out" msgstr "Viegli iekšā ārā" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:418 msgid "workspace.options.interaction-easing-ease-out" msgstr "Viegli ārā" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:415 msgid "workspace.options.interaction-easing-linear" msgstr "Lineāri" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#, unused msgid "workspace.options.interaction-in" msgstr "Iekšā" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:39, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:364 msgid "workspace.options.interaction-mouse-enter" msgstr "Peles ievade" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:40, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:365 msgid "workspace.options.interaction-mouse-leave" msgstr "Peles pamešana" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:458, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:459, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:464, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:663, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:665, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:669 msgid "workspace.options.interaction-ms" msgstr "ms" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:369 msgid "workspace.options.interaction-navigate-to" msgstr "Doties uz" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:50 msgid "workspace.options.interaction-navigate-to-dest" msgstr "Doties uz: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:51, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:53, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:55, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:380 msgid "workspace.options.interaction-none" msgstr "(nav noteikts)" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:691 msgid "workspace.options.interaction-offset-effect" msgstr "Nobīdes efekts" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:35, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:360 msgid "workspace.options.interaction-on-click" msgstr "Uz klikšķa" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:370 msgid "workspace.options.interaction-open-overlay" msgstr "Atvērt pārklājumu" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:52 msgid "workspace.options.interaction-open-overlay-dest" msgstr "Atvērt pārklājumu: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:59, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:374 msgid "workspace.options.interaction-open-url" msgstr "Atvērt URL" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#, unused msgid "workspace.options.interaction-out" msgstr "Ārā" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:403 msgid "workspace.options.interaction-pos-bottom-center" msgstr "Apakšējais centrs" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:401 msgid "workspace.options.interaction-pos-bottom-left" msgstr "Apakšā pa kreisi" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:402 msgid "workspace.options.interaction-pos-bottom-right" msgstr "Apakšā pa labi" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:397 msgid "workspace.options.interaction-pos-center" msgstr "Centrs" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:396 msgid "workspace.options.interaction-pos-manual" msgstr "Manuāli" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:400 msgid "workspace.options.interaction-pos-top-center" msgstr "Augšējais centrs" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:398 msgid "workspace.options.interaction-pos-top-left" msgstr "Augšā pa kreisi" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:399 msgid "workspace.options.interaction-pos-top-right" msgstr "Augšā pa labi" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:524 msgid "workspace.options.interaction-position" msgstr "Novietojums" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:494 msgid "workspace.options.interaction-preserve-scroll" msgstr "Paturēt ritināšanas pozīciju" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:58, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:373 msgid "workspace.options.interaction-prev-screen" msgstr "Iepriekšējais ekrāns" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:515 msgid "workspace.options.interaction-relative-to" msgstr "Attiecībā pret" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:57, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:379, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:393, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:394 msgid "workspace.options.interaction-self" msgstr "sevi" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:371 msgid "workspace.options.interaction-toggle-overlay" msgstr "Pārslēgt pārklājumu" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:54 msgid "workspace.options.interaction-toggle-overlay-dest" msgstr "Pārslēgt pārklājumu: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:445 msgid "workspace.options.interaction-trigger" msgstr "Izraisītājs" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:503 msgid "workspace.options.interaction-url" msgstr "URL" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:37, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:362 msgid "workspace.options.interaction-while-hovering" msgstr "Karāšanās laikā" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:38, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:363 msgid "workspace.options.interaction-while-pressing" msgstr "Nospiešanas laikā" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:724 msgid "workspace.options.interactions" msgstr "Mijiedarbības" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:137 msgid "workspace.options.layer-options.blend-mode.color" msgstr "Krāsa" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:126 msgid "workspace.options.layer-options.blend-mode.color-burn" msgstr "Krāsas izbalēšana" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:129 msgid "workspace.options.layer-options.blend-mode.color-dodge" msgstr "Krāsas izcēlums" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:124 msgid "workspace.options.layer-options.blend-mode.darken" msgstr "Aptumšot" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:133 msgid "workspace.options.layer-options.blend-mode.difference" msgstr "Starpība" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:134 msgid "workspace.options.layer-options.blend-mode.exclusion" msgstr "Izslēgšana" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:132 msgid "workspace.options.layer-options.blend-mode.hard-light" msgstr "Konturgaisma" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:135 msgid "workspace.options.layer-options.blend-mode.hue" msgstr "Nokrāsa" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:127 msgid "workspace.options.layer-options.blend-mode.lighten" msgstr "Izgaismot" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:138 msgid "workspace.options.layer-options.blend-mode.luminosity" msgstr "Spožums" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:125 msgid "workspace.options.layer-options.blend-mode.multiply" msgstr "Vairot" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:123 msgid "workspace.options.layer-options.blend-mode.normal" msgstr "Normāls" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:130 msgid "workspace.options.layer-options.blend-mode.overlay" msgstr "Pārklājums" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:136 msgid "workspace.options.layer-options.blend-mode.saturation" msgstr "Piesātinājums" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:128 msgid "workspace.options.layer-options.blend-mode.screen" msgstr "Ekrāns" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:131 msgid "workspace.options.layer-options.blend-mode.soft-light" msgstr "Izkliedgaisma" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#, unused msgid "workspace.options.layer-options.title" msgstr "Slānis" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#, unused msgid "workspace.options.layer-options.title.group" msgstr "Apkopot slāņus" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#, unused msgid "workspace.options.layer-options.title.multiple" msgstr "Atlasītie slāņi" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout-item.advanced-ops" msgstr "Papildu opcijas" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:564 msgid "workspace.options.layout-item.layout-item-max-h" msgstr "Maks.augstums" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:531 msgid "workspace.options.layout-item.layout-item-max-w" msgstr "Maks.platums" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:548 msgid "workspace.options.layout-item.layout-item-min-h" msgstr "Min.augstums" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:515 msgid "workspace.options.layout-item.layout-item-min-w" msgstr "Min.platums" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout-item.title.layout-item-max-h" msgstr "Maksimālais augstums" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout-item.title.layout-item-max-w" msgstr "Maksimālais platums" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout-item.title.layout-item-min-h" msgstr "Minimālais augstums" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout-item.title.layout-item-min-w" msgstr "Minimālais platums" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.bottom" msgstr "Apakša" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.direction.column" msgstr "Sleja" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.direction.column-reverse" msgstr "Apvērsta sleja" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.direction.row" msgstr "Rinda" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.direction.row-reverse" msgstr "Apgrieztā rinda" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.gap" msgstr "Atstarpe" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.left" msgstr "Pa kreisi" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout.margin" msgstr "Mala" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout.margin-all" msgstr "Visas malas" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout.margin-simple" msgstr "Vienkāršā mala" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.packed" msgstr "kompakts" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.padding" msgstr "Papildināšana" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.padding-all" msgstr "Visas malas" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.padding-simple" msgstr "Vienkāršā papildināšana" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.right" msgstr "Pa labi" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.space-around" msgstr "telpa apkārt" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.space-between" msgstr "telpa starp" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.top" msgstr "Augša" -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:146 msgid "workspace.options.more-colors" msgstr "Vairāk krāsu" -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:123 msgid "workspace.options.more-lib-colors" msgstr "Vairāk bibliotēkas krāsu" +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:161 msgid "workspace.options.opacity" msgstr "Caurspīdīgums" -#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#, unused msgid "workspace.options.position" msgstr "Novietojums" -#: src/app/main/ui/workspace/sidebar/options.cljs +#: src/app/main/ui/workspace/sidebar/options.cljs:157 msgid "workspace.options.prototype" msgstr "Prototips" +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:469, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:481 msgid "workspace.options.radius" msgstr "Rādiuss" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:513 msgid "workspace.options.radius-bottom-left" msgstr "Apakšā pa kreisi" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:522 msgid "workspace.options.radius-bottom-right" msgstr "Apakšā pa labi" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:495 msgid "workspace.options.radius-top-left" msgstr "Augšā pa kreisi" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:504 msgid "workspace.options.radius-top-right" msgstr "Augšā pa labi" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:532 msgid "workspace.options.radius.all-corners" msgstr "Visi stūri" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:533 msgid "workspace.options.radius.single-corners" msgstr "Atsevišķie stūri" +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:183 msgid "workspace.options.recent-fonts" msgstr "Pēdējie" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs, src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/export.cljs:284 msgid "workspace.options.retry" msgstr "Atkārtot" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:451 msgid "workspace.options.rotation" msgstr "Pagriešana" +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:180 msgid "workspace.options.search-font" msgstr "Meklēt fontu" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:741 msgid "workspace.options.select-a-shape" msgstr "Jāatlasa apveids, plātne vai kopa, lai vilktu savienojumu uz citu plātni." -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:105 msgid "workspace.options.selection-color" msgstr "Atlasītās krāsas" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:47 msgid "workspace.options.selection-fill" msgstr "Atlases aizpildījums" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:41 msgid "workspace.options.selection-stroke" msgstr "Atlases vilkums" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:40, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:198, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:200 msgid "workspace.options.shadow-options.blur" msgstr "Aizmiglojums" +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:238 msgid "workspace.options.shadow-options.color" msgstr "Ēnas krāsa" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:144 msgid "workspace.options.shadow-options.drop-shadow" msgstr "Ēnot" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:145 msgid "workspace.options.shadow-options.inner-shadow" msgstr "Iekšējā ēna" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:38, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:186 msgid "workspace.options.shadow-options.offsetx" msgstr "X" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:39, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:224 msgid "workspace.options.shadow-options.offsety" msgstr "Y" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:41, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:211, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:213 msgid "workspace.options.shadow-options.spread" msgstr "Izkliede" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:296 msgid "workspace.options.shadow-options.title" msgstr "Ēna" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:295 msgid "workspace.options.shadow-options.title.group" msgstr "Kopas ēna" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:294 msgid "workspace.options.shadow-options.title.multiple" msgstr "Atlases ēnas" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:193 msgid "workspace.options.show-fill-on-export" msgstr "Rādīt izguvēs" +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:562 msgid "workspace.options.show-in-viewer" msgstr "Rādīt skatītājā" -#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:162 msgid "workspace.options.size" msgstr "Izmērs" -#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:355 msgid "workspace.options.size-presets" msgstr "Izmēra standarti" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:43 msgid "workspace.options.stroke" msgstr "Vilkums" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#, unused msgid "workspace.options.stroke-cap.circle-marker" msgstr "Apļa marķieris" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:129 msgid "workspace.options.stroke-cap.circle-marker-short" msgstr "Aplis" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#, unused msgid "workspace.options.stroke-cap.diamond-marker" msgstr "Rombveida marķieris" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:130 msgid "workspace.options.stroke-cap.diamond-marker-short" msgstr "Dimants" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#, unused msgid "workspace.options.stroke-cap.line-arrow" msgstr "Līnijas bulta" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:126 msgid "workspace.options.stroke-cap.line-arrow-short" msgstr "Bulta" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:124 msgid "workspace.options.stroke-cap.none" msgstr "Nav" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:132 msgid "workspace.options.stroke-cap.round" msgstr "Apaļš" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:133 msgid "workspace.options.stroke-cap.square" msgstr "Kvadrāts" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#, unused msgid "workspace.options.stroke-cap.square-marker" msgstr "Kvadrāta marķieris" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:128 msgid "workspace.options.stroke-cap.square-marker-short" msgstr "Taisnstūris" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#, unused msgid "workspace.options.stroke-cap.triangle-arrow" msgstr "Trīsstūra bulta" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:127 msgid "workspace.options.stroke-cap.triangle-arrow-short" msgstr "Trijstūris" +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:192 msgid "workspace.options.stroke-color" msgstr "Vilkuma krāsa" +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:165 msgid "workspace.options.stroke-width" msgstr "Vilkuma biezums" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:87 msgid "workspace.options.stroke.center" msgstr "Centrs" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:105 msgid "workspace.options.stroke.dashed" msgstr "Pārtraukts" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:104 msgid "workspace.options.stroke.dotted" msgstr "Punktots" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:88 msgid "workspace.options.stroke.inner" msgstr "Iekšā" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:106 msgid "workspace.options.stroke.mixed" msgstr "Jaukts" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:89 msgid "workspace.options.stroke.outer" msgstr "Ārā" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:103 msgid "workspace.options.stroke.solid" msgstr "Blīvs" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:115 msgid "workspace.options.text-options.align-bottom" msgstr "Līdzināt pie apakšas" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:111 msgid "workspace.options.text-options.align-middle" msgstr "Līdzināt vidū (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:107 msgid "workspace.options.text-options.align-top" msgstr "Līdzināt pie augšas" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:82 msgid "workspace.options.text-options.direction-ltr" msgstr "No kreisās uz labo pusi" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:87 msgid "workspace.options.text-options.direction-rtl" msgstr "No labās uz kreiso pusi" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:149 msgid "workspace.options.text-options.grow-auto-height" msgstr "Automātiskais augstums" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:145 msgid "workspace.options.text-options.grow-auto-width" msgstr "Automātiskais platums" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:141 msgid "workspace.options.text-options.grow-fixed" msgstr "Fiksēts" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:381 msgid "workspace.options.text-options.letter-spacing" msgstr "Burtu atstarpes" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:364 msgid "workspace.options.text-options.line-height" msgstr "Rindas augstums" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused msgid "workspace.options.text-options.lowercase" msgstr "Mazie burti" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused msgid "workspace.options.text-options.none" msgstr "Nav" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:176 msgid "workspace.options.text-options.strikethrough" msgstr "Pārsvītrots (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:51 msgid "workspace.options.text-options.text-align-center" msgstr "Līdzināt vidū (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:59 msgid "workspace.options.text-options.text-align-justify" msgstr "Izlīdzināt (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:47 msgid "workspace.options.text-options.text-align-left" msgstr "Līdzināt pa kreisi (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:55 msgid "workspace.options.text-options.text-align-right" msgstr "Līdzināt pa labi (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:189 msgid "workspace.options.text-options.title" msgstr "Teksts" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:188 msgid "workspace.options.text-options.title-group" msgstr "Kopas teksts" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:187 msgid "workspace.options.text-options.title-selection" msgstr "Atlases teksts" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused msgid "workspace.options.text-options.titlecase" msgstr "Virsraksta stils" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:171 msgid "workspace.options.text-options.underline" msgstr "Pasvītrojums (%s)" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused msgid "workspace.options.text-options.uppercase" msgstr "Lielie burti" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:745 msgid "workspace.options.use-play-button" msgstr "Jāizmanto atskaņosanas poga galvenē, lai palaistu prototipa skatu." +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:395 msgid "workspace.options.width" msgstr "Platums" +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:427 msgid "workspace.options.x" msgstr "X ass" +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:438 msgid "workspace.options.y" msgstr "Y ass" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:167 msgid "workspace.path.actions.add-node" msgstr "Pievienot mezglu (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:174 msgid "workspace.path.actions.delete-node" msgstr "Dzēst mezglu (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:152 msgid "workspace.path.actions.draw-nodes" msgstr "Zīmēt mezglus (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:189 msgid "workspace.path.actions.join-nodes" msgstr "Savienot mezglus (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:204 msgid "workspace.path.actions.make-corner" msgstr "Uz stūri (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:211 msgid "workspace.path.actions.make-curve" msgstr "Uz līkni (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:182 msgid "workspace.path.actions.merge-nodes" msgstr "Mezglu sapludināšana (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:159 msgid "workspace.path.actions.move-nodes" msgstr "Pārvietot mezglus (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:196 msgid "workspace.path.actions.separate-nodes" msgstr "Atdalīt mezglus (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:218 msgid "workspace.path.actions.snap-nodes" msgstr "Pieķert mezglus (%s)" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:441 msgid "workspace.shape.menu.add-flex" msgstr "Pievienot elastīgo izkārtojumu" +#: src/app/main/ui/workspace/context_menu.cljs:445 msgid "workspace.shape.menu.add-grid" msgstr "Pievienot režģa izkārtojumu" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:193 msgid "workspace.shape.menu.back" msgstr "Sūtīt atpakaļ" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:190 msgid "workspace.shape.menu.backward" msgstr "Sūtīt uz aizmuguri" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:139 msgid "workspace.shape.menu.copy" msgstr "Kopēt" +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:427 msgid "workspace.shape.menu.create-annotation" msgstr "Izveidot piezīmi" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:275 msgid "workspace.shape.menu.create-artboard-from-selection" msgstr "Atlase uz plātni" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:465 msgid "workspace.shape.menu.create-component" msgstr "Izveidot sastāvdaļu" +#: src/app/main/ui/workspace/context_menu.cljs:469 msgid "workspace.shape.menu.create-multiple-components" msgstr "Izveidot vairākas sastāvdaļas" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:142 msgid "workspace.shape.menu.cut" msgstr "Izgriezt" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:486 msgid "workspace.shape.menu.delete" msgstr "Dzēst" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:391 msgid "workspace.shape.menu.delete-flow-start" msgstr "Izdzēst plūsmas sākumu" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:432 msgid "workspace.shape.menu.detach-instance" msgstr "Atvienot instanci" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:431 msgid "workspace.shape.menu.detach-instances-in-bulk" msgstr "Atvienot instances" +#: src/app/main/ui/workspace/context_menu.cljs:335, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:75 msgid "workspace.shape.menu.difference" msgstr "Starpība" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:148 msgid "workspace.shape.menu.duplicate" msgstr "Divkāršot" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:321 msgid "workspace.shape.menu.edit" msgstr "Labot" +#: src/app/main/ui/workspace/context_menu.cljs:341 msgid "workspace.shape.menu.exclude" msgstr "Izslēgt" +#: src/app/main/ui/workspace/context_menu.cljs:348, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:89 msgid "workspace.shape.menu.flatten" msgstr "Izklāt" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:208 msgid "workspace.shape.menu.flip-horizontal" msgstr "Apvērst līmeniski" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:204 msgid "workspace.shape.menu.flip-vertical" msgstr "Apvērst stateniski" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:394 msgid "workspace.shape.menu.flow-start" msgstr "Plūsmas sākums" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:184 msgid "workspace.shape.menu.forward" msgstr "Virzīt uz priekšu" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:187 msgid "workspace.shape.menu.front" msgstr "Virzīt priekšā" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#, unused msgid "workspace.shape.menu.go-main" msgstr "Doties uz galvenās sastāvdaļas datni" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:261 msgid "workspace.shape.menu.group" msgstr "Kopa" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:363, src/app/main/ui/workspace/sidebar/layer_item.cljs:145 msgid "workspace.shape.menu.hide" msgstr "Slēpt" +#: src/app/main/ui/workspace/context_menu.cljs:548, src/app/main/ui/workspace/main_menu.cljs:408 msgid "workspace.shape.menu.hide-ui" msgstr "Rādīt/paslēpt UI" +#: src/app/main/ui/workspace/context_menu.cljs:338 msgid "workspace.shape.menu.intersection" msgstr "Šķēlums" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:371, src/app/main/ui/workspace/sidebar/layer_item.cljs:153 msgid "workspace.shape.menu.lock" msgstr "Slēgt" -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:266 msgid "workspace.shape.menu.mask" msgstr "Maska" -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:145, src/app/main/ui/workspace/context_menu.cljs:545 msgid "workspace.shape.menu.paste" msgstr "Ielīmēt" +#: src/app/main/ui/workspace/context_menu.cljs:331 msgid "workspace.shape.menu.path" msgstr "Ceļš" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:432 msgid "workspace.shape.menu.remove-flex" msgstr "Noņemt elastīgo izkārtojumu" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:435 msgid "workspace.shape.menu.remove-grid" msgstr "Noņemt režģa izkārtojumu" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:436 msgid "workspace.shape.menu.reset-overrides" msgstr "Atiestatīt aizvietojumus" +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:439 msgid "workspace.shape.menu.restore-main" msgstr "Atjaunot galveno sastāvdaļu" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:174 msgid "workspace.shape.menu.select-layer" msgstr "Atlasīt slāni" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:360, src/app/main/ui/workspace/sidebar/layer_item.cljs:144 msgid "workspace.shape.menu.show" msgstr "Pāradīt" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:424 msgid "workspace.shape.menu.show-in-assets" msgstr "Rādīt līdzekļu panelī" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:442, src/app/main/ui/workspace/sidebar/assets/components.cljs:586 msgid "workspace.shape.menu.show-main" msgstr "Rādīt galveno sastāvdaļu" +#: src/app/main/ui/workspace/context_menu.cljs:221 msgid "workspace.shape.menu.thumbnail-remove" msgstr "Noņemt sīktēlu" +#: src/app/main/ui/workspace/context_menu.cljs:223 msgid "workspace.shape.menu.thumbnail-set" msgstr "Iestatīt kā sīktēlu" +#: src/app/main/ui/workspace/context_menu.cljs:326 msgid "workspace.shape.menu.transform-to-path" msgstr "Transformēt par ceļu" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:257 msgid "workspace.shape.menu.ungroup" msgstr "Atapkopot" +#: src/app/main/ui/workspace/context_menu.cljs:332, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:70 msgid "workspace.shape.menu.union" msgstr "Apvienot" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:368, src/app/main/ui/workspace/sidebar/layer_item.cljs:152 msgid "workspace.shape.menu.unlock" msgstr "Atslēgt" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:271 msgid "workspace.shape.menu.unmask" msgstr "Noņemt masku" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs +#, unused msgid "workspace.shape.menu.update-components-in-bulk" msgstr "Atjaunināt galvenās sastāvdaļas" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:445 msgid "workspace.shape.menu.update-main" msgstr "Atjaunināt galveno sastāvdaļu" +#: src/app/main/ui/components/tab_container.cljs:50 msgid "workspace.sidebar.collapse" msgstr "Sakļaut sānjoslu" +#: src/app/main/ui/workspace/sidebar/collapsable_button.cljs:26 msgid "workspace.sidebar.expand" msgstr "Izvērst sānjoslu" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/right_header.cljs:231, src/app/main/ui/workspace/right_header.cljs:232 msgid "workspace.sidebar.history" msgstr "Vēsture (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/sidebar/layers.cljs:522, src/app/main/ui/workspace/sidebar.cljs:100 msgid "workspace.sidebar.layers" msgstr "Slāņi" +#: src/app/main/ui/workspace/sidebar/layers.cljs:308, src/app/main/ui/workspace/sidebar/layers.cljs:380 msgid "workspace.sidebar.layers.components" msgstr "Sastāvdaļas" +#: src/app/main/ui/workspace/sidebar/layers.cljs:305, src/app/main/ui/workspace/sidebar/layers.cljs:338 msgid "workspace.sidebar.layers.frames" msgstr "Plātnes" +#: src/app/main/ui/workspace/sidebar/layers.cljs:306, src/app/main/ui/workspace/sidebar/layers.cljs:352 msgid "workspace.sidebar.layers.groups" msgstr "Kopas" +#: src/app/main/ui/workspace/sidebar/layers.cljs:310, src/app/main/ui/workspace/sidebar/layers.cljs:408 msgid "workspace.sidebar.layers.images" msgstr "Attēli" +#: src/app/main/ui/workspace/sidebar/layers.cljs:307, src/app/main/ui/workspace/sidebar/layers.cljs:366 msgid "workspace.sidebar.layers.masks" msgstr "Maskas" +#: src/app/main/ui/workspace/sidebar/layers.cljs:289 msgid "workspace.sidebar.layers.search" msgstr "Meklēt slāņus" +#: src/app/main/ui/workspace/sidebar/layers.cljs:311, src/app/main/ui/workspace/sidebar/layers.cljs:422 msgid "workspace.sidebar.layers.shapes" msgstr "Formas" +#: src/app/main/ui/workspace/sidebar/layers.cljs:309, src/app/main/ui/workspace/sidebar/layers.cljs:394 msgid "workspace.sidebar.layers.texts" msgstr "Teksti" -#: src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs, -#: src/app/main/ui/inspect/attributes/svg.cljs +#: src/app/main/ui/viewer/inspect/attributes/svg.cljs:56, src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs:91 msgid "workspace.sidebar.options.svg-attrs.title" msgstr "Ievietotie SVG atribūti" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs +#: src/app/main/ui/workspace/sidebar/sitemap.cljs:217 msgid "workspace.sidebar.sitemap" msgstr "Lapas" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/left_header.cljs:91 msgid "workspace.sitemap" msgstr "Vietnes karte" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/sidebar.cljs:120 msgid "workspace.toolbar.assets" msgstr "Līdzekļi" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/palette.cljs:165, src/app/main/ui/workspace/palette.cljs:166 msgid "workspace.toolbar.color-palette" msgstr "Krāsu palete (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/right_header.cljs:220, src/app/main/ui/workspace/right_header.cljs:221 msgid "workspace.toolbar.comments" msgstr "Komentāri (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:180, src/app/main/ui/workspace/top_toolbar.cljs:181 msgid "workspace.toolbar.curve" msgstr "Līkne (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:160, src/app/main/ui/workspace/top_toolbar.cljs:161 msgid "workspace.toolbar.ellipse" msgstr "Elipse (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:142, src/app/main/ui/workspace/top_toolbar.cljs:143 msgid "workspace.toolbar.frame" msgstr "Plātne (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:59, src/app/main/ui/workspace/top_toolbar.cljs:60 msgid "workspace.toolbar.image" msgstr "Attēls (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:132, src/app/main/ui/workspace/top_toolbar.cljs:133 msgid "workspace.toolbar.move" msgstr "Pārvietot (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:189, src/app/main/ui/workspace/top_toolbar.cljs:190 msgid "workspace.toolbar.path" msgstr "Ceļš (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:151, src/app/main/ui/workspace/top_toolbar.cljs:152 msgid "workspace.toolbar.rect" msgstr "Taisnstūris (%s)" #: src/app/main/ui/workspace/left_toolbar.cljs +#, unused msgid "workspace.toolbar.shortcuts" msgstr "Saīsnes (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:169, src/app/main/ui/workspace/top_toolbar.cljs:170 msgid "workspace.toolbar.text" msgstr "Teksts (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/palette.cljs:173, src/app/main/ui/workspace/palette.cljs:174 msgid "workspace.toolbar.text-palette" msgstr "Burtu stili un veidi (%s)" +#: src/app/main/ui/workspace/viewport/top_bar.cljs:38 msgid "workspace.top-bar.read-only.done" msgstr "Darīts" +#: src/app/main/ui/workspace/viewport/top_bar.cljs:35 #, markdown msgid "workspace.top-bar.view-only" msgstr "**Apskata kodu** (tikai skatīšana)" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:342 msgid "workspace.undo.empty" msgstr "Līdz šim nav notikušas nekādas vēsturiskās izmaiņas" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:147 msgid "workspace.undo.entry.delete" msgstr "Dzēsts %s" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:146 msgid "workspace.undo.entry.modify" msgstr "Modificēts %s" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:148 msgid "workspace.undo.entry.move" msgstr "Pārvietotie objekti" +#: src/app/main/ui/workspace/sidebar/history.cljs:111 msgid "workspace.undo.entry.multiple.circle" msgstr "apļi" +#: src/app/main/ui/workspace/sidebar/history.cljs:112 msgid "workspace.undo.entry.multiple.color" msgstr "krāsu līdzekļi" +#: src/app/main/ui/workspace/sidebar/history.cljs:113 msgid "workspace.undo.entry.multiple.component" msgstr "sastāvdaļas" +#: src/app/main/ui/workspace/sidebar/history.cljs:114 msgid "workspace.undo.entry.multiple.curve" msgstr "līknes" +#: src/app/main/ui/workspace/sidebar/history.cljs:115 msgid "workspace.undo.entry.multiple.frame" msgstr "plātnes" +#: src/app/main/ui/workspace/sidebar/history.cljs:116 msgid "workspace.undo.entry.multiple.group" msgstr "kopas" +#: src/app/main/ui/workspace/sidebar/history.cljs:117 msgid "workspace.undo.entry.multiple.media" msgstr "grafiskie līdzekļi" +#: src/app/main/ui/workspace/sidebar/history.cljs:118 msgid "workspace.undo.entry.multiple.multiple" msgstr "objekti" +#: src/app/main/ui/workspace/sidebar/history.cljs:119 msgid "workspace.undo.entry.multiple.page" msgstr "lapas" +#: src/app/main/ui/workspace/sidebar/history.cljs:120 msgid "workspace.undo.entry.multiple.path" msgstr "ceļi" +#: src/app/main/ui/workspace/sidebar/history.cljs:121 msgid "workspace.undo.entry.multiple.rect" msgstr "taisnstūri" +#: src/app/main/ui/workspace/sidebar/history.cljs:122 msgid "workspace.undo.entry.multiple.shape" msgstr "formas" +#: src/app/main/ui/workspace/sidebar/history.cljs:123 msgid "workspace.undo.entry.multiple.text" msgstr "teksti" +#: src/app/main/ui/workspace/sidebar/history.cljs:124 msgid "workspace.undo.entry.multiple.typography" msgstr "burtu stilu un veidu līdzekļi" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:145 msgid "workspace.undo.entry.new" msgstr "Jauns %s" +#: src/app/main/ui/workspace/sidebar/history.cljs:125 msgid "workspace.undo.entry.single.circle" msgstr "aplis" +#: src/app/main/ui/workspace/sidebar/history.cljs:126 msgid "workspace.undo.entry.single.color" msgstr "krāsas līdzeklis" +#: src/app/main/ui/workspace/sidebar/history.cljs:127 msgid "workspace.undo.entry.single.component" msgstr "sastāvdaļa" +#: src/app/main/ui/workspace/sidebar/history.cljs:128 msgid "workspace.undo.entry.single.curve" msgstr "līkne" +#: src/app/main/ui/workspace/sidebar/history.cljs:129 msgid "workspace.undo.entry.single.frame" msgstr "plātne" +#: src/app/main/ui/workspace/sidebar/history.cljs:130 msgid "workspace.undo.entry.single.group" msgstr "kopa" +#: src/app/main/ui/workspace/sidebar/history.cljs:131 msgid "workspace.undo.entry.single.image" msgstr "attēls" +#: src/app/main/ui/workspace/sidebar/history.cljs:132 msgid "workspace.undo.entry.single.media" msgstr "grafiskais līdzeklis" +#: src/app/main/ui/workspace/sidebar/history.cljs:133 msgid "workspace.undo.entry.single.multiple" msgstr "objekts" +#: src/app/main/ui/workspace/sidebar/history.cljs:134 msgid "workspace.undo.entry.single.page" msgstr "lapa" +#: src/app/main/ui/workspace/sidebar/history.cljs:135 msgid "workspace.undo.entry.single.path" msgstr "ceļš" +#: src/app/main/ui/workspace/sidebar/history.cljs:136 msgid "workspace.undo.entry.single.rect" msgstr "taisnstūris" +#: src/app/main/ui/workspace/sidebar/history.cljs:137 msgid "workspace.undo.entry.single.shape" msgstr "forma" +#: src/app/main/ui/workspace/sidebar/history.cljs:138 msgid "workspace.undo.entry.single.text" msgstr "teksts" +#: src/app/main/ui/workspace/sidebar/history.cljs:139 msgid "workspace.undo.entry.single.typography" msgstr "burtu stila un veida līdzeklis" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:149 msgid "workspace.undo.entry.unknown" msgstr "Darbība ar %s" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:335 msgid "workspace.undo.title" msgstr "Vēsture" -#: src/app/main/data/workspace/libraries.cljs +#: src/app/main/data/workspace/libraries.cljs:1094 msgid "workspace.updates.dismiss" msgstr "Izlaist" -#: src/app/main/data/workspace/libraries.cljs +#: src/app/main/data/workspace/libraries.cljs:1092 msgid "workspace.updates.more-info" msgstr "Vairāk informācijas" -#: src/app/main/data/workspace/libraries.cljs +#: src/app/main/data/workspace/libraries.cljs:1090 msgid "workspace.updates.there-are-updates" msgstr "Koplietojamajās bibliotēkās ir atjauninājumi" -#: src/app/main/data/workspace/libraries.cljs +#: src/app/main/data/workspace/libraries.cljs:1097 msgid "workspace.updates.update" msgstr "Atjaunināt" +#, unused msgid "workspace.viewport.click-to-close-path" msgstr "Jānoklikšķina, lai aizvērtu ceļu" diff --git a/frontend/translations/ml.po b/frontend/translations/ml.po index f67e468d90..c0b56ab74b 100644 --- a/frontend/translations/ml.po +++ b/frontend/translations/ml.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "PO-Revision-Date: 2024-06-17 08:07+0000\n" "Last-Translator: Anonymous \n" -"Language-Team: Malayalam \n" +"Language-Team: Malayalam " +"\n" "Language: ml\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" @@ -11,198 +11,207 @@ msgstr "" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 5.6-dev\n" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:151, src/app/main/ui/viewer/login.cljs:104 msgid "auth.already-have-account" msgstr "നിലവിൽ അക്കൗണ്ടുണ്ടോ?" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:299 msgid "auth.check-your-email" msgstr "" "പെൻപോട്ട് ഉപയോഗിക്കാനും സാധൂകരിക്കാനും നിങ്ങളുടെ ഇമെയിൽ പരിശോധിച്ച് അതിലെ " "കണ്ണിയിൽ ക്ലിക്ക് ചെയ്യുക." -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:78 msgid "auth.confirm-password" msgstr "പാസ്‌വേഡ് സ്ഥിരീകരിക്കുക" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/register.cljs:163 msgid "auth.create-demo-account" msgstr "ഡെമോ അക്കൗണ്ട് സൃഷ്ടിക്കുക" #: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#, unused msgid "auth.create-demo-profile" msgstr "ഒന്നുപയോഗിച്ച് നോക്കുന്നോ?" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/login.cljs:43 msgid "auth.demo-warning" msgstr "" "ഇതൊരു ഡെമോ സേവനമാണ്, ഒരു യഥാർത്ഥ ജോലിക്ക് ഉപയോഗിക്കരുത്, പ്രൊജക്റ്റുകൾ " "നിശ്ചിതസമയങ്ങളിൽ മായ്ക്കപ്പെടും." -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:189, src/app/main/ui/viewer/login.cljs:90 msgid "auth.forgot-password" msgstr "പാസ്‌വേഡ് മറന്നോ?" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:254 msgid "auth.fullname" msgstr "മുഴുവൻ പേര്" -#: src/app/main/ui/auth/register.cljs -#, fuzzy +#: src/app/main/ui/auth/register.cljs:155, src/app/main/ui/viewer/login.cljs:107 msgid "auth.login-here" msgstr "ഇവിടെ ലോഗിൻ ചെയ്യുക" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:195 msgid "auth.login-submit" msgstr "ലോഗിൻ" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:222 msgid "auth.login-with-github-submit" msgstr "ഗിറ്റ്ഹബ്ബ്" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:228 msgid "auth.login-with-gitlab-submit" msgstr "ഗിറ്റ്ലാബ്" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:216 msgid "auth.login-with-google-submit" msgstr "ഗൂഗിൾ" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:201 msgid "auth.login-with-ldap-submit" msgstr "LDAP" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:234, src/app/main/ui/auth/login.cljs:255 msgid "auth.login-with-oidc-submit" msgstr "ഓപ്പൺഐഡി" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:71 msgid "auth.new-password" msgstr "പുതിയൊരു പാസ്‌വേഡ് ചേർക്കുക" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:42 msgid "auth.notifications.invalid-token-error" msgstr "റിക്കവറി ടോക്കൺ അസാധുവാണ്." -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:46 msgid "auth.notifications.password-changed-successfully" msgstr "പാസ്‌വേഡ് വിജയകരമായി മാറ്റി" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:57 msgid "auth.notifications.profile-not-verified" msgstr "പ്രൊഫൈൽ സാധൂകരിച്ചിട്ടില്ല, തുടരുന്നതിന് മുൻപ് ദയവായി സാധൂകരിക്കുക." -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:40 msgid "auth.notifications.recovery-token-sent" msgstr "പാസ്‌വേഡ് വീണ്ടെടുപ്പ് കണ്ണി നിങ്ങളുടെ ഇൻബോക്സിലേക്ക് അയച്ചിട്ടുണ്ട്." -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:47 msgid "auth.notifications.team-invitation-accepted" msgstr "വിജയകരമായി സംഘത്തിൽ ചേർന്നു" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:179, src/app/main/ui/auth/register.cljs:115 msgid "auth.password" msgstr "പാസ്‌വേഡ്" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:114 msgid "auth.password-length-hint" msgstr "കുറഞ്ഞത് 8 ക്യാരക്റ്ററുകൾ" +#: src/app/main/ui/auth.cljs:41 msgid "auth.privacy-policy" msgstr "സ്വകാര്യതാനയം" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:88 msgid "auth.recovery-request-submit" msgstr "പാസ്‌വേഡ് വീണ്ടെടുക്കുക" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:101 msgid "auth.recovery-request-subtitle" msgstr "നിർദ്ദേശങ്ങളടങ്ങിയ ഒരു ഇമെയിൽ ഞങ്ങൾ നിങ്ങൾക്ക് അയയ്ക്കും" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:100 msgid "auth.recovery-request-title" msgstr "പാസ്‌വേഡ് മറന്നോ?" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:82 msgid "auth.recovery-submit" msgstr "പാസ്‌വേഡ് മാറ്റുക" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:298, src/app/main/ui/viewer/login.cljs:93 msgid "auth.register" msgstr "ഇതുവരെ അക്കൗണ്ട് ഇല്ലേ?" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:302, src/app/main/ui/auth/register.cljs:121, src/app/main/ui/auth/register.cljs:263, src/app/main/ui/viewer/login.cljs:97 msgid "auth.register-submit" msgstr "അക്കൗണ്ട് സൃഷ്ടിക്കുക" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:140 msgid "auth.register-title" msgstr "അക്കൗണ്ട് സൃഷ്ടിക്കുക" #: src/app/main/ui/auth.cljs +#, unused msgid "auth.sidebar-tagline" msgstr "ഡിസൈനിങിനും പ്രോട്ടോടൈപ്പിങിനുമുള്ള ഓപ്പൺ സോഴ്സ് പ്രതിവിധി." +#: src/app/main/ui/auth.cljs:33, src/app/main/ui/dashboard/sidebar.cljs:1022, src/app/main/ui/workspace/main_menu.cljs:150 msgid "auth.terms-of-service" msgstr "ഉപയോഗനിബന്ധനകൾ" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:297 msgid "auth.verification-email-sent" msgstr "സാധൂകരിക്കാനുള്ള ഇമെയിൽ ഞങ്ങൾ അയച്ചിരിക്കുന്നു" +#: src/app/main/ui/viewer/share_link.cljs:198 msgid "common.share-link.confirm-deletion-link-description" msgstr "" "ഈ കണ്ണി നീക്കം ചെയ്യണമെന്നത് നിങ്ങൾക്ക് തീർച്ചയാണോ? നിങ്ങളത് ചെയ്താൽ, അത് " "ആർക്കും ലഭ്യമല്ലാതാകും" +#: src/app/main/ui/viewer/share_link.cljs:221 msgid "common.share-link.get-link" msgstr "കണ്ണി നേടുക" +#: src/app/main/ui/viewer/share_link.cljs:139 msgid "common.share-link.link-copied-success" msgstr "കണ്ണി വിജയകരമായി പകർത്തി" +#: src/app/main/ui/viewer/share_link.cljs:193 msgid "common.share-link.permissions-hint" msgstr "കണ്ണിയുള്ള ആർക്കും പ്രാപ്യമാകും" +#: src/app/main/ui/viewer/share_link.cljs:183 msgid "common.share-link.placeholder" msgstr "പങ്കുവെക്കാവുന്ന കണ്ണി ഇവിടെ ലഭ്യമാകും" +#: src/app/main/ui/viewer/share_link.cljs:171 msgid "common.share-link.title" msgstr "പ്രോട്ടോടൈപ്പുകൾ പങ്കുവെയ്ക്കുക" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:291, src/app/main/ui/workspace/main_menu.cljs:572 msgid "dashboard.add-shared" msgstr "പങ്കിട്ട ലൈബ്രറിയായി ചേർക്കുക" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:75 msgid "dashboard.change-email" msgstr "ഇമെയിൽ മാറ്റുക" -#: src/app/main/data/dashboard.cljs, src/app/main/data/dashboard.cljs +#: src/app/main/data/dashboard.cljs:762, src/app/main/data/dashboard.cljs:983 msgid "dashboard.copy-suffix" msgstr "(പകർത്തുക)" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:338 msgid "dashboard.create-new-team" msgstr "പുതിയ സംഘം രൂപീകരിക്കുക" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/components/context_menu_a11y.cljs:256, src/app/main/ui/dashboard/sidebar.cljs:646 msgid "dashboard.default-team-name" msgstr "നിങ്ങളുടെ പെൻപോട്ട്" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:571 msgid "dashboard.delete-team" msgstr "സംഘത്തെ നീക്കുക" -#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:276, src/app/main/ui/dashboard/project_menu.cljs:90 msgid "dashboard.duplicate" msgstr "പകർപ്പ്" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:240 msgid "dashboard.duplicate-multi" msgstr "%s ഫയലുകളുടെ പകർപ്പ്" -#: src/app/main/ui/dashboard/grid.cljs +#: src/app/main/ui/dashboard/placeholder.cljs:32 #, markdown msgid "dashboard.empty-placeholder-drafts" msgstr "" @@ -210,19 +219,22 @@ msgstr "" "പരീക്ഷിക്കണമെന്നുണ്ടെങ്കിൽ [ലൈബ്രറികളുടെയും ടെമ്പ്ലേറ്റുകളുടെയും " "വിഭാഗത്തിലേക്ക്] (https://penpot.app/libraries-templates) പോകാവുന്നതാണ്" +#: src/app/main/ui/workspace/main_menu.cljs:605 msgid "dashboard.export-frames" msgstr "ആർട്ട്ബോർഡുകൾ പിഡിഎഫായി എക്സ്പോർട്ട് ചെയ്യുക" -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:201 msgid "dashboard.export-frames.title" msgstr "പിഡിഎഫായി എക്സ്പോർട്ട് ചെയ്യുക" +#, unused msgid "dashboard.export-multi" msgstr "പെൻപോട്ട് %s ഫയലുകൾ എക്സ്പോർട്ട് ചെയ്യുക" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:578 msgid "dashboard.export-shapes" msgstr "എക്സ്പോർട്ട്" +#: src/app/main/ui/export.cljs:427 msgid "dashboard.export.detail" msgstr "* ഘടകങ്ങൾ, ഗ്രാഫിക്സ്, നിറങ്ങൾ അല്ലെങ്കിൽ മുദ്രണകലകൾ എന്നിവ ഉൾപ്പെടാം." diff --git a/frontend/translations/ms.po b/frontend/translations/ms.po index 3e07cb73f4..36e9273f6a 100644 --- a/frontend/translations/ms.po +++ b/frontend/translations/ms.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "PO-Revision-Date: 2024-06-17 08:07+0000\n" "Last-Translator: Anonymous \n" -"Language-Team: Malay \n" +"Language-Team: Malay " +"\n" "Language: ms\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" @@ -11,363 +11,394 @@ msgstr "" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Weblate 5.6-dev\n" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/register.cljs:163 msgid "auth.create-demo-account" msgstr "Cipta akaun demo" #: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#, unused msgid "auth.create-demo-profile" msgstr "Hanya ingin mencubanya?" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/login.cljs:43 msgid "auth.demo-warning" msgstr "" "Ini adalah perkhidmatan DEMO, JANGAN GUNAKAN untuk kerja sebenar, projek " "akan dipadam secara berkala." -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:189, src/app/main/ui/viewer/login.cljs:90 msgid "auth.forgot-password" msgstr "Lupa kata laluan?" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:254 msgid "auth.fullname" msgstr "Nama penuh" -#: src/app/main/ui/auth/register.cljs -#, fuzzy +#: src/app/main/ui/auth/register.cljs:155, src/app/main/ui/viewer/login.cljs:107 msgid "auth.login-here" msgstr "Log masuk disini" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:195 msgid "auth.login-submit" msgstr "Log masuk" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:222 msgid "auth.login-with-github-submit" msgstr "Github" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:228 msgid "auth.login-with-gitlab-submit" msgstr "GitLab" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:216 msgid "auth.login-with-google-submit" msgstr "Google" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:201 msgid "auth.login-with-ldap-submit" msgstr "LDAP" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:234, src/app/main/ui/auth/login.cljs:255 msgid "auth.login-with-oidc-submit" msgstr "OpenID Connect" -#: src/app/main/ui/settings/team-form.cljs, src/app/main/ui/auth/register.cljs, src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/onboarding/team_choice.cljs, src/app/main/ui/settings/access_tokens.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/settings/profile.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/auth/register.cljs:217, src/app/main/ui/dashboard/team_form.cljs:76, src/app/main/ui/onboarding/team_choice.cljs:180, src/app/main/ui/settings/access_tokens.cljs:66, src/app/main/ui/settings/feedback.cljs:34, src/app/main/ui/settings/profile.cljs:45, src/app/main/ui/workspace/sidebar/assets/groups.cljs:108 msgid "auth.name.not-all-space" msgstr "Nama mesti mengandungi beberapa aksara selain ruang." -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/onboarding/team_choice.cljs, src/app/main/ui/settings/access_tokens.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/settings/profile.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/auth/register.cljs:218, src/app/main/ui/dashboard/team_form.cljs:77, src/app/main/ui/onboarding/team_choice.cljs:181, src/app/main/ui/settings/access_tokens.cljs:67, src/app/main/ui/settings/feedback.cljs:33, src/app/main/ui/settings/profile.cljs:44, src/app/main/ui/workspace/sidebar/assets/groups.cljs:109 msgid "auth.name.too-long" msgstr "Nama mesti mengandungi paling banyak 250 aksara." -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:71 msgid "auth.new-password" msgstr "Taip kata laluan baharu" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:42 msgid "auth.notifications.invalid-token-error" msgstr "Token pemulihan adalah tidak sah." -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:46 msgid "auth.notifications.password-changed-successfully" msgstr "Kata laluan berjaya ditukar" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:57 msgid "auth.notifications.profile-not-verified" msgstr "Profil tidak disahkan, sila sahkan profil sebelum meneruskan." -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:40 msgid "auth.notifications.recovery-token-sent" msgstr "Pautan pemulihan kata laluan dihantar ke peti masuk anda." -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:47 msgid "auth.notifications.team-invitation-accepted" msgstr "Berjaya menyertai pasukan" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:179, src/app/main/ui/auth/register.cljs:115 msgid "auth.password" msgstr "Kata laluan" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:114 msgid "auth.password-length-hint" msgstr "Sekurang-kurangnya 8 aksara" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/recovery.cljs:61, src/app/main/ui/auth/recovery.cljs:62, src/app/main/ui/auth/register.cljs:81, src/app/main/ui/settings/password.cljs:75, src/app/main/ui/settings/password.cljs:76, src/app/main/ui/settings/password.cljs:77 msgid "auth.password-not-empty" msgstr "Kata laluan mesti mengandungi beberapa aksara selain daripada ruang." +#: src/app/main/ui/auth.cljs:41 msgid "auth.privacy-policy" msgstr "Dasar privasi" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:88 msgid "auth.recovery-request-submit" msgstr "Pulihkan Kata Laluan" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:101 msgid "auth.recovery-request-subtitle" msgstr "Kami akan menghantar e-mel kepada anda dengan arahan" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:100 msgid "auth.recovery-request-title" msgstr "Lupa kata laluan?" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:82 msgid "auth.recovery-submit" msgstr "Tukar kata laluan anda" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:298, src/app/main/ui/viewer/login.cljs:93 msgid "auth.register" msgstr "Tiada akaun lagi?" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:302, src/app/main/ui/auth/register.cljs:121, src/app/main/ui/auth/register.cljs:263, src/app/main/ui/viewer/login.cljs:97 msgid "auth.register-submit" msgstr "Cipta akaun" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:140 msgid "auth.register-title" msgstr "Cipta akaun" #: src/app/main/ui/auth.cljs +#, unused msgid "auth.sidebar-tagline" msgstr "Penyelesaian sumber terbuka untuk reka bentuk dan prototaip." +#: src/app/main/ui/auth.cljs:33, src/app/main/ui/dashboard/sidebar.cljs:1022, src/app/main/ui/workspace/main_menu.cljs:150 msgid "auth.terms-of-service" msgstr "Syarat perkhidmatan" +#, unused msgid "auth.terms-privacy-agreement" msgstr "" "Apabila membuat akaun baharu, anda bersetuju menerima syarat perkhidmatan " "dan dasar privasi kami." -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:297 msgid "auth.verification-email-sent" msgstr "Kami telah menghantar e-mel pengesahan kepada" #: src/app/main/ui/onboarding/questions.cljs +#, unused msgid "branding-illustrations-marketing-pieces" msgstr "... penjenamaan, ilustrasi, bahagian pemasaran, dll." +#: src/app/main/ui/workspace/libraries.cljs:228 msgid "common.publish" msgstr "Terbitkan" +#: src/app/main/ui/viewer/share_link.cljs:304, src/app/main/ui/viewer/share_link.cljs:314 msgid "common.share-link.all-users" msgstr "Semua pengguna Penpot" +#: src/app/main/ui/viewer/share_link.cljs:198 msgid "common.share-link.confirm-deletion-link-description" msgstr "" "Adakah anda pasti untuk mengalih keluar pautan ini? Jika anda melakukannya, " "ia tidak lagi tersedia untuk sesiapa sahaja" +#: src/app/main/ui/viewer/share_link.cljs:259, src/app/main/ui/viewer/share_link.cljs:289 msgid "common.share-link.current-tag" msgstr "(semasa)" +#: src/app/main/ui/viewer/share_link.cljs:207, src/app/main/ui/viewer/share_link.cljs:214 msgid "common.share-link.destroy-link" msgstr "Musnahkan pautan" +#: src/app/main/ui/viewer/share_link.cljs:221 msgid "common.share-link.get-link" msgstr "Dapatkan pautan" +#: src/app/main/ui/viewer/share_link.cljs:139 msgid "common.share-link.link-copied-success" msgstr "Pautan berjaya disalin" +#: src/app/main/ui/viewer/share_link.cljs:231 msgid "common.share-link.manage-ops" msgstr "Urus kebenaran" +#: src/app/main/ui/viewer/share_link.cljs:277 msgid "common.share-link.page-shared" msgid_plural "common.share-link.page-shared" msgstr[0] "%s halaman dikongsi" +#: src/app/main/ui/viewer/share_link.cljs:298 msgid "common.share-link.permissions-can-comment" msgstr "Boleh komen" +#: src/app/main/ui/viewer/share_link.cljs:308 msgid "common.share-link.permissions-can-inspect" msgstr "Boleh memeriksa kod" +#: src/app/main/ui/viewer/share_link.cljs:193 msgid "common.share-link.permissions-hint" msgstr "Sesiapa yang mempunyai pautan akan mendapat akses" +#: src/app/main/ui/viewer/share_link.cljs:241 msgid "common.share-link.permissions-pages" msgstr "Halaman dikongsi" +#: src/app/main/ui/viewer/share_link.cljs:183 msgid "common.share-link.placeholder" msgstr "Pautan boleh kongsi akan dipaparkan di sini" +#: src/app/main/ui/viewer/share_link.cljs:303, src/app/main/ui/viewer/share_link.cljs:313 msgid "common.share-link.team-members" msgstr "Hanya ahli pasukan" +#: src/app/main/ui/viewer/share_link.cljs:171 msgid "common.share-link.title" msgstr "Kongsi prototaip" +#: src/app/main/ui/viewer/share_link.cljs:269 msgid "common.share-link.view-all" msgstr "Pilih semua" +#: src/app/main/ui/workspace/libraries.cljs:224 msgid "common.unpublish" msgstr "Nyahterbitkan" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:85 msgid "dasboard.team-hero.management" msgstr "Pengurusan pasukan" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:84 msgid "dasboard.team-hero.text" msgstr "" "Penpot dibuat untuk pasukan. Jemput ahli untuk bekerjasama dalam projek dan " "fail" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:82 msgid "dasboard.team-hero.title" msgstr "Berganding bahu!" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.tutorial-hero.info" msgstr "" "Pelajari asas-asas di Penpot sambil berseronok dengan tutorial guna tangan " "ini." #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.tutorial-hero.start" msgstr "Mulakan tutorial" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.tutorial-hero.title" msgstr "Tutorial guna tangan" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.walkthrough-hero.info" msgstr "Terokai Penpot untuk mengetahui lebih lanjut tentang ciri utamanya." #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.walkthrough-hero.start" msgstr "Mulakan jelajah" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.walkthrough-hero.title" msgstr "Panduan Antara Muka" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:115 msgid "dashboard.access-tokens.copied-success" msgstr "Token disalin" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:202 msgid "dashboard.access-tokens.create" msgstr "Jana token baru" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:76 msgid "dashboard.access-tokens.create.success" msgstr "Token capaian berjaya dihasilkan." -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:300 msgid "dashboard.access-tokens.empty.add-one" msgstr "Tekan butang \"Jana token baharu\" untuk menjana token." -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:299 msgid "dashboard.access-tokens.empty.no-access-tokens" msgstr "Anda tidak mempunyai token setakat ini." -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:53 msgid "dashboard.access-tokens.errors-required-name" msgstr "Nama diperlukan" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:147 msgid "dashboard.access-tokens.expiration-180-days" msgstr "180 hari" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:144 msgid "dashboard.access-tokens.expiration-30-days" msgstr "30 hari" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:145 msgid "dashboard.access-tokens.expiration-60-days" msgstr "60 hari" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:146 msgid "dashboard.access-tokens.expiration-90-days" msgstr "90 hari" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:143 msgid "dashboard.access-tokens.expiration-never" msgstr "Tidak pernah" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:282 msgid "dashboard.access-tokens.expired-on" msgstr "Luput pada %s" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:283 msgid "dashboard.access-tokens.expires-on" msgstr "Tamat tempoh pada %s" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:281 msgid "dashboard.access-tokens.no-expiration" msgstr "Tiada tarikh tamat tempoh" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:197 msgid "dashboard.access-tokens.personal" msgstr "Token capaian peribadi" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:198 msgid "dashboard.access-tokens.personal.description" msgstr "" "Token capaian peribadi berfungsi seperti alternatif kepada sistem " "pengesahan log masuk/kata laluan kami dan boleh digunakan untuk membenarkan " "aplikasi mengakses API dalaman Penpot" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:154 msgid "dashboard.access-tokens.token-will-expire" msgstr "Token akan luput pada %s" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:155 msgid "dashboard.access-tokens.token-will-not-expire" msgstr "Token tidak mempunyai tarikh luput" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:291, src/app/main/ui/workspace/main_menu.cljs:572 msgid "dashboard.add-shared" msgstr "Tambahkan sebagai Perpustakaan kongsi" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:75 msgid "dashboard.change-email" msgstr "tukar e-mel" -#: src/app/main/data/dashboard.cljs, src/app/main/data/dashboard.cljs +#: src/app/main/data/dashboard.cljs:762, src/app/main/data/dashboard.cljs:983 msgid "dashboard.copy-suffix" msgstr "(salin)" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:338 msgid "dashboard.create-new-team" msgstr "Buat pasukan baharu" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/components/context_menu_a11y.cljs:256, src/app/main/ui/dashboard/sidebar.cljs:646 msgid "dashboard.default-team-name" msgstr "Penpot anda" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:571 msgid "dashboard.delete-team" msgstr "Padam pasukan" +#: src/app/main/ui/dashboard/file_menu.cljs:296, src/app/main/ui/workspace/main_menu.cljs:589 msgid "dashboard.download-binary-file" msgstr "Muat turun fail Penpot (.penpot)" +#: src/app/main/ui/dashboard/file_menu.cljs:300, src/app/main/ui/workspace/main_menu.cljs:597 msgid "dashboard.download-standard-file" msgstr "Muat turun fail standard (.svg + .json)" -#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:276, src/app/main/ui/dashboard/project_menu.cljs:90 msgid "dashboard.duplicate" msgstr "Pendua" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:240 msgid "dashboard.duplicate-multi" msgstr "Pendua %s fail" -#: src/app/main/ui/dashboard/grid.cljs +#: src/app/main/ui/dashboard/placeholder.cljs:32 #, markdown msgid "dashboard.empty-placeholder-drafts" msgstr "" @@ -375,98 +406,114 @@ msgstr "" "kongsi fail anda atau tambahkan daripada [Perpustakaan & " "templat](https://penpot.app/libraries-templates) kami." +#: src/app/main/ui/dashboard/file_menu.cljs:249 msgid "dashboard.export-binary-multi" msgstr "Muat turun %s fail Penpot (.penpot)" +#: src/app/main/ui/workspace/main_menu.cljs:605 msgid "dashboard.export-frames" msgstr "Eksport papan sebagai PDF" -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:201 msgid "dashboard.export-frames.title" msgstr "Eksport sebagai PDF" +#, unused msgid "dashboard.export-multi" msgstr "Eksport fail Penpot %s" -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:109 msgid "dashboard.export-multiple.selected" msgstr "%s daripada %s elemen dipilih" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:578 msgid "dashboard.export-shapes" msgstr "Eksport" -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:180 msgid "dashboard.export-shapes.how-to" msgstr "" "Anda boleh menambah tetapan eksport ke elemen daripada sifat reka bentuk " "(di bahagian bawah bar sisi kanan)." -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:184 msgid "dashboard.export-shapes.how-to-link" msgstr "Maklumat cara untuk menetapkan eksport di Penpot." -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:179 msgid "dashboard.export-shapes.no-elements" msgstr "Tiada unsur dengan tetapan eksport." -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:190 msgid "dashboard.export-shapes.title" msgstr "Eksport Pemilihan" +#: src/app/main/ui/dashboard/file_menu.cljs:252 msgid "dashboard.export-standard-multi" msgstr "Muat turun %s fail standard (.svg + .json)" +#: src/app/main/ui/export.cljs:427 msgid "dashboard.export.detail" msgstr "* Mungkin termasuk komponen, grafik, warna dan/atau tipografi." +#: src/app/main/ui/export.cljs:426 msgid "dashboard.export.explain" msgstr "" "Satu atau lebih fail yang anda ingin eksport menggunakan perpustakaan " "kongsi. Apa yang anda mahu lakukan dengan aset mereka*?" +#: src/app/main/ui/export.cljs:435 msgid "dashboard.export.options.all.message" msgstr "" "fail dengan perpustakaan kongsi akan disertakan dalam eksport, mengekalkan " "hubungannya." +#: src/app/main/ui/export.cljs:436 msgid "dashboard.export.options.all.title" msgstr "Eksport perpustakaan kongsi" +#: src/app/main/ui/export.cljs:437 msgid "dashboard.export.options.detach.message" msgstr "" "Perpustakaan kongsi tidak akan disertakan dalam eksport dan tiada aset akan " "ditambahkan ke perpustakaan. " +#: src/app/main/ui/export.cljs:438 msgid "dashboard.export.options.detach.title" msgstr "Anggap aset perpustakaan kongsi sebagai objek asas" +#: src/app/main/ui/export.cljs:439 msgid "dashboard.export.options.merge.message" msgstr "" "Fail anda akan dieksport dengan semua aset luaran digabungkan ke dalam " "pustaka fail." +#: src/app/main/ui/export.cljs:440 msgid "dashboard.export.options.merge.title" msgstr "Sertakan aset perpustakaan kongsi dalam pustaka fail" +#: src/app/main/ui/export.cljs:418 msgid "dashboard.export.title" msgstr "Eksport fail" +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:309 msgid "dashboard.fonts.deleted-placeholder" msgstr "Fon hilang" -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:206 msgid "dashboard.fonts.dismiss-all" msgstr "Tolak semua" +#: src/app/main/ui/dashboard/fonts.cljs:436 msgid "dashboard.fonts.empty-placeholder" msgstr "Fon tersuai yang anda muat naik akan dipaparkan di sini." -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:194 msgid "dashboard.fonts.fonts-added" msgid_plural "dashboard.fonts.fonts-added" msgstr[0] "%s fon ditambah" +#: src/app/main/ui/dashboard/fonts.cljs:170 #, markdown msgid "dashboard.fonts.hero-text1" msgstr "" @@ -476,6 +523,7 @@ msgstr "" "tunggal**. Anda boleh memuat naik fon dengan format berikut: **TTF, OTF dan " "WOFF** (hanya satu sahaja diperlukan)." +#: src/app/main/ui/dashboard/fonts.cljs:182 #, markdown msgid "dashboard.fonts.hero-text2" msgstr "" @@ -485,10 +533,11 @@ msgstr "" "juga mungkin ingin membaca tentang [pelesenan " "fon](https://www.typography.com/faq)." -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:202 msgid "dashboard.fonts.upload-all" msgstr "Muat naik semua" +#: src/app/main/ui/dashboard/fonts.cljs:187 #, markdown msgid "dashboard.fonts.warning-text" msgstr "" @@ -499,2156 +548,2414 @@ msgstr "" "menggunakan [Transfonter](https://transfonter.org/) untuk menjana fon web " "dan membetulkan ralat. " +#: src/app/main/ui/dashboard/import.cljs:472, src/app/main/ui/dashboard/project_menu.cljs:108 msgid "dashboard.import" msgstr "Import fail Penpot" +#: src/app/main/ui/dashboard/import.cljs:304, src/app/worker/import.cljs:753, src/app/worker/import.cljs:755 msgid "dashboard.import.analyze-error" msgstr "Alamak! Kami tidak dapat mengimport fail ini" +#, unused msgid "dashboard.import.analyze-error.components-v2" msgstr "" "Fail dengan komponen v2 diaktifkan tetapi pasukan ini belum menyokongnya " "lagi." +#: src/app/main/ui/dashboard/import.cljs:308 msgid "dashboard.import.import-error" msgstr "Terdapat masalah mengimport fail. Fail tidak diimport." +#: src/app/main/ui/dashboard/import.cljs:493 msgid "dashboard.import.import-message" msgid_plural "dashboard.import.import-message" msgstr[0] "%s fail telah berjaya diimport." +#: src/app/main/ui/dashboard/import.cljs:481, src/app/main/ui/dashboard/import.cljs:488 msgid "dashboard.import.import-warning" msgstr "Sesetengah fail mengandungi objek tidak sah telah dialih keluar." +#: src/app/main/ui/dashboard/import.cljs:144 msgid "dashboard.import.progress.process-colors" msgstr "memproses warna" +#: src/app/main/ui/dashboard/import.cljs:153 msgid "dashboard.import.progress.process-components" msgstr "Memproses komponen" +#: src/app/main/ui/dashboard/import.cljs:150 msgid "dashboard.import.progress.process-media" msgstr "Memproses media" +#: src/app/main/ui/dashboard/import.cljs:141 msgid "dashboard.import.progress.process-page" msgstr "Memproses halaman: %s" +#: src/app/main/ui/dashboard/import.cljs:147 msgid "dashboard.import.progress.process-typographies" msgstr "Memproses tipografi" +#: src/app/main/ui/dashboard/import.cljs:135 msgid "dashboard.import.progress.upload-data" msgstr "Memuat naik data ke pelayan (%s/%s)" +#: src/app/main/ui/dashboard/import.cljs:138 msgid "dashboard.import.progress.upload-media" msgstr "Memuat naik fail: %s" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:109 msgid "dashboard.invite-profile" msgstr "Jemput orang ramai" -#: src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:547, src/app/main/ui/dashboard/sidebar.cljs:556, src/app/main/ui/dashboard/sidebar.cljs:563, src/app/main/ui/dashboard/team.cljs:312 msgid "dashboard.leave-team" msgstr "Tinggalkan pasukan" +#: src/app/main/ui/dashboard/templates.cljs:88, src/app/main/ui/dashboard/templates.cljs:163 msgid "dashboard.libraries-and-templates" msgstr "Perpustakaan & Templat" +#: src/app/main/ui/dashboard/templates.cljs:164 msgid "dashboard.libraries-and-templates.explore" msgstr "Terokai lebih banyak daripada mereka dan ketahui cara untuk menyumbang" +#: src/app/main/ui/dashboard/import.cljs:365 msgid "dashboard.libraries-and-templates.import-error" msgstr "Terdapat masalah mengimport templat. Templat tidak diimport." -#: src/app/main/ui/dashboard/libraries.cljs +#: src/app/main/ui/dashboard/libraries.cljs:53 msgid "dashboard.libraries-title" msgstr "Perpustakaan" -#: src/app/main/ui/dashboard/grid.cljs +#: src/app/main/ui/dashboard/placeholder.cljs:45 msgid "dashboard.loading-files" msgstr "memuatkan fail anda…" +#: src/app/main/ui/dashboard/fonts.cljs:431 msgid "dashboard.loading-fonts" msgstr "memuatkan fon anda…" -#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:281, src/app/main/ui/dashboard/project_menu.cljs:100 msgid "dashboard.move-to" msgstr "Berpindah ke" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:245 msgid "dashboard.move-to-multi" msgstr "Pindahkan fail %s ke" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:226 msgid "dashboard.move-to-other-team" msgstr "Pindah ke pasukan lain" -#: src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/files.cljs +#: src/app/main/ui/dashboard/files.cljs:105, src/app/main/ui/dashboard/projects.cljs:252, src/app/main/ui/dashboard/projects.cljs:253 msgid "dashboard.new-file" msgstr "+ Fail Baharu" -#: src/app/main/data/dashboard.cljs +#: src/app/main/data/dashboard.cljs:958, src/app/main/data/dashboard.cljs:1181 msgid "dashboard.new-file-prefix" msgstr "Fail Baharu" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:55 msgid "dashboard.new-project" msgstr "+ Projek baharu" -#: src/app/main/data/dashboard.cljs +#: src/app/main/data/dashboard.cljs:726, src/app/main/data/dashboard.cljs:1184 msgid "dashboard.new-project-prefix" msgstr "Projek Baharu" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:60 msgid "dashboard.no-matches-for" msgstr "Tiada padanan ditemui untuk \"%s\"" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:827 msgid "dashboard.no-projects-placeholder" msgstr "Projek yang disemat akan muncul di sini" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:33 msgid "dashboard.notifications.email-changed-successfully" msgstr "Alamat e-mel anda telah berjaya dikemas kini" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:27 msgid "dashboard.notifications.email-verified-successfully" msgstr "Alamat e-mel anda telah berjaya disahkan" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:37 msgid "dashboard.notifications.password-saved" msgstr "Kata laluan berjaya disimpan!" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1081 msgid "dashboard.num-of-members" msgstr "%s ahli" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:267 msgid "dashboard.open-in-new-tab" msgstr "Buka fail dalam tab baharu" +#: src/app/main/ui/dashboard/files.cljs:117, src/app/main/ui/dashboard/projects.cljs:260, src/app/main/ui/dashboard/projects.cljs:261 msgid "dashboard.options" msgstr "Pilihan" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:106, src/app/main/ui/settings/password.cljs:119 msgid "dashboard.password-change" msgstr "Tukar kata laluan" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/pin_button.cljs:24, src/app/main/ui/dashboard/project_menu.cljs:95 msgid "dashboard.pin-unpin" msgstr "Semat/Nyahsemat" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:51 msgid "dashboard.projects-title" msgstr "Projek" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:86 msgid "dashboard.remove-account" msgstr "Mahu mengalih keluar akaun anda?" #: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "dashboard.remove-shared" msgstr "Alih keluar sebagai Pustaka Dikongsi" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:78 msgid "dashboard.save-settings" msgstr "Simpan tetapan" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:246, src/app/main/ui/dashboard/sidebar.cljs:247 msgid "dashboard.search-placeholder" msgstr "Cari…" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:55 msgid "dashboard.searching-for" msgstr "Mencari \"%s\"…" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:56 msgid "dashboard.select-ui-language" msgstr "Pilih Bahasa UI" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:63 msgid "dashboard.select-ui-theme" msgstr "Pilih tema" -#: src/app/main/ui/dashboard/grid.cljs +#: src/app/main/ui/dashboard/projects.cljs:282 msgid "dashboard.show-all-files" msgstr "Tunjukkan semua fail" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:96 msgid "dashboard.success-delete-file" msgid_plural "dashboard.success-delete-file" msgstr[0] "Fail anda telah berjaya dipadamkan" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:59 msgid "dashboard.success-delete-project" msgstr "Projek anda telah berjaya dipadamkan" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:91 msgid "dashboard.success-duplicate-file" msgid_plural "dashboard.success-delete-file" msgstr[0] "Fail anda telah berjaya dibuat pendua" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:33 msgid "dashboard.success-duplicate-project" msgstr "Projek anda telah berjaya dibuat pendua" -#: src/app/main/ui/dashboard/grid.cljs, src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:130, src/app/main/ui/dashboard/grid.cljs:558, src/app/main/ui/dashboard/sidebar.cljs:152 msgid "dashboard.success-move-file" msgstr "Fail anda berjaya dialihkan" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:129 msgid "dashboard.success-move-files" msgstr "Fail anda telah berjaya dialihkan" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:54 msgid "dashboard.success-move-project" msgstr "Projek anda berjaya dialihkan" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1052 msgid "dashboard.team-info" msgstr "Maklumat pasukan" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1070 msgid "dashboard.team-members" msgstr "Anggota kumpulan" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1085 msgid "dashboard.team-projects" msgstr "Projek pasukan" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:61 msgid "dashboard.theme-change" msgstr "Tema UI" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:42 msgid "dashboard.title-search" msgstr "Hasil carian" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:50 msgid "dashboard.type-something" msgstr "Taip untuk hasil carian" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:287, src/app/main/ui/workspace/main_menu.cljs:566 msgid "dashboard.unpublish-shared" msgstr "Nyahterbit Perpustakaan" -#: src/app/main/ui/settings/password.cljs, src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:71 msgid "dashboard.update-settings" msgstr "Kemas kini tetapan" +#: src/app/main/ui/dashboard/team.cljs:861 msgid "dashboard.webhooks.active" msgstr "Adalah aktif" +#: src/app/main/ui/dashboard/team.cljs:862 msgid "dashboard.webhooks.active.explain" msgstr "Apabila cangkuk ini dicetuskan, butiran peristiwa akan dihantar" +#: src/app/main/ui/dashboard/team.cljs:852 msgid "dashboard.webhooks.content-type" msgstr "Jenis kandungan" +#: src/app/main/ui/dashboard/team.cljs:885 msgid "dashboard.webhooks.create" msgstr "Cipta webhook" +#: src/app/main/ui/dashboard/team.cljs:775 msgid "dashboard.webhooks.create.success" msgstr "Webhook berjaya dihasilkan." +#: src/app/main/ui/dashboard/team.cljs:882 msgid "dashboard.webhooks.description" msgstr "" "Webhooks adalah cara mudah untuk membolehkan tapak web dan apl lain " "dimaklumkan apabila acara tertentu berlaku di Penpot. Kami akan menghantar " "permintaan POST ke setiap URL yang anda berikan." +#: src/app/main/ui/dashboard/team.cljs:1005 msgid "dashboard.webhooks.empty.add-one" msgstr "Tekan butang \"Tambah webhook\" untuk menambahnya." +#: src/app/main/ui/dashboard/team.cljs:1004 msgid "dashboard.webhooks.empty.no-webhooks" msgstr "Tiada webhook dibuat setakat ini." +#, unused msgid "dashboard.webhooks.update.success" msgstr "Webhook berjaya dikemas kini." -#: src/app/main/ui/settings.cljs +#: src/app/main/ui/settings.cljs:31 msgid "dashboard.your-account-title" msgstr "Akaun anda" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:70 msgid "dashboard.your-email" msgstr "E-mel" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:62 msgid "dashboard.your-name" msgstr "Nama anda" -#: src/app/main/ui/dashboard/search.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/libraries.cljs, src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:38, src/app/main/ui/dashboard/fonts.cljs:33, src/app/main/ui/dashboard/libraries.cljs:42, src/app/main/ui/dashboard/projects.cljs:318, src/app/main/ui/dashboard/search.cljs:30, src/app/main/ui/dashboard/sidebar.cljs:312, src/app/main/ui/dashboard/team.cljs:495, src/app/main/ui/dashboard/team.cljs:729, src/app/main/ui/dashboard/team.cljs:991, src/app/main/ui/dashboard/team.cljs:1038 msgid "dashboard.your-penpot" msgstr "Penpot anda" -#: src/app/main/ui/alert.cljs +#: src/app/main/ui/alert.cljs:32 msgid "ds.alert-ok" msgstr "Ok" -#: src/app/main/ui/alert.cljs +#: src/app/main/ui/alert.cljs:31, src/app/main/ui/alert.cljs:34 msgid "ds.alert-title" msgstr "Perhatian" -#: src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:83 msgid "ds.component-subtitle" msgstr "Komponen untuk dikemas kini:" -#: src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:36, src/app/main/ui/workspace/plugins.cljs:246 msgid "ds.confirm-cancel" msgstr "Batal" -#: src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:37, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:141 msgid "ds.confirm-ok" msgstr "Ok" -#: src/app/main/ui/confirm.cljs, src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:35, src/app/main/ui/confirm.cljs:39 msgid "ds.confirm-title" msgstr "Adakah anda pasti?" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:62 msgid "errors.auth-provider-not-configured" msgstr "Pembekal pengesahan tidak dikonfigurasikan." +#: src/app/main/errors.cljs:104 msgid "errors.auth.unable-to-login" msgstr "Nampaknya anda belum disahkan atau sesi telah tamat tempoh." +#: src/app/main/data/fonts.cljs:189 msgid "errors.bad-font" msgstr "Fon %s tidak dapat dimuatkan" +#: src/app/main/data/fonts.cljs:188 msgid "errors.bad-font-plural" msgstr "Fon %s tidak dapat dimuatkan" +#: src/app/main/data/workspace/media.cljs:198 msgid "errors.cannot-upload" msgstr "Tidak boleh memuat naik fail media." -#: src/app/main/data/workspace.cljs +#: src/app/main/data/workspace.cljs:1598 msgid "errors.clipboard-not-implemented" msgstr "Pelayar anda tidak dapat melakukan operasi ini" -#: src/app/main/ui/auth/verify_token.cljs, src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/auth/verify_token.cljs:82, src/app/main/ui/settings/change_email.cljs:46 msgid "errors.email-already-exists" msgstr "E-mel sudah digunakan" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:87 msgid "errors.email-already-validated" msgstr "E-mel sudah disahkan." +#: src/app/main/ui/settings/password.cljs:28 msgid "errors.email-as-password" msgstr "Anda tidak boleh menggunakan e-mel sebagai kata laluan" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/settings/change_email.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/auth/recovery_request.cljs:63, src/app/main/ui/dashboard/team.cljs:578, src/app/main/ui/settings/change_email.cljs:54 msgid "errors.email-has-permanent-bounces" msgstr "E-mel «%s» mempunyai banyak laporan lantunan kekal." -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs, src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/login.cljs:81, src/app/main/ui/auth/recovery_request.cljs:31, src/app/main/ui/auth/register.cljs:43 msgid "errors.email-invalid" msgstr "Sila masukkan e-mel yang sah" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:35 msgid "errors.email-invalid-confirmation" msgstr "E-mel pengesahan mesti sepadan" +#: src/app/main/ui/dashboard/team.cljs:170 msgid "errors.email-spam-or-permanent-bounces" msgstr "E-mel «%s» telah dilaporkan sebagai spam atau melantun secara kekal." -#: src/app/main/errors.cljs +#: src/app/main/errors.cljs:227 msgid "errors.feature-mismatch" msgstr "" "Nampaknya anda sedang membuka fail yang mendayakan ciri '%s' tetapi versi " "penpot semasa tidak menyokongnya atau menyahdayakannya." -#: src/app/main/errors.cljs +#: src/app/main/errors.cljs:231, src/app/main/errors.cljs:245 msgid "errors.feature-not-supported" msgstr "Ciri '%s' tidak disokong." -#: src/app/main/errors.cljs +#: src/app/main/errors.cljs:223 msgid "errors.file-feature-mismatch" msgstr "" "Nampaknya terdapat ketidakpadanan antara ciri yang didayakan dan ciri fail " "yang anda cuba buka. Migrasi untuk '%s' perlu digunakan sebelum fail boleh " "dibuka." -#: src/app/main/ui/auth/verify_token.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/data/users.cljs:709, src/app/main/ui/auth/login.cljs:65, src/app/main/ui/auth/login.cljs:116, src/app/main/ui/auth/register.cljs:69, src/app/main/ui/auth/register.cljs:237, src/app/main/ui/auth/verify_token.cljs:92, src/app/main/ui/dashboard/team.cljs:173, src/app/main/ui/onboarding/team_choice.cljs:95, src/app/main/ui/settings/access_tokens.cljs:91, src/app/main/ui/settings/feedback.cljs:52 msgid "errors.generic" msgstr "Sesuatu yang tidak kena telah berlaku." -#: src/app/main/ui/components/color_input.cljs +#: src/app/main/ui/components/color_input.cljs:57 msgid "errors.invalid-color" msgstr "Warna tidak sah" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/static.cljs:43 msgid "errors.invite-invalid" msgstr "Jemputan tidak sah" +#: src/app/main/ui/static.cljs:44 msgid "errors.invite-invalid.info" msgstr "Jemputan ini mungkin dibatalkan atau mungkin tamat tempoh." -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:101 msgid "errors.ldap-disabled" msgstr "Pengesahan LDAP dilumpuhkan." -#: src/app/main/errors.cljs +#: src/app/main/errors.cljs:239 msgid "errors.max-quote-reached" msgstr "Anda telah mencapai petikan '%s'. Hubungi sokongan." -#: src/app/main/data/workspace/persistence.cljs +#: src/app/main/data/workspace/media.cljs:184 msgid "errors.media-too-large" msgstr "Imej terlalu besar untuk dimasukkan." -#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs +#: src/app/main/data/media.cljs:68, src/app/main/data/workspace/media.cljs:187 msgid "errors.media-type-mismatch" msgstr "Nampaknya kandungan imej tidak sepadan dengan sambungan fail." -#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/workspace/persistence.cljs, src/app/main/data/workspace/persistence.cljs, src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs +#: src/app/main/data/media.cljs:65, src/app/main/data/workspace/media.cljs:172, src/app/main/data/workspace/media.cljs:175, src/app/main/data/workspace/media.cljs:178, src/app/main/data/workspace/media.cljs:181 msgid "errors.media-type-not-allowed" msgstr "Nampaknya ini bukan imej yang sah." -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:574 msgid "errors.member-is-muted" msgstr "" "Profil yang anda jemput mempunyai e-mel yang diredamkan (laporan spam atau " "lantunan tinggi)." -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:61 msgid "errors.password-invalid-confirmation" msgstr "Kata laluan pengesahan mesti sepadan" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:64 msgid "errors.password-too-short" msgstr "Kata laluan hendaklah sekurang-kurangnya 8 aksara" +#: src/app/main/errors.cljs:124 msgid "errors.paste-data-validation" msgstr "Data tidak sah dalam papan klip" +#: src/app/main/data/users.cljs:703, src/app/main/ui/auth/login.cljs:97, src/app/main/ui/auth/login.cljs:105 msgid "errors.profile-blocked" msgstr "Profil disekat" -#: src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/settings/change_email.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/auth/recovery_request.cljs:60, src/app/main/ui/dashboard/team.cljs:164, src/app/main/ui/dashboard/team.cljs:570, src/app/main/ui/settings/change_email.cljs:50 msgid "errors.profile-is-muted" msgstr "" "Profil anda mempunyai e-mel yang diredamkan (laporan spam atau lantunan " "tinggi)." -#: src/app/main/ui/auth/register.cljs +#: src/app/main/data/users.cljs:701, src/app/main/ui/auth/register.cljs:60 msgid "errors.registration-disabled" msgstr "Pendaftaran dilumpuhkan pada masa ini." -#: src/app/main/errors.cljs +#: src/app/main/errors.cljs:218 msgid "errors.team-feature-mismatch" msgstr "Ciri tidak serasi '%s' dikesan" +#: src/app/main/ui/dashboard/sidebar.cljs:365, src/app/main/ui/dashboard/team.cljs:359 msgid "errors.team-leave.insufficient-members" msgstr "" "Ahli tidak mencukupi untuk meninggalkan pasukan, anda mungkin mahu " "memadamkannya." +#: src/app/main/ui/dashboard/sidebar.cljs:368, src/app/main/ui/dashboard/team.cljs:362 msgid "errors.team-leave.member-does-not-exists" msgstr "Ahli yang anda cuba tetapkan tidak wujud." +#: src/app/main/ui/dashboard/sidebar.cljs:371, src/app/main/ui/dashboard/team.cljs:365 msgid "errors.team-leave.owner-cant-leave" msgstr "" "Pemilik tidak boleh meninggalkan pasukan, anda mesti menetapkan semula " "peranan pemilik." -#: src/app/main/data/media.cljs, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs +#: src/app/main/data/media.cljs:71 msgid "errors.unexpected-error" msgstr "Ralat yang tidak dijangka berlaku." -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:60 msgid "errors.unexpected-token" msgstr "Token tidak diketahui" +#, unused msgid "errors.validation" msgstr "Ralat Pengesahan" -#: src/app/main/errors.cljs +#: src/app/main/errors.cljs:235 msgid "errors.version-not-supported" msgstr "Fail mempunyai nombor versi yang tidak serasi" +#: src/app/main/ui/dashboard/team.cljs:796 msgid "errors.webhooks.connection" msgstr "Ralat sambungan, URL tidak dapat dicapai" +#: src/app/main/ui/dashboard/team.cljs:790 msgid "errors.webhooks.invalid-uri" msgstr "URL tidak lulus pengesahan." -#, fuzzy +#: src/app/main/ui/dashboard/team.cljs:949 msgid "errors.webhooks.last-delivery" msgstr "Penghantaran terakhir tidak berjaya." +#: src/app/main/ui/dashboard/team.cljs:792, src/app/main/ui/dashboard/team.cljs:952 msgid "errors.webhooks.ssl-validation" msgstr "Ralat pada pengesahan SSL." +#: src/app/main/ui/dashboard/team.cljs:794 msgid "errors.webhooks.timeout" msgstr "Masa tamat" +#: src/app/main/ui/dashboard/team.cljs:788 msgid "errors.webhooks.unexpected" msgstr "Ralat yang tidak dijangka semasa mengesahkan" +#: src/app/main/ui/dashboard/team.cljs:798, src/app/main/ui/dashboard/team.cljs:955 msgid "errors.webhooks.unexpected-status" msgstr "Status tidak dijangka %s" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:109, src/app/main/ui/auth/login.cljs:113 msgid "errors.wrong-credentials" msgstr "E-mel atau kata laluan tidak betul." -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:25 msgid "errors.wrong-old-password" msgstr "Kata laluan lama tidak betul" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:77 msgid "feedback.description" msgstr "Penerangan" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:95 msgid "feedback.discourse-go-to" msgstr "Pergi ke forum Penpot" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:89 msgid "feedback.discourse-subtitle1" msgstr "" "Kami berbesar hati anda berada disini. Jika anda memerlukan bantuan, sila " "cari sebelum anda menyiarkan siaran baharu." -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:88 msgid "feedback.discourse-title" msgstr "Komuniti Penpot" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:72 msgid "feedback.subject" msgstr "Subjek" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:69 msgid "feedback.subtitle" msgstr "" "Sila terangkan sebab e-mel anda, nyatakan sama ada isu, idea atau keraguan. " "Seorang ahli pasukan kami akan menjawab secepat mungkin." -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:68 msgid "feedback.title" msgstr "E-mel" -#: src/app/main/ui/settings/feedback.cljs -#, fuzzy +#: src/app/main/ui/settings/feedback.cljs:105 msgid "feedback.twitter-go-to" msgstr "Pergi ke Twitter" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:99 msgid "feedback.twitter-subtitle1" msgstr "Kami di sini untuk membantu dengan pertanyaan teknikal anda." -#: src/app/main/ui/settings/feedback.cljs -#, fuzzy +#: src/app/main/ui/settings/feedback.cljs:98 msgid "feedback.twitter-title" msgstr "Akaun sokongan Twitter" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:30 msgid "generic.error" msgstr "Ralat telah berlaku" -#: src/app/main/ui/inspect/attributes/blur.cljs +#: src/app/main/ui/viewer/inspect/attributes/blur.cljs:26 msgid "inspect.attributes.blur" msgstr "Kabur" -#: src/app/main/ui/inspect/attributes/blur.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:115 msgid "inspect.attributes.blur.value" msgstr "Nilai" -#: src/app/main/ui/inspect/attributes/common.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:112 msgid "inspect.attributes.color.hex" msgstr "HEX" -#: src/app/main/ui/inspect/attributes/common.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:114 msgid "inspect.attributes.color.hsla" msgstr "HSLA" -#: src/app/main/ui/inspect/attributes/common.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:113 msgid "inspect.attributes.color.rgba" msgstr "RGBA" -#: src/app/main/ui/inspect/attributes/fill.cljs +#: src/app/main/ui/viewer/inspect/attributes/fill.cljs:57 msgid "inspect.attributes.fill" msgstr "Isi" -#: src/app/main/ui/inspect/attributes/image.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:99, src/app/main/ui/viewer/inspect/attributes/image.cljs:51 msgid "inspect.attributes.image.download" msgstr "Muat turun sumber gambar" -#: src/app/main/ui/inspect/attributes/image.cljs +#: src/app/main/ui/viewer/inspect/attributes/image.cljs:39 msgid "inspect.attributes.image.height" msgstr "Tinggi" -#: src/app/main/ui/inspect/attributes/image.cljs +#: src/app/main/ui/viewer/inspect/attributes/image.cljs:32 msgid "inspect.attributes.image.width" msgstr "Lebar" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout" msgstr "Susun atur" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.height" msgstr "Tinggi" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.left" msgstr "kiri" #: src/app/main/ui/inspect/attributes/layout.cljs, src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.radius" msgstr "Jejari" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.rotation" msgstr "Putaran" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.top" msgstr "Atas" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.width" msgstr "Lebar" -#: src/app/main/ui/inspect/attributes/shadow.cljs +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:57 msgid "inspect.attributes.shadow" msgstr "Bayang" -#: src/app/main/ui/inspect/attributes/layout.cljs +#: src/app/main/ui/viewer/inspect/attributes/geometry.cljs:40 msgid "inspect.attributes.size" msgstr "Ukuran dan kedudukan" -#: src/app/main/ui/inspect/attributes/stroke.cljs -#, fuzzy +#: src/app/main/ui/viewer/inspect/attributes/stroke.cljs:52 msgid "inspect.attributes.stroke" msgstr "Gurisan" -#, permanent +#, permanent, unused msgid "inspect.attributes.stroke.alignment.center" msgstr "Tengah" -#, permanent +#, permanent, unused msgid "inspect.attributes.stroke.alignment.inner" msgstr "Dalam" -#, permanent +#, permanent, unused msgid "inspect.attributes.stroke.alignment.outer" msgstr "Luar" +#, unused msgid "inspect.attributes.stroke.style.dotted" msgstr "Bertitik" +#, unused msgid "inspect.attributes.stroke.style.mixed" msgstr "bercampur" +#, unused msgid "inspect.attributes.stroke.style.none" msgstr "Tiada" +#, unused msgid "inspect.attributes.stroke.style.solid" msgstr "Padu" #: src/app/main/ui/inspect/attributes/stroke.cljs +#, unused msgid "inspect.attributes.stroke.width" msgstr "Lebar" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:81, src/app/main/ui/viewer/inspect/attributes/text.cljs:194 msgid "inspect.attributes.typography" msgstr "Tipografi" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:89 msgid "inspect.attributes.typography.font-family" msgstr "Keluarga Fon" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:107 msgid "inspect.attributes.typography.font-size" msgstr "Saiz huruf" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:98 msgid "inspect.attributes.typography.font-style" msgstr "Gaya Huruf" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:116 msgid "inspect.attributes.typography.font-weight" msgstr "Berat Huruf" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:134 msgid "inspect.attributes.typography.letter-spacing" msgstr "Jarak Huruf" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:125 msgid "inspect.attributes.typography.line-height" msgstr "Tinggi Garis" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:143 msgid "inspect.attributes.typography.text-decoration" msgstr "Hiasan Teks" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:145 msgid "inspect.attributes.typography.text-decoration.none" msgstr "Tiada" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:146 msgid "inspect.attributes.typography.text-decoration.strikethrough" msgstr "Tembus" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:147 msgid "inspect.attributes.typography.text-decoration.underline" msgstr "Garis bawah" -#: src/app/main/ui/inspect/attributes/text.cljs -#, fuzzy +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:156 msgid "inspect.attributes.typography.text-transform" msgstr "Transformasian Teks" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:158 msgid "inspect.attributes.typography.text-transform.lowercase" msgstr "Huruf Kecil" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:159 msgid "inspect.attributes.typography.text-transform.none" msgstr "Tiada" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:160 msgid "inspect.attributes.typography.text-transform.titlecase" msgstr "Huruf Tajuk" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:162 msgid "inspect.attributes.typography.text-transform.unset" msgstr "Nyahset" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:161 msgid "inspect.attributes.typography.text-transform.uppercase" msgstr "Huruf Besar" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:140 msgid "inspect.empty.help" msgstr "" "Jika anda ingin mengetahui lebih lanjut tentang pemeriksaan reka bentuk, " "lawati pusat bantuan Penpot" -#, fuzzy +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:143 msgid "inspect.empty.more-info" msgstr "Maklumat lanjut tentang inspect" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:135 msgid "inspect.empty.select" msgstr "Pilih bentuk, papan atau kumpulan untuk memeriksa sifat dan kod mereka" -#: src/app/main/ui/inspect/right_sidebar.cljs +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:125 msgid "inspect.tabs.code" msgstr "Kod" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:98 msgid "inspect.tabs.code.selected.circle" msgstr "Bulatan" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:99 msgid "inspect.tabs.code.selected.component" msgstr "Komponen" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:100 msgid "inspect.tabs.code.selected.curve" msgstr "Lengkung" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:101 msgid "inspect.tabs.code.selected.frame" msgstr "Papan" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:102 msgid "inspect.tabs.code.selected.group" msgstr "Kumpulan" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:103 msgid "inspect.tabs.code.selected.image" msgstr "Gambar" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:104 msgid "inspect.tabs.code.selected.mask" msgstr "Maska" -#: src/app/main/ui/inspect/right_sidebar.cljs +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:93 msgid "inspect.tabs.code.selected.multiple" msgstr "%s Dipilih" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:105 msgid "inspect.tabs.code.selected.path" msgstr "Laluan" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:106 msgid "inspect.tabs.code.selected.rect" msgstr "Segi empat tepat" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:107 msgid "inspect.tabs.code.selected.svg-raw" msgstr "SVG" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:108 msgid "inspect.tabs.code.selected.text" msgstr "Teks" -#: src/app/main/ui/inspect/right_sidebar.cljs +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:115 msgid "inspect.tabs.info" msgstr "Maklumat" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:158 msgid "label.shortcuts" msgstr "Pintasan" +#: src/app/main/ui/dashboard/import.cljs:527 msgid "labels.accept" msgstr "Terima" -#: src/app/main/ui/settings/sidebar.cljs +#: src/app/main/ui/settings/sidebar.cljs:100 msgid "labels.access-tokens" msgstr "Token capaian" +#: src/app/main/ui/dashboard/team.cljs:968 msgid "labels.active" msgstr "Aktif" +#: src/app/main/ui/dashboard/fonts.cljs:175 msgid "labels.add-custom-font" msgstr "Tambah fon tersuai" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:120, src/app/main/ui/dashboard/team.cljs:276, src/app/main/ui/dashboard/team.cljs:519, src/app/main/ui/dashboard/team.cljs:549, src/app/main/ui/onboarding/team_choice.cljs:67 msgid "labels.admin" msgstr "Pentadbir" +#: src/app/main/ui/onboarding/questions.cljs:174 +msgid "labels.adobe-xd" +msgstr "Adobe XD" + #: src/app/main/ui/workspace/comments.cljs +#, unused msgid "labels.all" msgstr "Semua" +#: src/app/main/ui/auth.cljs:37 msgid "labels.and" msgstr "dan" +#: src/app/main/ui/onboarding/team_choice.cljs:162 msgid "labels.back" msgstr "Kembali" -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:59 msgid "labels.bad-gateway.desc-message" msgstr "" "Nampaknya anda perlu menunggu sebentar dan mencuba semula; kami sedang " "melakukan penyelenggaraan kecil pelayan kami." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:58 msgid "labels.bad-gateway.main-message" msgstr "Ralat pelayan (Bad Gateway)" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/data/common.cljs:112, src/app/main/ui/dashboard/change_owner.cljs:69, src/app/main/ui/dashboard/import.cljs:514, src/app/main/ui/dashboard/team.cljs:868, src/app/main/ui/delete_shared.cljs:35, src/app/main/ui/export.cljs:164, src/app/main/ui/export.cljs:460, src/app/main/ui/settings/access_tokens.cljs:188, src/app/main/ui/viewer/share_link.cljs:203, src/app/main/ui/workspace/sidebar/assets/groups.cljs:149 msgid "labels.cancel" msgstr "Batal" +#: src/app/main/ui/onboarding/questions.cljs:176 +msgid "labels.canva" +msgstr "Canva" + +#: src/app/main/ui/dashboard/projects.cljs:93, src/app/main/ui/export.cljs:478, src/app/main/ui/settings/access_tokens.cljs:183, src/app/main/ui/viewer/login.cljs:77, src/app/main/ui/viewer/share_link.cljs:174, src/app/main/ui/workspace/libraries.cljs:522 msgid "labels.close" msgstr "Tutup" -#: src/app/main/ui/dashboard/comments.cljs +#: src/app/main/ui/dashboard/comments.cljs:104, src/app/main/ui/viewer/comments.cljs:70, src/app/main/ui/workspace/comments.cljs:126 msgid "labels.comments" msgstr "Komen" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:985, src/app/main/ui/workspace/main_menu.cljs:110 msgid "labels.community" msgstr "Komuniti" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:103 msgid "labels.confirm-password" msgstr "Sahkan kata laluan" +#: src/app/main/ui/dashboard/import.cljs:520, src/app/main/ui/export.cljs:465, src/app/main/ui/onboarding/newsletter.cljs:101 msgid "labels.continue" msgstr "Teruskan" +#, unused msgid "labels.continue-with" msgstr "Teruskan dengan" +#: src/app/main/ui/viewer/login.cljs:75 msgid "labels.continue-with-penpot" msgstr "Anda boleh meneruskan dengan akaun Penpot" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:642 msgid "labels.copy-invitation-link" msgstr "Salin pautan" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:157, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:190 msgid "labels.create" msgstr "Cipta" -#: src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/dashboard/team_form.cljs +#: src/app/main/ui/dashboard/team_form.cljs:101, src/app/main/ui/dashboard/team_form.cljs:121 msgid "labels.create-team" msgstr "Cipta pasukan baharu" -#: src/app/main/ui/dashboard/team_form.cljs +#: src/app/main/ui/dashboard/team_form.cljs:113 msgid "labels.create-team.placeholder" msgstr "Masukkan nama pasukan baharu" +#, unused msgid "labels.custom-fonts" msgstr "Fon tersuai" -#: src/app/main/ui/settings/sidebar.cljs +#: src/app/main/ui/settings/sidebar.cljs:73 msgid "labels.dashboard" msgstr "Papan pemuka" -#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:306, src/app/main/ui/dashboard/fonts.cljs:255, src/app/main/ui/dashboard/fonts.cljs:332, src/app/main/ui/dashboard/fonts.cljs:346, src/app/main/ui/dashboard/project_menu.cljs:115, src/app/main/ui/dashboard/team.cljs:904, src/app/main/ui/settings/access_tokens.cljs:209, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:209 msgid "labels.delete" msgstr "Padam" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:357 msgid "labels.delete-comment" msgstr "Padam komen" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:354 msgid "labels.delete-comment-thread" msgstr "Padam bebenang" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:648 msgid "labels.delete-invitation" msgstr "Padam jemputan" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:262 msgid "labels.delete-multi-files" msgstr "Padam fail %s" +#: src/app/main/ui/onboarding/questions.cljs:250 +msgid "labels.developer" +msgstr "Pembangun" + +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:199 msgid "labels.discard" msgstr "Buang" -#: src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/files.cljs, src/app/main/ui/dashboard/files.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:28, src/app/main/ui/dashboard/files.cljs:72, src/app/main/ui/dashboard/files.cljs:156, src/app/main/ui/dashboard/projects.cljs:220, src/app/main/ui/dashboard/projects.cljs:224, src/app/main/ui/dashboard/sidebar.cljs:791 msgid "labels.drafts" msgstr "Draf" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:350, src/app/main/ui/dashboard/fonts.cljs:252, src/app/main/ui/dashboard/team.cljs:902, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:205 msgid "labels.edit" msgstr "Sunting" +#, unused msgid "labels.edit-file" msgstr "Sunting fail" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:118, src/app/main/ui/dashboard/team.cljs:279, src/app/main/ui/dashboard/team.cljs:520, src/app/main/ui/dashboard/team.cljs:553, src/app/main/ui/onboarding/team_choice.cljs:66 msgid "labels.editor" msgstr "Penyunting" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:661 msgid "labels.expired-invitation" msgstr "Tamat tempoh" +#: src/app/main/ui/export.cljs:173 msgid "labels.export" msgstr "Eksport" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:51 msgid "labels.feedback-disabled" msgstr "Maklum balas dilumpuhkan" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:42 msgid "labels.feedback-sent" msgstr "Maklum balas dihantar" +#: src/app/main/ui/onboarding/questions.cljs:170 +msgid "labels.figma" +msgstr "Figma" + +#: src/app/main/ui/dashboard/fonts.cljs:412 msgid "labels.font-family" msgstr "Keluarga Fon" +#, unused msgid "labels.font-providers" msgstr "Pembekal fon" +#: src/app/main/ui/dashboard/fonts.cljs:413 msgid "labels.font-variants" msgstr "Gaya" +#: src/app/main/ui/dashboard/fonts.cljs:52, src/app/main/ui/dashboard/sidebar.cljs:811 msgid "labels.fonts" msgstr "Fon" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/onboarding/questions.cljs:263 +msgid "labels.founder" +msgstr "Pengasas/VP" + +#: src/app/main/ui/onboarding/questions.cljs:262 +msgid "labels.freelancer" +msgstr "Saya seorang pekerja bebas (freelancer)" + +#: src/app/main/ui/dashboard/sidebar.cljs:1015, src/app/main/ui/workspace/main_menu.cljs:142 msgid "labels.github-repo" msgstr "Repositori Github" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:1032, src/app/main/ui/settings/sidebar.cljs:113, src/app/main/ui/workspace/main_menu.cljs:171 msgid "labels.give-feedback" msgstr "Beri maklum balas" +#: src/app/main/ui/auth/recovery_request.cljs:110, src/app/main/ui/auth/register.cljs:285, src/app/main/ui/viewer/login.cljs:117 msgid "labels.go-back" msgstr "Pergi balik" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:978, src/app/main/ui/workspace/main_menu.cljs:102 msgid "labels.help-center" msgstr "Pusat Bantuan" -#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/comments.cljs:103, src/app/main/ui/workspace/comments.cljs:67 msgid "labels.hide-resolved-comments" msgstr "Sembunyikan komen yang diselesaikan" +#: src/app/main/ui/dashboard/team.cljs:969 msgid "labels.inactive" msgstr "tidak aktif" +#: src/app/main/ui/dashboard/fonts.cljs:410 msgid "labels.installed-fonts" msgstr "Fon yang dipasang" -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:144 msgid "labels.internal-error.desc-message" msgstr "" "Sesuatu yang buruk telah berlaku. Sila cuba semula operasi dan jika masalah " "berterusan, hubungi sokongan." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:143 msgid "labels.internal-error.main-message" msgstr "Ralat Dalaman" -#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/onboarding/questions.cljs:178 +msgid "labels.invision" +msgstr "InVision" + +#: src/app/main/ui/dashboard/sidebar.cljs:516, src/app/main/ui/dashboard/team.cljs:89, src/app/main/ui/dashboard/team.cljs:97, src/app/main/ui/dashboard/team.cljs:708 msgid "labels.invitations" msgstr "Jemputan" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:51 msgid "labels.language" msgstr "Bahasa" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:1008, src/app/main/ui/workspace/main_menu.cljs:134 msgid "labels.libraries-and-templates" msgstr "Perpustakaan & Templat" +#: src/app/main/ui/viewer/header.cljs:203 msgid "labels.log-or-sign" msgstr "Log masuk atau daftar" -#: src/app/main/ui/settings.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:1040 msgid "labels.logout" msgstr "Log keluar" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/onboarding/questions.cljs:253 +msgid "labels.marketing" +msgstr "Pemasaran" + +#: src/app/main/ui/dashboard/team.cljs:468 msgid "labels.member" msgstr "Ahli" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:510, src/app/main/ui/dashboard/team.cljs:87, src/app/main/ui/dashboard/team.cljs:95 msgid "labels.members" msgstr "Ahli" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:96 msgid "labels.new-password" msgstr "Kata laluan baharu" -#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/dashboard/comments.cljs +#: src/app/main/ui/dashboard/templates.cljs:269, src/app/main/ui/onboarding/questions.cljs:55 +msgid "labels.next" +msgstr "Seterusnya" + +#: src/app/main/ui/dashboard/comments.cljs:128, src/app/main/ui/workspace/comments.cljs:161 msgid "labels.no-comments-available" msgstr "" "Anda telah melihat semua yang baru! Pemberitahuan ulasan baharu akan " "dipaparkan di sini." -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:694 msgid "labels.no-invitations" msgstr "Tiada jemputan tertunda." -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:696 #, markdown msgid "labels.no-invitations-hint" msgstr "Klik butang **Jemput orang** untuk menjemput orang ke pasukan ini." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:50 msgid "labels.not-found.desc-message" msgstr "" "Halaman ini mungkin tidak wujud atau anda tiada kebenaran untuk " "mengaksesnya." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:49 msgid "labels.not-found.main-message" msgstr "Alamak!" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/projects.cljs:239, src/app/main/ui/dashboard/team.cljs:1095 msgid "labels.num-of-files" msgid_plural "labels.num-of-files" msgstr[0] "%s fail" +#: src/app/main/ui/viewer/thumbnails.cljs:80 msgid "labels.num-of-frames" msgid_plural "labels.num-of-frames" msgstr[0] "%s papan" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1090 msgid "labels.num-of-projects" msgid_plural "labels.num-of-projects" msgstr[0] "%s projek" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:89 msgid "labels.old-password" msgstr "Kata laluan lama" #: src/app/main/ui/workspace/comments.cljs +#, unused msgid "labels.only-yours" msgstr "Hanya milik anda" +#, unused msgid "labels.or" msgstr "atau" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/onboarding/questions.cljs:145, src/app/main/ui/onboarding/questions.cljs:214, src/app/main/ui/onboarding/questions.cljs:303, src/app/main/ui/onboarding/questions.cljs:316, src/app/main/ui/onboarding/questions.cljs:389, src/app/main/ui/onboarding/questions.cljs:447 +msgid "labels.other" +msgstr "Lain-lain (nyatakan)" + +#: src/app/main/ui/dashboard/team.cljs:286, src/app/main/ui/dashboard/team.cljs:518, src/app/main/ui/dashboard/team.cljs:1076 msgid "labels.owner" msgstr "Pemilik" -#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/settings/sidebar.cljs:87 msgid "labels.password" msgstr "Kata laluan" -#: src/app/main/ui/dashboard/team.cljs -#, fuzzy +#: src/app/main/ui/dashboard/team.cljs:662 msgid "labels.pending-invitation" msgstr "Belum selesai" -#: src/app/main/ui/settings/sidebar.cljs +#: src/app/main/ui/onboarding/questions.cljs:51 +msgid "labels.previous" +msgstr "Sebelumnya" + +#: src/app/main/ui/onboarding/questions.cljs:254 +msgid "labels.product-management" +msgstr "Pengurus Produk atau Projek" + +#: src/app/main/ui/settings/profile.cljs:118, src/app/main/ui/settings/sidebar.cljs:82 msgid "labels.profile" msgstr "Profil" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:784 msgid "labels.projects" msgstr "Projek" -#: src/app/main/ui/settings/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:998, src/app/main/ui/settings/sidebar.cljs:106, src/app/main/ui/workspace/main_menu.cljs:126 msgid "labels.release-notes" msgstr "Nota keluaran" #: src/app/main/ui/workspace.cljs +#, unused msgid "labels.reload-file" msgstr "Muat semula fail" #: src/app/main/ui/workspace/libraries.cljs, src/app/main/ui/dashboard/team.cljs +#, unused msgid "labels.remove" msgstr "Alih keluar" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:316 msgid "labels.remove-member" msgstr "Buang ahli" -#: src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:271, src/app/main/ui/dashboard/project_menu.cljs:85, src/app/main/ui/dashboard/sidebar.cljs:539, src/app/main/ui/workspace/sidebar/assets/groups.cljs:157 msgid "labels.rename" msgstr "Namakan semula" -#: src/app/main/ui/dashboard/team_form.cljs +#: src/app/main/ui/dashboard/team_form.cljs:99 msgid "labels.rename-team" msgstr "Namakan semula pasukan" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:645 msgid "labels.resend-invitation" msgstr "Hantar semula jemputan" -#: src/app/main/ui/static.cljs, src/app/main/ui/static.cljs, src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:61, src/app/main/ui/static.cljs:70, src/app/main/ui/static.cljs:148 msgid "labels.retry" msgstr "Cuba semula" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:469, src/app/main/ui/dashboard/team.cljs:709 msgid "labels.role" msgstr "Peranan" +#: src/app/main/ui/dashboard/fonts.cljs:380, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:191 msgid "labels.save" msgstr "Simpan" +#: src/app/main/ui/onboarding/questions.cljs:414, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:436 msgid "labels.search" msgstr "Cari" +#: src/app/main/ui/dashboard/fonts.cljs:415 msgid "labels.search-font" msgstr "Cari fon" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/onboarding/questions.cljs:90, src/app/main/ui/onboarding/questions.cljs:248, src/app/main/ui/onboarding/questions.cljs:259, src/app/main/ui/onboarding/questions.cljs:270 +msgid "labels.select-option" +msgstr "Pilih pilihan" + +#: src/app/main/ui/settings/feedback.cljs:82 msgid "labels.send" msgstr "Hantar" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:82 msgid "labels.sending" msgstr "Menghantar…" -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:68 msgid "labels.service-unavailable.desc-message" msgstr "Kami sedang menjalankan penyelenggaraan berjadual pada sistem kami." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:67 msgid "labels.service-unavailable.main-message" msgstr "Perkhidmatan Tidak Tersedia" -#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:530, src/app/main/ui/dashboard/team.cljs:88, src/app/main/ui/dashboard/team.cljs:102, src/app/main/ui/settings/options.cljs:84, src/app/main/ui/settings/sidebar.cljs:93 msgid "labels.settings" msgstr "Tetapan" +#: src/app/main/ui/viewer/header.cljs:199 msgid "labels.share" msgstr "Kongsi" +#, unused msgid "labels.share-prototype" msgstr "Kongsi prototaip" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:800 msgid "labels.shared-libraries" msgstr "Perpustakaan" -#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/comments.cljs:82, src/app/main/ui/workspace/comments.cljs:55, src/app/main/ui/workspace/comments.cljs:135 msgid "labels.show-all-comments" msgstr "Paparkan semua komen" +#: src/app/main/ui/viewer/comments.cljs:115 msgid "labels.show-comments-list" msgstr "Paparkan senarai komen" -#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/comments.cljs:91, src/app/main/ui/workspace/comments.cljs:61, src/app/main/ui/workspace/comments.cljs:136 msgid "labels.show-your-comments" msgstr "Paparkan komen anda sahaja" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/onboarding/questions.cljs:172 +msgid "labels.sketch" +msgstr "Sketch" + +#: src/app/main/ui/onboarding/questions.cljs:56 +msgid "labels.start" +msgstr "Mula" + +#: src/app/main/ui/dashboard/team.cljs:710 msgid "labels.status" msgstr "Status" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/onboarding/questions.cljs:251 +msgid "labels.student-teacher" +msgstr "Pelajar atau guru" + +#: src/app/main/ui/dashboard/sidebar.cljs:992, src/app/main/ui/workspace/main_menu.cljs:118 msgid "labels.tutorials" msgstr "Tutorial" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:256 msgid "labels.unpublish-multi-files" msgstr "Nyahterbitkan %s fail" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:103 msgid "labels.update" msgstr "Kemas kini" -#: src/app/main/ui/dashboard/team_form.cljs +#: src/app/main/ui/dashboard/team_form.cljs:120 msgid "labels.update-team" msgstr "Kemas kini pasukan" +#: src/app/main/ui/dashboard/fonts.cljs:241 msgid "labels.upload" msgstr "Muat naik" +#: src/app/main/ui/dashboard/fonts.cljs:169 msgid "labels.upload-custom-fonts" msgstr "Muat naik fon tersuai" +#: src/app/main/ui/dashboard/fonts.cljs:240 msgid "labels.uploading" msgstr "Memuat naik…" +#: src/app/main/ui/workspace/sidebar/sitemap.cljs:223 msgid "labels.view-only" msgstr "LIHAT SAHAJA" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:123, src/app/main/ui/dashboard/team.cljs:282, src/app/main/ui/dashboard/team.cljs:521 msgid "labels.viewer" msgstr "Penonton" +#: src/app/main/ui/dashboard/sidebar.cljs:523, src/app/main/ui/dashboard/team.cljs:90, src/app/main/ui/dashboard/team.cljs:100, src/app/main/ui/dashboard/team.cljs:880 msgid "labels.webhooks" msgstr "Cangkuk Web (Webhook)" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:194 msgid "labels.write-new-comment" msgstr "Tulis komen baharu" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/team.cljs:237 msgid "labels.you" msgstr "(anda)" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:968 msgid "labels.your-account" msgstr "Akaun anda" -#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs +#: src/app/main/data/media.cljs:49, src/app/main/data/workspace/media.cljs:223, src/app/main/data/workspace/media.cljs:453 msgid "media.loading" msgstr "Memuatkan gambar…" +#: src/app/main/data/common.cljs:111 msgid "modals.add-shared-confirm-empty.hint" msgstr "" "Pustaka anda kosong. Setelah ditambahkan sebagai Pustaka Dikongsi, aset " "yang anda buat akan tersedia untuk digunakan antara fail anda yang lain. " "Adakah anda pasti mahu menerbitkannya?" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/data/common.cljs:113 msgid "modals.add-shared-confirm.accept" msgstr "Tambah sebagai Pustaka Kongsi" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/data/common.cljs:111 msgid "modals.add-shared-confirm.hint" msgstr "" "Setelah ditambahkan sebagai Pustaka Kongsi, aset pustaka fail ini akan " "tersedia untuk digunakan antara fail anda yang lain." -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/data/common.cljs:110 msgid "modals.add-shared-confirm.message" msgstr "Tambah “%s” sebagai Pustaka Kongsi" -#: src/app/main/ui/workspace/nudge.cljs -#, fuzzy +#: src/app/main/ui/workspace/nudge.cljs:60 msgid "modals.big-nudge" msgstr "Anjakan besar" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:127 msgid "modals.change-email.confirm-email" msgstr "Sahkan e-mel baharu" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:114 msgid "modals.change-email.info" msgstr "" "Kami akan menghantar e-mel ke e-mel semasa anda “%s” untuk pengesahan " "identiti." -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:119 msgid "modals.change-email.new-email" msgstr "E-mel baharu" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:136 msgid "modals.change-email.submit" msgstr "Tukar e-mel" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:107 msgid "modals.change-email.title" msgstr "Tukar e-mel anda" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:165, src/app/main/ui/settings/access_tokens.cljs:171 msgid "modals.create-access-token.copy-token" msgstr "Salin token" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:142 msgid "modals.create-access-token.expiration-date.label" msgstr "Tarikh tamat tempoh" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:136 msgid "modals.create-access-token.name.label" msgstr "Nama" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:138 msgid "modals.create-access-token.name.placeholder" msgstr "Nama boleh membantu untuk mengetahui token itu untuk apa" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:191 msgid "modals.create-access-token.submit-label" msgstr "Cipta token" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:123 msgid "modals.create-access-token.title" msgstr "Jana token capaian" +#: src/app/main/ui/dashboard/team.cljs:873 msgid "modals.create-webhook.submit-label" msgstr "Cipta cangkuk web (webhook)" +#: src/app/main/ui/dashboard/team.cljs:838 msgid "modals.create-webhook.title" msgstr "Cipta cangkuk web (webhook)" +#: src/app/main/ui/dashboard/team.cljs:849 msgid "modals.create-webhook.url.label" msgstr "URL muatan" +#: src/app/main/ui/dashboard/team.cljs:850 msgid "modals.create-webhook.url.placeholder" msgstr "https://example.com/postreceive" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:271 msgid "modals.delete-acces-token.accept" msgstr "Padam token" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:270 msgid "modals.delete-acces-token.message" msgstr "Adakah anda pasti mahu memadamkan token ini?" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:269 msgid "modals.delete-acces-token.title" msgstr "Padam token" -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:59 msgid "modals.delete-account.cancel" msgstr "Batal dan kekalkan akaun saya" -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:64 msgid "modals.delete-account.confirm" msgstr "Ya, padam akaun saya" -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:53 msgid "modals.delete-account.info" msgstr "" "Dengan mengalih keluar akaun anda, anda akan kehilangan semua projek dan " "arkib semasa anda." -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:46 msgid "modals.delete-account.title" msgstr "Adakah anda pasti mahu memadam akaun anda?" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:298 msgid "modals.delete-comment-thread.accept" msgstr "Padam perbualan" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:297 msgid "modals.delete-comment-thread.message" msgstr "" "Adakah anda pasti mahu memadamkan perbualan ini? Semua komen dalam urutan " "ini akan dipadamkan." -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:296 msgid "modals.delete-comment-thread.title" msgstr "Padam perbualan" +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:140 msgid "modals.delete-component-annotation.message" msgstr "Adakah anda pasti ingin memadamkan anotasi ini?" +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:139 msgid "modals.delete-component-annotation.title" msgstr "Padam anotasi" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:123 msgid "modals.delete-file-confirm.accept" msgstr "Padam fail" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:122 msgid "modals.delete-file-confirm.message" msgstr "Adakah anda pasti mahu memadamkan fail ini?" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:121 msgid "modals.delete-file-confirm.title" msgstr "Memadam fail" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:117 msgid "modals.delete-file-multi-confirm.accept" msgstr "Padam fail" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:116 msgid "modals.delete-file-multi-confirm.message" msgstr "Adakah anda pasti mahu memadamkan %s fail?" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:115 msgid "modals.delete-file-multi-confirm.title" msgstr "Memadamkan %s fail" +#: src/app/main/ui/dashboard/fonts.cljs:345 msgid "modals.delete-font-variant.message" msgstr "" "Adakah anda pasti mahu memadamkan gaya fon ini? Ia tidak akan dimuatkan " "jika digunakan dalam fail." +#: src/app/main/ui/dashboard/fonts.cljs:344 msgid "modals.delete-font-variant.title" msgstr "Memadam gaya fon" +#: src/app/main/ui/dashboard/fonts.cljs:331 msgid "modals.delete-font.message" msgstr "" "Adakah anda pasti mahu memadamkan fon ini? Ia tidak akan dimuatkan jika " "digunakan dalam fail." +#: src/app/main/ui/dashboard/fonts.cljs:330 msgid "modals.delete-font.title" msgstr "Memadam fon" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs +#: src/app/main/ui/workspace/context_menu.cljs:522, src/app/main/ui/workspace/sidebar/sitemap.cljs:45 msgid "modals.delete-page.body" msgstr "Adakah anda pasti mahu memadamkan halaman ini?" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs +#: src/app/main/ui/workspace/context_menu.cljs:521, src/app/main/ui/workspace/sidebar/sitemap.cljs:44 msgid "modals.delete-page.title" msgstr "Padam halaman" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:69 msgid "modals.delete-project-confirm.accept" msgstr "Padam projek" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:68 msgid "modals.delete-project-confirm.message" msgstr "Adakah anda pasti mahu memadamkan projek ini?" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:67 msgid "modals.delete-project-confirm.title" msgstr "Padam projek" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:51 msgid "modals.delete-shared-confirm.accept" msgid_plural "modals.delete-shared-confirm.accept" msgstr[0] "Padam fail" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:55 msgid "modals.delete-shared-confirm.activated.no-files-message" msgid_plural "modals.delete-shared-confirm.activated.no-files-message" msgstr[0] "Ia tidak diaktifkan dalam mana-mana fail." -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:57 msgid "modals.delete-shared-confirm.activated.scd-message" msgid_plural "modals.delete-shared-confirm.activated.scd-message" msgstr[0] "Pustaka ini diaktifkan di sini: " -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:46 msgid "modals.delete-shared-confirm.message" msgid_plural "modals.delete-shared-confirm.message" msgstr[0] "Adakah anda pasti mahu memadamkan fail ini?" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:41 msgid "modals.delete-shared-confirm.title" msgid_plural "modals.delete-shared-confirm.title" msgstr[0] "Memadam fail" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:435 msgid "modals.delete-team-confirm.accept" msgstr "Padam pasukan" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:434 msgid "modals.delete-team-confirm.message" msgstr "" "Adakah anda pasti mahu memadamkan pasukan ini? Semua projek dan fail yang " "dikaitkan dengan pasukan akan dipadamkan secara kekal." -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:433 msgid "modals.delete-team-confirm.title" msgstr "Memadam pasukan" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:427 msgid "modals.delete-team-member-confirm.accept" msgstr "Padam ahli" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:426 msgid "modals.delete-team-member-confirm.message" msgstr "Adakah anda pasti mahu memadamkan ahli ini daripada pasukan?" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:425 msgid "modals.delete-team-member-confirm.title" msgstr "Padam ahli pasukan" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:59 msgid "modals.delete-unpublish-shared-confirm.activated.hint" msgid_plural "modals.delete-unpublish-shared-confirm.activated.hint" msgstr[0] "" "Aset yang telah digunakan dalam fail ini akan kekal di sana (tiada reka " "bentuk akan rosak)." +#: src/app/main/ui/dashboard/team.cljs:942 msgid "modals.delete-webhook.accept" msgstr "Padam cangkuk web (webhook)" +#: src/app/main/ui/dashboard/team.cljs:941 msgid "modals.delete-webhook.message" msgstr "Adakah anda pasti mahu memadamkan cangkuk web (webhook) ini?" +#: src/app/main/ui/dashboard/team.cljs:940 msgid "modals.delete-webhook.title" msgstr "Memadam cangkuk web (webhook)" +#: src/app/main/ui/dashboard/team.cljs:872 msgid "modals.edit-webhook.submit-label" msgstr "Sunting cangkuk web (webhook)" +#: src/app/main/ui/dashboard/team.cljs:837 msgid "modals.edit-webhook.title" msgstr "Sunting cangkuk web (webhook)" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:218 msgid "modals.invite-member-confirm.accept" msgstr "Hantar jemputan" +#: src/app/main/ui/dashboard/team.cljs:213, src/app/main/ui/onboarding/team_choice.cljs:156 msgid "modals.invite-member.emails" msgstr "E-mel, dipisahkan dengan koma" +#: src/app/main/ui/dashboard/team.cljs:197 msgid "modals.invite-member.repeated-invitation" msgstr "" "Sesetengah e-mel adalah daripada ahli pasukan semasa. Jemputan mereka tidak " "akan dihantar." -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:190 msgid "modals.invite-team-member.title" msgstr "Jemput ahli ke pasukan" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:423, src/app/main/ui/dashboard/team.cljs:393 msgid "modals.leave-and-close-confirm.hint" msgstr "" "Memandangkan anda satu-satunya ahli pasukan, pasukan ini akan dipadamkan " "bersama-sama dengan projek dan failnya." -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:422, src/app/main/ui/dashboard/team.cljs:392 msgid "modals.leave-and-close-confirm.message" msgstr "Adakah anda pasti mahu meninggalkan pasukan %s?" +#: src/app/main/ui/dashboard/change_owner.cljs:59 msgid "modals.leave-and-reassign.forbidden" msgstr "" "Anda tidak boleh meninggalkan pasukan jika tiada ahli lain untuk dinaikkan " "pangkat kepada pemilik. Anda mungkin mahu memadamkan pasukan." -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/change_owner.cljs:55 msgid "modals.leave-and-reassign.hint1" msgstr "" "Anda adalah pemilik pasukan ini. Sila pilih ahli lain untuk dinaikkan " "pangkat kepada pemilik sebelum anda pergi." -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/change_owner.cljs:78 msgid "modals.leave-and-reassign.promote-and-leave" msgstr "Naik pangkat dan tinggalkan" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/change_owner.cljs:34 msgid "modals.leave-and-reassign.select-member-to-promote" msgstr "Pilih ahli untuk dinaikkan pangkat" -#: src/app/main/ui/dashboard/sidebar.cljs -#, fuzzy +#: src/app/main/ui/dashboard/change_owner.cljs:49 msgid "modals.leave-and-reassign.title" msgstr "Sebelum anda pergi" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:402, src/app/main/ui/dashboard/sidebar.cljs:424, src/app/main/ui/dashboard/team.cljs:394, src/app/main/ui/dashboard/team.cljs:416 msgid "modals.leave-confirm.accept" msgstr "Tinggalkan pasukan" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:401, src/app/main/ui/dashboard/team.cljs:415 msgid "modals.leave-confirm.message" msgstr "Adakah anda pasti mahu meninggalkan pasukan ini?" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:400, src/app/main/ui/dashboard/sidebar.cljs:421, src/app/main/ui/dashboard/team.cljs:391, src/app/main/ui/dashboard/team.cljs:414 msgid "modals.leave-confirm.title" msgstr "Meninggalkan pasukan" -#: src/app/main/ui/workspace/nudge.cljs +#: src/app/main/ui/workspace/main_menu.cljs:266, src/app/main/ui/workspace/nudge.cljs:47 msgid "modals.nudge-title" msgstr "Jumlah anjakan" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:340 msgid "modals.promote-owner-confirm.accept" msgstr "Pindah hak milik" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:339 msgid "modals.promote-owner-confirm.hint" msgstr "" "Jika anda memindahkan pemilikan, anda akan menukar peranan anda kepada " "Pentadbir, kehilangan beberapa kebenaran ke atas pasukan ini. " -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:338 msgid "modals.promote-owner-confirm.message" msgstr "" "Anda adalah pemilik semasa pasukan ini. Adakah anda pasti mahu menjadikan " "%s pemilik baharu pasukan?" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:337 msgid "modals.promote-owner-confirm.title" msgstr "Pemilik pasukan baru" +#: src/app/main/ui/workspace/libraries.cljs:188 msgid "modals.publish-empty-library.accept" msgstr "Terbitkan" +#: src/app/main/ui/workspace/libraries.cljs:187 msgid "modals.publish-empty-library.message" msgstr "Pustaka anda kosong. Adakah anda pasti mahu menerbitkannya?" +#: src/app/main/ui/workspace/libraries.cljs:186 msgid "modals.publish-empty-library.title" msgstr "Terbitkan perpustakaan kosong" #: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "modals.remove-shared-confirm.accept" msgstr "Alih keluar sebagai Pustaka Kongsi" #: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "modals.remove-shared-confirm.hint" msgstr "" "Setelah dialih keluar sebagai Pustaka Kongsi, Pustaka Fail fail ini akan " "berhenti tersedia untuk digunakan di antara fail anda yang lain." #: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "modals.remove-shared-confirm.message" msgstr "Alih keluar \"%s\" sebagai Pustaka Kongsi" -#: src/app/main/ui/workspace/nudge.cljs +#: src/app/main/ui/workspace/nudge.cljs:53 msgid "modals.small-nudge" msgstr "Anjakan kecil" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:52 msgid "modals.unpublish-shared-confirm.accept" msgid_plural "modals.unpublish-shared-confirm.accept" msgstr[0] "Nyahterbit" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:47 msgid "modals.unpublish-shared-confirm.message" msgid_plural "modals.unpublish-shared-confirm.message" msgstr[0] "Adakah anda pasti mahu menyahterbitkan perpustakaan ini?" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:42 msgid "modals.unpublish-shared-confirm.title" msgid_plural "modals.unpublish-shared-confirm.title" msgstr[0] "Nyahterbit pustaka" #: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#, unused msgid "modals.update-remote-component-in-bulk.hint" msgstr "" "Anda akan mengemas kini komponen dalam pustaka kongsi. Ini mungkin " "menjejaskan fail lain yang menggunakannya." #: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#, unused msgid "modals.update-remote-component-in-bulk.message" msgstr "Kemas kini komponen dalam pustaka kongsi" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:380 msgid "modals.update-remote-component.accept" msgstr "Kemas kini" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:379 msgid "modals.update-remote-component.cancel" msgstr "Batal" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:378 msgid "modals.update-remote-component.hint" msgstr "" "Anda akan mengemas kini komponen dalam pustaka kongsi. Ini mungkin " "menjejaskan fail lain yang menggunakannya." -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:377 msgid "modals.update-remote-component.message" msgstr "Kemas kini komponen dalam pustaka kongsi" -#: src/app/main/data/common.cljs +#: src/app/main/data/common.cljs:71 msgid "notifications.by-code.upgrade-version" msgstr "Versi baharu tersedia, sila muat semula halaman" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:154, src/app/main/ui/dashboard/team.cljs:595 msgid "notifications.invitation-email-sent" msgstr "Jemputan berjaya dihantar" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:616 msgid "notifications.invitation-link-copied" msgstr "Pautan jemputan disalin" -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:24 msgid "notifications.profile-deletion-not-allowed" msgstr "" "Anda tidak boleh memadamkan profil anda. Tetapkan semula pasukan anda " "sebelum meneruskan." -#: src/app/main/ui/settings/profile.cljs, src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:29, src/app/main/ui/settings/profile.cljs:35 msgid "notifications.profile-saved" msgstr "Profil berjaya disimpan!" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:63 msgid "notifications.validation-email-sent" msgstr "E-mel pengesahan dihantar kepada %s. Semak e-mel anda!" +#, unused msgid "onboarding-v2.before-start.desc1" msgstr "" "Anda harus tahu bahawa terdapat banyak sumber yang tersedia untuk membantu " "anda bermula dengan Penpot, seperti Panduan Pengguna dan saluran Youtube " "kami." +#, unused msgid "onboarding-v2.before-start.desc2" msgstr "" "Maklumat terperinci tentang cara menggunakan Penpot. Daripada prototaip " "kepada menyusun atau berkongsi reka bentuk." +#, unused msgid "onboarding-v2.before-start.desc2.title" msgstr "Panduan pengguna" +#, unused msgid "onboarding-v2.before-start.desc3" msgstr "" "Anda boleh menonton tutorial kami dan tutorial yang dibuat oleh komuniti " "kami." +#, unused msgid "onboarding-v2.before-start.desc3.title" msgstr "Video tutorial" +#, unused msgid "onboarding-v2.before-start.title" msgstr "Sebelum anda mula" +#: src/app/main/ui/onboarding/newsletter.cljs:63 msgid "onboarding-v2.newsletter.desc" msgstr "" "Langgan surat berita Penpot untuk mengikuti perkembangan dan berita " "pembangunan produk." +#: src/app/main/ui/onboarding/newsletter.cljs:83 msgid "onboarding-v2.newsletter.news" msgstr "" "Hantar kepada saya berita tentang Penpot (siaran blog, tutorial video, " "penstriman...)." +#: src/app/main/ui/onboarding/newsletter.cljs:91 msgid "onboarding-v2.newsletter.privacy1" msgstr "Kami mengambil berat tentang privasi, di sini anda boleh membaca. " +#: src/app/main/ui/onboarding/newsletter.cljs:97 msgid "onboarding-v2.newsletter.privacy2" msgstr "" "Kami hanya akan menghantar e-mel yang berkaitan kepada anda. Anda boleh " "berhenti melanggan pada bila-bila masa melalui pautan nyahlanggan dalam " "mana-mana surat berita kami." +#: src/app/main/ui/onboarding/newsletter.cljs:71 msgid "onboarding-v2.newsletter.updates" msgstr "Hantar kepada saya kemas kini produk (ciri baharu, keluaran, pembetulan...)." +#, unused msgid "onboarding-v2.welcome.desc1" msgstr "" "Penpot ialah Sumber Terbuka dan ia dibuat oleh Kaleidos serta komuniti, di " "mana ramai orang sudah membantu antara satu sama lain. Semua orang boleh " "bekerjasama dengan:" +#, unused msgid "onboarding-v2.welcome.desc2" msgstr "" "Ruang awam untuk belajar, berkongsi dan membincangkan tentang Penpot, masa " "kini dan masa depannya dengan seluruh Komuniti dan pasukan teras Penpot." +#, unused msgid "onboarding-v2.welcome.desc2.title" msgstr "Mengambil bahagian dalam Komuniti" +#, unused msgid "onboarding-v2.welcome.desc3" msgstr "" "Di mana anda akan menemui cara untuk bekerjasama dengan terjemahan, " "permintaan ciri, sumbangan teras, pemburuan pepijat…" +#, unused msgid "onboarding-v2.welcome.desc3.title" msgstr "Panduan memberi sumbangan" +#: src/app/main/ui/onboarding/team_choice.cljs:31 msgid "onboarding-v2.welcome.title" msgstr "Selamat datang ke Penpot!" +#: src/app/main/ui/onboarding/team_choice.cljs:229 msgid "onboarding.choice.team-up.continue-creating-team" msgstr "Teruskan mencipta pasukan" +#: src/app/main/ui/onboarding/team_choice.cljs:239 msgid "onboarding.choice.team-up.continue-without-a-team" msgstr "Teruskan tanpa pasukan" +#: src/app/main/ui/onboarding/team_choice.cljs:167 msgid "onboarding.choice.team-up.create-team-and-invite" msgstr "Buat pasukan & jemput" +#, unused msgid "onboarding.choice.team-up.create-team-and-send-invites" msgstr "Buat pasukan dan hantar jemputan" +#: src/app/main/ui/onboarding/team_choice.cljs:170 msgid "onboarding.choice.team-up.create-team-and-send-invites-description" msgstr "Anda boleh menjemput kemudian" +#: src/app/main/ui/onboarding/team_choice.cljs:215 msgid "onboarding.choice.team-up.create-team-desc" msgstr "" "Selepas menamakan pasukan anda, anda akan dapat menjemput orang untuk " "menyertai." +#: src/app/main/ui/onboarding/team_choice.cljs:224 msgid "onboarding.choice.team-up.create-team-placeholder" msgstr "Masukkan nama pasukan" +#: src/app/main/ui/onboarding/team_choice.cljs:168 msgid "onboarding.choice.team-up.create-team-without-invite" msgstr "Cipta pasukan" +#, unused msgid "onboarding.choice.team-up.create-team-without-inviting" msgstr "Buat pasukan tanpa menjemput" +#: src/app/main/ui/dashboard/projects.cljs:89, src/app/main/ui/onboarding/team_choice.cljs:140 msgid "onboarding.choice.team-up.invite-members" msgstr "Jemput ahli" +#: src/app/main/ui/onboarding/team_choice.cljs:141 msgid "onboarding.choice.team-up.invite-members-info" msgstr "" "Ingat untuk memasukkan semua orang. Pemaju, pereka bentuk, pengurus... " "kepelbagaian bertambah :)" +#: src/app/main/ui/dashboard/team.cljs:202, src/app/main/ui/onboarding/team_choice.cljs:146 msgid "onboarding.choice.team-up.roles" msgstr "Jemput dengan peranan:" +#: src/app/main/ui/onboarding/team_choice.cljs:232 msgid "onboarding.choice.team-up.start-without-a-team" msgstr "Mulakan tanpa pasukan" +#: src/app/main/ui/onboarding/team_choice.cljs:234 msgid "onboarding.choice.team-up.start-without-a-team-description" msgstr "Anda boleh membuat pasukan kemudian." +#, unused msgid "onboarding.newsletter.accept" msgstr "Ya, langgan" +#: src/app/main/ui/onboarding/newsletter.cljs:40 msgid "onboarding.newsletter.acceptance-message" msgstr "" "Permintaan langganan anda telah dihantar, kami akan menghantar e-mel kepada " "anda untuk mengesahkannya." +#: src/app/main/ui/onboarding/newsletter.cljs:95 msgid "onboarding.newsletter.policy" msgstr "Dasar Privasi." +#: src/app/main/ui/onboarding/newsletter.cljs:60 msgid "onboarding.newsletter.title" msgstr "Ingin menerima berita Penpot?" +#: src/app/main/ui/onboarding/questions.cljs:118 +msgid "onboarding.questions.lets-get-started" +msgstr "Mari mulakan!" + +#: src/app/main/ui/onboarding/questions.cljs:307 +msgid "onboarding.questions.step3.question2" +msgstr "Apakah peranan anda?" + +#: src/app/main/ui/onboarding/questions.cljs:320 +msgid "onboarding.questions.step3.question3" +msgstr "Berapakah saiz pasukan anda?" + +#: src/app/main/ui/onboarding/questions.cljs:273 +msgid "onboarding.questions.team-size.11-30" +msgstr "11-30" + +#: src/app/main/ui/onboarding/questions.cljs:274 +msgid "onboarding.questions.team-size.2-10" +msgstr "2-10" + +#: src/app/main/ui/onboarding/questions.cljs:272 +msgid "onboarding.questions.team-size.31-50" +msgstr "31-50" + +#: src/app/main/ui/onboarding/questions.cljs:271 +msgid "onboarding.questions.team-size.more-than-50" +msgstr "Lebih daripada 50" + +#: src/app/main/ui/onboarding/questions.cljs:276 +msgid "onboarding.questions.team-size.personal-project" +msgstr "Saya sedang menjalankan projek peribadi" + +#: src/app/main/ui/onboarding/team_choice.cljs:213 msgid "onboarding.team-modal.create-team" msgstr "Cipta pasukan" +#: src/app/main/ui/onboarding/team_choice.cljs:35 msgid "onboarding.team-modal.create-team-desc" msgstr "" "Pasukan membolehkan anda bekerjasama dengan pengguna Penpot lain yang " "bekerja dalam fail dan projek yang sama." +#: src/app/main/ui/onboarding/team_choice.cljs:40 msgid "onboarding.team-modal.create-team-feature-1" msgstr "Fail dan projek tanpa had" +#: src/app/main/ui/onboarding/team_choice.cljs:44 msgid "onboarding.team-modal.create-team-feature-2" msgstr "Edisi berbilang pemain" +#: src/app/main/ui/onboarding/team_choice.cljs:48 msgid "onboarding.team-modal.create-team-feature-3" msgstr "Pengurusan peranan" +#: src/app/main/ui/onboarding/team_choice.cljs:52 msgid "onboarding.team-modal.create-team-feature-4" msgstr "Ahli tanpa had" +#: src/app/main/ui/onboarding/team_choice.cljs:56 msgid "onboarding.team-modal.create-team-feature-5" msgstr "100% percuma!" +#: src/app/main/ui/onboarding/templates.cljs:78 msgid "onboarding.templates.subtitle" msgstr "Berikut adalah beberapa templat." +#: src/app/main/ui/onboarding/templates.cljs:77 msgid "onboarding.templates.title" msgstr "Mula mereka bentuk" +#, unused msgid "onboarding.welcome.alt" msgstr "Penpot" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:99 msgid "profile.recovery.go-to-login" msgstr "Pergi ke log masuk" -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.team-size.11-30" -msgstr "11-30" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.team-size.2-10" -msgstr "2-10" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.team-size.31-50" -msgstr "31-50" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.adobe-xd" -msgstr "Adobe XD" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.canva" -msgstr "Canva" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.developer" -msgstr "Pembangun" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.figma" -msgstr "Figma" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.founder" -msgstr "Pengasas/VP" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.freelancer" -msgstr "Saya seorang pekerja bebas (freelancer)" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.invision" -msgstr "InVision" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.lets-get-started" -msgstr "Mari mulakan!" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.product-management" -msgstr "Pengurus Produk atau Projek" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.marketing" -msgstr "Pemasaran" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.team-size.more-than-50" -msgstr "Lebih daripada 50" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.next" -msgstr "Seterusnya" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.other" -msgstr "Lain-lain (nyatakan)" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.team-size.personal-project" -msgstr "Saya sedang menjalankan projek peribadi" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.previous" -msgstr "Sebelumnya" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.step3.question2" -msgstr "Apakah peranan anda?" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.select-option" -msgstr "Pilih pilihan" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.sketch" -msgstr "Sketch" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.start" -msgstr "Mula" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.student-teacher" -msgstr "Pelajar atau guru" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.step3.question3" -msgstr "Berapakah saiz pasukan anda?" - -#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, -#, fuzzy +#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:221 msgid "settings.detach" msgstr "Tanggalkan" -#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs, src/app/main/ui/workspace/sidebar/options/menus/layer.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs, src/app/main/ui/workspace/sidebar/options/menus/blur.cljs +#: src/app/main/ui/viewer/inspect/exports.cljs:147, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:631, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:137, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:148, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:188, src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:158, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:399, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:410, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:430, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:441, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:458, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:472, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:309, src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:183, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:373, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:389, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:245, src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:172 msgid "settings.multiple" msgstr "Bercampur" # SECTIONS +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:414 msgid "shortcut-section.basics" msgstr "Asas" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:420 msgid "shortcut-section.dashboard" msgstr "Papan pemuka" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:423 msgid "shortcut-section.viewer" msgstr "Penonton" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:417 msgid "shortcut-section.workspace" msgstr "Ruang kerja" # SUBSECTIONS +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:56 msgid "shortcut-subsection.alignment" msgstr "Penjajaran" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:57 msgid "shortcut-subsection.edit" msgstr "Sunting" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:58 msgid "shortcut-subsection.general-dashboard" msgstr "Generik" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:59 msgid "shortcut-subsection.general-viewer" msgstr "Generik" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:60 msgid "shortcut-subsection.main-menu" msgstr "Menu utama" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:61 msgid "shortcut-subsection.modify-layers" msgstr "Ubah suai lapisan" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:62 msgid "shortcut-subsection.navigation-dashboard" msgstr "Navigasi" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:63 msgid "shortcut-subsection.navigation-viewer" msgstr "Navigasi" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:64 msgid "shortcut-subsection.navigation-workspace" msgstr "Navigasi" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:65 msgid "shortcut-subsection.panels" msgstr "Panel" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:66 msgid "shortcut-subsection.path-editor" msgstr "laluan" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:67 msgid "shortcut-subsection.shape" msgstr "Bentuk" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:68 msgid "shortcut-subsection.text-editor" msgstr "Teks" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:69 msgid "shortcut-subsection.tools" msgstr "Alatan" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:70 msgid "shortcut-subsection.zoom-viewer" msgstr "Zum" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:71 msgid "shortcut-subsection.zoom-workspace" msgstr "Zum" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:72 msgid "shortcuts.add-comment" msgstr "Komen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:73 msgid "shortcuts.add-node" msgstr "Tambah nota" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:74 msgid "shortcuts.align-bottom" msgstr "Sejajarkan bahagian bawah" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:75 msgid "shortcuts.align-center" msgstr "Jajarkan tengah" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:76 msgid "shortcuts.align-hcenter" msgstr "Jajarkan tengah secara mendatar" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:77 msgid "shortcuts.align-justify" msgstr "Mengimbangkan keselarasan" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:78 msgid "shortcuts.align-left" msgstr "Jajar ke kiri" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:79 msgid "shortcuts.align-right" msgstr "Sejajar ke kanan" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:80 msgid "shortcuts.align-top" msgstr "Jajarkan atas" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:81 msgid "shortcuts.align-vcenter" msgstr "Jajarkan tengah secara menegak" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:82 msgid "shortcuts.artboard-selection" msgstr "Cipta papan daripada pemilihan" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:83 msgid "shortcuts.bold" msgstr "Togol tebal" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:84 msgid "shortcuts.bool-difference" msgstr "Perbezaan Boolean" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:85 msgid "shortcuts.bool-exclude" msgstr "Pengecualian Boolean" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:86 msgid "shortcuts.bool-intersection" msgstr "Persimpangan Boolean" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:87 msgid "shortcuts.bool-union" msgstr "Kesatuan Boolean" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:88 msgid "shortcuts.bring-back" msgstr "Hantar ke paling belakang" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:89 msgid "shortcuts.bring-backward" msgstr "Hantar ke belakang" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:90 msgid "shortcuts.bring-forward" msgstr "Bawa ke hadapan" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:91 msgid "shortcuts.bring-front" msgstr "Bawa ke paling hadapan" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:92 msgid "shortcuts.clear-undo" msgstr "Kosongkan buat asal" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:93 msgid "shortcuts.copy" msgstr "Salin" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:94 msgid "shortcuts.create-component" msgstr "Cipta komponen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:95 msgid "shortcuts.create-new-project" msgstr "Buat baharu" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:96 msgid "shortcuts.cut" msgstr "Potong" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:97 msgid "shortcuts.decrease-zoom" msgstr "Zum keluar" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:98 msgid "shortcuts.delete" msgstr "Padam" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:99 msgid "shortcuts.delete-node" msgstr "Padamkan nod" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:100 msgid "shortcuts.detach-component" msgstr "Tanggalkan komponen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:101 msgid "shortcuts.draw-curve" msgstr "Lengkung" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:102 msgid "shortcuts.draw-ellipse" msgstr "elips" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:103 msgid "shortcuts.draw-frame" msgstr "Papan" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:104 msgid "shortcuts.draw-nodes" msgstr "Lukis laluan" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:105 msgid "shortcuts.draw-path" msgstr "Laluan" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:106 msgid "shortcuts.draw-rect" msgstr "Segi empat tepat" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:107 msgid "shortcuts.draw-text" msgstr "Teks" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:108 msgid "shortcuts.duplicate" msgstr "Pendua" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:109 msgid "shortcuts.escape" msgstr "Batal" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:110 msgid "shortcuts.export-shapes" msgstr "Eksport bentuk" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:111 msgid "shortcuts.fit-all" msgstr "Zum untuk muat semua" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:112 msgid "shortcuts.flip-horizontal" msgstr "Terbalikkan secara mendatar" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:113 msgid "shortcuts.flip-vertical" msgstr "Terbalikkan secara menegak" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:114 msgid "shortcuts.font-size-dec" msgstr "Kurangkan saiz fon" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:115 msgid "shortcuts.font-size-inc" msgstr "Tambah saiz fon" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:116 msgid "shortcuts.go-to-drafts" msgstr "Pergi ke draf" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:117 msgid "shortcuts.go-to-libs" msgstr "Pergi ke perpustakaan kongsi" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:118 msgid "shortcuts.go-to-search" msgstr "Cari" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:119 msgid "shortcuts.group" msgstr "Kumpulan" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:120 msgid "shortcuts.h-distribute" msgstr "Edarkan secara mendatar" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:121 msgid "shortcuts.hide-ui" msgstr "Tunjukkan / Sembunyikan UI" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:122 msgid "shortcuts.increase-zoom" msgstr "Zum kedalam" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:123 msgid "shortcuts.insert-image" msgstr "Masukkan gambar" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:124 msgid "shortcuts.italic" msgstr "Togol condong" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:125 msgid "shortcuts.join-nodes" msgstr "Sambung nod" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:126 msgid "shortcuts.letter-spacing-dec" msgstr "Kurangkan jarak huruf" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:127 msgid "shortcuts.letter-spacing-inc" msgstr "Penambahan jarak huruf" diff --git a/frontend/translations/nb_NO.po b/frontend/translations/nb_NO.po index 990f3b2c1d..2c229c6d03 100644 --- a/frontend/translations/nb_NO.po +++ b/frontend/translations/nb_NO.po @@ -11,680 +11,690 @@ msgstr "" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 5.0-dev\n" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:78 msgid "auth.confirm-password" msgstr "Bekreft passord" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:189, src/app/main/ui/viewer/login.cljs:90 msgid "auth.forgot-password" msgstr "Glemt passordet?" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:254 msgid "auth.fullname" msgstr "Fullt navn" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:71 msgid "auth.new-password" msgstr "Skriv inn et nytt passord" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:42 msgid "auth.notifications.invalid-token-error" msgstr "Gjenopprettelsessymbolet er ugyldig." -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:179, src/app/main/ui/auth/register.cljs:115 msgid "auth.password" msgstr "Passord" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:88 msgid "auth.recovery-request-submit" msgstr "Gjenopprett passord" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:82 msgid "auth.recovery-submit" msgstr "Endre passordet ditt" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:298, src/app/main/ui/viewer/login.cljs:93 msgid "auth.register" msgstr "Ingen konto enda?" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs -#, fuzzy +#: src/app/main/ui/auth/login.cljs:302, src/app/main/ui/auth/register.cljs:121, src/app/main/ui/auth/register.cljs:263, src/app/main/ui/viewer/login.cljs:97 msgid "auth.register-submit" msgstr "Opprett konto" -#: src/app/main/ui/auth/register.cljs -#, fuzzy +#: src/app/main/ui/auth/register.cljs:140 msgid "auth.register-title" msgstr "Opprett konto" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:291, src/app/main/ui/workspace/main_menu.cljs:572 msgid "dashboard.add-shared" msgstr "Legg til som delt bibliotek" -#: src/app/main/data/dashboard.cljs, src/app/main/data/dashboard.cljs +#: src/app/main/data/dashboard.cljs:762, src/app/main/data/dashboard.cljs:983 msgid "dashboard.copy-suffix" msgstr "(kopi)" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/components/context_menu_a11y.cljs:256, src/app/main/ui/dashboard/sidebar.cljs:646 msgid "dashboard.default-team-name" msgstr "Din Penpot" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:571 msgid "dashboard.delete-team" msgstr "Slett lag" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:109 msgid "dashboard.invite-profile" msgstr "Inviter til team" -#: src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:547, src/app/main/ui/dashboard/sidebar.cljs:556, src/app/main/ui/dashboard/sidebar.cljs:563, src/app/main/ui/dashboard/team.cljs:312 msgid "dashboard.leave-team" msgstr "Forlat team" -#: src/app/main/ui/dashboard/libraries.cljs +#: src/app/main/ui/dashboard/libraries.cljs:53 msgid "dashboard.libraries-title" msgstr "Delte biblioteker" -#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:281, src/app/main/ui/dashboard/project_menu.cljs:100 msgid "dashboard.move-to" msgstr "Flytt til" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:245 msgid "dashboard.move-to-multi" msgstr "Flytt %s filer til" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:226 msgid "dashboard.move-to-other-team" msgstr "Flytt til annet team" -#: src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/files.cljs -#, fuzzy +#: src/app/main/ui/dashboard/files.cljs:105, src/app/main/ui/dashboard/projects.cljs:252, src/app/main/ui/dashboard/projects.cljs:253 msgid "dashboard.new-file" msgstr "+ Ny fil" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:55 msgid "dashboard.new-project" msgstr "+ Nytt prosjekt" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1081 msgid "dashboard.num-of-members" msgstr "%s medlemmer" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:267 msgid "dashboard.open-in-new-tab" msgstr "Åpne fil i ny fane" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:106, src/app/main/ui/settings/password.cljs:119 msgid "dashboard.password-change" msgstr "Endre passord" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/pin_button.cljs:24, src/app/main/ui/dashboard/project_menu.cljs:95 msgid "dashboard.pin-unpin" msgstr "Fest/løsne" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:51 msgid "dashboard.projects-title" msgstr "Prosjekter" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:86 msgid "dashboard.remove-account" msgstr "Ønsker du å fjerne kontoen din?" #: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, fuzzy +#, unused msgid "dashboard.remove-shared" msgstr "Fjern som delt bibliotek" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:246, src/app/main/ui/dashboard/sidebar.cljs:247 msgid "dashboard.search-placeholder" msgstr "Søk …" -#: src/app/main/ui/dashboard/search.cljs -#, fuzzy +#: src/app/main/ui/dashboard/search.cljs:55 msgid "dashboard.searching-for" msgstr "Şøker etter «%s» …" -#: src/app/main/ui/settings/options.cljs -#, fuzzy +#: src/app/main/ui/settings/options.cljs:56 msgid "dashboard.select-ui-language" msgstr "Velg grensesnittsspråk" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:63 msgid "dashboard.select-ui-theme" msgstr "Velg drakt" -#: src/app/main/ui/dashboard/grid.cljs +#: src/app/main/ui/dashboard/projects.cljs:282 msgid "dashboard.show-all-files" msgstr "Vis alle filer" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1052 msgid "dashboard.team-info" msgstr "Teaminfo" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1070 msgid "dashboard.team-members" msgstr "Teammedlemmer" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1085 msgid "dashboard.team-projects" msgstr "Lagprosjekter" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:61 msgid "dashboard.theme-change" msgstr "Utseende" -#: src/app/main/ui/settings.cljs +#: src/app/main/ui/settings.cljs:31 msgid "dashboard.your-account-title" msgstr "Din konto" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:62 msgid "dashboard.your-name" msgstr "Ditt navn" -#: src/app/main/ui/dashboard/search.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/libraries.cljs, src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:38, src/app/main/ui/dashboard/fonts.cljs:33, src/app/main/ui/dashboard/libraries.cljs:42, src/app/main/ui/dashboard/projects.cljs:318, src/app/main/ui/dashboard/search.cljs:30, src/app/main/ui/dashboard/sidebar.cljs:312, src/app/main/ui/dashboard/team.cljs:495, src/app/main/ui/dashboard/team.cljs:729, src/app/main/ui/dashboard/team.cljs:991, src/app/main/ui/dashboard/team.cljs:1038 msgid "dashboard.your-penpot" msgstr "Din Penpot" -#: src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:36, src/app/main/ui/workspace/plugins.cljs:246 msgid "ds.confirm-cancel" msgstr "Avbryt" -#: src/app/main/ui/confirm.cljs -#, fuzzy +#: src/app/main/ui/confirm.cljs:37, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:141 msgid "ds.confirm-ok" msgstr "OK" -#: src/app/main/ui/confirm.cljs, src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:35, src/app/main/ui/confirm.cljs:39 msgid "ds.confirm-title" msgstr "Er du sikker?" -#: src/app/main/ui/components/color_input.cljs +#: src/app/main/ui/components/color_input.cljs:57 msgid "errors.invalid-color" msgstr "Ugyldig farge" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:60 msgid "errors.unexpected-token" msgstr "Ukjent symbol" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:77 msgid "feedback.description" msgstr "Beskrivelse" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:72 msgid "feedback.subject" msgstr "Emne" -#: src/app/main/ui/inspect/attributes/blur.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:115 msgid "inspect.attributes.blur.value" msgstr "Verdi" -#: src/app/main/ui/inspect/attributes/image.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:99, src/app/main/ui/viewer/inspect/attributes/image.cljs:51 msgid "inspect.attributes.image.download" msgstr "Last ned kildebilde" -#: src/app/main/ui/inspect/attributes/image.cljs +#: src/app/main/ui/viewer/inspect/attributes/image.cljs:39 msgid "inspect.attributes.image.height" msgstr "Høyde" -#: src/app/main/ui/inspect/attributes/image.cljs +#: src/app/main/ui/viewer/inspect/attributes/image.cljs:32 msgid "inspect.attributes.image.width" msgstr "Bredde" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.height" msgstr "Høyde" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.left" msgstr "Venstre" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.width" msgstr "Bredde" -#: src/app/main/ui/inspect/attributes/shadow.cljs +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:57 msgid "inspect.attributes.shadow" msgstr "Skygge" #: src/app/main/ui/inspect/attributes/stroke.cljs +#, unused msgid "inspect.attributes.stroke.width" msgstr "Bredde" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:81, src/app/main/ui/viewer/inspect/attributes/text.cljs:194 msgid "inspect.attributes.typography" msgstr "Typografi" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:89 msgid "inspect.attributes.typography.font-family" msgstr "Skriftfamilie" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:107 msgid "inspect.attributes.typography.font-size" msgstr "Skriftstørrelse" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:98 msgid "inspect.attributes.typography.font-style" msgstr "Skriftstil" -#: src/app/main/ui/inspect/right_sidebar.cljs +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:125 msgid "inspect.tabs.code" msgstr "Kode" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:98 msgid "inspect.tabs.code.selected.circle" msgstr "Sirkel" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:102 msgid "inspect.tabs.code.selected.group" msgstr "Gruppe" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:103 msgid "inspect.tabs.code.selected.image" msgstr "Bilde" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:105 msgid "inspect.tabs.code.selected.path" msgstr "Sti" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:107 msgid "inspect.tabs.code.selected.svg-raw" msgstr "SVG" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:108 msgid "inspect.tabs.code.selected.text" msgstr "Tekst" -#: src/app/main/ui/inspect/right_sidebar.cljs +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:115 msgid "inspect.tabs.info" msgstr "Info" +#: src/app/main/ui/dashboard/import.cljs:527 msgid "labels.accept" msgstr "Godta" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/data/common.cljs:112, src/app/main/ui/dashboard/change_owner.cljs:69, src/app/main/ui/dashboard/import.cljs:514, src/app/main/ui/dashboard/team.cljs:868, src/app/main/ui/delete_shared.cljs:35, src/app/main/ui/export.cljs:164, src/app/main/ui/export.cljs:460, src/app/main/ui/settings/access_tokens.cljs:188, src/app/main/ui/viewer/share_link.cljs:203, src/app/main/ui/workspace/sidebar/assets/groups.cljs:149 msgid "labels.cancel" msgstr "Avbryt" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:103 msgid "labels.confirm-password" msgstr "Bekreft passord" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:157, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:190 msgid "labels.create" msgstr "Opprett" -#: src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/dashboard/team_form.cljs +#: src/app/main/ui/dashboard/team_form.cljs:101, src/app/main/ui/dashboard/team_form.cljs:121 msgid "labels.create-team" msgstr "Opprett nytt lag" -#: src/app/main/ui/dashboard/team_form.cljs +#: src/app/main/ui/dashboard/team_form.cljs:113 msgid "labels.create-team.placeholder" msgstr "Skriv inn nytt lagnavn" +#, unused msgid "labels.custom-fonts" msgstr "Egendefinerte skrifter" -#: src/app/main/ui/settings/sidebar.cljs +#: src/app/main/ui/settings/sidebar.cljs:73 msgid "labels.dashboard" msgstr "Oversikt" -#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:306, src/app/main/ui/dashboard/fonts.cljs:255, src/app/main/ui/dashboard/fonts.cljs:332, src/app/main/ui/dashboard/fonts.cljs:346, src/app/main/ui/dashboard/project_menu.cljs:115, src/app/main/ui/dashboard/team.cljs:904, src/app/main/ui/settings/access_tokens.cljs:209, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:209 msgid "labels.delete" msgstr "Slett" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:357 msgid "labels.delete-comment" msgstr "Slett kommentar" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:354 msgid "labels.delete-comment-thread" msgstr "Slett tråd" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:262 msgid "labels.delete-multi-files" msgstr "Slett %s filer" -#: src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/files.cljs, src/app/main/ui/dashboard/files.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:28, src/app/main/ui/dashboard/files.cljs:72, src/app/main/ui/dashboard/files.cljs:156, src/app/main/ui/dashboard/projects.cljs:220, src/app/main/ui/dashboard/projects.cljs:224, src/app/main/ui/dashboard/sidebar.cljs:791 msgid "labels.drafts" msgstr "Kladder" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:350, src/app/main/ui/dashboard/fonts.cljs:252, src/app/main/ui/dashboard/team.cljs:902, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:205 msgid "labels.edit" msgstr "Rediger" +#: src/app/main/ui/dashboard/fonts.cljs:412 msgid "labels.font-family" msgstr "Skriftfamilie" +#, unused msgid "labels.font-providers" msgstr "Skrifttilbydere" +#: src/app/main/ui/dashboard/fonts.cljs:52, src/app/main/ui/dashboard/sidebar.cljs:811 msgid "labels.fonts" msgstr "Skrifter" +#: src/app/main/ui/dashboard/fonts.cljs:410 msgid "labels.installed-fonts" msgstr "Installerte skrifter" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:51 msgid "labels.language" msgstr "Språk" -#: src/app/main/ui/settings.cljs, src/app/main/ui/dashboard/sidebar.cljs -#, fuzzy +#: src/app/main/ui/dashboard/sidebar.cljs:1040 msgid "labels.logout" msgstr "Logg ut" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:510, src/app/main/ui/dashboard/team.cljs:87, src/app/main/ui/dashboard/team.cljs:95 msgid "labels.members" msgstr "Medlemmer" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:96 msgid "labels.new-password" msgstr "Nytt passord" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:89 msgid "labels.old-password" msgstr "Gammelt passord" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:286, src/app/main/ui/dashboard/team.cljs:518, src/app/main/ui/dashboard/team.cljs:1076 msgid "labels.owner" msgstr "Eier" -#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/settings/sidebar.cljs:87 msgid "labels.password" msgstr "Passord" -#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/settings/profile.cljs:118, src/app/main/ui/settings/sidebar.cljs:82 msgid "labels.profile" msgstr "Profil" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:784 msgid "labels.projects" msgstr "Prosjekter" #: src/app/main/ui/workspace/libraries.cljs, src/app/main/ui/dashboard/team.cljs +#, unused msgid "labels.remove" msgstr "Fjern" -#: src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:271, src/app/main/ui/dashboard/project_menu.cljs:85, src/app/main/ui/dashboard/sidebar.cljs:539, src/app/main/ui/workspace/sidebar/assets/groups.cljs:157 msgid "labels.rename" msgstr "Gi nytt navn" -#: src/app/main/ui/static.cljs, src/app/main/ui/static.cljs, src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:61, src/app/main/ui/static.cljs:70, src/app/main/ui/static.cljs:148 msgid "labels.retry" msgstr "Prøv igjen" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:469, src/app/main/ui/dashboard/team.cljs:709 msgid "labels.role" msgstr "Rolle" +#: src/app/main/ui/dashboard/fonts.cljs:380, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:191 msgid "labels.save" msgstr "Lagre" -#, fuzzy +#: src/app/main/ui/dashboard/fonts.cljs:415 msgid "labels.search-font" msgstr "Søk etter skrift" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:82 msgid "labels.send" msgstr "Send" -#: src/app/main/ui/settings/feedback.cljs -#, fuzzy +#: src/app/main/ui/settings/feedback.cljs:82 msgid "labels.sending" msgstr "Sender …" -#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:530, src/app/main/ui/dashboard/team.cljs:88, src/app/main/ui/dashboard/team.cljs:102, src/app/main/ui/settings/options.cljs:84, src/app/main/ui/settings/sidebar.cljs:93 msgid "labels.settings" msgstr "Innstillinger" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:800 msgid "labels.shared-libraries" msgstr "Delte bibliotek" -#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/comments.cljs:82, src/app/main/ui/workspace/comments.cljs:55, src/app/main/ui/workspace/comments.cljs:135 msgid "labels.show-all-comments" msgstr "Vis alle kommentarer" +#: src/app/main/ui/dashboard/fonts.cljs:241 msgid "labels.upload" msgstr "Last opp" +#: src/app/main/ui/dashboard/fonts.cljs:169 msgid "labels.upload-custom-fonts" msgstr "Last opp egendefinerte skrifter" +#: src/app/main/ui/dashboard/fonts.cljs:240 msgid "labels.uploading" msgstr "Laster opp …" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:194 msgid "labels.write-new-comment" msgstr "Skriv ny kommentar" -#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs +#: src/app/main/data/media.cljs:49, src/app/main/data/workspace/media.cljs:223, src/app/main/data/workspace/media.cljs:453 msgid "media.loading" msgstr "Laster inn bilde …" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, fuzzy +#: src/app/main/data/common.cljs:113 msgid "modals.add-shared-confirm.accept" msgstr "Legg til som delt bibliotek" -#: src/app/main/ui/settings/change_email.cljs -#, fuzzy +#: src/app/main/ui/settings/change_email.cljs:127 msgid "modals.change-email.confirm-email" msgstr "Bekreft ny e-postadresse" -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:64 msgid "modals.delete-account.confirm" msgstr "Ja, slett kontoen min" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:298 msgid "modals.delete-comment-thread.accept" msgstr "Slett samtale" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:296 msgid "modals.delete-comment-thread.title" msgstr "Slett samtale" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:123 msgid "modals.delete-file-confirm.accept" msgstr "Slett fil" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:117 msgid "modals.delete-file-multi-confirm.accept" msgstr "Slett filer" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs +#: src/app/main/ui/workspace/context_menu.cljs:521, src/app/main/ui/workspace/sidebar/sitemap.cljs:44 msgid "modals.delete-page.title" msgstr "Slett side" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:69 msgid "modals.delete-project-confirm.accept" msgstr "Slett prosjekt" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:427 msgid "modals.delete-team-member-confirm.accept" msgstr "Slett medlem" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:425 msgid "modals.delete-team-member-confirm.title" msgstr "Slett teammedlem" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:402, src/app/main/ui/dashboard/sidebar.cljs:424, src/app/main/ui/dashboard/team.cljs:394, src/app/main/ui/dashboard/team.cljs:416 msgid "modals.leave-confirm.accept" msgstr "Forlat team" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:379 msgid "modals.update-remote-component.cancel" msgstr "Avbryt" -#: src/app/main/ui/dashboard/team.cljs -#, fuzzy +#: src/app/main/ui/dashboard/team.cljs:154, src/app/main/ui/dashboard/team.cljs:595 msgid "notifications.invitation-email-sent" msgstr "Invitasjon sendt" -#: src/app/main/ui/settings/profile.cljs, src/app/main/ui/settings/options.cljs -#, fuzzy +#: src/app/main/ui/settings/options.cljs:29, src/app/main/ui/settings/profile.cljs:35 msgid "notifications.profile-saved" msgstr "Profil lagret" -#: src/app/main/ui/settings/options.cljs -#, fuzzy +#: src/app/main/ui/settings/options.cljs:80 msgid "title.settings.options" msgstr "Innstillinger - Penpot" -#: src/app/main/ui/settings/password.cljs -#, fuzzy +#: src/app/main/ui/settings/password.cljs:115 msgid "title.settings.password" msgstr "Passord - Penpot" -#: src/app/main/ui/settings/profile.cljs -#, fuzzy +#: src/app/main/ui/settings/profile.cljs:115 msgid "title.settings.profile" msgstr "Profil - Penpot" -#: src/app/main/ui/dashboard/team.cljs -#, fuzzy +#: src/app/main/ui/dashboard/team.cljs:1036 msgid "title.team-settings" msgstr "Innstillinger - %s - Penpot" -#: src/app/main/ui/workspace.cljs -#, fuzzy +#: src/app/main/ui/workspace.cljs:190 msgid "title.workspace" msgstr "%s - Penpot" -#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/dashboard/grid.cljs:130, src/app/main/ui/dashboard/grid.cljs:162, src/app/main/ui/workspace/sidebar/assets/colors.cljs:485, src/app/main/ui/workspace/sidebar/assets.cljs:150 msgid "workspace.assets.colors" msgstr "Farger" -#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/dashboard/grid.cljs:126, src/app/main/ui/dashboard/grid.cljs:141, src/app/main/ui/workspace/sidebar/assets/components.cljs:513, src/app/main/ui/workspace/sidebar/assets.cljs:139 msgid "workspace.assets.components" msgstr "Komponenter" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:131 msgid "workspace.assets.create-group" msgstr "Opprett en gruppe" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/context_menu.cljs:529, src/app/main/ui/workspace/sidebar/assets/colors.cljs:251, src/app/main/ui/workspace/sidebar/assets/components.cljs:577, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:424, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:443 msgid "workspace.assets.delete" msgstr "Slett" -#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:247, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:439 msgid "workspace.assets.edit" msgstr "Rediger" -#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/graphics.cljs:384, src/app/main/ui/workspace/sidebar/assets.cljs:145 msgid "workspace.assets.graphics" msgstr "Grafikk" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:255, src/app/main/ui/workspace/sidebar/assets/components.cljs:581, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:428, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:448 msgid "workspace.assets.group" msgstr "Gruppe" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:141 msgid "workspace.assets.group-name" msgstr "Gruppenavn" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets.cljs:168 msgid "workspace.assets.libraries" msgstr "Bibliotek" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/context_menu.cljs:532, src/app/main/ui/workspace/sidebar/assets/colors.cljs:243, src/app/main/ui/workspace/sidebar/assets/components.cljs:566, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:421, src/app/main/ui/workspace/sidebar/assets/groups.cljs:63, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:434 msgid "workspace.assets.rename" msgstr "Gi nytt navn" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused msgid "workspace.assets.typography.font-id" msgstr "Skrift" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:505 msgid "workspace.assets.typography.font-size" msgstr "Størrelse" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:501 msgid "workspace.assets.typography.font-variant-id" msgstr "Variant" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:321 msgid "workspace.header.menu.show-rules" msgstr "Vis regler" #: src/app/main/ui/workspace/libraries.cljs +#, unused msgid "workspace.libraries.add" msgstr "Legg til" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:80, src/app/main/ui/workspace/libraries.cljs:99 msgid "workspace.libraries.colors" msgstr "%s farger" -#: src/app/main/ui/workspace/colorpicker/libraries.cljs, src/app/main/ui/workspace/colorpalette.cljs +#: src/app/main/ui/workspace/color_palette_ctx_menu.cljs:60, src/app/main/ui/workspace/colorpicker/libraries.cljs:73, src/app/main/ui/workspace/text_palette_ctx_menu.cljs:50 msgid "workspace.libraries.colors.file-library" msgstr "Filbibliotek" -#: src/app/main/ui/workspace/colorpicker/libraries.cljs, src/app/main/ui/workspace/colorpalette.cljs +#: src/app/main/ui/workspace/color_palette_ctx_menu.cljs:82, src/app/main/ui/workspace/colorpicker/libraries.cljs:72 msgid "workspace.libraries.colors.recent-colors" msgstr "Nylige farger" -#: src/app/main/ui/workspace/colorpicker.cljs +#: src/app/main/ui/workspace/colorpicker.cljs:372 msgid "workspace.libraries.colors.save-color" msgstr "Lagre fargestil" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:74, src/app/main/ui/workspace/libraries.cljs:91 msgid "workspace.libraries.components" msgstr "%s komponenter" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:215 msgid "workspace.libraries.file-library" msgstr "Filbibliotek" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:600, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:605 msgid "workspace.options.component" msgstr "Komponent" -#: src/app/main/ui/workspace/sidebar/options.cljs +#: src/app/main/ui/workspace/sidebar/options.cljs:112 msgid "workspace.options.design" msgstr "Design" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs +#: src/app/main/ui/export.cljs:172, src/app/main/ui/export.cljs:241, src/app/main/ui/viewer/inspect/exports.cljs:194, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:236 msgid "workspace.options.exporting-object" msgstr "Eksporterer …" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused msgid "workspace.options.grid.params.columns" msgstr "Kolonner" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:246 msgid "workspace.options.grid.params.height" msgstr "Høyde" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused msgid "workspace.options.grid.params.rows" msgstr "Rader" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:216, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:290 msgid "workspace.options.grid.params.set-default" msgstr "Sett som forvalg" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused msgid "workspace.options.grid.params.size" msgstr "Størrelse" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused msgid "workspace.options.grid.params.type" msgstr "Type" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:211, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:288 msgid "workspace.options.grid.params.use-default" msgstr "Bruk forvalg" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:247 msgid "workspace.options.grid.params.width" msgstr "Bredde" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:158 msgid "workspace.options.grid.row" msgstr "Rader" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:127 msgid "workspace.options.layer-options.blend-mode.lighten" msgstr "Lysne" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:128 msgid "workspace.options.layer-options.blend-mode.screen" msgstr "Skjerm" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:532 msgid "workspace.options.radius.all-corners" msgstr "Alle hjørner" diff --git a/frontend/translations/nl.po b/frontend/translations/nl.po index 7e3bf1d07e..702293e5b8 100644 --- a/frontend/translations/nl.po +++ b/frontend/translations/nl.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "PO-Revision-Date: 2024-06-17 08:07+0000\n" "Last-Translator: Anonymous \n" -"Language-Team: Dutch \n" +"Language-Team: Dutch " +"\n" "Language: nl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" @@ -11,502 +11,536 @@ msgstr "" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 5.6-dev\n" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:151, src/app/main/ui/viewer/login.cljs:104 msgid "auth.already-have-account" msgstr "Heb je al een account?" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:299 msgid "auth.check-your-email" msgstr "" "Controleer je e-mail en klik op de link om te verifiëren en Penpot te gaan " "gebruiken." -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:78 msgid "auth.confirm-password" msgstr "Wachtwoord bevestigen" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/register.cljs:163 msgid "auth.create-demo-account" msgstr "Demo-account aanmaken" #: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#, unused msgid "auth.create-demo-profile" msgstr "Wil je het gewoon proberen?" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/login.cljs:43 msgid "auth.demo-warning" msgstr "" "Dit is een DEMO-service, GEBRUIK DIT NIET voor echt werk, de projecten " "worden regelmatig gewist." -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:189, src/app/main/ui/viewer/login.cljs:90 msgid "auth.forgot-password" msgstr "Wachtwoord vergeten?" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:254 msgid "auth.fullname" msgstr "Volledige naam" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:282 msgid "auth.login-account-title" msgstr "Log in op mijn account" -#: src/app/main/ui/auth/register.cljs -#, fuzzy +#: src/app/main/ui/auth/register.cljs:155, src/app/main/ui/viewer/login.cljs:107 msgid "auth.login-here" msgstr "Hier inloggen" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:195 msgid "auth.login-submit" msgstr "Inloggen" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:285 msgid "auth.login-tagline" msgstr "" "Penpot is de gratis open-source ontwerptool voor samenwerking op het gebied " "van ontwerp en code" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:222 msgid "auth.login-with-github-submit" msgstr "GitHub" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:228 msgid "auth.login-with-gitlab-submit" msgstr "GitLab" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:216 msgid "auth.login-with-google-submit" msgstr "Google" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:201 msgid "auth.login-with-ldap-submit" msgstr "LDAP" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:234, src/app/main/ui/auth/login.cljs:255 msgid "auth.login-with-oidc-submit" msgstr "OpenID" -#: src/app/main/ui/settings/team-form.cljs, src/app/main/ui/auth/register.cljs, -#: src/app/main/ui/dashboard/team_form.cljs, -#: src/app/main/ui/onboarding/team_choice.cljs, -#: src/app/main/ui/settings/access_tokens.cljs, -#: src/app/main/ui/settings/feedback.cljs, -#: src/app/main/ui/settings/profile.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/auth/register.cljs:217, src/app/main/ui/dashboard/team_form.cljs:76, src/app/main/ui/onboarding/team_choice.cljs:180, src/app/main/ui/settings/access_tokens.cljs:66, src/app/main/ui/settings/feedback.cljs:34, src/app/main/ui/settings/profile.cljs:45, src/app/main/ui/workspace/sidebar/assets/groups.cljs:108 msgid "auth.name.not-all-space" msgstr "De naam mag geen spatie bevatten." -#: src/app/main/ui/auth/register.cljs, -#: src/app/main/ui/dashboard/team_form.cljs, -#: src/app/main/ui/onboarding/team_choice.cljs, -#: src/app/main/ui/settings/access_tokens.cljs, -#: src/app/main/ui/settings/feedback.cljs, -#: src/app/main/ui/settings/profile.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/auth/register.cljs:218, src/app/main/ui/dashboard/team_form.cljs:77, src/app/main/ui/onboarding/team_choice.cljs:181, src/app/main/ui/settings/access_tokens.cljs:67, src/app/main/ui/settings/feedback.cljs:33, src/app/main/ui/settings/profile.cljs:44, src/app/main/ui/workspace/sidebar/assets/groups.cljs:109 msgid "auth.name.too-long" msgstr "De naam mag maximaal 250 tekens bevatten." -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:71 msgid "auth.new-password" msgstr "Typ een nieuw wachtwoord" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:42 msgid "auth.notifications.invalid-token-error" msgstr "De herstelbewijsstuk is ongeldig." -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:46 msgid "auth.notifications.password-changed-successfully" msgstr "Wachtwoord succesvol gewijzigd" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:57 msgid "auth.notifications.profile-not-verified" msgstr "Profiel is niet geverifieerd. Verifieer het profiel voordat je verder gaat." -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:40 msgid "auth.notifications.recovery-token-sent" msgstr "Wachtwoordherstel-link is per e-mail naar je verzonden." -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:47 msgid "auth.notifications.team-invitation-accepted" msgstr "Succesvol toegetreden tot het team" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:179, src/app/main/ui/auth/register.cljs:115 msgid "auth.password" msgstr "Wachtwoord" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:114 msgid "auth.password-length-hint" msgstr "Minimaal 8 tekens" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/recovery.cljs:61, src/app/main/ui/auth/recovery.cljs:62, src/app/main/ui/auth/register.cljs:81, src/app/main/ui/settings/password.cljs:75, src/app/main/ui/settings/password.cljs:76, src/app/main/ui/settings/password.cljs:77 msgid "auth.password-not-empty" msgstr "Het wachtwoord mag geen spatie bevatten." +#: src/app/main/ui/auth.cljs:41 msgid "auth.privacy-policy" msgstr "Privacybeleid" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:88 msgid "auth.recovery-request-submit" msgstr "Wachtwoord herstellen" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:101 msgid "auth.recovery-request-subtitle" msgstr "We sturen je een e-mail met instructies" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:100 msgid "auth.recovery-request-title" msgstr "Wachtwoord vergeten?" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:82 msgid "auth.recovery-submit" msgstr "Wachtwoord wijzigen" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:298, src/app/main/ui/viewer/login.cljs:93 msgid "auth.register" msgstr "Nog geen account?" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:302, src/app/main/ui/auth/register.cljs:121, src/app/main/ui/auth/register.cljs:263, src/app/main/ui/viewer/login.cljs:97 msgid "auth.register-submit" msgstr "Account aanmaken" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:140 msgid "auth.register-title" msgstr "Account aanmaken" #: src/app/main/ui/auth.cljs +#, unused msgid "auth.sidebar-tagline" msgstr "De open-source oplossing voor ontwerp en prototyping." +#: src/app/main/ui/auth.cljs:33, src/app/main/ui/dashboard/sidebar.cljs:1022, src/app/main/ui/workspace/main_menu.cljs:150 msgid "auth.terms-of-service" msgstr "Gebruiksvoorwaarden" -#: src/app/main/ui/auth/register.cljs +#, unused msgid "auth.terms-privacy-agreement" msgstr "" "Met het aanmaken van een nieuw account ga je akkoord met onze " "gebruiksvoorwaarden en ons privacybeleid." -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:297 msgid "auth.verification-email-sent" msgstr "We hebben een verificatie-e-mail verzonden naar" #: src/app/main/ui/onboarding/questions.cljs +#, unused msgid "branding-illustrations-marketing-pieces" msgstr "…branding, illustraties, marketingstukken, etc." +#: src/app/main/ui/workspace/libraries.cljs:228 msgid "common.publish" msgstr "Publiceren" +#: src/app/main/ui/viewer/share_link.cljs:304, src/app/main/ui/viewer/share_link.cljs:314 msgid "common.share-link.all-users" msgstr "Alle Penpot-gebruikers" +#: src/app/main/ui/viewer/share_link.cljs:198 msgid "common.share-link.confirm-deletion-link-description" msgstr "" "Weet je zeker dat je deze link wilt verwijderen? Als je dit doet, is het " "voor niemand meer beschikbaar" +#: src/app/main/ui/viewer/share_link.cljs:259, src/app/main/ui/viewer/share_link.cljs:289 msgid "common.share-link.current-tag" msgstr "(huidig)" +#: src/app/main/ui/viewer/share_link.cljs:207, src/app/main/ui/viewer/share_link.cljs:214 msgid "common.share-link.destroy-link" msgstr "Link verwijderen" +#: src/app/main/ui/viewer/share_link.cljs:221 msgid "common.share-link.get-link" msgstr "Link ophalen" +#: src/app/main/ui/viewer/share_link.cljs:139 msgid "common.share-link.link-copied-success" msgstr "Link gekopieerd" +#: src/app/main/ui/viewer/share_link.cljs:231 msgid "common.share-link.manage-ops" msgstr "Rechten beheren" +#: src/app/main/ui/viewer/share_link.cljs:277 msgid "common.share-link.page-shared" msgid_plural "common.share-link.page-shared" msgstr[0] "1 pagina gedeeld" msgstr[1] "%s pagina's gedeeld" +#: src/app/main/ui/viewer/share_link.cljs:298 msgid "common.share-link.permissions-can-comment" msgstr "Kan commentaar geven" +#: src/app/main/ui/viewer/share_link.cljs:308 msgid "common.share-link.permissions-can-inspect" msgstr "Kan code inspecteren" +#: src/app/main/ui/viewer/share_link.cljs:193 msgid "common.share-link.permissions-hint" msgstr "Iedereen met de link heeft toegang" +#: src/app/main/ui/viewer/share_link.cljs:241 msgid "common.share-link.permissions-pages" msgstr "Gedeelde pagina's" +#: src/app/main/ui/viewer/share_link.cljs:183 msgid "common.share-link.placeholder" msgstr "De deelbare link zal hier verschijnen" +#: src/app/main/ui/viewer/share_link.cljs:303, src/app/main/ui/viewer/share_link.cljs:313 msgid "common.share-link.team-members" msgstr "Alleen teamleden" +#: src/app/main/ui/viewer/share_link.cljs:171 msgid "common.share-link.title" msgstr "Prototypes delen" +#: src/app/main/ui/viewer/share_link.cljs:269 msgid "common.share-link.view-all" msgstr "Alles selecteren" +#: src/app/main/ui/workspace/libraries.cljs:224 msgid "common.unpublish" msgstr "Publicatie ongedaan maken" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:85 msgid "dasboard.team-hero.management" msgstr "Teambeheer" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:84 msgid "dasboard.team-hero.text" msgstr "" "Penpot is bedoeld voor teams. Nodig leden uit om samen te werken aan " "projecten en bestanden" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:82 msgid "dasboard.team-hero.title" msgstr "Werk samen!" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.tutorial-hero.info" msgstr "" "Leer de basisprincipes van Penpot terwijl je plezier hebt met deze " "interactieve introductie." #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.tutorial-hero.start" msgstr "Start de introductie" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.tutorial-hero.title" msgstr "Praktische introductie" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.walkthrough-hero.info" msgstr "Maak een rondleiding door Penpot en leer de belangrijkste functies kennen." #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.walkthrough-hero.start" msgstr "Start de rondleiding" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.walkthrough-hero.title" msgstr "Rondleiding door de interface" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:115 msgid "dashboard.access-tokens.copied-success" msgstr "Toegangsbewijs gekopieerd" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:202 msgid "dashboard.access-tokens.create" msgstr "Nieuw toegangsbewijs aanmaken" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:76 msgid "dashboard.access-tokens.create.success" msgstr "Toegangsbewijs is succesvol aangemaakt." -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:300 msgid "dashboard.access-tokens.empty.add-one" msgstr "Klik op de knop \"Nieuw toegangsbewijs aanmaken\" om er een aan te maken." -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:299 msgid "dashboard.access-tokens.empty.no-access-tokens" msgstr "Je hebt nog geen toegangsbewijzen." -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:53 msgid "dashboard.access-tokens.errors-required-name" msgstr "De naam is verplicht" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:147 msgid "dashboard.access-tokens.expiration-180-days" msgstr "180 dagen" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:144 msgid "dashboard.access-tokens.expiration-30-days" msgstr "30 dagen" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:145 msgid "dashboard.access-tokens.expiration-60-days" msgstr "60 dagen" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:146 msgid "dashboard.access-tokens.expiration-90-days" msgstr "90 dagen" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:143 msgid "dashboard.access-tokens.expiration-never" msgstr "Nooit" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:282 msgid "dashboard.access-tokens.expired-on" msgstr "Verlopen op %s" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:283 msgid "dashboard.access-tokens.expires-on" msgstr "Verloopt op %s" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:281 msgid "dashboard.access-tokens.no-expiration" msgstr "Geen verloopdatum" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:197 msgid "dashboard.access-tokens.personal" msgstr "Persoonlijke toegangsbewijzen" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:198 msgid "dashboard.access-tokens.personal.description" msgstr "" "Persoonlijke toegangsbewijzen functioneren als alternatief voor ons " "login/wachtwoord-authenticatiesysteem en kunnen worden gebruikt om een " "applicatie toegang te geven tot de interne Penpot API" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:154 msgid "dashboard.access-tokens.token-will-expire" msgstr "Het toegangsbewijs verloopt op %s" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:155 msgid "dashboard.access-tokens.token-will-not-expire" msgstr "Het toegangsbewijs heeft geen verloopdatum" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:291, src/app/main/ui/workspace/main_menu.cljs:572 msgid "dashboard.add-shared" msgstr "Toevoegen als gedeelde bibliotheek" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:75 msgid "dashboard.change-email" msgstr "E-mailadres wijzigen" -#: src/app/main/data/dashboard.cljs, src/app/main/data/dashboard.cljs +#: src/app/main/data/dashboard.cljs:762, src/app/main/data/dashboard.cljs:983 msgid "dashboard.copy-suffix" msgstr "(kopie)" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:338 msgid "dashboard.create-new-team" msgstr "Nieuw team aanmaken" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/components/context_menu_a11y.cljs:256, src/app/main/ui/dashboard/sidebar.cljs:646 msgid "dashboard.default-team-name" msgstr "Jouw Penpot" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:571 msgid "dashboard.delete-team" msgstr "Team verwijderen" +#: src/app/main/ui/dashboard/file_menu.cljs:296, src/app/main/ui/workspace/main_menu.cljs:589 msgid "dashboard.download-binary-file" msgstr "Penpot-bestand downloaden (.penpot)" +#: src/app/main/ui/dashboard/file_menu.cljs:300, src/app/main/ui/workspace/main_menu.cljs:597 msgid "dashboard.download-standard-file" msgstr "Standaardbestand downloaden (.svg + .json)" -#: src/app/main/ui/dashboard/project_menu.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:276, src/app/main/ui/dashboard/project_menu.cljs:90 msgid "dashboard.duplicate" msgstr "Dupliceren" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:240 msgid "dashboard.duplicate-multi" msgstr "%s bestanden dupliceren" -#: src/app/main/ui/dashboard/grid.cljs +#: src/app/main/ui/dashboard/placeholder.cljs:32 +#, markdown msgid "dashboard.empty-placeholder-drafts" msgstr "" "Bestanden die aan bibliotheken zijn toegevoegd, worden hier weergegeven. " "Probeer je bestanden te delen of toe te voegen vanuit onze [Bibliotheken & " "sjablonen] (https://penpot.app/libraries-templates)." +#: src/app/main/ui/dashboard/file_menu.cljs:249 msgid "dashboard.export-binary-multi" msgstr "%s Penpot-bestanden downloaden (.penpot)" +#: src/app/main/ui/workspace/main_menu.cljs:605 msgid "dashboard.export-frames" msgstr "Borden exporteren als PDF" -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:201 msgid "dashboard.export-frames.title" msgstr "Exporteren als PDF" +#, unused msgid "dashboard.export-multi" msgstr "%s Penpot-bestanden exporteren" -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:109 msgid "dashboard.export-multiple.selected" msgstr "%s van %s elementen geselecteerd" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:578 msgid "dashboard.export-shapes" msgstr "Exporteren" -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:180 msgid "dashboard.export-shapes.how-to" msgstr "" "Je kunt exportinstellingen toevoegen aan elementen vanuit de " "ontwerpeigenschappen (onderaan de rechter zijbalk)." -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:184 msgid "dashboard.export-shapes.how-to-link" msgstr "Info over het instellen van exports in Penpot." -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:179 msgid "dashboard.export-shapes.no-elements" msgstr "Er zijn geen elementen met exportinstellingen." -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:190 msgid "dashboard.export-shapes.title" msgstr "Selectie exporteren" +#: src/app/main/ui/dashboard/file_menu.cljs:252 msgid "dashboard.export-standard-multi" msgstr "%s standaardbestanden downloaden (.svg + .json)" +#: src/app/main/ui/export.cljs:427 msgid "dashboard.export.detail" msgstr "* Kan componenten, afbeeldingen, kleuren en/of typografie bevatten." +#: src/app/main/ui/export.cljs:426 msgid "dashboard.export.explain" msgstr "" "Een of meer bestanden die je wilt exporteren maken gebruik van gedeelde " "bibliotheken. Wat wil je doen met hun assets*?" +#: src/app/main/ui/export.cljs:435 msgid "dashboard.export.options.all.message" msgstr "" "Bestanden met gedeelde bibliotheken worden opgenomen in de export en hun " "koppelingen worden behouden." +#: src/app/main/ui/export.cljs:436 msgid "dashboard.export.options.all.title" msgstr "Gedeelde bibliotheken exporteren" +#: src/app/main/ui/export.cljs:437 msgid "dashboard.export.options.detach.message" msgstr "" "Gedeelde bibliotheken worden niet opgenomen in de export en er worden geen " "assets aan de bibliotheek toegevoegd. " +#: src/app/main/ui/export.cljs:438 msgid "dashboard.export.options.detach.title" msgstr "Gedeelde bibliotheek-assets als basisobjecten behandelen" +#: src/app/main/ui/export.cljs:439 msgid "dashboard.export.options.merge.message" msgstr "" "Je bestand wordt geëxporteerd met alle externe assets samengevoegd in de " "bestandsbibliotheek." +#: src/app/main/ui/export.cljs:440 msgid "dashboard.export.options.merge.title" msgstr "Inclusief gedeelde bibliotheek-assets in bestandsbibliotheken" +#: src/app/main/ui/export.cljs:418 msgid "dashboard.export.title" msgstr "Bestanden exporteren" +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:309 msgid "dashboard.fonts.deleted-placeholder" msgstr "Lettertype ontbreekt" -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:206 msgid "dashboard.fonts.dismiss-all" msgstr "Alles negeren" +#: src/app/main/ui/dashboard/fonts.cljs:436 msgid "dashboard.fonts.empty-placeholder" msgstr "Aangepaste lettertypen die je uploadt, verschijnen hier." -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:194 msgid "dashboard.fonts.fonts-added" msgid_plural "dashboard.fonts.fonts-added" msgstr[0] "1 lettertype toegevoegd" msgstr[1] "%s lettertypes toegevoegd" +#: src/app/main/ui/dashboard/fonts.cljs:170 +#, markdown msgid "dashboard.fonts.hero-text1" msgstr "" "Elk web-lettertype dat je hier uploadt zal worden toegevoegd aan de " @@ -514,6 +548,8 @@ msgstr "" "Lettertypen worden gegroepeerd op familienaam. Je kunt lettertypen uploaden " "met de volgende formaten: **TTF, OTF en WOFF** (slechts één formaat nodig)." +#: src/app/main/ui/dashboard/fonts.cljs:182 +#, markdown msgid "dashboard.fonts.hero-text2" msgstr "" "Je mag alleen lettertypen uploaden waarvan je de eigenaar bent of waarvoor " @@ -522,10 +558,12 @@ msgstr "" "Servicevoorwaarden](https://penpot.app/terms.html). Misschien wil je ook " "meer lezen over [lettertypelicenties](https://www.typography.com/faq)." -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:202 msgid "dashboard.fonts.upload-all" msgstr "Alles uploaden" +#: src/app/main/ui/dashboard/fonts.cljs:187 +#, markdown msgid "dashboard.fonts.warning-text" msgstr "" "We hebben een mogelijk probleem gevonden in je lettertypen met betrekking " @@ -535,402 +573,420 @@ msgstr "" "[Transfonter](https://transfonter.org/) te gebruiken om web-lettertypen te " "genereren en soortgelijke fouten op te lossen. " +#: src/app/main/ui/dashboard/import.cljs:472, src/app/main/ui/dashboard/project_menu.cljs:108 msgid "dashboard.import" msgstr "Importeer Penpot-bestanden" +#: src/app/main/ui/dashboard/import.cljs:304, src/app/worker/import.cljs:753, src/app/worker/import.cljs:755 msgid "dashboard.import.analyze-error" msgstr "Oeps! We konden dit bestand niet importeren" +#, unused msgid "dashboard.import.analyze-error.components-v2" msgstr "" "Bestand met componenten v2 geactiveerd, maar dit team ondersteunt dit nog " "niet." +#: src/app/main/ui/dashboard/import.cljs:308 msgid "dashboard.import.import-error" msgstr "" "Er is een probleem opgetreden bij het importeren van het bestand. Het " "bestand is niet geïmporteerd." +#: src/app/main/ui/dashboard/import.cljs:493 msgid "dashboard.import.import-message" msgid_plural "dashboard.import.import-message" msgstr[0] "1 bestand is geïmporteerd." msgstr[1] "%s bestanden zijn geïmporteerd." +#: src/app/main/ui/dashboard/import.cljs:481, src/app/main/ui/dashboard/import.cljs:488 msgid "dashboard.import.import-warning" msgstr "Sommige bestanden bevatten ongeldige objecten die verwijderd zijn." +#: src/app/main/ui/dashboard/import.cljs:144 msgid "dashboard.import.progress.process-colors" msgstr "Kleuren aan het verwerken" +#: src/app/main/ui/dashboard/import.cljs:153 msgid "dashboard.import.progress.process-components" msgstr "Componenten aan het verwerken" +#: src/app/main/ui/dashboard/import.cljs:150 msgid "dashboard.import.progress.process-media" msgstr "Media aan het verwerken" +#: src/app/main/ui/dashboard/import.cljs:141 msgid "dashboard.import.progress.process-page" msgstr "Pagina aan het verwerkten: %s" +#: src/app/main/ui/dashboard/import.cljs:147 msgid "dashboard.import.progress.process-typographies" msgstr "Typografie verwerken" +#: src/app/main/ui/dashboard/import.cljs:135 msgid "dashboard.import.progress.upload-data" msgstr "Gegevens uploaden naar server (%s/%s)" +#: src/app/main/ui/dashboard/import.cljs:138 msgid "dashboard.import.progress.upload-media" msgstr "Bestand aan het uploaden: %s" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:109 msgid "dashboard.invite-profile" msgstr "Nodig mensen uit" -#: src/app/main/ui/dashboard/sidebar.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:547, src/app/main/ui/dashboard/sidebar.cljs:556, src/app/main/ui/dashboard/sidebar.cljs:563, src/app/main/ui/dashboard/team.cljs:312 msgid "dashboard.leave-team" msgstr "Team verlaten" +#: src/app/main/ui/dashboard/templates.cljs:88, src/app/main/ui/dashboard/templates.cljs:163 msgid "dashboard.libraries-and-templates" msgstr "Bibliotheken & sjablonen" +#: src/app/main/ui/dashboard/templates.cljs:164 msgid "dashboard.libraries-and-templates.explore" msgstr "Ontdek er meer van en weet hoe je kunt bijdragen" +#: src/app/main/ui/dashboard/import.cljs:365 msgid "dashboard.libraries-and-templates.import-error" msgstr "" "Er is een probleem opgetreden bij het importeren van het sjabloon. Het " "sjabloon is niet geïmporteerd." -#: src/app/main/ui/dashboard/libraries.cljs +#: src/app/main/ui/dashboard/libraries.cljs:53 msgid "dashboard.libraries-title" msgstr "Bibliotheken" -#: src/app/main/ui/dashboard/grid.cljs +#: src/app/main/ui/dashboard/placeholder.cljs:45 msgid "dashboard.loading-files" msgstr "bestanden laden …" +#: src/app/main/ui/dashboard/fonts.cljs:431 msgid "dashboard.loading-fonts" msgstr "lettertypen laden …" -#: src/app/main/ui/dashboard/project_menu.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:281, src/app/main/ui/dashboard/project_menu.cljs:100 msgid "dashboard.move-to" msgstr "Verplaats naar" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:245 msgid "dashboard.move-to-multi" msgstr "Verplaats %s bestanden naar" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:226 msgid "dashboard.move-to-other-team" msgstr "Verplaats naar ander team" -#: src/app/main/ui/dashboard/projects.cljs, -#: src/app/main/ui/dashboard/files.cljs +#: src/app/main/ui/dashboard/files.cljs:105, src/app/main/ui/dashboard/projects.cljs:252, src/app/main/ui/dashboard/projects.cljs:253 msgid "dashboard.new-file" msgstr "+ Nieuw bestand" -#: src/app/main/data/dashboard.cljs +#: src/app/main/data/dashboard.cljs:958, src/app/main/data/dashboard.cljs:1181 msgid "dashboard.new-file-prefix" msgstr "Nieuw bestand" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:55 msgid "dashboard.new-project" msgstr "+ Nieuw project" -#: src/app/main/data/dashboard.cljs +#: src/app/main/data/dashboard.cljs:726, src/app/main/data/dashboard.cljs:1184 msgid "dashboard.new-project-prefix" msgstr "Nieuw project" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:60 msgid "dashboard.no-matches-for" msgstr "Geen overeenkomsten gevonden voor \"%s\"" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:827 msgid "dashboard.no-projects-placeholder" msgstr "Vastgemaakte projecten worden hier weergegeven" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:33 msgid "dashboard.notifications.email-changed-successfully" msgstr "Je e-mailadres is succesvol bijgewerkt" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:27 msgid "dashboard.notifications.email-verified-successfully" msgstr "Je e-mailadres is geverifieerd" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:37 msgid "dashboard.notifications.password-saved" msgstr "Wachtwoord succesvol opgeslagen!" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1081 msgid "dashboard.num-of-members" msgstr "%s leden" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:267 msgid "dashboard.open-in-new-tab" msgstr "Bestand openen in een nieuw tabblad" +#: src/app/main/ui/dashboard/files.cljs:117, src/app/main/ui/dashboard/projects.cljs:260, src/app/main/ui/dashboard/projects.cljs:261 msgid "dashboard.options" msgstr "Opties" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:106, src/app/main/ui/settings/password.cljs:119 msgid "dashboard.password-change" msgstr "Verander wachtwoord" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/pin_button.cljs:24, src/app/main/ui/dashboard/project_menu.cljs:95 msgid "dashboard.pin-unpin" msgstr "Vastzetten/losmaken" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:51 msgid "dashboard.projects-title" msgstr "Projecten" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:86 msgid "dashboard.remove-account" msgstr "Wil je je account verwijderen?" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "dashboard.remove-shared" msgstr "Verwijder als gedeelde bibliotheek" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:78 msgid "dashboard.save-settings" msgstr "Instellingen opslaan" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:246, src/app/main/ui/dashboard/sidebar.cljs:247 msgid "dashboard.search-placeholder" msgstr "Zoeken…" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:55 msgid "dashboard.searching-for" msgstr "Zoeken naar \"%s\"…" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:56 msgid "dashboard.select-ui-language" msgstr "Taal selecteren" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:63 msgid "dashboard.select-ui-theme" msgstr "Thema selecteren" -#: src/app/main/ui/dashboard/grid.cljs +#: src/app/main/ui/dashboard/projects.cljs:282 msgid "dashboard.show-all-files" msgstr "Alle bestanden tonen" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:96 msgid "dashboard.success-delete-file" msgid_plural "dashboard.success-delete-file" msgstr[0] "Je bestand is succesvol verwijderd" msgstr[1] "Je bestanden zijn succesvol verwijderd" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:59 msgid "dashboard.success-delete-project" msgstr "Je project is succesvol verwijderd" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:91 msgid "dashboard.success-duplicate-file" msgid_plural "dashboard.success-delete-file" msgstr[0] "Je bestand is succesvol gedupliceerd" msgstr[1] "Je bestanden zijn succesvol gedupliceerd" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:33 msgid "dashboard.success-duplicate-project" msgstr "Je project is succesvol gedupliceerd" -#: src/app/main/ui/dashboard/grid.cljs, src/app/main/ui/dashboard/sidebar.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:130, src/app/main/ui/dashboard/grid.cljs:558, src/app/main/ui/dashboard/sidebar.cljs:152 msgid "dashboard.success-move-file" msgstr "Je bestand is succesvol verplaatst" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:129 msgid "dashboard.success-move-files" msgstr "Je bestanden zijn succesvol verplaatst" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:54 msgid "dashboard.success-move-project" msgstr "Je project is succesvol verplaatst" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1052 msgid "dashboard.team-info" msgstr "Team info" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1070 msgid "dashboard.team-members" msgstr "Teamleden" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1085 msgid "dashboard.team-projects" msgstr "Teamprojecten" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:61 msgid "dashboard.theme-change" msgstr "UI thema" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:42 msgid "dashboard.title-search" msgstr "Zoekresultaten" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:50 msgid "dashboard.type-something" msgstr "Typ om te zoeken" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:287, src/app/main/ui/workspace/main_menu.cljs:566 msgid "dashboard.unpublish-shared" msgstr "Publicatie Bibliotheek ongedaan maken" -#: src/app/main/ui/settings/password.cljs, -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:71 msgid "dashboard.update-settings" msgstr "Instellingen bijwerken" +#: src/app/main/ui/dashboard/team.cljs:861 msgid "dashboard.webhooks.active" msgstr "Is actief" +#: src/app/main/ui/dashboard/team.cljs:862 msgid "dashboard.webhooks.active.explain" msgstr "Wanneer deze hook wordt getriggerd, worden gebeurtenisdetails afgeleverd" +#: src/app/main/ui/dashboard/team.cljs:852 msgid "dashboard.webhooks.content-type" msgstr "Contenttype" +#: src/app/main/ui/dashboard/team.cljs:885 msgid "dashboard.webhooks.create" msgstr "Maak webhook" +#: src/app/main/ui/dashboard/team.cljs:775 msgid "dashboard.webhooks.create.success" msgstr "Webhook is succesvol aangemaakt." +#: src/app/main/ui/dashboard/team.cljs:882 msgid "dashboard.webhooks.description" msgstr "" "Webhooks zijn een eenvoudige manier om andere websites en apps op de hoogte " "te stellen wanneer bepaalde gebeurtenissen bij Penpot plaatsvinden. We " "sturen een POST-verzoek naar elke URL die je opgeeft." +#: src/app/main/ui/dashboard/team.cljs:1005 msgid "dashboard.webhooks.empty.add-one" msgstr "Druk op de knop \"Maak webhook\" om er een aan te maken." +#: src/app/main/ui/dashboard/team.cljs:1004 msgid "dashboard.webhooks.empty.no-webhooks" msgstr "Er zijn nog geen webhooks aangemaakt." +#, unused msgid "dashboard.webhooks.update.success" msgstr "Webhook is bijgewerkt." -#: src/app/main/ui/settings.cljs +#: src/app/main/ui/settings.cljs:31 msgid "dashboard.your-account-title" msgstr "Jouw account" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:70 msgid "dashboard.your-email" msgstr "E-mail" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:62 msgid "dashboard.your-name" msgstr "Naam" -#: src/app/main/ui/dashboard/search.cljs, src/app/main/ui/dashboard/team.cljs, -#: src/app/main/ui/dashboard/libraries.cljs, -#: src/app/main/ui/dashboard/projects.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:38, src/app/main/ui/dashboard/fonts.cljs:33, src/app/main/ui/dashboard/libraries.cljs:42, src/app/main/ui/dashboard/projects.cljs:318, src/app/main/ui/dashboard/search.cljs:30, src/app/main/ui/dashboard/sidebar.cljs:312, src/app/main/ui/dashboard/team.cljs:495, src/app/main/ui/dashboard/team.cljs:729, src/app/main/ui/dashboard/team.cljs:991, src/app/main/ui/dashboard/team.cljs:1038 msgid "dashboard.your-penpot" msgstr "Jouw Penpot" -#: src/app/main/ui/alert.cljs +#: src/app/main/ui/alert.cljs:32 msgid "ds.alert-ok" msgstr "Oké" -#: src/app/main/ui/alert.cljs +#: src/app/main/ui/alert.cljs:31, src/app/main/ui/alert.cljs:34 msgid "ds.alert-title" msgstr "Waarschuwing" -#: src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:83 msgid "ds.component-subtitle" msgstr "Componenten bijwerken:" -#: src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:36, src/app/main/ui/workspace/plugins.cljs:246 msgid "ds.confirm-cancel" msgstr "Annuleren" -#: src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:37, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:141 msgid "ds.confirm-ok" msgstr "Oké" -#: src/app/main/ui/confirm.cljs, src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:35, src/app/main/ui/confirm.cljs:39 msgid "ds.confirm-title" msgstr "Weet je het zeker?" -#: src/app/main/data/users.cljs +#: src/app/main/data/users.cljs:705 msgid "errors.auth-provider-not-allowed" msgstr "Auth-provider is niet toegestaan voor dit profiel" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:62 msgid "errors.auth-provider-not-configured" msgstr "Authenticatie-provider niet geconfigureerd." +#: src/app/main/errors.cljs:104 msgid "errors.auth.unable-to-login" msgstr "" "Het lijkt erop dat je niet geauthentiseerd bent of dat de sessie is " "verlopen." +#: src/app/main/data/fonts.cljs:189 msgid "errors.bad-font" msgstr "Het lettertype %s kon niet geladen worden" +#: src/app/main/data/fonts.cljs:188 msgid "errors.bad-font-plural" msgstr "De lettertypen %s konden niet geladen worden" +#: src/app/main/data/workspace/media.cljs:198 msgid "errors.cannot-upload" msgstr "Kan het mediabestand niet uploaden." -#: src/app/main/data/workspace.cljs +#: src/app/main/data/workspace.cljs:1598 msgid "errors.clipboard-not-implemented" msgstr "Je browser kan deze functie niet uitvoeren" -#: src/app/main/ui/auth/verify_token.cljs, -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/auth/verify_token.cljs:82, src/app/main/ui/settings/change_email.cljs:46 msgid "errors.email-already-exists" msgstr "E-mail is al in gebruik" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:87 msgid "errors.email-already-validated" msgstr "E-mail is al gevalideerd." +#: src/app/main/ui/settings/password.cljs:28 msgid "errors.email-as-password" msgstr "Je kan je e-mail niet als wachtwoord gebruiken" -#: src/app/main/data/users.cljs +#: src/app/main/data/users.cljs:707, src/app/main/ui/auth/register.cljs:63 msgid "errors.email-domain-not-allowed" msgstr "Domein niet toegestaan" -#: src/app/main/ui/auth/register.cljs, -#: src/app/main/ui/auth/recovery_request.cljs, -#: src/app/main/ui/settings/change_email.cljs, -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/auth/recovery_request.cljs:63, src/app/main/ui/dashboard/team.cljs:578, src/app/main/ui/settings/change_email.cljs:54 msgid "errors.email-has-permanent-bounces" msgstr "Het emailadres «%s» heeft veel permanente bounce-rapporten." -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs, -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/login.cljs:81, src/app/main/ui/auth/recovery_request.cljs:31, src/app/main/ui/auth/register.cljs:43 msgid "errors.email-invalid" msgstr "Voer een geldig e-mailadres in" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:35 msgid "errors.email-invalid-confirmation" msgstr "Bevestigingsmail moet overeenkomen" +#: src/app/main/ui/dashboard/team.cljs:170 msgid "errors.email-spam-or-permanent-bounces" msgstr "Het e-mailadres «%s» is gemeld als spam of permanent teruggestuurd." -#: src/app/main/errors.cljs +#: src/app/main/errors.cljs:227 msgid "errors.feature-mismatch" msgstr "" "Het lijkt erop dat je een bestand opent waarin de functie '%s' is " "ingeschakeld, maar jouw Penpot- versie ondersteunt dit niet of heeft het " "uitgeschakeld." -#: src/app/main/errors.cljs +#: src/app/main/errors.cljs:231, src/app/main/errors.cljs:245 msgid "errors.feature-not-supported" msgstr "Functie '%s' wordt niet ondersteund." -#: src/app/main/errors.cljs +#: src/app/main/errors.cljs:223 msgid "errors.file-feature-mismatch" msgstr "" "Het lijkt erop dat er een discrepantie bestaat tussen de ingeschakelde " @@ -938,1136 +994,1264 @@ msgstr "" "moeten migraties voor '%s' worden toegepast voordat het bestand kan worden " "geopend." -#: src/app/main/ui/auth/verify_token.cljs, -#: src/app/main/ui/settings/feedback.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/data/users.cljs:709, src/app/main/ui/auth/login.cljs:65, src/app/main/ui/auth/login.cljs:116, src/app/main/ui/auth/register.cljs:69, src/app/main/ui/auth/register.cljs:237, src/app/main/ui/auth/verify_token.cljs:92, src/app/main/ui/dashboard/team.cljs:173, src/app/main/ui/onboarding/team_choice.cljs:95, src/app/main/ui/settings/access_tokens.cljs:91, src/app/main/ui/settings/feedback.cljs:52 msgid "errors.generic" msgstr "Er ging iets mis." -#: src/app/main/ui/components/color_input.cljs +#: src/app/main/ui/components/color_input.cljs:57 msgid "errors.invalid-color" msgstr "Ongeldige kleur" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/static.cljs:43 msgid "errors.invite-invalid" msgstr "Uitnodiging ongeldig" +#: src/app/main/ui/static.cljs:44 msgid "errors.invite-invalid.info" msgstr "Deze uitnodiging is mogelijk geannuleerd of verlopen." -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:101 msgid "errors.ldap-disabled" msgstr "LDAP-authenticatie is uitgeschakeld." -#: src/app/main/errors.cljs +#: src/app/main/errors.cljs:239 msgid "errors.max-quote-reached" msgstr "Je hebt de limiet van '%s' bereikt. Neem contact op met support." -#: src/app/main/data/workspace/persistence.cljs +#: src/app/main/data/workspace/media.cljs:184 msgid "errors.media-too-large" msgstr "De afbeelding is te groot om in te voegen." -#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs +#: src/app/main/data/media.cljs:68, src/app/main/data/workspace/media.cljs:187 msgid "errors.media-type-mismatch" msgstr "" "Het lijkt erop dat de inhoud van de afbeelding niet overeenkomt met de " "bestandsextensie." -#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs +#: src/app/main/data/media.cljs:65, src/app/main/data/workspace/media.cljs:172, src/app/main/data/workspace/media.cljs:175, src/app/main/data/workspace/media.cljs:178, src/app/main/data/workspace/media.cljs:181 msgid "errors.media-type-not-allowed" msgstr "Het lijkt erop dat dit geen geldige afbeelding is." -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:574 msgid "errors.member-is-muted" msgstr "" "Het profiel dat je uitnodigt, heeft e-mails gedempt (spammeldingen of hoge " "bounces)." -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:61 msgid "errors.password-invalid-confirmation" msgstr "Bevestigingswachtwoord moet overeenkomen" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:64 msgid "errors.password-too-short" msgstr "Wachtwoord moet minimaal 8 tekens lang zijn" +#: src/app/main/errors.cljs:124 msgid "errors.paste-data-validation" msgstr "Ongeldige gegevens op klembord" +#: src/app/main/data/users.cljs:703, src/app/main/ui/auth/login.cljs:97, src/app/main/ui/auth/login.cljs:105 msgid "errors.profile-blocked" msgstr "Het profiel is geblokkeerd" -#: src/app/main/ui/auth/recovery_request.cljs, -#: src/app/main/ui/settings/change_email.cljs, -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/auth/recovery_request.cljs:60, src/app/main/ui/dashboard/team.cljs:164, src/app/main/ui/dashboard/team.cljs:570, src/app/main/ui/settings/change_email.cljs:50 msgid "errors.profile-is-muted" msgstr "Je profiel heeft e-mails gedempt (spammeldingen of hoge bounces)." -#: src/app/main/ui/auth/register.cljs +#: src/app/main/data/users.cljs:701, src/app/main/ui/auth/register.cljs:60 msgid "errors.registration-disabled" msgstr "De registratie is momenteel uitgeschakeld." -#: src/app/main/errors.cljs +#: src/app/main/errors.cljs:218 msgid "errors.team-feature-mismatch" msgstr "Incompatibele functie '%s' gedetecteerd" +#: src/app/main/ui/dashboard/sidebar.cljs:365, src/app/main/ui/dashboard/team.cljs:359 msgid "errors.team-leave.insufficient-members" msgstr "" "Onvoldoende leden om het team te verlaten, je kunt dit team maar beter " "verwijderen." +#: src/app/main/ui/dashboard/sidebar.cljs:368, src/app/main/ui/dashboard/team.cljs:362 msgid "errors.team-leave.member-does-not-exists" msgstr "Het lid dat je probeert toe te wijzen, bestaat niet." +#: src/app/main/ui/dashboard/sidebar.cljs:371, src/app/main/ui/dashboard/team.cljs:365 msgid "errors.team-leave.owner-cant-leave" msgstr "" "Eigenaar kan het team niet verlaten, je moet de rol van eigenaar eerst " "opnieuw toewijzen." -#: src/app/main/data/media.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs +#: src/app/main/data/media.cljs:71 msgid "errors.unexpected-error" msgstr "Er is een onverwachte fout opgetreden." -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:60 msgid "errors.unexpected-token" msgstr "Onbekend bewijsstuk" +#, unused msgid "errors.validation" msgstr "Validatiefout" -#: src/app/main/errors.cljs +#: src/app/main/errors.cljs:235 msgid "errors.version-not-supported" msgstr "Bestand heeft een incompatibel versienummer" +#: src/app/main/ui/dashboard/team.cljs:796 msgid "errors.webhooks.connection" msgstr "Verbindingsfout, URL niet bereikbaar" +#: src/app/main/ui/dashboard/team.cljs:790 msgid "errors.webhooks.invalid-uri" msgstr "URL komt niet door de validatie." +#: src/app/main/ui/dashboard/team.cljs:949 msgid "errors.webhooks.last-delivery" msgstr "Laatste levering was niet succesvol." +#: src/app/main/ui/dashboard/team.cljs:792, src/app/main/ui/dashboard/team.cljs:952 msgid "errors.webhooks.ssl-validation" msgstr "Fout bij SSL-validatie." +#: src/app/main/ui/dashboard/team.cljs:794 msgid "errors.webhooks.timeout" msgstr "Time-out" +#: src/app/main/ui/dashboard/team.cljs:788 msgid "errors.webhooks.unexpected" msgstr "Onverwachte fout bij het valideren" +#: src/app/main/ui/dashboard/team.cljs:798, src/app/main/ui/dashboard/team.cljs:955 msgid "errors.webhooks.unexpected-status" msgstr "Onverwachte status %s" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:109, src/app/main/ui/auth/login.cljs:113 msgid "errors.wrong-credentials" msgstr "E-mailadres of wachtwoord is incorrect." -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:25 msgid "errors.wrong-old-password" msgstr "Huidige wachtwoord is onjuist" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:77 msgid "feedback.description" msgstr "Omschrijving" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:95 msgid "feedback.discourse-go-to" msgstr "Ga naar het Penpot-forum" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:89 msgid "feedback.discourse-subtitle1" msgstr "" "We zijn blij dat je er bent. Als je hulp nodig hebt, zoek dan eerst voordat " "je een nieuwe vraag stelt." -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:88 msgid "feedback.discourse-title" msgstr "Penpot-gemeenschap" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:72 msgid "feedback.subject" msgstr "Onderwerp" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:69 msgid "feedback.subtitle" msgstr "" "Beschrijf de reden van je e-mail en geef aan of het een probleem, een idee " "of een twijfel betreft. Een lid van ons team zal zo snel mogelijk reageren." -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:68 msgid "feedback.title" msgstr "E-mail" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:105 msgid "feedback.twitter-go-to" msgstr "Ga naar X" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:99 msgid "feedback.twitter-subtitle1" msgstr "Hier om te helpen met je technische vragen." -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:98 msgid "feedback.twitter-title" msgstr "X-ondersteuningsaccount" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:30 msgid "generic.error" msgstr "er is een fout opgetreden" -#: src/app/main/ui/inspect/attributes/blur.cljs +#: src/app/main/ui/viewer/inspect/attributes/blur.cljs:26 msgid "inspect.attributes.blur" msgstr "Vervagen" -#: src/app/main/ui/inspect/attributes/blur.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:115 msgid "inspect.attributes.blur.value" msgstr "Waarde" -#: src/app/main/ui/inspect/attributes/common.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:112 msgid "inspect.attributes.color.hex" msgstr "HEX" -#: src/app/main/ui/inspect/attributes/common.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:114 msgid "inspect.attributes.color.hsla" msgstr "HSLA" -#: src/app/main/ui/inspect/attributes/common.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:113 msgid "inspect.attributes.color.rgba" msgstr "RGBA" -#: src/app/main/ui/inspect/attributes/fill.cljs +#: src/app/main/ui/viewer/inspect/attributes/fill.cljs:57 msgid "inspect.attributes.fill" msgstr "Vullen" -#: src/app/main/ui/inspect/attributes/image.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:99, src/app/main/ui/viewer/inspect/attributes/image.cljs:51 msgid "inspect.attributes.image.download" msgstr "Bronafbeelding downloaden" -#: src/app/main/ui/inspect/attributes/image.cljs +#: src/app/main/ui/viewer/inspect/attributes/image.cljs:39 msgid "inspect.attributes.image.height" msgstr "Hoogte" -#: src/app/main/ui/inspect/attributes/image.cljs +#: src/app/main/ui/viewer/inspect/attributes/image.cljs:32 msgid "inspect.attributes.image.width" msgstr "Breedte" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout" msgstr "Layout" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.height" msgstr "Hoogte" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.left" msgstr "Links" -#: src/app/main/ui/inspect/attributes/layout.cljs, -#: src/app/main/ui/inspect/attributes/layout.cljs +#: src/app/main/ui/inspect/attributes/layout.cljs, src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.radius" msgstr "Radius" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.rotation" msgstr "Rotatie" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.top" msgstr "Top" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.width" msgstr "Breedte" -#: src/app/main/ui/inspect/attributes/shadow.cljs +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:57 msgid "inspect.attributes.shadow" msgstr "Schaduw" -#: src/app/main/ui/inspect/attributes/layout.cljs +#: src/app/main/ui/viewer/inspect/attributes/geometry.cljs:40 msgid "inspect.attributes.size" msgstr "Grootte en positie" -#: src/app/main/ui/inspect/attributes/stroke.cljs +#: src/app/main/ui/viewer/inspect/attributes/stroke.cljs:52 msgid "inspect.attributes.stroke" msgstr "Streek" +#, permanent, unused msgid "inspect.attributes.stroke.alignment.center" msgstr "Midden" +#, permanent, unused msgid "inspect.attributes.stroke.alignment.inner" msgstr "Binnenkant" +#, permanent, unused msgid "inspect.attributes.stroke.alignment.outer" msgstr "Buitenkant" +#, unused msgid "inspect.attributes.stroke.style.dotted" msgstr "Gestippeld" +#, unused msgid "inspect.attributes.stroke.style.mixed" msgstr "Gemengd" +#, unused msgid "inspect.attributes.stroke.style.none" msgstr "Geen" +#, unused msgid "inspect.attributes.stroke.style.solid" msgstr "Solide" #: src/app/main/ui/inspect/attributes/stroke.cljs +#, unused msgid "inspect.attributes.stroke.width" msgstr "Breedte" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:81, src/app/main/ui/viewer/inspect/attributes/text.cljs:194 msgid "inspect.attributes.typography" msgstr "Typografie" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:89 msgid "inspect.attributes.typography.font-family" msgstr "Lettertype-familie" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:107 msgid "inspect.attributes.typography.font-size" msgstr "Lettergrootte" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:98 msgid "inspect.attributes.typography.font-style" msgstr "Lettertype-stijl" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:116 msgid "inspect.attributes.typography.font-weight" msgstr "Lettertype dikte" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:134 msgid "inspect.attributes.typography.letter-spacing" msgstr "Letterafstand" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:125 msgid "inspect.attributes.typography.line-height" msgstr "Regelafstand" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:143 msgid "inspect.attributes.typography.text-decoration" msgstr "Tekst decoratie" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:145 msgid "inspect.attributes.typography.text-decoration.none" msgstr "Geen" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:146 msgid "inspect.attributes.typography.text-decoration.strikethrough" msgstr "Doorhalen" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:147 msgid "inspect.attributes.typography.text-decoration.underline" msgstr "Onderstrepen" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:156 msgid "inspect.attributes.typography.text-transform" msgstr "Teksttransformatie" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:158 msgid "inspect.attributes.typography.text-transform.lowercase" msgstr "Kleine letters" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:159 msgid "inspect.attributes.typography.text-transform.none" msgstr "Geen" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:160 msgid "inspect.attributes.typography.text-transform.titlecase" msgstr "Beginhoofdletters" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:162 msgid "inspect.attributes.typography.text-transform.unset" msgstr "Uitschakelen" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:161 msgid "inspect.attributes.typography.text-transform.uppercase" msgstr "HOOFDLETTERS" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:140 msgid "inspect.empty.help" msgstr "" "Als je meer wilt weten over ontwerpinspectie, ga dan naar het helpcentrum " "van Penpot" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:143 msgid "inspect.empty.more-info" msgstr "Meer info over inspecteren" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:135 msgid "inspect.empty.select" msgstr "" "Selecteer een vorm, bord of groep om hun eigenschappen en code te " "inspecteren" -#: src/app/main/ui/inspect/right_sidebar.cljs +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:125 msgid "inspect.tabs.code" msgstr "Code" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:98 msgid "inspect.tabs.code.selected.circle" msgstr "Cirkel" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:99 msgid "inspect.tabs.code.selected.component" msgstr "Component" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:100 msgid "inspect.tabs.code.selected.curve" msgstr "Kromme" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:101 msgid "inspect.tabs.code.selected.frame" msgstr "Bord" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:102 msgid "inspect.tabs.code.selected.group" msgstr "Groep" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:103 msgid "inspect.tabs.code.selected.image" msgstr "Afbeelding" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:104 msgid "inspect.tabs.code.selected.mask" msgstr "Masker" -#: src/app/main/ui/inspect/right_sidebar.cljs +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:93 msgid "inspect.tabs.code.selected.multiple" msgstr "%s Geselecteerd" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:105 msgid "inspect.tabs.code.selected.path" msgstr "Pad" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:106 msgid "inspect.tabs.code.selected.rect" msgstr "Rechthoek" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:107 msgid "inspect.tabs.code.selected.svg-raw" msgstr "SVG" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:108 msgid "inspect.tabs.code.selected.text" msgstr "Tekst" -#: src/app/main/ui/inspect/right_sidebar.cljs +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:115 msgid "inspect.tabs.info" msgstr "Informatie" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:158 msgid "label.shortcuts" msgstr "Sneltoetsen" +#: src/app/main/ui/dashboard/import.cljs:527 msgid "labels.accept" msgstr "Accepteren" -#: src/app/main/ui/settings/sidebar.cljs +#: src/app/main/ui/settings/sidebar.cljs:100 msgid "labels.access-tokens" msgstr "Toegangsbewijzen" +#: src/app/main/ui/dashboard/team.cljs:968 msgid "labels.active" msgstr "Actief" +#: src/app/main/ui/dashboard/fonts.cljs:175 msgid "labels.add-custom-font" msgstr "Eigen lettertype toevoegen" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:120, src/app/main/ui/dashboard/team.cljs:276, src/app/main/ui/dashboard/team.cljs:519, src/app/main/ui/dashboard/team.cljs:549, src/app/main/ui/onboarding/team_choice.cljs:67 msgid "labels.admin" msgstr "Admin" +#: src/app/main/ui/onboarding/questions.cljs:174 +msgid "labels.adobe-xd" +msgstr "Adobe XD" + #: src/app/main/ui/workspace/comments.cljs +#, unused msgid "labels.all" msgstr "Alles" +#: src/app/main/ui/auth.cljs:37 msgid "labels.and" msgstr "en" +#: src/app/main/ui/onboarding/team_choice.cljs:162 msgid "labels.back" msgstr "Terug" -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:59 msgid "labels.bad-gateway.desc-message" msgstr "" "Het lijkt erop dat je even moet wachten en het opnieuw moet proberen; we " "voeren klein onderhoud uit aan onze servers." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:58 msgid "labels.bad-gateway.main-message" msgstr "Bad Gateway" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/data/common.cljs:112, src/app/main/ui/dashboard/change_owner.cljs:69, src/app/main/ui/dashboard/import.cljs:514, src/app/main/ui/dashboard/team.cljs:868, src/app/main/ui/delete_shared.cljs:35, src/app/main/ui/export.cljs:164, src/app/main/ui/export.cljs:460, src/app/main/ui/settings/access_tokens.cljs:188, src/app/main/ui/viewer/share_link.cljs:203, src/app/main/ui/workspace/sidebar/assets/groups.cljs:149 msgid "labels.cancel" msgstr "Annuleren" +#: src/app/main/ui/onboarding/questions.cljs:176 +msgid "labels.canva" +msgstr "Canva" + +#: src/app/main/ui/dashboard/projects.cljs:93, src/app/main/ui/export.cljs:478, src/app/main/ui/settings/access_tokens.cljs:183, src/app/main/ui/viewer/login.cljs:77, src/app/main/ui/viewer/share_link.cljs:174, src/app/main/ui/workspace/libraries.cljs:522 msgid "labels.close" msgstr "Sluiten" -#: src/app/main/ui/dashboard/comments.cljs +#: src/app/main/ui/dashboard/comments.cljs:104, src/app/main/ui/viewer/comments.cljs:70, src/app/main/ui/workspace/comments.cljs:126 msgid "labels.comments" msgstr "Commentaar" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:985, src/app/main/ui/workspace/main_menu.cljs:110 msgid "labels.community" msgstr "Gemeenschap" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:103 msgid "labels.confirm-password" msgstr "Wachtwoord bevestigen" +#: src/app/main/ui/dashboard/import.cljs:520, src/app/main/ui/export.cljs:465, src/app/main/ui/onboarding/newsletter.cljs:101 msgid "labels.continue" msgstr "Doorgaan" +#, unused msgid "labels.continue-with" msgstr "Doorgaan met" +#: src/app/main/ui/viewer/login.cljs:75 msgid "labels.continue-with-penpot" msgstr "Je kunt doorgaan met een Penpot-account" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:642 msgid "labels.copy-invitation-link" msgstr "Link kopiëren" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:157, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:190 msgid "labels.create" msgstr "Aanmaken" -#: src/app/main/ui/dashboard/team_form.cljs, -#: src/app/main/ui/dashboard/team_form.cljs +#: src/app/main/ui/dashboard/team_form.cljs:101, src/app/main/ui/dashboard/team_form.cljs:121 msgid "labels.create-team" msgstr "Nieuw team aanmaken" -#: src/app/main/ui/dashboard/team_form.cljs +#: src/app/main/ui/dashboard/team_form.cljs:113 msgid "labels.create-team.placeholder" msgstr "Nieuwe teamnaam" +#, unused msgid "labels.custom-fonts" msgstr "Eigen lettertypen" -#: src/app/main/ui/settings/sidebar.cljs +#: src/app/main/ui/settings/sidebar.cljs:73 msgid "labels.dashboard" msgstr "Dashboard" -#: src/app/main/ui/dashboard/project_menu.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:306, src/app/main/ui/dashboard/fonts.cljs:255, src/app/main/ui/dashboard/fonts.cljs:332, src/app/main/ui/dashboard/fonts.cljs:346, src/app/main/ui/dashboard/project_menu.cljs:115, src/app/main/ui/dashboard/team.cljs:904, src/app/main/ui/settings/access_tokens.cljs:209, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:209 msgid "labels.delete" msgstr "Verwijderen" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:357 msgid "labels.delete-comment" msgstr "Commentaar verwijderen" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:354 msgid "labels.delete-comment-thread" msgstr "Thread verwijderen" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:648 msgid "labels.delete-invitation" msgstr "Uitnodiging verwijderen" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:262 msgid "labels.delete-multi-files" msgstr "%s bestanden verwijderen" +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:199 msgid "labels.discard" msgstr "Weggooien" -#: src/app/main/ui/dashboard/projects.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs, -#: src/app/main/ui/dashboard/files.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:28, src/app/main/ui/dashboard/files.cljs:72, src/app/main/ui/dashboard/files.cljs:156, src/app/main/ui/dashboard/projects.cljs:220, src/app/main/ui/dashboard/projects.cljs:224, src/app/main/ui/dashboard/sidebar.cljs:791 msgid "labels.drafts" msgstr "Concepten" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:350, src/app/main/ui/dashboard/fonts.cljs:252, src/app/main/ui/dashboard/team.cljs:902, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:205 msgid "labels.edit" msgstr "Bewerken" +#, unused msgid "labels.edit-file" msgstr "Bestand bewerken" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:118, src/app/main/ui/dashboard/team.cljs:279, src/app/main/ui/dashboard/team.cljs:520, src/app/main/ui/dashboard/team.cljs:553, src/app/main/ui/onboarding/team_choice.cljs:66 msgid "labels.editor" msgstr "Editor" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:661 msgid "labels.expired-invitation" msgstr "Verlopen" +#: src/app/main/ui/export.cljs:173 msgid "labels.export" msgstr "Exporteren" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:51 msgid "labels.feedback-disabled" msgstr "Feedback uitgeschakeld" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:42 msgid "labels.feedback-sent" msgstr "Feedback verstuurd" +#: src/app/main/ui/onboarding/questions.cljs:170 +msgid "labels.figma" +msgstr "Figma" + +#: src/app/main/ui/dashboard/fonts.cljs:412 msgid "labels.font-family" msgstr "Lettertype-familie" +#, unused msgid "labels.font-providers" msgstr "Lettertypeaanbieders" +#: src/app/main/ui/dashboard/fonts.cljs:413 msgid "labels.font-variants" msgstr "Stijlen" +#: src/app/main/ui/dashboard/fonts.cljs:52, src/app/main/ui/dashboard/sidebar.cljs:811 msgid "labels.fonts" msgstr "Lettertypen" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/onboarding/questions.cljs:262 +msgid "labels.freelancer" +msgstr "Ik ben een freelancer" + +#: src/app/main/ui/dashboard/sidebar.cljs:1015, src/app/main/ui/workspace/main_menu.cljs:142 msgid "labels.github-repo" msgstr "GitHub-repository" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/settings/sidebar.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:1032, src/app/main/ui/settings/sidebar.cljs:113, src/app/main/ui/workspace/main_menu.cljs:171 msgid "labels.give-feedback" msgstr "Geef feedback" +#: src/app/main/ui/auth/recovery_request.cljs:110, src/app/main/ui/auth/register.cljs:285, src/app/main/ui/viewer/login.cljs:117 msgid "labels.go-back" msgstr "Ga terug" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:978, src/app/main/ui/workspace/main_menu.cljs:102 msgid "labels.help-center" msgstr "Helpcentrum" -#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/comments.cljs:103, src/app/main/ui/workspace/comments.cljs:67 msgid "labels.hide-resolved-comments" msgstr "Verwerkt commentaar verbergen" +#: src/app/main/ui/dashboard/team.cljs:969 msgid "labels.inactive" msgstr "Inactief" +#: src/app/main/ui/dashboard/fonts.cljs:410 msgid "labels.installed-fonts" msgstr "Geïnstalleerde lettertypen" -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:144 msgid "labels.internal-error.desc-message" msgstr "" "Er ging iets mis. Probeer de bewerking opnieuw of neem contact op met " "support als het probleem zich blijft voordoen." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:143 msgid "labels.internal-error.main-message" msgstr "Interne fout" -#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/onboarding/questions.cljs:178 +msgid "labels.invision" +msgstr "InVision" + +#: src/app/main/ui/dashboard/sidebar.cljs:516, src/app/main/ui/dashboard/team.cljs:89, src/app/main/ui/dashboard/team.cljs:97, src/app/main/ui/dashboard/team.cljs:708 msgid "labels.invitations" msgstr "Uitnodigingen" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:51 msgid "labels.language" msgstr "Taal" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:1008, src/app/main/ui/workspace/main_menu.cljs:134 msgid "labels.libraries-and-templates" msgstr "Bibliotheken en sjablonen" +#: src/app/main/ui/viewer/header.cljs:203 msgid "labels.log-or-sign" msgstr "Log in of meld je aan" -#: src/app/main/ui/settings.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:1040 msgid "labels.logout" msgstr "Uitloggen" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/team.cljs:468 msgid "labels.member" msgstr "Lid" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:510, src/app/main/ui/dashboard/team.cljs:87, src/app/main/ui/dashboard/team.cljs:95 msgid "labels.members" msgstr "Leden" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:96 msgid "labels.new-password" msgstr "Nieuw wachtwoord" -#: src/app/main/ui/workspace/comments.cljs, -#: src/app/main/ui/dashboard/comments.cljs +#: src/app/main/ui/dashboard/templates.cljs:269, src/app/main/ui/onboarding/questions.cljs:55 +msgid "labels.next" +msgstr "Volgende" + +#: src/app/main/ui/dashboard/comments.cljs:128, src/app/main/ui/workspace/comments.cljs:161 msgid "labels.no-comments-available" msgstr "Je bent helemaal bij! Nieuwe commentaarmeldingen verschijnen hier." -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:694 msgid "labels.no-invitations" msgstr "Geen openstaande uitnodigingen." -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:696 +#, markdown msgid "labels.no-invitations-hint" msgstr "" "Klik op de knop **Mensen uitnodigen** om mensen uit te nodigen voor dit " "team." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:50 msgid "labels.not-found.desc-message" msgstr "Deze pagina bestaat mogelijk niet of je hebt geen toegangsrechten." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:49 msgid "labels.not-found.main-message" msgstr "Oeps!" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/projects.cljs:239, src/app/main/ui/dashboard/team.cljs:1095 msgid "labels.num-of-files" msgid_plural "labels.num-of-files" msgstr[0] "1 bestand" msgstr[1] "%s bestanden" +#: src/app/main/ui/viewer/thumbnails.cljs:80 msgid "labels.num-of-frames" msgid_plural "labels.num-of-frames" msgstr[0] "1 bord" msgstr[1] "%s borden" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1090 msgid "labels.num-of-projects" msgid_plural "labels.num-of-projects" msgstr[0] "1 project" msgstr[1] "%s projecten" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:89 msgid "labels.old-password" msgstr "Huidig wachtwoord" #: src/app/main/ui/workspace/comments.cljs +#, unused msgid "labels.only-yours" msgstr "Alleen van jou" +#, unused msgid "labels.or" msgstr "of" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/onboarding/questions.cljs:145, src/app/main/ui/onboarding/questions.cljs:214, src/app/main/ui/onboarding/questions.cljs:303, src/app/main/ui/onboarding/questions.cljs:316, src/app/main/ui/onboarding/questions.cljs:389, src/app/main/ui/onboarding/questions.cljs:447 +msgid "labels.other" +msgstr "Anders (namelijk…)" + +#: src/app/main/ui/dashboard/team.cljs:286, src/app/main/ui/dashboard/team.cljs:518, src/app/main/ui/dashboard/team.cljs:1076 msgid "labels.owner" msgstr "Eigenaar" -#: src/app/main/ui/settings/sidebar.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/settings/sidebar.cljs:87 msgid "labels.password" msgstr "Wachtwoord" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:662 msgid "labels.pending-invitation" msgstr "In behandeling" -#: src/app/main/ui/settings/sidebar.cljs +#: src/app/main/ui/onboarding/questions.cljs:51 +msgid "labels.previous" +msgstr "Vorige" + +#: src/app/main/ui/settings/profile.cljs:118, src/app/main/ui/settings/sidebar.cljs:82 msgid "labels.profile" msgstr "Profiel" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:784 msgid "labels.projects" msgstr "Projecten" -#: src/app/main/ui/settings/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:998, src/app/main/ui/settings/sidebar.cljs:106, src/app/main/ui/workspace/main_menu.cljs:126 msgid "labels.release-notes" msgstr "Release-opmerkingen" #: src/app/main/ui/workspace.cljs +#, unused msgid "labels.reload-file" msgstr "Bestand opnieuw laden" -#: src/app/main/ui/workspace/libraries.cljs, -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/workspace/libraries.cljs, src/app/main/ui/dashboard/team.cljs +#, unused msgid "labels.remove" msgstr "Verwijderen" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:316 msgid "labels.remove-member" msgstr "Lid verwijderen" -#: src/app/main/ui/dashboard/sidebar.cljs, -#: src/app/main/ui/dashboard/project_menu.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:271, src/app/main/ui/dashboard/project_menu.cljs:85, src/app/main/ui/dashboard/sidebar.cljs:539, src/app/main/ui/workspace/sidebar/assets/groups.cljs:157 msgid "labels.rename" msgstr "Hernoemen" -#: src/app/main/ui/dashboard/team_form.cljs +#: src/app/main/ui/dashboard/team_form.cljs:99 msgid "labels.rename-team" msgstr "Team hernoemen" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:645 msgid "labels.resend-invitation" msgstr "Uitnodiging opnieuw versturen" -#: src/app/main/ui/static.cljs, src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:61, src/app/main/ui/static.cljs:70, src/app/main/ui/static.cljs:148 msgid "labels.retry" msgstr "Opnieuw proberen" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:469, src/app/main/ui/dashboard/team.cljs:709 msgid "labels.role" msgstr "Rol" +#: src/app/main/ui/dashboard/fonts.cljs:380, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:191 msgid "labels.save" msgstr "Opslaan" +#: src/app/main/ui/onboarding/questions.cljs:414, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:436 msgid "labels.search" msgstr "Zoeken" +#: src/app/main/ui/dashboard/fonts.cljs:415 msgid "labels.search-font" msgstr "Lettertype zoeken" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/onboarding/questions.cljs:90, src/app/main/ui/onboarding/questions.cljs:248, src/app/main/ui/onboarding/questions.cljs:259, src/app/main/ui/onboarding/questions.cljs:270 +msgid "labels.select-option" +msgstr "Selecteer een optie" + +#: src/app/main/ui/settings/feedback.cljs:82 msgid "labels.send" msgstr "Versturen" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:82 msgid "labels.sending" msgstr "Versturen…" -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:68 msgid "labels.service-unavailable.desc-message" msgstr "We zijn bezig met onderhoud van onze systemen." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:67 msgid "labels.service-unavailable.main-message" msgstr "Service niet beschikbaar" -#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:530, src/app/main/ui/dashboard/team.cljs:88, src/app/main/ui/dashboard/team.cljs:102, src/app/main/ui/settings/options.cljs:84, src/app/main/ui/settings/sidebar.cljs:93 msgid "labels.settings" msgstr "Instellingen" +#: src/app/main/ui/viewer/header.cljs:199 msgid "labels.share" msgstr "Delen" +#, unused msgid "labels.share-prototype" msgstr "Prototype delen" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:800 msgid "labels.shared-libraries" msgstr "Bibliotheek" -#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/comments.cljs:82, src/app/main/ui/workspace/comments.cljs:55, src/app/main/ui/workspace/comments.cljs:135 msgid "labels.show-all-comments" msgstr "Alle commentaar tonen" +#: src/app/main/ui/viewer/comments.cljs:115 msgid "labels.show-comments-list" msgstr "Commentaarlijst tonen" -#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/comments.cljs:91, src/app/main/ui/workspace/comments.cljs:61, src/app/main/ui/workspace/comments.cljs:136 msgid "labels.show-your-comments" msgstr "Alleen eigen commentaar tonen" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/onboarding/questions.cljs:172 +msgid "labels.sketch" +msgstr "Sketch" + +#: src/app/main/ui/onboarding/questions.cljs:56 +msgid "labels.start" +msgstr "Starten" + +#: src/app/main/ui/dashboard/team.cljs:710 msgid "labels.status" msgstr "Status" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/onboarding/questions.cljs:251 +msgid "labels.student-teacher" +msgstr "Student of docent" + +#: src/app/main/ui/dashboard/sidebar.cljs:992, src/app/main/ui/workspace/main_menu.cljs:118 msgid "labels.tutorials" msgstr "Introductie" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:256 msgid "labels.unpublish-multi-files" msgstr "Publicatie van %s bestanden ongedaan maken" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:103 msgid "labels.update" msgstr "Bijwerken" -#: src/app/main/ui/dashboard/team_form.cljs +#: src/app/main/ui/dashboard/team_form.cljs:120 msgid "labels.update-team" msgstr "Team bijwerken" +#: src/app/main/ui/dashboard/fonts.cljs:241 msgid "labels.upload" msgstr "Uploaden" +#: src/app/main/ui/dashboard/fonts.cljs:169 msgid "labels.upload-custom-fonts" msgstr "Eigen lettertypen uploaden" +#: src/app/main/ui/dashboard/fonts.cljs:240 msgid "labels.uploading" msgstr "Uploaden…" +#: src/app/main/ui/workspace/sidebar/sitemap.cljs:223 msgid "labels.view-only" msgstr "ALLEEN BEKIJKEN" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:123, src/app/main/ui/dashboard/team.cljs:282, src/app/main/ui/dashboard/team.cljs:521 msgid "labels.viewer" msgstr "Kijker" +#: src/app/main/ui/dashboard/sidebar.cljs:523, src/app/main/ui/dashboard/team.cljs:90, src/app/main/ui/dashboard/team.cljs:100, src/app/main/ui/dashboard/team.cljs:880 msgid "labels.webhooks" msgstr "Webhooks" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:194 msgid "labels.write-new-comment" msgstr "Nieuw commentaar toevoegen" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/team.cljs:237 msgid "labels.you" msgstr "(jij)" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:968 msgid "labels.your-account" msgstr "Jouw account" +#: src/app/main/ui/workspace/colorpicker.cljs:297, src/app/main/ui/workspace/colorpicker.cljs:298, src/app/main/ui/workspace/colorpicker.cljs:300 msgid "media.choose-image" msgstr "Afbeelding kiezen" +#, unused msgid "media.gradient" msgstr "Verloop" +#: src/app/main/data/workspace/media.cljs:275, src/app/main/ui/components/color_bullet.cljs:32, src/app/main/ui/components/color_bullet.cljs:45, src/app/main/ui/viewer/inspect/attributes/common.cljs:66, src/app/main/ui/workspace/colorpicker.cljs:211, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:237 msgid "media.image" msgstr "Afbeelding" +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:77 msgid "media.image.short" msgstr "img" +#: src/app/main/ui/workspace/colorpicker.cljs:290 msgid "media.keep-aspect-ratio" msgstr "Verhoudingen behouden" +#: src/app/main/ui/workspace/colorpicker.cljs:208 msgid "media.linear" msgstr "Lineair" -#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs +#: src/app/main/data/media.cljs:49, src/app/main/data/workspace/media.cljs:223, src/app/main/data/workspace/media.cljs:453 msgid "media.loading" msgstr "Afbeelding laden…" +#: src/app/main/ui/workspace/colorpicker.cljs:209 msgid "media.radial" msgstr "Radiaal" +#: src/app/main/ui/workspace/colorpicker.cljs:206 msgid "media.solid" msgstr "Solide" +#: src/app/main/data/common.cljs:111 msgid "modals.add-shared-confirm-empty.hint" msgstr "" "Je bibliotheek is leeg. Eenmaal toegevoegd als Gedeelde Bibliotheek, zijn " "de assets die je aanmaakt beschikbaar voor gebruik in de rest van je " "bestanden. Weet je zeker dat je dit wilt publiceren??" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/data/common.cljs:113 msgid "modals.add-shared-confirm.accept" msgstr "Toevoegen als gedeelde bibliotheek" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/data/common.cljs:111 msgid "modals.add-shared-confirm.hint" msgstr "" "Eenmaal toegevoegd als gedeelde bibliotheek, zijn de assets van deze " "bestandsbibliotheek beschikbaar voor gebruik tussen de rest van je " "bestanden." -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/data/common.cljs:110 msgid "modals.add-shared-confirm.message" msgstr "\"%s\" toevoegen als gedeelde bibliotheek" -#: src/app/main/ui/workspace/nudge.cljs +#: src/app/main/ui/workspace/nudge.cljs:60 msgid "modals.big-nudge" msgstr "Grote verschuiving" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:127 msgid "modals.change-email.confirm-email" msgstr "Nieuw e-mailadres verifiëren" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:114 msgid "modals.change-email.info" msgstr "" "We sturen je een e-mail naar je huidige e-mailadres \"%s\" om je identiteit " "te verifiëren." -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:119 msgid "modals.change-email.new-email" msgstr "Nieuw e-mailadres" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:136 msgid "modals.change-email.submit" msgstr "E-mailadres wijzigen" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:107 msgid "modals.change-email.title" msgstr "Je e-mailadres wijzigen" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:165, src/app/main/ui/settings/access_tokens.cljs:171 msgid "modals.create-access-token.copy-token" msgstr "Toegangsbewijs kopiëren" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:142 msgid "modals.create-access-token.expiration-date.label" msgstr "Vervaldatum" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:136 msgid "modals.create-access-token.name.label" msgstr "Naam" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:138 msgid "modals.create-access-token.name.placeholder" msgstr "De naam helpt je te onthouden waar het toegangsbewijs voor is" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:191 msgid "modals.create-access-token.submit-label" msgstr "Toegangsbewijs aanmaken" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:123 msgid "modals.create-access-token.title" msgstr "Toegangsbewijs genereren" +#: src/app/main/ui/dashboard/team.cljs:873 msgid "modals.create-webhook.submit-label" msgstr "Webhook aanmaken" +#: src/app/main/ui/dashboard/team.cljs:838 msgid "modals.create-webhook.title" msgstr "Webhook aanmaken" +#: src/app/main/ui/dashboard/team.cljs:849 msgid "modals.create-webhook.url.label" msgstr "Payload-URL" +#: src/app/main/ui/dashboard/team.cljs:850 msgid "modals.create-webhook.url.placeholder" msgstr "https://voorbeeld.nl/postreceive" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:271 msgid "modals.delete-acces-token.accept" msgstr "Toegangsbewijs verwijderen" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:270 msgid "modals.delete-acces-token.message" msgstr "Weet je zeker dat je dit toegangsbewijs wilt verwijderen?" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:269 msgid "modals.delete-acces-token.title" msgstr "Toegangsbewijs verwijderen" -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:59 msgid "modals.delete-account.cancel" msgstr "Annuleer en behoud mijn account" -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:64 msgid "modals.delete-account.confirm" msgstr "Ja, verwijder mijn account" -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:53 msgid "modals.delete-account.info" msgstr "" "Als je je account verwijdert, verlies je al je huidige projecten en " "archieven." -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:46 msgid "modals.delete-account.title" msgstr "Weet je zeker dat je je account wilt verwijderen?" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:298 msgid "modals.delete-comment-thread.accept" msgstr "Gesprek verwijderen" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:297 msgid "modals.delete-comment-thread.message" msgstr "" "Weet je zeker dat je dit gesprek wilt verwijderen? Alle reacties in deze " "thread worden verwijderd." -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:296 msgid "modals.delete-comment-thread.title" msgstr "Gesprek verwijderen" +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:140 msgid "modals.delete-component-annotation.message" msgstr "Weet je zeker dat je deze aantekening wilt verwijderen?" +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:139 msgid "modals.delete-component-annotation.title" msgstr "Aantekening verwijderen" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:123 msgid "modals.delete-file-confirm.accept" msgstr "Bestand verwijderen" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:122 msgid "modals.delete-file-confirm.message" msgstr "Weet je zeker dat je dit bestand wilt verwijderen?" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:121 msgid "modals.delete-file-confirm.title" msgstr "Bestand verwijderen" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:117 msgid "modals.delete-file-multi-confirm.accept" msgstr "Bestanden verwijderen" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:116 msgid "modals.delete-file-multi-confirm.message" msgstr "Weet je zeker dat je %s bestanden wilt verwijderen?" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:115 msgid "modals.delete-file-multi-confirm.title" msgstr "Verwijderen van %s bestanden" +#: src/app/main/ui/dashboard/fonts.cljs:345 msgid "modals.delete-font-variant.message" msgstr "" "Weet je zeker dat je deze lettertypestijl wilt verwijderen? Het wordt dan " "niet meer geladen als het in een bestand wordt gebruikt." +#: src/app/main/ui/dashboard/fonts.cljs:344 msgid "modals.delete-font-variant.title" msgstr "Lettertypestijl verwijderen" +#: src/app/main/ui/dashboard/fonts.cljs:331 msgid "modals.delete-font.message" msgstr "" "Weet je zeker dat je dit lettertype wilt verwijderen? Het wordt dan niet " "meer geladen als het in een bestand wordt gebruikt." +#: src/app/main/ui/dashboard/fonts.cljs:330 msgid "modals.delete-font.title" msgstr "Lettertype verwijderen" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs +#: src/app/main/ui/workspace/context_menu.cljs:522, src/app/main/ui/workspace/sidebar/sitemap.cljs:45 msgid "modals.delete-page.body" msgstr "Weet je zeker dat je deze pagina wilt verwijderen?" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs +#: src/app/main/ui/workspace/context_menu.cljs:521, src/app/main/ui/workspace/sidebar/sitemap.cljs:44 msgid "modals.delete-page.title" msgstr "Pagina verwijderen" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:69 msgid "modals.delete-project-confirm.accept" msgstr "Project verwijderen" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:68 msgid "modals.delete-project-confirm.message" msgstr "Weet je zeker dat je dit project wilt verwijderen?" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:67 msgid "modals.delete-project-confirm.title" msgstr "Project verwijderen" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:51 msgid "modals.delete-shared-confirm.accept" msgid_plural "modals.delete-shared-confirm.accept" msgstr[0] "Bestand verwijderen" msgstr[1] "Bestanden verwijderen" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:55 msgid "modals.delete-shared-confirm.activated.no-files-message" msgid_plural "modals.delete-shared-confirm.activated.no-files-message" msgstr[0] "Het is in geen enkel bestand geactiveerd." msgstr[1] "Ze zijn in geen enkel bestand geactiveerd." -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:57 msgid "modals.delete-shared-confirm.activated.scd-message" msgid_plural "modals.delete-shared-confirm.activated.scd-message" msgstr[0] "Deze bibliotheek wordt hier geactiveerd: " msgstr[1] "Deze bibliotheken worden hier geactiveerd: " -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:46 msgid "modals.delete-shared-confirm.message" msgid_plural "modals.delete-shared-confirm.message" msgstr[0] "Weet je zeker dat je dit bestand wilt verwijderen?" msgstr[1] "Weet je zeker dat je deze bestanden wilt verwijderen?" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:41 msgid "modals.delete-shared-confirm.title" msgid_plural "modals.delete-shared-confirm.title" msgstr[0] "Bestand verwijderen" msgstr[1] "Bestanden verwijderen" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:435 msgid "modals.delete-team-confirm.accept" msgstr "Team verwijderen" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:434 msgid "modals.delete-team-confirm.message" msgstr "" "Weet je zeker dat je dit team wilt verwijderen? Alle projecten en bestanden " "die aan het team zijn gekoppeld, worden permanent verwijderd." -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:433 msgid "modals.delete-team-confirm.title" msgstr "Team verwijderen" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:427 msgid "modals.delete-team-member-confirm.accept" msgstr "Lid verwijderen" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:426 msgid "modals.delete-team-member-confirm.message" msgstr "Weet je zeker dat je dit lid van het team wilt verwijderen?" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:425 msgid "modals.delete-team-member-confirm.title" msgstr "Teamlid verwijderen" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:59 msgid "modals.delete-unpublish-shared-confirm.activated.hint" msgid_plural "modals.delete-unpublish-shared-confirm.activated.hint" msgstr[0] "" @@ -2077,161 +2261,173 @@ msgstr[1] "" "Assets die al in die bestanden zijn gebruikt, blijven daar staan (er wordt " "geen ontwerp verbroken)." +#: src/app/main/ui/dashboard/team.cljs:942 msgid "modals.delete-webhook.accept" msgstr "Webhook verwijderen" +#: src/app/main/ui/dashboard/team.cljs:941 msgid "modals.delete-webhook.message" msgstr "Weet je zeker dat je deze webhook wilt verwijderen?" +#: src/app/main/ui/dashboard/team.cljs:940 msgid "modals.delete-webhook.title" msgstr "Webhook verwijderen" +#: src/app/main/ui/dashboard/team.cljs:872 msgid "modals.edit-webhook.submit-label" msgstr "Webhook bewerken" +#: src/app/main/ui/dashboard/team.cljs:837 msgid "modals.edit-webhook.title" msgstr "Webhook bewerken" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:218 msgid "modals.invite-member-confirm.accept" msgstr "Uitnodiging versturen" +#: src/app/main/ui/dashboard/team.cljs:213, src/app/main/ui/onboarding/team_choice.cljs:156 msgid "modals.invite-member.emails" msgstr "E-mailadressen, kommagescheiden" +#: src/app/main/ui/dashboard/team.cljs:197 msgid "modals.invite-member.repeated-invitation" msgstr "" "Sommige e-mailadressen zijn van bestaande teamleden. Zij krijgen geen " "nieuwe uitnodigingen." -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:190 msgid "modals.invite-team-member.title" msgstr "Leden voor het team uitnodigen" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:423, src/app/main/ui/dashboard/team.cljs:393 msgid "modals.leave-and-close-confirm.hint" msgstr "" "Aangezien je het enige lid van dit team bent, wordt het team samen met de " "projecten en bestanden verwijderd." -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:422, src/app/main/ui/dashboard/team.cljs:392 msgid "modals.leave-and-close-confirm.message" msgstr "Weet je zeker dat je het %s team wilt verlaten?" +#: src/app/main/ui/dashboard/change_owner.cljs:59 msgid "modals.leave-and-reassign.forbidden" msgstr "" "Je kunt het team niet verlaten als er geen ander lid is om tot eigenaar te " "promoveren. Misschien wil je het team verwijderen." -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/change_owner.cljs:55 msgid "modals.leave-and-reassign.hint1" msgstr "" "Jij bent de eigenaar van dit team. Selecteer een ander lid om tot eigenaar " "te promoveren voordat je vertrekt." -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/change_owner.cljs:78 msgid "modals.leave-and-reassign.promote-and-leave" msgstr "Promoveren en verlaten" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/change_owner.cljs:34 msgid "modals.leave-and-reassign.select-member-to-promote" msgstr "Selecteer een lid om te promoveren" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/change_owner.cljs:49 msgid "modals.leave-and-reassign.title" msgstr "Voordat je gaat" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:402, src/app/main/ui/dashboard/sidebar.cljs:424, src/app/main/ui/dashboard/team.cljs:394, src/app/main/ui/dashboard/team.cljs:416 msgid "modals.leave-confirm.accept" msgstr "Team verlaten" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:401, src/app/main/ui/dashboard/team.cljs:415 msgid "modals.leave-confirm.message" msgstr "Weet je zeker dat je dit team wilt verlaten?" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:400, src/app/main/ui/dashboard/sidebar.cljs:421, src/app/main/ui/dashboard/team.cljs:391, src/app/main/ui/dashboard/team.cljs:414 msgid "modals.leave-confirm.title" msgstr "Team verlaten" +#: src/app/main/ui/delete_shared.cljs:53 msgid "modals.move-shared-confirm.accept" msgid_plural "modals.move-shared-confirm.accept" msgstr[0] "Verplaatsen" msgstr[1] "Verplaatsen" +#: src/app/main/ui/delete_shared.cljs:48 msgid "modals.move-shared-confirm.message" msgid_plural "modals.move-shared-confirm.message" msgstr[0] "Weet je zeker dat je deze bibliotheek wilt verplaatsen?" msgstr[1] "Weet je zeker dat je deze bibliotheken wilt verplaatsen?" +#: src/app/main/ui/delete_shared.cljs:43 msgid "modals.move-shared-confirm.title" msgid_plural "modals.move-shared-confirm.title" msgstr[0] "Bibliotheek verplaatsen" msgstr[1] "Bibliotheken verplaatsen" -#: src/app/main/ui/workspace/nudge.cljs +#: src/app/main/ui/workspace/main_menu.cljs:266, src/app/main/ui/workspace/nudge.cljs:47 msgid "modals.nudge-title" msgstr "Verschuiving" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:340 msgid "modals.promote-owner-confirm.accept" msgstr "Eigendom overdragen" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:339 msgid "modals.promote-owner-confirm.hint" msgstr "" "Als je het eigendom overdraagt, verander je je rol in beheerder en verlies " "je enkele machtigingen voor dit team. " -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:338 msgid "modals.promote-owner-confirm.message" msgstr "" "Je bent de huidige eigenaar van dit team. Weet je zeker dat je %s de nieuwe " "eigenaar van het team wilt maken?" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:337 msgid "modals.promote-owner-confirm.title" msgstr "Nieuwe teameigenaar" +#: src/app/main/ui/workspace/libraries.cljs:188 msgid "modals.publish-empty-library.accept" msgstr "Publiceren" +#: src/app/main/ui/workspace/libraries.cljs:187 msgid "modals.publish-empty-library.message" msgstr "Je bibliotheek is leeg. Weet je zeker dat je het wilt publiceren?" +#: src/app/main/ui/workspace/libraries.cljs:186 msgid "modals.publish-empty-library.title" msgstr "Lege bibliotheek publiceren" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "modals.remove-shared-confirm.accept" msgstr "Als gedeelde bibliotheek verwijderen" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "modals.remove-shared-confirm.hint" msgstr "" "Eenmaal verwijderd als gedeelde bibliotheek, is de bestandsbibliotheek van " "dit bestand niet meer beschikbaar voor gebruik onder de rest van je " "bestanden." -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "modals.remove-shared-confirm.message" msgstr "\"%s\" als gedeelde bibliotheek verwijderen" -#: src/app/main/ui/workspace/nudge.cljs +#: src/app/main/ui/workspace/nudge.cljs:53 msgid "modals.small-nudge" msgstr "Kleine verschuiving" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:52 msgid "modals.unpublish-shared-confirm.accept" msgid_plural "modals.unpublish-shared-confirm.accept" msgstr[0] "Publicatie ongedaan maken" msgstr[1] "Publicaties ongedaan maken" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:47 msgid "modals.unpublish-shared-confirm.message" msgid_plural "modals.unpublish-shared-confirm.message" msgstr[0] "Weet je zeker dat je de publicatie van deze bibliotheek ongedaan wilt maken?" @@ -2239,3015 +2435,3330 @@ msgstr[1] "" "Weet je zeker dat je de publicatie van deze bibliotheken ongedaan wilt " "maken?" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:42 msgid "modals.unpublish-shared-confirm.title" msgid_plural "modals.unpublish-shared-confirm.title" msgstr[0] "Publicatie bibliotheek ongedaan maken" msgstr[1] "Publicatie bibliotheken ongedaan maken" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#, unused msgid "modals.update-remote-component-in-bulk.hint" msgstr "" "Je staat op het punt om componenten in een gedeelde bibliotheek bij te " "werken. Dit kan van invloed zijn op andere bestanden die er gebruik van " "maken." -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#, unused msgid "modals.update-remote-component-in-bulk.message" msgstr "Componenten in een gedeelde bibliotheek bijwerken" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:380 msgid "modals.update-remote-component.accept" msgstr "Bijwerken" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:379 msgid "modals.update-remote-component.cancel" msgstr "Annuleren" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:378 msgid "modals.update-remote-component.hint" msgstr "" "Je staat op het punt een component in een gedeelde bibliotheek bij te " "werken. Dit kan van invloed zijn op andere bestanden die er gebruik van " "maken." -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:377 msgid "modals.update-remote-component.message" msgstr "Component in een gedeelde bibliotheek bijwerken" -#: src/app/main/data/common.cljs +#: src/app/main/data/common.cljs:71 msgid "notifications.by-code.upgrade-version" msgstr "Er is een nieuwe versie beschikbaar, vernieuw de pagina" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:154, src/app/main/ui/dashboard/team.cljs:595 msgid "notifications.invitation-email-sent" msgstr "Uitnodiging succesvol verstuurd" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:616 msgid "notifications.invitation-link-copied" msgstr "Uitnodigingslink gekopieerd" -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:24 msgid "notifications.profile-deletion-not-allowed" msgstr "" "Je kunt je profiel niet verwijderen. Wijs je teams opnieuw toe voordat je " "verder gaat." -#: src/app/main/ui/settings/profile.cljs, src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:29, src/app/main/ui/settings/profile.cljs:35 msgid "notifications.profile-saved" msgstr "Profiel is opgeslagen!" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:63 msgid "notifications.validation-email-sent" msgstr "Verificatie-e-mail verzonden naar %s. Controleer je e-mail!" +#, unused msgid "onboarding-v2.before-start.desc1" msgstr "" "Je moet weten dat er veel bronnen beschikbaar zijn om je op weg te helpen " "met Penpot, zoals de gebruikershandleiding en ons YouTube-kanaal." +#, unused msgid "onboarding-v2.before-start.desc2" msgstr "" "Gedetailleerde informatie over het gebruik van Penpot. Van prototyping tot " "het organiseren of delen van ontwerpen." +#, unused msgid "onboarding-v2.before-start.desc2.title" msgstr "Gebruikershandleiding" +#, unused msgid "onboarding-v2.before-start.desc3" msgstr "Je kunt onze introducties en die van onze gemeenschap bekijken." +#, unused msgid "onboarding-v2.before-start.desc3.title" msgstr "Video-introducties" +#, unused msgid "onboarding-v2.before-start.title" msgstr "Voordat je begint" +#: src/app/main/ui/onboarding/newsletter.cljs:63 msgid "onboarding-v2.newsletter.desc" msgstr "" "Abonneer je op de Penpot-nieuwsbrief om op de hoogte te blijven van de " "voortgang van de productontwikkeling en nieuws." +#: src/app/main/ui/onboarding/newsletter.cljs:83 msgid "onboarding-v2.newsletter.news" msgstr "Stuur mij nieuws over Penpot (blogposts, video-introducties, streamings…)." +#: src/app/main/ui/onboarding/newsletter.cljs:91 msgid "onboarding-v2.newsletter.privacy1" msgstr "Wij geven om privacy, lees hier onze " +#: src/app/main/ui/onboarding/newsletter.cljs:97 msgid "onboarding-v2.newsletter.privacy2" msgstr "" "We sturen je alleen relevante e-mails. Je kunt je op elk moment afmelden " "via de afmeldlink in al onze nieuwsbrieven." +#: src/app/main/ui/onboarding/newsletter.cljs:71 msgid "onboarding-v2.newsletter.updates" msgstr "Stuur mij productnieuws (nieuwe functies, releases, correcties…)." +#, unused msgid "onboarding-v2.welcome.desc1" msgstr "" "Penpot is Open Source en is gemaakt door zowel Kaleidos als de gemeenschap, " "waar al veel mensen elkaar helpen. Iedereen kan samenwerken door:" +#, unused msgid "onboarding-v2.welcome.desc2" msgstr "" "Een openbare ruimte om te leren, te delen en te discussiëren over Penpot, " "zijn heden en toekomst met de hele gemeenschap en het kernteam van Penpot." +#, unused msgid "onboarding-v2.welcome.desc2.title" msgstr "Deelnemen aan de Penpot-gemeenschap" +#, unused msgid "onboarding-v2.welcome.desc3" msgstr "" "Waar je kunt vinden hoe je kunt samenwerken aan vertalingen, " "functieverzoeken, kernbijdragen, zoeken naar bugs…" +#, unused msgid "onboarding-v2.welcome.desc3.title" msgstr "Bijdragen" +#: src/app/main/ui/onboarding/team_choice.cljs:31 msgid "onboarding-v2.welcome.title" msgstr "Welkom bij Penpot!" +#: src/app/main/ui/onboarding/team_choice.cljs:229 msgid "onboarding.choice.team-up.continue-creating-team" msgstr "Doorgaan met team aanmaken" +#: src/app/main/ui/onboarding/team_choice.cljs:239 msgid "onboarding.choice.team-up.continue-without-a-team" msgstr "Doorgaan zonder team" +#: src/app/main/ui/onboarding/team_choice.cljs:167 msgid "onboarding.choice.team-up.create-team-and-invite" msgstr "Team aanmaken & uitnodigen" +#, unused msgid "onboarding.choice.team-up.create-team-and-send-invites" msgstr "Team aanmaken en uitnodigingen versturen" +#: src/app/main/ui/onboarding/team_choice.cljs:170 msgid "onboarding.choice.team-up.create-team-and-send-invites-description" msgstr "Je kunt later uitnodigen" +#: src/app/main/ui/onboarding/team_choice.cljs:215 msgid "onboarding.choice.team-up.create-team-desc" msgstr "" "Nadat je je team een naam hebt gegeven, kun je mensen uitnodigen om lid te " "worden." +#: src/app/main/ui/onboarding/team_choice.cljs:224 msgid "onboarding.choice.team-up.create-team-placeholder" msgstr "Voer de naam van het team in" +#: src/app/main/ui/onboarding/team_choice.cljs:168 msgid "onboarding.choice.team-up.create-team-without-invite" msgstr "Team aanmaken" +#, unused msgid "onboarding.choice.team-up.create-team-without-inviting" msgstr "Team aanmaken zonder uitnodigingen" +#: src/app/main/ui/dashboard/projects.cljs:89, src/app/main/ui/onboarding/team_choice.cljs:140 msgid "onboarding.choice.team-up.invite-members" msgstr "Leden uitnodigen" +#: src/app/main/ui/onboarding/team_choice.cljs:141 msgid "onboarding.choice.team-up.invite-members-info" msgstr "" "Vergeet niet om iedereen mee te nemen. Ontwikkelaars, ontwerpers, " "managers... diversiteit is alleen maar beter :)" +#: src/app/main/ui/dashboard/team.cljs:202, src/app/main/ui/onboarding/team_choice.cljs:146 msgid "onboarding.choice.team-up.roles" msgstr "Uitnodigen met rol:" +#: src/app/main/ui/onboarding/team_choice.cljs:232 msgid "onboarding.choice.team-up.start-without-a-team" msgstr "Zonder team beginnen" +#: src/app/main/ui/onboarding/team_choice.cljs:234 msgid "onboarding.choice.team-up.start-without-a-team-description" msgstr "Je kunt later een team samenstellen." +#, unused msgid "onboarding.newsletter.accept" msgstr "Ja, abonneren" +#: src/app/main/ui/onboarding/newsletter.cljs:40 msgid "onboarding.newsletter.acceptance-message" msgstr "" "Je inschrijvingsverzoek is verzonden, wij sturen je een e-mail ter " "bevestiging." +#: src/app/main/ui/onboarding/newsletter.cljs:95 msgid "onboarding.newsletter.policy" msgstr "Privacybeleid." +#: src/app/main/ui/onboarding/newsletter.cljs:60 msgid "onboarding.newsletter.title" msgstr "Wil je Penpot-nieuws ontvangen?" +#: src/app/main/ui/onboarding/questions.cljs:118 +msgid "onboarding.questions.lets-get-started" +msgstr "Laten we beginnen!" + +#: src/app/main/ui/onboarding/questions.cljs:273 +msgid "onboarding.questions.team-size.11-30" +msgstr "11-30" + +#: src/app/main/ui/onboarding/questions.cljs:274 +msgid "onboarding.questions.team-size.2-10" +msgstr "2-10" + +#: src/app/main/ui/onboarding/questions.cljs:272 +msgid "onboarding.questions.team-size.31-50" +msgstr "31-50" + +#: src/app/main/ui/onboarding/questions.cljs:271 +msgid "onboarding.questions.team-size.more-than-50" +msgstr "Meer dan 50" + +#: src/app/main/ui/onboarding/questions.cljs:276 +msgid "onboarding.questions.team-size.personal-project" +msgstr "Ik werk aan een persoonlijk project" + +#: src/app/main/ui/onboarding/team_choice.cljs:213 msgid "onboarding.team-modal.create-team" msgstr "Team aanmaken" +#: src/app/main/ui/onboarding/team_choice.cljs:35 msgid "onboarding.team-modal.create-team-desc" msgstr "" "Met een team kun je samenwerken met andere Penpot-gebruikers die aan " "dezelfde bestanden en projecten werken." +#: src/app/main/ui/onboarding/team_choice.cljs:40 msgid "onboarding.team-modal.create-team-feature-1" msgstr "Oneindig veel bestanden en projecten" +#: src/app/main/ui/onboarding/team_choice.cljs:44 msgid "onboarding.team-modal.create-team-feature-2" msgstr "Multiplayer-editie" +#: src/app/main/ui/onboarding/team_choice.cljs:48 msgid "onboarding.team-modal.create-team-feature-3" msgstr "Rollenbeheer" +#: src/app/main/ui/onboarding/team_choice.cljs:52 msgid "onboarding.team-modal.create-team-feature-4" msgstr "Oneindig veel leden" +#: src/app/main/ui/onboarding/team_choice.cljs:56 msgid "onboarding.team-modal.create-team-feature-5" msgstr "100% gratis!" +#: src/app/main/ui/onboarding/team_choice.cljs:33 msgid "onboarding.team-modal.team-definition" msgstr "Wat is een team?" +#: src/app/main/ui/onboarding/templates.cljs:78 msgid "onboarding.templates.subtitle" msgstr "Hier zijn wat sjablonen." +#: src/app/main/ui/onboarding/templates.cljs:77 msgid "onboarding.templates.title" msgstr "Start met ontwerpen" +#, unused msgid "onboarding.welcome.alt" msgstr "Penpot" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:99 msgid "profile.recovery.go-to-login" msgstr "Ga naar inlogscherm" -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.team-size.11-30" -msgstr "11-30" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.team-size.2-10" -msgstr "2-10" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.team-size.31-50" -msgstr "31-50" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.adobe-xd" -msgstr "Adobe XD" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.canva" -msgstr "Canva" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.figma" -msgstr "Figma" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.freelancer" -msgstr "Ik ben een freelancer" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.invision" -msgstr "InVision" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.lets-get-started" -msgstr "Laten we beginnen!" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.team-size.more-than-50" -msgstr "Meer dan 50" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.next" -msgstr "Volgende" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.other" -msgstr "Anders (namelijk…)" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.team-size.personal-project" -msgstr "Ik werk aan een persoonlijk project" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.previous" -msgstr "Vorige" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.select-option" -msgstr "Selecteer een optie" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.sketch" -msgstr "Sketch" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.start" -msgstr "Starten" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.student-teacher" -msgstr "Student of docent" - -#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, +#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:221 msgid "settings.detach" msgstr "Ontkoppelen" -#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs +#: src/app/main/ui/viewer/inspect/exports.cljs:147, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:631, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:137, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:148, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:188, src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:158, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:399, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:410, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:430, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:441, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:458, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:472, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:309, src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:183, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:373, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:389, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:245, src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:172 msgid "settings.multiple" msgstr "Gemixt" -#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:271 msgid "settings.select-this-color" msgstr "Selecteer items in deze stijl" # SECTIONS +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:414 msgid "shortcut-section.basics" msgstr "Basis" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:420 msgid "shortcut-section.dashboard" msgstr "Dashboard" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:423 msgid "shortcut-section.viewer" msgstr "Bekijker" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:417 msgid "shortcut-section.workspace" msgstr "Werkruimte" # SUBSECTIONS +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:56 msgid "shortcut-subsection.alignment" msgstr "Uitlijning" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:57 msgid "shortcut-subsection.edit" msgstr "Bewerken" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:58 msgid "shortcut-subsection.general-dashboard" msgstr "Algemeen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:59 msgid "shortcut-subsection.general-viewer" msgstr "Algemeen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:60 msgid "shortcut-subsection.main-menu" msgstr "Hoofdmenu" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:61 msgid "shortcut-subsection.modify-layers" msgstr "Lagen wijzigen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:62 msgid "shortcut-subsection.navigation-dashboard" msgstr "Navigatie" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:63 msgid "shortcut-subsection.navigation-viewer" msgstr "Navigatie" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:64 msgid "shortcut-subsection.navigation-workspace" msgstr "Navigatie" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:65 msgid "shortcut-subsection.panels" msgstr "Panelen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:66 msgid "shortcut-subsection.path-editor" msgstr "Paden" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:67 msgid "shortcut-subsection.shape" msgstr "Vormen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:68 msgid "shortcut-subsection.text-editor" msgstr "Teksten" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:69 msgid "shortcut-subsection.tools" msgstr "Hulpmiddelen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:70 msgid "shortcut-subsection.zoom-viewer" msgstr "Zoomen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:71 msgid "shortcut-subsection.zoom-workspace" msgstr "Zoomen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:72 msgid "shortcuts.add-comment" msgstr "Commentaar" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:73 msgid "shortcuts.add-node" msgstr "Knooppunt toevoegen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:74 msgid "shortcuts.align-bottom" msgstr "Onderaan uitlijnen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:75 msgid "shortcuts.align-center" msgstr "Centreren" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:76 msgid "shortcuts.align-hcenter" msgstr "Horizontaal centreren" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:77 msgid "shortcuts.align-justify" msgstr "Uitlijnen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:78 msgid "shortcuts.align-left" msgstr "Links uitlijnen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:79 msgid "shortcuts.align-right" msgstr "Rechts uitlijnen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:80 msgid "shortcuts.align-top" msgstr "Bovenaan uitlijnen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:81 msgid "shortcuts.align-vcenter" msgstr "Verticaal centreren" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:82 msgid "shortcuts.artboard-selection" msgstr "Maak bord van selectie" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:83 msgid "shortcuts.bold" msgstr "Vet in/uitschakelen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:84 msgid "shortcuts.bool-difference" msgstr "Aftrekken (Booleaans verschil)" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:85 msgid "shortcuts.bool-exclude" msgstr "Uitsluiten" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:86 msgid "shortcuts.bool-intersection" msgstr "Booleaanse kruising" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:87 msgid "shortcuts.bool-union" msgstr "Booleaanse vereniging" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:88 msgid "shortcuts.bring-back" msgstr "Naar de achtergrond" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:89 msgid "shortcuts.bring-backward" msgstr "Naar achteren" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:90 msgid "shortcuts.bring-forward" msgstr "Naar voren" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:91 msgid "shortcuts.bring-front" msgstr "Naar de voorgrond" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:92 msgid "shortcuts.clear-undo" msgstr "Ongedaan maken wissen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:93 msgid "shortcuts.copy" msgstr "Kopiëren" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:94 msgid "shortcuts.create-component" msgstr "Component aanmaken" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:95 msgid "shortcuts.create-new-project" msgstr "Nieuw project aanmaken" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:96 msgid "shortcuts.cut" msgstr "Knippen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:97 msgid "shortcuts.decrease-zoom" msgstr "Uitzoomen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:98 msgid "shortcuts.delete" msgstr "Verwijderen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:99 msgid "shortcuts.delete-node" msgstr "Knooppunt verwijderen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:100 msgid "shortcuts.detach-component" msgstr "Component losmaken" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:101 msgid "shortcuts.draw-curve" msgstr "Kromme" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:102 msgid "shortcuts.draw-ellipse" msgstr "Ellips" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:103 msgid "shortcuts.draw-frame" msgstr "Bord" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:104 msgid "shortcuts.draw-nodes" msgstr "Pad tekenen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:105 msgid "shortcuts.draw-path" msgstr "Pad" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:106 msgid "shortcuts.draw-rect" msgstr "Rechthoek" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:107 msgid "shortcuts.draw-text" msgstr "Tekst" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:108 msgid "shortcuts.duplicate" msgstr "Dupliceren" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:109 msgid "shortcuts.escape" msgstr "Annuleren" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:110 msgid "shortcuts.export-shapes" msgstr "Vormen exporteren" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:111 msgid "shortcuts.fit-all" msgstr "Passend zoomen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:112 msgid "shortcuts.flip-horizontal" msgstr "Horizontaal spiegelen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:113 msgid "shortcuts.flip-vertical" msgstr "Verticaal spiegelen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:114 msgid "shortcuts.font-size-dec" msgstr "Lettergrootte verkleinen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:115 msgid "shortcuts.font-size-inc" msgstr "Lettergrootte vergroten" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:116 msgid "shortcuts.go-to-drafts" msgstr "Ga naar concepten" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:117 msgid "shortcuts.go-to-libs" msgstr "Ga naar gedeelde bibliotheek" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:118 msgid "shortcuts.go-to-search" msgstr "Zoeken" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:119 msgid "shortcuts.group" msgstr "Groeperen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:120 msgid "shortcuts.h-distribute" msgstr "Horizontaal verdelen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:121 msgid "shortcuts.hide-ui" msgstr "UI tonen/verbergen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:122 msgid "shortcuts.increase-zoom" msgstr "Inzoomen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:123 msgid "shortcuts.insert-image" msgstr "Afbeelding invoegen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:124 msgid "shortcuts.italic" msgstr "Cursief in/uitschakelen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:125 msgid "shortcuts.join-nodes" msgstr "Knooppunten verbinden" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:126 msgid "shortcuts.letter-spacing-dec" msgstr "Letterafstand verkleinen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:127 msgid "shortcuts.letter-spacing-inc" msgstr "Letterafstand vergroten" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:128 msgid "shortcuts.line-height-dec" msgstr "Regelafstand verkleinen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:129 msgid "shortcuts.line-height-inc" msgstr "Regelafstand vergroten" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:130 msgid "shortcuts.line-through" msgstr "Doorstrepen in/uitschakelen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:131 msgid "shortcuts.make-corner" msgstr "Hoek maken" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:132 msgid "shortcuts.make-curve" msgstr "Kromme maken" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:133 msgid "shortcuts.mask" msgstr "Maskeren" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:134 msgid "shortcuts.merge-nodes" msgstr "Knooppunten samenvoegen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:135 msgid "shortcuts.move" msgstr "Verplaatsen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:136 msgid "shortcuts.move-fast-down" msgstr "Snel naar beneden verplaatsen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:137 msgid "shortcuts.move-fast-left" msgstr "Snel naar links verplaatsen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:138 msgid "shortcuts.move-fast-right" msgstr "Snel naar rechts verplaatsen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:139 msgid "shortcuts.move-fast-up" msgstr "Snel naar boven verplaatsen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:140 msgid "shortcuts.move-nodes" msgstr "Knooppunt verplaatsen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:141 msgid "shortcuts.move-unit-down" msgstr "Naar beneden verplaatsen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:142 msgid "shortcuts.move-unit-left" msgstr "Naar links verplaatsen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:143 msgid "shortcuts.move-unit-right" msgstr "Naar rechts verplaatsen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:144 msgid "shortcuts.move-unit-up" msgstr "Naar boven verplaatsen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:145 msgid "shortcuts.next-frame" msgstr "Volgend bord" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:516 msgid "shortcuts.not-found" msgstr "Geen sneltoets gevonden" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:146 msgid "shortcuts.opacity-0" msgstr "Dekking 100%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:147 msgid "shortcuts.opacity-1" msgstr "Dekking 10%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:148 msgid "shortcuts.opacity-2" msgstr "Dekking 20%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:149 msgid "shortcuts.opacity-3" msgstr "Dekking 30%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:150 msgid "shortcuts.opacity-4" msgstr "Dekking 40%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:151 msgid "shortcuts.opacity-5" msgstr "Dekking 50%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:152 msgid "shortcuts.opacity-6" msgstr "Dekking 60%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:153 msgid "shortcuts.opacity-7" msgstr "Dekking 70%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:154 msgid "shortcuts.opacity-8" msgstr "Dekking 80%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:155 msgid "shortcuts.opacity-9" msgstr "Dekking 90%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:156 msgid "shortcuts.open-color-picker" msgstr "Kleurkiezer" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:157 msgid "shortcuts.open-comments" msgstr "Ga naar het commentaargedeelte van de kijker" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:158 msgid "shortcuts.open-dashboard" msgstr "Ga naar dashboard" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:159 msgid "shortcuts.open-inspect" msgstr "Ga naar de sectie voor het inspecteren van kijkers" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:160 msgid "shortcuts.open-interactions" msgstr "Ga naar de kijkersinteracties-sectie" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:161 msgid "shortcuts.open-viewer" msgstr "Ga naar de kijkersinteracties-sectie" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:162 msgid "shortcuts.open-workspace" msgstr "Ga naar werkruimte" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:260 msgid "shortcuts.or" msgstr " of " +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:163 msgid "shortcuts.paste" msgstr "Plakken" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:164 msgid "shortcuts.prev-frame" msgstr "Vorig bord" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:165 msgid "shortcuts.redo" msgstr "Opnieuw doen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:166 msgid "shortcuts.reset-zoom" msgstr "Zoom herstellen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:167 msgid "shortcuts.scale" msgstr "Schaal" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:168 msgid "shortcuts.search-placeholder" msgstr "Sneltoetsen zoeken" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:169 msgid "shortcuts.select-all" msgstr "Alles selecteren" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:170 msgid "shortcuts.select-next" msgstr "Volgende laag selecteren" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:171 msgid "shortcuts.select-parent-layer" msgstr "Bovenliggende laag selecteren" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:172 msgid "shortcuts.select-prev" msgstr "Vorige laag selecteren" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:173 msgid "shortcuts.separate-nodes" msgstr "Knooppunten loskoppelen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:174 msgid "shortcuts.show-pixel-grid" msgstr "Pixelraster tonen/verbergen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:175 msgid "shortcuts.show-shortcuts" msgstr "Sneltoetsen tonen/verbergen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:176 msgid "shortcuts.snap-nodes" msgstr "Uitlijnen op knooppunten" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:177 msgid "shortcuts.snap-pixel-grid" msgstr "Uitlijnen op pixelraster" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:178 msgid "shortcuts.start-editing" msgstr "Start met bewerken" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:179 msgid "shortcuts.start-measure" msgstr "Meting starten" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:180 msgid "shortcuts.stop-measure" msgstr "Meting beëindigen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:181 msgid "shortcuts.text-align-center" msgstr "Gecentreerd uitlijnen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:182 msgid "shortcuts.text-align-justify" msgstr "Volledig uitvullen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:183 msgid "shortcuts.text-align-left" msgstr "Links uitlijnen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:184 msgid "shortcuts.text-align-right" msgstr "Rechts uitlijnen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:185 msgid "shortcuts.thumbnail-set" msgstr "Miniaturen instellen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:496, src/app/main/ui/workspace/sidebar/shortcuts.cljs:505 msgid "shortcuts.title" msgstr "Sneltoetsen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:186 msgid "shortcuts.toggle-alignment" msgstr "Dynamisch uitlijnen in/uitschakelen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:187 msgid "shortcuts.toggle-assets" msgstr "Assets in/uitschakelen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:188 msgid "shortcuts.toggle-colorpalette" msgstr "Kleurenpalet in/uitschakelen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:189 msgid "shortcuts.toggle-focus-mode" msgstr "Focusmodus in/uitschakelen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:190 msgid "shortcuts.toggle-fullscreen" msgstr "Volledig scherm in/uitschakelen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:191 msgid "shortcuts.toggle-guides" msgstr "Hulplijnen tonen/verbergen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:192 msgid "shortcuts.toggle-history" msgstr "Geschiedenis in/uitschakelen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:193 msgid "shortcuts.toggle-layers" msgstr "Lagen in/uitschakelen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:194 msgid "shortcuts.toggle-layout-flex" msgstr "Flex-layout toevoegen/verwijderen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:195 msgid "shortcuts.toggle-layout-grid" msgstr "Raster-layout toevoegen/verwijderen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:196 msgid "shortcuts.toggle-lock" msgstr "Vergrendelen/ontgrendelen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:197 msgid "shortcuts.toggle-lock-size" msgstr "Proporties vergrendelen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:198 msgid "shortcuts.toggle-rulers" msgstr "Linialen tonen/verbergen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:200 msgid "shortcuts.toggle-snap-guides" msgstr "Uitlijnen op hulpijnen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:201 msgid "shortcuts.toggle-snap-ruler-guide" msgstr "Uitlijnen op liniaal-hulplijnen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:202 msgid "shortcuts.toggle-textpalette" msgstr "Tekstpalet in/uitschakelen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:203 msgid "shortcuts.toggle-theme" msgstr "Thema veranderen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:204 msgid "shortcuts.toggle-visibility" msgstr "Tonen/verbergen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:205 msgid "shortcuts.toggle-zoom-style" msgstr "Zoomstijl wisselen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:206 msgid "shortcuts.underline" msgstr "Onderstrepen in/uitschakelen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:207 msgid "shortcuts.undo" msgstr "Ongedaan maken" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:208 msgid "shortcuts.ungroup" msgstr "Groep opheffen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:209 msgid "shortcuts.unmask" msgstr "Masker verwijderen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:210 msgid "shortcuts.v-distribute" msgstr "Verticaal verdelen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:211 msgid "shortcuts.zoom-lense-decrease" msgstr "Zoomlens verkleinen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:212 msgid "shortcuts.zoom-lense-increase" msgstr "Zoomlens vergroten" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:213 msgid "shortcuts.zoom-selected" msgstr "Zoomen naar selectie" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:771 msgid "team.webhooks.max-length" msgstr "De webhooknaam mag maximaal 2048 tekens bevatten." -#: src/app/main/ui/dashboard/files.cljs +#: src/app/main/ui/dashboard/files.cljs:158 msgid "title.dashboard.files" msgstr "%s - Penpot" -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:37 msgid "title.dashboard.font-providers" msgstr "Lettertypeaanbieders - %s - Penpot" -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:36 msgid "title.dashboard.fonts" msgstr "Lettertypen - %s - Penpot" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:320 msgid "title.dashboard.projects" msgstr "Projecten - %s - Penpot" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:32 msgid "title.dashboard.search" msgstr "Zoeken - %s - Penpot" -#: src/app/main/ui/dashboard/libraries.cljs +#: src/app/main/ui/dashboard/libraries.cljs:44 msgid "title.dashboard.shared-libraries" msgstr "Gedeelde bibliotheken - %s - Penpot" -#: src/app/main/ui/auth/verify_token.cljs, src/app/main/ui/auth.cljs +#: src/app/main/ui/auth/verify_token.cljs:68, src/app/main/ui/auth.cljs:54 msgid "title.default" msgstr "Penpot - Ontwerpvrijheid voor teams" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:292 msgid "title.settings.access-tokens" msgstr "Profiel - Toegangsbewijzen" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:110 msgid "title.settings.feedback" msgstr "Feedback geven - Penpot" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:80 msgid "title.settings.options" msgstr "Instellingen - Penpot" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:115 msgid "title.settings.password" msgstr "Wachtwoord - Penpot" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:115 msgid "title.settings.profile" msgstr "Profiel - Penpot" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:727 msgid "title.team-invitations" msgstr "Uitnodigingen - %s - Penpot" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:493 msgid "title.team-members" msgstr "Leden - %s - Penpot" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1036 msgid "title.team-settings" msgstr "Instellingen - %s - Penpot" +#: src/app/main/ui/dashboard/team.cljs:989 msgid "title.team-webhooks" msgstr "Webhooks - %s - Penpot" -#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs +#: src/app/main/ui/viewer.cljs:419 msgid "title.viewer" msgstr "%s - Weergavemodus - Penpot" -#: src/app/main/ui/workspace.cljs +#: src/app/main/ui/workspace.cljs:190 msgid "title.workspace" msgstr "%s - Penpot" +#: src/app/main/ui.cljs:144 msgid "viewer.breaking-change.description" msgstr "" "Deze deelbare link is niet langer geldig. Maak een nieuwe aan of vraag de " "eigenaar om een nieuwe." +#: src/app/main/ui.cljs:143 msgid "viewer.breaking-change.message" msgstr "Sorry!" -#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs +#: src/app/main/ui/viewer.cljs:569 msgid "viewer.empty-state" msgstr "Geen borden gevonden op de pagina." -#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs +#: src/app/main/ui/viewer.cljs:574 msgid "viewer.frame-not-found" msgstr "Bord niet gevonden." +#: src/app/main/ui/viewer/header.cljs:336 msgid "viewer.header.comments-section" msgstr "Commentaar (%s)" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/interactions.cljs:292 msgid "viewer.header.dont-show-interactions" msgstr "Interacties niet tonen" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/header.cljs:188 msgid "viewer.header.fullscreen" msgstr "Volledig scherm" +#: src/app/main/ui/viewer/header.cljs:345 msgid "viewer.header.inspect-section" msgstr "Inspecteren (%s)" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/interactions.cljs:282 msgid "viewer.header.interactions" msgstr "Interacties" +#: src/app/main/ui/viewer/header.cljs:327 msgid "viewer.header.interactions-section" msgstr "Interacties (%s)" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/share_link.cljs:187 msgid "viewer.header.share.copy-link" msgstr "Link kopiëren" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/interactions.cljs:300 msgid "viewer.header.show-interactions" msgstr "Interacties tonen" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/interactions.cljs:311 msgid "viewer.header.show-interactions-on-click" msgstr "Interacties tonen bij aanklikken" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/header.cljs:231 msgid "viewer.header.sitemap" msgstr "Sitemap" +#: src/app/main/ui/dashboard/team.cljs:948 msgid "webhooks.last-delivery.success" msgstr "De laatste levering was succesvol." -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:58 msgid "workspace.align.hcenter" msgstr "Horizontaal centreren (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:74 msgid "workspace.align.hdistribute" msgstr "Horizontaal verdelen (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:50 msgid "workspace.align.hleft" msgstr "Links uitlijnen (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:66 msgid "workspace.align.hright" msgstr "Rechts uitlijnen (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:99 msgid "workspace.align.vbottom" msgstr "Onderkant uitlijnen (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:91 msgid "workspace.align.vcenter" msgstr "Verticaal centreren (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:104 msgid "workspace.align.vdistribute" msgstr "Verticaal verdelen (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:83 msgid "workspace.align.vtop" msgstr "Bovenkant uitlijnen (%s)" #: src/app/main/ui/workspace/sidebar/assets.cljs +#, unused msgid "workspace.assets.assets" msgstr "Assets" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets.cljs:134 msgid "workspace.assets.box-filter-all" msgstr "Alle assets" -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/dashboard/grid.cljs:130, src/app/main/ui/dashboard/grid.cljs:162, src/app/main/ui/workspace/sidebar/assets/colors.cljs:485, src/app/main/ui/workspace/sidebar/assets.cljs:150 msgid "workspace.assets.colors" msgstr "Kleuren" -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/dashboard/grid.cljs:126, src/app/main/ui/dashboard/grid.cljs:141, src/app/main/ui/workspace/sidebar/assets/components.cljs:513, src/app/main/ui/workspace/sidebar/assets.cljs:139 msgid "workspace.assets.components" msgstr "Componenten" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:131 msgid "workspace.assets.create-group" msgstr "Groep aanmaken" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:142 msgid "workspace.assets.create-group-hint" msgstr "Je items krijgen automatisch de naam \"groepsnaam / itemnaam\"" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/context_menu.cljs:529, src/app/main/ui/workspace/sidebar/assets/colors.cljs:251, src/app/main/ui/workspace/sidebar/assets/components.cljs:577, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:424, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:443 msgid "workspace.assets.delete" msgstr "Verwijderen" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/context_menu.cljs:534, src/app/main/ui/workspace/sidebar/assets/components.cljs:572 msgid "workspace.assets.duplicate" msgstr "Dupliceren" +#: src/app/main/ui/workspace/sidebar/assets/components.cljs:571 msgid "workspace.assets.duplicate-main" msgstr "Hoofdcomponent dupliceren" -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:247, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:439 msgid "workspace.assets.edit" msgstr "Bewerken" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets.cljs:176 msgid "workspace.assets.filter" msgstr "Filteren" -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/graphics.cljs:384, src/app/main/ui/workspace/sidebar/assets.cljs:145 msgid "workspace.assets.graphics" msgstr "Graphics" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:255, src/app/main/ui/workspace/sidebar/assets/components.cljs:581, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:428, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:448 msgid "workspace.assets.group" msgstr "Groeperen" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:141 msgid "workspace.assets.group-name" msgstr "Groepsnaam" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets.cljs:168 msgid "workspace.assets.libraries" msgstr "Bibliotheken" +#: src/app/main/ui/workspace/sidebar/assets/file_library.cljs:62, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:347 msgid "workspace.assets.local-library" msgstr "Lokale bibliotheek" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/file_library.cljs:295 msgid "workspace.assets.not-found" msgstr "Geen assets gevonden" +#, unused msgid "workspace.assets.open-library" msgstr "Open Bibliotheek-bestand" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/context_menu.cljs:532, src/app/main/ui/workspace/sidebar/assets/colors.cljs:243, src/app/main/ui/workspace/sidebar/assets/components.cljs:566, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:421, src/app/main/ui/workspace/sidebar/assets/groups.cljs:63, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:434 msgid "workspace.assets.rename" msgstr "Hernoemen" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:132 msgid "workspace.assets.rename-group" msgstr "Groep hernoemen" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets.cljs:173 msgid "workspace.assets.search" msgstr "Assets zoeken" #: src/app/main/ui/workspace/sidebar/assets.cljs +#, unused msgid "workspace.assets.selected-count" msgid_plural "workspace.assets.selected-count" msgstr[0] "%s item geselecteerd" msgstr[1] "%s items geselecteerd" #: src/app/main/ui/workspace/sidebar/assets.cljs +#, unused msgid "workspace.assets.shared-library" msgstr "Gedeelde bibliotheek" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:221 msgid "workspace.assets.sidebar.components" msgid_plural "workspace.assets.sidebar.components" msgstr[0] "1 component" msgstr[1] "%s componenten" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets.cljs:193 msgid "workspace.assets.sort" msgstr "Sorteren" -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/dashboard/grid.cljs:134, src/app/main/ui/dashboard/grid.cljs:189, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:397, src/app/main/ui/workspace/sidebar/assets.cljs:155 msgid "workspace.assets.typography" msgstr "Typografie" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused msgid "workspace.assets.typography.font-id" msgstr "Lettertype" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:505 msgid "workspace.assets.typography.font-size" msgstr "Grootte" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:501 msgid "workspace.assets.typography.font-variant-id" msgstr "Variant" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:523 msgid "workspace.assets.typography.go-to-edit" msgstr "Ga naar het stijl-bibliotheekbestand om te bewerken" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:513 msgid "workspace.assets.typography.letter-spacing" msgstr "Letterafstand" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:509 msgid "workspace.assets.typography.line-height" msgstr "Regelafstand" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, -#: src/app/main/ui/inspect/attributes/text.cljs, -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/dashboard/grid.cljs:199, src/app/main/ui/workspace/libraries.cljs:461, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:464, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:489, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:596, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:615 msgid "workspace.assets.typography.sample" msgstr "Ag" +#, unused msgid "workspace.assets.typography.text-styles" msgstr "Tekststijlen" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:517 msgid "workspace.assets.typography.text-transform" msgstr "Tekst transformeren" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:66 msgid "workspace.assets.ungroup" msgstr "Groep opheffen" +#: src/app/main/ui/workspace/context_menu.cljs:634 msgid "workspace.context-menu.grid-cells.area" msgstr "Gebied aanmaken" +#: src/app/main/ui/workspace/context_menu.cljs:637 msgid "workspace.context-menu.grid-cells.create-board" msgstr "Bord aanmaken" +#: src/app/main/ui/workspace/context_menu.cljs:629 msgid "workspace.context-menu.grid-cells.merge" msgstr "Cellen samenvoegen" +#: src/app/main/ui/workspace/context_menu.cljs:594 msgid "workspace.context-menu.grid-track.column.add-after" msgstr "Rechts 1 kolom toevoegen" +#: src/app/main/ui/workspace/context_menu.cljs:593 msgid "workspace.context-menu.grid-track.column.add-before" msgstr "Links 1 kolom toevoegen" +#: src/app/main/ui/workspace/context_menu.cljs:595 msgid "workspace.context-menu.grid-track.column.delete" msgstr "Kolom verwijderen" +#: src/app/main/ui/workspace/context_menu.cljs:596 msgid "workspace.context-menu.grid-track.column.delete-shapes" msgstr "Kolom en vormen verwijderen" +#: src/app/main/ui/workspace/context_menu.cljs:592 msgid "workspace.context-menu.grid-track.column.duplicate" msgstr "Kolom dupliceren" +#: src/app/main/ui/workspace/context_menu.cljs:601 msgid "workspace.context-menu.grid-track.row.add-after" msgstr "Onder 1 rij toevoegen" +#: src/app/main/ui/workspace/context_menu.cljs:600 msgid "workspace.context-menu.grid-track.row.add-before" msgstr "Boven 1 rij toevoegen" +#: src/app/main/ui/workspace/context_menu.cljs:602 msgid "workspace.context-menu.grid-track.row.delete" msgstr "Rij verwijderen" +#: src/app/main/ui/workspace/context_menu.cljs:603 msgid "workspace.context-menu.grid-track.row.delete-shapes" msgstr "Rij en vormen verwijderen" +#: src/app/main/ui/workspace/context_menu.cljs:599 msgid "workspace.context-menu.grid-track.row.duplicate" msgstr "Rij dupliceren" +#: src/app/main/ui/workspace/sidebar/layers.cljs:525 msgid "workspace.focus.focus-mode" msgstr "Focusmodus" +#: src/app/main/ui/workspace/context_menu.cljs:287, src/app/main/ui/workspace/context_menu.cljs:553 msgid "workspace.focus.focus-off" msgstr "Focus uit" +#: src/app/main/ui/workspace/context_menu.cljs:286 msgid "workspace.focus.focus-on" msgstr "Focus aan" +#, unused msgid "workspace.focus.selection" msgstr "Selectie" -#: src/app/main/data/workspace/libraries.cljs, -#: src/app/main/ui/components/color_bullet.cljs +#: src/app/util/color.cljs:34 msgid "workspace.gradients.linear" msgstr "Lineair verloop" -#: src/app/main/data/workspace/libraries.cljs, -#: src/app/main/ui/components/color_bullet.cljs +#: src/app/util/color.cljs:35 msgid "workspace.gradients.radial" msgstr "Radiaal verloop" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:238 msgid "workspace.header.menu.disable-dynamic-alignment" msgstr "Dynamische uitlijning uitschakelen" +#: src/app/main/ui/workspace/main_menu.cljs:192 msgid "workspace.header.menu.disable-scale-content" msgstr "Proportionele schaal uitschakelen" #: src/app/main/ui/workspace/header.cljs +#, unused msgid "workspace.header.menu.disable-scale-text" msgstr "Tekstschaal uitschakelen" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:223 msgid "workspace.header.menu.disable-snap-guides" msgstr "Uitlijnen op hulplijnen uitschakelen" +#: src/app/main/ui/workspace/main_menu.cljs:253 msgid "workspace.header.menu.disable-snap-pixel-grid" msgstr "Uitlijnen op pixel uitschakelen" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:207 msgid "workspace.header.menu.disable-snap-ruler-guides" msgstr "Uitlijnen op liniaal-hulplijnen deactiveren" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:239 msgid "workspace.header.menu.enable-dynamic-alignment" msgstr "Dynamische uitlijning inschakelen" +#: src/app/main/ui/workspace/main_menu.cljs:193 msgid "workspace.header.menu.enable-scale-content" msgstr "Proportionele schaal inschakelen" #: src/app/main/ui/workspace/header.cljs +#, unused msgid "workspace.header.menu.enable-scale-text" msgstr "Tekstschaal inschakelen" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:224 msgid "workspace.header.menu.enable-snap-guides" msgstr "Uitlijnen op hulplijnen" +#: src/app/main/ui/workspace/main_menu.cljs:254 msgid "workspace.header.menu.enable-snap-pixel-grid" msgstr "Uitlijnen op pixel" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:208 msgid "workspace.header.menu.enable-snap-ruler-guides" msgstr "Uitlijnen op liniaal-hulplijnen" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:382 msgid "workspace.header.menu.hide-artboard-names" msgstr "Bordnamen verbergen" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:336 msgid "workspace.header.menu.hide-guides" msgstr "Hulplijnen verbergen" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:353 msgid "workspace.header.menu.hide-palette" msgstr "Kleurenpalet verbergen" +#: src/app/main/ui/workspace/main_menu.cljs:394 msgid "workspace.header.menu.hide-pixel-grid" msgstr "Pixelraster verbergen" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:320 msgid "workspace.header.menu.hide-rules" msgstr "Linialen verbergen" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:367 msgid "workspace.header.menu.hide-textpalette" msgstr "Lettertype-palet verbergen" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:731 msgid "workspace.header.menu.option.edit" msgstr "Bewerken" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:720 msgid "workspace.header.menu.option.file" msgstr "Bestand" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:777 msgid "workspace.header.menu.option.help-info" msgstr "Hulp & informatie" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:753 msgid "workspace.header.menu.option.preferences" msgstr "Voorkeuren" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:742 msgid "workspace.header.menu.option.view" msgstr "Beeld" +#: src/app/main/ui/workspace/main_menu.cljs:459 msgid "workspace.header.menu.redo" msgstr "Opnieuw doen" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:432 msgid "workspace.header.menu.select-all" msgstr "Alles selecteren" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:383 msgid "workspace.header.menu.show-artboard-names" msgstr "Bordnamen tonen" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:337 msgid "workspace.header.menu.show-guides" msgstr "Hulplijnen weergeven" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:354 msgid "workspace.header.menu.show-palette" msgstr "Kleurenpalet tonen" +#: src/app/main/ui/workspace/main_menu.cljs:395 msgid "workspace.header.menu.show-pixel-grid" msgstr "Pixelraster tonen" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:321 msgid "workspace.header.menu.show-rules" msgstr "Linialen tonen" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:368 msgid "workspace.header.menu.show-textpalette" msgstr "Lettertype-palet tonen" +#: src/app/main/ui/workspace/main_menu.cljs:279 msgid "workspace.header.menu.toggle-dark-theme" msgstr "Donker thema inschakelen" +#: src/app/main/ui/workspace/main_menu.cljs:278 msgid "workspace.header.menu.toggle-light-theme" msgstr "Licht thema inschakelen" +#: src/app/main/ui/workspace/main_menu.cljs:446 msgid "workspace.header.menu.undo" msgstr "Ongedaan maken" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/viewer/header.cljs:98, src/app/main/ui/workspace/right_header.cljs:120 msgid "workspace.header.reset-zoom" msgstr "Herstellen" #: src/app/main/ui/workspace/header.cljs +#, unused msgid "workspace.header.save-error" msgstr "Fout tijdens opslaan" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/right_header.cljs:52 msgid "workspace.header.saved" msgstr "Opgeslagen" #: src/app/main/ui/workspace/header.cljs +#, unused msgid "workspace.header.saving" msgstr "Opslaan" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/right_header.cljs:42, src/app/main/ui/workspace/right_header.cljs:47 msgid "workspace.header.unsaved" msgstr "Niet-opgeslagen wijzigingen" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/right_header.cljs:239 msgid "workspace.header.viewer" msgstr "Weergavemodus (%s)" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/viewer/header.cljs:79, src/app/main/ui/workspace/right_header.cljs:103 msgid "workspace.header.zoom" msgstr "Zoomen" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/viewer/header.cljs:109 msgid "workspace.header.zoom-fill" msgstr "Vullen - Schalen om te vullen" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/viewer/header.cljs:102 msgid "workspace.header.zoom-fit" msgstr "Passend maken - Verkleinen om te passen" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/right_header.cljs:123 msgid "workspace.header.zoom-fit-all" msgstr "Passend zoomen" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/viewer/header.cljs:116 msgid "workspace.header.zoom-full-screen" msgstr "Volledig scherm" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/right_header.cljs:130 msgid "workspace.header.zoom-selected" msgstr "Naar selectie zoomen" +#: src/app/main/ui/workspace/sidebar/options/menus/grid_cell.cljs:273, src/app/main/ui/workspace/sidebar/options/menus/grid_cell.cljs:275, src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:612 msgid "workspace.layout_grid.editor.options.edit-grid" msgstr "Raster bewerken" +#: src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:1280 msgid "workspace.layout_grid.editor.options.exit" msgstr "Sluiten" +#: src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:483 msgid "workspace.layout_grid.editor.padding.expand" msgstr "4-zijdige opvulopties weergeven" +#: src/app/main/ui/workspace/viewport/grid_layout_editor.cljs:59 msgid "workspace.layout_grid.editor.title" msgstr "Raster bewerken" +#: src/app/main/ui/workspace/viewport/grid_layout_editor.cljs:65 msgid "workspace.layout_grid.editor.top-bar.done" msgstr "Klaar" +#: src/app/main/ui/workspace/viewport/grid_layout_editor.cljs:62 msgid "workspace.layout_grid.editor.top-bar.locate" msgstr "Lokaliseren" +#: src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:1306 msgid "workspace.layout_grid.editor.top-bar.locate.tooltip" msgstr "Raster-layout tonen" #: src/app/main/ui/workspace/libraries.cljs +#, unused msgid "workspace.libraries.add" msgstr "Toevoegen" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:80, src/app/main/ui/workspace/libraries.cljs:99 msgid "workspace.libraries.colors" msgstr "%s kleuren" -#: src/app/main/ui/workspace/colorpalette.cljs +#: src/app/main/ui/workspace/color_palette.cljs:126 msgid "workspace.libraries.colors.empty-palette" msgstr "Er zijn nog geen kleurstijlen in je bibliotheek" -#: src/app/main/ui/workspace/textpalette.cljs +#: src/app/main/ui/workspace/text_palette.cljs:150 msgid "workspace.libraries.colors.empty-typography-palette" msgstr "Er zijn nog geen typografiestijlen in je bibliotheek" -#: src/app/main/ui/workspace/colorpicker/libraries.cljs, -#: src/app/main/ui/workspace/colorpalette.cljs +#: src/app/main/ui/workspace/color_palette_ctx_menu.cljs:60, src/app/main/ui/workspace/colorpicker/libraries.cljs:73, src/app/main/ui/workspace/text_palette_ctx_menu.cljs:50 msgid "workspace.libraries.colors.file-library" msgstr "Bestandsbibliotheek" #: src/app/main/ui/workspace/colorpicker.cljs +#, unused msgid "workspace.libraries.colors.hsv" msgstr "HSV" -#: src/app/main/ui/workspace/colorpicker/libraries.cljs, -#: src/app/main/ui/workspace/colorpalette.cljs +#: src/app/main/ui/workspace/color_palette_ctx_menu.cljs:82, src/app/main/ui/workspace/colorpicker/libraries.cljs:72 msgid "workspace.libraries.colors.recent-colors" msgstr "Recente kleuren" #: src/app/main/ui/workspace/colorpicker.cljs +#, unused msgid "workspace.libraries.colors.rgb-complementary" msgstr "RGB Complementair" #: src/app/main/ui/workspace/colorpicker.cljs +#, unused msgid "workspace.libraries.colors.rgba" msgstr "RGBA" -#: src/app/main/ui/workspace/colorpicker.cljs +#: src/app/main/ui/workspace/colorpicker.cljs:372 msgid "workspace.libraries.colors.save-color" msgstr "Kleurstijl opslaan" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:74, src/app/main/ui/workspace/libraries.cljs:91 msgid "workspace.libraries.components" msgstr "%s componenten" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:215 msgid "workspace.libraries.file-library" msgstr "Bestandsbibliotheek" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:77, src/app/main/ui/workspace/libraries.cljs:95 msgid "workspace.libraries.graphics" msgstr "%s afbeeldingen" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:209 msgid "workspace.libraries.in-this-file" msgstr "BIBLIOTHEKEN IN DIT BESTAND" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:526, src/app/main/ui/workspace/libraries.cljs:531 msgid "workspace.libraries.libraries" msgstr "BIBLIOTHEKEN" #: src/app/main/ui/workspace/libraries.cljs +#, unused msgid "workspace.libraries.library" msgstr "BIBLIOTHEEK" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:382 msgid "workspace.libraries.library-updates" msgstr "BIBLIOTHEEK-UPDATES" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:290 msgid "workspace.libraries.loading" msgstr "Laden…" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:380 msgid "workspace.libraries.no-libraries-need-sync" msgstr "Er zijn geen gedeelde bibliotheken die moeten worden bijgewerkt" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:299 msgid "workspace.libraries.no-matches-for" msgstr "Geen resultaten gevonden voor “%s“" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:296 msgid "workspace.libraries.no-shared-libraries-available" msgstr "Er zijn geen gedeelde bibliotheken beschikbaar" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:260 msgid "workspace.libraries.search-shared-libraries" msgstr "Gedeelde bibliotheken zoeken" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:256 msgid "workspace.libraries.shared-libraries" msgstr "GEDEELDE BIBLIOTHEKEN" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:282 msgid "workspace.libraries.shared-library-btn" msgstr "Bibliotheek verbinden" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:308 msgid "workspace.libraries.text.multiple-typography" msgstr "Meervoudige typografie" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:311 msgid "workspace.libraries.text.multiple-typography-tooltip" msgstr "Alle typografie ontkoppelen" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:83, src/app/main/ui/workspace/libraries.cljs:103 msgid "workspace.libraries.typography" msgstr "%s typografie" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:249 msgid "workspace.libraries.unlink-library-btn" msgstr "Bibliotheekverbinding verbreken" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:402 msgid "workspace.libraries.update" msgstr "Bijwerken" -#: src/app/main/data/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:477 msgid "workspace.libraries.update.see-all-changes" msgstr "alle wijzigingen bekijken" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:536 msgid "workspace.libraries.updates" msgstr "UPDATES" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:737 msgid "workspace.options.add-interaction" msgstr "Klik op de knop + om interacties toe te voegen." -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:86, src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:102 msgid "workspace.options.blur-options.title" msgstr "Vervagen" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:85 msgid "workspace.options.blur-options.title.group" msgstr "Groep vervagen" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:84 msgid "workspace.options.blur-options.title.multiple" msgstr "Selectie vervagen" -#: src/app/main/ui/workspace/sidebar/options/page.cljs +#: src/app/main/ui/workspace/sidebar/options/page.cljs:32, src/app/main/ui/workspace/sidebar/options/page.cljs:39 msgid "workspace.options.canvas-background" msgstr "Canvasachtergrond" +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:548 msgid "workspace.options.clip-content" msgstr "Content bijsnijden" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:600, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:605 msgid "workspace.options.component" msgstr "Component" +#: src/app/main/ui/viewer/inspect/annotation.cljs:19, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:181 msgid "workspace.options.component.annotation" msgstr "Aantekening" +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:610 msgid "workspace.options.component.copy" msgstr "Kopiëren" +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:173 msgid "workspace.options.component.create-annotation" msgstr "Aantekening maken" +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:172 msgid "workspace.options.component.edit-annotation" msgstr "Aantekening bewerken" +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:609 msgid "workspace.options.component.main" msgstr "Hoofd" +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:427 msgid "workspace.options.component.swap" msgstr "Component uitwisselen" +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:471 msgid "workspace.options.component.swap.empty" msgstr "Er zijn nog geen assets in deze bibliotheek" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:163 msgid "workspace.options.constraints" msgstr "Beperkingen" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:150 msgid "workspace.options.constraints.bottom" msgstr "Onderkant" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:141, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:152 msgid "workspace.options.constraints.center" msgstr "Midden" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:229 msgid "workspace.options.constraints.fix-when-scrolling" msgstr "Vastzetten tijdens scrollen" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:138 msgid "workspace.options.constraints.left" msgstr "Links" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:140 msgid "workspace.options.constraints.leftright" msgstr "Links & Rechts" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:139 msgid "workspace.options.constraints.right" msgstr "Rechts" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:142, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:153 msgid "workspace.options.constraints.scale" msgstr "Schaal" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:149 msgid "workspace.options.constraints.top" msgstr "Bovenkant" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:151 msgid "workspace.options.constraints.topbottom" msgstr "Boven- en onderkant" -#: src/app/main/ui/workspace/sidebar/options.cljs +#: src/app/main/ui/workspace/sidebar/options.cljs:112 msgid "workspace.options.design" msgstr "Ontwerp" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs +#: src/app/main/ui/viewer/inspect/exports.cljs:139 msgid "workspace.options.export" msgstr "Exporteren" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs +#, unused msgid "workspace.options.export-multiple" msgstr "Selectie exporteren" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs +#: src/app/main/ui/viewer/inspect/exports.cljs:195, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:237 msgid "workspace.options.export-object" msgid_plural "workspace.options.export-object" msgstr[0] "1 Element exporteren" msgstr[1] "%s Elementen exporteren" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs +#: src/app/main/ui/viewer/inspect/exports.cljs:178, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:219 msgid "workspace.options.export.suffix" msgstr "Achtervoegsel" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs, src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/export.cljs:240 msgid "workspace.options.exporting-complete" msgstr "Export klaar" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs, src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/export.cljs:172, src/app/main/ui/export.cljs:241, src/app/main/ui/viewer/inspect/exports.cljs:194, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:236 msgid "workspace.options.exporting-object" msgstr "Exporteren…" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs, src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/export.cljs:239 msgid "workspace.options.exporting-object-error" msgstr "Export mislukt" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs, src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/export.cljs:242 msgid "workspace.options.exporting-object-slow" msgstr "Export onverwacht traag" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:49, src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:174 msgid "workspace.options.fill" msgstr "Vullen" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:178 msgid "workspace.options.flows.add-flow-start" msgstr "Stroomdiagram-startpunt toevoegen" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:174 msgid "workspace.options.flows.flow" msgstr "Stroomdiagram" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#, unused msgid "workspace.options.flows.flow-start" msgstr "Stroomdiagram-startpunt" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:161 msgid "workspace.options.flows.flow-starts" msgstr "Stroomdiagram-startpunten" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:29 msgid "workspace.options.grid.auto" msgstr "Automatisch" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:157 msgid "workspace.options.grid.column" msgstr "Kolommen" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused msgid "workspace.options.grid.grid-title" msgstr "Raster" +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:196, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:237 msgid "workspace.options.grid.params.color" msgstr "Kleur" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused msgid "workspace.options.grid.params.columns" msgstr "Kolommen" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:259 msgid "workspace.options.grid.params.gutter" msgstr "Tussenruimte" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:246 msgid "workspace.options.grid.params.height" msgstr "Hoogte" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:270 msgid "workspace.options.grid.params.margin" msgstr "Marge" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused msgid "workspace.options.grid.params.rows" msgstr "Rijen" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:216, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:290 msgid "workspace.options.grid.params.set-default" msgstr "Als standaard instellen" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused msgid "workspace.options.grid.params.size" msgstr "Grootte" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused msgid "workspace.options.grid.params.type" msgstr "Type" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:231 msgid "workspace.options.grid.params.type.bottom" msgstr "Onderkant" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:229 msgid "workspace.options.grid.params.type.center" msgstr "Midden" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:228 msgid "workspace.options.grid.params.type.left" msgstr "Links" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:232 msgid "workspace.options.grid.params.type.right" msgstr "Rechts" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:225 msgid "workspace.options.grid.params.type.stretch" msgstr "Uitrekken" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:227 msgid "workspace.options.grid.params.type.top" msgstr "Bovenkant" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:211, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:288 msgid "workspace.options.grid.params.use-default" msgstr "Standaard gebruiken" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:247 msgid "workspace.options.grid.params.width" msgstr "Breedte" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:158 msgid "workspace.options.grid.row" msgstr "Rijen" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:156 msgid "workspace.options.grid.square" msgstr "Vierkant" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:48 msgid "workspace.options.group-fill" msgstr "Groep vullen" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:42 msgid "workspace.options.group-stroke" msgstr "Groep-streek" +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:310 msgid "workspace.options.guides.title" msgstr "Hulplijnen" +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:406 msgid "workspace.options.height" msgstr "Hoogte" +#: src/app/main/ui/workspace/sidebar/options.cljs:161 msgid "workspace.options.inspect" msgstr "Inspecteren" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:468 msgid "workspace.options.interaction-action" msgstr "Actie" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:41, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:367 msgid "workspace.options.interaction-after-delay" msgstr "Na vertraging" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:614 msgid "workspace.options.interaction-animation" msgstr "Animatie" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:406 msgid "workspace.options.interaction-animation-dissolve" msgstr "Ontbinden" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:405 msgid "workspace.options.interaction-animation-none" msgstr "Geen" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:412 msgid "workspace.options.interaction-animation-push" msgstr "Duwen" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:407 msgid "workspace.options.interaction-animation-slide" msgstr "Schuiven" +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:391 msgid "workspace.options.interaction-auto" msgstr "automatisch" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:604 msgid "workspace.options.interaction-background" msgstr "Achtergrond toevoegen" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:590 msgid "workspace.options.interaction-close-outside" msgstr "Sluiten als er buiten wordt geklikt" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:372 msgid "workspace.options.interaction-close-overlay" msgstr "Overlay sluiten" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:56 msgid "workspace.options.interaction-close-overlay-dest" msgstr "Overlay sluiten: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:456 msgid "workspace.options.interaction-delay" msgstr "Vertraging" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:478 msgid "workspace.options.interaction-destination" msgstr "Bestemming" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:661 msgid "workspace.options.interaction-duration" msgstr "Duur" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:674 msgid "workspace.options.interaction-easing" msgstr "Easing" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:416 msgid "workspace.options.interaction-easing-ease" msgstr "Ease" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:417 msgid "workspace.options.interaction-easing-ease-in" msgstr "Ease in" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:419 msgid "workspace.options.interaction-easing-ease-in-out" msgstr "Ease in out" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:418 msgid "workspace.options.interaction-easing-ease-out" msgstr "Ease out" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:415 msgid "workspace.options.interaction-easing-linear" msgstr "Lineair" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#, unused msgid "workspace.options.interaction-in" msgstr "In" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:39, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:364 msgid "workspace.options.interaction-mouse-enter" msgstr "Muis komt binnen" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:40, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:365 msgid "workspace.options.interaction-mouse-leave" msgstr "Muis verlaat" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:458, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:459, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:464, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:663, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:665, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:669 msgid "workspace.options.interaction-ms" msgstr "ms" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:369 msgid "workspace.options.interaction-navigate-to" msgstr "Navigeer naar" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:50 msgid "workspace.options.interaction-navigate-to-dest" msgstr "Navigeer naar: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:51, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:53, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:55, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:380 msgid "workspace.options.interaction-none" msgstr "(niet ingesteld)" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:691 msgid "workspace.options.interaction-offset-effect" msgstr "Offset-effect" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:35, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:360 msgid "workspace.options.interaction-on-click" msgstr "Bij klikken" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:370 msgid "workspace.options.interaction-open-overlay" msgstr "Overlay openen" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:52 msgid "workspace.options.interaction-open-overlay-dest" msgstr "Overlay openen: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:59, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:374 msgid "workspace.options.interaction-open-url" msgstr "URL openen" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#, unused msgid "workspace.options.interaction-out" msgstr "Out" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:403 msgid "workspace.options.interaction-pos-bottom-center" msgstr "Midden onder" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:401 msgid "workspace.options.interaction-pos-bottom-left" msgstr "Linksonder" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:402 msgid "workspace.options.interaction-pos-bottom-right" msgstr "Rechtsonder" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:397 msgid "workspace.options.interaction-pos-center" msgstr "Gecentreerd" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:396 msgid "workspace.options.interaction-pos-manual" msgstr "Handmatig" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:400 msgid "workspace.options.interaction-pos-top-center" msgstr "Midden boven" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:398 msgid "workspace.options.interaction-pos-top-left" msgstr "Linksboven" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:399 msgid "workspace.options.interaction-pos-top-right" msgstr "Rechtsboven" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:524 msgid "workspace.options.interaction-position" msgstr "Positie" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:494 msgid "workspace.options.interaction-preserve-scroll" msgstr "Scrollpositie behouden" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:58, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:373 msgid "workspace.options.interaction-prev-screen" msgstr "Vorig scherm" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:515 msgid "workspace.options.interaction-relative-to" msgstr "Relatief tot" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:57, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:379, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:393, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:394 msgid "workspace.options.interaction-self" msgstr "zelf" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:371 msgid "workspace.options.interaction-toggle-overlay" msgstr "Overlay in/uitschakelen" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:54 msgid "workspace.options.interaction-toggle-overlay-dest" msgstr "Overlay in/uitschakelen: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:445 msgid "workspace.options.interaction-trigger" msgstr "Trigger" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:503 msgid "workspace.options.interaction-url" msgstr "URL" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:37, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:362 msgid "workspace.options.interaction-while-hovering" msgstr "Tijdens hover" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:38, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:363 msgid "workspace.options.interaction-while-pressing" msgstr "Tijdens klikken" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:724 msgid "workspace.options.interactions" msgstr "Interacties" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:137 msgid "workspace.options.layer-options.blend-mode.color" msgstr "Kleur" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:126 msgid "workspace.options.layer-options.blend-mode.color-burn" msgstr "Kleur versterken" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:129 msgid "workspace.options.layer-options.blend-mode.color-dodge" msgstr "Kleur verminderen" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:124 msgid "workspace.options.layer-options.blend-mode.darken" msgstr "Donkerder maken" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:133 msgid "workspace.options.layer-options.blend-mode.difference" msgstr "Verschil" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:134 msgid "workspace.options.layer-options.blend-mode.exclusion" msgstr "Uitsluiting" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:132 msgid "workspace.options.layer-options.blend-mode.hard-light" msgstr "Hard licht" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:135 msgid "workspace.options.layer-options.blend-mode.hue" msgstr "Tint" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:127 msgid "workspace.options.layer-options.blend-mode.lighten" msgstr "Lichter maken" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:138 msgid "workspace.options.layer-options.blend-mode.luminosity" msgstr "Helderheid" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:125 msgid "workspace.options.layer-options.blend-mode.multiply" msgstr "Vermenigvuldigen" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:123 msgid "workspace.options.layer-options.blend-mode.normal" msgstr "Normaal" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:130 msgid "workspace.options.layer-options.blend-mode.overlay" msgstr "Overlay" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:136 msgid "workspace.options.layer-options.blend-mode.saturation" msgstr "Verzadiging" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:128 msgid "workspace.options.layer-options.blend-mode.screen" msgstr "Scherm" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:131 msgid "workspace.options.layer-options.blend-mode.soft-light" msgstr "Zacht licht" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#, unused msgid "workspace.options.layer-options.title" msgstr "Laag" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#, unused msgid "workspace.options.layer-options.title.group" msgstr "Lagen groeperen" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#, unused msgid "workspace.options.layer-options.title.multiple" msgstr "Geselecteerde lagen" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout-item.advanced-ops" msgstr "Geavanceerde opties" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:564 msgid "workspace.options.layout-item.layout-item-max-h" msgstr "Max.Hoogte" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:531 msgid "workspace.options.layout-item.layout-item-max-w" msgstr "Max.Breedte" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:548 msgid "workspace.options.layout-item.layout-item-min-h" msgstr "Min.Hoogte" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:515 msgid "workspace.options.layout-item.layout-item-min-w" msgstr "Min.Breedte" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout-item.title.layout-item-max-h" msgstr "Maximum hoogte" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout-item.title.layout-item-max-w" msgstr "Maximum breedte" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout-item.title.layout-item-min-h" msgstr "Minimum hoogte" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout-item.title.layout-item-min-w" msgstr "Minimum breedte" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.bottom" msgstr "Onderkant" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.direction.column" msgstr "Kolom" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.direction.column-reverse" msgstr "Kolom omkeren" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.direction.row" msgstr "Rij" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.direction.row-reverse" msgstr "Rij omkeren" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.gap" msgstr "Tussenruimte" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.left" msgstr "Links" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout.margin" msgstr "Marge" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout.margin-all" msgstr "Alle kanten" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout.margin-simple" msgstr "Enkelvoudige marge" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.packed" msgstr "ingepakt" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.padding" msgstr "Opvulling" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.padding-all" msgstr "Alle kanten" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.padding-simple" msgstr "Enkelvoudige opvulling" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.right" msgstr "Rechts" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.space-around" msgstr "ruimte rondom" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.space-between" msgstr "ruimte tussen" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.top" msgstr "Bovenkant" -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:146 msgid "workspace.options.more-colors" msgstr "Meer kleuren" -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:123 msgid "workspace.options.more-lib-colors" msgstr "Meer bibliotheekkleuren" +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:161 msgid "workspace.options.opacity" msgstr "Dekking" -#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#, unused msgid "workspace.options.position" msgstr "Positie" -#: src/app/main/ui/workspace/sidebar/options.cljs +#: src/app/main/ui/workspace/sidebar/options.cljs:157 msgid "workspace.options.prototype" msgstr "Prototype" +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:469, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:481 msgid "workspace.options.radius" msgstr "Radius" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:513 msgid "workspace.options.radius-bottom-left" msgstr "Onder links" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:522 msgid "workspace.options.radius-bottom-right" msgstr "Onder rechts" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:495 msgid "workspace.options.radius-top-left" msgstr "Boven links" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:504 msgid "workspace.options.radius-top-right" msgstr "Boven rechts" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:532 msgid "workspace.options.radius.all-corners" msgstr "Alle hoeken" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:533 msgid "workspace.options.radius.single-corners" msgstr "Onafhankelijke hoeken" +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:183 msgid "workspace.options.recent-fonts" msgstr "Recent" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs, src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/export.cljs:284 msgid "workspace.options.retry" msgstr "Opnieuw proberen" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:451 msgid "workspace.options.rotation" msgstr "Rotatie" +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:180 msgid "workspace.options.search-font" msgstr "Lettertype zoeken" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:741 msgid "workspace.options.select-a-shape" msgstr "" "Selecteer een vorm, bord of groep om d.m.v. slepen een verbinding met een " "ander bord te maken." -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:105 msgid "workspace.options.selection-color" msgstr "Geselecteerde kleuren" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:47 msgid "workspace.options.selection-fill" msgstr "Selectie vullen" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:41 msgid "workspace.options.selection-stroke" msgstr "Selectie-streek" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:40, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:198, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:200 msgid "workspace.options.shadow-options.blur" msgstr "Vervagen" +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:238 msgid "workspace.options.shadow-options.color" msgstr "Schaduwkleur" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:144 msgid "workspace.options.shadow-options.drop-shadow" msgstr "Slagschaduw" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:145 msgid "workspace.options.shadow-options.inner-shadow" msgstr "Schaduw naar binnen" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:38, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:186 msgid "workspace.options.shadow-options.offsetx" msgstr "X" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:39, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:224 msgid "workspace.options.shadow-options.offsety" msgstr "Y" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:41, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:211, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:213 msgid "workspace.options.shadow-options.spread" msgstr "Spreiding" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:296 msgid "workspace.options.shadow-options.title" msgstr "Schaduw" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:295 msgid "workspace.options.shadow-options.title.group" msgstr "Groep voorzien van schaduw" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:294 msgid "workspace.options.shadow-options.title.multiple" msgstr "Selectie voorzien van schaduw" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:193 msgid "workspace.options.show-fill-on-export" msgstr "In exports tonen" +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:562 msgid "workspace.options.show-in-viewer" msgstr "In weergavemodus tonen" -#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:162 msgid "workspace.options.size" msgstr "Grootte" -#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:355 msgid "workspace.options.size-presets" msgstr "Groottevoorinstellingen" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:43 msgid "workspace.options.stroke" msgstr "Streek" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#, unused msgid "workspace.options.stroke-cap.circle-marker" msgstr "Cirkelmarkering" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:129 msgid "workspace.options.stroke-cap.circle-marker-short" msgstr "Cirkel" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#, unused msgid "workspace.options.stroke-cap.diamond-marker" msgstr "Ruitmarkering" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:130 msgid "workspace.options.stroke-cap.diamond-marker-short" msgstr "Ruit" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#, unused msgid "workspace.options.stroke-cap.line-arrow" msgstr "Lijn-pijl" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:126 msgid "workspace.options.stroke-cap.line-arrow-short" msgstr "Pijl" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:124 msgid "workspace.options.stroke-cap.none" msgstr "Geen" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:132 msgid "workspace.options.stroke-cap.round" msgstr "Rond" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:133 msgid "workspace.options.stroke-cap.square" msgstr "Vierkant" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#, unused msgid "workspace.options.stroke-cap.square-marker" msgstr "Vierkantmarkering" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:128 msgid "workspace.options.stroke-cap.square-marker-short" msgstr "Rechthoek" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#, unused msgid "workspace.options.stroke-cap.triangle-arrow" msgstr "Driehoek-pijl" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:127 msgid "workspace.options.stroke-cap.triangle-arrow-short" msgstr "Driehoek" +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:192 msgid "workspace.options.stroke-color" msgstr "Streekkleur" +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:165 msgid "workspace.options.stroke-width" msgstr "Streekdikte" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:87 msgid "workspace.options.stroke.center" msgstr "Gecentreerd" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:105 msgid "workspace.options.stroke.dashed" msgstr "Gestreept" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:104 msgid "workspace.options.stroke.dotted" msgstr "Gestippeld" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:88 msgid "workspace.options.stroke.inner" msgstr "Binnen" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:106 msgid "workspace.options.stroke.mixed" msgstr "Gemengd" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:89 msgid "workspace.options.stroke.outer" msgstr "Buiten" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:103 msgid "workspace.options.stroke.solid" msgstr "Solide" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:115 msgid "workspace.options.text-options.align-bottom" msgstr "Onderaan uitlijnen" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:111 msgid "workspace.options.text-options.align-middle" msgstr "Midden uitlijnen" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:107 msgid "workspace.options.text-options.align-top" msgstr "Boven uitlijnen" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:82 msgid "workspace.options.text-options.direction-ltr" msgstr "Links naar rechts" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:87 msgid "workspace.options.text-options.direction-rtl" msgstr "Rechts naar links" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:149 msgid "workspace.options.text-options.grow-auto-height" msgstr "Automatische hoogte" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:145 msgid "workspace.options.text-options.grow-auto-width" msgstr "Automatische breedte" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:141 msgid "workspace.options.text-options.grow-fixed" msgstr "Vast" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:381 msgid "workspace.options.text-options.letter-spacing" msgstr "Letterafstand" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:364 msgid "workspace.options.text-options.line-height" msgstr "Regelafstand" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused msgid "workspace.options.text-options.lowercase" msgstr "Kleine letters" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused msgid "workspace.options.text-options.none" msgstr "Geen" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:176 msgid "workspace.options.text-options.strikethrough" msgstr "Doorhalen (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:51 msgid "workspace.options.text-options.text-align-center" msgstr "Centreren (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:59 msgid "workspace.options.text-options.text-align-justify" msgstr "Uitvullen (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:47 msgid "workspace.options.text-options.text-align-left" msgstr "Links uitlijnen (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:55 msgid "workspace.options.text-options.text-align-right" msgstr "Rechts uitlijnen (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:189 msgid "workspace.options.text-options.title" msgstr "Tekst" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:188 msgid "workspace.options.text-options.title-group" msgstr "Groeptekst" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:187 msgid "workspace.options.text-options.title-selection" msgstr "Selectietekst" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused msgid "workspace.options.text-options.titlecase" msgstr "Beginhoofdletters" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:171 msgid "workspace.options.text-options.underline" msgstr "Onderstrepen (%s)" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused msgid "workspace.options.text-options.uppercase" msgstr "HOOFDLETTERS" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:745 msgid "workspace.options.use-play-button" msgstr "Gebruik de afspeelknop in de koptekst om de prototypeweergave uit te voeren." +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:395 msgid "workspace.options.width" msgstr "Breedte" +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:427 msgid "workspace.options.x" msgstr "X-as" +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:438 msgid "workspace.options.y" msgstr "Y-as" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:167 msgid "workspace.path.actions.add-node" msgstr "Knooppunt toevoegen (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:174 msgid "workspace.path.actions.delete-node" msgstr "Knooppunt verwijderen (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:152 msgid "workspace.path.actions.draw-nodes" msgstr "Knooppunten tekenen (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:189 msgid "workspace.path.actions.join-nodes" msgstr "Knooppunten verbinden (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:204 msgid "workspace.path.actions.make-corner" msgstr "Naar hoek (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:211 msgid "workspace.path.actions.make-curve" msgstr "Naar kromme (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:182 msgid "workspace.path.actions.merge-nodes" msgstr "Knooppunten samenvoegen (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:159 msgid "workspace.path.actions.move-nodes" msgstr "Knooppunten verplaatsen (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:196 msgid "workspace.path.actions.separate-nodes" msgstr "Knooppunten loskoppelen (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:218 msgid "workspace.path.actions.snap-nodes" msgstr "Uitlijnen op knooppunten (%s)" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/plugins.cljs:55 +msgid "workspace.plugins.button-open" +msgstr "Openen" + +#: src/app/main/ui/workspace/plugins.cljs:164 +msgid "workspace.plugins.empty-plugins" +msgstr "Nog geen plug-ins geïnstalleerd" + +#: src/app/main/ui/workspace/plugins.cljs:157 +msgid "workspace.plugins.error.url" +msgstr "De plug-in bestaat niet of de URL is niet correct." + +#: src/app/main/ui/workspace/plugins.cljs:153 +msgid "workspace.plugins.install" +msgstr "Installeren" + +#: src/app/main/ui/workspace/plugins.cljs:170 +msgid "workspace.plugins.installed-plugins" +msgstr "Geïnstalleerde plug-ins" + +#: src/app/main/ui/workspace/main_menu.cljs:624 +msgid "workspace.plugins.menu.plugins-manager" +msgstr "Plug-in-beheer" + +#: src/app/main/ui/workspace/main_menu.cljs:765 +msgid "workspace.plugins.menu.title" +msgstr "Plug-ins" + +#: src/app/main/ui/workspace/plugins.cljs:166 +msgid "workspace.plugins.plugin-list-link" +msgstr "Plug-in-lijst" + +#: src/app/main/ui/workspace/plugins.cljs:149 +msgid "workspace.plugins.search-placeholder" +msgstr "De URL van een plug-in invoeren" + +#, unused +msgid "workspace.plugins.success" +msgstr "Plug-in met succes geladen." + +#: src/app/main/ui/workspace/plugins.cljs:143 +msgid "workspace.plugins.title" +msgstr "Plug-ins" + +#: src/app/main/ui/workspace/context_menu.cljs:441 msgid "workspace.shape.menu.add-flex" msgstr "Flex-indeling toevoegen" +#: src/app/main/ui/workspace/context_menu.cljs:445 msgid "workspace.shape.menu.add-grid" msgstr "Rasterindeling toevoegen" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:193 msgid "workspace.shape.menu.back" msgstr "Naar achtergrond verplaatsen" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:190 msgid "workspace.shape.menu.backward" msgstr "Naar achteren verplaatsen" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:139 msgid "workspace.shape.menu.copy" msgstr "Kopiëren" +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:427 msgid "workspace.shape.menu.create-annotation" msgstr "Aantekening maken" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:275 msgid "workspace.shape.menu.create-artboard-from-selection" msgstr "Selectie naar bord" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:465 msgid "workspace.shape.menu.create-component" msgstr "Component aanmaken" +#: src/app/main/ui/workspace/context_menu.cljs:469 msgid "workspace.shape.menu.create-multiple-components" msgstr "Meerdere componenten aanmaken" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:142 msgid "workspace.shape.menu.cut" msgstr "Knippen" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:486 msgid "workspace.shape.menu.delete" msgstr "Verwijderen" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:391 msgid "workspace.shape.menu.delete-flow-start" msgstr "Stroomdiagram-start verwijderen" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:432 msgid "workspace.shape.menu.detach-instance" msgstr "Instantie losmaken" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:431 msgid "workspace.shape.menu.detach-instances-in-bulk" msgstr "Instanties losmaken" +#: src/app/main/ui/workspace/context_menu.cljs:335, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:75 msgid "workspace.shape.menu.difference" msgstr "Verschil" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:148 msgid "workspace.shape.menu.duplicate" msgstr "Dupliceren" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:321 msgid "workspace.shape.menu.edit" msgstr "Bewerken" +#: src/app/main/ui/workspace/context_menu.cljs:341 msgid "workspace.shape.menu.exclude" msgstr "Uitsluiten" +#: src/app/main/ui/workspace/context_menu.cljs:348, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:89 msgid "workspace.shape.menu.flatten" msgstr "Afvlakken" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:208 msgid "workspace.shape.menu.flip-horizontal" msgstr "Horizontaal spiegelen" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:204 msgid "workspace.shape.menu.flip-vertical" msgstr "Verticaal spiegelen" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:394 msgid "workspace.shape.menu.flow-start" msgstr "Stroomdiagram-start" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:184 msgid "workspace.shape.menu.forward" msgstr "Naar voren brengen" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:187 msgid "workspace.shape.menu.front" msgstr "Naar voorgrond brengen" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#, unused msgid "workspace.shape.menu.go-main" msgstr "Ga naar hoofdcomponent" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:261 msgid "workspace.shape.menu.group" msgstr "Groep" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:363, src/app/main/ui/workspace/sidebar/layer_item.cljs:145 msgid "workspace.shape.menu.hide" msgstr "Verbergen" +#: src/app/main/ui/workspace/context_menu.cljs:548, src/app/main/ui/workspace/main_menu.cljs:408 msgid "workspace.shape.menu.hide-ui" msgstr "Gebruikersinterface tonen/verbergen" +#: src/app/main/ui/workspace/context_menu.cljs:338 msgid "workspace.shape.menu.intersection" msgstr "Kruispunt" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:371, src/app/main/ui/workspace/sidebar/layer_item.cljs:153 msgid "workspace.shape.menu.lock" msgstr "Vergrendelen" -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:266 msgid "workspace.shape.menu.mask" msgstr "Masker" -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:145, src/app/main/ui/workspace/context_menu.cljs:545 msgid "workspace.shape.menu.paste" msgstr "Plakken" +#: src/app/main/ui/workspace/context_menu.cljs:331 msgid "workspace.shape.menu.path" msgstr "Pad" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:432 msgid "workspace.shape.menu.remove-flex" msgstr "Flex-indeling verwijderen" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:435 msgid "workspace.shape.menu.remove-grid" msgstr "Raster-layout verwijderen" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:436 msgid "workspace.shape.menu.reset-overrides" msgstr "Overschrijvingen opnieuw instellen" +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:439 msgid "workspace.shape.menu.restore-main" msgstr "Hoofdcomponent herstellen" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:174 msgid "workspace.shape.menu.select-layer" msgstr "Laag selecteren" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:360, src/app/main/ui/workspace/sidebar/layer_item.cljs:144 msgid "workspace.shape.menu.show" msgstr "Tonen" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:424 msgid "workspace.shape.menu.show-in-assets" msgstr "In paneel Assets tonen" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:442, src/app/main/ui/workspace/sidebar/assets/components.cljs:586 msgid "workspace.shape.menu.show-main" msgstr "Hoofdcomponent tonen" +#: src/app/main/ui/workspace/context_menu.cljs:221 msgid "workspace.shape.menu.thumbnail-remove" msgstr "Miniatuur verwijderen" +#: src/app/main/ui/workspace/context_menu.cljs:223 msgid "workspace.shape.menu.thumbnail-set" msgstr "Instellen als miniatuur" +#: src/app/main/ui/workspace/context_menu.cljs:326 msgid "workspace.shape.menu.transform-to-path" msgstr "Transformeren naar pad" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:257 msgid "workspace.shape.menu.ungroup" msgstr "Groep opheffen" +#: src/app/main/ui/workspace/context_menu.cljs:332, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:70 msgid "workspace.shape.menu.union" msgstr "Vereniging" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:368, src/app/main/ui/workspace/sidebar/layer_item.cljs:152 msgid "workspace.shape.menu.unlock" msgstr "Ontgrendelen" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:271 msgid "workspace.shape.menu.unmask" msgstr "Masker wegnemen" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs +#, unused msgid "workspace.shape.menu.update-components-in-bulk" msgstr "Hoofdcomponenten bijwerken" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:445 msgid "workspace.shape.menu.update-main" msgstr "Hoofdcomponent bijwerken" +#: src/app/main/ui/components/tab_container.cljs:50 msgid "workspace.sidebar.collapse" msgstr "Zijbalk inklappen" +#: src/app/main/ui/workspace/sidebar/collapsable_button.cljs:26 msgid "workspace.sidebar.expand" msgstr "Zijbalk uitklappen" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/right_header.cljs:231, src/app/main/ui/workspace/right_header.cljs:232 msgid "workspace.sidebar.history" msgstr "Geschiedenis (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/sidebar/layers.cljs:522, src/app/main/ui/workspace/sidebar.cljs:100 msgid "workspace.sidebar.layers" msgstr "Lagen" +#: src/app/main/ui/workspace/sidebar/layers.cljs:308, src/app/main/ui/workspace/sidebar/layers.cljs:380 msgid "workspace.sidebar.layers.components" msgstr "Componenten" +#: src/app/main/ui/workspace/sidebar/layers.cljs:305, src/app/main/ui/workspace/sidebar/layers.cljs:338 msgid "workspace.sidebar.layers.frames" msgstr "Borden" +#: src/app/main/ui/workspace/sidebar/layers.cljs:306, src/app/main/ui/workspace/sidebar/layers.cljs:352 msgid "workspace.sidebar.layers.groups" msgstr "Groepen" +#: src/app/main/ui/workspace/sidebar/layers.cljs:310, src/app/main/ui/workspace/sidebar/layers.cljs:408 msgid "workspace.sidebar.layers.images" msgstr "Afbeeldingen" +#: src/app/main/ui/workspace/sidebar/layers.cljs:307, src/app/main/ui/workspace/sidebar/layers.cljs:366 msgid "workspace.sidebar.layers.masks" msgstr "Maskers" +#: src/app/main/ui/workspace/sidebar/layers.cljs:289 msgid "workspace.sidebar.layers.search" msgstr "Lagen doorzoeken" +#: src/app/main/ui/workspace/sidebar/layers.cljs:311, src/app/main/ui/workspace/sidebar/layers.cljs:422 msgid "workspace.sidebar.layers.shapes" msgstr "Vormen" +#: src/app/main/ui/workspace/sidebar/layers.cljs:309, src/app/main/ui/workspace/sidebar/layers.cljs:394 msgid "workspace.sidebar.layers.texts" msgstr "Teksten" -#: src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs, -#: src/app/main/ui/inspect/attributes/svg.cljs +#: src/app/main/ui/viewer/inspect/attributes/svg.cljs:56, src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs:91 msgid "workspace.sidebar.options.svg-attrs.title" msgstr "Geïmporteerde SVG-kenmerken" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs +#: src/app/main/ui/workspace/sidebar/sitemap.cljs:217 msgid "workspace.sidebar.sitemap" msgstr "Pagina's" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/left_header.cljs:91 msgid "workspace.sitemap" msgstr "Sitemap" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/sidebar.cljs:120 msgid "workspace.toolbar.assets" msgstr "Assets" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/palette.cljs:165, src/app/main/ui/workspace/palette.cljs:166 msgid "workspace.toolbar.color-palette" msgstr "Kleurenpalet (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/right_header.cljs:220, src/app/main/ui/workspace/right_header.cljs:221 msgid "workspace.toolbar.comments" msgstr "Commentaar (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:180, src/app/main/ui/workspace/top_toolbar.cljs:181 msgid "workspace.toolbar.curve" msgstr "Kromme (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:160, src/app/main/ui/workspace/top_toolbar.cljs:161 msgid "workspace.toolbar.ellipse" msgstr "Ellips (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:142, src/app/main/ui/workspace/top_toolbar.cljs:143 msgid "workspace.toolbar.frame" msgstr "Bord (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:59, src/app/main/ui/workspace/top_toolbar.cljs:60 msgid "workspace.toolbar.image" msgstr "Afbeelding (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:132, src/app/main/ui/workspace/top_toolbar.cljs:133 msgid "workspace.toolbar.move" msgstr "Verplaatsen (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:189, src/app/main/ui/workspace/top_toolbar.cljs:190 msgid "workspace.toolbar.path" msgstr "Pad (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:151, src/app/main/ui/workspace/top_toolbar.cljs:152 msgid "workspace.toolbar.rect" msgstr "Rechthoek (%s)" #: src/app/main/ui/workspace/left_toolbar.cljs +#, unused msgid "workspace.toolbar.shortcuts" msgstr "Sneltoetsen (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:169, src/app/main/ui/workspace/top_toolbar.cljs:170 msgid "workspace.toolbar.text" msgstr "Tekst (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/palette.cljs:173, src/app/main/ui/workspace/palette.cljs:174 msgid "workspace.toolbar.text-palette" msgstr "Typografie (%s)" +#: src/app/main/ui/workspace/viewport/top_bar.cljs:38 msgid "workspace.top-bar.read-only.done" msgstr "Klaar" +#: src/app/main/ui/workspace/viewport/top_bar.cljs:35 #, markdown msgid "workspace.top-bar.view-only" msgstr "**Code inspecteren** (alleen weergave)" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:342 msgid "workspace.undo.empty" msgstr "Er zijn tot nu toe geen wijzigingen in de geschiedenis" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:147 msgid "workspace.undo.entry.delete" msgstr "%s verwijderd" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:146 msgid "workspace.undo.entry.modify" msgstr "%s gewijzigd" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:148 msgid "workspace.undo.entry.move" msgstr "Verplaatste objecten" +#: src/app/main/ui/workspace/sidebar/history.cljs:111 msgid "workspace.undo.entry.multiple.circle" msgstr "cirkels" +#: src/app/main/ui/workspace/sidebar/history.cljs:112 msgid "workspace.undo.entry.multiple.color" msgstr "kleur assets" +#: src/app/main/ui/workspace/sidebar/history.cljs:113 msgid "workspace.undo.entry.multiple.component" msgstr "componenten" +#: src/app/main/ui/workspace/sidebar/history.cljs:114 msgid "workspace.undo.entry.multiple.curve" msgstr "krommen" +#: src/app/main/ui/workspace/sidebar/history.cljs:115 msgid "workspace.undo.entry.multiple.frame" msgstr "bord" +#: src/app/main/ui/workspace/sidebar/history.cljs:116 msgid "workspace.undo.entry.multiple.group" msgstr "groepen" +#: src/app/main/ui/workspace/sidebar/history.cljs:117 msgid "workspace.undo.entry.multiple.media" msgstr "grafische assets" +#: src/app/main/ui/workspace/sidebar/history.cljs:118 msgid "workspace.undo.entry.multiple.multiple" msgstr "objecten" +#: src/app/main/ui/workspace/sidebar/history.cljs:119 msgid "workspace.undo.entry.multiple.page" msgstr "pagina's" +#: src/app/main/ui/workspace/sidebar/history.cljs:120 msgid "workspace.undo.entry.multiple.path" msgstr "paden" +#: src/app/main/ui/workspace/sidebar/history.cljs:121 msgid "workspace.undo.entry.multiple.rect" msgstr "rechthoeken" +#: src/app/main/ui/workspace/sidebar/history.cljs:122 msgid "workspace.undo.entry.multiple.shape" msgstr "vormen" +#: src/app/main/ui/workspace/sidebar/history.cljs:123 msgid "workspace.undo.entry.multiple.text" msgstr "teksten" +#: src/app/main/ui/workspace/sidebar/history.cljs:124 msgid "workspace.undo.entry.multiple.typography" msgstr "typografie-assets" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:145 msgid "workspace.undo.entry.new" msgstr "Nieuw: %s" +#: src/app/main/ui/workspace/sidebar/history.cljs:125 msgid "workspace.undo.entry.single.circle" msgstr "cirkel" +#: src/app/main/ui/workspace/sidebar/history.cljs:126 msgid "workspace.undo.entry.single.color" msgstr "kleur asset" +#: src/app/main/ui/workspace/sidebar/history.cljs:127 msgid "workspace.undo.entry.single.component" msgstr "component" +#: src/app/main/ui/workspace/sidebar/history.cljs:128 msgid "workspace.undo.entry.single.curve" msgstr "kromme" +#: src/app/main/ui/workspace/sidebar/history.cljs:129 msgid "workspace.undo.entry.single.frame" msgstr "bord" +#: src/app/main/ui/workspace/sidebar/history.cljs:130 msgid "workspace.undo.entry.single.group" msgstr "groep" +#: src/app/main/ui/workspace/sidebar/history.cljs:131 msgid "workspace.undo.entry.single.image" msgstr "afbeelding" +#: src/app/main/ui/workspace/sidebar/history.cljs:132 msgid "workspace.undo.entry.single.media" msgstr "grafisch asset" +#: src/app/main/ui/workspace/sidebar/history.cljs:133 msgid "workspace.undo.entry.single.multiple" msgstr "object" +#: src/app/main/ui/workspace/sidebar/history.cljs:134 msgid "workspace.undo.entry.single.page" msgstr "pagina" +#: src/app/main/ui/workspace/sidebar/history.cljs:135 msgid "workspace.undo.entry.single.path" msgstr "pad" +#: src/app/main/ui/workspace/sidebar/history.cljs:136 msgid "workspace.undo.entry.single.rect" msgstr "rechthoek" +#: src/app/main/ui/workspace/sidebar/history.cljs:137 msgid "workspace.undo.entry.single.shape" msgstr "vorm" +#: src/app/main/ui/workspace/sidebar/history.cljs:138 msgid "workspace.undo.entry.single.text" msgstr "tekst" +#: src/app/main/ui/workspace/sidebar/history.cljs:139 msgid "workspace.undo.entry.single.typography" msgstr "typografie asset" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:149 msgid "workspace.undo.entry.unknown" msgstr "Voortgang van %s" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:335 msgid "workspace.undo.title" msgstr "Geschiedenis" -#: src/app/main/data/workspace/libraries.cljs +#: src/app/main/data/workspace/libraries.cljs:1094 msgid "workspace.updates.dismiss" msgstr "Afwijzen" -#: src/app/main/data/workspace/libraries.cljs +#: src/app/main/data/workspace/libraries.cljs:1092 msgid "workspace.updates.more-info" msgstr "Meer info" -#: src/app/main/data/workspace/libraries.cljs +#: src/app/main/data/workspace/libraries.cljs:1090 msgid "workspace.updates.there-are-updates" msgstr "Er zijn updates in gedeelde bibliotheken" -#: src/app/main/data/workspace/libraries.cljs +#: src/app/main/data/workspace/libraries.cljs:1097 msgid "workspace.updates.update" msgstr "Bijwerken" +#, unused msgid "workspace.viewport.click-to-close-path" msgstr "Klik om het pad te sluiten" - -msgid "workspace.plugins.error.url" -msgstr "De plug-in bestaat niet of de URL is niet correct." - -msgid "workspace.plugins.success" -msgstr "Plug-in met succes geladen." - -msgid "workspace.plugins.title" -msgstr "Plug-ins" - -msgid "workspace.plugins.search-placeholder" -msgstr "De URL van een plug-in invoeren" - -msgid "workspace.plugins.installed-plugins" -msgstr "Geïnstalleerde plug-ins" - -msgid "workspace.plugins.install" -msgstr "Installeren" - -msgid "workspace.plugins.empty-plugins" -msgstr "Nog geen plug-ins geïnstalleerd" - -msgid "workspace.plugins.plugin-list-link" -msgstr "Plug-in-lijst" - -msgid "workspace.plugins.button-open" -msgstr "Openen" - -msgid "workspace.plugins.menu.plugins-manager" -msgstr "Plug-in-beheer" - -msgid "workspace.plugins.menu.title" -msgstr "Plug-ins" diff --git a/frontend/translations/pl.po b/frontend/translations/pl.po index 505571f231..d0961536fa 100644 --- a/frontend/translations/pl.po +++ b/frontend/translations/pl.po @@ -2,291 +2,320 @@ msgid "" msgstr "" "PO-Revision-Date: 2024-06-17 08:07+0000\n" "Last-Translator: Anonymous \n" -"Language-Team: Polish \n" +"Language-Team: Polish " +"\n" "Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " -"|| n%100>=20) ? 1 : 2);\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && " +"(n%100<10 || n%100>=20) ? 1 : 2);\n" "X-Generator: Weblate 5.6-dev\n" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:151, src/app/main/ui/viewer/login.cljs:104 msgid "auth.already-have-account" msgstr "Posiadasz już konto?" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:299 msgid "auth.check-your-email" msgstr "" "Sprawdź swój email i kliknij w link, aby zweryfikować i zacząć korzystać z " "Penpot." -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:78 msgid "auth.confirm-password" msgstr "Potwierdź hasło" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/register.cljs:163 msgid "auth.create-demo-account" msgstr "Utwórz konto demo" #: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#, unused msgid "auth.create-demo-profile" msgstr "Chcesz tylko spróbować?" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/login.cljs:43 msgid "auth.demo-warning" msgstr "" "To jest usługa DEMO, NIE UŻYWAJ jej do prawdziwej pracy, projekty będą " "okresowo usuwane." -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:189, src/app/main/ui/viewer/login.cljs:90 msgid "auth.forgot-password" msgstr "Zapomniałeś hasła?" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:254 msgid "auth.fullname" msgstr "Imię i nazwisko" -#: src/app/main/ui/auth/register.cljs -#, fuzzy +#: src/app/main/ui/auth/register.cljs:155, src/app/main/ui/viewer/login.cljs:107 msgid "auth.login-here" msgstr "Zaloguj się tutaj" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:195 msgid "auth.login-submit" msgstr "Zaloguj się" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:222 msgid "auth.login-with-github-submit" msgstr "GitHub" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:228 msgid "auth.login-with-gitlab-submit" msgstr "Gitlab" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:216 msgid "auth.login-with-google-submit" msgstr "Google" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:201 msgid "auth.login-with-ldap-submit" msgstr "LDAP" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:234, src/app/main/ui/auth/login.cljs:255 msgid "auth.login-with-oidc-submit" msgstr "OpenID" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:71 msgid "auth.new-password" msgstr "Wpisz nowe hasło" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:42 msgid "auth.notifications.invalid-token-error" msgstr "Token odzyskiwania jest nieprawidłowy." -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:46 msgid "auth.notifications.password-changed-successfully" msgstr "Hasło zmienione pomyślnie" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:57 msgid "auth.notifications.profile-not-verified" msgstr "Profil nie został zweryfikowany, zweryfikuj profil przed kontynuacją." -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:40 msgid "auth.notifications.recovery-token-sent" msgstr "Link do odzyskiwania hasła został wysłany na Twój email." -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:47 msgid "auth.notifications.team-invitation-accepted" msgstr "Pomyślnie dołączyłeś do zespołu" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:179, src/app/main/ui/auth/register.cljs:115 msgid "auth.password" msgstr "Hasło" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:114 msgid "auth.password-length-hint" msgstr "Conajmniej 8 znaków" +#: src/app/main/ui/auth.cljs:41 msgid "auth.privacy-policy" msgstr "Polityka prywatności" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:88 msgid "auth.recovery-request-submit" msgstr "Odzyskaj hasło" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:101 msgid "auth.recovery-request-subtitle" msgstr "Wyślemy Ci email z instrukcją" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:100 msgid "auth.recovery-request-title" msgstr "Zapomniałeś hasła?" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:82 msgid "auth.recovery-submit" msgstr "Zmień hasło" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:298, src/app/main/ui/viewer/login.cljs:93 msgid "auth.register" msgstr "Nie masz jeszcze konta?" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:302, src/app/main/ui/auth/register.cljs:121, src/app/main/ui/auth/register.cljs:263, src/app/main/ui/viewer/login.cljs:97 msgid "auth.register-submit" msgstr "Utwórz konto" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:140 msgid "auth.register-title" msgstr "Utwórz konto" #: src/app/main/ui/auth.cljs +#, unused msgid "auth.sidebar-tagline" msgstr "Rozwiązanie typu Open Source do projektowania i prototypowania." +#: src/app/main/ui/auth.cljs:33, src/app/main/ui/dashboard/sidebar.cljs:1022, src/app/main/ui/workspace/main_menu.cljs:150 msgid "auth.terms-of-service" msgstr "Warunki świadczenia usług" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:297 msgid "auth.verification-email-sent" msgstr "Wysłaliśmy email weryfikacyjny na adres" +#: src/app/main/ui/workspace/libraries.cljs:228 msgid "common.publish" msgstr "Opublikuj" +#: src/app/main/ui/viewer/share_link.cljs:304, src/app/main/ui/viewer/share_link.cljs:314 msgid "common.share-link.all-users" msgstr "Wszyscy użytkownicy Penpot" +#: src/app/main/ui/viewer/share_link.cljs:198 msgid "common.share-link.confirm-deletion-link-description" msgstr "" "Czy na pewno chcesz usunąć ten link? Jeśli to zrobisz, nie będzie już " "dostępny dla nikogo" +#: src/app/main/ui/viewer/share_link.cljs:259, src/app/main/ui/viewer/share_link.cljs:289 msgid "common.share-link.current-tag" msgstr "(aktualne)" +#: src/app/main/ui/viewer/share_link.cljs:207, src/app/main/ui/viewer/share_link.cljs:214 msgid "common.share-link.destroy-link" msgstr "Usuń link" +#: src/app/main/ui/viewer/share_link.cljs:221 msgid "common.share-link.get-link" msgstr "Uzyskaj link" +#: src/app/main/ui/viewer/share_link.cljs:139 msgid "common.share-link.link-copied-success" msgstr "Link skopiowano pomyślnie" +#: src/app/main/ui/viewer/share_link.cljs:231 msgid "common.share-link.manage-ops" msgstr "Zarządzaj uprawnieniami" +#: src/app/main/ui/viewer/share_link.cljs:277 msgid "common.share-link.page-shared" msgid_plural "common.share-link.page-shared" msgstr[0] "1 udostępniona strona" msgstr[1] "%s udostępnione strony" msgstr[2] "%s udostępnionych stron" +#: src/app/main/ui/viewer/share_link.cljs:298 msgid "common.share-link.permissions-can-comment" msgstr "Może komentować" +#: src/app/main/ui/viewer/share_link.cljs:308 msgid "common.share-link.permissions-can-inspect" msgstr "Może sprawdzać kod" +#: src/app/main/ui/viewer/share_link.cljs:193 msgid "common.share-link.permissions-hint" msgstr "Każdy, kto ma link, będzie miał dostęp" +#: src/app/main/ui/viewer/share_link.cljs:241 msgid "common.share-link.permissions-pages" msgstr "Udostępnione strony" +#: src/app/main/ui/viewer/share_link.cljs:183 msgid "common.share-link.placeholder" msgstr "Tutaj pojawi się link do udostępniania" +#: src/app/main/ui/viewer/share_link.cljs:303, src/app/main/ui/viewer/share_link.cljs:313 msgid "common.share-link.team-members" msgstr "Tylko członkowie zespołu" +#: src/app/main/ui/viewer/share_link.cljs:171 msgid "common.share-link.title" msgstr "Udostępnij prototypy" +#: src/app/main/ui/viewer/share_link.cljs:269 msgid "common.share-link.view-all" msgstr "Wybierz wszystko" +#: src/app/main/ui/workspace/libraries.cljs:224 msgid "common.unpublish" msgstr "Cofnij publikację" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:85 msgid "dasboard.team-hero.management" msgstr "Zarządzanie zespołem" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:84 msgid "dasboard.team-hero.text" msgstr "" "Penpot jest przeznaczony dla zespołów. Zaproś członków do wspólnej pracy " "nad projektami i plikami" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:82 msgid "dasboard.team-hero.title" msgstr "Połącz siły!" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.tutorial-hero.info" msgstr "Naucz się podstaw obsługi Penpot, bawiąc się tym praktycznym tutorialem." #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.tutorial-hero.start" msgstr "Zacznij tutorial" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.tutorial-hero.title" msgstr "Praktyczny Tutorial" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.walkthrough-hero.info" msgstr "Wybierz się na spacer po Penpot i poznaj jego główne funkcje." #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.walkthrough-hero.start" msgstr "Rozpocznij wycieczkę" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.walkthrough-hero.title" msgstr "Przewodnik po interfejsie" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:291, src/app/main/ui/workspace/main_menu.cljs:572 msgid "dashboard.add-shared" msgstr "Dodaj jako Udostępnioną Bibliotekę" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:75 msgid "dashboard.change-email" msgstr "Zmień email" -#: src/app/main/data/dashboard.cljs, src/app/main/data/dashboard.cljs +#: src/app/main/data/dashboard.cljs:762, src/app/main/data/dashboard.cljs:983 msgid "dashboard.copy-suffix" msgstr "(skopiuj)" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:338 msgid "dashboard.create-new-team" msgstr "Utwórz nowy zespół" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/components/context_menu_a11y.cljs:256, src/app/main/ui/dashboard/sidebar.cljs:646 msgid "dashboard.default-team-name" msgstr "Twój Penpot" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:571 msgid "dashboard.delete-team" msgstr "Usuń zespół" +#: src/app/main/ui/dashboard/file_menu.cljs:296, src/app/main/ui/workspace/main_menu.cljs:589 msgid "dashboard.download-binary-file" msgstr "Pobierz plik Penpot (.penpot)" +#: src/app/main/ui/dashboard/file_menu.cljs:300, src/app/main/ui/workspace/main_menu.cljs:597 msgid "dashboard.download-standard-file" msgstr "Pobierz plik standardowy (.svg + .json)" -#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:276, src/app/main/ui/dashboard/project_menu.cljs:90 msgid "dashboard.duplicate" msgstr "Duplikuj" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:240 msgid "dashboard.duplicate-multi" msgstr "Zduplikuj %s pliki" -#: src/app/main/ui/dashboard/grid.cljs +#: src/app/main/ui/dashboard/placeholder.cljs:32 #, markdown msgid "dashboard.empty-placeholder-drafts" msgstr "" @@ -294,100 +323,116 @@ msgstr "" "lub dodać z naszych [Bibliotek i " "szablonów](https://penpot.app/libraries-templates)." +#: src/app/main/ui/dashboard/file_menu.cljs:249 msgid "dashboard.export-binary-multi" msgstr "Pobierz %s plików Penpot (.penpot)" +#: src/app/main/ui/workspace/main_menu.cljs:605 msgid "dashboard.export-frames" msgstr "Eksportuj obszary kompozycji jako PDF" -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:201 msgid "dashboard.export-frames.title" msgstr "Eksportuj jako PDF" +#, unused msgid "dashboard.export-multi" msgstr "Eksportuj %s pliki Penpot" -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:109 msgid "dashboard.export-multiple.selected" msgstr "%s z %s elementów wybranych" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:578 msgid "dashboard.export-shapes" msgstr "Eksportuj" -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:180 msgid "dashboard.export-shapes.how-to" msgstr "" "Możesz dodać ustawienia eksportu do elementów z właściwości projektu (na " "dole prawego paska bocznego)." -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:184 msgid "dashboard.export-shapes.how-to-link" msgstr "Informacje jak ustawić eksport w Penpot." -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:179 msgid "dashboard.export-shapes.no-elements" msgstr "Nie ma elementów z ustawieniami eksportu." -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:190 msgid "dashboard.export-shapes.title" msgstr "Eksportuj wybrane" +#: src/app/main/ui/dashboard/file_menu.cljs:252 msgid "dashboard.export-standard-multi" msgstr "Pobierz %s plików standardowych (.svg + .json)" +#: src/app/main/ui/export.cljs:427 msgid "dashboard.export.detail" msgstr "* Może zawierać komponenty, grafikę, kolory i/lub typografię." +#: src/app/main/ui/export.cljs:426 msgid "dashboard.export.explain" msgstr "" "Co najmniej jeden plik, który chcesz wyeksportować, korzysta z bibliotek " "udostępnionych. Co chcesz zrobić z ich zasobami*?" +#: src/app/main/ui/export.cljs:435 msgid "dashboard.export.options.all.message" msgstr "" "pliki z bibliotekami współdzielonymi zostaną uwzględnione w eksporcie, z " "zachowaniem ich powiązania." +#: src/app/main/ui/export.cljs:436 msgid "dashboard.export.options.all.title" msgstr "Eksportuj biblioteki udostępnione" +#: src/app/main/ui/export.cljs:437 msgid "dashboard.export.options.detach.message" msgstr "" "Biblioteki udostępnione nie zostaną uwzględnione w eksporcie i żadne zasoby " "nie zostaną dodane do biblioteki. " +#: src/app/main/ui/export.cljs:438 msgid "dashboard.export.options.detach.title" msgstr "Traktuj zasoby biblioteki współdzielonej jako podstawowe obiekty" +#: src/app/main/ui/export.cljs:439 msgid "dashboard.export.options.merge.message" msgstr "" "Twój plik zostanie wyeksportowany ze wszystkimi zasobami zewnętrznymi " "połączonymi z biblioteką plików." +#: src/app/main/ui/export.cljs:440 msgid "dashboard.export.options.merge.title" msgstr "Uwzględnij zasoby bibliotek współdzielonych w bibliotekach plików" +#: src/app/main/ui/export.cljs:418 msgid "dashboard.export.title" msgstr "Eksportuj pliki" +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:309 msgid "dashboard.fonts.deleted-placeholder" msgstr "Font usunięty" -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:206 msgid "dashboard.fonts.dismiss-all" msgstr "Odrzuć wszystko" +#: src/app/main/ui/dashboard/fonts.cljs:436 msgid "dashboard.fonts.empty-placeholder" msgstr "Niestandardowe fonty, które prześlesz, pojawią się tutaj." -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:194 msgid "dashboard.fonts.fonts-added" msgid_plural "dashboard.fonts.fonts-added" msgstr[0] "1 font dodany" msgstr[1] "%s fonty dodane" msgstr[2] "%s fontów dodanych" +#: src/app/main/ui/dashboard/fonts.cljs:170 #, markdown msgid "dashboard.fonts.hero-text1" msgstr "" @@ -397,6 +442,7 @@ msgstr "" "Możesz przesyłać fonty w następujących formatach: **TTF, OTF i WOFF** " "(potrzebny będzie tylko jeden)." +#: src/app/main/ui/dashboard/fonts.cljs:182 #, markdown msgid "dashboard.fonts.hero-text2" msgstr "" @@ -406,1468 +452,1597 @@ msgstr "" "(https://penpot.app/terms.html). Możesz też przeczytać o [licencjonowaniu " "fontów](https://www.typography.com/faq)." -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:202 msgid "dashboard.fonts.upload-all" msgstr "Prześlij wszystko" +#: src/app/main/ui/dashboard/import.cljs:472, src/app/main/ui/dashboard/project_menu.cljs:108 msgid "dashboard.import" msgstr "Importuj pliki Penpot" +#: src/app/main/ui/dashboard/import.cljs:304, src/app/worker/import.cljs:753, src/app/worker/import.cljs:755 msgid "dashboard.import.analyze-error" msgstr "Kurza stopa! Nie udało się zaimportować tego pliku" +#: src/app/main/ui/dashboard/import.cljs:308 msgid "dashboard.import.import-error" msgstr "Podczas importowania pliku wystąpił problem. Plik nie został zaimportowany." +#: src/app/main/ui/dashboard/import.cljs:493 msgid "dashboard.import.import-message" msgstr "%s plików zostało pomyślnie zaimportowanych." +#: src/app/main/ui/dashboard/import.cljs:481, src/app/main/ui/dashboard/import.cljs:488 msgid "dashboard.import.import-warning" msgstr "Niektóre pliki zawierały nieprawidłowe obiekty, które zostały usunięte." +#: src/app/main/ui/dashboard/import.cljs:144 msgid "dashboard.import.progress.process-colors" msgstr "Przetwarzanie kolorów" +#: src/app/main/ui/dashboard/import.cljs:153 msgid "dashboard.import.progress.process-components" msgstr "Przetwarzanie komponentów" +#: src/app/main/ui/dashboard/import.cljs:150 msgid "dashboard.import.progress.process-media" msgstr "Przetwarzanie mediów" +#: src/app/main/ui/dashboard/import.cljs:141 msgid "dashboard.import.progress.process-page" msgstr "Przetwarzanie strony: %s" +#: src/app/main/ui/dashboard/import.cljs:147 msgid "dashboard.import.progress.process-typographies" msgstr "Przetwarzanie typografii" +#: src/app/main/ui/dashboard/import.cljs:135 msgid "dashboard.import.progress.upload-data" msgstr "Przesyłanie danych na serwer (%s/%s)" +#: src/app/main/ui/dashboard/import.cljs:138 msgid "dashboard.import.progress.upload-media" msgstr "Przesyłanie pliku: %s" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:109 msgid "dashboard.invite-profile" msgstr "Zaproś ludzi" -#: src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:547, src/app/main/ui/dashboard/sidebar.cljs:556, src/app/main/ui/dashboard/sidebar.cljs:563, src/app/main/ui/dashboard/team.cljs:312 msgid "dashboard.leave-team" msgstr "Opuść zespół" +#: src/app/main/ui/dashboard/templates.cljs:88, src/app/main/ui/dashboard/templates.cljs:163 msgid "dashboard.libraries-and-templates" msgstr "Biblioteki i szablony" +#: src/app/main/ui/dashboard/templates.cljs:164 msgid "dashboard.libraries-and-templates.explore" msgstr "Poznaj więcej z nich i dowiedz się, jak pomóc" +#: src/app/main/ui/dashboard/import.cljs:365 msgid "dashboard.libraries-and-templates.import-error" msgstr "Wystąpił problem z importem szablonu. Szablon nie został zaimportowany." -#: src/app/main/ui/dashboard/libraries.cljs +#: src/app/main/ui/dashboard/libraries.cljs:53 msgid "dashboard.libraries-title" msgstr "Biblioteki współdzielone" -#: src/app/main/ui/dashboard/grid.cljs +#: src/app/main/ui/dashboard/placeholder.cljs:45 msgid "dashboard.loading-files" msgstr "wczytywanie Twoich plików…" +#: src/app/main/ui/dashboard/fonts.cljs:431 msgid "dashboard.loading-fonts" msgstr "wczytywanie Twoich fontów…" -#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:281, src/app/main/ui/dashboard/project_menu.cljs:100 msgid "dashboard.move-to" msgstr "Przenieś do" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:245 msgid "dashboard.move-to-multi" msgstr "Przenieś %s pliki do" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:226 msgid "dashboard.move-to-other-team" msgstr "Przenieś do innego zespołu" -#: src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/files.cljs +#: src/app/main/ui/dashboard/files.cljs:105, src/app/main/ui/dashboard/projects.cljs:252, src/app/main/ui/dashboard/projects.cljs:253 msgid "dashboard.new-file" msgstr "+ Nowy plik" -#: src/app/main/data/dashboard.cljs +#: src/app/main/data/dashboard.cljs:958, src/app/main/data/dashboard.cljs:1181 msgid "dashboard.new-file-prefix" msgstr "Nowy plik" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:55 msgid "dashboard.new-project" msgstr "+ Nowy projekt" -#: src/app/main/data/dashboard.cljs +#: src/app/main/data/dashboard.cljs:726, src/app/main/data/dashboard.cljs:1184 msgid "dashboard.new-project-prefix" msgstr "Nowy projekt" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:60 msgid "dashboard.no-matches-for" msgstr "Nie znaleziono dopasowań dla “%s“" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:827 msgid "dashboard.no-projects-placeholder" msgstr "Tutaj pojawią się przypięte projekty" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:33 msgid "dashboard.notifications.email-changed-successfully" msgstr "Twój adres email został pomyślnie zaktualizowany" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:27 msgid "dashboard.notifications.email-verified-successfully" msgstr "Twój adres email został pomyślnie zweryfikowany" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:37 msgid "dashboard.notifications.password-saved" msgstr "Hasło zostało pomyślnie zapisane!" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1081 msgid "dashboard.num-of-members" msgstr "%s członków" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:267 msgid "dashboard.open-in-new-tab" msgstr "Otwórz plik w nowej zakładce" +#: src/app/main/ui/dashboard/files.cljs:117, src/app/main/ui/dashboard/projects.cljs:260, src/app/main/ui/dashboard/projects.cljs:261 msgid "dashboard.options" msgstr "Opcje" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:106, src/app/main/ui/settings/password.cljs:119 msgid "dashboard.password-change" msgstr "Zmień hasło" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/pin_button.cljs:24, src/app/main/ui/dashboard/project_menu.cljs:95 msgid "dashboard.pin-unpin" msgstr "Przypnij/Odepnij" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:51 msgid "dashboard.projects-title" msgstr "Projekty" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:86 msgid "dashboard.remove-account" msgstr "Czy chesz usunąć swoje konto?" #: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "dashboard.remove-shared" msgstr "Usuń jako Bibliotekę Udostępnioną" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:78 msgid "dashboard.save-settings" msgstr "Zapisz ustawienia" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:246, src/app/main/ui/dashboard/sidebar.cljs:247 msgid "dashboard.search-placeholder" msgstr "Szukaj…" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:55 msgid "dashboard.searching-for" msgstr "Wyszukiwanie “%s“…" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:56 msgid "dashboard.select-ui-language" msgstr "Wybierz język interfejsu" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:63 msgid "dashboard.select-ui-theme" msgstr "Wybierz temat" -#: src/app/main/ui/dashboard/grid.cljs +#: src/app/main/ui/dashboard/projects.cljs:282 msgid "dashboard.show-all-files" msgstr "Pokaż wszystkie pliki" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:59 msgid "dashboard.success-delete-project" msgstr "Twój projekt został pomyślnie usunięty" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:33 msgid "dashboard.success-duplicate-project" msgstr "Twój projekt został pomyślnie zduplikowany" -#: src/app/main/ui/dashboard/grid.cljs, src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:130, src/app/main/ui/dashboard/grid.cljs:558, src/app/main/ui/dashboard/sidebar.cljs:152 msgid "dashboard.success-move-file" msgstr "Twój plik został pomyślnie przeniesiony" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:129 msgid "dashboard.success-move-files" msgstr "Twoje pliki został pomyślnie przeniesione" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:54 msgid "dashboard.success-move-project" msgstr "Twój projekt został pomyślnie przeniesiony" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1052 msgid "dashboard.team-info" msgstr "Informacje o zespole" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1070 msgid "dashboard.team-members" msgstr "Członkowie zespołu" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1085 msgid "dashboard.team-projects" msgstr "Projekty zespołu" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:61 msgid "dashboard.theme-change" msgstr "Temat interfejsu" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:42 msgid "dashboard.title-search" msgstr "Wyniki wyszukiwania" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:50 msgid "dashboard.type-something" msgstr "Wpisz, aby wyszukać wyniki" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:287, src/app/main/ui/workspace/main_menu.cljs:566 msgid "dashboard.unpublish-shared" msgstr "Cofnij publikację biblioteki" -#: src/app/main/ui/settings/password.cljs, src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:71 msgid "dashboard.update-settings" msgstr "Aktualizuj ustawienia" +#: src/app/main/ui/dashboard/team.cljs:861 msgid "dashboard.webhooks.active" msgstr "Jest aktywny" +#: src/app/main/ui/dashboard/team.cljs:862 msgid "dashboard.webhooks.active.explain" msgstr "Po wywołaniu tego haka zostaną dostarczone szczegóły zdarzenia" +#: src/app/main/ui/dashboard/team.cljs:852 msgid "dashboard.webhooks.content-type" msgstr "Typ treści" +#: src/app/main/ui/dashboard/team.cljs:885 msgid "dashboard.webhooks.create" msgstr "Utwórz webhooka" +#: src/app/main/ui/dashboard/team.cljs:775 msgid "dashboard.webhooks.create.success" msgstr "Pomyślnie utworzono webhook." +#: src/app/main/ui/dashboard/team.cljs:882 msgid "dashboard.webhooks.description" msgstr "" "Webhook to prosty sposób na powiadamianie innych stron internetowych i " "aplikacji o określonych zdarzeniach w Penpot. Wyślemy żądanie POST do " "każdego podanego przez Ciebie adresu URL." +#: src/app/main/ui/dashboard/team.cljs:1005 msgid "dashboard.webhooks.empty.add-one" msgstr "Naciśnij przycisk „Dodaj webhook”, aby go dodać." +#: src/app/main/ui/dashboard/team.cljs:1004 msgid "dashboard.webhooks.empty.no-webhooks" msgstr "Do tej pory nie utworzono żadnych webhooków." +#, unused msgid "dashboard.webhooks.update.success" msgstr "Webhook został pomyślnie zaktualizowany." -#: src/app/main/ui/settings.cljs +#: src/app/main/ui/settings.cljs:31 msgid "dashboard.your-account-title" msgstr "Twoje konto" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:70 msgid "dashboard.your-email" msgstr "Email" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:62 msgid "dashboard.your-name" msgstr "Twoje imię" -#: src/app/main/ui/dashboard/search.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/libraries.cljs, src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:38, src/app/main/ui/dashboard/fonts.cljs:33, src/app/main/ui/dashboard/libraries.cljs:42, src/app/main/ui/dashboard/projects.cljs:318, src/app/main/ui/dashboard/search.cljs:30, src/app/main/ui/dashboard/sidebar.cljs:312, src/app/main/ui/dashboard/team.cljs:495, src/app/main/ui/dashboard/team.cljs:729, src/app/main/ui/dashboard/team.cljs:991, src/app/main/ui/dashboard/team.cljs:1038 msgid "dashboard.your-penpot" msgstr "Twój Penpot" -#: src/app/main/ui/alert.cljs +#: src/app/main/ui/alert.cljs:32 msgid "ds.alert-ok" msgstr "Ok" -#: src/app/main/ui/alert.cljs +#: src/app/main/ui/alert.cljs:31, src/app/main/ui/alert.cljs:34 msgid "ds.alert-title" msgstr "Uwaga" -#: src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:83 msgid "ds.component-subtitle" msgstr "Komponenty do aktualizacji:" -#: src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:36, src/app/main/ui/workspace/plugins.cljs:246 msgid "ds.confirm-cancel" msgstr "Anuluj" -#: src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:37, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:141 msgid "ds.confirm-ok" msgstr "Ok" -#: src/app/main/ui/confirm.cljs, src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:35, src/app/main/ui/confirm.cljs:39 msgid "ds.confirm-title" msgstr "Jesteś pewien?" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:62 msgid "errors.auth-provider-not-configured" msgstr "Dostawca uwierzytelniania nie został skonfigurowany." +#: src/app/main/errors.cljs:104 msgid "errors.auth.unable-to-login" msgstr "Wygląda na to, że nie jesteś uwierzytelniony lub sesja wygasła." +#: src/app/main/data/fonts.cljs:189 msgid "errors.bad-font" msgstr "Nie można załadować fontu %s" +#: src/app/main/data/fonts.cljs:188 msgid "errors.bad-font-plural" msgstr "Nie można załadować fontów %s" -#: src/app/main/data/workspace.cljs +#: src/app/main/data/workspace.cljs:1598 msgid "errors.clipboard-not-implemented" msgstr "Twoja przeglądarka nie może wykonać tej operacji" -#: src/app/main/ui/auth/verify_token.cljs, src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/auth/verify_token.cljs:82, src/app/main/ui/settings/change_email.cljs:46 msgid "errors.email-already-exists" msgstr "Email jest już używany" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:87 msgid "errors.email-already-validated" msgstr "E-mail został już zweryfikowany." +#: src/app/main/ui/settings/password.cljs:28 msgid "errors.email-as-password" msgstr "Nie możesz użyć swojego adresu email jako hasła" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/settings/change_email.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/auth/recovery_request.cljs:63, src/app/main/ui/dashboard/team.cljs:578, src/app/main/ui/settings/change_email.cljs:54 msgid "errors.email-has-permanent-bounces" msgstr "Email «%s» zawiera wiele stałych raportów o odrzuceniu." -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs, src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/login.cljs:81, src/app/main/ui/auth/recovery_request.cljs:31, src/app/main/ui/auth/register.cljs:43 msgid "errors.email-invalid" msgstr "Podaj prawidłowy adres e-mail" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:35 msgid "errors.email-invalid-confirmation" msgstr "E-mail potwierdzający musi być zgodny" +#: src/app/main/ui/dashboard/team.cljs:170 msgid "errors.email-spam-or-permanent-bounces" msgstr "Email «%s» został zgłoszony jako spam lub trwale odrzucony." -#: src/app/main/errors.cljs +#: src/app/main/errors.cljs:227 msgid "errors.feature-mismatch" msgstr "" "Wygląda na to, że otwierasz plik, który ma włączoną funkcję '%s'. Twój " "interfejs użytkownika penpota jej nie obsługuje lub ma ją wyłączoną." -#: src/app/main/errors.cljs +#: src/app/main/errors.cljs:231, src/app/main/errors.cljs:245 msgid "errors.feature-not-supported" msgstr "Funkcja '%s' nie jest obsługiwana." -#: src/app/main/ui/auth/verify_token.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/data/users.cljs:709, src/app/main/ui/auth/login.cljs:65, src/app/main/ui/auth/login.cljs:116, src/app/main/ui/auth/register.cljs:69, src/app/main/ui/auth/register.cljs:237, src/app/main/ui/auth/verify_token.cljs:92, src/app/main/ui/dashboard/team.cljs:173, src/app/main/ui/onboarding/team_choice.cljs:95, src/app/main/ui/settings/access_tokens.cljs:91, src/app/main/ui/settings/feedback.cljs:52 msgid "errors.generic" msgstr "Coś poszło nie tak." -#: src/app/main/ui/components/color_input.cljs +#: src/app/main/ui/components/color_input.cljs:57 msgid "errors.invalid-color" msgstr "Nieprawidłowy kolor" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/static.cljs:43 msgid "errors.invite-invalid" msgstr "Nieprawidłowe zaproszenie" +#: src/app/main/ui/static.cljs:44 msgid "errors.invite-invalid.info" msgstr "To zaproszenie może być anulowane lub wygasło." -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:101 msgid "errors.ldap-disabled" msgstr "Uwierzytelnianie LDAP jest wyłączone." -#: src/app/main/errors.cljs +#: src/app/main/errors.cljs:239 msgid "errors.max-quote-reached" msgstr "Osiągnąłeś limit '%s'. Skontaktuj się z pomocą techniczną." -#: src/app/main/data/workspace/persistence.cljs +#: src/app/main/data/workspace/media.cljs:184 msgid "errors.media-too-large" msgstr "Obraz jest zbyt duży." -#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs +#: src/app/main/data/media.cljs:68, src/app/main/data/workspace/media.cljs:187 msgid "errors.media-type-mismatch" msgstr "Wygląda na to, że zawartość obrazu nie pasuje do rozszerzenia pliku." -#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/workspace/persistence.cljs, src/app/main/data/workspace/persistence.cljs, src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs +#: src/app/main/data/media.cljs:65, src/app/main/data/workspace/media.cljs:172, src/app/main/data/workspace/media.cljs:175, src/app/main/data/workspace/media.cljs:178, src/app/main/data/workspace/media.cljs:181 msgid "errors.media-type-not-allowed" msgstr "Wygląda, że to nie jest prawidłowy obraz." -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:574 msgid "errors.member-is-muted" msgstr "" "W zapraszanym profilu powiadomienia email są wyciszone (zgłoszenia spamu " "lub wysokie odrzucenia)." -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:61 msgid "errors.password-invalid-confirmation" msgstr "Hasło potwierdzające musi być zgodne" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:64 msgid "errors.password-too-short" msgstr "Hasło powinno zawierać co najmniej 8 znaków" +#: src/app/main/data/users.cljs:703, src/app/main/ui/auth/login.cljs:97, src/app/main/ui/auth/login.cljs:105 msgid "errors.profile-blocked" msgstr "Profil jest zablokowany" -#: src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/settings/change_email.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/auth/recovery_request.cljs:60, src/app/main/ui/dashboard/team.cljs:164, src/app/main/ui/dashboard/team.cljs:570, src/app/main/ui/settings/change_email.cljs:50 msgid "errors.profile-is-muted" msgstr "" "Twój profil ma wyciszone powiadomienia email (zgłoszenia spamu lub wysokie " "odrzucenia)." -#: src/app/main/ui/auth/register.cljs +#: src/app/main/data/users.cljs:701, src/app/main/ui/auth/register.cljs:60 msgid "errors.registration-disabled" msgstr "Rejestracja jest obecnie wyłączona." +#: src/app/main/ui/dashboard/sidebar.cljs:365, src/app/main/ui/dashboard/team.cljs:359 msgid "errors.team-leave.insufficient-members" msgstr "" "Niewystarczająca liczba członków, aby opuścić zespół, prawdopodobnie chcesz " "go usunąć." +#: src/app/main/ui/dashboard/sidebar.cljs:368, src/app/main/ui/dashboard/team.cljs:362 msgid "errors.team-leave.member-does-not-exists" msgstr "Członek, którego próbujesz przypisać, nie istnieje." +#: src/app/main/ui/dashboard/sidebar.cljs:371, src/app/main/ui/dashboard/team.cljs:365 msgid "errors.team-leave.owner-cant-leave" msgstr "" "Właściciel nie może opuścić zespołu, musisz ponownie przypisać rolę " "właściciela." -#: src/app/main/data/media.cljs, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs +#: src/app/main/data/media.cljs:71 msgid "errors.unexpected-error" msgstr "Wystąpił nieoczekiwany błąd." -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:60 msgid "errors.unexpected-token" msgstr "Nieznany token" +#: src/app/main/ui/dashboard/team.cljs:796 msgid "errors.webhooks.connection" msgstr "Błąd połączenia, adres URL nieosiągalny" +#: src/app/main/ui/dashboard/team.cljs:790 msgid "errors.webhooks.invalid-uri" msgstr "Adres URL nie przechodzi weryfikacji." -#, fuzzy +#: src/app/main/ui/dashboard/team.cljs:949 msgid "errors.webhooks.last-delivery" msgstr "Ostatnia wysyłka nie powiodła się." +#: src/app/main/ui/dashboard/team.cljs:792, src/app/main/ui/dashboard/team.cljs:952 msgid "errors.webhooks.ssl-validation" msgstr "Błąd podczas sprawdzania poprawności SSL." +#: src/app/main/ui/dashboard/team.cljs:794 msgid "errors.webhooks.timeout" msgstr "Koniec czasu" +#: src/app/main/ui/dashboard/team.cljs:788 msgid "errors.webhooks.unexpected" msgstr "Nieoczekiwany błąd podczas sprawdzania poprawności" +#: src/app/main/ui/dashboard/team.cljs:798, src/app/main/ui/dashboard/team.cljs:955 msgid "errors.webhooks.unexpected-status" msgstr "Nieoczekiwany status %s" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:109, src/app/main/ui/auth/login.cljs:113 msgid "errors.wrong-credentials" msgstr "Email lub hasło są niepoprawne." -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:25 msgid "errors.wrong-old-password" msgstr "Stare hasło jest nieprawidłowe" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:77 msgid "feedback.description" msgstr "Opis" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:95 msgid "feedback.discourse-go-to" msgstr "Przejdź do forum Penpot" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:89 msgid "feedback.discourse-subtitle1" msgstr "" "Cieszymy się, że tu jesteś. Jeśli potrzebujesz pomocy, poszukaj jej zanim " "napiszesz." -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:88 msgid "feedback.discourse-title" msgstr "Społeczność Penpot" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:72 msgid "feedback.subject" msgstr "Temat" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:69 msgid "feedback.subtitle" msgstr "" "Opisz powód swojego e-maila, określając, czy jest to problem, pomysł czy " "wątpliwość. Członek naszego zespołu odpowie tak szybko, jak to możliwe." -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:68 msgid "feedback.title" msgstr "Email" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:105 msgid "feedback.twitter-go-to" msgstr "Przejdź do Xa" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:99 msgid "feedback.twitter-subtitle1" msgstr "Służymy pomocą w kwestiach technicznych." -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:98 msgid "feedback.twitter-title" msgstr "Konto wsparcia na Xze" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:30 msgid "generic.error" msgstr "Wystąpił błąd" -#: src/app/main/ui/inspect/attributes/blur.cljs +#: src/app/main/ui/viewer/inspect/attributes/blur.cljs:26 msgid "inspect.attributes.blur" msgstr "Rozmycie" -#: src/app/main/ui/inspect/attributes/blur.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:115 msgid "inspect.attributes.blur.value" msgstr "Wartość" -#: src/app/main/ui/inspect/attributes/common.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:112 msgid "inspect.attributes.color.hex" msgstr "HEX" -#: src/app/main/ui/inspect/attributes/common.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:114 msgid "inspect.attributes.color.hsla" msgstr "HSLA" -#: src/app/main/ui/inspect/attributes/common.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:113 msgid "inspect.attributes.color.rgba" msgstr "RGBA" -#: src/app/main/ui/inspect/attributes/fill.cljs +#: src/app/main/ui/viewer/inspect/attributes/fill.cljs:57 msgid "inspect.attributes.fill" msgstr "Wypełnienie" -#: src/app/main/ui/inspect/attributes/image.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:99, src/app/main/ui/viewer/inspect/attributes/image.cljs:51 msgid "inspect.attributes.image.download" msgstr "Pobierz obraz źródłowy" -#: src/app/main/ui/inspect/attributes/image.cljs +#: src/app/main/ui/viewer/inspect/attributes/image.cljs:39 msgid "inspect.attributes.image.height" msgstr "Wysokość" -#: src/app/main/ui/inspect/attributes/image.cljs +#: src/app/main/ui/viewer/inspect/attributes/image.cljs:32 msgid "inspect.attributes.image.width" msgstr "Szerokość" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout" msgstr "Układ" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.height" msgstr "Wysokość" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.left" msgstr "Lewo" #: src/app/main/ui/inspect/attributes/layout.cljs, src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.radius" msgstr "Promień" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.rotation" msgstr "Obrót" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.top" msgstr "Góra" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.width" msgstr "Szerokość" -#: src/app/main/ui/inspect/attributes/shadow.cljs +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:57 msgid "inspect.attributes.shadow" msgstr "Cień" -#: src/app/main/ui/inspect/attributes/layout.cljs +#: src/app/main/ui/viewer/inspect/attributes/geometry.cljs:40 msgid "inspect.attributes.size" msgstr "Rozmiar i położenie" -#: src/app/main/ui/inspect/attributes/stroke.cljs +#: src/app/main/ui/viewer/inspect/attributes/stroke.cljs:52 msgid "inspect.attributes.stroke" msgstr "Obrys" -#, permanent +#, permanent, unused msgid "inspect.attributes.stroke.alignment.center" msgstr "Środek" -#, permanent +#, permanent, unused msgid "inspect.attributes.stroke.alignment.inner" msgstr "Wewnątrz" -#, permanent +#, permanent, unused msgid "inspect.attributes.stroke.alignment.outer" msgstr "Zewnątrz" +#, unused msgid "inspect.attributes.stroke.style.dotted" msgstr "Kropkowany" +#, unused msgid "inspect.attributes.stroke.style.mixed" msgstr "Mieszany" +#, unused msgid "inspect.attributes.stroke.style.none" msgstr "Brak" +#, unused msgid "inspect.attributes.stroke.style.solid" msgstr "Ciągły" #: src/app/main/ui/inspect/attributes/stroke.cljs +#, unused msgid "inspect.attributes.stroke.width" msgstr "Szerokość" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:81, src/app/main/ui/viewer/inspect/attributes/text.cljs:194 msgid "inspect.attributes.typography" msgstr "Typografia" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:89 msgid "inspect.attributes.typography.font-family" msgstr "Rodzina fontów" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:107 msgid "inspect.attributes.typography.font-size" msgstr "Rozmiar fontu" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:98 msgid "inspect.attributes.typography.font-style" msgstr "Styl fontu" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:134 msgid "inspect.attributes.typography.letter-spacing" msgstr "Rozstaw liter" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:125 msgid "inspect.attributes.typography.line-height" msgstr "Wysokość linii" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:143 msgid "inspect.attributes.typography.text-decoration" msgstr "Dekoracja tekstu" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:145 msgid "inspect.attributes.typography.text-decoration.none" msgstr "Brak" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:146 msgid "inspect.attributes.typography.text-decoration.strikethrough" msgstr "Przekreślenie" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:147 msgid "inspect.attributes.typography.text-decoration.underline" msgstr "Podkreślenie" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:156 msgid "inspect.attributes.typography.text-transform" msgstr "Przekształcenie tekstu" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:158 msgid "inspect.attributes.typography.text-transform.lowercase" msgstr "małe litery" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:159 msgid "inspect.attributes.typography.text-transform.none" msgstr "Brak" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:160 msgid "inspect.attributes.typography.text-transform.titlecase" msgstr "Kapitaliki" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:161 msgid "inspect.attributes.typography.text-transform.uppercase" msgstr "DUŻE LITERY" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:140 msgid "inspect.empty.help" msgstr "" "Jeśli chcesz dowiedzieć się więcej o inspekcji projektu, odwiedź centrum " "pomocy Penpot" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:143 msgid "inspect.empty.more-info" msgstr "Więcej informacji o inspekcji" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:135 msgid "inspect.empty.select" msgstr "Wybierz kształt, tablicę lub grupę, aby sprawdzić ich właściwości i kod" -#: src/app/main/ui/inspect/right_sidebar.cljs +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:125 msgid "inspect.tabs.code" msgstr "Kod" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:98 msgid "inspect.tabs.code.selected.circle" msgstr "Okrąg" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:99 msgid "inspect.tabs.code.selected.component" msgstr "Komponent" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:100 msgid "inspect.tabs.code.selected.curve" msgstr "Krzywa" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:101 msgid "inspect.tabs.code.selected.frame" msgstr "Artboard" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:102 msgid "inspect.tabs.code.selected.group" msgstr "Grupa" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:103 msgid "inspect.tabs.code.selected.image" msgstr "Obraz" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:104 msgid "inspect.tabs.code.selected.mask" msgstr "Maska" -#: src/app/main/ui/inspect/right_sidebar.cljs +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:93 msgid "inspect.tabs.code.selected.multiple" msgstr "%s wybrano" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:105 msgid "inspect.tabs.code.selected.path" msgstr "Ścieżka" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:106 msgid "inspect.tabs.code.selected.rect" msgstr "Prostokąt" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:107 msgid "inspect.tabs.code.selected.svg-raw" msgstr "SVG" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:108 msgid "inspect.tabs.code.selected.text" msgstr "Tekst" -#: src/app/main/ui/inspect/right_sidebar.cljs +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:115 msgid "inspect.tabs.info" msgstr "Informacje" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:158 msgid "label.shortcuts" msgstr "Skróty" +#: src/app/main/ui/dashboard/import.cljs:527 msgid "labels.accept" msgstr "Akceptuj" +#: src/app/main/ui/dashboard/team.cljs:968 msgid "labels.active" msgstr "Aktywny" +#: src/app/main/ui/dashboard/fonts.cljs:175 msgid "labels.add-custom-font" msgstr "Dodaj niestandardowy font" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:120, src/app/main/ui/dashboard/team.cljs:276, src/app/main/ui/dashboard/team.cljs:519, src/app/main/ui/dashboard/team.cljs:549, src/app/main/ui/onboarding/team_choice.cljs:67 msgid "labels.admin" msgstr "Admin" #: src/app/main/ui/workspace/comments.cljs +#, unused msgid "labels.all" msgstr "Wszystko" +#: src/app/main/ui/auth.cljs:37 msgid "labels.and" msgstr "i" +#: src/app/main/ui/onboarding/team_choice.cljs:162 msgid "labels.back" msgstr "Cofnij" -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:59 msgid "labels.bad-gateway.desc-message" msgstr "" "Wygląda na to, że musisz trochę poczekać i spróbować ponownie; wykonujemy " "drobne prace konserwacyjne naszych serwerów." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:58 msgid "labels.bad-gateway.main-message" msgstr "Bad Gateway" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/data/common.cljs:112, src/app/main/ui/dashboard/change_owner.cljs:69, src/app/main/ui/dashboard/import.cljs:514, src/app/main/ui/dashboard/team.cljs:868, src/app/main/ui/delete_shared.cljs:35, src/app/main/ui/export.cljs:164, src/app/main/ui/export.cljs:460, src/app/main/ui/settings/access_tokens.cljs:188, src/app/main/ui/viewer/share_link.cljs:203, src/app/main/ui/workspace/sidebar/assets/groups.cljs:149 msgid "labels.cancel" msgstr "Anuluj" +#: src/app/main/ui/dashboard/projects.cljs:93, src/app/main/ui/export.cljs:478, src/app/main/ui/settings/access_tokens.cljs:183, src/app/main/ui/viewer/login.cljs:77, src/app/main/ui/viewer/share_link.cljs:174, src/app/main/ui/workspace/libraries.cljs:522 msgid "labels.close" msgstr "Zamknij" -#: src/app/main/ui/dashboard/comments.cljs +#: src/app/main/ui/dashboard/comments.cljs:104, src/app/main/ui/viewer/comments.cljs:70, src/app/main/ui/workspace/comments.cljs:126 msgid "labels.comments" msgstr "Komentarze" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:985, src/app/main/ui/workspace/main_menu.cljs:110 msgid "labels.community" msgstr "Społeczność" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:103 msgid "labels.confirm-password" msgstr "Potwierdź hasło" +#: src/app/main/ui/dashboard/import.cljs:520, src/app/main/ui/export.cljs:465, src/app/main/ui/onboarding/newsletter.cljs:101 msgid "labels.continue" msgstr "Kontynuuj" +#, unused msgid "labels.continue-with" msgstr "Kontynuuj z" +#: src/app/main/ui/viewer/login.cljs:75 msgid "labels.continue-with-penpot" msgstr "Możesz kontynuować z kontem Penpot" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:642 msgid "labels.copy-invitation-link" msgstr "Kopiuj link" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:157, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:190 msgid "labels.create" msgstr "Stwórz" -#: src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/dashboard/team_form.cljs +#: src/app/main/ui/dashboard/team_form.cljs:101, src/app/main/ui/dashboard/team_form.cljs:121 msgid "labels.create-team" msgstr "Stwórz nowy zespół" -#: src/app/main/ui/dashboard/team_form.cljs +#: src/app/main/ui/dashboard/team_form.cljs:113 msgid "labels.create-team.placeholder" msgstr "Wprowadź nazwę nowego zespołu" +#, unused msgid "labels.custom-fonts" msgstr "Niestandardowe fonty" -#: src/app/main/ui/settings/sidebar.cljs +#: src/app/main/ui/settings/sidebar.cljs:73 msgid "labels.dashboard" msgstr "Kokpit" -#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:306, src/app/main/ui/dashboard/fonts.cljs:255, src/app/main/ui/dashboard/fonts.cljs:332, src/app/main/ui/dashboard/fonts.cljs:346, src/app/main/ui/dashboard/project_menu.cljs:115, src/app/main/ui/dashboard/team.cljs:904, src/app/main/ui/settings/access_tokens.cljs:209, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:209 msgid "labels.delete" msgstr "Usuń" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:357 msgid "labels.delete-comment" msgstr "Usuń komentarz" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:354 msgid "labels.delete-comment-thread" msgstr "Usuń wątek" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:648 msgid "labels.delete-invitation" msgstr "Usuń zaproszenie" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:262 msgid "labels.delete-multi-files" msgstr "Usuń %s plików" -#: src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/files.cljs, src/app/main/ui/dashboard/files.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:28, src/app/main/ui/dashboard/files.cljs:72, src/app/main/ui/dashboard/files.cljs:156, src/app/main/ui/dashboard/projects.cljs:220, src/app/main/ui/dashboard/projects.cljs:224, src/app/main/ui/dashboard/sidebar.cljs:791 msgid "labels.drafts" msgstr "Szkice" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:350, src/app/main/ui/dashboard/fonts.cljs:252, src/app/main/ui/dashboard/team.cljs:902, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:205 msgid "labels.edit" msgstr "Edytuj" +#, unused msgid "labels.edit-file" msgstr "Edytuj plik" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:118, src/app/main/ui/dashboard/team.cljs:279, src/app/main/ui/dashboard/team.cljs:520, src/app/main/ui/dashboard/team.cljs:553, src/app/main/ui/onboarding/team_choice.cljs:66 msgid "labels.editor" msgstr "Edytor" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:661 msgid "labels.expired-invitation" msgstr "Wygasły" +#: src/app/main/ui/export.cljs:173 msgid "labels.export" msgstr "Eksportuj" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:51 msgid "labels.feedback-disabled" msgstr "Opinie wyłączone" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:42 msgid "labels.feedback-sent" msgstr "Opinia wysłana" +#: src/app/main/ui/dashboard/fonts.cljs:412 msgid "labels.font-family" msgstr "Rodzina fontów" +#, unused msgid "labels.font-providers" msgstr "Dostawcy fontów" +#: src/app/main/ui/dashboard/fonts.cljs:413 msgid "labels.font-variants" msgstr "Style" +#: src/app/main/ui/dashboard/fonts.cljs:52, src/app/main/ui/dashboard/sidebar.cljs:811 msgid "labels.fonts" msgstr "Fonty" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:1015, src/app/main/ui/workspace/main_menu.cljs:142 msgid "labels.github-repo" msgstr "Repozytorium Github" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:1032, src/app/main/ui/settings/sidebar.cljs:113, src/app/main/ui/workspace/main_menu.cljs:171 msgid "labels.give-feedback" msgstr "Dodaj opinię" +#: src/app/main/ui/auth/recovery_request.cljs:110, src/app/main/ui/auth/register.cljs:285, src/app/main/ui/viewer/login.cljs:117 msgid "labels.go-back" msgstr "Wróć" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:978, src/app/main/ui/workspace/main_menu.cljs:102 msgid "labels.help-center" msgstr "Centrum Pomocy" -#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/comments.cljs:103, src/app/main/ui/workspace/comments.cljs:67 msgid "labels.hide-resolved-comments" msgstr "Ukryj rozwiązane komentarze" +#: src/app/main/ui/dashboard/team.cljs:969 msgid "labels.inactive" msgstr "Nieaktywny" +#: src/app/main/ui/dashboard/fonts.cljs:410 msgid "labels.installed-fonts" msgstr "Zainstalowane fonty" -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:144 msgid "labels.internal-error.desc-message" msgstr "" "Stało się coś złego. Spróbuj ponownie wykonać operację, a jeśli problem " "będzie się powtarzał, skontaktuj się z pomocą techniczną." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:143 msgid "labels.internal-error.main-message" msgstr "Błąd wewnętrzny" -#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:516, src/app/main/ui/dashboard/team.cljs:89, src/app/main/ui/dashboard/team.cljs:97, src/app/main/ui/dashboard/team.cljs:708 msgid "labels.invitations" msgstr "Zaproszenia" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:51 msgid "labels.language" msgstr "Język" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:1008, src/app/main/ui/workspace/main_menu.cljs:134 msgid "labels.libraries-and-templates" msgstr "Biblioteki i szablony" +#: src/app/main/ui/viewer/header.cljs:203 msgid "labels.log-or-sign" msgstr "Zaloguj się lub zarejestruj" -#: src/app/main/ui/settings.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:1040 msgid "labels.logout" msgstr "Wyloguj" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/team.cljs:468 msgid "labels.member" msgstr "Członek" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:510, src/app/main/ui/dashboard/team.cljs:87, src/app/main/ui/dashboard/team.cljs:95 msgid "labels.members" msgstr "Członkowie" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:96 msgid "labels.new-password" msgstr "Nowe hasło" -#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/dashboard/comments.cljs +#: src/app/main/ui/dashboard/comments.cljs:128, src/app/main/ui/workspace/comments.cljs:161 msgid "labels.no-comments-available" msgstr "" "Wszyscy jesteście na bieżąco! Tutaj będą pojawiać się powiadomienia o " "nowych komentarzach." -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:694 msgid "labels.no-invitations" msgstr "Brak oczekujących zaproszeń." -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:696 #, markdown msgid "labels.no-invitations-hint" msgstr "Kliknij przycisk **Zaproś osoby**, aby zaprosić osoby do tego zespołu." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:50 msgid "labels.not-found.desc-message" msgstr "Ta strona może nie istnieć lub nie masz do niej uprawnień dostępu." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:49 msgid "labels.not-found.main-message" msgstr "Kurza stopa!" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/projects.cljs:239, src/app/main/ui/dashboard/team.cljs:1095 msgid "labels.num-of-files" msgid_plural "labels.num-of-files" msgstr[0] "1 plik" msgstr[1] "%s pliki" msgstr[2] "%s plików" +#: src/app/main/ui/viewer/thumbnails.cljs:80 msgid "labels.num-of-frames" msgid_plural "labels.num-of-frames" msgstr[0] "1 artboard" msgstr[1] "%s artboardy" msgstr[2] "%s artboardów" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1090 msgid "labels.num-of-projects" msgid_plural "labels.num-of-projects" msgstr[0] "1 projekt" msgstr[1] "%s projekty" msgstr[2] "%s projektów" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:89 msgid "labels.old-password" msgstr "Stare hasło" #: src/app/main/ui/workspace/comments.cljs +#, unused msgid "labels.only-yours" msgstr "Tylko twoje" +#, unused msgid "labels.or" msgstr "lub" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:286, src/app/main/ui/dashboard/team.cljs:518, src/app/main/ui/dashboard/team.cljs:1076 msgid "labels.owner" msgstr "Właściciel" -#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/settings/sidebar.cljs:87 msgid "labels.password" msgstr "Hasło" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:662 msgid "labels.pending-invitation" msgstr "Oczekiwanie" -#: src/app/main/ui/settings/sidebar.cljs +#: src/app/main/ui/settings/profile.cljs:118, src/app/main/ui/settings/sidebar.cljs:82 msgid "labels.profile" msgstr "Profil" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:784 msgid "labels.projects" msgstr "Projekty" -#: src/app/main/ui/settings/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:998, src/app/main/ui/settings/sidebar.cljs:106, src/app/main/ui/workspace/main_menu.cljs:126 msgid "labels.release-notes" msgstr "Uwagi do wydania" #: src/app/main/ui/workspace.cljs +#, unused msgid "labels.reload-file" msgstr "Przeładuj plik" #: src/app/main/ui/workspace/libraries.cljs, src/app/main/ui/dashboard/team.cljs +#, unused msgid "labels.remove" msgstr "Usuń" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:316 msgid "labels.remove-member" msgstr "Usuń członka zespołu" -#: src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:271, src/app/main/ui/dashboard/project_menu.cljs:85, src/app/main/ui/dashboard/sidebar.cljs:539, src/app/main/ui/workspace/sidebar/assets/groups.cljs:157 msgid "labels.rename" msgstr "Zmień nazwę" -#: src/app/main/ui/dashboard/team_form.cljs +#: src/app/main/ui/dashboard/team_form.cljs:99 msgid "labels.rename-team" msgstr "Zmień nazwę zespołu" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:645 msgid "labels.resend-invitation" msgstr "Wyślij ponownie zaproszenie" -#: src/app/main/ui/static.cljs, src/app/main/ui/static.cljs, src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:61, src/app/main/ui/static.cljs:70, src/app/main/ui/static.cljs:148 msgid "labels.retry" msgstr "Ponów" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:469, src/app/main/ui/dashboard/team.cljs:709 msgid "labels.role" msgstr "Rola" +#: src/app/main/ui/dashboard/fonts.cljs:380, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:191 msgid "labels.save" msgstr "Zapisz" +#: src/app/main/ui/dashboard/fonts.cljs:415 msgid "labels.search-font" msgstr "Szukaj fontu" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:82 msgid "labels.send" msgstr "Wyślij" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:82 msgid "labels.sending" msgstr "Wysyłanie…" -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:68 msgid "labels.service-unavailable.desc-message" msgstr "Zajmujemy się planowaną konserwacją naszych systemów." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:67 msgid "labels.service-unavailable.main-message" msgstr "Serwis niedostępny" -#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:530, src/app/main/ui/dashboard/team.cljs:88, src/app/main/ui/dashboard/team.cljs:102, src/app/main/ui/settings/options.cljs:84, src/app/main/ui/settings/sidebar.cljs:93 msgid "labels.settings" msgstr "Ustawienia" +#, unused msgid "labels.share-prototype" msgstr "Udostępnij prototyp" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:800 msgid "labels.shared-libraries" msgstr "Biblioteki Współdzielone" -#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/comments.cljs:82, src/app/main/ui/workspace/comments.cljs:55, src/app/main/ui/workspace/comments.cljs:135 msgid "labels.show-all-comments" msgstr "Pokaż wszystkie komentarze" +#: src/app/main/ui/viewer/comments.cljs:115 msgid "labels.show-comments-list" msgstr "Pokaż listę komentarzy" -#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/comments.cljs:91, src/app/main/ui/workspace/comments.cljs:61, src/app/main/ui/workspace/comments.cljs:136 msgid "labels.show-your-comments" msgstr "Pokaż tylko swoje komentarze" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:710 msgid "labels.status" msgstr "Status" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:992, src/app/main/ui/workspace/main_menu.cljs:118 msgid "labels.tutorials" msgstr "Samouczki" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:256 msgid "labels.unpublish-multi-files" msgstr "Cofnij publikację plików %s" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:103 msgid "labels.update" msgstr "Aktualizuj" -#: src/app/main/ui/dashboard/team_form.cljs +#: src/app/main/ui/dashboard/team_form.cljs:120 msgid "labels.update-team" msgstr "Zaktualizuj zespół" +#: src/app/main/ui/dashboard/fonts.cljs:241 msgid "labels.upload" msgstr "Wgraj" +#: src/app/main/ui/dashboard/fonts.cljs:169 msgid "labels.upload-custom-fonts" msgstr "Wgraj niestandardowe fonty" +#: src/app/main/ui/dashboard/fonts.cljs:240 msgid "labels.uploading" msgstr "Wgrywanie…" +#: src/app/main/ui/workspace/sidebar/sitemap.cljs:223 msgid "labels.view-only" msgstr "TYLKO PODGLĄD" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:123, src/app/main/ui/dashboard/team.cljs:282, src/app/main/ui/dashboard/team.cljs:521 msgid "labels.viewer" msgstr "Widz" +#: src/app/main/ui/dashboard/sidebar.cljs:523, src/app/main/ui/dashboard/team.cljs:90, src/app/main/ui/dashboard/team.cljs:100, src/app/main/ui/dashboard/team.cljs:880 msgid "labels.webhooks" msgstr "Webhooki" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:194 msgid "labels.write-new-comment" msgstr "Napisz nowy komentarz" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/team.cljs:237 msgid "labels.you" msgstr "(Ty)" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:968 msgid "labels.your-account" msgstr "Twoje konto" -#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs +#: src/app/main/data/media.cljs:49, src/app/main/data/workspace/media.cljs:223, src/app/main/data/workspace/media.cljs:453 msgid "media.loading" msgstr "Wczytywanie obrazu…" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/data/common.cljs:113 msgid "modals.add-shared-confirm.accept" msgstr "Dodaj jako Bibliotekę Współdzieloną" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/data/common.cljs:111 msgid "modals.add-shared-confirm.hint" msgstr "" "Po dodaniu jej jako Biblioteki Współdzielonej, zasoby tej biblioteki plików " "będą dostępne do wykorzystania w pozostałych Twoich plikach." -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/data/common.cljs:110 msgid "modals.add-shared-confirm.message" msgstr "Dodaj “%s” jako Bibliotekę Współdzieloną" -#: src/app/main/ui/workspace/nudge.cljs +#: src/app/main/ui/workspace/nudge.cljs:60 msgid "modals.big-nudge" msgstr "Duże przesunięcie" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:127 msgid "modals.change-email.confirm-email" msgstr "Zweryfikuj nowy email" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:114 msgid "modals.change-email.info" msgstr "" "Wyślemy Ci wiadomość na Twój aktualny adres email “%s”, żeby zweryfikować " "Twoją tożsamość." -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:119 msgid "modals.change-email.new-email" msgstr "Nowy email" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:136 msgid "modals.change-email.submit" msgstr "Zmień email" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:107 msgid "modals.change-email.title" msgstr "Zmień swój email" +#: src/app/main/ui/dashboard/team.cljs:873 msgid "modals.create-webhook.submit-label" msgstr "Utwórz webhook" +#: src/app/main/ui/dashboard/team.cljs:838 msgid "modals.create-webhook.title" msgstr "Utwórz webhook" +#: src/app/main/ui/dashboard/team.cljs:849 msgid "modals.create-webhook.url.label" msgstr "Ładowność URL" +#: src/app/main/ui/dashboard/team.cljs:850 msgid "modals.create-webhook.url.placeholder" msgstr "https://example.com/postreceive" -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:59 msgid "modals.delete-account.cancel" msgstr "Anuluj i zachowaj moje konto" -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:64 msgid "modals.delete-account.confirm" msgstr "Tak, usuń moje konto" -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:53 msgid "modals.delete-account.info" msgstr "Usuwając konto, stracisz wszystkie swoje bieżące i archiwalne projekty." -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:46 msgid "modals.delete-account.title" msgstr "Czy na pewno chcesz usunąć swoje konto?" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:298 msgid "modals.delete-comment-thread.accept" msgstr "Usuń rozmowę" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:297 msgid "modals.delete-comment-thread.message" msgstr "" "Czy na pewno chcesz usunąć tę rozmowę? Wszystkie komentarze w tym wątku " "zostaną usunięte." -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:296 msgid "modals.delete-comment-thread.title" msgstr "Usuń rozmowę" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:123 msgid "modals.delete-file-confirm.accept" msgstr "Usuń plik" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:122 msgid "modals.delete-file-confirm.message" msgstr "Czy na pewno chcesz usunąć ten plik?" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:121 msgid "modals.delete-file-confirm.title" msgstr "Usuwanie pliku" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:117 msgid "modals.delete-file-multi-confirm.accept" msgstr "Usuń pliki" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:116 msgid "modals.delete-file-multi-confirm.message" msgstr "Czy na pewno chcesz usunąć %s pliki?" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:115 msgid "modals.delete-file-multi-confirm.title" msgstr "Usuwanie %s plików" +#: src/app/main/ui/dashboard/fonts.cljs:345 msgid "modals.delete-font-variant.message" msgstr "" "Czy na pewno chcesz usunąć ten styl fontu? Nie zostanie załadowany, jeśli " "jest używany w pliku." +#: src/app/main/ui/dashboard/fonts.cljs:344 msgid "modals.delete-font-variant.title" msgstr "Usuwanie stylu fontu" +#: src/app/main/ui/dashboard/fonts.cljs:331 msgid "modals.delete-font.message" msgstr "" "Czy na pewno chcesz usunąć ten font? Nie zostanie załadowany, jeśli jest " "używany w pliku." +#: src/app/main/ui/dashboard/fonts.cljs:330 msgid "modals.delete-font.title" msgstr "Usuwanie fontu" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs +#: src/app/main/ui/workspace/context_menu.cljs:522, src/app/main/ui/workspace/sidebar/sitemap.cljs:45 msgid "modals.delete-page.body" msgstr "Czy na pewno chcesz usunąć tę stronę?" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs +#: src/app/main/ui/workspace/context_menu.cljs:521, src/app/main/ui/workspace/sidebar/sitemap.cljs:44 msgid "modals.delete-page.title" msgstr "Usuń stronę" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:69 msgid "modals.delete-project-confirm.accept" msgstr "Usuń projekt" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:68 msgid "modals.delete-project-confirm.message" msgstr "Czy na pewno chcesz usunąć ten projekt?" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:67 msgid "modals.delete-project-confirm.title" msgstr "Usuń projekt" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:51 msgid "modals.delete-shared-confirm.accept" msgid_plural "modals.delete-shared-confirm.accept" msgstr[0] "Usuń plik" msgstr[1] "Usuń pliki" msgstr[2] "Usuń pliki" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:46 msgid "modals.delete-shared-confirm.message" msgid_plural "modals.delete-shared-confirm.message" msgstr[0] "Czy na pewno chcesz usunąć ten plik?" msgstr[1] "Czy na pewno chcesz usunąć te pliki?" msgstr[2] "Czy na pewno chcesz usunąć te pliki?" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:41 msgid "modals.delete-shared-confirm.title" msgid_plural "modals.delete-shared-confirm.title" msgstr[0] "Usuwanie pliku" msgstr[1] "Usuwanie plików" msgstr[2] "Usuwanie plików" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:435 msgid "modals.delete-team-confirm.accept" msgstr "Usuń zespół" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:434 msgid "modals.delete-team-confirm.message" msgstr "" "Czy na pewno chcesz usunąć ten zespół? Wszystkie projekty i pliki powiązane " "z zespołem zostaną trwale usunięte." -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:433 msgid "modals.delete-team-confirm.title" msgstr "Usuwanie zespołu" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:427 msgid "modals.delete-team-member-confirm.accept" msgstr "Usuń członka" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:426 msgid "modals.delete-team-member-confirm.message" msgstr "Czy na pewno chcesz usunąć tego członka z zespołu?" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:425 msgid "modals.delete-team-member-confirm.title" msgstr "Usuń członka zespołu" +#: src/app/main/ui/dashboard/team.cljs:942 msgid "modals.delete-webhook.accept" msgstr "Usuń webhook" +#: src/app/main/ui/dashboard/team.cljs:941 msgid "modals.delete-webhook.message" msgstr "Czy na pewno chcesz usunąć ten webhook?" +#: src/app/main/ui/dashboard/team.cljs:940 msgid "modals.delete-webhook.title" msgstr "Usuwanie webhooka" +#: src/app/main/ui/dashboard/team.cljs:872 msgid "modals.edit-webhook.submit-label" msgstr "Edytuj webhook" +#: src/app/main/ui/dashboard/team.cljs:837 msgid "modals.edit-webhook.title" msgstr "Edytuj webhook" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:218 msgid "modals.invite-member-confirm.accept" msgstr "Wyślij zaproszenie" +#: src/app/main/ui/dashboard/team.cljs:213, src/app/main/ui/onboarding/team_choice.cljs:156 msgid "modals.invite-member.emails" msgstr "Emaile, oddzielone przecinkami" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:190 msgid "modals.invite-team-member.title" msgstr "Zaproś członków do zespołu" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:423, src/app/main/ui/dashboard/team.cljs:393 msgid "modals.leave-and-close-confirm.hint" msgstr "" "Ponieważ jesteś jedynym członkiem tego zespołu, zespół zostanie usunięty " "wraz z projektami i plikami." -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:422, src/app/main/ui/dashboard/team.cljs:392 msgid "modals.leave-and-close-confirm.message" msgstr "Czy na pewno chcesz opuścić zespół %s?" +#: src/app/main/ui/dashboard/change_owner.cljs:59 msgid "modals.leave-and-reassign.forbidden" msgstr "" "Nie możesz opuścić zespołu, jeśli nie ma innego członka, którego można by " "awansować na właściciela. Możesz chcieć usunąć zespół." -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/change_owner.cljs:55 msgid "modals.leave-and-reassign.hint1" msgstr "" "Jesteś właścicielem tego zespołu. Wybierz innego członka, którego chcesz " "awansować na właściciela, zanim odejdziesz." -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/change_owner.cljs:78 msgid "modals.leave-and-reassign.promote-and-leave" msgstr "Awansuj i odejdź" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/change_owner.cljs:34 msgid "modals.leave-and-reassign.select-member-to-promote" msgstr "Wybierz członka do awansu" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/change_owner.cljs:49 msgid "modals.leave-and-reassign.title" msgstr "Zanim opuścisz" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:402, src/app/main/ui/dashboard/sidebar.cljs:424, src/app/main/ui/dashboard/team.cljs:394, src/app/main/ui/dashboard/team.cljs:416 msgid "modals.leave-confirm.accept" msgstr "Opuść zespół" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:401, src/app/main/ui/dashboard/team.cljs:415 msgid "modals.leave-confirm.message" msgstr "Czy na pewno chcesz opuścić ten zespół?" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:400, src/app/main/ui/dashboard/sidebar.cljs:421, src/app/main/ui/dashboard/team.cljs:391, src/app/main/ui/dashboard/team.cljs:414 msgid "modals.leave-confirm.title" msgstr "Opusczanie zespołu" -#: src/app/main/ui/workspace/nudge.cljs +#: src/app/main/ui/workspace/main_menu.cljs:266, src/app/main/ui/workspace/nudge.cljs:47 msgid "modals.nudge-title" msgstr "Ilość przesunięcia" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:340 msgid "modals.promote-owner-confirm.accept" msgstr "Przeniesienie własności" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:339 msgid "modals.promote-owner-confirm.hint" msgstr "" "Jeśli przeniesiesz własność, zmienisz swoją rolę na administratora, tracąc " "niektóre uprawnienia w tym zespole. " -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:338 msgid "modals.promote-owner-confirm.message" msgstr "" "Jesteś obecnym właścicielem tego zespołu. Czy na pewno chcesz, aby %s " "został nowym właścicielem zespołu?" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:337 msgid "modals.promote-owner-confirm.title" msgstr "Nowy właściciel zespołu" #: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "modals.remove-shared-confirm.accept" msgstr "Usuń jako Bibliotekę Współdzieloną" #: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "modals.remove-shared-confirm.hint" msgstr "" "Po usunięciu jako Biblioteka Współdzielona, Biblioteka Plików tego pliku " "przestanie być dostępna do użytku wśród pozostałych plików." #: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "modals.remove-shared-confirm.message" msgstr "Usuń “%s” jako Bibliotekę Współdzieloną" -#: src/app/main/ui/workspace/nudge.cljs +#: src/app/main/ui/workspace/nudge.cljs:53 msgid "modals.small-nudge" msgstr "Małe przesunięcie" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:52 msgid "modals.unpublish-shared-confirm.accept" msgid_plural "modals.unpublish-shared-confirm.accept" msgstr[0] "Cofnij publikację" msgstr[1] "Cofnij publikacje" msgstr[2] "Cofnij publikacje" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:47 msgid "modals.unpublish-shared-confirm.message" msgid_plural "modals.unpublish-shared-confirm.message" msgstr[0] "Czy na pewno chcesz cofnąć publikację tej biblioteki?" msgstr[1] "Czy na pewno chcesz cofnąć publikację tych bibliotek?" msgstr[2] "Czy na pewno chcesz cofnąć publikację tych bibliotek?" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:42 msgid "modals.unpublish-shared-confirm.title" msgid_plural "modals.unpublish-shared-confirm.title" msgstr[0] "Cofnij publikację biblioteki" @@ -1875,2485 +2050,2807 @@ msgstr[1] "Cofnij publikację bibliotek" msgstr[2] "Cofnij publikację bibliotek" #: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#, unused msgid "modals.update-remote-component-in-bulk.hint" msgstr "" "Zamierzasz zaktualizować komponenty w bibliotece współdzielonej. Może to " "wpłynąć na inne pliki, które z nich korzystają." #: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#, unused msgid "modals.update-remote-component-in-bulk.message" msgstr "Aktualizuj komponenty w bibliotece współdzielonej" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:380 msgid "modals.update-remote-component.accept" msgstr "Aktualizuj" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:379 msgid "modals.update-remote-component.cancel" msgstr "Anuluj" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:378 msgid "modals.update-remote-component.hint" msgstr "" "Zamierzasz zaktualizować komponent w bibliotece współdzielonej. Może to " "wpłynąć na inne pliki, które z niego korzystają." -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:377 msgid "modals.update-remote-component.message" msgstr "Zaktualizuj komponent w bibliotece współdzielonej" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:154, src/app/main/ui/dashboard/team.cljs:595 msgid "notifications.invitation-email-sent" msgstr "Zaproszenie wysłane pomyślnie" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:616 msgid "notifications.invitation-link-copied" msgstr "Link do zaproszenia został skopiowany" -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:24 msgid "notifications.profile-deletion-not-allowed" msgstr "" "Nie możesz usunąć swojego profilu. Zmień przypisanie swoich zespołów, zanim " "przejdziesz dalej." -#: src/app/main/ui/settings/profile.cljs, src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:29, src/app/main/ui/settings/profile.cljs:35 msgid "notifications.profile-saved" msgstr "Profil został pomyślnie zapisany!" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:63 msgid "notifications.validation-email-sent" msgstr "Email weryfikacyjny został wysłany do %s. Sprawdź swój email!" +#, unused msgid "onboarding-v2.before-start.desc1" msgstr "" "Powinieneś wiedzieć, że dostępnych jest wiele zasobów, które pomogą Ci " "rozpocząć pracę z Penpotem, takich jak Podręcznik Użytkownika i nasz kanał " "na YouTube." +#, unused msgid "onboarding-v2.before-start.desc2" msgstr "" "Szczegółowe informacje o tym, jak korzystać z Penpot. Od prototypowania po " "organizowanie lub udostępnianie projektów." +#, unused msgid "onboarding-v2.before-start.desc2.title" msgstr "Podręcznik użytkownika" +#, unused msgid "onboarding-v2.before-start.desc3" msgstr "Możesz oglądać nasze samouczki i samouczki wykonane przez naszą społeczność." +#, unused msgid "onboarding-v2.before-start.desc3.title" msgstr "Samouczki wideo" +#, unused msgid "onboarding-v2.before-start.title" msgstr "Zanim zaczniesz" +#: src/app/main/ui/onboarding/newsletter.cljs:63 msgid "onboarding-v2.newsletter.desc" msgstr "" "Zapisz się do newslettera Penpot, aby być na bieżąco z postępami w rozwoju " "produktu i nowościami." +#: src/app/main/ui/onboarding/newsletter.cljs:83 msgid "onboarding-v2.newsletter.news" msgstr "" "Wysyłaj mi wiadomości o Penpot (posty na blogach, samouczki wideo, " "transmisje...)." +#: src/app/main/ui/onboarding/newsletter.cljs:91 msgid "onboarding-v2.newsletter.privacy1" msgstr "Dbamy o prywatność, tutaj możesz przeczytać nasze " +#: src/app/main/ui/onboarding/newsletter.cljs:97 msgid "onboarding-v2.newsletter.privacy2" msgstr "" "Będziemy wysyłać do Ciebie tylko odpowiednie e-maile. Możesz zrezygnować z " "subskrypcji w dowolnym momencie, korzystając z łącza rezygnacji z " "subskrypcji w dowolnym z naszych biuletynów." +#: src/app/main/ui/onboarding/newsletter.cljs:71 msgid "onboarding-v2.newsletter.updates" msgstr "Wysyłaj mi aktualizacje produktów (nowe funkcje, wydania, poprawki...)." +#, unused msgid "onboarding-v2.welcome.desc1" msgstr "" "Penpot jest Open Source i jest tworzony przez Kaleidos oraz społeczność, w " "której wiele osób już pomaga sobie nawzajem. Każdy może współpracować " "poprzez:" +#, unused msgid "onboarding-v2.welcome.desc2" msgstr "" "Przestrzeń publiczna do nauki, dzielenia się i dyskusji o Penpot, jego " "teraźniejszości i przyszłości z całą społecznością i głównym zespołem " "Penpot." +#, unused msgid "onboarding-v2.welcome.desc2.title" msgstr "Uczestnictwo w społeczności" +#, unused msgid "onboarding-v2.welcome.desc3" msgstr "" "Gdzie dowiesz się, jak współpracować przy tłumaczeniach, prośbach o nowe " "funkcje, podstawowych treściach, wyszukiwaniu błędów…" +#, unused msgid "onboarding-v2.welcome.desc3.title" msgstr "Przewodnik współtworzenia" +#: src/app/main/ui/onboarding/team_choice.cljs:31 msgid "onboarding-v2.welcome.title" msgstr "Witamy w Penpot!" +#: src/app/main/ui/onboarding/team_choice.cljs:215 msgid "onboarding.choice.team-up.create-team-desc" msgstr "Po nazwaniu swojego zespołu będziesz mógł zapraszać osoby do dołączenia." +#: src/app/main/ui/onboarding/team_choice.cljs:224 msgid "onboarding.choice.team-up.create-team-placeholder" msgstr "Wprowadź nazwę zespołu" +#: src/app/main/ui/dashboard/projects.cljs:89, src/app/main/ui/onboarding/team_choice.cljs:140 msgid "onboarding.choice.team-up.invite-members" msgstr "Zaproś członków" +#: src/app/main/ui/onboarding/team_choice.cljs:141 msgid "onboarding.choice.team-up.invite-members-info" msgstr "" "Pamiętaj, aby uwzględnić wszystkich. Deweloperzy, projektanci, " "managerowie... różnorodność się sumuje :)" +#: src/app/main/ui/dashboard/team.cljs:202, src/app/main/ui/onboarding/team_choice.cljs:146 msgid "onboarding.choice.team-up.roles" msgstr "Zaproś z rolą:" +#, unused msgid "onboarding.newsletter.accept" msgstr "Tak, zasubskrybuj" +#: src/app/main/ui/onboarding/newsletter.cljs:40 msgid "onboarding.newsletter.acceptance-message" msgstr "" "Twoja prośba o subskrypcję została wysłana, wyślemy Ci wiadomość email w " "celu jej potwierdzenia." +#: src/app/main/ui/onboarding/newsletter.cljs:95 msgid "onboarding.newsletter.policy" msgstr "Polityka prywatności." +#: src/app/main/ui/onboarding/newsletter.cljs:60 msgid "onboarding.newsletter.title" msgstr "Chcesz otrzymywać informacje o Penpot?" +#: src/app/main/ui/onboarding/team_choice.cljs:213 msgid "onboarding.team-modal.create-team" msgstr "Utwórz zespół" +#: src/app/main/ui/onboarding/team_choice.cljs:35 msgid "onboarding.team-modal.create-team-desc" msgstr "" "Zespół umożliwia współpracę z innymi użytkownikami Penpota pracującymi nad " "tymi samymi plikami i projektami." +#: src/app/main/ui/onboarding/team_choice.cljs:40 msgid "onboarding.team-modal.create-team-feature-1" msgstr "Nieograniczone pliki i projekty" +#: src/app/main/ui/onboarding/team_choice.cljs:44 msgid "onboarding.team-modal.create-team-feature-2" msgstr "Edycja dla wielu graczy" +#: src/app/main/ui/onboarding/team_choice.cljs:48 msgid "onboarding.team-modal.create-team-feature-3" msgstr "Zarządzanie rolami" +#: src/app/main/ui/onboarding/team_choice.cljs:52 msgid "onboarding.team-modal.create-team-feature-4" msgstr "Nieograniczona liczba członków" +#: src/app/main/ui/onboarding/team_choice.cljs:56 msgid "onboarding.team-modal.create-team-feature-5" msgstr "100% za darmo!" +#: src/app/main/ui/onboarding/templates.cljs:78 msgid "onboarding.templates.subtitle" msgstr "Oto kilka szablonów." +#: src/app/main/ui/onboarding/templates.cljs:77 msgid "onboarding.templates.title" msgstr "Zacznij projektować" +#, unused msgid "onboarding.welcome.alt" msgstr "Penpot" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:99 msgid "profile.recovery.go-to-login" msgstr "Przejdź do logowania" -#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs, src/app/main/ui/workspace/sidebar/options/menus/layer.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs, src/app/main/ui/workspace/sidebar/options/menus/blur.cljs +#: src/app/main/ui/viewer/inspect/exports.cljs:147, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:631, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:137, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:148, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:188, src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:158, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:399, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:410, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:430, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:441, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:458, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:472, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:309, src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:183, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:373, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:389, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:245, src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:172 msgid "settings.multiple" msgstr "Mieszane" # SECTIONS +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:414 msgid "shortcut-section.basics" msgstr "Podstawy" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:420 msgid "shortcut-section.dashboard" msgstr "Kokpit" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:423 msgid "shortcut-section.viewer" msgstr "Widz" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:417 msgid "shortcut-section.workspace" msgstr "Obszar roboczy" # SUBSECTIONS +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:56 msgid "shortcut-subsection.alignment" msgstr "Wyrównanie" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:57 msgid "shortcut-subsection.edit" msgstr "Edytuj" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:58 msgid "shortcut-subsection.general-dashboard" msgstr "Ogólny" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:59 msgid "shortcut-subsection.general-viewer" msgstr "Ogólny" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:60 msgid "shortcut-subsection.main-menu" msgstr "Menu główne" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:61 msgid "shortcut-subsection.modify-layers" msgstr "Modyfikuj warstwy" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:62 msgid "shortcut-subsection.navigation-dashboard" msgstr "Nawigacja" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:63 msgid "shortcut-subsection.navigation-viewer" msgstr "Nawigacja" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:64 msgid "shortcut-subsection.navigation-workspace" msgstr "Nawigacja" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:65 msgid "shortcut-subsection.panels" msgstr "Panele" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:66 msgid "shortcut-subsection.path-editor" msgstr "Ścieżki" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:67 msgid "shortcut-subsection.shape" msgstr "Kształty" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:69 msgid "shortcut-subsection.tools" msgstr "Narzędzia" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:70 msgid "shortcut-subsection.zoom-viewer" msgstr "Przybliżenie" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:71 msgid "shortcut-subsection.zoom-workspace" msgstr "Przybliżenie" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:72 msgid "shortcuts.add-comment" msgstr "Komentarze" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:73 msgid "shortcuts.add-node" msgstr "Dodaj węzeł" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:74 msgid "shortcuts.align-bottom" msgstr "Wyrównaj do dołu" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:76 msgid "shortcuts.align-hcenter" msgstr "Wyrównaj do środka w poziomie" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:78 msgid "shortcuts.align-left" msgstr "Wyrównaj do lewej" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:79 msgid "shortcuts.align-right" msgstr "Wyrównaj do prawej" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:80 msgid "shortcuts.align-top" msgstr "Wyrównaj do góry" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:81 msgid "shortcuts.align-vcenter" msgstr "Wyrównaj do środka w pionie" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:82 msgid "shortcuts.artboard-selection" msgstr "Utwórz obszar kompozycji z wybranych" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:84 msgid "shortcuts.bool-difference" msgstr "Różnica logiczna" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:85 msgid "shortcuts.bool-exclude" msgstr "Wykluczenie logiczne" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:86 msgid "shortcuts.bool-intersection" msgstr "Logiczny punkt przecięcia" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:87 msgid "shortcuts.bool-union" msgstr "Związek logiczny" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:88 msgid "shortcuts.bring-back" msgstr "Przesuń na spód" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:89 msgid "shortcuts.bring-backward" msgstr "Przesuń niżej" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:90 msgid "shortcuts.bring-forward" msgstr "Przesuń wyżej" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:91 msgid "shortcuts.bring-front" msgstr "Przesuń na wierzch" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:92 msgid "shortcuts.clear-undo" msgstr "Wyczyść cofnięcia" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:93 msgid "shortcuts.copy" msgstr "Kopiuj" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:94 msgid "shortcuts.create-component" msgstr "Utwórz komponent" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:95 msgid "shortcuts.create-new-project" msgstr "Stwórz nowy" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:96 msgid "shortcuts.cut" msgstr "Wytnij" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:97 msgid "shortcuts.decrease-zoom" msgstr "Oddal" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:98 msgid "shortcuts.delete" msgstr "Usuń" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:99 msgid "shortcuts.delete-node" msgstr "Usuń węzeł" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:100 msgid "shortcuts.detach-component" msgstr "Odłącz komponent" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:101 msgid "shortcuts.draw-curve" msgstr "Krzywa" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:102 msgid "shortcuts.draw-ellipse" msgstr "Elipsa" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:103 msgid "shortcuts.draw-frame" msgstr "Obszar kompozycji" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:104 msgid "shortcuts.draw-nodes" msgstr "Rysuj ścieżkę" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:105 msgid "shortcuts.draw-path" msgstr "Ścieżka" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:106 msgid "shortcuts.draw-rect" msgstr "Prostokąt" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:107 msgid "shortcuts.draw-text" msgstr "Tekst" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:108 msgid "shortcuts.duplicate" msgstr "Duplikuj" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:109 msgid "shortcuts.escape" msgstr "Anuluj" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:110 msgid "shortcuts.export-shapes" msgstr "Eksportuj kształty" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:111 msgid "shortcuts.fit-all" msgstr "Powiększ, aby dopasować wszystko" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:112 msgid "shortcuts.flip-horizontal" msgstr "Obróć poziomo" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:113 msgid "shortcuts.flip-vertical" msgstr "Obróć pionowo" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:116 msgid "shortcuts.go-to-drafts" msgstr "Idź do szkiców" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:117 msgid "shortcuts.go-to-libs" msgstr "Idź do bibliotek współdzielonych" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:118 msgid "shortcuts.go-to-search" msgstr "Szukaj" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:119 msgid "shortcuts.group" msgstr "Grupa" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:120 msgid "shortcuts.h-distribute" msgstr "Rozłóż w poziomie" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:121 msgid "shortcuts.hide-ui" msgstr "Pokaż/ukryj UI" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:122 msgid "shortcuts.increase-zoom" msgstr "Przybliż" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:123 msgid "shortcuts.insert-image" msgstr "Wstaw obraz" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:125 msgid "shortcuts.join-nodes" msgstr "Połącz węzły" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:131 msgid "shortcuts.make-corner" msgstr "Zrób narożnik" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:132 msgid "shortcuts.make-curve" msgstr "Zrób krzywą" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:133 msgid "shortcuts.mask" msgstr "Maska" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:134 msgid "shortcuts.merge-nodes" msgstr "Scal węzły" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:135 msgid "shortcuts.move" msgstr "Przesuń" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:136 msgid "shortcuts.move-fast-down" msgstr "Szybko w dół" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:137 msgid "shortcuts.move-fast-left" msgstr "Szybko w lewo" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:138 msgid "shortcuts.move-fast-right" msgstr "Szybko w prawo" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:139 msgid "shortcuts.move-fast-up" msgstr "Szybko w górę" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:140 msgid "shortcuts.move-nodes" msgstr "Przesuń węzeł" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:141 msgid "shortcuts.move-unit-down" msgstr "W dół" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:142 msgid "shortcuts.move-unit-left" msgstr "W lewo" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:143 msgid "shortcuts.move-unit-right" msgstr "W prawo" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:144 msgid "shortcuts.move-unit-up" msgstr "W górę" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:145 msgid "shortcuts.next-frame" msgstr "Następny obszar kompozycji" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:516 msgid "shortcuts.not-found" msgstr "Nie znaleziono skrótów" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:146 msgid "shortcuts.opacity-0" msgstr "Ustaw krycie na 100%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:147 msgid "shortcuts.opacity-1" msgstr "Ustaw krycie na 10%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:148 msgid "shortcuts.opacity-2" msgstr "Ustaw krycie na 20%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:149 msgid "shortcuts.opacity-3" msgstr "Ustaw krycie na 30%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:150 msgid "shortcuts.opacity-4" msgstr "Ustaw krycie na 40%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:151 msgid "shortcuts.opacity-5" msgstr "Ustaw krycie na 50%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:152 msgid "shortcuts.opacity-6" msgstr "Ustaw krycie na 60%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:153 msgid "shortcuts.opacity-7" msgstr "Ustaw krycie na 70%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:154 msgid "shortcuts.opacity-8" msgstr "Ustaw krycie na 80%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:155 msgid "shortcuts.opacity-9" msgstr "Ustaw krycie na 90%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:156 msgid "shortcuts.open-color-picker" msgstr "Próbnik kolorów" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:157 msgid "shortcuts.open-comments" msgstr "Przejdź do sekcji komentarzy widzów" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:158 msgid "shortcuts.open-dashboard" msgstr "Idź do kokpitu" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:159 msgid "shortcuts.open-inspect" msgstr "Przejdź do sekcji kontroli widzów" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:160 msgid "shortcuts.open-interactions" msgstr "Idź do sekcji interakcji widza" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:161 msgid "shortcuts.open-viewer" msgstr "Idż do sekcji interakcji widza" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:162 msgid "shortcuts.open-workspace" msgstr "Idż do obszaru roboczego" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:260 msgid "shortcuts.or" msgstr " lub " +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:163 msgid "shortcuts.paste" msgstr "Wklej" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:164 msgid "shortcuts.prev-frame" msgstr "Poprzedni artboard" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:165 msgid "shortcuts.redo" msgstr "Ponów" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:166 msgid "shortcuts.reset-zoom" msgstr "Resetuj powiększenie" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:168 msgid "shortcuts.search-placeholder" msgstr "Szukaj skrótów" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:169 msgid "shortcuts.select-all" msgstr "Wybierz wszystko" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:173 msgid "shortcuts.separate-nodes" msgstr "Oddziel węzły" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:174 msgid "shortcuts.show-pixel-grid" msgstr "Pokaż/ukryj siatkę pikseli" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:175 msgid "shortcuts.show-shortcuts" msgstr "Pokaż/ukryj skróty" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:176 msgid "shortcuts.snap-nodes" msgstr "Przyciągaj do węzłów" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:177 msgid "shortcuts.snap-pixel-grid" msgstr "Przyciągaj do siatki pikseli" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:178 msgid "shortcuts.start-editing" msgstr "Rozpocznij edycję" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:179 msgid "shortcuts.start-measure" msgstr "Rozpocznij pomiary" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:180 msgid "shortcuts.stop-measure" msgstr "Zakończ pomiary" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:185 msgid "shortcuts.thumbnail-set" msgstr "Ustaw miniaturki" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:496, src/app/main/ui/workspace/sidebar/shortcuts.cljs:505 msgid "shortcuts.title" msgstr "Skróty klawiaturowe" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:186 msgid "shortcuts.toggle-alignment" msgstr "Przełącz dynamiczne wyrównanie" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:187 msgid "shortcuts.toggle-assets" msgstr "Przełącz zasoby" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:188 msgid "shortcuts.toggle-colorpalette" msgstr "Przełącz paletę kolorów" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:189 msgid "shortcuts.toggle-focus-mode" msgstr "Przełącz tryb skupienia" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:190 msgid "shortcuts.toggle-fullscreen" msgstr "Przełącz tryb pełnoekranowy" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:192 msgid "shortcuts.toggle-history" msgstr "Przełącz historię" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:193 msgid "shortcuts.toggle-layers" msgstr "Przełącz warstwy" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:194 msgid "shortcuts.toggle-layout-flex" msgstr "Dodaj/usuń flex układu" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:196 msgid "shortcuts.toggle-lock" msgstr "Zablokuj wybrane" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:197 msgid "shortcuts.toggle-lock-size" msgstr "Zablokuj proporcje" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:202 msgid "shortcuts.toggle-textpalette" msgstr "Przełącz paletę tekstu" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:205 msgid "shortcuts.toggle-zoom-style" msgstr "Przełącz sposób powiększania" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:207 msgid "shortcuts.undo" msgstr "Cofnij" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:208 msgid "shortcuts.ungroup" msgstr "Rozgrupuj" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:209 msgid "shortcuts.unmask" msgstr "Usuń maskę" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:210 msgid "shortcuts.v-distribute" msgstr "Rozłóż w pionie" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:213 msgid "shortcuts.zoom-selected" msgstr "Przybliż wybrane" -#: src/app/main/ui/dashboard/files.cljs +#: src/app/main/ui/dashboard/files.cljs:158 msgid "title.dashboard.files" msgstr "%s - Penpot" -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:37 msgid "title.dashboard.font-providers" msgstr "Dostawcy Fontów - %s - Penpot" -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:36 msgid "title.dashboard.fonts" msgstr "Fonty - %s - Penpot" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:320 msgid "title.dashboard.projects" msgstr "Projekty - %s - Penpot" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:32 msgid "title.dashboard.search" msgstr "Szukaj - %s - Penpot" -#: src/app/main/ui/dashboard/libraries.cljs +#: src/app/main/ui/dashboard/libraries.cljs:44 msgid "title.dashboard.shared-libraries" msgstr "Biblioteki Współdzielone - %s - Penpot" -#: src/app/main/ui/auth/verify_token.cljs, src/app/main/ui/auth.cljs +#: src/app/main/ui/auth/verify_token.cljs:68, src/app/main/ui/auth.cljs:54 msgid "title.default" msgstr "Penpot — swoboda projektowania dla zespołów" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:110 msgid "title.settings.feedback" msgstr "Przekaż opinię - Penpot" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:80 msgid "title.settings.options" msgstr "Ustawienia - Penpot" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:115 msgid "title.settings.password" msgstr "Hasło - Penpot" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:115 msgid "title.settings.profile" msgstr "Profil - Penpot" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:727 msgid "title.team-invitations" msgstr "Zaproszenia - %s - Penpot" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:493 msgid "title.team-members" msgstr "Członkowie - %s - Penpot" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1036 msgid "title.team-settings" msgstr "Ustawienia - %s - Penpot" +#: src/app/main/ui/dashboard/team.cljs:989 msgid "title.team-webhooks" msgstr "Webhooki - %s - Penpot" -#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs +#: src/app/main/ui/viewer.cljs:419 msgid "title.viewer" msgstr "%s - Tryb wyświetlania - Penpot" -#: src/app/main/ui/workspace.cljs +#: src/app/main/ui/workspace.cljs:190 msgid "title.workspace" msgstr "%s - Penpot" +#: src/app/main/ui.cljs:144 msgid "viewer.breaking-change.description" msgstr "" "Ten udostępniany link jest już nieważny. Utwórz nowy lub poproś właściciela " "o nowy." +#: src/app/main/ui.cljs:143 msgid "viewer.breaking-change.message" msgstr "Wybacz!" -#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs +#: src/app/main/ui/viewer.cljs:569 msgid "viewer.empty-state" msgstr "Na stronie nie znaleziono obszarów kompozycji." -#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs +#: src/app/main/ui/viewer.cljs:574 msgid "viewer.frame-not-found" msgstr "Obszar kompozycji nie znaleziony." +#: src/app/main/ui/viewer/header.cljs:336 msgid "viewer.header.comments-section" msgstr "Komentarze (%s)" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/interactions.cljs:292 msgid "viewer.header.dont-show-interactions" msgstr "Nie pokazuj interakcji" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/header.cljs:188 msgid "viewer.header.fullscreen" msgstr "Pełny ekran" +#: src/app/main/ui/viewer/header.cljs:345 msgid "viewer.header.inspect-section" msgstr "Sprawdź (%s)" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/interactions.cljs:282 msgid "viewer.header.interactions" msgstr "Interakcje" +#: src/app/main/ui/viewer/header.cljs:327 msgid "viewer.header.interactions-section" msgstr "Interakcje (%s)" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/share_link.cljs:187 msgid "viewer.header.share.copy-link" msgstr "Kopiuj link" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/interactions.cljs:300 msgid "viewer.header.show-interactions" msgstr "Pokaż interakcje" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/interactions.cljs:311 msgid "viewer.header.show-interactions-on-click" msgstr "Pokaż interakcje po kliknięciu" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/header.cljs:231 msgid "viewer.header.sitemap" msgstr "Mapa strony" -#, fuzzy +#: src/app/main/ui/dashboard/team.cljs:948 msgid "webhooks.last-delivery.success" msgstr "Ostatnia wysyłka przebiegła pomyślnie." -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:58 msgid "workspace.align.hcenter" msgstr "Wyrównaj do środka w poziomie (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:74 msgid "workspace.align.hdistribute" msgstr "Rozłóż odstępy w poziomie (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:50 msgid "workspace.align.hleft" msgstr "Wyrównaj do lewej (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:66 msgid "workspace.align.hright" msgstr "Wyrównaj do prawej (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:99 msgid "workspace.align.vbottom" msgstr "Wyrównaj do dołu (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:91 msgid "workspace.align.vcenter" msgstr "Wyrównaj do środka w pionie (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:104 msgid "workspace.align.vdistribute" msgstr "Rozłóż odstępy w pionie (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:83 msgid "workspace.align.vtop" msgstr "Wyrównaj do góry (%s)" #: src/app/main/ui/workspace/sidebar/assets.cljs +#, unused msgid "workspace.assets.assets" msgstr "Zasoby" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets.cljs:134 msgid "workspace.assets.box-filter-all" msgstr "Wszystkie zasoby" -#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/dashboard/grid.cljs:130, src/app/main/ui/dashboard/grid.cljs:162, src/app/main/ui/workspace/sidebar/assets/colors.cljs:485, src/app/main/ui/workspace/sidebar/assets.cljs:150 msgid "workspace.assets.colors" msgstr "Kolory" -#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/dashboard/grid.cljs:126, src/app/main/ui/dashboard/grid.cljs:141, src/app/main/ui/workspace/sidebar/assets/components.cljs:513, src/app/main/ui/workspace/sidebar/assets.cljs:139 msgid "workspace.assets.components" msgstr "Komponenty" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:131 msgid "workspace.assets.create-group" msgstr "Utwórz grupę" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:142 msgid "workspace.assets.create-group-hint" msgstr "" "Twoje elementy zostaną automatycznie nazwane jako „nazwa grupy / nazwa " "elementu”" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/context_menu.cljs:529, src/app/main/ui/workspace/sidebar/assets/colors.cljs:251, src/app/main/ui/workspace/sidebar/assets/components.cljs:577, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:424, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:443 msgid "workspace.assets.delete" msgstr "Usuń" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/context_menu.cljs:534, src/app/main/ui/workspace/sidebar/assets/components.cljs:572 msgid "workspace.assets.duplicate" msgstr "Duplikuj" -#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:247, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:439 msgid "workspace.assets.edit" msgstr "Edytuj" -#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/graphics.cljs:384, src/app/main/ui/workspace/sidebar/assets.cljs:145 msgid "workspace.assets.graphics" msgstr "Grafika" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:255, src/app/main/ui/workspace/sidebar/assets/components.cljs:581, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:428, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:448 msgid "workspace.assets.group" msgstr "Grupa" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:141 msgid "workspace.assets.group-name" msgstr "Nazwa grupy" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets.cljs:168 msgid "workspace.assets.libraries" msgstr "Biblioteki" +#: src/app/main/ui/workspace/sidebar/assets/file_library.cljs:62, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:347 msgid "workspace.assets.local-library" msgstr "lokalna biblioteka" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/file_library.cljs:295 msgid "workspace.assets.not-found" msgstr "Nie znaleziono zasobów" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/context_menu.cljs:532, src/app/main/ui/workspace/sidebar/assets/colors.cljs:243, src/app/main/ui/workspace/sidebar/assets/components.cljs:566, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:421, src/app/main/ui/workspace/sidebar/assets/groups.cljs:63, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:434 msgid "workspace.assets.rename" msgstr "Zmień nazwę" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:132 msgid "workspace.assets.rename-group" msgstr "Zmień nazwę grupy" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets.cljs:173 msgid "workspace.assets.search" msgstr "Szukaj zasobów" #: src/app/main/ui/workspace/sidebar/assets.cljs +#, unused msgid "workspace.assets.selected-count" msgid_plural "workspace.assets.selected-count" msgstr[0] "Wybrano %s element" msgstr[1] "Wybrano %s elementy" msgstr[2] "Wybrano %s elementów" -#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/dashboard/grid.cljs:134, src/app/main/ui/dashboard/grid.cljs:189, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:397, src/app/main/ui/workspace/sidebar/assets.cljs:155 msgid "workspace.assets.typography" msgstr "Typografia" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused msgid "workspace.assets.typography.font-id" msgstr "Font" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:505 msgid "workspace.assets.typography.font-size" msgstr "Rozmiar" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:501 msgid "workspace.assets.typography.font-variant-id" msgstr "Wariant" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:523 msgid "workspace.assets.typography.go-to-edit" msgstr "Przejdź do pliku biblioteki stylów, żeby edytować" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:513 msgid "workspace.assets.typography.letter-spacing" msgstr "Odstępy między literami" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:509 msgid "workspace.assets.typography.line-height" msgstr "Wysokość Linii" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, src/app/main/ui/inspect/attributes/text.cljs, src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/dashboard/grid.cljs:199, src/app/main/ui/workspace/libraries.cljs:461, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:464, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:489, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:596, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:615 msgid "workspace.assets.typography.sample" msgstr "Ag" +#, unused msgid "workspace.assets.typography.text-styles" msgstr "Style tekstu" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:517 msgid "workspace.assets.typography.text-transform" msgstr "Transformacja tekstu" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:66 msgid "workspace.assets.ungroup" msgstr "Rozgrupuj" +#: src/app/main/ui/workspace/sidebar/layers.cljs:525 msgid "workspace.focus.focus-mode" msgstr "Tryb skupienia" +#: src/app/main/ui/workspace/context_menu.cljs:287, src/app/main/ui/workspace/context_menu.cljs:553 msgid "workspace.focus.focus-off" msgstr "Tryb skupienia wyłączony" +#: src/app/main/ui/workspace/context_menu.cljs:286 msgid "workspace.focus.focus-on" msgstr "Tryb skupienia włączony" +#, unused msgid "workspace.focus.selection" msgstr "Zaznaczenie" -#: src/app/main/data/workspace/libraries.cljs, src/app/main/ui/components/color_bullet.cljs +#: src/app/util/color.cljs:34 msgid "workspace.gradients.linear" msgstr "Gradient liniowy" -#: src/app/main/data/workspace/libraries.cljs, src/app/main/ui/components/color_bullet.cljs +#: src/app/util/color.cljs:35 msgid "workspace.gradients.radial" msgstr "Gradient radialny" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:238 msgid "workspace.header.menu.disable-dynamic-alignment" msgstr "Wyłącz wyrównanie dynamiczne" #: src/app/main/ui/workspace/header.cljs +#, unused msgid "workspace.header.menu.disable-scale-text" msgstr "Wyłącz skalowanie tekstu" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:223 msgid "workspace.header.menu.disable-snap-guides" msgstr "Wyłącz przyciąganie do prowadnic" +#: src/app/main/ui/workspace/main_menu.cljs:253 msgid "workspace.header.menu.disable-snap-pixel-grid" msgstr "Wyłącz przyciąganie do piksela" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:239 msgid "workspace.header.menu.enable-dynamic-alignment" msgstr "Włącz dynamiczne wyrównanie" #: src/app/main/ui/workspace/header.cljs +#, unused msgid "workspace.header.menu.enable-scale-text" msgstr "Włącz skalowanie tekstu" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:224 msgid "workspace.header.menu.enable-snap-guides" msgstr "Przyciągaj do prowadnic" +#: src/app/main/ui/workspace/main_menu.cljs:254 msgid "workspace.header.menu.enable-snap-pixel-grid" msgstr "Włącz przyciąganie do piksela" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:382 msgid "workspace.header.menu.hide-artboard-names" msgstr "Ukryj nazwy obszarów kompozycji" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:353 msgid "workspace.header.menu.hide-palette" msgstr "Ukryj paletę kolorów" +#: src/app/main/ui/workspace/main_menu.cljs:394 msgid "workspace.header.menu.hide-pixel-grid" msgstr "Ukryj siatkę pikseli" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:320 msgid "workspace.header.menu.hide-rules" msgstr "Ukryj linijki" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:367 msgid "workspace.header.menu.hide-textpalette" msgstr "Ukryj paletę fontów" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:731 msgid "workspace.header.menu.option.edit" msgstr "Edytuj" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:720 msgid "workspace.header.menu.option.file" msgstr "Plik" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:777 msgid "workspace.header.menu.option.help-info" msgstr "Pomoc i info" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:753 msgid "workspace.header.menu.option.preferences" msgstr "Ustawienia" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:742 msgid "workspace.header.menu.option.view" msgstr "Widok" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:432 msgid "workspace.header.menu.select-all" msgstr "Zaznacz wszystko" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:383 msgid "workspace.header.menu.show-artboard-names" msgstr "Pokaz nazwy obszarów kompozycji" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:354 msgid "workspace.header.menu.show-palette" msgstr "Pokaż paletę kolorów" +#: src/app/main/ui/workspace/main_menu.cljs:395 msgid "workspace.header.menu.show-pixel-grid" msgstr "Pokaż siatkę pikseli" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:321 msgid "workspace.header.menu.show-rules" msgstr "Pokaż linijki" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:368 msgid "workspace.header.menu.show-textpalette" msgstr "Pokaż paletę fontów" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/viewer/header.cljs:98, src/app/main/ui/workspace/right_header.cljs:120 msgid "workspace.header.reset-zoom" msgstr "Resetuj" #: src/app/main/ui/workspace/header.cljs +#, unused msgid "workspace.header.save-error" msgstr "Błąd przy zapisywaniu" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/right_header.cljs:52 msgid "workspace.header.saved" msgstr "Zapisano" #: src/app/main/ui/workspace/header.cljs +#, unused msgid "workspace.header.saving" msgstr "Zapisywanie" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/right_header.cljs:42, src/app/main/ui/workspace/right_header.cljs:47 msgid "workspace.header.unsaved" msgstr "Niezapisane zmiany" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/right_header.cljs:239 msgid "workspace.header.viewer" msgstr "Tryb widoku (%s)" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/viewer/header.cljs:109 msgid "workspace.header.zoom-fill" msgstr "Wypełnij — skaluj, aby wypełnić" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/viewer/header.cljs:102 msgid "workspace.header.zoom-fit" msgstr "Dopasuj — zmniejsz, aby dopasować" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/right_header.cljs:123 msgid "workspace.header.zoom-fit-all" msgstr "Powiększ, aby dopasować wszystko" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/viewer/header.cljs:116 msgid "workspace.header.zoom-full-screen" msgstr "Pełny ekran" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/right_header.cljs:130 msgid "workspace.header.zoom-selected" msgstr "Powiększ wybrane" #: src/app/main/ui/workspace/libraries.cljs +#, unused msgid "workspace.libraries.add" msgstr "Dodaj" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:80, src/app/main/ui/workspace/libraries.cljs:99 msgid "workspace.libraries.colors" msgstr "%s kolory" -#: src/app/main/ui/workspace/colorpicker/libraries.cljs, src/app/main/ui/workspace/colorpalette.cljs +#: src/app/main/ui/workspace/color_palette_ctx_menu.cljs:60, src/app/main/ui/workspace/colorpicker/libraries.cljs:73, src/app/main/ui/workspace/text_palette_ctx_menu.cljs:50 msgid "workspace.libraries.colors.file-library" msgstr "Biblioteka plików" #: src/app/main/ui/workspace/colorpicker.cljs +#, unused msgid "workspace.libraries.colors.hsv" msgstr "HSV" -#: src/app/main/ui/workspace/colorpicker/libraries.cljs, src/app/main/ui/workspace/colorpalette.cljs +#: src/app/main/ui/workspace/color_palette_ctx_menu.cljs:82, src/app/main/ui/workspace/colorpicker/libraries.cljs:72 msgid "workspace.libraries.colors.recent-colors" msgstr "Bieżące kolory" #: src/app/main/ui/workspace/colorpicker.cljs +#, unused msgid "workspace.libraries.colors.rgb-complementary" msgstr "RGB - Komplementarne" #: src/app/main/ui/workspace/colorpicker.cljs +#, unused msgid "workspace.libraries.colors.rgba" msgstr "RGBA" -#: src/app/main/ui/workspace/colorpicker.cljs +#: src/app/main/ui/workspace/colorpicker.cljs:372 msgid "workspace.libraries.colors.save-color" msgstr "Zapisz styl koloru" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:74, src/app/main/ui/workspace/libraries.cljs:91 msgid "workspace.libraries.components" msgstr "%s komponenty" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:215 msgid "workspace.libraries.file-library" msgstr "Biblioteka plików" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:77, src/app/main/ui/workspace/libraries.cljs:95 msgid "workspace.libraries.graphics" msgstr "%s grafiki" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:209 msgid "workspace.libraries.in-this-file" msgstr "BIBLIOTEKI W TYM PLIKU" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:526, src/app/main/ui/workspace/libraries.cljs:531 msgid "workspace.libraries.libraries" msgstr "BIBLIOTEKI" #: src/app/main/ui/workspace/libraries.cljs +#, unused msgid "workspace.libraries.library" msgstr "BIBLIOTEKA" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:380 msgid "workspace.libraries.no-libraries-need-sync" msgstr "Nie ma Bibliotek Współdzielonych, które wymagają aktualizacji" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:299 msgid "workspace.libraries.no-matches-for" msgstr "Nie znaleziono dopasowań dla “%s“" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:296 msgid "workspace.libraries.no-shared-libraries-available" msgstr "Brak dostępnych Bibliotek Współdzielonych" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:260 msgid "workspace.libraries.search-shared-libraries" msgstr "Przeszukaj Biblioteki Współdzielone" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:256 msgid "workspace.libraries.shared-libraries" msgstr "BIBLIOTEKI WSPÓŁDZIELONE" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:308 msgid "workspace.libraries.text.multiple-typography" msgstr "Wiele typografii" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:311 msgid "workspace.libraries.text.multiple-typography-tooltip" msgstr "Odlinkuj wszystkie typografie" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:83, src/app/main/ui/workspace/libraries.cljs:103 msgid "workspace.libraries.typography" msgstr "%s typografie" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:402 msgid "workspace.libraries.update" msgstr "Aktualizuj" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:536 msgid "workspace.libraries.updates" msgstr "AKTUALIZACJE" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:737 msgid "workspace.options.add-interaction" msgstr "Kliknij przycisk +, aby dodać interakcje." -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:86, src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:102 msgid "workspace.options.blur-options.title" msgstr "Rozmycie" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:85 msgid "workspace.options.blur-options.title.group" msgstr "Rozmycie grupowe" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:84 msgid "workspace.options.blur-options.title.multiple" msgstr "Rozmycie zaznaczenia" -#: src/app/main/ui/workspace/sidebar/options/page.cljs +#: src/app/main/ui/workspace/sidebar/options/page.cljs:32, src/app/main/ui/workspace/sidebar/options/page.cljs:39 msgid "workspace.options.canvas-background" msgstr "Tło płótna" +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:548 msgid "workspace.options.clip-content" msgstr "Przytnij treść" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:600, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:605 msgid "workspace.options.component" msgstr "Komponent" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:163 msgid "workspace.options.constraints" msgstr "Ograniczenia" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:150 msgid "workspace.options.constraints.bottom" msgstr "Dół" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:141, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:152 msgid "workspace.options.constraints.center" msgstr "Środek" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:229 msgid "workspace.options.constraints.fix-when-scrolling" msgstr "Zatrzymaj podczas przewijania" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:138 msgid "workspace.options.constraints.left" msgstr "Lewo" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:140 msgid "workspace.options.constraints.leftright" msgstr "Lewo i prawo" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:139 msgid "workspace.options.constraints.right" msgstr "Prawo" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:142, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:153 msgid "workspace.options.constraints.scale" msgstr "Skala" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:149 msgid "workspace.options.constraints.top" msgstr "Góra" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:151 msgid "workspace.options.constraints.topbottom" msgstr "Góra i dół" -#: src/app/main/ui/workspace/sidebar/options.cljs +#: src/app/main/ui/workspace/sidebar/options.cljs:112 msgid "workspace.options.design" msgstr "Projektowanie" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs +#: src/app/main/ui/viewer/inspect/exports.cljs:139 msgid "workspace.options.export" msgstr "Eksport" #: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs +#, unused msgid "workspace.options.export-multiple" msgstr "Eksportuj zaznaczone" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs +#: src/app/main/ui/viewer/inspect/exports.cljs:195, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:237 msgid "workspace.options.export-object" msgid_plural "workspace.options.export-object" msgstr[0] "Eksportuj 1 element" msgstr[1] "Eksportuj %s elementy" msgstr[2] "Eksportuj %s elementów" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs +#: src/app/main/ui/viewer/inspect/exports.cljs:178, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:219 msgid "workspace.options.export.suffix" msgstr "Przyrostek" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs, src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/export.cljs:240 msgid "workspace.options.exporting-complete" msgstr "Eksportowanie zakończone" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs, src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/export.cljs:172, src/app/main/ui/export.cljs:241, src/app/main/ui/viewer/inspect/exports.cljs:194, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:236 msgid "workspace.options.exporting-object" msgstr "Eksportowanie…" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs, src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/export.cljs:239 msgid "workspace.options.exporting-object-error" msgstr "Eksport nie powiódł się" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs, src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/export.cljs:242 msgid "workspace.options.exporting-object-slow" msgstr "Eksportowanie niespodziewanie powolne" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:49, src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:174 msgid "workspace.options.fill" msgstr "Wypełnij" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:178 msgid "workspace.options.flows.add-flow-start" msgstr "Dodaj początek flow" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#, unused msgid "workspace.options.flows.flow-start" msgstr "Początek Flow" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:161 msgid "workspace.options.flows.flow-starts" msgstr "Początek flow" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:29 msgid "workspace.options.grid.auto" msgstr "Auto" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:157 msgid "workspace.options.grid.column" msgstr "Kolumny" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused msgid "workspace.options.grid.grid-title" msgstr "Siatka" +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:196, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:237 msgid "workspace.options.grid.params.color" msgstr "Kolor" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused msgid "workspace.options.grid.params.columns" msgstr "Kolumny" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:259 msgid "workspace.options.grid.params.gutter" msgstr "Rowek" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:246 msgid "workspace.options.grid.params.height" msgstr "Wysokość" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:270 msgid "workspace.options.grid.params.margin" msgstr "Margines" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused msgid "workspace.options.grid.params.rows" msgstr "Rzędy" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:216, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:290 msgid "workspace.options.grid.params.set-default" msgstr "Ustaw jako domyślne" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused msgid "workspace.options.grid.params.size" msgstr "Rozmiar" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused msgid "workspace.options.grid.params.type" msgstr "Typ" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:231 msgid "workspace.options.grid.params.type.bottom" msgstr "Dół" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:229 msgid "workspace.options.grid.params.type.center" msgstr "Środek" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:228 msgid "workspace.options.grid.params.type.left" msgstr "Lewo" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:232 msgid "workspace.options.grid.params.type.right" msgstr "Prawo" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:225 msgid "workspace.options.grid.params.type.stretch" msgstr "Rozciągnij" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:227 msgid "workspace.options.grid.params.type.top" msgstr "Góra" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:211, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:288 msgid "workspace.options.grid.params.use-default" msgstr "Użyj domyślnych" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:247 msgid "workspace.options.grid.params.width" msgstr "Szerokość" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:158 msgid "workspace.options.grid.row" msgstr "Rzędy" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:156 msgid "workspace.options.grid.square" msgstr "Kwadrat" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:48 msgid "workspace.options.group-fill" msgstr "Wypełnienie grupy" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:42 msgid "workspace.options.group-stroke" msgstr "Obrys grupy" +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:406 msgid "workspace.options.height" msgstr "Wysokość" +#: src/app/main/ui/workspace/sidebar/options.cljs:161 msgid "workspace.options.inspect" msgstr "Sprawdź" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:468 msgid "workspace.options.interaction-action" msgstr "Akcja" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:41, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:367 msgid "workspace.options.interaction-after-delay" msgstr "Po opóźnieniu" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:614 msgid "workspace.options.interaction-animation" msgstr "Animacja" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:406 msgid "workspace.options.interaction-animation-dissolve" msgstr "Rozpłynięcie" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:405 msgid "workspace.options.interaction-animation-none" msgstr "Brak" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:412 msgid "workspace.options.interaction-animation-push" msgstr "Pchnięcie" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:407 msgid "workspace.options.interaction-animation-slide" msgstr "Poślizg" +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:391 msgid "workspace.options.interaction-auto" msgstr "auto" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:604 msgid "workspace.options.interaction-background" msgstr "Dodaj nakładkę tła" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:590 msgid "workspace.options.interaction-close-outside" msgstr "Zamknij po kliknięciu na zewnątrz" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:372 msgid "workspace.options.interaction-close-overlay" msgstr "Zamknij nakładkę" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:56 msgid "workspace.options.interaction-close-overlay-dest" msgstr "Zamknij nakładkę: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:456 msgid "workspace.options.interaction-delay" msgstr "Opóźnienie" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:478 msgid "workspace.options.interaction-destination" msgstr "Miejsce docelowe" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:661 msgid "workspace.options.interaction-duration" msgstr "Czas trwania" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:674 msgid "workspace.options.interaction-easing" msgstr "Złagodzenie" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:416 msgid "workspace.options.interaction-easing-ease" msgstr "Złagódź" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:417 msgid "workspace.options.interaction-easing-ease-in" msgstr "Łagodne wejście" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:419 msgid "workspace.options.interaction-easing-ease-in-out" msgstr "Łagodne wejście wyjście" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:418 msgid "workspace.options.interaction-easing-ease-out" msgstr "Łagodne wyjście" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:415 msgid "workspace.options.interaction-easing-linear" msgstr "Liniowy" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#, unused msgid "workspace.options.interaction-in" msgstr "Wejście" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:39, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:364 msgid "workspace.options.interaction-mouse-enter" msgstr "Wejście myszy" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:40, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:365 msgid "workspace.options.interaction-mouse-leave" msgstr "Wyjście myszy" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:458, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:459, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:464, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:663, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:665, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:669 msgid "workspace.options.interaction-ms" msgstr "ms" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:369 msgid "workspace.options.interaction-navigate-to" msgstr "Nawiguj do" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:50 msgid "workspace.options.interaction-navigate-to-dest" msgstr "Nawiguj do: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:51, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:53, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:55, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:380 msgid "workspace.options.interaction-none" msgstr "(nie ustawiono)" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:691 msgid "workspace.options.interaction-offset-effect" msgstr "Efekt przesunięcia" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:35, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:360 msgid "workspace.options.interaction-on-click" msgstr "Na kliknięcie" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:370 msgid "workspace.options.interaction-open-overlay" msgstr "Otwórz nakładkę" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:52 msgid "workspace.options.interaction-open-overlay-dest" msgstr "Otwórz nakładkę: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:59, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:374 msgid "workspace.options.interaction-open-url" msgstr "Otwórz URL" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#, unused msgid "workspace.options.interaction-out" msgstr "Wyjście" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:403 msgid "workspace.options.interaction-pos-bottom-center" msgstr "Dolny środek" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:401 msgid "workspace.options.interaction-pos-bottom-left" msgstr "Dolne lewo" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:402 msgid "workspace.options.interaction-pos-bottom-right" msgstr "Dolne prawo" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:397 msgid "workspace.options.interaction-pos-center" msgstr "Środek" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:396 msgid "workspace.options.interaction-pos-manual" msgstr "Ręczna" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:400 msgid "workspace.options.interaction-pos-top-center" msgstr "Górny środek" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:398 msgid "workspace.options.interaction-pos-top-left" msgstr "Górne lewo" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:399 msgid "workspace.options.interaction-pos-top-right" msgstr "Górne prawo" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:524 msgid "workspace.options.interaction-position" msgstr "Pozycja" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:494 msgid "workspace.options.interaction-preserve-scroll" msgstr "Zachowaj pozycję przewijania" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:58, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:373 msgid "workspace.options.interaction-prev-screen" msgstr "Poprzedni ekran" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:515 msgid "workspace.options.interaction-relative-to" msgstr "Względny do" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:57, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:379, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:393, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:394 msgid "workspace.options.interaction-self" msgstr "własne" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:371 msgid "workspace.options.interaction-toggle-overlay" msgstr "Przełącz nakładkę" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:54 msgid "workspace.options.interaction-toggle-overlay-dest" msgstr "Przełącz nakładkę: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:445 msgid "workspace.options.interaction-trigger" msgstr "Wyzwalacz" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:503 msgid "workspace.options.interaction-url" msgstr "URL" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:37, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:362 msgid "workspace.options.interaction-while-hovering" msgstr "Przy najechaniu" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:38, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:363 msgid "workspace.options.interaction-while-pressing" msgstr "Przy naciśnięciu" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:724 msgid "workspace.options.interactions" msgstr "Interakcje" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:137 msgid "workspace.options.layer-options.blend-mode.color" msgstr "Kolor" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:126 msgid "workspace.options.layer-options.blend-mode.color-burn" msgstr "Ściemnianie" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:129 msgid "workspace.options.layer-options.blend-mode.color-dodge" msgstr "Rozjaśnienie" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:124 msgid "workspace.options.layer-options.blend-mode.darken" msgstr "Ciemniej" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:133 msgid "workspace.options.layer-options.blend-mode.difference" msgstr "Różnica" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:134 msgid "workspace.options.layer-options.blend-mode.exclusion" msgstr "Wykluczenie" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:132 msgid "workspace.options.layer-options.blend-mode.hard-light" msgstr "Ostre światło" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:135 msgid "workspace.options.layer-options.blend-mode.hue" msgstr "Barwa" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:127 msgid "workspace.options.layer-options.blend-mode.lighten" msgstr "Jaśniej" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:138 msgid "workspace.options.layer-options.blend-mode.luminosity" msgstr "Jasność" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:125 msgid "workspace.options.layer-options.blend-mode.multiply" msgstr "Mnożenie" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:123 msgid "workspace.options.layer-options.blend-mode.normal" msgstr "Normalny" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:130 msgid "workspace.options.layer-options.blend-mode.overlay" msgstr "Nakładka" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:136 msgid "workspace.options.layer-options.blend-mode.saturation" msgstr "Nasycenie" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:128 msgid "workspace.options.layer-options.blend-mode.screen" msgstr "Ekran" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:131 msgid "workspace.options.layer-options.blend-mode.soft-light" msgstr "Łagodne światło" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#, unused msgid "workspace.options.layer-options.title" msgstr "Warstwa" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#, unused msgid "workspace.options.layer-options.title.group" msgstr "Zgrupowane warstwy" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#, unused msgid "workspace.options.layer-options.title.multiple" msgstr "Wybrane warstwy" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout-item.advanced-ops" msgstr "Zaawansowane opcje" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:564 msgid "workspace.options.layout-item.layout-item-max-h" msgstr "Maks.Wysokość" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:531 msgid "workspace.options.layout-item.layout-item-max-w" msgstr "Maks.Szerokość" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:548 msgid "workspace.options.layout-item.layout-item-min-h" msgstr "Min.Wysokość" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:515 msgid "workspace.options.layout-item.layout-item-min-w" msgstr "Min.Szerokość" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout-item.title.layout-item-max-h" msgstr "Maksymalna wysokość" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout-item.title.layout-item-max-w" msgstr "Maksymalna szerokość" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout-item.title.layout-item-min-h" msgstr "Minimalna wysokość" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout-item.title.layout-item-min-w" msgstr "Minimalna szerokość" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.bottom" msgstr "Dół" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.direction.column" msgstr "Kolumna" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.direction.row" msgstr "Wiersz" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.gap" msgstr "Przerwa" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.left" msgstr "Lewo" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout.margin" msgstr "Margines" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout.margin-all" msgstr "Wszystkie strony" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout.margin-simple" msgstr "Prosty margines" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.packed" msgstr "zapakowane" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.padding" msgstr "Dopełnienie" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.padding-all" msgstr "Wszystkie strony" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.padding-simple" msgstr "Proste dopełnienie" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.right" msgstr "Prawa" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.space-around" msgstr "przestrzeń wokół" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.space-between" msgstr "przestrzeń pomiędzy" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.top" msgstr "Góra" -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:146 msgid "workspace.options.more-colors" msgstr "Więcej kolorów" -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:123 msgid "workspace.options.more-lib-colors" msgstr "Więcej kolorów z biblioteki" +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:161 msgid "workspace.options.opacity" msgstr "Nieprzezroczystość" #: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#, unused msgid "workspace.options.position" msgstr "Pozycja" -#: src/app/main/ui/workspace/sidebar/options.cljs +#: src/app/main/ui/workspace/sidebar/options.cljs:157 msgid "workspace.options.prototype" msgstr "Prototyp" +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:469, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:481 msgid "workspace.options.radius" msgstr "Promień" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:513 msgid "workspace.options.radius-bottom-left" msgstr "Dolne lewo" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:522 msgid "workspace.options.radius-bottom-right" msgstr "Dolne prawo" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:495 msgid "workspace.options.radius-top-left" msgstr "Górne lewo" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:504 msgid "workspace.options.radius-top-right" msgstr "Górne prawo" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:532 msgid "workspace.options.radius.all-corners" msgstr "Wszystkie rogi" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:533 msgid "workspace.options.radius.single-corners" msgstr "Poszczególne narożniki" +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:183 msgid "workspace.options.recent-fonts" msgstr "Bieżące" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs, src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/export.cljs:284 msgid "workspace.options.retry" msgstr "Ponów" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:451 msgid "workspace.options.rotation" msgstr "Obrót" +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:180 msgid "workspace.options.search-font" msgstr "Szukaj fontu" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:741 msgid "workspace.options.select-a-shape" msgstr "" "Wybierz kształt, obszar roboczy lub grupę, aby przeciągnąć połączenie do " "innego obszaru kompozycji." -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:105 msgid "workspace.options.selection-color" msgstr "Wybrane kolory" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:47 msgid "workspace.options.selection-fill" msgstr "Wypełnienie zaznaczenia" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:41 msgid "workspace.options.selection-stroke" msgstr "Obrys zaznaczenia" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:40, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:198, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:200 msgid "workspace.options.shadow-options.blur" msgstr "Rozmycie" +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:238 msgid "workspace.options.shadow-options.color" msgstr "Kolor cienia" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:144 msgid "workspace.options.shadow-options.drop-shadow" msgstr "Rzuć cień" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:145 msgid "workspace.options.shadow-options.inner-shadow" msgstr "Cień wewnętrzny" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:38, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:186 msgid "workspace.options.shadow-options.offsetx" msgstr "X" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:39, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:224 msgid "workspace.options.shadow-options.offsety" msgstr "Y" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:41, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:211, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:213 msgid "workspace.options.shadow-options.spread" msgstr "Rozłożenie" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:296 msgid "workspace.options.shadow-options.title" msgstr "Cień" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:295 msgid "workspace.options.shadow-options.title.group" msgstr "Cień grupy" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:294 msgid "workspace.options.shadow-options.title.multiple" msgstr "Cień zaznaczenia" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:193 msgid "workspace.options.show-fill-on-export" msgstr "Pokaż przy eksporcie" +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:562 msgid "workspace.options.show-in-viewer" msgstr "Pokaż w trybie przeglądania" -#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:162 msgid "workspace.options.size" msgstr "Rozmiar" -#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:355 msgid "workspace.options.size-presets" msgstr "Wstępne ustawienia rozmiaru" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:43 msgid "workspace.options.stroke" msgstr "Obrys" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#, unused msgid "workspace.options.stroke-cap.circle-marker" msgstr "Okrągły znacznik" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#, unused msgid "workspace.options.stroke-cap.diamond-marker" msgstr "Diamentowy znacznik" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#, unused msgid "workspace.options.stroke-cap.line-arrow" msgstr "Grot linii" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:124 msgid "workspace.options.stroke-cap.none" msgstr "Brak" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:132 msgid "workspace.options.stroke-cap.round" msgstr "Okrągły" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:133 msgid "workspace.options.stroke-cap.square" msgstr "Kwadratowy" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#, unused msgid "workspace.options.stroke-cap.square-marker" msgstr "Kwadratowy znacznik" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#, unused msgid "workspace.options.stroke-cap.triangle-arrow" msgstr "Trójkątny grot" +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:192 msgid "workspace.options.stroke-color" msgstr "Kolor obrysu" +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:165 msgid "workspace.options.stroke-width" msgstr "Szerokość obrysu" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:87 msgid "workspace.options.stroke.center" msgstr "Środek" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:105 msgid "workspace.options.stroke.dashed" msgstr "Przerywany" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:104 msgid "workspace.options.stroke.dotted" msgstr "Kropkowany" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:88 msgid "workspace.options.stroke.inner" msgstr "W środku" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:106 msgid "workspace.options.stroke.mixed" msgstr "Mieszany" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:89 msgid "workspace.options.stroke.outer" msgstr "Na zewnątrz" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:103 msgid "workspace.options.stroke.solid" msgstr "Ciągły" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:115 msgid "workspace.options.text-options.align-bottom" msgstr "Wyrównaj do dołu" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:111 msgid "workspace.options.text-options.align-middle" msgstr "Wyrównaj do środka" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:107 msgid "workspace.options.text-options.align-top" msgstr "Wyrównaj do góry" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:82 msgid "workspace.options.text-options.direction-ltr" msgstr "LTR" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:87 msgid "workspace.options.text-options.direction-rtl" msgstr "RTL" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:149 msgid "workspace.options.text-options.grow-auto-height" msgstr "Automatyczna wysokość" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:145 msgid "workspace.options.text-options.grow-auto-width" msgstr "Automatyczna szerokość" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:141 msgid "workspace.options.text-options.grow-fixed" msgstr "Stały" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:381 msgid "workspace.options.text-options.letter-spacing" msgstr "Odstępy między literami" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:364 msgid "workspace.options.text-options.line-height" msgstr "Wysokość linii" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused msgid "workspace.options.text-options.lowercase" msgstr "małe litery" #: src/app/main/ui/workspace/sidebar/options/menus/text.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused msgid "workspace.options.text-options.none" msgstr "Brak" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:176 msgid "workspace.options.text-options.strikethrough" msgstr "Przekreślenie (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:51 msgid "workspace.options.text-options.text-align-center" msgstr "Wyrównaj do środka (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:59 msgid "workspace.options.text-options.text-align-justify" msgstr "Wyjustuj (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:47 msgid "workspace.options.text-options.text-align-left" msgstr "Wyrównaj do lewej (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:55 msgid "workspace.options.text-options.text-align-right" msgstr "Wyrównaj do prawej (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:189 msgid "workspace.options.text-options.title" msgstr "Tekst" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:188 msgid "workspace.options.text-options.title-group" msgstr "Grupa tekstu" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:187 msgid "workspace.options.text-options.title-selection" msgstr "Tekst zaznaczony" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused msgid "workspace.options.text-options.titlecase" msgstr "Nazwy własne" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:171 msgid "workspace.options.text-options.underline" msgstr "Podkreślenie (%s)" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused msgid "workspace.options.text-options.uppercase" msgstr "DUŻE LITERY" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:745 msgid "workspace.options.use-play-button" msgstr "Użyj przycisku odtwarzania w nagłówku, aby uruchomić widok prototypu." +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:395 msgid "workspace.options.width" msgstr "Szerokość" +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:427 msgid "workspace.options.x" msgstr "Oś X" +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:438 msgid "workspace.options.y" msgstr "Oś Y" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:167 msgid "workspace.path.actions.add-node" msgstr "Dodaj węzeł (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:174 msgid "workspace.path.actions.delete-node" msgstr "Usuń węzeł (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:152 msgid "workspace.path.actions.draw-nodes" msgstr "Rysuj węzły (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:189 msgid "workspace.path.actions.join-nodes" msgstr "Połącz węzły (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:204 msgid "workspace.path.actions.make-corner" msgstr "Do rogu (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:211 msgid "workspace.path.actions.make-curve" msgstr "Do krzywej (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:182 msgid "workspace.path.actions.merge-nodes" msgstr "Połącz węzły (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:159 msgid "workspace.path.actions.move-nodes" msgstr "Przenieś węzły (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:196 msgid "workspace.path.actions.separate-nodes" msgstr "Rozłącz węzły (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:218 msgid "workspace.path.actions.snap-nodes" msgstr "Przyciągnij węzły (%s)" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:441 msgid "workspace.shape.menu.add-flex" msgstr "Dodaj układ flex" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:193 msgid "workspace.shape.menu.back" msgstr "Przesuń na spód" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:190 msgid "workspace.shape.menu.backward" msgstr "Przesuń do tyłu" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:139 msgid "workspace.shape.menu.copy" msgstr "Kopiuj" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:275 msgid "workspace.shape.menu.create-artboard-from-selection" msgstr "Zaznaczone do obszaru kompozycji" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:465 msgid "workspace.shape.menu.create-component" msgstr "Utwórz komponent" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:142 msgid "workspace.shape.menu.cut" msgstr "Wytnij" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:486 msgid "workspace.shape.menu.delete" msgstr "Usuń" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:391 msgid "workspace.shape.menu.delete-flow-start" msgstr "Usuń początek flow" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:432 msgid "workspace.shape.menu.detach-instance" msgstr "Odłącz instancję" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:431 msgid "workspace.shape.menu.detach-instances-in-bulk" msgstr "Odłącz instancje" +#: src/app/main/ui/workspace/context_menu.cljs:335, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:75 msgid "workspace.shape.menu.difference" msgstr "Różnica" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:148 msgid "workspace.shape.menu.duplicate" msgstr "Duplikuj" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:321 msgid "workspace.shape.menu.edit" msgstr "Edytuj" +#: src/app/main/ui/workspace/context_menu.cljs:341 msgid "workspace.shape.menu.exclude" msgstr "Wyklucz" +#: src/app/main/ui/workspace/context_menu.cljs:348, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:89 msgid "workspace.shape.menu.flatten" msgstr "Spłaszcz" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:208 msgid "workspace.shape.menu.flip-horizontal" msgstr "Odwróć w poziomie" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:204 msgid "workspace.shape.menu.flip-vertical" msgstr "Odwróć w pionie" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:394 msgid "workspace.shape.menu.flow-start" msgstr "Początek flow" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:184 msgid "workspace.shape.menu.forward" msgstr "Przesuń do góry" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:187 msgid "workspace.shape.menu.front" msgstr "Przesuń na wierzch" #: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#, unused msgid "workspace.shape.menu.go-main" msgstr "Przejdź do głównego pliku komponentu" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:261 msgid "workspace.shape.menu.group" msgstr "Grupuj" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:363, src/app/main/ui/workspace/sidebar/layer_item.cljs:145 msgid "workspace.shape.menu.hide" msgstr "Ukryj" +#: src/app/main/ui/workspace/context_menu.cljs:548, src/app/main/ui/workspace/main_menu.cljs:408 msgid "workspace.shape.menu.hide-ui" msgstr "Pokaż/Ukryj UI" +#: src/app/main/ui/workspace/context_menu.cljs:338 msgid "workspace.shape.menu.intersection" msgstr "Przecięcie" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:371, src/app/main/ui/workspace/sidebar/layer_item.cljs:153 msgid "workspace.shape.menu.lock" msgstr "Zablokuj" -#: src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:266 msgid "workspace.shape.menu.mask" msgstr "Maskuj" -#: src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:145, src/app/main/ui/workspace/context_menu.cljs:545 msgid "workspace.shape.menu.paste" msgstr "Wklej" +#: src/app/main/ui/workspace/context_menu.cljs:331 msgid "workspace.shape.menu.path" msgstr "Ścieżka" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:432 msgid "workspace.shape.menu.remove-flex" msgstr "Usuń układ flex" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:436 msgid "workspace.shape.menu.reset-overrides" msgstr "Zresetuj nadpisania" +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:439 msgid "workspace.shape.menu.restore-main" msgstr "Przywróć główny komponent" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:174 msgid "workspace.shape.menu.select-layer" msgstr "Zaznacz warstwę" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:360, src/app/main/ui/workspace/sidebar/layer_item.cljs:144 msgid "workspace.shape.menu.show" msgstr "Pokaż" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:424 msgid "workspace.shape.menu.show-in-assets" msgstr "Pokaż w panelu zasobów" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:442, src/app/main/ui/workspace/sidebar/assets/components.cljs:586 msgid "workspace.shape.menu.show-main" msgstr "Pokaż główny komponent" +#: src/app/main/ui/workspace/context_menu.cljs:221 msgid "workspace.shape.menu.thumbnail-remove" msgstr "Usuń miniaturę" +#: src/app/main/ui/workspace/context_menu.cljs:223 msgid "workspace.shape.menu.thumbnail-set" msgstr "Ustaw jako miniaturę" +#: src/app/main/ui/workspace/context_menu.cljs:326 msgid "workspace.shape.menu.transform-to-path" msgstr "Przekształć w ścieżkę" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:257 msgid "workspace.shape.menu.ungroup" msgstr "Rozgrupuj" +#: src/app/main/ui/workspace/context_menu.cljs:332, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:70 msgid "workspace.shape.menu.union" msgstr "Złącz" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:368, src/app/main/ui/workspace/sidebar/layer_item.cljs:152 msgid "workspace.shape.menu.unlock" msgstr "Odblokuj" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:271 msgid "workspace.shape.menu.unmask" msgstr "Odmaskuj" #: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs +#, unused msgid "workspace.shape.menu.update-components-in-bulk" msgstr "Aktualizuj główne komponenty" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:445 msgid "workspace.shape.menu.update-main" msgstr "Aktualizuj główny komponent" +#: src/app/main/ui/components/tab_container.cljs:50 msgid "workspace.sidebar.collapse" msgstr "Zwiń pasek boczny" +#: src/app/main/ui/workspace/sidebar/collapsable_button.cljs:26 msgid "workspace.sidebar.expand" msgstr "Rozwiń pasek boczny" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/right_header.cljs:231, src/app/main/ui/workspace/right_header.cljs:232 msgid "workspace.sidebar.history" msgstr "Historia (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/sidebar/layers.cljs:522, src/app/main/ui/workspace/sidebar.cljs:100 msgid "workspace.sidebar.layers" msgstr "Warstwy" +#: src/app/main/ui/workspace/sidebar/layers.cljs:308, src/app/main/ui/workspace/sidebar/layers.cljs:380 msgid "workspace.sidebar.layers.components" msgstr "Komponenty" +#: src/app/main/ui/workspace/sidebar/layers.cljs:305, src/app/main/ui/workspace/sidebar/layers.cljs:338 msgid "workspace.sidebar.layers.frames" msgstr "Obszary kompozycji" +#: src/app/main/ui/workspace/sidebar/layers.cljs:306, src/app/main/ui/workspace/sidebar/layers.cljs:352 msgid "workspace.sidebar.layers.groups" msgstr "Grupy" +#: src/app/main/ui/workspace/sidebar/layers.cljs:310, src/app/main/ui/workspace/sidebar/layers.cljs:408 msgid "workspace.sidebar.layers.images" msgstr "Obrazy" +#: src/app/main/ui/workspace/sidebar/layers.cljs:307, src/app/main/ui/workspace/sidebar/layers.cljs:366 msgid "workspace.sidebar.layers.masks" msgstr "Maski" +#: src/app/main/ui/workspace/sidebar/layers.cljs:289 msgid "workspace.sidebar.layers.search" msgstr "Przeszukaj warstwy" +#: src/app/main/ui/workspace/sidebar/layers.cljs:311, src/app/main/ui/workspace/sidebar/layers.cljs:422 msgid "workspace.sidebar.layers.shapes" msgstr "Kształty" +#: src/app/main/ui/workspace/sidebar/layers.cljs:309, src/app/main/ui/workspace/sidebar/layers.cljs:394 msgid "workspace.sidebar.layers.texts" msgstr "Teksty" -#: src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs, src/app/main/ui/inspect/attributes/svg.cljs +#: src/app/main/ui/viewer/inspect/attributes/svg.cljs:56, src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs:91 msgid "workspace.sidebar.options.svg-attrs.title" msgstr "Importowane atrybuty SVG" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs +#: src/app/main/ui/workspace/sidebar/sitemap.cljs:217 msgid "workspace.sidebar.sitemap" msgstr "Strony" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/left_header.cljs:91 msgid "workspace.sitemap" msgstr "Mapa strony" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/sidebar.cljs:120 msgid "workspace.toolbar.assets" msgstr "Zasoby" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/palette.cljs:165, src/app/main/ui/workspace/palette.cljs:166 msgid "workspace.toolbar.color-palette" msgstr "Palety kolorów (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/right_header.cljs:220, src/app/main/ui/workspace/right_header.cljs:221 msgid "workspace.toolbar.comments" msgstr "Komentarze (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:180, src/app/main/ui/workspace/top_toolbar.cljs:181 msgid "workspace.toolbar.curve" msgstr "Krzywa (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:160, src/app/main/ui/workspace/top_toolbar.cljs:161 msgid "workspace.toolbar.ellipse" msgstr "Elipsa (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:142, src/app/main/ui/workspace/top_toolbar.cljs:143 msgid "workspace.toolbar.frame" msgstr "Obszar kompozycji (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:59, src/app/main/ui/workspace/top_toolbar.cljs:60 msgid "workspace.toolbar.image" msgstr "Obraz (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:132, src/app/main/ui/workspace/top_toolbar.cljs:133 msgid "workspace.toolbar.move" msgstr "Przenieś (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:189, src/app/main/ui/workspace/top_toolbar.cljs:190 msgid "workspace.toolbar.path" msgstr "Ścieżka (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:151, src/app/main/ui/workspace/top_toolbar.cljs:152 msgid "workspace.toolbar.rect" msgstr "Prostokąt (%s)" #: src/app/main/ui/workspace/left_toolbar.cljs +#, unused msgid "workspace.toolbar.shortcuts" msgstr "Skróty (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:169, src/app/main/ui/workspace/top_toolbar.cljs:170 msgid "workspace.toolbar.text" msgstr "Tekst (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/palette.cljs:173, src/app/main/ui/workspace/palette.cljs:174 msgid "workspace.toolbar.text-palette" msgstr "Typografie (%s)" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:342 msgid "workspace.undo.empty" msgstr "Jak dotąd nie ma zmian w historii" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:147 msgid "workspace.undo.entry.delete" msgstr "Usunięto (%s)" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:146 msgid "workspace.undo.entry.modify" msgstr "Zmodyfikowano (%s)" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:148 msgid "workspace.undo.entry.move" msgstr "Przesunięte obiekty" +#: src/app/main/ui/workspace/sidebar/history.cljs:111 msgid "workspace.undo.entry.multiple.circle" msgstr "koła" +#: src/app/main/ui/workspace/sidebar/history.cljs:112 msgid "workspace.undo.entry.multiple.color" msgstr "zasoby kolorów" +#: src/app/main/ui/workspace/sidebar/history.cljs:113 msgid "workspace.undo.entry.multiple.component" msgstr "komponenty" +#: src/app/main/ui/workspace/sidebar/history.cljs:114 msgid "workspace.undo.entry.multiple.curve" msgstr "krzywe" +#: src/app/main/ui/workspace/sidebar/history.cljs:115 msgid "workspace.undo.entry.multiple.frame" msgstr "obszar kompozycji" +#: src/app/main/ui/workspace/sidebar/history.cljs:116 msgid "workspace.undo.entry.multiple.group" msgstr "grupy" +#: src/app/main/ui/workspace/sidebar/history.cljs:117 msgid "workspace.undo.entry.multiple.media" msgstr "zasoby graficzne" +#: src/app/main/ui/workspace/sidebar/history.cljs:118 msgid "workspace.undo.entry.multiple.multiple" msgstr "obiekty" +#: src/app/main/ui/workspace/sidebar/history.cljs:119 msgid "workspace.undo.entry.multiple.page" msgstr "strony" +#: src/app/main/ui/workspace/sidebar/history.cljs:120 msgid "workspace.undo.entry.multiple.path" msgstr "ścieżki" +#: src/app/main/ui/workspace/sidebar/history.cljs:121 msgid "workspace.undo.entry.multiple.rect" msgstr "prostokąty" +#: src/app/main/ui/workspace/sidebar/history.cljs:122 msgid "workspace.undo.entry.multiple.shape" msgstr "kształty" +#: src/app/main/ui/workspace/sidebar/history.cljs:123 msgid "workspace.undo.entry.multiple.text" msgstr "teksty" +#: src/app/main/ui/workspace/sidebar/history.cljs:124 msgid "workspace.undo.entry.multiple.typography" msgstr "zasoby typograficzne" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:145 msgid "workspace.undo.entry.new" msgstr "Nowy %s" +#: src/app/main/ui/workspace/sidebar/history.cljs:125 msgid "workspace.undo.entry.single.circle" msgstr "koło" +#: src/app/main/ui/workspace/sidebar/history.cljs:126 msgid "workspace.undo.entry.single.color" msgstr "zasób koloru" +#: src/app/main/ui/workspace/sidebar/history.cljs:127 msgid "workspace.undo.entry.single.component" msgstr "komponent" +#: src/app/main/ui/workspace/sidebar/history.cljs:128 msgid "workspace.undo.entry.single.curve" msgstr "krzywa" +#: src/app/main/ui/workspace/sidebar/history.cljs:129 msgid "workspace.undo.entry.single.frame" msgstr "obszar kompozycji" +#: src/app/main/ui/workspace/sidebar/history.cljs:130 msgid "workspace.undo.entry.single.group" msgstr "grupa" +#: src/app/main/ui/workspace/sidebar/history.cljs:131 msgid "workspace.undo.entry.single.image" msgstr "obraz" +#: src/app/main/ui/workspace/sidebar/history.cljs:132 msgid "workspace.undo.entry.single.media" msgstr "zasób graficzny" +#: src/app/main/ui/workspace/sidebar/history.cljs:133 msgid "workspace.undo.entry.single.multiple" msgstr "obiekt" +#: src/app/main/ui/workspace/sidebar/history.cljs:134 msgid "workspace.undo.entry.single.page" msgstr "strona" +#: src/app/main/ui/workspace/sidebar/history.cljs:135 msgid "workspace.undo.entry.single.path" msgstr "ścieżka" +#: src/app/main/ui/workspace/sidebar/history.cljs:136 msgid "workspace.undo.entry.single.rect" msgstr "prostokąt" +#: src/app/main/ui/workspace/sidebar/history.cljs:137 msgid "workspace.undo.entry.single.shape" msgstr "kształt" +#: src/app/main/ui/workspace/sidebar/history.cljs:138 msgid "workspace.undo.entry.single.text" msgstr "tekst" +#: src/app/main/ui/workspace/sidebar/history.cljs:139 msgid "workspace.undo.entry.single.typography" msgstr "zasób typograficzny" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:149 msgid "workspace.undo.entry.unknown" msgstr "Operacja ponad %s" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:335 msgid "workspace.undo.title" msgstr "Historia" -#: src/app/main/data/workspace/libraries.cljs +#: src/app/main/data/workspace/libraries.cljs:1094 msgid "workspace.updates.dismiss" msgstr "Odrzuć" -#: src/app/main/data/workspace/libraries.cljs +#: src/app/main/data/workspace/libraries.cljs:1090 msgid "workspace.updates.there-are-updates" msgstr "W bibliotekach współdzielonych są aktualizacje" -#: src/app/main/data/workspace/libraries.cljs +#: src/app/main/data/workspace/libraries.cljs:1097 msgid "workspace.updates.update" msgstr "Aktualizuj" +#, unused msgid "workspace.viewport.click-to-close-path" msgstr "Kliknij, aby zamknąć ścieżkę" diff --git a/frontend/translations/pt_BR.po b/frontend/translations/pt_BR.po index e61276ac65..94fa1e85bd 100644 --- a/frontend/translations/pt_BR.po +++ b/frontend/translations/pt_BR.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "PO-Revision-Date: 2024-06-17 08:07+0000\n" "Last-Translator: Anonymous \n" -"Language-Team: Portuguese (Brazil) \n" +"Language-Team: Portuguese (Brazil) " +"\n" "Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" @@ -11,280 +11,309 @@ msgstr "" "Plural-Forms: nplurals=2; plural=n > 1;\n" "X-Generator: Weblate 5.6-dev\n" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:151, src/app/main/ui/viewer/login.cljs:104 msgid "auth.already-have-account" msgstr "Já tem uma conta?" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:299 msgid "auth.check-your-email" msgstr "" "Verifique seu e-mail e clique no link de verificação para começar a usar o " "Penpot." -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:78 msgid "auth.confirm-password" msgstr "Confirmar senha" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/register.cljs:163 msgid "auth.create-demo-account" msgstr "Criar conta de demonstração" #: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#, unused msgid "auth.create-demo-profile" msgstr "Quer apenas experimentar?" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/login.cljs:43 msgid "auth.demo-warning" msgstr "" "Este é um serviço DEMONSTRATIVO, NÃO USE para trabalho real, os projetos " "serão apagados periodicamente." -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:189, src/app/main/ui/viewer/login.cljs:90 msgid "auth.forgot-password" msgstr "Esqueceu sua senha?" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:254 msgid "auth.fullname" msgstr "Nome completo" -#: src/app/main/ui/auth/register.cljs -#, fuzzy +#: src/app/main/ui/auth/register.cljs:155, src/app/main/ui/viewer/login.cljs:107 msgid "auth.login-here" msgstr "Entrar aqui" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:195 msgid "auth.login-submit" msgstr "Entrar" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:222 msgid "auth.login-with-github-submit" msgstr "GitHub" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:228 msgid "auth.login-with-gitlab-submit" msgstr "GitLab" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:216 msgid "auth.login-with-google-submit" msgstr "Google" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:201 msgid "auth.login-with-ldap-submit" msgstr "LDAP" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:234, src/app/main/ui/auth/login.cljs:255 msgid "auth.login-with-oidc-submit" msgstr "OpenID" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:71 msgid "auth.new-password" msgstr "Digite uma nova senha" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:42 msgid "auth.notifications.invalid-token-error" msgstr "O código de recuperação é inválido." -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:46 msgid "auth.notifications.password-changed-successfully" msgstr "Senha alterada com sucesso" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:57 msgid "auth.notifications.profile-not-verified" msgstr "Perfil não verificado. Por favor, verifique o perfil antes de continuar." -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:40 msgid "auth.notifications.recovery-token-sent" msgstr "Link de recuperação de senha foi enviado para sua caixa de entrada." -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:47 msgid "auth.notifications.team-invitation-accepted" msgstr "Entrou para a equipe com sucesso" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:179, src/app/main/ui/auth/register.cljs:115 msgid "auth.password" msgstr "Senha" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:114 msgid "auth.password-length-hint" msgstr "Pelo menos 8 caracteres" +#: src/app/main/ui/auth.cljs:41 msgid "auth.privacy-policy" msgstr "Política de privacidade" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:88 msgid "auth.recovery-request-submit" msgstr "Recuperar senha" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:101 msgid "auth.recovery-request-subtitle" msgstr "Enviaremos para você um e-mail com instruções" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:100 msgid "auth.recovery-request-title" msgstr "Esqueceu sua senha?" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:82 msgid "auth.recovery-submit" msgstr "Mudar a sua senha" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:298, src/app/main/ui/viewer/login.cljs:93 msgid "auth.register" msgstr "Ainda não tem uma conta?" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:302, src/app/main/ui/auth/register.cljs:121, src/app/main/ui/auth/register.cljs:263, src/app/main/ui/viewer/login.cljs:97 msgid "auth.register-submit" msgstr "Criar uma conta" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:140 msgid "auth.register-title" msgstr "Criar uma conta" #: src/app/main/ui/auth.cljs +#, unused msgid "auth.sidebar-tagline" msgstr "A solução de código aberto para design e prototipação." +#: src/app/main/ui/auth.cljs:33, src/app/main/ui/dashboard/sidebar.cljs:1022, src/app/main/ui/workspace/main_menu.cljs:150 msgid "auth.terms-of-service" msgstr "Termos de serviço" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:297 msgid "auth.verification-email-sent" msgstr "Enviamos um e-mail de verificação para" +#: src/app/main/ui/workspace/libraries.cljs:228 msgid "common.publish" msgstr "Publicar" +#: src/app/main/ui/viewer/share_link.cljs:304, src/app/main/ui/viewer/share_link.cljs:314 msgid "common.share-link.all-users" msgstr "Todos os usuários do Penpot" +#: src/app/main/ui/viewer/share_link.cljs:198 msgid "common.share-link.confirm-deletion-link-description" msgstr "" "Tem certeza de que deseja remover este link? Se você fizer isso, ele não " "estará mais disponível para ninguém" +#: src/app/main/ui/viewer/share_link.cljs:259, src/app/main/ui/viewer/share_link.cljs:289 msgid "common.share-link.current-tag" msgstr "(atual)" +#: src/app/main/ui/viewer/share_link.cljs:207, src/app/main/ui/viewer/share_link.cljs:214 msgid "common.share-link.destroy-link" msgstr "Destruir link" +#: src/app/main/ui/viewer/share_link.cljs:221 msgid "common.share-link.get-link" msgstr "Obter link" +#: src/app/main/ui/viewer/share_link.cljs:139 msgid "common.share-link.link-copied-success" msgstr "Link copiado com sucesso" +#: src/app/main/ui/viewer/share_link.cljs:231 msgid "common.share-link.manage-ops" msgstr "Gerenciar Permissões" +#: src/app/main/ui/viewer/share_link.cljs:277 msgid "common.share-link.page-shared" msgid_plural "common.share-link.page-shared" msgstr[0] "1 página compartilhada" msgstr[1] "%s páginas compartilhadas" +#: src/app/main/ui/viewer/share_link.cljs:298 msgid "common.share-link.permissions-can-comment" msgstr "Pode comentar" +#: src/app/main/ui/viewer/share_link.cljs:308 msgid "common.share-link.permissions-can-inspect" msgstr "Pode inspecionar o código" +#: src/app/main/ui/viewer/share_link.cljs:193 msgid "common.share-link.permissions-hint" msgstr "Qualquer pessoa com o link terá acesso" +#: src/app/main/ui/viewer/share_link.cljs:241 msgid "common.share-link.permissions-pages" msgstr "Páginas compartilhadas" +#: src/app/main/ui/viewer/share_link.cljs:183 msgid "common.share-link.placeholder" msgstr "O link compartilhável aparecerá aqui" +#: src/app/main/ui/viewer/share_link.cljs:303, src/app/main/ui/viewer/share_link.cljs:313 msgid "common.share-link.team-members" msgstr "Apenas membros da equipe" +#: src/app/main/ui/viewer/share_link.cljs:171 msgid "common.share-link.title" msgstr "Compartilhar protótipos" +#: src/app/main/ui/viewer/share_link.cljs:269 msgid "common.share-link.view-all" msgstr "Selecionar todos" +#: src/app/main/ui/workspace/libraries.cljs:224 msgid "common.unpublish" msgstr "Cancelar publicação" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:85 msgid "dasboard.team-hero.management" msgstr "Gerenciamento de equipe" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:84 msgid "dasboard.team-hero.text" msgstr "" "O Penpot é destinado a equipes. Convide pessoas para trabalhar junto com " "você em projetos e arquivos" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:82 msgid "dasboard.team-hero.title" msgstr "Junte o time!" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.tutorial-hero.info" msgstr "Aprenda o básico no Penpot enquanto se diverte com este tutorial prático." #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.tutorial-hero.start" msgstr "Começar o tutorial" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.tutorial-hero.title" msgstr "Tutorial prático" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.walkthrough-hero.info" msgstr "Faça um tour pelo Penpot e conheça suas principais características." #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.walkthrough-hero.start" msgstr "Começar tour" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.walkthrough-hero.title" msgstr "Passo a passo da interface" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:291, src/app/main/ui/workspace/main_menu.cljs:572 msgid "dashboard.add-shared" msgstr "Adicionar a biblioteca compartilhada" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:75 msgid "dashboard.change-email" msgstr "Alterar e-mail" -#: src/app/main/data/dashboard.cljs, src/app/main/data/dashboard.cljs +#: src/app/main/data/dashboard.cljs:762, src/app/main/data/dashboard.cljs:983 msgid "dashboard.copy-suffix" msgstr "(copiar)" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:338 msgid "dashboard.create-new-team" msgstr "Criar nova equipe" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/components/context_menu_a11y.cljs:256, src/app/main/ui/dashboard/sidebar.cljs:646 msgid "dashboard.default-team-name" msgstr "Seu Penpot" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:571 msgid "dashboard.delete-team" msgstr "Deletar equipe" +#: src/app/main/ui/dashboard/file_menu.cljs:296, src/app/main/ui/workspace/main_menu.cljs:589 msgid "dashboard.download-binary-file" msgstr "Baixar arquivo Penpot (.penpot)" +#: src/app/main/ui/dashboard/file_menu.cljs:300, src/app/main/ui/workspace/main_menu.cljs:597 msgid "dashboard.download-standard-file" msgstr "Baixar arquivo padrão (.svg + .json)" -#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:276, src/app/main/ui/dashboard/project_menu.cljs:90 msgid "dashboard.duplicate" msgstr "Duplicar" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:240 msgid "dashboard.duplicate-multi" msgstr "Duplicar %s arquivos" -#: src/app/main/ui/dashboard/grid.cljs +#: src/app/main/ui/dashboard/placeholder.cljs:32 #, markdown msgid "dashboard.empty-placeholder-drafts" msgstr "" @@ -292,101 +321,117 @@ msgstr "" "compartilhar seus arquivos ou adicione das nossas [Bibliotecas & " "modelos](https://penpot.app/libraries-templates)." +#: src/app/main/ui/dashboard/file_menu.cljs:249 msgid "dashboard.export-binary-multi" msgstr "Baixar %s arquivos Penpot (.penpot)" +#: src/app/main/ui/workspace/main_menu.cljs:605 msgid "dashboard.export-frames" msgstr "Exportar boards em PDF" -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:201 msgid "dashboard.export-frames.title" msgstr "Exportar como arquivo PDF" +#, unused msgid "dashboard.export-multi" msgstr "Exportar %s arquivos" -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:109 msgid "dashboard.export-multiple.selected" msgstr "%s de %s elementos selecionados" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:578 msgid "dashboard.export-shapes" msgstr "Exportar" -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:180 msgid "dashboard.export-shapes.how-to" msgstr "" "Você pode adicionar configurações de exportação em elementos nas " "propriedades de design (na parte inferior da barra lateral direita)." -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:184 msgid "dashboard.export-shapes.how-to-link" msgstr "Informações sobre como configurar exportações no Penpot." -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:179 msgid "dashboard.export-shapes.no-elements" msgstr "Não há elementos com configurações de exportação." -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:190 msgid "dashboard.export-shapes.title" msgstr "Exportar seleção" +#: src/app/main/ui/dashboard/file_menu.cljs:252 msgid "dashboard.export-standard-multi" msgstr "Baixar %s arquivos padrões (.svg + .json)" +#: src/app/main/ui/export.cljs:427 msgid "dashboard.export.detail" msgstr "* Pode incluir componentes, gráficos, cores e/ou tipografias." +#: src/app/main/ui/export.cljs:426 msgid "dashboard.export.explain" msgstr "" "Um ou mais arquivos que você deseja exportar estão usando bibliotecas " "compartilhadas. O que você quer fazer com seus recursos*?" +#: src/app/main/ui/export.cljs:435 msgid "dashboard.export.options.all.message" msgstr "" "arquivos com bibliotecas compartilhadas serão incluídos na exportação, " "mantendo seu vínculo." +#: src/app/main/ui/export.cljs:436 msgid "dashboard.export.options.all.title" msgstr "Exportar bibliotecas compartilhadas" +#: src/app/main/ui/export.cljs:437 msgid "dashboard.export.options.detach.message" msgstr "" "Bibliotecas compartilhadas não serão incluídas na exportação e nenhum ativo " "será adicionado a biblioteca. " +#: src/app/main/ui/export.cljs:438 msgid "dashboard.export.options.detach.title" msgstr "Trate os ativos da biblioteca compartilhada como objetos básicos" +#: src/app/main/ui/export.cljs:439 msgid "dashboard.export.options.merge.message" msgstr "" "Seu arquivo será exportado com todos os ativos externos mesclados na " "biblioteca de ativos do arquivo." +#: src/app/main/ui/export.cljs:440 msgid "dashboard.export.options.merge.title" msgstr "" "Incluir ativos da biblioteca compartilhada na biblioteca de ativos do " "arquivo" +#: src/app/main/ui/export.cljs:418 msgid "dashboard.export.title" msgstr "Exportar arquivos" +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:309 msgid "dashboard.fonts.deleted-placeholder" msgstr "Fonte deletada" -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:206 msgid "dashboard.fonts.dismiss-all" msgstr "Retirar todas" +#: src/app/main/ui/dashboard/fonts.cljs:436 msgid "dashboard.fonts.empty-placeholder" msgstr "Fontes customizadas que você adicionar vão aparecer aqui." -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:194 msgid "dashboard.fonts.fonts-added" msgid_plural "dashboard.fonts.fonts-added" msgstr[0] "1 fonte adicionada" msgstr[1] "%s fontes adicionadas" +#: src/app/main/ui/dashboard/fonts.cljs:170 #, markdown msgid "dashboard.fonts.hero-text1" msgstr "" @@ -396,6 +441,7 @@ msgstr "" "como uma **única família de fontes**. Você pode fazer upload de fontes com " "os seguintes formatos: **TTF, OTF e WOFF** (apenas uma será necessária)." +#: src/app/main/ui/dashboard/fonts.cljs:182 #, markdown msgid "dashboard.fonts.hero-text2" msgstr "" @@ -405,1433 +451,1561 @@ msgstr "" "veja esta leitura sobre [licenciamento de " "fontes](https://www.typography.com/faq)." -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:202 msgid "dashboard.fonts.upload-all" msgstr "Enviar tudo" +#: src/app/main/ui/dashboard/import.cljs:472, src/app/main/ui/dashboard/project_menu.cljs:108 msgid "dashboard.import" msgstr "Importar arquivos" +#: src/app/main/ui/dashboard/import.cljs:304, src/app/worker/import.cljs:753, src/app/worker/import.cljs:755 msgid "dashboard.import.analyze-error" msgstr "Ops! Não conseguimos importar este arquivo" +#: src/app/main/ui/dashboard/import.cljs:308 msgid "dashboard.import.import-error" msgstr "Ocorreu um problema ao importar o arquivo, então ele não foi importado." +#: src/app/main/ui/dashboard/import.cljs:493 msgid "dashboard.import.import-message" msgstr "%s arquivos foram importados com sucesso." +#: src/app/main/ui/dashboard/import.cljs:481, src/app/main/ui/dashboard/import.cljs:488 msgid "dashboard.import.import-warning" msgstr "Alguns arquivos continham objetos inválidos que foram removidos." +#: src/app/main/ui/dashboard/import.cljs:144 msgid "dashboard.import.progress.process-colors" msgstr "Processando as cores" +#: src/app/main/ui/dashboard/import.cljs:153 msgid "dashboard.import.progress.process-components" msgstr "Processando os componentes" +#: src/app/main/ui/dashboard/import.cljs:150 msgid "dashboard.import.progress.process-media" msgstr "Processando as mídias" +#: src/app/main/ui/dashboard/import.cljs:141 msgid "dashboard.import.progress.process-page" msgstr "Processando página: %s" +#: src/app/main/ui/dashboard/import.cljs:147 msgid "dashboard.import.progress.process-typographies" msgstr "Processando as fontes" +#: src/app/main/ui/dashboard/import.cljs:135 msgid "dashboard.import.progress.upload-data" msgstr "Carregando dados para o servidor (%s/%s)" +#: src/app/main/ui/dashboard/import.cljs:138 msgid "dashboard.import.progress.upload-media" msgstr "Enviando arquivo: %s" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:109 msgid "dashboard.invite-profile" msgstr "Convidar pessoas" -#: src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:547, src/app/main/ui/dashboard/sidebar.cljs:556, src/app/main/ui/dashboard/sidebar.cljs:563, src/app/main/ui/dashboard/team.cljs:312 msgid "dashboard.leave-team" msgstr "Sair da equipe" +#: src/app/main/ui/dashboard/templates.cljs:88, src/app/main/ui/dashboard/templates.cljs:163 msgid "dashboard.libraries-and-templates" msgstr "Bibliotecas e Modelos" +#: src/app/main/ui/dashboard/templates.cljs:164 msgid "dashboard.libraries-and-templates.explore" msgstr "Explore mais e aprenda como contribuir" +#: src/app/main/ui/dashboard/import.cljs:365 msgid "dashboard.libraries-and-templates.import-error" msgstr "Ocorreu um problema ao importar o modelo. O modelo não foi importado." -#: src/app/main/ui/dashboard/libraries.cljs +#: src/app/main/ui/dashboard/libraries.cljs:53 msgid "dashboard.libraries-title" msgstr "Bibliotecas de ativos" -#: src/app/main/ui/dashboard/grid.cljs +#: src/app/main/ui/dashboard/placeholder.cljs:45 msgid "dashboard.loading-files" msgstr "carregando seus arquivos…" +#: src/app/main/ui/dashboard/fonts.cljs:431 msgid "dashboard.loading-fonts" msgstr "carregando suas fontes …" -#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:281, src/app/main/ui/dashboard/project_menu.cljs:100 msgid "dashboard.move-to" msgstr "Mover para" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:245 msgid "dashboard.move-to-multi" msgstr "Mover %s arquivos para" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:226 msgid "dashboard.move-to-other-team" msgstr "Mover para outra equipe" -#: src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/files.cljs +#: src/app/main/ui/dashboard/files.cljs:105, src/app/main/ui/dashboard/projects.cljs:252, src/app/main/ui/dashboard/projects.cljs:253 msgid "dashboard.new-file" msgstr "+ Novo arquivo" -#: src/app/main/data/dashboard.cljs +#: src/app/main/data/dashboard.cljs:958, src/app/main/data/dashboard.cljs:1181 msgid "dashboard.new-file-prefix" msgstr "Novo arquivo" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:55 msgid "dashboard.new-project" msgstr "+ Novo projeto" -#: src/app/main/data/dashboard.cljs +#: src/app/main/data/dashboard.cljs:726, src/app/main/data/dashboard.cljs:1184 msgid "dashboard.new-project-prefix" msgstr "Novo projeto" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:60 msgid "dashboard.no-matches-for" msgstr "Não achamos nada com “%s“" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:827 msgid "dashboard.no-projects-placeholder" msgstr "Projetos fixados aparecerão aqui" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:33 msgid "dashboard.notifications.email-changed-successfully" msgstr "Seu endereço de e-mail foi atualizado com sucesso" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:27 msgid "dashboard.notifications.email-verified-successfully" msgstr "Seu endereço de e-mail foi verificado com sucesso" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:37 msgid "dashboard.notifications.password-saved" msgstr "Senha salva com sucesso!" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1081 msgid "dashboard.num-of-members" msgstr "%s membros" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:267 msgid "dashboard.open-in-new-tab" msgstr "Abrir arquivo em uma nova guia" +#: src/app/main/ui/dashboard/files.cljs:117, src/app/main/ui/dashboard/projects.cljs:260, src/app/main/ui/dashboard/projects.cljs:261 msgid "dashboard.options" msgstr "Opções" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:106, src/app/main/ui/settings/password.cljs:119 msgid "dashboard.password-change" msgstr "Alterar senha" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/pin_button.cljs:24, src/app/main/ui/dashboard/project_menu.cljs:95 msgid "dashboard.pin-unpin" msgstr "Fixar/Desafixar" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:51 msgid "dashboard.projects-title" msgstr "Projetos" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:86 msgid "dashboard.remove-account" msgstr "Quer remover sua conta?" #: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "dashboard.remove-shared" msgstr "Remover compartilhamento de Biblioteca" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:78 msgid "dashboard.save-settings" msgstr "Salvar configurações" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:246, src/app/main/ui/dashboard/sidebar.cljs:247 msgid "dashboard.search-placeholder" msgstr "Pesquisar…" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:55 msgid "dashboard.searching-for" msgstr "Pesquisando por “%s“…" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:56 msgid "dashboard.select-ui-language" msgstr "Selecionar idioma da Interface" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:63 msgid "dashboard.select-ui-theme" msgstr "Selecionar tema" -#: src/app/main/ui/dashboard/grid.cljs +#: src/app/main/ui/dashboard/projects.cljs:282 msgid "dashboard.show-all-files" msgstr "Mostrar todos os arquivos" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:59 msgid "dashboard.success-delete-project" msgstr "Seu projeto foi excluído com sucesso" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:33 msgid "dashboard.success-duplicate-project" msgstr "Seu projeto foi duplicado com sucesso" -#: src/app/main/ui/dashboard/grid.cljs, src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:130, src/app/main/ui/dashboard/grid.cljs:558, src/app/main/ui/dashboard/sidebar.cljs:152 msgid "dashboard.success-move-file" msgstr "Seu arquivo foi movido com sucesso" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:129 msgid "dashboard.success-move-files" msgstr "Seus arquivos foram movidos com sucesso" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:54 msgid "dashboard.success-move-project" msgstr "Seu projeto foi movido com sucesso" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1052 msgid "dashboard.team-info" msgstr "Informação da equipe" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1070 msgid "dashboard.team-members" msgstr "Membros da equipe" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1085 msgid "dashboard.team-projects" msgstr "Projetos da equipe" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:61 msgid "dashboard.theme-change" msgstr "Tema da Interface" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:42 msgid "dashboard.title-search" msgstr "Resultados da pesquisa" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:50 msgid "dashboard.type-something" msgstr "Digite para pesquisar nos resultados" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:287, src/app/main/ui/workspace/main_menu.cljs:566 msgid "dashboard.unpublish-shared" msgstr "Cancelar publicação da biblioteca" -#: src/app/main/ui/settings/profile.cljs, src/app/main/ui/settings/password.cljs, src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:71 msgid "dashboard.update-settings" msgstr "Atualizar configurações" +#: src/app/main/ui/dashboard/team.cljs:861 msgid "dashboard.webhooks.active" msgstr "Está ativo" +#: src/app/main/ui/dashboard/team.cljs:862 msgid "dashboard.webhooks.active.explain" msgstr "Quando esse hook é invocado detalhes de eventos vão ser enviados" +#: src/app/main/ui/dashboard/team.cljs:852 msgid "dashboard.webhooks.content-type" msgstr "Tipo de conteúdo" +#: src/app/main/ui/dashboard/team.cljs:885 msgid "dashboard.webhooks.create" msgstr "Criar webhook" +#: src/app/main/ui/dashboard/team.cljs:775 msgid "dashboard.webhooks.create.success" msgstr "Webhook criado com sucesso." +#: src/app/main/ui/dashboard/team.cljs:882 msgid "dashboard.webhooks.description" msgstr "" "Webhooks são uma forma simples de permitir que outros websites e " "aplicativos sejam notificados quando certos eventos acontecem no Penpot. " "Nós enviaremos uma solicitação POST para todas as URLs que você digite." +#: src/app/main/ui/dashboard/team.cljs:1005 msgid "dashboard.webhooks.empty.add-one" msgstr "Clique em \"Adicionar Webhook\" para adicionar um Webhook." +#: src/app/main/ui/dashboard/team.cljs:1004 msgid "dashboard.webhooks.empty.no-webhooks" msgstr "Nenhum Webhook criado ainda." +#, unused msgid "dashboard.webhooks.update.success" msgstr "Webhook atualizado com sucesso." -#: src/app/main/ui/settings.cljs +#: src/app/main/ui/settings.cljs:31 msgid "dashboard.your-account-title" msgstr "Sua conta" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:70 msgid "dashboard.your-email" msgstr "E-mail" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:62 msgid "dashboard.your-name" msgstr "Seu nome" -#: src/app/main/ui/dashboard/search.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/libraries.cljs, src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:38, src/app/main/ui/dashboard/fonts.cljs:33, src/app/main/ui/dashboard/libraries.cljs:42, src/app/main/ui/dashboard/projects.cljs:318, src/app/main/ui/dashboard/search.cljs:30, src/app/main/ui/dashboard/sidebar.cljs:312, src/app/main/ui/dashboard/team.cljs:495, src/app/main/ui/dashboard/team.cljs:729, src/app/main/ui/dashboard/team.cljs:991, src/app/main/ui/dashboard/team.cljs:1038 msgid "dashboard.your-penpot" msgstr "Seu Penpot" -#: src/app/main/ui/alert.cljs +#: src/app/main/ui/alert.cljs:32 msgid "ds.alert-ok" msgstr "Ok" -#: src/app/main/ui/alert.cljs +#: src/app/main/ui/alert.cljs:31, src/app/main/ui/alert.cljs:34 msgid "ds.alert-title" msgstr "Atenção" -#: src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:83 msgid "ds.component-subtitle" msgstr "Componentes para atualizar:" -#: src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:36, src/app/main/ui/workspace/plugins.cljs:246 msgid "ds.confirm-cancel" msgstr "Cancelar" -#: src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:37, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:141 msgid "ds.confirm-ok" msgstr "Ok" -#: src/app/main/ui/confirm.cljs, src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:35, src/app/main/ui/confirm.cljs:39 msgid "ds.confirm-title" msgstr "Tem certeza?" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:62 msgid "errors.auth-provider-not-configured" msgstr "Provedor de autenticação não configurado." +#: src/app/main/errors.cljs:104 msgid "errors.auth.unable-to-login" msgstr "Parece que você não está autenticado ou a sessão expirou." +#: src/app/main/data/fonts.cljs:189 msgid "errors.bad-font" msgstr "A fonte %s não pôde ser carregada" +#: src/app/main/data/fonts.cljs:188 msgid "errors.bad-font-plural" msgstr "As fontes %s não puderam ser carregadas" -#: src/app/main/data/workspace.cljs +#: src/app/main/data/workspace.cljs:1598 msgid "errors.clipboard-not-implemented" msgstr "Seu navegador não pode fazer esta operação" -#: src/app/main/ui/auth/verify_token.cljs, src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/auth/verify_token.cljs:82, src/app/main/ui/settings/change_email.cljs:46 msgid "errors.email-already-exists" msgstr "E-mail já utilizado" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:87 msgid "errors.email-already-validated" msgstr "E-mail já validado." +#: src/app/main/ui/settings/password.cljs:28 msgid "errors.email-as-password" msgstr "Você não pode usar seu e-mail como senha" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/settings/change_email.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/auth/recovery_request.cljs:63, src/app/main/ui/dashboard/team.cljs:578, src/app/main/ui/settings/change_email.cljs:54 msgid "errors.email-has-permanent-bounces" msgstr "O e-mail «%s» tem muitos relatórios de devolução permanentes." -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs, src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/login.cljs:81, src/app/main/ui/auth/recovery_request.cljs:31, src/app/main/ui/auth/register.cljs:43 msgid "errors.email-invalid" msgstr "Por favor, insira um email válido" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:35 msgid "errors.email-invalid-confirmation" msgstr "E-mail de confirmação deve ser o mesmo" +#: src/app/main/ui/dashboard/team.cljs:170 msgid "errors.email-spam-or-permanent-bounces" msgstr "O e-mail «%s» foi denunciado como spam ou devolvido permanentemente." -#: src/app/main/errors.cljs +#: src/app/main/errors.cljs:227 msgid "errors.feature-mismatch" msgstr "" "Parece que você está abrindo um arquivo que tem a funcionalidade '%s' " "habilitada, mas o seu frontend no penpot não a suporta ou ela está " "desabilitada." -#: src/app/main/errors.cljs +#: src/app/main/errors.cljs:231, src/app/main/errors.cljs:245 msgid "errors.feature-not-supported" msgstr "Recurso '%s' não é suportado." -#: src/app/main/ui/auth/verify_token.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/data/users.cljs:709, src/app/main/ui/auth/login.cljs:65, src/app/main/ui/auth/login.cljs:116, src/app/main/ui/auth/register.cljs:69, src/app/main/ui/auth/register.cljs:237, src/app/main/ui/auth/verify_token.cljs:92, src/app/main/ui/dashboard/team.cljs:173, src/app/main/ui/onboarding/team_choice.cljs:95, src/app/main/ui/settings/access_tokens.cljs:91, src/app/main/ui/settings/feedback.cljs:52 msgid "errors.generic" msgstr "Algo errado aconteceu." -#: src/app/main/ui/components/color_input.cljs +#: src/app/main/ui/components/color_input.cljs:57 msgid "errors.invalid-color" msgstr "Cor inválida" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/static.cljs:43 msgid "errors.invite-invalid" msgstr "Convite inválido" +#: src/app/main/ui/static.cljs:44 msgid "errors.invite-invalid.info" msgstr "Este convite pode ter sido cancelado ou expirou." -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:101 msgid "errors.ldap-disabled" msgstr "Autenticação por LDAP está desativada." -#: src/app/main/errors.cljs +#: src/app/main/errors.cljs:239 msgid "errors.max-quote-reached" msgstr "Você atingiu a cota de '%s'. Entre em contato com o suporte." -#: src/app/main/data/workspace/persistence.cljs +#: src/app/main/data/workspace/media.cljs:184 msgid "errors.media-too-large" msgstr "A imagem é muito grande para ser inserida." -#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs +#: src/app/main/data/media.cljs:68, src/app/main/data/workspace/media.cljs:187 msgid "errors.media-type-mismatch" msgstr "Parece que o conteúdo da imagem não corresponde a extensão do arquivo." -#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/workspace/persistence.cljs, src/app/main/data/workspace/persistence.cljs, src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs +#: src/app/main/data/media.cljs:65, src/app/main/data/workspace/media.cljs:172, src/app/main/data/workspace/media.cljs:175, src/app/main/data/workspace/media.cljs:178, src/app/main/data/workspace/media.cljs:181 msgid "errors.media-type-not-allowed" msgstr "Parece que esta não é uma imagem válida." -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:574 msgid "errors.member-is-muted" msgstr "" "O perfil que você está convidando tem e-mails silenciados (relatos de spam " "ou altas devoluções)." -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:61 msgid "errors.password-invalid-confirmation" msgstr "A senha de confirmação deve ser a mesma" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:64 msgid "errors.password-too-short" msgstr "A senha deve ter pelo menos 8 caracteres" +#: src/app/main/data/users.cljs:703, src/app/main/ui/auth/login.cljs:97, src/app/main/ui/auth/login.cljs:105 msgid "errors.profile-blocked" msgstr "O perfil está bloqueado" -#: src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/settings/change_email.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/auth/recovery_request.cljs:60, src/app/main/ui/dashboard/team.cljs:164, src/app/main/ui/dashboard/team.cljs:570, src/app/main/ui/settings/change_email.cljs:50 msgid "errors.profile-is-muted" msgstr "Seu perfil tem e-mails silenciados (relatos de spam ou altas devoluções)." -#: src/app/main/ui/auth/register.cljs +#: src/app/main/data/users.cljs:701, src/app/main/ui/auth/register.cljs:60 msgid "errors.registration-disabled" msgstr "O registro de contas está desativado no momento." +#: src/app/main/ui/dashboard/sidebar.cljs:365, src/app/main/ui/dashboard/team.cljs:359 msgid "errors.team-leave.insufficient-members" msgstr "" "Membros insuficientes para deixar a equipe, você provavelmente deseja " "excluí-la." +#: src/app/main/ui/dashboard/sidebar.cljs:368, src/app/main/ui/dashboard/team.cljs:362 msgid "errors.team-leave.member-does-not-exists" msgstr "O membro que você tentou atribuir não existe." +#: src/app/main/ui/dashboard/sidebar.cljs:371, src/app/main/ui/dashboard/team.cljs:365 msgid "errors.team-leave.owner-cant-leave" msgstr "" "O proprietário não pode sair da equipe, você deve reatribuir a função de " "proprietário para outro membro." -#: src/app/main/data/media.cljs, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs +#: src/app/main/data/media.cljs:71 msgid "errors.unexpected-error" msgstr "Um erro inesperado ocorreu." -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:60 msgid "errors.unexpected-token" msgstr "Token desconhecido" +#: src/app/main/ui/dashboard/team.cljs:796 msgid "errors.webhooks.connection" msgstr "Erro de conexão, URL não acessível" +#: src/app/main/ui/dashboard/team.cljs:790 msgid "errors.webhooks.invalid-uri" msgstr "A URL não passa na validação." -#, fuzzy +#: src/app/main/ui/dashboard/team.cljs:949 msgid "errors.webhooks.last-delivery" msgstr "O último envio não foi bem-sucedido." +#: src/app/main/ui/dashboard/team.cljs:792, src/app/main/ui/dashboard/team.cljs:952 msgid "errors.webhooks.ssl-validation" msgstr "Erro na validação SSL." +#: src/app/main/ui/dashboard/team.cljs:794 msgid "errors.webhooks.timeout" msgstr "O tempo se esgotou" +#: src/app/main/ui/dashboard/team.cljs:788 msgid "errors.webhooks.unexpected" msgstr "Erro inesperado durante a validação" +#: src/app/main/ui/dashboard/team.cljs:798, src/app/main/ui/dashboard/team.cljs:955 msgid "errors.webhooks.unexpected-status" msgstr "Status inesperado %s" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:109, src/app/main/ui/auth/login.cljs:113 msgid "errors.wrong-credentials" msgstr "E-mail ou senha está incorreto." -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:25 msgid "errors.wrong-old-password" msgstr "A senha antiga está incorreta" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:77 msgid "feedback.description" msgstr "Descrição" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:95 msgid "feedback.discourse-go-to" msgstr "Vá para o fórum do Penpot" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:89 msgid "feedback.discourse-subtitle1" msgstr "" "Estamos felizes em ter você aqui. Se precisar de ajuda com algo, pesquise " "antes de postar." -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:88 msgid "feedback.discourse-title" msgstr "Comunidade do Penpot" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:72 msgid "feedback.subject" msgstr "Assunto" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:69 msgid "feedback.subtitle" msgstr "" "Por favor, descreva o motivo do seu e-mail, especificando se é um problema, " "uma ideia ou uma dúvida. Um membro de nossa equipe responderá o mais rápido " "possível." -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:68 msgid "feedback.title" msgstr "E-mail" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:105 msgid "feedback.twitter-go-to" msgstr "Ir ao X" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:99 msgid "feedback.twitter-subtitle1" msgstr "Precisa de ajuda com dúvidas mais técnicas? Veja o nosso X." -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:98 msgid "feedback.twitter-title" msgstr "Conta de suporte no X" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:30 msgid "generic.error" msgstr "Um erro ocorreu" -#: src/app/main/ui/inspect/attributes/blur.cljs +#: src/app/main/ui/viewer/inspect/attributes/blur.cljs:26 msgid "inspect.attributes.blur" msgstr "Desfoque" -#: src/app/main/ui/inspect/attributes/blur.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:115 msgid "inspect.attributes.blur.value" msgstr "Valor" -#: src/app/main/ui/inspect/attributes/common.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:112 msgid "inspect.attributes.color.hex" msgstr "HEX" -#: src/app/main/ui/inspect/attributes/common.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:114 msgid "inspect.attributes.color.hsla" msgstr "HSLA" -#: src/app/main/ui/inspect/attributes/common.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:113 msgid "inspect.attributes.color.rgba" msgstr "RGBA" -#: src/app/main/ui/inspect/attributes/fill.cljs +#: src/app/main/ui/viewer/inspect/attributes/fill.cljs:57 msgid "inspect.attributes.fill" msgstr "Preenchimento" -#: src/app/main/ui/inspect/attributes/image.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:99, src/app/main/ui/viewer/inspect/attributes/image.cljs:51 msgid "inspect.attributes.image.download" msgstr "Baixar imagem original" -#: src/app/main/ui/inspect/attributes/image.cljs +#: src/app/main/ui/viewer/inspect/attributes/image.cljs:39 msgid "inspect.attributes.image.height" msgstr "Altura" -#: src/app/main/ui/inspect/attributes/image.cljs +#: src/app/main/ui/viewer/inspect/attributes/image.cljs:32 msgid "inspect.attributes.image.width" msgstr "Largura" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout" msgstr "Layout" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.height" msgstr "Altura" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.left" msgstr "Esquerda" #: src/app/main/ui/inspect/attributes/layout.cljs, src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.radius" msgstr "Arredondamento" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.rotation" msgstr "Rotação" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.top" msgstr "Superior" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.width" msgstr "Largura" -#: src/app/main/ui/inspect/attributes/shadow.cljs +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:57 msgid "inspect.attributes.shadow" msgstr "Sombra" -#: src/app/main/ui/inspect/attributes/layout.cljs +#: src/app/main/ui/viewer/inspect/attributes/geometry.cljs:40 msgid "inspect.attributes.size" msgstr "Tamanho e posição" -#: src/app/main/ui/inspect/attributes/stroke.cljs +#: src/app/main/ui/viewer/inspect/attributes/stroke.cljs:52 msgid "inspect.attributes.stroke" msgstr "Traçado" -#, permanent +#, permanent, unused msgid "inspect.attributes.stroke.alignment.center" msgstr "Centro" -#, permanent +#, permanent, unused msgid "inspect.attributes.stroke.alignment.inner" msgstr "Dentro" -#, permanent +#, permanent, unused msgid "inspect.attributes.stroke.alignment.outer" msgstr "Fora" +#, unused msgid "inspect.attributes.stroke.style.dotted" msgstr "Pontilhado" +#, unused msgid "inspect.attributes.stroke.style.mixed" msgstr "Misto" +#, unused msgid "inspect.attributes.stroke.style.none" msgstr "Nenhum" +#, unused msgid "inspect.attributes.stroke.style.solid" msgstr "Sólido" #: src/app/main/ui/inspect/attributes/stroke.cljs +#, unused msgid "inspect.attributes.stroke.width" msgstr "Largura" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:81, src/app/main/ui/viewer/inspect/attributes/text.cljs:194 msgid "inspect.attributes.typography" msgstr "Tipografia" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:89 msgid "inspect.attributes.typography.font-family" msgstr "Família tipográfica" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:107 msgid "inspect.attributes.typography.font-size" msgstr "Tamanho da fonte" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:98 msgid "inspect.attributes.typography.font-style" msgstr "Estilo da fonte" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:134 msgid "inspect.attributes.typography.letter-spacing" msgstr "Espaçamento entre letras" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:125 msgid "inspect.attributes.typography.line-height" msgstr "Altura da linha" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:143 msgid "inspect.attributes.typography.text-decoration" msgstr "Decoração de texto" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:145 msgid "inspect.attributes.typography.text-decoration.none" msgstr "Nenhum" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:146 msgid "inspect.attributes.typography.text-decoration.strikethrough" msgstr "Riscado" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:147 msgid "inspect.attributes.typography.text-decoration.underline" msgstr "Sublinhado" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:156 msgid "inspect.attributes.typography.text-transform" msgstr "Transformação de texto" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:158 msgid "inspect.attributes.typography.text-transform.lowercase" msgstr "Minúsculo" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:159 msgid "inspect.attributes.typography.text-transform.none" msgstr "Nenhuma" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:160 msgid "inspect.attributes.typography.text-transform.titlecase" msgstr "Iniciais em maiúsculas" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:161 msgid "inspect.attributes.typography.text-transform.uppercase" msgstr "Maiúsculo" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:140 msgid "inspect.empty.help" msgstr "" "Se quiser saber mais sobre inspecionar o design, visite a central de ajuda " "do Penpot" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:143 msgid "inspect.empty.more-info" msgstr "Mais informações sobre inspecionar" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:135 msgid "inspect.empty.select" msgstr "" "Selecione uma forma, board ou grupo para inspecionar suas propriedades e " "código" -#: src/app/main/ui/inspect/right_sidebar.cljs +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:125 msgid "inspect.tabs.code" msgstr "Código" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:98 msgid "inspect.tabs.code.selected.circle" msgstr "Círculo" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:99 msgid "inspect.tabs.code.selected.component" msgstr "Componente" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:100 msgid "inspect.tabs.code.selected.curve" msgstr "Curva" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:101 msgid "inspect.tabs.code.selected.frame" msgstr "Board" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:102 msgid "inspect.tabs.code.selected.group" msgstr "Grupo" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:103 msgid "inspect.tabs.code.selected.image" msgstr "Imagem" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:104 msgid "inspect.tabs.code.selected.mask" msgstr "Máscara" -#: src/app/main/ui/inspect/right_sidebar.cljs +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:93 msgid "inspect.tabs.code.selected.multiple" msgstr "%s selecionados" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:105 msgid "inspect.tabs.code.selected.path" msgstr "Caminho" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:106 msgid "inspect.tabs.code.selected.rect" msgstr "Retângulo" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:107 msgid "inspect.tabs.code.selected.svg-raw" msgstr "SVG" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:108 msgid "inspect.tabs.code.selected.text" msgstr "Texto" -#: src/app/main/ui/inspect/right_sidebar.cljs +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:115 msgid "inspect.tabs.info" msgstr "Informação" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:158 msgid "label.shortcuts" msgstr "Atalhos" +#: src/app/main/ui/dashboard/import.cljs:527 msgid "labels.accept" msgstr "Aceitar" +#: src/app/main/ui/dashboard/team.cljs:968 msgid "labels.active" msgstr "Ativo" +#: src/app/main/ui/dashboard/fonts.cljs:175 msgid "labels.add-custom-font" msgstr "Adicionar fonte personalizada" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:120, src/app/main/ui/dashboard/team.cljs:276, src/app/main/ui/dashboard/team.cljs:519, src/app/main/ui/dashboard/team.cljs:549, src/app/main/ui/onboarding/team_choice.cljs:67 msgid "labels.admin" msgstr "Administrador" #: src/app/main/ui/workspace/comments.cljs +#, unused msgid "labels.all" msgstr "Todos" +#: src/app/main/ui/auth.cljs:37 msgid "labels.and" msgstr "e" +#: src/app/main/ui/onboarding/team_choice.cljs:162 msgid "labels.back" msgstr "Voltar" -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:59 msgid "labels.bad-gateway.desc-message" msgstr "" "Parece que você precisa esperar um pouco e tentar de novo; estamos " "realizando pequenas manutenções em nossos servidores." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:58 msgid "labels.bad-gateway.main-message" msgstr "Erro do servidor (Bad Gateway)" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/data/common.cljs:112, src/app/main/ui/dashboard/change_owner.cljs:69, src/app/main/ui/dashboard/import.cljs:514, src/app/main/ui/dashboard/team.cljs:868, src/app/main/ui/delete_shared.cljs:35, src/app/main/ui/export.cljs:164, src/app/main/ui/export.cljs:460, src/app/main/ui/settings/access_tokens.cljs:188, src/app/main/ui/viewer/share_link.cljs:203, src/app/main/ui/workspace/sidebar/assets/groups.cljs:149 msgid "labels.cancel" msgstr "Cancelar" +#: src/app/main/ui/dashboard/projects.cljs:93, src/app/main/ui/export.cljs:478, src/app/main/ui/settings/access_tokens.cljs:183, src/app/main/ui/viewer/login.cljs:77, src/app/main/ui/viewer/share_link.cljs:174, src/app/main/ui/workspace/libraries.cljs:522 msgid "labels.close" msgstr "Fechar" -#: src/app/main/ui/dashboard/comments.cljs +#: src/app/main/ui/dashboard/comments.cljs:104, src/app/main/ui/viewer/comments.cljs:70, src/app/main/ui/workspace/comments.cljs:126 msgid "labels.comments" msgstr "Comentários" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:985, src/app/main/ui/workspace/main_menu.cljs:110 msgid "labels.community" msgstr "Comunidade" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:103 msgid "labels.confirm-password" msgstr "Confirmar senha" +#: src/app/main/ui/dashboard/import.cljs:520, src/app/main/ui/export.cljs:465, src/app/main/ui/onboarding/newsletter.cljs:101 msgid "labels.continue" msgstr "Continuar" +#, unused msgid "labels.continue-with" msgstr "Continue com" +#: src/app/main/ui/viewer/login.cljs:75 msgid "labels.continue-with-penpot" msgstr "Você pode continuar com uma conta do Penpot" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:642 msgid "labels.copy-invitation-link" msgstr "Copiar link" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:157, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:190 msgid "labels.create" msgstr "Criar" -#: src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/dashboard/team_form.cljs +#: src/app/main/ui/dashboard/team_form.cljs:101, src/app/main/ui/dashboard/team_form.cljs:121 msgid "labels.create-team" msgstr "Criar nova equipe" -#: src/app/main/ui/dashboard/team_form.cljs +#: src/app/main/ui/dashboard/team_form.cljs:113 msgid "labels.create-team.placeholder" msgstr "Insira o nome da nova equipe" +#, unused msgid "labels.custom-fonts" msgstr "Fontes personalizadas" -#: src/app/main/ui/settings/sidebar.cljs +#: src/app/main/ui/settings/sidebar.cljs:73 msgid "labels.dashboard" msgstr "Painel" -#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:306, src/app/main/ui/dashboard/fonts.cljs:255, src/app/main/ui/dashboard/fonts.cljs:332, src/app/main/ui/dashboard/fonts.cljs:346, src/app/main/ui/dashboard/project_menu.cljs:115, src/app/main/ui/dashboard/team.cljs:904, src/app/main/ui/settings/access_tokens.cljs:209, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:209 msgid "labels.delete" msgstr "Excluir" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:357 msgid "labels.delete-comment" msgstr "Excluir comentário" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:354 msgid "labels.delete-comment-thread" msgstr "Excluir tópico" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:648 msgid "labels.delete-invitation" msgstr "Excluir convite" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:262 msgid "labels.delete-multi-files" msgstr "Excluir %s arquivos" -#: src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/files.cljs, src/app/main/ui/dashboard/files.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:28, src/app/main/ui/dashboard/files.cljs:72, src/app/main/ui/dashboard/files.cljs:156, src/app/main/ui/dashboard/projects.cljs:220, src/app/main/ui/dashboard/projects.cljs:224, src/app/main/ui/dashboard/sidebar.cljs:791 msgid "labels.drafts" msgstr "Rascunhos" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:350, src/app/main/ui/dashboard/fonts.cljs:252, src/app/main/ui/dashboard/team.cljs:902, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:205 msgid "labels.edit" msgstr "Editar" +#, unused msgid "labels.edit-file" msgstr "Editar arquivo" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:118, src/app/main/ui/dashboard/team.cljs:279, src/app/main/ui/dashboard/team.cljs:520, src/app/main/ui/dashboard/team.cljs:553, src/app/main/ui/onboarding/team_choice.cljs:66 msgid "labels.editor" msgstr "Editor" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:661 msgid "labels.expired-invitation" msgstr "Expirado" +#: src/app/main/ui/export.cljs:173 msgid "labels.export" msgstr "Exportar" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:51 msgid "labels.feedback-disabled" msgstr "Feedback desativado" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:42 msgid "labels.feedback-sent" msgstr "Feedback enviado" +#: src/app/main/ui/dashboard/fonts.cljs:412 msgid "labels.font-family" msgstr "Família tipográfica" +#, unused msgid "labels.font-providers" msgstr "Provedores de fonte" +#: src/app/main/ui/dashboard/fonts.cljs:413 msgid "labels.font-variants" msgstr "Estilos" +#: src/app/main/ui/dashboard/fonts.cljs:52, src/app/main/ui/dashboard/sidebar.cljs:811 msgid "labels.fonts" msgstr "Fontes" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:1015, src/app/main/ui/workspace/main_menu.cljs:142 msgid "labels.github-repo" msgstr "Repositório do Github" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:1032, src/app/main/ui/settings/sidebar.cljs:113, src/app/main/ui/workspace/main_menu.cljs:171 msgid "labels.give-feedback" msgstr "Enviar feedback" +#: src/app/main/ui/auth/recovery_request.cljs:110, src/app/main/ui/auth/register.cljs:285, src/app/main/ui/viewer/login.cljs:117 msgid "labels.go-back" msgstr "Voltar" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:978, src/app/main/ui/workspace/main_menu.cljs:102 msgid "labels.help-center" msgstr "Central de Ajuda" -#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/comments.cljs:103, src/app/main/ui/workspace/comments.cljs:67 msgid "labels.hide-resolved-comments" msgstr "Ocultar comentários resolvidos" +#: src/app/main/ui/dashboard/team.cljs:969 msgid "labels.inactive" msgstr "Inativo" +#: src/app/main/ui/dashboard/fonts.cljs:410 msgid "labels.installed-fonts" msgstr "Fontes instaladas" -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:144 msgid "labels.internal-error.desc-message" msgstr "" "Algo errado aconteceu. Por favor, tente novamente e se o problema " "persistir, entre em contato com o suporte." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:143 msgid "labels.internal-error.main-message" msgstr "Erro interno" -#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:516, src/app/main/ui/dashboard/team.cljs:89, src/app/main/ui/dashboard/team.cljs:97, src/app/main/ui/dashboard/team.cljs:708 msgid "labels.invitations" msgstr "Convites" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:51 msgid "labels.language" msgstr "Linguagem" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:1008, src/app/main/ui/workspace/main_menu.cljs:134 msgid "labels.libraries-and-templates" msgstr "Bibliotecas & Modelos" +#: src/app/main/ui/viewer/header.cljs:203 msgid "labels.log-or-sign" msgstr "Entre ou cadastre-se" -#: src/app/main/ui/settings.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:1040 msgid "labels.logout" msgstr "Sair" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/team.cljs:468 msgid "labels.member" msgstr "Membro" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:510, src/app/main/ui/dashboard/team.cljs:87, src/app/main/ui/dashboard/team.cljs:95 msgid "labels.members" msgstr "Membros" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:96 msgid "labels.new-password" msgstr "Nova senha" -#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/dashboard/comments.cljs +#: src/app/main/ui/dashboard/comments.cljs:128, src/app/main/ui/workspace/comments.cljs:161 msgid "labels.no-comments-available" msgstr "Nada de novo por aqui! Novas notificações de comentários irão aparecer aqui." -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:694 msgid "labels.no-invitations" msgstr "Não há convites pendentes." -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:696 #, markdown msgid "labels.no-invitations-hint" msgstr "Clique no botão **Convidar pessoas** para convidar membros para esta equipe." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:50 msgid "labels.not-found.desc-message" msgstr "Esta página não existe ou você não tem permissão para acessá-la." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:49 msgid "labels.not-found.main-message" msgstr "Ops!" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/projects.cljs:239, src/app/main/ui/dashboard/team.cljs:1095 msgid "labels.num-of-files" msgid_plural "labels.num-of-files" msgstr[0] "1 arquivo" msgstr[1] "%s arquivos" +#: src/app/main/ui/viewer/thumbnails.cljs:80 msgid "labels.num-of-frames" msgid_plural "labels.num-of-frames" msgstr[0] "1 tela" msgstr[1] "%s telas" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1090 msgid "labels.num-of-projects" msgid_plural "labels.num-of-projects" msgstr[0] "1 projeto" msgstr[1] "% projetos" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:89 msgid "labels.old-password" msgstr "Senha antiga" #: src/app/main/ui/workspace/comments.cljs +#, unused msgid "labels.only-yours" msgstr "Apenas seu" +#, unused msgid "labels.or" msgstr "ou" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:286, src/app/main/ui/dashboard/team.cljs:518, src/app/main/ui/dashboard/team.cljs:1076 msgid "labels.owner" msgstr "Proprietário" -#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/settings/sidebar.cljs:87 msgid "labels.password" msgstr "Senha" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:662 msgid "labels.pending-invitation" msgstr "Pendente" -#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/settings/profile.cljs:118, src/app/main/ui/settings/sidebar.cljs:82 msgid "labels.profile" msgstr "Perfil" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:784 msgid "labels.projects" msgstr "Projetos" -#: src/app/main/ui/settings/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:998, src/app/main/ui/settings/sidebar.cljs:106, src/app/main/ui/workspace/main_menu.cljs:126 msgid "labels.release-notes" msgstr "Notas de atualização" #: src/app/main/ui/workspace.cljs +#, unused msgid "labels.reload-file" msgstr "Recarregar arquivo" #: src/app/main/ui/workspace/libraries.cljs, src/app/main/ui/dashboard/team.cljs +#, unused msgid "labels.remove" msgstr "Remover" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:316 msgid "labels.remove-member" msgstr "Remover membro" -#: src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:271, src/app/main/ui/dashboard/project_menu.cljs:85, src/app/main/ui/dashboard/sidebar.cljs:539, src/app/main/ui/workspace/sidebar/assets/groups.cljs:157 msgid "labels.rename" msgstr "Renomear" -#: src/app/main/ui/dashboard/team_form.cljs +#: src/app/main/ui/dashboard/team_form.cljs:99 msgid "labels.rename-team" msgstr "Renomear equipe" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:645 msgid "labels.resend-invitation" msgstr "Reenviar convite" -#: src/app/main/ui/static.cljs, src/app/main/ui/static.cljs, src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:61, src/app/main/ui/static.cljs:70, src/app/main/ui/static.cljs:148 msgid "labels.retry" msgstr "Tentar novamente" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:469, src/app/main/ui/dashboard/team.cljs:709 msgid "labels.role" msgstr "Cargo" +#: src/app/main/ui/dashboard/fonts.cljs:380, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:191 msgid "labels.save" msgstr "Salvar" +#: src/app/main/ui/dashboard/fonts.cljs:415 msgid "labels.search-font" msgstr "Buscar fonte" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:82 msgid "labels.send" msgstr "Enviar" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:82 msgid "labels.sending" msgstr "Enviando…" -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:68 msgid "labels.service-unavailable.desc-message" msgstr "Estamos em manutenção programada de nossos sistemas." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:67 msgid "labels.service-unavailable.main-message" msgstr "Serviço indisponível" -#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:530, src/app/main/ui/dashboard/team.cljs:88, src/app/main/ui/dashboard/team.cljs:102, src/app/main/ui/settings/options.cljs:84, src/app/main/ui/settings/sidebar.cljs:93 msgid "labels.settings" msgstr "Configurações" +#, unused msgid "labels.share-prototype" msgstr "Compartilhar protótipo" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:800 msgid "labels.shared-libraries" msgstr "Bibliotecas" -#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/comments.cljs:82, src/app/main/ui/workspace/comments.cljs:55, src/app/main/ui/workspace/comments.cljs:135 msgid "labels.show-all-comments" msgstr "Mostrar todos os comentários" +#: src/app/main/ui/viewer/comments.cljs:115 msgid "labels.show-comments-list" msgstr "Mostrar lista de comentários" -#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/comments.cljs:91, src/app/main/ui/workspace/comments.cljs:61, src/app/main/ui/workspace/comments.cljs:136 msgid "labels.show-your-comments" msgstr "Mostrar apenas seus comentários" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:710 msgid "labels.status" msgstr "Status" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:992, src/app/main/ui/workspace/main_menu.cljs:118 msgid "labels.tutorials" msgstr "Tutorial" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:256 msgid "labels.unpublish-multi-files" msgstr "Despublicar arquivos %s" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:103 msgid "labels.update" msgstr "Atualizar" -#: src/app/main/ui/dashboard/team_form.cljs +#: src/app/main/ui/dashboard/team_form.cljs:120 msgid "labels.update-team" msgstr "Atualizar equipe" +#: src/app/main/ui/dashboard/fonts.cljs:241 msgid "labels.upload" msgstr "Carregar" +#: src/app/main/ui/dashboard/fonts.cljs:169 msgid "labels.upload-custom-fonts" msgstr "Enviar fontes personalizadas" +#: src/app/main/ui/dashboard/fonts.cljs:240 msgid "labels.uploading" msgstr "Enviando…" +#: src/app/main/ui/workspace/sidebar/sitemap.cljs:223 msgid "labels.view-only" msgstr "SOMENTE VISUALIZAÇÃO" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:123, src/app/main/ui/dashboard/team.cljs:282, src/app/main/ui/dashboard/team.cljs:521 msgid "labels.viewer" msgstr "Visualizador" +#: src/app/main/ui/dashboard/sidebar.cljs:523, src/app/main/ui/dashboard/team.cljs:90, src/app/main/ui/dashboard/team.cljs:100, src/app/main/ui/dashboard/team.cljs:880 msgid "labels.webhooks" msgstr "Webhooks" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:194 msgid "labels.write-new-comment" msgstr "Escrever um novo comentário" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/team.cljs:237 msgid "labels.you" msgstr "(você)" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:968 msgid "labels.your-account" msgstr "Sua conta" -#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs +#: src/app/main/data/media.cljs:49, src/app/main/data/workspace/media.cljs:223, src/app/main/data/workspace/media.cljs:453 msgid "media.loading" msgstr "Carregando imagem…" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/data/common.cljs:113 msgid "modals.add-shared-confirm.accept" msgstr "Adicionar na Biblioteca Compartilhada" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/data/common.cljs:111 msgid "modals.add-shared-confirm.hint" msgstr "" "Depois de adicionados como parte da Biblioteca Compartilhada, os recursos " "desta biblioteca de ativos estarão disponíveis para serem usados com o " "restante de seus arquivos." -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/data/common.cljs:110 msgid "modals.add-shared-confirm.message" msgstr "Adicionar “%s” na Biblioteca Compartilhada" -#: src/app/main/ui/workspace/nudge.cljs +#: src/app/main/ui/workspace/nudge.cljs:60 msgid "modals.big-nudge" msgstr "Grande deslocamento" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:127 msgid "modals.change-email.confirm-email" msgstr "Verificar o novo e-mail" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:114 msgid "modals.change-email.info" msgstr "" "Enviaremos a você um e-mail para seu e-mail atual “%s” para verificar sua " "identidade." -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:119 msgid "modals.change-email.new-email" msgstr "Novo e-mail" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:136 msgid "modals.change-email.submit" msgstr "Alterar e-mail" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:107 msgid "modals.change-email.title" msgstr "Alterar seu e-mail" +#: src/app/main/ui/dashboard/team.cljs:873 msgid "modals.create-webhook.submit-label" msgstr "Criar webhook" +#: src/app/main/ui/dashboard/team.cljs:838 msgid "modals.create-webhook.title" msgstr "Criar webhook" +#: src/app/main/ui/dashboard/team.cljs:849 msgid "modals.create-webhook.url.label" msgstr "URL do payload" +#: src/app/main/ui/dashboard/team.cljs:850 msgid "modals.create-webhook.url.placeholder" msgstr "https://exemplo.com.br/postreceive" -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:59 msgid "modals.delete-account.cancel" msgstr "Cancelar e manter minha conta" -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:64 msgid "modals.delete-account.confirm" msgstr "Sim, exclua minha conta" -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:53 msgid "modals.delete-account.info" msgstr "Ao excluir sua conta, você perderá todos os seus projetos e arquivos atuais." -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:46 msgid "modals.delete-account.title" msgstr "Tem certeza que deseja excluir sua conta?" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:298 msgid "modals.delete-comment-thread.accept" msgstr "Excluir conversa" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:297 msgid "modals.delete-comment-thread.message" msgstr "" "Tem certeza de que deseja excluir esta conversa? Todos os comentários neste " "tópico serão excluídos." -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:296 msgid "modals.delete-comment-thread.title" msgstr "Excluir conversa" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:123 msgid "modals.delete-file-confirm.accept" msgstr "Excluir arquivo" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:122 msgid "modals.delete-file-confirm.message" msgstr "Tem certeza que deseja excluir este arquivo?" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:121 msgid "modals.delete-file-confirm.title" msgstr "Excluindo arquivo" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:117 msgid "modals.delete-file-multi-confirm.accept" msgstr "Excluir arquivos" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:116 msgid "modals.delete-file-multi-confirm.message" msgstr "Tem certeza de que deseja excluir %s arquivos?" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:115 msgid "modals.delete-file-multi-confirm.title" msgstr "Excluindo %s arquivos" +#: src/app/main/ui/dashboard/fonts.cljs:345 msgid "modals.delete-font-variant.message" msgstr "" "Tem certeza de que deseja excluir este estilo de fonte? Ele não será " "carregado se for usado em um arquivo." +#: src/app/main/ui/dashboard/fonts.cljs:344 msgid "modals.delete-font-variant.title" msgstr "Excluindo estilo de fonte" +#: src/app/main/ui/dashboard/fonts.cljs:331 msgid "modals.delete-font.message" msgstr "" "Tem certeza que deseja excluir essa fonte? Ela não será carregada se for " "utilizada em um arquivo." +#: src/app/main/ui/dashboard/fonts.cljs:330 msgid "modals.delete-font.title" msgstr "Excluindo fonte" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs +#: src/app/main/ui/workspace/context_menu.cljs:522, src/app/main/ui/workspace/sidebar/sitemap.cljs:45 msgid "modals.delete-page.body" msgstr "Tem certeza de que deseja excluir esta página?" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs +#: src/app/main/ui/workspace/context_menu.cljs:521, src/app/main/ui/workspace/sidebar/sitemap.cljs:44 msgid "modals.delete-page.title" msgstr "Excluir página" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:69 msgid "modals.delete-project-confirm.accept" msgstr "Excluir projeto" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:68 msgid "modals.delete-project-confirm.message" msgstr "Tem certeza de que deseja excluir este projeto?" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:67 msgid "modals.delete-project-confirm.title" msgstr "Excluir projeto" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:51 msgid "modals.delete-shared-confirm.accept" msgid_plural "modals.delete-shared-confirm.accept" msgstr[0] "Excluir arquivo" msgstr[1] "Excluir arquivos" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:46 msgid "modals.delete-shared-confirm.message" msgid_plural "modals.delete-shared-confirm.message" msgstr[0] "Tem certeza de que deseja excluir este arquivo?" msgstr[1] "Tem certeza de que deseja excluir estes arquivos?" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:41 msgid "modals.delete-shared-confirm.title" msgid_plural "modals.delete-shared-confirm.title" msgstr[0] "Excluindo arquivo" msgstr[1] "Excluindo arquivos" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:435 msgid "modals.delete-team-confirm.accept" msgstr "Excluir equipe" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:434 msgid "modals.delete-team-confirm.message" msgstr "" "Tem certeza de que deseja excluir a equipe? Todos os projetos e arquivos " "associados a essa equipe serão excluídos permanentemente." -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:433 msgid "modals.delete-team-confirm.title" msgstr "Excluindo equipe" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:427 msgid "modals.delete-team-member-confirm.accept" msgstr "Excluir membro" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:426 msgid "modals.delete-team-member-confirm.message" msgstr "Tem certeza de que deseja excluir este membro da equipe?" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:425 msgid "modals.delete-team-member-confirm.title" msgstr "Excluir membro da equipe" +#: src/app/main/ui/dashboard/team.cljs:942 msgid "modals.delete-webhook.accept" msgstr "Excluir webhook" +#: src/app/main/ui/dashboard/team.cljs:941 msgid "modals.delete-webhook.message" msgstr "Tem certeza que deseja excluir este webhook?" +#: src/app/main/ui/dashboard/team.cljs:940 msgid "modals.delete-webhook.title" msgstr "Excluindo webhook" +#: src/app/main/ui/dashboard/team.cljs:872 msgid "modals.edit-webhook.submit-label" msgstr "Editar webhook" +#: src/app/main/ui/dashboard/team.cljs:837 msgid "modals.edit-webhook.title" msgstr "Editar webhook" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:218 msgid "modals.invite-member-confirm.accept" msgstr "Enviar convite" +#: src/app/main/ui/dashboard/team.cljs:213, src/app/main/ui/onboarding/team_choice.cljs:156 msgid "modals.invite-member.emails" msgstr "E-mails, separados por vírgulas" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:190 msgid "modals.invite-team-member.title" msgstr "Convide membros para a equipe" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:423, src/app/main/ui/dashboard/team.cljs:393 msgid "modals.leave-and-close-confirm.hint" msgstr "" "Como você é o único membro desta equipe, a equipe será excluída junto com " "seus projetos e arquivos." -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:422, src/app/main/ui/dashboard/team.cljs:392 msgid "modals.leave-and-close-confirm.message" msgstr "Tem certeza de que deseja sair da equipe %s?" +#: src/app/main/ui/dashboard/change_owner.cljs:59 msgid "modals.leave-and-reassign.forbidden" msgstr "" "Você não pode deixar a equipe se não houver outro membro para promover a " "proprietário. Você talvez queira excluir a equipe." -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/change_owner.cljs:55 msgid "modals.leave-and-reassign.hint1" msgstr "Você é o proprietário de %s." -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/change_owner.cljs:78 msgid "modals.leave-and-reassign.promote-and-leave" msgstr "Promover e sair" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/change_owner.cljs:34 msgid "modals.leave-and-reassign.select-member-to-promote" msgstr "Selecione um membro para promover" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/change_owner.cljs:49 msgid "modals.leave-and-reassign.title" msgstr "Selecione um membro para promover" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:402, src/app/main/ui/dashboard/sidebar.cljs:424, src/app/main/ui/dashboard/team.cljs:394, src/app/main/ui/dashboard/team.cljs:416 msgid "modals.leave-confirm.accept" msgstr "Sair da equipe" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:401, src/app/main/ui/dashboard/team.cljs:415 msgid "modals.leave-confirm.message" msgstr "Tem certeza de que deseja sair da equipe?" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:400, src/app/main/ui/dashboard/sidebar.cljs:421, src/app/main/ui/dashboard/team.cljs:391, src/app/main/ui/dashboard/team.cljs:414 msgid "modals.leave-confirm.title" msgstr "Saindo da equipe" -#: src/app/main/ui/workspace/nudge.cljs +#: src/app/main/ui/workspace/main_menu.cljs:266, src/app/main/ui/workspace/nudge.cljs:47 msgid "modals.nudge-title" msgstr "Quantidade de deslocamento" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:340 msgid "modals.promote-owner-confirm.accept" msgstr "Transferir equipe" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:339 msgid "modals.promote-owner-confirm.hint" msgstr "" "Se você transferir a propriedade, mudará sua função para Admin, perdendo " "algumas permissões sobre essa equipe. " -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:338 msgid "modals.promote-owner-confirm.message" msgstr "" "Você é o atual proprietário da equipe. Tem certeza de que deseja promover " "este usuário a proprietário?" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:337 msgid "modals.promote-owner-confirm.title" msgstr "Novo proprietário da equipe" #: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "modals.remove-shared-confirm.accept" msgstr "Remover da Biblioteca Compartilhada" #: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "modals.remove-shared-confirm.hint" msgstr "" "Depois de removido da Biblioteca Compartilhada, os Componentes deste " @@ -1839,2504 +2013,2827 @@ msgstr "" "arquivos." #: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "modals.remove-shared-confirm.message" msgstr "Remover “%s” da Biblioteca Compartilhada" -#: src/app/main/ui/workspace/nudge.cljs +#: src/app/main/ui/workspace/nudge.cljs:53 msgid "modals.small-nudge" msgstr "Pequeno deslocamento" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:52 msgid "modals.unpublish-shared-confirm.accept" msgid_plural "modals.unpublish-shared-confirm.accept" msgstr[0] "Despublicar" msgstr[1] "Despublicar" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:47 msgid "modals.unpublish-shared-confirm.message" msgid_plural "modals.unpublish-shared-confirm.message" msgstr[0] "Tem certeza de que deseja cancelar a publicação desta biblioteca?" msgstr[1] "Tem certeza de que deseja cancelar a publicação dessas bibliotecas?" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:42 msgid "modals.unpublish-shared-confirm.title" msgid_plural "modals.unpublish-shared-confirm.title" msgstr[0] "Cancelar publicação da biblioteca" msgstr[1] "Cancelar publicação das bibliotecas" #: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#, unused msgid "modals.update-remote-component-in-bulk.hint" msgstr "" "Você está prestes a atualizar componentes em uma biblioteca compartilhada. " "Isso pode afetar outros arquivos que a utilizam." #: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#, unused msgid "modals.update-remote-component-in-bulk.message" msgstr "Atualizar componentes em uma biblioteca compartilhada" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:380 msgid "modals.update-remote-component.accept" msgstr "Atualizar" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:379 msgid "modals.update-remote-component.cancel" msgstr "Cancelar" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:378 msgid "modals.update-remote-component.hint" msgstr "" "Você está prestes a atualizar um componente em uma biblioteca " "compartilhada. Isso pode afetar outros arquivos que a utilizam." -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:377 msgid "modals.update-remote-component.message" msgstr "Atualizar componente em uma biblioteca compartilhada" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:154, src/app/main/ui/dashboard/team.cljs:595 msgid "notifications.invitation-email-sent" msgstr "Convite enviado com sucesso" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:616 msgid "notifications.invitation-link-copied" msgstr "Link do convite copiado" -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:24 msgid "notifications.profile-deletion-not-allowed" msgstr "" "Você não pode deletar seu perfil. Determine um novo proprietário para suas " "equipes antes de continuar." -#: src/app/main/ui/settings/profile.cljs, src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:29, src/app/main/ui/settings/profile.cljs:35 msgid "notifications.profile-saved" msgstr "Perfil salvo com sucesso!" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:63 msgid "notifications.validation-email-sent" msgstr "E-mail de verificação enviado para %s. Verifique seu e-mail!" +#, unused msgid "onboarding-v2.before-start.desc1" msgstr "" "Saiba que existem muitos recursos disponíveis para ajudá-lo a começar a " "usar o Penpot, como o Guia do Usuário e nosso canal no Youtube." +#, unused msgid "onboarding-v2.before-start.desc2" msgstr "" "Informações detalhadas sobre como usar o Penpot. Da prototipagem até a " "organização ou compartilhamento de projetos." +#, unused msgid "onboarding-v2.before-start.desc2.title" msgstr "Guia do Usuário" +#, unused msgid "onboarding-v2.before-start.desc3" msgstr "" "Você pode assistir nossos tutoriais e os tutoriais feitos por nossa " "comunidade." +#, unused msgid "onboarding-v2.before-start.desc3.title" msgstr "Tutoriais em vídeo" +#, unused msgid "onboarding-v2.before-start.title" msgstr "Antes de começar" +#: src/app/main/ui/onboarding/newsletter.cljs:63 msgid "onboarding-v2.newsletter.desc" msgstr "" "Assine a newsletter do Penpot para se manter atualizado sobre o " "desenvolvimento, progressos e novidades." +#: src/app/main/ui/onboarding/newsletter.cljs:83 msgid "onboarding-v2.newsletter.news" msgstr "" "Quero receber notícias sobre o Penpot (postagens do blog, tutoriais em " "vídeo, lives...)." +#: src/app/main/ui/onboarding/newsletter.cljs:91 msgid "onboarding-v2.newsletter.privacy1" msgstr "Sua privacidade é importante para nós, saiba mais aqui " +#: src/app/main/ui/onboarding/newsletter.cljs:97 msgid "onboarding-v2.newsletter.privacy2" msgstr "" "Enviaremos apenas e-mails relevantes para você e você pode cancelar a " "inscrição a qualquer momento através do link de cancelamento em qualquer " "uma das newsletters." +#: src/app/main/ui/onboarding/newsletter.cljs:71 msgid "onboarding-v2.newsletter.updates" msgstr "" "Quero receber atualizações do produto (novos recursos, lançamentos, " "correções...)." +#, unused msgid "onboarding-v2.welcome.desc1" msgstr "" "O Penpot é Código Aberto (open-source) e é feito pela Kaleidos e também " "pela comunidade, onde muitas pessoas já se ajudam. Todos podem colaborar:" +#, unused msgid "onboarding-v2.welcome.desc2" msgstr "" "Um espaço público para aprender, compartilhar e discutir sobre o Penpot, " "seu presente e futuro com toda a Comunidade e a equipe principal do Penpot." +#, unused msgid "onboarding-v2.welcome.desc2.title" msgstr "Participando da Comunidade" +#, unused msgid "onboarding-v2.welcome.desc3" msgstr "" "Onde você poderá colaborar com traduções, solicitações de recursos, " "contribuições principais, caçando bugs…" +#, unused msgid "onboarding-v2.welcome.desc3.title" msgstr "Guia do contribuidor" +#: src/app/main/ui/onboarding/team_choice.cljs:31 msgid "onboarding-v2.welcome.title" msgstr "Bem-vindo ao Penpot!" +#: src/app/main/ui/onboarding/team_choice.cljs:215 msgid "onboarding.choice.team-up.create-team-desc" msgstr "Depois de nomear sua equipe, você poderá convidar pessoas para participar." +#: src/app/main/ui/onboarding/team_choice.cljs:224 msgid "onboarding.choice.team-up.create-team-placeholder" msgstr "Digite o nome da equipe" +#: src/app/main/ui/dashboard/projects.cljs:89, src/app/main/ui/onboarding/team_choice.cljs:140 msgid "onboarding.choice.team-up.invite-members" msgstr "Convide membros" +#: src/app/main/ui/onboarding/team_choice.cljs:141 msgid "onboarding.choice.team-up.invite-members-info" msgstr "" "Lembre-se de incluir todos. Desenvolvedores, designers, gerentes... a " "diversidade soma :)" +#: src/app/main/ui/dashboard/team.cljs:202, src/app/main/ui/onboarding/team_choice.cljs:146 msgid "onboarding.choice.team-up.roles" msgstr "Convide com a função:" +#, unused msgid "onboarding.newsletter.accept" msgstr "Sim, assinar" +#: src/app/main/ui/onboarding/newsletter.cljs:40 msgid "onboarding.newsletter.acceptance-message" msgstr "" "Sua solicitação de inscrição foi enviada, enviaremos um e-mail para " "confirmá-la." +#: src/app/main/ui/onboarding/newsletter.cljs:95 msgid "onboarding.newsletter.policy" msgstr "Politica de privacidade." +#: src/app/main/ui/onboarding/newsletter.cljs:60 msgid "onboarding.newsletter.title" msgstr "Deseja receber novidades sobre o Penpot?" +#: src/app/main/ui/onboarding/team_choice.cljs:213 msgid "onboarding.team-modal.create-team" msgstr "Crie uma equipe" +#: src/app/main/ui/onboarding/team_choice.cljs:35 msgid "onboarding.team-modal.create-team-desc" msgstr "" "Uma equipe permite que você colabore com outros usuários do Penpot " "trabalhando nos mesmos arquivos e projetos." +#: src/app/main/ui/onboarding/team_choice.cljs:40 msgid "onboarding.team-modal.create-team-feature-1" msgstr "Arquivos e projetos ilimitados" +#: src/app/main/ui/onboarding/team_choice.cljs:44 msgid "onboarding.team-modal.create-team-feature-2" msgstr "Edição multiusuário" +#: src/app/main/ui/onboarding/team_choice.cljs:48 msgid "onboarding.team-modal.create-team-feature-3" msgstr "Gerenciamento de funções" +#: src/app/main/ui/onboarding/team_choice.cljs:52 msgid "onboarding.team-modal.create-team-feature-4" msgstr "Membros ilimitados" +#: src/app/main/ui/onboarding/team_choice.cljs:56 msgid "onboarding.team-modal.create-team-feature-5" msgstr "100% gratuito!" +#: src/app/main/ui/onboarding/templates.cljs:78 msgid "onboarding.templates.subtitle" msgstr "Aqui estão alguns modelos." +#: src/app/main/ui/onboarding/templates.cljs:77 msgid "onboarding.templates.title" msgstr "Começar a criar" +#, unused msgid "onboarding.welcome.alt" msgstr "Penpot" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:99 msgid "profile.recovery.go-to-login" msgstr "Ir para a página de login" -#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs, src/app/main/ui/workspace/sidebar/options/menus/layer.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs, src/app/main/ui/workspace/sidebar/options/menus/blur.cljs +#: src/app/main/ui/viewer/inspect/exports.cljs:147, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:631, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:137, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:148, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:188, src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:158, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:399, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:410, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:430, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:441, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:458, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:472, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:309, src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:183, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:373, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:389, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:245, src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:172 msgid "settings.multiple" msgstr "Misto" # SECTIONS +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:414 msgid "shortcut-section.basics" msgstr "Fundamentos" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:420 msgid "shortcut-section.dashboard" msgstr "Painel" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:423 msgid "shortcut-section.viewer" msgstr "Espectador" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:417 msgid "shortcut-section.workspace" msgstr "Espaço de trabalho" # SUBSECTIONS +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:56 msgid "shortcut-subsection.alignment" msgstr "Alinhamento" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:57 msgid "shortcut-subsection.edit" msgstr "Editar" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:58 msgid "shortcut-subsection.general-dashboard" msgstr "Geral" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:59 msgid "shortcut-subsection.general-viewer" msgstr "Geral" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:60 msgid "shortcut-subsection.main-menu" msgstr "Menu principal" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:61 msgid "shortcut-subsection.modify-layers" msgstr "Modificar camadas" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:62 msgid "shortcut-subsection.navigation-dashboard" msgstr "Navegação" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:63 msgid "shortcut-subsection.navigation-viewer" msgstr "Navegação" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:64 msgid "shortcut-subsection.navigation-workspace" msgstr "Navegação" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:65 msgid "shortcut-subsection.panels" msgstr "Painéis" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:66 msgid "shortcut-subsection.path-editor" msgstr "Curvas" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:67 msgid "shortcut-subsection.shape" msgstr "Formas" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:69 msgid "shortcut-subsection.tools" msgstr "Ferramentas" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:70 msgid "shortcut-subsection.zoom-viewer" msgstr "Zoom" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:71 msgid "shortcut-subsection.zoom-workspace" msgstr "Zoom" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:72 msgid "shortcuts.add-comment" msgstr "Comentários" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:73 msgid "shortcuts.add-node" msgstr "Adicionar ponto" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:74 msgid "shortcuts.align-bottom" msgstr "Alinhar a base" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:76 msgid "shortcuts.align-hcenter" msgstr "Centralizar horizontalmente" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:78 msgid "shortcuts.align-left" msgstr "Alinhar a esquerda" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:79 msgid "shortcuts.align-right" msgstr "Alinhar a direita" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:80 msgid "shortcuts.align-top" msgstr "Alinhar ao topo" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:81 msgid "shortcuts.align-vcenter" msgstr "Centralizar verticalmente" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:82 msgid "shortcuts.artboard-selection" msgstr "Criar tela a partir da seleção" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:84 msgid "shortcuts.bool-difference" msgstr "Subtrair" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:85 msgid "shortcuts.bool-exclude" msgstr "Exclusão" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:86 msgid "shortcuts.bool-intersection" msgstr "Interseccionar" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:87 msgid "shortcuts.bool-union" msgstr "União" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:88 msgid "shortcuts.bring-back" msgstr "Mover ao fundo" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:89 msgid "shortcuts.bring-backward" msgstr "Mover para trás" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:90 msgid "shortcuts.bring-forward" msgstr "Mover para a frente" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:91 msgid "shortcuts.bring-front" msgstr "Mover ao topo" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:92 msgid "shortcuts.clear-undo" msgstr "Limpar desfazer" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:93 msgid "shortcuts.copy" msgstr "Copiar" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:94 msgid "shortcuts.create-component" msgstr "Criar componente" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:95 msgid "shortcuts.create-new-project" msgstr "Criar novo" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:96 msgid "shortcuts.cut" msgstr "Recortar" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:97 msgid "shortcuts.decrease-zoom" msgstr "Reduzir zoom" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:98 msgid "shortcuts.delete" msgstr "Apagar" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:99 msgid "shortcuts.delete-node" msgstr "Apagar ponto" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:100 msgid "shortcuts.detach-component" msgstr "Quebrar componente" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:101 msgid "shortcuts.draw-curve" msgstr "Curva" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:102 msgid "shortcuts.draw-ellipse" msgstr "Elipse" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:103 msgid "shortcuts.draw-frame" msgstr "Tela" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:104 msgid "shortcuts.draw-nodes" msgstr "Desenhar caminho" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:105 msgid "shortcuts.draw-path" msgstr "Caminho" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:106 msgid "shortcuts.draw-rect" msgstr "Retângulo" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:107 msgid "shortcuts.draw-text" msgstr "Texto" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:108 msgid "shortcuts.duplicate" msgstr "Duplicar" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:109 msgid "shortcuts.escape" msgstr "Cancelar" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:110 msgid "shortcuts.export-shapes" msgstr "Exportar formas" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:111 msgid "shortcuts.fit-all" msgstr "Ajustar para ver tudo" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:112 msgid "shortcuts.flip-horizontal" msgstr "Refletir horizontalmente" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:113 msgid "shortcuts.flip-vertical" msgstr "Refletir verticalmente" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:116 msgid "shortcuts.go-to-drafts" msgstr "Ir para rascunhos" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:117 msgid "shortcuts.go-to-libs" msgstr "Ir para as bibliotecas compartilhadas" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:118 msgid "shortcuts.go-to-search" msgstr "Pesquisar" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:119 msgid "shortcuts.group" msgstr "Agrupar" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:120 msgid "shortcuts.h-distribute" msgstr "Distribuir horizontalmente" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:121 msgid "shortcuts.hide-ui" msgstr "Mostrar/ocultar interface" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:122 msgid "shortcuts.increase-zoom" msgstr "Mais zoom" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:123 msgid "shortcuts.insert-image" msgstr "Inserir imagem" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:125 msgid "shortcuts.join-nodes" msgstr "Unir pontos" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:131 msgid "shortcuts.make-corner" msgstr "Arredondar canto" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:132 msgid "shortcuts.make-curve" msgstr "Criar curva" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:133 msgid "shortcuts.mask" msgstr "Máscara" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:134 msgid "shortcuts.merge-nodes" msgstr "Unir pontos" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:135 msgid "shortcuts.move" msgstr "Mover" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:136 msgid "shortcuts.move-fast-down" msgstr "Mover para baixo rápido" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:137 msgid "shortcuts.move-fast-left" msgstr "Mover para a esquerda rápido" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:138 msgid "shortcuts.move-fast-right" msgstr "Mover para a direita rápido" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:139 msgid "shortcuts.move-fast-up" msgstr "Mover para cima rápido" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:140 msgid "shortcuts.move-nodes" msgstr "Mover ponto" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:141 msgid "shortcuts.move-unit-down" msgstr "Mover para baixo" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:142 msgid "shortcuts.move-unit-left" msgstr "Mover para a esquerda" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:143 msgid "shortcuts.move-unit-right" msgstr "Mover para a direita" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:144 msgid "shortcuts.move-unit-up" msgstr "Mover para cima" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:145 msgid "shortcuts.next-frame" msgstr "Próximo quadro" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:516 msgid "shortcuts.not-found" msgstr "Não foram encontrados atalhos" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:146 msgid "shortcuts.opacity-0" msgstr "Definir opacidade para 100%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:147 msgid "shortcuts.opacity-1" msgstr "Definir opacidade para 10%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:148 msgid "shortcuts.opacity-2" msgstr "Definir opacidade para 20%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:149 msgid "shortcuts.opacity-3" msgstr "Definir opacidade para 30%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:150 msgid "shortcuts.opacity-4" msgstr "Definir opacidade para 40%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:151 msgid "shortcuts.opacity-5" msgstr "Definir opacidade para 50%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:152 msgid "shortcuts.opacity-6" msgstr "Definir opacidade para 60%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:153 msgid "shortcuts.opacity-7" msgstr "Definir opacidade para 70%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:154 msgid "shortcuts.opacity-8" msgstr "Definir opacidade para 80%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:155 msgid "shortcuts.opacity-9" msgstr "Definir opacidade para 90%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:156 msgid "shortcuts.open-color-picker" msgstr "Seletor de Cores" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:157 msgid "shortcuts.open-comments" msgstr "Ir para seção de comentários" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:158 msgid "shortcuts.open-dashboard" msgstr "Ir para o dashboard" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:159 msgid "shortcuts.open-inspect" msgstr "Ir para seção de inspeção" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:160 msgid "shortcuts.open-interactions" msgstr "Ir para seção de interação" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:161 msgid "shortcuts.open-viewer" msgstr "Ir para seção de interação" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:162 msgid "shortcuts.open-workspace" msgstr "Ir para o workspace" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:260 msgid "shortcuts.or" msgstr " ou " +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:163 msgid "shortcuts.paste" msgstr "Colar" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:164 msgid "shortcuts.prev-frame" msgstr "Tela anterior" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:165 msgid "shortcuts.redo" msgstr "Refazer" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:166 msgid "shortcuts.reset-zoom" msgstr "Redefinir zoom" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:168 msgid "shortcuts.search-placeholder" msgstr "Procurar nos atalhos" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:169 msgid "shortcuts.select-all" msgstr "Selecionar todos" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:173 msgid "shortcuts.separate-nodes" msgstr "Separar pontos" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:174 msgid "shortcuts.show-pixel-grid" msgstr "Mostrar/ocultar grade de pixels" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:175 msgid "shortcuts.show-shortcuts" msgstr "Mostrar/ocultar atalhos" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:176 msgid "shortcuts.snap-nodes" msgstr "Aderir aos pontos" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:177 msgid "shortcuts.snap-pixel-grid" msgstr "Ajustar a grade de Pixels" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:178 msgid "shortcuts.start-editing" msgstr "Começar a editar" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:179 msgid "shortcuts.start-measure" msgstr "Iniciar medição" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:180 msgid "shortcuts.stop-measure" msgstr "Parar medição" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:185 msgid "shortcuts.thumbnail-set" msgstr "Definir como miniatura" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:496, src/app/main/ui/workspace/sidebar/shortcuts.cljs:505 msgid "shortcuts.title" msgstr "Atalhos do teclado" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:186 msgid "shortcuts.toggle-alignment" msgstr "Alternar alinhamento dinâmico" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:187 msgid "shortcuts.toggle-assets" msgstr "Mostrar/Esconder ativos" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:188 msgid "shortcuts.toggle-colorpalette" msgstr "Mostrar/Esconder paleta de cores" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:189 msgid "shortcuts.toggle-focus-mode" msgstr "Entrar/Sair do modo de foco" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:190 msgid "shortcuts.toggle-fullscreen" msgstr "Entrar/Sair da tela cheia" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:192 msgid "shortcuts.toggle-history" msgstr "Mostrar/Esconder histórico" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:193 msgid "shortcuts.toggle-layers" msgstr "Mostrar/Esconder camadas" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:194 msgid "shortcuts.toggle-layout-flex" msgstr "Adicionar/remover Flex Layout" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:196 msgid "shortcuts.toggle-lock" msgstr "Bloquear selecionado" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:197 msgid "shortcuts.toggle-lock-size" msgstr "Fixar proporções" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:202 msgid "shortcuts.toggle-textpalette" msgstr "Mostrar/Esconder paleta de tipografias" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:205 msgid "shortcuts.toggle-zoom-style" msgstr "Alternar estilo de zoom" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:207 msgid "shortcuts.undo" msgstr "Desfazer" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:208 msgid "shortcuts.ungroup" msgstr "Desagrupar" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:209 msgid "shortcuts.unmask" msgstr "Retirar máscara" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:210 msgid "shortcuts.v-distribute" msgstr "Distribuir verticalmente" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:213 msgid "shortcuts.zoom-selected" msgstr "Ajustar zoom a seleção" -#: src/app/main/ui/dashboard/files.cljs +#: src/app/main/ui/dashboard/files.cljs:158 msgid "title.dashboard.files" msgstr "%s - Penpot" -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:37 msgid "title.dashboard.font-providers" msgstr "Provedores de fonte - %s - Penpot" -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:36 msgid "title.dashboard.fonts" msgstr "Fontes - %s - Penpot" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:320 msgid "title.dashboard.projects" msgstr "Projetos - %s - Penpot" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:32 msgid "title.dashboard.search" msgstr "Pesquisar - %s - Penpot" -#: src/app/main/ui/dashboard/libraries.cljs +#: src/app/main/ui/dashboard/libraries.cljs:44 msgid "title.dashboard.shared-libraries" msgstr "Bibliotecas Compartilhadas - %s - Penpot" -#: src/app/main/ui/auth/verify_token.cljs, src/app/main/ui/auth.cljs +#: src/app/main/ui/auth/verify_token.cljs:68, src/app/main/ui/auth.cljs:54 msgid "title.default" msgstr "Penpot - Liberdade de design para equipes" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:110 msgid "title.settings.feedback" msgstr "Dê sua opinião - Penpot" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:80 msgid "title.settings.options" msgstr "Configurações - Penpot" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:115 msgid "title.settings.password" msgstr "Senha - Penpot" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:115 msgid "title.settings.profile" msgstr "Perfil - Penpot" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:727 msgid "title.team-invitations" msgstr "Convites - %s - Penpot" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:493 msgid "title.team-members" msgstr "Membros - %s - Penpot" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1036 msgid "title.team-settings" msgstr "Configurações - %s - Penpot" +#: src/app/main/ui/dashboard/team.cljs:989 msgid "title.team-webhooks" msgstr "Webhooks - %s - Penpot" -#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs +#: src/app/main/ui/viewer.cljs:419 msgid "title.viewer" msgstr "%s - Modo protótipo - Penpot" -#: src/app/main/ui/workspace.cljs +#: src/app/main/ui/workspace.cljs:190 msgid "title.workspace" msgstr "%s - Penpot" +#: src/app/main/ui.cljs:144 msgid "viewer.breaking-change.description" msgstr "" "Este link compartilhável não é mais válido. Crie ou peça ao proprietário um " "novo." +#: src/app/main/ui.cljs:143 msgid "viewer.breaking-change.message" msgstr "Desculpe!" -#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs +#: src/app/main/ui/viewer.cljs:569 msgid "viewer.empty-state" msgstr "Não foram encontradas telas nesta página." -#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs +#: src/app/main/ui/viewer.cljs:574 msgid "viewer.frame-not-found" msgstr "Tela não encontrada." +#: src/app/main/ui/viewer/header.cljs:336 msgid "viewer.header.comments-section" msgstr "Comentários (%s)" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/interactions.cljs:292 msgid "viewer.header.dont-show-interactions" msgstr "Não mostrar interações" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/header.cljs:188 msgid "viewer.header.fullscreen" msgstr "Tela cheia" +#: src/app/main/ui/viewer/header.cljs:345 msgid "viewer.header.inspect-section" msgstr "Inspeção (%s)" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/interactions.cljs:282 msgid "viewer.header.interactions" msgstr "Interações" +#: src/app/main/ui/viewer/header.cljs:327 msgid "viewer.header.interactions-section" msgstr "Interações (%s)" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/share_link.cljs:187 msgid "viewer.header.share.copy-link" msgstr "Copiar link" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/interactions.cljs:300 msgid "viewer.header.show-interactions" msgstr "Mostrar interações" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/interactions.cljs:311 msgid "viewer.header.show-interactions-on-click" msgstr "Mostrar interações ao clicar" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/header.cljs:231 msgid "viewer.header.sitemap" msgstr "Mapa do site" -#, fuzzy +#: src/app/main/ui/dashboard/team.cljs:948 msgid "webhooks.last-delivery.success" msgstr "O último envio foi bem-sucedido." -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:58 msgid "workspace.align.hcenter" msgstr "Centralizar horizontalmente (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:74 msgid "workspace.align.hdistribute" msgstr "Distribuir espaçamento horizontal (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:50 msgid "workspace.align.hleft" msgstr "Alinhar a esquerda (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:66 msgid "workspace.align.hright" msgstr "Alinhar a direita (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:99 msgid "workspace.align.vbottom" msgstr "Alinhar a base (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:91 msgid "workspace.align.vcenter" msgstr "Centralizar verticalmente (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:104 msgid "workspace.align.vdistribute" msgstr "Distribuir espaçamento vertical (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:83 msgid "workspace.align.vtop" msgstr "Alinhar ao topo (%s)" #: src/app/main/ui/workspace/sidebar/assets.cljs +#, unused msgid "workspace.assets.assets" msgstr "Ativos" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets.cljs:134 msgid "workspace.assets.box-filter-all" msgstr "Todos os ativos" -#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/dashboard/grid.cljs:130, src/app/main/ui/dashboard/grid.cljs:162, src/app/main/ui/workspace/sidebar/assets/colors.cljs:485, src/app/main/ui/workspace/sidebar/assets.cljs:150 msgid "workspace.assets.colors" msgstr "Cores" -#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/dashboard/grid.cljs:126, src/app/main/ui/dashboard/grid.cljs:141, src/app/main/ui/workspace/sidebar/assets/components.cljs:513, src/app/main/ui/workspace/sidebar/assets.cljs:139 msgid "workspace.assets.components" msgstr "Componentes" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:131 msgid "workspace.assets.create-group" msgstr "Criar grupo" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:142 msgid "workspace.assets.create-group-hint" msgstr "" "Seus itens serão nomeados automaticamente como \"nome do grupo / nome do " "item\"" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/context_menu.cljs:529, src/app/main/ui/workspace/sidebar/assets/colors.cljs:251, src/app/main/ui/workspace/sidebar/assets/components.cljs:577, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:424, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:443 msgid "workspace.assets.delete" msgstr "Excluir" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/context_menu.cljs:534, src/app/main/ui/workspace/sidebar/assets/components.cljs:572 msgid "workspace.assets.duplicate" msgstr "Duplicar" -#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:247, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:439 msgid "workspace.assets.edit" msgstr "Editar" -#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/graphics.cljs:384, src/app/main/ui/workspace/sidebar/assets.cljs:145 msgid "workspace.assets.graphics" msgstr "Imagens" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:255, src/app/main/ui/workspace/sidebar/assets/components.cljs:581, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:428, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:448 msgid "workspace.assets.group" msgstr "Agrupar" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:141 msgid "workspace.assets.group-name" msgstr "Nome do grupo" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets.cljs:168 msgid "workspace.assets.libraries" msgstr "Bibliotecas" +#: src/app/main/ui/workspace/sidebar/assets/file_library.cljs:62, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:347 msgid "workspace.assets.local-library" msgstr "biblioteca local" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/file_library.cljs:295 msgid "workspace.assets.not-found" msgstr "Nenhum ativo encontrado" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/context_menu.cljs:532, src/app/main/ui/workspace/sidebar/assets/colors.cljs:243, src/app/main/ui/workspace/sidebar/assets/components.cljs:566, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:421, src/app/main/ui/workspace/sidebar/assets/groups.cljs:63, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:434 msgid "workspace.assets.rename" msgstr "Renomear" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:132 msgid "workspace.assets.rename-group" msgstr "Renomear grupo" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets.cljs:173 msgid "workspace.assets.search" msgstr "Procurar nos ativos" #: src/app/main/ui/workspace/sidebar/assets.cljs +#, unused msgid "workspace.assets.selected-count" msgid_plural "workspace.assets.selected-count" msgstr[0] "%s item selecionado" msgstr[1] "%s itens selecionados" -#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/dashboard/grid.cljs:134, src/app/main/ui/dashboard/grid.cljs:189, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:397, src/app/main/ui/workspace/sidebar/assets.cljs:155 msgid "workspace.assets.typography" msgstr "Tipografias" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused msgid "workspace.assets.typography.font-id" msgstr "Fonte" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:505 msgid "workspace.assets.typography.font-size" msgstr "Tamanho" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:501 msgid "workspace.assets.typography.font-variant-id" msgstr "Variante" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:523 msgid "workspace.assets.typography.go-to-edit" msgstr "Ir para biblioteca de estilo para editar" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:513 msgid "workspace.assets.typography.letter-spacing" msgstr "Espaçamento de letra" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:509 msgid "workspace.assets.typography.line-height" msgstr "Altura da linha" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, src/app/main/ui/inspect/attributes/text.cljs, src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/dashboard/grid.cljs:199, src/app/main/ui/workspace/libraries.cljs:461, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:464, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:489, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:596, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:615 msgid "workspace.assets.typography.sample" msgstr "Ag" +#, unused msgid "workspace.assets.typography.text-styles" msgstr "Estilos de texto" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:517 msgid "workspace.assets.typography.text-transform" msgstr "Transformações de texto" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:66 msgid "workspace.assets.ungroup" msgstr "Desagrupar" +#: src/app/main/ui/workspace/sidebar/layers.cljs:525 msgid "workspace.focus.focus-mode" msgstr "Modo de foco" +#: src/app/main/ui/workspace/context_menu.cljs:287, src/app/main/ui/workspace/context_menu.cljs:553 msgid "workspace.focus.focus-off" msgstr "Foco desligado" +#: src/app/main/ui/workspace/context_menu.cljs:286 msgid "workspace.focus.focus-on" msgstr "Foco ligado" +#, unused msgid "workspace.focus.selection" msgstr "Seleção" -#: src/app/main/data/workspace/libraries.cljs, src/app/main/ui/components/color_bullet.cljs +#: src/app/util/color.cljs:34 msgid "workspace.gradients.linear" msgstr "Gradiente linear" -#: src/app/main/data/workspace/libraries.cljs, src/app/main/ui/components/color_bullet.cljs +#: src/app/util/color.cljs:35 msgid "workspace.gradients.radial" msgstr "Gradiente radial" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:238 msgid "workspace.header.menu.disable-dynamic-alignment" msgstr "Desabilitar alinhamento dinâmico" #: src/app/main/ui/workspace/header.cljs +#, unused msgid "workspace.header.menu.disable-scale-text" msgstr "Desativar escalonamento de texto" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:223 msgid "workspace.header.menu.disable-snap-guides" msgstr "Desativar aderência as réguas" +#: src/app/main/ui/workspace/main_menu.cljs:253 msgid "workspace.header.menu.disable-snap-pixel-grid" msgstr "Desativar aderência a grade de pixels" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:239 msgid "workspace.header.menu.enable-dynamic-alignment" msgstr "Habilitar alinhamento dinâmico" #: src/app/main/ui/workspace/header.cljs +#, unused msgid "workspace.header.menu.enable-scale-text" msgstr "Ativar escalonamento de texto" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:224 msgid "workspace.header.menu.enable-snap-guides" msgstr "Aderir as réguas" +#: src/app/main/ui/workspace/main_menu.cljs:254 msgid "workspace.header.menu.enable-snap-pixel-grid" msgstr "Habilitar aderência a grade de pixels" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:382 msgid "workspace.header.menu.hide-artboard-names" msgstr "Esconder nomes das telas" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:353 msgid "workspace.header.menu.hide-palette" msgstr "Esconder paleta de cores" +#: src/app/main/ui/workspace/main_menu.cljs:394 msgid "workspace.header.menu.hide-pixel-grid" msgstr "Ocultar grade de pixels" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:320 msgid "workspace.header.menu.hide-rules" msgstr "Ocultar réguas" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:367 msgid "workspace.header.menu.hide-textpalette" msgstr "Ocultar paleta de tipografias" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:731 msgid "workspace.header.menu.option.edit" msgstr "Editar" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:720 msgid "workspace.header.menu.option.file" msgstr "Arquivo" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:777 msgid "workspace.header.menu.option.help-info" msgstr "Ajuda e informações" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:753 msgid "workspace.header.menu.option.preferences" msgstr "Preferências" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:742 msgid "workspace.header.menu.option.view" msgstr "Visualizar" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:432 msgid "workspace.header.menu.select-all" msgstr "Selecionar tudo" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:383 msgid "workspace.header.menu.show-artboard-names" msgstr "Mostrar nomes das telas" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:354 msgid "workspace.header.menu.show-palette" msgstr "Mostrar paleta de cores" +#: src/app/main/ui/workspace/main_menu.cljs:395 msgid "workspace.header.menu.show-pixel-grid" msgstr "Mostrar grade de pixels" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:321 msgid "workspace.header.menu.show-rules" msgstr "Mostrar réguas" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:368 msgid "workspace.header.menu.show-textpalette" msgstr "Mostrar paleta de tipografias" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/viewer/header.cljs:98, src/app/main/ui/workspace/right_header.cljs:120 msgid "workspace.header.reset-zoom" msgstr "Redefinir" #: src/app/main/ui/workspace/header.cljs +#, unused msgid "workspace.header.save-error" msgstr "Erro ao salvar" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/right_header.cljs:52 msgid "workspace.header.saved" msgstr "Salvo" #: src/app/main/ui/workspace/header.cljs +#, unused msgid "workspace.header.saving" msgstr "Salvando" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/right_header.cljs:42, src/app/main/ui/workspace/right_header.cljs:47 msgid "workspace.header.unsaved" msgstr "Há alterações não salvas" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/right_header.cljs:239 msgid "workspace.header.viewer" msgstr "Ver protótipo (%s)" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/viewer/header.cljs:109 msgid "workspace.header.zoom-fill" msgstr "Ajustar até preencher" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/viewer/header.cljs:102 msgid "workspace.header.zoom-fit" msgstr "Ajustar até encaixar" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/right_header.cljs:123 msgid "workspace.header.zoom-fit-all" msgstr "Ajustar a janela" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/viewer/header.cljs:116 msgid "workspace.header.zoom-full-screen" msgstr "Tela cheia" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/right_header.cljs:130 msgid "workspace.header.zoom-selected" msgstr "Zoom na seleção" #: src/app/main/ui/workspace/libraries.cljs +#, unused msgid "workspace.libraries.add" msgstr "Adicionar" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:80, src/app/main/ui/workspace/libraries.cljs:99 msgid "workspace.libraries.colors" msgstr "%s cores" -#: src/app/main/ui/workspace/colorpicker/libraries.cljs, src/app/main/ui/workspace/colorpalette.cljs +#: src/app/main/ui/workspace/color_palette_ctx_menu.cljs:60, src/app/main/ui/workspace/colorpicker/libraries.cljs:73, src/app/main/ui/workspace/text_palette_ctx_menu.cljs:50 msgid "workspace.libraries.colors.file-library" msgstr "Biblioteca do arquivo" #: src/app/main/ui/workspace/colorpicker.cljs +#, unused msgid "workspace.libraries.colors.hsv" msgstr "HSV" -#: src/app/main/ui/workspace/colorpicker/libraries.cljs, src/app/main/ui/workspace/colorpalette.cljs +#: src/app/main/ui/workspace/color_palette_ctx_menu.cljs:82, src/app/main/ui/workspace/colorpicker/libraries.cljs:72 msgid "workspace.libraries.colors.recent-colors" msgstr "Cores recentes" #: src/app/main/ui/workspace/colorpicker.cljs +#, unused msgid "workspace.libraries.colors.rgb-complementary" msgstr "RGB Complementar" #: src/app/main/ui/workspace/colorpicker.cljs +#, unused msgid "workspace.libraries.colors.rgba" msgstr "RGBA" -#: src/app/main/ui/workspace/colorpicker.cljs +#: src/app/main/ui/workspace/colorpicker.cljs:372 msgid "workspace.libraries.colors.save-color" msgstr "Salvar estilo de cor" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:74, src/app/main/ui/workspace/libraries.cljs:91 msgid "workspace.libraries.components" msgstr "%s componentes" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:215 msgid "workspace.libraries.file-library" msgstr "Biblioteca de arquivos" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:77, src/app/main/ui/workspace/libraries.cljs:95 msgid "workspace.libraries.graphics" msgstr "%s imagens" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:209 msgid "workspace.libraries.in-this-file" msgstr "BIBLIOTECAS NESTE ARQUIVO" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:526, src/app/main/ui/workspace/libraries.cljs:531 msgid "workspace.libraries.libraries" msgstr "BIBLIOTECAS" #: src/app/main/ui/workspace/libraries.cljs +#, unused msgid "workspace.libraries.library" msgstr "BIBLIOTECA" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:380 msgid "workspace.libraries.no-libraries-need-sync" msgstr "Não há bibliotecas compartilhadas para atualizar" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:299 msgid "workspace.libraries.no-matches-for" msgstr "Não foram encontrados resultados para “%s“" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:296 msgid "workspace.libraries.no-shared-libraries-available" msgstr "Não há bibliotecas compartilhadas disponíveis" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:260 msgid "workspace.libraries.search-shared-libraries" msgstr "Procurar bibliotecas compartilhadas" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:256 msgid "workspace.libraries.shared-libraries" msgstr "BIBLIOTECAS COMPARTILHADAS" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:308 msgid "workspace.libraries.text.multiple-typography" msgstr "Tipografias múltiplas" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:311 msgid "workspace.libraries.text.multiple-typography-tooltip" msgstr "Desassociar todas as tipografias" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:83, src/app/main/ui/workspace/libraries.cljs:103 msgid "workspace.libraries.typography" msgstr "%s tipografias" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:402 msgid "workspace.libraries.update" msgstr "Atualizar" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:536 msgid "workspace.libraries.updates" msgstr "ATUALIZAÇÔES" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:737 msgid "workspace.options.add-interaction" msgstr "Clique no botão + para adicionar interações." -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:86, src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:102 msgid "workspace.options.blur-options.title" msgstr "Desfoque" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:85 msgid "workspace.options.blur-options.title.group" msgstr "Desfoque do grupo" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:84 msgid "workspace.options.blur-options.title.multiple" msgstr "Desfoque da seleção" -#: src/app/main/ui/workspace/sidebar/options/page.cljs +#: src/app/main/ui/workspace/sidebar/options/page.cljs:32, src/app/main/ui/workspace/sidebar/options/page.cljs:39 msgid "workspace.options.canvas-background" msgstr "Fundo da tela" +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:548 msgid "workspace.options.clip-content" msgstr "Cortar conteúdo" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:600, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:605 msgid "workspace.options.component" msgstr "Componente" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:163 msgid "workspace.options.constraints" msgstr "Ancoragem" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:150 msgid "workspace.options.constraints.bottom" msgstr "Baixo" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:141, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:152 msgid "workspace.options.constraints.center" msgstr "Centro" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:229 msgid "workspace.options.constraints.fix-when-scrolling" msgstr "Fixar na rolagem" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:138 msgid "workspace.options.constraints.left" msgstr "Esquerda" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:140 msgid "workspace.options.constraints.leftright" msgstr "Esquerda e Direita" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:139 msgid "workspace.options.constraints.right" msgstr "Direita" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:142, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:153 msgid "workspace.options.constraints.scale" msgstr "Escalar" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:149 msgid "workspace.options.constraints.top" msgstr "Cima" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:151 msgid "workspace.options.constraints.topbottom" msgstr "Cima e Baixo" -#: src/app/main/ui/workspace/sidebar/options.cljs +#: src/app/main/ui/workspace/sidebar/options.cljs:112 msgid "workspace.options.design" msgstr "Design" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs +#: src/app/main/ui/viewer/inspect/exports.cljs:139 msgid "workspace.options.export" msgstr "Exportar" #: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs +#, unused msgid "workspace.options.export-multiple" msgstr "Exportar seleção" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs +#: src/app/main/ui/viewer/inspect/exports.cljs:178, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:219 msgid "workspace.options.export.suffix" msgstr "Sufixo" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs, src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/export.cljs:240 msgid "workspace.options.exporting-complete" msgstr "Exportação completa" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs +#: src/app/main/ui/export.cljs:172, src/app/main/ui/export.cljs:241, src/app/main/ui/viewer/inspect/exports.cljs:194, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:236 msgid "workspace.options.exporting-object" msgstr "Exportando…" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs, src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/export.cljs:239 msgid "workspace.options.exporting-object-error" msgstr "Exportação falhou" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs, src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/export.cljs:242 msgid "workspace.options.exporting-object-slow" msgstr "A exportação está inesperadamente lenta" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:49, src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:174 msgid "workspace.options.fill" msgstr "Preenchimento" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:178 msgid "workspace.options.flows.add-flow-start" msgstr "Adicionar entrada de fluxo" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#, unused msgid "workspace.options.flows.flow-start" msgstr "Início do fluxo" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:161 msgid "workspace.options.flows.flow-starts" msgstr "Início de fluxo" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:29 msgid "workspace.options.grid.auto" msgstr "Automático" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:157 msgid "workspace.options.grid.column" msgstr "Colunas" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused msgid "workspace.options.grid.grid-title" msgstr "Grade" +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:196, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:237 msgid "workspace.options.grid.params.color" msgstr "Cor" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused msgid "workspace.options.grid.params.columns" msgstr "Colunas" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:259 msgid "workspace.options.grid.params.gutter" msgstr "Espaçamento" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:246 msgid "workspace.options.grid.params.height" msgstr "Altura" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:270 msgid "workspace.options.grid.params.margin" msgstr "Margem" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused msgid "workspace.options.grid.params.rows" msgstr "Linhas" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:216, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:290 msgid "workspace.options.grid.params.set-default" msgstr "Definir como padrão" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused msgid "workspace.options.grid.params.size" msgstr "Tamanho" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused msgid "workspace.options.grid.params.type" msgstr "Tipo" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:231 msgid "workspace.options.grid.params.type.bottom" msgstr "Inferior" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:229 msgid "workspace.options.grid.params.type.center" msgstr "Centro" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:228 msgid "workspace.options.grid.params.type.left" msgstr "Esquerda" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:232 msgid "workspace.options.grid.params.type.right" msgstr "Direita" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:225 msgid "workspace.options.grid.params.type.stretch" msgstr "Esticar" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:227 msgid "workspace.options.grid.params.type.top" msgstr "Superior" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:211, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:288 msgid "workspace.options.grid.params.use-default" msgstr "Usar padrão" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:247 msgid "workspace.options.grid.params.width" msgstr "Largura" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:158 msgid "workspace.options.grid.row" msgstr "Linhas" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:156 msgid "workspace.options.grid.square" msgstr "Quadrado" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:48 msgid "workspace.options.group-fill" msgstr "Preenchimento do grupo" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:42 msgid "workspace.options.group-stroke" msgstr "Traçado do grupo" +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:406 msgid "workspace.options.height" msgstr "Altura" +#: src/app/main/ui/workspace/sidebar/options.cljs:161 msgid "workspace.options.inspect" msgstr "Inspecionar" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:468 msgid "workspace.options.interaction-action" msgstr "Ação" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:41, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:367 msgid "workspace.options.interaction-after-delay" msgstr "Após um tempo" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:614 msgid "workspace.options.interaction-animation" msgstr "Animação" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:406 msgid "workspace.options.interaction-animation-dissolve" msgstr "Dissolver" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:405 msgid "workspace.options.interaction-animation-none" msgstr "Nenhuma" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:412 msgid "workspace.options.interaction-animation-push" msgstr "Empurrar" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:407 msgid "workspace.options.interaction-animation-slide" msgstr "Deslizar" +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:391 msgid "workspace.options.interaction-auto" msgstr "automático" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:604 msgid "workspace.options.interaction-background" msgstr "Adicionar um fundo na sobreposição" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:590 msgid "workspace.options.interaction-close-outside" msgstr "Fechar quando clicar no fundo" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:372 msgid "workspace.options.interaction-close-overlay" msgstr "Fechar sobreposição" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:56 msgid "workspace.options.interaction-close-overlay-dest" msgstr "Fechar sobreposição: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:456 msgid "workspace.options.interaction-delay" msgstr "Delay" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:478 msgid "workspace.options.interaction-destination" msgstr "Destino" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:661 msgid "workspace.options.interaction-duration" msgstr "Duração" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:674 msgid "workspace.options.interaction-easing" msgstr "Atenuação" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:416 msgid "workspace.options.interaction-easing-ease" msgstr "Ease" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:417 msgid "workspace.options.interaction-easing-ease-in" msgstr "Ease in" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:419 msgid "workspace.options.interaction-easing-ease-in-out" msgstr "Ease in out" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:418 msgid "workspace.options.interaction-easing-ease-out" msgstr "Ease out" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:415 msgid "workspace.options.interaction-easing-linear" msgstr "Linear" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#, unused msgid "workspace.options.interaction-in" msgstr "Entrando" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:39, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:364 msgid "workspace.options.interaction-mouse-enter" msgstr "Mouse entra" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:40, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:365 msgid "workspace.options.interaction-mouse-leave" msgstr "Mouse sai" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:458, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:459, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:464, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:663, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:665, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:669 msgid "workspace.options.interaction-ms" msgstr "ms" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:369 msgid "workspace.options.interaction-navigate-to" msgstr "Navegar para" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:50 msgid "workspace.options.interaction-navigate-to-dest" msgstr "Navegar para: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:51, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:53, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:55, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:380 msgid "workspace.options.interaction-none" msgstr "(não especificado)" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:691 msgid "workspace.options.interaction-offset-effect" msgstr "Efeito de offset" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:35, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:360 msgid "workspace.options.interaction-on-click" msgstr "Ao clicar" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:370 msgid "workspace.options.interaction-open-overlay" msgstr "Abrir sobreposição" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:52 msgid "workspace.options.interaction-open-overlay-dest" msgstr "Abrir sobreposição: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:59, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:374 msgid "workspace.options.interaction-open-url" msgstr "Abrir URL" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#, unused msgid "workspace.options.interaction-out" msgstr "Saindo" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:403 msgid "workspace.options.interaction-pos-bottom-center" msgstr "Centro inferior" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:401 msgid "workspace.options.interaction-pos-bottom-left" msgstr "Inferior esquerdo" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:402 msgid "workspace.options.interaction-pos-bottom-right" msgstr "Inferior direito" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:397 msgid "workspace.options.interaction-pos-center" msgstr "Centro" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:396 msgid "workspace.options.interaction-pos-manual" msgstr "Manual" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:400 msgid "workspace.options.interaction-pos-top-center" msgstr "Superior (no meio)" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:398 msgid "workspace.options.interaction-pos-top-left" msgstr "Superior (a esquerda)" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:399 msgid "workspace.options.interaction-pos-top-right" msgstr "Superior (a direita)" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:524 msgid "workspace.options.interaction-position" msgstr "Posição" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:494 msgid "workspace.options.interaction-preserve-scroll" msgstr "Preservar posição da rolagem (scroll)" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:58, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:373 msgid "workspace.options.interaction-prev-screen" msgstr "Tela anterior" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:515 msgid "workspace.options.interaction-relative-to" msgstr "Relativo a" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:57, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:379, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:393, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:394 msgid "workspace.options.interaction-self" msgstr "Si próprio" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:371 msgid "workspace.options.interaction-toggle-overlay" msgstr "Alternar sobreposição" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:54 msgid "workspace.options.interaction-toggle-overlay-dest" msgstr "Alternar sobreposição: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:445 msgid "workspace.options.interaction-trigger" msgstr "Ativador" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:503 msgid "workspace.options.interaction-url" msgstr "URL" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:37, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:362 msgid "workspace.options.interaction-while-hovering" msgstr "Durante o hover" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:38, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:363 msgid "workspace.options.interaction-while-pressing" msgstr "Enquanto clica" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:724 msgid "workspace.options.interactions" msgstr "Interações" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:137 msgid "workspace.options.layer-options.blend-mode.color" msgstr "Cor" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:126 msgid "workspace.options.layer-options.blend-mode.color-burn" msgstr "Queimar cor" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:129 msgid "workspace.options.layer-options.blend-mode.color-dodge" msgstr "Subexposição de cores" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:124 msgid "workspace.options.layer-options.blend-mode.darken" msgstr "Escurecer" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:133 msgid "workspace.options.layer-options.blend-mode.difference" msgstr "Diferença" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:134 msgid "workspace.options.layer-options.blend-mode.exclusion" msgstr "Exclusão" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:132 msgid "workspace.options.layer-options.blend-mode.hard-light" msgstr "Luz direta" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:135 msgid "workspace.options.layer-options.blend-mode.hue" msgstr "Matiz" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:127 msgid "workspace.options.layer-options.blend-mode.lighten" msgstr "Clarear" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:138 msgid "workspace.options.layer-options.blend-mode.luminosity" msgstr "Luminusidade" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:125 msgid "workspace.options.layer-options.blend-mode.multiply" msgstr "Multiplicação" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:123 msgid "workspace.options.layer-options.blend-mode.normal" msgstr "Normal" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:130 msgid "workspace.options.layer-options.blend-mode.overlay" msgstr "Sobreposição" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:136 msgid "workspace.options.layer-options.blend-mode.saturation" msgstr "Saturação" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:128 msgid "workspace.options.layer-options.blend-mode.screen" msgstr "Tela" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:131 msgid "workspace.options.layer-options.blend-mode.soft-light" msgstr "Luz difusa" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#, unused msgid "workspace.options.layer-options.title" msgstr "Camada" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#, unused msgid "workspace.options.layer-options.title.group" msgstr "Camadas do grupo" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#, unused msgid "workspace.options.layer-options.title.multiple" msgstr "Camadas selecionadas" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout-item.advanced-ops" msgstr "Opções avançadas" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:564 msgid "workspace.options.layout-item.layout-item-max-h" msgstr "Altura Máx." -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:531 msgid "workspace.options.layout-item.layout-item-max-w" msgstr "Largura Máx." -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:548 msgid "workspace.options.layout-item.layout-item-min-h" msgstr "Altura Min." -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:515 msgid "workspace.options.layout-item.layout-item-min-w" msgstr "Altura Min." #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout-item.title.layout-item-max-h" msgstr "Altura máxima" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout-item.title.layout-item-max-w" msgstr "Largura máxima" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout-item.title.layout-item-min-h" msgstr "Altura mínima" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout-item.title.layout-item-min-w" msgstr "Largura mínima" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.bottom" msgstr "Inferior" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.direction.column" msgstr "Coluna" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.direction.row" msgstr "Linha" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.gap" msgstr "Espaço" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.left" msgstr "Esquerda" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout.margin" msgstr "Margem" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout.margin-all" msgstr "Todos os lados" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout.margin-simple" msgstr "Margem simples" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.packed" msgstr "embalado" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.padding" msgstr "Padding" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.padding-all" msgstr "Todos os lados" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.padding-simple" msgstr "Padding simples" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.right" msgstr "Direito" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.space-around" msgstr "espaçar em volta" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.space-between" msgstr "espaçar dentro" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.top" msgstr "Topo" -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:146 msgid "workspace.options.more-colors" msgstr "Mais cores" -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:123 msgid "workspace.options.more-lib-colors" msgstr "Mais cores da biblioteca" +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:161 msgid "workspace.options.opacity" msgstr "Opacidade" #: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#, unused msgid "workspace.options.position" msgstr "Posição" -#: src/app/main/ui/workspace/sidebar/options.cljs +#: src/app/main/ui/workspace/sidebar/options.cljs:157 msgid "workspace.options.prototype" msgstr "Protótipo" +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:469, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:481 msgid "workspace.options.radius" msgstr "Raio" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:513 msgid "workspace.options.radius-bottom-left" msgstr "Inferior esquerdo" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:522 msgid "workspace.options.radius-bottom-right" msgstr "Inferior direito" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:495 msgid "workspace.options.radius-top-left" msgstr "Superior (a esquerda)" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:504 msgid "workspace.options.radius-top-right" msgstr "Superior (a direita)" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:532 msgid "workspace.options.radius.all-corners" msgstr "Todos os cantos" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:533 msgid "workspace.options.radius.single-corners" msgstr "Cantos individuais" +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:183 msgid "workspace.options.recent-fonts" msgstr "Recente" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs, src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/export.cljs:284 msgid "workspace.options.retry" msgstr "Repetir" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:451 msgid "workspace.options.rotation" msgstr "Rotação" +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:180 msgid "workspace.options.search-font" msgstr "Procurar fonte" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:741 msgid "workspace.options.select-a-shape" msgstr "" "Selecione uma forma, tela ou grupo para arrastar uma conexão para outra " "tela." -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:105 msgid "workspace.options.selection-color" msgstr "Cores selecionadas" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:47 msgid "workspace.options.selection-fill" msgstr "Preenchimento da seleção" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:41 msgid "workspace.options.selection-stroke" msgstr "Selecionar traçado" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:40, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:198, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:200 msgid "workspace.options.shadow-options.blur" msgstr "Desfoque" +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:238 msgid "workspace.options.shadow-options.color" msgstr "Cor da sombra" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:144 msgid "workspace.options.shadow-options.drop-shadow" msgstr "Sombra projetada" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:145 msgid "workspace.options.shadow-options.inner-shadow" msgstr "Sombra interna" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:38, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:186 msgid "workspace.options.shadow-options.offsetx" msgstr "X" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:39, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:224 msgid "workspace.options.shadow-options.offsety" msgstr "Y" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:41, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:211, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:213 msgid "workspace.options.shadow-options.spread" msgstr "Alcance" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:296 msgid "workspace.options.shadow-options.title" msgstr "Sombra" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:295 msgid "workspace.options.shadow-options.title.group" msgstr "Sombra do grupo" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:294 msgid "workspace.options.shadow-options.title.multiple" msgstr "Sombras da seleção" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:193 msgid "workspace.options.show-fill-on-export" msgstr "Mostrar nas exportações" +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:562 msgid "workspace.options.show-in-viewer" msgstr "Mostrar no modo protótipo" -#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:162 msgid "workspace.options.size" msgstr "Tamanho" -#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:355 msgid "workspace.options.size-presets" msgstr "Padrões de tamanho" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:43 msgid "workspace.options.stroke" msgstr "Traçado" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#, unused msgid "workspace.options.stroke-cap.circle-marker" msgstr "Ponta de círculo" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#, unused msgid "workspace.options.stroke-cap.diamond-marker" msgstr "Ponta de losango" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#, unused msgid "workspace.options.stroke-cap.line-arrow" msgstr "Seta de linha" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:124 msgid "workspace.options.stroke-cap.none" msgstr "Nenhum" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:132 msgid "workspace.options.stroke-cap.round" msgstr "Redonda" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:133 msgid "workspace.options.stroke-cap.square" msgstr "Quadrada" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#, unused msgid "workspace.options.stroke-cap.square-marker" msgstr "Ponta de quadrado" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#, unused msgid "workspace.options.stroke-cap.triangle-arrow" msgstr "Seta triangular" +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:192 msgid "workspace.options.stroke-color" msgstr "Cor do traçado" +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:165 msgid "workspace.options.stroke-width" msgstr "Largura do traçado" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:87 msgid "workspace.options.stroke.center" msgstr "Centro" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:105 msgid "workspace.options.stroke.dashed" msgstr "Tracejada" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:104 msgid "workspace.options.stroke.dotted" msgstr "Pontilhada" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:88 msgid "workspace.options.stroke.inner" msgstr "Dentro" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:106 msgid "workspace.options.stroke.mixed" msgstr "Misturado" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:89 msgid "workspace.options.stroke.outer" msgstr "Fora" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:103 msgid "workspace.options.stroke.solid" msgstr "Sólido" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:115 msgid "workspace.options.text-options.align-bottom" msgstr "Alinhar a base" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:111 msgid "workspace.options.text-options.align-middle" msgstr "Alinhar no meio" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:107 msgid "workspace.options.text-options.align-top" msgstr "Alinhar ao topo" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:82 msgid "workspace.options.text-options.direction-ltr" msgstr "Esquerda para a direita" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:87 msgid "workspace.options.text-options.direction-rtl" msgstr "Direita para a esquerda" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:149 msgid "workspace.options.text-options.grow-auto-height" msgstr "Altura automática" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:145 msgid "workspace.options.text-options.grow-auto-width" msgstr "Largura automática" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:141 msgid "workspace.options.text-options.grow-fixed" msgstr "Fixo" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:381 msgid "workspace.options.text-options.letter-spacing" msgstr "Espaçamento entre letras" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:364 msgid "workspace.options.text-options.line-height" msgstr "Altura de linha" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused msgid "workspace.options.text-options.lowercase" msgstr "Minúsculo" #: src/app/main/ui/workspace/sidebar/options/menus/text.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused msgid "workspace.options.text-options.none" msgstr "Nenhum" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:176 msgid "workspace.options.text-options.strikethrough" msgstr "Rasurado (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:51 msgid "workspace.options.text-options.text-align-center" msgstr "Alinhar ao centro (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:59 msgid "workspace.options.text-options.text-align-justify" msgstr "Justificar (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:47 msgid "workspace.options.text-options.text-align-left" msgstr "Alinhar a esquerda (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:55 msgid "workspace.options.text-options.text-align-right" msgstr "Alinhar a direita (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:189 msgid "workspace.options.text-options.title" msgstr "Texto" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:188 msgid "workspace.options.text-options.title-group" msgstr "Texto do grupo" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:187 msgid "workspace.options.text-options.title-selection" msgstr "Texto de seleção" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused msgid "workspace.options.text-options.titlecase" msgstr "Iniciais maiúsculas" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:171 msgid "workspace.options.text-options.underline" msgstr "Sublinhado (%s)" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused msgid "workspace.options.text-options.uppercase" msgstr "Maiúsculo" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:745 msgid "workspace.options.use-play-button" msgstr "Use o botão play no cabeçalho para visualizar o protótipo." +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:395 msgid "workspace.options.width" msgstr "Largura" +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:427 msgid "workspace.options.x" msgstr "eixo X" +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:438 msgid "workspace.options.y" msgstr "eixo Y" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:167 msgid "workspace.path.actions.add-node" msgstr "Adicionar ponto (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:174 msgid "workspace.path.actions.delete-node" msgstr "Remover ponto (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:152 msgid "workspace.path.actions.draw-nodes" msgstr "Desenhar ponto (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:189 msgid "workspace.path.actions.join-nodes" msgstr "Unir pontos (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:204 msgid "workspace.path.actions.make-corner" msgstr "Transformar em retas (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:211 msgid "workspace.path.actions.make-curve" msgstr "Transformar em Curvas (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:182 msgid "workspace.path.actions.merge-nodes" msgstr "Juntar pontos (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:159 msgid "workspace.path.actions.move-nodes" msgstr "Mover pontos (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:196 msgid "workspace.path.actions.separate-nodes" msgstr "Separar pontos (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:218 msgid "workspace.path.actions.snap-nodes" msgstr "Aderir aos pontos (%s)" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:441 msgid "workspace.shape.menu.add-flex" msgstr "Adicionar Flex Layout" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:193 msgid "workspace.shape.menu.back" msgstr "Enviar para o fundo" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:190 msgid "workspace.shape.menu.backward" msgstr "Enviar para trás" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:139 msgid "workspace.shape.menu.copy" msgstr "Copiar" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:275 msgid "workspace.shape.menu.create-artboard-from-selection" msgstr "Agrupar em uma tela" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:465 msgid "workspace.shape.menu.create-component" msgstr "Criar componente" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:142 msgid "workspace.shape.menu.cut" msgstr "Cortar" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:486 msgid "workspace.shape.menu.delete" msgstr "Remover" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:391 msgid "workspace.shape.menu.delete-flow-start" msgstr "Remover início de fluxo" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:432 msgid "workspace.shape.menu.detach-instance" msgstr "Quebrar instância" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:431 msgid "workspace.shape.menu.detach-instances-in-bulk" msgstr "Quebrar instâncias" +#: src/app/main/ui/workspace/context_menu.cljs:335, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:75 msgid "workspace.shape.menu.difference" msgstr "Diferença" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:148 msgid "workspace.shape.menu.duplicate" msgstr "Duplicar" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:321 msgid "workspace.shape.menu.edit" msgstr "Editar" +#: src/app/main/ui/workspace/context_menu.cljs:341 msgid "workspace.shape.menu.exclude" msgstr "Excluir" +#: src/app/main/ui/workspace/context_menu.cljs:348, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:89 msgid "workspace.shape.menu.flatten" msgstr "Achatar" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:208 msgid "workspace.shape.menu.flip-horizontal" msgstr "Inverter horizontalmente" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:204 msgid "workspace.shape.menu.flip-vertical" msgstr "Inverter verticalmente" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:394 msgid "workspace.shape.menu.flow-start" msgstr "Início do fluxo" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:184 msgid "workspace.shape.menu.forward" msgstr "Trazer para a frente" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:187 msgid "workspace.shape.menu.front" msgstr "Trazer para o topo" #: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#, unused msgid "workspace.shape.menu.go-main" msgstr "Ir para o arquivo do componente principal" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:261 msgid "workspace.shape.menu.group" msgstr "Agrupar" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:363, src/app/main/ui/workspace/sidebar/layer_item.cljs:145 msgid "workspace.shape.menu.hide" msgstr "Esconder" +#: src/app/main/ui/workspace/context_menu.cljs:548, src/app/main/ui/workspace/main_menu.cljs:408 msgid "workspace.shape.menu.hide-ui" msgstr "Mostrar/ocultar Interface" +#: src/app/main/ui/workspace/context_menu.cljs:338 msgid "workspace.shape.menu.intersection" msgstr "Interseção" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:371, src/app/main/ui/workspace/sidebar/layer_item.cljs:153 msgid "workspace.shape.menu.lock" msgstr "Bloquear" -#: src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:266 msgid "workspace.shape.menu.mask" msgstr "Máscara" -#: src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:145, src/app/main/ui/workspace/context_menu.cljs:545 msgid "workspace.shape.menu.paste" msgstr "Colar" +#: src/app/main/ui/workspace/context_menu.cljs:331 msgid "workspace.shape.menu.path" msgstr "Caminho" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:432 msgid "workspace.shape.menu.remove-flex" msgstr "Excluir Flex Layout" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:436 msgid "workspace.shape.menu.reset-overrides" msgstr "Redefinir substituições" +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:439 msgid "workspace.shape.menu.restore-main" msgstr "Restaurar componente principal" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:174 msgid "workspace.shape.menu.select-layer" msgstr "Selecionar camada" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:360, src/app/main/ui/workspace/sidebar/layer_item.cljs:144 msgid "workspace.shape.menu.show" msgstr "Mostrar" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:424 msgid "workspace.shape.menu.show-in-assets" msgstr "Mostrar no painel de ativos" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:442, src/app/main/ui/workspace/sidebar/assets/components.cljs:586 msgid "workspace.shape.menu.show-main" msgstr "Mostrar componente principal" +#: src/app/main/ui/workspace/context_menu.cljs:221 msgid "workspace.shape.menu.thumbnail-remove" msgstr "Remover miniatura" +#: src/app/main/ui/workspace/context_menu.cljs:223 msgid "workspace.shape.menu.thumbnail-set" msgstr "Definir como miniatura" +#: src/app/main/ui/workspace/context_menu.cljs:326 msgid "workspace.shape.menu.transform-to-path" msgstr "Transformar em caminho" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:257 msgid "workspace.shape.menu.ungroup" msgstr "Desagrupar" +#: src/app/main/ui/workspace/context_menu.cljs:332, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:70 msgid "workspace.shape.menu.union" msgstr "Unir" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:368, src/app/main/ui/workspace/sidebar/layer_item.cljs:152 msgid "workspace.shape.menu.unlock" msgstr "Desbloquear" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:271 msgid "workspace.shape.menu.unmask" msgstr "Remover máscara" #: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs +#, unused msgid "workspace.shape.menu.update-components-in-bulk" msgstr "Atualizar componentes principais" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:445 msgid "workspace.shape.menu.update-main" msgstr "Atualizar o componente principal" +#: src/app/main/ui/components/tab_container.cljs:50 msgid "workspace.sidebar.collapse" msgstr "Recolher a barra lateral" +#: src/app/main/ui/workspace/sidebar/collapsable_button.cljs:26 msgid "workspace.sidebar.expand" msgstr "Expandir a barra lateral" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/right_header.cljs:231, src/app/main/ui/workspace/right_header.cljs:232 msgid "workspace.sidebar.history" msgstr "Histórico (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/sidebar/layers.cljs:522, src/app/main/ui/workspace/sidebar.cljs:100 msgid "workspace.sidebar.layers" msgstr "Camadas" +#: src/app/main/ui/workspace/sidebar/layers.cljs:308, src/app/main/ui/workspace/sidebar/layers.cljs:380 msgid "workspace.sidebar.layers.components" msgstr "Componentes" +#: src/app/main/ui/workspace/sidebar/layers.cljs:305, src/app/main/ui/workspace/sidebar/layers.cljs:338 msgid "workspace.sidebar.layers.frames" msgstr "Telas" +#: src/app/main/ui/workspace/sidebar/layers.cljs:306, src/app/main/ui/workspace/sidebar/layers.cljs:352 msgid "workspace.sidebar.layers.groups" msgstr "Grupos" +#: src/app/main/ui/workspace/sidebar/layers.cljs:310, src/app/main/ui/workspace/sidebar/layers.cljs:408 msgid "workspace.sidebar.layers.images" msgstr "Imagens" +#: src/app/main/ui/workspace/sidebar/layers.cljs:307, src/app/main/ui/workspace/sidebar/layers.cljs:366 msgid "workspace.sidebar.layers.masks" msgstr "Máscaras" +#: src/app/main/ui/workspace/sidebar/layers.cljs:289 msgid "workspace.sidebar.layers.search" msgstr "Pesquisar nas camadas" +#: src/app/main/ui/workspace/sidebar/layers.cljs:311, src/app/main/ui/workspace/sidebar/layers.cljs:422 msgid "workspace.sidebar.layers.shapes" msgstr "Formas" +#: src/app/main/ui/workspace/sidebar/layers.cljs:309, src/app/main/ui/workspace/sidebar/layers.cljs:394 msgid "workspace.sidebar.layers.texts" msgstr "Textos" -#: src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs, src/app/main/ui/inspect/attributes/svg.cljs +#: src/app/main/ui/viewer/inspect/attributes/svg.cljs:56, src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs:91 msgid "workspace.sidebar.options.svg-attrs.title" msgstr "Atributos SVG importados" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs +#: src/app/main/ui/workspace/sidebar/sitemap.cljs:217 msgid "workspace.sidebar.sitemap" msgstr "Páginas" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/left_header.cljs:91 msgid "workspace.sitemap" msgstr "Mapa do site" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/sidebar.cljs:120 msgid "workspace.toolbar.assets" msgstr "Ativos" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/palette.cljs:165, src/app/main/ui/workspace/palette.cljs:166 msgid "workspace.toolbar.color-palette" msgstr "Paleta de cores (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/right_header.cljs:220, src/app/main/ui/workspace/right_header.cljs:221 msgid "workspace.toolbar.comments" msgstr "Comentários (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:180, src/app/main/ui/workspace/top_toolbar.cljs:181 msgid "workspace.toolbar.curve" msgstr "Ferramenta Curvas (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:160, src/app/main/ui/workspace/top_toolbar.cljs:161 msgid "workspace.toolbar.ellipse" msgstr "Ferramenta Elipse (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:142, src/app/main/ui/workspace/top_toolbar.cljs:143 msgid "workspace.toolbar.frame" msgstr "Ferramenta Tela (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:59, src/app/main/ui/workspace/top_toolbar.cljs:60 msgid "workspace.toolbar.image" msgstr "Importar Imagem (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:132, src/app/main/ui/workspace/top_toolbar.cljs:133 msgid "workspace.toolbar.move" msgstr "Ferramenta Seleção/Mover (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:189, src/app/main/ui/workspace/top_toolbar.cljs:190 msgid "workspace.toolbar.path" msgstr "Ferramenta Caneta (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:151, src/app/main/ui/workspace/top_toolbar.cljs:152 msgid "workspace.toolbar.rect" msgstr "Ferramenta Retângulo (%s)" #: src/app/main/ui/workspace/left_toolbar.cljs +#, unused msgid "workspace.toolbar.shortcuts" msgstr "Atalhos (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:169, src/app/main/ui/workspace/top_toolbar.cljs:170 msgid "workspace.toolbar.text" msgstr "Ferramenta Texto (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/palette.cljs:173, src/app/main/ui/workspace/palette.cljs:174 msgid "workspace.toolbar.text-palette" msgstr "Tipografias (%s)" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:342 msgid "workspace.undo.empty" msgstr "Não há mudanças no histórico até agora" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:147 msgid "workspace.undo.entry.delete" msgstr "%s excluido" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:146 msgid "workspace.undo.entry.modify" msgstr "(%s) modificado" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:148 msgid "workspace.undo.entry.move" msgstr "Objetos movidos" +#: src/app/main/ui/workspace/sidebar/history.cljs:111 msgid "workspace.undo.entry.multiple.circle" msgstr "círculos" +#: src/app/main/ui/workspace/sidebar/history.cljs:112 msgid "workspace.undo.entry.multiple.color" msgstr "ativos de cor" +#: src/app/main/ui/workspace/sidebar/history.cljs:113 msgid "workspace.undo.entry.multiple.component" msgstr "componentes" +#: src/app/main/ui/workspace/sidebar/history.cljs:114 msgid "workspace.undo.entry.multiple.curve" msgstr "curvas" +#: src/app/main/ui/workspace/sidebar/history.cljs:115 msgid "workspace.undo.entry.multiple.frame" msgstr "tela" +#: src/app/main/ui/workspace/sidebar/history.cljs:116 msgid "workspace.undo.entry.multiple.group" msgstr "grupos" +#: src/app/main/ui/workspace/sidebar/history.cljs:117 msgid "workspace.undo.entry.multiple.media" msgstr "ativo gráfico" +#: src/app/main/ui/workspace/sidebar/history.cljs:118 msgid "workspace.undo.entry.multiple.multiple" msgstr "objetos" +#: src/app/main/ui/workspace/sidebar/history.cljs:119 msgid "workspace.undo.entry.multiple.page" msgstr "páginas" +#: src/app/main/ui/workspace/sidebar/history.cljs:120 msgid "workspace.undo.entry.multiple.path" msgstr "caminhos" +#: src/app/main/ui/workspace/sidebar/history.cljs:121 msgid "workspace.undo.entry.multiple.rect" msgstr "retângulos" +#: src/app/main/ui/workspace/sidebar/history.cljs:122 msgid "workspace.undo.entry.multiple.shape" msgstr "formas" +#: src/app/main/ui/workspace/sidebar/history.cljs:123 msgid "workspace.undo.entry.multiple.text" msgstr "textos" +#: src/app/main/ui/workspace/sidebar/history.cljs:124 msgid "workspace.undo.entry.multiple.typography" msgstr "ativos tipográficos" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:145 msgid "workspace.undo.entry.new" msgstr "Novo %s" +#: src/app/main/ui/workspace/sidebar/history.cljs:125 msgid "workspace.undo.entry.single.circle" msgstr "círculo" +#: src/app/main/ui/workspace/sidebar/history.cljs:126 msgid "workspace.undo.entry.single.color" msgstr "ativo de cor" +#: src/app/main/ui/workspace/sidebar/history.cljs:127 msgid "workspace.undo.entry.single.component" msgstr "componente" +#: src/app/main/ui/workspace/sidebar/history.cljs:128 msgid "workspace.undo.entry.single.curve" msgstr "curva" +#: src/app/main/ui/workspace/sidebar/history.cljs:129 msgid "workspace.undo.entry.single.frame" msgstr "tela" +#: src/app/main/ui/workspace/sidebar/history.cljs:130 msgid "workspace.undo.entry.single.group" msgstr "grupo" +#: src/app/main/ui/workspace/sidebar/history.cljs:131 msgid "workspace.undo.entry.single.image" msgstr "imagem" +#: src/app/main/ui/workspace/sidebar/history.cljs:132 msgid "workspace.undo.entry.single.media" msgstr "ativo gráfico" +#: src/app/main/ui/workspace/sidebar/history.cljs:133 msgid "workspace.undo.entry.single.multiple" msgstr "objeto" +#: src/app/main/ui/workspace/sidebar/history.cljs:134 msgid "workspace.undo.entry.single.page" msgstr "página" +#: src/app/main/ui/workspace/sidebar/history.cljs:135 msgid "workspace.undo.entry.single.path" msgstr "caminho" +#: src/app/main/ui/workspace/sidebar/history.cljs:136 msgid "workspace.undo.entry.single.rect" msgstr "retângulo" +#: src/app/main/ui/workspace/sidebar/history.cljs:137 msgid "workspace.undo.entry.single.shape" msgstr "forma" +#: src/app/main/ui/workspace/sidebar/history.cljs:138 msgid "workspace.undo.entry.single.text" msgstr "texto" +#: src/app/main/ui/workspace/sidebar/history.cljs:139 msgid "workspace.undo.entry.single.typography" msgstr "ativo de tipografia" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:149 msgid "workspace.undo.entry.unknown" msgstr "Operação em %s" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:335 msgid "workspace.undo.title" msgstr "Histórico" -#: src/app/main/data/workspace/libraries.cljs +#: src/app/main/data/workspace/libraries.cljs:1094 msgid "workspace.updates.dismiss" msgstr "Dispensar" -#: src/app/main/data/workspace/libraries.cljs +#: src/app/main/data/workspace/libraries.cljs:1090 msgid "workspace.updates.there-are-updates" msgstr "Existem atualizações nas bibliotecas compartilhadas" -#: src/app/main/data/workspace/libraries.cljs +#: src/app/main/data/workspace/libraries.cljs:1097 msgid "workspace.updates.update" msgstr "Atualizar" +#, unused msgid "workspace.viewport.click-to-close-path" msgstr "Clique para fechar o caminho" diff --git a/frontend/translations/pt_PT.po b/frontend/translations/pt_PT.po index 011a7e5bad..3a44177150 100644 --- a/frontend/translations/pt_PT.po +++ b/frontend/translations/pt_PT.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "PO-Revision-Date: 2024-06-17 08:07+0000\n" "Last-Translator: Anonymous \n" -"Language-Team: Portuguese (Portugal) \n" +"Language-Team: Portuguese (Portugal) " +"\n" "Language: pt_PT\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" @@ -11,492 +11,534 @@ msgstr "" "Plural-Forms: nplurals=2; plural=n > 1;\n" "X-Generator: Weblate 5.6-dev\n" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:151, src/app/main/ui/viewer/login.cljs:104 msgid "auth.already-have-account" msgstr "Já tens uma conta?" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:299 msgid "auth.check-your-email" msgstr "" "Verifica o teu e‑mail e clica no link de verificação para começares a " "utilizar o Penpot." -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:78 msgid "auth.confirm-password" msgstr "Confirmar palavra-passe" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/register.cljs:163 msgid "auth.create-demo-account" msgstr "Cria uma conta de demonstração" #: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#, unused msgid "auth.create-demo-profile" msgstr "Só queres experimentar?" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/login.cljs:43 msgid "auth.demo-warning" msgstr "" "Este é um serviço de DEMONSTRAÇÃO, NÃO UTILIZES para trabalhos reais. Os " "projetos serão eliminados periodicamente." -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:189, src/app/main/ui/viewer/login.cljs:90 msgid "auth.forgot-password" msgstr "Esqueceste a tua palavra-passe?" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:254 msgid "auth.fullname" msgstr "Nome completo" -#: src/app/main/ui/auth/register.cljs -#, fuzzy +#: src/app/main/ui/auth/login.cljs:282 +msgid "auth.login-account-title" +msgstr "Entrar na minha conta" + +#: src/app/main/ui/auth/register.cljs:155, src/app/main/ui/viewer/login.cljs:107 msgid "auth.login-here" msgstr "Iniciar sessão" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:195 msgid "auth.login-submit" msgstr "Iniciar sessão" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:285 +msgid "auth.login-tagline" +msgstr "" +"O Penpot é a ferramenta de desenho gratuita e de código aberto para " +"colaboração entre Design e Código" + +#: src/app/main/ui/auth/login.cljs:222 msgid "auth.login-with-github-submit" msgstr "Github" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:228 msgid "auth.login-with-gitlab-submit" msgstr "GitLab" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:216 msgid "auth.login-with-google-submit" msgstr "Google" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:201 msgid "auth.login-with-ldap-submit" msgstr "LDAP" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:234, src/app/main/ui/auth/login.cljs:255 msgid "auth.login-with-oidc-submit" msgstr "OpenID Connect" -#: src/app/main/ui/settings/team-form.cljs, src/app/main/ui/auth/register.cljs, -#: src/app/main/ui/dashboard/team_form.cljs, -#: src/app/main/ui/onboarding/team_choice.cljs, -#: src/app/main/ui/settings/access_tokens.cljs, -#: src/app/main/ui/settings/feedback.cljs, -#: src/app/main/ui/settings/profile.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/auth/register.cljs:217, src/app/main/ui/dashboard/team_form.cljs:76, src/app/main/ui/onboarding/team_choice.cljs:180, src/app/main/ui/settings/access_tokens.cljs:66, src/app/main/ui/settings/feedback.cljs:34, src/app/main/ui/settings/profile.cljs:45, src/app/main/ui/workspace/sidebar/assets/groups.cljs:108 msgid "auth.name.not-all-space" msgstr "O nome deve conter pelo menos um caractere que não seja um espaço." -#: src/app/main/ui/auth/register.cljs, -#: src/app/main/ui/dashboard/team_form.cljs, -#: src/app/main/ui/onboarding/team_choice.cljs, -#: src/app/main/ui/settings/access_tokens.cljs, -#: src/app/main/ui/settings/feedback.cljs, -#: src/app/main/ui/settings/profile.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/auth/register.cljs:218, src/app/main/ui/dashboard/team_form.cljs:77, src/app/main/ui/onboarding/team_choice.cljs:181, src/app/main/ui/settings/access_tokens.cljs:67, src/app/main/ui/settings/feedback.cljs:33, src/app/main/ui/settings/profile.cljs:44, src/app/main/ui/workspace/sidebar/assets/groups.cljs:109 msgid "auth.name.too-long" msgstr "O nome deve conter um máximo de 250 caracteres." -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:71 msgid "auth.new-password" msgstr "Escreve uma nova palavra-passe" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:42 msgid "auth.notifications.invalid-token-error" msgstr "O token de recuperação é inválido." -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:46 msgid "auth.notifications.password-changed-successfully" msgstr "Palavra-passe alterada com sucesso" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:57 msgid "auth.notifications.profile-not-verified" msgstr "O perfil não está verificado, por favor valida-o antes de continuar." -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:40 msgid "auth.notifications.recovery-token-sent" msgstr "Link de recuperação da palavra-passe enviado para o teu e-mail." -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:47 msgid "auth.notifications.team-invitation-accepted" msgstr "Entraste na equipa com sucesso" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:179, src/app/main/ui/auth/register.cljs:115 msgid "auth.password" msgstr "Palavra-passe" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:114 msgid "auth.password-length-hint" msgstr "Mínimo de 8 caracteres" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/recovery.cljs:61, src/app/main/ui/auth/recovery.cljs:62, src/app/main/ui/auth/register.cljs:81, src/app/main/ui/settings/password.cljs:75, src/app/main/ui/settings/password.cljs:76, src/app/main/ui/settings/password.cljs:77 msgid "auth.password-not-empty" -msgstr "" -"A palavra-passe deve conter pelo menos um caractere que não seja um espaço." +msgstr "A palavra-passe deve conter pelo menos um caractere que não seja um espaço." +#: src/app/main/ui/auth.cljs:41 msgid "auth.privacy-policy" msgstr "Política de privacidade" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:88 msgid "auth.recovery-request-submit" msgstr "Recuperar palavra-passe" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:101 msgid "auth.recovery-request-subtitle" msgstr "Vamos enviar-te um e-mail com as instruções" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:100 msgid "auth.recovery-request-title" msgstr "Não te lembras da tua palavra-passe?" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:82 msgid "auth.recovery-submit" msgstr "Altera a palavra-passe" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:298, src/app/main/ui/viewer/login.cljs:93 msgid "auth.register" msgstr "Não tens conta?" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:302, src/app/main/ui/auth/register.cljs:121, src/app/main/ui/auth/register.cljs:263, src/app/main/ui/viewer/login.cljs:97 msgid "auth.register-submit" msgstr "Criar conta" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:140 msgid "auth.register-title" msgstr "Cria uma conta" #: src/app/main/ui/auth.cljs +#, unused msgid "auth.sidebar-tagline" msgstr "A solução de código aberto para design e prototipagem." +#: src/app/main/ui/auth.cljs:33, src/app/main/ui/dashboard/sidebar.cljs:1022, src/app/main/ui/workspace/main_menu.cljs:150 msgid "auth.terms-of-service" msgstr "Termos de serviço" -#: src/app/main/ui/auth/register.cljs +#, unused msgid "auth.terms-privacy-agreement" msgstr "" "Ao criar uma nova conta, concordas com os nossos termos de serviço e " "política de privacidade." -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:297 msgid "auth.verification-email-sent" msgstr "Enviámos um email de verificação para" #: src/app/main/ui/onboarding/questions.cljs +#, unused msgid "branding-illustrations-marketing-pieces" msgstr "...branding, ilustrações, artigos de marketing, etc." +#: src/app/main/ui/workspace/libraries.cljs:228 msgid "common.publish" msgstr "Publicar" +#: src/app/main/ui/viewer/share_link.cljs:304, src/app/main/ui/viewer/share_link.cljs:314 msgid "common.share-link.all-users" msgstr "Todos os utilizadores Penpot" +#: src/app/main/ui/viewer/share_link.cljs:198 msgid "common.share-link.confirm-deletion-link-description" msgstr "" -"Tens a certeza de que queres remover este link? Se o fizeres, deixa de ficar " -"disponível para ninguém" +"Tens a certeza de que queres remover este link? Se o fizeres, deixa de " +"ficar disponível para ninguém" +#: src/app/main/ui/viewer/share_link.cljs:259, src/app/main/ui/viewer/share_link.cljs:289 msgid "common.share-link.current-tag" msgstr "(atual)" +#: src/app/main/ui/viewer/share_link.cljs:207, src/app/main/ui/viewer/share_link.cljs:214 msgid "common.share-link.destroy-link" msgstr "Eliminar link" +#: src/app/main/ui/viewer/share_link.cljs:221 msgid "common.share-link.get-link" msgstr "Obter link" +#: src/app/main/ui/viewer/share_link.cljs:139 msgid "common.share-link.link-copied-success" msgstr "Link copiado com sucesso" +#: src/app/main/ui/viewer/share_link.cljs:231 msgid "common.share-link.manage-ops" msgstr "Gerir permissões" +#: src/app/main/ui/viewer/share_link.cljs:277 msgid "common.share-link.page-shared" msgid_plural "common.share-link.page-shared" msgstr[0] "1 página partilhada" msgstr[1] "%s páginas partilhadas" +#: src/app/main/ui/viewer/share_link.cljs:298 msgid "common.share-link.permissions-can-comment" msgstr "Pode comentar" +#: src/app/main/ui/viewer/share_link.cljs:308 msgid "common.share-link.permissions-can-inspect" msgstr "Pode inspecionar o código" +#: src/app/main/ui/viewer/share_link.cljs:193 msgid "common.share-link.permissions-hint" msgstr "Qualquer pessoa com o link terá acesso" +#: src/app/main/ui/viewer/share_link.cljs:241 msgid "common.share-link.permissions-pages" msgstr "Páginas partilhadas" +#: src/app/main/ui/viewer/share_link.cljs:183 msgid "common.share-link.placeholder" msgstr "O link partilhável será apresentado aqui" +#: src/app/main/ui/viewer/share_link.cljs:303, src/app/main/ui/viewer/share_link.cljs:313 msgid "common.share-link.team-members" msgstr "Apenas membros da equipa" +#: src/app/main/ui/viewer/share_link.cljs:171 msgid "common.share-link.title" msgstr "Partilha protótipos" +#: src/app/main/ui/viewer/share_link.cljs:269 msgid "common.share-link.view-all" msgstr "Seleciona tudo" +#: src/app/main/ui/workspace/libraries.cljs:224 msgid "common.unpublish" msgstr "Cancelar publicação" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:85 msgid "dasboard.team-hero.management" msgstr "Gestão da equipa" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:84 msgid "dasboard.team-hero.text" msgstr "" -"O Penpot é destinado a equipas. Convida colegas para colaborarem em projetos " -"e ficheiros" +"O Penpot é destinado a equipas. Convida colegas para colaborarem em " +"projetos e ficheiros" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:82 msgid "dasboard.team-hero.title" msgstr "Trabalho de equipa!" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.tutorial-hero.info" -msgstr "" -"Aprende os básicos no Penpot enquanto divertes-te a praticar neste tutorial." +msgstr "Aprende os básicos no Penpot enquanto divertes-te a praticar neste tutorial." #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.tutorial-hero.start" msgstr "Iniciar tutorial" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.tutorial-hero.title" msgstr "Tutorial prático" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.walkthrough-hero.info" msgstr "Explora o Penpot e conhece as suas principais características." #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.walkthrough-hero.start" msgstr "Inicia a tour" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.walkthrough-hero.title" msgstr "Passo a passo na interface" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:115 msgid "dashboard.access-tokens.copied-success" msgstr "Token copiado" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:202 msgid "dashboard.access-tokens.create" msgstr "Gerar novo token" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:76 msgid "dashboard.access-tokens.create.success" msgstr "Token de acesso criado com sucesso." -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:300 msgid "dashboard.access-tokens.empty.add-one" msgstr "Clica no botão \"Gerar novo token\" para gerar um." -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:299 msgid "dashboard.access-tokens.empty.no-access-tokens" msgstr "Ainda não tens nenhum token." -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:53 msgid "dashboard.access-tokens.errors-required-name" msgstr "O nome é obrigatório" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:147 msgid "dashboard.access-tokens.expiration-180-days" msgstr "180 dias" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:144 msgid "dashboard.access-tokens.expiration-30-days" msgstr "30 dias" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:145 msgid "dashboard.access-tokens.expiration-60-days" msgstr "60 dias" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:146 msgid "dashboard.access-tokens.expiration-90-days" msgstr "90 dias" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:143 msgid "dashboard.access-tokens.expiration-never" msgstr "Nunca" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:282 msgid "dashboard.access-tokens.expired-on" msgstr "Expirou a %s" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:283 msgid "dashboard.access-tokens.expires-on" msgstr "Expira a %s" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:281 msgid "dashboard.access-tokens.no-expiration" msgstr "Sem data de expiração" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:197 msgid "dashboard.access-tokens.personal" msgstr "Tokens de acesso pessoais" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:198 msgid "dashboard.access-tokens.personal.description" msgstr "" -"Os tokens de acesso pessoais funcionam como uma alternativa ao nosso sistema " -"de autenticação de login/palavra-passe e podem ser usados para permitir que " -"uma aplicação tenha acesso à API interna do Penpot" +"Os tokens de acesso pessoais funcionam como uma alternativa ao nosso " +"sistema de autenticação de login/palavra-passe e podem ser usados para " +"permitir que uma aplicação tenha acesso à API interna do Penpot" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:154 msgid "dashboard.access-tokens.token-will-expire" msgstr "O token irá expirar a %s" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:155 msgid "dashboard.access-tokens.token-will-not-expire" msgstr "O token não tem data de expiração" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:291, src/app/main/ui/workspace/main_menu.cljs:572 msgid "dashboard.add-shared" msgstr "Adicionar como biblioteca partilhada" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:75 msgid "dashboard.change-email" msgstr "Alterar e-mail" -#: src/app/main/data/dashboard.cljs, src/app/main/data/dashboard.cljs +#: src/app/main/data/dashboard.cljs:762, src/app/main/data/dashboard.cljs:983 msgid "dashboard.copy-suffix" msgstr "(copiar)" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:338 msgid "dashboard.create-new-team" msgstr "+ Criar nova equipa" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/components/context_menu_a11y.cljs:256, src/app/main/ui/dashboard/sidebar.cljs:646 msgid "dashboard.default-team-name" msgstr "O teu Penpot" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:571 msgid "dashboard.delete-team" msgstr "Eliminar equipa" +#: src/app/main/ui/dashboard/file_menu.cljs:296, src/app/main/ui/workspace/main_menu.cljs:589 msgid "dashboard.download-binary-file" msgstr "Descarregar ficheiro Penpot (.penpot)" +#: src/app/main/ui/dashboard/file_menu.cljs:300, src/app/main/ui/workspace/main_menu.cljs:597 msgid "dashboard.download-standard-file" msgstr "Descarregar ficheiro standard (svg + json)" -#: src/app/main/ui/dashboard/project_menu.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:276, src/app/main/ui/dashboard/project_menu.cljs:90 msgid "dashboard.duplicate" msgstr "Duplicar" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:240 msgid "dashboard.duplicate-multi" msgstr "Duplicar %s ficheiros" -#: src/app/main/ui/dashboard/grid.cljs +#: src/app/main/ui/dashboard/placeholder.cljs:32 +#, markdown msgid "dashboard.empty-placeholder-drafts" msgstr "" "Os ficheiros adicionados às Bibliotecas irão aparecer aqui. Experimenta " -"adicionar os teus ficheiros ou experimenta algumas das nossas [Bibliotecas e " -"templates](https://penpot.app/libraries-templates)." +"adicionar os teus ficheiros ou experimenta algumas das nossas [Bibliotecas " +"e templates](https://penpot.app/libraries-templates)." +#: src/app/main/ui/dashboard/file_menu.cljs:249 msgid "dashboard.export-binary-multi" msgstr "Descarrega %s ficheiros Penpot (.penpot)" +#: src/app/main/ui/workspace/main_menu.cljs:605 msgid "dashboard.export-frames" msgstr "Exportar pranchetas para PDF" -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:201 msgid "dashboard.export-frames.title" msgstr "Exportar para PDF" +#, unused msgid "dashboard.export-multi" msgstr "Exportar %s ficheiros Penpot" -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:109 msgid "dashboard.export-multiple.selected" msgstr "%s de %s elementos selecionados" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:578 msgid "dashboard.export-shapes" msgstr "Exportar" -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:180 msgid "dashboard.export-shapes.how-to" msgstr "" "Podes adicionar definições de exportação em elementos a partir das " "propriedades de design (na parte inferior da barra lateral direita)." -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:184 msgid "dashboard.export-shapes.how-to-link" msgstr "Informações sobre como definir exportações no Penpot." -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:179 msgid "dashboard.export-shapes.no-elements" msgstr "Não existem elementos com definições de exportação." -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:190 msgid "dashboard.export-shapes.title" msgstr "Exportar seleção" +#: src/app/main/ui/dashboard/file_menu.cljs:252 msgid "dashboard.export-standard-multi" msgstr "Descarregar %s ficheiros standard (svg + json)" +#: src/app/main/ui/export.cljs:427 msgid "dashboard.export.detail" msgstr "* Pode incluir componentes, gráficos, cores e/ou tipografia." +#: src/app/main/ui/export.cljs:426 msgid "dashboard.export.explain" msgstr "" "Um ou mais ficheiros que queres exportar estão a utilizar bibliotecas " "partilhadas. O que queres fazer com os recursos*?" +#: src/app/main/ui/export.cljs:435 msgid "dashboard.export.options.all.message" msgstr "" "ficheiros com bibliotecas partilhadas serão incluídos na exportação, " "mantendo as ligações." +#: src/app/main/ui/export.cljs:436 msgid "dashboard.export.options.all.title" msgstr "Exportar bibliotecas partilhadas" +#: src/app/main/ui/export.cljs:437 msgid "dashboard.export.options.detach.message" msgstr "" "Bibliotecas partilhadas não serão incluídas na exportação e nenhum recurso " "será adicionado à biblioteca. " +#: src/app/main/ui/export.cljs:438 msgid "dashboard.export.options.detach.title" msgstr "Trata os recursos da biblioteca partilhada como objetos básicos" +#: src/app/main/ui/export.cljs:439 msgid "dashboard.export.options.merge.message" msgstr "" "Os teus ficheiros serão exportados com todos os recursos externos " "incorporados na biblioteca de ficheiros." +#: src/app/main/ui/export.cljs:440 msgid "dashboard.export.options.merge.title" msgstr "Incluir recursos da biblioteca partilhada em bibliotecas de ficheiros" +#: src/app/main/ui/export.cljs:418 msgid "dashboard.export.title" msgstr "Exportar ficheiros" +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:309 msgid "dashboard.fonts.deleted-placeholder" msgstr "Tipo de letra eliminado" -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:206 msgid "dashboard.fonts.dismiss-all" msgstr "Ignorar todas" +#: src/app/main/ui/dashboard/fonts.cljs:436 msgid "dashboard.fonts.empty-placeholder" msgstr "Ainda não tens tipos de letra personalizados instalados." -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:194 msgid "dashboard.fonts.fonts-added" msgid_plural "dashboard.fonts.fonts-added" msgstr[0] "1 tipo de letra adicionado" msgstr[1] "%s tipos de letra adicionados" +#: src/app/main/ui/dashboard/fonts.cljs:170 +#, markdown msgid "dashboard.fonts.hero-text1" msgstr "" "Qualquer web font que carregares aqui será adicionada à família de fontes " @@ -505,17 +547,21 @@ msgstr "" "carregar tipos de letra com os seguintes formatos: **TTF, OTF e WOFF** " "(apenas um será necessário)." +#: src/app/main/ui/dashboard/fonts.cljs:182 +#, markdown msgid "dashboard.fonts.hero-text2" msgstr "" -"Deves carregar tipos de letra que possuas or tenhas licença para utilizar no " -"Penpot. Sabe mais na secção de Direitos de Conteúdos dos [Termos de serviço " -"do Penpot](https://penpot.app/terms.html). Podes também ler mais sobre " -"[licenciamento de fontes](https://www.typography.com/faq)." +"Deves carregar tipos de letra que possuas or tenhas licença para utilizar " +"no Penpot. Sabe mais na secção de Direitos de Conteúdos dos [Termos de " +"serviço do Penpot](https://penpot.app/terms.html). Podes também ler mais " +"sobre [licenciamento de fontes](https://www.typography.com/faq)." -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:202 msgid "dashboard.fonts.upload-all" msgstr "Carregar tudo" +#: src/app/main/ui/dashboard/fonts.cljs:187 +#, markdown msgid "dashboard.fonts.warning-text" msgstr "" "Detetámos um possível problema nas tuas fontes relacionado com métricas " @@ -524,1518 +570,1666 @@ msgstr "" "além disso, recomendamos o uso do [Transfonter](https://transfonter.org/) " "para gerar fontes web e corrigir erros. " +#: src/app/main/ui/dashboard/import.cljs:472, src/app/main/ui/dashboard/project_menu.cljs:108 msgid "dashboard.import" msgstr "Importar ficheiros Penpot" +#: src/app/main/ui/dashboard/import.cljs:304, src/app/worker/import.cljs:753, src/app/worker/import.cljs:755 msgid "dashboard.import.analyze-error" msgstr "Oops! Não conseguimos importar este ficheiro" +#, unused msgid "dashboard.import.analyze-error.components-v2" msgstr "" "Ficheiro exportado com componentes v2 mas a equipa atual ainda não os " "suporta." +#: src/app/main/ui/dashboard/import.cljs:308 msgid "dashboard.import.import-error" -msgstr "" -"Ocorreu um problema na importação do ficheiro. O ficheiro não foi importado." +msgstr "Ocorreu um problema na importação do ficheiro. O ficheiro não foi importado." +#: src/app/main/ui/dashboard/import.cljs:493 msgid "dashboard.import.import-message" msgid_plural "dashboard.import.import-message" msgstr[0] "1 ficheiro foi importado com sucesso." msgstr[1] "%s ficheiros foram importados com sucesso." +#: src/app/main/ui/dashboard/import.cljs:481, src/app/main/ui/dashboard/import.cljs:488 msgid "dashboard.import.import-warning" msgstr "Alguns ficheiros continham objetos inválidos que foram removidos." +#: src/app/main/ui/dashboard/import.cljs:144 msgid "dashboard.import.progress.process-colors" msgstr "Processando cores" +#: src/app/main/ui/dashboard/import.cljs:153 msgid "dashboard.import.progress.process-components" msgstr "Processando componentes" +#: src/app/main/ui/dashboard/import.cljs:150 msgid "dashboard.import.progress.process-media" msgstr "Processando media" +#: src/app/main/ui/dashboard/import.cljs:141 msgid "dashboard.import.progress.process-page" msgstr "Processando página: %s" +#: src/app/main/ui/dashboard/import.cljs:147 msgid "dashboard.import.progress.process-typographies" msgstr "Processando tipografias" +#: src/app/main/ui/dashboard/import.cljs:135 msgid "dashboard.import.progress.upload-data" msgstr "A carregar dados para o servidor (%s/%s)" +#: src/app/main/ui/dashboard/import.cljs:138 msgid "dashboard.import.progress.upload-media" msgstr "A carregar ficheiro: %s" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:109 msgid "dashboard.invite-profile" msgstr "Convidar para a equipa" -#: src/app/main/ui/dashboard/sidebar.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:547, src/app/main/ui/dashboard/sidebar.cljs:556, src/app/main/ui/dashboard/sidebar.cljs:563, src/app/main/ui/dashboard/team.cljs:312 msgid "dashboard.leave-team" msgstr "Sair da equipa" +#: src/app/main/ui/dashboard/templates.cljs:88, src/app/main/ui/dashboard/templates.cljs:163 msgid "dashboard.libraries-and-templates" msgstr "Bibliotecas e Templates" +#: src/app/main/ui/dashboard/templates.cljs:164 msgid "dashboard.libraries-and-templates.explore" msgstr "Explora mais e sabe como contribuir" +#: src/app/main/ui/dashboard/import.cljs:365 msgid "dashboard.libraries-and-templates.import-error" msgstr "" "Ocorreu um problema com a importação do template. O template não foi " "importado." -#: src/app/main/ui/dashboard/libraries.cljs +#: src/app/main/ui/dashboard/libraries.cljs:53 msgid "dashboard.libraries-title" msgstr "Bibliotecas" -#: src/app/main/ui/dashboard/grid.cljs +#: src/app/main/ui/dashboard/placeholder.cljs:45 msgid "dashboard.loading-files" msgstr "a carregar os teus ficheiros …" +#: src/app/main/ui/dashboard/fonts.cljs:431 msgid "dashboard.loading-fonts" msgstr "a carregar as tuas fontes …" -#: src/app/main/ui/dashboard/project_menu.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:281, src/app/main/ui/dashboard/project_menu.cljs:100 msgid "dashboard.move-to" msgstr "Mover para" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:245 msgid "dashboard.move-to-multi" msgstr "Mover %s ficheiros para" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:226 msgid "dashboard.move-to-other-team" msgstr "Mover para outra equipa" -#: src/app/main/ui/dashboard/projects.cljs, -#: src/app/main/ui/dashboard/files.cljs +#: src/app/main/ui/dashboard/files.cljs:105, src/app/main/ui/dashboard/projects.cljs:252, src/app/main/ui/dashboard/projects.cljs:253 msgid "dashboard.new-file" msgstr "+ Novo Ficheiro" -#: src/app/main/data/dashboard.cljs +#: src/app/main/data/dashboard.cljs:958, src/app/main/data/dashboard.cljs:1181 msgid "dashboard.new-file-prefix" msgstr "Novo Ficheiro" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:55 msgid "dashboard.new-project" msgstr "+ Novo projeto" -#: src/app/main/data/dashboard.cljs +#: src/app/main/data/dashboard.cljs:726, src/app/main/data/dashboard.cljs:1184 msgid "dashboard.new-project-prefix" msgstr "Novo Projeto" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:60 msgid "dashboard.no-matches-for" msgstr "Não há resultados para \"%s\"" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:827 msgid "dashboard.no-projects-placeholder" msgstr "Projetos afixados aparecerão aqui" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:33 msgid "dashboard.notifications.email-changed-successfully" msgstr "O teu endereço de e-mail foi atualizado com sucesso" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:27 msgid "dashboard.notifications.email-verified-successfully" msgstr "O teu endereço de e-mail foi verificado com sucesso" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:37 msgid "dashboard.notifications.password-saved" msgstr "Palavra-passe guardada com sucesso!" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1081 msgid "dashboard.num-of-members" msgstr "%s membros" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:267 msgid "dashboard.open-in-new-tab" msgstr "Abrir ficheiro num novo separador" +#: src/app/main/ui/dashboard/files.cljs:117, src/app/main/ui/dashboard/projects.cljs:260, src/app/main/ui/dashboard/projects.cljs:261 msgid "dashboard.options" msgstr "Opções" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:106, src/app/main/ui/settings/password.cljs:119 msgid "dashboard.password-change" msgstr "Alterar palavra-passe" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/pin_button.cljs:24, src/app/main/ui/dashboard/project_menu.cljs:95 msgid "dashboard.pin-unpin" msgstr "Afixar/Desafixar" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:51 msgid "dashboard.projects-title" msgstr "Projetos" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:86 msgid "dashboard.remove-account" msgstr "Queres remover a tua conta?" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "dashboard.remove-shared" msgstr "Remover como Biblioteca Partilhada" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:78 msgid "dashboard.save-settings" msgstr "Guardar definições" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:246, src/app/main/ui/dashboard/sidebar.cljs:247 msgid "dashboard.search-placeholder" msgstr "Pesquisar…" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:55 msgid "dashboard.searching-for" msgstr "Pesquisar por \"%s\"…" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:56 msgid "dashboard.select-ui-language" msgstr "Selecionar idioma da Interface" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:63 msgid "dashboard.select-ui-theme" msgstr "Selecionar tema" -#: src/app/main/ui/dashboard/grid.cljs +#: src/app/main/ui/dashboard/projects.cljs:282 msgid "dashboard.show-all-files" msgstr "Mostrar todos os ficheiros" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:96 msgid "dashboard.success-delete-file" msgid_plural "dashboard.success-delete-file" msgstr[0] "O teu ficheiro foi apagado com sucesso" msgstr[1] "Os teus ficheiros foram apagados com sucesso" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:59 msgid "dashboard.success-delete-project" msgstr "O teu projeto foi eliminado com sucesso" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:91 msgid "dashboard.success-duplicate-file" msgid_plural "dashboard.success-delete-file" msgstr[0] "O teu ficheiro foi duplicado com sucesso" msgstr[1] "Os teus ficheiros foram duplicados com sucesso" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:33 msgid "dashboard.success-duplicate-project" msgstr "O teu projeto foi duplicado com sucesso" -#: src/app/main/ui/dashboard/grid.cljs, src/app/main/ui/dashboard/sidebar.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:130, src/app/main/ui/dashboard/grid.cljs:558, src/app/main/ui/dashboard/sidebar.cljs:152 msgid "dashboard.success-move-file" msgstr "O teu ficheiro foi movido com sucesso" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:129 msgid "dashboard.success-move-files" msgstr "Os teus ficheiros foram movidos com sucesso" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:54 msgid "dashboard.success-move-project" msgstr "O teu projeto foi movido com sucesso" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1052 msgid "dashboard.team-info" msgstr "Informação da equipa" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1070 msgid "dashboard.team-members" msgstr "Membros da equipa" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1085 msgid "dashboard.team-projects" msgstr "Projetos da equipa" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:61 msgid "dashboard.theme-change" msgstr "Tema da interface" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:42 msgid "dashboard.title-search" msgstr "Resultados da pesquisa" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:50 msgid "dashboard.type-something" msgstr "Escreve para pesquisar resultados" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:287, src/app/main/ui/workspace/main_menu.cljs:566 msgid "dashboard.unpublish-shared" msgstr "Cancelar publicação da Biblioteca" -#: src/app/main/ui/settings/password.cljs, -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:71 msgid "dashboard.update-settings" msgstr "Atualizar definições" +#: src/app/main/ui/dashboard/team.cljs:861 msgid "dashboard.webhooks.active" msgstr "Ativo" +#: src/app/main/ui/dashboard/team.cljs:862 msgid "dashboard.webhooks.active.explain" msgstr "Quando este webhook for ativado serão enviados detalhes do evento" +#: src/app/main/ui/dashboard/team.cljs:852 msgid "dashboard.webhooks.content-type" msgstr "Tipo de conteúdo" +#: src/app/main/ui/dashboard/team.cljs:885 msgid "dashboard.webhooks.create" msgstr "Criar webhook" +#: src/app/main/ui/dashboard/team.cljs:775 msgid "dashboard.webhooks.create.success" msgstr "Webhook criado com sucesso." +#: src/app/main/ui/dashboard/team.cljs:882 msgid "dashboard.webhooks.description" msgstr "" "Os webhooks são uma forma simples de permitir a outros sites e aplicações " "serem notificados quando acontecem certas ações no Penpot. Enviaremos um " "pedido POST para cada um dos URLs que forneceres." +#: src/app/main/ui/dashboard/team.cljs:1005 msgid "dashboard.webhooks.empty.add-one" msgstr "Clica no botão \"Criar webhook\" para adicionar um." +#: src/app/main/ui/dashboard/team.cljs:1004 msgid "dashboard.webhooks.empty.no-webhooks" msgstr "Ainda não há nenhum webhook criado." +#, unused msgid "dashboard.webhooks.update.success" msgstr "Webhook atualizado com sucesso." -#: src/app/main/ui/settings.cljs +#: src/app/main/ui/settings.cljs:31 msgid "dashboard.your-account-title" msgstr "A tua conta" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:70 msgid "dashboard.your-email" msgstr "E-mail" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:62 msgid "dashboard.your-name" msgstr "O teu nome" -#: src/app/main/ui/dashboard/search.cljs, src/app/main/ui/dashboard/team.cljs, -#: src/app/main/ui/dashboard/libraries.cljs, -#: src/app/main/ui/dashboard/projects.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:38, src/app/main/ui/dashboard/fonts.cljs:33, src/app/main/ui/dashboard/libraries.cljs:42, src/app/main/ui/dashboard/projects.cljs:318, src/app/main/ui/dashboard/search.cljs:30, src/app/main/ui/dashboard/sidebar.cljs:312, src/app/main/ui/dashboard/team.cljs:495, src/app/main/ui/dashboard/team.cljs:729, src/app/main/ui/dashboard/team.cljs:991, src/app/main/ui/dashboard/team.cljs:1038 msgid "dashboard.your-penpot" msgstr "O teu Penpot" -#: src/app/main/ui/alert.cljs +#: src/app/main/ui/alert.cljs:32 msgid "ds.alert-ok" msgstr "Ok" -#: src/app/main/ui/alert.cljs +#: src/app/main/ui/alert.cljs:31, src/app/main/ui/alert.cljs:34 msgid "ds.alert-title" msgstr "Atenção" -#: src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:83 msgid "ds.component-subtitle" msgstr "Componentes para atualizar:" -#: src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:36, src/app/main/ui/workspace/plugins.cljs:246 msgid "ds.confirm-cancel" msgstr "Cancelar" -#: src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:37, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:141 msgid "ds.confirm-ok" msgstr "Ok" -#: src/app/main/ui/confirm.cljs, src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:35, src/app/main/ui/confirm.cljs:39 msgid "ds.confirm-title" msgstr "Tens a certeza?" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:62 msgid "errors.auth-provider-not-configured" msgstr "Provedor de autenticação não configurado." +#: src/app/main/errors.cljs:104 msgid "errors.auth.unable-to-login" msgstr "Parece que não estás autenticado ou a sessão expirou." +#: src/app/main/data/fonts.cljs:189 msgid "errors.bad-font" msgstr "A fonte %s não pôde ser carregada" +#: src/app/main/data/fonts.cljs:188 msgid "errors.bad-font-plural" msgstr "As fontes %s não puderam ser carregadas" +#: src/app/main/data/workspace/media.cljs:198 msgid "errors.cannot-upload" msgstr "Não foi possível carregar o ficheiro." -#: src/app/main/data/workspace.cljs +#: src/app/main/data/workspace.cljs:1598 msgid "errors.clipboard-not-implemented" msgstr "O teu browser não pode fazer esta operação" -#: src/app/main/ui/auth/verify_token.cljs, -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/auth/verify_token.cljs:82, src/app/main/ui/settings/change_email.cljs:46 msgid "errors.email-already-exists" msgstr "E-mail já utilizado" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:87 msgid "errors.email-already-validated" msgstr "E-mail já validado." +#: src/app/main/ui/settings/password.cljs:28 msgid "errors.email-as-password" msgstr "Não podes utilizar o teu e-mail como palavra-passe" -#: src/app/main/ui/auth/register.cljs, -#: src/app/main/ui/auth/recovery_request.cljs, -#: src/app/main/ui/settings/change_email.cljs, -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/data/users.cljs:707, src/app/main/ui/auth/register.cljs:63 +msgid "errors.email-domain-not-allowed" +msgstr "Domínio não permitido" + +#: src/app/main/ui/auth/recovery_request.cljs:63, src/app/main/ui/dashboard/team.cljs:578, src/app/main/ui/settings/change_email.cljs:54 msgid "errors.email-has-permanent-bounces" msgstr "O e-mail «%s» tem muitos relatórios de rejeição permanentes." -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs, -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/login.cljs:81, src/app/main/ui/auth/recovery_request.cljs:31, src/app/main/ui/auth/register.cljs:43 msgid "errors.email-invalid" msgstr "Por favor introduz um email válido" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:35 msgid "errors.email-invalid-confirmation" msgstr "O e-mail de confirmação deve combinar" +#: src/app/main/ui/dashboard/team.cljs:170 msgid "errors.email-spam-or-permanent-bounces" msgstr "O e-mail «%s» foi denunciado como spam ou devolvido permanentemente." -#: src/app/main/errors.cljs +#: src/app/main/errors.cljs:227 msgid "errors.feature-mismatch" msgstr "" "Parece que estás a abrir um ficheiro que tem a funcionalidade '%s' ativada, " "mas a versão do teu Penpot não a suporta, ou está desativada." -#: src/app/main/errors.cljs +#: src/app/main/errors.cljs:231, src/app/main/errors.cljs:245 msgid "errors.feature-not-supported" msgstr "A funcionalidade '%s' não é suportada." -#: src/app/main/errors.cljs +#: src/app/main/errors.cljs:223 msgid "errors.file-feature-mismatch" msgstr "" "Parece que existem discrepâncias entre as funcionalidades ativadas e as " "funcionalidades do ficheiro que estás a tentar abrir. Será necessário " "aplicar migrações para '%s' antes de poder abrir o ficheiro." -#: src/app/main/ui/auth/verify_token.cljs, -#: src/app/main/ui/settings/feedback.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/data/users.cljs:709, src/app/main/ui/auth/login.cljs:65, src/app/main/ui/auth/login.cljs:116, src/app/main/ui/auth/register.cljs:69, src/app/main/ui/auth/register.cljs:237, src/app/main/ui/auth/verify_token.cljs:92, src/app/main/ui/dashboard/team.cljs:173, src/app/main/ui/onboarding/team_choice.cljs:95, src/app/main/ui/settings/access_tokens.cljs:91, src/app/main/ui/settings/feedback.cljs:52 msgid "errors.generic" msgstr "Ocorreu algo inesperado." -#: src/app/main/ui/components/color_input.cljs +#: src/app/main/ui/components/color_input.cljs:57 msgid "errors.invalid-color" msgstr "Cor inválida" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/static.cljs:43 msgid "errors.invite-invalid" msgstr "Convite inválido" +#: src/app/main/ui/static.cljs:44 msgid "errors.invite-invalid.info" msgstr "Este convite pode ter sido cancelado ou expirado." -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:101 msgid "errors.ldap-disabled" msgstr "Autenticação LDAP está desativada." -#: src/app/main/errors.cljs +#: src/app/main/errors.cljs:239 msgid "errors.max-quote-reached" msgstr "Alcançou o máximo da quota '%s'. Contacte o suporte técnico." -#: src/app/main/data/workspace/persistence.cljs +#: src/app/main/data/workspace/media.cljs:184 msgid "errors.media-too-large" msgstr "A imagem é demasiado grande para ser inserida." -#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs +#: src/app/main/data/media.cljs:68, src/app/main/data/workspace/media.cljs:187 msgid "errors.media-type-mismatch" -msgstr "" -"Parece que o conteúdo da imagem não corresponde à extensão do ficheiro." +msgstr "Parece que o conteúdo da imagem não corresponde à extensão do ficheiro." -#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs +#: src/app/main/data/media.cljs:65, src/app/main/data/workspace/media.cljs:172, src/app/main/data/workspace/media.cljs:175, src/app/main/data/workspace/media.cljs:178, src/app/main/data/workspace/media.cljs:181 msgid "errors.media-type-not-allowed" msgstr "Parece que esta não é uma imagem válida." -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:574 msgid "errors.member-is-muted" msgstr "" -"O perfil que estás a convidar tem e-mails silenciados (relatórios de spam ou " -"devoluções altas)." +"O perfil que estás a convidar tem e-mails silenciados (relatórios de spam " +"ou devoluções altas)." -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:61 msgid "errors.password-invalid-confirmation" msgstr "A palavra-passe de confirmação tem de corresponder" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:64 msgid "errors.password-too-short" msgstr "A palavra-passe deverá conter no mínimo 8 caracteres" +#: src/app/main/errors.cljs:124 msgid "errors.paste-data-validation" msgstr "Dados inválidos na área de transferência" +#: src/app/main/data/users.cljs:703, src/app/main/ui/auth/login.cljs:97, src/app/main/ui/auth/login.cljs:105 msgid "errors.profile-blocked" msgstr "O perfil está bloqueado" -#: src/app/main/ui/auth/recovery_request.cljs, -#: src/app/main/ui/settings/change_email.cljs, -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/auth/recovery_request.cljs:60, src/app/main/ui/dashboard/team.cljs:164, src/app/main/ui/dashboard/team.cljs:570, src/app/main/ui/settings/change_email.cljs:50 msgid "errors.profile-is-muted" msgstr "" "O teu perfil tem e-mails silenciados (relatórios de spam ou devoluções " "altas)." -#: src/app/main/ui/auth/register.cljs +#: src/app/main/data/users.cljs:701, src/app/main/ui/auth/register.cljs:60 msgid "errors.registration-disabled" msgstr "A criação de contas está atualmente desativada." -#: src/app/main/errors.cljs +#: src/app/main/errors.cljs:218 msgid "errors.team-feature-mismatch" msgstr "Funcionalidade incompatível '%s' detetada" +#: src/app/main/ui/dashboard/sidebar.cljs:365, src/app/main/ui/dashboard/team.cljs:359 msgid "errors.team-leave.insufficient-members" -msgstr "" -"Membros insuficientes para deixar a equipa, provavelmente queres eliminá-la." +msgstr "Membros insuficientes para deixar a equipa, provavelmente queres eliminá-la." +#: src/app/main/ui/dashboard/sidebar.cljs:368, src/app/main/ui/dashboard/team.cljs:362 msgid "errors.team-leave.member-does-not-exists" msgstr "O membro que tentas atribuir não existe." +#: src/app/main/ui/dashboard/sidebar.cljs:371, src/app/main/ui/dashboard/team.cljs:365 msgid "errors.team-leave.owner-cant-leave" msgstr "" "O proprietário não pode sair da equipa, deverás retribuir a função de " "proprietário." -#: src/app/main/data/media.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs +#: src/app/main/data/media.cljs:71 msgid "errors.unexpected-error" msgstr "Ocorreu um erro inesperado." -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:60 msgid "errors.unexpected-token" msgstr "Token desconhecido" +#, unused msgid "errors.validation" msgstr "Erro de validação" -#: src/app/main/errors.cljs +#: src/app/main/errors.cljs:235 msgid "errors.version-not-supported" msgstr "O ficheiro tem um número de versão incompatível" +#: src/app/main/ui/dashboard/team.cljs:796 msgid "errors.webhooks.connection" msgstr "Erro de conexão, não foi possível alcançar o URL" +#: src/app/main/ui/dashboard/team.cljs:790 msgid "errors.webhooks.invalid-uri" msgstr "O URL não passou na validação." -#, fuzzy +#: src/app/main/ui/dashboard/team.cljs:949 msgid "errors.webhooks.last-delivery" msgstr "Último envio sem sucesso." +#: src/app/main/ui/dashboard/team.cljs:792, src/app/main/ui/dashboard/team.cljs:952 msgid "errors.webhooks.ssl-validation" msgstr "Erro na validação SSL." +#: src/app/main/ui/dashboard/team.cljs:794 msgid "errors.webhooks.timeout" msgstr "Timeout" +#: src/app/main/ui/dashboard/team.cljs:788 msgid "errors.webhooks.unexpected" msgstr "Erro inesperado ao validar" +#: src/app/main/ui/dashboard/team.cljs:798, src/app/main/ui/dashboard/team.cljs:955 msgid "errors.webhooks.unexpected-status" msgstr "Estado inesperado %s" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:109, src/app/main/ui/auth/login.cljs:113 msgid "errors.wrong-credentials" msgstr "Utilizador ou palavra-passe parecem estar errados." -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:25 msgid "errors.wrong-old-password" msgstr "Palavra-passe antiga está incorreta" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:77 msgid "feedback.description" msgstr "Descrição" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:95 msgid "feedback.discourse-go-to" msgstr "Ir para o fórum Penpot" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:89 msgid "feedback.discourse-subtitle1" msgstr "" "Estamos felizes em ter-te aqui. Se precisares de ajuda, por favor pesquisa " "antes de publicar." -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:88 msgid "feedback.discourse-title" msgstr "Comunidade Penpot" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:72 msgid "feedback.subject" msgstr "Assunto" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:69 msgid "feedback.subtitle" msgstr "" "Por favor descreve o motivo do teu e-mail, especificando se é um problema, " -"uma ideia, ou uma dúvida. Um membro da nossa equipa tentará responder o mais " -"rápido possível." +"uma ideia, ou uma dúvida. Um membro da nossa equipa tentará responder o " +"mais rápido possível." -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:68 msgid "feedback.title" msgstr "E-mail" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:105 msgid "feedback.twitter-go-to" msgstr "Ir para o X" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:99 msgid "feedback.twitter-subtitle1" msgstr "Aqui para ajudar com as tuas dúvidas técnicas." -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:98 msgid "feedback.twitter-title" msgstr "Conta de suporte no X" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:30 msgid "generic.error" msgstr "Ocorreu um erro" -#: src/app/main/ui/inspect/attributes/blur.cljs +#: src/app/main/ui/viewer/inspect/attributes/blur.cljs:26 msgid "inspect.attributes.blur" msgstr "Desfoque" -#: src/app/main/ui/inspect/attributes/blur.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:115 msgid "inspect.attributes.blur.value" msgstr "Valor" -#: src/app/main/ui/inspect/attributes/common.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:112 msgid "inspect.attributes.color.hex" msgstr "HEX" -#: src/app/main/ui/inspect/attributes/common.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:114 msgid "inspect.attributes.color.hsla" msgstr "HSLA" -#: src/app/main/ui/inspect/attributes/common.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:113 msgid "inspect.attributes.color.rgba" msgstr "RGBA" -#: src/app/main/ui/inspect/attributes/fill.cljs +#: src/app/main/ui/viewer/inspect/attributes/fill.cljs:57 msgid "inspect.attributes.fill" msgstr "Preencher" -#: src/app/main/ui/inspect/attributes/image.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:99, src/app/main/ui/viewer/inspect/attributes/image.cljs:51 msgid "inspect.attributes.image.download" msgstr "Descarregar imagem original" -#: src/app/main/ui/inspect/attributes/image.cljs +#: src/app/main/ui/viewer/inspect/attributes/image.cljs:39 msgid "inspect.attributes.image.height" msgstr "Altura" -#: src/app/main/ui/inspect/attributes/image.cljs +#: src/app/main/ui/viewer/inspect/attributes/image.cljs:32 msgid "inspect.attributes.image.width" msgstr "Largura" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout" msgstr "Layout" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.height" msgstr "Altura" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.left" msgstr "Esquerda" -#: src/app/main/ui/inspect/attributes/layout.cljs, -#: src/app/main/ui/inspect/attributes/layout.cljs +#: src/app/main/ui/inspect/attributes/layout.cljs, src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.radius" msgstr "Raio" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.rotation" msgstr "Rotação" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.top" msgstr "Topo" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.width" msgstr "Largura" -#: src/app/main/ui/inspect/attributes/shadow.cljs +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:57 msgid "inspect.attributes.shadow" msgstr "Sombra" -#: src/app/main/ui/inspect/attributes/layout.cljs +#: src/app/main/ui/viewer/inspect/attributes/geometry.cljs:40 msgid "inspect.attributes.size" msgstr "Tamanho e posição" -#: src/app/main/ui/inspect/attributes/stroke.cljs +#: src/app/main/ui/viewer/inspect/attributes/stroke.cljs:52 msgid "inspect.attributes.stroke" msgstr "Traço" +#, permanent, unused msgid "inspect.attributes.stroke.alignment.center" msgstr "Centro" +#, permanent, unused msgid "inspect.attributes.stroke.alignment.inner" msgstr "Interior" +#, permanent, unused msgid "inspect.attributes.stroke.alignment.outer" msgstr "Exterior" +#, unused msgid "inspect.attributes.stroke.style.dotted" msgstr "Pontilhado" +#, unused msgid "inspect.attributes.stroke.style.mixed" msgstr "Misto" +#, unused msgid "inspect.attributes.stroke.style.none" msgstr "Nenhum" +#, unused msgid "inspect.attributes.stroke.style.solid" msgstr "Sólido" #: src/app/main/ui/inspect/attributes/stroke.cljs +#, unused msgid "inspect.attributes.stroke.width" msgstr "Largura" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:81, src/app/main/ui/viewer/inspect/attributes/text.cljs:194 msgid "inspect.attributes.typography" msgstr "Tipografia" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:89 msgid "inspect.attributes.typography.font-family" msgstr "Família da Fonte" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:107 msgid "inspect.attributes.typography.font-size" msgstr "Tamanho da Fonte" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:98 msgid "inspect.attributes.typography.font-style" msgstr "Estilo da Fonte" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:116 msgid "inspect.attributes.typography.font-weight" msgstr "Espessura da fonte" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:134 msgid "inspect.attributes.typography.letter-spacing" msgstr "Espaço entre caracteres" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:125 msgid "inspect.attributes.typography.line-height" msgstr "Altura da Linha" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:143 msgid "inspect.attributes.typography.text-decoration" msgstr "Decoração de Texto" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:145 msgid "inspect.attributes.typography.text-decoration.none" msgstr "Nenhum" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:146 msgid "inspect.attributes.typography.text-decoration.strikethrough" msgstr "Rasurado" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:147 msgid "inspect.attributes.typography.text-decoration.underline" msgstr "Sublinhado" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:156 msgid "inspect.attributes.typography.text-transform" msgstr "Transformação de Texto" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:158 msgid "inspect.attributes.typography.text-transform.lowercase" msgstr "Minúsculas" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:159 msgid "inspect.attributes.typography.text-transform.none" msgstr "Nenhum" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:160 msgid "inspect.attributes.typography.text-transform.titlecase" msgstr "Capitalização de Título" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:162 msgid "inspect.attributes.typography.text-transform.unset" msgstr "Sem atribuição" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:161 msgid "inspect.attributes.typography.text-transform.uppercase" msgstr "Maiúsculas" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:140 msgid "inspect.empty.help" -msgstr "" -"Se quiseres saber mais sobre a inspeção, visita o centro de ajuda do Penpot" +msgstr "Se quiseres saber mais sobre a inspeção, visita o centro de ajuda do Penpot" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:143 msgid "inspect.empty.more-info" msgstr "Mais informações sobre a inspeção" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:135 msgid "inspect.empty.select" msgstr "" "Seleciona uma forma, prancheta, ou grupo para inspecionar os seus atributos " "e código" -#: src/app/main/ui/inspect/right_sidebar.cljs +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:125 msgid "inspect.tabs.code" msgstr "Código" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:98 msgid "inspect.tabs.code.selected.circle" msgstr "Círculo" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:99 msgid "inspect.tabs.code.selected.component" msgstr "Componente" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:100 msgid "inspect.tabs.code.selected.curve" msgstr "Curva" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:101 msgid "inspect.tabs.code.selected.frame" msgstr "Prancheta" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:102 msgid "inspect.tabs.code.selected.group" msgstr "Grupo" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:103 msgid "inspect.tabs.code.selected.image" msgstr "Imagem" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:104 msgid "inspect.tabs.code.selected.mask" msgstr "Máscara" -#: src/app/main/ui/inspect/right_sidebar.cljs +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:93 msgid "inspect.tabs.code.selected.multiple" msgstr "%s Selecionados" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:105 msgid "inspect.tabs.code.selected.path" msgstr "Caminho" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:106 msgid "inspect.tabs.code.selected.rect" msgstr "Rectângulo" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:107 msgid "inspect.tabs.code.selected.svg-raw" msgstr "SVG" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:108 msgid "inspect.tabs.code.selected.text" msgstr "Texto" -#: src/app/main/ui/inspect/right_sidebar.cljs +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:115 msgid "inspect.tabs.info" msgstr "Informação" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:158 msgid "label.shortcuts" msgstr "Atalhos" +#: src/app/main/ui/dashboard/import.cljs:527 msgid "labels.accept" msgstr "Aceitar" -#: src/app/main/ui/settings/sidebar.cljs +#: src/app/main/ui/settings/sidebar.cljs:100 msgid "labels.access-tokens" msgstr "Tokens de acesso" +#: src/app/main/ui/dashboard/team.cljs:968 msgid "labels.active" msgstr "Ativo" +#: src/app/main/ui/dashboard/fonts.cljs:175 msgid "labels.add-custom-font" msgstr "Adicionar fonte personalizada" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:120, src/app/main/ui/dashboard/team.cljs:276, src/app/main/ui/dashboard/team.cljs:519, src/app/main/ui/dashboard/team.cljs:549, src/app/main/ui/onboarding/team_choice.cljs:67 msgid "labels.admin" msgstr "Administração" +#: src/app/main/ui/onboarding/questions.cljs:174 +msgid "labels.adobe-xd" +msgstr "Adobe XD" + #: src/app/main/ui/workspace/comments.cljs +#, unused msgid "labels.all" msgstr "Todos" +#: src/app/main/ui/auth.cljs:37 msgid "labels.and" msgstr "e" +#: src/app/main/ui/onboarding/team_choice.cljs:162 msgid "labels.back" msgstr "Voltar" -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:59 msgid "labels.bad-gateway.desc-message" msgstr "" "Parece que tens de aguardar um pouco e tentar novamente; estamos a realizar " "pequenas manutenções nos nossos servidores." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:58 msgid "labels.bad-gateway.main-message" msgstr "Error de Servidor (Bad Gateway)" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/data/common.cljs:112, src/app/main/ui/dashboard/change_owner.cljs:69, src/app/main/ui/dashboard/import.cljs:514, src/app/main/ui/dashboard/team.cljs:868, src/app/main/ui/delete_shared.cljs:35, src/app/main/ui/export.cljs:164, src/app/main/ui/export.cljs:460, src/app/main/ui/settings/access_tokens.cljs:188, src/app/main/ui/viewer/share_link.cljs:203, src/app/main/ui/workspace/sidebar/assets/groups.cljs:149 msgid "labels.cancel" msgstr "Cancelar" +#: src/app/main/ui/onboarding/questions.cljs:176 +msgid "labels.canva" +msgstr "Canva" + +#: src/app/main/ui/dashboard/projects.cljs:93, src/app/main/ui/export.cljs:478, src/app/main/ui/settings/access_tokens.cljs:183, src/app/main/ui/viewer/login.cljs:77, src/app/main/ui/viewer/share_link.cljs:174, src/app/main/ui/workspace/libraries.cljs:522 msgid "labels.close" msgstr "Fechar" -#: src/app/main/ui/dashboard/comments.cljs +#: src/app/main/ui/dashboard/comments.cljs:104, src/app/main/ui/viewer/comments.cljs:70, src/app/main/ui/workspace/comments.cljs:126 msgid "labels.comments" msgstr "Comentários" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:985, src/app/main/ui/workspace/main_menu.cljs:110 msgid "labels.community" msgstr "Comunidade" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:103 msgid "labels.confirm-password" msgstr "Confirmar palavra-passe" +#: src/app/main/ui/dashboard/import.cljs:520, src/app/main/ui/export.cljs:465, src/app/main/ui/onboarding/newsletter.cljs:101 msgid "labels.continue" msgstr "Continuar" +#, unused msgid "labels.continue-with" msgstr "Continuar com" +#: src/app/main/ui/viewer/login.cljs:75 msgid "labels.continue-with-penpot" msgstr "Podes continuar com uma conta Penpot" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:642 msgid "labels.copy-invitation-link" msgstr "Copiar link" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:157, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:190 msgid "labels.create" msgstr "Criar" -#: src/app/main/ui/dashboard/team_form.cljs, -#: src/app/main/ui/dashboard/team_form.cljs +#: src/app/main/ui/dashboard/team_form.cljs:101, src/app/main/ui/dashboard/team_form.cljs:121 msgid "labels.create-team" msgstr "Criar equipa nova" -#: src/app/main/ui/dashboard/team_form.cljs +#: src/app/main/ui/dashboard/team_form.cljs:113 msgid "labels.create-team.placeholder" msgstr "Introduz o nome da nova equipa" +#, unused msgid "labels.custom-fonts" msgstr "Fonte personalizada" -#: src/app/main/ui/settings/sidebar.cljs +#: src/app/main/ui/settings/sidebar.cljs:73 msgid "labels.dashboard" msgstr "Painel" -#: src/app/main/ui/dashboard/project_menu.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:306, src/app/main/ui/dashboard/fonts.cljs:255, src/app/main/ui/dashboard/fonts.cljs:332, src/app/main/ui/dashboard/fonts.cljs:346, src/app/main/ui/dashboard/project_menu.cljs:115, src/app/main/ui/dashboard/team.cljs:904, src/app/main/ui/settings/access_tokens.cljs:209, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:209 msgid "labels.delete" msgstr "Eliminar" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:357 msgid "labels.delete-comment" msgstr "Eliminar comentário" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:354 msgid "labels.delete-comment-thread" msgstr "Eliminar tópico" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:648 msgid "labels.delete-invitation" msgstr "Eliminar convite" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:262 msgid "labels.delete-multi-files" msgstr "Eliminar %s ficheiros" +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:199 msgid "labels.discard" msgstr "Descartar" -#: src/app/main/ui/dashboard/projects.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs, -#: src/app/main/ui/dashboard/files.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:28, src/app/main/ui/dashboard/files.cljs:72, src/app/main/ui/dashboard/files.cljs:156, src/app/main/ui/dashboard/projects.cljs:220, src/app/main/ui/dashboard/projects.cljs:224, src/app/main/ui/dashboard/sidebar.cljs:791 msgid "labels.drafts" msgstr "Rascunhos" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:350, src/app/main/ui/dashboard/fonts.cljs:252, src/app/main/ui/dashboard/team.cljs:902, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:205 msgid "labels.edit" msgstr "Editar" +#, unused msgid "labels.edit-file" msgstr "Editar ficheiro" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:118, src/app/main/ui/dashboard/team.cljs:279, src/app/main/ui/dashboard/team.cljs:520, src/app/main/ui/dashboard/team.cljs:553, src/app/main/ui/onboarding/team_choice.cljs:66 msgid "labels.editor" msgstr "Editor" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:661 msgid "labels.expired-invitation" msgstr "Expirado" +#: src/app/main/ui/export.cljs:173 msgid "labels.export" msgstr "Exportar" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:51 msgid "labels.feedback-disabled" msgstr "Feedback desativado" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:42 msgid "labels.feedback-sent" msgstr "Feedback enviado" +#: src/app/main/ui/onboarding/questions.cljs:170 +msgid "labels.figma" +msgstr "Figma" + +#: src/app/main/ui/dashboard/fonts.cljs:412 msgid "labels.font-family" msgstr "Família da Fonte" +#, unused msgid "labels.font-providers" msgstr "Provedores de fontes" +#: src/app/main/ui/dashboard/fonts.cljs:413 msgid "labels.font-variants" msgstr "Variantes" +#: src/app/main/ui/dashboard/fonts.cljs:52, src/app/main/ui/dashboard/sidebar.cljs:811 msgid "labels.fonts" msgstr "Fontes" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/onboarding/questions.cljs:262 +msgid "labels.freelancer" +msgstr "Sou trabalhador(a) independente (freelancer)" + +#: src/app/main/ui/dashboard/sidebar.cljs:1015, src/app/main/ui/workspace/main_menu.cljs:142 msgid "labels.github-repo" msgstr "Repositório Github" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/settings/sidebar.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:1032, src/app/main/ui/settings/sidebar.cljs:113, src/app/main/ui/workspace/main_menu.cljs:171 msgid "labels.give-feedback" msgstr "Dá feedback" +#: src/app/main/ui/auth/recovery_request.cljs:110, src/app/main/ui/auth/register.cljs:285, src/app/main/ui/viewer/login.cljs:117 msgid "labels.go-back" msgstr "Voltar atrás" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:978, src/app/main/ui/workspace/main_menu.cljs:102 msgid "labels.help-center" msgstr "Centro de Ajuda" -#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/comments.cljs:103, src/app/main/ui/workspace/comments.cljs:67 msgid "labels.hide-resolved-comments" msgstr "Ocultar comentários resolvidos" +#: src/app/main/ui/dashboard/team.cljs:969 msgid "labels.inactive" msgstr "Inativo" +#: src/app/main/ui/dashboard/fonts.cljs:410 msgid "labels.installed-fonts" msgstr "Fontes instaladas" -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:144 msgid "labels.internal-error.desc-message" msgstr "" "Ocorreu algo inesperado. Tenta novamente a operação e se o problema " "persistir, entra em contacto com o suporte." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:143 msgid "labels.internal-error.main-message" msgstr "Erro interno" -#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/onboarding/questions.cljs:178 +msgid "labels.invision" +msgstr "InVision" + +#: src/app/main/ui/dashboard/sidebar.cljs:516, src/app/main/ui/dashboard/team.cljs:89, src/app/main/ui/dashboard/team.cljs:97, src/app/main/ui/dashboard/team.cljs:708 msgid "labels.invitations" msgstr "Convites" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:51 msgid "labels.language" msgstr "Idioma" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:1008, src/app/main/ui/workspace/main_menu.cljs:134 msgid "labels.libraries-and-templates" msgstr "Bibliotecas e Templates" +#: src/app/main/ui/viewer/header.cljs:203 msgid "labels.log-or-sign" msgstr "Iniciar sessão ou registar" -#: src/app/main/ui/settings.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:1040 msgid "labels.logout" msgstr "Terminar sessão" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/team.cljs:468 msgid "labels.member" msgstr "Membro" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:510, src/app/main/ui/dashboard/team.cljs:87, src/app/main/ui/dashboard/team.cljs:95 msgid "labels.members" msgstr "Membros" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:96 msgid "labels.new-password" msgstr "Palavra-passe nova" -#: src/app/main/ui/workspace/comments.cljs, -#: src/app/main/ui/dashboard/comments.cljs +#: src/app/main/ui/dashboard/templates.cljs:269, src/app/main/ui/onboarding/questions.cljs:55 +msgid "labels.next" +msgstr "Seguinte" + +#: src/app/main/ui/dashboard/comments.cljs:128, src/app/main/ui/workspace/comments.cljs:161 msgid "labels.no-comments-available" msgstr "Não tens notificações de comentários pendentes." -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:694 msgid "labels.no-invitations" msgstr "Não há convites." -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:696 +#, markdown msgid "labels.no-invitations-hint" msgstr "" "Clica no botão \"Convidar para a equipa\" para convidar mais membros para " "esta equipa." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:50 msgid "labels.not-found.desc-message" msgstr "Esta página não existe ou não tens permissões para a aceder." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:49 msgid "labels.not-found.main-message" msgstr "Ups!" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/projects.cljs:239, src/app/main/ui/dashboard/team.cljs:1095 msgid "labels.num-of-files" msgid_plural "labels.num-of-files" msgstr[0] "1 ficheiro" msgstr[1] "%s ficheiros" +#: src/app/main/ui/viewer/thumbnails.cljs:80 msgid "labels.num-of-frames" msgid_plural "labels.num-of-frames" msgstr[0] "1 prancheta" msgstr[1] "%s pranchetas" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1090 msgid "labels.num-of-projects" msgid_plural "labels.num-of-projects" msgstr[0] "1 projeto" msgstr[1] "%s projetos" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:89 msgid "labels.old-password" msgstr "Palavra-passe antiga" #: src/app/main/ui/workspace/comments.cljs +#, unused msgid "labels.only-yours" msgstr "Apenas teu" +#, unused msgid "labels.or" msgstr "ou" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/onboarding/questions.cljs:145, src/app/main/ui/onboarding/questions.cljs:214, src/app/main/ui/onboarding/questions.cljs:303, src/app/main/ui/onboarding/questions.cljs:316, src/app/main/ui/onboarding/questions.cljs:389, src/app/main/ui/onboarding/questions.cljs:447 +msgid "labels.other" +msgstr "Outra (especificar)" + +#: src/app/main/ui/dashboard/team.cljs:286, src/app/main/ui/dashboard/team.cljs:518, src/app/main/ui/dashboard/team.cljs:1076 msgid "labels.owner" msgstr "Proprietário" -#: src/app/main/ui/settings/sidebar.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/settings/sidebar.cljs:87 msgid "labels.password" msgstr "Palavra-passe" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:662 msgid "labels.pending-invitation" msgstr "Pendente" -#: src/app/main/ui/settings/sidebar.cljs +#: src/app/main/ui/onboarding/questions.cljs:51 +msgid "labels.previous" +msgstr "Anterior" + +#: src/app/main/ui/settings/profile.cljs:118, src/app/main/ui/settings/sidebar.cljs:82 msgid "labels.profile" msgstr "Perfil" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:784 msgid "labels.projects" msgstr "Projetos" -#: src/app/main/ui/settings/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:998, src/app/main/ui/settings/sidebar.cljs:106, src/app/main/ui/workspace/main_menu.cljs:126 msgid "labels.release-notes" msgstr "Notas de versões" #: src/app/main/ui/workspace.cljs +#, unused msgid "labels.reload-file" msgstr "Recarregar ficheiro" -#: src/app/main/ui/workspace/libraries.cljs, -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/workspace/libraries.cljs, src/app/main/ui/dashboard/team.cljs +#, unused msgid "labels.remove" msgstr "Remover" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:316 msgid "labels.remove-member" msgstr "Remover membro" -#: src/app/main/ui/dashboard/sidebar.cljs, -#: src/app/main/ui/dashboard/project_menu.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:271, src/app/main/ui/dashboard/project_menu.cljs:85, src/app/main/ui/dashboard/sidebar.cljs:539, src/app/main/ui/workspace/sidebar/assets/groups.cljs:157 msgid "labels.rename" msgstr "Renomear" -#: src/app/main/ui/dashboard/team_form.cljs +#: src/app/main/ui/dashboard/team_form.cljs:99 msgid "labels.rename-team" msgstr "Renomear equipa" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:645 msgid "labels.resend-invitation" msgstr "Reenviar convite" -#: src/app/main/ui/static.cljs, src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:61, src/app/main/ui/static.cljs:70, src/app/main/ui/static.cljs:148 msgid "labels.retry" msgstr "Tentar novamente" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:469, src/app/main/ui/dashboard/team.cljs:709 msgid "labels.role" msgstr "Cargo" +#: src/app/main/ui/dashboard/fonts.cljs:380, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:191 msgid "labels.save" msgstr "Salvar" +#: src/app/main/ui/onboarding/questions.cljs:414, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:436 msgid "labels.search" msgstr "Pesquisar" +#: src/app/main/ui/dashboard/fonts.cljs:415 msgid "labels.search-font" msgstr "Pesquisar font" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/onboarding/questions.cljs:90, src/app/main/ui/onboarding/questions.cljs:248, src/app/main/ui/onboarding/questions.cljs:259, src/app/main/ui/onboarding/questions.cljs:270 +msgid "labels.select-option" +msgstr "Escolhe uma opção" + +#: src/app/main/ui/settings/feedback.cljs:82 msgid "labels.send" msgstr "Enviar" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:82 msgid "labels.sending" msgstr "Enviando…" -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:68 msgid "labels.service-unavailable.desc-message" msgstr "Estamos numa manutenção programada dos nossos sistemas." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:67 msgid "labels.service-unavailable.main-message" msgstr "Serviço Indisponível" -#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:530, src/app/main/ui/dashboard/team.cljs:88, src/app/main/ui/dashboard/team.cljs:102, src/app/main/ui/settings/options.cljs:84, src/app/main/ui/settings/sidebar.cljs:93 msgid "labels.settings" msgstr "Definições" +#: src/app/main/ui/viewer/header.cljs:199 msgid "labels.share" msgstr "Partilhar" +#, unused msgid "labels.share-prototype" msgstr "Partilhar protótipo" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:800 msgid "labels.shared-libraries" msgstr "Bibliotecas" -#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/comments.cljs:82, src/app/main/ui/workspace/comments.cljs:55, src/app/main/ui/workspace/comments.cljs:135 msgid "labels.show-all-comments" msgstr "Mostrar todos os comentários" +#: src/app/main/ui/viewer/comments.cljs:115 msgid "labels.show-comments-list" msgstr "Mostrar lista de comentários" -#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/comments.cljs:91, src/app/main/ui/workspace/comments.cljs:61, src/app/main/ui/workspace/comments.cljs:136 msgid "labels.show-your-comments" msgstr "Mostrar apenas os teus comentários" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/onboarding/questions.cljs:172 +msgid "labels.sketch" +msgstr "Sketch" + +#: src/app/main/ui/onboarding/questions.cljs:56 +msgid "labels.start" +msgstr "Começar" + +#: src/app/main/ui/dashboard/team.cljs:710 msgid "labels.status" msgstr "Estado" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/onboarding/questions.cljs:251 +msgid "labels.student-teacher" +msgstr "Estudante ou professor(a)" + +#: src/app/main/ui/dashboard/sidebar.cljs:992, src/app/main/ui/workspace/main_menu.cljs:118 msgid "labels.tutorials" msgstr "Tutoriais" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:256 msgid "labels.unpublish-multi-files" msgstr "Despublicar %s ficheiros" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:103 msgid "labels.update" msgstr "Atualizar" -#: src/app/main/ui/dashboard/team_form.cljs +#: src/app/main/ui/dashboard/team_form.cljs:120 msgid "labels.update-team" msgstr "Atualizar equipa" +#: src/app/main/ui/dashboard/fonts.cljs:241 msgid "labels.upload" msgstr "Carregar" +#: src/app/main/ui/dashboard/fonts.cljs:169 msgid "labels.upload-custom-fonts" msgstr "Carregar fontes personalizadas" +#: src/app/main/ui/dashboard/fonts.cljs:240 msgid "labels.uploading" msgstr "Carregando…" +#: src/app/main/ui/workspace/sidebar/sitemap.cljs:223 msgid "labels.view-only" msgstr "Somente leitura" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:123, src/app/main/ui/dashboard/team.cljs:282, src/app/main/ui/dashboard/team.cljs:521 msgid "labels.viewer" msgstr "Visualizador" +#: src/app/main/ui/dashboard/sidebar.cljs:523, src/app/main/ui/dashboard/team.cljs:90, src/app/main/ui/dashboard/team.cljs:100, src/app/main/ui/dashboard/team.cljs:880 msgid "labels.webhooks" msgstr "Webhooks" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:194 msgid "labels.write-new-comment" msgstr "Escrever novo comentário" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/team.cljs:237 msgid "labels.you" msgstr "(tu)" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:968 msgid "labels.your-account" msgstr "A tua conta" +#: src/app/main/ui/workspace/colorpicker.cljs:297, src/app/main/ui/workspace/colorpicker.cljs:298, src/app/main/ui/workspace/colorpicker.cljs:300 msgid "media.choose-image" msgstr "Escolher imagem" +#, unused msgid "media.gradient" msgstr "Gradiente" +#: src/app/main/data/workspace/media.cljs:275, src/app/main/ui/components/color_bullet.cljs:32, src/app/main/ui/components/color_bullet.cljs:45, src/app/main/ui/viewer/inspect/attributes/common.cljs:66, src/app/main/ui/workspace/colorpicker.cljs:211, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:237 msgid "media.image" msgstr "Imagem" +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:77 +msgid "media.image.short" +msgstr "img" + +#: src/app/main/ui/workspace/colorpicker.cljs:208 msgid "media.linear" msgstr "Linear" -#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs +#: src/app/main/data/media.cljs:49, src/app/main/data/workspace/media.cljs:223, src/app/main/data/workspace/media.cljs:453 msgid "media.loading" msgstr "A carregar imagem…" +#: src/app/main/ui/workspace/colorpicker.cljs:209 msgid "media.radial" msgstr "Radial" +#: src/app/main/ui/workspace/colorpicker.cljs:206 msgid "media.solid" msgstr "Sólido" +#: src/app/main/data/common.cljs:111 msgid "modals.add-shared-confirm-empty.hint" msgstr "" "A tua biblioteca está vazia. Assim que ela seja adicionada como uma " -"biblioteca partilhada, os recursos que criares nela estarão disponíveis para " -"serem usados nos teus outros ficheiros. Tens a certeza que queres publicá-la?" +"biblioteca partilhada, os recursos que criares nela estarão disponíveis " +"para serem usados nos teus outros ficheiros. Tens a certeza que queres " +"publicá-la?" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/data/common.cljs:113 msgid "modals.add-shared-confirm.accept" msgstr "Adicionar como Biblioteca Partilhada" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/data/common.cljs:111 msgid "modals.add-shared-confirm.hint" msgstr "" "Uma vez adicionados como Biblioteca Partilhada, os recursos na biblioteca " "deste ficheiro estarão disponíveis com o resto dos teus ficheiros." -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/data/common.cljs:110 msgid "modals.add-shared-confirm.message" msgstr "Adicionar \"%s\" como Biblioteca Partilhada" -#: src/app/main/ui/workspace/nudge.cljs +#: src/app/main/ui/workspace/nudge.cljs:60 msgid "modals.big-nudge" msgstr "Grande deslocamento" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:127 msgid "modals.change-email.confirm-email" msgstr "Verificar o novo e-mail" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:114 msgid "modals.change-email.info" msgstr "" -"Vamos enviar um e‑mail para o teu endereço atual \"%s\" para verificar a tua " -"identidade." +"Vamos enviar um e‑mail para o teu endereço atual \"%s\" para verificar a " +"tua identidade." -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:119 msgid "modals.change-email.new-email" msgstr "Novo e-mail" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:136 msgid "modals.change-email.submit" msgstr "Alterar e-mail" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:107 msgid "modals.change-email.title" msgstr "Altera o teu e-mail" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:165, src/app/main/ui/settings/access_tokens.cljs:171 msgid "modals.create-access-token.copy-token" msgstr "Copiar token" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:142 msgid "modals.create-access-token.expiration-date.label" msgstr "Data de expiração" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:136 msgid "modals.create-access-token.name.label" msgstr "Nome" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:138 msgid "modals.create-access-token.name.placeholder" msgstr "O nome pode ajudar a sugerir para que o token serve" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:191 msgid "modals.create-access-token.submit-label" msgstr "Criar token" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:123 msgid "modals.create-access-token.title" msgstr "Gerar token de acesso" +#: src/app/main/ui/dashboard/team.cljs:873 msgid "modals.create-webhook.submit-label" msgstr "Criar webhook" +#: src/app/main/ui/dashboard/team.cljs:838 msgid "modals.create-webhook.title" msgstr "Criar webhook" +#: src/app/main/ui/dashboard/team.cljs:849 msgid "modals.create-webhook.url.label" msgstr "URL do payload" +#: src/app/main/ui/dashboard/team.cljs:850 msgid "modals.create-webhook.url.placeholder" msgstr "https://example.com/postreceive" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:271 msgid "modals.delete-acces-token.accept" msgstr "Apagar token" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:270 msgid "modals.delete-acces-token.message" msgstr "Tens a certeza que queres apagar este token?" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:269 msgid "modals.delete-acces-token.title" msgstr "Apagar token" -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:59 msgid "modals.delete-account.cancel" msgstr "Cancelar e manter a minha conta" -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:64 msgid "modals.delete-account.confirm" msgstr "Sim, elimina a minha conta" -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:53 msgid "modals.delete-account.info" msgstr "Ao remover a tua conta vais perder todos os projetos e ficheiros." -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:46 msgid "modals.delete-account.title" msgstr "Tens a certeza de que queres eliminar a tua conta?" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:298 msgid "modals.delete-comment-thread.accept" msgstr "Eliminar conversa" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:297 msgid "modals.delete-comment-thread.message" msgstr "" -"Tens a certeza de que pretender eliminar esta conversa? Todos os comentários " -"neste tópico serão eliminados." +"Tens a certeza de que pretender eliminar esta conversa? Todos os " +"comentários neste tópico serão eliminados." -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:296 msgid "modals.delete-comment-thread.title" msgstr "Eliminar conversa" +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:140 msgid "modals.delete-component-annotation.message" msgstr "Tens a certeza que queres apagar esta nota?" +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:139 msgid "modals.delete-component-annotation.title" msgstr "Apagar nota" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:123 msgid "modals.delete-file-confirm.accept" msgstr "Eliminar ficheiro" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:122 msgid "modals.delete-file-confirm.message" msgstr "Tens a certeza de que pretendes eliminar este ficheiro?" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:121 msgid "modals.delete-file-confirm.title" msgstr "Eliminando ficheiro" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:117 msgid "modals.delete-file-multi-confirm.accept" msgstr "Eliminar ficheiros" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:116 msgid "modals.delete-file-multi-confirm.message" msgstr "Tens a certeza de que pretendes eliminar %s ficheiros?" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:115 msgid "modals.delete-file-multi-confirm.title" msgstr "Eliminando %s ficheiros" +#: src/app/main/ui/dashboard/fonts.cljs:345 msgid "modals.delete-font-variant.message" msgstr "" -"Tens a certeza de que pretendes eliminar este estilo de fonte? Não carregará " -"se estiver a ser utilizado num ficheiro." +"Tens a certeza de que pretendes eliminar este estilo de fonte? Não " +"carregará se estiver a ser utilizado num ficheiro." +#: src/app/main/ui/dashboard/fonts.cljs:344 msgid "modals.delete-font-variant.title" msgstr "Eliminando estilo de fonte" +#: src/app/main/ui/dashboard/fonts.cljs:331 msgid "modals.delete-font.message" msgstr "" "Tens a certeza de que pretendes eliminar esta fonte? Não carregará se " "estiver a ser utilizada num ficheiro." +#: src/app/main/ui/dashboard/fonts.cljs:330 msgid "modals.delete-font.title" msgstr "Eliminando fonte" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs +#: src/app/main/ui/workspace/context_menu.cljs:522, src/app/main/ui/workspace/sidebar/sitemap.cljs:45 msgid "modals.delete-page.body" msgstr "Tens a certeza de que pretendes eliminar esta página?" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs +#: src/app/main/ui/workspace/context_menu.cljs:521, src/app/main/ui/workspace/sidebar/sitemap.cljs:44 msgid "modals.delete-page.title" msgstr "Eliminar página" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:69 msgid "modals.delete-project-confirm.accept" msgstr "Eliminar projeto" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:68 msgid "modals.delete-project-confirm.message" msgstr "Tens a certeza de que pretendes eliminar este projeto?" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:67 msgid "modals.delete-project-confirm.title" msgstr "Eliminar projeto" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:51 msgid "modals.delete-shared-confirm.accept" msgid_plural "modals.delete-shared-confirm.accept" msgstr[0] "Eliminar ficheiro" msgstr[1] "Eliminar ficheiros" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:55 msgid "modals.delete-shared-confirm.activated.no-files-message" msgid_plural "modals.delete-shared-confirm.activated.no-files-message" msgstr[0] "Não está ativa em nenhum ficheiro." msgstr[1] "Não estão ativas em nenhum ficheiro." -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:57 msgid "modals.delete-shared-confirm.activated.scd-message" msgid_plural "modals.delete-shared-confirm.activated.scd-message" msgstr[0] "Esta biblioteca está ativa aqui: " msgstr[1] "Estas bibliotecas estão ativas aqui: " -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:46 msgid "modals.delete-shared-confirm.message" msgid_plural "modals.delete-shared-confirm.message" msgstr[0] "Tens a certeza de que pretendes eliminar este ficheiro?" msgstr[1] "Tens a certeza de que pretendes eliminar estes ficheiros?" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:41 msgid "modals.delete-shared-confirm.title" msgid_plural "modals.delete-shared-confirm.title" msgstr[0] "Eliminando ficheiro" msgstr[1] "Eliminando ficheiros" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:435 msgid "modals.delete-team-confirm.accept" msgstr "Eliminar equipa" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:434 msgid "modals.delete-team-confirm.message" msgstr "" "Tens a certeza de que pretendes eliminar esta equipa? Todos os projetos e " "ficheiros associados com a equipa serão eliminados permanentemente." -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:433 msgid "modals.delete-team-confirm.title" msgstr "Eliminando equipa" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:427 msgid "modals.delete-team-member-confirm.accept" msgstr "Eliminar membro" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:426 msgid "modals.delete-team-member-confirm.message" msgstr "Tens a certeza de que pretendes eliminar este membro da equipa?" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:425 msgid "modals.delete-team-member-confirm.title" msgstr "Eliminar membro da equipa" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:59 msgid "modals.delete-unpublish-shared-confirm.activated.hint" msgid_plural "modals.delete-unpublish-shared-confirm.activated.hint" msgstr[0] "" @@ -2045,3116 +2239,3404 @@ msgstr[1] "" "Os recursos que estiverem a ser usados nestes ficheiros continuarão " "presentes (nenhum design será afetado)." +#: src/app/main/ui/dashboard/team.cljs:942 msgid "modals.delete-webhook.accept" msgstr "Apagar webhook" +#: src/app/main/ui/dashboard/team.cljs:941 msgid "modals.delete-webhook.message" msgstr "Tens a certeza que queres apagar este webhook?" +#: src/app/main/ui/dashboard/team.cljs:940 msgid "modals.delete-webhook.title" msgstr "A apagar webhook" +#: src/app/main/ui/dashboard/team.cljs:872 msgid "modals.edit-webhook.submit-label" msgstr "Editar webhook" +#: src/app/main/ui/dashboard/team.cljs:837 msgid "modals.edit-webhook.title" msgstr "Editar webhook" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:218 msgid "modals.invite-member-confirm.accept" msgstr "Enviar convite" +#: src/app/main/ui/dashboard/team.cljs:213, src/app/main/ui/onboarding/team_choice.cljs:156 msgid "modals.invite-member.emails" msgstr "E-mails, separados por vírgulas" +#: src/app/main/ui/dashboard/team.cljs:197 msgid "modals.invite-member.repeated-invitation" msgstr "" "Alguns endereços de email pertencem a membros atuais da equipa. Não serão " "enviados convites para estes endereços." -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:190 msgid "modals.invite-team-member.title" msgstr "Convidar membros para a equipa" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:423, src/app/main/ui/dashboard/team.cljs:393 msgid "modals.leave-and-close-confirm.hint" msgstr "" "Como és o único membro desta equipa, a equipa será eliminado juntamente com " "os projetos e ficheiros." -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:422, src/app/main/ui/dashboard/team.cljs:392 msgid "modals.leave-and-close-confirm.message" msgstr "Tens a certeza de que pretendes sair da equipa %s?" +#: src/app/main/ui/dashboard/change_owner.cljs:59 msgid "modals.leave-and-reassign.forbidden" msgstr "" "Não pode deixar a equipa se não houver outro membro a promover a dono. Pode " "querer eliminar a equipa." -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/change_owner.cljs:55 msgid "modals.leave-and-reassign.hint1" msgstr "" "És o proprietário desta equipa. Por favor seleciona outro membro para " "promover para proprietário antes de saíres." -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/change_owner.cljs:78 msgid "modals.leave-and-reassign.promote-and-leave" msgstr "Promover e sair" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/change_owner.cljs:34 msgid "modals.leave-and-reassign.select-member-to-promote" msgstr "Seleciona um membro para promover" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/change_owner.cljs:49 msgid "modals.leave-and-reassign.title" msgstr "Antes de saires" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:402, src/app/main/ui/dashboard/sidebar.cljs:424, src/app/main/ui/dashboard/team.cljs:394, src/app/main/ui/dashboard/team.cljs:416 msgid "modals.leave-confirm.accept" msgstr "Sair da equipa" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:401, src/app/main/ui/dashboard/team.cljs:415 msgid "modals.leave-confirm.message" msgstr "Tens a certeza de que pretendes sair desta equipa?" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:400, src/app/main/ui/dashboard/sidebar.cljs:421, src/app/main/ui/dashboard/team.cljs:391, src/app/main/ui/dashboard/team.cljs:414 msgid "modals.leave-confirm.title" msgstr "Saindo da equipa" -#: src/app/main/ui/workspace/nudge.cljs +#: src/app/main/ui/delete_shared.cljs:53 +msgid "modals.move-shared-confirm.accept" +msgid_plural "modals.move-shared-confirm.accept" +msgstr[0] "Mover" +msgstr[1] "Mover" + +#: src/app/main/ui/delete_shared.cljs:43 +msgid "modals.move-shared-confirm.title" +msgid_plural "modals.move-shared-confirm.title" +msgstr[0] "Mover biblioteca" +msgstr[1] "Mover bibliotecas" + +#: src/app/main/ui/workspace/main_menu.cljs:266, src/app/main/ui/workspace/nudge.cljs:47 msgid "modals.nudge-title" msgstr "Montante de deslocamento" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:340 msgid "modals.promote-owner-confirm.accept" msgstr "Transferir propriedade" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:339 msgid "modals.promote-owner-confirm.hint" msgstr "" -"Se transferires a propriedade, vais alterar a tua função para Administrador, " -"perdendo algumas permissões sobre esta equipa. " +"Se transferires a propriedade, vais alterar a tua função para " +"Administrador, perdendo algumas permissões sobre esta equipa. " -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:338 msgid "modals.promote-owner-confirm.message" msgstr "" "És o proprietário atual desta equipa. Tens a certeza de que pretendes " "promover %s a proprietário da equipa?" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:337 msgid "modals.promote-owner-confirm.title" msgstr "Novo proprietário de equipa" +#: src/app/main/ui/workspace/libraries.cljs:188 msgid "modals.publish-empty-library.accept" msgstr "Publicar" +#: src/app/main/ui/workspace/libraries.cljs:187 msgid "modals.publish-empty-library.message" msgstr "A tua biblioteca está vazia. Tens a certeza que queres publicá-la?" +#: src/app/main/ui/workspace/libraries.cljs:186 msgid "modals.publish-empty-library.title" msgstr "Publicar biblioteca vazia" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "modals.remove-shared-confirm.accept" msgstr "Remover como Biblioteca Partilhada" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "modals.remove-shared-confirm.hint" msgstr "" -"Uma vez removida como Biblioteca Partilhada, a Biblioteca de Ficheiros deste " -"ficheiro deixarão de estar disponíveis para serem utilizados com o resto dos " -"teus ficheiros." +"Uma vez removida como Biblioteca Partilhada, a Biblioteca de Ficheiros " +"deste ficheiro deixarão de estar disponíveis para serem utilizados com o " +"resto dos teus ficheiros." -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "modals.remove-shared-confirm.message" msgstr "Remover \"%s\" como Biblioteca Partilhada" -#: src/app/main/ui/workspace/nudge.cljs +#: src/app/main/ui/workspace/nudge.cljs:53 msgid "modals.small-nudge" msgstr "Pequeno deslocamento" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:52 msgid "modals.unpublish-shared-confirm.accept" msgid_plural "modals.unpublish-shared-confirm.accept" msgstr[0] "Cancelar publicação" msgstr[1] "Cancelar publicações" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:47 msgid "modals.unpublish-shared-confirm.message" msgid_plural "modals.unpublish-shared-confirm.message" -msgstr[0] "" -"Tens a certeza de que queres cancelar a publicação desta biblioteca?" -msgstr[1] "" -"Tens a certeza de que queres cancelar a publicação destas bibliotecas?" +msgstr[0] "Tens a certeza de que queres cancelar a publicação desta biblioteca?" +msgstr[1] "Tens a certeza de que queres cancelar a publicação destas bibliotecas?" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:42 msgid "modals.unpublish-shared-confirm.title" msgid_plural "modals.unpublish-shared-confirm.title" msgstr[0] "Cancelar publicação da biblioteca" msgstr[1] "Cancelar publicação das bibliotecas" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#, unused msgid "modals.update-remote-component-in-bulk.hint" msgstr "" "Estás prestes a atualizar componentes numa biblioteca partilhada. Pode " "afetar outros ficheiros que o utilizam." -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#, unused msgid "modals.update-remote-component-in-bulk.message" msgstr "Atualizar componentes numa biblioteca partilhada" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:380 msgid "modals.update-remote-component.accept" msgstr "Atualizar" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:379 msgid "modals.update-remote-component.cancel" msgstr "Cancelar" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:378 msgid "modals.update-remote-component.hint" msgstr "" "Estás prestes a atualizar componentes numa biblioteca partilhada. Pode " "afetar outros ficheiros que o utilizam." -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:377 msgid "modals.update-remote-component.message" msgstr "Atualizar componente numa biblioteca partilhada" -#: src/app/main/data/common.cljs +#: src/app/main/data/common.cljs:71 msgid "notifications.by-code.upgrade-version" msgstr "Está disponível uma nova versão, por favor atualiza a página" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:154, src/app/main/ui/dashboard/team.cljs:595 msgid "notifications.invitation-email-sent" msgstr "Convite enviado com sucesso" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:616 msgid "notifications.invitation-link-copied" msgstr "Link de convite copiado" -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:24 msgid "notifications.profile-deletion-not-allowed" msgstr "" "Não podes eliminar o teu perfil. Atribui um proprietário às tuas equipas " "antes de avançar." -#: src/app/main/ui/settings/profile.cljs, src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:29, src/app/main/ui/settings/profile.cljs:35 msgid "notifications.profile-saved" msgstr "Perfil salvo com sucesso!" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:63 msgid "notifications.validation-email-sent" msgstr "E-mail de verificação enviado para %s. Verifica o teu e-mail!" +#, unused msgid "onboarding-v2.before-start.desc1" msgstr "" "Deves saber que existem muitos recursos disponíveis para ajudar a começar a " "usar o Penpot, como o Guia de Utilizador e no nosso canal de YouTube." +#, unused msgid "onboarding-v2.before-start.desc2" msgstr "" "Informações detalhadas sobre como utilizar o Penpot. Desde o protótipo à " "organização ou partilha de designs." +#, unused msgid "onboarding-v2.before-start.desc2.title" msgstr "Guia de Utilizador" +#, unused msgid "onboarding-v2.before-start.desc3" msgstr "Poderás ver os nossos tutoriais e os criados pela nossa comunidade." +#, unused msgid "onboarding-v2.before-start.desc3.title" msgstr "Tutoriais em vídeo" +#, unused msgid "onboarding-v2.before-start.title" msgstr "Antes de começares" +#: src/app/main/ui/onboarding/newsletter.cljs:63 msgid "onboarding-v2.newsletter.desc" msgstr "" "Subscreva a Penpot newsletter para ficar a par do progresso do " "desenvolvimento do produto e das novidades." +#: src/app/main/ui/onboarding/newsletter.cljs:83 msgid "onboarding-v2.newsletter.news" msgstr "" "Envie-me notícias sobre o Penpot (postagens em blogs, tutoriais em vídeo, " "streamings...)." +#: src/app/main/ui/onboarding/newsletter.cljs:91 msgid "onboarding-v2.newsletter.privacy1" msgstr "Sua privacidade é importante para nós, saiba mais aqui " +#: src/app/main/ui/onboarding/newsletter.cljs:97 msgid "onboarding-v2.newsletter.privacy2" msgstr "" "Enviaremos apenas e-mails relevantes para você. Você pode cancelar a " -"inscrição a qualquer momento através do link de cancelamento de inscrição em " -"qualquer uma de nossas newsletter." +"inscrição a qualquer momento através do link de cancelamento de inscrição " +"em qualquer uma de nossas newsletter." +#: src/app/main/ui/onboarding/newsletter.cljs:71 msgid "onboarding-v2.newsletter.updates" msgstr "" "Envie-me atualizações do produto (novas funcionalidades, lançamentos, " "correções...)." +#, unused msgid "onboarding-v2.welcome.desc1" msgstr "" "O Penpot é um software de código aberto criado pela Kaleidos e também pela " "comunidade, onde muitas pessoas já colaboram. Todos podem colaborar:" +#, unused msgid "onboarding-v2.welcome.desc2" msgstr "" "Um espaço público para aprender, partilhar e discutir sobre o Penpot, o " "presente e futuro com toda a Comunidade e com a equipa principal do Penpot." +#, unused msgid "onboarding-v2.welcome.desc2.title" msgstr "Participando na Comunidade" +#, unused msgid "onboarding-v2.welcome.desc3" msgstr "" "Onde vais encontrar como colaborar com traduções, solicitações de " "funcionalidades, contribuições core, caça a bugs…" +#, unused msgid "onboarding-v2.welcome.desc3.title" msgstr "Guia de Contribuição" +#: src/app/main/ui/onboarding/team_choice.cljs:31 msgid "onboarding-v2.welcome.title" msgstr "Bem-vindo ao Penpot!" +#: src/app/main/ui/onboarding/team_choice.cljs:229 msgid "onboarding.choice.team-up.continue-creating-team" msgstr "Continuar criação de equipa" +#: src/app/main/ui/onboarding/team_choice.cljs:239 msgid "onboarding.choice.team-up.continue-without-a-team" msgstr "Continuar sem equipa" +#: src/app/main/ui/onboarding/team_choice.cljs:167 msgid "onboarding.choice.team-up.create-team-and-invite" msgstr "Criar equipa e convidar" +#, unused msgid "onboarding.choice.team-up.create-team-and-send-invites" msgstr "Criar equipa e enviar convites" +#: src/app/main/ui/onboarding/team_choice.cljs:170 msgid "onboarding.choice.team-up.create-team-and-send-invites-description" msgstr "Poderás enviar convites mais tarde" +#: src/app/main/ui/onboarding/team_choice.cljs:215 msgid "onboarding.choice.team-up.create-team-desc" msgstr "Depois de nomeares a tua equipa, poderás convidar pessoas para entrar." +#: src/app/main/ui/onboarding/team_choice.cljs:224 msgid "onboarding.choice.team-up.create-team-placeholder" msgstr "Escreve o nome da equipa" +#: src/app/main/ui/onboarding/team_choice.cljs:168 msgid "onboarding.choice.team-up.create-team-without-invite" msgstr "Criar equipa" +#, unused msgid "onboarding.choice.team-up.create-team-without-inviting" msgstr "Criar equipa sem convidar" +#: src/app/main/ui/dashboard/projects.cljs:89, src/app/main/ui/onboarding/team_choice.cljs:140 msgid "onboarding.choice.team-up.invite-members" msgstr "Convida membros" +#: src/app/main/ui/onboarding/team_choice.cljs:141 msgid "onboarding.choice.team-up.invite-members-info" msgstr "" -"Lembra-te em incluir todos. Programadores, designers, gestores... acrescenta " -"diversidade :)" +"Lembra-te em incluir todos. Programadores, designers, gestores... " +"acrescenta diversidade :)" +#: src/app/main/ui/dashboard/team.cljs:202, src/app/main/ui/onboarding/team_choice.cljs:146 msgid "onboarding.choice.team-up.roles" msgstr "Convidar com a função:" +#: src/app/main/ui/onboarding/team_choice.cljs:232 msgid "onboarding.choice.team-up.start-without-a-team" msgstr "Começar sem equipa" +#: src/app/main/ui/onboarding/team_choice.cljs:234 msgid "onboarding.choice.team-up.start-without-a-team-description" msgstr "Poderás criar uma equipa mais tarde." +#, unused msgid "onboarding.newsletter.accept" msgstr "Sim, subscreve" +#: src/app/main/ui/onboarding/newsletter.cljs:40 msgid "onboarding.newsletter.acceptance-message" msgstr "" "A tua solicitação de inscrição foi enviada, iremos enviar-te um e-mail para " "confirmá-la." +#: src/app/main/ui/onboarding/newsletter.cljs:95 msgid "onboarding.newsletter.policy" msgstr "Política de Privacidade." +#: src/app/main/ui/onboarding/newsletter.cljs:60 msgid "onboarding.newsletter.title" msgstr "Queres receber as novidades do Penpot?" +#: src/app/main/ui/onboarding/questions.cljs:118 +msgid "onboarding.questions.lets-get-started" +msgstr "Vamos começar!" + +#: src/app/main/ui/onboarding/questions.cljs:320 +msgid "onboarding.questions.step3.question3" +msgstr "De que tamanho é a tua equipa?" + +#: src/app/main/ui/onboarding/questions.cljs:273 +msgid "onboarding.questions.team-size.11-30" +msgstr "11-30" + +#: src/app/main/ui/onboarding/questions.cljs:274 +msgid "onboarding.questions.team-size.2-10" +msgstr "2-10" + +#: src/app/main/ui/onboarding/questions.cljs:272 +msgid "onboarding.questions.team-size.31-50" +msgstr "31-50" + +#: src/app/main/ui/onboarding/questions.cljs:271 +msgid "onboarding.questions.team-size.more-than-50" +msgstr "Mais de 50" + +#: src/app/main/ui/onboarding/questions.cljs:276 +msgid "onboarding.questions.team-size.personal-project" +msgstr "Estou a trabalhar num projeto pessoal" + +#: src/app/main/ui/onboarding/team_choice.cljs:213 msgid "onboarding.team-modal.create-team" msgstr "Cria uma equipa" +#: src/app/main/ui/onboarding/team_choice.cljs:35 msgid "onboarding.team-modal.create-team-desc" msgstr "" "Uma equipa permite que colabores com outros utilizadores do Penpot " "trabalhando nos mesmos ficheiros e projetos." +#: src/app/main/ui/onboarding/team_choice.cljs:40 msgid "onboarding.team-modal.create-team-feature-1" msgstr "Ficheiros e projetos ilimitados" +#: src/app/main/ui/onboarding/team_choice.cljs:44 msgid "onboarding.team-modal.create-team-feature-2" msgstr "Edição Multiplayer" +#: src/app/main/ui/onboarding/team_choice.cljs:48 msgid "onboarding.team-modal.create-team-feature-3" msgstr "Gestão de funções" +#: src/app/main/ui/onboarding/team_choice.cljs:52 msgid "onboarding.team-modal.create-team-feature-4" msgstr "Membros ilimitados" +#: src/app/main/ui/onboarding/team_choice.cljs:56 msgid "onboarding.team-modal.create-team-feature-5" msgstr "100% grátis!" +#: src/app/main/ui/onboarding/team_choice.cljs:33 +msgid "onboarding.team-modal.team-definition" +msgstr "O que é uma equipa?" + +#: src/app/main/ui/onboarding/templates.cljs:78 msgid "onboarding.templates.subtitle" msgstr "Aqui tens alguns templates." +#: src/app/main/ui/onboarding/templates.cljs:77 msgid "onboarding.templates.title" msgstr "Começa a desenhar" +#, unused msgid "onboarding.welcome.alt" msgstr "Penpot" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:99 msgid "profile.recovery.go-to-login" msgstr "Ir para login" -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.team-size.11-30" -msgstr "11-30" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.team-size.2-10" -msgstr "2-10" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.team-size.31-50" -msgstr "31-50" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.adobe-xd" -msgstr "Adobe XD" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.canva" -msgstr "Canva" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.figma" -msgstr "Figma" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.freelancer" -msgstr "Sou trabalhador(a) independente (freelancer)" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.invision" -msgstr "InVision" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.lets-get-started" -msgstr "Vamos começar!" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.team-size.more-than-50" -msgstr "Mais de 50" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.next" -msgstr "Seguinte" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.other" -msgstr "Outra (especificar)" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.team-size.personal-project" -msgstr "Estou a trabalhar num projeto pessoal" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.previous" -msgstr "Anterior" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.select-option" -msgstr "Escolhe uma opção" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.sketch" -msgstr "Sketch" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.start" -msgstr "Começar" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.student-teacher" -msgstr "Estudante ou professor(a)" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.step3.question3" -msgstr "De que tamanho é a tua equipa?" - -#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, +#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:221 msgid "settings.detach" msgstr "Desacoplar" -#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs +#: src/app/main/ui/viewer/inspect/exports.cljs:147, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:631, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:137, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:148, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:188, src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:158, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:399, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:410, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:430, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:441, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:458, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:472, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:309, src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:183, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:373, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:389, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:245, src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:172 msgid "settings.multiple" msgstr "Misturado" +#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:271 +msgid "settings.select-this-color" +msgstr "Selecionar itens que usem este estilo" + # SECTIONS +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:414 msgid "shortcut-section.basics" msgstr "Básicos" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:420 msgid "shortcut-section.dashboard" msgstr "Painel" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:423 msgid "shortcut-section.viewer" msgstr "Visualizador" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:417 msgid "shortcut-section.workspace" msgstr "Área de Trabalho" # SUBSECTIONS +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:56 msgid "shortcut-subsection.alignment" msgstr "Alinhamento" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:57 msgid "shortcut-subsection.edit" msgstr "Editar" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:58 msgid "shortcut-subsection.general-dashboard" msgstr "Genérico" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:59 msgid "shortcut-subsection.general-viewer" msgstr "Genérico" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:60 msgid "shortcut-subsection.main-menu" msgstr "Menu Principal" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:61 msgid "shortcut-subsection.modify-layers" msgstr "Modificar camadas" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:62 msgid "shortcut-subsection.navigation-dashboard" msgstr "Navegação" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:63 msgid "shortcut-subsection.navigation-viewer" msgstr "Navegação" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:64 msgid "shortcut-subsection.navigation-workspace" msgstr "Navegação" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:65 msgid "shortcut-subsection.panels" msgstr "Painéis" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:66 msgid "shortcut-subsection.path-editor" msgstr "Caminhos" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:67 msgid "shortcut-subsection.shape" msgstr "Formas" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:68 msgid "shortcut-subsection.text-editor" msgstr "Textos" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:69 msgid "shortcut-subsection.tools" msgstr "Ferramentas" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:70 msgid "shortcut-subsection.zoom-viewer" msgstr "Zoom" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:71 msgid "shortcut-subsection.zoom-workspace" msgstr "Zoom" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:72 msgid "shortcuts.add-comment" msgstr "Comentários" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:73 msgid "shortcuts.add-node" msgstr "Adicionar nó" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:74 msgid "shortcuts.align-bottom" msgstr "Alinhar abaixo" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:75 msgid "shortcuts.align-center" msgstr "Alinhar ao centro" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:76 msgid "shortcuts.align-hcenter" msgstr "Alinhar ao centro horizontalmente" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:77 msgid "shortcuts.align-justify" msgstr "Alinhar justificado" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:78 msgid "shortcuts.align-left" msgstr "Alinhar à esquerda" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:79 msgid "shortcuts.align-right" msgstr "Alinhar à direita" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:80 msgid "shortcuts.align-top" msgstr "Alinhar topo" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:81 msgid "shortcuts.align-vcenter" msgstr "Alinhar ao centro verticalmente" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:82 msgid "shortcuts.artboard-selection" msgstr "Criar prancheta a partir da seleção" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:83 msgid "shortcuts.bold" msgstr "Alternar negrito" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:84 msgid "shortcuts.bool-difference" msgstr "Diferença booleana" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:85 msgid "shortcuts.bool-exclude" msgstr "Exclusão Booleana" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:86 msgid "shortcuts.bool-intersection" msgstr "Intersecção Booleana" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:87 msgid "shortcuts.bool-union" msgstr "União Booleana" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:88 msgid "shortcuts.bring-back" msgstr "Enviar para trás" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:89 msgid "shortcuts.bring-backward" msgstr "Mover para trás" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:90 msgid "shortcuts.bring-forward" msgstr "Mover para a frente" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:91 msgid "shortcuts.bring-front" msgstr "Enviar para a frente" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:92 msgid "shortcuts.clear-undo" msgstr "Limpar historial" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:93 msgid "shortcuts.copy" msgstr "Copiar" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:94 msgid "shortcuts.create-component" msgstr "Criar componente" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:95 msgid "shortcuts.create-new-project" msgstr "Criar novo" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:96 msgid "shortcuts.cut" msgstr "Recortar" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:97 msgid "shortcuts.decrease-zoom" msgstr "Menos zoom" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:98 msgid "shortcuts.delete" msgstr "Eliminar" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:99 msgid "shortcuts.delete-node" msgstr "Eliminar nó" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:100 msgid "shortcuts.detach-component" msgstr "Desanexar componente" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:101 msgid "shortcuts.draw-curve" msgstr "Curva" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:102 msgid "shortcuts.draw-ellipse" msgstr "Elipse" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:103 msgid "shortcuts.draw-frame" msgstr "Quadro" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:104 msgid "shortcuts.draw-nodes" msgstr "Desenhar caminho" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:105 msgid "shortcuts.draw-path" msgstr "Caminho" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:106 msgid "shortcuts.draw-rect" msgstr "Rectângulo" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:107 msgid "shortcuts.draw-text" msgstr "Texto" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:108 msgid "shortcuts.duplicate" msgstr "Duplicar" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:109 msgid "shortcuts.escape" msgstr "Cancelar" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:110 msgid "shortcuts.export-shapes" msgstr "Exportar formas" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:111 msgid "shortcuts.fit-all" msgstr "Ajustar tudo à janela" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:112 msgid "shortcuts.flip-horizontal" msgstr "Virar horizontalmente" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:113 msgid "shortcuts.flip-vertical" msgstr "Virar verticalmente" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:114 msgid "shortcuts.font-size-dec" msgstr "Decrementar tamanho de fonte" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:115 msgid "shortcuts.font-size-inc" msgstr "Incrementar tamanho da fonte" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:116 msgid "shortcuts.go-to-drafts" msgstr "Ir para rascunhos" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:117 msgid "shortcuts.go-to-libs" msgstr "Ir para bibliotecas partilhadas" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:118 msgid "shortcuts.go-to-search" msgstr "Pesquisa" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:119 msgid "shortcuts.group" msgstr "Grupo" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:120 msgid "shortcuts.h-distribute" msgstr "Distribuir horizontalmente" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:121 msgid "shortcuts.hide-ui" msgstr "Mostrar/ocultar interface" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:122 msgid "shortcuts.increase-zoom" msgstr "Mais zoom" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:123 msgid "shortcuts.insert-image" msgstr "Inserir imagem" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:124 msgid "shortcuts.italic" msgstr "Alternar itálico" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:125 msgid "shortcuts.join-nodes" msgstr "Unir nós" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:126 msgid "shortcuts.letter-spacing-dec" msgstr "Decrementar espaçamento de letras" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:127 msgid "shortcuts.letter-spacing-inc" msgstr "Incrementar espaçamento de letras" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:128 msgid "shortcuts.line-height-dec" msgstr "Decrementar espaçamento entre linhas" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:129 msgid "shortcuts.line-height-inc" msgstr "Incrementar espaçamento entre linhas" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:130 msgid "shortcuts.line-through" msgstr "Alternar texto rasurado" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:131 msgid "shortcuts.make-corner" msgstr "Fazer canto" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:132 msgid "shortcuts.make-curve" msgstr "Fazer curva" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:133 msgid "shortcuts.mask" msgstr "Máscara" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:134 msgid "shortcuts.merge-nodes" msgstr "Fundir nós" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:135 msgid "shortcuts.move" msgstr "Mover" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:136 msgid "shortcuts.move-fast-down" msgstr "Mover para baixo rápido" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:137 msgid "shortcuts.move-fast-left" msgstr "Mover para a esquerda rápido" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:138 msgid "shortcuts.move-fast-right" msgstr "Mover para a direita rápido" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:139 msgid "shortcuts.move-fast-up" msgstr "Mover para cima rápido" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:140 msgid "shortcuts.move-nodes" msgstr "Mover nó" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:141 msgid "shortcuts.move-unit-down" msgstr "Mover para baixo" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:142 msgid "shortcuts.move-unit-left" msgstr "Mover para a esquerda" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:143 msgid "shortcuts.move-unit-right" msgstr "Mover para a direita" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:144 msgid "shortcuts.move-unit-up" msgstr "Mover para cima" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:145 msgid "shortcuts.next-frame" msgstr "Próximo quadro" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:516 msgid "shortcuts.not-found" msgstr "Nenhum atalho encontrado" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:146 msgid "shortcuts.opacity-0" msgstr "Definir opacidade a 100%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:147 msgid "shortcuts.opacity-1" msgstr "Definir opacidade a 10%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:148 msgid "shortcuts.opacity-2" msgstr "Definir opacidade a 20%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:149 msgid "shortcuts.opacity-3" msgstr "Definir opacidade a 30%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:150 msgid "shortcuts.opacity-4" msgstr "Definir opacidade a 40%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:151 msgid "shortcuts.opacity-5" msgstr "Definir opacidade a 50%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:152 msgid "shortcuts.opacity-6" msgstr "Definir opacidade a 60%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:153 msgid "shortcuts.opacity-7" msgstr "Definir opacidade a 70%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:154 msgid "shortcuts.opacity-8" msgstr "Definir opacidade a 80%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:155 msgid "shortcuts.opacity-9" msgstr "Definir opacidade a 90%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:156 msgid "shortcuts.open-color-picker" msgstr "Selector de cores" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:157 msgid "shortcuts.open-comments" msgstr "Ir para secção de comentários" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:158 msgid "shortcuts.open-dashboard" msgstr "Ir para painel" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:159 msgid "shortcuts.open-inspect" msgstr "Ir para secção de inspeção" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:160 msgid "shortcuts.open-interactions" msgstr "Ir para secção de interações" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:161 msgid "shortcuts.open-viewer" msgstr "Ir para secção de interações" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:162 msgid "shortcuts.open-workspace" msgstr "Ir para a área de trabalho" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:260 msgid "shortcuts.or" msgstr " ou " +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:163 msgid "shortcuts.paste" msgstr "Colar" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:164 msgid "shortcuts.prev-frame" msgstr "Quadro anterior" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:165 msgid "shortcuts.redo" msgstr "Refazer" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:166 msgid "shortcuts.reset-zoom" msgstr "Redefinir zoom" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:168 msgid "shortcuts.search-placeholder" msgstr "Pesquisar atalhos" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:169 msgid "shortcuts.select-all" msgstr "Selecionar tudo" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:170 msgid "shortcuts.select-next" msgstr "Selecionar camada seguinte" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:171 msgid "shortcuts.select-parent-layer" msgstr "Selecionar camada pai" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:172 msgid "shortcuts.select-prev" msgstr "Selecionar camada anterior" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:173 msgid "shortcuts.separate-nodes" msgstr "Separar nós" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:174 msgid "shortcuts.show-pixel-grid" msgstr "Mostrar/ocultar grade de píxeis" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:175 msgid "shortcuts.show-shortcuts" msgstr "Mostrar/ocultar atalhos" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:176 msgid "shortcuts.snap-nodes" msgstr "Ajustar aos nós" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:177 msgid "shortcuts.snap-pixel-grid" msgstr "Ajustar à grade de píxeis" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:178 msgid "shortcuts.start-editing" msgstr "Iniciar edição" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:179 msgid "shortcuts.start-measure" msgstr "Iniciar medição" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:180 msgid "shortcuts.stop-measure" msgstr "Parar medição" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:181 msgid "shortcuts.text-align-center" msgstr "Alinhar ao centro" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:182 msgid "shortcuts.text-align-justify" msgstr "Alinhar justificado" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:183 msgid "shortcuts.text-align-left" msgstr "Alinhar à esquerda" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:184 msgid "shortcuts.text-align-right" msgstr "Alinhar à direita" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:185 msgid "shortcuts.thumbnail-set" msgstr "Definir imagem destaque" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:496, src/app/main/ui/workspace/sidebar/shortcuts.cljs:505 msgid "shortcuts.title" msgstr "Atalhos do teclado" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:186 msgid "shortcuts.toggle-alignment" msgstr "Alternar alinhamento dinâmico" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:187 msgid "shortcuts.toggle-assets" msgstr "Alternar recursos" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:188 msgid "shortcuts.toggle-colorpalette" msgstr "Alternar selector de cores" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:189 msgid "shortcuts.toggle-focus-mode" msgstr "Alternar modo de foco" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:190 msgid "shortcuts.toggle-fullscreen" msgstr "Alternar tela cheia" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:192 msgid "shortcuts.toggle-history" msgstr "Alternar histórico" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:193 msgid "shortcuts.toggle-layers" msgstr "Alternar camadas" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:194 msgid "shortcuts.toggle-layout-flex" msgstr "Adicionar / Remover layout flex" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:196 msgid "shortcuts.toggle-lock" msgstr "Bloquear selecionado" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:197 msgid "shortcuts.toggle-lock-size" msgstr "Bloquear proporções" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:202 msgid "shortcuts.toggle-textpalette" msgstr "Alternar paleta de texto" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:203 msgid "shortcuts.toggle-theme" msgstr "Mudar tema" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:204 msgid "shortcuts.toggle-visibility" msgstr "Mostrar / Ocultar" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:205 msgid "shortcuts.toggle-zoom-style" msgstr "Alternar estilo de zoom" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:206 msgid "shortcuts.underline" msgstr "Alternar sublinhado" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:207 msgid "shortcuts.undo" msgstr "Desfazer" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:208 msgid "shortcuts.ungroup" msgstr "Desagrupar" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:209 msgid "shortcuts.unmask" msgstr "Retirar máscara" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:210 msgid "shortcuts.v-distribute" msgstr "Distribuir verticalmente" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:211 msgid "shortcuts.zoom-lense-decrease" msgstr "Reduzir zoom na lupa" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:212 msgid "shortcuts.zoom-lense-increase" msgstr "Aumentar zoom na lupa" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:213 msgid "shortcuts.zoom-selected" msgstr "Zoom para selecionados" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:771 msgid "team.webhooks.max-length" msgstr "O nome do webhook deve conter um máximo de 2048 caracteres." -#: src/app/main/ui/dashboard/files.cljs +#: src/app/main/ui/dashboard/files.cljs:158 msgid "title.dashboard.files" msgstr "%s - Penpot" -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:37 msgid "title.dashboard.font-providers" msgstr "Provedores de fonte - %s - Penpot" -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:36 msgid "title.dashboard.fonts" msgstr "Fontes - %s - Penpot" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:320 msgid "title.dashboard.projects" msgstr "Projetos - %s - Penpot" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:32 msgid "title.dashboard.search" msgstr "Pesquisa - %s - Penpot" -#: src/app/main/ui/dashboard/libraries.cljs +#: src/app/main/ui/dashboard/libraries.cljs:44 msgid "title.dashboard.shared-libraries" msgstr "Bibliotecas partilhadas - %s - Penpot" -#: src/app/main/ui/auth/verify_token.cljs, src/app/main/ui/auth.cljs +#: src/app/main/ui/auth/verify_token.cljs:68, src/app/main/ui/auth.cljs:54 msgid "title.default" msgstr "Penpot - Liberdade de Design para Equipas" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:292 msgid "title.settings.access-tokens" msgstr "Perfil - Tokens de acesso" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:110 msgid "title.settings.feedback" msgstr "Dá feedback - Penpot" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:80 msgid "title.settings.options" msgstr "Definições - Penpot" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:115 msgid "title.settings.password" msgstr "Palavra-passe - Penpot" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:115 msgid "title.settings.profile" msgstr "Perfil - Penpot" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:727 msgid "title.team-invitations" msgstr "Convites - %s - Penpot" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:493 msgid "title.team-members" msgstr "Membros - %s - Penpot" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1036 msgid "title.team-settings" msgstr "Definições - %s - Penpot" +#: src/app/main/ui/dashboard/team.cljs:989 msgid "title.team-webhooks" msgstr "Webhooks - %s - Penpot" -#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs +#: src/app/main/ui/viewer.cljs:419 msgid "title.viewer" msgstr "%s - Modo visualizador - Penpot" -#: src/app/main/ui/workspace.cljs +#: src/app/main/ui/workspace.cljs:190 msgid "title.workspace" msgstr "%s - Penpot" +#: src/app/main/ui.cljs:144 msgid "viewer.breaking-change.description" msgstr "" -"Este link partilhável já não é válido. Cria uma nova ou pede ao proprietário " -"para um novo." +"Este link partilhável já não é válido. Cria uma nova ou pede ao " +"proprietário para um novo." +#: src/app/main/ui.cljs:143 msgid "viewer.breaking-change.message" msgstr "Desculpa!" -#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs +#: src/app/main/ui/viewer.cljs:569 msgid "viewer.empty-state" msgstr "Não foram encontrados quadros na página." -#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs +#: src/app/main/ui/viewer.cljs:574 msgid "viewer.frame-not-found" msgstr "Quadro não encontrado." +#: src/app/main/ui/viewer/header.cljs:336 msgid "viewer.header.comments-section" msgstr "Comentários (%s)" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/interactions.cljs:292 msgid "viewer.header.dont-show-interactions" msgstr "Não mostrar interações" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/header.cljs:188 msgid "viewer.header.fullscreen" msgstr "Tela Cheia" +#: src/app/main/ui/viewer/header.cljs:345 msgid "viewer.header.inspect-section" msgstr "Inspecionar (%s)" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/interactions.cljs:282 msgid "viewer.header.interactions" msgstr "Interações" +#: src/app/main/ui/viewer/header.cljs:327 msgid "viewer.header.interactions-section" msgstr "Interações (%s)" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/share_link.cljs:187 msgid "viewer.header.share.copy-link" msgstr "Copiar link" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/interactions.cljs:300 msgid "viewer.header.show-interactions" msgstr "Mostrar interações" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/interactions.cljs:311 msgid "viewer.header.show-interactions-on-click" msgstr "Mostrar interações com click" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/header.cljs:231 msgid "viewer.header.sitemap" msgstr "Mapa do site" -#, fuzzy +#: src/app/main/ui/dashboard/team.cljs:948 msgid "webhooks.last-delivery.success" msgstr "Último envio com sucesso." -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:58 msgid "workspace.align.hcenter" msgstr "Alinhar horizontal ao centro (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:74 msgid "workspace.align.hdistribute" msgstr "Distribuir espaçamento horizontal (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:50 msgid "workspace.align.hleft" msgstr "Alinhar à esquerda (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:66 msgid "workspace.align.hright" msgstr "Alinhar à direita (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:99 msgid "workspace.align.vbottom" msgstr "Alinhar abaixo (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:91 msgid "workspace.align.vcenter" msgstr "Alinhar ao centro verticalmente (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:104 msgid "workspace.align.vdistribute" msgstr "Distribuir espaçamento vertical (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:83 msgid "workspace.align.vtop" msgstr "Alinhar ao topo (%s)" #: src/app/main/ui/workspace/sidebar/assets.cljs +#, unused msgid "workspace.assets.assets" msgstr "Recursos" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets.cljs:134 msgid "workspace.assets.box-filter-all" msgstr "Todos os recursos" -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/dashboard/grid.cljs:130, src/app/main/ui/dashboard/grid.cljs:162, src/app/main/ui/workspace/sidebar/assets/colors.cljs:485, src/app/main/ui/workspace/sidebar/assets.cljs:150 msgid "workspace.assets.colors" msgstr "Cores" -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/dashboard/grid.cljs:126, src/app/main/ui/dashboard/grid.cljs:141, src/app/main/ui/workspace/sidebar/assets/components.cljs:513, src/app/main/ui/workspace/sidebar/assets.cljs:139 msgid "workspace.assets.components" msgstr "Componentes" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:131 msgid "workspace.assets.create-group" msgstr "Criar grupo" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:142 msgid "workspace.assets.create-group-hint" msgstr "" "Os teus itens serão nomeados automaticamente como \"nome do grupo / nome do " "item\"" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/context_menu.cljs:529, src/app/main/ui/workspace/sidebar/assets/colors.cljs:251, src/app/main/ui/workspace/sidebar/assets/components.cljs:577, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:424, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:443 msgid "workspace.assets.delete" msgstr "Eliminar" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/context_menu.cljs:534, src/app/main/ui/workspace/sidebar/assets/components.cljs:572 msgid "workspace.assets.duplicate" msgstr "Duplicar" +#: src/app/main/ui/workspace/sidebar/assets/components.cljs:571 msgid "workspace.assets.duplicate-main" msgstr "Duplicar principal" -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:247, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:439 msgid "workspace.assets.edit" msgstr "Editar" -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets.cljs:176 +msgid "workspace.assets.filter" +msgstr "Filtrar" + +#: src/app/main/ui/workspace/sidebar/assets/graphics.cljs:384, src/app/main/ui/workspace/sidebar/assets.cljs:145 msgid "workspace.assets.graphics" msgstr "Gráficos" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:255, src/app/main/ui/workspace/sidebar/assets/components.cljs:581, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:428, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:448 msgid "workspace.assets.group" msgstr "Agrupar" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:141 msgid "workspace.assets.group-name" msgstr "Nome do grupo" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets.cljs:168 msgid "workspace.assets.libraries" msgstr "Bibliotecas" +#: src/app/main/ui/workspace/sidebar/assets/file_library.cljs:62, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:347 msgid "workspace.assets.local-library" msgstr "biblioteca local" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/file_library.cljs:295 msgid "workspace.assets.not-found" msgstr "Recursos não encontrados" +#, unused msgid "workspace.assets.open-library" msgstr "Abrir ficheiro de biblioteca" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/context_menu.cljs:532, src/app/main/ui/workspace/sidebar/assets/colors.cljs:243, src/app/main/ui/workspace/sidebar/assets/components.cljs:566, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:421, src/app/main/ui/workspace/sidebar/assets/groups.cljs:63, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:434 msgid "workspace.assets.rename" msgstr "Renomear" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:132 msgid "workspace.assets.rename-group" msgstr "Renomear grupo" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets.cljs:173 msgid "workspace.assets.search" msgstr "Pesquisar recursos" #: src/app/main/ui/workspace/sidebar/assets.cljs +#, unused msgid "workspace.assets.selected-count" msgid_plural "workspace.assets.selected-count" msgstr[0] "%s item selecionado" msgstr[1] "%s itens selecionados" #: src/app/main/ui/workspace/sidebar/assets.cljs +#, unused msgid "workspace.assets.shared-library" msgstr "Biblioteca partilhada" -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs -msgid "workspace.assets.typography" -msgstr "Tipografias" - -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -msgid "workspace.assets.typography.font-id" -msgstr "Fonte" - -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -msgid "workspace.assets.typography.font-size" -msgstr "Tamanho" - -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -msgid "workspace.assets.typography.font-variant-id" -msgstr "Variante" - -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -msgid "workspace.assets.typography.go-to-edit" -msgstr "Ir para ficheiro da biblioteca de estilos para editar" - -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -msgid "workspace.assets.typography.letter-spacing" -msgstr "Espaço entre letras" - -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -msgid "workspace.assets.typography.line-height" -msgstr "Altura da Linha" - -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, -#: src/app/main/ui/inspect/attributes/text.cljs, -#: src/app/main/ui/inspect/attributes/text.cljs -msgid "workspace.assets.typography.sample" -msgstr "Ag" - -msgid "workspace.assets.typography.text-styles" -msgstr "Estilos de texto" - -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -msgid "workspace.assets.typography.text-transform" -msgstr "Transformar Texto" - -#: src/app/main/ui/workspace/sidebar/assets.cljs -msgid "workspace.assets.ungroup" -msgstr "Desagrupar" - -msgid "workspace.context-menu.grid-cells.area" -msgstr "Criar área" - -msgid "workspace.context-menu.grid-cells.create-board" -msgstr "Criar prancheta" - -msgid "workspace.context-menu.grid-cells.merge" -msgstr "Unir células" - -msgid "workspace.context-menu.grid-track.column.add-after" -msgstr "Adicionar 1 coluna à direita" - -msgid "workspace.context-menu.grid-track.column.add-before" -msgstr "Adicionar 1 coluna à esquerda" - -msgid "workspace.context-menu.grid-track.column.delete" -msgstr "Eliminar coluna" - -msgid "workspace.context-menu.grid-track.column.delete-shapes" -msgstr "Apagar coluna e conteúdos" - -msgid "workspace.context-menu.grid-track.column.duplicate" -msgstr "Duplicar coluna" - -msgid "workspace.context-menu.grid-track.row.add-after" -msgstr "Adicionar 1 fila abaixo" - -msgid "workspace.context-menu.grid-track.row.add-before" -msgstr "Adicionar 1 fila acima" - -msgid "workspace.context-menu.grid-track.row.delete" -msgstr "Apagar fila" - -msgid "workspace.context-menu.grid-track.row.delete-shapes" -msgstr "Apagar fila e conteúdos" - -msgid "workspace.context-menu.grid-track.row.duplicate" -msgstr "Duplicar fila" - -msgid "workspace.focus.focus-mode" -msgstr "Modo de foco" - -msgid "workspace.focus.focus-off" -msgstr "Foco desativado" - -msgid "workspace.focus.focus-on" -msgstr "Foco ativo" - -msgid "workspace.focus.selection" -msgstr "Seleção" - -#: src/app/main/data/workspace/libraries.cljs, -#: src/app/main/ui/components/color_bullet.cljs -msgid "workspace.gradients.linear" -msgstr "Gradiente linear" - -#: src/app/main/data/workspace/libraries.cljs, -#: src/app/main/ui/components/color_bullet.cljs -msgid "workspace.gradients.radial" -msgstr "Gradiente radial" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.disable-dynamic-alignment" -msgstr "Desativar alinhamento dinâmico" - -msgid "workspace.header.menu.disable-scale-content" -msgstr "Desativar escala proporcional" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.disable-scale-text" -msgstr "Desativar escala de texto" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.disable-snap-guides" -msgstr "Desativar ajuste às guias" - -msgid "workspace.header.menu.disable-snap-pixel-grid" -msgstr "Desativar ajuste ao pixel" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.enable-dynamic-alignment" -msgstr "Ativar alinhamento dinâmico" - -msgid "workspace.header.menu.enable-scale-content" -msgstr "Ativar escala proporcional" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.enable-scale-text" -msgstr "Ativar escalar texto" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.enable-snap-guides" -msgstr "Ajustar às guias" - -msgid "workspace.header.menu.enable-snap-pixel-grid" -msgstr "Ativar ajuste ao pixel" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.hide-artboard-names" -msgstr "Ocultar nome das pranchetas" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.hide-palette" -msgstr "Ocultar paleta de cor" - -msgid "workspace.header.menu.hide-pixel-grid" -msgstr "Ocultar grade de píxeis" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.hide-rules" -msgstr "Ocultar réguas" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.hide-textpalette" -msgstr "Ocultar paleta de texto" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.option.edit" -msgstr "Editar" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.option.file" -msgstr "Ficheiro" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.option.help-info" -msgstr "Ajuda e Informações" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.option.preferences" -msgstr "Preferências" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.option.view" -msgstr "Visualização" - -msgid "workspace.header.menu.redo" -msgstr "Refazer" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.select-all" -msgstr "Selecionar tudo" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.show-artboard-names" -msgstr "Mostrar nomes das pranchetas" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.show-palette" -msgstr "Mostrar paleta de cor" - -msgid "workspace.header.menu.show-pixel-grid" -msgstr "Mostrar grade de píxeis" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.show-rules" -msgstr "Mostrar réguas" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.show-textpalette" -msgstr "Mostrar paleta de texto" - -msgid "workspace.header.menu.toggle-dark-theme" -msgstr "Alterar para tema escuro" - -msgid "workspace.header.menu.toggle-light-theme" -msgstr "Mudar para tema claro" - -msgid "workspace.header.menu.undo" -msgstr "Desfazer" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.reset-zoom" -msgstr "Ampliar em 100%" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.save-error" -msgstr "Erro ao salvar" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.saved" -msgstr "Guardado" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.saving" -msgstr "A salvar" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.unsaved" -msgstr "Alterações não guardadas" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.viewer" -msgstr "Modo de visualização (%s)" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.zoom" -msgstr "Zoom" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.zoom-fill" -msgstr "Ajustar para preencher" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.zoom-fit" -msgstr "Ajustar para encaixar" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.zoom-fit-all" -msgstr "Ajustar para mostrar tudo" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.zoom-full-screen" -msgstr "Tela cheia" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.zoom-selected" -msgstr "Aumentar para seleção" - -msgid "workspace.layout_grid.editor.options.edit-grid" -msgstr "Editar grelha" - -msgid "workspace.layout_grid.editor.options.exit" -msgstr "Sair" - -msgid "workspace.layout_grid.editor.title" -msgstr "A editar grelha" - -msgid "workspace.layout_grid.editor.top-bar.done" -msgstr "Feito" - -msgid "workspace.layout_grid.editor.top-bar.locate" -msgstr "Localizar" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.add" -msgstr "Adicionar" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.colors" -msgstr "%s cores" - -#: src/app/main/ui/workspace/colorpalette.cljs -msgid "workspace.libraries.colors.empty-palette" -msgstr "Ainda não existem estilos de cor na tua biblioteca" - -#: src/app/main/ui/workspace/textpalette.cljs -msgid "workspace.libraries.colors.empty-typography-palette" -msgstr "Ainda não existem tipografias na tua biblioteca" - -#: src/app/main/ui/workspace/colorpicker/libraries.cljs, -#: src/app/main/ui/workspace/colorpalette.cljs -msgid "workspace.libraries.colors.file-library" -msgstr "Biblioteca de ficheiros" - -#: src/app/main/ui/workspace/colorpicker.cljs -msgid "workspace.libraries.colors.hsv" -msgstr "HSV" - -#: src/app/main/ui/workspace/colorpicker/libraries.cljs, -#: src/app/main/ui/workspace/colorpalette.cljs -msgid "workspace.libraries.colors.recent-colors" -msgstr "Cores recentes" - -#: src/app/main/ui/workspace/colorpicker.cljs -msgid "workspace.libraries.colors.rgb-complementary" -msgstr "RGB Complementar" - -#: src/app/main/ui/workspace/colorpicker.cljs -msgid "workspace.libraries.colors.rgba" -msgstr "RGBA" - -#: src/app/main/ui/workspace/colorpicker.cljs -msgid "workspace.libraries.colors.save-color" -msgstr "Guardar estilo de cor" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.components" -msgstr "%s componentes" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.file-library" -msgstr "Biblioteca de ficheiros" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.graphics" -msgstr "%s gráficos" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.in-this-file" -msgstr "BIBLIOTECAS NESTE FICHEIRO" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.libraries" -msgstr "BIBLIOTECAS" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.library" -msgstr "BIBLIOTECA" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.library-updates" -msgstr "ATUALIZAÇÕES DE BIBLIOTECAS" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.loading" -msgstr "A carregar…" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.no-libraries-need-sync" -msgstr "Não há bibliotecas partilhadas que precisem de atualização" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.no-matches-for" -msgstr "Não há resultados para \"%s\"" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.no-shared-libraries-available" -msgstr "Não há bibliotecas partilhadas disponíveis" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.search-shared-libraries" -msgstr "Pesquisar bibliotecas partilhadas" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.shared-libraries" -msgstr "BIBLIOTECAS PARTILHADAS" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.libraries.text.multiple-typography" -msgstr "Múltiplas tipografias" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.libraries.text.multiple-typography-tooltip" -msgstr "Desassociar todas as tipografias" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.typography" -msgstr "%s tipografias" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.update" -msgstr "Atualizar" - -#: src/app/main/data/workspace/libraries.cljs -msgid "workspace.libraries.update.see-all-changes" -msgstr "ver todas as alterações" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.updates" -msgstr "ATUALIZAÇÕES" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.add-interaction" -msgstr "Clica no botão + para adicionar interações." - -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs -msgid "workspace.options.blur-options.title" -msgstr "Desfoque" - -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs -msgid "workspace.options.blur-options.title.group" -msgstr "Desfoque de grupo" - -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs -msgid "workspace.options.blur-options.title.multiple" -msgstr "Desfoque de seleção" - -#: src/app/main/ui/workspace/sidebar/options/page.cljs -msgid "workspace.options.canvas-background" -msgstr "Plano de fundo" - -msgid "workspace.options.clip-content" -msgstr "Recorte do conteúdo" - -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs -msgid "workspace.options.component" -msgstr "Componente" - -msgid "workspace.options.component.annotation" -msgstr "Nota" - -msgid "workspace.options.component.copy" -msgstr "Cópia" - -msgid "workspace.options.component.create-annotation" -msgstr "Criar uma nota" - -msgid "workspace.options.component.edit-annotation" -msgstr "Editar uma nota" - -msgid "workspace.options.component.main" -msgstr "Principal" - -msgid "workspace.options.component.swap" -msgstr "Trocar de componente" - -msgid "workspace.options.component.swap.empty" -msgstr "Ainda não existem recursos nesta biblioteca" - -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -msgid "workspace.options.constraints" -msgstr "Restrições" - -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -msgid "workspace.options.constraints.bottom" -msgstr "Abaixo" - -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -msgid "workspace.options.constraints.center" -msgstr "Centro" - -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -msgid "workspace.options.constraints.fix-when-scrolling" -msgstr "Fixar no scroll" - -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -msgid "workspace.options.constraints.left" -msgstr "Esquerda" - -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -msgid "workspace.options.constraints.leftright" -msgstr "Esquerda e Direita" - -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -msgid "workspace.options.constraints.right" -msgstr "Direita" - -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -msgid "workspace.options.constraints.scale" -msgstr "Escala" - -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -msgid "workspace.options.constraints.top" -msgstr "Topo" - -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -msgid "workspace.options.constraints.topbottom" -msgstr "Topo e Abaixo" - -#: src/app/main/ui/workspace/sidebar/options.cljs -msgid "workspace.options.design" -msgstr "Design" - -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs -msgid "workspace.options.export" -msgstr "Exportar" - -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs -msgid "workspace.options.export-multiple" -msgstr "Exportar seleção" - -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs -msgid "workspace.options.export-object" -msgid_plural "workspace.options.export-object" -msgstr[0] "Exportar 1 elemento" -msgstr[1] "Exportar %s elementos" - -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs -msgid "workspace.options.export.suffix" -msgstr "Sufixo" - -#: 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.exporting-complete" -msgstr "Exportação completa" - -#: 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.exporting-object" -msgstr "A exportar…" - -#: 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.exporting-object-error" -msgstr "A exportação falhou" - -#: 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.exporting-object-slow" -msgstr "Exportação inesperadamente lenta" - -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs -msgid "workspace.options.fill" -msgstr "Preenchimento" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.flows.add-flow-start" -msgstr "Adicionar início de fluxo" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.flows.flow" -msgstr "Fluxo" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.flows.flow-start" -msgstr "Início de fluxo" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.flows.flow-starts" -msgstr "Início de fluxo" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.auto" -msgstr "Automático" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.column" -msgstr "Colunas" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.grid-title" -msgstr "Grade" - -msgid "workspace.options.grid.params.color" -msgstr "Cor" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.columns" -msgstr "Colunas" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.gutter" -msgstr "Espaço" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.height" -msgstr "Altura" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.margin" -msgstr "Margem" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.rows" -msgstr "Linhas" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.set-default" -msgstr "Definir como padrão" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.size" -msgstr "Tamanho" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.type" -msgstr "Tipo" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.type.bottom" -msgstr "Abaixo" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.type.center" -msgstr "Centro" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.type.left" -msgstr "Esquerda" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.type.right" -msgstr "Direita" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.type.stretch" -msgstr "Esticar" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.type.top" -msgstr "Topo" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.use-default" -msgstr "Utilizar padrão" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.width" -msgstr "Largura" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.row" -msgstr "Linhas" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.square" -msgstr "Quadrado" - -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs -msgid "workspace.options.group-fill" -msgstr "Preenchimento de grupo" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.group-stroke" -msgstr "Traço de grupo" - -msgid "workspace.options.guides.title" -msgstr "Guias" - -msgid "workspace.options.height" -msgstr "Altura" - -msgid "workspace.options.inspect" -msgstr "Inspecionar" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-action" -msgstr "Ação" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-after-delay" -msgstr "Após atraso" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-animation" -msgstr "Animação" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-animation-dissolve" -msgstr "Dissolver" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-animation-none" -msgstr "Nenhum" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-animation-push" -msgstr "Empurrar" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-animation-slide" -msgstr "Deslizar" - -msgid "workspace.options.interaction-auto" -msgstr "Automático" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-background" -msgstr "Adicionar sobreposição de fundo" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-close-outside" -msgstr "Fechar ao clicar no exterior" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-close-overlay" -msgstr "Fechar sobreposição" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-close-overlay-dest" -msgstr "Fechar sobreposição: %s" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-delay" -msgstr "Atraso" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-destination" -msgstr "Destino" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-duration" -msgstr "Duração" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-easing" -msgstr "Easing" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-easing-ease" -msgstr "Ease" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-easing-ease-in" -msgstr "Ease in" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-easing-ease-in-out" -msgstr "Ease in out" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-easing-ease-out" -msgstr "Ease out" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-easing-linear" -msgstr "Linear" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-in" -msgstr "Dentro" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-mouse-enter" -msgstr "Cursor entra" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-mouse-leave" -msgstr "Cursor sai" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-ms" -msgstr "ms" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-navigate-to" -msgstr "Navegar para" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-navigate-to-dest" -msgstr "Navegar para: %s" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-none" -msgstr "(indefinido)" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-offset-effect" -msgstr "Efeito Offset" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-on-click" -msgstr "No Clique" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-open-overlay" -msgstr "Abrir sobreposição" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-open-overlay-dest" -msgstr "Abrir sobreposição: %s" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-open-url" -msgstr "Abrir url" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-out" -msgstr "Fora" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-pos-bottom-center" -msgstr "Inferior centro" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-pos-bottom-left" -msgstr "Inferior esquerdo" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-pos-bottom-right" -msgstr "Inferior direito" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-pos-center" -msgstr "Centro" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-pos-manual" -msgstr "Manual" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-pos-top-center" -msgstr "Superior centro" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-pos-top-left" -msgstr "Superior esquerdo" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-pos-top-right" -msgstr "Superior direito" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-position" -msgstr "Posição" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-preserve-scroll" -msgstr "Preservar posição do scroll" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-prev-screen" -msgstr "Ecrã anterior" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-relative-to" -msgstr "Relativa a" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-self" -msgstr "auto" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-toggle-overlay" -msgstr "Alternar a sobreposição" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-toggle-overlay-dest" -msgstr "Alternar a sobreposição: %s" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-trigger" -msgstr "Ativador" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-url" -msgstr "URL" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-while-hovering" -msgstr "Durante o hover" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-while-pressing" -msgstr "Durante a premir" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interactions" -msgstr "Interações" - -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.blend-mode.color" -msgstr "Cor" - -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.blend-mode.color-burn" -msgstr "Superexposição de cor" - -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.blend-mode.color-dodge" -msgstr "Subexposição Linear (Adicionar)" - -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.blend-mode.darken" -msgstr "Escurecer" - -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.blend-mode.difference" -msgstr "Diferença" - -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.blend-mode.exclusion" -msgstr "Exclusão" - -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.blend-mode.hard-light" -msgstr "Luz direta" - -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.blend-mode.hue" -msgstr "Matiz" - -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.blend-mode.lighten" -msgstr "Clarear" - -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.blend-mode.luminosity" -msgstr "Luminosidade" - -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.blend-mode.multiply" -msgstr "Multiplicação" - -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.blend-mode.normal" -msgstr "Normal" - -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.blend-mode.overlay" -msgstr "Sobrepor" - -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.blend-mode.saturation" -msgstr "Saturação" - -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.blend-mode.screen" -msgstr "Tela" - -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.blend-mode.soft-light" -msgstr "Luz indireta" - -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.title" -msgstr "Camada" - -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.title.group" -msgstr "Grupo de camadas" - -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.title.multiple" -msgstr "Camadas selecionadas" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -msgid "workspace.options.layout-item.advanced-ops" -msgstr "Opções avançadas" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -msgid "workspace.options.layout-item.layout-item-max-h" -msgstr "Altura.Máx" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -msgid "workspace.options.layout-item.layout-item-max-w" -msgstr "Largura.Máx" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -msgid "workspace.options.layout-item.layout-item-min-h" -msgstr "Altura.Min" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -msgid "workspace.options.layout-item.layout-item-min-w" -msgstr "Largura.Min" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -msgid "workspace.options.layout-item.title.layout-item-max-h" -msgstr "Altura máxima" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -msgid "workspace.options.layout-item.title.layout-item-max-w" -msgstr "Largura máxima" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -msgid "workspace.options.layout-item.title.layout-item-min-h" -msgstr "Altura mínima" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -msgid "workspace.options.layout-item.title.layout-item-min-w" -msgstr "Largura mínima" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -msgid "workspace.options.layout.bottom" -msgstr "Abaixo" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -msgid "workspace.options.layout.direction.column" -msgstr "Coluna" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -msgid "workspace.options.layout.direction.column-reverse" -msgstr "Coluna invertida" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -msgid "workspace.options.layout.direction.row" -msgstr "Linha" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -msgid "workspace.options.layout.direction.row-reverse" -msgstr "Linha invertida" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -msgid "workspace.options.layout.gap" -msgstr "Espaço" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -msgid "workspace.options.layout.left" -msgstr "Esquerda" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -msgid "workspace.options.layout.margin" -msgstr "Margem" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -msgid "workspace.options.layout.margin-all" -msgstr "Todos os lados" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -msgid "workspace.options.layout.margin-simple" -msgstr "Margem simples" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -msgid "workspace.options.layout.packed" -msgstr "juntos" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -msgid "workspace.options.layout.padding" -msgstr "Distância interna" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -msgid "workspace.options.layout.padding-all" -msgstr "Todos os lados" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -msgid "workspace.options.layout.padding-simple" -msgstr "Padding simples" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -msgid "workspace.options.layout.right" -msgstr "Direita" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -msgid "workspace.options.layout.space-around" -msgstr "espaço à volta" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -msgid "workspace.options.layout.space-between" -msgstr "espaço entre" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -msgid "workspace.options.layout.top" -msgstr "Topo" - -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs -msgid "workspace.options.more-colors" -msgstr "Mais cores" - -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs -msgid "workspace.options.more-lib-colors" -msgstr "Mais bibliotecas de cor" - -msgid "workspace.options.opacity" -msgstr "Opacidade" - -#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -msgid "workspace.options.position" -msgstr "Posição" - -#: src/app/main/ui/workspace/sidebar/options.cljs -msgid "workspace.options.prototype" -msgstr "Protótipo" - -msgid "workspace.options.radius" -msgstr "Raio" - -#: 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" - -#: 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.all-corners" -msgstr "Todos os cantos" - -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -msgid "workspace.options.radius.single-corners" -msgstr "Cantos individuais" - -msgid "workspace.options.recent-fonts" -msgstr "Recente" - -#: 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 "Repetir" - -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -msgid "workspace.options.rotation" -msgstr "Rotação" - -msgid "workspace.options.search-font" -msgstr "Pesquisar fonte" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.select-a-shape" -msgstr "" -"Selecionar a forma, prancheta ou grupo para arrastar uma conexão para outra " -"prancheta." - -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs -msgid "workspace.options.selection-color" -msgstr "Cores selecionadas" - -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs -msgid "workspace.options.selection-fill" -msgstr "Preenchimento de seleção" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.selection-stroke" -msgstr "Traço da seleção" - -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs -msgid "workspace.options.shadow-options.blur" -msgstr "Desfoque" - -msgid "workspace.options.shadow-options.color" -msgstr "Cor da sombra" - -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs -msgid "workspace.options.shadow-options.drop-shadow" -msgstr "Sombra" - -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs -msgid "workspace.options.shadow-options.inner-shadow" -msgstr "Sombra interna" - -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs -msgid "workspace.options.shadow-options.offsetx" -msgstr "X" - -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs -msgid "workspace.options.shadow-options.offsety" -msgstr "Y" - -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs -msgid "workspace.options.shadow-options.spread" -msgstr "Difundir" - -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs -msgid "workspace.options.shadow-options.title" -msgstr "Sombra" - -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs -msgid "workspace.options.shadow-options.title.group" -msgstr "Grupo de sombras" - -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs -msgid "workspace.options.shadow-options.title.multiple" -msgstr "Seleção de sombras" - -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs -msgid "workspace.options.show-fill-on-export" -msgstr "Mostrar na exportação" - -msgid "workspace.options.show-in-viewer" -msgstr "Mostrar no modo de visualização" - -#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -msgid "workspace.options.size" -msgstr "Tamanho" - -#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs -msgid "workspace.options.size-presets" -msgstr "Tamanho pré-definido" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke" -msgstr "Traço" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke-cap.circle-marker" -msgstr "Marcador circular" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke-cap.circle-marker-short" -msgstr "Círculo" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke-cap.diamond-marker" -msgstr "Marcador em diamante" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke-cap.diamond-marker-short" -msgstr "Diamante" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke-cap.line-arrow" -msgstr "Seta de linha" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke-cap.line-arrow-short" -msgstr "Seta" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke-cap.none" -msgstr "Nenhum" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke-cap.round" -msgstr "Arredondado" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke-cap.square" -msgstr "Quadrado" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke-cap.square-marker" -msgstr "Marcador quadrado" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke-cap.square-marker-short" -msgstr "Retângulo" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke-cap.triangle-arrow" -msgstr "Seta triangular" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke-cap.triangle-arrow-short" -msgstr "Triângulo" - -msgid "workspace.options.stroke-color" -msgstr "Cor do traço" - -msgid "workspace.options.stroke-width" -msgstr "Largura do traço" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke.center" -msgstr "Centro" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke.dashed" -msgstr "Tracejado" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke.dotted" -msgstr "Pontilhado" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke.inner" -msgstr "Interior" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke.mixed" -msgstr "Misto" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke.outer" -msgstr "Exterior" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke.solid" -msgstr "Sólido" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.options.text-options.align-bottom" -msgstr "Alinhar abaixo" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.options.text-options.align-middle" -msgstr "Alinhar ao meio" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.options.text-options.align-top" -msgstr "Alinhar ao topo" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.options.text-options.direction-ltr" -msgstr "LTR" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.options.text-options.direction-rtl" -msgstr "RTL" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.options.text-options.grow-auto-height" -msgstr "Altura automática" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.options.text-options.grow-auto-width" -msgstr "Largura automática" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.options.text-options.grow-fixed" -msgstr "Fixo" - -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -msgid "workspace.options.text-options.letter-spacing" -msgstr "Espaço entre letras" - -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -msgid "workspace.options.text-options.line-height" -msgstr "Altura entre linhas" - -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -msgid "workspace.options.text-options.lowercase" -msgstr "Minúsculas" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -msgid "workspace.options.text-options.none" -msgstr "Nenhum" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.options.text-options.strikethrough" -msgstr "Rasurado (%s)" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.options.text-options.text-align-center" -msgstr "Alinhar ao centro (%s)" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.options.text-options.text-align-justify" -msgstr "Justificar (%s)" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.options.text-options.text-align-left" -msgstr "Alinhar à esquerda (%s)" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.options.text-options.text-align-right" -msgstr "Alinhar à direita (%s)" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.options.text-options.title" -msgstr "Texto" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.options.text-options.title-group" -msgstr "Grupo de texto" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.options.text-options.title-selection" -msgstr "Texto selecionado" - -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -msgid "workspace.options.text-options.titlecase" -msgstr "Capitalizar iniciais" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.options.text-options.underline" -msgstr "Sublinhado (%s)" - -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -msgid "workspace.options.text-options.uppercase" -msgstr "Maiúsculas" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.use-play-button" -msgstr "" -"Utiliza o botão de play no cabeçalho para iniciar a visualização do " -"protótipo." - -msgid "workspace.options.width" -msgstr "Largura" - -msgid "workspace.options.x" -msgstr "Eixo X" - -msgid "workspace.options.y" -msgstr "Y" - -msgid "workspace.path.actions.add-node" -msgstr "Adicionar nó (%s)" - -msgid "workspace.path.actions.delete-node" -msgstr "Eliminar nó (%s)" - -msgid "workspace.path.actions.draw-nodes" -msgstr "Desenhar nós (%s)" - -msgid "workspace.path.actions.join-nodes" -msgstr "Unir nós (%s)" - -msgid "workspace.path.actions.make-corner" -msgstr "Em cantos (%s)" - -msgid "workspace.path.actions.make-curve" -msgstr "Em curvas (%s)" - -msgid "workspace.path.actions.merge-nodes" -msgstr "Fundir nós (%s)" - -msgid "workspace.path.actions.move-nodes" -msgstr "Mover nós (%s)" - -msgid "workspace.path.actions.separate-nodes" -msgstr "Separar nós (%s)" - -msgid "workspace.path.actions.snap-nodes" -msgstr "Ajustar nós (%s)" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.add-flex" -msgstr "Adicionar layout flex" - -msgid "workspace.shape.menu.add-grid" -msgstr "Adicionar layout em grelha" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.back" -msgstr "Enviar para trás" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.backward" -msgstr "Mover para trás" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.copy" -msgstr "Copiar" - -msgid "workspace.shape.menu.create-annotation" -msgstr "Criar nota" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.create-artboard-from-selection" -msgstr "Seleção para a prancheta" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.create-component" -msgstr "Criar componente" - -msgid "workspace.shape.menu.create-multiple-components" -msgstr "Criar múltiplos componentes" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.cut" -msgstr "Recortar" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.delete" -msgstr "Eliminar" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.delete-flow-start" -msgstr "Eliminar início de fluxo" - -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.detach-instance" -msgstr "Desprender instância" - -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.detach-instances-in-bulk" -msgstr "Desprender instâncias" - -msgid "workspace.shape.menu.difference" -msgstr "Diferença" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.duplicate" -msgstr "Duplicar" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.edit" -msgstr "Editar" - -msgid "workspace.shape.menu.exclude" -msgstr "Excluir" - -msgid "workspace.shape.menu.flatten" -msgstr "Achatar" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.flip-horizontal" -msgstr "Virar na horizontal" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.flip-vertical" -msgstr "Virar na vertical" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.flow-start" -msgstr "Início de fluxo" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.forward" -msgstr "Mover para a frente" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.front" -msgstr "Enviar para a frente" - -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.go-main" -msgstr "Ir para ficheiro do componente principal" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.group" -msgstr "Agrupar" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.hide" -msgstr "Ocultar" - -msgid "workspace.shape.menu.hide-ui" -msgstr "Mostrar/Ocultar interface" - -msgid "workspace.shape.menu.intersection" -msgstr "Interseção" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.lock" -msgstr "Bloquear" - -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.mask" -msgstr "Máscara" - -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.paste" -msgstr "Colar" - -msgid "workspace.shape.menu.path" -msgstr "Curvas" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.remove-flex" -msgstr "Remover layout flex" - -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.reset-overrides" -msgstr "Anular alterações" - -msgid "workspace.shape.menu.restore-main" -msgstr "Restaurar componente principal" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.select-layer" -msgstr "Selecionar camada" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.show" -msgstr "Mostrar" - -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.show-in-assets" -msgstr "Mostrar recursos no painel" - -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.show-main" -msgstr "Mostrar componente principal" - -msgid "workspace.shape.menu.thumbnail-remove" -msgstr "Remover miniatura" - -msgid "workspace.shape.menu.thumbnail-set" -msgstr "Definir como miniatura" - -msgid "workspace.shape.menu.transform-to-path" -msgstr "Transformar em vector" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.ungroup" -msgstr "Desagrupar" - -msgid "workspace.shape.menu.union" -msgstr "União" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.unlock" -msgstr "Desbloquear" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.unmask" -msgstr "Retirar máscara" - -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.update-components-in-bulk" -msgstr "Atualizar componentes principais" - -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.update-main" -msgstr "Atualizar componente principal" - -msgid "workspace.sidebar.collapse" -msgstr "Fechar barra lateral" - -msgid "workspace.sidebar.expand" -msgstr "Expandir barra lateral" - -#: src/app/main/ui/workspace/left_toolbar.cljs -msgid "workspace.sidebar.history" -msgstr "Histórico (%s)" - -#: src/app/main/ui/workspace/left_toolbar.cljs -msgid "workspace.sidebar.layers" -msgstr "Camadas" - -msgid "workspace.sidebar.layers.components" -msgstr "Componentes" - -msgid "workspace.sidebar.layers.frames" -msgstr "Pranchetas" - -msgid "workspace.sidebar.layers.groups" -msgstr "Grupos" - -msgid "workspace.sidebar.layers.images" -msgstr "Imagens" - -msgid "workspace.sidebar.layers.masks" -msgstr "Máscaras" - -msgid "workspace.sidebar.layers.search" -msgstr "Pesquisar camadas" - -msgid "workspace.sidebar.layers.shapes" -msgstr "Formas" - -msgid "workspace.sidebar.layers.texts" -msgstr "Textos" - -#: src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs, -#: src/app/main/ui/inspect/attributes/svg.cljs -msgid "workspace.sidebar.options.svg-attrs.title" -msgstr "Importar atributos do SVG" - -#: src/app/main/ui/workspace/sidebar/sitemap.cljs -msgid "workspace.sidebar.sitemap" -msgstr "Páginas" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.sitemap" -msgstr "Mapa do site" - -#: src/app/main/ui/workspace/left_toolbar.cljs -msgid "workspace.toolbar.assets" -msgstr "Recursos" - -#: src/app/main/ui/workspace/left_toolbar.cljs -msgid "workspace.toolbar.color-palette" -msgstr "Paleta de cores (%s)" - -#: src/app/main/ui/workspace/left_toolbar.cljs -msgid "workspace.toolbar.comments" -msgstr "Comentários (%s)" - -#: src/app/main/ui/workspace/left_toolbar.cljs -msgid "workspace.toolbar.curve" -msgstr "Curvas (%s)" - -#: src/app/main/ui/workspace/left_toolbar.cljs -msgid "workspace.toolbar.ellipse" -msgstr "Elipse (%s)" - -#: src/app/main/ui/workspace/left_toolbar.cljs -msgid "workspace.toolbar.frame" -msgstr "Prancheta (%s)" - -#: src/app/main/ui/workspace/left_toolbar.cljs -msgid "workspace.toolbar.image" -msgstr "Imagem (%s)" - -#: src/app/main/ui/workspace/left_toolbar.cljs -msgid "workspace.toolbar.move" -msgstr "Mover (%s)" - -#: src/app/main/ui/workspace/left_toolbar.cljs -msgid "workspace.toolbar.path" -msgstr "Caminho (%s)" - -#: src/app/main/ui/workspace/left_toolbar.cljs -msgid "workspace.toolbar.rect" -msgstr "Rectângulo (%s)" - -#: src/app/main/ui/workspace/left_toolbar.cljs -msgid "workspace.toolbar.shortcuts" -msgstr "Atalhos (%s)" - -#: src/app/main/ui/workspace/left_toolbar.cljs -msgid "workspace.toolbar.text" -msgstr "Texto (%s)" - -#: src/app/main/ui/workspace/left_toolbar.cljs -msgid "workspace.toolbar.text-palette" -msgstr "Tipografias (%s)" - -msgid "workspace.top-bar.read-only.done" -msgstr "Feito" - -#: src/app/main/ui/workspace/sidebar/history.cljs -msgid "workspace.undo.empty" -msgstr "Não há histórico de mudanças até agora" - -#: src/app/main/ui/workspace/sidebar/history.cljs -msgid "workspace.undo.entry.delete" -msgstr "%s eliminado" - -#: src/app/main/ui/workspace/sidebar/history.cljs -msgid "workspace.undo.entry.modify" -msgstr "%s modificado" - -#: src/app/main/ui/workspace/sidebar/history.cljs -msgid "workspace.undo.entry.move" -msgstr "Objectos movidos" - -msgid "workspace.undo.entry.multiple.circle" -msgstr "círculos" - -msgid "workspace.undo.entry.multiple.color" -msgstr "recursos de cor" - -msgid "workspace.undo.entry.multiple.component" -msgstr "componentes" - -msgid "workspace.undo.entry.multiple.curve" -msgstr "curvas" - -msgid "workspace.undo.entry.multiple.frame" -msgstr "prancheta" - -msgid "workspace.undo.entry.multiple.group" -msgstr "grupos" - -msgid "workspace.undo.entry.multiple.media" -msgstr "recursos gráficos" - -msgid "workspace.undo.entry.multiple.multiple" -msgstr "objectos" - -msgid "workspace.undo.entry.multiple.page" -msgstr "páginas" - -msgid "workspace.undo.entry.multiple.path" -msgstr "caminhos" - -msgid "workspace.undo.entry.multiple.rect" -msgstr "rectângulos" - -msgid "workspace.undo.entry.multiple.shape" -msgstr "formas" - -msgid "workspace.undo.entry.multiple.text" -msgstr "textos" - -msgid "workspace.undo.entry.multiple.typography" -msgstr "recursos tipográficos" - -#: src/app/main/ui/workspace/sidebar/history.cljs -msgid "workspace.undo.entry.new" -msgstr "Novo %s" - -msgid "workspace.undo.entry.single.circle" -msgstr "círculo" - -msgid "workspace.undo.entry.single.color" -msgstr "recurso de cor" - -msgid "workspace.undo.entry.single.component" -msgstr "componente" - -msgid "workspace.undo.entry.single.curve" -msgstr "curva" - -msgid "workspace.undo.entry.single.frame" -msgstr "prancheta" - -msgid "workspace.undo.entry.single.group" -msgstr "grupo" - -msgid "workspace.undo.entry.single.image" -msgstr "imagem" - -msgid "workspace.undo.entry.single.media" -msgstr "recurso gráfico" - -msgid "workspace.undo.entry.single.multiple" -msgstr "objecto" - -msgid "workspace.undo.entry.single.page" -msgstr "página" - -msgid "workspace.undo.entry.single.path" -msgstr "caminho" - -msgid "workspace.undo.entry.single.rect" -msgstr "rectângulo" - -msgid "workspace.undo.entry.single.shape" -msgstr "forma" - -msgid "workspace.undo.entry.single.text" -msgstr "texto" - -msgid "workspace.undo.entry.single.typography" -msgstr "recurso tipográfico" - -#: src/app/main/ui/workspace/sidebar/history.cljs -msgid "workspace.undo.entry.unknown" -msgstr "Operação sobre %s" - -#: src/app/main/ui/workspace/sidebar/history.cljs -msgid "workspace.undo.title" -msgstr "Histórico" - -#: src/app/main/data/workspace/libraries.cljs -msgid "workspace.updates.dismiss" -msgstr "Ignorar" - -#: src/app/main/data/workspace/libraries.cljs -msgid "workspace.updates.more-info" -msgstr "Mais informações" - -#: src/app/main/data/workspace/libraries.cljs -msgid "workspace.updates.there-are-updates" -msgstr "Existem atualizações nas bibliotecas partilhadas" - -#: src/app/main/data/workspace/libraries.cljs -msgid "workspace.updates.update" -msgstr "Atualizar" - -msgid "workspace.viewport.click-to-close-path" -msgstr "Clica para fechar o caminho" - -#: src/app/main/ui/auth/login.cljs -msgid "auth.login-account-title" -msgstr "Entrar na minha conta" - -#: src/app/main/data/users.cljs -msgid "errors.email-domain-not-allowed" -msgstr "Domínio não permitido" - -msgid "media.image.short" -msgstr "img" - -msgid "modals.move-shared-confirm.title" -msgid_plural "modals.move-shared-confirm.title" -msgstr[0] "Mover biblioteca" -msgstr[1] "Mover bibliotecas" - -msgid "onboarding.team-modal.team-definition" -msgstr "O que é uma equipa?" - -#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs -msgid "settings.select-this-color" -msgstr "Selecionar itens que usem este estilo" - -#: src/app/main/ui/workspace/sidebar/assets/common.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:221 msgid "workspace.assets.sidebar.components" msgid_plural "workspace.assets.sidebar.components" msgstr[0] "1 componente" msgstr[1] "%s componentes" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets.cljs:193 msgid "workspace.assets.sort" msgstr "Ordenar" +#: src/app/main/ui/dashboard/grid.cljs:134, src/app/main/ui/dashboard/grid.cljs:189, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:397, src/app/main/ui/workspace/sidebar/assets.cljs:155 +msgid "workspace.assets.typography" +msgstr "Tipografias" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused +msgid "workspace.assets.typography.font-id" +msgstr "Fonte" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:505 +msgid "workspace.assets.typography.font-size" +msgstr "Tamanho" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:501 +msgid "workspace.assets.typography.font-variant-id" +msgstr "Variante" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:523 +msgid "workspace.assets.typography.go-to-edit" +msgstr "Ir para ficheiro da biblioteca de estilos para editar" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:513 +msgid "workspace.assets.typography.letter-spacing" +msgstr "Espaço entre letras" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:509 +msgid "workspace.assets.typography.line-height" +msgstr "Altura da Linha" + +#: src/app/main/ui/dashboard/grid.cljs:199, src/app/main/ui/workspace/libraries.cljs:461, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:464, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:489, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:596, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:615 +msgid "workspace.assets.typography.sample" +msgstr "Ag" + +#, unused +msgid "workspace.assets.typography.text-styles" +msgstr "Estilos de texto" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:517 +msgid "workspace.assets.typography.text-transform" +msgstr "Transformar Texto" + +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:66 +msgid "workspace.assets.ungroup" +msgstr "Desagrupar" + +#: src/app/main/ui/workspace/context_menu.cljs:634 +msgid "workspace.context-menu.grid-cells.area" +msgstr "Criar área" + +#: src/app/main/ui/workspace/context_menu.cljs:637 +msgid "workspace.context-menu.grid-cells.create-board" +msgstr "Criar prancheta" + +#: src/app/main/ui/workspace/context_menu.cljs:629 +msgid "workspace.context-menu.grid-cells.merge" +msgstr "Unir células" + +#: src/app/main/ui/workspace/context_menu.cljs:594 +msgid "workspace.context-menu.grid-track.column.add-after" +msgstr "Adicionar 1 coluna à direita" + +#: src/app/main/ui/workspace/context_menu.cljs:593 +msgid "workspace.context-menu.grid-track.column.add-before" +msgstr "Adicionar 1 coluna à esquerda" + +#: src/app/main/ui/workspace/context_menu.cljs:595 +msgid "workspace.context-menu.grid-track.column.delete" +msgstr "Eliminar coluna" + +#: src/app/main/ui/workspace/context_menu.cljs:596 +msgid "workspace.context-menu.grid-track.column.delete-shapes" +msgstr "Apagar coluna e conteúdos" + +#: src/app/main/ui/workspace/context_menu.cljs:592 +msgid "workspace.context-menu.grid-track.column.duplicate" +msgstr "Duplicar coluna" + +#: src/app/main/ui/workspace/context_menu.cljs:601 +msgid "workspace.context-menu.grid-track.row.add-after" +msgstr "Adicionar 1 fila abaixo" + +#: src/app/main/ui/workspace/context_menu.cljs:600 +msgid "workspace.context-menu.grid-track.row.add-before" +msgstr "Adicionar 1 fila acima" + +#: src/app/main/ui/workspace/context_menu.cljs:602 +msgid "workspace.context-menu.grid-track.row.delete" +msgstr "Apagar fila" + +#: src/app/main/ui/workspace/context_menu.cljs:603 +msgid "workspace.context-menu.grid-track.row.delete-shapes" +msgstr "Apagar fila e conteúdos" + +#: src/app/main/ui/workspace/context_menu.cljs:599 +msgid "workspace.context-menu.grid-track.row.duplicate" +msgstr "Duplicar fila" + +#: src/app/main/ui/workspace/sidebar/layers.cljs:525 +msgid "workspace.focus.focus-mode" +msgstr "Modo de foco" + +#: src/app/main/ui/workspace/context_menu.cljs:287, src/app/main/ui/workspace/context_menu.cljs:553 +msgid "workspace.focus.focus-off" +msgstr "Foco desativado" + +#: src/app/main/ui/workspace/context_menu.cljs:286 +msgid "workspace.focus.focus-on" +msgstr "Foco ativo" + +#, unused +msgid "workspace.focus.selection" +msgstr "Seleção" + +#: src/app/util/color.cljs:34 +msgid "workspace.gradients.linear" +msgstr "Gradiente linear" + +#: src/app/util/color.cljs:35 +msgid "workspace.gradients.radial" +msgstr "Gradiente radial" + +#: src/app/main/ui/workspace/main_menu.cljs:238 +msgid "workspace.header.menu.disable-dynamic-alignment" +msgstr "Desativar alinhamento dinâmico" + +#: src/app/main/ui/workspace/main_menu.cljs:192 +msgid "workspace.header.menu.disable-scale-content" +msgstr "Desativar escala proporcional" + +#: src/app/main/ui/workspace/header.cljs +#, unused +msgid "workspace.header.menu.disable-scale-text" +msgstr "Desativar escala de texto" + +#: src/app/main/ui/workspace/main_menu.cljs:223 +msgid "workspace.header.menu.disable-snap-guides" +msgstr "Desativar ajuste às guias" + +#: src/app/main/ui/workspace/main_menu.cljs:253 +msgid "workspace.header.menu.disable-snap-pixel-grid" +msgstr "Desativar ajuste ao pixel" + +#: src/app/main/ui/workspace/main_menu.cljs:239 +msgid "workspace.header.menu.enable-dynamic-alignment" +msgstr "Ativar alinhamento dinâmico" + +#: src/app/main/ui/workspace/main_menu.cljs:193 +msgid "workspace.header.menu.enable-scale-content" +msgstr "Ativar escala proporcional" + +#: src/app/main/ui/workspace/header.cljs +#, unused +msgid "workspace.header.menu.enable-scale-text" +msgstr "Ativar escalar texto" + +#: src/app/main/ui/workspace/main_menu.cljs:224 +msgid "workspace.header.menu.enable-snap-guides" +msgstr "Ajustar às guias" + +#: src/app/main/ui/workspace/main_menu.cljs:254 +msgid "workspace.header.menu.enable-snap-pixel-grid" +msgstr "Ativar ajuste ao pixel" + +#: src/app/main/ui/workspace/main_menu.cljs:382 +msgid "workspace.header.menu.hide-artboard-names" +msgstr "Ocultar nome das pranchetas" + +#: src/app/main/ui/workspace/main_menu.cljs:353 +msgid "workspace.header.menu.hide-palette" +msgstr "Ocultar paleta de cor" + +#: src/app/main/ui/workspace/main_menu.cljs:394 +msgid "workspace.header.menu.hide-pixel-grid" +msgstr "Ocultar grade de píxeis" + +#: src/app/main/ui/workspace/main_menu.cljs:320 +msgid "workspace.header.menu.hide-rules" +msgstr "Ocultar réguas" + +#: src/app/main/ui/workspace/main_menu.cljs:367 +msgid "workspace.header.menu.hide-textpalette" +msgstr "Ocultar paleta de texto" + +#: src/app/main/ui/workspace/main_menu.cljs:731 +msgid "workspace.header.menu.option.edit" +msgstr "Editar" + +#: src/app/main/ui/workspace/main_menu.cljs:720 +msgid "workspace.header.menu.option.file" +msgstr "Ficheiro" + +#: src/app/main/ui/workspace/main_menu.cljs:777 +msgid "workspace.header.menu.option.help-info" +msgstr "Ajuda e Informações" + +#: src/app/main/ui/workspace/main_menu.cljs:753 +msgid "workspace.header.menu.option.preferences" +msgstr "Preferências" + +#: src/app/main/ui/workspace/main_menu.cljs:742 +msgid "workspace.header.menu.option.view" +msgstr "Visualização" + +#: src/app/main/ui/workspace/main_menu.cljs:459 +msgid "workspace.header.menu.redo" +msgstr "Refazer" + +#: src/app/main/ui/workspace/main_menu.cljs:432 +msgid "workspace.header.menu.select-all" +msgstr "Selecionar tudo" + +#: src/app/main/ui/workspace/main_menu.cljs:383 +msgid "workspace.header.menu.show-artboard-names" +msgstr "Mostrar nomes das pranchetas" + +#: src/app/main/ui/workspace/main_menu.cljs:354 +msgid "workspace.header.menu.show-palette" +msgstr "Mostrar paleta de cor" + +#: src/app/main/ui/workspace/main_menu.cljs:395 +msgid "workspace.header.menu.show-pixel-grid" +msgstr "Mostrar grade de píxeis" + +#: src/app/main/ui/workspace/main_menu.cljs:321 +msgid "workspace.header.menu.show-rules" +msgstr "Mostrar réguas" + +#: src/app/main/ui/workspace/main_menu.cljs:368 +msgid "workspace.header.menu.show-textpalette" +msgstr "Mostrar paleta de texto" + +#: src/app/main/ui/workspace/main_menu.cljs:279 +msgid "workspace.header.menu.toggle-dark-theme" +msgstr "Alterar para tema escuro" + +#: src/app/main/ui/workspace/main_menu.cljs:278 +msgid "workspace.header.menu.toggle-light-theme" +msgstr "Mudar para tema claro" + +#: src/app/main/ui/workspace/main_menu.cljs:446 +msgid "workspace.header.menu.undo" +msgstr "Desfazer" + +#: src/app/main/ui/viewer/header.cljs:98, src/app/main/ui/workspace/right_header.cljs:120 +msgid "workspace.header.reset-zoom" +msgstr "Ampliar em 100%" + +#: src/app/main/ui/workspace/header.cljs +#, unused +msgid "workspace.header.save-error" +msgstr "Erro ao salvar" + +#: src/app/main/ui/workspace/right_header.cljs:52 +msgid "workspace.header.saved" +msgstr "Guardado" + +#: src/app/main/ui/workspace/header.cljs +#, unused +msgid "workspace.header.saving" +msgstr "A salvar" + +#: src/app/main/ui/workspace/right_header.cljs:42, src/app/main/ui/workspace/right_header.cljs:47 +msgid "workspace.header.unsaved" +msgstr "Alterações não guardadas" + +#: src/app/main/ui/workspace/right_header.cljs:239 +msgid "workspace.header.viewer" +msgstr "Modo de visualização (%s)" + +#: src/app/main/ui/viewer/header.cljs:79, src/app/main/ui/workspace/right_header.cljs:103 +msgid "workspace.header.zoom" +msgstr "Zoom" + +#: src/app/main/ui/viewer/header.cljs:109 +msgid "workspace.header.zoom-fill" +msgstr "Ajustar para preencher" + +#: src/app/main/ui/viewer/header.cljs:102 +msgid "workspace.header.zoom-fit" +msgstr "Ajustar para encaixar" + +#: src/app/main/ui/workspace/right_header.cljs:123 +msgid "workspace.header.zoom-fit-all" +msgstr "Ajustar para mostrar tudo" + +#: src/app/main/ui/viewer/header.cljs:116 +msgid "workspace.header.zoom-full-screen" +msgstr "Tela cheia" + +#: src/app/main/ui/workspace/right_header.cljs:130 +msgid "workspace.header.zoom-selected" +msgstr "Aumentar para seleção" + +#: src/app/main/ui/workspace/sidebar/options/menus/grid_cell.cljs:273, src/app/main/ui/workspace/sidebar/options/menus/grid_cell.cljs:275, src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:612 +msgid "workspace.layout_grid.editor.options.edit-grid" +msgstr "Editar grelha" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:1280 +msgid "workspace.layout_grid.editor.options.exit" +msgstr "Sair" + +#: src/app/main/ui/workspace/viewport/grid_layout_editor.cljs:59 +msgid "workspace.layout_grid.editor.title" +msgstr "A editar grelha" + +#: src/app/main/ui/workspace/viewport/grid_layout_editor.cljs:65 +msgid "workspace.layout_grid.editor.top-bar.done" +msgstr "Feito" + +#: src/app/main/ui/workspace/viewport/grid_layout_editor.cljs:62 +msgid "workspace.layout_grid.editor.top-bar.locate" +msgstr "Localizar" + +#: src/app/main/ui/workspace/libraries.cljs +#, unused +msgid "workspace.libraries.add" +msgstr "Adicionar" + +#: src/app/main/ui/workspace/libraries.cljs:80, src/app/main/ui/workspace/libraries.cljs:99 +msgid "workspace.libraries.colors" +msgstr "%s cores" + +#: src/app/main/ui/workspace/color_palette.cljs:126 +msgid "workspace.libraries.colors.empty-palette" +msgstr "Ainda não existem estilos de cor na tua biblioteca" + +#: src/app/main/ui/workspace/text_palette.cljs:150 +msgid "workspace.libraries.colors.empty-typography-palette" +msgstr "Ainda não existem tipografias na tua biblioteca" + +#: src/app/main/ui/workspace/color_palette_ctx_menu.cljs:60, src/app/main/ui/workspace/colorpicker/libraries.cljs:73, src/app/main/ui/workspace/text_palette_ctx_menu.cljs:50 +msgid "workspace.libraries.colors.file-library" +msgstr "Biblioteca de ficheiros" + +#: src/app/main/ui/workspace/colorpicker.cljs +#, unused +msgid "workspace.libraries.colors.hsv" +msgstr "HSV" + +#: src/app/main/ui/workspace/color_palette_ctx_menu.cljs:82, src/app/main/ui/workspace/colorpicker/libraries.cljs:72 +msgid "workspace.libraries.colors.recent-colors" +msgstr "Cores recentes" + +#: src/app/main/ui/workspace/colorpicker.cljs +#, unused +msgid "workspace.libraries.colors.rgb-complementary" +msgstr "RGB Complementar" + +#: src/app/main/ui/workspace/colorpicker.cljs +#, unused +msgid "workspace.libraries.colors.rgba" +msgstr "RGBA" + +#: src/app/main/ui/workspace/colorpicker.cljs:372 +msgid "workspace.libraries.colors.save-color" +msgstr "Guardar estilo de cor" + +#: src/app/main/ui/workspace/libraries.cljs:74, src/app/main/ui/workspace/libraries.cljs:91 +msgid "workspace.libraries.components" +msgstr "%s componentes" + +#: src/app/main/ui/workspace/libraries.cljs:215 +msgid "workspace.libraries.file-library" +msgstr "Biblioteca de ficheiros" + +#: src/app/main/ui/workspace/libraries.cljs:77, src/app/main/ui/workspace/libraries.cljs:95 +msgid "workspace.libraries.graphics" +msgstr "%s gráficos" + +#: src/app/main/ui/workspace/libraries.cljs:209 +msgid "workspace.libraries.in-this-file" +msgstr "BIBLIOTECAS NESTE FICHEIRO" + +#: src/app/main/ui/workspace/libraries.cljs:526, src/app/main/ui/workspace/libraries.cljs:531 +msgid "workspace.libraries.libraries" +msgstr "BIBLIOTECAS" + +#: src/app/main/ui/workspace/libraries.cljs +#, unused +msgid "workspace.libraries.library" +msgstr "BIBLIOTECA" + +#: src/app/main/ui/workspace/libraries.cljs:382 +msgid "workspace.libraries.library-updates" +msgstr "ATUALIZAÇÕES DE BIBLIOTECAS" + +#: src/app/main/ui/workspace/libraries.cljs:290 +msgid "workspace.libraries.loading" +msgstr "A carregar…" + +#: src/app/main/ui/workspace/libraries.cljs:380 +msgid "workspace.libraries.no-libraries-need-sync" +msgstr "Não há bibliotecas partilhadas que precisem de atualização" + +#: src/app/main/ui/workspace/libraries.cljs:299 +msgid "workspace.libraries.no-matches-for" +msgstr "Não há resultados para \"%s\"" + +#: src/app/main/ui/workspace/libraries.cljs:296 +msgid "workspace.libraries.no-shared-libraries-available" +msgstr "Não há bibliotecas partilhadas disponíveis" + +#: src/app/main/ui/workspace/libraries.cljs:260 +msgid "workspace.libraries.search-shared-libraries" +msgstr "Pesquisar bibliotecas partilhadas" + +#: src/app/main/ui/workspace/libraries.cljs:256 +msgid "workspace.libraries.shared-libraries" +msgstr "BIBLIOTECAS PARTILHADAS" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:308 +msgid "workspace.libraries.text.multiple-typography" +msgstr "Múltiplas tipografias" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:311 +msgid "workspace.libraries.text.multiple-typography-tooltip" +msgstr "Desassociar todas as tipografias" + +#: src/app/main/ui/workspace/libraries.cljs:83, src/app/main/ui/workspace/libraries.cljs:103 +msgid "workspace.libraries.typography" +msgstr "%s tipografias" + +#: src/app/main/ui/workspace/libraries.cljs:402 +msgid "workspace.libraries.update" +msgstr "Atualizar" + +#: src/app/main/ui/workspace/libraries.cljs:477 +msgid "workspace.libraries.update.see-all-changes" +msgstr "ver todas as alterações" + +#: src/app/main/ui/workspace/libraries.cljs:536 +msgid "workspace.libraries.updates" +msgstr "ATUALIZAÇÕES" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:737 +msgid "workspace.options.add-interaction" +msgstr "Clica no botão + para adicionar interações." + +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:86, src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:102 +msgid "workspace.options.blur-options.title" +msgstr "Desfoque" + +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:85 +msgid "workspace.options.blur-options.title.group" +msgstr "Desfoque de grupo" + +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:84 +msgid "workspace.options.blur-options.title.multiple" +msgstr "Desfoque de seleção" + +#: src/app/main/ui/workspace/sidebar/options/page.cljs:32, src/app/main/ui/workspace/sidebar/options/page.cljs:39 +msgid "workspace.options.canvas-background" +msgstr "Plano de fundo" + +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:548 +msgid "workspace.options.clip-content" +msgstr "Recorte do conteúdo" + +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:600, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:605 +msgid "workspace.options.component" +msgstr "Componente" + +#: src/app/main/ui/viewer/inspect/annotation.cljs:19, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:181 +msgid "workspace.options.component.annotation" +msgstr "Nota" + +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:610 +msgid "workspace.options.component.copy" +msgstr "Cópia" + +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:173 +msgid "workspace.options.component.create-annotation" +msgstr "Criar uma nota" + +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:172 +msgid "workspace.options.component.edit-annotation" +msgstr "Editar uma nota" + +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:609 +msgid "workspace.options.component.main" +msgstr "Principal" + +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:427 +msgid "workspace.options.component.swap" +msgstr "Trocar de componente" + +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:471 +msgid "workspace.options.component.swap.empty" +msgstr "Ainda não existem recursos nesta biblioteca" + +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:163 +msgid "workspace.options.constraints" +msgstr "Restrições" + +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:150 +msgid "workspace.options.constraints.bottom" +msgstr "Abaixo" + +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:141, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:152 +msgid "workspace.options.constraints.center" +msgstr "Centro" + +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:229 +msgid "workspace.options.constraints.fix-when-scrolling" +msgstr "Fixar no scroll" + +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:138 +msgid "workspace.options.constraints.left" +msgstr "Esquerda" + +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:140 +msgid "workspace.options.constraints.leftright" +msgstr "Esquerda e Direita" + +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:139 +msgid "workspace.options.constraints.right" +msgstr "Direita" + +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:142, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:153 +msgid "workspace.options.constraints.scale" +msgstr "Escala" + +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:149 +msgid "workspace.options.constraints.top" +msgstr "Topo" + +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:151 +msgid "workspace.options.constraints.topbottom" +msgstr "Topo e Abaixo" + +#: src/app/main/ui/workspace/sidebar/options.cljs:112 +msgid "workspace.options.design" +msgstr "Design" + +#: src/app/main/ui/viewer/inspect/exports.cljs:139 +msgid "workspace.options.export" +msgstr "Exportar" + +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs +#, unused +msgid "workspace.options.export-multiple" +msgstr "Exportar seleção" + +#: src/app/main/ui/viewer/inspect/exports.cljs:195, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:237 +msgid "workspace.options.export-object" +msgid_plural "workspace.options.export-object" +msgstr[0] "Exportar 1 elemento" +msgstr[1] "Exportar %s elementos" + +#: src/app/main/ui/viewer/inspect/exports.cljs:178, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:219 +msgid "workspace.options.export.suffix" +msgstr "Sufixo" + +#: src/app/main/ui/export.cljs:240 +msgid "workspace.options.exporting-complete" +msgstr "Exportação completa" + +#: src/app/main/ui/export.cljs:172, src/app/main/ui/export.cljs:241, src/app/main/ui/viewer/inspect/exports.cljs:194, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:236 +msgid "workspace.options.exporting-object" +msgstr "A exportar…" + +#: src/app/main/ui/export.cljs:239 +msgid "workspace.options.exporting-object-error" +msgstr "A exportação falhou" + +#: src/app/main/ui/export.cljs:242 +msgid "workspace.options.exporting-object-slow" +msgstr "Exportação inesperadamente lenta" + +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:49, src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:174 +msgid "workspace.options.fill" +msgstr "Preenchimento" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:178 +msgid "workspace.options.flows.add-flow-start" +msgstr "Adicionar início de fluxo" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:174 +msgid "workspace.options.flows.flow" +msgstr "Fluxo" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#, unused +msgid "workspace.options.flows.flow-start" +msgstr "Início de fluxo" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:161 +msgid "workspace.options.flows.flow-starts" +msgstr "Início de fluxo" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:29 +msgid "workspace.options.grid.auto" +msgstr "Automático" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:157 +msgid "workspace.options.grid.column" +msgstr "Colunas" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused +msgid "workspace.options.grid.grid-title" +msgstr "Grade" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:196, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:237 +msgid "workspace.options.grid.params.color" +msgstr "Cor" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused +msgid "workspace.options.grid.params.columns" +msgstr "Colunas" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:259 +msgid "workspace.options.grid.params.gutter" +msgstr "Espaço" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:246 +msgid "workspace.options.grid.params.height" +msgstr "Altura" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:270 +msgid "workspace.options.grid.params.margin" +msgstr "Margem" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused +msgid "workspace.options.grid.params.rows" +msgstr "Linhas" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:216, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:290 +msgid "workspace.options.grid.params.set-default" +msgstr "Definir como padrão" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused +msgid "workspace.options.grid.params.size" +msgstr "Tamanho" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused +msgid "workspace.options.grid.params.type" +msgstr "Tipo" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:231 +msgid "workspace.options.grid.params.type.bottom" +msgstr "Abaixo" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:229 +msgid "workspace.options.grid.params.type.center" +msgstr "Centro" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:228 +msgid "workspace.options.grid.params.type.left" +msgstr "Esquerda" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:232 +msgid "workspace.options.grid.params.type.right" +msgstr "Direita" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:225 +msgid "workspace.options.grid.params.type.stretch" +msgstr "Esticar" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:227 +msgid "workspace.options.grid.params.type.top" +msgstr "Topo" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:211, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:288 +msgid "workspace.options.grid.params.use-default" +msgstr "Utilizar padrão" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:247 +msgid "workspace.options.grid.params.width" +msgstr "Largura" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:158 +msgid "workspace.options.grid.row" +msgstr "Linhas" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:156 +msgid "workspace.options.grid.square" +msgstr "Quadrado" + +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:48 +msgid "workspace.options.group-fill" +msgstr "Preenchimento de grupo" + +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:42 +msgid "workspace.options.group-stroke" +msgstr "Traço de grupo" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:310 +msgid "workspace.options.guides.title" +msgstr "Guias" + +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:406 +msgid "workspace.options.height" +msgstr "Altura" + +#: src/app/main/ui/workspace/sidebar/options.cljs:161 +msgid "workspace.options.inspect" +msgstr "Inspecionar" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:468 +msgid "workspace.options.interaction-action" +msgstr "Ação" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:41, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:367 +msgid "workspace.options.interaction-after-delay" +msgstr "Após atraso" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:614 +msgid "workspace.options.interaction-animation" +msgstr "Animação" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:406 +msgid "workspace.options.interaction-animation-dissolve" +msgstr "Dissolver" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:405 +msgid "workspace.options.interaction-animation-none" +msgstr "Nenhum" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:412 +msgid "workspace.options.interaction-animation-push" +msgstr "Empurrar" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:407 +msgid "workspace.options.interaction-animation-slide" +msgstr "Deslizar" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:391 +msgid "workspace.options.interaction-auto" +msgstr "Automático" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:604 +msgid "workspace.options.interaction-background" +msgstr "Adicionar sobreposição de fundo" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:590 +msgid "workspace.options.interaction-close-outside" +msgstr "Fechar ao clicar no exterior" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:372 +msgid "workspace.options.interaction-close-overlay" +msgstr "Fechar sobreposição" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:56 +msgid "workspace.options.interaction-close-overlay-dest" +msgstr "Fechar sobreposição: %s" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:456 +msgid "workspace.options.interaction-delay" +msgstr "Atraso" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:478 +msgid "workspace.options.interaction-destination" +msgstr "Destino" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:661 +msgid "workspace.options.interaction-duration" +msgstr "Duração" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:674 +msgid "workspace.options.interaction-easing" +msgstr "Easing" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:416 +msgid "workspace.options.interaction-easing-ease" +msgstr "Ease" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:417 +msgid "workspace.options.interaction-easing-ease-in" +msgstr "Ease in" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:419 +msgid "workspace.options.interaction-easing-ease-in-out" +msgstr "Ease in out" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:418 +msgid "workspace.options.interaction-easing-ease-out" +msgstr "Ease out" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:415 +msgid "workspace.options.interaction-easing-linear" +msgstr "Linear" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#, unused +msgid "workspace.options.interaction-in" +msgstr "Dentro" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:39, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:364 +msgid "workspace.options.interaction-mouse-enter" +msgstr "Cursor entra" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:40, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:365 +msgid "workspace.options.interaction-mouse-leave" +msgstr "Cursor sai" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:458, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:459, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:464, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:663, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:665, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:669 +msgid "workspace.options.interaction-ms" +msgstr "ms" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:369 +msgid "workspace.options.interaction-navigate-to" +msgstr "Navegar para" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:50 +msgid "workspace.options.interaction-navigate-to-dest" +msgstr "Navegar para: %s" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:51, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:53, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:55, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:380 +msgid "workspace.options.interaction-none" +msgstr "(indefinido)" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:691 +msgid "workspace.options.interaction-offset-effect" +msgstr "Efeito Offset" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:35, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:360 +msgid "workspace.options.interaction-on-click" +msgstr "No Clique" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:370 +msgid "workspace.options.interaction-open-overlay" +msgstr "Abrir sobreposição" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:52 +msgid "workspace.options.interaction-open-overlay-dest" +msgstr "Abrir sobreposição: %s" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:59, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:374 +msgid "workspace.options.interaction-open-url" +msgstr "Abrir url" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#, unused +msgid "workspace.options.interaction-out" +msgstr "Fora" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:403 +msgid "workspace.options.interaction-pos-bottom-center" +msgstr "Inferior centro" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:401 +msgid "workspace.options.interaction-pos-bottom-left" +msgstr "Inferior esquerdo" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:402 +msgid "workspace.options.interaction-pos-bottom-right" +msgstr "Inferior direito" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:397 +msgid "workspace.options.interaction-pos-center" +msgstr "Centro" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:396 +msgid "workspace.options.interaction-pos-manual" +msgstr "Manual" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:400 +msgid "workspace.options.interaction-pos-top-center" +msgstr "Superior centro" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:398 +msgid "workspace.options.interaction-pos-top-left" +msgstr "Superior esquerdo" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:399 +msgid "workspace.options.interaction-pos-top-right" +msgstr "Superior direito" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:524 +msgid "workspace.options.interaction-position" +msgstr "Posição" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:494 +msgid "workspace.options.interaction-preserve-scroll" +msgstr "Preservar posição do scroll" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:58, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:373 +msgid "workspace.options.interaction-prev-screen" +msgstr "Ecrã anterior" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:515 +msgid "workspace.options.interaction-relative-to" +msgstr "Relativa a" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:57, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:379, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:393, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:394 +msgid "workspace.options.interaction-self" +msgstr "auto" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:371 +msgid "workspace.options.interaction-toggle-overlay" +msgstr "Alternar a sobreposição" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:54 +msgid "workspace.options.interaction-toggle-overlay-dest" +msgstr "Alternar a sobreposição: %s" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:445 +msgid "workspace.options.interaction-trigger" +msgstr "Ativador" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:503 +msgid "workspace.options.interaction-url" +msgstr "URL" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:37, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:362 +msgid "workspace.options.interaction-while-hovering" +msgstr "Durante o hover" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:38, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:363 +msgid "workspace.options.interaction-while-pressing" +msgstr "Durante a premir" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:724 +msgid "workspace.options.interactions" +msgstr "Interações" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:137 +msgid "workspace.options.layer-options.blend-mode.color" +msgstr "Cor" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:126 +msgid "workspace.options.layer-options.blend-mode.color-burn" +msgstr "Superexposição de cor" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:129 +msgid "workspace.options.layer-options.blend-mode.color-dodge" +msgstr "Subexposição Linear (Adicionar)" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:124 +msgid "workspace.options.layer-options.blend-mode.darken" +msgstr "Escurecer" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:133 +msgid "workspace.options.layer-options.blend-mode.difference" +msgstr "Diferença" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:134 +msgid "workspace.options.layer-options.blend-mode.exclusion" +msgstr "Exclusão" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:132 +msgid "workspace.options.layer-options.blend-mode.hard-light" +msgstr "Luz direta" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:135 +msgid "workspace.options.layer-options.blend-mode.hue" +msgstr "Matiz" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:127 +msgid "workspace.options.layer-options.blend-mode.lighten" +msgstr "Clarear" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:138 +msgid "workspace.options.layer-options.blend-mode.luminosity" +msgstr "Luminosidade" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:125 +msgid "workspace.options.layer-options.blend-mode.multiply" +msgstr "Multiplicação" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:123 +msgid "workspace.options.layer-options.blend-mode.normal" +msgstr "Normal" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:130 +msgid "workspace.options.layer-options.blend-mode.overlay" +msgstr "Sobrepor" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:136 +msgid "workspace.options.layer-options.blend-mode.saturation" +msgstr "Saturação" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:128 +msgid "workspace.options.layer-options.blend-mode.screen" +msgstr "Tela" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:131 +msgid "workspace.options.layer-options.blend-mode.soft-light" +msgstr "Luz indireta" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#, unused +msgid "workspace.options.layer-options.title" +msgstr "Camada" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#, unused +msgid "workspace.options.layer-options.title.group" +msgstr "Grupo de camadas" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#, unused +msgid "workspace.options.layer-options.title.multiple" +msgstr "Camadas selecionadas" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused +msgid "workspace.options.layout-item.advanced-ops" +msgstr "Opções avançadas" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:564 +msgid "workspace.options.layout-item.layout-item-max-h" +msgstr "Altura.Máx" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:531 +msgid "workspace.options.layout-item.layout-item-max-w" +msgstr "Largura.Máx" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:548 +msgid "workspace.options.layout-item.layout-item-min-h" +msgstr "Altura.Min" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:515 +msgid "workspace.options.layout-item.layout-item-min-w" +msgstr "Largura.Min" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused +msgid "workspace.options.layout-item.title.layout-item-max-h" +msgstr "Altura máxima" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused +msgid "workspace.options.layout-item.title.layout-item-max-w" +msgstr "Largura máxima" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused +msgid "workspace.options.layout-item.title.layout-item-min-h" +msgstr "Altura mínima" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused +msgid "workspace.options.layout-item.title.layout-item-min-w" +msgstr "Largura mínima" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused +msgid "workspace.options.layout.bottom" +msgstr "Abaixo" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused +msgid "workspace.options.layout.direction.column" +msgstr "Coluna" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused +msgid "workspace.options.layout.direction.column-reverse" +msgstr "Coluna invertida" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused +msgid "workspace.options.layout.direction.row" +msgstr "Linha" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused +msgid "workspace.options.layout.direction.row-reverse" +msgstr "Linha invertida" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused +msgid "workspace.options.layout.gap" +msgstr "Espaço" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused +msgid "workspace.options.layout.left" +msgstr "Esquerda" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused +msgid "workspace.options.layout.margin" +msgstr "Margem" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused +msgid "workspace.options.layout.margin-all" +msgstr "Todos os lados" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused +msgid "workspace.options.layout.margin-simple" +msgstr "Margem simples" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused +msgid "workspace.options.layout.packed" +msgstr "juntos" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused +msgid "workspace.options.layout.padding" +msgstr "Distância interna" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused +msgid "workspace.options.layout.padding-all" +msgstr "Todos os lados" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused +msgid "workspace.options.layout.padding-simple" +msgstr "Padding simples" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused +msgid "workspace.options.layout.right" +msgstr "Direita" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused +msgid "workspace.options.layout.space-around" +msgstr "espaço à volta" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused +msgid "workspace.options.layout.space-between" +msgstr "espaço entre" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused +msgid "workspace.options.layout.top" +msgstr "Topo" + +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:146 +msgid "workspace.options.more-colors" +msgstr "Mais cores" + +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:123 +msgid "workspace.options.more-lib-colors" +msgstr "Mais bibliotecas de cor" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:161 +msgid "workspace.options.opacity" +msgstr "Opacidade" + +#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#, unused +msgid "workspace.options.position" +msgstr "Posição" + +#: src/app/main/ui/workspace/sidebar/options.cljs:157 +msgid "workspace.options.prototype" +msgstr "Protótipo" + +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:469, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:481 +msgid "workspace.options.radius" +msgstr "Raio" + +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:513 +msgid "workspace.options.radius-bottom-left" +msgstr "Inferior esquerdo" + +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:522 +msgid "workspace.options.radius-bottom-right" +msgstr "Inferior direito" + +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:495 +msgid "workspace.options.radius-top-left" +msgstr "Superior esquerdo" + +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:504 +msgid "workspace.options.radius-top-right" +msgstr "Superior direito" + +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:532 +msgid "workspace.options.radius.all-corners" +msgstr "Todos os cantos" + +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:533 +msgid "workspace.options.radius.single-corners" +msgstr "Cantos individuais" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:183 +msgid "workspace.options.recent-fonts" +msgstr "Recente" + +#: src/app/main/ui/export.cljs:284 +msgid "workspace.options.retry" +msgstr "Repetir" + +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:451 +msgid "workspace.options.rotation" +msgstr "Rotação" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:180 +msgid "workspace.options.search-font" +msgstr "Pesquisar fonte" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:741 +msgid "workspace.options.select-a-shape" +msgstr "" +"Selecionar a forma, prancheta ou grupo para arrastar uma conexão para outra " +"prancheta." + +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:105 +msgid "workspace.options.selection-color" +msgstr "Cores selecionadas" + +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:47 +msgid "workspace.options.selection-fill" +msgstr "Preenchimento de seleção" + +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:41 +msgid "workspace.options.selection-stroke" +msgstr "Traço da seleção" + +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:40, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:198, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:200 +msgid "workspace.options.shadow-options.blur" +msgstr "Desfoque" + +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:238 +msgid "workspace.options.shadow-options.color" +msgstr "Cor da sombra" + +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:144 +msgid "workspace.options.shadow-options.drop-shadow" +msgstr "Sombra" + +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:145 +msgid "workspace.options.shadow-options.inner-shadow" +msgstr "Sombra interna" + +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:38, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:186 +msgid "workspace.options.shadow-options.offsetx" +msgstr "X" + +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:39, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:224 +msgid "workspace.options.shadow-options.offsety" +msgstr "Y" + +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:41, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:211, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:213 +msgid "workspace.options.shadow-options.spread" +msgstr "Difundir" + +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:296 +msgid "workspace.options.shadow-options.title" +msgstr "Sombra" + +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:295 +msgid "workspace.options.shadow-options.title.group" +msgstr "Grupo de sombras" + +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:294 +msgid "workspace.options.shadow-options.title.multiple" +msgstr "Seleção de sombras" + +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:193 +msgid "workspace.options.show-fill-on-export" +msgstr "Mostrar na exportação" + +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:562 +msgid "workspace.options.show-in-viewer" +msgstr "Mostrar no modo de visualização" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:162 +msgid "workspace.options.size" +msgstr "Tamanho" + +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:355 +msgid "workspace.options.size-presets" +msgstr "Tamanho pré-definido" + +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:43 +msgid "workspace.options.stroke" +msgstr "Traço" + +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#, unused +msgid "workspace.options.stroke-cap.circle-marker" +msgstr "Marcador circular" + +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:129 +msgid "workspace.options.stroke-cap.circle-marker-short" +msgstr "Círculo" + +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#, unused +msgid "workspace.options.stroke-cap.diamond-marker" +msgstr "Marcador em diamante" + +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:130 +msgid "workspace.options.stroke-cap.diamond-marker-short" +msgstr "Diamante" + +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#, unused +msgid "workspace.options.stroke-cap.line-arrow" +msgstr "Seta de linha" + +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:126 +msgid "workspace.options.stroke-cap.line-arrow-short" +msgstr "Seta" + +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:124 +msgid "workspace.options.stroke-cap.none" +msgstr "Nenhum" + +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:132 +msgid "workspace.options.stroke-cap.round" +msgstr "Arredondado" + +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:133 +msgid "workspace.options.stroke-cap.square" +msgstr "Quadrado" + +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#, unused +msgid "workspace.options.stroke-cap.square-marker" +msgstr "Marcador quadrado" + +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:128 +msgid "workspace.options.stroke-cap.square-marker-short" +msgstr "Retângulo" + +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#, unused +msgid "workspace.options.stroke-cap.triangle-arrow" +msgstr "Seta triangular" + +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:127 +msgid "workspace.options.stroke-cap.triangle-arrow-short" +msgstr "Triângulo" + +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:192 +msgid "workspace.options.stroke-color" +msgstr "Cor do traço" + +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:165 +msgid "workspace.options.stroke-width" +msgstr "Largura do traço" + +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:87 +msgid "workspace.options.stroke.center" +msgstr "Centro" + +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:105 +msgid "workspace.options.stroke.dashed" +msgstr "Tracejado" + +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:104 +msgid "workspace.options.stroke.dotted" +msgstr "Pontilhado" + +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:88 +msgid "workspace.options.stroke.inner" +msgstr "Interior" + +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:106 +msgid "workspace.options.stroke.mixed" +msgstr "Misto" + +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:89 +msgid "workspace.options.stroke.outer" +msgstr "Exterior" + +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:103 +msgid "workspace.options.stroke.solid" +msgstr "Sólido" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:115 +msgid "workspace.options.text-options.align-bottom" +msgstr "Alinhar abaixo" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:111 +msgid "workspace.options.text-options.align-middle" +msgstr "Alinhar ao meio" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:107 +msgid "workspace.options.text-options.align-top" +msgstr "Alinhar ao topo" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:82 +msgid "workspace.options.text-options.direction-ltr" +msgstr "LTR" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:87 +msgid "workspace.options.text-options.direction-rtl" +msgstr "RTL" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:149 +msgid "workspace.options.text-options.grow-auto-height" +msgstr "Altura automática" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:145 +msgid "workspace.options.text-options.grow-auto-width" +msgstr "Largura automática" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:141 +msgid "workspace.options.text-options.grow-fixed" +msgstr "Fixo" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:381 +msgid "workspace.options.text-options.letter-spacing" +msgstr "Espaço entre letras" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:364 +msgid "workspace.options.text-options.line-height" +msgstr "Altura entre linhas" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused +msgid "workspace.options.text-options.lowercase" +msgstr "Minúsculas" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused +msgid "workspace.options.text-options.none" +msgstr "Nenhum" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:176 +msgid "workspace.options.text-options.strikethrough" +msgstr "Rasurado (%s)" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:51 +msgid "workspace.options.text-options.text-align-center" +msgstr "Alinhar ao centro (%s)" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:59 +msgid "workspace.options.text-options.text-align-justify" +msgstr "Justificar (%s)" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:47 +msgid "workspace.options.text-options.text-align-left" +msgstr "Alinhar à esquerda (%s)" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:55 +msgid "workspace.options.text-options.text-align-right" +msgstr "Alinhar à direita (%s)" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:189 +msgid "workspace.options.text-options.title" +msgstr "Texto" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:188 +msgid "workspace.options.text-options.title-group" +msgstr "Grupo de texto" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:187 +msgid "workspace.options.text-options.title-selection" +msgstr "Texto selecionado" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused +msgid "workspace.options.text-options.titlecase" +msgstr "Capitalizar iniciais" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:171 +msgid "workspace.options.text-options.underline" +msgstr "Sublinhado (%s)" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused +msgid "workspace.options.text-options.uppercase" +msgstr "Maiúsculas" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:745 +msgid "workspace.options.use-play-button" +msgstr "" +"Utiliza o botão de play no cabeçalho para iniciar a visualização do " +"protótipo." + +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:395 +msgid "workspace.options.width" +msgstr "Largura" + +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:427 +msgid "workspace.options.x" +msgstr "Eixo X" + +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:438 +msgid "workspace.options.y" +msgstr "Y" + +#: src/app/main/ui/workspace/viewport/path_actions.cljs:167 +msgid "workspace.path.actions.add-node" +msgstr "Adicionar nó (%s)" + +#: src/app/main/ui/workspace/viewport/path_actions.cljs:174 +msgid "workspace.path.actions.delete-node" +msgstr "Eliminar nó (%s)" + +#: src/app/main/ui/workspace/viewport/path_actions.cljs:152 +msgid "workspace.path.actions.draw-nodes" +msgstr "Desenhar nós (%s)" + +#: src/app/main/ui/workspace/viewport/path_actions.cljs:189 +msgid "workspace.path.actions.join-nodes" +msgstr "Unir nós (%s)" + +#: src/app/main/ui/workspace/viewport/path_actions.cljs:204 +msgid "workspace.path.actions.make-corner" +msgstr "Em cantos (%s)" + +#: src/app/main/ui/workspace/viewport/path_actions.cljs:211 +msgid "workspace.path.actions.make-curve" +msgstr "Em curvas (%s)" + +#: src/app/main/ui/workspace/viewport/path_actions.cljs:182 +msgid "workspace.path.actions.merge-nodes" +msgstr "Fundir nós (%s)" + +#: src/app/main/ui/workspace/viewport/path_actions.cljs:159 +msgid "workspace.path.actions.move-nodes" +msgstr "Mover nós (%s)" + +#: src/app/main/ui/workspace/viewport/path_actions.cljs:196 +msgid "workspace.path.actions.separate-nodes" +msgstr "Separar nós (%s)" + +#: src/app/main/ui/workspace/viewport/path_actions.cljs:218 +msgid "workspace.path.actions.snap-nodes" +msgstr "Ajustar nós (%s)" + +#: src/app/main/ui/workspace/context_menu.cljs:441 +msgid "workspace.shape.menu.add-flex" +msgstr "Adicionar layout flex" + +#: src/app/main/ui/workspace/context_menu.cljs:445 +msgid "workspace.shape.menu.add-grid" +msgstr "Adicionar layout em grelha" + +#: src/app/main/ui/workspace/context_menu.cljs:193 +msgid "workspace.shape.menu.back" +msgstr "Enviar para trás" + +#: src/app/main/ui/workspace/context_menu.cljs:190 +msgid "workspace.shape.menu.backward" +msgstr "Mover para trás" + +#: src/app/main/ui/workspace/context_menu.cljs:139 +msgid "workspace.shape.menu.copy" +msgstr "Copiar" + +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:427 +msgid "workspace.shape.menu.create-annotation" +msgstr "Criar nota" + +#: src/app/main/ui/workspace/context_menu.cljs:275 +msgid "workspace.shape.menu.create-artboard-from-selection" +msgstr "Seleção para a prancheta" + +#: src/app/main/ui/workspace/context_menu.cljs:465 +msgid "workspace.shape.menu.create-component" +msgstr "Criar componente" + +#: src/app/main/ui/workspace/context_menu.cljs:469 +msgid "workspace.shape.menu.create-multiple-components" +msgstr "Criar múltiplos componentes" + +#: src/app/main/ui/workspace/context_menu.cljs:142 +msgid "workspace.shape.menu.cut" +msgstr "Recortar" + +#: src/app/main/ui/workspace/context_menu.cljs:486 +msgid "workspace.shape.menu.delete" +msgstr "Eliminar" + +#: src/app/main/ui/workspace/context_menu.cljs:391 +msgid "workspace.shape.menu.delete-flow-start" +msgstr "Eliminar início de fluxo" + +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:432 +msgid "workspace.shape.menu.detach-instance" +msgstr "Desprender instância" + +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:431 +msgid "workspace.shape.menu.detach-instances-in-bulk" +msgstr "Desprender instâncias" + +#: src/app/main/ui/workspace/context_menu.cljs:335, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:75 +msgid "workspace.shape.menu.difference" +msgstr "Diferença" + +#: src/app/main/ui/workspace/context_menu.cljs:148 +msgid "workspace.shape.menu.duplicate" +msgstr "Duplicar" + +#: src/app/main/ui/workspace/context_menu.cljs:321 +msgid "workspace.shape.menu.edit" +msgstr "Editar" + +#: src/app/main/ui/workspace/context_menu.cljs:341 +msgid "workspace.shape.menu.exclude" +msgstr "Excluir" + +#: src/app/main/ui/workspace/context_menu.cljs:348, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:89 +msgid "workspace.shape.menu.flatten" +msgstr "Achatar" + +#: src/app/main/ui/workspace/context_menu.cljs:208 +msgid "workspace.shape.menu.flip-horizontal" +msgstr "Virar na horizontal" + +#: src/app/main/ui/workspace/context_menu.cljs:204 +msgid "workspace.shape.menu.flip-vertical" +msgstr "Virar na vertical" + +#: src/app/main/ui/workspace/context_menu.cljs:394 +msgid "workspace.shape.menu.flow-start" +msgstr "Início de fluxo" + +#: src/app/main/ui/workspace/context_menu.cljs:184 +msgid "workspace.shape.menu.forward" +msgstr "Mover para a frente" + +#: src/app/main/ui/workspace/context_menu.cljs:187 +msgid "workspace.shape.menu.front" +msgstr "Enviar para a frente" + +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#, unused +msgid "workspace.shape.menu.go-main" +msgstr "Ir para ficheiro do componente principal" + +#: src/app/main/ui/workspace/context_menu.cljs:261 +msgid "workspace.shape.menu.group" +msgstr "Agrupar" + +#: src/app/main/ui/workspace/context_menu.cljs:363, src/app/main/ui/workspace/sidebar/layer_item.cljs:145 +msgid "workspace.shape.menu.hide" +msgstr "Ocultar" + +#: src/app/main/ui/workspace/context_menu.cljs:548, src/app/main/ui/workspace/main_menu.cljs:408 +msgid "workspace.shape.menu.hide-ui" +msgstr "Mostrar/Ocultar interface" + +#: src/app/main/ui/workspace/context_menu.cljs:338 +msgid "workspace.shape.menu.intersection" +msgstr "Interseção" + +#: src/app/main/ui/workspace/context_menu.cljs:371, src/app/main/ui/workspace/sidebar/layer_item.cljs:153 +msgid "workspace.shape.menu.lock" +msgstr "Bloquear" + +#: src/app/main/ui/workspace/context_menu.cljs:266 +msgid "workspace.shape.menu.mask" +msgstr "Máscara" + +#: src/app/main/ui/workspace/context_menu.cljs:145, src/app/main/ui/workspace/context_menu.cljs:545 +msgid "workspace.shape.menu.paste" +msgstr "Colar" + +#: src/app/main/ui/workspace/context_menu.cljs:331 +msgid "workspace.shape.menu.path" +msgstr "Curvas" + +#: src/app/main/ui/workspace/context_menu.cljs:432 +msgid "workspace.shape.menu.remove-flex" +msgstr "Remover layout flex" + +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:436 +msgid "workspace.shape.menu.reset-overrides" +msgstr "Anular alterações" + +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:439 +msgid "workspace.shape.menu.restore-main" +msgstr "Restaurar componente principal" + +#: src/app/main/ui/workspace/context_menu.cljs:174 +msgid "workspace.shape.menu.select-layer" +msgstr "Selecionar camada" + +#: src/app/main/ui/workspace/context_menu.cljs:360, src/app/main/ui/workspace/sidebar/layer_item.cljs:144 +msgid "workspace.shape.menu.show" +msgstr "Mostrar" + +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:424 +msgid "workspace.shape.menu.show-in-assets" +msgstr "Mostrar recursos no painel" + +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:442, src/app/main/ui/workspace/sidebar/assets/components.cljs:586 +msgid "workspace.shape.menu.show-main" +msgstr "Mostrar componente principal" + +#: src/app/main/ui/workspace/context_menu.cljs:221 +msgid "workspace.shape.menu.thumbnail-remove" +msgstr "Remover miniatura" + +#: src/app/main/ui/workspace/context_menu.cljs:223 +msgid "workspace.shape.menu.thumbnail-set" +msgstr "Definir como miniatura" + +#: src/app/main/ui/workspace/context_menu.cljs:326 +msgid "workspace.shape.menu.transform-to-path" +msgstr "Transformar em vector" + +#: src/app/main/ui/workspace/context_menu.cljs:257 +msgid "workspace.shape.menu.ungroup" +msgstr "Desagrupar" + +#: src/app/main/ui/workspace/context_menu.cljs:332, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:70 +msgid "workspace.shape.menu.union" +msgstr "União" + +#: src/app/main/ui/workspace/context_menu.cljs:368, src/app/main/ui/workspace/sidebar/layer_item.cljs:152 +msgid "workspace.shape.menu.unlock" +msgstr "Desbloquear" + +#: src/app/main/ui/workspace/context_menu.cljs:271 +msgid "workspace.shape.menu.unmask" +msgstr "Retirar máscara" + +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs +#, unused +msgid "workspace.shape.menu.update-components-in-bulk" +msgstr "Atualizar componentes principais" + +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:445 +msgid "workspace.shape.menu.update-main" +msgstr "Atualizar componente principal" + +#: src/app/main/ui/components/tab_container.cljs:50 +msgid "workspace.sidebar.collapse" +msgstr "Fechar barra lateral" + +#: src/app/main/ui/workspace/sidebar/collapsable_button.cljs:26 +msgid "workspace.sidebar.expand" +msgstr "Expandir barra lateral" + +#: src/app/main/ui/workspace/right_header.cljs:231, src/app/main/ui/workspace/right_header.cljs:232 +msgid "workspace.sidebar.history" +msgstr "Histórico (%s)" + +#: src/app/main/ui/workspace/sidebar/layers.cljs:522, src/app/main/ui/workspace/sidebar.cljs:100 +msgid "workspace.sidebar.layers" +msgstr "Camadas" + +#: src/app/main/ui/workspace/sidebar/layers.cljs:308, src/app/main/ui/workspace/sidebar/layers.cljs:380 +msgid "workspace.sidebar.layers.components" +msgstr "Componentes" + +#: src/app/main/ui/workspace/sidebar/layers.cljs:305, src/app/main/ui/workspace/sidebar/layers.cljs:338 +msgid "workspace.sidebar.layers.frames" +msgstr "Pranchetas" + +#: src/app/main/ui/workspace/sidebar/layers.cljs:306, src/app/main/ui/workspace/sidebar/layers.cljs:352 +msgid "workspace.sidebar.layers.groups" +msgstr "Grupos" + +#: src/app/main/ui/workspace/sidebar/layers.cljs:310, src/app/main/ui/workspace/sidebar/layers.cljs:408 +msgid "workspace.sidebar.layers.images" +msgstr "Imagens" + +#: src/app/main/ui/workspace/sidebar/layers.cljs:307, src/app/main/ui/workspace/sidebar/layers.cljs:366 +msgid "workspace.sidebar.layers.masks" +msgstr "Máscaras" + +#: src/app/main/ui/workspace/sidebar/layers.cljs:289 +msgid "workspace.sidebar.layers.search" +msgstr "Pesquisar camadas" + +#: src/app/main/ui/workspace/sidebar/layers.cljs:311, src/app/main/ui/workspace/sidebar/layers.cljs:422 +msgid "workspace.sidebar.layers.shapes" +msgstr "Formas" + +#: src/app/main/ui/workspace/sidebar/layers.cljs:309, src/app/main/ui/workspace/sidebar/layers.cljs:394 +msgid "workspace.sidebar.layers.texts" +msgstr "Textos" + +#: src/app/main/ui/viewer/inspect/attributes/svg.cljs:56, src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs:91 +msgid "workspace.sidebar.options.svg-attrs.title" +msgstr "Importar atributos do SVG" + +#: src/app/main/ui/workspace/sidebar/sitemap.cljs:217 +msgid "workspace.sidebar.sitemap" +msgstr "Páginas" + +#: src/app/main/ui/workspace/left_header.cljs:91 +msgid "workspace.sitemap" +msgstr "Mapa do site" + +#: src/app/main/ui/workspace/sidebar.cljs:120 +msgid "workspace.toolbar.assets" +msgstr "Recursos" + +#: src/app/main/ui/workspace/palette.cljs:165, src/app/main/ui/workspace/palette.cljs:166 +msgid "workspace.toolbar.color-palette" +msgstr "Paleta de cores (%s)" + +#: src/app/main/ui/workspace/right_header.cljs:220, src/app/main/ui/workspace/right_header.cljs:221 +msgid "workspace.toolbar.comments" +msgstr "Comentários (%s)" + +#: src/app/main/ui/workspace/top_toolbar.cljs:180, src/app/main/ui/workspace/top_toolbar.cljs:181 +msgid "workspace.toolbar.curve" +msgstr "Curvas (%s)" + +#: src/app/main/ui/workspace/top_toolbar.cljs:160, src/app/main/ui/workspace/top_toolbar.cljs:161 +msgid "workspace.toolbar.ellipse" +msgstr "Elipse (%s)" + +#: src/app/main/ui/workspace/top_toolbar.cljs:142, src/app/main/ui/workspace/top_toolbar.cljs:143 +msgid "workspace.toolbar.frame" +msgstr "Prancheta (%s)" + +#: src/app/main/ui/workspace/top_toolbar.cljs:59, src/app/main/ui/workspace/top_toolbar.cljs:60 +msgid "workspace.toolbar.image" +msgstr "Imagem (%s)" + +#: src/app/main/ui/workspace/top_toolbar.cljs:132, src/app/main/ui/workspace/top_toolbar.cljs:133 +msgid "workspace.toolbar.move" +msgstr "Mover (%s)" + +#: src/app/main/ui/workspace/top_toolbar.cljs:189, src/app/main/ui/workspace/top_toolbar.cljs:190 +msgid "workspace.toolbar.path" +msgstr "Caminho (%s)" + +#: src/app/main/ui/workspace/top_toolbar.cljs:151, src/app/main/ui/workspace/top_toolbar.cljs:152 +msgid "workspace.toolbar.rect" +msgstr "Rectângulo (%s)" + +#: src/app/main/ui/workspace/left_toolbar.cljs +#, unused +msgid "workspace.toolbar.shortcuts" +msgstr "Atalhos (%s)" + +#: src/app/main/ui/workspace/top_toolbar.cljs:169, src/app/main/ui/workspace/top_toolbar.cljs:170 +msgid "workspace.toolbar.text" +msgstr "Texto (%s)" + +#: src/app/main/ui/workspace/palette.cljs:173, src/app/main/ui/workspace/palette.cljs:174 +msgid "workspace.toolbar.text-palette" +msgstr "Tipografias (%s)" + +#: src/app/main/ui/workspace/viewport/top_bar.cljs:38 +msgid "workspace.top-bar.read-only.done" +msgstr "Feito" + +#: src/app/main/ui/workspace/viewport/top_bar.cljs:35 +#, markdown msgid "workspace.top-bar.view-only" msgstr "**A inspecionar código** (Somente leitura)" -#: src/app/main/ui/auth/login.cljs -msgid "auth.login-tagline" -msgstr "" -"O Penpot é a ferramenta de desenho gratuita e de código aberto para " -"colaboração entre Design e Código" +#: src/app/main/ui/workspace/sidebar/history.cljs:342 +msgid "workspace.undo.empty" +msgstr "Não há histórico de mudanças até agora" -msgid "modals.move-shared-confirm.accept" -msgid_plural "modals.move-shared-confirm.accept" -msgstr[0] "Mover" -msgstr[1] "Mover" +#: src/app/main/ui/workspace/sidebar/history.cljs:147 +msgid "workspace.undo.entry.delete" +msgstr "%s eliminado" -#: src/app/main/ui/workspace/sidebar/assets.cljs -msgid "workspace.assets.filter" -msgstr "Filtrar" +#: src/app/main/ui/workspace/sidebar/history.cljs:146 +msgid "workspace.undo.entry.modify" +msgstr "%s modificado" + +#: src/app/main/ui/workspace/sidebar/history.cljs:148 +msgid "workspace.undo.entry.move" +msgstr "Objectos movidos" + +#: src/app/main/ui/workspace/sidebar/history.cljs:111 +msgid "workspace.undo.entry.multiple.circle" +msgstr "círculos" + +#: src/app/main/ui/workspace/sidebar/history.cljs:112 +msgid "workspace.undo.entry.multiple.color" +msgstr "recursos de cor" + +#: src/app/main/ui/workspace/sidebar/history.cljs:113 +msgid "workspace.undo.entry.multiple.component" +msgstr "componentes" + +#: src/app/main/ui/workspace/sidebar/history.cljs:114 +msgid "workspace.undo.entry.multiple.curve" +msgstr "curvas" + +#: src/app/main/ui/workspace/sidebar/history.cljs:115 +msgid "workspace.undo.entry.multiple.frame" +msgstr "prancheta" + +#: src/app/main/ui/workspace/sidebar/history.cljs:116 +msgid "workspace.undo.entry.multiple.group" +msgstr "grupos" + +#: src/app/main/ui/workspace/sidebar/history.cljs:117 +msgid "workspace.undo.entry.multiple.media" +msgstr "recursos gráficos" + +#: src/app/main/ui/workspace/sidebar/history.cljs:118 +msgid "workspace.undo.entry.multiple.multiple" +msgstr "objectos" + +#: src/app/main/ui/workspace/sidebar/history.cljs:119 +msgid "workspace.undo.entry.multiple.page" +msgstr "páginas" + +#: src/app/main/ui/workspace/sidebar/history.cljs:120 +msgid "workspace.undo.entry.multiple.path" +msgstr "caminhos" + +#: src/app/main/ui/workspace/sidebar/history.cljs:121 +msgid "workspace.undo.entry.multiple.rect" +msgstr "rectângulos" + +#: src/app/main/ui/workspace/sidebar/history.cljs:122 +msgid "workspace.undo.entry.multiple.shape" +msgstr "formas" + +#: src/app/main/ui/workspace/sidebar/history.cljs:123 +msgid "workspace.undo.entry.multiple.text" +msgstr "textos" + +#: src/app/main/ui/workspace/sidebar/history.cljs:124 +msgid "workspace.undo.entry.multiple.typography" +msgstr "recursos tipográficos" + +#: src/app/main/ui/workspace/sidebar/history.cljs:145 +msgid "workspace.undo.entry.new" +msgstr "Novo %s" + +#: src/app/main/ui/workspace/sidebar/history.cljs:125 +msgid "workspace.undo.entry.single.circle" +msgstr "círculo" + +#: src/app/main/ui/workspace/sidebar/history.cljs:126 +msgid "workspace.undo.entry.single.color" +msgstr "recurso de cor" + +#: src/app/main/ui/workspace/sidebar/history.cljs:127 +msgid "workspace.undo.entry.single.component" +msgstr "componente" + +#: src/app/main/ui/workspace/sidebar/history.cljs:128 +msgid "workspace.undo.entry.single.curve" +msgstr "curva" + +#: src/app/main/ui/workspace/sidebar/history.cljs:129 +msgid "workspace.undo.entry.single.frame" +msgstr "prancheta" + +#: src/app/main/ui/workspace/sidebar/history.cljs:130 +msgid "workspace.undo.entry.single.group" +msgstr "grupo" + +#: src/app/main/ui/workspace/sidebar/history.cljs:131 +msgid "workspace.undo.entry.single.image" +msgstr "imagem" + +#: src/app/main/ui/workspace/sidebar/history.cljs:132 +msgid "workspace.undo.entry.single.media" +msgstr "recurso gráfico" + +#: src/app/main/ui/workspace/sidebar/history.cljs:133 +msgid "workspace.undo.entry.single.multiple" +msgstr "objecto" + +#: src/app/main/ui/workspace/sidebar/history.cljs:134 +msgid "workspace.undo.entry.single.page" +msgstr "página" + +#: src/app/main/ui/workspace/sidebar/history.cljs:135 +msgid "workspace.undo.entry.single.path" +msgstr "caminho" + +#: src/app/main/ui/workspace/sidebar/history.cljs:136 +msgid "workspace.undo.entry.single.rect" +msgstr "rectângulo" + +#: src/app/main/ui/workspace/sidebar/history.cljs:137 +msgid "workspace.undo.entry.single.shape" +msgstr "forma" + +#: src/app/main/ui/workspace/sidebar/history.cljs:138 +msgid "workspace.undo.entry.single.text" +msgstr "texto" + +#: src/app/main/ui/workspace/sidebar/history.cljs:139 +msgid "workspace.undo.entry.single.typography" +msgstr "recurso tipográfico" + +#: src/app/main/ui/workspace/sidebar/history.cljs:149 +msgid "workspace.undo.entry.unknown" +msgstr "Operação sobre %s" + +#: src/app/main/ui/workspace/sidebar/history.cljs:335 +msgid "workspace.undo.title" +msgstr "Histórico" + +#: src/app/main/data/workspace/libraries.cljs:1094 +msgid "workspace.updates.dismiss" +msgstr "Ignorar" + +#: src/app/main/data/workspace/libraries.cljs:1092 +msgid "workspace.updates.more-info" +msgstr "Mais informações" + +#: src/app/main/data/workspace/libraries.cljs:1090 +msgid "workspace.updates.there-are-updates" +msgstr "Existem atualizações nas bibliotecas partilhadas" + +#: src/app/main/data/workspace/libraries.cljs:1097 +msgid "workspace.updates.update" +msgstr "Atualizar" + +#, unused +msgid "workspace.viewport.click-to-close-path" +msgstr "Clica para fechar o caminho" #~ msgid "dashboard.newsletter-title" #~ msgstr "Subscrição de Newsletter" @@ -5178,9 +5660,7 @@ msgstr "Filtrar" #~ msgstr "projeto no GitHub" #~ msgid "onboarding.slide.0.desc1" -#~ msgstr "" -#~ "Cria interfaces maravilhosas em colaboração com todos os membros da " -#~ "equipa." +#~ msgstr "Cria interfaces maravilhosas em colaboração com todos os membros da equipa." #~ msgid "onboarding.slide.1.desc1" #~ msgstr "Cria interações ricas para simular o comportamento do produto." diff --git a/frontend/translations/ro.po b/frontend/translations/ro.po index 76fd8d9620..394ae398c6 100644 --- a/frontend/translations/ro.po +++ b/frontend/translations/ro.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "PO-Revision-Date: 2024-06-17 08:07+0000\n" "Last-Translator: Anonymous \n" -"Language-Team: Romanian \n" +"Language-Team: Romanian " +"\n" "Language: ro\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" @@ -12,478 +12,524 @@ msgstr "" "20)) ? 1 : 2;\n" "X-Generator: Weblate 5.6-dev\n" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:151, src/app/main/ui/viewer/login.cljs:104 msgid "auth.already-have-account" msgstr "Ai deja un cont?" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:299 msgid "auth.check-your-email" msgstr "" "Verificați adresa de e-mail, faceți click pe link-ul de verificare și " "începeți să utilizați Penpot." -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:78 msgid "auth.confirm-password" msgstr "Confirmați parola" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/register.cljs:163 msgid "auth.create-demo-account" msgstr "Creează un cont demo" #: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#, unused msgid "auth.create-demo-profile" msgstr "Vrei doar să încerci?" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/login.cljs:43 msgid "auth.demo-warning" msgstr "" "Acesta este un DEMO, NU UTILIZAȚI pentru lucrări reale, întrucât proiectele " "vor fi șterse periodic." -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:189, src/app/main/ui/viewer/login.cljs:90 msgid "auth.forgot-password" msgstr "Ai uitat parola?" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:254 msgid "auth.fullname" msgstr "Numele complet" -#: src/app/main/ui/auth/register.cljs -#, fuzzy +#: src/app/main/ui/auth/register.cljs:155, src/app/main/ui/viewer/login.cljs:107 msgid "auth.login-here" msgstr "Conectează-te" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:195 msgid "auth.login-submit" msgstr "Intră în cont" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:222 msgid "auth.login-with-github-submit" msgstr "GitHub" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:228 msgid "auth.login-with-gitlab-submit" msgstr "GitLab" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:216 msgid "auth.login-with-google-submit" msgstr "Google" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:201 msgid "auth.login-with-ldap-submit" msgstr "LDAP" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:234, src/app/main/ui/auth/login.cljs:255 msgid "auth.login-with-oidc-submit" msgstr "OpenID" -#: src/app/main/ui/settings/team-form.cljs, src/app/main/ui/auth/register.cljs, src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/onboarding/team_choice.cljs, src/app/main/ui/settings/access_tokens.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/settings/profile.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/auth/register.cljs:217, src/app/main/ui/dashboard/team_form.cljs:76, src/app/main/ui/onboarding/team_choice.cljs:180, src/app/main/ui/settings/access_tokens.cljs:66, src/app/main/ui/settings/feedback.cljs:34, src/app/main/ui/settings/profile.cljs:45, src/app/main/ui/workspace/sidebar/assets/groups.cljs:108 msgid "auth.name.not-all-space" msgstr "Numele trebuie să conțină un caracter altul decât spațiu." -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/onboarding/team_choice.cljs, src/app/main/ui/settings/access_tokens.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/settings/profile.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/auth/register.cljs:218, src/app/main/ui/dashboard/team_form.cljs:77, src/app/main/ui/onboarding/team_choice.cljs:181, src/app/main/ui/settings/access_tokens.cljs:67, src/app/main/ui/settings/feedback.cljs:33, src/app/main/ui/settings/profile.cljs:44, src/app/main/ui/workspace/sidebar/assets/groups.cljs:109 msgid "auth.name.too-long" msgstr "Numele trebuie să conțină cel mult 250 caractere." -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:71 msgid "auth.new-password" msgstr "Introduceți o parolă nouă" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:42 msgid "auth.notifications.invalid-token-error" msgstr "Codul de recuperare nu este valid." -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:46 msgid "auth.notifications.password-changed-successfully" msgstr "Parola a fost schimbată cu success" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:57 msgid "auth.notifications.profile-not-verified" msgstr "" "Profilul nu este verificat, vă rugăm să verificați profilul înainte de a " "continua." -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:40 msgid "auth.notifications.recovery-token-sent" msgstr "Un link de recuperare a parolei s-a trimis pe e-mail." -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:47 msgid "auth.notifications.team-invitation-accepted" msgstr "Te-ai alăturat echipei cu success" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:179, src/app/main/ui/auth/register.cljs:115 msgid "auth.password" msgstr "Parola" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:114 msgid "auth.password-length-hint" msgstr "Cel puțin 8 caractere" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/recovery.cljs:61, src/app/main/ui/auth/recovery.cljs:62, src/app/main/ui/auth/register.cljs:81, src/app/main/ui/settings/password.cljs:75, src/app/main/ui/settings/password.cljs:76, src/app/main/ui/settings/password.cljs:77 msgid "auth.password-not-empty" msgstr "Parola trebuie să conțină un caracter altul decât spațiu." +#: src/app/main/ui/auth.cljs:41 msgid "auth.privacy-policy" msgstr "Politica de Confidențialitate" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:88 msgid "auth.recovery-request-submit" msgstr "Recuperare Parolă" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:101 msgid "auth.recovery-request-subtitle" msgstr "Îți vom trimite un email cu instrucțiunile" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:100 msgid "auth.recovery-request-title" msgstr "Ai uitat parola?" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:82 msgid "auth.recovery-submit" msgstr "Schimbă parola" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:298, src/app/main/ui/viewer/login.cljs:93 msgid "auth.register" msgstr "Nu aveți încă un cont?" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:302, src/app/main/ui/auth/register.cljs:121, src/app/main/ui/auth/register.cljs:263, src/app/main/ui/viewer/login.cljs:97 msgid "auth.register-submit" msgstr "Creează un cont" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:140 msgid "auth.register-title" msgstr "Creează un cont" #: src/app/main/ui/auth.cljs +#, unused msgid "auth.sidebar-tagline" msgstr "Soluția open-source pentru proiectare design și prototipare." +#: src/app/main/ui/auth.cljs:33, src/app/main/ui/dashboard/sidebar.cljs:1022, src/app/main/ui/workspace/main_menu.cljs:150 msgid "auth.terms-of-service" msgstr "Termenii serviciului" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:297 msgid "auth.verification-email-sent" msgstr "Am trimis un email de verificare la" #: src/app/main/ui/onboarding/questions.cljs +#, unused msgid "branding-illustrations-marketing-pieces" msgstr "... mărci, ilustrații, piese de marketing, etc." +#: src/app/main/ui/workspace/libraries.cljs:228 msgid "common.publish" msgstr "Publică" +#: src/app/main/ui/viewer/share_link.cljs:304, src/app/main/ui/viewer/share_link.cljs:314 msgid "common.share-link.all-users" msgstr "Toți utilizatorii Penpot" +#: src/app/main/ui/viewer/share_link.cljs:198 msgid "common.share-link.confirm-deletion-link-description" msgstr "" "Sigur doriți să eliminați acest link? Dacă o faci, nu mai este disponibilă " "pentru nimeni" +#: src/app/main/ui/viewer/share_link.cljs:259, src/app/main/ui/viewer/share_link.cljs:289 msgid "common.share-link.current-tag" msgstr "(curent)" +#: src/app/main/ui/viewer/share_link.cljs:207, src/app/main/ui/viewer/share_link.cljs:214 msgid "common.share-link.destroy-link" msgstr "Distruge linkul" +#: src/app/main/ui/viewer/share_link.cljs:221 msgid "common.share-link.get-link" msgstr "Obține link" +#: src/app/main/ui/viewer/share_link.cljs:139 msgid "common.share-link.link-copied-success" msgstr "Link copiat cu succes" +#: src/app/main/ui/viewer/share_link.cljs:231 msgid "common.share-link.manage-ops" msgstr "Gestionați permisiunile" +#: src/app/main/ui/viewer/share_link.cljs:277 msgid "common.share-link.page-shared" msgid_plural "common.share-link.page-shared" msgstr[0] "1 pagină partajată" msgstr[1] "%s pagini partajate" msgstr[2] "%s de pagini partajate" +#: src/app/main/ui/viewer/share_link.cljs:298 msgid "common.share-link.permissions-can-comment" msgstr "Poate comenta" +#: src/app/main/ui/viewer/share_link.cljs:308 msgid "common.share-link.permissions-can-inspect" msgstr "Poate inspecta codul" +#: src/app/main/ui/viewer/share_link.cljs:193 msgid "common.share-link.permissions-hint" msgstr "Oricine cu linkul va avea acces" +#: src/app/main/ui/viewer/share_link.cljs:241 msgid "common.share-link.permissions-pages" msgstr "Pagini partajate" +#: src/app/main/ui/viewer/share_link.cljs:183 msgid "common.share-link.placeholder" msgstr "Linkul care poate fi partajat va apărea aici" +#: src/app/main/ui/viewer/share_link.cljs:303, src/app/main/ui/viewer/share_link.cljs:313 msgid "common.share-link.team-members" msgstr "Doar membrii echipei" +#: src/app/main/ui/viewer/share_link.cljs:171 msgid "common.share-link.title" msgstr "Distribuiți prototipuri" +#: src/app/main/ui/viewer/share_link.cljs:269 msgid "common.share-link.view-all" msgstr "Selectează Tot" +#: src/app/main/ui/workspace/libraries.cljs:224 msgid "common.unpublish" msgstr "Anulați publicarea" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:85 msgid "dasboard.team-hero.management" msgstr "Managementul echipei" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:84 msgid "dasboard.team-hero.text" msgstr "" "Penpot este destinat echipelor. Invitați membrii să lucreze împreună la " "proiecte și fișiere" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:82 msgid "dasboard.team-hero.title" msgstr "Faceți echipă!" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.tutorial-hero.info" msgstr "" "Învață elementele de bază la Penpot în timp ce te distrezi puțin cu acest " "tutorial practic." #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.tutorial-hero.start" msgstr "Începeți tutorialul" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.tutorial-hero.title" msgstr "Tutorial practic" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.walkthrough-hero.info" msgstr "Fă o plimbare prin Penpot și cunoaște-i principalele caracteristici." #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.walkthrough-hero.start" msgstr "Începeți turul" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.walkthrough-hero.title" msgstr "Tutorial interfață" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:115 msgid "dashboard.access-tokens.copied-success" msgstr "Jeton copiat" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:202 msgid "dashboard.access-tokens.create" msgstr "Generați jeton nou" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:76 msgid "dashboard.access-tokens.create.success" msgstr "Jeton de acces creat cu succes." -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:300 msgid "dashboard.access-tokens.empty.add-one" msgstr "Apăsați butonul 'Generați jeton nou' pentru a genera unul." -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:299 msgid "dashboard.access-tokens.empty.no-access-tokens" msgstr "Nu aveți încă jetoane." -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:53 msgid "dashboard.access-tokens.errors-required-name" msgstr "Numele este obligatoriu" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:147 msgid "dashboard.access-tokens.expiration-180-days" msgstr "180 zile" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:144 msgid "dashboard.access-tokens.expiration-30-days" msgstr "30 zile" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:145 msgid "dashboard.access-tokens.expiration-60-days" msgstr "60 zile" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:146 msgid "dashboard.access-tokens.expiration-90-days" msgstr "90 zile" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:143 msgid "dashboard.access-tokens.expiration-never" msgstr "Niciodată" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:282 msgid "dashboard.access-tokens.expired-on" msgstr "Expirat pe %s" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:283 msgid "dashboard.access-tokens.expires-on" msgstr "Expiră pe %s" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:281 msgid "dashboard.access-tokens.no-expiration" msgstr "Fără dată de expirare" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:197 msgid "dashboard.access-tokens.personal" msgstr "Jeton de acces personal" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:198 msgid "dashboard.access-tokens.personal.description" msgstr "" "Jetoanele de acces personal funcționează ca o alternativă la sistemul " "nostru de autentificare prin login/parolă și poate fi folosit pentru a " "permite unei aplicații să acceseze API-ul intern Penpot" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:154 msgid "dashboard.access-tokens.token-will-expire" msgstr "Jetonul va expira pe %s" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:155 msgid "dashboard.access-tokens.token-will-not-expire" msgstr "Jetonul nu are dată de expirare" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:291, src/app/main/ui/workspace/main_menu.cljs:572 msgid "dashboard.add-shared" msgstr "Adăugați ca bibliotecă partajată" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:75 msgid "dashboard.change-email" msgstr "Schimbă adresa de e-mail" -#: src/app/main/data/dashboard.cljs, src/app/main/data/dashboard.cljs +#: src/app/main/data/dashboard.cljs:762, src/app/main/data/dashboard.cljs:983 msgid "dashboard.copy-suffix" msgstr "(copiază)" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:338 msgid "dashboard.create-new-team" msgstr "Creează o nouă echipă" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/components/context_menu_a11y.cljs:256, src/app/main/ui/dashboard/sidebar.cljs:646 msgid "dashboard.default-team-name" msgstr "Contul Penpot" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:571 msgid "dashboard.delete-team" msgstr "Șterge echipa" +#: src/app/main/ui/dashboard/file_menu.cljs:296, src/app/main/ui/workspace/main_menu.cljs:589 msgid "dashboard.download-binary-file" msgstr "Descărcați fișierul Penpot (.penpot)" +#: src/app/main/ui/dashboard/file_menu.cljs:300, src/app/main/ui/workspace/main_menu.cljs:597 msgid "dashboard.download-standard-file" msgstr "Descărcați fișierul standard (.svg + .json)" -#: src/app/main/ui/dashboard/project_menu.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:276, src/app/main/ui/dashboard/project_menu.cljs:90 msgid "dashboard.duplicate" msgstr "Duplicat" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:240 msgid "dashboard.duplicate-multi" msgstr "Duplicați %s fișiere" -#: src/app/main/ui/dashboard/grid.cljs +#: src/app/main/ui/dashboard/placeholder.cljs:32 +#, markdown msgid "dashboard.empty-placeholder-drafts" msgstr "" "Fișierele adăugate la Biblioteci vor apărea aici. Încercați să partajați " "fișierele dvs. sau adăugați-le din [Biblioteci și " "șabloane](https://penpot.app/libraries-templates)." +#: src/app/main/ui/dashboard/file_menu.cljs:249 msgid "dashboard.export-binary-multi" msgstr "Descărcați %s fișiere Penpot (.penpot)" +#: src/app/main/ui/workspace/main_menu.cljs:605 msgid "dashboard.export-frames" msgstr "Exportați table ca PDF" -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:201 msgid "dashboard.export-frames.title" msgstr "Exportați ca PDF" +#, unused msgid "dashboard.export-multi" msgstr "Exportați %s fișiere Penpot" -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:109 msgid "dashboard.export-multiple.selected" msgstr "%s din %s elemente selectate" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:578 msgid "dashboard.export-shapes" msgstr "Exportă" -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:180 msgid "dashboard.export-shapes.how-to" msgstr "" "Puteți adăuga setări de export la elemente din proprietățile designului (în " "partea de jos a barei laterale din dreapta)." -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:184 msgid "dashboard.export-shapes.how-to-link" msgstr "Informații despre cum să setați exporturile la Penpot." -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:179 msgid "dashboard.export-shapes.no-elements" msgstr "Nu există elemente cu setări de export." -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:190 msgid "dashboard.export-shapes.title" msgstr "Exportați selecția" +#: src/app/main/ui/dashboard/file_menu.cljs:252 msgid "dashboard.export-standard-multi" msgstr "Descărcați fișiere standard %s (.svg + .json)" +#: src/app/main/ui/export.cljs:427 msgid "dashboard.export.detail" msgstr "* Poate include componente, elemente grafice, culori și/sau tipografii." +#: src/app/main/ui/export.cljs:426 msgid "dashboard.export.explain" msgstr "" "Unul sau mai multe fișiere pe care doriți să le exportați folosesc " "biblioteci partajate. Ce vrei să faci cu activele lor*?" +#: src/app/main/ui/export.cljs:435 msgid "dashboard.export.options.all.message" msgstr "" "fișierele cu biblioteci partajate vor fi incluse în export, menținându-le " "legătura." +#: src/app/main/ui/export.cljs:436 msgid "dashboard.export.options.all.title" msgstr "Exportați biblioteci partajate" +#: src/app/main/ui/export.cljs:437 msgid "dashboard.export.options.detach.message" msgstr "" "Bibliotecile partajate nu vor fi incluse în export și nu vor fi adăugate " "elemente în bibliotecă. " +#: src/app/main/ui/export.cljs:438 msgid "dashboard.export.options.detach.title" msgstr "Tratați activele bibliotecii partajate ca obiecte de bază" +#: src/app/main/ui/export.cljs:439 msgid "dashboard.export.options.merge.message" msgstr "" "Fișierul dvs. va fi exportat cu toate activele externe îmbinate în " "biblioteca de fișiere." +#: src/app/main/ui/export.cljs:440 msgid "dashboard.export.options.merge.title" msgstr "Includeți elementele bibliotecii partajate în bibliotecile de fișiere" +#: src/app/main/ui/export.cljs:418 msgid "dashboard.export.title" msgstr "Exportați fișiere" +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:309 msgid "dashboard.fonts.deleted-placeholder" msgstr "Font șters" -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:206 msgid "dashboard.fonts.dismiss-all" msgstr "Anulează tot" +#: src/app/main/ui/dashboard/fonts.cljs:436 msgid "dashboard.fonts.empty-placeholder" msgstr "Fonturile personalizate pe care le încărcați vor apărea aici." -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:194 msgid "dashboard.fonts.fonts-added" msgid_plural "dashboard.fonts.fonts-added" msgstr[0] "1 font adăugat" msgstr[1] "%s fonturi adăugate" msgstr[2] "%s de fonturi adăugate" +#: src/app/main/ui/dashboard/fonts.cljs:170 +#, markdown msgid "dashboard.fonts.hero-text1" msgstr "" "Fonturile încărcate vor fi adăugate la familia de fonturi disponibilă " @@ -491,6 +537,8 @@ msgstr "" "familie de font-uri**. Tipurile de fişiere acceptate: **TTF, OTF și WOFF** " "(se poate urca doar un singur tip)." +#: src/app/main/ui/dashboard/fonts.cljs:182 +#, markdown msgid "dashboard.fonts.hero-text2" msgstr "" "Ar trebui să urcați doar fonturi la care aveți drept de folosință sau " @@ -499,10 +547,12 @@ msgstr "" "asemenea, vă recomandăm să citiți și despre [licențierea " "fonturilor](https://www.typography.com/faq)." -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:202 msgid "dashboard.fonts.upload-all" msgstr "Încarcă toate" +#: src/app/main/ui/dashboard/fonts.cljs:187 +#, markdown msgid "dashboard.fonts.warning-text" msgstr "" "Am detectat o posibilă problemă în fonturile dvs. în legătură cu metricile " @@ -512,265 +562,281 @@ msgstr "" "utilizați [Transfonter](https://transfonter.org/) pentru a genera fonturi " "web și a remedia erorile. " +#: src/app/main/ui/dashboard/import.cljs:472, src/app/main/ui/dashboard/project_menu.cljs:108 msgid "dashboard.import" msgstr "Importați fișiere Penpot" +#: src/app/main/ui/dashboard/import.cljs:304, src/app/worker/import.cljs:753, src/app/worker/import.cljs:755 msgid "dashboard.import.analyze-error" msgstr "Hopa! Nu am putut importa acest fișier" +#: src/app/main/ui/dashboard/import.cljs:308 msgid "dashboard.import.import-error" msgstr "A apărut o problemă la importul fișierului. Fișierul nu a fost importat." +#: src/app/main/ui/dashboard/import.cljs:493 msgid "dashboard.import.import-message" msgid_plural "dashboard.import.import-message" msgstr[0] "1 fișier a fost importat cu succes." msgstr[1] "% fișiere au fost importate cu succes." msgstr[2] "% de fișiere au fost importate cu succes." +#: src/app/main/ui/dashboard/import.cljs:481, src/app/main/ui/dashboard/import.cljs:488 msgid "dashboard.import.import-warning" msgstr "Unele fișiere conțineau obiecte nevalide care au fost eliminate." +#: src/app/main/ui/dashboard/import.cljs:144 msgid "dashboard.import.progress.process-colors" msgstr "Procesarea culorilor" +#: src/app/main/ui/dashboard/import.cljs:153 msgid "dashboard.import.progress.process-components" msgstr "Procesarea componentelor" +#: src/app/main/ui/dashboard/import.cljs:150 msgid "dashboard.import.progress.process-media" msgstr "Procesarea fișierelor media" +#: src/app/main/ui/dashboard/import.cljs:141 msgid "dashboard.import.progress.process-page" msgstr "Procesarea paginii: %s" +#: src/app/main/ui/dashboard/import.cljs:147 msgid "dashboard.import.progress.process-typographies" msgstr "Procesarea tipografiilor" +#: src/app/main/ui/dashboard/import.cljs:135 msgid "dashboard.import.progress.upload-data" msgstr "Încărcarea datelor pe server (%s/%s)" +#: src/app/main/ui/dashboard/import.cljs:138 msgid "dashboard.import.progress.upload-media" msgstr "Încărcarea fișierului: %s" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:109 msgid "dashboard.invite-profile" msgstr "Invitați persoane" -#: src/app/main/ui/dashboard/sidebar.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:547, src/app/main/ui/dashboard/sidebar.cljs:556, src/app/main/ui/dashboard/sidebar.cljs:563, src/app/main/ui/dashboard/team.cljs:312 msgid "dashboard.leave-team" msgstr "Părăsește echipa" +#: src/app/main/ui/dashboard/templates.cljs:88, src/app/main/ui/dashboard/templates.cljs:163 msgid "dashboard.libraries-and-templates" msgstr "Biblioteci & Șabloane" +#: src/app/main/ui/dashboard/templates.cljs:164 msgid "dashboard.libraries-and-templates.explore" msgstr "Explorează mai multe dintre ele și află cum să contribui" +#: src/app/main/ui/dashboard/import.cljs:365 msgid "dashboard.libraries-and-templates.import-error" msgstr "A apărut o problemă la importarea șablonului. Șablonul nu a fost importat." -#: src/app/main/ui/dashboard/libraries.cljs +#: src/app/main/ui/dashboard/libraries.cljs:53 msgid "dashboard.libraries-title" msgstr "Biblioteci Partajate" -#: src/app/main/ui/dashboard/grid.cljs +#: src/app/main/ui/dashboard/placeholder.cljs:45 msgid "dashboard.loading-files" msgstr "încărcarea fișierelor …" +#: src/app/main/ui/dashboard/fonts.cljs:431 msgid "dashboard.loading-fonts" msgstr "se încarcă fonturile tale…" -#: src/app/main/ui/dashboard/project_menu.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:281, src/app/main/ui/dashboard/project_menu.cljs:100 msgid "dashboard.move-to" msgstr "Mută la" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:245 msgid "dashboard.move-to-multi" msgstr "Mutați %s fișiere la" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:226 msgid "dashboard.move-to-other-team" msgstr "Mutați la altă echipă" -#: src/app/main/ui/dashboard/projects.cljs, -#: src/app/main/ui/dashboard/files.cljs +#: src/app/main/ui/dashboard/files.cljs:105, src/app/main/ui/dashboard/projects.cljs:252, src/app/main/ui/dashboard/projects.cljs:253 msgid "dashboard.new-file" msgstr "+ Fișier nou" -#: src/app/main/data/dashboard.cljs +#: src/app/main/data/dashboard.cljs:958, src/app/main/data/dashboard.cljs:1181 msgid "dashboard.new-file-prefix" msgstr "Fișer nou" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:55 msgid "dashboard.new-project" msgstr "+ Proiect nou" -#: src/app/main/data/dashboard.cljs +#: src/app/main/data/dashboard.cljs:726, src/app/main/data/dashboard.cljs:1184 msgid "dashboard.new-project-prefix" msgstr "Proiect nou" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:60 msgid "dashboard.no-matches-for" msgstr "Nu există rezultate pentru “%s“" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:827 msgid "dashboard.no-projects-placeholder" msgstr "Proiectele fixate vor apărea aici" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:33 msgid "dashboard.notifications.email-changed-successfully" msgstr "Adresa ta de email a fost actualizată cu success" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:27 msgid "dashboard.notifications.email-verified-successfully" msgstr "Adresa ta de email este confirmată" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:37 msgid "dashboard.notifications.password-saved" msgstr "Parolă actualizată cu success!" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1081 msgid "dashboard.num-of-members" msgstr "%s membrii" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:267 msgid "dashboard.open-in-new-tab" msgstr "Deschide fișier într-o pagină nouă" +#: src/app/main/ui/dashboard/files.cljs:117, src/app/main/ui/dashboard/projects.cljs:260, src/app/main/ui/dashboard/projects.cljs:261 msgid "dashboard.options" msgstr "Opțiuni" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:106, src/app/main/ui/settings/password.cljs:119 msgid "dashboard.password-change" msgstr "Schimbă parola" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/pin_button.cljs:24, src/app/main/ui/dashboard/project_menu.cljs:95 msgid "dashboard.pin-unpin" msgstr "Fixați/Anulați fixarea" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:51 msgid "dashboard.projects-title" msgstr "Proiecte" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:86 msgid "dashboard.remove-account" msgstr "Doriți să vă ștergeți contul?" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "dashboard.remove-shared" msgstr "Elimină ca şi Colecţie Distribuită" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:78 msgid "dashboard.save-settings" msgstr "Salvează setările" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:246, src/app/main/ui/dashboard/sidebar.cljs:247 msgid "dashboard.search-placeholder" msgstr "Căutare…" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:55 msgid "dashboard.searching-for" msgstr "Căutare pentru “%s“…" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:56 msgid "dashboard.select-ui-language" msgstr "Selectați limbajul interfeței" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:63 msgid "dashboard.select-ui-theme" msgstr "Selectați o temă" -#: src/app/main/ui/dashboard/grid.cljs +#: src/app/main/ui/dashboard/projects.cljs:282 msgid "dashboard.show-all-files" msgstr "Afișați toate fișierele" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:96 msgid "dashboard.success-delete-file" msgid_plural "dashboard.success-delete-file" msgstr[0] "Fișierul dumneavoastră a fost șters cu succes" msgstr[1] "Fișierele dumneavoastră au fost șterse cu succes" msgstr[2] "Fișierele dumneavoastră au fost șterse cu succes" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:59 msgid "dashboard.success-delete-project" msgstr "Proiectul s-a șters cu succes" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:91 msgid "dashboard.success-duplicate-file" msgid_plural "dashboard.success-delete-file" msgstr[0] "Fișierul dumneavoastră a fost duplicat cu succes" msgstr[1] "Fișierele dumneavoastră au fost duplicate cu succes" msgstr[2] "Fișierele dumneavoastră au fost duplicate cu succes" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:33 msgid "dashboard.success-duplicate-project" msgstr "Proiectul s-a duplicat cu succes" -#: src/app/main/ui/dashboard/grid.cljs, src/app/main/ui/dashboard/sidebar.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:130, src/app/main/ui/dashboard/grid.cljs:558, src/app/main/ui/dashboard/sidebar.cljs:152 msgid "dashboard.success-move-file" msgstr "Fișierul a fost mutat cu succes" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:129 msgid "dashboard.success-move-files" msgstr "Fișerele au fost mutate cu succes" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:54 msgid "dashboard.success-move-project" msgstr "Proiectul a fost mutat cu succes" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1052 msgid "dashboard.team-info" msgstr "Informațiile echipei" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1070 msgid "dashboard.team-members" msgstr "Membrii echipei" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1085 msgid "dashboard.team-projects" msgstr "Proiectele echipei" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:61 msgid "dashboard.theme-change" msgstr "Interfață temă" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:42 msgid "dashboard.title-search" msgstr "Rezultatele căutării" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:50 msgid "dashboard.type-something" msgstr "Scrie pentru a începe căutarea" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:287, src/app/main/ui/workspace/main_menu.cljs:566 msgid "dashboard.unpublish-shared" msgstr "Anulați publicarea bibliotecii" -#: src/app/main/ui/settings/profile.cljs, -#: src/app/main/ui/settings/password.cljs, -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:71 msgid "dashboard.update-settings" msgstr "Actualizare setări" +#: src/app/main/ui/dashboard/team.cljs:861 msgid "dashboard.webhooks.active" msgstr "Este activ" +#: src/app/main/ui/dashboard/team.cljs:862 msgid "dashboard.webhooks.active.explain" msgstr "Când acest hook este declanșat, se vor furniza detalii despre eveniment" +#: src/app/main/ui/dashboard/team.cljs:852 msgid "dashboard.webhooks.content-type" msgstr "Tip de conținut" +#: src/app/main/ui/dashboard/team.cljs:885 msgid "dashboard.webhooks.create" msgstr "Creați webhook" +#: src/app/main/ui/dashboard/team.cljs:775 msgid "dashboard.webhooks.create.success" msgstr "Webhook creat cu succes." +#: src/app/main/ui/dashboard/team.cljs:882 msgid "dashboard.webhooks.description" msgstr "" "Webhook-urile sunt o modalitate simplă de a permite altor site-uri web și " @@ -778,1204 +844,1319 @@ msgstr "" "Penpot. Vom trimite o solicitare POST la fiecare dintre adresele URL pe " "care le furnizați." +#: src/app/main/ui/dashboard/team.cljs:1005 msgid "dashboard.webhooks.empty.add-one" msgstr "Apăsați butonul \"Adăugați webhook\" pentru a adăuga unul." +#: src/app/main/ui/dashboard/team.cljs:1004 msgid "dashboard.webhooks.empty.no-webhooks" msgstr "Niciun webhook creat până acum." +#, unused msgid "dashboard.webhooks.update.success" msgstr "Webhook actualizat cu succes." -#: src/app/main/ui/settings.cljs +#: src/app/main/ui/settings.cljs:31 msgid "dashboard.your-account-title" msgstr "Contul tău" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:70 msgid "dashboard.your-email" msgstr "Email" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:62 msgid "dashboard.your-name" msgstr "Numele tău" -#: src/app/main/ui/dashboard/search.cljs, src/app/main/ui/dashboard/team.cljs, -#: src/app/main/ui/dashboard/libraries.cljs, -#: src/app/main/ui/dashboard/projects.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:38, src/app/main/ui/dashboard/fonts.cljs:33, src/app/main/ui/dashboard/libraries.cljs:42, src/app/main/ui/dashboard/projects.cljs:318, src/app/main/ui/dashboard/search.cljs:30, src/app/main/ui/dashboard/sidebar.cljs:312, src/app/main/ui/dashboard/team.cljs:495, src/app/main/ui/dashboard/team.cljs:729, src/app/main/ui/dashboard/team.cljs:991, src/app/main/ui/dashboard/team.cljs:1038 msgid "dashboard.your-penpot" msgstr "Contul Penpot" -#: src/app/main/ui/alert.cljs +#: src/app/main/ui/alert.cljs:32 msgid "ds.alert-ok" msgstr "Ok" -#: src/app/main/ui/alert.cljs +#: src/app/main/ui/alert.cljs:31, src/app/main/ui/alert.cljs:34 msgid "ds.alert-title" msgstr "Atenţie" -#: src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:83 msgid "ds.component-subtitle" msgstr "Componente de actualizat:" -#: src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:36, src/app/main/ui/workspace/plugins.cljs:246 msgid "ds.confirm-cancel" msgstr "Anulează" -#: src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:37, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:141 msgid "ds.confirm-ok" msgstr "Ok" -#: src/app/main/ui/confirm.cljs, src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:35, src/app/main/ui/confirm.cljs:39 msgid "ds.confirm-title" msgstr "Ești sigur?" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:62 msgid "errors.auth-provider-not-configured" msgstr "Furnizorul de autentificare nu este configurat." +#: src/app/main/errors.cljs:104 msgid "errors.auth.unable-to-login" msgstr "Se pare că nu sunteți autentificat sau sesiunea a expirat." +#: src/app/main/data/fonts.cljs:189 msgid "errors.bad-font" msgstr "Fontul %s nu a putut fi încărcat" +#: src/app/main/data/fonts.cljs:188 msgid "errors.bad-font-plural" msgstr "Fonturile %s nu au putut fi încărcate" +#: src/app/main/data/workspace/media.cljs:198 msgid "errors.cannot-upload" msgstr "Fișierul media nu s-a putut încărca." -#: src/app/main/data/workspace.cljs +#: src/app/main/data/workspace.cljs:1598 msgid "errors.clipboard-not-implemented" msgstr "Bowser-ul tău nu permite clipboard" -#: src/app/main/ui/auth/verify_token.cljs, -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/auth/verify_token.cljs:82, src/app/main/ui/settings/change_email.cljs:46 msgid "errors.email-already-exists" msgstr "Email deja trimis" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:87 msgid "errors.email-already-validated" msgstr "Adresa de email este deja validată." +#: src/app/main/ui/settings/password.cljs:28 msgid "errors.email-as-password" msgstr "Nu vă puteți folosi e-mailul ca parolă" -#: src/app/main/ui/auth/register.cljs, -#: src/app/main/ui/auth/recovery_request.cljs, -#: src/app/main/ui/settings/change_email.cljs, -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/auth/recovery_request.cljs:63, src/app/main/ui/dashboard/team.cljs:578, src/app/main/ui/settings/change_email.cljs:54 msgid "errors.email-has-permanent-bounces" msgstr "Adresa de email «%s» are multe rapoarte permanente de respingere." -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs, -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/login.cljs:81, src/app/main/ui/auth/recovery_request.cljs:31, src/app/main/ui/auth/register.cljs:43 msgid "errors.email-invalid" msgstr "Vă rugăm să introduceți un e-mail valid" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:35 msgid "errors.email-invalid-confirmation" msgstr "E-mailul de confirmare trebuie să se potrivească" +#: src/app/main/ui/dashboard/team.cljs:170 msgid "errors.email-spam-or-permanent-bounces" msgstr "E-mailul «%s» a fost raportat ca spam sau respins permanent." -#: src/app/main/errors.cljs +#: src/app/main/errors.cljs:227 msgid "errors.feature-mismatch" msgstr "" "Se pare că deschideți un fișier care are activată funcția \"%s\", dar " "frontend-ul dumneavoastră penpot nu o acceptă sau o are dezactivată." -#: src/app/main/errors.cljs +#: src/app/main/errors.cljs:231, src/app/main/errors.cljs:245 msgid "errors.feature-not-supported" msgstr "Funcția \"%s\" nu este acceptată." -#: src/app/main/ui/auth/verify_token.cljs, -#: src/app/main/ui/settings/feedback.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/data/users.cljs:709, src/app/main/ui/auth/login.cljs:65, src/app/main/ui/auth/login.cljs:116, src/app/main/ui/auth/register.cljs:69, src/app/main/ui/auth/register.cljs:237, src/app/main/ui/auth/verify_token.cljs:92, src/app/main/ui/dashboard/team.cljs:173, src/app/main/ui/onboarding/team_choice.cljs:95, src/app/main/ui/settings/access_tokens.cljs:91, src/app/main/ui/settings/feedback.cljs:52 msgid "errors.generic" msgstr "S-a întâmplat ceva în neregulă." -#: src/app/main/ui/components/color_input.cljs +#: src/app/main/ui/components/color_input.cljs:57 msgid "errors.invalid-color" msgstr "Culoare invalidă" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/static.cljs:43 msgid "errors.invite-invalid" msgstr "Invitație invalidă" +#: src/app/main/ui/static.cljs:44 msgid "errors.invite-invalid.info" msgstr "Această invitație poate fi anulată sau expirată." -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:101 msgid "errors.ldap-disabled" msgstr "Autentificarea cu LDAP este dezactivată." -#: src/app/main/errors.cljs +#: src/app/main/errors.cljs:239 msgid "errors.max-quote-reached" msgstr "Ați ajuns la cota \"%s\". Luați legătura cu serviciul de asistență." -#: src/app/main/data/workspace/persistence.cljs +#: src/app/main/data/workspace/media.cljs:184 msgid "errors.media-too-large" msgstr "Imaginea este prea mare pentru a fi inserată." -#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs +#: src/app/main/data/media.cljs:68, src/app/main/data/workspace/media.cljs:187 msgid "errors.media-type-mismatch" msgstr "Se pare că conținutul imaginii nu se potrivește cu extensia de fișier." -#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs +#: src/app/main/data/media.cljs:65, src/app/main/data/workspace/media.cljs:172, src/app/main/data/workspace/media.cljs:175, src/app/main/data/workspace/media.cljs:178, src/app/main/data/workspace/media.cljs:181 msgid "errors.media-type-not-allowed" msgstr "Se pare că aceasta nu este o imagine validă." -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:574 msgid "errors.member-is-muted" msgstr "" "Profilul pe care încercați să îl invitați este dezactivat (din cauza spam " "sau inactivitate)." -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:61 msgid "errors.password-invalid-confirmation" msgstr "Parola de confirmare trebuie să se potrivească" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:64 msgid "errors.password-too-short" msgstr "Parola trebuie să conțină cel puțin 8 caractere" +#: src/app/main/data/users.cljs:703, src/app/main/ui/auth/login.cljs:97, src/app/main/ui/auth/login.cljs:105 msgid "errors.profile-blocked" msgstr "Profilul este blocat" -#: src/app/main/ui/auth/recovery_request.cljs, -#: src/app/main/ui/settings/change_email.cljs, -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/auth/recovery_request.cljs:60, src/app/main/ui/dashboard/team.cljs:164, src/app/main/ui/dashboard/team.cljs:570, src/app/main/ui/settings/change_email.cljs:50 msgid "errors.profile-is-muted" msgstr "" "Profilul tău conține adrese de email dezactivate (rapoarte spam sau " "inactive)." -#: src/app/main/ui/auth/register.cljs +#: src/app/main/data/users.cljs:701, src/app/main/ui/auth/register.cljs:60 msgid "errors.registration-disabled" msgstr "Înregistrarea este dezactivată în prezent." +#: src/app/main/ui/dashboard/sidebar.cljs:365, src/app/main/ui/dashboard/team.cljs:359 msgid "errors.team-leave.insufficient-members" msgstr "" "Nu există suficienți membri pentru a părăsi echipa, probabil că doriți să o " "ștergeți." +#: src/app/main/ui/dashboard/sidebar.cljs:368, src/app/main/ui/dashboard/team.cljs:362 msgid "errors.team-leave.member-does-not-exists" msgstr "Membrul pe care încercați să-l atribuiți nu există." +#: src/app/main/ui/dashboard/sidebar.cljs:371, src/app/main/ui/dashboard/team.cljs:365 msgid "errors.team-leave.owner-cant-leave" msgstr "" "Proprietarul nu poate părăsi echipa, trebuie să reatribuiți rolul de " "proprietar." -#: src/app/main/data/media.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs +#: src/app/main/data/media.cljs:71 msgid "errors.unexpected-error" msgstr "A apărut o eroare neașteptată." -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:60 msgid "errors.unexpected-token" msgstr "Cod necunoscut" +#: src/app/main/ui/dashboard/team.cljs:796 msgid "errors.webhooks.connection" msgstr "Eroare de conexiune, URL-ul nu poate fi accesat" +#: src/app/main/ui/dashboard/team.cljs:790 msgid "errors.webhooks.invalid-uri" msgstr "URL-ul nu a trecut validarea." -#, fuzzy +#: src/app/main/ui/dashboard/team.cljs:949 msgid "errors.webhooks.last-delivery" msgstr "Ultima livrare nu a avut succes." +#: src/app/main/ui/dashboard/team.cljs:792, src/app/main/ui/dashboard/team.cljs:952 msgid "errors.webhooks.ssl-validation" msgstr "Eroare la validarea SSL." +#: src/app/main/ui/dashboard/team.cljs:794 msgid "errors.webhooks.timeout" msgstr "Timeout" +#: src/app/main/ui/dashboard/team.cljs:788 msgid "errors.webhooks.unexpected" msgstr "Eroare neașteptată la validare" +#: src/app/main/ui/dashboard/team.cljs:798, src/app/main/ui/dashboard/team.cljs:955 msgid "errors.webhooks.unexpected-status" msgstr "Stare neașteptată %s" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:109, src/app/main/ui/auth/login.cljs:113 msgid "errors.wrong-credentials" msgstr "E-mailul sau parola sunt incorecte." -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:25 msgid "errors.wrong-old-password" msgstr "Parola veche este incorectă" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:77 msgid "feedback.description" msgstr "Descriere" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:95 msgid "feedback.discourse-go-to" msgstr "Accesați forumul Penpot" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:89 msgid "feedback.discourse-subtitle1" msgstr "" "Ne bucurăm să te avem aici. Dacă aveți nevoie de ajutor, căutați înainte de " "a posta." -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:88 msgid "feedback.discourse-title" msgstr "Comunitatea Penpot" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:72 msgid "feedback.subject" msgstr "Subiect" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:69 msgid "feedback.subtitle" msgstr "" "Descrie motivul pentru care ne scrii, specificând eventuale probleme, idei " "sau nelămuriri. Un membru al echipei noastre îți va răspunde în scurt timp." -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:68 msgid "feedback.title" msgstr "Adresă de Email" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:105 msgid "feedback.twitter-go-to" msgstr "Accesați X" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:99 msgid "feedback.twitter-subtitle1" msgstr "Aici pentru a vă ajuta cu întrebările tehnice." -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:98 msgid "feedback.twitter-title" msgstr "Cont de asistență X" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:30 msgid "generic.error" msgstr "Am întâmpinat o eroare" -#: src/app/main/ui/inspect/attributes/blur.cljs +#: src/app/main/ui/viewer/inspect/attributes/blur.cljs:26 msgid "inspect.attributes.blur" msgstr "Estompare" -#: src/app/main/ui/inspect/attributes/blur.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:115 msgid "inspect.attributes.blur.value" msgstr "Valoare" -#: src/app/main/ui/inspect/attributes/common.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:112 msgid "inspect.attributes.color.hex" msgstr "HEX" -#: src/app/main/ui/inspect/attributes/common.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:114 msgid "inspect.attributes.color.hsla" msgstr "HSLA" -#: src/app/main/ui/inspect/attributes/common.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:113 msgid "inspect.attributes.color.rgba" msgstr "RGBA" -#: src/app/main/ui/inspect/attributes/fill.cljs +#: src/app/main/ui/viewer/inspect/attributes/fill.cljs:57 msgid "inspect.attributes.fill" msgstr "Umple" -#: src/app/main/ui/inspect/attributes/image.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:99, src/app/main/ui/viewer/inspect/attributes/image.cljs:51 msgid "inspect.attributes.image.download" msgstr "Descarcă imaginea sursă" -#: src/app/main/ui/inspect/attributes/image.cljs +#: src/app/main/ui/viewer/inspect/attributes/image.cljs:39 msgid "inspect.attributes.image.height" msgstr "Înălțime" -#: src/app/main/ui/inspect/attributes/image.cljs +#: src/app/main/ui/viewer/inspect/attributes/image.cljs:32 msgid "inspect.attributes.image.width" msgstr "Lățime" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout" msgstr "Layout" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.height" msgstr "Înălțime" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.left" msgstr "Stânga" -#: src/app/main/ui/inspect/attributes/layout.cljs, -#: src/app/main/ui/inspect/attributes/layout.cljs +#: src/app/main/ui/inspect/attributes/layout.cljs, src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.radius" msgstr "Rază" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.rotation" msgstr "Rotație" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.top" msgstr "Top" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.width" msgstr "Lățime" -#: src/app/main/ui/inspect/attributes/shadow.cljs +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:57 msgid "inspect.attributes.shadow" msgstr "Umbră" -#: src/app/main/ui/inspect/attributes/layout.cljs +#: src/app/main/ui/viewer/inspect/attributes/geometry.cljs:40 msgid "inspect.attributes.size" msgstr "Dimensiune și poziție" -#: src/app/main/ui/inspect/attributes/stroke.cljs +#: src/app/main/ui/viewer/inspect/attributes/stroke.cljs:52 msgid "inspect.attributes.stroke" msgstr "Linie" +#, permanent, unused msgid "inspect.attributes.stroke.alignment.center" msgstr "Centru" +#, permanent, unused msgid "inspect.attributes.stroke.alignment.inner" msgstr "Interior" +#, permanent, unused msgid "inspect.attributes.stroke.alignment.outer" msgstr "Exterior" +#, unused msgid "inspect.attributes.stroke.style.dotted" msgstr "Punctat" +#, unused msgid "inspect.attributes.stroke.style.mixed" msgstr "Mixat" +#, unused msgid "inspect.attributes.stroke.style.none" msgstr "Niciunul" +#, unused msgid "inspect.attributes.stroke.style.solid" msgstr "Solid" #: src/app/main/ui/inspect/attributes/stroke.cljs +#, unused msgid "inspect.attributes.stroke.width" msgstr "Lățime" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:81, src/app/main/ui/viewer/inspect/attributes/text.cljs:194 msgid "inspect.attributes.typography" msgstr "Tipografie" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:89 msgid "inspect.attributes.typography.font-family" msgstr "Familie de Fonturi" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:107 msgid "inspect.attributes.typography.font-size" msgstr "Dimensiune Font" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:98 msgid "inspect.attributes.typography.font-style" msgstr "Stil Font" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:116 msgid "inspect.attributes.typography.font-weight" msgstr "Greutate Font" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:134 msgid "inspect.attributes.typography.letter-spacing" msgstr "Spațiere" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:125 msgid "inspect.attributes.typography.line-height" msgstr "Înălțimea rândului" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:143 msgid "inspect.attributes.typography.text-decoration" msgstr "Decorare Text" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:145 msgid "inspect.attributes.typography.text-decoration.none" msgstr "Niciunul" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:146 msgid "inspect.attributes.typography.text-decoration.strikethrough" msgstr "Barat" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:147 msgid "inspect.attributes.typography.text-decoration.underline" msgstr "Subliniat" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:156 msgid "inspect.attributes.typography.text-transform" msgstr "Transformare Text" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:158 msgid "inspect.attributes.typography.text-transform.lowercase" msgstr "Minuscule" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:159 msgid "inspect.attributes.typography.text-transform.none" msgstr "Niciunul" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:160 msgid "inspect.attributes.typography.text-transform.titlecase" msgstr "Majuscule Titlu" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:161 msgid "inspect.attributes.typography.text-transform.uppercase" msgstr "Majuscule" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:140 msgid "inspect.empty.help" msgstr "" "Dacă doriți să aflați mai multe despre inspectorul de design, vizitați " "centrul de ajutor Penpot" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:143 msgid "inspect.empty.more-info" msgstr "Mai multe informații despre inspector" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:135 msgid "inspect.empty.select" msgstr "" "Selectați o formă, o placă sau un grup pentru a le inspecta proprietățile " "și codul" -#: src/app/main/ui/inspect/right_sidebar.cljs +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:125 msgid "inspect.tabs.code" msgstr "Cod" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:98 msgid "inspect.tabs.code.selected.circle" msgstr "Cerc" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:99 msgid "inspect.tabs.code.selected.component" msgstr "Componentă" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:100 msgid "inspect.tabs.code.selected.curve" msgstr "Curbat" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:101 msgid "inspect.tabs.code.selected.frame" msgstr "Planșă de lucru" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:102 msgid "inspect.tabs.code.selected.group" msgstr "Grup" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:103 msgid "inspect.tabs.code.selected.image" msgstr "Imagine" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:104 msgid "inspect.tabs.code.selected.mask" msgstr "Mască" -#: src/app/main/ui/inspect/right_sidebar.cljs +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:93 msgid "inspect.tabs.code.selected.multiple" msgstr "%s Selectate" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:105 msgid "inspect.tabs.code.selected.path" msgstr "Traiectorie" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:106 msgid "inspect.tabs.code.selected.rect" msgstr "Dreptunghi" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:107 msgid "inspect.tabs.code.selected.svg-raw" msgstr "SVG" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:108 msgid "inspect.tabs.code.selected.text" msgstr "Text" -#: src/app/main/ui/inspect/right_sidebar.cljs +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:115 msgid "inspect.tabs.info" msgstr "Info" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:158 msgid "label.shortcuts" msgstr "Comenzi rapide" +#: src/app/main/ui/dashboard/import.cljs:527 msgid "labels.accept" msgstr "Acceptă" -#: src/app/main/ui/settings/sidebar.cljs +#: src/app/main/ui/settings/sidebar.cljs:100 msgid "labels.access-tokens" msgstr "Jetoane acces" +#: src/app/main/ui/dashboard/team.cljs:968 msgid "labels.active" msgstr "Activ" +#: src/app/main/ui/dashboard/fonts.cljs:175 msgid "labels.add-custom-font" msgstr "Adăugați font personalizat" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:120, src/app/main/ui/dashboard/team.cljs:276, src/app/main/ui/dashboard/team.cljs:519, src/app/main/ui/dashboard/team.cljs:549, src/app/main/ui/onboarding/team_choice.cljs:67 msgid "labels.admin" msgstr "Administrator" +#: src/app/main/ui/onboarding/questions.cljs:174 +msgid "labels.adobe-xd" +msgstr "Adobe XD" + #: src/app/main/ui/workspace/comments.cljs +#, unused msgid "labels.all" msgstr "Toate" +#: src/app/main/ui/auth.cljs:37 msgid "labels.and" msgstr "și" +#: src/app/main/ui/onboarding/team_choice.cljs:162 msgid "labels.back" msgstr "Înapoi" -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:59 msgid "labels.bad-gateway.desc-message" msgstr "Momentan serverele noastre sunt în mentenanță. Revino în scurt timp." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:58 msgid "labels.bad-gateway.main-message" msgstr "Eroare de Server" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/data/common.cljs:112, src/app/main/ui/dashboard/change_owner.cljs:69, src/app/main/ui/dashboard/import.cljs:514, src/app/main/ui/dashboard/team.cljs:868, src/app/main/ui/delete_shared.cljs:35, src/app/main/ui/export.cljs:164, src/app/main/ui/export.cljs:460, src/app/main/ui/settings/access_tokens.cljs:188, src/app/main/ui/viewer/share_link.cljs:203, src/app/main/ui/workspace/sidebar/assets/groups.cljs:149 msgid "labels.cancel" msgstr "Anulează" +#: src/app/main/ui/onboarding/questions.cljs:176 +msgid "labels.canva" +msgstr "Canva" + +#: src/app/main/ui/dashboard/projects.cljs:93, src/app/main/ui/export.cljs:478, src/app/main/ui/settings/access_tokens.cljs:183, src/app/main/ui/viewer/login.cljs:77, src/app/main/ui/viewer/share_link.cljs:174, src/app/main/ui/workspace/libraries.cljs:522 msgid "labels.close" msgstr "Închide" -#: src/app/main/ui/dashboard/comments.cljs +#: src/app/main/ui/dashboard/comments.cljs:104, src/app/main/ui/viewer/comments.cljs:70, src/app/main/ui/workspace/comments.cljs:126 msgid "labels.comments" msgstr "Comentarii" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:985, src/app/main/ui/workspace/main_menu.cljs:110 msgid "labels.community" msgstr "Comunitate" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:103 msgid "labels.confirm-password" msgstr "Confirmă parola" +#: src/app/main/ui/dashboard/import.cljs:520, src/app/main/ui/export.cljs:465, src/app/main/ui/onboarding/newsletter.cljs:101 msgid "labels.continue" msgstr "Continuă" +#, unused msgid "labels.continue-with" msgstr "Continuă cu" +#: src/app/main/ui/viewer/login.cljs:75 msgid "labels.continue-with-penpot" msgstr "Poți continua cu un cont Penpot" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:642 msgid "labels.copy-invitation-link" msgstr "Copiați link-ul" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:157, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:190 msgid "labels.create" msgstr "Creează" -#: src/app/main/ui/dashboard/team_form.cljs, -#: src/app/main/ui/dashboard/team_form.cljs +#: src/app/main/ui/dashboard/team_form.cljs:101, src/app/main/ui/dashboard/team_form.cljs:121 msgid "labels.create-team" msgstr "Creează o echipă" -#: src/app/main/ui/dashboard/team_form.cljs +#: src/app/main/ui/dashboard/team_form.cljs:113 msgid "labels.create-team.placeholder" msgstr "Introduceți noul nume al echipei" +#, unused msgid "labels.custom-fonts" msgstr "Fonturi personalizate" -#: src/app/main/ui/settings/sidebar.cljs +#: src/app/main/ui/settings/sidebar.cljs:73 msgid "labels.dashboard" msgstr "Administrare" -#: src/app/main/ui/dashboard/project_menu.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:306, src/app/main/ui/dashboard/fonts.cljs:255, src/app/main/ui/dashboard/fonts.cljs:332, src/app/main/ui/dashboard/fonts.cljs:346, src/app/main/ui/dashboard/project_menu.cljs:115, src/app/main/ui/dashboard/team.cljs:904, src/app/main/ui/settings/access_tokens.cljs:209, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:209 msgid "labels.delete" msgstr "Șterge" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:357 msgid "labels.delete-comment" msgstr "Șterge comentariu" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:354 msgid "labels.delete-comment-thread" msgstr "Șterge discuție" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:648 msgid "labels.delete-invitation" msgstr "Șterge invitație" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:262 msgid "labels.delete-multi-files" msgstr "Șterge %s fișiere" +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:199 msgid "labels.discard" msgstr "Anulați" -#: src/app/main/ui/dashboard/projects.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs, -#: src/app/main/ui/dashboard/files.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:28, src/app/main/ui/dashboard/files.cljs:72, src/app/main/ui/dashboard/files.cljs:156, src/app/main/ui/dashboard/projects.cljs:220, src/app/main/ui/dashboard/projects.cljs:224, src/app/main/ui/dashboard/sidebar.cljs:791 msgid "labels.drafts" msgstr "Drafturi" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:350, src/app/main/ui/dashboard/fonts.cljs:252, src/app/main/ui/dashboard/team.cljs:902, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:205 msgid "labels.edit" msgstr "Editează" +#, unused msgid "labels.edit-file" msgstr "Editează fișier" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:118, src/app/main/ui/dashboard/team.cljs:279, src/app/main/ui/dashboard/team.cljs:520, src/app/main/ui/dashboard/team.cljs:553, src/app/main/ui/onboarding/team_choice.cljs:66 msgid "labels.editor" msgstr "Editor" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:661 msgid "labels.expired-invitation" msgstr "Expirat" +#: src/app/main/ui/export.cljs:173 msgid "labels.export" msgstr "Exportă" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:51 msgid "labels.feedback-disabled" msgstr "Feedback dezactivat" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:42 msgid "labels.feedback-sent" msgstr "Feedback trimis" +#: src/app/main/ui/onboarding/questions.cljs:170 +msgid "labels.figma" +msgstr "Figma" + +#: src/app/main/ui/dashboard/fonts.cljs:412 msgid "labels.font-family" msgstr "Familie de Fonturi" +#, unused msgid "labels.font-providers" msgstr "Provideri de Fonturi" +#: src/app/main/ui/dashboard/fonts.cljs:413 msgid "labels.font-variants" msgstr "Stiluri" +#: src/app/main/ui/dashboard/fonts.cljs:52, src/app/main/ui/dashboard/sidebar.cljs:811 msgid "labels.fonts" msgstr "Fonturi" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/onboarding/questions.cljs:262 +msgid "labels.freelancer" +msgstr "Sunt un freelancer" + +#: src/app/main/ui/dashboard/sidebar.cljs:1015, src/app/main/ui/workspace/main_menu.cljs:142 msgid "labels.github-repo" msgstr "Repozitoriu Github" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/settings/sidebar.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:1032, src/app/main/ui/settings/sidebar.cljs:113, src/app/main/ui/workspace/main_menu.cljs:171 msgid "labels.give-feedback" msgstr "Lasă un feedback" +#: src/app/main/ui/auth/recovery_request.cljs:110, src/app/main/ui/auth/register.cljs:285, src/app/main/ui/viewer/login.cljs:117 msgid "labels.go-back" msgstr "Întoarce-te" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:978, src/app/main/ui/workspace/main_menu.cljs:102 msgid "labels.help-center" msgstr "Centru Ajutor" -#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/comments.cljs:103, src/app/main/ui/workspace/comments.cljs:67 msgid "labels.hide-resolved-comments" msgstr "Ascunde comentariile rezolvate" +#: src/app/main/ui/dashboard/team.cljs:969 msgid "labels.inactive" msgstr "Inactiv" +#: src/app/main/ui/dashboard/fonts.cljs:410 msgid "labels.installed-fonts" msgstr "Fonturi instalate" -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:144 msgid "labels.internal-error.desc-message" msgstr "" "Am întâmpinat o eroare. Te rugăm, mai încearcă o dată. Dacă problema " "persistă poți contacta echipa de suport." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:143 msgid "labels.internal-error.main-message" msgstr "Eroare internă" -#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/onboarding/questions.cljs:178 +msgid "labels.invision" +msgstr "InVision" + +#: src/app/main/ui/dashboard/sidebar.cljs:516, src/app/main/ui/dashboard/team.cljs:89, src/app/main/ui/dashboard/team.cljs:97, src/app/main/ui/dashboard/team.cljs:708 msgid "labels.invitations" msgstr "Invitații" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:51 msgid "labels.language" msgstr "Limbă" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:1008, src/app/main/ui/workspace/main_menu.cljs:134 msgid "labels.libraries-and-templates" msgstr "Biblioteci & Șabloane" +#: src/app/main/ui/viewer/header.cljs:203 msgid "labels.log-or-sign" msgstr "Conectați-vă sau înregistrați-vă" -#: src/app/main/ui/settings.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:1040 msgid "labels.logout" msgstr "Deconectare" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/team.cljs:468 msgid "labels.member" msgstr "Membru" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:510, src/app/main/ui/dashboard/team.cljs:87, src/app/main/ui/dashboard/team.cljs:95 msgid "labels.members" msgstr "Membri" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:96 msgid "labels.new-password" msgstr "Parolă nouă" -#: src/app/main/ui/workspace/comments.cljs, -#: src/app/main/ui/dashboard/comments.cljs +#: src/app/main/ui/dashboard/templates.cljs:269, src/app/main/ui/onboarding/questions.cljs:55 +msgid "labels.next" +msgstr "Următor" + +#: src/app/main/ui/dashboard/comments.cljs:128, src/app/main/ui/workspace/comments.cljs:161 msgid "labels.no-comments-available" msgstr "Sunteți la zi! Notificările de comentarii noi vor apărea aici." -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:694 msgid "labels.no-invitations" msgstr "Nu există invitații în așteptare." -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:696 +#, markdown msgid "labels.no-invitations-hint" msgstr "" "Faceți clic pe butonul **Invitați persoane** pentru a invita persoane în " "această echipă." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:50 msgid "labels.not-found.desc-message" msgstr "Această pagină nu există sau nu ai permisiunea să o accesezi." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:49 msgid "labels.not-found.main-message" msgstr "Opa!" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/projects.cljs:239, src/app/main/ui/dashboard/team.cljs:1095 msgid "labels.num-of-files" msgid_plural "labels.num-of-files" msgstr[0] "1 fişier" msgstr[1] "%s fişiere" msgstr[2] "%s fişiere" +#: src/app/main/ui/viewer/thumbnails.cljs:80 msgid "labels.num-of-frames" msgid_plural "labels.num-of-frames" msgstr[0] "1 planșă" msgstr[1] "%s planșe" msgstr[2] "%s de planșe" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1090 msgid "labels.num-of-projects" msgid_plural "labels.num-of-projects" msgstr[0] "1 proiecte" msgstr[1] "%s proiecte" msgstr[2] "%s proiecte" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:89 msgid "labels.old-password" msgstr "Parola veche" #: src/app/main/ui/workspace/comments.cljs +#, unused msgid "labels.only-yours" msgstr "Personale" +#, unused msgid "labels.or" msgstr "sau" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/onboarding/questions.cljs:145, src/app/main/ui/onboarding/questions.cljs:214, src/app/main/ui/onboarding/questions.cljs:303, src/app/main/ui/onboarding/questions.cljs:316, src/app/main/ui/onboarding/questions.cljs:389, src/app/main/ui/onboarding/questions.cljs:447 +msgid "labels.other" +msgstr "Alta (specificați)" + +#: src/app/main/ui/dashboard/team.cljs:286, src/app/main/ui/dashboard/team.cljs:518, src/app/main/ui/dashboard/team.cljs:1076 msgid "labels.owner" msgstr "Autor" -#: src/app/main/ui/settings/sidebar.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/settings/sidebar.cljs:87 msgid "labels.password" msgstr "Parola" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:662 msgid "labels.pending-invitation" msgstr "În curs" -#: src/app/main/ui/settings/sidebar.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/onboarding/questions.cljs:51 +msgid "labels.previous" +msgstr "Anterior" + +#: src/app/main/ui/settings/profile.cljs:118, src/app/main/ui/settings/sidebar.cljs:82 msgid "labels.profile" msgstr "Profil" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:784 msgid "labels.projects" msgstr "Proiecte" -#: src/app/main/ui/settings/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:998, src/app/main/ui/settings/sidebar.cljs:106, src/app/main/ui/workspace/main_menu.cljs:126 msgid "labels.release-notes" msgstr "Mențiuni" #: src/app/main/ui/workspace.cljs +#, unused msgid "labels.reload-file" msgstr "Reîncărcați fișierul" -#: src/app/main/ui/workspace/libraries.cljs, -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/workspace/libraries.cljs, src/app/main/ui/dashboard/team.cljs +#, unused msgid "labels.remove" msgstr "Elimină" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:316 msgid "labels.remove-member" msgstr "Eliminați membru" -#: src/app/main/ui/dashboard/sidebar.cljs, -#: src/app/main/ui/dashboard/project_menu.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:271, src/app/main/ui/dashboard/project_menu.cljs:85, src/app/main/ui/dashboard/sidebar.cljs:539, src/app/main/ui/workspace/sidebar/assets/groups.cljs:157 msgid "labels.rename" msgstr "Redenumire" -#: src/app/main/ui/dashboard/team_form.cljs +#: src/app/main/ui/dashboard/team_form.cljs:99 msgid "labels.rename-team" msgstr "Modifică numele echipei" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:645 msgid "labels.resend-invitation" msgstr "Retrimite invitația" -#: src/app/main/ui/static.cljs, src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:61, src/app/main/ui/static.cljs:70, src/app/main/ui/static.cljs:148 msgid "labels.retry" msgstr "Încearcă din nou" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:469, src/app/main/ui/dashboard/team.cljs:709 msgid "labels.role" msgstr "Rol" +#: src/app/main/ui/dashboard/fonts.cljs:380, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:191 msgid "labels.save" msgstr "Salvează" +#: src/app/main/ui/dashboard/fonts.cljs:415 msgid "labels.search-font" msgstr "Caută font" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/onboarding/questions.cljs:90, src/app/main/ui/onboarding/questions.cljs:248, src/app/main/ui/onboarding/questions.cljs:259, src/app/main/ui/onboarding/questions.cljs:270 +msgid "labels.select-option" +msgstr "Selectați opțiune" + +#: src/app/main/ui/settings/feedback.cljs:82 msgid "labels.send" msgstr "Trimitere" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:82 msgid "labels.sending" msgstr "Se trimite…" -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:68 msgid "labels.service-unavailable.desc-message" msgstr "Momentan suntem în mentenanță." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:67 msgid "labels.service-unavailable.main-message" msgstr "Serviciul nu este disponibil" -#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:530, src/app/main/ui/dashboard/team.cljs:88, src/app/main/ui/dashboard/team.cljs:102, src/app/main/ui/settings/options.cljs:84, src/app/main/ui/settings/sidebar.cljs:93 msgid "labels.settings" msgstr "Setări" -#: src/app/main/ui/viewer/header.cljs, src/app/main/ui/viewer/header.cljs +#, unused msgid "labels.share-prototype" msgstr "Distribuie link" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:800 msgid "labels.shared-libraries" msgstr "Biblioteci distribuite" -#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/comments.cljs:82, src/app/main/ui/workspace/comments.cljs:55, src/app/main/ui/workspace/comments.cljs:135 msgid "labels.show-all-comments" msgstr "Afișează toate comentariile" +#: src/app/main/ui/viewer/comments.cljs:115 msgid "labels.show-comments-list" msgstr "Arată lista de comentarii" -#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/comments.cljs:91, src/app/main/ui/workspace/comments.cljs:61, src/app/main/ui/workspace/comments.cljs:136 msgid "labels.show-your-comments" msgstr "Afișează doar comentariile mele" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/onboarding/questions.cljs:172 +msgid "labels.sketch" +msgstr "Sketch" + +#: src/app/main/ui/onboarding/questions.cljs:56 +msgid "labels.start" +msgstr "Începeți" + +#: src/app/main/ui/dashboard/team.cljs:710 msgid "labels.status" msgstr "Stare" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/onboarding/questions.cljs:251 +msgid "labels.student-teacher" +msgstr "Student sau profesor" + +#: src/app/main/ui/dashboard/sidebar.cljs:992, src/app/main/ui/workspace/main_menu.cljs:118 msgid "labels.tutorials" msgstr "Tutoriale" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:256 msgid "labels.unpublish-multi-files" msgstr "Depublicați %s fișiere" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:103 msgid "labels.update" msgstr "Actualizare" -#: src/app/main/ui/dashboard/team_form.cljs +#: src/app/main/ui/dashboard/team_form.cljs:120 msgid "labels.update-team" msgstr "Actualizare echipă" +#: src/app/main/ui/dashboard/fonts.cljs:241 msgid "labels.upload" msgstr "Încărcare" +#: src/app/main/ui/dashboard/fonts.cljs:169 msgid "labels.upload-custom-fonts" msgstr "Încarcă fonturi personalizate" +#: src/app/main/ui/dashboard/fonts.cljs:240 msgid "labels.uploading" msgstr "Se încarcă…" +#: src/app/main/ui/workspace/sidebar/sitemap.cljs:223 msgid "labels.view-only" msgstr "NUMAI VIZUALIZARE" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:123, src/app/main/ui/dashboard/team.cljs:282, src/app/main/ui/dashboard/team.cljs:521 msgid "labels.viewer" msgstr "Vizitator" +#: src/app/main/ui/dashboard/sidebar.cljs:523, src/app/main/ui/dashboard/team.cljs:90, src/app/main/ui/dashboard/team.cljs:100, src/app/main/ui/dashboard/team.cljs:880 msgid "labels.webhooks" msgstr "Webhook-uri" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:194 msgid "labels.write-new-comment" msgstr "Scrie un comentariu" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/team.cljs:237 msgid "labels.you" msgstr "(tu)" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:968 msgid "labels.your-account" msgstr "Contul tău" -#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs +#: src/app/main/data/media.cljs:49, src/app/main/data/workspace/media.cljs:223, src/app/main/data/workspace/media.cljs:453 msgid "media.loading" msgstr "Încarcă imaginea…" +#: src/app/main/data/common.cljs:111 msgid "modals.add-shared-confirm-empty.hint" msgstr "" "Biblioteca dumneavoastră este goală. Odată adăugate ca bibliotecă " "partajată, obiectele pe care le creați vor fi disponibile pentru a fi " "utilizate în celelalte fișiere. Sunteți sigur că doriți să o publicați?" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/data/common.cljs:113 msgid "modals.add-shared-confirm.accept" msgstr "Adaugă la Colecții distribuite" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/data/common.cljs:111 msgid "modals.add-shared-confirm.hint" msgstr "" "O dată adăugat la Colecții distribuite, toate fișierele acestei colecții " "vor deveni disponibile altora." -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/data/common.cljs:110 msgid "modals.add-shared-confirm.message" msgstr "Adaugă “%s” la Colecții Distribuite" -#: src/app/main/ui/workspace/nudge.cljs +#: src/app/main/ui/workspace/nudge.cljs:60 msgid "modals.big-nudge" msgstr "Ghiont mare" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:127 msgid "modals.change-email.confirm-email" msgstr "Verifică-ți adresa de e-mail" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:114 msgid "modals.change-email.info" msgstr "Îți vom trimite un email pe adresa “%s” pentru identificare." -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:119 msgid "modals.change-email.new-email" msgstr "Mail nou" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:136 msgid "modals.change-email.submit" msgstr "Schimbă adresa de e-mail" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:107 msgid "modals.change-email.title" msgstr "Schimbă-ți adresa de E-mail" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:165, src/app/main/ui/settings/access_tokens.cljs:171 msgid "modals.create-access-token.copy-token" msgstr "Copiați jeton" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:142 msgid "modals.create-access-token.expiration-date.label" msgstr "Dată de expirare" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:136 msgid "modals.create-access-token.name.label" msgstr "Nume" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:138 msgid "modals.create-access-token.name.placeholder" msgstr "Numele vă poate ajuta să știți pentru ce este folosit jetonul" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:191 msgid "modals.create-access-token.submit-label" msgstr "Creați jeton" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:123 msgid "modals.create-access-token.title" msgstr "Generați jeton acces" +#: src/app/main/ui/dashboard/team.cljs:873 msgid "modals.create-webhook.submit-label" msgstr "Creați webhook" +#: src/app/main/ui/dashboard/team.cljs:838 msgid "modals.create-webhook.title" msgstr "Creați webhook" +#: src/app/main/ui/dashboard/team.cljs:849 msgid "modals.create-webhook.url.label" msgstr "URL a încărcăturii" +#: src/app/main/ui/dashboard/team.cljs:850 msgid "modals.create-webhook.url.placeholder" msgstr "https://example.com/postreceive" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:271 msgid "modals.delete-acces-token.accept" msgstr "Ștergeți jeton" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:270 msgid "modals.delete-acces-token.message" msgstr "Sunteți sigur că doriți să ștergeți acest jeton?" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:269 msgid "modals.delete-acces-token.title" msgstr "Ștergeți jeton" -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:59 msgid "modals.delete-account.cancel" msgstr "Anulează ștergerea contului" -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:64 msgid "modals.delete-account.confirm" msgstr "Confirm ștergerea contului" -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:53 msgid "modals.delete-account.info" msgstr "Prin ștergerea contului, se vor șterge toate proiectele și arhivele tale." -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:46 msgid "modals.delete-account.title" msgstr "Ești sigur că dorești ștergerea contului?" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:298 msgid "modals.delete-comment-thread.accept" msgstr "Șterge conversație" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:297 msgid "modals.delete-comment-thread.message" msgstr "" "Ești sigur că dorești să ștergi această conversație? Toate discuțiile din " "cadrul subiect vor fi șterse." -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:296 msgid "modals.delete-comment-thread.title" msgstr "Șterge conversație" +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:140 msgid "modals.delete-component-annotation.message" msgstr "Sunteți sigur că doriți să ștergeți această notă?" +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:139 msgid "modals.delete-component-annotation.title" msgstr "Ștergeți notă" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:123 msgid "modals.delete-file-confirm.accept" msgstr "Șterge fișier" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:122 msgid "modals.delete-file-confirm.message" msgstr "Ești sigur că dorești să ștergi acest fișier?" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:121 msgid "modals.delete-file-confirm.title" msgstr "Ștergere fișier" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:117 msgid "modals.delete-file-multi-confirm.accept" msgstr "Șterge fișiere" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:116 msgid "modals.delete-file-multi-confirm.message" msgstr "Ești sigur că dorești să ștergi aceste %s fișiere?" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:115 msgid "modals.delete-file-multi-confirm.title" msgstr "Ștergere %s fișeiere în curs" +#: src/app/main/ui/dashboard/fonts.cljs:345 msgid "modals.delete-font-variant.message" msgstr "" "Sigur doriți să ștergeți acest stil de font? Nu se va încărca dacă este " "folosit într-un fișier." +#: src/app/main/ui/dashboard/fonts.cljs:344 msgid "modals.delete-font-variant.title" msgstr "Ștergerea stilului fontului" +#: src/app/main/ui/dashboard/fonts.cljs:331 msgid "modals.delete-font.message" msgstr "" "Ești sigur că dorești să ștergi acest font? O dată șters acesta nu se va " "mai încărca în proiectele tale." +#: src/app/main/ui/dashboard/fonts.cljs:330 msgid "modals.delete-font.title" msgstr "Ștergere font" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs +#: src/app/main/ui/workspace/context_menu.cljs:522, src/app/main/ui/workspace/sidebar/sitemap.cljs:45 msgid "modals.delete-page.body" msgstr "Ești sigur că dorești să ștergi această pagină?" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs +#: src/app/main/ui/workspace/context_menu.cljs:521, src/app/main/ui/workspace/sidebar/sitemap.cljs:44 msgid "modals.delete-page.title" msgstr "Șterge pagină" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:69 msgid "modals.delete-project-confirm.accept" msgstr "Șterge proiect" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:68 msgid "modals.delete-project-confirm.message" msgstr "Ești sigur că dorești să ștergi acest proiect?" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:67 msgid "modals.delete-project-confirm.title" msgstr "Șterge proiect" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:51 msgid "modals.delete-shared-confirm.accept" msgid_plural "modals.delete-shared-confirm.accept" msgstr[0] "Șterge fișier" msgstr[1] "Șterge fișiere" msgstr[2] "Șterge fișierele" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:55 msgid "modals.delete-shared-confirm.activated.no-files-message" msgid_plural "modals.delete-shared-confirm.activated.no-files-message" msgstr[0] "Nu este activat în niciun fișier." msgstr[1] "Nu sunt activate în niciun fișier." msgstr[2] "Nu sunt activate în niciun fișier." -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:57 msgid "modals.delete-shared-confirm.activated.scd-message" msgid_plural "modals.delete-shared-confirm.activated.scd-message" msgstr[0] "Această librărie este activată aici: " msgstr[1] "Aceste librării sunt activate aici: " msgstr[2] "Aceste librării sunt activate aici: " -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:46 msgid "modals.delete-shared-confirm.message" msgid_plural "modals.delete-shared-confirm.message" msgstr[0] "Ești sigur că vrei sa ștergi acest fișier?" msgstr[1] "Ești sigur că vrei sa ștergi aceste fișiere?" msgstr[2] "Ești sigur că vrei sa ștergi aceste fișiere?" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:41 msgid "modals.delete-shared-confirm.title" msgid_plural "modals.delete-shared-confirm.title" msgstr[0] "Se șterge fișierul" msgstr[1] "Se șterg fișierele" msgstr[2] "Se șterg fișierele" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:435 msgid "modals.delete-team-confirm.accept" msgstr "Șterge echipă" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:434 msgid "modals.delete-team-confirm.message" msgstr "" "Ești sigur că dorești să ștergi această echipă? Toate proiectele și " "fișierele asociate acesteia vor fi permanent șterse." -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:433 msgid "modals.delete-team-confirm.title" msgstr "Ștergere echipă în curs" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:427 msgid "modals.delete-team-member-confirm.accept" msgstr "Elimină membru" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:426 msgid "modals.delete-team-member-confirm.message" msgstr "Ești sigur că dorești să elimini acest membru din echipă?" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:425 msgid "modals.delete-team-member-confirm.title" msgstr "Elimină un membru al echipei" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:59 msgid "modals.delete-unpublish-shared-confirm.activated.hint" msgid_plural "modals.delete-unpublish-shared-confirm.activated.hint" msgstr[0] "" @@ -1988,1162 +2169,1307 @@ msgstr[2] "" "Obiectele care au fost folosite deja în aceste fișiere vor rămâne acolo " "(niciun design nu va fi stricat)." +#: src/app/main/ui/dashboard/team.cljs:942 msgid "modals.delete-webhook.accept" msgstr "Ștergeți webhook" +#: src/app/main/ui/dashboard/team.cljs:941 msgid "modals.delete-webhook.message" msgstr "Sunteți sigur că doriți să ștergeți acest webhook?" +#: src/app/main/ui/dashboard/team.cljs:940 msgid "modals.delete-webhook.title" msgstr "Ștergerea webhook-ului" +#: src/app/main/ui/dashboard/team.cljs:872 msgid "modals.edit-webhook.submit-label" msgstr "Editați webhook" +#: src/app/main/ui/dashboard/team.cljs:837 msgid "modals.edit-webhook.title" msgstr "Editați webhook" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:218 msgid "modals.invite-member-confirm.accept" msgstr "Trimite invitație" +#: src/app/main/ui/dashboard/team.cljs:213, src/app/main/ui/onboarding/team_choice.cljs:156 msgid "modals.invite-member.emails" msgstr "E-mailuri, separate prin virgulă" +#: src/app/main/ui/dashboard/team.cljs:197 msgid "modals.invite-member.repeated-invitation" msgstr "" "Unele e-mailuri provin de la membri actuali ai echipei. Invitațiile lor nu " "vor fi trimise." -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:190 msgid "modals.invite-team-member.title" msgstr "Invitați membri în echipă" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:423, src/app/main/ui/dashboard/team.cljs:393 msgid "modals.leave-and-close-confirm.hint" msgstr "" "Deoarece ești singurul membru al acestei echipe, echipa va fi ștearsă " "împreună cu proiectele și fișierele sale." -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:422, src/app/main/ui/dashboard/team.cljs:392 msgid "modals.leave-and-close-confirm.message" msgstr "Sigur doriți să părăsiți echipa %s?" +#: src/app/main/ui/dashboard/change_owner.cljs:59 msgid "modals.leave-and-reassign.forbidden" msgstr "" "Nu puteţi părăsi echipa dacă nu există un alt membru care să devină " "administrator. Aţi putea şterge echipa." -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/change_owner.cljs:55 msgid "modals.leave-and-reassign.hint1" msgstr "Ești administratorul echipei %s." -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/change_owner.cljs:78 msgid "modals.leave-and-reassign.promote-and-leave" msgstr "Promovează şi părăseşte echipa" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/change_owner.cljs:34 msgid "modals.leave-and-reassign.select-member-to-promote" msgstr "Selectează un membru pentru promovare" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/change_owner.cljs:49 msgid "modals.leave-and-reassign.title" msgstr "Selectează un membru pentru promovare" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:402, src/app/main/ui/dashboard/sidebar.cljs:424, src/app/main/ui/dashboard/team.cljs:394, src/app/main/ui/dashboard/team.cljs:416 msgid "modals.leave-confirm.accept" msgstr "Părăsește echipa" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:401, src/app/main/ui/dashboard/team.cljs:415 msgid "modals.leave-confirm.message" msgstr "Ești sigur că dorești să părăsești această echipă?" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:400, src/app/main/ui/dashboard/sidebar.cljs:421, src/app/main/ui/dashboard/team.cljs:391, src/app/main/ui/dashboard/team.cljs:414 msgid "modals.leave-confirm.title" msgstr "Părăsire echipă în curs" -#: src/app/main/ui/workspace/nudge.cljs +#: src/app/main/ui/workspace/main_menu.cljs:266, src/app/main/ui/workspace/nudge.cljs:47 msgid "modals.nudge-title" msgstr "Suma înghiontului" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:340 msgid "modals.promote-owner-confirm.accept" msgstr "Promovează" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:339 msgid "modals.promote-owner-confirm.hint" msgstr "" "Dacă transferați dreptul de proprietate, vă veți schimba rolul în " "Administrator, pierzând unele permisiuni asupra acestei echipe. " -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:338 msgid "modals.promote-owner-confirm.message" msgstr "Ești sigur că dorești să promovezi acest utilizator ca deținător al echipei?" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:337 msgid "modals.promote-owner-confirm.title" msgstr "Confirmare promovare" +#: src/app/main/ui/workspace/libraries.cljs:188 msgid "modals.publish-empty-library.accept" msgstr "Publicați" +#: src/app/main/ui/workspace/libraries.cljs:187 msgid "modals.publish-empty-library.message" msgstr "Librăria dvs. este goală. Sunteți sigur că doriți să o publicați?" +#: src/app/main/ui/workspace/libraries.cljs:186 msgid "modals.publish-empty-library.title" msgstr "Publicați librărie goală" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "modals.remove-shared-confirm.accept" msgstr "Elimină din Colecțiile Distribuite" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "modals.remove-shared-confirm.hint" msgstr "" "O dată șters din Colecțiile Distribuite, toate fișierele acestei colecții " "nu vor mai fi disponibile altora." -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "modals.remove-shared-confirm.message" msgstr "Șterge “%s” din Colecții Distribuite" -#: src/app/main/ui/workspace/nudge.cljs +#: src/app/main/ui/workspace/nudge.cljs:53 msgid "modals.small-nudge" msgstr "Înghiont mic" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:52 msgid "modals.unpublish-shared-confirm.accept" msgid_plural "modals.unpublish-shared-confirm.accept" msgstr[0] "Anulați publicarea" msgstr[1] "Anulați publicarea" msgstr[2] "Anulați publicarea" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:47 msgid "modals.unpublish-shared-confirm.message" msgid_plural "modals.unpublish-shared-confirm.message" msgstr[0] "Sigur doriți să anulați publicarea acestei biblioteci?" msgstr[1] "Sigur doriți să anulați publicarea acestor biblioteci?" msgstr[2] "Sigur doriți să anulați publicarea acestor biblioteci?" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:42 msgid "modals.unpublish-shared-confirm.title" msgid_plural "modals.unpublish-shared-confirm.title" msgstr[0] "Anulează publicarea bibliotecii" msgstr[1] "Anulează publicarea bibliotecilor" msgstr[2] "Anulează publicarea bibliotecilor" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#, unused msgid "modals.update-remote-component-in-bulk.hint" msgstr "" "Ești pe cale de a actualiza componentele dintr-o bibliotecă partajată. " "Acest lucru poate afecta alte fișiere care o folosesc." -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#, unused msgid "modals.update-remote-component-in-bulk.message" msgstr "Actualizează componentele într-o bibliotecă partajată" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:380 msgid "modals.update-remote-component.accept" msgstr "Actualizare componentă" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:379 msgid "modals.update-remote-component.cancel" msgstr "Anulează" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:378 msgid "modals.update-remote-component.hint" msgstr "" "Actualizezi o componentă dintr-o colecţie distribuită. Pot fi afectate alte " "fişiere ce o folosesc." -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:377 msgid "modals.update-remote-component.message" msgstr "Actualizaţi o componentă dintr-o colecţie distribuită" -#: src/app/main/data/common.cljs +#: src/app/main/data/common.cljs:71 msgid "notifications.by-code.upgrade-version" msgstr "O versiune nouă este valabilă, vă rugăm să reîncărcați pagina" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:154, src/app/main/ui/dashboard/team.cljs:595 msgid "notifications.invitation-email-sent" msgstr "Invitaţie trimisă cu succes" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:616 msgid "notifications.invitation-link-copied" msgstr "Link de invitație copiat" -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:24 msgid "notifications.profile-deletion-not-allowed" msgstr "Nu vă puteți șterge profilul. Reatribuiți-vă echipele înainte de a continua." -#: src/app/main/ui/settings/profile.cljs, src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:29, src/app/main/ui/settings/profile.cljs:35 msgid "notifications.profile-saved" msgstr "Profil salvat cu succes!" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:63 msgid "notifications.validation-email-sent" msgstr "Un e-mail de verificare a fost trimis la %s. Verifică-ţi adresa de e-mail!" +#, unused msgid "onboarding-v2.before-start.desc1" msgstr "" "Trebuie să știți că există o mulțime de resurse disponibile pentru a vă " "ajuta să începeți cu Penpot, cum ar fi Ghidul utilizatorului și canalul " "nostru de Youtube." +#, unused msgid "onboarding-v2.before-start.desc2" msgstr "" "Informații detaliate despre cum să utilizați Penpot. De la prototipare la " "organizarea sau partajarea design-urilor." +#, unused msgid "onboarding-v2.before-start.desc2.title" msgstr "Ghid utilizator" +#, unused msgid "onboarding-v2.before-start.desc3" msgstr "" "Puteți urmări tutorialele noastre și tutorialele realizate de comunitatea " "noastră." +#, unused msgid "onboarding-v2.before-start.desc3.title" msgstr "Tutoriale video" +#, unused msgid "onboarding-v2.before-start.title" msgstr "Înainte de a începe" +#: src/app/main/ui/onboarding/newsletter.cljs:63 msgid "onboarding-v2.newsletter.desc" msgstr "" "Abonați-vă la newsletter-ul Penpot pentru a fi la curent cu progresul și " "noutățile dezvoltării produsului." +#: src/app/main/ui/onboarding/newsletter.cljs:83 msgid "onboarding-v2.newsletter.news" msgstr "" "Trimite-mi noutăți despre Penpot (postări pe blog, tutoriale video, " "streaming...)." +#: src/app/main/ui/onboarding/newsletter.cljs:91 msgid "onboarding-v2.newsletter.privacy1" msgstr "Ne pasă de confidențialitate, aici puteți citi " +#: src/app/main/ui/onboarding/newsletter.cljs:97 msgid "onboarding-v2.newsletter.privacy2" msgstr "" "Vă vom trimite doar e-mailuri relevante. Vă puteți dezabona oricând prin " "linkul de dezabonare din oricare dintre buletinele noastre informative." +#: src/app/main/ui/onboarding/newsletter.cljs:71 msgid "onboarding-v2.newsletter.updates" msgstr "Trimite-mi actualizări de produse (funcții noi, lansări, remedieri...)." +#, unused msgid "onboarding-v2.welcome.desc1" msgstr "" "Penpot este Open Source și este făcut de Kaleidos, precum și de comunitate, " "unde mulți oameni deja se ajută reciproc. Toată lumea poate colabora prin:" +#, unused msgid "onboarding-v2.welcome.desc2" msgstr "" "Un spațiu public pentru a învăța, a împărtăși și a discuta despre Penpot, " "prezentul și viitorul său cu întreaga comunitate și echipa principală " "Penpot." +#, unused msgid "onboarding-v2.welcome.desc2.title" msgstr "Participând în Comunitate" +#, unused msgid "onboarding-v2.welcome.desc3" msgstr "" "Unde veți găsi cum să colaborați cu traduceri, solicitări de funcții, " "contribuții de bază, vânătoare de erori…" +#, unused msgid "onboarding-v2.welcome.desc3.title" msgstr "Ghid de contribuție" +#: src/app/main/ui/onboarding/team_choice.cljs:31 msgid "onboarding-v2.welcome.title" msgstr "Bun venit la Penpot!" +#: src/app/main/ui/onboarding/team_choice.cljs:215 msgid "onboarding.choice.team-up.create-team-desc" msgstr "După ce îți denumești echipa, vei putea invita oameni să se alăture." +#: src/app/main/ui/onboarding/team_choice.cljs:224 msgid "onboarding.choice.team-up.create-team-placeholder" msgstr "Introduceți numele echipei" +#: src/app/main/ui/dashboard/projects.cljs:89, src/app/main/ui/onboarding/team_choice.cljs:140 msgid "onboarding.choice.team-up.invite-members" msgstr "Invitați membri" +#: src/app/main/ui/onboarding/team_choice.cljs:141 msgid "onboarding.choice.team-up.invite-members-info" msgstr "" "Nu uitați să includeți pe toată lumea. Dezvoltatori, designeri, manageri... " "diversitatea se adaugă :)" +#: src/app/main/ui/dashboard/team.cljs:202, src/app/main/ui/onboarding/team_choice.cljs:146 msgid "onboarding.choice.team-up.roles" msgstr "Invitați cu rolul:" +#, unused msgid "onboarding.newsletter.accept" msgstr "Da, abonează" +#: src/app/main/ui/onboarding/newsletter.cljs:40 msgid "onboarding.newsletter.acceptance-message" msgstr "" "Solicitarea dvs. de abonament a fost trimisă, vă vom trimite un e-mail " "pentru a o confirma." +#: src/app/main/ui/onboarding/newsletter.cljs:95 msgid "onboarding.newsletter.policy" msgstr "Politica de Confidențialitate." +#: src/app/main/ui/onboarding/newsletter.cljs:60 msgid "onboarding.newsletter.title" msgstr "Vrei să primești știri Penpot?" +#: src/app/main/ui/onboarding/questions.cljs:118 +msgid "onboarding.questions.lets-get-started" +msgstr "Să începem!" + +#: src/app/main/ui/onboarding/questions.cljs:273 +msgid "onboarding.questions.team-size.11-30" +msgstr "11-30" + +#: src/app/main/ui/onboarding/questions.cljs:274 +msgid "onboarding.questions.team-size.2-10" +msgstr "2-10" + +#: src/app/main/ui/onboarding/questions.cljs:272 +msgid "onboarding.questions.team-size.31-50" +msgstr "31-50" + +#: src/app/main/ui/onboarding/questions.cljs:271 +msgid "onboarding.questions.team-size.more-than-50" +msgstr "Mai mult de 50" + +#: src/app/main/ui/onboarding/questions.cljs:276 +msgid "onboarding.questions.team-size.personal-project" +msgstr "Lucrez la un proiect personal" + +#: src/app/main/ui/onboarding/team_choice.cljs:213 msgid "onboarding.team-modal.create-team" msgstr "Creați o echipă" +#: src/app/main/ui/onboarding/team_choice.cljs:35 msgid "onboarding.team-modal.create-team-desc" msgstr "" "O echipă vă permite să colaborați cu alți utilizatori Penpot care lucrează " "în aceleași fișiere și proiecte." +#: src/app/main/ui/onboarding/team_choice.cljs:40 msgid "onboarding.team-modal.create-team-feature-1" msgstr "Fișiere și proiecte nelimitate" +#: src/app/main/ui/onboarding/team_choice.cljs:44 msgid "onboarding.team-modal.create-team-feature-2" msgstr "Ediția multi-utilizator" +#: src/app/main/ui/onboarding/team_choice.cljs:48 msgid "onboarding.team-modal.create-team-feature-3" msgstr "Managementul rolurilor" +#: src/app/main/ui/onboarding/team_choice.cljs:52 msgid "onboarding.team-modal.create-team-feature-4" msgstr "Membri nelimitați" +#: src/app/main/ui/onboarding/team_choice.cljs:56 msgid "onboarding.team-modal.create-team-feature-5" msgstr "100% gratuit!" +#: src/app/main/ui/onboarding/templates.cljs:78 msgid "onboarding.templates.subtitle" msgstr "Aici sunt câteva șabloane." +#: src/app/main/ui/onboarding/templates.cljs:77 msgid "onboarding.templates.title" msgstr "Începeți să proiectați" +#, unused msgid "onboarding.welcome.alt" msgstr "Penpot" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:99 msgid "profile.recovery.go-to-login" msgstr "Mergi la autentificare" -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.team-size.11-30" -msgstr "11-30" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.team-size.2-10" -msgstr "2-10" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.team-size.31-50" -msgstr "31-50" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.adobe-xd" -msgstr "Adobe XD" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.canva" -msgstr "Canva" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.figma" -msgstr "Figma" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.freelancer" -msgstr "Sunt un freelancer" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.invision" -msgstr "InVision" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.lets-get-started" -msgstr "Să începem!" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.team-size.more-than-50" -msgstr "Mai mult de 50" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.next" -msgstr "Următor" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.other" -msgstr "Alta (specificați)" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.team-size.personal-project" -msgstr "Lucrez la un proiect personal" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.previous" -msgstr "Anterior" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.select-option" -msgstr "Selectați opțiune" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.sketch" -msgstr "Sketch" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.start" -msgstr "Începeți" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.student-teacher" -msgstr "Student sau profesor" - -#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, +#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:221 msgid "settings.detach" msgstr "Detașați" -#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs +#: src/app/main/ui/viewer/inspect/exports.cljs:147, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:631, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:137, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:148, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:188, src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:158, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:399, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:410, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:430, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:441, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:458, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:472, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:309, src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:183, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:373, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:389, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:245, src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:172 msgid "settings.multiple" msgstr "Multiple" # SECTIONS +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:414 msgid "shortcut-section.basics" msgstr "Bazele" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:420 msgid "shortcut-section.dashboard" msgstr "Bord" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:423 msgid "shortcut-section.viewer" msgstr "Vizualizator" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:417 msgid "shortcut-section.workspace" msgstr "Spațiu de lucru" # SUBSECTIONS +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:56 msgid "shortcut-subsection.alignment" msgstr "Aliniere" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:57 msgid "shortcut-subsection.edit" msgstr "Editează" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:58 msgid "shortcut-subsection.general-dashboard" msgstr "Generic" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:59 msgid "shortcut-subsection.general-viewer" msgstr "Generic" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:60 msgid "shortcut-subsection.main-menu" msgstr "Meniul principal" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:61 msgid "shortcut-subsection.modify-layers" msgstr "Modifică straturi" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:62 msgid "shortcut-subsection.navigation-dashboard" msgstr "Navigație" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:63 msgid "shortcut-subsection.navigation-viewer" msgstr "Navigație" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:64 msgid "shortcut-subsection.navigation-workspace" msgstr "Navigație" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:65 msgid "shortcut-subsection.panels" msgstr "Panouri" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:66 msgid "shortcut-subsection.path-editor" msgstr "Drumuri" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:67 msgid "shortcut-subsection.shape" msgstr "Forme" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:68 msgid "shortcut-subsection.text-editor" msgstr "Texte" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:69 msgid "shortcut-subsection.tools" msgstr "Unelte" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:70 msgid "shortcut-subsection.zoom-viewer" msgstr "Zoom" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:71 msgid "shortcut-subsection.zoom-workspace" msgstr "Zoom" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:72 msgid "shortcuts.add-comment" msgstr "Comentarii" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:73 msgid "shortcuts.add-node" msgstr "Adaugă nod" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:74 msgid "shortcuts.align-bottom" msgstr "Aliniați jos" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:75 msgid "shortcuts.align-center" msgstr "Aliniere la centru" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:76 msgid "shortcuts.align-hcenter" msgstr "Aliniați centrul orizontal" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:77 msgid "shortcuts.align-justify" msgstr "Aliniere justificată" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:78 msgid "shortcuts.align-left" msgstr "Aliniați stânga" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:79 msgid "shortcuts.align-right" msgstr "Aliniați dreapta" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:80 msgid "shortcuts.align-top" msgstr "Aliniați sus" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:81 msgid "shortcuts.align-vcenter" msgstr "Aliniați centrul vertical" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:82 msgid "shortcuts.artboard-selection" msgstr "Creează tablă din selecție" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:83 msgid "shortcuts.bold" msgstr "Comutare bold" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:84 msgid "shortcuts.bool-difference" msgstr "Diferența booleană" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:85 msgid "shortcuts.bool-exclude" msgstr "Exclude boolean" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:86 msgid "shortcuts.bool-intersection" msgstr "Intersecție boolean" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:87 msgid "shortcuts.bool-union" msgstr "Uniune boolean" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:88 msgid "shortcuts.bring-back" msgstr "Trimite la spate" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:89 msgid "shortcuts.bring-backward" msgstr "Trimite în spate" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:90 msgid "shortcuts.bring-forward" msgstr "Aduce în față" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:91 msgid "shortcuts.bring-front" msgstr "Aduce în față" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:92 msgid "shortcuts.clear-undo" msgstr "Ștergeți anularea" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:93 msgid "shortcuts.copy" msgstr "Copiază" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:94 msgid "shortcuts.create-component" msgstr "Creează component" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:95 msgid "shortcuts.create-new-project" msgstr "Creează nou" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:96 msgid "shortcuts.cut" msgstr "Taie" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:97 msgid "shortcuts.decrease-zoom" msgstr "Micșorează" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:98 msgid "shortcuts.delete" msgstr "Șterge" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:99 msgid "shortcuts.delete-node" msgstr "Șterge nod" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:100 msgid "shortcuts.detach-component" msgstr "Detașează component" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:101 msgid "shortcuts.draw-curve" msgstr "Curbă" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:102 msgid "shortcuts.draw-ellipse" msgstr "Elipsă" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:103 msgid "shortcuts.draw-frame" msgstr "Tablă" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:104 msgid "shortcuts.draw-nodes" msgstr "Trasează drum" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:105 msgid "shortcuts.draw-path" msgstr "Drum" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:106 msgid "shortcuts.draw-rect" msgstr "Dreptunghi" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:107 msgid "shortcuts.draw-text" msgstr "Text" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:108 msgid "shortcuts.duplicate" msgstr "Duplică" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:109 msgid "shortcuts.escape" msgstr "Anulează" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:110 msgid "shortcuts.export-shapes" msgstr "Exportați formele" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:111 msgid "shortcuts.fit-all" msgstr "Măriți pentru a încăpea tot" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:112 msgid "shortcuts.flip-horizontal" msgstr "Întoarceți pe orizontală" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:113 msgid "shortcuts.flip-vertical" msgstr "Întoarceți pe verticală" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:114 msgid "shortcuts.font-size-dec" msgstr "Reducere dimensiune font" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:115 msgid "shortcuts.font-size-inc" msgstr "Creștere dimensiune font" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:116 msgid "shortcuts.go-to-drafts" msgstr "Accesați schițele" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:117 msgid "shortcuts.go-to-libs" msgstr "Accesați bibliotecile partajate" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:118 msgid "shortcuts.go-to-search" msgstr "Căutați" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:119 msgid "shortcuts.group" msgstr "Grup" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:120 msgid "shortcuts.h-distribute" msgstr "Distribuiți pe orizontală" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:121 msgid "shortcuts.hide-ui" msgstr "Arată/ascunde interfața" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:122 msgid "shortcuts.increase-zoom" msgstr "Măriți" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:123 msgid "shortcuts.insert-image" msgstr "Inserați imagine" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:124 msgid "shortcuts.italic" msgstr "Comutare cursiv" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:125 msgid "shortcuts.join-nodes" msgstr "Uniți noduri" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:126 msgid "shortcuts.letter-spacing-dec" msgstr "Reducere spațiere litere" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:127 msgid "shortcuts.letter-spacing-inc" msgstr "Creștere spațiere litere" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:128 msgid "shortcuts.line-height-dec" msgstr "Reducere înălțime linie" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:129 msgid "shortcuts.line-height-inc" msgstr "Creștere înălțime linie" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:130 msgid "shortcuts.line-through" msgstr "Comutare tăiere" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:131 msgid "shortcuts.make-corner" msgstr "Faceți colț" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:132 msgid "shortcuts.make-curve" msgstr "Faceți o curbă" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:133 msgid "shortcuts.mask" msgstr "Mască" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:134 msgid "shortcuts.merge-nodes" msgstr "Îmbinați nodurile" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:135 msgid "shortcuts.move" msgstr "Mutați" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:136 msgid "shortcuts.move-fast-down" msgstr "Mutați jos rapid" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:137 msgid "shortcuts.move-fast-left" msgstr "Mutați în stânga rapid" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:138 msgid "shortcuts.move-fast-right" msgstr "Mutați în dreapta rapid" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:139 msgid "shortcuts.move-fast-up" msgstr "Mutați sus rapid" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:140 msgid "shortcuts.move-nodes" msgstr "Mutați noduri" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:141 msgid "shortcuts.move-unit-down" msgstr "Mutați jos" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:142 msgid "shortcuts.move-unit-left" msgstr "Mutați în stânga" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:143 msgid "shortcuts.move-unit-right" msgstr "Mutați în dreapta" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:144 msgid "shortcuts.move-unit-up" msgstr "Mutați sus" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:145 msgid "shortcuts.next-frame" msgstr "Următoarea tablă" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:516 msgid "shortcuts.not-found" msgstr "Nu s-au găsit comenzi rapide" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:146 msgid "shortcuts.opacity-0" msgstr "Setați opacitatea la 100%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:147 msgid "shortcuts.opacity-1" msgstr "Setați opacitatea la 10%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:148 msgid "shortcuts.opacity-2" msgstr "Setați opacitatea la 20%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:149 msgid "shortcuts.opacity-3" msgstr "Setați opacitatea la 30%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:150 msgid "shortcuts.opacity-4" msgstr "Setați opacitatea la 40%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:151 msgid "shortcuts.opacity-5" msgstr "Setați opacitatea la 50%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:152 msgid "shortcuts.opacity-6" msgstr "Setați opacitatea la 60%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:153 msgid "shortcuts.opacity-7" msgstr "Setați opacitatea la 70%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:154 msgid "shortcuts.opacity-8" msgstr "Setați opacitatea la 80%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:155 msgid "shortcuts.opacity-9" msgstr "Setați opacitatea la 90%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:156 msgid "shortcuts.open-color-picker" msgstr "Selector de culoare" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:157 msgid "shortcuts.open-comments" msgstr "Accesați secțiunea de comentarii ale spectatorului" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:158 msgid "shortcuts.open-dashboard" msgstr "Accesați tabloul de bord" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:159 msgid "shortcuts.open-inspect" msgstr "Mergeți la secțiunea de inspecție a vizualizatorului" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:160 msgid "shortcuts.open-interactions" msgstr "Accesați secțiunea de interacțiuni ale spectatorului" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:161 msgid "shortcuts.open-viewer" msgstr "Accesați secțiunea de interacțiuni ale spectatorului" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:162 msgid "shortcuts.open-workspace" msgstr "Accesați spațiul de lucru" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:260 msgid "shortcuts.or" msgstr " sau " +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:163 msgid "shortcuts.paste" msgstr "Lipește" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:164 msgid "shortcuts.prev-frame" msgstr "Tabla anterioară" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:165 msgid "shortcuts.redo" msgstr "Refaceți" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:166 msgid "shortcuts.reset-zoom" msgstr "Resetați zoomul" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:168 msgid "shortcuts.search-placeholder" msgstr "Căutați comenzi rapide" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:169 msgid "shortcuts.select-all" msgstr "Selectează tot" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:170 msgid "shortcuts.select-next" msgstr "Selectare strat următor" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:171 msgid "shortcuts.select-parent-layer" msgstr "Selectați strat părinte" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:172 msgid "shortcuts.select-prev" msgstr "Selectare strat anterior" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:173 msgid "shortcuts.separate-nodes" msgstr "Noduri separate" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:174 msgid "shortcuts.show-pixel-grid" msgstr "Afișați/ascundeți grila de pixeli" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:175 msgid "shortcuts.show-shortcuts" msgstr "Afișați/ascundeți comenzile rapide" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:176 msgid "shortcuts.snap-nodes" msgstr "Fixare la noduri" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:177 msgid "shortcuts.snap-pixel-grid" msgstr "Fixare la grila de pixeli" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:178 msgid "shortcuts.start-editing" msgstr "Începeți editarea" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:179 msgid "shortcuts.start-measure" msgstr "Începeți măsurarea" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:180 msgid "shortcuts.stop-measure" msgstr "Opriți măsurarea" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:181 msgid "shortcuts.text-align-center" msgstr "Aliniați la centru" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:182 msgid "shortcuts.text-align-justify" msgstr "Aliniați justificat" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:183 msgid "shortcuts.text-align-left" msgstr "Aliniați la stânga" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:184 msgid "shortcuts.text-align-right" msgstr "Aliniați la dreapta" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:185 msgid "shortcuts.thumbnail-set" msgstr "Setați miniaturile" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:496, src/app/main/ui/workspace/sidebar/shortcuts.cljs:505 msgid "shortcuts.title" msgstr "Comenzi rapide de la tastatură" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:186 msgid "shortcuts.toggle-alignment" msgstr "Comutați alinierea dinamică" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:187 msgid "shortcuts.toggle-assets" msgstr "Comutați obiectele" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:188 msgid "shortcuts.toggle-colorpalette" msgstr "Comutați paleta de culori" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:189 msgid "shortcuts.toggle-focus-mode" msgstr "Comutați modul de focus" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:190 msgid "shortcuts.toggle-fullscreen" msgstr "Comutați la ecran complet" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:192 msgid "shortcuts.toggle-history" msgstr "Comutați istoricul" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:193 msgid "shortcuts.toggle-layers" msgstr "Comutați straturile" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:194 msgid "shortcuts.toggle-layout-flex" msgstr "Adăugare/eliminare aspect flexibil" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:196 msgid "shortcuts.toggle-lock" msgstr "Blocați selecția" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:197 msgid "shortcuts.toggle-lock-size" msgstr "Blocați proporțiile" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:202 msgid "shortcuts.toggle-textpalette" msgstr "Comutați paleta de text" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:204 msgid "shortcuts.toggle-visibility" msgstr "Comutați vizibilitatea" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:205 msgid "shortcuts.toggle-zoom-style" msgstr "Comutați stilul zoomului" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:206 msgid "shortcuts.underline" msgstr "Comutare subliniere" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:207 msgid "shortcuts.undo" msgstr "Anulați" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:208 msgid "shortcuts.ungroup" msgstr "Degrupați" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:209 msgid "shortcuts.unmask" msgstr "Demascați" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:210 msgid "shortcuts.v-distribute" msgstr "Distribuiți vertical" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:211 msgid "shortcuts.zoom-lense-decrease" msgstr "Reducere obiectiv de zoom" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:212 msgid "shortcuts.zoom-lense-increase" msgstr "Creștere obiectiv de zoom" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:213 msgid "shortcuts.zoom-selected" msgstr "Mărește la selecție" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:771 msgid "team.webhooks.max-length" msgstr "Numele webhook-ului trebuie să conțină maxim 2048 caractere." -#: src/app/main/ui/dashboard/files.cljs +#: src/app/main/ui/dashboard/files.cljs:158 msgid "title.dashboard.files" msgstr "%s - Penpot" -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:37 msgid "title.dashboard.font-providers" msgstr "Furnizori de Fonturi - %s - Penpot" -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:36 msgid "title.dashboard.fonts" msgstr "Fonturi - %s - Penpot" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:320 msgid "title.dashboard.projects" msgstr "Proiecte - %s - Penpot" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:32 msgid "title.dashboard.search" msgstr "Caută - %s - Penpot" -#: src/app/main/ui/dashboard/libraries.cljs +#: src/app/main/ui/dashboard/libraries.cljs:44 msgid "title.dashboard.shared-libraries" msgstr "Biblioteci Distribuite - %s - Penpot" -#: src/app/main/ui/auth/verify_token.cljs, src/app/main/ui/auth.cljs +#: src/app/main/ui/auth/verify_token.cljs:68, src/app/main/ui/auth.cljs:54 msgid "title.default" msgstr "Penpot - Libertate în Design pentru Echipe" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:292 msgid "title.settings.access-tokens" msgstr "Profil - Jetoane acces" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:110 msgid "title.settings.feedback" msgstr "Oferă feedback - Penpot" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:80 msgid "title.settings.options" msgstr "Setări - Penpot" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:115 msgid "title.settings.password" msgstr "Parolă - Penpot" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:115 msgid "title.settings.profile" msgstr "Profil - Penpot" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:727 msgid "title.team-invitations" msgstr "Invitații -%s - Penpot" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:493 msgid "title.team-members" msgstr "Membri - %s - Penpot" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1036 msgid "title.team-settings" msgstr "Setări - %s - Penpot" +#: src/app/main/ui/dashboard/team.cljs:989 msgid "title.team-webhooks" msgstr "Webhooks - %s - Penpot" -#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs +#: src/app/main/ui/viewer.cljs:419 msgid "title.viewer" msgstr "%s - Vizualizare - Penpot" -#: src/app/main/ui/workspace.cljs +#: src/app/main/ui/workspace.cljs:190 msgid "title.workspace" msgstr "%s - Penpot" +#: src/app/main/ui.cljs:144 msgid "viewer.breaking-change.description" msgstr "" "Acest link care poate fi partajat nu mai este valid. Creați unul nou sau " "cereți proprietarului unul nou." +#: src/app/main/ui.cljs:143 msgid "viewer.breaking-change.message" msgstr "Scuze!" -#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs +#: src/app/main/ui/viewer.cljs:569 msgid "viewer.empty-state" msgstr "Nu există ferestre disponibile pe această pagină." -#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs +#: src/app/main/ui/viewer.cljs:574 msgid "viewer.frame-not-found" msgstr "Fereastra nu există." +#: src/app/main/ui/viewer/header.cljs:336 msgid "viewer.header.comments-section" msgstr "Comentarii (%s)" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/interactions.cljs:292 msgid "viewer.header.dont-show-interactions" msgstr "Nu afişa interacţiunile" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/header.cljs:188 msgid "viewer.header.fullscreen" msgstr "Ecran complet" +#: src/app/main/ui/viewer/header.cljs:345 msgid "viewer.header.inspect-section" msgstr "Inspectați (%s)" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/interactions.cljs:282 msgid "viewer.header.interactions" msgstr "Interacţiunile" +#: src/app/main/ui/viewer/header.cljs:327 msgid "viewer.header.interactions-section" msgstr "Interacțiuni (%s)" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/share_link.cljs:187 msgid "viewer.header.share.copy-link" msgstr "Copiază link" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/interactions.cljs:300 msgid "viewer.header.show-interactions" msgstr "Afişează interacţiunile" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/interactions.cljs:311 msgid "viewer.header.show-interactions-on-click" msgstr "Afişează interacţiunile la click" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/header.cljs:231 msgid "viewer.header.sitemap" msgstr "Harta site-ului" -#, fuzzy +#: src/app/main/ui/dashboard/team.cljs:948 msgid "webhooks.last-delivery.success" msgstr "Ultima livrare a fost cu succes." -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:58 msgid "workspace.align.hcenter" msgstr "Aliniază orizontal (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:74 msgid "workspace.align.hdistribute" msgstr "Introdu spaţierea orizontală (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:50 msgid "workspace.align.hleft" msgstr "Aliniază la stânga (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:66 msgid "workspace.align.hright" msgstr "Aliniază la dreapta (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:99 msgid "workspace.align.vbottom" msgstr "Aliniază jos (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:91 msgid "workspace.align.vcenter" msgstr "Aliniază vertical (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:104 msgid "workspace.align.vdistribute" msgstr "Introdu spaţierea pe verticală (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:83 msgid "workspace.align.vtop" msgstr "Aliniază sus (%s)" #: src/app/main/ui/workspace/sidebar/assets.cljs +#, unused msgid "workspace.assets.assets" msgstr "Obiecte" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets.cljs:134 msgid "workspace.assets.box-filter-all" msgstr "Toate obiectele" -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/dashboard/grid.cljs:130, src/app/main/ui/dashboard/grid.cljs:162, src/app/main/ui/workspace/sidebar/assets/colors.cljs:485, src/app/main/ui/workspace/sidebar/assets.cljs:150 msgid "workspace.assets.colors" msgstr "Culori" -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/dashboard/grid.cljs:126, src/app/main/ui/dashboard/grid.cljs:141, src/app/main/ui/workspace/sidebar/assets/components.cljs:513, src/app/main/ui/workspace/sidebar/assets.cljs:139 msgid "workspace.assets.components" msgstr "Componente" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:131 msgid "workspace.assets.create-group" msgstr "Creează grup" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:142 msgid "workspace.assets.create-group-hint" msgstr "Obiectele vor fi numite automat ca \"nume grup / nume obiect\"" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/context_menu.cljs:529, src/app/main/ui/workspace/sidebar/assets/colors.cljs:251, src/app/main/ui/workspace/sidebar/assets/components.cljs:577, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:424, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:443 msgid "workspace.assets.delete" msgstr "Şterge" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/context_menu.cljs:534, src/app/main/ui/workspace/sidebar/assets/components.cljs:572 msgid "workspace.assets.duplicate" msgstr "Duplică" +#: src/app/main/ui/workspace/sidebar/assets/components.cljs:571 msgid "workspace.assets.duplicate-main" msgstr "Duplicare principală" -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:247, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:439 msgid "workspace.assets.edit" msgstr "Editează" -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/graphics.cljs:384, src/app/main/ui/workspace/sidebar/assets.cljs:145 msgid "workspace.assets.graphics" msgstr "Obiecte grafice" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:255, src/app/main/ui/workspace/sidebar/assets/components.cljs:581, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:428, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:448 msgid "workspace.assets.group" msgstr "Grup" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:141 msgid "workspace.assets.group-name" msgstr "Nume grup" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets.cljs:168 msgid "workspace.assets.libraries" msgstr "Biblioteci" +#: src/app/main/ui/workspace/sidebar/assets/file_library.cljs:62, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:347 msgid "workspace.assets.local-library" msgstr "biblioteca locală" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/file_library.cljs:295 msgid "workspace.assets.not-found" msgstr "Nu au fost găsite obiecte" +#, unused msgid "workspace.assets.open-library" msgstr "Deschideți fișier librărie" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/context_menu.cljs:532, src/app/main/ui/workspace/sidebar/assets/colors.cljs:243, src/app/main/ui/workspace/sidebar/assets/components.cljs:566, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:421, src/app/main/ui/workspace/sidebar/assets/groups.cljs:63, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:434 msgid "workspace.assets.rename" msgstr "Redenumeşte" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:132 msgid "workspace.assets.rename-group" msgstr "Redenumiți grupul" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets.cljs:173 msgid "workspace.assets.search" msgstr "Caută obiecte" #: src/app/main/ui/workspace/sidebar/assets.cljs +#, unused msgid "workspace.assets.selected-count" msgid_plural "workspace.assets.selected-count" msgstr[0] "%s obiect selectat" @@ -3151,1779 +3477,1903 @@ msgstr[1] "%s obiecte selectate" msgstr[2] "%s obiecte selectate" #: src/app/main/ui/workspace/sidebar/assets.cljs +#, unused msgid "workspace.assets.shared-library" msgstr "Librărie partajată" -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/dashboard/grid.cljs:134, src/app/main/ui/dashboard/grid.cljs:189, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:397, src/app/main/ui/workspace/sidebar/assets.cljs:155 msgid "workspace.assets.typography" msgstr "Tipografii" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused msgid "workspace.assets.typography.font-id" msgstr "Font" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:505 msgid "workspace.assets.typography.font-size" msgstr "Dimensiune" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:501 msgid "workspace.assets.typography.font-variant-id" msgstr "Variante" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:523 msgid "workspace.assets.typography.go-to-edit" msgstr "Editează fişierul în Colecţia de stiluri" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:513 msgid "workspace.assets.typography.letter-spacing" msgstr "Spaţiere Litere" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:509 msgid "workspace.assets.typography.line-height" msgstr "Înălţime linie" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, -#: src/app/main/ui/inspect/attributes/text.cljs, -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/dashboard/grid.cljs:199, src/app/main/ui/workspace/libraries.cljs:461, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:464, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:489, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:596, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:615 msgid "workspace.assets.typography.sample" msgstr "Ag" +#, unused msgid "workspace.assets.typography.text-styles" msgstr "Stiluri de text" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:517 msgid "workspace.assets.typography.text-transform" msgstr "Transformare Text" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:66 msgid "workspace.assets.ungroup" msgstr "Degrupați" +#: src/app/main/ui/workspace/sidebar/layers.cljs:525 msgid "workspace.focus.focus-mode" msgstr "Mod focus" +#: src/app/main/ui/workspace/context_menu.cljs:287, src/app/main/ui/workspace/context_menu.cljs:553 msgid "workspace.focus.focus-off" msgstr "Focus oprit" +#: src/app/main/ui/workspace/context_menu.cljs:286 msgid "workspace.focus.focus-on" msgstr "Focus pornit" +#, unused msgid "workspace.focus.selection" msgstr "Selecție" -#: src/app/main/data/workspace/libraries.cljs, -#: src/app/main/ui/components/color_bullet.cljs +#: src/app/util/color.cljs:34 msgid "workspace.gradients.linear" msgstr "Gradient liniar" -#: src/app/main/data/workspace/libraries.cljs, -#: src/app/main/ui/components/color_bullet.cljs +#: src/app/util/color.cljs:35 msgid "workspace.gradients.radial" msgstr "Gradient radial" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:238 msgid "workspace.header.menu.disable-dynamic-alignment" msgstr "Dezactivează alinierea dinamică" +#: src/app/main/ui/workspace/main_menu.cljs:192 msgid "workspace.header.menu.disable-scale-content" msgstr "Dezactivare scară proporțională" #: src/app/main/ui/workspace/header.cljs +#, unused msgid "workspace.header.menu.disable-scale-text" msgstr "Dezactivează dimensionarea textului" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:223 msgid "workspace.header.menu.disable-snap-guides" msgstr "Dezactivați fixarea la ghiduri" +#: src/app/main/ui/workspace/main_menu.cljs:253 msgid "workspace.header.menu.disable-snap-pixel-grid" msgstr "Dezactivați fixarea la pixel" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:239 msgid "workspace.header.menu.enable-dynamic-alignment" msgstr "Aliniere dinamică" +#: src/app/main/ui/workspace/main_menu.cljs:193 msgid "workspace.header.menu.enable-scale-content" msgstr "Activare scară proporțională" #: src/app/main/ui/workspace/header.cljs +#, unused msgid "workspace.header.menu.enable-scale-text" msgstr "Activează scalarea textului" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:224 msgid "workspace.header.menu.enable-snap-guides" msgstr "Fixare la ghiduri" +#: src/app/main/ui/workspace/main_menu.cljs:254 msgid "workspace.header.menu.enable-snap-pixel-grid" msgstr "Activați fixarea la pixel" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:382 msgid "workspace.header.menu.hide-artboard-names" msgstr "Ascundeți numele tablelor" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:353 msgid "workspace.header.menu.hide-palette" msgstr "Ascunde paleta de culori" +#: src/app/main/ui/workspace/main_menu.cljs:394 msgid "workspace.header.menu.hide-pixel-grid" msgstr "Ascundeți grila de pixeli" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:320 msgid "workspace.header.menu.hide-rules" msgstr "Ascunde ghidul liniar" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:367 msgid "workspace.header.menu.hide-textpalette" msgstr "Ascundeți paleta de fonturi" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:731 msgid "workspace.header.menu.option.edit" msgstr "Editați" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:720 msgid "workspace.header.menu.option.file" msgstr "Fișier" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:777 msgid "workspace.header.menu.option.help-info" msgstr "Ajutor & info" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:753 msgid "workspace.header.menu.option.preferences" msgstr "Preferințe" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:742 msgid "workspace.header.menu.option.view" msgstr "Vezi" +#: src/app/main/ui/workspace/main_menu.cljs:459 msgid "workspace.header.menu.redo" msgstr "Refacere" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:432 msgid "workspace.header.menu.select-all" msgstr "Selectează tot" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:383 msgid "workspace.header.menu.show-artboard-names" msgstr "Afișați numele tablelor" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:354 msgid "workspace.header.menu.show-palette" msgstr "Afişează paleta de culori" +#: src/app/main/ui/workspace/main_menu.cljs:395 msgid "workspace.header.menu.show-pixel-grid" msgstr "Afișați grila de pixeli" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:321 msgid "workspace.header.menu.show-rules" msgstr "Afişează Liniarul" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:368 msgid "workspace.header.menu.show-textpalette" msgstr "Afișați paleta de fonturi" +#: src/app/main/ui/workspace/main_menu.cljs:446 msgid "workspace.header.menu.undo" msgstr "Anulare" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/viewer/header.cljs:98, src/app/main/ui/workspace/right_header.cljs:120 msgid "workspace.header.reset-zoom" msgstr "Resetați" #: src/app/main/ui/workspace/header.cljs +#, unused msgid "workspace.header.save-error" msgstr "Eroare în timpul salvării" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/right_header.cljs:52 msgid "workspace.header.saved" msgstr "Salvat" #: src/app/main/ui/workspace/header.cljs +#, unused msgid "workspace.header.saving" msgstr "Salvare în curs" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/right_header.cljs:42, src/app/main/ui/workspace/right_header.cljs:47 msgid "workspace.header.unsaved" msgstr "Modificări nesalvate" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/right_header.cljs:239 msgid "workspace.header.viewer" msgstr "Vizualizare (%s)" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/viewer/header.cljs:79, src/app/main/ui/workspace/right_header.cljs:103 msgid "workspace.header.zoom" msgstr "Zoom" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/viewer/header.cljs:109 msgid "workspace.header.zoom-fill" msgstr "Umplere - Scalare pentru a umple" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/viewer/header.cljs:102 msgid "workspace.header.zoom-fit" msgstr "Potrivire - Scalare în jos a se potrivi" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/right_header.cljs:123 msgid "workspace.header.zoom-fit-all" msgstr "Zoom pentru a potrivi tot" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/viewer/header.cljs:116 msgid "workspace.header.zoom-full-screen" msgstr "Ecran complet" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/right_header.cljs:130 msgid "workspace.header.zoom-selected" msgstr "Zoom la selecție" +#: src/app/main/ui/workspace/viewport/grid_layout_editor.cljs:59 msgid "workspace.layout_grid.editor.title" msgstr "Editare grilă" #: src/app/main/ui/workspace/libraries.cljs +#, unused msgid "workspace.libraries.add" msgstr "Adaugă" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:80, src/app/main/ui/workspace/libraries.cljs:99 msgid "workspace.libraries.colors" msgstr "%s culori" -#: src/app/main/ui/workspace/colorpalette.cljs +#: src/app/main/ui/workspace/color_palette.cljs:126 msgid "workspace.libraries.colors.empty-palette" msgstr "Nu există stiluri de culori în librăria dvs. încă" -#: src/app/main/ui/workspace/textpalette.cljs +#: src/app/main/ui/workspace/text_palette.cljs:150 msgid "workspace.libraries.colors.empty-typography-palette" msgstr "Nu există stiluri de tipografie în librăria dvs. încă" -#: src/app/main/ui/workspace/colorpicker/libraries.cljs, -#: src/app/main/ui/workspace/colorpalette.cljs +#: src/app/main/ui/workspace/color_palette_ctx_menu.cljs:60, src/app/main/ui/workspace/colorpicker/libraries.cljs:73, src/app/main/ui/workspace/text_palette_ctx_menu.cljs:50 msgid "workspace.libraries.colors.file-library" msgstr "Bibliotecă de fișiere" #: src/app/main/ui/workspace/colorpicker.cljs +#, unused msgid "workspace.libraries.colors.hsv" msgstr "HSV" -#: src/app/main/ui/workspace/colorpicker/libraries.cljs, -#: src/app/main/ui/workspace/colorpalette.cljs +#: src/app/main/ui/workspace/color_palette_ctx_menu.cljs:82, src/app/main/ui/workspace/colorpicker/libraries.cljs:72 msgid "workspace.libraries.colors.recent-colors" msgstr "Culori recente" #: src/app/main/ui/workspace/colorpicker.cljs +#, unused msgid "workspace.libraries.colors.rgb-complementary" msgstr "RGB Complementar" #: src/app/main/ui/workspace/colorpicker.cljs +#, unused msgid "workspace.libraries.colors.rgba" msgstr "RGBA" -#: src/app/main/ui/workspace/colorpicker.cljs +#: src/app/main/ui/workspace/colorpicker.cljs:372 msgid "workspace.libraries.colors.save-color" msgstr "Salvează stilul culorii" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:74, src/app/main/ui/workspace/libraries.cljs:91 msgid "workspace.libraries.components" msgstr "%s componente" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:215 msgid "workspace.libraries.file-library" msgstr "Bibliotecă de fișiere" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:77, src/app/main/ui/workspace/libraries.cljs:95 msgid "workspace.libraries.graphics" msgstr "%s obiecte grafice" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:209 msgid "workspace.libraries.in-this-file" msgstr "BIBLIOTECILE FIŞIERULUI" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:526, src/app/main/ui/workspace/libraries.cljs:531 msgid "workspace.libraries.libraries" msgstr "BIBLIOTECI" #: src/app/main/ui/workspace/libraries.cljs +#, unused msgid "workspace.libraries.library" msgstr "BIBLIOTECĂ" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:382 msgid "workspace.libraries.library-updates" msgstr "ACTUALIZĂRI LIBRĂRII" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:380 msgid "workspace.libraries.no-libraries-need-sync" msgstr "Nu există Biblioteci Distribuite ce necesită update" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:299 msgid "workspace.libraries.no-matches-for" msgstr "Nu au fost găsite asemănări pentru “%s“" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:296 msgid "workspace.libraries.no-shared-libraries-available" msgstr "Nu există Biblioteci Distribuite" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:260 msgid "workspace.libraries.search-shared-libraries" msgstr "Caută în bibliotecile distribuite" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:256 msgid "workspace.libraries.shared-libraries" msgstr "BIBLIOTECI DISTRIBUITE" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:308 msgid "workspace.libraries.text.multiple-typography" msgstr "Tipografii multiple" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:311 msgid "workspace.libraries.text.multiple-typography-tooltip" msgstr "Deconectează toate tipografiile" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:83, src/app/main/ui/workspace/libraries.cljs:103 msgid "workspace.libraries.typography" msgstr "%s tipografii" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:402 msgid "workspace.libraries.update" msgstr "Actualizați" -#: src/app/main/data/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:477 msgid "workspace.libraries.update.see-all-changes" msgstr "vedeți toate schimbările" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:536 msgid "workspace.libraries.updates" msgstr "ACTUALIZĂRI" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:737 msgid "workspace.options.add-interaction" msgstr "Faceți clic pe butonul + pentru a adăuga interacțiuni." -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:86, src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:102 msgid "workspace.options.blur-options.title" msgstr "Estompare" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:85 msgid "workspace.options.blur-options.title.group" msgstr "Blur pe grup" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:84 msgid "workspace.options.blur-options.title.multiple" msgstr "Selecţie de blur" -#: src/app/main/ui/workspace/sidebar/options/page.cljs +#: src/app/main/ui/workspace/sidebar/options/page.cljs:32, src/app/main/ui/workspace/sidebar/options/page.cljs:39 msgid "workspace.options.canvas-background" msgstr "Fundal canvas" +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:548 msgid "workspace.options.clip-content" msgstr "Conținutul clipului" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:600, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:605 msgid "workspace.options.component" msgstr "Componentă" +#: src/app/main/ui/viewer/inspect/annotation.cljs:19, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:181 msgid "workspace.options.component.annotation" msgstr "Notă" +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:610 msgid "workspace.options.component.copy" msgstr "Copiați" +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:173 msgid "workspace.options.component.create-annotation" msgstr "Creați o notă" +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:172 msgid "workspace.options.component.edit-annotation" msgstr "Editați o notă" +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:609 msgid "workspace.options.component.main" msgstr "Principal" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:163 msgid "workspace.options.constraints" msgstr "Constrângeri" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:150 msgid "workspace.options.constraints.bottom" msgstr "Jos" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:141, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:152 msgid "workspace.options.constraints.center" msgstr "Centru" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:229 msgid "workspace.options.constraints.fix-when-scrolling" msgstr "Fixat la parcurgere" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:138 msgid "workspace.options.constraints.left" msgstr "Stânga" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:140 msgid "workspace.options.constraints.leftright" msgstr "Stânga & Dreapta" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:139 msgid "workspace.options.constraints.right" msgstr "Dreapta" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:142, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:153 msgid "workspace.options.constraints.scale" msgstr "Scală" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:149 msgid "workspace.options.constraints.top" msgstr "Sus" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:151 msgid "workspace.options.constraints.topbottom" msgstr "Sus & Jos" -#: src/app/main/ui/workspace/sidebar/options.cljs +#: src/app/main/ui/workspace/sidebar/options.cljs:112 msgid "workspace.options.design" msgstr "Design" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs +#: src/app/main/ui/viewer/inspect/exports.cljs:139 msgid "workspace.options.export" msgstr "Exportă" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/handoff/exports.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs +#, unused msgid "workspace.options.export-multiple" msgstr "Exportați selecția" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs +#: src/app/main/ui/viewer/inspect/exports.cljs:195, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:237 msgid "workspace.options.export-object" msgid_plural "workspace.options.export-object" msgstr[0] "Exportați 1 element" msgstr[1] "Exportați %s elemente" msgstr[2] "Exportați %s elemente" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs +#: src/app/main/ui/viewer/inspect/exports.cljs:178, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:219 msgid "workspace.options.export.suffix" msgstr "Sufix" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/handoff/exports.cljs, src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/export.cljs:240 msgid "workspace.options.exporting-complete" msgstr "Export finalizat" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs +#: src/app/main/ui/export.cljs:172, src/app/main/ui/export.cljs:241, src/app/main/ui/viewer/inspect/exports.cljs:194, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:236 msgid "workspace.options.exporting-object" msgstr "Se exportă…" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/handoff/exports.cljs, src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/export.cljs:239 msgid "workspace.options.exporting-object-error" msgstr "Export eșuat" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/handoff/exports.cljs, src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/export.cljs:242 msgid "workspace.options.exporting-object-slow" msgstr "Export neașteptat de lent" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:49, src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:174 msgid "workspace.options.fill" msgstr "Umple" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:178 msgid "workspace.options.flows.add-flow-start" msgstr "Adăugați început flux" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#, unused msgid "workspace.options.flows.flow-start" msgstr "Pornirea fluxului" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:161 msgid "workspace.options.flows.flow-starts" msgstr "Fluxul începe" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:29 msgid "workspace.options.grid.auto" msgstr "Auto" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:157 msgid "workspace.options.grid.column" msgstr "Coloane" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused msgid "workspace.options.grid.grid-title" msgstr "Grilă" +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:196, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:237 msgid "workspace.options.grid.params.color" msgstr "Culoare" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused msgid "workspace.options.grid.params.columns" msgstr "Coloane" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:259 msgid "workspace.options.grid.params.gutter" msgstr "Spaţiere" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:246 msgid "workspace.options.grid.params.height" msgstr "Înălţime" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:270 msgid "workspace.options.grid.params.margin" msgstr "Margine" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused msgid "workspace.options.grid.params.rows" msgstr "Rânduri" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:216, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:290 msgid "workspace.options.grid.params.set-default" msgstr "Setează ca predefinit" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused msgid "workspace.options.grid.params.size" msgstr "Mărime" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused msgid "workspace.options.grid.params.type" msgstr "Tip" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:231 msgid "workspace.options.grid.params.type.bottom" msgstr "Jos" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:229 msgid "workspace.options.grid.params.type.center" msgstr "Centru" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:228 msgid "workspace.options.grid.params.type.left" msgstr "Stânga" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:232 msgid "workspace.options.grid.params.type.right" msgstr "Dreapta" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:225 msgid "workspace.options.grid.params.type.stretch" msgstr "Întinde" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:227 msgid "workspace.options.grid.params.type.top" msgstr "Sus" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:211, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:288 msgid "workspace.options.grid.params.use-default" msgstr "Foloseşte default" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:247 msgid "workspace.options.grid.params.width" msgstr "Lăţime" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:158 msgid "workspace.options.grid.row" msgstr "Rânduri" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:156 msgid "workspace.options.grid.square" msgstr "Pătrat" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:48 msgid "workspace.options.group-fill" msgstr "Umplere grup" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:42 msgid "workspace.options.group-stroke" msgstr "Conturare grup" +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:406 msgid "workspace.options.height" msgstr "Înălțime" +#: src/app/main/ui/workspace/sidebar/options.cljs:161 msgid "workspace.options.inspect" msgstr "Inspectați" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:468 msgid "workspace.options.interaction-action" msgstr "Acțiune" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:41, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:367 msgid "workspace.options.interaction-after-delay" msgstr "După întârziere" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:614 msgid "workspace.options.interaction-animation" msgstr "Animație" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:406 msgid "workspace.options.interaction-animation-dissolve" msgstr "Dizolvare" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:405 msgid "workspace.options.interaction-animation-none" msgstr "Nimic" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:412 msgid "workspace.options.interaction-animation-push" msgstr "Împinge" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:407 msgid "workspace.options.interaction-animation-slide" msgstr "Alunecă" +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:391 msgid "workspace.options.interaction-auto" msgstr "auto" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:604 msgid "workspace.options.interaction-background" msgstr "Adăugați suprapunere de fundal" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:590 msgid "workspace.options.interaction-close-outside" msgstr "Închideți atunci când faceți clic în exterior" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:372 msgid "workspace.options.interaction-close-overlay" msgstr "Închideți suprapunerea" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:56 msgid "workspace.options.interaction-close-overlay-dest" msgstr "Închideți suprapunerea: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:456 msgid "workspace.options.interaction-delay" msgstr "Întârziere" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:478 msgid "workspace.options.interaction-destination" msgstr "Destinație" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:661 msgid "workspace.options.interaction-duration" msgstr "Durată" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:674 msgid "workspace.options.interaction-easing" msgstr "Easing" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:416 msgid "workspace.options.interaction-easing-ease" msgstr "Ease" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:417 msgid "workspace.options.interaction-easing-ease-in" msgstr "Ease in" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:419 msgid "workspace.options.interaction-easing-ease-in-out" msgstr "Ease in out" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:418 msgid "workspace.options.interaction-easing-ease-out" msgstr "Ease out" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:415 msgid "workspace.options.interaction-easing-linear" msgstr "Liniar" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#, unused msgid "workspace.options.interaction-in" msgstr "În" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:39, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:364 msgid "workspace.options.interaction-mouse-enter" msgstr "Intrarea mouse-ului" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:40, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:365 msgid "workspace.options.interaction-mouse-leave" msgstr "Plecarea mouse-ului" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:458, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:459, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:464, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:663, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:665, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:669 msgid "workspace.options.interaction-ms" msgstr "ms" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:369 msgid "workspace.options.interaction-navigate-to" msgstr "Navigați la" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:50 msgid "workspace.options.interaction-navigate-to-dest" msgstr "Navigați la: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:51, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:53, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:55, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:380 msgid "workspace.options.interaction-none" msgstr "(nedefinit)" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:691 msgid "workspace.options.interaction-offset-effect" msgstr "Efect de offset" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:35, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:360 msgid "workspace.options.interaction-on-click" msgstr "La clic" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:370 msgid "workspace.options.interaction-open-overlay" msgstr "Deschideți suprapunerea" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:52 msgid "workspace.options.interaction-open-overlay-dest" msgstr "Deschideți suprapunerea: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:59, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:374 msgid "workspace.options.interaction-open-url" msgstr "Deschideți adresa URL" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#, unused msgid "workspace.options.interaction-out" msgstr "Afară" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:403 msgid "workspace.options.interaction-pos-bottom-center" msgstr "Centru jos" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:401 msgid "workspace.options.interaction-pos-bottom-left" msgstr "Stânga jos" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:402 msgid "workspace.options.interaction-pos-bottom-right" msgstr "Dreapta jos" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:397 msgid "workspace.options.interaction-pos-center" msgstr "Centru" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:396 msgid "workspace.options.interaction-pos-manual" msgstr "Manual" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:400 msgid "workspace.options.interaction-pos-top-center" msgstr "Centru sus" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:398 msgid "workspace.options.interaction-pos-top-left" msgstr "Stânga sus" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:399 msgid "workspace.options.interaction-pos-top-right" msgstr "Dreapta sus" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:524 msgid "workspace.options.interaction-position" msgstr "Poziție" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:494 msgid "workspace.options.interaction-preserve-scroll" msgstr "Păstrați poziția derulării" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:58, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:373 msgid "workspace.options.interaction-prev-screen" msgstr "Ecranul anterior" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:515 msgid "workspace.options.interaction-relative-to" msgstr "Relativ la" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:57, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:379, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:393, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:394 msgid "workspace.options.interaction-self" msgstr "sine" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:371 msgid "workspace.options.interaction-toggle-overlay" msgstr "Comutare suprapunere" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:54 msgid "workspace.options.interaction-toggle-overlay-dest" msgstr "Comutați suprapunerea: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:445 msgid "workspace.options.interaction-trigger" msgstr "Declanșator" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:503 msgid "workspace.options.interaction-url" msgstr "URL" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:37, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:362 msgid "workspace.options.interaction-while-hovering" msgstr "În timp ce plutește" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:38, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:363 msgid "workspace.options.interaction-while-pressing" msgstr "În timp ce este apăsat" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:724 msgid "workspace.options.interactions" msgstr "Interacțiuni" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:137 msgid "workspace.options.layer-options.blend-mode.color" msgstr "Culoare" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:126 msgid "workspace.options.layer-options.blend-mode.color-burn" msgstr "Arderea culorii" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:129 msgid "workspace.options.layer-options.blend-mode.color-dodge" msgstr "Evitare culoare" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:124 msgid "workspace.options.layer-options.blend-mode.darken" msgstr "Întunecat" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:133 msgid "workspace.options.layer-options.blend-mode.difference" msgstr "Diferență" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:134 msgid "workspace.options.layer-options.blend-mode.exclusion" msgstr "Excludere" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:132 msgid "workspace.options.layer-options.blend-mode.hard-light" msgstr "Lumină Puternică" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:135 msgid "workspace.options.layer-options.blend-mode.hue" msgstr "Nuanță" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:127 msgid "workspace.options.layer-options.blend-mode.lighten" msgstr "Luminat" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:138 msgid "workspace.options.layer-options.blend-mode.luminosity" msgstr "Luminozitate" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:125 msgid "workspace.options.layer-options.blend-mode.multiply" msgstr "Multiplică" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:123 msgid "workspace.options.layer-options.blend-mode.normal" msgstr "Normal" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:130 msgid "workspace.options.layer-options.blend-mode.overlay" msgstr "Strat" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:136 msgid "workspace.options.layer-options.blend-mode.saturation" msgstr "Saturaţie" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:128 msgid "workspace.options.layer-options.blend-mode.screen" msgstr "Screen" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:131 msgid "workspace.options.layer-options.blend-mode.soft-light" msgstr "Lumină slabă" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#, unused msgid "workspace.options.layer-options.title" msgstr "Strat" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#, unused msgid "workspace.options.layer-options.title.group" msgstr "Grupează layere" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#, unused msgid "workspace.options.layer-options.title.multiple" msgstr "Layere selectate" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout-item.advanced-ops" msgstr "Opțiuni avansate" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:564 msgid "workspace.options.layout-item.layout-item-max-h" msgstr "Înălțime maximă" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:531 msgid "workspace.options.layout-item.layout-item-max-w" msgstr "Lățime maximă" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:548 msgid "workspace.options.layout-item.layout-item-min-h" msgstr "Înălțime minimă" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:515 msgid "workspace.options.layout-item.layout-item-min-w" msgstr "Lățime minimă" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout-item.title.layout-item-max-h" msgstr "Înălțime maximă" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout-item.title.layout-item-max-w" msgstr "Lățime maximă" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout-item.title.layout-item-min-h" msgstr "Înălțime minimă" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout-item.title.layout-item-min-w" msgstr "Lățime minimă" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.bottom" msgstr "Jos" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.direction.column" msgstr "Coloană" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.direction.column-reverse" msgstr "Coloană inversată" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.direction.row" msgstr "Rând" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.direction.row-reverse" msgstr "Rând inversat" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.gap" msgstr "Spațiu" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.left" msgstr "Stânga" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout.margin" msgstr "Margine" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout.margin-all" msgstr "Toate laturile" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout.margin-simple" msgstr "Margine simplă" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.packed" msgstr "plin" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.padding" msgstr "Căptușeală" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.padding-all" msgstr "Toate laturile" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.padding-simple" msgstr "Căptușeală simplă" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.right" msgstr "Dreapta" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.space-around" msgstr "spațiu în jur" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.space-between" msgstr "spațiu între" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.top" msgstr "Sus" -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:146 msgid "workspace.options.more-colors" msgstr "Mai multe culori" -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:123 msgid "workspace.options.more-lib-colors" msgstr "Mai multe culori de bibliotecă" +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:161 msgid "workspace.options.opacity" msgstr "Opacitate" -#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#, unused msgid "workspace.options.position" msgstr "Poziţie" -#: src/app/main/ui/workspace/sidebar/options.cljs +#: src/app/main/ui/workspace/sidebar/options.cljs:157 msgid "workspace.options.prototype" msgstr "Prototip" +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:469, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:481 msgid "workspace.options.radius" msgstr "Rază" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:513 msgid "workspace.options.radius-bottom-left" msgstr "Stânga jos" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:522 msgid "workspace.options.radius-bottom-right" msgstr "Dreapta jos" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:495 msgid "workspace.options.radius-top-left" msgstr "Stânga sus" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:504 msgid "workspace.options.radius-top-right" msgstr "Dreapta sus" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:532 msgid "workspace.options.radius.all-corners" msgstr "Toate colţurile" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:533 msgid "workspace.options.radius.single-corners" msgstr "Colțuri independente" +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:183 msgid "workspace.options.recent-fonts" msgstr "Recente" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/handoff/exports.cljs, src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/export.cljs:284 msgid "workspace.options.retry" msgstr "Reîncercați" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:451 msgid "workspace.options.rotation" msgstr "Rotaţie" +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:180 msgid "workspace.options.search-font" msgstr "Căutați font" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:741 msgid "workspace.options.select-a-shape" msgstr "Selectează o formă, o planşă sau grupează pentru a conecta o altă planşă." -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:105 msgid "workspace.options.selection-color" msgstr "Culori selectate" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:47 msgid "workspace.options.selection-fill" msgstr "Umplere selecție" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:41 msgid "workspace.options.selection-stroke" msgstr "Contur selecție" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:40, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:198, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:200 msgid "workspace.options.shadow-options.blur" msgstr "Estompare" +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:238 msgid "workspace.options.shadow-options.color" msgstr "Culoare umbră" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:144 msgid "workspace.options.shadow-options.drop-shadow" msgstr "Umbră proiectată" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:145 msgid "workspace.options.shadow-options.inner-shadow" msgstr "Umbră interioară" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:38, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:186 msgid "workspace.options.shadow-options.offsetx" msgstr "X" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:39, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:224 msgid "workspace.options.shadow-options.offsety" msgstr "Y" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:41, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:211, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:213 msgid "workspace.options.shadow-options.spread" msgstr "Accentuare" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:296 msgid "workspace.options.shadow-options.title" msgstr "Umbră" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:295 msgid "workspace.options.shadow-options.title.group" msgstr "Umbră grup" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:294 msgid "workspace.options.shadow-options.title.multiple" msgstr "Umbre de selecție" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:193 msgid "workspace.options.show-fill-on-export" msgstr "Afișați în exporturi" +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:562 msgid "workspace.options.show-in-viewer" msgstr "Afișare în modul de vizualizare" -#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:162 msgid "workspace.options.size" msgstr "Mărime" -#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:355 msgid "workspace.options.size-presets" msgstr "Dimensiuni presetate" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:43 msgid "workspace.options.stroke" msgstr "Contur" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#, unused msgid "workspace.options.stroke-cap.circle-marker" msgstr "Marcator cerc" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:129 msgid "workspace.options.stroke-cap.circle-marker-short" msgstr "Cerc" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#, unused msgid "workspace.options.stroke-cap.diamond-marker" msgstr "Marcator diamant" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:130 msgid "workspace.options.stroke-cap.diamond-marker-short" msgstr "Diamant" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#, unused msgid "workspace.options.stroke-cap.line-arrow" msgstr "Săgeată linie" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:126 msgid "workspace.options.stroke-cap.line-arrow-short" msgstr "Săgeată" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:124 msgid "workspace.options.stroke-cap.none" msgstr "Nimic" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:132 msgid "workspace.options.stroke-cap.round" msgstr "Rotund" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:133 msgid "workspace.options.stroke-cap.square" msgstr "Pătrat" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#, unused msgid "workspace.options.stroke-cap.square-marker" msgstr "Marcator pătrat" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:128 msgid "workspace.options.stroke-cap.square-marker-short" msgstr "Dreptunghi" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#, unused msgid "workspace.options.stroke-cap.triangle-arrow" msgstr "Săgeată triunghi" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:127 msgid "workspace.options.stroke-cap.triangle-arrow-short" msgstr "Triunghi" +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:192 msgid "workspace.options.stroke-color" msgstr "Culoare contur" +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:165 msgid "workspace.options.stroke-width" msgstr "Lățimea conturului" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:87 msgid "workspace.options.stroke.center" msgstr "Centru" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:105 msgid "workspace.options.stroke.dashed" msgstr "Întrerupt" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:104 msgid "workspace.options.stroke.dotted" msgstr "Punctat" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:88 msgid "workspace.options.stroke.inner" msgstr "Interior" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:106 msgid "workspace.options.stroke.mixed" msgstr "Mixed" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:89 msgid "workspace.options.stroke.outer" msgstr "Exterior" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:103 msgid "workspace.options.stroke.solid" msgstr "Solid" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:115 msgid "workspace.options.text-options.align-bottom" msgstr "Aliniază jos" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:111 msgid "workspace.options.text-options.align-middle" msgstr "Aliniază la mijloc" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:107 msgid "workspace.options.text-options.align-top" msgstr "Aliniază sus" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:82 msgid "workspace.options.text-options.direction-ltr" msgstr "LTR" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:87 msgid "workspace.options.text-options.direction-rtl" msgstr "RTL" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:149 msgid "workspace.options.text-options.grow-auto-height" msgstr "Înălţime auto" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:145 msgid "workspace.options.text-options.grow-auto-width" msgstr "Lăţime auto" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:141 msgid "workspace.options.text-options.grow-fixed" msgstr "Fix" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:381 msgid "workspace.options.text-options.letter-spacing" msgstr "Spaţiere Litere" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:364 msgid "workspace.options.text-options.line-height" msgstr "Înălţime linii" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused msgid "workspace.options.text-options.lowercase" msgstr "Minuscule" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused msgid "workspace.options.text-options.none" msgstr "Nici unul" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:176 msgid "workspace.options.text-options.strikethrough" msgstr "Barat (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:51 msgid "workspace.options.text-options.text-align-center" msgstr "Aliniază centru (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:59 msgid "workspace.options.text-options.text-align-justify" msgstr "Justifică (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:47 msgid "workspace.options.text-options.text-align-left" msgstr "Aliniază la stânga (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:55 msgid "workspace.options.text-options.text-align-right" msgstr "Aliniază la dreapta (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:189 msgid "workspace.options.text-options.title" msgstr "Text" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:188 msgid "workspace.options.text-options.title-group" msgstr "Grupează text" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:187 msgid "workspace.options.text-options.title-selection" msgstr "Selecţie text" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused msgid "workspace.options.text-options.titlecase" msgstr "Majuscule titlu" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:171 msgid "workspace.options.text-options.underline" msgstr "Subliniază (%s)" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused msgid "workspace.options.text-options.uppercase" msgstr "Majuscule" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:745 msgid "workspace.options.use-play-button" msgstr "Foloseşte butonul play din header pentru a porni vizualizarea prototip." +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:395 msgid "workspace.options.width" msgstr "Lăţime" +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:427 msgid "workspace.options.x" msgstr "Axa X" +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:438 msgid "workspace.options.y" msgstr "Axa Y" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:167 msgid "workspace.path.actions.add-node" msgstr "Adaugă nod (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:174 msgid "workspace.path.actions.delete-node" msgstr "Şterge nod (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:152 msgid "workspace.path.actions.draw-nodes" msgstr "Desenează noduri (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:189 msgid "workspace.path.actions.join-nodes" msgstr "Adaugă noduri (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:204 msgid "workspace.path.actions.make-corner" msgstr "În colţ (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:211 msgid "workspace.path.actions.make-curve" msgstr "În curbă (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:182 msgid "workspace.path.actions.merge-nodes" msgstr "Uneşte noduri (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:159 msgid "workspace.path.actions.move-nodes" msgstr "Mută noduri (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:196 msgid "workspace.path.actions.separate-nodes" msgstr "Separă noduri (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:218 msgid "workspace.path.actions.snap-nodes" msgstr "Trage noduri (%s)" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:441 msgid "workspace.shape.menu.add-flex" msgstr "Adăugați aspect flexibil" +#: src/app/main/ui/workspace/context_menu.cljs:445 msgid "workspace.shape.menu.add-grid" msgstr "Adăugați aspect grilă" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:193 msgid "workspace.shape.menu.back" msgstr "Trimite înapoi" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:190 msgid "workspace.shape.menu.backward" msgstr "Trimite în urmă" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:139 msgid "workspace.shape.menu.copy" msgstr "Copiază" +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:427 msgid "workspace.shape.menu.create-annotation" msgstr "Creați notă" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:275 msgid "workspace.shape.menu.create-artboard-from-selection" msgstr "Selecție la planșă" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:465 msgid "workspace.shape.menu.create-component" msgstr "Creează componentă" +#: src/app/main/ui/workspace/context_menu.cljs:469 msgid "workspace.shape.menu.create-multiple-components" msgstr "Creați componente multiple" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:142 msgid "workspace.shape.menu.cut" msgstr "Taie" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:486 msgid "workspace.shape.menu.delete" msgstr "Şterge" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:391 msgid "workspace.shape.menu.delete-flow-start" msgstr "Ștergeți începutul fluxului" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:432 msgid "workspace.shape.menu.detach-instance" msgstr "Detaşează instanţă" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:431 msgid "workspace.shape.menu.detach-instances-in-bulk" msgstr "Detașați instanțele" +#: src/app/main/ui/workspace/context_menu.cljs:335, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:75 msgid "workspace.shape.menu.difference" msgstr "Diferență" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:148 msgid "workspace.shape.menu.duplicate" msgstr "Duplică" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:321 msgid "workspace.shape.menu.edit" msgstr "Editează" +#: src/app/main/ui/workspace/context_menu.cljs:341 msgid "workspace.shape.menu.exclude" msgstr "Excludeți" +#: src/app/main/ui/workspace/context_menu.cljs:348, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:89 msgid "workspace.shape.menu.flatten" msgstr "Aplatizați" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:208 msgid "workspace.shape.menu.flip-horizontal" msgstr "Întoarce pe orizontală" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:204 msgid "workspace.shape.menu.flip-vertical" msgstr "Întoarce pe verticală" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:394 msgid "workspace.shape.menu.flow-start" msgstr "Pornirea fluxului" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:184 msgid "workspace.shape.menu.forward" msgstr "Aduceţi înainte" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:187 msgid "workspace.shape.menu.front" msgstr "Aduceţi în faţă" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#, unused msgid "workspace.shape.menu.go-main" msgstr "Mergi la componenta principală" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:261 msgid "workspace.shape.menu.group" msgstr "Grupează" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:363, src/app/main/ui/workspace/sidebar/layer_item.cljs:145 msgid "workspace.shape.menu.hide" msgstr "Ascunde" +#: src/app/main/ui/workspace/context_menu.cljs:548, src/app/main/ui/workspace/main_menu.cljs:408 msgid "workspace.shape.menu.hide-ui" msgstr "Afișați/ Ascundeți UI" +#: src/app/main/ui/workspace/context_menu.cljs:338 msgid "workspace.shape.menu.intersection" msgstr "Intersecție" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:371, src/app/main/ui/workspace/sidebar/layer_item.cljs:153 msgid "workspace.shape.menu.lock" msgstr "Blochează" -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:266 msgid "workspace.shape.menu.mask" msgstr "Maschează" -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:145, src/app/main/ui/workspace/context_menu.cljs:545 msgid "workspace.shape.menu.paste" msgstr "Lipeşte" +#: src/app/main/ui/workspace/context_menu.cljs:331 msgid "workspace.shape.menu.path" msgstr "Drum" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:432 msgid "workspace.shape.menu.remove-flex" msgstr "Îndepărtați aspect flexibil" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:436 msgid "workspace.shape.menu.reset-overrides" msgstr "Resetează suprascrierile" +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:439 msgid "workspace.shape.menu.restore-main" msgstr "Restaurați componenta principală" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:174 msgid "workspace.shape.menu.select-layer" msgstr "Selectați stratul" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:360, src/app/main/ui/workspace/sidebar/layer_item.cljs:144 msgid "workspace.shape.menu.show" msgstr "Afişează" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:424 msgid "workspace.shape.menu.show-in-assets" msgstr "Afișați în panoul de obiecte" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:442, src/app/main/ui/workspace/sidebar/assets/components.cljs:586 msgid "workspace.shape.menu.show-main" msgstr "Afişează componenta principală" +#: src/app/main/ui/workspace/context_menu.cljs:221 msgid "workspace.shape.menu.thumbnail-remove" msgstr "Eliminați miniatura" +#: src/app/main/ui/workspace/context_menu.cljs:223 msgid "workspace.shape.menu.thumbnail-set" msgstr "Setați ca miniatură" +#: src/app/main/ui/workspace/context_menu.cljs:326 msgid "workspace.shape.menu.transform-to-path" msgstr "Transformați în drum" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:257 msgid "workspace.shape.menu.ungroup" msgstr "Degrupează" +#: src/app/main/ui/workspace/context_menu.cljs:332, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:70 msgid "workspace.shape.menu.union" msgstr "Uniune" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:368, src/app/main/ui/workspace/sidebar/layer_item.cljs:152 msgid "workspace.shape.menu.unlock" msgstr "Deblochează" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:271 msgid "workspace.shape.menu.unmask" msgstr "Demaschează" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs +#, unused msgid "workspace.shape.menu.update-components-in-bulk" msgstr "Actualizați componentele principale" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:445 msgid "workspace.shape.menu.update-main" msgstr "Actualizaţi principala componentă" +#: src/app/main/ui/components/tab_container.cljs:50 msgid "workspace.sidebar.collapse" msgstr "Restrângeți bara laterală" +#: src/app/main/ui/workspace/sidebar/collapsable_button.cljs:26 msgid "workspace.sidebar.expand" msgstr "Extindeți bara laterală" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/right_header.cljs:231, src/app/main/ui/workspace/right_header.cljs:232 msgid "workspace.sidebar.history" msgstr "Istoric (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/sidebar/layers.cljs:522, src/app/main/ui/workspace/sidebar.cljs:100 msgid "workspace.sidebar.layers" msgstr "Layere" +#: src/app/main/ui/workspace/sidebar/layers.cljs:308, src/app/main/ui/workspace/sidebar/layers.cljs:380 msgid "workspace.sidebar.layers.components" msgstr "Componente" +#: src/app/main/ui/workspace/sidebar/layers.cljs:305, src/app/main/ui/workspace/sidebar/layers.cljs:338 msgid "workspace.sidebar.layers.frames" msgstr "Plăci" +#: src/app/main/ui/workspace/sidebar/layers.cljs:306, src/app/main/ui/workspace/sidebar/layers.cljs:352 msgid "workspace.sidebar.layers.groups" msgstr "Grupuri" +#: src/app/main/ui/workspace/sidebar/layers.cljs:310, src/app/main/ui/workspace/sidebar/layers.cljs:408 msgid "workspace.sidebar.layers.images" msgstr "Imagini" +#: src/app/main/ui/workspace/sidebar/layers.cljs:307, src/app/main/ui/workspace/sidebar/layers.cljs:366 msgid "workspace.sidebar.layers.masks" msgstr "Măști" +#: src/app/main/ui/workspace/sidebar/layers.cljs:289 msgid "workspace.sidebar.layers.search" msgstr "Căutați straturi" +#: src/app/main/ui/workspace/sidebar/layers.cljs:311, src/app/main/ui/workspace/sidebar/layers.cljs:422 msgid "workspace.sidebar.layers.shapes" msgstr "Forme" +#: src/app/main/ui/workspace/sidebar/layers.cljs:309, src/app/main/ui/workspace/sidebar/layers.cljs:394 msgid "workspace.sidebar.layers.texts" msgstr "Texte" -#: src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs, -#: src/app/main/ui/inspect/attributes/svg.cljs +#: src/app/main/ui/viewer/inspect/attributes/svg.cljs:56, src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs:91 msgid "workspace.sidebar.options.svg-attrs.title" msgstr "Atribute SVG importate" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs +#: src/app/main/ui/workspace/sidebar/sitemap.cljs:217 msgid "workspace.sidebar.sitemap" msgstr "Pagini" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/left_header.cljs:91 msgid "workspace.sitemap" msgstr "Harta site-ului" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/sidebar.cljs:120 msgid "workspace.toolbar.assets" msgstr "Obiecte" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/palette.cljs:165, src/app/main/ui/workspace/palette.cljs:166 msgid "workspace.toolbar.color-palette" msgstr "Paletă de culori (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/right_header.cljs:220, src/app/main/ui/workspace/right_header.cljs:221 msgid "workspace.toolbar.comments" msgstr "Comentarii (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:180, src/app/main/ui/workspace/top_toolbar.cljs:181 msgid "workspace.toolbar.curve" msgstr "Curbe (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:160, src/app/main/ui/workspace/top_toolbar.cljs:161 msgid "workspace.toolbar.ellipse" msgstr "Elipsă (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:142, src/app/main/ui/workspace/top_toolbar.cljs:143 msgid "workspace.toolbar.frame" msgstr "Planşă de lucru (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:59, src/app/main/ui/workspace/top_toolbar.cljs:60 msgid "workspace.toolbar.image" msgstr "Imagine (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:132, src/app/main/ui/workspace/top_toolbar.cljs:133 msgid "workspace.toolbar.move" msgstr "Poziţionează (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:189, src/app/main/ui/workspace/top_toolbar.cljs:190 msgid "workspace.toolbar.path" msgstr "Cale (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:151, src/app/main/ui/workspace/top_toolbar.cljs:152 msgid "workspace.toolbar.rect" msgstr "Dreptunghi (%s)" #: src/app/main/ui/workspace/left_toolbar.cljs +#, unused msgid "workspace.toolbar.shortcuts" msgstr "Comenzi rapide (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:169, src/app/main/ui/workspace/top_toolbar.cljs:170 msgid "workspace.toolbar.text" msgstr "Text (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/palette.cljs:173, src/app/main/ui/workspace/palette.cljs:174 msgid "workspace.toolbar.text-palette" msgstr "Tipografii (%s)" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:342 msgid "workspace.undo.empty" msgstr "Nu sunt modificări în istoric" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:147 msgid "workspace.undo.entry.delete" msgstr "Şters %s" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:146 msgid "workspace.undo.entry.modify" msgstr "Modificat %s" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:148 msgid "workspace.undo.entry.move" msgstr "Obiecte mutate" +#: src/app/main/ui/workspace/sidebar/history.cljs:111 msgid "workspace.undo.entry.multiple.circle" msgstr "cercuri" +#: src/app/main/ui/workspace/sidebar/history.cljs:112 msgid "workspace.undo.entry.multiple.color" msgstr "Culori obiecte" +#: src/app/main/ui/workspace/sidebar/history.cljs:113 msgid "workspace.undo.entry.multiple.component" msgstr "componente" +#: src/app/main/ui/workspace/sidebar/history.cljs:114 msgid "workspace.undo.entry.multiple.curve" msgstr "curbe" +#: src/app/main/ui/workspace/sidebar/history.cljs:115 msgid "workspace.undo.entry.multiple.frame" msgstr "planşă de lucru" +#: src/app/main/ui/workspace/sidebar/history.cljs:116 msgid "workspace.undo.entry.multiple.group" msgstr "grupuri" +#: src/app/main/ui/workspace/sidebar/history.cljs:117 msgid "workspace.undo.entry.multiple.media" msgstr "obiecte grafice" +#: src/app/main/ui/workspace/sidebar/history.cljs:118 msgid "workspace.undo.entry.multiple.multiple" msgstr "obiecte" +#: src/app/main/ui/workspace/sidebar/history.cljs:119 msgid "workspace.undo.entry.multiple.page" msgstr "pagini" +#: src/app/main/ui/workspace/sidebar/history.cljs:120 msgid "workspace.undo.entry.multiple.path" msgstr "căi" +#: src/app/main/ui/workspace/sidebar/history.cljs:121 msgid "workspace.undo.entry.multiple.rect" msgstr "dreptunghiuri" +#: src/app/main/ui/workspace/sidebar/history.cljs:122 msgid "workspace.undo.entry.multiple.shape" msgstr "forme" +#: src/app/main/ui/workspace/sidebar/history.cljs:123 msgid "workspace.undo.entry.multiple.text" msgstr "texte" +#: src/app/main/ui/workspace/sidebar/history.cljs:124 msgid "workspace.undo.entry.multiple.typography" msgstr "obiecte tipografice" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:145 msgid "workspace.undo.entry.new" msgstr "Nou %s" +#: src/app/main/ui/workspace/sidebar/history.cljs:125 msgid "workspace.undo.entry.single.circle" msgstr "cerc" +#: src/app/main/ui/workspace/sidebar/history.cljs:126 msgid "workspace.undo.entry.single.color" msgstr "culoare" +#: src/app/main/ui/workspace/sidebar/history.cljs:127 msgid "workspace.undo.entry.single.component" msgstr "componentă" +#: src/app/main/ui/workspace/sidebar/history.cljs:128 msgid "workspace.undo.entry.single.curve" msgstr "curbă" +#: src/app/main/ui/workspace/sidebar/history.cljs:129 msgid "workspace.undo.entry.single.frame" msgstr "planşă de lucru" +#: src/app/main/ui/workspace/sidebar/history.cljs:130 msgid "workspace.undo.entry.single.group" msgstr "grup" +#: src/app/main/ui/workspace/sidebar/history.cljs:131 msgid "workspace.undo.entry.single.image" msgstr "imagine" +#: src/app/main/ui/workspace/sidebar/history.cljs:132 msgid "workspace.undo.entry.single.media" msgstr "obiect grafic" +#: src/app/main/ui/workspace/sidebar/history.cljs:133 msgid "workspace.undo.entry.single.multiple" msgstr "obiect" +#: src/app/main/ui/workspace/sidebar/history.cljs:134 msgid "workspace.undo.entry.single.page" msgstr "pagină" +#: src/app/main/ui/workspace/sidebar/history.cljs:135 msgid "workspace.undo.entry.single.path" msgstr "cale" +#: src/app/main/ui/workspace/sidebar/history.cljs:136 msgid "workspace.undo.entry.single.rect" msgstr "dreptunghi" +#: src/app/main/ui/workspace/sidebar/history.cljs:137 msgid "workspace.undo.entry.single.shape" msgstr "formă" +#: src/app/main/ui/workspace/sidebar/history.cljs:138 msgid "workspace.undo.entry.single.text" msgstr "text" +#: src/app/main/ui/workspace/sidebar/history.cljs:139 msgid "workspace.undo.entry.single.typography" msgstr "obiect tipografic" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:149 msgid "workspace.undo.entry.unknown" msgstr "Operaţiune terminată %s" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:335 msgid "workspace.undo.title" msgstr "Istoric" -#: src/app/main/data/workspace/libraries.cljs +#: src/app/main/data/workspace/libraries.cljs:1094 msgid "workspace.updates.dismiss" msgstr "Renunţă" -#: src/app/main/data/workspace/libraries.cljs +#: src/app/main/data/workspace/libraries.cljs:1092 msgid "workspace.updates.more-info" msgstr "Mai multe informații" -#: src/app/main/data/workspace/libraries.cljs +#: src/app/main/data/workspace/libraries.cljs:1090 msgid "workspace.updates.there-are-updates" msgstr "Există actualizări în bibliotecile distribuite" -#: src/app/main/data/workspace/libraries.cljs +#: src/app/main/data/workspace/libraries.cljs:1097 msgid "workspace.updates.update" msgstr "Actualizează" +#, unused msgid "workspace.viewport.click-to-close-path" msgstr "Click pentru a închide calea" diff --git a/frontend/translations/ru.po b/frontend/translations/ru.po index 1b961ddca1..47bcf953d0 100644 --- a/frontend/translations/ru.po +++ b/frontend/translations/ru.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "PO-Revision-Date: 2024-06-17 08:07+0000\n" "Last-Translator: Anonymous \n" -"Language-Team: Russian \n" +"Language-Team: Russian " +"\n" "Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" @@ -11,397 +11,446 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Weblate 5.6-dev\n" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:151, src/app/main/ui/viewer/login.cljs:104 msgid "auth.already-have-account" msgstr "Уже есть аккаунт?" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:299 msgid "auth.check-your-email" msgstr "Перейдите по ссылке в электронном письме, чтобы начать работу с Penpot." -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:78 msgid "auth.confirm-password" msgstr "Подтвердите пароль" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/register.cljs:163 msgid "auth.create-demo-account" msgstr "Создать демо-аккаунт" #: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#, unused msgid "auth.create-demo-profile" msgstr "Хотите попробовать?" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/login.cljs:43 msgid "auth.demo-warning" msgstr "" "Это ДЕМОНСТРАЦИЯ, НЕ ИСПОЛЬЗУЙТЕ для работы, проекты будут периодически " "удаляться." -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:189, src/app/main/ui/viewer/login.cljs:90 msgid "auth.forgot-password" msgstr "Забыли пароль?" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:254 msgid "auth.fullname" msgstr "Полное имя" -#: src/app/main/ui/auth/register.cljs -#, fuzzy +#: src/app/main/ui/auth/register.cljs:155, src/app/main/ui/viewer/login.cljs:107 msgid "auth.login-here" msgstr "Войти здесь" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:195 msgid "auth.login-submit" msgstr "Вход" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:222 msgid "auth.login-with-github-submit" msgstr "GitHub" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:228 msgid "auth.login-with-gitlab-submit" msgstr "GitLab" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:216 msgid "auth.login-with-google-submit" msgstr "Google" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:201 msgid "auth.login-with-ldap-submit" msgstr "LDAP" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:234, src/app/main/ui/auth/login.cljs:255 msgid "auth.login-with-oidc-submit" msgstr "OpenID" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:71 msgid "auth.new-password" msgstr "Введите новый пароль" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:42 msgid "auth.notifications.invalid-token-error" msgstr "Неверный код восстановления." -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:46 msgid "auth.notifications.password-changed-successfully" msgstr "Пароль успешно изменён" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:57 msgid "auth.notifications.profile-not-verified" msgstr "Профиль не подтверждён, пожалуйста, проверьте почту." -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:40 msgid "auth.notifications.recovery-token-sent" msgstr "Ссылка для восстановления пароля отправлена на почту." -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:47 msgid "auth.notifications.team-invitation-accepted" msgstr "Приглашение в команду принято" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:179, src/app/main/ui/auth/register.cljs:115 msgid "auth.password" msgstr "Пароль" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:114 msgid "auth.password-length-hint" msgstr "Минимум 8 символов" +#: src/app/main/ui/auth.cljs:41 msgid "auth.privacy-policy" msgstr "Политика конфиденциальности" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:88 msgid "auth.recovery-request-submit" msgstr "Восстановить пароль" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:101 msgid "auth.recovery-request-subtitle" msgstr "Мы отправим эл. письмо с инструкциями" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:100 msgid "auth.recovery-request-title" msgstr "Забыли пароль?" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:82 msgid "auth.recovery-submit" msgstr "Изменить пароль" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:298, src/app/main/ui/viewer/login.cljs:93 msgid "auth.register" msgstr "Еще нет аккаунта?" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:302, src/app/main/ui/auth/register.cljs:121, src/app/main/ui/auth/register.cljs:263, src/app/main/ui/viewer/login.cljs:97 msgid "auth.register-submit" msgstr "Создать аккаунт" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:140 msgid "auth.register-title" msgstr "Создать аккаунт" #: src/app/main/ui/auth.cljs +#, unused msgid "auth.sidebar-tagline" msgstr "Open Source решение для дизайна и прототипирования." +#: src/app/main/ui/auth.cljs:33, src/app/main/ui/dashboard/sidebar.cljs:1022, src/app/main/ui/workspace/main_menu.cljs:150 msgid "auth.terms-of-service" msgstr "Условия использования" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:297 msgid "auth.verification-email-sent" msgstr "Мы отправили эл. письмо с подтверждением на" +#: src/app/main/ui/workspace/libraries.cljs:228 msgid "common.publish" msgstr "Опубликовать" +#: src/app/main/ui/viewer/share_link.cljs:304, src/app/main/ui/viewer/share_link.cljs:314 msgid "common.share-link.all-users" msgstr "Все пользователи Penpot" +#: src/app/main/ui/viewer/share_link.cljs:198 msgid "common.share-link.confirm-deletion-link-description" msgstr "" "Вы точно хотите удалить эту ссылку? После этого она перестанет быть " "доступной" +#: src/app/main/ui/viewer/share_link.cljs:259, src/app/main/ui/viewer/share_link.cljs:289 msgid "common.share-link.current-tag" msgstr "(текущее)" +#: src/app/main/ui/viewer/share_link.cljs:207, src/app/main/ui/viewer/share_link.cljs:214 msgid "common.share-link.destroy-link" msgstr "Удалить ссылку" +#: src/app/main/ui/viewer/share_link.cljs:221 msgid "common.share-link.get-link" msgstr "Получить ссылку" +#: src/app/main/ui/viewer/share_link.cljs:139 msgid "common.share-link.link-copied-success" msgstr "Ссылка скопирована" +#: src/app/main/ui/viewer/share_link.cljs:231 msgid "common.share-link.manage-ops" msgstr "Управлять разрешениями" +#: src/app/main/ui/viewer/share_link.cljs:277 msgid "common.share-link.page-shared" msgid_plural "common.share-link.page-shared" msgstr[0] "1 общая страница" msgstr[1] "%s общих страниц" +#: src/app/main/ui/viewer/share_link.cljs:298 msgid "common.share-link.permissions-can-comment" msgstr "Может комментировать" +#: src/app/main/ui/viewer/share_link.cljs:308 msgid "common.share-link.permissions-can-inspect" msgstr "Может проверять код" +#: src/app/main/ui/viewer/share_link.cljs:193 msgid "common.share-link.permissions-hint" msgstr "Доступ открыт для получателей ссылки" +#: src/app/main/ui/viewer/share_link.cljs:241 msgid "common.share-link.permissions-pages" msgstr "Общие страницы" +#: src/app/main/ui/viewer/share_link.cljs:183 msgid "common.share-link.placeholder" msgstr "Ссылка появится здесь" +#: src/app/main/ui/viewer/share_link.cljs:303, src/app/main/ui/viewer/share_link.cljs:313 msgid "common.share-link.team-members" msgstr "Только участники команды" +#: src/app/main/ui/viewer/share_link.cljs:171 msgid "common.share-link.title" msgstr "Поделиться прототипами" +#: src/app/main/ui/viewer/share_link.cljs:269 msgid "common.share-link.view-all" msgstr "Выбрать все" +#: src/app/main/ui/workspace/libraries.cljs:224 msgid "common.unpublish" msgstr "Снять с публикации" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:85 msgid "dasboard.team-hero.management" msgstr "Управление командой" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:84 msgid "dasboard.team-hero.text" msgstr "" "Penpot предназначен для команд. Приглашайте участников к совместной работе " "над проектами и файлами" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:82 msgid "dasboard.team-hero.title" msgstr "Объединяйтесь!" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.tutorial-hero.info" msgstr "Изучите основы в Penpot весело с этим практическим руководством." #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.tutorial-hero.start" msgstr "Начать обучение" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.tutorial-hero.title" msgstr "Практическое руководство" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.walkthrough-hero.info" msgstr "Прогуляйтесь по возможностям Penpot и познакомьтесь с основными функциями." #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.walkthrough-hero.start" msgstr "Начать тур" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.walkthrough-hero.title" msgstr "Руководство по интерфейсу" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:115 +msgid "dashboard.access-tokens.copied-success" +msgstr "Токен скопирован" + +#: src/app/main/ui/settings/access_tokens.cljs:147 msgid "dashboard.access-tokens.expiration-180-days" msgstr "180 дней" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:144 msgid "dashboard.access-tokens.expiration-30-days" msgstr "30 дней" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:145 msgid "dashboard.access-tokens.expiration-60-days" msgstr "60 дней" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:146 msgid "dashboard.access-tokens.expiration-90-days" msgstr "90 дней" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:143 msgid "dashboard.access-tokens.expiration-never" msgstr "Никогда" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:291, src/app/main/ui/workspace/main_menu.cljs:572 msgid "dashboard.add-shared" msgstr "Добавить как общую библиотеку" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:75 msgid "dashboard.change-email" msgstr "Изменить эл. почту" -#: src/app/main/data/dashboard.cljs, src/app/main/data/dashboard.cljs +#: src/app/main/data/dashboard.cljs:762, src/app/main/data/dashboard.cljs:983 msgid "dashboard.copy-suffix" msgstr "(копия)" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:338 msgid "dashboard.create-new-team" msgstr "Создать новую команду" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/components/context_menu_a11y.cljs:256, src/app/main/ui/dashboard/sidebar.cljs:646 msgid "dashboard.default-team-name" msgstr "Ваш Penpot" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:571 msgid "dashboard.delete-team" msgstr "Удалить команду" +#: src/app/main/ui/dashboard/file_menu.cljs:296, src/app/main/ui/workspace/main_menu.cljs:589 msgid "dashboard.download-binary-file" msgstr "Скачать файл Penpot (.penpot)" +#: src/app/main/ui/dashboard/file_menu.cljs:300, src/app/main/ui/workspace/main_menu.cljs:597 msgid "dashboard.download-standard-file" msgstr "Скачать стандартный файл (.svg + .json)" -#: src/app/main/ui/dashboard/project_menu.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:276, src/app/main/ui/dashboard/project_menu.cljs:90 msgid "dashboard.duplicate" msgstr "Дублировать" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:240 msgid "dashboard.duplicate-multi" msgstr "Дублировать файлы (%s)" -#: src/app/main/ui/dashboard/grid.cljs +#: src/app/main/ui/dashboard/placeholder.cljs:32 +#, markdown msgid "dashboard.empty-placeholder-drafts" msgstr "" "Файлы, добавленные в Библиотеки, появятся здесь. Попробуйте поделиться " "своими файлами или добавить их из наших [Библиотек и " "шаблонов](https://penpot.app/libraries-templates)." +#: src/app/main/ui/dashboard/file_menu.cljs:249 msgid "dashboard.export-binary-multi" msgstr "Скачать файлы Penpot (.penpot) (%s)" +#: src/app/main/ui/workspace/main_menu.cljs:605 msgid "dashboard.export-frames" msgstr "Экспорт кадров в PDF" -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:201 msgid "dashboard.export-frames.title" msgstr "Экспорт в формате PDF" +#, unused msgid "dashboard.export-multi" msgstr "Экспорт файлов Penpot (%s)" -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:109 msgid "dashboard.export-multiple.selected" msgstr "Выбрано %s из %s элементов" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:578 msgid "dashboard.export-shapes" msgstr "Экспорт" -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:180 msgid "dashboard.export-shapes.how-to" msgstr "" "Вы можете добавить настройки экспорта элементам из свойств дизайна (в " "нижней части правой боковой панели)." -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:184 msgid "dashboard.export-shapes.how-to-link" msgstr "Информация о настройке экспорта в Penpot." -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:179 msgid "dashboard.export-shapes.no-elements" msgstr "Нет элементов с настройками экспорта." -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:190 msgid "dashboard.export-shapes.title" msgstr "Выбор экспорта" +#: src/app/main/ui/dashboard/file_menu.cljs:252 msgid "dashboard.export-standard-multi" msgstr "Скачать стандартные файлы (.svg + .json) (%s)" +#: src/app/main/ui/export.cljs:427 msgid "dashboard.export.detail" msgstr "* Могут содержать компоненты, цвета, графику, и/или типографику." +#: src/app/main/ui/export.cljs:426 msgid "dashboard.export.explain" msgstr "" "Один или несколько файлов на экспорт используют общие библиотеки. Что нужно " "сделать с их ресурсами*?" +#: src/app/main/ui/export.cljs:435 msgid "dashboard.export.options.all.message" msgstr "Файлы с общих библиотек будут включены в экспорт, сохраняя свою привязку." +#: src/app/main/ui/export.cljs:436 msgid "dashboard.export.options.all.title" msgstr "Экспорт общих библиотек" +#: src/app/main/ui/export.cljs:437 msgid "dashboard.export.options.detach.message" msgstr "" "Общие библиотеки не будут включены в экспорт, и вложенные ресурсы не " "попадут в библиотеку экспорта. " +#: src/app/main/ui/export.cljs:438 msgid "dashboard.export.options.detach.title" msgstr "Воспринимать ресурсы общей библиотеки как обычные объекты" +#: src/app/main/ui/export.cljs:439 msgid "dashboard.export.options.merge.message" msgstr "" "Ваш файл будет экспортирован с включением всех внешних ресурсов в " "библиотеку экспорта." +#: src/app/main/ui/export.cljs:440 msgid "dashboard.export.options.merge.title" msgstr "Включить ресурсы общей библиотеки в файловые библиотеки" +#: src/app/main/ui/export.cljs:418 msgid "dashboard.export.title" msgstr "Экспорт файлов" +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:309 msgid "dashboard.fonts.deleted-placeholder" msgstr "Шрифт удалён" -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:206 msgid "dashboard.fonts.dismiss-all" msgstr "Отменить все" +#: src/app/main/ui/dashboard/fonts.cljs:436 msgid "dashboard.fonts.empty-placeholder" msgstr "Пользовательские шрифты, которые вы загружаете, будут отображаться здесь." -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:194 msgid "dashboard.fonts.fonts-added" msgid_plural "dashboard.fonts.fonts-added" msgstr[0] "Шрифт добавлен" msgstr[1] "Шрифты добавлены (%s)" +#: src/app/main/ui/dashboard/fonts.cljs:170 +#, markdown msgid "dashboard.fonts.hero-text1" msgstr "" "Любой загружаемый сюда шрифт будет добавлен в семейство шрифтов и доступен " @@ -410,6 +459,8 @@ msgstr "" "загрузки допустимы следующие форматы: **TTF, OTF и WOFF** (используйте один " "из них)." +#: src/app/main/ui/dashboard/fonts.cljs:182 +#, markdown msgid "dashboard.fonts.hero-text2" msgstr "" "Вам следует загружать только собственные шрифты, или у которых есть " @@ -418,2724 +469,2882 @@ msgstr "" "Также можете прочитать о [лицензированием " "шрифтов](https://www.typography.com/faq) в целом." -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:202 msgid "dashboard.fonts.upload-all" msgstr "Загрузить все" +#: src/app/main/ui/dashboard/import.cljs:472, src/app/main/ui/dashboard/project_menu.cljs:108 msgid "dashboard.import" msgstr "Импорт файлов Penpot" +#: src/app/main/ui/dashboard/import.cljs:304, src/app/worker/import.cljs:753, src/app/worker/import.cljs:755 msgid "dashboard.import.analyze-error" msgstr "Ой! Не вышло импортировать этот файл" +#: src/app/main/ui/dashboard/import.cljs:308 msgid "dashboard.import.import-error" msgstr "Есть проблема с импортом файла. Файл не был импортирован." +#: src/app/main/ui/dashboard/import.cljs:493 msgid "dashboard.import.import-message" msgstr "Файлы успешно импортированы (%s)." +#: src/app/main/ui/dashboard/import.cljs:481, src/app/main/ui/dashboard/import.cljs:488 msgid "dashboard.import.import-warning" msgstr "Некоторые файлы содержали неверные объекты, которые были удалены." +#: src/app/main/ui/dashboard/import.cljs:144 msgid "dashboard.import.progress.process-colors" msgstr "Обработка цветов" +#: src/app/main/ui/dashboard/import.cljs:153 msgid "dashboard.import.progress.process-components" msgstr "Обработка компонентов" +#: src/app/main/ui/dashboard/import.cljs:150 msgid "dashboard.import.progress.process-media" msgstr "Обработка медиа" +#: src/app/main/ui/dashboard/import.cljs:141 msgid "dashboard.import.progress.process-page" msgstr "Обработка страницы: %s" +#: src/app/main/ui/dashboard/import.cljs:147 msgid "dashboard.import.progress.process-typographies" msgstr "Обработка типографики" +#: src/app/main/ui/dashboard/import.cljs:135 msgid "dashboard.import.progress.upload-data" msgstr "Загрузка данных на сервер (%s/%s)" +#: src/app/main/ui/dashboard/import.cljs:138 msgid "dashboard.import.progress.upload-media" msgstr "Загрузка файла: %s" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:109 msgid "dashboard.invite-profile" msgstr "Пригласить людей" -#: src/app/main/ui/dashboard/sidebar.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:547, src/app/main/ui/dashboard/sidebar.cljs:556, src/app/main/ui/dashboard/sidebar.cljs:563, src/app/main/ui/dashboard/team.cljs:312 msgid "dashboard.leave-team" msgstr "Покинуть команду" +#: src/app/main/ui/dashboard/templates.cljs:88, src/app/main/ui/dashboard/templates.cljs:163 msgid "dashboard.libraries-and-templates" msgstr "Библиотеки и шаблоны" +#: src/app/main/ui/dashboard/templates.cljs:164 msgid "dashboard.libraries-and-templates.explore" msgstr "Узнайте больше о них и о том, как внести свой вклад" +#: src/app/main/ui/dashboard/import.cljs:365 msgid "dashboard.libraries-and-templates.import-error" msgstr "Возникла проблема с импортом шаблона. Шаблон не был импортирован." -#: src/app/main/ui/dashboard/libraries.cljs +#: src/app/main/ui/dashboard/libraries.cljs:53 msgid "dashboard.libraries-title" msgstr "Библиотеки" -#: src/app/main/ui/dashboard/grid.cljs +#: src/app/main/ui/dashboard/placeholder.cljs:45 msgid "dashboard.loading-files" msgstr "загрузка ваших файлов …" +#: src/app/main/ui/dashboard/fonts.cljs:431 msgid "dashboard.loading-fonts" msgstr "загрузка ваших шрифтов …" -#: src/app/main/ui/dashboard/project_menu.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:281, src/app/main/ui/dashboard/project_menu.cljs:100 msgid "dashboard.move-to" msgstr "Переместить" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:245 msgid "dashboard.move-to-multi" msgstr "Переместить файлы (%s)" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:226 msgid "dashboard.move-to-other-team" msgstr "Перевести в другую команду" -#: src/app/main/ui/dashboard/projects.cljs, -#: src/app/main/ui/dashboard/files.cljs +#: src/app/main/ui/dashboard/files.cljs:105, src/app/main/ui/dashboard/projects.cljs:252, src/app/main/ui/dashboard/projects.cljs:253 msgid "dashboard.new-file" msgstr "+ Новый файл" -#: src/app/main/data/dashboard.cljs +#: src/app/main/data/dashboard.cljs:958, src/app/main/data/dashboard.cljs:1181 msgid "dashboard.new-file-prefix" msgstr "Новый файл" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:55 msgid "dashboard.new-project" msgstr "+ Новый проект" -#: src/app/main/data/dashboard.cljs +#: src/app/main/data/dashboard.cljs:726, src/app/main/data/dashboard.cljs:1184 msgid "dashboard.new-project-prefix" msgstr "Новый проект" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:60 msgid "dashboard.no-matches-for" msgstr "Совпадений для “%s“ не найдено" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:827 msgid "dashboard.no-projects-placeholder" msgstr "Закреплённые проекты будут здесь" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:33 msgid "dashboard.notifications.email-changed-successfully" msgstr "Ваш адрес эл. почты был успешно обновлён" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:27 msgid "dashboard.notifications.email-verified-successfully" msgstr "Ваш email адрес успешно подтвержден" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:37 msgid "dashboard.notifications.password-saved" msgstr "Пароль успешно сохранен!" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1081 msgid "dashboard.num-of-members" msgstr "Участников: %s" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:267 msgid "dashboard.open-in-new-tab" msgstr "Открыть в новой вкладке" +#: src/app/main/ui/dashboard/files.cljs:117, src/app/main/ui/dashboard/projects.cljs:260, src/app/main/ui/dashboard/projects.cljs:261 msgid "dashboard.options" msgstr "Опции" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:106, src/app/main/ui/settings/password.cljs:119 msgid "dashboard.password-change" msgstr "Изменить пароль" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/pin_button.cljs:24, src/app/main/ui/dashboard/project_menu.cljs:95 msgid "dashboard.pin-unpin" msgstr "Закрепить/Открепить" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:51 msgid "dashboard.projects-title" msgstr "Проекты" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:86 msgid "dashboard.remove-account" msgstr "Хотите удалить свой аккаунт?" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "dashboard.remove-shared" msgstr "Снять статус общей библиотеки" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:78 msgid "dashboard.save-settings" msgstr "Сохранить настройки" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:246, src/app/main/ui/dashboard/sidebar.cljs:247 msgid "dashboard.search-placeholder" msgstr "Поиск…" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:55 msgid "dashboard.searching-for" msgstr "Поиск \"%s\"…" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:56 msgid "dashboard.select-ui-language" msgstr "Выберите язык интерфейса" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:63 msgid "dashboard.select-ui-theme" msgstr "Выберите тему" -#: src/app/main/ui/dashboard/grid.cljs +#: src/app/main/ui/dashboard/projects.cljs:282 msgid "dashboard.show-all-files" msgstr "Показать все файлы" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:96 msgid "dashboard.success-delete-file" msgid_plural "dashboard.success-delete-file" msgstr[0] "Ваш файл успешно удален" msgstr[1] "Ваши файлы успешно удалены" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:59 msgid "dashboard.success-delete-project" msgstr "Ваш проект удалён" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:33 msgid "dashboard.success-duplicate-project" msgstr "Ваш проект продублирован" -#: src/app/main/ui/dashboard/grid.cljs, src/app/main/ui/dashboard/sidebar.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:130, src/app/main/ui/dashboard/grid.cljs:558, src/app/main/ui/dashboard/sidebar.cljs:152 msgid "dashboard.success-move-file" msgstr "Ваш файл успешно перемещён" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:129 msgid "dashboard.success-move-files" msgstr "Ваши файлы успешно перемещены" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:54 msgid "dashboard.success-move-project" msgstr "Ваш проект перемещён" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1052 msgid "dashboard.team-info" msgstr "О команде" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1070 msgid "dashboard.team-members" msgstr "Участники команды" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1085 msgid "dashboard.team-projects" msgstr "Командные проекты" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:61 msgid "dashboard.theme-change" msgstr "Тема интерфейса пользователя" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:42 msgid "dashboard.title-search" msgstr "Результаты поиска" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:50 msgid "dashboard.type-something" msgstr "Введите для поиска" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:287, src/app/main/ui/workspace/main_menu.cljs:566 msgid "dashboard.unpublish-shared" msgstr "Снять библиотеку с публикации" -#: src/app/main/ui/settings/profile.cljs, -#: src/app/main/ui/settings/password.cljs, -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:71 msgid "dashboard.update-settings" msgstr "Обновить настройки" +#: src/app/main/ui/dashboard/team.cljs:861 msgid "dashboard.webhooks.active" msgstr "Активен" +#: src/app/main/ui/dashboard/team.cljs:852 msgid "dashboard.webhooks.content-type" msgstr "Тип контента" +#: src/app/main/ui/dashboard/team.cljs:885 msgid "dashboard.webhooks.create" msgstr "Создать вебхук" -#: src/app/main/ui/settings.cljs +#: src/app/main/ui/settings.cljs:31 msgid "dashboard.your-account-title" msgstr "Ваш аккаунт" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:70 msgid "dashboard.your-email" msgstr "Эл. почта" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:62 msgid "dashboard.your-name" msgstr "Ваше имя" -#: src/app/main/ui/dashboard/search.cljs, src/app/main/ui/dashboard/team.cljs, -#: src/app/main/ui/dashboard/libraries.cljs, -#: src/app/main/ui/dashboard/projects.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:38, src/app/main/ui/dashboard/fonts.cljs:33, src/app/main/ui/dashboard/libraries.cljs:42, src/app/main/ui/dashboard/projects.cljs:318, src/app/main/ui/dashboard/search.cljs:30, src/app/main/ui/dashboard/sidebar.cljs:312, src/app/main/ui/dashboard/team.cljs:495, src/app/main/ui/dashboard/team.cljs:729, src/app/main/ui/dashboard/team.cljs:991, src/app/main/ui/dashboard/team.cljs:1038 msgid "dashboard.your-penpot" msgstr "Ваш Penpot" -#: src/app/main/ui/alert.cljs +#: src/app/main/ui/alert.cljs:32 msgid "ds.alert-ok" msgstr "Ок" -#: src/app/main/ui/alert.cljs +#: src/app/main/ui/alert.cljs:31, src/app/main/ui/alert.cljs:34 msgid "ds.alert-title" msgstr "Внимание" -#: src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:83 msgid "ds.component-subtitle" msgstr "Компоненты для обновления:" -#: src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:36, src/app/main/ui/workspace/plugins.cljs:246 msgid "ds.confirm-cancel" msgstr "Отмена" -#: src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:37, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:141 msgid "ds.confirm-ok" msgstr "Oк" -#: src/app/main/ui/confirm.cljs, src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:35, src/app/main/ui/confirm.cljs:39 msgid "ds.confirm-title" msgstr "Вы уверены?" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:62 msgid "errors.auth-provider-not-configured" msgstr "Провайдер аутентификации не настроен." +#: src/app/main/errors.cljs:104 msgid "errors.auth.unable-to-login" msgstr "Кажется, сеанс истёк. Войдите снова." +#: src/app/main/data/fonts.cljs:189 msgid "errors.bad-font" msgstr "Шрифт %s не может быть загружен" +#: src/app/main/data/fonts.cljs:188 msgid "errors.bad-font-plural" msgstr "Шрифты %s не могут быть загружены" -#: src/app/main/data/workspace.cljs +#: src/app/main/data/workspace.cljs:1598 msgid "errors.clipboard-not-implemented" msgstr "Ваш браузер не поддерживает эту операцию" -#: src/app/main/ui/auth/verify_token.cljs, -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/auth/verify_token.cljs:82, src/app/main/ui/settings/change_email.cljs:46 msgid "errors.email-already-exists" msgstr "Такая эл. почта уже используется" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:87 msgid "errors.email-already-validated" msgstr "Эл. почта уже подтверждена." +#: src/app/main/ui/settings/password.cljs:28 msgid "errors.email-as-password" msgstr "Нельзя указывать в качестве пароля адрес эл. почты" -#: src/app/main/ui/auth/register.cljs, -#: src/app/main/ui/auth/recovery_request.cljs, -#: src/app/main/ui/settings/change_email.cljs, -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/auth/recovery_request.cljs:63, src/app/main/ui/dashboard/team.cljs:578, src/app/main/ui/settings/change_email.cljs:54 msgid "errors.email-has-permanent-bounces" msgstr "Эл. почта «%s» постоянно недоступна." -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:35 msgid "errors.email-invalid-confirmation" msgstr "Эл. почта для подтверждения должна совпадать" +#: src/app/main/ui/dashboard/team.cljs:170 msgid "errors.email-spam-or-permanent-bounces" msgstr "Эл. почта «%s» была отмечена как спам или постоянно недоступна." -#: src/app/main/ui/auth/verify_token.cljs, -#: src/app/main/ui/settings/feedback.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/data/users.cljs:709, src/app/main/ui/auth/login.cljs:65, src/app/main/ui/auth/login.cljs:116, src/app/main/ui/auth/register.cljs:69, src/app/main/ui/auth/register.cljs:237, src/app/main/ui/auth/verify_token.cljs:92, src/app/main/ui/dashboard/team.cljs:173, src/app/main/ui/onboarding/team_choice.cljs:95, src/app/main/ui/settings/access_tokens.cljs:91, src/app/main/ui/settings/feedback.cljs:52 msgid "errors.generic" msgstr "Что-то пошло не так." -#: src/app/main/ui/components/color_input.cljs +#: src/app/main/ui/components/color_input.cljs:57 msgid "errors.invalid-color" msgstr "Неверный цвет" +#: src/app/main/ui/static.cljs:44 msgid "errors.invite-invalid.info" msgstr "Возможно, это приглашение отменено или истёк срок его действия." -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:101 msgid "errors.ldap-disabled" msgstr "Вход c LDAP отключён." -#: src/app/main/data/workspace/persistence.cljs +#: src/app/main/data/workspace/media.cljs:184 msgid "errors.media-too-large" msgstr "Изображение слишком большое для вставки." -#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs +#: src/app/main/data/media.cljs:68, src/app/main/data/workspace/media.cljs:187 msgid "errors.media-type-mismatch" msgstr "Формат медиа не соответует расширению файла." -#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs +#: src/app/main/data/media.cljs:65, src/app/main/data/workspace/media.cljs:172, src/app/main/data/workspace/media.cljs:175, src/app/main/data/workspace/media.cljs:178, src/app/main/data/workspace/media.cljs:181 msgid "errors.media-type-not-allowed" msgstr "Неверное медиа." -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:574 msgid "errors.member-is-muted" msgstr "Невозможно пригласить адресата с недоступным адресом электронной почты." -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:61 msgid "errors.password-invalid-confirmation" msgstr "Пароль для подтверждения должен совпадать" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:64 msgid "errors.password-too-short" msgstr "Пароль должен быть минимум 8 символов" +#: src/app/main/data/users.cljs:703, src/app/main/ui/auth/login.cljs:97, src/app/main/ui/auth/login.cljs:105 msgid "errors.profile-blocked" msgstr "Профиль заблокирован" -#: src/app/main/ui/auth/recovery_request.cljs, -#: src/app/main/ui/settings/change_email.cljs, -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/auth/recovery_request.cljs:60, src/app/main/ui/dashboard/team.cljs:164, src/app/main/ui/dashboard/team.cljs:570, src/app/main/ui/settings/change_email.cljs:50 msgid "errors.profile-is-muted" msgstr "Ваш адрес электронной почты не доступен." -#: src/app/main/ui/auth/register.cljs +#: src/app/main/data/users.cljs:701, src/app/main/ui/auth/register.cljs:60 msgid "errors.registration-disabled" msgstr "Регистрация сейчас отключена." +#: src/app/main/ui/dashboard/sidebar.cljs:365, src/app/main/ui/dashboard/team.cljs:359 msgid "errors.team-leave.insufficient-members" msgstr "" "Недостаточно участников, чтобы покинуть команду, вероятно, вы хотите её " "удалить." +#: src/app/main/ui/dashboard/sidebar.cljs:368, src/app/main/ui/dashboard/team.cljs:362 msgid "errors.team-leave.member-does-not-exists" msgstr "Участник, которого вы пытаетесь назначить, не существует." +#: src/app/main/ui/dashboard/sidebar.cljs:371, src/app/main/ui/dashboard/team.cljs:365 msgid "errors.team-leave.owner-cant-leave" msgstr "Нужно переназначить роль владельца перед тем, как покинуть команду." -#: src/app/main/data/media.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs +#: src/app/main/data/media.cljs:71 msgid "errors.unexpected-error" msgstr "Произошла ошибка." -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:60 msgid "errors.unexpected-token" msgstr "Неизвестный токен" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:109, src/app/main/ui/auth/login.cljs:113 msgid "errors.wrong-credentials" msgstr "Эл. почта или пароль неверны." -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:25 msgid "errors.wrong-old-password" msgstr "Старый пароль неверный" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:77 msgid "feedback.description" msgstr "Описание" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:95 msgid "feedback.discourse-go-to" msgstr "Перейти на форум Penpot" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:89 msgid "feedback.discourse-subtitle1" msgstr "" "Мы рады вас здесь видеть. Если вам нужна помощь, пожалуйста, поищите ответ, " "возможно он уже есть." -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:88 msgid "feedback.discourse-title" msgstr "Сообщество Penpot" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:72 msgid "feedback.subject" msgstr "Краткое описание" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:69 msgid "feedback.subtitle" msgstr "" "Пожалуйста, опишите причину обращения: проблема в работе, идея или " "сомнение. Участник нашей команды даст ответ в ближайшее время." -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:68 msgid "feedback.title" msgstr "Эл. почта" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:105 msgid "feedback.twitter-go-to" msgstr "Перейти в X" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:99 msgid "feedback.twitter-subtitle1" msgstr "Здесь, чтобы помочь с вашими техническими запросами." -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:98 msgid "feedback.twitter-title" msgstr "Аккаунт поддержки в X" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:30 msgid "generic.error" msgstr "Произошла ошибка" -#: src/app/main/ui/inspect/attributes/blur.cljs +#: src/app/main/ui/viewer/inspect/attributes/blur.cljs:26 msgid "inspect.attributes.blur" msgstr "Размытие" -#: src/app/main/ui/inspect/attributes/blur.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:115 msgid "inspect.attributes.blur.value" msgstr "Значение" -#: src/app/main/ui/inspect/attributes/common.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:112 msgid "inspect.attributes.color.hex" msgstr "HEX" -#: src/app/main/ui/inspect/attributes/common.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:114 msgid "inspect.attributes.color.hsla" msgstr "HSLA" -#: src/app/main/ui/inspect/attributes/common.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:113 msgid "inspect.attributes.color.rgba" msgstr "RGBA" -#: src/app/main/ui/inspect/attributes/fill.cljs +#: src/app/main/ui/viewer/inspect/attributes/fill.cljs:57 msgid "inspect.attributes.fill" msgstr "Заливка" -#: src/app/main/ui/inspect/attributes/image.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:99, src/app/main/ui/viewer/inspect/attributes/image.cljs:51 msgid "inspect.attributes.image.download" msgstr "Скачать оригинал" -#: src/app/main/ui/inspect/attributes/image.cljs +#: src/app/main/ui/viewer/inspect/attributes/image.cljs:39 msgid "inspect.attributes.image.height" msgstr "Высота" -#: src/app/main/ui/inspect/attributes/image.cljs +#: src/app/main/ui/viewer/inspect/attributes/image.cljs:32 msgid "inspect.attributes.image.width" msgstr "Ширина" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout" msgstr "Размещение" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.height" msgstr "Высота" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.left" msgstr "Слева" -#: src/app/main/ui/inspect/attributes/layout.cljs, -#: src/app/main/ui/inspect/attributes/layout.cljs +#: src/app/main/ui/inspect/attributes/layout.cljs, src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.radius" msgstr "Радиус" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.rotation" msgstr "Вращение" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.top" msgstr "Сверху" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.width" msgstr "Ширина" -#: src/app/main/ui/inspect/attributes/shadow.cljs +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:57 msgid "inspect.attributes.shadow" msgstr "Тень" -#: src/app/main/ui/inspect/attributes/stroke.cljs +#: src/app/main/ui/viewer/inspect/attributes/stroke.cljs:52 msgid "inspect.attributes.stroke" msgstr "Обводка" +#, permanent, unused msgid "inspect.attributes.stroke.alignment.center" msgstr "Центр" +#, permanent, unused msgid "inspect.attributes.stroke.alignment.inner" msgstr "Внутрь" +#, permanent, unused msgid "inspect.attributes.stroke.alignment.outer" msgstr "Наружу" +#, unused msgid "inspect.attributes.stroke.style.dotted" msgstr "Точечная" +#, unused msgid "inspect.attributes.stroke.style.mixed" msgstr "Смешанная" +#, unused msgid "inspect.attributes.stroke.style.none" msgstr "Нет" +#, unused msgid "inspect.attributes.stroke.style.solid" msgstr "Сплошная" #: src/app/main/ui/inspect/attributes/stroke.cljs +#, unused msgid "inspect.attributes.stroke.width" msgstr "Толщина" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:81, src/app/main/ui/viewer/inspect/attributes/text.cljs:194 msgid "inspect.attributes.typography" msgstr "Текст" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:89 msgid "inspect.attributes.typography.font-family" msgstr "Гарнитура" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:107 msgid "inspect.attributes.typography.font-size" msgstr "Размер" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:98 msgid "inspect.attributes.typography.font-style" msgstr "Шрифт" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:134 msgid "inspect.attributes.typography.letter-spacing" msgstr "Трекинг" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:125 msgid "inspect.attributes.typography.line-height" msgstr "Интерлиньяж" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:143 msgid "inspect.attributes.typography.text-decoration" msgstr "Оформление" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:145 msgid "inspect.attributes.typography.text-decoration.none" msgstr "Нет" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:146 msgid "inspect.attributes.typography.text-decoration.strikethrough" msgstr "Перечёркнутый" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:147 msgid "inspect.attributes.typography.text-decoration.underline" msgstr "Подчёркнутый" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:156 msgid "inspect.attributes.typography.text-transform" msgstr "Регистр" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:158 msgid "inspect.attributes.typography.text-transform.lowercase" msgstr "Нижний регистр" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:159 msgid "inspect.attributes.typography.text-transform.none" msgstr "Какой есть" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:160 msgid "inspect.attributes.typography.text-transform.titlecase" msgstr "Регистр Заголовка" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:161 msgid "inspect.attributes.typography.text-transform.uppercase" msgstr "Верхний регистр" -#: src/app/main/ui/inspect/right_sidebar.cljs +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:125 msgid "inspect.tabs.code" msgstr "Код" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:98 msgid "inspect.tabs.code.selected.circle" msgstr "Круг" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:99 msgid "inspect.tabs.code.selected.component" msgstr "Компонент" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:100 msgid "inspect.tabs.code.selected.curve" msgstr "Кривая" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:101 msgid "inspect.tabs.code.selected.frame" msgstr "Кадр" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:102 msgid "inspect.tabs.code.selected.group" msgstr "Группа" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:103 msgid "inspect.tabs.code.selected.image" msgstr "Изображение" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:104 msgid "inspect.tabs.code.selected.mask" msgstr "Маска" -#: src/app/main/ui/inspect/right_sidebar.cljs +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:93 msgid "inspect.tabs.code.selected.multiple" msgstr "Выделено: %s" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:105 msgid "inspect.tabs.code.selected.path" msgstr "Контур" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:106 msgid "inspect.tabs.code.selected.rect" msgstr "Прямоугольник" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:107 msgid "inspect.tabs.code.selected.svg-raw" msgstr "SVG" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:108 msgid "inspect.tabs.code.selected.text" msgstr "Текст" -#: src/app/main/ui/inspect/right_sidebar.cljs +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:115 msgid "inspect.tabs.info" msgstr "Информация" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:158 msgid "label.shortcuts" msgstr "Сочетания клавиш" +#: src/app/main/ui/dashboard/import.cljs:527 msgid "labels.accept" msgstr "Принять" +#: src/app/main/ui/dashboard/fonts.cljs:175 msgid "labels.add-custom-font" msgstr "Добавить произвольный шрифт" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:120, src/app/main/ui/dashboard/team.cljs:276, src/app/main/ui/dashboard/team.cljs:519, src/app/main/ui/dashboard/team.cljs:549, src/app/main/ui/onboarding/team_choice.cljs:67 msgid "labels.admin" msgstr "Администратор" #: src/app/main/ui/workspace/comments.cljs +#, unused msgid "labels.all" msgstr "Все" +#: src/app/main/ui/auth.cljs:37 msgid "labels.and" msgstr "и" +#: src/app/main/ui/onboarding/team_choice.cljs:162 msgid "labels.back" msgstr "Назад" -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:59 msgid "labels.bad-gateway.desc-message" msgstr "Возможны технические работы. Пожалуйста, зайдите чуть позже." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:58 msgid "labels.bad-gateway.main-message" msgstr "Bad Gateway" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/data/common.cljs:112, src/app/main/ui/dashboard/change_owner.cljs:69, src/app/main/ui/dashboard/import.cljs:514, src/app/main/ui/dashboard/team.cljs:868, src/app/main/ui/delete_shared.cljs:35, src/app/main/ui/export.cljs:164, src/app/main/ui/export.cljs:460, src/app/main/ui/settings/access_tokens.cljs:188, src/app/main/ui/viewer/share_link.cljs:203, src/app/main/ui/workspace/sidebar/assets/groups.cljs:149 msgid "labels.cancel" msgstr "Отмена" +#: src/app/main/ui/dashboard/projects.cljs:93, src/app/main/ui/export.cljs:478, src/app/main/ui/settings/access_tokens.cljs:183, src/app/main/ui/viewer/login.cljs:77, src/app/main/ui/viewer/share_link.cljs:174, src/app/main/ui/workspace/libraries.cljs:522 msgid "labels.close" msgstr "Закрыть" -#: src/app/main/ui/dashboard/comments.cljs +#: src/app/main/ui/dashboard/comments.cljs:104, src/app/main/ui/viewer/comments.cljs:70, src/app/main/ui/workspace/comments.cljs:126 msgid "labels.comments" msgstr "Комментарии" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:985, src/app/main/ui/workspace/main_menu.cljs:110 msgid "labels.community" msgstr "Сообщество" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:103 msgid "labels.confirm-password" msgstr "Подтвердите пароль" +#: src/app/main/ui/dashboard/import.cljs:520, src/app/main/ui/export.cljs:465, src/app/main/ui/onboarding/newsletter.cljs:101 msgid "labels.continue" msgstr "Продолжить" +#, unused msgid "labels.continue-with" msgstr "Продолжить с" +#: src/app/main/ui/viewer/login.cljs:75 msgid "labels.continue-with-penpot" msgstr "Вы можете продолжить с аккаунтом Penpot" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:157, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:190 msgid "labels.create" msgstr "Создать" -#: src/app/main/ui/dashboard/team_form.cljs, -#: src/app/main/ui/dashboard/team_form.cljs +#: src/app/main/ui/dashboard/team_form.cljs:101, src/app/main/ui/dashboard/team_form.cljs:121 msgid "labels.create-team" msgstr "Создать новую команду" -#: src/app/main/ui/dashboard/team_form.cljs +#: src/app/main/ui/dashboard/team_form.cljs:113 msgid "labels.create-team.placeholder" msgstr "Введите название новой команды" +#, unused msgid "labels.custom-fonts" msgstr "Произвольные шрифты" -#: src/app/main/ui/settings/sidebar.cljs +#: src/app/main/ui/settings/sidebar.cljs:73 msgid "labels.dashboard" msgstr "Панель управления" -#: src/app/main/ui/dashboard/project_menu.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:306, src/app/main/ui/dashboard/fonts.cljs:255, src/app/main/ui/dashboard/fonts.cljs:332, src/app/main/ui/dashboard/fonts.cljs:346, src/app/main/ui/dashboard/project_menu.cljs:115, src/app/main/ui/dashboard/team.cljs:904, src/app/main/ui/settings/access_tokens.cljs:209, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:209 msgid "labels.delete" msgstr "Удалить" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:357 msgid "labels.delete-comment" msgstr "Удалить комментарий" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:354 msgid "labels.delete-comment-thread" msgstr "Удалить обсуждение" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:648 msgid "labels.delete-invitation" msgstr "Удалить приглашение" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:262 msgid "labels.delete-multi-files" msgstr "Удалить файлы (%s)" -#: src/app/main/ui/dashboard/projects.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs, -#: src/app/main/ui/dashboard/files.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:28, src/app/main/ui/dashboard/files.cljs:72, src/app/main/ui/dashboard/files.cljs:156, src/app/main/ui/dashboard/projects.cljs:220, src/app/main/ui/dashboard/projects.cljs:224, src/app/main/ui/dashboard/sidebar.cljs:791 msgid "labels.drafts" msgstr "Черновики" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:350, src/app/main/ui/dashboard/fonts.cljs:252, src/app/main/ui/dashboard/team.cljs:902, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:205 msgid "labels.edit" msgstr "Редактировать" +#, unused msgid "labels.edit-file" msgstr "Редактировать" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:118, src/app/main/ui/dashboard/team.cljs:279, src/app/main/ui/dashboard/team.cljs:520, src/app/main/ui/dashboard/team.cljs:553, src/app/main/ui/onboarding/team_choice.cljs:66 msgid "labels.editor" msgstr "Редактор" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:661 msgid "labels.expired-invitation" msgstr "Истекло" +#: src/app/main/ui/export.cljs:173 msgid "labels.export" msgstr "Экспорт" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:51 msgid "labels.feedback-disabled" msgstr "Обратная связь отключена" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:42 msgid "labels.feedback-sent" msgstr "Отзыв отправлен" +#: src/app/main/ui/dashboard/fonts.cljs:412 msgid "labels.font-family" msgstr "Семейство шрифтов" +#, unused msgid "labels.font-providers" msgstr "Поставщики шрифтов" +#: src/app/main/ui/dashboard/fonts.cljs:413 msgid "labels.font-variants" msgstr "Начертания" +#: src/app/main/ui/dashboard/fonts.cljs:52, src/app/main/ui/dashboard/sidebar.cljs:811 msgid "labels.fonts" msgstr "Шрифты" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:1015, src/app/main/ui/workspace/main_menu.cljs:142 msgid "labels.github-repo" msgstr "Репозиторий на Github" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/settings/sidebar.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:1032, src/app/main/ui/settings/sidebar.cljs:113, src/app/main/ui/workspace/main_menu.cljs:171 msgid "labels.give-feedback" msgstr "Оставить отзыв" +#: src/app/main/ui/auth/recovery_request.cljs:110, src/app/main/ui/auth/register.cljs:285, src/app/main/ui/viewer/login.cljs:117 msgid "labels.go-back" msgstr "Назад" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:978, src/app/main/ui/workspace/main_menu.cljs:102 msgid "labels.help-center" msgstr "Помощь" -#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/comments.cljs:103, src/app/main/ui/workspace/comments.cljs:67 msgid "labels.hide-resolved-comments" msgstr "Скрыть решённые комментарии" +#: src/app/main/ui/dashboard/fonts.cljs:410 msgid "labels.installed-fonts" msgstr "Установленные шрифты" -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:144 msgid "labels.internal-error.desc-message" msgstr "Что-то пошло не так. Пожалуйста, повторите или обратитесь в поддержку." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:143 msgid "labels.internal-error.main-message" msgstr "Внутренняя ошибка" -#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:516, src/app/main/ui/dashboard/team.cljs:89, src/app/main/ui/dashboard/team.cljs:97, src/app/main/ui/dashboard/team.cljs:708 msgid "labels.invitations" msgstr "Приглашения" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:51 msgid "labels.language" msgstr "Язык" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:1008, src/app/main/ui/workspace/main_menu.cljs:134 msgid "labels.libraries-and-templates" msgstr "Библиотеки и шаблоны" +#: src/app/main/ui/viewer/header.cljs:203 msgid "labels.log-or-sign" msgstr "Войти или зарегистрироваться" -#: src/app/main/ui/settings.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:1040 msgid "labels.logout" msgstr "Выйти" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/team.cljs:468 msgid "labels.member" msgstr "Участник" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:510, src/app/main/ui/dashboard/team.cljs:87, src/app/main/ui/dashboard/team.cljs:95 msgid "labels.members" msgstr "Участники" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:96 msgid "labels.new-password" msgstr "Новый пароль" -#: src/app/main/ui/workspace/comments.cljs, -#: src/app/main/ui/dashboard/comments.cljs +#: src/app/main/ui/dashboard/comments.cljs:128, src/app/main/ui/workspace/comments.cljs:161 msgid "labels.no-comments-available" msgstr "Вы попались! Здесь будут появляться уведомления о новых комментариях." -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:694 msgid "labels.no-invitations" msgstr "Нет ожидающих приглашений." -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:696 +#, markdown msgid "labels.no-invitations-hint" msgstr "Нажмите кнопку **Пригласить людей**, чтобы пригласить в эту команду." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:50 msgid "labels.not-found.desc-message" msgstr "Эта страница не существует, или у вас нет к ней доступа." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:49 msgid "labels.not-found.main-message" msgstr "Ой!" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/projects.cljs:239, src/app/main/ui/dashboard/team.cljs:1095 msgid "labels.num-of-files" msgid_plural "labels.num-of-files" msgstr[0] "Файл" msgstr[1] "Файлы (%s)" +#: src/app/main/ui/viewer/thumbnails.cljs:80 msgid "labels.num-of-frames" msgid_plural "labels.num-of-frames" msgstr[0] "Кадр" msgstr[1] "Кадры (%s)" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1090 msgid "labels.num-of-projects" msgid_plural "labels.num-of-projects" msgstr[0] "Проект" msgstr[1] "Проекты (%s)" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:89 msgid "labels.old-password" msgstr "Старый пароль" #: src/app/main/ui/workspace/comments.cljs +#, unused msgid "labels.only-yours" msgstr "Только ваши" +#, unused msgid "labels.or" msgstr "или" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:286, src/app/main/ui/dashboard/team.cljs:518, src/app/main/ui/dashboard/team.cljs:1076 msgid "labels.owner" msgstr "Владелец" -#: src/app/main/ui/settings/sidebar.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/settings/sidebar.cljs:87 msgid "labels.password" msgstr "Пароль" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:662 msgid "labels.pending-invitation" msgstr "Ожидание" -#: src/app/main/ui/settings/sidebar.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/settings/profile.cljs:118, src/app/main/ui/settings/sidebar.cljs:82 msgid "labels.profile" msgstr "Профиль" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:784 msgid "labels.projects" msgstr "Проекты" -#: src/app/main/ui/settings/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:998, src/app/main/ui/settings/sidebar.cljs:106, src/app/main/ui/workspace/main_menu.cljs:126 msgid "labels.release-notes" msgstr "Примечания к выпуску" -#: src/app/main/ui/workspace/libraries.cljs, -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/workspace/libraries.cljs, src/app/main/ui/dashboard/team.cljs +#, unused msgid "labels.remove" msgstr "Удалить" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:316 msgid "labels.remove-member" msgstr "Удалить участника" -#: src/app/main/ui/dashboard/sidebar.cljs, -#: src/app/main/ui/dashboard/project_menu.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:271, src/app/main/ui/dashboard/project_menu.cljs:85, src/app/main/ui/dashboard/sidebar.cljs:539, src/app/main/ui/workspace/sidebar/assets/groups.cljs:157 msgid "labels.rename" msgstr "Переименовать" -#: src/app/main/ui/dashboard/team_form.cljs +#: src/app/main/ui/dashboard/team_form.cljs:99 msgid "labels.rename-team" msgstr "Переименовать команду" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:645 msgid "labels.resend-invitation" msgstr "Снова отправить приглашение" -#: src/app/main/ui/static.cljs, src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:61, src/app/main/ui/static.cljs:70, src/app/main/ui/static.cljs:148 msgid "labels.retry" msgstr "Заново" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:469, src/app/main/ui/dashboard/team.cljs:709 msgid "labels.role" msgstr "Роль" +#: src/app/main/ui/dashboard/fonts.cljs:380, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:191 msgid "labels.save" msgstr "Сохранить" +#: src/app/main/ui/dashboard/fonts.cljs:415 msgid "labels.search-font" msgstr "Искать шрифт" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:82 msgid "labels.send" msgstr "Отправить" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:82 msgid "labels.sending" msgstr "Отправка…" -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:68 msgid "labels.service-unavailable.desc-message" msgstr "Мы проводим диагностику наших систем." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:67 msgid "labels.service-unavailable.main-message" msgstr "Сервис недоступен" -#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:530, src/app/main/ui/dashboard/team.cljs:88, src/app/main/ui/dashboard/team.cljs:102, src/app/main/ui/settings/options.cljs:84, src/app/main/ui/settings/sidebar.cljs:93 msgid "labels.settings" msgstr "Настройки" -#: src/app/main/ui/viewer/header.cljs, src/app/main/ui/viewer/header.cljs +#, unused msgid "labels.share-prototype" msgstr "Поделиться ссылкой" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:800 msgid "labels.shared-libraries" msgstr "Библиотеки" -#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/comments.cljs:82, src/app/main/ui/workspace/comments.cljs:55, src/app/main/ui/workspace/comments.cljs:135 msgid "labels.show-all-comments" msgstr "Показать все" +#: src/app/main/ui/viewer/comments.cljs:115 msgid "labels.show-comments-list" msgstr "Показать список комментариев" -#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/comments.cljs:91, src/app/main/ui/workspace/comments.cljs:61, src/app/main/ui/workspace/comments.cljs:136 msgid "labels.show-your-comments" msgstr "Показать только ваши" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:710 msgid "labels.status" msgstr "Состояние" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:992, src/app/main/ui/workspace/main_menu.cljs:118 msgid "labels.tutorials" msgstr "Руководства" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:103 msgid "labels.update" msgstr "Обновить" -#: src/app/main/ui/dashboard/team_form.cljs +#: src/app/main/ui/dashboard/team_form.cljs:120 msgid "labels.update-team" msgstr "Обновить команду" +#: src/app/main/ui/dashboard/fonts.cljs:241 msgid "labels.upload" msgstr "Загрузить" +#: src/app/main/ui/dashboard/fonts.cljs:169 msgid "labels.upload-custom-fonts" msgstr "Загрузить произвольные шрифты" +#: src/app/main/ui/dashboard/fonts.cljs:240 msgid "labels.uploading" msgstr "Загрузка…" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:123, src/app/main/ui/dashboard/team.cljs:282, src/app/main/ui/dashboard/team.cljs:521 msgid "labels.viewer" msgstr "Наблюдатель" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:194 msgid "labels.write-new-comment" msgstr "Написать комментарий" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/team.cljs:237 msgid "labels.you" msgstr "(вы)" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:968 msgid "labels.your-account" msgstr "Ваш аккаунт" -#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs +#: src/app/main/data/media.cljs:49, src/app/main/data/workspace/media.cljs:223, src/app/main/data/workspace/media.cljs:453 msgid "media.loading" msgstr "Загрузка изображения…" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/data/common.cljs:113 msgid "modals.add-shared-confirm.accept" msgstr "Добавить как общую библиотеку" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/data/common.cljs:111 msgid "modals.add-shared-confirm.hint" msgstr "" "При выдаче статуса общей библиотеки, ресурсы этого проекта будут доступны к " "использованию в остальных файлах." -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/data/common.cljs:110 msgid "modals.add-shared-confirm.message" msgstr "Добавить \"%s\" как общую библиотеку" -#: src/app/main/ui/workspace/nudge.cljs +#: src/app/main/ui/workspace/nudge.cljs:60 msgid "modals.big-nudge" msgstr "Большой сдвиг" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:127 msgid "modals.change-email.confirm-email" msgstr "Подтвердить новую эл. почту" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:114 msgid "modals.change-email.info" msgstr "" "Мы отправим эл. письмо для подтверждения личности на текущую эл. почту " "\"%s\"." -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:119 msgid "modals.change-email.new-email" msgstr "Новая эл. почта" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:136 msgid "modals.change-email.submit" msgstr "Изменить эл. почту" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:107 msgid "modals.change-email.title" msgstr "Изменить эл. почту" -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:59 msgid "modals.delete-account.cancel" msgstr "Отменить и сохранить мой аккаунт" -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:64 msgid "modals.delete-account.confirm" msgstr "Да, удалить мой аккаунт" -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:53 msgid "modals.delete-account.info" msgstr "Удалив аккаунт Вы потеряете все прокты и архивы." -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:46 msgid "modals.delete-account.title" msgstr "Вы уверены, что хотите удалить аккаунт?" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:298 msgid "modals.delete-comment-thread.accept" msgstr "Удалить переписку" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:297 msgid "modals.delete-comment-thread.message" msgstr "" "Вы уверены, что хотите удалить это обсуждение? Все комментарии, входящие в " "него будут удалены." -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:296 msgid "modals.delete-comment-thread.title" msgstr "Удалить обсуждение" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:123 msgid "modals.delete-file-confirm.accept" msgstr "Удалить файл" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:122 msgid "modals.delete-file-confirm.message" msgstr "Точно удалить этот файл?" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:121 msgid "modals.delete-file-confirm.title" msgstr "Удаление файла" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:117 msgid "modals.delete-file-multi-confirm.accept" msgstr "Удалить файлы" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:116 msgid "modals.delete-file-multi-confirm.message" msgstr "Точно хотите удалить файлы (%s)?" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:115 msgid "modals.delete-file-multi-confirm.title" msgstr "Удаление файлов (%s)" +#: src/app/main/ui/dashboard/fonts.cljs:345 msgid "modals.delete-font-variant.message" msgstr "" "Вы действительно хотите удалить это начертание шрифта? Оно не будет " "загружаться, если используется в файле." +#: src/app/main/ui/dashboard/fonts.cljs:344 msgid "modals.delete-font-variant.title" msgstr "Удаление начертания шрифта" +#: src/app/main/ui/dashboard/fonts.cljs:331 msgid "modals.delete-font.message" msgstr "" "Вы действительно хотите удалить этот шрифт? Он не будет загружаться, если " "используется в файле." +#: src/app/main/ui/dashboard/fonts.cljs:330 msgid "modals.delete-font.title" msgstr "Удаление шрифта" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs +#: src/app/main/ui/workspace/context_menu.cljs:522, src/app/main/ui/workspace/sidebar/sitemap.cljs:45 msgid "modals.delete-page.body" msgstr "Вы уверены, что хотите удалить эту страницу?" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs +#: src/app/main/ui/workspace/context_menu.cljs:521, src/app/main/ui/workspace/sidebar/sitemap.cljs:44 msgid "modals.delete-page.title" msgstr "Удаление страницы" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:69 msgid "modals.delete-project-confirm.accept" msgstr "Удалить проект" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:68 msgid "modals.delete-project-confirm.message" msgstr "Вы уверены, что хотите удалить этот проект?" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:67 msgid "modals.delete-project-confirm.title" msgstr "Удаление проекта" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:51 msgid "modals.delete-shared-confirm.accept" msgid_plural "modals.delete-shared-confirm.accept" msgstr[0] "Удалить файл" msgstr[1] "Удалить файлы" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:46 msgid "modals.delete-shared-confirm.message" msgid_plural "modals.delete-shared-confirm.message" msgstr[0] "Вы уверены, что хотите удалить этот файл?" msgstr[1] "Вы уверены, что хотите удалить эти файлы?" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:41 msgid "modals.delete-shared-confirm.title" msgid_plural "modals.delete-shared-confirm.title" msgstr[0] "Удаление файла" msgstr[1] "Удаление файлов" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:435 msgid "modals.delete-team-confirm.accept" msgstr "Удалить команду" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:434 msgid "modals.delete-team-confirm.message" msgstr "" "Вы уверены, что хотите удалить эту команду? Все проекты и файлы этой " "команды также будут безвозвратно удалены." -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:433 msgid "modals.delete-team-confirm.title" msgstr "Удаление команды" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:427 msgid "modals.delete-team-member-confirm.accept" msgstr "Удалить участника" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:426 msgid "modals.delete-team-member-confirm.message" msgstr "Вы уверены, что хотите удалить этого участника из команды?" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:425 msgid "modals.delete-team-member-confirm.title" msgstr "Удалить участника команды" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:218 msgid "modals.invite-member-confirm.accept" msgstr "Отправить приглашение" +#: src/app/main/ui/dashboard/team.cljs:213, src/app/main/ui/onboarding/team_choice.cljs:156 msgid "modals.invite-member.emails" msgstr "Эл. почты, разделённые запятой" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:190 msgid "modals.invite-team-member.title" msgstr "Пригласить участников в команду" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:423, src/app/main/ui/dashboard/team.cljs:393 msgid "modals.leave-and-close-confirm.hint" msgstr "" "Так как вы единственный участник этой команды, она будет удалена вместе с " "проектами и файлами." -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:422, src/app/main/ui/dashboard/team.cljs:392 msgid "modals.leave-and-close-confirm.message" msgstr "Вы уверены, что хотите покинуть команду %s?" +#: src/app/main/ui/dashboard/change_owner.cljs:59 msgid "modals.leave-and-reassign.forbidden" msgstr "" "Вы не можете покинуть команду, если нет другого участника, которого можно " "было бы назначить владельцем. Возможно, вы захотите удалить команду." -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/change_owner.cljs:55 msgid "modals.leave-and-reassign.hint1" msgstr "" "Вы владелец этой команды. Прежде чем покинуть её, выберите другого " "участника, чтобы сделать его владельцем." -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/change_owner.cljs:78 msgid "modals.leave-and-reassign.promote-and-leave" msgstr "Назначить и покинуть" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/change_owner.cljs:34 msgid "modals.leave-and-reassign.select-member-to-promote" msgstr "Выберите участника для назначения" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:402, src/app/main/ui/dashboard/sidebar.cljs:424, src/app/main/ui/dashboard/team.cljs:394, src/app/main/ui/dashboard/team.cljs:416 msgid "modals.leave-confirm.accept" msgstr "Покинуть команду" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:401, src/app/main/ui/dashboard/team.cljs:415 msgid "modals.leave-confirm.message" msgstr "Вы уверены, что хотите покинуть эту команду?" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:400, src/app/main/ui/dashboard/sidebar.cljs:421, src/app/main/ui/dashboard/team.cljs:391, src/app/main/ui/dashboard/team.cljs:414 msgid "modals.leave-confirm.title" msgstr "Выход из команды" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:338 msgid "modals.promote-owner-confirm.message" msgstr "" "Вы текущий владелец этой команды. Вы уверены, что хотите сделать %s новым " "владельцем команды?" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:337 msgid "modals.promote-owner-confirm.title" msgstr "Новый владелец команды" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "modals.remove-shared-confirm.accept" msgstr "Удалить из общих библиотек" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "modals.remove-shared-confirm.hint" msgstr "" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "modals.remove-shared-confirm.message" msgstr "" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:47 msgid "modals.unpublish-shared-confirm.message" msgid_plural "modals.unpublish-shared-confirm.message" msgstr[0] "Вы уверены, что хотите снять с публикации эту библиотеку?" msgstr[1] "Вы уверены, что хотите снять с публикации эти библиотеки?" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:42 msgid "modals.unpublish-shared-confirm.title" msgid_plural "modals.unpublish-shared-confirm.title" msgstr[0] "Снять библиотеку с публикации" msgstr[1] "Снять библиотеки с публикации" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#, unused msgid "modals.update-remote-component-in-bulk.hint" msgstr "" "Вы собираетесь обновить компоненты в общей библиотеке. Это может повлиять " "на другие файлы, которые её используют." -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#, unused msgid "modals.update-remote-component-in-bulk.message" msgstr "Обновить компоненты в общей библиотеке" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:380 msgid "modals.update-remote-component.accept" msgstr "Обновить" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:379 msgid "modals.update-remote-component.cancel" msgstr "Отменить" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:378 msgid "modals.update-remote-component.hint" msgstr "" "Вы собираетесь обновить компонент в общей библиотеке. Это может повлиять на " "другие файлы, которые её используют." -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:377 msgid "modals.update-remote-component.message" msgstr "Обновить компонент в общей библиотеке" -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:24 msgid "notifications.profile-deletion-not-allowed" msgstr "Вы не можете удалить свой профиль. Сначала переназначьте ваши команды." -#: src/app/main/ui/settings/profile.cljs, src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:29, src/app/main/ui/settings/profile.cljs:35 msgid "notifications.profile-saved" msgstr "Профиль успешно сохранён!" +#, unused msgid "onboarding-v2.before-start.desc3" msgstr "" "Вы можете посмотреть наши руководства и руководства, созданные нашим " "сообществом." +#: src/app/main/ui/onboarding/newsletter.cljs:71 msgid "onboarding-v2.newsletter.updates" msgstr "Присылать мне обновления продукта (новые функции, выпуски, исправления...)." +#, unused msgid "onboarding-v2.welcome.desc1" msgstr "" "Penpot — проект с открытым исходным кодом, созданный Kaleidos и " "сообществом, где многие люди уже помогают друг другу. Каждый может начать " "сотрудничество:" +#, unused msgid "onboarding-v2.welcome.desc3.title" msgstr "Руководство по участию в проекте" +#: src/app/main/ui/onboarding/team_choice.cljs:31 msgid "onboarding-v2.welcome.title" msgstr "Добро пожаловать в Penpot!" +#: src/app/main/ui/onboarding/team_choice.cljs:215 msgid "onboarding.choice.team-up.create-team-desc" msgstr "" "После добавления названия команды, вы сможете пригласить людей " "присоединиться." +#: src/app/main/ui/onboarding/team_choice.cljs:224 msgid "onboarding.choice.team-up.create-team-placeholder" msgstr "Введите название команды" +#: src/app/main/ui/dashboard/projects.cljs:89, src/app/main/ui/onboarding/team_choice.cljs:140 msgid "onboarding.choice.team-up.invite-members" msgstr "Пригласить участников" +#: src/app/main/ui/onboarding/team_choice.cljs:141 msgid "onboarding.choice.team-up.invite-members-info" msgstr "" "Никого не забудьте. Разработчики, дизайнеры, менеджеры... разнообразие " "развивает :)" +#: src/app/main/ui/onboarding/team_choice.cljs:213 msgid "onboarding.team-modal.create-team" msgstr "Создать команду" +#: src/app/main/ui/onboarding/team_choice.cljs:35 msgid "onboarding.team-modal.create-team-desc" msgstr "" "Команда позволяет вам сотрудничать с другими пользователями Penpot, " "работающими над одними файлами и проектами." +#: src/app/main/ui/onboarding/team_choice.cljs:40 msgid "onboarding.team-modal.create-team-feature-1" msgstr "Неограниченное количество файлов и проектов" +#: src/app/main/ui/onboarding/team_choice.cljs:44 msgid "onboarding.team-modal.create-team-feature-2" msgstr "Многопользовательская версия" +#: src/app/main/ui/onboarding/team_choice.cljs:48 msgid "onboarding.team-modal.create-team-feature-3" msgstr "Управление ролями" +#: src/app/main/ui/onboarding/team_choice.cljs:52 msgid "onboarding.team-modal.create-team-feature-4" msgstr "Неограниченное количество участников" +#: src/app/main/ui/onboarding/team_choice.cljs:56 msgid "onboarding.team-modal.create-team-feature-5" msgstr "100% бесплатно!" +#: src/app/main/ui/onboarding/templates.cljs:78 msgid "onboarding.templates.subtitle" msgstr "Вот несколько шаблонов." +#: src/app/main/ui/onboarding/templates.cljs:77 msgid "onboarding.templates.title" msgstr "Заняться дизайном" +#, unused msgid "onboarding.welcome.alt" msgstr "Penpot" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:99 msgid "profile.recovery.go-to-login" msgstr "Перейти к входу" -#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs +#: src/app/main/ui/viewer/inspect/exports.cljs:147, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:631, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:137, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:148, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:188, src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:158, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:399, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:410, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:430, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:441, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:458, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:472, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:309, src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:183, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:373, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:389, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:245, src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:172 msgid "settings.multiple" msgstr "Смешаный" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:57 msgid "shortcut-subsection.edit" msgstr "Редактировать" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:60 msgid "shortcut-subsection.main-menu" msgstr "Главное меню" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:61 msgid "shortcut-subsection.modify-layers" msgstr "Изменить слои" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:62 msgid "shortcut-subsection.navigation-dashboard" msgstr "Навигация" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:63 msgid "shortcut-subsection.navigation-viewer" msgstr "Навигация" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:64 msgid "shortcut-subsection.navigation-workspace" msgstr "Навигация" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:65 msgid "shortcut-subsection.panels" msgstr "Панели" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:93 msgid "shortcuts.copy" msgstr "Скопировать" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:94 msgid "shortcuts.create-component" msgstr "Создать компонент" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:98 msgid "shortcuts.delete" msgstr "Удалить" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:117 msgid "shortcuts.go-to-libs" msgstr "Перейти к общим библиотекам" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:118 msgid "shortcuts.go-to-search" msgstr "Поиск" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:121 msgid "shortcuts.hide-ui" msgstr "Показать/скрыть UI" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:151 msgid "shortcuts.opacity-5" msgstr "Установить непрозрачность на 50%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:152 msgid "shortcuts.opacity-6" msgstr "Установить непрозрачность на 60%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:153 msgid "shortcuts.opacity-7" msgstr "Установить непрозрачность на 70%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:154 msgid "shortcuts.opacity-8" msgstr "Установить непрозрачность на 80%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:155 msgid "shortcuts.opacity-9" msgstr "Установить непрозрачность на 90%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:156 msgid "shortcuts.open-color-picker" msgstr "Выбор цвета" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:162 msgid "shortcuts.open-workspace" msgstr "Перейти к рабочей области" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:260 msgid "shortcuts.or" msgstr " или " +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:163 msgid "shortcuts.paste" msgstr "Вставить" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:169 msgid "shortcuts.select-all" msgstr "Выбрать все" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:174 msgid "shortcuts.show-pixel-grid" msgstr "Показать/скрыть сетку пикселей" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:175 msgid "shortcuts.show-shortcuts" msgstr "Показать/скрыть горячие клавиши" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:178 msgid "shortcuts.start-editing" msgstr "Начать редактирование" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:179 msgid "shortcuts.start-measure" msgstr "Начать измерение" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:180 msgid "shortcuts.stop-measure" msgstr "Остановить измерение" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:496, src/app/main/ui/workspace/sidebar/shortcuts.cljs:505 msgid "shortcuts.title" msgstr "Горячие клавиши" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:187 msgid "shortcuts.toggle-assets" msgstr "Переключить ресурсы" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:188 msgid "shortcuts.toggle-colorpalette" msgstr "Переключить палитру цветов" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:189 msgid "shortcuts.toggle-focus-mode" msgstr "Переключить режим фокуса" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:192 msgid "shortcuts.toggle-history" msgstr "Переключить историю" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:193 msgid "shortcuts.toggle-layers" msgstr "Переключить слои" -#: src/app/main/ui/dashboard/files.cljs +#: src/app/main/ui/dashboard/files.cljs:158 msgid "title.dashboard.files" msgstr "%s - Penpot" -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:37 msgid "title.dashboard.font-providers" msgstr "Поставщики шрифтов - %s - Penpot" -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:36 msgid "title.dashboard.fonts" msgstr "Шрифты - %s - Penpot" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:320 msgid "title.dashboard.projects" msgstr "Проекты - %s - Penpot" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:32 msgid "title.dashboard.search" msgstr "Поиск - %s - Penpot" -#: src/app/main/ui/dashboard/libraries.cljs +#: src/app/main/ui/dashboard/libraries.cljs:44 msgid "title.dashboard.shared-libraries" msgstr "Общие библиотеки - %s - Penpot" -#: src/app/main/ui/auth/verify_token.cljs, src/app/main/ui/auth.cljs +#: src/app/main/ui/auth/verify_token.cljs:68, src/app/main/ui/auth.cljs:54 msgid "title.default" msgstr "Penpot — свобода в дизайне для команд" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:110 msgid "title.settings.feedback" msgstr "Оставить отзыв - Penpot" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:80 msgid "title.settings.options" msgstr "Настройки - Penpot" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:115 msgid "title.settings.password" msgstr "Пароль - Penpot" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:115 msgid "title.settings.profile" msgstr "Профиль - Penpot" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:727 msgid "title.team-invitations" msgstr "Приглашения - %s - Penpot" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:493 msgid "title.team-members" msgstr "Участники - %s - Penpot" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1036 msgid "title.team-settings" msgstr "Настройки - %s - Penpot" -#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs +#: src/app/main/ui/viewer.cljs:419 msgid "title.viewer" msgstr "%s - Режим просмотра - Penpot" -#: src/app/main/ui/workspace.cljs +#: src/app/main/ui/workspace.cljs:190 msgid "title.workspace" msgstr "%s - Penpot" +#: src/app/main/ui.cljs:144 msgid "viewer.breaking-change.description" msgstr "" "Эта общая ссылка больше не действительна. Создайте новую или попросите об " "этом владельца." +#: src/app/main/ui.cljs:143 msgid "viewer.breaking-change.message" msgstr "Извините!" -#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs +#: src/app/main/ui/viewer.cljs:569 msgid "viewer.empty-state" msgstr "На странице не найдено ни одного кадра." -#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs +#: src/app/main/ui/viewer.cljs:574 msgid "viewer.frame-not-found" msgstr "Кадр не найден." +#: src/app/main/ui/viewer/header.cljs:336 msgid "viewer.header.comments-section" msgstr "Комментарии (%s)" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/interactions.cljs:292 msgid "viewer.header.dont-show-interactions" msgstr "Не показывать взаимодействия" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/header.cljs:188 msgid "viewer.header.fullscreen" msgstr "Полный экран" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/interactions.cljs:282 msgid "viewer.header.interactions" msgstr "Интерактив" +#: src/app/main/ui/viewer/header.cljs:327 msgid "viewer.header.interactions-section" msgstr "Интерактив (%s)" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/share_link.cljs:187 msgid "viewer.header.share.copy-link" msgstr "Скопировать ссылку" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/interactions.cljs:300 msgid "viewer.header.show-interactions" msgstr "Показывать взаимодействия" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/interactions.cljs:311 msgid "viewer.header.show-interactions-on-click" msgstr "Показывать взаимодействия по клику" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/header.cljs:231 msgid "viewer.header.sitemap" msgstr "План сайта" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:58 msgid "workspace.align.hcenter" msgstr "Выровнять по горизонтали (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:74 msgid "workspace.align.hdistribute" msgstr "Распределить горизонтальное пространство (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:50 msgid "workspace.align.hleft" msgstr "Выровнять по левому краю (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:66 msgid "workspace.align.hright" msgstr "Выровнять по правому краю (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:99 msgid "workspace.align.vbottom" msgstr "Выровнять по нижнему краю (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:91 msgid "workspace.align.vcenter" msgstr "Выровнять по вертикали (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:104 msgid "workspace.align.vdistribute" msgstr "Распределить вертикальное пространство (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:83 msgid "workspace.align.vtop" msgstr "Выровнять по верхнему краю (%s)" #: src/app/main/ui/workspace/sidebar/assets.cljs +#, unused msgid "workspace.assets.assets" msgstr "Ресурсы" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets.cljs:134 msgid "workspace.assets.box-filter-all" msgstr "Все ресурсы" -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/dashboard/grid.cljs:130, src/app/main/ui/dashboard/grid.cljs:162, src/app/main/ui/workspace/sidebar/assets/colors.cljs:485, src/app/main/ui/workspace/sidebar/assets.cljs:150 msgid "workspace.assets.colors" msgstr "Цвета" -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/dashboard/grid.cljs:126, src/app/main/ui/dashboard/grid.cljs:141, src/app/main/ui/workspace/sidebar/assets/components.cljs:513, src/app/main/ui/workspace/sidebar/assets.cljs:139 msgid "workspace.assets.components" msgstr "Компоненты" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:131 msgid "workspace.assets.create-group" msgstr "Создать группу" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/context_menu.cljs:529, src/app/main/ui/workspace/sidebar/assets/colors.cljs:251, src/app/main/ui/workspace/sidebar/assets/components.cljs:577, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:424, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:443 msgid "workspace.assets.delete" msgstr "Удалить" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/context_menu.cljs:534, src/app/main/ui/workspace/sidebar/assets/components.cljs:572 msgid "workspace.assets.duplicate" msgstr "Дублировать" -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:247, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:439 msgid "workspace.assets.edit" msgstr "Редактировать" -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/graphics.cljs:384, src/app/main/ui/workspace/sidebar/assets.cljs:145 msgid "workspace.assets.graphics" msgstr "Графика" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:255, src/app/main/ui/workspace/sidebar/assets/components.cljs:581, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:428, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:448 msgid "workspace.assets.group" msgstr "Группа" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:141 msgid "workspace.assets.group-name" msgstr "Имя группы" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets.cljs:168 msgid "workspace.assets.libraries" msgstr "Библиотеки" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/file_library.cljs:295 msgid "workspace.assets.not-found" msgstr "Ресурсы не найдены" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/context_menu.cljs:532, src/app/main/ui/workspace/sidebar/assets/colors.cljs:243, src/app/main/ui/workspace/sidebar/assets/components.cljs:566, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:421, src/app/main/ui/workspace/sidebar/assets/groups.cljs:63, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:434 msgid "workspace.assets.rename" msgstr "Переименовать" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:132 msgid "workspace.assets.rename-group" msgstr "Переименовать группу" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets.cljs:173 msgid "workspace.assets.search" msgstr "Поиск ресурсов" #: src/app/main/ui/workspace/sidebar/assets.cljs +#, unused msgid "workspace.assets.selected-count" msgid_plural "workspace.assets.selected-count" msgstr[0] "Выбран ресурс" msgstr[1] "Выбраны ресурсы (%s)" -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/dashboard/grid.cljs:134, src/app/main/ui/dashboard/grid.cljs:189, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:397, src/app/main/ui/workspace/sidebar/assets.cljs:155 msgid "workspace.assets.typography" msgstr "Типографика" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused msgid "workspace.assets.typography.font-id" msgstr "Шрифт" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:505 msgid "workspace.assets.typography.font-size" msgstr "Размер" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:501 msgid "workspace.assets.typography.font-variant-id" msgstr "Начертание" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:523 msgid "workspace.assets.typography.go-to-edit" msgstr "Перейти к файлу библиотеки стилей для редактирования" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:513 msgid "workspace.assets.typography.letter-spacing" msgstr "Кернинг" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:509 msgid "workspace.assets.typography.line-height" msgstr "Интерлиньяж" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:517 msgid "workspace.assets.typography.text-transform" msgstr "Регистр" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:66 msgid "workspace.assets.ungroup" msgstr "Разгруппировать" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:238 msgid "workspace.header.menu.disable-dynamic-alignment" msgstr "Отключить активное выравнивание" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:239 msgid "workspace.header.menu.enable-dynamic-alignment" msgstr "Включить активное выравнивание" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:382 msgid "workspace.header.menu.hide-artboard-names" msgstr "Скрыть имена кадров" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:353 msgid "workspace.header.menu.hide-palette" msgstr "Скрыть палитру цветов" +#: src/app/main/ui/workspace/main_menu.cljs:394 msgid "workspace.header.menu.hide-pixel-grid" msgstr "Скрыть сетку пикселей" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:320 msgid "workspace.header.menu.hide-rules" msgstr "Скрыть линейки" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:367 msgid "workspace.header.menu.hide-textpalette" msgstr "Скрыть палитру шрифтов" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:720 msgid "workspace.header.menu.option.file" msgstr "Файл" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:777 msgid "workspace.header.menu.option.help-info" msgstr "Помощь и информация" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:432 msgid "workspace.header.menu.select-all" msgstr "" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:383 msgid "workspace.header.menu.show-artboard-names" msgstr "Показать имена кадров" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:354 msgid "workspace.header.menu.show-palette" msgstr "Показать палитру цветов" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:321 msgid "workspace.header.menu.show-rules" msgstr "Показать линейки" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/viewer/header.cljs:98, src/app/main/ui/workspace/right_header.cljs:120 msgid "workspace.header.reset-zoom" msgstr "Сброс" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/right_header.cljs:239 msgid "workspace.header.viewer" msgstr "Режим просмотра (%s)" #: src/app/main/ui/workspace/libraries.cljs +#, unused msgid "workspace.libraries.add" msgstr "Добавить" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:80, src/app/main/ui/workspace/libraries.cljs:99 msgid "workspace.libraries.colors" msgstr "" -#: src/app/main/ui/workspace/colorpicker/libraries.cljs, -#: src/app/main/ui/workspace/colorpalette.cljs +#: src/app/main/ui/workspace/color_palette_ctx_menu.cljs:60, src/app/main/ui/workspace/colorpicker/libraries.cljs:73, src/app/main/ui/workspace/text_palette_ctx_menu.cljs:50 msgid "workspace.libraries.colors.file-library" msgstr "Библиотека файлов" #: src/app/main/ui/workspace/colorpicker.cljs +#, unused msgid "workspace.libraries.colors.hsv" msgstr "HSV" -#: src/app/main/ui/workspace/colorpicker/libraries.cljs, -#: src/app/main/ui/workspace/colorpalette.cljs +#: src/app/main/ui/workspace/color_palette_ctx_menu.cljs:82, src/app/main/ui/workspace/colorpicker/libraries.cljs:72 msgid "workspace.libraries.colors.recent-colors" msgstr "Недавние цвета" #: src/app/main/ui/workspace/colorpicker.cljs +#, unused msgid "workspace.libraries.colors.rgb-complementary" msgstr "Дополнительный цвет RGB" #: src/app/main/ui/workspace/colorpicker.cljs +#, unused msgid "workspace.libraries.colors.rgba" msgstr "RGBA" -#: src/app/main/ui/workspace/colorpicker.cljs +#: src/app/main/ui/workspace/colorpicker.cljs:372 msgid "workspace.libraries.colors.save-color" msgstr "Сохранить стиль цвета" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:74, src/app/main/ui/workspace/libraries.cljs:91 msgid "workspace.libraries.components" msgstr "" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:215 msgid "workspace.libraries.file-library" msgstr "Библиотека файлов" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:77, src/app/main/ui/workspace/libraries.cljs:95 msgid "workspace.libraries.graphics" msgstr "" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:209 msgid "workspace.libraries.in-this-file" msgstr "БИБЛИОТЕКИ В ЭТОМ ФАЙЛЕ" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:526, src/app/main/ui/workspace/libraries.cljs:531 msgid "workspace.libraries.libraries" msgstr "БИБЛИОТЕКИ" #: src/app/main/ui/workspace/libraries.cljs +#, unused msgid "workspace.libraries.library" msgstr "БИБЛИОТЕКА" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:380 msgid "workspace.libraries.no-libraries-need-sync" msgstr "Нет общих библиотек, требующих обновления" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:299 msgid "workspace.libraries.no-matches-for" msgstr "Совпадений для \"%s\" не найдено" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:296 msgid "workspace.libraries.no-shared-libraries-available" msgstr "Общие библиотеки отсутсвуют" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:260 msgid "workspace.libraries.search-shared-libraries" msgstr "Искать общие библиотеки" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:256 msgid "workspace.libraries.shared-libraries" msgstr "ОБЩИЕ БИБЛИОТЕКИ" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:308 msgid "workspace.libraries.text.multiple-typography" msgstr "Несколько типографик" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:311 msgid "workspace.libraries.text.multiple-typography-tooltip" msgstr "Отвязать все типографики" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:83, src/app/main/ui/workspace/libraries.cljs:103 msgid "workspace.libraries.typography" msgstr "Типографики (%s)" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:402 msgid "workspace.libraries.update" msgstr "Обновить" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:536 msgid "workspace.libraries.updates" msgstr "ОБНОВЛЕНИЯ" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:737 msgid "workspace.options.add-interaction" msgstr "Нажмите кнопку \"+\" для добавления интерактива." -#: src/app/main/ui/workspace/sidebar/options/page.cljs +#: src/app/main/ui/workspace/sidebar/options/page.cljs:32, src/app/main/ui/workspace/sidebar/options/page.cljs:39 msgid "workspace.options.canvas-background" msgstr "Фон холста" -#: src/app/main/ui/workspace/sidebar/options.cljs +#: src/app/main/ui/workspace/sidebar/options.cljs:112 msgid "workspace.options.design" msgstr "Дизайн" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs +#: src/app/main/ui/viewer/inspect/exports.cljs:139 msgid "workspace.options.export" msgstr "Экспорт" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs +#: src/app/main/ui/viewer/inspect/exports.cljs:195, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:237 msgid "workspace.options.export-object" msgid_plural "workspace.options.export-object" msgstr[0] "Экспорт 1 элемента" msgstr[1] "Экспорт %s элементов" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs, src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/export.cljs:240 msgid "workspace.options.exporting-complete" msgstr "Экспорт завершён" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs +#: src/app/main/ui/export.cljs:172, src/app/main/ui/export.cljs:241, src/app/main/ui/viewer/inspect/exports.cljs:194, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:236 msgid "workspace.options.exporting-object" msgstr "Экспортирование…" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs, src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/export.cljs:239 msgid "workspace.options.exporting-object-error" msgstr "Экспорт не удался" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:49, src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:174 msgid "workspace.options.fill" msgstr "Заливка" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:178 msgid "workspace.options.flows.add-flow-start" msgstr "Добавить начало потока" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#, unused msgid "workspace.options.flows.flow-start" msgstr "Начало потока" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:161 msgid "workspace.options.flows.flow-starts" msgstr "Начала потоков" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:29 msgid "workspace.options.grid.auto" msgstr "Авто" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:157 msgid "workspace.options.grid.column" msgstr "Колонки" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused msgid "workspace.options.grid.params.columns" msgstr "Колонки" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:259 msgid "workspace.options.grid.params.gutter" msgstr "Желоб" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:246 msgid "workspace.options.grid.params.height" msgstr "Высота" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:270 msgid "workspace.options.grid.params.margin" msgstr "Поле" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused msgid "workspace.options.grid.params.rows" msgstr "Строки" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:216, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:290 msgid "workspace.options.grid.params.set-default" msgstr "Установить по умолчанию" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused msgid "workspace.options.grid.params.size" msgstr "Размер" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused msgid "workspace.options.grid.params.type" msgstr "Тип" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:231 msgid "workspace.options.grid.params.type.bottom" msgstr "Низ" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:229 msgid "workspace.options.grid.params.type.center" msgstr "Центр" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:228 msgid "workspace.options.grid.params.type.left" msgstr "Левый" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:232 msgid "workspace.options.grid.params.type.right" msgstr "Правый" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:225 msgid "workspace.options.grid.params.type.stretch" msgstr "Растягивать" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:227 msgid "workspace.options.grid.params.type.top" msgstr "Верх" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:211, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:288 msgid "workspace.options.grid.params.use-default" msgstr "Использовать значение по умолчанию" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:247 msgid "workspace.options.grid.params.width" msgstr "Ширина" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:158 msgid "workspace.options.grid.row" msgstr "Строки" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:156 msgid "workspace.options.grid.square" msgstr "Квадрат" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:48 msgid "workspace.options.group-fill" msgstr "Заливка для группы" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:42 msgid "workspace.options.group-stroke" msgstr "Обводка для группы" +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:310 msgid "workspace.options.guides.title" msgstr "Направляющие" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:724 msgid "workspace.options.interactions" msgstr "Интерактив" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:137 msgid "workspace.options.layer-options.blend-mode.color" msgstr "Цвет" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#, unused msgid "workspace.options.layer-options.title" msgstr "Слой" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#, unused msgid "workspace.options.layer-options.title.group" msgstr "Группировать слои" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#, unused msgid "workspace.options.layer-options.title.multiple" msgstr "Выделенные слои" -#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#, unused msgid "workspace.options.position" msgstr "Позиция" -#: src/app/main/ui/workspace/sidebar/options.cljs +#: src/app/main/ui/workspace/sidebar/options.cljs:157 msgid "workspace.options.prototype" msgstr "Прототип" +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:469, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:481 msgid "workspace.options.radius" msgstr "Радиус" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:451 msgid "workspace.options.rotation" msgstr "Вращение" +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:180 msgid "workspace.options.search-font" msgstr "Искать шрифт" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:741 msgid "workspace.options.select-a-shape" msgstr "Выберите фигуру, кадр или группу для соединения с другим кадром." -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:47 msgid "workspace.options.selection-fill" msgstr "Заливка выбранного" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:41 msgid "workspace.options.selection-stroke" msgstr "Обводка выбранного" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:40, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:198, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:200 msgid "workspace.options.shadow-options.blur" msgstr "Размытие" +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:238 msgid "workspace.options.shadow-options.color" msgstr "Цвет тени" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:145 msgid "workspace.options.shadow-options.inner-shadow" msgstr "Внутренняя тень" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:38, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:186 +msgid "workspace.options.shadow-options.offsetx" +msgstr "X" + +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:39, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:224 +msgid "workspace.options.shadow-options.offsety" +msgstr "Y" + +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:296 msgid "workspace.options.shadow-options.title" msgstr "Тень" +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:193 +msgid "workspace.options.show-fill-on-export" +msgstr "Показать в экспорте" + +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:562 msgid "workspace.options.show-in-viewer" msgstr "Показать в режиме просмотра" -#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:162 msgid "workspace.options.size" msgstr "Размер" -#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:355 msgid "workspace.options.size-presets" msgstr "Предустановки размеров" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:43 msgid "workspace.options.stroke" msgstr "Обводка" +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:129 +msgid "workspace.options.stroke-cap.circle-marker-short" +msgstr "Круг" + +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:128 +msgid "workspace.options.stroke-cap.square-marker-short" +msgstr "Прямоугольник" + #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#, unused +msgid "workspace.options.stroke-cap.triangle-arrow" +msgstr "Треугольная стрела" + +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:127 +msgid "workspace.options.stroke-cap.triangle-arrow-short" +msgstr "Треугольник" + +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:87 msgid "workspace.options.stroke.center" msgstr "Центр" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:105 msgid "workspace.options.stroke.dashed" msgstr "Пунктирный" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:104 msgid "workspace.options.stroke.dotted" msgstr "Точечный" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:88 msgid "workspace.options.stroke.inner" msgstr "Внутрь" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:106 msgid "workspace.options.stroke.mixed" msgstr "Смешаный" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:89 msgid "workspace.options.stroke.outer" msgstr "Наружу" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:103 msgid "workspace.options.stroke.solid" msgstr "Сплошной" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:115 msgid "workspace.options.text-options.align-bottom" msgstr "Выровнять низ" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:111 msgid "workspace.options.text-options.align-middle" msgstr "Выравнивание по центру" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:107 msgid "workspace.options.text-options.align-top" msgstr "Выравнивание по верхнему краю" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:82 msgid "workspace.options.text-options.direction-ltr" msgstr "Слева направо" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:87 msgid "workspace.options.text-options.direction-rtl" msgstr "Справа налево" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:149 msgid "workspace.options.text-options.grow-auto-height" msgstr "Автовысота" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:145 msgid "workspace.options.text-options.grow-auto-width" msgstr "Автоширина" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:141 msgid "workspace.options.text-options.grow-fixed" msgstr "Фиксированно" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:381 msgid "workspace.options.text-options.letter-spacing" msgstr "Межсимвольный интервал" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:364 msgid "workspace.options.text-options.line-height" msgstr "Высота строки" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused msgid "workspace.options.text-options.lowercase" msgstr "Нижний регистр" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused msgid "workspace.options.text-options.none" msgstr "Не задано" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:176 msgid "workspace.options.text-options.strikethrough" msgstr "Перечеркнутый (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:51 msgid "workspace.options.text-options.text-align-center" msgstr "Выравнивание по центру (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:59 msgid "workspace.options.text-options.text-align-justify" msgstr "Выравнивание по ширине (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:47 msgid "workspace.options.text-options.text-align-left" msgstr "Выравнивание по левому краю (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:55 msgid "workspace.options.text-options.text-align-right" msgstr "Выравнивание по правому краю (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:189 msgid "workspace.options.text-options.title" msgstr "Текст" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:188 msgid "workspace.options.text-options.title-group" msgstr "Текст группы" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:187 msgid "workspace.options.text-options.title-selection" msgstr "Выбранный текст" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused msgid "workspace.options.text-options.titlecase" msgstr "Слова с заглавной буквы" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:171 msgid "workspace.options.text-options.underline" msgstr "Подчеркнутый (%s)" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused msgid "workspace.options.text-options.uppercase" msgstr "Верхний регистр" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:745 msgid "workspace.options.use-play-button" msgstr "Нажмите кнопку воспроизведения вверху для показа прототипа." +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:395 +msgid "workspace.options.width" +msgstr "Ширина" + +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:427 msgid "workspace.options.x" msgstr "Ось X" +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:438 msgid "workspace.options.y" msgstr "Ось Y" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:167 msgid "workspace.path.actions.add-node" msgstr "Добавить узел (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:174 msgid "workspace.path.actions.delete-node" msgstr "Удалить узел (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:152 msgid "workspace.path.actions.draw-nodes" msgstr "Показать узлы (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:189 msgid "workspace.path.actions.join-nodes" msgstr "Соединить узлы (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:204 msgid "workspace.path.actions.make-corner" msgstr "В угол (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:211 msgid "workspace.path.actions.make-curve" msgstr "В кривую (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:182 msgid "workspace.path.actions.merge-nodes" msgstr "Объединить узлы (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:159 msgid "workspace.path.actions.move-nodes" msgstr "Сместить узлы (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:196 msgid "workspace.path.actions.separate-nodes" msgstr "Разделить узлы (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:218 msgid "workspace.path.actions.snap-nodes" msgstr "Прилипать узлами (%s)" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:139 msgid "workspace.shape.menu.copy" msgstr "Скопировать" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:275 msgid "workspace.shape.menu.create-artboard-from-selection" msgstr "Выделенное в кадр" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:465 msgid "workspace.shape.menu.create-component" msgstr "Создать компонент" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:142 msgid "workspace.shape.menu.cut" msgstr "Вырезать" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:486 msgid "workspace.shape.menu.delete" msgstr "Удалить" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:391 msgid "workspace.shape.menu.delete-flow-start" msgstr "Удалить начало потока" +#: src/app/main/ui/workspace/context_menu.cljs:335, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:75 msgid "workspace.shape.menu.difference" msgstr "Разница" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:148 msgid "workspace.shape.menu.duplicate" msgstr "Дублировать" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:321 msgid "workspace.shape.menu.edit" msgstr "Редактировать" +#: src/app/main/ui/workspace/context_menu.cljs:341 msgid "workspace.shape.menu.exclude" msgstr "Исключить" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:394 msgid "workspace.shape.menu.flow-start" msgstr "Начало потока" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#, unused msgid "workspace.shape.menu.go-main" msgstr "Перейти к основному файлу компонента" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:363, src/app/main/ui/workspace/sidebar/layer_item.cljs:145 msgid "workspace.shape.menu.hide" msgstr "Скрыть" +#: src/app/main/ui/workspace/context_menu.cljs:548, src/app/main/ui/workspace/main_menu.cljs:408 msgid "workspace.shape.menu.hide-ui" msgstr "Показать/скрыть UI" +#: src/app/main/ui/workspace/context_menu.cljs:338 +msgid "workspace.shape.menu.intersection" +msgstr "Пересечь" + +#: src/app/main/ui/workspace/context_menu.cljs:371, src/app/main/ui/workspace/sidebar/layer_item.cljs:153 +msgid "workspace.shape.menu.lock" +msgstr "Заблокировать" + +#: src/app/main/ui/workspace/context_menu.cljs:145, src/app/main/ui/workspace/context_menu.cljs:545 +msgid "workspace.shape.menu.paste" +msgstr "Вставить" + +#: src/app/main/ui/workspace/context_menu.cljs:331 msgid "workspace.shape.menu.path" msgstr "Контур" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:436 msgid "workspace.shape.menu.reset-overrides" msgstr "Сбросить переопределения" +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:439 msgid "workspace.shape.menu.restore-main" msgstr "Восстановить основной компонент" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:174 msgid "workspace.shape.menu.select-layer" msgstr "Выбрать слой" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:360, src/app/main/ui/workspace/sidebar/layer_item.cljs:144 msgid "workspace.shape.menu.show" msgstr "Показать" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:442, src/app/main/ui/workspace/sidebar/assets/components.cljs:586 msgid "workspace.shape.menu.show-main" msgstr "Показать основной компонент" +#: src/app/main/ui/workspace/context_menu.cljs:221 msgid "workspace.shape.menu.thumbnail-remove" msgstr "Удалить миниатюру" +#: src/app/main/ui/workspace/context_menu.cljs:223 msgid "workspace.shape.menu.thumbnail-set" msgstr "Сделать миниатюрой" +#: src/app/main/ui/workspace/context_menu.cljs:326 msgid "workspace.shape.menu.transform-to-path" msgstr "Преобразовать в контур" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:257 msgid "workspace.shape.menu.ungroup" msgstr "Разгруппировать" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:332, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:70 +msgid "workspace.shape.menu.union" +msgstr "Суммировать" + +#: src/app/main/ui/workspace/context_menu.cljs:368, src/app/main/ui/workspace/sidebar/layer_item.cljs:152 +msgid "workspace.shape.menu.unlock" +msgstr "Paзблокировать" + +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs +#, unused msgid "workspace.shape.menu.update-components-in-bulk" msgstr "Обновить основные компоненты" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:445 msgid "workspace.shape.menu.update-main" msgstr "Обновить основной компонент" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/components/tab_container.cljs:50 +msgid "workspace.sidebar.collapse" +msgstr "Свернуть боковую панель" + +#: src/app/main/ui/workspace/sidebar/collapsable_button.cljs:26 +msgid "workspace.sidebar.expand" +msgstr "Расширить боковую панель" + +#: src/app/main/ui/workspace/right_header.cljs:231, src/app/main/ui/workspace/right_header.cljs:232 msgid "workspace.sidebar.history" msgstr "История (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/sidebar/layers.cljs:522, src/app/main/ui/workspace/sidebar.cljs:100 msgid "workspace.sidebar.layers" msgstr "Слои" +#: src/app/main/ui/workspace/sidebar/layers.cljs:308, src/app/main/ui/workspace/sidebar/layers.cljs:380 msgid "workspace.sidebar.layers.components" msgstr "Компоненты" +#: src/app/main/ui/workspace/sidebar/layers.cljs:306, src/app/main/ui/workspace/sidebar/layers.cljs:352 +msgid "workspace.sidebar.layers.groups" +msgstr "Группы" + +#: src/app/main/ui/workspace/sidebar/layers.cljs:310, src/app/main/ui/workspace/sidebar/layers.cljs:408 +msgid "workspace.sidebar.layers.images" +msgstr "Изображения" + +#: src/app/main/ui/workspace/sidebar/layers.cljs:307, src/app/main/ui/workspace/sidebar/layers.cljs:366 +msgid "workspace.sidebar.layers.masks" +msgstr "Маски" + +#: src/app/main/ui/workspace/sidebar/layers.cljs:289 msgid "workspace.sidebar.layers.search" msgstr "Искать слои" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs +#: src/app/main/ui/workspace/sidebar/layers.cljs:311, src/app/main/ui/workspace/sidebar/layers.cljs:422 +msgid "workspace.sidebar.layers.shapes" +msgstr "Формы" + +#: src/app/main/ui/workspace/sidebar/layers.cljs:309, src/app/main/ui/workspace/sidebar/layers.cljs:394 +msgid "workspace.sidebar.layers.texts" +msgstr "Тексты" + +#: src/app/main/ui/workspace/sidebar/sitemap.cljs:217 msgid "workspace.sidebar.sitemap" msgstr "Страницы" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/left_header.cljs:91 msgid "workspace.sitemap" msgstr "Карта сайта" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/sidebar.cljs:120 msgid "workspace.toolbar.assets" msgstr "Ресурсы" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/palette.cljs:165, src/app/main/ui/workspace/palette.cljs:166 msgid "workspace.toolbar.color-palette" msgstr "Палитра цветов (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/right_header.cljs:220, src/app/main/ui/workspace/right_header.cljs:221 msgid "workspace.toolbar.comments" msgstr "Комментарии (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:180, src/app/main/ui/workspace/top_toolbar.cljs:181 msgid "workspace.toolbar.curve" msgstr "Кривая (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:160, src/app/main/ui/workspace/top_toolbar.cljs:161 msgid "workspace.toolbar.ellipse" msgstr "Эллипс (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:142, src/app/main/ui/workspace/top_toolbar.cljs:143 msgid "workspace.toolbar.frame" msgstr "Кадр (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:59, src/app/main/ui/workspace/top_toolbar.cljs:60 msgid "workspace.toolbar.image" msgstr "Изображение (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:132, src/app/main/ui/workspace/top_toolbar.cljs:133 msgid "workspace.toolbar.move" msgstr "Перемещение (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:189, src/app/main/ui/workspace/top_toolbar.cljs:190 msgid "workspace.toolbar.path" msgstr "Контур (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:151, src/app/main/ui/workspace/top_toolbar.cljs:152 msgid "workspace.toolbar.rect" msgstr "Прямоугольник (%s)" #: src/app/main/ui/workspace/left_toolbar.cljs -msgid "workspace.toolbar.text" -msgstr "Текст (%s)" - -#: src/app/main/ui/workspace/left_toolbar.cljs -msgid "workspace.toolbar.text-palette" -msgstr "Типографики (%s)" - -msgid "workspace.undo.entry.multiple.color" -msgstr "цветовые ресурсы" - -msgid "workspace.undo.entry.multiple.component" -msgstr "компоненты" - -msgid "workspace.undo.entry.multiple.frame" -msgstr "кадры" - -msgid "workspace.undo.entry.multiple.media" -msgstr "графические ресурсы" - -msgid "workspace.undo.entry.multiple.path" -msgstr "контуры" - -msgid "workspace.undo.entry.multiple.typography" -msgstr "типографические ресурсы" - -msgid "workspace.undo.entry.single.frame" -msgstr "кадр" - -msgid "workspace.undo.entry.single.group" -msgstr "группа" - -msgid "workspace.undo.entry.single.path" -msgstr "контур" - -msgid "workspace.undo.entry.single.rect" -msgstr "прямоугольник" - -#: src/app/main/ui/workspace/sidebar/history.cljs -msgid "workspace.undo.title" -msgstr "История" - -#: src/app/main/data/workspace/libraries.cljs -msgid "workspace.updates.dismiss" -msgstr "Отклонить" - -#: src/app/main/data/workspace/libraries.cljs -msgid "workspace.updates.there-are-updates" -msgstr "Обнаружены обновления общих библиотек" - -#: src/app/main/data/workspace/libraries.cljs -msgid "workspace.updates.update" -msgstr "Обновить" - -msgid "workspace.viewport.click-to-close-path" -msgstr "Нажмите для замыкания контура" - -msgid "workspace.undo.entry.multiple.multiple" -msgstr "объекты" - -msgid "workspace.undo.entry.single.page" -msgstr "страница" - -#: src/app/main/ui/settings/access-tokens.cljs -msgid "dashboard.access-tokens.copied-success" -msgstr "Токен скопирован" - -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs -msgid "workspace.options.shadow-options.offsetx" -msgstr "X" - -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs -msgid "workspace.options.show-fill-on-export" -msgstr "Показать в экспорте" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke-cap.circle-marker-short" -msgstr "Круг" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke-cap.triangle-arrow" -msgstr "Треугольная стрела" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke-cap.square-marker-short" -msgstr "Прямоугольник" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.lock" -msgstr "Заблокировать" - -#: src/app/main/ui/workspace/sidebar/history.cljs -msgid "workspace.undo.entry.new" -msgstr "Новый: %s" - -msgid "workspace.undo.entry.multiple.group" -msgstr "группы" - -msgid "workspace.undo.entry.single.component" -msgstr "компонент" - -msgid "workspace.undo.entry.single.circle" -msgstr "круг" - -msgid "workspace.undo.entry.single.multiple" -msgstr "объект" - -#: src/app/main/data/workspace/libraries.cljs -msgid "workspace.updates.more-info" -msgstr "Дополнительная информация" - -msgid "workspace.top-bar.read-only.done" -msgstr "Готово" - -#: src/app/main/ui/workspace/left_toolbar.cljs +#, unused msgid "workspace.toolbar.shortcuts" msgstr "Сочетание клавиш (%s)" -msgid "workspace.sidebar.layers.shapes" -msgstr "Формы" +#: src/app/main/ui/workspace/top_toolbar.cljs:169, src/app/main/ui/workspace/top_toolbar.cljs:170 +msgid "workspace.toolbar.text" +msgstr "Текст (%s)" -msgid "workspace.undo.entry.multiple.page" -msgstr "страницы" +#: src/app/main/ui/workspace/palette.cljs:173, src/app/main/ui/workspace/palette.cljs:174 +msgid "workspace.toolbar.text-palette" +msgstr "Типографики (%s)" -msgid "workspace.shape.menu.intersection" -msgstr "Пересечь" - -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs -msgid "workspace.options.shadow-options.offsety" -msgstr "Y" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke-cap.triangle-arrow-short" -msgstr "Треугольник" - -msgid "workspace.undo.entry.multiple.shape" -msgstr "формы" +#: src/app/main/ui/workspace/viewport/top_bar.cljs:38 +msgid "workspace.top-bar.read-only.done" +msgstr "Готово" +#: src/app/main/ui/workspace/sidebar/history.cljs:111 msgid "workspace.undo.entry.multiple.circle" msgstr "круги" -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.unlock" -msgstr "Paзблокировать" +#: src/app/main/ui/workspace/sidebar/history.cljs:112 +msgid "workspace.undo.entry.multiple.color" +msgstr "цветовые ресурсы" -msgid "workspace.sidebar.collapse" -msgstr "Свернуть боковую панель" +#: src/app/main/ui/workspace/sidebar/history.cljs:113 +msgid "workspace.undo.entry.multiple.component" +msgstr "компоненты" -msgid "workspace.options.width" -msgstr "Ширина" +#: src/app/main/ui/workspace/sidebar/history.cljs:115 +msgid "workspace.undo.entry.multiple.frame" +msgstr "кадры" -#: src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.paste" -msgstr "Вставить" +#: src/app/main/ui/workspace/sidebar/history.cljs:116 +msgid "workspace.undo.entry.multiple.group" +msgstr "группы" -msgid "workspace.undo.entry.single.shape" -msgstr "форма" +#: src/app/main/ui/workspace/sidebar/history.cljs:117 +msgid "workspace.undo.entry.multiple.media" +msgstr "графические ресурсы" -msgid "workspace.undo.entry.single.text" -msgstr "текст" +#: src/app/main/ui/workspace/sidebar/history.cljs:118 +msgid "workspace.undo.entry.multiple.multiple" +msgstr "объекты" -msgid "workspace.undo.entry.single.image" -msgstr "изображение" +#: src/app/main/ui/workspace/sidebar/history.cljs:119 +msgid "workspace.undo.entry.multiple.page" +msgstr "страницы" +#: src/app/main/ui/workspace/sidebar/history.cljs:120 +msgid "workspace.undo.entry.multiple.path" +msgstr "контуры" + +#: src/app/main/ui/workspace/sidebar/history.cljs:122 +msgid "workspace.undo.entry.multiple.shape" +msgstr "формы" + +#: src/app/main/ui/workspace/sidebar/history.cljs:123 msgid "workspace.undo.entry.multiple.text" msgstr "тексты" -msgid "workspace.sidebar.layers.texts" -msgstr "Тексты" +#: src/app/main/ui/workspace/sidebar/history.cljs:124 +msgid "workspace.undo.entry.multiple.typography" +msgstr "типографические ресурсы" -msgid "workspace.sidebar.layers.masks" -msgstr "Маски" +#: src/app/main/ui/workspace/sidebar/history.cljs:145 +msgid "workspace.undo.entry.new" +msgstr "Новый: %s" -msgid "workspace.sidebar.layers.images" -msgstr "Изображения" +#: src/app/main/ui/workspace/sidebar/history.cljs:125 +msgid "workspace.undo.entry.single.circle" +msgstr "круг" -msgid "workspace.sidebar.layers.groups" -msgstr "Группы" +#: src/app/main/ui/workspace/sidebar/history.cljs:127 +msgid "workspace.undo.entry.single.component" +msgstr "компонент" -msgid "workspace.sidebar.expand" -msgstr "Расширить боковую панель" +#: src/app/main/ui/workspace/sidebar/history.cljs:129 +msgid "workspace.undo.entry.single.frame" +msgstr "кадр" -msgid "workspace.shape.menu.union" -msgstr "Суммировать" +#: src/app/main/ui/workspace/sidebar/history.cljs:130 +msgid "workspace.undo.entry.single.group" +msgstr "группа" + +#: src/app/main/ui/workspace/sidebar/history.cljs:131 +msgid "workspace.undo.entry.single.image" +msgstr "изображение" + +#: src/app/main/ui/workspace/sidebar/history.cljs:133 +msgid "workspace.undo.entry.single.multiple" +msgstr "объект" + +#: src/app/main/ui/workspace/sidebar/history.cljs:134 +msgid "workspace.undo.entry.single.page" +msgstr "страница" + +#: src/app/main/ui/workspace/sidebar/history.cljs:135 +msgid "workspace.undo.entry.single.path" +msgstr "контур" + +#: src/app/main/ui/workspace/sidebar/history.cljs:136 +msgid "workspace.undo.entry.single.rect" +msgstr "прямоугольник" + +#: src/app/main/ui/workspace/sidebar/history.cljs:137 +msgid "workspace.undo.entry.single.shape" +msgstr "форма" + +#: src/app/main/ui/workspace/sidebar/history.cljs:138 +msgid "workspace.undo.entry.single.text" +msgstr "текст" + +#: src/app/main/ui/workspace/sidebar/history.cljs:335 +msgid "workspace.undo.title" +msgstr "История" + +#: src/app/main/data/workspace/libraries.cljs:1094 +msgid "workspace.updates.dismiss" +msgstr "Отклонить" + +#: src/app/main/data/workspace/libraries.cljs:1092 +msgid "workspace.updates.more-info" +msgstr "Дополнительная информация" + +#: src/app/main/data/workspace/libraries.cljs:1090 +msgid "workspace.updates.there-are-updates" +msgstr "Обнаружены обновления общих библиотек" + +#: src/app/main/data/workspace/libraries.cljs:1097 +msgid "workspace.updates.update" +msgstr "Обновить" + +#, unused +msgid "workspace.viewport.click-to-close-path" +msgstr "Нажмите для замыкания контура" diff --git a/frontend/translations/ta.po b/frontend/translations/ta.po index 6ed7b51180..8222f448b3 100644 --- a/frontend/translations/ta.po +++ b/frontend/translations/ta.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "PO-Revision-Date: 2024-06-17 08:07+0000\n" "Last-Translator: Anonymous \n" -"Language-Team: Tamil \n" +"Language-Team: Tamil " +"\n" "Language: ta\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" @@ -11,186 +11,202 @@ msgstr "" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 5.6-dev\n" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:151, src/app/main/ui/viewer/login.cljs:104 msgid "auth.already-have-account" msgstr "ஏற்கனவே ஒரு கணக்கு உள்ளதா?" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:299 msgid "auth.check-your-email" msgstr "" "உங்கள் மின்னஞ்சலைச் சரிபார்த்து, இணைப்பைக் கிளிக் செய்து சரிபார்த்து, " "Penpot ஐப் பயன்படுத்தத் தொடங்குங்கள்." -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:78 msgid "auth.confirm-password" msgstr "கடவுச்சொல்லை உறுதிப்படுத்தவும்" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/register.cljs:163 msgid "auth.create-demo-account" msgstr "டெமோ கணக்கை உருவாக்கவும்" #: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#, unused msgid "auth.create-demo-profile" msgstr "அதை முயற்சி செய்ய வேண்டுமா?" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/login.cljs:43 msgid "auth.demo-warning" msgstr "" "இது ஒரு டெமோ சேவை, உண்மையான வேலைக்கு பயன்படுத்த வேண்டாம், திட்டங்கள் " "அவ்வப்போது அழிக்கப்படும்." -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:189, src/app/main/ui/viewer/login.cljs:90 msgid "auth.forgot-password" msgstr "கடவுச்சொல்லை மறந்துவிட்டீர்களா?" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:254 msgid "auth.fullname" msgstr "முழு பெயர்" -#: src/app/main/ui/auth/register.cljs -#, fuzzy +#: src/app/main/ui/auth/register.cljs:155, src/app/main/ui/viewer/login.cljs:107 msgid "auth.login-here" msgstr "இங்கே உள்நுழைக" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:195 msgid "auth.login-submit" msgstr "உள்நுழை" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:222 msgid "auth.login-with-github-submit" msgstr "GitHub" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:228 msgid "auth.login-with-gitlab-submit" msgstr "கிட்லேப்" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:216 msgid "auth.login-with-google-submit" msgstr "கூகுள்" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:201 msgid "auth.login-with-ldap-submit" msgstr "LDAP" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:234, src/app/main/ui/auth/login.cljs:255 msgid "auth.login-with-oidc-submit" msgstr "ஓப்பன் ஐடி" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:71 msgid "auth.new-password" msgstr "புதிய கடவுச்சொல்லை உள்ளிடவும்" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:42 msgid "auth.notifications.invalid-token-error" msgstr "மீட்பு டோக்கன் செல்லுபடியாகாது." -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:46 msgid "auth.notifications.password-changed-successfully" msgstr "கடவுச்சொல் வெற்றிகரமாக மாற்றப்பட்டது" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:57 msgid "auth.notifications.profile-not-verified" msgstr "" "சுயவிவரம் சரிபார்க்கப்படவில்லை, தொடர்வதற்கு முன் சுயவிவரத்தைச் " "சரிபார்க்கவும்." -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:40 msgid "auth.notifications.recovery-token-sent" msgstr "கடவுச்சொல் மீட்பு இணைப்பு உங்கள் இன்பாக்ஸிற்கு அனுப்பப்பட்டது." -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:47 msgid "auth.notifications.team-invitation-accepted" msgstr "அணியில் வெற்றிகரமாக இணைந்தார்" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:179, src/app/main/ui/auth/register.cljs:115 msgid "auth.password" msgstr "கடவுச்சொல்" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:114 msgid "auth.password-length-hint" msgstr "குறைந்தது 8 எழுத்துகள்" +#: src/app/main/ui/auth.cljs:41 msgid "auth.privacy-policy" msgstr "தனியுரிமைக் கொள்கை" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:88 msgid "auth.recovery-request-submit" msgstr "கடவுச்சொல்லை மீட்டெடுக்கவும்" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:101 msgid "auth.recovery-request-subtitle" msgstr "வழிமுறைகளுடன் கூடிய மின்னஞ்சலை உங்களுக்கு அனுப்புவோம்" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:100 msgid "auth.recovery-request-title" msgstr "கடவுச்சொல்லை மறந்துவிட்டீர்களா?" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:82 msgid "auth.recovery-submit" msgstr "உங்கள் கடவுச்சொல்லை மாற்றுக" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:298, src/app/main/ui/viewer/login.cljs:93 msgid "auth.register" msgstr "இன்னும் கணக்கு இல்லையா?" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:302, src/app/main/ui/auth/register.cljs:121, src/app/main/ui/auth/register.cljs:263, src/app/main/ui/viewer/login.cljs:97 msgid "auth.register-submit" msgstr "ஒரு கணக்கை உருவாக்கவும்" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:140 msgid "auth.register-title" msgstr "ஒரு கணக்கை உருவாக்கவும்" #: src/app/main/ui/auth.cljs +#, unused msgid "auth.sidebar-tagline" msgstr "வடிவமைப்பு மற்றும் முன்மாதிரிக்கான திறந்த மூல தீர்வு." +#: src/app/main/ui/auth.cljs:33, src/app/main/ui/dashboard/sidebar.cljs:1022, src/app/main/ui/workspace/main_menu.cljs:150 msgid "auth.terms-of-service" msgstr "சேவை விதிமுறைகள்" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:297 msgid "auth.verification-email-sent" msgstr "சரிபார்ப்பு மின்னஞ்சலை அனுப்பியுள்ளோம் இந்த முகவரிக்கு" +#: src/app/main/ui/workspace/libraries.cljs:228 msgid "common.publish" msgstr "வெளியிடுங்கள்" +#: src/app/main/ui/viewer/share_link.cljs:304, src/app/main/ui/viewer/share_link.cljs:314 msgid "common.share-link.all-users" msgstr "அனைத்து Penpot பயனர்களும்" +#: src/app/main/ui/viewer/share_link.cljs:198 msgid "common.share-link.confirm-deletion-link-description" msgstr "" "இந்த இணைப்பை நிச்சயமாக அகற்ற விரும்புகிறீர்களா? நீங்கள் அதைச் செய்தால், அது " "இனி யாருக்கும் கிடைக்காது" +#: src/app/main/ui/viewer/share_link.cljs:259, src/app/main/ui/viewer/share_link.cljs:289 msgid "common.share-link.current-tag" msgstr "(தற்போதைய)" +#: src/app/main/ui/viewer/share_link.cljs:207, src/app/main/ui/viewer/share_link.cljs:214 msgid "common.share-link.destroy-link" msgstr "இணைப்பை அழிக்கவும்" +#: src/app/main/ui/viewer/share_link.cljs:221 msgid "common.share-link.get-link" msgstr "இணைப்பைப் பெறுங்கள்" +#: src/app/main/ui/viewer/share_link.cljs:139 msgid "common.share-link.link-copied-success" msgstr "இணைப்பு வெற்றிகரமாக நகலெடுக்கப்பட்டது" +#: src/app/main/ui/viewer/share_link.cljs:231 msgid "common.share-link.manage-ops" msgstr "அனுமதிகளை நிர்வகிக்கவும்" +#: src/app/main/ui/viewer/share_link.cljs:277 msgid "common.share-link.page-shared" msgid_plural "common.share-link.page-shared" msgstr[0] "1 பக்கம் பகிரப்பட்டது" msgstr[1] "%s பக்கங்கள் பகிரப்பட்டன" +#: src/app/main/ui/viewer/share_link.cljs:298 msgid "common.share-link.permissions-can-comment" msgstr "கருத்து தெரிவிக்கலாம்" +#: src/app/main/ui/viewer/share_link.cljs:308 msgid "common.share-link.permissions-can-inspect" msgstr "குறியீட்டை ஆய்வு செய்யலாம்" +#: src/app/main/ui/viewer/share_link.cljs:193 msgid "common.share-link.permissions-hint" msgstr "இணைப்பு உள்ள எவருக்கும் அணுகல் இருக்கும்" +#: src/app/main/ui/viewer/share_link.cljs:241 msgid "common.share-link.permissions-pages" msgstr "பக்கங்கள் பகிரப்பட்டன" diff --git a/frontend/translations/tr.po b/frontend/translations/tr.po index 92d9dfe7e1..bf61be621c 100644 --- a/frontend/translations/tr.po +++ b/frontend/translations/tr.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "PO-Revision-Date: 2024-06-17 08:07+0000\n" "Last-Translator: Anonymous \n" -"Language-Team: Turkish \n" +"Language-Team: Turkish " +"\n" "Language: tr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" @@ -11,490 +11,536 @@ msgstr "" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 5.6-dev\n" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:151, src/app/main/ui/viewer/login.cljs:104 msgid "auth.already-have-account" msgstr "Zaten hesabın var mı?" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:299 msgid "auth.check-your-email" msgstr "" "Penpot hesabını onaylamak ve kullanmaya başlamak için e-postanı kontrol et " "ve gönderilen bağlantıya tıkla." -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:78 msgid "auth.confirm-password" msgstr "Parolayı onayla" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/register.cljs:163 msgid "auth.create-demo-account" msgstr "Demo hesabı oluştur" #: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#, unused msgid "auth.create-demo-profile" msgstr "Sadece denemek mi istiyorsun?" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/login.cljs:43 msgid "auth.demo-warning" msgstr "" "Bu bir DEMO hizmettir, gerçek işleriniz için KULLANMAYIN, projeler belirli " "aralıklarla silinecektir." -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:189, src/app/main/ui/viewer/login.cljs:90 msgid "auth.forgot-password" msgstr "Parolanı mı unuttun?" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:254 msgid "auth.fullname" msgstr "Tam Adın" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:282 msgid "auth.login-account-title" msgstr "Hesabımda oturum aç" -#: src/app/main/ui/auth/register.cljs -#, fuzzy +#: src/app/main/ui/auth/register.cljs:155, src/app/main/ui/viewer/login.cljs:107 msgid "auth.login-here" msgstr "Buradan oturum açın" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:195 msgid "auth.login-submit" msgstr "Oturum aç" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:285 msgid "auth.login-tagline" msgstr "" "Penpot, tasarım ve kod işbirliği için özgür ve açık kaynaklı tasarım " "aracıdır" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:222 msgid "auth.login-with-github-submit" msgstr "GitHub" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:228 msgid "auth.login-with-gitlab-submit" msgstr "GitLab" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:216 msgid "auth.login-with-google-submit" msgstr "Google" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:201 msgid "auth.login-with-ldap-submit" msgstr "LDAP" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:234, src/app/main/ui/auth/login.cljs:255 msgid "auth.login-with-oidc-submit" msgstr "OpenID" -#: src/app/main/ui/settings/team-form.cljs, src/app/main/ui/auth/register.cljs, src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/onboarding/team_choice.cljs, src/app/main/ui/settings/access_tokens.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/settings/profile.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/auth/register.cljs:217, src/app/main/ui/dashboard/team_form.cljs:76, src/app/main/ui/onboarding/team_choice.cljs:180, src/app/main/ui/settings/access_tokens.cljs:66, src/app/main/ui/settings/feedback.cljs:34, src/app/main/ui/settings/profile.cljs:45, src/app/main/ui/workspace/sidebar/assets/groups.cljs:108 msgid "auth.name.not-all-space" msgstr "İsim boşluk dışında bir karakter içermelidir." -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/onboarding/team_choice.cljs, src/app/main/ui/settings/access_tokens.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/settings/profile.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/auth/register.cljs:218, src/app/main/ui/dashboard/team_form.cljs:77, src/app/main/ui/onboarding/team_choice.cljs:181, src/app/main/ui/settings/access_tokens.cljs:67, src/app/main/ui/settings/feedback.cljs:33, src/app/main/ui/settings/profile.cljs:44, src/app/main/ui/workspace/sidebar/assets/groups.cljs:109 msgid "auth.name.too-long" msgstr "İsim en fazla 250 karakter içermelidir." -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:71 msgid "auth.new-password" msgstr "Yeni bir parola gir" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:42 msgid "auth.notifications.invalid-token-error" msgstr "Kurtarma jetonu geçerli değil." -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:46 msgid "auth.notifications.password-changed-successfully" msgstr "Parola başarıyla değiştirildi" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:57 msgid "auth.notifications.profile-not-verified" msgstr "Profil onaylanmamış, devam etmeden önce profili onaylayın." -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:40 msgid "auth.notifications.recovery-token-sent" msgstr "Parola kurtarma bağlantısı e-posta kutuna gönderildi." -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:47 msgid "auth.notifications.team-invitation-accepted" msgstr "Takıma başarıyla katıldın" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:179, src/app/main/ui/auth/register.cljs:115 msgid "auth.password" msgstr "Parola" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:114 msgid "auth.password-length-hint" msgstr "En az 8 karakter" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/recovery.cljs:61, src/app/main/ui/auth/recovery.cljs:62, src/app/main/ui/auth/register.cljs:81, src/app/main/ui/settings/password.cljs:75, src/app/main/ui/settings/password.cljs:76, src/app/main/ui/settings/password.cljs:77 msgid "auth.password-not-empty" msgstr "Parola boşluk dışında bir karakter içermelidir." +#: src/app/main/ui/auth.cljs:41 msgid "auth.privacy-policy" msgstr "Gizlilik politikası" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:88 msgid "auth.recovery-request-submit" msgstr "Parolayı kurtar" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:101 msgid "auth.recovery-request-subtitle" msgstr "Detayları sana e-posta ile göndereceğiz" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:100 msgid "auth.recovery-request-title" msgstr "Parolanı mı unuttun?" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:82 msgid "auth.recovery-submit" msgstr "Parolanı değiştir" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:298, src/app/main/ui/viewer/login.cljs:93 msgid "auth.register" msgstr "Henüz hesabın yok mu?" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:302, src/app/main/ui/auth/register.cljs:121, src/app/main/ui/auth/register.cljs:263, src/app/main/ui/viewer/login.cljs:97 msgid "auth.register-submit" msgstr "Bir hesap oluştur" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:140 msgid "auth.register-title" msgstr "Bir hesap oluştur" #: src/app/main/ui/auth.cljs +#, unused msgid "auth.sidebar-tagline" msgstr "Tasarım ve prototipleme için açık-kaynak çözüm." +#: src/app/main/ui/auth.cljs:33, src/app/main/ui/dashboard/sidebar.cljs:1022, src/app/main/ui/workspace/main_menu.cljs:150 msgid "auth.terms-of-service" msgstr "Hizmet şartları" -#: src/app/main/ui/auth/register.cljs +#, unused msgid "auth.terms-privacy-agreement" msgstr "" "Bir hesap oluştururken, koşullarımızı ve gizlilik politikamızı kabul etmiş " "sayılırsınız." -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:297 msgid "auth.verification-email-sent" msgstr "Onay e-postanı şu adrese gönderdik" #: src/app/main/ui/onboarding/questions.cljs +#, unused msgid "branding-illustrations-marketing-pieces" msgstr "...marka çalışması, çizimler, pazarlama materyalleri, vb." +#: src/app/main/ui/workspace/libraries.cljs:228 msgid "common.publish" msgstr "Yayınla" +#: src/app/main/ui/viewer/share_link.cljs:304, src/app/main/ui/viewer/share_link.cljs:314 msgid "common.share-link.all-users" msgstr "Tüm Penpot kullanıcıları" +#: src/app/main/ui/viewer/share_link.cljs:198 msgid "common.share-link.confirm-deletion-link-description" msgstr "" "Bu bağlantıyı kaldırmak istediğinizden emin misiniz? Bunu yaparsanız, artık " "kimse tarafından kullanılamayacak" +#: src/app/main/ui/viewer/share_link.cljs:259, src/app/main/ui/viewer/share_link.cljs:289 msgid "common.share-link.current-tag" msgstr "(geçerli)" +#: src/app/main/ui/viewer/share_link.cljs:207, src/app/main/ui/viewer/share_link.cljs:214 msgid "common.share-link.destroy-link" msgstr "Bağlantıyı yok et" +#: src/app/main/ui/viewer/share_link.cljs:221 msgid "common.share-link.get-link" msgstr "Bağlantıyı al" +#: src/app/main/ui/viewer/share_link.cljs:139 msgid "common.share-link.link-copied-success" msgstr "Bağlantı başarıyla kopyalandı" +#: src/app/main/ui/viewer/share_link.cljs:231 msgid "common.share-link.manage-ops" msgstr "İzinleri yönet" +#: src/app/main/ui/viewer/share_link.cljs:277 msgid "common.share-link.page-shared" msgid_plural "common.share-link.page-shared" msgstr[0] "1 sayfa paylaşıldı" msgstr[1] "%s sayfa paylaşıldı" +#: src/app/main/ui/viewer/share_link.cljs:298 msgid "common.share-link.permissions-can-comment" msgstr "Yorum yapabilir" +#: src/app/main/ui/viewer/share_link.cljs:308 msgid "common.share-link.permissions-can-inspect" msgstr "Kodu inceleyebilir" +#: src/app/main/ui/viewer/share_link.cljs:193 msgid "common.share-link.permissions-hint" msgstr "Bağlantıya sahip olan herkes erişebilir" +#: src/app/main/ui/viewer/share_link.cljs:241 msgid "common.share-link.permissions-pages" msgstr "Paylaşılan sayfalar" +#: src/app/main/ui/viewer/share_link.cljs:183 msgid "common.share-link.placeholder" msgstr "Paylaşılabilir bağlantı burada görünecek" +#: src/app/main/ui/viewer/share_link.cljs:303, src/app/main/ui/viewer/share_link.cljs:313 msgid "common.share-link.team-members" msgstr "Yalnızca takım üyeleri" +#: src/app/main/ui/viewer/share_link.cljs:171 msgid "common.share-link.title" msgstr "Prototipleri paylaş" +#: src/app/main/ui/viewer/share_link.cljs:269 msgid "common.share-link.view-all" msgstr "Tümünü Seç" +#: src/app/main/ui/workspace/libraries.cljs:224 msgid "common.unpublish" msgstr "Yayından kaldır" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:85 msgid "dasboard.team-hero.management" msgstr "Takım yönetimi" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:84 msgid "dasboard.team-hero.text" msgstr "" "Penpot takımlar içindir. Üyeleri projeler ve dosyalar üzerinde birlikte " "çalışmaya davet edin" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:82 msgid "dasboard.team-hero.title" msgstr "Takım olun!" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.tutorial-hero.info" msgstr "" "Bu uygulamalı öğretici ile biraz eğlenirken Penpot'taki temel bilgileri " "öğrenin." #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.tutorial-hero.start" msgstr "Öğreticiyi başlat" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.tutorial-hero.title" msgstr "Uygulamalı Öğretici" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.walkthrough-hero.info" msgstr "Penpot'ta bir gezintiye çıkın ve temel özelliklerini öğrenin." #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.walkthrough-hero.start" msgstr "Gezintiyi başlat" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.walkthrough-hero.title" msgstr "Arayüz İncelemesi" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:115 msgid "dashboard.access-tokens.copied-success" msgstr "Belirteç kopyalandı" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:202 msgid "dashboard.access-tokens.create" msgstr "Yeni belirteç oluştur" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:76 msgid "dashboard.access-tokens.create.success" msgstr "Erişim belirteci başarıyla oluşturuldu." -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:300 msgid "dashboard.access-tokens.empty.add-one" msgstr "Bir belirteç oluşturmak için \"Yeni belirteç oluştur\" düğmesine basın." -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:299 msgid "dashboard.access-tokens.empty.no-access-tokens" msgstr "Şu ana kadar hiç belirteciniz yok." -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:53 msgid "dashboard.access-tokens.errors-required-name" msgstr "İsim gereklidir" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:147 msgid "dashboard.access-tokens.expiration-180-days" msgstr "180 gün" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:144 msgid "dashboard.access-tokens.expiration-30-days" msgstr "30 gün" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:145 msgid "dashboard.access-tokens.expiration-60-days" msgstr "60 gün" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:146 msgid "dashboard.access-tokens.expiration-90-days" msgstr "90 gün" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:143 msgid "dashboard.access-tokens.expiration-never" msgstr "Asla" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:282 msgid "dashboard.access-tokens.expired-on" msgstr "%s tarihinde sona erdi" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:283 msgid "dashboard.access-tokens.expires-on" msgstr "%s tarihinde sona eriyor" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:281 msgid "dashboard.access-tokens.no-expiration" msgstr "Süresiz" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:197 msgid "dashboard.access-tokens.personal" msgstr "Kişisel erişim belirteçleri" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:198 msgid "dashboard.access-tokens.personal.description" msgstr "" "Kişisel erişim belirteçleri, oturum açma/parola kimlik doğrulama " "sistemimize alternatif olarak işlev görür ve bir uygulamanın dahili Penpot " "API'sine erişmesine izin vermek için kullanılabilir" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:154 msgid "dashboard.access-tokens.token-will-expire" msgstr "Belirtecin süresi %s tarihinde sona erecek" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:155 msgid "dashboard.access-tokens.token-will-not-expire" msgstr "Belirtecin sona erme tarihi yok" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:291, src/app/main/ui/workspace/main_menu.cljs:572 msgid "dashboard.add-shared" msgstr "Paylaşılan Kütüphane olarak ekle" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:75 msgid "dashboard.change-email" msgstr "E-posta adresini değiştir" -#: src/app/main/data/dashboard.cljs, src/app/main/data/dashboard.cljs +#: src/app/main/data/dashboard.cljs:762, src/app/main/data/dashboard.cljs:983 msgid "dashboard.copy-suffix" msgstr "(kopya)" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:338 msgid "dashboard.create-new-team" msgstr "Yeni takım oluştur" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/components/context_menu_a11y.cljs:256, src/app/main/ui/dashboard/sidebar.cljs:646 msgid "dashboard.default-team-name" msgstr "Penpot'un" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:571 msgid "dashboard.delete-team" msgstr "Takımı sil" +#: src/app/main/ui/dashboard/file_menu.cljs:296, src/app/main/ui/workspace/main_menu.cljs:589 msgid "dashboard.download-binary-file" msgstr "Penpot dosyasını indir (.penpot)" +#: src/app/main/ui/dashboard/file_menu.cljs:300, src/app/main/ui/workspace/main_menu.cljs:597 msgid "dashboard.download-standard-file" msgstr "Standart dosyayı indir (.svg + .json)" -#: src/app/main/ui/dashboard/project_menu.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:276, src/app/main/ui/dashboard/project_menu.cljs:90 msgid "dashboard.duplicate" msgstr "Kopyasını oluştur" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:240 msgid "dashboard.duplicate-multi" msgstr "%s dosyanın kopyasını oluştur" -#: src/app/main/ui/dashboard/grid.cljs +#: src/app/main/ui/dashboard/placeholder.cljs:32 +#, markdown msgid "dashboard.empty-placeholder-drafts" msgstr "" "Kütüphanelere eklenen dosyalar burada görünecektir. Dosyalarınızı " "paylaşmayı deneyin veya [Kütüphaneler ve " "şablonlarımızdan](https://penpot.app/libraries-templates) ekleyin." +#: src/app/main/ui/dashboard/file_menu.cljs:249 msgid "dashboard.export-binary-multi" msgstr "%s Penpot dosyasını indir (.penpot)" +#: src/app/main/ui/workspace/main_menu.cljs:605 msgid "dashboard.export-frames" msgstr "Çalışma yüzeylerini PDF olarak dışa aktar" -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:201 msgid "dashboard.export-frames.title" msgstr "PDF olarak dışa aktar" +#, unused msgid "dashboard.export-multi" msgstr "Penpot %s dosyalarını dışa aktar" -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:109 msgid "dashboard.export-multiple.selected" msgstr "%s / %s öge seçildi" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:578 msgid "dashboard.export-shapes" msgstr "Dışa aktar" -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:180 msgid "dashboard.export-shapes.how-to" msgstr "" "Tasarım özelliklerinden (sağ kenar çubuğunun alt kısmında) ögelere dışa " "aktarma ayarları ekleyebilirsiniz." -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:184 msgid "dashboard.export-shapes.how-to-link" msgstr "Penpot'ta dışa aktarmaların nasıl ayarlandırılacağı hakkında bilgi." -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:179 msgid "dashboard.export-shapes.no-elements" msgstr "Dışa aktarma ayarlarına sahip hiçbir öge yok." -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:190 msgid "dashboard.export-shapes.title" msgstr "Seçimi dışa aktar" +#: src/app/main/ui/dashboard/file_menu.cljs:252 msgid "dashboard.export-standard-multi" msgstr "%s standart dosyayı indir (.svg + .json)" +#: src/app/main/ui/export.cljs:427 msgid "dashboard.export.detail" msgstr "* Bileşenleri, grafikleri, renkleri ve/veya tipografileri içerebilir." +#: src/app/main/ui/export.cljs:426 msgid "dashboard.export.explain" msgstr "" "Dışarı aktarmak istediğiniz bir veya daha fazla dosya, paylaşılan " "kütüphaneleri kullanıyor. Bunların varlıklarıyla ne yapmak istiyorsunuz*?" +#: src/app/main/ui/export.cljs:435 msgid "dashboard.export.options.all.message" msgstr "" "paylaşılan kütüphanelere sahip dosyalar, bağlantılarını koruyarak dışarı " "aktarmaya dahil edilecek." +#: src/app/main/ui/export.cljs:436 msgid "dashboard.export.options.all.title" msgstr "Paylaşılan kütüphaneleri dışarı aktar" +#: src/app/main/ui/export.cljs:437 msgid "dashboard.export.options.detach.message" msgstr "" "Paylaşılan kütüphaneler dışarı aktarmaya dahil edilmeyecek ve kütüphaneye " "hiçbir varlık eklenmeyecek. " +#: src/app/main/ui/export.cljs:438 msgid "dashboard.export.options.detach.title" msgstr "Paylaşılan kütüphane varlıklarını temel nesneler olarak ele al" +#: src/app/main/ui/export.cljs:439 msgid "dashboard.export.options.merge.message" msgstr "" "Dosyanız, tüm harici varlıklar kütüphane dosyasına birleştirilmiş olarak " "dışarı aktarılacak." +#: src/app/main/ui/export.cljs:440 msgid "dashboard.export.options.merge.title" msgstr "Dosya kütüphanelerine paylaşılan kütüphane varlıklarını dahil et" +#: src/app/main/ui/export.cljs:418 msgid "dashboard.export.title" msgstr "Dosyaları dışarı aktar" +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:309 msgid "dashboard.fonts.deleted-placeholder" msgstr "Yazı tipi silindi" -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:206 msgid "dashboard.fonts.dismiss-all" msgstr "Hepsini kapat" +#: src/app/main/ui/dashboard/fonts.cljs:436 msgid "dashboard.fonts.empty-placeholder" msgstr "Yüklediğiniz özel yazı tipleri burada görünecektir." -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:194 msgid "dashboard.fonts.fonts-added" msgid_plural "dashboard.fonts.fonts-added" msgstr[0] "1 yazı tipi eklendi" msgstr[1] "%s yazı tipi eklendi" +#: src/app/main/ui/dashboard/fonts.cljs:170 +#, markdown msgid "dashboard.fonts.hero-text1" msgstr "" "Buraya yüklediğiniz herhangi bir web yazı tipi, bu takımın dosyalarının " @@ -503,6 +549,8 @@ msgstr "" "gruplandırılacak. Yazı tiplerini şu biçimlerde yükleyebilirsiniz: **TTF, " "OTF ve WOFF** (yalnızca bir tane gerekli olacak)." +#: src/app/main/ui/dashboard/fonts.cljs:182 +#, markdown msgid "dashboard.fonts.hero-text2" msgstr "" "Sadece kendinize ait veya Penpot'ta kullanılabilecek bir lisansa sahip olan " @@ -512,10 +560,11 @@ msgstr "" "lisanslama](https://www.typography.com/faq) hakkında daha fazla bilgi almak " "isteyebilirsiniz." -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:202 msgid "dashboard.fonts.upload-all" msgstr "Tümünü karşıya yükle" +#: src/app/main/ui/dashboard/fonts.cljs:187 #, markdown msgid "dashboard.fonts.warning-text" msgstr "" @@ -526,1524 +575,1686 @@ msgstr "" "hataları düzeltmek için [Transfonter](https://transfonter.org/) " "kullanmanızı öneririz. " +#: src/app/main/ui/dashboard/import.cljs:472, src/app/main/ui/dashboard/project_menu.cljs:108 msgid "dashboard.import" msgstr "Penpot dosyalarını içe aktar" +#: src/app/main/ui/dashboard/import.cljs:304, src/app/worker/import.cljs:753, src/app/worker/import.cljs:755 msgid "dashboard.import.analyze-error" msgstr "Oops! Bu dosyayı içeri aktaramadık" +#, unused msgid "dashboard.import.analyze-error.components-v2" msgstr "" "Bileşenler v2 ile dosya etkinleştirildi ancak bu takım henüz bunu " "desteklemiyor." +#: src/app/main/ui/dashboard/import.cljs:308 msgid "dashboard.import.import-error" msgstr "Dosya içeri aktarılırken bir sorun oluştu. Dosya içeri aktarılmadı." +#: src/app/main/ui/dashboard/import.cljs:493 msgid "dashboard.import.import-message" msgid_plural "dashboard.import.import-message" msgstr[0] "1 dosya başarıyla içeri aktarıldı." msgstr[1] "%s dosya başarıyla içeri aktarıldı." +#: src/app/main/ui/dashboard/import.cljs:481, src/app/main/ui/dashboard/import.cljs:488 msgid "dashboard.import.import-warning" msgstr "Bazı dosyalar kaldırılmış geçersiz nesneler içeriyordu." +#: src/app/main/ui/dashboard/import.cljs:144 msgid "dashboard.import.progress.process-colors" msgstr "Renkler işleniyor" +#: src/app/main/ui/dashboard/import.cljs:153 msgid "dashboard.import.progress.process-components" msgstr "Bileşenler işleniyor" +#: src/app/main/ui/dashboard/import.cljs:150 msgid "dashboard.import.progress.process-media" msgstr "Ortam işleniyor" +#: src/app/main/ui/dashboard/import.cljs:141 msgid "dashboard.import.progress.process-page" msgstr "Sayfa işleniyor: %s" +#: src/app/main/ui/dashboard/import.cljs:147 msgid "dashboard.import.progress.process-typographies" msgstr "Tipografiler işleniyor" +#: src/app/main/ui/dashboard/import.cljs:135 msgid "dashboard.import.progress.upload-data" msgstr "Veriler sunucuya yükleniyor (%s/%s)" +#: src/app/main/ui/dashboard/import.cljs:138 msgid "dashboard.import.progress.upload-media" msgstr "Dosya yükleniyor: %s" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:109 msgid "dashboard.invite-profile" msgstr "İnsanları davet et" -#: src/app/main/ui/dashboard/sidebar.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:547, src/app/main/ui/dashboard/sidebar.cljs:556, src/app/main/ui/dashboard/sidebar.cljs:563, src/app/main/ui/dashboard/team.cljs:312 msgid "dashboard.leave-team" msgstr "Takımdan ayrıl" +#: src/app/main/ui/dashboard/templates.cljs:88, src/app/main/ui/dashboard/templates.cljs:163 msgid "dashboard.libraries-and-templates" msgstr "Kütüphaneler ve Şablonlar" +#: src/app/main/ui/dashboard/templates.cljs:164 msgid "dashboard.libraries-and-templates.explore" msgstr "Daha fazlasını keşfedin ve nasıl katkıda bulunacağınızı öğrenin" +#: src/app/main/ui/dashboard/import.cljs:365 msgid "dashboard.libraries-and-templates.import-error" msgstr "Şablon içe aktarılırken bir sorun oluştu. Şablon içe aktarılmadı." -#: src/app/main/ui/dashboard/libraries.cljs +#: src/app/main/ui/dashboard/libraries.cljs:53 msgid "dashboard.libraries-title" msgstr "Paylaşılan Kütüphaneler" -#: src/app/main/ui/dashboard/grid.cljs +#: src/app/main/ui/dashboard/placeholder.cljs:45 msgid "dashboard.loading-files" msgstr "dosyalarınız yükleniyor …" +#: src/app/main/ui/dashboard/fonts.cljs:431 msgid "dashboard.loading-fonts" msgstr "yazı tipleriniz yükleniyor…" -#: src/app/main/ui/dashboard/project_menu.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:281, src/app/main/ui/dashboard/project_menu.cljs:100 msgid "dashboard.move-to" msgstr "Şuraya taşı" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:245 msgid "dashboard.move-to-multi" msgstr "%s dosyayı şuraya taşı" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:226 msgid "dashboard.move-to-other-team" msgstr "Başka takıma taşı" -#: src/app/main/ui/dashboard/projects.cljs, -#: src/app/main/ui/dashboard/files.cljs +#: src/app/main/ui/dashboard/files.cljs:105, src/app/main/ui/dashboard/projects.cljs:252, src/app/main/ui/dashboard/projects.cljs:253 msgid "dashboard.new-file" msgstr "+ Yeni Dosya" -#: src/app/main/data/dashboard.cljs +#: src/app/main/data/dashboard.cljs:958, src/app/main/data/dashboard.cljs:1181 msgid "dashboard.new-file-prefix" msgstr "Yeni Dosya" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:55 msgid "dashboard.new-project" msgstr "+ Yeni Proje" -#: src/app/main/data/dashboard.cljs +#: src/app/main/data/dashboard.cljs:726, src/app/main/data/dashboard.cljs:1184 msgid "dashboard.new-project-prefix" msgstr "Yeni Proje" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:60 msgid "dashboard.no-matches-for" msgstr "\"%s\" için sonuç bulunamadı" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:827 msgid "dashboard.no-projects-placeholder" msgstr "Sabitlenmiş projeler burada görünür" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:33 msgid "dashboard.notifications.email-changed-successfully" msgstr "E-posta adresiniz başarıyla güncellendi" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:27 msgid "dashboard.notifications.email-verified-successfully" msgstr "E-posta adresin başarıyla doğrulandı" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:37 msgid "dashboard.notifications.password-saved" msgstr "Parola başarıyla kaydedildi!" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1081 msgid "dashboard.num-of-members" msgstr "%s üye" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:267 msgid "dashboard.open-in-new-tab" msgstr "Dosyayı yeni sekmede aç" +#: src/app/main/ui/dashboard/files.cljs:117, src/app/main/ui/dashboard/projects.cljs:260, src/app/main/ui/dashboard/projects.cljs:261 msgid "dashboard.options" msgstr "Seçenekler" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:106, src/app/main/ui/settings/password.cljs:119 msgid "dashboard.password-change" msgstr "Parola değiştir" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/pin_button.cljs:24, src/app/main/ui/dashboard/project_menu.cljs:95 msgid "dashboard.pin-unpin" msgstr "Sabitle/Sabitleme" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:51 msgid "dashboard.projects-title" msgstr "Projeler" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:86 msgid "dashboard.remove-account" msgstr "Hesabınızı kaldırmak mı istiyorsunuz?" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "dashboard.remove-shared" msgstr "Paylaşılan Kütüphane olarak sil" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:78 msgid "dashboard.save-settings" msgstr "Ayarları kaydet" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:246, src/app/main/ui/dashboard/sidebar.cljs:247 msgid "dashboard.search-placeholder" msgstr "Ara…" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:55 msgid "dashboard.searching-for" msgstr "“%s“ aranıyor…" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:56 msgid "dashboard.select-ui-language" msgstr "Arayüz dilini seç" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:63 msgid "dashboard.select-ui-theme" msgstr "Tema seç" -#: src/app/main/ui/dashboard/grid.cljs +#: src/app/main/ui/dashboard/projects.cljs:282 msgid "dashboard.show-all-files" msgstr "Tüm dosyaları göster" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:96 msgid "dashboard.success-delete-file" msgid_plural "dashboard.success-delete-file" msgstr[0] "Dosyanız başarıyla silindi" msgstr[1] "Dosyalarınız başarıyla silindi" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:59 msgid "dashboard.success-delete-project" msgstr "Projeniz başarıyla silindi" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:91 msgid "dashboard.success-duplicate-file" msgid_plural "dashboard.success-delete-file" msgstr[0] "Dosyanız başarıyla kopyalandı" msgstr[1] "Dosyalarınız başarıyla kopyalandı" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:33 msgid "dashboard.success-duplicate-project" msgstr "Projenin kopyası başarıyla oluşturuldu" -#: src/app/main/ui/dashboard/grid.cljs, src/app/main/ui/dashboard/sidebar.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:130, src/app/main/ui/dashboard/grid.cljs:558, src/app/main/ui/dashboard/sidebar.cljs:152 msgid "dashboard.success-move-file" msgstr "Dosyan başarıyla taşındı" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:129 msgid "dashboard.success-move-files" msgstr "Dosyaların başarıyla taşındı" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:54 msgid "dashboard.success-move-project" msgstr "Projen başarıyla taşındı" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1052 msgid "dashboard.team-info" msgstr "Takım bilgisi" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1070 msgid "dashboard.team-members" msgstr "Takım üyeleri" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1085 msgid "dashboard.team-projects" msgstr "Takım projeleri" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:61 msgid "dashboard.theme-change" msgstr "Kullanıcı arayüzü teması" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:42 msgid "dashboard.title-search" msgstr "Arama sonuçları" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:50 msgid "dashboard.type-something" msgstr "Aramak için yazın" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:287, src/app/main/ui/workspace/main_menu.cljs:566 msgid "dashboard.unpublish-shared" msgstr "Kütüphaneyi Yayından Kaldır" -#: src/app/main/ui/settings/profile.cljs, -#: src/app/main/ui/settings/password.cljs, -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:71 msgid "dashboard.update-settings" msgstr "Ayarları güncelle" +#: src/app/main/ui/dashboard/team.cljs:861 msgid "dashboard.webhooks.active" msgstr "Etkin" +#: src/app/main/ui/dashboard/team.cljs:862 msgid "dashboard.webhooks.active.explain" msgstr "Bu kanca tetiklendiğinde olay ayrıntıları iletilecektir" +#: src/app/main/ui/dashboard/team.cljs:852 msgid "dashboard.webhooks.content-type" msgstr "İçerik türü" +#: src/app/main/ui/dashboard/team.cljs:885 msgid "dashboard.webhooks.create" msgstr "Web kancası oluştur" +#: src/app/main/ui/dashboard/team.cljs:775 msgid "dashboard.webhooks.create.success" msgstr "Web kancası başarıyla oluşturuldu." +#: src/app/main/ui/dashboard/team.cljs:882 msgid "dashboard.webhooks.description" msgstr "" "Web kancaları, Penpot'ta belirli olaylar gerçekleştiğinde diğer web " "sitelerinin ve uygulamaların bilgilendirilmesine izin vermenin basit bir " "yoludur. Belirttiğiniz URL'lerin her birine bir POST isteği göndereceğiz." +#: src/app/main/ui/dashboard/team.cljs:1005 msgid "dashboard.webhooks.empty.add-one" msgstr "Bir tane eklemek için \"Web kancası ekle\" düğmesine basın." +#: src/app/main/ui/dashboard/team.cljs:1004 msgid "dashboard.webhooks.empty.no-webhooks" msgstr "Şimdiye kadar web kancası oluşturulmadı." +#, unused msgid "dashboard.webhooks.update.success" msgstr "Web kancası başarıyla güncellendi." -#: src/app/main/ui/settings.cljs +#: src/app/main/ui/settings.cljs:31 msgid "dashboard.your-account-title" msgstr "Hesabınız" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:70 msgid "dashboard.your-email" msgstr "E-posta" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:62 msgid "dashboard.your-name" msgstr "Adın" -#: src/app/main/ui/dashboard/search.cljs, src/app/main/ui/dashboard/team.cljs, -#: src/app/main/ui/dashboard/libraries.cljs, -#: src/app/main/ui/dashboard/projects.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:38, src/app/main/ui/dashboard/fonts.cljs:33, src/app/main/ui/dashboard/libraries.cljs:42, src/app/main/ui/dashboard/projects.cljs:318, src/app/main/ui/dashboard/search.cljs:30, src/app/main/ui/dashboard/sidebar.cljs:312, src/app/main/ui/dashboard/team.cljs:495, src/app/main/ui/dashboard/team.cljs:729, src/app/main/ui/dashboard/team.cljs:991, src/app/main/ui/dashboard/team.cljs:1038 msgid "dashboard.your-penpot" msgstr "Penpot'un" -#: src/app/main/ui/alert.cljs +#: src/app/main/ui/alert.cljs:32 msgid "ds.alert-ok" msgstr "Tamam" -#: src/app/main/ui/alert.cljs +#: src/app/main/ui/alert.cljs:31, src/app/main/ui/alert.cljs:34 msgid "ds.alert-title" msgstr "Dikkat" -#: src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:83 msgid "ds.component-subtitle" msgstr "Güncellenecek bileşenler:" -#: src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:36, src/app/main/ui/workspace/plugins.cljs:246 msgid "ds.confirm-cancel" msgstr "İptal" -#: src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:37, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:141 msgid "ds.confirm-ok" msgstr "Tamam" -#: src/app/main/ui/confirm.cljs, src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:35, src/app/main/ui/confirm.cljs:39 msgid "ds.confirm-title" msgstr "Emin misin?" -#: src/app/main/data/users.cljs +#: src/app/main/data/users.cljs:705 msgid "errors.auth-provider-not-allowed" msgstr "Kimlik doğrulama sağlayıcısına bu profil için izin verilmiyor" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:62 msgid "errors.auth-provider-not-configured" msgstr "Kimlik doğrulama sağlayıcısı yapılandırılmadı." +#: src/app/main/errors.cljs:104 msgid "errors.auth.unable-to-login" msgstr "Kimliğiniz doğrulanmamış veya oturumun süresi dolmuş gibi görünüyor." +#: src/app/main/data/fonts.cljs:189 msgid "errors.bad-font" msgstr "%s yazı tipi yüklenemedi" +#: src/app/main/data/fonts.cljs:188 msgid "errors.bad-font-plural" msgstr "%s yazı tipleri yüklenemedi" +#: src/app/main/data/workspace/media.cljs:198 msgid "errors.cannot-upload" msgstr "Medya dosyası yüklenemedi." -#: src/app/main/data/workspace.cljs +#: src/app/main/data/workspace.cljs:1598 msgid "errors.clipboard-not-implemented" msgstr "Tarayıcın bu işlemi gerçekleştiremiyor" -#: src/app/main/ui/auth/verify_token.cljs, -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/auth/verify_token.cljs:82, src/app/main/ui/settings/change_email.cljs:46 msgid "errors.email-already-exists" msgstr "E-posta zaten kullanımda" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:87 msgid "errors.email-already-validated" msgstr "E-posta zaten doğrulandı." +#: src/app/main/ui/settings/password.cljs:28 msgid "errors.email-as-password" msgstr "E-postanızı parola olarak kullanamazsınız" -#: src/app/main/data/users.cljs +#: src/app/main/data/users.cljs:707, src/app/main/ui/auth/register.cljs:63 msgid "errors.email-domain-not-allowed" msgstr "Etki alanına izin verilmiyor" -#: src/app/main/ui/auth/register.cljs, -#: src/app/main/ui/auth/recovery_request.cljs, -#: src/app/main/ui/settings/change_email.cljs, -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/auth/recovery_request.cljs:63, src/app/main/ui/dashboard/team.cljs:578, src/app/main/ui/settings/change_email.cljs:54 msgid "errors.email-has-permanent-bounces" msgstr "«%s» adresi için çok fazla geri dönme raporu var." -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs, -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/login.cljs:81, src/app/main/ui/auth/recovery_request.cljs:31, src/app/main/ui/auth/register.cljs:43 msgid "errors.email-invalid" msgstr "Lütfen geçerli bir e-posta adresi girin" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:35 msgid "errors.email-invalid-confirmation" msgstr "Doğrulama e-postası eşleşmiyor" +#: src/app/main/ui/dashboard/team.cljs:170 msgid "errors.email-spam-or-permanent-bounces" msgstr "«%s» e-postasının spam veya kalıcı olarak geri döndüğü bildirildi." -#: src/app/main/errors.cljs +#: src/app/main/errors.cljs:227 msgid "errors.feature-mismatch" msgstr "" "Görünüşe göre '%s' özelliğinin etkin olduğu bir dosyayı açıyorsunuz, ancak " "şu anki penpot sürümü bunu desteklemiyor veya devre dışı bırakıldı." -#: src/app/main/errors.cljs +#: src/app/main/errors.cljs:231, src/app/main/errors.cljs:245 msgid "errors.feature-not-supported" msgstr "'%s' özelliği desteklenmiyor." -#: src/app/main/errors.cljs +#: src/app/main/errors.cljs:223 msgid "errors.file-feature-mismatch" msgstr "" "Etkinleştirilen özellikler ile açmaya çalıştığınız dosyanın özellikleri " "arasında bir uyumsuzluk var gibi görünüyor. Dosyanın açılabilmesi için önce " "'%s' için geçişlerin uygulanması gerekiyor." -#: src/app/main/ui/auth/verify_token.cljs, -#: src/app/main/ui/settings/feedback.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/data/users.cljs:709, src/app/main/ui/auth/login.cljs:65, src/app/main/ui/auth/login.cljs:116, src/app/main/ui/auth/register.cljs:69, src/app/main/ui/auth/register.cljs:237, src/app/main/ui/auth/verify_token.cljs:92, src/app/main/ui/dashboard/team.cljs:173, src/app/main/ui/onboarding/team_choice.cljs:95, src/app/main/ui/settings/access_tokens.cljs:91, src/app/main/ui/settings/feedback.cljs:52 msgid "errors.generic" msgstr "Bir şeyler ters gitti." -#: src/app/main/ui/components/color_input.cljs +#: src/app/main/ui/components/color_input.cljs:57 msgid "errors.invalid-color" msgstr "Geçersiz renk" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/static.cljs:43 msgid "errors.invite-invalid" msgstr "Geçersiz davet" +#: src/app/main/ui/static.cljs:44 msgid "errors.invite-invalid.info" msgstr "Bu davet iptal edilmiş veya süresi dolmuş olabilir." -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:101 msgid "errors.ldap-disabled" msgstr "LDAP ile oturum açma devre dışı bırakıldı." -#: src/app/main/errors.cljs +#: src/app/main/errors.cljs:239 msgid "errors.max-quote-reached" msgstr "'%s' sınırına ulaştınız. Destek ile iletişime geçin." -#: src/app/main/data/workspace/persistence.cljs +#: src/app/main/data/workspace/media.cljs:184 msgid "errors.media-too-large" msgstr "Bu görsel eklemek için çok büyük." -#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs +#: src/app/main/data/media.cljs:68, src/app/main/data/workspace/media.cljs:187 msgid "errors.media-type-mismatch" msgstr "Görselin içeriği, dosya uzantısı ile eşleşmiyor gibi görünüyor." -#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs +#: src/app/main/data/media.cljs:65, src/app/main/data/workspace/media.cljs:172, src/app/main/data/workspace/media.cljs:175, src/app/main/data/workspace/media.cljs:178, src/app/main/data/workspace/media.cljs:181 msgid "errors.media-type-not-allowed" msgstr "Geçerli bir görsel gibi görünmüyor." -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:574 msgid "errors.member-is-muted" msgstr "" "Davet ettiğiniz profilin e-posta adresine ait çok fazla geri dönme raporu " "var veya spam olarak bildirilmiş." -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:61 msgid "errors.password-invalid-confirmation" msgstr "Parolalar eşleşmedi" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:64 msgid "errors.password-too-short" msgstr "Parola en az 8 karakterden oluşmalı" +#: src/app/main/errors.cljs:124 msgid "errors.paste-data-validation" msgstr "Panoda geçersiz veri" +#: src/app/main/data/users.cljs:703, src/app/main/ui/auth/login.cljs:97, src/app/main/ui/auth/login.cljs:105 msgid "errors.profile-blocked" msgstr "Profil engellendi" -#: src/app/main/ui/auth/recovery_request.cljs, -#: src/app/main/ui/settings/change_email.cljs, -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/auth/recovery_request.cljs:60, src/app/main/ui/dashboard/team.cljs:164, src/app/main/ui/dashboard/team.cljs:570, src/app/main/ui/settings/change_email.cljs:50 msgid "errors.profile-is-muted" msgstr "" "Profilinizde sessize alınmış e-postalar var (spam raporları veya yüksek " "geri dönüşler sebebiyle)." -#: src/app/main/ui/auth/register.cljs +#: src/app/main/data/users.cljs:701, src/app/main/ui/auth/register.cljs:60 msgid "errors.registration-disabled" msgstr "Kayıt olma şu anda devre dışı." -#: src/app/main/errors.cljs +#: src/app/main/errors.cljs:218 msgid "errors.team-feature-mismatch" msgstr "Uyumsuz '%s' özelliği algılandı" +#: src/app/main/ui/dashboard/sidebar.cljs:365, src/app/main/ui/dashboard/team.cljs:359 msgid "errors.team-leave.insufficient-members" msgstr "Takımdan ayrılmak için yeterli üye yok, onu silmek isteyebilirsiniz." +#: src/app/main/ui/dashboard/sidebar.cljs:368, src/app/main/ui/dashboard/team.cljs:362 msgid "errors.team-leave.member-does-not-exists" msgstr "Atamaya çalıştığınız üye mevcut değil." +#: src/app/main/ui/dashboard/sidebar.cljs:371, src/app/main/ui/dashboard/team.cljs:365 msgid "errors.team-leave.owner-cant-leave" msgstr "Sahip takımdan ayrılamaz, sahip rolünü yeniden atamanız gerekir." -#: src/app/main/data/media.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs +#: src/app/main/data/media.cljs:71 msgid "errors.unexpected-error" msgstr "Beklenmedik bir hata oluştu." -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:60 msgid "errors.unexpected-token" msgstr "Bilinmeyen jeton" +#, unused msgid "errors.validation" msgstr "Doğrulama Hatası" -#: src/app/main/errors.cljs +#: src/app/main/errors.cljs:235 msgid "errors.version-not-supported" msgstr "Dosyanın uyumsuz bir sürüm numarası var" +#: src/app/main/ui/dashboard/team.cljs:796 msgid "errors.webhooks.connection" msgstr "Bağlantı hatası, URL'ye erişilemiyor" +#: src/app/main/ui/dashboard/team.cljs:790 msgid "errors.webhooks.invalid-uri" msgstr "URL doğrulamayı geçemiyor." +#: src/app/main/ui/dashboard/team.cljs:949 msgid "errors.webhooks.last-delivery" msgstr "Son iletim başarılı olmadı." +#: src/app/main/ui/dashboard/team.cljs:792, src/app/main/ui/dashboard/team.cljs:952 msgid "errors.webhooks.ssl-validation" msgstr "SSL doğrulamasında hata." +#: src/app/main/ui/dashboard/team.cljs:794 msgid "errors.webhooks.timeout" msgstr "Zaman aşımı" +#: src/app/main/ui/dashboard/team.cljs:788 msgid "errors.webhooks.unexpected" msgstr "Doğrulamada beklenmeyen hata" +#: src/app/main/ui/dashboard/team.cljs:798, src/app/main/ui/dashboard/team.cljs:955 msgid "errors.webhooks.unexpected-status" msgstr "Beklenmeyen durum %s" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:109, src/app/main/ui/auth/login.cljs:113 msgid "errors.wrong-credentials" msgstr "E-posta veya parola yanlış." -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:25 msgid "errors.wrong-old-password" msgstr "Eski parola yanlış" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:77 msgid "feedback.description" msgstr "Açıklama" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:95 msgid "feedback.discourse-go-to" msgstr "Penpot forumuna git" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:89 msgid "feedback.discourse-subtitle1" msgstr "" "Burada olmanızdan mutluluk duyuyoruz. Yardıma ihtiyacınız varsa, lütfen " "göndermeden önce arama yapın." -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:88 msgid "feedback.discourse-title" msgstr "Penpot topluluğu" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:72 msgid "feedback.subject" msgstr "Konu" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:69 msgid "feedback.subtitle" msgstr "" "Lütfen bir sorun, fikir ya da kuşkunuzu açıklayarak e-postanızın nedenini " "belirtin. Takımımızın bir üyesi en kısa sürede yanıt verecektir." -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:68 msgid "feedback.title" msgstr "E-posta" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:105 msgid "feedback.twitter-go-to" msgstr "X'a git" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:99 msgid "feedback.twitter-subtitle1" msgstr "Teknik sorularınıza yardımcı olmak için buradayız." -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:98 msgid "feedback.twitter-title" msgstr "X destek hesabı" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:30 msgid "generic.error" msgstr "Bir hata oluştu" -#: src/app/main/ui/inspect/attributes/blur.cljs +#: src/app/main/ui/viewer/inspect/attributes/blur.cljs:26 msgid "inspect.attributes.blur" msgstr "Bulanıklık" -#: src/app/main/ui/inspect/attributes/blur.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:115 msgid "inspect.attributes.blur.value" msgstr "Değer" -#: src/app/main/ui/inspect/attributes/common.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:112 msgid "inspect.attributes.color.hex" msgstr "HEX" -#: src/app/main/ui/inspect/attributes/common.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:114 msgid "inspect.attributes.color.hsla" msgstr "HSLA" -#: src/app/main/ui/inspect/attributes/common.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:113 msgid "inspect.attributes.color.rgba" msgstr "RGBA" -#: src/app/main/ui/inspect/attributes/fill.cljs +#: src/app/main/ui/viewer/inspect/attributes/fill.cljs:57 msgid "inspect.attributes.fill" msgstr "Doldur" -#: src/app/main/ui/inspect/attributes/image.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:99, src/app/main/ui/viewer/inspect/attributes/image.cljs:51 msgid "inspect.attributes.image.download" msgstr "Kaynak görselini indir" -#: src/app/main/ui/inspect/attributes/image.cljs +#: src/app/main/ui/viewer/inspect/attributes/image.cljs:39 msgid "inspect.attributes.image.height" msgstr "Yükseklik" -#: src/app/main/ui/inspect/attributes/image.cljs +#: src/app/main/ui/viewer/inspect/attributes/image.cljs:32 msgid "inspect.attributes.image.width" msgstr "Genişlik" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout" msgstr "Yerleşim düzeni" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.height" msgstr "Yükseklik" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.left" msgstr "Sol" -#: src/app/main/ui/inspect/attributes/layout.cljs, -#: src/app/main/ui/inspect/attributes/layout.cljs +#: src/app/main/ui/inspect/attributes/layout.cljs, src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.radius" msgstr "Yarıçap" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.rotation" msgstr "Döndür" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.top" msgstr "Üst" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.width" msgstr "Genişlik" -#: src/app/main/ui/inspect/attributes/shadow.cljs +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:57 msgid "inspect.attributes.shadow" msgstr "Gölge" -#: src/app/main/ui/inspect/attributes/layout.cljs +#: src/app/main/ui/viewer/inspect/attributes/geometry.cljs:40 msgid "inspect.attributes.size" msgstr "Boyut ve konum" -#: src/app/main/ui/inspect/attributes/stroke.cljs +#: src/app/main/ui/viewer/inspect/attributes/stroke.cljs:52 msgid "inspect.attributes.stroke" msgstr "Çerçeve" +#, permanent, unused msgid "inspect.attributes.stroke.alignment.center" msgstr "Merkezi" +#, permanent, unused msgid "inspect.attributes.stroke.alignment.inner" msgstr "İçinde" +#, permanent, unused msgid "inspect.attributes.stroke.alignment.outer" msgstr "Dışarıda" +#, unused msgid "inspect.attributes.stroke.style.dotted" msgstr "Noktalı" +#, unused msgid "inspect.attributes.stroke.style.mixed" msgstr "Karışık" +#, unused msgid "inspect.attributes.stroke.style.none" msgstr "Hiçbiri" +#, unused msgid "inspect.attributes.stroke.style.solid" msgstr "Düz" #: src/app/main/ui/inspect/attributes/stroke.cljs +#, unused msgid "inspect.attributes.stroke.width" msgstr "Genişlik" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:81, src/app/main/ui/viewer/inspect/attributes/text.cljs:194 msgid "inspect.attributes.typography" msgstr "Tipografi" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:89 msgid "inspect.attributes.typography.font-family" msgstr "Yazı Tipi Ailesi" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:107 msgid "inspect.attributes.typography.font-size" msgstr "Yazı Tipi Boyutu" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:98 msgid "inspect.attributes.typography.font-style" msgstr "Yazı Tipi Biçimi" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:116 msgid "inspect.attributes.typography.font-weight" msgstr "Yazı Tipi Kalınlığı" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:134 msgid "inspect.attributes.typography.letter-spacing" msgstr "Harf Aralığı" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:125 msgid "inspect.attributes.typography.line-height" msgstr "Satır Yüksekliği" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:143 msgid "inspect.attributes.typography.text-decoration" msgstr "Metin Süsleme" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:145 msgid "inspect.attributes.typography.text-decoration.none" msgstr "Hiçbiri" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:146 msgid "inspect.attributes.typography.text-decoration.strikethrough" msgstr "Üstü Çizili" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:147 msgid "inspect.attributes.typography.text-decoration.underline" msgstr "Altı Çizili" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:156 msgid "inspect.attributes.typography.text-transform" msgstr "Metin Dönüşümü" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:158 msgid "inspect.attributes.typography.text-transform.lowercase" msgstr "Küçük Harf" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:159 msgid "inspect.attributes.typography.text-transform.none" msgstr "Hiçbiri" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:160 msgid "inspect.attributes.typography.text-transform.titlecase" msgstr "İlk Harfleri Büyük" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:162 msgid "inspect.attributes.typography.text-transform.unset" msgstr "Ayarlanmadı" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:161 msgid "inspect.attributes.typography.text-transform.uppercase" msgstr "Büyük Harf" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:140 msgid "inspect.empty.help" msgstr "" "Tasarım incelemesi hakkında daha fazla bilgi edinmek istiyorsanız Penpot " "yardım merkezini ziyaret edin" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:143 msgid "inspect.empty.more-info" msgstr "İnceleme hakkında daha fazla bilgi" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:135 msgid "inspect.empty.select" msgstr "" "Özelliklerini ve kodunu incelemek için bir şekil, çalışma yüzeyi veya grup " "seçin" -#: src/app/main/ui/inspect/right_sidebar.cljs +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:125 msgid "inspect.tabs.code" msgstr "Kod" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:98 msgid "inspect.tabs.code.selected.circle" msgstr "Daire" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:99 msgid "inspect.tabs.code.selected.component" msgstr "Bileşen" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:100 msgid "inspect.tabs.code.selected.curve" msgstr "Eğri" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:101 msgid "inspect.tabs.code.selected.frame" msgstr "Çalışma yüzeyi" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:102 msgid "inspect.tabs.code.selected.group" msgstr "Grup" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:103 msgid "inspect.tabs.code.selected.image" msgstr "Görsel" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:104 msgid "inspect.tabs.code.selected.mask" msgstr "Maskele" -#: src/app/main/ui/inspect/right_sidebar.cljs +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:93 msgid "inspect.tabs.code.selected.multiple" msgstr "%s Seçildi" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:105 msgid "inspect.tabs.code.selected.path" msgstr "Yol" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:106 msgid "inspect.tabs.code.selected.rect" msgstr "Dikdörtgen" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:107 msgid "inspect.tabs.code.selected.svg-raw" msgstr "SVG" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:108 msgid "inspect.tabs.code.selected.text" msgstr "Metin" -#: src/app/main/ui/inspect/right_sidebar.cljs +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:115 msgid "inspect.tabs.info" msgstr "Bilgi" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:158 msgid "label.shortcuts" msgstr "Kısayollar" +#: src/app/main/ui/dashboard/import.cljs:527 msgid "labels.accept" msgstr "Kabul et" -#: src/app/main/ui/settings/sidebar.cljs +#: src/app/main/ui/settings/sidebar.cljs:100 msgid "labels.access-tokens" msgstr "Erişim belirteçleri" +#: src/app/main/ui/dashboard/team.cljs:968 msgid "labels.active" msgstr "Etkin" +#: src/app/main/ui/dashboard/fonts.cljs:175 msgid "labels.add-custom-font" msgstr "Özel yazı tipi ekle" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:120, src/app/main/ui/dashboard/team.cljs:276, src/app/main/ui/dashboard/team.cljs:519, src/app/main/ui/dashboard/team.cljs:549, src/app/main/ui/onboarding/team_choice.cljs:67 msgid "labels.admin" msgstr "Yönetici" +#: src/app/main/ui/onboarding/questions.cljs:174 +msgid "labels.adobe-xd" +msgstr "Adobe XD" + #: src/app/main/ui/workspace/comments.cljs +#, unused msgid "labels.all" msgstr "Hepsi" +#: src/app/main/ui/auth.cljs:37 msgid "labels.and" msgstr "ve" +#: src/app/main/ui/onboarding/team_choice.cljs:162 msgid "labels.back" msgstr "Geri" -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:59 msgid "labels.bad-gateway.desc-message" msgstr "" "Görünüşe göre biraz beklemen ve yeniden denemen gerekiyor; sunucularımızda " "küçük bir bakım yapıyoruz." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:58 msgid "labels.bad-gateway.main-message" msgstr "Hatalı Ağ Geçidi" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/data/common.cljs:112, src/app/main/ui/dashboard/change_owner.cljs:69, src/app/main/ui/dashboard/import.cljs:514, src/app/main/ui/dashboard/team.cljs:868, src/app/main/ui/delete_shared.cljs:35, src/app/main/ui/export.cljs:164, src/app/main/ui/export.cljs:460, src/app/main/ui/settings/access_tokens.cljs:188, src/app/main/ui/viewer/share_link.cljs:203, src/app/main/ui/workspace/sidebar/assets/groups.cljs:149 msgid "labels.cancel" msgstr "İptal" +#: src/app/main/ui/onboarding/questions.cljs:176 +msgid "labels.canva" +msgstr "Canva" + +#: src/app/main/ui/dashboard/projects.cljs:93, src/app/main/ui/export.cljs:478, src/app/main/ui/settings/access_tokens.cljs:183, src/app/main/ui/viewer/login.cljs:77, src/app/main/ui/viewer/share_link.cljs:174, src/app/main/ui/workspace/libraries.cljs:522 msgid "labels.close" msgstr "Kapat" -#: src/app/main/ui/dashboard/comments.cljs +#: src/app/main/ui/dashboard/comments.cljs:104, src/app/main/ui/viewer/comments.cljs:70, src/app/main/ui/workspace/comments.cljs:126 msgid "labels.comments" msgstr "Yorumlar" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:985, src/app/main/ui/workspace/main_menu.cljs:110 msgid "labels.community" msgstr "Topluluk" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:103 msgid "labels.confirm-password" msgstr "Parolayı onayla" +#: src/app/main/ui/dashboard/import.cljs:520, src/app/main/ui/export.cljs:465, src/app/main/ui/onboarding/newsletter.cljs:101 msgid "labels.continue" msgstr "Devam et" +#, unused msgid "labels.continue-with" msgstr "İle devam et" +#: src/app/main/ui/viewer/login.cljs:75 msgid "labels.continue-with-penpot" msgstr "Penpot hesabıyla devam edebilirsiniz" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:642 msgid "labels.copy-invitation-link" msgstr "Bağlantıyı kopyala" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:157, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:190 msgid "labels.create" msgstr "Oluştur" -#: src/app/main/ui/dashboard/team_form.cljs, -#: src/app/main/ui/dashboard/team_form.cljs +#: src/app/main/ui/dashboard/team_form.cljs:101, src/app/main/ui/dashboard/team_form.cljs:121 msgid "labels.create-team" msgstr "Yeni takım oluştur" -#: src/app/main/ui/dashboard/team_form.cljs +#: src/app/main/ui/dashboard/team_form.cljs:113 msgid "labels.create-team.placeholder" msgstr "Yeni takım adı gir" +#, unused msgid "labels.custom-fonts" msgstr "Özel yazı tipleri" -#: src/app/main/ui/settings/sidebar.cljs +#: src/app/main/ui/settings/sidebar.cljs:73 msgid "labels.dashboard" msgstr "Denetim paneli" -#: src/app/main/ui/dashboard/project_menu.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:306, src/app/main/ui/dashboard/fonts.cljs:255, src/app/main/ui/dashboard/fonts.cljs:332, src/app/main/ui/dashboard/fonts.cljs:346, src/app/main/ui/dashboard/project_menu.cljs:115, src/app/main/ui/dashboard/team.cljs:904, src/app/main/ui/settings/access_tokens.cljs:209, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:209 msgid "labels.delete" msgstr "Sil" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:357 msgid "labels.delete-comment" msgstr "Yorumu sil" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:354 msgid "labels.delete-comment-thread" msgstr "Mesaj dizisini sil" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:648 msgid "labels.delete-invitation" msgstr "Daveti sil" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:262 msgid "labels.delete-multi-files" msgstr "%s dosyayı sil" +#: src/app/main/ui/onboarding/questions.cljs:250 +msgid "labels.developer" +msgstr "Geliştirici" + +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:199 msgid "labels.discard" msgstr "At" -#: src/app/main/ui/dashboard/projects.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs, -#: src/app/main/ui/dashboard/files.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:28, src/app/main/ui/dashboard/files.cljs:72, src/app/main/ui/dashboard/files.cljs:156, src/app/main/ui/dashboard/projects.cljs:220, src/app/main/ui/dashboard/projects.cljs:224, src/app/main/ui/dashboard/sidebar.cljs:791 msgid "labels.drafts" msgstr "Taslak" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:350, src/app/main/ui/dashboard/fonts.cljs:252, src/app/main/ui/dashboard/team.cljs:902, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:205 msgid "labels.edit" msgstr "Düzenle" +#, unused msgid "labels.edit-file" msgstr "Dosya düzenle" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:118, src/app/main/ui/dashboard/team.cljs:279, src/app/main/ui/dashboard/team.cljs:520, src/app/main/ui/dashboard/team.cljs:553, src/app/main/ui/onboarding/team_choice.cljs:66 msgid "labels.editor" msgstr "Düzenleyici" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:661 msgid "labels.expired-invitation" msgstr "Süresi doldu" +#: src/app/main/ui/export.cljs:173 msgid "labels.export" msgstr "Dışa aktar" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:51 msgid "labels.feedback-disabled" msgstr "Geri bildirim devre dışı bırakıldı" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:42 msgid "labels.feedback-sent" msgstr "Geri bildirim gönderildi" +#: src/app/main/ui/onboarding/questions.cljs:170 +msgid "labels.figma" +msgstr "Figma" + +#: src/app/main/ui/dashboard/fonts.cljs:412 msgid "labels.font-family" msgstr "Yazı Tipi Ailesi" +#, unused msgid "labels.font-providers" msgstr "Yazı tipi sağlayıcıları" +#: src/app/main/ui/dashboard/fonts.cljs:413 msgid "labels.font-variants" msgstr "Biçimler" +#: src/app/main/ui/dashboard/fonts.cljs:52, src/app/main/ui/dashboard/sidebar.cljs:811 msgid "labels.fonts" msgstr "Yazı tipleri" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/onboarding/questions.cljs:263 +msgid "labels.founder" +msgstr "Kurucu/Başkan Yardımcısı" + +#: src/app/main/ui/onboarding/questions.cljs:262 +msgid "labels.freelancer" +msgstr "Serbest çalışıyorum" + +#: src/app/main/ui/dashboard/sidebar.cljs:1015, src/app/main/ui/workspace/main_menu.cljs:142 msgid "labels.github-repo" msgstr "Github deposu" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/settings/sidebar.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:1032, src/app/main/ui/settings/sidebar.cljs:113, src/app/main/ui/workspace/main_menu.cljs:171 msgid "labels.give-feedback" msgstr "Geri bildirimde bulun" +#: src/app/main/ui/auth/recovery_request.cljs:110, src/app/main/ui/auth/register.cljs:285, src/app/main/ui/viewer/login.cljs:117 msgid "labels.go-back" msgstr "Geri dön" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:978, src/app/main/ui/workspace/main_menu.cljs:102 msgid "labels.help-center" msgstr "Yardım Merkezi" -#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/comments.cljs:103, src/app/main/ui/workspace/comments.cljs:67 msgid "labels.hide-resolved-comments" msgstr "Çözülmüş yorumları gizle" +#: src/app/main/ui/dashboard/team.cljs:969 msgid "labels.inactive" msgstr "Etkin değil" +#: src/app/main/ui/dashboard/fonts.cljs:410 msgid "labels.installed-fonts" msgstr "Kurulu yazı tipleri" -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:144 msgid "labels.internal-error.desc-message" msgstr "" "Kötü bir şey oldu. Lütfen işlemi yeniden deneyin ve sorun devam ederse " "destek ile iletişime geçin." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:143 msgid "labels.internal-error.main-message" msgstr "İç Hata" -#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/onboarding/questions.cljs:178 +msgid "labels.invision" +msgstr "InVision" + +#: src/app/main/ui/dashboard/sidebar.cljs:516, src/app/main/ui/dashboard/team.cljs:89, src/app/main/ui/dashboard/team.cljs:97, src/app/main/ui/dashboard/team.cljs:708 msgid "labels.invitations" msgstr "Davetler" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:51 msgid "labels.language" msgstr "Dil" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:1008, src/app/main/ui/workspace/main_menu.cljs:134 msgid "labels.libraries-and-templates" msgstr "Kütüphaneler ve Şablonlar" +#: src/app/main/ui/viewer/header.cljs:203 msgid "labels.log-or-sign" msgstr "Oturum açın veya kaydolun" -#: src/app/main/ui/settings.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:1040 msgid "labels.logout" msgstr "Oturumu kapat" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/onboarding/questions.cljs:253 +msgid "labels.marketing" +msgstr "Pazarlama" + +#: src/app/main/ui/dashboard/team.cljs:468 msgid "labels.member" msgstr "Üye" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:510, src/app/main/ui/dashboard/team.cljs:87, src/app/main/ui/dashboard/team.cljs:95 msgid "labels.members" msgstr "Üyeler" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:96 msgid "labels.new-password" msgstr "Yeni parola" -#: src/app/main/ui/workspace/comments.cljs, -#: src/app/main/ui/dashboard/comments.cljs +#: src/app/main/ui/dashboard/templates.cljs:269, src/app/main/ui/onboarding/questions.cljs:55 +msgid "labels.next" +msgstr "Sonraki" + +#: src/app/main/ui/dashboard/comments.cljs:128, src/app/main/ui/workspace/comments.cljs:161 msgid "labels.no-comments-available" msgstr "Hepsini bitirdiniz! Yeni yorum bildirimleri burada görünecektir." -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:694 msgid "labels.no-invitations" msgstr "Bekleyen davetiye yok." -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:696 +#, markdown msgid "labels.no-invitations-hint" msgstr "" "Kişileri bu takıma davet etmek için **İnsanları davet et** düğmesine " "tıklayın." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:50 msgid "labels.not-found.desc-message" msgstr "Bu sayfa mevcut olmayabilir veya erişim izniniz olmayabilir." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:49 msgid "labels.not-found.main-message" msgstr "Oops!" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/projects.cljs:239, src/app/main/ui/dashboard/team.cljs:1095 msgid "labels.num-of-files" msgid_plural "labels.num-of-files" msgstr[0] "1 dosya" msgstr[1] "%s dosya" +#: src/app/main/ui/viewer/thumbnails.cljs:80 msgid "labels.num-of-frames" msgid_plural "labels.num-of-frames" msgstr[0] "1 çalışma yüzeyi" msgstr[1] "%s çalışma yüzeyi" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1090 msgid "labels.num-of-projects" msgid_plural "labels.num-of-projects" msgstr[0] "1 proje" msgstr[1] "%s proje" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:89 msgid "labels.old-password" msgstr "Eski parola" #: src/app/main/ui/workspace/comments.cljs +#, unused msgid "labels.only-yours" msgstr "Sadece seninkiler" +#, unused msgid "labels.or" msgstr "veya" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/onboarding/questions.cljs:145, src/app/main/ui/onboarding/questions.cljs:214, src/app/main/ui/onboarding/questions.cljs:303, src/app/main/ui/onboarding/questions.cljs:316, src/app/main/ui/onboarding/questions.cljs:389, src/app/main/ui/onboarding/questions.cljs:447 +msgid "labels.other" +msgstr "Diğer (lütfen belirtiniz)" + +#: src/app/main/ui/dashboard/team.cljs:286, src/app/main/ui/dashboard/team.cljs:518, src/app/main/ui/dashboard/team.cljs:1076 msgid "labels.owner" msgstr "Sahip" -#: src/app/main/ui/settings/sidebar.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/settings/sidebar.cljs:87 msgid "labels.password" msgstr "Parola" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:662 msgid "labels.pending-invitation" msgstr "Bekliyor" -#: src/app/main/ui/settings/sidebar.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/onboarding/questions.cljs:51 +msgid "labels.previous" +msgstr "Önceki" + +#: src/app/main/ui/onboarding/questions.cljs:254 +msgid "labels.product-management" +msgstr "Ürün veya Proje yöneticisi" + +#: src/app/main/ui/settings/profile.cljs:118, src/app/main/ui/settings/sidebar.cljs:82 msgid "labels.profile" msgstr "Profil" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:784 msgid "labels.projects" msgstr "Projeler" -#: src/app/main/ui/settings/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:998, src/app/main/ui/settings/sidebar.cljs:106, src/app/main/ui/workspace/main_menu.cljs:126 msgid "labels.release-notes" msgstr "Sürüm notları" #: src/app/main/ui/workspace.cljs +#, unused msgid "labels.reload-file" msgstr "Dosyayı yeniden yükle" -#: src/app/main/ui/workspace/libraries.cljs, -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/workspace/libraries.cljs, src/app/main/ui/dashboard/team.cljs +#, unused msgid "labels.remove" msgstr "Kaldır" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:316 msgid "labels.remove-member" msgstr "Üyeyi kaldır" -#: src/app/main/ui/dashboard/sidebar.cljs, -#: src/app/main/ui/dashboard/project_menu.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:271, src/app/main/ui/dashboard/project_menu.cljs:85, src/app/main/ui/dashboard/sidebar.cljs:539, src/app/main/ui/workspace/sidebar/assets/groups.cljs:157 msgid "labels.rename" msgstr "Yeniden adlandır" -#: src/app/main/ui/dashboard/team_form.cljs +#: src/app/main/ui/dashboard/team_form.cljs:99 msgid "labels.rename-team" msgstr "Takımı yeniden adlandır" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:645 msgid "labels.resend-invitation" msgstr "Daveti yeniden gönder" -#: src/app/main/ui/static.cljs, src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:61, src/app/main/ui/static.cljs:70, src/app/main/ui/static.cljs:148 msgid "labels.retry" msgstr "Yeniden dene" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:469, src/app/main/ui/dashboard/team.cljs:709 msgid "labels.role" msgstr "Rol" +#: src/app/main/ui/dashboard/fonts.cljs:380, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:191 msgid "labels.save" msgstr "Kaydet" +#: src/app/main/ui/onboarding/questions.cljs:414, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:436 msgid "labels.search" msgstr "Ara" +#: src/app/main/ui/dashboard/fonts.cljs:415 msgid "labels.search-font" msgstr "Yazı tipi ara" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/onboarding/questions.cljs:90, src/app/main/ui/onboarding/questions.cljs:248, src/app/main/ui/onboarding/questions.cljs:259, src/app/main/ui/onboarding/questions.cljs:270 +msgid "labels.select-option" +msgstr "Bir seçenek belirleyin" + +#: src/app/main/ui/settings/feedback.cljs:82 msgid "labels.send" msgstr "Gönder" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:82 msgid "labels.sending" msgstr "Gönderiliyor…" -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:68 msgid "labels.service-unavailable.desc-message" msgstr "Sistemlerimizin programlı bakımını yapıyoruz." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:67 msgid "labels.service-unavailable.main-message" msgstr "Hizmet Kullanılamıyor" -#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:530, src/app/main/ui/dashboard/team.cljs:88, src/app/main/ui/dashboard/team.cljs:102, src/app/main/ui/settings/options.cljs:84, src/app/main/ui/settings/sidebar.cljs:93 msgid "labels.settings" msgstr "Ayarlar" +#: src/app/main/ui/viewer/header.cljs:199 msgid "labels.share" msgstr "Paylaş" -#: src/app/main/ui/viewer/header.cljs, src/app/main/ui/viewer/header.cljs +#, unused msgid "labels.share-prototype" msgstr "Prototipi paylaş" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:800 msgid "labels.shared-libraries" msgstr "Paylaşılan Kütüphaneler" -#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/comments.cljs:82, src/app/main/ui/workspace/comments.cljs:55, src/app/main/ui/workspace/comments.cljs:135 msgid "labels.show-all-comments" msgstr "Tüm yorumları göster" +#: src/app/main/ui/viewer/comments.cljs:115 msgid "labels.show-comments-list" msgstr "Yorum listesini göster" -#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/comments.cljs:91, src/app/main/ui/workspace/comments.cljs:61, src/app/main/ui/workspace/comments.cljs:136 msgid "labels.show-your-comments" msgstr "Yalnızca kendi yorumlarımı göster" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/onboarding/questions.cljs:172 +msgid "labels.sketch" +msgstr "Sketch" + +#: src/app/main/ui/onboarding/questions.cljs:56 +msgid "labels.start" +msgstr "Başla" + +#: src/app/main/ui/dashboard/team.cljs:710 msgid "labels.status" msgstr "Durum" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/onboarding/questions.cljs:251 +msgid "labels.student-teacher" +msgstr "Öğrenci veya öğretmen" + +#: src/app/main/ui/dashboard/sidebar.cljs:992, src/app/main/ui/workspace/main_menu.cljs:118 msgid "labels.tutorials" msgstr "Öğreticiler" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:256 msgid "labels.unpublish-multi-files" msgstr "%s dosyayı yayından kaldır" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:103 msgid "labels.update" msgstr "Güncelle" -#: src/app/main/ui/dashboard/team_form.cljs +#: src/app/main/ui/dashboard/team_form.cljs:120 msgid "labels.update-team" msgstr "Takımı güncelle" +#: src/app/main/ui/dashboard/fonts.cljs:241 msgid "labels.upload" msgstr "Yükle" +#: src/app/main/ui/dashboard/fonts.cljs:169 msgid "labels.upload-custom-fonts" msgstr "Özel yazı tipi yükle" +#: src/app/main/ui/dashboard/fonts.cljs:240 msgid "labels.uploading" msgstr "Yükleniyor…" +#: src/app/main/ui/workspace/sidebar/sitemap.cljs:223 msgid "labels.view-only" msgstr "YALNIZCA GÖRÜNTÜLE" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:123, src/app/main/ui/dashboard/team.cljs:282, src/app/main/ui/dashboard/team.cljs:521 msgid "labels.viewer" msgstr "Görüntüleyici" +#: src/app/main/ui/dashboard/sidebar.cljs:523, src/app/main/ui/dashboard/team.cljs:90, src/app/main/ui/dashboard/team.cljs:100, src/app/main/ui/dashboard/team.cljs:880 msgid "labels.webhooks" msgstr "Web kancaları" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:194 msgid "labels.write-new-comment" msgstr "Yeni yorum yaz" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/team.cljs:237 msgid "labels.you" msgstr "(siz)" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:968 msgid "labels.your-account" msgstr "Hesabınız" +#: src/app/main/ui/workspace/colorpicker.cljs:297, src/app/main/ui/workspace/colorpicker.cljs:298, src/app/main/ui/workspace/colorpicker.cljs:300 msgid "media.choose-image" msgstr "Görsel seç" +#, unused msgid "media.gradient" msgstr "Değişim" +#: src/app/main/data/workspace/media.cljs:275, src/app/main/ui/components/color_bullet.cljs:32, src/app/main/ui/components/color_bullet.cljs:45, src/app/main/ui/viewer/inspect/attributes/common.cljs:66, src/app/main/ui/workspace/colorpicker.cljs:211, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:237 msgid "media.image" msgstr "Görsel" +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:77 msgid "media.image.short" msgstr "görsel" +#: src/app/main/ui/workspace/colorpicker.cljs:290 msgid "media.keep-aspect-ratio" msgstr "En boy oranını koru" +#: src/app/main/ui/workspace/colorpicker.cljs:208 msgid "media.linear" msgstr "Doğrusal" -#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs +#: src/app/main/data/media.cljs:49, src/app/main/data/workspace/media.cljs:223, src/app/main/data/workspace/media.cljs:453 msgid "media.loading" msgstr "Görsel yükleniyor…" +#: src/app/main/ui/workspace/colorpicker.cljs:209 msgid "media.radial" msgstr "Işınsal" +#: src/app/main/ui/workspace/colorpicker.cljs:206 msgid "media.solid" msgstr "Katı" +#: src/app/main/data/common.cljs:111 msgid "modals.add-shared-confirm-empty.hint" msgstr "" "Kütüphaneniz boş. Paylaşılan Kütüphane olarak eklendiğinde, oluşturduğunuz " "varlıklar diğer dosyalarınız arasında kullanılabilir olacak. Yayınlamak " "istediğinizden emin misiniz?" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/data/common.cljs:113 msgid "modals.add-shared-confirm.accept" msgstr "Paylaşılmış Kütüphane olarak Ekle" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/data/common.cljs:111 msgid "modals.add-shared-confirm.hint" msgstr "" "Paylaşılmış Kütüphane olarak eklenince, bu dosya kütüphanesindeki varlıklar " "diğer dosyalarınızdan da ulaşılabilecek." -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/data/common.cljs:110 msgid "modals.add-shared-confirm.message" msgstr "Paylaşılmış Kütüphane olarak “%s” Ekle" -#: src/app/main/ui/workspace/nudge.cljs +#: src/app/main/ui/workspace/nudge.cljs:60 msgid "modals.big-nudge" msgstr "Büyük dürtme" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:127 msgid "modals.change-email.confirm-email" msgstr "Yeni e-postayı doğrulayın" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:114 msgid "modals.change-email.info" msgstr "" "“%s” e-posta adresinize kimliğinizi doğrulamak için bir e-posta " "göndereceğiz." -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:119 msgid "modals.change-email.new-email" msgstr "Yeni e-posta" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:136 msgid "modals.change-email.submit" msgstr "E-postayı değiştir" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:107 msgid "modals.change-email.title" msgstr "E-postanızı değiştirin" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:165, src/app/main/ui/settings/access_tokens.cljs:171 msgid "modals.create-access-token.copy-token" msgstr "Belirteci kopyala" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:142 msgid "modals.create-access-token.expiration-date.label" msgstr "Sona erme tarihi" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:136 msgid "modals.create-access-token.name.label" msgstr "İsim" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:138 msgid "modals.create-access-token.name.placeholder" msgstr "Adı, belirtecin ne için olduğunu bilmenize yardımcı olabilir" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:191 msgid "modals.create-access-token.submit-label" msgstr "Belirteç oluştur" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:123 msgid "modals.create-access-token.title" msgstr "Erişim belirteci oluştur" +#: src/app/main/ui/dashboard/team.cljs:873 msgid "modals.create-webhook.submit-label" msgstr "Web kancası oluştur" +#: src/app/main/ui/dashboard/team.cljs:838 msgid "modals.create-webhook.title" msgstr "Web kancası oluştur" +#: src/app/main/ui/dashboard/team.cljs:849 msgid "modals.create-webhook.url.label" msgstr "Yük URL'si" +#: src/app/main/ui/dashboard/team.cljs:850 msgid "modals.create-webhook.url.placeholder" msgstr "https://example.com/postreceive" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:271 msgid "modals.delete-acces-token.accept" msgstr "Belirteci sil" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:270 msgid "modals.delete-acces-token.message" msgstr "Bu belirteci silmek istediğinizden emin misiniz?" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:269 msgid "modals.delete-acces-token.title" msgstr "Belirteci sil" -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:59 msgid "modals.delete-account.cancel" msgstr "İptal et ve hesabımı koru" -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:64 msgid "modals.delete-account.confirm" msgstr "Evet, hesabımı sil" -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:53 msgid "modals.delete-account.info" msgstr "Hesabını silerek tüm projelerini ve arşivlerini kaybedeceksin." -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:46 msgid "modals.delete-account.title" msgstr "Hesabını silmek istediğinden emin misin?" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:298 msgid "modals.delete-comment-thread.accept" msgstr "Konuşmayı sil" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:297 msgid "modals.delete-comment-thread.message" msgstr "" "Bu konuşmayı silmek istediğinden emin misin? Konudaki tüm yorumlar " "silinecek." -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:296 msgid "modals.delete-comment-thread.title" msgstr "Konuşmayı sil" +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:140 msgid "modals.delete-component-annotation.message" msgstr "Bu açıklamayı silmek istediğinize emin misiniz?" +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:139 msgid "modals.delete-component-annotation.title" msgstr "Açıklamayı sil" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:123 msgid "modals.delete-file-confirm.accept" msgstr "Dosyayı sil" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:122 msgid "modals.delete-file-confirm.message" msgstr "Bu dosyayı silmek istediğinden emin misin?" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:121 msgid "modals.delete-file-confirm.title" msgstr "Dosya siliniyor" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:117 msgid "modals.delete-file-multi-confirm.accept" msgstr "Dosyaları sil" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:116 msgid "modals.delete-file-multi-confirm.message" msgstr "%s dosyayı silmek istediğinden emin misin?" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:115 msgid "modals.delete-file-multi-confirm.title" msgstr "%s dosyayı sil" +#: src/app/main/ui/dashboard/fonts.cljs:345 msgid "modals.delete-font-variant.message" msgstr "" "Bu yazı tipi biçimini silmek istediğinizden emin misiniz? Bir dosyada " "kullanılıyorsa yüklenmeyecektir." +#: src/app/main/ui/dashboard/fonts.cljs:344 msgid "modals.delete-font-variant.title" msgstr "Yazı tipi biçimini sil" +#: src/app/main/ui/dashboard/fonts.cljs:331 msgid "modals.delete-font.message" msgstr "" "Bu yazı tipini silmek istediğinize emin misiniz? Bir dosyada kullanılıyorsa " "yüklenmeyecektir." +#: src/app/main/ui/dashboard/fonts.cljs:330 msgid "modals.delete-font.title" msgstr "Yazı tipini sil" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs +#: src/app/main/ui/workspace/context_menu.cljs:522, src/app/main/ui/workspace/sidebar/sitemap.cljs:45 msgid "modals.delete-page.body" msgstr "Bu sayfayı silmek istediğinden emin misin?" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs +#: src/app/main/ui/workspace/context_menu.cljs:521, src/app/main/ui/workspace/sidebar/sitemap.cljs:44 msgid "modals.delete-page.title" msgstr "Sayfayı sil" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:69 msgid "modals.delete-project-confirm.accept" msgstr "Projeyi sil" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:68 msgid "modals.delete-project-confirm.message" msgstr "Bu projeyi silmek istediğinden emin misin?" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:67 msgid "modals.delete-project-confirm.title" msgstr "Projeyi sil" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:51 msgid "modals.delete-shared-confirm.accept" msgid_plural "modals.delete-shared-confirm.accept" msgstr[0] "Dosyayı sil" msgstr[1] "Dosyaları sil" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:55 msgid "modals.delete-shared-confirm.activated.no-files-message" msgid_plural "modals.delete-shared-confirm.activated.no-files-message" msgstr[0] "Hiçbir dosyada etkinleştirilmedi." msgstr[1] "Hiçbir dosyada etkinleştirilmediler." -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:57 msgid "modals.delete-shared-confirm.activated.scd-message" msgid_plural "modals.delete-shared-confirm.activated.scd-message" msgstr[0] "Bu kütüphane burada etkinleştirildi: " msgstr[1] "Bu kütüphaneler burada etkinleştirildiler: " -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:46 msgid "modals.delete-shared-confirm.message" msgid_plural "modals.delete-shared-confirm.message" msgstr[0] "Bu dosyayı silmek istediğinizden emin misiniz?" msgstr[1] "Bu dosyaları silmek istediğinizden emin misiniz?" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:41 msgid "modals.delete-shared-confirm.title" msgid_plural "modals.delete-shared-confirm.title" msgstr[0] "Dosya siliniyor" msgstr[1] "Dosyalar siliniyor" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:435 msgid "modals.delete-team-confirm.accept" msgstr "Takımı sil" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:434 msgid "modals.delete-team-confirm.message" msgstr "" "Bu takımı silmek istediğinden emin misin? Takımla ilişkili dosyalar ve " "projeler kalıcı olarak silinecektir." -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:433 msgid "modals.delete-team-confirm.title" msgstr "Takım siliniyor" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:427 msgid "modals.delete-team-member-confirm.accept" msgstr "Üyeyi sil" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:426 msgid "modals.delete-team-member-confirm.message" msgstr "Bu üyeyi takımdan silmek istediğinden emin misin?" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:425 msgid "modals.delete-team-member-confirm.title" msgstr "Takım üyesini sil" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:59 msgid "modals.delete-unpublish-shared-confirm.activated.hint" msgid_plural "modals.delete-unpublish-shared-confirm.activated.hint" msgstr[0] "" @@ -2053,3160 +2264,3506 @@ msgstr[1] "" "Bu dosyalarda daha önce kullanılmış olan varlıklar orada kalmaya devam " "edecek (hiçbir tasarım bozulmayacak)." +#: src/app/main/ui/dashboard/team.cljs:942 msgid "modals.delete-webhook.accept" msgstr "Web kancasını sil" +#: src/app/main/ui/dashboard/team.cljs:941 msgid "modals.delete-webhook.message" msgstr "Bu web kancasını silmek istediğinizden emin misiniz?" +#: src/app/main/ui/dashboard/team.cljs:940 msgid "modals.delete-webhook.title" msgstr "Web kancası siliniyor" +#: src/app/main/ui/dashboard/team.cljs:872 msgid "modals.edit-webhook.submit-label" msgstr "Web kancasını düzenle" +#: src/app/main/ui/dashboard/team.cljs:837 msgid "modals.edit-webhook.title" msgstr "Web kancasını düzenle" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:218 msgid "modals.invite-member-confirm.accept" msgstr "Davet gönder" +#: src/app/main/ui/dashboard/team.cljs:213, src/app/main/ui/onboarding/team_choice.cljs:156 msgid "modals.invite-member.emails" msgstr "E-posta adresleri, virgülle ayrılmış" +#: src/app/main/ui/dashboard/team.cljs:197 msgid "modals.invite-member.repeated-invitation" msgstr "" "Bazı e-posta adresleri mevcut takım üyelerine aittir. Davetleri " "gönderilmeyecektir." -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:190 msgid "modals.invite-team-member.title" msgstr "Üyeleri takıma davet et" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:423, src/app/main/ui/dashboard/team.cljs:393 msgid "modals.leave-and-close-confirm.hint" msgstr "" "Tek üyesi siz olduğunuz için takım, projeleri ve dosyaları ile birlikte " "silinecektir." -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:422, src/app/main/ui/dashboard/team.cljs:392 msgid "modals.leave-and-close-confirm.message" msgstr "%s takımından ayrılmak istediğinizden emin misiniz?" +#: src/app/main/ui/dashboard/change_owner.cljs:59 msgid "modals.leave-and-reassign.forbidden" msgstr "" "Birisini takımın sahibi yapmadan takımı bırakamazsın. Takımı silmek " "isteyebilirsin." -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/change_owner.cljs:55 msgid "modals.leave-and-reassign.hint1" msgstr "" "Bu takımın sahibi sizsiniz. Lütfen ayrılmadan önce sahibi olarak belirlemek " "için başka bir üye seçin." -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/change_owner.cljs:78 msgid "modals.leave-and-reassign.promote-and-leave" msgstr "Terfi ettir ve ayrıl" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/change_owner.cljs:34 msgid "modals.leave-and-reassign.select-member-to-promote" msgstr "Terfi ettirmek için bir üye seçin" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/change_owner.cljs:49 msgid "modals.leave-and-reassign.title" msgstr "Ayrılmadan önce" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:402, src/app/main/ui/dashboard/sidebar.cljs:424, src/app/main/ui/dashboard/team.cljs:394, src/app/main/ui/dashboard/team.cljs:416 msgid "modals.leave-confirm.accept" msgstr "Takımdan ayrıl" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:401, src/app/main/ui/dashboard/team.cljs:415 msgid "modals.leave-confirm.message" msgstr "Bu takımdan ayrılmak istediğinden emin misin?" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:400, src/app/main/ui/dashboard/sidebar.cljs:421, src/app/main/ui/dashboard/team.cljs:391, src/app/main/ui/dashboard/team.cljs:414 msgid "modals.leave-confirm.title" msgstr "Takımdan ayrıl" +#: src/app/main/ui/delete_shared.cljs:53 msgid "modals.move-shared-confirm.accept" msgid_plural "modals.move-shared-confirm.accept" msgstr[0] "Taşı" msgstr[1] "Taşı" +#: src/app/main/ui/delete_shared.cljs:48 msgid "modals.move-shared-confirm.message" msgid_plural "modals.move-shared-confirm.message" msgstr[0] "Bu kütüphaneyi taşımak istediğinizden emin misiniz?" msgstr[1] "Bu kütüphaneleri taşımak istediğinizden emin misiniz?" +#: src/app/main/ui/delete_shared.cljs:43 msgid "modals.move-shared-confirm.title" msgid_plural "modals.move-shared-confirm.title" msgstr[0] "Kütüphaneyi taşı" msgstr[1] "Kütüphaneleri taşı" -#: src/app/main/ui/workspace/nudge.cljs +#: src/app/main/ui/workspace/main_menu.cljs:266, src/app/main/ui/workspace/nudge.cljs:47 msgid "modals.nudge-title" msgstr "Dürtme miktarı" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:340 msgid "modals.promote-owner-confirm.accept" msgstr "Sahipliği aktar" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:339 msgid "modals.promote-owner-confirm.hint" msgstr "" "Sahipliği aktarırsanız, rolünüzü Yönetici olarak değiştireceksiniz ve bu " "takım üzerindeki bazı izinleri kaybedeceksiniz. " -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:338 msgid "modals.promote-owner-confirm.message" msgstr "" "Bu takımın şu anki sahibi sizsiniz. %s kişisini takımın yeni sahibi yapmak " "istediğinizden emin misiniz?" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:337 msgid "modals.promote-owner-confirm.title" msgstr "Yeni takım sahibi" +#: src/app/main/ui/workspace/libraries.cljs:188 msgid "modals.publish-empty-library.accept" msgstr "Yayınla" +#: src/app/main/ui/workspace/libraries.cljs:187 msgid "modals.publish-empty-library.message" msgstr "Kütüphaneniz boş. Yine de yayınlamak istediğinizden emin misiniz?" +#: src/app/main/ui/workspace/libraries.cljs:186 msgid "modals.publish-empty-library.title" msgstr "Boş kütüphaneyi yayınla" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "modals.remove-shared-confirm.accept" msgstr "Paylaşılan Kütüphane olarak kaldır" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "modals.remove-shared-confirm.hint" msgstr "" "Paylaşılan Kütüphane olarak kaldırıldıktan sonra, bu dosyanın Dosya " "Kütüphanesi, dosyalarınızın geri kalanında artık kullanılabilir olmayacak." -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "modals.remove-shared-confirm.message" msgstr "“%s” Paylaşılan Kütüphanesini Kaldır" -#: src/app/main/ui/workspace/nudge.cljs +#: src/app/main/ui/workspace/nudge.cljs:53 msgid "modals.small-nudge" msgstr "Küçük dürtme" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:52 msgid "modals.unpublish-shared-confirm.accept" msgid_plural "modals.unpublish-shared-confirm.accept" msgstr[0] "Yayından kaldır" msgstr[1] "Yayından kaldır" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:47 msgid "modals.unpublish-shared-confirm.message" msgid_plural "modals.unpublish-shared-confirm.message" msgstr[0] "Bu kütüphaneyi yayından kaldırmak istediğinizden emin misiniz?" msgstr[1] "Bu kütüphaneleri yayından kaldırmak istediğinizden emin misiniz?" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:42 msgid "modals.unpublish-shared-confirm.title" msgid_plural "modals.unpublish-shared-confirm.title" msgstr[0] "Kütüphaneyi yayından kaldır" msgstr[1] "Kütüphaneleri yayından kaldır" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#, unused msgid "modals.update-remote-component-in-bulk.hint" msgstr "" "Paylaşılan bir kütüphanedeki bileşenleri güncellemek üzeresiniz. Bu, onu " "kullanan diğer dosyaları etkileyebilir." -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#, unused msgid "modals.update-remote-component-in-bulk.message" msgstr "Paylaşılan bir kütüphanedeki bileşenleri güncelle" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:380 msgid "modals.update-remote-component.accept" msgstr "Güncelle" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:379 msgid "modals.update-remote-component.cancel" msgstr "İptal" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:378 msgid "modals.update-remote-component.hint" msgstr "" "Paylaşılmış bir kütüphanedeki bileşeni güncellemek üzeresin. Onu kullanan " "diğer dosyalar etkilenebilir." -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:377 msgid "modals.update-remote-component.message" msgstr "Paylaşılmış bir kütüphanede bir bileşen güncelle" -#: src/app/main/data/common.cljs +#: src/app/main/data/common.cljs:71 msgid "notifications.by-code.upgrade-version" msgstr "Yeni bir sürüm mevcut, lütfen sayfayı yenileyin" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:154, src/app/main/ui/dashboard/team.cljs:595 msgid "notifications.invitation-email-sent" msgstr "Davet başarıyla iletildi" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:616 msgid "notifications.invitation-link-copied" msgstr "Davet bağlantısı kopyalandı" -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:24 msgid "notifications.profile-deletion-not-allowed" msgstr "Profilinizi silemezsiniz. Devam etmeden önce takımlarınızı birine atayın." -#: src/app/main/ui/settings/profile.cljs, src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:29, src/app/main/ui/settings/profile.cljs:35 msgid "notifications.profile-saved" msgstr "Profil başarıyla kaydedildi!" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:63 msgid "notifications.validation-email-sent" msgstr "%s adresine doğrulama e-postası gönderildi. E-posta kutunuza bakın!" +#, unused msgid "onboarding-v2.before-start.desc1" msgstr "" "Kullanıcı Kılavuzu ve Youtube kanalımız gibi Penpot'u kullanmaya " "başlamanıza yardımcı olacak birçok kaynak olduğunu bilmelisiniz." +#, unused msgid "onboarding-v2.before-start.desc2" msgstr "" "Penpot'un nasıl kullanılacağı hakkında ayrıntılı bilgi. Prototiplemeden " "tasarımları düzenlemeye veya paylaşmaya kadar." +#, unused msgid "onboarding-v2.before-start.desc2.title" msgstr "Kullanıcı kılavuzu" +#, unused msgid "onboarding-v2.before-start.desc3" msgstr "Bizim ve topluluğumuz tarafından hazırlanan öğreticileri izleyebilirsiniz." +#, unused msgid "onboarding-v2.before-start.desc3.title" msgstr "Video öğreticiler" +#, unused msgid "onboarding-v2.before-start.title" msgstr "Başlamadan önce" +#: src/app/main/ui/onboarding/newsletter.cljs:63 msgid "onboarding-v2.newsletter.desc" msgstr "" "Ürün geliştirme sürecinden ve haberlerden haberdar olmak için Penpot " "bültenine abone olun." +#: src/app/main/ui/onboarding/newsletter.cljs:83 msgid "onboarding-v2.newsletter.news" msgstr "" "Bana Penpot hakkında haberler gönder (blog gönderileri, video öğreticiler, " "yayınlar...)." +#: src/app/main/ui/onboarding/newsletter.cljs:91 msgid "onboarding-v2.newsletter.privacy1" msgstr "Gizliliğe önem veriyoruz, buradan okuyabilirsiniz. " +#: src/app/main/ui/onboarding/newsletter.cljs:97 msgid "onboarding-v2.newsletter.privacy2" msgstr "" "Size yalnızca ilgili e-postaları göndereceğiz. Bültenlerimizden herhangi " "birindeki abonelikten çıkma bağlantısını kullanarak istediğiniz zaman " "aboneliğinizi iptal edebilirsiniz." +#: src/app/main/ui/onboarding/newsletter.cljs:71 msgid "onboarding-v2.newsletter.updates" msgstr "Bana ürün güncellemeleri gönder (yeni özellikler, sürümler, düzeltmeler...)." +#, unused msgid "onboarding-v2.welcome.desc1" msgstr "" "Penpot açık kaynaklıdır ve Kaleidos'un yanı sıra birçok insanın birbirine " "yardım ettiği topluluk tarafından yapılmıştır. Herkes işbirliğine " "katılabilir:" +#, unused msgid "onboarding-v2.welcome.desc2" msgstr "" "Tüm topluluk ve Penpot çekirdek takımı ile Penpot, bugünü ve geleceği " "hakkında bilgi edinmek, paylaşmak ve tartışmak için herkese açık bir alan." +#, unused msgid "onboarding-v2.welcome.desc2.title" msgstr "Topluluğa Katılım" +#, unused msgid "onboarding-v2.welcome.desc3" msgstr "" "Çeviriler, özellik istekleri, temel katkılar, hata avı ile nasıl işbirliği " "yapacağınızı bulacağınız yer…" +#, unused msgid "onboarding-v2.welcome.desc3.title" msgstr "Katkıda bulunma kılavuzu" +#: src/app/main/ui/onboarding/team_choice.cljs:31 msgid "onboarding-v2.welcome.title" msgstr "Penpot'a hoş geldiniz!" +#: src/app/main/ui/onboarding/team_choice.cljs:229 msgid "onboarding.choice.team-up.continue-creating-team" msgstr "Takım oluşturmaya devam edin" +#: src/app/main/ui/onboarding/team_choice.cljs:239 msgid "onboarding.choice.team-up.continue-without-a-team" msgstr "Takım olmadan devam edin" +#: src/app/main/ui/onboarding/team_choice.cljs:167 msgid "onboarding.choice.team-up.create-team-and-invite" msgstr "Takım oluşturun ve davet edin" +#, unused msgid "onboarding.choice.team-up.create-team-and-send-invites" msgstr "Takım oluşturun ve davet gönderin" +#: src/app/main/ui/onboarding/team_choice.cljs:170 msgid "onboarding.choice.team-up.create-team-and-send-invites-description" msgstr "Daha sonra davet edebileceksiniz" +#: src/app/main/ui/onboarding/team_choice.cljs:215 msgid "onboarding.choice.team-up.create-team-desc" msgstr "Takımınızı adlandırdıktan sonra, insanları katılmaya davet edebileceksiniz." +#: src/app/main/ui/onboarding/team_choice.cljs:224 msgid "onboarding.choice.team-up.create-team-placeholder" msgstr "Takımın adını girin" +#: src/app/main/ui/onboarding/team_choice.cljs:168 msgid "onboarding.choice.team-up.create-team-without-invite" msgstr "Takım oluşturun" +#, unused msgid "onboarding.choice.team-up.create-team-without-inviting" msgstr "Davet etmeden takım oluşturun" +#: src/app/main/ui/dashboard/projects.cljs:89, src/app/main/ui/onboarding/team_choice.cljs:140 msgid "onboarding.choice.team-up.invite-members" msgstr "Üyeleri davet edin" +#: src/app/main/ui/onboarding/team_choice.cljs:141 msgid "onboarding.choice.team-up.invite-members-info" msgstr "" "Herkesi dahil etmeyi unutmayın. Geliştiriciler, tasarımcılar, " "yöneticiler... çeşitlilik iyidir :)" +#: src/app/main/ui/dashboard/team.cljs:202, src/app/main/ui/onboarding/team_choice.cljs:146 msgid "onboarding.choice.team-up.roles" msgstr "Rol ile davet et:" +#: src/app/main/ui/onboarding/team_choice.cljs:232 msgid "onboarding.choice.team-up.start-without-a-team" msgstr "Takım olmadan başlayın" +#: src/app/main/ui/onboarding/team_choice.cljs:234 msgid "onboarding.choice.team-up.start-without-a-team-description" msgstr "Daha sonra bir takım oluşturabileceksiniz." +#, unused msgid "onboarding.newsletter.accept" msgstr "Evet, abone ol" +#: src/app/main/ui/onboarding/newsletter.cljs:40 msgid "onboarding.newsletter.acceptance-message" msgstr "Abonelik talebiniz iletildi, size onaylamak için bir e-posta göndereceğiz." +#: src/app/main/ui/onboarding/newsletter.cljs:95 msgid "onboarding.newsletter.policy" msgstr "Gizlilik Politikası." +#: src/app/main/ui/onboarding/newsletter.cljs:60 msgid "onboarding.newsletter.title" msgstr "Penpot haberlerini almak ister misiniz?" +#: src/app/main/ui/onboarding/questions.cljs:118 +msgid "onboarding.questions.lets-get-started" +msgstr "Haydi başlayalım!" + +#: src/app/main/ui/onboarding/questions.cljs:307 +msgid "onboarding.questions.step3.question2" +msgstr "Göreviniz nedir?" + +#: src/app/main/ui/onboarding/questions.cljs:320 +msgid "onboarding.questions.step3.question3" +msgstr "Takımınızın büyüklüğü nedir?" + +#: src/app/main/ui/onboarding/questions.cljs:273 +msgid "onboarding.questions.team-size.11-30" +msgstr "11-30" + +#: src/app/main/ui/onboarding/questions.cljs:274 +msgid "onboarding.questions.team-size.2-10" +msgstr "2-10" + +#: src/app/main/ui/onboarding/questions.cljs:272 +msgid "onboarding.questions.team-size.31-50" +msgstr "31-50" + +#: src/app/main/ui/onboarding/questions.cljs:271 +msgid "onboarding.questions.team-size.more-than-50" +msgstr "50'den fazla" + +#: src/app/main/ui/onboarding/questions.cljs:276 +msgid "onboarding.questions.team-size.personal-project" +msgstr "Kendi projem üzerinde çalışıyorum" + +#: src/app/main/ui/onboarding/team_choice.cljs:213 msgid "onboarding.team-modal.create-team" msgstr "Bir takım oluştur" +#: src/app/main/ui/onboarding/team_choice.cljs:35 msgid "onboarding.team-modal.create-team-desc" msgstr "" "Takım, aynı dosya ve projelerde çalışan diğer Penpot kullanıcılarıyla " "işbirliği yapmanıza olanak tanır." +#: src/app/main/ui/onboarding/team_choice.cljs:40 msgid "onboarding.team-modal.create-team-feature-1" msgstr "Sınırsız dosya ve proje" +#: src/app/main/ui/onboarding/team_choice.cljs:44 msgid "onboarding.team-modal.create-team-feature-2" msgstr "Çok oyunculu sürüm" +#: src/app/main/ui/onboarding/team_choice.cljs:48 msgid "onboarding.team-modal.create-team-feature-3" msgstr "Rol yönetimi" +#: src/app/main/ui/onboarding/team_choice.cljs:52 msgid "onboarding.team-modal.create-team-feature-4" msgstr "Sınırsız üye" +#: src/app/main/ui/onboarding/team_choice.cljs:56 msgid "onboarding.team-modal.create-team-feature-5" msgstr "%100 özgür!" +#: src/app/main/ui/onboarding/team_choice.cljs:33 msgid "onboarding.team-modal.team-definition" msgstr "Takım nedir?" +#: src/app/main/ui/onboarding/templates.cljs:78 msgid "onboarding.templates.subtitle" msgstr "İşte bazı şablonlar." +#: src/app/main/ui/onboarding/templates.cljs:77 msgid "onboarding.templates.title" msgstr "Tasarlamaya başla" +#, unused msgid "onboarding.welcome.alt" msgstr "Penpot" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:99 msgid "profile.recovery.go-to-login" msgstr "Oturum açmaya git" -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.team-size.11-30" -msgstr "11-30" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.team-size.2-10" -msgstr "2-10" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.team-size.31-50" -msgstr "31-50" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.adobe-xd" -msgstr "Adobe XD" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.canva" -msgstr "Canva" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.developer" -msgstr "Geliştirici" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.figma" -msgstr "Figma" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.founder" -msgstr "Kurucu/Başkan Yardımcısı" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.freelancer" -msgstr "Serbest çalışıyorum" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.invision" -msgstr "InVision" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.lets-get-started" -msgstr "Haydi başlayalım!" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.product-management" -msgstr "Ürün veya Proje yöneticisi" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.marketing" -msgstr "Pazarlama" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.team-size.more-than-50" -msgstr "50'den fazla" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.next" -msgstr "Sonraki" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.other" -msgstr "Diğer (lütfen belirtiniz)" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.team-size.personal-project" -msgstr "Kendi projem üzerinde çalışıyorum" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.previous" -msgstr "Önceki" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.step3.question2" -msgstr "Göreviniz nedir?" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.select-option" -msgstr "Bir seçenek belirleyin" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.sketch" -msgstr "Sketch" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.start" -msgstr "Başla" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.student-teacher" -msgstr "Öğrenci veya öğretmen" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.step3.question3" -msgstr "Takımınızın büyüklüğü nedir?" - -#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, +#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:221 msgid "settings.detach" msgstr "Çıkar" -#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs +#: src/app/main/ui/viewer/inspect/exports.cljs:147, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:631, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:137, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:148, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:188, src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:158, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:399, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:410, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:430, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:441, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:458, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:472, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:309, src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:183, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:373, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:389, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:245, src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:172 msgid "settings.multiple" msgstr "Karışık" -#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:271 msgid "settings.select-this-color" msgstr "Bu biçimi kullanan ögeleri seç" # SECTIONS +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:414 msgid "shortcut-section.basics" msgstr "Temel bilgiler" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:420 msgid "shortcut-section.dashboard" msgstr "Denetim paneli" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:423 msgid "shortcut-section.viewer" msgstr "Görüntüleyici" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:417 msgid "shortcut-section.workspace" msgstr "Çalışma alanı" # SUBSECTIONS +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:56 msgid "shortcut-subsection.alignment" msgstr "Hizalama" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:57 msgid "shortcut-subsection.edit" msgstr "Düzenle" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:58 msgid "shortcut-subsection.general-dashboard" msgstr "Genel" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:59 msgid "shortcut-subsection.general-viewer" msgstr "Genel" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:60 msgid "shortcut-subsection.main-menu" msgstr "Ana menü" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:61 msgid "shortcut-subsection.modify-layers" msgstr "Katmanları değiştir" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:62 msgid "shortcut-subsection.navigation-dashboard" msgstr "Gezinme" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:63 msgid "shortcut-subsection.navigation-viewer" msgstr "Gezinme" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:64 msgid "shortcut-subsection.navigation-workspace" msgstr "Gezinme" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:65 msgid "shortcut-subsection.panels" msgstr "Paneller" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:66 msgid "shortcut-subsection.path-editor" msgstr "Yollar" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:67 msgid "shortcut-subsection.shape" msgstr "Şekiller" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:68 msgid "shortcut-subsection.text-editor" msgstr "Metinler" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:69 msgid "shortcut-subsection.tools" msgstr "Araçlar" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:70 msgid "shortcut-subsection.zoom-viewer" msgstr "Yakınlaştır" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:71 msgid "shortcut-subsection.zoom-workspace" msgstr "Yakınlaştır" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:72 msgid "shortcuts.add-comment" msgstr "Yorumlar" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:73 msgid "shortcuts.add-node" msgstr "Düğüm ekle" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:74 msgid "shortcuts.align-bottom" msgstr "Alta hizala" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:75 msgid "shortcuts.align-center" msgstr "Ortala" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:76 msgid "shortcuts.align-hcenter" msgstr "Ortayı yatay olarak hizala" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:77 msgid "shortcuts.align-justify" msgstr "İki yana yasla" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:78 msgid "shortcuts.align-left" msgstr "Sola hizala" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:79 msgid "shortcuts.align-right" msgstr "Sağa hizala" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:80 msgid "shortcuts.align-top" msgstr "Üste hizala" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:81 msgid "shortcuts.align-vcenter" msgstr "Ortayı dikey olarak hizala" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:82 msgid "shortcuts.artboard-selection" msgstr "Seçimden çalışma yüzeyi oluştur" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:83 msgid "shortcuts.bold" msgstr "Kalın yazı aç/kapat" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:84 msgid "shortcuts.bool-difference" msgstr "Boole farkı" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:85 msgid "shortcuts.bool-exclude" msgstr "Boole hariç tut" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:86 msgid "shortcuts.bool-intersection" msgstr "Boole kesişim" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:87 msgid "shortcuts.bool-union" msgstr "Boole birleşim" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:88 msgid "shortcuts.bring-back" msgstr "En arkaya gönder" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:89 msgid "shortcuts.bring-backward" msgstr "Arkaya gönder" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:90 msgid "shortcuts.bring-forward" msgstr "Öne getir" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:91 msgid "shortcuts.bring-front" msgstr "En öne getir" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:92 msgid "shortcuts.clear-undo" msgstr "Geri almayı temizle" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:93 msgid "shortcuts.copy" msgstr "Kopyala" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:94 msgid "shortcuts.create-component" msgstr "Bileşen oluştur" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:95 msgid "shortcuts.create-new-project" msgstr "Yeni oluştur" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:96 msgid "shortcuts.cut" msgstr "Kes" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:97 msgid "shortcuts.decrease-zoom" msgstr "Uzaklaştır" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:98 msgid "shortcuts.delete" msgstr "Sil" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:99 msgid "shortcuts.delete-node" msgstr "Düğümü sil" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:100 msgid "shortcuts.detach-component" msgstr "Bileşeni ayır" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:101 msgid "shortcuts.draw-curve" msgstr "Eğri" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:102 msgid "shortcuts.draw-ellipse" msgstr "Elips" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:103 msgid "shortcuts.draw-frame" msgstr "Çalışma yüzeyi" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:104 msgid "shortcuts.draw-nodes" msgstr "Yol çiz" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:105 msgid "shortcuts.draw-path" msgstr "Yol" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:106 msgid "shortcuts.draw-rect" msgstr "Dikdörtgen" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:107 msgid "shortcuts.draw-text" msgstr "Metin" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:108 msgid "shortcuts.duplicate" msgstr "Çoğalt" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:109 msgid "shortcuts.escape" msgstr "İptal" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:110 msgid "shortcuts.export-shapes" msgstr "Şekilleri dışa aktar" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:111 msgid "shortcuts.fit-all" msgstr "Tümüne uydurmak için yakınlaştır" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:112 msgid "shortcuts.flip-horizontal" msgstr "Yatay olarak çevir" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:113 msgid "shortcuts.flip-vertical" msgstr "Dikey olarak çevir" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:114 msgid "shortcuts.font-size-dec" msgstr "Yazı boyutunu azalt" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:115 msgid "shortcuts.font-size-inc" msgstr "Yazı boyutunu artır" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:116 msgid "shortcuts.go-to-drafts" msgstr "Taslaklara git" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:117 msgid "shortcuts.go-to-libs" msgstr "Paylaşılan kütüphanelere git" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:118 msgid "shortcuts.go-to-search" msgstr "Ara" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:119 msgid "shortcuts.group" msgstr "Grup" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:120 msgid "shortcuts.h-distribute" msgstr "Yatay olarak dağıt" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:121 msgid "shortcuts.hide-ui" msgstr "Kullanıcı arayüzünü göster/gizle" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:122 msgid "shortcuts.increase-zoom" msgstr "Yakınlaştır" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:123 msgid "shortcuts.insert-image" msgstr "Görsel ekle" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:124 msgid "shortcuts.italic" msgstr "İtalik yazı aç/kapat" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:125 msgid "shortcuts.join-nodes" msgstr "Düğümlere katıl" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:126 msgid "shortcuts.letter-spacing-dec" msgstr "Harf aralığını azalt" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:127 msgid "shortcuts.letter-spacing-inc" msgstr "Harf aralığını artır" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:128 msgid "shortcuts.line-height-dec" msgstr "Satır yüksekliğini azalt" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:129 msgid "shortcuts.line-height-inc" msgstr "Satır yüksekliğini artır" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:130 msgid "shortcuts.line-through" msgstr "Üstü çizili yazı aç/kapat" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:131 msgid "shortcuts.make-corner" msgstr "Köşe yap" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:132 msgid "shortcuts.make-curve" msgstr "Eğri yap" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:133 msgid "shortcuts.mask" msgstr "Maskele" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:134 msgid "shortcuts.merge-nodes" msgstr "Düğümleri birleştir" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:135 msgid "shortcuts.move" msgstr "Taşı" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:136 msgid "shortcuts.move-fast-down" msgstr "Hızlı aşağı taşı" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:137 msgid "shortcuts.move-fast-left" msgstr "Hızlı sola taşı" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:138 msgid "shortcuts.move-fast-right" msgstr "Hızlı sağa taşı" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:139 msgid "shortcuts.move-fast-up" msgstr "Hızlı yukarı taşı" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:140 msgid "shortcuts.move-nodes" msgstr "Düğümü taşı" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:141 msgid "shortcuts.move-unit-down" msgstr "Aşağı taşı" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:142 msgid "shortcuts.move-unit-left" msgstr "Sola taşı" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:143 msgid "shortcuts.move-unit-right" msgstr "Sağa taşı" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:144 msgid "shortcuts.move-unit-up" msgstr "Yukarı taşı" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:145 msgid "shortcuts.next-frame" msgstr "Sonraki çalışma yüzeyi" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:516 msgid "shortcuts.not-found" msgstr "Kısayol bulunamadı" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:146 msgid "shortcuts.opacity-0" msgstr "Opaklığı %100 olarak ayarla" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:147 msgid "shortcuts.opacity-1" msgstr "Opaklığı %10 olarak ayarla" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:148 msgid "shortcuts.opacity-2" msgstr "Opaklığı %20 olarak ayarla" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:149 msgid "shortcuts.opacity-3" msgstr "Opaklığı %30 olarak ayarla" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:150 msgid "shortcuts.opacity-4" msgstr "Opaklığı %40 olarak ayarla" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:151 msgid "shortcuts.opacity-5" msgstr "Opaklığı %50 olarak ayarla" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:152 msgid "shortcuts.opacity-6" msgstr "Opaklığı %60 olarak ayarla" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:153 msgid "shortcuts.opacity-7" msgstr "Opaklığı %70 olarak ayarla" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:154 msgid "shortcuts.opacity-8" msgstr "Opaklığı %80 olarak ayarla" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:155 msgid "shortcuts.opacity-9" msgstr "Opaklığı %90 olarak ayarla" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:156 msgid "shortcuts.open-color-picker" msgstr "Renk seçici" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:157 msgid "shortcuts.open-comments" msgstr "Görüntüleyici yorum bölümüne git" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:158 msgid "shortcuts.open-dashboard" msgstr "Denetim paneline git" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:159 msgid "shortcuts.open-inspect" msgstr "Görüntüleyici inceleme bölümüne git" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:160 msgid "shortcuts.open-interactions" msgstr "Görüntüleyici etkileşimleri bölümüne git" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:161 msgid "shortcuts.open-viewer" msgstr "Görüntüleyici etkileşimleri bölümüne git" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:162 msgid "shortcuts.open-workspace" msgstr "Çalışma alanına git" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:260 msgid "shortcuts.or" msgstr " veya " +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:163 msgid "shortcuts.paste" msgstr "Yapıştır" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:164 msgid "shortcuts.prev-frame" msgstr "Önceki çalışma yüzeyi" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:165 msgid "shortcuts.redo" msgstr "Yeniden yap" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:166 msgid "shortcuts.reset-zoom" msgstr "Yakınlaştırmayı sıfırla" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:167 msgid "shortcuts.scale" msgstr "Ölçeklendir" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:168 msgid "shortcuts.search-placeholder" msgstr "Kısayolları ara" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:169 msgid "shortcuts.select-all" msgstr "Tümünü seç" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:170 msgid "shortcuts.select-next" msgstr "Sonraki katmanı seç" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:171 msgid "shortcuts.select-parent-layer" msgstr "Ana katmanı seç" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:172 msgid "shortcuts.select-prev" msgstr "Önceki katmanı seç" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:173 msgid "shortcuts.separate-nodes" msgstr "Düğümleri ayır" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:174 msgid "shortcuts.show-pixel-grid" msgstr "Piksel ızgarasını göster/gizle" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:175 msgid "shortcuts.show-shortcuts" msgstr "Kısayolları göster/gizle" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:176 msgid "shortcuts.snap-nodes" msgstr "Düğümlere tuttur" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:177 msgid "shortcuts.snap-pixel-grid" msgstr "Piksel ızgarasına tuttur" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:178 msgid "shortcuts.start-editing" msgstr "Düzenlemeye başla" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:179 msgid "shortcuts.start-measure" msgstr "Ölçüme başla" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:180 msgid "shortcuts.stop-measure" msgstr "Ölçümü durdur" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:181 msgid "shortcuts.text-align-center" msgstr "Ortaya hizala" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:182 msgid "shortcuts.text-align-justify" msgstr "İki yana yasla" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:183 msgid "shortcuts.text-align-left" msgstr "Sola hizala" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:184 msgid "shortcuts.text-align-right" msgstr "Sağa hizala" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:185 msgid "shortcuts.thumbnail-set" msgstr "Küçük resimleri ayarla" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:496, src/app/main/ui/workspace/sidebar/shortcuts.cljs:505 msgid "shortcuts.title" msgstr "Klavye kısayolları" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:186 msgid "shortcuts.toggle-alignment" msgstr "Dinamik hizalamayı aç/kapat" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:187 msgid "shortcuts.toggle-assets" msgstr "Varlıkları değiştir" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:188 msgid "shortcuts.toggle-colorpalette" msgstr "Renk paletini değiştir" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:189 msgid "shortcuts.toggle-focus-mode" msgstr "Odak modunu değiştir" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:190 msgid "shortcuts.toggle-fullscreen" msgstr "Tam ekranı değiştir" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:191 msgid "shortcuts.toggle-guides" msgstr "Kılavuzları göster/gizle" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:192 msgid "shortcuts.toggle-history" msgstr "Geçmişi değiştir" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:193 msgid "shortcuts.toggle-layers" msgstr "Katmanları değiştir" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:194 msgid "shortcuts.toggle-layout-flex" msgstr "Düzen esnekliği ekle/kaldır" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:195 msgid "shortcuts.toggle-layout-grid" msgstr "Izgara düzeni ekle/kaldır" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:196 msgid "shortcuts.toggle-lock" msgstr "Seçileni kilitle" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:197 msgid "shortcuts.toggle-lock-size" msgstr "Oranları kilitle" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:198 msgid "shortcuts.toggle-rulers" msgstr "Cetvelleri göster/gizle" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:200 msgid "shortcuts.toggle-snap-guides" msgstr "Kılavuzlara tuttur" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:201 msgid "shortcuts.toggle-snap-ruler-guide" msgstr "Cetvel kılavuzlarına tuttur" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:202 msgid "shortcuts.toggle-textpalette" msgstr "Metin paletini değiştir" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:203 msgid "shortcuts.toggle-theme" msgstr "Temayı değiştir" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:204 msgid "shortcuts.toggle-visibility" msgstr "Göster / Gizle" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:205 msgid "shortcuts.toggle-zoom-style" msgstr "Yakınlaştırma şeklini değiştir" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:206 msgid "shortcuts.underline" msgstr "Alt çizgiyi aç/kapat" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:207 msgid "shortcuts.undo" msgstr "Geri al" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:208 msgid "shortcuts.ungroup" msgstr "Grubu dağıt" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:209 msgid "shortcuts.unmask" msgstr "Maskelemeyi kaldır" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:210 msgid "shortcuts.v-distribute" msgstr "Dikey olarak dağıt" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:211 msgid "shortcuts.zoom-lense-decrease" msgstr "Görüntüyü küçült" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:212 msgid "shortcuts.zoom-lense-increase" msgstr "Görüntüyü büyült" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:213 msgid "shortcuts.zoom-selected" msgstr "Seçilene yakınlaştır" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:771 msgid "team.webhooks.max-length" msgstr "Webhook adı en fazla 2048 karakter içermelidir." -#: src/app/main/ui/dashboard/files.cljs +#: src/app/main/ui/dashboard/files.cljs:158 msgid "title.dashboard.files" msgstr "%s - Penpot" -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:37 msgid "title.dashboard.font-providers" msgstr "Yazı Tipi Sağlayıcıları - %s - Penpot" -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:36 msgid "title.dashboard.fonts" msgstr "Yazı Tipleri - %s - Penpot" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:320 msgid "title.dashboard.projects" msgstr "Projeler - %s - Penpot" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:32 msgid "title.dashboard.search" msgstr "Ara - %s - Penpot" -#: src/app/main/ui/dashboard/libraries.cljs +#: src/app/main/ui/dashboard/libraries.cljs:44 msgid "title.dashboard.shared-libraries" msgstr "Paylaşılmış Kütüphaneler - %s - Penpot" -#: src/app/main/ui/auth/verify_token.cljs, src/app/main/ui/auth.cljs +#: src/app/main/ui/auth/verify_token.cljs:68, src/app/main/ui/auth.cljs:54 msgid "title.default" msgstr "Penpot - Takımlar için Özgür Tasarım" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:292 msgid "title.settings.access-tokens" msgstr "Profil - Erişim belirteçleri" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:110 msgid "title.settings.feedback" msgstr "Geri bildirimde bulun - Penpot" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:80 msgid "title.settings.options" msgstr "Ayarlar - Penpot" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:115 msgid "title.settings.password" msgstr "Parola - Penpot" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:115 msgid "title.settings.profile" msgstr "Profil - Penpot" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:727 msgid "title.team-invitations" msgstr "Davetler - %s - Penpot" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:493 msgid "title.team-members" msgstr "Üyeler - %s - Penpot" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1036 msgid "title.team-settings" msgstr "Ayarlar - %s - Penpot" +#: src/app/main/ui/dashboard/team.cljs:989 msgid "title.team-webhooks" msgstr "Web kancaları - %s - Penpot" -#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs +#: src/app/main/ui/viewer.cljs:419 msgid "title.viewer" msgstr "%s - Görünüm modu - Penpot" -#: src/app/main/ui/workspace.cljs +#: src/app/main/ui/workspace.cljs:190 msgid "title.workspace" msgstr "%s - Penpot" +#: src/app/main/ui.cljs:144 msgid "viewer.breaking-change.description" msgstr "" "Bu paylaşılabilir bağlantı artık geçerli değil. Yeni bir tane oluşturun " "veya sahibinden yeni bir tane isteyin." +#: src/app/main/ui.cljs:143 msgid "viewer.breaking-change.message" msgstr "Üzgünüm!" -#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs +#: src/app/main/ui/viewer.cljs:569 msgid "viewer.empty-state" msgstr "Sayfada çalışma yüzeyi bulunamadı." -#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs +#: src/app/main/ui/viewer.cljs:574 msgid "viewer.frame-not-found" msgstr "Çalışma yüzeyi bulunamadı." +#: src/app/main/ui/viewer/header.cljs:336 msgid "viewer.header.comments-section" msgstr "Yorumlar (%s)" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/interactions.cljs:292 msgid "viewer.header.dont-show-interactions" msgstr "Etkileşimleri gösterme" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/header.cljs:188 msgid "viewer.header.fullscreen" msgstr "Tam Ekran" +#: src/app/main/ui/viewer/header.cljs:345 msgid "viewer.header.inspect-section" msgstr "İncele (%s)" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/interactions.cljs:282 msgid "viewer.header.interactions" msgstr "Etkileşimler" +#: src/app/main/ui/viewer/header.cljs:327 msgid "viewer.header.interactions-section" msgstr "Etkileşimler (%s)" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/share_link.cljs:187 msgid "viewer.header.share.copy-link" msgstr "Bağlantıyı kopyala" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/interactions.cljs:300 msgid "viewer.header.show-interactions" msgstr "Etkileşimleri göster" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/interactions.cljs:311 msgid "viewer.header.show-interactions-on-click" msgstr "Tıklamada etkileşimleri göster" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/header.cljs:231 msgid "viewer.header.sitemap" msgstr "Site haritası" +#: src/app/main/ui/dashboard/team.cljs:948 msgid "webhooks.last-delivery.success" msgstr "Son iletim başarılı oldu." -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:58 msgid "workspace.align.hcenter" msgstr "Yatay olarak ortaya hizala (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:74 msgid "workspace.align.hdistribute" msgstr "Yatayda dağıt (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:50 msgid "workspace.align.hleft" msgstr "Sola hizala (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:66 msgid "workspace.align.hright" msgstr "Sağa hizala (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:99 msgid "workspace.align.vbottom" msgstr "Alta hizala (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:91 msgid "workspace.align.vcenter" msgstr "Dikey olarak ortaya hizala (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:104 msgid "workspace.align.vdistribute" msgstr "Dikeyde dağıt (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:83 msgid "workspace.align.vtop" msgstr "Üste hizala (%s)" #: src/app/main/ui/workspace/sidebar/assets.cljs +#, unused msgid "workspace.assets.assets" msgstr "Varlıklar" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets.cljs:134 msgid "workspace.assets.box-filter-all" msgstr "Tüm varlıklar" -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/dashboard/grid.cljs:130, src/app/main/ui/dashboard/grid.cljs:162, src/app/main/ui/workspace/sidebar/assets/colors.cljs:485, src/app/main/ui/workspace/sidebar/assets.cljs:150 msgid "workspace.assets.colors" msgstr "Renkler" -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/dashboard/grid.cljs:126, src/app/main/ui/dashboard/grid.cljs:141, src/app/main/ui/workspace/sidebar/assets/components.cljs:513, src/app/main/ui/workspace/sidebar/assets.cljs:139 msgid "workspace.assets.components" msgstr "Bileşenler" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:131 msgid "workspace.assets.create-group" msgstr "Grup oluştur" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:142 msgid "workspace.assets.create-group-hint" msgstr "Ögeleriniz otomatik olarak \"grup adı / öge adı\" olarak adlandırılacak" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/context_menu.cljs:529, src/app/main/ui/workspace/sidebar/assets/colors.cljs:251, src/app/main/ui/workspace/sidebar/assets/components.cljs:577, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:424, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:443 msgid "workspace.assets.delete" msgstr "Sil" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/context_menu.cljs:534, src/app/main/ui/workspace/sidebar/assets/components.cljs:572 msgid "workspace.assets.duplicate" msgstr "Çoğalt" +#: src/app/main/ui/workspace/sidebar/assets/components.cljs:571 msgid "workspace.assets.duplicate-main" msgstr "Ana bileşeni çoğalt" -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:247, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:439 msgid "workspace.assets.edit" msgstr "Düzenle" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets.cljs:176 msgid "workspace.assets.filter" msgstr "Filtrele" -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/graphics.cljs:384, src/app/main/ui/workspace/sidebar/assets.cljs:145 msgid "workspace.assets.graphics" msgstr "Grafikler" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:255, src/app/main/ui/workspace/sidebar/assets/components.cljs:581, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:428, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:448 msgid "workspace.assets.group" msgstr "Grup" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:141 msgid "workspace.assets.group-name" msgstr "Grup adı" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets.cljs:168 msgid "workspace.assets.libraries" msgstr "Kütüphaneler" +#: src/app/main/ui/workspace/sidebar/assets/file_library.cljs:62, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:347 msgid "workspace.assets.local-library" msgstr "yerel kütüphane" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/file_library.cljs:295 msgid "workspace.assets.not-found" msgstr "Varlık bulunmadı" +#, unused msgid "workspace.assets.open-library" msgstr "Kütüphane dosyasını aç" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/context_menu.cljs:532, src/app/main/ui/workspace/sidebar/assets/colors.cljs:243, src/app/main/ui/workspace/sidebar/assets/components.cljs:566, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:421, src/app/main/ui/workspace/sidebar/assets/groups.cljs:63, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:434 msgid "workspace.assets.rename" msgstr "Yeniden adlandır" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:132 msgid "workspace.assets.rename-group" msgstr "Grubu yeniden adlandır" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets.cljs:173 msgid "workspace.assets.search" msgstr "Varlık ara" #: src/app/main/ui/workspace/sidebar/assets.cljs +#, unused msgid "workspace.assets.selected-count" msgid_plural "workspace.assets.selected-count" msgstr[0] "%s öge seçildi" msgstr[1] "%s öge seçildi" #: src/app/main/ui/workspace/sidebar/assets.cljs +#, unused msgid "workspace.assets.shared-library" msgstr "Paylaşılan kütüphane" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:221 msgid "workspace.assets.sidebar.components" msgid_plural "workspace.assets.sidebar.components" msgstr[0] "1 bileşen" msgstr[1] "%s bileşen" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets.cljs:193 msgid "workspace.assets.sort" msgstr "Sırala" -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/dashboard/grid.cljs:134, src/app/main/ui/dashboard/grid.cljs:189, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:397, src/app/main/ui/workspace/sidebar/assets.cljs:155 msgid "workspace.assets.typography" msgstr "Tipografiler" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused msgid "workspace.assets.typography.font-id" msgstr "Yazı tipi" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:505 msgid "workspace.assets.typography.font-size" msgstr "Boyut" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:501 msgid "workspace.assets.typography.font-variant-id" msgstr "Çeşit" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:523 msgid "workspace.assets.typography.go-to-edit" msgstr "Düzenlemek için biçim kütüphane dosyasına gidin" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:513 msgid "workspace.assets.typography.letter-spacing" msgstr "Harf Boşluğu" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:509 msgid "workspace.assets.typography.line-height" msgstr "Satır Yüksekliği" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, -#: src/app/main/ui/inspect/attributes/text.cljs, -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/dashboard/grid.cljs:199, src/app/main/ui/workspace/libraries.cljs:461, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:464, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:489, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:596, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:615 msgid "workspace.assets.typography.sample" msgstr "Ag" +#, unused msgid "workspace.assets.typography.text-styles" msgstr "Metin biçimleri" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:517 msgid "workspace.assets.typography.text-transform" msgstr "Metin Dönüşümü" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:66 msgid "workspace.assets.ungroup" msgstr "Grubu dağıt" +#: src/app/main/ui/workspace/context_menu.cljs:634 msgid "workspace.context-menu.grid-cells.area" msgstr "Alan oluştur" +#: src/app/main/ui/workspace/context_menu.cljs:637 msgid "workspace.context-menu.grid-cells.create-board" msgstr "Çalışma yüzeyi oluştur" +#: src/app/main/ui/workspace/context_menu.cljs:629 msgid "workspace.context-menu.grid-cells.merge" msgstr "Hücreleri birleştir" +#: src/app/main/ui/workspace/context_menu.cljs:594 msgid "workspace.context-menu.grid-track.column.add-after" msgstr "Sağa 1 sütun ekle" +#: src/app/main/ui/workspace/context_menu.cljs:593 msgid "workspace.context-menu.grid-track.column.add-before" msgstr "Sola 1 sütun ekle" +#: src/app/main/ui/workspace/context_menu.cljs:595 msgid "workspace.context-menu.grid-track.column.delete" msgstr "Sütunu sil" +#: src/app/main/ui/workspace/context_menu.cljs:596 msgid "workspace.context-menu.grid-track.column.delete-shapes" msgstr "Sütun ve şekilleri sil" +#: src/app/main/ui/workspace/context_menu.cljs:592 msgid "workspace.context-menu.grid-track.column.duplicate" msgstr "Yinelenen sütun" +#: src/app/main/ui/workspace/context_menu.cljs:601 msgid "workspace.context-menu.grid-track.row.add-after" msgstr "Aşağıya 1 satır ekle" +#: src/app/main/ui/workspace/context_menu.cljs:600 msgid "workspace.context-menu.grid-track.row.add-before" msgstr "Yukarıya 1 satır ekle" +#: src/app/main/ui/workspace/context_menu.cljs:602 msgid "workspace.context-menu.grid-track.row.delete" msgstr "Satırı sil" +#: src/app/main/ui/workspace/context_menu.cljs:603 msgid "workspace.context-menu.grid-track.row.delete-shapes" msgstr "Satır ve şekilleri sil" +#: src/app/main/ui/workspace/context_menu.cljs:599 msgid "workspace.context-menu.grid-track.row.duplicate" msgstr "Yinelenen satır" +#: src/app/main/ui/workspace/sidebar/layers.cljs:525 msgid "workspace.focus.focus-mode" msgstr "Odaklanma modu" +#: src/app/main/ui/workspace/context_menu.cljs:287, src/app/main/ui/workspace/context_menu.cljs:553 msgid "workspace.focus.focus-off" msgstr "Odaklanma kapalı" +#: src/app/main/ui/workspace/context_menu.cljs:286 msgid "workspace.focus.focus-on" msgstr "Odaklanma açık" +#, unused msgid "workspace.focus.selection" msgstr "Seçim" -#: src/app/main/data/workspace/libraries.cljs, -#: src/app/main/ui/components/color_bullet.cljs +#: src/app/util/color.cljs:34 msgid "workspace.gradients.linear" msgstr "Doğrusal degrade" -#: src/app/main/data/workspace/libraries.cljs, -#: src/app/main/ui/components/color_bullet.cljs +#: src/app/util/color.cljs:35 msgid "workspace.gradients.radial" msgstr "Dairesel degrade" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:238 msgid "workspace.header.menu.disable-dynamic-alignment" msgstr "Dinamik hizalamayı devre dışı bırak" +#: src/app/main/ui/workspace/main_menu.cljs:192 msgid "workspace.header.menu.disable-scale-content" msgstr "Orantılı ölçeklendirmeyi devre dışı bırak" #: src/app/main/ui/workspace/header.cljs +#, unused msgid "workspace.header.menu.disable-scale-text" msgstr "Metin ölçeklendirmeyi devre dışı bırak" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:223 msgid "workspace.header.menu.disable-snap-guides" msgstr "Kılavuzlara tutturmayı devre dışı bırak" +#: src/app/main/ui/workspace/main_menu.cljs:253 msgid "workspace.header.menu.disable-snap-pixel-grid" msgstr "Piksele tutturmayı devre dışı bırak" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:207 msgid "workspace.header.menu.disable-snap-ruler-guides" msgstr "Cetvel kılavuzlarına tutturmayı devre dışı bırak" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:239 msgid "workspace.header.menu.enable-dynamic-alignment" msgstr "Dinamik hizalamayı etkinleştir" +#: src/app/main/ui/workspace/main_menu.cljs:193 msgid "workspace.header.menu.enable-scale-content" msgstr "Orantılı ölçeklendirmeyi etkinleştir" #: src/app/main/ui/workspace/header.cljs +#, unused msgid "workspace.header.menu.enable-scale-text" msgstr "Metin ölçeklendirmeyi etkinleştir" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:224 msgid "workspace.header.menu.enable-snap-guides" msgstr "Kılavuzlara tuttur" +#: src/app/main/ui/workspace/main_menu.cljs:254 msgid "workspace.header.menu.enable-snap-pixel-grid" msgstr "Piksele tutturmayı etkinleştir" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:208 msgid "workspace.header.menu.enable-snap-ruler-guides" msgstr "Cetvel kılavuzlarına tuttur" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:382 msgid "workspace.header.menu.hide-artboard-names" msgstr "Çalışma yüzeyi adlarını gizle" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:336 msgid "workspace.header.menu.hide-guides" msgstr "Kılavuzları gizle" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:353 msgid "workspace.header.menu.hide-palette" msgstr "Renk paletini gizle" +#: src/app/main/ui/workspace/main_menu.cljs:394 msgid "workspace.header.menu.hide-pixel-grid" msgstr "Piksel ızgarasını gizle" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:320 msgid "workspace.header.menu.hide-rules" msgstr "Cetvelleri gizle" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:367 msgid "workspace.header.menu.hide-textpalette" msgstr "Yazı tipi paletini gizle" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:731 msgid "workspace.header.menu.option.edit" msgstr "Düzenle" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:720 msgid "workspace.header.menu.option.file" msgstr "Dosya" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:777 msgid "workspace.header.menu.option.help-info" msgstr "Yardım ve bilgi" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:753 msgid "workspace.header.menu.option.preferences" msgstr "Tercihler" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:742 msgid "workspace.header.menu.option.view" msgstr "Görünüm" +#: src/app/main/ui/workspace/main_menu.cljs:459 msgid "workspace.header.menu.redo" msgstr "Tekrarla" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:432 msgid "workspace.header.menu.select-all" msgstr "Tümünü seç" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:383 msgid "workspace.header.menu.show-artboard-names" msgstr "Çalışma yüzeylerinin adlarını göster" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:337 msgid "workspace.header.menu.show-guides" msgstr "Kılavuzları göster" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:354 msgid "workspace.header.menu.show-palette" msgstr "Renk paletini göster" +#: src/app/main/ui/workspace/main_menu.cljs:395 msgid "workspace.header.menu.show-pixel-grid" msgstr "Piksel ızgarasını göster" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:321 msgid "workspace.header.menu.show-rules" msgstr "Cetvelleri göster" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:368 msgid "workspace.header.menu.show-textpalette" msgstr "Yazı tipi paletini göster" +#: src/app/main/ui/workspace/main_menu.cljs:279 msgid "workspace.header.menu.toggle-dark-theme" msgstr "Koyu temaya geç" +#: src/app/main/ui/workspace/main_menu.cljs:278 msgid "workspace.header.menu.toggle-light-theme" msgstr "Açık temaya geç" +#: src/app/main/ui/workspace/main_menu.cljs:446 msgid "workspace.header.menu.undo" msgstr "Geri al" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/viewer/header.cljs:98, src/app/main/ui/workspace/right_header.cljs:120 msgid "workspace.header.reset-zoom" msgstr "Sıfırla" #: src/app/main/ui/workspace/header.cljs +#, unused msgid "workspace.header.save-error" msgstr "Kaydetme hatası" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/right_header.cljs:52 msgid "workspace.header.saved" msgstr "Kaydedildi" #: src/app/main/ui/workspace/header.cljs +#, unused msgid "workspace.header.saving" msgstr "Kaydediliyor" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/right_header.cljs:42, src/app/main/ui/workspace/right_header.cljs:47 msgid "workspace.header.unsaved" msgstr "Kaydedilmemiş değişiklikler" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/right_header.cljs:239 msgid "workspace.header.viewer" msgstr "Görünüm modu (%s)" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/viewer/header.cljs:79, src/app/main/ui/workspace/right_header.cljs:103 msgid "workspace.header.zoom" msgstr "Yakınlaştırma" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/viewer/header.cljs:109 msgid "workspace.header.zoom-fill" msgstr "Doldur - Doldurmak için ölçeklendir" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/viewer/header.cljs:102 msgid "workspace.header.zoom-fit" msgstr "Sığdır - Sığdırmak için küçült" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/right_header.cljs:123 msgid "workspace.header.zoom-fit-all" msgstr "Tümüne uydurmak için yakınlaştır" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/viewer/header.cljs:116 msgid "workspace.header.zoom-full-screen" msgstr "Tam ekran" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/right_header.cljs:130 msgid "workspace.header.zoom-selected" msgstr "Seçilene yakınlaştır" +#: src/app/main/ui/workspace/sidebar/options/menus/grid_cell.cljs:273, src/app/main/ui/workspace/sidebar/options/menus/grid_cell.cljs:275, src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:612 msgid "workspace.layout_grid.editor.options.edit-grid" msgstr "Izgarayı düzenle" +#: src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:1280 msgid "workspace.layout_grid.editor.options.exit" msgstr "Çıkış" +#: src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:483 msgid "workspace.layout_grid.editor.padding.expand" msgstr "4 taraflı dolgu seçeneklerini göster" +#: src/app/main/ui/workspace/viewport/grid_layout_editor.cljs:59 msgid "workspace.layout_grid.editor.title" msgstr "Düzenleme ızgarası" +#: src/app/main/ui/workspace/viewport/grid_layout_editor.cljs:65 msgid "workspace.layout_grid.editor.top-bar.done" msgstr "Bitti" +#: src/app/main/ui/workspace/viewport/grid_layout_editor.cljs:62 msgid "workspace.layout_grid.editor.top-bar.locate" msgstr "Bul" +#: src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:1306 msgid "workspace.layout_grid.editor.top-bar.locate.tooltip" msgstr "Izgara düzenini bul" #: src/app/main/ui/workspace/libraries.cljs +#, unused msgid "workspace.libraries.add" msgstr "Ekle" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:80, src/app/main/ui/workspace/libraries.cljs:99 msgid "workspace.libraries.colors" msgstr "%s renk" -#: src/app/main/ui/workspace/colorpalette.cljs +#: src/app/main/ui/workspace/color_palette.cljs:126 msgid "workspace.libraries.colors.empty-palette" msgstr "Kütüphanenizde henüz renk stili yok" -#: src/app/main/ui/workspace/textpalette.cljs +#: src/app/main/ui/workspace/text_palette.cljs:150 msgid "workspace.libraries.colors.empty-typography-palette" msgstr "Kütüphanenizde henüz tipografi stili yok" -#: src/app/main/ui/workspace/colorpicker/libraries.cljs, -#: src/app/main/ui/workspace/colorpalette.cljs +#: src/app/main/ui/workspace/color_palette_ctx_menu.cljs:60, src/app/main/ui/workspace/colorpicker/libraries.cljs:73, src/app/main/ui/workspace/text_palette_ctx_menu.cljs:50 msgid "workspace.libraries.colors.file-library" msgstr "Dosya kütüphanesi" #: src/app/main/ui/workspace/colorpicker.cljs +#, unused msgid "workspace.libraries.colors.hsv" msgstr "HSV" -#: src/app/main/ui/workspace/colorpicker/libraries.cljs, -#: src/app/main/ui/workspace/colorpalette.cljs +#: src/app/main/ui/workspace/color_palette_ctx_menu.cljs:82, src/app/main/ui/workspace/colorpicker/libraries.cljs:72 msgid "workspace.libraries.colors.recent-colors" msgstr "Son renkler" #: src/app/main/ui/workspace/colorpicker.cljs +#, unused msgid "workspace.libraries.colors.rgb-complementary" msgstr "RGB Tamamlayıcı" #: src/app/main/ui/workspace/colorpicker.cljs +#, unused msgid "workspace.libraries.colors.rgba" msgstr "RGBA" -#: src/app/main/ui/workspace/colorpicker.cljs +#: src/app/main/ui/workspace/colorpicker.cljs:372 msgid "workspace.libraries.colors.save-color" msgstr "Renk biçimini kaydet" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:74, src/app/main/ui/workspace/libraries.cljs:91 msgid "workspace.libraries.components" msgstr "%s bileşen" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:215 msgid "workspace.libraries.file-library" msgstr "Dosya kütüphanesi" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:77, src/app/main/ui/workspace/libraries.cljs:95 msgid "workspace.libraries.graphics" msgstr "%s grafik" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:209 msgid "workspace.libraries.in-this-file" msgstr "BU DOSYADAKİ KÜTÜPHANELER" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:526, src/app/main/ui/workspace/libraries.cljs:531 msgid "workspace.libraries.libraries" msgstr "KÜTÜPHANELER" #: src/app/main/ui/workspace/libraries.cljs +#, unused msgid "workspace.libraries.library" msgstr "KÜTÜPHANE" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:382 msgid "workspace.libraries.library-updates" msgstr "KÜTÜPHANE GÜNCELLEMELERİ" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:290 msgid "workspace.libraries.loading" msgstr "Yükleniyor…" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:380 msgid "workspace.libraries.no-libraries-need-sync" msgstr "Güncelleme gerektiren Paylaşılmış Kütüphane bulunmuyor" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:299 msgid "workspace.libraries.no-matches-for" msgstr "“%s“ için eşleşme bulunmadı" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:296 msgid "workspace.libraries.no-shared-libraries-available" msgstr "Paylaşılmış Kütüphane bulunmuyor" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:260 msgid "workspace.libraries.search-shared-libraries" msgstr "Paylaşılmış kütüphane ara" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:256 msgid "workspace.libraries.shared-libraries" msgstr "PAYLAŞILMIŞ KÜTÜPHANELER" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:282 msgid "workspace.libraries.shared-library-btn" msgstr "Kütüphaneyi bağla" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:308 msgid "workspace.libraries.text.multiple-typography" msgstr "Çoklu tipografiler" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:311 msgid "workspace.libraries.text.multiple-typography-tooltip" msgstr "Tüm tipografileri ayır" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:83, src/app/main/ui/workspace/libraries.cljs:103 msgid "workspace.libraries.typography" msgstr "%s tipografi" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:249 msgid "workspace.libraries.unlink-library-btn" msgstr "Kütüphanenin bağlantısını kes" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:402 msgid "workspace.libraries.update" msgstr "Güncelle" -#: src/app/main/data/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:477 msgid "workspace.libraries.update.see-all-changes" msgstr "tüm değişiklikleri gör" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:536 msgid "workspace.libraries.updates" msgstr "GÜNCELLEMELER" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:737 msgid "workspace.options.add-interaction" msgstr "Etkileşimler eklemek için + düğmesine tıklayın." -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:86, src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:102 msgid "workspace.options.blur-options.title" msgstr "Bulanıklık" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:85 msgid "workspace.options.blur-options.title.group" msgstr "Grup bulanıklığı" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:84 msgid "workspace.options.blur-options.title.multiple" msgstr "Seçim bulanıklığı" -#: src/app/main/ui/workspace/sidebar/options/page.cljs +#: src/app/main/ui/workspace/sidebar/options/page.cljs:32, src/app/main/ui/workspace/sidebar/options/page.cljs:39 msgid "workspace.options.canvas-background" msgstr "Tuval arka planı" +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:548 msgid "workspace.options.clip-content" msgstr "İçeriği kırp" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:600, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:605 msgid "workspace.options.component" msgstr "Bileşen" +#: src/app/main/ui/viewer/inspect/annotation.cljs:19, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:181 msgid "workspace.options.component.annotation" msgstr "Açıklama" +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:610 msgid "workspace.options.component.copy" msgstr "Kopyala" +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:173 msgid "workspace.options.component.create-annotation" msgstr "Bir açıklama oluştur" +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:172 msgid "workspace.options.component.edit-annotation" msgstr "Bir açıklamayı düzenle" +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:609 msgid "workspace.options.component.main" msgstr "Ana bileşen" +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:427 msgid "workspace.options.component.swap" msgstr "Bileşeni değiştir" +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:471 msgid "workspace.options.component.swap.empty" msgstr "Bu kütüphanede henüz varlık yok" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:163 msgid "workspace.options.constraints" msgstr "Kısıtlamalar" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:150 msgid "workspace.options.constraints.bottom" msgstr "Alt" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:141, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:152 msgid "workspace.options.constraints.center" msgstr "Merkez" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:229 msgid "workspace.options.constraints.fix-when-scrolling" msgstr "Kaydırırken sabit" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:138 msgid "workspace.options.constraints.left" msgstr "Sol" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:140 msgid "workspace.options.constraints.leftright" msgstr "Sol ve Sağ" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:139 msgid "workspace.options.constraints.right" msgstr "Sağ" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:142, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:153 msgid "workspace.options.constraints.scale" msgstr "Ölçeklendir" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:149 msgid "workspace.options.constraints.top" msgstr "Üst" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:151 msgid "workspace.options.constraints.topbottom" msgstr "Üst ve Alt" -#: src/app/main/ui/workspace/sidebar/options.cljs +#: src/app/main/ui/workspace/sidebar/options.cljs:112 msgid "workspace.options.design" msgstr "Tasarım" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs +#: src/app/main/ui/viewer/inspect/exports.cljs:139 msgid "workspace.options.export" msgstr "Dışa aktar" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs +#, unused msgid "workspace.options.export-multiple" msgstr "Seçimi dışa aktar" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs +#: src/app/main/ui/viewer/inspect/exports.cljs:195, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:237 msgid "workspace.options.export-object" msgid_plural "workspace.options.export-object" msgstr[0] "1 ögeyi dışa aktar" msgstr[1] "%s ögeyi dışa aktar" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs +#: src/app/main/ui/viewer/inspect/exports.cljs:178, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:219 msgid "workspace.options.export.suffix" msgstr "Son ek" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs, src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/export.cljs:240 msgid "workspace.options.exporting-complete" msgstr "Dışa aktarma tamamlandı" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs +#: src/app/main/ui/export.cljs:172, src/app/main/ui/export.cljs:241, src/app/main/ui/viewer/inspect/exports.cljs:194, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:236 msgid "workspace.options.exporting-object" msgstr "Dışa aktarılıyor…" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs, src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/export.cljs:239 msgid "workspace.options.exporting-object-error" msgstr "Dışa aktarılamadı" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, #: -#: src/app/main/ui/inspect/exports.cljs, src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/export.cljs:242 msgid "workspace.options.exporting-object-slow" msgstr "Dışa aktarma beklenmedik şekilde yavaş" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:49, src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:174 msgid "workspace.options.fill" msgstr "Doldur" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:178 msgid "workspace.options.flows.add-flow-start" msgstr "Akış başlangıcı ekle" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:174 msgid "workspace.options.flows.flow" msgstr "Akış" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#, unused msgid "workspace.options.flows.flow-start" msgstr "Akış başlangıcı" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:161 msgid "workspace.options.flows.flow-starts" msgstr "Akış başlar" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:29 msgid "workspace.options.grid.auto" msgstr "Otomatik" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:157 msgid "workspace.options.grid.column" msgstr "Sütunlar" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused msgid "workspace.options.grid.grid-title" msgstr "Izgara" +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:196, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:237 msgid "workspace.options.grid.params.color" msgstr "Renk" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused msgid "workspace.options.grid.params.columns" msgstr "Sütunlar" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:259 msgid "workspace.options.grid.params.gutter" msgstr "Aralık" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:246 msgid "workspace.options.grid.params.height" msgstr "Yükseklik" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:270 msgid "workspace.options.grid.params.margin" msgstr "Kenar Boşluğu" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused msgid "workspace.options.grid.params.rows" msgstr "Satırlar" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:216, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:290 msgid "workspace.options.grid.params.set-default" msgstr "Varsayılan olarak belirle" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused msgid "workspace.options.grid.params.size" msgstr "Boyut" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused msgid "workspace.options.grid.params.type" msgstr "Tür" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:231 msgid "workspace.options.grid.params.type.bottom" msgstr "Alt" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:229 msgid "workspace.options.grid.params.type.center" msgstr "Orta" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:228 msgid "workspace.options.grid.params.type.left" msgstr "Sol" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:232 msgid "workspace.options.grid.params.type.right" msgstr "Sağ" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:225 msgid "workspace.options.grid.params.type.stretch" msgstr "Ger" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:227 msgid "workspace.options.grid.params.type.top" msgstr "Üst" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:211, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:288 msgid "workspace.options.grid.params.use-default" msgstr "Varsayılanı kullan" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:247 msgid "workspace.options.grid.params.width" msgstr "Genişlik" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:158 msgid "workspace.options.grid.row" msgstr "Satırlar" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:156 msgid "workspace.options.grid.square" msgstr "Kare" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:48 msgid "workspace.options.group-fill" msgstr "Grubu doldur" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:42 msgid "workspace.options.group-stroke" msgstr "Grubu çiz" +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:310 msgid "workspace.options.guides.title" msgstr "Kılavuzlar" +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:406 msgid "workspace.options.height" msgstr "Yükseklik" +#: src/app/main/ui/workspace/sidebar/options.cljs:161 msgid "workspace.options.inspect" msgstr "İncele" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:468 msgid "workspace.options.interaction-action" msgstr "Eylem" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:41, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:367 msgid "workspace.options.interaction-after-delay" msgstr "Gecikmeden sonra" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:614 msgid "workspace.options.interaction-animation" msgstr "Canlandırma" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:406 msgid "workspace.options.interaction-animation-dissolve" msgstr "Çöz" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:405 msgid "workspace.options.interaction-animation-none" msgstr "Hiçbiri" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:412 msgid "workspace.options.interaction-animation-push" msgstr "İt" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:407 msgid "workspace.options.interaction-animation-slide" msgstr "Kaydır" +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:391 msgid "workspace.options.interaction-auto" msgstr "otomatik" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:604 msgid "workspace.options.interaction-background" msgstr "Arka plan üst katmanı ekle" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:590 msgid "workspace.options.interaction-close-outside" msgstr "Dışarıya tıklandığında kapat" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:372 msgid "workspace.options.interaction-close-overlay" msgstr "Üst katmanı kapat" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:56 msgid "workspace.options.interaction-close-overlay-dest" msgstr "Üst katmanı kapat: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:456 msgid "workspace.options.interaction-delay" msgstr "Gecikme" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:478 msgid "workspace.options.interaction-destination" msgstr "Hedef" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:661 msgid "workspace.options.interaction-duration" msgstr "Süre" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:674 msgid "workspace.options.interaction-easing" msgstr "Yumuşatma" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:416 msgid "workspace.options.interaction-easing-ease" msgstr "Yumuşat" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:417 msgid "workspace.options.interaction-easing-ease-in" msgstr "Yumuşak giriş" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:419 msgid "workspace.options.interaction-easing-ease-in-out" msgstr "Yumuşak giriş çıkış" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:418 msgid "workspace.options.interaction-easing-ease-out" msgstr "Yumuşak çıkış" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:415 msgid "workspace.options.interaction-easing-linear" msgstr "Doğrusal" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#, unused msgid "workspace.options.interaction-in" msgstr "Giriş" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:39, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:364 msgid "workspace.options.interaction-mouse-enter" msgstr "Fare girişi" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:40, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:365 msgid "workspace.options.interaction-mouse-leave" msgstr "Fare çıkışı" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:458, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:459, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:464, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:663, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:665, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:669 msgid "workspace.options.interaction-ms" msgstr "ms" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:369 msgid "workspace.options.interaction-navigate-to" msgstr "Git" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:50 msgid "workspace.options.interaction-navigate-to-dest" msgstr "Şuraya gidin: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:51, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:53, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:55, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:380 msgid "workspace.options.interaction-none" msgstr "(ayarlanmadı)" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:691 msgid "workspace.options.interaction-offset-effect" msgstr "Uzaklık efekti" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:35, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:360 msgid "workspace.options.interaction-on-click" msgstr "Tıklandığında" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:370 msgid "workspace.options.interaction-open-overlay" msgstr "Üst katmanı aç" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:52 msgid "workspace.options.interaction-open-overlay-dest" msgstr "Üst katmanı aç: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:59, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:374 msgid "workspace.options.interaction-open-url" msgstr "URL'yi aç" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#, unused msgid "workspace.options.interaction-out" msgstr "Çıkış" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:403 msgid "workspace.options.interaction-pos-bottom-center" msgstr "Alt orta" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:401 msgid "workspace.options.interaction-pos-bottom-left" msgstr "Sol alt" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:402 msgid "workspace.options.interaction-pos-bottom-right" msgstr "Sağ alt" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:397 msgid "workspace.options.interaction-pos-center" msgstr "Merkez" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:396 msgid "workspace.options.interaction-pos-manual" msgstr "El ile" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:400 msgid "workspace.options.interaction-pos-top-center" msgstr "Üst orta" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:398 msgid "workspace.options.interaction-pos-top-left" msgstr "Sol üst" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:399 msgid "workspace.options.interaction-pos-top-right" msgstr "Sağ üst" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:524 msgid "workspace.options.interaction-position" msgstr "Konum" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:494 msgid "workspace.options.interaction-preserve-scroll" msgstr "Kaydırma konumunu koru" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:58, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:373 msgid "workspace.options.interaction-prev-screen" msgstr "Önceki ekran" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:515 msgid "workspace.options.interaction-relative-to" msgstr "Göreceli" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:57, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:379, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:393, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:394 msgid "workspace.options.interaction-self" msgstr "kendi" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:371 msgid "workspace.options.interaction-toggle-overlay" msgstr "Üst katmanı değiştir" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:54 msgid "workspace.options.interaction-toggle-overlay-dest" msgstr "Üst katmanı değiştir: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:445 msgid "workspace.options.interaction-trigger" msgstr "Tetikle" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:503 msgid "workspace.options.interaction-url" msgstr "URL" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:37, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:362 msgid "workspace.options.interaction-while-hovering" msgstr "Üzerinde Gezinirken" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:38, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:363 msgid "workspace.options.interaction-while-pressing" msgstr "Basarken" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:724 msgid "workspace.options.interactions" msgstr "Etkileşimler" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:137 msgid "workspace.options.layer-options.blend-mode.color" msgstr "Renk" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:126 msgid "workspace.options.layer-options.blend-mode.color-burn" msgstr "Renk yanması" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:129 msgid "workspace.options.layer-options.blend-mode.color-dodge" msgstr "Renk atlatması" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:124 msgid "workspace.options.layer-options.blend-mode.darken" msgstr "Karart" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:133 msgid "workspace.options.layer-options.blend-mode.difference" msgstr "Fark" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:134 msgid "workspace.options.layer-options.blend-mode.exclusion" msgstr "Dışla" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:132 msgid "workspace.options.layer-options.blend-mode.hard-light" msgstr "Sert ışık" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:135 msgid "workspace.options.layer-options.blend-mode.hue" msgstr "Ton" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:127 msgid "workspace.options.layer-options.blend-mode.lighten" msgstr "Aydınlat" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:138 msgid "workspace.options.layer-options.blend-mode.luminosity" msgstr "Parlaklık" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:125 msgid "workspace.options.layer-options.blend-mode.multiply" msgstr "Çoğalt" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:123 msgid "workspace.options.layer-options.blend-mode.normal" msgstr "Normal" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:130 msgid "workspace.options.layer-options.blend-mode.overlay" msgstr "Üst katman" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:136 msgid "workspace.options.layer-options.blend-mode.saturation" msgstr "Doygunluk" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:128 msgid "workspace.options.layer-options.blend-mode.screen" msgstr "Ekran" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:131 msgid "workspace.options.layer-options.blend-mode.soft-light" msgstr "Yumuşak ışık" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#, unused msgid "workspace.options.layer-options.title" msgstr "Katman" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#, unused msgid "workspace.options.layer-options.title.group" msgstr "Katman grubu" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#, unused msgid "workspace.options.layer-options.title.multiple" msgstr "Seçili katmanlar" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout-item.advanced-ops" msgstr "Gelişmiş seçenekler" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:564 msgid "workspace.options.layout-item.layout-item-max-h" msgstr "Azami Yükseklik" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:531 msgid "workspace.options.layout-item.layout-item-max-w" msgstr "Azami Genişlik" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:548 msgid "workspace.options.layout-item.layout-item-min-h" msgstr "Asgari Yükseklik" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:515 msgid "workspace.options.layout-item.layout-item-min-w" msgstr "Asgari Genişlik" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout-item.title.layout-item-max-h" msgstr "Azami yükseklik" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout-item.title.layout-item-max-w" msgstr "Azami genişlik" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout-item.title.layout-item-min-h" msgstr "Asgari yükseklik" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout-item.title.layout-item-min-w" msgstr "Asgari genişlik" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.bottom" msgstr "Alt" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.direction.column" msgstr "Sütun" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.direction.column-reverse" msgstr "Ters sütun" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.direction.row" msgstr "Satır" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.direction.row-reverse" msgstr "Ters satır" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.gap" msgstr "Boşluk" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.left" msgstr "Sol" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout.margin" msgstr "Kenar Boşluğu" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout.margin-all" msgstr "Tüm kenarlar" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout.margin-simple" msgstr "Basit kenar boşluğu" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.packed" msgstr "paketlenmiş" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.padding" msgstr "Dolgu" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.padding-all" msgstr "Tüm kenarlar" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.padding-simple" msgstr "Basit dolgu" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.right" msgstr "Sağ" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.space-around" msgstr "etrafında boşluk" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.space-between" msgstr "arasında boşluk" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.top" msgstr "Üst" -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:146 msgid "workspace.options.more-colors" msgstr "Daha fazla renk" -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:123 msgid "workspace.options.more-lib-colors" msgstr "Daha fazla kütüphane rengi" +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:161 msgid "workspace.options.opacity" msgstr "Opaklık" -#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#, unused msgid "workspace.options.position" msgstr "Konum" -#: src/app/main/ui/workspace/sidebar/options.cljs +#: src/app/main/ui/workspace/sidebar/options.cljs:157 msgid "workspace.options.prototype" msgstr "Prototip" +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:469, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:481 msgid "workspace.options.radius" msgstr "Yarıçap" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:513 msgid "workspace.options.radius-bottom-left" msgstr "Sol alt" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:522 msgid "workspace.options.radius-bottom-right" msgstr "Sağ alt" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:495 msgid "workspace.options.radius-top-left" msgstr "Sol üst" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:504 msgid "workspace.options.radius-top-right" msgstr "Sağ üst" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:532 msgid "workspace.options.radius.all-corners" msgstr "Tüm köşeler" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:533 msgid "workspace.options.radius.single-corners" msgstr "Bireysel köşeler" +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:183 msgid "workspace.options.recent-fonts" msgstr "Son kullanılanlar" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs, src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/export.cljs:284 msgid "workspace.options.retry" msgstr "Yeniden dene" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:451 msgid "workspace.options.rotation" msgstr "Döndür" +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:180 msgid "workspace.options.search-font" msgstr "Yazı tipi ara" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:741 msgid "workspace.options.select-a-shape" msgstr "" "Diğer çalışma yüzeyine bağlantı taşımak için bir şekil, çalışma yüzeyi ya " "da grup seçin." -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:105 msgid "workspace.options.selection-color" msgstr "Seçilen renkler" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:47 msgid "workspace.options.selection-fill" msgstr "Seçimi doldur" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:41 msgid "workspace.options.selection-stroke" msgstr "Seçimi çiz" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:40, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:198, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:200 msgid "workspace.options.shadow-options.blur" msgstr "Bulanıklık" +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:238 msgid "workspace.options.shadow-options.color" msgstr "Gölge rengi" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:144 msgid "workspace.options.shadow-options.drop-shadow" msgstr "Kabartı gölgesi" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:145 msgid "workspace.options.shadow-options.inner-shadow" msgstr "İç gölge" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:38, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:186 msgid "workspace.options.shadow-options.offsetx" msgstr "X" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:39, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:224 msgid "workspace.options.shadow-options.offsety" msgstr "Y" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:41, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:211, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:213 msgid "workspace.options.shadow-options.spread" msgstr "Yayılma" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:296 msgid "workspace.options.shadow-options.title" msgstr "Gölge" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:295 msgid "workspace.options.shadow-options.title.group" msgstr "Gölge grubu" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:294 msgid "workspace.options.shadow-options.title.multiple" msgstr "Gölge seçimi" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:193 msgid "workspace.options.show-fill-on-export" msgstr "Dışa aktarmalarda göster" +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:562 msgid "workspace.options.show-in-viewer" msgstr "Görünüm modunda göster" -#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:162 msgid "workspace.options.size" msgstr "Boyut" -#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:355 msgid "workspace.options.size-presets" msgstr "Boyut ön ayarları" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:43 msgid "workspace.options.stroke" msgstr "Çerçeve" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#, unused msgid "workspace.options.stroke-cap.circle-marker" msgstr "Daire işaretleyici" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:129 msgid "workspace.options.stroke-cap.circle-marker-short" msgstr "Daire" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#, unused msgid "workspace.options.stroke-cap.diamond-marker" msgstr "Elmas işaretleyici" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:130 msgid "workspace.options.stroke-cap.diamond-marker-short" msgstr "Elmas" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#, unused msgid "workspace.options.stroke-cap.line-arrow" msgstr "Çizgi oku" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:126 msgid "workspace.options.stroke-cap.line-arrow-short" msgstr "Ok" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:124 msgid "workspace.options.stroke-cap.none" msgstr "Hiçbiri" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:132 msgid "workspace.options.stroke-cap.round" msgstr "Yuvarlak" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:133 msgid "workspace.options.stroke-cap.square" msgstr "Kare" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#, unused msgid "workspace.options.stroke-cap.square-marker" msgstr "Kare işaretleyici" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:128 msgid "workspace.options.stroke-cap.square-marker-short" msgstr "Dikdörtgen" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#, unused msgid "workspace.options.stroke-cap.triangle-arrow" msgstr "Üçgen ok" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:127 msgid "workspace.options.stroke-cap.triangle-arrow-short" msgstr "Üçgen" +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:192 msgid "workspace.options.stroke-color" msgstr "Çerçeve rengi" +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:165 msgid "workspace.options.stroke-width" msgstr "Çerçeve genişliği" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:87 msgid "workspace.options.stroke.center" msgstr "Merkez" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:105 msgid "workspace.options.stroke.dashed" msgstr "Çizgili" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:104 msgid "workspace.options.stroke.dotted" msgstr "Noktalı" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:88 msgid "workspace.options.stroke.inner" msgstr "İçinde" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:106 msgid "workspace.options.stroke.mixed" msgstr "Karışık" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:89 msgid "workspace.options.stroke.outer" msgstr "Dışında" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:103 msgid "workspace.options.stroke.solid" msgstr "Katı" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:115 msgid "workspace.options.text-options.align-bottom" msgstr "Alta hizala" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:111 msgid "workspace.options.text-options.align-middle" msgstr "Merkeze hizala" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:107 msgid "workspace.options.text-options.align-top" msgstr "Üste hizala" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:82 msgid "workspace.options.text-options.direction-ltr" msgstr "Soldan sağa" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:87 msgid "workspace.options.text-options.direction-rtl" msgstr "Sağdan sola" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:149 msgid "workspace.options.text-options.grow-auto-height" msgstr "Otomatik yükseklik" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:145 msgid "workspace.options.text-options.grow-auto-width" msgstr "Otomatik genişlik" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:141 msgid "workspace.options.text-options.grow-fixed" msgstr "Sabit" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:381 msgid "workspace.options.text-options.letter-spacing" msgstr "Harf Aralıkları" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:364 msgid "workspace.options.text-options.line-height" msgstr "Satır yüksekliği" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused msgid "workspace.options.text-options.lowercase" msgstr "Küçük harf" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused msgid "workspace.options.text-options.none" msgstr "Hiçbiri" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:176 msgid "workspace.options.text-options.strikethrough" msgstr "Üstü çizili (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:51 msgid "workspace.options.text-options.text-align-center" msgstr "Ortaya hizala (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:59 msgid "workspace.options.text-options.text-align-justify" msgstr "İki yana yasla (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:47 msgid "workspace.options.text-options.text-align-left" msgstr "Sola hizala (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:55 msgid "workspace.options.text-options.text-align-right" msgstr "Sağa hizala (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:189 msgid "workspace.options.text-options.title" msgstr "Metin" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:188 msgid "workspace.options.text-options.title-group" msgstr "Grup metni" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:187 msgid "workspace.options.text-options.title-selection" msgstr "Metin seçimi" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused msgid "workspace.options.text-options.titlecase" msgstr "İlk harfi büyük" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:171 msgid "workspace.options.text-options.underline" msgstr "Altı Çizili (%s)" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused msgid "workspace.options.text-options.uppercase" msgstr "Büyük Harf" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:745 msgid "workspace.options.use-play-button" msgstr "Prototip görünümünü çalıştırmak için başlıktaki oynatma düğmesini kullan." +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:395 msgid "workspace.options.width" msgstr "Genişlik" +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:427 msgid "workspace.options.x" msgstr "X ekseni" +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:438 msgid "workspace.options.y" msgstr "Y ekseni" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:167 msgid "workspace.path.actions.add-node" msgstr "Düğüm ekle (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:174 msgid "workspace.path.actions.delete-node" msgstr "Düğüm sil (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:152 msgid "workspace.path.actions.draw-nodes" msgstr "Düğüm çiz (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:189 msgid "workspace.path.actions.join-nodes" msgstr "Düğümleri birleştir (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:204 msgid "workspace.path.actions.make-corner" msgstr "Köşeye (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:211 msgid "workspace.path.actions.make-curve" msgstr "Eğriye (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:182 msgid "workspace.path.actions.merge-nodes" msgstr "Düğümleri birleştir (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:159 msgid "workspace.path.actions.move-nodes" msgstr "Düğümleri taşı (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:196 msgid "workspace.path.actions.separate-nodes" msgstr "Düğümleri ayır (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:218 msgid "workspace.path.actions.snap-nodes" msgstr "Düğümleri tuttur (%s)" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/plugins.cljs:55 +msgid "workspace.plugins.button-open" +msgstr "Aç" + +#: src/app/main/ui/workspace/plugins.cljs:164 +msgid "workspace.plugins.empty-plugins" +msgstr "Henüz eklenti kurulmadı" + +#: src/app/main/ui/workspace/plugins.cljs:157 +msgid "workspace.plugins.error.url" +msgstr "Eklenti yok veya URL doğru değil." + +#: src/app/main/ui/workspace/plugins.cljs:153 +msgid "workspace.plugins.install" +msgstr "Kur" + +#: src/app/main/ui/workspace/plugins.cljs:170 +msgid "workspace.plugins.installed-plugins" +msgstr "Kurulu eklentiler" + +#: src/app/main/ui/workspace/main_menu.cljs:624 +msgid "workspace.plugins.menu.plugins-manager" +msgstr "Eklenti yöneticisi" + +#: src/app/main/ui/workspace/main_menu.cljs:765 +msgid "workspace.plugins.menu.title" +msgstr "Eklentiler" + +#: src/app/main/ui/workspace/plugins.cljs:166 +msgid "workspace.plugins.plugin-list-link" +msgstr "Eklenti Listesi" + +#: src/app/main/ui/workspace/plugins.cljs:149 +msgid "workspace.plugins.search-placeholder" +msgstr "Bir eklenti URL'si yazın" + +#, unused +msgid "workspace.plugins.success" +msgstr "Eklenti doğru şekilde yüklendi." + +#: src/app/main/ui/workspace/plugins.cljs:143 +msgid "workspace.plugins.title" +msgstr "Eklentiler" + +#: src/app/main/ui/workspace/context_menu.cljs:441 msgid "workspace.shape.menu.add-flex" msgstr "Esnek düzen ekle" +#: src/app/main/ui/workspace/context_menu.cljs:445 msgid "workspace.shape.menu.add-grid" msgstr "Izgara düzeni ekle" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:193 msgid "workspace.shape.menu.back" msgstr "En arkaya gönder" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:190 msgid "workspace.shape.menu.backward" msgstr "Arkaya gönder" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:139 msgid "workspace.shape.menu.copy" msgstr "Kopyala" +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:427 msgid "workspace.shape.menu.create-annotation" msgstr "Açıklama oluştur" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:275 msgid "workspace.shape.menu.create-artboard-from-selection" msgstr "Çalışma yüzeyi için seçim" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:465 msgid "workspace.shape.menu.create-component" msgstr "Bileşen oluştur" +#: src/app/main/ui/workspace/context_menu.cljs:469 msgid "workspace.shape.menu.create-multiple-components" msgstr "Çoklu bileşen oluştur" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:142 msgid "workspace.shape.menu.cut" msgstr "Kes" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:486 msgid "workspace.shape.menu.delete" msgstr "Sil" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:391 msgid "workspace.shape.menu.delete-flow-start" msgstr "Akış başlangıcını sil" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:432 msgid "workspace.shape.menu.detach-instance" msgstr "Örneği ayır" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:431 msgid "workspace.shape.menu.detach-instances-in-bulk" msgstr "Örnekleri ayır" +#: src/app/main/ui/workspace/context_menu.cljs:335, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:75 msgid "workspace.shape.menu.difference" msgstr "Fark" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:148 msgid "workspace.shape.menu.duplicate" msgstr "Çoğalt" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:321 msgid "workspace.shape.menu.edit" msgstr "Düzenle" +#: src/app/main/ui/workspace/context_menu.cljs:341 msgid "workspace.shape.menu.exclude" msgstr "Dışla" +#: src/app/main/ui/workspace/context_menu.cljs:348, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:89 msgid "workspace.shape.menu.flatten" msgstr "Düzleştir" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:208 msgid "workspace.shape.menu.flip-horizontal" msgstr "Yatay ters çevir" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:204 msgid "workspace.shape.menu.flip-vertical" msgstr "Dikey ters çevir" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:394 msgid "workspace.shape.menu.flow-start" msgstr "Akış başlangıcı" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:184 msgid "workspace.shape.menu.forward" msgstr "Öne getir" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:187 msgid "workspace.shape.menu.front" msgstr "En öne getir" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#, unused msgid "workspace.shape.menu.go-main" msgstr "Ana bileşen dosyasına git" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:261 msgid "workspace.shape.menu.group" msgstr "Grup" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:363, src/app/main/ui/workspace/sidebar/layer_item.cljs:145 msgid "workspace.shape.menu.hide" msgstr "Gizle" +#: src/app/main/ui/workspace/context_menu.cljs:548, src/app/main/ui/workspace/main_menu.cljs:408 msgid "workspace.shape.menu.hide-ui" msgstr "Kullanıcı arayüzünü göster/gizle" +#: src/app/main/ui/workspace/context_menu.cljs:338 msgid "workspace.shape.menu.intersection" msgstr "Kesişme" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:371, src/app/main/ui/workspace/sidebar/layer_item.cljs:153 msgid "workspace.shape.menu.lock" msgstr "Kilitle" -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:266 msgid "workspace.shape.menu.mask" msgstr "Maskele" -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:145, src/app/main/ui/workspace/context_menu.cljs:545 msgid "workspace.shape.menu.paste" msgstr "Yapıştır" +#: src/app/main/ui/workspace/context_menu.cljs:331 msgid "workspace.shape.menu.path" msgstr "Yol" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:432 msgid "workspace.shape.menu.remove-flex" msgstr "Düzen esnekliğini kaldır" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:435 msgid "workspace.shape.menu.remove-grid" msgstr "Izgara düzenini kaldır" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:436 msgid "workspace.shape.menu.reset-overrides" msgstr "Geçersiz kılmaları sıfırla" +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:439 msgid "workspace.shape.menu.restore-main" msgstr "Ana bileşeni geri yükle" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:174 msgid "workspace.shape.menu.select-layer" msgstr "Katman seç" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:360, src/app/main/ui/workspace/sidebar/layer_item.cljs:144 msgid "workspace.shape.menu.show" msgstr "Göster" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:424 msgid "workspace.shape.menu.show-in-assets" msgstr "Varlıklar panelinde göster" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:442, src/app/main/ui/workspace/sidebar/assets/components.cljs:586 msgid "workspace.shape.menu.show-main" msgstr "Ana bileşeni göster" +#: src/app/main/ui/workspace/context_menu.cljs:221 msgid "workspace.shape.menu.thumbnail-remove" msgstr "Küçük resmi kaldır" +#: src/app/main/ui/workspace/context_menu.cljs:223 msgid "workspace.shape.menu.thumbnail-set" msgstr "Küçük resim olarak ayarla" +#: src/app/main/ui/workspace/context_menu.cljs:326 msgid "workspace.shape.menu.transform-to-path" msgstr "Yola dönüştür" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:257 msgid "workspace.shape.menu.ungroup" msgstr "Grubu dağıt" +#: src/app/main/ui/workspace/context_menu.cljs:332, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:70 msgid "workspace.shape.menu.union" msgstr "Birleşim" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:368, src/app/main/ui/workspace/sidebar/layer_item.cljs:152 msgid "workspace.shape.menu.unlock" msgstr "Kilidi aç" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:271 msgid "workspace.shape.menu.unmask" msgstr "Maskelemeyi kaldır" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs +#, unused msgid "workspace.shape.menu.update-components-in-bulk" msgstr "Ana bileşenleri güncelle" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:445 msgid "workspace.shape.menu.update-main" msgstr "Ana bileşeni güncelle" +#: src/app/main/ui/components/tab_container.cljs:50 msgid "workspace.sidebar.collapse" msgstr "Kenar çubuğunu daralt" +#: src/app/main/ui/workspace/sidebar/collapsable_button.cljs:26 msgid "workspace.sidebar.expand" msgstr "Kenar çubuğunu genişlet" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/right_header.cljs:231, src/app/main/ui/workspace/right_header.cljs:232 msgid "workspace.sidebar.history" msgstr "Geçmiş (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/sidebar/layers.cljs:522, src/app/main/ui/workspace/sidebar.cljs:100 msgid "workspace.sidebar.layers" msgstr "Katmanlar" +#: src/app/main/ui/workspace/sidebar/layers.cljs:308, src/app/main/ui/workspace/sidebar/layers.cljs:380 msgid "workspace.sidebar.layers.components" msgstr "Bileşenler" +#: src/app/main/ui/workspace/sidebar/layers.cljs:305, src/app/main/ui/workspace/sidebar/layers.cljs:338 msgid "workspace.sidebar.layers.frames" msgstr "Çalışma yüzeyleri" +#: src/app/main/ui/workspace/sidebar/layers.cljs:306, src/app/main/ui/workspace/sidebar/layers.cljs:352 msgid "workspace.sidebar.layers.groups" msgstr "Gruplar" +#: src/app/main/ui/workspace/sidebar/layers.cljs:310, src/app/main/ui/workspace/sidebar/layers.cljs:408 msgid "workspace.sidebar.layers.images" msgstr "Görseller" +#: src/app/main/ui/workspace/sidebar/layers.cljs:307, src/app/main/ui/workspace/sidebar/layers.cljs:366 msgid "workspace.sidebar.layers.masks" msgstr "Maskeler" +#: src/app/main/ui/workspace/sidebar/layers.cljs:289 msgid "workspace.sidebar.layers.search" msgstr "Katmanları ara" +#: src/app/main/ui/workspace/sidebar/layers.cljs:311, src/app/main/ui/workspace/sidebar/layers.cljs:422 msgid "workspace.sidebar.layers.shapes" msgstr "Şekiller" +#: src/app/main/ui/workspace/sidebar/layers.cljs:309, src/app/main/ui/workspace/sidebar/layers.cljs:394 msgid "workspace.sidebar.layers.texts" msgstr "Metinler" -#: src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs, -#: src/app/main/ui/inspect/attributes/svg.cljs +#: src/app/main/ui/viewer/inspect/attributes/svg.cljs:56, src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs:91 msgid "workspace.sidebar.options.svg-attrs.title" msgstr "İçe Aktarılan SVG Öznitelikleri" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs +#: src/app/main/ui/workspace/sidebar/sitemap.cljs:217 msgid "workspace.sidebar.sitemap" msgstr "Sayfalar" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/left_header.cljs:91 msgid "workspace.sitemap" msgstr "Site haritası" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/sidebar.cljs:120 msgid "workspace.toolbar.assets" msgstr "Varlıklar" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/palette.cljs:165, src/app/main/ui/workspace/palette.cljs:166 msgid "workspace.toolbar.color-palette" msgstr "Renk Paketi (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/right_header.cljs:220, src/app/main/ui/workspace/right_header.cljs:221 msgid "workspace.toolbar.comments" msgstr "Yorumlar (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:180, src/app/main/ui/workspace/top_toolbar.cljs:181 msgid "workspace.toolbar.curve" msgstr "Eğri (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:160, src/app/main/ui/workspace/top_toolbar.cljs:161 msgid "workspace.toolbar.ellipse" msgstr "Elips (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:142, src/app/main/ui/workspace/top_toolbar.cljs:143 msgid "workspace.toolbar.frame" msgstr "Çalışma Yüzeyi (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:59, src/app/main/ui/workspace/top_toolbar.cljs:60 msgid "workspace.toolbar.image" msgstr "Görsel (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:132, src/app/main/ui/workspace/top_toolbar.cljs:133 msgid "workspace.toolbar.move" msgstr "Taşı (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:189, src/app/main/ui/workspace/top_toolbar.cljs:190 msgid "workspace.toolbar.path" msgstr "Yol (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:151, src/app/main/ui/workspace/top_toolbar.cljs:152 msgid "workspace.toolbar.rect" msgstr "Dikdörtgen (%s)" #: src/app/main/ui/workspace/left_toolbar.cljs +#, unused msgid "workspace.toolbar.shortcuts" msgstr "Kısayollar (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:169, src/app/main/ui/workspace/top_toolbar.cljs:170 msgid "workspace.toolbar.text" msgstr "Metin (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/palette.cljs:173, src/app/main/ui/workspace/palette.cljs:174 msgid "workspace.toolbar.text-palette" msgstr "Tipografiler (%s)" +#: src/app/main/ui/workspace/viewport/top_bar.cljs:38 msgid "workspace.top-bar.read-only.done" msgstr "Bitti" +#: src/app/main/ui/workspace/viewport/top_bar.cljs:35 #, markdown msgid "workspace.top-bar.view-only" msgstr "**Kodu incele** ( Yalnızca Görüntüle)" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:342 msgid "workspace.undo.empty" msgstr "Şu ana kadar değişim geçmişi yok" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:147 msgid "workspace.undo.entry.delete" msgstr "%s silindi" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:146 msgid "workspace.undo.entry.modify" msgstr "%s düzenlendi" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:148 msgid "workspace.undo.entry.move" msgstr "Nesneler taşındı" +#: src/app/main/ui/workspace/sidebar/history.cljs:111 msgid "workspace.undo.entry.multiple.circle" msgstr "daireler" +#: src/app/main/ui/workspace/sidebar/history.cljs:112 msgid "workspace.undo.entry.multiple.color" msgstr "renk varlıkları" +#: src/app/main/ui/workspace/sidebar/history.cljs:113 msgid "workspace.undo.entry.multiple.component" msgstr "bileşenler" +#: src/app/main/ui/workspace/sidebar/history.cljs:114 msgid "workspace.undo.entry.multiple.curve" msgstr "eğriler" +#: src/app/main/ui/workspace/sidebar/history.cljs:115 msgid "workspace.undo.entry.multiple.frame" msgstr "çalışma yüzeyi" +#: src/app/main/ui/workspace/sidebar/history.cljs:116 msgid "workspace.undo.entry.multiple.group" msgstr "gruplar" +#: src/app/main/ui/workspace/sidebar/history.cljs:117 msgid "workspace.undo.entry.multiple.media" msgstr "grafik varlıkları" +#: src/app/main/ui/workspace/sidebar/history.cljs:118 msgid "workspace.undo.entry.multiple.multiple" msgstr "nesneler" +#: src/app/main/ui/workspace/sidebar/history.cljs:119 msgid "workspace.undo.entry.multiple.page" msgstr "sayfalar" +#: src/app/main/ui/workspace/sidebar/history.cljs:120 msgid "workspace.undo.entry.multiple.path" msgstr "yollar" +#: src/app/main/ui/workspace/sidebar/history.cljs:121 msgid "workspace.undo.entry.multiple.rect" msgstr "dikdörtgenler" +#: src/app/main/ui/workspace/sidebar/history.cljs:122 msgid "workspace.undo.entry.multiple.shape" msgstr "şekiller" +#: src/app/main/ui/workspace/sidebar/history.cljs:123 msgid "workspace.undo.entry.multiple.text" msgstr "metinler" +#: src/app/main/ui/workspace/sidebar/history.cljs:124 msgid "workspace.undo.entry.multiple.typography" msgstr "tipografi varlıkları" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:145 msgid "workspace.undo.entry.new" msgstr "Yeni %s" +#: src/app/main/ui/workspace/sidebar/history.cljs:125 msgid "workspace.undo.entry.single.circle" msgstr "daire" +#: src/app/main/ui/workspace/sidebar/history.cljs:126 msgid "workspace.undo.entry.single.color" msgstr "renk varlığı" +#: src/app/main/ui/workspace/sidebar/history.cljs:127 msgid "workspace.undo.entry.single.component" msgstr "bileşen" +#: src/app/main/ui/workspace/sidebar/history.cljs:128 msgid "workspace.undo.entry.single.curve" msgstr "eğri" +#: src/app/main/ui/workspace/sidebar/history.cljs:129 msgid "workspace.undo.entry.single.frame" msgstr "çalışma yüzeyi" +#: src/app/main/ui/workspace/sidebar/history.cljs:130 msgid "workspace.undo.entry.single.group" msgstr "grup" +#: src/app/main/ui/workspace/sidebar/history.cljs:131 msgid "workspace.undo.entry.single.image" msgstr "görsel" +#: src/app/main/ui/workspace/sidebar/history.cljs:132 msgid "workspace.undo.entry.single.media" msgstr "grafik varlığı" +#: src/app/main/ui/workspace/sidebar/history.cljs:133 msgid "workspace.undo.entry.single.multiple" msgstr "nesne" +#: src/app/main/ui/workspace/sidebar/history.cljs:134 msgid "workspace.undo.entry.single.page" msgstr "sayfa" +#: src/app/main/ui/workspace/sidebar/history.cljs:135 msgid "workspace.undo.entry.single.path" msgstr "yol" +#: src/app/main/ui/workspace/sidebar/history.cljs:136 msgid "workspace.undo.entry.single.rect" msgstr "dikdörtgen" +#: src/app/main/ui/workspace/sidebar/history.cljs:137 msgid "workspace.undo.entry.single.shape" msgstr "şekil" +#: src/app/main/ui/workspace/sidebar/history.cljs:138 msgid "workspace.undo.entry.single.text" msgstr "metin" +#: src/app/main/ui/workspace/sidebar/history.cljs:139 msgid "workspace.undo.entry.single.typography" msgstr "tipografi varlığı" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:149 msgid "workspace.undo.entry.unknown" msgstr "%s üstündeki işlem" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:335 msgid "workspace.undo.title" msgstr "Geçmiş" -#: src/app/main/data/workspace/libraries.cljs +#: src/app/main/data/workspace/libraries.cljs:1094 msgid "workspace.updates.dismiss" msgstr "Yoksay" -#: src/app/main/data/workspace/libraries.cljs +#: src/app/main/data/workspace/libraries.cljs:1092 msgid "workspace.updates.more-info" msgstr "Daha fazla bilgi" -#: src/app/main/data/workspace/libraries.cljs +#: src/app/main/data/workspace/libraries.cljs:1090 msgid "workspace.updates.there-are-updates" msgstr "Paylaşılan kütüphaneler için güncellemeler var" -#: src/app/main/data/workspace/libraries.cljs +#: src/app/main/data/workspace/libraries.cljs:1097 msgid "workspace.updates.update" msgstr "Güncelle" +#, unused msgid "workspace.viewport.click-to-close-path" msgstr "Yolu kapatmak için tıklayın" @@ -5267,36 +5824,3 @@ msgstr "Yolu kapatmak için tıklayın" #~ msgid "workspace.options.layout-item.title.min-w" #~ msgstr "Asgari genişlik" - -msgid "workspace.plugins.install" -msgstr "Kur" - -msgid "workspace.plugins.title" -msgstr "Eklentiler" - -msgid "workspace.plugins.search-placeholder" -msgstr "Bir eklenti URL'si yazın" - -msgid "workspace.plugins.installed-plugins" -msgstr "Kurulu eklentiler" - -msgid "workspace.plugins.error.url" -msgstr "Eklenti yok veya URL doğru değil." - -msgid "workspace.plugins.empty-plugins" -msgstr "Henüz eklenti kurulmadı" - -msgid "workspace.plugins.button-open" -msgstr "Aç" - -msgid "workspace.plugins.success" -msgstr "Eklenti doğru şekilde yüklendi." - -msgid "workspace.plugins.menu.plugins-manager" -msgstr "Eklenti yöneticisi" - -msgid "workspace.plugins.menu.title" -msgstr "Eklentiler" - -msgid "workspace.plugins.plugin-list-link" -msgstr "Eklenti Listesi" diff --git a/frontend/translations/ukr_UA.po b/frontend/translations/ukr_UA.po index 3c7f50b164..08da14efb4 100644 --- a/frontend/translations/ukr_UA.po +++ b/frontend/translations/ukr_UA.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "PO-Revision-Date: 2024-06-17 08:07+0000\n" "Last-Translator: Anonymous \n" -"Language-Team: Ukrainian \n" +"Language-Team: Ukrainian " +"\n" "Language: ukr_UA\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" @@ -12,777 +12,870 @@ msgstr "" "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" "X-Generator: Weblate 5.6-dev\n" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:151, src/app/main/ui/viewer/login.cljs:104 msgid "auth.already-have-account" msgstr "Уже маєте аккаунт?" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:189, src/app/main/ui/viewer/login.cljs:90 msgid "auth.forgot-password" msgstr "Забули пароль?" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:254 msgid "auth.fullname" msgstr "Повне ім'я" -#: src/app/main/ui/auth/register.cljs -#, fuzzy +#: src/app/main/ui/auth/register.cljs:155, src/app/main/ui/viewer/login.cljs:107 msgid "auth.login-here" msgstr "Ввійдіть тут" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:195 msgid "auth.login-submit" msgstr "Вхід" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:222 msgid "auth.login-with-github-submit" msgstr "GitHub" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:228 msgid "auth.login-with-gitlab-submit" msgstr "GitLab" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:216 msgid "auth.login-with-google-submit" msgstr "Google" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:201 msgid "auth.login-with-ldap-submit" msgstr "LDAP" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:234, src/app/main/ui/auth/login.cljs:255 msgid "auth.login-with-oidc-submit" msgstr "OpenID" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:71 msgid "auth.new-password" msgstr "Введіть новий пароль" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:42 msgid "auth.notifications.invalid-token-error" msgstr "Невірний код відновлення." -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:46 msgid "auth.notifications.password-changed-successfully" msgstr "Пароль успішно змінено" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:179, src/app/main/ui/auth/register.cljs:115 msgid "auth.password" msgstr "Пароль" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:114 msgid "auth.password-length-hint" msgstr "Щонайменше 8 символів" +#: src/app/main/ui/workspace/libraries.cljs:228 msgid "common.publish" msgstr "Опублікувати" -#, fuzzy +#: src/app/main/ui/viewer/share_link.cljs:259, src/app/main/ui/viewer/share_link.cljs:289 msgid "common.share-link.current-tag" msgstr "(поточне)" +#: src/app/main/ui/workspace/libraries.cljs:224 msgid "common.unpublish" msgstr "Зняти з публікації" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:291, src/app/main/ui/workspace/main_menu.cljs:572 msgid "dashboard.add-shared" msgstr "Додати як Спільну Бібліотеку" -#: src/app/main/data/dashboard.cljs, src/app/main/data/dashboard.cljs +#: src/app/main/data/dashboard.cljs:762, src/app/main/data/dashboard.cljs:983 msgid "dashboard.copy-suffix" msgstr "(копія)" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:338 msgid "dashboard.create-new-team" msgstr "+ Створити нову команду" +#: src/app/main/ui/dashboard/file_menu.cljs:296, src/app/main/ui/workspace/main_menu.cljs:589 msgid "dashboard.download-binary-file" msgstr "Завантажити файл Penpot (.penpot)" -#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:276, src/app/main/ui/dashboard/project_menu.cljs:90 msgid "dashboard.duplicate" msgstr "Створити дублікат" +#, unused msgid "dashboard.export-multi" msgstr "Експорт файлів Penpot (%s)" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:578 msgid "dashboard.export-shapes" msgstr "Експорт" -#: src/app/main/ui/dashboard/libraries.cljs +#: src/app/main/ui/dashboard/libraries.cljs:53 msgid "dashboard.libraries-title" msgstr "Бібліотеки" -#: src/app/main/ui/dashboard/grid.cljs +#: src/app/main/ui/dashboard/placeholder.cljs:45 msgid "dashboard.loading-files" msgstr "завантажую ваші файли…" +#: src/app/main/ui/dashboard/fonts.cljs:431 msgid "dashboard.loading-fonts" msgstr "завантажую ваші шрифти…" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:245 msgid "dashboard.move-to-multi" msgstr "Перемістити файли (%s)" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:226 msgid "dashboard.move-to-other-team" msgstr "Перенести в іншу команду" +#: src/app/main/ui/dashboard/files.cljs:117, src/app/main/ui/dashboard/projects.cljs:260, src/app/main/ui/dashboard/projects.cljs:261 msgid "dashboard.options" msgstr "Опції" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/pin_button.cljs:24, src/app/main/ui/dashboard/project_menu.cljs:95 msgid "dashboard.pin-unpin" msgstr "Закріпити/Відчепити" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:51 msgid "dashboard.projects-title" msgstr "Проекти" #: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "dashboard.remove-shared" msgstr "Видалити Спільну Бібліотеку" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:246, src/app/main/ui/dashboard/sidebar.cljs:247 msgid "dashboard.search-placeholder" msgstr "Пошук…" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:50 msgid "dashboard.type-something" msgstr "Введіть для пошуку" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:70 msgid "dashboard.your-email" msgstr "Електронна пошта" -#: src/app/main/ui/alert.cljs +#: src/app/main/ui/alert.cljs:32 msgid "ds.alert-ok" msgstr "Ок" -#: src/app/main/ui/alert.cljs +#: src/app/main/ui/alert.cljs:31, src/app/main/ui/alert.cljs:34 msgid "ds.alert-title" msgstr "Увага" -#: src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:36, src/app/main/ui/workspace/plugins.cljs:246 msgid "ds.confirm-cancel" msgstr "Відміна" -#: src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:37, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:141 msgid "ds.confirm-ok" msgstr "Ок" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:62 msgid "errors.auth-provider-not-configured" msgstr "Провайдер для автентифікації не налаштований." -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:77 msgid "feedback.description" msgstr "Опис" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:72 msgid "feedback.subject" msgstr "Тема" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:68 msgid "feedback.title" msgstr "Електронна пошта" -#: src/app/main/ui/inspect/attributes/blur.cljs +#: src/app/main/ui/viewer/inspect/attributes/blur.cljs:26 msgid "inspect.attributes.blur" msgstr "Розмивання" -#: src/app/main/ui/inspect/attributes/blur.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:115 msgid "inspect.attributes.blur.value" msgstr "Значення" -#: src/app/main/ui/inspect/attributes/common.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:112 msgid "inspect.attributes.color.hex" msgstr "HEX" -#: src/app/main/ui/inspect/attributes/common.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:114 msgid "inspect.attributes.color.hsla" msgstr "HSLA" -#: src/app/main/ui/inspect/attributes/common.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:113 msgid "inspect.attributes.color.rgba" msgstr "RGBA" -#: src/app/main/ui/inspect/attributes/fill.cljs +#: src/app/main/ui/viewer/inspect/attributes/fill.cljs:57 msgid "inspect.attributes.fill" msgstr "Заливка" -#: src/app/main/ui/inspect/attributes/image.cljs +#: src/app/main/ui/viewer/inspect/attributes/image.cljs:39 msgid "inspect.attributes.image.height" msgstr "Висота" -#: src/app/main/ui/inspect/attributes/image.cljs +#: src/app/main/ui/viewer/inspect/attributes/image.cljs:32 msgid "inspect.attributes.image.width" msgstr "Ширина" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout" msgstr "Розміщення" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.height" msgstr "Висота" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.left" msgstr "Зліва" #: src/app/main/ui/inspect/attributes/layout.cljs, src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.radius" msgstr "Радіус" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.rotation" msgstr "Обертання" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.top" msgstr "Зверху" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.width" msgstr "Ширина" -#: src/app/main/ui/inspect/attributes/shadow.cljs +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:57 msgid "inspect.attributes.shadow" msgstr "Тінь" -#, permanent +#, permanent, unused msgid "inspect.attributes.stroke.alignment.center" msgstr "Центр" -#, permanent +#, permanent, unused msgid "inspect.attributes.stroke.alignment.inner" msgstr "Всередину" -#, permanent +#, permanent, unused msgid "inspect.attributes.stroke.alignment.outer" msgstr "Назовні" +#, unused msgid "inspect.attributes.stroke.style.dotted" msgstr "Точковий" +#, unused msgid "inspect.attributes.stroke.style.mixed" msgstr "Змішаний" +#, unused msgid "inspect.attributes.stroke.style.none" msgstr "Немає" +#, unused msgid "inspect.attributes.stroke.style.solid" msgstr "Суцільний" #: src/app/main/ui/inspect/attributes/stroke.cljs +#, unused msgid "inspect.attributes.stroke.width" msgstr "Товщина" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:81, src/app/main/ui/viewer/inspect/attributes/text.cljs:194 msgid "inspect.attributes.typography" msgstr "Текст" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:145 msgid "inspect.attributes.typography.text-decoration.none" msgstr "Немає" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:146 msgid "inspect.attributes.typography.text-decoration.strikethrough" msgstr "Перечеркнутий" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:147 msgid "inspect.attributes.typography.text-decoration.underline" msgstr "Підчеркнутий" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:159 msgid "inspect.attributes.typography.text-transform.none" msgstr "Який є" -#: src/app/main/ui/inspect/right_sidebar.cljs +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:125 msgid "inspect.tabs.code" msgstr "Код" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:98 msgid "inspect.tabs.code.selected.circle" msgstr "Коло" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:99 msgid "inspect.tabs.code.selected.component" msgstr "Компонент" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:100 msgid "inspect.tabs.code.selected.curve" msgstr "Крива" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:101 msgid "inspect.tabs.code.selected.frame" msgstr "Кадр" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:102 msgid "inspect.tabs.code.selected.group" msgstr "Група" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:103 msgid "inspect.tabs.code.selected.image" msgstr "Зображення" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:104 msgid "inspect.tabs.code.selected.mask" msgstr "Маска" -#: src/app/main/ui/inspect/right_sidebar.cljs +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:93 msgid "inspect.tabs.code.selected.multiple" msgstr "Виділено: %s" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:105 msgid "inspect.tabs.code.selected.path" msgstr "Контур" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:106 msgid "inspect.tabs.code.selected.rect" msgstr "Прямокутник" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:107 msgid "inspect.tabs.code.selected.svg-raw" msgstr "SVG" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:108 msgid "inspect.tabs.code.selected.text" msgstr "Текст" -#: src/app/main/ui/inspect/right_sidebar.cljs +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:115 msgid "inspect.tabs.info" msgstr "Інформація" +#: src/app/main/ui/dashboard/import.cljs:527 msgid "labels.accept" msgstr "Прийняти" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:120, src/app/main/ui/dashboard/team.cljs:276, src/app/main/ui/dashboard/team.cljs:519, src/app/main/ui/dashboard/team.cljs:549, src/app/main/ui/onboarding/team_choice.cljs:67 msgid "labels.admin" msgstr "Адміністратор" #: src/app/main/ui/workspace/comments.cljs +#, unused msgid "labels.all" msgstr "Всі" +#: src/app/main/ui/auth.cljs:37 msgid "labels.and" msgstr "і" +#: src/app/main/ui/onboarding/team_choice.cljs:162 msgid "labels.back" msgstr "Назад" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/data/common.cljs:112, src/app/main/ui/dashboard/change_owner.cljs:69, src/app/main/ui/dashboard/import.cljs:514, src/app/main/ui/dashboard/team.cljs:868, src/app/main/ui/delete_shared.cljs:35, src/app/main/ui/export.cljs:164, src/app/main/ui/export.cljs:460, src/app/main/ui/settings/access_tokens.cljs:188, src/app/main/ui/viewer/share_link.cljs:203, src/app/main/ui/workspace/sidebar/assets/groups.cljs:149 msgid "labels.cancel" msgstr "Відміна" +#: src/app/main/ui/dashboard/projects.cljs:93, src/app/main/ui/export.cljs:478, src/app/main/ui/settings/access_tokens.cljs:183, src/app/main/ui/viewer/login.cljs:77, src/app/main/ui/viewer/share_link.cljs:174, src/app/main/ui/workspace/libraries.cljs:522 msgid "labels.close" msgstr "Закрити" -#: src/app/main/ui/dashboard/comments.cljs +#: src/app/main/ui/dashboard/comments.cljs:104, src/app/main/ui/viewer/comments.cljs:70, src/app/main/ui/workspace/comments.cljs:126 msgid "labels.comments" msgstr "Коментарі" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:985, src/app/main/ui/workspace/main_menu.cljs:110 msgid "labels.community" msgstr "Спільнота" +#: src/app/main/ui/dashboard/import.cljs:520, src/app/main/ui/export.cljs:465, src/app/main/ui/onboarding/newsletter.cljs:101 msgid "labels.continue" msgstr "Продовжити" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:157, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:190 msgid "labels.create" msgstr "Створити" -#: src/app/main/ui/settings/sidebar.cljs +#: src/app/main/ui/settings/sidebar.cljs:73 msgid "labels.dashboard" msgstr "Панель управління" -#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:306, src/app/main/ui/dashboard/fonts.cljs:255, src/app/main/ui/dashboard/fonts.cljs:332, src/app/main/ui/dashboard/fonts.cljs:346, src/app/main/ui/dashboard/project_menu.cljs:115, src/app/main/ui/dashboard/team.cljs:904, src/app/main/ui/settings/access_tokens.cljs:209, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:209 msgid "labels.delete" msgstr "Видалити" -#: src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/files.cljs, src/app/main/ui/dashboard/files.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:28, src/app/main/ui/dashboard/files.cljs:72, src/app/main/ui/dashboard/files.cljs:156, src/app/main/ui/dashboard/projects.cljs:220, src/app/main/ui/dashboard/projects.cljs:224, src/app/main/ui/dashboard/sidebar.cljs:791 msgid "labels.drafts" msgstr "Чорновики" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:350, src/app/main/ui/dashboard/fonts.cljs:252, src/app/main/ui/dashboard/team.cljs:902, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:205 msgid "labels.edit" msgstr "Редагувати" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:118, src/app/main/ui/dashboard/team.cljs:279, src/app/main/ui/dashboard/team.cljs:520, src/app/main/ui/dashboard/team.cljs:553, src/app/main/ui/onboarding/team_choice.cljs:66 msgid "labels.editor" msgstr "Редактор" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:661 msgid "labels.expired-invitation" msgstr "Протерміновано" +#: src/app/main/ui/export.cljs:173 msgid "labels.export" msgstr "Експорт" +#: src/app/main/ui/dashboard/fonts.cljs:413 msgid "labels.font-variants" msgstr "Стилі" +#: src/app/main/ui/dashboard/fonts.cljs:52, src/app/main/ui/dashboard/sidebar.cljs:811 msgid "labels.fonts" msgstr "Шрифти" -#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:516, src/app/main/ui/dashboard/team.cljs:89, src/app/main/ui/dashboard/team.cljs:97, src/app/main/ui/dashboard/team.cljs:708 msgid "labels.invitations" msgstr "Запрошення" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:51 msgid "labels.language" msgstr "Мова" -#: src/app/main/ui/settings.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:1040 msgid "labels.logout" msgstr "Вийти" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/team.cljs:468 msgid "labels.member" msgstr "Учасник" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:510, src/app/main/ui/dashboard/team.cljs:87, src/app/main/ui/dashboard/team.cljs:95 msgid "labels.members" msgstr "Учасники" -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:49 msgid "labels.not-found.main-message" msgstr "Халепа!" +#, unused msgid "labels.or" msgstr "або" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:286, src/app/main/ui/dashboard/team.cljs:518, src/app/main/ui/dashboard/team.cljs:1076 msgid "labels.owner" msgstr "Власник" -#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/settings/sidebar.cljs:87 msgid "labels.password" msgstr "Пароль" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:662 msgid "labels.pending-invitation" msgstr "Очікування" -#: src/app/main/ui/settings/sidebar.cljs +#: src/app/main/ui/settings/profile.cljs:118, src/app/main/ui/settings/sidebar.cljs:82 msgid "labels.profile" msgstr "Профіль" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:784 msgid "labels.projects" msgstr "Проекти" #: src/app/main/ui/workspace/libraries.cljs, src/app/main/ui/dashboard/team.cljs +#, unused msgid "labels.remove" msgstr "Видалити" -#: src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:271, src/app/main/ui/dashboard/project_menu.cljs:85, src/app/main/ui/dashboard/sidebar.cljs:539, src/app/main/ui/workspace/sidebar/assets/groups.cljs:157 msgid "labels.rename" msgstr "Перейменувати" -#: src/app/main/ui/static.cljs, src/app/main/ui/static.cljs, src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:61, src/app/main/ui/static.cljs:70, src/app/main/ui/static.cljs:148 msgid "labels.retry" msgstr "Повторити" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:469, src/app/main/ui/dashboard/team.cljs:709 msgid "labels.role" msgstr "Роль" +#: src/app/main/ui/dashboard/fonts.cljs:380, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:191 msgid "labels.save" msgstr "Зберегти" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:82 msgid "labels.send" msgstr "Надіслати" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:82 msgid "labels.sending" msgstr "Надсилаю…" -#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:530, src/app/main/ui/dashboard/team.cljs:88, src/app/main/ui/dashboard/team.cljs:102, src/app/main/ui/settings/options.cljs:84, src/app/main/ui/settings/sidebar.cljs:93 msgid "labels.settings" msgstr "Налаштування" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:800 msgid "labels.shared-libraries" msgstr "Бібліотеки" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:710 msgid "labels.status" msgstr "Статус" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:992, src/app/main/ui/workspace/main_menu.cljs:118 msgid "labels.tutorials" msgstr "Посібники" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:103 msgid "labels.update" msgstr "Оновити" +#: src/app/main/ui/dashboard/fonts.cljs:241 msgid "labels.upload" msgstr "Завантаження" +#: src/app/main/ui/dashboard/fonts.cljs:240 msgid "labels.uploading" msgstr "Завантажую…" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:123, src/app/main/ui/dashboard/team.cljs:282, src/app/main/ui/dashboard/team.cljs:521 msgid "labels.viewer" msgstr "Спостерігач" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/team.cljs:237 msgid "labels.you" msgstr "(ви)" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:52 msgid "modals.unpublish-shared-confirm.accept" msgstr "Зняти з публікації" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:380 msgid "modals.update-remote-component.accept" msgstr "Оновити" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:379 msgid "modals.update-remote-component.cancel" msgstr "Відмінити" +#, unused msgid "onboarding.welcome.alt" msgstr "Penpot" -#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs, src/app/main/ui/workspace/sidebar/options/menus/layer.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs, src/app/main/ui/workspace/sidebar/options/menus/blur.cljs +#: src/app/main/ui/viewer/inspect/exports.cljs:147, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:631, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:137, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:148, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:188, src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:158, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:399, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:410, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:430, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:441, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:458, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:472, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:309, src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:183, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:373, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:389, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:245, src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:172 msgid "settings.multiple" msgstr "Змішаний" # SECTIONS +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:414 msgid "shortcut-section.basics" msgstr "Основи" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:420 msgid "shortcut-section.dashboard" msgstr "Панель управління" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:423 msgid "shortcut-section.viewer" msgstr "Переглядач" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:417 msgid "shortcut-section.workspace" msgstr "Робоче поле" # SUBSECTIONS +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:56 msgid "shortcut-subsection.alignment" msgstr "Вирівнювання" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:57 msgid "shortcut-subsection.edit" msgstr "Редагувати" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:58 msgid "shortcut-subsection.general-dashboard" msgstr "Загальний" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:59 msgid "shortcut-subsection.general-viewer" msgstr "Загальний" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:62 msgid "shortcut-subsection.navigation-dashboard" msgstr "Навігація" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:63 msgid "shortcut-subsection.navigation-viewer" msgstr "Навігація" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:64 msgid "shortcut-subsection.navigation-workspace" msgstr "Навігація" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:65 msgid "shortcut-subsection.panels" msgstr "Панелі" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:66 msgid "shortcut-subsection.path-editor" msgstr "Контури" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:67 msgid "shortcut-subsection.shape" msgstr "Форми" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:69 msgid "shortcut-subsection.tools" msgstr "Інструменти" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:70 msgid "shortcut-subsection.zoom-viewer" msgstr "Масштабування" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:71 msgid "shortcut-subsection.zoom-workspace" msgstr "Масштабування" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:72 msgid "shortcuts.add-comment" msgstr "Коментарі" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:93 msgid "shortcuts.copy" msgstr "Скопіювати" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:96 msgid "shortcuts.cut" msgstr "Вирізати" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:98 msgid "shortcuts.delete" msgstr "Видалити" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:101 msgid "shortcuts.draw-curve" msgstr "Крива" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:102 msgid "shortcuts.draw-ellipse" msgstr "Еліпс" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:103 msgid "shortcuts.draw-frame" msgstr "Рамка" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:105 msgid "shortcuts.draw-path" msgstr "Контур" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:106 msgid "shortcuts.draw-rect" msgstr "Прямокутник" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:107 msgid "shortcuts.draw-text" msgstr "Текст" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:108 msgid "shortcuts.duplicate" msgstr "Дублікат" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:109 msgid "shortcuts.escape" msgstr "Відмінити" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:118 msgid "shortcuts.go-to-search" msgstr "Пошук" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:119 msgid "shortcuts.group" msgstr "Група" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:133 msgid "shortcuts.mask" msgstr "Маска" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:135 msgid "shortcuts.move" msgstr "Перемістити" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:260 msgid "shortcuts.or" msgstr " або " +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:163 msgid "shortcuts.paste" msgstr "Вставити" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:208 msgid "shortcuts.ungroup" msgstr "Розбити групу" +#: src/app/main/ui.cljs:143 msgid "viewer.breaking-change.message" msgstr "Упс!" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/interactions.cljs:282 msgid "viewer.header.interactions" msgstr "Інтеракції" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/header.cljs:231 msgid "viewer.header.sitemap" msgstr "Мапа сайту" #: src/app/main/ui/workspace/sidebar/assets.cljs +#, unused msgid "workspace.assets.assets" msgstr "Ресурси" -#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/dashboard/grid.cljs:130, src/app/main/ui/dashboard/grid.cljs:162, src/app/main/ui/workspace/sidebar/assets/colors.cljs:485, src/app/main/ui/workspace/sidebar/assets.cljs:150 msgid "workspace.assets.colors" msgstr "Кольори" -#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/dashboard/grid.cljs:126, src/app/main/ui/dashboard/grid.cljs:141, src/app/main/ui/workspace/sidebar/assets/components.cljs:513, src/app/main/ui/workspace/sidebar/assets.cljs:139 msgid "workspace.assets.components" msgstr "Компоненти" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/context_menu.cljs:529, src/app/main/ui/workspace/sidebar/assets/colors.cljs:251, src/app/main/ui/workspace/sidebar/assets/components.cljs:577, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:424, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:443 msgid "workspace.assets.delete" msgstr "Видалити" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/context_menu.cljs:534, src/app/main/ui/workspace/sidebar/assets/components.cljs:572 msgid "workspace.assets.duplicate" msgstr "Створити дуплікат" -#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:247, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:439 msgid "workspace.assets.edit" msgstr "Редагувати" -#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/graphics.cljs:384, src/app/main/ui/workspace/sidebar/assets.cljs:145 msgid "workspace.assets.graphics" msgstr "Графіка" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:255, src/app/main/ui/workspace/sidebar/assets/components.cljs:581, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:428, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:448 msgid "workspace.assets.group" msgstr "Група" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets.cljs:168 msgid "workspace.assets.libraries" msgstr "Бібліотеки" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/context_menu.cljs:532, src/app/main/ui/workspace/sidebar/assets/colors.cljs:243, src/app/main/ui/workspace/sidebar/assets/components.cljs:566, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:421, src/app/main/ui/workspace/sidebar/assets/groups.cljs:63, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:434 msgid "workspace.assets.rename" msgstr "Перейменувати" -#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/dashboard/grid.cljs:134, src/app/main/ui/dashboard/grid.cljs:189, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:397, src/app/main/ui/workspace/sidebar/assets.cljs:155 msgid "workspace.assets.typography" msgstr "Типографіка" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused msgid "workspace.assets.typography.font-id" msgstr "Шрифт" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:505 msgid "workspace.assets.typography.font-size" msgstr "Розмір" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:501 msgid "workspace.assets.typography.font-variant-id" msgstr "Варіант" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:66 msgid "workspace.assets.ungroup" msgstr "Розгрупувати" +#, unused msgid "workspace.focus.selection" msgstr "Вибір" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:731 msgid "workspace.header.menu.option.edit" msgstr "Редагувати" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:720 msgid "workspace.header.menu.option.file" msgstr "Файл" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:753 msgid "workspace.header.menu.option.preferences" msgstr "Налаштування" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:742 msgid "workspace.header.menu.option.view" msgstr "Вид" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/viewer/header.cljs:98, src/app/main/ui/workspace/right_header.cljs:120 msgid "workspace.header.reset-zoom" msgstr "Скинути" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/right_header.cljs:52 msgid "workspace.header.saved" msgstr "Збережено" #: src/app/main/ui/workspace/header.cljs +#, unused msgid "workspace.header.saving" msgstr "Збереження" #: src/app/main/ui/workspace/libraries.cljs +#, unused msgid "workspace.libraries.add" msgstr "Додати" #: src/app/main/ui/workspace/colorpicker.cljs +#, unused msgid "workspace.libraries.colors.hsv" msgstr "HSV" #: src/app/main/ui/workspace/colorpicker.cljs +#, unused msgid "workspace.libraries.colors.rgba" msgstr "RGBA" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:526, src/app/main/ui/workspace/libraries.cljs:531 msgid "workspace.libraries.libraries" msgstr "БІБЛІОТЕКИ" #: src/app/main/ui/workspace/libraries.cljs +#, unused msgid "workspace.libraries.library" msgstr "БІБЛІОТЕКА" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:402 msgid "workspace.libraries.update" msgstr "Оновити" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:536 msgid "workspace.libraries.updates" msgstr "ОНОВЛЕННЯ" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:86, src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:102 msgid "workspace.options.blur-options.title" msgstr "Розмиття" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:600, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:605 msgid "workspace.options.component" msgstr "Компонент" diff --git a/frontend/translations/yo.po b/frontend/translations/yo.po index ab6e5baedd..7259ad1209 100644 --- a/frontend/translations/yo.po +++ b/frontend/translations/yo.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "PO-Revision-Date: 2024-06-17 08:07+0000\n" "Last-Translator: Anonymous \n" -"Language-Team: Yoruba \n" +"Language-Team: Yoruba " +"\n" "Language: yo\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" @@ -11,442 +11,486 @@ msgstr "" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Weblate 5.6-dev\n" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:299 msgid "auth.check-your-email" msgstr "" "yẹ ímeèlì rẹ wò kí o tẹ ọ̀nà-àsopọ̀ láti mọ̀ dájú àti láti bẹ̀rẹ̀ sí lo " "pẹ́ńpọtì." -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:78 msgid "auth.confirm-password" msgstr "jẹ́rìísí ọ̀rọ̀-ìgbaniwọlé" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/register.cljs:163 msgid "auth.create-demo-account" msgstr "ṣẹ̀dá ìfihàn àkáùntí" #: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#, unused msgid "auth.create-demo-profile" msgstr "kàn fẹ́ gbìyànjú ú rẹ̀?" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/login.cljs:43 msgid "auth.demo-warning" msgstr "" "\"\"This is a DEMO service, DO NOT USE for real work, the projects will be " "parẹ́ lóòrèkóòrè." -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:189, src/app/main/ui/viewer/login.cljs:90 msgid "auth.forgot-password" msgstr "gbàgbé ọ̀rọ̀-ìgbaniwọlé ?" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:254 msgid "auth.fullname" msgstr "orúkọ lẹ́kùnn-ún-rẹ́rẹ́" -#: src/app/main/ui/auth/register.cljs -#, fuzzy +#: src/app/main/ui/auth/register.cljs:155, src/app/main/ui/viewer/login.cljs:107 msgid "auth.login-here" msgstr "wọlé síbí" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:195 msgid "auth.login-submit" msgstr "wọlé" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:222 msgid "auth.login-with-github-submit" msgstr "ibùdó gítì" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:228 msgid "auth.login-with-gitlab-submit" msgstr "láàbù gítì" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:216 msgid "auth.login-with-google-submit" msgstr "ṣàwárí" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:201 msgid "auth.login-with-ldap-submit" msgstr "LDAP" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:234, src/app/main/ui/auth/login.cljs:255 msgid "auth.login-with-oidc-submit" msgstr "ṣílẹ̀kuǹ ìdánimọ̀" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/onboarding/team_choice.cljs, src/app/main/ui/settings/access_tokens.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/settings/profile.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/auth/register.cljs:218, src/app/main/ui/dashboard/team_form.cljs:77, src/app/main/ui/onboarding/team_choice.cljs:181, src/app/main/ui/settings/access_tokens.cljs:67, src/app/main/ui/settings/feedback.cljs:33, src/app/main/ui/settings/profile.cljs:44, src/app/main/ui/workspace/sidebar/assets/groups.cljs:109 msgid "auth.name.too-long" msgstr "orúkọ kò gbọdọ̀ ju àádọ́jọ́ lẹ́tà lọ." -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:71 msgid "auth.new-password" msgstr "tẹ ọ̀rọ̀ ìgbaniwọlé tuntun" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:42 msgid "auth.notifications.invalid-token-error" msgstr "àmì àtúnwárí ti díbàjẹ́." -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:46 msgid "auth.notifications.password-changed-successfully" msgstr "ọ̀rọ̀-ìgbaniwọlé ti yí padà dáadáa" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:57 msgid "auth.notifications.profile-not-verified" msgstr "" "a tí ì ṣe ìwádìí bí o ṣe jẹ́, jọ̀wọ́ ṣe ìwádìí bí o ṣe jẹ́ kí o tó tẹ̀ " "síwájú." -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:40 msgid "auth.notifications.recovery-token-sent" msgstr "a ti fi ọ̀rọ̀-ìgbaniwọle aṣàtúnwárí ránṣẹ sínu àpótí rẹ." -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:47 msgid "auth.notifications.team-invitation-accepted" msgstr "o ti wọ inú ẹgbẹ́ bó ṣeyẹ" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:179, src/app/main/ui/auth/register.cljs:115 msgid "auth.password" msgstr "ọ̀rọ̀- ìgbaniwọlé" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:114 msgid "auth.password-length-hint" msgstr "kò gbọdọ̀ ju ohun kíkọ mẹ́jọ lọ" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/recovery.cljs:61, src/app/main/ui/auth/recovery.cljs:62, src/app/main/ui/auth/register.cljs:81, src/app/main/ui/settings/password.cljs:75, src/app/main/ui/settings/password.cljs:76, src/app/main/ui/settings/password.cljs:77 msgid "auth.password-not-empty" msgstr "ọ̀rọ̀-ìgbaniwọlé gbọ́dọ̀ ní nǹkan kíkọ láìsí àlàfo." +#: src/app/main/ui/auth.cljs:41 msgid "auth.privacy-policy" msgstr "ìpamọ ètò ìmúló" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:88 msgid "auth.recovery-request-submit" msgstr "ṣàtuńwárí ọ̀rọ̀-ìgbaniwọlé" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:101 msgid "auth.recovery-request-subtitle" msgstr "a má a fi àwọn ìtọ́nisọ́nà ránsẹ́ sínú ímeèlì rẹ" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:100 msgid "auth.recovery-request-title" msgstr "gbàgbé ọ̀rọ̀-ìgbaniwọle ?" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:82 msgid "auth.recovery-submit" msgstr "yí ọ̀rọ̀-ìgbaniwọlé rẹ padà" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:298, src/app/main/ui/viewer/login.cljs:93 msgid "auth.register" msgstr "kò tí ì sí àkáùntì?" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:302, src/app/main/ui/auth/register.cljs:121, src/app/main/ui/auth/register.cljs:263, src/app/main/ui/viewer/login.cljs:97 msgid "auth.register-submit" msgstr "ṣẹ̀dá àkáùntì" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:140 msgid "auth.register-title" msgstr "ṣẹ̀dá àkáùntì" #: src/app/main/ui/auth.cljs +#, unused msgid "auth.sidebar-tagline" msgstr "ṣíṣí orísun yíyà àti àwòrán ni yóò fi lojútùú ." +#: src/app/main/ui/auth.cljs:33, src/app/main/ui/dashboard/sidebar.cljs:1022, src/app/main/ui/workspace/main_menu.cljs:150 msgid "auth.terms-of-service" msgstr "òfin ibiṣẹ́" +#, unused msgid "auth.terms-privacy-agreement" msgstr "" "\"nígbà, tí o bá ń ṣẹ̀dá àkáùntí tuntun ,o gbọ́dọ̀ gba àwọn òfin ibiṣẹ́ " "àti àṣírí rẹ́`." -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:297 msgid "auth.verification-email-sent" msgstr "a ti fi ìjẹ́rìísí ránsẹ́ sínú ímeèlì rẹ" #: src/app/main/ui/onboarding/questions.cljs +#, unused msgid "branding-illustrations-marketing-pieces" msgstr ".. ìyàsọ́tọ, àpèjúwe,títajà nǹkan, abbl." +#: src/app/main/ui/workspace/libraries.cljs:228 msgid "common.publish" msgstr "ìgbéjáde" +#: src/app/main/ui/viewer/share_link.cljs:304, src/app/main/ui/viewer/share_link.cljs:314 msgid "common.share-link.all-users" msgstr "gbogbo àwọn tó ń lo pẹ́ńpọtì" +#: src/app/main/ui/viewer/share_link.cljs:259, src/app/main/ui/viewer/share_link.cljs:289 msgid "common.share-link.current-tag" msgstr "(lọ́wọ́lọ́wọ́)" +#: src/app/main/ui/viewer/share_link.cljs:207, src/app/main/ui/viewer/share_link.cljs:214 msgid "common.share-link.destroy-link" msgstr "pa ọ̀nà-àsopọ̀ run" +#: src/app/main/ui/viewer/share_link.cljs:221 msgid "common.share-link.get-link" msgstr "gba ọ̀nà-àsopọ́" +#: src/app/main/ui/viewer/share_link.cljs:139 msgid "common.share-link.link-copied-success" msgstr "so àdàkọ pọ̀ bó ṣeyẹ" +#: src/app/main/ui/viewer/share_link.cljs:231 msgid "common.share-link.manage-ops" msgstr "ṣàkóṣo ìgbaniláàye" +#: src/app/main/ui/viewer/share_link.cljs:298 msgid "common.share-link.permissions-can-comment" msgstr "o lè sọ̀rọ̀" +#: src/app/main/ui/viewer/share_link.cljs:308 msgid "common.share-link.permissions-can-inspect" msgstr "ṣe àyẹ̀wò kóòdù" +#: src/app/main/ui/viewer/share_link.cljs:193 msgid "common.share-link.permissions-hint" msgstr "ẹnikẹ́ni tí ó bá ní ọ̀nà-àsopọ á ní àǹfààní àtiwọle" +#: src/app/main/ui/viewer/share_link.cljs:241 msgid "common.share-link.permissions-pages" msgstr "pín ojú ìwé" +#: src/app/main/ui/viewer/share_link.cljs:183 msgid "common.share-link.placeholder" msgstr "ọ̀nà-àsopọ̀ ojú ìwé tí a pín á hàn ní bí yìí" +#: src/app/main/ui/viewer/share_link.cljs:303, src/app/main/ui/viewer/share_link.cljs:313 msgid "common.share-link.team-members" msgstr "ọmọ ẹgbẹ́ nìkan ni" +#: src/app/main/ui/viewer/share_link.cljs:171 msgid "common.share-link.title" msgstr "pín àwọn àpẹrẹ" +#: src/app/main/ui/viewer/share_link.cljs:269 msgid "common.share-link.view-all" msgstr "yan gbogbo rẹ̀" +#: src/app/main/ui/workspace/libraries.cljs:224 msgid "common.unpublish" msgstr "ohun tí a kò tí ì kọ jáde" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:85 msgid "dasboard.team-hero.management" msgstr "ìṣàkóṣo ọmọ ẹgbẹ" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:82 msgid "dasboard.team-hero.title" msgstr "kẹ́gbẹ́ ṣera wọn lọ́kan" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.tutorial-hero.info" msgstr "" "\"kọ́ nípa kókó bi pẹ́ńpọtì nígbàtí ò ń dára rẹ láraya nípa fífi àwon " "ọwọ́ rẹ ṣe “ “ìdánilẹ́kọ̀ọ́ ." #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.tutorial-hero.start" msgstr "bẹ̀rẹ̀ ìdánilẹ́kọ̀ọ́" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.tutorial-hero.title" msgstr "gbọ́wọ́ lórí idánilẹ́kọ̀ọ́" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.walkthrough-hero.info" msgstr "rìn kàákiri pẹ́ńpọti kí o lè mọ kókó àwẹn ẹ̀yà ara rẹ̀." #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.walkthrough-hero.start" msgstr "bẹ̀rẹ̀ ìrìn kiri" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.walkthrough-hero.title" msgstr "wò ó bí o ṣe ń rìn kiri" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:202 msgid "dashboard.access-tokens.create" msgstr "ṣe ìpilẹ̀sẹ̀ àmì tókìnnì" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:76 msgid "dashboard.access-tokens.create.success" msgstr "ṣe àyẹ̀wò àmì tókìnnì tí o ṣẹ̀dá bó ṣeyẹ." -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:300 msgid "dashboard.access-tokens.empty.add-one" msgstr "tẹ bọ́tìnnì \" ṣe ìpilẹ̀sẹ̀ àmì tókìnnì tuntun\" láti ṣe ìpilẹ̀sẹ̀ òmíràn." -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:299 msgid "dashboard.access-tokens.empty.no-access-tokens" msgstr "o kò tí ì ní àmì tókínnì títí di ìsinsìn yìí." -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:53 msgid "dashboard.access-tokens.errors-required-name" msgstr "a nílò orúkọ" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:147 msgid "dashboard.access-tokens.expiration-180-days" msgstr "ọgọ́saǹ-ań ọjọ́" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:144 msgid "dashboard.access-tokens.expiration-30-days" msgstr "ọgbọ̀n ọjọ́" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:145 msgid "dashboard.access-tokens.expiration-60-days" msgstr "ọgọ́ta ọjọ́" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:146 msgid "dashboard.access-tokens.expiration-90-days" msgstr "àádọ́ruǹ-ún ọjọ́" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:143 msgid "dashboard.access-tokens.expiration-never" msgstr "rárá" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:282 msgid "dashboard.access-tokens.expired-on" msgstr "ó parí ní %s" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:283 msgid "dashboard.access-tokens.expires-on" msgstr "ó parí %s" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:281 msgid "dashboard.access-tokens.no-expiration" msgstr "kò sì ọjọ́ ìparí" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:197 msgid "dashboard.access-tokens.personal" msgstr "àmì tokìnnì ìwọlé ti ara ẹni" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:198 msgid "dashboard.access-tokens.personal.description" msgstr "" "Iṣẹ́ àmì tókìnì ìwọlé ti ara ẹni dàbì ọ̀nà kejí tí a le gbà wọlé/ ọ̀rọ̀- " "agbaniwọle a lè lo ìfàsẹ sí ètò láti gbaye fún ohun èlò à tì wọlé " "pẹ́ńpọtì ti abẹ́nú api" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:154 msgid "dashboard.access-tokens.token-will-expire" msgstr "àmì tòkìn yóò parí ní %s" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:155 msgid "dashboard.access-tokens.token-will-not-expire" msgstr "kò sí ọjọ́ ìparí fún àmì tókìn" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:291, src/app/main/ui/workspace/main_menu.cljs:572 msgid "dashboard.add-shared" msgstr "ṣe àpàpọ̀ bí i yàrá ìkàwe tí a pín" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:75 msgid "dashboard.change-email" msgstr "pàrọ̀ ímeèlí" -#: src/app/main/data/dashboard.cljs, src/app/main/data/dashboard.cljs +#: src/app/main/data/dashboard.cljs:762, src/app/main/data/dashboard.cljs:983 msgid "dashboard.copy-suffix" msgstr "(dàákọ)" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:338 msgid "dashboard.create-new-team" msgstr "ṣẹ̀dá ẹgbẹ́ tuntun" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/components/context_menu_a11y.cljs:256, src/app/main/ui/dashboard/sidebar.cljs:646 msgid "dashboard.default-team-name" msgstr "pẹ́ńpọtì rẹ" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:571 msgid "dashboard.delete-team" msgstr "pa ẹgbẹ́ rẹ́" +#: src/app/main/ui/dashboard/file_menu.cljs:296, src/app/main/ui/workspace/main_menu.cljs:589 msgid "dashboard.download-binary-file" msgstr "sọ fáìlí pẹ́ńpọtì kalẹ̀ (.penpot)" +#: src/app/main/ui/dashboard/file_menu.cljs:300, src/app/main/ui/workspace/main_menu.cljs:597 msgid "dashboard.download-standard-file" msgstr "sọ fáìlì ìpéwọ̀n kalẹ̀ (.svg + .json)" -#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:276, src/app/main/ui/dashboard/project_menu.cljs:90 msgid "dashboard.duplicate" msgstr "ṣe ẹ̀dà" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:240 msgid "dashboard.duplicate-multi" msgstr "ṣe ẹ̀dà %s fáìlì" -#: src/app/main/ui/dashboard/grid.cljs -#, fuzzy, markdown +#: src/app/main/ui/dashboard/placeholder.cljs:32 +#, markdown msgid "dashboard.empty-placeholder-drafts" msgstr "" -"\"\" fáìlí tí a dàpọ̀ mọ yàrá ìkàwé á hàn níbí yìí. gbìyànjú láti má a pín " -"àwon fáìlì rẹ̀ tàbí ṣàfikún láti ibi [yàrá ìkàwé wa àti àwòṣe " +"\"\" fáìlí tí a dàpọ̀ mọ yàrá ìkàwé á hàn níbí yìí. gbìyànjú láti má a " +"pín àwon fáìlì rẹ̀ tàbí ṣàfikún láti ibi [yàrá ìkàwé wa àti àwòṣe " "](https://penpot.app/libraries-templates.html)." +#: src/app/main/ui/dashboard/file_menu.cljs:249 msgid "dashboard.export-binary-multi" msgstr "sọ àwọn fáìlì pẹ́ẹ́pọtì kalẹ́ %s (.pẹ́ńpọtì)" +#: src/app/main/ui/workspace/main_menu.cljs:605 msgid "dashboard.export-frames" msgstr "fi bọọdù ráńṣẹ bí i PDF" -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:201 msgid "dashboard.export-frames.title" msgstr "fi ráńṣẹ́ bí i PDF" +#, unused msgid "dashboard.export-multi" msgstr "fi pẹ́ńpọtì ráńṣẹ́%s files" -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:109 msgid "dashboard.export-multiple.selected" msgstr "% ti %s ẹ́límẹ́ǹti tí a yàn" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:578 msgid "dashboard.export-shapes" msgstr "fi ráńṣẹ" -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:180 msgid "dashboard.export-shapes.how-to" msgstr "" "o lé ṣe àfikún ti ètò ìfiráńṣẹ si ẹ́límẹ́ǹtì láti bi àmì ohun ìní ( níbi " "ìsàlẹ̀ báà lẹ́gbẹ̀ẹ́ ọ̀tun )." -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:184 msgid "dashboard.export-shapes.how-to-link" msgstr "àlàyé bí a ti ṣètò ìfiráńṣẹ sí pẹ́ńpọtì ." -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:179 msgid "dashboard.export-shapes.no-elements" msgstr "kòsí àwọn ẹ́límẹ́ǹtì pẹ̀lú ètò ìfirańńṣẹ." -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:190 msgid "dashboard.export-shapes.title" msgstr "àṣàyàn ìfiránṣẹ́" +#: src/app/main/ui/dashboard/file_menu.cljs:252 msgid "dashboard.export-standard-multi" msgstr "danlóòdù %s àwọn ojúlówó fáìli (.svg + .json)" +#: src/app/main/ui/export.cljs:427 msgid "dashboard.export.detail" msgstr "* ó le ní àwọn ẹ̀yà ara, àwòrán àti àwon àwọ̀ àti / tàbí àtẹ̀jáde." +#: src/app/main/ui/export.cljs:435 msgid "dashboard.export.options.all.message" msgstr "" "àwọn fáìli tí ó wà nínú yàrá ìkàwé pípín á dàpọ̀ mọ́ ti ìfiráńṣẹ́, fún " "síṣetọ́jútheir linkage ìsopọ̀ wọn." +#: src/app/main/ui/export.cljs:436 msgid "dashboard.export.options.all.title" msgstr "ṣe ìfiráńṣẹ́ yàrá ìkàwé pípín" +#: src/app/main/ui/export.cljs:437 msgid "dashboard.export.options.detach.message" msgstr "" "Shared libraries will not be included in the export and no assets will be " "yàrá ìkàwé pípín kò ní sí nínú ti ìfiráńṣẹ́ àti pé kò ni ohun ìní kan tí " "a ó fi kún yàrá ìkàwé. " +#: src/app/main/ui/export.cljs:438 msgid "dashboard.export.options.detach.title" msgstr "ṣe ìtọ́jú ohun ìní iyàrá ìkàwé pípín bí i nǹkan tó jẹ́ kókó" +#: src/app/main/ui/export.cljs:439 msgid "dashboard.export.options.merge.message" msgstr "" "á fi fáìlì rẹ ráńṣẹ́ pẹ̀lú gbogbo àwọn ohun ìní tó wà láyìíka ni a ó papọ̀ " "sínú fáìlì yàrá ìkàwé." +#: src/app/main/ui/export.cljs:440 msgid "dashboard.export.options.merge.title" msgstr "da ohun ìní yàrá ìkàwé pípín pọ̀ mọ́ fáìlì yàrá ìkàwé" +#: src/app/main/ui/export.cljs:418 msgid "dashboard.export.title" msgstr "fi àwọn fáìlì ráńṣẹ" +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:309 msgid "dashboard.fonts.deleted-placeholder" msgstr "fọ́ǹtì tó sọnù" -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:206 msgid "dashboard.fonts.dismiss-all" msgstr "yọ gbogbo wọn kúrò" +#: src/app/main/ui/dashboard/fonts.cljs:436 msgid "dashboard.fonts.empty-placeholder" msgstr "àwọn fọ́ǹtì tí o ọpulóòdù yó hàn níbí." +#: src/app/main/ui/dashboard/fonts.cljs:170 #, markdown msgid "dashboard.fonts.hero-text1" msgstr "" @@ -456,6 +500,7 @@ msgstr "" "soso**. O lè ọpulóòdù fọ́ǹtì pẹ̀lú àwọn ìlànà wọ̀nyí: **TTF, OTF and " "WOFF** (ẹyọ kan péré la ó nílò)." +#: src/app/main/ui/dashboard/fonts.cljs:182 #, markdown msgid "dashboard.fonts.hero-text2" msgstr "" @@ -464,10 +509,11 @@ msgstr "" "òfin pẹ́ńpọtìiṣẹ́](https://pẹ́ńpọtì.apù/àwọn òfin.html). o sì le fẹ́ kà " "nípa[ ìwé àṣẹ- pẹ́ńpọtì](https://www.taipogíráfì.com/faq)." -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:202 msgid "dashboard.fonts.upload-all" msgstr "ọpulóòdù gbogbo rẹ̀" +#: src/app/main/ui/dashboard/fonts.cljs:187 #, markdown msgid "dashboard.fonts.warning-text" msgstr "" @@ -478,4056 +524,4528 @@ msgstr "" "Ní àfikún, a rẹkọmẹ́ǹdì lílo[tíráńsìfọtà(https://tíráńsìfọtà.org/) láti " "pilẹ̀ṣẹ̀ àwọn wẹ́bù fọ́ǹtì láti túnṣeàsìṣe. " +#: src/app/main/ui/dashboard/import.cljs:472, src/app/main/ui/dashboard/project_menu.cljs:108 msgid "dashboard.import" msgstr "gbé àwọn fáìlì pẹ́ńpọtì wọlé" +#: src/app/main/ui/dashboard/import.cljs:304, src/app/worker/import.cljs:753, src/app/worker/import.cljs:755 msgid "dashboard.import.analyze-error" msgstr "ooho! a kò lè gbé fáìlì yìí wọlé" +#: src/app/main/ui/dashboard/import.cljs:308 msgid "dashboard.import.import-error" msgstr "wàhálà wà láti gbé kan wà láti gbé fáìlì wọlé . fáìlì kò wọlé." +#: src/app/main/ui/dashboard/import.cljs:481, src/app/main/ui/dashboard/import.cljs:488 msgid "dashboard.import.import-warning" msgstr "àwọn fáìlì tí ó ní nǹkan tí kò fẹsẹ múlẹ̀ ti di yíyọ kúro." +#: src/app/main/ui/dashboard/import.cljs:144 msgid "dashboard.import.progress.process-colors" msgstr "síṣe ètò àwọ̀" +#: src/app/main/ui/dashboard/import.cljs:153 msgid "dashboard.import.progress.process-components" msgstr "síṣe ètò àwọn irin iṣẹ́" +#: src/app/main/ui/dashboard/import.cljs:150 msgid "dashboard.import.progress.process-media" msgstr "síṣe ètò àwọn ohun ìgbéròyìn jáde" +#: src/app/main/ui/dashboard/import.cljs:141 msgid "dashboard.import.progress.process-page" msgstr "síṣe ètò ojú ìwe : %s" +#: src/app/main/ui/dashboard/import.cljs:147 msgid "dashboard.import.progress.process-typographies" msgstr "síṣe ètò àkọsílẹ̀ ojú ìwé" +#: src/app/main/ui/dashboard/import.cljs:135 msgid "dashboard.import.progress.upload-data" msgstr "ọpulóòdù dátà sínú sáfà (%s/%s)" +#: src/app/main/ui/dashboard/import.cljs:138 msgid "dashboard.import.progress.upload-media" msgstr "ọpulóòdù fáìlì: %s" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:109 msgid "dashboard.invite-profile" msgstr "pe àwọn ènìyàn" -#: src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:547, src/app/main/ui/dashboard/sidebar.cljs:556, src/app/main/ui/dashboard/sidebar.cljs:563, src/app/main/ui/dashboard/team.cljs:312 msgid "dashboard.leave-team" msgstr "fẹgbẹ́ sílẹ̀" +#: src/app/main/ui/dashboard/templates.cljs:88, src/app/main/ui/dashboard/templates.cljs:163 msgid "dashboard.libraries-and-templates" msgstr "yàrá ìkàwé àti àwọn àwòṣe" +#: src/app/main/ui/dashboard/templates.cljs:164 msgid "dashboard.libraries-and-templates.explore" msgstr "ṣe ìwákiri ọ̀pọ̀ wọn kí o sì mọ bí ó ṣe sojúṣe tiẹ" +#: src/app/main/ui/dashboard/import.cljs:365 msgid "dashboard.libraries-and-templates.import-error" msgstr "wàhálà wà fún gbígbé tẹ́ńpílétì wọlé. tẹ́ńpílétì kò wọlé." -#: src/app/main/ui/dashboard/libraries.cljs +#: src/app/main/ui/dashboard/libraries.cljs:53 msgid "dashboard.libraries-title" msgstr "yàrá ìkàwé" -#: src/app/main/ui/dashboard/grid.cljs +#: src/app/main/ui/dashboard/placeholder.cljs:45 msgid "dashboard.loading-files" msgstr "ṣe ìkójọpọ̀ àwọn fáìlí rẹ …" +#: src/app/main/ui/dashboard/fonts.cljs:431 msgid "dashboard.loading-fonts" msgstr "ṣèkójọpọ̀ àwọ fọ́ǹtì rẹ …" -#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:281, src/app/main/ui/dashboard/project_menu.cljs:100 msgid "dashboard.move-to" msgstr "gbé lọ" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:245 msgid "dashboard.move-to-multi" msgstr "gbé %s àwọn fáìlì lọ" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:226 msgid "dashboard.move-to-other-team" msgstr "gbé lọ sí ẹgbẹ́ mìíràn" -#: src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/files.cljs +#: src/app/main/ui/dashboard/files.cljs:105, src/app/main/ui/dashboard/projects.cljs:252, src/app/main/ui/dashboard/projects.cljs:253 msgid "dashboard.new-file" msgstr "+ fáìlì tuntun" -#: src/app/main/data/dashboard.cljs +#: src/app/main/data/dashboard.cljs:958, src/app/main/data/dashboard.cljs:1181 msgid "dashboard.new-file-prefix" msgstr "fáìlì tuntun" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:55 msgid "dashboard.new-project" msgstr "+ iṣẹ́ àgbéṣe tuntun" -#: src/app/main/data/dashboard.cljs +#: src/app/main/data/dashboard.cljs:726, src/app/main/data/dashboard.cljs:1184 msgid "dashboard.new-project-prefix" msgstr "iṣẹ́ àgbéṣe tuntun" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:60 msgid "dashboard.no-matches-for" msgstr "kò sí èyí tó báramu fún un“%s“" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:827 msgid "dashboard.no-projects-placeholder" msgstr "àwon iṣẹ́ àgbéṣe tí a kànpọ á hàn níbí" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:33 msgid "dashboard.notifications.email-changed-successfully" msgstr "a ti mú ímeèlì rẹ dójú ìwọn dáadáa" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:27 msgid "dashboard.notifications.email-verified-successfully" msgstr "a ti ṣe ìwádìí ímeèlì rẹ dáadáa" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:37 msgid "dashboard.notifications.password-saved" msgstr "a ti fi ọ̀rọ̀ ìgbaniwọlé rẹ pamọ́ dáadáa!" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1081 msgid "dashboard.num-of-members" msgstr "%s àwọn ọmọ ẹgbẹ́" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:267 msgid "dashboard.open-in-new-tab" msgstr "ṣí fáìlì sínú tábù tuntun" +#: src/app/main/ui/dashboard/files.cljs:117, src/app/main/ui/dashboard/projects.cljs:260, src/app/main/ui/dashboard/projects.cljs:261 msgid "dashboard.options" msgstr "àwọn àṣàyàn" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:106, src/app/main/ui/settings/password.cljs:119 msgid "dashboard.password-change" msgstr "yí ọ̀rọ̀ ìgbaniwọlé padà" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/pin_button.cljs:24, src/app/main/ui/dashboard/project_menu.cljs:95 msgid "dashboard.pin-unpin" msgstr "pínì/yọ pínì kúrò" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:51 msgid "dashboard.projects-title" msgstr "àwọn iṣẹ́ àgbéṣe" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:86 msgid "dashboard.remove-account" msgstr "o fẹ́ yọ àkáǹtì rẹ kúro?" #: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "dashboard.remove-shared" msgstr "yọ ọ́ kúrò gẹ́gẹ́ bí yàrá kàwé pípín" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:78 msgid "dashboard.save-settings" msgstr "fi àwọn eto pamọ́" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:246, src/app/main/ui/dashboard/sidebar.cljs:247 msgid "dashboard.search-placeholder" msgstr "ṣàwárí…" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:55 msgid "dashboard.searching-for" msgstr "ṣàwárí fún “%s“…" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:56 msgid "dashboard.select-ui-language" msgstr "yan èdè ui" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:63 msgid "dashboard.select-ui-theme" msgstr "yan àkọlé" -#: src/app/main/ui/dashboard/grid.cljs +#: src/app/main/ui/dashboard/projects.cljs:282 msgid "dashboard.show-all-files" msgstr "fi gbogbo àwn fáìlì hàn" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:59 msgid "dashboard.success-delete-project" msgstr "iṣẹ́ àgbéṣe rẹ ti parẹ́ dáadáa" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:33 msgid "dashboard.success-duplicate-project" msgstr "a ti ṣe ẹ̀dà iṣẹ́ àgbéṣe rẹ dáadáa" -#: src/app/main/ui/dashboard/grid.cljs, src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:130, src/app/main/ui/dashboard/grid.cljs:558, src/app/main/ui/dashboard/sidebar.cljs:152 msgid "dashboard.success-move-file" msgstr "a ti gbé fáìlì rẹ kúro dáadáa" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:129 msgid "dashboard.success-move-files" msgstr "a ti gbé àwọn fáìlì rẹ kúrò dáadáa" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:54 msgid "dashboard.success-move-project" msgstr "a ti gbé iṣẹ́ àgbéṣe rẹ kúrò dáadáa" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1052 msgid "dashboard.team-info" msgstr "àlàyé ẹgbẹ́" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1070 msgid "dashboard.team-members" msgstr "àwọn ọmọ ẹgbẹ́" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1085 msgid "dashboard.team-projects" msgstr "iṣẹ́ àgbéṣe ọmọ ẹgbẹ́" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:61 msgid "dashboard.theme-change" msgstr "àkọlé ui" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:42 msgid "dashboard.title-search" msgstr "ṣàwárí àwọn èsì" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:50 msgid "dashboard.type-something" msgstr "tẹ̀ láti rí àwọn èsì" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:287, src/app/main/ui/workspace/main_menu.cljs:566 msgid "dashboard.unpublish-shared" msgstr "yàrá ìkàwé tí a kòtí ì gbé jáde" -#: src/app/main/ui/settings/password.cljs, src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:71 msgid "dashboard.update-settings" msgstr "mú àwọn ètò dójú ìwọ̀n" +#: src/app/main/ui/dashboard/team.cljs:861 msgid "dashboard.webhooks.active" msgstr "ti ń siṣẹ́" +#: src/app/main/ui/dashboard/team.cljs:862 msgid "dashboard.webhooks.active.explain" msgstr "When this hook is triggered event details will be delivered" +#: src/app/main/ui/dashboard/team.cljs:852 msgid "dashboard.webhooks.content-type" msgstr "ẹ̀yà kọ́ńtẹ́ǹtì" +#: src/app/main/ui/dashboard/team.cljs:885 msgid "dashboard.webhooks.create" msgstr "ṣẹ̀dá ìkọ́-wẹ́bù" +#: src/app/main/ui/dashboard/team.cljs:775 msgid "dashboard.webhooks.create.success" msgstr "a ti ṣẹ̀dá ìkọ́-wẹ́bù dáadáa ." +#: src/app/main/ui/dashboard/team.cljs:882 msgid "dashboard.webhooks.description" msgstr "" "àwọn ìkọ́-wẹ́bù jẹ́ ọ̀nà tó rọrùn láti fi ààyè sílẹ̀ fún àwọn ààyè " "ayélujára mìíràn àti awọn ápù ṣe filọ́ tí àwọn ìṣẹ̀lẹ̀ kan bá ní " "pẹ́ńpọtì’’ a ó fi ìbéèrè ráńṣẹ́ sí ọ̀kọ̀kan wọn tí urls tó o pèsè." +#: src/app/main/ui/dashboard/team.cljs:1005 msgid "dashboard.webhooks.empty.add-one" msgstr "tẹ bọ́tínnì \"fikún ìkọ́- wẹ́bù\" láti fì kan sí i." +#: src/app/main/ui/dashboard/team.cljs:1004 msgid "dashboard.webhooks.empty.no-webhooks" msgstr "kò sí ìkọ́-wẹ́bù tí a ṣẹ̀da´dì sisìnyí." -#: src/app/main/ui/settings.cljs +#: src/app/main/ui/settings.cljs:31 msgid "dashboard.your-account-title" msgstr "àkáǹtì rẹ" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:70 msgid "dashboard.your-email" msgstr "ímeèlì" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:62 msgid "dashboard.your-name" msgstr "ímeèlì rẹ" -#: src/app/main/ui/dashboard/search.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/libraries.cljs, src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:38, src/app/main/ui/dashboard/fonts.cljs:33, src/app/main/ui/dashboard/libraries.cljs:42, src/app/main/ui/dashboard/projects.cljs:318, src/app/main/ui/dashboard/search.cljs:30, src/app/main/ui/dashboard/sidebar.cljs:312, src/app/main/ui/dashboard/team.cljs:495, src/app/main/ui/dashboard/team.cljs:729, src/app/main/ui/dashboard/team.cljs:991, src/app/main/ui/dashboard/team.cljs:1038 msgid "dashboard.your-penpot" msgstr "pẹ́ńpọtì rẹ" -#: src/app/main/ui/alert.cljs +#: src/app/main/ui/alert.cljs:32 msgid "ds.alert-ok" msgstr "ó dára" -#: src/app/main/ui/alert.cljs +#: src/app/main/ui/alert.cljs:31, src/app/main/ui/alert.cljs:34 msgid "ds.alert-title" msgstr "àkíyèsí" -#: src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:83 msgid "ds.component-subtitle" msgstr "ní láti ṣe ìmúdójú ìwọ̀n àwọn irin iṣẹ́:" -#: src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:36, src/app/main/ui/workspace/plugins.cljs:246 msgid "ds.confirm-cancel" msgstr "fagilé e" -#: src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:37, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:141 msgid "ds.confirm-ok" msgstr "ó dára" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:62 msgid "errors.auth-provider-not-configured" msgstr "a kò tí ì fàṣẹ si àtúntò olùpèṣè." +#: src/app/main/errors.cljs:104 msgid "errors.auth.unable-to-login" msgstr "ó dàbí pé o kò tí ì fàṣẹ sí i tàbí àkókò ti kọjá ." +#: src/app/main/data/fonts.cljs:189 msgid "errors.bad-font" msgstr "fọ́ǹtì %s kò ṣe kójọpọ̀" +#: src/app/main/data/fonts.cljs:188 msgid "errors.bad-font-plural" msgstr "àwọn fọ́ǹtì %s kò ṣe kójọpọ̀" +#: src/app/main/data/workspace/media.cljs:198 msgid "errors.cannot-upload" msgstr "kò le ọpulóòdù fáìlì ìgbéròyìn-jáde." -#: src/app/main/data/workspace.cljs +#: src/app/main/data/workspace.cljs:1598 msgid "errors.clipboard-not-implemented" msgstr "a ṣàwákiri rẹ kò le ṣe iṣẹ́ yìí" -#: src/app/main/ui/auth/verify_token.cljs, src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/auth/verify_token.cljs:82, src/app/main/ui/settings/change_email.cljs:46 msgid "errors.email-already-exists" msgstr "ímeèlì yìí ti jẹ́ lílò tẹ́lẹ" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:87 msgid "errors.email-already-validated" msgstr "a ti fọwọ́ sí ímeèlì rẹ tẹ́lẹ̀." +#: src/app/main/ui/settings/password.cljs:28 msgid "errors.email-as-password" msgstr "o kò le lo ímeèlì rẹ gẹ́gẹ́ bí ọ̀rọ̀ ìgbaniwọlé" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/settings/change_email.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/auth/recovery_request.cljs:63, src/app/main/ui/dashboard/team.cljs:578, src/app/main/ui/settings/change_email.cljs:54 msgid "errors.email-has-permanent-bounces" msgstr "Ímeèlì «%s» ti ní ìjábọ̀ ọ̀pọ̀ọlọpọ̀ ìta-bọn-ọ̀n ti pẹ́." -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs, src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/login.cljs:81, src/app/main/ui/auth/recovery_request.cljs:31, src/app/main/ui/auth/register.cljs:43 msgid "errors.email-invalid" msgstr "Tẹ àti wọlé pẹ̀lú ímeèlì tó wúlo jọ̀wọ́" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:35 msgid "errors.email-invalid-confirmation" msgstr "Ímeèlì tí a ti mọ̀dájú gbọ́dọ̀ báramu" +#: src/app/main/ui/dashboard/team.cljs:170 msgid "errors.email-spam-or-permanent-bounces" msgstr "Ímeèlì ti «%s» ń jábọ̀ gẹ́gẹ́ bí i awúrúju tàbí ìta-bọ̀n-ọnọǹ tipẹ́." -#: src/app/main/errors.cljs +#: src/app/main/errors.cljs:231, src/app/main/errors.cljs:245 msgid "errors.feature-not-supported" msgstr "Àwọn ẹ̀yà ara ẹ̀rọ '%s' kò ní àtìlẹ́yìn." -#: src/app/main/ui/auth/verify_token.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/data/users.cljs:709, src/app/main/ui/auth/login.cljs:65, src/app/main/ui/auth/login.cljs:116, src/app/main/ui/auth/register.cljs:69, src/app/main/ui/auth/register.cljs:237, src/app/main/ui/auth/verify_token.cljs:92, src/app/main/ui/dashboard/team.cljs:173, src/app/main/ui/onboarding/team_choice.cljs:95, src/app/main/ui/settings/access_tokens.cljs:91, src/app/main/ui/settings/feedback.cljs:52 msgid "errors.generic" msgstr "Àsìṣe kan ti ṣẹlẹ̀." -#: src/app/main/ui/components/color_input.cljs +#: src/app/main/ui/components/color_input.cljs:57 msgid "errors.invalid-color" msgstr "àwọ̀ tó ti díbàjẹ́" +#: src/app/main/ui/static.cljs:44 msgid "errors.invite-invalid.info" msgstr "Èyí tí a pè le parẹ́ tàbí ki àkókò lekọjá ." -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:101 msgid "errors.ldap-disabled" msgstr "Ìfàṣẹsí LDAP kò ṣe é ṣe ." -#: src/app/main/errors.cljs +#: src/app/main/errors.cljs:239 msgid "errors.max-quote-reached" msgstr "O ti débi '%s' ìfàmìsí. Késí i pẹ̀lú àtìlẹ́yìn ." -#: src/app/main/data/workspace/persistence.cljs +#: src/app/main/data/workspace/media.cljs:184 msgid "errors.media-too-large" msgstr "Àwòrán tóbi púpọ ju ohun tí a le fisí lọ." -#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/workspace/persistence.cljs, src/app/main/data/workspace/persistence.cljs, src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs +#: src/app/main/data/media.cljs:65, src/app/main/data/workspace/media.cljs:172, src/app/main/data/workspace/media.cljs:175, src/app/main/data/workspace/media.cljs:178, src/app/main/data/workspace/media.cljs:181 msgid "errors.media-type-not-allowed" msgstr "Ó dàbí pé èyí kì í ṣe àwòrán tó fẹsẹ́ múlẹ̀." -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:574 msgid "errors.member-is-muted" msgstr "" "Pírófáìlì ímeèlì tí ò ǹ pè ti dákẹ (ti jábọ̀ àwúrúju tàbí ìtabọ̀n-ọ̀n tó " "ga)." -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:61 msgid "errors.password-invalid-confirmation" msgstr "Ijẹ́rìísí ọ̀rọ̀ ìgbaniwọlé rẹ gbọ́dọ̀ báramu" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:64 msgid "errors.password-too-short" msgstr "Ọ̀rọ̀ ìgbaniwọlé kò gbọdọ̀ dín ní lẹ́tà mẹ́jọ" +#: src/app/main/data/users.cljs:703, src/app/main/ui/auth/login.cljs:97, src/app/main/ui/auth/login.cljs:105 msgid "errors.profile-blocked" msgstr "Ti dínà mọ́ pírófáìlì" -#: src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/settings/change_email.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/auth/recovery_request.cljs:60, src/app/main/ui/dashboard/team.cljs:164, src/app/main/ui/dashboard/team.cljs:570, src/app/main/ui/settings/change_email.cljs:50 msgid "errors.profile-is-muted" msgstr "Ímeèlì pírófáìlì rẹ ti ní ìdákẹ́ (ìjábọ̀ àwúrúju tàbí ìtabọ̀n-ọ̀n tó ga)." -#: src/app/main/ui/auth/register.cljs +#: src/app/main/data/users.cljs:701, src/app/main/ui/auth/register.cljs:60 msgid "errors.registration-disabled" msgstr "Ìforúkọ-sílẹ̀ kò ṣe é ṣe lọ́wọ́lọ́wọ́." +#: src/app/main/ui/dashboard/sidebar.cljs:365, src/app/main/ui/dashboard/team.cljs:359 msgid "errors.team-leave.insufficient-members" msgstr "kí àwọn ọmọ ẹgbẹ́ tí kò péye fi ẹgbẹ́ sílẹ̀, àbí bóyá o fẹ́ paárẹ́ ni ." +#: src/app/main/ui/dashboard/sidebar.cljs:368, src/app/main/ui/dashboard/team.cljs:362 msgid "errors.team-leave.member-does-not-exists" msgstr "Kòsí ọmọ ẹgbẹ́ tí o fẹ́ yàn ." +#: src/app/main/ui/dashboard/sidebar.cljs:371, src/app/main/ui/dashboard/team.cljs:365 msgid "errors.team-leave.owner-cant-leave" msgstr "Oní nǹkan kò le fi ẹgbẹ́ sílẹ̀ , o gbọ́dọ̀ tún ṣe àtúnyàn iṣẹ́ oní nǹkan." -#: src/app/main/data/media.cljs, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs +#: src/app/main/data/media.cljs:71 msgid "errors.unexpected-error" msgstr "Àsìṣe tí a kòrò tẹ́lẹ̀ ti ṣẹlẹ." -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:60 msgid "errors.unexpected-token" msgstr "Tókìnnì àìmọ̀" +#: src/app/main/ui/dashboard/team.cljs:796 msgid "errors.webhooks.connection" msgstr "Àsìṣe nínú ètò ìsopọ̀, kò lè dé ibi URL" +#: src/app/main/ui/dashboard/team.cljs:790 msgid "errors.webhooks.invalid-uri" msgstr "URL kò páásì ìfọwọ́sí." -#, fuzzy +#: src/app/main/ui/dashboard/team.cljs:949 msgid "errors.webhooks.last-delivery" msgstr "Èyí tí a fijíṣẹ́ kẹ́yìn kò dára." +#: src/app/main/ui/dashboard/team.cljs:792, src/app/main/ui/dashboard/team.cljs:952 msgid "errors.webhooks.ssl-validation" msgstr "Àsìṣe nínú ìfẹwọ́sí SSL ." +#: src/app/main/ui/dashboard/team.cljs:794 msgid "errors.webhooks.timeout" msgstr "Àkókò ti lọ" +#: src/app/main/ui/dashboard/team.cljs:788 msgid "errors.webhooks.unexpected" msgstr "Unexpected error on validating àsìṣe àìròtẹ́lẹ̀ lórí ìfọwọ́sí" +#: src/app/main/ui/dashboard/team.cljs:798, src/app/main/ui/dashboard/team.cljs:955 msgid "errors.webhooks.unexpected-status" msgstr "Ipò àìròtẹ́lẹ̀ %s" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:109, src/app/main/ui/auth/login.cljs:113 msgid "errors.wrong-credentials" msgstr "Ímeèlì tàbí ọ̀rọ̀ ìgbaniwọlé kò tọ̀nà." -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:25 msgid "errors.wrong-old-password" msgstr "Ọ̀rọ̀ ìgbaniwọlé ti àtijọ́ kò tọ̀nà" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:77 msgid "feedback.description" msgstr "Àpèjúwe" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:95 msgid "feedback.discourse-go-to" msgstr "Lọ ibi àpérò pẹ́ńpọtì" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:89 msgid "feedback.discourse-subtitle1" msgstr "" "Inú wa dùn láti rí ẹ níbí. Tí o bá nílò ìrànlọ́wọ, please search before " "you jọ̀wọ́ ṣàwárí kí o tó firáńṣẹ́." -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:88 msgid "feedback.discourse-title" msgstr "Agbègbè pẹ́ńpọtì" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:72 msgid "feedback.subject" msgstr "Kókó-ọ̀rọ̀" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:69 msgid "feedback.subtitle" msgstr "" "Jọ̀wọ́ ṣàpèjúwe ìdí tó wà fún ímeèlì rẹ, ṣàfihàn tì àríyànjiyàn bá wà, le " "jẹ́ èrò tàbí síṣe iyèméjì. Ìkan lára àwọn ọmọ ẹgbẹ́ wa yóò dáhùn láìpẹ́ " "láìjìnnà." -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:68 msgid "feedback.title" msgstr "Ímeèlì" -#: src/app/main/ui/settings/feedback.cljs -#, fuzzy +#: src/app/main/ui/settings/feedback.cljs:105 msgid "feedback.twitter-go-to" msgstr "Lọ sí Tíwítà" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:99 msgid "feedback.twitter-subtitle1" msgstr "A wà níbí láti ṣe ìrànlọ́wọ́ fún àwọn ìbéèrè tó bá wà lórí iṣẹ́ ọnà." -#: src/app/main/ui/settings/feedback.cljs -#, fuzzy +#: src/app/main/ui/settings/feedback.cljs:98 msgid "feedback.twitter-title" msgstr "Àkáùnti àtìlẹ́yìn fún Tíwítà" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:30 msgid "generic.error" msgstr "Àsìṣe kan ti ṣẹlẹ̀" -#: src/app/main/ui/inspect/attributes/blur.cljs +#: src/app/main/ui/viewer/inspect/attributes/blur.cljs:26 msgid "inspect.attributes.blur" msgstr "ìkùku ti wà" -#: src/app/main/ui/inspect/attributes/blur.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:115 msgid "inspect.attributes.blur.value" msgstr "bó se péye" -#: src/app/main/ui/inspect/attributes/common.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:112 msgid "inspect.attributes.color.hex" msgstr "dínà mọ́" -#: src/app/main/ui/inspect/attributes/common.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:114 msgid "inspect.attributes.color.hsla" msgstr "Ti dínà mọ" -#: src/app/main/ui/inspect/attributes/common.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:113 msgid "inspect.attributes.color.rgba" msgstr "RGBA" -#: src/app/main/ui/inspect/attributes/fill.cljs +#: src/app/main/ui/viewer/inspect/attributes/fill.cljs:57 msgid "inspect.attributes.fill" msgstr "Fílì" -#: src/app/main/ui/inspect/attributes/image.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:99, src/app/main/ui/viewer/inspect/attributes/image.cljs:51 msgid "inspect.attributes.image.download" msgstr "Danlóòdù orísun àwòrán" -#: src/app/main/ui/inspect/attributes/image.cljs +#: src/app/main/ui/viewer/inspect/attributes/image.cljs:39 msgid "inspect.attributes.image.height" msgstr "Gíga" -#: src/app/main/ui/inspect/attributes/image.cljs +#: src/app/main/ui/viewer/inspect/attributes/image.cljs:32 msgid "inspect.attributes.image.width" msgstr "Fífẹ" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout" msgstr "Layout" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.height" msgstr "Gíga" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.left" msgstr "Òsì" #: src/app/main/ui/inspect/attributes/layout.cljs, src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.radius" msgstr "Rédíọ́sì" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.rotation" msgstr "Yíyí" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.top" msgstr "Òkè" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.width" msgstr "Fífẹ̀" -#: src/app/main/ui/inspect/attributes/shadow.cljs +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:57 msgid "inspect.attributes.shadow" msgstr "Ibòòji" -#: src/app/main/ui/inspect/attributes/layout.cljs +#: src/app/main/ui/viewer/inspect/attributes/geometry.cljs:40 msgid "inspect.attributes.size" msgstr "Ìwọ̀n àti ipò" -#: src/app/main/ui/inspect/attributes/stroke.cljs +#: src/app/main/ui/viewer/inspect/attributes/stroke.cljs:52 msgid "inspect.attributes.stroke" msgstr "Stroke Sítírókì" -#, permanent +#, permanent, unused msgid "inspect.attributes.stroke.alignment.center" msgstr "Ààrin" -#, permanent +#, permanent, unused msgid "inspect.attributes.stroke.alignment.inner" msgstr "Nínú" -#, permanent +#, permanent, unused msgid "inspect.attributes.stroke.alignment.outer" msgstr "Ìtá" +#, unused msgid "inspect.attributes.stroke.style.dotted" msgstr "ti sàmì" +#, unused msgid "inspect.attributes.stroke.style.mixed" msgstr "Àdàlú" +#, unused msgid "inspect.attributes.stroke.style.none" msgstr "Kò sí" +#, unused msgid "inspect.attributes.stroke.style.solid" msgstr "Lágbára" #: src/app/main/ui/inspect/attributes/stroke.cljs +#, unused msgid "inspect.attributes.stroke.width" msgstr "Fífẹ̀" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:81, src/app/main/ui/viewer/inspect/attributes/text.cljs:194 msgid "inspect.attributes.typography" msgstr "Taipogíráfì" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:89 msgid "inspect.attributes.typography.font-family" msgstr "Ẹbí Fọ́ǹtì" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:107 msgid "inspect.attributes.typography.font-size" msgstr "Ìwọ̀n Fọ́ǹtì" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:98 msgid "inspect.attributes.typography.font-style" msgstr "Àrà Fọ́ǹtì" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:116 msgid "inspect.attributes.typography.font-weight" msgstr "Ìwúwo Fọ́ǹtì" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:134 msgid "inspect.attributes.typography.letter-spacing" msgstr "Ìfàyè sí ààrin Lẹ́tà" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:125 msgid "inspect.attributes.typography.line-height" msgstr "Gíga Ìlà" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:143 msgid "inspect.attributes.typography.text-decoration" msgstr "Síṣe ọ̀rọ̀ lọ́ṣọ̀ọ́" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:145 msgid "inspect.attributes.typography.text-decoration.none" msgstr "Kò sí" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:146 msgid "inspect.attributes.typography.text-decoration.strikethrough" msgstr "Strikethrough" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:147 msgid "inspect.attributes.typography.text-decoration.underline" msgstr "Fàlà sí" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:156 msgid "inspect.attributes.typography.text-transform" msgstr "ọ̀rọ̀ ti yí padà" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:158 msgid "inspect.attributes.typography.text-transform.lowercase" msgstr "Lẹ́tà Kékeré" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:159 msgid "inspect.attributes.typography.text-transform.none" msgstr "Kò sí" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:160 msgid "inspect.attributes.typography.text-transform.titlecase" msgstr "Àkọlé Lẹ́tà" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:161 msgid "inspect.attributes.typography.text-transform.uppercase" msgstr "Lẹ́tà ńlá" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:140 msgid "inspect.empty.help" msgstr "" "Tí o bá fẹ́ mọ̀ nípa àpẹẹrẹ alárà bẹ ààrin gbùngbùn àwọn pẹ́ńpọtì wò fún " "ìràlọ́wọ́" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:143 msgid "inspect.empty.more-info" msgstr "Àfikún àlàyé fún ìbẹ̀wò" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:135 msgid "inspect.empty.select" msgstr "Yan ìrísí, bọ́ọ̀dù tàbí ẹgbẹ́ láti lọ ṣe ìbẹ̀wò ohun ìní wọn àti kóòdù" -#: src/app/main/ui/inspect/right_sidebar.cljs +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:125 msgid "inspect.tabs.code" msgstr "Kóòdù" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:98 msgid "inspect.tabs.code.selected.circle" msgstr "Àyíká" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:99 msgid "inspect.tabs.code.selected.component" msgstr "Ẹ̀yà" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:100 msgid "inspect.tabs.code.selected.curve" msgstr "Igun" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:101 msgid "inspect.tabs.code.selected.frame" msgstr "Bọ́ọ̀dù" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:102 msgid "inspect.tabs.code.selected.group" msgstr "Ẹgbẹ́" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:103 msgid "inspect.tabs.code.selected.image" msgstr "Àwòrán" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:104 msgid "inspect.tabs.code.selected.mask" msgstr "Ìbòjú" -#: src/app/main/ui/inspect/right_sidebar.cljs +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:93 msgid "inspect.tabs.code.selected.multiple" msgstr "%s Ti yàn" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:105 msgid "inspect.tabs.code.selected.path" msgstr "Ipa-ọ̀nà" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:106 msgid "inspect.tabs.code.selected.rect" msgstr "Rectangle" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:107 msgid "inspect.tabs.code.selected.svg-raw" msgstr "SVG" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:108 msgid "inspect.tabs.code.selected.text" msgstr "Ọ̀rọ̀" -#: src/app/main/ui/inspect/right_sidebar.cljs +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:115 msgid "inspect.tabs.info" msgstr "Àlàyé" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:158 msgid "label.shortcuts" msgstr "Ọ̀nà àbùjá" -#: src/app/main/ui/settings/sidebar.cljs +#: src/app/main/ui/settings/sidebar.cljs:100 msgid "labels.access-tokens" msgstr "Ṣàyẹ̀wò tókín-nì" +#: src/app/main/ui/dashboard/team.cljs:968 msgid "labels.active" msgstr "Ń siṣẹ́" +#: src/app/main/ui/dashboard/fonts.cljs:175 msgid "labels.add-custom-font" msgstr "Ṣàfikún àṣà Fọ́ǹtì" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:120, src/app/main/ui/dashboard/team.cljs:276, src/app/main/ui/dashboard/team.cljs:519, src/app/main/ui/dashboard/team.cljs:549, src/app/main/ui/onboarding/team_choice.cljs:67 msgid "labels.admin" msgstr "Alábòjútó" +#: src/app/main/ui/onboarding/questions.cljs:174 +msgid "labels.adobe-xd" +msgstr "Àdòbí XD" + #: src/app/main/ui/workspace/comments.cljs +#, unused msgid "labels.all" msgstr "Gbogbo ẹ̀" +#: src/app/main/ui/auth.cljs:37 msgid "labels.and" msgstr "àti" +#: src/app/main/ui/onboarding/team_choice.cljs:162 msgid "labels.back" msgstr "Padá" -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:59 msgid "labels.bad-gateway.desc-message" msgstr "" "Ó dàbí ẹnipé o ní láti dúró díẹ̀ kí o tún gbìyàjú ; à ń siṣẹ́ díẹ̀ síṣe " "ìtọ́jú sáfà wa." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:58 msgid "labels.bad-gateway.main-message" msgstr "Ọ̀nà-àbáwọle búburú" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/data/common.cljs:112, src/app/main/ui/dashboard/change_owner.cljs:69, src/app/main/ui/dashboard/import.cljs:514, src/app/main/ui/dashboard/team.cljs:868, src/app/main/ui/delete_shared.cljs:35, src/app/main/ui/export.cljs:164, src/app/main/ui/export.cljs:460, src/app/main/ui/settings/access_tokens.cljs:188, src/app/main/ui/viewer/share_link.cljs:203, src/app/main/ui/workspace/sidebar/assets/groups.cljs:149 msgid "labels.cancel" msgstr "Párẹ́" +#: src/app/main/ui/onboarding/questions.cljs:176 +msgid "labels.canva" +msgstr "Káńfà" + +#: src/app/main/ui/dashboard/projects.cljs:93, src/app/main/ui/export.cljs:478, src/app/main/ui/settings/access_tokens.cljs:183, src/app/main/ui/viewer/login.cljs:77, src/app/main/ui/viewer/share_link.cljs:174, src/app/main/ui/workspace/libraries.cljs:522 msgid "labels.close" msgstr "Tì í" -#: src/app/main/ui/dashboard/comments.cljs +#: src/app/main/ui/dashboard/comments.cljs:104, src/app/main/ui/viewer/comments.cljs:70, src/app/main/ui/workspace/comments.cljs:126 msgid "labels.comments" msgstr "dásí i" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:985, src/app/main/ui/workspace/main_menu.cljs:110 msgid "labels.community" msgstr "Agbègbè" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:103 msgid "labels.confirm-password" msgstr "Jẹ́rìísí" +#: src/app/main/ui/dashboard/import.cljs:520, src/app/main/ui/export.cljs:465, src/app/main/ui/onboarding/newsletter.cljs:101 msgid "labels.continue" msgstr "Tẹ̀ síwájú" +#, unused msgid "labels.continue-with" msgstr "Tẹ̀ síwájú pẹ̀lú" +#: src/app/main/ui/viewer/login.cljs:75 msgid "labels.continue-with-penpot" msgstr "O lè tẹ̀ síwájú pẹ̀lú àkáúnti pẹ́ńpọtì" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:642 msgid "labels.copy-invitation-link" msgstr "ṣà dàkọ ọ̀nà àsopọ̀" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:157, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:190 msgid "labels.create" msgstr "Ṣẹ̀dá" -#: src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/dashboard/team_form.cljs +#: src/app/main/ui/dashboard/team_form.cljs:101, src/app/main/ui/dashboard/team_form.cljs:121 msgid "labels.create-team" msgstr "Ṣẹ̀dá ẹgbẹ́ tuntun" -#: src/app/main/ui/dashboard/team_form.cljs +#: src/app/main/ui/dashboard/team_form.cljs:113 msgid "labels.create-team.placeholder" msgstr "Fi orúkọ ẹgbẹ́ tuntun wọlé" +#, unused msgid "labels.custom-fonts" msgstr "Kọ́sítọ́mù àwọn fọ́ǹtì" -#: src/app/main/ui/settings/sidebar.cljs +#: src/app/main/ui/settings/sidebar.cljs:73 msgid "labels.dashboard" msgstr "Dáṣìbọọ̀dù" -#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:306, src/app/main/ui/dashboard/fonts.cljs:255, src/app/main/ui/dashboard/fonts.cljs:332, src/app/main/ui/dashboard/fonts.cljs:346, src/app/main/ui/dashboard/project_menu.cljs:115, src/app/main/ui/dashboard/team.cljs:904, src/app/main/ui/settings/access_tokens.cljs:209, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:209 msgid "labels.delete" msgstr "Paárẹ́" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:357 msgid "labels.delete-comment" msgstr "Pa kọ́mẹ́ǹtì rẹ́" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:354 msgid "labels.delete-comment-thread" msgstr "Pa gbogbo kọ́mẹ́ǹtì rẹ́" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:648 msgid "labels.delete-invitation" msgstr "Pa ìfìwépè rẹ́" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:262 msgid "labels.delete-multi-files" msgstr "Pa gbogbo %s fáìlì rẹ́" +#: src/app/main/ui/onboarding/questions.cljs:250 +msgid "labels.developer" +msgstr "Olùdásílẹ̀" + +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:199 msgid "labels.discard" msgstr "Yọ́ kúrò" -#: src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/files.cljs, src/app/main/ui/dashboard/files.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:28, src/app/main/ui/dashboard/files.cljs:72, src/app/main/ui/dashboard/files.cljs:156, src/app/main/ui/dashboard/projects.cljs:220, src/app/main/ui/dashboard/projects.cljs:224, src/app/main/ui/dashboard/sidebar.cljs:791 msgid "labels.drafts" msgstr "Kọ ọ́ sílẹ̀" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:350, src/app/main/ui/dashboard/fonts.cljs:252, src/app/main/ui/dashboard/team.cljs:902, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:205 msgid "labels.edit" msgstr "sàtúnkà" +#, unused msgid "labels.edit-file" msgstr "sàtúnkà fáìlì" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:118, src/app/main/ui/dashboard/team.cljs:279, src/app/main/ui/dashboard/team.cljs:520, src/app/main/ui/dashboard/team.cljs:553, src/app/main/ui/onboarding/team_choice.cljs:66 msgid "labels.editor" msgstr "Olóòtú" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:661 msgid "labels.expired-invitation" msgstr "Kọjá àkókò" +#: src/app/main/ui/export.cljs:173 msgid "labels.export" msgstr "Fi ránṣẹ́" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:51 msgid "labels.feedback-disabled" msgstr "Èsì kò siṣẹ́" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:42 msgid "labels.feedback-sent" msgstr "Èsì ti lọ" +#: src/app/main/ui/onboarding/questions.cljs:170 +msgid "labels.figma" +msgstr "Fígímà" + +#: src/app/main/ui/dashboard/fonts.cljs:412 msgid "labels.font-family" msgstr "Ẹbí fọ́ǹtì" +#, unused msgid "labels.font-providers" msgstr "Àwọn Olùpèṣè fọ́ǹtì" +#: src/app/main/ui/dashboard/fonts.cljs:413 msgid "labels.font-variants" msgstr "Àrà" +#: src/app/main/ui/dashboard/fonts.cljs:52, src/app/main/ui/dashboard/sidebar.cljs:811 msgid "labels.fonts" msgstr "Fọ̀ǹtì" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/onboarding/questions.cljs:263 +msgid "labels.founder" +msgstr "Olùdásílẹ̀/VP" + +#: src/app/main/ui/onboarding/questions.cljs:262 +msgid "labels.freelancer" +msgstr "Oníṣẹ́ ni mí" + +#: src/app/main/ui/dashboard/sidebar.cljs:1015, src/app/main/ui/workspace/main_menu.cljs:142 msgid "labels.github-repo" msgstr "Báǹkì gítì-ọbù" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:1032, src/app/main/ui/settings/sidebar.cljs:113, src/app/main/ui/workspace/main_menu.cljs:171 msgid "labels.give-feedback" msgstr "Fèsì padà" +#: src/app/main/ui/auth/recovery_request.cljs:110, src/app/main/ui/auth/register.cljs:285, src/app/main/ui/viewer/login.cljs:117 msgid "labels.go-back" msgstr "Padà sẹ́yìn" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:978, src/app/main/ui/workspace/main_menu.cljs:102 msgid "labels.help-center" msgstr "Ibi ìranilọ́wọ́" -#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/comments.cljs:103, src/app/main/ui/workspace/comments.cljs:67 msgid "labels.hide-resolved-comments" msgstr "Fi àwọn ọ̀rọ̀ tí a ti yanjú pamọ́" +#: src/app/main/ui/dashboard/team.cljs:969 msgid "labels.inactive" msgstr "kò ja fáfá" +#: src/app/main/ui/dashboard/fonts.cljs:410 msgid "labels.installed-fonts" msgstr "Fi àwọn fọ́ǹtì sí orí ẹ̀rọ" -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:144 msgid "labels.internal-error.desc-message" msgstr "" "Nǹkan bíburú ti ṣẹlè. Jọ̀wọ́ ṣe àtúnṣe iṣẹ́ náà àti pé tí wàhálà bá sì " "tẹ̀ síwájú, ké sí olùbásọ̀rọ̀." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:143 msgid "labels.internal-error.main-message" msgstr "Àsìṣe ti abẹ́nú" -#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/onboarding/questions.cljs:178 +msgid "labels.invision" +msgstr "Ìkógun wọ̀lú" + +#: src/app/main/ui/dashboard/sidebar.cljs:516, src/app/main/ui/dashboard/team.cljs:89, src/app/main/ui/dashboard/team.cljs:97, src/app/main/ui/dashboard/team.cljs:708 msgid "labels.invitations" msgstr "Ìfiwépè" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:51 msgid "labels.language" msgstr "Èdè" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:1008, src/app/main/ui/workspace/main_menu.cljs:134 msgid "labels.libraries-and-templates" msgstr "Àwọn yàrá ìkàwé & Tẹ́ńpílétì" +#: src/app/main/ui/viewer/header.cljs:203 msgid "labels.log-or-sign" msgstr "ṣí kí o wọle tàbí kí o ṣàmì wọlé" -#: src/app/main/ui/settings.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:1040 msgid "labels.logout" msgstr "Padé kí ojáde" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/onboarding/questions.cljs:253 +msgid "labels.marketing" +msgstr "Títajà" + +#: src/app/main/ui/dashboard/team.cljs:468 msgid "labels.member" msgstr "Ẹgbẹ" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:510, src/app/main/ui/dashboard/team.cljs:87, src/app/main/ui/dashboard/team.cljs:95 msgid "labels.members" msgstr "Àwọn ọmọ Ẹgbẹ́" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:96 msgid "labels.new-password" msgstr "Ọ̀rọ̀ Ìgbaniwọlé tuntun" -#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/dashboard/comments.cljs +#: src/app/main/ui/dashboard/templates.cljs:269, src/app/main/ui/onboarding/questions.cljs:55 +msgid "labels.next" +msgstr "Èyí tó kàn" + +#: src/app/main/ui/dashboard/comments.cljs:128, src/app/main/ui/workspace/comments.cljs:161 msgid "labels.no-comments-available" msgstr "A ti gbé gbogbo yín dè! Àwọn ọ̀rọ̀ ìfitónilétí tuntun yí ó hàn níbí." -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:694 msgid "labels.no-invitations" msgstr "kò si àwọn ìfìwépè kankan nílẹ̀." -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:696 #, markdown msgid "labels.no-invitations-hint" msgstr "Tẹ̀ ẹ́ **Pe àwọn ènìyàn** tẹ bọ́tìnnì láti pe àwọn ènìyàn sínú ẹgbẹ́." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:50 msgid "labels.not-found.desc-message" msgstr "Ojú ìwé yìí le má sìí tàbí ò kò ni ìgbaniláàyè láti wọlé sí bẹ̀ ." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:49 msgid "labels.not-found.main-message" msgstr "Óóho!" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:89 msgid "labels.old-password" msgstr "Ọ̀rọ̀ ìgbaniwọlé àtijọ́" #: src/app/main/ui/workspace/comments.cljs +#, unused msgid "labels.only-yours" msgstr "Tìrẹ nìkan" +#, unused msgid "labels.or" msgstr "tàbí" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/onboarding/questions.cljs:145, src/app/main/ui/onboarding/questions.cljs:214, src/app/main/ui/onboarding/questions.cljs:303, src/app/main/ui/onboarding/questions.cljs:316, src/app/main/ui/onboarding/questions.cljs:389, src/app/main/ui/onboarding/questions.cljs:447 +msgid "labels.other" +msgstr "Òmíìràn(ní pàtó)" + +#: src/app/main/ui/dashboard/team.cljs:286, src/app/main/ui/dashboard/team.cljs:518, src/app/main/ui/dashboard/team.cljs:1076 msgid "labels.owner" msgstr "Oníǹkan" -#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/settings/sidebar.cljs:87 msgid "labels.password" msgstr "Ọ̀rọ̀ ìgbaniwọlé" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:662 msgid "labels.pending-invitation" msgstr "Ńńdúró" -#: src/app/main/ui/settings/sidebar.cljs +#: src/app/main/ui/onboarding/questions.cljs:51 +msgid "labels.previous" +msgstr "Tàtẹ̀yìn wá" + +#: src/app/main/ui/onboarding/questions.cljs:254 +msgid "labels.product-management" +msgstr "Ohun títà tàbí iṣẹ́ àgbéṣe Olùṣàkóso" + +#: src/app/main/ui/settings/profile.cljs:118, src/app/main/ui/settings/sidebar.cljs:82 msgid "labels.profile" msgstr "Pírófáìlì" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:784 msgid "labels.projects" msgstr "Àwọn iṣẹ́ àgbéṣe" -#: src/app/main/ui/settings/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:998, src/app/main/ui/settings/sidebar.cljs:106, src/app/main/ui/workspace/main_menu.cljs:126 msgid "labels.release-notes" msgstr "Fi àkọsílẹ̀ rẹ sílẹ̀" #: src/app/main/ui/workspace.cljs +#, unused msgid "labels.reload-file" msgstr "Tún gbé fáìlì sí i" #: src/app/main/ui/workspace/libraries.cljs, src/app/main/ui/dashboard/team.cljs +#, unused msgid "labels.remove" msgstr "Yọ ọ́ kúrò" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:316 msgid "labels.remove-member" msgstr "Yọ ọmọ ẹgbẹ́ kúrò" -#: src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:271, src/app/main/ui/dashboard/project_menu.cljs:85, src/app/main/ui/dashboard/sidebar.cljs:539, src/app/main/ui/workspace/sidebar/assets/groups.cljs:157 msgid "labels.rename" msgstr "Fún un lórúkọ mìíràn" -#: src/app/main/ui/dashboard/team_form.cljs +#: src/app/main/ui/dashboard/team_form.cljs:99 msgid "labels.rename-team" msgstr "Fún ẹgbẹ́ lórúkọ mìíràn" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:645 msgid "labels.resend-invitation" msgstr "Tún fì ìwé ìpè ránńṣẹ́" -#: src/app/main/ui/static.cljs, src/app/main/ui/static.cljs, src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:61, src/app/main/ui/static.cljs:70, src/app/main/ui/static.cljs:148 msgid "labels.retry" msgstr "Tún gbìyànjú" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:469, src/app/main/ui/dashboard/team.cljs:709 msgid "labels.role" msgstr "Ojúṣe" +#: src/app/main/ui/dashboard/fonts.cljs:380, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:191 msgid "labels.save" msgstr "Fi pamọ́" +#: src/app/main/ui/dashboard/fonts.cljs:415 msgid "labels.search-font" msgstr "Ṣàwárí fọ́ǹtì" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/onboarding/questions.cljs:90, src/app/main/ui/onboarding/questions.cljs:248, src/app/main/ui/onboarding/questions.cljs:259, src/app/main/ui/onboarding/questions.cljs:270 +msgid "labels.select-option" +msgstr "Ṣe àṣàyàn" + +#: src/app/main/ui/settings/feedback.cljs:82 msgid "labels.send" msgstr "Fi ránńṣẹ́" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:82 msgid "labels.sending" msgstr "Fífi-ránńṣẹ…" -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:68 msgid "labels.service-unavailable.desc-message" msgstr "A wà níbi ètò ìpèsè ìtọ́jú àwọn sísítẹ́mù wa." -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:67 msgid "labels.service-unavailable.main-message" msgstr "Sáfísì kòsí" -#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:530, src/app/main/ui/dashboard/team.cljs:88, src/app/main/ui/dashboard/team.cljs:102, src/app/main/ui/settings/options.cljs:84, src/app/main/ui/settings/sidebar.cljs:93 msgid "labels.settings" msgstr "Àwọn ètò" +#, unused msgid "labels.share-prototype" msgstr "Pín àwọn ohun tí a ti kọ tẹ́lẹ̀" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:800 msgid "labels.shared-libraries" msgstr "Yàrá ìkáwe" -#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/comments.cljs:82, src/app/main/ui/workspace/comments.cljs:55, src/app/main/ui/workspace/comments.cljs:135 msgid "labels.show-all-comments" msgstr "Fi gbogbo kọ́mẹ́ǹtì hàn" +#: src/app/main/ui/viewer/comments.cljs:115 msgid "labels.show-comments-list" msgstr "Fi àkójọ àwọn kọ́mẹ́ǹtì hàn" -#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/comments.cljs:91, src/app/main/ui/workspace/comments.cljs:61, src/app/main/ui/workspace/comments.cljs:136 msgid "labels.show-your-comments" msgstr "Fi àwọn kọ́mẹ́ǹtì tìrẹ nìkan hàn" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/onboarding/questions.cljs:172 +msgid "labels.sketch" +msgstr "Yàwòrán" + +#: src/app/main/ui/onboarding/questions.cljs:56 +msgid "labels.start" +msgstr "Bẹ̀rẹ̀" + +#: src/app/main/ui/dashboard/team.cljs:710 msgid "labels.status" msgstr "Ipò" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/onboarding/questions.cljs:251 +msgid "labels.student-teacher" +msgstr "Akẹ́kọ̀ọ́ tàbí olùkọ̀ọ́" + +#: src/app/main/ui/dashboard/sidebar.cljs:992, src/app/main/ui/workspace/main_menu.cljs:118 msgid "labels.tutorials" msgstr "Ìbáṣepọ̀" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:256 msgid "labels.unpublish-multi-files" msgstr "%s àwọn fáìlì tí a kò tí kọ jáde" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:103 msgid "labels.update" msgstr "mú dójú ìwọ̀n" -#: src/app/main/ui/dashboard/team_form.cljs +#: src/app/main/ui/dashboard/team_form.cljs:120 msgid "labels.update-team" msgstr "Mẹ́gbẹ́ dójú ìwọ̀n" +#: src/app/main/ui/dashboard/fonts.cljs:241 msgid "labels.upload" msgstr "Ọpulóòdù" +#: src/app/main/ui/dashboard/fonts.cljs:169 msgid "labels.upload-custom-fonts" msgstr "Ọpulóòdù kọ́sítẹ́mù fọ́ǹtì" +#: src/app/main/ui/dashboard/fonts.cljs:240 msgid "labels.uploading" msgstr "Ń ọpulóòdù…" +#: src/app/main/ui/workspace/sidebar/sitemap.cljs:223 msgid "labels.view-only" msgstr "Wò ó nìkan" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:123, src/app/main/ui/dashboard/team.cljs:282, src/app/main/ui/dashboard/team.cljs:521 msgid "labels.viewer" msgstr "Olùwo" +#: src/app/main/ui/dashboard/sidebar.cljs:523, src/app/main/ui/dashboard/team.cljs:90, src/app/main/ui/dashboard/team.cljs:100, src/app/main/ui/dashboard/team.cljs:880 msgid "labels.webhooks" msgstr "àwọn ìwé ìkọ́ wẹ́bù" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:194 msgid "labels.write-new-comment" msgstr "Write new comment Kọ kọ́mẹ́ǹtì tuntun" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/team.cljs:237 msgid "labels.you" msgstr "(ìwọ)" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:968 msgid "labels.your-account" msgstr "Àkáùntì rẹ" -#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs +#: src/app/main/data/media.cljs:49, src/app/main/data/workspace/media.cljs:223, src/app/main/data/workspace/media.cljs:453 msgid "media.loading" msgstr "Ìkójọpọ̀ àwòrán…" +#: src/app/main/data/common.cljs:111 msgid "modals.add-shared-confirm-empty.hint" msgstr "" "Yàrá ìkàwé rẹ ti dófìfo. Lọ́gán tí o bá ti ṣàfikún gẹ́gẹ́ bí yàrá ìkàwé " "pípín, dúkìá tí o ṣẹ̀dá á wà fún lílò àwọn fáìlì rẹ tó kù. Are you sure " "you tí o fẹ́ kọ jáde?" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/data/common.cljs:113 msgid "modals.add-shared-confirm.accept" msgstr "Ṣàfikún gẹ́gẹ́ bí yàrá ìkàwé pípín" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/data/common.cljs:111 msgid "modals.add-shared-confirm.hint" msgstr "" "Lẹ́ẹ̀kan-nà tí o bá ti ṣàfikún gẹ́gẹ́ bí yàrá ìkàwé pípín, àwọn dúkìá inú " "fáìlì yàrá á di wíwà fún lílò àwọn fáìlì rẹ tó kù." -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/data/common.cljs:110 msgid "modals.add-shared-confirm.message" msgstr "Ṣàfikún “%s” gẹ́gẹ́ bí yàrá ìkàwé pípí" -#: src/app/main/ui/workspace/nudge.cljs +#: src/app/main/ui/workspace/nudge.cljs:60 msgid "modals.big-nudge" msgstr "Big nudge Nọ́ọ̀jì ńlá" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:127 msgid "modals.change-email.confirm-email" msgstr "Ṣàyẹ̀wò ímeèlì tuntun" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:114 msgid "modals.change-email.info" msgstr "" "A fi ímeèlì kan ránń ṣẹ́ sí inú ímeèlì tí ò ń lò lọ́wọ́lọ́wọ́“%s” láti ṣe " "àyẹ̀wò ìdánimọ̀ rẹ." -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:119 msgid "modals.change-email.new-email" msgstr "Ímeèlì tuntun" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:136 msgid "modals.change-email.submit" msgstr "Pàrọ̀ ímeèlìl" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:107 msgid "modals.change-email.title" msgstr "Pàrọ̀ ímeèlì rẹ" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:165, src/app/main/ui/settings/access_tokens.cljs:171 msgid "modals.create-access-token.copy-token" msgstr "Ṣẹ̀dà tókìn" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:142 msgid "modals.create-access-token.expiration-date.label" msgstr "Ọjọ́ ìparí" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:136 msgid "modals.create-access-token.name.label" msgstr "Orúkọ" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:138 msgid "modals.create-access-token.name.placeholder" msgstr "Orúkọ yí ó ràn wá lọ́wọ́ láti mọ ohun tí tókìn wà fún" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:191 msgid "modals.create-access-token.submit-label" msgstr "Ṣẹ̀dà tókìn" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:123 msgid "modals.create-access-token.title" msgstr "Pilẹ̀ṣẹ̀ wí wọlé tókìń" +#: src/app/main/ui/dashboard/team.cljs:873 msgid "modals.create-webhook.submit-label" msgstr "Ṣẹ̀dá ìkọ́- wẹ́bù" +#: src/app/main/ui/dashboard/team.cljs:838 msgid "modals.create-webhook.title" msgstr "Ṣẹ̀dá ìkọ́-wẹ́bù" +#: src/app/main/ui/dashboard/team.cljs:849 msgid "modals.create-webhook.url.label" msgstr "Péloòdù URL" +#: src/app/main/ui/dashboard/team.cljs:850 msgid "modals.create-webhook.url.placeholder" msgstr "https://àpẹrẹ.com/postreceive ìgbà àtẹ̀yinwá" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:271 msgid "modals.delete-acces-token.accept" msgstr "Pa tókìn rẹ́" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:270 msgid "modals.delete-acces-token.message" msgstr "Ṣé ó dá ọ lójú pé o fẹ́ pa tókìn yi rẹ́?" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:269 msgid "modals.delete-acces-token.title" msgstr "Pa tókìn rẹ́" -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:59 msgid "modals.delete-account.cancel" msgstr "Fagilé e kí o sì fi àkáùntì mi pamọ́" -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:64 msgid "modals.delete-account.confirm" msgstr "Bẹ́ẹ̀ni, pa àkáùntì mi rẹ́" -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:53 msgid "modals.delete-account.info" msgstr "" "Nípa yíyọ àkáùntì rẹ kúrò o ’ pàdánù gbogbo àwọn iṣẹ́ àgbéṣe rẹ àti àwọn tí " "ó wà lápamọ́." -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:46 msgid "modals.delete-account.title" msgstr "Ṣé ó dá ọ lójú pé o fẹ́ pa àkáùntì rẹ rẹ́ ?" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:298 msgid "modals.delete-comment-thread.accept" msgstr "Pa ìtàkurọ̀sọ rẹ́" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:297 msgid "modals.delete-comment-thread.message" msgstr "" "Ṣé ódá ọ lójú pé o fẹ́ pa ìtàkurọ̀sọ yìí rẹ́? All comments in this Gbogbo " "àsọyé tó wà níbí tó tẹ̀lé ra wọn ni á di píparẹ́." -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:296 msgid "modals.delete-comment-thread.title" msgstr "Pa ìtàkurọ̀sọ rẹ" +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:140 msgid "modals.delete-component-annotation.message" msgstr "Ṣe ó dá ọ lójú pé o fẹ́ pa àkọsílẹ̀ yìí rẹ́?" +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:139 msgid "modals.delete-component-annotation.title" msgstr "Pa àkọsílẹ̀ rẹ́" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:123 msgid "modals.delete-file-confirm.accept" msgstr "Pa fáìlì rẹ́" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:122 msgid "modals.delete-file-confirm.message" msgstr "Ṣé ó dá ọ lójú pé o fẹ́ pa fáìlì yìí rẹ́?" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:121 msgid "modals.delete-file-confirm.title" msgstr "Pa fáìlì rẹ́" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:117 msgid "modals.delete-file-multi-confirm.accept" msgstr "Pa àwọn fáìlì rẹ́" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:116 msgid "modals.delete-file-multi-confirm.message" msgstr "Ṣé ó dá ọ lójú pé o fẹ́ pa %s àwọn fáìlì rẹ́ ?" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:115 msgid "modals.delete-file-multi-confirm.title" msgstr "Pa fáìlì rẹ́ %s" +#: src/app/main/ui/dashboard/fonts.cljs:345 msgid "modals.delete-font-variant.message" msgstr "" "Ṣé ó dá ọ lójú pé o fẹ́ pa fọ́ǹtì alárà yìí rẹ́ ? Kò ní gbé e tí a bá lò " "ó nínú fáìlì." +#: src/app/main/ui/dashboard/fonts.cljs:331 msgid "modals.delete-font.message" msgstr "" "Ṣé ó dá ọ lójú pé o fẹ́ pa fẹ́ǹtì yí rẹ́? Kò ní le gbé e tí a bá lò ó nínú " "Fáìlì." -#: src/app/main/ui/workspace/sidebar/sitemap.cljs +#: src/app/main/ui/workspace/context_menu.cljs:522, src/app/main/ui/workspace/sidebar/sitemap.cljs:45 msgid "modals.delete-page.body" msgstr "Ṣé ó dá ọ lójú pé o fẹ́ pa ojú ìwé yìí rẹ́?" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs +#: src/app/main/ui/workspace/context_menu.cljs:521, src/app/main/ui/workspace/sidebar/sitemap.cljs:44 msgid "modals.delete-page.title" msgstr "Pa ojú ìwé rẹ́" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:69 msgid "modals.delete-project-confirm.accept" msgstr "Pa iṣẹ́ àgbéṣe rẹ́" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:68 msgid "modals.delete-project-confirm.message" msgstr "Ṣé ó dá ọ lójú pé o fẹ́ pa iṣẹ́ àgbéṣe yìí rẹ́?" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:67 msgid "modals.delete-project-confirm.title" msgstr "Pa iṣẹ́ àgbéṣe rẹ́" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:435 msgid "modals.delete-team-confirm.accept" msgstr "Pa ẹgbẹ́ rẹ́" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:434 msgid "modals.delete-team-confirm.message" msgstr "" "Ṣé ó dá ọ lójú pé o fẹ́ pa ẹgbẹ́ yìí rẹ́? Ggogbo iṣẹ́ àgbéṣe àti fáìlì tí ó " "bá ní nǹkan ṣe pẹ̀lú ẹgbẹ́ ni a ó parẹ́ pátápátá." -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:433 msgid "modals.delete-team-confirm.title" msgstr "Yọ ẹgbẹ́ kúrò" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:427 msgid "modals.delete-team-member-confirm.accept" msgstr "Yọ ọmọ ẹgbẹ́ kúrò" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:426 msgid "modals.delete-team-member-confirm.message" msgstr "Ṣé ó dá ọ lójú pé o fẹ́ yọ ọmọ ẹgbẹ́ yìí kúrò nínú ẹgbẹ́?" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:425 msgid "modals.delete-team-member-confirm.title" msgstr "Yọ ọmọ ẹgbẹ́ kúrò" +#: src/app/main/ui/dashboard/team.cljs:942 msgid "modals.delete-webhook.accept" msgstr "Pa ìkọ́-wẹ́bù rẹ́" +#: src/app/main/ui/dashboard/team.cljs:941 msgid "modals.delete-webhook.message" msgstr "Ṣe ó dá ọ lójú pé o fẹ́ pa ìkọ́-wẹ́bù yìí rẹ́?" +#: src/app/main/ui/dashboard/team.cljs:940 msgid "modals.delete-webhook.title" msgstr "Pa ìkọ́- wẹ́bù rẹ́" +#: src/app/main/ui/dashboard/team.cljs:872 msgid "modals.edit-webhook.submit-label" msgstr "Ṣe àtúnṣe ìkọ́- wẹ́bù" +#: src/app/main/ui/dashboard/team.cljs:837 msgid "modals.edit-webhook.title" msgstr "Ṣe àtúnṣe ìkọ́-wẹ́bù" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:218 msgid "modals.invite-member-confirm.accept" msgstr "Fi ìfìwépè ránńṣẹ́" +#: src/app/main/ui/dashboard/team.cljs:213, src/app/main/ui/onboarding/team_choice.cljs:156 msgid "modals.invite-member.emails" msgstr "Ímeèlì, kí kọmá yà á sọ́tọ̀" +#: src/app/main/ui/dashboard/team.cljs:197 msgid "modals.invite-member.repeated-invitation" msgstr "" "Díẹ̀ nínú àwọn ímeèlì wá láti ọ̀dọ̀ àwọn tó jẹ́ ọmọ ẹgbẹ́ ní ìsinsìnyí. Ìwé " "ìfipé wọn a kò nífi ránńṣẹ́." -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:190 msgid "modals.invite-team-member.title" msgstr "Pe àwọn ọmọ ẹgbẹ́ sínú ẹgbẹ́" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:423, src/app/main/ui/dashboard/team.cljs:393 msgid "modals.leave-and-close-confirm.hint" msgstr "" "Gẹ́gẹ́ bí o ṣe jẹ́ ìwọ nìkan ni ọmọ ẹgbẹ́ nínú ẹgbẹ́ yìí, a ó yọ ẹgbẹ́ " "kúrò pẹ̀lú iṣẹ́ àgbéṣe rẹ̀ àti àwọn fáìlì." -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:422, src/app/main/ui/dashboard/team.cljs:392 msgid "modals.leave-and-close-confirm.message" msgstr "Ṣé ó dá ọ lójú pé o fẹ́ kúrò nínú %s ẹgbẹ́?" +#: src/app/main/ui/dashboard/change_owner.cljs:59 msgid "modals.leave-and-reassign.forbidden" msgstr "" "O kò lè kúrò nínú ẹgbẹ́ tí kò bá sí ọmọ ẹgbẹ́ mìíràn tó ní ìgbéga sí oní " "ǹǹkan. O lè fẹ́ pa ẹgbẹ́ rẹ́." -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/change_owner.cljs:55 msgid "modals.leave-and-reassign.hint1" msgstr "" "Ìwọ ni ẹni tí ó ni ẹgbẹ́ yìí. Please select another member to promote to " "Jọ̀wọ́ yan ọmọ ẹgbẹ́ mìíràn tí yíò ní ìgbéga ẹni tí ó ni nǹkan kí o tó " "kúrò." -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/change_owner.cljs:78 msgid "modals.leave-and-reassign.promote-and-leave" msgstr "Ṣe ìgbéga kí o kúrò" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/change_owner.cljs:34 msgid "modals.leave-and-reassign.select-member-to-promote" msgstr "Yan ọmọ ẹgbẹ́ kan tí o ó gbéga" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/change_owner.cljs:49 msgid "modals.leave-and-reassign.title" msgstr "Kí o tó kúrò" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:402, src/app/main/ui/dashboard/sidebar.cljs:424, src/app/main/ui/dashboard/team.cljs:394, src/app/main/ui/dashboard/team.cljs:416 msgid "modals.leave-confirm.accept" msgstr "Fi ẹgbẹ́ sílẹ̀" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:401, src/app/main/ui/dashboard/team.cljs:415 msgid "modals.leave-confirm.message" msgstr "Ṣé ó dá ọ lójú pé o fẹ́ fi ẹgbẹ́ yìí sílẹ̀?" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:400, src/app/main/ui/dashboard/sidebar.cljs:421, src/app/main/ui/dashboard/team.cljs:391, src/app/main/ui/dashboard/team.cljs:414 msgid "modals.leave-confirm.title" msgstr "Ń fi ẹgbẹ́ sílẹ̀" -#: src/app/main/ui/workspace/nudge.cljs +#: src/app/main/ui/workspace/main_menu.cljs:266, src/app/main/ui/workspace/nudge.cljs:47 msgid "modals.nudge-title" msgstr "Fi kún iye tó jẹ́" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:340 msgid "modals.promote-owner-confirm.accept" msgstr "Gbé ẹni tó ni nǹkan" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:339 msgid "modals.promote-owner-confirm.hint" msgstr "" "Tí o bá gbé ẹni tí ó ni nǹkan, o ó yìí ojúṣe rẹ pada sí Alábòjútó, losing " " àwọn ìgbà láàyè díẹ̀ á wà fún ẹgbẹ́ yìí. " -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:338 msgid "modals.promote-owner-confirm.message" msgstr "" "Ìwọ ni ẹni tí ó ni ẹgbẹ́ yìí lọ́wọ́lọ́wọ́. Are you sure you want to make Ṣé " "ó dá ọ lójú pé o fẹ́ jẹ́ %s oní nǹkan tuntun fún ẹgbẹ́?" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:337 msgid "modals.promote-owner-confirm.title" msgstr "Ẹni tó ni ẹgbẹ́ tuntun" +#: src/app/main/ui/workspace/libraries.cljs:188 msgid "modals.publish-empty-library.accept" msgstr "Kọ ọ́ jáde" +#: src/app/main/ui/workspace/libraries.cljs:187 msgid "modals.publish-empty-library.message" msgstr "Yàrá ìkàwé rẹ ṣófìfo. Ṣé ó dá ọ lójú pé o fẹ́ kọ ọ́ jáde?" +#: src/app/main/ui/workspace/libraries.cljs:186 msgid "modals.publish-empty-library.title" msgstr "Gbé yàrá ìkàwé tó ṣófìfo jáde" #: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "modals.remove-shared-confirm.accept" msgstr "Yọ ọ́ kúrò gẹ́gẹ́ bí i yàrá ìkàwé pípín" #: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "modals.remove-shared-confirm.hint" msgstr "" "Lọ́gán tí o bá ti yọ ọ́ kúrò gẹ́gẹ́ bí i Fáìlì yàrá ìkàwé pípín , Fáìlì " "yàrà ìkàwé ti fáìlì yìí á dúró tí á wà fún lílò àwọn fáìlì rẹ tó kù." #: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "modals.remove-shared-confirm.message" msgstr "Yọ ọ́ kúrò“%s” gẹ́gẹ́ bí yàrá ìkàwé pípín" -#: src/app/main/ui/workspace/nudge.cljs +#: src/app/main/ui/workspace/nudge.cljs:53 msgid "modals.small-nudge" msgstr "Fọwọ́ làn-ań díẹ̀" #: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#, unused msgid "modals.update-remote-component-in-bulk.hint" msgstr "" "O ṣetán láti mú àwọn ẹ̀yà irin iṣẹ́ dé ojú ìwọ̀n ní yàrá ìkàwé pípín. Èyí " "le fa wàhálà fún àwọn fáìlì mìíràn tí ó ń lò ó." #: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#, unused msgid "modals.update-remote-component-in-bulk.message" msgstr "Mú àwọn ẹ̀yà irin iṣẹ́ dójú ìwọ̀n nínú iyàram ìkàwé pípín" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:380 msgid "modals.update-remote-component.accept" msgstr "Mú dójú ìwọ̀n" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:379 msgid "modals.update-remote-component.cancel" msgstr "Fagilé e" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:378 msgid "modals.update-remote-component.hint" msgstr "" "O ṣetán látí mú àwọn ẹ̀yà irin iṣẹ́ yàrá ìkàwé dójú ìwọ̀n . This may affect " "Èyí lè fa wàhálà fún àwọn fáìlì míràn tí ó ń lò ó." -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:377 msgid "modals.update-remote-component.message" msgstr "Mú ẹ̀yà iyàrá ìkàwé pípín kan dójú ìwọ̀n" -#: src/app/main/data/common.cljs +#: src/app/main/data/common.cljs:71 msgid "notifications.by-code.upgrade-version" msgstr "Ẹ̀yà tuntun ti wà, jọ̀wọ́ tún sọ ọ́ jí" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:154, src/app/main/ui/dashboard/team.cljs:595 msgid "notifications.invitation-email-sent" msgstr "Ìfipè tí a fi ránńṣẹ́ ti lọ dáadáa" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:616 msgid "notifications.invitation-link-copied" msgstr "ti ṣe àdàkọ ìfipè ọ̀nà ìtọ́ka sí" -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:24 msgid "notifications.profile-deletion-not-allowed" msgstr "O kò le è yọ pírófáìlì rẹ kúro. Ṣe àtún yàn àwọn ẹgbẹ́ kí o tó tẹ̀ síwájú." -#: src/app/main/ui/settings/profile.cljs, src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:29, src/app/main/ui/settings/profile.cljs:35 msgid "notifications.profile-saved" msgstr "A ti fi pírófáìlì pamọ́ dáadáa!" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:63 msgid "notifications.validation-email-sent" msgstr "Verification email sent to %s. Check your email!" +#, unused msgid "onboarding-v2.before-start.desc1" msgstr "" "O ní láti mọ̀ pé oríṣiríṣi ohu ohun èlò ló wà láti ràn ọ́ lọ́wọ́ láti rí " "gbà bẹ̀rẹ̀ pẹ̀lú Pẹ́ńpọtì, gẹ́gẹ́ bí ohun èlò ìtọ́nisọ́nà àti yútuùbù wa " "fún ìlànà ìbáni sọ̀rọ̀." +#, unused msgid "onboarding-v2.before-start.desc2" msgstr "" "Ẹ̀kún-uń rẹ́rẹ́ àlàyé nípa bí a ó ṣe lo pẹ́ńpọtì . Láti bi àfọwọ́kọ lọ sí " "síṣe ètò tàbí pípiń àwọn àrà orísi ." +#, unused msgid "onboarding-v2.before-start.desc2.title" msgstr "Ìtọ́ni sọ́nà Onílò" +#, unused msgid "onboarding-v2.before-start.desc3" msgstr "O lè wo ìbáṣepọ̀ wa àti ìbáṣepọ̀ ti èyí tí agbègbè wa ṣe." +#, unused msgid "onboarding-v2.before-start.desc3.title" msgstr "Fídíò àwọn ìbáṣepọ̀" +#, unused msgid "onboarding-v2.before-start.title" msgstr "Kí o tó bẹ̀rẹ̀" +#: src/app/main/ui/onboarding/newsletter.cljs:63 msgid "onboarding-v2.newsletter.desc" msgstr "" "Ṣe alábàápín ìwé ìròyìn ti pẹ́ńpọtì kí o lè mọ ohun tí ó ń lọ ọjà " "development progress and new Ìdàgbàsókè, Ìlọsíwájú,àti àwọn ìròyìn ." +#: src/app/main/ui/onboarding/newsletter.cljs:83 msgid "onboarding-v2.newsletter.news" msgstr "" "Fí ìròyìn ránńṣẹ́ sí mi nípa Pẹ́ńpọtì (àwọn bulọ́ọ̀gì,àwọn fídiò " "ìbáṣepọ̀, àwọn sísàn wọlé...)." +#: src/app/main/ui/onboarding/newsletter.cljs:91 msgid "onboarding-v2.newsletter.privacy1" msgstr "Ìfi pamọ́ jẹ wá lógún, ní bí o le kà nípa wa " +#: src/app/main/ui/onboarding/newsletter.cljs:97 msgid "onboarding-v2.newsletter.privacy2" msgstr "" "Àwọn ímeèlì tó ṣe kókó nìknn la ó fi ránńṣẹ́ sí ọ. o lè yọwọ́ kúrò ní " "ìgbàkììgbàní ìlànà ti ìyọwọ́ kúrò nínú èyíkéyìí ìwé ìròyìn wa." +#: src/app/main/ui/onboarding/newsletter.cljs:71 msgid "onboarding-v2.newsletter.updates" msgstr "" "Fi ìmú dójú ìwọ̀n ọjà ránńṣẹ́ sí mi (àwọn ẹ̀yà yuntun, tú sílẹ̀, ṣà " "túnṣe...)." +#, unused msgid "onboarding-v2.welcome.desc1" msgstr "" "Pẹ́ńpọtì ni orísun ìṣílẹ̀kùn àti pe Kálẹidòsìló ṣe é àti àwọn agbègbè, Ní " "bi ọ̀pọ̀lọpọ̀ àwọn ènìyàn ti ran ara wọn lọ́wọ́ tẹ́lẹ̀ . Gbgbo wọn ló lè " "ṣe àjùmọ̀ṣenípa:" +#, unused msgid "onboarding-v2.welcome.desc2" msgstr "" "Ìkẹ́kọ̀ọ́ ìta gbangba, pín-in kí ẹ sì jí ròrò nípa Pẹ́ńpọtì, ibi tó wà " "lọ́wọ́lọ́wọ́ ọ̀jọ́ iwájú pẹ̀lú gbogbo agbègbè àti ìmójútó ẹgbẹ́ pẹ́ńpọtì . " " ." +#, unused msgid "onboarding-v2.welcome.desc3" msgstr "" "Ibi tí a ó ti ri bí a ó ti ṣe àjùmọ̀ṣepọ̀ pẹ̀lú àwọn ìtumọ̀, àwọn ìbéèrè " "ẹ̀yà ara ẹ̀rọ, ìmójútó síṣe ojúṣe, ìṣọdẹ kòkòrò…" +#, unused msgid "onboarding-v2.welcome.desc3.title" msgstr "Sísojúṣe ìtọ́sẹ́nà" +#: src/app/main/ui/onboarding/team_choice.cljs:31 msgid "onboarding-v2.welcome.title" msgstr "Káàbọ̀ sí pẹ́ńpọtì!" +#: src/app/main/ui/onboarding/team_choice.cljs:215 msgid "onboarding.choice.team-up.create-team-desc" msgstr "" "Lẹ́yìn tí o bá ti fún ẹgbẹ́ rẹ lórúkọ, Ó le pe àwọn ènìyàn láti darapọ̀ mọ́ " "ẹgbẹ́." +#: src/app/main/ui/onboarding/team_choice.cljs:224 msgid "onboarding.choice.team-up.create-team-placeholder" msgstr "Tẹ orúkọ ẹgbẹ́" +#: src/app/main/ui/dashboard/projects.cljs:89, src/app/main/ui/onboarding/team_choice.cljs:140 msgid "onboarding.choice.team-up.invite-members" msgstr "Fìwépè ọmọ àwọn ẹgbẹ́" +#: src/app/main/ui/onboarding/team_choice.cljs:141 msgid "onboarding.choice.team-up.invite-members-info" msgstr "" "Rántí láti fi gbogbo wọn sí i. Àwọn Olùdásílẹ̀, àwọn aṣàpẹẹrẹ, alákóso... " "onírúúrú dà wọ́n pọ̀ :)" +#: src/app/main/ui/dashboard/team.cljs:202, src/app/main/ui/onboarding/team_choice.cljs:146 msgid "onboarding.choice.team-up.roles" msgstr "Pè wọ́n pẹ̀lú ojúṣe wọn:" +#, unused msgid "onboarding.newsletter.accept" msgstr "Bẹ́ẹ̀ni, ṣe alábàpín" +#: src/app/main/ui/onboarding/newsletter.cljs:40 msgid "onboarding.newsletter.acceptance-message" msgstr "" "A ti fi ìbéèrè fún síṣe alá-bápín rẹ ránńṣẹ́, a ó fi ímeèlì ránńṣẹ́ sí ọ " "látijẹ́rìí sí." +#: src/app/main/ui/onboarding/newsletter.cljs:95 msgid "onboarding.newsletter.policy" msgstr "Ètò ìmúlò tí a fi pamọ́." +#: src/app/main/ui/onboarding/newsletter.cljs:60 msgid "onboarding.newsletter.title" msgstr "Fẹ́ gba àwọn ìròyìn pẹ́ńpọti?" +#: src/app/main/ui/onboarding/questions.cljs:118 +msgid "onboarding.questions.lets-get-started" +msgstr "Ẹjẹ́ 'ká bẹ̀rẹ̀ !" + +#: src/app/main/ui/onboarding/questions.cljs:320 +msgid "onboarding.questions.step3.question3" +msgstr "kín ni ìwọ̀n ẹgbẹ́ rẹ ?" + +#: src/app/main/ui/onboarding/questions.cljs:273 +msgid "onboarding.questions.team-size.11-30" +msgstr "Mọ́kànlá-Ọgbọ̀n" + +#: src/app/main/ui/onboarding/questions.cljs:274 +msgid "onboarding.questions.team-size.2-10" +msgstr "Méjì – mẹ́wàá" + +#: src/app/main/ui/onboarding/questions.cljs:272 +msgid "onboarding.questions.team-size.31-50" +msgstr "Mọ́kànlélọ́gbọ̀n-Àádọ́ta" + +#: src/app/main/ui/onboarding/questions.cljs:271 +msgid "onboarding.questions.team-size.more-than-50" +msgstr "Ju àádọ́ta lọ" + +#: src/app/main/ui/onboarding/questions.cljs:276 +msgid "onboarding.questions.team-size.personal-project" +msgstr "Mò ń siṣẹ́ àgbéṣẹ ti ara mi ni" + +#: src/app/main/ui/onboarding/team_choice.cljs:213 msgid "onboarding.team-modal.create-team" msgstr "Ṣẹ̀dá ẹgbẹ́ kan" +#: src/app/main/ui/onboarding/team_choice.cljs:35 msgid "onboarding.team-modal.create-team-desc" msgstr "" "A team allows you to collaborate with other Penpot users working in the " "Ẹgbẹ́ kan yí ó gbà ọ́ láyè láti lè siṣẹ́pọ̀ pẹ̀lú àwọn onílò pẹ́ńpọti tí ó " "siṣẹ́ nínú àwọn fáìlì àti àwọn iṣẹ́ àgbéṣe kan náà ." +#: src/app/main/ui/onboarding/team_choice.cljs:40 msgid "onboarding.team-modal.create-team-feature-1" msgstr "Àwọn fáìlì àti àwọn iṣẹ́ àgbéṣe tí kò lópin" +#: src/app/main/ui/onboarding/team_choice.cljs:44 msgid "onboarding.team-modal.create-team-feature-2" msgstr "Multiplayer edition" +#: src/app/main/ui/onboarding/team_choice.cljs:48 msgid "onboarding.team-modal.create-team-feature-3" msgstr "àwọn ipa ìṣàkóṣo" +#: src/app/main/ui/onboarding/team_choice.cljs:52 msgid "onboarding.team-modal.create-team-feature-4" msgstr "Àwọn ọmọ ẹgbẹ́ tí kò lópin" +#: src/app/main/ui/onboarding/team_choice.cljs:56 msgid "onboarding.team-modal.create-team-feature-5" msgstr "100% Ọ̀fẹ́!" +#: src/app/main/ui/onboarding/templates.cljs:78 msgid "onboarding.templates.subtitle" msgstr "Àwọn àwòṣe díẹ̀ nìyí níbí." +#: src/app/main/ui/onboarding/templates.cljs:77 msgid "onboarding.templates.title" msgstr "Bẹ̀rẹ̀ sí ṣe ẹ̀yà alárà" +#, unused msgid "onboarding.welcome.alt" msgstr "Pẹ́ńpọtì" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:99 msgid "profile.recovery.go-to-login" msgstr "Lọ láti wọlé" -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.team-size.11-30" -msgstr "Mọ́kànlá-Ọgbọ̀n" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.team-size.2-10" -msgstr "Méjì – mẹ́wàá" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.team-size.31-50" -msgstr "Mọ́kànlélọ́gbọ̀n-Àádọ́ta" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.adobe-xd" -msgstr "Àdòbí XD" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.canva" -msgstr "Káńfà" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.developer" -msgstr "Olùdásílẹ̀" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.figma" -msgstr "Fígímà" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.founder" -msgstr "Olùdásílẹ̀/VP" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.freelancer" -msgstr "Oníṣẹ́ ni mí" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.invision" -msgstr "Ìkógun wọ̀lú" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.lets-get-started" -msgstr "Ẹjẹ́ 'ká bẹ̀rẹ̀ !" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.product-management" -msgstr "Ohun títà tàbí iṣẹ́ àgbéṣe Olùṣàkóso" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.marketing" -msgstr "Títajà" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.team-size.more-than-50" -msgstr "Ju àádọ́ta lọ" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.next" -msgstr "Èyí tó kàn" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.other" -msgstr "Òmíìràn(ní pàtó)" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.team-size.personal-project" -msgstr "Mò ń siṣẹ́ àgbéṣẹ ti ara mi ni" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.previous" -msgstr "Tàtẹ̀yìn wá" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.select-option" -msgstr "Ṣe àṣàyàn" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.sketch" -msgstr "Yàwòrán" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.start" -msgstr "Bẹ̀rẹ̀" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.student-teacher" -msgstr "Akẹ́kọ̀ọ́ tàbí olùkọ̀ọ́" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.step3.question3" -msgstr "kín ni ìwọ̀n ẹgbẹ́ rẹ ?" - -#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, +#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:221 msgid "settings.detach" msgstr "Yọ kúrò" -#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs, src/app/main/ui/workspace/sidebar/options/menus/layer.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs, src/app/main/ui/workspace/sidebar/options/menus/blur.cljs +#: src/app/main/ui/viewer/inspect/exports.cljs:147, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:631, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:137, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:148, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:188, src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:158, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:399, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:410, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:430, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:441, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:458, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:472, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:309, src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:183, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:373, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:389, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:245, src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:172 msgid "settings.multiple" msgstr "Dàárú" # SECTIONS +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:414 msgid "shortcut-section.basics" msgstr "Ipìlẹ̀" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:423 msgid "shortcut-section.viewer" msgstr "Ólùwò" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:417 msgid "shortcut-section.workspace" msgstr "Àaye ìṣẹ́" # SUBSECTIONS +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:56 msgid "shortcut-subsection.alignment" msgstr "Titete" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:57 msgid "shortcut-subsection.edit" msgstr "Sàtunkọ" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:59 msgid "shortcut-subsection.general-viewer" msgstr "àbùdá" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:60 msgid "shortcut-subsection.main-menu" msgstr "Akojọ ólórì aṣyn" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:61 msgid "shortcut-subsection.modify-layers" msgstr "Yípàdá fẹ́lẹ́fẹ́lẹ́" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:62 msgid "shortcut-subsection.navigation-dashboard" msgstr "Lìlọ́ kìrì" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:63 msgid "shortcut-subsection.navigation-viewer" msgstr "Lìlọ́ kìrì" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:64 msgid "shortcut-subsection.navigation-workspace" msgstr "Lìlọ́ kìrì" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:65 msgid "shortcut-subsection.panels" msgstr "Àwọ̀n pánẹ̀lí" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:66 msgid "shortcut-subsection.path-editor" msgstr "Àwọ́n ọna" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:67 msgid "shortcut-subsection.shape" msgstr "Àwọ́n apẹ́rẹ́" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:68 msgid "shortcut-subsection.text-editor" msgstr "Àwọ́n ọ́rọ̀" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:69 msgid "shortcut-subsection.tools" msgstr "Àwọ́n irínṣẹ̀" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:70 msgid "shortcut-subsection.zoom-viewer" msgstr "Sun-un" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:71 msgid "shortcut-subsection.zoom-workspace" msgstr "Sun-un" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:72 msgid "shortcuts.add-comment" msgstr "Ọ́rọ̀íwòye" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:73 msgid "shortcuts.add-node" msgstr "Fí ípàdé kùn" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:74 msgid "shortcuts.align-bottom" msgstr "Sópọ sí ísàle" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:75 msgid "shortcuts.align-center" msgstr "Parapọ àárin" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:76 msgid "shortcuts.align-hcenter" msgstr "Páràpọ àárin naa" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:77 msgid "shortcuts.align-justify" msgstr "Ṣe dèédé si ìdálárè" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:78 msgid "shortcuts.align-left" msgstr "Sosi ósì" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:79 msgid "shortcuts.align-right" msgstr "Sosi ọtún" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:80 msgid "shortcuts.align-top" msgstr "Sopo si òké" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:81 msgid "shortcuts.align-vcenter" msgstr "Tẹle àárin ni inàró" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:82 msgid "shortcuts.artboard-selection" msgstr "Ṣẹ̀dá ọ̀kọ̀ lati yìyán" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:83 msgid "shortcuts.bold" msgstr "Yipàdà to han" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:84 msgid "shortcuts.bool-difference" msgstr "Iyàtò Boolean" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:85 msgid "shortcuts.bool-exclude" msgstr "Boolean tà yọ̀kúro" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:86 msgid "shortcuts.bool-intersection" msgstr "ikòritá Boolean" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:87 msgid "shortcuts.bool-union" msgstr "Asépọ̀ Boolean" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:88 msgid "shortcuts.bring-back" msgstr "Fírànṣẹ́ si ẹ́hin" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:89 msgid "shortcuts.bring-backward" msgstr "Ran pàdà sí ehin" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:90 msgid "shortcuts.bring-forward" msgstr "Mù siwájù" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:91 msgid "shortcuts.bring-front" msgstr "Mù si wájù" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:92 msgid "shortcuts.clear-undo" msgstr "Pa yipàdá rẹ" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:93 msgid "shortcuts.copy" msgstr "Dàákọ" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:94 msgid "shortcuts.create-component" msgstr "Ṣẹ̀dá pàátì" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:95 msgid "shortcuts.create-new-project" msgstr "Ṣẹ̀dá títún" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:96 msgid "shortcuts.cut" msgstr "Ge" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:97 msgid "shortcuts.decrease-zoom" msgstr "Sun-un jàdé" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:98 msgid "shortcuts.delete" msgstr "Pàrẹ" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:99 msgid "shortcuts.delete-node" msgstr "Pa ipàdé" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:100 msgid "shortcuts.detach-component" msgstr "Yà paati" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:101 msgid "shortcuts.draw-curve" msgstr "Yìyí" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:102 msgid "shortcuts.draw-ellipse" msgstr "Ẹ́lipsì" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:104 msgid "shortcuts.draw-nodes" msgstr "Fà ọnà" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:105 msgid "shortcuts.draw-path" msgstr "Ọnà" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:106 msgid "shortcuts.draw-rect" msgstr "Ònìgún mèrìn" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:107 msgid "shortcuts.draw-text" msgstr "Ọ́rọ̀" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:108 msgid "shortcuts.duplicate" msgstr "Ṣe pidánpidán" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:109 msgid "shortcuts.escape" msgstr "Fàgílèè" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:110 msgid "shortcuts.export-shapes" msgstr "Ókèéré apẹ̀rẹ̀" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:111 msgid "shortcuts.fit-all" msgstr "Sun-un látì ba gbògbò rẹ̀ mú" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:112 msgid "shortcuts.flip-horizontal" msgstr "Yipadà ní pẹ̀tẹ̀lẹ̀" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:113 msgid "shortcuts.flip-vertical" msgstr "Yipadà ní ínàró" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:114 msgid "shortcuts.font-size-dec" msgstr "Dìn íwọ̀n fonti kù" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:115 msgid "shortcuts.font-size-inc" msgstr "Alekun iwọn fonti" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:116 msgid "shortcuts.go-to-drafts" msgstr "Lọ sí iyáwòran" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:117 msgid "shortcuts.go-to-libs" msgstr "Lọ si awọn ílé-Ikàwé tí a pín" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:118 msgid "shortcuts.go-to-search" msgstr "Wàá" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:119 msgid "shortcuts.group" msgstr "Ẹgbẹ" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:120 msgid "shortcuts.h-distribute" msgstr "Pinpín kàákírì pètèlè" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:121 msgid "shortcuts.hide-ui" msgstr "Ífìhan / Tọju UI" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:122 msgid "shortcuts.increase-zoom" msgstr "Sùn-un sínú" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:123 msgid "shortcuts.insert-image" msgstr "Fí àwóran sii" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:124 msgid "shortcuts.italic" msgstr "Yipàdà ítalikì" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:125 msgid "shortcuts.join-nodes" msgstr "Dàràpọ̀ awọn ipàdé" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:126 msgid "shortcuts.letter-spacing-dec" msgstr "Din aayé lẹ́tà kù" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:127 msgid "shortcuts.letter-spacing-inc" msgstr "Alekun aayé lẹ́tà" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:128 msgid "shortcuts.line-height-dec" msgstr "Dinkù gígà ílà" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:129 msgid "shortcuts.line-height-inc" msgstr "Ílà ton gá sókè" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:130 msgid "shortcuts.line-through" msgstr "Íyìpàdà ílà to yọ̀rí" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:131 msgid "shortcuts.make-corner" msgstr "Ṣè ígùn" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:132 msgid "shortcuts.make-curve" msgstr "Ṣe ìsépọ" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:133 msgid "shortcuts.mask" msgstr "Ibòjú" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:134 msgid "shortcuts.merge-nodes" msgstr "Dàpọ̀ awọ́n apa" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:135 msgid "shortcuts.move" msgstr "Gbé" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:136 msgid "shortcuts.move-fast-down" msgstr "Sàré lọ́ sí isàlẹ̀" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:137 msgid "shortcuts.move-fast-left" msgstr "Gbé sí osi kiákiá" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:138 msgid "shortcuts.move-fast-right" msgstr "Gbé si ọ̀tún kiákiá" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:139 msgid "shortcuts.move-fast-up" msgstr "Gbé si òké kiákiá" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:140 msgid "shortcuts.move-nodes" msgstr "Gbé ipàdé" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:141 msgid "shortcuts.move-unit-down" msgstr "Gbé sílè" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:142 msgid "shortcuts.move-unit-left" msgstr "Gbé osi" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:143 msgid "shortcuts.move-unit-right" msgstr "Gbé sọtùn" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:144 msgid "shortcuts.move-unit-up" msgstr "Gbé sóke" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:145 msgid "shortcuts.next-frame" msgstr "Ọ̀kọ̀ tókan" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:516 msgid "shortcuts.not-found" msgstr "Kò sí awọ́n ọ̀nà abùjá ti à rii" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:146 msgid "shortcuts.opacity-0" msgstr "Fí akomo sí ipò 100%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:147 msgid "shortcuts.opacity-1" msgstr "Fi akomo si ipo 10%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:148 msgid "shortcuts.opacity-2" msgstr "Fi akomo si ipo 20%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:149 msgid "shortcuts.opacity-3" msgstr "Fi akomo si ipo 30%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:150 msgid "shortcuts.opacity-4" msgstr "Fi akomo si ipo 40%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:151 msgid "shortcuts.opacity-5" msgstr "Fi akomo si ipo 50%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:152 msgid "shortcuts.opacity-6" msgstr "Fi akomo si ipo 60%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:153 msgid "shortcuts.opacity-7" msgstr "Fi akomo si ipo 70%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:154 msgid "shortcuts.opacity-8" msgstr "Fi akomo si ipo 80%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:155 msgid "shortcuts.opacity-9" msgstr "Fi akomo si ipo 90%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:156 msgid "shortcuts.open-color-picker" msgstr "Ólùṣà àwọ̀" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:158 msgid "shortcuts.open-dashboard" msgstr "Lọ si dasibodu" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:159 msgid "shortcuts.open-inspect" msgstr "Lọ si apaa ayewo olùwò" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:161 msgid "shortcuts.open-viewer" msgstr "Lọ si apaa ibaraẹnisọrọ olùwò" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:260 msgid "shortcuts.or" msgstr " tabi " +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:163 msgid "shortcuts.paste" msgstr "Lẹẹmọ" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:164 msgid "shortcuts.prev-frame" msgstr "Ọkọ ti tẹlẹ" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:165 msgid "shortcuts.redo" msgstr "Tunṣe" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:166 msgid "shortcuts.reset-zoom" msgstr "tun sun" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:168 msgid "shortcuts.search-placeholder" msgstr "Wa awọn ọna abuja" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:169 msgid "shortcuts.select-all" msgstr "Ṣa gbogbo re" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:171 msgid "shortcuts.select-parent-layer" msgstr "Yan Obii pẹlẹbẹ" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:175 msgid "shortcuts.show-shortcuts" msgstr "Ifihan / Itọju ọna abùjá" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:176 msgid "shortcuts.snap-nodes" msgstr "Yaa si awon apa" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:177 msgid "shortcuts.snap-pixel-grid" msgstr "Yaa si pikseli ilana" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:179 msgid "shortcuts.start-measure" msgstr "Bẹ̀rẹ̀ wíwọ̀n" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:180 msgid "shortcuts.stop-measure" msgstr "da wíwọ̀n duro" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:181 msgid "shortcuts.text-align-center" msgstr "Parapọ saarin" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:182 msgid "shortcuts.text-align-justify" msgstr "Sedede lárè" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:183 msgid "shortcuts.text-align-left" msgstr "mo si osi" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:184 msgid "shortcuts.text-align-right" msgstr "Mo sotun" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:185 msgid "shortcuts.thumbnail-set" msgstr "Se étò awòn áwòran fun fidio" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:186 msgid "shortcuts.toggle-alignment" msgstr "Iyipada titete ìmúdàgba" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:187 msgid "shortcuts.toggle-assets" msgstr "Yi dukia pada" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:188 msgid "shortcuts.toggle-colorpalette" msgstr "Yi paleti awọ pada" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:189 msgid "shortcuts.toggle-focus-mode" msgstr "Yi ipo idojukọ pada" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:190 msgid "shortcuts.toggle-fullscreen" msgstr "Yi kuro ni fulscrin" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:193 msgid "shortcuts.toggle-layers" msgstr "Yi awon pelebe yii pada" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:196 msgid "shortcuts.toggle-lock" msgstr "Tiipa / Siilẹ" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:197 msgid "shortcuts.toggle-lock-size" msgstr "títìipa lápàkàn" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:202 msgid "shortcuts.toggle-textpalette" msgstr "Yíípàda ọrọ paleti" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:204 msgid "shortcuts.toggle-visibility" msgstr "Fihan / Toju re" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:205 msgid "shortcuts.toggle-zoom-style" msgstr "Yiipada asa sun-un" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:206 msgid "shortcuts.underline" msgstr "Yii abẹlẹ" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:207 msgid "shortcuts.undo" msgstr "Yi pada" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:208 msgid "shortcuts.ungroup" msgstr "Tu ẹgbẹ" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:209 msgid "shortcuts.unmask" msgstr "Aiboju" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:210 msgid "shortcuts.v-distribute" msgstr "Pin ni inaro" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:211 msgid "shortcuts.zoom-lense-decrease" msgstr "Dín lẹnsì sisun kù" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:212 msgid "shortcuts.zoom-lense-increase" msgstr "Lílọ̀soké lẹnsi sisun" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:213 msgid "shortcuts.zoom-selected" msgstr "Yiyan pelu sun-un" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:771 msgid "team.webhooks.max-length" msgstr "Orúkọ̀ webhook kò gbọ́dọ̀ kọjà awọ́n óhun kíkọ́ 2048." -#: src/app/main/ui/dashboard/files.cljs +#: src/app/main/ui/dashboard/files.cljs:158 msgid "title.dashboard.files" msgstr "%s - Penpot" -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:37 msgid "title.dashboard.font-providers" msgstr "Pipese oniru fọnti - %s - Penpot" -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:36 msgid "title.dashboard.fonts" msgstr "Fọnti - %s - Penpot" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:320 msgid "title.dashboard.projects" msgstr "Awọn ísè agbèsè - %s - Penpot" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:32 msgid "title.dashboard.search" msgstr "Wà - %s - Penpot" -#: src/app/main/ui/auth/verify_token.cljs, src/app/main/ui/auth.cljs +#: src/app/main/ui/auth/verify_token.cljs:68, src/app/main/ui/auth.cljs:54 msgid "title.default" msgstr "Penpot – Se onìrú òmínìra fun awọ̀n ẹ̀gbẹ̀" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:292 msgid "title.settings.access-tokens" msgstr "Profaili – Aami wiwọle" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:110 msgid "title.settings.feedback" msgstr "Fi esi- Penpot" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:80 msgid "title.settings.options" msgstr "Awon eto - Penpot" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:115 msgid "title.settings.password" msgstr "Ọrọigbaníwólé - Penpot" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:115 msgid "title.settings.profile" msgstr "Profaili - Penpot" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:727 msgid "title.team-invitations" msgstr "Ifíwẹ́pe - %s - Penpot" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:493 msgid "title.team-members" msgstr "Ọ́́mọ̀ ẹgbẹ - %s - Penpot" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1036 msgid "title.team-settings" msgstr "Awọn eto - %s - Penpot" +#: src/app/main/ui/dashboard/team.cljs:989 msgid "title.team-webhooks" msgstr "Webhooks - %s - Penpot" -#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs +#: src/app/main/ui/viewer.cljs:419 msgid "title.viewer" msgstr "%s –Ipo wíwò - Penpot" -#: src/app/main/ui/workspace.cljs +#: src/app/main/ui/workspace.cljs:190 msgid "title.workspace" msgstr "%s - Penpot" -#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs +#: src/app/main/ui/viewer.cljs:569 msgid "viewer.empty-state" msgstr "No boards found on the page." -#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs +#: src/app/main/ui/viewer.cljs:574 msgid "viewer.frame-not-found" msgstr "A kò ri ọ̀kọ̀." +#: src/app/main/ui/viewer/header.cljs:336 msgid "viewer.header.comments-section" msgstr "Ọrọìwòye (%s)" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/interactions.cljs:292 msgid "viewer.header.dont-show-interactions" msgstr "Maa fi ìbaráẹ̀nìsepọ han" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/header.cljs:188 msgid "viewer.header.fullscreen" msgstr "Fé ká gḅọgbọ síkírínì" +#: src/app/main/ui/viewer/header.cljs:345 msgid "viewer.header.inspect-section" msgstr "Ayéwò (%s)" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/interactions.cljs:282 msgid "viewer.header.interactions" msgstr "Ibaraenisépọ̀" +#: src/app/main/ui/viewer/header.cljs:327 msgid "viewer.header.interactions-section" msgstr "Awọ̀n Ibaraenisépọ̀ (%s)" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/share_link.cljs:187 msgid "viewer.header.share.copy-link" msgstr "Da línkì kọ̀" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/interactions.cljs:300 msgid "viewer.header.show-interactions" msgstr "Ifihan Ibaraenisépọ̀" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/header.cljs:231 msgid "viewer.header.sitemap" msgstr "Áwòran átọ̀kà ílẹ̀" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:58 msgid "workspace.align.hcenter" msgstr "Paŕàpọ̀ sí petelè aarin (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:74 msgid "workspace.align.hdistribute" msgstr "Pin aayè ni pètélè (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:50 msgid "workspace.align.hleft" msgstr "Páràpọ̀ sí òsì (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:66 msgid "workspace.align.hright" msgstr "Páràpọ̀ sí ọtun (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:99 msgid "workspace.align.vbottom" msgstr "Páràpọ̀ sí isàlẹ̀ (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:91 msgid "workspace.align.vcenter" msgstr "Páràpọ̀ sí inàro aarin (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:104 msgid "workspace.align.vdistribute" msgstr "Pin aayè inàró (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:83 msgid "workspace.align.vtop" msgstr "Párápọ̀ sóké (%s)" #: src/app/main/ui/workspace/sidebar/assets.cljs +#, unused msgid "workspace.assets.assets" msgstr "Awọ̀n dukia" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets.cljs:134 msgid "workspace.assets.box-filter-all" msgstr "Gbọ̀gbọ̀ awọ̀n dukia" -#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/dashboard/grid.cljs:130, src/app/main/ui/dashboard/grid.cljs:162, src/app/main/ui/workspace/sidebar/assets/colors.cljs:485, src/app/main/ui/workspace/sidebar/assets.cljs:150 msgid "workspace.assets.colors" msgstr "Áwò" -#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/dashboard/grid.cljs:126, src/app/main/ui/dashboard/grid.cljs:141, src/app/main/ui/workspace/sidebar/assets/components.cljs:513, src/app/main/ui/workspace/sidebar/assets.cljs:139 msgid "workspace.assets.components" msgstr "Awọ̀n eroja" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:131 msgid "workspace.assets.create-group" msgstr "Ṣẹ̀dá ẹ̀gbẹ̀ kan" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:142 msgid "workspace.assets.create-group-hint" msgstr "páarẹ̀" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/context_menu.cljs:534, src/app/main/ui/workspace/sidebar/assets/components.cljs:572 msgid "workspace.assets.duplicate" msgstr "ẹẹdà" -#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:247, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:439 msgid "workspace.assets.edit" msgstr "Ṣatunkọ" -#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/graphics.cljs:384, src/app/main/ui/workspace/sidebar/assets.cljs:145 msgid "workspace.assets.graphics" msgstr "Awọn Awòran" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:255, src/app/main/ui/workspace/sidebar/assets/components.cljs:581, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:428, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:448 msgid "workspace.assets.group" msgstr "Ẹgbẹ" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:141 msgid "workspace.assets.group-name" msgstr "Orúkọ̀ ẹgbẹ" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets.cljs:168 msgid "workspace.assets.libraries" msgstr "Ílè-iwè" +#: src/app/main/ui/workspace/sidebar/assets/file_library.cljs:62, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:347 msgid "workspace.assets.local-library" msgstr "Ílè-iwè agbegbe" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/file_library.cljs:295 msgid "workspace.assets.not-found" msgstr "Ko si ohun-ini ti a rii" +#, unused msgid "workspace.assets.open-library" msgstr "Ṣii faili ìlé-ikáwè" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/context_menu.cljs:532, src/app/main/ui/workspace/sidebar/assets/colors.cljs:243, src/app/main/ui/workspace/sidebar/assets/components.cljs:566, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:421, src/app/main/ui/workspace/sidebar/assets/groups.cljs:63, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:434 msgid "workspace.assets.rename" msgstr "Lo oruko imiran" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:132 msgid "workspace.assets.rename-group" msgstr "Lo oruko imiran fun ẹgbẹ" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets.cljs:173 msgid "workspace.assets.search" msgstr "Wa dukia" #: src/app/main/ui/workspace/sidebar/assets.cljs +#, unused msgid "workspace.assets.shared-library" msgstr "Iĺẹ̀ iwekika ti a pln" -#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/dashboard/grid.cljs:134, src/app/main/ui/dashboard/grid.cljs:189, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:397, src/app/main/ui/workspace/sidebar/assets.cljs:155 msgid "workspace.assets.typography" msgstr "Iwe itẹwe" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused msgid "workspace.assets.typography.font-id" msgstr "Fonti" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:505 msgid "workspace.assets.typography.font-size" msgstr "Iwon" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:501 msgid "workspace.assets.typography.font-variant-id" msgstr "Iyatọ" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:513 msgid "workspace.assets.typography.letter-spacing" msgstr "Aaye leta" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:509 msgid "workspace.assets.typography.line-height" msgstr "Giga ila" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, src/app/main/ui/inspect/attributes/text.cljs, src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/dashboard/grid.cljs:199, src/app/main/ui/workspace/libraries.cljs:461, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:464, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:489, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:596, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:615 msgid "workspace.assets.typography.sample" msgstr "Ag" +#, unused msgid "workspace.assets.typography.text-styles" msgstr "Oniru ọrọ" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:517 msgid "workspace.assets.typography.text-transform" msgstr "Iyipádà ọrọ" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:66 msgid "workspace.assets.ungroup" msgstr "Títù ẹ̀gbẹ́" +#: src/app/main/ui/workspace/sidebar/layers.cljs:525 msgid "workspace.focus.focus-mode" msgstr "Ipo Idojukọ" +#: src/app/main/ui/workspace/context_menu.cljs:287, src/app/main/ui/workspace/context_menu.cljs:553 msgid "workspace.focus.focus-off" msgstr "Pa Ídòjúkọ" +#: src/app/main/ui/workspace/context_menu.cljs:286 msgid "workspace.focus.focus-on" msgstr "Tan Ídòjúkọ" +#, unused msgid "workspace.focus.selection" msgstr "Yiyan" -#: src/app/main/data/workspace/libraries.cljs, src/app/main/ui/components/color_bullet.cljs +#: src/app/util/color.cljs:34 msgid "workspace.gradients.linear" msgstr "Itesiwaju gerege" -#: src/app/main/data/workspace/libraries.cljs, src/app/main/ui/components/color_bullet.cljs +#: src/app/util/color.cljs:35 msgid "workspace.gradients.radial" msgstr "Itesiwaju Radial" +#: src/app/main/ui/workspace/main_menu.cljs:192 msgid "workspace.header.menu.disable-scale-content" msgstr "Pa asèkalẹ̀ iwọnbà" #: src/app/main/ui/workspace/header.cljs +#, unused msgid "workspace.header.menu.disable-scale-text" msgstr "Pa ọrọ iwọnba" +#: src/app/main/ui/workspace/main_menu.cljs:253 msgid "workspace.header.menu.disable-snap-pixel-grid" msgstr "Pa yipada si piseli" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:239 msgid "workspace.header.menu.enable-dynamic-alignment" msgstr "Tan imudagba to Sedede" +#: src/app/main/ui/workspace/main_menu.cljs:193 msgid "workspace.header.menu.enable-scale-content" msgstr "Tan asèkalẹ̀ iwọnbà" #: src/app/main/ui/workspace/header.cljs +#, unused msgid "workspace.header.menu.enable-scale-text" msgstr "Tan iwọnbà ọrọ" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:224 msgid "workspace.header.menu.enable-snap-guides" msgstr "Yipada si itọ̀nìsọna" +#: src/app/main/ui/workspace/main_menu.cljs:254 msgid "workspace.header.menu.enable-snap-pixel-grid" msgstr "Tan Yipada si piseli" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:353 msgid "workspace.header.menu.hide-palette" msgstr "Tọ̀jú awọ palẹti" +#: src/app/main/ui/workspace/main_menu.cljs:394 msgid "workspace.header.menu.hide-pixel-grid" msgstr "Tọ̀jú pisẹli ilana" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:320 msgid "workspace.header.menu.hide-rules" msgstr "Tọ̀jú awọn ólòrí" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:367 msgid "workspace.header.menu.hide-textpalette" msgstr "Tọ̀jú awọn fọnti paleti" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:731 msgid "workspace.header.menu.option.edit" msgstr "Satunkọ" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:720 msgid "workspace.header.menu.option.file" msgstr "Faili" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:777 msgid "workspace.header.menu.option.help-info" msgstr "Iranlọwọ ati alaye" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:753 msgid "workspace.header.menu.option.preferences" msgstr "Awọn àyánfẹ̀" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:742 msgid "workspace.header.menu.option.view" msgstr "Wiwo" +#: src/app/main/ui/workspace/main_menu.cljs:459 msgid "workspace.header.menu.redo" msgstr "Tun ṣe" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:432 msgid "workspace.header.menu.select-all" msgstr "Sa gbogbo rẹ" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:354 msgid "workspace.header.menu.show-palette" msgstr "Fi awo paleti han" +#: src/app/main/ui/workspace/main_menu.cljs:395 msgid "workspace.header.menu.show-pixel-grid" msgstr "Fi piseli ilana han" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:321 msgid "workspace.header.menu.show-rules" msgstr "Ifihan awọ̀n ólórí" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:368 msgid "workspace.header.menu.show-textpalette" msgstr "Ifihan fonti paleti" +#: src/app/main/ui/workspace/main_menu.cljs:446 msgid "workspace.header.menu.undo" msgstr "Yi pada" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/viewer/header.cljs:98, src/app/main/ui/workspace/right_header.cljs:120 msgid "workspace.header.reset-zoom" msgstr "Tunto" #: src/app/main/ui/workspace/header.cljs +#, unused msgid "workspace.header.save-error" msgstr "àsisè lórì fíf́ipamọ" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/right_header.cljs:52 msgid "workspace.header.saved" msgstr "Ti a fipamọ" #: src/app/main/ui/workspace/header.cljs +#, unused msgid "workspace.header.saving" msgstr "Fifipámọ" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/right_header.cljs:42, src/app/main/ui/workspace/right_header.cljs:47 msgid "workspace.header.unsaved" msgstr "Awọn ayípàdà ti kó ni fipamọ" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/right_header.cljs:239 msgid "workspace.header.viewer" msgstr "Ipo wiwo(%s)" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/viewer/header.cljs:79, src/app/main/ui/workspace/right_header.cljs:103 msgid "workspace.header.zoom" msgstr "sun-un" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/viewer/header.cljs:109 msgid "workspace.header.zoom-fill" msgstr "Kun - óṣùwọn to kun" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/viewer/header.cljs:102 msgid "workspace.header.zoom-fit" msgstr "Báràmù - óṣùwọn to Báràmù" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/right_header.cljs:123 msgid "workspace.header.zoom-fit-all" msgstr "Suun kí o bá gbógbó rẹ̀ dọ́gbà" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/viewer/header.cljs:116 msgid "workspace.header.zoom-full-screen" msgstr "Áseàfihan to kún" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/right_header.cljs:130 msgid "workspace.header.zoom-selected" msgstr "Ṣuum lati yan" +#: src/app/main/ui/workspace/viewport/grid_layout_editor.cljs:59 msgid "workspace.layout_grid.editor.title" msgstr "Ilànà àyípàdà" #: src/app/main/ui/workspace/libraries.cljs +#, unused msgid "workspace.libraries.add" msgstr "Afikùn" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:80, src/app/main/ui/workspace/libraries.cljs:99 msgid "workspace.libraries.colors" msgstr "%s awọn awọ" -#: src/app/main/ui/workspace/colorpalette.cljs +#: src/app/main/ui/workspace/color_palette.cljs:126 msgid "workspace.libraries.colors.empty-palette" msgstr "Kòyi si oniruiru awọ ni ilé-ikàwé re" -#: src/app/main/ui/workspace/textpalette.cljs +#: src/app/main/ui/workspace/text_palette.cljs:150 msgid "workspace.libraries.colors.empty-typography-palette" msgstr "Ko si oniruiru iwé itẹ̀wé ni ilé ikàwé rẹ̀" #: src/app/main/ui/workspace/colorpicker.cljs +#, unused msgid "workspace.libraries.colors.hsv" msgstr "HSV" -#: src/app/main/ui/workspace/colorpicker/libraries.cljs, src/app/main/ui/workspace/colorpalette.cljs +#: src/app/main/ui/workspace/color_palette_ctx_menu.cljs:82, src/app/main/ui/workspace/colorpicker/libraries.cljs:72 msgid "workspace.libraries.colors.recent-colors" msgstr "Awọn àwò tálò láipẹ̀" #: src/app/main/ui/workspace/colorpicker.cljs +#, unused msgid "workspace.libraries.colors.rgb-complementary" msgstr "RGB Ibáramù" #: src/app/main/ui/workspace/colorpicker.cljs +#, unused msgid "workspace.libraries.colors.rgba" msgstr "RGBA" -#: src/app/main/ui/workspace/colorpicker.cljs +#: src/app/main/ui/workspace/colorpicker.cljs:372 msgid "workspace.libraries.colors.save-color" msgstr "Fi awọn oniru awọ pamọ" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:74, src/app/main/ui/workspace/libraries.cljs:91 msgid "workspace.libraries.components" msgstr "%s Ẹya ara ẹrọ" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:215 msgid "workspace.libraries.file-library" msgstr "Faili ilé ikàwé" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:77, src/app/main/ui/workspace/libraries.cljs:95 msgid "workspace.libraries.graphics" msgstr "%s ayaworan" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:526, src/app/main/ui/workspace/libraries.cljs:531 msgid "workspace.libraries.libraries" msgstr "Awọn Ílè íkawè" #: src/app/main/ui/workspace/libraries.cljs +#, unused msgid "workspace.libraries.library" msgstr "Ílè íkawè" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:382 msgid "workspace.libraries.library-updates" msgstr "Ílè íkawè ímùdojúiwọn" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:380 msgid "workspace.libraries.no-libraries-need-sync" msgstr "Kò si Ilé kàwé ti a pin si ímùdojúiwọn" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:256 msgid "workspace.libraries.shared-libraries" msgstr "Awọn ilé kàwé tí a pìn" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:308 msgid "workspace.libraries.text.multiple-typography" msgstr "Óríṣí awọn íwè itẹ̀wé" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:311 msgid "workspace.libraries.text.multiple-typography-tooltip" msgstr "Tú gbógbó lińkí awọn íwè itẹ̀wé" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:83, src/app/main/ui/workspace/libraries.cljs:103 msgid "workspace.libraries.typography" msgstr "%s awọn íwè itẹ̀wé" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:402 msgid "workspace.libraries.update" msgstr "ímùdojúiwọn" -#: src/app/main/data/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:477 msgid "workspace.libraries.update.see-all-changes" msgstr "wò gbògbò awọn ayípàdà" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:536 msgid "workspace.libraries.updates" msgstr "Awọn ímùdojúiwọn" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:737 msgid "workspace.options.add-interaction" msgstr "Tẹ amí + làtí fi íbàràénisépọ̀ kun" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:86, src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:102 msgid "workspace.options.blur-options.title" msgstr "Baìbaì" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:85 msgid "workspace.options.blur-options.title.group" msgstr "Ẹ̀gdẹ́ Baìbaì" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:84 msgid "workspace.options.blur-options.title.multiple" msgstr "Asayan Baìbaì" -#: src/app/main/ui/workspace/sidebar/options/page.cljs +#: src/app/main/ui/workspace/sidebar/options/page.cljs:32, src/app/main/ui/workspace/sidebar/options/page.cljs:39 msgid "workspace.options.canvas-background" msgstr "Kánfásì abẹ́le" +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:548 msgid "workspace.options.clip-content" msgstr "Ábẹrẹ́ ákoonù" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:600, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:605 msgid "workspace.options.component" msgstr "Apakan" +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:610 msgid "workspace.options.component.copy" msgstr "Ádàakọ" +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:172 msgid "workspace.options.component.edit-annotation" msgstr "Ṣatunkọ àkọ̀silẹ̀" +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:609 msgid "workspace.options.component.main" msgstr "Ólòrí" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:163 msgid "workspace.options.constraints" msgstr "Awọn ihámọ" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:150 msgid "workspace.options.constraints.bottom" msgstr "Ídì" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:141, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:152 msgid "workspace.options.constraints.center" msgstr "Aarin" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:138 msgid "workspace.options.constraints.left" msgstr "Òsi" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:140 msgid "workspace.options.constraints.leftright" msgstr "Osi ati otun" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:139 msgid "workspace.options.constraints.right" msgstr "Ọ̀tún" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:142, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:153 msgid "workspace.options.constraints.scale" msgstr "Íwọ́n" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:149 msgid "workspace.options.constraints.top" msgstr "Ókè" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:151 msgid "workspace.options.constraints.topbottom" msgstr "Ókè ati Ídí" -#: src/app/main/ui/workspace/sidebar/options.cljs +#: src/app/main/ui/workspace/sidebar/options.cljs:112 msgid "workspace.options.design" msgstr "Ónirú" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs +#: src/app/main/ui/viewer/inspect/exports.cljs:139 msgid "workspace.options.export" msgstr "Sí ilẹ́ òkèeré" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs +#: src/app/main/ui/viewer/inspect/exports.cljs:178, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:219 msgid "workspace.options.export.suffix" msgstr "afikun ọrọ niipárí" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs, src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/export.cljs:240 msgid "workspace.options.exporting-complete" msgstr "Gbígbè okeere ti pari" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs, src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/export.cljs:172, src/app/main/ui/export.cljs:241, src/app/main/ui/viewer/inspect/exports.cljs:194, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:236 msgid "workspace.options.exporting-object" msgstr "Gbígbè okeere …" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs, src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/export.cljs:239 msgid "workspace.options.exporting-object-error" msgstr "Gbígbè okeere kuna" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:49, src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:174 msgid "workspace.options.fill" msgstr "Kún" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:178 msgid "workspace.options.flows.add-flow-start" msgstr "Safikun ibẹrè ṣiṣan" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#, unused msgid "workspace.options.flows.flow-start" msgstr "ibẹrè ṣiṣan" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:161 msgid "workspace.options.flows.flow-starts" msgstr "íbẹrè awọn ṣiṣan" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:29 msgid "workspace.options.grid.auto" msgstr "Aifọ́wọyi" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused msgid "workspace.options.grid.grid-title" msgstr "Ilánà" +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:196, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:237 msgid "workspace.options.grid.params.color" msgstr "Awọ" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused msgid "workspace.options.grid.params.columns" msgstr "Awọn ọwọn" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:259 msgid "workspace.options.grid.params.gutter" msgstr "Gota" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:246 msgid "workspace.options.grid.params.height" msgstr "Òkè" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:270 msgid "workspace.options.grid.params.margin" msgstr "Àlà" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused msgid "workspace.options.grid.params.rows" msgstr "Àwọn orí ìlà ìbú" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:216, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:290 msgid "workspace.options.grid.params.set-default" msgstr "Fi sípò abínibí" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused msgid "workspace.options.grid.params.size" msgstr "Ìwọ̀n" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused msgid "workspace.options.grid.params.type" msgstr "Irú" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:231 msgid "workspace.options.grid.params.type.bottom" msgstr "ìsàlẹ̀" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:229 msgid "workspace.options.grid.params.type.center" msgstr "Àárín" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:228 msgid "workspace.options.grid.params.type.left" msgstr "Òsì" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:232 msgid "workspace.options.grid.params.type.right" msgstr "Ọ̀tún" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:225 msgid "workspace.options.grid.params.type.stretch" msgstr "Nà" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:227 msgid "workspace.options.grid.params.type.top" msgstr "Òkè" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:211, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:288 msgid "workspace.options.grid.params.use-default" msgstr "Lo ipò abínibí" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:247 msgid "workspace.options.grid.params.width" msgstr "Ìgbòrò" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:158 msgid "workspace.options.grid.row" msgstr "Àwọn orị ìlà ìbú" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:156 msgid "workspace.options.grid.square" msgstr "Alápoméjì" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:48 msgid "workspace.options.group-fill" msgstr "Ẹ̀kún ẹgbẹ́" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:42 msgid "workspace.options.group-stroke" msgstr "Ẹgba ẹgbẹ́" +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:406 msgid "workspace.options.height" msgstr "Gíga" +#: src/app/main/ui/workspace/sidebar/options.cljs:161 msgid "workspace.options.inspect" msgstr "Ṣàyẹ̀wò" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:468 msgid "workspace.options.interaction-action" msgstr "Ìgbésẹ̀" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:41, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:367 msgid "workspace.options.interaction-after-delay" msgstr "Lẹ́yìn ìdádúro" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:614 msgid "workspace.options.interaction-animation" msgstr "Àwòrán abẹ̀mí" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:406 msgid "workspace.options.interaction-animation-dissolve" msgstr "Túká" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:405 msgid "workspace.options.interaction-animation-none" msgstr "Kòsí" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:412 msgid "workspace.options.interaction-animation-push" msgstr "Tì" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:407 msgid "workspace.options.interaction-animation-slide" msgstr "Aṣàfihàn" +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:391 msgid "workspace.options.interaction-auto" msgstr "Ọkọ̀" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:604 msgid "workspace.options.interaction-background" msgstr "Fi àyíká ìtẹ̀lẹ̀ ìlànà síi" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:590 msgid "workspace.options.interaction-close-outside" msgstr "Páadé tí o bá n tẹ ìta" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:372 msgid "workspace.options.interaction-close-overlay" msgstr "Pa ìlànà ìtẹ̀lẹ̀ dé" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:56 msgid "workspace.options.interaction-close-overlay-dest" msgstr "Pa ìlànà ìtẹ̀lẹ̀ dé: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:456 msgid "workspace.options.interaction-delay" msgstr "Ìdádúró" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:478 msgid "workspace.options.interaction-destination" msgstr "Èbúté" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:661 msgid "workspace.options.interaction-duration" msgstr "Ịgbà" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:674 msgid "workspace.options.interaction-easing" msgstr "Rírokùn" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:416 msgid "workspace.options.interaction-easing-ease" msgstr "Ìrọ̀rùn" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:417 msgid "workspace.options.interaction-easing-ease-in" msgstr "Rọra wọlé" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:419 msgid "workspace.options.interaction-easing-ease-in-out" msgstr "Rọra wọlé jáde" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:418 msgid "workspace.options.interaction-easing-ease-out" msgstr "Rọra jáde" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:415 msgid "workspace.options.interaction-easing-linear" msgstr "Ilà" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#, unused msgid "workspace.options.interaction-in" msgstr "Inú" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:39, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:364 msgid "workspace.options.interaction-mouse-enter" msgstr "Atọ́ka ìwọnú" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:40, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:365 msgid "workspace.options.interaction-mouse-leave" msgstr "Atọ́ka kíkúrò" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:458, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:459, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:464, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:663, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:665, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:669 msgid "workspace.options.interaction-ms" msgstr "ms" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:369 msgid "workspace.options.interaction-navigate-to" msgstr "Lílọ kiri sí" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:50 msgid "workspace.options.interaction-navigate-to-dest" msgstr "Lílo kiri sí: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:51, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:53, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:55, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:380 msgid "workspace.options.interaction-none" msgstr "(Akò ṣètò)" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:691 msgid "workspace.options.interaction-offset-effect" msgstr "Ipa àìṣedédé" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:35, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:360 msgid "workspace.options.interaction-on-click" msgstr "Tẹ orí" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:370 msgid "workspace.options.interaction-open-overlay" msgstr "Ṣíìtẹ̀lé ìlànà" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:52 msgid "workspace.options.interaction-open-overlay-dest" msgstr "Ṣí ìtẹ̀lé ìlànà: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:59, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:374 msgid "workspace.options.interaction-open-url" msgstr "Ṣí URL" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#, unused msgid "workspace.options.interaction-out" msgstr "Jáde" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:403 msgid "workspace.options.interaction-pos-bottom-center" msgstr "Àáriń ìsàlẹ̀" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:401 msgid "workspace.options.interaction-pos-bottom-left" msgstr "Ìsàlẹ̀ òsì" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:402 msgid "workspace.options.interaction-pos-bottom-right" msgstr "Ìsàḷ̀ẹ̀ ọ̀tún" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:397 msgid "workspace.options.interaction-pos-center" msgstr "Àárín" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:396 msgid "workspace.options.interaction-pos-manual" msgstr "Aláfọwóṣe" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:400 msgid "workspace.options.interaction-pos-top-center" msgstr "Àárín òkè" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:398 msgid "workspace.options.interaction-pos-top-left" msgstr "Òkè òsì" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:399 msgid "workspace.options.interaction-pos-top-right" msgstr "Òkè ọ̀tún" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:524 msgid "workspace.options.interaction-position" msgstr "Ipò" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:494 msgid "workspace.options.interaction-preserve-scroll" msgstr "Ṣe ìtọ́jú ipò àyílọ" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:58, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:373 msgid "workspace.options.interaction-prev-screen" msgstr "Aṣàfihàn àtẹ̀yìnwá" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:515 msgid "workspace.options.interaction-relative-to" msgstr "Ìbátan sí" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:57, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:379, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:393, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:394 msgid "workspace.options.interaction-self" msgstr "Tìkara" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:371 msgid "workspace.options.interaction-toggle-overlay" msgstr "Àyípadà ìtẹ̀lé ìlànà" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:54 msgid "workspace.options.interaction-toggle-overlay-dest" msgstr "Àyípadà ìtẹ̀lé ìlànà: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:445 msgid "workspace.options.interaction-trigger" msgstr "Okùnfà" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:503 msgid "workspace.options.interaction-url" msgstr "URL" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:37, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:362 msgid "workspace.options.interaction-while-hovering" msgstr "Nígbàtí óhún rábàbà" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:38, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:363 msgid "workspace.options.interaction-while-pressing" msgstr "Nígbàtị óhún tẹ̀" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:724 msgid "workspace.options.interactions" msgstr "Àwọn ìbáraẹniṣepọ̀" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:137 msgid "workspace.options.layer-options.blend-mode.color" msgstr "Àwọ̀" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:126 msgid "workspace.options.layer-options.blend-mode.color-burn" msgstr "Ṣẹ̀dà àwọ̀" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:129 msgid "workspace.options.layer-options.blend-mode.color-dodge" msgstr "Òpó àwọ̀" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:124 msgid "workspace.options.layer-options.blend-mode.darken" msgstr "Ṣókuǹkùn" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:133 msgid "workspace.options.layer-options.blend-mode.difference" msgstr "Ìyàtọ̀" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:134 msgid "workspace.options.layer-options.blend-mode.exclusion" msgstr "Ìyàsọ́tọ̀" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:132 msgid "workspace.options.layer-options.blend-mode.hard-light" msgstr "Iná líle" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:135 msgid "workspace.options.layer-options.blend-mode.hue" msgstr "Ọdà" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:127 msgid "workspace.options.layer-options.blend-mode.lighten" msgstr "Fẹ́ẹ́rẹ́fẹ́" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:138 msgid "workspace.options.layer-options.blend-mode.luminosity" msgstr "Ìmọ́lẹ̀" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:125 msgid "workspace.options.layer-options.blend-mode.multiply" msgstr "Ìsọdipúpọ̀" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:123 msgid "workspace.options.layer-options.blend-mode.normal" msgstr "Déédé" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:130 msgid "workspace.options.layer-options.blend-mode.overlay" msgstr "Ìtẹ̀lẹ́ ìlànà" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:136 msgid "workspace.options.layer-options.blend-mode.saturation" msgstr "Ẹ̀kúnrẹ́rẹ́" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:128 msgid "workspace.options.layer-options.blend-mode.screen" msgstr "Aṣàfihàn" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:131 msgid "workspace.options.layer-options.blend-mode.soft-light" msgstr "Ìmọ́lẹ̀ rokoṣo" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#, unused msgid "workspace.options.layer-options.title" msgstr "Ìpele" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#, unused msgid "workspace.options.layer-options.title.group" msgstr "Ẹgbẹ́ ìpele" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#, unused msgid "workspace.options.layer-options.title.multiple" msgstr "Egbẹ́ ààyò" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout-item.advanced-ops" msgstr "Ànàálè ìtẹ̀síwájú" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:564 msgid "workspace.options.layout-item.layout-item-max-h" msgstr "Ibi tó ga jùlọ" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:531 msgid "workspace.options.layout-item.layout-item-max-w" msgstr "Ìgbòrò tó ga jù" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:548 msgid "workspace.options.layout-item.layout-item-min-h" msgstr "Gíga to kéré jù lọ" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:515 msgid "workspace.options.layout-item.layout-item-min-w" msgstr "Ìgbòrò tó kéré jù lọ" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout-item.title.layout-item-max-h" msgstr "Gíga tó pọ̀jù" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout-item.title.layout-item-max-w" msgstr "Ìgbòrò tí pòjù" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout-item.title.layout-item-min-h" msgstr "Gíga tó kéré jùlọ" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout-item.title.layout-item-min-w" msgstr "Gbígbòrò tó kéré jù lọ" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.bottom" msgstr "Ìdí" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.direction.column" msgstr "Ìlà òòró" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.direction.column-reverse" msgstr "Ìlà òòró yíyípadà" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.direction.row" msgstr "Ilà ìbú" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.direction.row-reverse" msgstr "Ilà ìbú yíyípadà" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.gap" msgstr "Àlàfo" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.left" msgstr "Òsì" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout.margin" msgstr "Etí ìwé" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout.margin-all" msgstr "Gbogbo àwọn àwòrán" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused msgid "workspace.options.layout.margin-simple" msgstr "Etí ìwé ẹyọ" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.packed" msgstr "tí wọn dì" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.padding" msgstr "Ìtẹ̀wọ́nú" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.padding-all" msgstr "Gbogbo ẹ̀gbẹ́" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.padding-simple" msgstr "Ìtẹ̀wọ́nú pọ́nbélé" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.right" msgstr "Ọ̀tún" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.space-around" msgstr "Àyè àyíká" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.space-between" msgstr "Àyè àárín" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused msgid "workspace.options.layout.top" msgstr "Òkè" -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:146 msgid "workspace.options.more-colors" msgstr "Àwọn àwọ̀ púpọ̀ sí i" -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:123 msgid "workspace.options.more-lib-colors" msgstr "Àwọn yàrá àwọ̀ púpọ̀ sí I" +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:161 msgid "workspace.options.opacity" msgstr "Àìríran" #: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#, unused msgid "workspace.options.position" msgstr "Ipò" -#: src/app/main/ui/workspace/sidebar/options.cljs +#: src/app/main/ui/workspace/sidebar/options.cljs:157 msgid "workspace.options.prototype" msgstr "Ìtẹ̀lé ìlànà" +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:469, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:481 msgid "workspace.options.radius" msgstr "Ìdáméjì òbìrìkìtiì" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:513 msgid "workspace.options.radius-bottom-left" msgstr "Apá òsì ìsàlẹ̀" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:522 msgid "workspace.options.radius-bottom-right" msgstr "Apá ọ̀tún ìsàle" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:495 msgid "workspace.options.radius-top-left" msgstr "Òkè òsì" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:504 msgid "workspace.options.radius-top-right" msgstr "Òkè ọ̀tún" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:532 msgid "workspace.options.radius.all-corners" msgstr "Àwọn gbogbo igun" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:533 msgid "workspace.options.radius.single-corners" msgstr "Àwọn igun olómìnira" +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:183 msgid "workspace.options.recent-fonts" msgstr "Àìpẹ́" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs, src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/export.cljs:284 msgid "workspace.options.retry" msgstr "Tún gbìyànjú" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:451 msgid "workspace.options.rotation" msgstr "Yíyípo" +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:180 msgid "workspace.options.search-font" msgstr "Àdàkọ ìwádìí" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:741 msgid "workspace.options.select-a-shape" msgstr "" "Yan ìrísi ,pátákó tàbí ẹgbẹ́ láti fa ìsopọ̀ mọ́ pátákó " "òmíràn." -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:105 msgid "workspace.options.selection-color" msgstr "Àwọn àwọ̀ tí a ti yàn" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:47 msgid "workspace.options.selection-fill" msgstr "Ìmúṣẹ tí a yàn" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:41 msgid "workspace.options.selection-stroke" msgstr "Ipò ìlù tí a yàn" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:40, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:198, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:200 msgid "workspace.options.shadow-options.blur" msgstr "Rẹ́súrẹ́sú" +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:238 msgid "workspace.options.shadow-options.color" msgstr "Àwọ̀ òjíjí" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:144 msgid "workspace.options.shadow-options.drop-shadow" msgstr "Da òjìjí" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:145 msgid "workspace.options.shadow-options.inner-shadow" msgstr "Òjìjí inú" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:38, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:186 msgid "workspace.options.shadow-options.offsetx" msgstr "X" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:39, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:224 msgid "workspace.options.shadow-options.offsety" msgstr "Y" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:41, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:211, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:213 msgid "workspace.options.shadow-options.spread" msgstr "Tànkálẹ̀" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:296 msgid "workspace.options.shadow-options.title" msgstr "Òjìjí" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:295 msgid "workspace.options.shadow-options.title.group" msgstr "Àwùjọ òjìjí" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:294 msgid "workspace.options.shadow-options.title.multiple" msgstr "Òjìjí tí a yàn" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:193 msgid "workspace.options.show-fill-on-export" msgstr "Fihàn nínụ àgbéjáde" +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:562 msgid "workspace.options.show-in-viewer" msgstr "Fihàn nínú ipò wíwò" -#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:162 msgid "workspace.options.size" msgstr "Ìwọ̀n" -#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:355 msgid "workspace.options.size-presets" msgstr "Àwọn àtòjọ" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:43 msgid "workspace.options.stroke" msgstr "Ipò ìlà" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#, unused msgid "workspace.options.stroke-cap.circle-marker" msgstr "Àmì yíyíká" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:129 msgid "workspace.options.stroke-cap.circle-marker-short" msgstr "Yíyíká" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#, unused msgid "workspace.options.stroke-cap.diamond-marker" msgstr "Àmì dáyámọ́ǹdì" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:130 msgid "workspace.options.stroke-cap.diamond-marker-short" msgstr "Dáyámọ́ǹdì" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#, unused msgid "workspace.options.stroke-cap.line-arrow" msgstr "Ọfà ìlà" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:126 msgid "workspace.options.stroke-cap.line-arrow-short" msgstr "Ofà" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:124 msgid "workspace.options.stroke-cap.none" msgstr "Kòsí" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:132 msgid "workspace.options.stroke-cap.round" msgstr "Yíká" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:133 msgid "workspace.options.stroke-cap.square" msgstr "Alápoméjì" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#, unused msgid "workspace.options.stroke-cap.square-marker" msgstr "Àmì alápoméjì" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:128 msgid "workspace.options.stroke-cap.square-marker-short" msgstr "Onígun mẹ́rin" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#, unused msgid "workspace.options.stroke-cap.triangle-arrow" msgstr "Ofà onígun mẹ́ta" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:127 msgid "workspace.options.stroke-cap.triangle-arrow-short" msgstr "Onígun mẹ́ta" +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:192 msgid "workspace.options.stroke-color" msgstr "Àwọ ìlà" +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:165 msgid "workspace.options.stroke-width" msgstr "Ìgbòrò ìlà" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:87 msgid "workspace.options.stroke.center" msgstr "Àárín" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:105 msgid "workspace.options.stroke.dashed" msgstr "Tó ní ìlà-ìlà" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:104 msgid "workspace.options.stroke.dotted" msgstr "àmì tó tó tó" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:88 msgid "workspace.options.stroke.inner" msgstr "Nínú" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:106 msgid "workspace.options.stroke.mixed" msgstr "Tí a ti dàpọ̀" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:89 msgid "workspace.options.stroke.outer" msgstr "Ìta" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:103 msgid "workspace.options.stroke.solid" msgstr "Ṣinsin" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:115 msgid "workspace.options.text-options.align-bottom" msgstr "Mú dọ́gba abẹ́" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:111 msgid "workspace.options.text-options.align-middle" msgstr "Mú dọgba àárín" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:107 msgid "workspace.options.text-options.align-top" msgstr "Mú dọ́gba òkè" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:82 msgid "workspace.options.text-options.direction-ltr" msgstr "LTR" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:87 msgid "workspace.options.text-options.direction-rtl" msgstr "RTL" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:149 msgid "workspace.options.text-options.grow-auto-height" msgstr "Gíga aládàáṣiṣẹ́" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:145 msgid "workspace.options.text-options.grow-auto-width" msgstr "Gbígbòòrò aládáàṣiṣé" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:141 msgid "workspace.options.text-options.grow-fixed" msgstr "Tí kò yíyadà" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:381 msgid "workspace.options.text-options.letter-spacing" msgstr "Àlàfo lẹ́tà" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:364 msgid "workspace.options.text-options.line-height" msgstr "Gíga ìlà" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused msgid "workspace.options.text-options.lowercase" msgstr "Lẹ́tà kékeré" #: src/app/main/ui/workspace/sidebar/options/menus/text.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused msgid "workspace.options.text-options.none" msgstr "Kòsí" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:176 msgid "workspace.options.text-options.strikethrough" msgstr "Ìfọwọ́bàyíká (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:51 msgid "workspace.options.text-options.text-align-center" msgstr "Mú dọ́gba àárín (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:59 msgid "workspace.options.text-options.text-align-justify" msgstr "Ìdálàre (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:47 msgid "workspace.options.text-options.text-align-left" msgstr "Mú dọ́gba òsì (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:55 msgid "workspace.options.text-options.text-align-right" msgstr "Mú dọ́gba ọ̀tún (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:189 msgid "workspace.options.text-options.title" msgstr "Àyọkà" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:188 msgid "workspace.options.text-options.title-group" msgstr "Àwùjọ àyọkà" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:187 msgid "workspace.options.text-options.title-selection" msgstr "Àṣàyàn ọ̀rọ̀" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused msgid "workspace.options.text-options.titlecase" msgstr "ipò ọ̀rọ̀ àkórí" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:171 msgid "workspace.options.text-options.underline" msgstr "Fífàlà (%s)" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused msgid "workspace.options.text-options.uppercase" msgstr "Lẹ́tà ńlá" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:745 msgid "workspace.options.use-play-button" msgstr "" "Lo bọ́tìnì ìṣe tó wà lóori àkọsórí náà láti ṣakóso ìwò " "àkàwé." +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:395 msgid "workspace.options.width" msgstr "Ìgbòrò" +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:427 msgid "workspace.options.x" msgstr "Ipò X" +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:438 msgid "workspace.options.y" msgstr "Ipò Y" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:167 msgid "workspace.path.actions.add-node" msgstr "Fi ìpàdé kún (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:174 msgid "workspace.path.actions.delete-node" msgstr "Pa ìpàdé ré (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:152 msgid "workspace.path.actions.draw-nodes" msgstr "Fa ìpàdé (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:189 msgid "workspace.path.actions.join-nodes" msgstr "Da ìpàdé pọ̀ (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:204 msgid "workspace.path.actions.make-corner" msgstr "Sí igun (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:211 msgid "workspace.path.actions.make-curve" msgstr "Sí ẹkọ̀rọ̀ (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:182 msgid "workspace.path.actions.merge-nodes" msgstr "Da ìpàdé pò (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:159 msgid "workspace.path.actions.move-nodes" msgstr "Gbé ìpàde (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:196 msgid "workspace.path.actions.separate-nodes" msgstr "Ya ̣ìpàdé sọ́tọ̀ (%s)" +#: src/app/main/ui/workspace/viewport/path_actions.cljs:218 msgid "workspace.path.actions.snap-nodes" msgstr "Ìmọ̀lára ìpàdé (%s)" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:441 msgid "workspace.shape.menu.add-flex" msgstr "Fi àrọ ètò ìrísí kun" +#: src/app/main/ui/workspace/context_menu.cljs:445 msgid "workspace.shape.menu.add-grid" msgstr "Fi gírídì ètò ìrísị kun" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:193 msgid "workspace.shape.menu.back" msgstr "dáa padà séyiǹ" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:190 msgid "workspace.shape.menu.backward" msgstr "dá padà sọ́wọ èyiǹ" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:139 msgid "workspace.shape.menu.copy" msgstr "Ṣẹ̀dà" +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:427 msgid "workspace.shape.menu.create-annotation" msgstr "Ṣèda àlàyé" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:275 msgid "workspace.shape.menu.create-artboard-from-selection" msgstr "Yíyàn sí pátákó" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:465 msgid "workspace.shape.menu.create-component" msgstr "Ṣẹ́dá àkóónú" +#: src/app/main/ui/workspace/context_menu.cljs:469 msgid "workspace.shape.menu.create-multiple-components" msgstr "Ṣẹ̀dá ọ̀pọ̀lọpọ̀ àkóónú" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:142 msgid "workspace.shape.menu.cut" msgstr "Gé" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:486 msgid "workspace.shape.menu.delete" msgstr "Parẹ́" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:391 msgid "workspace.shape.menu.delete-flow-start" msgstr "Pa ìbẹ̀ẹ̀rè ìsàn rẹ́" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:432 msgid "workspace.shape.menu.detach-instance" msgstr "ṣẹ́ àpẹ̣ẹre yọ nípò" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:431 msgid "workspace.shape.menu.detach-instances-in-bulk" msgstr "Ṣẹ́ àwọn àpẹẹrẹ yọ nípò" +#: src/app/main/ui/workspace/context_menu.cljs:335, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:75 msgid "workspace.shape.menu.difference" msgstr "Ìyàtọ̀" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:148 msgid "workspace.shape.menu.duplicate" msgstr "Sẹ ẹ̀dà" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:321 msgid "workspace.shape.menu.edit" msgstr "Sàtúnṣe" +#: src/app/main/ui/workspace/context_menu.cljs:341 msgid "workspace.shape.menu.exclude" msgstr "Ṣà yọ sílè" +#: src/app/main/ui/workspace/context_menu.cljs:348, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:89 msgid "workspace.shape.menu.flatten" msgstr "Tẹ́ pẹrẹsẹ" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:208 msgid "workspace.shape.menu.flip-horizontal" msgstr "Ìyí padà oníbùú" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:204 msgid "workspace.shape.menu.flip-vertical" msgstr "Ìyí padà olóòró" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:394 msgid "workspace.shape.menu.flow-start" msgstr "Ìbẹ̀rè ìṣàn" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:184 msgid "workspace.shape.menu.forward" msgstr "Mú wá sọ́wọ́ iwájú" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:187 msgid "workspace.shape.menu.front" msgstr "Mú wá sí wájú" #: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#, unused msgid "workspace.shape.menu.go-main" msgstr "Lọ sí olórí fáìlì àkóónú" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:261 msgid "workspace.shape.menu.group" msgstr "Àwùjọ" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:363, src/app/main/ui/workspace/sidebar/layer_item.cljs:145 msgid "workspace.shape.menu.hide" msgstr "Tọ́jú" +#: src/app/main/ui/workspace/context_menu.cljs:548, src/app/main/ui/workspace/main_menu.cljs:408 msgid "workspace.shape.menu.hide-ui" msgstr "Fihàn/ Tọ́jú UI" +#: src/app/main/ui/workspace/context_menu.cljs:338 msgid "workspace.shape.menu.intersection" msgstr "Ìkòríta" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:371, src/app/main/ui/workspace/sidebar/layer_item.cljs:153 msgid "workspace.shape.menu.lock" msgstr "Tì" -#: src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:266 msgid "workspace.shape.menu.mask" msgstr "Ìbòjú" -#: src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:145, src/app/main/ui/workspace/context_menu.cljs:545 msgid "workspace.shape.menu.paste" msgstr "lẹ̀mọ́" +#: src/app/main/ui/workspace/context_menu.cljs:331 msgid "workspace.shape.menu.path" msgstr "Ipa ọ̀nà" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:432 msgid "workspace.shape.menu.remove-flex" msgstr "Yọ àrọ ètò ìrísí kúrò" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:436 msgid "workspace.shape.menu.reset-overrides" msgstr "Ṣe àtúnṣe ìdojúkọ" +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:439 msgid "workspace.shape.menu.restore-main" msgstr "Dạ àkóónú pàtàkì sí pò" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:174 msgid "workspace.shape.menu.select-layer" msgstr "Yan ìpele" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:360, src/app/main/ui/workspace/sidebar/layer_item.cljs:144 msgid "workspace.shape.menu.show" msgstr "Ṣà fihàn" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:424 msgid "workspace.shape.menu.show-in-assets" msgstr "Ṣafihàn nínú atọ́ka àwọn ìgbìmọ̀ ìní" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:442, src/app/main/ui/workspace/sidebar/assets/components.cljs:586 msgid "workspace.shape.menu.show-main" msgstr "Ṣà fihàn àkóónú pàtàkì" +#: src/app/main/ui/workspace/context_menu.cljs:221 msgid "workspace.shape.menu.thumbnail-remove" msgstr "Yọ àwòrán aláṣojú kúrò" +#: src/app/main/ui/workspace/context_menu.cljs:223 msgid "workspace.shape.menu.thumbnail-set" msgstr "Fi sípò àwòrań aláṣojú" +#: src/app/main/ui/workspace/context_menu.cljs:326 msgid "workspace.shape.menu.transform-to-path" msgstr "Yípadà sí pópó ọ̀nà" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:257 msgid "workspace.shape.menu.ungroup" msgstr "Ṣe àìkójọ" +#: src/app/main/ui/workspace/context_menu.cljs:332, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:70 msgid "workspace.shape.menu.union" msgstr "Ìbáṣepò" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:368, src/app/main/ui/workspace/sidebar/layer_item.cljs:152 msgid "workspace.shape.menu.unlock" msgstr "Ṣíí" -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/context_menu.cljs:271 msgid "workspace.shape.menu.unmask" msgstr "Sí ìbòjú" #: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs +#, unused msgid "workspace.shape.menu.update-components-in-bulk" msgstr "Mímú àwọn ọ̀rọ̀ àkóónú pàtàkì dójú ìwọ̀n" +#: src/app/main/ui/components/tab_container.cljs:50 msgid "workspace.sidebar.collapse" msgstr "Wó òpó ègbẹ́" +#: src/app/main/ui/workspace/sidebar/collapsable_button.cljs:26 msgid "workspace.sidebar.expand" msgstr "Fẹ òpó ẹ̀gbẹ́" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/right_header.cljs:231, src/app/main/ui/workspace/right_header.cljs:232 msgid "workspace.sidebar.history" msgstr "Ìtàn (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/sidebar/layers.cljs:522, src/app/main/ui/workspace/sidebar.cljs:100 msgid "workspace.sidebar.layers" msgstr "Àwọn ìpele" +#: src/app/main/ui/workspace/sidebar/layers.cljs:308, src/app/main/ui/workspace/sidebar/layers.cljs:380 msgid "workspace.sidebar.layers.components" msgstr "Àwọn àkóónú" +#: src/app/main/ui/workspace/sidebar/layers.cljs:305, src/app/main/ui/workspace/sidebar/layers.cljs:338 msgid "workspace.sidebar.layers.frames" msgstr "Àwọn pátákó" +#: src/app/main/ui/workspace/sidebar/layers.cljs:306, src/app/main/ui/workspace/sidebar/layers.cljs:352 msgid "workspace.sidebar.layers.groups" msgstr "Àkójọ" +#: src/app/main/ui/workspace/sidebar/layers.cljs:310, src/app/main/ui/workspace/sidebar/layers.cljs:408 msgid "workspace.sidebar.layers.images" msgstr "Àwọn àwòrán" +#: src/app/main/ui/workspace/sidebar/layers.cljs:307, src/app/main/ui/workspace/sidebar/layers.cljs:366 msgid "workspace.sidebar.layers.masks" msgstr "Àwọn ìbòjú" +#: src/app/main/ui/workspace/sidebar/layers.cljs:289 msgid "workspace.sidebar.layers.search" msgstr "Àwọn ìpele wíwá" +#: src/app/main/ui/workspace/sidebar/layers.cljs:311, src/app/main/ui/workspace/sidebar/layers.cljs:422 msgid "workspace.sidebar.layers.shapes" msgstr "Àwọn ìrísí" +#: src/app/main/ui/workspace/sidebar/layers.cljs:309, src/app/main/ui/workspace/sidebar/layers.cljs:394 msgid "workspace.sidebar.layers.texts" msgstr "Àwọn àyọkà" -#: src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs, src/app/main/ui/inspect/attributes/svg.cljs +#: src/app/main/ui/viewer/inspect/attributes/svg.cljs:56, src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs:91 msgid "workspace.sidebar.options.svg-attrs.title" msgstr "Gbígbé àwọn ànímọ́ SVG wọlé wá" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs +#: src/app/main/ui/workspace/sidebar/sitemap.cljs:217 msgid "workspace.sidebar.sitemap" msgstr "Àwọn abala" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/left_header.cljs:91 msgid "workspace.sitemap" msgstr "Máàpù ojú ìlà" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/sidebar.cljs:120 msgid "workspace.toolbar.assets" msgstr "Àwọn ohun ìní" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/palette.cljs:165, src/app/main/ui/workspace/palette.cljs:166 msgid "workspace.toolbar.color-palette" msgstr "Pálètì àwọ̀ (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/right_header.cljs:220, src/app/main/ui/workspace/right_header.cljs:221 msgid "workspace.toolbar.comments" msgstr "Àwọn ìdáásí (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:180, src/app/main/ui/workspace/top_toolbar.cljs:181 msgid "workspace.toolbar.curve" msgstr "Ìṣépo (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:160, src/app/main/ui/workspace/top_toolbar.cljs:161 msgid "workspace.toolbar.ellipse" msgstr "Àlàfo (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:142, src/app/main/ui/workspace/top_toolbar.cljs:143 msgid "workspace.toolbar.frame" msgstr "Pátákó (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:59, src/app/main/ui/workspace/top_toolbar.cljs:60 msgid "workspace.toolbar.image" msgstr "Àwòrán(%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:132, src/app/main/ui/workspace/top_toolbar.cljs:133 msgid "workspace.toolbar.move" msgstr "Gbé (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:189, src/app/main/ui/workspace/top_toolbar.cljs:190 msgid "workspace.toolbar.path" msgstr "Pópó ọ̀nà (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:151, src/app/main/ui/workspace/top_toolbar.cljs:152 msgid "workspace.toolbar.rect" msgstr "Onígun mẹ́rin (%s)" #: src/app/main/ui/workspace/left_toolbar.cljs +#, unused msgid "workspace.toolbar.shortcuts" msgstr "Àwón ọ̀nà àbùjá (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/top_toolbar.cljs:169, src/app/main/ui/workspace/top_toolbar.cljs:170 msgid "workspace.toolbar.text" msgstr "Àyọkà (%s)" -#: src/app/main/ui/workspace/left_toolbar.cljs +#: src/app/main/ui/workspace/palette.cljs:173, src/app/main/ui/workspace/palette.cljs:174 msgid "workspace.toolbar.text-palette" msgstr "Àwọn ohun ìtẹ̀wé (%s)" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:342 msgid "workspace.undo.empty" msgstr "Di ìgbà yìí kò sí àyípadà nínú ìtàn" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:147 msgid "workspace.undo.entry.delete" msgstr "Paarẹ́%s" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:146 msgid "workspace.undo.entry.modify" msgstr "Àtuńṣe %s" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:148 msgid "workspace.undo.entry.move" msgstr "Àwọn ohun tí a ti gbé lọ" +#: src/app/main/ui/workspace/sidebar/history.cljs:111 msgid "workspace.undo.entry.multiple.circle" msgstr "Awọn àyíká" +#: src/app/main/ui/workspace/sidebar/history.cljs:112 msgid "workspace.undo.entry.multiple.color" msgstr "Àwọn ohun àmúṣọrọ̀ àwọ̀" +#: src/app/main/ui/workspace/sidebar/history.cljs:113 msgid "workspace.undo.entry.multiple.component" msgstr "Àkóónú" +#: src/app/main/ui/workspace/sidebar/history.cljs:114 msgid "workspace.undo.entry.multiple.curve" msgstr "Àwọn ẹkọ̀rọ̀" +#: src/app/main/ui/workspace/sidebar/history.cljs:115 msgid "workspace.undo.entry.multiple.frame" msgstr "Pátákó" +#: src/app/main/ui/workspace/sidebar/history.cljs:116 msgid "workspace.undo.entry.multiple.group" msgstr "Àwọn àkójọ" +#: src/app/main/ui/workspace/sidebar/history.cljs:117 msgid "workspace.undo.entry.multiple.media" msgstr "Àwọn ohun ìyì àwòrán" +#: src/app/main/ui/workspace/sidebar/history.cljs:118 msgid "workspace.undo.entry.multiple.multiple" msgstr "Àwọn ǹǹkan" +#: src/app/main/ui/workspace/sidebar/history.cljs:119 msgid "workspace.undo.entry.multiple.page" msgstr "Àwọn ojú awé" +#: src/app/main/ui/workspace/sidebar/history.cljs:120 msgid "workspace.undo.entry.multiple.path" msgstr "Àwọn ẹ̀bá ọ̀nà" +#: src/app/main/ui/workspace/sidebar/history.cljs:121 msgid "workspace.undo.entry.multiple.rect" msgstr "Àwọn onígun mẹ́rin" +#: src/app/main/ui/workspace/sidebar/history.cljs:122 msgid "workspace.undo.entry.multiple.shape" msgstr "Ìrísí" +#: src/app/main/ui/workspace/sidebar/history.cljs:123 msgid "workspace.undo.entry.multiple.text" msgstr "Àwọn àyọkà" +#: src/app/main/ui/workspace/sidebar/history.cljs:124 msgid "workspace.undo.entry.multiple.typography" msgstr "Àwọn ohun ìyì ìwé títẹ̀" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:145 msgid "workspace.undo.entry.new" msgstr "Titun %s" +#: src/app/main/ui/workspace/sidebar/history.cljs:125 msgid "workspace.undo.entry.single.circle" msgstr "Àyíká" +#: src/app/main/ui/workspace/sidebar/history.cljs:126 msgid "workspace.undo.entry.single.color" msgstr "Ohun àmúṣọrọ̀ àwọ̀" +#: src/app/main/ui/workspace/sidebar/history.cljs:127 msgid "workspace.undo.entry.single.component" msgstr "Àkóónú" +#: src/app/main/ui/workspace/sidebar/history.cljs:128 msgid "workspace.undo.entry.single.curve" msgstr "Ẹkọ̀rọ̀" +#: src/app/main/ui/workspace/sidebar/history.cljs:129 msgid "workspace.undo.entry.single.frame" msgstr "Pátákó" +#: src/app/main/ui/workspace/sidebar/history.cljs:130 msgid "workspace.undo.entry.single.group" msgstr "Àkójọ" +#: src/app/main/ui/workspace/sidebar/history.cljs:131 msgid "workspace.undo.entry.single.image" msgstr "Àwòrán" +#: src/app/main/ui/workspace/sidebar/history.cljs:132 msgid "workspace.undo.entry.single.media" msgstr "Ohun àmúṣọrọ̀ èyà àwòrán" +#: src/app/main/ui/workspace/sidebar/history.cljs:133 msgid "workspace.undo.entry.single.multiple" msgstr "Ohun" +#: src/app/main/ui/workspace/sidebar/history.cljs:134 msgid "workspace.undo.entry.single.page" msgstr "Ojú awẹ́" +#: src/app/main/ui/workspace/sidebar/history.cljs:135 msgid "workspace.undo.entry.single.path" msgstr "Pópó ònà" +#: src/app/main/ui/workspace/sidebar/history.cljs:136 msgid "workspace.undo.entry.single.rect" msgstr "Onígun mẹ́rin" +#: src/app/main/ui/workspace/sidebar/history.cljs:137 msgid "workspace.undo.entry.single.shape" msgstr "Ìrísí" +#: src/app/main/ui/workspace/sidebar/history.cljs:138 msgid "workspace.undo.entry.single.text" msgstr "Àyọkà" +#: src/app/main/ui/workspace/sidebar/history.cljs:139 msgid "workspace.undo.entry.single.typography" msgstr "Ohun ìyì ìwé títẹ̀" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:149 msgid "workspace.undo.entry.unknown" msgstr "Iṣẹ́ parí %s" -#: src/app/main/ui/workspace/sidebar/history.cljs +#: src/app/main/ui/workspace/sidebar/history.cljs:335 msgid "workspace.undo.title" msgstr "Ìtàn" -#: src/app/main/data/workspace/libraries.cljs +#: src/app/main/data/workspace/libraries.cljs:1094 msgid "workspace.updates.dismiss" msgstr "Ta nù" -#: src/app/main/data/workspace/libraries.cljs +#: src/app/main/data/workspace/libraries.cljs:1092 msgid "workspace.updates.more-info" msgstr "Àlàyé síi" -#: src/app/main/data/workspace/libraries.cljs +#: src/app/main/data/workspace/libraries.cljs:1090 msgid "workspace.updates.there-are-updates" msgstr "Àwọn imúdójúìwọ̀n wà nínú àwọn yàrá ìkàwẹ tí a pín" -#: src/app/main/data/workspace/libraries.cljs +#: src/app/main/data/workspace/libraries.cljs:1097 msgid "workspace.updates.update" msgstr "Ìmúdójúìwọ̀n" +#, unused msgid "workspace.viewport.click-to-close-path" msgstr "Tẹ̀ láti pa pópó ọ̀nà dé" diff --git a/frontend/translations/zh_CN.po b/frontend/translations/zh_CN.po index 3abd8eddfc..347d80fee2 100644 --- a/frontend/translations/zh_CN.po +++ b/frontend/translations/zh_CN.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "PO-Revision-Date: 2024-06-17 08:07+0000\n" "Last-Translator: Anonymous \n" -"Language-Team: Chinese (Simplified) \n" +"Language-Team: Chinese (Simplified) " +"\n" "Language: zh_CN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" @@ -11,5087 +11,5555 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Weblate 5.6-dev\n" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:151, src/app/main/ui/viewer/login.cljs:104 msgid "auth.already-have-account" msgstr "已经有账号了?" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:299 msgid "auth.check-your-email" msgstr "请检查电子邮箱,点击邮件中的超链接来验证,然后开始使用Penpot。" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:78 msgid "auth.confirm-password" msgstr "确认密码" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/register.cljs:163 msgid "auth.create-demo-account" msgstr "创建演示账号" #: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#, unused msgid "auth.create-demo-profile" msgstr "只是想试试?" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/login.cljs:43 msgid "auth.demo-warning" msgstr "这是一个演示服务,请【不要】用于真实工作,这些项目将被周期性地抹除。" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:189, src/app/main/ui/viewer/login.cljs:90 msgid "auth.forgot-password" msgstr "忘记密码?" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:254 msgid "auth.fullname" msgstr "全名" -#: src/app/main/ui/auth/register.cljs -#, fuzzy +#: src/app/main/ui/auth/login.cljs:282 +msgid "auth.login-account-title" +msgstr "登录我的账号" + +#: src/app/main/ui/auth/register.cljs:155, src/app/main/ui/viewer/login.cljs:107 msgid "auth.login-here" msgstr "在这里登录" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:195 msgid "auth.login-submit" msgstr "登录" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:285 +msgid "auth.login-tagline" +msgstr "Penpot是一款自由开源的设计工具,用于「设计」和「开发」协同" + +#: src/app/main/ui/auth/login.cljs:222 msgid "auth.login-with-github-submit" msgstr "GitHub登录" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:228 msgid "auth.login-with-gitlab-submit" msgstr "Gitlab登录" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:216 msgid "auth.login-with-google-submit" msgstr "Google登录" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:201 msgid "auth.login-with-ldap-submit" msgstr "LDAP登录" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:234, src/app/main/ui/auth/login.cljs:255 msgid "auth.login-with-oidc-submit" msgstr "OpenID登录" -#: src/app/main/ui/settings/team-form.cljs, src/app/main/ui/auth/register.cljs, -#: src/app/main/ui/dashboard/team_form.cljs, -#: src/app/main/ui/onboarding/team_choice.cljs, -#: src/app/main/ui/settings/access_tokens.cljs, -#: src/app/main/ui/settings/feedback.cljs, -#: src/app/main/ui/settings/profile.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/auth/register.cljs:217, src/app/main/ui/dashboard/team_form.cljs:76, src/app/main/ui/onboarding/team_choice.cljs:180, src/app/main/ui/settings/access_tokens.cljs:66, src/app/main/ui/settings/feedback.cljs:34, src/app/main/ui/settings/profile.cljs:45, src/app/main/ui/workspace/sidebar/assets/groups.cljs:108 msgid "auth.name.not-all-space" msgstr "姓名必须包含一些空格以外的字符。" -#: src/app/main/ui/auth/register.cljs, -#: src/app/main/ui/dashboard/team_form.cljs, -#: src/app/main/ui/onboarding/team_choice.cljs, -#: src/app/main/ui/settings/access_tokens.cljs, -#: src/app/main/ui/settings/feedback.cljs, -#: src/app/main/ui/settings/profile.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/auth/register.cljs:218, src/app/main/ui/dashboard/team_form.cljs:77, src/app/main/ui/onboarding/team_choice.cljs:181, src/app/main/ui/settings/access_tokens.cljs:67, src/app/main/ui/settings/feedback.cljs:33, src/app/main/ui/settings/profile.cljs:44, src/app/main/ui/workspace/sidebar/assets/groups.cljs:109 msgid "auth.name.too-long" msgstr "姓名最多包含250个字符。" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:71 msgid "auth.new-password" msgstr "输入新的密码" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:42 msgid "auth.notifications.invalid-token-error" msgstr "恢复令牌无效。" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:46 msgid "auth.notifications.password-changed-successfully" msgstr "密码修改成功" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:57 msgid "auth.notifications.profile-not-verified" msgstr "个人资料未验证,请于验证后继续。" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:40 msgid "auth.notifications.recovery-token-sent" msgstr "找回密码链接已发至你的收件箱。" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:47 msgid "auth.notifications.team-invitation-accepted" msgstr "成功加入团队" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:179, src/app/main/ui/auth/register.cljs:115 msgid "auth.password" msgstr "密码" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:114 msgid "auth.password-length-hint" msgstr "至少8位字符" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/recovery.cljs:61, src/app/main/ui/auth/recovery.cljs:62, src/app/main/ui/auth/register.cljs:81, src/app/main/ui/settings/password.cljs:75, src/app/main/ui/settings/password.cljs:76, src/app/main/ui/settings/password.cljs:77 msgid "auth.password-not-empty" msgstr "密码必须包含一些空格以外的字符。" +#: src/app/main/ui/auth.cljs:41 msgid "auth.privacy-policy" msgstr "隐私政策" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:88 msgid "auth.recovery-request-submit" msgstr "找回密码" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:101 msgid "auth.recovery-request-subtitle" msgstr "我们将给你发送一封带有说明的电子邮件" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:100 msgid "auth.recovery-request-title" msgstr "忘记密码?" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:82 msgid "auth.recovery-submit" msgstr "修改密码" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:298, src/app/main/ui/viewer/login.cljs:93 msgid "auth.register" msgstr "现在还没有账号?" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:302, src/app/main/ui/auth/register.cljs:121, src/app/main/ui/auth/register.cljs:263, src/app/main/ui/viewer/login.cljs:97 msgid "auth.register-submit" msgstr "创建账号" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:140 msgid "auth.register-title" msgstr "创建账号" #: src/app/main/ui/auth.cljs +#, unused msgid "auth.sidebar-tagline" msgstr "设计与原型的开源解决方案。" +#: src/app/main/ui/auth.cljs:33, src/app/main/ui/dashboard/sidebar.cljs:1022, src/app/main/ui/workspace/main_menu.cljs:150 msgid "auth.terms-of-service" msgstr "服务协议" -#: src/app/main/ui/auth/register.cljs +#, unused msgid "auth.terms-privacy-agreement" msgstr "创建账号意味着您认可我们的服务条例和隐私政策。" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:297 msgid "auth.verification-email-sent" msgstr "我们已经发送了一封验证邮件到" #: src/app/main/ui/onboarding/questions.cljs +#, unused msgid "branding-illustrations-marketing-pieces" msgstr "品牌设计、插图、营销物料等。" +#: src/app/main/ui/workspace/libraries.cljs:228 msgid "common.publish" msgstr "发布" +#: src/app/main/ui/viewer/share_link.cljs:304, src/app/main/ui/viewer/share_link.cljs:314 msgid "common.share-link.all-users" msgstr "所有Penpot用户" +#: src/app/main/ui/viewer/share_link.cljs:198 msgid "common.share-link.confirm-deletion-link-description" msgstr "你确定要移除链接?那么任何人都无法再访问它" +#: src/app/main/ui/viewer/share_link.cljs:259, src/app/main/ui/viewer/share_link.cljs:289 msgid "common.share-link.current-tag" msgstr "(当前)" +#: src/app/main/ui/viewer/share_link.cljs:207, src/app/main/ui/viewer/share_link.cljs:214 msgid "common.share-link.destroy-link" msgstr "去除链接" +#: src/app/main/ui/viewer/share_link.cljs:221 msgid "common.share-link.get-link" msgstr "获取链接" +#: src/app/main/ui/viewer/share_link.cljs:139 msgid "common.share-link.link-copied-success" msgstr "链接已复制" +#: src/app/main/ui/viewer/share_link.cljs:231 msgid "common.share-link.manage-ops" msgstr "权限管理" +#: src/app/main/ui/viewer/share_link.cljs:277 msgid "common.share-link.page-shared" msgid_plural "common.share-link.page-shared" msgstr[0] "1页已共享" msgstr[1] "%s页已共享" +#: src/app/main/ui/viewer/share_link.cljs:298 msgid "common.share-link.permissions-can-comment" msgstr "可评论" +#: src/app/main/ui/viewer/share_link.cljs:308 msgid "common.share-link.permissions-can-inspect" msgstr "可审查代码" +#: src/app/main/ui/viewer/share_link.cljs:193 msgid "common.share-link.permissions-hint" msgstr "任何人通过此链接都可访问" +#: src/app/main/ui/viewer/share_link.cljs:241 msgid "common.share-link.permissions-pages" msgstr "页面已共享" +#: src/app/main/ui/viewer/share_link.cljs:183 msgid "common.share-link.placeholder" msgstr "可分享的链接会在此处显示" +#: src/app/main/ui/viewer/share_link.cljs:303, src/app/main/ui/viewer/share_link.cljs:313 msgid "common.share-link.team-members" msgstr "只团队成员" +#: src/app/main/ui/viewer/share_link.cljs:171 msgid "common.share-link.title" msgstr "分享原型" +#: src/app/main/ui/viewer/share_link.cljs:269 msgid "common.share-link.view-all" msgstr "选择所有" +#: src/app/main/ui/workspace/libraries.cljs:224 msgid "common.unpublish" msgstr "未发布" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:85 msgid "dasboard.team-hero.management" msgstr "团队管理" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:84 msgid "dasboard.team-hero.text" msgstr "Penpot是为团队协作而设计,邀请成员合作处理项目和文件" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:82 msgid "dasboard.team-hero.title" msgstr "组建团队!" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.tutorial-hero.info" msgstr "通过有趣的实践教程学习Penpot的基础知识。" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.tutorial-hero.start" msgstr "开始教程" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.tutorial-hero.title" msgstr "实践教程" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.walkthrough-hero.info" msgstr "浏览Penpot, 了解其主要功能。" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.walkthrough-hero.start" msgstr "开始浏览" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.walkthrough-hero.title" msgstr "界面浏览" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:115 msgid "dashboard.access-tokens.copied-success" msgstr "已复制令牌" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:202 msgid "dashboard.access-tokens.create" msgstr "生成新令牌" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:76 msgid "dashboard.access-tokens.create.success" msgstr "成功创建访问令牌。" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:300 msgid "dashboard.access-tokens.empty.add-one" msgstr "点击“生成新令牌”按钮来生成一个。" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:299 msgid "dashboard.access-tokens.empty.no-access-tokens" msgstr "你目前还没有令牌。" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:53 msgid "dashboard.access-tokens.errors-required-name" msgstr "名称是必填项" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:147 msgid "dashboard.access-tokens.expiration-180-days" msgstr "180天" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:144 msgid "dashboard.access-tokens.expiration-30-days" msgstr "30天" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:145 msgid "dashboard.access-tokens.expiration-60-days" msgstr "60天" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:146 msgid "dashboard.access-tokens.expiration-90-days" msgstr "90天" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:143 msgid "dashboard.access-tokens.expiration-never" msgstr "从不" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:282 msgid "dashboard.access-tokens.expired-on" msgstr "已经于%s到期" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:283 msgid "dashboard.access-tokens.expires-on" msgstr "将于%s到期" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:281 msgid "dashboard.access-tokens.no-expiration" msgstr "无到期时限" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:197 msgid "dashboard.access-tokens.personal" msgstr "个人访问令牌" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:198 msgid "dashboard.access-tokens.personal.description" -msgstr "" -"个人访问令牌可被理解为密码认证的代替选项,常用于允许(第三方)应用访问Penpot" -"内部API" +msgstr "个人访问令牌可被理解为密码认证的代替选项,常用于允许(第三方)应用访问Penpot内部API" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:154 msgid "dashboard.access-tokens.token-will-expire" msgstr "令牌将于%s到期" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:155 msgid "dashboard.access-tokens.token-will-not-expire" msgstr "令牌无到期时限" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:291, src/app/main/ui/workspace/main_menu.cljs:572 msgid "dashboard.add-shared" msgstr "添加为共享库" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:75 msgid "dashboard.change-email" msgstr "修改电子邮件" -#: src/app/main/data/dashboard.cljs, src/app/main/data/dashboard.cljs +#: src/app/main/data/dashboard.cljs:762, src/app/main/data/dashboard.cljs:983 msgid "dashboard.copy-suffix" msgstr "(拷贝)" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:338 msgid "dashboard.create-new-team" msgstr "创建新团队" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/components/context_menu_a11y.cljs:256, src/app/main/ui/dashboard/sidebar.cljs:646 msgid "dashboard.default-team-name" msgstr "你的Penpot" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:571 msgid "dashboard.delete-team" msgstr "删除团队" +#: src/app/main/ui/dashboard/file_menu.cljs:296, src/app/main/ui/workspace/main_menu.cljs:589 msgid "dashboard.download-binary-file" msgstr "下载Penpot文件 (.penpot)" +#: src/app/main/ui/dashboard/file_menu.cljs:300, src/app/main/ui/workspace/main_menu.cljs:597 msgid "dashboard.download-standard-file" msgstr "下载标准文件(.svg + .json)" -#: src/app/main/ui/dashboard/project_menu.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:276, src/app/main/ui/dashboard/project_menu.cljs:90 msgid "dashboard.duplicate" msgstr "复制" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:240 msgid "dashboard.duplicate-multi" msgstr "复制 %s 个文件" -#: src/app/main/ui/dashboard/grid.cljs -#, fuzzy +#: src/app/main/ui/dashboard/placeholder.cljs:32 +#, markdown msgid "dashboard.empty-placeholder-drafts" msgstr "" -"添加到库的文件将出现在这里。尝试分享你的文件或从我们的[库和模板](https://penp" -"ot.app/libraries-templates.html)添加。" +"添加到库的文件将出现在这里。尝试分享你的文件或从我们的[库和模板](https://penpot.app/libraries-templates." +"html)添加。" +#: src/app/main/ui/dashboard/file_menu.cljs:249 msgid "dashboard.export-binary-multi" msgstr "下载 %s Penpot文件 (.penpot)" +#: src/app/main/ui/workspace/main_menu.cljs:605 msgid "dashboard.export-frames" msgstr "将画板导出为 PDF 格式" -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:201 msgid "dashboard.export-frames.title" msgstr "导出为PDF" +#, unused msgid "dashboard.export-multi" msgstr "导出 %s 个文件" -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:109 msgid "dashboard.export-multiple.selected" msgstr "已选择 %s / %s 元素" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:578 msgid "dashboard.export-shapes" msgstr "导出" -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:180 msgid "dashboard.export-shapes.how-to" msgstr "你可以在设计选项中为元素添加导出设置(位于右侧边栏底部)。" -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:184 msgid "dashboard.export-shapes.how-to-link" msgstr "关于如何使用Penpot导出。" -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:179 msgid "dashboard.export-shapes.no-elements" msgstr "在导出设置中没找到任何元素。" -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:190 msgid "dashboard.export-shapes.title" msgstr "导出已选中" +#: src/app/main/ui/dashboard/file_menu.cljs:252 msgid "dashboard.export-standard-multi" msgstr "下载 %s 标准文件 (.svg + .json)" +#: src/app/main/ui/export.cljs:427 msgid "dashboard.export.detail" msgstr "* 可能包含组件、图形、颜色和/或排版。" +#: src/app/main/ui/export.cljs:426 msgid "dashboard.export.explain" msgstr "你想导出的一个或多个文件用到了共享库。你想怎么处理它们的素材?" +#: src/app/main/ui/export.cljs:435 msgid "dashboard.export.options.all.message" msgstr "使用了共享库的文件将会在导出时保持引用关系。" +#: src/app/main/ui/export.cljs:436 msgid "dashboard.export.options.all.title" msgstr "导出共享库" +#: src/app/main/ui/export.cljs:437 msgid "dashboard.export.options.detach.message" msgstr "导出文件中将不包含共享库,素材也不会被添加到库中。 " +#: src/app/main/ui/export.cljs:438 msgid "dashboard.export.options.detach.title" msgstr "将共享库素材作为基本对象" +#: src/app/main/ui/export.cljs:439 msgid "dashboard.export.options.merge.message" msgstr "导出您的文件时所有的外部素材将会被合并到库中。" +#: src/app/main/ui/export.cljs:440 msgid "dashboard.export.options.merge.title" msgstr "将共享库素材加入文件库" +#: src/app/main/ui/export.cljs:418 msgid "dashboard.export.title" msgstr "导出文档" +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:309 msgid "dashboard.fonts.deleted-placeholder" msgstr "字体已删除" -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:206 msgid "dashboard.fonts.dismiss-all" msgstr "全部取消" +#: src/app/main/ui/dashboard/fonts.cljs:436 msgid "dashboard.fonts.empty-placeholder" msgstr "您上传的自定义字体将显示在此处。" -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:194 msgid "dashboard.fonts.fonts-added" msgid_plural "dashboard.fonts.fonts-added" msgstr[0] "1 个字体添加成功" msgstr[1] "%s 个字体添加成功" +#: src/app/main/ui/dashboard/fonts.cljs:170 +#, markdown msgid "dashboard.fonts.hero-text1" msgstr "" -"你在此上传的任何网络字体文件,将会被添加至本团队下文件的字体属性中的可用字体" -"族列表中。拥有相同字体族名称的字体文件,将会按照字体族进行分组。你可以上传以" +"你在此上传的任何网络字体文件,将会被添加至本团队下文件的字体属性中的可用字体族列表中。拥有相同字体族名称的字体文件,将会按照字体族进行分组。你可以上传以" "下格式的字体文件:**TTF,OTF和WOFF**(你只需要上传其中一种即可)。" +#: src/app/main/ui/dashboard/fonts.cljs:182 +#, markdown msgid "dashboard.fonts.hero-text2" msgstr "" -"你应当只向Penpot上传你所拥有的字体,或是你持有使用许可的字体。点击[Penpot服务" -"条例](https://penpot.app/terms.html)查看更多有关内容权利的章节。或许你也想了" -"解一下[字体许可授权] (https://www.typography.com/faq)。" +"你应当只向Penpot上传你所拥有的字体,或是你持有使用许可的字体。点击[Penpot服务条例](https://penpot.app/terms." +"html)查看更多有关内容权利的章节。或许你也想了解一下[字体许可授权] (https://www.typography.com/faq)。" -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:202 msgid "dashboard.fonts.upload-all" msgstr "全部上传" +#: src/app/main/ui/dashboard/fonts.cljs:187 +#, markdown msgid "dashboard.fonts.warning-text" msgstr "" -"我们在你的字体中检测到一个可能的问题,与不同操作系统的垂直度量有关。为了检查" -"它,你可以使用字体垂直度量服务,如[这个](https://vertical-metrics.netlify." -"app/)。此外,我们建议使用[Transfonter](https://transfonter.org/)来生成网络字" -"体并修复错误。 " +"我们在你的字体中检测到一个可能的问题,与不同操作系统的垂直度量有关。为了检查它,你可以使用字体垂直度量服务,如[这个](https://" +"vertical-metrics.netlify.app/)。此外,我们建议使用[Transfonter](https://transfonter." +"org/)来生成网络字体并修复错误。 " +#: src/app/main/ui/dashboard/import.cljs:472, src/app/main/ui/dashboard/project_menu.cljs:108 msgid "dashboard.import" msgstr "导入文件" +#: src/app/main/ui/dashboard/import.cljs:304, src/app/worker/import.cljs:753, src/app/worker/import.cljs:755 msgid "dashboard.import.analyze-error" msgstr "文件无法导入" +#, unused +msgid "dashboard.import.analyze-error.components-v2" +msgstr "文件已启用“组件v2”功能,但这个团队尚未支持该功能。" + +#: src/app/main/ui/dashboard/import.cljs:308 msgid "dashboard.import.import-error" msgstr "文件导入过程中出现未知问题,导入失败。" +#: src/app/main/ui/dashboard/import.cljs:493 msgid "dashboard.import.import-message" msgstr "%s 个文件导入成功。" +#: src/app/main/ui/dashboard/import.cljs:481, src/app/main/ui/dashboard/import.cljs:488 msgid "dashboard.import.import-warning" msgstr "一些包含无效对象的文档已被移除。" +#: src/app/main/ui/dashboard/import.cljs:144 msgid "dashboard.import.progress.process-colors" msgstr "处理颜色中" +#: src/app/main/ui/dashboard/import.cljs:153 msgid "dashboard.import.progress.process-components" msgstr "处理组件中" +#: src/app/main/ui/dashboard/import.cljs:150 msgid "dashboard.import.progress.process-media" msgstr "处理视频中" +#: src/app/main/ui/dashboard/import.cljs:141 msgid "dashboard.import.progress.process-page" msgstr "处理页面中:%s" +#: src/app/main/ui/dashboard/import.cljs:147 msgid "dashboard.import.progress.process-typographies" msgstr "处理字体中" +#: src/app/main/ui/dashboard/import.cljs:135 msgid "dashboard.import.progress.upload-data" msgstr "数据上传中" +#: src/app/main/ui/dashboard/import.cljs:138 msgid "dashboard.import.progress.upload-media" msgstr "文件上传中" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:109 msgid "dashboard.invite-profile" msgstr "邀请people" -#: src/app/main/ui/dashboard/sidebar.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:547, src/app/main/ui/dashboard/sidebar.cljs:556, src/app/main/ui/dashboard/sidebar.cljs:563, src/app/main/ui/dashboard/team.cljs:312 msgid "dashboard.leave-team" msgstr "退出团队" +#: src/app/main/ui/dashboard/templates.cljs:88, src/app/main/ui/dashboard/templates.cljs:163 msgid "dashboard.libraries-and-templates" msgstr "库和模板" +#: src/app/main/ui/dashboard/templates.cljs:164 msgid "dashboard.libraries-and-templates.explore" msgstr "探索更多内容,了解如何做出贡献" +#: src/app/main/ui/dashboard/import.cljs:365 msgid "dashboard.libraries-and-templates.import-error" msgstr "导入模板时发生错误。模板未导入成功。" -#: src/app/main/ui/dashboard/libraries.cljs +#: src/app/main/ui/dashboard/libraries.cljs:53 msgid "dashboard.libraries-title" msgstr "共享库" -#: src/app/main/ui/dashboard/grid.cljs +#: src/app/main/ui/dashboard/placeholder.cljs:45 msgid "dashboard.loading-files" msgstr "正在加载文档…" +#: src/app/main/ui/dashboard/fonts.cljs:431 msgid "dashboard.loading-fonts" msgstr "正在加载字体…" -#: src/app/main/ui/dashboard/project_menu.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:281, src/app/main/ui/dashboard/project_menu.cljs:100 msgid "dashboard.move-to" msgstr "移动到" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:245 msgid "dashboard.move-to-multi" msgstr "移动 %s 个文件到" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:226 msgid "dashboard.move-to-other-team" msgstr "移动到其他团队" -#: src/app/main/ui/dashboard/projects.cljs, -#: src/app/main/ui/dashboard/files.cljs +#: src/app/main/ui/dashboard/files.cljs:105, src/app/main/ui/dashboard/projects.cljs:252, src/app/main/ui/dashboard/projects.cljs:253 msgid "dashboard.new-file" msgstr "+ 新文档" -#: src/app/main/data/dashboard.cljs +#: src/app/main/data/dashboard.cljs:958, src/app/main/data/dashboard.cljs:1181 msgid "dashboard.new-file-prefix" msgstr "新建文件" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:55 msgid "dashboard.new-project" msgstr "+ 新项目" -#: src/app/main/data/dashboard.cljs +#: src/app/main/data/dashboard.cljs:726, src/app/main/data/dashboard.cljs:1184 msgid "dashboard.new-project-prefix" msgstr "新建项目" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:60 msgid "dashboard.no-matches-for" msgstr "没有找到“%s”的匹配项" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:827 msgid "dashboard.no-projects-placeholder" msgstr "被钉住的项目会显示在这儿" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:33 msgid "dashboard.notifications.email-changed-successfully" msgstr "已经成功更新你的电子邮件" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:27 msgid "dashboard.notifications.email-verified-successfully" msgstr "已经成功验证你的电子邮件" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:37 msgid "dashboard.notifications.password-saved" msgstr "已经成功保存密码!" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1081 msgid "dashboard.num-of-members" msgstr "成员%s人" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:267 msgid "dashboard.open-in-new-tab" msgstr "在新标签页打开文件" +#: src/app/main/ui/dashboard/files.cljs:117, src/app/main/ui/dashboard/projects.cljs:260, src/app/main/ui/dashboard/projects.cljs:261 msgid "dashboard.options" msgstr "选项" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:106, src/app/main/ui/settings/password.cljs:119 msgid "dashboard.password-change" msgstr "修改密码" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/pin_button.cljs:24, src/app/main/ui/dashboard/project_menu.cljs:95 msgid "dashboard.pin-unpin" msgstr "钉到侧边栏/取消钉住" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:51 msgid "dashboard.projects-title" msgstr "项目" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:86 msgid "dashboard.remove-account" msgstr "希望注销您的账号?" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "dashboard.remove-shared" msgstr "不再作为共享库" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:78 msgid "dashboard.save-settings" msgstr "保存设置" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:246, src/app/main/ui/dashboard/sidebar.cljs:247 msgid "dashboard.search-placeholder" msgstr "搜索…" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:55 msgid "dashboard.searching-for" msgstr "正在搜索“%s”…" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:56 msgid "dashboard.select-ui-language" msgstr "选择界面语言" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:63 msgid "dashboard.select-ui-theme" msgstr "选择界面主题" -#: src/app/main/ui/dashboard/grid.cljs +#: src/app/main/ui/dashboard/projects.cljs:282 msgid "dashboard.show-all-files" msgstr "显示全部文档" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:96 msgid "dashboard.success-delete-file" msgid_plural "dashboard.success-delete-file" msgstr[0] "您的文件已被成功删除" msgstr[1] "您的文件已被成功删除" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:59 msgid "dashboard.success-delete-project" msgstr "成功删除了项目" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:91 msgid "dashboard.success-duplicate-file" msgid_plural "dashboard.success-delete-file" msgstr[0] "您的文件已被成功复制" msgstr[1] "您的文件已被成功复制" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:33 msgid "dashboard.success-duplicate-project" msgstr "成功创建了项目副本" -#: src/app/main/ui/dashboard/grid.cljs, src/app/main/ui/dashboard/sidebar.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:130, src/app/main/ui/dashboard/grid.cljs:558, src/app/main/ui/dashboard/sidebar.cljs:152 msgid "dashboard.success-move-file" msgstr "成功移动了文件" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:129 msgid "dashboard.success-move-files" msgstr "成功移动了文件" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:54 msgid "dashboard.success-move-project" msgstr "成功移动了项目" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1052 msgid "dashboard.team-info" msgstr "团队信息" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1070 msgid "dashboard.team-members" msgstr "团队成员" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1085 msgid "dashboard.team-projects" msgstr "团队项目" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:61 msgid "dashboard.theme-change" msgstr "界面主题" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:42 msgid "dashboard.title-search" msgstr "搜索结果" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:50 msgid "dashboard.type-something" msgstr "输入关键词进行搜索" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:287, src/app/main/ui/workspace/main_menu.cljs:566 msgid "dashboard.unpublish-shared" msgstr "取消发布库" -#: src/app/main/ui/settings/profile.cljs, -#: src/app/main/ui/settings/password.cljs, -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:71 msgid "dashboard.update-settings" msgstr "保存设置" +#: src/app/main/ui/dashboard/team.cljs:861 msgid "dashboard.webhooks.active" msgstr "处于活跃状态" +#: src/app/main/ui/dashboard/team.cljs:862 msgid "dashboard.webhooks.active.explain" msgstr "当这个webhook被触发时,事件细节将被传递" +#: src/app/main/ui/dashboard/team.cljs:852 msgid "dashboard.webhooks.content-type" msgstr "内容类型" +#: src/app/main/ui/dashboard/team.cljs:885 msgid "dashboard.webhooks.create" msgstr "创建webhook" +#: src/app/main/ui/dashboard/team.cljs:775 msgid "dashboard.webhooks.create.success" msgstr "Webhook创建成功。" +#: src/app/main/ui/dashboard/team.cljs:882 msgid "dashboard.webhooks.description" -msgstr "" -"Webhooks是一种简单的方式,允许其他网站和应用程序在Penpot的某些事件发生时得到" -"通知。我们将发送一个POST请求到你提供的每个URL。" +msgstr "Webhooks是一种简单的方式,允许其他网站和应用程序在Penpot的某些事件发生时得到通知。我们将发送一个POST请求到你提供的每个URL。" +#: src/app/main/ui/dashboard/team.cljs:1005 msgid "dashboard.webhooks.empty.add-one" msgstr "按“添加webhook”按钮添加一个。" +#: src/app/main/ui/dashboard/team.cljs:1004 msgid "dashboard.webhooks.empty.no-webhooks" msgstr "到目前为止还没有创建webhook。" +#, unused msgid "dashboard.webhooks.update.success" msgstr "Webhook成功更新。" -#: src/app/main/ui/settings.cljs +#: src/app/main/ui/settings.cljs:31 msgid "dashboard.your-account-title" msgstr "你的账号" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:70 msgid "dashboard.your-email" msgstr "电子邮件" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:62 msgid "dashboard.your-name" msgstr "你的姓名" -#: src/app/main/ui/dashboard/search.cljs, src/app/main/ui/dashboard/team.cljs, -#: src/app/main/ui/dashboard/libraries.cljs, -#: src/app/main/ui/dashboard/projects.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:38, src/app/main/ui/dashboard/fonts.cljs:33, src/app/main/ui/dashboard/libraries.cljs:42, src/app/main/ui/dashboard/projects.cljs:318, src/app/main/ui/dashboard/search.cljs:30, src/app/main/ui/dashboard/sidebar.cljs:312, src/app/main/ui/dashboard/team.cljs:495, src/app/main/ui/dashboard/team.cljs:729, src/app/main/ui/dashboard/team.cljs:991, src/app/main/ui/dashboard/team.cljs:1038 msgid "dashboard.your-penpot" msgstr "你的Penpot" -#: src/app/main/ui/alert.cljs +#: src/app/main/ui/alert.cljs:32 msgid "ds.alert-ok" msgstr "好" -#: src/app/main/ui/alert.cljs +#: src/app/main/ui/alert.cljs:31, src/app/main/ui/alert.cljs:34 msgid "ds.alert-title" msgstr "注意" -#: src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:83 msgid "ds.component-subtitle" msgstr "待更新的组件:" -#: src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:36, src/app/main/ui/workspace/plugins.cljs:246 msgid "ds.confirm-cancel" msgstr "取消" -#: src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:37, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:141 msgid "ds.confirm-ok" msgstr "OK" -#: src/app/main/ui/confirm.cljs, src/app/main/ui/confirm.cljs +#: src/app/main/ui/confirm.cljs:35, src/app/main/ui/confirm.cljs:39 msgid "ds.confirm-title" msgstr "你确定?" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:62 msgid "errors.auth-provider-not-configured" msgstr "没有配置身份认证服务源." +#: src/app/main/errors.cljs:104 msgid "errors.auth.unable-to-login" msgstr "你似乎还没有登录或会话已过期。" +#: src/app/main/data/fonts.cljs:189 msgid "errors.bad-font" msgstr "无法加载%s字体" +#: src/app/main/data/fonts.cljs:188 msgid "errors.bad-font-plural" msgstr "无法加载%s等字体" +#: src/app/main/data/workspace/media.cljs:198 msgid "errors.cannot-upload" msgstr "无法上传该媒体文件。" -#: src/app/main/data/workspace.cljs +#: src/app/main/data/workspace.cljs:1598 msgid "errors.clipboard-not-implemented" msgstr "你的浏览器不支持该操作" -#: src/app/main/ui/auth/verify_token.cljs, -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/auth/verify_token.cljs:82, src/app/main/ui/settings/change_email.cljs:46 msgid "errors.email-already-exists" msgstr "电子邮件已被占用" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:87 msgid "errors.email-already-validated" msgstr "电子邮件已经验证通过。" +#: src/app/main/ui/settings/password.cljs:28 msgid "errors.email-as-password" msgstr "密码不能为邮箱地址" -#: src/app/main/ui/auth/register.cljs, -#: src/app/main/ui/auth/recovery_request.cljs, -#: src/app/main/ui/settings/change_email.cljs, -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/data/users.cljs:707, src/app/main/ui/auth/register.cljs:63 +msgid "errors.email-domain-not-allowed" +msgstr "不允许使用此域名" + +#: src/app/main/ui/auth/recovery_request.cljs:63, src/app/main/ui/dashboard/team.cljs:578, src/app/main/ui/settings/change_email.cljs:54 msgid "errors.email-has-permanent-bounces" msgstr "电子邮件“%s”收到了非常多的永久退信报告。" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs, -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/login.cljs:81, src/app/main/ui/auth/recovery_request.cljs:31, src/app/main/ui/auth/register.cljs:43 msgid "errors.email-invalid" msgstr "请输入有效的电子邮件" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:35 msgid "errors.email-invalid-confirmation" msgstr "确认电子邮件必须保持一致" +#: src/app/main/ui/dashboard/team.cljs:170 msgid "errors.email-spam-or-permanent-bounces" msgstr "此邮箱[%s]已被标记为垃圾邮件或已被永久拉黑。" -#: src/app/main/errors.cljs +#: src/app/main/errors.cljs:227 msgid "errors.feature-mismatch" -msgstr "" -"看起来你正在打开一个启用了'%s'功能的文件,但当前penpot版本并不支持该功能或已" -"将其禁用。" +msgstr "看起来你正在打开一个启用了'%s'功能的文件,但当前penpot版本并不支持该功能或已将其禁用。" -#: src/app/main/errors.cljs +#: src/app/main/errors.cljs:231, src/app/main/errors.cljs:245 msgid "errors.feature-not-supported" msgstr "不支持功能“%s”。" -#: src/app/main/errors.cljs +#: src/app/main/errors.cljs:223 msgid "errors.file-feature-mismatch" -msgstr "" -"看起来当前启用的功能,与正在打开的文件所依赖的功能不匹配。在打开文件前,需要" -"应用对“%s”修改。" +msgstr "看起来当前启用的功能,与正在打开的文件所依赖的功能不匹配。在打开文件前,需要应用对“%s”修改。" -#: src/app/main/ui/auth/verify_token.cljs, -#: src/app/main/ui/settings/feedback.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/data/users.cljs:709, src/app/main/ui/auth/login.cljs:65, src/app/main/ui/auth/login.cljs:116, src/app/main/ui/auth/register.cljs:69, src/app/main/ui/auth/register.cljs:237, src/app/main/ui/auth/verify_token.cljs:92, src/app/main/ui/dashboard/team.cljs:173, src/app/main/ui/onboarding/team_choice.cljs:95, src/app/main/ui/settings/access_tokens.cljs:91, src/app/main/ui/settings/feedback.cljs:52 msgid "errors.generic" msgstr "发生了某种错误。" -#: src/app/main/ui/components/color_input.cljs +#: src/app/main/ui/components/color_input.cljs:57 msgid "errors.invalid-color" msgstr "无效的颜色" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/static.cljs:43 msgid "errors.invite-invalid" msgstr "无效的邀请" +#: src/app/main/ui/static.cljs:44 msgid "errors.invite-invalid.info" msgstr "此邀请可能已取消或已过期。" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:101 msgid "errors.ldap-disabled" msgstr "LDAP身份验证已禁用。" -#: src/app/main/errors.cljs +#: src/app/main/errors.cljs:239 msgid "errors.max-quote-reached" msgstr "您已达到“%s”报价。与支持人员联系。" -#: src/app/main/data/workspace/persistence.cljs +#: src/app/main/data/workspace/media.cljs:184 msgid "errors.media-too-large" msgstr "图片尺寸过大,故无法插入。" -#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs +#: src/app/main/data/media.cljs:68, src/app/main/data/workspace/media.cljs:187 msgid "errors.media-type-mismatch" msgstr "图片内容好像与文档扩展名不匹配。" -#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs +#: src/app/main/data/media.cljs:65, src/app/main/data/workspace/media.cljs:172, src/app/main/data/workspace/media.cljs:175, src/app/main/data/workspace/media.cljs:178, src/app/main/data/workspace/media.cljs:181 msgid "errors.media-type-not-allowed" msgstr "该图片好像不可用。" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:574 msgid "errors.member-is-muted" msgstr "你邀请的人设置了邮件免打扰(报告垃圾邮件或者多次退信)。" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:61 msgid "errors.password-invalid-confirmation" msgstr "确认密码必须保持一致" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:64 msgid "errors.password-too-short" msgstr "密码最少需要8位字符" +#: src/app/main/errors.cljs:124 msgid "errors.paste-data-validation" msgstr "剪切板中为无效数据" +#: src/app/main/data/users.cljs:703, src/app/main/ui/auth/login.cljs:97, src/app/main/ui/auth/login.cljs:105 msgid "errors.profile-blocked" msgstr "个人资料已被屏蔽" -#: src/app/main/ui/auth/recovery_request.cljs, -#: src/app/main/ui/settings/change_email.cljs, -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/auth/recovery_request.cljs:60, src/app/main/ui/dashboard/team.cljs:164, src/app/main/ui/dashboard/team.cljs:570, src/app/main/ui/settings/change_email.cljs:50 msgid "errors.profile-is-muted" msgstr "你设置了邮件免打扰(报告垃圾邮件或者多次退信)。" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/data/users.cljs:701, src/app/main/ui/auth/register.cljs:60 msgid "errors.registration-disabled" msgstr "当前禁止注册。" -#: src/app/main/errors.cljs +#: src/app/main/errors.cljs:218 msgid "errors.team-feature-mismatch" msgstr "检测到不兼容功能“%s”" +#: src/app/main/ui/dashboard/sidebar.cljs:365, src/app/main/ui/dashboard/team.cljs:359 msgid "errors.team-leave.insufficient-members" msgstr "离开团队后成员不足,您可能要将其删除。" +#: src/app/main/ui/dashboard/sidebar.cljs:368, src/app/main/ui/dashboard/team.cljs:362 msgid "errors.team-leave.member-does-not-exists" msgstr "您尝试分配的成员不存在。" +#: src/app/main/ui/dashboard/sidebar.cljs:371, src/app/main/ui/dashboard/team.cljs:365 msgid "errors.team-leave.owner-cant-leave" msgstr "所有者不能离开团队,您必须转让所有者角色。" -#: src/app/main/data/media.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs +#: src/app/main/data/media.cljs:71 msgid "errors.unexpected-error" msgstr "发生了意料之外的错误。" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:60 msgid "errors.unexpected-token" msgstr "未知的令牌" +#, unused msgid "errors.validation" msgstr "验证错误" -#: src/app/main/errors.cljs +#: src/app/main/errors.cljs:235 msgid "errors.version-not-supported" msgstr "文件具有不兼容的版本号" +#: src/app/main/ui/dashboard/team.cljs:796 msgid "errors.webhooks.connection" msgstr "连接错误,无法访问 URL" +#: src/app/main/ui/dashboard/team.cljs:790 msgid "errors.webhooks.invalid-uri" msgstr "网址未通过验证。" +#: src/app/main/ui/dashboard/team.cljs:949 msgid "errors.webhooks.last-delivery" msgstr "上次交付不成功。" +#: src/app/main/ui/dashboard/team.cljs:792, src/app/main/ui/dashboard/team.cljs:952 msgid "errors.webhooks.ssl-validation" msgstr "SSL 验证时出错。" +#: src/app/main/ui/dashboard/team.cljs:794 msgid "errors.webhooks.timeout" msgstr "超时" +#: src/app/main/ui/dashboard/team.cljs:788 msgid "errors.webhooks.unexpected" msgstr "验证时出现意外错误" +#: src/app/main/ui/dashboard/team.cljs:798, src/app/main/ui/dashboard/team.cljs:955 msgid "errors.webhooks.unexpected-status" msgstr "意外状态%s" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:109, src/app/main/ui/auth/login.cljs:113 msgid "errors.wrong-credentials" msgstr "邮箱或密码错误。" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:25 msgid "errors.wrong-old-password" msgstr "旧密码不正确" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:77 msgid "feedback.description" msgstr "描述" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:95 msgid "feedback.discourse-go-to" msgstr "前往Penpot论坛" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:89 msgid "feedback.discourse-subtitle1" msgstr "我们很欢迎你的到来。请在发布帮助请求前搜索你所需要的帮助内容。" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:88 msgid "feedback.discourse-title" msgstr "Penpot社区" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:72 msgid "feedback.subject" msgstr "话题" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:69 msgid "feedback.subtitle" -msgstr "" -"请说明你发邮件的原因,详细说明这是一个问题反馈、一个点子还是一个疑问。我们会" -"尽快回复。" +msgstr "请说明你发邮件的原因,详细说明这是一个问题反馈、一个点子还是一个疑问。我们会尽快回复。" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:68 msgid "feedback.title" msgstr "电子邮件" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:105 msgid "feedback.twitter-go-to" msgstr "前往X(原Twitter)" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:99 msgid "feedback.twitter-subtitle1" msgstr "这里可以帮助您解决技术问题。" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:98 msgid "feedback.twitter-title" msgstr "X(原Twitter)支持帐号" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:30 msgid "generic.error" msgstr "发生了一个错误" -#: src/app/main/ui/inspect/attributes/blur.cljs +#: src/app/main/ui/viewer/inspect/attributes/blur.cljs:26 msgid "inspect.attributes.blur" msgstr "模糊" -#: src/app/main/ui/inspect/attributes/blur.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:115 msgid "inspect.attributes.blur.value" msgstr "值" -#: src/app/main/ui/inspect/attributes/common.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:112 msgid "inspect.attributes.color.hex" msgstr "HEX" -#: src/app/main/ui/inspect/attributes/common.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:114 msgid "inspect.attributes.color.hsla" msgstr "HSLA" -#: src/app/main/ui/inspect/attributes/common.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:113 msgid "inspect.attributes.color.rgba" msgstr "RGBA" -#: src/app/main/ui/inspect/attributes/fill.cljs +#: src/app/main/ui/viewer/inspect/attributes/fill.cljs:57 msgid "inspect.attributes.fill" msgstr "填充" -#: src/app/main/ui/inspect/attributes/image.cljs +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:99, src/app/main/ui/viewer/inspect/attributes/image.cljs:51 msgid "inspect.attributes.image.download" msgstr "下载原图" -#: src/app/main/ui/inspect/attributes/image.cljs +#: src/app/main/ui/viewer/inspect/attributes/image.cljs:39 msgid "inspect.attributes.image.height" msgstr "高" -#: src/app/main/ui/inspect/attributes/image.cljs +#: src/app/main/ui/viewer/inspect/attributes/image.cljs:32 msgid "inspect.attributes.image.width" msgstr "宽" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout" msgstr "布局" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.height" msgstr "高" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.left" msgstr "左" -#: src/app/main/ui/inspect/attributes/layout.cljs, -#: src/app/main/ui/inspect/attributes/layout.cljs +#: src/app/main/ui/inspect/attributes/layout.cljs, src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.radius" msgstr "圆角" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.rotation" msgstr "旋转" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.top" msgstr "顶" #: src/app/main/ui/inspect/attributes/layout.cljs +#, unused msgid "inspect.attributes.layout.width" msgstr "宽" -#: src/app/main/ui/inspect/attributes/shadow.cljs +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:57 msgid "inspect.attributes.shadow" msgstr "阴影" -#: src/app/main/ui/inspect/attributes/layout.cljs +#: src/app/main/ui/viewer/inspect/attributes/geometry.cljs:40 msgid "inspect.attributes.size" msgstr "尺寸和位置" -#: src/app/main/ui/inspect/attributes/stroke.cljs +#: src/app/main/ui/viewer/inspect/attributes/stroke.cljs:52 msgid "inspect.attributes.stroke" msgstr "边框" +#, permanent, unused msgid "inspect.attributes.stroke.alignment.center" msgstr "居中" +#, permanent, unused msgid "inspect.attributes.stroke.alignment.inner" msgstr "内部" +#, permanent, unused msgid "inspect.attributes.stroke.alignment.outer" msgstr "外部" +#, unused msgid "inspect.attributes.stroke.style.dotted" msgstr "虚线" +#, unused msgid "inspect.attributes.stroke.style.mixed" msgstr "混合" +#, unused msgid "inspect.attributes.stroke.style.none" msgstr "无" +#, unused msgid "inspect.attributes.stroke.style.solid" msgstr "实线" #: src/app/main/ui/inspect/attributes/stroke.cljs +#, unused msgid "inspect.attributes.stroke.width" msgstr "宽" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:81, src/app/main/ui/viewer/inspect/attributes/text.cljs:194 msgid "inspect.attributes.typography" msgstr "排版" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:89 msgid "inspect.attributes.typography.font-family" msgstr "字体" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:107 msgid "inspect.attributes.typography.font-size" msgstr "字号" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:98 msgid "inspect.attributes.typography.font-style" msgstr "文字风格" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:116 msgid "inspect.attributes.typography.font-weight" msgstr "字体重量" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:134 msgid "inspect.attributes.typography.letter-spacing" msgstr "字距" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:125 msgid "inspect.attributes.typography.line-height" msgstr "行高" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:143 msgid "inspect.attributes.typography.text-decoration" msgstr "文字装饰" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:145 msgid "inspect.attributes.typography.text-decoration.none" msgstr "无" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:146 msgid "inspect.attributes.typography.text-decoration.strikethrough" msgstr "删除线" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:147 msgid "inspect.attributes.typography.text-decoration.underline" msgstr "下划线" -#: src/app/main/ui/inspect/attributes/text.cljs +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:156 msgid "inspect.attributes.typography.text-transform" msgstr "文本变换" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:158 msgid "inspect.attributes.typography.text-transform.lowercase" msgstr "小写" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:159 msgid "inspect.attributes.typography.text-transform.none" msgstr "无" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:160 msgid "inspect.attributes.typography.text-transform.titlecase" msgstr "首字母大写" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:162 msgid "inspect.attributes.typography.text-transform.unset" msgstr "取消设置" +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:161 msgid "inspect.attributes.typography.text-transform.uppercase" msgstr "大写" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:140 msgid "inspect.empty.help" msgstr "如果您想了解有关设计检查的更多信息,请访问Penpot的帮助中心" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:143 msgid "inspect.empty.more-info" msgstr "有关检查的详细信息" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:135 msgid "inspect.empty.select" msgstr "选择形状、板或组以检查其属性和代码" -#: src/app/main/ui/inspect/right_sidebar.cljs +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:125 msgid "inspect.tabs.code" msgstr "代码" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:98 msgid "inspect.tabs.code.selected.circle" msgstr "圆" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:99 msgid "inspect.tabs.code.selected.component" msgstr "组件" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:100 msgid "inspect.tabs.code.selected.curve" msgstr "曲线" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:101 msgid "inspect.tabs.code.selected.frame" msgstr "画板" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:102 msgid "inspect.tabs.code.selected.group" msgstr "编组" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:103 msgid "inspect.tabs.code.selected.image" msgstr "图片" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:104 msgid "inspect.tabs.code.selected.mask" msgstr "蒙版" -#: src/app/main/ui/inspect/right_sidebar.cljs +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:93 msgid "inspect.tabs.code.selected.multiple" msgstr "已选中%s项" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:105 msgid "inspect.tabs.code.selected.path" msgstr "路径" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:106 msgid "inspect.tabs.code.selected.rect" msgstr "矩形" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:107 msgid "inspect.tabs.code.selected.svg-raw" msgstr "SVG" +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:108 msgid "inspect.tabs.code.selected.text" msgstr "文本" -#: src/app/main/ui/inspect/right_sidebar.cljs +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:115 msgid "inspect.tabs.info" msgstr "信息" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:158 msgid "label.shortcuts" msgstr "快捷方式" +#: src/app/main/ui/dashboard/import.cljs:527 msgid "labels.accept" msgstr "接受" -#: src/app/main/ui/settings/sidebar.cljs +#: src/app/main/ui/settings/sidebar.cljs:100 msgid "labels.access-tokens" msgstr "访问令牌" +#: src/app/main/ui/dashboard/team.cljs:968 msgid "labels.active" msgstr "激活" +#: src/app/main/ui/dashboard/fonts.cljs:175 msgid "labels.add-custom-font" msgstr "添加自定义字体" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:120, src/app/main/ui/dashboard/team.cljs:276, src/app/main/ui/dashboard/team.cljs:519, src/app/main/ui/dashboard/team.cljs:549, src/app/main/ui/onboarding/team_choice.cljs:67 msgid "labels.admin" msgstr "管理员" +#: src/app/main/ui/onboarding/questions.cljs:174 +msgid "labels.adobe-xd" +msgstr "Adobe XD" + #: src/app/main/ui/workspace/comments.cljs +#, unused msgid "labels.all" msgstr "全部" +#: src/app/main/ui/auth.cljs:37 msgid "labels.and" msgstr "和" +#: src/app/main/ui/onboarding/team_choice.cljs:162 msgid "labels.back" msgstr "后退" -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:59 msgid "labels.bad-gateway.desc-message" msgstr "请过会儿再来试试,我们正在对服务器进行一些简单维护。" -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:58 msgid "labels.bad-gateway.main-message" msgstr "网关错误" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/data/common.cljs:112, src/app/main/ui/dashboard/change_owner.cljs:69, src/app/main/ui/dashboard/import.cljs:514, src/app/main/ui/dashboard/team.cljs:868, src/app/main/ui/delete_shared.cljs:35, src/app/main/ui/export.cljs:164, src/app/main/ui/export.cljs:460, src/app/main/ui/settings/access_tokens.cljs:188, src/app/main/ui/viewer/share_link.cljs:203, src/app/main/ui/workspace/sidebar/assets/groups.cljs:149 msgid "labels.cancel" msgstr "取消" +#: src/app/main/ui/onboarding/questions.cljs:176 +msgid "labels.canva" +msgstr "Canva" + +#: src/app/main/ui/dashboard/projects.cljs:93, src/app/main/ui/export.cljs:478, src/app/main/ui/settings/access_tokens.cljs:183, src/app/main/ui/viewer/login.cljs:77, src/app/main/ui/viewer/share_link.cljs:174, src/app/main/ui/workspace/libraries.cljs:522 msgid "labels.close" msgstr "关闭" -#: src/app/main/ui/dashboard/comments.cljs +#: src/app/main/ui/dashboard/comments.cljs:104, src/app/main/ui/viewer/comments.cljs:70, src/app/main/ui/workspace/comments.cljs:126 msgid "labels.comments" msgstr "评论" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:985, src/app/main/ui/workspace/main_menu.cljs:110 msgid "labels.community" msgstr "社区" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:103 msgid "labels.confirm-password" msgstr "确认密码" +#: src/app/main/ui/dashboard/import.cljs:520, src/app/main/ui/export.cljs:465, src/app/main/ui/onboarding/newsletter.cljs:101 msgid "labels.continue" msgstr "继续" +#, unused msgid "labels.continue-with" msgstr "继续" +#: src/app/main/ui/viewer/login.cljs:75 msgid "labels.continue-with-penpot" msgstr "你可以使用Penpot帐号继续" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:642 msgid "labels.copy-invitation-link" msgstr "复制链接" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:157, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:190 msgid "labels.create" msgstr "创建" -#: src/app/main/ui/dashboard/team_form.cljs, -#: src/app/main/ui/dashboard/team_form.cljs +#: src/app/main/ui/dashboard/team_form.cljs:101, src/app/main/ui/dashboard/team_form.cljs:121 msgid "labels.create-team" msgstr "创建新团队" -#: src/app/main/ui/dashboard/team_form.cljs +#: src/app/main/ui/dashboard/team_form.cljs:113 msgid "labels.create-team.placeholder" msgstr "输入新的团队名称" +#, unused msgid "labels.custom-fonts" msgstr "自定义字体" -#: src/app/main/ui/settings/sidebar.cljs +#: src/app/main/ui/settings/sidebar.cljs:73 msgid "labels.dashboard" msgstr "面板" -#: src/app/main/ui/dashboard/project_menu.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:306, src/app/main/ui/dashboard/fonts.cljs:255, src/app/main/ui/dashboard/fonts.cljs:332, src/app/main/ui/dashboard/fonts.cljs:346, src/app/main/ui/dashboard/project_menu.cljs:115, src/app/main/ui/dashboard/team.cljs:904, src/app/main/ui/settings/access_tokens.cljs:209, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:209 msgid "labels.delete" msgstr "删除" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:357 msgid "labels.delete-comment" msgstr "删除该评论" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:354 msgid "labels.delete-comment-thread" msgstr "删除该讨论串" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:648 msgid "labels.delete-invitation" msgstr "删除邀请" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:262 msgid "labels.delete-multi-files" msgstr "删除%s个文件" +#: src/app/main/ui/onboarding/questions.cljs:250 +msgid "labels.developer" +msgstr "开发者" + +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:199 msgid "labels.discard" msgstr "丢弃" -#: src/app/main/ui/dashboard/projects.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs, -#: src/app/main/ui/dashboard/files.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:28, src/app/main/ui/dashboard/files.cljs:72, src/app/main/ui/dashboard/files.cljs:156, src/app/main/ui/dashboard/projects.cljs:220, src/app/main/ui/dashboard/projects.cljs:224, src/app/main/ui/dashboard/sidebar.cljs:791 msgid "labels.drafts" msgstr "草稿" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:350, src/app/main/ui/dashboard/fonts.cljs:252, src/app/main/ui/dashboard/team.cljs:902, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:205 msgid "labels.edit" msgstr "编辑" +#, unused msgid "labels.edit-file" msgstr "编辑文档" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:118, src/app/main/ui/dashboard/team.cljs:279, src/app/main/ui/dashboard/team.cljs:520, src/app/main/ui/dashboard/team.cljs:553, src/app/main/ui/onboarding/team_choice.cljs:66 msgid "labels.editor" msgstr "编辑者" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:661 msgid "labels.expired-invitation" msgstr "已到期" +#: src/app/main/ui/export.cljs:173 msgid "labels.export" msgstr "导出" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:51 msgid "labels.feedback-disabled" msgstr "反馈被禁止" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:42 msgid "labels.feedback-sent" msgstr "反馈已发出" +#: src/app/main/ui/onboarding/questions.cljs:170 +msgid "labels.figma" +msgstr "Figma" + +#: src/app/main/ui/dashboard/fonts.cljs:412 msgid "labels.font-family" msgstr "字体族" +#, unused msgid "labels.font-providers" msgstr "字体提供者" +#: src/app/main/ui/dashboard/fonts.cljs:413 msgid "labels.font-variants" msgstr "样式" +#: src/app/main/ui/dashboard/fonts.cljs:52, src/app/main/ui/dashboard/sidebar.cljs:811 msgid "labels.fonts" msgstr "字体" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/onboarding/questions.cljs:263 +msgid "labels.founder" +msgstr "创始人/副总裁" + +#: src/app/main/ui/onboarding/questions.cljs:262 +msgid "labels.freelancer" +msgstr "我是一名自由职业者" + +#: src/app/main/ui/dashboard/sidebar.cljs:1015, src/app/main/ui/workspace/main_menu.cljs:142 msgid "labels.github-repo" msgstr "Github仓库" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/settings/sidebar.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:1032, src/app/main/ui/settings/sidebar.cljs:113, src/app/main/ui/workspace/main_menu.cljs:171 msgid "labels.give-feedback" msgstr "提交反馈" +#: src/app/main/ui/auth/recovery_request.cljs:110, src/app/main/ui/auth/register.cljs:285, src/app/main/ui/viewer/login.cljs:117 msgid "labels.go-back" msgstr "返回" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:978, src/app/main/ui/workspace/main_menu.cljs:102 msgid "labels.help-center" msgstr "帮助中心" -#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/comments.cljs:103, src/app/main/ui/workspace/comments.cljs:67 msgid "labels.hide-resolved-comments" msgstr "隐藏已决定的评论" +#: src/app/main/ui/dashboard/team.cljs:969 msgid "labels.inactive" msgstr "未激活" +#: src/app/main/ui/dashboard/fonts.cljs:410 msgid "labels.installed-fonts" msgstr "已安装字体" -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:144 msgid "labels.internal-error.desc-message" -msgstr "" -"发生了一些不妙的事。请尝试重新操作。如果问题仍然存在,请联系我们以取得支持。" +msgstr "发生了一些不妙的事。请尝试重新操作。如果问题仍然存在,请联系我们以取得支持。" -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:143 msgid "labels.internal-error.main-message" msgstr "内部错误" -#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/onboarding/questions.cljs:178 +msgid "labels.invision" +msgstr "InVision" + +#: src/app/main/ui/dashboard/sidebar.cljs:516, src/app/main/ui/dashboard/team.cljs:89, src/app/main/ui/dashboard/team.cljs:97, src/app/main/ui/dashboard/team.cljs:708 msgid "labels.invitations" msgstr "邀请" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:51 msgid "labels.language" msgstr "语言" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:1008, src/app/main/ui/workspace/main_menu.cljs:134 msgid "labels.libraries-and-templates" msgstr "库&模板" +#: src/app/main/ui/viewer/header.cljs:203 msgid "labels.log-or-sign" msgstr "登录或注册" -#: src/app/main/ui/settings.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:1040 msgid "labels.logout" msgstr "登出" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/onboarding/questions.cljs:253 +msgid "labels.marketing" +msgstr "市场营销" + +#: src/app/main/ui/dashboard/team.cljs:468 msgid "labels.member" msgstr "成员" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:510, src/app/main/ui/dashboard/team.cljs:87, src/app/main/ui/dashboard/team.cljs:95 msgid "labels.members" msgstr "成员" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:96 msgid "labels.new-password" msgstr "新密码" -#: src/app/main/ui/workspace/comments.cljs, -#: src/app/main/ui/dashboard/comments.cljs +#: src/app/main/ui/dashboard/templates.cljs:269, src/app/main/ui/onboarding/questions.cljs:55 +msgid "labels.next" +msgstr "下一项" + +#: src/app/main/ui/dashboard/comments.cljs:128, src/app/main/ui/workspace/comments.cljs:161 msgid "labels.no-comments-available" msgstr "你们都赶上了! 新的评论通知将出现在这里。" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:694 msgid "labels.no-invitations" msgstr "没有待处理的邀请。" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:696 +#, markdown msgid "labels.no-invitations-hint" msgstr "单击“**邀请他人**”按钮以邀请人员加入此团队。" -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:50 msgid "labels.not-found.desc-message" msgstr "可能该页面不存在,也可能你没有访问权限。" -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:49 msgid "labels.not-found.main-message" msgstr "哎呀!" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/projects.cljs:239, src/app/main/ui/dashboard/team.cljs:1095 msgid "labels.num-of-files" msgid_plural "labels.num-of-files" msgstr[0] "共1个文档" msgstr[1] "共%s个文档" +#: src/app/main/ui/viewer/thumbnails.cljs:80 msgid "labels.num-of-frames" msgid_plural "labels.num-of-frames" msgstr[0] "1个画板" msgstr[1] "%s个画板" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1090 msgid "labels.num-of-projects" msgid_plural "labels.num-of-projects" msgstr[0] "1 个项目" msgstr[1] "共 %s 个项目" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:89 msgid "labels.old-password" msgstr "旧密码" #: src/app/main/ui/workspace/comments.cljs +#, unused msgid "labels.only-yours" msgstr "仅你的" +#, unused msgid "labels.or" msgstr "或" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/onboarding/questions.cljs:145, src/app/main/ui/onboarding/questions.cljs:214, src/app/main/ui/onboarding/questions.cljs:303, src/app/main/ui/onboarding/questions.cljs:316, src/app/main/ui/onboarding/questions.cljs:389, src/app/main/ui/onboarding/questions.cljs:447 +msgid "labels.other" +msgstr "其他(请注明)" + +#: src/app/main/ui/dashboard/team.cljs:286, src/app/main/ui/dashboard/team.cljs:518, src/app/main/ui/dashboard/team.cljs:1076 msgid "labels.owner" msgstr "所有者" -#: src/app/main/ui/settings/sidebar.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/settings/sidebar.cljs:87 msgid "labels.password" msgstr "密码" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:662 msgid "labels.pending-invitation" msgstr "待办" -#: src/app/main/ui/settings/sidebar.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/onboarding/questions.cljs:51 +msgid "labels.previous" +msgstr "前一项" + +#: src/app/main/ui/onboarding/questions.cljs:254 +msgid "labels.product-management" +msgstr "产品经理/项目经理" + +#: src/app/main/ui/settings/profile.cljs:118, src/app/main/ui/settings/sidebar.cljs:82 msgid "labels.profile" msgstr "个人资料" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:784 msgid "labels.projects" msgstr "项目" -#: src/app/main/ui/settings/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:998, src/app/main/ui/settings/sidebar.cljs:106, src/app/main/ui/workspace/main_menu.cljs:126 msgid "labels.release-notes" msgstr "发布说明" #: src/app/main/ui/workspace.cljs +#, unused msgid "labels.reload-file" msgstr "重新加载文件" -#: src/app/main/ui/workspace/libraries.cljs, -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/workspace/libraries.cljs, src/app/main/ui/dashboard/team.cljs +#, unused msgid "labels.remove" msgstr "移除" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:316 msgid "labels.remove-member" msgstr "删除成员" -#: src/app/main/ui/dashboard/sidebar.cljs, -#: src/app/main/ui/dashboard/project_menu.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:271, src/app/main/ui/dashboard/project_menu.cljs:85, src/app/main/ui/dashboard/sidebar.cljs:539, src/app/main/ui/workspace/sidebar/assets/groups.cljs:157 msgid "labels.rename" msgstr "重命名" -#: src/app/main/ui/dashboard/team_form.cljs +#: src/app/main/ui/dashboard/team_form.cljs:99 msgid "labels.rename-team" msgstr "重命名团队" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:645 msgid "labels.resend-invitation" msgstr "重新发送邀请" -#: src/app/main/ui/static.cljs, src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:61, src/app/main/ui/static.cljs:70, src/app/main/ui/static.cljs:148 msgid "labels.retry" msgstr "重试" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:469, src/app/main/ui/dashboard/team.cljs:709 msgid "labels.role" msgstr "角色" +#: src/app/main/ui/dashboard/fonts.cljs:380, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:191 msgid "labels.save" msgstr "保存" +#: src/app/main/ui/onboarding/questions.cljs:414, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:436 msgid "labels.search" msgstr "搜索" +#: src/app/main/ui/dashboard/fonts.cljs:415 msgid "labels.search-font" msgstr "搜索字体" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:82 msgid "labels.send" msgstr "发送" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:82 msgid "labels.sending" msgstr "正在发送…" -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:68 msgid "labels.service-unavailable.desc-message" msgstr "我们正在进行系统的程序维护。" -#: src/app/main/ui/static.cljs +#: src/app/main/ui/static.cljs:67 msgid "labels.service-unavailable.main-message" msgstr "服务不可用" -#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:530, src/app/main/ui/dashboard/team.cljs:88, src/app/main/ui/dashboard/team.cljs:102, src/app/main/ui/settings/options.cljs:84, src/app/main/ui/settings/sidebar.cljs:93 msgid "labels.settings" msgstr "设置" +#: src/app/main/ui/viewer/header.cljs:199 msgid "labels.share" msgstr "分享" +#, unused msgid "labels.share-prototype" msgstr "分享原型" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:800 msgid "labels.shared-libraries" msgstr "共享库" -#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/comments.cljs:82, src/app/main/ui/workspace/comments.cljs:55, src/app/main/ui/workspace/comments.cljs:135 msgid "labels.show-all-comments" msgstr "显示所有评论" +#: src/app/main/ui/viewer/comments.cljs:115 msgid "labels.show-comments-list" msgstr "显示评论列表" -#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/comments.cljs:91, src/app/main/ui/workspace/comments.cljs:61, src/app/main/ui/workspace/comments.cljs:136 msgid "labels.show-your-comments" msgstr "只显示你的评论" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/onboarding/questions.cljs:172 +msgid "labels.sketch" +msgstr "Sketch" + +#: src/app/main/ui/onboarding/questions.cljs:56 +msgid "labels.start" +msgstr "开始" + +#: src/app/main/ui/dashboard/team.cljs:710 msgid "labels.status" msgstr "状态" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/onboarding/questions.cljs:251 +msgid "labels.student-teacher" +msgstr "学生/教师" + +#: src/app/main/ui/dashboard/sidebar.cljs:992, src/app/main/ui/workspace/main_menu.cljs:118 msgid "labels.tutorials" msgstr "教程" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:256 msgid "labels.unpublish-multi-files" msgstr "取消发布%s文件" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:103 msgid "labels.update" msgstr "更新" -#: src/app/main/ui/dashboard/team_form.cljs +#: src/app/main/ui/dashboard/team_form.cljs:120 msgid "labels.update-team" msgstr "更新团队" +#: src/app/main/ui/dashboard/fonts.cljs:241 msgid "labels.upload" msgstr "上传" +#: src/app/main/ui/dashboard/fonts.cljs:169 msgid "labels.upload-custom-fonts" msgstr "上传自定义字体" +#: src/app/main/ui/dashboard/fonts.cljs:240 msgid "labels.uploading" msgstr "正在上传…" +#: src/app/main/ui/workspace/sidebar/sitemap.cljs:223 msgid "labels.view-only" msgstr "仅查看" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:123, src/app/main/ui/dashboard/team.cljs:282, src/app/main/ui/dashboard/team.cljs:521 msgid "labels.viewer" msgstr "查看者" +#: src/app/main/ui/dashboard/sidebar.cljs:523, src/app/main/ui/dashboard/team.cljs:90, src/app/main/ui/dashboard/team.cljs:100, src/app/main/ui/dashboard/team.cljs:880 msgid "labels.webhooks" msgstr "Webhooks" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:194 msgid "labels.write-new-comment" msgstr "写一条新评论" -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/team.cljs:237 msgid "labels.you" msgstr "(你)" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:968 msgid "labels.your-account" msgstr "你的账户" +#: src/app/main/ui/workspace/colorpicker.cljs:297, src/app/main/ui/workspace/colorpicker.cljs:298, src/app/main/ui/workspace/colorpicker.cljs:300 msgid "media.choose-image" msgstr "选择图片" +#, unused msgid "media.gradient" msgstr "渐变" +#: src/app/main/data/workspace/media.cljs:275, src/app/main/ui/components/color_bullet.cljs:32, src/app/main/ui/components/color_bullet.cljs:45, src/app/main/ui/viewer/inspect/attributes/common.cljs:66, src/app/main/ui/workspace/colorpicker.cljs:211, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:237 msgid "media.image" msgstr "图片" +#: src/app/main/ui/workspace/colorpicker.cljs:290 +msgid "media.keep-aspect-ratio" +msgstr "保持宽高比" + +#: src/app/main/ui/workspace/colorpicker.cljs:208 msgid "media.linear" msgstr "线性" -#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs +#: src/app/main/data/media.cljs:49, src/app/main/data/workspace/media.cljs:223, src/app/main/data/workspace/media.cljs:453 msgid "media.loading" msgstr "正在加载图片…" +#: src/app/main/ui/workspace/colorpicker.cljs:209 msgid "media.radial" msgstr "径向" +#: src/app/main/ui/workspace/colorpicker.cljs:206 msgid "media.solid" msgstr "纯色" +#: src/app/main/data/common.cljs:111 msgid "modals.add-shared-confirm-empty.hint" -msgstr "" -"你的库是空白的。一旦添加为共享库,此文档库中的素材就可被用于你的其他文档中。" -"你确定要发布它吗?" +msgstr "你的库是空白的。一旦添加为共享库,此文档库中的素材就可被用于你的其他文档中。你确定要发布它吗?" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/data/common.cljs:113 msgid "modals.add-shared-confirm.accept" msgstr "添加为共享库" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/data/common.cljs:111 msgid "modals.add-shared-confirm.hint" msgstr "一旦添加为共享库,此文档库中的素材就可被用于你的其他文档中。" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/data/common.cljs:110 msgid "modals.add-shared-confirm.message" msgstr "将“%s”添加为共享库" -#: src/app/main/ui/workspace/nudge.cljs +#: src/app/main/ui/workspace/nudge.cljs:60 msgid "modals.big-nudge" msgstr "小幅微调" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:127 msgid "modals.change-email.confirm-email" msgstr "验证新的邮件" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:114 msgid "modals.change-email.info" msgstr "我们会发送一封信的邮件到当前的电子邮件“%s”,以验证你的身份。" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:119 msgid "modals.change-email.new-email" msgstr "新电子邮件" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:136 msgid "modals.change-email.submit" msgstr "修改电子邮件" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:107 msgid "modals.change-email.title" msgstr "修改你的电子邮件" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:165, src/app/main/ui/settings/access_tokens.cljs:171 msgid "modals.create-access-token.copy-token" msgstr "复制令牌" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:142 msgid "modals.create-access-token.expiration-date.label" msgstr "到期时间" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:136 msgid "modals.create-access-token.name.label" msgstr "名称" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:138 msgid "modals.create-access-token.name.placeholder" msgstr "名称可以帮你记住令牌的用途" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:191 msgid "modals.create-access-token.submit-label" msgstr "创建令牌" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:123 msgid "modals.create-access-token.title" msgstr "生成访问令牌" +#: src/app/main/ui/dashboard/team.cljs:873 msgid "modals.create-webhook.submit-label" msgstr "创建webhook" +#: src/app/main/ui/dashboard/team.cljs:838 msgid "modals.create-webhook.title" msgstr "创建webhook" +#: src/app/main/ui/dashboard/team.cljs:849 msgid "modals.create-webhook.url.label" msgstr "有效负载网址" +#: src/app/main/ui/dashboard/team.cljs:850 msgid "modals.create-webhook.url.placeholder" msgstr "https://example.com/postreceive" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:271 msgid "modals.delete-acces-token.accept" msgstr "删除令牌" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:270 msgid "modals.delete-acces-token.message" msgstr "你确定想要删除这个令牌吗?" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:269 msgid "modals.delete-acces-token.title" msgstr "删除令牌" -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:59 msgid "modals.delete-account.cancel" msgstr "取消操作并保留我的账号" -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:64 msgid "modals.delete-account.confirm" msgstr "是的,删除我的账号" -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:53 msgid "modals.delete-account.info" msgstr "删除账号后,你会失去所有项目和存档。" -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:46 msgid "modals.delete-account.title" msgstr "你确定想要删除你的账号?" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:298 msgid "modals.delete-comment-thread.accept" msgstr "删除对话" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:297 msgid "modals.delete-comment-thread.message" msgstr "你确定想要删除这个对话?该讨论串里的所有评论都会被一同删除。" -#: src/app/main/ui/comments.cljs +#: src/app/main/ui/comments.cljs:296 msgid "modals.delete-comment-thread.title" msgstr "删除对话" +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:140 msgid "modals.delete-component-annotation.message" msgstr "你确定想要删除这个注释?" +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:139 msgid "modals.delete-component-annotation.title" msgstr "删除注释" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:123 msgid "modals.delete-file-confirm.accept" msgstr "删除文档" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:122 msgid "modals.delete-file-confirm.message" msgstr "你确定想要删除这个文档?" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:121 msgid "modals.delete-file-confirm.title" msgstr "正在删除文档" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:117 msgid "modals.delete-file-multi-confirm.accept" msgstr "删除文件" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:116 msgid "modals.delete-file-multi-confirm.message" msgstr "你确定要删除这%s个文件?" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:115 msgid "modals.delete-file-multi-confirm.title" msgstr "正在删除%s个文件" +#: src/app/main/ui/dashboard/fonts.cljs:345 msgid "modals.delete-font-variant.message" msgstr "你确定要删除这个字体样式吗?如果它被用在某个文件里的话,将无法加载。" +#: src/app/main/ui/dashboard/fonts.cljs:344 msgid "modals.delete-font-variant.title" msgstr "正在删除字体样式" +#: src/app/main/ui/dashboard/fonts.cljs:331 msgid "modals.delete-font.message" msgstr "你确定要删除这个字体吗?如果它被用在某个文件里的话,将无法加载。" +#: src/app/main/ui/dashboard/fonts.cljs:330 msgid "modals.delete-font.title" msgstr "正在删除字体" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs +#: src/app/main/ui/workspace/context_menu.cljs:522, src/app/main/ui/workspace/sidebar/sitemap.cljs:45 msgid "modals.delete-page.body" msgstr "你确定想要删除这个页面?" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs +#: src/app/main/ui/workspace/context_menu.cljs:521, src/app/main/ui/workspace/sidebar/sitemap.cljs:44 msgid "modals.delete-page.title" msgstr "删除页面" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:69 msgid "modals.delete-project-confirm.accept" msgstr "删除项目" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:68 msgid "modals.delete-project-confirm.message" msgstr "你确定想要删除这个项目?" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/project_menu.cljs:67 msgid "modals.delete-project-confirm.title" msgstr "删除项目" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:51 msgid "modals.delete-shared-confirm.accept" msgid_plural "modals.delete-shared-confirm.accept" msgstr[0] "删除文件" msgstr[1] "批量删除文件" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:55 msgid "modals.delete-shared-confirm.activated.no-files-message" msgid_plural "modals.delete-shared-confirm.activated.no-files-message" msgstr[0] "没有文件引用它。" msgstr[1] "没有文件引用它们。" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:57 msgid "modals.delete-shared-confirm.activated.scd-message" msgid_plural "modals.delete-shared-confirm.activated.scd-message" msgstr[0] "该库被以下文档使用: " msgstr[1] "这些库被以下文档使用: " -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:46 msgid "modals.delete-shared-confirm.message" msgid_plural "modals.delete-shared-confirm.message" msgstr[0] "你是否确认要删除这个文件?" msgstr[1] "你是否确认要删除这些文件?" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:41 msgid "modals.delete-shared-confirm.title" msgid_plural "modals.delete-shared-confirm.title" msgstr[0] "删除文件" msgstr[1] "批量删除文件" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:435 msgid "modals.delete-team-confirm.accept" msgstr "删除团队" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:434 msgid "modals.delete-team-confirm.message" msgstr "你确定想要删除这个团队?与该团队关联的所有项目和文档都会被永久删除。" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:433 msgid "modals.delete-team-confirm.title" msgstr "正在删除团队" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:427 msgid "modals.delete-team-member-confirm.accept" msgstr "删除成员" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:426 msgid "modals.delete-team-member-confirm.message" msgstr "你确定想要从团队中删除这个成员?" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:425 msgid "modals.delete-team-member-confirm.title" msgstr "删除团队成员" +#: src/app/main/ui/delete_shared.cljs:59 +msgid "modals.delete-unpublish-shared-confirm.activated.hint" +msgid_plural "modals.delete-unpublish-shared-confirm.activated.hint" +msgstr[0] "这个文件中被其他文件引用的素材依然在那(其他文件的现有设计不会被破坏)。" +msgstr[1] "这些文件中被其他文件引用的素材依然在那(其他文件的现有设计不会被破坏)。" + +#: src/app/main/ui/dashboard/team.cljs:942 msgid "modals.delete-webhook.accept" msgstr "删除webhook" +#: src/app/main/ui/dashboard/team.cljs:941 msgid "modals.delete-webhook.message" msgstr "你确定要删除这个webhook吗?" +#: src/app/main/ui/dashboard/team.cljs:940 msgid "modals.delete-webhook.title" msgstr "删除webhook" +#: src/app/main/ui/dashboard/team.cljs:872 msgid "modals.edit-webhook.submit-label" msgstr "编辑webhook" +#: src/app/main/ui/dashboard/team.cljs:837 msgid "modals.edit-webhook.title" msgstr "编辑webhook" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:218 msgid "modals.invite-member-confirm.accept" msgstr "发送邀请" +#: src/app/main/ui/dashboard/team.cljs:213, src/app/main/ui/onboarding/team_choice.cljs:156 msgid "modals.invite-member.emails" msgstr "电子邮件,以逗号分隔" +#: src/app/main/ui/dashboard/team.cljs:197 msgid "modals.invite-member.repeated-invitation" msgstr "有些电子邮件是来自当前的团队成员。他们的邀请将不会被发送。" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:190 msgid "modals.invite-team-member.title" msgstr "邀请成员加入团队" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:423, src/app/main/ui/dashboard/team.cljs:393 msgid "modals.leave-and-close-confirm.hint" msgstr "由于你是这个团队的唯一成员,这个团队将连同其项目和文件一起被删除。" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:422, src/app/main/ui/dashboard/team.cljs:392 msgid "modals.leave-and-close-confirm.message" msgstr "您确定要离开 %s 团队吗?" +#: src/app/main/ui/dashboard/change_owner.cljs:59 msgid "modals.leave-and-reassign.forbidden" -msgstr "" -"如果不能推选另一个成员作为团队所有者,你就无法离开团队。你或许想要删除该团" -"队。" +msgstr "如果不能推选另一个成员作为团队所有者,你就无法离开团队。你或许想要删除该团队。" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/change_owner.cljs:55 msgid "modals.leave-and-reassign.hint1" msgstr "你是此团队的所有者。在你离开团队之前,请选择其他成员晋升为所有者。" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/change_owner.cljs:78 msgid "modals.leave-and-reassign.promote-and-leave" msgstr "晋升并退出" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/change_owner.cljs:34 msgid "modals.leave-and-reassign.select-member-to-promote" msgstr "选择一位成员晋升" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/change_owner.cljs:49 msgid "modals.leave-and-reassign.title" msgstr "在你离开之前" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:402, src/app/main/ui/dashboard/sidebar.cljs:424, src/app/main/ui/dashboard/team.cljs:394, src/app/main/ui/dashboard/team.cljs:416 msgid "modals.leave-confirm.accept" msgstr "退出团队" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:401, src/app/main/ui/dashboard/team.cljs:415 msgid "modals.leave-confirm.message" msgstr "你确定要离开本团队吗?" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:400, src/app/main/ui/dashboard/sidebar.cljs:421, src/app/main/ui/dashboard/team.cljs:391, src/app/main/ui/dashboard/team.cljs:414 msgid "modals.leave-confirm.title" msgstr "正在退出团队" -#: src/app/main/ui/workspace/nudge.cljs +#: src/app/main/ui/delete_shared.cljs:53 +msgid "modals.move-shared-confirm.accept" +msgid_plural "modals.move-shared-confirm.accept" +msgstr[0] "移动" +msgstr[1] "移动" + +#: src/app/main/ui/delete_shared.cljs:48 +msgid "modals.move-shared-confirm.message" +msgid_plural "modals.move-shared-confirm.message" +msgstr[0] "你确定要移动这个共享库吗?" +msgstr[1] "你确定要移动这些共享库吗?" + +#: src/app/main/ui/delete_shared.cljs:43 +msgid "modals.move-shared-confirm.title" +msgid_plural "modals.move-shared-confirm.title" +msgstr[0] "移动共享库" +msgstr[1] "移动共享库" + +#: src/app/main/ui/workspace/main_menu.cljs:266, src/app/main/ui/workspace/nudge.cljs:47 msgid "modals.nudge-title" msgstr "微调量" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:340 msgid "modals.promote-owner-confirm.accept" msgstr "转让所有权" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:339 msgid "modals.promote-owner-confirm.hint" msgstr "如果你转移所有权,你的角色将变为管理员,失去对这个团队的一些权限。 " -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:338 msgid "modals.promote-owner-confirm.message" msgstr "您是此团队的所有者,你确定想要将所有者转让给该成员?" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:337 msgid "modals.promote-owner-confirm.title" msgstr "新增团队所有者" +#: src/app/main/ui/workspace/libraries.cljs:188 msgid "modals.publish-empty-library.accept" msgstr "发布" +#: src/app/main/ui/workspace/libraries.cljs:187 msgid "modals.publish-empty-library.message" msgstr "你的库是空白的。你确定想要发布它?" +#: src/app/main/ui/workspace/libraries.cljs:186 msgid "modals.publish-empty-library.title" msgstr "发布空白库" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "modals.remove-shared-confirm.accept" msgstr "不再作为共享库" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "modals.remove-shared-confirm.hint" msgstr "一旦不再作为共享库,该文档库就不能继续用于你的其他文档中。" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused msgid "modals.remove-shared-confirm.message" msgstr "不再将“%s”作为共享库" -#: src/app/main/ui/workspace/nudge.cljs +#: src/app/main/ui/workspace/nudge.cljs:53 msgid "modals.small-nudge" msgstr "小幅微调" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:52 msgid "modals.unpublish-shared-confirm.accept" msgid_plural "modals.unpublish-shared-confirm.accept" msgstr[0] "取消发布" msgstr[1] "取消发布" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:47 msgid "modals.unpublish-shared-confirm.message" msgid_plural "modals.unpublish-shared-confirm.message" msgstr[0] "你是否确认取消发布这个库?" msgstr[1] "你是否确认取消发布这些库?" -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/delete_shared.cljs:42 msgid "modals.unpublish-shared-confirm.title" msgid_plural "modals.unpublish-shared-confirm.title" msgstr[0] "取消发布库" msgstr[1] "批量取消发布库" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#, unused msgid "modals.update-remote-component-in-bulk.hint" msgstr "你即将更新共享库中的组件,这可能会影响使用这些组件的其他文档。" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#, unused msgid "modals.update-remote-component-in-bulk.message" msgstr "更新共享库组件" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:380 msgid "modals.update-remote-component.accept" msgstr "更新组件" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:379 msgid "modals.update-remote-component.cancel" msgstr "取消" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:378 msgid "modals.update-remote-component.hint" msgstr "你即将更新共享库中的一个组件。这可能会对使用该组件的其他文档产生影响。" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:377 msgid "modals.update-remote-component.message" msgstr "更新共享库中的一个组件" -#: src/app/main/data/common.cljs +#: src/app/main/data/common.cljs:71 msgid "notifications.by-code.upgrade-version" msgstr "有新版本可用,请刷新页面" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:154, src/app/main/ui/dashboard/team.cljs:595 msgid "notifications.invitation-email-sent" msgstr "成功发送邀请" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:616 msgid "notifications.invitation-link-copied" msgstr "邀请链接已复制" -#: src/app/main/ui/settings/delete_account.cljs +#: src/app/main/ui/settings/delete_account.cljs:24 msgid "notifications.profile-deletion-not-allowed" msgstr "您无法删除您的个人资料。在继续之前重新分配您的团队。" -#: src/app/main/ui/settings/profile.cljs, src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:29, src/app/main/ui/settings/profile.cljs:35 msgid "notifications.profile-saved" msgstr "个人资料保存成功!" -#: src/app/main/ui/settings/change_email.cljs +#: src/app/main/ui/settings/change_email.cljs:63 msgid "notifications.validation-email-sent" msgstr "验证邮件已发至%s。请检查电子邮箱!" +#, unused msgid "onboarding-v2.before-start.desc1" msgstr "有很多资源可以帮助你开始使用Penpot,如用户指南和我们的Youtube频道。" +#, unused msgid "onboarding-v2.before-start.desc2" msgstr "有关如何使用Penpot的详细信息。从原型设计到组织或共享设计。" +#, unused msgid "onboarding-v2.before-start.desc2.title" msgstr "用户指南" +#, unused msgid "onboarding-v2.before-start.desc3" msgstr "您可以观看我们的官方教程以及社区制作的教程。" +#, unused msgid "onboarding-v2.before-start.desc3.title" msgstr "视频教程" +#, unused msgid "onboarding-v2.before-start.title" msgstr "在开始之前" +#: src/app/main/ui/onboarding/newsletter.cljs:63 msgid "onboarding-v2.newsletter.desc" msgstr "订阅Penpot通知邮件,跟进产品开发进度,获取最新消息。" +#: src/app/main/ui/onboarding/newsletter.cljs:83 msgid "onboarding-v2.newsletter.news" msgstr "发给我有关Penpot的新闻(博客文章、视频教程、直播等)。" +#: src/app/main/ui/onboarding/newsletter.cljs:91 msgid "onboarding-v2.newsletter.privacy1" msgstr "我们关心隐私,您可在此阅读我们的 " +#: src/app/main/ui/onboarding/newsletter.cljs:97 msgid "onboarding-v2.newsletter.privacy2" -msgstr "" -"我们将仅发送与您有关的邮件,您可以随时在其中任意一封邮件中点击取消订阅。" +msgstr "我们将仅发送与您有关的邮件,您可以随时在其中任意一封邮件中点击取消订阅。" +#: src/app/main/ui/onboarding/newsletter.cljs:71 msgid "onboarding-v2.newsletter.updates" msgstr "向我发送一些产品更新(新功能,新版本,新修复等)。" +#, unused msgid "onboarding-v2.welcome.desc1" -msgstr "" -"Penpot是由Kaleidos及社区共同开发的开源软件,许多人已经在社区中互相帮助。每个" -"人都可以通过以下方式进行协作:" +msgstr "Penpot是由Kaleidos及社区共同开发的开源软件,许多人已经在社区中互相帮助。每个人都可以通过以下方式进行协作:" +#, unused msgid "onboarding-v2.welcome.desc2" -msgstr "" -"一个与整个社区和Penpot核心团队学习、分享和讨论Penpot及其现在和未来的公共空" -"间。" +msgstr "一个与整个社区和Penpot核心团队学习、分享和讨论Penpot及其现在和未来的公共空间。" +#, unused msgid "onboarding-v2.welcome.desc2.title" msgstr "参与到社区中" +#, unused msgid "onboarding-v2.welcome.desc3" -msgstr "" -"在这里,您将了解如何协作进行翻译、功能需求提出、核心代码贡献、BUG修复等…" +msgstr "在这里,您将了解如何协作进行翻译、功能需求提出、核心代码贡献、BUG修复等…" +#, unused msgid "onboarding-v2.welcome.desc3.title" msgstr "贡献指南" +#: src/app/main/ui/onboarding/team_choice.cljs:31 msgid "onboarding-v2.welcome.title" msgstr "欢迎来到Penpot!" +#: src/app/main/ui/onboarding/team_choice.cljs:229 msgid "onboarding.choice.team-up.continue-creating-team" msgstr "继续创建团队" +#: src/app/main/ui/onboarding/team_choice.cljs:239 msgid "onboarding.choice.team-up.continue-without-a-team" msgstr "以个人身份继续" +#: src/app/main/ui/onboarding/team_choice.cljs:167 msgid "onboarding.choice.team-up.create-team-and-invite" msgstr "创建团队 & 邀请" +#, unused msgid "onboarding.choice.team-up.create-team-and-send-invites" msgstr "创建团队并发送邀请" +#: src/app/main/ui/onboarding/team_choice.cljs:170 msgid "onboarding.choice.team-up.create-team-and-send-invites-description" msgstr "你可以稍后再邀请成员" +#: src/app/main/ui/onboarding/team_choice.cljs:215 msgid "onboarding.choice.team-up.create-team-desc" msgstr "命名团队后,您将能够邀请他人加入。" +#: src/app/main/ui/onboarding/team_choice.cljs:224 msgid "onboarding.choice.team-up.create-team-placeholder" msgstr "输入团队名称" +#: src/app/main/ui/onboarding/team_choice.cljs:168 msgid "onboarding.choice.team-up.create-team-without-invite" msgstr "创建团队" +#, unused msgid "onboarding.choice.team-up.create-team-without-inviting" msgstr "创建团队但暂不邀请" +#: src/app/main/ui/dashboard/projects.cljs:89, src/app/main/ui/onboarding/team_choice.cljs:140 msgid "onboarding.choice.team-up.invite-members" msgstr "邀请成员" +#: src/app/main/ui/onboarding/team_choice.cljs:141 msgid "onboarding.choice.team-up.invite-members-info" msgstr "记得将开发人员、设计师、经理……等各类人员都加进来:)" +#: src/app/main/ui/dashboard/team.cljs:202, src/app/main/ui/onboarding/team_choice.cljs:146 msgid "onboarding.choice.team-up.roles" msgstr "邀请角色:" +#: src/app/main/ui/onboarding/team_choice.cljs:232 msgid "onboarding.choice.team-up.start-without-a-team" msgstr "以个人身份开始" +#: src/app/main/ui/onboarding/team_choice.cljs:234 msgid "onboarding.choice.team-up.start-without-a-team-description" msgstr "你可以稍后再创建团队。" +#, unused msgid "onboarding.newsletter.accept" msgstr "是的,订阅" +#: src/app/main/ui/onboarding/newsletter.cljs:40 msgid "onboarding.newsletter.acceptance-message" msgstr "您的订阅请求已发送,我们将向您发送一封电子邮件进行确认。" +#: src/app/main/ui/onboarding/newsletter.cljs:95 msgid "onboarding.newsletter.policy" msgstr "隐私策略。" +#: src/app/main/ui/onboarding/newsletter.cljs:60 msgid "onboarding.newsletter.title" msgstr "想要接收 Penpot 新闻?" -msgid "onboarding.team-modal.create-team" -msgstr "创建一个团队" - -msgid "onboarding.team-modal.create-team-desc" -msgstr "团队能够让你与其它Penpot用户协作处理相同的文件和项目。" - -msgid "onboarding.team-modal.create-team-feature-1" -msgstr "无限制的文件和项目" - -msgid "onboarding.team-modal.create-team-feature-2" -msgstr "多用户编辑" - -msgid "onboarding.team-modal.create-team-feature-3" -msgstr "角色管理" - -msgid "onboarding.team-modal.create-team-feature-4" -msgstr "无限制成员" - -msgid "onboarding.team-modal.create-team-feature-5" -msgstr "完全免费!" - -msgid "onboarding.templates.subtitle" -msgstr "这里有一些模板。" - -msgid "onboarding.templates.title" -msgstr "开始设计" - -msgid "onboarding.welcome.alt" -msgstr "Penpot" - -#: src/app/main/ui/auth/recovery.cljs -msgid "profile.recovery.go-to-login" -msgstr "去登录" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.team-size.11-30" -msgstr "11-30" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.team-size.2-10" -msgstr "2-10" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.team-size.31-50" -msgstr "31-50" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.adobe-xd" -msgstr "Adobe XD" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.canva" -msgstr "Canva" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.developer" -msgstr "开发者" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.figma" -msgstr "Figma" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.founder" -msgstr "创始人/副总裁" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.freelancer" -msgstr "我是一名自由职业者" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.invision" -msgstr "InVision" - -#: src/app/main/ui/onboarding/questions.cljs +#: src/app/main/ui/onboarding/questions.cljs:118 msgid "onboarding.questions.lets-get-started" msgstr "让我们开始吧!" -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.product-management" -msgstr "产品经理/项目经理" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.marketing" -msgstr "市场营销" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.team-size.more-than-50" -msgstr "50以上" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.next" -msgstr "下一项" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.other" -msgstr "其他(请注明)" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "onboarding.questions.team-size.personal-project" -msgstr "我在做个人项目" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.previous" -msgstr "前一项" - -#: src/app/main/ui/onboarding/questions.cljs +#: src/app/main/ui/onboarding/questions.cljs:307 msgid "onboarding.questions.step3.question2" msgstr "你是哪种身份?" -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.sketch" -msgstr "Sketch" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.start" -msgstr "开始" - -#: src/app/main/ui/onboarding/questions.cljs -msgid "labels.student-teacher" -msgstr "学生/教师" - -#: src/app/main/ui/onboarding/questions.cljs +#: src/app/main/ui/onboarding/questions.cljs:320 msgid "onboarding.questions.step3.question3" msgstr "你的团队有多少人?" -#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs +#: src/app/main/ui/onboarding/questions.cljs:273 +msgid "onboarding.questions.team-size.11-30" +msgstr "11-30" + +#: src/app/main/ui/onboarding/questions.cljs:274 +msgid "onboarding.questions.team-size.2-10" +msgstr "2-10" + +#: src/app/main/ui/onboarding/questions.cljs:272 +msgid "onboarding.questions.team-size.31-50" +msgstr "31-50" + +#: src/app/main/ui/onboarding/questions.cljs:271 +msgid "onboarding.questions.team-size.more-than-50" +msgstr "50以上" + +#: src/app/main/ui/onboarding/questions.cljs:276 +msgid "onboarding.questions.team-size.personal-project" +msgstr "我在做个人项目" + +#: src/app/main/ui/onboarding/team_choice.cljs:213 +msgid "onboarding.team-modal.create-team" +msgstr "创建一个团队" + +#: src/app/main/ui/onboarding/team_choice.cljs:35 +msgid "onboarding.team-modal.create-team-desc" +msgstr "团队能够让你与其它Penpot用户协作处理相同的文件和项目。" + +#: src/app/main/ui/onboarding/team_choice.cljs:40 +msgid "onboarding.team-modal.create-team-feature-1" +msgstr "无限制的文件和项目" + +#: src/app/main/ui/onboarding/team_choice.cljs:44 +msgid "onboarding.team-modal.create-team-feature-2" +msgstr "多用户编辑" + +#: src/app/main/ui/onboarding/team_choice.cljs:48 +msgid "onboarding.team-modal.create-team-feature-3" +msgstr "角色管理" + +#: src/app/main/ui/onboarding/team_choice.cljs:52 +msgid "onboarding.team-modal.create-team-feature-4" +msgstr "无限制成员" + +#: src/app/main/ui/onboarding/team_choice.cljs:56 +msgid "onboarding.team-modal.create-team-feature-5" +msgstr "完全免费!" + +#: src/app/main/ui/onboarding/team_choice.cljs:33 +msgid "onboarding.team-modal.team-definition" +msgstr "团队是什么?" + +#: src/app/main/ui/onboarding/templates.cljs:78 +msgid "onboarding.templates.subtitle" +msgstr "这里有一些模板。" + +#: src/app/main/ui/onboarding/templates.cljs:77 +msgid "onboarding.templates.title" +msgstr "开始设计" + +#, unused +msgid "onboarding.welcome.alt" +msgstr "Penpot" + +#: src/app/main/ui/auth/recovery.cljs:99 +msgid "profile.recovery.go-to-login" +msgstr "去登录" + +#: src/app/main/ui/viewer/inspect/exports.cljs:147, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:631, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:137, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:148, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:188, src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:158, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:399, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:410, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:430, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:441, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:458, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:472, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:309, src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:183, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:373, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:389, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:245, src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:172 msgid "settings.multiple" msgstr "混合" +#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:271 +msgid "settings.select-this-color" +msgstr "选择使用此样式的项目" + # SECTIONS +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:414 msgid "shortcut-section.basics" msgstr "基础" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:420 msgid "shortcut-section.dashboard" msgstr "仪表盘" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:423 msgid "shortcut-section.viewer" msgstr "观察者" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:417 msgid "shortcut-section.workspace" msgstr "工作区" # SUBSECTIONS +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:56 msgid "shortcut-subsection.alignment" msgstr "对准" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:57 msgid "shortcut-subsection.edit" msgstr "编辑" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:58 msgid "shortcut-subsection.general-dashboard" msgstr "通用" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:59 msgid "shortcut-subsection.general-viewer" msgstr "通用" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:60 msgid "shortcut-subsection.main-menu" msgstr "主菜单" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:61 msgid "shortcut-subsection.modify-layers" msgstr "修改图层" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:62 msgid "shortcut-subsection.navigation-dashboard" msgstr "导航" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:63 msgid "shortcut-subsection.navigation-viewer" msgstr "导航" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:64 msgid "shortcut-subsection.navigation-workspace" msgstr "导航" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:65 msgid "shortcut-subsection.panels" msgstr "面板" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:66 msgid "shortcut-subsection.path-editor" msgstr "路径" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:67 msgid "shortcut-subsection.shape" msgstr "形状" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:68 msgid "shortcut-subsection.text-editor" msgstr "文本" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:69 msgid "shortcut-subsection.tools" msgstr "工具" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:70 msgid "shortcut-subsection.zoom-viewer" msgstr "缩放" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:71 msgid "shortcut-subsection.zoom-workspace" msgstr "缩放" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:72 msgid "shortcuts.add-comment" msgstr "评论" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:73 msgid "shortcuts.add-node" msgstr "添加节点" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:74 msgid "shortcuts.align-bottom" msgstr "底部对齐" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:75 msgid "shortcuts.align-center" msgstr "居中对齐" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:76 msgid "shortcuts.align-hcenter" msgstr "水平居中对齐" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:77 msgid "shortcuts.align-justify" msgstr "两端对齐" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:78 msgid "shortcuts.align-left" msgstr "靠左对齐" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:79 msgid "shortcuts.align-right" msgstr "靠右对齐" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:80 msgid "shortcuts.align-top" msgstr "顶部对齐" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:81 msgid "shortcuts.align-vcenter" msgstr "垂直居中对齐" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:82 msgid "shortcuts.artboard-selection" msgstr "以所选内容创建画板" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:83 msgid "shortcuts.bold" msgstr "切换粗体" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:84 msgid "shortcuts.bool-difference" msgstr "布尔差" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:85 msgid "shortcuts.bool-exclude" msgstr "布尔排除" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:86 msgid "shortcuts.bool-intersection" msgstr "布尔交集" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:87 msgid "shortcuts.bool-union" msgstr "布尔合并" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:88 msgid "shortcuts.bring-back" msgstr "移至最下层" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:89 msgid "shortcuts.bring-backward" msgstr "移至下一层" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:90 msgid "shortcuts.bring-forward" msgstr "移至上一层" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:91 msgid "shortcuts.bring-front" msgstr "移至最上层" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:92 msgid "shortcuts.clear-undo" msgstr "清除回退内容" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:93 msgid "shortcuts.copy" msgstr "拷贝" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:94 msgid "shortcuts.create-component" msgstr "创建组件" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:95 msgid "shortcuts.create-new-project" msgstr "创建新的" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:96 msgid "shortcuts.cut" msgstr "剪切" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:97 msgid "shortcuts.decrease-zoom" msgstr "缩小" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:98 msgid "shortcuts.delete" msgstr "删除" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:99 msgid "shortcuts.delete-node" msgstr "删除节点" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:100 msgid "shortcuts.detach-component" msgstr "拆分组件" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:101 msgid "shortcuts.draw-curve" msgstr "曲线" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:102 msgid "shortcuts.draw-ellipse" msgstr "椭圆" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:103 msgid "shortcuts.draw-frame" msgstr "画板" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:104 msgid "shortcuts.draw-nodes" msgstr "绘制路径" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:105 msgid "shortcuts.draw-path" msgstr "路径" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:106 msgid "shortcuts.draw-rect" msgstr "长方形" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:107 msgid "shortcuts.draw-text" msgstr "文本" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:108 msgid "shortcuts.duplicate" msgstr "复制" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:109 msgid "shortcuts.escape" msgstr "取消" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:110 msgid "shortcuts.export-shapes" msgstr "导出形状" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:111 msgid "shortcuts.fit-all" msgstr "缩放至适应所有" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:112 msgid "shortcuts.flip-horizontal" msgstr "水平翻转" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:113 msgid "shortcuts.flip-vertical" msgstr "垂直翻转" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:114 msgid "shortcuts.font-size-dec" msgstr "缩小字体大小" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:115 msgid "shortcuts.font-size-inc" msgstr "增加字体大小" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:116 msgid "shortcuts.go-to-drafts" msgstr "前往草稿" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:117 msgid "shortcuts.go-to-libs" msgstr "前往共享库" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:118 msgid "shortcuts.go-to-search" msgstr "搜索" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:119 msgid "shortcuts.group" msgstr "组" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:120 msgid "shortcuts.h-distribute" msgstr "水平分布" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:121 msgid "shortcuts.hide-ui" msgstr "显示/隐藏UI" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:122 msgid "shortcuts.increase-zoom" msgstr "放大" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:123 msgid "shortcuts.insert-image" msgstr "插入图片" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:124 msgid "shortcuts.italic" msgstr "切换斜体" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:125 msgid "shortcuts.join-nodes" msgstr "链接节点" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:126 msgid "shortcuts.letter-spacing-dec" msgstr "减少字母间距" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:127 msgid "shortcuts.letter-spacing-inc" msgstr "减少字母间距" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:128 msgid "shortcuts.line-height-dec" msgstr "减少行高" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:129 msgid "shortcuts.line-height-inc" msgstr "增加行高" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:130 msgid "shortcuts.line-through" msgstr "切换删除线" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:131 msgid "shortcuts.make-corner" msgstr "制作圆角" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:132 msgid "shortcuts.make-curve" msgstr "制作曲线" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:133 msgid "shortcuts.mask" msgstr "遮罩" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:134 msgid "shortcuts.merge-nodes" msgstr "合并节点" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:135 msgid "shortcuts.move" msgstr "移动" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:136 msgid "shortcuts.move-fast-down" msgstr "快速下移" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:137 msgid "shortcuts.move-fast-left" msgstr "快速向左移动" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:138 msgid "shortcuts.move-fast-right" msgstr "快速向右移动" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:139 msgid "shortcuts.move-fast-up" msgstr "快速上移" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:140 msgid "shortcuts.move-nodes" msgstr "移动节点" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:141 msgid "shortcuts.move-unit-down" msgstr "向下移动" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:142 msgid "shortcuts.move-unit-left" msgstr "左移" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:143 msgid "shortcuts.move-unit-right" msgstr "右移" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:144 msgid "shortcuts.move-unit-up" msgstr "上移" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:145 msgid "shortcuts.next-frame" msgstr "下个画板" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:516 msgid "shortcuts.not-found" msgstr "没找到快捷方式" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:146 msgid "shortcuts.opacity-0" msgstr "设置不透明度为100%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:147 msgid "shortcuts.opacity-1" msgstr "设置不透明度为10%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:148 msgid "shortcuts.opacity-2" msgstr "设置不透明度为20%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:149 msgid "shortcuts.opacity-3" msgstr "设置不透明度为30%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:150 msgid "shortcuts.opacity-4" msgstr "设置不透明度为40%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:151 msgid "shortcuts.opacity-5" msgstr "设置不透明度为50%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:152 msgid "shortcuts.opacity-6" msgstr "设置不透明度为60%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:153 msgid "shortcuts.opacity-7" msgstr "设置不透明度为70%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:154 msgid "shortcuts.opacity-8" msgstr "设置不透明度为80%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:155 msgid "shortcuts.opacity-9" msgstr "设置不透明度为90%" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:156 msgid "shortcuts.open-color-picker" msgstr "色彩拾取器" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:157 msgid "shortcuts.open-comments" msgstr "前往查阅者评论区" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:158 msgid "shortcuts.open-dashboard" msgstr "前往看板" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:159 msgid "shortcuts.open-inspect" msgstr "转到查看器检查部分" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:160 msgid "shortcuts.open-interactions" msgstr "转往阅读器交互部分" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:161 msgid "shortcuts.open-viewer" msgstr "转往阅读器交互部分" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:162 msgid "shortcuts.open-workspace" msgstr "前往工作区" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:260 msgid "shortcuts.or" msgstr " 或 " +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:163 msgid "shortcuts.paste" msgstr "粘贴" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:164 msgid "shortcuts.prev-frame" msgstr "前一画板" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:165 msgid "shortcuts.redo" msgstr "重做" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:166 msgid "shortcuts.reset-zoom" msgstr "重置缩放" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:168 msgid "shortcuts.search-placeholder" msgstr "搜索快捷方式" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:169 msgid "shortcuts.select-all" msgstr "选择所有" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:170 msgid "shortcuts.select-next" msgstr "选择下一个图层" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:171 msgid "shortcuts.select-parent-layer" msgstr "选择上级图层" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:172 msgid "shortcuts.select-prev" msgstr "选择上一个图层" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:173 msgid "shortcuts.separate-nodes" msgstr "分离节点" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:174 msgid "shortcuts.show-pixel-grid" msgstr "显示/隐藏像素网格" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:175 msgid "shortcuts.show-shortcuts" msgstr "显示/隐藏快捷方式" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:176 msgid "shortcuts.snap-nodes" msgstr "对齐到节点" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:177 msgid "shortcuts.snap-pixel-grid" msgstr "对齐像素网格" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:178 msgid "shortcuts.start-editing" msgstr "启用编辑" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:179 msgid "shortcuts.start-measure" msgstr "启用测量" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:180 msgid "shortcuts.stop-measure" msgstr "停止测量" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:181 msgid "shortcuts.text-align-center" msgstr "水平居中" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:182 msgid "shortcuts.text-align-justify" msgstr "两端对齐" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:183 msgid "shortcuts.text-align-left" msgstr "靠左对齐" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:184 msgid "shortcuts.text-align-right" msgstr "靠右对齐" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:185 msgid "shortcuts.thumbnail-set" msgstr "设置缩略图" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:496, src/app/main/ui/workspace/sidebar/shortcuts.cljs:505 msgid "shortcuts.title" msgstr "快捷键" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:186 msgid "shortcuts.toggle-alignment" msgstr "切换动态对齐" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:187 msgid "shortcuts.toggle-assets" msgstr "切换资产" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:188 msgid "shortcuts.toggle-colorpalette" msgstr "切换调色板" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:189 msgid "shortcuts.toggle-focus-mode" msgstr "切换焦点模式" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:190 msgid "shortcuts.toggle-fullscreen" msgstr "切换全屏" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:191 +msgid "shortcuts.toggle-guides" +msgstr "显示/隐藏参考线" + +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:192 msgid "shortcuts.toggle-history" msgstr "切换历史" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:193 msgid "shortcuts.toggle-layers" msgstr "切换层" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:194 msgid "shortcuts.toggle-layout-flex" msgstr "添加/删除弹性布局" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:195 +msgid "shortcuts.toggle-layout-grid" +msgstr "添加/移除网格布局" + +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:196 msgid "shortcuts.toggle-lock" msgstr "锁定所选" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:197 msgid "shortcuts.toggle-lock-size" msgstr "锁定比例" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:198 +msgid "shortcuts.toggle-rulers" +msgstr "显示/隐藏标尺" + +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:200 +msgid "shortcuts.toggle-snap-guides" +msgstr "吸附到参考线" + +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:201 +msgid "shortcuts.toggle-snap-ruler-guide" +msgstr "吸附到标尺参考线" + +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:202 msgid "shortcuts.toggle-textpalette" msgstr "切换文本调色板" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:203 +msgid "shortcuts.toggle-theme" +msgstr "更改主题" + +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:204 msgid "shortcuts.toggle-visibility" msgstr "切换可见度" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:205 msgid "shortcuts.toggle-zoom-style" msgstr "切换缩放样式" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:206 msgid "shortcuts.underline" msgstr "切换下划线" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:207 msgid "shortcuts.undo" msgstr "回退" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:208 msgid "shortcuts.ungroup" msgstr "取消组合" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:209 msgid "shortcuts.unmask" msgstr "取消遮罩" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:210 msgid "shortcuts.v-distribute" msgstr "垂直分布" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:211 msgid "shortcuts.zoom-lense-decrease" msgstr "变焦镜头缩小" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:212 msgid "shortcuts.zoom-lense-increase" msgstr "变焦镜头放大" +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:213 msgid "shortcuts.zoom-selected" msgstr "缩放到选定对象" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:771 msgid "team.webhooks.max-length" msgstr "Webhook的名称最多包含2048个字符。" -#: src/app/main/ui/dashboard/files.cljs +#: src/app/main/ui/dashboard/files.cljs:158 msgid "title.dashboard.files" msgstr "%s - Penpot" -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:37 msgid "title.dashboard.font-providers" msgstr "字体提供者 - %s - Penpot" -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:36 msgid "title.dashboard.fonts" msgstr "字体 - %s - Penpot" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:320 msgid "title.dashboard.projects" msgstr "项目 - %s - Penpot" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:32 msgid "title.dashboard.search" msgstr "搜索 - %s - Penpot" -#: src/app/main/ui/dashboard/libraries.cljs +#: src/app/main/ui/dashboard/libraries.cljs:44 msgid "title.dashboard.shared-libraries" msgstr "共享库 - %s - Penpot" -#: src/app/main/ui/auth/verify_token.cljs, src/app/main/ui/auth.cljs +#: src/app/main/ui/auth/verify_token.cljs:68, src/app/main/ui/auth.cljs:54 msgid "title.default" msgstr "Penpot - 面向团队,设计自由" -#: src/app/main/ui/settings/access-tokens.cljs +#: src/app/main/ui/settings/access_tokens.cljs:292 msgid "title.settings.access-tokens" msgstr "个人资料 — 访问令牌" -#: src/app/main/ui/settings/feedback.cljs +#: src/app/main/ui/settings/feedback.cljs:110 msgid "title.settings.feedback" msgstr "提交反馈 - Penpot" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:80 msgid "title.settings.options" msgstr "设置 - Penpot" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:115 msgid "title.settings.password" msgstr "密码 - Penpot" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:115 msgid "title.settings.profile" msgstr "个人资料 - Penpot" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:727 msgid "title.team-invitations" msgstr "邀请函 - %s - Penpot" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:493 msgid "title.team-members" msgstr "成员 - %s - Penpot" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1036 msgid "title.team-settings" msgstr "设置 - %s - Penpot" +#: src/app/main/ui/dashboard/team.cljs:989 msgid "title.team-webhooks" msgstr "Webhooks - %s - Penpot" -#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs +#: src/app/main/ui/viewer.cljs:419 msgid "title.viewer" msgstr "%s - 预览模式)- Penpot" -#: src/app/main/ui/workspace.cljs +#: src/app/main/ui/workspace.cljs:190 msgid "title.workspace" msgstr "%s - Penpot" +#: src/app/main/ui.cljs:144 msgid "viewer.breaking-change.description" msgstr "此共享的链接已失效。创建一个新的链接或向所有者索取一个新的链接。" +#: src/app/main/ui.cljs:143 msgid "viewer.breaking-change.message" msgstr "对不起!" -#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs +#: src/app/main/ui/viewer.cljs:569 msgid "viewer.empty-state" msgstr "该页面上未找到任何画框。" -#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs +#: src/app/main/ui/viewer.cljs:574 msgid "viewer.frame-not-found" msgstr "画框未找到。" +#: src/app/main/ui/viewer/header.cljs:336 msgid "viewer.header.comments-section" msgstr "注释 (%s)" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/interactions.cljs:292 msgid "viewer.header.dont-show-interactions" msgstr "不显示交互" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/header.cljs:188 msgid "viewer.header.fullscreen" msgstr "全屏" +#: src/app/main/ui/viewer/header.cljs:345 msgid "viewer.header.inspect-section" msgstr "检查 (%s)" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/interactions.cljs:282 msgid "viewer.header.interactions" msgstr "交互" +#: src/app/main/ui/viewer/header.cljs:327 msgid "viewer.header.interactions-section" msgstr "交互 (%s)" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/share_link.cljs:187 msgid "viewer.header.share.copy-link" msgstr "复制链接" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/interactions.cljs:300 msgid "viewer.header.show-interactions" msgstr "显示交互" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/interactions.cljs:311 msgid "viewer.header.show-interactions-on-click" msgstr "点击时显示交互" -#: src/app/main/ui/viewer/header.cljs +#: src/app/main/ui/viewer/header.cljs:231 msgid "viewer.header.sitemap" msgstr "站点地图" +#: src/app/main/ui/dashboard/team.cljs:948 msgid "webhooks.last-delivery.success" msgstr "上次交付成功。" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:58 msgid "workspace.align.hcenter" msgstr "水平居中对齐 (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:74 msgid "workspace.align.hdistribute" msgstr "水平均匀分布 (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:50 msgid "workspace.align.hleft" msgstr "靠左对齐 (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:66 msgid "workspace.align.hright" msgstr "靠右对齐 (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:99 msgid "workspace.align.vbottom" msgstr "底部对齐 (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:91 msgid "workspace.align.vcenter" msgstr "垂直居中对齐 (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:104 msgid "workspace.align.vdistribute" msgstr "垂直均匀分布 (%s)" -#: src/app/main/ui/workspace/sidebar/align.cljs +#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:83 msgid "workspace.align.vtop" msgstr "顶部对齐 (%s)" #: src/app/main/ui/workspace/sidebar/assets.cljs +#, unused msgid "workspace.assets.assets" msgstr "素材" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets.cljs:134 msgid "workspace.assets.box-filter-all" msgstr "所有素材" -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/dashboard/grid.cljs:130, src/app/main/ui/dashboard/grid.cljs:162, src/app/main/ui/workspace/sidebar/assets/colors.cljs:485, src/app/main/ui/workspace/sidebar/assets.cljs:150 msgid "workspace.assets.colors" msgstr "颜色" -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/dashboard/grid.cljs:126, src/app/main/ui/dashboard/grid.cljs:141, src/app/main/ui/workspace/sidebar/assets/components.cljs:513, src/app/main/ui/workspace/sidebar/assets.cljs:139 msgid "workspace.assets.components" msgstr "组件" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:131 msgid "workspace.assets.create-group" msgstr "创建组" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:142 msgid "workspace.assets.create-group-hint" msgstr "这些物件将按照“组名/物件名”的格式自动命名" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/context_menu.cljs:529, src/app/main/ui/workspace/sidebar/assets/colors.cljs:251, src/app/main/ui/workspace/sidebar/assets/components.cljs:577, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:424, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:443 msgid "workspace.assets.delete" msgstr "删除" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/context_menu.cljs:534, src/app/main/ui/workspace/sidebar/assets/components.cljs:572 msgid "workspace.assets.duplicate" msgstr "创建副本" +#: src/app/main/ui/workspace/sidebar/assets/components.cljs:571 msgid "workspace.assets.duplicate-main" msgstr "重复主体" -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:247, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:439 msgid "workspace.assets.edit" msgstr "编辑" -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets.cljs:176 +msgid "workspace.assets.filter" +msgstr "过滤器" + +#: src/app/main/ui/workspace/sidebar/assets/graphics.cljs:384, src/app/main/ui/workspace/sidebar/assets.cljs:145 msgid "workspace.assets.graphics" msgstr "图形" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:255, src/app/main/ui/workspace/sidebar/assets/components.cljs:581, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:428, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:448 msgid "workspace.assets.group" msgstr "组" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:141 msgid "workspace.assets.group-name" msgstr "组名" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets.cljs:168 msgid "workspace.assets.libraries" msgstr "库" +#: src/app/main/ui/workspace/sidebar/assets/file_library.cljs:62, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:347 msgid "workspace.assets.local-library" msgstr "本地库" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/file_library.cljs:295 msgid "workspace.assets.not-found" msgstr "未找到素材" +#, unused msgid "workspace.assets.open-library" msgstr "打开库文档" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/context_menu.cljs:532, src/app/main/ui/workspace/sidebar/assets/colors.cljs:243, src/app/main/ui/workspace/sidebar/assets/components.cljs:566, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:421, src/app/main/ui/workspace/sidebar/assets/groups.cljs:63, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:434 msgid "workspace.assets.rename" msgstr "重命名" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:132 msgid "workspace.assets.rename-group" msgstr "重命名组" -#: src/app/main/ui/workspace/sidebar/assets.cljs +#: src/app/main/ui/workspace/sidebar/assets.cljs:173 msgid "workspace.assets.search" msgstr "搜索素材" #: src/app/main/ui/workspace/sidebar/assets.cljs +#, unused msgid "workspace.assets.selected-count" msgid_plural "workspace.assets.selected-count" msgstr[0] "已选中%s个物件" msgstr[1] "已选中%s个物件" #: src/app/main/ui/workspace/sidebar/assets.cljs +#, unused msgid "workspace.assets.shared-library" msgstr "共享库" -#: src/app/main/ui/workspace/sidebar/assets.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs -msgid "workspace.assets.typography" -msgstr "排版" - -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -msgid "workspace.assets.typography.font-id" -msgstr "字体" - -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -msgid "workspace.assets.typography.font-size" -msgstr "尺寸" - -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -msgid "workspace.assets.typography.font-variant-id" -msgstr "变体" - -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -msgid "workspace.assets.typography.go-to-edit" -msgstr "前往样式库文件进行编辑" - -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -msgid "workspace.assets.typography.letter-spacing" -msgstr "字距" - -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -msgid "workspace.assets.typography.line-height" -msgstr "行高" - -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, -#: src/app/main/ui/inspect/attributes/text.cljs, -#: src/app/main/ui/inspect/attributes/text.cljs -msgid "workspace.assets.typography.sample" -msgstr "Ag" - -msgid "workspace.assets.typography.text-styles" -msgstr "文本样式" - -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -msgid "workspace.assets.typography.text-transform" -msgstr "文本变换" - -#: src/app/main/ui/workspace/sidebar/assets.cljs -msgid "workspace.assets.ungroup" -msgstr "解组" - -msgid "workspace.focus.focus-mode" -msgstr "禅模式" - -msgid "workspace.focus.focus-off" -msgstr "退出禅模式" - -msgid "workspace.focus.focus-on" -msgstr "关注" - -msgid "workspace.focus.selection" -msgstr "选择" - -#: src/app/main/data/workspace/libraries.cljs, -#: src/app/main/ui/components/color_bullet.cljs -msgid "workspace.gradients.linear" -msgstr "线性渐变" - -#: src/app/main/data/workspace/libraries.cljs, -#: src/app/main/ui/components/color_bullet.cljs -msgid "workspace.gradients.radial" -msgstr "放射渐变" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.disable-dynamic-alignment" -msgstr "禁用动态对齐" - -msgid "workspace.header.menu.disable-scale-content" -msgstr "禁用比例尺" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.disable-scale-text" -msgstr "禁用缩放文本" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.disable-snap-guides" -msgstr "禁用与参考线对齐" - -msgid "workspace.header.menu.disable-snap-pixel-grid" -msgstr "禁用像素对齐" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.enable-dynamic-alignment" -msgstr "启用动态对齐" - -msgid "workspace.header.menu.enable-scale-content" -msgstr "启用比例尺" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.enable-scale-text" -msgstr "启用缩放文本" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.enable-snap-guides" -msgstr "与参考线对齐" - -msgid "workspace.header.menu.enable-snap-pixel-grid" -msgstr "启用像素对齐" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.hide-artboard-names" -msgstr "隐藏画板名称" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.hide-palette" -msgstr "隐藏调色盘" - -msgid "workspace.header.menu.hide-pixel-grid" -msgstr "隐藏像素网格" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.hide-rules" -msgstr "隐藏标尺" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.hide-textpalette" -msgstr "隐藏字体调色板" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.option.edit" -msgstr "编辑" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.option.file" -msgstr "文件" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.option.help-info" -msgstr "帮助和信息" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.option.preferences" -msgstr "首选项" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.option.view" -msgstr "视图" - -msgid "workspace.header.menu.redo" -msgstr "重做" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.select-all" -msgstr "全选" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.show-artboard-names" -msgstr "显示画板名称" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.show-palette" -msgstr "显示调色盘" - -msgid "workspace.header.menu.show-pixel-grid" -msgstr "显示像素网格" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.show-rules" -msgstr "显示标尺" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.show-textpalette" -msgstr "显示字体调色板" - -msgid "workspace.header.menu.undo" -msgstr "撤销" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.reset-zoom" -msgstr "重置" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.save-error" -msgstr "保存时发生错误" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.saved" -msgstr "已保存" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.saving" -msgstr "正在保存" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.unsaved" -msgstr "未保存的修改" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.viewer" -msgstr "预览模式(%s)" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.zoom" -msgstr "缩放" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.zoom-fill" -msgstr "填充 - 填充比例" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.zoom-fit" -msgstr "适合 - 缩小以适合" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.zoom-fit-all" -msgstr "缩放以适应所有" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.zoom-full-screen" -msgstr "全屏" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.zoom-selected" -msgstr "缩放到选定的位置" - -msgid "workspace.layout_grid.editor.options.edit-grid" -msgstr "编辑网格" - -msgid "workspace.layout_grid.editor.options.exit" -msgstr "退出" - -msgid "workspace.layout_grid.editor.title" -msgstr "编辑网格" - -msgid "workspace.layout_grid.editor.top-bar.done" -msgstr "完成" - -msgid "workspace.layout_grid.editor.top-bar.locate" -msgstr "定位" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.add" -msgstr "添加" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.colors" -msgstr "%s种颜色" - -#: src/app/main/ui/workspace/colorpalette.cljs -msgid "workspace.libraries.colors.empty-palette" -msgstr "你的库中还没有颜色风格" - -#: src/app/main/ui/workspace/textpalette.cljs -msgid "workspace.libraries.colors.empty-typography-palette" -msgstr "你的库中还没有排版风格" - -#: src/app/main/ui/workspace/colorpicker/libraries.cljs, -#: src/app/main/ui/workspace/colorpalette.cljs -msgid "workspace.libraries.colors.file-library" -msgstr "文档库" - -#: src/app/main/ui/workspace/colorpicker.cljs -msgid "workspace.libraries.colors.hsv" -msgstr "HSV" - -#: src/app/main/ui/workspace/colorpicker/libraries.cljs, -#: src/app/main/ui/workspace/colorpalette.cljs -msgid "workspace.libraries.colors.recent-colors" -msgstr "最近使用的颜色" - -#: src/app/main/ui/workspace/colorpicker.cljs -msgid "workspace.libraries.colors.rgb-complementary" -msgstr "RGB互补" - -#: src/app/main/ui/workspace/colorpicker.cljs -msgid "workspace.libraries.colors.rgba" -msgstr "RGBA" - -#: src/app/main/ui/workspace/colorpicker.cljs -msgid "workspace.libraries.colors.save-color" -msgstr "保存颜色风格" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.components" -msgstr "%s个组件" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.file-library" -msgstr "文档库" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.graphics" -msgstr "%s个图形" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.in-this-file" -msgstr "本文档中的库" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.libraries" -msgstr "库" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.library" -msgstr "库" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.no-libraries-need-sync" -msgstr "没有需要更新的共享库" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.no-matches-for" -msgstr "没有找到“%s”的匹配项" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.no-shared-libraries-available" -msgstr "没有可用的共享库" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.search-shared-libraries" -msgstr "搜索共享库" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.shared-libraries" -msgstr "共享库" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.libraries.text.multiple-typography" -msgstr "复合排版" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.libraries.text.multiple-typography-tooltip" -msgstr "断开所有排版的链接" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.typography" -msgstr "%s个排版" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.update" -msgstr "更新" - -#: src/app/main/data/workspace/libraries.cljs -msgid "workspace.libraries.update.see-all-changes" -msgstr "查看所有修改" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.updates" -msgstr "更新" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.add-interaction" -msgstr "单击 + 按钮以添加交互。" - -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs -msgid "workspace.options.blur-options.title" -msgstr "模糊" - -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs -msgid "workspace.options.blur-options.title.group" -msgstr "编组模糊" - -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs -msgid "workspace.options.blur-options.title.multiple" -msgstr "选项模糊" - -#: src/app/main/ui/workspace/sidebar/options/page.cljs -msgid "workspace.options.canvas-background" -msgstr "画布背景" - -msgid "workspace.options.clip-content" -msgstr "剪辑内容" - -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs -msgid "workspace.options.component" -msgstr "组件" - -msgid "workspace.options.component.annotation" -msgstr "注释" - -msgid "workspace.options.component.copy" -msgstr "复制" - -msgid "workspace.options.component.create-annotation" -msgstr "创建注释" - -msgid "workspace.options.component.edit-annotation" -msgstr "编辑注释" - -msgid "workspace.options.component.swap.empty" -msgstr "你的库中还没有素材" - -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -msgid "workspace.options.constraints" -msgstr "限制条件" - -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -msgid "workspace.options.constraints.bottom" -msgstr "底部固定" - -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -msgid "workspace.options.constraints.center" -msgstr "居中" - -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -msgid "workspace.options.constraints.fix-when-scrolling" -msgstr "滚动时保持固定" - -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -msgid "workspace.options.constraints.left" -msgstr "靠左固定" - -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -msgid "workspace.options.constraints.leftright" -msgstr "左右固定" - -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -msgid "workspace.options.constraints.right" -msgstr "靠右固定" - -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -msgid "workspace.options.constraints.scale" -msgstr "跟随缩放" - -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -msgid "workspace.options.constraints.top" -msgstr "顶部固定" - -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -msgid "workspace.options.constraints.topbottom" -msgstr "上下固定" - -#: src/app/main/ui/workspace/sidebar/options.cljs -msgid "workspace.options.design" -msgstr "设计" - -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs -msgid "workspace.options.export" -msgstr "导出" - -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs -msgid "workspace.options.export-multiple" -msgstr "导出已选择" - -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs -msgid "workspace.options.export-object" -msgid_plural "workspace.options.export-object" -msgstr[0] "输出1个元素" -msgstr[1] "输出%s元素" - -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs -msgid "workspace.options.export.suffix" -msgstr "后缀" - -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs, src/app/main/ui/workspace/header.cljs -msgid "workspace.options.exporting-complete" -msgstr "导出完成" - -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, -#: src/app/main/ui/inspect/exports.cljs -msgid "workspace.options.exporting-object" -msgstr "正在导出…" - -#: 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.exporting-object-error" -msgstr "导出失败" - -#: 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.exporting-object-slow" -msgstr "导出速度意外缓慢" - -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs -msgid "workspace.options.fill" -msgstr "填充" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.flows.add-flow-start" -msgstr "增加流程起点" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.flows.flow" -msgstr "流程" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.flows.flow-start" -msgstr "流程起点" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.flows.flow-starts" -msgstr "所有流程起点" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.auto" -msgstr "自动" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.column" -msgstr "列" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.grid-title" -msgstr "网格" - -msgid "workspace.options.grid.params.color" -msgstr "颜色" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.columns" -msgstr "列" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.gutter" -msgstr "栅格间隔" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.height" -msgstr "高" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.margin" -msgstr "外边距" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.rows" -msgstr "行" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.set-default" -msgstr "设为默认" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.size" -msgstr "尺寸" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.type" -msgstr "类型" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.type.bottom" -msgstr "底" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.type.center" -msgstr "居中" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.type.left" -msgstr "左" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.type.right" -msgstr "右" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.type.stretch" -msgstr "拉伸" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.type.top" -msgstr "顶" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.use-default" -msgstr "使用默认" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.width" -msgstr "宽" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.row" -msgstr "行" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.square" -msgstr "正方形" - -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs -msgid "workspace.options.group-fill" -msgstr "编组填充" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.group-stroke" -msgstr "编组边框" - -msgid "workspace.options.height" -msgstr "高度" - -msgid "workspace.options.inspect" -msgstr "检查" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-action" -msgstr "执行" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-after-delay" -msgstr "延迟后" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-animation" -msgstr "动画" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-animation-dissolve" -msgstr "解散" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-animation-none" -msgstr "无" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-animation-push" -msgstr "推送" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-animation-slide" -msgstr "滑动" - -msgid "workspace.options.interaction-auto" -msgstr "自动" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-background" -msgstr "添加背景覆盖" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-close-outside" -msgstr "点击外部时关闭" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-close-overlay" -msgstr "关闭覆盖" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-close-overlay-dest" -msgstr "关闭遮罩层: %s" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-delay" -msgstr "延迟" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-destination" -msgstr "目的地" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-duration" -msgstr "持续时间" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-easing" -msgstr "平滑" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-easing-ease" -msgstr "缓解" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-easing-ease-in" -msgstr "缓入" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-easing-ease-in-out" -msgstr "缓进缓出" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-easing-ease-out" -msgstr "缓出" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-easing-linear" -msgstr "线性" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-in" -msgstr "在" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-mouse-enter" -msgstr "鼠标进入" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-mouse-leave" -msgstr "鼠标离开" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-ms" -msgstr "ms" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-navigate-to" -msgstr "导航至" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-navigate-to-dest" -msgstr "导航到: %s" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-none" -msgstr "(未设定)" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-offset-effect" -msgstr "偏移效果" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-on-click" -msgstr "点击时" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-open-overlay" -msgstr "打开叠加层" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-open-overlay-dest" -msgstr "打开覆盖:%s" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-open-url" -msgstr "打开网址" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-out" -msgstr "外" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-pos-bottom-center" -msgstr "底部居中" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-pos-bottom-left" -msgstr "左下角" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-pos-bottom-right" -msgstr "右下角" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-pos-center" -msgstr "居中" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-pos-manual" -msgstr "手册" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-pos-top-center" -msgstr "顶部居中" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-pos-top-left" -msgstr "左上角" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-pos-top-right" -msgstr "右上角" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-position" -msgstr "位置" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-preserve-scroll" -msgstr "保留滚动位置" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-prev-screen" -msgstr "上一个屏幕" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-relative-to" -msgstr "相对于" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-self" -msgstr "自己" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-toggle-overlay" -msgstr "切换覆盖层" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-toggle-overlay-dest" -msgstr "切换覆盖:%s" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-trigger" -msgstr "触发器" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-url" -msgstr "URL" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-while-hovering" -msgstr "悬停时" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-while-pressing" -msgstr "按下时" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interactions" -msgstr "交互" - -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.blend-mode.color" -msgstr "颜色" - -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.blend-mode.color-burn" -msgstr "颜色加深" - -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.blend-mode.color-dodge" -msgstr "颜色减淡" - -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.blend-mode.darken" -msgstr "变暗" - -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.blend-mode.difference" -msgstr "差值" - -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.blend-mode.exclusion" -msgstr "排除" - -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.blend-mode.hard-light" -msgstr "强光" - -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.blend-mode.hue" -msgstr "色相" - -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.blend-mode.lighten" -msgstr "变亮" - -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.blend-mode.luminosity" -msgstr "亮度" - -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.blend-mode.multiply" -msgstr "正片叠底" - -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.blend-mode.normal" -msgstr "正常" - -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.blend-mode.overlay" -msgstr "叠加" - -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.blend-mode.saturation" -msgstr "饱和度" - -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.blend-mode.screen" -msgstr "滤色" - -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.blend-mode.soft-light" -msgstr "柔光" - -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.title" -msgstr "图层" - -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.title.group" -msgstr "图层组" - -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.title.multiple" -msgstr "已选中的图层" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -msgid "workspace.options.layout-item.advanced-ops" -msgstr "高级选项" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -msgid "workspace.options.layout-item.layout-item-max-h" -msgstr "最大高度" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -msgid "workspace.options.layout-item.layout-item-max-w" -msgstr "最大宽度" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -msgid "workspace.options.layout-item.layout-item-min-h" -msgstr "最小高度" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -msgid "workspace.options.layout-item.layout-item-min-w" -msgstr "最小宽度" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -msgid "workspace.options.layout-item.title.layout-item-max-h" -msgstr "最大高度" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -msgid "workspace.options.layout-item.title.layout-item-max-w" -msgstr "最大宽度" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -msgid "workspace.options.layout-item.title.layout-item-min-h" -msgstr "最小高度" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -msgid "workspace.options.layout-item.title.layout-item-min-w" -msgstr "最小宽度" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -msgid "workspace.options.layout.bottom" -msgstr "底部" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -msgid "workspace.options.layout.direction.column" -msgstr "列" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -msgid "workspace.options.layout.direction.column-reverse" -msgstr "反向列" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -msgid "workspace.options.layout.direction.row" -msgstr "行" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -msgid "workspace.options.layout.direction.row-reverse" -msgstr "反向行" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -msgid "workspace.options.layout.gap" -msgstr "差距" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -msgid "workspace.options.layout.left" -msgstr "左" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -msgid "workspace.options.layout.margin" -msgstr "外边距" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -msgid "workspace.options.layout.margin-all" -msgstr "所有方向" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -msgid "workspace.options.layout.margin-simple" -msgstr "简易外边距" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -msgid "workspace.options.layout.packed" -msgstr "收起" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -msgid "workspace.options.layout.padding" -msgstr "内边距" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -msgid "workspace.options.layout.padding-all" -msgstr "所有方向" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -msgid "workspace.options.layout.padding-simple" -msgstr "简易内边距" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -msgid "workspace.options.layout.right" -msgstr "右" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -msgid "workspace.options.layout.space-around" -msgstr "周围留空" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -msgid "workspace.options.layout.space-between" -msgstr "间隔留空" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -msgid "workspace.options.layout.top" -msgstr "顶部" - -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs -msgid "workspace.options.more-colors" -msgstr "更多颜色" - -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs -msgid "workspace.options.more-lib-colors" -msgstr "更多共享库颜色" - -msgid "workspace.options.opacity" -msgstr "不透明度" - -#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -msgid "workspace.options.position" -msgstr "位置" - -#: src/app/main/ui/workspace/sidebar/options.cljs -msgid "workspace.options.prototype" -msgstr "原型" - -msgid "workspace.options.radius" -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 "右下角" - -#: 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.all-corners" -msgstr "所有角" - -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -msgid "workspace.options.radius.single-corners" -msgstr "独立的角" - -msgid "workspace.options.recent-fonts" -msgstr "最近的" - -#: 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 "重试" - -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -msgid "workspace.options.rotation" -msgstr "旋转" - -msgid "workspace.options.search-font" -msgstr "搜索字体" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.select-a-shape" -msgstr "选择一个形状、画板或编组,拖至另一个画板,以创建关联。" - -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs -msgid "workspace.options.selection-color" -msgstr "已选颜色" - -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs -msgid "workspace.options.selection-fill" -msgstr "选项填充" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.selection-stroke" -msgstr "选项边框" - -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs -msgid "workspace.options.shadow-options.blur" -msgstr "模糊" - -msgid "workspace.options.shadow-options.color" -msgstr "阴影颜色" - -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs -msgid "workspace.options.shadow-options.drop-shadow" -msgstr "外阴影" - -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs -msgid "workspace.options.shadow-options.inner-shadow" -msgstr "内阴影" - -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs -msgid "workspace.options.shadow-options.offsetx" -msgstr "X" - -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs -msgid "workspace.options.shadow-options.offsety" -msgstr "Y" - -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs -msgid "workspace.options.shadow-options.spread" -msgstr "展开" - -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs -msgid "workspace.options.shadow-options.title" -msgstr "阴影" - -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs -msgid "workspace.options.shadow-options.title.group" -msgstr "编组阴影" - -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs -msgid "workspace.options.shadow-options.title.multiple" -msgstr "选项阴影" - -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs -msgid "workspace.options.show-fill-on-export" -msgstr "在导出中显示" - -msgid "workspace.options.show-in-viewer" -msgstr "在预览模式显示" - -#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -msgid "workspace.options.size" -msgstr "尺寸" - -#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs -msgid "workspace.options.size-presets" -msgstr "尺寸预设" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke" -msgstr "边框" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke-cap.circle-marker" -msgstr "圆形标记" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke-cap.circle-marker-short" -msgstr "圆形" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke-cap.diamond-marker" -msgstr "钻石标记" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke-cap.diamond-marker-short" -msgstr "钻石" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke-cap.line-arrow" -msgstr "箭头" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke-cap.line-arrow-short" -msgstr "箭头" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke-cap.none" -msgstr "无边框" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke-cap.round" -msgstr "圆头" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke-cap.square" -msgstr "方头" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke-cap.square-marker" -msgstr "方形标记" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke-cap.square-marker-short" -msgstr "矩形" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke-cap.triangle-arrow" -msgstr "三角箭头" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke-cap.triangle-arrow-short" -msgstr "三角形" - -msgid "workspace.options.stroke-color" -msgstr "线条颜色" - -msgid "workspace.options.stroke-width" -msgstr "线宽" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke.center" -msgstr "居中" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke.dashed" -msgstr "长虚线" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke.dotted" -msgstr "虚线" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke.inner" -msgstr "内部" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke.mixed" -msgstr "混合" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke.outer" -msgstr "外部" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke.solid" -msgstr "实线" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.options.text-options.align-bottom" -msgstr "底部对齐" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.options.text-options.align-middle" -msgstr "垂直居中" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.options.text-options.align-top" -msgstr "顶部对齐" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.options.text-options.direction-ltr" -msgstr "从左到右" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.options.text-options.direction-rtl" -msgstr "从右到左" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.options.text-options.grow-auto-height" -msgstr "自动高度" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.options.text-options.grow-auto-width" -msgstr "自动宽度" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.options.text-options.grow-fixed" -msgstr "固定" - -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -msgid "workspace.options.text-options.letter-spacing" -msgstr "字距" - -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -msgid "workspace.options.text-options.line-height" -msgstr "行高" - -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -msgid "workspace.options.text-options.lowercase" -msgstr "小写" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs, -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -msgid "workspace.options.text-options.none" -msgstr "无" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.options.text-options.strikethrough" -msgstr "删除线 (%s)" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.options.text-options.text-align-center" -msgstr "水平居中 (%s)" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.options.text-options.text-align-justify" -msgstr "两端对齐 (%s)" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.options.text-options.text-align-left" -msgstr "靠左对齐 (%s)" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.options.text-options.text-align-right" -msgstr "靠右对齐 (%s)" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.options.text-options.title" -msgstr "文本" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.options.text-options.title-group" -msgstr "编组文本" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.options.text-options.title-selection" -msgstr "选项文本" - -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -msgid "workspace.options.text-options.titlecase" -msgstr "首字母大写" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.options.text-options.underline" -msgstr "下划线 (%s)" - -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -msgid "workspace.options.text-options.uppercase" -msgstr "大写" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.use-play-button" -msgstr "点击页面顶端的播放按钮预览原型。" - -msgid "workspace.options.width" -msgstr "宽度" - -msgid "workspace.options.x" -msgstr "X轴" - -msgid "workspace.options.y" -msgstr "Y轴" - -msgid "workspace.path.actions.add-node" -msgstr "添加节点(%s)" - -msgid "workspace.path.actions.delete-node" -msgstr "删除节点(%s)" - -msgid "workspace.path.actions.draw-nodes" -msgstr "绘制节点(%s)" - -msgid "workspace.path.actions.join-nodes" -msgstr "连接节点(%s)" - -msgid "workspace.path.actions.make-corner" -msgstr "转锐角 (%s)" - -msgid "workspace.path.actions.make-curve" -msgstr "转圆角 (%s)" - -msgid "workspace.path.actions.merge-nodes" -msgstr "合并节点(%s)" - -msgid "workspace.path.actions.move-nodes" -msgstr "移动节点(%s)" - -msgid "workspace.path.actions.separate-nodes" -msgstr "拆分节点(%s)" - -msgid "workspace.path.actions.snap-nodes" -msgstr "对接节点 (%s)" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.add-flex" -msgstr "添加弹性布局" - -msgid "workspace.shape.menu.add-grid" -msgstr "添加网格布局" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.back" -msgstr "移至底层" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.backward" -msgstr "向下移动一层" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.copy" -msgstr "复制" - -msgid "workspace.shape.menu.create-annotation" -msgstr "创建注释" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.create-artboard-from-selection" -msgstr "转为画板" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.create-component" -msgstr "创建组件" - -msgid "workspace.shape.menu.create-multiple-components" -msgstr "创建多个组件" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.cut" -msgstr "剪切" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.delete" -msgstr "删除" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.delete-flow-start" -msgstr "删除流程起点" - -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.detach-instance" -msgstr "解绑实例" - -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.detach-instances-in-bulk" -msgstr "解绑实例" - -msgid "workspace.shape.menu.difference" -msgstr "差集" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.duplicate" -msgstr "创建副本" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.edit" -msgstr "编辑" - -msgid "workspace.shape.menu.exclude" -msgstr "相减" - -msgid "workspace.shape.menu.flatten" -msgstr "展平" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.flip-horizontal" -msgstr "水平翻转" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.flip-vertical" -msgstr "垂直翻转" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.flow-start" -msgstr "流程起点" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.forward" -msgstr "向上移动一层" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.front" -msgstr "移至顶层" - -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.go-main" -msgstr "前往主组件文档" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.group" -msgstr "编组" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.hide" -msgstr "隐藏" - -msgid "workspace.shape.menu.hide-ui" -msgstr "显示/隐藏界面" - -msgid "workspace.shape.menu.intersection" -msgstr "差集" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.lock" -msgstr "锁定" - -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.mask" -msgstr "蒙板" - -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.paste" -msgstr "粘贴" - -msgid "workspace.shape.menu.path" -msgstr "路径" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.remove-flex" -msgstr "删除弹性布局" - -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.reset-overrides" -msgstr "还原自定义选项" - -msgid "workspace.shape.menu.restore-main" -msgstr "恢复主要组件" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.select-layer" -msgstr "选择图层" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.show" -msgstr "显示" - -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.show-in-assets" -msgstr "在素材面板中显示" - -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.show-main" -msgstr "显示主组件" - -msgid "workspace.shape.menu.thumbnail-remove" -msgstr "移除缩略图" - -msgid "workspace.shape.menu.thumbnail-set" -msgstr "设为缩略图" - -msgid "workspace.shape.menu.transform-to-path" -msgstr "转换为路径" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.ungroup" -msgstr "取消编组" - -msgid "workspace.shape.menu.union" -msgstr "相加" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.unlock" -msgstr "取消锁定" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.unmask" -msgstr "取消蒙版" - -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.update-components-in-bulk" -msgstr "更新主要组件" - -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, -#: src/app/main/ui/workspace/context_menu.cljs, -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.update-main" -msgstr "更新主组件" - -msgid "workspace.sidebar.collapse" -msgstr "收起侧边栏" - -msgid "workspace.sidebar.expand" -msgstr "展开侧边栏" - -#: src/app/main/ui/workspace/left_toolbar.cljs -msgid "workspace.sidebar.history" -msgstr "历史(%s)" - -#: src/app/main/ui/workspace/left_toolbar.cljs -msgid "workspace.sidebar.layers" -msgstr "图层" - -msgid "workspace.sidebar.layers.components" -msgstr "组件" - -msgid "workspace.sidebar.layers.frames" -msgstr "画板" - -msgid "workspace.sidebar.layers.groups" -msgstr "编组" - -msgid "workspace.sidebar.layers.images" -msgstr "图片" - -msgid "workspace.sidebar.layers.masks" -msgstr "遮罩" - -msgid "workspace.sidebar.layers.search" -msgstr "搜索图层" - -msgid "workspace.sidebar.layers.shapes" -msgstr "形状" - -msgid "workspace.sidebar.layers.texts" -msgstr "文本" - -#: src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs, -#: src/app/main/ui/inspect/attributes/svg.cljs -msgid "workspace.sidebar.options.svg-attrs.title" -msgstr "已导入SVG属性" - -#: src/app/main/ui/workspace/sidebar/sitemap.cljs -msgid "workspace.sidebar.sitemap" -msgstr "页面" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.sitemap" -msgstr "站点地图" - -#: src/app/main/ui/workspace/left_toolbar.cljs -msgid "workspace.toolbar.assets" -msgstr "素材" - -#: src/app/main/ui/workspace/left_toolbar.cljs -msgid "workspace.toolbar.color-palette" -msgstr "调色盘(%s)" - -#: src/app/main/ui/workspace/left_toolbar.cljs -msgid "workspace.toolbar.comments" -msgstr "评论(%s)" - -#: src/app/main/ui/workspace/left_toolbar.cljs -msgid "workspace.toolbar.curve" -msgstr "曲线(%s)" - -#: src/app/main/ui/workspace/left_toolbar.cljs -msgid "workspace.toolbar.ellipse" -msgstr "椭圆(%s)" - -#: src/app/main/ui/workspace/left_toolbar.cljs -msgid "workspace.toolbar.frame" -msgstr "画板(%s)" - -#: src/app/main/ui/workspace/left_toolbar.cljs -msgid "workspace.toolbar.image" -msgstr "图片(%s)" - -#: src/app/main/ui/workspace/left_toolbar.cljs -msgid "workspace.toolbar.move" -msgstr "移动 (%s)" - -#: src/app/main/ui/workspace/left_toolbar.cljs -msgid "workspace.toolbar.path" -msgstr "路径(%s)" - -#: src/app/main/ui/workspace/left_toolbar.cljs -msgid "workspace.toolbar.rect" -msgstr "矩形(%s)" - -#: src/app/main/ui/workspace/left_toolbar.cljs -msgid "workspace.toolbar.shortcuts" -msgstr "快捷键 (%s)" - -#: src/app/main/ui/workspace/left_toolbar.cljs -msgid "workspace.toolbar.text" -msgstr "文本(%s)" - -#: src/app/main/ui/workspace/left_toolbar.cljs -msgid "workspace.toolbar.text-palette" -msgstr "排字式样 (%s)" - -msgid "workspace.top-bar.read-only.done" -msgstr "完成" - -#: src/app/main/ui/workspace/sidebar/history.cljs -msgid "workspace.undo.empty" -msgstr "目前没有历史修改" - -#: src/app/main/ui/workspace/sidebar/history.cljs -msgid "workspace.undo.entry.delete" -msgstr "%s已删除" - -#: src/app/main/ui/workspace/sidebar/history.cljs -msgid "workspace.undo.entry.modify" -msgstr "%s已修改" - -#: src/app/main/ui/workspace/sidebar/history.cljs -msgid "workspace.undo.entry.move" -msgstr "对象已移动" - -msgid "workspace.undo.entry.multiple.circle" -msgstr "圆" - -msgid "workspace.undo.entry.multiple.color" -msgstr "颜色素材" - -msgid "workspace.undo.entry.multiple.component" -msgstr "组件" - -msgid "workspace.undo.entry.multiple.curve" -msgstr "曲线" - -msgid "workspace.undo.entry.multiple.frame" -msgstr "画板" - -msgid "workspace.undo.entry.multiple.group" -msgstr "编组" - -msgid "workspace.undo.entry.multiple.media" -msgstr "图形素材" - -msgid "workspace.undo.entry.multiple.multiple" -msgstr "对象" - -msgid "workspace.undo.entry.multiple.page" -msgstr "页面" - -msgid "workspace.undo.entry.multiple.path" -msgstr "路径" - -msgid "workspace.undo.entry.multiple.rect" -msgstr "矩形" - -msgid "workspace.undo.entry.multiple.shape" -msgstr "形状" - -msgid "workspace.undo.entry.multiple.text" -msgstr "文本" - -msgid "workspace.undo.entry.multiple.typography" -msgstr "排版素材" - -#: src/app/main/ui/workspace/sidebar/history.cljs -msgid "workspace.undo.entry.new" -msgstr "新建%s" - -msgid "workspace.undo.entry.single.circle" -msgstr "圆" - -msgid "workspace.undo.entry.single.color" -msgstr "颜色素材" - -msgid "workspace.undo.entry.single.component" -msgstr "组件" - -msgid "workspace.undo.entry.single.curve" -msgstr "曲线" - -msgid "workspace.undo.entry.single.frame" -msgstr "画板" - -msgid "workspace.undo.entry.single.group" -msgstr "编组" - -msgid "workspace.undo.entry.single.image" -msgstr "图片" - -msgid "workspace.undo.entry.single.media" -msgstr "图形素材" - -msgid "workspace.undo.entry.single.multiple" -msgstr "对象" - -msgid "workspace.undo.entry.single.page" -msgstr "页面" - -msgid "workspace.undo.entry.single.path" -msgstr "路径" - -msgid "workspace.undo.entry.single.rect" -msgstr "矩形" - -msgid "workspace.undo.entry.single.shape" -msgstr "形状" - -msgid "workspace.undo.entry.single.text" -msgstr "文本" - -msgid "workspace.undo.entry.single.typography" -msgstr "排版素材" - -#: src/app/main/ui/workspace/sidebar/history.cljs -msgid "workspace.undo.entry.unknown" -msgstr "操作覆盖%s" - -#: src/app/main/ui/workspace/sidebar/history.cljs -msgid "workspace.undo.title" -msgstr "历史" - -#: src/app/main/data/workspace/libraries.cljs -msgid "workspace.updates.dismiss" -msgstr "忽略" - -#: src/app/main/data/workspace/libraries.cljs -msgid "workspace.updates.more-info" -msgstr "更多信息" - -#: src/app/main/data/workspace/libraries.cljs -msgid "workspace.updates.there-are-updates" -msgstr "共享库有更新" - -#: src/app/main/data/workspace/libraries.cljs -msgid "workspace.updates.update" -msgstr "更新" - -msgid "workspace.viewport.click-to-close-path" -msgstr "单击以闭合路径" - -#: src/app/main/ui/auth/login.cljs -msgid "auth.login-account-title" -msgstr "登录我的账号" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.library-updates" -msgstr "共享库更新" - -msgid "workspace.options.component.swap" -msgstr "交换组件" - -msgid "workspace.options.guides.title" -msgstr "参考线" - -#: src/app/main/ui/workspace/header.cljs, -#: src/app/main/ui/dashboard/file_menu.cljs -msgid "modals.delete-unpublish-shared-confirm.activated.hint" -msgid_plural "modals.delete-unpublish-shared-confirm.activated.hint" -msgstr[0] "" -"这个文件中被其他文件引用的素材依然在那(其他文件的现有设计不会被破坏)。" -msgstr[1] "" -"这些文件中被其他文件引用的素材依然在那(其他文件的现有设计不会被破坏)。" - -msgid "dashboard.import.analyze-error.components-v2" -msgstr "文件已启用“组件v2”功能,但这个团队尚未支持该功能。" - -msgid "workspace.header.menu.toggle-dark-theme" -msgstr "切换到深色主题" - -msgid "workspace.header.menu.toggle-light-theme" -msgstr "切换到浅色主题" - -msgid "media.keep-aspect-ratio" -msgstr "保持宽高比" - -msgid "onboarding.team-modal.team-definition" -msgstr "团队是什么?" - -#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs -msgid "settings.select-this-color" -msgstr "选择使用此样式的项目" - -msgid "shortcuts.toggle-snap-guides" -msgstr "吸附到参考线" - -msgid "shortcuts.toggle-snap-ruler-guide" -msgstr "吸附到标尺参考线" - -msgid "shortcuts.toggle-theme" -msgstr "更改主题" - -#: src/app/main/ui/workspace/sidebar/assets/common.cljs +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:221 msgid "workspace.assets.sidebar.components" msgid_plural "workspace.assets.sidebar.components" msgstr[0] "1个组件" msgstr[1] "%s个组件" +#: src/app/main/ui/workspace/sidebar/assets.cljs:193 +msgid "workspace.assets.sort" +msgstr "排序" + +#: src/app/main/ui/dashboard/grid.cljs:134, src/app/main/ui/dashboard/grid.cljs:189, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:397, src/app/main/ui/workspace/sidebar/assets.cljs:155 +msgid "workspace.assets.typography" +msgstr "排版" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused +msgid "workspace.assets.typography.font-id" +msgstr "字体" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:505 +msgid "workspace.assets.typography.font-size" +msgstr "尺寸" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:501 +msgid "workspace.assets.typography.font-variant-id" +msgstr "变体" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:523 +msgid "workspace.assets.typography.go-to-edit" +msgstr "前往样式库文件进行编辑" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:513 +msgid "workspace.assets.typography.letter-spacing" +msgstr "字距" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:509 +msgid "workspace.assets.typography.line-height" +msgstr "行高" + +#: src/app/main/ui/dashboard/grid.cljs:199, src/app/main/ui/workspace/libraries.cljs:461, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:464, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:489, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:596, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:615 +msgid "workspace.assets.typography.sample" +msgstr "Ag" + +#, unused +msgid "workspace.assets.typography.text-styles" +msgstr "文本样式" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:517 +msgid "workspace.assets.typography.text-transform" +msgstr "文本变换" + +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:66 +msgid "workspace.assets.ungroup" +msgstr "解组" + +#: src/app/main/ui/workspace/context_menu.cljs:634 msgid "workspace.context-menu.grid-cells.area" msgstr "新建区域" +#: src/app/main/ui/workspace/context_menu.cljs:637 msgid "workspace.context-menu.grid-cells.create-board" msgstr "新建画板" +#: src/app/main/ui/workspace/context_menu.cljs:629 msgid "workspace.context-menu.grid-cells.merge" msgstr "合并网格" +#: src/app/main/ui/workspace/context_menu.cljs:594 msgid "workspace.context-menu.grid-track.column.add-after" msgstr "在右侧添加一列" +#: src/app/main/ui/workspace/context_menu.cljs:593 +msgid "workspace.context-menu.grid-track.column.add-before" +msgstr "在左侧添加一列" + +#: src/app/main/ui/workspace/context_menu.cljs:595 +msgid "workspace.context-menu.grid-track.column.delete" +msgstr "删除此列" + +#: src/app/main/ui/workspace/context_menu.cljs:596 msgid "workspace.context-menu.grid-track.column.delete-shapes" msgstr "删除此列及其内容" +#: src/app/main/ui/workspace/context_menu.cljs:592 msgid "workspace.context-menu.grid-track.column.duplicate" msgstr "复制此列" +#: src/app/main/ui/workspace/context_menu.cljs:601 msgid "workspace.context-menu.grid-track.row.add-after" msgstr "在下方添加一行" +#: src/app/main/ui/workspace/context_menu.cljs:600 +msgid "workspace.context-menu.grid-track.row.add-before" +msgstr "在上方添加一行" + +#: src/app/main/ui/workspace/context_menu.cljs:602 +msgid "workspace.context-menu.grid-track.row.delete" +msgstr "删除此行" + +#: src/app/main/ui/workspace/context_menu.cljs:603 +msgid "workspace.context-menu.grid-track.row.delete-shapes" +msgstr "删除此行及其内容" + +#: src/app/main/ui/workspace/context_menu.cljs:599 +msgid "workspace.context-menu.grid-track.row.duplicate" +msgstr "复制此行" + +#: src/app/main/ui/workspace/sidebar/layers.cljs:525 +msgid "workspace.focus.focus-mode" +msgstr "禅模式" + +#: src/app/main/ui/workspace/context_menu.cljs:287, src/app/main/ui/workspace/context_menu.cljs:553 +msgid "workspace.focus.focus-off" +msgstr "退出禅模式" + +#: src/app/main/ui/workspace/context_menu.cljs:286 +msgid "workspace.focus.focus-on" +msgstr "关注" + +#, unused +msgid "workspace.focus.selection" +msgstr "选择" + +#: src/app/util/color.cljs:34 +msgid "workspace.gradients.linear" +msgstr "线性渐变" + +#: src/app/util/color.cljs:35 +msgid "workspace.gradients.radial" +msgstr "放射渐变" + +#: src/app/main/ui/workspace/main_menu.cljs:238 +msgid "workspace.header.menu.disable-dynamic-alignment" +msgstr "禁用动态对齐" + +#: src/app/main/ui/workspace/main_menu.cljs:192 +msgid "workspace.header.menu.disable-scale-content" +msgstr "禁用比例尺" + #: src/app/main/ui/workspace/header.cljs +#, unused +msgid "workspace.header.menu.disable-scale-text" +msgstr "禁用缩放文本" + +#: src/app/main/ui/workspace/main_menu.cljs:223 +msgid "workspace.header.menu.disable-snap-guides" +msgstr "禁用与参考线对齐" + +#: src/app/main/ui/workspace/main_menu.cljs:253 +msgid "workspace.header.menu.disable-snap-pixel-grid" +msgstr "禁用像素对齐" + +#: src/app/main/ui/workspace/main_menu.cljs:207 +msgid "workspace.header.menu.disable-snap-ruler-guides" +msgstr "禁用“吸附到标尺参考线”" + +#: src/app/main/ui/workspace/main_menu.cljs:239 +msgid "workspace.header.menu.enable-dynamic-alignment" +msgstr "启用动态对齐" + +#: src/app/main/ui/workspace/main_menu.cljs:193 +msgid "workspace.header.menu.enable-scale-content" +msgstr "启用比例尺" + +#: src/app/main/ui/workspace/header.cljs +#, unused +msgid "workspace.header.menu.enable-scale-text" +msgstr "启用缩放文本" + +#: src/app/main/ui/workspace/main_menu.cljs:224 +msgid "workspace.header.menu.enable-snap-guides" +msgstr "与参考线对齐" + +#: src/app/main/ui/workspace/main_menu.cljs:254 +msgid "workspace.header.menu.enable-snap-pixel-grid" +msgstr "启用像素对齐" + +#: src/app/main/ui/workspace/main_menu.cljs:208 msgid "workspace.header.menu.enable-snap-ruler-guides" msgstr "启用“吸附到标尺参考线”" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:382 +msgid "workspace.header.menu.hide-artboard-names" +msgstr "隐藏画板名称" + +#: src/app/main/ui/workspace/main_menu.cljs:336 +msgid "workspace.header.menu.hide-guides" +msgstr "隐藏参考线" + +#: src/app/main/ui/workspace/main_menu.cljs:353 +msgid "workspace.header.menu.hide-palette" +msgstr "隐藏调色盘" + +#: src/app/main/ui/workspace/main_menu.cljs:394 +msgid "workspace.header.menu.hide-pixel-grid" +msgstr "隐藏像素网格" + +#: src/app/main/ui/workspace/main_menu.cljs:320 +msgid "workspace.header.menu.hide-rules" +msgstr "隐藏标尺" + +#: src/app/main/ui/workspace/main_menu.cljs:367 +msgid "workspace.header.menu.hide-textpalette" +msgstr "隐藏字体调色板" + +#: src/app/main/ui/workspace/main_menu.cljs:731 +msgid "workspace.header.menu.option.edit" +msgstr "编辑" + +#: src/app/main/ui/workspace/main_menu.cljs:720 +msgid "workspace.header.menu.option.file" +msgstr "文件" + +#: src/app/main/ui/workspace/main_menu.cljs:777 +msgid "workspace.header.menu.option.help-info" +msgstr "帮助和信息" + +#: src/app/main/ui/workspace/main_menu.cljs:753 +msgid "workspace.header.menu.option.preferences" +msgstr "首选项" + +#: src/app/main/ui/workspace/main_menu.cljs:742 +msgid "workspace.header.menu.option.view" +msgstr "视图" + +#: src/app/main/ui/workspace/main_menu.cljs:459 +msgid "workspace.header.menu.redo" +msgstr "重做" + +#: src/app/main/ui/workspace/main_menu.cljs:432 +msgid "workspace.header.menu.select-all" +msgstr "全选" + +#: src/app/main/ui/workspace/main_menu.cljs:383 +msgid "workspace.header.menu.show-artboard-names" +msgstr "显示画板名称" + +#: src/app/main/ui/workspace/main_menu.cljs:337 msgid "workspace.header.menu.show-guides" msgstr "显示参考线" +#: src/app/main/ui/workspace/main_menu.cljs:354 +msgid "workspace.header.menu.show-palette" +msgstr "显示调色盘" + +#: src/app/main/ui/workspace/main_menu.cljs:395 +msgid "workspace.header.menu.show-pixel-grid" +msgstr "显示像素网格" + +#: src/app/main/ui/workspace/main_menu.cljs:321 +msgid "workspace.header.menu.show-rules" +msgstr "显示标尺" + +#: src/app/main/ui/workspace/main_menu.cljs:368 +msgid "workspace.header.menu.show-textpalette" +msgstr "显示字体调色板" + +#: src/app/main/ui/workspace/main_menu.cljs:279 +msgid "workspace.header.menu.toggle-dark-theme" +msgstr "切换到深色主题" + +#: src/app/main/ui/workspace/main_menu.cljs:278 +msgid "workspace.header.menu.toggle-light-theme" +msgstr "切换到浅色主题" + +#: src/app/main/ui/workspace/main_menu.cljs:446 +msgid "workspace.header.menu.undo" +msgstr "撤销" + +#: src/app/main/ui/viewer/header.cljs:98, src/app/main/ui/workspace/right_header.cljs:120 +msgid "workspace.header.reset-zoom" +msgstr "重置" + +#: src/app/main/ui/workspace/header.cljs +#, unused +msgid "workspace.header.save-error" +msgstr "保存时发生错误" + +#: src/app/main/ui/workspace/right_header.cljs:52 +msgid "workspace.header.saved" +msgstr "已保存" + +#: src/app/main/ui/workspace/header.cljs +#, unused +msgid "workspace.header.saving" +msgstr "正在保存" + +#: src/app/main/ui/workspace/right_header.cljs:42, src/app/main/ui/workspace/right_header.cljs:47 +msgid "workspace.header.unsaved" +msgstr "未保存的修改" + +#: src/app/main/ui/workspace/right_header.cljs:239 +msgid "workspace.header.viewer" +msgstr "预览模式(%s)" + +#: src/app/main/ui/viewer/header.cljs:79, src/app/main/ui/workspace/right_header.cljs:103 +msgid "workspace.header.zoom" +msgstr "缩放" + +#: src/app/main/ui/viewer/header.cljs:109 +msgid "workspace.header.zoom-fill" +msgstr "填充 - 填充比例" + +#: src/app/main/ui/viewer/header.cljs:102 +msgid "workspace.header.zoom-fit" +msgstr "适合 - 缩小以适合" + +#: src/app/main/ui/workspace/right_header.cljs:123 +msgid "workspace.header.zoom-fit-all" +msgstr "缩放以适应所有" + +#: src/app/main/ui/viewer/header.cljs:116 +msgid "workspace.header.zoom-full-screen" +msgstr "全屏" + +#: src/app/main/ui/workspace/right_header.cljs:130 +msgid "workspace.header.zoom-selected" +msgstr "缩放到选定的位置" + +#: src/app/main/ui/workspace/sidebar/options/menus/grid_cell.cljs:273, src/app/main/ui/workspace/sidebar/options/menus/grid_cell.cljs:275, src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:612 +msgid "workspace.layout_grid.editor.options.edit-grid" +msgstr "编辑网格" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:1280 +msgid "workspace.layout_grid.editor.options.exit" +msgstr "退出" + +#: src/app/main/ui/workspace/viewport/grid_layout_editor.cljs:59 +msgid "workspace.layout_grid.editor.title" +msgstr "编辑网格" + +#: src/app/main/ui/workspace/viewport/grid_layout_editor.cljs:65 +msgid "workspace.layout_grid.editor.top-bar.done" +msgstr "完成" + +#: src/app/main/ui/workspace/viewport/grid_layout_editor.cljs:62 +msgid "workspace.layout_grid.editor.top-bar.locate" +msgstr "定位" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:1306 msgid "workspace.layout_grid.editor.top-bar.locate.tooltip" msgstr "定位网格布局" #: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.unlink-library-btn" -msgstr "断开共享库" +#, unused +msgid "workspace.libraries.add" +msgstr "添加" -msgid "workspace.top-bar.view-only" -msgstr "**检查代码**(仅查看)" +#: src/app/main/ui/workspace/libraries.cljs:80, src/app/main/ui/workspace/libraries.cljs:99 +msgid "workspace.libraries.colors" +msgstr "%s种颜色" -#: src/app/main/ui/auth/login.cljs -msgid "auth.login-tagline" -msgstr "Penpot是一款自由开源的设计工具,用于「设计」和「开发」协同" +#: src/app/main/ui/workspace/color_palette.cljs:126 +msgid "workspace.libraries.colors.empty-palette" +msgstr "你的库中还没有颜色风格" -msgid "modals.move-shared-confirm.accept" -msgid_plural "modals.move-shared-confirm.accept" -msgstr[0] "移动" -msgstr[1] "移动" +#: src/app/main/ui/workspace/text_palette.cljs:150 +msgid "workspace.libraries.colors.empty-typography-palette" +msgstr "你的库中还没有排版风格" -#: src/app/main/data/users.cljs -msgid "errors.email-domain-not-allowed" -msgstr "不允许使用此域名" +#: src/app/main/ui/workspace/color_palette_ctx_menu.cljs:60, src/app/main/ui/workspace/colorpicker/libraries.cljs:73, src/app/main/ui/workspace/text_palette_ctx_menu.cljs:50 +msgid "workspace.libraries.colors.file-library" +msgstr "文档库" -msgid "modals.move-shared-confirm.message" -msgid_plural "modals.move-shared-confirm.message" -msgstr[0] "你确定要移动这个共享库吗?" -msgstr[1] "你确定要移动这些共享库吗?" +#: src/app/main/ui/workspace/colorpicker.cljs +#, unused +msgid "workspace.libraries.colors.hsv" +msgstr "HSV" -msgid "modals.move-shared-confirm.title" -msgid_plural "modals.move-shared-confirm.title" -msgstr[0] "移动共享库" -msgstr[1] "移动共享库" +#: src/app/main/ui/workspace/color_palette_ctx_menu.cljs:82, src/app/main/ui/workspace/colorpicker/libraries.cljs:72 +msgid "workspace.libraries.colors.recent-colors" +msgstr "最近使用的颜色" -msgid "shortcuts.toggle-guides" -msgstr "显示/隐藏参考线" +#: src/app/main/ui/workspace/colorpicker.cljs +#, unused +msgid "workspace.libraries.colors.rgb-complementary" +msgstr "RGB互补" -#: src/app/main/ui/workspace/sidebar/assets.cljs -msgid "workspace.assets.filter" -msgstr "过滤器" +#: src/app/main/ui/workspace/colorpicker.cljs +#, unused +msgid "workspace.libraries.colors.rgba" +msgstr "RGBA" -msgid "shortcuts.toggle-layout-grid" -msgstr "添加/移除网格布局" +#: src/app/main/ui/workspace/colorpicker.cljs:372 +msgid "workspace.libraries.colors.save-color" +msgstr "保存颜色风格" -msgid "shortcuts.toggle-rulers" -msgstr "显示/隐藏标尺" +#: src/app/main/ui/workspace/libraries.cljs:74, src/app/main/ui/workspace/libraries.cljs:91 +msgid "workspace.libraries.components" +msgstr "%s个组件" -#: src/app/main/ui/workspace/sidebar/assets.cljs -msgid "workspace.assets.sort" -msgstr "排序" +#: src/app/main/ui/workspace/libraries.cljs:215 +msgid "workspace.libraries.file-library" +msgstr "文档库" -msgid "workspace.context-menu.grid-track.column.add-before" -msgstr "在左侧添加一列" +#: src/app/main/ui/workspace/libraries.cljs:77, src/app/main/ui/workspace/libraries.cljs:95 +msgid "workspace.libraries.graphics" +msgstr "%s个图形" -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.remove-grid" -msgstr "移除网格布局" +#: src/app/main/ui/workspace/libraries.cljs:209 +msgid "workspace.libraries.in-this-file" +msgstr "本文档中的库" -msgid "workspace.context-menu.grid-track.column.delete" -msgstr "删除此列" - -msgid "workspace.context-menu.grid-track.row.duplicate" -msgstr "复制此行" - -msgid "workspace.context-menu.grid-track.row.add-before" -msgstr "在上方添加一行" - -msgid "workspace.context-menu.grid-track.row.delete" -msgstr "删除此行" - -msgid "workspace.context-menu.grid-track.row.delete-shapes" -msgstr "删除此行及其内容" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.disable-snap-ruler-guides" -msgstr "禁用“吸附到标尺参考线”" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.hide-guides" -msgstr "隐藏参考线" +#: src/app/main/ui/workspace/libraries.cljs:526, src/app/main/ui/workspace/libraries.cljs:531 +msgid "workspace.libraries.libraries" +msgstr "库" #: src/app/main/ui/workspace/libraries.cljs +#, unused +msgid "workspace.libraries.library" +msgstr "库" + +#: src/app/main/ui/workspace/libraries.cljs:382 +msgid "workspace.libraries.library-updates" +msgstr "共享库更新" + +#: src/app/main/ui/workspace/libraries.cljs:290 msgid "workspace.libraries.loading" msgstr "加载中…" -#: src/app/main/ui/workspace/libraries.cljs +#: src/app/main/ui/workspace/libraries.cljs:380 +msgid "workspace.libraries.no-libraries-need-sync" +msgstr "没有需要更新的共享库" + +#: src/app/main/ui/workspace/libraries.cljs:299 +msgid "workspace.libraries.no-matches-for" +msgstr "没有找到“%s”的匹配项" + +#: src/app/main/ui/workspace/libraries.cljs:296 +msgid "workspace.libraries.no-shared-libraries-available" +msgstr "没有可用的共享库" + +#: src/app/main/ui/workspace/libraries.cljs:260 +msgid "workspace.libraries.search-shared-libraries" +msgstr "搜索共享库" + +#: src/app/main/ui/workspace/libraries.cljs:256 +msgid "workspace.libraries.shared-libraries" +msgstr "共享库" + +#: src/app/main/ui/workspace/libraries.cljs:282 msgid "workspace.libraries.shared-library-btn" msgstr "连接共享库" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:308 +msgid "workspace.libraries.text.multiple-typography" +msgstr "复合排版" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:311 +msgid "workspace.libraries.text.multiple-typography-tooltip" +msgstr "断开所有排版的链接" + +#: src/app/main/ui/workspace/libraries.cljs:83, src/app/main/ui/workspace/libraries.cljs:103 +msgid "workspace.libraries.typography" +msgstr "%s个排版" + +#: src/app/main/ui/workspace/libraries.cljs:249 +msgid "workspace.libraries.unlink-library-btn" +msgstr "断开共享库" + +#: src/app/main/ui/workspace/libraries.cljs:402 +msgid "workspace.libraries.update" +msgstr "更新" + +#: src/app/main/ui/workspace/libraries.cljs:477 +msgid "workspace.libraries.update.see-all-changes" +msgstr "查看所有修改" + +#: src/app/main/ui/workspace/libraries.cljs:536 +msgid "workspace.libraries.updates" +msgstr "更新" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:737 +msgid "workspace.options.add-interaction" +msgstr "单击 + 按钮以添加交互。" + +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:86, src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:102 +msgid "workspace.options.blur-options.title" +msgstr "模糊" + +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:85 +msgid "workspace.options.blur-options.title.group" +msgstr "编组模糊" + +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:84 +msgid "workspace.options.blur-options.title.multiple" +msgstr "选项模糊" + +#: src/app/main/ui/workspace/sidebar/options/page.cljs:32, src/app/main/ui/workspace/sidebar/options/page.cljs:39 +msgid "workspace.options.canvas-background" +msgstr "画布背景" + +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:548 +msgid "workspace.options.clip-content" +msgstr "剪辑内容" + +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:600, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:605 +msgid "workspace.options.component" +msgstr "组件" + +#: src/app/main/ui/viewer/inspect/annotation.cljs:19, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:181 +msgid "workspace.options.component.annotation" +msgstr "注释" + +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:610 +msgid "workspace.options.component.copy" +msgstr "复制" + +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:173 +msgid "workspace.options.component.create-annotation" +msgstr "创建注释" + +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:172 +msgid "workspace.options.component.edit-annotation" +msgstr "编辑注释" + +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:427 +msgid "workspace.options.component.swap" +msgstr "交换组件" + +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:471 +msgid "workspace.options.component.swap.empty" +msgstr "你的库中还没有素材" + +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:163 +msgid "workspace.options.constraints" +msgstr "限制条件" + +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:150 +msgid "workspace.options.constraints.bottom" +msgstr "底部固定" + +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:141, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:152 +msgid "workspace.options.constraints.center" +msgstr "居中" + +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:229 +msgid "workspace.options.constraints.fix-when-scrolling" +msgstr "滚动时保持固定" + +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:138 +msgid "workspace.options.constraints.left" +msgstr "靠左固定" + +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:140 +msgid "workspace.options.constraints.leftright" +msgstr "左右固定" + +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:139 +msgid "workspace.options.constraints.right" +msgstr "靠右固定" + +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:142, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:153 +msgid "workspace.options.constraints.scale" +msgstr "跟随缩放" + +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:149 +msgid "workspace.options.constraints.top" +msgstr "顶部固定" + +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:151 +msgid "workspace.options.constraints.topbottom" +msgstr "上下固定" + +#: src/app/main/ui/workspace/sidebar/options.cljs:112 +msgid "workspace.options.design" +msgstr "设计" + +#: src/app/main/ui/viewer/inspect/exports.cljs:139 +msgid "workspace.options.export" +msgstr "导出" + +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs +#, unused +msgid "workspace.options.export-multiple" +msgstr "导出已选择" + +#: src/app/main/ui/viewer/inspect/exports.cljs:195, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:237 +msgid "workspace.options.export-object" +msgid_plural "workspace.options.export-object" +msgstr[0] "输出1个元素" +msgstr[1] "输出%s元素" + +#: src/app/main/ui/viewer/inspect/exports.cljs:178, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:219 +msgid "workspace.options.export.suffix" +msgstr "后缀" + +#: src/app/main/ui/export.cljs:240 +msgid "workspace.options.exporting-complete" +msgstr "导出完成" + +#: src/app/main/ui/export.cljs:172, src/app/main/ui/export.cljs:241, src/app/main/ui/viewer/inspect/exports.cljs:194, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:236 +msgid "workspace.options.exporting-object" +msgstr "正在导出…" + +#: src/app/main/ui/export.cljs:239 +msgid "workspace.options.exporting-object-error" +msgstr "导出失败" + +#: src/app/main/ui/export.cljs:242 +msgid "workspace.options.exporting-object-slow" +msgstr "导出速度意外缓慢" + +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:49, src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:174 +msgid "workspace.options.fill" +msgstr "填充" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:178 +msgid "workspace.options.flows.add-flow-start" +msgstr "增加流程起点" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:174 +msgid "workspace.options.flows.flow" +msgstr "流程" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#, unused +msgid "workspace.options.flows.flow-start" +msgstr "流程起点" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:161 +msgid "workspace.options.flows.flow-starts" +msgstr "所有流程起点" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:29 +msgid "workspace.options.grid.auto" +msgstr "自动" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:157 +msgid "workspace.options.grid.column" +msgstr "列" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused +msgid "workspace.options.grid.grid-title" +msgstr "网格" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:196, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:237 +msgid "workspace.options.grid.params.color" +msgstr "颜色" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused +msgid "workspace.options.grid.params.columns" +msgstr "列" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:259 +msgid "workspace.options.grid.params.gutter" +msgstr "栅格间隔" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:246 +msgid "workspace.options.grid.params.height" +msgstr "高" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:270 +msgid "workspace.options.grid.params.margin" +msgstr "外边距" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused +msgid "workspace.options.grid.params.rows" +msgstr "行" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:216, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:290 +msgid "workspace.options.grid.params.set-default" +msgstr "设为默认" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused +msgid "workspace.options.grid.params.size" +msgstr "尺寸" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused +msgid "workspace.options.grid.params.type" +msgstr "类型" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:231 +msgid "workspace.options.grid.params.type.bottom" +msgstr "底" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:229 +msgid "workspace.options.grid.params.type.center" +msgstr "居中" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:228 +msgid "workspace.options.grid.params.type.left" +msgstr "左" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:232 +msgid "workspace.options.grid.params.type.right" +msgstr "右" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:225 +msgid "workspace.options.grid.params.type.stretch" +msgstr "拉伸" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:227 +msgid "workspace.options.grid.params.type.top" +msgstr "顶" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:211, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:288 +msgid "workspace.options.grid.params.use-default" +msgstr "使用默认" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:247 +msgid "workspace.options.grid.params.width" +msgstr "宽" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:158 +msgid "workspace.options.grid.row" +msgstr "行" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:156 +msgid "workspace.options.grid.square" +msgstr "正方形" + +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:48 +msgid "workspace.options.group-fill" +msgstr "编组填充" + +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:42 +msgid "workspace.options.group-stroke" +msgstr "编组边框" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:310 +msgid "workspace.options.guides.title" +msgstr "参考线" + +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:406 +msgid "workspace.options.height" +msgstr "高度" + +#: src/app/main/ui/workspace/sidebar/options.cljs:161 +msgid "workspace.options.inspect" +msgstr "检查" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:468 +msgid "workspace.options.interaction-action" +msgstr "执行" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:41, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:367 +msgid "workspace.options.interaction-after-delay" +msgstr "延迟后" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:614 +msgid "workspace.options.interaction-animation" +msgstr "动画" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:406 +msgid "workspace.options.interaction-animation-dissolve" +msgstr "解散" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:405 +msgid "workspace.options.interaction-animation-none" +msgstr "无" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:412 +msgid "workspace.options.interaction-animation-push" +msgstr "推送" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:407 +msgid "workspace.options.interaction-animation-slide" +msgstr "滑动" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:391 +msgid "workspace.options.interaction-auto" +msgstr "自动" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:604 +msgid "workspace.options.interaction-background" +msgstr "添加背景覆盖" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:590 +msgid "workspace.options.interaction-close-outside" +msgstr "点击外部时关闭" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:372 +msgid "workspace.options.interaction-close-overlay" +msgstr "关闭覆盖" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:56 +msgid "workspace.options.interaction-close-overlay-dest" +msgstr "关闭遮罩层: %s" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:456 +msgid "workspace.options.interaction-delay" +msgstr "延迟" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:478 +msgid "workspace.options.interaction-destination" +msgstr "目的地" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:661 +msgid "workspace.options.interaction-duration" +msgstr "持续时间" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:674 +msgid "workspace.options.interaction-easing" +msgstr "平滑" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:416 +msgid "workspace.options.interaction-easing-ease" +msgstr "缓解" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:417 +msgid "workspace.options.interaction-easing-ease-in" +msgstr "缓入" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:419 +msgid "workspace.options.interaction-easing-ease-in-out" +msgstr "缓进缓出" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:418 +msgid "workspace.options.interaction-easing-ease-out" +msgstr "缓出" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:415 +msgid "workspace.options.interaction-easing-linear" +msgstr "线性" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#, unused +msgid "workspace.options.interaction-in" +msgstr "在" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:39, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:364 +msgid "workspace.options.interaction-mouse-enter" +msgstr "鼠标进入" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:40, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:365 +msgid "workspace.options.interaction-mouse-leave" +msgstr "鼠标离开" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:458, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:459, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:464, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:663, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:665, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:669 +msgid "workspace.options.interaction-ms" +msgstr "ms" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:369 +msgid "workspace.options.interaction-navigate-to" +msgstr "导航至" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:50 +msgid "workspace.options.interaction-navigate-to-dest" +msgstr "导航到: %s" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:51, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:53, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:55, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:380 +msgid "workspace.options.interaction-none" +msgstr "(未设定)" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:691 +msgid "workspace.options.interaction-offset-effect" +msgstr "偏移效果" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:35, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:360 +msgid "workspace.options.interaction-on-click" +msgstr "点击时" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:370 +msgid "workspace.options.interaction-open-overlay" +msgstr "打开叠加层" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:52 +msgid "workspace.options.interaction-open-overlay-dest" +msgstr "打开覆盖:%s" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:59, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:374 +msgid "workspace.options.interaction-open-url" +msgstr "打开网址" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#, unused +msgid "workspace.options.interaction-out" +msgstr "外" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:403 +msgid "workspace.options.interaction-pos-bottom-center" +msgstr "底部居中" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:401 +msgid "workspace.options.interaction-pos-bottom-left" +msgstr "左下角" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:402 +msgid "workspace.options.interaction-pos-bottom-right" +msgstr "右下角" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:397 +msgid "workspace.options.interaction-pos-center" +msgstr "居中" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:396 +msgid "workspace.options.interaction-pos-manual" +msgstr "手册" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:400 +msgid "workspace.options.interaction-pos-top-center" +msgstr "顶部居中" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:398 +msgid "workspace.options.interaction-pos-top-left" +msgstr "左上角" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:399 +msgid "workspace.options.interaction-pos-top-right" +msgstr "右上角" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:524 +msgid "workspace.options.interaction-position" +msgstr "位置" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:494 +msgid "workspace.options.interaction-preserve-scroll" +msgstr "保留滚动位置" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:58, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:373 +msgid "workspace.options.interaction-prev-screen" +msgstr "上一个屏幕" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:515 +msgid "workspace.options.interaction-relative-to" +msgstr "相对于" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:57, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:379, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:393, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:394 +msgid "workspace.options.interaction-self" +msgstr "自己" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:371 +msgid "workspace.options.interaction-toggle-overlay" +msgstr "切换覆盖层" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:54 +msgid "workspace.options.interaction-toggle-overlay-dest" +msgstr "切换覆盖:%s" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:445 +msgid "workspace.options.interaction-trigger" +msgstr "触发器" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:503 +msgid "workspace.options.interaction-url" +msgstr "URL" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:37, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:362 +msgid "workspace.options.interaction-while-hovering" +msgstr "悬停时" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:38, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:363 +msgid "workspace.options.interaction-while-pressing" +msgstr "按下时" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:724 +msgid "workspace.options.interactions" +msgstr "交互" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:137 +msgid "workspace.options.layer-options.blend-mode.color" +msgstr "颜色" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:126 +msgid "workspace.options.layer-options.blend-mode.color-burn" +msgstr "颜色加深" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:129 +msgid "workspace.options.layer-options.blend-mode.color-dodge" +msgstr "颜色减淡" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:124 +msgid "workspace.options.layer-options.blend-mode.darken" +msgstr "变暗" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:133 +msgid "workspace.options.layer-options.blend-mode.difference" +msgstr "差值" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:134 +msgid "workspace.options.layer-options.blend-mode.exclusion" +msgstr "排除" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:132 +msgid "workspace.options.layer-options.blend-mode.hard-light" +msgstr "强光" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:135 +msgid "workspace.options.layer-options.blend-mode.hue" +msgstr "色相" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:127 +msgid "workspace.options.layer-options.blend-mode.lighten" +msgstr "变亮" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:138 +msgid "workspace.options.layer-options.blend-mode.luminosity" +msgstr "亮度" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:125 +msgid "workspace.options.layer-options.blend-mode.multiply" +msgstr "正片叠底" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:123 +msgid "workspace.options.layer-options.blend-mode.normal" +msgstr "正常" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:130 +msgid "workspace.options.layer-options.blend-mode.overlay" +msgstr "叠加" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:136 +msgid "workspace.options.layer-options.blend-mode.saturation" +msgstr "饱和度" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:128 +msgid "workspace.options.layer-options.blend-mode.screen" +msgstr "滤色" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:131 +msgid "workspace.options.layer-options.blend-mode.soft-light" +msgstr "柔光" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#, unused +msgid "workspace.options.layer-options.title" +msgstr "图层" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#, unused +msgid "workspace.options.layer-options.title.group" +msgstr "图层组" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#, unused +msgid "workspace.options.layer-options.title.multiple" +msgstr "已选中的图层" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused +msgid "workspace.options.layout-item.advanced-ops" +msgstr "高级选项" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:564 +msgid "workspace.options.layout-item.layout-item-max-h" +msgstr "最大高度" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:531 +msgid "workspace.options.layout-item.layout-item-max-w" +msgstr "最大宽度" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:548 +msgid "workspace.options.layout-item.layout-item-min-h" +msgstr "最小高度" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:515 +msgid "workspace.options.layout-item.layout-item-min-w" +msgstr "最小宽度" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused +msgid "workspace.options.layout-item.title.layout-item-max-h" +msgstr "最大高度" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused +msgid "workspace.options.layout-item.title.layout-item-max-w" +msgstr "最大宽度" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused +msgid "workspace.options.layout-item.title.layout-item-min-h" +msgstr "最小高度" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused +msgid "workspace.options.layout-item.title.layout-item-min-w" +msgstr "最小宽度" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused +msgid "workspace.options.layout.bottom" +msgstr "底部" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused +msgid "workspace.options.layout.direction.column" +msgstr "列" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused +msgid "workspace.options.layout.direction.column-reverse" +msgstr "反向列" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused +msgid "workspace.options.layout.direction.row" +msgstr "行" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused +msgid "workspace.options.layout.direction.row-reverse" +msgstr "反向行" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused +msgid "workspace.options.layout.gap" +msgstr "差距" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused +msgid "workspace.options.layout.left" +msgstr "左" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused +msgid "workspace.options.layout.margin" +msgstr "外边距" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused +msgid "workspace.options.layout.margin-all" +msgstr "所有方向" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused +msgid "workspace.options.layout.margin-simple" +msgstr "简易外边距" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused +msgid "workspace.options.layout.packed" +msgstr "收起" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused +msgid "workspace.options.layout.padding" +msgstr "内边距" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused +msgid "workspace.options.layout.padding-all" +msgstr "所有方向" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused +msgid "workspace.options.layout.padding-simple" +msgstr "简易内边距" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused +msgid "workspace.options.layout.right" +msgstr "右" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused +msgid "workspace.options.layout.space-around" +msgstr "周围留空" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused +msgid "workspace.options.layout.space-between" +msgstr "间隔留空" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused +msgid "workspace.options.layout.top" +msgstr "顶部" + +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:146 +msgid "workspace.options.more-colors" +msgstr "更多颜色" + +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:123 +msgid "workspace.options.more-lib-colors" +msgstr "更多共享库颜色" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:161 +msgid "workspace.options.opacity" +msgstr "不透明度" + +#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#, unused +msgid "workspace.options.position" +msgstr "位置" + +#: src/app/main/ui/workspace/sidebar/options.cljs:157 +msgid "workspace.options.prototype" +msgstr "原型" + +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:469, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:481 +msgid "workspace.options.radius" +msgstr "圆角" + +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:513 +msgid "workspace.options.radius-bottom-left" +msgstr "左下角" + +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:522 +msgid "workspace.options.radius-bottom-right" +msgstr "右下角" + +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:495 +msgid "workspace.options.radius-top-left" +msgstr "左上角" + +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:504 +msgid "workspace.options.radius-top-right" +msgstr "右上角" + +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:532 +msgid "workspace.options.radius.all-corners" +msgstr "所有角" + +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:533 +msgid "workspace.options.radius.single-corners" +msgstr "独立的角" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:183 +msgid "workspace.options.recent-fonts" +msgstr "最近的" + +#: src/app/main/ui/export.cljs:284 +msgid "workspace.options.retry" +msgstr "重试" + +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:451 +msgid "workspace.options.rotation" +msgstr "旋转" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:180 +msgid "workspace.options.search-font" +msgstr "搜索字体" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:741 +msgid "workspace.options.select-a-shape" +msgstr "选择一个形状、画板或编组,拖至另一个画板,以创建关联。" + +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:105 +msgid "workspace.options.selection-color" +msgstr "已选颜色" + +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:47 +msgid "workspace.options.selection-fill" +msgstr "选项填充" + +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:41 +msgid "workspace.options.selection-stroke" +msgstr "选项边框" + +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:40, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:198, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:200 +msgid "workspace.options.shadow-options.blur" +msgstr "模糊" + +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:238 +msgid "workspace.options.shadow-options.color" +msgstr "阴影颜色" + +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:144 +msgid "workspace.options.shadow-options.drop-shadow" +msgstr "外阴影" + +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:145 +msgid "workspace.options.shadow-options.inner-shadow" +msgstr "内阴影" + +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:38, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:186 +msgid "workspace.options.shadow-options.offsetx" +msgstr "X" + +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:39, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:224 +msgid "workspace.options.shadow-options.offsety" +msgstr "Y" + +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:41, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:211, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:213 +msgid "workspace.options.shadow-options.spread" +msgstr "展开" + +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:296 +msgid "workspace.options.shadow-options.title" +msgstr "阴影" + +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:295 +msgid "workspace.options.shadow-options.title.group" +msgstr "编组阴影" + +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:294 +msgid "workspace.options.shadow-options.title.multiple" +msgstr "选项阴影" + +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:193 +msgid "workspace.options.show-fill-on-export" +msgstr "在导出中显示" + +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:562 +msgid "workspace.options.show-in-viewer" +msgstr "在预览模式显示" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:162 +msgid "workspace.options.size" +msgstr "尺寸" + +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:355 +msgid "workspace.options.size-presets" +msgstr "尺寸预设" + +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:43 +msgid "workspace.options.stroke" +msgstr "边框" + +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#, unused +msgid "workspace.options.stroke-cap.circle-marker" +msgstr "圆形标记" + +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:129 +msgid "workspace.options.stroke-cap.circle-marker-short" +msgstr "圆形" + +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#, unused +msgid "workspace.options.stroke-cap.diamond-marker" +msgstr "钻石标记" + +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:130 +msgid "workspace.options.stroke-cap.diamond-marker-short" +msgstr "钻石" + +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#, unused +msgid "workspace.options.stroke-cap.line-arrow" +msgstr "箭头" + +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:126 +msgid "workspace.options.stroke-cap.line-arrow-short" +msgstr "箭头" + +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:124 +msgid "workspace.options.stroke-cap.none" +msgstr "无边框" + +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:132 +msgid "workspace.options.stroke-cap.round" +msgstr "圆头" + +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:133 +msgid "workspace.options.stroke-cap.square" +msgstr "方头" + +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#, unused +msgid "workspace.options.stroke-cap.square-marker" +msgstr "方形标记" + +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:128 +msgid "workspace.options.stroke-cap.square-marker-short" +msgstr "矩形" + +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#, unused +msgid "workspace.options.stroke-cap.triangle-arrow" +msgstr "三角箭头" + +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:127 +msgid "workspace.options.stroke-cap.triangle-arrow-short" +msgstr "三角形" + +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:192 +msgid "workspace.options.stroke-color" +msgstr "线条颜色" + +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:165 +msgid "workspace.options.stroke-width" +msgstr "线宽" + +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:87 +msgid "workspace.options.stroke.center" +msgstr "居中" + +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:105 +msgid "workspace.options.stroke.dashed" +msgstr "长虚线" + +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:104 +msgid "workspace.options.stroke.dotted" +msgstr "虚线" + +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:88 +msgid "workspace.options.stroke.inner" +msgstr "内部" + +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:106 +msgid "workspace.options.stroke.mixed" +msgstr "混合" + +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:89 +msgid "workspace.options.stroke.outer" +msgstr "外部" + +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:103 +msgid "workspace.options.stroke.solid" +msgstr "实线" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:115 +msgid "workspace.options.text-options.align-bottom" +msgstr "底部对齐" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:111 +msgid "workspace.options.text-options.align-middle" +msgstr "垂直居中" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:107 +msgid "workspace.options.text-options.align-top" +msgstr "顶部对齐" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:82 +msgid "workspace.options.text-options.direction-ltr" +msgstr "从左到右" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:87 +msgid "workspace.options.text-options.direction-rtl" +msgstr "从右到左" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:149 +msgid "workspace.options.text-options.grow-auto-height" +msgstr "自动高度" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:145 +msgid "workspace.options.text-options.grow-auto-width" +msgstr "自动宽度" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:141 +msgid "workspace.options.text-options.grow-fixed" +msgstr "固定" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:381 +msgid "workspace.options.text-options.letter-spacing" +msgstr "字距" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:364 +msgid "workspace.options.text-options.line-height" +msgstr "行高" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused +msgid "workspace.options.text-options.lowercase" +msgstr "小写" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused +msgid "workspace.options.text-options.none" +msgstr "无" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:176 +msgid "workspace.options.text-options.strikethrough" +msgstr "删除线 (%s)" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:51 +msgid "workspace.options.text-options.text-align-center" +msgstr "水平居中 (%s)" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:59 +msgid "workspace.options.text-options.text-align-justify" +msgstr "两端对齐 (%s)" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:47 +msgid "workspace.options.text-options.text-align-left" +msgstr "靠左对齐 (%s)" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:55 +msgid "workspace.options.text-options.text-align-right" +msgstr "靠右对齐 (%s)" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:189 +msgid "workspace.options.text-options.title" +msgstr "文本" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:188 +msgid "workspace.options.text-options.title-group" +msgstr "编组文本" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:187 +msgid "workspace.options.text-options.title-selection" +msgstr "选项文本" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused +msgid "workspace.options.text-options.titlecase" +msgstr "首字母大写" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:171 +msgid "workspace.options.text-options.underline" +msgstr "下划线 (%s)" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused +msgid "workspace.options.text-options.uppercase" +msgstr "大写" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:745 +msgid "workspace.options.use-play-button" +msgstr "点击页面顶端的播放按钮预览原型。" + +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:395 +msgid "workspace.options.width" +msgstr "宽度" + +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:427 +msgid "workspace.options.x" +msgstr "X轴" + +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:438 +msgid "workspace.options.y" +msgstr "Y轴" + +#: src/app/main/ui/workspace/viewport/path_actions.cljs:167 +msgid "workspace.path.actions.add-node" +msgstr "添加节点(%s)" + +#: src/app/main/ui/workspace/viewport/path_actions.cljs:174 +msgid "workspace.path.actions.delete-node" +msgstr "删除节点(%s)" + +#: src/app/main/ui/workspace/viewport/path_actions.cljs:152 +msgid "workspace.path.actions.draw-nodes" +msgstr "绘制节点(%s)" + +#: src/app/main/ui/workspace/viewport/path_actions.cljs:189 +msgid "workspace.path.actions.join-nodes" +msgstr "连接节点(%s)" + +#: src/app/main/ui/workspace/viewport/path_actions.cljs:204 +msgid "workspace.path.actions.make-corner" +msgstr "转锐角 (%s)" + +#: src/app/main/ui/workspace/viewport/path_actions.cljs:211 +msgid "workspace.path.actions.make-curve" +msgstr "转圆角 (%s)" + +#: src/app/main/ui/workspace/viewport/path_actions.cljs:182 +msgid "workspace.path.actions.merge-nodes" +msgstr "合并节点(%s)" + +#: src/app/main/ui/workspace/viewport/path_actions.cljs:159 +msgid "workspace.path.actions.move-nodes" +msgstr "移动节点(%s)" + +#: src/app/main/ui/workspace/viewport/path_actions.cljs:196 +msgid "workspace.path.actions.separate-nodes" +msgstr "拆分节点(%s)" + +#: src/app/main/ui/workspace/viewport/path_actions.cljs:218 +msgid "workspace.path.actions.snap-nodes" +msgstr "对接节点 (%s)" + +#: src/app/main/ui/workspace/context_menu.cljs:441 +msgid "workspace.shape.menu.add-flex" +msgstr "添加弹性布局" + +#: src/app/main/ui/workspace/context_menu.cljs:445 +msgid "workspace.shape.menu.add-grid" +msgstr "添加网格布局" + +#: src/app/main/ui/workspace/context_menu.cljs:193 +msgid "workspace.shape.menu.back" +msgstr "移至底层" + +#: src/app/main/ui/workspace/context_menu.cljs:190 +msgid "workspace.shape.menu.backward" +msgstr "向下移动一层" + +#: src/app/main/ui/workspace/context_menu.cljs:139 +msgid "workspace.shape.menu.copy" +msgstr "复制" + +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:427 +msgid "workspace.shape.menu.create-annotation" +msgstr "创建注释" + +#: src/app/main/ui/workspace/context_menu.cljs:275 +msgid "workspace.shape.menu.create-artboard-from-selection" +msgstr "转为画板" + +#: src/app/main/ui/workspace/context_menu.cljs:465 +msgid "workspace.shape.menu.create-component" +msgstr "创建组件" + +#: src/app/main/ui/workspace/context_menu.cljs:469 +msgid "workspace.shape.menu.create-multiple-components" +msgstr "创建多个组件" + +#: src/app/main/ui/workspace/context_menu.cljs:142 +msgid "workspace.shape.menu.cut" +msgstr "剪切" + +#: src/app/main/ui/workspace/context_menu.cljs:486 +msgid "workspace.shape.menu.delete" +msgstr "删除" + +#: src/app/main/ui/workspace/context_menu.cljs:391 +msgid "workspace.shape.menu.delete-flow-start" +msgstr "删除流程起点" + +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:432 +msgid "workspace.shape.menu.detach-instance" +msgstr "解绑实例" + +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:431 +msgid "workspace.shape.menu.detach-instances-in-bulk" +msgstr "解绑实例" + +#: src/app/main/ui/workspace/context_menu.cljs:335, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:75 +msgid "workspace.shape.menu.difference" +msgstr "差集" + +#: src/app/main/ui/workspace/context_menu.cljs:148 +msgid "workspace.shape.menu.duplicate" +msgstr "创建副本" + +#: src/app/main/ui/workspace/context_menu.cljs:321 +msgid "workspace.shape.menu.edit" +msgstr "编辑" + +#: src/app/main/ui/workspace/context_menu.cljs:341 +msgid "workspace.shape.menu.exclude" +msgstr "相减" + +#: src/app/main/ui/workspace/context_menu.cljs:348, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:89 +msgid "workspace.shape.menu.flatten" +msgstr "展平" + +#: src/app/main/ui/workspace/context_menu.cljs:208 +msgid "workspace.shape.menu.flip-horizontal" +msgstr "水平翻转" + +#: src/app/main/ui/workspace/context_menu.cljs:204 +msgid "workspace.shape.menu.flip-vertical" +msgstr "垂直翻转" + +#: src/app/main/ui/workspace/context_menu.cljs:394 +msgid "workspace.shape.menu.flow-start" +msgstr "流程起点" + +#: src/app/main/ui/workspace/context_menu.cljs:184 +msgid "workspace.shape.menu.forward" +msgstr "向上移动一层" + +#: src/app/main/ui/workspace/context_menu.cljs:187 +msgid "workspace.shape.menu.front" +msgstr "移至顶层" + +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs +#, unused +msgid "workspace.shape.menu.go-main" +msgstr "前往主组件文档" + +#: src/app/main/ui/workspace/context_menu.cljs:261 +msgid "workspace.shape.menu.group" +msgstr "编组" + +#: src/app/main/ui/workspace/context_menu.cljs:363, src/app/main/ui/workspace/sidebar/layer_item.cljs:145 +msgid "workspace.shape.menu.hide" +msgstr "隐藏" + +#: src/app/main/ui/workspace/context_menu.cljs:548, src/app/main/ui/workspace/main_menu.cljs:408 +msgid "workspace.shape.menu.hide-ui" +msgstr "显示/隐藏界面" + +#: src/app/main/ui/workspace/context_menu.cljs:338 +msgid "workspace.shape.menu.intersection" +msgstr "差集" + +#: src/app/main/ui/workspace/context_menu.cljs:371, src/app/main/ui/workspace/sidebar/layer_item.cljs:153 +msgid "workspace.shape.menu.lock" +msgstr "锁定" + +#: src/app/main/ui/workspace/context_menu.cljs:266 +msgid "workspace.shape.menu.mask" +msgstr "蒙板" + +#: src/app/main/ui/workspace/context_menu.cljs:145, src/app/main/ui/workspace/context_menu.cljs:545 +msgid "workspace.shape.menu.paste" +msgstr "粘贴" + +#: src/app/main/ui/workspace/context_menu.cljs:331 +msgid "workspace.shape.menu.path" +msgstr "路径" + +#: src/app/main/ui/workspace/context_menu.cljs:432 +msgid "workspace.shape.menu.remove-flex" +msgstr "删除弹性布局" + +#: src/app/main/ui/workspace/context_menu.cljs:435 +msgid "workspace.shape.menu.remove-grid" +msgstr "移除网格布局" + +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:436 +msgid "workspace.shape.menu.reset-overrides" +msgstr "还原自定义选项" + +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:439 +msgid "workspace.shape.menu.restore-main" +msgstr "恢复主要组件" + +#: src/app/main/ui/workspace/context_menu.cljs:174 +msgid "workspace.shape.menu.select-layer" +msgstr "选择图层" + +#: src/app/main/ui/workspace/context_menu.cljs:360, src/app/main/ui/workspace/sidebar/layer_item.cljs:144 +msgid "workspace.shape.menu.show" +msgstr "显示" + +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:424 +msgid "workspace.shape.menu.show-in-assets" +msgstr "在素材面板中显示" + +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:442, src/app/main/ui/workspace/sidebar/assets/components.cljs:586 +msgid "workspace.shape.menu.show-main" +msgstr "显示主组件" + +#: src/app/main/ui/workspace/context_menu.cljs:221 +msgid "workspace.shape.menu.thumbnail-remove" +msgstr "移除缩略图" + +#: src/app/main/ui/workspace/context_menu.cljs:223 +msgid "workspace.shape.menu.thumbnail-set" +msgstr "设为缩略图" + +#: src/app/main/ui/workspace/context_menu.cljs:326 +msgid "workspace.shape.menu.transform-to-path" +msgstr "转换为路径" + +#: src/app/main/ui/workspace/context_menu.cljs:257 +msgid "workspace.shape.menu.ungroup" +msgstr "取消编组" + +#: src/app/main/ui/workspace/context_menu.cljs:332, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:70 +msgid "workspace.shape.menu.union" +msgstr "相加" + +#: src/app/main/ui/workspace/context_menu.cljs:368, src/app/main/ui/workspace/sidebar/layer_item.cljs:152 +msgid "workspace.shape.menu.unlock" +msgstr "取消锁定" + +#: src/app/main/ui/workspace/context_menu.cljs:271 +msgid "workspace.shape.menu.unmask" +msgstr "取消蒙版" + +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs +#, unused +msgid "workspace.shape.menu.update-components-in-bulk" +msgstr "更新主要组件" + +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:445 +msgid "workspace.shape.menu.update-main" +msgstr "更新主组件" + +#: src/app/main/ui/components/tab_container.cljs:50 +msgid "workspace.sidebar.collapse" +msgstr "收起侧边栏" + +#: src/app/main/ui/workspace/sidebar/collapsable_button.cljs:26 +msgid "workspace.sidebar.expand" +msgstr "展开侧边栏" + +#: src/app/main/ui/workspace/right_header.cljs:231, src/app/main/ui/workspace/right_header.cljs:232 +msgid "workspace.sidebar.history" +msgstr "历史(%s)" + +#: src/app/main/ui/workspace/sidebar/layers.cljs:522, src/app/main/ui/workspace/sidebar.cljs:100 +msgid "workspace.sidebar.layers" +msgstr "图层" + +#: src/app/main/ui/workspace/sidebar/layers.cljs:308, src/app/main/ui/workspace/sidebar/layers.cljs:380 +msgid "workspace.sidebar.layers.components" +msgstr "组件" + +#: src/app/main/ui/workspace/sidebar/layers.cljs:305, src/app/main/ui/workspace/sidebar/layers.cljs:338 +msgid "workspace.sidebar.layers.frames" +msgstr "画板" + +#: src/app/main/ui/workspace/sidebar/layers.cljs:306, src/app/main/ui/workspace/sidebar/layers.cljs:352 +msgid "workspace.sidebar.layers.groups" +msgstr "编组" + +#: src/app/main/ui/workspace/sidebar/layers.cljs:310, src/app/main/ui/workspace/sidebar/layers.cljs:408 +msgid "workspace.sidebar.layers.images" +msgstr "图片" + +#: src/app/main/ui/workspace/sidebar/layers.cljs:307, src/app/main/ui/workspace/sidebar/layers.cljs:366 +msgid "workspace.sidebar.layers.masks" +msgstr "遮罩" + +#: src/app/main/ui/workspace/sidebar/layers.cljs:289 +msgid "workspace.sidebar.layers.search" +msgstr "搜索图层" + +#: src/app/main/ui/workspace/sidebar/layers.cljs:311, src/app/main/ui/workspace/sidebar/layers.cljs:422 +msgid "workspace.sidebar.layers.shapes" +msgstr "形状" + +#: src/app/main/ui/workspace/sidebar/layers.cljs:309, src/app/main/ui/workspace/sidebar/layers.cljs:394 +msgid "workspace.sidebar.layers.texts" +msgstr "文本" + +#: src/app/main/ui/viewer/inspect/attributes/svg.cljs:56, src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs:91 +msgid "workspace.sidebar.options.svg-attrs.title" +msgstr "已导入SVG属性" + +#: src/app/main/ui/workspace/sidebar/sitemap.cljs:217 +msgid "workspace.sidebar.sitemap" +msgstr "页面" + +#: src/app/main/ui/workspace/left_header.cljs:91 +msgid "workspace.sitemap" +msgstr "站点地图" + +#: src/app/main/ui/workspace/sidebar.cljs:120 +msgid "workspace.toolbar.assets" +msgstr "素材" + +#: src/app/main/ui/workspace/palette.cljs:165, src/app/main/ui/workspace/palette.cljs:166 +msgid "workspace.toolbar.color-palette" +msgstr "调色盘(%s)" + +#: src/app/main/ui/workspace/right_header.cljs:220, src/app/main/ui/workspace/right_header.cljs:221 +msgid "workspace.toolbar.comments" +msgstr "评论(%s)" + +#: src/app/main/ui/workspace/top_toolbar.cljs:180, src/app/main/ui/workspace/top_toolbar.cljs:181 +msgid "workspace.toolbar.curve" +msgstr "曲线(%s)" + +#: src/app/main/ui/workspace/top_toolbar.cljs:160, src/app/main/ui/workspace/top_toolbar.cljs:161 +msgid "workspace.toolbar.ellipse" +msgstr "椭圆(%s)" + +#: src/app/main/ui/workspace/top_toolbar.cljs:142, src/app/main/ui/workspace/top_toolbar.cljs:143 +msgid "workspace.toolbar.frame" +msgstr "画板(%s)" + +#: src/app/main/ui/workspace/top_toolbar.cljs:59, src/app/main/ui/workspace/top_toolbar.cljs:60 +msgid "workspace.toolbar.image" +msgstr "图片(%s)" + +#: src/app/main/ui/workspace/top_toolbar.cljs:132, src/app/main/ui/workspace/top_toolbar.cljs:133 +msgid "workspace.toolbar.move" +msgstr "移动 (%s)" + +#: src/app/main/ui/workspace/top_toolbar.cljs:189, src/app/main/ui/workspace/top_toolbar.cljs:190 +msgid "workspace.toolbar.path" +msgstr "路径(%s)" + +#: src/app/main/ui/workspace/top_toolbar.cljs:151, src/app/main/ui/workspace/top_toolbar.cljs:152 +msgid "workspace.toolbar.rect" +msgstr "矩形(%s)" + +#: src/app/main/ui/workspace/left_toolbar.cljs +#, unused +msgid "workspace.toolbar.shortcuts" +msgstr "快捷键 (%s)" + +#: src/app/main/ui/workspace/top_toolbar.cljs:169, src/app/main/ui/workspace/top_toolbar.cljs:170 +msgid "workspace.toolbar.text" +msgstr "文本(%s)" + +#: src/app/main/ui/workspace/palette.cljs:173, src/app/main/ui/workspace/palette.cljs:174 +msgid "workspace.toolbar.text-palette" +msgstr "排字式样 (%s)" + +#: src/app/main/ui/workspace/viewport/top_bar.cljs:38 +msgid "workspace.top-bar.read-only.done" +msgstr "完成" + +#: src/app/main/ui/workspace/viewport/top_bar.cljs:35 +#, markdown +msgid "workspace.top-bar.view-only" +msgstr "**检查代码**(仅查看)" + +#: src/app/main/ui/workspace/sidebar/history.cljs:342 +msgid "workspace.undo.empty" +msgstr "目前没有历史修改" + +#: src/app/main/ui/workspace/sidebar/history.cljs:147 +msgid "workspace.undo.entry.delete" +msgstr "%s已删除" + +#: src/app/main/ui/workspace/sidebar/history.cljs:146 +msgid "workspace.undo.entry.modify" +msgstr "%s已修改" + +#: src/app/main/ui/workspace/sidebar/history.cljs:148 +msgid "workspace.undo.entry.move" +msgstr "对象已移动" + +#: src/app/main/ui/workspace/sidebar/history.cljs:111 +msgid "workspace.undo.entry.multiple.circle" +msgstr "圆" + +#: src/app/main/ui/workspace/sidebar/history.cljs:112 +msgid "workspace.undo.entry.multiple.color" +msgstr "颜色素材" + +#: src/app/main/ui/workspace/sidebar/history.cljs:113 +msgid "workspace.undo.entry.multiple.component" +msgstr "组件" + +#: src/app/main/ui/workspace/sidebar/history.cljs:114 +msgid "workspace.undo.entry.multiple.curve" +msgstr "曲线" + +#: src/app/main/ui/workspace/sidebar/history.cljs:115 +msgid "workspace.undo.entry.multiple.frame" +msgstr "画板" + +#: src/app/main/ui/workspace/sidebar/history.cljs:116 +msgid "workspace.undo.entry.multiple.group" +msgstr "编组" + +#: src/app/main/ui/workspace/sidebar/history.cljs:117 +msgid "workspace.undo.entry.multiple.media" +msgstr "图形素材" + +#: src/app/main/ui/workspace/sidebar/history.cljs:118 +msgid "workspace.undo.entry.multiple.multiple" +msgstr "对象" + +#: src/app/main/ui/workspace/sidebar/history.cljs:119 +msgid "workspace.undo.entry.multiple.page" +msgstr "页面" + +#: src/app/main/ui/workspace/sidebar/history.cljs:120 +msgid "workspace.undo.entry.multiple.path" +msgstr "路径" + +#: src/app/main/ui/workspace/sidebar/history.cljs:121 +msgid "workspace.undo.entry.multiple.rect" +msgstr "矩形" + +#: src/app/main/ui/workspace/sidebar/history.cljs:122 +msgid "workspace.undo.entry.multiple.shape" +msgstr "形状" + +#: src/app/main/ui/workspace/sidebar/history.cljs:123 +msgid "workspace.undo.entry.multiple.text" +msgstr "文本" + +#: src/app/main/ui/workspace/sidebar/history.cljs:124 +msgid "workspace.undo.entry.multiple.typography" +msgstr "排版素材" + +#: src/app/main/ui/workspace/sidebar/history.cljs:145 +msgid "workspace.undo.entry.new" +msgstr "新建%s" + +#: src/app/main/ui/workspace/sidebar/history.cljs:125 +msgid "workspace.undo.entry.single.circle" +msgstr "圆" + +#: src/app/main/ui/workspace/sidebar/history.cljs:126 +msgid "workspace.undo.entry.single.color" +msgstr "颜色素材" + +#: src/app/main/ui/workspace/sidebar/history.cljs:127 +msgid "workspace.undo.entry.single.component" +msgstr "组件" + +#: src/app/main/ui/workspace/sidebar/history.cljs:128 +msgid "workspace.undo.entry.single.curve" +msgstr "曲线" + +#: src/app/main/ui/workspace/sidebar/history.cljs:129 +msgid "workspace.undo.entry.single.frame" +msgstr "画板" + +#: src/app/main/ui/workspace/sidebar/history.cljs:130 +msgid "workspace.undo.entry.single.group" +msgstr "编组" + +#: src/app/main/ui/workspace/sidebar/history.cljs:131 +msgid "workspace.undo.entry.single.image" +msgstr "图片" + +#: src/app/main/ui/workspace/sidebar/history.cljs:132 +msgid "workspace.undo.entry.single.media" +msgstr "图形素材" + +#: src/app/main/ui/workspace/sidebar/history.cljs:133 +msgid "workspace.undo.entry.single.multiple" +msgstr "对象" + +#: src/app/main/ui/workspace/sidebar/history.cljs:134 +msgid "workspace.undo.entry.single.page" +msgstr "页面" + +#: src/app/main/ui/workspace/sidebar/history.cljs:135 +msgid "workspace.undo.entry.single.path" +msgstr "路径" + +#: src/app/main/ui/workspace/sidebar/history.cljs:136 +msgid "workspace.undo.entry.single.rect" +msgstr "矩形" + +#: src/app/main/ui/workspace/sidebar/history.cljs:137 +msgid "workspace.undo.entry.single.shape" +msgstr "形状" + +#: src/app/main/ui/workspace/sidebar/history.cljs:138 +msgid "workspace.undo.entry.single.text" +msgstr "文本" + +#: src/app/main/ui/workspace/sidebar/history.cljs:139 +msgid "workspace.undo.entry.single.typography" +msgstr "排版素材" + +#: src/app/main/ui/workspace/sidebar/history.cljs:149 +msgid "workspace.undo.entry.unknown" +msgstr "操作覆盖%s" + +#: src/app/main/ui/workspace/sidebar/history.cljs:335 +msgid "workspace.undo.title" +msgstr "历史" + +#: src/app/main/data/workspace/libraries.cljs:1094 +msgid "workspace.updates.dismiss" +msgstr "忽略" + +#: src/app/main/data/workspace/libraries.cljs:1092 +msgid "workspace.updates.more-info" +msgstr "更多信息" + +#: src/app/main/data/workspace/libraries.cljs:1090 +msgid "workspace.updates.there-are-updates" +msgstr "共享库有更新" + +#: src/app/main/data/workspace/libraries.cljs:1097 +msgid "workspace.updates.update" +msgstr "更新" + +#, unused +msgid "workspace.viewport.click-to-close-path" +msgstr "单击以闭合路径" diff --git a/frontend/translations/zh_Hant.po b/frontend/translations/zh_Hant.po index 724bddba89..849f0325c8 100644 --- a/frontend/translations/zh_Hant.po +++ b/frontend/translations/zh_Hant.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "PO-Revision-Date: 2024-06-17 08:07+0000\n" "Last-Translator: Anonymous \n" -"Language-Team: Chinese (Traditional) \n" +"Language-Team: Chinese (Traditional) " +"\n" "Language: zh_Hant\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" @@ -11,353 +11,501 @@ msgstr "" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Weblate 5.6-dev\n" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:151, src/app/main/ui/viewer/login.cljs:104 msgid "auth.already-have-account" msgstr "已經有帳號了嗎?" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:299 msgid "auth.check-your-email" msgstr "檢查你的信箱,點擊信中連結來驗證並開始使用 Penpot。" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:78 msgid "auth.confirm-password" msgstr "確認密碼" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/register.cljs:163 msgid "auth.create-demo-account" msgstr "建立展示帳號" #: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#, unused msgid "auth.create-demo-profile" msgstr "只是想試試看嗎?" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/login.cljs:43 msgid "auth.demo-warning" msgstr "此服務僅用於展示,請勿用於實際工作。專案內容將被定期清除。" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:189, src/app/main/ui/viewer/login.cljs:90 msgid "auth.forgot-password" msgstr "忘記密碼?" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:254 msgid "auth.fullname" msgstr "全名" -#: src/app/main/ui/auth/register.cljs -#, fuzzy +#: src/app/main/ui/auth/login.cljs:282 +msgid "auth.login-account-title" +msgstr "登入我的帳號" + +#: src/app/main/ui/auth/register.cljs:155, src/app/main/ui/viewer/login.cljs:107 msgid "auth.login-here" msgstr "在此登入" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:195 msgid "auth.login-submit" msgstr "登入" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:285 +msgid "auth.login-tagline" +msgstr "Penpot 是用於設計與開發協作,免費且開源的設計工具" + +#: src/app/main/ui/auth/login.cljs:222 msgid "auth.login-with-github-submit" msgstr "GitHub" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:228 msgid "auth.login-with-gitlab-submit" msgstr "GitLab" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:216 msgid "auth.login-with-google-submit" msgstr "Google" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:201 msgid "auth.login-with-ldap-submit" msgstr "LDAP" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:234, src/app/main/ui/auth/login.cljs:255 msgid "auth.login-with-oidc-submit" msgstr "OpenID" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/register.cljs:217, src/app/main/ui/dashboard/team_form.cljs:76, src/app/main/ui/onboarding/team_choice.cljs:180, src/app/main/ui/settings/access_tokens.cljs:66, src/app/main/ui/settings/feedback.cljs:34, src/app/main/ui/settings/profile.cljs:45, src/app/main/ui/workspace/sidebar/assets/groups.cljs:108 +msgid "auth.name.not-all-space" +msgstr "名稱內必須包含空白以外的文字。" + +#: src/app/main/ui/auth/register.cljs:218, src/app/main/ui/dashboard/team_form.cljs:77, src/app/main/ui/onboarding/team_choice.cljs:181, src/app/main/ui/settings/access_tokens.cljs:67, src/app/main/ui/settings/feedback.cljs:33, src/app/main/ui/settings/profile.cljs:44, src/app/main/ui/workspace/sidebar/assets/groups.cljs:109 +msgid "auth.name.too-long" +msgstr "名稱最多包含 250 個字元。" + +#: src/app/main/ui/auth/recovery.cljs:71 msgid "auth.new-password" msgstr "輸入新密碼" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:42 msgid "auth.notifications.invalid-token-error" msgstr "此 Recovery token 是無效的。" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:46 msgid "auth.notifications.password-changed-successfully" msgstr "已成功更改密碼" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:57 msgid "auth.notifications.profile-not-verified" msgstr "個人檔案尚未驗證,再繼續之前,請先驗證個人檔案。" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:40 msgid "auth.notifications.recovery-token-sent" msgstr "密碼重設連結已寄送至您的信箱。" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:47 msgid "auth.notifications.team-invitation-accepted" msgstr "已成功加入團隊" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:179, src/app/main/ui/auth/register.cljs:115 msgid "auth.password" msgstr "密碼" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:114 msgid "auth.password-length-hint" msgstr "至少需要八個字元" +#: src/app/main/ui/auth/recovery.cljs:61, src/app/main/ui/auth/recovery.cljs:62, src/app/main/ui/auth/register.cljs:81, src/app/main/ui/settings/password.cljs:75, src/app/main/ui/settings/password.cljs:76, src/app/main/ui/settings/password.cljs:77 +msgid "auth.password-not-empty" +msgstr "密碼必須包含空白以外的字元。" + +#: src/app/main/ui/auth.cljs:41 msgid "auth.privacy-policy" msgstr "隱私權政策" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:88 msgid "auth.recovery-request-submit" msgstr "復原密碼" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:101 msgid "auth.recovery-request-subtitle" msgstr "我們會寄送一封包含指南的電子郵件給您" -#: src/app/main/ui/auth/recovery_request.cljs +#: src/app/main/ui/auth/recovery_request.cljs:100 msgid "auth.recovery-request-title" msgstr "忘記密碼?" -#: src/app/main/ui/auth/recovery.cljs +#: src/app/main/ui/auth/recovery.cljs:82 msgid "auth.recovery-submit" msgstr "修改密碼" -#: src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:298, src/app/main/ui/viewer/login.cljs:93 msgid "auth.register" msgstr "還沒有帳號嗎?" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#: src/app/main/ui/auth/login.cljs:302, src/app/main/ui/auth/register.cljs:121, src/app/main/ui/auth/register.cljs:263, src/app/main/ui/viewer/login.cljs:97 msgid "auth.register-submit" msgstr "建立帳號" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:140 msgid "auth.register-title" msgstr "建立帳號" #: src/app/main/ui/auth.cljs +#, unused msgid "auth.sidebar-tagline" msgstr "設計與原型製作的開源解決方案。" +#: src/app/main/ui/auth.cljs:33, src/app/main/ui/dashboard/sidebar.cljs:1022, src/app/main/ui/workspace/main_menu.cljs:150 msgid "auth.terms-of-service" msgstr "服務條款" -#: src/app/main/ui/auth/register.cljs +#: src/app/main/ui/auth/register.cljs:297 msgid "auth.verification-email-sent" msgstr "我們會寄送一封驗證郵件至" +#: src/app/main/ui/onboarding/questions.cljs +#, unused +msgid "branding-illustrations-marketing-pieces" +msgstr "...品牌設計、插畫、行銷素材等。" + +#: src/app/main/ui/workspace/libraries.cljs:228 msgid "common.publish" msgstr "發怖" +#: src/app/main/ui/viewer/share_link.cljs:304, src/app/main/ui/viewer/share_link.cljs:314 msgid "common.share-link.all-users" msgstr "所有 Penpot 用戶" +#: src/app/main/ui/viewer/share_link.cljs:198 msgid "common.share-link.confirm-deletion-link-description" msgstr "確定要移除此連結?如果這麼做,它將不再能被任何人存取" +#: src/app/main/ui/viewer/share_link.cljs:259, src/app/main/ui/viewer/share_link.cljs:289 msgid "common.share-link.current-tag" msgstr "(目前)" +#: src/app/main/ui/viewer/share_link.cljs:207, src/app/main/ui/viewer/share_link.cljs:214 msgid "common.share-link.destroy-link" msgstr "銷毀連結" +#: src/app/main/ui/viewer/share_link.cljs:221 msgid "common.share-link.get-link" msgstr "取得連結" +#: src/app/main/ui/viewer/share_link.cljs:139 msgid "common.share-link.link-copied-success" msgstr "成功複製連結" +#: src/app/main/ui/viewer/share_link.cljs:231 msgid "common.share-link.manage-ops" msgstr "權限管理" +#: src/app/main/ui/viewer/share_link.cljs:277 msgid "common.share-link.page-shared" msgid_plural "common.share-link.page-shared" msgstr[0] "已共享 %s 頁" +#: src/app/main/ui/viewer/share_link.cljs:298 msgid "common.share-link.permissions-can-comment" msgstr "可評論" +#: src/app/main/ui/viewer/share_link.cljs:308 msgid "common.share-link.permissions-can-inspect" msgstr "可檢閱代碼" +#: src/app/main/ui/viewer/share_link.cljs:193 msgid "common.share-link.permissions-hint" msgstr "任何有連結的人皆能存取" +#: src/app/main/ui/viewer/share_link.cljs:241 msgid "common.share-link.permissions-pages" msgstr "已共享頁面" +#: src/app/main/ui/viewer/share_link.cljs:183 msgid "common.share-link.placeholder" msgstr "可分享的連結將會在此顯示" +#: src/app/main/ui/viewer/share_link.cljs:303, src/app/main/ui/viewer/share_link.cljs:313 msgid "common.share-link.team-members" msgstr "只限團隊成員" +#: src/app/main/ui/viewer/share_link.cljs:171 msgid "common.share-link.title" msgstr "分享原型" +#: src/app/main/ui/viewer/share_link.cljs:269 msgid "common.share-link.view-all" msgstr "全選" +#: src/app/main/ui/workspace/libraries.cljs:224 msgid "common.unpublish" msgstr "未發怖" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:85 msgid "dasboard.team-hero.management" msgstr "團隊管理" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:84 msgid "dasboard.team-hero.text" msgstr "Penpot旨在團隊協作。邀請隊員加入共同協作" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:82 msgid "dasboard.team-hero.title" msgstr "組隊!" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.tutorial-hero.info" msgstr "通過富趣味的教程實作學習 Penpot 的基礎知識。" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.tutorial-hero.start" msgstr "開始教程" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.tutorial-hero.title" msgstr "實踐教程" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.walkthrough-hero.info" msgstr "逐步遊覽Penpot以了解主要功能。" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.walkthrough-hero.start" msgstr "開始遊覽" #: src/app/main/ui/dashboard/projects.cljs +#, unused msgid "dasboard.walkthrough-hero.title" msgstr "遊覽用戶界面" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/settings/access_tokens.cljs:115 +msgid "dashboard.access-tokens.copied-success" +msgstr "已複製 Token" + +#: src/app/main/ui/settings/access_tokens.cljs:202 +msgid "dashboard.access-tokens.create" +msgstr "產生新的 Token" + +#: src/app/main/ui/settings/access_tokens.cljs:76 +msgid "dashboard.access-tokens.create.success" +msgstr "已成功建立 Access Token。" + +#: src/app/main/ui/settings/access_tokens.cljs:300 +msgid "dashboard.access-tokens.empty.add-one" +msgstr "按下\"產生新 Token\" 按鈕來產生一個。" + +#: src/app/main/ui/settings/access_tokens.cljs:299 +msgid "dashboard.access-tokens.empty.no-access-tokens" +msgstr "你目前還沒有 Tokens。" + +#: src/app/main/ui/settings/access_tokens.cljs:53 +msgid "dashboard.access-tokens.errors-required-name" +msgstr "名稱是必填的" + +#: src/app/main/ui/settings/access_tokens.cljs:147 +msgid "dashboard.access-tokens.expiration-180-days" +msgstr "180 天" + +#: src/app/main/ui/settings/access_tokens.cljs:144 +msgid "dashboard.access-tokens.expiration-30-days" +msgstr "30 天" + +#: src/app/main/ui/settings/access_tokens.cljs:145 +msgid "dashboard.access-tokens.expiration-60-days" +msgstr "60 天" + +#: src/app/main/ui/settings/access_tokens.cljs:146 +msgid "dashboard.access-tokens.expiration-90-days" +msgstr "90 天" + +#: src/app/main/ui/settings/access_tokens.cljs:143 +msgid "dashboard.access-tokens.expiration-never" +msgstr "從不" + +#: src/app/main/ui/settings/access_tokens.cljs:282 +msgid "dashboard.access-tokens.expired-on" +msgstr "已於 %s 過期" + +#: src/app/main/ui/settings/access_tokens.cljs:283 +msgid "dashboard.access-tokens.expires-on" +msgstr "將於 %s 過期" + +#: src/app/main/ui/settings/access_tokens.cljs:281 +msgid "dashboard.access-tokens.no-expiration" +msgstr "沒有到期時間" + +#: src/app/main/ui/settings/access_tokens.cljs:197 +msgid "dashboard.access-tokens.personal" +msgstr "個人存取權杖" + +#: src/app/main/ui/settings/access_tokens.cljs:198 +msgid "dashboard.access-tokens.personal.description" +msgstr "個人存取權杖就像是帳號密碼驗證系統的替代方案,且可用於讓第三方應用程式存取 Penpot 內部 API" + +#: src/app/main/ui/settings/access_tokens.cljs:154 +msgid "dashboard.access-tokens.token-will-expire" +msgstr "權杖將於 %s 到期" + +#: src/app/main/ui/settings/access_tokens.cljs:155 +msgid "dashboard.access-tokens.token-will-not-expire" +msgstr "權杖沒有到期時間" + +#: src/app/main/ui/dashboard/file_menu.cljs:291, src/app/main/ui/workspace/main_menu.cljs:572 msgid "dashboard.add-shared" msgstr "加入為共享檔案庫" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:75 msgid "dashboard.change-email" msgstr "更改電子郵件" -#: src/app/main/data/dashboard.cljs, src/app/main/data/dashboard.cljs +#: src/app/main/data/dashboard.cljs:762, src/app/main/data/dashboard.cljs:983 msgid "dashboard.copy-suffix" msgstr "(複製)" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:338 msgid "dashboard.create-new-team" msgstr "建立新團隊" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/components/context_menu_a11y.cljs:256, src/app/main/ui/dashboard/sidebar.cljs:646 msgid "dashboard.default-team-name" msgstr "你的 Penpot" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:571 msgid "dashboard.delete-team" msgstr "刪除團隊" +#: src/app/main/ui/dashboard/file_menu.cljs:296, src/app/main/ui/workspace/main_menu.cljs:589 msgid "dashboard.download-binary-file" msgstr "下載 Penpot 檔案 (.penpot)" +#: src/app/main/ui/dashboard/file_menu.cljs:300, src/app/main/ui/workspace/main_menu.cljs:597 msgid "dashboard.download-standard-file" msgstr "下載標準檔案 (.svg + .json)" -#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:276, src/app/main/ui/dashboard/project_menu.cljs:90 msgid "dashboard.duplicate" msgstr "複本" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:240 msgid "dashboard.duplicate-multi" msgstr "複製 %s 個檔案" -#: src/app/main/ui/dashboard/grid.cljs +#: src/app/main/ui/dashboard/placeholder.cljs:32 #, markdown msgid "dashboard.empty-placeholder-drafts" msgstr "" "添加在資料庫的檔案會在此處列出。請分享你的檔案或由我們的 [資料庫 & " "模板區段](https://penpot.app/libraries-templates) 添加。" +#: src/app/main/ui/dashboard/file_menu.cljs:249 msgid "dashboard.export-binary-multi" msgstr "下載 %s 個Penpot 檔案 (.penpot)" +#: src/app/main/ui/workspace/main_menu.cljs:605 msgid "dashboard.export-frames" msgstr "將 boards 匯出為 PDF" -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:201 msgid "dashboard.export-frames.title" msgstr "匯出為PDF" +#, unused msgid "dashboard.export-multi" msgstr "匯出 %s 個檔案" -#: src/app/main/ui/export.cljs -#, fuzzy +#: src/app/main/ui/export.cljs:109 msgid "dashboard.export-multiple.selected" msgstr "已選取%s / %s elements" -#: src/app/main/ui/workspace/header.cljs +#: src/app/main/ui/workspace/main_menu.cljs:578 msgid "dashboard.export-shapes" msgstr "匯出" -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:180 msgid "dashboard.export-shapes.how-to" msgstr "你可以從設計屬性(位於右側邊欄底部)為元素添加匯出設置。" -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:184 msgid "dashboard.export-shapes.how-to-link" msgstr "Penpot匯出功能的簡介。" -#: src/app/main/ui/export.cljs -#, fuzzy +#: src/app/main/ui/export.cljs:179 msgid "dashboard.export-shapes.no-elements" msgstr "匯出設定未有任何element。" -#: src/app/main/ui/export.cljs +#: src/app/main/ui/export.cljs:190 msgid "dashboard.export-shapes.title" msgstr "匯出已選取項目" +#: src/app/main/ui/dashboard/file_menu.cljs:252 msgid "dashboard.export-standard-multi" msgstr "下載%s個標準檔案 (.svg + .json)" +#: src/app/main/ui/export.cljs:427 msgid "dashboard.export.detail" msgstr "* 可能會包含元件、圖像、顏色及/或文字編排。" +#: src/app/main/ui/export.cljs:426 msgid "dashboard.export.explain" msgstr "你想匯出的單個或多個檔案中使用了共用資料庫,你想要如何處理它們的素材*?" +#: src/app/main/ui/export.cljs:435 +msgid "dashboard.export.options.all.message" +msgstr "使用了共用資料庫的檔案將被包含在匯出內,並保持他們的連結關係。" + +#: src/app/main/ui/export.cljs:436 msgid "dashboard.export.options.all.title" msgstr "匯出共享媒體庫" -#, fuzzy +#: src/app/main/ui/export.cljs:437 +msgid "dashboard.export.options.detach.message" +msgstr "共用資料庫將不包含在匯出檔案內,且資產不會被加入資料庫。 " + +#: src/app/main/ui/export.cljs:438 msgid "dashboard.export.options.detach.title" msgstr "將檔案庫資源視為基本物件" +#: src/app/main/ui/export.cljs:439 msgid "dashboard.export.options.merge.message" msgstr "您的檔案將連同所有外部資源將一併匯出到檔案庫中。" +#: src/app/main/ui/export.cljs:440 +msgid "dashboard.export.options.merge.title" +msgstr "將共享資料庫的內容加入檔案資料庫" + +#: src/app/main/ui/export.cljs:418 msgid "dashboard.export.title" msgstr "匯出檔案" +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:309 msgid "dashboard.fonts.deleted-placeholder" msgstr "已刪除字型" -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:206 msgid "dashboard.fonts.dismiss-all" msgstr "全部取消" +#: src/app/main/ui/dashboard/fonts.cljs:436 msgid "dashboard.fonts.empty-placeholder" msgstr "此處將會列出你上載的自訂字型。" -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:194 msgid "dashboard.fonts.fonts-added" msgid_plural "dashboard.fonts.fonts-added" msgstr[0] "添加了%s個字體" +#: src/app/main/ui/dashboard/fonts.cljs:170 #, markdown msgid "dashboard.fonts.hero-text1" msgstr "" @@ -365,6 +513,7 @@ msgstr "" "字體將會列入本團隊共用檔案的可用字型家族清單。相同字型家族名稱的字體將被分組為**單一字型家族**。可上傳以下格式的字體:**TTF、OTF 和 " "WOFF**(任何一種)。" +#: src/app/main/ui/dashboard/fonts.cljs:182 #, markdown msgid "dashboard.fonts.hero-text2" msgstr "" @@ -372,2083 +521,2178 @@ msgstr "" "中使用的字型。如需瞭解更多,請參閱[Penpot的服務條款](https://penpot.app/terms." "html)的內容權利部分。您可能還想閱讀有關 [字體許可](https://www.typography.com/faq) 的資訊。" -#: src/app/main/ui/dashboard/fonts.cljs +#: src/app/main/ui/dashboard/fonts.cljs:202 msgid "dashboard.fonts.upload-all" msgstr "全部上傳" +#: src/app/main/ui/dashboard/import.cljs:472, src/app/main/ui/dashboard/project_menu.cljs:108 msgid "dashboard.import" msgstr "匯入檔案" +#: src/app/main/ui/dashboard/import.cljs:304, src/app/worker/import.cljs:753, src/app/worker/import.cljs:755 msgid "dashboard.import.analyze-error" msgstr "喔不!我們無法匯入此檔案" +#, unused +msgid "dashboard.import.analyze-error.components-v2" +msgstr "檔案中啟用了 Components v2 但這個團隊尚未支援。" + +#: src/app/main/ui/dashboard/import.cljs:308 msgid "dashboard.import.import-error" msgstr "匯入檔案時發生錯誤。檔案未匯入。" +#: src/app/main/ui/dashboard/import.cljs:493 msgid "dashboard.import.import-message" msgstr "已成功匯入 %s 個檔案。" +#: src/app/main/ui/dashboard/import.cljs:481, src/app/main/ui/dashboard/import.cljs:488 msgid "dashboard.import.import-warning" msgstr "部份檔案因包含無效物件而被移除。" +#: src/app/main/ui/dashboard/import.cljs:144 msgid "dashboard.import.progress.process-colors" msgstr "正在處理顏色" +#: src/app/main/ui/dashboard/import.cljs:153 msgid "dashboard.import.progress.process-components" msgstr "正在處理元件" +#: src/app/main/ui/dashboard/import.cljs:150 msgid "dashboard.import.progress.process-media" msgstr "正在處理媒體" +#: src/app/main/ui/dashboard/import.cljs:141 msgid "dashboard.import.progress.process-page" msgstr "正在處理第 %s 頁" +#: src/app/main/ui/dashboard/import.cljs:147 msgid "dashboard.import.progress.process-typographies" msgstr "正在處理字體排版中" +#: src/app/main/ui/dashboard/import.cljs:135 msgid "dashboard.import.progress.upload-data" msgstr "上傳資料至伺服器 (%s/%s)" +#: src/app/main/ui/dashboard/import.cljs:138 msgid "dashboard.import.progress.upload-media" msgstr "正在上傳檔案:%s" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:109 msgid "dashboard.invite-profile" msgstr "邀請人員" -#: src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:547, src/app/main/ui/dashboard/sidebar.cljs:556, src/app/main/ui/dashboard/sidebar.cljs:563, src/app/main/ui/dashboard/team.cljs:312 msgid "dashboard.leave-team" msgstr "離開團隊" -#, fuzzy +#: src/app/main/ui/dashboard/templates.cljs:88, src/app/main/ui/dashboard/templates.cljs:163 msgid "dashboard.libraries-and-templates" msgstr "資料庫和範本" +#: src/app/main/ui/dashboard/templates.cljs:164 msgid "dashboard.libraries-and-templates.explore" msgstr "探索更多內容並了解如何貢獻" +#: src/app/main/ui/dashboard/import.cljs:365 msgid "dashboard.libraries-and-templates.import-error" msgstr "匯入範本時出現問題。範本並未匯入。" -#: src/app/main/ui/dashboard/libraries.cljs +#: src/app/main/ui/dashboard/libraries.cljs:53 msgid "dashboard.libraries-title" msgstr "檔案庫" -#: src/app/main/ui/dashboard/grid.cljs +#: src/app/main/ui/dashboard/placeholder.cljs:45 msgid "dashboard.loading-files" msgstr "正在載入檔案…" +#: src/app/main/ui/dashboard/fonts.cljs:431 msgid "dashboard.loading-fonts" msgstr "正在載入字型…" -#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:281, src/app/main/ui/dashboard/project_menu.cljs:100 msgid "dashboard.move-to" msgstr "移至" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:245 msgid "dashboard.move-to-multi" msgstr "將 %s 個檔案移動至" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:226 msgid "dashboard.move-to-other-team" msgstr "移至其他團隊" -#: src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/files.cljs +#: src/app/main/ui/dashboard/files.cljs:105, src/app/main/ui/dashboard/projects.cljs:252, src/app/main/ui/dashboard/projects.cljs:253 msgid "dashboard.new-file" msgstr "+ 新檔案" -#: src/app/main/data/dashboard.cljs +#: src/app/main/data/dashboard.cljs:958, src/app/main/data/dashboard.cljs:1181 msgid "dashboard.new-file-prefix" msgstr "新檔案" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:55 msgid "dashboard.new-project" msgstr "+ 新的專案" -#: src/app/main/data/dashboard.cljs +#: src/app/main/data/dashboard.cljs:726, src/app/main/data/dashboard.cljs:1184 msgid "dashboard.new-project-prefix" msgstr "新專案" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:60 msgid "dashboard.no-matches-for" msgstr "找不到符合 「%s」的項目" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:827 msgid "dashboard.no-projects-placeholder" msgstr "釘選的專案會在此顯示" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:33 msgid "dashboard.notifications.email-changed-successfully" msgstr "已成功更改您的電子郵件地址" -#: src/app/main/ui/auth/verify_token.cljs +#: src/app/main/ui/auth/verify_token.cljs:27 msgid "dashboard.notifications.email-verified-successfully" msgstr "已成功驗證您的電子郵件地址" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:37 msgid "dashboard.notifications.password-saved" msgstr "密碼已儲存成功!" -#: src/app/main/ui/dashboard/team.cljs +#: src/app/main/ui/dashboard/team.cljs:1081 msgid "dashboard.num-of-members" msgstr "%s 位成員" -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:267 msgid "dashboard.open-in-new-tab" msgstr "在新分頁開啟檔案" +#: src/app/main/ui/dashboard/files.cljs:117, src/app/main/ui/dashboard/projects.cljs:260, src/app/main/ui/dashboard/projects.cljs:261 msgid "dashboard.options" msgstr "選項" -#: src/app/main/ui/settings/password.cljs +#: src/app/main/ui/settings/password.cljs:106, src/app/main/ui/settings/password.cljs:119 msgid "dashboard.password-change" msgstr "修改密碼" -#: src/app/main/ui/dashboard/project_menu.cljs +#: src/app/main/ui/dashboard/pin_button.cljs:24, src/app/main/ui/dashboard/project_menu.cljs:95 msgid "dashboard.pin-unpin" msgstr "釘選/取消釘選" -#: src/app/main/ui/dashboard/projects.cljs +#: src/app/main/ui/dashboard/projects.cljs:51 msgid "dashboard.projects-title" msgstr "專案" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/settings/profile.cljs:86 msgid "dashboard.remove-account" msgstr "想要移除您的帳號嗎?" -#: src/app/main/ui/settings/profile.cljs +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, unused +msgid "dashboard.remove-shared" +msgstr "不再作為共用資料庫" + +#: src/app/main/ui/settings/profile.cljs:78 msgid "dashboard.save-settings" msgstr "儲存設定" -#: src/app/main/ui/dashboard/sidebar.cljs +#: src/app/main/ui/dashboard/sidebar.cljs:246, src/app/main/ui/dashboard/sidebar.cljs:247 msgid "dashboard.search-placeholder" msgstr "搜尋…" -#: src/app/main/ui/dashboard/search.cljs +#: src/app/main/ui/dashboard/search.cljs:55 msgid "dashboard.searching-for" msgstr "正在搜尋 “%s“…" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:56 msgid "dashboard.select-ui-language" msgstr "選擇介面語言" -#: src/app/main/ui/settings/options.cljs +#: src/app/main/ui/settings/options.cljs:63 msgid "dashboard.select-ui-theme" msgstr "選擇主題" -#: src/app/main/ui/dashboard/grid.cljs +#: src/app/main/ui/dashboard/projects.cljs:282 msgid "dashboard.show-all-files" msgstr "顯示所有檔案" -#: src/app/main/ui/dashboard/project_menu.cljs -msgid "dashboard.success-delete-project" -msgstr "已成功刪除您的專案" - -#: src/app/main/ui/dashboard/project_menu.cljs -msgid "dashboard.success-duplicate-project" -msgstr "你的專案已成功複製" - -#: src/app/main/ui/dashboard/grid.cljs, src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/file_menu.cljs -msgid "dashboard.success-move-file" -msgstr "已成功移動您的檔案" - -#: src/app/main/ui/dashboard/file_menu.cljs -msgid "dashboard.success-move-files" -msgstr "已成功移動您的檔案" - -#: src/app/main/ui/dashboard/project_menu.cljs -msgid "dashboard.success-move-project" -msgstr "已成功移動您的專案" - -#: src/app/main/ui/dashboard/team.cljs -msgid "dashboard.team-info" -msgstr "團隊資訊" - -#: src/app/main/ui/dashboard/team.cljs -msgid "dashboard.team-members" -msgstr "團隊成員" - -#: src/app/main/ui/dashboard/team.cljs -msgid "dashboard.team-projects" -msgstr "團隊專案" - -#: src/app/main/ui/settings/options.cljs -msgid "dashboard.theme-change" -msgstr "介面主題" - -#: src/app/main/ui/dashboard/search.cljs -msgid "dashboard.title-search" -msgstr "搜尋結果" - -#: src/app/main/ui/dashboard/search.cljs -msgid "dashboard.type-something" -msgstr "輸入以搜尋" - -#: src/app/main/ui/settings/profile.cljs, src/app/main/ui/settings/password.cljs, src/app/main/ui/settings/options.cljs -msgid "dashboard.update-settings" -msgstr "更新設定" - -msgid "dashboard.webhooks.active" -msgstr "正在生效" - -msgid "dashboard.webhooks.active.explain" -msgstr "當觸發此Webhook時,將會傳遞事件詳細信息" - -msgid "dashboard.webhooks.content-type" -msgstr "內容類型" - -msgid "dashboard.webhooks.create" -msgstr "設置Webhook" - -msgid "dashboard.webhooks.create.success" -msgstr "成功添加Webhook。" - -msgid "dashboard.webhooks.description" -msgstr "當Penpot 發生特定事件時,Webhook 是一種使其他網站和應用程式收到通知的簡單方法。我們會向你指定的每個網址發送 POST 請求。" - -msgid "dashboard.webhooks.empty.add-one" -msgstr "按「設置Webhook」添加。" - -msgid "dashboard.webhooks.empty.no-webhooks" -msgstr "未有設置任何Webhook。" - -msgid "dashboard.webhooks.update.success" -msgstr "成功更新Webhook。" - -#: src/app/main/ui/settings.cljs -msgid "dashboard.your-account-title" -msgstr "您的帳號" - -#: src/app/main/ui/settings/profile.cljs -msgid "dashboard.your-email" -msgstr "電子郵件" - -#: src/app/main/ui/settings/profile.cljs -msgid "dashboard.your-name" -msgstr "你的名字" - -#: src/app/main/ui/dashboard/search.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/libraries.cljs, src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/file_menu.cljs -msgid "dashboard.your-penpot" -msgstr "你的 Penpot" - -#: src/app/main/ui/alert.cljs -msgid "ds.alert-ok" -msgstr "確認" - -#: src/app/main/ui/alert.cljs -msgid "ds.alert-title" -msgstr "注意" - -#: src/app/main/ui/confirm.cljs -msgid "ds.confirm-cancel" -msgstr "取消" - -#: src/app/main/ui/confirm.cljs -msgid "ds.confirm-ok" -msgstr "Ok" - -#: src/app/main/ui/confirm.cljs, src/app/main/ui/confirm.cljs -msgid "ds.confirm-title" -msgstr "您確定嗎?" - -#: src/app/main/ui/auth/login.cljs -msgid "errors.auth-provider-not-configured" -msgstr "尚未配置身份驗證供應商。" - -msgid "errors.auth.unable-to-login" -msgstr "閣下尚未登入。" - -msgid "errors.bad-font" -msgstr "無法載入 %s 字體" - -msgid "errors.bad-font-plural" -msgstr "無法載入 %s 字體" - -#: src/app/main/data/workspace.cljs -msgid "errors.clipboard-not-implemented" -msgstr "你的瀏覽器無法執行此作業" - -#: src/app/main/ui/auth/verify_token.cljs, src/app/main/ui/settings/change_email.cljs -msgid "errors.email-already-exists" -msgstr "電子信箱已被使用" - -#: src/app/main/ui/auth/verify_token.cljs -msgid "errors.email-already-validated" -msgstr "電子信箱已完成驗證。" - -msgid "errors.email-as-password" -msgstr "你的電郵地址不能用作密碼" - -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/settings/change_email.cljs, src/app/main/ui/dashboard/team.cljs -msgid "errors.email-has-permanent-bounces" -msgstr "電子郵件«%s»有許多永久退件報告。" - -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs, src/app/main/ui/auth/recovery_request.cljs -msgid "errors.email-invalid" -msgstr "請輸入一個有效的電郵地址" - -#: src/app/main/ui/settings/change_email.cljs -msgid "errors.email-invalid-confirmation" -msgstr "電郵地址必須相同" - -msgid "errors.email-spam-or-permanent-bounces" -msgstr "電子郵件 «%s» 已被報告為垃圾郵件或永久退件。" - -#: src/app/main/errors.cljs -msgid "errors.feature-mismatch" -msgstr "你正開啟的檔案包含Penpot尚未支援或停用'%s' 功能。" - -#: src/app/main/errors.cljs -msgid "errors.feature-not-supported" -msgstr "不支援 「%s」功能。" - -#: src/app/main/ui/auth/verify_token.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/dashboard/team.cljs -msgid "errors.generic" -msgstr "發生了一些錯誤。" - -#: src/app/main/ui/components/color_input.cljs -msgid "errors.invalid-color" -msgstr "顏色無效" - -#: src/app/main/ui/auth/verify_token.cljs -msgid "errors.invite-invalid" -msgstr "邀請無效" - -msgid "errors.invite-invalid.info" -msgstr "本邀請或已被取消或過期。" - -#: src/app/main/ui/auth/login.cljs -msgid "errors.ldap-disabled" -msgstr "LDAP 驗證已停用。" - -#: src/app/main/errors.cljs -msgid "errors.max-quote-reached" -msgstr "你已達「%s」上限。請聯絡支援。" - -#: src/app/main/data/workspace/persistence.cljs -msgid "errors.media-too-large" -msgstr "影像檔案過大,無法插入。" - -#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs -msgid "errors.media-type-mismatch" -msgstr "似乎圖形檔案的格式內容與檔案擴展名不匹配。" - -#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/workspace/persistence.cljs, src/app/main/data/workspace/persistence.cljs, src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs -msgid "errors.media-type-not-allowed" -msgstr "這好像不是個能用的影像。" - -#: src/app/main/ui/dashboard/team.cljs -msgid "errors.member-is-muted" -msgstr "您邀請的人員設置了電子郵件靜音(垃圾郵件報告或高退件率)。" - -#: src/app/main/ui/settings/password.cljs -msgid "errors.password-invalid-confirmation" -msgstr "確認密碼必須相符" - -#: src/app/main/ui/settings/password.cljs -msgid "errors.password-too-short" -msgstr "密碼至少需有 8 個字元" - -msgid "errors.profile-blocked" -msgstr "已封鎖用戶" - -#: src/app/main/ui/auth/register.cljs -msgid "errors.registration-disabled" -msgstr "目前並不開放註冊。" - -msgid "errors.team-leave.insufficient-members" -msgstr "成員不足,無法離開團隊,您可能希望將其刪除。" - -msgid "errors.team-leave.member-does-not-exists" -msgstr "查無此人。" - -msgid "errors.team-leave.owner-cant-leave" -msgstr "團隊擁有者不能離開其團隊,你須重新委任團隊擁有者角色。" - -#: src/app/main/data/media.cljs, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs -msgid "errors.unexpected-error" -msgstr "發生了預料之外的錯誤。" - -#: src/app/main/ui/auth/verify_token.cljs -msgid "errors.unexpected-token" -msgstr "未知的 token" - -msgid "errors.webhooks.connection" -msgstr "連線錯誤,無法接上網址" - -msgid "errors.webhooks.invalid-uri" -msgstr "網址未能通過驗証。" - -#, fuzzy -msgid "errors.webhooks.last-delivery" -msgstr "上一次傳送未能成功。" - -msgid "errors.webhooks.ssl-validation" -msgstr "SSL證書驗證錯誤。" - -msgid "errors.webhooks.timeout" -msgstr "連線逾時" - -msgid "errors.webhooks.unexpected" -msgstr "驗證時出現未有預料的錯誤" - -msgid "errors.webhooks.unexpected-status" -msgstr "未預料狀態 %s" - -#: src/app/main/ui/auth/login.cljs -msgid "errors.wrong-credentials" -msgstr "電子郵件或密碼似乎有誤。" - -#: src/app/main/ui/settings/password.cljs -msgid "errors.wrong-old-password" -msgstr "舊密碼不正確" - -#: src/app/main/ui/settings/feedback.cljs -msgid "feedback.description" -msgstr "狀況描述" - -#: src/app/main/ui/settings/feedback.cljs -msgid "feedback.discourse-go-to" -msgstr "前往 Penpot 討論區" - -#: src/app/main/ui/settings/feedback.cljs -msgid "feedback.discourse-subtitle1" -msgstr "歡迎光臨。如需協助,在發文求助前請先查閱相類內容。" - -#: src/app/main/ui/settings/feedback.cljs -msgid "feedback.discourse-title" -msgstr "Penpot 社群" - -#: src/app/main/ui/settings/feedback.cljs -msgid "feedback.subject" -msgstr "主旨" - -#: src/app/main/ui/settings/feedback.cljs -msgid "feedback.subtitle" -msgstr "請描述您來函的因由,分類說明是問題、想法還是疑問。我們將儘快回覆。" - -#: src/app/main/ui/settings/feedback.cljs -msgid "feedback.title" -msgstr "電子郵件" - -#: src/app/main/ui/settings/feedback.cljs -msgid "feedback.twitter-go-to" -msgstr "前往X" - -#: src/app/main/ui/settings/feedback.cljs -msgid "feedback.twitter-subtitle1" -msgstr "協助解你的決技術問題。" - -#: src/app/main/ui/settings/feedback.cljs -msgid "feedback.twitter-title" -msgstr "X支援帳戶" - -#: src/app/main/ui/settings/password.cljs -msgid "generic.error" -msgstr "出現錯誤" - -#: src/app/main/ui/inspect/attributes/blur.cljs -msgid "inspect.attributes.blur" -msgstr "模糊" - -#: src/app/main/ui/inspect/attributes/blur.cljs -msgid "inspect.attributes.blur.value" -msgstr "數值" - -#: src/app/main/ui/inspect/attributes/common.cljs -msgid "inspect.attributes.color.hex" -msgstr "HEX" - -#: src/app/main/ui/inspect/attributes/common.cljs -msgid "inspect.attributes.color.hsla" -msgstr "HSLA" - -#: src/app/main/ui/inspect/attributes/common.cljs -msgid "inspect.attributes.color.rgba" -msgstr "RGBA" - -#: src/app/main/ui/inspect/attributes/fill.cljs -msgid "inspect.attributes.fill" -msgstr "填充" - -#: src/app/main/ui/inspect/attributes/image.cljs -msgid "inspect.attributes.image.download" -msgstr "下載原始圖片" - -#: src/app/main/ui/inspect/attributes/image.cljs -msgid "inspect.attributes.image.height" -msgstr "高度" - -#: src/app/main/ui/inspect/attributes/image.cljs -msgid "inspect.attributes.image.width" -msgstr "寬度" - -#: src/app/main/ui/inspect/attributes/layout.cljs -msgid "inspect.attributes.layout" -msgstr "樣式" - -#: src/app/main/ui/inspect/attributes/layout.cljs -msgid "inspect.attributes.layout.height" -msgstr "高度" - -#: src/app/main/ui/inspect/attributes/layout.cljs -msgid "inspect.attributes.layout.left" -msgstr "左" - -#: src/app/main/ui/inspect/attributes/layout.cljs, src/app/main/ui/inspect/attributes/layout.cljs -msgid "inspect.attributes.layout.radius" -msgstr "圓角半徑" - -#: src/app/main/ui/inspect/attributes/layout.cljs -msgid "inspect.attributes.layout.rotation" -msgstr "旋轉" - -#: src/app/main/ui/inspect/attributes/layout.cljs -msgid "inspect.attributes.layout.width" -msgstr "寬度" - -#: src/app/main/ui/inspect/attributes/shadow.cljs -msgid "inspect.attributes.shadow" -msgstr "陰影" - -msgid "inspect.attributes.stroke.style.dotted" -msgstr "點線" - -msgid "inspect.attributes.stroke.style.none" -msgstr "無" - -msgid "inspect.attributes.stroke.style.solid" -msgstr "實線" - -#: src/app/main/ui/inspect/attributes/stroke.cljs -msgid "inspect.attributes.stroke.width" -msgstr "寬度" - -#: src/app/main/ui/inspect/attributes/text.cljs -msgid "inspect.attributes.typography" -msgstr "字體" - -#: src/app/main/ui/inspect/attributes/text.cljs -msgid "inspect.attributes.typography.font-family" -msgstr "字型家族" - -#: src/app/main/ui/inspect/attributes/text.cljs -msgid "inspect.attributes.typography.font-size" -msgstr "字體大小" - -msgid "inspect.attributes.typography.text-decoration.none" -msgstr "無" - -msgid "inspect.attributes.typography.text-decoration.strikethrough" -msgstr "刪除線" - -msgid "inspect.attributes.typography.text-decoration.underline" -msgstr "底線" - -msgid "inspect.attributes.typography.text-transform.lowercase" -msgstr "全小寫" - -msgid "inspect.attributes.typography.text-transform.none" -msgstr "無" - -msgid "inspect.attributes.typography.text-transform.titlecase" -msgstr "詞首字母大寫" - -msgid "inspect.attributes.typography.text-transform.uppercase" -msgstr "全大寫" - -msgid "inspect.empty.help" -msgstr "如果您想瞭解更多關於設計檢查的資訊,請訪問Penpot的幫助中心" - -msgid "inspect.empty.more-info" -msgstr "有關檢查的詳細資訊" - -msgid "inspect.tabs.code.selected.circle" -msgstr "圖形" - -msgid "inspect.tabs.code.selected.curve" -msgstr "曲線" - -msgid "inspect.tabs.code.selected.frame" -msgstr "畫板" - -msgid "inspect.tabs.code.selected.group" -msgstr "群組" - -msgid "inspect.tabs.code.selected.image" -msgstr "圖像" - -msgid "inspect.tabs.code.selected.path" -msgstr "路徑" - -msgid "inspect.tabs.code.selected.rect" -msgstr "矩形" - -msgid "inspect.tabs.code.selected.svg-raw" -msgstr "SVG" - -msgid "inspect.tabs.code.selected.text" -msgstr "文字" - -#: src/app/main/ui/inspect/right_sidebar.cljs -msgid "inspect.tabs.info" -msgstr "資訊" - -msgid "labels.accept" -msgstr "接受" - -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs -msgid "labels.admin" -msgstr "管理員" - -#: src/app/main/ui/workspace/comments.cljs -msgid "labels.all" -msgstr "全部" - -msgid "labels.and" -msgstr "及" - -#: src/app/main/ui/static.cljs -msgid "labels.bad-gateway.desc-message" -msgstr "伺服器正在進行小型維修,請稍後重試。" - -#: src/app/main/ui/static.cljs -msgid "labels.bad-gateway.main-message" -msgstr "無效的閘道" - -#: src/app/main/ui/dashboard/sidebar.cljs -msgid "labels.cancel" -msgstr "取消" - -msgid "labels.close" -msgstr "關閉" - -#: src/app/main/ui/dashboard/comments.cljs -msgid "labels.comments" -msgstr "評論" - -#: src/app/main/ui/dashboard/sidebar.cljs -msgid "labels.community" -msgstr "社群" - -#: src/app/main/ui/settings/password.cljs -msgid "labels.confirm-password" -msgstr "確認密碼" - -msgid "labels.continue" -msgstr "繼續" - -msgid "labels.continue-with-penpot" -msgstr "以Penpot帳戶繼續" - -#: src/app/main/ui/workspace/sidebar/assets.cljs -msgid "labels.create" -msgstr "建立" - -#: src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/dashboard/team_form.cljs -msgid "labels.create-team" -msgstr "建立新團隊" - -#: src/app/main/ui/dashboard/team_form.cljs -msgid "labels.create-team.placeholder" -msgstr "輸入新團隊名稱" - -#: src/app/main/ui/settings/sidebar.cljs -msgid "labels.dashboard" -msgstr "控制台" - -#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs -msgid "labels.delete" -msgstr "刪除" - -#: src/app/main/ui/dashboard/team.cljs -msgid "labels.delete-invitation" -msgstr "刪除邀請" - -#: src/app/main/ui/dashboard/file_menu.cljs -msgid "labels.delete-multi-files" -msgstr "刪除 %s 檔案" - -#: src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/files.cljs, src/app/main/ui/dashboard/files.cljs, src/app/main/ui/dashboard/file_menu.cljs -msgid "labels.drafts" -msgstr "草稿" - -#: src/app/main/ui/comments.cljs -msgid "labels.edit" -msgstr "編輯" - -msgid "labels.edit-file" -msgstr "編輯檔案" - -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs -msgid "labels.editor" -msgstr "編輯者" - -#: src/app/main/ui/dashboard/team.cljs -msgid "labels.expired-invitation" -msgstr "過期" - -msgid "labels.export" -msgstr "匯出" - -#: src/app/main/ui/settings/feedback.cljs -msgid "labels.feedback-disabled" -msgstr "已停用迴響" - -#: src/app/main/ui/settings/feedback.cljs -msgid "labels.feedback-sent" -msgstr "已發送迴響" - -msgid "labels.font-family" -msgstr "字型家族" - -msgid "labels.font-variants" -msgstr "樣式" - -msgid "labels.fonts" -msgstr "字型" - -#: src/app/main/ui/dashboard/sidebar.cljs -msgid "labels.github-repo" -msgstr "Github 倉庫" - -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs -msgid "labels.give-feedback" -msgstr "給予迴響" - -msgid "labels.go-back" -msgstr "返回" - -#: src/app/main/ui/dashboard/sidebar.cljs -msgid "labels.help-center" -msgstr "説明中心" - -#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs -msgid "labels.hide-resolved-comments" -msgstr "隱藏已解決的評論" - -msgid "labels.installed-fonts" -msgstr "已安裝的字體" - -#: src/app/main/ui/static.cljs -msgid "labels.internal-error.main-message" -msgstr "內部錯誤" - -#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs -msgid "labels.invitations" -msgstr "邀請" - -#: src/app/main/ui/settings/options.cljs -msgid "labels.language" -msgstr "語言" - -msgid "labels.log-or-sign" -msgstr "登錄或註冊" - -#: src/app/main/ui/settings.cljs, src/app/main/ui/dashboard/sidebar.cljs -msgid "labels.logout" -msgstr "登出" - -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs -msgid "labels.member" -msgstr "成員" - -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs -msgid "labels.members" -msgstr "成員" - -#: src/app/main/ui/settings/password.cljs -msgid "labels.new-password" -msgstr "新密碼" - -#: src/app/main/ui/dashboard/team.cljs -msgid "labels.no-invitations" -msgstr "沒有待處理的邀請。" - -#: src/app/main/ui/static.cljs -msgid "labels.not-found.desc-message" -msgstr "此頁面可能不存在,或者您無權訪問。" - -#: src/app/main/ui/static.cljs -msgid "labels.not-found.main-message" -msgstr "喔不!" - -#: src/app/main/ui/dashboard/team.cljs -msgid "labels.num-of-files" -msgid_plural "labels.num-of-files" -msgstr[0] "%s 個檔案" - -#: src/app/main/ui/dashboard/team.cljs -msgid "labels.num-of-projects" -msgid_plural "labels.num-of-projects" -msgstr[0] "%s 個專案" - -#: src/app/main/ui/settings/password.cljs -msgid "labels.old-password" -msgstr "原有密碼" - -#: src/app/main/ui/workspace/comments.cljs -msgid "labels.only-yours" -msgstr "只有你" - -msgid "labels.or" -msgstr "或" - -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs -msgid "labels.owner" -msgstr "擁有者" - -#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs -msgid "labels.password" -msgstr "密碼" - -#: src/app/main/ui/dashboard/team.cljs -msgid "labels.pending-invitation" -msgstr "待辦" - -#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs -msgid "labels.profile" -msgstr "個人檔案" - -#: src/app/main/ui/dashboard/sidebar.cljs -msgid "labels.projects" -msgstr "專案" - -#: src/app/main/ui/settings/sidebar.cljs -msgid "labels.release-notes" -msgstr "更新日誌" - -#: src/app/main/ui/workspace.cljs -msgid "labels.reload-file" -msgstr "重新載入檔案" - -#: src/app/main/ui/workspace/libraries.cljs, src/app/main/ui/dashboard/team.cljs -msgid "labels.remove" -msgstr "移除" - -#: src/app/main/ui/dashboard/team.cljs -msgid "labels.remove-member" -msgstr "移除團隊成員" - -#: src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs -msgid "labels.rename" -msgstr "重新命名" - -#: src/app/main/ui/dashboard/team_form.cljs -msgid "labels.rename-team" -msgstr "重新命名團隊" - -#: src/app/main/ui/dashboard/team.cljs -msgid "labels.resend-invitation" -msgstr "重新發送邀請" - -#: src/app/main/ui/static.cljs, src/app/main/ui/static.cljs, src/app/main/ui/static.cljs -msgid "labels.retry" -msgstr "重試" - -#: src/app/main/ui/dashboard/team.cljs -msgid "labels.role" -msgstr "角色" - -msgid "labels.save" -msgstr "儲存" - -msgid "labels.search-font" -msgstr "搜尋字體" - -#: src/app/main/ui/settings/feedback.cljs -msgid "labels.send" -msgstr "傳送" - -#: src/app/main/ui/settings/feedback.cljs -msgid "labels.sending" -msgstr "正在傳送…" - -#: src/app/main/ui/static.cljs -msgid "labels.service-unavailable.desc-message" -msgstr "系統正在進行定期保養。" - -#: src/app/main/ui/static.cljs -msgid "labels.service-unavailable.main-message" -msgstr "暫停服務" - -#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs -msgid "labels.settings" -msgstr "設定" - -#: src/app/main/ui/dashboard/sidebar.cljs -msgid "labels.shared-libraries" -msgstr "檔案庫" - -#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs -msgid "labels.show-your-comments" -msgstr "僅顯示您的評論" - -#: src/app/main/ui/dashboard/sidebar.cljs -msgid "labels.tutorials" -msgstr "教學" - -#: src/app/main/ui/settings/profile.cljs -msgid "labels.update" -msgstr "更新" - -msgid "labels.upload" -msgstr "上傳" - -msgid "labels.uploading" -msgstr "正在上傳…" - -msgid "labels.view-only" -msgstr "僅供查閱" - -#: src/app/main/ui/dashboard/team.cljs -msgid "labels.viewer" -msgstr "檢視者" - -msgid "labels.webhooks" -msgstr "Webhook" - -#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs -msgid "labels.you" -msgstr "(你)" - -#: src/app/main/ui/dashboard/sidebar.cljs -msgid "labels.your-account" -msgstr "你的帳戶" - -#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs -msgid "media.loading" -msgstr "正在載入圖片…" - -#: src/app/main/ui/settings/change_email.cljs -msgid "modals.change-email.confirm-email" -msgstr "驗證新電子郵件" - -#: src/app/main/ui/settings/change_email.cljs -msgid "modals.change-email.info" -msgstr "我們將寄送郵件至您目前的電子郵件信箱 “%s” 以確認身分。" - -#: src/app/main/ui/settings/change_email.cljs -msgid "modals.change-email.new-email" -msgstr "新電郵" - -#: src/app/main/ui/settings/change_email.cljs -msgid "modals.change-email.submit" -msgstr "更改電子郵件" - -#: src/app/main/ui/settings/change_email.cljs -msgid "modals.change-email.title" -msgstr "更改你的電郵" - -msgid "modals.create-webhook.submit-label" -msgstr "設置Webhook" - -msgid "modals.create-webhook.title" -msgstr "設置Webhook" - -msgid "modals.create-webhook.url.label" -msgstr "訊息負載網址" - -msgid "modals.create-webhook.url.placeholder" -msgstr "https://example.com/postreceive" - -#: src/app/main/ui/settings/delete_account.cljs -msgid "modals.delete-account.confirm" -msgstr "是的,請刪除我的帳號" - -#: src/app/main/ui/settings/delete_account.cljs -msgid "modals.delete-account.info" -msgstr "刪除你的帳戶後,你會失去現有專案及檔案。" - -#: src/app/main/ui/settings/delete_account.cljs -msgid "modals.delete-account.title" -msgstr "您確定要刪除您的帳號嗎?" - -#: src/app/main/ui/dashboard/file_menu.cljs -msgid "modals.delete-file-confirm.accept" -msgstr "刪除檔案" - -#: src/app/main/ui/dashboard/file_menu.cljs -msgid "modals.delete-file-confirm.message" -msgstr "您確定要刪除這個檔案嗎?" - -#: src/app/main/ui/dashboard/file_menu.cljs -msgid "modals.delete-file-confirm.title" -msgstr "正在刪除檔案" - -#: src/app/main/ui/dashboard/file_menu.cljs -msgid "modals.delete-file-multi-confirm.accept" -msgstr "刪除多個檔案" - -#: src/app/main/ui/dashboard/file_menu.cljs -msgid "modals.delete-file-multi-confirm.message" -msgstr "您確定要刪除 %s 個檔案嗎?" - -#: src/app/main/ui/dashboard/file_menu.cljs -msgid "modals.delete-file-multi-confirm.title" -msgstr "正在刪除 %s 個檔案" - -msgid "modals.delete-font-variant.title" -msgstr "正在刪除字體樣式" - -#: src/app/main/ui/workspace/sidebar/sitemap.cljs -msgid "modals.delete-page.body" -msgstr "您確定要刪除這個頁面嗎?" - -#: src/app/main/ui/dashboard/project_menu.cljs -msgid "modals.delete-project-confirm.accept" -msgstr "刪除專案" - -#: src/app/main/ui/dashboard/project_menu.cljs -msgid "modals.delete-project-confirm.message" -msgstr "您確定要刪除這個專案嗎?" - -#: src/app/main/ui/dashboard/project_menu.cljs -msgid "modals.delete-project-confirm.title" -msgstr "刪除專案" - -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -msgid "modals.delete-shared-confirm.accept" -msgid_plural "modals.delete-shared-confirm.accept" -msgstr[0] "刪除檔案" - -#: src/app/main/ui/dashboard/sidebar.cljs -msgid "modals.delete-team-confirm.accept" -msgstr "刪除團體" - -#: src/app/main/ui/dashboard/sidebar.cljs -msgid "modals.delete-team-confirm.title" -msgstr "正在刪除團體" - -#: src/app/main/ui/dashboard/team.cljs -msgid "modals.delete-team-member-confirm.accept" -msgstr "刪除成員" - -#: src/app/main/ui/dashboard/team.cljs -msgid "modals.delete-team-member-confirm.title" -msgstr "刪除團隊成員" - -msgid "modals.delete-webhook.title" -msgstr "刪除 Webhook" - -msgid "modals.edit-webhook.submit-label" -msgstr "修改 Webhook" - -msgid "modals.edit-webhook.title" -msgstr "修改 Webhook" - -msgid "modals.leave-and-reassign.forbidden" -msgstr "如果沒有其他成員晉升為團隊的擁有者,您則不能離開團隊。或者您可以選擇刪除該團隊。" - -#: src/app/main/ui/dashboard/sidebar.cljs -msgid "modals.leave-and-reassign.title" -msgstr "離開前" - -#: src/app/main/ui/dashboard/sidebar.cljs -msgid "modals.leave-confirm.accept" -msgstr "離開團隊" - -#: src/app/main/ui/dashboard/sidebar.cljs -msgid "modals.leave-confirm.message" -msgstr "您確定要離開這個團隊嗎?" - -#: src/app/main/ui/dashboard/sidebar.cljs -msgid "modals.leave-confirm.title" -msgstr "正在離開團隊" - -#: src/app/main/ui/dashboard/team.cljs -msgid "modals.promote-owner-confirm.message" -msgstr "您是此團隊的當前擁有者。您是否確實要使 %s 成為團隊的新擁有者?" - -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs -msgid "modals.update-remote-component.accept" -msgstr "更新" - -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs -msgid "modals.update-remote-component.cancel" -msgstr "取消" - -#: src/app/main/ui/settings/change_email.cljs -msgid "notifications.validation-email-sent" -msgstr "已將驗證信傳送至 %s。請查看您的電子郵件信箱!" - -msgid "onboarding-v2.before-start.desc1" -msgstr "我們有許多協助你開始使用Penpot的資源,例如使用者指南及我們的 Youtube 頻道。" - -msgid "onboarding-v2.newsletter.privacy2" -msgstr "我們只會向您發送相關電子郵件。您可以隨時在我們的通訊中通過取消訂閱連結來取消訂閱。" - -msgid "onboarding-v2.welcome.desc1" -msgstr "Penpot係由Kaleidos及與社群成員共同協作的開放原始碼軟件。所有人皆可以下方法協作:" - -msgid "onboarding-v2.welcome.desc2" -msgstr "這是與整個社群和 Penpot 核心團隊一起學習、分享和討論 Penpot、它的現在和未來的公共空間。" - -msgid "onboarding.welcome.alt" -msgstr "Penpot" - -#: src/app/main/ui/auth/recovery.cljs -msgid "profile.recovery.go-to-login" -msgstr "前往登入" - -#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs, src/app/main/ui/workspace/sidebar/options/menus/layer.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs, src/app/main/ui/workspace/sidebar/options/menus/blur.cljs -msgid "settings.multiple" -msgstr "混合" - -msgid "shortcut-section.dashboard" -msgstr "儀表板" - -msgid "shortcut-section.viewer" -msgstr "檢視者" - -msgid "shortcut-section.workspace" -msgstr "工作區" - -msgid "shortcut-subsection.edit" -msgstr "編輯" - -msgid "shortcut-subsection.main-menu" -msgstr "主功能表" - -msgid "shortcut-subsection.tools" -msgstr "工具" - -msgid "shortcut-subsection.zoom-viewer" -msgstr "縮放" - -msgid "shortcut-subsection.zoom-workspace" -msgstr "縮放" - -msgid "shortcuts.add-comment" -msgstr "評論" - -msgid "shortcuts.copy" -msgstr "複製" - -msgid "shortcuts.cut" -msgstr "剪下" - -msgid "shortcuts.delete" -msgstr "刪除" - -msgid "shortcuts.draw-curve" -msgstr "曲線" - -msgid "shortcuts.draw-frame" -msgstr "畫板" - -msgid "shortcuts.draw-path" -msgstr "路徑" - -msgid "shortcuts.draw-rect" -msgstr "矩形" - -msgid "shortcuts.draw-text" -msgstr "文字" - -msgid "shortcuts.duplicate" -msgstr "複本" - -msgid "shortcuts.escape" -msgstr "取消" - -msgid "shortcuts.go-to-search" -msgstr "搜尋" - -msgid "shortcuts.group" -msgstr "群組" - -msgid "shortcuts.or" -msgstr " 或 " - -msgid "shortcuts.toggle-alignment" -msgstr "切換動態對齊" - -msgid "shortcuts.toggle-colorpalette" -msgstr "切換調色板" - -msgid "shortcuts.toggle-focus-mode" -msgstr "切換專注模式" - -msgid "shortcuts.toggle-history" -msgstr "切換歷史記錄" - -msgid "shortcuts.toggle-layers" -msgstr "切換圖層" - -msgid "shortcuts.toggle-lock" -msgstr "鎖定選擇" - -msgid "shortcuts.toggle-lock-size" -msgstr "鎖定比例" - -msgid "shortcuts.ungroup" -msgstr "取消群組" - -#: src/app/main/ui/dashboard/files.cljs -msgid "title.dashboard.files" -msgstr "%s – Penpot" - -#: src/app/main/ui/dashboard/fonts.cljs -msgid "title.dashboard.fonts" -msgstr "字型 - %s - Penpot" - -#: src/app/main/ui/dashboard/projects.cljs -msgid "title.dashboard.projects" -msgstr "專案 - %s - Penpot" - -#: src/app/main/ui/dashboard/search.cljs -msgid "title.dashboard.search" -msgstr "搜尋 - %s - Penpot" - -#: src/app/main/ui/auth/verify_token.cljs, src/app/main/ui/auth.cljs -msgid "title.default" -msgstr "Penpot - 給團隊設計的自由" - -#: src/app/main/ui/settings/feedback.cljs -msgid "title.settings.feedback" -msgstr "提供回饋 - Penpot" - -#: src/app/main/ui/settings/options.cljs -msgid "title.settings.options" -msgstr "設定 - Penpot" - -#: src/app/main/ui/settings/password.cljs -msgid "title.settings.password" -msgstr "密碼 - Penpot" - -#: src/app/main/ui/settings/profile.cljs -msgid "title.settings.profile" -msgstr "個人資料 - Penpot" - -#: src/app/main/ui/dashboard/team.cljs -msgid "title.team-members" -msgstr "成員 - %s - Penpot" - -#: src/app/main/ui/dashboard/team.cljs -msgid "title.team-settings" -msgstr "設定 - %s - Penpot" - -#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs -msgid "title.viewer" -msgstr "%s - 檢視模式 - Penpot" - -#: src/app/main/ui/workspace.cljs -msgid "title.workspace" -msgstr "%s - Penpot" - -msgid "viewer.breaking-change.description" -msgstr "這個共用連結已失效,建立一個新連結,或向擁有者要求一個。" - -msgid "viewer.breaking-change.message" -msgstr "抱歉!" - -#: src/app/main/ui/viewer/header.cljs -msgid "viewer.header.interactions" -msgstr "交互作用" - -#: src/app/main/ui/viewer/header.cljs -msgid "viewer.header.share.copy-link" -msgstr "複製連結" - -#: src/app/main/ui/viewer/header.cljs -msgid "viewer.header.sitemap" -msgstr "網站地圖" - -#: src/app/main/ui/workspace/sidebar/assets.cljs -msgid "workspace.assets.assets" -msgstr "資產" - -#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs -msgid "workspace.assets.colors" -msgstr "顏色" - -#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs -msgid "workspace.assets.components" -msgstr "元件" - -#: src/app/main/ui/workspace/sidebar/sitemap.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs -msgid "workspace.assets.delete" -msgstr "刪除" - -#: src/app/main/ui/workspace/sidebar/sitemap.cljs, src/app/main/ui/workspace/sidebar/assets.cljs -msgid "workspace.assets.duplicate" -msgstr "複本" - -#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs -msgid "workspace.assets.edit" -msgstr "編輯" - -#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs -msgid "workspace.assets.graphics" -msgstr "圖形" - -#: src/app/main/ui/workspace/sidebar/assets.cljs -msgid "workspace.assets.group" -msgstr "群組" - -#: src/app/main/ui/workspace/sidebar/assets.cljs -msgid "workspace.assets.libraries" -msgstr "檔案庫" - -#: src/app/main/ui/workspace/sidebar/sitemap.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs -msgid "workspace.assets.rename" -msgstr "重新命名" - -#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs -msgid "workspace.assets.typography" -msgstr "字體排版設計" - -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -msgid "workspace.assets.typography.font-id" -msgstr "字型" - -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -msgid "workspace.assets.typography.font-size" -msgstr "尺寸" - -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -msgid "workspace.assets.typography.font-variant-id" -msgstr "變體" - -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, src/app/main/ui/inspect/attributes/text.cljs, src/app/main/ui/inspect/attributes/text.cljs -#, fuzzy -msgid "workspace.assets.typography.sample" -msgstr "Ag" - -#: src/app/main/ui/workspace/sidebar/assets.cljs -msgid "workspace.assets.ungroup" -msgstr "取消群組" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.option.file" -msgstr "檔案" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.option.preferences" -msgstr "偏好設定" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.option.view" -msgstr "檢視" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.menu.select-all" -msgstr "全選" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.reset-zoom" -msgstr "重設" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.saved" -msgstr "已儲存" - -#: src/app/main/ui/workspace/header.cljs -msgid "workspace.header.saving" -msgstr "正在儲存" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.add" -msgstr "新增" - -#: src/app/main/ui/workspace/colorpicker.cljs -msgid "workspace.libraries.colors.hsv" -msgstr "HSV" - -#: src/app/main/ui/workspace/colorpicker.cljs -msgid "workspace.libraries.colors.rgba" -msgstr "RGBA" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.libraries" -msgstr "檔案庫" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.library" -msgstr "檔案庫" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.update" -msgstr "更新" - -#: src/app/main/ui/workspace/libraries.cljs -msgid "workspace.libraries.updates" -msgstr "更新" - -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs -msgid "workspace.options.blur-options.title" -msgstr "模糊" - -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs -msgid "workspace.options.component" -msgstr "元件" - -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -msgid "workspace.options.constraints" -msgstr "約束條件" - -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -msgid "workspace.options.constraints.bottom" -msgstr "下" - -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -msgid "workspace.options.constraints.center" -msgstr "中" - -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -msgid "workspace.options.constraints.fix-when-scrolling" -msgstr "滾動時固定位置" - -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -msgid "workspace.options.constraints.left" -msgstr "左" - -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -msgid "workspace.options.constraints.leftright" -msgstr "左和右" - -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -msgid "workspace.options.constraints.right" -msgstr "右" - -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -msgid "workspace.options.constraints.top" -msgstr "上" - -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -msgid "workspace.options.constraints.topbottom" -msgstr "上和下" - -#: src/app/main/ui/workspace/sidebar/options.cljs -msgid "workspace.options.design" -msgstr "設計" - -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs -msgid "workspace.options.export" -msgstr "匯出" - -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs -msgid "workspace.options.export-multiple" -msgstr "匯出已選取項目" - -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs -msgid "workspace.options.export-object" -msgid_plural "workspace.options.export-object" -msgstr[0] "匯出 %s 元素" - -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs -msgid "workspace.options.export.suffix" -msgstr "後綴" - -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs, src/app/main/ui/workspace/header.cljs -msgid "workspace.options.exporting-complete" -msgstr "完成匯出" - -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs -msgid "workspace.options.exporting-object" -msgstr "正在匯出…" - -#: 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.exporting-object-error" -msgstr "匯出失敗" - -#: 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.exporting-object-slow" -msgstr "匯出異常緩慢" - -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs -msgid "workspace.options.fill" -msgstr "填充" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.auto" -msgstr "自動" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.column" -msgstr "欄" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.columns" -msgstr "欄" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.height" -msgstr "高度" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.rows" -msgstr "列" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.set-default" -msgstr "設置為預設值" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.size" -msgstr "尺寸" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.type" -msgstr "類型" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.type.bottom" -msgstr "下" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.type.center" -msgstr "中" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.type.left" -msgstr "左" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.type.right" -msgstr "右" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.type.top" -msgstr "上" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.params.width" -msgstr "寬度" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.row" -msgstr "列" - -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -msgid "workspace.options.grid.square" -msgstr "正方形" - -msgid "workspace.options.height" -msgstr "高度" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-animation" -msgstr "動畫" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-animation-none" -msgstr "無" - -msgid "workspace.options.interaction-auto" -msgstr "自動" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-delay" -msgstr "延遲" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-easing-linear" -msgstr "線性" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-ms" -msgstr "毫秒" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-pos-manual" -msgstr "手動" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-position" -msgstr "位置" - -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -msgid "workspace.options.interaction-url" -msgstr "網址" - -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -msgid "workspace.options.layer-options.blend-mode.color" -msgstr "顏色" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -msgid "workspace.options.layout-item.layout-item-max-h" -msgstr "最高" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -msgid "workspace.options.layout-item.title.layout-item-min-h" -msgstr "最小高度" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -msgid "workspace.options.layout-item.title.layout-item-min-w" -msgstr "最小寬度" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -msgid "workspace.options.layout.bottom" -msgstr "下" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -msgid "workspace.options.layout.left" -msgstr "左" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -msgid "workspace.options.layout.right" -msgstr "右" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -msgid "workspace.options.layout.top" -msgstr "上" - -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs -msgid "workspace.options.more-colors" -msgstr "更多顏色" - -msgid "workspace.options.opacity" -msgstr "不透明度" - -#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -msgid "workspace.options.position" -msgstr "位置" - -#: src/app/main/ui/workspace/sidebar/options.cljs -msgid "workspace.options.prototype" -msgstr "原型" - -msgid "workspace.options.radius" -msgstr "圓角半徑" - -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -msgid "workspace.options.radius.all-corners" -msgstr "所有角落" - -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -msgid "workspace.options.radius.single-corners" -msgstr "個別角落" - -msgid "workspace.options.recent-fonts" -msgstr "最近" - -#: 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 "重試" - -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -msgid "workspace.options.rotation" -msgstr "旋轉" - -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs -msgid "workspace.options.selection-color" -msgstr "已選顏色" - -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs -msgid "workspace.options.shadow-options.blur" -msgstr "模糊" - -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs -msgid "workspace.options.shadow-options.offsetx" -msgstr "X" - -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs -msgid "workspace.options.shadow-options.offsety" -msgstr "Y" - -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs -msgid "workspace.options.shadow-options.title" -msgstr "陰影" - -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs -msgid "workspace.options.show-fill-on-export" -msgstr "在匯出中顯示" - -#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -msgid "workspace.options.size" -msgstr "尺寸" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke-cap.none" -msgstr "無" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke-cap.square" -msgstr "正方形" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke.center" -msgstr "置中" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke.dashed" -msgstr "虛線" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke.dotted" -msgstr "點線" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke.inner" -msgstr "裏面" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke.outer" -msgstr "外面" - -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -msgid "workspace.options.stroke.solid" -msgstr "實線" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.options.text-options.direction-ltr" -msgstr "左至右" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.options.text-options.direction-rtl" -msgstr "右至左" - -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -msgid "workspace.options.text-options.lowercase" -msgstr "小寫" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -msgid "workspace.options.text-options.none" -msgstr "無" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.options.text-options.text-align-center" -msgstr "置中 (%s)" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.options.text-options.title" -msgstr "文字" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs -msgid "workspace.options.text-options.underline" -msgstr "底線" - -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -msgid "workspace.options.text-options.uppercase" -msgstr "大寫" - -msgid "workspace.options.x" -msgstr "X軸" - -msgid "workspace.options.y" -msgstr "Y 軸" - -msgid "workspace.path.actions.add-node" -msgstr "新增節點 (%s)" - -msgid "workspace.path.actions.delete-node" -msgstr "刪除節點(%s)" - -msgid "workspace.path.actions.draw-nodes" -msgstr "繪製節點 (%s)" - -msgid "workspace.path.actions.join-nodes" -msgstr "聯接節點 (%s)" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.copy" -msgstr "複製" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.cut" -msgstr "剪下" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.delete" -msgstr "刪除" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.duplicate" -msgstr "複本" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.edit" -msgstr "編輯" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.group" -msgstr "群組" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.hide" -msgstr "隱藏" - -msgid "workspace.shape.menu.hide-ui" -msgstr "顯示/隱藏使用者介面" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.lock" -msgstr "鎖定" - -#: src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.paste" -msgstr "貼上" - -msgid "workspace.shape.menu.path" -msgstr "路徑" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.select-layer" -msgstr "選擇圖層" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.show" -msgstr "顯示" - -msgid "workspace.shape.menu.thumbnail-remove" -msgstr "移除縮圖" - -msgid "workspace.shape.menu.thumbnail-set" -msgstr "設置為縮圖" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.ungroup" -msgstr "取消群組" - -#: src/app/main/ui/workspace/context_menu.cljs -msgid "workspace.shape.menu.unlock" -msgstr "解除鎖定" - -msgid "workspace.sidebar.layers.images" -msgstr "圖像" - -msgid "workspace.sidebar.layers.texts" -msgstr "文字" - -#: src/app/main/ui/workspace/sidebar/sitemap.cljs -msgid "workspace.sidebar.sitemap" -msgstr "頁" - -msgid "workspace.undo.entry.multiple.circle" -msgstr "圖形" - -msgid "workspace.undo.entry.multiple.curve" -msgstr "曲線" - -msgid "workspace.undo.entry.multiple.frame" -msgstr "畫板" - -msgid "workspace.undo.entry.multiple.multiple" -msgstr "物件" - -msgid "workspace.undo.entry.multiple.page" -msgstr "頁" - -msgid "workspace.undo.entry.multiple.path" -msgstr "路徑" - -msgid "workspace.undo.entry.multiple.rect" -msgstr "矩形" - -msgid "workspace.undo.entry.multiple.shape" -msgstr "形狀" - -msgid "workspace.undo.entry.multiple.text" -msgstr "文字" - -msgid "workspace.undo.entry.multiple.typography" -msgstr "字元樣式資產" - -msgid "workspace.undo.entry.single.circle" -msgstr "圓圈" - -msgid "workspace.undo.entry.single.color" -msgstr "顏色素材" - -msgid "workspace.undo.entry.single.curve" -msgstr "曲線" - -msgid "workspace.undo.entry.single.frame" -msgstr "畫板" - -msgid "workspace.undo.entry.single.group" -msgstr "群組" - -msgid "workspace.undo.entry.single.image" -msgstr "影像" - -msgid "workspace.undo.entry.single.multiple" -msgstr "物件" - -msgid "workspace.undo.entry.single.page" -msgstr "頁面" - -msgid "workspace.undo.entry.single.path" -msgstr "路徑" - -msgid "workspace.undo.entry.single.rect" -msgstr "矩形" - -msgid "workspace.undo.entry.single.shape" -msgstr "形狀" - -msgid "workspace.undo.entry.single.text" -msgstr "文字" - -#: src/app/main/ui/workspace/sidebar/history.cljs -msgid "workspace.undo.entry.unknown" -msgstr "操作覆蓋%s" - -#: src/app/main/ui/workspace/sidebar/history.cljs -msgid "workspace.undo.title" -msgstr "歷史" - -#: src/app/main/data/workspace/libraries.cljs -#, fuzzy -msgid "workspace.updates.dismiss" -msgstr "解散" - -#: src/app/main/data/workspace/libraries.cljs -msgid "workspace.updates.there-are-updates" -msgstr "共用檔案庫有更新" - -#: src/app/main/data/workspace/libraries.cljs -msgid "workspace.updates.update" -msgstr "更新" - -msgid "workspace.viewport.click-to-close-path" -msgstr "點擊以關閉路徑" - -#: src/app/main/ui/settings/access-tokens.cljs -msgid "dashboard.access-tokens.expiration-never" -msgstr "從不" - -#: src/app/main/ui/settings/access-tokens.cljs -msgid "dashboard.access-tokens.expiration-60-days" -msgstr "60 天" - -#: src/app/main/ui/settings/access-tokens.cljs -msgid "dashboard.access-tokens.token-will-not-expire" -msgstr "權杖沒有到期時間" - -#: src/app/main/ui/settings/access-tokens.cljs -msgid "dashboard.access-tokens.expiration-180-days" -msgstr "180 天" - -#: src/app/main/ui/settings/access-tokens.cljs -msgid "dashboard.access-tokens.expiration-30-days" -msgstr "30 天" - -#, fuzzy -msgid "dashboard.export.options.all.message" -msgstr "使用了共用資料庫的檔案將被包含在匯出內,並保持他們的連結關係。" - -#: src/app/main/ui/settings/access-tokens.cljs -msgid "dashboard.access-tokens.create" -msgstr "產生新的 Token" - -#: src/app/main/ui/settings/access-tokens.cljs -msgid "dashboard.access-tokens.empty.no-access-tokens" -msgstr "你目前還沒有 Tokens。" - -#: src/app/main/ui/settings/access-tokens.cljs -msgid "dashboard.access-tokens.empty.add-one" -msgstr "按下\"產生新 Token\" 按鈕來產生一個。" - -#: src/app/main/ui/settings/access-tokens.cljs -msgid "dashboard.access-tokens.create.success" -msgstr "已成功建立 Access Token。" - -#: src/app/main/ui/settings/access-tokens.cljs -msgid "dashboard.access-tokens.no-expiration" -msgstr "沒有到期時間" - -#: src/app/main/ui/settings/access-tokens.cljs -msgid "dashboard.access-tokens.copied-success" -msgstr "已複製 Token" - -#: src/app/main/ui/settings/access-tokens.cljs -msgid "dashboard.access-tokens.errors-required-name" -msgstr "名稱是必填的" - -#: src/app/main/ui/settings/access-tokens.cljs -msgid "dashboard.access-tokens.token-will-expire" -msgstr "權杖將於 %s 到期" - -msgid "dashboard.export.options.merge.title" -msgstr "將共享資料庫的內容加入檔案資料庫" - -#: src/app/main/ui/settings/team-form.cljs, src/app/main/ui/auth/register.cljs, src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/onboarding/team_choice.cljs, src/app/main/ui/settings/access_tokens.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/settings/profile.cljs, src/app/main/ui/workspace/sidebar/assets.cljs -msgid "auth.name.not-all-space" -msgstr "名稱內必須包含空白以外的文字。" - -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/onboarding/team_choice.cljs, src/app/main/ui/settings/access_tokens.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/settings/profile.cljs, src/app/main/ui/workspace/sidebar/assets.cljs -msgid "auth.name.too-long" -msgstr "名稱最多包含 250 個字元。" - -#: src/app/main/ui/settings/access-tokens.cljs -msgid "dashboard.access-tokens.expiration-90-days" -msgstr "90 天" - -#: src/app/main/ui/settings/access-tokens.cljs -msgid "dashboard.access-tokens.expires-on" -msgstr "將於 %s 過期" - -#: src/app/main/ui/settings/access-tokens.cljs -msgid "dashboard.access-tokens.expired-on" -msgstr "已於 %s 過期" - -#: src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/dashboard/file_menu.cljs:96 msgid "dashboard.success-delete-file" msgid_plural "dashboard.success-delete-file" msgstr[0] "已成功刪除您的檔案" -#: src/app/main/ui/dashboard/file_menu.cljs -#, fuzzy +#: src/app/main/ui/dashboard/project_menu.cljs:59 +msgid "dashboard.success-delete-project" +msgstr "已成功刪除您的專案" + +#: src/app/main/ui/dashboard/file_menu.cljs:91 msgid "dashboard.success-duplicate-file" msgid_plural "dashboard.success-delete-file" msgstr[0] "已成功為您的檔案建立副本" -#: src/app/main/ui/auth/login.cljs -msgid "auth.login-account-title" -msgstr "登入我的帳號" +#: src/app/main/ui/dashboard/project_menu.cljs:33 +msgid "dashboard.success-duplicate-project" +msgstr "你的專案已成功複製" -#: src/app/main/ui/auth/login.cljs -msgid "auth.login-tagline" -msgstr "Penpot 是用於設計與開發協作,免費且開源的設計工具" +#: src/app/main/ui/dashboard/file_menu.cljs:130, src/app/main/ui/dashboard/grid.cljs:558, src/app/main/ui/dashboard/sidebar.cljs:152 +msgid "dashboard.success-move-file" +msgstr "已成功移動您的檔案" -#: src/app/main/ui/onboarding/questions.cljs -msgid "branding-illustrations-marketing-pieces" -msgstr "...品牌設計、插畫、行銷素材等。" +#: src/app/main/ui/dashboard/file_menu.cljs:129 +msgid "dashboard.success-move-files" +msgstr "已成功移動您的檔案" -#: src/app/main/ui/auth/register.cljs -msgid "auth.password-not-empty" -msgstr "密碼必須包含空白以外的字元。" +#: src/app/main/ui/dashboard/project_menu.cljs:54 +msgid "dashboard.success-move-project" +msgstr "已成功移動您的專案" -#: src/app/main/ui/settings/access-tokens.cljs -msgid "dashboard.access-tokens.personal" -msgstr "個人存取權杖" +#: src/app/main/ui/dashboard/team.cljs:1052 +msgid "dashboard.team-info" +msgstr "團隊資訊" -msgid "dashboard.export.options.detach.message" -msgstr "共用資料庫將不包含在匯出檔案內,且資產不會被加入資料庫。 " +#: src/app/main/ui/dashboard/team.cljs:1070 +msgid "dashboard.team-members" +msgstr "團隊成員" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -msgid "dashboard.remove-shared" -msgstr "不再作為共用資料庫" +#: src/app/main/ui/dashboard/team.cljs:1085 +msgid "dashboard.team-projects" +msgstr "團隊專案" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#: src/app/main/ui/settings/options.cljs:61 +msgid "dashboard.theme-change" +msgstr "介面主題" + +#: src/app/main/ui/dashboard/search.cljs:42 +msgid "dashboard.title-search" +msgstr "搜尋結果" + +#: src/app/main/ui/dashboard/search.cljs:50 +msgid "dashboard.type-something" +msgstr "輸入以搜尋" + +#: src/app/main/ui/dashboard/file_menu.cljs:287, src/app/main/ui/workspace/main_menu.cljs:566 msgid "dashboard.unpublish-shared" msgstr "取消發佈資料庫" -msgid "errors.cannot-upload" -msgstr "無法上傳此媒體檔案。" +#: src/app/main/ui/settings/options.cljs:71 +msgid "dashboard.update-settings" +msgstr "更新設定" -#: src/app/main/ui/settings/access-tokens.cljs -msgid "dashboard.access-tokens.personal.description" -msgstr "個人存取權杖就像是帳號密碼驗證系統的替代方案,且可用於讓第三方應用程式存取 " -"Penpot 內部 API" +#: src/app/main/ui/dashboard/team.cljs:861 +msgid "dashboard.webhooks.active" +msgstr "正在生效" -#: src/app/main/data/users.cljs -msgid "errors.email-domain-not-allowed" -msgstr "不允許此域名" +#: src/app/main/ui/dashboard/team.cljs:862 +msgid "dashboard.webhooks.active.explain" +msgstr "當觸發此Webhook時,將會傳遞事件詳細信息" -msgid "errors.paste-data-validation" -msgstr "剪貼簿中的資料無效" +#: src/app/main/ui/dashboard/team.cljs:852 +msgid "dashboard.webhooks.content-type" +msgstr "內容類型" -msgid "dashboard.import.analyze-error.components-v2" -msgstr "檔案中啟用了 Components v2 但這個團隊尚未支援。" +#: src/app/main/ui/dashboard/team.cljs:885 +msgid "dashboard.webhooks.create" +msgstr "設置Webhook" -#: src/app/main/ui/confirm.cljs +#: src/app/main/ui/dashboard/team.cljs:775 +msgid "dashboard.webhooks.create.success" +msgstr "成功添加Webhook。" + +#: src/app/main/ui/dashboard/team.cljs:882 +msgid "dashboard.webhooks.description" +msgstr "當Penpot 發生特定事件時,Webhook 是一種使其他網站和應用程式收到通知的簡單方法。我們會向你指定的每個網址發送 POST 請求。" + +#: src/app/main/ui/dashboard/team.cljs:1005 +msgid "dashboard.webhooks.empty.add-one" +msgstr "按「設置Webhook」添加。" + +#: src/app/main/ui/dashboard/team.cljs:1004 +msgid "dashboard.webhooks.empty.no-webhooks" +msgstr "未有設置任何Webhook。" + +#, unused +msgid "dashboard.webhooks.update.success" +msgstr "成功更新Webhook。" + +#: src/app/main/ui/settings.cljs:31 +msgid "dashboard.your-account-title" +msgstr "您的帳號" + +#: src/app/main/ui/settings/profile.cljs:70 +msgid "dashboard.your-email" +msgstr "電子郵件" + +#: src/app/main/ui/settings/profile.cljs:62 +msgid "dashboard.your-name" +msgstr "你的名字" + +#: src/app/main/ui/dashboard/file_menu.cljs:38, src/app/main/ui/dashboard/fonts.cljs:33, src/app/main/ui/dashboard/libraries.cljs:42, src/app/main/ui/dashboard/projects.cljs:318, src/app/main/ui/dashboard/search.cljs:30, src/app/main/ui/dashboard/sidebar.cljs:312, src/app/main/ui/dashboard/team.cljs:495, src/app/main/ui/dashboard/team.cljs:729, src/app/main/ui/dashboard/team.cljs:991, src/app/main/ui/dashboard/team.cljs:1038 +msgid "dashboard.your-penpot" +msgstr "你的 Penpot" + +#: src/app/main/ui/alert.cljs:32 +msgid "ds.alert-ok" +msgstr "確認" + +#: src/app/main/ui/alert.cljs:31, src/app/main/ui/alert.cljs:34 +msgid "ds.alert-title" +msgstr "注意" + +#: src/app/main/ui/confirm.cljs:83 msgid "ds.component-subtitle" msgstr "待更新的元件:" -#: src/app/main/data/users.cljs +#: src/app/main/ui/confirm.cljs:36, src/app/main/ui/workspace/plugins.cljs:246 +msgid "ds.confirm-cancel" +msgstr "取消" + +#: src/app/main/ui/confirm.cljs:37, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:141 +msgid "ds.confirm-ok" +msgstr "Ok" + +#: src/app/main/ui/confirm.cljs:35, src/app/main/ui/confirm.cljs:39 +msgid "ds.confirm-title" +msgstr "您確定嗎?" + +#: src/app/main/data/users.cljs:705 msgid "errors.auth-provider-not-allowed" msgstr "此設定檔不允許此驗證提供者" + +#: src/app/main/ui/auth/login.cljs:62 +msgid "errors.auth-provider-not-configured" +msgstr "尚未配置身份驗證供應商。" + +#: src/app/main/errors.cljs:104 +msgid "errors.auth.unable-to-login" +msgstr "閣下尚未登入。" + +#: src/app/main/data/fonts.cljs:189 +msgid "errors.bad-font" +msgstr "無法載入 %s 字體" + +#: src/app/main/data/fonts.cljs:188 +msgid "errors.bad-font-plural" +msgstr "無法載入 %s 字體" + +#: src/app/main/data/workspace/media.cljs:198 +msgid "errors.cannot-upload" +msgstr "無法上傳此媒體檔案。" + +#: src/app/main/data/workspace.cljs:1598 +msgid "errors.clipboard-not-implemented" +msgstr "你的瀏覽器無法執行此作業" + +#: src/app/main/ui/auth/verify_token.cljs:82, src/app/main/ui/settings/change_email.cljs:46 +msgid "errors.email-already-exists" +msgstr "電子信箱已被使用" + +#: src/app/main/ui/auth/verify_token.cljs:87 +msgid "errors.email-already-validated" +msgstr "電子信箱已完成驗證。" + +#: src/app/main/ui/settings/password.cljs:28 +msgid "errors.email-as-password" +msgstr "你的電郵地址不能用作密碼" + +#: src/app/main/data/users.cljs:707, src/app/main/ui/auth/register.cljs:63 +msgid "errors.email-domain-not-allowed" +msgstr "不允許此域名" + +#: src/app/main/ui/auth/recovery_request.cljs:63, src/app/main/ui/dashboard/team.cljs:578, src/app/main/ui/settings/change_email.cljs:54 +msgid "errors.email-has-permanent-bounces" +msgstr "電子郵件«%s»有許多永久退件報告。" + +#: src/app/main/ui/auth/login.cljs:81, src/app/main/ui/auth/recovery_request.cljs:31, src/app/main/ui/auth/register.cljs:43 +msgid "errors.email-invalid" +msgstr "請輸入一個有效的電郵地址" + +#: src/app/main/ui/settings/change_email.cljs:35 +msgid "errors.email-invalid-confirmation" +msgstr "電郵地址必須相同" + +#: src/app/main/ui/dashboard/team.cljs:170 +msgid "errors.email-spam-or-permanent-bounces" +msgstr "電子郵件 «%s» 已被報告為垃圾郵件或永久退件。" + +#: src/app/main/errors.cljs:227 +msgid "errors.feature-mismatch" +msgstr "你正開啟的檔案包含Penpot尚未支援或停用'%s' 功能。" + +#: src/app/main/errors.cljs:231, src/app/main/errors.cljs:245 +msgid "errors.feature-not-supported" +msgstr "不支援 「%s」功能。" + +#: src/app/main/data/users.cljs:709, src/app/main/ui/auth/login.cljs:65, src/app/main/ui/auth/login.cljs:116, src/app/main/ui/auth/register.cljs:69, src/app/main/ui/auth/register.cljs:237, src/app/main/ui/auth/verify_token.cljs:92, src/app/main/ui/dashboard/team.cljs:173, src/app/main/ui/onboarding/team_choice.cljs:95, src/app/main/ui/settings/access_tokens.cljs:91, src/app/main/ui/settings/feedback.cljs:52 +msgid "errors.generic" +msgstr "發生了一些錯誤。" + +#: src/app/main/ui/components/color_input.cljs:57 +msgid "errors.invalid-color" +msgstr "顏色無效" + +#: src/app/main/ui/static.cljs:43 +msgid "errors.invite-invalid" +msgstr "邀請無效" + +#: src/app/main/ui/static.cljs:44 +msgid "errors.invite-invalid.info" +msgstr "本邀請或已被取消或過期。" + +#: src/app/main/ui/auth/login.cljs:101 +msgid "errors.ldap-disabled" +msgstr "LDAP 驗證已停用。" + +#: src/app/main/errors.cljs:239 +msgid "errors.max-quote-reached" +msgstr "你已達「%s」上限。請聯絡支援。" + +#: src/app/main/data/workspace/media.cljs:184 +msgid "errors.media-too-large" +msgstr "影像檔案過大,無法插入。" + +#: src/app/main/data/media.cljs:68, src/app/main/data/workspace/media.cljs:187 +msgid "errors.media-type-mismatch" +msgstr "似乎圖形檔案的格式內容與檔案擴展名不匹配。" + +#: src/app/main/data/media.cljs:65, src/app/main/data/workspace/media.cljs:172, src/app/main/data/workspace/media.cljs:175, src/app/main/data/workspace/media.cljs:178, src/app/main/data/workspace/media.cljs:181 +msgid "errors.media-type-not-allowed" +msgstr "這好像不是個能用的影像。" + +#: src/app/main/ui/dashboard/team.cljs:574 +msgid "errors.member-is-muted" +msgstr "您邀請的人員設置了電子郵件靜音(垃圾郵件報告或高退件率)。" + +#: src/app/main/ui/settings/password.cljs:61 +msgid "errors.password-invalid-confirmation" +msgstr "確認密碼必須相符" + +#: src/app/main/ui/settings/password.cljs:64 +msgid "errors.password-too-short" +msgstr "密碼至少需有 8 個字元" + +#: src/app/main/errors.cljs:124 +msgid "errors.paste-data-validation" +msgstr "剪貼簿中的資料無效" + +#: src/app/main/data/users.cljs:703, src/app/main/ui/auth/login.cljs:97, src/app/main/ui/auth/login.cljs:105 +msgid "errors.profile-blocked" +msgstr "已封鎖用戶" + +#: src/app/main/data/users.cljs:701, src/app/main/ui/auth/register.cljs:60 +msgid "errors.registration-disabled" +msgstr "目前並不開放註冊。" + +#: src/app/main/ui/dashboard/sidebar.cljs:365, src/app/main/ui/dashboard/team.cljs:359 +msgid "errors.team-leave.insufficient-members" +msgstr "成員不足,無法離開團隊,您可能希望將其刪除。" + +#: src/app/main/ui/dashboard/sidebar.cljs:368, src/app/main/ui/dashboard/team.cljs:362 +msgid "errors.team-leave.member-does-not-exists" +msgstr "查無此人。" + +#: src/app/main/ui/dashboard/sidebar.cljs:371, src/app/main/ui/dashboard/team.cljs:365 +msgid "errors.team-leave.owner-cant-leave" +msgstr "團隊擁有者不能離開其團隊,你須重新委任團隊擁有者角色。" + +#: src/app/main/data/media.cljs:71 +msgid "errors.unexpected-error" +msgstr "發生了預料之外的錯誤。" + +#: src/app/main/ui/auth/verify_token.cljs:60 +msgid "errors.unexpected-token" +msgstr "未知的 token" + +#: src/app/main/ui/dashboard/team.cljs:796 +msgid "errors.webhooks.connection" +msgstr "連線錯誤,無法接上網址" + +#: src/app/main/ui/dashboard/team.cljs:790 +msgid "errors.webhooks.invalid-uri" +msgstr "網址未能通過驗証。" + +#: src/app/main/ui/dashboard/team.cljs:949 +msgid "errors.webhooks.last-delivery" +msgstr "上一次傳送未能成功。" + +#: src/app/main/ui/dashboard/team.cljs:792, src/app/main/ui/dashboard/team.cljs:952 +msgid "errors.webhooks.ssl-validation" +msgstr "SSL證書驗證錯誤。" + +#: src/app/main/ui/dashboard/team.cljs:794 +msgid "errors.webhooks.timeout" +msgstr "連線逾時" + +#: src/app/main/ui/dashboard/team.cljs:788 +msgid "errors.webhooks.unexpected" +msgstr "驗證時出現未有預料的錯誤" + +#: src/app/main/ui/dashboard/team.cljs:798, src/app/main/ui/dashboard/team.cljs:955 +msgid "errors.webhooks.unexpected-status" +msgstr "未預料狀態 %s" + +#: src/app/main/ui/auth/login.cljs:109, src/app/main/ui/auth/login.cljs:113 +msgid "errors.wrong-credentials" +msgstr "電子郵件或密碼似乎有誤。" + +#: src/app/main/ui/settings/password.cljs:25 +msgid "errors.wrong-old-password" +msgstr "舊密碼不正確" + +#: src/app/main/ui/settings/feedback.cljs:77 +msgid "feedback.description" +msgstr "狀況描述" + +#: src/app/main/ui/settings/feedback.cljs:95 +msgid "feedback.discourse-go-to" +msgstr "前往 Penpot 討論區" + +#: src/app/main/ui/settings/feedback.cljs:89 +msgid "feedback.discourse-subtitle1" +msgstr "歡迎光臨。如需協助,在發文求助前請先查閱相類內容。" + +#: src/app/main/ui/settings/feedback.cljs:88 +msgid "feedback.discourse-title" +msgstr "Penpot 社群" + +#: src/app/main/ui/settings/feedback.cljs:72 +msgid "feedback.subject" +msgstr "主旨" + +#: src/app/main/ui/settings/feedback.cljs:69 +msgid "feedback.subtitle" +msgstr "請描述您來函的因由,分類說明是問題、想法還是疑問。我們將儘快回覆。" + +#: src/app/main/ui/settings/feedback.cljs:68 +msgid "feedback.title" +msgstr "電子郵件" + +#: src/app/main/ui/settings/feedback.cljs:105 +msgid "feedback.twitter-go-to" +msgstr "前往X" + +#: src/app/main/ui/settings/feedback.cljs:99 +msgid "feedback.twitter-subtitle1" +msgstr "協助解你的決技術問題。" + +#: src/app/main/ui/settings/feedback.cljs:98 +msgid "feedback.twitter-title" +msgstr "X支援帳戶" + +#: src/app/main/ui/settings/password.cljs:30 +msgid "generic.error" +msgstr "出現錯誤" + +#: src/app/main/ui/viewer/inspect/attributes/blur.cljs:26 +msgid "inspect.attributes.blur" +msgstr "模糊" + +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:115 +msgid "inspect.attributes.blur.value" +msgstr "數值" + +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:112 +msgid "inspect.attributes.color.hex" +msgstr "HEX" + +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:114 +msgid "inspect.attributes.color.hsla" +msgstr "HSLA" + +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:113 +msgid "inspect.attributes.color.rgba" +msgstr "RGBA" + +#: src/app/main/ui/viewer/inspect/attributes/fill.cljs:57 +msgid "inspect.attributes.fill" +msgstr "填充" + +#: src/app/main/ui/viewer/inspect/attributes/common.cljs:99, src/app/main/ui/viewer/inspect/attributes/image.cljs:51 +msgid "inspect.attributes.image.download" +msgstr "下載原始圖片" + +#: src/app/main/ui/viewer/inspect/attributes/image.cljs:39 +msgid "inspect.attributes.image.height" +msgstr "高度" + +#: src/app/main/ui/viewer/inspect/attributes/image.cljs:32 +msgid "inspect.attributes.image.width" +msgstr "寬度" + +#: src/app/main/ui/inspect/attributes/layout.cljs +#, unused +msgid "inspect.attributes.layout" +msgstr "樣式" + +#: src/app/main/ui/inspect/attributes/layout.cljs +#, unused +msgid "inspect.attributes.layout.height" +msgstr "高度" + +#: src/app/main/ui/inspect/attributes/layout.cljs +#, unused +msgid "inspect.attributes.layout.left" +msgstr "左" + +#: src/app/main/ui/inspect/attributes/layout.cljs, src/app/main/ui/inspect/attributes/layout.cljs +#, unused +msgid "inspect.attributes.layout.radius" +msgstr "圓角半徑" + +#: src/app/main/ui/inspect/attributes/layout.cljs +#, unused +msgid "inspect.attributes.layout.rotation" +msgstr "旋轉" + +#: src/app/main/ui/inspect/attributes/layout.cljs +#, unused +msgid "inspect.attributes.layout.width" +msgstr "寬度" + +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:57 +msgid "inspect.attributes.shadow" +msgstr "陰影" + +#, unused +msgid "inspect.attributes.stroke.style.dotted" +msgstr "點線" + +#, unused +msgid "inspect.attributes.stroke.style.none" +msgstr "無" + +#, unused +msgid "inspect.attributes.stroke.style.solid" +msgstr "實線" + +#: src/app/main/ui/inspect/attributes/stroke.cljs +#, unused +msgid "inspect.attributes.stroke.width" +msgstr "寬度" + +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:81, src/app/main/ui/viewer/inspect/attributes/text.cljs:194 +msgid "inspect.attributes.typography" +msgstr "字體" + +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:89 +msgid "inspect.attributes.typography.font-family" +msgstr "字型家族" + +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:107 +msgid "inspect.attributes.typography.font-size" +msgstr "字體大小" + +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:145 +msgid "inspect.attributes.typography.text-decoration.none" +msgstr "無" + +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:146 +msgid "inspect.attributes.typography.text-decoration.strikethrough" +msgstr "刪除線" + +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:147 +msgid "inspect.attributes.typography.text-decoration.underline" +msgstr "底線" + +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:158 +msgid "inspect.attributes.typography.text-transform.lowercase" +msgstr "全小寫" + +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:159 +msgid "inspect.attributes.typography.text-transform.none" +msgstr "無" + +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:160 +msgid "inspect.attributes.typography.text-transform.titlecase" +msgstr "詞首字母大寫" + +#: src/app/main/ui/viewer/inspect/attributes/text.cljs:161 +msgid "inspect.attributes.typography.text-transform.uppercase" +msgstr "全大寫" + +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:140 +msgid "inspect.empty.help" +msgstr "如果您想瞭解更多關於設計檢查的資訊,請訪問Penpot的幫助中心" + +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:143 +msgid "inspect.empty.more-info" +msgstr "有關檢查的詳細資訊" + +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:98 +msgid "inspect.tabs.code.selected.circle" +msgstr "圖形" + +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:100 +msgid "inspect.tabs.code.selected.curve" +msgstr "曲線" + +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:101 +msgid "inspect.tabs.code.selected.frame" +msgstr "畫板" + +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:102 +msgid "inspect.tabs.code.selected.group" +msgstr "群組" + +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:103 +msgid "inspect.tabs.code.selected.image" +msgstr "圖像" + +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:105 +msgid "inspect.tabs.code.selected.path" +msgstr "路徑" + +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:106 +msgid "inspect.tabs.code.selected.rect" +msgstr "矩形" + +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:107 +msgid "inspect.tabs.code.selected.svg-raw" +msgstr "SVG" + +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:108 +msgid "inspect.tabs.code.selected.text" +msgstr "文字" + +#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:115 +msgid "inspect.tabs.info" +msgstr "資訊" + +#: src/app/main/ui/dashboard/import.cljs:527 +msgid "labels.accept" +msgstr "接受" + +#: src/app/main/ui/dashboard/team.cljs:120, src/app/main/ui/dashboard/team.cljs:276, src/app/main/ui/dashboard/team.cljs:519, src/app/main/ui/dashboard/team.cljs:549, src/app/main/ui/onboarding/team_choice.cljs:67 +msgid "labels.admin" +msgstr "管理員" + +#: src/app/main/ui/workspace/comments.cljs +#, unused +msgid "labels.all" +msgstr "全部" + +#: src/app/main/ui/auth.cljs:37 +msgid "labels.and" +msgstr "及" + +#: src/app/main/ui/static.cljs:59 +msgid "labels.bad-gateway.desc-message" +msgstr "伺服器正在進行小型維修,請稍後重試。" + +#: src/app/main/ui/static.cljs:58 +msgid "labels.bad-gateway.main-message" +msgstr "無效的閘道" + +#: src/app/main/data/common.cljs:112, src/app/main/ui/dashboard/change_owner.cljs:69, src/app/main/ui/dashboard/import.cljs:514, src/app/main/ui/dashboard/team.cljs:868, src/app/main/ui/delete_shared.cljs:35, src/app/main/ui/export.cljs:164, src/app/main/ui/export.cljs:460, src/app/main/ui/settings/access_tokens.cljs:188, src/app/main/ui/viewer/share_link.cljs:203, src/app/main/ui/workspace/sidebar/assets/groups.cljs:149 +msgid "labels.cancel" +msgstr "取消" + +#: src/app/main/ui/dashboard/projects.cljs:93, src/app/main/ui/export.cljs:478, src/app/main/ui/settings/access_tokens.cljs:183, src/app/main/ui/viewer/login.cljs:77, src/app/main/ui/viewer/share_link.cljs:174, src/app/main/ui/workspace/libraries.cljs:522 +msgid "labels.close" +msgstr "關閉" + +#: src/app/main/ui/dashboard/comments.cljs:104, src/app/main/ui/viewer/comments.cljs:70, src/app/main/ui/workspace/comments.cljs:126 +msgid "labels.comments" +msgstr "評論" + +#: src/app/main/ui/dashboard/sidebar.cljs:985, src/app/main/ui/workspace/main_menu.cljs:110 +msgid "labels.community" +msgstr "社群" + +#: src/app/main/ui/settings/password.cljs:103 +msgid "labels.confirm-password" +msgstr "確認密碼" + +#: src/app/main/ui/dashboard/import.cljs:520, src/app/main/ui/export.cljs:465, src/app/main/ui/onboarding/newsletter.cljs:101 +msgid "labels.continue" +msgstr "繼續" + +#: src/app/main/ui/viewer/login.cljs:75 +msgid "labels.continue-with-penpot" +msgstr "以Penpot帳戶繼續" + +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:157, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:190 +msgid "labels.create" +msgstr "建立" + +#: src/app/main/ui/dashboard/team_form.cljs:101, src/app/main/ui/dashboard/team_form.cljs:121 +msgid "labels.create-team" +msgstr "建立新團隊" + +#: src/app/main/ui/dashboard/team_form.cljs:113 +msgid "labels.create-team.placeholder" +msgstr "輸入新團隊名稱" + +#: src/app/main/ui/settings/sidebar.cljs:73 +msgid "labels.dashboard" +msgstr "控制台" + +#: src/app/main/ui/dashboard/file_menu.cljs:306, src/app/main/ui/dashboard/fonts.cljs:255, src/app/main/ui/dashboard/fonts.cljs:332, src/app/main/ui/dashboard/fonts.cljs:346, src/app/main/ui/dashboard/project_menu.cljs:115, src/app/main/ui/dashboard/team.cljs:904, src/app/main/ui/settings/access_tokens.cljs:209, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:209 +msgid "labels.delete" +msgstr "刪除" + +#: src/app/main/ui/dashboard/team.cljs:648 +msgid "labels.delete-invitation" +msgstr "刪除邀請" + +#: src/app/main/ui/dashboard/file_menu.cljs:262 +msgid "labels.delete-multi-files" +msgstr "刪除 %s 檔案" + +#: src/app/main/ui/dashboard/file_menu.cljs:28, src/app/main/ui/dashboard/files.cljs:72, src/app/main/ui/dashboard/files.cljs:156, src/app/main/ui/dashboard/projects.cljs:220, src/app/main/ui/dashboard/projects.cljs:224, src/app/main/ui/dashboard/sidebar.cljs:791 +msgid "labels.drafts" +msgstr "草稿" + +#: src/app/main/ui/comments.cljs:350, src/app/main/ui/dashboard/fonts.cljs:252, src/app/main/ui/dashboard/team.cljs:902, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:205 +msgid "labels.edit" +msgstr "編輯" + +#, unused +msgid "labels.edit-file" +msgstr "編輯檔案" + +#: src/app/main/ui/dashboard/team.cljs:118, src/app/main/ui/dashboard/team.cljs:279, src/app/main/ui/dashboard/team.cljs:520, src/app/main/ui/dashboard/team.cljs:553, src/app/main/ui/onboarding/team_choice.cljs:66 +msgid "labels.editor" +msgstr "編輯者" + +#: src/app/main/ui/dashboard/team.cljs:661 +msgid "labels.expired-invitation" +msgstr "過期" + +#: src/app/main/ui/export.cljs:173 +msgid "labels.export" +msgstr "匯出" + +#: src/app/main/ui/settings/feedback.cljs:51 +msgid "labels.feedback-disabled" +msgstr "已停用迴響" + +#: src/app/main/ui/settings/feedback.cljs:42 +msgid "labels.feedback-sent" +msgstr "已發送迴響" + +#: src/app/main/ui/dashboard/fonts.cljs:412 +msgid "labels.font-family" +msgstr "字型家族" + +#: src/app/main/ui/dashboard/fonts.cljs:413 +msgid "labels.font-variants" +msgstr "樣式" + +#: src/app/main/ui/dashboard/fonts.cljs:52, src/app/main/ui/dashboard/sidebar.cljs:811 +msgid "labels.fonts" +msgstr "字型" + +#: src/app/main/ui/dashboard/sidebar.cljs:1015, src/app/main/ui/workspace/main_menu.cljs:142 +msgid "labels.github-repo" +msgstr "Github 倉庫" + +#: src/app/main/ui/dashboard/sidebar.cljs:1032, src/app/main/ui/settings/sidebar.cljs:113, src/app/main/ui/workspace/main_menu.cljs:171 +msgid "labels.give-feedback" +msgstr "給予迴響" + +#: src/app/main/ui/auth/recovery_request.cljs:110, src/app/main/ui/auth/register.cljs:285, src/app/main/ui/viewer/login.cljs:117 +msgid "labels.go-back" +msgstr "返回" + +#: src/app/main/ui/dashboard/sidebar.cljs:978, src/app/main/ui/workspace/main_menu.cljs:102 +msgid "labels.help-center" +msgstr "説明中心" + +#: src/app/main/ui/viewer/comments.cljs:103, src/app/main/ui/workspace/comments.cljs:67 +msgid "labels.hide-resolved-comments" +msgstr "隱藏已解決的評論" + +#: src/app/main/ui/dashboard/fonts.cljs:410 +msgid "labels.installed-fonts" +msgstr "已安裝的字體" + +#: src/app/main/ui/static.cljs:143 +msgid "labels.internal-error.main-message" +msgstr "內部錯誤" + +#: src/app/main/ui/dashboard/sidebar.cljs:516, src/app/main/ui/dashboard/team.cljs:89, src/app/main/ui/dashboard/team.cljs:97, src/app/main/ui/dashboard/team.cljs:708 +msgid "labels.invitations" +msgstr "邀請" + +#: src/app/main/ui/settings/options.cljs:51 +msgid "labels.language" +msgstr "語言" + +#: src/app/main/ui/viewer/header.cljs:203 +msgid "labels.log-or-sign" +msgstr "登錄或註冊" + +#: src/app/main/ui/dashboard/sidebar.cljs:1040 +msgid "labels.logout" +msgstr "登出" + +#: src/app/main/ui/dashboard/team.cljs:468 +msgid "labels.member" +msgstr "成員" + +#: src/app/main/ui/dashboard/sidebar.cljs:510, src/app/main/ui/dashboard/team.cljs:87, src/app/main/ui/dashboard/team.cljs:95 +msgid "labels.members" +msgstr "成員" + +#: src/app/main/ui/settings/password.cljs:96 +msgid "labels.new-password" +msgstr "新密碼" + +#: src/app/main/ui/dashboard/team.cljs:694 +msgid "labels.no-invitations" +msgstr "沒有待處理的邀請。" + +#: src/app/main/ui/static.cljs:50 +msgid "labels.not-found.desc-message" +msgstr "此頁面可能不存在,或者您無權訪問。" + +#: src/app/main/ui/static.cljs:49 +msgid "labels.not-found.main-message" +msgstr "喔不!" + +#: src/app/main/ui/dashboard/projects.cljs:239, src/app/main/ui/dashboard/team.cljs:1095 +msgid "labels.num-of-files" +msgid_plural "labels.num-of-files" +msgstr[0] "%s 個檔案" + +#: src/app/main/ui/dashboard/team.cljs:1090 +msgid "labels.num-of-projects" +msgid_plural "labels.num-of-projects" +msgstr[0] "%s 個專案" + +#: src/app/main/ui/settings/password.cljs:89 +msgid "labels.old-password" +msgstr "原有密碼" + +#: src/app/main/ui/workspace/comments.cljs +#, unused +msgid "labels.only-yours" +msgstr "只有你" + +#, unused +msgid "labels.or" +msgstr "或" + +#: src/app/main/ui/dashboard/team.cljs:286, src/app/main/ui/dashboard/team.cljs:518, src/app/main/ui/dashboard/team.cljs:1076 +msgid "labels.owner" +msgstr "擁有者" + +#: src/app/main/ui/settings/sidebar.cljs:87 +msgid "labels.password" +msgstr "密碼" + +#: src/app/main/ui/dashboard/team.cljs:662 +msgid "labels.pending-invitation" +msgstr "待辦" + +#: src/app/main/ui/settings/profile.cljs:118, src/app/main/ui/settings/sidebar.cljs:82 +msgid "labels.profile" +msgstr "個人檔案" + +#: src/app/main/ui/dashboard/sidebar.cljs:784 +msgid "labels.projects" +msgstr "專案" + +#: src/app/main/ui/dashboard/sidebar.cljs:998, src/app/main/ui/settings/sidebar.cljs:106, src/app/main/ui/workspace/main_menu.cljs:126 +msgid "labels.release-notes" +msgstr "更新日誌" + +#: src/app/main/ui/workspace.cljs +#, unused +msgid "labels.reload-file" +msgstr "重新載入檔案" + +#: src/app/main/ui/workspace/libraries.cljs, src/app/main/ui/dashboard/team.cljs +#, unused +msgid "labels.remove" +msgstr "移除" + +#: src/app/main/ui/dashboard/team.cljs:316 +msgid "labels.remove-member" +msgstr "移除團隊成員" + +#: src/app/main/ui/dashboard/file_menu.cljs:271, src/app/main/ui/dashboard/project_menu.cljs:85, src/app/main/ui/dashboard/sidebar.cljs:539, src/app/main/ui/workspace/sidebar/assets/groups.cljs:157 +msgid "labels.rename" +msgstr "重新命名" + +#: src/app/main/ui/dashboard/team_form.cljs:99 +msgid "labels.rename-team" +msgstr "重新命名團隊" + +#: src/app/main/ui/dashboard/team.cljs:645 +msgid "labels.resend-invitation" +msgstr "重新發送邀請" + +#: src/app/main/ui/static.cljs:61, src/app/main/ui/static.cljs:70, src/app/main/ui/static.cljs:148 +msgid "labels.retry" +msgstr "重試" + +#: src/app/main/ui/dashboard/team.cljs:469, src/app/main/ui/dashboard/team.cljs:709 +msgid "labels.role" +msgstr "角色" + +#: src/app/main/ui/dashboard/fonts.cljs:380, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:191 +msgid "labels.save" +msgstr "儲存" + +#: src/app/main/ui/dashboard/fonts.cljs:415 +msgid "labels.search-font" +msgstr "搜尋字體" + +#: src/app/main/ui/settings/feedback.cljs:82 +msgid "labels.send" +msgstr "傳送" + +#: src/app/main/ui/settings/feedback.cljs:82 +msgid "labels.sending" +msgstr "正在傳送…" + +#: src/app/main/ui/static.cljs:68 +msgid "labels.service-unavailable.desc-message" +msgstr "系統正在進行定期保養。" + +#: src/app/main/ui/static.cljs:67 +msgid "labels.service-unavailable.main-message" +msgstr "暫停服務" + +#: src/app/main/ui/dashboard/sidebar.cljs:530, src/app/main/ui/dashboard/team.cljs:88, src/app/main/ui/dashboard/team.cljs:102, src/app/main/ui/settings/options.cljs:84, src/app/main/ui/settings/sidebar.cljs:93 +msgid "labels.settings" +msgstr "設定" + +#: src/app/main/ui/dashboard/sidebar.cljs:800 +msgid "labels.shared-libraries" +msgstr "檔案庫" + +#: src/app/main/ui/viewer/comments.cljs:91, src/app/main/ui/workspace/comments.cljs:61, src/app/main/ui/workspace/comments.cljs:136 +msgid "labels.show-your-comments" +msgstr "僅顯示您的評論" + +#: src/app/main/ui/dashboard/sidebar.cljs:992, src/app/main/ui/workspace/main_menu.cljs:118 +msgid "labels.tutorials" +msgstr "教學" + +#: src/app/main/ui/settings/profile.cljs:103 +msgid "labels.update" +msgstr "更新" + +#: src/app/main/ui/dashboard/fonts.cljs:241 +msgid "labels.upload" +msgstr "上傳" + +#: src/app/main/ui/dashboard/fonts.cljs:240 +msgid "labels.uploading" +msgstr "正在上傳…" + +#: src/app/main/ui/workspace/sidebar/sitemap.cljs:223 +msgid "labels.view-only" +msgstr "僅供查閱" + +#: src/app/main/ui/dashboard/team.cljs:123, src/app/main/ui/dashboard/team.cljs:282, src/app/main/ui/dashboard/team.cljs:521 +msgid "labels.viewer" +msgstr "檢視者" + +#: src/app/main/ui/dashboard/sidebar.cljs:523, src/app/main/ui/dashboard/team.cljs:90, src/app/main/ui/dashboard/team.cljs:100, src/app/main/ui/dashboard/team.cljs:880 +msgid "labels.webhooks" +msgstr "Webhook" + +#: src/app/main/ui/dashboard/team.cljs:237 +msgid "labels.you" +msgstr "(你)" + +#: src/app/main/ui/dashboard/sidebar.cljs:968 +msgid "labels.your-account" +msgstr "你的帳戶" + +#: src/app/main/data/media.cljs:49, src/app/main/data/workspace/media.cljs:223, src/app/main/data/workspace/media.cljs:453 +msgid "media.loading" +msgstr "正在載入圖片…" + +#: src/app/main/ui/settings/change_email.cljs:127 +msgid "modals.change-email.confirm-email" +msgstr "驗證新電子郵件" + +#: src/app/main/ui/settings/change_email.cljs:114 +msgid "modals.change-email.info" +msgstr "我們將寄送郵件至您目前的電子郵件信箱 “%s” 以確認身分。" + +#: src/app/main/ui/settings/change_email.cljs:119 +msgid "modals.change-email.new-email" +msgstr "新電郵" + +#: src/app/main/ui/settings/change_email.cljs:136 +msgid "modals.change-email.submit" +msgstr "更改電子郵件" + +#: src/app/main/ui/settings/change_email.cljs:107 +msgid "modals.change-email.title" +msgstr "更改你的電郵" + +#: src/app/main/ui/dashboard/team.cljs:873 +msgid "modals.create-webhook.submit-label" +msgstr "設置Webhook" + +#: src/app/main/ui/dashboard/team.cljs:838 +msgid "modals.create-webhook.title" +msgstr "設置Webhook" + +#: src/app/main/ui/dashboard/team.cljs:849 +msgid "modals.create-webhook.url.label" +msgstr "訊息負載網址" + +#: src/app/main/ui/dashboard/team.cljs:850 +msgid "modals.create-webhook.url.placeholder" +msgstr "https://example.com/postreceive" + +#: src/app/main/ui/settings/delete_account.cljs:64 +msgid "modals.delete-account.confirm" +msgstr "是的,請刪除我的帳號" + +#: src/app/main/ui/settings/delete_account.cljs:53 +msgid "modals.delete-account.info" +msgstr "刪除你的帳戶後,你會失去現有專案及檔案。" + +#: src/app/main/ui/settings/delete_account.cljs:46 +msgid "modals.delete-account.title" +msgstr "您確定要刪除您的帳號嗎?" + +#: src/app/main/ui/dashboard/file_menu.cljs:123 +msgid "modals.delete-file-confirm.accept" +msgstr "刪除檔案" + +#: src/app/main/ui/dashboard/file_menu.cljs:122 +msgid "modals.delete-file-confirm.message" +msgstr "您確定要刪除這個檔案嗎?" + +#: src/app/main/ui/dashboard/file_menu.cljs:121 +msgid "modals.delete-file-confirm.title" +msgstr "正在刪除檔案" + +#: src/app/main/ui/dashboard/file_menu.cljs:117 +msgid "modals.delete-file-multi-confirm.accept" +msgstr "刪除多個檔案" + +#: src/app/main/ui/dashboard/file_menu.cljs:116 +msgid "modals.delete-file-multi-confirm.message" +msgstr "您確定要刪除 %s 個檔案嗎?" + +#: src/app/main/ui/dashboard/file_menu.cljs:115 +msgid "modals.delete-file-multi-confirm.title" +msgstr "正在刪除 %s 個檔案" + +#: src/app/main/ui/dashboard/fonts.cljs:344 +msgid "modals.delete-font-variant.title" +msgstr "正在刪除字體樣式" + +#: src/app/main/ui/workspace/context_menu.cljs:522, src/app/main/ui/workspace/sidebar/sitemap.cljs:45 +msgid "modals.delete-page.body" +msgstr "您確定要刪除這個頁面嗎?" + +#: src/app/main/ui/dashboard/project_menu.cljs:69 +msgid "modals.delete-project-confirm.accept" +msgstr "刪除專案" + +#: src/app/main/ui/dashboard/project_menu.cljs:68 +msgid "modals.delete-project-confirm.message" +msgstr "您確定要刪除這個專案嗎?" + +#: src/app/main/ui/dashboard/project_menu.cljs:67 +msgid "modals.delete-project-confirm.title" +msgstr "刪除專案" + +#: src/app/main/ui/delete_shared.cljs:51 +msgid "modals.delete-shared-confirm.accept" +msgid_plural "modals.delete-shared-confirm.accept" +msgstr[0] "刪除檔案" + +#: src/app/main/ui/dashboard/sidebar.cljs:435 +msgid "modals.delete-team-confirm.accept" +msgstr "刪除團體" + +#: src/app/main/ui/dashboard/sidebar.cljs:433 +msgid "modals.delete-team-confirm.title" +msgstr "正在刪除團體" + +#: src/app/main/ui/dashboard/team.cljs:427 +msgid "modals.delete-team-member-confirm.accept" +msgstr "刪除成員" + +#: src/app/main/ui/dashboard/team.cljs:425 +msgid "modals.delete-team-member-confirm.title" +msgstr "刪除團隊成員" + +#: src/app/main/ui/dashboard/team.cljs:940 +msgid "modals.delete-webhook.title" +msgstr "刪除 Webhook" + +#: src/app/main/ui/dashboard/team.cljs:872 +msgid "modals.edit-webhook.submit-label" +msgstr "修改 Webhook" + +#: src/app/main/ui/dashboard/team.cljs:837 +msgid "modals.edit-webhook.title" +msgstr "修改 Webhook" + +#: src/app/main/ui/dashboard/change_owner.cljs:59 +msgid "modals.leave-and-reassign.forbidden" +msgstr "如果沒有其他成員晉升為團隊的擁有者,您則不能離開團隊。或者您可以選擇刪除該團隊。" + +#: src/app/main/ui/dashboard/change_owner.cljs:49 +msgid "modals.leave-and-reassign.title" +msgstr "離開前" + +#: src/app/main/ui/dashboard/sidebar.cljs:402, src/app/main/ui/dashboard/sidebar.cljs:424, src/app/main/ui/dashboard/team.cljs:394, src/app/main/ui/dashboard/team.cljs:416 +msgid "modals.leave-confirm.accept" +msgstr "離開團隊" + +#: src/app/main/ui/dashboard/sidebar.cljs:401, src/app/main/ui/dashboard/team.cljs:415 +msgid "modals.leave-confirm.message" +msgstr "您確定要離開這個團隊嗎?" + +#: src/app/main/ui/dashboard/sidebar.cljs:400, src/app/main/ui/dashboard/sidebar.cljs:421, src/app/main/ui/dashboard/team.cljs:391, src/app/main/ui/dashboard/team.cljs:414 +msgid "modals.leave-confirm.title" +msgstr "正在離開團隊" + +#: src/app/main/ui/dashboard/team.cljs:338 +msgid "modals.promote-owner-confirm.message" +msgstr "您是此團隊的當前擁有者。您是否確實要使 %s 成為團隊的新擁有者?" + +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:380 +msgid "modals.update-remote-component.accept" +msgstr "更新" + +#: src/app/main/ui/workspace/sidebar/assets/common.cljs:379 +msgid "modals.update-remote-component.cancel" +msgstr "取消" + +#: src/app/main/ui/settings/change_email.cljs:63 +msgid "notifications.validation-email-sent" +msgstr "已將驗證信傳送至 %s。請查看您的電子郵件信箱!" + +#, unused +msgid "onboarding-v2.before-start.desc1" +msgstr "我們有許多協助你開始使用Penpot的資源,例如使用者指南及我們的 Youtube 頻道。" + +#: src/app/main/ui/onboarding/newsletter.cljs:97 +msgid "onboarding-v2.newsletter.privacy2" +msgstr "我們只會向您發送相關電子郵件。您可以隨時在我們的通訊中通過取消訂閱連結來取消訂閱。" + +#, unused +msgid "onboarding-v2.welcome.desc1" +msgstr "Penpot係由Kaleidos及與社群成員共同協作的開放原始碼軟件。所有人皆可以下方法協作:" + +#, unused +msgid "onboarding-v2.welcome.desc2" +msgstr "這是與整個社群和 Penpot 核心團隊一起學習、分享和討論 Penpot、它的現在和未來的公共空間。" + +#, unused +msgid "onboarding.welcome.alt" +msgstr "Penpot" + +#: src/app/main/ui/auth/recovery.cljs:99 +msgid "profile.recovery.go-to-login" +msgstr "前往登入" + +#: src/app/main/ui/viewer/inspect/exports.cljs:147, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:631, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:137, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:148, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:188, src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:158, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:399, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:410, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:430, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:441, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:458, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:472, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:309, src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:183, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:373, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:389, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:245, src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:172 +msgid "settings.multiple" +msgstr "混合" + +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:420 +msgid "shortcut-section.dashboard" +msgstr "儀表板" + +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:423 +msgid "shortcut-section.viewer" +msgstr "檢視者" + +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:417 +msgid "shortcut-section.workspace" +msgstr "工作區" + +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:57 +msgid "shortcut-subsection.edit" +msgstr "編輯" + +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:60 +msgid "shortcut-subsection.main-menu" +msgstr "主功能表" + +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:69 +msgid "shortcut-subsection.tools" +msgstr "工具" + +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:70 +msgid "shortcut-subsection.zoom-viewer" +msgstr "縮放" + +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:71 +msgid "shortcut-subsection.zoom-workspace" +msgstr "縮放" + +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:72 +msgid "shortcuts.add-comment" +msgstr "評論" + +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:93 +msgid "shortcuts.copy" +msgstr "複製" + +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:96 +msgid "shortcuts.cut" +msgstr "剪下" + +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:98 +msgid "shortcuts.delete" +msgstr "刪除" + +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:101 +msgid "shortcuts.draw-curve" +msgstr "曲線" + +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:103 +msgid "shortcuts.draw-frame" +msgstr "畫板" + +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:105 +msgid "shortcuts.draw-path" +msgstr "路徑" + +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:106 +msgid "shortcuts.draw-rect" +msgstr "矩形" + +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:107 +msgid "shortcuts.draw-text" +msgstr "文字" + +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:108 +msgid "shortcuts.duplicate" +msgstr "複本" + +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:109 +msgid "shortcuts.escape" +msgstr "取消" + +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:118 +msgid "shortcuts.go-to-search" +msgstr "搜尋" + +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:119 +msgid "shortcuts.group" +msgstr "群組" + +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:260 +msgid "shortcuts.or" +msgstr " 或 " + +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:186 +msgid "shortcuts.toggle-alignment" +msgstr "切換動態對齊" + +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:188 +msgid "shortcuts.toggle-colorpalette" +msgstr "切換調色板" + +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:189 +msgid "shortcuts.toggle-focus-mode" +msgstr "切換專注模式" + +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:192 +msgid "shortcuts.toggle-history" +msgstr "切換歷史記錄" + +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:193 +msgid "shortcuts.toggle-layers" +msgstr "切換圖層" + +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:196 +msgid "shortcuts.toggle-lock" +msgstr "鎖定選擇" + +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:197 +msgid "shortcuts.toggle-lock-size" +msgstr "鎖定比例" + +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:208 +msgid "shortcuts.ungroup" +msgstr "取消群組" + +#: src/app/main/ui/dashboard/files.cljs:158 +msgid "title.dashboard.files" +msgstr "%s – Penpot" + +#: src/app/main/ui/dashboard/fonts.cljs:36 +msgid "title.dashboard.fonts" +msgstr "字型 - %s - Penpot" + +#: src/app/main/ui/dashboard/projects.cljs:320 +msgid "title.dashboard.projects" +msgstr "專案 - %s - Penpot" + +#: src/app/main/ui/dashboard/search.cljs:32 +msgid "title.dashboard.search" +msgstr "搜尋 - %s - Penpot" + +#: src/app/main/ui/auth/verify_token.cljs:68, src/app/main/ui/auth.cljs:54 +msgid "title.default" +msgstr "Penpot - 給團隊設計的自由" + +#: src/app/main/ui/settings/feedback.cljs:110 +msgid "title.settings.feedback" +msgstr "提供回饋 - Penpot" + +#: src/app/main/ui/settings/options.cljs:80 +msgid "title.settings.options" +msgstr "設定 - Penpot" + +#: src/app/main/ui/settings/password.cljs:115 +msgid "title.settings.password" +msgstr "密碼 - Penpot" + +#: src/app/main/ui/settings/profile.cljs:115 +msgid "title.settings.profile" +msgstr "個人資料 - Penpot" + +#: src/app/main/ui/dashboard/team.cljs:493 +msgid "title.team-members" +msgstr "成員 - %s - Penpot" + +#: src/app/main/ui/dashboard/team.cljs:1036 +msgid "title.team-settings" +msgstr "設定 - %s - Penpot" + +#: src/app/main/ui/viewer.cljs:419 +msgid "title.viewer" +msgstr "%s - 檢視模式 - Penpot" + +#: src/app/main/ui/workspace.cljs:190 +msgid "title.workspace" +msgstr "%s - Penpot" + +#: src/app/main/ui.cljs:144 +msgid "viewer.breaking-change.description" +msgstr "這個共用連結已失效,建立一個新連結,或向擁有者要求一個。" + +#: src/app/main/ui.cljs:143 +msgid "viewer.breaking-change.message" +msgstr "抱歉!" + +#: src/app/main/ui/viewer/interactions.cljs:282 +msgid "viewer.header.interactions" +msgstr "交互作用" + +#: src/app/main/ui/viewer/share_link.cljs:187 +msgid "viewer.header.share.copy-link" +msgstr "複製連結" + +#: src/app/main/ui/viewer/header.cljs:231 +msgid "viewer.header.sitemap" +msgstr "網站地圖" + +#: src/app/main/ui/workspace/sidebar/assets.cljs +#, unused +msgid "workspace.assets.assets" +msgstr "資產" + +#: src/app/main/ui/dashboard/grid.cljs:130, src/app/main/ui/dashboard/grid.cljs:162, src/app/main/ui/workspace/sidebar/assets/colors.cljs:485, src/app/main/ui/workspace/sidebar/assets.cljs:150 +msgid "workspace.assets.colors" +msgstr "顏色" + +#: src/app/main/ui/dashboard/grid.cljs:126, src/app/main/ui/dashboard/grid.cljs:141, src/app/main/ui/workspace/sidebar/assets/components.cljs:513, src/app/main/ui/workspace/sidebar/assets.cljs:139 +msgid "workspace.assets.components" +msgstr "元件" + +#: src/app/main/ui/workspace/context_menu.cljs:529, src/app/main/ui/workspace/sidebar/assets/colors.cljs:251, src/app/main/ui/workspace/sidebar/assets/components.cljs:577, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:424, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:443 +msgid "workspace.assets.delete" +msgstr "刪除" + +#: src/app/main/ui/workspace/context_menu.cljs:534, src/app/main/ui/workspace/sidebar/assets/components.cljs:572 +msgid "workspace.assets.duplicate" +msgstr "複本" + +#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:247, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:439 +msgid "workspace.assets.edit" +msgstr "編輯" + +#: src/app/main/ui/workspace/sidebar/assets/graphics.cljs:384, src/app/main/ui/workspace/sidebar/assets.cljs:145 +msgid "workspace.assets.graphics" +msgstr "圖形" + +#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:255, src/app/main/ui/workspace/sidebar/assets/components.cljs:581, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:428, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:448 +msgid "workspace.assets.group" +msgstr "群組" + +#: src/app/main/ui/workspace/sidebar/assets.cljs:168 +msgid "workspace.assets.libraries" +msgstr "檔案庫" + +#: src/app/main/ui/workspace/context_menu.cljs:532, src/app/main/ui/workspace/sidebar/assets/colors.cljs:243, src/app/main/ui/workspace/sidebar/assets/components.cljs:566, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:421, src/app/main/ui/workspace/sidebar/assets/groups.cljs:63, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:434 +msgid "workspace.assets.rename" +msgstr "重新命名" + +#: src/app/main/ui/dashboard/grid.cljs:134, src/app/main/ui/dashboard/grid.cljs:189, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:397, src/app/main/ui/workspace/sidebar/assets.cljs:155 +msgid "workspace.assets.typography" +msgstr "字體排版設計" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused +msgid "workspace.assets.typography.font-id" +msgstr "字型" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:505 +msgid "workspace.assets.typography.font-size" +msgstr "尺寸" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:501 +msgid "workspace.assets.typography.font-variant-id" +msgstr "變體" + +#: src/app/main/ui/dashboard/grid.cljs:199, src/app/main/ui/workspace/libraries.cljs:461, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:464, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:489, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:596, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:615 +msgid "workspace.assets.typography.sample" +msgstr "Ag" + +#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:66 +msgid "workspace.assets.ungroup" +msgstr "取消群組" + +#: src/app/main/ui/workspace/main_menu.cljs:720 +msgid "workspace.header.menu.option.file" +msgstr "檔案" + +#: src/app/main/ui/workspace/main_menu.cljs:753 +msgid "workspace.header.menu.option.preferences" +msgstr "偏好設定" + +#: src/app/main/ui/workspace/main_menu.cljs:742 +msgid "workspace.header.menu.option.view" +msgstr "檢視" + +#: src/app/main/ui/workspace/main_menu.cljs:432 +msgid "workspace.header.menu.select-all" +msgstr "全選" + +#: src/app/main/ui/viewer/header.cljs:98, src/app/main/ui/workspace/right_header.cljs:120 +msgid "workspace.header.reset-zoom" +msgstr "重設" + +#: src/app/main/ui/workspace/right_header.cljs:52 +msgid "workspace.header.saved" +msgstr "已儲存" + +#: src/app/main/ui/workspace/header.cljs +#, unused +msgid "workspace.header.saving" +msgstr "正在儲存" + +#: src/app/main/ui/workspace/libraries.cljs +#, unused +msgid "workspace.libraries.add" +msgstr "新增" + +#: src/app/main/ui/workspace/colorpicker.cljs +#, unused +msgid "workspace.libraries.colors.hsv" +msgstr "HSV" + +#: src/app/main/ui/workspace/colorpicker.cljs +#, unused +msgid "workspace.libraries.colors.rgba" +msgstr "RGBA" + +#: src/app/main/ui/workspace/libraries.cljs:526, src/app/main/ui/workspace/libraries.cljs:531 +msgid "workspace.libraries.libraries" +msgstr "檔案庫" + +#: src/app/main/ui/workspace/libraries.cljs +#, unused +msgid "workspace.libraries.library" +msgstr "檔案庫" + +#: src/app/main/ui/workspace/libraries.cljs:402 +msgid "workspace.libraries.update" +msgstr "更新" + +#: src/app/main/ui/workspace/libraries.cljs:536 +msgid "workspace.libraries.updates" +msgstr "更新" + +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:86, src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:102 +msgid "workspace.options.blur-options.title" +msgstr "模糊" + +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:600, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:605 +msgid "workspace.options.component" +msgstr "元件" + +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:163 +msgid "workspace.options.constraints" +msgstr "約束條件" + +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:150 +msgid "workspace.options.constraints.bottom" +msgstr "下" + +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:141, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:152 +msgid "workspace.options.constraints.center" +msgstr "中" + +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:229 +msgid "workspace.options.constraints.fix-when-scrolling" +msgstr "滾動時固定位置" + +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:138 +msgid "workspace.options.constraints.left" +msgstr "左" + +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:140 +msgid "workspace.options.constraints.leftright" +msgstr "左和右" + +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:139 +msgid "workspace.options.constraints.right" +msgstr "右" + +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:149 +msgid "workspace.options.constraints.top" +msgstr "上" + +#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:151 +msgid "workspace.options.constraints.topbottom" +msgstr "上和下" + +#: src/app/main/ui/workspace/sidebar/options.cljs:112 +msgid "workspace.options.design" +msgstr "設計" + +#: src/app/main/ui/viewer/inspect/exports.cljs:139 +msgid "workspace.options.export" +msgstr "匯出" + +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs +#, unused +msgid "workspace.options.export-multiple" +msgstr "匯出已選取項目" + +#: src/app/main/ui/viewer/inspect/exports.cljs:195, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:237 +msgid "workspace.options.export-object" +msgid_plural "workspace.options.export-object" +msgstr[0] "匯出 %s 元素" + +#: src/app/main/ui/viewer/inspect/exports.cljs:178, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:219 +msgid "workspace.options.export.suffix" +msgstr "後綴" + +#: src/app/main/ui/export.cljs:240 +msgid "workspace.options.exporting-complete" +msgstr "完成匯出" + +#: src/app/main/ui/export.cljs:172, src/app/main/ui/export.cljs:241, src/app/main/ui/viewer/inspect/exports.cljs:194, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:236 +msgid "workspace.options.exporting-object" +msgstr "正在匯出…" + +#: src/app/main/ui/export.cljs:239 +msgid "workspace.options.exporting-object-error" +msgstr "匯出失敗" + +#: src/app/main/ui/export.cljs:242 +msgid "workspace.options.exporting-object-slow" +msgstr "匯出異常緩慢" + +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:49, src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:174 +msgid "workspace.options.fill" +msgstr "填充" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:29 +msgid "workspace.options.grid.auto" +msgstr "自動" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:157 +msgid "workspace.options.grid.column" +msgstr "欄" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused +msgid "workspace.options.grid.params.columns" +msgstr "欄" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:246 +msgid "workspace.options.grid.params.height" +msgstr "高度" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused +msgid "workspace.options.grid.params.rows" +msgstr "列" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:216, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:290 +msgid "workspace.options.grid.params.set-default" +msgstr "設置為預設值" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused +msgid "workspace.options.grid.params.size" +msgstr "尺寸" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, unused +msgid "workspace.options.grid.params.type" +msgstr "類型" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:231 +msgid "workspace.options.grid.params.type.bottom" +msgstr "下" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:229 +msgid "workspace.options.grid.params.type.center" +msgstr "中" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:228 +msgid "workspace.options.grid.params.type.left" +msgstr "左" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:232 +msgid "workspace.options.grid.params.type.right" +msgstr "右" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:227 +msgid "workspace.options.grid.params.type.top" +msgstr "上" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:247 +msgid "workspace.options.grid.params.width" +msgstr "寬度" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:158 +msgid "workspace.options.grid.row" +msgstr "列" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:156 +msgid "workspace.options.grid.square" +msgstr "正方形" + +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:406 +msgid "workspace.options.height" +msgstr "高度" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:614 +msgid "workspace.options.interaction-animation" +msgstr "動畫" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:405 +msgid "workspace.options.interaction-animation-none" +msgstr "無" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:391 +msgid "workspace.options.interaction-auto" +msgstr "自動" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:456 +msgid "workspace.options.interaction-delay" +msgstr "延遲" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:415 +msgid "workspace.options.interaction-easing-linear" +msgstr "線性" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:458, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:459, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:464, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:663, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:665, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:669 +msgid "workspace.options.interaction-ms" +msgstr "毫秒" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:396 +msgid "workspace.options.interaction-pos-manual" +msgstr "手動" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:524 +msgid "workspace.options.interaction-position" +msgstr "位置" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:503 +msgid "workspace.options.interaction-url" +msgstr "網址" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:137 +msgid "workspace.options.layer-options.blend-mode.color" +msgstr "顏色" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:564 +msgid "workspace.options.layout-item.layout-item-max-h" +msgstr "最高" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused +msgid "workspace.options.layout-item.title.layout-item-min-h" +msgstr "最小高度" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +#, unused +msgid "workspace.options.layout-item.title.layout-item-min-w" +msgstr "最小寬度" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused +msgid "workspace.options.layout.bottom" +msgstr "下" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused +msgid "workspace.options.layout.left" +msgstr "左" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused +msgid "workspace.options.layout.right" +msgstr "右" + +#: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs +#, unused +msgid "workspace.options.layout.top" +msgstr "上" + +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:146 +msgid "workspace.options.more-colors" +msgstr "更多顏色" + +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:161 +msgid "workspace.options.opacity" +msgstr "不透明度" + +#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#, unused +msgid "workspace.options.position" +msgstr "位置" + +#: src/app/main/ui/workspace/sidebar/options.cljs:157 +msgid "workspace.options.prototype" +msgstr "原型" + +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:469, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:481 +msgid "workspace.options.radius" +msgstr "圓角半徑" + +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:532 +msgid "workspace.options.radius.all-corners" +msgstr "所有角落" + +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:533 +msgid "workspace.options.radius.single-corners" +msgstr "個別角落" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:183 +msgid "workspace.options.recent-fonts" +msgstr "最近" + +#: src/app/main/ui/export.cljs:284 +msgid "workspace.options.retry" +msgstr "重試" + +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:451 +msgid "workspace.options.rotation" +msgstr "旋轉" + +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:105 +msgid "workspace.options.selection-color" +msgstr "已選顏色" + +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:40, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:198, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:200 +msgid "workspace.options.shadow-options.blur" +msgstr "模糊" + +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:38, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:186 +msgid "workspace.options.shadow-options.offsetx" +msgstr "X" + +#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:39, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:224 +msgid "workspace.options.shadow-options.offsety" +msgstr "Y" + +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:296 +msgid "workspace.options.shadow-options.title" +msgstr "陰影" + +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:193 +msgid "workspace.options.show-fill-on-export" +msgstr "在匯出中顯示" + +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:162 +msgid "workspace.options.size" +msgstr "尺寸" + +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:124 +msgid "workspace.options.stroke-cap.none" +msgstr "無" + +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:133 +msgid "workspace.options.stroke-cap.square" +msgstr "正方形" + +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:87 +msgid "workspace.options.stroke.center" +msgstr "置中" + +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:105 +msgid "workspace.options.stroke.dashed" +msgstr "虛線" + +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:104 +msgid "workspace.options.stroke.dotted" +msgstr "點線" + +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:88 +msgid "workspace.options.stroke.inner" +msgstr "裏面" + +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:89 +msgid "workspace.options.stroke.outer" +msgstr "外面" + +#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:103 +msgid "workspace.options.stroke.solid" +msgstr "實線" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:82 +msgid "workspace.options.text-options.direction-ltr" +msgstr "左至右" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:87 +msgid "workspace.options.text-options.direction-rtl" +msgstr "右至左" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused +msgid "workspace.options.text-options.lowercase" +msgstr "小寫" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused +msgid "workspace.options.text-options.none" +msgstr "無" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:51 +msgid "workspace.options.text-options.text-align-center" +msgstr "置中 (%s)" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:189 +msgid "workspace.options.text-options.title" +msgstr "文字" + +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:171 +msgid "workspace.options.text-options.underline" +msgstr "底線" + +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +#, unused +msgid "workspace.options.text-options.uppercase" +msgstr "大寫" + +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:427 +msgid "workspace.options.x" +msgstr "X軸" + +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:438 +msgid "workspace.options.y" +msgstr "Y 軸" + +#: src/app/main/ui/workspace/viewport/path_actions.cljs:167 +msgid "workspace.path.actions.add-node" +msgstr "新增節點 (%s)" + +#: src/app/main/ui/workspace/viewport/path_actions.cljs:174 +msgid "workspace.path.actions.delete-node" +msgstr "刪除節點(%s)" + +#: src/app/main/ui/workspace/viewport/path_actions.cljs:152 +msgid "workspace.path.actions.draw-nodes" +msgstr "繪製節點 (%s)" + +#: src/app/main/ui/workspace/viewport/path_actions.cljs:189 +msgid "workspace.path.actions.join-nodes" +msgstr "聯接節點 (%s)" + +#: src/app/main/ui/workspace/context_menu.cljs:139 +msgid "workspace.shape.menu.copy" +msgstr "複製" + +#: src/app/main/ui/workspace/context_menu.cljs:142 +msgid "workspace.shape.menu.cut" +msgstr "剪下" + +#: src/app/main/ui/workspace/context_menu.cljs:486 +msgid "workspace.shape.menu.delete" +msgstr "刪除" + +#: src/app/main/ui/workspace/context_menu.cljs:148 +msgid "workspace.shape.menu.duplicate" +msgstr "複本" + +#: src/app/main/ui/workspace/context_menu.cljs:321 +msgid "workspace.shape.menu.edit" +msgstr "編輯" + +#: src/app/main/ui/workspace/context_menu.cljs:261 +msgid "workspace.shape.menu.group" +msgstr "群組" + +#: src/app/main/ui/workspace/context_menu.cljs:363, src/app/main/ui/workspace/sidebar/layer_item.cljs:145 +msgid "workspace.shape.menu.hide" +msgstr "隱藏" + +#: src/app/main/ui/workspace/context_menu.cljs:548, src/app/main/ui/workspace/main_menu.cljs:408 +msgid "workspace.shape.menu.hide-ui" +msgstr "顯示/隱藏使用者介面" + +#: src/app/main/ui/workspace/context_menu.cljs:371, src/app/main/ui/workspace/sidebar/layer_item.cljs:153 +msgid "workspace.shape.menu.lock" +msgstr "鎖定" + +#: src/app/main/ui/workspace/context_menu.cljs:145, src/app/main/ui/workspace/context_menu.cljs:545 +msgid "workspace.shape.menu.paste" +msgstr "貼上" + +#: src/app/main/ui/workspace/context_menu.cljs:331 +msgid "workspace.shape.menu.path" +msgstr "路徑" + +#: src/app/main/ui/workspace/context_menu.cljs:174 +msgid "workspace.shape.menu.select-layer" +msgstr "選擇圖層" + +#: src/app/main/ui/workspace/context_menu.cljs:360, src/app/main/ui/workspace/sidebar/layer_item.cljs:144 +msgid "workspace.shape.menu.show" +msgstr "顯示" + +#: src/app/main/ui/workspace/context_menu.cljs:221 +msgid "workspace.shape.menu.thumbnail-remove" +msgstr "移除縮圖" + +#: src/app/main/ui/workspace/context_menu.cljs:223 +msgid "workspace.shape.menu.thumbnail-set" +msgstr "設置為縮圖" + +#: src/app/main/ui/workspace/context_menu.cljs:257 +msgid "workspace.shape.menu.ungroup" +msgstr "取消群組" + +#: src/app/main/ui/workspace/context_menu.cljs:368, src/app/main/ui/workspace/sidebar/layer_item.cljs:152 +msgid "workspace.shape.menu.unlock" +msgstr "解除鎖定" + +#: src/app/main/ui/workspace/sidebar/layers.cljs:310, src/app/main/ui/workspace/sidebar/layers.cljs:408 +msgid "workspace.sidebar.layers.images" +msgstr "圖像" + +#: src/app/main/ui/workspace/sidebar/layers.cljs:309, src/app/main/ui/workspace/sidebar/layers.cljs:394 +msgid "workspace.sidebar.layers.texts" +msgstr "文字" + +#: src/app/main/ui/workspace/sidebar/sitemap.cljs:217 +msgid "workspace.sidebar.sitemap" +msgstr "頁" + +#: src/app/main/ui/workspace/sidebar/history.cljs:111 +msgid "workspace.undo.entry.multiple.circle" +msgstr "圖形" + +#: src/app/main/ui/workspace/sidebar/history.cljs:114 +msgid "workspace.undo.entry.multiple.curve" +msgstr "曲線" + +#: src/app/main/ui/workspace/sidebar/history.cljs:115 +msgid "workspace.undo.entry.multiple.frame" +msgstr "畫板" + +#: src/app/main/ui/workspace/sidebar/history.cljs:118 +msgid "workspace.undo.entry.multiple.multiple" +msgstr "物件" + +#: src/app/main/ui/workspace/sidebar/history.cljs:119 +msgid "workspace.undo.entry.multiple.page" +msgstr "頁" + +#: src/app/main/ui/workspace/sidebar/history.cljs:120 +msgid "workspace.undo.entry.multiple.path" +msgstr "路徑" + +#: src/app/main/ui/workspace/sidebar/history.cljs:121 +msgid "workspace.undo.entry.multiple.rect" +msgstr "矩形" + +#: src/app/main/ui/workspace/sidebar/history.cljs:122 +msgid "workspace.undo.entry.multiple.shape" +msgstr "形狀" + +#: src/app/main/ui/workspace/sidebar/history.cljs:123 +msgid "workspace.undo.entry.multiple.text" +msgstr "文字" + +#: src/app/main/ui/workspace/sidebar/history.cljs:124 +msgid "workspace.undo.entry.multiple.typography" +msgstr "字元樣式資產" + +#: src/app/main/ui/workspace/sidebar/history.cljs:125 +msgid "workspace.undo.entry.single.circle" +msgstr "圓圈" + +#: src/app/main/ui/workspace/sidebar/history.cljs:126 +msgid "workspace.undo.entry.single.color" +msgstr "顏色素材" + +#: src/app/main/ui/workspace/sidebar/history.cljs:128 +msgid "workspace.undo.entry.single.curve" +msgstr "曲線" + +#: src/app/main/ui/workspace/sidebar/history.cljs:129 +msgid "workspace.undo.entry.single.frame" +msgstr "畫板" + +#: src/app/main/ui/workspace/sidebar/history.cljs:130 +msgid "workspace.undo.entry.single.group" +msgstr "群組" + +#: src/app/main/ui/workspace/sidebar/history.cljs:131 +msgid "workspace.undo.entry.single.image" +msgstr "影像" + +#: src/app/main/ui/workspace/sidebar/history.cljs:133 +msgid "workspace.undo.entry.single.multiple" +msgstr "物件" + +#: src/app/main/ui/workspace/sidebar/history.cljs:134 +msgid "workspace.undo.entry.single.page" +msgstr "頁面" + +#: src/app/main/ui/workspace/sidebar/history.cljs:135 +msgid "workspace.undo.entry.single.path" +msgstr "路徑" + +#: src/app/main/ui/workspace/sidebar/history.cljs:136 +msgid "workspace.undo.entry.single.rect" +msgstr "矩形" + +#: src/app/main/ui/workspace/sidebar/history.cljs:137 +msgid "workspace.undo.entry.single.shape" +msgstr "形狀" + +#: src/app/main/ui/workspace/sidebar/history.cljs:138 +msgid "workspace.undo.entry.single.text" +msgstr "文字" + +#: src/app/main/ui/workspace/sidebar/history.cljs:149 +msgid "workspace.undo.entry.unknown" +msgstr "操作覆蓋%s" + +#: src/app/main/ui/workspace/sidebar/history.cljs:335 +msgid "workspace.undo.title" +msgstr "歷史" + +#: src/app/main/data/workspace/libraries.cljs:1094 +msgid "workspace.updates.dismiss" +msgstr "解散" + +#: src/app/main/data/workspace/libraries.cljs:1090 +msgid "workspace.updates.there-are-updates" +msgstr "共用檔案庫有更新" + +#: src/app/main/data/workspace/libraries.cljs:1097 +msgid "workspace.updates.update" +msgstr "更新" + +#, unused +msgid "workspace.viewport.click-to-close-path" +msgstr "點擊以關閉路徑" From 96822082bdea407ba5fe2cf30cd950c72bcc5f65 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Tue, 2 Jul 2024 17:47:29 +0200 Subject: [PATCH 310/476] Revert ":sparkles: Rehash and sync translations" This reverts commit 5b6fc19e00433eef2f9c65c6657823fa61756380. --- frontend/translations/af.po | 168 +- frontend/translations/ar.po | 1957 ++++++++----------- frontend/translations/bn.po | 37 +- frontend/translations/ca.po | 1821 ++++++++---------- frontend/translations/cs.po | 2323 +++++++++-------------- frontend/translations/da.po | 200 +- frontend/translations/de.po | 2641 +++++++++++--------------- frontend/translations/el.po | 1054 +++++----- frontend/translations/en.po | 2872 +++++++++++----------------- frontend/translations/es.po | 2799 +++++++++++---------------- frontend/translations/es_419.po | 224 +-- frontend/translations/eu.po | 1969 ++++++++----------- frontend/translations/fa.po | 1436 +++++++------- frontend/translations/fin_FI.po | 100 +- frontend/translations/fo.po | 275 ++- frontend/translations/fr.po | 3061 ++++++++++++------------------ frontend/translations/gl.po | 650 +++---- frontend/translations/ha.po | 2150 ++++++++------------- frontend/translations/he.po | 2547 ++++++++++--------------- frontend/translations/hr.po | 1927 ++++++++----------- frontend/translations/id.po | 2633 +++++++++++-------------- frontend/translations/ig.po | 994 ++++------ frontend/translations/it.po | 824 ++++---- frontend/translations/jpn_JP.po | 411 ++-- frontend/translations/ko.po | 626 +++--- frontend/translations/lt.po | 198 +- frontend/translations/lv.po | 2389 +++++++++-------------- frontend/translations/ml.po | 100 +- frontend/translations/ms.po | 1219 +++++------- frontend/translations/nb_NO.po | 328 ++-- frontend/translations/nl.po | 2429 ++++++++++-------------- frontend/translations/pl.po | 1809 +++++++----------- frontend/translations/pt_BR.po | 1803 +++++++----------- frontend/translations/pt_PT.po | 2526 ++++++++++-------------- frontend/translations/ro.po | 2240 +++++++++------------- frontend/translations/ru.po | 1649 +++++++--------- frontend/translations/ta.po | 82 +- frontend/translations/tr.po | 2462 ++++++++++-------------- frontend/translations/ukr_UA.po | 335 ++-- frontend/translations/yo.po | 2040 ++++++++------------ frontend/translations/zh_CN.po | 2762 +++++++++++---------------- frontend/translations/zh_Hant.po | 1302 ++++++------- 42 files changed, 24694 insertions(+), 36678 deletions(-) diff --git a/frontend/translations/af.po b/frontend/translations/af.po index 8d1d597f6b..5f940756e8 100644 --- a/frontend/translations/af.po +++ b/frontend/translations/af.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "PO-Revision-Date: 2024-06-17 08:07+0000\n" "Last-Translator: Anonymous \n" -"Language-Team: Afrikaans " -"\n" +"Language-Team: Afrikaans \n" "Language: af\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" @@ -11,404 +11,375 @@ msgstr "" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 5.6-dev\n" -#: src/app/main/ui/auth/register.cljs:151, src/app/main/ui/viewer/login.cljs:104 +#: src/app/main/ui/auth/register.cljs msgid "auth.already-have-account" msgstr "Reeds 'n rekening?" -#: src/app/main/ui/auth/register.cljs:299 +#: src/app/main/ui/auth/register.cljs msgid "auth.check-your-email" msgstr "" "Gaan jou e-pos na en klik op die skakel om te verifieer en Penpot te begin " "gebruik." -#: src/app/main/ui/auth/recovery.cljs:78 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.confirm-password" msgstr "Bevestig wagwoord" -#: src/app/main/ui/auth/register.cljs:163 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.create-demo-account" msgstr "Skep demo rekening" #: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs -#, unused msgid "auth.create-demo-profile" msgstr "Wil jy dit net probeer?" -#: src/app/main/ui/auth/login.cljs:43 +#: src/app/main/ui/auth/register.cljs msgid "auth.demo-warning" msgstr "" "Dit is 'n DEMO-diens, MOENIE vir werklike werk gebruik nie, die projekte " "sal periodiek uitgevee word." -#: src/app/main/ui/auth/login.cljs:189, src/app/main/ui/viewer/login.cljs:90 +#: src/app/main/ui/auth/login.cljs msgid "auth.forgot-password" msgstr "Wagwoord vergeet?" -#: src/app/main/ui/auth/register.cljs:254 +#: src/app/main/ui/auth/register.cljs msgid "auth.fullname" msgstr "Volle naam" -#: src/app/main/ui/auth/register.cljs:155, src/app/main/ui/viewer/login.cljs:107 +#: src/app/main/ui/auth/register.cljs +#, fuzzy msgid "auth.login-here" msgstr "Meld hier aan" -#: src/app/main/ui/auth/login.cljs:195 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-submit" msgstr "Meld aan" -#: src/app/main/ui/auth/login.cljs:222 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-github-submit" msgstr "GitHub" -#: src/app/main/ui/auth/login.cljs:228 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-gitlab-submit" msgstr "GitLab" -#: src/app/main/ui/auth/login.cljs:216 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-google-submit" msgstr "Google" -#: src/app/main/ui/auth/login.cljs:201 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-ldap-submit" msgstr "LDAP" -#: src/app/main/ui/auth/login.cljs:234, src/app/main/ui/auth/login.cljs:255 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-oidc-submit" msgstr "OpenID" -#: src/app/main/ui/auth/register.cljs:217, src/app/main/ui/dashboard/team_form.cljs:76, src/app/main/ui/onboarding/team_choice.cljs:180, src/app/main/ui/settings/access_tokens.cljs:66, src/app/main/ui/settings/feedback.cljs:34, src/app/main/ui/settings/profile.cljs:45, src/app/main/ui/workspace/sidebar/assets/groups.cljs:108 +#: src/app/main/ui/settings/team-form.cljs, src/app/main/ui/auth/register.cljs, src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/onboarding/team_choice.cljs, src/app/main/ui/settings/access_tokens.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/settings/profile.cljs, src/app/main/ui/workspace/sidebar/assets.cljs msgid "auth.name.not-all-space" msgstr "Die naam moet 'n ander karakter as spasie bevat." -#: src/app/main/ui/auth/register.cljs:218, src/app/main/ui/dashboard/team_form.cljs:77, src/app/main/ui/onboarding/team_choice.cljs:181, src/app/main/ui/settings/access_tokens.cljs:67, src/app/main/ui/settings/feedback.cljs:33, src/app/main/ui/settings/profile.cljs:44, src/app/main/ui/workspace/sidebar/assets/groups.cljs:109 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/onboarding/team_choice.cljs, src/app/main/ui/settings/access_tokens.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/settings/profile.cljs, src/app/main/ui/workspace/sidebar/assets.cljs msgid "auth.name.too-long" msgstr "Die naam moet hoogstens 250 karakters bevat." -#: src/app/main/ui/auth/recovery.cljs:71 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.new-password" msgstr "Tik 'n nuwe wagwoord in" -#: src/app/main/ui/auth/recovery.cljs:42 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.notifications.invalid-token-error" msgstr "Die hersteltoken is ongeldig." -#: src/app/main/ui/auth/recovery.cljs:46 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.notifications.password-changed-successfully" msgstr "Wagwoord suksesvol verander" -#: src/app/main/ui/auth/recovery_request.cljs:57 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.notifications.profile-not-verified" msgstr "" "Profiel is nie geverifieer nie, verifieer asseblief profiel voordat jy " "voortgaan." -#: src/app/main/ui/auth/recovery_request.cljs:40 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.notifications.recovery-token-sent" msgstr "Wagwoordherwinningskakel na jou inkassie gestuur." -#: src/app/main/ui/auth/verify_token.cljs:47 +#: src/app/main/ui/auth/verify_token.cljs msgid "auth.notifications.team-invitation-accepted" msgstr "Het suksesvol by die span aangesluit" -#: src/app/main/ui/auth/login.cljs:179, src/app/main/ui/auth/register.cljs:115 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.password" msgstr "Wagwoord" -#: src/app/main/ui/auth/register.cljs:114 +#: src/app/main/ui/auth/register.cljs msgid "auth.password-length-hint" msgstr "Ten minste 8 karakters" -#: src/app/main/ui/auth/recovery.cljs:61, src/app/main/ui/auth/recovery.cljs:62, src/app/main/ui/auth/register.cljs:81, src/app/main/ui/settings/password.cljs:75, src/app/main/ui/settings/password.cljs:76, src/app/main/ui/settings/password.cljs:77 +#: src/app/main/ui/auth/register.cljs msgid "auth.password-not-empty" msgstr "Wagwoord moet 'n ander karakter as spasie bevat." -#: src/app/main/ui/auth.cljs:41 msgid "auth.privacy-policy" msgstr "Privaatheidsbeleid" -#: src/app/main/ui/auth/recovery_request.cljs:88 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-submit" msgstr "Herstel Wagwoord" -#: src/app/main/ui/auth/recovery_request.cljs:101 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-subtitle" msgstr "Ons sal vir jou 'n e-pos stuur met instruksies" -#: src/app/main/ui/auth/recovery_request.cljs:100 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-title" msgstr "Wagwoord vergeet?" -#: src/app/main/ui/auth/recovery.cljs:82 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.recovery-submit" msgstr "Verander jou wagwoord" -#: src/app/main/ui/auth/login.cljs:298, src/app/main/ui/viewer/login.cljs:93 +#: src/app/main/ui/auth/login.cljs msgid "auth.register" msgstr "Nog nie 'n rekening nie?" -#: src/app/main/ui/auth/login.cljs:302, src/app/main/ui/auth/register.cljs:121, src/app/main/ui/auth/register.cljs:263, src/app/main/ui/viewer/login.cljs:97 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.register-submit" msgstr "Skep 'n rekening" -#: src/app/main/ui/auth/register.cljs:140 +#: src/app/main/ui/auth/register.cljs msgid "auth.register-title" msgstr "Skep 'n rekening" #: src/app/main/ui/auth.cljs -#, unused msgid "auth.sidebar-tagline" msgstr "Die oopbron-oplossing vir ontwerp en prototipering." -#: src/app/main/ui/auth.cljs:33, src/app/main/ui/dashboard/sidebar.cljs:1022, src/app/main/ui/workspace/main_menu.cljs:150 msgid "auth.terms-of-service" msgstr "Diensbepalings" -#, unused +#: src/app/main/ui/auth/register.cljs msgid "auth.terms-privacy-agreement" msgstr "" "Wanneer jy 'n nuwe rekening skep, stem jy in tot ons diensbepalings en " "privaatheidsbeleid." -#: src/app/main/ui/auth/register.cljs:297 +#: src/app/main/ui/auth/register.cljs msgid "auth.verification-email-sent" msgstr "Ons het 'n verifikasie-e-pos aan gestuur" #: src/app/main/ui/onboarding/questions.cljs -#, unused msgid "branding-illustrations-marketing-pieces" msgstr "...handelsmerk, illustrasies, bemarkingsstukke, ens." -#: src/app/main/ui/workspace/libraries.cljs:228 msgid "common.publish" msgstr "Publiseer" -#: src/app/main/ui/viewer/share_link.cljs:304, src/app/main/ui/viewer/share_link.cljs:314 msgid "common.share-link.all-users" msgstr "Alle Penpot-gebruikers" -#: src/app/main/ui/viewer/share_link.cljs:198 msgid "common.share-link.confirm-deletion-link-description" msgstr "" "Is jy seker jy wil hierdie skakel verwyder? As jy dit doen, is dit nie meer " "vir enigiemand beskikbaar nie" -#: src/app/main/ui/viewer/share_link.cljs:259, src/app/main/ui/viewer/share_link.cljs:289 msgid "common.share-link.current-tag" msgstr "(huidige)" -#: src/app/main/ui/viewer/share_link.cljs:207, src/app/main/ui/viewer/share_link.cljs:214 msgid "common.share-link.destroy-link" msgstr "Vernietig skakel" -#: src/app/main/ui/viewer/share_link.cljs:221 msgid "common.share-link.get-link" msgstr "Kry skakel" -#: src/app/main/ui/viewer/share_link.cljs:139 msgid "common.share-link.link-copied-success" msgstr "Skakel suksesvol gekopieer" -#: src/app/main/ui/viewer/share_link.cljs:231 msgid "common.share-link.manage-ops" msgstr "Bestuur toestemmings" -#: src/app/main/ui/viewer/share_link.cljs:277 msgid "common.share-link.page-shared" msgid_plural "common.share-link.page-shared" msgstr[0] "bladsy gedeel" msgstr[1] "%s bladsye gedeel" -#: src/app/main/ui/viewer/share_link.cljs:298 msgid "common.share-link.permissions-can-comment" msgstr "Kan kommentaar lewer" -#: src/app/main/ui/viewer/share_link.cljs:308 msgid "common.share-link.permissions-can-inspect" msgstr "Kan kode inspekteer" -#: src/app/main/ui/viewer/share_link.cljs:193 msgid "common.share-link.permissions-hint" msgstr "Enigiemand met skakel sal toegang hê" -#: src/app/main/ui/viewer/share_link.cljs:241 msgid "common.share-link.permissions-pages" msgstr "Bladsye gedeel" -#: src/app/main/ui/viewer/share_link.cljs:183 msgid "common.share-link.placeholder" msgstr "Deelbare skakel sal hier verskyn" -#: src/app/main/ui/viewer/share_link.cljs:303, src/app/main/ui/viewer/share_link.cljs:313 msgid "common.share-link.team-members" msgstr "Slegs spanlede" -#: src/app/main/ui/viewer/share_link.cljs:171 msgid "common.share-link.title" msgstr "Deel prototipes" -#: src/app/main/ui/viewer/share_link.cljs:269 msgid "common.share-link.view-all" msgstr "Kies Alles" -#: src/app/main/ui/workspace/libraries.cljs:224 msgid "common.unpublish" msgstr "Depubliseer" -#: src/app/main/ui/dashboard/projects.cljs:85 +#: src/app/main/ui/dashboard/projects.cljs msgid "dasboard.team-hero.management" msgstr "Spanbestuur" -#: src/app/main/ui/dashboard/projects.cljs:84 +#: src/app/main/ui/dashboard/projects.cljs msgid "dasboard.team-hero.text" msgstr "Penpot is bedoel vir spanne. Nooi lede om saam te werk aan projekte en lêers" -#: src/app/main/ui/dashboard/projects.cljs:82 +#: src/app/main/ui/dashboard/projects.cljs msgid "dasboard.team-hero.title" msgstr "Span saam!" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.tutorial-hero.info" msgstr "" "Leer die basiese beginsels by Penpot terwyl jy pret het met hierdie " "praktiese tutoriaal." #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.tutorial-hero.start" msgstr "Begin die tutoriaal" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.walkthrough-hero.info" msgstr "Gaan stap deur Penpot en leer sy hoofkenmerke ken." #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.walkthrough-hero.start" msgstr "Begin die toer" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.walkthrough-hero.title" msgstr "Koppelvlak Deurloop" -#: src/app/main/ui/settings/access_tokens.cljs:115 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.copied-success" msgstr "Token gekopieer" -#: src/app/main/ui/settings/access_tokens.cljs:202 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.create" msgstr "Genereer nuwe token" -#: src/app/main/ui/settings/access_tokens.cljs:76 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.create.success" msgstr "Toegangstoken is suksesvol geskep." -#: src/app/main/ui/settings/access_tokens.cljs:300 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.empty.add-one" msgstr "Druk die knoppie \"Genereer nuwe token\" om een te genereer." -#: src/app/main/ui/settings/access_tokens.cljs:299 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.empty.no-access-tokens" msgstr "Jy het tot dusver geen tokens nie." -#: src/app/main/ui/settings/access_tokens.cljs:53 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.errors-required-name" msgstr "Die naam word vereis" -#: src/app/main/ui/settings/access_tokens.cljs:147 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-180-days" msgstr "180 dae" -#: src/app/main/ui/settings/access_tokens.cljs:144 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-30-days" msgstr "30 dae" -#: src/app/main/ui/settings/access_tokens.cljs:145 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-60-days" msgstr "60 dae" -#: src/app/main/ui/settings/access_tokens.cljs:146 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-90-days" msgstr "90 dae" -#: src/app/main/ui/settings/access_tokens.cljs:143 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-never" msgstr "Nooit" -#: src/app/main/ui/settings/access_tokens.cljs:282 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expired-on" msgstr "Het verval op %s" -#: src/app/main/ui/settings/access_tokens.cljs:283 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expires-on" msgstr "Verval op %s" -#: src/app/main/ui/settings/access_tokens.cljs:281 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.no-expiration" msgstr "Geen verval datum nie" -#: src/app/main/ui/settings/access_tokens.cljs:197 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.personal" msgstr "Persoonlike toegangstokens" -#: src/app/main/ui/settings/access_tokens.cljs:198 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.personal.description" msgstr "" "Persoonlike toegangtokens funksioneer soos 'n alternatief vir ons " "aanmeld-/wagwoord-verifikasiestelsel en kan gebruik word om 'n toepassing " "toe te laat om toegang tot die interne Penpot API te verkry" -#: src/app/main/ui/settings/access_tokens.cljs:154 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.token-will-expire" msgstr "Die token sal verval op %s" -#: src/app/main/ui/settings/access_tokens.cljs:155 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.token-will-not-expire" msgstr "Die token het nie 'n verval datum nie" -#: src/app/main/ui/dashboard/file_menu.cljs:291, src/app/main/ui/workspace/main_menu.cljs:572 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.add-shared" msgstr "Voeg by as Gedeelde Biblioteek" -#: src/app/main/ui/settings/profile.cljs:75 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.change-email" msgstr "Verander e-pos" -#: src/app/main/data/dashboard.cljs:762, src/app/main/data/dashboard.cljs:983 +#: src/app/main/data/dashboard.cljs, src/app/main/data/dashboard.cljs msgid "dashboard.copy-suffix" msgstr "(kopieer)" -#: src/app/main/ui/dashboard/sidebar.cljs:338 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.create-new-team" msgstr "Skep 'n nuwe span" -#: src/app/main/ui/components/context_menu_a11y.cljs:256, src/app/main/ui/dashboard/sidebar.cljs:646 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.default-team-name" msgstr "Jou Penpot" -#: src/app/main/ui/dashboard/sidebar.cljs:571 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.delete-team" msgstr "Verwyder span" -#: src/app/main/ui/dashboard/file_menu.cljs:296, src/app/main/ui/workspace/main_menu.cljs:589 msgid "dashboard.download-binary-file" msgstr "Laai Penpot-lêer (.penpot) af" -#: src/app/main/ui/dashboard/file_menu.cljs:300, src/app/main/ui/workspace/main_menu.cljs:597 msgid "dashboard.download-standard-file" msgstr "Laai standaardlêer af (.svg + .json)" -#: src/app/main/ui/dashboard/file_menu.cljs:276, src/app/main/ui/dashboard/project_menu.cljs:90 +#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.duplicate" msgstr "Dupliseer" -#: src/app/main/ui/dashboard/file_menu.cljs:240 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.duplicate-multi" msgstr "Dupliseer %s lêers" -#: src/app/main/ui/dashboard/placeholder.cljs:32 +#: src/app/main/ui/dashboard/grid.cljs #, markdown msgid "dashboard.empty-placeholder-drafts" msgstr "" @@ -416,18 +387,15 @@ msgstr "" "te deel of voeg by vanaf ons [Biblioteke en " "sjablone](https://penpot.app/libraries-templates)." -#: src/app/main/ui/dashboard/file_menu.cljs:249 msgid "dashboard.export-binary-multi" msgstr "Laai %s Penpot lêers (.penpot) af" -#: src/app/main/ui/workspace/main_menu.cljs:605 msgid "dashboard.export-frames" msgstr "Voer borde as PDF uit" -#: src/app/main/ui/export.cljs:201 +#: src/app/main/ui/export.cljs msgid "dashboard.export-frames.title" msgstr "Voer as PDF uit" -#, unused msgid "dashboard.export-multi" msgstr "Voer %s Penpot lêers uit" diff --git a/frontend/translations/ar.po b/frontend/translations/ar.po index 8ccea8fab4..8c1d9e966b 100644 --- a/frontend/translations/ar.po +++ b/frontend/translations/ar.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "PO-Revision-Date: 2024-06-17 08:07+0000\n" "Last-Translator: Anonymous \n" -"Language-Team: Arabic " -"\n" +"Language-Team: Arabic \n" "Language: ar\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" @@ -12,204 +12,171 @@ msgstr "" "&& n%100<=10 ? 3 : n%100>=11 ? 4 : 5;\n" "X-Generator: Weblate 5.6-dev\n" -#: src/app/main/ui/auth/register.cljs:151, src/app/main/ui/viewer/login.cljs:104 +#: src/app/main/ui/auth/register.cljs msgid "auth.already-have-account" msgstr "هل لديك حساب؟" -#: src/app/main/ui/auth/register.cljs:299 +#: src/app/main/ui/auth/register.cljs msgid "auth.check-your-email" msgstr "تحقق من بريدك الإلكتروني وانقر على الرابط للتحقق والبدء في استخدام Penpot." -#: src/app/main/ui/auth/recovery.cljs:78 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.confirm-password" msgstr "تأكيد كلمة المرور" -#: src/app/main/ui/auth/register.cljs:163 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.create-demo-account" msgstr "إنشاء حساب تجريبي" #: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs -#, unused msgid "auth.create-demo-profile" msgstr "ترغب في التجربة فحسب؟" -#: src/app/main/ui/auth/login.cljs:43 +#: src/app/main/ui/auth/register.cljs msgid "auth.demo-warning" msgstr "هذه خدمة تجريبية ، لا تستخدمها للعمل الحقيقي ، سيتم مسح المشاريع بشكل دوري." -#: src/app/main/ui/auth/login.cljs:189, src/app/main/ui/viewer/login.cljs:90 +#: src/app/main/ui/auth/login.cljs msgid "auth.forgot-password" msgstr "هل نسيت كلمة السر؟" -#: src/app/main/ui/auth/register.cljs:254 +#: src/app/main/ui/auth/register.cljs msgid "auth.fullname" msgstr "الاسم الكامل" -#: src/app/main/ui/auth/login.cljs:282 -msgid "auth.login-account-title" -msgstr "قم بتسجيل الدخول إلى حسابي" - -#: src/app/main/ui/auth/register.cljs:155, src/app/main/ui/viewer/login.cljs:107 +#: src/app/main/ui/auth/register.cljs +#, fuzzy msgid "auth.login-here" msgstr "تسجيل الدخول هنا" -#: src/app/main/ui/auth/login.cljs:195 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-submit" msgstr "تسجيل الدخول" -#: src/app/main/ui/auth/login.cljs:285 -msgid "auth.login-tagline" -msgstr "Penpot هو أداة تصميم مجانية ومفتوحة المصدر للتعاون بين التصميم والبرمجة" - -#: src/app/main/ui/auth/login.cljs:222 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-github-submit" msgstr "Github" -#: src/app/main/ui/auth/login.cljs:228 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-gitlab-submit" msgstr "Gitlabسجل دخولك عن طريق" -#: src/app/main/ui/auth/login.cljs:216 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-google-submit" msgstr "جوجل" -#: src/app/main/ui/auth/login.cljs:201 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-ldap-submit" msgstr "LDAPسجل دخولك عن طريق" -#: src/app/main/ui/auth/login.cljs:234, src/app/main/ui/auth/login.cljs:255 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-oidc-submit" msgstr "OpenID سجل دخولك عن طريق" -#: src/app/main/ui/auth/register.cljs:217, src/app/main/ui/dashboard/team_form.cljs:76, src/app/main/ui/onboarding/team_choice.cljs:180, src/app/main/ui/settings/access_tokens.cljs:66, src/app/main/ui/settings/feedback.cljs:34, src/app/main/ui/settings/profile.cljs:45, src/app/main/ui/workspace/sidebar/assets/groups.cljs:108 -msgid "auth.name.not-all-space" -msgstr "يجب أن يحتوي الاسم على بعض الأحرف غير الفراغات." - -#: src/app/main/ui/auth/register.cljs:218, src/app/main/ui/dashboard/team_form.cljs:77, src/app/main/ui/onboarding/team_choice.cljs:181, src/app/main/ui/settings/access_tokens.cljs:67, src/app/main/ui/settings/feedback.cljs:33, src/app/main/ui/settings/profile.cljs:44, src/app/main/ui/workspace/sidebar/assets/groups.cljs:109 -msgid "auth.name.too-long" -msgstr "يجب أن يحتوي الاسم على 250 حرفًا كحد أقصى." - -#: src/app/main/ui/auth/recovery.cljs:71 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.new-password" msgstr "اكتب كلمة مرور جديدة" -#: src/app/main/ui/auth/recovery.cljs:42 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.notifications.invalid-token-error" msgstr "رمز الاسترداد غير صالح." -#: src/app/main/ui/auth/recovery.cljs:46 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.notifications.password-changed-successfully" msgstr "تم تغيير كلمة المرور بنجاح" -#: src/app/main/ui/auth/recovery_request.cljs:57 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.notifications.profile-not-verified" msgstr "لم يتم التأكيد على الحساب الشخصي ، يرجى التحقق قبل المواصلة" -#: src/app/main/ui/auth/recovery_request.cljs:40 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.notifications.recovery-token-sent" msgstr "تم إرسال رمز الاسترداد لاستعادة كلمة المرور إلى صندوق البريد الخاص بك" -#: src/app/main/ui/auth/verify_token.cljs:47 +#: src/app/main/ui/auth/verify_token.cljs msgid "auth.notifications.team-invitation-accepted" msgstr "تم الانضمام إلى الفريق بنجاح" -#: src/app/main/ui/auth/login.cljs:179, src/app/main/ui/auth/register.cljs:115 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.password" msgstr "كلمه السر" -#: src/app/main/ui/auth/register.cljs:114 +#: src/app/main/ui/auth/register.cljs msgid "auth.password-length-hint" msgstr "8 أحرف على الأقل" -#: src/app/main/ui/auth.cljs:41 msgid "auth.privacy-policy" msgstr "سياسة الخصوصية" -#: src/app/main/ui/auth/recovery_request.cljs:88 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-submit" msgstr "إستعادة كلمة المرور" -#: src/app/main/ui/auth/recovery_request.cljs:101 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-subtitle" msgstr "سنرسل لك رسالة بريد إلكتروني تحتوي على التعليمات" -#: src/app/main/ui/auth/recovery_request.cljs:100 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-title" msgstr "نسيت كلمة المرور؟" -#: src/app/main/ui/auth/recovery.cljs:82 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.recovery-submit" msgstr "تغيير كلمة المرور" -#: src/app/main/ui/auth/login.cljs:298, src/app/main/ui/viewer/login.cljs:93 +#: src/app/main/ui/auth/login.cljs msgid "auth.register" msgstr "لا تملك حساب بعد؟" -#: src/app/main/ui/auth/login.cljs:302, src/app/main/ui/auth/register.cljs:121, src/app/main/ui/auth/register.cljs:263, src/app/main/ui/viewer/login.cljs:97 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.register-submit" msgstr "إنشاء حساب" -#: src/app/main/ui/auth/register.cljs:140 +#: src/app/main/ui/auth/register.cljs msgid "auth.register-title" msgstr "إنشاء حساب" #: src/app/main/ui/auth.cljs -#, unused msgid "auth.sidebar-tagline" msgstr "الحل (مفتوح المصدر) للتصميم والنمذجة." -#: src/app/main/ui/auth.cljs:33, src/app/main/ui/dashboard/sidebar.cljs:1022, src/app/main/ui/workspace/main_menu.cljs:150 msgid "auth.terms-of-service" msgstr "شروط الخدمة" -#, unused +#: src/app/main/ui/auth/register.cljs msgid "auth.terms-privacy-agreement" msgstr "عند إنشاء حساب جديد ، فإنك توافق على شروط الخدمة وسياسة الخصوصية الخاصة بنا." -#: src/app/main/ui/auth/register.cljs:297 +#: src/app/main/ui/auth/register.cljs msgid "auth.verification-email-sent" msgstr "لقد أرسلنا رسالة تحقق إلى بريدك الالكتروني" -#: src/app/main/ui/onboarding/questions.cljs -#, unused -msgid "branding-illustrations-marketing-pieces" -msgstr "...علامة تجارية، رسوم توضيحية، قطع تسويقية، إلخ." - -#: src/app/main/ui/workspace/libraries.cljs:228 msgid "common.publish" msgstr "أنشر" -#: src/app/main/ui/viewer/share_link.cljs:304, src/app/main/ui/viewer/share_link.cljs:314 msgid "common.share-link.all-users" msgstr "جميع مستخدمي Penpot" -#: src/app/main/ui/viewer/share_link.cljs:198 msgid "common.share-link.confirm-deletion-link-description" msgstr "" "هل أنت متأكد أنك تريد إزالة هذا الرابط؟ إذا قمت بذلك ، فلن يكون متاحًا لأي " "شخص" -#: src/app/main/ui/viewer/share_link.cljs:259, src/app/main/ui/viewer/share_link.cljs:289 msgid "common.share-link.current-tag" msgstr "(الحالي)" -#: src/app/main/ui/viewer/share_link.cljs:207, src/app/main/ui/viewer/share_link.cljs:214 msgid "common.share-link.destroy-link" msgstr "إتلاف الرابط" -#: src/app/main/ui/viewer/share_link.cljs:221 msgid "common.share-link.get-link" msgstr "خذ رابطا إلكتروني" -#: src/app/main/ui/viewer/share_link.cljs:139 msgid "common.share-link.link-copied-success" msgstr "تم نسخ الرابط بنجاح" -#: src/app/main/ui/viewer/share_link.cljs:231 msgid "common.share-link.manage-ops" msgstr "إدارة التصاريح" -#: src/app/main/ui/viewer/share_link.cljs:277 msgid "common.share-link.page-shared" msgid_plural "common.share-link.page-shared" msgstr[0] "لم يتم مشاركة الصفحة" @@ -219,246 +186,199 @@ msgstr[3] "مشاركة صفحات" msgstr[4] "مشاركة صفحة" msgstr[5] "مشاركة صفحة" -#: src/app/main/ui/viewer/share_link.cljs:298 msgid "common.share-link.permissions-can-comment" msgstr "يمكن التعليق" -#: src/app/main/ui/viewer/share_link.cljs:308 msgid "common.share-link.permissions-can-inspect" msgstr "يمكن فحص الكود" -#: src/app/main/ui/viewer/share_link.cljs:193 msgid "common.share-link.permissions-hint" msgstr "أي شخص لديه الرابط سيكون لديه حق الوصول" -#: src/app/main/ui/viewer/share_link.cljs:241 msgid "common.share-link.permissions-pages" msgstr "الصفحات المشتركة" -#: src/app/main/ui/viewer/share_link.cljs:183 msgid "common.share-link.placeholder" msgstr "سيظهر الرابط القابل للمشاركة هنا" -#: src/app/main/ui/viewer/share_link.cljs:303, src/app/main/ui/viewer/share_link.cljs:313 msgid "common.share-link.team-members" msgstr "أعضاء الفريق فقط" -#: src/app/main/ui/viewer/share_link.cljs:171 msgid "common.share-link.title" msgstr "مشاركة النماذج" -#: src/app/main/ui/viewer/share_link.cljs:269 msgid "common.share-link.view-all" msgstr "اختر الكل" -#: src/app/main/ui/workspace/libraries.cljs:224 msgid "common.unpublish" msgstr "إلغاء النشر" -#: src/app/main/ui/dashboard/projects.cljs:85 +#: src/app/main/ui/dashboard/projects.cljs msgid "dasboard.team-hero.management" msgstr "إدارة الفريق" -#: src/app/main/ui/dashboard/projects.cljs:84 +#: src/app/main/ui/dashboard/projects.cljs msgid "dasboard.team-hero.text" msgstr "Penpot تم تصميمه للفرق. أدعُ زملاءك للعمل سوياَ على المشاريع والملفات" -#: src/app/main/ui/dashboard/projects.cljs:82 +#: src/app/main/ui/dashboard/projects.cljs msgid "dasboard.team-hero.title" msgstr "إعمل فريق!" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.tutorial-hero.info" msgstr "تعلم أساسيات برنامج Penpot بينما تستمع بتجربته في هذه الدورة التعليمية." #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.tutorial-hero.start" msgstr "إبدا الدورة التعليمية" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.tutorial-hero.title" msgstr "دورة تعليمية عملية" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.walkthrough-hero.info" msgstr "إذهب في جولة في البرنامج وتعرف على ميزاته." #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.walkthrough-hero.start" msgstr "إبدا الجولة" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.walkthrough-hero.title" msgstr "جولة في الواجهة" -#: src/app/main/ui/settings/access_tokens.cljs:115 -msgid "dashboard.access-tokens.copied-success" -msgstr "الرمز منسوخ" - -#: src/app/main/ui/settings/access_tokens.cljs:202 -msgid "dashboard.access-tokens.create" -msgstr "قم بإنشاء رمز جديد" - -#: src/app/main/ui/settings/access_tokens.cljs:76 -msgid "dashboard.access-tokens.create.success" -msgstr "تم إنشاء رمز الوصول بنجاح." - -#: src/app/main/ui/settings/access_tokens.cljs:300 -msgid "dashboard.access-tokens.empty.add-one" -msgstr "اضغط على الزر \"إنشاء رمز جديد\" لإنشاء واحد." - -#: src/app/main/ui/dashboard/file_menu.cljs:291, src/app/main/ui/workspace/main_menu.cljs:572 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.add-shared" msgstr "أضف كمكتبة مشتركة" -#: src/app/main/ui/settings/profile.cljs:75 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.change-email" msgstr "تغيير البريد الإلكتروني" -#: src/app/main/data/dashboard.cljs:762, src/app/main/data/dashboard.cljs:983 +#: src/app/main/data/dashboard.cljs, src/app/main/data/dashboard.cljs msgid "dashboard.copy-suffix" msgstr "(نسخة)" -#: src/app/main/ui/dashboard/sidebar.cljs:338 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.create-new-team" msgstr "إنشاء فريق جديد" -#: src/app/main/ui/components/context_menu_a11y.cljs:256, src/app/main/ui/dashboard/sidebar.cljs:646 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.default-team-name" msgstr "Penpot الخاص بك" -#: src/app/main/ui/dashboard/sidebar.cljs:571 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.delete-team" msgstr "حذف الفريق" -#: src/app/main/ui/dashboard/file_menu.cljs:296, src/app/main/ui/workspace/main_menu.cljs:589 msgid "dashboard.download-binary-file" msgstr "تنزيل ملف Penpot (.penpot)" -#: src/app/main/ui/dashboard/file_menu.cljs:300, src/app/main/ui/workspace/main_menu.cljs:597 msgid "dashboard.download-standard-file" msgstr "تنزيل ملف قياسي (.svg + .json)" -#: src/app/main/ui/dashboard/file_menu.cljs:276, src/app/main/ui/dashboard/project_menu.cljs:90 +#: src/app/main/ui/dashboard/project_menu.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.duplicate" msgstr "تكرير" -#: src/app/main/ui/dashboard/file_menu.cljs:240 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.duplicate-multi" msgstr "تكرير %s الملفات" -#: src/app/main/ui/dashboard/placeholder.cljs:32 -#, markdown +#: src/app/main/ui/dashboard/grid.cljs msgid "dashboard.empty-placeholder-drafts" msgstr "" "أوه لا! ليس لديك ملفات بعد! إذا كنت تريد تجربة بعض القوالب ، فانتقل إلى " "[المكتبات والقوالب] (https://penpot.app/libraries-templates)" -#: src/app/main/ui/dashboard/file_menu.cljs:249 msgid "dashboard.export-binary-multi" msgstr "تنزيل ملفات ٪s Penpot (.penpot)" -#: src/app/main/ui/workspace/main_menu.cljs:605 msgid "dashboard.export-frames" msgstr "صدر اللوحة الفنية الى ملف PDF…" -#: src/app/main/ui/export.cljs:201 +#: src/app/main/ui/export.cljs msgid "dashboard.export-frames.title" msgstr "استخراج PDF" -#, unused msgid "dashboard.export-multi" msgstr "تصدير %s الملفات" -#: src/app/main/ui/export.cljs:109 +#: src/app/main/ui/export.cljs msgid "dashboard.export-multiple.selected" msgstr "%s من %s عناصر مختارة" -#: src/app/main/ui/workspace/main_menu.cljs:578 +#: src/app/main/ui/workspace/header.cljs msgid "dashboard.export-shapes" msgstr "استخراج" -#: src/app/main/ui/export.cljs:180 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.how-to" msgstr "" "يمكنك إضافة إعدادات التصدير إلى العناصر من خصائص التصميم (أسفل الشريط " "الجانبي الأيمن)." -#: src/app/main/ui/export.cljs:184 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.how-to-link" msgstr "معلومات عن كيفية إعداد التصدير." -#: src/app/main/ui/export.cljs:179 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.no-elements" msgstr "لا يوجد عناصر بإعدادت التصدير." -#: src/app/main/ui/export.cljs:190 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.title" msgstr "إختيار التصدير" -#: src/app/main/ui/dashboard/file_menu.cljs:252 msgid "dashboard.export-standard-multi" msgstr "تحميل %s ملفات أساسية (.svg + .json)" -#: src/app/main/ui/export.cljs:427 msgid "dashboard.export.detail" msgstr "* ربما يحتوي على عناصر، رسومات، الوان، و/أو خطوط." -#: src/app/main/ui/export.cljs:426 msgid "dashboard.export.explain" msgstr "" "ملف أو أكثر تريد تصديرهم يستخدمون مكتبات مشتركة. ماذا تريد أن تفعل في " "أصولهم*؟" -#: src/app/main/ui/export.cljs:435 msgid "dashboard.export.options.all.message" msgstr "سيتم ادراج الملفات التي لها مكتبات مشتركة في التصدير، مع الحفاظ على روابطهم." -#: src/app/main/ui/export.cljs:436 msgid "dashboard.export.options.all.title" msgstr "صدر المكتبات المشتركة" -#: src/app/main/ui/export.cljs:437 msgid "dashboard.export.options.detach.message" msgstr "" "لن يتم تضمين المكتبات المشتركة في التصدير ولن يتم إضافة أي أصول إلى " "المكتبة. " -#: src/app/main/ui/export.cljs:438 msgid "dashboard.export.options.detach.title" msgstr "عامل أصول المكتبة المشتركة كعناصر بسيطة" -#: src/app/main/ui/export.cljs:439 msgid "dashboard.export.options.merge.message" msgstr "سيتم تصدير ملفك مع دمج جميع الأصول الخارجية في مكتبة الملفات." -#: src/app/main/ui/export.cljs:440 msgid "dashboard.export.options.merge.title" msgstr "تضمين أصول المكتبة المشتركة في مكتبات الملفات" -#: src/app/main/ui/export.cljs:418 msgid "dashboard.export.title" msgstr "صدر الملفات" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:309 msgid "dashboard.fonts.deleted-placeholder" msgstr "الخط محذوف" -#: src/app/main/ui/dashboard/fonts.cljs:206 +#: src/app/main/ui/dashboard/fonts.cljs msgid "dashboard.fonts.dismiss-all" msgstr "الغاء الكل" -#: src/app/main/ui/dashboard/fonts.cljs:436 msgid "dashboard.fonts.empty-placeholder" msgstr "لا يزال ليس لديك خطوط مخصصة مثبتة." -#: src/app/main/ui/dashboard/fonts.cljs:194 +#: src/app/main/ui/dashboard/fonts.cljs msgid "dashboard.fonts.fonts-added" msgid_plural "dashboard.fonts.fonts-added" msgstr[0] "لم يتم إضافة أي خط" @@ -468,8 +388,6 @@ msgstr[3] "عدد قليل من الخطوط المضافة" msgstr[4] "تمت إضافة العديد من الخطوط" msgstr[5] "" -#: src/app/main/ui/dashboard/fonts.cljs:170 -#, markdown msgid "dashboard.fonts.hero-text1" msgstr "" "ستتم إضافة أي خط ويب تقوم بتحميله هنا إلى قائمة عائلة الخطوط المتوفرة في " @@ -477,8 +395,6 @@ msgstr "" "عائلة الخطوط على أنها ** عائلة خط واحدة **. يمكنك تحميل الخطوط بالتنسيقات " "التالية: ** TTF و OTF و WOFF ** (ستحتاج إلى تنسيق واحد فقط)." -#: src/app/main/ui/dashboard/fonts.cljs:182 -#, markdown msgid "dashboard.fonts.hero-text2" msgstr "" "يجب عليك فقط تحميل الخطوط التي تمتلكها أو لديك ترخيص لاستخدامها في Penpot. " @@ -486,12 +402,10 @@ msgstr "" "(https://penpot.app/terms.html). قد ترغب أيضًا في القراءة عن [ترخيص الخطوط] " "(2)." -#: src/app/main/ui/dashboard/fonts.cljs:202 +#: src/app/main/ui/dashboard/fonts.cljs msgid "dashboard.fonts.upload-all" msgstr "حمل الكل" -#: src/app/main/ui/dashboard/fonts.cljs:187 -#, markdown msgid "dashboard.fonts.warning-text" msgstr "" "لقد اكتشفنا مشكلة محتملة في الخطوط الخاصة بك تتعلق بالمقاييس الرأسية لأنظمة " @@ -500,1000 +414,943 @@ msgstr "" "، نوصي باستخدام [Transfonter] (https://transfonter.org/) لإنشاء خطوط الويب " "وإصلاح الأخطاء. " -#: src/app/main/ui/dashboard/import.cljs:472, src/app/main/ui/dashboard/project_menu.cljs:108 msgid "dashboard.import" msgstr "استيراد ملفات" -#: src/app/main/ui/dashboard/import.cljs:304, src/app/worker/import.cljs:753, src/app/worker/import.cljs:755 msgid "dashboard.import.analyze-error" msgstr "لم نستطع استيراد أو إدراج هذا الملف" -#: src/app/main/ui/dashboard/import.cljs:308 msgid "dashboard.import.import-error" msgstr "حصل خلل خلال إدراج الملف. لم يتم إدراج الملف على البرنامج." -#: src/app/main/ui/dashboard/import.cljs:493 msgid "dashboard.import.import-message" msgstr "%s ملف تم ادراجهم بنجاح." -#: src/app/main/ui/dashboard/import.cljs:481, src/app/main/ui/dashboard/import.cljs:488 msgid "dashboard.import.import-warning" msgstr "تحتوي بعض الملفات على كائنات غير صالحة تمت إزالتها." -#: src/app/main/ui/dashboard/import.cljs:144 msgid "dashboard.import.progress.process-colors" msgstr "يتم معالجة الألوان" -#: src/app/main/ui/dashboard/import.cljs:153 msgid "dashboard.import.progress.process-components" msgstr "يتم معالجة العناصر" -#: src/app/main/ui/dashboard/import.cljs:150 msgid "dashboard.import.progress.process-media" msgstr "يتم معالجة الوسائط" -#: src/app/main/ui/dashboard/import.cljs:141 msgid "dashboard.import.progress.process-page" msgstr "يتم معالجة الصفحة: %s" -#: src/app/main/ui/dashboard/import.cljs:147 msgid "dashboard.import.progress.process-typographies" msgstr "يتم معالجة الخطوط" -#: src/app/main/ui/dashboard/import.cljs:135 msgid "dashboard.import.progress.upload-data" msgstr "تحميل البيانات للخادم (%s/%s)" -#: src/app/main/ui/dashboard/import.cljs:138 msgid "dashboard.import.progress.upload-media" msgstr "تحميل الملف: %s" -#: src/app/main/ui/dashboard/team.cljs:109 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.invite-profile" msgstr "قم بدعوة للفريق" -#: src/app/main/ui/dashboard/sidebar.cljs:547, src/app/main/ui/dashboard/sidebar.cljs:556, src/app/main/ui/dashboard/sidebar.cljs:563, src/app/main/ui/dashboard/team.cljs:312 +#: src/app/main/ui/dashboard/sidebar.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.leave-team" msgstr "ترك الفريق" -#: src/app/main/ui/dashboard/templates.cljs:88, src/app/main/ui/dashboard/templates.cljs:163 msgid "dashboard.libraries-and-templates" msgstr "المكتبات & القوالب" -#: src/app/main/ui/dashboard/templates.cljs:164 msgid "dashboard.libraries-and-templates.explore" msgstr "استعرض المزيد منهم وتعلم كيف تساهم" -#: src/app/main/ui/dashboard/import.cljs:365 msgid "dashboard.libraries-and-templates.import-error" msgstr "حدثت مشكلة في استيراد النموذج. لم يتم استيراد النموذج." -#: src/app/main/ui/dashboard/libraries.cljs:53 +#: src/app/main/ui/dashboard/libraries.cljs msgid "dashboard.libraries-title" msgstr "المكتبات المشتركة" -#: src/app/main/ui/dashboard/placeholder.cljs:45 +#: src/app/main/ui/dashboard/grid.cljs msgid "dashboard.loading-files" msgstr "تحميل ملفاتك …" -#: src/app/main/ui/dashboard/fonts.cljs:431 msgid "dashboard.loading-fonts" msgstr "جاري تحميل الخطوط …" -#: src/app/main/ui/dashboard/file_menu.cljs:281, src/app/main/ui/dashboard/project_menu.cljs:100 +#: src/app/main/ui/dashboard/project_menu.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.move-to" msgstr "الانتقال إلى" -#: src/app/main/ui/dashboard/file_menu.cljs:245 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.move-to-multi" msgstr "أنقل %s الملفات إلى" -#: src/app/main/ui/dashboard/file_menu.cljs:226 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.move-to-other-team" msgstr "الانتقال إلى فريق آخر" -#: src/app/main/ui/dashboard/files.cljs:105, src/app/main/ui/dashboard/projects.cljs:252, src/app/main/ui/dashboard/projects.cljs:253 +#: src/app/main/ui/dashboard/projects.cljs, +#: src/app/main/ui/dashboard/files.cljs msgid "dashboard.new-file" msgstr "+ ملف جديد" -#: src/app/main/data/dashboard.cljs:958, src/app/main/data/dashboard.cljs:1181 +#: src/app/main/data/dashboard.cljs msgid "dashboard.new-file-prefix" msgstr "ملف جديد" -#: src/app/main/ui/dashboard/projects.cljs:55 +#: src/app/main/ui/dashboard/projects.cljs msgid "dashboard.new-project" msgstr "+ مشروع جديد" -#: src/app/main/data/dashboard.cljs:726, src/app/main/data/dashboard.cljs:1184 +#: src/app/main/data/dashboard.cljs msgid "dashboard.new-project-prefix" msgstr "مشروع جديد" -#: src/app/main/ui/dashboard/search.cljs:60 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.no-matches-for" msgstr "لم يتم العثور على مطابقات ل \"%s\"" -#: src/app/main/ui/dashboard/sidebar.cljs:827 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.no-projects-placeholder" msgstr "ستظهر المشاريع المثبتة هنا" -#: src/app/main/ui/auth/verify_token.cljs:33 +#: src/app/main/ui/auth/verify_token.cljs msgid "dashboard.notifications.email-changed-successfully" msgstr "تم تحديث عنوان بريدك الإلكتروني بنجاح" -#: src/app/main/ui/auth/verify_token.cljs:27 +#: src/app/main/ui/auth/verify_token.cljs msgid "dashboard.notifications.email-verified-successfully" msgstr "تم التحقق من عنوان بريدك الإلكتروني بنجاح" -#: src/app/main/ui/settings/password.cljs:37 +#: src/app/main/ui/settings/password.cljs msgid "dashboard.notifications.password-saved" msgstr "تم حفظ كلمة المرور بنجاح!" -#: src/app/main/ui/dashboard/team.cljs:1081 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.num-of-members" msgstr "%s الأعضاء" -#: src/app/main/ui/dashboard/file_menu.cljs:267 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.open-in-new-tab" msgstr "فتح ملف في علامة تبويب جديدة" -#: src/app/main/ui/dashboard/files.cljs:117, src/app/main/ui/dashboard/projects.cljs:260, src/app/main/ui/dashboard/projects.cljs:261 msgid "dashboard.options" msgstr "الخيارات" -#: src/app/main/ui/settings/password.cljs:106, src/app/main/ui/settings/password.cljs:119 +#: src/app/main/ui/settings/password.cljs msgid "dashboard.password-change" msgstr "تغيير كلمة المرور" -#: src/app/main/ui/dashboard/pin_button.cljs:24, src/app/main/ui/dashboard/project_menu.cljs:95 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.pin-unpin" msgstr "تثبيت / إلغاء التثبيت" -#: src/app/main/ui/dashboard/projects.cljs:51 +#: src/app/main/ui/dashboard/projects.cljs msgid "dashboard.projects-title" msgstr "المشاريع" -#: src/app/main/ui/settings/profile.cljs:86 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.remove-account" msgstr "هل تريد إزالة حسابك؟" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.remove-shared" msgstr "إزالة كمكتبة مشتركة" -#: src/app/main/ui/settings/profile.cljs:78 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.save-settings" msgstr "حفظ الإعدادات" -#: src/app/main/ui/dashboard/sidebar.cljs:246, src/app/main/ui/dashboard/sidebar.cljs:247 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.search-placeholder" msgstr "بحث…" -#: src/app/main/ui/dashboard/search.cljs:55 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.searching-for" msgstr "البحث عن \"%s\"…" -#: src/app/main/ui/settings/options.cljs:56 +#: src/app/main/ui/settings/options.cljs msgid "dashboard.select-ui-language" msgstr "حدد لغة واجهة المستخدم" -#: src/app/main/ui/settings/options.cljs:63 +#: src/app/main/ui/settings/options.cljs msgid "dashboard.select-ui-theme" msgstr "اختر نمطا" -#: src/app/main/ui/dashboard/projects.cljs:282 +#: src/app/main/ui/dashboard/grid.cljs msgid "dashboard.show-all-files" msgstr "إظهار كافة الملفات" -#: src/app/main/ui/dashboard/file_menu.cljs:96 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-delete-file" msgstr "تم حذف ملفك بنجاح" -#: src/app/main/ui/dashboard/project_menu.cljs:59 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.success-delete-project" msgstr "تم حذف مشروعك بنجاح" -#: src/app/main/ui/dashboard/file_menu.cljs:91 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-duplicate-file" msgstr "تم تكرار ملفك بنجاح" -#: src/app/main/ui/dashboard/project_menu.cljs:33 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.success-duplicate-project" msgstr "تم نسخ مشروعك بنجاح" -#: src/app/main/ui/dashboard/file_menu.cljs:130, src/app/main/ui/dashboard/grid.cljs:558, src/app/main/ui/dashboard/sidebar.cljs:152 +#: src/app/main/ui/dashboard/grid.cljs, src/app/main/ui/dashboard/sidebar.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-move-file" msgstr "تم نقل ملفك بنجاح" -#: src/app/main/ui/dashboard/file_menu.cljs:129 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-move-files" msgstr "تم نقل الملفات بنجاح" -#: src/app/main/ui/dashboard/project_menu.cljs:54 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.success-move-project" msgstr "تم نقل مشروعك بنجاح" -#: src/app/main/ui/dashboard/team.cljs:1052 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.team-info" msgstr "معلومات الفريق" -#: src/app/main/ui/dashboard/team.cljs:1070 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.team-members" msgstr "أعضاء الفريق" -#: src/app/main/ui/dashboard/team.cljs:1085 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.team-projects" msgstr "مشاريع الفريق" -#: src/app/main/ui/settings/options.cljs:61 +#: src/app/main/ui/settings/options.cljs msgid "dashboard.theme-change" msgstr "ثيم واجهة الاستخدام" -#: src/app/main/ui/dashboard/search.cljs:42 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.title-search" msgstr "نتائج البحث" -#: src/app/main/ui/dashboard/search.cljs:50 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.type-something" msgstr "اكتب لإظهار نتائج البحث" -#: src/app/main/ui/dashboard/file_menu.cljs:287, src/app/main/ui/workspace/main_menu.cljs:566 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.unpublish-shared" msgstr "الغاء نشر المكتبة" -#: src/app/main/ui/settings/options.cljs:71 +#: src/app/main/ui/settings/profile.cljs, +#: src/app/main/ui/settings/password.cljs, +#: src/app/main/ui/settings/options.cljs msgid "dashboard.update-settings" msgstr "تحديث الإعدادات" -#: src/app/main/ui/dashboard/team.cljs:861 msgid "dashboard.webhooks.active" msgstr "نشط" -#: src/app/main/ui/dashboard/team.cljs:862 msgid "dashboard.webhooks.active.explain" msgstr "عندما يتم تشغيل هذا الخطاف ، سيتم تسليم تفاصيل الحدث" -#: src/app/main/ui/dashboard/team.cljs:852 msgid "dashboard.webhooks.content-type" msgstr "نوع المحتوى" -#: src/app/main/ui/dashboard/team.cljs:885 msgid "dashboard.webhooks.create" msgstr "إنشاء الرد التلقائي على الويب" -#: src/app/main/ui/settings.cljs:31 +#: src/app/main/ui/settings.cljs msgid "dashboard.your-account-title" msgstr "حسابك" -#: src/app/main/ui/settings/profile.cljs:70 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.your-email" msgstr "البريد الالكتروني" -#: src/app/main/ui/settings/profile.cljs:62 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.your-name" msgstr "اسمك" -#: src/app/main/ui/dashboard/file_menu.cljs:38, src/app/main/ui/dashboard/fonts.cljs:33, src/app/main/ui/dashboard/libraries.cljs:42, src/app/main/ui/dashboard/projects.cljs:318, src/app/main/ui/dashboard/search.cljs:30, src/app/main/ui/dashboard/sidebar.cljs:312, src/app/main/ui/dashboard/team.cljs:495, src/app/main/ui/dashboard/team.cljs:729, src/app/main/ui/dashboard/team.cljs:991, src/app/main/ui/dashboard/team.cljs:1038 +#: src/app/main/ui/dashboard/search.cljs, src/app/main/ui/dashboard/team.cljs, +#: src/app/main/ui/dashboard/libraries.cljs, +#: src/app/main/ui/dashboard/projects.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.your-penpot" msgstr "Penpot الخاص بك" -#: src/app/main/ui/alert.cljs:32 +#: src/app/main/ui/alert.cljs msgid "ds.alert-ok" msgstr "حسناَ" -#: src/app/main/ui/alert.cljs:31, src/app/main/ui/alert.cljs:34 +#: src/app/main/ui/alert.cljs msgid "ds.alert-title" msgstr "إنتباه" -#: src/app/main/ui/confirm.cljs:83 +#: src/app/main/ui/confirm.cljs msgid "ds.component-subtitle" msgstr "عناصر سيتم تحديثها:" -#: src/app/main/ui/confirm.cljs:36, src/app/main/ui/workspace/plugins.cljs:246 +#: src/app/main/ui/confirm.cljs msgid "ds.confirm-cancel" msgstr "إلغاء الأمر" -#: src/app/main/ui/confirm.cljs:37, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:141 +#: src/app/main/ui/confirm.cljs msgid "ds.confirm-ok" msgstr "حسنا" -#: src/app/main/ui/confirm.cljs:35, src/app/main/ui/confirm.cljs:39 +#: src/app/main/ui/confirm.cljs, src/app/main/ui/confirm.cljs msgid "ds.confirm-title" msgstr "هل أنت متأكد؟" -#: src/app/main/ui/auth/login.cljs:62 +#: src/app/main/ui/auth/login.cljs msgid "errors.auth-provider-not-configured" msgstr "موفر المصادقة غير معد ومسجل." -#: src/app/main/errors.cljs:104 msgid "errors.auth.unable-to-login" msgstr "يبدوا أنك غير مصرح لك أو أن الجلسة إنتهت." -#: src/app/main/data/fonts.cljs:189 msgid "errors.bad-font" msgstr "تعذر تحميل الخط٪ s" -#: src/app/main/data/fonts.cljs:188 msgid "errors.bad-font-plural" msgstr "تعذر تحميل الخطوط٪ s" -#: src/app/main/data/workspace.cljs:1598 +#: src/app/main/data/workspace.cljs msgid "errors.clipboard-not-implemented" msgstr "لا يمكن للمتصفح إجراء هذه العملية" -#: src/app/main/ui/auth/verify_token.cljs:82, src/app/main/ui/settings/change_email.cljs:46 +#: src/app/main/ui/auth/verify_token.cljs, +#: src/app/main/ui/settings/change_email.cljs msgid "errors.email-already-exists" msgstr "البريد الإلكتروني مستخدم بالفعل" -#: src/app/main/ui/auth/verify_token.cljs:87 +#: src/app/main/ui/auth/verify_token.cljs msgid "errors.email-already-validated" msgstr "متم التحقق من صحة البريد الإلكتروني" -#: src/app/main/ui/settings/password.cljs:28 msgid "errors.email-as-password" msgstr "لا يمكنك استخدام بريدك الإلكتروني ككلمة مرور" -#: src/app/main/ui/auth/recovery_request.cljs:63, src/app/main/ui/dashboard/team.cljs:578, src/app/main/ui/settings/change_email.cljs:54 +#: src/app/main/ui/auth/register.cljs, +#: src/app/main/ui/auth/recovery_request.cljs, +#: src/app/main/ui/settings/change_email.cljs, +#: src/app/main/ui/dashboard/team.cljs msgid "errors.email-has-permanent-bounces" msgstr "يحتوي البريد الإلكتروني «%s» على العديد من تقارير الارتداد الدائم." -#: src/app/main/ui/auth/login.cljs:81, src/app/main/ui/auth/recovery_request.cljs:31, src/app/main/ui/auth/register.cljs:43 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs, +#: src/app/main/ui/auth/recovery_request.cljs msgid "errors.email-invalid" msgstr "أدخل بريدًا إلكترونيًا صالحًا من فضلك" -#: src/app/main/ui/settings/change_email.cljs:35 +#: src/app/main/ui/settings/change_email.cljs msgid "errors.email-invalid-confirmation" msgstr "يجب أن يتطابق البريد الإلكتروني للتأكيد" -#: src/app/main/ui/dashboard/team.cljs:170 msgid "errors.email-spam-or-permanent-bounces" msgstr "تم الإبلاغ عن البريد الإلكتروني «٪ s» كبريد عشوائي أو مرتد بشكل دائم." -#: src/app/main/errors.cljs:227 +#: src/app/main/errors.cljs msgid "errors.feature-mismatch" msgstr "" "يبدو أنك تفتح ملفًا تم تمكين الميزة \"٪ s\" فيه ولكن الواجهة الأمامية لـ " "penpot لا تدعمه أو تم تعطيله." -#: src/app/main/errors.cljs:231, src/app/main/errors.cljs:245 +#: src/app/main/errors.cljs msgid "errors.feature-not-supported" msgstr "الميزة '٪ s' غير مدعومة." -#: src/app/main/data/users.cljs:709, src/app/main/ui/auth/login.cljs:65, src/app/main/ui/auth/login.cljs:116, src/app/main/ui/auth/register.cljs:69, src/app/main/ui/auth/register.cljs:237, src/app/main/ui/auth/verify_token.cljs:92, src/app/main/ui/dashboard/team.cljs:173, src/app/main/ui/onboarding/team_choice.cljs:95, src/app/main/ui/settings/access_tokens.cljs:91, src/app/main/ui/settings/feedback.cljs:52 +#: src/app/main/ui/auth/verify_token.cljs, +#: src/app/main/ui/settings/feedback.cljs, src/app/main/ui/dashboard/team.cljs msgid "errors.generic" msgstr "حدث خطأ ما." -#: src/app/main/ui/components/color_input.cljs:57 +#: src/app/main/ui/components/color_input.cljs msgid "errors.invalid-color" msgstr "لون غير صالح" -#: src/app/main/ui/static.cljs:43 +#: src/app/main/ui/auth/verify_token.cljs msgid "errors.invite-invalid" msgstr "دعوة غير صالحة" -#: src/app/main/ui/static.cljs:44 msgid "errors.invite-invalid.info" msgstr "هذه الدعوة قد تلغى أو قد تنتهي." -#: src/app/main/ui/auth/login.cljs:101 +#: src/app/main/ui/auth/login.cljs msgid "errors.ldap-disabled" msgstr "تم تعطيل مصادقة LDAP." -#: src/app/main/data/workspace/media.cljs:184 +#: src/app/main/data/workspace/persistence.cljs msgid "errors.media-too-large" msgstr "الصورة كبيرة جدا بحيث لا يمكن إدراجها." -#: src/app/main/data/media.cljs:68, src/app/main/data/workspace/media.cljs:187 +#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs msgid "errors.media-type-mismatch" msgstr "يبدو أن محتويات الصورة لا تتطابق مع امتداد الملف." -#: src/app/main/data/media.cljs:65, src/app/main/data/workspace/media.cljs:172, src/app/main/data/workspace/media.cljs:175, src/app/main/data/workspace/media.cljs:178, src/app/main/data/workspace/media.cljs:181 +#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs msgid "errors.media-type-not-allowed" msgstr "يبدو أن هذه ليست صورة صالحة." -#: src/app/main/ui/dashboard/team.cljs:574 +#: src/app/main/ui/dashboard/team.cljs msgid "errors.member-is-muted" msgstr "" "يحتوي الملف الشخصي الذي تدعوه على رسائل بريد إلكتروني مكتومة (تقارير البريد " "المزعج أو الارتدادات العالية)." -#: src/app/main/ui/settings/password.cljs:61 +#: src/app/main/ui/settings/password.cljs msgid "errors.password-invalid-confirmation" msgstr "يجب أن تتطابق كلمة مرور التأكيد" -#: src/app/main/ui/settings/password.cljs:64 +#: src/app/main/ui/settings/password.cljs msgid "errors.password-too-short" msgstr "يجب ألا تقل كلمة المرور عن 8 أحرف" -#: src/app/main/data/users.cljs:703, src/app/main/ui/auth/login.cljs:97, src/app/main/ui/auth/login.cljs:105 msgid "errors.profile-blocked" msgstr "هذا الملف الشخصي محظور" -#: src/app/main/ui/auth/recovery_request.cljs:60, src/app/main/ui/dashboard/team.cljs:164, src/app/main/ui/dashboard/team.cljs:570, src/app/main/ui/settings/change_email.cljs:50 +#: src/app/main/ui/auth/recovery_request.cljs, +#: src/app/main/ui/settings/change_email.cljs, +#: src/app/main/ui/dashboard/team.cljs msgid "errors.profile-is-muted" msgstr "" "يحتوي ملفك الشخصي على رسائل بريد إلكتروني مكتومة (تقارير البريد المزعجة أو " "الارتدادات العالية)." -#: src/app/main/data/users.cljs:701, src/app/main/ui/auth/register.cljs:60 +#: src/app/main/ui/auth/register.cljs msgid "errors.registration-disabled" msgstr "التسجيل معطل حاليا." -#: src/app/main/ui/dashboard/sidebar.cljs:365, src/app/main/ui/dashboard/team.cljs:359 msgid "errors.team-leave.insufficient-members" msgstr "أعضاء غير كافيين لمغادرة الفريق ، ربما تريد حذفه." -#: src/app/main/ui/dashboard/sidebar.cljs:368, src/app/main/ui/dashboard/team.cljs:362 msgid "errors.team-leave.member-does-not-exists" msgstr "العضو الذي تحاول تعيينه غير موجود." -#: src/app/main/ui/dashboard/sidebar.cljs:371, src/app/main/ui/dashboard/team.cljs:365 msgid "errors.team-leave.owner-cant-leave" msgstr "لا يمكن للمالك مغادرة الفريق ، يجب إعادة تعيين دور المالك." -#: src/app/main/data/media.cljs:71 +#: src/app/main/data/media.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, +#: src/app/main/ui/inspect/exports.cljs msgid "errors.unexpected-error" msgstr "حدث خطأ غير متوقع." -#: src/app/main/ui/auth/verify_token.cljs:60 +#: src/app/main/ui/auth/verify_token.cljs msgid "errors.unexpected-token" msgstr "رمز غير معروف" -#: src/app/main/ui/dashboard/team.cljs:796 msgid "errors.webhooks.connection" msgstr "خطأ في الاتصال ، عنوان إلكتروني لا يمكن الوصول إليه" -#: src/app/main/ui/dashboard/team.cljs:949 +#, fuzzy msgid "errors.webhooks.last-delivery" msgstr "آخر تسليم لم يكن ناجحًا." -#: src/app/main/ui/dashboard/team.cljs:794 msgid "errors.webhooks.timeout" msgstr "نفذ الوقت" -#: src/app/main/ui/dashboard/team.cljs:788 msgid "errors.webhooks.unexpected" msgstr "خطأ غير متوقع في التحقق" -#: src/app/main/ui/dashboard/team.cljs:798, src/app/main/ui/dashboard/team.cljs:955 msgid "errors.webhooks.unexpected-status" msgstr "حالة غير متوقعة٪ s" -#: src/app/main/ui/auth/login.cljs:109, src/app/main/ui/auth/login.cljs:113 +#: src/app/main/ui/auth/login.cljs msgid "errors.wrong-credentials" msgstr "يبدو أن اسم المستخدم أو كلمة المرور خاطئة." -#: src/app/main/ui/settings/password.cljs:25 +#: src/app/main/ui/settings/password.cljs msgid "errors.wrong-old-password" msgstr "كلمة المرور القديمة غير صحيحة" -#: src/app/main/ui/settings/feedback.cljs:77 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.description" msgstr "وصف" -#: src/app/main/ui/settings/feedback.cljs:95 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.discourse-go-to" msgstr "انتقل إلى منتدى Penpot" -#: src/app/main/ui/settings/feedback.cljs:89 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.discourse-subtitle1" msgstr "يسعدنا وجودك هنا. إذا كنت بحاجة إلى مساعدة، يرجى البحث أولا قبل النشر." -#: src/app/main/ui/settings/feedback.cljs:88 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.discourse-title" msgstr "مجتمع Penpot" -#: src/app/main/ui/settings/feedback.cljs:72 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.subject" msgstr "موضوع" -#: src/app/main/ui/settings/feedback.cljs:69 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.subtitle" msgstr "" "يرجى وصف سبب بريدك الإلكتروني ، وتحديد ما إذا كانت مشكلة أم فكرة أم شك. " "سيرد أحد أعضاء فريقنا في أسرع وقت ممكن." -#: src/app/main/ui/settings/feedback.cljs:68 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.title" msgstr "البريد الإلكتروني" -#: src/app/main/ui/settings/feedback.cljs:105 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.twitter-go-to" msgstr "اذهب إلى X" -#: src/app/main/ui/settings/feedback.cljs:99 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.twitter-subtitle1" msgstr "هنا للمساعدة في استفساراتك التقنية." -#: src/app/main/ui/settings/feedback.cljs:98 +#: src/app/main/ui/settings/feedback.cljs +#, fuzzy msgid "feedback.twitter-title" msgstr "رد عنوان تويتر" -#: src/app/main/ui/settings/password.cljs:30 +#: src/app/main/ui/settings/password.cljs msgid "generic.error" msgstr "حدث خطأ" -#: src/app/main/ui/viewer/inspect/attributes/blur.cljs:26 +#: src/app/main/ui/inspect/attributes/blur.cljs msgid "inspect.attributes.blur" msgstr "الضبابية" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:115 +#: src/app/main/ui/inspect/attributes/blur.cljs msgid "inspect.attributes.blur.value" msgstr "تفتيش قيمة الطمس" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:112 +#: src/app/main/ui/inspect/attributes/common.cljs msgid "inspect.attributes.color.hex" msgstr "تفتيش صفات اللون" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:114 +#: src/app/main/ui/inspect/attributes/common.cljs msgid "inspect.attributes.color.hsla" msgstr "HSLAتتفتيش صفات اللون" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:113 +#: src/app/main/ui/inspect/attributes/common.cljs msgid "inspect.attributes.color.rgba" msgstr "RGBAفتش اللون" -#: src/app/main/ui/viewer/inspect/attributes/fill.cljs:57 +#: src/app/main/ui/inspect/attributes/fill.cljs msgid "inspect.attributes.fill" msgstr "املأ" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:99, src/app/main/ui/viewer/inspect/attributes/image.cljs:51 +#: src/app/main/ui/inspect/attributes/image.cljs msgid "inspect.attributes.image.download" msgstr "تحميل صورة المصدر" -#: src/app/main/ui/viewer/inspect/attributes/image.cljs:39 +#: src/app/main/ui/inspect/attributes/image.cljs msgid "inspect.attributes.image.height" msgstr "ارتفاع" -#: src/app/main/ui/viewer/inspect/attributes/image.cljs:32 +#: src/app/main/ui/inspect/attributes/image.cljs msgid "inspect.attributes.image.width" msgstr "عرض" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout" msgstr "تخطيط" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.height" msgstr "ارتفاع" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.left" msgstr "يسار" -#: src/app/main/ui/inspect/attributes/layout.cljs, src/app/main/ui/inspect/attributes/layout.cljs -#, unused +#: src/app/main/ui/inspect/attributes/layout.cljs, +#: src/app/main/ui/inspect/attributes/layout.cljs msgid "inspect.attributes.layout.radius" msgstr "نصف قطر" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.rotation" msgstr "دوران" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.top" msgstr "أعلى" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.width" msgstr "عرض" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:57 +#: src/app/main/ui/inspect/attributes/shadow.cljs msgid "inspect.attributes.shadow" msgstr "ظلل" -#: src/app/main/ui/viewer/inspect/attributes/stroke.cljs:52 +#: src/app/main/ui/inspect/attributes/stroke.cljs msgid "inspect.attributes.stroke" msgstr "لون الحدّ" -#, permanent, unused msgid "inspect.attributes.stroke.alignment.center" msgstr "مركز" -#, permanent, unused msgid "inspect.attributes.stroke.alignment.inner" msgstr "داخل" -#, permanent, unused msgid "inspect.attributes.stroke.alignment.outer" msgstr "خارج" -#, unused msgid "inspect.attributes.stroke.style.dotted" msgstr "منقط" -#, unused msgid "inspect.attributes.stroke.style.mixed" msgstr "مختلط" -#, unused msgid "inspect.attributes.stroke.style.none" msgstr "لا أحد" -#, unused msgid "inspect.attributes.stroke.style.solid" msgstr "صلب" #: src/app/main/ui/inspect/attributes/stroke.cljs -#, unused msgid "inspect.attributes.stroke.width" msgstr "عرض" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:81, src/app/main/ui/viewer/inspect/attributes/text.cljs:194 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography" msgstr "صياغة الحروف" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:89 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.font-family" msgstr "عائلة الخط" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:107 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.font-size" msgstr "حجم الخط" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:98 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.font-style" msgstr "نوع الخط" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:116 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.font-weight" msgstr "وزن الخط" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:134 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.letter-spacing" msgstr "تباعد الحروف" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:125 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.line-height" msgstr "ارتفاع الخط" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:143 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.text-decoration" msgstr "زخرفة النص" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:145 msgid "inspect.attributes.typography.text-decoration.none" msgstr "لا شئ" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:146 msgid "inspect.attributes.typography.text-decoration.strikethrough" msgstr "يتوسطه خط" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:147 msgid "inspect.attributes.typography.text-decoration.underline" msgstr "مسطر" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:156 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.text-transform" msgstr "تغيير النص" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:158 msgid "inspect.attributes.typography.text-transform.lowercase" msgstr "أحرف صغيرة" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:159 msgid "inspect.attributes.typography.text-transform.none" msgstr "لا شئ" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:160 msgid "inspect.attributes.typography.text-transform.titlecase" msgstr "حالة العنوان" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:161 msgid "inspect.attributes.typography.text-transform.uppercase" msgstr "الأحرف الكبيرة" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:140 msgid "inspect.empty.help" msgstr "إذا كنت تريد معرفة المزيد عن فحص التصميم ، فتفضل بزيارة مركز مساعدة لPenpot" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:125 +#: src/app/main/ui/inspect/right_sidebar.cljs msgid "inspect.tabs.code" msgstr "شفرة" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:98 msgid "inspect.tabs.code.selected.circle" msgstr "دائرة" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:99 msgid "inspect.tabs.code.selected.component" msgstr "مكون" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:100 msgid "inspect.tabs.code.selected.curve" msgstr "منحنى" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:101 msgid "inspect.tabs.code.selected.frame" msgstr "لوح الرسم" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:102 msgid "inspect.tabs.code.selected.group" msgstr "مجموعة" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:103 msgid "inspect.tabs.code.selected.image" msgstr "صورة" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:104 msgid "inspect.tabs.code.selected.mask" msgstr "قناع" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:93 +#: src/app/main/ui/inspect/right_sidebar.cljs msgid "inspect.tabs.code.selected.multiple" msgstr "%s محدد" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:105 msgid "inspect.tabs.code.selected.path" msgstr "مسار" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:106 msgid "inspect.tabs.code.selected.rect" msgstr "رباعي" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:107 msgid "inspect.tabs.code.selected.svg-raw" msgstr "SVG" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:108 msgid "inspect.tabs.code.selected.text" msgstr "نص" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:115 +#: src/app/main/ui/inspect/right_sidebar.cljs msgid "inspect.tabs.info" msgstr "معلومات" -#: src/app/main/ui/workspace/main_menu.cljs:158 +#: src/app/main/ui/workspace/header.cljs msgid "label.shortcuts" msgstr "الاختصارات" -#: src/app/main/ui/dashboard/import.cljs:527 msgid "labels.accept" msgstr "إقبل" -#: src/app/main/ui/dashboard/fonts.cljs:175 msgid "labels.add-custom-font" msgstr "إضافة خط مخصص" -#: src/app/main/ui/dashboard/team.cljs:120, src/app/main/ui/dashboard/team.cljs:276, src/app/main/ui/dashboard/team.cljs:519, src/app/main/ui/dashboard/team.cljs:549, src/app/main/ui/onboarding/team_choice.cljs:67 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs msgid "labels.admin" msgstr "مشرف" #: src/app/main/ui/workspace/comments.cljs -#, unused msgid "labels.all" msgstr "الكل" -#: src/app/main/ui/auth.cljs:37 msgid "labels.and" msgstr "و" -#: src/app/main/ui/onboarding/team_choice.cljs:162 msgid "labels.back" msgstr "العودة" -#: src/app/main/ui/static.cljs:59 +#: src/app/main/ui/static.cljs msgid "labels.bad-gateway.desc-message" msgstr "" "يبدو أنك بحاجة إلى الانتظار قليلا وإعادة المحاولة. نحن نقوم بصيانة صغيرة " "لخوادمنا." -#: src/app/main/ui/static.cljs:58 +#: src/app/main/ui/static.cljs msgid "labels.bad-gateway.main-message" msgstr "مدخل خاطأ" -#: src/app/main/data/common.cljs:112, src/app/main/ui/dashboard/change_owner.cljs:69, src/app/main/ui/dashboard/import.cljs:514, src/app/main/ui/dashboard/team.cljs:868, src/app/main/ui/delete_shared.cljs:35, src/app/main/ui/export.cljs:164, src/app/main/ui/export.cljs:460, src/app/main/ui/settings/access_tokens.cljs:188, src/app/main/ui/viewer/share_link.cljs:203, src/app/main/ui/workspace/sidebar/assets/groups.cljs:149 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.cancel" msgstr "الغاء" -#: src/app/main/ui/dashboard/projects.cljs:93, src/app/main/ui/export.cljs:478, src/app/main/ui/settings/access_tokens.cljs:183, src/app/main/ui/viewer/login.cljs:77, src/app/main/ui/viewer/share_link.cljs:174, src/app/main/ui/workspace/libraries.cljs:522 msgid "labels.close" msgstr "غلق" -#: src/app/main/ui/dashboard/comments.cljs:104, src/app/main/ui/viewer/comments.cljs:70, src/app/main/ui/workspace/comments.cljs:126 +#: src/app/main/ui/dashboard/comments.cljs msgid "labels.comments" msgstr "تعليقات" -#: src/app/main/ui/dashboard/sidebar.cljs:985, src/app/main/ui/workspace/main_menu.cljs:110 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.community" msgstr "مجتمع" -#: src/app/main/ui/settings/password.cljs:103 +#: src/app/main/ui/settings/password.cljs msgid "labels.confirm-password" msgstr "تأكيد كلمة المرور" -#: src/app/main/ui/dashboard/import.cljs:520, src/app/main/ui/export.cljs:465, src/app/main/ui/onboarding/newsletter.cljs:101 msgid "labels.continue" msgstr "استمر" -#, unused msgid "labels.continue-with" msgstr "تابع مع" -#: src/app/main/ui/viewer/login.cljs:75 msgid "labels.continue-with-penpot" msgstr "يمكنك المتابعة مع حساب Penpot" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:157, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:190 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "labels.create" msgstr "انشاء" -#: src/app/main/ui/dashboard/team_form.cljs:101, src/app/main/ui/dashboard/team_form.cljs:121 +#: src/app/main/ui/dashboard/team_form.cljs, +#: src/app/main/ui/dashboard/team_form.cljs msgid "labels.create-team" msgstr "إنشاء فريق جديد" -#: src/app/main/ui/dashboard/team_form.cljs:113 +#: src/app/main/ui/dashboard/team_form.cljs msgid "labels.create-team.placeholder" msgstr "أدخل اسم الفريق الجديد" -#, unused msgid "labels.custom-fonts" msgstr "خطوط مخصصة" -#: src/app/main/ui/settings/sidebar.cljs:73 +#: src/app/main/ui/settings/sidebar.cljs msgid "labels.dashboard" msgstr "لوحة التحكم" -#: src/app/main/ui/dashboard/file_menu.cljs:306, src/app/main/ui/dashboard/fonts.cljs:255, src/app/main/ui/dashboard/fonts.cljs:332, src/app/main/ui/dashboard/fonts.cljs:346, src/app/main/ui/dashboard/project_menu.cljs:115, src/app/main/ui/dashboard/team.cljs:904, src/app/main/ui/settings/access_tokens.cljs:209, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:209 +#: src/app/main/ui/dashboard/project_menu.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.delete" msgstr "حذف" -#: src/app/main/ui/comments.cljs:357 +#: src/app/main/ui/comments.cljs msgid "labels.delete-comment" msgstr "حذف التعليق" -#: src/app/main/ui/comments.cljs:354 +#: src/app/main/ui/comments.cljs msgid "labels.delete-comment-thread" msgstr "حذف موضوع" -#: src/app/main/ui/dashboard/team.cljs:648 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.delete-invitation" msgstr "حذف الدعوة" -#: src/app/main/ui/dashboard/file_menu.cljs:262 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.delete-multi-files" msgstr "حذف %s ملفات" -#: src/app/main/ui/dashboard/file_menu.cljs:28, src/app/main/ui/dashboard/files.cljs:72, src/app/main/ui/dashboard/files.cljs:156, src/app/main/ui/dashboard/projects.cljs:220, src/app/main/ui/dashboard/projects.cljs:224, src/app/main/ui/dashboard/sidebar.cljs:791 +#: src/app/main/ui/dashboard/projects.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs, +#: src/app/main/ui/dashboard/files.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.drafts" msgstr "المسودات" -#: src/app/main/ui/comments.cljs:350, src/app/main/ui/dashboard/fonts.cljs:252, src/app/main/ui/dashboard/team.cljs:902, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:205 +#: src/app/main/ui/comments.cljs msgid "labels.edit" msgstr "تعديل" -#, unused msgid "labels.edit-file" msgstr "تعديل ملف" -#: src/app/main/ui/dashboard/team.cljs:118, src/app/main/ui/dashboard/team.cljs:279, src/app/main/ui/dashboard/team.cljs:520, src/app/main/ui/dashboard/team.cljs:553, src/app/main/ui/onboarding/team_choice.cljs:66 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs msgid "labels.editor" msgstr "محرر" -#: src/app/main/ui/dashboard/team.cljs:661 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.expired-invitation" msgstr "منتهي الصلاحية" -#: src/app/main/ui/export.cljs:173 msgid "labels.export" msgstr "استخراج" -#: src/app/main/ui/settings/feedback.cljs:51 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.feedback-disabled" msgstr "تعطيل الملاحظات" -#: src/app/main/ui/settings/feedback.cljs:42 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.feedback-sent" msgstr "تم إرسال الملاحظات" -#: src/app/main/ui/dashboard/fonts.cljs:412 msgid "labels.font-family" msgstr "عائلة الخط" -#, unused msgid "labels.font-providers" msgstr "موفري الخط" -#: src/app/main/ui/dashboard/fonts.cljs:413 msgid "labels.font-variants" msgstr "الأنماط" -#: src/app/main/ui/dashboard/fonts.cljs:52, src/app/main/ui/dashboard/sidebar.cljs:811 msgid "labels.fonts" msgstr "الخطوط" -#: src/app/main/ui/dashboard/sidebar.cljs:1015, src/app/main/ui/workspace/main_menu.cljs:142 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.github-repo" msgstr "مستودع Github" -#: src/app/main/ui/dashboard/sidebar.cljs:1032, src/app/main/ui/settings/sidebar.cljs:113, src/app/main/ui/workspace/main_menu.cljs:171 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/settings/sidebar.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.give-feedback" msgstr "إعطاء ملاحظات" -#: src/app/main/ui/auth/recovery_request.cljs:110, src/app/main/ui/auth/register.cljs:285, src/app/main/ui/viewer/login.cljs:117 msgid "labels.go-back" msgstr "الرجوع للخلف" -#: src/app/main/ui/dashboard/sidebar.cljs:978, src/app/main/ui/workspace/main_menu.cljs:102 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.help-center" msgstr "مركز المساعدة" -#: src/app/main/ui/viewer/comments.cljs:103, src/app/main/ui/workspace/comments.cljs:67 +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs msgid "labels.hide-resolved-comments" msgstr "إخفاء التعليقات التي تم حلها" -#: src/app/main/ui/dashboard/fonts.cljs:410 msgid "labels.installed-fonts" msgstr "الخطوط المتوفرة" -#: src/app/main/ui/static.cljs:144 +#: src/app/main/ui/static.cljs msgid "labels.internal-error.desc-message" msgstr "شيء سيء حدث الرجاء إعادة محاولة العملية وإذا استمرت المشكلة، اتصل بالدعم." -#: src/app/main/ui/static.cljs:143 +#: src/app/main/ui/static.cljs msgid "labels.internal-error.main-message" msgstr "خطأ داخلي" -#: src/app/main/ui/dashboard/sidebar.cljs:516, src/app/main/ui/dashboard/team.cljs:89, src/app/main/ui/dashboard/team.cljs:97, src/app/main/ui/dashboard/team.cljs:708 +#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.invitations" msgstr "الدعوات" -#: src/app/main/ui/settings/options.cljs:51 +#: src/app/main/ui/settings/options.cljs msgid "labels.language" msgstr "اللغة" -#: src/app/main/ui/dashboard/sidebar.cljs:1008, src/app/main/ui/workspace/main_menu.cljs:134 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.libraries-and-templates" msgstr "المكتبات والقوالب" -#: src/app/main/ui/viewer/header.cljs:203 msgid "labels.log-or-sign" msgstr "تسجيل الدخول أو الاشتراك" -#: src/app/main/ui/dashboard/sidebar.cljs:1040 +#: src/app/main/ui/settings.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.logout" msgstr "تسجيل خروج" -#: src/app/main/ui/dashboard/team.cljs:468 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.member" msgstr "عضو" -#: src/app/main/ui/dashboard/sidebar.cljs:510, src/app/main/ui/dashboard/team.cljs:87, src/app/main/ui/dashboard/team.cljs:95 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.members" msgstr "الأعضاء" -#: src/app/main/ui/settings/password.cljs:96 +#: src/app/main/ui/settings/password.cljs msgid "labels.new-password" msgstr "كلمة مرور جديدة" -#: src/app/main/ui/dashboard/comments.cljs:128, src/app/main/ui/workspace/comments.cljs:161 +#: src/app/main/ui/workspace/comments.cljs, +#: src/app/main/ui/dashboard/comments.cljs msgid "labels.no-comments-available" msgstr "ليس لديك أي إشعارات تعليق معلقة" -#: src/app/main/ui/dashboard/team.cljs:694 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.no-invitations" msgstr "لا توجد دعوات." -#: src/app/main/ui/dashboard/team.cljs:696 -#, markdown +#: src/app/main/ui/dashboard/team.cljs msgid "labels.no-invitations-hint" msgstr "اضغط على الزر \"دعوة إلى الفريق\" لدعوة المزيد من الأعضاء إلى هذا الفريق." -#: src/app/main/ui/static.cljs:50 +#: src/app/main/ui/static.cljs msgid "labels.not-found.desc-message" msgstr "قد لا تكون هذه الصفحة موجودة أو ليس لديك أذونات للوصول إليها." -#: src/app/main/ui/static.cljs:49 +#: src/app/main/ui/static.cljs msgid "labels.not-found.main-message" msgstr "عفواً!" -#: src/app/main/ui/dashboard/projects.cljs:239, src/app/main/ui/dashboard/team.cljs:1095 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.num-of-files" msgid_plural "labels.num-of-files" msgstr[0] "0 ملف" @@ -1503,7 +1360,6 @@ msgstr[3] "قليل" msgstr[4] "كثير" msgstr[5] "غير ذلك" -#: src/app/main/ui/viewer/thumbnails.cljs:80 msgid "labels.num-of-frames" msgid_plural "labels.num-of-frames" msgstr[0] "0" @@ -1513,7 +1369,7 @@ msgstr[3] "بعض" msgstr[4] "العديد" msgstr[5] "غير ذلك" -#: src/app/main/ui/dashboard/team.cljs:1090 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.num-of-projects" msgid_plural "labels.num-of-projects" msgstr[0] "0" @@ -1523,1311 +1379,1171 @@ msgstr[3] "بعض" msgstr[4] "الكثير" msgstr[5] "غير ذلك" -#: src/app/main/ui/settings/password.cljs:89 +#: src/app/main/ui/settings/password.cljs msgid "labels.old-password" msgstr "كلمة المرور القديمة" #: src/app/main/ui/workspace/comments.cljs -#, unused msgid "labels.only-yours" msgstr "خاصة بك" -#, unused msgid "labels.or" msgstr "أو" -#: src/app/main/ui/dashboard/team.cljs:286, src/app/main/ui/dashboard/team.cljs:518, src/app/main/ui/dashboard/team.cljs:1076 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs msgid "labels.owner" msgstr "مالك" -#: src/app/main/ui/settings/sidebar.cljs:87 +#: src/app/main/ui/settings/sidebar.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.password" msgstr "كلمة المرور" -#: src/app/main/ui/dashboard/team.cljs:662 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.pending-invitation" msgstr "قيد الانتظار" -#: src/app/main/ui/settings/profile.cljs:118, src/app/main/ui/settings/sidebar.cljs:82 +#: src/app/main/ui/settings/sidebar.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.profile" msgstr "الملف الشخصي" -#: src/app/main/ui/dashboard/sidebar.cljs:784 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.projects" msgstr "المشاريع" -#: src/app/main/ui/dashboard/sidebar.cljs:998, src/app/main/ui/settings/sidebar.cljs:106, src/app/main/ui/workspace/main_menu.cljs:126 +#: src/app/main/ui/settings/sidebar.cljs msgid "labels.release-notes" msgstr "ملاحظات الإصدار" -#: src/app/main/ui/workspace/libraries.cljs, src/app/main/ui/dashboard/team.cljs -#, unused +#: src/app/main/ui/workspace/libraries.cljs, +#: src/app/main/ui/dashboard/team.cljs msgid "labels.remove" msgstr "إزالة" -#: src/app/main/ui/dashboard/team.cljs:316 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.remove-member" msgstr "إزالة العضو" -#: src/app/main/ui/dashboard/file_menu.cljs:271, src/app/main/ui/dashboard/project_menu.cljs:85, src/app/main/ui/dashboard/sidebar.cljs:539, src/app/main/ui/workspace/sidebar/assets/groups.cljs:157 +#: src/app/main/ui/dashboard/sidebar.cljs, +#: src/app/main/ui/dashboard/project_menu.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.rename" msgstr "اعاده تسميه" -#: src/app/main/ui/dashboard/team_form.cljs:99 +#: src/app/main/ui/dashboard/team_form.cljs msgid "labels.rename-team" msgstr "إعادة تسمية الفريق" -#: src/app/main/ui/dashboard/team.cljs:645 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.resend-invitation" msgstr "إعادة إرسال الدعوة" -#: src/app/main/ui/static.cljs:61, src/app/main/ui/static.cljs:70, src/app/main/ui/static.cljs:148 +#: src/app/main/ui/static.cljs, src/app/main/ui/static.cljs msgid "labels.retry" msgstr "أعد المحاولة" -#: src/app/main/ui/dashboard/team.cljs:469, src/app/main/ui/dashboard/team.cljs:709 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.role" msgstr "دور" -#: src/app/main/ui/dashboard/fonts.cljs:380, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:191 msgid "labels.save" msgstr "حفظ" -#: src/app/main/ui/dashboard/fonts.cljs:415 msgid "labels.search-font" msgstr "البحث عن الخط" -#: src/app/main/ui/settings/feedback.cljs:82 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.send" msgstr "ارسل" -#: src/app/main/ui/settings/feedback.cljs:82 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.sending" msgstr "ارسال…" -#: src/app/main/ui/static.cljs:68 +#: src/app/main/ui/static.cljs msgid "labels.service-unavailable.desc-message" msgstr "نحن في صيانة مبرمجة لأنظمتنا." -#: src/app/main/ui/static.cljs:67 +#: src/app/main/ui/static.cljs msgid "labels.service-unavailable.main-message" msgstr "الخدمة غير متوفرة" -#: src/app/main/ui/dashboard/sidebar.cljs:530, src/app/main/ui/dashboard/team.cljs:88, src/app/main/ui/dashboard/team.cljs:102, src/app/main/ui/settings/options.cljs:84, src/app/main/ui/settings/sidebar.cljs:93 +#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.settings" msgstr "إعدادات" -#, unused msgid "labels.share-prototype" msgstr "مشاركة النموذج الأولي" -#: src/app/main/ui/dashboard/sidebar.cljs:800 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.shared-libraries" msgstr "المكتبات المشتركة" -#: src/app/main/ui/viewer/comments.cljs:82, src/app/main/ui/workspace/comments.cljs:55, src/app/main/ui/workspace/comments.cljs:135 +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs msgid "labels.show-all-comments" msgstr "إظهار كافة التعليقات" -#: src/app/main/ui/viewer/comments.cljs:115 msgid "labels.show-comments-list" msgstr "قائمة التعليقات" -#: src/app/main/ui/viewer/comments.cljs:91, src/app/main/ui/workspace/comments.cljs:61, src/app/main/ui/workspace/comments.cljs:136 +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs msgid "labels.show-your-comments" msgstr "إظهار تعليقاتك فقط" -#: src/app/main/ui/dashboard/team.cljs:710 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.status" msgstr "الحالة" -#: src/app/main/ui/dashboard/sidebar.cljs:992, src/app/main/ui/workspace/main_menu.cljs:118 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.tutorials" msgstr "الدروس" -#: src/app/main/ui/settings/profile.cljs:103 +#: src/app/main/ui/settings/profile.cljs msgid "labels.update" msgstr "تحديث" -#: src/app/main/ui/dashboard/team_form.cljs:120 +#: src/app/main/ui/dashboard/team_form.cljs msgid "labels.update-team" msgstr "تحديث الفريق" -#: src/app/main/ui/dashboard/fonts.cljs:241 msgid "labels.upload" msgstr "رفع" -#: src/app/main/ui/dashboard/fonts.cljs:169 msgid "labels.upload-custom-fonts" msgstr "تحميل الخطوط المخصصة" -#: src/app/main/ui/dashboard/fonts.cljs:240 msgid "labels.uploading" msgstr "جارٍ الرفع …" -#: src/app/main/ui/dashboard/team.cljs:123, src/app/main/ui/dashboard/team.cljs:282, src/app/main/ui/dashboard/team.cljs:521 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.viewer" msgstr "مشاهد" -#: src/app/main/ui/comments.cljs:194 +#: src/app/main/ui/comments.cljs msgid "labels.write-new-comment" msgstr "كتابة تعليق جديد" -#: src/app/main/ui/dashboard/team.cljs:237 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.you" msgstr "(أنت)" -#: src/app/main/ui/dashboard/sidebar.cljs:968 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.your-account" msgstr "حسابك" -#: src/app/main/data/media.cljs:49, src/app/main/data/workspace/media.cljs:223, src/app/main/data/workspace/media.cljs:453 +#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs msgid "media.loading" msgstr "جاري تحميل الصورة…" -#: src/app/main/data/common.cljs:113 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.add-shared-confirm.accept" msgstr "إضافة كمكتبة مشتركة" -#: src/app/main/data/common.cljs:111 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.add-shared-confirm.hint" msgstr "" "بمجرد إضافتها كمكتبة مشتركة، ستكون أصول مكتبة الملفات هذه متاحة للاستخدام " "بين باقي ملفاتك." -#: src/app/main/data/common.cljs:110 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.add-shared-confirm.message" msgstr "إضافة “%s” كمكتبة مشتركة" -#: src/app/main/ui/workspace/nudge.cljs:60 +#: src/app/main/ui/workspace/nudge.cljs msgid "modals.big-nudge" msgstr "دفعة كبيرة" -#: src/app/main/ui/settings/change_email.cljs:127 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.confirm-email" msgstr "تحقق من البريد الإلكتروني الجديد" -#: src/app/main/ui/settings/change_email.cljs:114 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.info" msgstr "سنرسل لك رسالة إلى بريدك الإلكتروني الحالي “%s” للتحقق من هويتك." -#: src/app/main/ui/settings/change_email.cljs:119 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.new-email" msgstr "بريد إلكتروني جديد" -#: src/app/main/ui/settings/change_email.cljs:136 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.submit" msgstr "تغيير البريد الإلكتروني" -#: src/app/main/ui/settings/change_email.cljs:107 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.title" msgstr "تغيير بريدك الإلكتروني" -#: src/app/main/ui/settings/delete_account.cljs:59 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.cancel" msgstr "إلغاء والاحتفاظ بحسابي" -#: src/app/main/ui/settings/delete_account.cljs:64 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.confirm" msgstr "نعم، احذف حسابي" -#: src/app/main/ui/settings/delete_account.cljs:53 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.info" msgstr "بحذف حسابك، ستفقد جميع مشاريعك وأرشيفاتك الحالية." -#: src/app/main/ui/settings/delete_account.cljs:46 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.title" msgstr "هل انت متأكد انك تريد حذف حسابك؟" -#: src/app/main/ui/comments.cljs:298 +#: src/app/main/ui/comments.cljs msgid "modals.delete-comment-thread.accept" msgstr "حذف المحادثة" -#: src/app/main/ui/comments.cljs:297 +#: src/app/main/ui/comments.cljs msgid "modals.delete-comment-thread.message" msgstr "" "هل أنت متأكد أنك تريد حذف هذه المحادثة؟ سيتم حذف جميع التعليقات في هذا " "الموضوع." -#: src/app/main/ui/comments.cljs:296 +#: src/app/main/ui/comments.cljs msgid "modals.delete-comment-thread.title" msgstr "حذف المحادثة" -#: src/app/main/ui/dashboard/file_menu.cljs:123 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-confirm.accept" msgstr "حذف الملف" -#: src/app/main/ui/dashboard/file_menu.cljs:122 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-confirm.message" msgstr "هل أنت متأكد أنك تريد حذف هذا الملف؟" -#: src/app/main/ui/dashboard/file_menu.cljs:121 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-confirm.title" msgstr "حذف الملف" -#: src/app/main/ui/dashboard/file_menu.cljs:117 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-multi-confirm.accept" msgstr "حذف الملفات" -#: src/app/main/ui/dashboard/file_menu.cljs:116 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-multi-confirm.message" msgstr "هل تريد بالتأكيد حذف %s من الملفات؟" -#: src/app/main/ui/dashboard/file_menu.cljs:115 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-multi-confirm.title" msgstr "حذف %s الملفات" -#: src/app/main/ui/dashboard/fonts.cljs:345 msgid "modals.delete-font-variant.message" msgstr "" "هل أنت متأكد أنك تريد حذف نمط هذا الخط؟ لن يتم تحميله إذا تم استخدامه في " "ملف." -#: src/app/main/ui/dashboard/fonts.cljs:344 msgid "modals.delete-font-variant.title" msgstr "حذف نمط الخط" -#: src/app/main/ui/dashboard/fonts.cljs:331 msgid "modals.delete-font.message" msgstr "هل أنت متأكد أنك تريد حذف هذا الخط؟ لن يتم تحميله إذا تم استخدامه في ملف." -#: src/app/main/ui/dashboard/fonts.cljs:330 msgid "modals.delete-font.title" msgstr "حذف الخط" -#: src/app/main/ui/workspace/context_menu.cljs:522, src/app/main/ui/workspace/sidebar/sitemap.cljs:45 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs msgid "modals.delete-page.body" msgstr "هل أنت متأكد أنك تريد حذف هذه الصفحة؟" -#: src/app/main/ui/workspace/context_menu.cljs:521, src/app/main/ui/workspace/sidebar/sitemap.cljs:44 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs msgid "modals.delete-page.title" msgstr "حذف الصفحة" -#: src/app/main/ui/dashboard/project_menu.cljs:69 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "modals.delete-project-confirm.accept" msgstr "حذف المشروع" -#: src/app/main/ui/dashboard/project_menu.cljs:68 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "modals.delete-project-confirm.message" msgstr "هل أنت متأكد أنك تريد حذف هذا المشروع؟" -#: src/app/main/ui/dashboard/project_menu.cljs:67 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "modals.delete-project-confirm.title" msgstr "حذف المشروع" -#: src/app/main/ui/dashboard/sidebar.cljs:435 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.delete-team-confirm.accept" msgstr "حذف الفريق" -#: src/app/main/ui/dashboard/sidebar.cljs:434 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.delete-team-confirm.message" msgstr "" "هل أنت متأكد أنك تريد حذف هذا الفريق؟ سيتم حذف جميع المشاريع والملفات " "المرتبطة بالفريق نهائيًا." -#: src/app/main/ui/dashboard/sidebar.cljs:433 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.delete-team-confirm.title" msgstr "حذف الفريق" -#: src/app/main/ui/dashboard/team.cljs:427 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.delete-team-member-confirm.accept" msgstr "حذف عضو" -#: src/app/main/ui/dashboard/team.cljs:426 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.delete-team-member-confirm.message" msgstr "هل أنت متأكد أنك تريد حذف هذا العضو من الفريق؟" -#: src/app/main/ui/dashboard/team.cljs:425 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.delete-team-member-confirm.title" msgstr "حذف العضو" -#: src/app/main/ui/dashboard/team.cljs:218 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.invite-member-confirm.accept" msgstr "إرسال دعوة" -#: src/app/main/ui/dashboard/team.cljs:213, src/app/main/ui/onboarding/team_choice.cljs:156 msgid "modals.invite-member.emails" msgstr "رسائل البريد الإلكتروني، مفصولة بفواصل" -#: src/app/main/ui/dashboard/team.cljs:190 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.invite-team-member.title" msgstr "ادعُ الأعضاء إلى الفريق" -#: src/app/main/ui/dashboard/sidebar.cljs:423, src/app/main/ui/dashboard/team.cljs:393 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-close-confirm.hint" msgstr "نظرًا لأنك العضو الوحيد في هذا الفريق ، فسيتم حذف الفريق مع مشاريعه وملفاته." -#: src/app/main/ui/dashboard/sidebar.cljs:422, src/app/main/ui/dashboard/team.cljs:392 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-close-confirm.message" msgstr "هل أنت متأكد أنك تريد مغادرة فريق %s ؟" -#: src/app/main/ui/dashboard/change_owner.cljs:59 msgid "modals.leave-and-reassign.forbidden" msgstr "" "لا يمكنك مغادرة الفريق إذا لم يكن هناك عضو آخر للترقية إلى المالك. قد ترغب " "في حذف الفريق." -#: src/app/main/ui/dashboard/change_owner.cljs:55 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-reassign.hint1" msgstr "أنت %s المالك." -#: src/app/main/ui/dashboard/change_owner.cljs:78 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-reassign.promote-and-leave" msgstr "قم بالترقية والمغادرة" -#: src/app/main/ui/dashboard/change_owner.cljs:34 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-reassign.select-member-to-promote" msgstr "حدد عضوا للترقية" -#: src/app/main/ui/dashboard/change_owner.cljs:49 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-reassign.title" msgstr "حدد عضوا للترقية" -#: src/app/main/ui/dashboard/sidebar.cljs:402, src/app/main/ui/dashboard/sidebar.cljs:424, src/app/main/ui/dashboard/team.cljs:394, src/app/main/ui/dashboard/team.cljs:416 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-confirm.accept" msgstr "ترك الفريق" -#: src/app/main/ui/dashboard/sidebar.cljs:401, src/app/main/ui/dashboard/team.cljs:415 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-confirm.message" msgstr "هل أنت متأكد أنك تريد مغادرة هذا الفريق؟" -#: src/app/main/ui/dashboard/sidebar.cljs:400, src/app/main/ui/dashboard/sidebar.cljs:421, src/app/main/ui/dashboard/team.cljs:391, src/app/main/ui/dashboard/team.cljs:414 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-confirm.title" msgstr "مغادرة الفريق" -#: src/app/main/ui/workspace/main_menu.cljs:266, src/app/main/ui/workspace/nudge.cljs:47 +#: src/app/main/ui/workspace/nudge.cljs msgid "modals.nudge-title" msgstr "كمية الدفع" -#: src/app/main/ui/dashboard/team.cljs:340 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.accept" msgstr "رقى" -#: src/app/main/ui/dashboard/team.cljs:339 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.hint" msgstr "" "إذا قمت بنقل الملكية ، فسوف تقوم بتغيير دورك إلى المسؤول ، وستفقد بعض " "الأذونات على هذا الفريق. " -#: src/app/main/ui/dashboard/team.cljs:338 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.message" msgstr "هل أنت متأكد أنك تريد ترقية هذا المستخدم إلى مالك؟" -#: src/app/main/ui/dashboard/team.cljs:337 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.title" msgstr "الترقية إلى مالك" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.remove-shared-confirm.accept" msgstr "إزالة كمكتبة مشتركة" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.remove-shared-confirm.hint" msgstr "" "بمجرد إزالتها كمكتبة مشتركة ، ستتوقف مكتبة الملفات لهذا الملف عن كونها " "متاحة للاستخدام بين بقية ملفاتك." -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.remove-shared-confirm.message" msgstr "إزالة “%s” كمكتبة مشتركة" -#: src/app/main/ui/workspace/nudge.cljs:53 +#: src/app/main/ui/workspace/nudge.cljs msgid "modals.small-nudge" msgstr "دفعة صغيرة" -#: src/app/main/ui/delete_shared.cljs:52 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.unpublish-shared-confirm.accept" msgstr "إلغاء النشر" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component-in-bulk.hint" msgstr "" "أنت على وشك تحديث المكونات في مكتبة مشتركة. قد يؤثر هذا على الملفات الأخرى " "التي تستخدمها." -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component-in-bulk.message" msgstr "تحديث المكونات في مكتبة مشتركة" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:380 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.accept" msgstr "تحديث المكون" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:379 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.cancel" msgstr "إلغاﺀ" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:378 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.hint" msgstr "" "أنت على وشك تحديث مكون في مكتبة مشتركة. قد يؤثر هذا على الملفات الأخرى التي " "تستخدمها." -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:377 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.message" msgstr "تحديث المكون في المكتبة المشتركة" -#: src/app/main/ui/dashboard/team.cljs:154, src/app/main/ui/dashboard/team.cljs:595 +#: src/app/main/ui/dashboard/team.cljs msgid "notifications.invitation-email-sent" msgstr "تم إرسال الدعوة بنجاح" -#: src/app/main/ui/settings/delete_account.cljs:24 +#: src/app/main/ui/settings/delete_account.cljs msgid "notifications.profile-deletion-not-allowed" msgstr "لا يمكنك حذف ملفّك الشخصي، قم بإحالة فريقك قبل المتابعة." -#: src/app/main/ui/settings/options.cljs:29, src/app/main/ui/settings/profile.cljs:35 +#: src/app/main/ui/settings/profile.cljs, src/app/main/ui/settings/options.cljs msgid "notifications.profile-saved" msgstr "تم حفظ الملف الشخصي بنجاح!" -#: src/app/main/ui/settings/change_email.cljs:63 +#: src/app/main/ui/settings/change_email.cljs msgid "notifications.validation-email-sent" msgstr "تم إرسال رسالة التحقق إلى %s. راجع بريدك الالكتروني!" -#, unused msgid "onboarding-v2.before-start.desc1" msgstr "" "يجب أن تعلم أن هناك الكثير من الموارد المتاحة لمساعدتك في بدء استخدام " "Penpot ، مثل دليل المستخدم وقناة Youtube الخاصة بنا." -#, unused msgid "onboarding-v2.before-start.desc2" msgstr "" "معلومات مفصلة حول كيفية استخدام Penpot. من النماذج الأولية إلى تنظيم أو " "مشاركة التصاميم." -#, unused msgid "onboarding-v2.before-start.desc2.title" msgstr "دليل المستخدم" -#, unused msgid "onboarding-v2.before-start.desc3" msgstr "يمكنك مشاهدة برامجنا التعليمية والبرامج التعليمية التي قدمها مجتمعنا." -#, unused msgid "onboarding-v2.before-start.desc3.title" msgstr "دروس الفيديو" -#, unused msgid "onboarding-v2.before-start.title" msgstr "قبل ان تبدا" -#, unused msgid "onboarding-v2.welcome.desc1" msgstr "" "Penpot هو برنامج مفتوح المصدر وهو من صنع Kaleidos وكذلك المجتمع ، حيث يساعد " "الكثير من الناس بعضهم البعض بالفعل. يمكن للجميع التعاون من خلال:" -#, unused msgid "onboarding-v2.welcome.desc2" msgstr "" "مساحة عامة للتعلم والمشاركة والمناقشة حول Penpot وحاضرها ومستقبلها مع " "المجتمع بأكمله وفريق Penpot الأساسي." -#, unused msgid "onboarding-v2.welcome.desc2.title" msgstr "المشاركة في المجتمع" -#, unused msgid "onboarding-v2.welcome.desc3" msgstr "" "حيث ستجد كيفية التعاون في الترجمات وطلبات الميزات والمساهمات الأساسية " "والبحث عن الأخطاء …" -#, unused msgid "onboarding-v2.welcome.desc3.title" msgstr "دليل المساهمة" -#: src/app/main/ui/onboarding/team_choice.cljs:31 msgid "onboarding-v2.welcome.title" msgstr "مرحبًا بك في Penpot!" -#: src/app/main/ui/onboarding/team_choice.cljs:215 msgid "onboarding.choice.team-up.create-team-desc" msgstr "بعد تسمية فريقك ، ستتمكن من دعوة الأشخاص للانضمام." -#: src/app/main/ui/onboarding/team_choice.cljs:224 msgid "onboarding.choice.team-up.create-team-placeholder" msgstr "أدخل اسم الفريق" -#: src/app/main/ui/dashboard/projects.cljs:89, src/app/main/ui/onboarding/team_choice.cljs:140 msgid "onboarding.choice.team-up.invite-members" msgstr "دعوة أعضاء" -#: src/app/main/ui/onboarding/team_choice.cljs:141 msgid "onboarding.choice.team-up.invite-members-info" msgstr "تذكر أن تشمل الجميع. المطورين والمصممين والمديرين ... التنوع يضيف :)" -#: src/app/main/ui/dashboard/team.cljs:202, src/app/main/ui/onboarding/team_choice.cljs:146 msgid "onboarding.choice.team-up.roles" msgstr "دعوة مع الدور:" -#, unused msgid "onboarding.newsletter.accept" msgstr "نعم ، اشترك" -#: src/app/main/ui/onboarding/newsletter.cljs:40 msgid "onboarding.newsletter.acceptance-message" msgstr "تم إرسال طلب الاشتراك الخاص بك ، وسوف نرسل لك بريدًا إلكترونيًا لتأكيده." -#: src/app/main/ui/onboarding/newsletter.cljs:95 msgid "onboarding.newsletter.policy" msgstr "سياسة الخصوصية." -#: src/app/main/ui/onboarding/newsletter.cljs:60 msgid "onboarding.newsletter.title" msgstr "هل تريد تلقي أخبار Penpot؟" -#: src/app/main/ui/onboarding/team_choice.cljs:213 msgid "onboarding.team-modal.create-team" msgstr "أنشئ فريقًا" -#: src/app/main/ui/onboarding/team_choice.cljs:35 msgid "onboarding.team-modal.create-team-desc" msgstr "" "يسمح لك الفريق بالتعاون مع مستخدمي Penpot الآخرين الذين يعملون في نفس " "الملفات والمشاريع." -#: src/app/main/ui/onboarding/team_choice.cljs:40 msgid "onboarding.team-modal.create-team-feature-1" msgstr "ملفات ومشاريع غير محدودة" -#: src/app/main/ui/onboarding/team_choice.cljs:44 msgid "onboarding.team-modal.create-team-feature-2" msgstr "إصدار متعدد اللاعبين" -#: src/app/main/ui/onboarding/team_choice.cljs:48 msgid "onboarding.team-modal.create-team-feature-3" msgstr "إدارة الأدوار" -#: src/app/main/ui/onboarding/team_choice.cljs:52 msgid "onboarding.team-modal.create-team-feature-4" msgstr "عدد غير محدود من الأعضاء" -#: src/app/main/ui/onboarding/team_choice.cljs:56 msgid "onboarding.team-modal.create-team-feature-5" msgstr "مجانا 100٪ !" -#: src/app/main/ui/onboarding/templates.cljs:78 msgid "onboarding.templates.subtitle" msgstr "فيما يلي بعض القوالب." -#: src/app/main/ui/onboarding/templates.cljs:77 msgid "onboarding.templates.title" msgstr "إبدأ التصميم" -#, unused msgid "onboarding.welcome.alt" msgstr "Penpotأهلا بك في" -#: src/app/main/ui/auth/recovery.cljs:99 +#: src/app/main/ui/auth/recovery.cljs msgid "profile.recovery.go-to-login" msgstr "اذهب إلى تسجيل الدخول" -#: src/app/main/ui/viewer/inspect/exports.cljs:147, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:631, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:137, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:148, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:188, src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:158, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:399, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:410, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:430, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:441, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:458, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:472, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:309, src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:183, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:373, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:389, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:245, src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:172 +#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs msgid "settings.multiple" msgstr "مكرر" # SECTIONS -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:414 msgid "shortcut-section.basics" msgstr "الأساسيات" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:420 msgid "shortcut-section.dashboard" msgstr "لوحة القيادة" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:423 msgid "shortcut-section.viewer" msgstr "مشاهد" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:417 msgid "shortcut-section.workspace" msgstr "مساحة العمل" # SUBSECTIONS -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:56 msgid "shortcut-subsection.alignment" msgstr "محاذاة" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:57 msgid "shortcut-subsection.edit" msgstr "تعديل" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:58 msgid "shortcut-subsection.general-dashboard" msgstr "عام" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:59 msgid "shortcut-subsection.general-viewer" msgstr "عام" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:60 msgid "shortcut-subsection.main-menu" msgstr "القائمة الرئيسية" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:61 msgid "shortcut-subsection.modify-layers" msgstr "تعديل الطبقات" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:62 msgid "shortcut-subsection.navigation-dashboard" msgstr "التنقل" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:63 msgid "shortcut-subsection.navigation-viewer" msgstr "التنقل" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:64 msgid "shortcut-subsection.navigation-workspace" msgstr "التنقل" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:65 msgid "shortcut-subsection.panels" msgstr "اللوحات" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:66 msgid "shortcut-subsection.path-editor" msgstr "مسارات" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:67 msgid "shortcut-subsection.shape" msgstr "الأشكال" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:69 msgid "shortcut-subsection.tools" msgstr "أدوات" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:70 msgid "shortcut-subsection.zoom-viewer" msgstr "تكبير" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:71 msgid "shortcut-subsection.zoom-workspace" msgstr "تكبير" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:72 msgid "shortcuts.add-comment" msgstr "تعليقات" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:73 msgid "shortcuts.add-node" msgstr "إضافة عقدة" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:74 msgid "shortcuts.align-bottom" msgstr "محاذاة لأسفل" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:76 msgid "shortcuts.align-hcenter" msgstr "محاذاة المركز أفقيًا" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:78 msgid "shortcuts.align-left" msgstr "محاذاة اليسار" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:79 msgid "shortcuts.align-right" msgstr "محاذاة اليمين" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:80 msgid "shortcuts.align-top" msgstr "‌محاذاة الأعلى" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:81 msgid "shortcuts.align-vcenter" msgstr "محاذاة المركز عموديًا" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:82 msgid "shortcuts.artboard-selection" msgstr "إنشاء لوحة من الاختيار" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:84 msgid "shortcuts.bool-difference" msgstr "فرق منطقي" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:85 msgid "shortcuts.bool-exclude" msgstr "استبعاد منطقي" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:86 msgid "shortcuts.bool-intersection" msgstr "تقاطع منطقي" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:87 msgid "shortcuts.bool-union" msgstr "الاتحاد المنطقي" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:88 msgid "shortcuts.bring-back" msgstr "أرسل إلى الخلف" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:89 msgid "shortcuts.bring-backward" msgstr "إرسال إلى الوراء" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:90 msgid "shortcuts.bring-forward" msgstr "ثابر للأمام" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:91 msgid "shortcuts.bring-front" msgstr "أحضر إلى الأمام" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:92 msgid "shortcuts.clear-undo" msgstr "مسح التراجع" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:93 msgid "shortcuts.copy" msgstr "إنسخ" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:94 msgid "shortcuts.create-component" msgstr "تكوين المكون" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:95 msgid "shortcuts.create-new-project" msgstr "أضف جديد" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:96 msgid "shortcuts.cut" msgstr "إقطع" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:97 msgid "shortcuts.decrease-zoom" msgstr "تصغير" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:98 msgid "shortcuts.delete" msgstr "حذف" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:99 msgid "shortcuts.delete-node" msgstr "حذف العقدة" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:100 msgid "shortcuts.detach-component" msgstr "إفصل المكون" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:101 msgid "shortcuts.draw-curve" msgstr "منحنى" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:102 msgid "shortcuts.draw-ellipse" msgstr "الشكل البيضاوي" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:103 msgid "shortcuts.draw-frame" msgstr "لوحة" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:104 msgid "shortcuts.draw-nodes" msgstr "أرسم المسار" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:105 msgid "shortcuts.draw-path" msgstr "المسار" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:106 msgid "shortcuts.draw-rect" msgstr "مستطيل" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:107 msgid "shortcuts.draw-text" msgstr "نص" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:108 msgid "shortcuts.duplicate" msgstr "كرر" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:109 msgid "shortcuts.escape" msgstr "إلغي" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:110 msgid "shortcuts.export-shapes" msgstr "تصدير الأشكال" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:111 msgid "shortcuts.fit-all" msgstr "تكبير لتناسب الجميع" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:112 msgid "shortcuts.flip-horizontal" msgstr "قلب أفقيًا" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:113 msgid "shortcuts.flip-vertical" msgstr "قلب عموديًا" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:116 msgid "shortcuts.go-to-drafts" msgstr "إنتقل إلى المسودات" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:117 msgid "shortcuts.go-to-libs" msgstr "إذهب إلى المكتبات المشتركة" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:118 msgid "shortcuts.go-to-search" msgstr "بحث" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:119 msgid "shortcuts.group" msgstr "مجموعة" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:120 msgid "shortcuts.h-distribute" msgstr "وزع أفقيًا" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:121 msgid "shortcuts.hide-ui" msgstr "إظهار / إخفاء واجهة المستخدم" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:122 msgid "shortcuts.increase-zoom" msgstr "تكبير" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:123 msgid "shortcuts.insert-image" msgstr "إدراج صورة" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:125 msgid "shortcuts.join-nodes" msgstr "ربط العقد" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:131 msgid "shortcuts.make-corner" msgstr "إصنع زاوية" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:132 msgid "shortcuts.make-curve" msgstr "إصنع منحنى" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:133 msgid "shortcuts.mask" msgstr "قناع" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:134 msgid "shortcuts.merge-nodes" msgstr "دمج العقد" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:135 msgid "shortcuts.move" msgstr "تحرك" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:136 msgid "shortcuts.move-fast-down" msgstr "تحرك بسرعة لأسفل" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:137 msgid "shortcuts.move-fast-left" msgstr "تحرك يسارا بسرعة" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:138 msgid "shortcuts.move-fast-right" msgstr "تحرك يميناً بسرعة" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:139 msgid "shortcuts.move-fast-up" msgstr "تحرك للأعلى بسرعة" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:140 msgid "shortcuts.move-nodes" msgstr "نقل العقدة" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:141 msgid "shortcuts.move-unit-down" msgstr "تحرك لأسفل" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:142 msgid "shortcuts.move-unit-left" msgstr "تحرك يساراً" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:143 msgid "shortcuts.move-unit-right" msgstr "تحرك يميناً" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:144 msgid "shortcuts.move-unit-up" msgstr "تحرك للأعلى" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:145 msgid "shortcuts.next-frame" msgstr "اللوحة التالية" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:516 msgid "shortcuts.not-found" msgstr "لا يوجد إختصارات" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:146 msgid "shortcuts.opacity-0" msgstr "ضبط التعتيم على 100٪" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:147 msgid "shortcuts.opacity-1" msgstr "اضبط التعتيم على 10٪" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:148 msgid "shortcuts.opacity-2" msgstr "اضبط التعتيم على 20٪" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:149 msgid "shortcuts.opacity-3" msgstr "اضبط التعتيم على 30%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:150 msgid "shortcuts.opacity-4" msgstr "اضبط التعتيم على 40%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:151 msgid "shortcuts.opacity-5" msgstr "اضبط التعتيم على 50%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:152 msgid "shortcuts.opacity-6" msgstr "اضبط التعتيم على 60%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:153 msgid "shortcuts.opacity-7" msgstr "اضبط التعتيم على 70%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:154 msgid "shortcuts.opacity-8" msgstr "اضبط التعتيم على 80%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:155 msgid "shortcuts.opacity-9" msgstr "اضبط التعتيم على 90%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:156 msgid "shortcuts.open-color-picker" msgstr "أداة انتقاء اللون" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:158 msgid "shortcuts.open-dashboard" msgstr "إذهب إلى لوحة المعلومات" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:193 msgid "shortcuts.toggle-layers" msgstr "تبديل الطبقات" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:194 msgid "shortcuts.toggle-layout-flex" msgstr "أضف\\أزل ثني التخطيط" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:196 msgid "shortcuts.toggle-lock" msgstr "قفل\\فتح" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:197 msgid "shortcuts.toggle-lock-size" msgstr "قفل النسب" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:202 msgid "shortcuts.toggle-textpalette" msgstr "تبديل لوحة النص" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:204 msgid "shortcuts.toggle-visibility" msgstr "أظهر\\أخف" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:205 msgid "shortcuts.toggle-zoom-style" msgstr "تبديل أسلوب التكبير" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:206 msgid "shortcuts.underline" msgstr "الخط التحتي" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:207 msgid "shortcuts.undo" msgstr "الغاء" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:208 msgid "shortcuts.ungroup" msgstr "فك التجميع" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:209 msgid "shortcuts.unmask" msgstr "كشف القناع" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:210 msgid "shortcuts.v-distribute" msgstr "النشر عموديا" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:211 msgid "shortcuts.zoom-lense-decrease" msgstr "تنقيص عدسة التكبير" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:212 msgid "shortcuts.zoom-lense-increase" msgstr "زيادة عدسة التكبير" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:213 msgid "shortcuts.zoom-selected" msgstr "كبر المحدد" -#: src/app/main/ui/dashboard/team.cljs:771 +#: src/app/main/ui/dashboard/team.cljs msgid "team.webhooks.max-length" msgstr "يجب الا يزيد اسم الويبهوك على 2048 حرفا" -#: src/app/main/ui/dashboard/files.cljs:158 +#: src/app/main/ui/dashboard/files.cljs msgid "title.dashboard.files" msgstr "%s - Penpotعنوان ملفات لوحة القيادة" -#: src/app/main/ui/dashboard/fonts.cljs:37 +#: src/app/main/ui/dashboard/fonts.cljs msgid "title.dashboard.font-providers" msgstr "مزودي أسلوب الخط - %s - Penpot" -#: src/app/main/ui/dashboard/fonts.cljs:36 +#: src/app/main/ui/dashboard/fonts.cljs msgid "title.dashboard.fonts" msgstr "أسلوب خط لوحة القيادة - %s - Penpot" -#: src/app/main/ui/dashboard/projects.cljs:320 +#: src/app/main/ui/dashboard/projects.cljs msgid "title.dashboard.projects" msgstr "برامج ملفات القيادة - %s - Penpot" -#: src/app/main/ui/dashboard/search.cljs:32 +#: src/app/main/ui/dashboard/search.cljs msgid "title.dashboard.search" msgstr "البحث - %s - Penpot" -#: src/app/main/ui/dashboard/libraries.cljs:44 +#: src/app/main/ui/dashboard/libraries.cljs msgid "title.dashboard.shared-libraries" msgstr "المكاتب المقسمة - %s - Penpot" -#: src/app/main/ui/auth/verify_token.cljs:68, src/app/main/ui/auth.cljs:54 +#: src/app/main/ui/auth/verify_token.cljs, src/app/main/ui/auth.cljs msgid "title.default" msgstr "Penpot - صمم حرية الفرق" -#: src/app/main/ui/settings/access_tokens.cljs:292 +#: src/app/main/ui/settings/access-tokens.cljs msgid "title.settings.access-tokens" msgstr "رموز الوصول للحساب" -#: src/app/main/ui/settings/feedback.cljs:110 +#: src/app/main/ui/settings/feedback.cljs msgid "title.settings.feedback" msgstr "جواب الرد - Penpot" -#: src/app/main/ui/settings/options.cljs:80 +#: src/app/main/ui/settings/options.cljs msgid "title.settings.options" msgstr "إعدادات - Penpot" -#: src/app/main/ui/settings/password.cljs:115 +#: src/app/main/ui/settings/password.cljs msgid "title.settings.password" msgstr "كلمة المرور - Penpot" -#: src/app/main/ui/settings/profile.cljs:115 +#: src/app/main/ui/settings/profile.cljs msgid "title.settings.profile" msgstr "واجهة الحساب - Penpot" -#: src/app/main/ui/dashboard/team.cljs:727 +#: src/app/main/ui/dashboard/team.cljs msgid "title.team-invitations" msgstr "الدعوات - %s - Penpot" -#: src/app/main/ui/dashboard/team.cljs:493 +#: src/app/main/ui/dashboard/team.cljs msgid "title.team-members" msgstr "أعضاء الفريق - %s - Penpot" -#: src/app/main/ui/dashboard/team.cljs:1036 +#: src/app/main/ui/dashboard/team.cljs msgid "title.team-settings" msgstr "إعدادات - %s - Penpot" -#: src/app/main/ui/dashboard/team.cljs:989 msgid "title.team-webhooks" msgstr "خطافات الويب - %s - Penpot" -#: src/app/main/ui/viewer.cljs:419 +#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs msgid "title.viewer" msgstr "%s -أسلوب العرض - Penpot" -#: src/app/main/ui/workspace.cljs:190 +#: src/app/main/ui/workspace.cljs msgid "title.workspace" msgstr "%s -مساحة العمل Penpot" -#: src/app/main/ui.cljs:144 msgid "viewer.breaking-change.description" msgstr "" "وصف كسر التغييرThis shareable link is no longer valid. Create a new one or " "ask the owner for a new one.هذا الرابط القابل للمشاركة لم يعد صالحا.صمم " "جديدا أو اسأل مالكه للجديد" -#: src/app/main/ui.cljs:143 msgid "viewer.breaking-change.message" msgstr "آسف" -#: src/app/main/ui/viewer.cljs:569 +#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs msgid "viewer.empty-state" msgstr "No boards found on the page." -#: src/app/main/ui/viewer.cljs:574 +#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs msgid "viewer.frame-not-found" msgstr "لم يعثر على البورد ." -#: src/app/main/ui/viewer/header.cljs:336 msgid "viewer.header.comments-section" msgstr "التعليقات (%s)" -#: src/app/main/ui/viewer/interactions.cljs:292 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.dont-show-interactions" msgstr "لا تطهر التفاعلات" -#: src/app/main/ui/viewer/header.cljs:188 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.fullscreen" msgstr "تكبير الشاشة" -#: src/app/main/ui/viewer/header.cljs:345 msgid "viewer.header.inspect-section" msgstr "التفحص (%s)" -#: src/app/main/ui/viewer/interactions.cljs:282 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.interactions" msgstr "التفاعلات" -#: src/app/main/ui/viewer/header.cljs:327 msgid "viewer.header.interactions-section" msgstr "التفاعلات (%s)" -#: src/app/main/ui/viewer/share_link.cljs:187 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.share.copy-link" msgstr "نسخ الرابط" -#: src/app/main/ui/viewer/interactions.cljs:300 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.show-interactions" msgstr "أطهر التفاعلات بالنقر" -#: src/app/main/ui/viewer/interactions.cljs:311 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.show-interactions-on-click" msgstr "أطهر التفاعلات بالنقر" -#: src/app/main/ui/viewer/header.cljs:231 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.sitemap" msgstr "خريطة الموقع" -#: src/app/main/ui/dashboard/team.cljs:948 +#, fuzzy msgid "webhooks.last-delivery.success" msgstr "محاذاة المركز الأفقي" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:58 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.hcenter" msgstr "محاذاة المركز الأفقي (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:74 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.hdistribute" msgstr "توزيع المسافات الأفقية (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:50 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.hleft" msgstr "محاذاة لليسار (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:66 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.hright" msgstr "محاذاة لليمين (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:99 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.vbottom" msgstr "محاذاة للأسفل (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:91 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.vcenter" msgstr "محاذاة للمركز العمودي (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:104 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.vdistribute" msgstr "توزيع التباعد الرئسي (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:83 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.vtop" msgstr "محاذاة أعلى (%s)" #: src/app/main/ui/workspace/sidebar/assets.cljs -#, unused msgid "workspace.assets.assets" msgstr "أصول" -#: src/app/main/ui/workspace/sidebar/assets.cljs:134 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.box-filter-all" msgstr "كل الأصول" -#: src/app/main/ui/dashboard/grid.cljs:130, src/app/main/ui/dashboard/grid.cljs:162, src/app/main/ui/workspace/sidebar/assets/colors.cljs:485, src/app/main/ui/workspace/sidebar/assets.cljs:150 +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.colors" msgstr "الألوان" -#: src/app/main/ui/dashboard/grid.cljs:126, src/app/main/ui/dashboard/grid.cljs:141, src/app/main/ui/workspace/sidebar/assets/components.cljs:513, src/app/main/ui/workspace/sidebar/assets.cljs:139 +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.components" msgstr "عناصر" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:131 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.create-group" msgstr "إيجاد مجموعة" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:142 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.create-group-hint" msgstr "\"ستسمى عناصرك تلقائيا ك\"اسم مجموعة\" \"اسم عنصر" -#: src/app/main/ui/workspace/context_menu.cljs:529, src/app/main/ui/workspace/sidebar/assets/colors.cljs:251, src/app/main/ui/workspace/sidebar/assets/components.cljs:577, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:424, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:443 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.delete" msgstr "امسح" -#: src/app/main/ui/workspace/context_menu.cljs:534, src/app/main/ui/workspace/sidebar/assets/components.cljs:572 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.duplicate" msgstr "انسخ" -#: src/app/main/ui/workspace/sidebar/assets/components.cljs:571 msgid "workspace.assets.duplicate-main" msgstr "انسخ الأصل" -#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:247, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:439 +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.edit" msgstr "التحرير" -#: src/app/main/ui/workspace/sidebar/assets/graphics.cljs:384, src/app/main/ui/workspace/sidebar/assets.cljs:145 +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.graphics" msgstr "رسومات" -#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:255, src/app/main/ui/workspace/sidebar/assets/components.cljs:581, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:428, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:448 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.group" msgstr "مجموعة" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:141 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.group-name" msgstr "اسم المجموعة" -#: src/app/main/ui/workspace/sidebar/assets.cljs:168 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.libraries" msgstr "المكتبات" -#: src/app/main/ui/workspace/sidebar/assets/file_library.cljs:62, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:347 msgid "workspace.assets.local-library" msgstr "المكتبة المحلية" -#: src/app/main/ui/workspace/sidebar/assets/file_library.cljs:295 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.not-found" msgstr "الأصل غير موجود" -#, unused msgid "workspace.assets.open-library" msgstr "افتح ملف المكتب" -#: src/app/main/ui/workspace/context_menu.cljs:532, src/app/main/ui/workspace/sidebar/assets/colors.cljs:243, src/app/main/ui/workspace/sidebar/assets/components.cljs:566, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:421, src/app/main/ui/workspace/sidebar/assets/groups.cljs:63, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:434 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.rename" msgstr "إعادة تسمية" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:132 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.rename-group" msgstr "إعادة تسمية المجموعة" -#: src/app/main/ui/workspace/sidebar/assets.cljs:173 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.search" msgstr "الخث عن أصل" #: src/app/main/ui/workspace/sidebar/assets.cljs -#, unused msgid "workspace.assets.selected-count" msgid_plural "workspace.assets.selected-count" msgstr[0] "%s العناصر المحددة" @@ -2838,1896 +2554,1783 @@ msgstr[4] "" msgstr[5] "" #: src/app/main/ui/workspace/sidebar/assets.cljs -#, unused msgid "workspace.assets.shared-library" msgstr "مكتبة مشتركة" -#: src/app/main/ui/dashboard/grid.cljs:134, src/app/main/ui/dashboard/grid.cljs:189, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:397, src/app/main/ui/workspace/sidebar/assets.cljs:155 +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.typography" msgstr "الطباعة" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused msgid "workspace.assets.typography.font-id" msgstr "أسلوب الخط" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:505 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.font-size" msgstr "الحجم" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:501 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.font-variant-id" msgstr "البديل" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:523 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.go-to-edit" msgstr "اذهب إلى تحرير نوع ملف المكتبة" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:513 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.letter-spacing" msgstr "تباعد الحروف" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:509 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.line-height" msgstr "طول الخط" -#: src/app/main/ui/dashboard/grid.cljs:199, src/app/main/ui/workspace/libraries.cljs:461, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:464, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:489, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:596, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:615 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, +#: src/app/main/ui/inspect/attributes/text.cljs, +#: src/app/main/ui/inspect/attributes/text.cljs msgid "workspace.assets.typography.sample" msgstr "أسلوب خط النص" -#, unused msgid "workspace.assets.typography.text-styles" msgstr "أسلوب خط النص" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:517 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.text-transform" msgstr "تحويل النص" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:66 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.ungroup" msgstr "فك التجميع" -#: src/app/main/ui/workspace/sidebar/layers.cljs:525 msgid "workspace.focus.focus-mode" msgstr "وضع التركيز" -#: src/app/main/ui/workspace/context_menu.cljs:287, src/app/main/ui/workspace/context_menu.cljs:553 msgid "workspace.focus.focus-off" msgstr "تعطيل التركيز" -#: src/app/main/ui/workspace/context_menu.cljs:286 msgid "workspace.focus.focus-on" msgstr "تشغيل التركيز" -#, unused msgid "workspace.focus.selection" msgstr "تحديد" -#: src/app/util/color.cljs:34 +#: src/app/main/data/workspace/libraries.cljs, +#: src/app/main/ui/components/color_bullet.cljs msgid "workspace.gradients.linear" msgstr "الانحدار الخطي" -#: src/app/util/color.cljs:35 +#: src/app/main/data/workspace/libraries.cljs, +#: src/app/main/ui/components/color_bullet.cljs msgid "workspace.gradients.radial" msgstr "الانحدار الشعاعي" -#: src/app/main/ui/workspace/main_menu.cljs:238 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.disable-dynamic-alignment" msgstr "إبطال المحاذاة الدينماكية" -#: src/app/main/ui/workspace/main_menu.cljs:192 msgid "workspace.header.menu.disable-scale-content" msgstr "Disable proportional scale" #: src/app/main/ui/workspace/header.cljs -#, unused msgid "workspace.header.menu.disable-scale-text" msgstr "إبطال المقياس النسبي" -#: src/app/main/ui/workspace/main_menu.cljs:223 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.disable-snap-guides" msgstr "إبطال الفرقعة للخ\\وط الإرشادية" -#: src/app/main/ui/workspace/main_menu.cljs:253 msgid "workspace.header.menu.disable-snap-pixel-grid" msgstr "إبطال الفرقعة للبكسل" -#: src/app/main/ui/workspace/main_menu.cljs:239 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.enable-dynamic-alignment" msgstr "تككين المحاذاة الدينماكية" -#: src/app/main/ui/workspace/main_menu.cljs:193 msgid "workspace.header.menu.enable-scale-content" msgstr "تمكين المقياس النسبي" #: src/app/main/ui/workspace/header.cljs -#, unused msgid "workspace.header.menu.enable-scale-text" msgstr "تمكين نص المقياس" -#: src/app/main/ui/workspace/main_menu.cljs:224 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.enable-snap-guides" msgstr "الفرقعة للخطوط الإرشادية" -#: src/app/main/ui/workspace/main_menu.cljs:254 msgid "workspace.header.menu.enable-snap-pixel-grid" msgstr "تمكين الفرقعة للبكسل" -#: src/app/main/ui/workspace/main_menu.cljs:382 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.hide-artboard-names" msgstr "إخفاء أسماء البورد" -#: src/app/main/ui/workspace/main_menu.cljs:353 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.hide-palette" msgstr "إخفاء لون اللوحة" -#: src/app/main/ui/workspace/main_menu.cljs:394 msgid "workspace.header.menu.hide-pixel-grid" msgstr "إخفاء تشبيك اللوحة" -#: src/app/main/ui/workspace/main_menu.cljs:320 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.hide-rules" msgstr "إخفاء المسطرات" -#: src/app/main/ui/workspace/main_menu.cljs:367 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.hide-textpalette" msgstr "إخفاء لوحة أسلوب خط" -#: src/app/main/ui/workspace/main_menu.cljs:731 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.edit" msgstr "التحرير" -#: src/app/main/ui/workspace/main_menu.cljs:720 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.file" msgstr "الملف" -#: src/app/main/ui/workspace/main_menu.cljs:777 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.help-info" msgstr "المساعدة و المعلومة" -#: src/app/main/ui/workspace/main_menu.cljs:753 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.preferences" msgstr "التفضيلات" -#: src/app/main/ui/workspace/main_menu.cljs:742 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.view" msgstr "المنظر" -#: src/app/main/ui/workspace/main_menu.cljs:459 msgid "workspace.header.menu.redo" msgstr "إعادة" -#: src/app/main/ui/workspace/main_menu.cljs:432 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.select-all" msgstr "حدد الجميع" -#: src/app/main/ui/workspace/main_menu.cljs:383 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.show-artboard-names" msgstr "أظهر أسماء البورد" -#: src/app/main/ui/workspace/main_menu.cljs:354 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.show-palette" msgstr "أظهر لون اللوحة" -#: src/app/main/ui/workspace/main_menu.cljs:395 msgid "workspace.header.menu.show-pixel-grid" msgstr "Show pixel grid" -#: src/app/main/ui/workspace/main_menu.cljs:321 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.show-rules" msgstr "أظهر المسطرات" -#: src/app/main/ui/workspace/main_menu.cljs:368 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.show-textpalette" msgstr "أظهر لوخة أسلوب الخط" -#: src/app/main/ui/workspace/main_menu.cljs:446 msgid "workspace.header.menu.undo" msgstr "الإلغاء" -#: src/app/main/ui/viewer/header.cljs:98, src/app/main/ui/workspace/right_header.cljs:120 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.reset-zoom" msgstr "إعادة ضبط" #: src/app/main/ui/workspace/header.cljs -#, unused msgid "workspace.header.save-error" msgstr "خطأ في حفظ الملف" -#: src/app/main/ui/workspace/right_header.cljs:52 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.saved" msgstr "تم الحفظ" #: src/app/main/ui/workspace/header.cljs -#, unused msgid "workspace.header.saving" msgstr "حفظ الملف" -#: src/app/main/ui/workspace/right_header.cljs:42, src/app/main/ui/workspace/right_header.cljs:47 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.unsaved" msgstr "تغييرات غير محفوظة" -#: src/app/main/ui/workspace/right_header.cljs:239 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.viewer" msgstr "وضع العرض (%s)" -#: src/app/main/ui/viewer/header.cljs:79, src/app/main/ui/workspace/right_header.cljs:103 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom" msgstr "تكبير" -#: src/app/main/ui/viewer/header.cljs:109 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom-fill" msgstr "مقياس الملأ" -#: src/app/main/ui/viewer/header.cljs:102 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom-fit" msgstr "تقليص المقياس للتناسب" -#: src/app/main/ui/workspace/right_header.cljs:123 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom-fit-all" msgstr "التكبير لتناسب الجميع" -#: src/app/main/ui/viewer/header.cljs:116 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom-full-screen" msgstr "تكبير الشاشة" -#: src/app/main/ui/workspace/right_header.cljs:130 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom-selected" msgstr "تكبير" -#: src/app/main/ui/workspace/viewport/grid_layout_editor.cljs:59 msgid "workspace.layout_grid.editor.title" msgstr "تحرير التشبيك" #: src/app/main/ui/workspace/libraries.cljs -#, unused msgid "workspace.libraries.add" msgstr "الإضافة" -#: src/app/main/ui/workspace/libraries.cljs:80, src/app/main/ui/workspace/libraries.cljs:99 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.colors" msgstr "%s الألوان" -#: src/app/main/ui/workspace/color_palette.cljs:126 +#: src/app/main/ui/workspace/colorpalette.cljs msgid "workspace.libraries.colors.empty-palette" msgstr "لا يوجد أنماط اللون في مكتبتك" -#: src/app/main/ui/workspace/text_palette.cljs:150 +#: src/app/main/ui/workspace/textpalette.cljs msgid "workspace.libraries.colors.empty-typography-palette" msgstr "لا يوجد أنماط الكتابة في مكتبتك" -#: src/app/main/ui/workspace/color_palette_ctx_menu.cljs:60, src/app/main/ui/workspace/colorpicker/libraries.cljs:73, src/app/main/ui/workspace/text_palette_ctx_menu.cljs:50 +#: src/app/main/ui/workspace/colorpicker/libraries.cljs, +#: src/app/main/ui/workspace/colorpalette.cljs msgid "workspace.libraries.colors.file-library" msgstr "مكتبة الملفات" #: src/app/main/ui/workspace/colorpicker.cljs -#, unused msgid "workspace.libraries.colors.hsv" msgstr "HSV" -#: src/app/main/ui/workspace/color_palette_ctx_menu.cljs:82, src/app/main/ui/workspace/colorpicker/libraries.cljs:72 +#: src/app/main/ui/workspace/colorpicker/libraries.cljs, +#: src/app/main/ui/workspace/colorpalette.cljs msgid "workspace.libraries.colors.recent-colors" msgstr "الألوان المؤخرة" #: src/app/main/ui/workspace/colorpicker.cljs -#, unused msgid "workspace.libraries.colors.rgb-complementary" msgstr "RGB مكملات" #: src/app/main/ui/workspace/colorpicker.cljs -#, unused msgid "workspace.libraries.colors.rgba" msgstr "RGBA" -#: src/app/main/ui/workspace/colorpicker.cljs:372 +#: src/app/main/ui/workspace/colorpicker.cljs msgid "workspace.libraries.colors.save-color" msgstr "حفظ أسلوب اللون" -#: src/app/main/ui/workspace/libraries.cljs:74, src/app/main/ui/workspace/libraries.cljs:91 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.components" msgstr "%s العناصر" -#: src/app/main/ui/workspace/libraries.cljs:215 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.file-library" msgstr "مكتبة الملف" -#: src/app/main/ui/workspace/libraries.cljs:77, src/app/main/ui/workspace/libraries.cljs:95 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.graphics" msgstr "%s الرسومات" -#: src/app/main/ui/workspace/libraries.cljs:209 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.in-this-file" msgstr "المكتبات في هذا الملف" -#: src/app/main/ui/workspace/libraries.cljs:526, src/app/main/ui/workspace/libraries.cljs:531 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.libraries" msgstr "المكتبات" #: src/app/main/ui/workspace/libraries.cljs -#, unused msgid "workspace.libraries.library" msgstr "المكتبة" -#: src/app/main/ui/workspace/libraries.cljs:382 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.library-updates" msgstr "تحديث المكتبة" -#: src/app/main/ui/workspace/libraries.cljs:380 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.no-libraries-need-sync" msgstr "لا يوجد مكتبات مشتركة تحتاج إلى تحديث" -#: src/app/main/ui/workspace/libraries.cljs:299 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.no-matches-for" msgstr "لا يوجد ما يطابق هذا “%s“" -#: src/app/main/ui/workspace/libraries.cljs:296 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.no-shared-libraries-available" msgstr "لا يوجد مكتبات مشتركة" -#: src/app/main/ui/workspace/libraries.cljs:260 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.search-shared-libraries" msgstr "البحث في المكتبات المشتركة" -#: src/app/main/ui/workspace/libraries.cljs:256 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.shared-libraries" msgstr "مكتبات مشتركة" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:308 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.libraries.text.multiple-typography" msgstr "كتابات عديدة" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:311 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.libraries.text.multiple-typography-tooltip" msgstr "إلغاء روابط كل الكتابات" -#: src/app/main/ui/workspace/libraries.cljs:83, src/app/main/ui/workspace/libraries.cljs:103 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.typography" msgstr "%s الكتابات" -#: src/app/main/ui/workspace/libraries.cljs:402 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.update" msgstr "التحديث" -#: src/app/main/ui/workspace/libraries.cljs:477 +#: src/app/main/data/workspace/libraries.cljs msgid "workspace.libraries.update.see-all-changes" msgstr "رؤية جميع التغييرات" -#: src/app/main/ui/workspace/libraries.cljs:536 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.updates" msgstr "التحديثات" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:737 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.add-interaction" msgstr "انقر على زر +لإضافة التفاعلات" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:86, src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:102 +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs msgid "workspace.options.blur-options.title" msgstr "الطمس" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:85 +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs msgid "workspace.options.blur-options.title.group" msgstr "تطميس المجموعة" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:84 +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs msgid "workspace.options.blur-options.title.multiple" msgstr "تطميس المحدد" -#: src/app/main/ui/workspace/sidebar/options/page.cljs:32, src/app/main/ui/workspace/sidebar/options/page.cljs:39 +#: src/app/main/ui/workspace/sidebar/options/page.cljs msgid "workspace.options.canvas-background" msgstr "خلفية اللوحة القماشية" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:548 msgid "workspace.options.clip-content" msgstr "محتوى المقطع" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:600, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:605 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs msgid "workspace.options.component" msgstr "العنصر" -#: src/app/main/ui/viewer/inspect/annotation.cljs:19, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:181 msgid "workspace.options.component.annotation" msgstr "حاشية" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:610 msgid "workspace.options.component.copy" msgstr "النسخ" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:173 msgid "workspace.options.component.create-annotation" msgstr "إنشاء حاشية" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:172 msgid "workspace.options.component.edit-annotation" msgstr "تحرير حاشية" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:609 msgid "workspace.options.component.main" msgstr "أصل" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:163 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints" msgstr "قيود" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:150 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.bottom" msgstr "أسفل" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:141, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:152 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.center" msgstr "وسط" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:229 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.fix-when-scrolling" msgstr "أصلح حين التمرير" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:138 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.left" msgstr "شمال" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:140 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.leftright" msgstr "يمين و شمال" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:139 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.right" msgstr "يمين" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:142, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:153 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.scale" msgstr "مقياس" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:149 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.top" msgstr "أعلى" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:151 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.topbottom" msgstr "أعلى و أسفل" -#: src/app/main/ui/workspace/sidebar/options.cljs:112 +#: src/app/main/ui/workspace/sidebar/options.cljs msgid "workspace.options.design" msgstr "تصميم" -#: src/app/main/ui/viewer/inspect/exports.cljs:139 +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, +#: src/app/main/ui/inspect/exports.cljs msgid "workspace.options.export" msgstr "تصدير" #: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs -#, unused msgid "workspace.options.export-multiple" msgstr "تحديد المصدر" -#: src/app/main/ui/viewer/inspect/exports.cljs:178, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:219 +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs msgid "workspace.options.export.suffix" msgstr "لاحقة" -#: src/app/main/ui/export.cljs:240 +#: 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.exporting-complete" msgstr "تم التصدير" -#: src/app/main/ui/export.cljs:172, src/app/main/ui/export.cljs:241, src/app/main/ui/viewer/inspect/exports.cljs:194, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:236 +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, +#: src/app/main/ui/inspect/exports.cljs msgid "workspace.options.exporting-object" msgstr "جاري التصدير…" -#: src/app/main/ui/export.cljs:239 +#: 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.exporting-object-error" msgstr "Export failed" -#: src/app/main/ui/export.cljs:242 +#: 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.exporting-object-slow" msgstr "التصدير بطيء بشكل غير متوقع" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:49, src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:174 +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs msgid "workspace.options.fill" msgstr "الملأ" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:178 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.flows.add-flow-start" msgstr "إضافة المخطط" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -#, unused msgid "workspace.options.flows.flow-start" msgstr "إضافة المخطط" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:161 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.flows.flow-starts" msgstr "جاري التخطيط" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:29 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.auto" msgstr "تلقائي" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:157 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.column" msgstr "أعمدة" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.grid-title" msgstr "تشبيك" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:196, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:237 msgid "workspace.options.grid.params.color" msgstr "لون" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.params.columns" msgstr "أعمدة" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:259 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.gutter" msgstr "مزراب" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:246 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.height" msgstr "طول" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:270 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.margin" msgstr "هامش" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.params.rows" msgstr "صفوف" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:216, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:290 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.set-default" msgstr "تعيين كافتراضي" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.params.size" msgstr "حجم" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.params.type" msgstr "نوع" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:231 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.bottom" msgstr "أسفل" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:229 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.center" msgstr "وسط" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:228 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.left" msgstr "شمال" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:232 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.right" msgstr "يمين" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:225 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.stretch" msgstr "تمديد" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:227 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.top" msgstr "أعلى" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:211, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:288 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.use-default" msgstr "استعمل الإفتراضي" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:247 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.width" msgstr "عرض" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:158 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.row" msgstr "صفوف" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:156 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.square" msgstr "مربع" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:48 +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs msgid "workspace.options.group-fill" msgstr "ملأ المجموعة" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:42 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.group-stroke" msgstr "ضرب المجموعة" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:406 msgid "workspace.options.height" msgstr "طول" -#: src/app/main/ui/workspace/sidebar/options.cljs:161 msgid "workspace.options.inspect" msgstr "Inspectفحص" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:468 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-action" msgstr "فعل" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:41, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:367 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-after-delay" msgstr "بعد التأخير" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:614 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-animation" msgstr "الرسومات المتحركة" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:406 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-animation-dissolve" msgstr "تذوب" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:405 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-animation-none" msgstr "لا شيء" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:412 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-animation-push" msgstr "دفع" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:407 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-animation-slide" msgstr "انزلاق" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:391 msgid "workspace.options.interaction-auto" msgstr "تلقائي" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:604 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-background" msgstr "إضافة تراكب الخلفية" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:590 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-close-outside" msgstr "عطل إذا نقر في الخارج" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:372 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-close-overlay" msgstr "إغلاق التراكب" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:56 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-close-overlay-dest" msgstr "إغلاق التراكب: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:456 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-delay" msgstr "تأخير" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:478 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-destination" msgstr "وجهة" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:661 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-duration" msgstr "مدة" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:674 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing" msgstr "تخفيف" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:416 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing-ease" msgstr "خفف" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:417 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing-ease-in" msgstr "خفف داخل" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:419 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing-ease-in-out" msgstr "خفف داخل و خارج" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:418 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing-ease-out" msgstr "خفف خارج" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:415 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing-linear" msgstr "خطي" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -#, unused msgid "workspace.options.interaction-in" msgstr "داخل" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:39, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:364 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-mouse-enter" msgstr "إدخال الفأرة" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:40, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:365 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-mouse-leave" msgstr "إخراج الفأرة" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:458, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:459, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:464, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:663, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:665, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:669 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-ms" msgstr "القوائم" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:369 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-navigate-to" msgstr "الإنتقال الى" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:50 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-navigate-to-dest" msgstr "انتقال الى: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:51, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:53, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:55, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:380 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-none" msgstr "(غير مهيء)" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:691 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-offset-effect" msgstr "تأثير الإزاحة" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:35, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:360 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-on-click" msgstr "بعد النقر" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:370 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-open-overlay" msgstr "فتح التراكب" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:52 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-open-overlay-dest" msgstr "فتح التراكب: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:59, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:374 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-open-url" msgstr "رابط مفتوح" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -#, unused msgid "workspace.options.interaction-out" msgstr "خارج" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:403 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-bottom-center" msgstr "المركز السفلي" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:401 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-bottom-left" msgstr "اأسفل اليسار" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:402 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-bottom-right" msgstr "أسفل اليمين" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:397 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-center" msgstr "مركز" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:396 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-manual" msgstr "يدوي" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:400 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-top-center" msgstr "المركز العلوي" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:398 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-top-left" msgstr "أعلى اليسار" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:399 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-top-right" msgstr "أعلى اليمين" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:524 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-position" msgstr "موضع" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:494 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-preserve-scroll" msgstr "حفظ موضع التمرير" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:58, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:373 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-prev-screen" msgstr "الشاشة السابقة" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:515 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-relative-to" msgstr "بالنسبة الى" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:57, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:379, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:393, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:394 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-self" msgstr "الذات" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:371 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-toggle-overlay" msgstr "تبديل التراكب" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:54 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-toggle-overlay-dest" msgstr "تبديل التراكب: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:445 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-trigger" msgstr "مشغل" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:503 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-url" msgstr "الرابط المفتوح" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:37, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:362 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-while-hovering" msgstr "حين التحوم" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:38, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:363 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-while-pressing" msgstr "حين الضغط" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:724 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interactions" msgstr "التفاعلات" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:137 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.color" msgstr "اللون" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:126 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.color-burn" msgstr "احتراق اللون" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:129 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.color-dodge" msgstr "انقاص كثافة اللون" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:124 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.darken" msgstr "أغمق" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:133 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.difference" msgstr "الفارق" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:134 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.exclusion" msgstr "الإستبعاد" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:132 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.hard-light" msgstr "ضوء الثابت" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:135 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.hue" msgstr "مسحة" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:127 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.lighten" msgstr "تفتيح" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:138 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.luminosity" msgstr "لمعان" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:125 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.multiply" msgstr "تضاعف" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:123 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.normal" msgstr "عادي" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:130 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.overlay" msgstr "تراكب" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:136 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.saturation" msgstr "التشبع" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:128 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.screen" msgstr "شاشة" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:131 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.soft-light" msgstr "ضوء خافت" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -#, unused msgid "workspace.options.layer-options.title" msgstr "طبقة" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -#, unused msgid "workspace.options.layer-options.title.group" msgstr "طبقات المجموعة" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -#, unused msgid "workspace.options.layer-options.title.multiple" msgstr "الطبقات المحددة" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout-item.advanced-ops" msgstr "خيارات متقدمة" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:564 +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs msgid "workspace.options.layout-item.layout-item-max-h" msgstr "أقصى ارتفاع" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:531 +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs msgid "workspace.options.layout-item.layout-item-max-w" msgstr "أقصى عرض" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:548 +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs msgid "workspace.options.layout-item.layout-item-min-h" msgstr "الحد الأدنو للارتفاع" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:515 +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs msgid "workspace.options.layout-item.layout-item-min-w" msgstr "الحد الأدنى للعرض" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout-item.title.layout-item-max-h" msgstr "أقصى ارتفاع" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout-item.title.layout-item-max-w" msgstr "أقصى عرض" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout-item.title.layout-item-min-h" msgstr "الحد الأدنى للطول" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout-item.title.layout-item-min-w" msgstr "الحد الأدنى للعرض" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.bottom" msgstr "أسفل" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.direction.column" msgstr "عمود" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.direction.column-reverse" msgstr "العموج العكسي" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.direction.row" msgstr "الصف" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.direction.row-reverse" msgstr "الصف العكسي" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.gap" msgstr "فجوة" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.left" msgstr "شمال" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout.margin" msgstr "هامش" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout.margin-all" msgstr "جميع النواحي" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout.margin-simple" msgstr "هامش بسيط" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.packed" msgstr "معباة" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.padding" msgstr "حشوة" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.padding-all" msgstr "جميع النواحي" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.padding-simple" msgstr "حشوة بسيطة" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.right" msgstr "يمين" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.space-around" msgstr "التباعد حول" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.space-between" msgstr "التباعد بين" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.top" msgstr "أعلى" -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:146 +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs msgid "workspace.options.more-colors" msgstr "المزيد من الألوان" -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:123 +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs msgid "workspace.options.more-lib-colors" msgstr "المزيد من ألوان المكتبة" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:161 msgid "workspace.options.opacity" msgstr "العتامة" #: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -#, unused msgid "workspace.options.position" msgstr "الموضع" -#: src/app/main/ui/workspace/sidebar/options.cljs:157 +#: src/app/main/ui/workspace/sidebar/options.cljs msgid "workspace.options.prototype" msgstr "النموذج المبدئي" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:469, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:481 msgid "workspace.options.radius" msgstr "نصف القطر" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:513 +#: 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:522 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.radius-bottom-right" msgstr "أسفل اليمين" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:495 +#: 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:504 +#: 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:532 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.radius.all-corners" msgstr "كل الزوايا" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:533 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.radius.single-corners" msgstr "زوايا مستقلة" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:183 msgid "workspace.options.recent-fonts" msgstr "مؤخر" -#: src/app/main/ui/export.cljs:284 +#: 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 "أعد المحاولة" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:451 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.rotation" msgstr "دوران" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:180 msgid "workspace.options.search-font" msgstr "البخث عن نوع الخط" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:741 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.select-a-shape" msgstr "اختر الشكل أو اللوحة لجر الإتصال الى لوحة أو شكل آخر" -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:105 +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs msgid "workspace.options.selection-color" msgstr "الألوان المختارة" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:47 +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs msgid "workspace.options.selection-fill" msgstr "اختر نوع الملأ" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:41 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.selection-stroke" msgstr "ضرب الإختيار" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:40, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:198, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:200 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.blur" msgstr "تطميس" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:238 msgid "workspace.options.shadow-options.color" msgstr "لون الظل" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:144 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.drop-shadow" msgstr "إسقاط الظل" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:145 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.inner-shadow" msgstr "التظليل الداخلي" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:38, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:186 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.offsetx" msgstr "X" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:39, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:224 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.offsety" msgstr "Y" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:41, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:211, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:213 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.spread" msgstr "الانتشار" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:296 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.title" msgstr "الظل" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:295 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.title.group" msgstr "ظل المجموعة" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:294 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.title.multiple" msgstr "ظلال الإختيار" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:193 +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs msgid "workspace.options.show-fill-on-export" msgstr "أظهر في المصدر" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:562 msgid "workspace.options.show-in-viewer" msgstr "أظهر في وضع العرض" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:162 +#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.size" msgstr "مقاس" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:355 +#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs msgid "workspace.options.size-presets" msgstr "الإعدادات المسبقة للحجم" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:43 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke" msgstr "ضرب" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -#, unused msgid "workspace.options.stroke-cap.circle-marker" msgstr "معلم الدائرة" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:129 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.circle-marker-short" msgstr "الدائرة" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -#, unused msgid "workspace.options.stroke-cap.diamond-marker" msgstr "معلم الماس" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:130 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.diamond-marker-short" msgstr "الماس" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -#, unused msgid "workspace.options.stroke-cap.line-arrow" msgstr "سهم الخط" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:126 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.line-arrow-short" msgstr "سهم" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:124 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.none" msgstr "لا شيء" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:132 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.round" msgstr "دائري" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:133 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.square" msgstr "مربع" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -#, unused msgid "workspace.options.stroke-cap.square-marker" msgstr "معلم المربع" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:128 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.square-marker-short" msgstr "مستطيل" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -#, unused msgid "workspace.options.stroke-cap.triangle-arrow" msgstr "سهم المثلث" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:127 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.triangle-arrow-short" msgstr "المثلث" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:192 msgid "workspace.options.stroke-color" msgstr "لون الضرب" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:165 msgid "workspace.options.stroke-width" msgstr "عرض الضرب" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:87 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.center" msgstr "مركز" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:105 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.dashed" msgstr "متقطع" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:104 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.dotted" msgstr "منقط" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:88 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.inner" msgstr "داخل" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:106 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.mixed" msgstr "مختلط" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:89 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.outer" msgstr "خارج" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:103 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.solid" msgstr "صلب" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:115 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.align-bottom" msgstr "محاذاة الأسفل" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:111 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.align-middle" msgstr "محاذاة الوسط" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:107 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.align-top" msgstr "محاذاة أعلى" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:82 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.direction-ltr" msgstr "LTR" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:87 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.direction-rtl" msgstr "RTL" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:149 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.grow-auto-height" msgstr "الإرتفاع التلقائي" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:145 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.grow-auto-width" msgstr "العرض التلقائي" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:141 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.grow-fixed" msgstr "مثبت" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:381 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.options.text-options.letter-spacing" msgstr "تباعد الحروف" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:364 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.options.text-options.line-height" msgstr "ارتفاع الخط" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused msgid "workspace.options.text-options.lowercase" msgstr "أحرف صغيرة" #: src/app/main/ui/workspace/sidebar/options/menus/text.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused msgid "workspace.options.text-options.none" msgstr "لا شيء" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:176 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.strikethrough" msgstr "الإضراب من خلال(%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:51 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.text-align-center" msgstr "محاذاة المركز (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:59 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.text-align-justify" msgstr "تعديل (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:47 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.text-align-left" msgstr "محاذاة (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:55 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.text-align-right" msgstr "محاذاة اليمين (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:189 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.title" msgstr "نص" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:188 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.title-group" msgstr "نص للمجموعة" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:187 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.title-selection" msgstr "نص الإختيار" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused msgid "workspace.options.text-options.titlecase" msgstr "Title case" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:171 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.underline" msgstr "تسطير (%s)" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused msgid "workspace.options.text-options.uppercase" msgstr "الأحرف الكبيرة" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:745 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.use-play-button" msgstr "استعمل زر التشغيل أعلاه لتشغيل منظر النموذج المبدئي." -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:395 msgid "workspace.options.width" msgstr "عرض" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:427 msgid "workspace.options.x" msgstr "X محور" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:438 msgid "workspace.options.y" msgstr "Y محور" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:167 msgid "workspace.path.actions.add-node" msgstr "أضف العقدة (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:174 msgid "workspace.path.actions.delete-node" msgstr "احذف العقدة (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:152 msgid "workspace.path.actions.draw-nodes" msgstr "جر العقدة (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:189 msgid "workspace.path.actions.join-nodes" msgstr "صل العقد (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:204 msgid "workspace.path.actions.make-corner" msgstr "الى الزاوية (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:211 msgid "workspace.path.actions.make-curve" msgstr "الى المنحنى (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:182 msgid "workspace.path.actions.merge-nodes" msgstr "دمج العقد (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:159 msgid "workspace.path.actions.move-nodes" msgstr "نقل العقد (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:196 msgid "workspace.path.actions.separate-nodes" msgstr "فصل العقد (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:218 msgid "workspace.path.actions.snap-nodes" msgstr "كسر العقد (%s)" -#: src/app/main/ui/workspace/context_menu.cljs:441 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.add-flex" msgstr "إضافة تخطيط الثني" -#: src/app/main/ui/workspace/context_menu.cljs:445 msgid "workspace.shape.menu.add-grid" msgstr "إضافة تخطيط التشبيك" -#: src/app/main/ui/workspace/context_menu.cljs:193 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.back" msgstr "أرسل الى الخلف" -#: src/app/main/ui/workspace/context_menu.cljs:190 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.backward" msgstr "أرسل الى الخلف" -#: src/app/main/ui/workspace/context_menu.cljs:139 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.copy" msgstr "انسخ" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:427 msgid "workspace.shape.menu.create-annotation" msgstr "إنشاء تعليق توضيحي" -#: src/app/main/ui/workspace/context_menu.cljs:275 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.create-artboard-from-selection" msgstr "تحديد محتوى اللوحة" -#: src/app/main/ui/workspace/context_menu.cljs:465 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.create-component" msgstr "إنشاء نعصر" -#: src/app/main/ui/workspace/context_menu.cljs:469 msgid "workspace.shape.menu.create-multiple-components" msgstr "إنشاء عناصر جديدة" -#: src/app/main/ui/workspace/context_menu.cljs:142 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.cut" msgstr "قطع" -#: src/app/main/ui/workspace/context_menu.cljs:486 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.delete" msgstr "حذف" -#: src/app/main/ui/workspace/context_menu.cljs:391 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.delete-flow-start" msgstr "حذف المخطط" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:432 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.detach-instance" msgstr "فصل المثال" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:431 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.detach-instances-in-bulk" msgstr "فصل الامثلة" -#: src/app/main/ui/workspace/context_menu.cljs:335, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:75 msgid "workspace.shape.menu.difference" msgstr "الفارق" -#: src/app/main/ui/workspace/context_menu.cljs:148 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.duplicate" msgstr "ينسخ" -#: src/app/main/ui/workspace/context_menu.cljs:321 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.edit" msgstr "تحرير" -#: src/app/main/ui/workspace/context_menu.cljs:341 msgid "workspace.shape.menu.exclude" msgstr "استبعاد" -#: src/app/main/ui/workspace/context_menu.cljs:348, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:89 msgid "workspace.shape.menu.flatten" msgstr "تسطيح" -#: src/app/main/ui/workspace/context_menu.cljs:208 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.flip-horizontal" msgstr "Flip horizontal" -#: src/app/main/ui/workspace/context_menu.cljs:204 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.flip-vertical" msgstr "التوجيه الرئسي" -#: src/app/main/ui/workspace/context_menu.cljs:394 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.flow-start" msgstr "بداية المخطط" -#: src/app/main/ui/workspace/context_menu.cljs:184 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.forward" msgstr "النقل الى الأمام" -#: src/app/main/ui/workspace/context_menu.cljs:187 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.front" msgstr "النقل الى الأمام" #: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs -#, unused msgid "workspace.shape.menu.go-main" msgstr "انتقل الى ملف العنصر الأصلي" -#: src/app/main/ui/workspace/context_menu.cljs:261 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.group" msgstr "مجموعة" -#: src/app/main/ui/workspace/context_menu.cljs:363, src/app/main/ui/workspace/sidebar/layer_item.cljs:145 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.hide" msgstr "إخفاء" -#: src/app/main/ui/workspace/context_menu.cljs:548, src/app/main/ui/workspace/main_menu.cljs:408 msgid "workspace.shape.menu.hide-ui" msgstr "أظهر أو إخف UI" -#: src/app/main/ui/workspace/context_menu.cljs:338 msgid "workspace.shape.menu.intersection" msgstr "التفاعلات" -#: src/app/main/ui/workspace/context_menu.cljs:371, src/app/main/ui/workspace/sidebar/layer_item.cljs:153 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.lock" msgstr "إغلاق" -#: src/app/main/ui/workspace/context_menu.cljs:266 +#: src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.mask" msgstr "قناع" -#: src/app/main/ui/workspace/context_menu.cljs:145, src/app/main/ui/workspace/context_menu.cljs:545 +#: src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.paste" msgstr "معجون" -#: src/app/main/ui/workspace/context_menu.cljs:331 msgid "workspace.shape.menu.path" msgstr "طريق" -#: src/app/main/ui/workspace/context_menu.cljs:432 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.remove-flex" msgstr "إزالة تخطيط المنحنى" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:436 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.reset-overrides" msgstr "إعادة ضبط التجاوزات" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:439 msgid "workspace.shape.menu.restore-main" msgstr "استعادة العنصر الرئيسي" -#: src/app/main/ui/workspace/context_menu.cljs:174 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.select-layer" msgstr "اختيار الطبقة" -#: src/app/main/ui/workspace/context_menu.cljs:360, src/app/main/ui/workspace/sidebar/layer_item.cljs:144 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.show" msgstr "العرض" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:424 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.show-in-assets" msgstr "العرض في لوحة الاصول" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:442, src/app/main/ui/workspace/sidebar/assets/components.cljs:586 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.show-main" msgstr "أظهر المكون الرئيسي" -#: src/app/main/ui/workspace/context_menu.cljs:221 msgid "workspace.shape.menu.thumbnail-remove" msgstr "أطهر الصورة المصغرة" -#: src/app/main/ui/workspace/context_menu.cljs:223 msgid "workspace.shape.menu.thumbnail-set" msgstr "تعيين كصورة مصغرة" -#: src/app/main/ui/workspace/context_menu.cljs:326 msgid "workspace.shape.menu.transform-to-path" msgstr "تحويل الى المسار" -#: src/app/main/ui/workspace/context_menu.cljs:257 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.ungroup" msgstr "فك التجميع" -#: src/app/main/ui/workspace/context_menu.cljs:332, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:70 msgid "workspace.shape.menu.union" msgstr "اتحاد" -#: src/app/main/ui/workspace/context_menu.cljs:368, src/app/main/ui/workspace/sidebar/layer_item.cljs:152 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.unlock" msgstr "الغاء القفل" -#: src/app/main/ui/workspace/context_menu.cljs:271 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.unmask" msgstr "كشف القناع" #: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs -#, unused msgid "workspace.shape.menu.update-components-in-bulk" msgstr "تحديث العناصر الرئيسية" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:445 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.update-main" msgstr "تحديث العنصر الرئيسي" -#: src/app/main/ui/components/tab_container.cljs:50 msgid "workspace.sidebar.collapse" msgstr "انهيار الشريط الجانبي" -#: src/app/main/ui/workspace/sidebar/collapsable_button.cljs:26 msgid "workspace.sidebar.expand" msgstr "توسيع الشريط الجانبي" -#: src/app/main/ui/workspace/right_header.cljs:231, src/app/main/ui/workspace/right_header.cljs:232 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.sidebar.history" msgstr "التاريخ (%s)" -#: src/app/main/ui/workspace/sidebar/layers.cljs:522, src/app/main/ui/workspace/sidebar.cljs:100 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.sidebar.layers" msgstr "الطبقات" -#: src/app/main/ui/workspace/sidebar/layers.cljs:308, src/app/main/ui/workspace/sidebar/layers.cljs:380 msgid "workspace.sidebar.layers.components" msgstr "العناصر" -#: src/app/main/ui/workspace/sidebar/layers.cljs:305, src/app/main/ui/workspace/sidebar/layers.cljs:338 msgid "workspace.sidebar.layers.frames" msgstr "لوحات" -#: src/app/main/ui/workspace/sidebar/layers.cljs:306, src/app/main/ui/workspace/sidebar/layers.cljs:352 msgid "workspace.sidebar.layers.groups" msgstr "مجموعات" -#: src/app/main/ui/workspace/sidebar/layers.cljs:310, src/app/main/ui/workspace/sidebar/layers.cljs:408 msgid "workspace.sidebar.layers.images" msgstr "صور" -#: src/app/main/ui/workspace/sidebar/layers.cljs:307, src/app/main/ui/workspace/sidebar/layers.cljs:366 msgid "workspace.sidebar.layers.masks" msgstr "قناعات" -#: src/app/main/ui/workspace/sidebar/layers.cljs:311, src/app/main/ui/workspace/sidebar/layers.cljs:422 msgid "workspace.sidebar.layers.shapes" msgstr "بسومات" -#: src/app/main/ui/workspace/sidebar/layers.cljs:309, src/app/main/ui/workspace/sidebar/layers.cljs:394 msgid "workspace.sidebar.layers.texts" msgstr "نصوص" -#: src/app/main/ui/viewer/inspect/attributes/svg.cljs:56, src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs:91 +#: src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs, src/app/main/ui/inspect/attributes/svg.cljs msgid "workspace.sidebar.options.svg-attrs.title" msgstr "السمات المستوردةSVG" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs:217 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs msgid "workspace.sidebar.sitemap" msgstr "صفحات" -#: src/app/main/ui/workspace/left_header.cljs:91 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.sitemap" msgstr "خريطة الموقع" -#: src/app/main/ui/workspace/sidebar.cljs:120 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.assets" msgstr "أصول" -#: src/app/main/ui/workspace/palette.cljs:165, src/app/main/ui/workspace/palette.cljs:166 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.color-palette" msgstr "لوحة اللون (%s)" -#: src/app/main/ui/workspace/right_header.cljs:220, src/app/main/ui/workspace/right_header.cljs:221 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.comments" msgstr "تعليقات (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:180, src/app/main/ui/workspace/top_toolbar.cljs:181 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.curve" msgstr "منحنى (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:160, src/app/main/ui/workspace/top_toolbar.cljs:161 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.ellipse" msgstr "الشكل البيضاوي (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:142, src/app/main/ui/workspace/top_toolbar.cljs:143 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.frame" msgstr "لوحة (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:59, src/app/main/ui/workspace/top_toolbar.cljs:60 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.image" msgstr "صورة (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:132, src/app/main/ui/workspace/top_toolbar.cljs:133 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.move" msgstr "تحريك (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:189, src/app/main/ui/workspace/top_toolbar.cljs:190 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.path" msgstr "مسار (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:151, src/app/main/ui/workspace/top_toolbar.cljs:152 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.rect" msgstr "مستطيل (%s)" #: src/app/main/ui/workspace/left_toolbar.cljs -#, unused msgid "workspace.toolbar.shortcuts" msgstr "الإختصار (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:169, src/app/main/ui/workspace/top_toolbar.cljs:170 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.text" msgstr "نص (%s)" -#: src/app/main/ui/workspace/palette.cljs:173, src/app/main/ui/workspace/palette.cljs:174 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.text-palette" msgstr "الكتابات (%s)" -#: src/app/main/ui/workspace/viewport/top_bar.cljs:38 -msgid "workspace.top-bar.read-only.done" -msgstr "تم" - -#: src/app/main/ui/workspace/sidebar/history.cljs:342 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.empty" msgstr "لا يوجد تغييرات في التاريخ الى الآن" -#: src/app/main/ui/workspace/sidebar/history.cljs:147 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.entry.delete" msgstr "محذوف %s" -#: src/app/main/ui/workspace/sidebar/history.cljs:146 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.entry.modify" msgstr "معدل %s" -#: src/app/main/ui/workspace/sidebar/history.cljs:148 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.entry.move" msgstr "المكونات المعدلة" -#: src/app/main/ui/workspace/sidebar/history.cljs:111 msgid "workspace.undo.entry.multiple.circle" msgstr "دوائر" -#: src/app/main/ui/workspace/sidebar/history.cljs:112 msgid "workspace.undo.entry.multiple.color" msgstr "أصول اللون" -#: src/app/main/ui/workspace/sidebar/history.cljs:113 msgid "workspace.undo.entry.multiple.component" msgstr "عناصر" -#: src/app/main/ui/workspace/sidebar/history.cljs:114 msgid "workspace.undo.entry.multiple.curve" msgstr "منحنيات" -#: src/app/main/ui/workspace/sidebar/history.cljs:115 msgid "workspace.undo.entry.multiple.frame" msgstr "لوحة" -#: src/app/main/ui/workspace/sidebar/history.cljs:116 msgid "workspace.undo.entry.multiple.group" msgstr "مجموعات" -#: src/app/main/ui/workspace/sidebar/history.cljs:117 msgid "workspace.undo.entry.multiple.media" msgstr "الأصول الرسومية" -#: src/app/main/ui/workspace/sidebar/history.cljs:118 msgid "workspace.undo.entry.multiple.multiple" msgstr "أشياء" -#: src/app/main/ui/workspace/sidebar/history.cljs:119 msgid "workspace.undo.entry.multiple.page" msgstr "صفحات" -#: src/app/main/ui/workspace/sidebar/history.cljs:120 msgid "workspace.undo.entry.multiple.path" msgstr "مسارات" -#: src/app/main/ui/workspace/sidebar/history.cljs:121 msgid "workspace.undo.entry.multiple.rect" msgstr "مستطيلات" -#: src/app/main/ui/workspace/sidebar/history.cljs:122 msgid "workspace.undo.entry.multiple.shape" msgstr "أشكال" -#: src/app/main/ui/workspace/sidebar/history.cljs:123 msgid "workspace.undo.entry.multiple.text" msgstr "نصوص" -#: src/app/main/ui/workspace/sidebar/history.cljs:124 msgid "workspace.undo.entry.multiple.typography" msgstr "أصول الكتابة" -#: src/app/main/ui/workspace/sidebar/history.cljs:145 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.entry.new" msgstr "جديد %s" -#: src/app/main/ui/workspace/sidebar/history.cljs:125 msgid "workspace.undo.entry.single.circle" msgstr "دائرة" -#: src/app/main/ui/workspace/sidebar/history.cljs:126 msgid "workspace.undo.entry.single.color" msgstr "أصل اللون" -#: src/app/main/ui/workspace/sidebar/history.cljs:127 msgid "workspace.undo.entry.single.component" msgstr "component" -#: src/app/main/ui/workspace/sidebar/history.cljs:128 msgid "workspace.undo.entry.single.curve" msgstr "منحنى" -#: src/app/main/ui/workspace/sidebar/history.cljs:129 msgid "workspace.undo.entry.single.frame" msgstr "لوحة" -#: src/app/main/ui/workspace/sidebar/history.cljs:130 msgid "workspace.undo.entry.single.group" msgstr "مجموعة" -#: src/app/main/ui/workspace/sidebar/history.cljs:131 msgid "workspace.undo.entry.single.image" msgstr "صورة" -#: src/app/main/ui/workspace/sidebar/history.cljs:132 msgid "workspace.undo.entry.single.media" msgstr "أصل الرسومات" -#: src/app/main/ui/workspace/sidebar/history.cljs:133 msgid "workspace.undo.entry.single.multiple" msgstr "عنصر" -#: src/app/main/ui/workspace/sidebar/history.cljs:134 msgid "workspace.undo.entry.single.page" msgstr "صفحة" -#: src/app/main/ui/workspace/sidebar/history.cljs:135 msgid "workspace.undo.entry.single.path" msgstr "مسار" -#: src/app/main/ui/workspace/sidebar/history.cljs:136 msgid "workspace.undo.entry.single.rect" msgstr "مستطيل" -#: src/app/main/ui/workspace/sidebar/history.cljs:137 msgid "workspace.undo.entry.single.shape" msgstr "شكل" -#: src/app/main/ui/workspace/sidebar/history.cljs:138 msgid "workspace.undo.entry.single.text" msgstr "نص" -#: src/app/main/ui/workspace/sidebar/history.cljs:139 msgid "workspace.undo.entry.single.typography" msgstr "أصل الكتابة" -#: src/app/main/ui/workspace/sidebar/history.cljs:149 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.entry.unknown" msgstr "انتهت العملية %s" -#: src/app/main/ui/workspace/sidebar/history.cljs:335 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.title" msgstr "تاريخ" -#: src/app/main/data/workspace/libraries.cljs:1094 +#: src/app/main/data/workspace/libraries.cljs msgid "workspace.updates.dismiss" msgstr "رفض" -#: src/app/main/data/workspace/libraries.cljs:1092 +#: src/app/main/data/workspace/libraries.cljs msgid "workspace.updates.more-info" msgstr "مزيد من المعلومات" -#: src/app/main/data/workspace/libraries.cljs:1090 +#: src/app/main/data/workspace/libraries.cljs msgid "workspace.updates.there-are-updates" msgstr "يوجد تحديثات في المكتبة المشتركة" -#: src/app/main/data/workspace/libraries.cljs:1097 +#: src/app/main/data/workspace/libraries.cljs msgid "workspace.updates.update" msgstr "تحديث" -#, unused msgid "workspace.viewport.click-to-close-path" msgstr "انقر لتغلق المسار" + +msgid "workspace.top-bar.read-only.done" +msgstr "تم" + +#: src/app/main/ui/settings/access-tokens.cljs +msgid "dashboard.access-tokens.copied-success" +msgstr "الرمز منسوخ" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.login-tagline" +msgstr "Penpot هو أداة تصميم مجانية ومفتوحة المصدر للتعاون بين التصميم والبرمجة" + +#: src/app/main/ui/settings/team-form.cljs, src/app/main/ui/auth/register.cljs, src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/onboarding/team_choice.cljs, src/app/main/ui/settings/access_tokens.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/settings/profile.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +msgid "auth.name.not-all-space" +msgstr "يجب أن يحتوي الاسم على بعض الأحرف غير الفراغات." + +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/onboarding/team_choice.cljs, src/app/main/ui/settings/access_tokens.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/settings/profile.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +msgid "auth.name.too-long" +msgstr "يجب أن يحتوي الاسم على 250 حرفًا كحد أقصى." + +#: src/app/main/ui/settings/access-tokens.cljs +msgid "dashboard.access-tokens.empty.add-one" +msgstr "اضغط على الزر \"إنشاء رمز جديد\" لإنشاء واحد." + +#: src/app/main/ui/onboarding/questions.cljs +msgid "branding-illustrations-marketing-pieces" +msgstr "...علامة تجارية، رسوم توضيحية، قطع تسويقية، إلخ." + +#: src/app/main/ui/auth/login.cljs +msgid "auth.login-account-title" +msgstr "قم بتسجيل الدخول إلى حسابي" + +#: src/app/main/ui/settings/access-tokens.cljs +msgid "dashboard.access-tokens.create" +msgstr "قم بإنشاء رمز جديد" + +#: src/app/main/ui/settings/access-tokens.cljs +msgid "dashboard.access-tokens.create.success" +msgstr "تم إنشاء رمز الوصول بنجاح." diff --git a/frontend/translations/bn.po b/frontend/translations/bn.po index c2c068ce40..e6303cdcc6 100644 --- a/frontend/translations/bn.po +++ b/frontend/translations/bn.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "PO-Revision-Date: 2024-06-17 08:07+0000\n" "Last-Translator: Anonymous \n" -"Language-Team: Bengali " -"\n" +"Language-Team: Bengali \n" "Language: bn\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" @@ -11,70 +11,71 @@ msgstr "" "Plural-Forms: nplurals=2; plural=n > 1;\n" "X-Generator: Weblate 5.6-dev\n" -#: src/app/main/ui/auth/register.cljs:151, src/app/main/ui/viewer/login.cljs:104 +#: src/app/main/ui/auth/register.cljs msgid "auth.already-have-account" msgstr "অ্যাকাউন্ট আছে?" -#: src/app/main/ui/auth/register.cljs:299 +#: src/app/main/ui/auth/register.cljs msgid "auth.check-your-email" msgstr "" "আপনার ইমেইল চেক করুন এবং লিংকে ক্লিক করে ভেরিফাই করে Penpot ব্যবহার শুরু " "করুন।" -#: src/app/main/ui/auth/recovery.cljs:78 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.confirm-password" msgstr "পাসওয়ার্ড নিশ্চিত করুন" -#: src/app/main/ui/auth/register.cljs:163 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.create-demo-account" msgstr "ডেমো অ্যাকাউন্ট তৈরী করুন" -#: src/app/main/ui/auth/login.cljs:43 +#: src/app/main/ui/auth/register.cljs msgid "auth.demo-warning" msgstr "" "এটি একটি ডেমো সার্ভিস। প্রয়োজনীয় কোনো কাজে ব্যবহার করবেন না। কিছু সময় পর " "প্রজেক্টগুলো মুছে ফেলা হবে।" -#: src/app/main/ui/auth/login.cljs:189, src/app/main/ui/viewer/login.cljs:90 +#: src/app/main/ui/auth/login.cljs msgid "auth.forgot-password" msgstr "পাসওয়ার্ড ভুলে গেছেন?" -#: src/app/main/ui/auth/register.cljs:254 +#: src/app/main/ui/auth/register.cljs msgid "auth.fullname" msgstr "পুরো নাম" -#: src/app/main/ui/auth/register.cljs:155, src/app/main/ui/viewer/login.cljs:107 +#: src/app/main/ui/auth/register.cljs +#, fuzzy msgid "auth.login-here" msgstr "এখানে লগিন করুন" -#: src/app/main/ui/auth/login.cljs:195 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-submit" msgstr "লগিন" -#: src/app/main/ui/auth/login.cljs:222 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-github-submit" msgstr "গিটহাব" -#: src/app/main/ui/auth/login.cljs:228 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-gitlab-submit" msgstr "গিটল্যাব" -#: src/app/main/ui/auth/login.cljs:216 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-google-submit" msgstr "গুগল" -#: src/app/main/ui/auth/login.cljs:201 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-ldap-submit" msgstr "LDAP" -#: src/app/main/ui/auth/login.cljs:234, src/app/main/ui/auth/login.cljs:255 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-oidc-submit" msgstr "ওপেনআইডি" -#: src/app/main/ui/auth/recovery.cljs:71 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.new-password" msgstr "নতুন পাসওয়ার্ড টাইপ করুন" -#: src/app/main/ui/auth/recovery.cljs:42 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.notifications.invalid-token-error" msgstr "রিকভারি টোকেন সঠিক নয়।" diff --git a/frontend/translations/ca.po b/frontend/translations/ca.po index 0878dd678e..b803c7206c 100644 --- a/frontend/translations/ca.po +++ b/frontend/translations/ca.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "PO-Revision-Date: 2024-06-17 08:07+0000\n" "Last-Translator: Anonymous \n" -"Language-Team: Catalan " -"\n" +"Language-Team: Catalan \n" "Language: ca\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" @@ -11,430 +11,385 @@ msgstr "" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 5.6-dev\n" -#: src/app/main/ui/auth/register.cljs:151, src/app/main/ui/viewer/login.cljs:104 +#: src/app/main/ui/auth/register.cljs msgid "auth.already-have-account" msgstr "Ja teniu un compte?" -#: src/app/main/ui/auth/register.cljs:299 +#: src/app/main/ui/auth/register.cljs msgid "auth.check-your-email" msgstr "" "Reviseu el correu i feu clic en l'enllaç per a verificar i començar a " "utilitzar el Penpot." -#: src/app/main/ui/auth/recovery.cljs:78 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.confirm-password" msgstr "Confirmeu la contrasenya" -#: src/app/main/ui/auth/register.cljs:163 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.create-demo-account" msgstr "Creeu un compte de prova" #: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs -#, unused msgid "auth.create-demo-profile" msgstr "Ho voleu provar?" -#: src/app/main/ui/auth/login.cljs:43 +#: src/app/main/ui/auth/register.cljs msgid "auth.demo-warning" msgstr "" "Aquest és un servei de PROVA. NO L'UTILITZEU en treballs reals, ja que els " "projectes s'eliminaran periòdicament." -#: src/app/main/ui/auth/login.cljs:189, src/app/main/ui/viewer/login.cljs:90 +#: src/app/main/ui/auth/login.cljs msgid "auth.forgot-password" msgstr "Heu oblidat la contrasenya?" -#: src/app/main/ui/auth/register.cljs:254 +#: src/app/main/ui/auth/register.cljs msgid "auth.fullname" msgstr "Nom complet" -#: src/app/main/ui/auth/register.cljs:155, src/app/main/ui/viewer/login.cljs:107 +#: src/app/main/ui/auth/register.cljs +#, fuzzy msgid "auth.login-here" msgstr "Inicieu la sessió aquí" -#: src/app/main/ui/auth/login.cljs:195 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-submit" msgstr "Entra" -#: src/app/main/ui/auth/login.cljs:222 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.login-with-github-submit" msgstr "GitHub" -#: src/app/main/ui/auth/login.cljs:228 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.login-with-gitlab-submit" msgstr "GitLab" -#: src/app/main/ui/auth/login.cljs:216 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-google-submit" msgstr "Google" -#: src/app/main/ui/auth/login.cljs:201 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-ldap-submit" msgstr "LDAP" -#: src/app/main/ui/auth/login.cljs:234, src/app/main/ui/auth/login.cljs:255 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-oidc-submit" msgstr "OpenID" -#: src/app/main/ui/auth/recovery.cljs:71 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.new-password" msgstr "Escriviu una contrasenya nova" -#: src/app/main/ui/auth/recovery.cljs:42 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.notifications.invalid-token-error" msgstr "El codi de recuperació no és vàlid." -#: src/app/main/ui/auth/recovery.cljs:46 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.notifications.password-changed-successfully" msgstr "La contrasenya s'ha canviat correctament" -#: src/app/main/ui/auth/recovery_request.cljs:57 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.notifications.profile-not-verified" msgstr "El perfil encara no s'ha verificat, feu-ho abans de continuar." -#: src/app/main/ui/auth/recovery_request.cljs:40 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.notifications.recovery-token-sent" msgstr "S'ha enviat un enllaç de recuperació de contrasenya al vostre correu." -#: src/app/main/ui/auth/verify_token.cljs:47 +#: src/app/main/ui/auth/verify_token.cljs msgid "auth.notifications.team-invitation-accepted" msgstr "Us heu unit a l'equip correctament" -#: src/app/main/ui/auth/login.cljs:179, src/app/main/ui/auth/register.cljs:115 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.password" msgstr "Contrasenya" -#: src/app/main/ui/auth/register.cljs:114 +#: src/app/main/ui/auth/register.cljs msgid "auth.password-length-hint" msgstr "Com a mínim 8 caràcters" -#: src/app/main/ui/auth.cljs:41 msgid "auth.privacy-policy" msgstr "Política de privadesa" -#: src/app/main/ui/auth/recovery_request.cljs:88 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-submit" msgstr "Recupera la contrasenya" -#: src/app/main/ui/auth/recovery_request.cljs:101 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-subtitle" msgstr "Rebreu un correu electrònic amb instruccions" -#: src/app/main/ui/auth/recovery_request.cljs:100 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-title" msgstr "Heu oblidat la contrasenya?" -#: src/app/main/ui/auth/recovery.cljs:82 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.recovery-submit" msgstr "Canvieu la contrasenya" -#: src/app/main/ui/auth/login.cljs:298, src/app/main/ui/viewer/login.cljs:93 +#: src/app/main/ui/auth/login.cljs msgid "auth.register" msgstr "No teniu un compte?" -#: src/app/main/ui/auth/login.cljs:302, src/app/main/ui/auth/register.cljs:121, src/app/main/ui/auth/register.cljs:263, src/app/main/ui/viewer/login.cljs:97 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.register-submit" msgstr "Creeu un compte" -#: src/app/main/ui/auth/register.cljs:140 +#: src/app/main/ui/auth/register.cljs msgid "auth.register-title" msgstr "Crea un compte" #: src/app/main/ui/auth.cljs -#, unused msgid "auth.sidebar-tagline" msgstr "La solució de codi obert per a dissenyar i prototipar." -#: src/app/main/ui/auth.cljs:33, src/app/main/ui/dashboard/sidebar.cljs:1022, src/app/main/ui/workspace/main_menu.cljs:150 msgid "auth.terms-of-service" msgstr "Condicions del servei" -#: src/app/main/ui/auth/register.cljs:297 +#: src/app/main/ui/auth/register.cljs msgid "auth.verification-email-sent" msgstr "S'ha enviat un correu de verificació a" -#: src/app/main/ui/workspace/libraries.cljs:228 msgid "common.publish" msgstr "Publica" -#: src/app/main/ui/viewer/share_link.cljs:304, src/app/main/ui/viewer/share_link.cljs:314 msgid "common.share-link.all-users" msgstr "Tots els usuaris de Penpot" -#: src/app/main/ui/viewer/share_link.cljs:198 msgid "common.share-link.confirm-deletion-link-description" msgstr "" "Segur que voleu eliminar l'enllaç? Si ho feu, ja no estarà disponible per a " "ningú" -#: src/app/main/ui/viewer/share_link.cljs:259, src/app/main/ui/viewer/share_link.cljs:289 msgid "common.share-link.current-tag" msgstr "(actual)" -#: src/app/main/ui/viewer/share_link.cljs:207, src/app/main/ui/viewer/share_link.cljs:214 msgid "common.share-link.destroy-link" msgstr "Destrueix l'enllaç" -#: src/app/main/ui/viewer/share_link.cljs:221 msgid "common.share-link.get-link" msgstr "Obtén l'enllaç" -#: src/app/main/ui/viewer/share_link.cljs:139 msgid "common.share-link.link-copied-success" msgstr "S'ha copiat l'enllaç correctament" -#: src/app/main/ui/viewer/share_link.cljs:231 msgid "common.share-link.manage-ops" msgstr "Gestió de permisos" -#: src/app/main/ui/viewer/share_link.cljs:277 msgid "common.share-link.page-shared" msgid_plural "common.share-link.page-shared" msgstr[0] "1 pàgina compartida" msgstr[1] "%s pàgines compartides" -#: src/app/main/ui/viewer/share_link.cljs:298 msgid "common.share-link.permissions-can-comment" msgstr "Pot comentar" -#: src/app/main/ui/viewer/share_link.cljs:308 msgid "common.share-link.permissions-can-inspect" msgstr "Pot inspeccionar el codi" -#: src/app/main/ui/viewer/share_link.cljs:193 msgid "common.share-link.permissions-hint" msgstr "Qualsevol persona amb l'enllaç hi tindrà accés" -#: src/app/main/ui/viewer/share_link.cljs:241 msgid "common.share-link.permissions-pages" msgstr "Pàgines compartides" -#: src/app/main/ui/viewer/share_link.cljs:183 msgid "common.share-link.placeholder" msgstr "L'enllaç per a compartir apareixerà aquí" -#: src/app/main/ui/viewer/share_link.cljs:303, src/app/main/ui/viewer/share_link.cljs:313 msgid "common.share-link.team-members" msgstr "Només membres de l'equip" -#: src/app/main/ui/viewer/share_link.cljs:171 msgid "common.share-link.title" msgstr "Compartiu prototips" -#: src/app/main/ui/viewer/share_link.cljs:269 msgid "common.share-link.view-all" msgstr "Selecciona-ho tot" -#: src/app/main/ui/workspace/libraries.cljs:224 msgid "common.unpublish" msgstr "Despublica" -#: src/app/main/ui/dashboard/projects.cljs:85 +#: src/app/main/ui/dashboard/projects.cljs msgid "dasboard.team-hero.management" msgstr "Gestió de l'equip" -#: src/app/main/ui/dashboard/projects.cljs:84 +#: src/app/main/ui/dashboard/projects.cljs msgid "dasboard.team-hero.text" msgstr "" "El Penpot està pensat per a equips. Convida a membres i treballeu plegats " "en projectes i fitxers" -#: src/app/main/ui/dashboard/projects.cljs:82 +#: src/app/main/ui/dashboard/projects.cljs msgid "dasboard.team-hero.title" msgstr "Fes equip!" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.tutorial-hero.info" msgstr "" "Aprèn les bases del Penpot mentre et diverteixes amb aquest tutorial " "pràctic." #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.tutorial-hero.start" msgstr "Comença el tutorial" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.tutorial-hero.title" msgstr "Tutorial pràctic" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.walkthrough-hero.info" msgstr "Passeja't pel Penpot i coneix-ne les característiques principals." #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.walkthrough-hero.start" msgstr "Comença la visita" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.walkthrough-hero.title" msgstr "Passeig per la interfície" -#: src/app/main/ui/dashboard/file_menu.cljs:291, src/app/main/ui/workspace/main_menu.cljs:572 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.add-shared" msgstr "Afegeix a la biblioteca compartida" -#: src/app/main/ui/settings/profile.cljs:75 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.change-email" msgstr "Canvia el correu" -#: src/app/main/data/dashboard.cljs:762, src/app/main/data/dashboard.cljs:983 +#: src/app/main/data/dashboard.cljs, src/app/main/data/dashboard.cljs msgid "dashboard.copy-suffix" msgstr "(còpia)" -#: src/app/main/ui/dashboard/sidebar.cljs:338 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.create-new-team" msgstr "Crea un equip nou" -#: src/app/main/ui/components/context_menu_a11y.cljs:256, src/app/main/ui/dashboard/sidebar.cljs:646 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.default-team-name" msgstr "El meu Penpot" -#: src/app/main/ui/dashboard/sidebar.cljs:571 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.delete-team" msgstr "Elimina l'equip" -#: src/app/main/ui/dashboard/file_menu.cljs:296, src/app/main/ui/workspace/main_menu.cljs:589 msgid "dashboard.download-binary-file" msgstr "Baixa el fitxer Penpot (.penpot)" -#: src/app/main/ui/dashboard/file_menu.cljs:300, src/app/main/ui/workspace/main_menu.cljs:597 msgid "dashboard.download-standard-file" msgstr "Baixa fitxer estàndard (.svg + .json)" -#: src/app/main/ui/dashboard/file_menu.cljs:276, src/app/main/ui/dashboard/project_menu.cljs:90 +#: src/app/main/ui/dashboard/project_menu.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.duplicate" msgstr "Duplica" -#: src/app/main/ui/dashboard/file_menu.cljs:240 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.duplicate-multi" msgstr "Duplica %s fitxers" -#: src/app/main/ui/dashboard/placeholder.cljs:32 -#, markdown +#: src/app/main/ui/dashboard/grid.cljs msgid "dashboard.empty-placeholder-drafts" msgstr "" "Encara no hi ha fitxers. Si voleu provar algunes plantilles, podeu anar a " "la secció [Biblioteques i " "plantilles](https://penpot.app/libraries-templates)" -#: src/app/main/ui/dashboard/file_menu.cljs:249 msgid "dashboard.export-binary-multi" msgstr "Baixa %s fitxers Penpot (.penpot)" -#: src/app/main/ui/workspace/main_menu.cljs:605 msgid "dashboard.export-frames" msgstr "Exporta els taulers a PDF" -#: src/app/main/ui/export.cljs:201 +#: src/app/main/ui/export.cljs msgid "dashboard.export-frames.title" msgstr "Exporta a PDF" -#, unused msgid "dashboard.export-multi" msgstr "Exporta %s fitxers de Penpot" -#: src/app/main/ui/export.cljs:109 +#: src/app/main/ui/export.cljs msgid "dashboard.export-multiple.selected" msgstr "%s de %s elements seleccionats" -#: src/app/main/ui/workspace/main_menu.cljs:578 +#: src/app/main/ui/workspace/header.cljs msgid "dashboard.export-shapes" msgstr "Exporta" -#: src/app/main/ui/export.cljs:180 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.how-to" msgstr "" "Podeu afegir una configuració d'exportació a elements des de les propietats " "del disseny (a sota de la barra de la dreta)." -#: src/app/main/ui/export.cljs:184 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.how-to-link" msgstr "Informació sobre com establir exportacions a Penpot." -#: src/app/main/ui/export.cljs:179 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.no-elements" msgstr "No hi ha elements amb configuració d'exportació." -#: src/app/main/ui/export.cljs:190 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.title" msgstr "Selecció d'exportació" -#: src/app/main/ui/dashboard/file_menu.cljs:252 msgid "dashboard.export-standard-multi" msgstr "Baixa %s fitxers estàndard (.svg + .json)" -#: src/app/main/ui/export.cljs:427 msgid "dashboard.export.detail" msgstr "* Pot incloure components, gràfics, colors i/o tipografies." -#: src/app/main/ui/export.cljs:426 msgid "dashboard.export.explain" msgstr "" "Un o més fitxers que voleu exportar utilitzen biblioteques compartides. Què " "voleu fer amb els seus recursos*?" -#: src/app/main/ui/export.cljs:435 msgid "dashboard.export.options.all.message" msgstr "" "els fitxers amb biblioteques compartides s’inclouran a l’exportació, " "mantenint la vinculació." -#: src/app/main/ui/export.cljs:436 msgid "dashboard.export.options.all.title" msgstr "Exporta les biblioteques compartides" -#: src/app/main/ui/export.cljs:437 msgid "dashboard.export.options.detach.message" msgstr "" "Les biblioteques compartides no s'inclouran en l'exportació i no s'afegiran " "recursos a la biblioteca. " -#: src/app/main/ui/export.cljs:438 msgid "dashboard.export.options.detach.title" msgstr "Tracta els recursos de la biblioteca compartida com a objectes bàsics" -#: src/app/main/ui/export.cljs:439 msgid "dashboard.export.options.merge.message" msgstr "" "El fitxer s'exportarà amb tots els recursos externs fusionats a la " "biblioteca de fitxers." -#: src/app/main/ui/export.cljs:440 msgid "dashboard.export.options.merge.title" msgstr "" "Inclou els recursos de la biblioteca compartida a les biblioteques del " "fitxer" -#: src/app/main/ui/export.cljs:418 msgid "dashboard.export.title" msgstr "Exporta els fitxers" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:309 msgid "dashboard.fonts.deleted-placeholder" msgstr "S'ha eliminat la tipografia" -#: src/app/main/ui/dashboard/fonts.cljs:206 +#: src/app/main/ui/dashboard/fonts.cljs msgid "dashboard.fonts.dismiss-all" msgstr "Descarta-ho tot" -#: src/app/main/ui/dashboard/fonts.cljs:436 msgid "dashboard.fonts.empty-placeholder" msgstr "Encara no teniu cap tipografia personalitzada instal·lada." -#: src/app/main/ui/dashboard/fonts.cljs:194 +#: src/app/main/ui/dashboard/fonts.cljs msgid "dashboard.fonts.fonts-added" msgid_plural "dashboard.fonts.fonts-added" msgstr[0] "S'ha afegit 1 tipografia" msgstr[1] "S'han afegit %s tipografies" -#: src/app/main/ui/dashboard/fonts.cljs:170 -#, markdown msgid "dashboard.fonts.hero-text1" msgstr "" "Les tipografies web que pengeu aquí s'afegiran a la llista de famílies " @@ -443,8 +398,6 @@ msgstr "" "sola família tipogràfica**. Podeu pujar tipografies en aquests formats: " "**TTF, OTF i WOFF** (només en cal un)." -#: src/app/main/ui/dashboard/fonts.cljs:182 -#, markdown msgid "dashboard.fonts.hero-text2" msgstr "" "Només podeu pujar tipografies de la vostra propietat o de les que tingueu " @@ -453,3991 +406,3705 @@ msgstr "" "Penpot](https://penpot.app/terms.html). També podeu llegir sobre les " "[llicències de les tipografies](https://www.typography.com/faq)." -#: src/app/main/ui/dashboard/fonts.cljs:202 +#: src/app/main/ui/dashboard/fonts.cljs msgid "dashboard.fonts.upload-all" msgstr "Puja-ho tot" -#: src/app/main/ui/dashboard/import.cljs:472, src/app/main/ui/dashboard/project_menu.cljs:108 msgid "dashboard.import" msgstr "Importa fitxers de Penpot" -#: src/app/main/ui/dashboard/import.cljs:304, src/app/worker/import.cljs:753, src/app/worker/import.cljs:755 msgid "dashboard.import.analyze-error" msgstr "Vaja! No s'ha pogut importar aquest fitxer" -#: src/app/main/ui/dashboard/import.cljs:308 msgid "dashboard.import.import-error" msgstr "S'ha produït un problema en importar el fitxer i no s'ha importat." -#: src/app/main/ui/dashboard/import.cljs:493 msgid "dashboard.import.import-message" msgstr "S'han importat %s fitxers correctament." -#: src/app/main/ui/dashboard/import.cljs:481, src/app/main/ui/dashboard/import.cljs:488 msgid "dashboard.import.import-warning" msgstr "Alguns fitxers contenen objectes no vàlids que s'han eliminat." -#: src/app/main/ui/dashboard/import.cljs:144 msgid "dashboard.import.progress.process-colors" msgstr "S'estan carregant els colors" -#: src/app/main/ui/dashboard/import.cljs:153 msgid "dashboard.import.progress.process-components" msgstr "S'estan carregant els components" -#: src/app/main/ui/dashboard/import.cljs:150 msgid "dashboard.import.progress.process-media" msgstr "S'està carregant la multimèdia" -#: src/app/main/ui/dashboard/import.cljs:141 msgid "dashboard.import.progress.process-page" msgstr "S'està carregant la pàgina: %s" -#: src/app/main/ui/dashboard/import.cljs:147 msgid "dashboard.import.progress.process-typographies" msgstr "S'estan processant les tipografies" -#: src/app/main/ui/dashboard/import.cljs:135 msgid "dashboard.import.progress.upload-data" msgstr "S'estan penjant les dades al servidor (%s/%s)" -#: src/app/main/ui/dashboard/import.cljs:138 msgid "dashboard.import.progress.upload-media" msgstr "S'està pujant el fitxer: %s" -#: src/app/main/ui/dashboard/team.cljs:109 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.invite-profile" msgstr "Convida a l'equip" -#: src/app/main/ui/dashboard/sidebar.cljs:547, src/app/main/ui/dashboard/sidebar.cljs:556, src/app/main/ui/dashboard/sidebar.cljs:563, src/app/main/ui/dashboard/team.cljs:312 +#: src/app/main/ui/dashboard/sidebar.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.leave-team" msgstr "Abandona l'equip" -#: src/app/main/ui/dashboard/templates.cljs:88, src/app/main/ui/dashboard/templates.cljs:163 msgid "dashboard.libraries-and-templates" msgstr "Biblioteques i plantilles" -#: src/app/main/ui/dashboard/templates.cljs:164 msgid "dashboard.libraries-and-templates.explore" msgstr "Explora'n més i coneix com contribuir-hi" -#: src/app/main/ui/dashboard/import.cljs:365 msgid "dashboard.libraries-and-templates.import-error" msgstr "" "Hi ha hagut un problema en importar la plantilla. La plantilla no s'ha " "importat." -#: src/app/main/ui/dashboard/libraries.cljs:53 +#: src/app/main/ui/dashboard/libraries.cljs msgid "dashboard.libraries-title" msgstr "Biblioteques compartides" -#: src/app/main/ui/dashboard/placeholder.cljs:45 +#: src/app/main/ui/dashboard/grid.cljs msgid "dashboard.loading-files" msgstr "S'estan carregant els fitxers…" -#: src/app/main/ui/dashboard/fonts.cljs:431 msgid "dashboard.loading-fonts" msgstr "s'estan carregant les tipografies…" -#: src/app/main/ui/dashboard/file_menu.cljs:281, src/app/main/ui/dashboard/project_menu.cljs:100 +#: src/app/main/ui/dashboard/project_menu.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.move-to" msgstr "Mou a" -#: src/app/main/ui/dashboard/file_menu.cljs:245 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.move-to-multi" msgstr "Mou %s fitxers a" -#: src/app/main/ui/dashboard/file_menu.cljs:226 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.move-to-other-team" msgstr "Mou a un altre equip" -#: src/app/main/ui/dashboard/files.cljs:105, src/app/main/ui/dashboard/projects.cljs:252, src/app/main/ui/dashboard/projects.cljs:253 +#: src/app/main/ui/dashboard/projects.cljs, +#: src/app/main/ui/dashboard/files.cljs msgid "dashboard.new-file" msgstr "+ Fitxer nou" -#: src/app/main/data/dashboard.cljs:958, src/app/main/data/dashboard.cljs:1181 +#: src/app/main/data/dashboard.cljs msgid "dashboard.new-file-prefix" msgstr "Fitxer nou" -#: src/app/main/ui/dashboard/projects.cljs:55 +#: src/app/main/ui/dashboard/projects.cljs msgid "dashboard.new-project" msgstr "+ Projecte nou" -#: src/app/main/data/dashboard.cljs:726, src/app/main/data/dashboard.cljs:1184 +#: src/app/main/data/dashboard.cljs msgid "dashboard.new-project-prefix" msgstr "Projecte nou" -#: src/app/main/ui/dashboard/search.cljs:60 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.no-matches-for" msgstr "No s'ha trobat cap coincidència amb “%s“" -#: src/app/main/ui/dashboard/sidebar.cljs:827 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.no-projects-placeholder" msgstr "Els projectes fixats apareixeran aquí" -#: src/app/main/ui/auth/verify_token.cljs:33 +#: src/app/main/ui/auth/verify_token.cljs msgid "dashboard.notifications.email-changed-successfully" msgstr "S'ha actualitzat l'adreça de correu" -#: src/app/main/ui/auth/verify_token.cljs:27 +#: src/app/main/ui/auth/verify_token.cljs msgid "dashboard.notifications.email-verified-successfully" msgstr "S'ha verificat l'adreça de correu" -#: src/app/main/ui/settings/password.cljs:37 +#: src/app/main/ui/settings/password.cljs msgid "dashboard.notifications.password-saved" msgstr "La contrasenya s'ha desat correctament!" -#: src/app/main/ui/dashboard/team.cljs:1081 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.num-of-members" msgstr "%s membres" -#: src/app/main/ui/dashboard/file_menu.cljs:267 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.open-in-new-tab" msgstr "Obre el fitxer en una pestanya nova" -#: src/app/main/ui/dashboard/files.cljs:117, src/app/main/ui/dashboard/projects.cljs:260, src/app/main/ui/dashboard/projects.cljs:261 msgid "dashboard.options" msgstr "Opcions" -#: src/app/main/ui/settings/password.cljs:106, src/app/main/ui/settings/password.cljs:119 +#: src/app/main/ui/settings/password.cljs msgid "dashboard.password-change" msgstr "Canvia la contrasenya" -#: src/app/main/ui/dashboard/pin_button.cljs:24, src/app/main/ui/dashboard/project_menu.cljs:95 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.pin-unpin" msgstr "Fixa/Deixa de fixar" -#: src/app/main/ui/dashboard/projects.cljs:51 +#: src/app/main/ui/dashboard/projects.cljs msgid "dashboard.projects-title" msgstr "Projectes" -#: src/app/main/ui/settings/profile.cljs:86 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.remove-account" msgstr "Voleu eliminar el vostre compte?" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.remove-shared" msgstr "Elimina de les biblioteques compartides" -#: src/app/main/ui/settings/profile.cljs:78 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.save-settings" msgstr "Desa la configuració" -#: src/app/main/ui/dashboard/sidebar.cljs:246, src/app/main/ui/dashboard/sidebar.cljs:247 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.search-placeholder" msgstr "Cerca…" -#: src/app/main/ui/dashboard/search.cljs:55 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.searching-for" msgstr "S'està cercant “%s“…" -#: src/app/main/ui/settings/options.cljs:56 +#: src/app/main/ui/settings/options.cljs msgid "dashboard.select-ui-language" msgstr "Selecciona la llengua de la interfície" -#: src/app/main/ui/settings/options.cljs:63 +#: src/app/main/ui/settings/options.cljs msgid "dashboard.select-ui-theme" msgstr "Selecciona un tema" -#: src/app/main/ui/dashboard/projects.cljs:282 +#: src/app/main/ui/dashboard/grid.cljs msgid "dashboard.show-all-files" msgstr "Mostra tots els fitxers" -#: src/app/main/ui/dashboard/file_menu.cljs:96 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-delete-file" msgstr "S'ha eliminat el fitxer" -#: src/app/main/ui/dashboard/project_menu.cljs:59 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.success-delete-project" msgstr "S'ha eliminat el projecte" -#: src/app/main/ui/dashboard/file_menu.cljs:91 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-duplicate-file" msgstr "S'ha duplicat el fitxer" -#: src/app/main/ui/dashboard/project_menu.cljs:33 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.success-duplicate-project" msgstr "S'ha eliminat el projecte" -#: src/app/main/ui/dashboard/file_menu.cljs:130, src/app/main/ui/dashboard/grid.cljs:558, src/app/main/ui/dashboard/sidebar.cljs:152 +#: src/app/main/ui/dashboard/grid.cljs, src/app/main/ui/dashboard/sidebar.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-move-file" msgstr "S'ha mogut el fitxer" -#: src/app/main/ui/dashboard/file_menu.cljs:129 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-move-files" msgstr "S'han mogut els fitxers" -#: src/app/main/ui/dashboard/project_menu.cljs:54 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.success-move-project" msgstr "S'ha mogut el projecte" -#: src/app/main/ui/dashboard/team.cljs:1052 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.team-info" msgstr "Informació de l'equip" -#: src/app/main/ui/dashboard/team.cljs:1070 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.team-members" msgstr "Membres de l'equip" -#: src/app/main/ui/dashboard/team.cljs:1085 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.team-projects" msgstr "Projectes de l'equip" -#: src/app/main/ui/settings/options.cljs:61 +#: src/app/main/ui/settings/options.cljs msgid "dashboard.theme-change" msgstr "Tema de la interfície" -#: src/app/main/ui/dashboard/search.cljs:42 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.title-search" msgstr "Resultats de la cerca" -#: src/app/main/ui/dashboard/search.cljs:50 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.type-something" msgstr "Escriviu per cercar resultats" -#: src/app/main/ui/dashboard/file_menu.cljs:287, src/app/main/ui/workspace/main_menu.cljs:566 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.unpublish-shared" msgstr "Despublica la biblioteca" -#: src/app/main/ui/settings/options.cljs:71 +#: src/app/main/ui/settings/profile.cljs, +#: src/app/main/ui/settings/password.cljs, +#: src/app/main/ui/settings/options.cljs msgid "dashboard.update-settings" msgstr "Actualitza la configuració" -#: src/app/main/ui/settings.cljs:31 +#: src/app/main/ui/settings.cljs msgid "dashboard.your-account-title" msgstr "El meu compte" -#: src/app/main/ui/settings/profile.cljs:70 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.your-email" msgstr "Correu electrònic" -#: src/app/main/ui/settings/profile.cljs:62 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.your-name" msgstr "Nom" -#: src/app/main/ui/dashboard/file_menu.cljs:38, src/app/main/ui/dashboard/fonts.cljs:33, src/app/main/ui/dashboard/libraries.cljs:42, src/app/main/ui/dashboard/projects.cljs:318, src/app/main/ui/dashboard/search.cljs:30, src/app/main/ui/dashboard/sidebar.cljs:312, src/app/main/ui/dashboard/team.cljs:495, src/app/main/ui/dashboard/team.cljs:729, src/app/main/ui/dashboard/team.cljs:991, src/app/main/ui/dashboard/team.cljs:1038 +#: src/app/main/ui/dashboard/search.cljs, src/app/main/ui/dashboard/team.cljs, +#: src/app/main/ui/dashboard/libraries.cljs, +#: src/app/main/ui/dashboard/projects.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.your-penpot" msgstr "El meu Penpot" -#: src/app/main/ui/alert.cljs:32 +#: src/app/main/ui/alert.cljs msgid "ds.alert-ok" msgstr "D'acord" -#: src/app/main/ui/alert.cljs:31, src/app/main/ui/alert.cljs:34 +#: src/app/main/ui/alert.cljs msgid "ds.alert-title" msgstr "Atenció" -#: src/app/main/ui/confirm.cljs:83 +#: src/app/main/ui/confirm.cljs msgid "ds.component-subtitle" msgstr "Components a actualitzar:" -#: src/app/main/ui/confirm.cljs:36, src/app/main/ui/workspace/plugins.cljs:246 +#: src/app/main/ui/confirm.cljs msgid "ds.confirm-cancel" msgstr "Cancel·la" -#: src/app/main/ui/confirm.cljs:37, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:141 +#: src/app/main/ui/confirm.cljs msgid "ds.confirm-ok" msgstr "D'acord" -#: src/app/main/ui/confirm.cljs:35, src/app/main/ui/confirm.cljs:39 +#: src/app/main/ui/confirm.cljs, src/app/main/ui/confirm.cljs msgid "ds.confirm-title" msgstr "N'esteu segur?" -#: src/app/main/ui/auth/login.cljs:62 +#: src/app/main/ui/auth/login.cljs msgid "errors.auth-provider-not-configured" msgstr "L'autenticació del proveïdor no està configurada." -#: src/app/main/errors.cljs:104 msgid "errors.auth.unable-to-login" msgstr "Sembla que no esteu autenticat o que la sessió ha caducat." -#: src/app/main/data/workspace.cljs:1598 +#: src/app/main/data/workspace.cljs msgid "errors.clipboard-not-implemented" msgstr "El vostre navegador no pot fer aquesta operació" -#: src/app/main/ui/auth/verify_token.cljs:82, src/app/main/ui/settings/change_email.cljs:46 +#: src/app/main/ui/auth/verify_token.cljs, +#: src/app/main/ui/settings/change_email.cljs msgid "errors.email-already-exists" msgstr "Aquest correu ja està en ús" -#: src/app/main/ui/auth/verify_token.cljs:87 +#: src/app/main/ui/auth/verify_token.cljs msgid "errors.email-already-validated" msgstr "Aquest correu ja està validat." -#: src/app/main/ui/settings/password.cljs:28 msgid "errors.email-as-password" msgstr "No podeu fer servir l'adreça de correu com a contrasenya" -#: src/app/main/ui/auth/recovery_request.cljs:63, src/app/main/ui/dashboard/team.cljs:578, src/app/main/ui/settings/change_email.cljs:54 +#: src/app/main/ui/auth/register.cljs, +#: src/app/main/ui/auth/recovery_request.cljs, +#: src/app/main/ui/settings/change_email.cljs, +#: src/app/main/ui/dashboard/team.cljs msgid "errors.email-has-permanent-bounces" msgstr "El correu «%s» té molts informes de retorn permanents." -#: src/app/main/ui/settings/change_email.cljs:35 +#: src/app/main/ui/settings/change_email.cljs msgid "errors.email-invalid-confirmation" msgstr "El correu de confirmació ha de coincidir" -#: src/app/main/ui/dashboard/team.cljs:170 msgid "errors.email-spam-or-permanent-bounces" msgstr "El correu «%s» s'ha marcat com a brossa o rebot permanent." -#: src/app/main/data/users.cljs:709, src/app/main/ui/auth/login.cljs:65, src/app/main/ui/auth/login.cljs:116, src/app/main/ui/auth/register.cljs:69, src/app/main/ui/auth/register.cljs:237, src/app/main/ui/auth/verify_token.cljs:92, src/app/main/ui/dashboard/team.cljs:173, src/app/main/ui/onboarding/team_choice.cljs:95, src/app/main/ui/settings/access_tokens.cljs:91, src/app/main/ui/settings/feedback.cljs:52 +#: src/app/main/ui/auth/verify_token.cljs, +#: src/app/main/ui/settings/feedback.cljs, src/app/main/ui/dashboard/team.cljs msgid "errors.generic" msgstr "Alguna cosa ha anat malament." -#: src/app/main/ui/components/color_input.cljs:57 +#: src/app/main/ui/components/color_input.cljs msgid "errors.invalid-color" msgstr "El color no és vàlid" -#: src/app/main/ui/static.cljs:43 +#: src/app/main/ui/auth/verify_token.cljs msgid "errors.invite-invalid" msgstr "Invitació no vàlida" -#: src/app/main/ui/static.cljs:44 msgid "errors.invite-invalid.info" msgstr "Aquesta invitació pot estar cancel·lada o caducada." -#: src/app/main/ui/auth/login.cljs:101 +#: src/app/main/ui/auth/login.cljs msgid "errors.ldap-disabled" msgstr "L'autenticació LDAP està inhabilitada." -#: src/app/main/data/workspace/media.cljs:184 +#: src/app/main/data/workspace/persistence.cljs msgid "errors.media-too-large" msgstr "La imatge és massa gran." -#: src/app/main/data/media.cljs:68, src/app/main/data/workspace/media.cljs:187 +#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs msgid "errors.media-type-mismatch" msgstr "" "Sembla que el contingut de la imatge no coincideix amb l'extensió del " "fitxer." -#: src/app/main/data/media.cljs:65, src/app/main/data/workspace/media.cljs:172, src/app/main/data/workspace/media.cljs:175, src/app/main/data/workspace/media.cljs:178, src/app/main/data/workspace/media.cljs:181 +#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs msgid "errors.media-type-not-allowed" msgstr "Sembla que la imatge no és vàlida." -#: src/app/main/ui/dashboard/team.cljs:574 +#: src/app/main/ui/dashboard/team.cljs msgid "errors.member-is-muted" msgstr "" "El perfil que estàs convidant té els missatges de correu silenciats (per " "informes de correu brossa o de retorns alts)." -#: src/app/main/ui/settings/password.cljs:61 +#: src/app/main/ui/settings/password.cljs msgid "errors.password-invalid-confirmation" msgstr "La contrasenya de confirmació ha de coincidir" -#: src/app/main/ui/settings/password.cljs:64 +#: src/app/main/ui/settings/password.cljs msgid "errors.password-too-short" msgstr "La contrasenya ha de tenir 8 caràcters com a mínim" -#: src/app/main/data/users.cljs:703, src/app/main/ui/auth/login.cljs:97, src/app/main/ui/auth/login.cljs:105 msgid "errors.profile-blocked" msgstr "El perfil està bloquejat" -#: src/app/main/ui/auth/recovery_request.cljs:60, src/app/main/ui/dashboard/team.cljs:164, src/app/main/ui/dashboard/team.cljs:570, src/app/main/ui/settings/change_email.cljs:50 +#: src/app/main/ui/auth/recovery_request.cljs, +#: src/app/main/ui/settings/change_email.cljs, +#: src/app/main/ui/dashboard/team.cljs msgid "errors.profile-is-muted" msgstr "" "El teu perfil té els missatges de correu silenciats (per informes de correu " "brossa o de retorn alts)." -#: src/app/main/data/users.cljs:701, src/app/main/ui/auth/register.cljs:60 +#: src/app/main/ui/auth/register.cljs msgid "errors.registration-disabled" msgstr "El registre està desactivat." -#: src/app/main/ui/dashboard/sidebar.cljs:365, src/app/main/ui/dashboard/team.cljs:359 msgid "errors.team-leave.insufficient-members" msgstr "" "No hi ha suficients membres com per a abandonar l'equip, potser voleu " "eliminar-lo." -#: src/app/main/ui/dashboard/sidebar.cljs:368, src/app/main/ui/dashboard/team.cljs:362 msgid "errors.team-leave.member-does-not-exists" msgstr "El membre que intenteu assignar no existeix." -#: src/app/main/ui/dashboard/sidebar.cljs:371, src/app/main/ui/dashboard/team.cljs:365 msgid "errors.team-leave.owner-cant-leave" msgstr "" "El propietari no pot abandonar l'equip, heu de reassignar el rol de " "propietat." -#: src/app/main/data/media.cljs:71 +#: src/app/main/data/media.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, +#: src/app/main/ui/inspect/exports.cljs msgid "errors.unexpected-error" msgstr "S'ha produït un error inesperat." -#: src/app/main/ui/auth/verify_token.cljs:60 +#: src/app/main/ui/auth/verify_token.cljs msgid "errors.unexpected-token" msgstr "Token desconegut" -#: src/app/main/ui/auth/login.cljs:109, src/app/main/ui/auth/login.cljs:113 +#: src/app/main/ui/auth/login.cljs msgid "errors.wrong-credentials" msgstr "El nom d'usuari o la contrasenya sembla incorrecte." -#: src/app/main/ui/settings/password.cljs:25 +#: src/app/main/ui/settings/password.cljs msgid "errors.wrong-old-password" msgstr "La contrasenya anterior no és correcta" -#: src/app/main/ui/settings/feedback.cljs:77 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.description" msgstr "Descripció" -#: src/app/main/ui/settings/feedback.cljs:95 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.discourse-go-to" msgstr "Ves al fòrum de Penpot" -#: src/app/main/ui/settings/feedback.cljs:89 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.discourse-subtitle1" msgstr "Ens encanta que sigueu aquí. Si necessiteu ajuda, cerqueu abans de publicar." -#: src/app/main/ui/settings/feedback.cljs:88 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.discourse-title" msgstr "Comunitat de Penpot" -#: src/app/main/ui/settings/feedback.cljs:72 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.subject" msgstr "Tema" -#: src/app/main/ui/settings/feedback.cljs:69 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.subtitle" msgstr "" "Descriviu la raó del correu electrònic, especificant si és una incidència, " "una idea o un dubte. Un membre del nostre equip respondrà tan aviat com " "sigui possible." -#: src/app/main/ui/settings/feedback.cljs:68 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.title" msgstr "Correu electrònic" -#: src/app/main/ui/settings/feedback.cljs:105 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.twitter-go-to" msgstr "Ves al X" -#: src/app/main/ui/settings/feedback.cljs:99 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.twitter-subtitle1" msgstr "Compte per a ajudar amb dubtes tècnics." -#: src/app/main/ui/settings/feedback.cljs:98 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.twitter-title" msgstr "Compte de X d'ajuda" -#: src/app/main/ui/settings/password.cljs:30 +#: src/app/main/ui/settings/password.cljs msgid "generic.error" msgstr "S'ha produït un error" -#: src/app/main/ui/viewer/inspect/attributes/blur.cljs:26 +#: src/app/main/ui/inspect/attributes/blur.cljs msgid "inspect.attributes.blur" msgstr "Difuminat" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:115 +#: src/app/main/ui/inspect/attributes/blur.cljs msgid "inspect.attributes.blur.value" msgstr "Valor" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:112 +#: src/app/main/ui/inspect/attributes/common.cljs msgid "inspect.attributes.color.hex" msgstr "HEX" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:114 +#: src/app/main/ui/inspect/attributes/common.cljs msgid "inspect.attributes.color.hsla" msgstr "HSLA" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:113 +#: src/app/main/ui/inspect/attributes/common.cljs msgid "inspect.attributes.color.rgba" msgstr "RGBA" -#: src/app/main/ui/viewer/inspect/attributes/fill.cljs:57 +#: src/app/main/ui/inspect/attributes/fill.cljs msgid "inspect.attributes.fill" msgstr "Emplenat" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:99, src/app/main/ui/viewer/inspect/attributes/image.cljs:51 +#: src/app/main/ui/inspect/attributes/image.cljs msgid "inspect.attributes.image.download" msgstr "Baixa la imatge original" -#: src/app/main/ui/viewer/inspect/attributes/image.cljs:39 +#: src/app/main/ui/inspect/attributes/image.cljs msgid "inspect.attributes.image.height" msgstr "Alçada" -#: src/app/main/ui/viewer/inspect/attributes/image.cljs:32 +#: src/app/main/ui/inspect/attributes/image.cljs msgid "inspect.attributes.image.width" msgstr "Amplada" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout" msgstr "Disposició" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.height" msgstr "Alçada" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.left" msgstr "Esquerra" -#: src/app/main/ui/inspect/attributes/layout.cljs, src/app/main/ui/inspect/attributes/layout.cljs -#, unused +#: src/app/main/ui/inspect/attributes/layout.cljs, +#: src/app/main/ui/inspect/attributes/layout.cljs msgid "inspect.attributes.layout.radius" msgstr "Radi" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.rotation" msgstr "Rotació" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.top" msgstr "Superior" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.width" msgstr "Amplada" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:57 +#: src/app/main/ui/inspect/attributes/shadow.cljs msgid "inspect.attributes.shadow" msgstr "Ombra" -#: src/app/main/ui/viewer/inspect/attributes/stroke.cljs:52 +#: src/app/main/ui/inspect/attributes/stroke.cljs msgid "inspect.attributes.stroke" msgstr "Traç" -#, permanent, unused msgid "inspect.attributes.stroke.alignment.center" msgstr "Centre" -#, permanent, unused msgid "inspect.attributes.stroke.alignment.inner" msgstr "Interior" -#, permanent, unused msgid "inspect.attributes.stroke.alignment.outer" msgstr "Exterior" -#, unused msgid "inspect.attributes.stroke.style.dotted" msgstr "Puntejat" -#, unused msgid "inspect.attributes.stroke.style.mixed" msgstr "Mixte" -#, unused msgid "inspect.attributes.stroke.style.none" msgstr "Cap" -#, unused msgid "inspect.attributes.stroke.style.solid" msgstr "Sòlid" #: src/app/main/ui/inspect/attributes/stroke.cljs -#, unused msgid "inspect.attributes.stroke.width" msgstr "Amplada" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:81, src/app/main/ui/viewer/inspect/attributes/text.cljs:194 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography" msgstr "Tipografia" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:89 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.font-family" msgstr "Família tipogràfica" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:107 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.font-size" msgstr "Mida de la lletra" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:98 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.font-style" msgstr "Estil de la lletra" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:134 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.letter-spacing" msgstr "Espaiat de la lletra" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:125 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.line-height" msgstr "Alçada de la línia" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:143 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.text-decoration" msgstr "Decoració del text" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:145 msgid "inspect.attributes.typography.text-decoration.none" msgstr "Cap" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:146 msgid "inspect.attributes.typography.text-decoration.strikethrough" msgstr "Barrat" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:147 msgid "inspect.attributes.typography.text-decoration.underline" msgstr "Subratllat" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:156 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.text-transform" msgstr "Transformació del text" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:158 msgid "inspect.attributes.typography.text-transform.lowercase" msgstr "Minúscules" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:159 msgid "inspect.attributes.typography.text-transform.none" msgstr "Cap" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:160 msgid "inspect.attributes.typography.text-transform.titlecase" msgstr "Inicials en majúscules" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:161 msgid "inspect.attributes.typography.text-transform.uppercase" msgstr "Majúscules" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:125 +#: src/app/main/ui/inspect/right_sidebar.cljs msgid "inspect.tabs.code" msgstr "Codi" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:98 msgid "inspect.tabs.code.selected.circle" msgstr "Cercle" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:99 msgid "inspect.tabs.code.selected.component" msgstr "Component" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:100 msgid "inspect.tabs.code.selected.curve" msgstr "Corba" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:101 msgid "inspect.tabs.code.selected.frame" msgstr "Tauler" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:102 msgid "inspect.tabs.code.selected.group" msgstr "Grup" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:103 msgid "inspect.tabs.code.selected.image" msgstr "Imatge" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:104 msgid "inspect.tabs.code.selected.mask" msgstr "Màscara" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:93 +#: src/app/main/ui/inspect/right_sidebar.cljs msgid "inspect.tabs.code.selected.multiple" msgstr "%s seleccionats" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:105 msgid "inspect.tabs.code.selected.path" msgstr "Camí" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:106 msgid "inspect.tabs.code.selected.rect" msgstr "Rectangle" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:107 msgid "inspect.tabs.code.selected.svg-raw" msgstr "SVG" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:108 msgid "inspect.tabs.code.selected.text" msgstr "Text" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:115 +#: src/app/main/ui/inspect/right_sidebar.cljs msgid "inspect.tabs.info" msgstr "Informació" -#: src/app/main/ui/workspace/main_menu.cljs:158 +#: src/app/main/ui/workspace/header.cljs msgid "label.shortcuts" msgstr "Dreceres" -#: src/app/main/ui/dashboard/import.cljs:527 msgid "labels.accept" msgstr "Acceptar" -#: src/app/main/ui/dashboard/fonts.cljs:175 msgid "labels.add-custom-font" msgstr "Afegeix tipografia" -#: src/app/main/ui/dashboard/team.cljs:120, src/app/main/ui/dashboard/team.cljs:276, src/app/main/ui/dashboard/team.cljs:519, src/app/main/ui/dashboard/team.cljs:549, src/app/main/ui/onboarding/team_choice.cljs:67 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs msgid "labels.admin" msgstr "Administració" #: src/app/main/ui/workspace/comments.cljs -#, unused msgid "labels.all" msgstr "Tots" -#: src/app/main/ui/auth.cljs:37 msgid "labels.and" msgstr "i" -#: src/app/main/ui/onboarding/team_choice.cljs:162 msgid "labels.back" msgstr "Enrere" -#: src/app/main/ui/static.cljs:59 +#: src/app/main/ui/static.cljs msgid "labels.bad-gateway.desc-message" msgstr "" "Sembla que heu d'esperar una mica i tornar a provar; estem realitzant un " "petit manteniment dels nostres servidors." -#: src/app/main/ui/static.cljs:58 +#: src/app/main/ui/static.cljs msgid "labels.bad-gateway.main-message" msgstr "Error del servidor (Bad Gateway)" -#: src/app/main/data/common.cljs:112, src/app/main/ui/dashboard/change_owner.cljs:69, src/app/main/ui/dashboard/import.cljs:514, src/app/main/ui/dashboard/team.cljs:868, src/app/main/ui/delete_shared.cljs:35, src/app/main/ui/export.cljs:164, src/app/main/ui/export.cljs:460, src/app/main/ui/settings/access_tokens.cljs:188, src/app/main/ui/viewer/share_link.cljs:203, src/app/main/ui/workspace/sidebar/assets/groups.cljs:149 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.cancel" msgstr "Cancel·la" -#: src/app/main/ui/dashboard/projects.cljs:93, src/app/main/ui/export.cljs:478, src/app/main/ui/settings/access_tokens.cljs:183, src/app/main/ui/viewer/login.cljs:77, src/app/main/ui/viewer/share_link.cljs:174, src/app/main/ui/workspace/libraries.cljs:522 msgid "labels.close" msgstr "Tanca" -#: src/app/main/ui/dashboard/comments.cljs:104, src/app/main/ui/viewer/comments.cljs:70, src/app/main/ui/workspace/comments.cljs:126 +#: src/app/main/ui/dashboard/comments.cljs msgid "labels.comments" msgstr "Comentaris" -#: src/app/main/ui/dashboard/sidebar.cljs:985, src/app/main/ui/workspace/main_menu.cljs:110 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.community" msgstr "Comunitat" -#: src/app/main/ui/settings/password.cljs:103 +#: src/app/main/ui/settings/password.cljs msgid "labels.confirm-password" msgstr "Confirmeu la contrasenya" -#: src/app/main/ui/dashboard/import.cljs:520, src/app/main/ui/export.cljs:465, src/app/main/ui/onboarding/newsletter.cljs:101 msgid "labels.continue" msgstr "Continua" -#, unused msgid "labels.continue-with" msgstr "Continua amb" -#: src/app/main/ui/viewer/login.cljs:75 msgid "labels.continue-with-penpot" msgstr "Podeu continuar amb un compte de Penpot" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:157, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:190 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "labels.create" msgstr "Crea" -#: src/app/main/ui/dashboard/team_form.cljs:101, src/app/main/ui/dashboard/team_form.cljs:121 +#: src/app/main/ui/dashboard/team_form.cljs, +#: src/app/main/ui/dashboard/team_form.cljs msgid "labels.create-team" msgstr "Crea un equip nou" -#: src/app/main/ui/dashboard/team_form.cljs:113 +#: src/app/main/ui/dashboard/team_form.cljs msgid "labels.create-team.placeholder" msgstr "Introduïu el nom de l'equip nou" -#, unused msgid "labels.custom-fonts" msgstr "Tipografies personalitzades" -#: src/app/main/ui/settings/sidebar.cljs:73 +#: src/app/main/ui/settings/sidebar.cljs msgid "labels.dashboard" msgstr "Tauler" -#: src/app/main/ui/dashboard/file_menu.cljs:306, src/app/main/ui/dashboard/fonts.cljs:255, src/app/main/ui/dashboard/fonts.cljs:332, src/app/main/ui/dashboard/fonts.cljs:346, src/app/main/ui/dashboard/project_menu.cljs:115, src/app/main/ui/dashboard/team.cljs:904, src/app/main/ui/settings/access_tokens.cljs:209, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:209 +#: src/app/main/ui/dashboard/project_menu.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.delete" msgstr "Elimina" -#: src/app/main/ui/comments.cljs:357 +#: src/app/main/ui/comments.cljs msgid "labels.delete-comment" msgstr "Elimina el comentari" -#: src/app/main/ui/comments.cljs:354 +#: src/app/main/ui/comments.cljs msgid "labels.delete-comment-thread" msgstr "Elimina el fil" -#: src/app/main/ui/dashboard/team.cljs:648 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.delete-invitation" msgstr "Esborra invitació" -#: src/app/main/ui/dashboard/file_menu.cljs:262 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.delete-multi-files" msgstr "Elimina %s fitxers" -#: src/app/main/ui/dashboard/file_menu.cljs:28, src/app/main/ui/dashboard/files.cljs:72, src/app/main/ui/dashboard/files.cljs:156, src/app/main/ui/dashboard/projects.cljs:220, src/app/main/ui/dashboard/projects.cljs:224, src/app/main/ui/dashboard/sidebar.cljs:791 +#: src/app/main/ui/dashboard/projects.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs, +#: src/app/main/ui/dashboard/files.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.drafts" msgstr "Esborranys" -#: src/app/main/ui/comments.cljs:350, src/app/main/ui/dashboard/fonts.cljs:252, src/app/main/ui/dashboard/team.cljs:902, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:205 +#: src/app/main/ui/comments.cljs msgid "labels.edit" msgstr "Edita" -#, unused msgid "labels.edit-file" msgstr "Edita'l" -#: src/app/main/ui/dashboard/team.cljs:118, src/app/main/ui/dashboard/team.cljs:279, src/app/main/ui/dashboard/team.cljs:520, src/app/main/ui/dashboard/team.cljs:553, src/app/main/ui/onboarding/team_choice.cljs:66 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs msgid "labels.editor" msgstr "Editor" -#: src/app/main/ui/dashboard/team.cljs:661 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.expired-invitation" msgstr "Ha caducat" -#: src/app/main/ui/export.cljs:173 msgid "labels.export" msgstr "Exporta" -#: src/app/main/ui/settings/feedback.cljs:51 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.feedback-disabled" msgstr "Opinions desactivades" -#: src/app/main/ui/settings/feedback.cljs:42 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.feedback-sent" msgstr "S'ha enviat l'opinió" -#: src/app/main/ui/dashboard/fonts.cljs:412 msgid "labels.font-family" msgstr "Família tipogràfica" -#, unused msgid "labels.font-providers" msgstr "Proveïdors de tipografies" -#: src/app/main/ui/dashboard/fonts.cljs:413 msgid "labels.font-variants" msgstr "Estils" -#: src/app/main/ui/dashboard/fonts.cljs:52, src/app/main/ui/dashboard/sidebar.cljs:811 msgid "labels.fonts" msgstr "Tipografies" -#: src/app/main/ui/dashboard/sidebar.cljs:1015, src/app/main/ui/workspace/main_menu.cljs:142 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.github-repo" msgstr "Repositori Github" -#: src/app/main/ui/dashboard/sidebar.cljs:1032, src/app/main/ui/settings/sidebar.cljs:113, src/app/main/ui/workspace/main_menu.cljs:171 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/settings/sidebar.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.give-feedback" msgstr "Envia opinions" -#: src/app/main/ui/auth/recovery_request.cljs:110, src/app/main/ui/auth/register.cljs:285, src/app/main/ui/viewer/login.cljs:117 msgid "labels.go-back" msgstr "Enrere" -#: src/app/main/ui/dashboard/sidebar.cljs:978, src/app/main/ui/workspace/main_menu.cljs:102 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.help-center" msgstr "Centre d'ajuda" -#: src/app/main/ui/viewer/comments.cljs:103, src/app/main/ui/workspace/comments.cljs:67 +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs msgid "labels.hide-resolved-comments" msgstr "Amaga els comentaris resolts" -#: src/app/main/ui/dashboard/fonts.cljs:410 msgid "labels.installed-fonts" msgstr "Tipografies instal·lades" -#: src/app/main/ui/static.cljs:144 +#: src/app/main/ui/static.cljs msgid "labels.internal-error.desc-message" msgstr "" "Alguna cosa ha fallat. Torneu a provar l'operació i, si el problema " "continua, poseu-vos en contacte amb el suport tècnic." -#: src/app/main/ui/static.cljs:143 +#: src/app/main/ui/static.cljs msgid "labels.internal-error.main-message" msgstr "Error intern" -#: src/app/main/ui/dashboard/sidebar.cljs:516, src/app/main/ui/dashboard/team.cljs:89, src/app/main/ui/dashboard/team.cljs:97, src/app/main/ui/dashboard/team.cljs:708 +#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.invitations" msgstr "Invitacions" -#: src/app/main/ui/settings/options.cljs:51 +#: src/app/main/ui/settings/options.cljs msgid "labels.language" msgstr "Llengua" -#: src/app/main/ui/dashboard/sidebar.cljs:1008, src/app/main/ui/workspace/main_menu.cljs:134 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.libraries-and-templates" msgstr "Biblioteques i plantilles" -#: src/app/main/ui/viewer/header.cljs:203 msgid "labels.log-or-sign" msgstr "Inicia sessió o registra'm" -#: src/app/main/ui/dashboard/sidebar.cljs:1040 +#: src/app/main/ui/settings.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.logout" msgstr "Tanca la sessió" -#: src/app/main/ui/dashboard/team.cljs:468 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.member" msgstr "Membre" -#: src/app/main/ui/dashboard/sidebar.cljs:510, src/app/main/ui/dashboard/team.cljs:87, src/app/main/ui/dashboard/team.cljs:95 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.members" msgstr "Membres" -#: src/app/main/ui/settings/password.cljs:96 +#: src/app/main/ui/settings/password.cljs msgid "labels.new-password" msgstr "Contrasenya nova" -#: src/app/main/ui/dashboard/comments.cljs:128, src/app/main/ui/workspace/comments.cljs:161 +#: src/app/main/ui/workspace/comments.cljs, +#: src/app/main/ui/dashboard/comments.cljs msgid "labels.no-comments-available" msgstr "No teniu notificacions de comentaris pendents" -#: src/app/main/ui/dashboard/team.cljs:694 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.no-invitations" msgstr "No hi ha invitacions." -#: src/app/main/ui/dashboard/team.cljs:696 -#, markdown +#: src/app/main/ui/dashboard/team.cljs msgid "labels.no-invitations-hint" msgstr "" "Feu clic al botó «Convida a l'equip» per convidar més membres a aquest " "equip." -#: src/app/main/ui/static.cljs:50 +#: src/app/main/ui/static.cljs msgid "labels.not-found.desc-message" msgstr "" "És possible que aquesta pàgina no existeixi o que no tingueu permisos per a " "accedir-hi." -#: src/app/main/ui/static.cljs:49 +#: src/app/main/ui/static.cljs msgid "labels.not-found.main-message" msgstr "Vaja!" -#: src/app/main/ui/dashboard/projects.cljs:239, src/app/main/ui/dashboard/team.cljs:1095 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.num-of-files" msgid_plural "labels.num-of-files" msgstr[0] "1 fitxer" msgstr[1] "%s fitxers" -#: src/app/main/ui/viewer/thumbnails.cljs:80 msgid "labels.num-of-frames" msgid_plural "labels.num-of-frames" msgstr[0] "1 tauler" msgstr[1] "%s taulers" -#: src/app/main/ui/dashboard/team.cljs:1090 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.num-of-projects" msgid_plural "labels.num-of-projects" msgstr[0] "1 projecte" msgstr[1] "%s projectes" -#: src/app/main/ui/settings/password.cljs:89 +#: src/app/main/ui/settings/password.cljs msgid "labels.old-password" msgstr "Contrasenya antiga" #: src/app/main/ui/workspace/comments.cljs -#, unused msgid "labels.only-yours" msgstr "Només els meus" -#, unused msgid "labels.or" msgstr "o" -#: src/app/main/ui/dashboard/team.cljs:286, src/app/main/ui/dashboard/team.cljs:518, src/app/main/ui/dashboard/team.cljs:1076 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs msgid "labels.owner" msgstr "Propietari" -#: src/app/main/ui/settings/sidebar.cljs:87 +#: src/app/main/ui/settings/sidebar.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.password" msgstr "Contrasenya" -#: src/app/main/ui/dashboard/team.cljs:662 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.pending-invitation" msgstr "Pendent" -#: src/app/main/ui/settings/profile.cljs:118, src/app/main/ui/settings/sidebar.cljs:82 +#: src/app/main/ui/settings/sidebar.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.profile" msgstr "Perfil" -#: src/app/main/ui/dashboard/sidebar.cljs:784 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.projects" msgstr "Projectes" -#: src/app/main/ui/dashboard/sidebar.cljs:998, src/app/main/ui/settings/sidebar.cljs:106, src/app/main/ui/workspace/main_menu.cljs:126 +#: src/app/main/ui/settings/sidebar.cljs msgid "labels.release-notes" msgstr "Notes de la versió" -#: src/app/main/ui/workspace/libraries.cljs, src/app/main/ui/dashboard/team.cljs -#, unused +#: src/app/main/ui/workspace/libraries.cljs, +#: src/app/main/ui/dashboard/team.cljs msgid "labels.remove" msgstr "Elimina" -#: src/app/main/ui/dashboard/team.cljs:316 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.remove-member" msgstr "Elimina membre" -#: src/app/main/ui/dashboard/file_menu.cljs:271, src/app/main/ui/dashboard/project_menu.cljs:85, src/app/main/ui/dashboard/sidebar.cljs:539, src/app/main/ui/workspace/sidebar/assets/groups.cljs:157 +#: src/app/main/ui/dashboard/sidebar.cljs, +#: src/app/main/ui/dashboard/project_menu.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.rename" msgstr "Canvia el nom" -#: src/app/main/ui/dashboard/team_form.cljs:99 +#: src/app/main/ui/dashboard/team_form.cljs msgid "labels.rename-team" msgstr "Canvia el nom de l’equip" -#: src/app/main/ui/dashboard/team.cljs:645 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.resend-invitation" msgstr "Reenvia invitació" -#: src/app/main/ui/static.cljs:61, src/app/main/ui/static.cljs:70, src/app/main/ui/static.cljs:148 +#: src/app/main/ui/static.cljs, src/app/main/ui/static.cljs msgid "labels.retry" msgstr "Tornar a intentar-ho" -#: src/app/main/ui/dashboard/team.cljs:469, src/app/main/ui/dashboard/team.cljs:709 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.role" msgstr "Rol" -#: src/app/main/ui/dashboard/fonts.cljs:380, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:191 msgid "labels.save" msgstr "Desa" -#: src/app/main/ui/dashboard/fonts.cljs:415 msgid "labels.search-font" msgstr "Cerca tipografia" -#: src/app/main/ui/settings/feedback.cljs:82 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.send" msgstr "Envia" -#: src/app/main/ui/settings/feedback.cljs:82 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.sending" msgstr "S'està enviant…" -#: src/app/main/ui/static.cljs:68 +#: src/app/main/ui/static.cljs msgid "labels.service-unavailable.desc-message" msgstr "Estem de manteniment programat dels nostres sistemes." -#: src/app/main/ui/static.cljs:67 +#: src/app/main/ui/static.cljs msgid "labels.service-unavailable.main-message" msgstr "Servei no disponible" -#: src/app/main/ui/dashboard/sidebar.cljs:530, src/app/main/ui/dashboard/team.cljs:88, src/app/main/ui/dashboard/team.cljs:102, src/app/main/ui/settings/options.cljs:84, src/app/main/ui/settings/sidebar.cljs:93 +#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.settings" msgstr "Configuració" -#, unused msgid "labels.share-prototype" msgstr "Comparteix prototip" -#: src/app/main/ui/dashboard/sidebar.cljs:800 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.shared-libraries" msgstr "Biblioteques compartides" -#: src/app/main/ui/viewer/comments.cljs:82, src/app/main/ui/workspace/comments.cljs:55, src/app/main/ui/workspace/comments.cljs:135 +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs msgid "labels.show-all-comments" msgstr "Mostra tots els comentaris" -#: src/app/main/ui/viewer/comments.cljs:115 msgid "labels.show-comments-list" msgstr "Mostra la llista de comentaris" -#: src/app/main/ui/viewer/comments.cljs:91, src/app/main/ui/workspace/comments.cljs:61, src/app/main/ui/workspace/comments.cljs:136 +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs msgid "labels.show-your-comments" msgstr "Mostra només els meus comentaris" -#: src/app/main/ui/dashboard/team.cljs:710 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.status" msgstr "Estat" -#: src/app/main/ui/dashboard/sidebar.cljs:992, src/app/main/ui/workspace/main_menu.cljs:118 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.tutorials" msgstr "Tutorials" -#: src/app/main/ui/settings/profile.cljs:103 +#: src/app/main/ui/settings/profile.cljs msgid "labels.update" msgstr "Actualitza" -#: src/app/main/ui/dashboard/team_form.cljs:120 +#: src/app/main/ui/dashboard/team_form.cljs msgid "labels.update-team" msgstr "Actualitza l'equip" -#: src/app/main/ui/dashboard/fonts.cljs:241 msgid "labels.upload" msgstr "Puja" -#: src/app/main/ui/dashboard/fonts.cljs:169 msgid "labels.upload-custom-fonts" msgstr "Pugeu tipografies personalitzades" -#: src/app/main/ui/dashboard/fonts.cljs:240 msgid "labels.uploading" msgstr "S'està pujant…" -#: src/app/main/ui/dashboard/team.cljs:123, src/app/main/ui/dashboard/team.cljs:282, src/app/main/ui/dashboard/team.cljs:521 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.viewer" msgstr "Visor" -#: src/app/main/ui/comments.cljs:194 +#: src/app/main/ui/comments.cljs msgid "labels.write-new-comment" msgstr "Escriu un comentari nou" -#: src/app/main/ui/dashboard/team.cljs:237 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.you" msgstr "(jo)" -#: src/app/main/ui/dashboard/sidebar.cljs:968 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.your-account" msgstr "El meu compte" -#: src/app/main/data/media.cljs:49, src/app/main/data/workspace/media.cljs:223, src/app/main/data/workspace/media.cljs:453 +#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs msgid "media.loading" msgstr "S'està carregant la imatge…" -#: src/app/main/data/common.cljs:113 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.add-shared-confirm.accept" msgstr "Afegeix com a biblioteca compartida" -#: src/app/main/data/common.cljs:111 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.add-shared-confirm.hint" msgstr "" "Una vegada afegit com a biblioteca compartida, els recursos de la " "biblioteca d'aquest fitxer estaran disponibles per a usar-los entre la " "resta dels fitxers." -#: src/app/main/data/common.cljs:110 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.add-shared-confirm.message" msgstr "Afegeix \"%s\" com a biblioteca compartida" -#: src/app/main/ui/workspace/nudge.cljs:60 +#: src/app/main/ui/workspace/nudge.cljs msgid "modals.big-nudge" msgstr "Màxima" -#: src/app/main/ui/settings/change_email.cljs:127 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.confirm-email" msgstr "Repetiu el correu electrònic nou" -#: src/app/main/ui/settings/change_email.cljs:114 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.info" msgstr "" "Us enviarem un correu electrònic a l'adreça actual \"%s\" per a verificar " "la vostra identitat." -#: src/app/main/ui/settings/change_email.cljs:119 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.new-email" msgstr "Correu electrònic nou" -#: src/app/main/ui/settings/change_email.cljs:136 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.submit" msgstr "Canvia el correu" -#: src/app/main/ui/settings/change_email.cljs:107 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.title" msgstr "Canvieu el vostre correu electrònic" -#: src/app/main/ui/settings/delete_account.cljs:59 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.cancel" msgstr "Cancel·la i conserva el meu compte" -#: src/app/main/ui/settings/delete_account.cljs:64 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.confirm" msgstr "Sí, elimina el meu compte" -#: src/app/main/ui/settings/delete_account.cljs:53 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.info" msgstr "Si suprimiu el compte, perdreu tots els vostres projectes i arxius actuals." -#: src/app/main/ui/settings/delete_account.cljs:46 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.title" msgstr "Segur que voleu eliminar el compte?" -#: src/app/main/ui/comments.cljs:298 +#: src/app/main/ui/comments.cljs msgid "modals.delete-comment-thread.accept" msgstr "Elimina la conversa" -#: src/app/main/ui/comments.cljs:297 +#: src/app/main/ui/comments.cljs msgid "modals.delete-comment-thread.message" msgstr "" "Segur que voleu eliminar aquesta conversa? S'eliminaran tots els comentaris " "del fil." -#: src/app/main/ui/comments.cljs:296 +#: src/app/main/ui/comments.cljs msgid "modals.delete-comment-thread.title" msgstr "Elimina la conversa" -#: src/app/main/ui/dashboard/file_menu.cljs:123 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-confirm.accept" msgstr "Elimina el fitxer" -#: src/app/main/ui/dashboard/file_menu.cljs:122 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-confirm.message" msgstr "Segur que voleu eliminar el fitxer?" -#: src/app/main/ui/dashboard/file_menu.cljs:121 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-confirm.title" msgstr "Eliminar el fitxer" -#: src/app/main/ui/dashboard/file_menu.cljs:117 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-multi-confirm.accept" msgstr "Elimina fitxers" -#: src/app/main/ui/dashboard/file_menu.cljs:116 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-multi-confirm.message" msgstr "Segur que voleu eliminar %s fitxers?" -#: src/app/main/ui/dashboard/file_menu.cljs:115 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-multi-confirm.title" msgstr "S'estan eliminant %s fitxers" -#: src/app/main/ui/dashboard/fonts.cljs:345 msgid "modals.delete-font-variant.message" msgstr "" "Segur que voleu eliminar aquest estil de lletra? No es carregarà si " "s'utilitza en un fitxer." -#: src/app/main/ui/dashboard/fonts.cljs:344 msgid "modals.delete-font-variant.title" msgstr "S'està eliminant l'estil de tipografia" -#: src/app/main/ui/dashboard/fonts.cljs:331 msgid "modals.delete-font.message" msgstr "" "Segur que voleu eliminar aquesta tipografia? No es carregarà si s'utilitza " "en un fitxer." -#: src/app/main/ui/dashboard/fonts.cljs:330 msgid "modals.delete-font.title" msgstr "S'està eliminant la tipografia" -#: src/app/main/ui/workspace/context_menu.cljs:522, src/app/main/ui/workspace/sidebar/sitemap.cljs:45 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs msgid "modals.delete-page.body" msgstr "Segur que voleu eliminar la pàgina?" -#: src/app/main/ui/workspace/context_menu.cljs:521, src/app/main/ui/workspace/sidebar/sitemap.cljs:44 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs msgid "modals.delete-page.title" msgstr "Elimina la pàgina" -#: src/app/main/ui/dashboard/project_menu.cljs:69 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "modals.delete-project-confirm.accept" msgstr "Elimina el projecte" -#: src/app/main/ui/dashboard/project_menu.cljs:68 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "modals.delete-project-confirm.message" msgstr "Segur que voleu eliminar el projecte?" -#: src/app/main/ui/dashboard/project_menu.cljs:67 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "modals.delete-project-confirm.title" msgstr "Elimina el projecte" -#: src/app/main/ui/delete_shared.cljs:51 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.accept" msgid_plural "modals.delete-shared-confirm.accept" msgstr[0] "Suprimeix el fitxer" msgstr[1] "Suprimeix els fitxers" -#: src/app/main/ui/delete_shared.cljs:46 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.message" msgid_plural "modals.delete-shared-confirm.message" msgstr[0] "Esteu segur que voleu suprimir aquest fitxer?" msgstr[1] "Esteu segur que voleu suprimir aquests fitxers?" -#: src/app/main/ui/dashboard/sidebar.cljs:435 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.delete-team-confirm.accept" msgstr "Elimina l'equip" -#: src/app/main/ui/dashboard/sidebar.cljs:434 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.delete-team-confirm.message" msgstr "" "Segur que voleu eliminar l'equip? Tots els projectes i fitxers associats a " "l'equip s'eliminaran permanentment." -#: src/app/main/ui/dashboard/sidebar.cljs:433 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.delete-team-confirm.title" msgstr "S'està eliminant l'equip" -#: src/app/main/ui/dashboard/team.cljs:427 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.delete-team-member-confirm.accept" msgstr "Elimina el membre" -#: src/app/main/ui/dashboard/team.cljs:426 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.delete-team-member-confirm.message" msgstr "Segur que voleu eliminar aquest membre de l'equip?" -#: src/app/main/ui/dashboard/team.cljs:425 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.delete-team-member-confirm.title" msgstr "Elimina el membre de l'equip" -#: src/app/main/ui/dashboard/team.cljs:218 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.invite-member-confirm.accept" msgstr "Envia una invitació" -#: src/app/main/ui/dashboard/team.cljs:213, src/app/main/ui/onboarding/team_choice.cljs:156 msgid "modals.invite-member.emails" msgstr "Correus electrònics, separats per una coma" -#: src/app/main/ui/dashboard/team.cljs:190 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.invite-team-member.title" msgstr "Convida membres a l'equip" -#: src/app/main/ui/dashboard/sidebar.cljs:423, src/app/main/ui/dashboard/team.cljs:393 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-close-confirm.hint" msgstr "" "Com que no hi ha ningú més a aquest equip, s'eliminarà l'equip amb els seus " "arxius i projectes." -#: src/app/main/ui/dashboard/sidebar.cljs:422, src/app/main/ui/dashboard/team.cljs:392 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-close-confirm.message" msgstr "Segur que vols deixar l'equip %s?" -#: src/app/main/ui/dashboard/change_owner.cljs:59 msgid "modals.leave-and-reassign.forbidden" msgstr "" "No es pot abandonar l'equip si no hi ha cap altre membre capaç d'ascendir a " "propietari. És possible que vulgueu eliminar l'equip." -#: src/app/main/ui/dashboard/change_owner.cljs:55 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-reassign.hint1" msgstr "Sou el propietari de %s." -#: src/app/main/ui/dashboard/change_owner.cljs:78 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-reassign.promote-and-leave" msgstr "Ascendeix i abandona" -#: src/app/main/ui/dashboard/change_owner.cljs:34 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-reassign.select-member-to-promote" msgstr "Seleccioneu un membre per a ascendir" -#: src/app/main/ui/dashboard/change_owner.cljs:49 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-reassign.title" msgstr "Seleccioneu un membre per a ascendir" -#: src/app/main/ui/dashboard/sidebar.cljs:402, src/app/main/ui/dashboard/sidebar.cljs:424, src/app/main/ui/dashboard/team.cljs:394, src/app/main/ui/dashboard/team.cljs:416 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-confirm.accept" msgstr "Abandona l'equip" -#: src/app/main/ui/dashboard/sidebar.cljs:401, src/app/main/ui/dashboard/team.cljs:415 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-confirm.message" msgstr "Segur que voleu deixar l'equip?" -#: src/app/main/ui/dashboard/sidebar.cljs:400, src/app/main/ui/dashboard/sidebar.cljs:421, src/app/main/ui/dashboard/team.cljs:391, src/app/main/ui/dashboard/team.cljs:414 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-confirm.title" msgstr "S'està abandonant l'equip" -#: src/app/main/ui/workspace/main_menu.cljs:266, src/app/main/ui/workspace/nudge.cljs:47 +#: src/app/main/ui/workspace/nudge.cljs msgid "modals.nudge-title" msgstr "Quantitat d'atracció" -#: src/app/main/ui/dashboard/team.cljs:340 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.accept" msgstr "Ascendeix" -#: src/app/main/ui/dashboard/team.cljs:339 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.hint" msgstr "" "Si transferiu la propietat, canviareu el vostre rol a admin, perdent alguns " "permisos sobre l'equip. " -#: src/app/main/ui/dashboard/team.cljs:338 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.message" msgstr "" "Actualment sou el propietari de l'equip. Segur que voleu ascendir aquest " "usuari a propietari?" -#: src/app/main/ui/dashboard/team.cljs:337 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.title" msgstr "Ascendeix a propietari" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.remove-shared-confirm.accept" msgstr "Elimina de la biblioteca compartida" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.remove-shared-confirm.hint" msgstr "" "Una vegada suprimida com a biblioteca compartida, la biblioteca d'aquest " "fitxer deixarà d'estar disponible per a la resta dels fitxers." -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.remove-shared-confirm.message" msgstr "Elimina «%s» com a biblioteca compartida" -#: src/app/main/ui/workspace/nudge.cljs:53 +#: src/app/main/ui/workspace/nudge.cljs msgid "modals.small-nudge" msgstr "Mínima" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component-in-bulk.hint" msgstr "" "S'actualitzaran els components en una llibreria compartida. Això podria " "afectar altres fitxers que els usen." -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component-in-bulk.message" msgstr "Actualitza els components en una biblioteca compartida" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:380 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.accept" msgstr "Actualitza" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:379 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.cancel" msgstr "Cancel·la" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:378 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.hint" msgstr "" "Esteu a punt d'actualitzar un component d'una biblioteca compartida. Això " "pot afectar altres fitxers que l'usen." -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:377 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.message" msgstr "Actualitza un component en una biblioteca compartida" -#: src/app/main/ui/dashboard/team.cljs:154, src/app/main/ui/dashboard/team.cljs:595 +#: src/app/main/ui/dashboard/team.cljs msgid "notifications.invitation-email-sent" msgstr "La invitació s'ha enviat correctament" -#: src/app/main/ui/settings/delete_account.cljs:24 +#: src/app/main/ui/settings/delete_account.cljs msgid "notifications.profile-deletion-not-allowed" msgstr "" "No podeu eliminar el vostre perfil. Reassigneu els vostres equips abans de " "continuar." -#: src/app/main/ui/settings/options.cljs:29, src/app/main/ui/settings/profile.cljs:35 +#: src/app/main/ui/settings/profile.cljs, src/app/main/ui/settings/options.cljs msgid "notifications.profile-saved" msgstr "El perfil s'ha desat correctament!" -#: src/app/main/ui/settings/change_email.cljs:63 +#: src/app/main/ui/settings/change_email.cljs msgid "notifications.validation-email-sent" msgstr "S'ha enviat un correu electrònic de verificació a %s. Reviseu el correu!" -#, unused msgid "onboarding-v2.before-start.desc2.title" msgstr "Guia d'ús" -#: src/app/main/ui/onboarding/team_choice.cljs:31 msgid "onboarding-v2.welcome.title" msgstr "Us donem la benvinguda a Penpot!" -#: src/app/main/ui/onboarding/team_choice.cljs:215 msgid "onboarding.choice.team-up.create-team-desc" msgstr "Quan poseu un nom a l'equip, podreu convidar persones a unir-s'hi." -#: src/app/main/ui/onboarding/team_choice.cljs:224 msgid "onboarding.choice.team-up.create-team-placeholder" msgstr "Introduïu el nom de l'equip" -#: src/app/main/ui/dashboard/projects.cljs:89, src/app/main/ui/onboarding/team_choice.cljs:140 msgid "onboarding.choice.team-up.invite-members" msgstr "Convida membres" -#, unused msgid "onboarding.newsletter.accept" msgstr "Sí, subscriu-m'hi" -#: src/app/main/ui/onboarding/newsletter.cljs:40 msgid "onboarding.newsletter.acceptance-message" msgstr "" "S'ha enviat la sol·licitud de subscripció. Us enviarem un correu electrònic " "per confirmar-ho." -#: src/app/main/ui/onboarding/newsletter.cljs:95 msgid "onboarding.newsletter.policy" msgstr "Política de privacitat." -#: src/app/main/ui/onboarding/newsletter.cljs:60 msgid "onboarding.newsletter.title" msgstr "Voleu rebre les novetats de Penpot?" -#: src/app/main/ui/onboarding/team_choice.cljs:213 msgid "onboarding.team-modal.create-team" msgstr "Crea un equip" -#: src/app/main/ui/onboarding/templates.cljs:78 msgid "onboarding.templates.subtitle" msgstr "Aquí teniu algunes plantilles." -#: src/app/main/ui/onboarding/templates.cljs:77 msgid "onboarding.templates.title" msgstr "Comenceu a dissenyar" -#, unused msgid "onboarding.welcome.alt" msgstr "Penpot" -#: src/app/main/ui/auth/recovery.cljs:99 +#: src/app/main/ui/auth/recovery.cljs msgid "profile.recovery.go-to-login" msgstr "Vés a l'inici de sessió" -#: src/app/main/ui/viewer/inspect/exports.cljs:147, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:631, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:137, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:148, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:188, src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:158, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:399, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:410, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:430, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:441, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:458, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:472, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:309, src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:183, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:373, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:389, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:245, src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:172 +#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs msgid "settings.multiple" msgstr "Mixt" # SECTIONS -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:414 msgid "shortcut-section.basics" msgstr "Bàsics" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:420 msgid "shortcut-section.dashboard" msgstr "Panell de control" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:423 msgid "shortcut-section.viewer" msgstr "Visor" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:417 msgid "shortcut-section.workspace" msgstr "Espai de treball" # SUBSECTIONS -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:56 msgid "shortcut-subsection.alignment" msgstr "Alineació" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:57 msgid "shortcut-subsection.edit" msgstr "Edició" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:58 msgid "shortcut-subsection.general-dashboard" msgstr "Genèric" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:59 msgid "shortcut-subsection.general-viewer" msgstr "Genèric" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:60 msgid "shortcut-subsection.main-menu" msgstr "Menú principal" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:61 msgid "shortcut-subsection.modify-layers" msgstr "Modifica les capes" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:62 msgid "shortcut-subsection.navigation-dashboard" msgstr "Navegació" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:63 msgid "shortcut-subsection.navigation-viewer" msgstr "Navegació" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:64 msgid "shortcut-subsection.navigation-workspace" msgstr "Navegació" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:65 msgid "shortcut-subsection.panels" msgstr "Panells" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:66 msgid "shortcut-subsection.path-editor" msgstr "Camins" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:67 msgid "shortcut-subsection.shape" msgstr "Formes" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:69 msgid "shortcut-subsection.tools" msgstr "Eines" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:70 msgid "shortcut-subsection.zoom-viewer" msgstr "Zoom" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:71 msgid "shortcut-subsection.zoom-workspace" msgstr "Zoom" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:72 msgid "shortcuts.add-comment" msgstr "Comentaris" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:73 msgid "shortcuts.add-node" msgstr "Afegeix node" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:74 msgid "shortcuts.align-bottom" msgstr "Alinea a baix" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:76 msgid "shortcuts.align-hcenter" msgstr "Alinea al centre horitzontalment" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:78 msgid "shortcuts.align-left" msgstr "Alinea a l'esquerra" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:79 msgid "shortcuts.align-right" msgstr "Alinea a la dreta" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:80 msgid "shortcuts.align-top" msgstr "Alinea a dalt" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:81 msgid "shortcuts.align-vcenter" msgstr "Alinea al centre verticalment" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:82 msgid "shortcuts.artboard-selection" msgstr "Crea un tauler a partir de selecció" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:84 msgid "shortcuts.bool-difference" msgstr "Diferència booleana" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:85 msgid "shortcuts.bool-exclude" msgstr "Exclusió booleana" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:86 msgid "shortcuts.bool-intersection" msgstr "Intersecció booleana" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:87 msgid "shortcuts.bool-union" msgstr "Unió booleana" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:88 msgid "shortcuts.bring-back" msgstr "Envia-ho al fons" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:89 msgid "shortcuts.bring-backward" msgstr "Envia-ho cap avall" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:90 msgid "shortcuts.bring-forward" msgstr "Envia-ho cap amunt" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:91 msgid "shortcuts.bring-front" msgstr "Envia-ho a dalt" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:92 msgid "shortcuts.clear-undo" msgstr "Esborra desfer" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:93 msgid "shortcuts.copy" msgstr "Copia" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:94 msgid "shortcuts.create-component" msgstr "Crea component" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:95 msgid "shortcuts.create-new-project" msgstr "Crea nou" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:96 msgid "shortcuts.cut" msgstr "Retalla" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:97 msgid "shortcuts.decrease-zoom" msgstr "Disminueix el zoom" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:98 msgid "shortcuts.delete" msgstr "Elimina" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:99 msgid "shortcuts.delete-node" msgstr "Elimina el node" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:100 msgid "shortcuts.detach-component" msgstr "Separa el component" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:101 msgid "shortcuts.draw-curve" msgstr "Corba" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:102 msgid "shortcuts.draw-ellipse" msgstr "El·lipse" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:103 msgid "shortcuts.draw-frame" msgstr "Tauler" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:104 msgid "shortcuts.draw-nodes" msgstr "Dibuixa el camí" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:105 msgid "shortcuts.draw-path" msgstr "Camí" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:106 msgid "shortcuts.draw-rect" msgstr "Rectangle" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:107 msgid "shortcuts.draw-text" msgstr "Text" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:108 msgid "shortcuts.duplicate" msgstr "Duplica" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:109 msgid "shortcuts.escape" msgstr "Cancel·la" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:110 msgid "shortcuts.export-shapes" msgstr "Exporta formes" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:111 msgid "shortcuts.fit-all" msgstr "Amplia per encabir-ho tot" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:112 msgid "shortcuts.flip-horizontal" msgstr "Gira horitzontalment" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:113 msgid "shortcuts.flip-vertical" msgstr "Gira verticalment" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:116 msgid "shortcuts.go-to-drafts" msgstr "Ves als esborranys" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:117 msgid "shortcuts.go-to-libs" msgstr "Ves a les biblioteques compartides" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:118 msgid "shortcuts.go-to-search" msgstr "Cerca" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:119 msgid "shortcuts.group" msgstr "Agrupa" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:120 msgid "shortcuts.h-distribute" msgstr "Distribueix horitzontalment" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:121 msgid "shortcuts.hide-ui" msgstr "Mostra/Amaga la interfície" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:122 msgid "shortcuts.increase-zoom" msgstr "Amplia" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:123 msgid "shortcuts.insert-image" msgstr "Insereix imatge" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:125 msgid "shortcuts.join-nodes" msgstr "Uneix nodes" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:131 msgid "shortcuts.make-corner" msgstr "Fes cantonada" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:132 msgid "shortcuts.make-curve" msgstr "Fes corba" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:133 msgid "shortcuts.mask" msgstr "Màscara" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:134 msgid "shortcuts.merge-nodes" msgstr "Fusiona nodes" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:135 msgid "shortcuts.move" msgstr "Mou" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:136 msgid "shortcuts.move-fast-down" msgstr "Mou avall ràpidament" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:137 msgid "shortcuts.move-fast-left" msgstr "Mou a l'esquerra ràpidament" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:138 msgid "shortcuts.move-fast-right" msgstr "Mou a la dreta ràpidament" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:139 msgid "shortcuts.move-fast-up" msgstr "Mou amunt ràpidament" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:140 msgid "shortcuts.move-nodes" msgstr "Mou node" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:141 msgid "shortcuts.move-unit-down" msgstr "Mou avall" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:142 msgid "shortcuts.move-unit-left" msgstr "Mou a l'esquerra" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:143 msgid "shortcuts.move-unit-right" msgstr "Mou a la dreta" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:144 msgid "shortcuts.move-unit-up" msgstr "Mou amunt" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:145 msgid "shortcuts.next-frame" msgstr "Següent tauler" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:516 msgid "shortcuts.not-found" msgstr "No s'han trobat dreceres" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:146 msgid "shortcuts.opacity-0" msgstr "Fixa l'opacitat al 100%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:147 msgid "shortcuts.opacity-1" msgstr "Fixa l'opacitat al 10%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:148 msgid "shortcuts.opacity-2" msgstr "Fixa l'opacitat al 20%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:149 msgid "shortcuts.opacity-3" msgstr "Fixa l'opacitat al 30%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:150 msgid "shortcuts.opacity-4" msgstr "Fixa l'opacitat al 40%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:151 msgid "shortcuts.opacity-5" msgstr "Fixa l'opacitat al 50%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:152 msgid "shortcuts.opacity-6" msgstr "Fixa l'opacitat al 60%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:153 msgid "shortcuts.opacity-7" msgstr "Fixa l'opacitat al 70%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:154 msgid "shortcuts.opacity-8" msgstr "Fixa l'opacitat al 80%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:155 msgid "shortcuts.opacity-9" msgstr "Fixa l'opacitat al 90%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:156 msgid "shortcuts.open-color-picker" msgstr "Selector de color" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:157 msgid "shortcuts.open-comments" msgstr "Ves als comentaris del visor" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:158 msgid "shortcuts.open-dashboard" msgstr "Ves al panell de control" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:160 msgid "shortcuts.open-interactions" msgstr "Ves a les interaccions del visor" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:161 msgid "shortcuts.open-viewer" msgstr "Ves a les interaccions del visor" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:162 msgid "shortcuts.open-workspace" msgstr "Ves a l'espai de treball" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:260 msgid "shortcuts.or" msgstr " o " -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:163 msgid "shortcuts.paste" msgstr "Enganxa" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:164 msgid "shortcuts.prev-frame" msgstr "Tauler anterior" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:165 msgid "shortcuts.redo" msgstr "Refés" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:166 msgid "shortcuts.reset-zoom" msgstr "Restableix el zoom" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:168 msgid "shortcuts.search-placeholder" msgstr "Cerca dreceres" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:169 msgid "shortcuts.select-all" msgstr "Selecciona-ho tot" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:173 msgid "shortcuts.separate-nodes" msgstr "Separa els nodes" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:174 msgid "shortcuts.show-pixel-grid" msgstr "Mostra/Amaga graella de píxels" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:175 msgid "shortcuts.show-shortcuts" msgstr "Mostra/Amaga dreceres" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:176 msgid "shortcuts.snap-nodes" msgstr "Ajusta als nodes" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:177 msgid "shortcuts.snap-pixel-grid" msgstr "Ajusta a la graella de píxels" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:178 msgid "shortcuts.start-editing" msgstr "Comença a editar" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:179 msgid "shortcuts.start-measure" msgstr "Comença a mesurar" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:180 msgid "shortcuts.stop-measure" msgstr "Deixa de mesurar" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:185 msgid "shortcuts.thumbnail-set" msgstr "Estableix miniatures" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:496, src/app/main/ui/workspace/sidebar/shortcuts.cljs:505 +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs msgid "shortcuts.title" msgstr "Dreceres de teclat" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:186 msgid "shortcuts.toggle-alignment" msgstr "Commuta l'alineació dinàmica" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:187 msgid "shortcuts.toggle-assets" msgstr "Commuta els recursos" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:188 msgid "shortcuts.toggle-colorpalette" msgstr "Commuta paleta de colors" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:189 msgid "shortcuts.toggle-focus-mode" msgstr "Activa/desactiva el mode de concentració" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:190 msgid "shortcuts.toggle-fullscreen" msgstr "Activa/desactiva la pantalla completa" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:192 msgid "shortcuts.toggle-history" msgstr "Mostra/Amaga l'historial" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:193 msgid "shortcuts.toggle-layers" msgstr "Commutales capes" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:196 msgid "shortcuts.toggle-lock" msgstr "Bloqueja la selecció" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:197 msgid "shortcuts.toggle-lock-size" msgstr "Bloqueja les proporcions" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:202 msgid "shortcuts.toggle-textpalette" msgstr "Mostra/amaga la paleta de text" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:204 msgid "shortcuts.toggle-visibility" msgstr "Mostra/amaga l'element" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:205 msgid "shortcuts.toggle-zoom-style" msgstr "Commuta l'estil de zoom" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:207 msgid "shortcuts.undo" msgstr "Desfés" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:208 msgid "shortcuts.ungroup" msgstr "Desagrupa" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:209 msgid "shortcuts.unmask" msgstr "Desemmascara" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:210 msgid "shortcuts.v-distribute" msgstr "Distribueix verticalment" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:213 msgid "shortcuts.zoom-selected" msgstr "Amplia a la selecció" -#: src/app/main/ui/dashboard/files.cljs:158 +#: src/app/main/ui/dashboard/files.cljs msgid "title.dashboard.files" msgstr "%s - Penpot" -#: src/app/main/ui/dashboard/fonts.cljs:37 +#: src/app/main/ui/dashboard/fonts.cljs msgid "title.dashboard.font-providers" msgstr "Proveïdors de tipografies - %s - Penpot" -#: src/app/main/ui/dashboard/fonts.cljs:36 +#: src/app/main/ui/dashboard/fonts.cljs msgid "title.dashboard.fonts" msgstr "Tipografies - %s - Penpot" -#: src/app/main/ui/dashboard/projects.cljs:320 +#: src/app/main/ui/dashboard/projects.cljs msgid "title.dashboard.projects" msgstr "Projectes - %s - Penpot" -#: src/app/main/ui/dashboard/search.cljs:32 +#: src/app/main/ui/dashboard/search.cljs msgid "title.dashboard.search" msgstr "Cerca - %s - Penpot" -#: src/app/main/ui/dashboard/libraries.cljs:44 +#: src/app/main/ui/dashboard/libraries.cljs msgid "title.dashboard.shared-libraries" msgstr "Biblioteques compartides - %s - Penpot" -#: src/app/main/ui/auth/verify_token.cljs:68, src/app/main/ui/auth.cljs:54 +#: src/app/main/ui/auth/verify_token.cljs, src/app/main/ui/auth.cljs msgid "title.default" msgstr "Penpot - Llibertat de disseny per a equips" -#: src/app/main/ui/settings/feedback.cljs:110 +#: src/app/main/ui/settings/feedback.cljs msgid "title.settings.feedback" msgstr "Envia opinions - Penpot" -#: src/app/main/ui/settings/options.cljs:80 +#: src/app/main/ui/settings/options.cljs msgid "title.settings.options" msgstr "Configuració - Penpot" -#: src/app/main/ui/settings/password.cljs:115 +#: src/app/main/ui/settings/password.cljs msgid "title.settings.password" msgstr "Contrasenya - Penpot" -#: src/app/main/ui/settings/profile.cljs:115 +#: src/app/main/ui/settings/profile.cljs msgid "title.settings.profile" msgstr "Perfil - Penpot" -#: src/app/main/ui/dashboard/team.cljs:727 +#: src/app/main/ui/dashboard/team.cljs msgid "title.team-invitations" msgstr "Invitacions - %s - Penpot" -#: src/app/main/ui/dashboard/team.cljs:493 +#: src/app/main/ui/dashboard/team.cljs msgid "title.team-members" msgstr "Membres - %s - Penpot" -#: src/app/main/ui/dashboard/team.cljs:1036 +#: src/app/main/ui/dashboard/team.cljs msgid "title.team-settings" msgstr "Configuració - %s - Penpot" -#: src/app/main/ui/viewer.cljs:419 +#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs msgid "title.viewer" msgstr "%s - Visor - Penpot" -#: src/app/main/ui/workspace.cljs:190 +#: src/app/main/ui/workspace.cljs msgid "title.workspace" msgstr "%s - Penpot" -#: src/app/main/ui.cljs:144 msgid "viewer.breaking-change.description" msgstr "" "Aquest enllaç ja no és vàlid. Creeu-ne un de nou o demaneu-li'n un al " "propietari." -#: src/app/main/ui.cljs:143 msgid "viewer.breaking-change.message" msgstr "Ho sentim!" -#: src/app/main/ui/viewer.cljs:569 +#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs msgid "viewer.empty-state" msgstr "No s'ha trobat cap tauler a la pàgina." -#: src/app/main/ui/viewer.cljs:574 +#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs msgid "viewer.frame-not-found" msgstr "No s'ha trobat el tauler." -#: src/app/main/ui/viewer/header.cljs:336 msgid "viewer.header.comments-section" msgstr "Comentaris (%s)" -#: src/app/main/ui/viewer/interactions.cljs:292 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.dont-show-interactions" msgstr "No mostris les interaccions" -#: src/app/main/ui/viewer/header.cljs:188 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.fullscreen" msgstr "Pantalla completa" -#: src/app/main/ui/viewer/interactions.cljs:282 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.interactions" msgstr "Interaccions" -#: src/app/main/ui/viewer/header.cljs:327 msgid "viewer.header.interactions-section" msgstr "Interaccions (%s)" -#: src/app/main/ui/viewer/share_link.cljs:187 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.share.copy-link" msgstr "Copia l'enllaç" -#: src/app/main/ui/viewer/interactions.cljs:300 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.show-interactions" msgstr "Mostra les interaccions" -#: src/app/main/ui/viewer/interactions.cljs:311 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.show-interactions-on-click" msgstr "Mostra les interaccions en fer clic" -#: src/app/main/ui/viewer/header.cljs:231 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.sitemap" msgstr "Mapa del lloc" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:58 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.hcenter" msgstr "Alinea el centre horitzontal (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:74 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.hdistribute" msgstr "Distribueix l'espaiat horitzontal (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:50 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.hleft" msgstr "Alinea a l'esquerra (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:66 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.hright" msgstr "Alinea a la dreta (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:99 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.vbottom" msgstr "Alinea la part inferior (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:91 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.vcenter" msgstr "Alinea el centre vertical (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:104 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.vdistribute" msgstr "Distribueix l'espaiat vertical (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:83 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.vtop" msgstr "Alinea la part superior (%s)" #: src/app/main/ui/workspace/sidebar/assets.cljs -#, unused msgid "workspace.assets.assets" msgstr "Recursos" -#: src/app/main/ui/workspace/sidebar/assets.cljs:134 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.box-filter-all" msgstr "Tots els recursos" -#: src/app/main/ui/dashboard/grid.cljs:130, src/app/main/ui/dashboard/grid.cljs:162, src/app/main/ui/workspace/sidebar/assets/colors.cljs:485, src/app/main/ui/workspace/sidebar/assets.cljs:150 +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.colors" msgstr "Colors" -#: src/app/main/ui/dashboard/grid.cljs:126, src/app/main/ui/dashboard/grid.cljs:141, src/app/main/ui/workspace/sidebar/assets/components.cljs:513, src/app/main/ui/workspace/sidebar/assets.cljs:139 +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.components" msgstr "Components" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:131 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.create-group" msgstr "Crea un grup" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:142 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.create-group-hint" msgstr "" "Els elements s'anomenaran automàticament com a \"nom del grup / nom de " "l'element\"" -#: src/app/main/ui/workspace/context_menu.cljs:529, src/app/main/ui/workspace/sidebar/assets/colors.cljs:251, src/app/main/ui/workspace/sidebar/assets/components.cljs:577, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:424, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:443 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.delete" msgstr "Elimina" -#: src/app/main/ui/workspace/context_menu.cljs:534, src/app/main/ui/workspace/sidebar/assets/components.cljs:572 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.duplicate" msgstr "Duplica" -#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:247, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:439 +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.edit" msgstr "Edita" -#: src/app/main/ui/workspace/sidebar/assets/graphics.cljs:384, src/app/main/ui/workspace/sidebar/assets.cljs:145 +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.graphics" msgstr "Gràfics" -#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:255, src/app/main/ui/workspace/sidebar/assets/components.cljs:581, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:428, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:448 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.group" msgstr "Agrupa" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:141 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.group-name" msgstr "Nom del grup" -#: src/app/main/ui/workspace/sidebar/assets.cljs:168 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.libraries" msgstr "Biblioteques" -#: src/app/main/ui/workspace/sidebar/assets/file_library.cljs:295 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.not-found" msgstr "No s'han trobat recursos" -#: src/app/main/ui/workspace/context_menu.cljs:532, src/app/main/ui/workspace/sidebar/assets/colors.cljs:243, src/app/main/ui/workspace/sidebar/assets/components.cljs:566, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:421, src/app/main/ui/workspace/sidebar/assets/groups.cljs:63, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:434 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.rename" msgstr "Canvia el nom" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:132 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.rename-group" msgstr "Canvia el nom del grup" -#: src/app/main/ui/workspace/sidebar/assets.cljs:173 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.search" msgstr "Cerca recursos" #: src/app/main/ui/workspace/sidebar/assets.cljs -#, unused msgid "workspace.assets.selected-count" msgid_plural "workspace.assets.selected-count" msgstr[0] "%s element seleccionat" msgstr[1] "%s elements seleccionats" -#: src/app/main/ui/dashboard/grid.cljs:134, src/app/main/ui/dashboard/grid.cljs:189, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:397, src/app/main/ui/workspace/sidebar/assets.cljs:155 +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.typography" msgstr "Tipografies" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused msgid "workspace.assets.typography.font-id" msgstr "Tipografia" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:505 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.font-size" msgstr "Mida" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:501 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.font-variant-id" msgstr "Variant" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:523 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.go-to-edit" msgstr "Vés al fitxer de la biblioteca d'estils per a editar-lo" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:513 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.letter-spacing" msgstr "Espaiat de la lletra" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:509 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.line-height" msgstr "Alçada de la línia" -#: src/app/main/ui/dashboard/grid.cljs:199, src/app/main/ui/workspace/libraries.cljs:461, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:464, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:489, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:596, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:615 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, +#: src/app/main/ui/inspect/attributes/text.cljs, +#: src/app/main/ui/inspect/attributes/text.cljs msgid "workspace.assets.typography.sample" msgstr "Ag" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:517 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.text-transform" msgstr "Transforma el text" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:66 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.ungroup" msgstr "Desagrupa" -#: src/app/main/ui/workspace/sidebar/layers.cljs:525 msgid "workspace.focus.focus-mode" msgstr "Mode d'enfocament" -#: src/app/main/ui/workspace/context_menu.cljs:287, src/app/main/ui/workspace/context_menu.cljs:553 msgid "workspace.focus.focus-off" msgstr "Enfocament apagat" -#: src/app/main/ui/workspace/context_menu.cljs:286 msgid "workspace.focus.focus-on" msgstr "Enfocament actiu" -#, unused msgid "workspace.focus.selection" msgstr "Selecció" -#: src/app/util/color.cljs:34 +#: src/app/main/data/workspace/libraries.cljs, +#: src/app/main/ui/components/color_bullet.cljs msgid "workspace.gradients.linear" msgstr "Degradat lineal" -#: src/app/util/color.cljs:35 +#: src/app/main/data/workspace/libraries.cljs, +#: src/app/main/ui/components/color_bullet.cljs msgid "workspace.gradients.radial" msgstr "Degradat radial" -#: src/app/main/ui/workspace/main_menu.cljs:238 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.disable-dynamic-alignment" msgstr "Desactiva l'alineació dinàmica" #: src/app/main/ui/workspace/header.cljs -#, unused msgid "workspace.header.menu.disable-scale-text" msgstr "Desactiva l'escalat del text" -#: src/app/main/ui/workspace/main_menu.cljs:223 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.disable-snap-guides" msgstr "No ajustis a les guies" -#: src/app/main/ui/workspace/main_menu.cljs:253 msgid "workspace.header.menu.disable-snap-pixel-grid" msgstr "No ajustis als píxels" -#: src/app/main/ui/workspace/main_menu.cljs:239 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.enable-dynamic-alignment" msgstr "Activa l'alineació dinàmica" #: src/app/main/ui/workspace/header.cljs -#, unused msgid "workspace.header.menu.enable-scale-text" msgstr "Activa l'escalat del text" -#: src/app/main/ui/workspace/main_menu.cljs:224 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.enable-snap-guides" msgstr "Ajusta a les guies" -#: src/app/main/ui/workspace/main_menu.cljs:254 msgid "workspace.header.menu.enable-snap-pixel-grid" msgstr "Ajusta als píxels" -#: src/app/main/ui/workspace/main_menu.cljs:382 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.hide-artboard-names" msgstr "Amaga els noms dels taulers" -#: src/app/main/ui/workspace/main_menu.cljs:353 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.hide-palette" msgstr "Amaga la paleta de colors" -#: src/app/main/ui/workspace/main_menu.cljs:394 msgid "workspace.header.menu.hide-pixel-grid" msgstr "Amaga la graella de píxels" -#: src/app/main/ui/workspace/main_menu.cljs:320 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.hide-rules" msgstr "Amaga les regles" -#: src/app/main/ui/workspace/main_menu.cljs:367 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.hide-textpalette" msgstr "Amaga la paleta de tipografies" -#: src/app/main/ui/workspace/main_menu.cljs:731 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.edit" msgstr "Edita" -#: src/app/main/ui/workspace/main_menu.cljs:720 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.file" msgstr "Fixer" -#: src/app/main/ui/workspace/main_menu.cljs:777 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.help-info" msgstr "Ajuda i informació" -#: src/app/main/ui/workspace/main_menu.cljs:753 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.preferences" msgstr "Preferències" -#: src/app/main/ui/workspace/main_menu.cljs:742 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.view" msgstr "Mostra" -#: src/app/main/ui/workspace/main_menu.cljs:432 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.select-all" msgstr "Selecciona-ho tot" -#: src/app/main/ui/workspace/main_menu.cljs:383 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.show-artboard-names" msgstr "Mostra els noms dels taulers" -#: src/app/main/ui/workspace/main_menu.cljs:354 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.show-palette" msgstr "Mostra la paleta de colors" -#: src/app/main/ui/workspace/main_menu.cljs:395 msgid "workspace.header.menu.show-pixel-grid" msgstr "Mostra graella de píxels" -#: src/app/main/ui/workspace/main_menu.cljs:321 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.show-rules" msgstr "Mostra les regles" -#: src/app/main/ui/workspace/main_menu.cljs:368 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.show-textpalette" msgstr "Mostra la paleta de tipografies" -#: src/app/main/ui/viewer/header.cljs:98, src/app/main/ui/workspace/right_header.cljs:120 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.reset-zoom" msgstr "Restableix" #: src/app/main/ui/workspace/header.cljs -#, unused msgid "workspace.header.save-error" msgstr "S'ha produït un error en desar" -#: src/app/main/ui/workspace/right_header.cljs:52 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.saved" msgstr "Desat" #: src/app/main/ui/workspace/header.cljs -#, unused msgid "workspace.header.saving" msgstr "S'està desant" -#: src/app/main/ui/workspace/right_header.cljs:42, src/app/main/ui/workspace/right_header.cljs:47 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.unsaved" msgstr "Canvis sense desar" -#: src/app/main/ui/workspace/right_header.cljs:239 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.viewer" msgstr "Visor (%s)" -#: src/app/main/ui/viewer/header.cljs:109 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom-fill" msgstr "Emplena - Amplia per a omplir" -#: src/app/main/ui/viewer/header.cljs:102 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom-fit" msgstr "Ajusta - Redueix per a encaixar" -#: src/app/main/ui/workspace/right_header.cljs:123 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom-fit-all" msgstr "Apropa per a omplir-ho tot" -#: src/app/main/ui/viewer/header.cljs:116 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom-full-screen" msgstr "Pantalla completa" -#: src/app/main/ui/workspace/right_header.cljs:130 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom-selected" msgstr "Apropa la selecció" #: src/app/main/ui/workspace/libraries.cljs -#, unused msgid "workspace.libraries.add" msgstr "Afegeix" -#: src/app/main/ui/workspace/libraries.cljs:80, src/app/main/ui/workspace/libraries.cljs:99 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.colors" msgstr "%s colors" -#: src/app/main/ui/workspace/color_palette_ctx_menu.cljs:60, src/app/main/ui/workspace/colorpicker/libraries.cljs:73, src/app/main/ui/workspace/text_palette_ctx_menu.cljs:50 +#: src/app/main/ui/workspace/colorpicker/libraries.cljs, +#: src/app/main/ui/workspace/colorpalette.cljs msgid "workspace.libraries.colors.file-library" msgstr "Biblioteca del fitxer" #: src/app/main/ui/workspace/colorpicker.cljs -#, unused msgid "workspace.libraries.colors.hsv" msgstr "HSV" -#: src/app/main/ui/workspace/color_palette_ctx_menu.cljs:82, src/app/main/ui/workspace/colorpicker/libraries.cljs:72 +#: src/app/main/ui/workspace/colorpicker/libraries.cljs, +#: src/app/main/ui/workspace/colorpalette.cljs msgid "workspace.libraries.colors.recent-colors" msgstr "Colors recents" #: src/app/main/ui/workspace/colorpicker.cljs -#, unused msgid "workspace.libraries.colors.rgb-complementary" msgstr "Complementari d'RGB" #: src/app/main/ui/workspace/colorpicker.cljs -#, unused msgid "workspace.libraries.colors.rgba" msgstr "RGBA" -#: src/app/main/ui/workspace/colorpicker.cljs:372 +#: src/app/main/ui/workspace/colorpicker.cljs msgid "workspace.libraries.colors.save-color" msgstr "Desa l'estil de color" -#: src/app/main/ui/workspace/libraries.cljs:74, src/app/main/ui/workspace/libraries.cljs:91 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.components" msgstr "%s components" -#: src/app/main/ui/workspace/libraries.cljs:215 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.file-library" msgstr "Biblioteca del fitxer" -#: src/app/main/ui/workspace/libraries.cljs:77, src/app/main/ui/workspace/libraries.cljs:95 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.graphics" msgstr "%s gràfics" -#: src/app/main/ui/workspace/libraries.cljs:209 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.in-this-file" msgstr "BIBLIOTEQUES EN AQUEST FITXER" -#: src/app/main/ui/workspace/libraries.cljs:526, src/app/main/ui/workspace/libraries.cljs:531 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.libraries" msgstr "BIBLIOTEQUES" #: src/app/main/ui/workspace/libraries.cljs -#, unused msgid "workspace.libraries.library" msgstr "BIBLIOTECA" -#: src/app/main/ui/workspace/libraries.cljs:380 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.no-libraries-need-sync" msgstr "No hi ha biblioteques compartides pendents d'actualitzar" -#: src/app/main/ui/workspace/libraries.cljs:299 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.no-matches-for" msgstr "No s'ha trobat cap coincidència per a “%s“" -#: src/app/main/ui/workspace/libraries.cljs:296 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.no-shared-libraries-available" msgstr "No hi ha biblioteques compartides disponibles" -#: src/app/main/ui/workspace/libraries.cljs:260 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.search-shared-libraries" msgstr "Cerca biblioteques compartides" -#: src/app/main/ui/workspace/libraries.cljs:256 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.shared-libraries" msgstr "BIBLIOTEQUES COMPARTIDES" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:308 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.libraries.text.multiple-typography" msgstr "Diverses tipografies" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:311 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.libraries.text.multiple-typography-tooltip" msgstr "Desvincula totes les tipografies" -#: src/app/main/ui/workspace/libraries.cljs:83, src/app/main/ui/workspace/libraries.cljs:103 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.typography" msgstr "%s tipografies" -#: src/app/main/ui/workspace/libraries.cljs:402 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.update" msgstr "Actualitza" -#: src/app/main/ui/workspace/libraries.cljs:536 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.updates" msgstr "ACTUALITZACIONS" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:737 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.add-interaction" msgstr "Feu clic en el botó de + per a afegir interaccions." -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:86, src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:102 +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs msgid "workspace.options.blur-options.title" msgstr "Difuminat" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:85 +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs msgid "workspace.options.blur-options.title.group" msgstr "Difuminat del grup" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:84 +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs msgid "workspace.options.blur-options.title.multiple" msgstr "Difuminat de selecció" -#: src/app/main/ui/workspace/sidebar/options/page.cljs:32, src/app/main/ui/workspace/sidebar/options/page.cljs:39 +#: src/app/main/ui/workspace/sidebar/options/page.cljs msgid "workspace.options.canvas-background" msgstr "Fons del llenç" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:548 msgid "workspace.options.clip-content" msgstr "Trunca el contingut" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:600, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:605 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs msgid "workspace.options.component" msgstr "Component" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:163 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints" msgstr "Restriccions" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:150 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.bottom" msgstr "Inferior" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:141, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:152 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.center" msgstr "Centre" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:229 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.fix-when-scrolling" msgstr "Fixa en desplaçar" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:138 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.left" msgstr "Esquerra" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:140 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.leftright" msgstr "Esquerra i dreta" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:139 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.right" msgstr "Dreta" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:142, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:153 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.scale" msgstr "Escala" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:149 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.top" msgstr "Superior" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:151 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.topbottom" msgstr "Superior i inferior" -#: src/app/main/ui/workspace/sidebar/options.cljs:112 +#: src/app/main/ui/workspace/sidebar/options.cljs msgid "workspace.options.design" msgstr "Disseny" -#: src/app/main/ui/viewer/inspect/exports.cljs:139 +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, +#: src/app/main/ui/inspect/exports.cljs msgid "workspace.options.export" msgstr "Exporta" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, +#: src/app/main/ui/inspect/exports.cljs msgid "workspace.options.export-multiple" msgstr "Exporta la selecció" -#: src/app/main/ui/viewer/inspect/exports.cljs:195, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:237 +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, +#: src/app/main/ui/inspect/exports.cljs msgid "workspace.options.export-object" msgstr "Exporta 1 element" -#: src/app/main/ui/viewer/inspect/exports.cljs:178, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:219 +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs msgid "workspace.options.export.suffix" msgstr "Sufix" -#: src/app/main/ui/export.cljs:240 +#: 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.exporting-complete" msgstr "Exportació completa" -#: src/app/main/ui/export.cljs:172, src/app/main/ui/export.cljs:241, src/app/main/ui/viewer/inspect/exports.cljs:194, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:236 +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, +#: src/app/main/ui/inspect/exports.cljs msgid "workspace.options.exporting-object" msgstr "S'està exportant…" -#: src/app/main/ui/export.cljs:239 +#: 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.exporting-object-error" msgstr "Exportació fallida" -#: src/app/main/ui/export.cljs:242 +#: 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.exporting-object-slow" msgstr "Exportació inesperadament lenta" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:49, src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:174 +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs msgid "workspace.options.fill" msgstr "Emplenat" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:178 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.flows.add-flow-start" msgstr "Afegeix l'inici del flux" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -#, unused msgid "workspace.options.flows.flow-start" msgstr "Inici del flux" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:161 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.flows.flow-starts" msgstr "S'inicia el flux" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:29 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.auto" msgstr "Automàtic" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:157 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.column" msgstr "Columnes" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.grid-title" msgstr "Graella" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:196, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:237 msgid "workspace.options.grid.params.color" msgstr "Color" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.params.columns" msgstr "Columnes" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:259 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.gutter" msgstr "Espaiat" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:246 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.height" msgstr "Alçada" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:270 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.margin" msgstr "Marge" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.params.rows" msgstr "Files" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:216, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:290 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.set-default" msgstr "Estableix com a predeterminat" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.params.size" msgstr "Mida" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.params.type" msgstr "Tipus" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:231 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.bottom" msgstr "Inferior" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:229 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.center" msgstr "Centre" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:228 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.left" msgstr "Esquerra" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:232 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.right" msgstr "Dreta" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:225 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.stretch" msgstr "Estira" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:227 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.top" msgstr "Superior" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:211, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:288 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.use-default" msgstr "Usa valors predeterminats" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:247 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.width" msgstr "Ample" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:158 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.row" msgstr "Files" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:156 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.square" msgstr "Quadrat" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:48 +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs msgid "workspace.options.group-fill" msgstr "Emplenament del grup" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:42 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.group-stroke" msgstr "Traç del grup" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:406 msgid "workspace.options.height" msgstr "Altura" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:468 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-action" msgstr "Acció" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:41, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:367 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-after-delay" msgstr "Després de" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:614 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-animation" msgstr "Animació" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:406 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-animation-dissolve" msgstr "Dissol" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:405 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-animation-none" msgstr "Cap" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:412 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-animation-push" msgstr "Empenta" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:407 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-animation-slide" msgstr "Lliscament" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:604 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-background" msgstr "Afegeix una superposició de fons" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:590 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-close-outside" msgstr "Tanca en fer clic fora" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:372 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-close-overlay" msgstr "Tanca la superposició" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:56 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-close-overlay-dest" msgstr "Tanca la superposició: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:456 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-delay" msgstr "Retard" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:478 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-destination" msgstr "Destinació" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:661 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-duration" msgstr "Durada" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:674 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing" msgstr "Suavització" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:416 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing-ease" msgstr "Suau" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:417 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing-ease-in" msgstr "Entrada suau" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:419 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing-ease-in-out" msgstr "Entrada/sortida suau" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:418 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing-ease-out" msgstr "Sortida suau" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:415 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing-linear" msgstr "Lineal" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -#, unused msgid "workspace.options.interaction-in" msgstr "Entrada" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:39, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:364 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-mouse-enter" msgstr "El ratolí entra" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:40, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:365 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-mouse-leave" msgstr "El ratolí abandona" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:458, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:459, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:464, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:663, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:665, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:669 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-ms" msgstr "ms" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:369 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-navigate-to" msgstr "Navega a" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:50 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-navigate-to-dest" msgstr "Navega a: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:51, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:53, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:55, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:380 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-none" msgstr "(sense definir)" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:691 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-offset-effect" msgstr "Efecte de desplaçament" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:35, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:360 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-on-click" msgstr "En fer clic" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:370 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-open-overlay" msgstr "Obre la superposició" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:52 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-open-overlay-dest" msgstr "Obre la superposició: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:59, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:374 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-open-url" msgstr "Obre una URL" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -#, unused msgid "workspace.options.interaction-out" msgstr "Sortida" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:403 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-bottom-center" msgstr "Inferior centrat" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:401 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-bottom-left" msgstr "Inferior esquerra" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:402 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-bottom-right" msgstr "Inferior dreta" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:397 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-center" msgstr "Centre" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:396 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-manual" msgstr "Manual" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:400 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-top-center" msgstr "Centre superior" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:398 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-top-left" msgstr "Superior esquerra" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:399 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-top-right" msgstr "Superior dreta" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:524 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-position" msgstr "Posició" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:494 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-preserve-scroll" msgstr "Conserva la posició del desplaçament" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:58, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:373 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-prev-screen" msgstr "Pantalla anterior" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:57, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:379, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:393, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:394 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-self" msgstr "a si mateix" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:371 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-toggle-overlay" msgstr "Commuta la superposició" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:54 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-toggle-overlay-dest" msgstr "Commuta la superposició: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:445 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-trigger" msgstr "Activador" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:503 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-url" msgstr "URL" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:37, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:362 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-while-hovering" msgstr "Mentre el cursor està damunt" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:38, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:363 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-while-pressing" msgstr "Mentre es prem" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:724 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interactions" msgstr "Interaccions" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:137 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.color" msgstr "Color" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:126 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.color-burn" msgstr "Crema el color" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:129 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.color-dodge" msgstr "Aclareix el color" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:124 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.darken" msgstr "Enfosqueix" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:133 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.difference" msgstr "Resta" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:134 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.exclusion" msgstr "Exclusió" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:132 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.hard-light" msgstr "Llum forta" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:135 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.hue" msgstr "To" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:127 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.lighten" msgstr "Il·lumina" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:138 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.luminosity" msgstr "Lluminositat" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:125 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.multiply" msgstr "Multiplica" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:123 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.normal" msgstr "Llum normal" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:130 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.overlay" msgstr "Superposa" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:136 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.saturation" msgstr "Saturació" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:128 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.screen" msgstr "Pantalla" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:131 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.soft-light" msgstr "Llum suau" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -#, unused msgid "workspace.options.layer-options.title" msgstr "Capa" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -#, unused msgid "workspace.options.layer-options.title.group" msgstr "Agrupa les capes" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -#, unused msgid "workspace.options.layer-options.title.multiple" msgstr "Capes seleccionades" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout-item.advanced-ops" msgstr "Opcions avançades" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.bottom" msgstr "Baix" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.direction.column" msgstr "Columna" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.direction.column-reverse" msgstr "Columna invertida" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.direction.row" msgstr "Fila" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.direction.row-reverse" msgstr "Fila invertida" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.gap" msgstr "Espaiat" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.left" msgstr "Esquerra" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout.margin" msgstr "Marge" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout.margin-all" msgstr "Tots els costats" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout.margin-simple" msgstr "Marge senzill" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.packed" msgstr "ajuntat" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.padding-all" msgstr "Tots els costats" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.right" msgstr "Dreta" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.space-around" msgstr "separat" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.space-between" msgstr "espaiat" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.top" msgstr "Dalt" -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:146 +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs msgid "workspace.options.more-colors" msgstr "Més colors" -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:123 +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs msgid "workspace.options.more-lib-colors" msgstr "Més llibreries de colors" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:161 msgid "workspace.options.opacity" msgstr "Opacitat" -#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.position" msgstr "Posició" -#: src/app/main/ui/workspace/sidebar/options.cljs:157 +#: src/app/main/ui/workspace/sidebar/options.cljs msgid "workspace.options.prototype" msgstr "Prototip" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:469, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:481 msgid "workspace.options.radius" msgstr "Radi" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:513 +#: 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:522 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.radius-bottom-right" msgstr "Inferior dreta" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:495 +#: 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:504 +#: 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:532 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.radius.all-corners" msgstr "Tots els cantons" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:533 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.radius.single-corners" msgstr "Cantons individuals" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:183 msgid "workspace.options.recent-fonts" msgstr "Recent" -#: src/app/main/ui/export.cljs:284 +#: 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 "Torna-ho a provar" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:451 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.rotation" msgstr "Rotació" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:180 msgid "workspace.options.search-font" msgstr "Cerca tipografia" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:741 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.select-a-shape" msgstr "" "Seleccioneu una forma, un tauler o un grup per a arrossegar una connexió a " "un altre tauler." -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:105 +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs msgid "workspace.options.selection-color" msgstr "Colors seleccionats" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:47 +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs msgid "workspace.options.selection-fill" msgstr "Emplenament de selecció" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:41 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.selection-stroke" msgstr "Traç de la selecció" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:40, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:198, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:200 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.blur" msgstr "Difuminat" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:238 msgid "workspace.options.shadow-options.color" msgstr "Color de l'ombra" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:144 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.drop-shadow" msgstr "Ombra caiguda" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:145 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.inner-shadow" msgstr "Ombra interior" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:38, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:186 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.offsetx" msgstr "X" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:39, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:224 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.offsety" msgstr "Y" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:41, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:211, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:213 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.spread" msgstr "Difusió" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:296 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.title" msgstr "Ombra" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:295 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.title.group" msgstr "Ombra del grup" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:294 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.title.multiple" msgstr "Ombres de selecció" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:193 +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs msgid "workspace.options.show-fill-on-export" msgstr "Mostra en l'exportació" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:562 msgid "workspace.options.show-in-viewer" msgstr "Mostra al visor" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:162 +#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.size" msgstr "Mida" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:355 +#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs msgid "workspace.options.size-presets" msgstr "Mides predefinides" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:43 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke" msgstr "Traç" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -#, unused msgid "workspace.options.stroke-cap.circle-marker" msgstr "Marcador circular" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -#, unused msgid "workspace.options.stroke-cap.diamond-marker" msgstr "Marcador de diamant" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -#, unused msgid "workspace.options.stroke-cap.line-arrow" msgstr "Fletxa de línia" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:124 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.none" msgstr "Cap" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:132 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.round" msgstr "Redó" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:133 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.square" msgstr "Quadrat" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -#, unused msgid "workspace.options.stroke-cap.square-marker" msgstr "Marcador quadrat" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -#, unused msgid "workspace.options.stroke-cap.triangle-arrow" msgstr "Fletxa triangular" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:192 msgid "workspace.options.stroke-color" msgstr "Color del traç" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:165 msgid "workspace.options.stroke-width" msgstr "Ample del traç" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:87 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.center" msgstr "Centrat" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:105 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.dashed" msgstr "A ratlles" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:104 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.dotted" msgstr "Puntejat" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:88 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.inner" msgstr "Interior" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:106 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.mixed" msgstr "Mixte" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:89 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.outer" msgstr "Exterior" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:103 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.solid" msgstr "Sòlid" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:115 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.align-bottom" msgstr "Alinea a baix" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:111 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.align-middle" msgstr "Alinea al centre" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:107 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.align-top" msgstr "Alinea a dalt" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:82 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.direction-ltr" msgstr "LTR" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:87 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.direction-rtl" msgstr "RTL" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:149 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.grow-auto-height" msgstr "Alt automàtic" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:145 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.grow-auto-width" msgstr "Ample automàtic" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:141 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.grow-fixed" msgstr "Fix" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:381 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.options.text-options.letter-spacing" msgstr "Espaiat de la lletra" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:364 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.options.text-options.line-height" msgstr "Alçada de la línia" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused msgid "workspace.options.text-options.lowercase" msgstr "Minúscules" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.options.text-options.none" msgstr "Cap" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:176 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.strikethrough" msgstr "Ratllat (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:51 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.text-align-center" msgstr "Alinea el centre (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:59 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.text-align-justify" msgstr "Justifica (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:47 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.text-align-left" msgstr "Alinea a l'esquerra (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:55 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.text-align-right" msgstr "Alinea a la dreta (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:189 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.title" msgstr "Text" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:188 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.title-group" msgstr "Text del grup" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:187 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.title-selection" msgstr "Text de la selecció" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused msgid "workspace.options.text-options.titlecase" msgstr "Inicials en majúscules" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:171 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.underline" msgstr "Subratllat (%s)" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused msgid "workspace.options.text-options.uppercase" msgstr "Majúscules" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:745 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.use-play-button" msgstr "" "Utilitzeu el botó de «play» de la capçalera per a executar la vista de " "prototip." -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:395 msgid "workspace.options.width" msgstr "Ample" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:427 msgid "workspace.options.x" msgstr "X" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:438 msgid "workspace.options.y" msgstr "Y" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:167 msgid "workspace.path.actions.add-node" msgstr "Afegeix un node (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:174 msgid "workspace.path.actions.delete-node" msgstr "Elimina el node (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:152 msgid "workspace.path.actions.draw-nodes" msgstr "Dibuixa els nodes (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:189 msgid "workspace.path.actions.join-nodes" msgstr "Uneix els nodes (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:204 msgid "workspace.path.actions.make-corner" msgstr "Converteix a cantó (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:211 msgid "workspace.path.actions.make-curve" msgstr "Converteix a corba (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:182 msgid "workspace.path.actions.merge-nodes" msgstr "Combina els nodes (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:159 msgid "workspace.path.actions.move-nodes" msgstr "Mou els nodes (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:196 msgid "workspace.path.actions.separate-nodes" msgstr "Separa els nodes (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:218 msgid "workspace.path.actions.snap-nodes" msgstr "Alinea els nodes (%s)" -#: src/app/main/ui/workspace/context_menu.cljs:193 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.back" msgstr "Envia-ho al fons" -#: src/app/main/ui/workspace/context_menu.cljs:190 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.backward" msgstr "Envia-ho darrere" -#: src/app/main/ui/workspace/context_menu.cljs:139 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.copy" msgstr "Copia" -#: src/app/main/ui/workspace/context_menu.cljs:275 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.create-artboard-from-selection" msgstr "Selecciona al tauler" -#: src/app/main/ui/workspace/context_menu.cljs:465 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.create-component" msgstr "Crea un component" -#: src/app/main/ui/workspace/context_menu.cljs:142 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.cut" msgstr "Retalla" -#: src/app/main/ui/workspace/context_menu.cljs:486 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.delete" msgstr "Elimina" -#: src/app/main/ui/workspace/context_menu.cljs:391 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.delete-flow-start" msgstr "Elimina l'inici del flux" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:432 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.detach-instance" msgstr "Desconnecta la instància" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:431 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.detach-instances-in-bulk" msgstr "Desenganxa les instàncies" -#: src/app/main/ui/workspace/context_menu.cljs:335, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:75 msgid "workspace.shape.menu.difference" msgstr "Diferència" -#: src/app/main/ui/workspace/context_menu.cljs:148 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.duplicate" msgstr "Duplica" -#: src/app/main/ui/workspace/context_menu.cljs:321 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.edit" msgstr "Edita" -#: src/app/main/ui/workspace/context_menu.cljs:341 msgid "workspace.shape.menu.exclude" msgstr "Exclou" -#: src/app/main/ui/workspace/context_menu.cljs:348, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:89 msgid "workspace.shape.menu.flatten" msgstr "Aplana" -#: src/app/main/ui/workspace/context_menu.cljs:208 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.flip-horizontal" msgstr "Volteja horitzontalment" -#: src/app/main/ui/workspace/context_menu.cljs:204 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.flip-vertical" msgstr "Volteja verticalment" -#: src/app/main/ui/workspace/context_menu.cljs:394 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.flow-start" msgstr "Inici del flux" -#: src/app/main/ui/workspace/context_menu.cljs:184 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.forward" msgstr "Porta-ho endavant" -#: src/app/main/ui/workspace/context_menu.cljs:187 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.front" msgstr "Porta-ho a primer pla" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.go-main" msgstr "Vés al fitxer del component principal" -#: src/app/main/ui/workspace/context_menu.cljs:261 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.group" msgstr "Agrupa" -#: src/app/main/ui/workspace/context_menu.cljs:363, src/app/main/ui/workspace/sidebar/layer_item.cljs:145 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.hide" msgstr "Amaga" -#: src/app/main/ui/workspace/context_menu.cljs:548, src/app/main/ui/workspace/main_menu.cljs:408 msgid "workspace.shape.menu.hide-ui" msgstr "Mostra/Amaga la interfície" -#: src/app/main/ui/workspace/context_menu.cljs:338 msgid "workspace.shape.menu.intersection" msgstr "Intersecció" -#: src/app/main/ui/workspace/context_menu.cljs:371, src/app/main/ui/workspace/sidebar/layer_item.cljs:153 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.lock" msgstr "Bloca" -#: src/app/main/ui/workspace/context_menu.cljs:266 +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.mask" msgstr "Màscara" -#: src/app/main/ui/workspace/context_menu.cljs:145, src/app/main/ui/workspace/context_menu.cljs:545 +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.paste" msgstr "Enganxa" -#: src/app/main/ui/workspace/context_menu.cljs:331 msgid "workspace.shape.menu.path" msgstr "Camí" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:436 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.reset-overrides" msgstr "Desfés les modificacions" -#: src/app/main/ui/workspace/context_menu.cljs:174 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.select-layer" msgstr "Selecciona la capa" -#: src/app/main/ui/workspace/context_menu.cljs:360, src/app/main/ui/workspace/sidebar/layer_item.cljs:144 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.show" msgstr "Mostra" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:442, src/app/main/ui/workspace/sidebar/assets/components.cljs:586 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.show-main" msgstr "Vés al component principal" -#: src/app/main/ui/workspace/context_menu.cljs:221 msgid "workspace.shape.menu.thumbnail-remove" msgstr "Elimina la miniatura" -#: src/app/main/ui/workspace/context_menu.cljs:223 msgid "workspace.shape.menu.thumbnail-set" msgstr "Estableix com a miniatura" -#: src/app/main/ui/workspace/context_menu.cljs:326 msgid "workspace.shape.menu.transform-to-path" msgstr "Transforma en camí" -#: src/app/main/ui/workspace/context_menu.cljs:257 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.ungroup" msgstr "Desagrupa" -#: src/app/main/ui/workspace/context_menu.cljs:332, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:70 msgid "workspace.shape.menu.union" msgstr "Unió" -#: src/app/main/ui/workspace/context_menu.cljs:368, src/app/main/ui/workspace/sidebar/layer_item.cljs:152 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.unlock" msgstr "Desbloca" -#: src/app/main/ui/workspace/context_menu.cljs:271 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.unmask" msgstr "Desemmascara" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.update-components-in-bulk" msgstr "Actualitza els components principals" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:445 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.update-main" msgstr "Actualitza el component principal" -#: src/app/main/ui/workspace/right_header.cljs:231, src/app/main/ui/workspace/right_header.cljs:232 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.sidebar.history" msgstr "Historial (%s)" -#: src/app/main/ui/workspace/sidebar/layers.cljs:522, src/app/main/ui/workspace/sidebar.cljs:100 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.sidebar.layers" msgstr "Capes" -#: src/app/main/ui/workspace/sidebar/layers.cljs:308, src/app/main/ui/workspace/sidebar/layers.cljs:380 msgid "workspace.sidebar.layers.components" msgstr "Components" -#: src/app/main/ui/workspace/sidebar/layers.cljs:305, src/app/main/ui/workspace/sidebar/layers.cljs:338 msgid "workspace.sidebar.layers.frames" msgstr "Taulers" -#: src/app/main/ui/workspace/sidebar/layers.cljs:306, src/app/main/ui/workspace/sidebar/layers.cljs:352 msgid "workspace.sidebar.layers.groups" msgstr "Grups" -#: src/app/main/ui/workspace/sidebar/layers.cljs:310, src/app/main/ui/workspace/sidebar/layers.cljs:408 msgid "workspace.sidebar.layers.images" msgstr "Imatges" -#: src/app/main/ui/workspace/sidebar/layers.cljs:307, src/app/main/ui/workspace/sidebar/layers.cljs:366 msgid "workspace.sidebar.layers.masks" msgstr "Màscares" -#: src/app/main/ui/workspace/sidebar/layers.cljs:289 msgid "workspace.sidebar.layers.search" msgstr "Cerca capes" -#: src/app/main/ui/workspace/sidebar/layers.cljs:311, src/app/main/ui/workspace/sidebar/layers.cljs:422 msgid "workspace.sidebar.layers.shapes" msgstr "Formes" -#: src/app/main/ui/workspace/sidebar/layers.cljs:309, src/app/main/ui/workspace/sidebar/layers.cljs:394 msgid "workspace.sidebar.layers.texts" msgstr "Textos" -#: src/app/main/ui/viewer/inspect/attributes/svg.cljs:56, src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs:91 +#: src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs, +#: src/app/main/ui/inspect/attributes/svg.cljs msgid "workspace.sidebar.options.svg-attrs.title" msgstr "Atributs SVG importats" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs:217 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs msgid "workspace.sidebar.sitemap" msgstr "Pàgines" -#: src/app/main/ui/workspace/left_header.cljs:91 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.sitemap" msgstr "Mapa del lloc" -#: src/app/main/ui/workspace/sidebar.cljs:120 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.assets" msgstr "Recursos" -#: src/app/main/ui/workspace/palette.cljs:165, src/app/main/ui/workspace/palette.cljs:166 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.color-palette" msgstr "Paleta de colors (%s)" -#: src/app/main/ui/workspace/right_header.cljs:220, src/app/main/ui/workspace/right_header.cljs:221 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.comments" msgstr "Comentaris (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:180, src/app/main/ui/workspace/top_toolbar.cljs:181 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.curve" msgstr "Corba (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:160, src/app/main/ui/workspace/top_toolbar.cljs:161 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.ellipse" msgstr "El·lipse (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:142, src/app/main/ui/workspace/top_toolbar.cljs:143 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.frame" msgstr "Tauler (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:59, src/app/main/ui/workspace/top_toolbar.cljs:60 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.image" msgstr "Imatge (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:132, src/app/main/ui/workspace/top_toolbar.cljs:133 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.move" msgstr "Mou (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:189, src/app/main/ui/workspace/top_toolbar.cljs:190 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.path" msgstr "Camí (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:151, src/app/main/ui/workspace/top_toolbar.cljs:152 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.rect" msgstr "Rectangle (%s)" #: src/app/main/ui/workspace/left_toolbar.cljs -#, unused msgid "workspace.toolbar.shortcuts" msgstr "Dreceres (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:169, src/app/main/ui/workspace/top_toolbar.cljs:170 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.text" msgstr "Text (%s)" -#: src/app/main/ui/workspace/palette.cljs:173, src/app/main/ui/workspace/palette.cljs:174 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.text-palette" msgstr "Tipografies (%s)" -#: src/app/main/ui/workspace/sidebar/history.cljs:342 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.empty" msgstr "Encara no hi ha canvis a l'historial" -#: src/app/main/ui/workspace/sidebar/history.cljs:147 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.entry.delete" msgstr "S'ha eliminat %s" -#: src/app/main/ui/workspace/sidebar/history.cljs:146 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.entry.modify" msgstr "S'ha modificat %s" -#: src/app/main/ui/workspace/sidebar/history.cljs:148 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.entry.move" msgstr "Objectes moguts" -#: src/app/main/ui/workspace/sidebar/history.cljs:111 msgid "workspace.undo.entry.multiple.circle" msgstr "cercles" -#: src/app/main/ui/workspace/sidebar/history.cljs:112 msgid "workspace.undo.entry.multiple.color" msgstr "colors" -#: src/app/main/ui/workspace/sidebar/history.cljs:113 msgid "workspace.undo.entry.multiple.component" msgstr "components" -#: src/app/main/ui/workspace/sidebar/history.cljs:114 msgid "workspace.undo.entry.multiple.curve" msgstr "corbes" -#: src/app/main/ui/workspace/sidebar/history.cljs:115 msgid "workspace.undo.entry.multiple.frame" msgstr "tauler" -#: src/app/main/ui/workspace/sidebar/history.cljs:116 msgid "workspace.undo.entry.multiple.group" msgstr "grups" -#: src/app/main/ui/workspace/sidebar/history.cljs:117 msgid "workspace.undo.entry.multiple.media" msgstr "recursos gràfics" -#: src/app/main/ui/workspace/sidebar/history.cljs:118 msgid "workspace.undo.entry.multiple.multiple" msgstr "objectes" -#: src/app/main/ui/workspace/sidebar/history.cljs:119 msgid "workspace.undo.entry.multiple.page" msgstr "pàgines" -#: src/app/main/ui/workspace/sidebar/history.cljs:120 msgid "workspace.undo.entry.multiple.path" msgstr "camins" -#: src/app/main/ui/workspace/sidebar/history.cljs:121 msgid "workspace.undo.entry.multiple.rect" msgstr "rectangles" -#: src/app/main/ui/workspace/sidebar/history.cljs:122 msgid "workspace.undo.entry.multiple.shape" msgstr "formes" -#: src/app/main/ui/workspace/sidebar/history.cljs:123 msgid "workspace.undo.entry.multiple.text" msgstr "textos" -#: src/app/main/ui/workspace/sidebar/history.cljs:124 msgid "workspace.undo.entry.multiple.typography" msgstr "recursos tipogràfics" -#: src/app/main/ui/workspace/sidebar/history.cljs:145 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.entry.new" msgstr "Nou %s" -#: src/app/main/ui/workspace/sidebar/history.cljs:125 msgid "workspace.undo.entry.single.circle" msgstr "cercle" -#: src/app/main/ui/workspace/sidebar/history.cljs:126 msgid "workspace.undo.entry.single.color" msgstr "color" -#: src/app/main/ui/workspace/sidebar/history.cljs:127 msgid "workspace.undo.entry.single.component" msgstr "component" -#: src/app/main/ui/workspace/sidebar/history.cljs:128 msgid "workspace.undo.entry.single.curve" msgstr "corba" -#: src/app/main/ui/workspace/sidebar/history.cljs:129 msgid "workspace.undo.entry.single.frame" msgstr "tauler" -#: src/app/main/ui/workspace/sidebar/history.cljs:130 msgid "workspace.undo.entry.single.group" msgstr "grup" -#: src/app/main/ui/workspace/sidebar/history.cljs:131 msgid "workspace.undo.entry.single.image" msgstr "imatge" -#: src/app/main/ui/workspace/sidebar/history.cljs:132 msgid "workspace.undo.entry.single.media" msgstr "gràfic" -#: src/app/main/ui/workspace/sidebar/history.cljs:133 msgid "workspace.undo.entry.single.multiple" msgstr "objecte" -#: src/app/main/ui/workspace/sidebar/history.cljs:134 msgid "workspace.undo.entry.single.page" msgstr "pàgina" -#: src/app/main/ui/workspace/sidebar/history.cljs:135 msgid "workspace.undo.entry.single.path" msgstr "camí" -#: src/app/main/ui/workspace/sidebar/history.cljs:136 msgid "workspace.undo.entry.single.rect" msgstr "rectangle" -#: src/app/main/ui/workspace/sidebar/history.cljs:137 msgid "workspace.undo.entry.single.shape" msgstr "forma" -#: src/app/main/ui/workspace/sidebar/history.cljs:138 msgid "workspace.undo.entry.single.text" msgstr "text" -#: src/app/main/ui/workspace/sidebar/history.cljs:139 msgid "workspace.undo.entry.single.typography" msgstr "recurs tipogràfic" -#: src/app/main/ui/workspace/sidebar/history.cljs:149 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.entry.unknown" msgstr "Operació sobre %s" -#: src/app/main/ui/workspace/sidebar/history.cljs:335 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.title" msgstr "Historial" -#: src/app/main/data/workspace/libraries.cljs:1094 +#: src/app/main/data/workspace/libraries.cljs msgid "workspace.updates.dismiss" msgstr "Descarta" -#: src/app/main/data/workspace/libraries.cljs:1090 +#: src/app/main/data/workspace/libraries.cljs msgid "workspace.updates.there-are-updates" msgstr "Hi ha actualitzacions a les biblioteques compartides" -#: src/app/main/data/workspace/libraries.cljs:1097 +#: src/app/main/data/workspace/libraries.cljs msgid "workspace.updates.update" msgstr "Actualitza" -#, unused msgid "workspace.viewport.click-to-close-path" msgstr "Feu clic per a tancar el camí" diff --git a/frontend/translations/cs.po b/frontend/translations/cs.po index e4a0d5794d..862545f4cd 100644 --- a/frontend/translations/cs.po +++ b/frontend/translations/cs.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "PO-Revision-Date: 2024-06-17 08:07+0000\n" "Last-Translator: Anonymous \n" -"Language-Team: Czech " -"\n" +"Language-Team: Czech \n" "Language: cs\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" @@ -11,528 +11,482 @@ msgstr "" "Plural-Forms: nplurals=3; plural=((n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2);\n" "X-Generator: Weblate 5.6-dev\n" -#: src/app/main/ui/auth/register.cljs:151, src/app/main/ui/viewer/login.cljs:104 +#: src/app/main/ui/auth/register.cljs msgid "auth.already-have-account" msgstr "Už máte účet?" -#: src/app/main/ui/auth/register.cljs:299 +#: src/app/main/ui/auth/register.cljs msgid "auth.check-your-email" msgstr "" "Zkontrolujte svůj e-mail a klikněte na odkaz pro ověření, abyste mohli " "začít používat Penpot." -#: src/app/main/ui/auth/recovery.cljs:78 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.confirm-password" msgstr "Potvrďte heslo" -#: src/app/main/ui/auth/register.cljs:163 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.create-demo-account" msgstr "Vytvořit demo účet" #: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs -#, unused msgid "auth.create-demo-profile" msgstr "Chcete si to jen vyzkoušet?" -#: src/app/main/ui/auth/login.cljs:43 +#: src/app/main/ui/auth/register.cljs msgid "auth.demo-warning" msgstr "" "Toto je DEMO služba, NEPOUŽÍVEJTE ji pro skutečnou práci, projekty budou " "pravidelně mazány." -#: src/app/main/ui/auth/login.cljs:189, src/app/main/ui/viewer/login.cljs:90 +#: src/app/main/ui/auth/login.cljs msgid "auth.forgot-password" msgstr "Zapomněli jste heslo?" -#: src/app/main/ui/auth/register.cljs:254 +#: src/app/main/ui/auth/register.cljs msgid "auth.fullname" msgstr "Jméno a příjmení" -#: src/app/main/ui/auth/register.cljs:155, src/app/main/ui/viewer/login.cljs:107 +#: src/app/main/ui/auth/register.cljs +#, fuzzy msgid "auth.login-here" msgstr "Přihlaste se zde" -#: src/app/main/ui/auth/login.cljs:195 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-submit" msgstr "Přihlásit se" -#: src/app/main/ui/auth/login.cljs:222 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-github-submit" msgstr "GitHub" -#: src/app/main/ui/auth/login.cljs:228 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-gitlab-submit" msgstr "GitLab" -#: src/app/main/ui/auth/login.cljs:216 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-google-submit" msgstr "Google" -#: src/app/main/ui/auth/login.cljs:201 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-ldap-submit" msgstr "LDAP" -#: src/app/main/ui/auth/login.cljs:234, src/app/main/ui/auth/login.cljs:255 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-oidc-submit" msgstr "OpenID" -#: src/app/main/ui/auth/register.cljs:217, src/app/main/ui/dashboard/team_form.cljs:76, src/app/main/ui/onboarding/team_choice.cljs:180, src/app/main/ui/settings/access_tokens.cljs:66, src/app/main/ui/settings/feedback.cljs:34, src/app/main/ui/settings/profile.cljs:45, src/app/main/ui/workspace/sidebar/assets/groups.cljs:108 +#: src/app/main/ui/settings/team-form.cljs, src/app/main/ui/auth/register.cljs, src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/onboarding/team_choice.cljs, src/app/main/ui/settings/access_tokens.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/settings/profile.cljs, src/app/main/ui/workspace/sidebar/assets.cljs msgid "auth.name.not-all-space" msgstr "Název musí obsahovat jiný znak než mezeru." -#: src/app/main/ui/auth/register.cljs:218, src/app/main/ui/dashboard/team_form.cljs:77, src/app/main/ui/onboarding/team_choice.cljs:181, src/app/main/ui/settings/access_tokens.cljs:67, src/app/main/ui/settings/feedback.cljs:33, src/app/main/ui/settings/profile.cljs:44, src/app/main/ui/workspace/sidebar/assets/groups.cljs:109 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/onboarding/team_choice.cljs, src/app/main/ui/settings/access_tokens.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/settings/profile.cljs, src/app/main/ui/workspace/sidebar/assets.cljs msgid "auth.name.too-long" msgstr "Název musí obsahovat maximálně 250 znaků." -#: src/app/main/ui/auth/recovery.cljs:71 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.new-password" msgstr "Zadejte nové heslo" -#: src/app/main/ui/auth/recovery.cljs:42 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.notifications.invalid-token-error" msgstr "Token pro obnovení je neplatný." -#: src/app/main/ui/auth/recovery.cljs:46 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.notifications.password-changed-successfully" msgstr "Heslo bylo úspěšně změněno" -#: src/app/main/ui/auth/recovery_request.cljs:57 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.notifications.profile-not-verified" msgstr "Profil není ověřen, před pokračováním prosím ověřte profil." -#: src/app/main/ui/auth/recovery_request.cljs:40 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.notifications.recovery-token-sent" msgstr "Odkaz na obnovení hesla byl zaslán na váš e-mail." -#: src/app/main/ui/auth/verify_token.cljs:47 +#: src/app/main/ui/auth/verify_token.cljs msgid "auth.notifications.team-invitation-accepted" msgstr "Připojení k týmu proběhlo úspěšně" -#: src/app/main/ui/auth/login.cljs:179, src/app/main/ui/auth/register.cljs:115 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.password" msgstr "Heslo" -#: src/app/main/ui/auth/register.cljs:114 +#: src/app/main/ui/auth/register.cljs msgid "auth.password-length-hint" msgstr "Minimálně 8 znaků" -#: src/app/main/ui/auth/recovery.cljs:61, src/app/main/ui/auth/recovery.cljs:62, src/app/main/ui/auth/register.cljs:81, src/app/main/ui/settings/password.cljs:75, src/app/main/ui/settings/password.cljs:76, src/app/main/ui/settings/password.cljs:77 +#: src/app/main/ui/auth/register.cljs msgid "auth.password-not-empty" msgstr "Heslo musí obsahovat jiný znak než mezeru." -#: src/app/main/ui/auth.cljs:41 msgid "auth.privacy-policy" msgstr "Zásady ochrany osobních údajů" -#: src/app/main/ui/auth/recovery_request.cljs:88 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-submit" msgstr "Obnovit heslo" -#: src/app/main/ui/auth/recovery_request.cljs:101 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-subtitle" msgstr "Pošleme vám e-mail s pokyny" -#: src/app/main/ui/auth/recovery_request.cljs:100 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-title" msgstr "Zapomněli jste heslo?" -#: src/app/main/ui/auth/recovery.cljs:82 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.recovery-submit" msgstr "Změnit heslo" -#: src/app/main/ui/auth/login.cljs:298, src/app/main/ui/viewer/login.cljs:93 +#: src/app/main/ui/auth/login.cljs msgid "auth.register" msgstr "Ještě nemáte účet?" -#: src/app/main/ui/auth/login.cljs:302, src/app/main/ui/auth/register.cljs:121, src/app/main/ui/auth/register.cljs:263, src/app/main/ui/viewer/login.cljs:97 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.register-submit" msgstr "Vytvořit účet" -#: src/app/main/ui/auth/register.cljs:140 +#: src/app/main/ui/auth/register.cljs msgid "auth.register-title" msgstr "Vytvořit účet" #: src/app/main/ui/auth.cljs -#, unused msgid "auth.sidebar-tagline" msgstr "Open source řešení pro design a prototypování." -#: src/app/main/ui/auth.cljs:33, src/app/main/ui/dashboard/sidebar.cljs:1022, src/app/main/ui/workspace/main_menu.cljs:150 msgid "auth.terms-of-service" msgstr "Všeobecné podmínky poskytování služeb" -#, unused +#: src/app/main/ui/auth/register.cljs msgid "auth.terms-privacy-agreement" msgstr "" "Vytvořením nového účtu souhlasíte s všeobecnými podmínkami poskytování " "služeb a zásadami ochrany osobních údajů." -#: src/app/main/ui/auth/register.cljs:297 +#: src/app/main/ui/auth/register.cljs msgid "auth.verification-email-sent" msgstr "Ověřovací e-mail jsme odeslali na adresu" #: src/app/main/ui/onboarding/questions.cljs -#, unused msgid "branding-illustrations-marketing-pieces" msgstr "...branding, ilustrace, marketing atd." -#: src/app/main/ui/workspace/libraries.cljs:228 msgid "common.publish" msgstr "Zveřejnit" -#: src/app/main/ui/viewer/share_link.cljs:304, src/app/main/ui/viewer/share_link.cljs:314 msgid "common.share-link.all-users" msgstr "Všichni uživatelé Penpotu" -#: src/app/main/ui/viewer/share_link.cljs:198 msgid "common.share-link.confirm-deletion-link-description" msgstr "" "Opravdu chcete tento odkaz odstranit? Pokud to uděláte, nebude už pro " "nikoho dostupný" -#: src/app/main/ui/viewer/share_link.cljs:259, src/app/main/ui/viewer/share_link.cljs:289 msgid "common.share-link.current-tag" msgstr "(aktuální)" -#: src/app/main/ui/viewer/share_link.cljs:207, src/app/main/ui/viewer/share_link.cljs:214 msgid "common.share-link.destroy-link" msgstr "Zničit odkaz" -#: src/app/main/ui/viewer/share_link.cljs:221 msgid "common.share-link.get-link" msgstr "Získat odkaz" -#: src/app/main/ui/viewer/share_link.cljs:139 msgid "common.share-link.link-copied-success" msgstr "Odkaz byl úspěšně zkopírován" -#: src/app/main/ui/viewer/share_link.cljs:231 msgid "common.share-link.manage-ops" msgstr "Spravovat oprávnění" -#: src/app/main/ui/viewer/share_link.cljs:277 msgid "common.share-link.page-shared" msgid_plural "common.share-link.page-shared" msgstr[0] "1 sdílená stránka" msgstr[1] "%s sdílené stránky" msgstr[2] "%s sdílených stránek" -#: src/app/main/ui/viewer/share_link.cljs:298 msgid "common.share-link.permissions-can-comment" msgstr "Může komentovat" -#: src/app/main/ui/viewer/share_link.cljs:308 msgid "common.share-link.permissions-can-inspect" msgstr "Může prohlížet kód" -#: src/app/main/ui/viewer/share_link.cljs:193 msgid "common.share-link.permissions-hint" msgstr "Kdokoliv s odkazem bude mít přístup" -#: src/app/main/ui/viewer/share_link.cljs:241 msgid "common.share-link.permissions-pages" msgstr "Sdílené stránky" -#: src/app/main/ui/viewer/share_link.cljs:183 msgid "common.share-link.placeholder" msgstr "Odkaz ke sdílení se zobrazí zde" -#: src/app/main/ui/viewer/share_link.cljs:303, src/app/main/ui/viewer/share_link.cljs:313 msgid "common.share-link.team-members" msgstr "Pouze členové týmu" -#: src/app/main/ui/viewer/share_link.cljs:171 msgid "common.share-link.title" msgstr "Sdílet prototypy" -#: src/app/main/ui/viewer/share_link.cljs:269 msgid "common.share-link.view-all" msgstr "Vybrat vše" -#: src/app/main/ui/workspace/libraries.cljs:224 msgid "common.unpublish" msgstr "Zrušit zveřejnění" -#: src/app/main/ui/dashboard/projects.cljs:85 +#: src/app/main/ui/dashboard/projects.cljs msgid "dasboard.team-hero.management" msgstr "Správa týmu" -#: src/app/main/ui/dashboard/projects.cljs:84 +#: src/app/main/ui/dashboard/projects.cljs msgid "dasboard.team-hero.text" msgstr "" "Penpot je určený pro týmy. Pozvěte členy ke spolupráci na projektech a " "souborech" -#: src/app/main/ui/dashboard/projects.cljs:82 +#: src/app/main/ui/dashboard/projects.cljs msgid "dasboard.team-hero.title" msgstr "Vytvořte tým!" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.tutorial-hero.info" msgstr "Naučte se základy Penpotu a pobavte se zároveň v tomto tutoriálu." #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.tutorial-hero.start" msgstr "Spustit tutoriál" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.tutorial-hero.title" msgstr "Praktický tutoriál" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.walkthrough-hero.info" msgstr "Projděte si Penpot a seznamte se s jeho hlavními funkcemi." #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.walkthrough-hero.start" msgstr "Začít prohlídku" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.walkthrough-hero.title" msgstr "Průvodce rozhraním" -#: src/app/main/ui/settings/access_tokens.cljs:115 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.copied-success" msgstr "Zkopírovaný token" -#: src/app/main/ui/settings/access_tokens.cljs:202 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.create" msgstr "Generovat nový token" -#: src/app/main/ui/settings/access_tokens.cljs:76 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.create.success" msgstr "Přístupový token byl úspěšně vytvořen." -#: src/app/main/ui/settings/access_tokens.cljs:300 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.empty.add-one" msgstr "" "Pro vygenerování nového tokenu stiskněte tlačítko \"Vygenerovat nový " "token\"." -#: src/app/main/ui/settings/access_tokens.cljs:299 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.empty.no-access-tokens" msgstr "Zatím nemáte žádné tokeny." -#: src/app/main/ui/settings/access_tokens.cljs:53 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.errors-required-name" msgstr "Jméno je povinné" -#: src/app/main/ui/settings/access_tokens.cljs:147 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-180-days" msgstr "180 dní" -#: src/app/main/ui/settings/access_tokens.cljs:144 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-30-days" msgstr "30 dní" -#: src/app/main/ui/settings/access_tokens.cljs:145 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-60-days" msgstr "60 dní" -#: src/app/main/ui/settings/access_tokens.cljs:146 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-90-days" msgstr "90 dní" -#: src/app/main/ui/settings/access_tokens.cljs:143 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-never" msgstr "Nikdy" -#: src/app/main/ui/settings/access_tokens.cljs:282 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expired-on" msgstr "Platnost vypršela %s" -#: src/app/main/ui/settings/access_tokens.cljs:283 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expires-on" msgstr "Platnost vyprší %s" -#: src/app/main/ui/settings/access_tokens.cljs:281 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.no-expiration" msgstr "Žádné datum vypršení platnosti" -#: src/app/main/ui/settings/access_tokens.cljs:197 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.personal" msgstr "Osobní přístupové tokeny" -#: src/app/main/ui/settings/access_tokens.cljs:198 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.personal.description" msgstr "" "Osobní přístupové tokeny fungují jako alternativa k našemu systému " "ověřování přihlašovacích údajů/hesel a lze je použít k tomu, aby aplikaci " "umožnily přístup k internímu rozhraní Penpot API" -#: src/app/main/ui/settings/access_tokens.cljs:154 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.token-will-expire" msgstr "Platnost tokenu vyprší %s" -#: src/app/main/ui/settings/access_tokens.cljs:155 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.token-will-not-expire" msgstr "Token nemá žádné datum vypršení platnosti" -#: src/app/main/ui/dashboard/file_menu.cljs:291, src/app/main/ui/workspace/main_menu.cljs:572 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.add-shared" msgstr "Přidat jako sdílenou knihovnu" -#: src/app/main/ui/settings/profile.cljs:75 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.change-email" msgstr "Změnit e-mail" -#: src/app/main/data/dashboard.cljs:762, src/app/main/data/dashboard.cljs:983 +#: src/app/main/data/dashboard.cljs, src/app/main/data/dashboard.cljs msgid "dashboard.copy-suffix" msgstr "(zkopírovat)" -#: src/app/main/ui/dashboard/sidebar.cljs:338 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.create-new-team" msgstr "Vytvořit nový tým" -#: src/app/main/ui/components/context_menu_a11y.cljs:256, src/app/main/ui/dashboard/sidebar.cljs:646 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.default-team-name" msgstr "Váš Penpot" -#: src/app/main/ui/dashboard/sidebar.cljs:571 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.delete-team" msgstr "Smazat tým" -#: src/app/main/ui/dashboard/file_menu.cljs:296, src/app/main/ui/workspace/main_menu.cljs:589 msgid "dashboard.download-binary-file" msgstr "Stáhnout soubor Penpot (.penpot)" -#: src/app/main/ui/dashboard/file_menu.cljs:300, src/app/main/ui/workspace/main_menu.cljs:597 msgid "dashboard.download-standard-file" msgstr "Stáhnout standardní soubor (.svg + .json)" -#: src/app/main/ui/dashboard/file_menu.cljs:276, src/app/main/ui/dashboard/project_menu.cljs:90 +#: src/app/main/ui/dashboard/project_menu.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.duplicate" msgstr "Duplikovat" -#: src/app/main/ui/dashboard/file_menu.cljs:240 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.duplicate-multi" msgstr "Duplikovat %s soubory" -#: src/app/main/ui/dashboard/placeholder.cljs:32 -#, markdown +#: src/app/main/ui/dashboard/grid.cljs msgid "dashboard.empty-placeholder-drafts" msgstr "" "Zde se zobrazí soubory přidané do knihoven. Zkuste své soubory sdílet nebo " "je přidat z našich [Libraries & " "templates](https://penpot.app/libraries-templates)." -#: src/app/main/ui/dashboard/file_menu.cljs:249 msgid "dashboard.export-binary-multi" msgstr "Stáhnout soubory %s Penpot (.penpot)" -#: src/app/main/ui/workspace/main_menu.cljs:605 msgid "dashboard.export-frames" msgstr "Exportovat tabule do PDF" -#: src/app/main/ui/export.cljs:201 +#: src/app/main/ui/export.cljs msgid "dashboard.export-frames.title" msgstr "Exportovat do PDF" -#, unused msgid "dashboard.export-multi" msgstr "Exportovat soubory Penpot %s" -#: src/app/main/ui/export.cljs:109 +#: src/app/main/ui/export.cljs msgid "dashboard.export-multiple.selected" msgstr "%s z %s prvků vybráno" -#: src/app/main/ui/workspace/main_menu.cljs:578 +#: src/app/main/ui/workspace/header.cljs msgid "dashboard.export-shapes" msgstr "Exportovat" -#: src/app/main/ui/export.cljs:180 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.how-to" msgstr "" "Nastavení exportu můžete přidat k prvkům ve vlastnostech návrhu (v dolní " "části pravého postranního panelu)." -#: src/app/main/ui/export.cljs:184 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.how-to-link" msgstr "Informace o nastavování exportů v Penpotu." -#: src/app/main/ui/export.cljs:179 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.no-elements" msgstr "Neexistují žádné prvky s nastavením exportu." -#: src/app/main/ui/export.cljs:190 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.title" msgstr "Výběr exportu" -#: src/app/main/ui/dashboard/file_menu.cljs:252 msgid "dashboard.export-standard-multi" msgstr "Stáhnout %s soubory (.svg + .json)" -#: src/app/main/ui/export.cljs:427 msgid "dashboard.export.detail" msgstr "* Může obsahovat komponenty, grafiku, barvy a/nebo typografii." -#: src/app/main/ui/export.cljs:426 msgid "dashboard.export.explain" msgstr "" "Jeden nebo více souborů, které chcete exportovat, používá sdílené knihovny. " "Co chcete dělat s jejich položkami*?" -#: src/app/main/ui/export.cljs:435 msgid "dashboard.export.options.all.message" msgstr "" "soubory se sdílenými knihovnami budou zahrnuty do exportu, čímž se zachová " "jejich propojení." -#: src/app/main/ui/export.cljs:436 msgid "dashboard.export.options.all.title" msgstr "Exportovat sdílené knihovny" -#: src/app/main/ui/export.cljs:437 msgid "dashboard.export.options.detach.message" msgstr "" "Sdílené knihovny nebudou zahrnuty do exportu a do knihovny nebudou přidány " "žádné položky. " -#: src/app/main/ui/export.cljs:438 msgid "dashboard.export.options.detach.title" msgstr "Zacházet s položkami sdílené knihovny jako se základními objekty" -#: src/app/main/ui/export.cljs:439 msgid "dashboard.export.options.merge.message" msgstr "" "Váš soubor bude exportován se všemi externími položkami sloučenými do " "knihovny souborů." -#: src/app/main/ui/export.cljs:440 msgid "dashboard.export.options.merge.title" msgstr "Zahrnout sdílené položky knihovny do knihoven souborů" -#: src/app/main/ui/export.cljs:418 msgid "dashboard.export.title" msgstr "Exportovat soubory" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:309 msgid "dashboard.fonts.deleted-placeholder" msgstr "Písmo odstraněno" -#: src/app/main/ui/dashboard/fonts.cljs:206 +#: src/app/main/ui/dashboard/fonts.cljs msgid "dashboard.fonts.dismiss-all" msgstr "Odmítnout vše" -#: src/app/main/ui/dashboard/fonts.cljs:436 msgid "dashboard.fonts.empty-placeholder" msgstr "Stále nemáte nainstalované žádné vlastní písma." -#: src/app/main/ui/dashboard/fonts.cljs:194 +#: src/app/main/ui/dashboard/fonts.cljs msgid "dashboard.fonts.fonts-added" msgid_plural "dashboard.fonts.fonts-added" msgstr[0] "Přidáno 1 písmo" msgstr[1] "%s písma přidány" msgstr[2] "%s písem přidáno" -#: src/app/main/ui/dashboard/fonts.cljs:170 -#, markdown msgid "dashboard.fonts.hero-text1" msgstr "" "Jakékoli webové písmo, které sem nahrajete, bude přidáno do seznamu rodin " @@ -541,8 +495,6 @@ msgstr "" "Můžete nahrávat písma v následujících formátech: **TTF, OTF a WOFF** (bude " "potřeba pouze jeden)." -#: src/app/main/ui/dashboard/fonts.cljs:182 -#, markdown msgid "dashboard.fonts.hero-text2" msgstr "" "Měli byste nahrávat pouze písma, která vlastníte nebo máte licenci k " @@ -551,12 +503,10 @@ msgstr "" "Můžete si také přečíst o [licencování " "písem](https://www.typography.com/faq)." -#: src/app/main/ui/dashboard/fonts.cljs:202 +#: src/app/main/ui/dashboard/fonts.cljs msgid "dashboard.fonts.upload-all" msgstr "Nahrát vše" -#: src/app/main/ui/dashboard/fonts.cljs:187 -#, markdown msgid "dashboard.fonts.warning-text" msgstr "" "Zjistili jsme možný problém ve vašich písmech související s vertikálními " @@ -566,1664 +516,1503 @@ msgstr "" "[Transfonter](https://transfonter.org/) ke generování webových písem a " "opravě chyb. " -#: src/app/main/ui/dashboard/import.cljs:472, src/app/main/ui/dashboard/project_menu.cljs:108 msgid "dashboard.import" msgstr "Importovat Penpot soubory" -#: src/app/main/ui/dashboard/import.cljs:304, src/app/worker/import.cljs:753, src/app/worker/import.cljs:755 msgid "dashboard.import.analyze-error" msgstr "Ups! Tento soubor se nepodařilo importovat" -#: src/app/main/ui/dashboard/import.cljs:308 msgid "dashboard.import.import-error" msgstr "Při importu souboru došlo k problému. Soubor nebyl importován." -#: src/app/main/ui/dashboard/import.cljs:493 msgid "dashboard.import.import-message" msgstr "Soubory %s byly úspěšně importovány." -#: src/app/main/ui/dashboard/import.cljs:481, src/app/main/ui/dashboard/import.cljs:488 msgid "dashboard.import.import-warning" msgstr "Některé soubory obsahovaly neplatné objekty, které byly odstraněny." -#: src/app/main/ui/dashboard/import.cljs:144 msgid "dashboard.import.progress.process-colors" msgstr "Zpracovávání barev" -#: src/app/main/ui/dashboard/import.cljs:153 msgid "dashboard.import.progress.process-components" msgstr "Zpracovávání komponentů" -#: src/app/main/ui/dashboard/import.cljs:150 msgid "dashboard.import.progress.process-media" msgstr "Zpracovávání médií" -#: src/app/main/ui/dashboard/import.cljs:141 msgid "dashboard.import.progress.process-page" msgstr "Zpracovává se stránka: %s" -#: src/app/main/ui/dashboard/import.cljs:147 msgid "dashboard.import.progress.process-typographies" msgstr "Zpracovávání typografií" -#: src/app/main/ui/dashboard/import.cljs:135 msgid "dashboard.import.progress.upload-data" msgstr "Nahrávání dat na server (%s/%s)" -#: src/app/main/ui/dashboard/import.cljs:138 msgid "dashboard.import.progress.upload-media" msgstr "Nahrávání souboru: %s" -#: src/app/main/ui/dashboard/team.cljs:109 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.invite-profile" msgstr "Pozvat do týmu" -#: src/app/main/ui/dashboard/sidebar.cljs:547, src/app/main/ui/dashboard/sidebar.cljs:556, src/app/main/ui/dashboard/sidebar.cljs:563, src/app/main/ui/dashboard/team.cljs:312 +#: src/app/main/ui/dashboard/sidebar.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.leave-team" msgstr "Odejít z týmu" -#: src/app/main/ui/dashboard/templates.cljs:88, src/app/main/ui/dashboard/templates.cljs:163 msgid "dashboard.libraries-and-templates" msgstr "Knihovny a šablony" -#: src/app/main/ui/dashboard/templates.cljs:164 msgid "dashboard.libraries-and-templates.explore" msgstr "Prozkoumejte je víc a zjistěte, jak přispět" -#: src/app/main/ui/dashboard/import.cljs:365 msgid "dashboard.libraries-and-templates.import-error" msgstr "Při importu šablony došlo k problému. Šablona nebyla importována." -#: src/app/main/ui/dashboard/libraries.cljs:53 +#: src/app/main/ui/dashboard/libraries.cljs msgid "dashboard.libraries-title" msgstr "Knihovny" -#: src/app/main/ui/dashboard/placeholder.cljs:45 +#: src/app/main/ui/dashboard/grid.cljs msgid "dashboard.loading-files" msgstr "načítání vašich souborů …" -#: src/app/main/ui/dashboard/fonts.cljs:431 msgid "dashboard.loading-fonts" msgstr "načítání vašich písem …" -#: src/app/main/ui/dashboard/file_menu.cljs:281, src/app/main/ui/dashboard/project_menu.cljs:100 +#: src/app/main/ui/dashboard/project_menu.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.move-to" msgstr "Přesunout do" -#: src/app/main/ui/dashboard/file_menu.cljs:245 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.move-to-multi" msgstr "Přesunout soubory %s do" -#: src/app/main/ui/dashboard/file_menu.cljs:226 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.move-to-other-team" msgstr "Přesunout do jiného týmu" -#: src/app/main/ui/dashboard/files.cljs:105, src/app/main/ui/dashboard/projects.cljs:252, src/app/main/ui/dashboard/projects.cljs:253 +#: src/app/main/ui/dashboard/projects.cljs, +#: src/app/main/ui/dashboard/files.cljs msgid "dashboard.new-file" msgstr "+ Nový soubor" -#: src/app/main/data/dashboard.cljs:958, src/app/main/data/dashboard.cljs:1181 +#: src/app/main/data/dashboard.cljs msgid "dashboard.new-file-prefix" msgstr "Nový soubor" -#: src/app/main/ui/dashboard/projects.cljs:55 +#: src/app/main/ui/dashboard/projects.cljs msgid "dashboard.new-project" msgstr "+ Nový projekt" -#: src/app/main/data/dashboard.cljs:726, src/app/main/data/dashboard.cljs:1184 +#: src/app/main/data/dashboard.cljs msgid "dashboard.new-project-prefix" msgstr "Nový projekt" -#: src/app/main/ui/dashboard/search.cljs:60 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.no-matches-for" msgstr "Nebyly nalezeny žádné shody pro “%s“" -#: src/app/main/ui/dashboard/sidebar.cljs:827 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.no-projects-placeholder" msgstr "Připnuté projekty se zobrazí zde" -#: src/app/main/ui/auth/verify_token.cljs:33 +#: src/app/main/ui/auth/verify_token.cljs msgid "dashboard.notifications.email-changed-successfully" msgstr "Vaše e-mailová adresa byla úspěšně aktualizována" -#: src/app/main/ui/auth/verify_token.cljs:27 +#: src/app/main/ui/auth/verify_token.cljs msgid "dashboard.notifications.email-verified-successfully" msgstr "Vaše e-mailová adresa byla úspěšně ověřena" -#: src/app/main/ui/settings/password.cljs:37 +#: src/app/main/ui/settings/password.cljs msgid "dashboard.notifications.password-saved" msgstr "Heslo bylo úspěšně uloženo!" -#: src/app/main/ui/dashboard/team.cljs:1081 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.num-of-members" msgstr "Počet členů: %s" -#: src/app/main/ui/dashboard/file_menu.cljs:267 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.open-in-new-tab" msgstr "Otevřít soubor na nové kartě" -#: src/app/main/ui/dashboard/files.cljs:117, src/app/main/ui/dashboard/projects.cljs:260, src/app/main/ui/dashboard/projects.cljs:261 msgid "dashboard.options" msgstr "Možnosti" -#: src/app/main/ui/settings/password.cljs:106, src/app/main/ui/settings/password.cljs:119 +#: src/app/main/ui/settings/password.cljs msgid "dashboard.password-change" msgstr "Změnit heslo" -#: src/app/main/ui/dashboard/pin_button.cljs:24, src/app/main/ui/dashboard/project_menu.cljs:95 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.pin-unpin" msgstr "Připnout/Odepnout" -#: src/app/main/ui/dashboard/projects.cljs:51 +#: src/app/main/ui/dashboard/projects.cljs msgid "dashboard.projects-title" msgstr "Projekty" -#: src/app/main/ui/settings/profile.cljs:86 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.remove-account" msgstr "Chcete odstranit svůj účet?" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.remove-shared" msgstr "Odstranit jako sdílenou knihovnu" -#: src/app/main/ui/settings/profile.cljs:78 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.save-settings" msgstr "Uložit nastavení" -#: src/app/main/ui/dashboard/sidebar.cljs:246, src/app/main/ui/dashboard/sidebar.cljs:247 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.search-placeholder" msgstr "Vyhledat…" -#: src/app/main/ui/dashboard/search.cljs:55 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.searching-for" msgstr "Hledá se “%s“…" -#: src/app/main/ui/settings/options.cljs:56 +#: src/app/main/ui/settings/options.cljs msgid "dashboard.select-ui-language" msgstr "Vybrat jazyk uživatelského rozhraní" -#: src/app/main/ui/settings/options.cljs:63 +#: src/app/main/ui/settings/options.cljs msgid "dashboard.select-ui-theme" msgstr "Vyberte téma" -#: src/app/main/ui/dashboard/projects.cljs:282 +#: src/app/main/ui/dashboard/grid.cljs msgid "dashboard.show-all-files" msgstr "Zobrazit všechny soubory" -#: src/app/main/ui/dashboard/file_menu.cljs:96 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-delete-file" msgstr "Váš soubor byl úspěšně smazán" -#: src/app/main/ui/dashboard/project_menu.cljs:59 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.success-delete-project" msgstr "Váš projekt byl úspěšně smazán" -#: src/app/main/ui/dashboard/file_menu.cljs:91 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-duplicate-file" msgstr "Váš soubor byl úspěšně duplikován" -#: src/app/main/ui/dashboard/project_menu.cljs:33 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.success-duplicate-project" msgstr "Váš projekt byl úspěšně duplikován" -#: src/app/main/ui/dashboard/file_menu.cljs:130, src/app/main/ui/dashboard/grid.cljs:558, src/app/main/ui/dashboard/sidebar.cljs:152 +#: src/app/main/ui/dashboard/grid.cljs, src/app/main/ui/dashboard/sidebar.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-move-file" msgstr "Váš soubor byl úspěšně přesunut" -#: src/app/main/ui/dashboard/file_menu.cljs:129 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-move-files" msgstr "Vaše soubory byly úspěšně přesunuty" -#: src/app/main/ui/dashboard/project_menu.cljs:54 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.success-move-project" msgstr "Váš projekt byl úspěšně přesunut" -#: src/app/main/ui/dashboard/team.cljs:1052 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.team-info" msgstr "Informace o týmu" -#: src/app/main/ui/dashboard/team.cljs:1070 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.team-members" msgstr "Členové týmu" -#: src/app/main/ui/dashboard/team.cljs:1085 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.team-projects" msgstr "Projekty týmu" -#: src/app/main/ui/settings/options.cljs:61 +#: src/app/main/ui/settings/options.cljs msgid "dashboard.theme-change" msgstr "Téma UI" -#: src/app/main/ui/dashboard/search.cljs:42 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.title-search" msgstr "Výsledky vyhledávání" -#: src/app/main/ui/dashboard/search.cljs:50 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.type-something" msgstr "Zadejte výraz pro hledání" -#: src/app/main/ui/dashboard/file_menu.cljs:287, src/app/main/ui/workspace/main_menu.cljs:566 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.unpublish-shared" msgstr "Zrušit zveřejnění knihovny" -#: src/app/main/ui/settings/options.cljs:71 +#: src/app/main/ui/settings/password.cljs, +#: src/app/main/ui/settings/options.cljs msgid "dashboard.update-settings" msgstr "Aktualizovat nastavení" -#: src/app/main/ui/dashboard/team.cljs:861 msgid "dashboard.webhooks.active" msgstr "Je aktivní" -#: src/app/main/ui/dashboard/team.cljs:862 msgid "dashboard.webhooks.active.explain" msgstr "Když je tento webhook spuštěn, budou doručeny podrobnosti o události" -#: src/app/main/ui/dashboard/team.cljs:852 msgid "dashboard.webhooks.content-type" msgstr "Typ obsahu" -#: src/app/main/ui/dashboard/team.cljs:885 msgid "dashboard.webhooks.create" msgstr "Vytvořit webhook" -#: src/app/main/ui/dashboard/team.cljs:775 msgid "dashboard.webhooks.create.success" msgstr "Webhook byl úspěšně vytvořen." -#: src/app/main/ui/dashboard/team.cljs:882 msgid "dashboard.webhooks.description" msgstr "" "Webhooky jsou jednoduchým způsobem, jak umožnit jiným webům a aplikacím, " "aby byly upozorňovány na určité události v Penpotu. Na každou z vámi " "poskytnutých adres URL odešleme požadavek POST." -#: src/app/main/ui/dashboard/team.cljs:1005 msgid "dashboard.webhooks.empty.add-one" msgstr "Chcete-li webhook přidat, stiskněte tlačítko „Přidat webhook“." -#: src/app/main/ui/dashboard/team.cljs:1004 msgid "dashboard.webhooks.empty.no-webhooks" msgstr "Dosud nebyly vytvořeny žádné webhooky." -#, unused msgid "dashboard.webhooks.update.success" msgstr "Webhook byl úspěšně aktualizován." -#: src/app/main/ui/settings.cljs:31 +#: src/app/main/ui/settings.cljs msgid "dashboard.your-account-title" msgstr "Váš účet" -#: src/app/main/ui/settings/profile.cljs:70 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.your-email" msgstr "E-mail" -#: src/app/main/ui/settings/profile.cljs:62 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.your-name" msgstr "Vaše jméno" -#: src/app/main/ui/dashboard/file_menu.cljs:38, src/app/main/ui/dashboard/fonts.cljs:33, src/app/main/ui/dashboard/libraries.cljs:42, src/app/main/ui/dashboard/projects.cljs:318, src/app/main/ui/dashboard/search.cljs:30, src/app/main/ui/dashboard/sidebar.cljs:312, src/app/main/ui/dashboard/team.cljs:495, src/app/main/ui/dashboard/team.cljs:729, src/app/main/ui/dashboard/team.cljs:991, src/app/main/ui/dashboard/team.cljs:1038 +#: src/app/main/ui/dashboard/search.cljs, src/app/main/ui/dashboard/team.cljs, +#: src/app/main/ui/dashboard/libraries.cljs, +#: src/app/main/ui/dashboard/projects.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.your-penpot" msgstr "Váš Penpot" -#: src/app/main/ui/alert.cljs:32 +#: src/app/main/ui/alert.cljs msgid "ds.alert-ok" msgstr "OK" -#: src/app/main/ui/alert.cljs:31, src/app/main/ui/alert.cljs:34 +#: src/app/main/ui/alert.cljs msgid "ds.alert-title" msgstr "Pozor" -#: src/app/main/ui/confirm.cljs:83 +#: src/app/main/ui/confirm.cljs msgid "ds.component-subtitle" msgstr "Komponenty k aktualizaci:" -#: src/app/main/ui/confirm.cljs:36, src/app/main/ui/workspace/plugins.cljs:246 +#: src/app/main/ui/confirm.cljs msgid "ds.confirm-cancel" msgstr "Zrušit" -#: src/app/main/ui/confirm.cljs:37, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:141 +#: src/app/main/ui/confirm.cljs msgid "ds.confirm-ok" msgstr "OK" -#: src/app/main/ui/confirm.cljs:35, src/app/main/ui/confirm.cljs:39 +#: src/app/main/ui/confirm.cljs, src/app/main/ui/confirm.cljs msgid "ds.confirm-title" msgstr "Jste si jisti?" -#: src/app/main/ui/auth/login.cljs:62 +#: src/app/main/ui/auth/login.cljs msgid "errors.auth-provider-not-configured" msgstr "Zprostředkovatel ověřování není nakonfigurován." -#: src/app/main/errors.cljs:104 msgid "errors.auth.unable-to-login" msgstr "Zdá se, že nejste ověřeni nebo platnost relace vypršela." -#: src/app/main/data/fonts.cljs:189 msgid "errors.bad-font" msgstr "Písmo %s se nepodařilo načíst" -#: src/app/main/data/fonts.cljs:188 msgid "errors.bad-font-plural" msgstr "Písma %s se nepodařilo načíst" -#: src/app/main/data/workspace/media.cljs:198 msgid "errors.cannot-upload" msgstr "Nelze nahrát soubor médií." -#: src/app/main/data/workspace.cljs:1598 +#: src/app/main/data/workspace.cljs msgid "errors.clipboard-not-implemented" msgstr "Váš prohlížeč tuto operaci nedokáže provést" -#: src/app/main/ui/auth/verify_token.cljs:82, src/app/main/ui/settings/change_email.cljs:46 +#: src/app/main/ui/auth/verify_token.cljs, +#: src/app/main/ui/settings/change_email.cljs msgid "errors.email-already-exists" msgstr "Již použitá e-mailová adresa" -#: src/app/main/ui/auth/verify_token.cljs:87 +#: src/app/main/ui/auth/verify_token.cljs msgid "errors.email-already-validated" msgstr "E-mail byl již ověřen." -#: src/app/main/ui/settings/password.cljs:28 msgid "errors.email-as-password" msgstr "Jako heslo nelze použít váš e-mail" -#: src/app/main/ui/auth/recovery_request.cljs:63, src/app/main/ui/dashboard/team.cljs:578, src/app/main/ui/settings/change_email.cljs:54 +#: src/app/main/ui/auth/register.cljs, +#: src/app/main/ui/auth/recovery_request.cljs, +#: src/app/main/ui/settings/change_email.cljs, +#: src/app/main/ui/dashboard/team.cljs msgid "errors.email-has-permanent-bounces" msgstr "E-mail «%s» má mnoho trvalých zpráv o nedoručitelnosti." -#: src/app/main/ui/auth/login.cljs:81, src/app/main/ui/auth/recovery_request.cljs:31, src/app/main/ui/auth/register.cljs:43 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs, +#: src/app/main/ui/auth/recovery_request.cljs msgid "errors.email-invalid" msgstr "Zadejte prosím platný email" -#: src/app/main/ui/settings/change_email.cljs:35 +#: src/app/main/ui/settings/change_email.cljs msgid "errors.email-invalid-confirmation" msgstr "Potvrzovací e-mail se musí shodovat" -#: src/app/main/ui/dashboard/team.cljs:170 msgid "errors.email-spam-or-permanent-bounces" msgstr "E-mail «%s» byl nahlášen jako spam nebo byl trvale nedostupný." -#: src/app/main/errors.cljs:227 +#: src/app/main/errors.cljs msgid "errors.feature-mismatch" msgstr "" "Vypadá to, že otevíráte soubor, který má povolenou funkci '%s', ale " "aktuální verze penpotu ji nepodporuje nebo je deaktivovaná." -#: src/app/main/errors.cljs:231, src/app/main/errors.cljs:245 +#: src/app/main/errors.cljs msgid "errors.feature-not-supported" msgstr "Funkce '%s' není podporována." -#: src/app/main/errors.cljs:223 +#: src/app/main/errors.cljs msgid "errors.file-feature-mismatch" msgstr "" "Zdá se, že existuje nesoulad mezi povolenými funkcemi a funkcemi souboru, " "který se pokoušíte otevřít. Před otevřením souboru je třeba provést migraci " "pro '%s'." -#: src/app/main/data/users.cljs:709, src/app/main/ui/auth/login.cljs:65, src/app/main/ui/auth/login.cljs:116, src/app/main/ui/auth/register.cljs:69, src/app/main/ui/auth/register.cljs:237, src/app/main/ui/auth/verify_token.cljs:92, src/app/main/ui/dashboard/team.cljs:173, src/app/main/ui/onboarding/team_choice.cljs:95, src/app/main/ui/settings/access_tokens.cljs:91, src/app/main/ui/settings/feedback.cljs:52 +#: src/app/main/ui/auth/verify_token.cljs, +#: src/app/main/ui/settings/feedback.cljs, src/app/main/ui/dashboard/team.cljs msgid "errors.generic" msgstr "Něco se pokazilo." -#: src/app/main/ui/components/color_input.cljs:57 +#: src/app/main/ui/components/color_input.cljs msgid "errors.invalid-color" msgstr "Chybná barva" -#: src/app/main/ui/static.cljs:43 +#: src/app/main/ui/auth/verify_token.cljs msgid "errors.invite-invalid" msgstr "Neplatná pozvánka" -#: src/app/main/ui/static.cljs:44 msgid "errors.invite-invalid.info" msgstr "Tato pozvánka byla pravděpodobně zrušena nebo vypršela její platnost." -#: src/app/main/ui/auth/login.cljs:101 +#: src/app/main/ui/auth/login.cljs msgid "errors.ldap-disabled" msgstr "Ověřování LDAP je vypnuto." -#: src/app/main/errors.cljs:239 +#: src/app/main/errors.cljs msgid "errors.max-quote-reached" msgstr "Dosáhli jste '%s' kvóty. Kontaktujte podporu." -#: src/app/main/data/workspace/media.cljs:184 +#: src/app/main/data/workspace/persistence.cljs msgid "errors.media-too-large" msgstr "Obrázek je příliš velký na to, aby mohl být vložen." -#: src/app/main/data/media.cljs:68, src/app/main/data/workspace/media.cljs:187 +#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs msgid "errors.media-type-mismatch" msgstr "Zdá se, že obsah obrázku neodpovídá příponě souboru." -#: src/app/main/data/media.cljs:65, src/app/main/data/workspace/media.cljs:172, src/app/main/data/workspace/media.cljs:175, src/app/main/data/workspace/media.cljs:178, src/app/main/data/workspace/media.cljs:181 +#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs msgid "errors.media-type-not-allowed" msgstr "Zdá se, že toto není platný obrázek." -#: src/app/main/ui/dashboard/team.cljs:574 +#: src/app/main/ui/dashboard/team.cljs msgid "errors.member-is-muted" msgstr "" "Profil, který zvete, má ztlumené e-maily (zprávy o spamu nebo vysoké " "nedoručitelnosti)." -#: src/app/main/ui/settings/password.cljs:61 +#: src/app/main/ui/settings/password.cljs msgid "errors.password-invalid-confirmation" msgstr "Potvrzovací heslo se musí shodovat" -#: src/app/main/ui/settings/password.cljs:64 +#: src/app/main/ui/settings/password.cljs msgid "errors.password-too-short" msgstr "Heslo by mělo mít nejméně 8 znaků" -#: src/app/main/errors.cljs:124 msgid "errors.paste-data-validation" msgstr "Neplatná data ve schránce" -#: src/app/main/data/users.cljs:703, src/app/main/ui/auth/login.cljs:97, src/app/main/ui/auth/login.cljs:105 msgid "errors.profile-blocked" msgstr "Profil je zablokován" -#: src/app/main/ui/auth/recovery_request.cljs:60, src/app/main/ui/dashboard/team.cljs:164, src/app/main/ui/dashboard/team.cljs:570, src/app/main/ui/settings/change_email.cljs:50 +#: src/app/main/ui/auth/recovery_request.cljs, +#: src/app/main/ui/settings/change_email.cljs, +#: src/app/main/ui/dashboard/team.cljs msgid "errors.profile-is-muted" msgstr "Váš profil má ztlumené e-maily (zprávy o spamu nebo vysoká nedoručitelnost)." -#: src/app/main/data/users.cljs:701, src/app/main/ui/auth/register.cljs:60 +#: src/app/main/ui/auth/register.cljs msgid "errors.registration-disabled" msgstr "Registrace je momentálně zakázána." -#: src/app/main/errors.cljs:218 +#: src/app/main/errors.cljs msgid "errors.team-feature-mismatch" msgstr "Zjištěna nekompatibilní funkce '%s'" -#: src/app/main/ui/dashboard/sidebar.cljs:365, src/app/main/ui/dashboard/team.cljs:359 msgid "errors.team-leave.insufficient-members" msgstr "" "Nedostatečný počet členů pro opuštění týmu, pravděpodobně jste chtěli tým " "smazat." -#: src/app/main/ui/dashboard/sidebar.cljs:368, src/app/main/ui/dashboard/team.cljs:362 msgid "errors.team-leave.member-does-not-exists" msgstr "Člen, kterého se pokoušíte přiřadit, neexistuje." -#: src/app/main/ui/dashboard/sidebar.cljs:371, src/app/main/ui/dashboard/team.cljs:365 msgid "errors.team-leave.owner-cant-leave" msgstr "Vlastník nemůže opustit tým, musíte přeřadit roli vlastníka." -#: src/app/main/data/media.cljs:71 +#: src/app/main/data/media.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, +#: src/app/main/ui/handoff/exports.cljs msgid "errors.unexpected-error" msgstr "Došlo k neočekávané chybě." -#: src/app/main/ui/auth/verify_token.cljs:60 +#: src/app/main/ui/auth/verify_token.cljs msgid "errors.unexpected-token" msgstr "Neznámý token" -#, unused msgid "errors.validation" msgstr "Chyba ověření" -#: src/app/main/errors.cljs:235 +#: src/app/main/errors.cljs msgid "errors.version-not-supported" msgstr "Soubor má nekompatibilní číslo verze" -#: src/app/main/ui/dashboard/team.cljs:796 msgid "errors.webhooks.connection" msgstr "Chyba připojení, adresa URL není dostupná" -#: src/app/main/ui/dashboard/team.cljs:790 msgid "errors.webhooks.invalid-uri" msgstr "Adresa URL neprošla ověřením." -#: src/app/main/ui/dashboard/team.cljs:949 +#, fuzzy msgid "errors.webhooks.last-delivery" msgstr "Poslední dodávka nebyla úspěšná." -#: src/app/main/ui/dashboard/team.cljs:792, src/app/main/ui/dashboard/team.cljs:952 msgid "errors.webhooks.ssl-validation" msgstr "Chyba při ověřování SSL." -#: src/app/main/ui/dashboard/team.cljs:794 msgid "errors.webhooks.timeout" msgstr "Timeout" -#: src/app/main/ui/dashboard/team.cljs:788 msgid "errors.webhooks.unexpected" msgstr "Při ověřování došlo k neočekávané chybě" -#: src/app/main/ui/dashboard/team.cljs:798, src/app/main/ui/dashboard/team.cljs:955 msgid "errors.webhooks.unexpected-status" msgstr "Neočekávaný stav %s" -#: src/app/main/ui/auth/login.cljs:109, src/app/main/ui/auth/login.cljs:113 +#: src/app/main/ui/auth/login.cljs msgid "errors.wrong-credentials" msgstr "Uživatelské jméno nebo heslo se zdá být chybné." -#: src/app/main/ui/settings/password.cljs:25 +#: src/app/main/ui/settings/password.cljs msgid "errors.wrong-old-password" msgstr "Staré heslo je nesprávné" -#: src/app/main/ui/settings/feedback.cljs:77 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.description" msgstr "Popisek" -#: src/app/main/ui/settings/feedback.cljs:95 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.discourse-go-to" msgstr "Přejít na Penpot fórum" -#: src/app/main/ui/settings/feedback.cljs:89 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.discourse-subtitle1" msgstr "" "Jsme rádi, že jste tady. Pokud potřebujete pomoc, zkuste nejdříve " "vyhledávání, než napíšete příspěvek." -#: src/app/main/ui/settings/feedback.cljs:88 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.discourse-title" msgstr "Penpot komunita" -#: src/app/main/ui/settings/feedback.cljs:72 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.subject" msgstr "Předmět" -#: src/app/main/ui/settings/feedback.cljs:69 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.subtitle" msgstr "" "Popište důvod svého e-mailu a uveďte, zda se jedná o problém, nápad nebo " "pochybnost. Člen našeho týmu vám co nejdříve odpoví." -#: src/app/main/ui/settings/feedback.cljs:68 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.title" msgstr "E-mail" -#: src/app/main/ui/settings/feedback.cljs:105 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.twitter-go-to" msgstr "Přejít na X" -#: src/app/main/ui/settings/feedback.cljs:99 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.twitter-subtitle1" msgstr "Zde vám pomůžeme s vašimi technickými dotazy." -#: src/app/main/ui/settings/feedback.cljs:98 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.twitter-title" msgstr "Účet podpory na Xu" -#: src/app/main/ui/settings/password.cljs:30 +#: src/app/main/ui/settings/password.cljs msgid "generic.error" msgstr "Došlo k chybě" -#: src/app/main/ui/viewer/inspect/attributes/blur.cljs:26 +#: src/app/main/ui/inspect/attributes/blur.cljs msgid "inspect.attributes.blur" msgstr "Rozostření" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:115 +#: src/app/main/ui/inspect/attributes/blur.cljs msgid "inspect.attributes.blur.value" msgstr "Hodnota" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:112 +#: src/app/main/ui/inspect/attributes/common.cljs msgid "inspect.attributes.color.hex" msgstr "HEX" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:114 +#: src/app/main/ui/inspect/attributes/common.cljs msgid "inspect.attributes.color.hsla" msgstr "HSLA" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:113 +#: src/app/main/ui/inspect/attributes/common.cljs msgid "inspect.attributes.color.rgba" msgstr "RGBA" -#: src/app/main/ui/viewer/inspect/attributes/fill.cljs:57 +#: src/app/main/ui/inspect/attributes/fill.cljs msgid "inspect.attributes.fill" msgstr "Výplň" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:99, src/app/main/ui/viewer/inspect/attributes/image.cljs:51 +#: src/app/main/ui/inspect/attributes/image.cljs msgid "inspect.attributes.image.download" msgstr "Stáhnout zdrojový obrázek" -#: src/app/main/ui/viewer/inspect/attributes/image.cljs:39 +#: src/app/main/ui/inspect/attributes/image.cljs msgid "inspect.attributes.image.height" msgstr "Výška" -#: src/app/main/ui/viewer/inspect/attributes/image.cljs:32 +#: src/app/main/ui/inspect/attributes/image.cljs msgid "inspect.attributes.image.width" msgstr "Šířka" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout" msgstr "Rozložení" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.height" msgstr "Výška" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.left" msgstr "Vlevo" -#: src/app/main/ui/inspect/attributes/layout.cljs, src/app/main/ui/inspect/attributes/layout.cljs -#, unused +#: src/app/main/ui/inspect/attributes/layout.cljs, +#: src/app/main/ui/inspect/attributes/layout.cljs msgid "inspect.attributes.layout.radius" msgstr "Poloměr" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.rotation" msgstr "Otáčení" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.top" msgstr "Nahoře" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.width" msgstr "Šířka" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:57 +#: src/app/main/ui/inspect/attributes/shadow.cljs msgid "inspect.attributes.shadow" msgstr "Stín" -#: src/app/main/ui/viewer/inspect/attributes/geometry.cljs:40 +#: src/app/main/ui/inspect/attributes/layout.cljs msgid "inspect.attributes.size" msgstr "Velikost a poloha" -#: src/app/main/ui/viewer/inspect/attributes/stroke.cljs:52 +#: src/app/main/ui/inspect/attributes/stroke.cljs msgid "inspect.attributes.stroke" msgstr "Tah" -#, permanent, unused msgid "inspect.attributes.stroke.alignment.center" msgstr "Střed" -#, permanent, unused msgid "inspect.attributes.stroke.alignment.inner" msgstr "Uvnitř" -#, permanent, unused msgid "inspect.attributes.stroke.alignment.outer" msgstr "Venku" -#, unused msgid "inspect.attributes.stroke.style.dotted" msgstr "Tečkovaná" -#, unused msgid "inspect.attributes.stroke.style.mixed" msgstr "Smíšená" -#, unused msgid "inspect.attributes.stroke.style.none" msgstr "Žádná" -#, unused msgid "inspect.attributes.stroke.style.solid" msgstr "Plná" #: src/app/main/ui/inspect/attributes/stroke.cljs -#, unused msgid "inspect.attributes.stroke.width" msgstr "Šířka" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:81, src/app/main/ui/viewer/inspect/attributes/text.cljs:194 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography" msgstr "Typografie" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:89 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.font-family" msgstr "Rodina písem" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:107 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.font-size" msgstr "Velikost písma" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:98 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.font-style" msgstr "Styl písma" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:116 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.font-weight" msgstr "Tloušťka písma" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:134 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.letter-spacing" msgstr "Mezery mezi písmeny" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:125 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.line-height" msgstr "Výška řádku" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:143 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.text-decoration" msgstr "Dekorace textu" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:145 msgid "inspect.attributes.typography.text-decoration.none" msgstr "Žádná" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:146 msgid "inspect.attributes.typography.text-decoration.strikethrough" msgstr "Přeškrtnutí" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:147 msgid "inspect.attributes.typography.text-decoration.underline" msgstr "Podtržení" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:156 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.text-transform" msgstr "Transformace textu" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:158 msgid "inspect.attributes.typography.text-transform.lowercase" msgstr "Malá písmena" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:159 msgid "inspect.attributes.typography.text-transform.none" msgstr "Žádná" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:160 msgid "inspect.attributes.typography.text-transform.titlecase" msgstr "První písmena velká" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:162 msgid "inspect.attributes.typography.text-transform.unset" msgstr "Nenastaveno" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:161 msgid "inspect.attributes.typography.text-transform.uppercase" msgstr "Velká písmena" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:140 msgid "inspect.empty.help" msgstr "" "Pokud se chcete dozvědět více o inspektorovi designu, navštivte centrum " "nápovědy společnosti Penpot" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:143 msgid "inspect.empty.more-info" msgstr "Více informací o inspektorovi" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:135 msgid "inspect.empty.select" msgstr "" "Vyberte tvar, tabuli nebo skupinu, abyste mohli zkontrolovat jejich " "vlastnosti a kód" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:125 +#: src/app/main/ui/inspect/right_sidebar.cljs msgid "inspect.tabs.code" msgstr "Kód" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:98 msgid "inspect.tabs.code.selected.circle" msgstr "Kruh" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:99 msgid "inspect.tabs.code.selected.component" msgstr "Komponent" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:100 msgid "inspect.tabs.code.selected.curve" msgstr "Křivka" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:101 msgid "inspect.tabs.code.selected.frame" msgstr "Tabule" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:102 msgid "inspect.tabs.code.selected.group" msgstr "Skupina" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:103 msgid "inspect.tabs.code.selected.image" msgstr "Obrázek" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:104 msgid "inspect.tabs.code.selected.mask" msgstr "Maska" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:93 +#: src/app/main/ui/inspect/right_sidebar.cljs msgid "inspect.tabs.code.selected.multiple" msgstr "%s vybráno" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:105 msgid "inspect.tabs.code.selected.path" msgstr "Cesta" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:106 msgid "inspect.tabs.code.selected.rect" msgstr "Obdélník" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:107 msgid "inspect.tabs.code.selected.svg-raw" msgstr "SVG" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:108 msgid "inspect.tabs.code.selected.text" msgstr "Text" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:115 +#: src/app/main/ui/inspect/right_sidebar.cljs msgid "inspect.tabs.info" msgstr "Informace" -#: src/app/main/ui/workspace/main_menu.cljs:158 +#: src/app/main/ui/workspace/header.cljs msgid "label.shortcuts" msgstr "Zkratky" -#: src/app/main/ui/dashboard/import.cljs:527 msgid "labels.accept" msgstr "Přijmout" -#: src/app/main/ui/settings/sidebar.cljs:100 +#: src/app/main/ui/settings/sidebar.cljs msgid "labels.access-tokens" msgstr "Přístupové tokeny" -#: src/app/main/ui/dashboard/team.cljs:968 msgid "labels.active" msgstr "Aktivní" -#: src/app/main/ui/dashboard/fonts.cljs:175 msgid "labels.add-custom-font" msgstr "Přidat vlastní písmo" -#: src/app/main/ui/dashboard/team.cljs:120, src/app/main/ui/dashboard/team.cljs:276, src/app/main/ui/dashboard/team.cljs:519, src/app/main/ui/dashboard/team.cljs:549, src/app/main/ui/onboarding/team_choice.cljs:67 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs msgid "labels.admin" msgstr "Správce" -#: src/app/main/ui/onboarding/questions.cljs:174 -msgid "labels.adobe-xd" -msgstr "Adobe XD" - #: src/app/main/ui/workspace/comments.cljs -#, unused msgid "labels.all" msgstr "Vše" -#: src/app/main/ui/auth.cljs:37 msgid "labels.and" msgstr "a" -#: src/app/main/ui/onboarding/team_choice.cljs:162 msgid "labels.back" msgstr "Zpět" -#: src/app/main/ui/static.cljs:59 +#: src/app/main/ui/static.cljs msgid "labels.bad-gateway.desc-message" msgstr "" "Vypadá to, že musíte chvíli počkat a zkusit to znovu; provádíme drobnou " "údržbu našich serverů." -#: src/app/main/ui/static.cljs:58 +#: src/app/main/ui/static.cljs msgid "labels.bad-gateway.main-message" msgstr "Špatná brána" -#: src/app/main/data/common.cljs:112, src/app/main/ui/dashboard/change_owner.cljs:69, src/app/main/ui/dashboard/import.cljs:514, src/app/main/ui/dashboard/team.cljs:868, src/app/main/ui/delete_shared.cljs:35, src/app/main/ui/export.cljs:164, src/app/main/ui/export.cljs:460, src/app/main/ui/settings/access_tokens.cljs:188, src/app/main/ui/viewer/share_link.cljs:203, src/app/main/ui/workspace/sidebar/assets/groups.cljs:149 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.cancel" msgstr "Zrušit" -#: src/app/main/ui/onboarding/questions.cljs:176 -msgid "labels.canva" -msgstr "Canva" - -#: src/app/main/ui/dashboard/projects.cljs:93, src/app/main/ui/export.cljs:478, src/app/main/ui/settings/access_tokens.cljs:183, src/app/main/ui/viewer/login.cljs:77, src/app/main/ui/viewer/share_link.cljs:174, src/app/main/ui/workspace/libraries.cljs:522 msgid "labels.close" msgstr "Zavřít" -#: src/app/main/ui/dashboard/comments.cljs:104, src/app/main/ui/viewer/comments.cljs:70, src/app/main/ui/workspace/comments.cljs:126 +#: src/app/main/ui/dashboard/comments.cljs msgid "labels.comments" msgstr "Komentáře" -#: src/app/main/ui/dashboard/sidebar.cljs:985, src/app/main/ui/workspace/main_menu.cljs:110 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.community" msgstr "Komunita" -#: src/app/main/ui/settings/password.cljs:103 +#: src/app/main/ui/settings/password.cljs msgid "labels.confirm-password" msgstr "Potvrďte heslo" -#: src/app/main/ui/dashboard/import.cljs:520, src/app/main/ui/export.cljs:465, src/app/main/ui/onboarding/newsletter.cljs:101 msgid "labels.continue" msgstr "Pokračovat" -#, unused msgid "labels.continue-with" msgstr "Pokračovat s" -#: src/app/main/ui/viewer/login.cljs:75 msgid "labels.continue-with-penpot" msgstr "Můžete pokračovat s účtem Penpot" -#: src/app/main/ui/dashboard/team.cljs:642 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.copy-invitation-link" msgstr "Kopírovat odkaz" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:157, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:190 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "labels.create" msgstr "Vytvořit" -#: src/app/main/ui/dashboard/team_form.cljs:101, src/app/main/ui/dashboard/team_form.cljs:121 +#: src/app/main/ui/dashboard/team_form.cljs, +#: src/app/main/ui/dashboard/team_form.cljs msgid "labels.create-team" msgstr "Vytvořit nový tým" -#: src/app/main/ui/dashboard/team_form.cljs:113 +#: src/app/main/ui/dashboard/team_form.cljs msgid "labels.create-team.placeholder" msgstr "Zadejte název nového týmu" -#, unused msgid "labels.custom-fonts" msgstr "Vlastní písma" -#: src/app/main/ui/settings/sidebar.cljs:73 +#: src/app/main/ui/settings/sidebar.cljs msgid "labels.dashboard" msgstr "Tabule" -#: src/app/main/ui/dashboard/file_menu.cljs:306, src/app/main/ui/dashboard/fonts.cljs:255, src/app/main/ui/dashboard/fonts.cljs:332, src/app/main/ui/dashboard/fonts.cljs:346, src/app/main/ui/dashboard/project_menu.cljs:115, src/app/main/ui/dashboard/team.cljs:904, src/app/main/ui/settings/access_tokens.cljs:209, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:209 +#: src/app/main/ui/dashboard/project_menu.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.delete" msgstr "Smazat" -#: src/app/main/ui/comments.cljs:357 +#: src/app/main/ui/comments.cljs msgid "labels.delete-comment" msgstr "Smazat komentář" -#: src/app/main/ui/comments.cljs:354 +#: src/app/main/ui/comments.cljs msgid "labels.delete-comment-thread" msgstr "Smazat vlákno" -#: src/app/main/ui/dashboard/team.cljs:648 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.delete-invitation" msgstr "Smazat pozvánku" -#: src/app/main/ui/dashboard/file_menu.cljs:262 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.delete-multi-files" msgstr "Smazat soubory %s" -#: src/app/main/ui/onboarding/questions.cljs:250 -msgid "labels.developer" -msgstr "Vývojář" - -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:199 msgid "labels.discard" msgstr "Zahodit" -#: src/app/main/ui/dashboard/file_menu.cljs:28, src/app/main/ui/dashboard/files.cljs:72, src/app/main/ui/dashboard/files.cljs:156, src/app/main/ui/dashboard/projects.cljs:220, src/app/main/ui/dashboard/projects.cljs:224, src/app/main/ui/dashboard/sidebar.cljs:791 +#: src/app/main/ui/dashboard/projects.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs, +#: src/app/main/ui/dashboard/files.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.drafts" msgstr "Pracovní verze" -#: src/app/main/ui/comments.cljs:350, src/app/main/ui/dashboard/fonts.cljs:252, src/app/main/ui/dashboard/team.cljs:902, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:205 +#: src/app/main/ui/comments.cljs msgid "labels.edit" msgstr "Upravit" -#, unused msgid "labels.edit-file" msgstr "Upravit soubor" -#: src/app/main/ui/dashboard/team.cljs:118, src/app/main/ui/dashboard/team.cljs:279, src/app/main/ui/dashboard/team.cljs:520, src/app/main/ui/dashboard/team.cljs:553, src/app/main/ui/onboarding/team_choice.cljs:66 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs msgid "labels.editor" msgstr "Editor" -#: src/app/main/ui/dashboard/team.cljs:661 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.expired-invitation" msgstr "Platnost vypršela" -#: src/app/main/ui/export.cljs:173 msgid "labels.export" msgstr "Exportovat" -#: src/app/main/ui/settings/feedback.cljs:51 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.feedback-disabled" msgstr "Zpětná vazba zakázána" -#: src/app/main/ui/settings/feedback.cljs:42 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.feedback-sent" msgstr "Zpětná vazba byla odeslána" -#: src/app/main/ui/onboarding/questions.cljs:170 -msgid "labels.figma" -msgstr "Figma" - -#: src/app/main/ui/dashboard/fonts.cljs:412 msgid "labels.font-family" msgstr "Rodina písem" -#, unused msgid "labels.font-providers" msgstr "Poskytovatelé písem" -#: src/app/main/ui/dashboard/fonts.cljs:413 msgid "labels.font-variants" msgstr "Styly" -#: src/app/main/ui/dashboard/fonts.cljs:52, src/app/main/ui/dashboard/sidebar.cljs:811 msgid "labels.fonts" msgstr "Písma" -#: src/app/main/ui/onboarding/questions.cljs:263 -msgid "labels.founder" -msgstr "Zakladatel / viceprezident" - -#: src/app/main/ui/onboarding/questions.cljs:262 -msgid "labels.freelancer" -msgstr "Jsem freelancer" - -#: src/app/main/ui/dashboard/sidebar.cljs:1015, src/app/main/ui/workspace/main_menu.cljs:142 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.github-repo" msgstr "Úložiště Github" -#: src/app/main/ui/dashboard/sidebar.cljs:1032, src/app/main/ui/settings/sidebar.cljs:113, src/app/main/ui/workspace/main_menu.cljs:171 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/settings/sidebar.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.give-feedback" msgstr "Dát zpětnou vazbu" -#: src/app/main/ui/auth/recovery_request.cljs:110, src/app/main/ui/auth/register.cljs:285, src/app/main/ui/viewer/login.cljs:117 msgid "labels.go-back" msgstr "Jít zpět" -#: src/app/main/ui/dashboard/sidebar.cljs:978, src/app/main/ui/workspace/main_menu.cljs:102 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.help-center" msgstr "Centrum nápovědy" -#: src/app/main/ui/viewer/comments.cljs:103, src/app/main/ui/workspace/comments.cljs:67 +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs msgid "labels.hide-resolved-comments" msgstr "Skrýt vyřešené komentáře" -#: src/app/main/ui/dashboard/team.cljs:969 msgid "labels.inactive" msgstr "Neaktivní" -#: src/app/main/ui/dashboard/fonts.cljs:410 msgid "labels.installed-fonts" msgstr "Nainstalovaná písma" -#: src/app/main/ui/static.cljs:144 +#: src/app/main/ui/static.cljs msgid "labels.internal-error.desc-message" msgstr "" "Stalo se něco špatného. Opakujte operaci a pokud problém přetrvává, " "kontaktujte podporu." -#: src/app/main/ui/static.cljs:143 +#: src/app/main/ui/static.cljs msgid "labels.internal-error.main-message" msgstr "Interní chyba" -#: src/app/main/ui/onboarding/questions.cljs:178 -msgid "labels.invision" -msgstr "InVision" - -#: src/app/main/ui/dashboard/sidebar.cljs:516, src/app/main/ui/dashboard/team.cljs:89, src/app/main/ui/dashboard/team.cljs:97, src/app/main/ui/dashboard/team.cljs:708 +#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.invitations" msgstr "Pozvánky" -#: src/app/main/ui/settings/options.cljs:51 +#: src/app/main/ui/settings/options.cljs msgid "labels.language" msgstr "Jazyk" -#: src/app/main/ui/dashboard/sidebar.cljs:1008, src/app/main/ui/workspace/main_menu.cljs:134 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.libraries-and-templates" msgstr "Knihovny a šablony" -#: src/app/main/ui/viewer/header.cljs:203 msgid "labels.log-or-sign" msgstr "Přihlásit se ne registrovat" -#: src/app/main/ui/dashboard/sidebar.cljs:1040 +#: src/app/main/ui/settings.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.logout" msgstr "Odhlásit se" -#: src/app/main/ui/onboarding/questions.cljs:253 -msgid "labels.marketing" -msgstr "Marketing" - -#: src/app/main/ui/dashboard/team.cljs:468 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.member" msgstr "Člen" -#: src/app/main/ui/dashboard/sidebar.cljs:510, src/app/main/ui/dashboard/team.cljs:87, src/app/main/ui/dashboard/team.cljs:95 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.members" msgstr "Členové" -#: src/app/main/ui/settings/password.cljs:96 +#: src/app/main/ui/settings/password.cljs msgid "labels.new-password" msgstr "Nové heslo" -#: src/app/main/ui/dashboard/templates.cljs:269, src/app/main/ui/onboarding/questions.cljs:55 -msgid "labels.next" -msgstr "Další" - -#: src/app/main/ui/dashboard/comments.cljs:128, src/app/main/ui/workspace/comments.cljs:161 +#: src/app/main/ui/workspace/comments.cljs, +#: src/app/main/ui/dashboard/comments.cljs msgid "labels.no-comments-available" msgstr "Vše je aktuální! Zde se zobrazí upozornění na nové komentáře." -#: src/app/main/ui/dashboard/team.cljs:694 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.no-invitations" msgstr "Nejsou žádné pozvánky." -#: src/app/main/ui/dashboard/team.cljs:696 -#, markdown +#: src/app/main/ui/dashboard/team.cljs msgid "labels.no-invitations-hint" msgstr "" "Chcete-li do tohoto týmu pozvat další členy, stiskněte tlačítko „Pozvat do " "týmu“." -#: src/app/main/ui/static.cljs:50 +#: src/app/main/ui/static.cljs msgid "labels.not-found.desc-message" msgstr "Tato stránka možná neexistuje nebo k ní nemáte oprávnění k přístupu." -#: src/app/main/ui/static.cljs:49 +#: src/app/main/ui/static.cljs msgid "labels.not-found.main-message" msgstr "Ups!" -#: src/app/main/ui/dashboard/projects.cljs:239, src/app/main/ui/dashboard/team.cljs:1095 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.num-of-files" msgid_plural "labels.num-of-files" msgstr[0] "1 soubor" msgstr[1] "%s soubory" msgstr[2] "%s souborů" -#: src/app/main/ui/viewer/thumbnails.cljs:80 msgid "labels.num-of-frames" msgid_plural "labels.num-of-frames" msgstr[0] "1 tabule" msgstr[1] "%s tabule" msgstr[2] "%s tabulí" -#: src/app/main/ui/dashboard/team.cljs:1090 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.num-of-projects" msgid_plural "labels.num-of-projects" msgstr[0] "1 projekt" msgstr[1] "%s projekty" msgstr[2] "%s projektů" -#: src/app/main/ui/settings/password.cljs:89 +#: src/app/main/ui/settings/password.cljs msgid "labels.old-password" msgstr "Staré heslo" #: src/app/main/ui/workspace/comments.cljs -#, unused msgid "labels.only-yours" msgstr "Jen vaše" -#, unused msgid "labels.or" msgstr "nebo" -#: src/app/main/ui/onboarding/questions.cljs:145, src/app/main/ui/onboarding/questions.cljs:214, src/app/main/ui/onboarding/questions.cljs:303, src/app/main/ui/onboarding/questions.cljs:316, src/app/main/ui/onboarding/questions.cljs:389, src/app/main/ui/onboarding/questions.cljs:447 -msgid "labels.other" -msgstr "Jiné (upřesněte)" - -#: src/app/main/ui/dashboard/team.cljs:286, src/app/main/ui/dashboard/team.cljs:518, src/app/main/ui/dashboard/team.cljs:1076 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs msgid "labels.owner" msgstr "Majitel" -#: src/app/main/ui/settings/sidebar.cljs:87 +#: src/app/main/ui/settings/sidebar.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.password" msgstr "Heslo" -#: src/app/main/ui/dashboard/team.cljs:662 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.pending-invitation" msgstr "Nevyřízený" -#: src/app/main/ui/onboarding/questions.cljs:51 -msgid "labels.previous" -msgstr "Předchozí" - -#: src/app/main/ui/onboarding/questions.cljs:254 -msgid "labels.product-management" -msgstr "Produktový nebo projektový manažer" - -#: src/app/main/ui/settings/profile.cljs:118, src/app/main/ui/settings/sidebar.cljs:82 +#: src/app/main/ui/settings/sidebar.cljs msgid "labels.profile" msgstr "Profil" -#: src/app/main/ui/dashboard/sidebar.cljs:784 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.projects" msgstr "Projekty" -#: src/app/main/ui/dashboard/sidebar.cljs:998, src/app/main/ui/settings/sidebar.cljs:106, src/app/main/ui/workspace/main_menu.cljs:126 +#: src/app/main/ui/settings/sidebar.cljs msgid "labels.release-notes" msgstr "Poznámky k verzi" #: src/app/main/ui/workspace.cljs -#, unused msgid "labels.reload-file" msgstr "Znovu načíst soubor" -#: src/app/main/ui/workspace/libraries.cljs, src/app/main/ui/dashboard/team.cljs -#, unused +#: src/app/main/ui/workspace/libraries.cljs, +#: src/app/main/ui/dashboard/team.cljs msgid "labels.remove" msgstr "Odstranit" -#: src/app/main/ui/dashboard/team.cljs:316 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.remove-member" msgstr "Odebrat člena" -#: src/app/main/ui/dashboard/file_menu.cljs:271, src/app/main/ui/dashboard/project_menu.cljs:85, src/app/main/ui/dashboard/sidebar.cljs:539, src/app/main/ui/workspace/sidebar/assets/groups.cljs:157 +#: src/app/main/ui/dashboard/sidebar.cljs, +#: src/app/main/ui/dashboard/project_menu.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.rename" msgstr "Přejmenovat" -#: src/app/main/ui/dashboard/team_form.cljs:99 +#: src/app/main/ui/dashboard/team_form.cljs msgid "labels.rename-team" msgstr "Přejmenovat tým" -#: src/app/main/ui/dashboard/team.cljs:645 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.resend-invitation" msgstr "Znovu poslat pozvánku" -#: src/app/main/ui/static.cljs:61, src/app/main/ui/static.cljs:70, src/app/main/ui/static.cljs:148 +#: src/app/main/ui/static.cljs, src/app/main/ui/static.cljs msgid "labels.retry" msgstr "Zkusit znovu" -#: src/app/main/ui/dashboard/team.cljs:469, src/app/main/ui/dashboard/team.cljs:709 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.role" msgstr "Role" -#: src/app/main/ui/dashboard/fonts.cljs:380, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:191 msgid "labels.save" msgstr "Uložit" -#: src/app/main/ui/onboarding/questions.cljs:414, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:436 msgid "labels.search" msgstr "Hledat" -#: src/app/main/ui/dashboard/fonts.cljs:415 msgid "labels.search-font" msgstr "Hledat písmo" -#: src/app/main/ui/onboarding/questions.cljs:90, src/app/main/ui/onboarding/questions.cljs:248, src/app/main/ui/onboarding/questions.cljs:259, src/app/main/ui/onboarding/questions.cljs:270 -msgid "labels.select-option" -msgstr "Vyberte možnost" - -#: src/app/main/ui/settings/feedback.cljs:82 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.send" msgstr "Poslat" -#: src/app/main/ui/settings/feedback.cljs:82 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.sending" msgstr "Odesílání…" -#: src/app/main/ui/static.cljs:68 +#: src/app/main/ui/static.cljs msgid "labels.service-unavailable.desc-message" msgstr "Provádíme plánovanou údržbu našich systémů." -#: src/app/main/ui/static.cljs:67 +#: src/app/main/ui/static.cljs msgid "labels.service-unavailable.main-message" msgstr "Služba je nedostupná" -#: src/app/main/ui/dashboard/sidebar.cljs:530, src/app/main/ui/dashboard/team.cljs:88, src/app/main/ui/dashboard/team.cljs:102, src/app/main/ui/settings/options.cljs:84, src/app/main/ui/settings/sidebar.cljs:93 +#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.settings" msgstr "Nastavení" -#: src/app/main/ui/viewer/header.cljs:199 msgid "labels.share" msgstr "Sdílet" -#, unused msgid "labels.share-prototype" msgstr "Sdílet prototyp" -#: src/app/main/ui/dashboard/sidebar.cljs:800 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.shared-libraries" msgstr "Knihovny" -#: src/app/main/ui/viewer/comments.cljs:82, src/app/main/ui/workspace/comments.cljs:55, src/app/main/ui/workspace/comments.cljs:135 +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs msgid "labels.show-all-comments" msgstr "Zobrazit všechny komentáře" -#: src/app/main/ui/viewer/comments.cljs:115 msgid "labels.show-comments-list" msgstr "Zobrazit seznam komentářů" -#: src/app/main/ui/viewer/comments.cljs:91, src/app/main/ui/workspace/comments.cljs:61, src/app/main/ui/workspace/comments.cljs:136 +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs msgid "labels.show-your-comments" msgstr "Zobrazit pouze vaše komentáře" -#: src/app/main/ui/onboarding/questions.cljs:172 -msgid "labels.sketch" -msgstr "Sketch" - -#: src/app/main/ui/onboarding/questions.cljs:56 -msgid "labels.start" -msgstr "Start" - -#: src/app/main/ui/dashboard/team.cljs:710 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.status" msgstr "Status" -#: src/app/main/ui/onboarding/questions.cljs:251 -msgid "labels.student-teacher" -msgstr "Student nebo učitel" - -#: src/app/main/ui/dashboard/sidebar.cljs:992, src/app/main/ui/workspace/main_menu.cljs:118 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.tutorials" msgstr "Tutoriály" -#: src/app/main/ui/dashboard/file_menu.cljs:256 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.unpublish-multi-files" msgstr "Zrušit publikování %s souborů" -#: src/app/main/ui/settings/profile.cljs:103 +#: src/app/main/ui/settings/profile.cljs msgid "labels.update" msgstr "Aktualizovat" -#: src/app/main/ui/dashboard/team_form.cljs:120 +#: src/app/main/ui/dashboard/team_form.cljs msgid "labels.update-team" msgstr "Aktualizovat tým" -#: src/app/main/ui/dashboard/fonts.cljs:241 msgid "labels.upload" msgstr "Nahrát" -#: src/app/main/ui/dashboard/fonts.cljs:169 msgid "labels.upload-custom-fonts" msgstr "Nahrát vlastní písma" -#: src/app/main/ui/dashboard/fonts.cljs:240 msgid "labels.uploading" msgstr "Nahrávání…" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs:223 msgid "labels.view-only" msgstr "POUZE ZOBRAZIT" -#: src/app/main/ui/dashboard/team.cljs:123, src/app/main/ui/dashboard/team.cljs:282, src/app/main/ui/dashboard/team.cljs:521 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.viewer" msgstr "Prohlížeč" -#: src/app/main/ui/dashboard/sidebar.cljs:523, src/app/main/ui/dashboard/team.cljs:90, src/app/main/ui/dashboard/team.cljs:100, src/app/main/ui/dashboard/team.cljs:880 msgid "labels.webhooks" msgstr "Webhooks" -#: src/app/main/ui/comments.cljs:194 +#: src/app/main/ui/comments.cljs msgid "labels.write-new-comment" msgstr "Napsat nový komentář" -#: src/app/main/ui/dashboard/team.cljs:237 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.you" msgstr "(vy)" -#: src/app/main/ui/dashboard/sidebar.cljs:968 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.your-account" msgstr "Váš účet" -#: src/app/main/ui/workspace/colorpicker.cljs:297, src/app/main/ui/workspace/colorpicker.cljs:298, src/app/main/ui/workspace/colorpicker.cljs:300 msgid "media.choose-image" msgstr "Vyberte obrázek" -#, unused msgid "media.gradient" msgstr "Přechod" -#: src/app/main/data/workspace/media.cljs:275, src/app/main/ui/components/color_bullet.cljs:32, src/app/main/ui/components/color_bullet.cljs:45, src/app/main/ui/viewer/inspect/attributes/common.cljs:66, src/app/main/ui/workspace/colorpicker.cljs:211, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:237 msgid "media.image" msgstr "Obrázek" -#: src/app/main/ui/workspace/colorpicker.cljs:208 msgid "media.linear" msgstr "Lineární" -#: src/app/main/data/media.cljs:49, src/app/main/data/workspace/media.cljs:223, src/app/main/data/workspace/media.cljs:453 +#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs msgid "media.loading" msgstr "Načítání obrázku…" -#: src/app/main/ui/workspace/colorpicker.cljs:209 msgid "media.radial" msgstr "Radiální" -#: src/app/main/ui/workspace/colorpicker.cljs:206 msgid "media.solid" msgstr "Plná" -#: src/app/main/data/common.cljs:111 msgid "modals.add-shared-confirm-empty.hint" msgstr "" "Vaše knihovna je prázdná. Po přidání jako sdílená knihovna budou položky, " "které vytvoříte, k dispozici pro použití se zbytkem vašich souborů. Opravdu " "ji chcete publikovat?" -#: src/app/main/data/common.cljs:113 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.add-shared-confirm.accept" msgstr "Přidat jako sdílenou knihovnu" -#: src/app/main/data/common.cljs:111 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.add-shared-confirm.hint" msgstr "" "Po přidání jako Sdílené knihovny budou položky této knihovny k dispozici " "pro použití se zbytkem vašich souborů." -#: src/app/main/data/common.cljs:110 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.add-shared-confirm.message" msgstr "Přidat „%s“ jako Sdílenou knihovnu" -#: src/app/main/ui/workspace/nudge.cljs:60 +#: src/app/main/ui/workspace/nudge.cljs msgid "modals.big-nudge" msgstr "Velké posunutí" -#: src/app/main/ui/settings/change_email.cljs:127 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.confirm-email" msgstr "Ověřit nový e-mail" -#: src/app/main/ui/settings/change_email.cljs:114 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.info" msgstr "" "Zašleme vám e-mail na váš aktuální e-mail „%s“, abychom ověřili vaši " "identitu." -#: src/app/main/ui/settings/change_email.cljs:119 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.new-email" msgstr "Nový e-mail" -#: src/app/main/ui/settings/change_email.cljs:136 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.submit" msgstr "Změnit e-mail" -#: src/app/main/ui/settings/change_email.cljs:107 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.title" msgstr "Změňte svůj e-mail" -#: src/app/main/ui/settings/access_tokens.cljs:165, src/app/main/ui/settings/access_tokens.cljs:171 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.create-access-token.copy-token" msgstr "Kopírovat token" -#: src/app/main/ui/settings/access_tokens.cljs:142 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.create-access-token.expiration-date.label" msgstr "Datum vypršení platnosti" -#: src/app/main/ui/settings/access_tokens.cljs:136 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.create-access-token.name.label" msgstr "Jméno" -#: src/app/main/ui/settings/access_tokens.cljs:138 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.create-access-token.name.placeholder" msgstr "Název může pomoci zjistit, k čemu token slouží" -#: src/app/main/ui/settings/access_tokens.cljs:191 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.create-access-token.submit-label" msgstr "Vytvořit token" -#: src/app/main/ui/settings/access_tokens.cljs:123 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.create-access-token.title" msgstr "Vygenerujte přístupový token" -#: src/app/main/ui/dashboard/team.cljs:873 msgid "modals.create-webhook.submit-label" msgstr "Vytvořit webhook" -#: src/app/main/ui/dashboard/team.cljs:838 msgid "modals.create-webhook.title" msgstr "Vytvořit webhook" -#: src/app/main/ui/dashboard/team.cljs:849 msgid "modals.create-webhook.url.label" msgstr "Adresa URL datové části" -#: src/app/main/ui/dashboard/team.cljs:850 msgid "modals.create-webhook.url.placeholder" msgstr "https://example.com/postreceive" -#: src/app/main/ui/settings/access_tokens.cljs:271 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.delete-acces-token.accept" msgstr "Smazat token" -#: src/app/main/ui/settings/access_tokens.cljs:270 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.delete-acces-token.message" msgstr "Opravdu chcete tento token smazat?" -#: src/app/main/ui/settings/access_tokens.cljs:269 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.delete-acces-token.title" msgstr "Smazat token" -#: src/app/main/ui/settings/delete_account.cljs:59 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.cancel" msgstr "Zrušit a ponechat si můj účet" -#: src/app/main/ui/settings/delete_account.cljs:64 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.confirm" msgstr "Ano, odstranit můj účet" -#: src/app/main/ui/settings/delete_account.cljs:53 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.info" msgstr "Odebráním účtu ztratíte všechny své aktuální projekty a archivy." -#: src/app/main/ui/settings/delete_account.cljs:46 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.title" msgstr "Opravdu chcete smazat svůj účet?" -#: src/app/main/ui/comments.cljs:298 +#: src/app/main/ui/comments.cljs msgid "modals.delete-comment-thread.accept" msgstr "Smazat konverzaci" -#: src/app/main/ui/comments.cljs:297 +#: src/app/main/ui/comments.cljs msgid "modals.delete-comment-thread.message" msgstr "" "Opravdu chcete smazat tuto konverzaci? Všechny komentáře v tomto vláknu " "budou smazány." -#: src/app/main/ui/comments.cljs:296 +#: src/app/main/ui/comments.cljs msgid "modals.delete-comment-thread.title" msgstr "Smazat konverzaci" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:140 msgid "modals.delete-component-annotation.message" msgstr "Opravdu chcete smazat tuto anotaci?" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:139 msgid "modals.delete-component-annotation.title" msgstr "Smazat anotaci" -#: src/app/main/ui/dashboard/file_menu.cljs:123 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-confirm.accept" msgstr "Smazat soubor" -#: src/app/main/ui/dashboard/file_menu.cljs:122 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-confirm.message" msgstr "Opravdu chcete tento soubor smazat?" -#: src/app/main/ui/dashboard/file_menu.cljs:121 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-confirm.title" msgstr "Mazání souboru" -#: src/app/main/ui/dashboard/file_menu.cljs:117 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-multi-confirm.accept" msgstr "Vymazat soubory" -#: src/app/main/ui/dashboard/file_menu.cljs:116 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-multi-confirm.message" msgstr "Opravdu chcete smazat soubory %s?" -#: src/app/main/ui/dashboard/file_menu.cljs:115 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-multi-confirm.title" msgstr "Mazání %s souborů" -#: src/app/main/ui/dashboard/fonts.cljs:345 msgid "modals.delete-font-variant.message" msgstr "" "Opravdu chcete smazat tento styl písma? Pokud je použit v souboru, nenačte " "se." -#: src/app/main/ui/dashboard/fonts.cljs:344 msgid "modals.delete-font-variant.title" msgstr "Odstranění stylu písma" -#: src/app/main/ui/dashboard/fonts.cljs:331 msgid "modals.delete-font.message" msgstr "Opravdu chcete smazat toto písmo? Pokud je použito v souboru, nenačte se." -#: src/app/main/ui/dashboard/fonts.cljs:330 msgid "modals.delete-font.title" msgstr "Mazání písma" -#: src/app/main/ui/workspace/context_menu.cljs:522, src/app/main/ui/workspace/sidebar/sitemap.cljs:45 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs msgid "modals.delete-page.body" msgstr "Opravdu chcete smazat tuto stránku?" -#: src/app/main/ui/workspace/context_menu.cljs:521, src/app/main/ui/workspace/sidebar/sitemap.cljs:44 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs msgid "modals.delete-page.title" msgstr "Smazat stránku" -#: src/app/main/ui/dashboard/project_menu.cljs:69 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "modals.delete-project-confirm.accept" msgstr "Smazat projekt" -#: src/app/main/ui/dashboard/project_menu.cljs:68 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "modals.delete-project-confirm.message" msgstr "Opravdu chcete smazat tento projekt?" -#: src/app/main/ui/dashboard/project_menu.cljs:67 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "modals.delete-project-confirm.title" msgstr "Smazat projekt" -#: src/app/main/ui/delete_shared.cljs:51 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.accept" msgid_plural "modals.delete-shared-confirm.accept" msgstr[0] "Smazat soubor" msgstr[1] "Smazat soubory" msgstr[2] "Smazat soubory" -#: src/app/main/ui/delete_shared.cljs:55 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.activated.no-files-message" msgid_plural "modals.delete-shared-confirm.activated.no-files-message" msgstr[0] "Není aktivován v žádném souboru." msgstr[1] "Nejsou aktivovány v žádném souboru." msgstr[2] "Nejsou aktivovány v žádném souboru." -#: src/app/main/ui/delete_shared.cljs:57 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.activated.scd-message" msgid_plural "modals.delete-shared-confirm.activated.scd-message" msgstr[0] "Tato knihovna je aktivována zde: " msgstr[1] "Tyto knihovny jsou aktivovány zde: " msgstr[2] "Tyto knihovny jsou aktivovány zde: " -#: src/app/main/ui/delete_shared.cljs:46 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.message" msgid_plural "modals.delete-shared-confirm.message" msgstr[0] "Opravdu chcete smazat tento soubor?" msgstr[1] "Opravdu chcete smazat tyto soubory?" msgstr[2] "Opravdu chcete smazat tyto soubory?" -#: src/app/main/ui/delete_shared.cljs:41 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.title" msgid_plural "modals.delete-shared-confirm.title" msgstr[0] "Mazání souboru" msgstr[1] "Mazání souborů" msgstr[2] "Mazání souborů" -#: src/app/main/ui/dashboard/sidebar.cljs:435 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.delete-team-confirm.accept" msgstr "Smazat tým" -#: src/app/main/ui/dashboard/sidebar.cljs:434 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.delete-team-confirm.message" msgstr "" "Opravdu chcete tento tým smazat? Všechny projekty a soubory spojené s týmem " "budou trvale smazány." -#: src/app/main/ui/dashboard/sidebar.cljs:433 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.delete-team-confirm.title" msgstr "Mazání týmu" -#: src/app/main/ui/dashboard/team.cljs:427 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.delete-team-member-confirm.accept" msgstr "Smazat člena" -#: src/app/main/ui/dashboard/team.cljs:426 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.delete-team-member-confirm.message" msgstr "Opravdu chcete tohoto člena smazat z týmu?" -#: src/app/main/ui/dashboard/team.cljs:425 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.delete-team-member-confirm.title" msgstr "Smazat člena týmu" -#: src/app/main/ui/delete_shared.cljs:59 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-unpublish-shared-confirm.activated.hint" msgid_plural "modals.delete-unpublish-shared-confirm.activated.hint" msgstr[0] "" @@ -2236,1344 +2025,1206 @@ msgstr[2] "" "Aktiva, která již byla v těchto souborech použita, tam zůstanou (nebude " "porušen žádný návrh)." -#: src/app/main/ui/dashboard/team.cljs:942 msgid "modals.delete-webhook.accept" msgstr "Smazat webhook" -#: src/app/main/ui/dashboard/team.cljs:941 msgid "modals.delete-webhook.message" msgstr "Opravdu chcete tento webhook smazat?" -#: src/app/main/ui/dashboard/team.cljs:940 msgid "modals.delete-webhook.title" msgstr "Mazání webhooku" -#: src/app/main/ui/dashboard/team.cljs:872 msgid "modals.edit-webhook.submit-label" msgstr "Upravit webhook" -#: src/app/main/ui/dashboard/team.cljs:837 msgid "modals.edit-webhook.title" msgstr "Upravit webhook" -#: src/app/main/ui/dashboard/team.cljs:218 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.invite-member-confirm.accept" msgstr "Poslat pozvánku" -#: src/app/main/ui/dashboard/team.cljs:213, src/app/main/ui/onboarding/team_choice.cljs:156 msgid "modals.invite-member.emails" msgstr "E-maily oddělené čárkou" -#: src/app/main/ui/dashboard/team.cljs:197 msgid "modals.invite-member.repeated-invitation" msgstr "" "Některé e-maily jsou od současných členů týmu. Jejich pozvánky nebudou " "odeslány." -#: src/app/main/ui/dashboard/team.cljs:190 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.invite-team-member.title" msgstr "Pozvat členy do týmu" -#: src/app/main/ui/dashboard/sidebar.cljs:423, src/app/main/ui/dashboard/team.cljs:393 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-close-confirm.hint" msgstr "" "Protože jste jediným členem tohoto týmu, tým bude smazán spolu s jeho " "projekty a soubory." -#: src/app/main/ui/dashboard/sidebar.cljs:422, src/app/main/ui/dashboard/team.cljs:392 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-close-confirm.message" msgstr "Opravdu chcete opustit tým %s?" -#: src/app/main/ui/dashboard/change_owner.cljs:59 msgid "modals.leave-and-reassign.forbidden" msgstr "" "Nemůžete opustit tým, pokud není žádný jiný člen, kterého by bylo možné " "povýšit na vlastníka. Možná budete chtít tým smazat." -#: src/app/main/ui/dashboard/change_owner.cljs:55 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-reassign.hint1" msgstr "" "Jste vlastníkem tohoto týmu. Než odejdete, vyberte jiného člena, kterého " "chcete povýšit na vlastníka." -#: src/app/main/ui/dashboard/change_owner.cljs:78 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-reassign.promote-and-leave" msgstr "Povýšit a odejít" -#: src/app/main/ui/dashboard/change_owner.cljs:34 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-reassign.select-member-to-promote" msgstr "Vyberte člena, kterého chcete povýšit" -#: src/app/main/ui/dashboard/change_owner.cljs:49 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-reassign.title" msgstr "Než odejdete" -#: src/app/main/ui/dashboard/sidebar.cljs:402, src/app/main/ui/dashboard/sidebar.cljs:424, src/app/main/ui/dashboard/team.cljs:394, src/app/main/ui/dashboard/team.cljs:416 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-confirm.accept" msgstr "Opustit tým" -#: src/app/main/ui/dashboard/sidebar.cljs:401, src/app/main/ui/dashboard/team.cljs:415 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-confirm.message" msgstr "Opravdu chcete opustit tento tým?" -#: src/app/main/ui/dashboard/sidebar.cljs:400, src/app/main/ui/dashboard/sidebar.cljs:421, src/app/main/ui/dashboard/team.cljs:391, src/app/main/ui/dashboard/team.cljs:414 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-confirm.title" msgstr "Opuštění týmu" -#: src/app/main/ui/workspace/main_menu.cljs:266, src/app/main/ui/workspace/nudge.cljs:47 +#: src/app/main/ui/workspace/nudge.cljs msgid "modals.nudge-title" msgstr "Posunout o" -#: src/app/main/ui/dashboard/team.cljs:340 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.accept" msgstr "Převést vlastnictví" -#: src/app/main/ui/dashboard/team.cljs:339 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.hint" msgstr "" "Pokud převedete vlastnictví, změníte svou roli na správce a ztratíte " "některá oprávnění k tomuto týmu. " -#: src/app/main/ui/dashboard/team.cljs:338 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.message" msgstr "" "Jste současným vlastníkem tohoto týmu. Opravdu chcete udělat %s novým " "vlastníkem týmu?" -#: src/app/main/ui/dashboard/team.cljs:337 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.title" msgstr "Nový majitel týmu" -#: src/app/main/ui/workspace/libraries.cljs:188 msgid "modals.publish-empty-library.accept" msgstr "Publikovat" -#: src/app/main/ui/workspace/libraries.cljs:187 msgid "modals.publish-empty-library.message" msgstr "Vaše knihovna je prázdná. Opravdu to chcete publikovat?" -#: src/app/main/ui/workspace/libraries.cljs:186 msgid "modals.publish-empty-library.title" msgstr "Publikovat prázdnou knihovnu" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.remove-shared-confirm.accept" msgstr "Odebrat jako sdílenou knihovnu" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.remove-shared-confirm.hint" msgstr "" "Po odstranění jako Sdílené knihovny přestane být knihovna tohoto souboru k " "dispozici pro použití se zbytkem vašich souborů." -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.remove-shared-confirm.message" msgstr "Odebrat „%s“ jako sdílenou knihovnu" -#: src/app/main/ui/workspace/nudge.cljs:53 +#: src/app/main/ui/workspace/nudge.cljs msgid "modals.small-nudge" msgstr "Malé posunutí" -#: src/app/main/ui/delete_shared.cljs:52 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.unpublish-shared-confirm.accept" msgstr "Zrušit publikování" -#: src/app/main/ui/delete_shared.cljs:47 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.unpublish-shared-confirm.message" msgid_plural "modals.unpublish-shared-confirm.message" msgstr[0] "Opravdu chcete zrušit publikování této knihovny?" msgstr[1] "Opravdu chcete zrušit publikování těchto knihoven?" msgstr[2] "Opravdu chcete zrušit publikování těchto knihoven?" -#: src/app/main/ui/delete_shared.cljs:42 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.unpublish-shared-confirm.title" msgid_plural "modals.unpublish-shared-confirm.title" msgstr[0] "Zrušit publikování knihovny" msgstr[1] "Zrušit publikování knihoven" msgstr[2] "Zrušit publikování knihoven" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component-in-bulk.hint" msgstr "" "Chystáte se aktualizovat komponenty ve sdílené knihovně. To může ovlivnit " "další soubory, které jej používají." -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component-in-bulk.message" msgstr "Aktualizujte komponenty ve sdílené knihovně" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:380 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.accept" msgstr "Aktualizovat" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:379 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.cancel" msgstr "Zrušit" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:378 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.hint" msgstr "" "Chystáte se aktualizovat komponentu ve sdílené knihovně. To může ovlivnit " "další soubory, které ji používají." -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:377 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.message" msgstr "Aktualizovat komponentu ve sdílené knihovně" -#: src/app/main/data/common.cljs:71 +#: src/app/main/data/common.cljs msgid "notifications.by-code.upgrade-version" msgstr "K dispozici je nová verze, obnovte prosím stránku" -#: src/app/main/ui/dashboard/team.cljs:154, src/app/main/ui/dashboard/team.cljs:595 +#: src/app/main/ui/dashboard/team.cljs msgid "notifications.invitation-email-sent" msgstr "Pozvánka byla úspěšně odeslána" -#: src/app/main/ui/dashboard/team.cljs:616 +#: src/app/main/ui/dashboard/team.cljs msgid "notifications.invitation-link-copied" msgstr "Odkaz na pozvánku zkopírován" -#: src/app/main/ui/settings/delete_account.cljs:24 +#: src/app/main/ui/settings/delete_account.cljs msgid "notifications.profile-deletion-not-allowed" msgstr "Nemůžete smazat svůj profil. Než budete pokračovat, znovu přiřaďte své týmy." -#: src/app/main/ui/settings/options.cljs:29, src/app/main/ui/settings/profile.cljs:35 +#: src/app/main/ui/settings/profile.cljs, src/app/main/ui/settings/options.cljs msgid "notifications.profile-saved" msgstr "Profil byl úspěšně uložen!" -#: src/app/main/ui/settings/change_email.cljs:63 +#: src/app/main/ui/settings/change_email.cljs msgid "notifications.validation-email-sent" msgstr "Ověřovací e-mail byl odeslán na adresu %s. Zkontrolujte si e-mail!" -#, unused msgid "onboarding-v2.before-start.desc1" msgstr "" "Měli byste vědět, že existuje spousta dostupných zdrojů, které vám pomohou " "začít s Penpot, jako je uživatelská příručka a náš kanál YouTube." -#, unused msgid "onboarding-v2.before-start.desc2" msgstr "" "Podrobné informace o tom, jak používat Penpot. Od prototypů po organizování " "nebo sdílení návrhů." -#, unused msgid "onboarding-v2.before-start.desc2.title" msgstr "Uživatelská příručka" -#, unused msgid "onboarding-v2.before-start.desc3" msgstr "Můžete se podívat na výukové materiály vytvořené námi a naší komunitou." -#, unused msgid "onboarding-v2.before-start.desc3.title" msgstr "Video tutoriály" -#, unused msgid "onboarding-v2.before-start.title" msgstr "Než začnete" -#: src/app/main/ui/onboarding/newsletter.cljs:63 msgid "onboarding-v2.newsletter.desc" msgstr "" "Přihlaste se k odběru novinek Penpot a zůstaňte informováni o pokroku ve " "vývoji produktu." -#: src/app/main/ui/onboarding/newsletter.cljs:83 msgid "onboarding-v2.newsletter.news" msgstr "Zasílejte mi novinky o Penpot (příspěvky na blogu, videonávody, streamy...)." -#: src/app/main/ui/onboarding/newsletter.cljs:91 msgid "onboarding-v2.newsletter.privacy1" msgstr "Záleží nám na soukromí, zde si můžete přečíst naše " -#: src/app/main/ui/onboarding/newsletter.cljs:97 msgid "onboarding-v2.newsletter.privacy2" msgstr "" "Budeme vám posílat pouze relevantní e-maily. Z odběru se můžete kdykoli " "odhlásit pomocí odhlašovacího odkazu v kterémkoli z našich newsletterů." -#: src/app/main/ui/onboarding/newsletter.cljs:71 msgid "onboarding-v2.newsletter.updates" msgstr "Zasílejte mi aktualizace produktu (nové funkce, verze, opravy...)." -#, unused msgid "onboarding-v2.welcome.desc1" msgstr "" "Penpot je Open Source a vytváří ho Kaleidos i komunita, kde si už spousta " "lidí pomáhá. Všichni mohou spolupracovat:" -#, unused msgid "onboarding-v2.welcome.desc2" msgstr "" "Veřejný prostor, kde se můžete učit, sdílet a diskutovat o Penpot, jeho " "současnosti a budoucnosti s celou komunitou a týmem Penpot." -#, unused msgid "onboarding-v2.welcome.desc2.title" msgstr "Účast v komunitě" -#, unused msgid "onboarding-v2.welcome.desc3" msgstr "" "Kde najdete, jak spolupracovat s překlady, požadavky na funkce, hlavními " "příspěvky, hledáním chyb…" -#, unused msgid "onboarding-v2.welcome.desc3.title" msgstr "Průvodce přispíváním" -#: src/app/main/ui/onboarding/team_choice.cljs:31 msgid "onboarding-v2.welcome.title" msgstr "Vítejte v Penpot!" -#: src/app/main/ui/onboarding/team_choice.cljs:229 msgid "onboarding.choice.team-up.continue-creating-team" msgstr "Pokračujte ve vytváření týmu" -#: src/app/main/ui/onboarding/team_choice.cljs:239 msgid "onboarding.choice.team-up.continue-without-a-team" msgstr "Pokračovat bez týmu" -#: src/app/main/ui/onboarding/team_choice.cljs:167 msgid "onboarding.choice.team-up.create-team-and-invite" msgstr "Vytvořte tým a pozvěte" -#, unused msgid "onboarding.choice.team-up.create-team-and-send-invites" msgstr "Vytvořte tým a odešlete pozvánky" -#: src/app/main/ui/onboarding/team_choice.cljs:170 msgid "onboarding.choice.team-up.create-team-and-send-invites-description" msgstr "Budete moci pozvat později" -#: src/app/main/ui/onboarding/team_choice.cljs:215 msgid "onboarding.choice.team-up.create-team-desc" msgstr "Po pojmenování svého týmu budete moci pozvat lidi, aby se přidali." -#: src/app/main/ui/onboarding/team_choice.cljs:224 msgid "onboarding.choice.team-up.create-team-placeholder" msgstr "Zadejte název týmu" -#: src/app/main/ui/onboarding/team_choice.cljs:168 msgid "onboarding.choice.team-up.create-team-without-invite" msgstr "Vytvořte tým" -#, unused msgid "onboarding.choice.team-up.create-team-without-inviting" msgstr "Vytvořte tým bez pozvánek" -#: src/app/main/ui/dashboard/projects.cljs:89, src/app/main/ui/onboarding/team_choice.cljs:140 msgid "onboarding.choice.team-up.invite-members" msgstr "Pozvat členy" -#: src/app/main/ui/onboarding/team_choice.cljs:141 msgid "onboarding.choice.team-up.invite-members-info" msgstr "" "Nezapomeňte zahrnout všechny. Vývojáře, designéry, manažéry... rozmanitost " "se počítá :)" -#: src/app/main/ui/dashboard/team.cljs:202, src/app/main/ui/onboarding/team_choice.cljs:146 msgid "onboarding.choice.team-up.roles" msgstr "Pozvat s rolí:" -#: src/app/main/ui/onboarding/team_choice.cljs:232 msgid "onboarding.choice.team-up.start-without-a-team" msgstr "Začněte bez týmu" -#: src/app/main/ui/onboarding/team_choice.cljs:234 msgid "onboarding.choice.team-up.start-without-a-team-description" msgstr "Později budete moci vytvořit tým." -#, unused msgid "onboarding.newsletter.accept" msgstr "Ano, přihlásit se k odběru" -#: src/app/main/ui/onboarding/newsletter.cljs:40 msgid "onboarding.newsletter.acceptance-message" msgstr "Vaše žádost k odběru byla odeslána, zašleme vám e-mail pro potvrzení." -#: src/app/main/ui/onboarding/newsletter.cljs:95 msgid "onboarding.newsletter.policy" msgstr "Zásady ochrany osobních údajů." -#: src/app/main/ui/onboarding/newsletter.cljs:60 msgid "onboarding.newsletter.title" msgstr "Chcete dostávat novinky Penpot?" -#: src/app/main/ui/onboarding/questions.cljs:118 -msgid "onboarding.questions.lets-get-started" -msgstr "Pusťme se do toho!" - -#: src/app/main/ui/onboarding/questions.cljs:307 -msgid "onboarding.questions.step3.question2" -msgstr "Jaká je vaše role?" - -#: src/app/main/ui/onboarding/questions.cljs:320 -msgid "onboarding.questions.step3.question3" -msgstr "Jaká je velikost vašeho týmu?" - -#: src/app/main/ui/onboarding/questions.cljs:273 -msgid "onboarding.questions.team-size.11-30" -msgstr "11-30" - -#: src/app/main/ui/onboarding/questions.cljs:274 -msgid "onboarding.questions.team-size.2-10" -msgstr "2-10" - -#: src/app/main/ui/onboarding/questions.cljs:272 -msgid "onboarding.questions.team-size.31-50" -msgstr "31-50" - -#: src/app/main/ui/onboarding/questions.cljs:271 -msgid "onboarding.questions.team-size.more-than-50" -msgstr "Více než 50" - -#: src/app/main/ui/onboarding/questions.cljs:276 -msgid "onboarding.questions.team-size.personal-project" -msgstr "Pracuji na osobním projektu" - -#: src/app/main/ui/onboarding/team_choice.cljs:213 msgid "onboarding.team-modal.create-team" msgstr "Vytvořte tým" -#: src/app/main/ui/onboarding/team_choice.cljs:35 msgid "onboarding.team-modal.create-team-desc" msgstr "" "Tým vám umožňuje spolupracovat s ostatními uživateli Penpot pracujícími na " "stejných souborech a projektech." -#: src/app/main/ui/onboarding/team_choice.cljs:40 msgid "onboarding.team-modal.create-team-feature-1" msgstr "Neomezené soubory a projekty" -#: src/app/main/ui/onboarding/team_choice.cljs:44 msgid "onboarding.team-modal.create-team-feature-2" msgstr "Multiplayerová edice" -#: src/app/main/ui/onboarding/team_choice.cljs:48 msgid "onboarding.team-modal.create-team-feature-3" msgstr "Správa rolí" -#: src/app/main/ui/onboarding/team_choice.cljs:52 msgid "onboarding.team-modal.create-team-feature-4" msgstr "Neomezený počet členů" -#: src/app/main/ui/onboarding/team_choice.cljs:56 msgid "onboarding.team-modal.create-team-feature-5" msgstr "100% zdarma!" -#: src/app/main/ui/onboarding/templates.cljs:78 msgid "onboarding.templates.subtitle" msgstr "Zde jsou některé šablony." -#: src/app/main/ui/onboarding/templates.cljs:77 msgid "onboarding.templates.title" msgstr "Začněte navrhovat" -#, unused msgid "onboarding.welcome.alt" msgstr "Penpot" -#: src/app/main/ui/auth/recovery.cljs:99 +#: src/app/main/ui/auth/recovery.cljs msgid "profile.recovery.go-to-login" msgstr "Přejít na přihlášení" -#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:221 +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.team-size.11-30" +msgstr "11-30" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.team-size.2-10" +msgstr "2-10" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.team-size.31-50" +msgstr "31-50" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.adobe-xd" +msgstr "Adobe XD" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.canva" +msgstr "Canva" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.developer" +msgstr "Vývojář" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.figma" +msgstr "Figma" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.founder" +msgstr "Zakladatel / viceprezident" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.freelancer" +msgstr "Jsem freelancer" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.invision" +msgstr "InVision" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.lets-get-started" +msgstr "Pusťme se do toho!" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.product-management" +msgstr "Produktový nebo projektový manažer" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.marketing" +msgstr "Marketing" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.team-size.more-than-50" +msgstr "Více než 50" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.next" +msgstr "Další" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.other" +msgstr "Jiné (upřesněte)" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.team-size.personal-project" +msgstr "Pracuji na osobním projektu" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.previous" +msgstr "Předchozí" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.step3.question2" +msgstr "Jaká je vaše role?" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.select-option" +msgstr "Vyberte možnost" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.sketch" +msgstr "Sketch" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.start" +msgstr "Start" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.student-teacher" +msgstr "Student nebo učitel" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.step3.question3" +msgstr "Jaká je velikost vašeho týmu?" + +#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, msgid "settings.detach" msgstr "Odpojit" -#: src/app/main/ui/viewer/inspect/exports.cljs:147, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:631, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:137, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:148, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:188, src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:158, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:399, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:410, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:430, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:441, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:458, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:472, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:309, src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:183, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:373, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:389, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:245, src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:172 +#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs msgid "settings.multiple" msgstr "Smíšený" # SECTIONS -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:414 msgid "shortcut-section.basics" msgstr "Základy" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:420 msgid "shortcut-section.dashboard" msgstr "Nástěnka" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:423 msgid "shortcut-section.viewer" msgstr "Prohlížeč" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:417 msgid "shortcut-section.workspace" msgstr "Pracovní plocha" # SUBSECTIONS -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:56 msgid "shortcut-subsection.alignment" msgstr "Zarovnání" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:57 msgid "shortcut-subsection.edit" msgstr "Upravit" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:58 msgid "shortcut-subsection.general-dashboard" msgstr "Obecný" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:59 msgid "shortcut-subsection.general-viewer" msgstr "Obecný" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:60 msgid "shortcut-subsection.main-menu" msgstr "Hlavní menu" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:61 msgid "shortcut-subsection.modify-layers" msgstr "Upravit vrstvy" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:62 msgid "shortcut-subsection.navigation-dashboard" msgstr "Navigace" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:63 msgid "shortcut-subsection.navigation-viewer" msgstr "Navigace" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:64 msgid "shortcut-subsection.navigation-workspace" msgstr "Navigace" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:65 msgid "shortcut-subsection.panels" msgstr "Panely" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:66 msgid "shortcut-subsection.path-editor" msgstr "Cesty" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:67 msgid "shortcut-subsection.shape" msgstr "Tvary" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:68 msgid "shortcut-subsection.text-editor" msgstr "Texty" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:69 msgid "shortcut-subsection.tools" msgstr "Nástroje" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:70 msgid "shortcut-subsection.zoom-viewer" msgstr "Přiblížení" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:71 msgid "shortcut-subsection.zoom-workspace" msgstr "Přiblížení" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:72 msgid "shortcuts.add-comment" msgstr "Komentáře" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:73 msgid "shortcuts.add-node" msgstr "Přidat uzel" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:74 msgid "shortcuts.align-bottom" msgstr "Zarovnat dolů" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:75 msgid "shortcuts.align-center" msgstr "Zarovnat na střed" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:76 msgid "shortcuts.align-hcenter" msgstr "Zarovnat vodorovně na střed" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:77 msgid "shortcuts.align-justify" msgstr "Zarovnat do bloku" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:78 msgid "shortcuts.align-left" msgstr "Zarovnat vlevo" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:79 msgid "shortcuts.align-right" msgstr "Zarovnat vpravo" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:80 msgid "shortcuts.align-top" msgstr "Zarovnat nahoru" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:81 msgid "shortcuts.align-vcenter" msgstr "Zarovnat na střed svisle" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:82 msgid "shortcuts.artboard-selection" msgstr "Vytvořit tabuli z výběru" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:83 msgid "shortcuts.bold" msgstr "Přepnout tučné písmo" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:84 msgid "shortcuts.bool-difference" msgstr "Rozdíl" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:85 msgid "shortcuts.bool-exclude" msgstr "Vyloučení" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:86 msgid "shortcuts.bool-intersection" msgstr "Průnik" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:87 msgid "shortcuts.bool-union" msgstr "Sloučení" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:88 msgid "shortcuts.bring-back" msgstr "Přesunout dozadu" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:89 msgid "shortcuts.bring-backward" msgstr "Přesunout dozadu" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:90 msgid "shortcuts.bring-forward" msgstr "Přesunout dopředu" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:91 msgid "shortcuts.bring-front" msgstr "Posunout dopředu" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:92 msgid "shortcuts.clear-undo" msgstr "Vymazat zpět" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:93 msgid "shortcuts.copy" msgstr "Kopírovat" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:94 msgid "shortcuts.create-component" msgstr "Vytvořte komponentu" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:95 msgid "shortcuts.create-new-project" msgstr "Vytvořit nový" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:96 msgid "shortcuts.cut" msgstr "Vyjmout" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:97 msgid "shortcuts.decrease-zoom" msgstr "Oddálit" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:98 msgid "shortcuts.delete" msgstr "Smazat" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:99 msgid "shortcuts.delete-node" msgstr "Smazat uzel" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:100 msgid "shortcuts.detach-component" msgstr "Odpojit komponentu" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:101 msgid "shortcuts.draw-curve" msgstr "Křivka" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:102 msgid "shortcuts.draw-ellipse" msgstr "Elipsa" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:103 msgid "shortcuts.draw-frame" msgstr "Tabule" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:104 msgid "shortcuts.draw-nodes" msgstr "Nakreslit cestu" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:105 msgid "shortcuts.draw-path" msgstr "Cesta" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:106 msgid "shortcuts.draw-rect" msgstr "Obdélník" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:107 msgid "shortcuts.draw-text" msgstr "Text" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:108 msgid "shortcuts.duplicate" msgstr "Duplikovat" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:109 msgid "shortcuts.escape" msgstr "Zrušit" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:110 msgid "shortcuts.export-shapes" msgstr "Exportovat tvary" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:111 msgid "shortcuts.fit-all" msgstr "Přiblížit, aby se vešlo vše" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:112 msgid "shortcuts.flip-horizontal" msgstr "Překlopit vodorovně" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:113 msgid "shortcuts.flip-vertical" msgstr "Překlopit svisle" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:114 msgid "shortcuts.font-size-dec" msgstr "Zmenšit velikost písma" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:115 msgid "shortcuts.font-size-inc" msgstr "Zvětšit velikost písma" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:116 msgid "shortcuts.go-to-drafts" msgstr "Přejít na koncepty" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:117 msgid "shortcuts.go-to-libs" msgstr "Přejít na sdílené knihovny" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:118 msgid "shortcuts.go-to-search" msgstr "Hledat" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:119 msgid "shortcuts.group" msgstr "Skupina" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:120 msgid "shortcuts.h-distribute" msgstr "Rozložit vodorovně" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:121 msgid "shortcuts.hide-ui" msgstr "Zobrazit/skrýt uživatelské rozhraní" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:122 msgid "shortcuts.increase-zoom" msgstr "Přiblížit" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:123 msgid "shortcuts.insert-image" msgstr "Vložit obrázek" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:124 msgid "shortcuts.italic" msgstr "Přepnout kurzívu" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:125 msgid "shortcuts.join-nodes" msgstr "Propojit uzly" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:126 msgid "shortcuts.letter-spacing-dec" msgstr "Zmenšit mezery mezi písmeny" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:127 msgid "shortcuts.letter-spacing-inc" msgstr "Zvětšit mezery mezi písmeny" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:128 msgid "shortcuts.line-height-dec" msgstr "Snížit výšku řádku" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:129 msgid "shortcuts.line-height-inc" msgstr "Zvýšit výšku řádku" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:130 msgid "shortcuts.line-through" msgstr "Přepnout řádek" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:131 msgid "shortcuts.make-corner" msgstr "Udělat roh" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:132 msgid "shortcuts.make-curve" msgstr "Udělat křivku" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:133 msgid "shortcuts.mask" msgstr "Maska" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:134 msgid "shortcuts.merge-nodes" msgstr "Sloučit uzly" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:135 msgid "shortcuts.move" msgstr "Posunout" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:136 msgid "shortcuts.move-fast-down" msgstr "Posunout dolů rychle" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:137 msgid "shortcuts.move-fast-left" msgstr "Posunout doleva rychle" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:138 msgid "shortcuts.move-fast-right" msgstr "Posunout doprava rychle" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:139 msgid "shortcuts.move-fast-up" msgstr "Posunout nahoru rychle" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:140 msgid "shortcuts.move-nodes" msgstr "Posunout uzel" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:141 msgid "shortcuts.move-unit-down" msgstr "Posunout dolů" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:142 msgid "shortcuts.move-unit-left" msgstr "Posunout vlevo" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:143 msgid "shortcuts.move-unit-right" msgstr "Posunout vpravo" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:144 msgid "shortcuts.move-unit-up" msgstr "Posunout nahoru" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:145 msgid "shortcuts.next-frame" msgstr "Další tabule" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:516 msgid "shortcuts.not-found" msgstr "Nebyly nalezeny žádné zkratky" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:146 msgid "shortcuts.opacity-0" msgstr "Nastavit průhlednost na 100 %" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:147 msgid "shortcuts.opacity-1" msgstr "Nastavit průhlednost na 10 %" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:148 msgid "shortcuts.opacity-2" msgstr "Nastavit průhlednost na 20 %" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:149 msgid "shortcuts.opacity-3" msgstr "Nastavit průhlednost na 30 %" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:150 msgid "shortcuts.opacity-4" msgstr "Nastavit průhlednost na 40 %" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:151 msgid "shortcuts.opacity-5" msgstr "Nastavit průhlednost na 50 %" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:152 msgid "shortcuts.opacity-6" msgstr "Nastavit průhlednost na 60 %" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:153 msgid "shortcuts.opacity-7" msgstr "Nastavit průhlednost na 70 %" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:154 msgid "shortcuts.opacity-8" msgstr "Nastavit průhlednost na 80 %" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:155 msgid "shortcuts.opacity-9" msgstr "Nastavit průhlednost na 90 %" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:156 msgid "shortcuts.open-color-picker" msgstr "Výběr barvy" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:157 msgid "shortcuts.open-comments" msgstr "Přejít do sekce komentářů" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:158 msgid "shortcuts.open-dashboard" msgstr "Přejít na nástěnku" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:159 msgid "shortcuts.open-inspect" msgstr "Přejděte do sekce inspektor" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:160 msgid "shortcuts.open-interactions" msgstr "Přejít do části interakce" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:161 msgid "shortcuts.open-viewer" msgstr "Přejít do části interakce" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:162 msgid "shortcuts.open-workspace" msgstr "Přejít na pracovní plochu" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:260 msgid "shortcuts.or" msgstr " nebo " -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:163 msgid "shortcuts.paste" msgstr "Vložit" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:164 msgid "shortcuts.prev-frame" msgstr "Předchozí tabule" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:165 msgid "shortcuts.redo" msgstr "Znovu" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:166 msgid "shortcuts.reset-zoom" msgstr "Obnovit přiblížení" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:168 msgid "shortcuts.search-placeholder" msgstr "Prohledat zkratky" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:169 msgid "shortcuts.select-all" msgstr "Vybrat vše" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:170 msgid "shortcuts.select-next" msgstr "Vybrat další vrstvu" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:171 msgid "shortcuts.select-parent-layer" msgstr "Vybrat nadřazenou vrstvu" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:172 msgid "shortcuts.select-prev" msgstr "Vybrat předchozí vrstvu" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:173 msgid "shortcuts.separate-nodes" msgstr "Rozdělit uzly" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:174 msgid "shortcuts.show-pixel-grid" msgstr "Zobrazit/skrýt mřížku pixelů" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:175 msgid "shortcuts.show-shortcuts" msgstr "Zobrazit/skrýt zkratky" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:176 msgid "shortcuts.snap-nodes" msgstr "Přichytit k uzlům" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:177 msgid "shortcuts.snap-pixel-grid" msgstr "Přichytit k mřížce pixelů" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:178 msgid "shortcuts.start-editing" msgstr "Začít upravovat" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:179 msgid "shortcuts.start-measure" msgstr "Začít měření" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:180 msgid "shortcuts.stop-measure" msgstr "Zastavit měření" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:181 msgid "shortcuts.text-align-center" msgstr "Zarovnat na střed" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:182 msgid "shortcuts.text-align-justify" msgstr "Zarovnat do bloku" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:183 msgid "shortcuts.text-align-left" msgstr "Zarovnat vlevo" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:184 msgid "shortcuts.text-align-right" msgstr "Zarovnat vpravo" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:185 msgid "shortcuts.thumbnail-set" msgstr "Nastavit náhledy" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:496, src/app/main/ui/workspace/sidebar/shortcuts.cljs:505 +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs msgid "shortcuts.title" msgstr "Klávesové zkratky" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:186 msgid "shortcuts.toggle-alignment" msgstr "Přepnout dynamické zarovnání" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:187 msgid "shortcuts.toggle-assets" msgstr "Přepnout podklady" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:188 msgid "shortcuts.toggle-colorpalette" msgstr "Přepnout paletu barev" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:189 msgid "shortcuts.toggle-focus-mode" msgstr "Přepnout režim soustředění" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:190 msgid "shortcuts.toggle-fullscreen" msgstr "Přepnout zobrazení na celou obrazovku" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:192 msgid "shortcuts.toggle-history" msgstr "Přepnout historii" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:193 msgid "shortcuts.toggle-layers" msgstr "Přepínání vrstev" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:194 msgid "shortcuts.toggle-layout-flex" msgstr "Přidat/odebrat flexibilní rozložení" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:196 msgid "shortcuts.toggle-lock" msgstr "Uzamknout vybrané" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:197 msgid "shortcuts.toggle-lock-size" msgstr "Uzamknout proporce" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:202 msgid "shortcuts.toggle-textpalette" msgstr "Přepnout paletu textu" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:204 msgid "shortcuts.toggle-visibility" msgstr "Přepnout viditelnost" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:205 msgid "shortcuts.toggle-zoom-style" msgstr "Přepnout styl přiblížení" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:206 msgid "shortcuts.underline" msgstr "Přepnout podtržení" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:207 msgid "shortcuts.undo" msgstr "Zpět" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:208 msgid "shortcuts.ungroup" msgstr "Zrušit seskupení" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:209 msgid "shortcuts.unmask" msgstr "Zrušit masku" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:210 msgid "shortcuts.v-distribute" msgstr "Rozmístit vertikálně" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:211 msgid "shortcuts.zoom-lense-decrease" msgstr "Zmenšení zoomu" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:212 msgid "shortcuts.zoom-lense-increase" msgstr "Zvětšení zoomu" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:213 msgid "shortcuts.zoom-selected" msgstr "Přiblížit na vybrané" -#: src/app/main/ui/dashboard/team.cljs:771 +#: src/app/main/ui/dashboard/team.cljs msgid "team.webhooks.max-length" msgstr "Název webhooku musí obsahovat maximálně 2048 znaků." -#: src/app/main/ui/dashboard/files.cljs:158 +#: src/app/main/ui/dashboard/files.cljs msgid "title.dashboard.files" msgstr "%s - Penpot" -#: src/app/main/ui/dashboard/fonts.cljs:37 +#: src/app/main/ui/dashboard/fonts.cljs msgid "title.dashboard.font-providers" msgstr "Poskytovatelé písem - %s - Penpot" -#: src/app/main/ui/dashboard/fonts.cljs:36 +#: src/app/main/ui/dashboard/fonts.cljs msgid "title.dashboard.fonts" msgstr "Písma - %s - Penpot" -#: src/app/main/ui/dashboard/projects.cljs:320 +#: src/app/main/ui/dashboard/projects.cljs msgid "title.dashboard.projects" msgstr "Projekty - %s - Penpot" -#: src/app/main/ui/dashboard/search.cljs:32 +#: src/app/main/ui/dashboard/search.cljs msgid "title.dashboard.search" msgstr "Hledat - %s - Penpot" -#: src/app/main/ui/dashboard/libraries.cljs:44 +#: src/app/main/ui/dashboard/libraries.cljs msgid "title.dashboard.shared-libraries" msgstr "Sdílené knihovny - %s - Penpot" -#: src/app/main/ui/auth/verify_token.cljs:68, src/app/main/ui/auth.cljs:54 +#: src/app/main/ui/auth/verify_token.cljs, src/app/main/ui/auth.cljs msgid "title.default" msgstr "Penpot – Svoboda designu pro týmy" -#: src/app/main/ui/settings/access_tokens.cljs:292 +#: src/app/main/ui/settings/access-tokens.cljs msgid "title.settings.access-tokens" msgstr "Profil – Přístupové tokeny" -#: src/app/main/ui/settings/feedback.cljs:110 +#: src/app/main/ui/settings/feedback.cljs msgid "title.settings.feedback" msgstr "Poskytněte zpětnou vazbu – Penpot" -#: src/app/main/ui/settings/options.cljs:80 +#: src/app/main/ui/settings/options.cljs msgid "title.settings.options" msgstr "Nastavení - Penpot" -#: src/app/main/ui/settings/password.cljs:115 +#: src/app/main/ui/settings/password.cljs msgid "title.settings.password" msgstr "Heslo - Penpot" -#: src/app/main/ui/settings/profile.cljs:115 +#: src/app/main/ui/settings/profile.cljs msgid "title.settings.profile" msgstr "Profil - Penpot" -#: src/app/main/ui/dashboard/team.cljs:727 +#: src/app/main/ui/dashboard/team.cljs msgid "title.team-invitations" msgstr "Pozvánky – %s – Penpot" -#: src/app/main/ui/dashboard/team.cljs:493 +#: src/app/main/ui/dashboard/team.cljs msgid "title.team-members" msgstr "Členové - %s - Penpot" -#: src/app/main/ui/dashboard/team.cljs:1036 +#: src/app/main/ui/dashboard/team.cljs msgid "title.team-settings" msgstr "Nastavení - %s - Penpot" -#: src/app/main/ui/dashboard/team.cljs:989 msgid "title.team-webhooks" msgstr "Webhooks - %s - Penpot" -#: src/app/main/ui/viewer.cljs:419 +#: src/app/main/ui/handoff.cljs, src/app/main/ui/viewer.cljs msgid "title.viewer" msgstr "%s - Režim zobrazení - Penpot" -#: src/app/main/ui/workspace.cljs:190 +#: src/app/main/ui/workspace.cljs msgid "title.workspace" msgstr "%s - Penpot" -#: src/app/main/ui.cljs:144 msgid "viewer.breaking-change.description" msgstr "Tento odkaz již není platný. Vytvořte nový nebo požádejte vlastníka o nový." -#: src/app/main/ui.cljs:143 msgid "viewer.breaking-change.message" msgstr "Pardon!" -#: src/app/main/ui/viewer.cljs:569 +#: src/app/main/ui/handoff.cljs, src/app/main/ui/viewer.cljs msgid "viewer.empty-state" msgstr "Na stránce nebyly nalezeny žádné tabule." -#: src/app/main/ui/viewer.cljs:574 +#: src/app/main/ui/handoff.cljs, src/app/main/ui/viewer.cljs msgid "viewer.frame-not-found" msgstr "Tabule nenalezena." -#: src/app/main/ui/viewer/header.cljs:336 msgid "viewer.header.comments-section" msgstr "Komentáře (%s)" -#: src/app/main/ui/viewer/interactions.cljs:292 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.dont-show-interactions" msgstr "Nezobrazovat interakce" -#: src/app/main/ui/viewer/header.cljs:188 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.fullscreen" msgstr "Celá obrazovka" -#: src/app/main/ui/viewer/header.cljs:345 msgid "viewer.header.inspect-section" msgstr "Zkontrolovat (%s)" -#: src/app/main/ui/viewer/interactions.cljs:282 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.interactions" msgstr "Interakce" -#: src/app/main/ui/viewer/header.cljs:327 msgid "viewer.header.interactions-section" msgstr "Interakce (%s)" -#: src/app/main/ui/viewer/share_link.cljs:187 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.share.copy-link" msgstr "Kopírovat odkaz" -#: src/app/main/ui/viewer/interactions.cljs:300 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.show-interactions" msgstr "Zobrazit interakce" -#: src/app/main/ui/viewer/interactions.cljs:311 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.show-interactions-on-click" msgstr "Zobrazit interakce po kliknutí" -#: src/app/main/ui/viewer/header.cljs:231 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.sitemap" msgstr "Mapa stránek" -#: src/app/main/ui/dashboard/team.cljs:948 +#, fuzzy msgid "webhooks.last-delivery.success" msgstr "Poslední doručení proběhlo úspěšně." -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:58 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.hcenter" msgstr "Zarovnat vodorovně na střed (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:74 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.hdistribute" msgstr "Rozmístit vodorovné mezery (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:50 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.hleft" msgstr "Zarovnat doleva (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:66 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.hright" msgstr "Zarovnat doprava (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:99 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.vbottom" msgstr "Zarovnat dolů (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:91 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.vcenter" msgstr "Zarovnat svisle na střed (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:104 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.vdistribute" msgstr "Rozmístit vertikální mezery (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:83 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.vtop" msgstr "Zarovnat nahoru (%s)" #: src/app/main/ui/workspace/sidebar/assets.cljs -#, unused msgid "workspace.assets.assets" msgstr "Podklady" -#: src/app/main/ui/workspace/sidebar/assets.cljs:134 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.box-filter-all" msgstr "Všechny podklady" -#: src/app/main/ui/dashboard/grid.cljs:130, src/app/main/ui/dashboard/grid.cljs:162, src/app/main/ui/workspace/sidebar/assets/colors.cljs:485, src/app/main/ui/workspace/sidebar/assets.cljs:150 +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.colors" msgstr "Barvy" -#: src/app/main/ui/dashboard/grid.cljs:126, src/app/main/ui/dashboard/grid.cljs:141, src/app/main/ui/workspace/sidebar/assets/components.cljs:513, src/app/main/ui/workspace/sidebar/assets.cljs:139 +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.components" msgstr "Komponenty" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:131 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.create-group" msgstr "Vytvořit skupinu" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:142 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.create-group-hint" msgstr "" "Vaše položky budou automaticky pojmenovány jako „název skupiny / název " "položky“" -#: src/app/main/ui/workspace/context_menu.cljs:529, src/app/main/ui/workspace/sidebar/assets/colors.cljs:251, src/app/main/ui/workspace/sidebar/assets/components.cljs:577, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:424, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:443 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.delete" msgstr "Delete" -#: src/app/main/ui/workspace/context_menu.cljs:534, src/app/main/ui/workspace/sidebar/assets/components.cljs:572 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.duplicate" msgstr "Duplikovat" -#: src/app/main/ui/workspace/sidebar/assets/components.cljs:571 msgid "workspace.assets.duplicate-main" msgstr "Duplikovat hlavní" -#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:247, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:439 +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.edit" msgstr "Upravit" -#: src/app/main/ui/workspace/sidebar/assets/graphics.cljs:384, src/app/main/ui/workspace/sidebar/assets.cljs:145 +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.graphics" msgstr "Grafika" -#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:255, src/app/main/ui/workspace/sidebar/assets/components.cljs:581, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:428, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:448 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.group" msgstr "Skupina" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:141 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.group-name" msgstr "Název skupiny" -#: src/app/main/ui/workspace/sidebar/assets.cljs:168 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.libraries" msgstr "Knihovny" -#: src/app/main/ui/workspace/sidebar/assets/file_library.cljs:62, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:347 msgid "workspace.assets.local-library" msgstr "místní knihovna" -#: src/app/main/ui/workspace/sidebar/assets/file_library.cljs:295 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.not-found" msgstr "Nebyly nalezeny žádné podklady" -#, unused msgid "workspace.assets.open-library" msgstr "Otevřete soubor knihovny" -#: src/app/main/ui/workspace/context_menu.cljs:532, src/app/main/ui/workspace/sidebar/assets/colors.cljs:243, src/app/main/ui/workspace/sidebar/assets/components.cljs:566, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:421, src/app/main/ui/workspace/sidebar/assets/groups.cljs:63, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:434 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.rename" msgstr "Přejmenovat" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:132 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.rename-group" msgstr "Přejmenovat skupinu" -#: src/app/main/ui/workspace/sidebar/assets.cljs:173 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.search" msgstr "Hledat v podkladech" #: src/app/main/ui/workspace/sidebar/assets.cljs -#, unused msgid "workspace.assets.selected-count" msgid_plural "workspace.assets.selected-count" msgstr[0] "%s položka vybrána" @@ -3581,1939 +3232,1807 @@ msgstr[1] "Počet vybraných položek: %s" msgstr[2] "Počet vybraných položek: %s" #: src/app/main/ui/workspace/sidebar/assets.cljs -#, unused msgid "workspace.assets.shared-library" msgstr "Sdílená knihovna" -#: src/app/main/ui/dashboard/grid.cljs:134, src/app/main/ui/dashboard/grid.cljs:189, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:397, src/app/main/ui/workspace/sidebar/assets.cljs:155 +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.typography" msgstr "Typografie" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused msgid "workspace.assets.typography.font-id" msgstr "Písmo" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:505 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.font-size" msgstr "Velikost" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:501 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.font-variant-id" msgstr "Varianta" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:523 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.go-to-edit" msgstr "Chcete-li upravit, přejděte do souboru knihovny stylů" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:513 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.letter-spacing" msgstr "Mezery mezi písmeny" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:509 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.line-height" msgstr "Výška řádku" -#: src/app/main/ui/dashboard/grid.cljs:199, src/app/main/ui/workspace/libraries.cljs:461, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:464, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:489, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:596, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:615 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, +#: src/app/main/ui/handoff/attributes/text.cljs, +#: src/app/main/ui/handoff/attributes/text.cljs msgid "workspace.assets.typography.sample" msgstr "Ag" -#, unused msgid "workspace.assets.typography.text-styles" msgstr "Styly textu" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:517 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.text-transform" msgstr "Transformace textu" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:66 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.ungroup" msgstr "Zrušit seskupení" -#: src/app/main/ui/workspace/sidebar/layers.cljs:525 msgid "workspace.focus.focus-mode" msgstr "Režim soustředění" -#: src/app/main/ui/workspace/context_menu.cljs:287, src/app/main/ui/workspace/context_menu.cljs:553 msgid "workspace.focus.focus-off" msgstr "Vypnout režim soustředění" -#: src/app/main/ui/workspace/context_menu.cljs:286 msgid "workspace.focus.focus-on" msgstr "Zapnout režim soustředění" -#, unused msgid "workspace.focus.selection" msgstr "Výběr" -#: src/app/util/color.cljs:34 +#: src/app/main/data/workspace/libraries.cljs, +#: src/app/main/ui/components/color_bullet.cljs msgid "workspace.gradients.linear" msgstr "Lineární přechod" -#: src/app/util/color.cljs:35 +#: src/app/main/data/workspace/libraries.cljs, +#: src/app/main/ui/components/color_bullet.cljs msgid "workspace.gradients.radial" msgstr "Radiální přechod" -#: src/app/main/ui/workspace/main_menu.cljs:238 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.disable-dynamic-alignment" msgstr "Zakázat dynamické zarovnání" -#: src/app/main/ui/workspace/main_menu.cljs:192 msgid "workspace.header.menu.disable-scale-content" msgstr "Zakázat proporcionální měřítko" #: src/app/main/ui/workspace/header.cljs -#, unused msgid "workspace.header.menu.disable-scale-text" msgstr "Zakázat měřítko textu" -#: src/app/main/ui/workspace/main_menu.cljs:223 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.disable-snap-guides" msgstr "Zakázat přichycení k vodicím lištám" -#: src/app/main/ui/workspace/main_menu.cljs:253 msgid "workspace.header.menu.disable-snap-pixel-grid" msgstr "Zakázat přichycení k pixelu" -#: src/app/main/ui/workspace/main_menu.cljs:239 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.enable-dynamic-alignment" msgstr "Povolit dynamické zarovnání" -#: src/app/main/ui/workspace/main_menu.cljs:193 msgid "workspace.header.menu.enable-scale-content" msgstr "Povolit proporcionální měřítko" #: src/app/main/ui/workspace/header.cljs -#, unused msgid "workspace.header.menu.enable-scale-text" msgstr "Povolit měřítko textu" -#: src/app/main/ui/workspace/main_menu.cljs:224 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.enable-snap-guides" msgstr "Přichytit k vodicím lištám" -#: src/app/main/ui/workspace/main_menu.cljs:254 msgid "workspace.header.menu.enable-snap-pixel-grid" msgstr "Povolit přichycení k pixelu" -#: src/app/main/ui/workspace/main_menu.cljs:382 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.hide-artboard-names" msgstr "Skrýt názvy tabulí" -#: src/app/main/ui/workspace/main_menu.cljs:353 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.hide-palette" msgstr "Skrýt paletu barev" -#: src/app/main/ui/workspace/main_menu.cljs:394 msgid "workspace.header.menu.hide-pixel-grid" msgstr "Skrýt mřížku pixelů" -#: src/app/main/ui/workspace/main_menu.cljs:320 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.hide-rules" msgstr "Skrýt pravítka" -#: src/app/main/ui/workspace/main_menu.cljs:367 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.hide-textpalette" msgstr "Skrýt paletu písem" -#: src/app/main/ui/workspace/main_menu.cljs:731 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.edit" msgstr "Upravit" -#: src/app/main/ui/workspace/main_menu.cljs:720 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.file" msgstr "Soubor" -#: src/app/main/ui/workspace/main_menu.cljs:777 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.help-info" msgstr "Nápověda a informace" -#: src/app/main/ui/workspace/main_menu.cljs:753 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.preferences" msgstr "Předvolby" -#: src/app/main/ui/workspace/main_menu.cljs:742 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.view" msgstr "Pohled" -#: src/app/main/ui/workspace/main_menu.cljs:459 msgid "workspace.header.menu.redo" msgstr "Znovu" -#: src/app/main/ui/workspace/main_menu.cljs:432 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.select-all" msgstr "Vybrat vše" -#: src/app/main/ui/workspace/main_menu.cljs:383 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.show-artboard-names" msgstr "Zobrazit názvy tabulí" -#: src/app/main/ui/workspace/main_menu.cljs:354 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.show-palette" msgstr "Zobrazit paletu barev" -#: src/app/main/ui/workspace/main_menu.cljs:395 msgid "workspace.header.menu.show-pixel-grid" msgstr "Zobrazit mřížku pixelů" -#: src/app/main/ui/workspace/main_menu.cljs:321 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.show-rules" msgstr "Zobrazit pravítka" -#: src/app/main/ui/workspace/main_menu.cljs:368 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.show-textpalette" msgstr "Zobrazit paletu písem" -#: src/app/main/ui/workspace/main_menu.cljs:446 msgid "workspace.header.menu.undo" msgstr "Zpět" -#: src/app/main/ui/viewer/header.cljs:98, src/app/main/ui/workspace/right_header.cljs:120 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.reset-zoom" msgstr "Resetovat" #: src/app/main/ui/workspace/header.cljs -#, unused msgid "workspace.header.save-error" msgstr "Chyba při ukládání" -#: src/app/main/ui/workspace/right_header.cljs:52 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.saved" msgstr "Uloženo" #: src/app/main/ui/workspace/header.cljs -#, unused msgid "workspace.header.saving" msgstr "Ukládání" -#: src/app/main/ui/workspace/right_header.cljs:42, src/app/main/ui/workspace/right_header.cljs:47 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.unsaved" msgstr "Neuložené změny" -#: src/app/main/ui/workspace/right_header.cljs:239 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.viewer" msgstr "Režim zobrazení (%s)" -#: src/app/main/ui/viewer/header.cljs:79, src/app/main/ui/workspace/right_header.cljs:103 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom" msgstr "Přiblížení" -#: src/app/main/ui/viewer/header.cljs:109 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom-fill" msgstr "Výplň – přizpůsobit, aby vyplnil" -#: src/app/main/ui/viewer/header.cljs:102 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom-fit" msgstr "Přizpůsobit - Zmenšit, aby se vešel" -#: src/app/main/ui/workspace/right_header.cljs:123 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom-fit-all" msgstr "Přiblížit, aby se vešlo vše" -#: src/app/main/ui/viewer/header.cljs:116 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom-full-screen" msgstr "Celá obrazovka" -#: src/app/main/ui/workspace/right_header.cljs:130 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom-selected" msgstr "Přiblížit na vybrané" -#: src/app/main/ui/workspace/sidebar/options/menus/grid_cell.cljs:273, src/app/main/ui/workspace/sidebar/options/menus/grid_cell.cljs:275, src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:612 msgid "workspace.layout_grid.editor.options.edit-grid" msgstr "Upravit mřížku" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:1280 msgid "workspace.layout_grid.editor.options.exit" msgstr "Odejít" -#: src/app/main/ui/workspace/viewport/grid_layout_editor.cljs:59 msgid "workspace.layout_grid.editor.title" msgstr "Úprava mřížky" -#: src/app/main/ui/workspace/viewport/grid_layout_editor.cljs:65 msgid "workspace.layout_grid.editor.top-bar.done" msgstr "Hotovo" -#: src/app/main/ui/workspace/viewport/grid_layout_editor.cljs:62 msgid "workspace.layout_grid.editor.top-bar.locate" msgstr "Lokalizovat" #: src/app/main/ui/workspace/libraries.cljs -#, unused msgid "workspace.libraries.add" msgstr "Přidat" -#: src/app/main/ui/workspace/libraries.cljs:80, src/app/main/ui/workspace/libraries.cljs:99 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.colors" msgstr "barvy %s" -#: src/app/main/ui/workspace/color_palette.cljs:126 +#: src/app/main/ui/workspace/colorpalette.cljs msgid "workspace.libraries.colors.empty-palette" msgstr "Ve vaší knihovně zatím nejsou žádné barevné styly" -#: src/app/main/ui/workspace/text_palette.cljs:150 +#: src/app/main/ui/workspace/textpalette.cljs msgid "workspace.libraries.colors.empty-typography-palette" msgstr "Ve vaší knihovně zatím nejsou žádné typografické styly" -#: src/app/main/ui/workspace/color_palette_ctx_menu.cljs:60, src/app/main/ui/workspace/colorpicker/libraries.cljs:73, src/app/main/ui/workspace/text_palette_ctx_menu.cljs:50 +#: src/app/main/ui/workspace/colorpicker/libraries.cljs, +#: src/app/main/ui/workspace/colorpalette.cljs msgid "workspace.libraries.colors.file-library" msgstr "Knihovna souborů" #: src/app/main/ui/workspace/colorpicker.cljs -#, unused msgid "workspace.libraries.colors.hsv" msgstr "HSV" -#: src/app/main/ui/workspace/color_palette_ctx_menu.cljs:82, src/app/main/ui/workspace/colorpicker/libraries.cljs:72 +#: src/app/main/ui/workspace/colorpicker/libraries.cljs, +#: src/app/main/ui/workspace/colorpalette.cljs msgid "workspace.libraries.colors.recent-colors" msgstr "Nedávné barvy" #: src/app/main/ui/workspace/colorpicker.cljs -#, unused msgid "workspace.libraries.colors.rgb-complementary" msgstr "Doplňkové RGB" #: src/app/main/ui/workspace/colorpicker.cljs -#, unused msgid "workspace.libraries.colors.rgba" msgstr "RGBA" -#: src/app/main/ui/workspace/colorpicker.cljs:372 +#: src/app/main/ui/workspace/colorpicker.cljs msgid "workspace.libraries.colors.save-color" msgstr "Uložit styl barev" -#: src/app/main/ui/workspace/libraries.cljs:74, src/app/main/ui/workspace/libraries.cljs:91 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.components" msgstr "%s komponenty" -#: src/app/main/ui/workspace/libraries.cljs:215 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.file-library" msgstr "Knihovna souborů" -#: src/app/main/ui/workspace/libraries.cljs:77, src/app/main/ui/workspace/libraries.cljs:95 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.graphics" msgstr "%s grafika" -#: src/app/main/ui/workspace/libraries.cljs:209 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.in-this-file" msgstr "KNIHOVNY V TOMTO SOUBORU" -#: src/app/main/ui/workspace/libraries.cljs:526, src/app/main/ui/workspace/libraries.cljs:531 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.libraries" msgstr "KNIHOVNY" #: src/app/main/ui/workspace/libraries.cljs -#, unused msgid "workspace.libraries.library" msgstr "KNIHOVNA" -#: src/app/main/ui/workspace/libraries.cljs:382 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.library-updates" msgstr "AKTUALIZACE KNIHOVNY" -#: src/app/main/ui/workspace/libraries.cljs:380 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.no-libraries-need-sync" msgstr "Neexistují žádné sdílené knihovny, které by potřebovaly aktualizaci" -#: src/app/main/ui/workspace/libraries.cljs:299 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.no-matches-for" msgstr "Nebyly nalezeny žádné shody pro „%s“" -#: src/app/main/ui/workspace/libraries.cljs:296 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.no-shared-libraries-available" msgstr "Nejsou k dispozici žádné sdílené knihovny" -#: src/app/main/ui/workspace/libraries.cljs:260 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.search-shared-libraries" msgstr "Prohledat sdílené knihovny" -#: src/app/main/ui/workspace/libraries.cljs:256 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.shared-libraries" msgstr "SDÍLENÉ KNIHOVNY" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:308 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.libraries.text.multiple-typography" msgstr "Několik typografií" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:311 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.libraries.text.multiple-typography-tooltip" msgstr "Odpojte všechny typografie" -#: src/app/main/ui/workspace/libraries.cljs:83, src/app/main/ui/workspace/libraries.cljs:103 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.typography" msgstr "%s typografie" -#: src/app/main/ui/workspace/libraries.cljs:402 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.update" msgstr "Aktualizace" -#: src/app/main/ui/workspace/libraries.cljs:477 +#: src/app/main/data/workspace/libraries.cljs msgid "workspace.libraries.update.see-all-changes" msgstr "zobrazit všechny změny" -#: src/app/main/ui/workspace/libraries.cljs:536 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.updates" msgstr "AKTUALIZACE" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:737 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.add-interaction" msgstr "Kliknutím na tlačítko + přidáte interakce." -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:86, src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:102 +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs msgid "workspace.options.blur-options.title" msgstr "Rozostření" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:85 +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs msgid "workspace.options.blur-options.title.group" msgstr "Rozostření skupiny" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:84 +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs msgid "workspace.options.blur-options.title.multiple" msgstr "Rozostření výběru" -#: src/app/main/ui/workspace/sidebar/options/page.cljs:32, src/app/main/ui/workspace/sidebar/options/page.cljs:39 +#: src/app/main/ui/workspace/sidebar/options/page.cljs msgid "workspace.options.canvas-background" msgstr "Pozadí plátna" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:548 msgid "workspace.options.clip-content" msgstr "Oříznout obsah" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:600, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:605 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs msgid "workspace.options.component" msgstr "Komponent" -#: src/app/main/ui/viewer/inspect/annotation.cljs:19, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:181 msgid "workspace.options.component.annotation" msgstr "Anotace" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:610 msgid "workspace.options.component.copy" msgstr "Kopírovat" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:173 msgid "workspace.options.component.create-annotation" msgstr "Vytvořte anotaci" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:172 msgid "workspace.options.component.edit-annotation" msgstr "Upravit anotaci" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:609 msgid "workspace.options.component.main" msgstr "Hlavní" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:427 msgid "workspace.options.component.swap" msgstr "Vyměnit komponent" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:471 msgid "workspace.options.component.swap.empty" msgstr "V této knihovně zatím nejsou žádné položky" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:163 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints" msgstr "Omezení" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:150 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.bottom" msgstr "Dole" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:141, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:152 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.center" msgstr "Střed" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:229 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.fix-when-scrolling" msgstr "Při rolování nechat na místě" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:138 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.left" msgstr "Vlevo" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:140 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.leftright" msgstr "Vlevo a Vpravo" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:139 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.right" msgstr "Vpravo" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:142, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:153 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.scale" msgstr "Měřítko" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:149 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.top" msgstr "Nahoře" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:151 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.topbottom" msgstr "Nahoře a dole" -#: src/app/main/ui/workspace/sidebar/options.cljs:112 +#: src/app/main/ui/workspace/sidebar/options.cljs msgid "workspace.options.design" msgstr "Design" -#: src/app/main/ui/viewer/inspect/exports.cljs:139 +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, +#: src/app/main/ui/handoff/exports.cljs msgid "workspace.options.export" msgstr "Exportovat" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, +#: src/app/main/ui/handoff/exports.cljs msgid "workspace.options.export-multiple" msgstr "Exportovat výběr" -#: src/app/main/ui/viewer/inspect/exports.cljs:195, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:237 +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, +#: src/app/main/ui/handoff/exports.cljs msgid "workspace.options.export-object" msgid_plural "workspace.options.export-object" msgstr[0] "Exportovat 1 prvek" msgstr[1] "Exportovat %s prvky" msgstr[2] "Exportovat %s prvků" -#: src/app/main/ui/viewer/inspect/exports.cljs:178, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:219 +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs msgid "workspace.options.export.suffix" msgstr "Přípona" -#: src/app/main/ui/export.cljs:240 +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, +#: src/app/main/ui/handoff/exports.cljs, src/app/main/ui/workspace/header.cljs msgid "workspace.options.exporting-complete" msgstr "Export byl dokončen" -#: src/app/main/ui/export.cljs:172, src/app/main/ui/export.cljs:241, src/app/main/ui/viewer/inspect/exports.cljs:194, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:236 +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, +#: src/app/main/ui/handoff/exports.cljs, src/app/main/ui/workspace/header.cljs msgid "workspace.options.exporting-object" msgstr "Exportování…" -#: src/app/main/ui/export.cljs:239 +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, +#: src/app/main/ui/handoff/exports.cljs, src/app/main/ui/workspace/header.cljs msgid "workspace.options.exporting-object-error" msgstr "Export se nezdařil" -#: src/app/main/ui/export.cljs:242 +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, +#: src/app/main/ui/handoff/exports.cljs, src/app/main/ui/workspace/header.cljs msgid "workspace.options.exporting-object-slow" msgstr "Export je nečekaně pomalý" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:49, src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:174 +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs msgid "workspace.options.fill" msgstr "Výplň" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:178 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.flows.add-flow-start" msgstr "Přidat počáteční bod" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:174 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.flows.flow" msgstr "Flow" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -#, unused msgid "workspace.options.flows.flow-start" msgstr "Začátek" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:161 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.flows.flow-starts" msgstr "Začátky" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:29 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.auto" msgstr "Automaticky" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:157 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.column" msgstr "Sloupce" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.grid-title" msgstr "Mřížka" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:196, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:237 msgid "workspace.options.grid.params.color" msgstr "Barva" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.params.columns" msgstr "Sloupce" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:259 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.gutter" msgstr "Mezera" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:246 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.height" msgstr "Výška" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:270 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.margin" msgstr "Mezera vně" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.params.rows" msgstr "Řádky" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:216, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:290 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.set-default" msgstr "Nastavit jako výchozí" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.params.size" msgstr "Velikost" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.params.type" msgstr "Typ" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:231 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.bottom" msgstr "Dole" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:229 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.center" msgstr "Střed" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:228 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.left" msgstr "Vlevo" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:232 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.right" msgstr "Vpravo" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:225 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.stretch" msgstr "Roztáhnout" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:227 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.top" msgstr "Nahoře" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:211, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:288 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.use-default" msgstr "Použít výchozí" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:247 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.width" msgstr "Šířka" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:158 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.row" msgstr "Řádky" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:156 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.square" msgstr "Čtverec" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:48 +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs msgid "workspace.options.group-fill" msgstr "Výplň skupiny" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:42 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.group-stroke" msgstr "Ohraničení skupiny" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:310 msgid "workspace.options.guides.title" msgstr "Vodítka" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:406 msgid "workspace.options.height" msgstr "Výška" -#: src/app/main/ui/workspace/sidebar/options.cljs:161 msgid "workspace.options.inspect" msgstr "Inspektor" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:468 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-action" msgstr "Akce" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:41, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:367 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-after-delay" msgstr "Po prodlevě" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:614 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-animation" msgstr "Animace" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:406 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-animation-dissolve" msgstr "Dissolve" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:405 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-animation-none" msgstr "Žádná" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:412 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-animation-push" msgstr "Push" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:407 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-animation-slide" msgstr "Slide" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:391 msgid "workspace.options.interaction-auto" msgstr "automaticky" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:604 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-background" msgstr "Přidejte překrytí pozadí" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:590 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-close-outside" msgstr "Zavřít při kliknutí mimo" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:372 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-close-overlay" msgstr "Zavřít překrytí" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:56 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-close-overlay-dest" msgstr "Zavřít překrytí: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:456 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-delay" msgstr "Prodleva" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:478 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-destination" msgstr "Cíl" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:661 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-duration" msgstr "Doba trvání" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:674 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing" msgstr "Easing" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:416 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing-ease" msgstr "Ease" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:417 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing-ease-in" msgstr "Ease in" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:419 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing-ease-in-out" msgstr "Ease in out" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:418 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing-ease-out" msgstr "Ease out" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:415 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing-linear" msgstr "Linear" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -#, unused msgid "workspace.options.interaction-in" msgstr "Dovnitř" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:39, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:364 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-mouse-enter" msgstr "Mouse enter" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:40, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:365 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-mouse-leave" msgstr "Mouse leave" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:458, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:459, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:464, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:663, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:665, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:669 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-ms" msgstr "ms" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:369 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-navigate-to" msgstr "Přejít na" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:50 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-navigate-to-dest" msgstr "Přejít na: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:51, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:53, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:55, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:380 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-none" msgstr "(nenastaveno)" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:691 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-offset-effect" msgstr "Efekt offsetu" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:35, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:360 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-on-click" msgstr "Při kliknutí" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:370 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-open-overlay" msgstr "Otevřít překrytí" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:52 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-open-overlay-dest" msgstr "Otevřít překrytí: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:59, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:374 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-open-url" msgstr "Otevřít adresu URL" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -#, unused msgid "workspace.options.interaction-out" msgstr "Ven" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:403 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-bottom-center" msgstr "Dole uprostřed" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:401 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-bottom-left" msgstr "Dole vlevo" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:402 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-bottom-right" msgstr "Dole vpravo" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:397 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-center" msgstr "Střed" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:396 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-manual" msgstr "Ručně" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:400 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-top-center" msgstr "Nahoře uprostřed" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:398 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-top-left" msgstr "Nahoře vlevo" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:399 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-top-right" msgstr "Nahoře vpravo" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:524 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-position" msgstr "Pozice" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:494 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-preserve-scroll" msgstr "Zachovat pozici posouvání" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:58, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:373 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-prev-screen" msgstr "Předchozí obrazovka" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:515 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-relative-to" msgstr "Relativní k" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:57, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:379, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:393, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:394 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-self" msgstr "já" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:371 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-toggle-overlay" msgstr "Přepnout překrytí" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:54 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-toggle-overlay-dest" msgstr "Přepnout překrytí: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:445 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-trigger" msgstr "Spustit" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:503 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-url" msgstr "URL" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:37, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:362 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-while-hovering" msgstr "Při najetí myši" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:38, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:363 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-while-pressing" msgstr "Při stisknutí" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:724 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interactions" msgstr "Interakce" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:137 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.color" msgstr "Color" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:126 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.color-burn" msgstr "Color burn" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:129 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.color-dodge" msgstr "Color dodge" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:124 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.darken" msgstr "Darken" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:133 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.difference" msgstr "Difference" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:134 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.exclusion" msgstr "Exclusion" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:132 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.hard-light" msgstr "Hard light" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:135 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.hue" msgstr "Hue" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:127 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.lighten" msgstr "Lighten" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:138 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.luminosity" msgstr "Luminosity" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:125 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.multiply" msgstr "Multiply" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:123 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.normal" msgstr "Normal" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:130 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.overlay" msgstr "Overlay" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:136 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.saturation" msgstr "Saturation" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:128 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.screen" msgstr "Screen" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:131 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.soft-light" msgstr "Soft light" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -#, unused msgid "workspace.options.layer-options.title" msgstr "Vrstva" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -#, unused msgid "workspace.options.layer-options.title.group" msgstr "Seskupení vrstev" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -#, unused msgid "workspace.options.layer-options.title.multiple" msgstr "Vybrané vrstvy" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout-item.advanced-ops" msgstr "Rozšířené možnosti" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:564 +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs msgid "workspace.options.layout-item.layout-item-max-h" msgstr "Maximální výška" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:531 +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs msgid "workspace.options.layout-item.layout-item-max-w" msgstr "Maximální šířka" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:548 +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs msgid "workspace.options.layout-item.layout-item-min-h" msgstr "Minimální výška" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:515 +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs msgid "workspace.options.layout-item.layout-item-min-w" msgstr "Minimální šířka" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout-item.title.layout-item-max-h" msgstr "Maximální výška" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout-item.title.layout-item-max-w" msgstr "Maximální šířka" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout-item.title.layout-item-min-h" msgstr "Minimální výška" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout-item.title.layout-item-min-w" msgstr "Minimální šířka" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.bottom" msgstr "Dole" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.direction.column" msgstr "Sloupec" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.direction.column-reverse" msgstr "Reverzní sloupec" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.direction.row" msgstr "Řádek" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.direction.row-reverse" msgstr "Reverzní řada" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.gap" msgstr "Mezera" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.left" msgstr "Vlevo" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout.margin" msgstr "Mezera vně" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout.margin-all" msgstr "Všechny strany" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout.margin-simple" msgstr "Mezera vně" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.packed" msgstr "těsně" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.padding" msgstr "Mezera uvnitř" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.padding-all" msgstr "Všechny strany" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.padding-simple" msgstr "mezera uvnitř" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.right" msgstr "Vpravo" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.space-around" msgstr "místo okolo" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.space-between" msgstr "místo mezi" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.top" msgstr "Nahoře" -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:146 +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs msgid "workspace.options.more-colors" msgstr "Více barev" -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:123 +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs msgid "workspace.options.more-lib-colors" msgstr "Více barev knihovny" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:161 msgid "workspace.options.opacity" msgstr "Průhlednost" -#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.position" msgstr "Pozice" -#: src/app/main/ui/workspace/sidebar/options.cljs:157 +#: src/app/main/ui/workspace/sidebar/options.cljs msgid "workspace.options.prototype" msgstr "Prototyp" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:469, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:481 msgid "workspace.options.radius" msgstr "Poloměr" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:513 +#: 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:522 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.radius-bottom-right" msgstr "Dole vpravo" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:495 +#: 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:504 +#: 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:532 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.radius.all-corners" msgstr "Všechny rohy" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:533 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.radius.single-corners" msgstr "Nezávislé rohy" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:183 msgid "workspace.options.recent-fonts" msgstr "Nedávné" -#: src/app/main/ui/export.cljs:284 +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, +#: src/app/main/ui/handoff/exports.cljs, src/app/main/ui/workspace/header.cljs msgid "workspace.options.retry" msgstr "Opakovat" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:451 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.rotation" msgstr "Otočit" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:180 msgid "workspace.options.search-font" msgstr "Hledat písmo" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:741 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.select-a-shape" msgstr "Vyberte tvar, tabuli nebo skupinu a přetáhněte připojení k jiné tabuli." -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:105 +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs msgid "workspace.options.selection-color" msgstr "Vybrané barvy" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:47 +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs msgid "workspace.options.selection-fill" msgstr "Vyplnění výběru" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:41 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.selection-stroke" msgstr "Obrys výběru" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:40, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:198, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:200 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.blur" msgstr "Rozostření" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:238 msgid "workspace.options.shadow-options.color" msgstr "Barva stínu" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:144 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.drop-shadow" msgstr "Vržený stín" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:145 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.inner-shadow" msgstr "Vnitřní stín" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:38, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:186 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.offsetx" msgstr "X" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:39, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:224 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.offsety" msgstr "Y" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:41, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:211, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:213 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.spread" msgstr "Rozpětí" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:296 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.title" msgstr "Stín" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:295 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.title.group" msgstr "Stín skupiny" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:294 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.title.multiple" msgstr "Stiny výběru" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:193 +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs msgid "workspace.options.show-fill-on-export" msgstr "Zobrazit v exportech" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:562 msgid "workspace.options.show-in-viewer" msgstr "Zobrazit v režimu zobrazení" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:162 +#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.size" msgstr "Velikost" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:355 +#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs msgid "workspace.options.size-presets" msgstr "Předvolby velikosti" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:43 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke" msgstr "Tah" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -#, unused msgid "workspace.options.stroke-cap.circle-marker" msgstr "Zakončení - kruh" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:129 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.circle-marker-short" msgstr "Kruh" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -#, unused msgid "workspace.options.stroke-cap.diamond-marker" msgstr "Zakončení - diamant" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:130 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.diamond-marker-short" msgstr "Diamant" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -#, unused msgid "workspace.options.stroke-cap.line-arrow" msgstr "Zakončení - šipka" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:126 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.line-arrow-short" msgstr "Šipka" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:124 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.none" msgstr "Žádné" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:132 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.round" msgstr "Kulaté" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:133 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.square" msgstr "Čtvercové" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -#, unused msgid "workspace.options.stroke-cap.square-marker" msgstr "Zakončení - čtverec" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:128 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.square-marker-short" msgstr "Obdélník" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -#, unused msgid "workspace.options.stroke-cap.triangle-arrow" msgstr "Zakončení - trojúhelník" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:127 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.triangle-arrow-short" msgstr "Trojúhelník" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:192 msgid "workspace.options.stroke-color" msgstr "Barva tahu" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:165 msgid "workspace.options.stroke-width" msgstr "Šířka tahu" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:87 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.center" msgstr "Uprostřed" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:105 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.dashed" msgstr "Přerušovaný" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:104 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.dotted" msgstr "Tečkovaný" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:88 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.inner" msgstr "Uvnitř" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:106 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.mixed" msgstr "Smíšený" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:89 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.outer" msgstr "Vně" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:103 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.solid" msgstr "Plný" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:115 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.align-bottom" msgstr "Zarovnat dolů" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:111 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.align-middle" msgstr "Zarovnat na střed" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:107 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.align-top" msgstr "Zarovnat nahoru" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:82 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.direction-ltr" msgstr "LTR" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:87 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.direction-rtl" msgstr "RTL" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:149 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.grow-auto-height" msgstr "Automatická výška" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:145 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.grow-auto-width" msgstr "Automatická šířka" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:141 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.grow-fixed" msgstr "Pevná" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:381 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.options.text-options.letter-spacing" msgstr "Mezery mezi písmeny" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:364 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.options.text-options.line-height" msgstr "Výška řádku" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused msgid "workspace.options.text-options.lowercase" msgstr "Malá písmena" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.options.text-options.none" msgstr "Žádné" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:176 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.strikethrough" msgstr "Přeškrtnutí (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:51 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.text-align-center" msgstr "Zarovnat doprostřed (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:59 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.text-align-justify" msgstr "Zarovnat (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:47 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.text-align-left" msgstr "Zarovnat vlevo (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:55 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.text-align-right" msgstr "Zarovnat vpravo (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:189 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.title" msgstr "Text" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:188 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.title-group" msgstr "Text skupiny" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:187 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.title-selection" msgstr "Text výběru" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused msgid "workspace.options.text-options.titlecase" msgstr "První písmeno velké" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:171 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.underline" msgstr "Podtrhnout (%s)" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused msgid "workspace.options.text-options.uppercase" msgstr "Velká písmena" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:745 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.use-play-button" msgstr "Pomocí tlačítka přehrávání v záhlaví spusťte zobrazení prototypu." -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:395 msgid "workspace.options.width" msgstr "Šířka" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:427 msgid "workspace.options.x" msgstr "X" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:438 msgid "workspace.options.y" msgstr "Y" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:167 msgid "workspace.path.actions.add-node" msgstr "Přidat uzel (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:174 msgid "workspace.path.actions.delete-node" msgstr "Smazat uzel (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:152 msgid "workspace.path.actions.draw-nodes" msgstr "Kreslit uzly (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:189 msgid "workspace.path.actions.join-nodes" msgstr "Připojit uzly (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:204 msgid "workspace.path.actions.make-corner" msgstr "Do rohu (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:211 msgid "workspace.path.actions.make-curve" msgstr "Do křivky (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:182 msgid "workspace.path.actions.merge-nodes" msgstr "Sloučit uzly (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:159 msgid "workspace.path.actions.move-nodes" msgstr "Přesunout uzly (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:196 msgid "workspace.path.actions.separate-nodes" msgstr "Oddělit uzly (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:218 msgid "workspace.path.actions.snap-nodes" msgstr "Přichytit uzly (%s)" -#: src/app/main/ui/workspace/context_menu.cljs:441 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.add-flex" msgstr "Přidat flexibilní rozložení" -#: src/app/main/ui/workspace/context_menu.cljs:445 msgid "workspace.shape.menu.add-grid" msgstr "Přidat rozvržení mřížky" -#: src/app/main/ui/workspace/context_menu.cljs:193 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.back" msgstr "Poslat na konec" -#: src/app/main/ui/workspace/context_menu.cljs:190 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.backward" msgstr "Poslat dozadu" -#: src/app/main/ui/workspace/context_menu.cljs:139 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.copy" msgstr "Kopírovat" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:427 msgid "workspace.shape.menu.create-annotation" msgstr "Vytvořit anotaci" -#: src/app/main/ui/workspace/context_menu.cljs:275 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.create-artboard-from-selection" msgstr "Výběr na tabuli" -#: src/app/main/ui/workspace/context_menu.cljs:465 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.create-component" msgstr "Vytvořit komponent" -#: src/app/main/ui/workspace/context_menu.cljs:469 msgid "workspace.shape.menu.create-multiple-components" msgstr "Vytvořte více komponent" -#: src/app/main/ui/workspace/context_menu.cljs:142 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.cut" msgstr "Vyjmout" -#: src/app/main/ui/workspace/context_menu.cljs:486 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.delete" msgstr "Smazat" -#: src/app/main/ui/workspace/context_menu.cljs:391 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.delete-flow-start" msgstr "Smazat počáteční bod" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:432 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.detach-instance" msgstr "Odpojit instanci" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:431 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.detach-instances-in-bulk" msgstr "Odpojit instance" -#: src/app/main/ui/workspace/context_menu.cljs:335, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:75 msgid "workspace.shape.menu.difference" msgstr "Rozdíl" -#: src/app/main/ui/workspace/context_menu.cljs:148 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.duplicate" msgstr "Duplikovat" -#: src/app/main/ui/workspace/context_menu.cljs:321 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.edit" msgstr "Upravit" -#: src/app/main/ui/workspace/context_menu.cljs:341 msgid "workspace.shape.menu.exclude" msgstr "Vyloučit" -#: src/app/main/ui/workspace/context_menu.cljs:348, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:89 msgid "workspace.shape.menu.flatten" msgstr "Vyrovnat" -#: src/app/main/ui/workspace/context_menu.cljs:208 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.flip-horizontal" msgstr "Překlopit vodorovně" -#: src/app/main/ui/workspace/context_menu.cljs:204 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.flip-vertical" msgstr "Překlopit svisle" -#: src/app/main/ui/workspace/context_menu.cljs:394 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.flow-start" msgstr "začátek" -#: src/app/main/ui/workspace/context_menu.cljs:184 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.forward" msgstr "Posunout dopředu" -#: src/app/main/ui/workspace/context_menu.cljs:187 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.front" msgstr "Posunout na začátek" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.go-main" msgstr "Přejít na hlavní soubor komponentu" -#: src/app/main/ui/workspace/context_menu.cljs:261 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.group" msgstr "Skupina" -#: src/app/main/ui/workspace/context_menu.cljs:363, src/app/main/ui/workspace/sidebar/layer_item.cljs:145 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.hide" msgstr "Skrýt" -#: src/app/main/ui/workspace/context_menu.cljs:548, src/app/main/ui/workspace/main_menu.cljs:408 msgid "workspace.shape.menu.hide-ui" msgstr "Zobrazit/skrýt uživatelské rozhraní" -#: src/app/main/ui/workspace/context_menu.cljs:338 msgid "workspace.shape.menu.intersection" msgstr "Průnik" -#: src/app/main/ui/workspace/context_menu.cljs:371, src/app/main/ui/workspace/sidebar/layer_item.cljs:153 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.lock" msgstr "Zamknout" -#: src/app/main/ui/workspace/context_menu.cljs:266 +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.mask" msgstr "Maska" -#: src/app/main/ui/workspace/context_menu.cljs:145, src/app/main/ui/workspace/context_menu.cljs:545 +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.paste" msgstr "Vložit" -#: src/app/main/ui/workspace/context_menu.cljs:331 msgid "workspace.shape.menu.path" msgstr "Cesta" -#: src/app/main/ui/workspace/context_menu.cljs:432 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.remove-flex" msgstr "Odstranit flexibilní rozložení" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:436 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.reset-overrides" msgstr "Obnovit" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:439 msgid "workspace.shape.menu.restore-main" msgstr "Obnovit hlavní komponent" -#: src/app/main/ui/workspace/context_menu.cljs:174 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.select-layer" msgstr "Vybrat vrstvu" -#: src/app/main/ui/workspace/context_menu.cljs:360, src/app/main/ui/workspace/sidebar/layer_item.cljs:144 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.show" msgstr "Zobrazit" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:424 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.show-in-assets" msgstr "Zobrazit na panelu prostředků" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:442, src/app/main/ui/workspace/sidebar/assets/components.cljs:586 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.show-main" msgstr "Zobrazit hlavní komponent" -#: src/app/main/ui/workspace/context_menu.cljs:221 msgid "workspace.shape.menu.thumbnail-remove" msgstr "Odebrat miniaturu" -#: src/app/main/ui/workspace/context_menu.cljs:223 msgid "workspace.shape.menu.thumbnail-set" msgstr "Nastavit jako miniaturu" -#: src/app/main/ui/workspace/context_menu.cljs:326 msgid "workspace.shape.menu.transform-to-path" msgstr "Transformovat na cestu" -#: src/app/main/ui/workspace/context_menu.cljs:257 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.ungroup" msgstr "Zrušit seskupení" -#: src/app/main/ui/workspace/context_menu.cljs:332, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:70 msgid "workspace.shape.menu.union" msgstr "Sloučení" -#: src/app/main/ui/workspace/context_menu.cljs:368, src/app/main/ui/workspace/sidebar/layer_item.cljs:152 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.unlock" msgstr "Odemknout" -#: src/app/main/ui/workspace/context_menu.cljs:271 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.unmask" msgstr "Zrušit masku" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.update-components-in-bulk" msgstr "Aktualizujte hlavní komponenty" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:445 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.update-main" msgstr "Aktualizujte hlavní komponent" -#: src/app/main/ui/components/tab_container.cljs:50 msgid "workspace.sidebar.collapse" msgstr "Sbalit postranní panel" -#: src/app/main/ui/workspace/sidebar/collapsable_button.cljs:26 msgid "workspace.sidebar.expand" msgstr "Rozbalit postranní panel" -#: src/app/main/ui/workspace/right_header.cljs:231, src/app/main/ui/workspace/right_header.cljs:232 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.sidebar.history" msgstr "Historie (%s)" -#: src/app/main/ui/workspace/sidebar/layers.cljs:522, src/app/main/ui/workspace/sidebar.cljs:100 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.sidebar.layers" msgstr "Vrstvy" -#: src/app/main/ui/workspace/sidebar/layers.cljs:308, src/app/main/ui/workspace/sidebar/layers.cljs:380 msgid "workspace.sidebar.layers.components" msgstr "Komponenty" -#: src/app/main/ui/workspace/sidebar/layers.cljs:305, src/app/main/ui/workspace/sidebar/layers.cljs:338 msgid "workspace.sidebar.layers.frames" msgstr "Tabule" -#: src/app/main/ui/workspace/sidebar/layers.cljs:306, src/app/main/ui/workspace/sidebar/layers.cljs:352 msgid "workspace.sidebar.layers.groups" msgstr "Skupiny" -#: src/app/main/ui/workspace/sidebar/layers.cljs:310, src/app/main/ui/workspace/sidebar/layers.cljs:408 msgid "workspace.sidebar.layers.images" msgstr "Obrázky" -#: src/app/main/ui/workspace/sidebar/layers.cljs:307, src/app/main/ui/workspace/sidebar/layers.cljs:366 msgid "workspace.sidebar.layers.masks" msgstr "Masky" -#: src/app/main/ui/workspace/sidebar/layers.cljs:289 msgid "workspace.sidebar.layers.search" msgstr "Prohledat vrstvy" -#: src/app/main/ui/workspace/sidebar/layers.cljs:311, src/app/main/ui/workspace/sidebar/layers.cljs:422 msgid "workspace.sidebar.layers.shapes" msgstr "Tvary" -#: src/app/main/ui/workspace/sidebar/layers.cljs:309, src/app/main/ui/workspace/sidebar/layers.cljs:394 msgid "workspace.sidebar.layers.texts" msgstr "Texty" -#: src/app/main/ui/viewer/inspect/attributes/svg.cljs:56, src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs:91 +#: src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs, +#: src/app/main/ui/handoff/attributes/svg.cljs msgid "workspace.sidebar.options.svg-attrs.title" msgstr "Importované atributy SVG" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs:217 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs msgid "workspace.sidebar.sitemap" msgstr "Stránky" -#: src/app/main/ui/workspace/left_header.cljs:91 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.sitemap" msgstr "Mapa stránek" -#: src/app/main/ui/workspace/sidebar.cljs:120 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.assets" msgstr "Položky" -#: src/app/main/ui/workspace/palette.cljs:165, src/app/main/ui/workspace/palette.cljs:166 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.color-palette" msgstr "Paleta barev (%s)" -#: src/app/main/ui/workspace/right_header.cljs:220, src/app/main/ui/workspace/right_header.cljs:221 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.comments" msgstr "Komentáře (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:180, src/app/main/ui/workspace/top_toolbar.cljs:181 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.curve" msgstr "Křivka (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:160, src/app/main/ui/workspace/top_toolbar.cljs:161 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.ellipse" msgstr "Elipsa (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:142, src/app/main/ui/workspace/top_toolbar.cljs:143 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.frame" msgstr "Tabule (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:59, src/app/main/ui/workspace/top_toolbar.cljs:60 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.image" msgstr "Obrázek (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:132, src/app/main/ui/workspace/top_toolbar.cljs:133 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.move" msgstr "Přesunout (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:189, src/app/main/ui/workspace/top_toolbar.cljs:190 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.path" msgstr "Cesta (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:151, src/app/main/ui/workspace/top_toolbar.cljs:152 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.rect" msgstr "Obdélník (%s)" #: src/app/main/ui/workspace/left_toolbar.cljs -#, unused msgid "workspace.toolbar.shortcuts" msgstr "Zkratky (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:169, src/app/main/ui/workspace/top_toolbar.cljs:170 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.text" msgstr "Text (%s)" -#: src/app/main/ui/workspace/palette.cljs:173, src/app/main/ui/workspace/palette.cljs:174 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.text-palette" msgstr "Typografie (%s)" -#: src/app/main/ui/workspace/viewport/top_bar.cljs:38 msgid "workspace.top-bar.read-only.done" msgstr "Hotovo" -#: src/app/main/ui/workspace/sidebar/history.cljs:342 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.empty" msgstr "Zatím nedošlo k žádným změnám v historii" -#: src/app/main/ui/workspace/sidebar/history.cljs:147 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.entry.delete" msgstr "Smazané %s" -#: src/app/main/ui/workspace/sidebar/history.cljs:146 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.entry.modify" msgstr "Změněné %s" -#: src/app/main/ui/workspace/sidebar/history.cljs:148 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.entry.move" msgstr "Přesunuté objekty" -#: src/app/main/ui/workspace/sidebar/history.cljs:111 msgid "workspace.undo.entry.multiple.circle" msgstr "kruhy" -#: src/app/main/ui/workspace/sidebar/history.cljs:112 msgid "workspace.undo.entry.multiple.color" msgstr "položky barvy" -#: src/app/main/ui/workspace/sidebar/history.cljs:113 msgid "workspace.undo.entry.multiple.component" msgstr "komponenty" -#: src/app/main/ui/workspace/sidebar/history.cljs:114 msgid "workspace.undo.entry.multiple.curve" msgstr "křivky" -#: src/app/main/ui/workspace/sidebar/history.cljs:115 msgid "workspace.undo.entry.multiple.frame" msgstr "tabule" -#: src/app/main/ui/workspace/sidebar/history.cljs:116 msgid "workspace.undo.entry.multiple.group" msgstr "skupiny" -#: src/app/main/ui/workspace/sidebar/history.cljs:117 msgid "workspace.undo.entry.multiple.media" msgstr "položky grafiky" -#: src/app/main/ui/workspace/sidebar/history.cljs:118 msgid "workspace.undo.entry.multiple.multiple" msgstr "objekty" -#: src/app/main/ui/workspace/sidebar/history.cljs:119 msgid "workspace.undo.entry.multiple.page" msgstr "stránky" -#: src/app/main/ui/workspace/sidebar/history.cljs:120 msgid "workspace.undo.entry.multiple.path" msgstr "cesty" -#: src/app/main/ui/workspace/sidebar/history.cljs:121 msgid "workspace.undo.entry.multiple.rect" msgstr "obdélníky" -#: src/app/main/ui/workspace/sidebar/history.cljs:122 msgid "workspace.undo.entry.multiple.shape" msgstr "tvary" -#: src/app/main/ui/workspace/sidebar/history.cljs:123 msgid "workspace.undo.entry.multiple.text" msgstr "texty" -#: src/app/main/ui/workspace/sidebar/history.cljs:124 msgid "workspace.undo.entry.multiple.typography" msgstr "položky typografie" -#: src/app/main/ui/workspace/sidebar/history.cljs:145 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.entry.new" msgstr "Nový %s" -#: src/app/main/ui/workspace/sidebar/history.cljs:125 msgid "workspace.undo.entry.single.circle" msgstr "kruh" -#: src/app/main/ui/workspace/sidebar/history.cljs:126 msgid "workspace.undo.entry.single.color" msgstr "položka barvy" -#: src/app/main/ui/workspace/sidebar/history.cljs:127 msgid "workspace.undo.entry.single.component" msgstr "komponent" -#: src/app/main/ui/workspace/sidebar/history.cljs:128 msgid "workspace.undo.entry.single.curve" msgstr "křivka" -#: src/app/main/ui/workspace/sidebar/history.cljs:129 msgid "workspace.undo.entry.single.frame" msgstr "tabule" -#: src/app/main/ui/workspace/sidebar/history.cljs:130 msgid "workspace.undo.entry.single.group" msgstr "skupina" -#: src/app/main/ui/workspace/sidebar/history.cljs:131 msgid "workspace.undo.entry.single.image" msgstr "obrázek" -#: src/app/main/ui/workspace/sidebar/history.cljs:132 msgid "workspace.undo.entry.single.media" msgstr "položka grafiky" -#: src/app/main/ui/workspace/sidebar/history.cljs:133 msgid "workspace.undo.entry.single.multiple" msgstr "objekt" -#: src/app/main/ui/workspace/sidebar/history.cljs:134 msgid "workspace.undo.entry.single.page" msgstr "stránka" -#: src/app/main/ui/workspace/sidebar/history.cljs:135 msgid "workspace.undo.entry.single.path" msgstr "cesta" -#: src/app/main/ui/workspace/sidebar/history.cljs:136 msgid "workspace.undo.entry.single.rect" msgstr "obdélník" -#: src/app/main/ui/workspace/sidebar/history.cljs:137 msgid "workspace.undo.entry.single.shape" msgstr "tvar" -#: src/app/main/ui/workspace/sidebar/history.cljs:138 msgid "workspace.undo.entry.single.text" msgstr "text" -#: src/app/main/ui/workspace/sidebar/history.cljs:139 msgid "workspace.undo.entry.single.typography" msgstr "položka typografie" -#: src/app/main/ui/workspace/sidebar/history.cljs:149 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.entry.unknown" msgstr "Operace nad %s" -#: src/app/main/ui/workspace/sidebar/history.cljs:335 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.title" msgstr "Historie" -#: src/app/main/data/workspace/libraries.cljs:1094 +#: src/app/main/data/workspace/libraries.cljs msgid "workspace.updates.dismiss" msgstr "Zrušit" -#: src/app/main/data/workspace/libraries.cljs:1092 +#: src/app/main/data/workspace/libraries.cljs msgid "workspace.updates.more-info" msgstr "Více informací" -#: src/app/main/data/workspace/libraries.cljs:1090 +#: src/app/main/data/workspace/libraries.cljs msgid "workspace.updates.there-are-updates" msgstr "Ve sdílených knihovnách jsou aktualizace" -#: src/app/main/data/workspace/libraries.cljs:1097 +#: src/app/main/data/workspace/libraries.cljs msgid "workspace.updates.update" msgstr "Aktualizace" -#, unused msgid "workspace.viewport.click-to-close-path" msgstr "Kliknutím zavřete cestu" diff --git a/frontend/translations/da.po b/frontend/translations/da.po index a3d896d48b..d90f002d52 100644 --- a/frontend/translations/da.po +++ b/frontend/translations/da.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "PO-Revision-Date: 2024-06-17 08:07+0000\n" "Last-Translator: Anonymous \n" -"Language-Team: Danish " -"\n" +"Language-Team: Danish \n" "Language: da\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" @@ -11,173 +11,171 @@ msgstr "" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 5.6-dev\n" -#: src/app/main/ui/auth/register.cljs:151, src/app/main/ui/viewer/login.cljs:104 +#: src/app/main/ui/auth/register.cljs msgid "auth.already-have-account" msgstr "Har du allerede en konto?" -#: src/app/main/ui/auth/register.cljs:299 +#: src/app/main/ui/auth/register.cljs msgid "auth.check-your-email" msgstr "" "Tjek din mail og klik på linket for at bekræfte og starte med at bruge " "Penpot." -#: src/app/main/ui/auth/recovery.cljs:78 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.confirm-password" msgstr "Bekræft adgangskode" -#: src/app/main/ui/auth/register.cljs:163 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.create-demo-account" msgstr "Lav demokonto" #: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs -#, unused msgid "auth.create-demo-profile" msgstr "Vil du bare prøve det?" -#: src/app/main/ui/auth/login.cljs:43 +#: src/app/main/ui/auth/register.cljs msgid "auth.demo-warning" msgstr "" "Det her er en DEMO service, BRUG IKKE for rigtigt arbejde, projekterne vil " "blive slettet periodevis." -#: src/app/main/ui/auth/login.cljs:189, src/app/main/ui/viewer/login.cljs:90 +#: src/app/main/ui/auth/login.cljs msgid "auth.forgot-password" msgstr "Glemt adgangskode?" -#: src/app/main/ui/auth/register.cljs:254 +#: src/app/main/ui/auth/register.cljs msgid "auth.fullname" msgstr "Fulde Navn" -#: src/app/main/ui/auth/register.cljs:155, src/app/main/ui/viewer/login.cljs:107 +#: src/app/main/ui/auth/register.cljs +#, fuzzy msgid "auth.login-here" msgstr "Log på her" -#: src/app/main/ui/auth/login.cljs:195 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-submit" msgstr "Log på" -#: src/app/main/ui/auth/login.cljs:222 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-github-submit" msgstr "Github" -#: src/app/main/ui/auth/login.cljs:228 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-gitlab-submit" msgstr "Gitlab" -#: src/app/main/ui/auth/login.cljs:216 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-google-submit" msgstr "Google" -#: src/app/main/ui/auth/login.cljs:201 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-ldap-submit" msgstr "LDAP" -#: src/app/main/ui/auth/login.cljs:234, src/app/main/ui/auth/login.cljs:255 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-oidc-submit" msgstr "OpenID" -#: src/app/main/ui/auth/recovery.cljs:71 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.new-password" msgstr "Indtast et nyt kodeord" -#: src/app/main/ui/auth/recovery.cljs:42 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.notifications.invalid-token-error" msgstr "Genopretningspoletten er ugyldig." -#: src/app/main/ui/auth/recovery.cljs:46 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.notifications.password-changed-successfully" msgstr "Adgangskoden er blevet ændret" -#: src/app/main/ui/auth/recovery_request.cljs:57 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.notifications.profile-not-verified" msgstr "Profilen er ikke bekræftet, venligt verificer profilen før du går videre." -#: src/app/main/ui/auth/recovery_request.cljs:40 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.notifications.recovery-token-sent" msgstr "Gendannelseslink for adgangskoden er sendt til din indbakke." -#: src/app/main/ui/auth/verify_token.cljs:47 +#: src/app/main/ui/auth/verify_token.cljs msgid "auth.notifications.team-invitation-accepted" msgstr "Tilsluttet teamet med succes" -#: src/app/main/ui/auth/login.cljs:179, src/app/main/ui/auth/register.cljs:115 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.password" msgstr "Adgangskode" -#: src/app/main/ui/auth/register.cljs:114 +#: src/app/main/ui/auth/register.cljs msgid "auth.password-length-hint" msgstr "Mindst 8 karakterer" -#: src/app/main/ui/auth/recovery_request.cljs:88 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-submit" msgstr "Gendan Adgangskode" -#: src/app/main/ui/auth/recovery_request.cljs:101 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-subtitle" msgstr "Vi sender dig en mail med instruktioner" -#: src/app/main/ui/auth/recovery_request.cljs:100 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-title" msgstr "Glemt adgangskode?" -#: src/app/main/ui/auth/recovery.cljs:82 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.recovery-submit" msgstr "Skift din adgangskode" -#: src/app/main/ui/auth/login.cljs:298, src/app/main/ui/viewer/login.cljs:93 +#: src/app/main/ui/auth/login.cljs msgid "auth.register" msgstr "Ingen konto?" -#: src/app/main/ui/auth/login.cljs:302, src/app/main/ui/auth/register.cljs:121, src/app/main/ui/auth/register.cljs:263, src/app/main/ui/viewer/login.cljs:97 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.register-submit" msgstr "Opret en konto" -#: src/app/main/ui/auth/register.cljs:140 +#: src/app/main/ui/auth/register.cljs msgid "auth.register-title" msgstr "Opret en konto" #: src/app/main/ui/auth.cljs -#, unused msgid "auth.sidebar-tagline" msgstr "Open-source løsningen for design og prototyping." -#: src/app/main/ui/auth/register.cljs:297 +#: src/app/main/ui/auth/register.cljs msgid "auth.verification-email-sent" msgstr "Vi har sendt en bekræftelsesmail til" -#: src/app/main/ui/dashboard/file_menu.cljs:291, src/app/main/ui/workspace/main_menu.cljs:572 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.add-shared" msgstr "Tilføj som Delt Bibliotek" -#: src/app/main/ui/settings/profile.cljs:75 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.change-email" msgstr "Skift email" -#: src/app/main/data/dashboard.cljs:762, src/app/main/data/dashboard.cljs:983 +#: src/app/main/data/dashboard.cljs, src/app/main/data/dashboard.cljs msgid "dashboard.copy-suffix" msgstr "(kopi)" -#: src/app/main/ui/dashboard/sidebar.cljs:338 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.create-new-team" msgstr "Opret nyt team" -#: src/app/main/ui/components/context_menu_a11y.cljs:256, src/app/main/ui/dashboard/sidebar.cljs:646 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.default-team-name" msgstr "Dit Penpot" -#: src/app/main/ui/dashboard/sidebar.cljs:571 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.delete-team" msgstr "Slet team" -#: src/app/main/ui/dashboard/file_menu.cljs:276, src/app/main/ui/dashboard/project_menu.cljs:90 +#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.duplicate" msgstr "Dublikér" -#: src/app/main/ui/dashboard/file_menu.cljs:240 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.duplicate-multi" msgstr "Dublikér %s filer" -#: src/app/main/ui/dashboard/fonts.cljs:170 #, markdown msgid "dashboard.fonts.hero-text1" msgstr "" @@ -187,7 +185,6 @@ msgstr "" "som en **enkelt skrifttypefamilie**. Du kan uploade skrifttyper med " "følgende formater: **TTF, OTF og WOFF** (kun én er nødvendig)." -#: src/app/main/ui/dashboard/fonts.cljs:182 #, markdown msgid "dashboard.fonts.hero-text2" msgstr "" @@ -196,261 +193,248 @@ msgstr "" "Terms of Service] (https://penpot.app/terms.html). Du kan også læse om " "[font licensing](2)." -#: src/app/main/ui/dashboard/team.cljs:109 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.invite-profile" msgstr "Invitér til team" -#: src/app/main/ui/dashboard/sidebar.cljs:547, src/app/main/ui/dashboard/sidebar.cljs:556, src/app/main/ui/dashboard/sidebar.cljs:563, src/app/main/ui/dashboard/team.cljs:312 +#: src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.leave-team" msgstr "Forlad team" -#: src/app/main/ui/dashboard/libraries.cljs:53 +#: src/app/main/ui/dashboard/libraries.cljs msgid "dashboard.libraries-title" msgstr "Delte Biblioteker" -#: src/app/main/ui/dashboard/placeholder.cljs:45 +#: src/app/main/ui/dashboard/grid.cljs msgid "dashboard.loading-files" msgstr "indlæser dine filer…" -#: src/app/main/ui/dashboard/file_menu.cljs:281, src/app/main/ui/dashboard/project_menu.cljs:100 +#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.move-to" msgstr "Flyt til" -#: src/app/main/ui/dashboard/file_menu.cljs:245 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.move-to-multi" msgstr "Flyt %s filer til" -#: src/app/main/ui/dashboard/file_menu.cljs:226 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.move-to-other-team" msgstr "Flyt til andet team" -#: src/app/main/ui/dashboard/files.cljs:105, src/app/main/ui/dashboard/projects.cljs:252, src/app/main/ui/dashboard/projects.cljs:253 +#: src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/files.cljs msgid "dashboard.new-file" msgstr "+ Ny Fil" -#: src/app/main/data/dashboard.cljs:958, src/app/main/data/dashboard.cljs:1181 +#: src/app/main/data/dashboard.cljs msgid "dashboard.new-file-prefix" msgstr "Ny Fil" -#: src/app/main/ui/dashboard/projects.cljs:55 +#: src/app/main/ui/dashboard/projects.cljs msgid "dashboard.new-project" msgstr "+ Nyt projekt" -#: src/app/main/data/dashboard.cljs:726, src/app/main/data/dashboard.cljs:1184 +#: src/app/main/data/dashboard.cljs msgid "dashboard.new-project-prefix" msgstr "Nyt Projekt" -#: src/app/main/ui/dashboard/search.cljs:60 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.no-matches-for" msgstr "Intet match fundet for “%s“" -#: src/app/main/ui/dashboard/sidebar.cljs:827 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.no-projects-placeholder" msgstr "Fastgjorte projekter bliver vist her" -#: src/app/main/ui/auth/verify_token.cljs:33 +#: src/app/main/ui/auth/verify_token.cljs msgid "dashboard.notifications.email-changed-successfully" msgstr "Din email-adresse er blevet opdateret med succes" -#: src/app/main/ui/auth/verify_token.cljs:27 +#: src/app/main/ui/auth/verify_token.cljs msgid "dashboard.notifications.email-verified-successfully" msgstr "Din email-adresse er blevet bekræftet med succes" -#: src/app/main/ui/settings/password.cljs:37 +#: src/app/main/ui/settings/password.cljs msgid "dashboard.notifications.password-saved" msgstr "Adgangskode gemt med succes!" -#: src/app/main/ui/dashboard/team.cljs:1081 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.num-of-members" msgstr "%s medlemmer" -#: src/app/main/ui/dashboard/file_menu.cljs:267 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.open-in-new-tab" msgstr "Åben fil i en ny fane" -#: src/app/main/ui/settings/password.cljs:106, src/app/main/ui/settings/password.cljs:119 +#: src/app/main/ui/settings/password.cljs msgid "dashboard.password-change" msgstr "Skift adgangskode" -#: src/app/main/ui/dashboard/pin_button.cljs:24, src/app/main/ui/dashboard/project_menu.cljs:95 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.pin-unpin" msgstr "Fastgør/Løsne" -#: src/app/main/ui/dashboard/projects.cljs:51 +#: src/app/main/ui/dashboard/projects.cljs msgid "dashboard.projects-title" msgstr "Projekter" -#: src/app/main/ui/settings/profile.cljs:86 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.remove-account" msgstr "Vil du slette din konto?" #: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused msgid "dashboard.remove-shared" msgstr "Fjern som Delt Bibliotek" -#: src/app/main/ui/dashboard/sidebar.cljs:246, src/app/main/ui/dashboard/sidebar.cljs:247 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.search-placeholder" msgstr "Søg…" -#: src/app/main/ui/dashboard/search.cljs:55 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.searching-for" msgstr "Søger efter “%s“…" -#: src/app/main/ui/settings/options.cljs:56 +#: src/app/main/ui/settings/options.cljs msgid "dashboard.select-ui-language" msgstr "Vælg UI sprog" -#: src/app/main/ui/settings/options.cljs:63 +#: src/app/main/ui/settings/options.cljs msgid "dashboard.select-ui-theme" msgstr "Vælg tema" -#: src/app/main/ui/dashboard/projects.cljs:282 +#: src/app/main/ui/dashboard/grid.cljs msgid "dashboard.show-all-files" msgstr "Vis alle filer" -#: src/app/main/ui/dashboard/file_menu.cljs:96 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-delete-file" msgstr "Din fil er blevet slettet med succes" -#: src/app/main/ui/dashboard/project_menu.cljs:59 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.success-delete-project" msgstr "Dit projekt er blevet slettet med succes" -#: src/app/main/ui/dashboard/file_menu.cljs:91 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-duplicate-file" msgstr "Din fil er blevet dublikeret med succes" -#: src/app/main/ui/dashboard/project_menu.cljs:33 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.success-duplicate-project" msgstr "Dit projekt er blevet dublikeret med succes" -#: src/app/main/ui/dashboard/file_menu.cljs:130, src/app/main/ui/dashboard/grid.cljs:558, src/app/main/ui/dashboard/sidebar.cljs:152 +#: src/app/main/ui/dashboard/grid.cljs, src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-move-file" msgstr "Din fil er blevet flyttet med succes" -#: src/app/main/ui/dashboard/file_menu.cljs:129 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-move-files" msgstr "Dine filer er blevet flyttet med succes" -#: src/app/main/ui/dashboard/project_menu.cljs:54 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.success-move-project" msgstr "Dit projekt er blevet flyttet med succes" -#: src/app/main/ui/dashboard/team.cljs:1052 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.team-info" msgstr "Team info" -#: src/app/main/ui/dashboard/team.cljs:1070 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.team-members" msgstr "Medlemmer" -#: src/app/main/ui/dashboard/team.cljs:1085 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.team-projects" msgstr "Team projekter" -#: src/app/main/ui/settings/options.cljs:61 +#: src/app/main/ui/settings/options.cljs msgid "dashboard.theme-change" msgstr "UI tema" -#: src/app/main/ui/dashboard/search.cljs:42 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.title-search" msgstr "Søgeresultater" -#: src/app/main/ui/dashboard/search.cljs:50 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.type-something" msgstr "Skriv for at søge i resultater" -#: src/app/main/ui/settings/options.cljs:71 +#: src/app/main/ui/settings/profile.cljs, src/app/main/ui/settings/password.cljs, src/app/main/ui/settings/options.cljs msgid "dashboard.update-settings" msgstr "Opdater indstillinger" -#: src/app/main/ui/settings.cljs:31 +#: src/app/main/ui/settings.cljs msgid "dashboard.your-account-title" msgstr "Din konto" -#: src/app/main/ui/settings/profile.cljs:70 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.your-email" msgstr "Email" -#: src/app/main/ui/settings/profile.cljs:62 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.your-name" msgstr "Dit navn" -#: src/app/main/ui/dashboard/file_menu.cljs:38, src/app/main/ui/dashboard/fonts.cljs:33, src/app/main/ui/dashboard/libraries.cljs:42, src/app/main/ui/dashboard/projects.cljs:318, src/app/main/ui/dashboard/search.cljs:30, src/app/main/ui/dashboard/sidebar.cljs:312, src/app/main/ui/dashboard/team.cljs:495, src/app/main/ui/dashboard/team.cljs:729, src/app/main/ui/dashboard/team.cljs:991, src/app/main/ui/dashboard/team.cljs:1038 +#: src/app/main/ui/dashboard/search.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/libraries.cljs, src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.your-penpot" msgstr "Dit Penpot" -#: src/app/main/ui/confirm.cljs:36, src/app/main/ui/workspace/plugins.cljs:246 +#: src/app/main/ui/confirm.cljs msgid "ds.confirm-cancel" msgstr "Fortryd" -#: src/app/main/ui/confirm.cljs:37, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:141 +#: src/app/main/ui/confirm.cljs msgid "ds.confirm-ok" msgstr "Ok" -#: src/app/main/ui/confirm.cljs:35, src/app/main/ui/confirm.cljs:39 +#: src/app/main/ui/confirm.cljs, src/app/main/ui/confirm.cljs msgid "ds.confirm-title" msgstr "Er du sikker?" -#: src/app/main/data/workspace.cljs:1598 +#: src/app/main/data/workspace.cljs msgid "errors.clipboard-not-implemented" msgstr "Din browser kan ikke gøre denne operation" -#, unused msgid "labels.custom-fonts" msgstr "Brugerdefinerede skrifttyper" -#: src/app/main/ui/dashboard/fonts.cljs:412 msgid "labels.font-family" msgstr "Skrifttypefamilie" -#, unused msgid "labels.font-providers" msgstr "Skrifttype udbydere" -#: src/app/main/ui/dashboard/fonts.cljs:52, src/app/main/ui/dashboard/sidebar.cljs:811 msgid "labels.fonts" msgstr "Skrifttyper" -#: src/app/main/ui/auth/recovery_request.cljs:110, src/app/main/ui/auth/register.cljs:285, src/app/main/ui/viewer/login.cljs:117 msgid "labels.go-back" msgstr "Gå tilbage!" -#: src/app/main/ui/dashboard/fonts.cljs:410 msgid "labels.installed-fonts" msgstr "Installeret skrifttyper" -#: src/app/main/ui/dashboard/fonts.cljs:415 msgid "labels.search-font" msgstr "Søg efter skrifttype" -#: src/app/main/ui/dashboard/fonts.cljs:241 msgid "labels.upload" msgstr "Upload" -#: src/app/main/ui/dashboard/fonts.cljs:169 msgid "labels.upload-custom-fonts" msgstr "Upload brugerdefinerede skrifttyper" -#: src/app/main/ui/dashboard/fonts.cljs:240 msgid "labels.uploading" msgstr "Uploader..." -#: src/app/main/ui/dashboard/fonts.cljs:331 msgid "modals.delete-font.message" msgstr "" "Er du sikker på, at du vil slette denne skrifttype? Den vil ikke indlæse, " "hvis den bliver brugt i en fil." -#: src/app/main/ui/dashboard/fonts.cljs:330 msgid "modals.delete-font.title" msgstr "Sletter skrifttype" -#: src/app/main/ui/dashboard/fonts.cljs:37 +#: src/app/main/ui/dashboard/fonts.cljs msgid "title.dashboard.font-providers" msgstr "Skrifttype Udbydere - %s - Penpot" -#: src/app/main/ui/dashboard/fonts.cljs:36 +#: src/app/main/ui/dashboard/fonts.cljs msgid "title.dashboard.fonts" msgstr "Skrifttyper - %s - Penpot" diff --git a/frontend/translations/de.po b/frontend/translations/de.po index 1f12c8fe53..48214d1fa3 100644 --- a/frontend/translations/de.po +++ b/frontend/translations/de.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "PO-Revision-Date: 2024-06-17 08:07+0000\n" "Last-Translator: Anonymous \n" -"Language-Team: German " -"\n" +"Language-Team: German \n" "Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" @@ -11,2275 +11,2082 @@ msgstr "" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 5.6-dev\n" -#: src/app/main/ui/auth/register.cljs:151, src/app/main/ui/viewer/login.cljs:104 +#: src/app/main/ui/auth/register.cljs msgid "auth.already-have-account" msgstr "Sie haben schon ein Konto?" -#: src/app/main/ui/auth/register.cljs:299 +#: src/app/main/ui/auth/register.cljs msgid "auth.check-your-email" msgstr "" "Überprüfen Sie Ihre E-Mail und klicken Sie auf den Link, um sich zu " "verifizieren und Penpot zu nutzen." -#: src/app/main/ui/auth/recovery.cljs:78 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.confirm-password" msgstr "Passwort bestätigen" -#: src/app/main/ui/auth/register.cljs:163 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.create-demo-account" msgstr "Ein Demo-Konto erstellen" #: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs -#, unused msgid "auth.create-demo-profile" msgstr "Wollen Sie es einfach ausprobieren?" -#: src/app/main/ui/auth/login.cljs:43 +#: src/app/main/ui/auth/register.cljs msgid "auth.demo-warning" msgstr "" -"Das ist eine DEMO-VERSION, verwenden Sie es NICHT zum Arbeiten, die " -"Projekte werden regelmäßig gelöscht." +"Das ist eine DEMO-VERSION, verwenden Sie es NICHT zum Arbeiten, die Projekte " +"werden regelmäßig gelöscht." -#: src/app/main/ui/auth/login.cljs:189, src/app/main/ui/viewer/login.cljs:90 +#: src/app/main/ui/auth/login.cljs msgid "auth.forgot-password" msgstr "Passwort vergessen?" -#: src/app/main/ui/auth/register.cljs:254 +#: src/app/main/ui/auth/register.cljs msgid "auth.fullname" msgstr "Vollständiger Name" -#: src/app/main/ui/auth/login.cljs:282 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-account-title" msgstr "In mein Konto einloggen" -#: src/app/main/ui/auth/register.cljs:155, src/app/main/ui/viewer/login.cljs:107 +#: src/app/main/ui/auth/register.cljs +#, fuzzy msgid "auth.login-here" msgstr "Hier anmelden" -#: src/app/main/ui/auth/login.cljs:195 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-submit" msgstr "Anmelden" -#: src/app/main/ui/auth/login.cljs:285 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-tagline" msgstr "" -"Penpot ist das kostenlose Open-Source-Design-Tool für die Zusammenarbeit " -"von Design und Code" +"Penpot ist das kostenlose Open-Source-Design-Tool für die Zusammenarbeit von " +"Design und Code" -#: src/app/main/ui/auth/login.cljs:222 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.login-with-github-submit" msgstr "GitHub" -#: src/app/main/ui/auth/login.cljs:228 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.login-with-gitlab-submit" msgstr "GitLab" -#: src/app/main/ui/auth/login.cljs:216 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-google-submit" msgstr "Google" -#: src/app/main/ui/auth/login.cljs:201 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-ldap-submit" msgstr "LDAP" -#: src/app/main/ui/auth/login.cljs:234, src/app/main/ui/auth/login.cljs:255 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-oidc-submit" msgstr "OpenID" -#: src/app/main/ui/auth/register.cljs:217, src/app/main/ui/dashboard/team_form.cljs:76, src/app/main/ui/onboarding/team_choice.cljs:180, src/app/main/ui/settings/access_tokens.cljs:66, src/app/main/ui/settings/feedback.cljs:34, src/app/main/ui/settings/profile.cljs:45, src/app/main/ui/workspace/sidebar/assets/groups.cljs:108 +#: src/app/main/ui/settings/team-form.cljs, src/app/main/ui/auth/register.cljs, +#: src/app/main/ui/dashboard/team_form.cljs, +#: src/app/main/ui/onboarding/team_choice.cljs, +#: src/app/main/ui/settings/access_tokens.cljs, +#: src/app/main/ui/settings/feedback.cljs, +#: src/app/main/ui/settings/profile.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "auth.name.not-all-space" msgstr "Der Name darf keine Leerzeichen enthalten." -#: src/app/main/ui/auth/register.cljs:218, src/app/main/ui/dashboard/team_form.cljs:77, src/app/main/ui/onboarding/team_choice.cljs:181, src/app/main/ui/settings/access_tokens.cljs:67, src/app/main/ui/settings/feedback.cljs:33, src/app/main/ui/settings/profile.cljs:44, src/app/main/ui/workspace/sidebar/assets/groups.cljs:109 +#: src/app/main/ui/auth/register.cljs, +#: src/app/main/ui/dashboard/team_form.cljs, +#: src/app/main/ui/onboarding/team_choice.cljs, +#: src/app/main/ui/settings/access_tokens.cljs, +#: src/app/main/ui/settings/feedback.cljs, +#: src/app/main/ui/settings/profile.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "auth.name.too-long" msgstr "Der Name darf höchstens 250 Zeichen lang sein." -#: src/app/main/ui/auth/recovery.cljs:71 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.new-password" msgstr "Geben Sie ein neues Passwort ein" -#: src/app/main/ui/auth/recovery.cljs:42 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.notifications.invalid-token-error" msgstr "Der Wiederherstellungscode ist ungültig." -#: src/app/main/ui/auth/recovery.cljs:46 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.notifications.password-changed-successfully" msgstr "Passwort erfolgreich geändert" -#: src/app/main/ui/auth/recovery_request.cljs:57 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.notifications.profile-not-verified" msgstr "" "Profil ist nicht verifiziert. Bevor Sie fortfahren, verifizieren Sie bitte " "das Profil." -#: src/app/main/ui/auth/recovery_request.cljs:40 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.notifications.recovery-token-sent" -msgstr "Der Link zur Wiederherstellung des Passworts wurde an Ihre E-Mail gesendet." +msgstr "" +"Der Link zur Wiederherstellung des Passworts wurde an Ihre E-Mail gesendet." -#: src/app/main/ui/auth/verify_token.cljs:47 +#: src/app/main/ui/auth/verify_token.cljs msgid "auth.notifications.team-invitation-accepted" msgstr "Sie sind dem Team beigetreten" -#: src/app/main/ui/auth/login.cljs:179, src/app/main/ui/auth/register.cljs:115 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.password" msgstr "Passwort" -#: src/app/main/ui/auth/register.cljs:114 +#: src/app/main/ui/auth/register.cljs msgid "auth.password-length-hint" msgstr "Mindestens 8 Zeichen" -#: src/app/main/ui/auth/recovery.cljs:61, src/app/main/ui/auth/recovery.cljs:62, src/app/main/ui/auth/register.cljs:81, src/app/main/ui/settings/password.cljs:75, src/app/main/ui/settings/password.cljs:76, src/app/main/ui/settings/password.cljs:77 +#: src/app/main/ui/auth/register.cljs msgid "auth.password-not-empty" msgstr "Das Passwort darf keine Leerzeichen enthalten." -#: src/app/main/ui/auth.cljs:41 msgid "auth.privacy-policy" msgstr "Datenschutzerklärung" -#: src/app/main/ui/auth/recovery_request.cljs:88 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-submit" msgstr "Passwort wiederherstellen" -#: src/app/main/ui/auth/recovery_request.cljs:101 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-subtitle" msgstr "Wir senden Ihnen eine E-Mail mit Anweisungen zu" -#: src/app/main/ui/auth/recovery_request.cljs:100 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-title" msgstr "Passwort vergessen?" -#: src/app/main/ui/auth/recovery.cljs:82 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.recovery-submit" msgstr "Passwort ändern" -#: src/app/main/ui/auth/login.cljs:298, src/app/main/ui/viewer/login.cljs:93 +#: src/app/main/ui/auth/login.cljs msgid "auth.register" msgstr "Noch kein Konto?" -#: src/app/main/ui/auth/login.cljs:302, src/app/main/ui/auth/register.cljs:121, src/app/main/ui/auth/register.cljs:263, src/app/main/ui/viewer/login.cljs:97 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.register-submit" msgstr "Konto erstellen" -#: src/app/main/ui/auth/register.cljs:140 +#: src/app/main/ui/auth/register.cljs msgid "auth.register-title" msgstr "Konto erstellen" #: src/app/main/ui/auth.cljs -#, unused msgid "auth.sidebar-tagline" msgstr "Die Open-Source-Lösung für Design und Prototyping." -#: src/app/main/ui/auth.cljs:33, src/app/main/ui/dashboard/sidebar.cljs:1022, src/app/main/ui/workspace/main_menu.cljs:150 msgid "auth.terms-of-service" msgstr "Nutzungsbedingungen" -#, unused +#: src/app/main/ui/auth/register.cljs msgid "auth.terms-privacy-agreement" msgstr "" "Wenn Sie ein neues Konto erstellen, stimmen Sie unseren Nutzungsbedingungen " "und Datenschutzrichtlinien zu." -#: src/app/main/ui/auth/register.cljs:297 +#: src/app/main/ui/auth/register.cljs msgid "auth.verification-email-sent" msgstr "Wir haben eine Bestätigungs-E-Mail gesendet an" #: src/app/main/ui/onboarding/questions.cljs -#, unused msgid "branding-illustrations-marketing-pieces" msgstr "...Branding, Illustrationen, Marketingmaterialien, usw." -#: src/app/main/ui/workspace/libraries.cljs:228 msgid "common.publish" msgstr "Veröffentlichen" -#: src/app/main/ui/viewer/share_link.cljs:304, src/app/main/ui/viewer/share_link.cljs:314 msgid "common.share-link.all-users" msgstr "Alle Penpot-Benutzer" -#: src/app/main/ui/viewer/share_link.cljs:198 msgid "common.share-link.confirm-deletion-link-description" msgstr "" "Sind Sie sicher, dass Sie diesen Link löschen möchten? Wenn Sie das tun, " "wird er für niemanden mehr verfügbar sein" -#: src/app/main/ui/viewer/share_link.cljs:259, src/app/main/ui/viewer/share_link.cljs:289 msgid "common.share-link.current-tag" msgstr "(aktuell)" -#: src/app/main/ui/viewer/share_link.cljs:207, src/app/main/ui/viewer/share_link.cljs:214 msgid "common.share-link.destroy-link" msgstr "Link entfernen" -#: src/app/main/ui/viewer/share_link.cljs:221 msgid "common.share-link.get-link" msgstr "Link erstellen" -#: src/app/main/ui/viewer/share_link.cljs:139 msgid "common.share-link.link-copied-success" msgstr "Link wurde erfolgreich kopiert" -#: src/app/main/ui/viewer/share_link.cljs:231 msgid "common.share-link.manage-ops" msgstr "Verwalten von Berechtigungen" -#: src/app/main/ui/viewer/share_link.cljs:277 msgid "common.share-link.page-shared" msgid_plural "common.share-link.page-shared" msgstr[0] "1 Seite freigegeben" msgstr[1] "%s Seiten freigegeben" -#: src/app/main/ui/viewer/share_link.cljs:298 msgid "common.share-link.permissions-can-comment" msgstr "Können kommentieren" -#: src/app/main/ui/viewer/share_link.cljs:308 msgid "common.share-link.permissions-can-inspect" msgstr "Können den Code ansehen" -#: src/app/main/ui/viewer/share_link.cljs:193 msgid "common.share-link.permissions-hint" msgstr "Jeder mit dem Link kann auf die Datei zugreifen" -#: src/app/main/ui/viewer/share_link.cljs:241 msgid "common.share-link.permissions-pages" msgstr "Geteilte Seiten" -#: src/app/main/ui/viewer/share_link.cljs:183 msgid "common.share-link.placeholder" msgstr "Link zum Teilen wird hier erscheinen" -#: src/app/main/ui/viewer/share_link.cljs:303, src/app/main/ui/viewer/share_link.cljs:313 msgid "common.share-link.team-members" msgstr "Nur Teammitglieder" -#: src/app/main/ui/viewer/share_link.cljs:171 msgid "common.share-link.title" msgstr "Prototypen teilen" -#: src/app/main/ui/viewer/share_link.cljs:269 msgid "common.share-link.view-all" msgstr "Alle auswählen" -#: src/app/main/ui/workspace/libraries.cljs:224 msgid "common.unpublish" msgstr "Veröffentlichung aufheben" -#: src/app/main/ui/dashboard/projects.cljs:85 +#: src/app/main/ui/dashboard/projects.cljs msgid "dasboard.team-hero.management" msgstr "Teammanagement" -#: src/app/main/ui/dashboard/projects.cljs:84 +#: src/app/main/ui/dashboard/projects.cljs msgid "dasboard.team-hero.text" msgstr "" "Penpot ist für Teams gedacht. Um gemeinsam an Projekten und Dateien zu " "arbeiten, laden Sie Mitglieder ein" -#: src/app/main/ui/dashboard/projects.cljs:82 +#: src/app/main/ui/dashboard/projects.cljs msgid "dasboard.team-hero.title" msgstr "Teamwork!" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.tutorial-hero.info" msgstr "" "Lernen Sie die Grundlagen von Penpot und haben Sie Spaß mit diesem " "praktischen Tutorial." #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.tutorial-hero.start" msgstr "Tutorial starten" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.tutorial-hero.title" msgstr "Praktisches Tutorial" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.walkthrough-hero.info" -msgstr "Erkunden Sie Penpot um mehr über die wichtigsten Funktionen zu erfahren." +msgstr "" +"Erkunden Sie Penpot um mehr über die wichtigsten Funktionen zu erfahren." #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.walkthrough-hero.start" msgstr "Tour starten" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.walkthrough-hero.title" msgstr "Benutzeroberfläche erkunden" -#: src/app/main/ui/settings/access_tokens.cljs:115 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.copied-success" msgstr "Token kopiert" -#: src/app/main/ui/settings/access_tokens.cljs:202 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.create" msgstr "Neues Token generieren" -#: src/app/main/ui/settings/access_tokens.cljs:76 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.create.success" msgstr "Der Zugangstoken wurde erfolgreich erstellt." -#: src/app/main/ui/settings/access_tokens.cljs:300 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.empty.add-one" msgstr "" "Drücken Sie die Schaltfläche \"Neuen Token generieren\", um einen zu " "generieren." -#: src/app/main/ui/settings/access_tokens.cljs:299 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.empty.no-access-tokens" msgstr "Du hast bisher keine Token." -#: src/app/main/ui/settings/access_tokens.cljs:53 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.errors-required-name" msgstr "Der Name ist erforderlich" -#: src/app/main/ui/settings/access_tokens.cljs:147 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-180-days" msgstr "180 Tage" -#: src/app/main/ui/settings/access_tokens.cljs:144 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-30-days" msgstr "30 Tage" -#: src/app/main/ui/settings/access_tokens.cljs:145 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-60-days" msgstr "60 Tage" -#: src/app/main/ui/settings/access_tokens.cljs:146 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-90-days" msgstr "90 Tage" -#: src/app/main/ui/settings/access_tokens.cljs:143 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-never" msgstr "Nie" -#: src/app/main/ui/settings/access_tokens.cljs:282 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expired-on" msgstr "Abgelaufen am %s" -#: src/app/main/ui/settings/access_tokens.cljs:283 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expires-on" msgstr "Läuft ab am %s" -#: src/app/main/ui/settings/access_tokens.cljs:281 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.no-expiration" msgstr "Kein Ablaufdatum" -#: src/app/main/ui/settings/access_tokens.cljs:197 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.personal" msgstr "Persönliche Zugangstoken" -#: src/app/main/ui/settings/access_tokens.cljs:198 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.personal.description" msgstr "" -"Persönliche Zugangstoken stellen eine Alternative zu unserem " -"Login/Passwort-Authentifizierungssystem dar und können verwendet werden, um " -"einer Anwendung den Zugriff auf die interne Penpot-API zu ermöglichen" +"Persönliche Zugangstoken stellen eine Alternative zu unserem Login/Passwort-" +"Authentifizierungssystem dar und können verwendet werden, um einer Anwendung " +"den Zugriff auf die interne Penpot-API zu ermöglichen" -#: src/app/main/ui/settings/access_tokens.cljs:154 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.token-will-expire" msgstr "Der Token läuft am %s ab" -#: src/app/main/ui/settings/access_tokens.cljs:155 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.token-will-not-expire" msgstr "Der Token hat kein Ablaufdatum" -#: src/app/main/ui/dashboard/file_menu.cljs:291, src/app/main/ui/workspace/main_menu.cljs:572 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.add-shared" msgstr "Hinzufügen als gemeinsam genutzte Bibliothek" -#: src/app/main/ui/settings/profile.cljs:75 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.change-email" msgstr "E-Mail-Adresse ändern" -#: src/app/main/data/dashboard.cljs:762, src/app/main/data/dashboard.cljs:983 +#: src/app/main/data/dashboard.cljs, src/app/main/data/dashboard.cljs msgid "dashboard.copy-suffix" msgstr "(Kopie)" -#: src/app/main/ui/dashboard/sidebar.cljs:338 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.create-new-team" msgstr "Neues Team erstellen" -#: src/app/main/ui/components/context_menu_a11y.cljs:256, src/app/main/ui/dashboard/sidebar.cljs:646 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.default-team-name" msgstr "Ihr Penpot" -#: src/app/main/ui/dashboard/sidebar.cljs:571 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.delete-team" msgstr "Team löschen" -#: src/app/main/ui/dashboard/file_menu.cljs:296, src/app/main/ui/workspace/main_menu.cljs:589 msgid "dashboard.download-binary-file" msgstr "Penpot-Datei herunterladen (.penpot)" -#: src/app/main/ui/dashboard/file_menu.cljs:300, src/app/main/ui/workspace/main_menu.cljs:597 msgid "dashboard.download-standard-file" msgstr "Standarddatei herunterladen (.svg + .json)" -#: src/app/main/ui/dashboard/file_menu.cljs:276, src/app/main/ui/dashboard/project_menu.cljs:90 +#: src/app/main/ui/dashboard/project_menu.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.duplicate" msgstr "Duplizieren" -#: src/app/main/ui/dashboard/file_menu.cljs:240 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.duplicate-multi" msgstr "%s Dateien duplizieren" -#: src/app/main/ui/dashboard/placeholder.cljs:32 -#, markdown +#: src/app/main/ui/dashboard/grid.cljs +#, fuzzy msgid "dashboard.empty-placeholder-drafts" msgstr "" "Zu Bibliotheken hinzugefügte Dateien werden hier angezeigt. Versuchen Sie, " "Ihre Dateien zu teilen oder fügen Sie sie aus unseren [Bibliotheken & " "Vorlagen](https://penpot.app/libraries-Vorlagen.html) hinzu." -#: src/app/main/ui/dashboard/file_menu.cljs:249 msgid "dashboard.export-binary-multi" msgstr "%s Penpot-Dateien herunterladen (.penpot)" -#: src/app/main/ui/workspace/main_menu.cljs:605 msgid "dashboard.export-frames" msgstr "Zeichenflächen als PDF exportieren" -#: src/app/main/ui/export.cljs:201 +#: src/app/main/ui/export.cljs msgid "dashboard.export-frames.title" msgstr "Als PDF exportieren" -#, unused msgid "dashboard.export-multi" msgstr "%s Dateien exportieren" -#: src/app/main/ui/export.cljs:109 +#: src/app/main/ui/export.cljs msgid "dashboard.export-multiple.selected" msgstr "%s von %s Elementen ausgewählt" -#: src/app/main/ui/workspace/main_menu.cljs:578 +#: src/app/main/ui/workspace/header.cljs msgid "dashboard.export-shapes" msgstr "Exportieren" -#: src/app/main/ui/export.cljs:180 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.how-to" msgstr "" "Sie können den Elementen über die Designeigenschaften (unten in der rechten " "Seitenleiste) Exporteinstellungen hinzufügen." -#: src/app/main/ui/export.cljs:184 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.how-to-link" msgstr "Informationen zum Festlegen von Exporten bei Penpot." -#: src/app/main/ui/export.cljs:179 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.no-elements" msgstr "Es gibt keine Elemente mit Exporteinstellungen." -#: src/app/main/ui/export.cljs:190 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.title" msgstr "Auswahl exportieren" -#: src/app/main/ui/dashboard/file_menu.cljs:252 msgid "dashboard.export-standard-multi" msgstr "%s Standarddateien herunterladen (.svg + .json)" -#: src/app/main/ui/export.cljs:427 msgid "dashboard.export.detail" msgstr "* kann Komponenten, Grafiken, Farben und/oder Textstile enthalten." -#: src/app/main/ui/export.cljs:426 msgid "dashboard.export.explain" msgstr "" "Eine oder mehrere Dateien, die Sie exportieren möchten, verwenden geteilte " -"Bibliotheken. Was möchten Sie mit den Assets* aus diesen Bibliotheken " -"machen?" +"Bibliotheken. Was möchten Sie mit den Assets* aus diesen Bibliotheken machen?" -#: src/app/main/ui/export.cljs:435 msgid "dashboard.export.options.all.message" msgstr "" -"Dateien mit geteilten Bibliotheken werden exportiert, und ihre " -"Verknüpfungen bleiben erhalten." +"Dateien mit geteilten Bibliotheken werden exportiert, und ihre Verknüpfungen " +"bleiben erhalten." -#: src/app/main/ui/export.cljs:436 msgid "dashboard.export.options.all.title" msgstr "Geteilte Bibliotheken exportieren" -#: src/app/main/ui/export.cljs:437 msgid "dashboard.export.options.detach.message" msgstr "" "Geteilte Bibliotheken werden nicht exportiert und der Bibliothek werden " "keine Assets hinzugefügt. " -#: src/app/main/ui/export.cljs:438 msgid "dashboard.export.options.detach.title" msgstr "Assets aus geteilten Bibliotheken als gewöhnliche Objekte behandeln" -#: src/app/main/ui/export.cljs:439 msgid "dashboard.export.options.merge.message" msgstr "" "Ihre Datei wird exportiert, und alle externen Assets werden der " "Dateibibliothek hinzugefügt." -#: src/app/main/ui/export.cljs:440 msgid "dashboard.export.options.merge.title" msgstr "Assets aus geteilten Bibliotheken in die Dateibibliothek aufnehmen" -#: src/app/main/ui/export.cljs:418 msgid "dashboard.export.title" msgstr "Dateien exportieren" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:309 msgid "dashboard.fonts.deleted-placeholder" msgstr "Schriftart gelöscht" -#: src/app/main/ui/dashboard/fonts.cljs:206 +#: src/app/main/ui/dashboard/fonts.cljs msgid "dashboard.fonts.dismiss-all" msgstr "Alle ablehnen" -#: src/app/main/ui/dashboard/fonts.cljs:436 msgid "dashboard.fonts.empty-placeholder" msgstr "" "Die von Ihnen hochgeladenen benutzerdefinierten Schriftarten werden hier " "angezeigt." -#: src/app/main/ui/dashboard/fonts.cljs:194 +#: src/app/main/ui/dashboard/fonts.cljs msgid "dashboard.fonts.fonts-added" msgid_plural "dashboard.fonts.fonts-added" msgstr[0] "1 Schriftart hinzugefügt" msgstr[1] "%s Schriftarten hinzugefügt" -#: src/app/main/ui/dashboard/fonts.cljs:170 -#, markdown msgid "dashboard.fonts.hero-text1" msgstr "" "Jede Webschriftart, die Sie hier hochladen, wird der Liste der Schriftarten " -"hinzugefügt, die in den Texteigenschaften der Dateien dieses Teams " -"verfügbar ist. Schriftarten mit dem gleichen Schriftfamilien-Namen werden " -"als **eine einzige Schriftfamilie** gruppiert. Sie können Schriftarten in " -"den folgenden Formaten hochladen: **TTF, OTF und WOFF** (nur eine wird " -"benötigt)." +"hinzugefügt, die in den Texteigenschaften der Dateien dieses Teams verfügbar " +"ist. Schriftarten mit dem gleichen Schriftfamilien-Namen werden als **eine " +"einzige Schriftfamilie** gruppiert. Sie können Schriftarten in den folgenden " +"Formaten hochladen: **TTF, OTF und WOFF** (nur eine wird benötigt)." -#: src/app/main/ui/dashboard/fonts.cljs:182 -#, markdown msgid "dashboard.fonts.hero-text2" msgstr "" "Sie sollten nur Schriftarten hochladen, die Sie besitzen oder für die Sie " "eine Lizenz zur Verwendung in Penpot verfügen. Weitere Informationen finden " -"Sie im Abschnitt über Inhaltsrechte in den [Nutzungsbedingungen von " -"Penpot](https://penpot.app/terms.html). Mehr über die [Lizenzierung von " +"Sie im Abschnitt über Inhaltsrechte in den [Nutzungsbedingungen von Penpot]" +"(https://penpot.app/terms.html). Mehr über die [Lizenzierung von " "Schriftarten erfahren Sie hier](https://www.typography.com/faq)." -#: src/app/main/ui/dashboard/fonts.cljs:202 +#: src/app/main/ui/dashboard/fonts.cljs msgid "dashboard.fonts.upload-all" msgstr "Alle hochladen" -#: src/app/main/ui/dashboard/fonts.cljs:187 -#, markdown msgid "dashboard.fonts.warning-text" msgstr "" -"Wir haben ein mögliches Problem in Ihren Schriften festgestellt, das mit " -"den vertikalen Metriken für verschiedene Betriebssysteme zusammenhängt. Um " -"dies zu überprüfen, können Sie Online-Dienste wie " -"[diesen](https://vertical-metrics.netlify.app/) verwenden. Außerdem " -"empfehlen wir die Verwendung von [Transfonter](https://transfonter.org/), " -"um Webfonts zu generieren und Fehler zu beheben. " +"Wir haben ein mögliches Problem in Ihren Schriften festgestellt, das mit den " +"vertikalen Metriken für verschiedene Betriebssysteme zusammenhängt. Um dies " +"zu überprüfen, können Sie Online-Dienste wie [diesen](https://vertical-" +"metrics.netlify.app/) verwenden. Außerdem empfehlen wir die Verwendung von " +"[Transfonter](https://transfonter.org/), um Webfonts zu generieren und " +"Fehler zu beheben. " -#: src/app/main/ui/dashboard/import.cljs:472, src/app/main/ui/dashboard/project_menu.cljs:108 msgid "dashboard.import" msgstr "Dateien importieren" -#: src/app/main/ui/dashboard/import.cljs:304, src/app/worker/import.cljs:753, src/app/worker/import.cljs:755 msgid "dashboard.import.analyze-error" msgstr "Huch! Wir konnten diese Datei nicht importieren" -#, unused msgid "dashboard.import.analyze-error.components-v2" msgstr "" "Datei mit Komponenten v2 aktiviert, aber dieses Team unterstützt es noch " "nicht." -#: src/app/main/ui/dashboard/import.cljs:308 msgid "dashboard.import.import-error" msgstr "" -"Beim Importieren der Datei ist ein Fehler aufgetreten. Die Datei wurde " -"nicht importiert." +"Beim Importieren der Datei ist ein Fehler aufgetreten. Die Datei wurde nicht " +"importiert." -#: src/app/main/ui/dashboard/import.cljs:493 msgid "dashboard.import.import-message" msgstr "%s Dateien wurden erfolgreich importiert." -#: src/app/main/ui/dashboard/import.cljs:481, src/app/main/ui/dashboard/import.cljs:488 msgid "dashboard.import.import-warning" msgstr "Einige Dateien enthielten ungültige Objekte, die entfernt wurden." -#: src/app/main/ui/dashboard/import.cljs:144 msgid "dashboard.import.progress.process-colors" msgstr "Farben werden verarbeitet" -#: src/app/main/ui/dashboard/import.cljs:153 msgid "dashboard.import.progress.process-components" msgstr "Komponenten werden verarbeitet" -#: src/app/main/ui/dashboard/import.cljs:150 msgid "dashboard.import.progress.process-media" msgstr "Medien werden verarbeitet" -#: src/app/main/ui/dashboard/import.cljs:141 msgid "dashboard.import.progress.process-page" msgstr "Seite %s wird verarbeitet" -#: src/app/main/ui/dashboard/import.cljs:147 msgid "dashboard.import.progress.process-typographies" msgstr "Textstile werden verarbeitet" -#: src/app/main/ui/dashboard/import.cljs:135 msgid "dashboard.import.progress.upload-data" msgstr "Daten werden hochgeladen (%s/%s)" -#: src/app/main/ui/dashboard/import.cljs:138 msgid "dashboard.import.progress.upload-media" msgstr "Datei %s wird hochgeladen" -#: src/app/main/ui/dashboard/team.cljs:109 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.invite-profile" msgstr "Personen einladen" -#: src/app/main/ui/dashboard/sidebar.cljs:547, src/app/main/ui/dashboard/sidebar.cljs:556, src/app/main/ui/dashboard/sidebar.cljs:563, src/app/main/ui/dashboard/team.cljs:312 +#: src/app/main/ui/dashboard/sidebar.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.leave-team" msgstr "Team verlassen" -#: src/app/main/ui/dashboard/templates.cljs:88, src/app/main/ui/dashboard/templates.cljs:163 msgid "dashboard.libraries-and-templates" msgstr "Bibliotheken & Vorlagen" -#: src/app/main/ui/dashboard/templates.cljs:164 msgid "dashboard.libraries-and-templates.explore" msgstr "Entdecken Sie weitere und erfahren Sie, wie Sie beitragen können" -#: src/app/main/ui/dashboard/import.cljs:365 msgid "dashboard.libraries-and-templates.import-error" msgstr "" "Beim Importieren der Vorlage ist ein Problem aufgetreten. Die Vorlage wurde " "nicht importiert." -#: src/app/main/ui/dashboard/libraries.cljs:53 +#: src/app/main/ui/dashboard/libraries.cljs msgid "dashboard.libraries-title" msgstr "Gemeinsam genutzte Bibliotheken" -#: src/app/main/ui/dashboard/placeholder.cljs:45 +#: src/app/main/ui/dashboard/grid.cljs msgid "dashboard.loading-files" msgstr "laden Ihrer Dateien …" -#: src/app/main/ui/dashboard/fonts.cljs:431 msgid "dashboard.loading-fonts" msgstr "laden Ihrer Schriftarten …" -#: src/app/main/ui/dashboard/file_menu.cljs:281, src/app/main/ui/dashboard/project_menu.cljs:100 +#: src/app/main/ui/dashboard/project_menu.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.move-to" msgstr "Verschieben nach" -#: src/app/main/ui/dashboard/file_menu.cljs:245 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.move-to-multi" msgstr "%s Dateien verschieben" -#: src/app/main/ui/dashboard/file_menu.cljs:226 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.move-to-other-team" msgstr "Zu anderem Team verschieben" -#: src/app/main/ui/dashboard/files.cljs:105, src/app/main/ui/dashboard/projects.cljs:252, src/app/main/ui/dashboard/projects.cljs:253 +#: src/app/main/ui/dashboard/projects.cljs, +#: src/app/main/ui/dashboard/files.cljs msgid "dashboard.new-file" msgstr "+ Neue Datei" -#: src/app/main/data/dashboard.cljs:958, src/app/main/data/dashboard.cljs:1181 +#: src/app/main/data/dashboard.cljs msgid "dashboard.new-file-prefix" msgstr "Neue Datei" -#: src/app/main/ui/dashboard/projects.cljs:55 +#: src/app/main/ui/dashboard/projects.cljs msgid "dashboard.new-project" msgstr "+ Neues Projekt" -#: src/app/main/data/dashboard.cljs:726, src/app/main/data/dashboard.cljs:1184 +#: src/app/main/data/dashboard.cljs msgid "dashboard.new-project-prefix" msgstr "Neues Projekt" -#: src/app/main/ui/dashboard/search.cljs:60 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.no-matches-for" msgstr "Keine Übereinstimmungen für “%s“ gefunden" -#: src/app/main/ui/dashboard/sidebar.cljs:827 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.no-projects-placeholder" msgstr "Angeheftete Projekte werden hier angezeigt" -#: src/app/main/ui/auth/verify_token.cljs:33 +#: src/app/main/ui/auth/verify_token.cljs msgid "dashboard.notifications.email-changed-successfully" msgstr "Ihre E-Mail-Adresse wurde erfolgreich aktualisiert" -#: src/app/main/ui/auth/verify_token.cljs:27 +#: src/app/main/ui/auth/verify_token.cljs msgid "dashboard.notifications.email-verified-successfully" msgstr "Ihre E-Mail-Adresse wurde erfolgreich verifiziert" -#: src/app/main/ui/settings/password.cljs:37 +#: src/app/main/ui/settings/password.cljs msgid "dashboard.notifications.password-saved" msgstr "Passwort wurde erfolgreich gespeichert!" -#: src/app/main/ui/dashboard/team.cljs:1081 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.num-of-members" msgstr "%s Mitglieder" -#: src/app/main/ui/dashboard/file_menu.cljs:267 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.open-in-new-tab" msgstr "Datei in neuem Tab öffnen" -#: src/app/main/ui/dashboard/files.cljs:117, src/app/main/ui/dashboard/projects.cljs:260, src/app/main/ui/dashboard/projects.cljs:261 msgid "dashboard.options" msgstr "Optionen" -#: src/app/main/ui/settings/password.cljs:106, src/app/main/ui/settings/password.cljs:119 +#: src/app/main/ui/settings/password.cljs msgid "dashboard.password-change" msgstr "Passwort ändern" -#: src/app/main/ui/dashboard/pin_button.cljs:24, src/app/main/ui/dashboard/project_menu.cljs:95 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.pin-unpin" msgstr "Anheften/Lösen" -#: src/app/main/ui/dashboard/projects.cljs:51 +#: src/app/main/ui/dashboard/projects.cljs msgid "dashboard.projects-title" msgstr "Projekte" -#: src/app/main/ui/settings/profile.cljs:86 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.remove-account" msgstr "Möchten Sie Ihr Konto entfernen?" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.remove-shared" msgstr "Als gemeinsam genutzte Bibliothek entfernen" -#: src/app/main/ui/settings/profile.cljs:78 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.save-settings" msgstr "Einstellungen speichern" -#: src/app/main/ui/dashboard/sidebar.cljs:246, src/app/main/ui/dashboard/sidebar.cljs:247 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.search-placeholder" msgstr "Suchen…" -#: src/app/main/ui/dashboard/search.cljs:55 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.searching-for" msgstr "Suche nach “%s“…" -#: src/app/main/ui/settings/options.cljs:56 +#: src/app/main/ui/settings/options.cljs msgid "dashboard.select-ui-language" msgstr "Sprache der Benutzeroberfläche auswählen" -#: src/app/main/ui/settings/options.cljs:63 +#: src/app/main/ui/settings/options.cljs msgid "dashboard.select-ui-theme" msgstr "Theme auswählen" -#: src/app/main/ui/dashboard/projects.cljs:282 +#: src/app/main/ui/dashboard/grid.cljs msgid "dashboard.show-all-files" msgstr "Alle Dateien anzeigen" -#: src/app/main/ui/dashboard/file_menu.cljs:96 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-delete-file" msgid_plural "dashboard.success-delete-file" msgstr[0] "Ihre Datei wurde erfolgreich gelöscht" msgstr[1] "Ihre Dateien wurden erfolgreich gelöscht" -#: src/app/main/ui/dashboard/project_menu.cljs:59 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.success-delete-project" msgstr "Ihr Projekt wurde erfolgreich gelöscht" -#: src/app/main/ui/dashboard/file_menu.cljs:91 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-duplicate-file" msgid_plural "dashboard.success-delete-file" msgstr[0] "Ihre Datei wurde erfolgreich dupliziert" msgstr[1] "Ihre Dateien wurden erfolgreich dupliziert" -#: src/app/main/ui/dashboard/project_menu.cljs:33 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.success-duplicate-project" msgstr "Ihr Projekt wurde erfolgreich dupliziert" -#: src/app/main/ui/dashboard/file_menu.cljs:130, src/app/main/ui/dashboard/grid.cljs:558, src/app/main/ui/dashboard/sidebar.cljs:152 +#: src/app/main/ui/dashboard/grid.cljs, src/app/main/ui/dashboard/sidebar.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-move-file" msgstr "Ihre Datei wurde erfolgreich verschoben" -#: src/app/main/ui/dashboard/file_menu.cljs:129 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-move-files" msgstr "Ihre Dateien wurden erfolgreich verschoben" -#: src/app/main/ui/dashboard/project_menu.cljs:54 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.success-move-project" msgstr "Ihr Projekt wurde erfolgreich verschoben" -#: src/app/main/ui/dashboard/team.cljs:1052 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.team-info" msgstr "Teaminformationen" -#: src/app/main/ui/dashboard/team.cljs:1070 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.team-members" msgstr "Teammitglieder" -#: src/app/main/ui/dashboard/team.cljs:1085 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.team-projects" msgstr "Teamprojekte" -#: src/app/main/ui/settings/options.cljs:61 +#: src/app/main/ui/settings/options.cljs msgid "dashboard.theme-change" msgstr "UI-Theme" -#: src/app/main/ui/dashboard/search.cljs:42 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.title-search" msgstr "Suchergebnisse" -#: src/app/main/ui/dashboard/search.cljs:50 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.type-something" msgstr "Zum Suchen etwas eingeben" -#: src/app/main/ui/dashboard/file_menu.cljs:287, src/app/main/ui/workspace/main_menu.cljs:566 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.unpublish-shared" msgstr "Veröffentlichung der Bibliothek aufheben" -#: src/app/main/ui/settings/options.cljs:71 +#: src/app/main/ui/settings/profile.cljs, +#: src/app/main/ui/settings/password.cljs, +#: src/app/main/ui/settings/options.cljs msgid "dashboard.update-settings" msgstr "Einstellungen aktualisieren" -#: src/app/main/ui/dashboard/team.cljs:861 msgid "dashboard.webhooks.active" msgstr "Aktiv" -#: src/app/main/ui/dashboard/team.cljs:862 msgid "dashboard.webhooks.active.explain" -msgstr "Wenn dieser Hook ausgelöst wird, dann werden die Eventdetails übermittelt" +msgstr "" +"Wenn dieser Hook ausgelöst wird, dann werden die Eventdetails übermittelt" -#: src/app/main/ui/dashboard/team.cljs:852 msgid "dashboard.webhooks.content-type" msgstr "Inhaltstyp" -#: src/app/main/ui/dashboard/team.cljs:885 msgid "dashboard.webhooks.create" msgstr "Webhook erstellen" -#: src/app/main/ui/dashboard/team.cljs:775 msgid "dashboard.webhooks.create.success" msgstr "Webhook wurde erfolgreich erstellt." -#: src/app/main/ui/dashboard/team.cljs:882 msgid "dashboard.webhooks.description" msgstr "" "Webhooks ermöglichen es, andere Websites und Anwendungen automatisch über " "bestimmte Ereignisse bei Penpot zu informieren. Dies geschieht durch das " "Versenden einer POST-Anfrage an die von Ihnen festgelegten URLs." -#: src/app/main/ui/dashboard/team.cljs:1005 msgid "dashboard.webhooks.empty.add-one" msgstr "" "Um einen Webhook hinzuzufügen, drücken Sie auf die Schaltfläche \"Webhook " "hinzufügen\"." -#: src/app/main/ui/dashboard/team.cljs:1004 msgid "dashboard.webhooks.empty.no-webhooks" msgstr "Bisher wurden noch keine Webhooks erstellt." -#, unused msgid "dashboard.webhooks.update.success" msgstr "Webhook wurde erfolgreich aktualisiert." -#: src/app/main/ui/settings.cljs:31 +#: src/app/main/ui/settings.cljs msgid "dashboard.your-account-title" msgstr "Ihr Konto" -#: src/app/main/ui/settings/profile.cljs:70 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.your-email" msgstr "E-Mail" -#: src/app/main/ui/settings/profile.cljs:62 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.your-name" msgstr "Ihr Name" -#: src/app/main/ui/dashboard/file_menu.cljs:38, src/app/main/ui/dashboard/fonts.cljs:33, src/app/main/ui/dashboard/libraries.cljs:42, src/app/main/ui/dashboard/projects.cljs:318, src/app/main/ui/dashboard/search.cljs:30, src/app/main/ui/dashboard/sidebar.cljs:312, src/app/main/ui/dashboard/team.cljs:495, src/app/main/ui/dashboard/team.cljs:729, src/app/main/ui/dashboard/team.cljs:991, src/app/main/ui/dashboard/team.cljs:1038 +#: src/app/main/ui/dashboard/search.cljs, src/app/main/ui/dashboard/team.cljs, +#: src/app/main/ui/dashboard/libraries.cljs, +#: src/app/main/ui/dashboard/projects.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.your-penpot" msgstr "Ihr Penpot" -#: src/app/main/ui/alert.cljs:32 +#: src/app/main/ui/alert.cljs msgid "ds.alert-ok" msgstr "OK" -#: src/app/main/ui/alert.cljs:31, src/app/main/ui/alert.cljs:34 +#: src/app/main/ui/alert.cljs msgid "ds.alert-title" msgstr "Achtung" -#: src/app/main/ui/confirm.cljs:83 +#: src/app/main/ui/confirm.cljs msgid "ds.component-subtitle" msgstr "Zu aktualisierende Komponenten:" -#: src/app/main/ui/confirm.cljs:36, src/app/main/ui/workspace/plugins.cljs:246 +#: src/app/main/ui/confirm.cljs msgid "ds.confirm-cancel" msgstr "Abbrechen" -#: src/app/main/ui/confirm.cljs:37, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:141 +#: src/app/main/ui/confirm.cljs msgid "ds.confirm-ok" msgstr "Ok" -#: src/app/main/ui/confirm.cljs:35, src/app/main/ui/confirm.cljs:39 +#: src/app/main/ui/confirm.cljs, src/app/main/ui/confirm.cljs msgid "ds.confirm-title" msgstr "Sind Sie sicher?" -#: src/app/main/data/users.cljs:705 +#: src/app/main/data/users.cljs msgid "errors.auth-provider-not-allowed" msgstr "Auth-Provider für dieses Profil nicht erlaubt" -#: src/app/main/ui/auth/login.cljs:62 +#: src/app/main/ui/auth/login.cljs msgid "errors.auth-provider-not-configured" msgstr "Authentifizierungsanbieter ist nicht konfiguriert." -#: src/app/main/errors.cljs:104 msgid "errors.auth.unable-to-login" -msgstr "Anscheinend sind Sie nicht authentifiziert oder die Sitzung ist abgelaufen." +msgstr "" +"Anscheinend sind Sie nicht authentifiziert oder die Sitzung ist abgelaufen." -#: src/app/main/data/fonts.cljs:189 msgid "errors.bad-font" msgstr "Die Schriftart %s konnte nicht geladen werden" -#: src/app/main/data/fonts.cljs:188 msgid "errors.bad-font-plural" msgstr "Die Schriftarten %s konnten nicht geladen werden" -#: src/app/main/data/workspace/media.cljs:198 msgid "errors.cannot-upload" msgstr "Die Mediendatei kann nicht hochgeladen werden." -#: src/app/main/data/workspace.cljs:1598 +#: src/app/main/data/workspace.cljs msgid "errors.clipboard-not-implemented" msgstr "Ihr Browser kann diese Funktion nicht ausführen" -#: src/app/main/ui/auth/verify_token.cljs:82, src/app/main/ui/settings/change_email.cljs:46 +#: src/app/main/ui/auth/verify_token.cljs, +#: src/app/main/ui/settings/change_email.cljs msgid "errors.email-already-exists" msgstr "E-Mail-Adresse wird bereits verwendet" -#: src/app/main/ui/auth/verify_token.cljs:87 +#: src/app/main/ui/auth/verify_token.cljs msgid "errors.email-already-validated" msgstr "E-Mail-Adresse wurde bereits validiert." -#: src/app/main/ui/settings/password.cljs:28 msgid "errors.email-as-password" msgstr "Sie können Ihre E-Mail-Adresse nicht als Passwort verwenden" -#: src/app/main/data/users.cljs:707, src/app/main/ui/auth/register.cljs:63 +#: src/app/main/data/users.cljs msgid "errors.email-domain-not-allowed" msgstr "Domain nicht zulässig" -#: src/app/main/ui/auth/recovery_request.cljs:63, src/app/main/ui/dashboard/team.cljs:578, src/app/main/ui/settings/change_email.cljs:54 +#: src/app/main/ui/auth/register.cljs, +#: src/app/main/ui/auth/recovery_request.cljs, +#: src/app/main/ui/settings/change_email.cljs, +#: src/app/main/ui/dashboard/team.cljs msgid "errors.email-has-permanent-bounces" -msgstr "Die E-Mail-Adresse «%s» hat viele permanente Unzustellbarkeitsberichte." +msgstr "" +"Die E-Mail-Adresse «%s» hat viele permanente Unzustellbarkeitsberichte." -#: src/app/main/ui/auth/login.cljs:81, src/app/main/ui/auth/recovery_request.cljs:31, src/app/main/ui/auth/register.cljs:43 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs, +#: src/app/main/ui/auth/recovery_request.cljs msgid "errors.email-invalid" msgstr "Geben Sie bitte eine gültige E-Mail-Adresse ein" -#: src/app/main/ui/settings/change_email.cljs:35 +#: src/app/main/ui/settings/change_email.cljs msgid "errors.email-invalid-confirmation" msgstr "Bestätigungs-E-Mail muss übereinstimmen" -#: src/app/main/ui/dashboard/team.cljs:170 msgid "errors.email-spam-or-permanent-bounces" msgstr "Die E-Mail \"%s\" wurde als Spam oder dauerhaft abgelehnt gemeldet." -#: src/app/main/errors.cljs:227 +#: src/app/main/errors.cljs msgid "errors.feature-mismatch" msgstr "" "Es scheint als würden Sie eine Datei öffnen, bei der die Funktion '%s' " "aktiviert ist. Ihr aktuelle Version von Penpot unterstützt es aber nicht " "oder hat die Funktion deaktiviert." -#: src/app/main/errors.cljs:231, src/app/main/errors.cljs:245 +#: src/app/main/errors.cljs msgid "errors.feature-not-supported" msgstr "Die Funktion '%s' wird nicht unterstützt." -#: src/app/main/errors.cljs:223 +#: src/app/main/errors.cljs msgid "errors.file-feature-mismatch" msgstr "" -"Es scheint eine Nichtübereinstimmung zwischen den aktivierten Funktionen " -"und den Funktionen der Datei zu geben. Die Migrationen für '%s' müssen " +"Es scheint eine Nichtübereinstimmung zwischen den aktivierten Funktionen und " +"den Funktionen der Datei zu geben. Die Migrationen für '%s' müssen " "durchgeführt werden, bevor die Datei geöffnet werden kann." -#: src/app/main/data/users.cljs:709, src/app/main/ui/auth/login.cljs:65, src/app/main/ui/auth/login.cljs:116, src/app/main/ui/auth/register.cljs:69, src/app/main/ui/auth/register.cljs:237, src/app/main/ui/auth/verify_token.cljs:92, src/app/main/ui/dashboard/team.cljs:173, src/app/main/ui/onboarding/team_choice.cljs:95, src/app/main/ui/settings/access_tokens.cljs:91, src/app/main/ui/settings/feedback.cljs:52 +#: src/app/main/ui/auth/verify_token.cljs, +#: src/app/main/ui/settings/feedback.cljs, src/app/main/ui/dashboard/team.cljs msgid "errors.generic" msgstr "Etwas ist schief gelaufen." -#: src/app/main/ui/components/color_input.cljs:57 +#: src/app/main/ui/components/color_input.cljs msgid "errors.invalid-color" msgstr "Ungültige Farbe" -#: src/app/main/ui/static.cljs:43 +#: src/app/main/ui/auth/verify_token.cljs msgid "errors.invite-invalid" msgstr "Einladung ist ungültig" -#: src/app/main/ui/static.cljs:44 msgid "errors.invite-invalid.info" msgstr "Diese Einladung wurde möglicherweise abgebrochen oder ist abgelaufen." -#: src/app/main/ui/auth/login.cljs:101 +#: src/app/main/ui/auth/login.cljs msgid "errors.ldap-disabled" msgstr "Die LDAP-Authentifizierung ist deaktiviert." -#: src/app/main/errors.cljs:239 +#: src/app/main/errors.cljs msgid "errors.max-quote-reached" msgstr "Sie haben das Limit von '%s' erreicht. Kontaktieren Sie den Support." -#: src/app/main/data/workspace/media.cljs:184 +#: src/app/main/data/workspace/persistence.cljs msgid "errors.media-too-large" msgstr "Das Bild ist zu groß, um eingefügt zu werden." -#: src/app/main/data/media.cljs:68, src/app/main/data/workspace/media.cljs:187 +#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs msgid "errors.media-type-mismatch" msgstr "" -"Es scheint, dass der Bildinhalt nicht mit der Dateierweiterung " -"übereinstimmt." +"Es scheint, dass der Bildinhalt nicht mit der Dateierweiterung übereinstimmt." -#: src/app/main/data/media.cljs:65, src/app/main/data/workspace/media.cljs:172, src/app/main/data/workspace/media.cljs:175, src/app/main/data/workspace/media.cljs:178, src/app/main/data/workspace/media.cljs:181 +#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs msgid "errors.media-type-not-allowed" msgstr "Es scheint, dass dies kein gültiges Bild ist." -#: src/app/main/ui/dashboard/team.cljs:574 +#: src/app/main/ui/dashboard/team.cljs msgid "errors.member-is-muted" msgstr "" -"In dem von Ihnen eingeladenen Profil sind E-Mails stummgeschaltet " -"(Spam-Berichte oder hohe Unzustellbarkeitsberichte)." +"In dem von Ihnen eingeladenen Profil sind E-Mails stummgeschaltet (Spam-" +"Berichte oder hohe Unzustellbarkeitsberichte)." -#: src/app/main/ui/settings/password.cljs:61 +#: src/app/main/ui/settings/password.cljs msgid "errors.password-invalid-confirmation" msgstr "Bestätigungspasswort muss übereinstimmen" -#: src/app/main/ui/settings/password.cljs:64 +#: src/app/main/ui/settings/password.cljs msgid "errors.password-too-short" msgstr "Das Passwort sollte mindestens 8 Zeichen lang sein" -#: src/app/main/errors.cljs:124 msgid "errors.paste-data-validation" msgstr "Ungültige Daten in der Zwischenablage" -#: src/app/main/data/users.cljs:703, src/app/main/ui/auth/login.cljs:97, src/app/main/ui/auth/login.cljs:105 msgid "errors.profile-blocked" msgstr "Das Profil ist gesperrt" -#: src/app/main/ui/auth/recovery_request.cljs:60, src/app/main/ui/dashboard/team.cljs:164, src/app/main/ui/dashboard/team.cljs:570, src/app/main/ui/settings/change_email.cljs:50 +#: src/app/main/ui/auth/recovery_request.cljs, +#: src/app/main/ui/settings/change_email.cljs, +#: src/app/main/ui/dashboard/team.cljs msgid "errors.profile-is-muted" msgstr "" "Ihr Profil hat stummgeschaltete E-Mails (Spam-Berichte oder hohe " "Unzustellbarkeitsberichte)." -#: src/app/main/data/users.cljs:701, src/app/main/ui/auth/register.cljs:60 +#: src/app/main/ui/auth/register.cljs msgid "errors.registration-disabled" msgstr "Die Registrierung ist derzeit deaktiviert." -#: src/app/main/errors.cljs:218 +#: src/app/main/errors.cljs msgid "errors.team-feature-mismatch" msgstr "Inkompatible Funktion '%s' erkannt" -#: src/app/main/ui/dashboard/sidebar.cljs:365, src/app/main/ui/dashboard/team.cljs:359 msgid "errors.team-leave.insufficient-members" msgstr "" "Nicht genügend Mitglieder, um das Team zu verlassen, wahrscheinlich wollen " "Sie es löschen." -#: src/app/main/ui/dashboard/sidebar.cljs:368, src/app/main/ui/dashboard/team.cljs:362 msgid "errors.team-leave.member-does-not-exists" msgstr "Das Mitglied, das Sie zuzuordnen möchten, existiert nicht." -#: src/app/main/ui/dashboard/sidebar.cljs:371, src/app/main/ui/dashboard/team.cljs:365 msgid "errors.team-leave.owner-cant-leave" msgstr "" -"Der Besitzer kann das Team nicht verlassen, Sie müssen die Besitzerrolle " -"neu zuweisen." +"Der Besitzer kann das Team nicht verlassen, Sie müssen die Besitzerrolle neu " +"zuweisen." -#: src/app/main/data/media.cljs:71 +#: src/app/main/data/media.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, +#: src/app/main/ui/inspect/exports.cljs msgid "errors.unexpected-error" msgstr "Ein unerwarteter Fehler ist aufgetreten." -#: src/app/main/ui/auth/verify_token.cljs:60 +#: src/app/main/ui/auth/verify_token.cljs msgid "errors.unexpected-token" msgstr "Unbekannter Token" -#, unused msgid "errors.validation" msgstr "Validierungsfehler" -#: src/app/main/errors.cljs:235 +#: src/app/main/errors.cljs msgid "errors.version-not-supported" msgstr "Die Datei hat eine inkompatible Versionsnummer" -#: src/app/main/ui/dashboard/team.cljs:796 msgid "errors.webhooks.connection" msgstr "Verbindungsfehler, URL ist nicht erreichbar" -#: src/app/main/ui/dashboard/team.cljs:790 msgid "errors.webhooks.invalid-uri" msgstr "Die URL erfüllt nicht die Validierungskriterien." -#: src/app/main/ui/dashboard/team.cljs:949 msgid "errors.webhooks.last-delivery" msgstr "Die letzte Übertragung war nicht erfolgreich." -#: src/app/main/ui/dashboard/team.cljs:792, src/app/main/ui/dashboard/team.cljs:952 msgid "errors.webhooks.ssl-validation" msgstr "Fehler bei der SSL-Validierung." -#: src/app/main/ui/dashboard/team.cljs:794 msgid "errors.webhooks.timeout" msgstr "Zeitüberschreitung" -#: src/app/main/ui/dashboard/team.cljs:788 msgid "errors.webhooks.unexpected" msgstr "Unerwarteter Fehler bei der Validierung" -#: src/app/main/ui/dashboard/team.cljs:798, src/app/main/ui/dashboard/team.cljs:955 msgid "errors.webhooks.unexpected-status" msgstr "Unerwarteter Status %s" -#: src/app/main/ui/auth/login.cljs:109, src/app/main/ui/auth/login.cljs:113 +#: src/app/main/ui/auth/login.cljs msgid "errors.wrong-credentials" msgstr "Die E-Mail-Adresse oder das Passwort ist falsch." -#: src/app/main/ui/settings/password.cljs:25 +#: src/app/main/ui/settings/password.cljs msgid "errors.wrong-old-password" msgstr "Altes Passwort ist falsch" -#: src/app/main/ui/settings/feedback.cljs:77 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.description" msgstr "Beschreibung" -#: src/app/main/ui/settings/feedback.cljs:95 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.discourse-go-to" msgstr "Zum Penpot-Forum wechseln" -#: src/app/main/ui/settings/feedback.cljs:89 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.discourse-subtitle1" msgstr "" "Wir sind froh, dass Sie hier sind. Wenn Sie Hilfe benötigen, verwenden Sie " "die Suchfunktion, bevor Sie einen Beitrag schreiben." -#: src/app/main/ui/settings/feedback.cljs:88 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.discourse-title" msgstr "Penpot-Community" -#: src/app/main/ui/settings/feedback.cljs:72 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.subject" msgstr "Betreff" -#: src/app/main/ui/settings/feedback.cljs:69 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.subtitle" msgstr "" -"Bitte beschreiben Sie den Grund Ihrer E-Mail und geben Sie an, ob es sich " -"um ein Problem, eine Idee oder einem Bedenken handelt. Ein Mitglied unseres " +"Bitte beschreiben Sie den Grund Ihrer E-Mail und geben Sie an, ob es sich um " +"ein Problem, eine Idee oder einem Bedenken handelt. Ein Mitglied unseres " "Teams wird Ihnen so schnell wie möglich antworten." -#: src/app/main/ui/settings/feedback.cljs:68 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.title" msgstr "E-Mail" -#: src/app/main/ui/settings/feedback.cljs:105 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.twitter-go-to" msgstr "Zu X wechseln" -#: src/app/main/ui/settings/feedback.cljs:99 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.twitter-subtitle1" msgstr "Hier helfen wir Ihnen bei technischen Fragen." -#: src/app/main/ui/settings/feedback.cljs:98 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.twitter-title" msgstr "X Support-Konto" -#: src/app/main/ui/settings/password.cljs:30 +#: src/app/main/ui/settings/password.cljs msgid "generic.error" msgstr "Ein Fehler ist aufgetreten" -#: src/app/main/ui/viewer/inspect/attributes/blur.cljs:26 +#: src/app/main/ui/inspect/attributes/blur.cljs msgid "inspect.attributes.blur" msgstr "Weichzeichnen" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:115 +#: src/app/main/ui/inspect/attributes/blur.cljs msgid "inspect.attributes.blur.value" msgstr "Wert" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:112 +#: src/app/main/ui/inspect/attributes/common.cljs msgid "inspect.attributes.color.hex" msgstr "HEX" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:114 +#: src/app/main/ui/inspect/attributes/common.cljs msgid "inspect.attributes.color.hsla" msgstr "HSLA" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:113 +#: src/app/main/ui/inspect/attributes/common.cljs msgid "inspect.attributes.color.rgba" msgstr "RGBA" -#: src/app/main/ui/viewer/inspect/attributes/fill.cljs:57 +#: src/app/main/ui/inspect/attributes/fill.cljs msgid "inspect.attributes.fill" msgstr "Fläche" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:99, src/app/main/ui/viewer/inspect/attributes/image.cljs:51 +#: src/app/main/ui/inspect/attributes/image.cljs msgid "inspect.attributes.image.download" msgstr "Originalbild herunterladen" -#: src/app/main/ui/viewer/inspect/attributes/image.cljs:39 +#: src/app/main/ui/inspect/attributes/image.cljs msgid "inspect.attributes.image.height" msgstr "Höhe" -#: src/app/main/ui/viewer/inspect/attributes/image.cljs:32 +#: src/app/main/ui/inspect/attributes/image.cljs msgid "inspect.attributes.image.width" msgstr "Breite" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout" msgstr "Layout" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.height" msgstr "Höhe" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.left" msgstr "Links" -#: src/app/main/ui/inspect/attributes/layout.cljs, src/app/main/ui/inspect/attributes/layout.cljs -#, unused +#: src/app/main/ui/inspect/attributes/layout.cljs, +#: src/app/main/ui/inspect/attributes/layout.cljs msgid "inspect.attributes.layout.radius" msgstr "Radius" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.rotation" msgstr "Drehung" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.top" msgstr "Oben" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.width" msgstr "Breite" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:57 +#: src/app/main/ui/inspect/attributes/shadow.cljs msgid "inspect.attributes.shadow" msgstr "Schatten" -#: src/app/main/ui/viewer/inspect/attributes/geometry.cljs:40 +#: src/app/main/ui/inspect/attributes/layout.cljs msgid "inspect.attributes.size" msgstr "Größe und Position" -#: src/app/main/ui/viewer/inspect/attributes/stroke.cljs:52 +#: src/app/main/ui/inspect/attributes/stroke.cljs msgid "inspect.attributes.stroke" msgstr "Rahmen" -#, permanent, unused msgid "inspect.attributes.stroke.alignment.center" msgstr "Zentriert" -#, permanent, unused msgid "inspect.attributes.stroke.alignment.inner" msgstr "Innen" -#, permanent, unused msgid "inspect.attributes.stroke.alignment.outer" msgstr "Außen" -#, unused msgid "inspect.attributes.stroke.style.dotted" msgstr "Gepunktet" -#, unused msgid "inspect.attributes.stroke.style.mixed" msgstr "Mehrere" -#, unused msgid "inspect.attributes.stroke.style.none" msgstr "Keine" -#, unused msgid "inspect.attributes.stroke.style.solid" msgstr "Durchgezogen" #: src/app/main/ui/inspect/attributes/stroke.cljs -#, unused msgid "inspect.attributes.stroke.width" msgstr "Breite" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:81, src/app/main/ui/viewer/inspect/attributes/text.cljs:194 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography" msgstr "Typografie" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:89 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.font-family" msgstr "Schriftart" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:107 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.font-size" msgstr "Schriftgröße" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:98 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.font-style" msgstr "Schriftschnitt" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:116 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.font-weight" msgstr "Strichstärke" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:134 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.letter-spacing" msgstr "Zeichenabstand" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:125 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.line-height" msgstr "Zeilenabstand" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:143 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.text-decoration" msgstr "Textdekoration" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:145 msgid "inspect.attributes.typography.text-decoration.none" msgstr "Keine" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:146 msgid "inspect.attributes.typography.text-decoration.strikethrough" msgstr "Durchgestrichen" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:147 msgid "inspect.attributes.typography.text-decoration.underline" msgstr "Unterstrichen" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:156 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.text-transform" msgstr "Texttransformation" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:158 msgid "inspect.attributes.typography.text-transform.lowercase" msgstr "Kleinbuchstaben" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:159 msgid "inspect.attributes.typography.text-transform.none" msgstr "Keine" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:160 msgid "inspect.attributes.typography.text-transform.titlecase" msgstr "Kapitälchen" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:162 msgid "inspect.attributes.typography.text-transform.unset" msgstr "Nicht gesetzt" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:161 msgid "inspect.attributes.typography.text-transform.uppercase" msgstr "Großbuchstaben" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:140 msgid "inspect.empty.help" msgstr "" -"Für weitere Informationen zum Thema \"Auswerten von " -"Design-Spezifikationen\", besuchen Sie bitte das Penpot-Hilfezentrum" +"Für weitere Informationen zum Thema \"Auswerten von Design-" +"Spezifikationen\", besuchen Sie bitte das Penpot-Hilfezentrum" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:143 msgid "inspect.empty.more-info" msgstr "Weitere Informationen zur Inspektion" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:135 msgid "inspect.empty.select" msgstr "" -"Wählen Sie eine Form, ein Board oder eine Gruppe aus, um deren " -"Eigenschaften und Code zu überprüfen" +"Wählen Sie eine Form, ein Board oder eine Gruppe aus, um deren Eigenschaften " +"und Code zu überprüfen" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:125 +#: src/app/main/ui/inspect/right_sidebar.cljs msgid "inspect.tabs.code" msgstr "Code" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:98 msgid "inspect.tabs.code.selected.circle" msgstr "Kreis" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:99 msgid "inspect.tabs.code.selected.component" msgstr "Komponente" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:100 msgid "inspect.tabs.code.selected.curve" msgstr "Kurve" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:101 msgid "inspect.tabs.code.selected.frame" msgstr "Zeichenfläche" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:102 msgid "inspect.tabs.code.selected.group" msgstr "Gruppe" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:103 msgid "inspect.tabs.code.selected.image" msgstr "Bild" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:104 msgid "inspect.tabs.code.selected.mask" msgstr "Maske" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:93 +#: src/app/main/ui/inspect/right_sidebar.cljs msgid "inspect.tabs.code.selected.multiple" msgstr "%s Ausgewählt(e)" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:105 msgid "inspect.tabs.code.selected.path" msgstr "Pfad" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:106 msgid "inspect.tabs.code.selected.rect" msgstr "Rechteck" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:107 msgid "inspect.tabs.code.selected.svg-raw" msgstr "SVG" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:108 msgid "inspect.tabs.code.selected.text" msgstr "Text" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:115 +#: src/app/main/ui/inspect/right_sidebar.cljs msgid "inspect.tabs.info" msgstr "Info" -#: src/app/main/ui/workspace/main_menu.cljs:158 +#: src/app/main/ui/workspace/header.cljs msgid "label.shortcuts" msgstr "Tastaturkürzel" -#: src/app/main/ui/dashboard/import.cljs:527 msgid "labels.accept" msgstr "Akzeptieren" -#: src/app/main/ui/settings/sidebar.cljs:100 +#: src/app/main/ui/settings/sidebar.cljs msgid "labels.access-tokens" msgstr "Zugangstoken" -#: src/app/main/ui/dashboard/team.cljs:968 msgid "labels.active" msgstr "Aktiv" -#: src/app/main/ui/dashboard/fonts.cljs:175 msgid "labels.add-custom-font" msgstr "Eigene Schriftart hinzufügen" -#: src/app/main/ui/dashboard/team.cljs:120, src/app/main/ui/dashboard/team.cljs:276, src/app/main/ui/dashboard/team.cljs:519, src/app/main/ui/dashboard/team.cljs:549, src/app/main/ui/onboarding/team_choice.cljs:67 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs msgid "labels.admin" msgstr "Admin" -#: src/app/main/ui/onboarding/questions.cljs:174 -msgid "labels.adobe-xd" -msgstr "Adobe XD" - #: src/app/main/ui/workspace/comments.cljs -#, unused msgid "labels.all" msgstr "Alles" -#: src/app/main/ui/auth.cljs:37 msgid "labels.and" msgstr "und" -#: src/app/main/ui/onboarding/team_choice.cljs:162 msgid "labels.back" msgstr "Zurück" -#: src/app/main/ui/static.cljs:59 +#: src/app/main/ui/static.cljs msgid "labels.bad-gateway.desc-message" msgstr "" "Sie müssen ein wenig warten und es erneut versuchen. Wir führen eine kurze " "Wartung an unseren Servern durch." -#: src/app/main/ui/static.cljs:58 +#: src/app/main/ui/static.cljs msgid "labels.bad-gateway.main-message" msgstr "Bad Gateway" -#: src/app/main/data/common.cljs:112, src/app/main/ui/dashboard/change_owner.cljs:69, src/app/main/ui/dashboard/import.cljs:514, src/app/main/ui/dashboard/team.cljs:868, src/app/main/ui/delete_shared.cljs:35, src/app/main/ui/export.cljs:164, src/app/main/ui/export.cljs:460, src/app/main/ui/settings/access_tokens.cljs:188, src/app/main/ui/viewer/share_link.cljs:203, src/app/main/ui/workspace/sidebar/assets/groups.cljs:149 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.cancel" msgstr "Abbrechen" -#: src/app/main/ui/onboarding/questions.cljs:176 -msgid "labels.canva" -msgstr "Canva" - -#: src/app/main/ui/dashboard/projects.cljs:93, src/app/main/ui/export.cljs:478, src/app/main/ui/settings/access_tokens.cljs:183, src/app/main/ui/viewer/login.cljs:77, src/app/main/ui/viewer/share_link.cljs:174, src/app/main/ui/workspace/libraries.cljs:522 msgid "labels.close" msgstr "Schließen" -#: src/app/main/ui/dashboard/comments.cljs:104, src/app/main/ui/viewer/comments.cljs:70, src/app/main/ui/workspace/comments.cljs:126 +#: src/app/main/ui/dashboard/comments.cljs msgid "labels.comments" msgstr "Kommentare" -#: src/app/main/ui/dashboard/sidebar.cljs:985, src/app/main/ui/workspace/main_menu.cljs:110 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.community" msgstr "Community" -#: src/app/main/ui/settings/password.cljs:103 +#: src/app/main/ui/settings/password.cljs msgid "labels.confirm-password" msgstr "Passwort bestätigen" -#: src/app/main/ui/dashboard/import.cljs:520, src/app/main/ui/export.cljs:465, src/app/main/ui/onboarding/newsletter.cljs:101 msgid "labels.continue" msgstr "Weiter" -#, unused msgid "labels.continue-with" msgstr "Weiter mit" -#: src/app/main/ui/viewer/login.cljs:75 msgid "labels.continue-with-penpot" msgstr "Sie können mit einem Penpot-Konto fortfahren" -#: src/app/main/ui/dashboard/team.cljs:642 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.copy-invitation-link" msgstr "Link kopieren" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:157, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:190 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "labels.create" msgstr "Erstellen" -#: src/app/main/ui/dashboard/team_form.cljs:101, src/app/main/ui/dashboard/team_form.cljs:121 +#: src/app/main/ui/dashboard/team_form.cljs, +#: src/app/main/ui/dashboard/team_form.cljs msgid "labels.create-team" msgstr "Neues Team erstellen" -#: src/app/main/ui/dashboard/team_form.cljs:113 +#: src/app/main/ui/dashboard/team_form.cljs msgid "labels.create-team.placeholder" msgstr "Neuen Teamnamen eingeben" -#, unused msgid "labels.custom-fonts" msgstr "Eigene Schriftarten" -#: src/app/main/ui/settings/sidebar.cljs:73 +#: src/app/main/ui/settings/sidebar.cljs msgid "labels.dashboard" msgstr "Dashboard" -#: src/app/main/ui/dashboard/file_menu.cljs:306, src/app/main/ui/dashboard/fonts.cljs:255, src/app/main/ui/dashboard/fonts.cljs:332, src/app/main/ui/dashboard/fonts.cljs:346, src/app/main/ui/dashboard/project_menu.cljs:115, src/app/main/ui/dashboard/team.cljs:904, src/app/main/ui/settings/access_tokens.cljs:209, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:209 +#: src/app/main/ui/dashboard/project_menu.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.delete" msgstr "Löschen" -#: src/app/main/ui/comments.cljs:357 +#: src/app/main/ui/comments.cljs msgid "labels.delete-comment" msgstr "Kommentar löschen" -#: src/app/main/ui/comments.cljs:354 +#: src/app/main/ui/comments.cljs msgid "labels.delete-comment-thread" msgstr "Thread löschen" -#: src/app/main/ui/dashboard/team.cljs:648 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.delete-invitation" msgstr "Einladung löschen" -#: src/app/main/ui/dashboard/file_menu.cljs:262 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.delete-multi-files" msgstr "%s Dateien löschen" -#: src/app/main/ui/onboarding/questions.cljs:250 -msgid "labels.developer" -msgstr "Developer" - -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:199 msgid "labels.discard" msgstr "Verwerfen" -#: src/app/main/ui/dashboard/file_menu.cljs:28, src/app/main/ui/dashboard/files.cljs:72, src/app/main/ui/dashboard/files.cljs:156, src/app/main/ui/dashboard/projects.cljs:220, src/app/main/ui/dashboard/projects.cljs:224, src/app/main/ui/dashboard/sidebar.cljs:791 +#: src/app/main/ui/dashboard/projects.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs, +#: src/app/main/ui/dashboard/files.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.drafts" msgstr "Entwürfe" -#: src/app/main/ui/comments.cljs:350, src/app/main/ui/dashboard/fonts.cljs:252, src/app/main/ui/dashboard/team.cljs:902, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:205 +#: src/app/main/ui/comments.cljs msgid "labels.edit" msgstr "Bearbeiten" -#, unused msgid "labels.edit-file" msgstr "Datei bearbeiten" -#: src/app/main/ui/dashboard/team.cljs:118, src/app/main/ui/dashboard/team.cljs:279, src/app/main/ui/dashboard/team.cljs:520, src/app/main/ui/dashboard/team.cljs:553, src/app/main/ui/onboarding/team_choice.cljs:66 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs msgid "labels.editor" msgstr "Editor" -#: src/app/main/ui/dashboard/team.cljs:661 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.expired-invitation" msgstr "Abgelaufen" -#: src/app/main/ui/export.cljs:173 msgid "labels.export" msgstr "Exportieren" -#: src/app/main/ui/settings/feedback.cljs:51 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.feedback-disabled" msgstr "Feedback deaktiviert" -#: src/app/main/ui/settings/feedback.cljs:42 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.feedback-sent" msgstr "Feedback gesendet" -#: src/app/main/ui/onboarding/questions.cljs:170 -msgid "labels.figma" -msgstr "Figma" - -#: src/app/main/ui/dashboard/fonts.cljs:412 msgid "labels.font-family" msgstr "Schriftfamilie" -#, unused msgid "labels.font-providers" msgstr "Schriftenhersteller" -#: src/app/main/ui/dashboard/fonts.cljs:413 msgid "labels.font-variants" msgstr "Stile" -#: src/app/main/ui/dashboard/fonts.cljs:52, src/app/main/ui/dashboard/sidebar.cljs:811 msgid "labels.fonts" msgstr "Schriftarten" -#: src/app/main/ui/onboarding/questions.cljs:263 -msgid "labels.founder" -msgstr "Gründer/VP" - -#: src/app/main/ui/onboarding/questions.cljs:262 -msgid "labels.freelancer" -msgstr "Ich bin ein Freelancer" - -#: src/app/main/ui/dashboard/sidebar.cljs:1015, src/app/main/ui/workspace/main_menu.cljs:142 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.github-repo" msgstr "Github-Repository" -#: src/app/main/ui/dashboard/sidebar.cljs:1032, src/app/main/ui/settings/sidebar.cljs:113, src/app/main/ui/workspace/main_menu.cljs:171 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/settings/sidebar.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.give-feedback" msgstr "Feedback geben" -#: src/app/main/ui/auth/recovery_request.cljs:110, src/app/main/ui/auth/register.cljs:285, src/app/main/ui/viewer/login.cljs:117 msgid "labels.go-back" msgstr "Zurück" -#: src/app/main/ui/dashboard/sidebar.cljs:978, src/app/main/ui/workspace/main_menu.cljs:102 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.help-center" msgstr "Hilfezentrum" -#: src/app/main/ui/viewer/comments.cljs:103, src/app/main/ui/workspace/comments.cljs:67 +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs msgid "labels.hide-resolved-comments" msgstr "Erledigte Kommentare ausblenden" -#: src/app/main/ui/dashboard/team.cljs:969 msgid "labels.inactive" msgstr "Inaktiv" -#: src/app/main/ui/dashboard/fonts.cljs:410 msgid "labels.installed-fonts" msgstr "Installierte Schriftarten" -#: src/app/main/ui/static.cljs:144 +#: src/app/main/ui/static.cljs msgid "labels.internal-error.desc-message" msgstr "" "Etwas ist schiefgegangen. Bitte versuchen Sie den Vorgang erneut und wenn " "das Problem weiterhin besteht, kontaktieren Sie den Support." -#: src/app/main/ui/static.cljs:143 +#: src/app/main/ui/static.cljs msgid "labels.internal-error.main-message" msgstr "Interner Fehler" -#: src/app/main/ui/onboarding/questions.cljs:178 -msgid "labels.invision" -msgstr "InVision" - -#: src/app/main/ui/dashboard/sidebar.cljs:516, src/app/main/ui/dashboard/team.cljs:89, src/app/main/ui/dashboard/team.cljs:97, src/app/main/ui/dashboard/team.cljs:708 +#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.invitations" msgstr "Einladungen" -#: src/app/main/ui/settings/options.cljs:51 +#: src/app/main/ui/settings/options.cljs msgid "labels.language" msgstr "Sprache" -#: src/app/main/ui/dashboard/sidebar.cljs:1008, src/app/main/ui/workspace/main_menu.cljs:134 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.libraries-and-templates" msgstr "Bibliotheken & Vorlagen" -#: src/app/main/ui/viewer/header.cljs:203 msgid "labels.log-or-sign" msgstr "Einloggen oder anmelden" -#: src/app/main/ui/dashboard/sidebar.cljs:1040 +#: src/app/main/ui/settings.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.logout" msgstr "Abmelden" -#: src/app/main/ui/onboarding/questions.cljs:253 -msgid "labels.marketing" -msgstr "Marketing" - -#: src/app/main/ui/dashboard/team.cljs:468 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.member" msgstr "Mitglied" -#: src/app/main/ui/dashboard/sidebar.cljs:510, src/app/main/ui/dashboard/team.cljs:87, src/app/main/ui/dashboard/team.cljs:95 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.members" msgstr "Mitglieder" -#: src/app/main/ui/settings/password.cljs:96 +#: src/app/main/ui/settings/password.cljs msgid "labels.new-password" msgstr "Neues Passwort" -#: src/app/main/ui/dashboard/templates.cljs:269, src/app/main/ui/onboarding/questions.cljs:55 -msgid "labels.next" -msgstr "Weiter" - -#: src/app/main/ui/dashboard/comments.cljs:128, src/app/main/ui/workspace/comments.cljs:161 +#: src/app/main/ui/workspace/comments.cljs, +#: src/app/main/ui/dashboard/comments.cljs msgid "labels.no-comments-available" msgstr "" "Sie sind auf dem neuesten Stand! Neue Benachrichtigungen zu Kommentaren " "werden hier angezeigt." -#: src/app/main/ui/dashboard/team.cljs:694 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.no-invitations" msgstr "Keine ausstehenden Einladungen." -#: src/app/main/ui/dashboard/team.cljs:696 -#, markdown +#: src/app/main/ui/dashboard/team.cljs msgid "labels.no-invitations-hint" msgstr "" "Drücken Sie auf die Schaltfläche **Personen einladen**, um Personen zu " "diesem Team einzuladen." -#: src/app/main/ui/static.cljs:50 +#: src/app/main/ui/static.cljs msgid "labels.not-found.desc-message" msgstr "" "Möglicherweise existiert diese Seite nicht oder Sie haben keine " "Zugriffsrechte darauf." -#: src/app/main/ui/static.cljs:49 +#: src/app/main/ui/static.cljs msgid "labels.not-found.main-message" msgstr "Ups!" -#: src/app/main/ui/dashboard/projects.cljs:239, src/app/main/ui/dashboard/team.cljs:1095 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.num-of-files" msgid_plural "labels.num-of-files" msgstr[0] "1 Datei" msgstr[1] "%s Dateien" -#: src/app/main/ui/viewer/thumbnails.cljs:80 msgid "labels.num-of-frames" msgid_plural "labels.num-of-frames" msgstr[0] "1 Zeichenfläche" msgstr[1] "%s Zeichenflächen" -#: src/app/main/ui/dashboard/team.cljs:1090 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.num-of-projects" msgid_plural "labels.num-of-projects" msgstr[0] "1 Projekt" msgstr[1] "%s Projekte" -#: src/app/main/ui/settings/password.cljs:89 +#: src/app/main/ui/settings/password.cljs msgid "labels.old-password" msgstr "Altes Passwort" #: src/app/main/ui/workspace/comments.cljs -#, unused msgid "labels.only-yours" msgstr "Nur Ihre" -#, unused msgid "labels.or" msgstr "oder" -#: src/app/main/ui/onboarding/questions.cljs:145, src/app/main/ui/onboarding/questions.cljs:214, src/app/main/ui/onboarding/questions.cljs:303, src/app/main/ui/onboarding/questions.cljs:316, src/app/main/ui/onboarding/questions.cljs:389, src/app/main/ui/onboarding/questions.cljs:447 -msgid "labels.other" -msgstr "Sonstiges (bitte angeben)" - -#: src/app/main/ui/dashboard/team.cljs:286, src/app/main/ui/dashboard/team.cljs:518, src/app/main/ui/dashboard/team.cljs:1076 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs msgid "labels.owner" msgstr "Eigentümer" -#: src/app/main/ui/settings/sidebar.cljs:87 +#: src/app/main/ui/settings/sidebar.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.password" msgstr "Passwort" -#: src/app/main/ui/dashboard/team.cljs:662 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.pending-invitation" msgstr "Ausstehend" -#: src/app/main/ui/onboarding/questions.cljs:51 -msgid "labels.previous" -msgstr "Zurück" - -#: src/app/main/ui/onboarding/questions.cljs:254 -msgid "labels.product-management" -msgstr "Produkt- oder Projektmanager" - -#: src/app/main/ui/settings/profile.cljs:118, src/app/main/ui/settings/sidebar.cljs:82 +#: src/app/main/ui/settings/sidebar.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.profile" msgstr "Profil" -#: src/app/main/ui/dashboard/sidebar.cljs:784 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.projects" msgstr "Projekte" -#: src/app/main/ui/dashboard/sidebar.cljs:998, src/app/main/ui/settings/sidebar.cljs:106, src/app/main/ui/workspace/main_menu.cljs:126 +#: src/app/main/ui/settings/sidebar.cljs msgid "labels.release-notes" msgstr "Versionshinweise" #: src/app/main/ui/workspace.cljs -#, unused msgid "labels.reload-file" msgstr "Datei neu laden" -#: src/app/main/ui/workspace/libraries.cljs, src/app/main/ui/dashboard/team.cljs -#, unused +#: src/app/main/ui/workspace/libraries.cljs, +#: src/app/main/ui/dashboard/team.cljs msgid "labels.remove" msgstr "Entfernen" -#: src/app/main/ui/dashboard/team.cljs:316 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.remove-member" msgstr "Mitglied entfernen" -#: src/app/main/ui/dashboard/file_menu.cljs:271, src/app/main/ui/dashboard/project_menu.cljs:85, src/app/main/ui/dashboard/sidebar.cljs:539, src/app/main/ui/workspace/sidebar/assets/groups.cljs:157 +#: src/app/main/ui/dashboard/sidebar.cljs, +#: src/app/main/ui/dashboard/project_menu.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.rename" msgstr "Umbenennen" -#: src/app/main/ui/dashboard/team_form.cljs:99 +#: src/app/main/ui/dashboard/team_form.cljs msgid "labels.rename-team" msgstr "Team umbenennen" -#: src/app/main/ui/dashboard/team.cljs:645 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.resend-invitation" msgstr "Einladung erneut senden" -#: src/app/main/ui/static.cljs:61, src/app/main/ui/static.cljs:70, src/app/main/ui/static.cljs:148 +#: src/app/main/ui/static.cljs, src/app/main/ui/static.cljs msgid "labels.retry" msgstr "Wiederholen" -#: src/app/main/ui/dashboard/team.cljs:469, src/app/main/ui/dashboard/team.cljs:709 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.role" msgstr "Rolle" -#: src/app/main/ui/dashboard/fonts.cljs:380, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:191 msgid "labels.save" msgstr "Speichern" -#: src/app/main/ui/onboarding/questions.cljs:414, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:436 msgid "labels.search" msgstr "Suchen" -#: src/app/main/ui/dashboard/fonts.cljs:415 msgid "labels.search-font" msgstr "Schriftart suchen" -#: src/app/main/ui/onboarding/questions.cljs:90, src/app/main/ui/onboarding/questions.cljs:248, src/app/main/ui/onboarding/questions.cljs:259, src/app/main/ui/onboarding/questions.cljs:270 -msgid "labels.select-option" -msgstr "Wählen Sie eine Option" - -#: src/app/main/ui/settings/feedback.cljs:82 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.send" msgstr "Senden" -#: src/app/main/ui/settings/feedback.cljs:82 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.sending" msgstr "Senden…" -#: src/app/main/ui/static.cljs:68 +#: src/app/main/ui/static.cljs msgid "labels.service-unavailable.desc-message" msgstr "Wir befinden uns in der planmäßigen Wartung unserer Systeme." -#: src/app/main/ui/static.cljs:67 +#: src/app/main/ui/static.cljs msgid "labels.service-unavailable.main-message" msgstr "Service nicht verfügbar" -#: src/app/main/ui/dashboard/sidebar.cljs:530, src/app/main/ui/dashboard/team.cljs:88, src/app/main/ui/dashboard/team.cljs:102, src/app/main/ui/settings/options.cljs:84, src/app/main/ui/settings/sidebar.cljs:93 +#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.settings" msgstr "Einstellungen" -#: src/app/main/ui/viewer/header.cljs:199 msgid "labels.share" msgstr "Teilen" -#, unused +#: src/app/main/ui/viewer/header.cljs, src/app/main/ui/viewer/header.cljs msgid "labels.share-prototype" msgstr "Prototyp teilen" -#: src/app/main/ui/dashboard/sidebar.cljs:800 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.shared-libraries" msgstr "Gemeinsam genutzte Bibliotheken" -#: src/app/main/ui/viewer/comments.cljs:82, src/app/main/ui/workspace/comments.cljs:55, src/app/main/ui/workspace/comments.cljs:135 +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs msgid "labels.show-all-comments" msgstr "Alle Kommentare anzeigen" -#: src/app/main/ui/viewer/comments.cljs:115 msgid "labels.show-comments-list" msgstr "Kommentarliste anzeigen" -#: src/app/main/ui/viewer/comments.cljs:91, src/app/main/ui/workspace/comments.cljs:61, src/app/main/ui/workspace/comments.cljs:136 +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs msgid "labels.show-your-comments" msgstr "Nur eigene Kommentare anzeigen" -#: src/app/main/ui/onboarding/questions.cljs:172 -msgid "labels.sketch" -msgstr "Sketch" - -#: src/app/main/ui/onboarding/questions.cljs:56 -msgid "labels.start" -msgstr "Start" - -#: src/app/main/ui/dashboard/team.cljs:710 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.status" msgstr "Status" -#: src/app/main/ui/onboarding/questions.cljs:251 -msgid "labels.student-teacher" -msgstr "Schüler oder Lehrer" - -#: src/app/main/ui/dashboard/sidebar.cljs:992, src/app/main/ui/workspace/main_menu.cljs:118 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.tutorials" msgstr "Tutorials" -#: src/app/main/ui/dashboard/file_menu.cljs:256 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.unpublish-multi-files" msgstr "Veröffentlichung von %s-Dateien aufheben" -#: src/app/main/ui/settings/profile.cljs:103 +#: src/app/main/ui/settings/profile.cljs msgid "labels.update" msgstr "Aktualisieren" -#: src/app/main/ui/dashboard/team_form.cljs:120 +#: src/app/main/ui/dashboard/team_form.cljs msgid "labels.update-team" msgstr "Team aktualisieren" -#: src/app/main/ui/dashboard/fonts.cljs:241 msgid "labels.upload" msgstr "Hochladen" -#: src/app/main/ui/dashboard/fonts.cljs:169 msgid "labels.upload-custom-fonts" msgstr "Eigene Schriftarten hochladen" -#: src/app/main/ui/dashboard/fonts.cljs:240 msgid "labels.uploading" msgstr "Hochladen…" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs:223 msgid "labels.view-only" msgstr "Nur ansehen" -#: src/app/main/ui/dashboard/team.cljs:123, src/app/main/ui/dashboard/team.cljs:282, src/app/main/ui/dashboard/team.cljs:521 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.viewer" msgstr "Zuschauer" -#: src/app/main/ui/dashboard/sidebar.cljs:523, src/app/main/ui/dashboard/team.cljs:90, src/app/main/ui/dashboard/team.cljs:100, src/app/main/ui/dashboard/team.cljs:880 msgid "labels.webhooks" msgstr "Webhooks" -#: src/app/main/ui/comments.cljs:194 +#: src/app/main/ui/comments.cljs msgid "labels.write-new-comment" msgstr "Neuen Kommentar schreiben" -#: src/app/main/ui/dashboard/team.cljs:237 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.you" msgstr "(Sie)" -#: src/app/main/ui/dashboard/sidebar.cljs:968 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.your-account" msgstr "Ihr Konto" -#: src/app/main/ui/workspace/colorpicker.cljs:297, src/app/main/ui/workspace/colorpicker.cljs:298, src/app/main/ui/workspace/colorpicker.cljs:300 msgid "media.choose-image" msgstr "Bild auswählen" -#, unused msgid "media.gradient" msgstr "Verlauf" -#: src/app/main/data/workspace/media.cljs:275, src/app/main/ui/components/color_bullet.cljs:32, src/app/main/ui/components/color_bullet.cljs:45, src/app/main/ui/viewer/inspect/attributes/common.cljs:66, src/app/main/ui/workspace/colorpicker.cljs:211, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:237 msgid "media.image" msgstr "Bild" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:77 msgid "media.image.short" msgstr "img" -#: src/app/main/ui/workspace/colorpicker.cljs:290 msgid "media.keep-aspect-ratio" msgstr "Seitenverhältnis beibehalten" -#: src/app/main/ui/workspace/colorpicker.cljs:208 msgid "media.linear" msgstr "Linear" -#: src/app/main/data/media.cljs:49, src/app/main/data/workspace/media.cljs:223, src/app/main/data/workspace/media.cljs:453 +#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs msgid "media.loading" msgstr "Bild laden…" -#: src/app/main/ui/workspace/colorpicker.cljs:209 msgid "media.radial" msgstr "Radial" -#: src/app/main/ui/workspace/colorpicker.cljs:206 msgid "media.solid" msgstr "Einfarbig" -#: src/app/main/data/common.cljs:111 msgid "modals.add-shared-confirm-empty.hint" msgstr "" "Ihre Bibliothek ist leer. Sobald es als Geteilte Bibliothek hinzugefügt " "wurde, können die von Ihnen erstellten Assets in den übrigen Dateien " "verwendet werden. Sind Sie sicher, dass Sie es veröffentlichen möchten?" -#: src/app/main/data/common.cljs:113 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.add-shared-confirm.accept" msgstr "Hinzufügen als gemeinsam genutzte Bibliothek" -#: src/app/main/data/common.cljs:111 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.add-shared-confirm.hint" msgstr "" "Sobald diese Datei als geteilte Bibliothek verwendet wird, können Sie die " "Assets dieser Dateibibliothek in anderen Dateien verwenden." -#: src/app/main/data/common.cljs:110 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.add-shared-confirm.message" msgstr "Hinzufügen von “%s” als gemeinsam genutzte Bibliothek" -#: src/app/main/ui/workspace/nudge.cljs:60 +#: src/app/main/ui/workspace/nudge.cljs msgid "modals.big-nudge" msgstr "Maximal" -#: src/app/main/ui/settings/change_email.cljs:127 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.confirm-email" msgstr "Neue E-Mail-Adresse verifizieren" -#: src/app/main/ui/settings/change_email.cljs:114 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.info" msgstr "" "Wir senden Ihnen eine Nachricht an Ihre aktuelle E-Mail-Adresse “%s”, um " "Ihre Identität zu überprüfen." -#: src/app/main/ui/settings/change_email.cljs:119 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.new-email" msgstr "Neue E-Mail-Adresse" -#: src/app/main/ui/settings/change_email.cljs:136 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.submit" msgstr "E-Mail-Adresse ändern" -#: src/app/main/ui/settings/change_email.cljs:107 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.title" msgstr "Ihre E-Mail-Adresse ändern" -#: src/app/main/ui/settings/access_tokens.cljs:165, src/app/main/ui/settings/access_tokens.cljs:171 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.create-access-token.copy-token" msgstr "Token kopieren" -#: src/app/main/ui/settings/access_tokens.cljs:142 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.create-access-token.expiration-date.label" msgstr "Ablaufdatum" -#: src/app/main/ui/settings/access_tokens.cljs:136 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.create-access-token.name.label" msgstr "Name" -#: src/app/main/ui/settings/access_tokens.cljs:138 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.create-access-token.name.placeholder" msgstr "Durch den Namen kann man erkennen, wofür der Token verwendet wird" -#: src/app/main/ui/settings/access_tokens.cljs:191 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.create-access-token.submit-label" msgstr "Token erzeugen" -#: src/app/main/ui/settings/access_tokens.cljs:123 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.create-access-token.title" msgstr "Zugangstoken generieren" -#: src/app/main/ui/dashboard/team.cljs:873 msgid "modals.create-webhook.submit-label" msgstr "Webhook erstellen" -#: src/app/main/ui/dashboard/team.cljs:838 msgid "modals.create-webhook.title" msgstr "Webhook erstellen" -#: src/app/main/ui/dashboard/team.cljs:849 msgid "modals.create-webhook.url.label" msgstr "Payload-URL" -#: src/app/main/ui/dashboard/team.cljs:850 msgid "modals.create-webhook.url.placeholder" msgstr "https://example.com/postreceive" -#: src/app/main/ui/settings/access_tokens.cljs:271 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.delete-acces-token.accept" msgstr "Token löschen" -#: src/app/main/ui/settings/access_tokens.cljs:270 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.delete-acces-token.message" msgstr "Sind Sie sicher, dass Sie diesen Token löschen möchten?" -#: src/app/main/ui/settings/access_tokens.cljs:269 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.delete-acces-token.title" msgstr "Token löschen" -#: src/app/main/ui/settings/delete_account.cljs:59 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.cancel" msgstr "Abbrechen und mein Konto behalten" -#: src/app/main/ui/settings/delete_account.cljs:64 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.confirm" msgstr "Ja, mein Konto löschen" -#: src/app/main/ui/settings/delete_account.cljs:53 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.info" msgstr "" "Wenn Sie Ihr Konto löschen, verlieren Sie alle Ihre aktuellen Projekte und " "Archive." -#: src/app/main/ui/settings/delete_account.cljs:46 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.title" msgstr "Sind Sie sicher, dass Sie Ihr Konto löschen möchten?" -#: src/app/main/ui/comments.cljs:298 +#: src/app/main/ui/comments.cljs msgid "modals.delete-comment-thread.accept" msgstr "Konversation löschen" -#: src/app/main/ui/comments.cljs:297 +#: src/app/main/ui/comments.cljs msgid "modals.delete-comment-thread.message" msgstr "" "Sind Sie sicher, dass Sie diese Konversation löschen möchten? Alle " "Kommentare in diesem Thread werden gelöscht." -#: src/app/main/ui/comments.cljs:296 +#: src/app/main/ui/comments.cljs msgid "modals.delete-comment-thread.title" msgstr "Konversation löschen" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:140 msgid "modals.delete-component-annotation.message" msgstr "Sind Sie sicher, dass Sie diese Anmerkung löschen möchten?" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:139 msgid "modals.delete-component-annotation.title" msgstr "Anmerkung löschen" -#: src/app/main/ui/dashboard/file_menu.cljs:123 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-confirm.accept" msgstr "Datei löschen" -#: src/app/main/ui/dashboard/file_menu.cljs:122 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-confirm.message" msgstr "Sind Sie sicher, dass Sie diese Datei löschen wollen?" -#: src/app/main/ui/dashboard/file_menu.cljs:121 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-confirm.title" msgstr "Datei löschen" -#: src/app/main/ui/dashboard/file_menu.cljs:117 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-multi-confirm.accept" msgstr "Dateien löschen" -#: src/app/main/ui/dashboard/file_menu.cljs:116 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-multi-confirm.message" msgstr "Sind Sie sicher, dass Sie %s Dateien löschen möchten?" -#: src/app/main/ui/dashboard/file_menu.cljs:115 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-multi-confirm.title" msgstr "Lösche %s Dateien" -#: src/app/main/ui/dashboard/fonts.cljs:345 msgid "modals.delete-font-variant.message" msgstr "" "Sind Sie sicher, dass Sie diesen Schriftschnitt löschen möchten? Sie wird " "nicht mehr geladen, wenn sie bereits in einer Datei verwendet wird." -#: src/app/main/ui/dashboard/fonts.cljs:344 msgid "modals.delete-font-variant.title" msgstr "Schriftschnitt löschen" -#: src/app/main/ui/dashboard/fonts.cljs:331 msgid "modals.delete-font.message" msgstr "" "Sind Sie sicher, dass Sie diese Schriftart löschen möchten? Sie wird nicht " "mehr geladen, wenn sie bereits in einer Datei verwendet wird." -#: src/app/main/ui/dashboard/fonts.cljs:330 msgid "modals.delete-font.title" msgstr "Schriftart löschen" -#: src/app/main/ui/workspace/context_menu.cljs:522, src/app/main/ui/workspace/sidebar/sitemap.cljs:45 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs msgid "modals.delete-page.body" msgstr "Sind Sie sicher, dass Sie diese Seite löschen wollen?" -#: src/app/main/ui/workspace/context_menu.cljs:521, src/app/main/ui/workspace/sidebar/sitemap.cljs:44 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs msgid "modals.delete-page.title" msgstr "Seite löschen" -#: src/app/main/ui/dashboard/project_menu.cljs:69 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "modals.delete-project-confirm.accept" msgstr "Projekt löschen" -#: src/app/main/ui/dashboard/project_menu.cljs:68 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "modals.delete-project-confirm.message" msgstr "Sind Sie sicher, dass Sie dieses Projekt löschen möchten?" -#: src/app/main/ui/dashboard/project_menu.cljs:67 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "modals.delete-project-confirm.title" msgstr "Projekt löschen" -#: src/app/main/ui/delete_shared.cljs:51 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.accept" msgid_plural "modals.delete-shared-confirm.accept" msgstr[0] "Datei löschen" msgstr[1] "Dateien löschen" -#: src/app/main/ui/delete_shared.cljs:55 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.activated.no-files-message" msgid_plural "modals.delete-shared-confirm.activated.no-files-message" msgstr[0] "Es ist in keiner Datei aktiviert." msgstr[1] "Sie sind in keiner Datei aktiviert." -#: src/app/main/ui/delete_shared.cljs:57 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.activated.scd-message" msgid_plural "modals.delete-shared-confirm.activated.scd-message" msgstr[0] "Diese Bibliothek ist hier aktiviert: " msgstr[1] "Diese Bibliotheken sind hier aktiviert: " -#: src/app/main/ui/delete_shared.cljs:46 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.message" msgid_plural "modals.delete-shared-confirm.message" msgstr[0] "Möchten Sie diese Datei wirklich löschen?" msgstr[1] "Möchten Sie diese Dateien wirklich löschen?" -#: src/app/main/ui/delete_shared.cljs:41 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.title" msgid_plural "modals.delete-shared-confirm.title" msgstr[0] "Datei löschen" msgstr[1] "Dateien löschen" -#: src/app/main/ui/dashboard/sidebar.cljs:435 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.delete-team-confirm.accept" msgstr "Team löschen" -#: src/app/main/ui/dashboard/sidebar.cljs:434 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.delete-team-confirm.message" msgstr "" "Sind Sie sicher, dass Sie dieses Team löschen möchten? Alle Projekte und " "Dateien, die mit dem Team verbunden sind, werden dauerhaft gelöscht." -#: src/app/main/ui/dashboard/sidebar.cljs:433 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.delete-team-confirm.title" msgstr "Team löschen" -#: src/app/main/ui/dashboard/team.cljs:427 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.delete-team-member-confirm.accept" msgstr "Mitglied löschen" -#: src/app/main/ui/dashboard/team.cljs:426 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.delete-team-member-confirm.message" -msgstr "Sind Sie sicher, dass Sie dieses Mitglied aus dem Team löschen möchten?" +msgstr "" +"Sind Sie sicher, dass Sie dieses Mitglied aus dem Team löschen möchten?" -#: src/app/main/ui/dashboard/team.cljs:425 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.delete-team-member-confirm.title" msgstr "Teammitglied löschen" -#: src/app/main/ui/delete_shared.cljs:59 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-unpublish-shared-confirm.activated.hint" msgid_plural "modals.delete-unpublish-shared-confirm.activated.hint" msgstr[0] "" @@ -2289,3520 +2096,3208 @@ msgstr[1] "" "Assets, die bereits in diesen Dateien verwendet wurden, bleiben dort " "erhalten (das Design bleibt erhalten)." -#: src/app/main/ui/dashboard/team.cljs:942 msgid "modals.delete-webhook.accept" msgstr "Webhook löschen" -#: src/app/main/ui/dashboard/team.cljs:941 msgid "modals.delete-webhook.message" msgstr "Möchten Sie diesen Webhook wirklich löschen?" -#: src/app/main/ui/dashboard/team.cljs:940 msgid "modals.delete-webhook.title" msgstr "Webhook löschen" -#: src/app/main/ui/dashboard/team.cljs:872 msgid "modals.edit-webhook.submit-label" msgstr "Webhook bearbeiten" -#: src/app/main/ui/dashboard/team.cljs:837 msgid "modals.edit-webhook.title" msgstr "Webhook bearbeiten" -#: src/app/main/ui/dashboard/team.cljs:218 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.invite-member-confirm.accept" msgstr "Einladung senden" -#: src/app/main/ui/dashboard/team.cljs:213, src/app/main/ui/onboarding/team_choice.cljs:156 msgid "modals.invite-member.emails" msgstr "E-Mails, durch Komma getrennt" -#: src/app/main/ui/dashboard/team.cljs:197 msgid "modals.invite-member.repeated-invitation" msgstr "" "Einige E-Mails stammen von aktuellen Teammitgliedern. Ihre Einladungen " "werden nicht versendet." -#: src/app/main/ui/dashboard/team.cljs:190 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.invite-team-member.title" msgstr "Mitglieder in das Team einladen" -#: src/app/main/ui/dashboard/sidebar.cljs:423, src/app/main/ui/dashboard/team.cljs:393 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-close-confirm.hint" msgstr "" "Da Sie das einzige Mitglied dieses Teams sind, wird das Team zusammen mit " "seinen Projekten und Dateien gelöscht." -#: src/app/main/ui/dashboard/sidebar.cljs:422, src/app/main/ui/dashboard/team.cljs:392 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-close-confirm.message" msgstr "Sind Sie sicher, dass Sie das %s-Team verlassen wollen?" -#: src/app/main/ui/dashboard/change_owner.cljs:59 msgid "modals.leave-and-reassign.forbidden" msgstr "" -"Sie können das Team nicht verlassen, wenn es kein anderes Mitglied gibt, " -"das Sie zum Besitzer ernennen können. Sie können das Team jedoch löschen." +"Sie können das Team nicht verlassen, wenn es kein anderes Mitglied gibt, das " +"Sie zum Besitzer ernennen können. Sie können das Team jedoch löschen." -#: src/app/main/ui/dashboard/change_owner.cljs:55 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-reassign.hint1" msgstr "Sie sind der Eigentümer von %s." -#: src/app/main/ui/dashboard/change_owner.cljs:78 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-reassign.promote-and-leave" msgstr "Befördern und verlassen" -#: src/app/main/ui/dashboard/change_owner.cljs:34 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-reassign.select-member-to-promote" msgstr "Wählen Sie ein Mitglied aus, das befördert werden soll" -#: src/app/main/ui/dashboard/change_owner.cljs:49 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-reassign.title" msgstr "Wählen Sie ein Mitglied aus, das befördert werden soll" -#: src/app/main/ui/dashboard/sidebar.cljs:402, src/app/main/ui/dashboard/sidebar.cljs:424, src/app/main/ui/dashboard/team.cljs:394, src/app/main/ui/dashboard/team.cljs:416 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-confirm.accept" msgstr "Team verlassen" -#: src/app/main/ui/dashboard/sidebar.cljs:401, src/app/main/ui/dashboard/team.cljs:415 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-confirm.message" msgstr "Sind Sie sicher, dass Sie dieses Team verlassen wollen?" -#: src/app/main/ui/dashboard/sidebar.cljs:400, src/app/main/ui/dashboard/sidebar.cljs:421, src/app/main/ui/dashboard/team.cljs:391, src/app/main/ui/dashboard/team.cljs:414 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-confirm.title" msgstr "Team verlassen" -#: src/app/main/ui/delete_shared.cljs:53 msgid "modals.move-shared-confirm.accept" msgid_plural "modals.move-shared-confirm.accept" msgstr[0] "Verschieben" msgstr[1] "Verschieben" -#: src/app/main/ui/delete_shared.cljs:48 msgid "modals.move-shared-confirm.message" msgid_plural "modals.move-shared-confirm.message" msgstr[0] "Sind Sie sicher, dass Sie diese Bibliothek verschieben wollen?" msgstr[1] "Sind Sie sicher, dass Sie diese Bibliotheken verschieben wollen?" -#: src/app/main/ui/delete_shared.cljs:43 msgid "modals.move-shared-confirm.title" msgid_plural "modals.move-shared-confirm.title" msgstr[0] "Bibliothek verschieben" msgstr[1] "Bibliotheken verschieben" -#: src/app/main/ui/workspace/main_menu.cljs:266, src/app/main/ui/workspace/nudge.cljs:47 +#: src/app/main/ui/workspace/nudge.cljs msgid "modals.nudge-title" msgstr "Verschiebung" -#: src/app/main/ui/dashboard/team.cljs:340 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.accept" msgstr "Befördern" -#: src/app/main/ui/dashboard/team.cljs:339 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.hint" msgstr "" -"Wenn Sie die Eigentümerschaft übertragen, ändern Sie Ihre Rolle in Admin " -"und verlieren einige Berechtigungen für dieses Team. " +"Wenn Sie die Eigentümerschaft übertragen, ändern Sie Ihre Rolle in Admin und " +"verlieren einige Berechtigungen für dieses Team. " -#: src/app/main/ui/dashboard/team.cljs:338 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.message" -msgstr "Sind Sie sicher, dass Sie diesen Benutzer zum Eigentümer befördern wollen?" +msgstr "" +"Sind Sie sicher, dass Sie diesen Benutzer zum Eigentümer befördern wollen?" -#: src/app/main/ui/dashboard/team.cljs:337 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.title" msgstr "Zum Eigentümer befördern" -#: src/app/main/ui/workspace/libraries.cljs:188 msgid "modals.publish-empty-library.accept" msgstr "Veröffentlichen" -#: src/app/main/ui/workspace/libraries.cljs:187 msgid "modals.publish-empty-library.message" msgstr "" "Ihre Bibliothek ist leer. Sind Sie sicher, dass Sie es veröffentlichen " "wollen?" -#: src/app/main/ui/workspace/libraries.cljs:186 msgid "modals.publish-empty-library.title" msgstr "Leere Bibliothek veröffentlichen" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.remove-shared-confirm.accept" msgstr "Als gemeinsam genutzte Bibliothek entfernen" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.remove-shared-confirm.hint" msgstr "" -"Sobald Sie diese Datai aus den geteilten Bibliotheken entfernen, steht " -"Ihnen die Bibliothek dieser Datei nicht mehr in anderen Dateien zur " -"Verfügung." +"Sobald Sie diese Datai aus den geteilten Bibliotheken entfernen, steht Ihnen " +"die Bibliothek dieser Datei nicht mehr in anderen Dateien zur Verfügung." -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.remove-shared-confirm.message" msgstr "Entfernen Sie “%s” als gemeinsam genutzte Bibliothek" -#: src/app/main/ui/workspace/nudge.cljs:53 +#: src/app/main/ui/workspace/nudge.cljs msgid "modals.small-nudge" msgstr "Minimal" -#: src/app/main/ui/delete_shared.cljs:52 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.unpublish-shared-confirm.accept" msgid_plural "modals.unpublish-shared-confirm.accept" msgstr[0] "Veröffentlichung aufheben" msgstr[1] "Veröffentlichung aufheben" -#: src/app/main/ui/delete_shared.cljs:47 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.unpublish-shared-confirm.message" msgid_plural "modals.unpublish-shared-confirm.message" -msgstr[0] "Möchten Sie die Veröffentlichung dieser Bibliothek wirklich aufheben?" -msgstr[1] "Möchten Sie die Veröffentlichung dieser Bibliotheken wirklich aufheben?" +msgstr[0] "" +"Möchten Sie die Veröffentlichung dieser Bibliothek wirklich aufheben?" +msgstr[1] "" +"Möchten Sie die Veröffentlichung dieser Bibliotheken wirklich aufheben?" -#: src/app/main/ui/delete_shared.cljs:42 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.unpublish-shared-confirm.title" msgid_plural "modals.unpublish-shared-confirm.title" msgstr[0] "Veröffentlichung der Bibliothek aufheben" msgstr[1] "Veröffentlichung der Bibliotheken aufheben" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component-in-bulk.hint" msgstr "" "Sie sind dabei, Komponenten in einer gemeinsam genutzten Bibliothek zu " "aktualisieren. Dies kann sich auf andere Dateien auswirken, die diese " "verwenden." -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component-in-bulk.message" msgstr "Komponenten in einer gemeinsamen Bibliothek aktualisieren" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:380 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.accept" msgstr "Aktualisieren" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:379 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.cancel" msgstr "Abbrechen" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:378 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.hint" msgstr "" "Sie sind dabei, eine Komponente in einer geteilten Bibliothek zu " "aktualisieren. Dies kann sich auf andere Dateien auswirken, die diese " "Komponente verwenden." -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:377 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.message" msgstr "Komponente aus einer geteilten Bibliothek aktualiseren" -#: src/app/main/data/common.cljs:71 +#: src/app/main/data/common.cljs msgid "notifications.by-code.upgrade-version" msgstr "Eine neue Version ist verfügbar, bitte aktualisieren Sie die Seite" -#: src/app/main/ui/dashboard/team.cljs:154, src/app/main/ui/dashboard/team.cljs:595 +#: src/app/main/ui/dashboard/team.cljs msgid "notifications.invitation-email-sent" msgstr "Einladung erfolgreich gesendet" -#: src/app/main/ui/dashboard/team.cljs:616 +#: src/app/main/ui/dashboard/team.cljs msgid "notifications.invitation-link-copied" msgstr "Einladungslink kopiert" -#: src/app/main/ui/settings/delete_account.cljs:24 +#: src/app/main/ui/settings/delete_account.cljs msgid "notifications.profile-deletion-not-allowed" msgstr "" -"Sie können Ihr Profil nicht löschen. Weisen Sie Ihre Teams neu zu, bevor " -"Sie fortfahren." +"Sie können Ihr Profil nicht löschen. Weisen Sie Ihre Teams neu zu, bevor Sie " +"fortfahren." -#: src/app/main/ui/settings/options.cljs:29, src/app/main/ui/settings/profile.cljs:35 +#: src/app/main/ui/settings/profile.cljs, src/app/main/ui/settings/options.cljs msgid "notifications.profile-saved" msgstr "Profil erfolgreich gespeichert!" -#: src/app/main/ui/settings/change_email.cljs:63 +#: src/app/main/ui/settings/change_email.cljs msgid "notifications.validation-email-sent" msgstr "Verifizierungs-E-Mail an %s gesendet. Prüfen Sie Ihren Posteingang!" -#, unused msgid "onboarding-v2.before-start.desc1" msgstr "" -"Sie sollten wissen, dass es viele Ressourcen gibt, die Ihnen den Einstieg " -"in Penpot erleichtern, wie z. B. das Benutzerhandbuch und unseren " -"Youtube-Kanal." +"Sie sollten wissen, dass es viele Ressourcen gibt, die Ihnen den Einstieg in " +"Penpot erleichtern, wie z. B. das Benutzerhandbuch und unseren Youtube-Kanal." -#, unused msgid "onboarding-v2.before-start.desc2" msgstr "" "Detaillierte Informationen über die Verwendung von Penpot. Vom Prototyping " "bis zum Organisieren und Teilen von Designs." -#, unused msgid "onboarding-v2.before-start.desc2.title" msgstr "Benutzerhandbuch" -#, unused msgid "onboarding-v2.before-start.desc3" msgstr "" "Sie können sich unsere Tutorials und die von unserer Community erstellten " "Tutorials ansehen." -#, unused msgid "onboarding-v2.before-start.desc3.title" msgstr "Video-Tutorials" -#, unused msgid "onboarding-v2.before-start.title" msgstr "Bevor Sie beginnen" -#: src/app/main/ui/onboarding/newsletter.cljs:63 msgid "onboarding-v2.newsletter.desc" msgstr "" "Um über den Fortschritt der Produktentwicklung und Neuigkeiten auf dem " "Laufenden zu bleiben, abonnieren Sie den Penpot-Newsletter." -#: src/app/main/ui/onboarding/newsletter.cljs:83 msgid "onboarding-v2.newsletter.news" msgstr "" "Senden Sie mir Neuigkeiten über Penpot (Blogbeiträge, Video-Tutorials, " "Streamings, ...)." -#: src/app/main/ui/onboarding/newsletter.cljs:91 msgid "onboarding-v2.newsletter.privacy1" msgstr "Datenschutz ist uns wichtig, hier können Sie das nachlesen " -#: src/app/main/ui/onboarding/newsletter.cljs:97 msgid "onboarding-v2.newsletter.privacy2" msgstr "" "Wir werden nur relevante E-Mails an Sie senden. Sie können sich jederzeit " "über den Abmeldelink in jedem unserer Newsletter abmelden." -#: src/app/main/ui/onboarding/newsletter.cljs:71 msgid "onboarding-v2.newsletter.updates" msgstr "" "Ich möchte Informationen über Produktaktualisierungen erhalten (neue " "Funktionen, Veröffentlichung neuer Versionen, Verbesserungen...)." -#, unused msgid "onboarding-v2.welcome.desc1" msgstr "" "Penpot ist Open Source und wird sowohl von Kaleidos als auch von der " "Community entwickelt, wo sich viele Leute bereits gegenseitig helfen. Jeder " "kann mitmachen:" -#, unused msgid "onboarding-v2.welcome.desc2" msgstr "" "Ein öffentlicher Raum zum Lernen, Teilen und Diskutieren über Penpot, seine " "Gegenwart und Zukunft mit der gesamten Community und dem Penpot-Kernteam." -#, unused msgid "onboarding-v2.welcome.desc2.title" msgstr "Mitwirkung in der Community" -#, unused msgid "onboarding-v2.welcome.desc3" msgstr "" -"Hier erfahren Sie, wie Sie bei Übersetzungen, Feature Requests, " -"Core-Entwicklung und der Fehlersuche helfen können…" +"Hier erfahren Sie, wie Sie bei Übersetzungen, Feature Requests, Core-" +"Entwicklung und der Fehlersuche helfen können…" -#, unused msgid "onboarding-v2.welcome.desc3.title" msgstr "Leitfaden für Mitwirkende" -#: src/app/main/ui/onboarding/team_choice.cljs:31 msgid "onboarding-v2.welcome.title" msgstr "Willkommen bei Penpot!" -#: src/app/main/ui/onboarding/team_choice.cljs:229 msgid "onboarding.choice.team-up.continue-creating-team" msgstr "Mit der Erstellung eines Teams fortsetzen" -#: src/app/main/ui/onboarding/team_choice.cljs:239 msgid "onboarding.choice.team-up.continue-without-a-team" msgstr "Ohne Team fortsetzen" -#: src/app/main/ui/onboarding/team_choice.cljs:167 msgid "onboarding.choice.team-up.create-team-and-invite" msgstr "Team erstellen & einladen" -#, unused msgid "onboarding.choice.team-up.create-team-and-send-invites" msgstr "Team erstellen und Einladungen versenden" -#: src/app/main/ui/onboarding/team_choice.cljs:170 msgid "onboarding.choice.team-up.create-team-and-send-invites-description" msgstr "Sie können später einladen" -#: src/app/main/ui/onboarding/team_choice.cljs:215 msgid "onboarding.choice.team-up.create-team-desc" msgstr "Nach der Bennenung Ihres Teams, können Sie andere Personen einladen." -#: src/app/main/ui/onboarding/team_choice.cljs:224 msgid "onboarding.choice.team-up.create-team-placeholder" msgstr "Geben Sie den Namen des Teams ein" -#: src/app/main/ui/onboarding/team_choice.cljs:168 msgid "onboarding.choice.team-up.create-team-without-invite" msgstr "Team erstellen" -#, unused msgid "onboarding.choice.team-up.create-team-without-inviting" msgstr "Team ohne Einladungen erstellen" -#: src/app/main/ui/dashboard/projects.cljs:89, src/app/main/ui/onboarding/team_choice.cljs:140 msgid "onboarding.choice.team-up.invite-members" msgstr "Mitglieder einladen" -#: src/app/main/ui/onboarding/team_choice.cljs:141 msgid "onboarding.choice.team-up.invite-members-info" msgstr "" "Denken Sie daran, alle einzubeziehen. Entwickler, Designer, Manager... die " "Vielfalt macht's :)" -#: src/app/main/ui/dashboard/team.cljs:202, src/app/main/ui/onboarding/team_choice.cljs:146 msgid "onboarding.choice.team-up.roles" msgstr "Einladen mit der Rolle:" -#: src/app/main/ui/onboarding/team_choice.cljs:232 msgid "onboarding.choice.team-up.start-without-a-team" msgstr "Ohne Team starten" -#: src/app/main/ui/onboarding/team_choice.cljs:234 msgid "onboarding.choice.team-up.start-without-a-team-description" msgstr "Sie können später ein Team erstellen." -#, unused msgid "onboarding.newsletter.accept" msgstr "Ja, abonnieren" -#: src/app/main/ui/onboarding/newsletter.cljs:40 msgid "onboarding.newsletter.acceptance-message" msgstr "" "Ihre Abonnementanfrage wurde gesendet, wir senden Ihnen eine E-Mail zur " "Bestätigung." -#: src/app/main/ui/onboarding/newsletter.cljs:95 msgid "onboarding.newsletter.policy" msgstr "Datenschutzbestimmungen." -#: src/app/main/ui/onboarding/newsletter.cljs:60 msgid "onboarding.newsletter.title" msgstr "Möchten Sie die Penpot-Nachrichten erhalten?" -#: src/app/main/ui/onboarding/questions.cljs:118 -msgid "onboarding.questions.lets-get-started" -msgstr "Los geht's!" - -#: src/app/main/ui/onboarding/questions.cljs:307 -msgid "onboarding.questions.step3.question2" -msgstr "Was ist Ihre Rolle?" - -#: src/app/main/ui/onboarding/questions.cljs:320 -msgid "onboarding.questions.step3.question3" -msgstr "Wie groß ist Ihr Team?" - -#: src/app/main/ui/onboarding/questions.cljs:273 -msgid "onboarding.questions.team-size.11-30" -msgstr "11-30" - -#: src/app/main/ui/onboarding/questions.cljs:274 -msgid "onboarding.questions.team-size.2-10" -msgstr "2-10" - -#: src/app/main/ui/onboarding/questions.cljs:272 -msgid "onboarding.questions.team-size.31-50" -msgstr "31-50" - -#: src/app/main/ui/onboarding/questions.cljs:271 -msgid "onboarding.questions.team-size.more-than-50" -msgstr "Mehr als 50" - -#: src/app/main/ui/onboarding/questions.cljs:276 -msgid "onboarding.questions.team-size.personal-project" -msgstr "Ich arbeite an einem persönlichen Projekt" - -#: src/app/main/ui/onboarding/team_choice.cljs:213 msgid "onboarding.team-modal.create-team" msgstr "Ein Team erstellen" -#: src/app/main/ui/onboarding/team_choice.cljs:35 msgid "onboarding.team-modal.create-team-desc" msgstr "" -"In einem Team können Sie mit anderen Penpot-Nutzern zusammenarbeiten, die " -"an denselben Dateien und Projekten arbeiten." +"In einem Team können Sie mit anderen Penpot-Nutzern zusammenarbeiten, die an " +"denselben Dateien und Projekten arbeiten." -#: src/app/main/ui/onboarding/team_choice.cljs:40 msgid "onboarding.team-modal.create-team-feature-1" msgstr "Unbegrenzte Anzahl von Dateien und Projekten" -#: src/app/main/ui/onboarding/team_choice.cljs:44 msgid "onboarding.team-modal.create-team-feature-2" msgstr "Multiplayer-Edition" -#: src/app/main/ui/onboarding/team_choice.cljs:48 msgid "onboarding.team-modal.create-team-feature-3" msgstr "Rollenverwaltung" -#: src/app/main/ui/onboarding/team_choice.cljs:52 msgid "onboarding.team-modal.create-team-feature-4" msgstr "Unbegrenzte Anzahl von Mitgliedern" -#: src/app/main/ui/onboarding/team_choice.cljs:56 msgid "onboarding.team-modal.create-team-feature-5" msgstr "100% kostenlos!" -#: src/app/main/ui/onboarding/team_choice.cljs:33 msgid "onboarding.team-modal.team-definition" msgstr "Was ist ein Team?" -#: src/app/main/ui/onboarding/templates.cljs:78 msgid "onboarding.templates.subtitle" msgstr "Hier sind einige Vorlagen." -#: src/app/main/ui/onboarding/templates.cljs:77 msgid "onboarding.templates.title" msgstr "Beginnen Sie mit dem Entwerfen" -#, unused msgid "onboarding.welcome.alt" msgstr "Penpot" -#: src/app/main/ui/auth/recovery.cljs:99 +#: src/app/main/ui/auth/recovery.cljs msgid "profile.recovery.go-to-login" msgstr "Zur Anmeldung" -#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:221 +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.team-size.11-30" +msgstr "11-30" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.team-size.2-10" +msgstr "2-10" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.team-size.31-50" +msgstr "31-50" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.adobe-xd" +msgstr "Adobe XD" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.canva" +msgstr "Canva" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.developer" +msgstr "Developer" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.figma" +msgstr "Figma" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.founder" +msgstr "Gründer/VP" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.freelancer" +msgstr "Ich bin ein Freelancer" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.invision" +msgstr "InVision" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.lets-get-started" +msgstr "Los geht's!" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.product-management" +msgstr "Produkt- oder Projektmanager" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.marketing" +msgstr "Marketing" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.team-size.more-than-50" +msgstr "Mehr als 50" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.next" +msgstr "Weiter" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.other" +msgstr "Sonstiges (bitte angeben)" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.team-size.personal-project" +msgstr "Ich arbeite an einem persönlichen Projekt" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.previous" +msgstr "Zurück" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.step3.question2" +msgstr "Was ist Ihre Rolle?" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.select-option" +msgstr "Wählen Sie eine Option" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.sketch" +msgstr "Sketch" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.start" +msgstr "Start" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.student-teacher" +msgstr "Schüler oder Lehrer" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.step3.question3" +msgstr "Wie groß ist Ihr Team?" + +#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, msgid "settings.detach" msgstr "Trennen" -#: src/app/main/ui/viewer/inspect/exports.cljs:147, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:631, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:137, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:148, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:188, src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:158, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:399, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:410, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:430, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:441, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:458, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:472, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:309, src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:183, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:373, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:389, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:245, src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:172 +#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs msgid "settings.multiple" msgstr "Mehrere" -#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:271 +#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs msgid "settings.select-this-color" msgstr "Elemente mit diesem Stil auswählen" # SECTIONS -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:414 msgid "shortcut-section.basics" msgstr "Grundlagen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:420 msgid "shortcut-section.dashboard" msgstr "Dashboard" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:423 msgid "shortcut-section.viewer" msgstr "Ansicht" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:417 msgid "shortcut-section.workspace" msgstr "Arbeitsbereich" # SUBSECTIONS -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:56 msgid "shortcut-subsection.alignment" msgstr "Ausrichtung" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:57 msgid "shortcut-subsection.edit" msgstr "Bearbeiten" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:58 msgid "shortcut-subsection.general-dashboard" msgstr "Allgemein" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:59 msgid "shortcut-subsection.general-viewer" msgstr "Allgemein" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:60 msgid "shortcut-subsection.main-menu" msgstr "Hauptmenü" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:61 msgid "shortcut-subsection.modify-layers" msgstr "Ändern von Ebenen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:62 msgid "shortcut-subsection.navigation-dashboard" msgstr "Navigation" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:63 msgid "shortcut-subsection.navigation-viewer" msgstr "Navigation" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:64 msgid "shortcut-subsection.navigation-workspace" msgstr "Navigation" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:65 msgid "shortcut-subsection.panels" msgstr "Paneele" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:66 msgid "shortcut-subsection.path-editor" msgstr "Pfade" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:67 msgid "shortcut-subsection.shape" msgstr "Formen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:68 msgid "shortcut-subsection.text-editor" msgstr "Texte" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:69 msgid "shortcut-subsection.tools" msgstr "Werkzeuge" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:70 msgid "shortcut-subsection.zoom-viewer" msgstr "Zoom" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:71 msgid "shortcut-subsection.zoom-workspace" msgstr "Zoom" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:72 msgid "shortcuts.add-comment" msgstr "Kommentare" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:73 msgid "shortcuts.add-node" msgstr "Punkt hinzufügen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:74 msgid "shortcuts.align-bottom" msgstr "Unten ausrichten" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:75 msgid "shortcuts.align-center" msgstr "Zentrieren" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:76 msgid "shortcuts.align-hcenter" msgstr "Horizontal zentrieren" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:77 msgid "shortcuts.align-justify" msgstr "Blocksatz" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:78 msgid "shortcuts.align-left" msgstr "Linksbündig ausrichten" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:79 msgid "shortcuts.align-right" msgstr "Rechtsbündig ausrichten" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:80 msgid "shortcuts.align-top" msgstr "Oben ausrichten" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:81 msgid "shortcuts.align-vcenter" msgstr "Mittig ausrichten (vertikal)" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:82 msgid "shortcuts.artboard-selection" msgstr "Zeichenfläche aus Auswahl erstellen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:83 msgid "shortcuts.bold" msgstr "Umschalten auf Fettdruck" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:84 msgid "shortcuts.bool-difference" msgstr "Subtrahieren (Boolesche Operation)" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:85 msgid "shortcuts.bool-exclude" msgstr "Ausschluss" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:86 msgid "shortcuts.bool-intersection" msgstr "Schnittmenge" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:87 msgid "shortcuts.bool-union" msgstr "Vereinigung" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:88 msgid "shortcuts.bring-back" msgstr "In den Hintergrund" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:89 msgid "shortcuts.bring-backward" msgstr "Eins nach hinten" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:90 msgid "shortcuts.bring-forward" msgstr "Eins nach vorne" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:91 msgid "shortcuts.bring-front" msgstr "In den Vordergrund" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:92 msgid "shortcuts.clear-undo" msgstr "Verlauf löschen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:93 msgid "shortcuts.copy" msgstr "Kopieren" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:94 msgid "shortcuts.create-component" msgstr "Komponente erstellen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:95 msgid "shortcuts.create-new-project" msgstr "Neues Projekt erstellen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:96 msgid "shortcuts.cut" msgstr "Ausschneiden" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:97 msgid "shortcuts.decrease-zoom" msgstr "Auszoomen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:98 msgid "shortcuts.delete" msgstr "Löschen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:99 msgid "shortcuts.delete-node" msgstr "Punkt löschen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:100 msgid "shortcuts.detach-component" msgstr "Komponente lösen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:101 msgid "shortcuts.draw-curve" msgstr "Kurve" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:102 msgid "shortcuts.draw-ellipse" msgstr "Ellipse" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:103 msgid "shortcuts.draw-frame" msgstr "Board" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:104 msgid "shortcuts.draw-nodes" msgstr "Pfad zeichnen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:105 msgid "shortcuts.draw-path" msgstr "Pfad" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:106 msgid "shortcuts.draw-rect" msgstr "Rechteck" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:107 msgid "shortcuts.draw-text" msgstr "Text" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:108 msgid "shortcuts.duplicate" msgstr "Duplizieren" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:109 msgid "shortcuts.escape" msgstr "Abbrechen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:110 msgid "shortcuts.export-shapes" msgstr "Formen exportieren" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:111 msgid "shortcuts.fit-all" msgstr "Passend zoomen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:112 msgid "shortcuts.flip-horizontal" msgstr "Horizontal spiegeln" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:113 msgid "shortcuts.flip-vertical" msgstr "Vertikal spiegeln" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:114 msgid "shortcuts.font-size-dec" msgstr "Schriftgröße verkleinern" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:115 msgid "shortcuts.font-size-inc" msgstr "Schriftgröße erhöhen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:116 msgid "shortcuts.go-to-drafts" msgstr "Zu den Entwürfen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:117 msgid "shortcuts.go-to-libs" msgstr "Zu gemeinsam genutzten Bibliotheken wechseln" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:118 msgid "shortcuts.go-to-search" msgstr "Suchen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:119 msgid "shortcuts.group" msgstr "Gruppieren" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:120 msgid "shortcuts.h-distribute" msgstr "Horizontal verteilen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:121 msgid "shortcuts.hide-ui" msgstr "Benutzeroberfläche ein-/ausblenden" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:122 msgid "shortcuts.increase-zoom" msgstr "Einzoomen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:123 msgid "shortcuts.insert-image" msgstr "Bild einfügen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:124 msgid "shortcuts.italic" msgstr "Umschalten auf Kursivdruck" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:125 msgid "shortcuts.join-nodes" msgstr "Punkte verbinden" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:126 msgid "shortcuts.letter-spacing-dec" msgstr "Buchstabenabstand verringern" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:127 msgid "shortcuts.letter-spacing-inc" msgstr "Buchstabenabstand erhöhen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:128 msgid "shortcuts.line-height-dec" msgstr "Zeilenhöhe verringern" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:129 msgid "shortcuts.line-height-inc" msgstr "Zeilenhöhe erhöhen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:130 msgid "shortcuts.line-through" msgstr "Durchgestrichen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:131 msgid "shortcuts.make-corner" msgstr "Zur Ecke umwandeln" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:132 msgid "shortcuts.make-curve" msgstr "Kurve erstellen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:133 msgid "shortcuts.mask" msgstr "Maskieren" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:134 msgid "shortcuts.merge-nodes" msgstr "Punkte zusammenführen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:135 msgid "shortcuts.move" msgstr "Verschieben" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:136 msgid "shortcuts.move-fast-down" msgstr "Schnell nach unten verschieben" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:137 msgid "shortcuts.move-fast-left" msgstr "Schnell nach links verschieben" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:138 msgid "shortcuts.move-fast-right" msgstr "Schnell nach rechts verschieben" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:139 msgid "shortcuts.move-fast-up" msgstr "Schnell nach oben verschieben" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:140 msgid "shortcuts.move-nodes" msgstr "Punkte verschieben" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:141 msgid "shortcuts.move-unit-down" msgstr "Nach unten verschieben" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:142 msgid "shortcuts.move-unit-left" msgstr "Nach links verschieben" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:143 msgid "shortcuts.move-unit-right" msgstr "Nach rechts verschieben" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:144 msgid "shortcuts.move-unit-up" msgstr "Nach oben verschieben" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:145 msgid "shortcuts.next-frame" msgstr "Nächstes Board" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:516 msgid "shortcuts.not-found" msgstr "Kein Tastaturkürzel gefunden" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:146 msgid "shortcuts.opacity-0" msgstr "Deckkraft auf 100% setzen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:147 msgid "shortcuts.opacity-1" msgstr "Deckkraft auf 10% setzen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:148 msgid "shortcuts.opacity-2" msgstr "Deckkraft auf 20% setzen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:149 msgid "shortcuts.opacity-3" msgstr "Deckkraft auf 30% setzen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:150 msgid "shortcuts.opacity-4" msgstr "Deckkraft auf 40% setzen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:151 msgid "shortcuts.opacity-5" msgstr "Deckkraft auf 50% setzen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:152 msgid "shortcuts.opacity-6" msgstr "Deckkraft auf 60% setzen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:153 msgid "shortcuts.opacity-7" msgstr "Deckkraft auf 70% setzen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:154 msgid "shortcuts.opacity-8" msgstr "Deckkraft auf 80% setzen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:155 msgid "shortcuts.opacity-9" msgstr "Deckkraft auf 90% setzen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:156 msgid "shortcuts.open-color-picker" msgstr "Farbwähler" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:157 msgid "shortcuts.open-comments" msgstr "Zum Kommentarbereich im Ansichtsmodus" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:158 msgid "shortcuts.open-dashboard" msgstr "Zum Dashboard" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:159 msgid "shortcuts.open-inspect" msgstr "Zur Spezifikation im Ansichtsmodus" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:160 msgid "shortcuts.open-interactions" msgstr "Zum Ansichtsmodus" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:161 msgid "shortcuts.open-viewer" msgstr "Zum Ansichtsmodus" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:162 msgid "shortcuts.open-workspace" msgstr "Zum Arbeitsbereich" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:260 msgid "shortcuts.or" msgstr " oder " -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:163 msgid "shortcuts.paste" msgstr "Einfügen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:164 msgid "shortcuts.prev-frame" msgstr "Vorheriges Board" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:165 msgid "shortcuts.redo" msgstr "Wiederholen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:166 msgid "shortcuts.reset-zoom" msgstr "Zoom zurücksetzen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:167 msgid "shortcuts.scale" msgstr "Skalieren" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:168 msgid "shortcuts.search-placeholder" msgstr "Tastaturkürzel suchen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:169 msgid "shortcuts.select-all" msgstr "Alles auswählen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:170 msgid "shortcuts.select-next" msgstr "Nächste Ebene auswählen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:171 msgid "shortcuts.select-parent-layer" msgstr "Übergeordnete Ebene auswählen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:172 msgid "shortcuts.select-prev" msgstr "Vorherige Ebene auswählen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:173 msgid "shortcuts.separate-nodes" msgstr "Punkte trennen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:174 msgid "shortcuts.show-pixel-grid" msgstr "Pixelraster ein-/ausblenden" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:175 msgid "shortcuts.show-shortcuts" msgstr "Tastaturkürzel ein-/ausblenden" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:176 msgid "shortcuts.snap-nodes" msgstr "An den Punkten ausrichten" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:177 msgid "shortcuts.snap-pixel-grid" msgstr "Am Pixelraster ausrichten" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:178 msgid "shortcuts.start-editing" msgstr "Mit der Bearbeitung beginnen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:179 msgid "shortcuts.start-measure" msgstr "Mit der Vermessung beginnen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:180 msgid "shortcuts.stop-measure" msgstr "Mit der Vermessung abbrechen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:181 msgid "shortcuts.text-align-center" msgstr "Zentriert ausrichten" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:182 msgid "shortcuts.text-align-justify" msgstr "Blocksatz" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:183 msgid "shortcuts.text-align-left" msgstr "Linksbündig ausrichten" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:184 msgid "shortcuts.text-align-right" msgstr "Rechtsbündig ausrichten" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:185 msgid "shortcuts.thumbnail-set" msgstr "Miniaturansichten festlegen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:496, src/app/main/ui/workspace/sidebar/shortcuts.cljs:505 +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs msgid "shortcuts.title" msgstr "Tastaturkürzel" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:186 msgid "shortcuts.toggle-alignment" msgstr "Dynamische Ausrichtung umschalten" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:187 msgid "shortcuts.toggle-assets" msgstr "Assets einblenden" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:188 msgid "shortcuts.toggle-colorpalette" msgstr "Farbpalette ein-/ausblenden" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:189 msgid "shortcuts.toggle-focus-mode" msgstr "Fokusmodus umschalten" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:190 msgid "shortcuts.toggle-fullscreen" msgstr "Vollbild aktivieren/deaktivieren" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:191 msgid "shortcuts.toggle-guides" msgstr "Hilfslinien anzeigen / ausblenden" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:192 msgid "shortcuts.toggle-history" msgstr "Verlauf ein-/ausblenden" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:193 msgid "shortcuts.toggle-layers" msgstr "Ebenen ein-/ausblenden" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:194 msgid "shortcuts.toggle-layout-flex" msgstr "Flex-Layout hinzufügen/entfernen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:195 msgid "shortcuts.toggle-layout-grid" msgstr "Grid-Layout hinzufügen/entfernen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:196 msgid "shortcuts.toggle-lock" msgstr "Auswahl sperren" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:197 msgid "shortcuts.toggle-lock-size" msgstr "Seitenverhältnis sperren/entsperren" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:198 msgid "shortcuts.toggle-rulers" msgstr "Lineale anzeigen / ausblenden" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:200 msgid "shortcuts.toggle-snap-guides" msgstr "An Hilfslinien ausrichten" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:201 -msgid "shortcuts.toggle-snap-ruler-guide" -msgstr "An den Hilfslinien des Lineals ausrichten" - -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:202 msgid "shortcuts.toggle-textpalette" msgstr "Textpalette ein-/ausblenden" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:203 msgid "shortcuts.toggle-theme" msgstr "Theme ändern" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:204 msgid "shortcuts.toggle-visibility" msgstr "Elemente ein-/ausblenden" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:205 msgid "shortcuts.toggle-zoom-style" msgstr "Zoom-Optionen umschalten" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:206 msgid "shortcuts.underline" msgstr "Unterstrichen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:207 msgid "shortcuts.undo" msgstr "Rückgängig" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:208 msgid "shortcuts.ungroup" msgstr "Gruppierung aufheben" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:209 msgid "shortcuts.unmask" msgstr "Maske entfernen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:210 msgid "shortcuts.v-distribute" msgstr "Vertikal verteilen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:211 msgid "shortcuts.zoom-lense-decrease" msgstr "Ansicht mit Zoomwerkzeug verkleinern" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:212 msgid "shortcuts.zoom-lense-increase" msgstr "Ansicht mit Zoomwerkzeug vergrößern" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:213 msgid "shortcuts.zoom-selected" msgstr "Zur Auswahl zoomen" -#: src/app/main/ui/dashboard/team.cljs:771 +#: src/app/main/ui/dashboard/team.cljs msgid "team.webhooks.max-length" msgstr "Der Name des Webhooks darf höchstens 2048 Zeichen lang sein." -#: src/app/main/ui/dashboard/files.cljs:158 +#: src/app/main/ui/dashboard/files.cljs msgid "title.dashboard.files" msgstr "%s - Penpot" -#: src/app/main/ui/dashboard/fonts.cljs:37 +#: src/app/main/ui/dashboard/fonts.cljs msgid "title.dashboard.font-providers" msgstr "Schriftenhersteller - %s - Penpot" -#: src/app/main/ui/dashboard/fonts.cljs:36 +#: src/app/main/ui/dashboard/fonts.cljs msgid "title.dashboard.fonts" msgstr "Schriftarten - %s - Penpot" -#: src/app/main/ui/dashboard/projects.cljs:320 +#: src/app/main/ui/dashboard/projects.cljs msgid "title.dashboard.projects" msgstr "Projekte - %s - Penpot" -#: src/app/main/ui/dashboard/search.cljs:32 +#: src/app/main/ui/dashboard/search.cljs msgid "title.dashboard.search" msgstr "Suchen - %s - Penpot" -#: src/app/main/ui/dashboard/libraries.cljs:44 +#: src/app/main/ui/dashboard/libraries.cljs msgid "title.dashboard.shared-libraries" msgstr "Gemeinsam genutzte Bibliotheken - %s - Penpot" -#: src/app/main/ui/auth/verify_token.cljs:68, src/app/main/ui/auth.cljs:54 +#: src/app/main/ui/auth/verify_token.cljs, src/app/main/ui/auth.cljs msgid "title.default" msgstr "Penpot - Gestaltungsfreiheit für Teams" -#: src/app/main/ui/settings/access_tokens.cljs:292 +#: src/app/main/ui/settings/access-tokens.cljs msgid "title.settings.access-tokens" msgstr "Profil - Zugangstokens" -#: src/app/main/ui/settings/feedback.cljs:110 +#: src/app/main/ui/settings/feedback.cljs msgid "title.settings.feedback" msgstr "Feedback geben - Penpot" -#: src/app/main/ui/settings/options.cljs:80 +#: src/app/main/ui/settings/options.cljs msgid "title.settings.options" msgstr "Einstellungen - Penpot" -#: src/app/main/ui/settings/password.cljs:115 +#: src/app/main/ui/settings/password.cljs msgid "title.settings.password" msgstr "Passwort - Penpot" -#: src/app/main/ui/settings/profile.cljs:115 +#: src/app/main/ui/settings/profile.cljs msgid "title.settings.profile" msgstr "Profil - Penpot" -#: src/app/main/ui/dashboard/team.cljs:727 +#: src/app/main/ui/dashboard/team.cljs msgid "title.team-invitations" msgstr "Einladungen - %s - Penpot" -#: src/app/main/ui/dashboard/team.cljs:493 +#: src/app/main/ui/dashboard/team.cljs msgid "title.team-members" msgstr "Mitglieder - %s - Penpot" -#: src/app/main/ui/dashboard/team.cljs:1036 +#: src/app/main/ui/dashboard/team.cljs msgid "title.team-settings" msgstr "Einstellungen - %s - Penpot" -#: src/app/main/ui/dashboard/team.cljs:989 msgid "title.team-webhooks" msgstr "Webhooks - %s - Penpot" -#: src/app/main/ui/viewer.cljs:419 +#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs msgid "title.viewer" msgstr "%s - Ansichtsmodus - Penpot" -#: src/app/main/ui/workspace.cljs:190 +#: src/app/main/ui/workspace.cljs msgid "title.workspace" msgstr "%s - Penpot" -#: src/app/main/ui.cljs:144 msgid "viewer.breaking-change.description" msgstr "" "Dieser geteilte Link ist nicht mehr gültig. Erstellen Sie einen neuen oder " "bitten Sie den Eigentümer um einen neuen Link." -#: src/app/main/ui.cljs:143 msgid "viewer.breaking-change.message" msgstr "Entschuldigung!" -#: src/app/main/ui/viewer.cljs:569 +#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs msgid "viewer.empty-state" msgstr "Keine Zeichenflächen auf der Seite gefunden." -#: src/app/main/ui/viewer.cljs:574 +#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs msgid "viewer.frame-not-found" msgstr "Keine Zeichenfläche gefunden." -#: src/app/main/ui/viewer/header.cljs:336 msgid "viewer.header.comments-section" msgstr "Kommentare (%s)" -#: src/app/main/ui/viewer/interactions.cljs:292 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.dont-show-interactions" msgstr "Interaktionen nicht anzeigen" -#: src/app/main/ui/viewer/header.cljs:188 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.fullscreen" msgstr "Vollbildmodus" -#: src/app/main/ui/viewer/header.cljs:345 msgid "viewer.header.inspect-section" msgstr "Spezifikation (%s)" -#: src/app/main/ui/viewer/interactions.cljs:282 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.interactions" msgstr "Interaktionen" -#: src/app/main/ui/viewer/header.cljs:327 msgid "viewer.header.interactions-section" msgstr "Interaktionen (%s)" -#: src/app/main/ui/viewer/share_link.cljs:187 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.share.copy-link" msgstr "Link kopieren" -#: src/app/main/ui/viewer/interactions.cljs:300 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.show-interactions" msgstr "Interaktionen anzeigen" -#: src/app/main/ui/viewer/interactions.cljs:311 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.show-interactions-on-click" msgstr "Interaktionen beim Klicken anzeigen" -#: src/app/main/ui/viewer/header.cljs:231 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.sitemap" msgstr "Sitemap" -#: src/app/main/ui/dashboard/team.cljs:948 msgid "webhooks.last-delivery.success" msgstr "Die letzte Übertragung war erfolgreich." -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:58 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.hcenter" msgstr "Zentrieren (horizontal) (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:74 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.hdistribute" msgstr "Horizontal verteilen (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:50 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.hleft" msgstr "Linksbündig ausrichten (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:66 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.hright" msgstr "Rechtsbündig ausrichten (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:99 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.vbottom" msgstr "Unten ausrichten (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:91 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.vcenter" msgstr "Mittig ausrichten (vertikal) (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:104 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.vdistribute" msgstr "Vertikal verteilen (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:83 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.vtop" msgstr "Oben ausrichten (%s)" #: src/app/main/ui/workspace/sidebar/assets.cljs -#, unused msgid "workspace.assets.assets" msgstr "Assets" -#: src/app/main/ui/workspace/sidebar/assets.cljs:134 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.box-filter-all" msgstr "Alle Assets" -#: src/app/main/ui/dashboard/grid.cljs:130, src/app/main/ui/dashboard/grid.cljs:162, src/app/main/ui/workspace/sidebar/assets/colors.cljs:485, src/app/main/ui/workspace/sidebar/assets.cljs:150 +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.colors" msgstr "Farben" -#: src/app/main/ui/dashboard/grid.cljs:126, src/app/main/ui/dashboard/grid.cljs:141, src/app/main/ui/workspace/sidebar/assets/components.cljs:513, src/app/main/ui/workspace/sidebar/assets.cljs:139 +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.components" msgstr "Komponenten" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:131 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.create-group" msgstr "Gruppe erstellen" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:142 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.create-group-hint" msgstr "" -"Ihre Elemente werden automatisch nach diesem Schema benannt: \"Gruppenname " -"/ Elementname\"" +"Ihre Elemente werden automatisch nach diesem Schema benannt: \"Gruppenname / " +"Elementname\"" -#: src/app/main/ui/workspace/context_menu.cljs:529, src/app/main/ui/workspace/sidebar/assets/colors.cljs:251, src/app/main/ui/workspace/sidebar/assets/components.cljs:577, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:424, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:443 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.delete" msgstr "Löschen" -#: src/app/main/ui/workspace/context_menu.cljs:534, src/app/main/ui/workspace/sidebar/assets/components.cljs:572 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.duplicate" msgstr "Duplizieren" -#: src/app/main/ui/workspace/sidebar/assets/components.cljs:571 msgid "workspace.assets.duplicate-main" msgstr "Hauptkomponente duplizieren" -#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:247, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:439 +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.edit" msgstr "Bearbeiten" -#: src/app/main/ui/workspace/sidebar/assets.cljs:176 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.filter" msgstr "Filtern" -#: src/app/main/ui/workspace/sidebar/assets/graphics.cljs:384, src/app/main/ui/workspace/sidebar/assets.cljs:145 +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.graphics" msgstr "Grafiken" -#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:255, src/app/main/ui/workspace/sidebar/assets/components.cljs:581, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:428, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:448 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.group" msgstr "Gruppieren" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:141 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.group-name" msgstr "Name der Gruppe" -#: src/app/main/ui/workspace/sidebar/assets.cljs:168 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.libraries" msgstr "Bibliotheken" -#: src/app/main/ui/workspace/sidebar/assets/file_library.cljs:62, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:347 msgid "workspace.assets.local-library" msgstr "lokale Bibliothek" -#: src/app/main/ui/workspace/sidebar/assets/file_library.cljs:295 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.not-found" msgstr "Keine Assets gefunden" -#, unused msgid "workspace.assets.open-library" msgstr "Bibliotheksdatei öffnen" -#: src/app/main/ui/workspace/context_menu.cljs:532, src/app/main/ui/workspace/sidebar/assets/colors.cljs:243, src/app/main/ui/workspace/sidebar/assets/components.cljs:566, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:421, src/app/main/ui/workspace/sidebar/assets/groups.cljs:63, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:434 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.rename" msgstr "Umbenennen" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:132 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.rename-group" msgstr "Gruppe umbenennen" -#: src/app/main/ui/workspace/sidebar/assets.cljs:173 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.search" msgstr "Assets suchen" #: src/app/main/ui/workspace/sidebar/assets.cljs -#, unused msgid "workspace.assets.selected-count" msgid_plural "workspace.assets.selected-count" msgstr[0] "%s Element ausgewählt" msgstr[1] "%s Elemente ausgewählt" #: src/app/main/ui/workspace/sidebar/assets.cljs -#, unused msgid "workspace.assets.shared-library" msgstr "Geteilte Bibliothek" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:221 +#: src/app/main/ui/workspace/sidebar/assets/common.cljs msgid "workspace.assets.sidebar.components" msgid_plural "workspace.assets.sidebar.components" msgstr[0] "1 Komponente" msgstr[1] "% Komponenten" -#: src/app/main/ui/workspace/sidebar/assets.cljs:193 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.sort" msgstr "Sortieren" -#: src/app/main/ui/dashboard/grid.cljs:134, src/app/main/ui/dashboard/grid.cljs:189, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:397, src/app/main/ui/workspace/sidebar/assets.cljs:155 +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.typography" msgstr "Textstile" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused msgid "workspace.assets.typography.font-id" msgstr "Schriftart" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:505 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.font-size" msgstr "Größe" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:501 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.font-variant-id" msgstr "Variante" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:523 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.go-to-edit" msgstr "Wechseln Sie zur Stilbibliotheksdatei, um sie zu bearbeiten" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:513 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.letter-spacing" msgstr "Zeichenabstand" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:509 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.line-height" msgstr "Zeilenabstand" -#: src/app/main/ui/dashboard/grid.cljs:199, src/app/main/ui/workspace/libraries.cljs:461, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:464, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:489, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:596, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:615 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, +#: src/app/main/ui/inspect/attributes/text.cljs, +#: src/app/main/ui/inspect/attributes/text.cljs msgid "workspace.assets.typography.sample" msgstr "Ag" -#, unused msgid "workspace.assets.typography.text-styles" msgstr "Textstile" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:517 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.text-transform" msgstr "Texttransformation" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:66 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.ungroup" msgstr "Gruppierung aufheben" -#: src/app/main/ui/workspace/context_menu.cljs:634 msgid "workspace.context-menu.grid-cells.area" msgstr "Bereich erstellen" -#: src/app/main/ui/workspace/context_menu.cljs:637 msgid "workspace.context-menu.grid-cells.create-board" msgstr "Board erstellen" -#: src/app/main/ui/workspace/context_menu.cljs:629 msgid "workspace.context-menu.grid-cells.merge" msgstr "Zellen zusammenführen" -#: src/app/main/ui/workspace/context_menu.cljs:594 msgid "workspace.context-menu.grid-track.column.add-after" msgstr "1 Spalte rechts einfügen" -#: src/app/main/ui/workspace/context_menu.cljs:593 msgid "workspace.context-menu.grid-track.column.add-before" msgstr "1 Spalte links einfügen" -#: src/app/main/ui/workspace/context_menu.cljs:595 msgid "workspace.context-menu.grid-track.column.delete" msgstr "Spalte löschen" -#: src/app/main/ui/workspace/context_menu.cljs:596 msgid "workspace.context-menu.grid-track.column.delete-shapes" msgstr "Spalte und Formen löschen" -#: src/app/main/ui/workspace/context_menu.cljs:592 msgid "workspace.context-menu.grid-track.column.duplicate" msgstr "Spalte duplizieren" -#: src/app/main/ui/workspace/context_menu.cljs:601 msgid "workspace.context-menu.grid-track.row.add-after" msgstr "1 Zeile unterhalb einfügen" -#: src/app/main/ui/workspace/context_menu.cljs:600 msgid "workspace.context-menu.grid-track.row.add-before" msgstr "1 Zeile oberhalb einfügen" -#: src/app/main/ui/workspace/context_menu.cljs:602 msgid "workspace.context-menu.grid-track.row.delete" msgstr "Zeile löschen" -#: src/app/main/ui/workspace/context_menu.cljs:603 msgid "workspace.context-menu.grid-track.row.delete-shapes" msgstr "Zeile und Formen löschen" -#: src/app/main/ui/workspace/context_menu.cljs:599 msgid "workspace.context-menu.grid-track.row.duplicate" msgstr "Zeile duplizieren" -#: src/app/main/ui/workspace/sidebar/layers.cljs:525 msgid "workspace.focus.focus-mode" msgstr "Fokus-Modus" -#: src/app/main/ui/workspace/context_menu.cljs:287, src/app/main/ui/workspace/context_menu.cljs:553 msgid "workspace.focus.focus-off" msgstr "Fokus aus" -#: src/app/main/ui/workspace/context_menu.cljs:286 msgid "workspace.focus.focus-on" msgstr "Fokus an" -#, unused msgid "workspace.focus.selection" msgstr "Auswahl" -#: src/app/util/color.cljs:34 +#: src/app/main/data/workspace/libraries.cljs, +#: src/app/main/ui/components/color_bullet.cljs msgid "workspace.gradients.linear" msgstr "Linearer Farbverlauf" -#: src/app/util/color.cljs:35 +#: src/app/main/data/workspace/libraries.cljs, +#: src/app/main/ui/components/color_bullet.cljs msgid "workspace.gradients.radial" msgstr "Radialer Farbverlauf" -#: src/app/main/ui/workspace/main_menu.cljs:238 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.disable-dynamic-alignment" msgstr "Dynamische Ausrichtung deaktivieren" -#: src/app/main/ui/workspace/main_menu.cljs:192 msgid "workspace.header.menu.disable-scale-content" msgstr "Proportionale Skalierung deaktivieren" #: src/app/main/ui/workspace/header.cljs -#, unused msgid "workspace.header.menu.disable-scale-text" msgstr "Textskalierung deaktivieren" -#: src/app/main/ui/workspace/main_menu.cljs:223 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.disable-snap-guides" msgstr "Ausrichten an Hilfslinien deaktivieren" -#: src/app/main/ui/workspace/main_menu.cljs:253 msgid "workspace.header.menu.disable-snap-pixel-grid" msgstr "Ausrichten am Pixel deaktivieren" -#: src/app/main/ui/workspace/main_menu.cljs:207 -msgid "workspace.header.menu.disable-snap-ruler-guides" -msgstr "An den Hilfslinien des Lineals ausrichten deaktivieren" - -#: src/app/main/ui/workspace/main_menu.cljs:239 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.enable-dynamic-alignment" msgstr "Dynamische Ausrichtung aktivieren" -#: src/app/main/ui/workspace/main_menu.cljs:193 msgid "workspace.header.menu.enable-scale-content" msgstr "Proportionale Skalierung aktivieren" #: src/app/main/ui/workspace/header.cljs -#, unused msgid "workspace.header.menu.enable-scale-text" msgstr "Textskalierung aktivieren" -#: src/app/main/ui/workspace/main_menu.cljs:224 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.enable-snap-guides" msgstr "An Hilfslinien ausrichten" -#: src/app/main/ui/workspace/main_menu.cljs:254 msgid "workspace.header.menu.enable-snap-pixel-grid" msgstr "Ausrichten am Pixel aktivieren" -#: src/app/main/ui/workspace/main_menu.cljs:208 -msgid "workspace.header.menu.enable-snap-ruler-guides" -msgstr "An den Hilfslinien des Lineals ausrichten" - -#: src/app/main/ui/workspace/main_menu.cljs:382 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.hide-artboard-names" msgstr "Namen von Zeichenflächen ausblenden" -#: src/app/main/ui/workspace/main_menu.cljs:336 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.hide-guides" msgstr "Hilfslinien ausblenden" -#: src/app/main/ui/workspace/main_menu.cljs:353 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.hide-palette" msgstr "Farbpalette ausblenden" -#: src/app/main/ui/workspace/main_menu.cljs:394 msgid "workspace.header.menu.hide-pixel-grid" msgstr "Pixelraster ausblenden" -#: src/app/main/ui/workspace/main_menu.cljs:320 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.hide-rules" msgstr "Lineale ausblenden" -#: src/app/main/ui/workspace/main_menu.cljs:367 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.hide-textpalette" msgstr "Schriftartenpalette ausblenden" -#: src/app/main/ui/workspace/main_menu.cljs:731 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.edit" msgstr "Bearbeiten" -#: src/app/main/ui/workspace/main_menu.cljs:720 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.file" msgstr "Datei" -#: src/app/main/ui/workspace/main_menu.cljs:777 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.help-info" msgstr "Hilfe und Infos" -#: src/app/main/ui/workspace/main_menu.cljs:753 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.preferences" msgstr "Einstellungen" -#: src/app/main/ui/workspace/main_menu.cljs:742 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.view" msgstr "Ansicht" -#: src/app/main/ui/workspace/main_menu.cljs:459 msgid "workspace.header.menu.redo" msgstr "Wiederherstellen" -#: src/app/main/ui/workspace/main_menu.cljs:432 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.select-all" msgstr "Alles auswählen" -#: src/app/main/ui/workspace/main_menu.cljs:383 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.show-artboard-names" msgstr "Namen der Zeichenflächen anzeigen" -#: src/app/main/ui/workspace/main_menu.cljs:337 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.show-guides" msgstr "Hilfslinien anzeigen" -#: src/app/main/ui/workspace/main_menu.cljs:354 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.show-palette" msgstr "Farbpalette einblenden" -#: src/app/main/ui/workspace/main_menu.cljs:395 msgid "workspace.header.menu.show-pixel-grid" msgstr "Pixelraster einblenden" -#: src/app/main/ui/workspace/main_menu.cljs:321 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.show-rules" msgstr "Lineale einblenden" -#: src/app/main/ui/workspace/main_menu.cljs:368 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.show-textpalette" msgstr "Schriftartenpalette anzeigen" -#: src/app/main/ui/workspace/main_menu.cljs:279 msgid "workspace.header.menu.toggle-dark-theme" msgstr "Zum dunklen Theme wechseln" -#: src/app/main/ui/workspace/main_menu.cljs:278 msgid "workspace.header.menu.toggle-light-theme" msgstr "Zum hellen Theme wechseln" -#: src/app/main/ui/workspace/main_menu.cljs:446 msgid "workspace.header.menu.undo" msgstr "Rückgängig" -#: src/app/main/ui/viewer/header.cljs:98, src/app/main/ui/workspace/right_header.cljs:120 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.reset-zoom" msgstr "Zurücksetzen" #: src/app/main/ui/workspace/header.cljs -#, unused msgid "workspace.header.save-error" msgstr "Fehler beim Speichern" -#: src/app/main/ui/workspace/right_header.cljs:52 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.saved" msgstr "Gespeichert" #: src/app/main/ui/workspace/header.cljs -#, unused msgid "workspace.header.saving" msgstr "Speichern" -#: src/app/main/ui/workspace/right_header.cljs:42, src/app/main/ui/workspace/right_header.cljs:47 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.unsaved" msgstr "Ungespeicherte Änderungen" -#: src/app/main/ui/workspace/right_header.cljs:239 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.viewer" msgstr "Ansichtsmodus (%s)" -#: src/app/main/ui/viewer/header.cljs:79, src/app/main/ui/workspace/right_header.cljs:103 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom" msgstr "Vergrößern" -#: src/app/main/ui/viewer/header.cljs:109 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom-fill" msgstr "Füllen - Skalieren zum Füllen" -#: src/app/main/ui/viewer/header.cljs:102 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom-fit" msgstr "Anpassen - Verkleinern zum Einpassen" -#: src/app/main/ui/workspace/right_header.cljs:123 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom-fit-all" msgstr "Passend zoomen" -#: src/app/main/ui/viewer/header.cljs:116 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom-full-screen" msgstr "Vollbild" -#: src/app/main/ui/workspace/right_header.cljs:130 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom-selected" msgstr "Zur Auswahl zoomen" -#: src/app/main/ui/workspace/sidebar/options/menus/grid_cell.cljs:273, src/app/main/ui/workspace/sidebar/options/menus/grid_cell.cljs:275, src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:612 msgid "workspace.layout_grid.editor.options.edit-grid" msgstr "Grid bearbeiten" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:1280 msgid "workspace.layout_grid.editor.options.exit" msgstr "Beenden" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:483 msgid "workspace.layout_grid.editor.padding.expand" msgstr "4-seitige Abstandsoptionen anzeigen" -#: src/app/main/ui/workspace/viewport/grid_layout_editor.cljs:59 msgid "workspace.layout_grid.editor.title" msgstr "Raster bearbeiten" -#: src/app/main/ui/workspace/viewport/grid_layout_editor.cljs:65 msgid "workspace.layout_grid.editor.top-bar.done" msgstr "Fertig" -#: src/app/main/ui/workspace/viewport/grid_layout_editor.cljs:62 msgid "workspace.layout_grid.editor.top-bar.locate" msgstr "Lokalisieren" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:1306 msgid "workspace.layout_grid.editor.top-bar.locate.tooltip" msgstr "Grid-Layout lokalisieren" #: src/app/main/ui/workspace/libraries.cljs -#, unused msgid "workspace.libraries.add" msgstr "Hinzufügen" -#: src/app/main/ui/workspace/libraries.cljs:80, src/app/main/ui/workspace/libraries.cljs:99 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.colors" msgstr "%s Farben" -#: src/app/main/ui/workspace/color_palette.cljs:126 +#: src/app/main/ui/workspace/colorpalette.cljs msgid "workspace.libraries.colors.empty-palette" msgstr "In Ihrer Bibliothek sind noch keine Farbstile vorhanden" -#: src/app/main/ui/workspace/text_palette.cljs:150 +#: src/app/main/ui/workspace/textpalette.cljs msgid "workspace.libraries.colors.empty-typography-palette" msgstr "In Ihrer Bibliothek sind noch keine Textstile vorhanden" -#: src/app/main/ui/workspace/color_palette_ctx_menu.cljs:60, src/app/main/ui/workspace/colorpicker/libraries.cljs:73, src/app/main/ui/workspace/text_palette_ctx_menu.cljs:50 +#: src/app/main/ui/workspace/colorpicker/libraries.cljs, +#: src/app/main/ui/workspace/colorpalette.cljs msgid "workspace.libraries.colors.file-library" msgstr "Dateibibliothek" #: src/app/main/ui/workspace/colorpicker.cljs -#, unused msgid "workspace.libraries.colors.hsv" msgstr "HSV" -#: src/app/main/ui/workspace/color_palette_ctx_menu.cljs:82, src/app/main/ui/workspace/colorpicker/libraries.cljs:72 +#: src/app/main/ui/workspace/colorpicker/libraries.cljs, +#: src/app/main/ui/workspace/colorpalette.cljs msgid "workspace.libraries.colors.recent-colors" msgstr "Aktuelle Farben" #: src/app/main/ui/workspace/colorpicker.cljs -#, unused msgid "workspace.libraries.colors.rgb-complementary" msgstr "RGB-komplementär" #: src/app/main/ui/workspace/colorpicker.cljs -#, unused msgid "workspace.libraries.colors.rgba" msgstr "RGBA" -#: src/app/main/ui/workspace/colorpicker.cljs:372 +#: src/app/main/ui/workspace/colorpicker.cljs msgid "workspace.libraries.colors.save-color" msgstr "Farbstil speichern" -#: src/app/main/ui/workspace/libraries.cljs:74, src/app/main/ui/workspace/libraries.cljs:91 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.components" msgstr "%s Komponenten" -#: src/app/main/ui/workspace/libraries.cljs:215 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.file-library" msgstr "Dateibibliothek" -#: src/app/main/ui/workspace/libraries.cljs:77, src/app/main/ui/workspace/libraries.cljs:95 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.graphics" msgstr "%s Grafik(en)" -#: src/app/main/ui/workspace/libraries.cljs:209 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.in-this-file" msgstr "BIBLIOTHEKEN IN DIESER DATEI" -#: src/app/main/ui/workspace/libraries.cljs:526, src/app/main/ui/workspace/libraries.cljs:531 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.libraries" msgstr "BIBLIOTHEKEN" #: src/app/main/ui/workspace/libraries.cljs -#, unused msgid "workspace.libraries.library" msgstr "BIBLIOTHEK" -#: src/app/main/ui/workspace/libraries.cljs:382 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.library-updates" msgstr "AKTUALISIERUNGEN DER BIBLIOTHEK" -#: src/app/main/ui/workspace/libraries.cljs:290 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.loading" msgstr "Laden…" -#: src/app/main/ui/workspace/libraries.cljs:380 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.no-libraries-need-sync" msgstr "" -"Es gibt keine gemeinsam genutzte Bibliotheken, die aktualisiert werden " -"müssen" +"Es gibt keine gemeinsam genutzte Bibliotheken, die aktualisiert werden müssen" -#: src/app/main/ui/workspace/libraries.cljs:299 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.no-matches-for" msgstr "Keine Übereinstimmungen für “%s“ gefunden" -#: src/app/main/ui/workspace/libraries.cljs:296 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.no-shared-libraries-available" msgstr "Es sind keine gemeinsam genutzte Bibliotheken verfügbar" -#: src/app/main/ui/workspace/libraries.cljs:260 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.search-shared-libraries" msgstr "Suche nach gemeinsam genutzten Bibliotheken" -#: src/app/main/ui/workspace/libraries.cljs:256 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.shared-libraries" msgstr "GEMEINSAM GENUTZTE BIBLIOTHEKEN" -#: src/app/main/ui/workspace/libraries.cljs:282 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.shared-library-btn" msgstr "Bibliothek verknüpfen" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:308 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.libraries.text.multiple-typography" msgstr "Mehrere Textstile" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:311 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.libraries.text.multiple-typography-tooltip" msgstr "Verknüpfung aller Textstile aufheben" -#: src/app/main/ui/workspace/libraries.cljs:83, src/app/main/ui/workspace/libraries.cljs:103 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.typography" msgstr "%s Textstile" -#: src/app/main/ui/workspace/libraries.cljs:249 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.unlink-library-btn" msgstr "Bibliothek trennen" -#: src/app/main/ui/workspace/libraries.cljs:402 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.update" msgstr "Aktualisieren" -#: src/app/main/ui/workspace/libraries.cljs:477 +#: src/app/main/data/workspace/libraries.cljs msgid "workspace.libraries.update.see-all-changes" msgstr "alle Änderungen anzeigen" -#: src/app/main/ui/workspace/libraries.cljs:536 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.updates" msgstr "AKTUALISIERUNG" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:737 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.add-interaction" msgstr "Klicken Sie auf den + Button um Interaktionen hinzuzufügen." -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:86, src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:102 +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs msgid "workspace.options.blur-options.title" msgstr "Weichzeichnen" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:85 +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs msgid "workspace.options.blur-options.title.group" msgstr "Gruppe weichzeichnen" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:84 +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs msgid "workspace.options.blur-options.title.multiple" msgstr "Auswahl weichzeichnen" -#: src/app/main/ui/workspace/sidebar/options/page.cljs:32, src/app/main/ui/workspace/sidebar/options/page.cljs:39 +#: src/app/main/ui/workspace/sidebar/options/page.cljs msgid "workspace.options.canvas-background" msgstr "Hintergrundfarbe" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:548 msgid "workspace.options.clip-content" msgstr "Inhalt beschneiden" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:600, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:605 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs msgid "workspace.options.component" msgstr "Komponente" -#: src/app/main/ui/viewer/inspect/annotation.cljs:19, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:181 msgid "workspace.options.component.annotation" msgstr "Anmerkung" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:610 msgid "workspace.options.component.copy" msgstr "Kopie" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:173 msgid "workspace.options.component.create-annotation" msgstr "Eine Anmerkung erstellen" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:172 msgid "workspace.options.component.edit-annotation" msgstr "Eine Anmerkung bearbeiten" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:609 msgid "workspace.options.component.main" msgstr "Hauptkomponente" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:427 msgid "workspace.options.component.swap" msgstr "Komponente austauschen" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:471 msgid "workspace.options.component.swap.empty" msgstr "Es gibt noch keine Assets in dieser Bibliothek" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:163 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints" msgstr "Beschränkungen" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:150 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.bottom" msgstr "Unten" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:141, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:152 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.center" msgstr "Mittig" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:229 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.fix-when-scrolling" msgstr "Beim Scrollen fixieren" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:138 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.left" msgstr "Links" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:140 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.leftright" msgstr "Links & Rechts" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:139 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.right" msgstr "Rechts" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:142, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:153 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.scale" msgstr "Skalieren" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:149 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.top" msgstr "Oben" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:151 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.topbottom" msgstr "Oben & Unten" -#: src/app/main/ui/workspace/sidebar/options.cljs:112 +#: src/app/main/ui/workspace/sidebar/options.cljs msgid "workspace.options.design" msgstr "Design" -#: src/app/main/ui/viewer/inspect/exports.cljs:139 +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, +#: src/app/main/ui/inspect/exports.cljs msgid "workspace.options.export" msgstr "Exportieren" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, +#: src/app/main/ui/inspect/exports.cljs msgid "workspace.options.export-multiple" msgstr "Auswahl exportieren" -#: src/app/main/ui/viewer/inspect/exports.cljs:195, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:237 +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, +#: src/app/main/ui/inspect/exports.cljs msgid "workspace.options.export-object" msgid_plural "workspace.options.export-object" msgstr[0] "Ein Element exportieren" msgstr[1] "%s Elemente exportieren" -#: src/app/main/ui/viewer/inspect/exports.cljs:178, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:219 +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs msgid "workspace.options.export.suffix" msgstr "Suffix" -#: src/app/main/ui/export.cljs:240 +#: 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.exporting-complete" msgstr "Export abgeschlossen" -#: src/app/main/ui/export.cljs:172, src/app/main/ui/export.cljs:241, src/app/main/ui/viewer/inspect/exports.cljs:194, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:236 +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, +#: src/app/main/ui/inspect/exports.cljs msgid "workspace.options.exporting-object" msgstr "Exportiere…" -#: src/app/main/ui/export.cljs:239 +#: 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.exporting-object-error" msgstr "Export fehlgeschlagen" -#: src/app/main/ui/export.cljs:242 +#: 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.exporting-object-slow" msgstr "Export unerwartet langsam" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:49, src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:174 +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs msgid "workspace.options.fill" msgstr "Fläche" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:178 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.flows.add-flow-start" msgstr "Flow-Startpunkt hinzufügen" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:174 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.flows.flow" msgstr "Flow" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -#, unused msgid "workspace.options.flows.flow-start" msgstr "Flow-Startpunkt" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:161 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.flows.flow-starts" msgstr "Flow-Startpunkte" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:29 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.auto" msgstr "Automatisch" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:157 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.column" msgstr "Spalten" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.grid-title" msgstr "Raster" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:196, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:237 msgid "workspace.options.grid.params.color" msgstr "Farbe" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.params.columns" msgstr "Spalten" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:259 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.gutter" msgstr "Zwischenräume" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:246 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.height" msgstr "Höhe" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:270 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.margin" msgstr "Rand" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.params.rows" msgstr "Zeilen" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:216, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:290 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.set-default" msgstr "Als Standard festlegen" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.params.size" msgstr "Größe" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.params.type" msgstr "Art" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:231 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.bottom" msgstr "Unten" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:229 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.center" msgstr "Zentriert" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:228 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.left" msgstr "Links" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:232 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.right" msgstr "Rechts" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:225 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.stretch" msgstr "Gestreckt" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:227 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.top" msgstr "Oben" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:211, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:288 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.use-default" msgstr "Standardwerte verwenden" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:247 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.width" msgstr "Breite" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:158 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.row" msgstr "Zeile" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:156 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.square" msgstr "Quadrat" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:48 +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs msgid "workspace.options.group-fill" msgstr "Gruppe füllen" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:42 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.group-stroke" msgstr "Gruppe einrahmen" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:310 msgid "workspace.options.guides.title" msgstr "Hilfslinien" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:406 msgid "workspace.options.height" msgstr "Höhe" -#: src/app/main/ui/workspace/sidebar/options.cljs:161 msgid "workspace.options.inspect" msgstr "Spezifikation" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:468 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-action" msgstr "Aktion" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:41, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:367 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-after-delay" msgstr "nach einer Verzögerung" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:614 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-animation" msgstr "Animation" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:406 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-animation-dissolve" msgstr "Auflösen" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:405 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-animation-none" msgstr "Keine" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:412 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-animation-push" msgstr "Push" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:407 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-animation-slide" msgstr "Reinfahren" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:391 msgid "workspace.options.interaction-auto" msgstr "Automatisch" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:604 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-background" msgstr "Hintergrund hinzufügen" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:590 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-close-outside" msgstr "Schließen, wenn außerhalb geklickt wird" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:372 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-close-overlay" msgstr "Overlay schließen" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:56 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-close-overlay-dest" msgstr "Overlay %s schließen" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:456 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-delay" msgstr "Verzögerung" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:478 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-destination" msgstr "Ziel" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:661 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-duration" msgstr "Dauer" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:674 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing" msgstr "Easing" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:416 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing-ease" msgstr "Ease" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:417 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing-ease-in" msgstr "Ease in" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:419 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing-ease-in-out" msgstr "Ease in out" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:418 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing-ease-out" msgstr "Ease out" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:415 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing-linear" msgstr "Linear" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -#, unused msgid "workspace.options.interaction-in" msgstr "In" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:39, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:364 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-mouse-enter" msgstr "Mauszeiger-Eintritt" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:40, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:365 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-mouse-leave" msgstr "Mauszeiger-Austritt" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:458, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:459, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:464, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:663, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:665, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:669 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-ms" msgstr "ms" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:369 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-navigate-to" msgstr "Navigation zu" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:50 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-navigate-to-dest" msgstr "Navigation zu: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:51, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:53, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:55, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:380 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-none" msgstr "(nicht festgelegt)" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:691 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-offset-effect" msgstr "Offset-Effekt" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:35, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:360 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-on-click" msgstr "Beim Klicken" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:370 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-open-overlay" msgstr "Overlay öffnen" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:52 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-open-overlay-dest" msgstr "Overlay %s öffnen" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:59, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:374 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-open-url" msgstr "URL öffnen" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -#, unused msgid "workspace.options.interaction-out" msgstr "Out" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:403 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-bottom-center" msgstr "Unten mittig" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:401 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-bottom-left" msgstr "Unten links" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:402 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-bottom-right" msgstr "Unten rechts" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:397 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-center" msgstr "Zentriert" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:396 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-manual" msgstr "Manuell" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:400 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-top-center" msgstr "Oben mittig" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:398 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-top-left" msgstr "Oben links" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:399 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-top-right" msgstr "Oben rechts" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:524 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-position" msgstr "Position" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:494 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-preserve-scroll" msgstr "Scrollposition beibehalten" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:58, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:373 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-prev-screen" msgstr "Zum vorherigen Screen" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:515 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-relative-to" msgstr "Relativ zu" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:57, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:379, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:393, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:394 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-self" msgstr "sich selbst" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:371 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-toggle-overlay" msgstr "Overlay-Sichtbarkeit umschalten" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:54 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-toggle-overlay-dest" msgstr "Overlay-Sichtbarkeit für %s umschalten" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:445 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-trigger" msgstr "Auslöser" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:503 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-url" msgstr "URL" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:37, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:362 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-while-hovering" msgstr "Beim Überfahren mit dem Mauszeiger" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:38, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:363 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-while-pressing" msgstr "Bei gedrückter Maustaste" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:724 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interactions" msgstr "Interaktionen" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:137 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.color" msgstr "Farbe" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:126 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.color-burn" msgstr "Farbig nachbelichten" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:129 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.color-dodge" msgstr "Farbig abwedeln" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:124 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.darken" msgstr "Abdunkeln" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:133 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.difference" msgstr "Differenz" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:134 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.exclusion" msgstr "Ausschluss" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:132 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.hard-light" msgstr "Hartes Licht" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:135 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.hue" msgstr "Farbton" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:127 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.lighten" msgstr "Aufhellen" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:138 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.luminosity" msgstr "Luminanz" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:125 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.multiply" msgstr "Multiplizieren" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:123 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.normal" msgstr "Normal" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:130 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.overlay" msgstr "Ineinanderkopieren" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:136 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.saturation" msgstr "Sättigung" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:128 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.screen" msgstr "Negativ multiplizieren" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:131 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.soft-light" msgstr "Weiches Licht" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -#, unused msgid "workspace.options.layer-options.title" msgstr "Ebene" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -#, unused msgid "workspace.options.layer-options.title.group" msgstr "Ebenen gruppieren" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -#, unused msgid "workspace.options.layer-options.title.multiple" msgstr "Ausgewählte Ebenen" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout-item.advanced-ops" msgstr "Erweiterte Optionen" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:564 +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs msgid "workspace.options.layout-item.layout-item-max-h" msgstr "Max.Höhe" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:531 +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs msgid "workspace.options.layout-item.layout-item-max-w" msgstr "Max.Breite" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:548 +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs msgid "workspace.options.layout-item.layout-item-min-h" msgstr "Min.Höhe" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:515 +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs msgid "workspace.options.layout-item.layout-item-min-w" msgstr "Min.Breite" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout-item.title.layout-item-max-h" msgstr "Maximale Höhe" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout-item.title.layout-item-max-w" msgstr "Maximale Breite" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout-item.title.layout-item-min-h" msgstr "Mindesthöhe" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout-item.title.layout-item-min-w" msgstr "Mindestbreite" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.bottom" msgstr "Unten" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.direction.column" msgstr "Spalte" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.direction.column-reverse" msgstr "Spalte umkehren" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.direction.row" msgstr "Reihe" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.direction.row-reverse" msgstr "Reihe umkehren" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.gap" msgstr "Abstand" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.left" msgstr "Links" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout.margin" msgstr "Rand" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout.margin-all" msgstr "Alle Seiten" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout.margin-simple" msgstr "Einfacher Rand" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.packed" msgstr "kompakt" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.padding" msgstr "Padding" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.padding-all" msgstr "Alle Seiten" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.padding-simple" msgstr "Einfaches Padding" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.right" msgstr "Rechts" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.space-around" msgstr "im Leerraum verteilt" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.space-between" msgstr "Abstand zwischen" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.top" msgstr "Oben" -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:146 +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs msgid "workspace.options.more-colors" msgstr "Weitere Farben" -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:123 +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs msgid "workspace.options.more-lib-colors" msgstr "Weitere Bibliotheksfarben" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:161 msgid "workspace.options.opacity" msgstr "Deckkraft" -#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.position" msgstr "Position" -#: src/app/main/ui/workspace/sidebar/options.cljs:157 +#: src/app/main/ui/workspace/sidebar/options.cljs msgid "workspace.options.prototype" msgstr "Prototyp" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:469, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:481 msgid "workspace.options.radius" msgstr "Radius" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:513 +#: 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:522 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.radius-bottom-right" msgstr "Unten rechts" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:495 +#: 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:504 +#: 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:532 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.radius.all-corners" msgstr "Alle Ecken" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:533 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.radius.single-corners" msgstr "Ecken einzeln anpassen" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:183 msgid "workspace.options.recent-fonts" msgstr "Aktuell" -#: src/app/main/ui/export.cljs:284 +#: 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 "Wiederholen" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:451 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.rotation" msgstr "Drehung" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:180 msgid "workspace.options.search-font" msgstr "Schriftart suchen" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:741 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.select-a-shape" msgstr "" "Wählen Sie eine Form, Zeichenfläche oder Gruppe aus, um eine Verbindung zu " "einer anderen Zeichenfläche herzustellen." -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:105 +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs msgid "workspace.options.selection-color" msgstr "Ausgewählte Farben" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:47 +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs msgid "workspace.options.selection-fill" msgstr "Auswahl füllen" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:41 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.selection-stroke" msgstr "Auswahl einrahmen" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:40, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:198, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:200 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.blur" msgstr "Weichzeichnen" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:238 msgid "workspace.options.shadow-options.color" msgstr "Schattenfarbe" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:144 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.drop-shadow" msgstr "Schlagschatten" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:145 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.inner-shadow" msgstr "Schatten nach innen" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:38, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:186 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.offsetx" msgstr "X" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:39, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:224 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.offsety" msgstr "Y" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:41, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:211, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:213 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.spread" msgstr "Streuung" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:296 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.title" msgstr "Schatten" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:295 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.title.group" msgstr "Gruppe schattieren" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:294 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.title.multiple" msgstr "Auswahl schattieren" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:193 +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs msgid "workspace.options.show-fill-on-export" msgstr "In Exporten anzeigen" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:562 msgid "workspace.options.show-in-viewer" msgstr "Im Ansichtsmodus anzeigen" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:162 +#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.size" msgstr "Größe" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:355 +#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs msgid "workspace.options.size-presets" msgstr "Größenvoreinstellungen" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:43 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke" msgstr "Rahmen" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -#, unused msgid "workspace.options.stroke-cap.circle-marker" msgstr "Punkt" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:129 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.circle-marker-short" msgstr "Kreis" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -#, unused msgid "workspace.options.stroke-cap.diamond-marker" msgstr "Diamant-Marker" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:130 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.diamond-marker-short" msgstr "Diamant" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -#, unused msgid "workspace.options.stroke-cap.line-arrow" msgstr "Pfeil" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:126 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.line-arrow-short" msgstr "Pfeil" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:124 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.none" msgstr "Keine" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:132 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.round" msgstr "Rund" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:133 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.square" msgstr "Rechteckig" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -#, unused msgid "workspace.options.stroke-cap.square-marker" msgstr "Quadrat" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:128 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.square-marker-short" msgstr "Rechteck" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -#, unused msgid "workspace.options.stroke-cap.triangle-arrow" msgstr "Dreieckiger Pfeil" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:127 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.triangle-arrow-short" msgstr "Dreieck" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:192 msgid "workspace.options.stroke-color" msgstr "Konturfarbe" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:165 msgid "workspace.options.stroke-width" msgstr "Konturbreite" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:87 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.center" msgstr "Zentriert" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:105 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.dashed" msgstr "Gestrichelt" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:104 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.dotted" msgstr "Gepunktet" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:88 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.inner" msgstr "Innen" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:106 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.mixed" msgstr "Mehrere" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:89 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.outer" msgstr "Außen" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:103 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.solid" msgstr "Durchgezogen" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:115 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.align-bottom" msgstr "Unten ausrichten" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:111 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.align-middle" msgstr "An Mitte ausrichten" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:107 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.align-top" msgstr "Oben ausrichten" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:82 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.direction-ltr" msgstr "von links nach rechts" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:87 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.direction-rtl" msgstr "von rechts nach links" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:149 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.grow-auto-height" msgstr "Automatische Höhe" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:145 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.grow-auto-width" msgstr "Automatische Breite" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:141 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.grow-fixed" msgstr "Feste Größe" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:381 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.options.text-options.letter-spacing" msgstr "Zeichenabstand" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:364 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.options.text-options.line-height" msgstr "Zeilenabstand" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused msgid "workspace.options.text-options.lowercase" msgstr "Kleinbuchstaben" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.options.text-options.none" msgstr "Keine" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:176 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.strikethrough" msgstr "Durchgestrichen (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:51 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.text-align-center" msgstr "Zentrieren (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:59 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.text-align-justify" msgstr "Ausrichtung in der Breite (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:47 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.text-align-left" msgstr "Linksbündig ausrichten (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:55 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.text-align-right" msgstr "Rechtsbündig ausrichten (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:189 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.title" msgstr "Text" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:188 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.title-group" msgstr "Gruppe Text" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:187 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.title-selection" msgstr "Ausgewählter Text" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused msgid "workspace.options.text-options.titlecase" msgstr "Kapitälchen" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:171 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.underline" msgstr "Unterstrichen (%s)" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused msgid "workspace.options.text-options.uppercase" msgstr "Großbuchstaben" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:745 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.use-play-button" msgstr "" "Verwenden Sie die Wiedergabetaste in der Kopfzeile, um die Prototypansicht " "zu wechseln." -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:395 msgid "workspace.options.width" msgstr "Breite" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:427 msgid "workspace.options.x" msgstr "X-Achse" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:438 msgid "workspace.options.y" msgstr "Y-Achse" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:167 msgid "workspace.path.actions.add-node" msgstr "Ankerpunkt hinzufügen (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:174 msgid "workspace.path.actions.delete-node" msgstr "Ankerpunkt entfernen (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:152 msgid "workspace.path.actions.draw-nodes" msgstr "Ankerpunkte zeichnen (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:189 msgid "workspace.path.actions.join-nodes" msgstr "Ankerpunkte verbinden (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:204 msgid "workspace.path.actions.make-corner" msgstr "in Ecke umwandeln (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:211 msgid "workspace.path.actions.make-curve" msgstr "in Kurve umwandeln (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:182 msgid "workspace.path.actions.merge-nodes" msgstr "Ankerpunkte zusammenlegen (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:159 msgid "workspace.path.actions.move-nodes" msgstr "Ankerpunkte verschieben (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:196 msgid "workspace.path.actions.separate-nodes" msgstr "Ankerpunkte trennen (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:218 msgid "workspace.path.actions.snap-nodes" msgstr "An Ankerpunkten ausrichten (%s)" -#: src/app/main/ui/workspace/plugins.cljs:55 -msgid "workspace.plugins.button-open" -msgstr "Öffnen" - -#: src/app/main/ui/workspace/plugins.cljs:164 -msgid "workspace.plugins.empty-plugins" -msgstr "Noch keine Plugins installiert" - -#: src/app/main/ui/workspace/plugins.cljs:157 -msgid "workspace.plugins.error.url" -msgstr "Das Plugin existiert nicht oder die URL ist nicht korrekt." - -#: src/app/main/ui/workspace/plugins.cljs:153 -msgid "workspace.plugins.install" -msgstr "Installieren" - -#: src/app/main/ui/workspace/plugins.cljs:170 -msgid "workspace.plugins.installed-plugins" -msgstr "Installierte Plugins" - -#: src/app/main/ui/workspace/main_menu.cljs:624 -msgid "workspace.plugins.menu.plugins-manager" -msgstr "Plugin-Manager" - -#: src/app/main/ui/workspace/main_menu.cljs:765 -msgid "workspace.plugins.menu.title" -msgstr "Plugins" - -#: src/app/main/ui/workspace/plugins.cljs:166 -msgid "workspace.plugins.plugin-list-link" -msgstr "Liste der Plugins" - -#: src/app/main/ui/workspace/plugins.cljs:149 -msgid "workspace.plugins.search-placeholder" -msgstr "Eine URL des Plugins eingeben" - -#, unused -msgid "workspace.plugins.success" -msgstr "Plugin wurde korrekt geladen." - -#: src/app/main/ui/workspace/plugins.cljs:143 -msgid "workspace.plugins.title" -msgstr "Plugins" - -#: src/app/main/ui/workspace/context_menu.cljs:441 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.add-flex" msgstr "Flex-Layout hinzufügen" -#: src/app/main/ui/workspace/context_menu.cljs:445 msgid "workspace.shape.menu.add-grid" msgstr "Grid-Layout hinzufügen" -#: src/app/main/ui/workspace/context_menu.cljs:193 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.back" msgstr "In den Hintergrund" -#: src/app/main/ui/workspace/context_menu.cljs:190 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.backward" msgstr "Eins nach hinten" -#: src/app/main/ui/workspace/context_menu.cljs:139 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.copy" msgstr "Kopieren" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:427 msgid "workspace.shape.menu.create-annotation" msgstr "Anmerkung erstellen" -#: src/app/main/ui/workspace/context_menu.cljs:275 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.create-artboard-from-selection" msgstr "Auswahl auf Zeichenfläche" -#: src/app/main/ui/workspace/context_menu.cljs:465 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.create-component" msgstr "Komponente erstellen" -#: src/app/main/ui/workspace/context_menu.cljs:469 msgid "workspace.shape.menu.create-multiple-components" msgstr "Mehrere Komponenten erstellen" -#: src/app/main/ui/workspace/context_menu.cljs:142 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.cut" msgstr "Ausschneiden" -#: src/app/main/ui/workspace/context_menu.cljs:486 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.delete" msgstr "Löschen" -#: src/app/main/ui/workspace/context_menu.cljs:391 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.delete-flow-start" msgstr "Startpunkt löschen" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:432 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.detach-instance" msgstr "Instanz trennen" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:431 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.detach-instances-in-bulk" msgstr "Instanzen trennen" -#: src/app/main/ui/workspace/context_menu.cljs:335, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:75 msgid "workspace.shape.menu.difference" msgstr "Subtrahieren" -#: src/app/main/ui/workspace/context_menu.cljs:148 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.duplicate" msgstr "Duplizieren" -#: src/app/main/ui/workspace/context_menu.cljs:321 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.edit" msgstr "Bearbeiten" -#: src/app/main/ui/workspace/context_menu.cljs:341 msgid "workspace.shape.menu.exclude" msgstr "Ausschließen" -#: src/app/main/ui/workspace/context_menu.cljs:348, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:89 msgid "workspace.shape.menu.flatten" msgstr "Pfade reduzieren" -#: src/app/main/ui/workspace/context_menu.cljs:208 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.flip-horizontal" msgstr "Horizontal spiegeln" -#: src/app/main/ui/workspace/context_menu.cljs:204 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.flip-vertical" msgstr "Vertikal spiegeln" -#: src/app/main/ui/workspace/context_menu.cljs:394 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.flow-start" msgstr "Startpunkt" -#: src/app/main/ui/workspace/context_menu.cljs:184 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.forward" msgstr "Eins nach vorne" -#: src/app/main/ui/workspace/context_menu.cljs:187 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.front" msgstr "In den Vordergrund" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.go-main" msgstr "Zur Hauptkomponentendatei wechseln" -#: src/app/main/ui/workspace/context_menu.cljs:261 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.group" msgstr "Gruppieren" -#: src/app/main/ui/workspace/context_menu.cljs:363, src/app/main/ui/workspace/sidebar/layer_item.cljs:145 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.hide" msgstr "Ausblenden" -#: src/app/main/ui/workspace/context_menu.cljs:548, src/app/main/ui/workspace/main_menu.cljs:408 msgid "workspace.shape.menu.hide-ui" msgstr "Benutzeroberfläche ein-/ausblenden" -#: src/app/main/ui/workspace/context_menu.cljs:338 msgid "workspace.shape.menu.intersection" msgstr "Überlappen" -#: src/app/main/ui/workspace/context_menu.cljs:371, src/app/main/ui/workspace/sidebar/layer_item.cljs:153 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.lock" msgstr "Sperren" -#: src/app/main/ui/workspace/context_menu.cljs:266 +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.mask" msgstr "Maskieren" -#: src/app/main/ui/workspace/context_menu.cljs:145, src/app/main/ui/workspace/context_menu.cljs:545 +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.paste" msgstr "Einfügen" -#: src/app/main/ui/workspace/context_menu.cljs:331 msgid "workspace.shape.menu.path" msgstr "Pfad" -#: src/app/main/ui/workspace/context_menu.cljs:432 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.remove-flex" msgstr "Flex-Layout entfernen" -#: src/app/main/ui/workspace/context_menu.cljs:435 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.remove-grid" msgstr "Grid-Layout entfernen" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:436 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.reset-overrides" msgstr "Änderungen zurücksetzen" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:439 msgid "workspace.shape.menu.restore-main" msgstr "Hauptkomponente wiederherstellen" -#: src/app/main/ui/workspace/context_menu.cljs:174 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.select-layer" msgstr "Ebene auswählen" -#: src/app/main/ui/workspace/context_menu.cljs:360, src/app/main/ui/workspace/sidebar/layer_item.cljs:144 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.show" msgstr "Anzeigen" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:424 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.show-in-assets" msgstr "Im Assets-Panel anzeigen" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:442, src/app/main/ui/workspace/sidebar/assets/components.cljs:586 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.show-main" msgstr "Hauptkomponente anzeigen" -#: src/app/main/ui/workspace/context_menu.cljs:221 msgid "workspace.shape.menu.thumbnail-remove" msgstr "Vorschaubild entfernen" -#: src/app/main/ui/workspace/context_menu.cljs:223 msgid "workspace.shape.menu.thumbnail-set" msgstr "Als Vorschaubild festlegen" -#: src/app/main/ui/workspace/context_menu.cljs:326 msgid "workspace.shape.menu.transform-to-path" msgstr "In Pfade umwandeln" -#: src/app/main/ui/workspace/context_menu.cljs:257 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.ungroup" msgstr "Gruppierung aufheben" -#: src/app/main/ui/workspace/context_menu.cljs:332, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:70 msgid "workspace.shape.menu.union" msgstr "Hinzufügen" -#: src/app/main/ui/workspace/context_menu.cljs:368, src/app/main/ui/workspace/sidebar/layer_item.cljs:152 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.unlock" msgstr "Entsperren" -#: src/app/main/ui/workspace/context_menu.cljs:271 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.unmask" msgstr "Maske entfernen" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.update-components-in-bulk" msgstr "Hauptkomponenten aktualisieren" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:445 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.update-main" msgstr "Hauptkomponente aktualisieren" -#: src/app/main/ui/components/tab_container.cljs:50 msgid "workspace.sidebar.collapse" msgstr "Seitenleiste ausblenden" -#: src/app/main/ui/workspace/sidebar/collapsable_button.cljs:26 msgid "workspace.sidebar.expand" msgstr "Seitenleiste einblenden" -#: src/app/main/ui/workspace/right_header.cljs:231, src/app/main/ui/workspace/right_header.cljs:232 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.sidebar.history" msgstr "Verlauf (%s)" -#: src/app/main/ui/workspace/sidebar/layers.cljs:522, src/app/main/ui/workspace/sidebar.cljs:100 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.sidebar.layers" msgstr "Ebenen" -#: src/app/main/ui/workspace/sidebar/layers.cljs:308, src/app/main/ui/workspace/sidebar/layers.cljs:380 msgid "workspace.sidebar.layers.components" msgstr "Komponenten" -#: src/app/main/ui/workspace/sidebar/layers.cljs:305, src/app/main/ui/workspace/sidebar/layers.cljs:338 msgid "workspace.sidebar.layers.frames" msgstr "Zeichenflächen" -#: src/app/main/ui/workspace/sidebar/layers.cljs:306, src/app/main/ui/workspace/sidebar/layers.cljs:352 msgid "workspace.sidebar.layers.groups" msgstr "Gruppen" -#: src/app/main/ui/workspace/sidebar/layers.cljs:310, src/app/main/ui/workspace/sidebar/layers.cljs:408 msgid "workspace.sidebar.layers.images" msgstr "Bilder" -#: src/app/main/ui/workspace/sidebar/layers.cljs:307, src/app/main/ui/workspace/sidebar/layers.cljs:366 msgid "workspace.sidebar.layers.masks" msgstr "Masken" -#: src/app/main/ui/workspace/sidebar/layers.cljs:289 msgid "workspace.sidebar.layers.search" msgstr "Ebenen durchsuchen" -#: src/app/main/ui/workspace/sidebar/layers.cljs:311, src/app/main/ui/workspace/sidebar/layers.cljs:422 msgid "workspace.sidebar.layers.shapes" msgstr "Formen" -#: src/app/main/ui/workspace/sidebar/layers.cljs:309, src/app/main/ui/workspace/sidebar/layers.cljs:394 msgid "workspace.sidebar.layers.texts" msgstr "Texte" -#: src/app/main/ui/viewer/inspect/attributes/svg.cljs:56, src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs:91 +#: src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs, +#: src/app/main/ui/inspect/attributes/svg.cljs msgid "workspace.sidebar.options.svg-attrs.title" msgstr "Importierte SVG-Attribute" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs:217 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs msgid "workspace.sidebar.sitemap" msgstr "Seiten" -#: src/app/main/ui/workspace/left_header.cljs:91 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.sitemap" msgstr "Sitemap" -#: src/app/main/ui/workspace/sidebar.cljs:120 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.assets" msgstr "Assets" -#: src/app/main/ui/workspace/palette.cljs:165, src/app/main/ui/workspace/palette.cljs:166 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.color-palette" msgstr "Farbpalette (%s)" -#: src/app/main/ui/workspace/right_header.cljs:220, src/app/main/ui/workspace/right_header.cljs:221 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.comments" msgstr "Kommentare (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:180, src/app/main/ui/workspace/top_toolbar.cljs:181 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.curve" msgstr "Stift (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:160, src/app/main/ui/workspace/top_toolbar.cljs:161 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.ellipse" msgstr "Ellipse (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:142, src/app/main/ui/workspace/top_toolbar.cljs:143 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.frame" msgstr "Zeichenfläche (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:59, src/app/main/ui/workspace/top_toolbar.cljs:60 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.image" msgstr "Bild (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:132, src/app/main/ui/workspace/top_toolbar.cljs:133 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.move" msgstr "Verschieben (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:189, src/app/main/ui/workspace/top_toolbar.cljs:190 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.path" msgstr "Pfad (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:151, src/app/main/ui/workspace/top_toolbar.cljs:152 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.rect" msgstr "Rechteck (%s)" #: src/app/main/ui/workspace/left_toolbar.cljs -#, unused msgid "workspace.toolbar.shortcuts" msgstr "Tastaturkürzel (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:169, src/app/main/ui/workspace/top_toolbar.cljs:170 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.text" msgstr "Text (%s)" -#: src/app/main/ui/workspace/palette.cljs:173, src/app/main/ui/workspace/palette.cljs:174 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.text-palette" msgstr "Typografien (%s)" -#: src/app/main/ui/workspace/viewport/top_bar.cljs:38 msgid "workspace.top-bar.read-only.done" msgstr "Fertig" -#: src/app/main/ui/workspace/viewport/top_bar.cljs:35 -#, markdown msgid "workspace.top-bar.view-only" msgstr "**Code inspizieren** (nur ansehen)" -#: src/app/main/ui/workspace/sidebar/history.cljs:342 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.empty" msgstr "Es gibt bisher keine Änderungen im Verlauf" -#: src/app/main/ui/workspace/sidebar/history.cljs:147 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.entry.delete" msgstr "%s gelöscht" -#: src/app/main/ui/workspace/sidebar/history.cljs:146 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.entry.modify" msgstr "%s verändert" -#: src/app/main/ui/workspace/sidebar/history.cljs:148 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.entry.move" msgstr "Verschobene Objekte" -#: src/app/main/ui/workspace/sidebar/history.cljs:111 msgid "workspace.undo.entry.multiple.circle" msgstr "Kreise" -#: src/app/main/ui/workspace/sidebar/history.cljs:112 msgid "workspace.undo.entry.multiple.color" msgstr "Farben" -#: src/app/main/ui/workspace/sidebar/history.cljs:113 msgid "workspace.undo.entry.multiple.component" msgstr "Komponenten" -#: src/app/main/ui/workspace/sidebar/history.cljs:114 msgid "workspace.undo.entry.multiple.curve" msgstr "Kurven" -#: src/app/main/ui/workspace/sidebar/history.cljs:115 msgid "workspace.undo.entry.multiple.frame" msgstr "Zeichenfläche" -#: src/app/main/ui/workspace/sidebar/history.cljs:116 msgid "workspace.undo.entry.multiple.group" msgstr "Gruppen" -#: src/app/main/ui/workspace/sidebar/history.cljs:117 msgid "workspace.undo.entry.multiple.media" msgstr "Grafiken" -#: src/app/main/ui/workspace/sidebar/history.cljs:118 msgid "workspace.undo.entry.multiple.multiple" msgstr "Objekte" -#: src/app/main/ui/workspace/sidebar/history.cljs:119 msgid "workspace.undo.entry.multiple.page" msgstr "Seiten" -#: src/app/main/ui/workspace/sidebar/history.cljs:120 msgid "workspace.undo.entry.multiple.path" msgstr "Pfade" -#: src/app/main/ui/workspace/sidebar/history.cljs:121 msgid "workspace.undo.entry.multiple.rect" msgstr "Rechtecke" -#: src/app/main/ui/workspace/sidebar/history.cljs:122 msgid "workspace.undo.entry.multiple.shape" msgstr "Formen" -#: src/app/main/ui/workspace/sidebar/history.cljs:123 msgid "workspace.undo.entry.multiple.text" msgstr "Texte" -#: src/app/main/ui/workspace/sidebar/history.cljs:124 msgid "workspace.undo.entry.multiple.typography" msgstr "Typografie" -#: src/app/main/ui/workspace/sidebar/history.cljs:145 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.entry.new" msgstr "Neu: %s" -#: src/app/main/ui/workspace/sidebar/history.cljs:125 msgid "workspace.undo.entry.single.circle" msgstr "Kreis" -#: src/app/main/ui/workspace/sidebar/history.cljs:126 msgid "workspace.undo.entry.single.color" msgstr "Farben" -#: src/app/main/ui/workspace/sidebar/history.cljs:127 msgid "workspace.undo.entry.single.component" msgstr "Komponente" -#: src/app/main/ui/workspace/sidebar/history.cljs:128 msgid "workspace.undo.entry.single.curve" msgstr "Kurve" -#: src/app/main/ui/workspace/sidebar/history.cljs:129 msgid "workspace.undo.entry.single.frame" msgstr "Zeichenfläche" -#: src/app/main/ui/workspace/sidebar/history.cljs:130 msgid "workspace.undo.entry.single.group" msgstr "Gruppe" -#: src/app/main/ui/workspace/sidebar/history.cljs:131 msgid "workspace.undo.entry.single.image" msgstr "Bild" -#: src/app/main/ui/workspace/sidebar/history.cljs:132 msgid "workspace.undo.entry.single.media" msgstr "Grafik" -#: src/app/main/ui/workspace/sidebar/history.cljs:133 msgid "workspace.undo.entry.single.multiple" msgstr "Objekt" -#: src/app/main/ui/workspace/sidebar/history.cljs:134 msgid "workspace.undo.entry.single.page" msgstr "Seite" -#: src/app/main/ui/workspace/sidebar/history.cljs:135 msgid "workspace.undo.entry.single.path" msgstr "Pfad" -#: src/app/main/ui/workspace/sidebar/history.cljs:136 msgid "workspace.undo.entry.single.rect" msgstr "Rechteck" -#: src/app/main/ui/workspace/sidebar/history.cljs:137 msgid "workspace.undo.entry.single.shape" msgstr "Form" -#: src/app/main/ui/workspace/sidebar/history.cljs:138 msgid "workspace.undo.entry.single.text" msgstr "Text" -#: src/app/main/ui/workspace/sidebar/history.cljs:139 msgid "workspace.undo.entry.single.typography" msgstr "Typografie" -#: src/app/main/ui/workspace/sidebar/history.cljs:149 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.entry.unknown" msgstr "Vorgang über %s" -#: src/app/main/ui/workspace/sidebar/history.cljs:335 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.title" msgstr "Verlauf" -#: src/app/main/data/workspace/libraries.cljs:1094 +#: src/app/main/data/workspace/libraries.cljs msgid "workspace.updates.dismiss" msgstr "Ignorieren" -#: src/app/main/data/workspace/libraries.cljs:1092 +#: src/app/main/data/workspace/libraries.cljs msgid "workspace.updates.more-info" msgstr "Mehr Info" -#: src/app/main/data/workspace/libraries.cljs:1090 +#: src/app/main/data/workspace/libraries.cljs msgid "workspace.updates.there-are-updates" msgstr "Es gibt Updates in gemeinsam genutzten Bibliotheken" -#: src/app/main/data/workspace/libraries.cljs:1097 +#: src/app/main/data/workspace/libraries.cljs msgid "workspace.updates.update" msgstr "Aktualisieren" -#, unused msgid "workspace.viewport.click-to-close-path" msgstr "Klicken Sie, um den Pfad zu schließen" + +msgid "shortcuts.toggle-snap-ruler-guide" +msgstr "An den Hilfslinien des Lineals ausrichten" + +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.menu.disable-snap-ruler-guides" +msgstr "An den Hilfslinien des Lineals ausrichten deaktivieren" + +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.menu.enable-snap-ruler-guides" +msgstr "An den Hilfslinien des Lineals ausrichten" + +msgid "workspace.plugins.title" +msgstr "Plugins" + +msgid "workspace.plugins.search-placeholder" +msgstr "Eine URL des Plugins eingeben" + +msgid "workspace.plugins.install" +msgstr "Installieren" + +msgid "workspace.plugins.installed-plugins" +msgstr "Installierte Plugins" + +msgid "workspace.plugins.button-open" +msgstr "Öffnen" + +msgid "workspace.plugins.empty-plugins" +msgstr "Noch keine Plugins installiert" + +msgid "workspace.plugins.error.url" +msgstr "Das Plugin existiert nicht oder die URL ist nicht korrekt." + +msgid "workspace.plugins.menu.plugins-manager" +msgstr "Plugin-Manager" + +msgid "workspace.plugins.plugin-list-link" +msgstr "Liste der Plugins" + +msgid "workspace.plugins.menu.title" +msgstr "Plugins" + +msgid "workspace.plugins.success" +msgstr "Plugin wurde korrekt geladen." diff --git a/frontend/translations/el.po b/frontend/translations/el.po index ae9b1d94af..4f4c677c1b 100644 --- a/frontend/translations/el.po +++ b/frontend/translations/el.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "PO-Revision-Date: 2024-06-17 08:07+0000\n" "Last-Translator: Anonymous \n" -"Language-Team: Greek " -"\n" +"Language-Team: Greek \n" "Language: el\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" @@ -11,2174 +11,2162 @@ msgstr "" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 5.6-dev\n" -#: src/app/main/ui/auth/register.cljs:151, src/app/main/ui/viewer/login.cljs:104 +#: src/app/main/ui/auth/register.cljs msgid "auth.already-have-account" msgstr "Δημιουργία λογαριασμού επίδειξης" -#: src/app/main/ui/auth/register.cljs:299 +#: src/app/main/ui/auth/register.cljs msgid "auth.check-your-email" msgstr "" "Ελέγξτε το email σας και κάντε κλικ στον σύνδεσμο για επαλήθευση και έναρξη " "χρήσης του Penpot." -#: src/app/main/ui/auth/recovery.cljs:78 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.confirm-password" msgstr "Επιβεβαίωση Κωδικού" -#: src/app/main/ui/auth/register.cljs:163 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.create-demo-account" msgstr "Δημιουργία επίδειξης λογαριασμού" #: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs -#, unused msgid "auth.create-demo-profile" msgstr "Θέλετε να το δοκιμάσετε;" -#: src/app/main/ui/auth/login.cljs:43 +#: src/app/main/ui/auth/register.cljs msgid "auth.demo-warning" msgstr "" "Αυτή είναι μια υπηρεσία DEMO, ΜΗ ΧΡΗΣΙΜΟΠΟΙΕΙΤΕ για πραγματική εργασία, τα " "έργα θα σβήνονται περιοδικά." -#: src/app/main/ui/auth/login.cljs:189, src/app/main/ui/viewer/login.cljs:90 +#: src/app/main/ui/auth/login.cljs msgid "auth.forgot-password" msgstr "Ξεχάσατε τον κωδικό;" -#: src/app/main/ui/auth/register.cljs:254 +#: src/app/main/ui/auth/register.cljs msgid "auth.fullname" msgstr "Πλήρες όνομα" -#: src/app/main/ui/auth/register.cljs:155, src/app/main/ui/viewer/login.cljs:107 +#: src/app/main/ui/auth/register.cljs +#, fuzzy msgid "auth.login-here" msgstr "Συνδεθείτε εδώ" -#: src/app/main/ui/auth/login.cljs:195 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-submit" msgstr "Συνδεθείτε" -#: src/app/main/ui/auth/login.cljs:222 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.login-with-github-submit" msgstr "GitHub" -#: src/app/main/ui/auth/login.cljs:228 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.login-with-gitlab-submit" msgstr "GitLab" -#: src/app/main/ui/auth/login.cljs:216 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-google-submit" msgstr "Google" -#: src/app/main/ui/auth/login.cljs:201 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-ldap-submit" msgstr "LDAP" -#: src/app/main/ui/auth/recovery.cljs:71 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.new-password" msgstr "Πληκτρολογήστε έναν νέο κωδικό πρόσβασης." -#: src/app/main/ui/auth/recovery.cljs:42 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.notifications.invalid-token-error" msgstr "Ο κωδικός ανάκτησης δεν είναι έγκυρος." -#: src/app/main/ui/auth/recovery.cljs:46 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.notifications.password-changed-successfully" msgstr "Ο κωδικός έχει αλλάξει." -#: src/app/main/ui/auth/recovery_request.cljs:57 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.notifications.profile-not-verified" msgstr "Το προφίλ δεν έχει επαληθευτεί ακόμη, επικυρώστε το προφίλ πριν συνεχίσετε." -#: src/app/main/ui/auth/recovery_request.cljs:40 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.notifications.recovery-token-sent" msgstr "" "Στείλαμε στο email σας έναν link για να ανακτήσουμε τον κωδικό πρόσβασής " "σας." -#: src/app/main/ui/auth/verify_token.cljs:47 +#: src/app/main/ui/auth/verify_token.cljs msgid "auth.notifications.team-invitation-accepted" msgstr "Μπήκατε στην ομάδα" -#: src/app/main/ui/auth/login.cljs:179, src/app/main/ui/auth/register.cljs:115 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.password" msgstr "Κωδικός " -#: src/app/main/ui/auth/register.cljs:114 +#: src/app/main/ui/auth/register.cljs msgid "auth.password-length-hint" msgstr "Τουλάχιστον 8 χαρακτήρες" -#: src/app/main/ui/auth/recovery_request.cljs:88 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-submit" msgstr "Ανάκτηση κωδικού πρόσβασης" -#: src/app/main/ui/auth/recovery_request.cljs:101 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-subtitle" msgstr "Θα σας στείλουμε ένα email με οδηγίες " -#: src/app/main/ui/auth/recovery_request.cljs:100 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-title" msgstr "Ξεχάσατε τον κωδικό σας;" -#: src/app/main/ui/auth/recovery.cljs:82 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.recovery-submit" msgstr "Αλλάξτε τον κωδικό σας" -#: src/app/main/ui/auth/login.cljs:298, src/app/main/ui/viewer/login.cljs:93 +#: src/app/main/ui/auth/login.cljs msgid "auth.register" msgstr "Δεν έχετε λογαριασμό;" -#: src/app/main/ui/auth/login.cljs:302, src/app/main/ui/auth/register.cljs:121, src/app/main/ui/auth/register.cljs:263, src/app/main/ui/viewer/login.cljs:97 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.register-submit" msgstr "Δημιουργία λογαριασμού" -#: src/app/main/ui/auth/register.cljs:140 +#: src/app/main/ui/auth/register.cljs msgid "auth.register-title" msgstr "Δημιουργία λογαριασμού" #: src/app/main/ui/auth.cljs -#, unused msgid "auth.sidebar-tagline" msgstr "Η λύση ανοιχτού κώδικα για σχεδιασμό και πρωτότυπο." -#: src/app/main/ui/auth/register.cljs:297 +#: src/app/main/ui/auth/register.cljs msgid "auth.verification-email-sent" msgstr "Εχουμε στείλει ενα mail επαλήθευσης " -#: src/app/main/ui/dashboard/file_menu.cljs:291, src/app/main/ui/workspace/main_menu.cljs:572 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.add-shared" msgstr "Προσθήκη ως Κοινόχρηστη βιβλιοθήκη" -#: src/app/main/ui/settings/profile.cljs:75 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.change-email" msgstr "Αλλαγή email" -#: src/app/main/data/dashboard.cljs:762, src/app/main/data/dashboard.cljs:983 +#: src/app/main/data/dashboard.cljs, src/app/main/data/dashboard.cljs msgid "dashboard.copy-suffix" msgstr "(Αντίγραφο)" -#: src/app/main/ui/dashboard/sidebar.cljs:338 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.create-new-team" msgstr "Δημιουργία νέας ομάδας" -#: src/app/main/ui/components/context_menu_a11y.cljs:256, src/app/main/ui/dashboard/sidebar.cljs:646 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.default-team-name" msgstr "Το Penpot σας" -#: src/app/main/ui/dashboard/sidebar.cljs:571 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.delete-team" msgstr "Διαγραφή ομάδας" -#: src/app/main/ui/dashboard/file_menu.cljs:276, src/app/main/ui/dashboard/project_menu.cljs:90 +#: src/app/main/ui/dashboard/project_menu.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.duplicate" msgstr "Αντιγραφή" -#: src/app/main/ui/dashboard/team.cljs:109 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.invite-profile" msgstr "Πρόσκληση στην ομάδα" -#: src/app/main/ui/dashboard/sidebar.cljs:547, src/app/main/ui/dashboard/sidebar.cljs:556, src/app/main/ui/dashboard/sidebar.cljs:563, src/app/main/ui/dashboard/team.cljs:312 +#: src/app/main/ui/dashboard/sidebar.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.leave-team" msgstr "Αφήστε την ομάδα" -#: src/app/main/ui/dashboard/libraries.cljs:53 +#: src/app/main/ui/dashboard/libraries.cljs msgid "dashboard.libraries-title" msgstr "Κοινόχρηστες βιβλιοθήκες" -#: src/app/main/ui/dashboard/placeholder.cljs:45 +#: src/app/main/ui/dashboard/grid.cljs msgid "dashboard.loading-files" msgstr "φόρτωση των αρχείων σας …" -#: src/app/main/ui/dashboard/file_menu.cljs:281, src/app/main/ui/dashboard/project_menu.cljs:100 +#: src/app/main/ui/dashboard/project_menu.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.move-to" msgstr "Μετακίνηση" -#: src/app/main/ui/dashboard/file_menu.cljs:226 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.move-to-other-team" msgstr "Μετακίνηση σε άλλη ομάδα" -#: src/app/main/ui/dashboard/files.cljs:105, src/app/main/ui/dashboard/projects.cljs:252, src/app/main/ui/dashboard/projects.cljs:253 +#: src/app/main/ui/dashboard/projects.cljs, +#: src/app/main/ui/dashboard/files.cljs msgid "dashboard.new-file" msgstr "Νεο αρχείο" -#: src/app/main/ui/dashboard/projects.cljs:55 +#: src/app/main/ui/dashboard/projects.cljs msgid "dashboard.new-project" msgstr "+ Νέο έργο" -#: src/app/main/ui/dashboard/search.cljs:60 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.no-matches-for" msgstr "Δεν βρέθηκαν αντιστοιχίσεις για το “%s“" -#: src/app/main/ui/dashboard/sidebar.cljs:827 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.no-projects-placeholder" msgstr "Τα καρφιτσωμένα έργα θα εμφανιστούν εδώ" -#: src/app/main/ui/auth/verify_token.cljs:33 +#: src/app/main/ui/auth/verify_token.cljs msgid "dashboard.notifications.email-changed-successfully" msgstr "Η διεύθυνση email σας ενημερώθηκε με επιτυχία" -#: src/app/main/ui/auth/verify_token.cljs:27 +#: src/app/main/ui/auth/verify_token.cljs msgid "dashboard.notifications.email-verified-successfully" msgstr "Η διεύθυνση email σας έχει επαληθευτεί" -#: src/app/main/ui/settings/password.cljs:37 +#: src/app/main/ui/settings/password.cljs msgid "dashboard.notifications.password-saved" msgstr "Ο κωδικός πρόσβασης αποθηκεύτηκε!" -#: src/app/main/ui/dashboard/team.cljs:1081 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.num-of-members" msgstr "% s μέλη" -#: src/app/main/ui/dashboard/file_menu.cljs:267 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.open-in-new-tab" msgstr "Άνοιγμα αρχείου σε νέα καρτέλα" -#: src/app/main/ui/settings/password.cljs:106, src/app/main/ui/settings/password.cljs:119 +#: src/app/main/ui/settings/password.cljs msgid "dashboard.password-change" msgstr "Αλλαξε κωδικό" -#: src/app/main/ui/dashboard/pin_button.cljs:24, src/app/main/ui/dashboard/project_menu.cljs:95 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.pin-unpin" msgstr "Καρφίτσωμα / ξεκαρφίτσωμα" -#: src/app/main/ui/dashboard/projects.cljs:51 +#: src/app/main/ui/dashboard/projects.cljs msgid "dashboard.projects-title" msgstr "Εργα" -#: src/app/main/ui/settings/profile.cljs:86 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.remove-account" msgstr "Θέλετε να καταργήσετε τον λογαριασμό σας;" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.remove-shared" msgstr "Διαγραφή ως Κοινόχρηστη βιβλιοθήκη" -#: src/app/main/ui/dashboard/sidebar.cljs:246, src/app/main/ui/dashboard/sidebar.cljs:247 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.search-placeholder" msgstr "Αναζήτηση…" -#: src/app/main/ui/dashboard/search.cljs:55 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.searching-for" msgstr "Αναζήτηση για “%s“…" -#: src/app/main/ui/settings/options.cljs:56 +#: src/app/main/ui/settings/options.cljs msgid "dashboard.select-ui-language" msgstr "Αλλάξτε τη γλώσσα διεπαφής" -#: src/app/main/ui/settings/options.cljs:63 +#: src/app/main/ui/settings/options.cljs msgid "dashboard.select-ui-theme" msgstr "Επιλέξτε ένα θέμα" -#: src/app/main/ui/dashboard/projects.cljs:282 +#: src/app/main/ui/dashboard/grid.cljs msgid "dashboard.show-all-files" msgstr "Εμφάνιση όλων των αρχείων" -#: src/app/main/ui/dashboard/file_menu.cljs:96 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-delete-file" msgstr "Το έργο σας διαγράφηκε με επιτυχία" -#: src/app/main/ui/dashboard/project_menu.cljs:59 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.success-delete-project" msgstr "Το έργο σας διαγράφηκε με επιτυχία" -#: src/app/main/ui/dashboard/file_menu.cljs:91 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-duplicate-file" msgstr "Το έργο σας έχει αναπαραχθεί με επιτυχία" -#: src/app/main/ui/dashboard/project_menu.cljs:33 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.success-duplicate-project" msgstr "Το έργο σας έχει αναπαραχθεί με επιτυχία" -#: src/app/main/ui/dashboard/file_menu.cljs:130, src/app/main/ui/dashboard/grid.cljs:558, src/app/main/ui/dashboard/sidebar.cljs:152 +#: src/app/main/ui/dashboard/grid.cljs, src/app/main/ui/dashboard/sidebar.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-move-file" msgstr "Το έργο σας μετακινήθηκε με επιτυχία" -#: src/app/main/ui/dashboard/project_menu.cljs:54 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.success-move-project" msgstr "Το έργο σας μετακινήθηκε με επιτυχία" -#: src/app/main/ui/dashboard/team.cljs:1052 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.team-info" msgstr "Πληροφορίες ομάδας" -#: src/app/main/ui/dashboard/team.cljs:1070 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.team-members" msgstr "Μέλη ομάδας" -#: src/app/main/ui/dashboard/team.cljs:1085 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.team-projects" msgstr "Ομαδικά έργα" -#: src/app/main/ui/settings/options.cljs:61 +#: src/app/main/ui/settings/options.cljs msgid "dashboard.theme-change" msgstr "Οπτικό θέμα" -#: src/app/main/ui/dashboard/search.cljs:42 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.title-search" msgstr "Αποτελέσματα αναζήτησης" -#: src/app/main/ui/dashboard/search.cljs:50 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.type-something" msgstr "Γράψτε κάτι για αναζήτηση" -#: src/app/main/ui/settings/options.cljs:71 +#: src/app/main/ui/settings/profile.cljs, +#: src/app/main/ui/settings/password.cljs, +#: src/app/main/ui/settings/options.cljs msgid "dashboard.update-settings" msgstr "Ενημέρωση επιλογών" -#: src/app/main/ui/settings.cljs:31 +#: src/app/main/ui/settings.cljs msgid "dashboard.your-account-title" msgstr "Ο λογαριασμός σας" -#: src/app/main/ui/settings/profile.cljs:70 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.your-email" msgstr "Email" -#: src/app/main/ui/settings/profile.cljs:62 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.your-name" msgstr "Το όνομα σου" -#: src/app/main/ui/dashboard/file_menu.cljs:38, src/app/main/ui/dashboard/fonts.cljs:33, src/app/main/ui/dashboard/libraries.cljs:42, src/app/main/ui/dashboard/projects.cljs:318, src/app/main/ui/dashboard/search.cljs:30, src/app/main/ui/dashboard/sidebar.cljs:312, src/app/main/ui/dashboard/team.cljs:495, src/app/main/ui/dashboard/team.cljs:729, src/app/main/ui/dashboard/team.cljs:991, src/app/main/ui/dashboard/team.cljs:1038 +#: src/app/main/ui/dashboard/search.cljs, src/app/main/ui/dashboard/team.cljs, +#: src/app/main/ui/dashboard/libraries.cljs, +#: src/app/main/ui/dashboard/projects.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.your-penpot" msgstr "Το Penpot σας" -#: src/app/main/ui/confirm.cljs:36, src/app/main/ui/workspace/plugins.cljs:246 +#: src/app/main/ui/confirm.cljs msgid "ds.confirm-cancel" msgstr "ακύρωση" -#: src/app/main/ui/confirm.cljs:37, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:141 +#: src/app/main/ui/confirm.cljs msgid "ds.confirm-ok" msgstr "Ok" -#: src/app/main/ui/confirm.cljs:35, src/app/main/ui/confirm.cljs:39 +#: src/app/main/ui/confirm.cljs, src/app/main/ui/confirm.cljs msgid "ds.confirm-title" msgstr "Είσαι σίγουρος;" -#: src/app/main/data/workspace.cljs:1598 +#: src/app/main/data/workspace.cljs msgid "errors.clipboard-not-implemented" msgstr "Το πρόγραμμα περιήγησής σας δεν μπορεί να εκτελέσει αυτήν τη λειτουργία" -#: src/app/main/ui/auth/verify_token.cljs:82, src/app/main/ui/settings/change_email.cljs:46 +#: src/app/main/ui/auth/verify_token.cljs, +#: src/app/main/ui/settings/change_email.cljs msgid "errors.email-already-exists" msgstr "Το email έχει ήδη χρησιμοποιηθεί" -#: src/app/main/ui/auth/verify_token.cljs:87 +#: src/app/main/ui/auth/verify_token.cljs msgid "errors.email-already-validated" msgstr "Αυτό το email έχει ήδη επικυρωθεί." -#: src/app/main/ui/auth/recovery_request.cljs:63, src/app/main/ui/dashboard/team.cljs:578, src/app/main/ui/settings/change_email.cljs:54 +#: src/app/main/ui/auth/register.cljs, +#: src/app/main/ui/auth/recovery_request.cljs, +#: src/app/main/ui/settings/change_email.cljs, +#: src/app/main/ui/dashboard/team.cljs msgid "errors.email-has-permanent-bounces" msgstr "Το email «%s» έχει πολλές μόνιμες αναφορές αναπήδησης." -#: src/app/main/ui/settings/change_email.cljs:35 +#: src/app/main/ui/settings/change_email.cljs msgid "errors.email-invalid-confirmation" msgstr "Το email επιβεβαίωσης πρέπει να ταιριάζει" -#: src/app/main/data/users.cljs:709, src/app/main/ui/auth/login.cljs:65, src/app/main/ui/auth/login.cljs:116, src/app/main/ui/auth/register.cljs:69, src/app/main/ui/auth/register.cljs:237, src/app/main/ui/auth/verify_token.cljs:92, src/app/main/ui/dashboard/team.cljs:173, src/app/main/ui/onboarding/team_choice.cljs:95, src/app/main/ui/settings/access_tokens.cljs:91, src/app/main/ui/settings/feedback.cljs:52 +#: src/app/main/ui/auth/verify_token.cljs, +#: src/app/main/ui/settings/feedback.cljs, src/app/main/ui/dashboard/team.cljs msgid "errors.generic" msgstr "Έχει συμβεί κάτι λάθος." -#: src/app/main/ui/auth/login.cljs:101 +#: src/app/main/ui/auth/login.cljs msgid "errors.ldap-disabled" msgstr "Ο έλεγχος ταυτότητας LDAP είναι απενεργοποιημένος." -#: src/app/main/data/workspace/media.cljs:184 +#: src/app/main/data/workspace/persistence.cljs msgid "errors.media-too-large" msgstr "Η εικόνα είναι πολύ μεγάλη." -#: src/app/main/data/media.cljs:68, src/app/main/data/workspace/media.cljs:187 +#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs msgid "errors.media-type-mismatch" msgstr "" "Φαίνεται ότι το περιεχόμενο της εικόνας δεν ταιριάζει με την επέκταση " "αρχείου." -#: src/app/main/data/media.cljs:65, src/app/main/data/workspace/media.cljs:172, src/app/main/data/workspace/media.cljs:175, src/app/main/data/workspace/media.cljs:178, src/app/main/data/workspace/media.cljs:181 +#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs msgid "errors.media-type-not-allowed" msgstr "Φαίνεται ότι δεν είναι έγκυρη εικόνα." -#: src/app/main/ui/dashboard/team.cljs:574 +#: src/app/main/ui/dashboard/team.cljs msgid "errors.member-is-muted" msgstr "" "Το προφίλ που προσκαλείτε σταματά τα μηνύματα ηλεκτρονικού ταχυδρομείου " "(λόγω ανεπιθύμητων αναφορών ή υψηλού ποσοστού εγκατάλειψης)." -#: src/app/main/ui/settings/password.cljs:61 +#: src/app/main/ui/settings/password.cljs msgid "errors.password-invalid-confirmation" msgstr "Ο κωδικός επιβεβαίωσης πρέπει να ταιριάζει" -#: src/app/main/ui/settings/password.cljs:64 +#: src/app/main/ui/settings/password.cljs msgid "errors.password-too-short" msgstr "Ο κωδικός πρόσβασης πρέπει να είναι τουλάχιστον 8 χαρακτήρες" -#: src/app/main/data/users.cljs:701, src/app/main/ui/auth/register.cljs:60 +#: src/app/main/ui/auth/register.cljs msgid "errors.registration-disabled" msgstr "Η εγγραφή είναι απενεργοποιημένη αυτήν τη στιγμή." -#: src/app/main/data/media.cljs:71 +#: src/app/main/data/media.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, +#: src/app/main/ui/inspect/exports.cljs msgid "errors.unexpected-error" msgstr "Προέκυψε ένα μη αναμενόμενο σφάλμα." -#: src/app/main/ui/auth/verify_token.cljs:60 +#: src/app/main/ui/auth/verify_token.cljs msgid "errors.unexpected-token" msgstr "Άγνωστο διακριτικό" -#: src/app/main/ui/auth/login.cljs:109, src/app/main/ui/auth/login.cljs:113 +#: src/app/main/ui/auth/login.cljs msgid "errors.wrong-credentials" msgstr "Το όνομα χρήστη ή ο κωδικός πρόσβασης φαίνεται να είναι λάθος." -#: src/app/main/ui/settings/password.cljs:25 +#: src/app/main/ui/settings/password.cljs msgid "errors.wrong-old-password" msgstr "Ο παλιός κωδικός πρόσβασης είναι λάθος " -#: src/app/main/ui/settings/feedback.cljs:77 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.description" msgstr "Περιγραφή" -#: src/app/main/ui/settings/feedback.cljs:72 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.subject" msgstr "Επιχείρηση" -#: src/app/main/ui/settings/feedback.cljs:69 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.subtitle" msgstr "" "Περιγράψτε τον λόγο του email σας, προσδιορίζοντας εάν πρόκειται για " "ζήτημα, ιδέα ή αμφιβολία. Ένα μέλος της ομάδας μας θα απαντήσει το " "συντομότερο δυνατό." -#: src/app/main/ui/settings/feedback.cljs:68 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.title" msgstr "Email" -#: src/app/main/ui/settings/password.cljs:30 +#: src/app/main/ui/settings/password.cljs msgid "generic.error" msgstr "Παρουσιάστηκε σφάλμα" -#: src/app/main/ui/viewer/inspect/attributes/blur.cljs:26 +#: src/app/main/ui/inspect/attributes/blur.cljs msgid "inspect.attributes.blur" msgstr "Θολούρα" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:115 +#: src/app/main/ui/inspect/attributes/blur.cljs msgid "inspect.attributes.blur.value" msgstr "αξία" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:112 +#: src/app/main/ui/inspect/attributes/common.cljs msgid "inspect.attributes.color.hex" msgstr "HEX" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:114 +#: src/app/main/ui/inspect/attributes/common.cljs msgid "inspect.attributes.color.hsla" msgstr "HSLA" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:113 +#: src/app/main/ui/inspect/attributes/common.cljs msgid "inspect.attributes.color.rgba" msgstr "RGBA" -#: src/app/main/ui/viewer/inspect/attributes/fill.cljs:57 +#: src/app/main/ui/inspect/attributes/fill.cljs msgid "inspect.attributes.fill" msgstr "Γέμισμα" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:99, src/app/main/ui/viewer/inspect/attributes/image.cljs:51 +#: src/app/main/ui/inspect/attributes/image.cljs msgid "inspect.attributes.image.download" msgstr "Λήψη εικόνας πηγής" -#: src/app/main/ui/viewer/inspect/attributes/image.cljs:39 +#: src/app/main/ui/inspect/attributes/image.cljs msgid "inspect.attributes.image.height" msgstr "Υψος" -#: src/app/main/ui/viewer/inspect/attributes/image.cljs:32 +#: src/app/main/ui/inspect/attributes/image.cljs msgid "inspect.attributes.image.width" msgstr "Πλάτος" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout" msgstr "Διάταξη" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.height" msgstr "Υψος" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.left" msgstr "Αριστερά" -#: src/app/main/ui/inspect/attributes/layout.cljs, src/app/main/ui/inspect/attributes/layout.cljs -#, unused +#: src/app/main/ui/inspect/attributes/layout.cljs, +#: src/app/main/ui/inspect/attributes/layout.cljs msgid "inspect.attributes.layout.radius" msgstr "Aκτίνα" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.rotation" msgstr "Περιστροφή" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.top" msgstr "Πάνω" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.width" msgstr "Πλάτος" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:57 +#: src/app/main/ui/inspect/attributes/shadow.cljs msgid "inspect.attributes.shadow" msgstr "Σκιά " -#: src/app/main/ui/viewer/inspect/attributes/stroke.cljs:52 +#: src/app/main/ui/inspect/attributes/stroke.cljs msgid "inspect.attributes.stroke" msgstr "περίγραμμα" -#, permanent, unused msgid "inspect.attributes.stroke.alignment.center" msgstr "Κέντρο" -#, permanent, unused msgid "inspect.attributes.stroke.alignment.inner" msgstr "Μέσα" -#, permanent, unused msgid "inspect.attributes.stroke.alignment.outer" msgstr "Εξω" -#, unused msgid "inspect.attributes.stroke.style.dotted" msgstr "Διάστικτο" -#, unused msgid "inspect.attributes.stroke.style.mixed" msgstr "Μικτός" -#, unused msgid "inspect.attributes.stroke.style.none" msgstr "Κανένας" -#, unused msgid "inspect.attributes.stroke.style.solid" msgstr "Στερεός" #: src/app/main/ui/inspect/attributes/stroke.cljs -#, unused msgid "inspect.attributes.stroke.width" msgstr "Πλάτος" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:81, src/app/main/ui/viewer/inspect/attributes/text.cljs:194 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography" msgstr "Τυπογραφία" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:89 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.font-family" msgstr "Οικογένεια γραμματοσειρών" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:107 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.font-size" msgstr "Μέγεθος γραμματοσειράς" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:98 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.font-style" msgstr "Στυλ γραμματοσειράς" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:134 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.letter-spacing" msgstr "Διάστημα γραμμάτων" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:125 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.line-height" msgstr "Ύψος γραμμής" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:143 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.text-decoration" msgstr "Διακόσμηση κειμένου" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:145 msgid "inspect.attributes.typography.text-decoration.none" msgstr "Κανένα" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:146 msgid "inspect.attributes.typography.text-decoration.strikethrough" msgstr "διαγραφή" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:147 msgid "inspect.attributes.typography.text-decoration.underline" msgstr "υπογράμμιση" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:156 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.text-transform" msgstr "Μετασχηματισμός κειμένου" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:158 msgid "inspect.attributes.typography.text-transform.lowercase" msgstr "Πεζά γράμματα" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:159 msgid "inspect.attributes.typography.text-transform.none" msgstr "Κανένα" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:160 msgid "inspect.attributes.typography.text-transform.titlecase" msgstr "Πρώτα κεφαλαία" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:161 msgid "inspect.attributes.typography.text-transform.uppercase" msgstr "Κεφαλαία γράμματα" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:125 +#: src/app/main/ui/inspect/right_sidebar.cljs msgid "inspect.tabs.code" msgstr "Κώδικας" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:98 msgid "inspect.tabs.code.selected.circle" msgstr "Κύκλος" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:100 msgid "inspect.tabs.code.selected.curve" msgstr "Κυρτότητα" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:101 msgid "inspect.tabs.code.selected.frame" msgstr "Τραπέζι εργασίας" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:102 msgid "inspect.tabs.code.selected.group" msgstr "Ομάδα" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:103 msgid "inspect.tabs.code.selected.image" msgstr "Εικόνα" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:93 +#: src/app/main/ui/inspect/right_sidebar.cljs msgid "inspect.tabs.code.selected.multiple" msgstr "%s Επιλεγμένα" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:105 msgid "inspect.tabs.code.selected.path" msgstr "Σχέδιο" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:106 msgid "inspect.tabs.code.selected.rect" msgstr "Ορθωγώνιο" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:107 msgid "inspect.tabs.code.selected.svg-raw" msgstr "SVG" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:108 msgid "inspect.tabs.code.selected.text" msgstr "Κείμενο" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:115 +#: src/app/main/ui/inspect/right_sidebar.cljs msgid "inspect.tabs.info" msgstr "Πληροφορίες" -#: src/app/main/ui/dashboard/import.cljs:527 msgid "labels.accept" msgstr "Αποδέχομαι" -#: src/app/main/ui/dashboard/team.cljs:120, src/app/main/ui/dashboard/team.cljs:276, src/app/main/ui/dashboard/team.cljs:519, src/app/main/ui/dashboard/team.cljs:549, src/app/main/ui/onboarding/team_choice.cljs:67 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs msgid "labels.admin" msgstr "Διαχειριστής" #: src/app/main/ui/workspace/comments.cljs -#, unused msgid "labels.all" msgstr "Ολα" -#: src/app/main/ui/static.cljs:59 +#: src/app/main/ui/static.cljs msgid "labels.bad-gateway.desc-message" msgstr "" "Φαίνεται ότι πρέπει να περιμένετε λίγο και να προσπαθήσετε ξανά. εκτελούμε " "μικρή συντήρηση των διακομιστών μας." -#: src/app/main/ui/static.cljs:58 +#: src/app/main/ui/static.cljs msgid "labels.bad-gateway.main-message" msgstr "Bad Gateway" -#: src/app/main/data/common.cljs:112, src/app/main/ui/dashboard/change_owner.cljs:69, src/app/main/ui/dashboard/import.cljs:514, src/app/main/ui/dashboard/team.cljs:868, src/app/main/ui/delete_shared.cljs:35, src/app/main/ui/export.cljs:164, src/app/main/ui/export.cljs:460, src/app/main/ui/settings/access_tokens.cljs:188, src/app/main/ui/viewer/share_link.cljs:203, src/app/main/ui/workspace/sidebar/assets/groups.cljs:149 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.cancel" msgstr "ακύρωση" -#: src/app/main/ui/dashboard/comments.cljs:104, src/app/main/ui/viewer/comments.cljs:70, src/app/main/ui/workspace/comments.cljs:126 +#: src/app/main/ui/dashboard/comments.cljs msgid "labels.comments" msgstr "Σχόλια" -#: src/app/main/ui/settings/password.cljs:103 +#: src/app/main/ui/settings/password.cljs msgid "labels.confirm-password" msgstr "Επιβεβαίωση Κωδικού" -#: src/app/main/ui/dashboard/team_form.cljs:101, src/app/main/ui/dashboard/team_form.cljs:121 +#: src/app/main/ui/dashboard/team_form.cljs, +#: src/app/main/ui/dashboard/team_form.cljs msgid "labels.create-team" msgstr "Δημιουργήστε μια νέα ομάδα" -#: src/app/main/ui/settings/sidebar.cljs:73 +#: src/app/main/ui/settings/sidebar.cljs msgid "labels.dashboard" msgstr "πίνακας" -#: src/app/main/ui/dashboard/file_menu.cljs:306, src/app/main/ui/dashboard/fonts.cljs:255, src/app/main/ui/dashboard/fonts.cljs:332, src/app/main/ui/dashboard/fonts.cljs:346, src/app/main/ui/dashboard/project_menu.cljs:115, src/app/main/ui/dashboard/team.cljs:904, src/app/main/ui/settings/access_tokens.cljs:209, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:209 +#: src/app/main/ui/dashboard/project_menu.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.delete" msgstr "Διαγραφή" -#: src/app/main/ui/comments.cljs:357 +#: src/app/main/ui/comments.cljs msgid "labels.delete-comment" msgstr "Διαγραφή σχολίου" -#: src/app/main/ui/comments.cljs:354 +#: src/app/main/ui/comments.cljs msgid "labels.delete-comment-thread" msgstr "Διαγραφή νήματος" -#: src/app/main/ui/dashboard/file_menu.cljs:28, src/app/main/ui/dashboard/files.cljs:72, src/app/main/ui/dashboard/files.cljs:156, src/app/main/ui/dashboard/projects.cljs:220, src/app/main/ui/dashboard/projects.cljs:224, src/app/main/ui/dashboard/sidebar.cljs:791 +#: src/app/main/ui/dashboard/projects.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs, +#: src/app/main/ui/dashboard/files.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.drafts" msgstr "Πρόχειρα" -#: src/app/main/ui/comments.cljs:350, src/app/main/ui/dashboard/fonts.cljs:252, src/app/main/ui/dashboard/team.cljs:902, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:205 +#: src/app/main/ui/comments.cljs msgid "labels.edit" msgstr "Edit" -#: src/app/main/ui/dashboard/team.cljs:118, src/app/main/ui/dashboard/team.cljs:279, src/app/main/ui/dashboard/team.cljs:520, src/app/main/ui/dashboard/team.cljs:553, src/app/main/ui/onboarding/team_choice.cljs:66 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs msgid "labels.editor" msgstr "Editor" -#: src/app/main/ui/settings/feedback.cljs:51 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.feedback-disabled" msgstr "Τα σχόλια απενεργοποιήθηκαν" -#: src/app/main/ui/settings/feedback.cljs:42 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.feedback-sent" msgstr "Εστάλη γνώμη" -#: src/app/main/ui/dashboard/sidebar.cljs:1032, src/app/main/ui/settings/sidebar.cljs:113, src/app/main/ui/workspace/main_menu.cljs:171 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/settings/sidebar.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.give-feedback" msgstr "Δώστε μας τη γνώμη σας" -#: src/app/main/ui/auth/recovery_request.cljs:110, src/app/main/ui/auth/register.cljs:285, src/app/main/ui/viewer/login.cljs:117 msgid "labels.go-back" msgstr "Πίσω" -#: src/app/main/ui/viewer/comments.cljs:103, src/app/main/ui/workspace/comments.cljs:67 +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs msgid "labels.hide-resolved-comments" msgstr "Απόκρυψη επιλυμένων σχολίων" -#: src/app/main/ui/static.cljs:144 +#: src/app/main/ui/static.cljs msgid "labels.internal-error.desc-message" msgstr "" "Κάτι κακό συνέβη. Δοκιμάστε ξανά τη λειτουργία και εάν το πρόβλημα " "παραμένει, επικοινωνήστε με την υποστήριξη." -#: src/app/main/ui/static.cljs:143 +#: src/app/main/ui/static.cljs msgid "labels.internal-error.main-message" msgstr "Εσωτερικό σφάλμα" -#: src/app/main/ui/settings/options.cljs:51 +#: src/app/main/ui/settings/options.cljs msgid "labels.language" msgstr "Γλώσσα" -#: src/app/main/ui/dashboard/sidebar.cljs:1040 +#: src/app/main/ui/settings.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.logout" msgstr "Αποσύνδεση" -#: src/app/main/ui/dashboard/sidebar.cljs:510, src/app/main/ui/dashboard/team.cljs:87, src/app/main/ui/dashboard/team.cljs:95 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.members" msgstr "Μέλη" -#: src/app/main/ui/settings/password.cljs:96 +#: src/app/main/ui/settings/password.cljs msgid "labels.new-password" msgstr "Νέος κωδικός πρόσβασης" -#: src/app/main/ui/dashboard/comments.cljs:128, src/app/main/ui/workspace/comments.cljs:161 +#: src/app/main/ui/workspace/comments.cljs, +#: src/app/main/ui/dashboard/comments.cljs msgid "labels.no-comments-available" msgstr "Δεν έχετε εκκρεμείς ειδοποιήσεις σχολίων" -#: src/app/main/ui/static.cljs:50 +#: src/app/main/ui/static.cljs msgid "labels.not-found.desc-message" msgstr "" "Αυτή η σελίδα ενδέχεται να μην υπάρχει ή δεν έχετε δικαιώματα πρόσβασης σε " "αυτήν." -#: src/app/main/ui/static.cljs:49 +#: src/app/main/ui/static.cljs msgid "labels.not-found.main-message" msgstr "Ωχ" -#: src/app/main/ui/dashboard/projects.cljs:239, src/app/main/ui/dashboard/team.cljs:1095 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.num-of-files" msgid_plural "labels.num-of-files" msgstr[0] "1 αρχείο" msgstr[1] "%s αρχεία" -#: src/app/main/ui/dashboard/team.cljs:1090 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.num-of-projects" msgid_plural "labels.num-of-projects" msgstr[0] "1 έργο" msgstr[1] "%s έργα" -#: src/app/main/ui/settings/password.cljs:89 +#: src/app/main/ui/settings/password.cljs msgid "labels.old-password" msgstr "Παλιός κωδικός" #: src/app/main/ui/workspace/comments.cljs -#, unused msgid "labels.only-yours" msgstr "Μόνο το δικό σου" -#: src/app/main/ui/dashboard/team.cljs:286, src/app/main/ui/dashboard/team.cljs:518, src/app/main/ui/dashboard/team.cljs:1076 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs msgid "labels.owner" msgstr "Ιδιοκτήτης" -#: src/app/main/ui/settings/sidebar.cljs:87 +#: src/app/main/ui/settings/sidebar.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.password" msgstr "Κωδικός πρόσβασης" -#: src/app/main/ui/settings/profile.cljs:118, src/app/main/ui/settings/sidebar.cljs:82 +#: src/app/main/ui/settings/sidebar.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.profile" msgstr "Προφίλ" -#: src/app/main/ui/dashboard/sidebar.cljs:784 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.projects" msgstr "Εργα" -#: src/app/main/ui/workspace/libraries.cljs, src/app/main/ui/dashboard/team.cljs -#, unused +#: src/app/main/ui/workspace/libraries.cljs, +#: src/app/main/ui/dashboard/team.cljs msgid "labels.remove" msgstr "Διαγραφή" -#: src/app/main/ui/dashboard/file_menu.cljs:271, src/app/main/ui/dashboard/project_menu.cljs:85, src/app/main/ui/dashboard/sidebar.cljs:539, src/app/main/ui/workspace/sidebar/assets/groups.cljs:157 +#: src/app/main/ui/dashboard/sidebar.cljs, +#: src/app/main/ui/dashboard/project_menu.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.rename" msgstr "Μετονομασία" -#: src/app/main/ui/dashboard/team_form.cljs:99 +#: src/app/main/ui/dashboard/team_form.cljs msgid "labels.rename-team" msgstr "Μετονομασία ομάδας " -#: src/app/main/ui/static.cljs:61, src/app/main/ui/static.cljs:70, src/app/main/ui/static.cljs:148 +#: src/app/main/ui/static.cljs, src/app/main/ui/static.cljs msgid "labels.retry" msgstr "Ξαναδοκιμάσετε" -#: src/app/main/ui/dashboard/team.cljs:469, src/app/main/ui/dashboard/team.cljs:709 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.role" msgstr "Ρόλος" -#: src/app/main/ui/dashboard/fonts.cljs:380, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:191 msgid "labels.save" msgstr "Αποθηκεύση" -#: src/app/main/ui/settings/feedback.cljs:82 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.send" msgstr "Αποστολή ..." -#: src/app/main/ui/settings/feedback.cljs:82 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.sending" msgstr "Αποστολή…" -#: src/app/main/ui/static.cljs:68 +#: src/app/main/ui/static.cljs msgid "labels.service-unavailable.desc-message" msgstr "Είμαστε σε προγραμματισμένη συντήρηση των συστημάτων μας." -#: src/app/main/ui/static.cljs:67 +#: src/app/main/ui/static.cljs msgid "labels.service-unavailable.main-message" msgstr "Η υπηρεσία δεν είναι διαθέσιμη" -#: src/app/main/ui/dashboard/sidebar.cljs:530, src/app/main/ui/dashboard/team.cljs:88, src/app/main/ui/dashboard/team.cljs:102, src/app/main/ui/settings/options.cljs:84, src/app/main/ui/settings/sidebar.cljs:93 +#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.settings" msgstr "Σύνθεση" -#, unused +#: src/app/main/ui/viewer/header.cljs, src/app/main/ui/viewer/header.cljs msgid "labels.share-prototype" msgstr "Μοιραστείτε το link" -#: src/app/main/ui/dashboard/sidebar.cljs:800 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.shared-libraries" msgstr "Κοινόχρηστες βιβλιοθήκες" -#: src/app/main/ui/viewer/comments.cljs:82, src/app/main/ui/workspace/comments.cljs:55, src/app/main/ui/workspace/comments.cljs:135 +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs msgid "labels.show-all-comments" msgstr "Εμφάνιση όλων των σχολίων" -#: src/app/main/ui/viewer/comments.cljs:91, src/app/main/ui/workspace/comments.cljs:61, src/app/main/ui/workspace/comments.cljs:136 +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs msgid "labels.show-your-comments" msgstr "Εμφάνιση μόνο των δικών σας σχολίων" -#: src/app/main/ui/settings/profile.cljs:103 +#: src/app/main/ui/settings/profile.cljs msgid "labels.update" msgstr "Ενημέρωση" -#: src/app/main/ui/dashboard/team_form.cljs:120 +#: src/app/main/ui/dashboard/team_form.cljs msgid "labels.update-team" msgstr "Ενημερώστε τον εξοπλισμό" -#: src/app/main/ui/dashboard/team.cljs:123, src/app/main/ui/dashboard/team.cljs:282, src/app/main/ui/dashboard/team.cljs:521 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.viewer" msgstr "Θεατής" -#: src/app/main/ui/comments.cljs:194 +#: src/app/main/ui/comments.cljs msgid "labels.write-new-comment" msgstr "Γράψτε ένα νέο σχόλιο" -#: src/app/main/data/media.cljs:49, src/app/main/data/workspace/media.cljs:223, src/app/main/data/workspace/media.cljs:453 +#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs msgid "media.loading" msgstr "Φόρτωση εικόνας ..." -#: src/app/main/data/common.cljs:113 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.add-shared-confirm.accept" msgstr "Προσθήκη ως Κοινόχρηστη βιβλιοθήκη" -#: src/app/main/data/common.cljs:111 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.add-shared-confirm.hint" msgstr "" "Μόλις προστεθεί ως Κοινόχρηστη βιβλιοθήκη, τα στοιχεία αυτής της " "βιβλιοθήκης αρχείων θα είναι διαθέσιμα για χρήση μεταξύ των υπόλοιπων " "αρχείων σας." -#: src/app/main/data/common.cljs:110 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.add-shared-confirm.message" msgstr "Προσθήκη “%s” ως Κοινόχρηστη βιβλιοθήκη" -#: src/app/main/ui/settings/change_email.cljs:127 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.confirm-email" msgstr "16 / 5000 Resultados de traducción Επιβεβαιώστε νέο e-mail" -#: src/app/main/ui/settings/change_email.cljs:114 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.info" msgstr "" "Θα σας στείλουμε ένα email στο τρέχον email σας “%s” για να επαληθεύσουμε " "την ταυτότητά σας." -#: src/app/main/ui/settings/change_email.cljs:119 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.new-email" msgstr "Νέο email" -#: src/app/main/ui/settings/change_email.cljs:136 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.submit" msgstr "Αλλαγή email" -#: src/app/main/ui/settings/change_email.cljs:107 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.title" msgstr "Αλλάξτε το email σας" -#: src/app/main/ui/settings/delete_account.cljs:59 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.cancel" msgstr "Ακύρωση και διατήρηση του λογαριασμού μου" -#: src/app/main/ui/settings/delete_account.cljs:64 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.confirm" msgstr "Ναι, διαγράψτε τον λογαριασμό μου" -#: src/app/main/ui/settings/delete_account.cljs:53 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.info" msgstr "" "Καταργώντας τον λογαριασμό σας, θα χάσετε όλα τα τρέχοντα έργα και τα " "αρχεία σας." -#: src/app/main/ui/settings/delete_account.cljs:46 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.title" msgstr "Είστε σίγουροι ότι θέλετε να διαγράψετε το λογαριασμό σας;" -#: src/app/main/ui/comments.cljs:298 +#: src/app/main/ui/comments.cljs msgid "modals.delete-comment-thread.accept" msgstr "Διαγραφή συζήτησης" -#: src/app/main/ui/comments.cljs:297 +#: src/app/main/ui/comments.cljs msgid "modals.delete-comment-thread.message" msgstr "" "Είστε σίγουροι ότι θέλετε να διαγράψετε αυτήν τη συνομιλία; Όλα τα σχόλια " "σε αυτό το νήμα θα διαγραφούν." -#: src/app/main/ui/comments.cljs:296 +#: src/app/main/ui/comments.cljs msgid "modals.delete-comment-thread.title" msgstr "Διαγραφή συζήτησης" -#: src/app/main/ui/dashboard/file_menu.cljs:123 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-confirm.accept" msgstr "Διαγραφή φακέλου" -#: src/app/main/ui/dashboard/file_menu.cljs:122 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-confirm.message" msgstr "Είστε σίγουροι ότι θέλετε να διαγράψετε αυτό το αρχείο?" -#: src/app/main/ui/dashboard/file_menu.cljs:121 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-confirm.title" msgstr "Διαγραφή αρχείου" -#: src/app/main/ui/workspace/context_menu.cljs:522, src/app/main/ui/workspace/sidebar/sitemap.cljs:45 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs msgid "modals.delete-page.body" msgstr "Είστε σίγουροι ότι θέλετε να διαγράψετε αυτή τη σελίδα;" -#: src/app/main/ui/workspace/context_menu.cljs:521, src/app/main/ui/workspace/sidebar/sitemap.cljs:44 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs msgid "modals.delete-page.title" msgstr "Διαγραφή σελίδας" -#: src/app/main/ui/dashboard/project_menu.cljs:69 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "modals.delete-project-confirm.accept" msgstr "Διαγραφή έργου" -#: src/app/main/ui/dashboard/project_menu.cljs:68 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "modals.delete-project-confirm.message" msgstr "Είστε σίγουροι ότι θέλετε να διαγράψετε αυτό το έργο" -#: src/app/main/ui/dashboard/project_menu.cljs:67 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "modals.delete-project-confirm.title" msgstr "Διαγραφή έργου" -#: src/app/main/ui/dashboard/sidebar.cljs:435 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.delete-team-confirm.accept" msgstr "Διαγραφή ομάδας" -#: src/app/main/ui/dashboard/sidebar.cljs:434 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.delete-team-confirm.message" msgstr "" "Είστε σίγουροι ότι θέλετε να διαγράψετε αυτή την ομάδα; Όλα τα έργα και τα " "αρχεία που σχετίζονται με την ομάδα θα διαγραφούν οριστικά." -#: src/app/main/ui/dashboard/sidebar.cljs:433 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.delete-team-confirm.title" msgstr "Διαγραφή ομάδας" -#: src/app/main/ui/dashboard/team.cljs:427 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.delete-team-member-confirm.accept" msgstr "Διαγραφή μέλους" -#: src/app/main/ui/dashboard/team.cljs:426 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.delete-team-member-confirm.message" msgstr "Είστε σίγουροι ότι θέλετε να διαγράψετε αυτό το μέλος από την ομάδα;" -#: src/app/main/ui/dashboard/team.cljs:425 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.delete-team-member-confirm.title" msgstr "Διαγραφή μέλους της ομάδας" -#: src/app/main/ui/dashboard/team.cljs:218 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.invite-member-confirm.accept" msgstr "Αποστολή πρόσκλησης" -#: src/app/main/ui/dashboard/change_owner.cljs:55 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-reassign.hint1" msgstr "Είστε ο ιδιοκτήτης του %s" -#: src/app/main/ui/dashboard/change_owner.cljs:78 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-reassign.promote-and-leave" msgstr "Προώθηση και αφήστε" -#: src/app/main/ui/dashboard/change_owner.cljs:34 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-reassign.select-member-to-promote" msgstr "Επιλέξτε ένα μέλος για προώθηση" -#: src/app/main/ui/dashboard/change_owner.cljs:49 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-reassign.title" msgstr "Επιλέξτε ένα μέλος για προώθηση" -#: src/app/main/ui/dashboard/sidebar.cljs:402, src/app/main/ui/dashboard/sidebar.cljs:424, src/app/main/ui/dashboard/team.cljs:394, src/app/main/ui/dashboard/team.cljs:416 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-confirm.accept" msgstr "Αφήστε την ομάδα" -#: src/app/main/ui/dashboard/sidebar.cljs:401, src/app/main/ui/dashboard/team.cljs:415 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-confirm.message" msgstr "Είστε σίγουροι ότι θέλετε να αφήσετε αυτή την ομάδα;" -#: src/app/main/ui/dashboard/sidebar.cljs:400, src/app/main/ui/dashboard/sidebar.cljs:421, src/app/main/ui/dashboard/team.cljs:391, src/app/main/ui/dashboard/team.cljs:414 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-confirm.title" msgstr "Αφήστε την ομάδα" -#: src/app/main/ui/dashboard/team.cljs:340 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.accept" msgstr "Προώθηση" -#: src/app/main/ui/dashboard/team.cljs:338 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.message" msgstr "Είστε σίγουροι ότι θέλετε να προωθήσετε αυτό το χρήστη στον ιδιοκτήτη;" -#: src/app/main/ui/dashboard/team.cljs:337 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.title" msgstr "Προώθηση σε κάτοχο" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.remove-shared-confirm.accept" msgstr "Κατάργηση ως Κοινόχρηστη βιβλιοθήκη" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.remove-shared-confirm.hint" msgstr "" "Μόλις καταργηθεί ως Κοινόχρηστη βιβλιοθήκη, η Βιβλιοθήκη αρχείων αυτού του " "αρχείου θα σταματήσει να είναι διαθέσιμη για χρήση στα υπόλοιπα αρχεία σας." -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.remove-shared-confirm.message" msgstr "Καταργήστε το “%s” ως Κοινόχρηστη βιβλιοθήκη" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:380 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.accept" msgstr "Ενημέρωση στοιχείου" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:379 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.cancel" msgstr "Ακύρωση" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:378 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.hint" msgstr "" "Πρόκειται να ενημερώσετε ένα στοιχείο σε μια κοινόχρηστη βιβλιοθήκη. Αυτό " "μπορεί να επηρεάσει άλλα αρχεία που το χρησιμοποιούν." -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:377 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.message" msgstr "Ενημερώστε ένα στοιχείο σε μια κοινόχρηστη βιβλιοθήκη" -#: src/app/main/ui/dashboard/team.cljs:154, src/app/main/ui/dashboard/team.cljs:595 +#: src/app/main/ui/dashboard/team.cljs msgid "notifications.invitation-email-sent" msgstr "Η πρόσκληση εστάλη με επιτυχία" -#: src/app/main/ui/settings/delete_account.cljs:24 +#: src/app/main/ui/settings/delete_account.cljs msgid "notifications.profile-deletion-not-allowed" msgstr "" "Δεν μπορείτε να διαγράψετε το προφίλ σας. Επανατοποθετήστε τις ομάδες σας " "προτού συνεχίσετε." -#: src/app/main/ui/settings/options.cljs:29, src/app/main/ui/settings/profile.cljs:35 +#: src/app/main/ui/settings/profile.cljs, src/app/main/ui/settings/options.cljs msgid "notifications.profile-saved" msgstr "Το προφίλ αποθηκεύτηκε με επιτυχία!" -#: src/app/main/ui/settings/change_email.cljs:63 +#: src/app/main/ui/settings/change_email.cljs msgid "notifications.validation-email-sent" msgstr "Το email επαλήθευσης εστάλη στο %s. Ελέγξτε το email σας!" -#: src/app/main/ui/auth/recovery.cljs:99 +#: src/app/main/ui/auth/recovery.cljs msgid "profile.recovery.go-to-login" msgstr "Μεταβείτε στη σύνδεση" -#: src/app/main/ui/viewer/inspect/exports.cljs:147, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:631, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:137, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:148, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:188, src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:158, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:399, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:410, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:430, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:441, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:458, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:472, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:309, src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:183, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:373, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:389, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:245, src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:172 +#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs msgid "settings.multiple" msgstr "Μικτός " -#: src/app/main/ui/viewer.cljs:569 +#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs msgid "viewer.empty-state" msgstr "Δεν βρέθηκαν πλαίσια στη σελίδα" -#: src/app/main/ui/viewer.cljs:574 +#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs msgid "viewer.frame-not-found" msgstr "Το πλαίσιο δεν βρέθηκε." -#: src/app/main/ui/viewer/interactions.cljs:292 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.dont-show-interactions" msgstr "Μην εμφανίζετε αλληλεπιδράσεις" -#: src/app/main/ui/viewer/header.cljs:188 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.fullscreen" msgstr "Πλήρης οθόνη" -#: src/app/main/ui/viewer/share_link.cljs:187 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.share.copy-link" msgstr "Αντιγραφή link" -#: src/app/main/ui/viewer/interactions.cljs:300 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.show-interactions" msgstr "Εμφάνιση αλληλεπιδράσεων" -#: src/app/main/ui/viewer/interactions.cljs:311 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.show-interactions-on-click" msgstr "Εμφάνιση αλληλεπιδράσεων με click" -#: src/app/main/ui/viewer/header.cljs:231 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.sitemap" msgstr "Sitemap" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:58 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.hcenter" msgstr "Στοίχιση στο κέντρο (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:74 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.hdistribute" msgstr "Κατανομή οριζόντιου χώρου (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:50 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.hleft" msgstr "Ευθυγράμμιση προς τα αριστερά (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:66 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.hright" msgstr "Ευθυγράμμιση προς τα δεξιά (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:99 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.vbottom" msgstr "Στοίχιση κάτω (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:91 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.vcenter" msgstr "Ευθυγραμμίστε το κάθετο κέντρο (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:104 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.vdistribute" msgstr "Κατανομή κατακόρυφων αποστάσεων (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:83 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.vtop" msgstr "Ευθυγραμμίστε την κορυφή (%s)" #: src/app/main/ui/workspace/sidebar/assets.cljs -#, unused msgid "workspace.assets.assets" msgstr "Περιουσιακά στοιχεία" -#: src/app/main/ui/workspace/sidebar/assets.cljs:134 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.box-filter-all" msgstr "Όλα τα περιουσιακά στοιχεία" -#: src/app/main/ui/dashboard/grid.cljs:130, src/app/main/ui/dashboard/grid.cljs:162, src/app/main/ui/workspace/sidebar/assets/colors.cljs:485, src/app/main/ui/workspace/sidebar/assets.cljs:150 +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.colors" msgstr "Χρώματα" -#: src/app/main/ui/dashboard/grid.cljs:126, src/app/main/ui/dashboard/grid.cljs:141, src/app/main/ui/workspace/sidebar/assets/components.cljs:513, src/app/main/ui/workspace/sidebar/assets.cljs:139 +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.components" msgstr "Συστατικά" -#: src/app/main/ui/workspace/context_menu.cljs:529, src/app/main/ui/workspace/sidebar/assets/colors.cljs:251, src/app/main/ui/workspace/sidebar/assets/components.cljs:577, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:424, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:443 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.delete" msgstr "Διαγραφή" -#: src/app/main/ui/workspace/context_menu.cljs:534, src/app/main/ui/workspace/sidebar/assets/components.cljs:572 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.duplicate" msgstr "Αντιγραφή" -#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:247, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:439 +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.edit" msgstr "Επεξεργασία" -#: src/app/main/ui/workspace/sidebar/assets/graphics.cljs:384, src/app/main/ui/workspace/sidebar/assets.cljs:145 +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.graphics" msgstr "Γραφικά" -#: src/app/main/ui/workspace/sidebar/assets.cljs:168 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.libraries" msgstr "Βιβλιοθήκες" -#: src/app/main/ui/workspace/sidebar/assets/file_library.cljs:295 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.not-found" msgstr "Δεν βρέθηκαν στοιχεία" -#: src/app/main/ui/workspace/context_menu.cljs:532, src/app/main/ui/workspace/sidebar/assets/colors.cljs:243, src/app/main/ui/workspace/sidebar/assets/components.cljs:566, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:421, src/app/main/ui/workspace/sidebar/assets/groups.cljs:63, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:434 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.rename" msgstr "Μετονομασία" -#: src/app/main/ui/workspace/sidebar/assets.cljs:173 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.search" msgstr "Αναζήτηση στοιχείων" -#: src/app/main/ui/dashboard/grid.cljs:134, src/app/main/ui/dashboard/grid.cljs:189, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:397, src/app/main/ui/workspace/sidebar/assets.cljs:155 +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.typography" msgstr "Τυπογραφίες" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused msgid "workspace.assets.typography.font-id" msgstr "Γραμματοσειρά" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:505 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.font-size" msgstr "Μέγεθος" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:501 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.font-variant-id" msgstr "Παραλαγή" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:523 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.go-to-edit" msgstr "Μεταβείτε στο αρχείο βιβλιοθήκης στυλ για επεξεργασία" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:513 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.letter-spacing" msgstr "Διάστημα γραμμάτων" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:509 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.line-height" msgstr "Υψος γραμμής" -#: src/app/main/ui/dashboard/grid.cljs:199, src/app/main/ui/workspace/libraries.cljs:461, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:464, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:489, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:596, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:615 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, +#: src/app/main/ui/inspect/attributes/text.cljs, +#: src/app/main/ui/inspect/attributes/text.cljs msgid "workspace.assets.typography.sample" msgstr "Ag" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:517 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.text-transform" msgstr "Μετασχηματισμός κειμένου" -#: src/app/util/color.cljs:34 +#: src/app/main/data/workspace/libraries.cljs, +#: src/app/main/ui/components/color_bullet.cljs msgid "workspace.gradients.linear" msgstr "Γραμμική κλίση" -#: src/app/util/color.cljs:35 +#: src/app/main/data/workspace/libraries.cljs, +#: src/app/main/ui/components/color_bullet.cljs msgid "workspace.gradients.radial" msgstr "Ακτινική κλίση" -#: src/app/main/ui/workspace/main_menu.cljs:238 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.disable-dynamic-alignment" msgstr "Απενεργοποίηση δυναμικής ευθυγράμμισης" -#: src/app/main/ui/workspace/main_menu.cljs:239 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.enable-dynamic-alignment" msgstr "Ενεργοποίηση δυναμικής ευθυγράμμισης" -#: src/app/main/ui/workspace/main_menu.cljs:353 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.hide-palette" msgstr "Απόκρυψη παλέτας χρωμάτων" -#: src/app/main/ui/workspace/main_menu.cljs:320 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.hide-rules" msgstr "Απόκρυψη κανόνες" -#: src/app/main/ui/workspace/main_menu.cljs:432 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.select-all" msgstr "Επιλογή όλων" -#: src/app/main/ui/workspace/main_menu.cljs:354 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.show-palette" msgstr "Εμφάνιση παλέτας χρωμάτων" -#: src/app/main/ui/workspace/main_menu.cljs:321 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.show-rules" msgstr "Εμφάνιση κανόνες" #: src/app/main/ui/workspace/header.cljs -#, unused msgid "workspace.header.save-error" msgstr "Σφάλμα κατά την αποθήκευση" -#: src/app/main/ui/workspace/right_header.cljs:52 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.saved" msgstr "Αποθηκεύτηκε" #: src/app/main/ui/workspace/header.cljs -#, unused msgid "workspace.header.saving" msgstr "Aποθήκευση " -#: src/app/main/ui/workspace/right_header.cljs:42, src/app/main/ui/workspace/right_header.cljs:47 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.unsaved" msgstr "Μη αποθηκευμένες αλλαγές" -#: src/app/main/ui/workspace/right_header.cljs:239 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.viewer" msgstr "Λειτουργία προβολής (%s)" #: src/app/main/ui/workspace/libraries.cljs -#, unused msgid "workspace.libraries.add" msgstr "Προσθήκη" -#: src/app/main/ui/workspace/libraries.cljs:80, src/app/main/ui/workspace/libraries.cljs:99 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.colors" msgstr "%s χρώματα" -#: src/app/main/ui/workspace/color_palette_ctx_menu.cljs:60, src/app/main/ui/workspace/colorpicker/libraries.cljs:73, src/app/main/ui/workspace/text_palette_ctx_menu.cljs:50 +#: src/app/main/ui/workspace/colorpicker/libraries.cljs, +#: src/app/main/ui/workspace/colorpalette.cljs msgid "workspace.libraries.colors.file-library" msgstr "Βιβλιοθήκη αρχείων" -#: src/app/main/ui/workspace/color_palette_ctx_menu.cljs:82, src/app/main/ui/workspace/colorpicker/libraries.cljs:72 +#: src/app/main/ui/workspace/colorpicker/libraries.cljs, +#: src/app/main/ui/workspace/colorpalette.cljs msgid "workspace.libraries.colors.recent-colors" msgstr "Πρόσφατα χρώματα" -#: src/app/main/ui/workspace/colorpicker.cljs:372 +#: src/app/main/ui/workspace/colorpicker.cljs msgid "workspace.libraries.colors.save-color" msgstr "Αποθηκεύστε το στυλ χρώματος" -#: src/app/main/ui/workspace/libraries.cljs:74, src/app/main/ui/workspace/libraries.cljs:91 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.components" msgstr "%s στοιχεία" -#: src/app/main/ui/workspace/libraries.cljs:215 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.file-library" msgstr "Βιβλιοθήκη αρχείων" -#: src/app/main/ui/workspace/libraries.cljs:77, src/app/main/ui/workspace/libraries.cljs:95 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.graphics" msgstr "%s γραφικά" -#: src/app/main/ui/workspace/libraries.cljs:209 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.in-this-file" msgstr "ΒΙΒΛΙΟΘΗΚΕΣ ΣΕ ΑΥΤΟ ΤΟ ΑΡΧΕΙΟ" -#: src/app/main/ui/workspace/libraries.cljs:526, src/app/main/ui/workspace/libraries.cljs:531 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.libraries" msgstr "ΒΙΒΛΙΟΘΗΚΕΣ" #: src/app/main/ui/workspace/libraries.cljs -#, unused msgid "workspace.libraries.library" msgstr "ΒΙΒΛΙΟΘΗΚΗ" -#: src/app/main/ui/workspace/libraries.cljs:380 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.no-libraries-need-sync" msgstr "Δεν υπάρχουν κοινόχρηστες βιβλιοθήκες που χρειάζονται ενημέρωση" -#: src/app/main/ui/workspace/libraries.cljs:299 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.no-matches-for" msgstr "Δεν βρίσκεται «%s»" -#: src/app/main/ui/workspace/libraries.cljs:296 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.no-shared-libraries-available" msgstr "Δεν υπάρχουν διαθέσιμες κοινόχρηστες βιβλιοθήκες" -#: src/app/main/ui/workspace/libraries.cljs:260 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.search-shared-libraries" msgstr "Αναζήτηση σε κοινόχρηστες βιβλιοθήκες" -#: src/app/main/ui/workspace/libraries.cljs:256 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.shared-libraries" msgstr "Κοινόχρηστες βιβλιοθήκες" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:308 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.libraries.text.multiple-typography" msgstr "Πολλαπλές τυπογραφίες" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:311 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.libraries.text.multiple-typography-tooltip" msgstr "Αποσύνδεση όλων των τυπογραφιών" -#: src/app/main/ui/workspace/libraries.cljs:83, src/app/main/ui/workspace/libraries.cljs:103 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.typography" msgstr "%s τυπογραφίες" -#: src/app/main/ui/workspace/libraries.cljs:402 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.update" msgstr "Ενημέρωση" -#: src/app/main/ui/workspace/libraries.cljs:536 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.updates" msgstr "ΕΝΗΜΕΡΩΣΕΙΣ" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:86, src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:102 +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs msgid "workspace.options.blur-options.title" msgstr "Θολούρα" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:85 +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs msgid "workspace.options.blur-options.title.group" msgstr "Θολούρα της ομάδας" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:84 +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs msgid "workspace.options.blur-options.title.multiple" msgstr "Θόλωμα επιλογής" -#: src/app/main/ui/workspace/sidebar/options/page.cljs:32, src/app/main/ui/workspace/sidebar/options/page.cljs:39 +#: src/app/main/ui/workspace/sidebar/options/page.cljs msgid "workspace.options.canvas-background" msgstr "Χρώμα του φόντου" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:600, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:605 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs msgid "workspace.options.component" msgstr "Συστατικό" -#: src/app/main/ui/workspace/sidebar/options.cljs:112 +#: src/app/main/ui/workspace/sidebar/options.cljs msgid "workspace.options.design" msgstr "Σχέδιο" -#: src/app/main/ui/viewer/inspect/exports.cljs:139 +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, +#: src/app/main/ui/inspect/exports.cljs msgid "workspace.options.export" msgstr "Εξαγωγή" -#: src/app/main/ui/viewer/inspect/exports.cljs:195, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:237 +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, +#: src/app/main/ui/inspect/exports.cljs msgid "workspace.options.export-object" msgstr "Εξαγωγή σχήματος" -#: src/app/main/ui/viewer/inspect/exports.cljs:178, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:219 +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs msgid "workspace.options.export.suffix" msgstr "Κατάληξη" -#: src/app/main/ui/export.cljs:172, src/app/main/ui/export.cljs:241, src/app/main/ui/viewer/inspect/exports.cljs:194, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:236 +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, +#: src/app/main/ui/inspect/exports.cljs msgid "workspace.options.exporting-object" msgstr "Εξαγωγή ..." -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:49, src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:174 +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs msgid "workspace.options.fill" msgstr "Γέμισμα" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:29 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.auto" msgstr "Αυτόματο" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:157 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.column" msgstr "Στήλες" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.params.columns" msgstr "Στήλες" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:259 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.gutter" msgstr "απόσταση" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:246 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.height" msgstr "Υψος" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:270 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.margin" msgstr "Περιθώριο" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.params.rows" msgstr "Σειρές" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:216, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:290 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.set-default" msgstr "Ορίσετε ως προεπιλογή" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.params.size" msgstr "Μέγεθος" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.params.type" msgstr "Τύπος" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:231 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.bottom" msgstr "Κάτω" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:229 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.center" msgstr "Κέντρο" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:228 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.left" msgstr "Αριστερά" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:232 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.right" msgstr "Δεξιά" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:225 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.stretch" msgstr "Τέντωμα" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:227 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.top" msgstr "Πάνω" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:211, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:288 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.use-default" msgstr "χρήση προεπιλεγμένης" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:247 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.width" msgstr "Πλάτος" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:158 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.row" msgstr "Σειρές" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:156 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.square" msgstr "τετράγωνο" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:48 +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs msgid "workspace.options.group-fill" msgstr "Συμπλήρωση ομάδας" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:42 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.group-stroke" msgstr "Ομαδικό εγκεφαλικό" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:137 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.color" msgstr "Χρώμα" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:126 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.color-burn" msgstr "Έγκαυμα χρώματος" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:129 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.color-dodge" msgstr "Χρώμα πιο μαλακό " -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:124 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.darken" msgstr "Σκούρο" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:133 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.difference" msgstr "Διαφορά" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:134 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.exclusion" msgstr "Αποκλεισμός" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:132 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.hard-light" msgstr "Δυνατο φως" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:135 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.hue" msgstr "Απόχρωση" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:127 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.lighten" msgstr "Φωτίζω" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:138 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.luminosity" msgstr "Φωτεινότητα" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:125 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.multiply" msgstr "Πολλαπλασιάζω" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:123 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.normal" msgstr "Κανονικός" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:130 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.overlay" msgstr "Επικάλυμμα" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:136 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.saturation" msgstr "Κορεσμός" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:128 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.screen" msgstr "Κόσκινο" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:131 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.soft-light" msgstr "Απαλό φως" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -#, unused msgid "workspace.options.layer-options.title" msgstr "Στρώμα" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -#, unused msgid "workspace.options.layer-options.title.group" msgstr "στρώματα Ομάδα" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -#, unused msgid "workspace.options.layer-options.title.multiple" msgstr "Επιλεγμένα επίπεδα" -#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.position" msgstr "Θέση" -#: src/app/main/ui/workspace/sidebar/options.cljs:157 +#: src/app/main/ui/workspace/sidebar/options.cljs msgid "workspace.options.prototype" msgstr "Πρωτότυπο" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:469, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:481 msgid "workspace.options.radius" msgstr "Ακτίνα κύκλου" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:532 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.radius.all-corners" msgstr "Όλες οι γωνίες" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:533 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.radius.single-corners" msgstr "Μονές γωνίες" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:451 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.rotation" msgstr "Περιστροφή" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:741 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.select-a-shape" msgstr "" "Επιλέξτε ένα σχήμα, ένα artboard ή μια ομάδα για να σύρετε μια σύνδεση με " "άλλο artboard." -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:47 +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs msgid "workspace.options.selection-fill" msgstr "Συμπλήρωση επιλογής" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:41 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.selection-stroke" msgstr "Επιλογή διαδρομής" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:40, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:198, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:200 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.blur" msgstr "Θολούρα" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:144 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.drop-shadow" msgstr "Σκίαση" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:145 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.inner-shadow" msgstr "Εσωτερική σκιά" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:38, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:186 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.offsetx" msgstr "Χ" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:39, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:224 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.offsety" msgstr "Υ" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:41, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:211, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:213 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.spread" msgstr "Διάχυση" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:296 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.title" msgstr "Σκιά" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:295 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.title.group" msgstr "Ομαδική σκιά" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:294 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.title.multiple" msgstr "Επιλογή σκιών" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:162 +#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.size" msgstr "Μέγεθος" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:355 +#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs msgid "workspace.options.size-presets" msgstr "Προεπιλογές μεγέθους" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:43 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke" msgstr "Ακρη" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:87 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.center" msgstr "Κέντρο" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:105 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.dashed" msgstr "Dashed" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:104 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.dotted" msgstr "Διάστικτο" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:88 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.inner" msgstr "Μέσα" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:106 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.mixed" msgstr "Μικτός" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:89 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.outer" msgstr "Εξω" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:103 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.solid" msgstr "Στερεός" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:115 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.align-bottom" msgstr "Στοίχιση κάτω" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:111 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.align-middle" msgstr "Στοίχιση στο κέντρο" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:107 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.align-top" msgstr "Ευθυγραμμίστε την κορυφή" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:149 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.grow-auto-height" msgstr "Αυτόματο ύψος" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:145 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.grow-auto-width" msgstr "Αυτόματο πλάτος" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:141 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.grow-fixed" msgstr "Σταθερός" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:381 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.options.text-options.letter-spacing" msgstr "Διάστημα γραμμάτων" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:364 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.options.text-options.line-height" msgstr "Υψος γραμμής" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused msgid "workspace.options.text-options.lowercase" msgstr "Πεζά" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.options.text-options.none" msgstr "Κανένας" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:176 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.strikethrough" msgstr "Διαγράμμιση (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:51 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.text-align-center" msgstr "Ευθυγράμμιση κέντρο (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:59 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.text-align-justify" msgstr "Δικαιολόγηση (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:47 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.text-align-left" msgstr "Στοίχιση αριστερά (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:55 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.text-align-right" msgstr "Για ευθυγράμμιση προς τα δεξιά (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:189 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.title" msgstr "Κείμενο" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:188 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.title-group" msgstr "Κείμενο ομάδας" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:187 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.title-selection" msgstr "Κείμενο επιλογής" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused msgid "workspace.options.text-options.titlecase" msgstr "Τίτλος υπόθεση" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:171 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.underline" msgstr "υπογράμμιση (%s)" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused msgid "workspace.options.text-options.uppercase" msgstr "κεφαλαία" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:745 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.use-play-button" msgstr "" "Χρησιμοποιήστε το κουμπί αναπαραγωγής στην κεφαλίδα για να εκτελέσετε την " "προβολή πρωτοτύπου." -#: src/app/main/ui/workspace/context_menu.cljs:193 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.back" msgstr "Αποστολή προς τα πίσω" -#: src/app/main/ui/workspace/context_menu.cljs:190 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.backward" msgstr "Αποστολή προς τα πίσω" -#: src/app/main/ui/workspace/context_menu.cljs:139 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.copy" msgstr "αντίγραφο" -#: src/app/main/ui/workspace/context_menu.cljs:465 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.create-component" msgstr "Δημιουργία στοιχείου" -#: src/app/main/ui/workspace/context_menu.cljs:142 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.cut" msgstr "Αποκοπή" -#: src/app/main/ui/workspace/context_menu.cljs:486 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.delete" msgstr "Διαγραφή" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:432 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.detach-instance" msgstr "Αποσύνδεση παρουσίας" -#: src/app/main/ui/workspace/context_menu.cljs:148 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.duplicate" msgstr "Αντίγραφο" -#: src/app/main/ui/workspace/context_menu.cljs:321 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.edit" msgstr "Επεξεργασία" -#: src/app/main/ui/workspace/context_menu.cljs:208 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.flip-horizontal" msgstr "Αναστρέψτε οριζόντια" -#: src/app/main/ui/workspace/context_menu.cljs:204 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.flip-vertical" msgstr "Αναστροφή κάθετου" -#: src/app/main/ui/workspace/context_menu.cljs:184 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.forward" msgstr "Φέρτε μπροστά" -#: src/app/main/ui/workspace/context_menu.cljs:187 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.front" msgstr "Φέρτε μπροστά" -#: src/app/main/ui/workspace/context_menu.cljs:261 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.group" msgstr "Ομάδα" -#: src/app/main/ui/workspace/context_menu.cljs:363, src/app/main/ui/workspace/sidebar/layer_item.cljs:145 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.hide" msgstr "Κρύβω" -#: src/app/main/ui/workspace/context_menu.cljs:371, src/app/main/ui/workspace/sidebar/layer_item.cljs:153 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.lock" msgstr "Κλείδωμα" -#: src/app/main/ui/workspace/context_menu.cljs:266 +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.mask" msgstr "Μάσκα" -#: src/app/main/ui/workspace/context_menu.cljs:145, src/app/main/ui/workspace/context_menu.cljs:545 +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.paste" msgstr "Επικόλληση" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:436 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.reset-overrides" msgstr "Επαναφορά παρακάμψεων" -#: src/app/main/ui/workspace/context_menu.cljs:360, src/app/main/ui/workspace/sidebar/layer_item.cljs:144 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.show" msgstr "προβολή" -#: src/app/main/ui/workspace/context_menu.cljs:257 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.ungroup" msgstr "Κατάργηση ομάδας" -#: src/app/main/ui/workspace/context_menu.cljs:368, src/app/main/ui/workspace/sidebar/layer_item.cljs:152 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.unlock" msgstr "Ξεκλείδωμα" -#: src/app/main/ui/workspace/context_menu.cljs:271 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.unmask" msgstr "Ανακάλυψη" -#: src/app/main/ui/workspace/right_header.cljs:231, src/app/main/ui/workspace/right_header.cljs:232 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.sidebar.history" msgstr "Ιστορικό (%s)" -#: src/app/main/ui/workspace/sidebar/layers.cljs:522, src/app/main/ui/workspace/sidebar.cljs:100 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.sidebar.layers" msgstr "στρώσεις" -#: src/app/main/ui/viewer/inspect/attributes/svg.cljs:56, src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs:91 +#: src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs, +#: src/app/main/ui/inspect/attributes/svg.cljs msgid "workspace.sidebar.options.svg-attrs.title" msgstr "Εισαγόμενα χαρακτηριστικά SVG" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs:217 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs msgid "workspace.sidebar.sitemap" msgstr "Σελίδες" -#: src/app/main/ui/workspace/left_header.cljs:91 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.sitemap" msgstr "Χάρτης ιστοτόπου" -#: src/app/main/ui/workspace/sidebar.cljs:120 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.assets" msgstr "Στοιχεία" -#: src/app/main/ui/workspace/palette.cljs:165, src/app/main/ui/workspace/palette.cljs:166 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.color-palette" msgstr "Παλέτα χρωμάτων (%s)" -#: src/app/main/ui/workspace/right_header.cljs:220, src/app/main/ui/workspace/right_header.cljs:221 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.comments" msgstr "Σχόλια (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:180, src/app/main/ui/workspace/top_toolbar.cljs:181 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.curve" msgstr "Στροφή (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:160, src/app/main/ui/workspace/top_toolbar.cljs:161 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.ellipse" msgstr "Έλλειψη (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:142, src/app/main/ui/workspace/top_toolbar.cljs:143 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.frame" msgstr "Artboard (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:59, src/app/main/ui/workspace/top_toolbar.cljs:60 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.image" msgstr "Εικόνα (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:132, src/app/main/ui/workspace/top_toolbar.cljs:133 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.move" msgstr "" -#: src/app/main/ui/workspace/top_toolbar.cljs:189, src/app/main/ui/workspace/top_toolbar.cljs:190 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.path" msgstr "Path (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:151, src/app/main/ui/workspace/top_toolbar.cljs:152 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.rect" msgstr "Ορθογώνιο (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:169, src/app/main/ui/workspace/top_toolbar.cljs:170 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.text" msgstr "Κείμενο (%s)" -#: src/app/main/ui/workspace/sidebar/history.cljs:342 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.empty" msgstr "Δεν υπάρχουν μέχρι στιγμής αλλαγές στο ιστορικό" -#: src/app/main/ui/workspace/sidebar/history.cljs:147 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.entry.delete" msgstr "Διαγράφηκε %s" -#: src/app/main/ui/workspace/sidebar/history.cljs:146 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.entry.modify" msgstr "" -#: src/app/main/ui/workspace/sidebar/history.cljs:148 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.entry.move" msgstr "Τροποποιήθηκε %s" -#: src/app/main/ui/workspace/sidebar/history.cljs:111 msgid "workspace.undo.entry.multiple.circle" msgstr "κύκλους" -#: src/app/main/ui/workspace/sidebar/history.cljs:112 msgid "workspace.undo.entry.multiple.color" msgstr "χρώματα" -#: src/app/main/ui/workspace/sidebar/history.cljs:113 msgid "workspace.undo.entry.multiple.component" msgstr "συστατικά" -#: src/app/main/ui/workspace/sidebar/history.cljs:114 msgid "workspace.undo.entry.multiple.curve" msgstr "Kαμπύλες" -#: src/app/main/ui/workspace/sidebar/history.cljs:115 msgid "workspace.undo.entry.multiple.frame" msgstr "artboard" -#: src/app/main/ui/workspace/sidebar/history.cljs:116 msgid "workspace.undo.entry.multiple.group" msgstr "ομάδες" -#: src/app/main/ui/workspace/sidebar/history.cljs:117 msgid "workspace.undo.entry.multiple.media" msgstr "γραφικά στοιχεία" -#: src/app/main/ui/workspace/sidebar/history.cljs:118 msgid "workspace.undo.entry.multiple.multiple" msgstr "αντικείμενα" -#: src/app/main/ui/workspace/sidebar/history.cljs:119 msgid "workspace.undo.entry.multiple.page" msgstr "σελίδες" -#: src/app/main/ui/workspace/sidebar/history.cljs:120 msgid "workspace.undo.entry.multiple.path" msgstr "paths" -#: src/app/main/ui/workspace/sidebar/history.cljs:121 msgid "workspace.undo.entry.multiple.rect" msgstr "ορθογώνια" -#: src/app/main/ui/workspace/sidebar/history.cljs:122 msgid "workspace.undo.entry.multiple.shape" msgstr "σχήματα" -#: src/app/main/ui/workspace/sidebar/history.cljs:123 msgid "workspace.undo.entry.multiple.text" msgstr "κείμενα" -#: src/app/main/ui/workspace/sidebar/history.cljs:124 msgid "workspace.undo.entry.multiple.typography" msgstr "στοιχεία τυπογραφίας" -#: src/app/main/ui/workspace/sidebar/history.cljs:145 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.entry.new" msgstr "Νέα %s" -#: src/app/main/ui/workspace/sidebar/history.cljs:125 msgid "workspace.undo.entry.single.circle" msgstr "κύκλος" -#: src/app/main/ui/workspace/sidebar/history.cljs:126 msgid "workspace.undo.entry.single.color" msgstr "χρώμα" -#: src/app/main/ui/workspace/sidebar/history.cljs:127 msgid "workspace.undo.entry.single.component" msgstr "συστατικό" -#: src/app/main/ui/workspace/sidebar/history.cljs:128 msgid "workspace.undo.entry.single.curve" msgstr "καμπύλη" -#: src/app/main/ui/workspace/sidebar/history.cljs:129 msgid "workspace.undo.entry.single.frame" msgstr "artboard" -#: src/app/main/ui/workspace/sidebar/history.cljs:130 msgid "workspace.undo.entry.single.group" msgstr "ομάδα" -#: src/app/main/ui/workspace/sidebar/history.cljs:131 msgid "workspace.undo.entry.single.image" msgstr "εικόνα" -#: src/app/main/ui/workspace/sidebar/history.cljs:132 msgid "workspace.undo.entry.single.media" msgstr "γραφικό στοιχείο" -#: src/app/main/ui/workspace/sidebar/history.cljs:133 msgid "workspace.undo.entry.single.multiple" msgstr "αντικείμενο" -#: src/app/main/ui/workspace/sidebar/history.cljs:134 msgid "workspace.undo.entry.single.page" msgstr "σελίδα" -#: src/app/main/ui/workspace/sidebar/history.cljs:135 msgid "workspace.undo.entry.single.path" msgstr "path" -#: src/app/main/ui/workspace/sidebar/history.cljs:136 msgid "workspace.undo.entry.single.rect" msgstr "ορθωγώνιο" -#: src/app/main/ui/workspace/sidebar/history.cljs:137 msgid "workspace.undo.entry.single.shape" msgstr "σχήμα" -#: src/app/main/ui/workspace/sidebar/history.cljs:138 msgid "workspace.undo.entry.single.text" msgstr "κείμενο" -#: src/app/main/ui/workspace/sidebar/history.cljs:139 msgid "workspace.undo.entry.single.typography" msgstr "τυπογραφικό στοιχείο" -#: src/app/main/ui/workspace/sidebar/history.cljs:149 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.entry.unknown" msgstr "Λειτουργία άνω του %s" -#: src/app/main/ui/workspace/sidebar/history.cljs:335 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.title" msgstr "Ιστορία" -#: src/app/main/data/workspace/libraries.cljs:1094 +#: src/app/main/data/workspace/libraries.cljs msgid "workspace.updates.dismiss" msgstr "Παράβλεψη" -#: src/app/main/data/workspace/libraries.cljs:1090 +#: src/app/main/data/workspace/libraries.cljs msgid "workspace.updates.there-are-updates" msgstr "Υπάρχουν ενημερώσεις σε κοινόχρηστες βιβλιοθήκες" -#: src/app/main/data/workspace/libraries.cljs:1097 +#: src/app/main/data/workspace/libraries.cljs msgid "workspace.updates.update" msgstr "Ενημέρωση" -#, unused msgid "workspace.viewport.click-to-close-path" msgstr "Κάντε κλικ για να κλείσετε τη διαδρομή" diff --git a/frontend/translations/en.po b/frontend/translations/en.po index f6cc3c3b65..8458241ba9 100644 --- a/frontend/translations/en.po +++ b/frontend/translations/en.po @@ -11,557 +11,509 @@ msgstr "" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 4.14-dev\n" -#: src/app/main/ui/auth/register.cljs:151, src/app/main/ui/viewer/login.cljs:104 +#: src/app/main/ui/auth/register.cljs msgid "auth.already-have-account" msgstr "Already have an account?" -#: src/app/main/ui/auth/register.cljs:296 -msgid "auth.check-mail" -msgstr "Check your email" - -#: src/app/main/ui/auth/register.cljs:299 +#: src/app/main/ui/auth/register.cljs msgid "auth.check-your-email" msgstr "Check your email and click on the link to verify and start using Penpot." -#: src/app/main/ui/auth/recovery.cljs:78 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.confirm-password" msgstr "Confirm password" -#: src/app/main/ui/auth/register.cljs:163 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.create-demo-account" msgstr "Create demo account" #: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs -#, unused msgid "auth.create-demo-profile" msgstr "Just wanna try it?" -#: src/app/main/ui/auth/login.cljs:43 +#: src/app/main/ui/auth/register.cljs msgid "auth.demo-warning" msgstr "" "This is a DEMO service, DO NOT USE for real work, the projects will be " "periodically wiped." -#: src/app/main/ui/auth/login.cljs:189, src/app/main/ui/viewer/login.cljs:90 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/auth/login.cljs +msgid "auth.work-email" +msgstr "Work email" + +#: src/app/main/ui/auth/login.cljs msgid "auth.forgot-password" msgstr "Forgot password?" -#: src/app/main/ui/auth/register.cljs:254 +#: src/app/main/ui/auth/register.cljs msgid "auth.fullname" msgstr "Full Name" -#: src/app/main/ui/auth/login.cljs:282 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-account-title" msgstr "Log into my account" -#: src/app/main/ui/auth/register.cljs:155, src/app/main/ui/viewer/login.cljs:107 +#: src/app/main/ui/auth/register.cljs msgid "auth.login-here" msgstr "Login here." -#: src/app/main/ui/auth/login.cljs:195 +#: src/app/main/ui/auth/register.cljs +msgid "auth.check-mail" +msgstr "Check your email" + +#: src/app/main/ui/auth/login.cljs msgid "auth.login-submit" msgstr "Login" -#: src/app/main/ui/auth/login.cljs:285 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-tagline" msgstr "Penpot is the free open-source design tool for Design and Code collaboration" -#: src/app/main/ui/auth/login.cljs:222 -msgid "auth.login-with-github-submit" -msgstr "GitHub" +#: src/app/main/ui/auth/login.cljs +msgid "auth.register-tagline" +msgstr "With a free Penpot account, you can create unlimited teams and collaborate with other designers and developers on as many projects as you like. " -#: src/app/main/ui/auth/login.cljs:228 -msgid "auth.login-with-gitlab-submit" -msgstr "GitLab" - -#: src/app/main/ui/auth/login.cljs:216 -msgid "auth.login-with-google-submit" -msgstr "Google" - -#: src/app/main/ui/auth/login.cljs:201 -msgid "auth.login-with-ldap-submit" -msgstr "LDAP" - -#: src/app/main/ui/auth/login.cljs:234, src/app/main/ui/auth/login.cljs:255 -msgid "auth.login-with-oidc-submit" -msgstr "OpenID" - -#: src/app/main/ui/auth/register.cljs:217, src/app/main/ui/dashboard/team_form.cljs:76, src/app/main/ui/onboarding/team_choice.cljs:180, src/app/main/ui/settings/access_tokens.cljs:66, src/app/main/ui/settings/feedback.cljs:34, src/app/main/ui/settings/profile.cljs:45, src/app/main/ui/workspace/sidebar/assets/groups.cljs:108 -msgid "auth.name.not-all-space" -msgstr "The name must contain some character other than space." - -#: src/app/main/ui/auth/register.cljs:218, src/app/main/ui/dashboard/team_form.cljs:77, src/app/main/ui/onboarding/team_choice.cljs:181, src/app/main/ui/settings/access_tokens.cljs:67, src/app/main/ui/settings/feedback.cljs:33, src/app/main/ui/settings/profile.cljs:44, src/app/main/ui/workspace/sidebar/assets/groups.cljs:109 -msgid "auth.name.too-long" -msgstr "The name must contain at most 250 characters." - -#: src/app/main/ui/auth/recovery.cljs:71 -msgid "auth.new-password" -msgstr "Type a new password" - -#: src/app/main/ui/auth/recovery.cljs:42 -msgid "auth.notifications.invalid-token-error" -msgstr "The recovery token is invalid." - -#: src/app/main/ui/auth/recovery.cljs:46 -msgid "auth.notifications.password-changed-successfully" -msgstr "Password successfully changed" - -#: src/app/main/ui/auth/recovery_request.cljs:57 -msgid "auth.notifications.profile-not-verified" -msgstr "Profile is not verified, please verify profile before continue." - -#: src/app/main/ui/auth/recovery_request.cljs:40 -msgid "auth.notifications.recovery-token-sent" -msgstr "Password recovery link sent to your inbox." - -#: src/app/main/ui/auth/verify_token.cljs:47 -msgid "auth.notifications.team-invitation-accepted" -msgstr "Joined the team successfully" - -#: src/app/main/ui/auth/login.cljs:179, src/app/main/ui/auth/register.cljs:115 -msgid "auth.password" -msgstr "Password" - -#: src/app/main/ui/auth/register.cljs:114 -msgid "auth.password-length-hint" -msgstr "At least 8 characters" - -#: src/app/main/ui/auth/recovery.cljs:61, src/app/main/ui/auth/recovery.cljs:62, src/app/main/ui/auth/register.cljs:81, src/app/main/ui/settings/password.cljs:75, src/app/main/ui/settings/password.cljs:76, src/app/main/ui/settings/password.cljs:77 -msgid "auth.password-not-empty" -msgstr "Password must contain some character other than space." - -#: src/app/main/ui/auth.cljs:41 -msgid "auth.privacy-policy" -msgstr "Privacy policy" - -#: src/app/main/ui/auth/recovery_request.cljs:88 -msgid "auth.recovery-request-submit" -msgstr "Recover Password" - -#: src/app/main/ui/auth/recovery_request.cljs:101 -msgid "auth.recovery-request-subtitle" -msgstr "We'll send you an email with instructions" - -#: src/app/main/ui/auth/recovery_request.cljs:100 -msgid "auth.recovery-request-title" -msgstr "Forgot password?" - -#: src/app/main/ui/auth/recovery.cljs:82 -msgid "auth.recovery-submit" -msgstr "Change your password" - -#: src/app/main/ui/auth/login.cljs:298, src/app/main/ui/viewer/login.cljs:93 -msgid "auth.register" -msgstr "No account yet?" - -#: src/app/main/ui/auth/register.cljs:277 +#: src/app/main/ui/auth/login.cljs msgid "auth.register-account-tagline" msgstr "Let us know what we should call you on the dashboard and in emails." -#: src/app/main/ui/auth/register.cljs:276 -msgid "auth.register-account-title" -msgstr "Your name" +#: src/app/main/ui/auth/login.cljs +msgid "auth.login-with-github-submit" +msgstr "GitHub" -#: src/app/main/ui/auth/login.cljs:302, src/app/main/ui/auth/register.cljs:121, src/app/main/ui/auth/register.cljs:263, src/app/main/ui/viewer/login.cljs:97 +#: src/app/main/ui/auth/login.cljs +msgid "auth.login-with-gitlab-submit" +msgstr "GitLab" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.login-with-google-submit" +msgstr "Google" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.login-with-ldap-submit" +msgstr "LDAP" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.login-with-oidc-submit" +msgstr "OpenID" + +#: src/app/main/ui/settings/team-form.cljs, src/app/main/ui/auth/register.cljs, src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/onboarding/team_choice.cljs, src/app/main/ui/settings/access_tokens.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/settings/profile.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +msgid "auth.name.not-all-space" +msgstr "The name must contain some character other than space." + +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/onboarding/team_choice.cljs, src/app/main/ui/settings/access_tokens.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/settings/profile.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +msgid "auth.name.too-long" +msgstr "The name must contain at most 250 characters." + +#: src/app/main/ui/auth/recovery.cljs +msgid "auth.new-password" +msgstr "Type a new password" + +#: src/app/main/ui/auth/recovery.cljs +msgid "auth.notifications.invalid-token-error" +msgstr "The recovery token is invalid." + +#: src/app/main/ui/auth/recovery.cljs +msgid "auth.notifications.password-changed-successfully" +msgstr "Password successfully changed" + +#: src/app/main/ui/auth/recovery_request.cljs +msgid "auth.notifications.profile-not-verified" +msgstr "Profile is not verified, please verify profile before continue." + +#: src/app/main/ui/auth/recovery_request.cljs +msgid "auth.notifications.recovery-token-sent" +msgstr "Password recovery link sent to your inbox." + +#: src/app/main/ui/auth/verify_token.cljs +msgid "auth.notifications.team-invitation-accepted" +msgstr "Joined the team successfully" + +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +msgid "auth.password" +msgstr "Password" + +#: src/app/main/ui/auth/register.cljs +msgid "auth.password-length-hint" +msgstr "At least 8 characters" + +#: src/app/main/ui/auth/register.cljs +msgid "auth.password-not-empty" +msgstr "Password must contain some character other than space." + +msgid "auth.privacy-policy" +msgstr "Privacy policy" + +#: src/app/main/ui/auth/recovery_request.cljs +msgid "auth.recovery-request-submit" +msgstr "Recover Password" + +#: src/app/main/ui/auth/recovery_request.cljs +msgid "auth.recovery-request-subtitle" +msgstr "We'll send you an email with instructions" + +#: src/app/main/ui/auth/recovery_request.cljs +msgid "auth.recovery-request-title" +msgstr "Forgot password?" + +#: src/app/main/ui/auth/recovery.cljs +msgid "auth.recovery-submit" +msgstr "Change your password" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.register" +msgstr "No account yet?" + +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.register-submit" msgstr "Create an account" -#: src/app/main/ui/auth/register.cljs:142 -msgid "auth.register-tagline" -msgstr "" -"With a free Penpot account, you can create unlimited teams and collaborate " -"with other designers and developers on as many projects as you like. " - -#: src/app/main/ui/auth/register.cljs:140 +#: src/app/main/ui/auth/register.cljs msgid "auth.register-title" msgstr "Create an account" +#: src/app/main/ui/auth/register.cljs +msgid "auth.register-account-title" +msgstr "Your name" + #: src/app/main/ui/auth.cljs -#, unused msgid "auth.sidebar-tagline" msgstr "The open-source solution for design and prototyping." -#: src/app/main/ui/auth/register.cljs:202 -#, markdown -msgid "auth.terms-and-privacy-agreement" -msgstr "I agree to the [terms of service](%s) and [privacy policy](%s)." - -#: src/app/main/ui/auth.cljs:33, src/app/main/ui/dashboard/sidebar.cljs:1022, src/app/main/ui/workspace/main_menu.cljs:150 msgid "auth.terms-of-service" msgstr "Terms of service" -#, unused msgid "auth.terms-privacy-agreement" msgstr "" "When creating a new account, you agree to ourf terms of service and privacy " "policy." -#: src/app/main/ui/auth/register.cljs:297 +#: src/app/main/ui/auth/register.cljs +#, markdown +msgid "auth.terms-and-privacy-agreement" +msgstr "" +"I agree to the [terms of service](%s) and [privacy policy](%s)." + +#: src/app/main/ui/auth/register.cljs msgid "auth.verification-email-sent" msgstr "We've sent a verification email to" -#: src/app/main/ui/auth/login.cljs:172, src/app/main/ui/auth/recovery_request.cljs:83, src/app/main/ui/auth/register.cljs:108 -msgid "auth.work-email" -msgstr "Work email" - #: src/app/main/ui/onboarding/questions.cljs -#, unused msgid "branding-illustrations-marketing-pieces" msgstr "...branding, illustrations, marketing pieces, etc." -#: src/app/main/ui/workspace/libraries.cljs:228 msgid "common.publish" msgstr "Publish" -#: src/app/main/ui/viewer/share_link.cljs:304, src/app/main/ui/viewer/share_link.cljs:314 msgid "common.share-link.all-users" msgstr "All Penpot users" -#: src/app/main/ui/viewer/share_link.cljs:198 msgid "common.share-link.confirm-deletion-link-description" msgstr "" "Are you sure you want to remove this link? If you do it, it's no longer be " "available for anyone" -#: src/app/main/ui/viewer/share_link.cljs:259, src/app/main/ui/viewer/share_link.cljs:289 msgid "common.share-link.current-tag" msgstr "(current)" -#: src/app/main/ui/viewer/share_link.cljs:207, src/app/main/ui/viewer/share_link.cljs:214 msgid "common.share-link.destroy-link" msgstr "Destroy link" -#: src/app/main/ui/viewer/share_link.cljs:221 msgid "common.share-link.get-link" msgstr "Get link" -#: src/app/main/ui/viewer/share_link.cljs:139 msgid "common.share-link.link-copied-success" msgstr "Link copied successfully" -#: src/app/main/ui/viewer/share_link.cljs:231 msgid "common.share-link.manage-ops" msgstr "Manage permissions" -#: src/app/main/ui/viewer/share_link.cljs:277 msgid "common.share-link.page-shared" msgid_plural "common.share-link.page-shared" msgstr[0] "1 page shared" msgstr[1] "%s pages shared" -#: src/app/main/ui/viewer/share_link.cljs:298 msgid "common.share-link.permissions-can-comment" msgstr "Can comment" -#: src/app/main/ui/viewer/share_link.cljs:308 msgid "common.share-link.permissions-can-inspect" msgstr "Can inspect code" -#: src/app/main/ui/viewer/share_link.cljs:193 msgid "common.share-link.permissions-hint" msgstr "Anyone with link will have access" -#: src/app/main/ui/viewer/share_link.cljs:241 msgid "common.share-link.permissions-pages" msgstr "Pages shared" -#: src/app/main/ui/viewer/share_link.cljs:183 msgid "common.share-link.placeholder" msgstr "Shareable link will appear here" -#: src/app/main/ui/viewer/share_link.cljs:303, src/app/main/ui/viewer/share_link.cljs:313 msgid "common.share-link.team-members" msgstr "Only team members" -#: src/app/main/ui/viewer/share_link.cljs:171 msgid "common.share-link.title" msgstr "Share prototypes" -#: src/app/main/ui/viewer/share_link.cljs:269 msgid "common.share-link.view-all" msgstr "Select All" -#: src/app/main/ui/workspace/libraries.cljs:224 msgid "common.unpublish" msgstr "Unpublish" -#: src/app/main/ui/dashboard/projects.cljs:85 +#: src/app/main/ui/dashboard/projects.cljs msgid "dasboard.team-hero.management" msgstr "Team management" -#: src/app/main/ui/dashboard/projects.cljs:84 +#: src/app/main/ui/dashboard/projects.cljs msgid "dasboard.team-hero.text" msgstr "" "Penpot is meant for teams. Invite members to work together on projects and " "files" -#: src/app/main/ui/dashboard/projects.cljs:82 +#: src/app/main/ui/dashboard/projects.cljs msgid "dasboard.team-hero.title" msgstr "Team up!" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.tutorial-hero.info" msgstr "" "Learn the basics at Penpot while having some fun with this hands on " "tutorial." #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.tutorial-hero.start" msgstr "Start the tutorial" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.tutorial-hero.title" msgstr "Hands on Tutorial" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.walkthrough-hero.info" msgstr "Take a walk through Penpot and get to know its main features." #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.walkthrough-hero.start" msgstr "Start the tour" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.walkthrough-hero.title" msgstr "Interface Walkthrough" -#: src/app/main/ui/settings/access_tokens.cljs:115 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.copied-success" msgstr "Copied token" -#: src/app/main/ui/settings/access_tokens.cljs:202 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.create" msgstr "Generate new token" -#: src/app/main/ui/settings/access_tokens.cljs:76 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.create.success" msgstr "Access token created successfully." -#: src/app/main/ui/settings/access_tokens.cljs:300 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.empty.add-one" msgstr "Press the button \"Generate new token\" to generate one." -#: src/app/main/ui/settings/access_tokens.cljs:299 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.empty.no-access-tokens" msgstr "You have no tokens so far." -#: src/app/main/ui/settings/access_tokens.cljs:53 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.errors-required-name" msgstr "The name is required" -#: src/app/main/ui/settings/access_tokens.cljs:147 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-180-days" msgstr "180 days" -#: src/app/main/ui/settings/access_tokens.cljs:144 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-30-days" msgstr "30 days" -#: src/app/main/ui/settings/access_tokens.cljs:145 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-60-days" msgstr "60 days" -#: src/app/main/ui/settings/access_tokens.cljs:146 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-90-days" msgstr "90 days" -#: src/app/main/ui/settings/access_tokens.cljs:143 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-never" msgstr "Never" -#: src/app/main/ui/settings/access_tokens.cljs:282 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expired-on" msgstr "Expired on %s" -#: src/app/main/ui/settings/access_tokens.cljs:283 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expires-on" msgstr "Expires on %s" -#: src/app/main/ui/settings/access_tokens.cljs:281 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.no-expiration" msgstr "No expiration date" -#: src/app/main/ui/settings/access_tokens.cljs:197 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.personal" msgstr "Personal access tokens" -#: src/app/main/ui/settings/access_tokens.cljs:198 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.personal.description" msgstr "" "Personal access tokens function like an alternative to our login/password " "authentication system and can be used to allow an application to access the " "internal Penpot API" -#: src/app/main/ui/settings/access_tokens.cljs:154 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.token-will-expire" msgstr "The token will expire on %s" -#: src/app/main/ui/settings/access_tokens.cljs:155 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.token-will-not-expire" msgstr "The token has no expiration date" -#: src/app/main/ui/dashboard/file_menu.cljs:291, src/app/main/ui/workspace/main_menu.cljs:572 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.add-shared" msgstr "Add as Shared Library" -#: src/app/main/ui/settings/profile.cljs:75 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.change-email" msgstr "Change email" -#: src/app/main/data/dashboard.cljs:762, src/app/main/data/dashboard.cljs:983 +#: src/app/main/data/dashboard.cljs, src/app/main/data/dashboard.cljs msgid "dashboard.copy-suffix" msgstr "(copy)" -#: src/app/main/ui/dashboard/sidebar.cljs:338 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.create-new-team" msgstr "Create new team" -#: src/app/main/ui/components/context_menu_a11y.cljs:256, src/app/main/ui/dashboard/sidebar.cljs:646 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.default-team-name" msgstr "Your Penpot" -#: src/app/main/ui/dashboard/sidebar.cljs:571 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.delete-team" msgstr "Delete team" -#: src/app/main/ui/dashboard/file_menu.cljs:296, src/app/main/ui/workspace/main_menu.cljs:589 msgid "dashboard.download-binary-file" msgstr "Download Penpot file (.penpot)" -#: src/app/main/ui/dashboard/file_menu.cljs:300, src/app/main/ui/workspace/main_menu.cljs:597 msgid "dashboard.download-standard-file" msgstr "Download standard file (.svg + .json)" -#: src/app/main/ui/dashboard/file_menu.cljs:276, src/app/main/ui/dashboard/project_menu.cljs:90 +#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.duplicate" msgstr "Duplicate" -#: src/app/main/ui/dashboard/file_menu.cljs:240 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.duplicate-multi" msgstr "Duplicate %s files" -#: src/app/main/ui/dashboard/placeholder.cljs:32 +#: src/app/main/ui/dashboard/grid.cljs #, markdown msgid "dashboard.empty-placeholder-drafts" msgstr "" "Files added to Libraries will appear here. Try sharing your files or add " -"from our [Libraries & templates](https://penpot.app/libraries-templates)." +"from our [Libraries & " +"templates](https://penpot.app/libraries-templates)." -#: src/app/main/ui/dashboard/file_menu.cljs:249 msgid "dashboard.export-binary-multi" msgstr "Download %s Penpot files (.penpot)" -#: src/app/main/ui/workspace/main_menu.cljs:605 msgid "dashboard.export-frames" msgstr "Export boards as PDF" -#: src/app/main/ui/export.cljs:201 +#: src/app/main/ui/export.cljs msgid "dashboard.export-frames.title" msgstr "Export as PDF" -#, unused msgid "dashboard.export-multi" msgstr "Export Penpot %s files" -#: src/app/main/ui/export.cljs:109 +#: src/app/main/ui/export.cljs msgid "dashboard.export-multiple.selected" msgstr "%s of %s elements selected" -#: src/app/main/ui/workspace/main_menu.cljs:578 +#: src/app/main/ui/workspace/header.cljs msgid "dashboard.export-shapes" msgstr "Export" -#: src/app/main/ui/export.cljs:180 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.how-to" msgstr "" "You can add export settings to elements from the design properties (at the " "bottom of the right sidebar)." -#: src/app/main/ui/export.cljs:184 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.how-to-link" msgstr "Info how to set exports at Penpot." -#: src/app/main/ui/export.cljs:179 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.no-elements" msgstr "There are no elements with export settings." -#: src/app/main/ui/export.cljs:190 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.title" msgstr "Export selection" -#: src/app/main/ui/dashboard/file_menu.cljs:252 msgid "dashboard.export-standard-multi" msgstr "Download %s standard files (.svg + .json)" -#: src/app/main/ui/export.cljs:427 msgid "dashboard.export.detail" msgstr "* Might include components, graphics, colors and/or typographies." -#: src/app/main/ui/export.cljs:426 msgid "dashboard.export.explain" msgstr "" "One or more files that you want to export are using shared libraries. What " "do you want to do with their assets*?" -#: src/app/main/ui/export.cljs:435 msgid "dashboard.export.options.all.message" msgstr "" "files with shared libraries will be included in the export, maintaining " "their linkage." -#: src/app/main/ui/export.cljs:436 msgid "dashboard.export.options.all.title" msgstr "Export shared libraries" -#: src/app/main/ui/export.cljs:437 msgid "dashboard.export.options.detach.message" msgstr "" "Shared libraries will not be included in the export and no assets will be " "added to the library. " -#: src/app/main/ui/export.cljs:438 msgid "dashboard.export.options.detach.title" msgstr "Treat shared library assets as basic objects" -#: src/app/main/ui/export.cljs:439 msgid "dashboard.export.options.merge.message" msgstr "" "Your file will be exported with all external assets merged into the file " "library." -#: src/app/main/ui/export.cljs:440 msgid "dashboard.export.options.merge.title" msgstr "Include shared library assets in file libraries" -#: src/app/main/ui/export.cljs:418 msgid "dashboard.export.title" msgstr "Export files" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:309 msgid "dashboard.fonts.deleted-placeholder" msgstr "Missing font" -#: src/app/main/ui/dashboard/fonts.cljs:206 +#: src/app/main/ui/dashboard/fonts.cljs msgid "dashboard.fonts.dismiss-all" msgstr "Dismiss all" -#: src/app/main/ui/dashboard/fonts.cljs:436 msgid "dashboard.fonts.empty-placeholder" msgstr "Custom fonts you upload will appear here." -#: src/app/main/ui/dashboard/fonts.cljs:194 +#: src/app/main/ui/dashboard/fonts.cljs msgid "dashboard.fonts.fonts-added" msgid_plural "dashboard.fonts.fonts-added" msgstr[0] "1 font added" msgstr[1] "%s fonts added" -#: src/app/main/ui/dashboard/fonts.cljs:170 #, markdown msgid "dashboard.fonts.hero-text1" msgstr "" @@ -571,7 +523,6 @@ msgstr "" "upload fonts with the following formats: **TTF, OTF and WOFF** (only one " "will be needed)." -#: src/app/main/ui/dashboard/fonts.cljs:182 #, markdown msgid "dashboard.fonts.hero-text2" msgstr "" @@ -580,11 +531,10 @@ msgstr "" "Service](https://penpot.app/terms.html). You also might want to read about " "[font licensing](https://www.typography.com/faq)." -#: src/app/main/ui/dashboard/fonts.cljs:202 +#: src/app/main/ui/dashboard/fonts.cljs msgid "dashboard.fonts.upload-all" msgstr "Upload all" -#: src/app/main/ui/dashboard/fonts.cljs:187 #, markdown msgid "dashboard.fonts.warning-text" msgstr "" @@ -595,1736 +545,1472 @@ msgstr "" "using [Transfonter](https://transfonter.org/) to generate webfonts and fix " "errors. " -#: src/app/main/ui/dashboard/import.cljs:472, src/app/main/ui/dashboard/project_menu.cljs:108 msgid "dashboard.import" msgstr "Import Penpot files" -#: src/app/main/ui/dashboard/import.cljs:304, src/app/worker/import.cljs:753, src/app/worker/import.cljs:755 msgid "dashboard.import.analyze-error" msgstr "Oops! We couldn't import this file" -#, unused msgid "dashboard.import.analyze-error.components-v2" msgstr "File with components v2 activated but this team doesn't support it yet." -#: src/app/main/ui/dashboard/import.cljs:308 msgid "dashboard.import.import-error" msgstr "There was a problem importing the file. The file wasn't imported." -#: src/app/main/ui/dashboard/import.cljs:493 msgid "dashboard.import.import-message" msgid_plural "dashboard.import.import-message" msgstr[0] "1 file has been imported successfully." msgstr[1] "%s files have been imported successfully." -#: src/app/main/ui/dashboard/import.cljs:481, src/app/main/ui/dashboard/import.cljs:488 msgid "dashboard.import.import-warning" msgstr "Some files containted invalid objects that have been removed." -#: src/app/main/ui/dashboard/import.cljs:144 msgid "dashboard.import.progress.process-colors" msgstr "Processing colors" -#: src/app/main/ui/dashboard/import.cljs:153 msgid "dashboard.import.progress.process-components" msgstr "Processing components" -#: src/app/main/ui/dashboard/import.cljs:150 msgid "dashboard.import.progress.process-media" msgstr "Processing media" -#: src/app/main/ui/dashboard/import.cljs:141 msgid "dashboard.import.progress.process-page" msgstr "Processing page: %s" -#: src/app/main/ui/dashboard/import.cljs:147 msgid "dashboard.import.progress.process-typographies" msgstr "Processing typographies" -#: src/app/main/ui/dashboard/import.cljs:135 msgid "dashboard.import.progress.upload-data" msgstr "Uploading data to server (%s/%s)" -#: src/app/main/ui/dashboard/import.cljs:138 msgid "dashboard.import.progress.upload-media" msgstr "Uploading file: %s" -#: src/app/main/ui/dashboard/team.cljs:109 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.invite-profile" msgstr "Invite people" -#: src/app/main/ui/dashboard/sidebar.cljs:547, src/app/main/ui/dashboard/sidebar.cljs:556, src/app/main/ui/dashboard/sidebar.cljs:563, src/app/main/ui/dashboard/team.cljs:312 +#: src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.leave-team" msgstr "Leave team" -#: src/app/main/ui/dashboard/templates.cljs:88, src/app/main/ui/dashboard/templates.cljs:163 msgid "dashboard.libraries-and-templates" msgstr "Libraries & Templates" -#: src/app/main/ui/dashboard/templates.cljs:164 msgid "dashboard.libraries-and-templates.explore" msgstr "Explore more of them and know how to contribute" -#: src/app/main/ui/dashboard/import.cljs:365 msgid "dashboard.libraries-and-templates.import-error" msgstr "There was a problem importing the template. The template wasn't imported." -#: src/app/main/ui/dashboard/libraries.cljs:53 +#: src/app/main/ui/dashboard/libraries.cljs msgid "dashboard.libraries-title" msgstr "Libraries" -#: src/app/main/ui/dashboard/placeholder.cljs:45 +#: src/app/main/ui/dashboard/grid.cljs msgid "dashboard.loading-files" msgstr "loading your files …" -#: src/app/main/ui/dashboard/fonts.cljs:431 msgid "dashboard.loading-fonts" msgstr "loading your fonts …" -#: src/app/main/ui/dashboard/file_menu.cljs:281, src/app/main/ui/dashboard/project_menu.cljs:100 +#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.move-to" msgstr "Move to" -#: src/app/main/ui/dashboard/file_menu.cljs:245 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.move-to-multi" msgstr "Move %s files to" -#: src/app/main/ui/dashboard/file_menu.cljs:226 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.move-to-other-team" msgstr "Move to other team" -#: src/app/main/ui/dashboard/files.cljs:105, src/app/main/ui/dashboard/projects.cljs:252, src/app/main/ui/dashboard/projects.cljs:253 +#: src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/files.cljs msgid "dashboard.new-file" msgstr "+ New File" -#: src/app/main/data/dashboard.cljs:958, src/app/main/data/dashboard.cljs:1181 +#: src/app/main/data/dashboard.cljs msgid "dashboard.new-file-prefix" msgstr "New File" -#: src/app/main/ui/dashboard/projects.cljs:55 +#: src/app/main/ui/dashboard/projects.cljs msgid "dashboard.new-project" msgstr "+ New project" -#: src/app/main/data/dashboard.cljs:726, src/app/main/data/dashboard.cljs:1184 +#: src/app/main/data/dashboard.cljs msgid "dashboard.new-project-prefix" msgstr "New Project" -#: src/app/main/ui/dashboard/search.cljs:60 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.no-matches-for" msgstr "No matches found for “%s“" -#: src/app/main/ui/dashboard/sidebar.cljs:827 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.no-projects-placeholder" msgstr "Pinned projects will appear here" -#: src/app/main/ui/auth/verify_token.cljs:33 +#: src/app/main/ui/auth/verify_token.cljs msgid "dashboard.notifications.email-changed-successfully" msgstr "Your email address has been updated successfully" -#: src/app/main/ui/auth/verify_token.cljs:27 +#: src/app/main/ui/auth/verify_token.cljs msgid "dashboard.notifications.email-verified-successfully" msgstr "Your email address has been verified successfully" -#: src/app/main/ui/settings/password.cljs:37 +#: src/app/main/ui/settings/password.cljs msgid "dashboard.notifications.password-saved" msgstr "Password saved successfully!" -#: src/app/main/ui/dashboard/team.cljs:1081 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.num-of-members" msgstr "%s members" -#: src/app/main/ui/dashboard/file_menu.cljs:267 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.open-in-new-tab" msgstr "Open file in a new tab" -#: src/app/main/ui/dashboard/files.cljs:117, src/app/main/ui/dashboard/projects.cljs:260, src/app/main/ui/dashboard/projects.cljs:261 msgid "dashboard.options" msgstr "Options" -#: src/app/main/ui/settings/password.cljs:106, src/app/main/ui/settings/password.cljs:119 +#: src/app/main/ui/settings/password.cljs msgid "dashboard.password-change" msgstr "Change password" -#: src/app/main/ui/dashboard/pin_button.cljs:24, src/app/main/ui/dashboard/project_menu.cljs:95 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.pin-unpin" msgstr "Pin/Unpin" -#: src/app/main/ui/dashboard/projects.cljs:51 +#: src/app/main/ui/dashboard/projects.cljs msgid "dashboard.projects-title" msgstr "Projects" -#: src/app/main/ui/settings/profile.cljs:86 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.remove-account" msgstr "Want to remove your account?" #: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused msgid "dashboard.remove-shared" msgstr "Remove as Shared Library" -#: src/app/main/ui/settings/profile.cljs:78 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.save-settings" msgstr "Save settings" -#: src/app/main/ui/dashboard/sidebar.cljs:246, src/app/main/ui/dashboard/sidebar.cljs:247 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.search-placeholder" msgstr "Search…" -#: src/app/main/ui/dashboard/search.cljs:55 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.searching-for" msgstr "Searching for “%s“…" -#: src/app/main/ui/settings/options.cljs:56 +#: src/app/main/ui/settings/options.cljs msgid "dashboard.select-ui-language" msgstr "Select UI language" -#: src/app/main/ui/settings/options.cljs:63 +#: src/app/main/ui/settings/options.cljs msgid "dashboard.select-ui-theme" msgstr "Select theme" -#: src/app/main/ui/dashboard/projects.cljs:282 +#: src/app/main/ui/dashboard/grid.cljs msgid "dashboard.show-all-files" msgstr "Show all files" -#: src/app/main/ui/dashboard/file_menu.cljs:96 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-delete-file" msgid_plural "dashboard.success-delete-file" msgstr[0] "Your file has been deleted successfully" msgstr[1] "Your files have been deleted successfully" -#: src/app/main/ui/dashboard/project_menu.cljs:59 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.success-delete-project" msgstr "Your project has been deleted successfully" -#: src/app/main/ui/dashboard/file_menu.cljs:91 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-duplicate-file" msgid_plural "dashboard.success-delete-file" msgstr[0] "Your file has been duplicated successfully" msgstr[1] "Your files have been duplicated successfully" -#: src/app/main/ui/dashboard/project_menu.cljs:33 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.success-duplicate-project" msgstr "Your project has been duplicated successfully" -#: src/app/main/ui/dashboard/file_menu.cljs:130, src/app/main/ui/dashboard/grid.cljs:558, src/app/main/ui/dashboard/sidebar.cljs:152 +#: src/app/main/ui/dashboard/grid.cljs, src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-move-file" msgstr "Your file has been moved successfully" -#: src/app/main/ui/dashboard/file_menu.cljs:129 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-move-files" msgstr "Your files have been moved successfully" -#: src/app/main/ui/dashboard/project_menu.cljs:54 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.success-move-project" msgstr "Your project has been moved successfully" -#: src/app/main/ui/dashboard/team.cljs:1052 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.team-info" msgstr "Team info" -#: src/app/main/ui/dashboard/team.cljs:1070 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.team-members" msgstr "Team members" -#: src/app/main/ui/dashboard/team.cljs:1085 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.team-projects" msgstr "Team projects" -#: src/app/main/ui/settings/options.cljs:61 +#: src/app/main/ui/settings/options.cljs msgid "dashboard.theme-change" msgstr "UI theme" -#: src/app/main/ui/dashboard/search.cljs:42 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.title-search" msgstr "Search results" -#: src/app/main/ui/dashboard/search.cljs:50 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.type-something" msgstr "Type to search results" -#: src/app/main/ui/dashboard/file_menu.cljs:287, src/app/main/ui/workspace/main_menu.cljs:566 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.unpublish-shared" msgstr "Unpublish Library" -#: src/app/main/ui/settings/options.cljs:71 +#: src/app/main/ui/settings/password.cljs, src/app/main/ui/settings/options.cljs msgid "dashboard.update-settings" msgstr "Update settings" -#: src/app/main/ui/dashboard/team.cljs:861 msgid "dashboard.webhooks.active" msgstr "Is active" -#: src/app/main/ui/dashboard/team.cljs:862 msgid "dashboard.webhooks.active.explain" msgstr "When this hook is triggered event details will be delivered" -#: src/app/main/ui/dashboard/team.cljs:852 msgid "dashboard.webhooks.content-type" msgstr "Content type" -#: src/app/main/ui/dashboard/team.cljs:885 msgid "dashboard.webhooks.create" msgstr "Create webhook" -#: src/app/main/ui/dashboard/team.cljs:775 msgid "dashboard.webhooks.create.success" msgstr "Webhook created successfully." -#: src/app/main/ui/dashboard/team.cljs:882 msgid "dashboard.webhooks.description" msgstr "" "Webhooks are a simple way to allow other websites and apps to be notified " "when certain events happen at Penpot. We’ll send a POST request to each of " "the URLs you provide." -#: src/app/main/ui/dashboard/team.cljs:1005 msgid "dashboard.webhooks.empty.add-one" msgstr "Press the button \"Add webhook\" to add one." -#: src/app/main/ui/dashboard/team.cljs:1004 msgid "dashboard.webhooks.empty.no-webhooks" msgstr "No webhooks created so far." -#, unused msgid "dashboard.webhooks.update.success" msgstr "Webhook updated successfully." -#: src/app/main/ui/settings.cljs:31 +#: src/app/main/ui/settings.cljs msgid "dashboard.your-account-title" msgstr "Your account" -#: src/app/main/ui/settings/profile.cljs:70 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.your-email" msgstr "Email" -#: src/app/main/ui/settings/profile.cljs:62 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.your-name" msgstr "Your name" -#: src/app/main/ui/dashboard/file_menu.cljs:38, src/app/main/ui/dashboard/fonts.cljs:33, src/app/main/ui/dashboard/libraries.cljs:42, src/app/main/ui/dashboard/projects.cljs:318, src/app/main/ui/dashboard/search.cljs:30, src/app/main/ui/dashboard/sidebar.cljs:312, src/app/main/ui/dashboard/team.cljs:495, src/app/main/ui/dashboard/team.cljs:729, src/app/main/ui/dashboard/team.cljs:991, src/app/main/ui/dashboard/team.cljs:1038 +#: src/app/main/ui/dashboard/search.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/libraries.cljs, src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.your-penpot" msgstr "Your Penpot" -#: src/app/main/ui/alert.cljs:32 +#: src/app/main/ui/alert.cljs msgid "ds.alert-ok" msgstr "Ok" -#: src/app/main/ui/alert.cljs:31, src/app/main/ui/alert.cljs:34 +#: src/app/main/ui/alert.cljs msgid "ds.alert-title" msgstr "Attention" -#: src/app/main/ui/confirm.cljs:83 +#: src/app/main/ui/confirm.cljs msgid "ds.component-subtitle" msgstr "Components to update:" -#: src/app/main/ui/workspace/plugins.cljs:252 -msgid "ds.confirm-allow" -msgstr "Allow" - -#: src/app/main/ui/confirm.cljs:36, src/app/main/ui/workspace/plugins.cljs:246 +#: src/app/main/ui/confirm.cljs msgid "ds.confirm-cancel" msgstr "Cancel" -#: src/app/main/ui/confirm.cljs:37, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:141 +#: src/app/main/ui/confirm.cljs msgid "ds.confirm-ok" msgstr "Ok" -#: src/app/main/ui/confirm.cljs:35, src/app/main/ui/confirm.cljs:39 +msgid "ds.confirm-allow" +msgstr "Allow" + +#: src/app/main/ui/confirm.cljs, src/app/main/ui/confirm.cljs msgid "ds.confirm-title" msgstr "Are you sure?" -#: src/app/main/data/users.cljs:705 +#: src/app/main/data/users.cljs msgid "errors.auth-provider-not-allowed" msgstr "Auth provider not allowed for this profile" -#: src/app/main/ui/auth/login.cljs:62 +#: src/app/main/ui/auth/login.cljs msgid "errors.auth-provider-not-configured" msgstr "Authentication provider not configured." -#: src/app/main/errors.cljs:104 msgid "errors.auth.unable-to-login" msgstr "Looks like you are not authenticated or session expired." -#: src/app/main/data/fonts.cljs:189 msgid "errors.bad-font" msgstr "The font %s could not be loaded" -#: src/app/main/data/fonts.cljs:188 msgid "errors.bad-font-plural" msgstr "The fonts %s could not be loaded" -#: src/app/main/data/workspace/media.cljs:198 msgid "errors.cannot-upload" msgstr "Cannot upload the media file." -#: src/app/main/data/workspace.cljs:1598 +#: src/app/main/data/workspace.cljs msgid "errors.clipboard-not-implemented" msgstr "Your browser cannot do this operation" -#: src/app/main/ui/auth/verify_token.cljs:82, src/app/main/ui/settings/change_email.cljs:46 +#: src/app/main/ui/auth/verify_token.cljs, src/app/main/ui/settings/change_email.cljs msgid "errors.email-already-exists" msgstr "Email already used" -#: src/app/main/ui/auth/verify_token.cljs:87 +#: src/app/main/ui/auth/verify_token.cljs msgid "errors.email-already-validated" msgstr "Email already validated." -#: src/app/main/ui/settings/password.cljs:28 msgid "errors.email-as-password" msgstr "You can't use your email as password" -#: src/app/main/data/users.cljs:707, src/app/main/ui/auth/register.cljs:63 +#: src/app/main/data/users.cljs msgid "errors.email-domain-not-allowed" msgstr "Domain not allowed" -#: src/app/main/ui/auth/recovery_request.cljs:63, src/app/main/ui/dashboard/team.cljs:578, src/app/main/ui/settings/change_email.cljs:54 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/settings/change_email.cljs, src/app/main/ui/dashboard/team.cljs msgid "errors.email-has-permanent-bounces" msgstr "The email «%s» has many permanent bounce reports." -#: src/app/main/ui/auth/login.cljs:81, src/app/main/ui/auth/recovery_request.cljs:31, src/app/main/ui/auth/register.cljs:43 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs, src/app/main/ui/auth/recovery_request.cljs msgid "errors.email-invalid" msgstr "Enter a valid email please" -#: src/app/main/ui/settings/change_email.cljs:35 +#: src/app/main/ui/settings/change_email.cljs msgid "errors.email-invalid-confirmation" msgstr "Confirmation email must match" -#: src/app/main/ui/dashboard/team.cljs:170 msgid "errors.email-spam-or-permanent-bounces" msgstr "The email «%s» has been reported as spam or permanently bounce." -#: src/app/main/errors.cljs:227 +#: src/app/main/errors.cljs msgid "errors.feature-mismatch" msgstr "" "Looks like you are opening a file that has the feature '%s' enabled but the " "current penpot version does not supports it or has it disabled." -#: src/app/main/errors.cljs:231, src/app/main/errors.cljs:245 +#: src/app/main/errors.cljs msgid "errors.feature-not-supported" msgstr "Feature '%s' is not supported." -#: src/app/main/errors.cljs:223 +#: src/app/main/errors.cljs msgid "errors.file-feature-mismatch" msgstr "" "It seems that there is a mismatch between the enabled features and the " "features of the file you are trying to open. Migrations for '%s' need to be " "applied before the file can be opened." -#: src/app/main/data/users.cljs:709, src/app/main/ui/auth/login.cljs:65, src/app/main/ui/auth/login.cljs:116, src/app/main/ui/auth/register.cljs:69, src/app/main/ui/auth/register.cljs:237, src/app/main/ui/auth/verify_token.cljs:92, src/app/main/ui/dashboard/team.cljs:173, src/app/main/ui/onboarding/team_choice.cljs:95, src/app/main/ui/settings/access_tokens.cljs:91, src/app/main/ui/settings/feedback.cljs:52 +#: src/app/main/ui/auth/verify_token.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/dashboard/team.cljs msgid "errors.generic" msgstr "Something wrong has happened." -#: src/app/main/ui/components/color_input.cljs:57 +#: src/app/main/ui/components/color_input.cljs msgid "errors.invalid-color" msgstr "Invalid color" -#: src/app/main/ui/static.cljs:43 +#: src/app/main/ui/auth/verify_token.cljs msgid "errors.invite-invalid" msgstr "Invite invalid" -#: src/app/main/ui/static.cljs:44 msgid "errors.invite-invalid.info" msgstr "This invite might be canceled or may be expired." -#: src/app/main/ui/auth/login.cljs:101 +#: src/app/main/ui/auth/login.cljs msgid "errors.ldap-disabled" msgstr "LDAP authentication is disabled." -#: src/app/main/errors.cljs:239 +#: src/app/main/errors.cljs msgid "errors.max-quote-reached" msgstr "You have reached the '%s' quote. Contact with support." -#: src/app/main/data/workspace/media.cljs:184 +#: src/app/main/data/workspace/persistence.cljs msgid "errors.media-too-large" msgstr "The image is too large to be inserted." -#: src/app/main/data/media.cljs:68, src/app/main/data/workspace/media.cljs:187 +#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs msgid "errors.media-type-mismatch" msgstr "Seems that the contents of the image does not match the file extension." -#: src/app/main/data/media.cljs:65, src/app/main/data/workspace/media.cljs:172, src/app/main/data/workspace/media.cljs:175, src/app/main/data/workspace/media.cljs:178, src/app/main/data/workspace/media.cljs:181 +#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/workspace/persistence.cljs, src/app/main/data/workspace/persistence.cljs, src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs msgid "errors.media-type-not-allowed" msgstr "Seems that this is not a valid image." -#: src/app/main/ui/dashboard/team.cljs:574 +#: src/app/main/ui/dashboard/team.cljs msgid "errors.member-is-muted" msgstr "The profile you inviting has emails muted (spam reports or high bounces)." -#: src/app/main/errors.cljs:213 -#, fuzzy -msgid "errors.migration-in-progress" -msgstr "" - -#: src/app/main/ui/settings/password.cljs:61 +#: src/app/main/ui/settings/password.cljs msgid "errors.password-invalid-confirmation" msgstr "Confirmation password must match" -#: src/app/main/ui/settings/password.cljs:64 +#: src/app/main/ui/settings/password.cljs msgid "errors.password-too-short" msgstr "Password should at least be 8 characters" -#: src/app/main/errors.cljs:124 msgid "errors.paste-data-validation" msgstr "Invalid data in clipboard" -#: src/app/main/data/users.cljs:703, src/app/main/ui/auth/login.cljs:97, src/app/main/ui/auth/login.cljs:105 msgid "errors.profile-blocked" msgstr "The profile is blocked" -#: src/app/main/ui/auth/recovery_request.cljs:60, src/app/main/ui/dashboard/team.cljs:164, src/app/main/ui/dashboard/team.cljs:570, src/app/main/ui/settings/change_email.cljs:50 +#: src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/settings/change_email.cljs, src/app/main/ui/dashboard/team.cljs msgid "errors.profile-is-muted" msgstr "Your profile has emails muted (spam reports or high bounces)." -#: src/app/main/data/users.cljs:701, src/app/main/ui/auth/register.cljs:60 +#: src/app/main/ui/auth/register.cljs msgid "errors.registration-disabled" msgstr "The registration is currently disabled." -#: src/app/main/errors.cljs:218 +#: src/app/main/errors.cljs msgid "errors.team-feature-mismatch" msgstr "Detected incompatible feature '%s'" -#: src/app/main/ui/dashboard/sidebar.cljs:365, src/app/main/ui/dashboard/team.cljs:359 msgid "errors.team-leave.insufficient-members" msgstr "Insufficient members to leave team, you probably want to delete it." -#: src/app/main/ui/dashboard/sidebar.cljs:368, src/app/main/ui/dashboard/team.cljs:362 msgid "errors.team-leave.member-does-not-exists" msgstr "The member you try to assign does not exist." -#: src/app/main/ui/dashboard/sidebar.cljs:371, src/app/main/ui/dashboard/team.cljs:365 msgid "errors.team-leave.owner-cant-leave" msgstr "Owner can't leave team, you must reassign the owner role." -#: src/app/main/data/media.cljs:71 +#: src/app/main/data/media.cljs, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs msgid "errors.unexpected-error" msgstr "An unexpected error occurred." -#: src/app/main/ui/auth/verify_token.cljs:60 +#: src/app/main/ui/auth/verify_token.cljs msgid "errors.unexpected-token" msgstr "Unknown token" -#, unused msgid "errors.validation" msgstr "Validation Error" -#: src/app/main/errors.cljs:235 +#: src/app/main/errors.cljs msgid "errors.version-not-supported" msgstr "File has an incompatible version number" -#: src/app/main/ui/dashboard/team.cljs:796 msgid "errors.webhooks.connection" msgstr "Connection error, URL not reacheable" -#: src/app/main/ui/dashboard/team.cljs:790 msgid "errors.webhooks.invalid-uri" msgstr "URL does not pass validation." -#: src/app/main/ui/dashboard/team.cljs:949 msgid "errors.webhooks.last-delivery" msgstr "Last delivery was not successful." -#: src/app/main/ui/dashboard/team.cljs:792, src/app/main/ui/dashboard/team.cljs:952 msgid "errors.webhooks.ssl-validation" msgstr "Error on SSL validation." -#: src/app/main/ui/dashboard/team.cljs:794 msgid "errors.webhooks.timeout" msgstr "Timeout" -#: src/app/main/ui/dashboard/team.cljs:788 msgid "errors.webhooks.unexpected" msgstr "Unexpected error on validating" -#: src/app/main/ui/dashboard/team.cljs:798, src/app/main/ui/dashboard/team.cljs:955 msgid "errors.webhooks.unexpected-status" msgstr "Unexpected status %s" -#: src/app/main/ui/auth/login.cljs:109, src/app/main/ui/auth/login.cljs:113 +#: src/app/main/ui/auth/login.cljs msgid "errors.wrong-credentials" msgstr "Email or password is incorrect." -#: src/app/main/ui/settings/password.cljs:25 +#: src/app/main/ui/settings/password.cljs msgid "errors.wrong-old-password" msgstr "Old password is incorrect" -#: src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:85 -#, fuzzy -msgid "exclude" -msgstr "" - -#: src/app/main/ui/settings/feedback.cljs:77 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.description" msgstr "Description" -#: src/app/main/ui/settings/feedback.cljs:95 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.discourse-go-to" msgstr "Go to Penpot forum" -#: src/app/main/ui/settings/feedback.cljs:89 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.discourse-subtitle1" msgstr "" "We're happy to have you here. If you need help, please search before you " "post." -#: src/app/main/ui/settings/feedback.cljs:88 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.discourse-title" msgstr "Penpot community" -#: src/app/main/ui/settings/feedback.cljs:72 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.subject" msgstr "Subject" -#: src/app/main/ui/settings/feedback.cljs:69 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.subtitle" msgstr "" "Please describe the reason of your email, specifying if is an issue, an " "idea or a doubt. A member of our team will respond as soon as possible." -#: src/app/main/ui/settings/feedback.cljs:68 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.title" msgstr "Email" -#: src/app/main/ui/settings/feedback.cljs:105 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.twitter-go-to" msgstr "Go to X" -#: src/app/main/ui/settings/feedback.cljs:99 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.twitter-subtitle1" msgstr "Here to help with your technical queries." -#: src/app/main/ui/settings/feedback.cljs:98 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.twitter-title" msgstr "X support account" -#: src/app/main/ui/settings/password.cljs:30 +#: src/app/main/ui/settings/password.cljs msgid "generic.error" msgstr "An error has occurred" -#: src/app/main/ui/viewer/inspect/attributes/blur.cljs:26 +#: src/app/main/ui/inspect/attributes/blur.cljs msgid "inspect.attributes.blur" msgstr "Blur" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:115 +#: src/app/main/ui/inspect/attributes/blur.cljs msgid "inspect.attributes.blur.value" msgstr "Value" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:112 +#: src/app/main/ui/inspect/attributes/common.cljs msgid "inspect.attributes.color.hex" msgstr "HEX" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:114 +#: src/app/main/ui/inspect/attributes/common.cljs msgid "inspect.attributes.color.hsla" msgstr "HSLA" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:113 +#: src/app/main/ui/inspect/attributes/common.cljs msgid "inspect.attributes.color.rgba" msgstr "RGBA" -#: src/app/main/ui/viewer/inspect/attributes/fill.cljs:57 +#: src/app/main/ui/inspect/attributes/fill.cljs msgid "inspect.attributes.fill" msgstr "Fill" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:99, src/app/main/ui/viewer/inspect/attributes/image.cljs:51 +#: src/app/main/ui/inspect/attributes/image.cljs msgid "inspect.attributes.image.download" msgstr "Download source image" -#: src/app/main/ui/viewer/inspect/attributes/image.cljs:39 +#: src/app/main/ui/inspect/attributes/image.cljs msgid "inspect.attributes.image.height" msgstr "Height" -#: src/app/main/ui/viewer/inspect/attributes/image.cljs:32 +#: src/app/main/ui/inspect/attributes/image.cljs msgid "inspect.attributes.image.width" msgstr "Width" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout" msgstr "Layout" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.height" msgstr "Height" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.left" msgstr "Left" #: src/app/main/ui/inspect/attributes/layout.cljs, src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.radius" msgstr "Radius" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.rotation" msgstr "Rotation" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.top" msgstr "Top" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.width" msgstr "Width" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:57 +#: src/app/main/ui/inspect/attributes/shadow.cljs msgid "inspect.attributes.shadow" msgstr "Shadow" -#: src/app/main/ui/viewer/inspect/attributes/geometry.cljs:40 +#: src/app/main/ui/inspect/attributes/layout.cljs msgid "inspect.attributes.size" msgstr "Size and position" -#: src/app/main/ui/viewer/inspect/attributes/stroke.cljs:52 +#: src/app/main/ui/inspect/attributes/stroke.cljs msgid "inspect.attributes.stroke" msgstr "Stroke" -#, permanent, unused +#, permanent msgid "inspect.attributes.stroke.alignment.center" msgstr "Center" -#, permanent, unused +#, permanent msgid "inspect.attributes.stroke.alignment.inner" msgstr "Inside" -#, permanent, unused +#, permanent msgid "inspect.attributes.stroke.alignment.outer" msgstr "Outside" -#, unused msgid "inspect.attributes.stroke.style.dotted" msgstr "Dotted" -#, unused msgid "inspect.attributes.stroke.style.mixed" msgstr "Mixed" -#, unused msgid "inspect.attributes.stroke.style.none" msgstr "None" -#, unused msgid "inspect.attributes.stroke.style.solid" msgstr "Solid" #: src/app/main/ui/inspect/attributes/stroke.cljs -#, unused msgid "inspect.attributes.stroke.width" msgstr "Width" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:81, src/app/main/ui/viewer/inspect/attributes/text.cljs:194 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography" msgstr "Typography" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:89 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.font-family" msgstr "Font Family" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:107 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.font-size" msgstr "Font Size" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:98 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.font-style" msgstr "Font Style" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:116 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.font-weight" msgstr "Font Weight" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:134 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.letter-spacing" msgstr "Letter Spacing" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:125 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.line-height" msgstr "Line Height" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:143 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.text-decoration" msgstr "Text Decoration" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:145 msgid "inspect.attributes.typography.text-decoration.none" msgstr "None" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:146 msgid "inspect.attributes.typography.text-decoration.strikethrough" msgstr "Strikethrough" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:147 msgid "inspect.attributes.typography.text-decoration.underline" msgstr "Underline" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:156 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.text-transform" msgstr "Text Transform" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:158 msgid "inspect.attributes.typography.text-transform.lowercase" msgstr "Lower Case" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:159 msgid "inspect.attributes.typography.text-transform.none" msgstr "None" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:160 msgid "inspect.attributes.typography.text-transform.titlecase" msgstr "Title Case" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:162 msgid "inspect.attributes.typography.text-transform.unset" msgstr "Unset" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:161 msgid "inspect.attributes.typography.text-transform.uppercase" msgstr "Upper Case" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:140 msgid "inspect.empty.help" msgstr "If you want to know more about design inspect visit Penpot's help center" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:143 msgid "inspect.empty.more-info" msgstr "More info about inspect" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:135 msgid "inspect.empty.select" msgstr "Select a shape, board or group to inspect their properties and code" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:125 +#: src/app/main/ui/inspect/right_sidebar.cljs msgid "inspect.tabs.code" msgstr "Code" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:98 msgid "inspect.tabs.code.selected.circle" msgstr "Circle" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:99 msgid "inspect.tabs.code.selected.component" msgstr "Component" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:100 msgid "inspect.tabs.code.selected.curve" msgstr "Curve" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:101 msgid "inspect.tabs.code.selected.frame" msgstr "Board" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:102 msgid "inspect.tabs.code.selected.group" msgstr "Group" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:103 msgid "inspect.tabs.code.selected.image" msgstr "Image" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:104 msgid "inspect.tabs.code.selected.mask" msgstr "Mask" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:93 +#: src/app/main/ui/inspect/right_sidebar.cljs msgid "inspect.tabs.code.selected.multiple" msgstr "%s Selected" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:105 msgid "inspect.tabs.code.selected.path" msgstr "Path" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:106 msgid "inspect.tabs.code.selected.rect" msgstr "Rectangle" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:107 msgid "inspect.tabs.code.selected.svg-raw" msgstr "SVG" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:108 msgid "inspect.tabs.code.selected.text" msgstr "Text" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:115 +#: src/app/main/ui/inspect/right_sidebar.cljs msgid "inspect.tabs.info" msgstr "Info" -#: src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:80 -#, fuzzy -msgid "intersection" -msgstr "" - -#: src/app/main/ui/workspace/main_menu.cljs:158 +#: src/app/main/ui/workspace/header.cljs msgid "label.shortcuts" msgstr "Shortcuts" -#: src/app/main/ui/dashboard/import.cljs:527 msgid "labels.accept" msgstr "Accept" -#: src/app/main/ui/settings/sidebar.cljs:100 +#: src/app/main/ui/settings/sidebar.cljs msgid "labels.access-tokens" msgstr "Access tokens" -#: src/app/main/ui/dashboard/team.cljs:968 msgid "labels.active" msgstr "Active" -#: src/app/main/ui/dashboard/fonts.cljs:175 msgid "labels.add-custom-font" msgstr "Add custom font" -#: src/app/main/ui/dashboard/team.cljs:120, src/app/main/ui/dashboard/team.cljs:276, src/app/main/ui/dashboard/team.cljs:519, src/app/main/ui/dashboard/team.cljs:549, src/app/main/ui/onboarding/team_choice.cljs:67 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs msgid "labels.admin" msgstr "Admin" -#: src/app/main/ui/onboarding/questions.cljs:174 -msgid "labels.adobe-xd" -msgstr "Adobe XD" - #: src/app/main/ui/workspace/comments.cljs -#, unused msgid "labels.all" msgstr "All" -#: src/app/main/ui/auth.cljs:37 msgid "labels.and" msgstr "and" -#: src/app/main/ui/onboarding/questions.cljs:416 -msgid "labels.article" -msgstr "Article (Blog, Post, Newsletter)" - -#: src/app/main/ui/onboarding/team_choice.cljs:162 msgid "labels.back" msgstr "Back" -#: src/app/main/ui/static.cljs:59 +#: src/app/main/ui/static.cljs msgid "labels.bad-gateway.desc-message" msgstr "" "Looks like you need to wait a bit and retry; we are performing small " "maintenance of our servers." -#: src/app/main/ui/static.cljs:58 +#: src/app/main/ui/static.cljs msgid "labels.bad-gateway.main-message" msgstr "Bad Gateway" -#: src/app/main/data/common.cljs:112, src/app/main/ui/dashboard/change_owner.cljs:69, src/app/main/ui/dashboard/import.cljs:514, src/app/main/ui/dashboard/team.cljs:868, src/app/main/ui/delete_shared.cljs:35, src/app/main/ui/export.cljs:164, src/app/main/ui/export.cljs:460, src/app/main/ui/settings/access_tokens.cljs:188, src/app/main/ui/viewer/share_link.cljs:203, src/app/main/ui/workspace/sidebar/assets/groups.cljs:149 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.cancel" msgstr "Cancel" -#: src/app/main/ui/onboarding/questions.cljs:176 -msgid "labels.canva" -msgstr "Canva" - -#: src/app/main/ui/dashboard/projects.cljs:93, src/app/main/ui/export.cljs:478, src/app/main/ui/settings/access_tokens.cljs:183, src/app/main/ui/viewer/login.cljs:77, src/app/main/ui/viewer/share_link.cljs:174, src/app/main/ui/workspace/libraries.cljs:522 msgid "labels.close" msgstr "Close" -#: src/app/main/ui/dashboard/comments.cljs:104, src/app/main/ui/viewer/comments.cljs:70, src/app/main/ui/workspace/comments.cljs:126 +#: src/app/main/ui/dashboard/comments.cljs msgid "labels.comments" msgstr "Comments" -#: src/app/main/ui/dashboard/sidebar.cljs:985, src/app/main/ui/workspace/main_menu.cljs:110 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.community" msgstr "Community" -#: src/app/main/ui/settings/password.cljs:103 +#: src/app/main/ui/settings/password.cljs msgid "labels.confirm-password" msgstr "Confirm password" -#: src/app/main/ui/dashboard/import.cljs:520, src/app/main/ui/export.cljs:465, src/app/main/ui/onboarding/newsletter.cljs:101 msgid "labels.continue" msgstr "Continue" -#, unused msgid "labels.continue-with" msgstr "Continue with" -#: src/app/main/ui/viewer/login.cljs:75 msgid "labels.continue-with-penpot" msgstr "You can continue with a Penpot account" -#: src/app/main/ui/dashboard/team.cljs:642 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.copy-invitation-link" msgstr "Copy link" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:157, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:190 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "labels.create" msgstr "Create" -#: src/app/main/ui/dashboard/team_form.cljs:101, src/app/main/ui/dashboard/team_form.cljs:121 +#: src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/dashboard/team_form.cljs msgid "labels.create-team" msgstr "Create new team" -#: src/app/main/ui/dashboard/team_form.cljs:113 +#: src/app/main/ui/dashboard/team_form.cljs msgid "labels.create-team.placeholder" msgstr "Enter new team name" -#, unused msgid "labels.custom-fonts" msgstr "Custom fonts" -#: src/app/main/ui/settings/sidebar.cljs:73 +#: src/app/main/ui/settings/sidebar.cljs msgid "labels.dashboard" msgstr "Dashboard" -#: src/app/main/ui/dashboard/file_menu.cljs:306, src/app/main/ui/dashboard/fonts.cljs:255, src/app/main/ui/dashboard/fonts.cljs:332, src/app/main/ui/dashboard/fonts.cljs:346, src/app/main/ui/dashboard/project_menu.cljs:115, src/app/main/ui/dashboard/team.cljs:904, src/app/main/ui/settings/access_tokens.cljs:209, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:209 +#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "labels.delete" msgstr "Delete" -#: src/app/main/ui/comments.cljs:357 +#: src/app/main/ui/comments.cljs msgid "labels.delete-comment" msgstr "Delete comment" -#: src/app/main/ui/comments.cljs:354 +#: src/app/main/ui/comments.cljs msgid "labels.delete-comment-thread" msgstr "Delete thread" -#: src/app/main/ui/dashboard/team.cljs:648 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.delete-invitation" msgstr "Delete invitation" -#: src/app/main/ui/dashboard/file_menu.cljs:262 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.delete-multi-files" msgstr "Delete %s files" -#: src/app/main/ui/onboarding/questions.cljs:250 -msgid "labels.developer" -msgstr "Development" - -#: src/app/main/ui/onboarding/questions.cljs:264 -msgid "labels.director" -msgstr "Director" - -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:199 msgid "labels.discard" msgstr "Discard" -#: src/app/main/ui/dashboard/file_menu.cljs:28, src/app/main/ui/dashboard/files.cljs:72, src/app/main/ui/dashboard/files.cljs:156, src/app/main/ui/dashboard/projects.cljs:220, src/app/main/ui/dashboard/projects.cljs:224, src/app/main/ui/dashboard/sidebar.cljs:791 +#: src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/files.cljs, src/app/main/ui/dashboard/files.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "labels.drafts" msgstr "Drafts" -#: src/app/main/ui/comments.cljs:350, src/app/main/ui/dashboard/fonts.cljs:252, src/app/main/ui/dashboard/team.cljs:902, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:205 +#: src/app/main/ui/comments.cljs msgid "labels.edit" msgstr "Edit" -#, unused msgid "labels.edit-file" msgstr "Edit file" -#: src/app/main/ui/dashboard/team.cljs:118, src/app/main/ui/dashboard/team.cljs:279, src/app/main/ui/dashboard/team.cljs:520, src/app/main/ui/dashboard/team.cljs:553, src/app/main/ui/onboarding/team_choice.cljs:66 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs msgid "labels.editor" msgstr "Editor" -#: src/app/main/ui/onboarding/questions.cljs:413 -msgid "labels.event" -msgstr "Event" - -#: src/app/main/ui/dashboard/team.cljs:661 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.expired-invitation" msgstr "Expired" -#: src/app/main/ui/export.cljs:173 msgid "labels.export" msgstr "Export" -#: src/app/main/ui/settings/feedback.cljs:51 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.feedback-disabled" msgstr "Feedback disabled" -#: src/app/main/ui/settings/feedback.cljs:42 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.feedback-sent" msgstr "Feedback sent" -#: src/app/main/ui/onboarding/questions.cljs:170 -msgid "labels.figma" -msgstr "Figma" - -#: src/app/main/ui/dashboard/fonts.cljs:412 msgid "labels.font-family" msgstr "Font Family" -#, unused msgid "labels.font-providers" msgstr "Font providers" -#: src/app/main/ui/dashboard/fonts.cljs:413 msgid "labels.font-variants" msgstr "Styles" -#: src/app/main/ui/dashboard/fonts.cljs:52, src/app/main/ui/dashboard/sidebar.cljs:811 msgid "labels.fonts" msgstr "Fonts" -#: src/app/main/ui/onboarding/questions.cljs:263 -msgid "labels.founder" -msgstr "CEO or Founder" - -#: src/app/main/ui/onboarding/questions.cljs:262 -msgid "labels.freelancer" -msgstr "Freelancer" - -#: src/app/main/ui/dashboard/sidebar.cljs:1015, src/app/main/ui/workspace/main_menu.cljs:142 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.github-repo" msgstr "Github repository" -#: src/app/main/ui/dashboard/sidebar.cljs:1032, src/app/main/ui/settings/sidebar.cljs:113, src/app/main/ui/workspace/main_menu.cljs:171 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.give-feedback" msgstr "Give feedback" -#: src/app/main/ui/auth/recovery_request.cljs:110, src/app/main/ui/auth/register.cljs:285, src/app/main/ui/viewer/login.cljs:117 msgid "labels.go-back" msgstr "Go back" -#: src/app/main/ui/onboarding/questions.cljs:252 -msgid "labels.graphic-design" -msgstr "Graphic design" - -#: src/app/main/ui/dashboard/sidebar.cljs:978, src/app/main/ui/workspace/main_menu.cljs:102 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.help-center" msgstr "Help Center" -#: src/app/main/ui/viewer/comments.cljs:103, src/app/main/ui/workspace/comments.cljs:67 +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs msgid "labels.hide-resolved-comments" msgstr "Hide resolved comments" -#: src/app/main/ui/dashboard/team.cljs:969 msgid "labels.inactive" msgstr "Inactive" -#: src/app/main/ui/dashboard/fonts.cljs:410 msgid "labels.installed-fonts" msgstr "Installed fonts" -#: src/app/main/ui/static.cljs:144 +#: src/app/main/ui/static.cljs msgid "labels.internal-error.desc-message" msgstr "" "Something bad happened. Please retry the operation and if the problem " "persists, contact support." -#: src/app/main/ui/static.cljs:143 +#: src/app/main/ui/static.cljs msgid "labels.internal-error.main-message" msgstr "Internal Error" -#: src/app/main/ui/onboarding/questions.cljs:178 -msgid "labels.invision" -msgstr "InVision" - -#: src/app/main/ui/dashboard/sidebar.cljs:516, src/app/main/ui/dashboard/team.cljs:89, src/app/main/ui/dashboard/team.cljs:97, src/app/main/ui/dashboard/team.cljs:708 +#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.invitations" msgstr "Invitations" -#: src/app/main/ui/settings/options.cljs:51 +#: src/app/main/ui/settings/options.cljs msgid "labels.language" msgstr "Language" -#: src/app/main/ui/dashboard/sidebar.cljs:1008, src/app/main/ui/workspace/main_menu.cljs:134 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.libraries-and-templates" msgstr "Libraries & Templates" -#: src/app/main/ui/viewer/header.cljs:203 msgid "labels.log-or-sign" msgstr "Log in or sign up" -#: src/app/main/ui/dashboard/sidebar.cljs:1040 +#: src/app/main/ui/settings.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.logout" msgstr "Logout" -#: src/app/main/ui/onboarding/questions.cljs:253 -msgid "labels.marketing" -msgstr "Marketing" - -#: src/app/main/ui/dashboard/team.cljs:468 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.member" msgstr "Member" -#: src/app/main/ui/dashboard/sidebar.cljs:510, src/app/main/ui/dashboard/team.cljs:87, src/app/main/ui/dashboard/team.cljs:95 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.members" msgstr "Members" -#: src/app/main/ui/settings/password.cljs:96 +#: src/app/main/ui/settings/password.cljs msgid "labels.new-password" msgstr "New password" -#: src/app/main/ui/dashboard/templates.cljs:269, src/app/main/ui/onboarding/questions.cljs:55 -msgid "labels.next" -msgstr "Next" - -#: src/app/main/ui/dashboard/comments.cljs:128, src/app/main/ui/workspace/comments.cljs:161 +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/dashboard/comments.cljs msgid "labels.no-comments-available" msgstr "You're all caught up! New comment notifications will appear here." -#: src/app/main/ui/dashboard/team.cljs:694 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.no-invitations" msgstr "No pending invitations." -#: src/app/main/ui/dashboard/team.cljs:696 +#: src/app/main/ui/dashboard/team.cljs #, markdown msgid "labels.no-invitations-hint" msgstr "Click the **Invite people** button to invite people to this team." -#: src/app/main/ui/static.cljs:50 +#: src/app/main/ui/static.cljs msgid "labels.not-found.desc-message" msgstr "This page might not exist or you don’t have permissions to access to it." -#: src/app/main/ui/static.cljs:49 +#: src/app/main/ui/static.cljs msgid "labels.not-found.main-message" msgstr "Oops!" -#: src/app/main/ui/dashboard/projects.cljs:239, src/app/main/ui/dashboard/team.cljs:1095 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.num-of-files" msgid_plural "labels.num-of-files" msgstr[0] "1 file" msgstr[1] "%s files" -#: src/app/main/ui/viewer/thumbnails.cljs:80 msgid "labels.num-of-frames" msgid_plural "labels.num-of-frames" msgstr[0] "1 board" msgstr[1] "%s boards" -#: src/app/main/ui/dashboard/team.cljs:1090 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.num-of-projects" msgid_plural "labels.num-of-projects" msgstr[0] "1 project" msgstr[1] "%s projects" -#: src/app/main/ui/settings/password.cljs:89 +#: src/app/main/ui/settings/password.cljs msgid "labels.old-password" msgstr "Old password" #: src/app/main/ui/workspace/comments.cljs -#, unused msgid "labels.only-yours" msgstr "Only yours" -#, unused msgid "labels.or" msgstr "or" -#: src/app/main/ui/onboarding/questions.cljs:145, src/app/main/ui/onboarding/questions.cljs:214, src/app/main/ui/onboarding/questions.cljs:303, src/app/main/ui/onboarding/questions.cljs:316, src/app/main/ui/onboarding/questions.cljs:389, src/app/main/ui/onboarding/questions.cljs:447 -msgid "labels.other" -msgstr "Other (specify)" - -#: src/app/main/ui/onboarding/questions.cljs:105, src/app/main/ui/onboarding/questions.cljs:180, src/app/main/ui/onboarding/questions.cljs:255, src/app/main/ui/onboarding/questions.cljs:265, src/app/main/ui/onboarding/questions.cljs:357, src/app/main/ui/onboarding/questions.cljs:417 -msgid "labels.other-short" -msgstr "Other" - -#: src/app/main/ui/dashboard/team.cljs:286, src/app/main/ui/dashboard/team.cljs:518, src/app/main/ui/dashboard/team.cljs:1076 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs msgid "labels.owner" msgstr "Owner" -#: src/app/main/ui/settings/sidebar.cljs:87 +#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.password" msgstr "Password" -#: src/app/main/ui/dashboard/team.cljs:662 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.pending-invitation" msgstr "Pending" -#: src/app/main/ui/onboarding/questions.cljs:51 -msgid "labels.previous" -msgstr "Previous" - -#: src/app/main/ui/onboarding/questions.cljs:249 -msgid "labels.product-design" -msgstr "Product or UX design" - -#: src/app/main/ui/onboarding/questions.cljs:254 -msgid "labels.product-management" -msgstr "Product Managment" - -#: src/app/main/ui/settings/profile.cljs:118, src/app/main/ui/settings/sidebar.cljs:82 +#: src/app/main/ui/settings/sidebar.cljs msgid "labels.profile" msgstr "Profile" -#: src/app/main/ui/dashboard/sidebar.cljs:784 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.projects" msgstr "Projects" -#: src/app/main/ui/dashboard/sidebar.cljs:998, src/app/main/ui/settings/sidebar.cljs:106, src/app/main/ui/workspace/main_menu.cljs:126 +#: src/app/main/ui/settings/sidebar.cljs msgid "labels.release-notes" msgstr "Release notes" #: src/app/main/ui/workspace.cljs -#, unused msgid "labels.reload-file" msgstr "Reload file" #: src/app/main/ui/workspace/libraries.cljs, src/app/main/ui/dashboard/team.cljs -#, unused msgid "labels.remove" msgstr "Remove" -#: src/app/main/ui/dashboard/team.cljs:316 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.remove-member" msgstr "Remove member" -#: src/app/main/ui/dashboard/file_menu.cljs:271, src/app/main/ui/dashboard/project_menu.cljs:85, src/app/main/ui/dashboard/sidebar.cljs:539, src/app/main/ui/workspace/sidebar/assets/groups.cljs:157 +#: src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "labels.rename" msgstr "Rename" -#: src/app/main/ui/dashboard/team_form.cljs:99 +#: src/app/main/ui/dashboard/team_form.cljs msgid "labels.rename-team" msgstr "Rename team" -#: src/app/main/ui/dashboard/team.cljs:645 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.resend-invitation" msgstr "Resend invitation" -#: src/app/main/ui/static.cljs:61, src/app/main/ui/static.cljs:70, src/app/main/ui/static.cljs:148 +#: src/app/main/ui/static.cljs, src/app/main/ui/static.cljs, src/app/main/ui/static.cljs msgid "labels.retry" msgstr "Retry" -#: src/app/main/ui/dashboard/team.cljs:469, src/app/main/ui/dashboard/team.cljs:709 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.role" msgstr "Role" -#: src/app/main/ui/dashboard/fonts.cljs:380, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:191 msgid "labels.save" msgstr "Save" -#: src/app/main/ui/onboarding/questions.cljs:414, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:436 msgid "labels.search" -msgstr "Search Engine (Google, Yahoo, Bing)" +msgstr "Search" -#: src/app/main/ui/dashboard/fonts.cljs:415 msgid "labels.search-font" msgstr "Search font" -#: src/app/main/ui/onboarding/questions.cljs:90, src/app/main/ui/onboarding/questions.cljs:248, src/app/main/ui/onboarding/questions.cljs:259, src/app/main/ui/onboarding/questions.cljs:270 -msgid "labels.select-option" -msgstr "Select option" - -#: src/app/main/ui/settings/feedback.cljs:82 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.send" msgstr "Send" -#: src/app/main/ui/settings/feedback.cljs:82 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.sending" msgstr "Sending…" -#: src/app/main/ui/static.cljs:68 +#: src/app/main/ui/static.cljs msgid "labels.service-unavailable.desc-message" msgstr "We are in programmed maintenance of our systems." -#: src/app/main/ui/static.cljs:67 +#: src/app/main/ui/static.cljs msgid "labels.service-unavailable.main-message" msgstr "Service Unavailable" -#: src/app/main/ui/dashboard/sidebar.cljs:530, src/app/main/ui/dashboard/team.cljs:88, src/app/main/ui/dashboard/team.cljs:102, src/app/main/ui/settings/options.cljs:84, src/app/main/ui/settings/sidebar.cljs:93 +#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.settings" msgstr "Settings" -#: src/app/main/ui/viewer/header.cljs:199 msgid "labels.share" msgstr "Share" -#, unused msgid "labels.share-prototype" msgstr "Share prototype" -#: src/app/main/ui/dashboard/sidebar.cljs:800 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.shared-libraries" msgstr "Libraries" -#: src/app/main/ui/viewer/comments.cljs:82, src/app/main/ui/workspace/comments.cljs:55, src/app/main/ui/workspace/comments.cljs:135 +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs msgid "labels.show-all-comments" msgstr "Show all comments" -#: src/app/main/ui/viewer/comments.cljs:115 msgid "labels.show-comments-list" msgstr "Show comments list" -#: src/app/main/ui/viewer/comments.cljs:91, src/app/main/ui/workspace/comments.cljs:61, src/app/main/ui/workspace/comments.cljs:136 +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs msgid "labels.show-your-comments" msgstr "Show only your comments" -#: src/app/main/ui/onboarding/questions.cljs:172 -msgid "labels.sketch" -msgstr "Sketch" - -#: src/app/main/ui/onboarding/questions.cljs:415 -msgid "labels.social" -msgstr "Social Media (X, Linkedin, FB, etc)" - -#: src/app/main/ui/onboarding/questions.cljs:56 -msgid "labels.start" -msgstr "Start" - -#: src/app/main/ui/dashboard/team.cljs:710 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.status" msgstr "Status" -#: src/app/main/ui/onboarding/questions.cljs:251 -msgid "labels.student-teacher" -msgstr "Student or teacher" - -#: src/app/main/ui/onboarding/questions.cljs:260 -msgid "labels.team-leader" -msgstr "Team Leader" - -#: src/app/main/ui/onboarding/questions.cljs:261 -msgid "labels.team-member" -msgstr "Team member" - -#: src/app/main/ui/dashboard/sidebar.cljs:992, src/app/main/ui/workspace/main_menu.cljs:118 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.tutorials" msgstr "Tutorials" -#: src/app/main/ui/dashboard/file_menu.cljs:256 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.unpublish-multi-files" msgstr "Unpublish %s files" -#: src/app/main/ui/settings/profile.cljs:103 +#: src/app/main/ui/settings/profile.cljs msgid "labels.update" msgstr "Update" -#: src/app/main/ui/dashboard/team_form.cljs:120 +#: src/app/main/ui/dashboard/team_form.cljs msgid "labels.update-team" msgstr "Update team" -#: src/app/main/ui/dashboard/fonts.cljs:241 msgid "labels.upload" msgstr "Upload" -#: src/app/main/ui/dashboard/fonts.cljs:169 msgid "labels.upload-custom-fonts" msgstr "Upload custom fonts" -#: src/app/main/ui/dashboard/fonts.cljs:240 msgid "labels.uploading" msgstr "Uploading…" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs:223 msgid "labels.view-only" msgstr "View only" -#: src/app/main/ui/dashboard/team.cljs:123, src/app/main/ui/dashboard/team.cljs:282, src/app/main/ui/dashboard/team.cljs:521 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.viewer" msgstr "Viewer" -#: src/app/main/ui/dashboard/sidebar.cljs:523, src/app/main/ui/dashboard/team.cljs:90, src/app/main/ui/dashboard/team.cljs:100, src/app/main/ui/dashboard/team.cljs:880 msgid "labels.webhooks" msgstr "Webhooks" -#: src/app/main/ui/comments.cljs:194 +#: src/app/main/ui/comments.cljs msgid "labels.write-new-comment" msgstr "Write new comment" -#: src/app/main/ui/dashboard/team.cljs:237 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.you" msgstr "(you)" -#: src/app/main/ui/dashboard/sidebar.cljs:968 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.your-account" msgstr "Your account" -#: src/app/main/ui/onboarding/questions.cljs:412 -msgid "labels.youtube" -msgstr "YouTube" - -#: src/app/main/ui/workspace/colorpicker.cljs:297, src/app/main/ui/workspace/colorpicker.cljs:298, src/app/main/ui/workspace/colorpicker.cljs:300 msgid "media.choose-image" msgstr "Choose image" -#, unused msgid "media.gradient" msgstr "Gradient" -#: src/app/main/data/workspace/media.cljs:275, src/app/main/ui/components/color_bullet.cljs:32, src/app/main/ui/components/color_bullet.cljs:45, src/app/main/ui/viewer/inspect/attributes/common.cljs:66, src/app/main/ui/workspace/colorpicker.cljs:211, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:237 msgid "media.image" msgstr "Image" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:77 msgid "media.image.short" msgstr "img" -#: src/app/main/ui/workspace/colorpicker.cljs:290 msgid "media.keep-aspect-ratio" msgstr "Keep aspect ratio" -#: src/app/main/ui/workspace/colorpicker.cljs:208 msgid "media.linear" msgstr "Linear" -#: src/app/main/data/media.cljs:49, src/app/main/data/workspace/media.cljs:223, src/app/main/data/workspace/media.cljs:453 +#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs msgid "media.loading" msgstr "Loading image…" -#: src/app/main/ui/workspace/colorpicker.cljs:209 msgid "media.radial" msgstr "Radial" -#: src/app/main/ui/workspace/colorpicker.cljs:206 msgid "media.solid" msgstr "Solid" -#: src/app/main/data/common.cljs:111 msgid "modals.add-shared-confirm-empty.hint" msgstr "" "Your library is empty. Once added as Shared Library, the assets you create " "will be available to be used among the rest of your files. Are you sure you " "want to publish it?" -#: src/app/main/data/common.cljs:113 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.add-shared-confirm.accept" msgstr "Add as Shared Library" -#: src/app/main/data/common.cljs:111 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.add-shared-confirm.hint" msgstr "" "Once added as Shared Library, the assets of this file library will be " "available to be used among the rest of your files." -#: src/app/main/data/common.cljs:110 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.add-shared-confirm.message" msgstr "Add “%s” as Shared Library" -#: src/app/main/ui/workspace/nudge.cljs:60 +#: src/app/main/ui/workspace/nudge.cljs msgid "modals.big-nudge" msgstr "Big nudge" -#: src/app/main/ui/settings/change_email.cljs:127 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.confirm-email" msgstr "Verify new email" -#: src/app/main/ui/settings/change_email.cljs:114 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.info" msgstr "We'll send you an email to your current email “%s” to verify your identity." -#: src/app/main/ui/settings/change_email.cljs:119 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.new-email" msgstr "New email" -#: src/app/main/ui/settings/change_email.cljs:136 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.submit" msgstr "Change email" -#: src/app/main/ui/settings/change_email.cljs:107 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.title" msgstr "Change your email" -#: src/app/main/ui/settings/access_tokens.cljs:165, src/app/main/ui/settings/access_tokens.cljs:171 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.create-access-token.copy-token" msgstr "Copy token" -#: src/app/main/ui/settings/access_tokens.cljs:142 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.create-access-token.expiration-date.label" msgstr "Expiration date" -#: src/app/main/ui/settings/access_tokens.cljs:136 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.create-access-token.name.label" msgstr "Name" -#: src/app/main/ui/settings/access_tokens.cljs:138 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.create-access-token.name.placeholder" msgstr "The name can help to know what's the token for" -#: src/app/main/ui/settings/access_tokens.cljs:191 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.create-access-token.submit-label" msgstr "Create token" -#: src/app/main/ui/settings/access_tokens.cljs:123 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.create-access-token.title" msgstr "Generate access token" -#: src/app/main/ui/settings/access_tokens.cljs:163 -#, fuzzy -msgid "modals.create-access-token.token" -msgstr "" - -#: src/app/main/ui/dashboard/team.cljs:873 msgid "modals.create-webhook.submit-label" msgstr "Create webhook" -#: src/app/main/ui/dashboard/team.cljs:838 msgid "modals.create-webhook.title" msgstr "Create webhook" -#: src/app/main/ui/dashboard/team.cljs:849 msgid "modals.create-webhook.url.label" msgstr "Payload URL" -#: src/app/main/ui/dashboard/team.cljs:850 msgid "modals.create-webhook.url.placeholder" msgstr "https://example.com/postreceive" -#: src/app/main/ui/settings/access_tokens.cljs:271 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.delete-acces-token.accept" msgstr "Delete token" -#: src/app/main/ui/settings/access_tokens.cljs:270 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.delete-acces-token.message" msgstr "Are you sure you want to delete this token?" -#: src/app/main/ui/settings/access_tokens.cljs:269 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.delete-acces-token.title" msgstr "Delete token" -#: src/app/main/ui/settings/delete_account.cljs:59 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.cancel" msgstr "Cancel and keep my account" -#: src/app/main/ui/settings/delete_account.cljs:64 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.confirm" msgstr "Yes, delete my account" -#: src/app/main/ui/settings/delete_account.cljs:53 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.info" msgstr "By removing your account you’ll lose all your current projects and archives." -#: src/app/main/ui/settings/delete_account.cljs:46 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.title" msgstr "Are you sure you want to delete your account?" -#: src/app/main/ui/comments.cljs:298 +#: src/app/main/ui/comments.cljs msgid "modals.delete-comment-thread.accept" msgstr "Delete conversation" -#: src/app/main/ui/comments.cljs:297 +#: src/app/main/ui/comments.cljs msgid "modals.delete-comment-thread.message" msgstr "" "Are you sure you want to delete this conversation? All comments in this " "thread will be deleted." -#: src/app/main/ui/comments.cljs:296 +#: src/app/main/ui/comments.cljs msgid "modals.delete-comment-thread.title" msgstr "Delete conversation" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:140 msgid "modals.delete-component-annotation.message" msgstr "Are you sure you want to delete this annotation?" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:139 msgid "modals.delete-component-annotation.title" msgstr "Delete annotation" -#: src/app/main/ui/dashboard/file_menu.cljs:123 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-confirm.accept" msgstr "Delete file" -#: src/app/main/ui/dashboard/file_menu.cljs:122 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-confirm.message" msgstr "Are you sure you want to delete this file?" -#: src/app/main/ui/dashboard/file_menu.cljs:121 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-confirm.title" msgstr "Deleting file" -#: src/app/main/ui/dashboard/file_menu.cljs:117 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-multi-confirm.accept" msgstr "Delete files" -#: src/app/main/ui/dashboard/file_menu.cljs:116 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-multi-confirm.message" msgstr "Are you sure you want to delete %s files?" -#: src/app/main/ui/dashboard/file_menu.cljs:115 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-multi-confirm.title" msgstr "Deleting %s files" -#: src/app/main/ui/dashboard/fonts.cljs:345 msgid "modals.delete-font-variant.message" msgstr "" "Are you sure you want to delete this font style? It will not load if is " "used in a file." -#: src/app/main/ui/dashboard/fonts.cljs:344 msgid "modals.delete-font-variant.title" msgstr "Deleting font style" -#: src/app/main/ui/dashboard/fonts.cljs:331 msgid "modals.delete-font.message" msgstr "" "Are you sure you want to delete this font? It will not load if is used in a " "file." -#: src/app/main/ui/dashboard/fonts.cljs:330 msgid "modals.delete-font.title" msgstr "Deleting font" -#: src/app/main/ui/workspace/context_menu.cljs:522, src/app/main/ui/workspace/sidebar/sitemap.cljs:45 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs msgid "modals.delete-page.body" msgstr "Are you sure you want to delete this page?" -#: src/app/main/ui/workspace/context_menu.cljs:521, src/app/main/ui/workspace/sidebar/sitemap.cljs:44 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs msgid "modals.delete-page.title" msgstr "Delete page" -#: src/app/main/ui/dashboard/project_menu.cljs:69 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "modals.delete-project-confirm.accept" msgstr "Delete project" -#: src/app/main/ui/dashboard/project_menu.cljs:68 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "modals.delete-project-confirm.message" msgstr "Are you sure you want to delete this project?" -#: src/app/main/ui/dashboard/project_menu.cljs:67 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "modals.delete-project-confirm.title" msgstr "Delete project" -#: src/app/main/ui/delete_shared.cljs:51 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.accept" msgid_plural "modals.delete-shared-confirm.accept" msgstr[0] "Delete file" msgstr[1] "Delete files" -#: src/app/main/ui/delete_shared.cljs:55 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.activated.no-files-message" msgid_plural "modals.delete-shared-confirm.activated.no-files-message" msgstr[0] "It isn't activated in any file." msgstr[1] "They aren't activated in any file." -#: src/app/main/ui/delete_shared.cljs:57 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.activated.scd-message" msgid_plural "modals.delete-shared-confirm.activated.scd-message" msgstr[0] "This library is activated here: " msgstr[1] "This libraries are activated here: " -#: src/app/main/ui/delete_shared.cljs:46 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.message" msgid_plural "modals.delete-shared-confirm.message" msgstr[0] "Are you sure you want to delete this file?" msgstr[1] "Are you sure you want to delete these files?" -#: src/app/main/ui/delete_shared.cljs:41 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.title" msgid_plural "modals.delete-shared-confirm.title" msgstr[0] "Deleting file" msgstr[1] "Deleting files" -#: src/app/main/ui/dashboard/sidebar.cljs:435 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.delete-team-confirm.accept" msgstr "Delete team" -#: src/app/main/ui/dashboard/sidebar.cljs:434 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.delete-team-confirm.message" msgstr "" "Are you sure you want to delete this team? All projects and files " "associated with team will be permanently deleted." -#: src/app/main/ui/dashboard/sidebar.cljs:433 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.delete-team-confirm.title" msgstr "Deleting team" -#: src/app/main/ui/dashboard/team.cljs:427 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.delete-team-member-confirm.accept" msgstr "Delete member" -#: src/app/main/ui/dashboard/team.cljs:426 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.delete-team-member-confirm.message" msgstr "Are you sure you want to delete this member from the team?" -#: src/app/main/ui/dashboard/team.cljs:425 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.delete-team-member-confirm.title" msgstr "Delete team member" -#: src/app/main/ui/delete_shared.cljs:59 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-unpublish-shared-confirm.activated.hint" msgid_plural "modals.delete-unpublish-shared-confirm.activated.hint" msgstr[0] "" @@ -2334,3643 +2020,3297 @@ msgstr[1] "" "Assets that have already been used in those files will remain there (no " "design will be broken)." -#: src/app/main/ui/dashboard/team.cljs:942 msgid "modals.delete-webhook.accept" msgstr "Delete webhook" -#: src/app/main/ui/dashboard/team.cljs:941 msgid "modals.delete-webhook.message" msgstr "Are you sure you want to delete this webhook?" -#: src/app/main/ui/dashboard/team.cljs:940 msgid "modals.delete-webhook.title" msgstr "Deleting webhook" -#: src/app/main/ui/dashboard/team.cljs:872 msgid "modals.edit-webhook.submit-label" msgstr "Edit webhook" -#: src/app/main/ui/dashboard/team.cljs:837 msgid "modals.edit-webhook.title" msgstr "Edit webhook" -#: src/app/main/ui/dashboard/team.cljs:218 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.invite-member-confirm.accept" msgstr "Send invitation" -#: src/app/main/ui/dashboard/team.cljs:213, src/app/main/ui/onboarding/team_choice.cljs:156 msgid "modals.invite-member.emails" msgstr "Emails, comma separated" -#: src/app/main/ui/dashboard/team.cljs:197 msgid "modals.invite-member.repeated-invitation" msgstr "" "Some emails are from current team members. Their invitations will not be " "sent." -#: src/app/main/ui/dashboard/team.cljs:190 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.invite-team-member.title" msgstr "Invite members to the team" -#: src/app/main/ui/dashboard/sidebar.cljs:423, src/app/main/ui/dashboard/team.cljs:393 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-close-confirm.hint" msgstr "" "As you're the only member of this team, the team will be deleted along with " "its projects and files." -#: src/app/main/ui/dashboard/sidebar.cljs:422, src/app/main/ui/dashboard/team.cljs:392 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-close-confirm.message" msgstr "Are you sure you want to leave the %s team?" -#: src/app/main/ui/dashboard/change_owner.cljs:59 msgid "modals.leave-and-reassign.forbidden" msgstr "" "You can not leave the team if there is no other member to promote to owner. " "You might want to delete the team." -#: src/app/main/ui/dashboard/change_owner.cljs:55 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-reassign.hint1" msgstr "" "You are the owner of this team. Please select another member to promote to " "owner before you leave." -#: src/app/main/ui/dashboard/change_owner.cljs:78 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-reassign.promote-and-leave" msgstr "Promote and leave" -#: src/app/main/ui/dashboard/change_owner.cljs:34 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-reassign.select-member-to-promote" msgstr "Select a member to promote" -#: src/app/main/ui/dashboard/change_owner.cljs:49 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-reassign.title" msgstr "Before you leave" -#: src/app/main/ui/dashboard/sidebar.cljs:402, src/app/main/ui/dashboard/sidebar.cljs:424, src/app/main/ui/dashboard/team.cljs:394, src/app/main/ui/dashboard/team.cljs:416 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-confirm.accept" msgstr "Leave team" -#: src/app/main/ui/dashboard/sidebar.cljs:401, src/app/main/ui/dashboard/team.cljs:415 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-confirm.message" msgstr "Are you sure you want to leave this team?" -#: src/app/main/ui/dashboard/sidebar.cljs:400, src/app/main/ui/dashboard/sidebar.cljs:421, src/app/main/ui/dashboard/team.cljs:391, src/app/main/ui/dashboard/team.cljs:414 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-confirm.title" msgstr "Leaving team" -#: src/app/main/ui/delete_shared.cljs:53 msgid "modals.move-shared-confirm.accept" msgid_plural "modals.move-shared-confirm.accept" msgstr[0] "Move" msgstr[1] "Move" -#: src/app/main/ui/delete_shared.cljs:48 msgid "modals.move-shared-confirm.message" msgid_plural "modals.move-shared-confirm.message" msgstr[0] "Are you sure you want to move this library?" msgstr[1] "Are you sure you want to move these libraries?" -#: src/app/main/ui/delete_shared.cljs:43 msgid "modals.move-shared-confirm.title" msgid_plural "modals.move-shared-confirm.title" msgstr[0] "Move library" msgstr[1] "Move libraries" -#: src/app/main/ui/workspace/main_menu.cljs:266, src/app/main/ui/workspace/nudge.cljs:47 +#: src/app/main/ui/workspace/nudge.cljs msgid "modals.nudge-title" msgstr "Nudge amount" -#: src/app/main/ui/dashboard/team.cljs:340 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.accept" msgstr "Transfer ownership" -#: src/app/main/ui/dashboard/team.cljs:339 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.hint" msgstr "" "If you transfer the ownership, you will change your role to Admin, losing " "some permissions over this team. " -#: src/app/main/ui/dashboard/team.cljs:338 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.message" msgstr "" "You are the current owner of this team. Are you sure you want to make %s " "the new owner of the team?" -#: src/app/main/ui/dashboard/team.cljs:337 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.title" msgstr "New team owner" -#: src/app/main/ui/workspace/libraries.cljs:188 msgid "modals.publish-empty-library.accept" msgstr "Publish" -#: src/app/main/ui/workspace/libraries.cljs:187 msgid "modals.publish-empty-library.message" msgstr "Your library is empty. Are you sure you want to publish it?" -#: src/app/main/ui/workspace/libraries.cljs:186 msgid "modals.publish-empty-library.title" msgstr "Publish empty library" #: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused msgid "modals.remove-shared-confirm.accept" msgstr "Remove as Shared Library" #: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused msgid "modals.remove-shared-confirm.hint" msgstr "" "Once removed as Shared Library, the File Library of this file will stop " "being available to be used among the rest of your files." #: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused msgid "modals.remove-shared-confirm.message" msgstr "Remove “%s” as Shared Library" -#: src/app/main/ui/workspace/nudge.cljs:53 +#: src/app/main/ui/workspace/nudge.cljs msgid "modals.small-nudge" msgstr "Small nudge" -#: src/app/main/ui/delete_shared.cljs:52 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.unpublish-shared-confirm.accept" msgid_plural "modals.unpublish-shared-confirm.accept" msgstr[0] "Unpublish" msgstr[1] "Unpublish" -#: src/app/main/ui/delete_shared.cljs:47 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.unpublish-shared-confirm.message" msgid_plural "modals.unpublish-shared-confirm.message" msgstr[0] "Are you sure you want to unpublish this library?" msgstr[1] "Are you sure you want to unpublish these libraries?" -#: src/app/main/ui/delete_shared.cljs:42 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.unpublish-shared-confirm.title" msgid_plural "modals.unpublish-shared-confirm.title" msgstr[0] "Unpublish library" msgstr[1] "Unpublish libraries" #: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs -#, unused msgid "modals.update-remote-component-in-bulk.hint" msgstr "" "You are about to update components in a shared library. This may affect " "other files that use it." #: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs -#, unused msgid "modals.update-remote-component-in-bulk.message" msgstr "Update components in a shared library" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:380 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.accept" msgstr "Update" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:379 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.cancel" msgstr "Cancel" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:378 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.hint" msgstr "" "You are about to update a component in a shared library. This may affect " "other files that use it." -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:377 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.message" msgstr "Update a component in a shared library" -#: src/app/main/data/common.cljs:71 +#: src/app/main/data/common.cljs msgid "notifications.by-code.upgrade-version" msgstr "A new version is available, please refresh the page" -#: src/app/main/ui/dashboard/team.cljs:154, src/app/main/ui/dashboard/team.cljs:595 +#: src/app/main/ui/dashboard/team.cljs msgid "notifications.invitation-email-sent" msgstr "Invitation sent successfully" -#: src/app/main/ui/dashboard/team.cljs:616 +#: src/app/main/ui/dashboard/team.cljs msgid "notifications.invitation-link-copied" msgstr "Invitation link copied" -#: src/app/main/ui/settings/delete_account.cljs:24 +#: src/app/main/ui/settings/delete_account.cljs msgid "notifications.profile-deletion-not-allowed" msgstr "You can't delete your profile. Reassign your teams before proceed." -#: src/app/main/ui/settings/options.cljs:29, src/app/main/ui/settings/profile.cljs:35 +#: src/app/main/ui/settings/profile.cljs, src/app/main/ui/settings/options.cljs msgid "notifications.profile-saved" msgstr "Profile saved successfully!" -#: src/app/main/ui/settings/change_email.cljs:63 +#: src/app/main/ui/settings/change_email.cljs msgid "notifications.validation-email-sent" msgstr "Verification email sent to %s. Check your email!" -#, unused msgid "onboarding-v2.before-start.desc1" msgstr "" "You should know that there are lots of resources available to help you get " "started with Penpot, like the User Guide and our Youtube channel." -#, unused msgid "onboarding-v2.before-start.desc2" msgstr "" "Detailed info about how to use Penpot. From prototyping to organizing or " "sharing designs." -#, unused msgid "onboarding-v2.before-start.desc2.title" msgstr "User guide" -#, unused msgid "onboarding-v2.before-start.desc3" msgstr "You can watch our tutorials and the tutorials made by our community." -#, unused msgid "onboarding-v2.before-start.desc3.title" msgstr "Video tutorials" -#, unused msgid "onboarding-v2.before-start.title" msgstr "Before you start" -#: src/app/main/ui/onboarding/newsletter.cljs:63 msgid "onboarding-v2.newsletter.desc" msgstr "" "Subscribe to the Penpot newsletter to stay up to date with the product " "development progress and news." -#: src/app/main/ui/onboarding/newsletter.cljs:83 msgid "onboarding-v2.newsletter.news" msgstr "Send me news about Penpot (blog posts, video tutorials, streamings...)." -#: src/app/main/ui/onboarding/newsletter.cljs:91 msgid "onboarding-v2.newsletter.privacy1" msgstr "We care about privacy, here you can read our " -#: src/app/main/ui/onboarding/newsletter.cljs:97 msgid "onboarding-v2.newsletter.privacy2" msgstr "" "We will only send relevant emails to you. You can unsubscribe at any time " "via the unsubscribe link in any of our newsletters." -#: src/app/main/ui/onboarding/newsletter.cljs:71 msgid "onboarding-v2.newsletter.updates" msgstr "Send me product updates (new features, releases, fixes...)." -#, unused msgid "onboarding-v2.welcome.desc1" msgstr "" "Penpot is Open Source and it is made by Kaleidos as well as the community, " "where lots of people already help each other out. Everyone can collaborate " "by:" -#, unused msgid "onboarding-v2.welcome.desc2" msgstr "" "A public space to learn, share and discuss about Penpot, its present and " "future with the entire Community and the Penpot core team." -#, unused msgid "onboarding-v2.welcome.desc2.title" msgstr "Participating in the Community" -#, unused msgid "onboarding-v2.welcome.desc3" msgstr "" "Where you’ll find how to collaborate with translations, feature requests, " "core contributions, bug hunting…" -#, unused msgid "onboarding-v2.welcome.desc3.title" msgstr "Contributing guide" -#: src/app/main/ui/onboarding/team_choice.cljs:31 msgid "onboarding-v2.welcome.title" msgstr "Welcome to Penpot!" -#: src/app/main/ui/onboarding/team_choice.cljs:229 msgid "onboarding.choice.team-up.continue-creating-team" msgstr "Continue creating team" -#: src/app/main/ui/onboarding/team_choice.cljs:239 msgid "onboarding.choice.team-up.continue-without-a-team" msgstr "Continue without team" -#: src/app/main/ui/onboarding/team_choice.cljs:167 msgid "onboarding.choice.team-up.create-team-and-invite" msgstr "Create team & invite" -#, unused msgid "onboarding.choice.team-up.create-team-and-send-invites" msgstr "Create team and send invites" -#: src/app/main/ui/onboarding/team_choice.cljs:170 msgid "onboarding.choice.team-up.create-team-and-send-invites-description" msgstr "You'll be able to invite later" -#: src/app/main/ui/onboarding/team_choice.cljs:215 msgid "onboarding.choice.team-up.create-team-desc" msgstr "After naming your team, you will be able to invite people to join." -#: src/app/main/ui/onboarding/team_choice.cljs:224 msgid "onboarding.choice.team-up.create-team-placeholder" msgstr "Enter the name of the team" -#: src/app/main/ui/onboarding/team_choice.cljs:168 msgid "onboarding.choice.team-up.create-team-without-invite" msgstr "Create team" -#, unused msgid "onboarding.choice.team-up.create-team-without-inviting" msgstr "Create team without inviting" -#: src/app/main/ui/dashboard/projects.cljs:89, src/app/main/ui/onboarding/team_choice.cljs:140 msgid "onboarding.choice.team-up.invite-members" msgstr "Invite members" -#: src/app/main/ui/onboarding/team_choice.cljs:141 msgid "onboarding.choice.team-up.invite-members-info" msgstr "" "Remember to include everyone. Developers, designers, managers... diversity " "adds up :)" -#: src/app/main/ui/dashboard/team.cljs:202, src/app/main/ui/onboarding/team_choice.cljs:146 msgid "onboarding.choice.team-up.roles" msgstr "Invite with the role:" -#: src/app/main/ui/onboarding/team_choice.cljs:232 msgid "onboarding.choice.team-up.start-without-a-team" msgstr "Start without a team" -#: src/app/main/ui/onboarding/team_choice.cljs:234 msgid "onboarding.choice.team-up.start-without-a-team-description" msgstr "You will be able to create a team later." -#, unused msgid "onboarding.newsletter.accept" msgstr "Yes, subscribe" -#: src/app/main/ui/onboarding/newsletter.cljs:40 msgid "onboarding.newsletter.acceptance-message" msgstr "" "Your subscription request has been sent, we will send you an email to " "confirm it." -#: src/app/main/ui/onboarding/newsletter.cljs:95 msgid "onboarding.newsletter.policy" msgstr "Privacy Policy." -#: src/app/main/ui/onboarding/newsletter.cljs:60 msgid "onboarding.newsletter.title" msgstr "Want to receive Penpot news?" -#: src/app/main/ui/onboarding/questions.cljs:118 -msgid "onboarding.questions.lets-get-started" -msgstr "Let's get started!" - -#: src/app/main/ui/onboarding/questions.cljs:99 -msgid "onboarding.questions.reasons.alternative" -msgstr "Looking for an alternative to Figma, XD, etc" - -#: src/app/main/ui/onboarding/questions.cljs:93 -msgid "onboarding.questions.reasons.exploring" -msgstr "Just exploring" - -#: src/app/main/ui/onboarding/questions.cljs:96 -msgid "onboarding.questions.reasons.fit" -msgstr "Reviewing whether Penpot is a good fit for my team" - -#: src/app/main/ui/onboarding/questions.cljs:102 -msgid "onboarding.questions.reasons.testing" -msgstr "Testing before self-hosting" - -#: src/app/main/ui/onboarding/questions.cljs:355 -msgid "onboarding.questions.start-with.code" -msgstr "Generating real code from designs" - -#: src/app/main/ui/onboarding/questions.cljs:353 -msgid "onboarding.questions.start-with.ds" -msgstr "Creating Design Systems" - -#: src/app/main/ui/onboarding/questions.cljs:351 -msgid "onboarding.questions.start-with.prototyping" -msgstr "Prototyping" - -#: src/app/main/ui/onboarding/questions.cljs:347 -msgid "onboarding.questions.start-with.ui" -msgstr "Design the UI/UX of an app" - -#: src/app/main/ui/onboarding/questions.cljs:349 -msgid "onboarding.questions.start-with.wireframing" -msgstr "Wireframing" - -#: src/app/main/ui/onboarding/questions.cljs:126 -msgid "onboarding.questions.step1.question1" -msgstr "What will you be using Penpot for?" - -#: src/app/main/ui/onboarding/questions.cljs:133 -msgid "onboarding.questions.step1.question2" -msgstr "What brings you to Penpot today?" - -#: src/app/main/ui/onboarding/questions.cljs:122 -msgid "onboarding.questions.step1.subtitle" -msgstr "" -"Let us know a bit about you to help us make Penpot work for you. Your " -"answers will help us prioritize new features and point you in the right " -"direction to get started." - -#: src/app/main/ui/onboarding/questions.cljs:120 -msgid "onboarding.questions.step1.title" -msgstr "Help us get to know you" - -#: src/app/main/ui/onboarding/questions.cljs:201 -msgid "onboarding.questions.step2.title" -msgstr "Which one of these tools do you use the most?" - -#: src/app/main/ui/onboarding/questions.cljs:294 -msgid "onboarding.questions.step3.question1" -msgstr "What kind of work do you do?" - -#: src/app/main/ui/onboarding/questions.cljs:307 -msgid "onboarding.questions.step3.question2" -msgstr "What's your role?" - -#: src/app/main/ui/onboarding/questions.cljs:320 -msgid "onboarding.questions.step3.question3" -msgstr "What's the size of your company?" - -#: src/app/main/ui/onboarding/questions.cljs:292 -msgid "onboarding.questions.step3.title" -msgstr "Tell us about your job" - -#: src/app/main/ui/onboarding/questions.cljs:376 -msgid "onboarding.questions.step4.title" -msgstr "Where would you like to get started?" - -#: src/app/main/ui/onboarding/questions.cljs:437 -msgid "onboarding.questions.step5.title" -msgstr "How did you hear about Penpot?" - -#: src/app/main/ui/onboarding/questions.cljs:273 -msgid "onboarding.questions.team-size.11-30" -msgstr "11-30" - -#: src/app/main/ui/onboarding/questions.cljs:274 -msgid "onboarding.questions.team-size.2-10" -msgstr "2-10" - -#: src/app/main/ui/onboarding/questions.cljs:272 -msgid "onboarding.questions.team-size.31-50" -msgstr "31-50" - -#: src/app/main/ui/onboarding/questions.cljs:275 -msgid "onboarding.questions.team-size.freelancer" -msgstr "I'm a freelancer" - -#: src/app/main/ui/onboarding/questions.cljs:271 -msgid "onboarding.questions.team-size.more-than-50" -msgstr "More than 50" - -#: src/app/main/ui/onboarding/questions.cljs:276 -msgid "onboarding.questions.team-size.personal-project" -msgstr "I’m working in a personal project" - -#: src/app/main/ui/onboarding/questions.cljs:85 -msgid "onboarding.questions.use.education" -msgstr "Education" - -#: src/app/main/ui/onboarding/questions.cljs:86 -msgid "onboarding.questions.use.personal" -msgstr "Personal" - -#: src/app/main/ui/onboarding/questions.cljs:84 -msgid "onboarding.questions.use.work" -msgstr "Work" - -#: src/app/main/ui/onboarding/team_choice.cljs:213 msgid "onboarding.team-modal.create-team" msgstr "Create a team" -#: src/app/main/ui/onboarding/team_choice.cljs:35 msgid "onboarding.team-modal.create-team-desc" msgstr "" "A team allows you to collaborate with other Penpot users working in the " "same files and projects." -#: src/app/main/ui/onboarding/team_choice.cljs:40 msgid "onboarding.team-modal.create-team-feature-1" msgstr "Unlimited files and projects" -#: src/app/main/ui/onboarding/team_choice.cljs:44 msgid "onboarding.team-modal.create-team-feature-2" msgstr "Multiplayer edition" -#: src/app/main/ui/onboarding/team_choice.cljs:48 msgid "onboarding.team-modal.create-team-feature-3" msgstr "Roles management" -#: src/app/main/ui/onboarding/team_choice.cljs:52 msgid "onboarding.team-modal.create-team-feature-4" msgstr "Unlimited members" -#: src/app/main/ui/onboarding/team_choice.cljs:56 msgid "onboarding.team-modal.create-team-feature-5" msgstr "100% free!" -#: src/app/main/ui/onboarding/team_choice.cljs:33 msgid "onboarding.team-modal.team-definition" msgstr "What's a team?" -#: src/app/main/ui/onboarding/templates.cljs:78 msgid "onboarding.templates.subtitle" msgstr "Here are some templates." -#: src/app/main/ui/onboarding/templates.cljs:77 msgid "onboarding.templates.title" msgstr "Start designing" -#, unused msgid "onboarding.welcome.alt" msgstr "Penpot" -#: src/app/main/ui/auth/recovery.cljs:99 +#: src/app/main/ui/auth/recovery.cljs msgid "profile.recovery.go-to-login" msgstr "Go to login" -#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:221 +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.step1.title" +msgstr "Help us get to know you" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.step1.subtitle" +msgstr "Let us know a bit about you to help us make Penpot work for you. Your answers will help us prioritize new features and point you in the right direction to get started." + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.step1.question1" +msgstr "What will you be using Penpot for?" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.use.work" +msgstr "Work" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.use.education" +msgstr "Education" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.use.personal" +msgstr "Personal" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.step1.question2" +msgstr "What brings you to Penpot today?" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.reasons.exploring" +msgstr "Just exploring" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.reasons.fit" +msgstr "Reviewing whether Penpot is a good fit for my team" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.reasons.alternative" +msgstr "Looking for an alternative to Figma, XD, etc" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.reasons.testing" +msgstr "Testing before self-hosting" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.step2.title" +msgstr "Which one of these tools do you use the most?" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.adobe-xd" +msgstr "Adobe XD" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.canva" +msgstr "Canva" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.figma" +msgstr "Figma" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.invision" +msgstr "InVision" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.sketch" +msgstr "Sketch" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.step3.title" +msgstr "Tell us about your job" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.step3.question1" +msgstr "What kind of work do you do?" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.product-design" +msgstr "Product or UX design" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.developer" +msgstr "Development" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.graphic-design" +msgstr "Graphic design" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.marketing" +msgstr "Marketing" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.product-management" +msgstr "Product Managment" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.step3.question2" +msgstr "What's your role?" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.team-leader" +msgstr "Team Leader" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.team-member" +msgstr "Team member" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.freelancer" +msgstr "Freelancer" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.founder" +msgstr "CEO or Founder" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.director" +msgstr "Director" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.step3.question3" +msgstr "What's the size of your company?" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.team-size.more-than-50" +msgstr "More than 50" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.team-size.31-50" +msgstr "31-50" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.team-size.11-30" +msgstr "11-30" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.team-size.2-10" +msgstr "2-10" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.team-size.freelancer" +msgstr "I'm a freelancer" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.team-size.personal-project" +msgstr "I’m working in a personal project" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.step4.title" +msgstr "Where would you like to get started?" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.start-with.ui" +msgstr "Design the UI/UX of an app" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.start-with.wireframing" +msgstr "Wireframing" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.start-with.prototyping" +msgstr "Prototyping" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.start-with.ds" +msgstr "Creating Design Systems" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.start-with.code" +msgstr "Generating real code from designs" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.step5.title" +msgstr "How did you hear about Penpot?" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.youtube" +msgstr "YouTube" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.event" +msgstr "Event" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.search" +msgstr "Search Engine (Google, Yahoo, Bing)" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.social" +msgstr "Social Media (X, Linkedin, FB, etc)" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.article" +msgstr "Article (Blog, Post, Newsletter)" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.lets-get-started" +msgstr "Let's get started!" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.next" +msgstr "Next" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.other" +msgstr "Other (specify)" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.other-short" +msgstr "Other" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.previous" +msgstr "Previous" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.select-option" +msgstr "Select option" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.start" +msgstr "Start" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.student-teacher" +msgstr "Student or teacher" + +#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, msgid "settings.detach" msgstr "Detach" -#: src/app/main/ui/viewer/inspect/exports.cljs:147, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:631, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:137, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:148, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:188, src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:158, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:399, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:410, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:430, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:441, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:458, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:472, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:309, src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:183, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:373, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:389, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:245, src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:172 +#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs, src/app/main/ui/workspace/sidebar/options/menus/layer.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs, src/app/main/ui/workspace/sidebar/options/menus/blur.cljs msgid "settings.multiple" msgstr "Mixed" -#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:271 +#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs msgid "settings.select-this-color" msgstr "Select items using this style" + # SECTIONS -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:414 msgid "shortcut-section.basics" msgstr "Basics" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:420 msgid "shortcut-section.dashboard" msgstr "Dashboard" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:423 msgid "shortcut-section.viewer" msgstr "Viewer" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:417 msgid "shortcut-section.workspace" msgstr "Workspace" # SUBSECTIONS -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:56 msgid "shortcut-subsection.alignment" msgstr "Alignment" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:57 msgid "shortcut-subsection.edit" msgstr "Edit" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:58 msgid "shortcut-subsection.general-dashboard" msgstr "Generic" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:59 msgid "shortcut-subsection.general-viewer" msgstr "Generic" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:60 msgid "shortcut-subsection.main-menu" msgstr "Main menu" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:61 msgid "shortcut-subsection.modify-layers" msgstr "Modify layers" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:62 msgid "shortcut-subsection.navigation-dashboard" msgstr "Navigation" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:63 msgid "shortcut-subsection.navigation-viewer" msgstr "Navigation" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:64 msgid "shortcut-subsection.navigation-workspace" msgstr "Navigation" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:65 msgid "shortcut-subsection.panels" msgstr "Panels" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:66 msgid "shortcut-subsection.path-editor" msgstr "Paths" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:67 msgid "shortcut-subsection.shape" msgstr "Shapes" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:68 msgid "shortcut-subsection.text-editor" msgstr "Texts" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:69 msgid "shortcut-subsection.tools" msgstr "Tools" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:70 msgid "shortcut-subsection.zoom-viewer" msgstr "Zoom" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:71 msgid "shortcut-subsection.zoom-workspace" msgstr "Zoom" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:72 msgid "shortcuts.add-comment" msgstr "Comments" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:73 msgid "shortcuts.add-node" msgstr "Add node" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:74 msgid "shortcuts.align-bottom" msgstr "Align bottom" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:75 msgid "shortcuts.align-center" msgstr "Align center" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:76 msgid "shortcuts.align-hcenter" msgstr "Align center horizontally" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:77 msgid "shortcuts.align-justify" msgstr "Align justify" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:78 msgid "shortcuts.align-left" msgstr "Align left" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:79 msgid "shortcuts.align-right" msgstr "Align right" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:80 msgid "shortcuts.align-top" msgstr "Align top" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:81 msgid "shortcuts.align-vcenter" msgstr "Align center vertically" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:82 msgid "shortcuts.artboard-selection" msgstr "Create board from selection" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:83 msgid "shortcuts.bold" msgstr "Toggle bold" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:84 msgid "shortcuts.bool-difference" msgstr "Boolean difference" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:85 msgid "shortcuts.bool-exclude" msgstr "Boolean exclude" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:86 msgid "shortcuts.bool-intersection" msgstr "Boolean intersection" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:87 msgid "shortcuts.bool-union" msgstr "Boolean union" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:88 msgid "shortcuts.bring-back" msgstr "Send to the back" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:89 msgid "shortcuts.bring-backward" msgstr "Send backward" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:90 msgid "shortcuts.bring-forward" msgstr "Bring forward" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:91 msgid "shortcuts.bring-front" msgstr "Bring to the front" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:92 msgid "shortcuts.clear-undo" msgstr "Clear undo" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:93 msgid "shortcuts.copy" msgstr "Copy" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:94 msgid "shortcuts.create-component" msgstr "Create component" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:95 msgid "shortcuts.create-new-project" msgstr "Create new" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:96 msgid "shortcuts.cut" msgstr "Cut" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:97 msgid "shortcuts.decrease-zoom" msgstr "Zoom out" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:98 msgid "shortcuts.delete" msgstr "Delete" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:99 msgid "shortcuts.delete-node" msgstr "Delete node" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:100 msgid "shortcuts.detach-component" msgstr "Detach component" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:101 msgid "shortcuts.draw-curve" msgstr "Curve" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:102 msgid "shortcuts.draw-ellipse" msgstr "Ellipse" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:103 msgid "shortcuts.draw-frame" msgstr "Board" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:104 msgid "shortcuts.draw-nodes" msgstr "Draw path" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:105 msgid "shortcuts.draw-path" msgstr "Path" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:106 msgid "shortcuts.draw-rect" msgstr "Rectangle" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:107 msgid "shortcuts.draw-text" msgstr "Text" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:108 msgid "shortcuts.duplicate" msgstr "Duplicate" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:109 msgid "shortcuts.escape" msgstr "Cancel" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:110 msgid "shortcuts.export-shapes" msgstr "Export shapes" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:111 msgid "shortcuts.fit-all" msgstr "Zoom to fit all" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:112 msgid "shortcuts.flip-horizontal" msgstr "Flip horizontally" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:113 msgid "shortcuts.flip-vertical" msgstr "Flip vertically" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:114 msgid "shortcuts.font-size-dec" msgstr "Decrement font size" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:115 msgid "shortcuts.font-size-inc" msgstr "Increment font size" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:116 msgid "shortcuts.go-to-drafts" msgstr "Go to drafts" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:117 msgid "shortcuts.go-to-libs" msgstr "Go to shared libraries" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:118 msgid "shortcuts.go-to-search" msgstr "Search" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:119 msgid "shortcuts.group" msgstr "Group" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:120 msgid "shortcuts.h-distribute" msgstr "Distribute horizontally" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:121 msgid "shortcuts.hide-ui" msgstr "Show / Hide UI" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:122 msgid "shortcuts.increase-zoom" msgstr "Zoom in" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:123 msgid "shortcuts.insert-image" msgstr "Insert image" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:124 msgid "shortcuts.italic" msgstr "Toggle italic" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:125 msgid "shortcuts.join-nodes" msgstr "Join nodes" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:126 msgid "shortcuts.letter-spacing-dec" msgstr "Decrement letter spacing" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:127 msgid "shortcuts.letter-spacing-inc" msgstr "Increment letter spacing" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:128 msgid "shortcuts.line-height-dec" msgstr "Decrement line height" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:129 msgid "shortcuts.line-height-inc" msgstr "Increment line height" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:130 msgid "shortcuts.line-through" msgstr "Toggle line through" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:131 msgid "shortcuts.make-corner" msgstr "Make corner" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:132 msgid "shortcuts.make-curve" msgstr "Make curve" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:133 msgid "shortcuts.mask" msgstr "Mask" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:134 msgid "shortcuts.merge-nodes" msgstr "Merge nodes" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:135 msgid "shortcuts.move" msgstr "Move" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:136 msgid "shortcuts.move-fast-down" msgstr "Move down fast" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:137 msgid "shortcuts.move-fast-left" msgstr "Move left fast" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:138 msgid "shortcuts.move-fast-right" msgstr "Move right fast" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:139 msgid "shortcuts.move-fast-up" msgstr "Move up fast" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:140 msgid "shortcuts.move-nodes" msgstr "Move node" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:141 msgid "shortcuts.move-unit-down" msgstr "Move down" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:142 msgid "shortcuts.move-unit-left" msgstr "Move left" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:143 msgid "shortcuts.move-unit-right" msgstr "Move right" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:144 msgid "shortcuts.move-unit-up" msgstr "Move up" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:145 msgid "shortcuts.next-frame" msgstr "Next board" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:516 msgid "shortcuts.not-found" msgstr "No shortcuts found" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:146 msgid "shortcuts.opacity-0" msgstr "Set opacity to 100%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:147 msgid "shortcuts.opacity-1" msgstr "Set opacity to 10%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:148 msgid "shortcuts.opacity-2" msgstr "Set opacity to 20%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:149 msgid "shortcuts.opacity-3" msgstr "Set opacity to 30%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:150 msgid "shortcuts.opacity-4" msgstr "Set opacity to 40%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:151 msgid "shortcuts.opacity-5" msgstr "Set opacity to 50%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:152 msgid "shortcuts.opacity-6" msgstr "Set opacity to 60%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:153 msgid "shortcuts.opacity-7" msgstr "Set opacity to 70%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:154 msgid "shortcuts.opacity-8" msgstr "Set opacity to 80%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:155 msgid "shortcuts.opacity-9" msgstr "Set opacity to 90%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:156 msgid "shortcuts.open-color-picker" msgstr "Color picker" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:157 msgid "shortcuts.open-comments" msgstr "Go to viewer comment section" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:158 msgid "shortcuts.open-dashboard" msgstr "Go to dashboard" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:159 msgid "shortcuts.open-inspect" msgstr "Go to viewer inspect section" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:160 msgid "shortcuts.open-interactions" msgstr "Go to viewer interactions section" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:161 msgid "shortcuts.open-viewer" msgstr "Go to viewer interactions section" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:162 msgid "shortcuts.open-workspace" msgstr "Go to workspace" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:260 msgid "shortcuts.or" msgstr " or " -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:163 msgid "shortcuts.paste" msgstr "Paste" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:164 msgid "shortcuts.prev-frame" msgstr "Previous board" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:165 msgid "shortcuts.redo" msgstr "Redo" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:166 msgid "shortcuts.reset-zoom" msgstr "Reset zoom" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:167 msgid "shortcuts.scale" msgstr "Scale" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:168 msgid "shortcuts.search-placeholder" msgstr "Search shortcuts" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:169 msgid "shortcuts.select-all" msgstr "Select all" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:170 msgid "shortcuts.select-next" msgstr "Select next layer" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:171 msgid "shortcuts.select-parent-layer" msgstr "Select parent layer" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:172 msgid "shortcuts.select-prev" msgstr "Select previous layer" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:173 msgid "shortcuts.separate-nodes" msgstr "Separate nodes" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:174 msgid "shortcuts.show-pixel-grid" msgstr "Show / Hide pixel grid" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:175 msgid "shortcuts.show-shortcuts" msgstr "Show / Hide shortcuts" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:176 msgid "shortcuts.snap-nodes" msgstr "Snap to nodes" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:177 msgid "shortcuts.snap-pixel-grid" msgstr "Snap to pixel grid" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:178 msgid "shortcuts.start-editing" msgstr "Start editing" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:179 msgid "shortcuts.start-measure" msgstr "Start measurement" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:180 msgid "shortcuts.stop-measure" msgstr "Stop measurement" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:181 msgid "shortcuts.text-align-center" msgstr "Align center" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:182 msgid "shortcuts.text-align-justify" msgstr "Align justify" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:183 msgid "shortcuts.text-align-left" msgstr "Align left" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:184 msgid "shortcuts.text-align-right" msgstr "Align right" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:185 msgid "shortcuts.thumbnail-set" msgstr "Set thumbnails" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:496, src/app/main/ui/workspace/sidebar/shortcuts.cljs:505 +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs msgid "shortcuts.title" msgstr "Keyboard shortcuts" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:186 msgid "shortcuts.toggle-alignment" msgstr "Toggle dynamic alignment" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:187 msgid "shortcuts.toggle-assets" msgstr "Toggle assets" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:188 msgid "shortcuts.toggle-colorpalette" msgstr "Toggle color palette" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:189 msgid "shortcuts.toggle-focus-mode" msgstr "Toggle focus mode" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:190 msgid "shortcuts.toggle-fullscreen" msgstr "Toggle fullscreen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:191 msgid "shortcuts.toggle-guides" msgstr "Show / Hide guides" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:192 msgid "shortcuts.toggle-history" msgstr "Toggle history" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:193 msgid "shortcuts.toggle-layers" msgstr "Toggle layers" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:194 msgid "shortcuts.toggle-layout-flex" msgstr "Add / Remove flex layout" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:195 msgid "shortcuts.toggle-layout-grid" msgstr "Add/remove grid layout" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:196 msgid "shortcuts.toggle-lock" msgstr "Lock / Unlock" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:197 msgid "shortcuts.toggle-lock-size" msgstr "Lock proportions" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:198 msgid "shortcuts.toggle-rulers" msgstr "Show / Hide rulers" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:199 -#, fuzzy -msgid "shortcuts.toggle-rules" -msgstr "" - -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:200 msgid "shortcuts.toggle-snap-guides" msgstr "Snap to guides" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:201 msgid "shortcuts.toggle-snap-ruler-guide" msgstr "Snap to ruler guides" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:202 msgid "shortcuts.toggle-textpalette" msgstr "Toggle text palette" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:203 msgid "shortcuts.toggle-theme" msgstr "Change theme" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:204 msgid "shortcuts.toggle-visibility" msgstr "Show / Hide" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:205 msgid "shortcuts.toggle-zoom-style" msgstr "Toggle zoom style" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:206 msgid "shortcuts.underline" msgstr "Toggle underline" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:207 msgid "shortcuts.undo" msgstr "Undo" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:208 msgid "shortcuts.ungroup" msgstr "Ungroup" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:209 msgid "shortcuts.unmask" msgstr "Unmask" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:210 msgid "shortcuts.v-distribute" msgstr "Distribute vertically" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:211 msgid "shortcuts.zoom-lense-decrease" msgstr "Zoom lense decrease" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:212 msgid "shortcuts.zoom-lense-increase" msgstr "Zoom lense increase" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:213 msgid "shortcuts.zoom-selected" msgstr "Zoom to selected" -#: src/app/main/ui/dashboard/team.cljs:771 +#: src/app/main/ui/dashboard/team.cljs msgid "team.webhooks.max-length" msgstr "The webhook name must contain at most 2048 characters." -#: src/app/main/ui/dashboard/files.cljs:158 +#: src/app/main/ui/dashboard/files.cljs msgid "title.dashboard.files" msgstr "%s - Penpot" -#: src/app/main/ui/dashboard/fonts.cljs:37 +#: src/app/main/ui/dashboard/fonts.cljs msgid "title.dashboard.font-providers" msgstr "Font Providers - %s - Penpot" -#: src/app/main/ui/dashboard/fonts.cljs:36 +#: src/app/main/ui/dashboard/fonts.cljs msgid "title.dashboard.fonts" msgstr "Fonts - %s - Penpot" -#: src/app/main/ui/dashboard/projects.cljs:320 +#: src/app/main/ui/dashboard/projects.cljs msgid "title.dashboard.projects" msgstr "Projects - %s - Penpot" -#: src/app/main/ui/dashboard/search.cljs:32 +#: src/app/main/ui/dashboard/search.cljs msgid "title.dashboard.search" msgstr "Search - %s - Penpot" -#: src/app/main/ui/dashboard/libraries.cljs:44 +#: src/app/main/ui/dashboard/libraries.cljs msgid "title.dashboard.shared-libraries" msgstr "Shared Libraries - %s - Penpot" -#: src/app/main/ui/auth/verify_token.cljs:68, src/app/main/ui/auth.cljs:54 +#: src/app/main/ui/auth/verify_token.cljs, src/app/main/ui/auth.cljs msgid "title.default" msgstr "Penpot - Design Freedom for Teams" -#: src/app/main/ui/settings/access_tokens.cljs:292 +#: src/app/main/ui/settings/access-tokens.cljs msgid "title.settings.access-tokens" msgstr "Profile - Access tokens" -#: src/app/main/ui/settings/feedback.cljs:110 +#: src/app/main/ui/settings/feedback.cljs msgid "title.settings.feedback" msgstr "Give feedback - Penpot" -#: src/app/main/ui/settings/options.cljs:80 +#: src/app/main/ui/settings/options.cljs msgid "title.settings.options" msgstr "Settings - Penpot" -#: src/app/main/ui/settings/password.cljs:115 +#: src/app/main/ui/settings/password.cljs msgid "title.settings.password" msgstr "Password - Penpot" -#: src/app/main/ui/settings/profile.cljs:115 +#: src/app/main/ui/settings/profile.cljs msgid "title.settings.profile" msgstr "Profile - Penpot" -#: src/app/main/ui/dashboard/team.cljs:727 +#: src/app/main/ui/dashboard/team.cljs msgid "title.team-invitations" msgstr "Invitations - %s - Penpot" -#: src/app/main/ui/dashboard/team.cljs:493 +#: src/app/main/ui/dashboard/team.cljs msgid "title.team-members" msgstr "Members - %s - Penpot" -#: src/app/main/ui/dashboard/team.cljs:1036 +#: src/app/main/ui/dashboard/team.cljs msgid "title.team-settings" msgstr "Settings - %s - Penpot" -#: src/app/main/ui/dashboard/team.cljs:989 msgid "title.team-webhooks" msgstr "Webhooks - %s - Penpot" -#: src/app/main/ui/viewer.cljs:419 +#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs msgid "title.viewer" msgstr "%s - View mode - Penpot" -#: src/app/main/ui/workspace.cljs:190 +#: src/app/main/ui/workspace.cljs msgid "title.workspace" msgstr "%s - Penpot" -#: src/app/main/ui.cljs:144 msgid "viewer.breaking-change.description" msgstr "" "This shareable link is no longer valid. Create a new one or ask the owner " "for a new one." -#: src/app/main/ui.cljs:143 msgid "viewer.breaking-change.message" msgstr "Sorry!" -#: src/app/main/ui/viewer.cljs:569 +#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs msgid "viewer.empty-state" msgstr "No boards found on the page." -#: src/app/main/ui/viewer.cljs:574 +#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs msgid "viewer.frame-not-found" msgstr "Board not found." -#: src/app/main/ui/viewer/header.cljs:336 msgid "viewer.header.comments-section" msgstr "Comments (%s)" -#: src/app/main/ui/viewer/interactions.cljs:292 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.dont-show-interactions" msgstr "Don't show interactions" -#: src/app/main/ui/viewer/header.cljs:188 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.fullscreen" msgstr "Full Screen" -#: src/app/main/ui/viewer/header.cljs:345 msgid "viewer.header.inspect-section" msgstr "Inspect (%s)" -#: src/app/main/ui/viewer/interactions.cljs:282 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.interactions" msgstr "Interactions" -#: src/app/main/ui/viewer/header.cljs:327 msgid "viewer.header.interactions-section" msgstr "Interactions (%s)" -#: src/app/main/ui/viewer/share_link.cljs:187 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.share.copy-link" msgstr "Copy link" -#: src/app/main/ui/viewer/interactions.cljs:300 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.show-interactions" msgstr "Show interactions" -#: src/app/main/ui/viewer/interactions.cljs:311 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.show-interactions-on-click" msgstr "Show interactions on click" -#: src/app/main/ui/viewer/header.cljs:231 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.sitemap" msgstr "Sitemap" -#: src/app/main/ui/dashboard/team.cljs:948 msgid "webhooks.last-delivery.success" msgstr "Last delivery was successful." -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:58 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.hcenter" msgstr "Align horizontal center (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:74 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.hdistribute" msgstr "Distribute horizontal spacing (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:50 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.hleft" msgstr "Align left (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:66 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.hright" msgstr "Align right (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:99 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.vbottom" msgstr "Align bottom (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:91 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.vcenter" msgstr "Align vertical center (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:104 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.vdistribute" msgstr "Distribute vertical spacing (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:83 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.vtop" msgstr "Align top (%s)" #: src/app/main/ui/workspace/sidebar/assets.cljs -#, unused msgid "workspace.assets.assets" msgstr "Assets" -#: src/app/main/ui/workspace/sidebar/assets.cljs:134 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.box-filter-all" msgstr "All assets" -#: src/app/main/ui/dashboard/grid.cljs:130, src/app/main/ui/dashboard/grid.cljs:162, src/app/main/ui/workspace/sidebar/assets/colors.cljs:485, src/app/main/ui/workspace/sidebar/assets.cljs:150 +#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.colors" msgstr "Colors" -#: src/app/main/ui/dashboard/grid.cljs:126, src/app/main/ui/dashboard/grid.cljs:141, src/app/main/ui/workspace/sidebar/assets/components.cljs:513, src/app/main/ui/workspace/sidebar/assets.cljs:139 +#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.components" msgstr "Components" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:131 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.create-group" msgstr "Create a group" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:142 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.create-group-hint" msgstr "Your items are going to be named automatically as \"group name / item name\"" -#: src/app/main/ui/workspace/context_menu.cljs:529, src/app/main/ui/workspace/sidebar/assets/colors.cljs:251, src/app/main/ui/workspace/sidebar/assets/components.cljs:577, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:424, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:443 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.delete" msgstr "Delete" -#: src/app/main/ui/workspace/context_menu.cljs:534, src/app/main/ui/workspace/sidebar/assets/components.cljs:572 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs, src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.duplicate" msgstr "Duplicate" -#: src/app/main/ui/workspace/sidebar/assets/components.cljs:571 msgid "workspace.assets.duplicate-main" msgstr "Duplicate main" -#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:247, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:439 +#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.edit" msgstr "Edit" -#: src/app/main/ui/workspace/sidebar/assets.cljs:176 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.filter" msgstr "Filter" -#: src/app/main/ui/workspace/sidebar/assets/graphics.cljs:384, src/app/main/ui/workspace/sidebar/assets.cljs:145 +#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.graphics" msgstr "Graphics" -#: src/app/main/ui/workspace/sidebar/assets/components.cljs:529 -msgid "workspace.assets.grid-view" -msgstr "Grid view" - -#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:255, src/app/main/ui/workspace/sidebar/assets/components.cljs:581, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:428, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:448 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.group" msgstr "Group" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:141 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.group-name" msgstr "Group name" -#: src/app/main/ui/workspace/sidebar/assets.cljs:168 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.libraries" msgstr "Libraries" -#: src/app/main/ui/workspace/sidebar/assets/components.cljs:525 -msgid "workspace.assets.list-view" -msgstr "List view" - -#: src/app/main/ui/workspace/sidebar/assets/file_library.cljs:62, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:347 msgid "workspace.assets.local-library" msgstr "local library" -#: src/app/main/ui/workspace/sidebar/assets/file_library.cljs:295 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.not-found" msgstr "No assets found" -#, unused msgid "workspace.assets.open-library" msgstr "Open library file" -#: src/app/main/ui/workspace/context_menu.cljs:532, src/app/main/ui/workspace/sidebar/assets/colors.cljs:243, src/app/main/ui/workspace/sidebar/assets/components.cljs:566, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:421, src/app/main/ui/workspace/sidebar/assets/groups.cljs:63, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:434 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.rename" msgstr "Rename" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:132 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.rename-group" msgstr "Rename group" -#: src/app/main/ui/workspace/sidebar/assets.cljs:173 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.search" msgstr "Search assets" #: src/app/main/ui/workspace/sidebar/assets.cljs -#, unused msgid "workspace.assets.selected-count" msgid_plural "workspace.assets.selected-count" msgstr[0] "%s item selected" msgstr[1] "%s items selected" #: src/app/main/ui/workspace/sidebar/assets.cljs -#, unused msgid "workspace.assets.shared-library" msgstr "Shared library" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:221 +#: src/app/main/ui/workspace/sidebar/assets/common.cljs msgid "workspace.assets.sidebar.components" msgid_plural "workspace.assets.sidebar.components" msgstr[0] "1 component" msgstr[1] "%s components" -#: src/app/main/ui/workspace/sidebar/assets.cljs:193 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.sort" msgstr "Sort" -#: src/app/main/ui/dashboard/grid.cljs:134, src/app/main/ui/dashboard/grid.cljs:189, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:397, src/app/main/ui/workspace/sidebar/assets.cljs:155 +#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.typography" msgstr "Typographies" +#: src/app/main/ui/workspace/sidebar/assets/components.cljs, src/app/main/wui/workspace/sidebar/options/menus/component.cljs +msgid "workspace.assets.grid-view" +msgstr "Grid view" + +#: src/app/main/ui/workspace/sidebar/assets/components.cljs, src/app/main/wui/workspace/sidebar/options/menus/component.cljs +msgid "workspace.assets.list-view" +msgstr "List view" + #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused msgid "workspace.assets.typography.font-id" msgstr "Font" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:505 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.font-size" msgstr "Size" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:501 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.font-variant-id" msgstr "Variant" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:523 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.go-to-edit" msgstr "Go to style library file to edit" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:513 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.letter-spacing" msgstr "Letter Spacing" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:509 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.line-height" msgstr "Line Height" -#: src/app/main/ui/dashboard/grid.cljs:199, src/app/main/ui/workspace/libraries.cljs:461, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:464, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:489, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:596, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:615 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, src/app/main/ui/inspect/attributes/text.cljs, src/app/main/ui/inspect/attributes/text.cljs msgid "workspace.assets.typography.sample" msgstr "Ag" -#, unused msgid "workspace.assets.typography.text-styles" msgstr "Text styles" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:517 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.text-transform" msgstr "Text Transform" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:66 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.ungroup" msgstr "Ungroup" -#: src/app/main/ui/workspace/context_menu.cljs:634 msgid "workspace.context-menu.grid-cells.area" msgstr "Create area" -#: src/app/main/ui/workspace/context_menu.cljs:637 msgid "workspace.context-menu.grid-cells.create-board" msgstr "Create board" -#: src/app/main/ui/workspace/context_menu.cljs:629 msgid "workspace.context-menu.grid-cells.merge" msgstr "Merge cells" -#: src/app/main/ui/workspace/context_menu.cljs:594 msgid "workspace.context-menu.grid-track.column.add-after" msgstr "Add 1 column to the right" -#: src/app/main/ui/workspace/context_menu.cljs:593 msgid "workspace.context-menu.grid-track.column.add-before" msgstr "Add 1 column to the left" -#: src/app/main/ui/workspace/context_menu.cljs:595 msgid "workspace.context-menu.grid-track.column.delete" msgstr "Delete column" -#: src/app/main/ui/workspace/context_menu.cljs:596 msgid "workspace.context-menu.grid-track.column.delete-shapes" msgstr "Delete column and shapes" -#: src/app/main/ui/workspace/context_menu.cljs:592 msgid "workspace.context-menu.grid-track.column.duplicate" msgstr "Duplicate column" -#: src/app/main/ui/workspace/context_menu.cljs:601 msgid "workspace.context-menu.grid-track.row.add-after" msgstr "Add 1 row below" -#: src/app/main/ui/workspace/context_menu.cljs:600 msgid "workspace.context-menu.grid-track.row.add-before" msgstr "Add 1 row above" -#: src/app/main/ui/workspace/context_menu.cljs:602 msgid "workspace.context-menu.grid-track.row.delete" msgstr "Delete row" -#: src/app/main/ui/workspace/context_menu.cljs:603 msgid "workspace.context-menu.grid-track.row.delete-shapes" msgstr "Delete row and shapes" -#: src/app/main/ui/workspace/context_menu.cljs:599 msgid "workspace.context-menu.grid-track.row.duplicate" msgstr "Duplicate row" -#: src/app/main/ui/workspace/sidebar/layers.cljs:525 msgid "workspace.focus.focus-mode" msgstr "Focus mode" -#: src/app/main/ui/workspace/context_menu.cljs:287, src/app/main/ui/workspace/context_menu.cljs:553 msgid "workspace.focus.focus-off" msgstr "Focus off" -#: src/app/main/ui/workspace/context_menu.cljs:286 msgid "workspace.focus.focus-on" msgstr "Focus on" -#, unused msgid "workspace.focus.selection" msgstr "Selection" -#: src/app/util/color.cljs:34 +#: src/app/main/data/workspace/libraries.cljs, src/app/main/ui/components/color_bullet.cljs msgid "workspace.gradients.linear" msgstr "Linear gradient" -#: src/app/util/color.cljs:35 +#: src/app/main/data/workspace/libraries.cljs, src/app/main/ui/components/color_bullet.cljs msgid "workspace.gradients.radial" msgstr "Radial gradient" -#: src/app/main/ui/workspace/main_menu.cljs:238 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.disable-dynamic-alignment" msgstr "Disable dynamic alignment" -#: src/app/main/ui/workspace/main_menu.cljs:192 msgid "workspace.header.menu.disable-scale-content" msgstr "Disable proportional scale" #: src/app/main/ui/workspace/header.cljs -#, unused msgid "workspace.header.menu.disable-scale-text" msgstr "Disable scale text" -#: src/app/main/ui/workspace/main_menu.cljs:223 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.disable-snap-guides" msgstr "Disable snap to guides" -#: src/app/main/ui/workspace/main_menu.cljs:253 msgid "workspace.header.menu.disable-snap-pixel-grid" msgstr "Disable snap to pixel" -#: src/app/main/ui/workspace/main_menu.cljs:207 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.disable-snap-ruler-guides" msgstr "Disable snap to ruler guides" -#: src/app/main/ui/workspace/main_menu.cljs:239 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.enable-dynamic-alignment" msgstr "Enable dynamic alignment" -#: src/app/main/ui/workspace/main_menu.cljs:193 msgid "workspace.header.menu.enable-scale-content" msgstr "Enable proportional scale" #: src/app/main/ui/workspace/header.cljs -#, unused msgid "workspace.header.menu.enable-scale-text" msgstr "Enable scale text" -#: src/app/main/ui/workspace/main_menu.cljs:224 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.enable-snap-guides" msgstr "Snap to guides" -#: src/app/main/ui/workspace/main_menu.cljs:254 msgid "workspace.header.menu.enable-snap-pixel-grid" msgstr "Enable snap to pixel" -#: src/app/main/ui/workspace/main_menu.cljs:208 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.enable-snap-ruler-guides" msgstr "Snap to ruler guides" -#: src/app/main/ui/workspace/main_menu.cljs:382 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.hide-artboard-names" msgstr "Hide board names" -#: src/app/main/ui/workspace/main_menu.cljs:336 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.hide-guides" msgstr "Hide guides" -#: src/app/main/ui/workspace/main_menu.cljs:353 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.hide-palette" msgstr "Hide color palette" -#: src/app/main/ui/workspace/main_menu.cljs:394 msgid "workspace.header.menu.hide-pixel-grid" msgstr "Hide pixel grid" -#: src/app/main/ui/workspace/main_menu.cljs:320 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.hide-rules" msgstr "Hide rulers" -#: src/app/main/ui/workspace/main_menu.cljs:367 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.hide-textpalette" msgstr "Hide fonts palette" -#: src/app/main/ui/workspace/main_menu.cljs:731 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.edit" msgstr "Edit" -#: src/app/main/ui/workspace/main_menu.cljs:720 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.file" msgstr "File" -#: src/app/main/ui/workspace/main_menu.cljs:777 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.help-info" msgstr "Help & info" -#: src/app/main/ui/workspace/main_menu.cljs:753 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.preferences" msgstr "Preferences" -#: src/app/main/ui/workspace/main_menu.cljs:742 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.view" msgstr "View" -#: src/app/main/ui/workspace/main_menu.cljs:459 msgid "workspace.header.menu.redo" msgstr "Redo" -#: src/app/main/ui/workspace/main_menu.cljs:432 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.select-all" msgstr "Select all" -#: src/app/main/ui/workspace/main_menu.cljs:383 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.show-artboard-names" msgstr "Show boards names" -#: src/app/main/ui/workspace/main_menu.cljs:337 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.show-guides" msgstr "Show guides" -#: src/app/main/ui/workspace/main_menu.cljs:354 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.show-palette" msgstr "Show color palette" -#: src/app/main/ui/workspace/main_menu.cljs:395 msgid "workspace.header.menu.show-pixel-grid" msgstr "Show pixel grid" -#: src/app/main/ui/workspace/main_menu.cljs:321 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.show-rules" msgstr "Show rulers" -#: src/app/main/ui/workspace/main_menu.cljs:368 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.show-textpalette" msgstr "Show fonts palette" -#: src/app/main/ui/workspace/main_menu.cljs:279 msgid "workspace.header.menu.toggle-dark-theme" msgstr "Switch to dark theme" -#: src/app/main/ui/workspace/main_menu.cljs:278 msgid "workspace.header.menu.toggle-light-theme" msgstr "Switch to light theme" -#: src/app/main/ui/workspace/main_menu.cljs:446 msgid "workspace.header.menu.undo" msgstr "Undo" -#: src/app/main/ui/viewer/header.cljs:98, src/app/main/ui/workspace/right_header.cljs:120 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.reset-zoom" msgstr "Reset" #: src/app/main/ui/workspace/header.cljs -#, unused msgid "workspace.header.save-error" msgstr "Error on saving" -#: src/app/main/ui/workspace/right_header.cljs:52 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.saved" msgstr "Saved" #: src/app/main/ui/workspace/header.cljs -#, unused msgid "workspace.header.saving" msgstr "Saving" -#: src/app/main/ui/workspace/right_header.cljs:42, src/app/main/ui/workspace/right_header.cljs:47 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.unsaved" msgstr "Unsaved changes" -#: src/app/main/ui/workspace/right_header.cljs:239 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.viewer" msgstr "View mode (%s)" -#: src/app/main/ui/viewer/header.cljs:79, src/app/main/ui/workspace/right_header.cljs:103 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom" msgstr "Zoom" -#: src/app/main/ui/viewer/header.cljs:109 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom-fill" msgstr "Fill - Scale to fill" -#: src/app/main/ui/viewer/header.cljs:102 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom-fit" msgstr "Fit - Scale down to fit" -#: src/app/main/ui/workspace/right_header.cljs:123 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom-fit-all" msgstr "Zoom to fit all" -#: src/app/main/ui/viewer/header.cljs:116 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom-full-screen" msgstr "Full screen" -#: src/app/main/ui/workspace/right_header.cljs:130 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom-selected" msgstr "Zoom to selected" -#: src/app/main/ui/workspace/sidebar/options/menus/grid_cell.cljs:273, src/app/main/ui/workspace/sidebar/options/menus/grid_cell.cljs:275, src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:612 msgid "workspace.layout_grid.editor.options.edit-grid" msgstr "Edit grid" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:1280 msgid "workspace.layout_grid.editor.options.exit" msgstr "Exit" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:483 msgid "workspace.layout_grid.editor.padding.expand" msgstr "Show 4 sided padding options" -#: src/app/main/ui/workspace/viewport/grid_layout_editor.cljs:59 msgid "workspace.layout_grid.editor.title" msgstr "Editing grid" -#: src/app/main/ui/workspace/viewport/grid_layout_editor.cljs:65 msgid "workspace.layout_grid.editor.top-bar.done" msgstr "Done" -#: src/app/main/ui/workspace/viewport/grid_layout_editor.cljs:62 msgid "workspace.layout_grid.editor.top-bar.locate" msgstr "Locate" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:1306 msgid "workspace.layout_grid.editor.top-bar.locate.tooltip" msgstr "Locate grid layout" #: src/app/main/ui/workspace/libraries.cljs -#, unused msgid "workspace.libraries.add" msgstr "Add" -#: src/app/main/ui/workspace/libraries.cljs:80, src/app/main/ui/workspace/libraries.cljs:99 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.colors" msgstr "%s colors" -#: src/app/main/ui/workspace/color_palette.cljs:126 +#: src/app/main/ui/workspace/colorpalette.cljs msgid "workspace.libraries.colors.empty-palette" msgstr "There are no color styles in your library yet" -#: src/app/main/ui/workspace/text_palette.cljs:150 +#: src/app/main/ui/workspace/textpalette.cljs msgid "workspace.libraries.colors.empty-typography-palette" msgstr "There are no typography styles in your library yet" -#: src/app/main/ui/workspace/color_palette_ctx_menu.cljs:60, src/app/main/ui/workspace/colorpicker/libraries.cljs:73, src/app/main/ui/workspace/text_palette_ctx_menu.cljs:50 +#: src/app/main/ui/workspace/colorpicker/libraries.cljs, src/app/main/ui/workspace/colorpalette.cljs msgid "workspace.libraries.colors.file-library" msgstr "File library" #: src/app/main/ui/workspace/colorpicker.cljs -#, unused msgid "workspace.libraries.colors.hsv" msgstr "HSV" -#: src/app/main/ui/workspace/color_palette_ctx_menu.cljs:82, src/app/main/ui/workspace/colorpicker/libraries.cljs:72 +#: src/app/main/ui/workspace/colorpicker/libraries.cljs, src/app/main/ui/workspace/colorpalette.cljs msgid "workspace.libraries.colors.recent-colors" msgstr "Recent colors" #: src/app/main/ui/workspace/colorpicker.cljs -#, unused msgid "workspace.libraries.colors.rgb-complementary" msgstr "RGB Complementary" #: src/app/main/ui/workspace/colorpicker.cljs -#, unused msgid "workspace.libraries.colors.rgba" msgstr "RGBA" -#: src/app/main/ui/workspace/colorpicker.cljs:372 +#: src/app/main/ui/workspace/colorpicker.cljs msgid "workspace.libraries.colors.save-color" msgstr "Save color style" -#: src/app/main/ui/workspace/libraries.cljs:74, src/app/main/ui/workspace/libraries.cljs:91 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.components" msgstr "%s components" -#: src/app/main/ui/workspace/libraries.cljs:215 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.file-library" msgstr "File library" -#: src/app/main/ui/workspace/libraries.cljs:77, src/app/main/ui/workspace/libraries.cljs:95 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.graphics" msgstr "%s graphics" -#: src/app/main/ui/workspace/libraries.cljs:209 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.in-this-file" msgstr "LIBRARIES IN THIS FILE" -#: src/app/main/ui/workspace/libraries.cljs:526, src/app/main/ui/workspace/libraries.cljs:531 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.libraries" msgstr "LIBRARIES" #: src/app/main/ui/workspace/libraries.cljs -#, unused msgid "workspace.libraries.library" msgstr "LIBRARY" -#: src/app/main/ui/workspace/libraries.cljs:382 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.library-updates" msgstr "LIBRARY UPDATES" -#: src/app/main/ui/workspace/libraries.cljs:290 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.loading" msgstr "Loading…" -#: src/app/main/ui/workspace/libraries.cljs:380 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.no-libraries-need-sync" msgstr "There are no Shared Libraries that need update" -#: src/app/main/ui/workspace/libraries.cljs:299 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.no-matches-for" msgstr "No matches found for “%s“" -#: src/app/main/ui/workspace/libraries.cljs:296 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.no-shared-libraries-available" msgstr "There are no Shared Libraries available" -#: src/app/main/ui/workspace/libraries.cljs:260 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.search-shared-libraries" msgstr "Search shared libraries" -#: src/app/main/ui/workspace/libraries.cljs:256 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.shared-libraries" msgstr "SHARED LIBRARIES" -#: src/app/main/ui/workspace/libraries.cljs:282 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.shared-library-btn" msgstr "Connect library" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:308 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.libraries.text.multiple-typography" msgstr "Multiple typographies" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:311 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.libraries.text.multiple-typography-tooltip" msgstr "Unlink all typographies" -#: src/app/main/ui/workspace/libraries.cljs:83, src/app/main/ui/workspace/libraries.cljs:103 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.typography" msgstr "%s typographies" -#: src/app/main/ui/workspace/libraries.cljs:249 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.unlink-library-btn" msgstr "Disconnect library" -#: src/app/main/ui/workspace/libraries.cljs:402 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.update" msgstr "Update" -#: src/app/main/ui/workspace/libraries.cljs:477 +#: src/app/main/data/workspace/libraries.cljs msgid "workspace.libraries.update.see-all-changes" msgstr "see all changes" -#: src/app/main/ui/workspace/libraries.cljs:536 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.updates" msgstr "UPDATES" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:737 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.add-interaction" msgstr "Click the + button to add interactions." -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:86, src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:102 +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs msgid "workspace.options.blur-options.title" msgstr "Blur" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:85 +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs msgid "workspace.options.blur-options.title.group" msgstr "Group blur" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:84 +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs msgid "workspace.options.blur-options.title.multiple" msgstr "Selection blur" -#: src/app/main/ui/workspace/sidebar/options/page.cljs:32, src/app/main/ui/workspace/sidebar/options/page.cljs:39 +#: src/app/main/ui/workspace/sidebar/options/page.cljs msgid "workspace.options.canvas-background" msgstr "Canvas background" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:548 msgid "workspace.options.clip-content" msgstr "Clip content" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:600, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:605 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs msgid "workspace.options.component" msgstr "Component" -#: src/app/main/ui/viewer/inspect/annotation.cljs:19, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:181 msgid "workspace.options.component.annotation" msgstr "Annotation" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:610 msgid "workspace.options.component.copy" msgstr "Copy" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:173 msgid "workspace.options.component.create-annotation" msgstr "Create an annotation" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:172 msgid "workspace.options.component.edit-annotation" msgstr "Edit an annotation" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:609 msgid "workspace.options.component.main" msgstr "Main" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:427 msgid "workspace.options.component.swap" msgstr "Swap component" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:471 msgid "workspace.options.component.swap.empty" msgstr "There are no assets in this library yet" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:163 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints" msgstr "Constraints" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:150 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.bottom" msgstr "Bottom" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:141, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:152 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.center" msgstr "Center" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:229 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.fix-when-scrolling" msgstr "Fix when scrolling" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:138 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.left" msgstr "Left" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:140 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.leftright" msgstr "Left & Right" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:139 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.right" msgstr "Right" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:142, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:153 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.scale" msgstr "Scale" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:149 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.top" msgstr "Top" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:151 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.topbottom" msgstr "Top & Bottom" -#: src/app/main/ui/workspace/sidebar/options.cljs:112 +#: src/app/main/ui/workspace/sidebar/options.cljs msgid "workspace.options.design" msgstr "Design" -#: src/app/main/ui/viewer/inspect/exports.cljs:139 +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs msgid "workspace.options.export" msgstr "Export" #: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs -#, unused msgid "workspace.options.export-multiple" msgstr "Export selection" -#: src/app/main/ui/viewer/inspect/exports.cljs:195, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:237 +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs msgid "workspace.options.export-object" msgid_plural "workspace.options.export-object" msgstr[0] "Export 1 element" msgstr[1] "Export %s elements" -#: src/app/main/ui/viewer/inspect/exports.cljs:178, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:219 +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs msgid "workspace.options.export.suffix" msgstr "Suffix" -#: src/app/main/ui/export.cljs:240 +#: 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.exporting-complete" msgstr "Export complete" -#: src/app/main/ui/export.cljs:172, src/app/main/ui/export.cljs:241, src/app/main/ui/viewer/inspect/exports.cljs:194, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:236 +#: 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.exporting-object" msgstr "Exporting…" -#: src/app/main/ui/export.cljs:239 +#: 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.exporting-object-error" msgstr "Export failed" -#: src/app/main/ui/export.cljs:242 +#: 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.exporting-object-slow" msgstr "Export unexpectedly slow" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:49, src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:174 +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs msgid "workspace.options.fill" msgstr "Fill" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:178 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.flows.add-flow-start" msgstr "Add flow start" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:174 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.flows.flow" msgstr "Flow" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -#, unused msgid "workspace.options.flows.flow-start" msgstr "Flow start" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:161 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.flows.flow-starts" msgstr "Flow starts" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:29 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.auto" msgstr "Auto" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:157 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.column" msgstr "Columns" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.grid-title" msgstr "Grid" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:196, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:237 msgid "workspace.options.grid.params.color" msgstr "Color" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.params.columns" msgstr "Columns" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:259 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.gutter" msgstr "Gutter" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:246 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.height" msgstr "Height" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:270 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.margin" msgstr "Margin" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.params.rows" msgstr "Rows" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:216, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:290 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.set-default" msgstr "Set as default" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.params.size" msgstr "Size" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.params.type" msgstr "Type" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:231 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.bottom" msgstr "Bottom" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:229 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.center" msgstr "Center" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:228 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.left" msgstr "Left" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:232 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.right" msgstr "Right" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:225 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.stretch" msgstr "Stretch" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:227 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.top" msgstr "Top" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:211, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:288 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.use-default" msgstr "Use default" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:247 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.width" msgstr "Width" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:158 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.row" msgstr "Rows" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:156 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.square" msgstr "Square" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:48 +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs msgid "workspace.options.group-fill" msgstr "Group fill" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:42 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.group-stroke" msgstr "Group stroke" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:310 msgid "workspace.options.guides.title" msgstr "Guides" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:406 msgid "workspace.options.height" msgstr "Height" -#: src/app/main/ui/workspace/sidebar/options.cljs:161 msgid "workspace.options.inspect" msgstr "Inspect" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:468 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-action" msgstr "Action" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:41, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:367 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-after-delay" msgstr "After delay" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:614 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-animation" msgstr "Animation" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:406 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-animation-dissolve" msgstr "Dissolve" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:405 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-animation-none" msgstr "None" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:412 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-animation-push" msgstr "Push" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:407 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-animation-slide" msgstr "Slide" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:391 msgid "workspace.options.interaction-auto" msgstr "auto" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:604 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-background" msgstr "Add background overlay" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:590 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-close-outside" msgstr "Close when clicking outside" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:372 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-close-overlay" msgstr "Close overlay" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:56 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-close-overlay-dest" msgstr "Close overlay: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:456 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-delay" msgstr "Delay" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:478 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-destination" msgstr "Destination" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:661 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-duration" msgstr "Duration" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:674 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing" msgstr "Easing" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:416 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing-ease" msgstr "Ease" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:417 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing-ease-in" msgstr "Ease in" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:419 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing-ease-in-out" msgstr "Ease in out" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:418 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing-ease-out" msgstr "Ease out" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:415 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing-linear" msgstr "Linear" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -#, unused msgid "workspace.options.interaction-in" msgstr "In" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:39, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:364 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-mouse-enter" msgstr "Mouse enter" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:40, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:365 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-mouse-leave" msgstr "Mouse leave" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:458, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:459, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:464, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:663, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:665, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:669 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-ms" msgstr "ms" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:369 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-navigate-to" msgstr "Navigate to" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:50 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-navigate-to-dest" msgstr "Navigate to: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:51, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:53, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:55, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:380 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-none" msgstr "(not set)" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:691 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-offset-effect" msgstr "Offset effect" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:35, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:360 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-on-click" msgstr "On Click" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:370 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-open-overlay" msgstr "Open overlay" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:52 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-open-overlay-dest" msgstr "Open overlay: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:59, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:374 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-open-url" msgstr "Open URL" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -#, unused msgid "workspace.options.interaction-out" msgstr "Out" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:403 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-bottom-center" msgstr "Bottom center" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:401 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-bottom-left" msgstr "Bottom left" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:402 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-bottom-right" msgstr "Bottom right" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:397 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-center" msgstr "Center" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:396 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-manual" msgstr "Manual" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:400 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-top-center" msgstr "Top center" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:398 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-top-left" msgstr "Top left" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:399 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-top-right" msgstr "Top right" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:524 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-position" msgstr "Position" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:494 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-preserve-scroll" msgstr "Preserve scroll position" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:58, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:373 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-prev-screen" msgstr "Previous screen" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:515 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-relative-to" msgstr "Relative to" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:57, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:379, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:393, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:394 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-self" msgstr "self" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:371 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-toggle-overlay" msgstr "Toggle overlay" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:54 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-toggle-overlay-dest" msgstr "Toggle overlay: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:445 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-trigger" msgstr "Trigger" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:503 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-url" msgstr "URL" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:37, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:362 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-while-hovering" msgstr "While Hovering" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:38, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:363 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-while-pressing" msgstr "While Pressing" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:724 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interactions" msgstr "Interactions" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:137 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.color" msgstr "Color" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:126 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.color-burn" msgstr "Color burn" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:129 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.color-dodge" msgstr "Color dodge" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:124 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.darken" msgstr "Darken" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:133 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.difference" msgstr "Difference" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:134 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.exclusion" msgstr "Exclusion" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:132 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.hard-light" msgstr "Hard light" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:135 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.hue" msgstr "Hue" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:127 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.lighten" msgstr "Lighten" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:138 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.luminosity" msgstr "Luminosity" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:125 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.multiply" msgstr "Multiply" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:123 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.normal" msgstr "Normal" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:130 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.overlay" msgstr "Overlay" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:136 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.saturation" msgstr "Saturation" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:128 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.screen" msgstr "Screen" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:131 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.soft-light" msgstr "Soft light" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -#, unused msgid "workspace.options.layer-options.title" msgstr "Layer" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -#, unused msgid "workspace.options.layer-options.title.group" msgstr "Group layers" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -#, unused msgid "workspace.options.layer-options.title.multiple" msgstr "Selected layers" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout-item.advanced-ops" msgstr "Advanced options" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:564 +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs msgid "workspace.options.layout-item.layout-item-max-h" msgstr "Max.Height" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:531 +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs msgid "workspace.options.layout-item.layout-item-max-w" msgstr "Max.Width" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:548 +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs msgid "workspace.options.layout-item.layout-item-min-h" msgstr "Min.Height" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:515 +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs msgid "workspace.options.layout-item.layout-item-min-w" msgstr "Min.Width" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout-item.title.layout-item-max-h" msgstr "Maximum height" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout-item.title.layout-item-max-w" msgstr "Maximum width" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout-item.title.layout-item-min-h" msgstr "Minimum height" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout-item.title.layout-item-min-w" msgstr "Minimum width" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.bottom" msgstr "Bottom" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.direction.column" msgstr "Column" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.direction.column-reverse" msgstr "Reverse column" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.direction.row" msgstr "Row" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.direction.row-reverse" msgstr "Reverse row" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.gap" msgstr "Gap" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.left" msgstr "Left" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout.margin" msgstr "Margin" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout.margin-all" msgstr "All sides" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout.margin-simple" msgstr "Simple margin" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.packed" msgstr "packed" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.padding" msgstr "Padding" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.padding-all" msgstr "All sides" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.padding-simple" msgstr "Simple padding" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.right" msgstr "Right" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.space-around" msgstr "space around" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.space-between" msgstr "space between" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.top" msgstr "Top" -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:146 +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs msgid "workspace.options.more-colors" msgstr "More colors" -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:123 +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs msgid "workspace.options.more-lib-colors" msgstr "More library colors" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:161 msgid "workspace.options.opacity" msgstr "Opacity" #: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -#, unused msgid "workspace.options.position" msgstr "Position" -#: src/app/main/ui/workspace/sidebar/options.cljs:157 +#: src/app/main/ui/workspace/sidebar/options.cljs msgid "workspace.options.prototype" msgstr "Prototype" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:469, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:481 msgid "workspace.options.radius" msgstr "Radius" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:513 +#: 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:522 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.radius-bottom-right" msgstr "Bottom right" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:495 +#: 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:504 +#: 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:532 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.radius.all-corners" msgstr "All corners" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:533 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.radius.single-corners" msgstr "Independent corners" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:183 msgid "workspace.options.recent-fonts" msgstr "Recent" -#: src/app/main/ui/export.cljs:284 +#: 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 "Retry" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:451 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.rotation" msgstr "Rotation" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:180 msgid "workspace.options.search-font" msgstr "Search font" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:741 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.select-a-shape" msgstr "Select a shape, board or group to drag a connection to other board." -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:105 +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs msgid "workspace.options.selection-color" msgstr "Selected colors" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:47 +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs msgid "workspace.options.selection-fill" msgstr "Selection fill" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:41 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.selection-stroke" msgstr "Selection stroke" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:40, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:198, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:200 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.blur" msgstr "Blur" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:238 msgid "workspace.options.shadow-options.color" msgstr "Shadow color" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:144 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.drop-shadow" msgstr "Drop shadow" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:145 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.inner-shadow" msgstr "Inner shadow" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:38, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:186 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.offsetx" msgstr "X" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:39, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:224 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.offsety" msgstr "Y" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:41, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:211, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:213 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.spread" msgstr "Spread" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:296 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.title" msgstr "Shadow" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:295 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.title.group" msgstr "Group shadow" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:294 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.title.multiple" msgstr "Selection shadows" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:193 +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs msgid "workspace.options.show-fill-on-export" msgstr "Show in exports" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:562 msgid "workspace.options.show-in-viewer" msgstr "Show in view mode" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:162 +#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.size" msgstr "Size" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:355 +#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs msgid "workspace.options.size-presets" msgstr "Size presets" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:43 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke" msgstr "Stroke" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -#, unused msgid "workspace.options.stroke-cap.circle-marker" msgstr "Circle marker" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:129 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.circle-marker-short" msgstr "Circle" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -#, unused msgid "workspace.options.stroke-cap.diamond-marker" msgstr "Diamond marker" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:130 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.diamond-marker-short" msgstr "Diamond" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -#, unused msgid "workspace.options.stroke-cap.line-arrow" msgstr "Line arrow" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:126 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.line-arrow-short" msgstr "Arrow" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:124 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.none" msgstr "None" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:132 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.round" msgstr "Round" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:133 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.square" msgstr "Square" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -#, unused msgid "workspace.options.stroke-cap.square-marker" msgstr "Square marker" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:128 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.square-marker-short" msgstr "Rectangle" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -#, unused msgid "workspace.options.stroke-cap.triangle-arrow" msgstr "Triangle arrow" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:127 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.triangle-arrow-short" msgstr "Triangle" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:192 msgid "workspace.options.stroke-color" msgstr "Stroke color" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:165 msgid "workspace.options.stroke-width" msgstr "Stroke width" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:87 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.center" msgstr "Center" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:105 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.dashed" msgstr "Dashed" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:104 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.dotted" msgstr "Dotted" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:88 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.inner" msgstr "Inside" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:106 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.mixed" msgstr "Mixed" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:89 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.outer" msgstr "Outside" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:103 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.solid" msgstr "Solid" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:115 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.align-bottom" msgstr "Align bottom" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:111 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.align-middle" msgstr "Align middle" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:107 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.align-top" msgstr "Align top" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:82 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.direction-ltr" msgstr "LTR" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:87 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.direction-rtl" msgstr "RTL" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:149 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.grow-auto-height" msgstr "Auto height" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:145 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.grow-auto-width" msgstr "Auto width" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:141 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.grow-fixed" msgstr "Fixed" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:381 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.options.text-options.letter-spacing" msgstr "Letter Spacing" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:364 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.options.text-options.line-height" msgstr "Line height" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused msgid "workspace.options.text-options.lowercase" msgstr "Lowercase" #: src/app/main/ui/workspace/sidebar/options/menus/text.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused msgid "workspace.options.text-options.none" msgstr "None" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:176 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.strikethrough" msgstr "Strikethrough (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:51 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.text-align-center" msgstr "Align center (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:59 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.text-align-justify" msgstr "Justify (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:47 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.text-align-left" msgstr "Align left (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:55 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.text-align-right" msgstr "Align right (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:189 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.title" msgstr "Text" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:188 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.title-group" msgstr "Group text" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:187 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.title-selection" msgstr "Selection text" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused msgid "workspace.options.text-options.titlecase" msgstr "Title case" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:171 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.underline" msgstr "Underline (%s)" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused msgid "workspace.options.text-options.uppercase" msgstr "Uppercase" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:745 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.use-play-button" msgstr "Use the play button at the header to run the prototype view." -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:395 msgid "workspace.options.width" msgstr "Width" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:427 msgid "workspace.options.x" msgstr "X axis" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:438 msgid "workspace.options.y" msgstr "Y axis" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:167 msgid "workspace.path.actions.add-node" msgstr "Add node (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:174 msgid "workspace.path.actions.delete-node" msgstr "Delete node (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:152 msgid "workspace.path.actions.draw-nodes" msgstr "Draw nodes (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:189 msgid "workspace.path.actions.join-nodes" msgstr "Join nodes (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:204 msgid "workspace.path.actions.make-corner" msgstr "To corner (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:211 msgid "workspace.path.actions.make-curve" msgstr "To curve (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:182 msgid "workspace.path.actions.merge-nodes" msgstr "Merge nodes (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:159 msgid "workspace.path.actions.move-nodes" msgstr "Move nodes (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:196 msgid "workspace.path.actions.separate-nodes" msgstr "Separate nodes (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:218 msgid "workspace.path.actions.snap-nodes" msgstr "Snap nodes (%s)" -#: src/app/main/ui/workspace/plugins.cljs:55 -msgid "workspace.plugins.button-open" -msgstr "Open" - -#: src/app/main/ui/workspace/plugins.cljs:164 -msgid "workspace.plugins.empty-plugins" -msgstr "No plugins installed yet" - -#: src/app/main/ui/workspace/plugins.cljs:157 -msgid "workspace.plugins.error.url" -msgstr "The plugin doesn't exist or the URL is not correct." - -#: src/app/main/ui/workspace/plugins.cljs:153 -msgid "workspace.plugins.install" -msgstr "Install" - -#: src/app/main/ui/workspace/plugins.cljs:170 -msgid "workspace.plugins.installed-plugins" -msgstr "Installed plugins" - -#: src/app/main/ui/workspace/main_menu.cljs:624 -msgid "workspace.plugins.menu.plugins-manager" -msgstr "Plugins manager" - -#: src/app/main/ui/workspace/main_menu.cljs:765 -msgid "workspace.plugins.menu.title" -msgstr "Plugins" - -#: src/app/main/ui/workspace/plugins.cljs:218 -msgid "workspace.plugins.permissions.content-read" -msgstr "Read the content of files that users have access to." - -#: src/app/main/ui/workspace/plugins.cljs:224 -msgid "workspace.plugins.permissions.content-write" -msgstr "Read and modify the content of files that users have access to." - -#: src/app/main/ui/workspace/plugins.cljs:212 -msgid "workspace.plugins.permissions.disclaimer" -msgstr "Note that this plugin has been created by an external party." - -#: src/app/main/ui/workspace/plugins.cljs:236 -msgid "workspace.plugins.permissions.library-read" -msgstr "Read your libraries and assets." - -#: src/app/main/ui/workspace/plugins.cljs:239 -msgid "workspace.plugins.permissions.library-write" -msgstr "Read and modify your libraries and assets." - -#: src/app/main/ui/workspace/plugins.cljs:204 -msgid "workspace.plugins.permissions.title" -msgstr "THIS PLUGIN WANTS ACCESS TO:" - -#: src/app/main/ui/workspace/plugins.cljs:230 -msgid "workspace.plugins.permissions.user-read" -msgstr "Read the profile information of the current user." - -#: src/app/main/ui/workspace/plugins.cljs:166 -msgid "workspace.plugins.plugin-list-link" -msgstr "Plugins List" - -#: src/app/main/ui/workspace/plugins.cljs:149 -msgid "workspace.plugins.search-placeholder" -msgstr "Write a plugin URL" - -#, unused -msgid "workspace.plugins.success" -msgstr "Plugin correctly loaded." - -#: src/app/main/ui/workspace/plugins.cljs:143 -msgid "workspace.plugins.title" -msgstr "Plugins" - -#: src/app/main/ui/workspace/context_menu.cljs:441 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.add-flex" msgstr "Add flex layout" -#: src/app/main/ui/workspace/context_menu.cljs:445 msgid "workspace.shape.menu.add-grid" msgstr "Add grid layout" -#: src/app/main/ui/workspace/context_menu.cljs:193 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.back" msgstr "Send to back" -#: src/app/main/ui/workspace/context_menu.cljs:190 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.backward" msgstr "Send backward" -#: src/app/main/ui/workspace/context_menu.cljs:139 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.copy" msgstr "Copy" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:427 msgid "workspace.shape.menu.create-annotation" msgstr "Create annotation" -#: src/app/main/ui/workspace/context_menu.cljs:275 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.create-artboard-from-selection" msgstr "Selection to board" -#: src/app/main/ui/workspace/context_menu.cljs:465 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.create-component" msgstr "Create component" -#: src/app/main/ui/workspace/context_menu.cljs:469 msgid "workspace.shape.menu.create-multiple-components" msgstr "Create multiple components" -#: src/app/main/ui/workspace/context_menu.cljs:142 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.cut" msgstr "Cut" -#: src/app/main/ui/workspace/context_menu.cljs:486 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.delete" msgstr "Delete" -#: src/app/main/ui/workspace/context_menu.cljs:391 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.delete-flow-start" msgstr "Delete flow start" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:432 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.detach-instance" msgstr "Detach instance" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:431 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.detach-instances-in-bulk" msgstr "Detach instances" -#: src/app/main/ui/workspace/context_menu.cljs:335, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:75 msgid "workspace.shape.menu.difference" msgstr "Difference" -#: src/app/main/ui/workspace/context_menu.cljs:148 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.duplicate" msgstr "Duplicate" -#: src/app/main/ui/workspace/context_menu.cljs:321 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.edit" msgstr "Edit" -#: src/app/main/ui/workspace/context_menu.cljs:341 msgid "workspace.shape.menu.exclude" msgstr "Exclude" -#: src/app/main/ui/workspace/context_menu.cljs:348, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:89 msgid "workspace.shape.menu.flatten" msgstr "Flatten" -#: src/app/main/ui/workspace/context_menu.cljs:208 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.flip-horizontal" msgstr "Flip horizontal" -#: src/app/main/ui/workspace/context_menu.cljs:204 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.flip-vertical" msgstr "Flip vertical" -#: src/app/main/ui/workspace/context_menu.cljs:394 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.flow-start" msgstr "Flow start" -#: src/app/main/ui/workspace/context_menu.cljs:184 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.forward" msgstr "Bring forward" -#: src/app/main/ui/workspace/context_menu.cljs:187 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.front" msgstr "Bring to front" #: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs -#, unused msgid "workspace.shape.menu.go-main" msgstr "Go to main component file" -#: src/app/main/ui/workspace/context_menu.cljs:261 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.group" msgstr "Group" -#: src/app/main/ui/workspace/context_menu.cljs:363, src/app/main/ui/workspace/sidebar/layer_item.cljs:145 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.hide" msgstr "Hide" -#: src/app/main/ui/workspace/context_menu.cljs:548, src/app/main/ui/workspace/main_menu.cljs:408 msgid "workspace.shape.menu.hide-ui" msgstr "Show / Hide UI" -#: src/app/main/ui/workspace/context_menu.cljs:338 msgid "workspace.shape.menu.intersection" msgstr "Intersection" -#: src/app/main/ui/workspace/context_menu.cljs:371, src/app/main/ui/workspace/sidebar/layer_item.cljs:153 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.lock" msgstr "Lock" -#: src/app/main/ui/workspace/context_menu.cljs:266 +#: src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.mask" msgstr "Mask" -#: src/app/main/ui/workspace/context_menu.cljs:145, src/app/main/ui/workspace/context_menu.cljs:545 +#: src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.paste" msgstr "Paste" -#: src/app/main/ui/workspace/context_menu.cljs:331 msgid "workspace.shape.menu.path" msgstr "Path" -#: src/app/main/ui/workspace/context_menu.cljs:432 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.remove-flex" msgstr "Remove flex layout" -#: src/app/main/ui/workspace/context_menu.cljs:435 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.remove-grid" msgstr "Remove grid layout" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:436 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.reset-overrides" msgstr "Reset overrides" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:439 msgid "workspace.shape.menu.restore-main" msgstr "Restore main component" -#: src/app/main/ui/workspace/context_menu.cljs:174 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.select-layer" msgstr "Select layer" -#: src/app/main/ui/workspace/context_menu.cljs:360, src/app/main/ui/workspace/sidebar/layer_item.cljs:144 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.show" msgstr "Show" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:424 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.show-in-assets" msgstr "Show in assets panel" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:442, src/app/main/ui/workspace/sidebar/assets/components.cljs:586 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.show-main" msgstr "Show main component" -#: src/app/main/ui/workspace/context_menu.cljs:221 msgid "workspace.shape.menu.thumbnail-remove" msgstr "Remove thumbnail" -#: src/app/main/ui/workspace/context_menu.cljs:223 msgid "workspace.shape.menu.thumbnail-set" msgstr "Set as thumbnail" -#: src/app/main/ui/workspace/context_menu.cljs:326 msgid "workspace.shape.menu.transform-to-path" msgstr "Transform to path" -#: src/app/main/ui/workspace/context_menu.cljs:257 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.ungroup" msgstr "Ungroup" -#: src/app/main/ui/workspace/context_menu.cljs:332, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:70 msgid "workspace.shape.menu.union" msgstr "Union" -#: src/app/main/ui/workspace/context_menu.cljs:368, src/app/main/ui/workspace/sidebar/layer_item.cljs:152 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.unlock" msgstr "Unlock" -#: src/app/main/ui/workspace/context_menu.cljs:271 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.unmask" msgstr "Unmask" #: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs -#, unused msgid "workspace.shape.menu.update-components-in-bulk" msgstr "Update main components" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:445 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.update-main" msgstr "Update main component" -#: src/app/main/ui/components/tab_container.cljs:50 msgid "workspace.sidebar.collapse" msgstr "Collapse sidebar" -#: src/app/main/ui/workspace/sidebar/collapsable_button.cljs:26 msgid "workspace.sidebar.expand" msgstr "Expand sidebar" -#: src/app/main/ui/workspace/right_header.cljs:231, src/app/main/ui/workspace/right_header.cljs:232 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.sidebar.history" msgstr "History (%s)" -#: src/app/main/ui/workspace/sidebar/layers.cljs:522, src/app/main/ui/workspace/sidebar.cljs:100 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.sidebar.layers" msgstr "Layers" -#: src/app/main/ui/workspace/sidebar/layers.cljs:308, src/app/main/ui/workspace/sidebar/layers.cljs:380 msgid "workspace.sidebar.layers.components" msgstr "Components" -#: src/app/main/ui/workspace/sidebar/layers.cljs:305, src/app/main/ui/workspace/sidebar/layers.cljs:338 msgid "workspace.sidebar.layers.frames" msgstr "Boards" -#: src/app/main/ui/workspace/sidebar/layers.cljs:306, src/app/main/ui/workspace/sidebar/layers.cljs:352 msgid "workspace.sidebar.layers.groups" msgstr "Groups" -#: src/app/main/ui/workspace/sidebar/layers.cljs:310, src/app/main/ui/workspace/sidebar/layers.cljs:408 msgid "workspace.sidebar.layers.images" msgstr "Images" -#: src/app/main/ui/workspace/sidebar/layers.cljs:307, src/app/main/ui/workspace/sidebar/layers.cljs:366 msgid "workspace.sidebar.layers.masks" msgstr "Masks" -#: src/app/main/ui/workspace/sidebar/layers.cljs:289 msgid "workspace.sidebar.layers.search" msgstr "Search layers" -#: src/app/main/ui/workspace/sidebar/layers.cljs:311, src/app/main/ui/workspace/sidebar/layers.cljs:422 msgid "workspace.sidebar.layers.shapes" msgstr "Shapes" -#: src/app/main/ui/workspace/sidebar/layers.cljs:309, src/app/main/ui/workspace/sidebar/layers.cljs:394 msgid "workspace.sidebar.layers.texts" msgstr "Texts" -#: src/app/main/ui/viewer/inspect/attributes/svg.cljs:56, src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs:91 +#: src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs, src/app/main/ui/inspect/attributes/svg.cljs msgid "workspace.sidebar.options.svg-attrs.title" msgstr "Imported SVG Attributes" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs:217 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs msgid "workspace.sidebar.sitemap" msgstr "Pages" -#: src/app/main/ui/workspace/left_header.cljs:91 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.sitemap" msgstr "Sitemap" -#: src/app/main/ui/workspace/sidebar.cljs:120 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.assets" msgstr "Assets" -#: src/app/main/ui/workspace/palette.cljs:165, src/app/main/ui/workspace/palette.cljs:166 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.color-palette" msgstr "Color Palette (%s)" -#: src/app/main/ui/workspace/right_header.cljs:220, src/app/main/ui/workspace/right_header.cljs:221 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.comments" msgstr "Comments (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:180, src/app/main/ui/workspace/top_toolbar.cljs:181 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.curve" msgstr "Curve (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:160, src/app/main/ui/workspace/top_toolbar.cljs:161 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.ellipse" msgstr "Ellipse (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:142, src/app/main/ui/workspace/top_toolbar.cljs:143 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.frame" msgstr "Board (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:59, src/app/main/ui/workspace/top_toolbar.cljs:60 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.image" msgstr "Image (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:132, src/app/main/ui/workspace/top_toolbar.cljs:133 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.move" msgstr "Move (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:189, src/app/main/ui/workspace/top_toolbar.cljs:190 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.path" msgstr "Path (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:200, src/app/main/ui/workspace/top_toolbar.cljs:201 -#, fuzzy -msgid "workspace.toolbar.plugins" -msgstr "" - -#: src/app/main/ui/workspace/top_toolbar.cljs:151, src/app/main/ui/workspace/top_toolbar.cljs:152 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.rect" msgstr "Rectangle (%s)" #: src/app/main/ui/workspace/left_toolbar.cljs -#, unused msgid "workspace.toolbar.shortcuts" msgstr "Shortcuts (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:169, src/app/main/ui/workspace/top_toolbar.cljs:170 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.text" msgstr "Text (%s)" -#: src/app/main/ui/workspace/palette.cljs:173, src/app/main/ui/workspace/palette.cljs:174 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.text-palette" msgstr "Typographies (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:216, src/app/main/ui/workspace/top_toolbar.cljs:217 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.toggle-toolbar" msgstr "Toggle toolbar" -#: src/app/main/ui/workspace/viewport/top_bar.cljs:38 msgid "workspace.top-bar.read-only.done" msgstr "Done" -#: src/app/main/ui/workspace/viewport/top_bar.cljs:35 #, markdown msgid "workspace.top-bar.view-only" msgstr "**Inspecting code** (View Only)" -#: src/app/main/ui/workspace/sidebar/history.cljs:342 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.empty" msgstr "There are no history changes so far" -#: src/app/main/ui/workspace/sidebar/history.cljs:147 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.entry.delete" msgstr "Deleted %s" -#: src/app/main/ui/workspace/sidebar/history.cljs:146 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.entry.modify" msgstr "Modified %s" -#: src/app/main/ui/workspace/sidebar/history.cljs:148 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.entry.move" msgstr "Moved objects" -#: src/app/main/ui/workspace/sidebar/history.cljs:111 msgid "workspace.undo.entry.multiple.circle" msgstr "circles" -#: src/app/main/ui/workspace/sidebar/history.cljs:112 msgid "workspace.undo.entry.multiple.color" msgstr "color assets" -#: src/app/main/ui/workspace/sidebar/history.cljs:113 msgid "workspace.undo.entry.multiple.component" msgstr "components" -#: src/app/main/ui/workspace/sidebar/history.cljs:114 msgid "workspace.undo.entry.multiple.curve" msgstr "curves" -#: src/app/main/ui/workspace/sidebar/history.cljs:115 msgid "workspace.undo.entry.multiple.frame" msgstr "board" -#: src/app/main/ui/workspace/sidebar/history.cljs:116 msgid "workspace.undo.entry.multiple.group" msgstr "groups" -#: src/app/main/ui/workspace/sidebar/history.cljs:117 msgid "workspace.undo.entry.multiple.media" msgstr "graphic assets" -#: src/app/main/ui/workspace/sidebar/history.cljs:118 msgid "workspace.undo.entry.multiple.multiple" msgstr "objects" -#: src/app/main/ui/workspace/sidebar/history.cljs:119 msgid "workspace.undo.entry.multiple.page" msgstr "pages" -#: src/app/main/ui/workspace/sidebar/history.cljs:120 msgid "workspace.undo.entry.multiple.path" msgstr "paths" -#: src/app/main/ui/workspace/sidebar/history.cljs:121 msgid "workspace.undo.entry.multiple.rect" msgstr "rectangles" -#: src/app/main/ui/workspace/sidebar/history.cljs:122 msgid "workspace.undo.entry.multiple.shape" msgstr "shapes" -#: src/app/main/ui/workspace/sidebar/history.cljs:123 msgid "workspace.undo.entry.multiple.text" msgstr "texts" -#: src/app/main/ui/workspace/sidebar/history.cljs:124 msgid "workspace.undo.entry.multiple.typography" msgstr "typography assets" -#: src/app/main/ui/workspace/sidebar/history.cljs:145 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.entry.new" msgstr "New %s" -#: src/app/main/ui/workspace/sidebar/history.cljs:125 msgid "workspace.undo.entry.single.circle" msgstr "circle" -#: src/app/main/ui/workspace/sidebar/history.cljs:126 msgid "workspace.undo.entry.single.color" msgstr "color asset" -#: src/app/main/ui/workspace/sidebar/history.cljs:127 msgid "workspace.undo.entry.single.component" msgstr "component" -#: src/app/main/ui/workspace/sidebar/history.cljs:128 msgid "workspace.undo.entry.single.curve" msgstr "curve" -#: src/app/main/ui/workspace/sidebar/history.cljs:129 msgid "workspace.undo.entry.single.frame" msgstr "board" -#: src/app/main/ui/workspace/sidebar/history.cljs:130 msgid "workspace.undo.entry.single.group" msgstr "group" -#: src/app/main/ui/workspace/sidebar/history.cljs:131 msgid "workspace.undo.entry.single.image" msgstr "image" -#: src/app/main/ui/workspace/sidebar/history.cljs:132 msgid "workspace.undo.entry.single.media" msgstr "graphic asset" -#: src/app/main/ui/workspace/sidebar/history.cljs:133 msgid "workspace.undo.entry.single.multiple" msgstr "object" -#: src/app/main/ui/workspace/sidebar/history.cljs:134 msgid "workspace.undo.entry.single.page" msgstr "page" -#: src/app/main/ui/workspace/sidebar/history.cljs:135 msgid "workspace.undo.entry.single.path" msgstr "path" -#: src/app/main/ui/workspace/sidebar/history.cljs:136 msgid "workspace.undo.entry.single.rect" msgstr "rectangle" -#: src/app/main/ui/workspace/sidebar/history.cljs:137 msgid "workspace.undo.entry.single.shape" msgstr "shape" -#: src/app/main/ui/workspace/sidebar/history.cljs:138 msgid "workspace.undo.entry.single.text" msgstr "text" -#: src/app/main/ui/workspace/sidebar/history.cljs:139 msgid "workspace.undo.entry.single.typography" msgstr "typography asset" -#: src/app/main/ui/workspace/sidebar/history.cljs:149 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.entry.unknown" msgstr "Operation over %s" -#: src/app/main/ui/workspace/sidebar/history.cljs:335 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.title" msgstr "History" -#: src/app/main/data/workspace/libraries.cljs:1094 +#: src/app/main/data/workspace/libraries.cljs msgid "workspace.updates.dismiss" msgstr "Dismiss" -#: src/app/main/data/workspace/libraries.cljs:1092 +#: src/app/main/data/workspace/libraries.cljs msgid "workspace.updates.more-info" msgstr "More info" -#: src/app/main/data/workspace/libraries.cljs:1090 +#: src/app/main/data/workspace/libraries.cljs msgid "workspace.updates.there-are-updates" msgstr "There are updates in shared libraries" -#: src/app/main/data/workspace/libraries.cljs:1097 +#: src/app/main/data/workspace/libraries.cljs msgid "workspace.updates.update" msgstr "Update" -#, unused msgid "workspace.viewport.click-to-close-path" msgstr "Click to close the path" + +msgid "workspace.plugins.title" +msgstr "Plugins" + +msgid "workspace.plugins.search-placeholder" +msgstr "Write a plugin URL" + +msgid "workspace.plugins.install" +msgstr "Install" + +msgid "workspace.plugins.installed-plugins" +msgstr "Installed plugins" + +msgid "workspace.plugins.empty-plugins" +msgstr "No plugins installed yet" + +msgid "workspace.plugins.button-open" +msgstr "Open" + +msgid "workspace.plugins.error.url" +msgstr "The plugin doesn't exist or the URL is not correct." + +msgid "workspace.plugins.success" +msgstr "Plugin correctly loaded." + +msgid "workspace.plugins.menu.title" +msgstr "Plugins" + +msgid "workspace.plugins.menu.plugins-manager" +msgstr "Plugins manager" + +msgid "workspace.plugins.plugin-list-link" +msgstr "Plugins List" + +msgid "workspace.plugins.permissions.title" +msgstr "THIS PLUGIN WANTS ACCESS TO:" + +msgid "workspace.plugins.permissions.disclaimer" +msgstr "Note that this plugin has been created by an external party." + +msgid "workspace.plugins.permissions.content-read" +msgstr "Read the content of files that users have access to." + +msgid "workspace.plugins.permissions.content-write" +msgstr "Read and modify the content of files that users have access to." + +msgid "workspace.plugins.permissions.user-read" +msgstr "Read the profile information of the current user." + +msgid "workspace.plugins.permissions.library-read" +msgstr "Read your libraries and assets." + +msgid "workspace.plugins.permissions.library-write" +msgstr "Read and modify your libraries and assets." diff --git a/frontend/translations/es.po b/frontend/translations/es.po index c3995ec7b4..187c38f822 100644 --- a/frontend/translations/es.po +++ b/frontend/translations/es.po @@ -11,565 +11,516 @@ msgstr "" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 5.5.1\n" -#: src/app/main/ui/auth/register.cljs:151, src/app/main/ui/viewer/login.cljs:104 +#: src/app/main/ui/auth/register.cljs msgid "auth.already-have-account" msgstr "¿Tienes ya una cuenta?" -#: src/app/main/ui/auth/register.cljs:296 -msgid "auth.check-mail" -msgstr "Comprueba tu correo" - -#: src/app/main/ui/auth/register.cljs:299 +#: src/app/main/ui/auth/register.cljs msgid "auth.check-your-email" msgstr "" "Comprueba tu email y haz click en el link de verificación para comenzar a " "usar Penpot." -#: src/app/main/ui/auth/recovery.cljs:78 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.confirm-password" msgstr "Confirmar contraseña" -#: src/app/main/ui/auth/register.cljs:163 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.create-demo-account" msgstr "Crear cuenta de prueba" #: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs -#, unused msgid "auth.create-demo-profile" msgstr "¿Quieres probar?" -#: src/app/main/ui/auth/login.cljs:43 +#: src/app/main/ui/auth/register.cljs msgid "auth.demo-warning" msgstr "" "Este es un servicio de DEMOSTRACIÓN. NO USAR para trabajo real, los " "proyectos serán borrados periodicamente." -#: src/app/main/ui/auth/login.cljs:189, src/app/main/ui/viewer/login.cljs:90 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/auth/login.cljs +msgid "auth.work-email" +msgstr "Correo electrónico" + +#: src/app/main/ui/auth/login.cljs msgid "auth.forgot-password" msgstr "¿Olvidaste tu contraseña?" -#: src/app/main/ui/auth/register.cljs:254 +#: src/app/main/ui/auth/register.cljs msgid "auth.fullname" msgstr "Nombre completo" -#: src/app/main/ui/auth/login.cljs:282 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-account-title" msgstr "Entrar en mi cuenta" -#: src/app/main/ui/auth/register.cljs:155, src/app/main/ui/viewer/login.cljs:107 +#: src/app/main/ui/auth/register.cljs msgid "auth.login-here" msgstr "Inicia sesión aquí." -#: src/app/main/ui/auth/login.cljs:195 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-submit" msgstr "Entrar" -#: src/app/main/ui/auth/login.cljs:285 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-tagline" msgstr "" "Penpot es la herramienta de diseño libre y open-source para la colaboración " "entre Diseño y Código" -#: src/app/main/ui/auth/login.cljs:222 +#: src/app/main/ui/auth/login.cljs +msgid "auth.register-tagline" +msgstr "Con una cuenta gratuita de Penpot, puedes crear un número ilimitado de equipos y colaborar con otros diseñadores y desarrolladores en tantos proyectos como quieras." + +#: src/app/main/ui/auth/login.cljs +msgid "auth.register-account-tagline" +msgstr "Cuéntanos cómo quieres que nos dirijamos a tí." + +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-github-submit" msgstr "GitHub" -#: src/app/main/ui/auth/login.cljs:228 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-gitlab-submit" msgstr "GitLab" -#: src/app/main/ui/auth/login.cljs:216 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-google-submit" msgstr "Google" -#: src/app/main/ui/auth/login.cljs:201 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-ldap-submit" msgstr "LDAP" -#: src/app/main/ui/auth/login.cljs:234, src/app/main/ui/auth/login.cljs:255 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-oidc-submit" msgstr "OpenID" -#: src/app/main/ui/auth/register.cljs:217, src/app/main/ui/dashboard/team_form.cljs:76, src/app/main/ui/onboarding/team_choice.cljs:180, src/app/main/ui/settings/access_tokens.cljs:66, src/app/main/ui/settings/feedback.cljs:34, src/app/main/ui/settings/profile.cljs:45, src/app/main/ui/workspace/sidebar/assets/groups.cljs:108 +#: src/app/main/ui/settings/team-form.cljs, src/app/main/ui/auth/register.cljs, src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/onboarding/team_choice.cljs, src/app/main/ui/settings/access_tokens.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/settings/profile.cljs, src/app/main/ui/workspace/sidebar/assets.cljs msgid "auth.name.not-all-space" msgstr "El nombre debe contener algún carácter diferente de espacio" -#: src/app/main/ui/auth/register.cljs:218, src/app/main/ui/dashboard/team_form.cljs:77, src/app/main/ui/onboarding/team_choice.cljs:181, src/app/main/ui/settings/access_tokens.cljs:67, src/app/main/ui/settings/feedback.cljs:33, src/app/main/ui/settings/profile.cljs:44, src/app/main/ui/workspace/sidebar/assets/groups.cljs:109 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/onboarding/team_choice.cljs, src/app/main/ui/settings/access_tokens.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/settings/profile.cljs, src/app/main/ui/workspace/sidebar/assets.cljs msgid "auth.name.too-long" msgstr "El nombre debe contener como máximo 250 caracteres." -#: src/app/main/ui/auth/recovery.cljs:71 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.new-password" msgstr "Introduce la nueva contraseña" -#: src/app/main/ui/auth/recovery.cljs:42 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.notifications.invalid-token-error" msgstr "El código de recuperación no es válido." -#: src/app/main/ui/auth/recovery.cljs:46 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.notifications.password-changed-successfully" msgstr "La contraseña ha sido cambiada" -#: src/app/main/ui/auth/recovery_request.cljs:57 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.notifications.profile-not-verified" msgstr "" "El perfil aun no ha sido verificado, por favor valida el perfil antes de " "continuar." -#: src/app/main/ui/auth/recovery_request.cljs:40 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.notifications.recovery-token-sent" msgstr "Hemos enviado a tu buzón un enlace para recuperar tu contraseña." -#: src/app/main/ui/auth/verify_token.cljs:47 +#: src/app/main/ui/auth/verify_token.cljs msgid "auth.notifications.team-invitation-accepted" msgstr "Te uniste al equipo" -#: src/app/main/ui/auth/login.cljs:179, src/app/main/ui/auth/register.cljs:115 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.password" msgstr "Contraseña" -#: src/app/main/ui/auth/register.cljs:114 +#: src/app/main/ui/auth/register.cljs msgid "auth.password-length-hint" msgstr "8 caracteres como mínimo" -#: src/app/main/ui/auth/recovery.cljs:61, src/app/main/ui/auth/recovery.cljs:62, src/app/main/ui/auth/register.cljs:81, src/app/main/ui/settings/password.cljs:75, src/app/main/ui/settings/password.cljs:76, src/app/main/ui/settings/password.cljs:77 +#: src/app/main/ui/auth/register.cljs msgid "auth.password-not-empty" msgstr "La contraseña debe contener algún caracter diferente de espacio" -#: src/app/main/ui/auth.cljs:41 msgid "auth.privacy-policy" msgstr "Política de privacidad" -#: src/app/main/ui/auth/recovery_request.cljs:88 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-submit" msgstr "Recuperar contraseña" -#: src/app/main/ui/auth/recovery_request.cljs:101 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-subtitle" msgstr "Te enviaremos un correo electrónico con instrucciones" -#: src/app/main/ui/auth/recovery_request.cljs:100 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-title" msgstr "¿Olvidaste tu contraseña?" -#: src/app/main/ui/auth/recovery.cljs:82 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.recovery-submit" msgstr "Cambiar tu contraseña" -#: src/app/main/ui/auth/login.cljs:298, src/app/main/ui/viewer/login.cljs:93 +#: src/app/main/ui/auth/login.cljs msgid "auth.register" msgstr "¿No tienes una cuenta?" -#: src/app/main/ui/auth/register.cljs:277 -msgid "auth.register-account-tagline" -msgstr "Cuéntanos cómo quieres que nos dirijamos a tí." - -#: src/app/main/ui/auth/register.cljs:276 -msgid "auth.register-account-title" -msgstr "Tu nombre" - -#: src/app/main/ui/auth/login.cljs:302, src/app/main/ui/auth/register.cljs:121, src/app/main/ui/auth/register.cljs:263, src/app/main/ui/viewer/login.cljs:97 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.register-submit" msgstr "Crear una cuenta" -#: src/app/main/ui/auth/register.cljs:142 -msgid "auth.register-tagline" -msgstr "" -"Con una cuenta gratuita de Penpot, puedes crear un número ilimitado de " -"equipos y colaborar con otros diseñadores y desarrolladores en tantos " -"proyectos como quieras." - -#: src/app/main/ui/auth/register.cljs:140 +#: src/app/main/ui/auth/register.cljs msgid "auth.register-title" msgstr "Crear una cuenta" +#: src/app/main/ui/auth/register.cljs +msgid "auth.register-account-title" +msgstr "Tu nombre" + #: src/app/main/ui/auth.cljs -#, unused msgid "auth.sidebar-tagline" msgstr "La solución de código abierto para diseñar y prototipar." -#: src/app/main/ui/auth/register.cljs:202 -#, markdown -msgid "auth.terms-and-privacy-agreement" -msgstr "Yo acepto los [términos de servicio](%s) y la [política de privacidad](%s)." - -#: src/app/main/ui/auth.cljs:33, src/app/main/ui/dashboard/sidebar.cljs:1022, src/app/main/ui/workspace/main_menu.cljs:150 msgid "auth.terms-of-service" msgstr "Términos de servicio" -#, unused msgid "auth.terms-privacy-agreement" msgstr "" "Al crear una nueva cuenta, aceptas nuestros [términos de servicio](%s) y " "[política de privacidad](%s)." -#: src/app/main/ui/auth/register.cljs:297 +#: src/app/main/ui/auth/register.cljs +#, markdown +msgid "auth.terms-and-privacy-agreement" +msgstr "" +"Yo acepto los [términos de servicio](%s) y la [política de privacidad](%s)." + +#: src/app/main/ui/auth/register.cljs msgid "auth.verification-email-sent" msgstr "Hemos enviado un email de verificación a" -#: src/app/main/ui/auth/login.cljs:172, src/app/main/ui/auth/recovery_request.cljs:83, src/app/main/ui/auth/register.cljs:108 -msgid "auth.work-email" -msgstr "Correo electrónico" +#: src/app/main/ui/auth/register.cljs +msgid "auth.check-mail" +msgstr "Comprueba tu correo" #: src/app/main/ui/onboarding/questions.cljs -#, unused msgid "branding-illustrations-marketing-pieces" msgstr "diseño de marca, ilustraciones, piezas de marketing..." -#: src/app/main/ui/workspace/libraries.cljs:228 msgid "common.publish" msgstr "Publicar" -#: src/app/main/ui/viewer/share_link.cljs:304, src/app/main/ui/viewer/share_link.cljs:314 msgid "common.share-link.all-users" msgstr "Todo usario de Penpot" -#: src/app/main/ui/viewer/share_link.cljs:198 msgid "common.share-link.confirm-deletion-link-description" msgstr "" "¿Estas seguro que quieres eliminar el enlace? Si lo haces, el enlace dejara " "de funcionar para cualquiera" -#: src/app/main/ui/viewer/share_link.cljs:259, src/app/main/ui/viewer/share_link.cljs:289 msgid "common.share-link.current-tag" msgstr "(actual)" -#: src/app/main/ui/viewer/share_link.cljs:207, src/app/main/ui/viewer/share_link.cljs:214 msgid "common.share-link.destroy-link" msgstr "Eliminar enlace" -#: src/app/main/ui/viewer/share_link.cljs:221 msgid "common.share-link.get-link" msgstr "Obtener enlace" -#: src/app/main/ui/viewer/share_link.cljs:139 msgid "common.share-link.link-copied-success" msgstr "Enlace copiado satisfactoriamente" -#: src/app/main/ui/viewer/share_link.cljs:231 msgid "common.share-link.manage-ops" msgstr "Gestionar permisos" -#: src/app/main/ui/viewer/share_link.cljs:277 msgid "common.share-link.page-shared" msgid_plural "common.share-link.page-shared" msgstr[0] "1 página compartida" msgstr[1] "%s páginas compartidas" -#: src/app/main/ui/viewer/share_link.cljs:298 msgid "common.share-link.permissions-can-comment" msgstr "Pueden comentar" -#: src/app/main/ui/viewer/share_link.cljs:308 msgid "common.share-link.permissions-can-inspect" msgstr "Pueden ver código" -#: src/app/main/ui/viewer/share_link.cljs:193 msgid "common.share-link.permissions-hint" msgstr "Cualquiera con el enlace puede acceder" -#: src/app/main/ui/viewer/share_link.cljs:241 msgid "common.share-link.permissions-pages" msgstr "Páginas compartidas" -#: src/app/main/ui/viewer/share_link.cljs:183 msgid "common.share-link.placeholder" msgstr "El enlace para compartir aparecerá aquí" -#: src/app/main/ui/viewer/share_link.cljs:303, src/app/main/ui/viewer/share_link.cljs:313 msgid "common.share-link.team-members" msgstr "Sólo integrantes del equipo" -#: src/app/main/ui/viewer/share_link.cljs:171 msgid "common.share-link.title" msgstr "Compartir prototipos" -#: src/app/main/ui/viewer/share_link.cljs:269 msgid "common.share-link.view-all" msgstr "Selecctionar todas" -#: src/app/main/ui/workspace/libraries.cljs:224 msgid "common.unpublish" msgstr "Despublicar" -#: src/app/main/ui/dashboard/projects.cljs:85 +#: src/app/main/ui/dashboard/projects.cljs msgid "dasboard.team-hero.management" msgstr "Gestión del equipo" -#: src/app/main/ui/dashboard/projects.cljs:84 +#: src/app/main/ui/dashboard/projects.cljs msgid "dasboard.team-hero.text" msgstr "" "Penpot está dirigido a equipos. Invita a personas para trabajar " "conjuntamente en proyectos y archivos" -#: src/app/main/ui/dashboard/projects.cljs:82 +#: src/app/main/ui/dashboard/projects.cljs msgid "dasboard.team-hero.title" msgstr "¡Forma equipo!" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.tutorial-hero.info" msgstr "" "Aprende los básicos de Penpot mientras pasas un buen rato con este tutorial " "práctico." #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.tutorial-hero.start" msgstr "Comenzar tutorial" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.tutorial-hero.title" msgstr "Tutorial práctico" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.walkthrough-hero.info" msgstr "Da un paseo por Penpot para conocer sus principales funcionalidades." #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.walkthrough-hero.start" msgstr "Comenzar" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.walkthrough-hero.title" msgstr "Recorrido por el interfaz" -#: src/app/main/ui/settings/access_tokens.cljs:115 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.copied-success" msgstr "Token copiado" -#: src/app/main/ui/settings/access_tokens.cljs:202 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.create" msgstr "Generar nuevo token" -#: src/app/main/ui/settings/access_tokens.cljs:76 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.create.success" msgstr "Access token creado con éxito." -#: src/app/main/ui/settings/access_tokens.cljs:300 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.empty.add-one" msgstr "Pulsa el botón \"Generar nuevo token\" para generar uno." -#: src/app/main/ui/settings/access_tokens.cljs:299 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.empty.no-access-tokens" msgstr "Todavía no tienes ningún token." -#: src/app/main/ui/settings/access_tokens.cljs:53 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.errors-required-name" msgstr "El nombre es obligatorio" -#: src/app/main/ui/settings/access_tokens.cljs:147 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-180-days" msgstr "180 días" -#: src/app/main/ui/settings/access_tokens.cljs:144 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-30-days" msgstr "30 días" -#: src/app/main/ui/settings/access_tokens.cljs:145 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-60-days" msgstr "60 días" -#: src/app/main/ui/settings/access_tokens.cljs:146 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-90-days" msgstr "90 días" -#: src/app/main/ui/settings/access_tokens.cljs:143 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-never" msgstr "Nunca" -#: src/app/main/ui/settings/access_tokens.cljs:282 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expired-on" msgstr "Expiró el %s" -#: src/app/main/ui/settings/access_tokens.cljs:283 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expires-on" msgstr "Expira el %s" -#: src/app/main/ui/settings/access_tokens.cljs:281 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.no-expiration" msgstr "Sin fecha de expiración" -#: src/app/main/ui/settings/access_tokens.cljs:197 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.personal" msgstr "Access tokens personales" -#: src/app/main/ui/settings/access_tokens.cljs:198 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.personal.description" msgstr "" "Los access tokens personales funcionan como una alternativa a nuestro " "sistema de autenticación usuario/password y se pueden usar para permitir a " "otras aplicaciones acceso a la API interna de Penpot" -#: src/app/main/ui/settings/access_tokens.cljs:154 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.token-will-expire" msgstr "El token expirará el %s" -#: src/app/main/ui/settings/access_tokens.cljs:155 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.token-will-not-expire" msgstr "El token no tiene fecha de expiración" -#: src/app/main/ui/dashboard/file_menu.cljs:291, src/app/main/ui/workspace/main_menu.cljs:572 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.add-shared" msgstr "Añadir como Biblioteca Compartida" -#: src/app/main/ui/settings/profile.cljs:75 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.change-email" msgstr "Cambiar correo" -#: src/app/main/data/dashboard.cljs:762, src/app/main/data/dashboard.cljs:983 +#: src/app/main/data/dashboard.cljs, src/app/main/data/dashboard.cljs msgid "dashboard.copy-suffix" msgstr "(copia)" -#: src/app/main/ui/dashboard/sidebar.cljs:338 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.create-new-team" msgstr "Crear nuevo equipo" -#: src/app/main/ui/components/context_menu_a11y.cljs:256, src/app/main/ui/dashboard/sidebar.cljs:646 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.default-team-name" msgstr "Tu Penpot" -#: src/app/main/ui/dashboard/sidebar.cljs:571 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.delete-team" msgstr "Eliminar equipo" -#: src/app/main/ui/dashboard/file_menu.cljs:296, src/app/main/ui/workspace/main_menu.cljs:589 msgid "dashboard.download-binary-file" msgstr "Descargar archivo Penpot (.penpot)" -#: src/app/main/ui/dashboard/file_menu.cljs:300, src/app/main/ui/workspace/main_menu.cljs:597 msgid "dashboard.download-standard-file" msgstr "Descargar archivo estándar (.svg + .json)" -#: src/app/main/ui/dashboard/file_menu.cljs:276, src/app/main/ui/dashboard/project_menu.cljs:90 +#: src/app/main/ui/dashboard/project_menu.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.duplicate" msgstr "Duplicar" -#: src/app/main/ui/dashboard/file_menu.cljs:240 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.duplicate-multi" msgstr "Duplicar %s archivos" -#: src/app/main/ui/dashboard/placeholder.cljs:32 -#, markdown +#: src/app/main/ui/dashboard/grid.cljs msgid "dashboard.empty-placeholder-drafts" msgstr "" "Los archivos agregados a las bibliotecas aparecerán aquí. Si quieres probar " "con alguna plantilla ve a [Bibliotecas y " "plantillas](https://penpot.app/libraries-templates)." -#: src/app/main/ui/dashboard/file_menu.cljs:249 msgid "dashboard.export-binary-multi" msgstr "Descargar %s archivos Penpot (.penpot)" -#: src/app/main/ui/workspace/main_menu.cljs:605 msgid "dashboard.export-frames" msgstr "Exportar tableros como PDF" -#: src/app/main/ui/export.cljs:201 +#: src/app/main/ui/export.cljs msgid "dashboard.export-frames.title" msgstr "Exportar como PDF" -#, unused msgid "dashboard.export-multi" msgstr "Exportar %s archivos Penpot" -#: src/app/main/ui/export.cljs:109 +#: src/app/main/ui/export.cljs msgid "dashboard.export-multiple.selected" msgstr "%s de %s elementos seleccionados" -#: src/app/main/ui/workspace/main_menu.cljs:578 +#: src/app/main/ui/workspace/header.cljs msgid "dashboard.export-shapes" msgstr "Exportar" -#: src/app/main/ui/export.cljs:180 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.how-to" msgstr "" "Puedes añadir configuraciones de exportación a elementos desde las " "propiedades de diseño (al final del lateral derecho)." -#: src/app/main/ui/export.cljs:184 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.how-to-link" msgstr "Información sobre cómo configurar exportaciones en Penpot." -#: src/app/main/ui/export.cljs:179 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.no-elements" msgstr "No hay elementos con configuraciones de exportación." -#: src/app/main/ui/export.cljs:190 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.title" msgstr "Exportar selección" -#: src/app/main/ui/dashboard/file_menu.cljs:252 msgid "dashboard.export-standard-multi" msgstr "Descargar %s archivos estándar (.svg + .json)" -#: src/app/main/ui/export.cljs:427 msgid "dashboard.export.detail" msgstr "* Pueden incluir components, gráficos, colores y/o tipografias." -#: src/app/main/ui/export.cljs:426 msgid "dashboard.export.explain" msgstr "" "Uno o mas ficheros que quieres exportar usan librerias compartidas. ¿Qué " "quieres hacer con los recursos*?" -#: src/app/main/ui/export.cljs:435 msgid "dashboard.export.options.all.message" msgstr "" "ficheros con librerias compartidas se inclurán en el paquete de exportación " "y mantendrán los enlaces." -#: src/app/main/ui/export.cljs:436 msgid "dashboard.export.options.all.title" msgstr "Exportar librerias compartidas" -#: src/app/main/ui/export.cljs:437 msgid "dashboard.export.options.detach.message" msgstr "" "Las biblioteca compartidas no se incluirán en la exportación y ningún " "recurso será incluido en la biblioteca. " -#: src/app/main/ui/export.cljs:438 msgid "dashboard.export.options.detach.title" msgstr "Usar los recursos como objetos básicos" -#: src/app/main/ui/export.cljs:439 msgid "dashboard.export.options.merge.message" msgstr "" "Tu fichero será exportado con todos los recursos dentro de la libreria del " "propio fichero." -#: src/app/main/ui/export.cljs:440 msgid "dashboard.export.options.merge.title" msgstr "Incluir librerias compartidas dentro de las librerias del fichero" -#: src/app/main/ui/export.cljs:418 msgid "dashboard.export.title" msgstr "Exportar ficheros" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:309 msgid "dashboard.fonts.deleted-placeholder" msgstr "Fuente no encontrada" -#: src/app/main/ui/dashboard/fonts.cljs:206 +#: src/app/main/ui/dashboard/fonts.cljs msgid "dashboard.fonts.dismiss-all" msgstr "Ignorar todas" -#: src/app/main/ui/dashboard/fonts.cljs:436 msgid "dashboard.fonts.empty-placeholder" msgstr "Las fuentes personalizadas que subas aparecerán aquí." -#: src/app/main/ui/dashboard/fonts.cljs:194 +#: src/app/main/ui/dashboard/fonts.cljs msgid "dashboard.fonts.fonts-added" msgid_plural "dashboard.fonts.fonts-added" msgstr[0] "1 fuente añadida" msgstr[1] "%s fuentes añadidas" -#: src/app/main/ui/dashboard/fonts.cljs:170 #, markdown msgid "dashboard.fonts.hero-text1" msgstr "" @@ -579,7 +530,6 @@ msgstr "" "como una **única familia de fuentes**. Se pueden cargar fuentes con los " "siguientes formatos: **TTF, OTF and WOFF** (con uno es suficiente)." -#: src/app/main/ui/dashboard/fonts.cljs:182 #, markdown msgid "dashboard.fonts.hero-text2" msgstr "" @@ -590,11 +540,10 @@ msgstr "" "más sobre licencias tipográficas: [font " "licensing](https://www.typography.com/faq)." -#: src/app/main/ui/dashboard/fonts.cljs:202 +#: src/app/main/ui/dashboard/fonts.cljs msgid "dashboard.fonts.upload-all" msgstr "Cargar todas" -#: src/app/main/ui/dashboard/fonts.cljs:187 #, markdown msgid "dashboard.fonts.warning-text" msgstr "" @@ -605,1715 +554,1523 @@ msgstr "" "[Transfonter](https://transfonter.org/) para generar fuentes web y corregir " "posibles errores." -#: src/app/main/ui/dashboard/import.cljs:472, src/app/main/ui/dashboard/project_menu.cljs:108 msgid "dashboard.import" msgstr "Importar archivos Penpot" -#: src/app/main/ui/dashboard/import.cljs:304, src/app/worker/import.cljs:753, src/app/worker/import.cljs:755 msgid "dashboard.import.analyze-error" msgstr "¡Vaya! No hemos podido importar el fichero" -#, unused msgid "dashboard.import.analyze-error.components-v2" msgstr "" "Fichero exportado con componentes-v2 pero el equipo actual no lo soporta " "aún." -#: src/app/main/ui/dashboard/import.cljs:308 msgid "dashboard.import.import-error" msgstr "Hubo un problema importando el fichero. No ha podido ser importado." -#: src/app/main/ui/dashboard/import.cljs:493 msgid "dashboard.import.import-message" msgid_plural "dashboard.import.import-message" msgstr[0] "1 fichero se ha importado correctamente." msgstr[1] "%s ficheros se han importado correctamente." -#: src/app/main/ui/dashboard/import.cljs:481, src/app/main/ui/dashboard/import.cljs:488 msgid "dashboard.import.import-warning" msgstr "Algunos ficheros contenían objetos erroneos que no han sido importados." -#: src/app/main/ui/dashboard/import.cljs:144 msgid "dashboard.import.progress.process-colors" msgstr "Procesando colores" -#: src/app/main/ui/dashboard/import.cljs:153 msgid "dashboard.import.progress.process-components" msgstr "Procesando componentes" -#: src/app/main/ui/dashboard/import.cljs:150 msgid "dashboard.import.progress.process-media" msgstr "Procesando media" -#: src/app/main/ui/dashboard/import.cljs:141 msgid "dashboard.import.progress.process-page" msgstr "Procesando página: %s" -#: src/app/main/ui/dashboard/import.cljs:147 msgid "dashboard.import.progress.process-typographies" msgstr "Procesando tipografías" -#: src/app/main/ui/dashboard/import.cljs:135 msgid "dashboard.import.progress.upload-data" msgstr "Enviando datos al servidor (%s/%s)" -#: src/app/main/ui/dashboard/import.cljs:138 msgid "dashboard.import.progress.upload-media" msgstr "Enviando fichero: %s" -#: src/app/main/ui/dashboard/team.cljs:109 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.invite-profile" msgstr "Invitar a la gente" -#: src/app/main/ui/dashboard/sidebar.cljs:547, src/app/main/ui/dashboard/sidebar.cljs:556, src/app/main/ui/dashboard/sidebar.cljs:563, src/app/main/ui/dashboard/team.cljs:312 +#: src/app/main/ui/dashboard/sidebar.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.leave-team" msgstr "Abandonar equipo" -#: src/app/main/ui/dashboard/templates.cljs:88, src/app/main/ui/dashboard/templates.cljs:163 msgid "dashboard.libraries-and-templates" msgstr "Bibliotecas y plantillas" -#: src/app/main/ui/dashboard/templates.cljs:164 msgid "dashboard.libraries-and-templates.explore" msgstr "Explora más y descubre cómo contribuir" -#: src/app/main/ui/dashboard/import.cljs:365 msgid "dashboard.libraries-and-templates.import-error" msgstr "Hubo un problema importando la plantilla. No ha podido ser importada." -#: src/app/main/ui/dashboard/libraries.cljs:53 +#: src/app/main/ui/dashboard/libraries.cljs msgid "dashboard.libraries-title" msgstr "Bibliotecas" -#: src/app/main/ui/dashboard/placeholder.cljs:45 +#: src/app/main/ui/dashboard/grid.cljs msgid "dashboard.loading-files" msgstr "cargando tus ficheros …" -#: src/app/main/ui/dashboard/fonts.cljs:431 msgid "dashboard.loading-fonts" msgstr "cargando tus fuentes …" -#: src/app/main/ui/dashboard/file_menu.cljs:281, src/app/main/ui/dashboard/project_menu.cljs:100 +#: src/app/main/ui/dashboard/project_menu.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.move-to" msgstr "Mover a" -#: src/app/main/ui/dashboard/file_menu.cljs:245 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.move-to-multi" msgstr "Mover %s archivos a" -#: src/app/main/ui/dashboard/file_menu.cljs:226 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.move-to-other-team" msgstr "Mover a otro equipo" -#: src/app/main/ui/dashboard/files.cljs:105, src/app/main/ui/dashboard/projects.cljs:252, src/app/main/ui/dashboard/projects.cljs:253 +#: src/app/main/ui/dashboard/projects.cljs, +#: src/app/main/ui/dashboard/files.cljs msgid "dashboard.new-file" msgstr "+ Nuevo Archivo" -#: src/app/main/data/dashboard.cljs:958, src/app/main/data/dashboard.cljs:1181 +#: src/app/main/data/dashboard.cljs msgid "dashboard.new-file-prefix" msgstr "Nuevo Archivo" -#: src/app/main/ui/dashboard/projects.cljs:55 +#: src/app/main/ui/dashboard/projects.cljs msgid "dashboard.new-project" msgstr "+ Nuevo proyecto" -#: src/app/main/data/dashboard.cljs:726, src/app/main/data/dashboard.cljs:1184 +#: src/app/main/data/dashboard.cljs msgid "dashboard.new-project-prefix" msgstr "Nuevo Proyecto" -#: src/app/main/ui/dashboard/search.cljs:60 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.no-matches-for" msgstr "No se encuentra “%s“" -#: src/app/main/ui/dashboard/sidebar.cljs:827 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.no-projects-placeholder" msgstr "Los proyectos fijados aparecerán aquí" -#: src/app/main/ui/auth/verify_token.cljs:33 +#: src/app/main/ui/auth/verify_token.cljs msgid "dashboard.notifications.email-changed-successfully" msgstr "Tu dirección de correo ha sido actualizada" -#: src/app/main/ui/auth/verify_token.cljs:27 +#: src/app/main/ui/auth/verify_token.cljs msgid "dashboard.notifications.email-verified-successfully" msgstr "Tu dirección de correo ha sido verificada" -#: src/app/main/ui/settings/password.cljs:37 +#: src/app/main/ui/settings/password.cljs msgid "dashboard.notifications.password-saved" msgstr "¡Contraseña guardada!" -#: src/app/main/ui/dashboard/team.cljs:1081 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.num-of-members" msgstr "%s integrantes" -#: src/app/main/ui/dashboard/file_menu.cljs:267 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.open-in-new-tab" msgstr "Abrir en una pestaña nueva" -#: src/app/main/ui/dashboard/files.cljs:117, src/app/main/ui/dashboard/projects.cljs:260, src/app/main/ui/dashboard/projects.cljs:261 msgid "dashboard.options" msgstr "Opciones" -#: src/app/main/ui/settings/password.cljs:106, src/app/main/ui/settings/password.cljs:119 +#: src/app/main/ui/settings/password.cljs msgid "dashboard.password-change" msgstr "Cambiar contraseña" -#: src/app/main/ui/dashboard/pin_button.cljs:24, src/app/main/ui/dashboard/project_menu.cljs:95 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.pin-unpin" msgstr "Anclar/Desanclar" -#: src/app/main/ui/dashboard/projects.cljs:51 +#: src/app/main/ui/dashboard/projects.cljs msgid "dashboard.projects-title" msgstr "Proyectos" -#: src/app/main/ui/settings/profile.cljs:86 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.remove-account" msgstr "¿Quieres borrar tu cuenta?" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.remove-shared" msgstr "Eliminar como Biblioteca Compartida" -#: src/app/main/ui/settings/profile.cljs:78 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.save-settings" msgstr "Guardar opciones" -#: src/app/main/ui/dashboard/sidebar.cljs:246, src/app/main/ui/dashboard/sidebar.cljs:247 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.search-placeholder" msgstr "Buscar…" -#: src/app/main/ui/dashboard/search.cljs:55 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.searching-for" msgstr "Buscando “%s“…" -#: src/app/main/ui/settings/options.cljs:56 +#: src/app/main/ui/settings/options.cljs msgid "dashboard.select-ui-language" msgstr "Cambiar el idioma de la interfaz" -#: src/app/main/ui/settings/options.cljs:63 +#: src/app/main/ui/settings/options.cljs msgid "dashboard.select-ui-theme" msgstr "Selecciona un tema" -#: src/app/main/ui/dashboard/projects.cljs:282 +#: src/app/main/ui/dashboard/grid.cljs msgid "dashboard.show-all-files" msgstr "Ver todos los archivos" -#: src/app/main/ui/dashboard/file_menu.cljs:96 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-delete-file" msgid_plural "dashboard.success-delete-file" msgstr[0] "Tu archivo ha sido borrado con éxito" msgstr[1] "Tus archivos han sido borrado con éxito" -#: src/app/main/ui/dashboard/project_menu.cljs:59 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.success-delete-project" msgstr "Tu proyecto ha sido borrado con éxito" -#: src/app/main/ui/dashboard/file_menu.cljs:91 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-duplicate-file" msgid_plural "dashboard.success-delete-file" msgstr[0] "Tu archivo ha sido duplicado con éxito" msgstr[1] "Tus archivos han sido duplicado con éxito" -#: src/app/main/ui/dashboard/project_menu.cljs:33 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.success-duplicate-project" msgstr "Tu proyecto ha sido duplicado con éxito" -#: src/app/main/ui/dashboard/file_menu.cljs:130, src/app/main/ui/dashboard/grid.cljs:558, src/app/main/ui/dashboard/sidebar.cljs:152 +#: src/app/main/ui/dashboard/grid.cljs, src/app/main/ui/dashboard/sidebar.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-move-file" msgstr "Tu archivo ha sido movido con éxito" -#: src/app/main/ui/dashboard/file_menu.cljs:129 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-move-files" msgstr "Tus archivos han sido movidos con éxito" -#: src/app/main/ui/dashboard/project_menu.cljs:54 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.success-move-project" msgstr "Tu proyecto ha sido movido con éxito" -#: src/app/main/ui/dashboard/team.cljs:1052 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.team-info" msgstr "Información del equipo" -#: src/app/main/ui/dashboard/team.cljs:1070 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.team-members" msgstr "Integrantes del equipo" -#: src/app/main/ui/dashboard/team.cljs:1085 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.team-projects" msgstr "Proyectos del equipo" -#: src/app/main/ui/settings/options.cljs:61 +#: src/app/main/ui/settings/options.cljs msgid "dashboard.theme-change" msgstr "Tema visual" -#: src/app/main/ui/dashboard/search.cljs:42 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.title-search" msgstr "Resultados de búsqueda" -#: src/app/main/ui/dashboard/search.cljs:50 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.type-something" msgstr "Escribe algo para buscar" -#: src/app/main/ui/dashboard/file_menu.cljs:287, src/app/main/ui/workspace/main_menu.cljs:566 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.unpublish-shared" msgstr "Despublicar Biblioteca" -#: src/app/main/ui/settings/options.cljs:71 +#: src/app/main/ui/settings/password.cljs, +#: src/app/main/ui/settings/options.cljs msgid "dashboard.update-settings" msgstr "Actualizar opciones" -#: src/app/main/ui/dashboard/team.cljs:861 msgid "dashboard.webhooks.active" msgstr "Activo" -#: src/app/main/ui/dashboard/team.cljs:862 msgid "dashboard.webhooks.active.explain" msgstr "Cuando se active este webhook se enviarán detalles del evento" -#: src/app/main/ui/dashboard/team.cljs:852 msgid "dashboard.webhooks.content-type" msgstr "Tipo de contenido" -#: src/app/main/ui/dashboard/team.cljs:885 msgid "dashboard.webhooks.create" msgstr "Crear webhook" -#: src/app/main/ui/dashboard/team.cljs:775 msgid "dashboard.webhooks.create.success" msgstr "Webhook creado con éxito." -#: src/app/main/ui/dashboard/team.cljs:882 msgid "dashboard.webhooks.description" msgstr "" "Los webhooks son una forma simple de permitir notificar a otros sitios web " "y aplicaciones cuando ocurren ciertos eventos en Penpot. Enviaremos una " "petición POST a cada una de las URLs que indiques." -#: src/app/main/ui/dashboard/team.cljs:1005 msgid "dashboard.webhooks.empty.add-one" msgstr "Pulsa el botón \"Crear webhook\" para añadir uno." -#: src/app/main/ui/dashboard/team.cljs:1004 msgid "dashboard.webhooks.empty.no-webhooks" msgstr "No hay ningún webhook aún." -#, unused msgid "dashboard.webhooks.update.success" msgstr "Webhook modificado con éxito." -#: src/app/main/ui/settings.cljs:31 +#: src/app/main/ui/settings.cljs msgid "dashboard.your-account-title" msgstr "Tu cuenta" -#: src/app/main/ui/settings/profile.cljs:70 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.your-email" msgstr "Correo" -#: src/app/main/ui/settings/profile.cljs:62 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.your-name" msgstr "Tu nombre" -#: src/app/main/ui/dashboard/file_menu.cljs:38, src/app/main/ui/dashboard/fonts.cljs:33, src/app/main/ui/dashboard/libraries.cljs:42, src/app/main/ui/dashboard/projects.cljs:318, src/app/main/ui/dashboard/search.cljs:30, src/app/main/ui/dashboard/sidebar.cljs:312, src/app/main/ui/dashboard/team.cljs:495, src/app/main/ui/dashboard/team.cljs:729, src/app/main/ui/dashboard/team.cljs:991, src/app/main/ui/dashboard/team.cljs:1038 +#: src/app/main/ui/dashboard/search.cljs, src/app/main/ui/dashboard/team.cljs, +#: src/app/main/ui/dashboard/libraries.cljs, +#: src/app/main/ui/dashboard/projects.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.your-penpot" msgstr "Tu Penpot" -#: src/app/main/ui/alert.cljs:32 +#: src/app/main/ui/alert.cljs msgid "ds.alert-ok" msgstr "Ok" -#: src/app/main/ui/alert.cljs:31, src/app/main/ui/alert.cljs:34 +#: src/app/main/ui/alert.cljs msgid "ds.alert-title" msgstr "Atención" -#: src/app/main/ui/confirm.cljs:83 +#: src/app/main/ui/confirm.cljs msgid "ds.component-subtitle" msgstr "Componentes a actualizar:" -#: src/app/main/ui/workspace/plugins.cljs:252 -msgid "ds.confirm-allow" -msgstr "Permitir" - -#: src/app/main/ui/confirm.cljs:36, src/app/main/ui/workspace/plugins.cljs:246 +#: src/app/main/ui/confirm.cljs msgid "ds.confirm-cancel" msgstr "Cancelar" -#: src/app/main/ui/confirm.cljs:37, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:141 +#: src/app/main/ui/confirm.cljs msgid "ds.confirm-ok" msgstr "Ok" -#: src/app/main/ui/confirm.cljs:35, src/app/main/ui/confirm.cljs:39 +msgid "ds.confirm-allow" +msgstr "Permitir" + +#: src/app/main/ui/confirm.cljs, src/app/main/ui/confirm.cljs msgid "ds.confirm-title" msgstr "¿Está Seguro?" -#: src/app/main/data/users.cljs:705 +#: src/app/main/data/users.cljs msgid "errors.auth-provider-not-allowed" msgstr "El proveedor de autenticación no permitido para este perfil de usuario" -#: src/app/main/ui/auth/login.cljs:62 +#: src/app/main/ui/auth/login.cljs msgid "errors.auth-provider-not-configured" msgstr "Proveedor de autenticación no configurado." -#: src/app/main/errors.cljs:104 msgid "errors.auth.unable-to-login" msgstr "Parece que no has iniciado sesión, o la sesión ha expirado." -#: src/app/main/data/fonts.cljs:189 msgid "errors.bad-font" msgstr "No se ha podido cargar la fuente %s" -#: src/app/main/data/fonts.cljs:188 msgid "errors.bad-font-plural" msgstr "No se han podido cargar las fuentes %s" -#: src/app/main/data/workspace/media.cljs:198 msgid "errors.cannot-upload" msgstr "No se puede cargar el archivo multimedia." -#: src/app/main/data/workspace.cljs:1598 +#: src/app/main/data/workspace.cljs msgid "errors.clipboard-not-implemented" msgstr "Tu navegador no puede realizar esta operación" -#: src/app/main/ui/auth/verify_token.cljs:82, src/app/main/ui/settings/change_email.cljs:46 +#: src/app/main/ui/auth/verify_token.cljs, +#: src/app/main/ui/settings/change_email.cljs msgid "errors.email-already-exists" msgstr "Este correo ya está en uso" -#: src/app/main/ui/auth/verify_token.cljs:87 +#: src/app/main/ui/auth/verify_token.cljs msgid "errors.email-already-validated" msgstr "Este correo ya está validado." -#: src/app/main/ui/settings/password.cljs:28 msgid "errors.email-as-password" msgstr "No puedes usar tu correo electrónico como contraseña" -#: src/app/main/data/users.cljs:707, src/app/main/ui/auth/register.cljs:63 +#: src/app/main/data/users.cljs msgid "errors.email-domain-not-allowed" msgstr "Dominio no permitido" -#: src/app/main/ui/auth/recovery_request.cljs:63, src/app/main/ui/dashboard/team.cljs:578, src/app/main/ui/settings/change_email.cljs:54 +#: src/app/main/ui/auth/register.cljs, +#: src/app/main/ui/auth/recovery_request.cljs, +#: src/app/main/ui/settings/change_email.cljs, +#: src/app/main/ui/dashboard/team.cljs msgid "errors.email-has-permanent-bounces" msgstr "El correo electrónico «%s» tiene varios reportes de rebote permanente." -#: src/app/main/ui/auth/login.cljs:81, src/app/main/ui/auth/recovery_request.cljs:31, src/app/main/ui/auth/register.cljs:43 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs, src/app/main/ui/auth/recovery_request.cljs msgid "errors.email-invalid" msgstr "Por favor, escribe un email válido" -#: src/app/main/ui/settings/change_email.cljs:35 +#: src/app/main/ui/settings/change_email.cljs msgid "errors.email-invalid-confirmation" msgstr "El correo de confirmación debe coincidir" -#: src/app/main/ui/dashboard/team.cljs:170 msgid "errors.email-spam-or-permanent-bounces" msgstr "El email «%s» tiene reportes de spam o de rebote permanente." -#: src/app/main/errors.cljs:227 +#: src/app/main/errors.cljs msgid "errors.feature-mismatch" msgstr "" "Parece que está abriendo un archivo que tiene la función '%s' habilitada, " "pero la versión actual de penpot no la admite o la tiene deshabilitada." -#: src/app/main/errors.cljs:231, src/app/main/errors.cljs:245 +#: src/app/main/errors.cljs msgid "errors.feature-not-supported" msgstr "Caracteristica no soportada: '%s'." -#: src/app/main/errors.cljs:223 +#: src/app/main/errors.cljs msgid "errors.file-feature-mismatch" msgstr "" "Parece que hay discordancia entre las features habilitadas y las features " "del fichero que se esta intentando abrir. Falta aplicar migraciones para " "'%s' antes de poder abrir el fichero." -#: src/app/main/data/users.cljs:709, src/app/main/ui/auth/login.cljs:65, src/app/main/ui/auth/login.cljs:116, src/app/main/ui/auth/register.cljs:69, src/app/main/ui/auth/register.cljs:237, src/app/main/ui/auth/verify_token.cljs:92, src/app/main/ui/dashboard/team.cljs:173, src/app/main/ui/onboarding/team_choice.cljs:95, src/app/main/ui/settings/access_tokens.cljs:91, src/app/main/ui/settings/feedback.cljs:52 +#: src/app/main/ui/auth/verify_token.cljs, +#: src/app/main/ui/settings/feedback.cljs, src/app/main/ui/dashboard/team.cljs msgid "errors.generic" msgstr "Ha ocurrido algún error." -#: src/app/main/ui/components/color_input.cljs:57 +#: src/app/main/ui/components/color_input.cljs msgid "errors.invalid-color" msgstr "Color no válido" -#: src/app/main/ui/static.cljs:43 +#: src/app/main/ui/auth/verify_token.cljs msgid "errors.invite-invalid" msgstr "Invitación inválida" -#: src/app/main/ui/static.cljs:44 msgid "errors.invite-invalid.info" msgstr "Esta invitación puede haber sido cancelada o ha expirado." -#: src/app/main/ui/auth/login.cljs:101 +#: src/app/main/ui/auth/login.cljs msgid "errors.ldap-disabled" msgstr "La autheticacion via LDAP esta deshabilitada." -#: src/app/main/errors.cljs:239 +#: src/app/main/errors.cljs msgid "errors.max-quote-reached" msgstr "Ha alcalzando el maximo de la quota '%s'. Contacte con soporte tecnico." -#: src/app/main/data/workspace/media.cljs:184 +#: src/app/main/data/workspace/persistence.cljs msgid "errors.media-too-large" msgstr "La imagen es demasiado grande." -#: src/app/main/data/media.cljs:68, src/app/main/data/workspace/media.cljs:187 +#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs msgid "errors.media-type-mismatch" msgstr "" "Parece que el contenido de la imagen no coincide con la extensión del " "archivo." -#: src/app/main/data/media.cljs:65, src/app/main/data/workspace/media.cljs:172, src/app/main/data/workspace/media.cljs:175, src/app/main/data/workspace/media.cljs:178, src/app/main/data/workspace/media.cljs:181 +#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs msgid "errors.media-type-not-allowed" msgstr "Parece que no es una imagen válida." -#: src/app/main/ui/dashboard/team.cljs:574 +#: src/app/main/ui/dashboard/team.cljs msgid "errors.member-is-muted" msgstr "" "El perfil que esta invitando tiene los emails silenciados (por reportes de " "spam o alto indice de rebote)." -#: src/app/main/ui/settings/password.cljs:61 +#: src/app/main/ui/settings/password.cljs msgid "errors.password-invalid-confirmation" msgstr "La contraseña de confirmación debe coincidir" -#: src/app/main/ui/settings/password.cljs:64 +#: src/app/main/ui/settings/password.cljs msgid "errors.password-too-short" msgstr "La contraseña debe tener 8 caracteres como mínimo" -#: src/app/main/errors.cljs:124 msgid "errors.paste-data-validation" msgstr "Datos inválidos en el portapapeles" -#: src/app/main/data/users.cljs:703, src/app/main/ui/auth/login.cljs:97, src/app/main/ui/auth/login.cljs:105 msgid "errors.profile-blocked" msgstr "El perfil esta blockeado" -#: src/app/main/ui/auth/recovery_request.cljs:60, src/app/main/ui/dashboard/team.cljs:164, src/app/main/ui/dashboard/team.cljs:570, src/app/main/ui/settings/change_email.cljs:50 +#: src/app/main/ui/auth/recovery_request.cljs, +#: src/app/main/ui/settings/change_email.cljs, +#: src/app/main/ui/dashboard/team.cljs msgid "errors.profile-is-muted" msgstr "" "Tu perfil tiene los emails silenciados (por reportes de spam o alto indice " "de rebote)." -#: src/app/main/data/users.cljs:701, src/app/main/ui/auth/register.cljs:60 +#: src/app/main/ui/auth/register.cljs msgid "errors.registration-disabled" msgstr "El registro está actualmente desactivado." -#: src/app/main/errors.cljs:218 +#: src/app/main/errors.cljs msgid "errors.team-feature-mismatch" msgstr "Detectada funcionalidad incompatible '%s'" -#: src/app/main/ui/dashboard/sidebar.cljs:365, src/app/main/ui/dashboard/team.cljs:359 msgid "errors.team-leave.insufficient-members" msgstr "" "No hay miembros suficientes para salir del equipo, probablemente quieras " "borrarlo." -#: src/app/main/ui/dashboard/sidebar.cljs:368, src/app/main/ui/dashboard/team.cljs:362 msgid "errors.team-leave.member-does-not-exists" msgstr "El integrante que intentas designar no existe." -#: src/app/main/ui/dashboard/sidebar.cljs:371, src/app/main/ui/dashboard/team.cljs:365 msgid "errors.team-leave.owner-cant-leave" msgstr "" "El propietario no puede salir del equipo, tienes que asignar la propiedad a " "otra persona." -#: src/app/main/data/media.cljs:71 +#: src/app/main/data/media.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, +#: src/app/main/ui/inspect/exports.cljs msgid "errors.unexpected-error" msgstr "Ha ocurrido un error inesperado." -#: src/app/main/ui/auth/verify_token.cljs:60 +#: src/app/main/ui/auth/verify_token.cljs msgid "errors.unexpected-token" msgstr "Token desconocido" -#, unused msgid "errors.validation" msgstr "Error de validación" -#: src/app/main/errors.cljs:235 +#: src/app/main/errors.cljs msgid "errors.version-not-supported" msgstr "El fichero tiene un número de versión incompatible" -#: src/app/main/ui/dashboard/team.cljs:796 msgid "errors.webhooks.connection" msgstr "Error de conexion, la url no es alcanzable" -#: src/app/main/ui/dashboard/team.cljs:790 msgid "errors.webhooks.invalid-uri" msgstr "La URL no pasa la validación." -#: src/app/main/ui/dashboard/team.cljs:949 msgid "errors.webhooks.last-delivery" msgstr "Hubo un problema en el último envío." -#: src/app/main/ui/dashboard/team.cljs:792, src/app/main/ui/dashboard/team.cljs:952 msgid "errors.webhooks.ssl-validation" msgstr "Error en la validación SSL." -#: src/app/main/ui/dashboard/team.cljs:794 msgid "errors.webhooks.timeout" msgstr "Timeout" -#: src/app/main/ui/dashboard/team.cljs:788 msgid "errors.webhooks.unexpected" msgstr "Error inesperado al validar" -#: src/app/main/ui/dashboard/team.cljs:798, src/app/main/ui/dashboard/team.cljs:955 msgid "errors.webhooks.unexpected-status" msgstr "Estado inesperado %s" -#: src/app/main/ui/auth/login.cljs:109, src/app/main/ui/auth/login.cljs:113 +#: src/app/main/ui/auth/login.cljs msgid "errors.wrong-credentials" msgstr "El email o la contraseña son incorrectos." -#: src/app/main/ui/settings/password.cljs:25 +#: src/app/main/ui/settings/password.cljs msgid "errors.wrong-old-password" msgstr "La contraseña anterior no es correcta" -#: src/app/main/ui/settings/feedback.cljs:77 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.description" msgstr "Descripción" -#: src/app/main/ui/settings/feedback.cljs:95 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.discourse-go-to" msgstr "Ir al foro de Penpot" -#: src/app/main/ui/settings/feedback.cljs:89 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.discourse-subtitle1" msgstr "" "Estamos encantados de tenerte por aquí. Si necesitas ayuda, busca, escribe " "o pregunta lo que necesites." -#: src/app/main/ui/settings/feedback.cljs:88 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.discourse-title" msgstr "Comunidad de Penpot" -#: src/app/main/ui/settings/feedback.cljs:72 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.subject" msgstr "Asunto" -#: src/app/main/ui/settings/feedback.cljs:69 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.subtitle" msgstr "" "Por favor describe el motivo de tu mensaje, especificando si es un " "problema, una idea o una duda. Alguien de nuestro equipo responderá tan " "pronto como sea posible." -#: src/app/main/ui/settings/feedback.cljs:68 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.title" msgstr "Correo electrónico" -#: src/app/main/ui/settings/feedback.cljs:105 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.twitter-go-to" msgstr "Ir a X" -#: src/app/main/ui/settings/feedback.cljs:99 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.twitter-subtitle1" msgstr "Cuenta habilitada para responder todas tus dudas técnicas." -#: src/app/main/ui/settings/feedback.cljs:98 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.twitter-title" msgstr "Cuenta de X para soporte" -#: src/app/main/ui/settings/password.cljs:30 +#: src/app/main/ui/settings/password.cljs msgid "generic.error" msgstr "Ha ocurrido un error" -#: src/app/main/ui/viewer/inspect/attributes/blur.cljs:26 +#: src/app/main/ui/inspect/attributes/blur.cljs msgid "inspect.attributes.blur" msgstr "Desenfocado" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:115 +#: src/app/main/ui/inspect/attributes/blur.cljs msgid "inspect.attributes.blur.value" msgstr "Valor" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:112 +#: src/app/main/ui/inspect/attributes/common.cljs msgid "inspect.attributes.color.hex" msgstr "HEX" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:114 +#: src/app/main/ui/inspect/attributes/common.cljs msgid "inspect.attributes.color.hsla" msgstr "HSLA" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:113 +#: src/app/main/ui/inspect/attributes/common.cljs msgid "inspect.attributes.color.rgba" msgstr "RGBA" -#: src/app/main/ui/viewer/inspect/attributes/fill.cljs:57 +#: src/app/main/ui/inspect/attributes/fill.cljs msgid "inspect.attributes.fill" msgstr "Relleno" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:99, src/app/main/ui/viewer/inspect/attributes/image.cljs:51 +#: src/app/main/ui/inspect/attributes/image.cljs msgid "inspect.attributes.image.download" msgstr "Descargar imagen original" -#: src/app/main/ui/viewer/inspect/attributes/image.cljs:39 +#: src/app/main/ui/inspect/attributes/image.cljs msgid "inspect.attributes.image.height" msgstr "Altura" -#: src/app/main/ui/viewer/inspect/attributes/image.cljs:32 +#: src/app/main/ui/inspect/attributes/image.cljs msgid "inspect.attributes.image.width" msgstr "Ancho" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout" msgstr "Estructura" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.height" msgstr "Altura" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.left" msgstr "Izquierda" -#: src/app/main/ui/inspect/attributes/layout.cljs, src/app/main/ui/inspect/attributes/layout.cljs -#, unused +#: src/app/main/ui/inspect/attributes/layout.cljs, +#: src/app/main/ui/inspect/attributes/layout.cljs msgid "inspect.attributes.layout.radius" msgstr "Radio" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.rotation" msgstr "Rotación" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.top" msgstr "Arriba" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.width" msgstr "Ancho" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:57 +#: src/app/main/ui/inspect/attributes/shadow.cljs msgid "inspect.attributes.shadow" msgstr "Sombra" -#: src/app/main/ui/viewer/inspect/attributes/geometry.cljs:40 +#: src/app/main/ui/inspect/attributes/layout.cljs msgid "inspect.attributes.size" msgstr "Tamaño y posición" -#: src/app/main/ui/viewer/inspect/attributes/stroke.cljs:52 +#: src/app/main/ui/inspect/attributes/stroke.cljs msgid "inspect.attributes.stroke" msgstr "Borde" -#, permanent, unused msgid "inspect.attributes.stroke.alignment.center" msgstr "Centro" -#, permanent, unused msgid "inspect.attributes.stroke.alignment.inner" msgstr "Interior" -#, permanent, unused msgid "inspect.attributes.stroke.alignment.outer" msgstr "Exterior" -#, unused msgid "inspect.attributes.stroke.style.dotted" msgstr "Punteado" -#, unused msgid "inspect.attributes.stroke.style.mixed" msgstr "Mixto" -#, unused msgid "inspect.attributes.stroke.style.none" msgstr "Ninguno" -#, unused msgid "inspect.attributes.stroke.style.solid" msgstr "Sólido" #: src/app/main/ui/inspect/attributes/stroke.cljs -#, unused msgid "inspect.attributes.stroke.width" msgstr "Ancho" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:81, src/app/main/ui/viewer/inspect/attributes/text.cljs:194 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography" msgstr "Tipografía" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:89 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.font-family" msgstr "Familia tipográfica" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:107 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.font-size" msgstr "Tamaño de fuente" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:98 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.font-style" msgstr "Estilo de fuente" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:116 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.font-weight" msgstr "Grosor de fuente" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:134 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.letter-spacing" msgstr "Espaciado de letras" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:125 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.line-height" msgstr "Interlineado" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:143 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.text-decoration" msgstr "Decoración de texto" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:145 msgid "inspect.attributes.typography.text-decoration.none" msgstr "Ninguna" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:146 msgid "inspect.attributes.typography.text-decoration.strikethrough" msgstr "Tachar" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:147 msgid "inspect.attributes.typography.text-decoration.underline" msgstr "Subrayar" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:156 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.text-transform" msgstr "Transformación de texto" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:158 msgid "inspect.attributes.typography.text-transform.lowercase" msgstr "Minúsculas" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:159 msgid "inspect.attributes.typography.text-transform.none" msgstr "Ninguna" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:160 msgid "inspect.attributes.typography.text-transform.titlecase" msgstr "Primera en mayúscula" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:162 msgid "inspect.attributes.typography.text-transform.unset" msgstr "Sin asignar" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:161 msgid "inspect.attributes.typography.text-transform.uppercase" msgstr "Mayúsculas" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:140 msgid "inspect.empty.help" msgstr "" "Si quieres saber más sobre la inspección puedes visitar el centro de ayuda " "de Penpot" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:143 msgid "inspect.empty.more-info" msgstr "Más información sobre la inspección" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:135 msgid "inspect.empty.select" msgstr "Elige una forma, tablero o grupo para inspeccionar sus propiedades y código" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:125 +#: src/app/main/ui/inspect/right_sidebar.cljs msgid "inspect.tabs.code" msgstr "Código" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:98 msgid "inspect.tabs.code.selected.circle" msgstr "Círculo" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:99 msgid "inspect.tabs.code.selected.component" msgstr "Componente" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:100 msgid "inspect.tabs.code.selected.curve" msgstr "Curva" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:101 msgid "inspect.tabs.code.selected.frame" msgstr "Mesa de trabajo" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:102 msgid "inspect.tabs.code.selected.group" msgstr "Grupo" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:103 msgid "inspect.tabs.code.selected.image" msgstr "Imagen" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:104 msgid "inspect.tabs.code.selected.mask" msgstr "Máscara" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:93 +#: src/app/main/ui/inspect/right_sidebar.cljs msgid "inspect.tabs.code.selected.multiple" msgstr "%s Seleccionado" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:105 msgid "inspect.tabs.code.selected.path" msgstr "Trazado" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:106 msgid "inspect.tabs.code.selected.rect" msgstr "Rectángulo" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:107 msgid "inspect.tabs.code.selected.svg-raw" msgstr "SVG" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:108 msgid "inspect.tabs.code.selected.text" msgstr "Texto" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:115 +#: src/app/main/ui/inspect/right_sidebar.cljs msgid "inspect.tabs.info" msgstr "Información" -#: src/app/main/ui/workspace/main_menu.cljs:158 +#: src/app/main/ui/workspace/header.cljs msgid "label.shortcuts" msgstr "Atajos de teclado" -#: src/app/main/ui/dashboard/import.cljs:527 msgid "labels.accept" msgstr "Aceptar" -#: src/app/main/ui/settings/sidebar.cljs:100 +#: src/app/main/ui/settings/sidebar.cljs msgid "labels.access-tokens" msgstr "Access tokens" -#: src/app/main/ui/dashboard/team.cljs:968 msgid "labels.active" msgstr "Activo" -#: src/app/main/ui/dashboard/fonts.cljs:175 msgid "labels.add-custom-font" msgstr "Añadir fuente personalizada" -#: src/app/main/ui/dashboard/team.cljs:120, src/app/main/ui/dashboard/team.cljs:276, src/app/main/ui/dashboard/team.cljs:519, src/app/main/ui/dashboard/team.cljs:549, src/app/main/ui/onboarding/team_choice.cljs:67 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs msgid "labels.admin" msgstr "Administración" -#: src/app/main/ui/onboarding/questions.cljs:174 -msgid "labels.adobe-xd" -msgstr "Adobe XD" - #: src/app/main/ui/workspace/comments.cljs -#, unused msgid "labels.all" msgstr "Todo" -#: src/app/main/ui/auth.cljs:37 msgid "labels.and" msgstr "y" -#: src/app/main/ui/onboarding/team_choice.cljs:162 msgid "labels.back" msgstr "Volver" -#: src/app/main/ui/static.cljs:59 +#: src/app/main/ui/static.cljs msgid "labels.bad-gateway.desc-message" msgstr "" "Parece que necesitas esperar un poco y volverlo a intentar; estamos " "realizando operaciones de mantenimiento en nuestros servidores." -#: src/app/main/ui/static.cljs:58 +#: src/app/main/ui/static.cljs msgid "labels.bad-gateway.main-message" msgstr "Error del servidor (Bad Gateway)" -#: src/app/main/data/common.cljs:112, src/app/main/ui/dashboard/change_owner.cljs:69, src/app/main/ui/dashboard/import.cljs:514, src/app/main/ui/dashboard/team.cljs:868, src/app/main/ui/delete_shared.cljs:35, src/app/main/ui/export.cljs:164, src/app/main/ui/export.cljs:460, src/app/main/ui/settings/access_tokens.cljs:188, src/app/main/ui/viewer/share_link.cljs:203, src/app/main/ui/workspace/sidebar/assets/groups.cljs:149 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.cancel" msgstr "Cancelar" -#: src/app/main/ui/onboarding/questions.cljs:176 -msgid "labels.canva" -msgstr "Canva" - -#: src/app/main/ui/dashboard/projects.cljs:93, src/app/main/ui/export.cljs:478, src/app/main/ui/settings/access_tokens.cljs:183, src/app/main/ui/viewer/login.cljs:77, src/app/main/ui/viewer/share_link.cljs:174, src/app/main/ui/workspace/libraries.cljs:522 msgid "labels.close" msgstr "Cerrar" -#: src/app/main/ui/dashboard/comments.cljs:104, src/app/main/ui/viewer/comments.cljs:70, src/app/main/ui/workspace/comments.cljs:126 +#: src/app/main/ui/dashboard/comments.cljs msgid "labels.comments" msgstr "Comentarios" -#: src/app/main/ui/dashboard/sidebar.cljs:985, src/app/main/ui/workspace/main_menu.cljs:110 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.community" msgstr "Comunidad" -#: src/app/main/ui/settings/password.cljs:103 +#: src/app/main/ui/settings/password.cljs msgid "labels.confirm-password" msgstr "Confirmar contraseña" -#: src/app/main/ui/dashboard/import.cljs:520, src/app/main/ui/export.cljs:465, src/app/main/ui/onboarding/newsletter.cljs:101 msgid "labels.continue" msgstr "Continuar" -#, unused msgid "labels.continue-with" msgstr "Continúa con" -#: src/app/main/ui/viewer/login.cljs:75 msgid "labels.continue-with-penpot" msgstr "Puedes continuar con una cuenta de Penpot" -#: src/app/main/ui/dashboard/team.cljs:642 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.copy-invitation-link" msgstr "Copiar enlace" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:157, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:190 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "labels.create" msgstr "Crear" -#: src/app/main/ui/dashboard/team_form.cljs:101, src/app/main/ui/dashboard/team_form.cljs:121 +#: src/app/main/ui/dashboard/team_form.cljs, +#: src/app/main/ui/dashboard/team_form.cljs msgid "labels.create-team" msgstr "Crea un nuevo equipo" -#: src/app/main/ui/dashboard/team_form.cljs:113 msgid "labels.create-team.placeholder" msgstr "Introduce un nuevo nombre de equipo" -#, unused msgid "labels.custom-fonts" msgstr "Fuentes personalizadas" -#: src/app/main/ui/settings/sidebar.cljs:73 +#: src/app/main/ui/settings/sidebar.cljs msgid "labels.dashboard" msgstr "Panel" -#: src/app/main/ui/dashboard/file_menu.cljs:306, src/app/main/ui/dashboard/fonts.cljs:255, src/app/main/ui/dashboard/fonts.cljs:332, src/app/main/ui/dashboard/fonts.cljs:346, src/app/main/ui/dashboard/project_menu.cljs:115, src/app/main/ui/dashboard/team.cljs:904, src/app/main/ui/settings/access_tokens.cljs:209, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:209 +#: src/app/main/ui/dashboard/project_menu.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.delete" msgstr "Borrar" -#: src/app/main/ui/comments.cljs:357 +#: src/app/main/ui/comments.cljs msgid "labels.delete-comment" msgstr "Eliminar comentario" -#: src/app/main/ui/comments.cljs:354 +#: src/app/main/ui/comments.cljs msgid "labels.delete-comment-thread" msgstr "Eliminar hilo" -#: src/app/main/ui/dashboard/team.cljs:648 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.delete-invitation" msgstr "Eliminar invitation" -#: src/app/main/ui/dashboard/file_menu.cljs:262 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.delete-multi-files" msgstr "Borrar %s archivos" -#: src/app/main/ui/onboarding/questions.cljs:250 -msgid "labels.developer" -msgstr "Desarrollo" - -#: src/app/main/ui/onboarding/questions.cljs:264 -msgid "labels.director" -msgstr "Director" - -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:199 msgid "labels.discard" msgstr "Descartar" -#: src/app/main/ui/dashboard/file_menu.cljs:28, src/app/main/ui/dashboard/files.cljs:72, src/app/main/ui/dashboard/files.cljs:156, src/app/main/ui/dashboard/projects.cljs:220, src/app/main/ui/dashboard/projects.cljs:224, src/app/main/ui/dashboard/sidebar.cljs:791 +#: src/app/main/ui/dashboard/projects.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs, +#: src/app/main/ui/dashboard/files.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.drafts" msgstr "Borradores" -#: src/app/main/ui/comments.cljs:350, src/app/main/ui/dashboard/fonts.cljs:252, src/app/main/ui/dashboard/team.cljs:902, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:205 +#: src/app/main/ui/comments.cljs msgid "labels.edit" msgstr "Editar" -#, unused +#: src/app/main/ui/viewer/header.cljs msgid "labels.edit-file" msgstr "Editar archivo" -#: src/app/main/ui/dashboard/team.cljs:118, src/app/main/ui/dashboard/team.cljs:279, src/app/main/ui/dashboard/team.cljs:520, src/app/main/ui/dashboard/team.cljs:553, src/app/main/ui/onboarding/team_choice.cljs:66 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs msgid "labels.editor" msgstr "Edición" -#: src/app/main/ui/dashboard/team.cljs:661 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.expired-invitation" msgstr "Expirada" -#: src/app/main/ui/export.cljs:173 msgid "labels.export" msgstr "Exportar" -#: src/app/main/ui/settings/feedback.cljs:51 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.feedback-disabled" msgstr "El modulo de recepción de opiniones esta deshabilitado" -#: src/app/main/ui/settings/feedback.cljs:42 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.feedback-sent" msgstr "Opinión enviada" -#: src/app/main/ui/onboarding/questions.cljs:170 -msgid "labels.figma" -msgstr "Figma" - -#: src/app/main/ui/dashboard/fonts.cljs:412 msgid "labels.font-family" msgstr "Familia de fuente" -#, unused msgid "labels.font-providers" msgstr "Proveedores de fuentes" -#: src/app/main/ui/dashboard/fonts.cljs:413 msgid "labels.font-variants" msgstr "Estilos" -#: src/app/main/ui/dashboard/fonts.cljs:52, src/app/main/ui/dashboard/sidebar.cljs:811 msgid "labels.fonts" msgstr "Fuentes" -#: src/app/main/ui/onboarding/questions.cljs:263 -msgid "labels.founder" -msgstr "CEO o Fundador" - -#: src/app/main/ui/onboarding/questions.cljs:262 -msgid "labels.freelancer" -msgstr "Autónomo" - -#: src/app/main/ui/dashboard/sidebar.cljs:1015, src/app/main/ui/workspace/main_menu.cljs:142 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.github-repo" msgstr "Repositorio de Github" -#: src/app/main/ui/dashboard/sidebar.cljs:1032, src/app/main/ui/settings/sidebar.cljs:113, src/app/main/ui/workspace/main_menu.cljs:171 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/settings/sidebar.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.give-feedback" msgstr "Danos tu opinión" -#: src/app/main/ui/auth/recovery_request.cljs:110, src/app/main/ui/auth/register.cljs:285, src/app/main/ui/viewer/login.cljs:117 msgid "labels.go-back" msgstr "Volver" -#: src/app/main/ui/onboarding/questions.cljs:252 -msgid "labels.graphic-design" -msgstr "Diseño gráfico" - -#: src/app/main/ui/dashboard/sidebar.cljs:978, src/app/main/ui/workspace/main_menu.cljs:102 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.help-center" msgstr "Centro de ayuda" -#: src/app/main/ui/viewer/comments.cljs:103, src/app/main/ui/workspace/comments.cljs:67 +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs msgid "labels.hide-resolved-comments" msgstr "Ocultar comentarios resueltos" -#: src/app/main/ui/dashboard/team.cljs:969 msgid "labels.inactive" msgstr "Inactivo" -#: src/app/main/ui/dashboard/fonts.cljs:410 msgid "labels.installed-fonts" msgstr "Fuentes instaladas" -#: src/app/main/ui/static.cljs:144 +#: src/app/main/ui/static.cljs msgid "labels.internal-error.desc-message" msgstr "" "Ha ocurrido algo extraño. Por favor, reintenta la operación, y si el " "problema persiste, contacta con el servicio técnico." -#: src/app/main/ui/static.cljs:143 +#: src/app/main/ui/static.cljs msgid "labels.internal-error.main-message" msgstr "Error interno" -#: src/app/main/ui/onboarding/questions.cljs:178 -msgid "labels.invision" -msgstr "InVision" - -#: src/app/main/ui/dashboard/sidebar.cljs:516, src/app/main/ui/dashboard/team.cljs:89, src/app/main/ui/dashboard/team.cljs:97, src/app/main/ui/dashboard/team.cljs:708 +#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.invitations" msgstr "Invitaciones" -#: src/app/main/ui/settings/options.cljs:51 +#: src/app/main/ui/settings/options.cljs msgid "labels.language" msgstr "Idioma" -#: src/app/main/ui/dashboard/sidebar.cljs:1008, src/app/main/ui/workspace/main_menu.cljs:134 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.libraries-and-templates" msgstr "Bibliotecas y Plantillas" -#: src/app/main/ui/viewer/header.cljs:203 msgid "labels.log-or-sign" msgstr "Entra o regístrate" -#: src/app/main/ui/dashboard/sidebar.cljs:1040 +#: src/app/main/ui/settings.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.logout" msgstr "Salir" -#: src/app/main/ui/onboarding/questions.cljs:253 -msgid "labels.marketing" -msgstr "Marketing" - -#: src/app/main/ui/dashboard/team.cljs:468 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.member" msgstr "Integrante" -#: src/app/main/ui/dashboard/sidebar.cljs:510, src/app/main/ui/dashboard/team.cljs:87, src/app/main/ui/dashboard/team.cljs:95 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.members" msgstr "Integrantes" -#: src/app/main/ui/settings/password.cljs:96 +#: src/app/main/ui/settings/password.cljs msgid "labels.new-password" msgstr "Nueva contraseña" -#: src/app/main/ui/dashboard/templates.cljs:269, src/app/main/ui/onboarding/questions.cljs:55 -msgid "labels.next" -msgstr "Siguiente" - -#: src/app/main/ui/dashboard/comments.cljs:128, src/app/main/ui/workspace/comments.cljs:161 +#: src/app/main/ui/workspace/comments.cljs, +#: src/app/main/ui/dashboard/comments.cljs msgid "labels.no-comments-available" msgstr "¡Ya estás al día! Nuevas notificaciones de comentarios aparecerán aquí." -#: src/app/main/ui/dashboard/team.cljs:694 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.no-invitations" msgstr "No hay invitaciones pendientes." -#: src/app/main/ui/dashboard/team.cljs:696 +#: src/app/main/ui/dashboard/team.cljs #, markdown msgid "labels.no-invitations-hint" msgstr "Pulsa el botón 'Invitar al equipo' para añadir más integrantes al equipo." -#: src/app/main/ui/static.cljs:50 +#: src/app/main/ui/static.cljs msgid "labels.not-found.desc-message" msgstr "Esta página no existe o no tienes permisos para verla." -#: src/app/main/ui/static.cljs:49 +#: src/app/main/ui/static.cljs msgid "labels.not-found.main-message" msgstr "¡Uy!" -#: src/app/main/ui/dashboard/projects.cljs:239, src/app/main/ui/dashboard/team.cljs:1095 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.num-of-files" msgid_plural "labels.num-of-files" msgstr[0] "1 archivo" msgstr[1] "%s archivos" -#: src/app/main/ui/viewer/thumbnails.cljs:80 msgid "labels.num-of-frames" msgid_plural "labels.num-of-frames" msgstr[0] "1 tablero" msgstr[1] "%s tableros" -#: src/app/main/ui/dashboard/team.cljs:1090 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.num-of-projects" msgid_plural "labels.num-of-projects" msgstr[0] "1 proyecto" msgstr[1] "%s proyectos" -#: src/app/main/ui/settings/password.cljs:89 +#: src/app/main/ui/settings/password.cljs msgid "labels.old-password" msgstr "Contraseña anterior" #: src/app/main/ui/workspace/comments.cljs -#, unused msgid "labels.only-yours" msgstr "Sólo los tuyos" -#, unused msgid "labels.or" msgstr "o" -#: src/app/main/ui/onboarding/questions.cljs:145, src/app/main/ui/onboarding/questions.cljs:214, src/app/main/ui/onboarding/questions.cljs:303, src/app/main/ui/onboarding/questions.cljs:316, src/app/main/ui/onboarding/questions.cljs:389, src/app/main/ui/onboarding/questions.cljs:447 -msgid "labels.other" -msgstr "Otra (especifica)" - -#: src/app/main/ui/onboarding/questions.cljs:105, src/app/main/ui/onboarding/questions.cljs:180, src/app/main/ui/onboarding/questions.cljs:255, src/app/main/ui/onboarding/questions.cljs:265, src/app/main/ui/onboarding/questions.cljs:357, src/app/main/ui/onboarding/questions.cljs:417 -msgid "labels.other-short" -msgstr "Otra" - -#: src/app/main/ui/dashboard/team.cljs:286, src/app/main/ui/dashboard/team.cljs:518, src/app/main/ui/dashboard/team.cljs:1076 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs msgid "labels.owner" msgstr "Propiedad" -#: src/app/main/ui/settings/sidebar.cljs:87 +#: src/app/main/ui/settings/sidebar.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.password" msgstr "Contraseña" -#: src/app/main/ui/dashboard/team.cljs:662 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.pending-invitation" msgstr "Pendiente" -#: src/app/main/ui/onboarding/questions.cljs:51 -msgid "labels.previous" -msgstr "Anterior" - -#: src/app/main/ui/onboarding/questions.cljs:249 -msgid "labels.product-design" -msgstr "Diseño de Producto o UX" - -#: src/app/main/ui/onboarding/questions.cljs:254 -msgid "labels.product-management" -msgstr "Product Managment" - -#: src/app/main/ui/settings/profile.cljs:118, src/app/main/ui/settings/sidebar.cljs:82 +#: src/app/main/ui/settings/sidebar.cljs msgid "labels.profile" msgstr "Perfil" -#: src/app/main/ui/dashboard/sidebar.cljs:784 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.projects" msgstr "Proyectos" -#: src/app/main/ui/dashboard/sidebar.cljs:998, src/app/main/ui/settings/sidebar.cljs:106, src/app/main/ui/workspace/main_menu.cljs:126 +#: src/app/main/ui/settings/sidebar.cljs msgid "labels.release-notes" msgstr "Notas de versión" #: src/app/main/ui/workspace.cljs -#, unused msgid "labels.reload-file" msgstr "Recargar archivo" -#: src/app/main/ui/workspace/libraries.cljs, src/app/main/ui/dashboard/team.cljs -#, unused +#: src/app/main/ui/workspace/libraries.cljs, +#: src/app/main/ui/dashboard/team.cljs msgid "labels.remove" msgstr "Quitar" -#: src/app/main/ui/dashboard/team.cljs:316 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.remove-member" msgstr "Eliminar integrante" -#: src/app/main/ui/dashboard/file_menu.cljs:271, src/app/main/ui/dashboard/project_menu.cljs:85, src/app/main/ui/dashboard/sidebar.cljs:539, src/app/main/ui/workspace/sidebar/assets/groups.cljs:157 +#: src/app/main/ui/dashboard/sidebar.cljs, +#: src/app/main/ui/dashboard/project_menu.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.rename" msgstr "Renombrar" -#: src/app/main/ui/dashboard/team_form.cljs:99 +#: src/app/main/ui/dashboard/team_form.cljs msgid "labels.rename-team" msgstr "Renombra el equipo" -#: src/app/main/ui/dashboard/team.cljs:645 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.resend-invitation" msgstr "Reenviar invitacion" -#: src/app/main/ui/static.cljs:61, src/app/main/ui/static.cljs:70, src/app/main/ui/static.cljs:148 +#: src/app/main/ui/static.cljs, src/app/main/ui/static.cljs msgid "labels.retry" msgstr "Reintentar" -#: src/app/main/ui/dashboard/team.cljs:469, src/app/main/ui/dashboard/team.cljs:709 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.role" msgstr "Rol" -#: src/app/main/ui/dashboard/fonts.cljs:380, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:191 msgid "labels.save" msgstr "Guardar" -#: src/app/main/ui/onboarding/questions.cljs:414, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:436 msgid "labels.search" msgstr "Buscar" -#: src/app/main/ui/dashboard/fonts.cljs:415 msgid "labels.search-font" msgstr "Buscar fuente" -#: src/app/main/ui/onboarding/questions.cljs:90, src/app/main/ui/onboarding/questions.cljs:248, src/app/main/ui/onboarding/questions.cljs:259, src/app/main/ui/onboarding/questions.cljs:270 -msgid "labels.select-option" -msgstr "Selecciona una opción" - -#: src/app/main/ui/settings/feedback.cljs:82 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.send" msgstr "Enviar" -#: src/app/main/ui/settings/feedback.cljs:82 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.sending" msgstr "Enviando…" -#: src/app/main/ui/static.cljs:68 +#: src/app/main/ui/static.cljs msgid "labels.service-unavailable.desc-message" msgstr "Estamos en una operación de mantenimiento programado de nuestros sistemas." -#: src/app/main/ui/static.cljs:67 +#: src/app/main/ui/static.cljs msgid "labels.service-unavailable.main-message" msgstr "El servicio no está disponible" -#: src/app/main/ui/dashboard/sidebar.cljs:530, src/app/main/ui/dashboard/team.cljs:88, src/app/main/ui/dashboard/team.cljs:102, src/app/main/ui/settings/options.cljs:84, src/app/main/ui/settings/sidebar.cljs:93 +#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.settings" msgstr "Configuración" -#: src/app/main/ui/viewer/header.cljs:199 msgid "labels.share" msgstr "Compartir" -#, unused +#: src/app/main/ui/viewer/header.cljs, src/app/main/ui/viewer/header.cljs msgid "labels.share-prototype" msgstr "Compartir prototipo" -#: src/app/main/ui/dashboard/sidebar.cljs:800 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.shared-libraries" msgstr "Bibliotecas" -#: src/app/main/ui/viewer/comments.cljs:82, src/app/main/ui/workspace/comments.cljs:55, src/app/main/ui/workspace/comments.cljs:135 +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs msgid "labels.show-all-comments" msgstr "Mostrar todos los comentarios" -#: src/app/main/ui/viewer/comments.cljs:115 msgid "labels.show-comments-list" msgstr "Mostrar lista de comentarios" -#: src/app/main/ui/viewer/comments.cljs:91, src/app/main/ui/workspace/comments.cljs:61, src/app/main/ui/workspace/comments.cljs:136 +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs msgid "labels.show-your-comments" msgstr "Mostrar sólo tus comentarios" -#: src/app/main/ui/onboarding/questions.cljs:172 -msgid "labels.sketch" -msgstr "Sketch" - -#: src/app/main/ui/onboarding/questions.cljs:56 -msgid "labels.start" -msgstr "Comenzar" - -#: src/app/main/ui/dashboard/team.cljs:710 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.status" msgstr "Status" -#: src/app/main/ui/onboarding/questions.cljs:251 -msgid "labels.student-teacher" -msgstr "Estudiante o profesorado" - -#: src/app/main/ui/onboarding/questions.cljs:260 -msgid "labels.team-leader" -msgstr "Líder de equipo" - -#: src/app/main/ui/onboarding/questions.cljs:261 -msgid "labels.team-member" -msgstr "Miembro de equipo" - -#: src/app/main/ui/dashboard/sidebar.cljs:992, src/app/main/ui/workspace/main_menu.cljs:118 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.tutorials" msgstr "Tutoriales" -#: src/app/main/ui/dashboard/file_menu.cljs:256 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.unpublish-multi-files" msgstr "Despublicar %s archivos" -#: src/app/main/ui/settings/profile.cljs:103 +#: src/app/main/ui/settings/profile.cljs msgid "labels.update" msgstr "Actualizar" -#: src/app/main/ui/dashboard/team_form.cljs:120 +#: src/app/main/ui/dashboard/team_form.cljs msgid "labels.update-team" msgstr "Actualiza el equipo" -#: src/app/main/ui/dashboard/fonts.cljs:241 msgid "labels.upload" msgstr "Cargar" -#: src/app/main/ui/dashboard/fonts.cljs:169 msgid "labels.upload-custom-fonts" msgstr "Cargar fuente" -#: src/app/main/ui/dashboard/fonts.cljs:240 msgid "labels.uploading" msgstr "Subiendo…" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs:223 msgid "labels.view-only" msgstr "Solo lectura" -#: src/app/main/ui/dashboard/team.cljs:123, src/app/main/ui/dashboard/team.cljs:282, src/app/main/ui/dashboard/team.cljs:521 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.viewer" msgstr "Visualizador" -#: src/app/main/ui/dashboard/sidebar.cljs:523, src/app/main/ui/dashboard/team.cljs:90, src/app/main/ui/dashboard/team.cljs:100, src/app/main/ui/dashboard/team.cljs:880 msgid "labels.webhooks" msgstr "Webhooks" -#: src/app/main/ui/comments.cljs:194 +#: src/app/main/ui/comments.cljs msgid "labels.write-new-comment" msgstr "Escribir un nuevo comentario" -#: src/app/main/ui/dashboard/team.cljs:237 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.you" msgstr "(tú)" -#: src/app/main/ui/dashboard/sidebar.cljs:968 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.your-account" msgstr "Tu cuenta" -#: src/app/main/ui/workspace/colorpicker.cljs:297, src/app/main/ui/workspace/colorpicker.cljs:298, src/app/main/ui/workspace/colorpicker.cljs:300 msgid "media.choose-image" msgstr "Elegir imagen" -#, unused msgid "media.gradient" msgstr "Gradiente" -#: src/app/main/data/workspace/media.cljs:275, src/app/main/ui/components/color_bullet.cljs:32, src/app/main/ui/components/color_bullet.cljs:45, src/app/main/ui/viewer/inspect/attributes/common.cljs:66, src/app/main/ui/workspace/colorpicker.cljs:211, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:237 msgid "media.image" msgstr "Imagen" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:77 msgid "media.image.short" msgstr "img" -#: src/app/main/ui/workspace/colorpicker.cljs:290 msgid "media.keep-aspect-ratio" msgstr "Mantener la proporción" -#: src/app/main/ui/workspace/colorpicker.cljs:208 msgid "media.linear" msgstr "Linear" -#: src/app/main/data/media.cljs:49, src/app/main/data/workspace/media.cljs:223, src/app/main/data/workspace/media.cljs:453 +#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs msgid "media.loading" msgstr "Cargando imagen…" -#: src/app/main/ui/workspace/colorpicker.cljs:209 msgid "media.radial" msgstr "Radial" -#: src/app/main/ui/workspace/colorpicker.cljs:206 msgid "media.solid" msgstr "Sólido" -#: src/app/main/data/common.cljs:111 msgid "modals.add-shared-confirm-empty.hint" msgstr "" "Tu biblioteca está vacía. Una vez que se agregue como Biblioteca " "Compartida, los recursos que crees estarán disponibles para ser utilizados " "entre el resto de tus archivos. ¿Estás seguro de que deseas publicarlo?" -#: src/app/main/data/common.cljs:113 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.add-shared-confirm.accept" msgstr "Añadir como Biblioteca Compartida" -#: src/app/main/data/common.cljs:111 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.add-shared-confirm.hint" msgstr "" "Una vez añadido como Biblioteca Compartida, los recursos de este archivo " "estarán disponibles para ser usado por el resto de tus archivos." -#: src/app/main/data/common.cljs:110 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.add-shared-confirm.message" msgstr "Añadir “%s” como Biblioteca Compartida" -#: src/app/main/ui/workspace/nudge.cljs:60 +#: src/app/main/ui/workspace/nudge.cljs msgid "modals.big-nudge" msgstr "Máximo" -#: src/app/main/ui/settings/change_email.cljs:127 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.confirm-email" msgstr "Verificar el nuevo correo" -#: src/app/main/ui/settings/change_email.cljs:114 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.info" msgstr "Enviaremos un mensaje a tu correo actual “%s” para verificar tu identidad." -#: src/app/main/ui/settings/change_email.cljs:119 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.new-email" msgstr "Nuevo correo" -#: src/app/main/ui/settings/change_email.cljs:136 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.submit" msgstr "Cambiar correo" -#: src/app/main/ui/settings/change_email.cljs:107 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.title" msgstr "Cambiar tu correo" -#: src/app/main/ui/settings/access_tokens.cljs:165, src/app/main/ui/settings/access_tokens.cljs:171 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.create-access-token.copy-token" msgstr "Copiar token" -#: src/app/main/ui/settings/access_tokens.cljs:142 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.create-access-token.expiration-date.label" msgstr "Fecha de expiración" -#: src/app/main/ui/settings/access_tokens.cljs:136 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.create-access-token.name.label" msgstr "Nombre" -#: src/app/main/ui/settings/access_tokens.cljs:138 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.create-access-token.name.placeholder" msgstr "El nombre te pude ayudar a saber para qué se utiliza el token" -#: src/app/main/ui/settings/access_tokens.cljs:191 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.create-access-token.submit-label" msgstr "Crear token" -#: src/app/main/ui/settings/access_tokens.cljs:123 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.create-access-token.title" msgstr "Generar access token" -#: src/app/main/ui/dashboard/team.cljs:873 msgid "modals.create-webhook.submit-label" msgstr "Crear webhook" -#: src/app/main/ui/dashboard/team.cljs:838 msgid "modals.create-webhook.title" msgstr "Crear webhook" -#: src/app/main/ui/dashboard/team.cljs:849 msgid "modals.create-webhook.url.label" msgstr "Payload URL" -#: src/app/main/ui/dashboard/team.cljs:850 msgid "modals.create-webhook.url.placeholder" msgstr "https://example.com/postreceive" -#: src/app/main/ui/settings/access_tokens.cljs:271 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.delete-acces-token.accept" msgstr "Borrar token" -#: src/app/main/ui/settings/access_tokens.cljs:270 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.delete-acces-token.message" msgstr "¿Seguro que deseas borrar este token?" -#: src/app/main/ui/settings/access_tokens.cljs:269 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.delete-acces-token.title" msgstr "Borrar token" -#: src/app/main/ui/settings/delete_account.cljs:59 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.cancel" msgstr "Cancelar y mantener mi cuenta" -#: src/app/main/ui/settings/delete_account.cljs:64 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.confirm" msgstr "Si, borrar mi cuenta" -#: src/app/main/ui/settings/delete_account.cljs:53 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.info" msgstr "Si borras tu cuenta perderás todos tus proyectos y archivos." -#: src/app/main/ui/settings/delete_account.cljs:46 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.title" msgstr "¿Seguro que quieres borrar tu cuenta?" -#: src/app/main/ui/comments.cljs:298 +#: src/app/main/ui/comments.cljs msgid "modals.delete-comment-thread.accept" msgstr "Eliminar conversación" -#: src/app/main/ui/comments.cljs:297 +#: src/app/main/ui/comments.cljs msgid "modals.delete-comment-thread.message" msgstr "" "¿Seguro que quieres eliminar esta conversación? Todos los comentarios en " "este hilo serán eliminados." -#: src/app/main/ui/comments.cljs:296 +#: src/app/main/ui/comments.cljs msgid "modals.delete-comment-thread.title" msgstr "Eliminar conversación" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:140 msgid "modals.delete-component-annotation.message" msgstr "¿Seguro que quieres borrar esta nota?" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:139 msgid "modals.delete-component-annotation.title" msgstr "Borrar nota" -#: src/app/main/ui/dashboard/file_menu.cljs:123 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-confirm.accept" msgstr "Borrar archivo" -#: src/app/main/ui/dashboard/file_menu.cljs:122 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-confirm.message" msgstr "¿Seguro que quieres borrar este archivo?" -#: src/app/main/ui/dashboard/file_menu.cljs:121 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-confirm.title" msgstr "Borrando archivo" -#: src/app/main/ui/dashboard/file_menu.cljs:117 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-multi-confirm.accept" msgstr "Borrar archivos" -#: src/app/main/ui/dashboard/file_menu.cljs:116 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-multi-confirm.message" msgstr "¿Seguro que quieres borrar %s archivos?" -#: src/app/main/ui/dashboard/file_menu.cljs:115 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-multi-confirm.title" msgstr "Borrando %s archivos" -#: src/app/main/ui/dashboard/fonts.cljs:345 msgid "modals.delete-font-variant.message" msgstr "" "Estas seguro de querer eliminar esta estilo de fuente? Dejara de cargar si " "es usada en algun fichero." -#: src/app/main/ui/dashboard/fonts.cljs:344 msgid "modals.delete-font-variant.title" msgstr "Eliminando estilo de fuente" -#: src/app/main/ui/dashboard/fonts.cljs:331 msgid "modals.delete-font.message" msgstr "" "¿Seguro que quieres eliminar esta fuente? Si está siendo usada en algún " "fichero no se cargará." -#: src/app/main/ui/dashboard/fonts.cljs:330 msgid "modals.delete-font.title" msgstr "Eliminando fuente" -#: src/app/main/ui/workspace/context_menu.cljs:522, src/app/main/ui/workspace/sidebar/sitemap.cljs:45 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs msgid "modals.delete-page.body" msgstr "¿Seguro que quieres borrar esta página?" -#: src/app/main/ui/workspace/context_menu.cljs:521, src/app/main/ui/workspace/sidebar/sitemap.cljs:44 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs msgid "modals.delete-page.title" msgstr "Borrar página" -#: src/app/main/ui/dashboard/project_menu.cljs:69 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "modals.delete-project-confirm.accept" msgstr "Eliminar proyecto" -#: src/app/main/ui/dashboard/project_menu.cljs:68 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "modals.delete-project-confirm.message" msgstr "¿Seguro que quieres eliminar este proyecto?" -#: src/app/main/ui/dashboard/project_menu.cljs:67 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "modals.delete-project-confirm.title" msgstr "Eliminar proyecto" -#: src/app/main/ui/delete_shared.cljs:51 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.accept" msgid_plural "modals.delete-shared-confirm.accept" msgstr[0] "Borrar archivo" msgstr[1] "Borrar archivos" -#: src/app/main/ui/delete_shared.cljs:55 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.activated.no-files-message" msgid_plural "modals.delete-shared-confirm.activated.no-files-message" msgstr[0] "No está activa en ningún fichero." msgstr[1] "No están activas en ningún fichero." -#: src/app/main/ui/delete_shared.cljs:57 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.activated.scd-message" msgid_plural "modals.delete-shared-confirm.activated.scd-message" msgstr[0] "Esta biblioteca está activa aquí: " msgstr[1] "Estas bibliotecas están activas aquí: " -#: src/app/main/ui/delete_shared.cljs:46 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.message" msgid_plural "modals.delete-shared-confirm.message" msgstr[0] "¿Seguro que quieres borrar este archivo?" msgstr[1] "¿Seguro que quieres borrar estos archivos?" -#: src/app/main/ui/delete_shared.cljs:41 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.title" msgid_plural "modals.delete-shared-confirm.title" msgstr[0] "Borrando archivo" msgstr[1] "Borrando archivos" -#: src/app/main/ui/dashboard/sidebar.cljs:435 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.delete-team-confirm.accept" msgstr "Eliminar equipo" -#: src/app/main/ui/dashboard/sidebar.cljs:434 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.delete-team-confirm.message" msgstr "" "¿Seguro que quieres eliminar este equipo? Todos los proyectos y archivos " "asociados con el equipo serán eliminados permamentemente." -#: src/app/main/ui/dashboard/sidebar.cljs:433 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.delete-team-confirm.title" msgstr "Eliminando equipo" -#: src/app/main/ui/dashboard/team.cljs:427 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.delete-team-member-confirm.accept" msgstr "Eliminando miembro" -#: src/app/main/ui/dashboard/team.cljs:426 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.delete-team-member-confirm.message" msgstr "¿Seguro que quieres eliminar este integrante del equipo?" -#: src/app/main/ui/dashboard/team.cljs:425 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.delete-team-member-confirm.title" msgstr "Eliminar integrante del equipo" -#: src/app/main/ui/delete_shared.cljs:59 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-unpublish-shared-confirm.activated.hint" msgid_plural "modals.delete-unpublish-shared-confirm.activated.hint" msgstr[0] "" @@ -2323,3641 +2080,3341 @@ msgstr[1] "" "Los elementos que hayan sido utilizados en esos archivos permanecerán allí " "(¡ningún diseño se romperá!)." -#: src/app/main/ui/dashboard/team.cljs:942 msgid "modals.delete-webhook.accept" msgstr "Borrar webhook" -#: src/app/main/ui/dashboard/team.cljs:941 msgid "modals.delete-webhook.message" msgstr "¿Seguro que quieres borrar este webhook?" -#: src/app/main/ui/dashboard/team.cljs:940 msgid "modals.delete-webhook.title" msgstr "Borrando webhook" -#: src/app/main/ui/dashboard/team.cljs:872 msgid "modals.edit-webhook.submit-label" msgstr "Modificar webhook" -#: src/app/main/ui/dashboard/team.cljs:837 msgid "modals.edit-webhook.title" msgstr "Modificar webhook" -#: src/app/main/ui/dashboard/team.cljs:218 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.invite-member-confirm.accept" msgstr "Enviar invitacion" -#: src/app/main/ui/dashboard/team.cljs:213, src/app/main/ui/onboarding/team_choice.cljs:156 msgid "modals.invite-member.emails" msgstr "Emails, separados por coma" -#: src/app/main/ui/dashboard/team.cljs:197 msgid "modals.invite-member.repeated-invitation" msgstr "" "Algunas direcciones de correo ya se encuentran entre los miembros. Estas " "invitaciones no serán enviadas." -#: src/app/main/ui/dashboard/team.cljs:190 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.invite-team-member.title" msgstr "Invitar a miembros al equipo" -#: src/app/main/ui/dashboard/sidebar.cljs:423, src/app/main/ui/dashboard/team.cljs:393 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-close-confirm.hint" msgstr "" "Al ser la única persona integrante de este equipo, el equipo será eliminado " "junto con sus proyectos y archivos." -#: src/app/main/ui/dashboard/sidebar.cljs:422, src/app/main/ui/dashboard/team.cljs:392 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-close-confirm.message" msgstr "¿Seguro que quieres abandonar el equipo %s?" -#: src/app/main/ui/dashboard/change_owner.cljs:59 msgid "modals.leave-and-reassign.forbidden" msgstr "" "No puede abandonar el equipo si no hay otro miembro al que promocionar a " "dueño. Quizás quiere borrar el equipo." -#: src/app/main/ui/dashboard/change_owner.cljs:55 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-reassign.hint1" msgstr "" "Tienes la propiedad de este equipo. Por favor selecciona otra persona " "integrante para promover al rol Propiedad." -#: src/app/main/ui/dashboard/change_owner.cljs:78 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-reassign.promote-and-leave" msgstr "Promocionar y abandonar" -#: src/app/main/ui/dashboard/change_owner.cljs:34 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-reassign.select-member-to-promote" msgstr "Selecciona un miembro a promocionar" -#: src/app/main/ui/dashboard/change_owner.cljs:49 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-reassign.title" msgstr "Antes de que abandones" -#: src/app/main/ui/dashboard/sidebar.cljs:402, src/app/main/ui/dashboard/sidebar.cljs:424, src/app/main/ui/dashboard/team.cljs:394, src/app/main/ui/dashboard/team.cljs:416 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-confirm.accept" msgstr "Abandonar el equipo" -#: src/app/main/ui/dashboard/sidebar.cljs:401, src/app/main/ui/dashboard/team.cljs:415 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-confirm.message" msgstr "¿Seguro que quieres abandonar este equipo?" -#: src/app/main/ui/dashboard/sidebar.cljs:400, src/app/main/ui/dashboard/sidebar.cljs:421, src/app/main/ui/dashboard/team.cljs:391, src/app/main/ui/dashboard/team.cljs:414 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-confirm.title" msgstr "Abandonando el equipo" -#: src/app/main/ui/delete_shared.cljs:53 msgid "modals.move-shared-confirm.accept" msgid_plural "modals.move-shared-confirm.accept" msgstr[0] "Mover" msgstr[1] "Mover" -#: src/app/main/ui/delete_shared.cljs:48 msgid "modals.move-shared-confirm.message" msgid_plural "modals.move-shared-confirm.message" msgstr[0] "¿Seguro que quieres mover esta biblioteca?" msgstr[1] "¿Seguro que quieres mover estas bibliotecas?" -#: src/app/main/ui/delete_shared.cljs:43 msgid "modals.move-shared-confirm.title" msgid_plural "modals.move-shared-confirm.title" msgstr[0] "Mover biblioteca" msgstr[1] "Mover bibliotecas" -#: src/app/main/ui/workspace/main_menu.cljs:266, src/app/main/ui/workspace/nudge.cljs:47 +#: src/app/main/ui/workspace/nudge.cljs msgid "modals.nudge-title" msgstr "Desplazamiento" -#: src/app/main/ui/dashboard/team.cljs:340 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.accept" msgstr "Transferir propiedad" -#: src/app/main/ui/dashboard/team.cljs:339 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.hint" msgstr "" "Si transfieres la propiedad, tu rol cambiará a Administración, perdiendo " "algunos permisos sobre este equipo. " -#: src/app/main/ui/dashboard/team.cljs:338 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.message" msgstr "" "Tienes la propiedad de este equipo. ¿Seguro que quieres transferir la " "propiedad del equipo a %s?" -#: src/app/main/ui/dashboard/team.cljs:337 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.title" msgstr "Nueva propiedad del equipo" -#: src/app/main/ui/workspace/libraries.cljs:188 msgid "modals.publish-empty-library.accept" msgstr "Publicar" -#: src/app/main/ui/workspace/libraries.cljs:187 msgid "modals.publish-empty-library.message" msgstr "Tu biblioteca está vacía. ¿Seguro que quieres publicarla?" -#: src/app/main/ui/workspace/libraries.cljs:186 msgid "modals.publish-empty-library.title" msgstr "Publicar biblioteca vacía" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.remove-shared-confirm.accept" msgstr "Eliminar como Biblioteca Compartida" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.remove-shared-confirm.hint" msgstr "" "Una vez eliminado como Biblioteca Compartida, la Biblioteca de este archivo " "dejará de estar disponible para ser usada por el resto de tus archivos." -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.remove-shared-confirm.message" msgstr "Añadir “%s” como Biblioteca Compartida" -#: src/app/main/ui/workspace/nudge.cljs:53 +#: src/app/main/ui/workspace/nudge.cljs msgid "modals.small-nudge" msgstr "Mínimo" -#: src/app/main/ui/delete_shared.cljs:52 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.unpublish-shared-confirm.accept" msgid_plural "modals.unpublish-shared-confirm.accept" msgstr[0] "Despublicar" msgstr[1] "Despublicar" -#: src/app/main/ui/delete_shared.cljs:47 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.unpublish-shared-confirm.message" msgid_plural "modals.unpublish-shared-confirm.message" msgstr[0] "¿Seguro que quieres despublicar esta biblioteca?" msgstr[1] "¿Seguro que quieres despublicar estas bibliotecas?" -#: src/app/main/ui/delete_shared.cljs:42 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.unpublish-shared-confirm.title" msgid_plural "modals.unpublish-shared-confirm.title" msgstr[0] "Despublicar biblioteca" msgstr[1] "Despublicar bibliotecas" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component-in-bulk.hint" msgstr "" "Vas a actualizar componentes en una biblioteca compartida. Esto puede " "afectar a otros archivos que la usen." -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component-in-bulk.message" msgstr "Actualizar componentes en biblioteca" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:380 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.accept" msgstr "Actualizar" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:379 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.cancel" msgstr "Cancelar" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:378 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.hint" msgstr "" "Vas a actualizar un componente en una biblioteca compartida. Esto puede " "afectar a otros archivos que la usen." -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:377 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.message" msgstr "Actualizar un componente en biblioteca" -#: src/app/main/data/common.cljs:71 +#: src/app/main/data/common.cljs msgid "notifications.by-code.upgrade-version" msgstr "Una nueva versión está disponible, por favor actualiza la página" -#: src/app/main/ui/dashboard/team.cljs:154, src/app/main/ui/dashboard/team.cljs:595 +#: src/app/main/ui/dashboard/team.cljs msgid "notifications.invitation-email-sent" msgstr "Invitación enviada con éxito" -#: src/app/main/ui/dashboard/team.cljs:616 +#: src/app/main/ui/dashboard/team.cljs msgid "notifications.invitation-link-copied" msgstr "Enlace de invitacion copiado" -#: src/app/main/ui/settings/delete_account.cljs:24 +#: src/app/main/ui/settings/delete_account.cljs msgid "notifications.profile-deletion-not-allowed" msgstr "No puedes borrar tu perfil. Reasigna tus equipos antes de seguir." -#: src/app/main/ui/settings/options.cljs:29, src/app/main/ui/settings/profile.cljs:35 +#: src/app/main/ui/settings/profile.cljs, src/app/main/ui/settings/options.cljs msgid "notifications.profile-saved" msgstr "Perfil guardado correctamente!" -#: src/app/main/ui/settings/change_email.cljs:63 +#: src/app/main/ui/settings/change_email.cljs msgid "notifications.validation-email-sent" msgstr "Verificación de email enviada a %s. Comprueba tu correo." -#, unused msgid "onboarding-v2.before-start.desc1" msgstr "" "Hay multitud de recursos disponibles para ayudarte a comenzar con Penpot, " "como son la Guía de usuario y nuestro canal de Youtube." -#, unused msgid "onboarding-v2.before-start.desc2" msgstr "" "Información detallada sobre cómo usar Penpot. Desde prototipar a organizar " "y compartir diseños." -#, unused msgid "onboarding-v2.before-start.desc2.title" msgstr "Guía de usuario" -#, unused msgid "onboarding-v2.before-start.desc3" msgstr "Puedes ver nuestros tutoriales y los hechos por la comunidad." -#, unused msgid "onboarding-v2.before-start.desc3.title" msgstr "Tutoriales de video" -#, unused msgid "onboarding-v2.before-start.title" msgstr "Antes de comenzar" -#: src/app/main/ui/onboarding/newsletter.cljs:63 msgid "onboarding-v2.newsletter.desc" msgstr "" "Suscríbete a la newsletter de Penpot para estar al día de los progresos del " "producto y noticias." -#: src/app/main/ui/onboarding/newsletter.cljs:83 msgid "onboarding-v2.newsletter.news" msgstr "" "Quiero recibir noticias sobre Penpot (artículos del blog, vídeo tutoriales, " "directos...)." -#: src/app/main/ui/onboarding/newsletter.cljs:91 msgid "onboarding-v2.newsletter.privacy1" msgstr "Nos importa la privacidad, aquí puedes leer nuestra " -#: src/app/main/ui/onboarding/newsletter.cljs:97 msgid "onboarding-v2.newsletter.privacy2" msgstr "" "Sólo te enviaremos emails relevantes para ti. Puedes desuscribirte en " "cualquier momento usando el vínculo de desuscripción en cualquiera de " "nuestras newsletters." -#: src/app/main/ui/onboarding/newsletter.cljs:71 msgid "onboarding-v2.newsletter.updates" msgstr "" "Quiero recibir información sobre actualizaciones del producto (nuevas " "funcionalidades, releases, mejoras...)." -#, unused msgid "onboarding-v2.welcome.desc1" msgstr "" "Penpot es Código Abierto y está hecho por Kaleidos y la comunidad, donde ya " "hay mucha gente ayudándose unos a otros. Formas de colaborar:" -#, unused msgid "onboarding-v2.welcome.desc2" msgstr "" "Un espacio público donde aprender, compatir y discutir sobre el presente y " "futuro con toda la Comunidad y el equipo de Penpot." -#, unused msgid "onboarding-v2.welcome.desc2.title" msgstr "Participando en la Comunidad" -#, unused msgid "onboarding-v2.welcome.desc3" msgstr "" "Aquí encontrarás cómo colaborar con traducciones, solicitar " "funcionalidades, contribuir en el código, cazar errores…" -#, unused msgid "onboarding-v2.welcome.desc3.title" msgstr "Guía de contribución" -#: src/app/main/ui/onboarding/team_choice.cljs:31 msgid "onboarding-v2.welcome.title" msgstr "¡Te damos la bienvenida a Penpot!" -#: src/app/main/ui/onboarding/team_choice.cljs:229 msgid "onboarding.choice.team-up.continue-creating-team" msgstr "Continuar creando equipo" -#: src/app/main/ui/onboarding/team_choice.cljs:239 msgid "onboarding.choice.team-up.continue-without-a-team" msgstr "Seguir sin equipo" -#: src/app/main/ui/onboarding/team_choice.cljs:167 msgid "onboarding.choice.team-up.create-team-and-invite" msgstr "Crear equipo e invitar" -#, unused msgid "onboarding.choice.team-up.create-team-and-send-invites" msgstr "Crear equipo y enviar invitaciones" -#: src/app/main/ui/onboarding/team_choice.cljs:170 msgid "onboarding.choice.team-up.create-team-and-send-invites-description" msgstr "Podrás enviar invitaciones después" -#: src/app/main/ui/onboarding/team_choice.cljs:215 msgid "onboarding.choice.team-up.create-team-desc" msgstr "Tras nombrar tu equipo podrás invitar a personas para que se unan." -#: src/app/main/ui/onboarding/team_choice.cljs:224 msgid "onboarding.choice.team-up.create-team-placeholder" msgstr "Introduce el nombre del equipo" -#: src/app/main/ui/onboarding/team_choice.cljs:168 msgid "onboarding.choice.team-up.create-team-without-invite" msgstr "Crear equipo" -#, unused msgid "onboarding.choice.team-up.create-team-without-inviting" msgstr "Crear equipo sin invitar" -#: src/app/main/ui/dashboard/projects.cljs:89, src/app/main/ui/onboarding/team_choice.cljs:140 msgid "onboarding.choice.team-up.invite-members" msgstr "Invitar integrantes" -#: src/app/main/ui/onboarding/team_choice.cljs:141 msgid "onboarding.choice.team-up.invite-members-info" msgstr "" "No olvides incluir personas de desarrollo, diseño, gestión… la diversidad " "suma :)" -#: src/app/main/ui/dashboard/team.cljs:202, src/app/main/ui/onboarding/team_choice.cljs:146 msgid "onboarding.choice.team-up.roles" msgstr "Invitar con el rol:" -#: src/app/main/ui/onboarding/team_choice.cljs:232 msgid "onboarding.choice.team-up.start-without-a-team" msgstr "Comenzar sin equipo" -#: src/app/main/ui/onboarding/team_choice.cljs:234 msgid "onboarding.choice.team-up.start-without-a-team-description" msgstr "Podrás crear un equipo después." -#, unused msgid "onboarding.newsletter.accept" msgstr "Si, suscribirme" -#: src/app/main/ui/onboarding/newsletter.cljs:40 msgid "onboarding.newsletter.acceptance-message" msgstr "" "Tu solicitud de suscripción ha sido enviada, te haremos una confirmación a " "tu email." -#: src/app/main/ui/onboarding/newsletter.cljs:95 msgid "onboarding.newsletter.policy" msgstr "Política de Privacidad." -#: src/app/main/ui/onboarding/newsletter.cljs:60 msgid "onboarding.newsletter.title" msgstr "¿Quieres recibir noticias sobre Penpot?" -#: src/app/main/ui/onboarding/questions.cljs:118 -msgid "onboarding.questions.lets-get-started" -msgstr "¡Empecemos!" - -#: src/app/main/ui/onboarding/questions.cljs:99 -msgid "onboarding.questions.reasons.alternative" -msgstr "Buscar una alternativa a Figma, XD, etc." - -#: src/app/main/ui/onboarding/questions.cljs:93 -msgid "onboarding.questions.reasons.exploring" -msgstr "Estoy echando un vistazo" - -#: src/app/main/ui/onboarding/questions.cljs:96 -msgid "onboarding.questions.reasons.fit" -msgstr "Averiguar si Penpot es una buena opción para mi equipo" - -#: src/app/main/ui/onboarding/questions.cljs:102 -msgid "onboarding.questions.reasons.testing" -msgstr "Probar antes de self-hosting" - -#: src/app/main/ui/onboarding/questions.cljs:355 -msgid "onboarding.questions.start-with.code" -msgstr "Generando código a partir de diseños" - -#: src/app/main/ui/onboarding/questions.cljs:353 -msgid "onboarding.questions.start-with.ds" -msgstr "Creando sistemas de diseño" - -#: src/app/main/ui/onboarding/questions.cljs:351 -msgid "onboarding.questions.start-with.prototyping" -msgstr "Prototipado" - -#: src/app/main/ui/onboarding/questions.cljs:347 -msgid "onboarding.questions.start-with.ui" -msgstr "Diseñando el UX/UI de una aplicación" - -#: src/app/main/ui/onboarding/questions.cljs:349 -msgid "onboarding.questions.start-with.wireframing" -msgstr "Wireframing" - -#: src/app/main/ui/onboarding/questions.cljs:126 -msgid "onboarding.questions.step1.question1" -msgstr "¿Para qué utilizarás Penpot?" - -#: src/app/main/ui/onboarding/questions.cljs:133 -msgid "onboarding.questions.step1.question2" -msgstr "¿Qué te ha traído a Penpot?" - -#: src/app/main/ui/onboarding/questions.cljs:122 -msgid "onboarding.questions.step1.subtitle" -msgstr "" -"Cuéntanos un poco sobre tí para ayudarnos a que Penpot se adapte mejor a " -"tí. Tus respuestas nos ayudarán a priorizar nuevas funcionalidades y a " -"saber cómo podemos acompañarte mejor." - -#: src/app/main/ui/onboarding/questions.cljs:120 -msgid "onboarding.questions.step1.title" -msgstr "Ayúdanos a conocerte" - -#: src/app/main/ui/onboarding/questions.cljs:201 -msgid "onboarding.questions.step2.title" -msgstr "¿Cuál de estas herramientas utilizas más?" - -#: src/app/main/ui/onboarding/questions.cljs:294 -msgid "onboarding.questions.step3.question1" -msgstr "¿Qué tipo de trabajo haces?" - -#: src/app/main/ui/onboarding/questions.cljs:307 -msgid "onboarding.questions.step3.question2" -msgstr "¿Cuál es tu puesto?" - -#: src/app/main/ui/onboarding/questions.cljs:320 -msgid "onboarding.questions.step3.question3" -msgstr "¿Cuál es el tamaño de tu empresa?" - -#: src/app/main/ui/onboarding/questions.cljs:292 -msgid "onboarding.questions.step3.title" -msgstr "Háblanos de tu trabajo" - -#: src/app/main/ui/onboarding/questions.cljs:376 -msgid "onboarding.questions.step4.title" -msgstr "¿Por dónde te apetecería empezar?" - -#: src/app/main/ui/onboarding/questions.cljs:437 -msgid "onboarding.questions.step5.title" -msgstr "¿Cómo nos has descubierto?" - -#: src/app/main/ui/onboarding/questions.cljs:273 -msgid "onboarding.questions.team-size.11-30" -msgstr "11-30" - -#: src/app/main/ui/onboarding/questions.cljs:274 -msgid "onboarding.questions.team-size.2-10" -msgstr "2-10" - -#: src/app/main/ui/onboarding/questions.cljs:272 -msgid "onboarding.questions.team-size.31-50" -msgstr "31-50" - -#: src/app/main/ui/onboarding/questions.cljs:275 -msgid "onboarding.questions.team-size.freelancer" -msgstr "Soy autónomo" - -#: src/app/main/ui/onboarding/questions.cljs:271 -msgid "onboarding.questions.team-size.more-than-50" -msgstr "Más de 50" - -#: src/app/main/ui/onboarding/questions.cljs:276 -msgid "onboarding.questions.team-size.personal-project" -msgstr "Estoy trabajando en un proyecto personal" - -#: src/app/main/ui/onboarding/questions.cljs:85 -msgid "onboarding.questions.use.education" -msgstr "Educación" - -#: src/app/main/ui/onboarding/questions.cljs:86 -msgid "onboarding.questions.use.personal" -msgstr "Personal" - -#: src/app/main/ui/onboarding/questions.cljs:84 -msgid "onboarding.questions.use.work" -msgstr "Trabajo" - -#: src/app/main/ui/onboarding/team_choice.cljs:213 msgid "onboarding.team-modal.create-team" msgstr "Crea un equipo" -#: src/app/main/ui/onboarding/team_choice.cljs:35 msgid "onboarding.team-modal.create-team-desc" msgstr "" "Un equipo permite colaborar en Penpot trabajando en los mismos archivos y " "proyectos." -#: src/app/main/ui/onboarding/team_choice.cljs:40 msgid "onboarding.team-modal.create-team-feature-1" msgstr "Archivos y proyectos ilimitados" -#: src/app/main/ui/onboarding/team_choice.cljs:44 msgid "onboarding.team-modal.create-team-feature-2" msgstr "Edición multijugador" -#: src/app/main/ui/onboarding/team_choice.cljs:48 msgid "onboarding.team-modal.create-team-feature-3" msgstr "Gestión de roles" -#: src/app/main/ui/onboarding/team_choice.cljs:52 msgid "onboarding.team-modal.create-team-feature-4" msgstr "Sin límite de integrantes" -#: src/app/main/ui/onboarding/team_choice.cljs:56 msgid "onboarding.team-modal.create-team-feature-5" msgstr "¡100% gratis!" -#: src/app/main/ui/onboarding/team_choice.cljs:33 msgid "onboarding.team-modal.team-definition" msgstr "¿Qué es un equipo?" -#: src/app/main/ui/onboarding/templates.cljs:78 msgid "onboarding.templates.subtitle" msgstr "Aquí tienes algunas plantillas." -#: src/app/main/ui/onboarding/templates.cljs:77 msgid "onboarding.templates.title" msgstr "Empezar a diseñar" -#, unused msgid "onboarding.welcome.alt" msgstr "Penpot" -#: src/app/main/ui/auth/recovery.cljs:99 +#: src/app/main/ui/auth/recovery.cljs msgid "profile.recovery.go-to-login" msgstr "Ir al login" -#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:221 +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.step1.title" +msgstr "Ayúdanos a conocerte" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.step1.subtitle" +msgstr "Cuéntanos un poco sobre tí para ayudarnos a que Penpot se adapte mejor a tí. Tus respuestas nos ayudarán a priorizar nuevas funcionalidades y a saber cómo podemos acompañarte mejor." + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.step1.question1" +msgstr "¿Para qué utilizarás Penpot?" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.use.work" +msgstr "Trabajo" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.use.education" +msgstr "Educación" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.use.personal" +msgstr "Personal" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.step1.question2" +msgstr "¿Qué te ha traído a Penpot?" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.reasons.exploring" +msgstr "Estoy echando un vistazo" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.reasons.fit" +msgstr "Averiguar si Penpot es una buena opción para mi equipo" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.reasons.alternative" +msgstr "Buscar una alternativa a Figma, XD, etc." + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.reasons.testing" +msgstr "Probar antes de self-hosting" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.step2.title" +msgstr "¿Cuál de estas herramientas utilizas más?" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.adobe-xd" +msgstr "Adobe XD" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.canva" +msgstr "Canva" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.figma" +msgstr "Figma" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.invision" +msgstr "InVision" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.sketch" +msgstr "Sketch" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.step3.title" +msgstr "Háblanos de tu trabajo" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.step3.question1" +msgstr "¿Qué tipo de trabajo haces?" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.product-design" +msgstr "Diseño de Producto o UX" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.developer" +msgstr "Desarrollo" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.graphic-design" +msgstr "Diseño gráfico" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.marketing" +msgstr "Marketing" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.product-management" +msgstr "Product Managment" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.step3.question2" +msgstr "¿Cuál es tu puesto?" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.team-leader" +msgstr "Líder de equipo" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.team-member" +msgstr "Miembro de equipo" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.freelancer" +msgstr "Autónomo" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.founder" +msgstr "CEO o Fundador" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.director" +msgstr "Director" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.step3.question3" +msgstr "¿Cuál es el tamaño de tu empresa?" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.team-size.more-than-50" +msgstr "Más de 50" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.team-size.31-50" +msgstr "31-50" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.team-size.11-30" +msgstr "11-30" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.team-size.2-10" +msgstr "2-10" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.team-size.freelancer" +msgstr "Soy autónomo" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.team-size.personal-project" +msgstr "Estoy trabajando en un proyecto personal" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.step4.title" +msgstr "¿Por dónde te apetecería empezar?" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.start-with.ui" +msgstr "Diseñando el UX/UI de una aplicación" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.start-with.wireframing" +msgstr "Wireframing" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.start-with.prototyping" +msgstr "Prototipado" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.start-with.ds" +msgstr "Creando sistemas de diseño" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.start-with.code" +msgstr "Generando código a partir de diseños" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.step5.title" +msgstr "¿Cómo nos has descubierto?" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.lets-get-started" +msgstr "¡Empecemos!" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.next" +msgstr "Siguiente" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.other" +msgstr "Otra (especifica)" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.other-short" +msgstr "Otra" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.previous" +msgstr "Anterior" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.select-option" +msgstr "Selecciona una opción" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.start" +msgstr "Comenzar" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.student-teacher" +msgstr "Estudiante o profesorado" + +#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, msgid "settings.detach" msgstr "Desacoplar" -#: src/app/main/ui/viewer/inspect/exports.cljs:147, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:631, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:137, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:148, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:188, src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:158, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:399, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:410, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:430, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:441, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:458, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:472, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:309, src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:183, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:373, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:389, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:245, src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:172 +#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs msgid "settings.multiple" msgstr "Varios" -#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:271 +#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs msgid "settings.select-this-color" msgstr "Seleccionar elementos que usan este estilo" # SECTIONS -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:414 msgid "shortcut-section.basics" msgstr "Básicos" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:420 msgid "shortcut-section.dashboard" msgstr "Panel" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:423 msgid "shortcut-section.viewer" msgstr "Modo visualización" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:417 msgid "shortcut-section.workspace" msgstr "Área de trabajo" # SUBSECTIONS -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:56 msgid "shortcut-subsection.alignment" msgstr "Alineamiento" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:57 msgid "shortcut-subsection.edit" msgstr "Editar" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:58 msgid "shortcut-subsection.general-dashboard" msgstr "Genérico" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:59 msgid "shortcut-subsection.general-viewer" msgstr "Genérico" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:60 msgid "shortcut-subsection.main-menu" msgstr "Menu principal" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:61 msgid "shortcut-subsection.modify-layers" msgstr "Modificar capas" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:62 msgid "shortcut-subsection.navigation-dashboard" msgstr "Navegación" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:63 msgid "shortcut-subsection.navigation-viewer" msgstr "Navegación" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:64 msgid "shortcut-subsection.navigation-workspace" msgstr "Navegación" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:65 msgid "shortcut-subsection.panels" msgstr "Paneles" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:66 msgid "shortcut-subsection.path-editor" msgstr "Ruta" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:67 msgid "shortcut-subsection.shape" msgstr "Formas" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:68 msgid "shortcut-subsection.text-editor" msgstr "Textos" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:69 msgid "shortcut-subsection.tools" msgstr "Herramientas" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:70 msgid "shortcut-subsection.zoom-viewer" msgstr "Zoom" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:71 msgid "shortcut-subsection.zoom-workspace" msgstr "Zoom" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:72 msgid "shortcuts.add-comment" msgstr "Añadir comentarios" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:73 msgid "shortcuts.add-node" msgstr "Añadir nodo" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:74 msgid "shortcuts.align-bottom" msgstr "Alinear abajo" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:75 msgid "shortcuts.align-center" msgstr "Alinear al centro" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:76 msgid "shortcuts.align-hcenter" msgstr "Alinear al centro horizontalmente" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:77 msgid "shortcuts.align-justify" msgstr "Alinear justificado" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:78 msgid "shortcuts.align-left" msgstr "Alinear a la izquierda" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:79 msgid "shortcuts.align-right" msgstr "Alinear a la derecha" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:80 msgid "shortcuts.align-top" msgstr "Alinear arriba" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:81 msgid "shortcuts.align-vcenter" msgstr "Alinear al centro verticalmente" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:82 msgid "shortcuts.artboard-selection" msgstr "Crear tablero desde la selección" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:83 msgid "shortcuts.bold" msgstr "Alternar negrita" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:84 msgid "shortcuts.bool-difference" msgstr "Diferencia" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:85 msgid "shortcuts.bool-exclude" msgstr "Exclusión" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:86 msgid "shortcuts.bool-intersection" msgstr "Interescción" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:87 msgid "shortcuts.bool-union" msgstr "Unión" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:88 msgid "shortcuts.bring-back" msgstr "Enviar detrás" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:89 msgid "shortcuts.bring-backward" msgstr "Enviar al fondo" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:90 msgid "shortcuts.bring-forward" msgstr "Mover al frente" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:91 msgid "shortcuts.bring-front" msgstr "Mover hacia adelante" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:92 msgid "shortcuts.clear-undo" msgstr "Limpiar historial" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:93 msgid "shortcuts.copy" msgstr "Copiar" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:94 msgid "shortcuts.create-component" msgstr "Crear componente" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:95 msgid "shortcuts.create-new-project" msgstr "Crear nuevo" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:96 msgid "shortcuts.cut" msgstr "Cortar" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:97 msgid "shortcuts.decrease-zoom" msgstr "Reducir zoom" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:98 msgid "shortcuts.delete" msgstr "Borrar" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:99 msgid "shortcuts.delete-node" msgstr "Borrar nodo" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:100 msgid "shortcuts.detach-component" msgstr "Desacoplar instancia" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:101 msgid "shortcuts.draw-curve" msgstr "Curva" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:102 msgid "shortcuts.draw-ellipse" msgstr "Elipse" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:103 msgid "shortcuts.draw-frame" msgstr "Tablero" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:104 msgid "shortcuts.draw-nodes" msgstr "Dibujar nodos" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:105 msgid "shortcuts.draw-path" msgstr "Ruta" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:106 msgid "shortcuts.draw-rect" msgstr "Rectángulo" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:107 msgid "shortcuts.draw-text" msgstr "Texto" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:108 msgid "shortcuts.duplicate" msgstr "Duplicar" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:109 msgid "shortcuts.escape" msgstr "Cancelar" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:110 msgid "shortcuts.export-shapes" msgstr "Exportar elementos" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:111 msgid "shortcuts.fit-all" msgstr "Zoom abarcar todo" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:112 msgid "shortcuts.flip-horizontal" msgstr "Voltear horizontalmente" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:113 msgid "shortcuts.flip-vertical" msgstr "Voltear verticalmente" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:114 msgid "shortcuts.font-size-dec" msgstr "Decrementar el tamaño de fuente" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:115 msgid "shortcuts.font-size-inc" msgstr "Incrementar el tamaño de fuente" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:116 msgid "shortcuts.go-to-drafts" msgstr "Ir a borradores" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:117 msgid "shortcuts.go-to-libs" msgstr "Ir a bibliotecas compartidas" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:118 msgid "shortcuts.go-to-search" msgstr "Buscar" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:119 msgid "shortcuts.group" msgstr "Agrupar" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:120 msgid "shortcuts.h-distribute" msgstr "Distribuir horizontalmente" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:121 msgid "shortcuts.hide-ui" msgstr "Mostrar/ocultar interfaz" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:122 msgid "shortcuts.increase-zoom" msgstr "Aumentar zoom" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:123 msgid "shortcuts.insert-image" msgstr "Insertar imagen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:124 msgid "shortcuts.italic" msgstr "Alternar cursiva" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:125 msgid "shortcuts.join-nodes" msgstr "Unir nodos" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:126 msgid "shortcuts.letter-spacing-dec" msgstr "Decrementar el espaciado de letras" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:127 msgid "shortcuts.letter-spacing-inc" msgstr "Incrementar el espaciado de letras" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:128 msgid "shortcuts.line-height-dec" msgstr "Decrementar el interlineado" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:129 msgid "shortcuts.line-height-inc" msgstr "Incrementar el interlineado" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:130 msgid "shortcuts.line-through" msgstr "Alternar tachado" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:131 msgid "shortcuts.make-corner" msgstr "Convertir en esquina" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:132 msgid "shortcuts.make-curve" msgstr "Convertir en curva" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:133 msgid "shortcuts.mask" msgstr "Máscara" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:134 msgid "shortcuts.merge-nodes" msgstr "Fusionar nodos" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:135 msgid "shortcuts.move" msgstr "Mover" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:136 msgid "shortcuts.move-fast-down" msgstr "Mover rápidamente hacia abajo" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:137 msgid "shortcuts.move-fast-left" msgstr "Mover rápidamente hacia la izquierda" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:138 msgid "shortcuts.move-fast-right" msgstr "Mover rápidamente hacia la derecha" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:139 msgid "shortcuts.move-fast-up" msgstr "Mover rápidamente hacia arriba" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:140 msgid "shortcuts.move-nodes" msgstr "Mover nodo" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:141 msgid "shortcuts.move-unit-down" msgstr "Mover hacia abajo" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:142 msgid "shortcuts.move-unit-left" msgstr "Mover hacia la izquierda" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:143 msgid "shortcuts.move-unit-right" msgstr "Mover hacia la derecha" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:144 msgid "shortcuts.move-unit-up" msgstr "Mover hacia arriba" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:145 msgid "shortcuts.next-frame" msgstr "Siguiente tablero" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:516 msgid "shortcuts.not-found" msgstr "No hay resultados" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:146 msgid "shortcuts.opacity-0" msgstr "Opacidad 100%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:147 msgid "shortcuts.opacity-1" msgstr "Opacidad 10%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:148 msgid "shortcuts.opacity-2" msgstr "Opacidad 20%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:149 msgid "shortcuts.opacity-3" msgstr "Opacidad 30%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:150 msgid "shortcuts.opacity-4" msgstr "Opacidad 40%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:151 msgid "shortcuts.opacity-5" msgstr "Opacidad 50%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:152 msgid "shortcuts.opacity-6" msgstr "Opacidad 60%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:153 msgid "shortcuts.opacity-7" msgstr "Opacidad 70%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:154 msgid "shortcuts.opacity-8" msgstr "Opacidad 80%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:155 msgid "shortcuts.opacity-9" msgstr "Opacidad 90%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:156 msgid "shortcuts.open-color-picker" msgstr "Abrir selector de color" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:157 msgid "shortcuts.open-comments" msgstr "Comentarios" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:158 msgid "shortcuts.open-dashboard" msgstr "Ir al dashboard" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:159 msgid "shortcuts.open-inspect" msgstr "Ir al inspector" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:160 msgid "shortcuts.open-interactions" msgstr "Ir a interacciones" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:161 msgid "shortcuts.open-viewer" msgstr "Ir al modo de visualización" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:162 msgid "shortcuts.open-workspace" msgstr "Ir al área de trabajo" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:260 msgid "shortcuts.or" msgstr " o " -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:163 msgid "shortcuts.paste" msgstr "Pegar" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:164 msgid "shortcuts.prev-frame" msgstr "Tablero anterior" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:165 msgid "shortcuts.redo" msgstr "Rehacer" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:166 msgid "shortcuts.reset-zoom" msgstr "Reiniciar zoom" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:167 msgid "shortcuts.scale" msgstr "Escalado" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:168 msgid "shortcuts.search-placeholder" msgstr "Buscar atajos" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:169 msgid "shortcuts.select-all" msgstr "Seleccionar todo" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:170 msgid "shortcuts.select-next" msgstr "Seleccionar capa siguiente" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:171 msgid "shortcuts.select-parent-layer" msgstr "Seleccionar capa padre" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:172 msgid "shortcuts.select-prev" msgstr "Seleccionar capa anterior" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:173 msgid "shortcuts.separate-nodes" msgstr "Separar nodos" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:174 msgid "shortcuts.show-pixel-grid" msgstr "Mostrar rejilla a pixel" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:175 msgid "shortcuts.show-shortcuts" msgstr "Mostrar atajos de teclado" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:176 msgid "shortcuts.snap-nodes" msgstr "Alinear nodos" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:177 msgid "shortcuts.snap-pixel-grid" msgstr "Activar alineación a rejilla de pixel" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:178 msgid "shortcuts.start-editing" msgstr "Comenzar edición" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:179 msgid "shortcuts.start-measure" msgstr "Comenzar medida" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:180 msgid "shortcuts.stop-measure" msgstr "Terminar medida" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:181 msgid "shortcuts.text-align-center" msgstr "Alinear al centro" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:182 msgid "shortcuts.text-align-justify" msgstr "Alinear justificado" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:183 msgid "shortcuts.text-align-left" msgstr "Alinear a la izquierda" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:184 msgid "shortcuts.text-align-right" msgstr "Alinear a la derecha" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:185 msgid "shortcuts.thumbnail-set" msgstr "Activar miniaturas" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:496, src/app/main/ui/workspace/sidebar/shortcuts.cljs:505 +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs msgid "shortcuts.title" msgstr "Atajos de teclado" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:186 msgid "shortcuts.toggle-alignment" msgstr "Alternar alineación" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:187 msgid "shortcuts.toggle-assets" msgstr "Mostrar/ocultar recursos" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:188 msgid "shortcuts.toggle-colorpalette" msgstr "Mostrar/ocultar paleta de colores" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:189 msgid "shortcuts.toggle-focus-mode" msgstr "Mostrar/ocultar focus mode" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:190 msgid "shortcuts.toggle-fullscreen" msgstr "Activar/desactivar pantalla completa" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:191 msgid "shortcuts.toggle-guides" msgstr "Mostrar/ocultar guías" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:192 msgid "shortcuts.toggle-history" msgstr "Mostrar/ocultar histórico" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:193 msgid "shortcuts.toggle-layers" msgstr "Mostrar/ocultar capas" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:194 msgid "shortcuts.toggle-layout-flex" msgstr "Añadir/eliminar flex layout" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:195 msgid "shortcuts.toggle-layout-grid" msgstr "Añadir/eliminar grid layout" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:196 msgid "shortcuts.toggle-lock" msgstr "Bloquear/Desbloquear" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:197 msgid "shortcuts.toggle-lock-size" msgstr "Bloquear/Desbloquear proporciones" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:198 msgid "shortcuts.toggle-rulers" msgstr "Mostrar/ocultar reglas" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:200 msgid "shortcuts.toggle-snap-guides" msgstr "Alinear a las guías" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:201 msgid "shortcuts.toggle-snap-ruler-guide" msgstr "Alinear a las guías de reglas" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:202 msgid "shortcuts.toggle-textpalette" msgstr "Mostrar/ocultar paleta de textos" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:203 msgid "shortcuts.toggle-theme" msgstr "Cambiar tema" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:204 msgid "shortcuts.toggle-visibility" msgstr "Mostrar/ocultar elemento" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:205 msgid "shortcuts.toggle-zoom-style" msgstr "Alternar estilo de zoom" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:206 msgid "shortcuts.underline" msgstr "Alternar subrayado" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:207 msgid "shortcuts.undo" msgstr "Deshacer" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:208 msgid "shortcuts.ungroup" msgstr "Desagrupar" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:209 msgid "shortcuts.unmask" msgstr "Deshacer máscara" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:210 msgid "shortcuts.v-distribute" msgstr "Distribuir verticalmente" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:211 msgid "shortcuts.zoom-lense-decrease" msgstr "Decrementar zoom a objetivo" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:212 msgid "shortcuts.zoom-lense-increase" msgstr "Incrementar zoom a objetivo" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:213 msgid "shortcuts.zoom-selected" msgstr "Zoom a selección" -#: src/app/main/ui/dashboard/team.cljs:771 +#: src/app/main/ui/dashboard/team.cljs msgid "team.webhooks.max-length" msgstr "El nombre del webhook debe contener como máximo 2048 caracteres." -#: src/app/main/ui/dashboard/files.cljs:158 +#: src/app/main/ui/dashboard/files.cljs msgid "title.dashboard.files" msgstr "%s - Penpot" -#: src/app/main/ui/dashboard/fonts.cljs:37 +#: src/app/main/ui/dashboard/fonts.cljs msgid "title.dashboard.font-providers" msgstr "Proveedores de fuentes - %s - Penpot" -#: src/app/main/ui/dashboard/fonts.cljs:36 +#: src/app/main/ui/dashboard/fonts.cljs msgid "title.dashboard.fonts" msgstr "Fuentes - %s - Penpot" -#: src/app/main/ui/dashboard/projects.cljs:320 +#: src/app/main/ui/dashboard/projects.cljs msgid "title.dashboard.projects" msgstr "Proyectos - %s - Penpot" -#: src/app/main/ui/dashboard/search.cljs:32 +#: src/app/main/ui/dashboard/search.cljs msgid "title.dashboard.search" msgstr "Buscar - %s - Penpot" -#: src/app/main/ui/dashboard/libraries.cljs:44 +#: src/app/main/ui/dashboard/libraries.cljs msgid "title.dashboard.shared-libraries" msgstr "Bibliotecas Compartidas - %s - Penpot" -#: src/app/main/ui/auth/verify_token.cljs:68, src/app/main/ui/auth.cljs:54 +#: src/app/main/ui/auth/verify_token.cljs, src/app/main/ui/auth.cljs msgid "title.default" msgstr "Penpot - Diseño Libre para Equipos" -#: src/app/main/ui/settings/access_tokens.cljs:292 +#: src/app/main/ui/settings/access-tokens.cljs msgid "title.settings.access-tokens" msgstr "Perfil - Access tokens" -#: src/app/main/ui/settings/feedback.cljs:110 +#: src/app/main/ui/settings/feedback.cljs msgid "title.settings.feedback" msgstr "Danos tu opinión - Penpot" -#: src/app/main/ui/settings/options.cljs:80 +#: src/app/main/ui/settings/options.cljs msgid "title.settings.options" msgstr "Configuración - Penpot" -#: src/app/main/ui/settings/password.cljs:115 +#: src/app/main/ui/settings/password.cljs msgid "title.settings.password" msgstr "Contraseña - Penpot" -#: src/app/main/ui/settings/profile.cljs:115 +#: src/app/main/ui/settings/profile.cljs msgid "title.settings.profile" msgstr "Perfil - Penpot" -#: src/app/main/ui/dashboard/team.cljs:727 +#: src/app/main/ui/dashboard/team.cljs msgid "title.team-invitations" msgstr "Invitaciones - %s - Penpot" -#: src/app/main/ui/dashboard/team.cljs:493 +#: src/app/main/ui/dashboard/team.cljs msgid "title.team-members" msgstr "Integrantes - %s - Penpot" -#: src/app/main/ui/dashboard/team.cljs:1036 +#: src/app/main/ui/dashboard/team.cljs msgid "title.team-settings" msgstr "Configuración - %s - Penpot" -#: src/app/main/ui/dashboard/team.cljs:989 msgid "title.team-webhooks" msgstr "Webhooks - %s - Penpot" -#: src/app/main/ui/viewer.cljs:419 +#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs msgid "title.viewer" msgstr "%s - Modo de visualización - Penpot" -#: src/app/main/ui/workspace.cljs:190 +#: src/app/main/ui/workspace.cljs msgid "title.workspace" msgstr "%s - Penpot" -#: src/app/main/ui.cljs:144 msgid "viewer.breaking-change.description" msgstr "" "Este link compartido ya no funciona. Crea uno nuevo o pídelo a la persona " "que lo creó." -#: src/app/main/ui.cljs:143 msgid "viewer.breaking-change.message" msgstr "¡Lo sentimos!" -#: src/app/main/ui/viewer.cljs:569 +#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs msgid "viewer.empty-state" msgstr "No se ha encontrado ningún tablero." -#: src/app/main/ui/viewer.cljs:574 +#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs msgid "viewer.frame-not-found" msgstr "No se encuentra el tablero." -#: src/app/main/ui/viewer/header.cljs:336 msgid "viewer.header.comments-section" msgstr "Comentarios (%s)" -#: src/app/main/ui/viewer/interactions.cljs:292 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.dont-show-interactions" msgstr "No mostrar interacciones" -#: src/app/main/ui/viewer/header.cljs:188 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.fullscreen" msgstr "Pantalla completa" -#: src/app/main/ui/viewer/header.cljs:345 msgid "viewer.header.inspect-section" msgstr "Inspector (%s)" -#: src/app/main/ui/viewer/interactions.cljs:282 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.interactions" msgstr "Interacciones" -#: src/app/main/ui/viewer/header.cljs:327 msgid "viewer.header.interactions-section" msgstr "Interacciones (%s)" -#: src/app/main/ui/viewer/share_link.cljs:187 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.share.copy-link" msgstr "Copiar enlace" -#: src/app/main/ui/viewer/interactions.cljs:300 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.show-interactions" msgstr "Mostrar interacciones" -#: src/app/main/ui/viewer/interactions.cljs:311 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.show-interactions-on-click" msgstr "Mostrar interacciones al hacer click" -#: src/app/main/ui/viewer/header.cljs:231 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.sitemap" msgstr "Mapa del sitio" -#: src/app/main/ui/dashboard/team.cljs:948 msgid "webhooks.last-delivery.success" msgstr "El último envío fue correcto." -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:58 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.hcenter" msgstr "Alinear al centro (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:74 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.hdistribute" msgstr "Distribuir espacio horizontal (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:50 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.hleft" msgstr "Alinear a la izquierda (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:66 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.hright" msgstr "Alinear a la derecha (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:99 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.vbottom" msgstr "Alinear abajo (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:91 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.vcenter" msgstr "Alinear al centro (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:104 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.vdistribute" msgstr "Distribuir espacio vertical (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:83 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.vtop" msgstr "Alinear arriba (%s)" #: src/app/main/ui/workspace/sidebar/assets.cljs -#, unused msgid "workspace.assets.assets" msgstr "Recursos" -#: src/app/main/ui/workspace/sidebar/assets.cljs:134 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.box-filter-all" msgstr "Todos" -#: src/app/main/ui/dashboard/grid.cljs:130, src/app/main/ui/dashboard/grid.cljs:162, src/app/main/ui/workspace/sidebar/assets/colors.cljs:485, src/app/main/ui/workspace/sidebar/assets.cljs:150 +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.colors" msgstr "Colores" -#: src/app/main/ui/dashboard/grid.cljs:126, src/app/main/ui/dashboard/grid.cljs:141, src/app/main/ui/workspace/sidebar/assets/components.cljs:513, src/app/main/ui/workspace/sidebar/assets.cljs:139 +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.components" msgstr "Componentes" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:131 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.create-group" msgstr "Crear un grupo" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:142 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.create-group-hint" msgstr "" "Tus elementos se renombrarán automáticamente a \"nombre grupo / nombre " "elemento\"" -#: src/app/main/ui/workspace/context_menu.cljs:529, src/app/main/ui/workspace/sidebar/assets/colors.cljs:251, src/app/main/ui/workspace/sidebar/assets/components.cljs:577, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:424, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:443 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.delete" msgstr "Borrar" -#: src/app/main/ui/workspace/context_menu.cljs:534, src/app/main/ui/workspace/sidebar/assets/components.cljs:572 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.duplicate" msgstr "Duplicar" -#: src/app/main/ui/workspace/sidebar/assets/components.cljs:571 msgid "workspace.assets.duplicate-main" msgstr "Duplicar principal" -#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:247, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:439 +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.edit" msgstr "Editar" -#: src/app/main/ui/workspace/sidebar/assets.cljs:176 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.filter" msgstr "Filtrar" -#: src/app/main/ui/workspace/sidebar/assets/graphics.cljs:384, src/app/main/ui/workspace/sidebar/assets.cljs:145 +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.graphics" msgstr "Gráficos" -#: src/app/main/ui/workspace/sidebar/assets/components.cljs:529 -msgid "workspace.assets.grid-view" -msgstr "Ver como rejilla" - -#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:255, src/app/main/ui/workspace/sidebar/assets/components.cljs:581, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:428, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:448 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.group" msgstr "Agrupar" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:141 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.group-name" msgstr "Nombre del grupo" -#: src/app/main/ui/workspace/sidebar/assets.cljs:168 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.libraries" msgstr "Bibliotecas" -#: src/app/main/ui/workspace/sidebar/assets/components.cljs:525 -msgid "workspace.assets.list-view" -msgstr "Ver como lista" - -#: src/app/main/ui/workspace/sidebar/assets/file_library.cljs:62, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:347 msgid "workspace.assets.local-library" msgstr "biblioteca local" -#: src/app/main/ui/workspace/sidebar/assets/file_library.cljs:295 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.not-found" msgstr "No se encontraron recursos" -#, unused msgid "workspace.assets.open-library" msgstr "Abrir el fichero de la biblioteca" -#: src/app/main/ui/workspace/context_menu.cljs:532, src/app/main/ui/workspace/sidebar/assets/colors.cljs:243, src/app/main/ui/workspace/sidebar/assets/components.cljs:566, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:421, src/app/main/ui/workspace/sidebar/assets/groups.cljs:63, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:434 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.rename" msgstr "Renombrar" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:132 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.rename-group" msgstr "Renombrar grupo" -#: src/app/main/ui/workspace/sidebar/assets.cljs:173 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.search" msgstr "Buscar recursos" #: src/app/main/ui/workspace/sidebar/assets.cljs -#, unused msgid "workspace.assets.selected-count" msgid_plural "workspace.assets.selected-count" msgstr[0] "%s elemento seleccionado" msgstr[1] "%s elementos seleccionados" #: src/app/main/ui/workspace/sidebar/assets.cljs -#, unused msgid "workspace.assets.shared-library" msgstr "Biblioteca compartida" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:221 +#: src/app/main/ui/workspace/sidebar/assets/common.cljs msgid "workspace.assets.sidebar.components" msgid_plural "workspace.assets.sidebar.components" msgstr[0] "1 componente" msgstr[1] "%s componentes" -#: src/app/main/ui/workspace/sidebar/assets.cljs:193 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.sort" msgstr "Ordenar" -#: src/app/main/ui/dashboard/grid.cljs:134, src/app/main/ui/dashboard/grid.cljs:189, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:397, src/app/main/ui/workspace/sidebar/assets.cljs:155 +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.typography" msgstr "Tipografías" +#: src/app/main/ui/workspace/sidebar/assets/components.cljs, src/app/main/wui/workspace/sidebar/options/menus/component.cljs +msgid "workspace.assets.grid-view" +msgstr "Ver como rejilla" + +#: src/app/main/ui/workspace/sidebar/assets/components.cljs, src/app/main/wui/workspace/sidebar/options/menus/component.cljs +msgid "workspace.assets.list-view" +msgstr "Ver como lista" + #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused msgid "workspace.assets.typography.font-id" msgstr "Fuente" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:505 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.font-size" msgstr "Tamaño" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:501 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.font-variant-id" msgstr "Variante" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:523 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.go-to-edit" msgstr "Ir al archivo de la biblioteca del estilo para editar" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:513 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.letter-spacing" msgstr "Interletrado" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:509 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.line-height" msgstr "Interlineado" -#: src/app/main/ui/dashboard/grid.cljs:199, src/app/main/ui/workspace/libraries.cljs:461, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:464, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:489, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:596, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:615 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, +#: src/app/main/ui/inspect/attributes/text.cljs, +#: src/app/main/ui/inspect/attributes/text.cljs msgid "workspace.assets.typography.sample" msgstr "Ag" -#, unused msgid "workspace.assets.typography.text-styles" msgstr "Estilos de texto" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:517 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.text-transform" msgstr "Transformar texto" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:66 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.ungroup" msgstr "Desagrupar" -#: src/app/main/ui/workspace/context_menu.cljs:634 msgid "workspace.context-menu.grid-cells.area" msgstr "Crear area" -#: src/app/main/ui/workspace/context_menu.cljs:637 msgid "workspace.context-menu.grid-cells.create-board" msgstr "Crear tablero" -#: src/app/main/ui/workspace/context_menu.cljs:629 msgid "workspace.context-menu.grid-cells.merge" msgstr "Fusionar celdas" -#: src/app/main/ui/workspace/context_menu.cljs:594 msgid "workspace.context-menu.grid-track.column.add-after" msgstr "Añadir 1 columna a la derecha" -#: src/app/main/ui/workspace/context_menu.cljs:593 msgid "workspace.context-menu.grid-track.column.add-before" msgstr "Añadir 1 columna a la izquierda" -#: src/app/main/ui/workspace/context_menu.cljs:595 msgid "workspace.context-menu.grid-track.column.delete" msgstr "Borrar columna" -#: src/app/main/ui/workspace/context_menu.cljs:596 msgid "workspace.context-menu.grid-track.column.delete-shapes" msgstr "Borrar columna con el contenido" -#: src/app/main/ui/workspace/context_menu.cljs:592 msgid "workspace.context-menu.grid-track.column.duplicate" msgstr "Duplicar columna" -#: src/app/main/ui/workspace/context_menu.cljs:601 msgid "workspace.context-menu.grid-track.row.add-after" msgstr "Añadir 1 fila debajo" -#: src/app/main/ui/workspace/context_menu.cljs:600 msgid "workspace.context-menu.grid-track.row.add-before" msgstr "Añadir 1 fila encima" -#: src/app/main/ui/workspace/context_menu.cljs:602 msgid "workspace.context-menu.grid-track.row.delete" msgstr "Borrar fila" -#: src/app/main/ui/workspace/context_menu.cljs:603 msgid "workspace.context-menu.grid-track.row.delete-shapes" msgstr "Borrar fila con el contenido" -#: src/app/main/ui/workspace/context_menu.cljs:599 msgid "workspace.context-menu.grid-track.row.duplicate" msgstr "Duplicar fila" -#: src/app/main/ui/workspace/sidebar/layers.cljs:525 msgid "workspace.focus.focus-mode" msgstr "Modo foco" -#: src/app/main/ui/workspace/context_menu.cljs:287, src/app/main/ui/workspace/context_menu.cljs:553 msgid "workspace.focus.focus-off" msgstr "Desactivar modo foco" -#: src/app/main/ui/workspace/context_menu.cljs:286 msgid "workspace.focus.focus-on" msgstr "Activar modo foco" -#, unused msgid "workspace.focus.selection" msgstr "Selección" -#: src/app/util/color.cljs:34 +#: src/app/main/data/workspace/libraries.cljs, +#: src/app/main/ui/components/color_bullet.cljs msgid "workspace.gradients.linear" msgstr "Degradado lineal" -#: src/app/util/color.cljs:35 +#: src/app/main/data/workspace/libraries.cljs, +#: src/app/main/ui/components/color_bullet.cljs msgid "workspace.gradients.radial" msgstr "Degradado radial" -#: src/app/main/ui/workspace/main_menu.cljs:238 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.disable-dynamic-alignment" msgstr "Desactivar alineamiento dinámico" -#: src/app/main/ui/workspace/main_menu.cljs:192 msgid "workspace.header.menu.disable-scale-content" msgstr "Desactivar escala proporcional" #: src/app/main/ui/workspace/header.cljs -#, unused msgid "workspace.header.menu.disable-scale-text" msgstr "Desactivar escalar texto" -#: src/app/main/ui/workspace/main_menu.cljs:223 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.disable-snap-guides" msgstr "Desactivar alinear a las guias" -#: src/app/main/ui/workspace/main_menu.cljs:253 msgid "workspace.header.menu.disable-snap-pixel-grid" msgstr "Desactivar ajuste al pixel" -#: src/app/main/ui/workspace/main_menu.cljs:207 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.disable-snap-ruler-guides" msgstr "Desactivar alinear a las guias de reglas" -#: src/app/main/ui/workspace/main_menu.cljs:239 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.enable-dynamic-alignment" msgstr "Activar alineamiento dinámico" -#: src/app/main/ui/workspace/main_menu.cljs:193 msgid "workspace.header.menu.enable-scale-content" msgstr "Activar escala proporcional" #: src/app/main/ui/workspace/header.cljs -#, unused msgid "workspace.header.menu.enable-scale-text" msgstr "Activar escalar texto" -#: src/app/main/ui/workspace/main_menu.cljs:224 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.enable-snap-guides" msgstr "Alinear a las guias" -#: src/app/main/ui/workspace/main_menu.cljs:254 msgid "workspace.header.menu.enable-snap-pixel-grid" msgstr "Activar ajuste al pixel" -#: src/app/main/ui/workspace/main_menu.cljs:208 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.enable-snap-ruler-guides" msgstr "Alinear a las guias de reglas" -#: src/app/main/ui/workspace/main_menu.cljs:382 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.hide-artboard-names" msgstr "Ocultar nombres de tableros" -#: src/app/main/ui/workspace/main_menu.cljs:336 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.hide-guides" msgstr "Ocultar guías" -#: src/app/main/ui/workspace/main_menu.cljs:353 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.hide-palette" msgstr "Ocultar paleta de colores" -#: src/app/main/ui/workspace/main_menu.cljs:394 msgid "workspace.header.menu.hide-pixel-grid" msgstr "Ocultar rejilla de pixeles" -#: src/app/main/ui/workspace/main_menu.cljs:320 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.hide-rules" msgstr "Ocultar reglas" -#: src/app/main/ui/workspace/main_menu.cljs:367 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.hide-textpalette" msgstr "Ocultar paleta de textos" -#: src/app/main/ui/workspace/main_menu.cljs:731 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.edit" msgstr "Editar" -#: src/app/main/ui/workspace/main_menu.cljs:720 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.file" msgstr "Archivo" -#: src/app/main/ui/workspace/main_menu.cljs:777 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.help-info" msgstr "Ayuda e información" -#: src/app/main/ui/workspace/main_menu.cljs:753 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.preferences" msgstr "Preferencias" -#: src/app/main/ui/workspace/main_menu.cljs:742 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.view" msgstr "Ver" -#: src/app/main/ui/workspace/main_menu.cljs:459 msgid "workspace.header.menu.redo" msgstr "Rehacer" -#: src/app/main/ui/workspace/main_menu.cljs:432 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.select-all" msgstr "Seleccionar todo" -#: src/app/main/ui/workspace/main_menu.cljs:383 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.show-artboard-names" msgstr "Mostrar nombres de tableros" -#: src/app/main/ui/workspace/main_menu.cljs:337 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.show-guides" msgstr "Mostrar guías" -#: src/app/main/ui/workspace/main_menu.cljs:354 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.show-palette" msgstr "Mostrar paleta de colores" -#: src/app/main/ui/workspace/main_menu.cljs:395 msgid "workspace.header.menu.show-pixel-grid" msgstr "Mostrar rejilla de pixeles" -#: src/app/main/ui/workspace/main_menu.cljs:321 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.show-rules" msgstr "Mostrar reglas" -#: src/app/main/ui/workspace/main_menu.cljs:368 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.show-textpalette" msgstr "Mostrar paleta de textos" -#: src/app/main/ui/workspace/main_menu.cljs:279 msgid "workspace.header.menu.toggle-dark-theme" msgstr "Cambiar a tema oscuro" -#: src/app/main/ui/workspace/main_menu.cljs:278 msgid "workspace.header.menu.toggle-light-theme" msgstr "Cambiar a tema claro" -#: src/app/main/ui/workspace/main_menu.cljs:446 msgid "workspace.header.menu.undo" msgstr "Deshacer" -#: src/app/main/ui/viewer/header.cljs:98, src/app/main/ui/workspace/right_header.cljs:120 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.reset-zoom" msgstr "Restablecer" #: src/app/main/ui/workspace/header.cljs -#, unused msgid "workspace.header.save-error" msgstr "Error al guardar" -#: src/app/main/ui/workspace/right_header.cljs:52 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.saved" msgstr "Guardado" #: src/app/main/ui/workspace/header.cljs -#, unused msgid "workspace.header.saving" msgstr "Guardando" -#: src/app/main/ui/workspace/right_header.cljs:42, src/app/main/ui/workspace/right_header.cljs:47 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.unsaved" msgstr "Cambios sin guardar" -#: src/app/main/ui/workspace/right_header.cljs:239 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.viewer" msgstr "Modo de visualización (%s)" -#: src/app/main/ui/viewer/header.cljs:79, src/app/main/ui/workspace/right_header.cljs:103 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom" msgstr "Zoom" -#: src/app/main/ui/viewer/header.cljs:109 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom-fill" msgstr "Escalar para rellenar" -#: src/app/main/ui/viewer/header.cljs:102 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom-fit" msgstr "Escalar para ajustar" -#: src/app/main/ui/workspace/right_header.cljs:123 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom-fit-all" msgstr "Zoom abarcar todo" -#: src/app/main/ui/viewer/header.cljs:116 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom-full-screen" msgstr "Pantalla completa" -#: src/app/main/ui/workspace/right_header.cljs:130 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom-selected" msgstr "Zoom a selección" -#: src/app/main/ui/workspace/sidebar/options/menus/grid_cell.cljs:273, src/app/main/ui/workspace/sidebar/options/menus/grid_cell.cljs:275, src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:612 msgid "workspace.layout_grid.editor.options.edit-grid" msgstr "Editar rejilla" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:1280 msgid "workspace.layout_grid.editor.options.exit" msgstr "Salir" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:483 msgid "workspace.layout_grid.editor.padding.expand" msgstr "Mostrar el padding a 4 lados" -#: src/app/main/ui/workspace/viewport/grid_layout_editor.cljs:59 msgid "workspace.layout_grid.editor.title" msgstr "Editando rejilla" -#: src/app/main/ui/workspace/viewport/grid_layout_editor.cljs:65 msgid "workspace.layout_grid.editor.top-bar.done" msgstr "Hecho" -#: src/app/main/ui/workspace/viewport/grid_layout_editor.cljs:62 msgid "workspace.layout_grid.editor.top-bar.locate" msgstr "Mostrar" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:1306 msgid "workspace.layout_grid.editor.top-bar.locate.tooltip" msgstr "Mostrar grid layout" #: src/app/main/ui/workspace/libraries.cljs -#, unused msgid "workspace.libraries.add" msgstr "Añadir" -#: src/app/main/ui/workspace/libraries.cljs:80, src/app/main/ui/workspace/libraries.cljs:99 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.colors" msgstr "%s colores" -#: src/app/main/ui/workspace/color_palette.cljs:126 +#: src/app/main/ui/workspace/colorpalette.cljs msgid "workspace.libraries.colors.empty-palette" msgstr "Todavía no hay estilos de color en tu biblioteca" -#: src/app/main/ui/workspace/text_palette.cljs:150 +#: src/app/main/ui/workspace/textpalette.cljs msgid "workspace.libraries.colors.empty-typography-palette" msgstr "Todavía no hay tipografías en tu biblioteca" -#: src/app/main/ui/workspace/color_palette_ctx_menu.cljs:60, src/app/main/ui/workspace/colorpicker/libraries.cljs:73, src/app/main/ui/workspace/text_palette_ctx_menu.cljs:50 +#: src/app/main/ui/workspace/colorpicker/libraries.cljs, +#: src/app/main/ui/workspace/colorpalette.cljs msgid "workspace.libraries.colors.file-library" msgstr "Biblioteca del archivo" #: src/app/main/ui/workspace/colorpicker.cljs -#, unused msgid "workspace.libraries.colors.hsv" msgstr "HSV" -#: src/app/main/ui/workspace/color_palette_ctx_menu.cljs:82, src/app/main/ui/workspace/colorpicker/libraries.cljs:72 +#: src/app/main/ui/workspace/colorpicker/libraries.cljs, +#: src/app/main/ui/workspace/colorpalette.cljs msgid "workspace.libraries.colors.recent-colors" msgstr "Colores recientes" #: src/app/main/ui/workspace/colorpicker.cljs -#, unused msgid "workspace.libraries.colors.rgb-complementary" msgstr "RGB Complementario" #: src/app/main/ui/workspace/colorpicker.cljs -#, unused msgid "workspace.libraries.colors.rgba" msgstr "RGBA" -#: src/app/main/ui/workspace/colorpicker.cljs:372 +#: src/app/main/ui/workspace/colorpicker.cljs msgid "workspace.libraries.colors.save-color" msgstr "Guardar estilo de color" -#: src/app/main/ui/workspace/libraries.cljs:74, src/app/main/ui/workspace/libraries.cljs:91 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.components" msgstr "%s componentes" -#: src/app/main/ui/workspace/libraries.cljs:215 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.file-library" msgstr "Biblioteca del archivo" -#: src/app/main/ui/workspace/libraries.cljs:77, src/app/main/ui/workspace/libraries.cljs:95 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.graphics" msgstr "%s gráficos" -#: src/app/main/ui/workspace/libraries.cljs:209 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.in-this-file" msgstr "BIBLIOTECAS EN ESTE ARCHIVO" -#: src/app/main/ui/workspace/libraries.cljs:526, src/app/main/ui/workspace/libraries.cljs:531 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.libraries" msgstr "BIBLIOTECAS" #: src/app/main/ui/workspace/libraries.cljs -#, unused msgid "workspace.libraries.library" msgstr "BIBLIOTECA" -#: src/app/main/ui/workspace/libraries.cljs:382 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.library-updates" msgstr "ACTUALIZACIONES DE BIBLIOTECAS" -#: src/app/main/ui/workspace/libraries.cljs:290 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.loading" msgstr "Cargando…" -#: src/app/main/ui/workspace/libraries.cljs:380 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.no-libraries-need-sync" msgstr "No hay bibliotecas que necesiten ser actualizadas" -#: src/app/main/ui/workspace/libraries.cljs:299 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.no-matches-for" msgstr "No se encuentra “%s“" -#: src/app/main/ui/workspace/libraries.cljs:296 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.no-shared-libraries-available" msgstr "No hay bibliotecas compartidas disponibles" -#: src/app/main/ui/workspace/libraries.cljs:260 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.search-shared-libraries" msgstr "Buscar bibliotecas compartidas" -#: src/app/main/ui/workspace/libraries.cljs:256 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.shared-libraries" msgstr "BIBLIOTECAS COMPARTIDAS" -#: src/app/main/ui/workspace/libraries.cljs:282 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.shared-library-btn" msgstr "Conectar biblioteca" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:308 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.libraries.text.multiple-typography" msgstr "Varias tipografías" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:311 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.libraries.text.multiple-typography-tooltip" msgstr "Desvincular todas las tipografías" -#: src/app/main/ui/workspace/libraries.cljs:83, src/app/main/ui/workspace/libraries.cljs:103 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.typography" msgstr "%s tipografías" -#: src/app/main/ui/workspace/libraries.cljs:249 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.unlink-library-btn" msgstr "Desconectar biblioteca" -#: src/app/main/ui/workspace/libraries.cljs:402 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.update" msgstr "Actualizar" -#: src/app/main/ui/workspace/libraries.cljs:477 +#: src/app/main/data/workspace/libraries.cljs msgid "workspace.libraries.update.see-all-changes" msgstr "ver todos los cambios" -#: src/app/main/ui/workspace/libraries.cljs:536 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.updates" msgstr "ACTUALIZACIONES" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:737 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.add-interaction" msgstr "Pulsa el botón + para añadir interacciones." -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:86, src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:102 +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs msgid "workspace.options.blur-options.title" msgstr "Desenfoque" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:85 +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs msgid "workspace.options.blur-options.title.group" msgstr "Desenfoque del grupo" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:84 +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs msgid "workspace.options.blur-options.title.multiple" msgstr "Desenfoque de la selección" -#: src/app/main/ui/workspace/sidebar/options/page.cljs:32, src/app/main/ui/workspace/sidebar/options/page.cljs:39 +#: src/app/main/ui/workspace/sidebar/options/page.cljs msgid "workspace.options.canvas-background" msgstr "Color de fondo" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:548 msgid "workspace.options.clip-content" msgstr "Truncar contenido" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:600, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:605 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs msgid "workspace.options.component" msgstr "Componente" -#: src/app/main/ui/viewer/inspect/annotation.cljs:19, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:181 msgid "workspace.options.component.annotation" msgstr "Nota" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:610 msgid "workspace.options.component.copy" msgstr "Copia" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:173 msgid "workspace.options.component.create-annotation" msgstr "Crear una nota" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:172 msgid "workspace.options.component.edit-annotation" msgstr "Editar una nota" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:609 msgid "workspace.options.component.main" msgstr "Principal" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:427 msgid "workspace.options.component.swap" msgstr "Intercambiar componente" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:471 msgid "workspace.options.component.swap.empty" msgstr "Aún no hay recursos en esta biblioteca" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:163 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints" msgstr "Restricciones" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:150 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.bottom" msgstr "Abajo" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:141, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:152 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.center" msgstr "Centro" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:229 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.fix-when-scrolling" msgstr "Fijo al desplazar" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:138 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.left" msgstr "Izquierda" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:140 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.leftright" msgstr "Izq. y Der." -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:139 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.right" msgstr "Derecha" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:142, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:153 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.scale" msgstr "Escalar" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:149 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.top" msgstr "Arriba" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:151 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.topbottom" msgstr "Arriba y Abajo" -#: src/app/main/ui/workspace/sidebar/options.cljs:112 +#: src/app/main/ui/workspace/sidebar/options.cljs msgid "workspace.options.design" msgstr "Diseño" -#: src/app/main/ui/viewer/inspect/exports.cljs:139 +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, +#: src/app/main/ui/inspect/exports.cljs msgid "workspace.options.export" msgstr "Exportar" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, +#: src/app/main/ui/inspect/exports.cljs msgid "workspace.options.export-multiple" msgstr "Exportar selección" -#: src/app/main/ui/viewer/inspect/exports.cljs:195, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:237 +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, +#: src/app/main/ui/inspect/exports.cljs msgid "workspace.options.export-object" msgid_plural "workspace.options.export-object" msgstr[0] "Exportar 1 elemento" msgstr[1] "Exportar %s elementos" -#: src/app/main/ui/viewer/inspect/exports.cljs:178, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:219 +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs msgid "workspace.options.export.suffix" msgstr "Sufijo" -#: src/app/main/ui/export.cljs:240 +#: 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.exporting-complete" msgstr "Exportación completa" -#: src/app/main/ui/export.cljs:172, src/app/main/ui/export.cljs:241, src/app/main/ui/viewer/inspect/exports.cljs:194, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:236 +#: 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.exporting-object" msgstr "Exportando…" -#: src/app/main/ui/export.cljs:239 +#: 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.exporting-object-error" msgstr "Exportación fallida" -#: src/app/main/ui/export.cljs:242 +#: 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.exporting-object-slow" msgstr "Exportación lenta" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:49, src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:174 +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs msgid "workspace.options.fill" msgstr "Relleno" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:178 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.flows.add-flow-start" msgstr "Añadir inicio de flujo" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:174 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.flows.flow" msgstr "Flujo" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -#, unused msgid "workspace.options.flows.flow-start" msgstr "Inicio de flujo" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:161 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.flows.flow-starts" msgstr "Inicios de flujo" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:29 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.auto" msgstr "Automático" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:157 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.column" msgstr "Columnas" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.grid-title" msgstr "Rejilla" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:196, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:237 msgid "workspace.options.grid.params.color" msgstr "Color" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.params.columns" msgstr "Columnas" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:259 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.gutter" msgstr "Espaciado" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:246 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.height" msgstr "Altura" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:270 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.margin" msgstr "Margen" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.params.rows" msgstr "Filas" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:216, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:290 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.set-default" msgstr "Establecer valor por defecto" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.params.size" msgstr "Tamaño" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.params.type" msgstr "Tipo" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:231 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.bottom" msgstr "Abajo" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:229 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.center" msgstr "Centro" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:228 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.left" msgstr "Izquierda" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:232 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.right" msgstr "Derecha" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:225 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.stretch" msgstr "Estirar" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:227 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.top" msgstr "Arriba" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:211, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:288 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.use-default" msgstr "Usar valor por defecto" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:247 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.width" msgstr "Ancho" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:158 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.row" msgstr "Filas" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:156 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.square" msgstr "Cuadros" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:48 +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs msgid "workspace.options.group-fill" msgstr "Relleno de grupo" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:42 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.group-stroke" msgstr "Borde de grupo" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:310 msgid "workspace.options.guides.title" msgstr "Guías" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:406 msgid "workspace.options.height" msgstr "Altura" -#: src/app/main/ui/workspace/sidebar/options.cljs:161 msgid "workspace.options.inspect" msgstr "Inspeccionar" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:468 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-action" msgstr "Acción" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:41, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:367 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-after-delay" msgstr "Tiempo" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:614 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-animation" msgstr "Animación" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:406 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-animation-dissolve" msgstr "Disolver" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:405 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-animation-none" msgstr "Ninguno" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:412 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-animation-push" msgstr "Empujar" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:407 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-animation-slide" msgstr "Deslizar" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:391 msgid "workspace.options.interaction-auto" msgstr "automático" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:604 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-background" msgstr "Añadir sombreado de fondo" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:590 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-close-outside" msgstr "Cerrar al pulsar fuera" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:372 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-close-overlay" msgstr "Cerrar superposición" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:56 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-close-overlay-dest" msgstr "Cerrar superposición: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:456 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-delay" msgstr "Tiempo" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:478 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-destination" msgstr "Destino" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:661 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-duration" msgstr "Duración" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:674 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing" msgstr "Easing" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:416 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing-ease" msgstr "Ease" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:417 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing-ease-in" msgstr "Ease in" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:419 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing-ease-in-out" msgstr "Ease in out" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:418 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing-ease-out" msgstr "Ease out" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:415 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing-linear" msgstr "Linear" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -#, unused msgid "workspace.options.interaction-in" msgstr "Dentro" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:39, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:364 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-mouse-enter" msgstr "Pasar encima" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:40, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:365 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-mouse-leave" msgstr "Retirar encima" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:458, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:459, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:464, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:663, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:665, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:669 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-ms" msgstr "ms" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:369 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-navigate-to" msgstr "Navegar a" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:50 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-navigate-to-dest" msgstr "Navegar a: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:51, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:53, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:55, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:380 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-none" msgstr "(sin definir)" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:691 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-offset-effect" msgstr "Offset effect" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:35, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:360 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-on-click" msgstr "En click" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:370 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-open-overlay" msgstr "Superposición" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:52 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-open-overlay-dest" msgstr "Superposición: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:59, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:374 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-open-url" msgstr "Abrir URL" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -#, unused msgid "workspace.options.interaction-out" msgstr "Fuera" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:403 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-bottom-center" msgstr "Abajo centro" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:401 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-bottom-left" msgstr "Abajo izquierda" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:402 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-bottom-right" msgstr "Abajo derecha" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:397 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-center" msgstr "Centro" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:396 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-manual" msgstr "Manual" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:400 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-top-center" msgstr "Arriba centro" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:398 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-top-left" msgstr "Arriba izquierda" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:399 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-top-right" msgstr "Arriba derecha" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:524 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-position" msgstr "Posición" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:494 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-preserve-scroll" msgstr "Conservar posición de desplazamiento" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:58, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:373 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-prev-screen" msgstr "Pantalla anterior" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:515 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-relative-to" msgstr "Relativo a" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:57, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:379, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:393, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:394 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-self" msgstr "mismo" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:371 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-toggle-overlay" msgstr "Alternar superpos." -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:54 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-toggle-overlay-dest" msgstr "Alternar superpos.: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:445 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-trigger" msgstr "Disparador" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:503 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-url" msgstr "URL" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:37, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:362 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-while-hovering" msgstr "Mientras pasa encima" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:38, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:363 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-while-pressing" msgstr "Mientras pulsa" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:724 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interactions" msgstr "Interacciones" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:137 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.color" msgstr "Color" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:126 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.color-burn" msgstr "Color más oscuro" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:129 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.color-dodge" msgstr "Color más suave" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:124 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.darken" msgstr "Oscurecer" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:133 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.difference" msgstr "Diferencia" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:134 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.exclusion" msgstr "Exclusión" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:132 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.hard-light" msgstr "Luz fuerte" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:135 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.hue" msgstr "Tono" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:127 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.lighten" msgstr "Aclarar" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:138 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.luminosity" msgstr "Luminosidad" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:125 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.multiply" msgstr "Multiplicar" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:123 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.normal" msgstr "Normal" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:130 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.overlay" msgstr "Superponer" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:136 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.saturation" msgstr "Saturación" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:128 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.screen" msgstr "Trama" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:131 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.soft-light" msgstr "Luz suave" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -#, unused msgid "workspace.options.layer-options.title" msgstr "Capa" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -#, unused msgid "workspace.options.layer-options.title.group" msgstr "Capas de grupo" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -#, unused msgid "workspace.options.layer-options.title.multiple" msgstr "Capas seleccionadas" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout-item.advanced-ops" msgstr "Opciones avanzadas" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:564 +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs msgid "workspace.options.layout-item.layout-item-max-h" msgstr "Altura.Max" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:531 +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs msgid "workspace.options.layout-item.layout-item-max-w" msgstr "Ancho.Max" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:548 +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs msgid "workspace.options.layout-item.layout-item-min-h" msgstr "Altura.Min" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:515 +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs msgid "workspace.options.layout-item.layout-item-min-w" msgstr "Ancho.Min" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout-item.title.layout-item-max-h" msgstr "Altura máxima" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout-item.title.layout-item-max-w" msgstr "Ancho máximo" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout-item.title.layout-item-min-h" msgstr "Altura mínima" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout-item.title.layout-item-min-w" msgstr "Ancho mínimo" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.bottom" msgstr "Abajo" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.direction.column" msgstr "Columna" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.direction.column-reverse" msgstr "Columna invertida" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.direction.row" msgstr "Fila" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.direction.row-reverse" msgstr "Fila invertida" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.gap" msgstr "Espacio" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.left" msgstr "Izquierda" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout.margin" msgstr "Margen" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout.margin-all" msgstr "Todos" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout.margin-simple" msgstr "Margen sencillo" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.packed" msgstr "juntar" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.padding" msgstr "Distancia interna" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.padding-all" msgstr "Todos" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.padding-simple" msgstr "Padding sencillo" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.right" msgstr "Derecha" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.space-around" msgstr "separar" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.space-between" msgstr "espaciar" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.top" msgstr "Arriba" -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:146 +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs msgid "workspace.options.more-colors" msgstr "Más colores" -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:123 +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs msgid "workspace.options.more-lib-colors" msgstr "Más colores de la biblioteca" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:161 msgid "workspace.options.opacity" msgstr "Opacidad" -#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.position" msgstr "Posición" -#: src/app/main/ui/workspace/sidebar/options.cljs:157 +#: src/app/main/ui/workspace/sidebar/options.cljs msgid "workspace.options.prototype" msgstr "Prototipo" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:469, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:481 msgid "workspace.options.radius" msgstr "Radio" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:513 +#: 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:522 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.radius-bottom-right" msgstr "Abajo derecha" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:495 +#: 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:504 +#: 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:532 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.radius.all-corners" msgstr "Todas las esquinas" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:533 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.radius.single-corners" msgstr "Esquinas individuales" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:183 msgid "workspace.options.recent-fonts" msgstr "Recientes" -#: src/app/main/ui/export.cljs:284 +#: 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 "Reintentar" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:451 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.rotation" msgstr "Rotación" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:180 msgid "workspace.options.search-font" msgstr "Buscar fuente" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:741 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.select-a-shape" msgstr "" "Selecciona una figura, tablero o grupo para arrastrar una conexión a otro " "tablero." -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:105 +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs msgid "workspace.options.selection-color" msgstr "Colores seleccionados" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:47 +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs msgid "workspace.options.selection-fill" msgstr "Relleno de selección" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:41 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.selection-stroke" msgstr "Borde de selección" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:40, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:198, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:200 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.blur" msgstr "Desenfoque" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:238 msgid "workspace.options.shadow-options.color" msgstr "Color de sombra" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:144 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.drop-shadow" msgstr "Sombra arrojada" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:145 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.inner-shadow" msgstr "Sombra interior" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:38, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:186 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.offsetx" msgstr "X" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:39, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:224 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.offsety" msgstr "Y" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:41, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:211, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:213 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.spread" msgstr "Difusión" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:296 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.title" msgstr "Sombra" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:295 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.title.group" msgstr "Sombra del grupo" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:294 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.title.multiple" msgstr "Sombras de la seleccíón" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:193 +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs msgid "workspace.options.show-fill-on-export" msgstr "Mostrar al exportar" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:562 msgid "workspace.options.show-in-viewer" msgstr "Mostrar en modo visualización" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:162 +#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.size" msgstr "Tamaño" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:355 +#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs msgid "workspace.options.size-presets" msgstr "Tamaños predefinidos" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:43 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke" msgstr "Borde" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -#, unused msgid "workspace.options.stroke-cap.circle-marker" msgstr "Marcador círculo" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:129 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.circle-marker-short" msgstr "Círculo" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -#, unused msgid "workspace.options.stroke-cap.diamond-marker" msgstr "Marcador diamante" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:130 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.diamond-marker-short" msgstr "Diamante" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -#, unused msgid "workspace.options.stroke-cap.line-arrow" msgstr "Flecha de línea" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:126 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.line-arrow-short" msgstr "Flecha" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:124 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.none" msgstr "Ninguno" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:132 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.round" msgstr "Redondo" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:133 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.square" msgstr "Cuadrado" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -#, unused msgid "workspace.options.stroke-cap.square-marker" msgstr "Marcador cuadrado" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:128 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.square-marker-short" msgstr "Rectángulo" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -#, unused msgid "workspace.options.stroke-cap.triangle-arrow" msgstr "Flecha triángulo" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:127 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.triangle-arrow-short" msgstr "Triángulo" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:192 msgid "workspace.options.stroke-color" msgstr "Color del trazo" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:165 msgid "workspace.options.stroke-width" msgstr "Ancho del trazo" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:87 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.center" msgstr "Centro" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:105 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.dashed" msgstr "Rayado" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:104 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.dotted" msgstr "Punteado" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:88 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.inner" msgstr "Interior" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:106 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.mixed" msgstr "Mezclado" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:89 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.outer" msgstr "Exterior" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:103 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.solid" msgstr "Sólido" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:115 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.align-bottom" msgstr "Alinear abajo" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:111 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.align-middle" msgstr "Alinear al centro" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:107 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.align-top" msgstr "Alinear arriba" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:82 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.direction-ltr" msgstr "LTR" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:87 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.direction-rtl" msgstr "RTL" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:149 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.grow-auto-height" msgstr "Alto automático" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:145 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.grow-auto-width" msgstr "Ancho automático" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:141 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.grow-fixed" msgstr "Fijo" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:381 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.options.text-options.letter-spacing" msgstr "Espaciado entre letras" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:364 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.options.text-options.line-height" msgstr "Altura de línea" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused msgid "workspace.options.text-options.lowercase" msgstr "Minúsculas" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.options.text-options.none" msgstr "Nada" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:176 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.strikethrough" msgstr "Tachado (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:51 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.text-align-center" msgstr "Alinear al centro (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:59 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.text-align-justify" msgstr "Justificar (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:47 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.text-align-left" msgstr "Alinear a la izquierda (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:55 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.text-align-right" msgstr "Alinear a la derecha (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:189 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.title" msgstr "Texto" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:188 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.title-group" msgstr "Texto de grupo" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:187 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.title-selection" msgstr "Texto de selección" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused msgid "workspace.options.text-options.titlecase" msgstr "Título" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:171 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.underline" msgstr "Subrayado (%s)" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused msgid "workspace.options.text-options.uppercase" msgstr "Mayúsculas" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:745 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.use-play-button" msgstr "Usa el botón de play de la cabecera para arrancar la vista de prototipo." -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:395 msgid "workspace.options.width" msgstr "Ancho" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:427 msgid "workspace.options.x" msgstr "eje X" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:438 msgid "workspace.options.y" msgstr "eje Y" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:167 msgid "workspace.path.actions.add-node" msgstr "Añadir nodo (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:174 msgid "workspace.path.actions.delete-node" msgstr "Borrar nodos (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:152 msgid "workspace.path.actions.draw-nodes" msgstr "Dibujar nodos (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:189 msgid "workspace.path.actions.join-nodes" msgstr "Unir nodos (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:204 msgid "workspace.path.actions.make-corner" msgstr "Convertir en esquina (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:211 msgid "workspace.path.actions.make-curve" msgstr "Convertir en curva (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:182 msgid "workspace.path.actions.merge-nodes" msgstr "Fusionar nodos (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:159 msgid "workspace.path.actions.move-nodes" msgstr "Mover nodes (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:196 msgid "workspace.path.actions.separate-nodes" msgstr "Separar nodos (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:218 msgid "workspace.path.actions.snap-nodes" msgstr "Alinear nodos (%s)" -#: src/app/main/ui/workspace/plugins.cljs:55 -msgid "workspace.plugins.button-open" -msgstr "Abrir" - -#: src/app/main/ui/workspace/plugins.cljs:164 -msgid "workspace.plugins.empty-plugins" -msgstr "No se encuentran extensiones" - -#: src/app/main/ui/workspace/plugins.cljs:157 -msgid "workspace.plugins.error.url" -msgstr "La extensión no existe o la url no es correcta." - -#: src/app/main/ui/workspace/plugins.cljs:153 -msgid "workspace.plugins.install" -msgstr "Instalar" - -#: src/app/main/ui/workspace/plugins.cljs:170 -msgid "workspace.plugins.installed-plugins" -msgstr "Extensiones instaladas" - -#: src/app/main/ui/workspace/main_menu.cljs:624 -msgid "workspace.plugins.menu.plugins-manager" -msgstr "Gestor de extensiones" - -#: src/app/main/ui/workspace/main_menu.cljs:765 -msgid "workspace.plugins.menu.title" -msgstr "Extensiones" - -#: src/app/main/ui/workspace/plugins.cljs:218 -msgid "workspace.plugins.permissions.content-read" -msgstr "Leer el contenido de sus archivos." - -#: src/app/main/ui/workspace/plugins.cljs:224 -msgid "workspace.plugins.permissions.content-write" -msgstr "Leer y modificar el contenido de sus archivos." - -#: src/app/main/ui/workspace/plugins.cljs:212 -msgid "workspace.plugins.permissions.disclaimer" -msgstr "Tenga en cuenta que esta extensión ha sido desarrollada por terceros." - -#: src/app/main/ui/workspace/plugins.cljs:236 -msgid "workspace.plugins.permissions.library-read" -msgstr "Leer la información de sus bibliotecas y recursos." - -#: src/app/main/ui/workspace/plugins.cljs:239 -msgid "workspace.plugins.permissions.library-write" -msgstr "Leer y modificar la información de sus bibliotecas y recursos." - -#: src/app/main/ui/workspace/plugins.cljs:204 -msgid "workspace.plugins.permissions.title" -msgstr "LA EXTENSIÓN SOLICITA PERMISO PARA ACCEDER:" - -#: src/app/main/ui/workspace/plugins.cljs:230 -msgid "workspace.plugins.permissions.user-read" -msgstr "Leer la información del usuario actual." - -#: src/app/main/ui/workspace/plugins.cljs:166 -msgid "workspace.plugins.plugin-list-link" -msgstr "Lista de extensiones" - -#: src/app/main/ui/workspace/plugins.cljs:149 -msgid "workspace.plugins.search-placeholder" -msgstr "Intruduzca URL de la extensión" - -#, unused -msgid "workspace.plugins.success" -msgstr "Extensión cargada correctamente." - -#: src/app/main/ui/workspace/plugins.cljs:143 -msgid "workspace.plugins.title" -msgstr "Extensiones" - -#: src/app/main/ui/workspace/context_menu.cljs:441 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.add-flex" msgstr "Añadir flex layout" -#: src/app/main/ui/workspace/context_menu.cljs:445 msgid "workspace.shape.menu.add-grid" msgstr "Añadir grid layout" -#: src/app/main/ui/workspace/context_menu.cljs:193 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.back" msgstr "Enviar al fondo" -#: src/app/main/ui/workspace/context_menu.cljs:190 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.backward" msgstr "Enviar atrás" -#: src/app/main/ui/workspace/context_menu.cljs:139 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.copy" msgstr "Copiar" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:427 msgid "workspace.shape.menu.create-annotation" msgstr "Crear una nota" -#: src/app/main/ui/workspace/context_menu.cljs:275 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.create-artboard-from-selection" msgstr "Tablero de selección" -#: src/app/main/ui/workspace/context_menu.cljs:465 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.create-component" msgstr "Crear componente" -#: src/app/main/ui/workspace/context_menu.cljs:469 msgid "workspace.shape.menu.create-multiple-components" msgstr "Crear múltiples componentes" -#: src/app/main/ui/workspace/context_menu.cljs:142 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.cut" msgstr "Cortar" -#: src/app/main/ui/workspace/context_menu.cljs:486 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.delete" msgstr "Eliminar" -#: src/app/main/ui/workspace/context_menu.cljs:391 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.delete-flow-start" msgstr "Eliminar inicio de flujo" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:432 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.detach-instance" msgstr "Desacoplar instancia" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:431 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.detach-instances-in-bulk" msgstr "Desacoplar instancias" -#: src/app/main/ui/workspace/context_menu.cljs:335, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:75 msgid "workspace.shape.menu.difference" msgstr "Diferencia" -#: src/app/main/ui/workspace/context_menu.cljs:148 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.duplicate" msgstr "Duplicar" -#: src/app/main/ui/workspace/context_menu.cljs:321 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.edit" msgstr "Editar" -#: src/app/main/ui/workspace/context_menu.cljs:341 msgid "workspace.shape.menu.exclude" msgstr "Exclusión" -#: src/app/main/ui/workspace/context_menu.cljs:348, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:89 msgid "workspace.shape.menu.flatten" msgstr "Aplanar" -#: src/app/main/ui/workspace/context_menu.cljs:208 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.flip-horizontal" msgstr "Voltear horizontal" -#: src/app/main/ui/workspace/context_menu.cljs:204 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.flip-vertical" msgstr "Voltear vertical" -#: src/app/main/ui/workspace/context_menu.cljs:394 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.flow-start" msgstr "Inicio de flujo" -#: src/app/main/ui/workspace/context_menu.cljs:184 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.forward" msgstr "Mover hacia delante" -#: src/app/main/ui/workspace/context_menu.cljs:187 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.front" msgstr "Mover al frente" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.go-main" msgstr "Ir al archivo del componente principal" -#: src/app/main/ui/workspace/context_menu.cljs:261 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.group" msgstr "Agrupar" -#: src/app/main/ui/workspace/context_menu.cljs:363, src/app/main/ui/workspace/sidebar/layer_item.cljs:145 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.hide" msgstr "Ocultar" -#: src/app/main/ui/workspace/context_menu.cljs:548, src/app/main/ui/workspace/main_menu.cljs:408 msgid "workspace.shape.menu.hide-ui" msgstr "Mostrar/Ocultar Interfaz" -#: src/app/main/ui/workspace/context_menu.cljs:338 msgid "workspace.shape.menu.intersection" msgstr "Intersección" -#: src/app/main/ui/workspace/context_menu.cljs:371, src/app/main/ui/workspace/sidebar/layer_item.cljs:153 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.lock" msgstr "Bloquear" -#: src/app/main/ui/workspace/context_menu.cljs:266 +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.mask" msgstr "Crear máscara" -#: src/app/main/ui/workspace/context_menu.cljs:145, src/app/main/ui/workspace/context_menu.cljs:545 +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.paste" msgstr "Pegar" -#: src/app/main/ui/workspace/context_menu.cljs:331 msgid "workspace.shape.menu.path" msgstr "Ruta" -#: src/app/main/ui/workspace/context_menu.cljs:432 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.remove-flex" msgstr "Eliminar flex layout" -#: src/app/main/ui/workspace/context_menu.cljs:435 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.remove-grid" msgstr "Eliminar grid layout" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:436 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.reset-overrides" msgstr "Deshacer modificaciones" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:439 msgid "workspace.shape.menu.restore-main" msgstr "Restaurar componente principal" -#: src/app/main/ui/workspace/context_menu.cljs:174 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.select-layer" msgstr "Seleccionar capa" -#: src/app/main/ui/workspace/context_menu.cljs:360, src/app/main/ui/workspace/sidebar/layer_item.cljs:144 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.show" msgstr "Mostrar" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:424 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.show-in-assets" msgstr "Ver en el panel de recursos" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:442, src/app/main/ui/workspace/sidebar/assets/components.cljs:586 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.show-main" msgstr "Ver componente principal" -#: src/app/main/ui/workspace/context_menu.cljs:221 msgid "workspace.shape.menu.thumbnail-remove" msgstr "Quitar miniatura" -#: src/app/main/ui/workspace/context_menu.cljs:223 msgid "workspace.shape.menu.thumbnail-set" msgstr "Poner como miniatura" -#: src/app/main/ui/workspace/context_menu.cljs:326 msgid "workspace.shape.menu.transform-to-path" msgstr "Convertir en vector" -#: src/app/main/ui/workspace/context_menu.cljs:257 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.ungroup" msgstr "Desagrupar" -#: src/app/main/ui/workspace/context_menu.cljs:332, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:70 msgid "workspace.shape.menu.union" msgstr "Unión" -#: src/app/main/ui/workspace/context_menu.cljs:368, src/app/main/ui/workspace/sidebar/layer_item.cljs:152 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.unlock" msgstr "Desbloquear" -#: src/app/main/ui/workspace/context_menu.cljs:271 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.unmask" msgstr "Quitar máscara" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.update-components-in-bulk" msgstr "Actualizar componentes" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:445 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.update-main" msgstr "Actualizar componente principal" -#: src/app/main/ui/components/tab_container.cljs:50 msgid "workspace.sidebar.collapse" msgstr "Cerrar barra lateral" -#: src/app/main/ui/workspace/sidebar/collapsable_button.cljs:26 msgid "workspace.sidebar.expand" msgstr "Abrir barra lateral" -#: src/app/main/ui/workspace/right_header.cljs:231, src/app/main/ui/workspace/right_header.cljs:232 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.sidebar.history" msgstr "Historial (%s)" -#: src/app/main/ui/workspace/sidebar/layers.cljs:522, src/app/main/ui/workspace/sidebar.cljs:100 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.sidebar.layers" msgstr "Capas" -#: src/app/main/ui/workspace/sidebar/layers.cljs:308, src/app/main/ui/workspace/sidebar/layers.cljs:380 msgid "workspace.sidebar.layers.components" msgstr "Componentes" -#: src/app/main/ui/workspace/sidebar/layers.cljs:305, src/app/main/ui/workspace/sidebar/layers.cljs:338 msgid "workspace.sidebar.layers.frames" msgstr "Paneles" -#: src/app/main/ui/workspace/sidebar/layers.cljs:306, src/app/main/ui/workspace/sidebar/layers.cljs:352 msgid "workspace.sidebar.layers.groups" msgstr "Grupos" -#: src/app/main/ui/workspace/sidebar/layers.cljs:310, src/app/main/ui/workspace/sidebar/layers.cljs:408 msgid "workspace.sidebar.layers.images" msgstr "Imágenes" -#: src/app/main/ui/workspace/sidebar/layers.cljs:307, src/app/main/ui/workspace/sidebar/layers.cljs:366 msgid "workspace.sidebar.layers.masks" msgstr "Máscaras" -#: src/app/main/ui/workspace/sidebar/layers.cljs:289 msgid "workspace.sidebar.layers.search" msgstr "Buscar capas" -#: src/app/main/ui/workspace/sidebar/layers.cljs:311, src/app/main/ui/workspace/sidebar/layers.cljs:422 msgid "workspace.sidebar.layers.shapes" msgstr "Formas" -#: src/app/main/ui/workspace/sidebar/layers.cljs:309, src/app/main/ui/workspace/sidebar/layers.cljs:394 msgid "workspace.sidebar.layers.texts" msgstr "Textos" -#: src/app/main/ui/viewer/inspect/attributes/svg.cljs:56, src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs:91 +#: src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs, +#: src/app/main/ui/inspect/attributes/svg.cljs msgid "workspace.sidebar.options.svg-attrs.title" msgstr "Atributos del SVG Importado" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs:217 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs msgid "workspace.sidebar.sitemap" msgstr "Páginas" -#: src/app/main/ui/workspace/left_header.cljs:91 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.sitemap" msgstr "Mapa del sitio" -#: src/app/main/ui/workspace/sidebar.cljs:120 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.assets" msgstr "Recursos" -#: src/app/main/ui/workspace/palette.cljs:165, src/app/main/ui/workspace/palette.cljs:166 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.color-palette" msgstr "Paleta de colores (%s)" -#: src/app/main/ui/workspace/right_header.cljs:220, src/app/main/ui/workspace/right_header.cljs:221 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.comments" msgstr "Comentarios (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:180, src/app/main/ui/workspace/top_toolbar.cljs:181 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.curve" msgstr "Curva (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:160, src/app/main/ui/workspace/top_toolbar.cljs:161 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.ellipse" msgstr "Elipse (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:142, src/app/main/ui/workspace/top_toolbar.cljs:143 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.frame" msgstr "Tablero (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:59, src/app/main/ui/workspace/top_toolbar.cljs:60 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.image" msgstr "Imagen (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:132, src/app/main/ui/workspace/top_toolbar.cljs:133 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.move" msgstr "Mover (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:189, src/app/main/ui/workspace/top_toolbar.cljs:190 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.path" msgstr "Ruta (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:151, src/app/main/ui/workspace/top_toolbar.cljs:152 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.rect" msgstr "Rectángulo (%s)" #: src/app/main/ui/workspace/left_toolbar.cljs -#, unused msgid "workspace.toolbar.shortcuts" msgstr "Atajos de teclado (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:169, src/app/main/ui/workspace/top_toolbar.cljs:170 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.text" msgstr "Texto (%s)" -#: src/app/main/ui/workspace/palette.cljs:173, src/app/main/ui/workspace/palette.cljs:174 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.text-palette" msgstr "Tipografías (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:216, src/app/main/ui/workspace/top_toolbar.cljs:217 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.toggle-toolbar" msgstr "Alternar barra de herramientas" -#: src/app/main/ui/workspace/viewport/top_bar.cljs:38 msgid "workspace.top-bar.read-only.done" msgstr "Hecho" -#: src/app/main/ui/workspace/viewport/top_bar.cljs:35 #, markdown msgid "workspace.top-bar.view-only" msgstr "**Inspeccionando código** (View only)" -#: src/app/main/ui/workspace/sidebar/history.cljs:342 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.empty" msgstr "Todavía no hay cambios en el histórico" -#: src/app/main/ui/workspace/sidebar/history.cljs:147 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.entry.delete" msgstr "%s eliminado" -#: src/app/main/ui/workspace/sidebar/history.cljs:146 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.entry.modify" msgstr "%s modificado" -#: src/app/main/ui/workspace/sidebar/history.cljs:148 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.entry.move" msgstr "Objetos movidos" -#: src/app/main/ui/workspace/sidebar/history.cljs:111 msgid "workspace.undo.entry.multiple.circle" msgstr "círculos" -#: src/app/main/ui/workspace/sidebar/history.cljs:112 msgid "workspace.undo.entry.multiple.color" msgstr "colores" -#: src/app/main/ui/workspace/sidebar/history.cljs:113 msgid "workspace.undo.entry.multiple.component" msgstr "componentes" -#: src/app/main/ui/workspace/sidebar/history.cljs:114 msgid "workspace.undo.entry.multiple.curve" msgstr "curvas" -#: src/app/main/ui/workspace/sidebar/history.cljs:115 msgid "workspace.undo.entry.multiple.frame" msgstr "mesa de trabajo" -#: src/app/main/ui/workspace/sidebar/history.cljs:116 msgid "workspace.undo.entry.multiple.group" msgstr "grupos" -#: src/app/main/ui/workspace/sidebar/history.cljs:117 msgid "workspace.undo.entry.multiple.media" msgstr "gráficos" -#: src/app/main/ui/workspace/sidebar/history.cljs:118 msgid "workspace.undo.entry.multiple.multiple" msgstr "objetos" -#: src/app/main/ui/workspace/sidebar/history.cljs:119 msgid "workspace.undo.entry.multiple.page" msgstr "páginas" -#: src/app/main/ui/workspace/sidebar/history.cljs:120 msgid "workspace.undo.entry.multiple.path" msgstr "trazos" -#: src/app/main/ui/workspace/sidebar/history.cljs:121 msgid "workspace.undo.entry.multiple.rect" msgstr "rectángulos" -#: src/app/main/ui/workspace/sidebar/history.cljs:122 msgid "workspace.undo.entry.multiple.shape" msgstr "formas" -#: src/app/main/ui/workspace/sidebar/history.cljs:123 msgid "workspace.undo.entry.multiple.text" msgstr "textos" -#: src/app/main/ui/workspace/sidebar/history.cljs:124 msgid "workspace.undo.entry.multiple.typography" msgstr "tipografías" -#: src/app/main/ui/workspace/sidebar/history.cljs:145 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.entry.new" msgstr "Nuevo %s" -#: src/app/main/ui/workspace/sidebar/history.cljs:125 msgid "workspace.undo.entry.single.circle" msgstr "círculo" -#: src/app/main/ui/workspace/sidebar/history.cljs:126 msgid "workspace.undo.entry.single.color" msgstr "color" -#: src/app/main/ui/workspace/sidebar/history.cljs:127 msgid "workspace.undo.entry.single.component" msgstr "componente" -#: src/app/main/ui/workspace/sidebar/history.cljs:128 msgid "workspace.undo.entry.single.curve" msgstr "curva" -#: src/app/main/ui/workspace/sidebar/history.cljs:129 msgid "workspace.undo.entry.single.frame" msgstr "mesa de trabajo" -#: src/app/main/ui/workspace/sidebar/history.cljs:130 msgid "workspace.undo.entry.single.group" msgstr "grupo" -#: src/app/main/ui/workspace/sidebar/history.cljs:131 msgid "workspace.undo.entry.single.image" msgstr "imagen" -#: src/app/main/ui/workspace/sidebar/history.cljs:132 msgid "workspace.undo.entry.single.media" msgstr "gráfico" -#: src/app/main/ui/workspace/sidebar/history.cljs:133 msgid "workspace.undo.entry.single.multiple" msgstr "objeto" -#: src/app/main/ui/workspace/sidebar/history.cljs:134 msgid "workspace.undo.entry.single.page" msgstr "página" -#: src/app/main/ui/workspace/sidebar/history.cljs:135 msgid "workspace.undo.entry.single.path" msgstr "trazo" -#: src/app/main/ui/workspace/sidebar/history.cljs:136 msgid "workspace.undo.entry.single.rect" msgstr "rectángulo" -#: src/app/main/ui/workspace/sidebar/history.cljs:137 msgid "workspace.undo.entry.single.shape" msgstr "forma" -#: src/app/main/ui/workspace/sidebar/history.cljs:138 msgid "workspace.undo.entry.single.text" msgstr "texto" -#: src/app/main/ui/workspace/sidebar/history.cljs:139 msgid "workspace.undo.entry.single.typography" msgstr "tipografía" -#: src/app/main/ui/workspace/sidebar/history.cljs:149 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.entry.unknown" msgstr "Operación sobre %s" -#: src/app/main/ui/workspace/sidebar/history.cljs:335 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.title" msgstr "Histórico" -#: src/app/main/data/workspace/libraries.cljs:1094 +#: src/app/main/data/workspace/libraries.cljs msgid "workspace.updates.dismiss" msgstr "Ignorar" -#: src/app/main/data/workspace/libraries.cljs:1092 +#: src/app/main/data/workspace/libraries.cljs msgid "workspace.updates.more-info" msgstr "Más información" -#: src/app/main/data/workspace/libraries.cljs:1090 +#: src/app/main/data/workspace/libraries.cljs msgid "workspace.updates.there-are-updates" msgstr "Hay actualizaciones en bibliotecas compartidas" -#: src/app/main/data/workspace/libraries.cljs:1097 +#: src/app/main/data/workspace/libraries.cljs msgid "workspace.updates.update" msgstr "Actualizar" -#, unused msgid "workspace.viewport.click-to-close-path" msgstr "Pulsar para cerrar la ruta" + +msgid "workspace.plugins.title" +msgstr "Extensiones" + +msgid "workspace.plugins.search-placeholder" +msgstr "Intruduzca URL de la extensión" + +msgid "workspace.plugins.install" +msgstr "Instalar" + +msgid "workspace.plugins.installed-plugins" +msgstr "Extensiones instaladas" + +msgid "workspace.plugins.empty-plugins" +msgstr "No se encuentran extensiones" + +msgid "workspace.plugins.button-open" +msgstr "Abrir" + +msgid "workspace.plugins.error.url" +msgstr "La extensión no existe o la url no es correcta." + +msgid "workspace.plugins.success" +msgstr "Extensión cargada correctamente." + +msgid "workspace.plugins.menu.title" +msgstr "Extensiones" + +msgid "workspace.plugins.menu.plugins-manager" +msgstr "Gestor de extensiones" + +msgid "workspace.plugins.plugin-list-link" +msgstr "Lista de extensiones" + +msgid "workspace.plugins.permissions.title" +msgstr "LA EXTENSIÓN SOLICITA PERMISO PARA ACCEDER:" + +msgid "workspace.plugins.permissions.disclaimer" +msgstr "Tenga en cuenta que esta extensión ha sido desarrollada por terceros." + +msgid "workspace.plugins.permissions.content-read" +msgstr "Leer el contenido de sus archivos." + +msgid "workspace.plugins.permissions.content-write" +msgstr "Leer y modificar el contenido de sus archivos." + +msgid "workspace.plugins.permissions.user-read" +msgstr "Leer la información del usuario actual." + +msgid "workspace.plugins.permissions.library-read" +msgstr "Leer la información de sus bibliotecas y recursos." + +msgid "workspace.plugins.permissions.library-write" +msgstr "Leer y modificar la información de sus bibliotecas y recursos." diff --git a/frontend/translations/es_419.po b/frontend/translations/es_419.po index 3660b7aae2..97dfd69884 100644 --- a/frontend/translations/es_419.po +++ b/frontend/translations/es_419.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "PO-Revision-Date: 2024-06-17 08:07+0000\n" "Last-Translator: Anonymous \n" -"Language-Team: Spanish (Latin America) " -"\n" +"Language-Team: Spanish (Latin America) \n" "Language: es_419\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" @@ -11,411 +11,380 @@ msgstr "" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 5.6-dev\n" -#: src/app/main/ui/auth/register.cljs:151, src/app/main/ui/viewer/login.cljs:104 +#: src/app/main/ui/auth/register.cljs msgid "auth.already-have-account" msgstr "¿Ya tienes una cuenta?" -#: src/app/main/ui/auth/register.cljs:299 +#: src/app/main/ui/auth/register.cljs msgid "auth.check-your-email" msgstr "" "Revise su correo electrónico y haga clic en el enlace para verificar y " "comenzar a usar Penpot." -#: src/app/main/ui/auth/recovery.cljs:78 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.confirm-password" msgstr "Confirmar Contraseña" -#: src/app/main/ui/auth/register.cljs:163 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.create-demo-account" msgstr "Crear cuenta demo" #: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs -#, unused msgid "auth.create-demo-profile" msgstr "¿Solo quieres probarlo?" -#: src/app/main/ui/auth/login.cljs:43 +#: src/app/main/ui/auth/register.cljs msgid "auth.demo-warning" msgstr "" "Este es un servicio DEMO, NO LO UTILICE para trabajos reales, los proyectos " "se borrarán periódicamente." -#: src/app/main/ui/auth/login.cljs:189, src/app/main/ui/viewer/login.cljs:90 +#: src/app/main/ui/auth/login.cljs msgid "auth.forgot-password" msgstr "¿Has olvidado tu contraseña?" -#: src/app/main/ui/auth/register.cljs:254 +#: src/app/main/ui/auth/register.cljs msgid "auth.fullname" msgstr "Nombre completo" -#: src/app/main/ui/auth/register.cljs:155, src/app/main/ui/viewer/login.cljs:107 +#: src/app/main/ui/auth/register.cljs +#, fuzzy msgid "auth.login-here" msgstr "Inicie sesión aquí" -#: src/app/main/ui/auth/login.cljs:195 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-submit" msgstr "Iniciar sesión" -#: src/app/main/ui/auth/login.cljs:222 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-github-submit" msgstr "GitHub" -#: src/app/main/ui/auth/login.cljs:228 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-gitlab-submit" msgstr "GitLab" -#: src/app/main/ui/auth/login.cljs:216 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-google-submit" msgstr "Google" -#: src/app/main/ui/auth/login.cljs:201 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-ldap-submit" msgstr "LDAP" -#: src/app/main/ui/auth/login.cljs:234, src/app/main/ui/auth/login.cljs:255 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-oidc-submit" msgstr "Open ID" -#: src/app/main/ui/auth/register.cljs:217, src/app/main/ui/dashboard/team_form.cljs:76, src/app/main/ui/onboarding/team_choice.cljs:180, src/app/main/ui/settings/access_tokens.cljs:66, src/app/main/ui/settings/feedback.cljs:34, src/app/main/ui/settings/profile.cljs:45, src/app/main/ui/workspace/sidebar/assets/groups.cljs:108 +#: src/app/main/ui/settings/team-form.cljs, src/app/main/ui/auth/register.cljs, src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/onboarding/team_choice.cljs, src/app/main/ui/settings/access_tokens.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/settings/profile.cljs, src/app/main/ui/workspace/sidebar/assets.cljs msgid "auth.name.not-all-space" msgstr "El nombre debe contener algún carácter distinto al del espacio." -#: src/app/main/ui/auth/register.cljs:218, src/app/main/ui/dashboard/team_form.cljs:77, src/app/main/ui/onboarding/team_choice.cljs:181, src/app/main/ui/settings/access_tokens.cljs:67, src/app/main/ui/settings/feedback.cljs:33, src/app/main/ui/settings/profile.cljs:44, src/app/main/ui/workspace/sidebar/assets/groups.cljs:109 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/onboarding/team_choice.cljs, src/app/main/ui/settings/access_tokens.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/settings/profile.cljs, src/app/main/ui/workspace/sidebar/assets.cljs msgid "auth.name.too-long" msgstr "El nombre debe contener como máximo 250 caracteres." -#: src/app/main/ui/auth/recovery.cljs:71 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.new-password" msgstr "Escribe una nueva contraseña" -#: src/app/main/ui/auth/recovery.cljs:42 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.notifications.invalid-token-error" msgstr "El token de recuperación no es válido." -#: src/app/main/ui/auth/recovery.cljs:46 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.notifications.password-changed-successfully" msgstr "Contraseña cambiada correctamente" -#: src/app/main/ui/auth/recovery_request.cljs:57 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.notifications.profile-not-verified" msgstr "El perfil no está verificado, verifique el perfil antes de continuar." -#: src/app/main/ui/auth/recovery_request.cljs:40 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.notifications.recovery-token-sent" msgstr "" "El enlace de recuperación de contraseña ha sido enviado a su bandeja de " "entrada de su correo electrónico." -#: src/app/main/ui/auth/verify_token.cljs:47 +#: src/app/main/ui/auth/verify_token.cljs msgid "auth.notifications.team-invitation-accepted" msgstr "Se unió al equipo con éxito" -#: src/app/main/ui/auth/login.cljs:179, src/app/main/ui/auth/register.cljs:115 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.password" msgstr "Contraseña" -#: src/app/main/ui/auth/register.cljs:114 +#: src/app/main/ui/auth/register.cljs msgid "auth.password-length-hint" msgstr "Al menos 8 carácteres" -#: src/app/main/ui/auth/recovery.cljs:61, src/app/main/ui/auth/recovery.cljs:62, src/app/main/ui/auth/register.cljs:81, src/app/main/ui/settings/password.cljs:75, src/app/main/ui/settings/password.cljs:76, src/app/main/ui/settings/password.cljs:77 +#: src/app/main/ui/auth/register.cljs msgid "auth.password-not-empty" msgstr "La contraseña debe contener algún carácter que no sea espacio." -#: src/app/main/ui/auth.cljs:41 msgid "auth.privacy-policy" msgstr "Política de privacidad" -#: src/app/main/ui/auth/recovery_request.cljs:88 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-submit" msgstr "Recuperar contraseña" -#: src/app/main/ui/auth/recovery_request.cljs:101 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-subtitle" msgstr "Le enviaremos un correo electrónico con instrucciones" -#: src/app/main/ui/auth/recovery_request.cljs:100 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-title" msgstr "¿Has olvidado tu contraseña?" -#: src/app/main/ui/auth/recovery.cljs:82 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.recovery-submit" msgstr "cambia tu contraseña" -#: src/app/main/ui/auth/login.cljs:298, src/app/main/ui/viewer/login.cljs:93 +#: src/app/main/ui/auth/login.cljs msgid "auth.register" msgstr "¿No tienes cuenta aún?" -#: src/app/main/ui/auth/login.cljs:302, src/app/main/ui/auth/register.cljs:121, src/app/main/ui/auth/register.cljs:263, src/app/main/ui/viewer/login.cljs:97 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.register-submit" msgstr "Crea una cuenta" -#: src/app/main/ui/auth/register.cljs:140 +#: src/app/main/ui/auth/register.cljs msgid "auth.register-title" msgstr "Crea una cuenta" #: src/app/main/ui/auth.cljs -#, unused msgid "auth.sidebar-tagline" msgstr "La solución de código abierto para diseño y creación de prototipos." -#: src/app/main/ui/auth.cljs:33, src/app/main/ui/dashboard/sidebar.cljs:1022, src/app/main/ui/workspace/main_menu.cljs:150 msgid "auth.terms-of-service" msgstr "Términos de servicio" -#, unused msgid "auth.terms-privacy-agreement" msgstr "" "Al crear una nueva cuenta, acepta nuestros términos de servicio y política " "de privacidad." -#: src/app/main/ui/auth/register.cljs:297 +#: src/app/main/ui/auth/register.cljs msgid "auth.verification-email-sent" msgstr "Hemos enviado un correo electrónico de verificación" #: src/app/main/ui/onboarding/questions.cljs -#, unused msgid "branding-illustrations-marketing-pieces" msgstr "...marca, ilustraciones, piezas de marketing, etc." -#: src/app/main/ui/workspace/libraries.cljs:228 msgid "common.publish" msgstr "Publicar" -#: src/app/main/ui/viewer/share_link.cljs:304, src/app/main/ui/viewer/share_link.cljs:314 msgid "common.share-link.all-users" msgstr "Todos los usuarios de Penpot" -#: src/app/main/ui/viewer/share_link.cljs:198 msgid "common.share-link.confirm-deletion-link-description" msgstr "" "¿Estás seguro de que deseas eliminar este enlace? Si lo haces ya no estará " "disponible para nadie" -#: src/app/main/ui/viewer/share_link.cljs:259, src/app/main/ui/viewer/share_link.cljs:289 msgid "common.share-link.current-tag" msgstr "(actual)" -#: src/app/main/ui/viewer/share_link.cljs:207, src/app/main/ui/viewer/share_link.cljs:214 msgid "common.share-link.destroy-link" msgstr "Borrar enlace" -#: src/app/main/ui/viewer/share_link.cljs:221 msgid "common.share-link.get-link" msgstr "Conseguir enlace" -#: src/app/main/ui/viewer/share_link.cljs:139 msgid "common.share-link.link-copied-success" msgstr "Enlace copiado exitosamente" -#: src/app/main/ui/viewer/share_link.cljs:231 msgid "common.share-link.manage-ops" msgstr "Administrar permisos" -#: src/app/main/ui/viewer/share_link.cljs:277 msgid "common.share-link.page-shared" msgid_plural "common.share-link.page-shared" msgstr[0] "1 página compartida" msgstr[1] "%s paginas compartidas" -#: src/app/main/ui/viewer/share_link.cljs:298 msgid "common.share-link.permissions-can-comment" msgstr "Puedes comentar" -#: src/app/main/ui/viewer/share_link.cljs:308 msgid "common.share-link.permissions-can-inspect" msgstr "Puedes inspeccionar el código" -#: src/app/main/ui/viewer/share_link.cljs:193 msgid "common.share-link.permissions-hint" msgstr "Cualquier persona con enlace tendrá acceso" -#: src/app/main/ui/viewer/share_link.cljs:241 msgid "common.share-link.permissions-pages" msgstr "Páginas compartidas" -#: src/app/main/ui/viewer/share_link.cljs:183 msgid "common.share-link.placeholder" msgstr "El enlace para compartir aparecerá aquí" -#: src/app/main/ui/viewer/share_link.cljs:303, src/app/main/ui/viewer/share_link.cljs:313 msgid "common.share-link.team-members" msgstr "Solo miembros del equipo" -#: src/app/main/ui/viewer/share_link.cljs:171 msgid "common.share-link.title" msgstr "Compartir prototipos" -#: src/app/main/ui/viewer/share_link.cljs:269 msgid "common.share-link.view-all" msgstr "Seleccionar todo" -#: src/app/main/ui/workspace/libraries.cljs:224 msgid "common.unpublish" msgstr "Despublicar" -#: src/app/main/ui/dashboard/projects.cljs:85 +#: src/app/main/ui/dashboard/projects.cljs msgid "dasboard.team-hero.management" msgstr "Gestión de equipos" -#: src/app/main/ui/dashboard/projects.cljs:84 +#: src/app/main/ui/dashboard/projects.cljs msgid "dasboard.team-hero.text" msgstr "" "Penpot está destinado a equipos. Invite a miembros a trabajar juntos en " "proyectos y archivos" -#: src/app/main/ui/dashboard/projects.cljs:82 +#: src/app/main/ui/dashboard/projects.cljs msgid "dasboard.team-hero.title" msgstr "¡En equipo!" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.tutorial-hero.info" msgstr "" "Aprenda los conceptos básicos en Penpot mientras se divierte con este " "tutorial práctico." #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.tutorial-hero.start" msgstr "Iniciar el tutorial" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.tutorial-hero.title" msgstr "Tutorial práctico" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.walkthrough-hero.info" msgstr "Date un paseo por Penpot y conoce sus principales características." #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.walkthrough-hero.start" msgstr "Iniciar el recorrido" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.walkthrough-hero.title" msgstr "Tutorial de la interfaz" -#: src/app/main/ui/settings/access_tokens.cljs:115 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.copied-success" msgstr "Token copiado" -#: src/app/main/ui/settings/access_tokens.cljs:202 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.create" msgstr "Generar nuevo token" -#: src/app/main/ui/settings/access_tokens.cljs:76 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.create.success" msgstr "Token de acceso creado correctamente." -#: src/app/main/ui/settings/access_tokens.cljs:300 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.empty.add-one" msgstr "Presione el botón \"Generar nuevo token\" para generar uno." -#: src/app/main/ui/settings/access_tokens.cljs:299 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.empty.no-access-tokens" msgstr "No tienes tokens hasta el momento." -#: src/app/main/ui/settings/access_tokens.cljs:53 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.errors-required-name" msgstr "El nombre es requerido" -#: src/app/main/ui/settings/access_tokens.cljs:147 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-180-days" msgstr "180 días" -#: src/app/main/ui/settings/access_tokens.cljs:144 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-30-days" msgstr "30 días" -#: src/app/main/ui/settings/access_tokens.cljs:145 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-60-days" msgstr "60 días" -#: src/app/main/ui/settings/access_tokens.cljs:146 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-90-days" msgstr "90 días" -#: src/app/main/ui/settings/access_tokens.cljs:143 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-never" msgstr "Nunca" -#: src/app/main/ui/settings/access_tokens.cljs:282 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expired-on" msgstr "Expirado el %s" -#: src/app/main/ui/settings/access_tokens.cljs:283 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expires-on" msgstr "Vence el %s" -#: src/app/main/ui/settings/access_tokens.cljs:281 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.no-expiration" msgstr "Sin fecha de vencimiento" -#: src/app/main/ui/settings/access_tokens.cljs:197 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.personal" msgstr "Tokens de acceso personal" -#: src/app/main/ui/settings/access_tokens.cljs:198 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.personal.description" msgstr "" "Los tokens de acceso personal funcionan como una alternativa a nuestro " "sistema de autenticación de inicio de sesión/contraseña y pueden usarse " "para permitir que una aplicación acceda a la API interna de Penpot" -#: src/app/main/ui/settings/access_tokens.cljs:154 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.token-will-expire" msgstr "El token caducará el %s" -#: src/app/main/ui/settings/access_tokens.cljs:155 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.token-will-not-expire" msgstr "El token no tiene fecha de vencimiento" -#: src/app/main/ui/dashboard/file_menu.cljs:291, src/app/main/ui/workspace/main_menu.cljs:572 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.add-shared" msgstr "Agregar como biblioteca compartida" -#: src/app/main/ui/settings/profile.cljs:75 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.change-email" msgstr "Cambiar el correo electrónico" -#: src/app/main/data/dashboard.cljs:762, src/app/main/data/dashboard.cljs:983 +#: src/app/main/data/dashboard.cljs, src/app/main/data/dashboard.cljs msgid "dashboard.copy-suffix" msgstr "(copiar)" -#: src/app/main/ui/dashboard/sidebar.cljs:338 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.create-new-team" msgstr "Crear nuevo equipo" -#: src/app/main/ui/components/context_menu_a11y.cljs:256, src/app/main/ui/dashboard/sidebar.cljs:646 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.default-team-name" msgstr "Tu Penpot" -#: src/app/main/ui/dashboard/sidebar.cljs:571 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.delete-team" msgstr "Eliminar equipo" -#: src/app/main/ui/dashboard/file_menu.cljs:296, src/app/main/ui/workspace/main_menu.cljs:589 msgid "dashboard.download-binary-file" msgstr "Descargar el archivo Penpot (.penpot)" -#: src/app/main/ui/dashboard/file_menu.cljs:300, src/app/main/ui/workspace/main_menu.cljs:597 msgid "dashboard.download-standard-file" msgstr "Descargar archivo estándar (.svg + .json)" -#: src/app/main/ui/dashboard/file_menu.cljs:276, src/app/main/ui/dashboard/project_menu.cljs:90 +#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.duplicate" msgstr "Duplicar" -#: src/app/main/ui/dashboard/file_menu.cljs:240 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.duplicate-multi" msgstr "Duplicar %s archivos" -#: src/app/main/ui/dashboard/placeholder.cljs:32 +#: src/app/main/ui/dashboard/grid.cljs #, markdown msgid "dashboard.empty-placeholder-drafts" msgstr "" @@ -423,172 +392,153 @@ msgstr "" "sus archivos o agréguelos desde nuestras [Libraries & " "templates](https://penpot.app/libraries-templates)." -#: src/app/main/ui/dashboard/file_menu.cljs:249 msgid "dashboard.export-binary-multi" msgstr "Descargar %s archivos Penpot (.penpot)" -#: src/app/main/ui/workspace/main_menu.cljs:605 msgid "dashboard.export-frames" msgstr "Exportar tableros como PDF" -#: src/app/main/ui/export.cljs:201 +#: src/app/main/ui/export.cljs msgid "dashboard.export-frames.title" msgstr "Exportar como PDF" -#, unused msgid "dashboard.export-multi" msgstr "Exportar %s archivos de Penpot" -#: src/app/main/ui/export.cljs:109 +#: src/app/main/ui/export.cljs msgid "dashboard.export-multiple.selected" msgstr "%s de %s elementos seleccionados" -#: src/app/main/ui/workspace/main_menu.cljs:578 +#: src/app/main/ui/workspace/header.cljs msgid "dashboard.export-shapes" msgstr "Exportar" -#: src/app/main/ui/export.cljs:180 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.how-to" msgstr "" "Puede agregar configuraciones de exportación a elementos desde las " "propiedades de diseño (en la parte inferior de la barra lateral derecha)." -#: src/app/main/ui/export.cljs:184 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.how-to-link" msgstr "Información sobre cómo configurar las exportaciones en Penpot." -#: src/app/main/ui/export.cljs:179 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.no-elements" msgstr "No hay elementos con configuración de exportación." -#: src/app/main/ui/export.cljs:190 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.title" msgstr "Selección de exportación" -#: src/app/main/ui/dashboard/file_menu.cljs:252 msgid "dashboard.export-standard-multi" msgstr "Descargar %s archivos estándar (.svg + .json)" -#: src/app/main/ui/export.cljs:427 msgid "dashboard.export.detail" msgstr "* Puede incluir componentes, gráficos, colores y/o tipografías." -#: src/app/main/ui/export.cljs:426 msgid "dashboard.export.explain" msgstr "" "Uno o más archivos que desea exportar utilizan bibliotecas compartidas. " "¿Qué quiere hacer con sus activos*?" -#: src/app/main/ui/export.cljs:435 msgid "dashboard.export.options.all.message" msgstr "" "Los archivos con bibliotecas compartidas se incluirán en la exportación, " "manteniendo su vinculación." -#: src/app/main/ui/export.cljs:436 msgid "dashboard.export.options.all.title" msgstr "Exportar bibliotecas compartidas" -#: src/app/main/ui/export.cljs:437 msgid "dashboard.export.options.detach.message" msgstr "" "Las bibliotecas compartidas no se incluirán en la exportación y no se " "agregarán activos a la biblioteca. " -#: src/app/main/ui/export.cljs:438 msgid "dashboard.export.options.detach.title" msgstr "Trate los activos de biblioteca compartidos como objetos básicos" -#: src/app/main/ui/export.cljs:439 msgid "dashboard.export.options.merge.message" msgstr "" "Su archivo se exportará con todos los activos externos combinados en la " "biblioteca de archivos." -#: src/app/main/ui/export.cljs:440 msgid "dashboard.export.options.merge.title" msgstr "Incluir recursos de biblioteca compartidos en bibliotecas de archivos" -#: src/app/main/ui/dashboard/import.cljs:147 msgid "dashboard.import.progress.process-typographies" msgstr "Procesamiento de tipografías" -#: src/app/main/ui/dashboard/import.cljs:135 msgid "dashboard.import.progress.upload-data" msgstr "Subiendo datos al servidor (%s/%s)" -#: src/app/main/ui/dashboard/import.cljs:138 msgid "dashboard.import.progress.upload-media" msgstr "Subiendo archivo: %s" -#: src/app/main/ui/dashboard/team.cljs:109 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.invite-profile" msgstr "Invitar a la gente" -#: src/app/main/ui/dashboard/sidebar.cljs:547, src/app/main/ui/dashboard/sidebar.cljs:556, src/app/main/ui/dashboard/sidebar.cljs:563, src/app/main/ui/dashboard/team.cljs:312 +#: src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.leave-team" msgstr "dejar el equipo" -#: src/app/main/ui/dashboard/templates.cljs:88, src/app/main/ui/dashboard/templates.cljs:163 msgid "dashboard.libraries-and-templates" msgstr "Bibliotecas y plantillas" -#: src/app/main/ui/dashboard/templates.cljs:164 msgid "dashboard.libraries-and-templates.explore" msgstr "Explore más de ellos y sepa cómo contribuir" -#: src/app/main/ui/dashboard/import.cljs:365 msgid "dashboard.libraries-and-templates.import-error" msgstr "Hubo un problema al importar la plantilla. La plantilla no fue importada." -#: src/app/main/ui/dashboard/libraries.cljs:53 +#: src/app/main/ui/dashboard/libraries.cljs msgid "dashboard.libraries-title" msgstr "Bibliotecas" -#: src/app/main/ui/dashboard/placeholder.cljs:45 +#: src/app/main/ui/dashboard/grid.cljs msgid "dashboard.loading-files" msgstr "cargando tus archivos…" -#: src/app/main/ui/dashboard/fonts.cljs:431 msgid "dashboard.loading-fonts" msgstr "cargando tus fuentes…" -#: src/app/main/ui/dashboard/file_menu.cljs:281, src/app/main/ui/dashboard/project_menu.cljs:100 +#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.move-to" msgstr "Mover a" -#: src/app/main/ui/dashboard/file_menu.cljs:245 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.move-to-multi" msgstr "Mover %s archivos a" -#: src/app/main/ui/dashboard/file_menu.cljs:226 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.move-to-other-team" msgstr "Pasar a otro equipo" -#: src/app/main/ui/dashboard/files.cljs:105, src/app/main/ui/dashboard/projects.cljs:252, src/app/main/ui/dashboard/projects.cljs:253 +#: src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/files.cljs msgid "dashboard.new-file" msgstr "+ Nuevo archivo" -#: src/app/main/data/dashboard.cljs:958, src/app/main/data/dashboard.cljs:1181 +#: src/app/main/data/dashboard.cljs msgid "dashboard.new-file-prefix" msgstr "Archivo nuevo" -#: src/app/main/ui/dashboard/projects.cljs:55 +#: src/app/main/ui/dashboard/projects.cljs msgid "dashboard.new-project" msgstr "+ Nuevo proyecto" -#: src/app/main/data/dashboard.cljs:726, src/app/main/data/dashboard.cljs:1184 +#: src/app/main/data/dashboard.cljs msgid "dashboard.new-project-prefix" msgstr "Nuevo proyecto" -#: src/app/main/ui/dashboard/search.cljs:60 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.no-matches-for" msgstr "No se encontraron coincidencias para \"%s\"" -#: src/app/main/ui/dashboard/sidebar.cljs:827 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.no-projects-placeholder" msgstr "Los proyectos fijados aparecerán aquí" -#: src/app/main/ui/auth/verify_token.cljs:33 +#: src/app/main/ui/auth/verify_token.cljs msgid "dashboard.notifications.email-changed-successfully" msgstr "Su dirección de correo electrónico se ha actualizado correctamente" diff --git a/frontend/translations/eu.po b/frontend/translations/eu.po index 9106c58a63..485001f16e 100644 --- a/frontend/translations/eu.po +++ b/frontend/translations/eu.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "PO-Revision-Date: 2024-06-17 08:07+0000\n" "Last-Translator: Anonymous \n" -"Language-Team: Basque " -"\n" +"Language-Team: Basque \n" "Language: eu\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" @@ -11,424 +11,379 @@ msgstr "" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 5.6-dev\n" -#: src/app/main/ui/auth/register.cljs:151, src/app/main/ui/viewer/login.cljs:104 +#: src/app/main/ui/auth/register.cljs msgid "auth.already-have-account" msgstr "Baduzu kontua?" -#: src/app/main/ui/auth/register.cljs:299 +#: src/app/main/ui/auth/register.cljs msgid "auth.check-your-email" msgstr "" "Begiratu zure eposta eta egin klik egiaztapen estekan Penpot erabiltzen " "hasteko." -#: src/app/main/ui/auth/recovery.cljs:78 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.confirm-password" msgstr "Baieztatu pasahitza" -#: src/app/main/ui/auth/register.cljs:163 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.create-demo-account" msgstr "Sortu probak egiteko kontua" #: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs -#, unused msgid "auth.create-demo-profile" msgstr "Probatu egin nahi al duzu?" -#: src/app/main/ui/auth/login.cljs:43 +#: src/app/main/ui/auth/register.cljs msgid "auth.demo-warning" msgstr "" "Hau PROBAK EGITEKO zerbitzua da. EZ ERABILI benetako lana egiteko, hemengo " "proiektuak noizean behin ezabatu egingo dira." -#: src/app/main/ui/auth/login.cljs:189, src/app/main/ui/viewer/login.cljs:90 +#: src/app/main/ui/auth/login.cljs msgid "auth.forgot-password" msgstr "Pasahitza ahaztu duzu?" -#: src/app/main/ui/auth/register.cljs:254 +#: src/app/main/ui/auth/register.cljs msgid "auth.fullname" msgstr "Izen osoa" -#: src/app/main/ui/auth/register.cljs:155, src/app/main/ui/viewer/login.cljs:107 +#: src/app/main/ui/auth/register.cljs +#, fuzzy msgid "auth.login-here" msgstr "Sartu" -#: src/app/main/ui/auth/login.cljs:195 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-submit" msgstr "Sartu" -#: src/app/main/ui/auth/login.cljs:222 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-github-submit" msgstr "GitHub" -#: src/app/main/ui/auth/login.cljs:228 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-gitlab-submit" msgstr "GitLab" -#: src/app/main/ui/auth/login.cljs:216 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-google-submit" msgstr "Google" -#: src/app/main/ui/auth/login.cljs:201 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-ldap-submit" msgstr "LDAP" -#: src/app/main/ui/auth/login.cljs:234, src/app/main/ui/auth/login.cljs:255 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-oidc-submit" msgstr "OpenID" -#: src/app/main/ui/auth/recovery.cljs:71 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.new-password" msgstr "Sartu Pasahitz berria" -#: src/app/main/ui/auth/recovery.cljs:42 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.notifications.invalid-token-error" msgstr "Berreskuratzeko kodea ez da zuzena." -#: src/app/main/ui/auth/recovery.cljs:46 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.notifications.password-changed-successfully" msgstr "Pasahitza ondo aldatu da" -#: src/app/main/ui/auth/recovery_request.cljs:57 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.notifications.profile-not-verified" msgstr "Profila ez da oraindik egiaztatu, egiaztatu ezazu jarraitu aurretik." -#: src/app/main/ui/auth/recovery_request.cljs:40 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.notifications.recovery-token-sent" msgstr "Eposta mezu bat bidali dizugu zure pasahitza berreskuratzeko." -#: src/app/main/ui/auth/verify_token.cljs:47 +#: src/app/main/ui/auth/verify_token.cljs msgid "auth.notifications.team-invitation-accepted" msgstr "Taldera ondo gehitu zara" -#: src/app/main/ui/auth/login.cljs:179, src/app/main/ui/auth/register.cljs:115 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.password" msgstr "Pasahitza" -#: src/app/main/ui/auth/register.cljs:114 +#: src/app/main/ui/auth/register.cljs msgid "auth.password-length-hint" msgstr "Gutxienez 8 karaktere" -#: src/app/main/ui/auth.cljs:41 msgid "auth.privacy-policy" msgstr "Pribatutasun politika" -#: src/app/main/ui/auth/recovery_request.cljs:88 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-submit" msgstr "Berreskuratu pasahitza" -#: src/app/main/ui/auth/recovery_request.cljs:101 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-subtitle" msgstr "Mezu bat bidaliko dizugu epostaz jarraibideekin" -#: src/app/main/ui/auth/recovery_request.cljs:100 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-title" msgstr "Pasahitza ahaztu duzu?" -#: src/app/main/ui/auth/recovery.cljs:82 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.recovery-submit" msgstr "Aldatu pasahitza" -#: src/app/main/ui/auth/login.cljs:298, src/app/main/ui/viewer/login.cljs:93 +#: src/app/main/ui/auth/login.cljs msgid "auth.register" msgstr "Ez duzu konturik?" -#: src/app/main/ui/auth/login.cljs:302, src/app/main/ui/auth/register.cljs:121, src/app/main/ui/auth/register.cljs:263, src/app/main/ui/viewer/login.cljs:97 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.register-submit" msgstr "Sortu kontua" -#: src/app/main/ui/auth/register.cljs:140 +#: src/app/main/ui/auth/register.cljs msgid "auth.register-title" msgstr "Sortu kontua" #: src/app/main/ui/auth.cljs -#, unused msgid "auth.sidebar-tagline" msgstr "Diseinuak eta prototipoak egiteko kode irekiko soluzioa." -#: src/app/main/ui/auth.cljs:33, src/app/main/ui/dashboard/sidebar.cljs:1022, src/app/main/ui/workspace/main_menu.cljs:150 msgid "auth.terms-of-service" msgstr "Zerbitzuaren erabilpen-baldintzak" -#: src/app/main/ui/auth/register.cljs:297 +#: src/app/main/ui/auth/register.cljs msgid "auth.verification-email-sent" msgstr "Egiaztapen mezu bat bidali dugu helbide honetara" -#: src/app/main/ui/workspace/libraries.cljs:228 msgid "common.publish" msgstr "Argitaratu" -#: src/app/main/ui/viewer/share_link.cljs:304, src/app/main/ui/viewer/share_link.cljs:314 msgid "common.share-link.all-users" msgstr "Penpoten erabiltzaile guztiak" -#: src/app/main/ui/viewer/share_link.cljs:198 msgid "common.share-link.confirm-deletion-link-description" msgstr "Esteka ezabatu nahi duzu? Hori egiten baduzu, inori ez dio funtzionatuko" -#: src/app/main/ui/viewer/share_link.cljs:259, src/app/main/ui/viewer/share_link.cljs:289 msgid "common.share-link.current-tag" msgstr "(oraingoa)" -#: src/app/main/ui/viewer/share_link.cljs:207, src/app/main/ui/viewer/share_link.cljs:214 msgid "common.share-link.destroy-link" msgstr "Ezabatu esteka" -#: src/app/main/ui/viewer/share_link.cljs:221 msgid "common.share-link.get-link" msgstr "Lortu esteka" -#: src/app/main/ui/viewer/share_link.cljs:139 msgid "common.share-link.link-copied-success" msgstr "Esteka ondo kopiatu da" -#: src/app/main/ui/viewer/share_link.cljs:231 msgid "common.share-link.manage-ops" msgstr "Kudeatu baimenak" -#: src/app/main/ui/viewer/share_link.cljs:277 msgid "common.share-link.page-shared" msgid_plural "common.share-link.page-shared" msgstr[0] "Orrialde 1 partekatuta" msgstr[1] "%s orrialde partekatuta" -#: src/app/main/ui/viewer/share_link.cljs:298 msgid "common.share-link.permissions-can-comment" msgstr "Iruzkinak egin ditzakete" -#: src/app/main/ui/viewer/share_link.cljs:308 msgid "common.share-link.permissions-can-inspect" msgstr "Kodea ikus dezakete" -#: src/app/main/ui/viewer/share_link.cljs:193 msgid "common.share-link.permissions-hint" msgstr "Esteka duen edonor sar daiteke" -#: src/app/main/ui/viewer/share_link.cljs:241 msgid "common.share-link.permissions-pages" msgstr "Partekatutako orriak" -#: src/app/main/ui/viewer/share_link.cljs:183 msgid "common.share-link.placeholder" msgstr "Partekatzeko esteka hemen agertuko da" -#: src/app/main/ui/viewer/share_link.cljs:303, src/app/main/ui/viewer/share_link.cljs:313 msgid "common.share-link.team-members" msgstr "Taldeko kideak bakarrik" -#: src/app/main/ui/viewer/share_link.cljs:171 msgid "common.share-link.title" msgstr "Partekatu prototipoak" -#: src/app/main/ui/viewer/share_link.cljs:269 msgid "common.share-link.view-all" msgstr "Aukeratu guztiak" -#: src/app/main/ui/workspace/libraries.cljs:224 msgid "common.unpublish" msgstr "Argitaraketa atzera bota" -#: src/app/main/ui/dashboard/projects.cljs:85 +#: src/app/main/ui/dashboard/projects.cljs msgid "dasboard.team-hero.management" msgstr "Taldearen kudeaketa" -#: src/app/main/ui/dashboard/projects.cljs:84 +#: src/app/main/ui/dashboard/projects.cljs msgid "dasboard.team-hero.text" msgstr "" "Penpot taldeentzat sortuta dago. Gonbidatu beste pertsona batzuk proiektu " "eta fitxategietan batera lan egiteko" -#: src/app/main/ui/dashboard/projects.cljs:82 +#: src/app/main/ui/dashboard/projects.cljs msgid "dasboard.team-hero.title" msgstr "Egin taldea!" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.tutorial-hero.info" msgstr "Ikasi Penpoten oinarriak tutorial atsegin honekin." #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.tutorial-hero.start" msgstr "Hasi tutoriala" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.tutorial-hero.title" msgstr "Tutorial atsegina" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.walkthrough-hero.info" msgstr "" "Eman begirada bat Penpoti bere oinarrizko funtzionalitateak zein diren " "ezagutzeko." #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.walkthrough-hero.start" msgstr "Hasi" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.walkthrough-hero.title" msgstr "Interfazea ezagutu" -#: src/app/main/ui/dashboard/file_menu.cljs:291, src/app/main/ui/workspace/main_menu.cljs:572 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.add-shared" msgstr "Gehitu partekatutako liburutegi bezala" -#: src/app/main/ui/settings/profile.cljs:75 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.change-email" msgstr "Eposta aldatu" -#: src/app/main/data/dashboard.cljs:762, src/app/main/data/dashboard.cljs:983 +#: src/app/main/data/dashboard.cljs, src/app/main/data/dashboard.cljs msgid "dashboard.copy-suffix" msgstr "(kopia)" -#: src/app/main/ui/dashboard/sidebar.cljs:338 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.create-new-team" msgstr "Sortu talde berria" -#: src/app/main/ui/components/context_menu_a11y.cljs:256, src/app/main/ui/dashboard/sidebar.cljs:646 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.default-team-name" msgstr "Zure Penpot" -#: src/app/main/ui/dashboard/sidebar.cljs:571 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.delete-team" msgstr "Ezabatu taldea" -#: src/app/main/ui/dashboard/file_menu.cljs:296, src/app/main/ui/workspace/main_menu.cljs:589 msgid "dashboard.download-binary-file" msgstr "Deskargatu Penpot fitxategia (.penpot)" -#: src/app/main/ui/dashboard/file_menu.cljs:300, src/app/main/ui/workspace/main_menu.cljs:597 msgid "dashboard.download-standard-file" msgstr "Deskargatu fitxategi estandarra (.svg + .json)" -#: src/app/main/ui/dashboard/file_menu.cljs:276, src/app/main/ui/dashboard/project_menu.cljs:90 +#: src/app/main/ui/dashboard/project_menu.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.duplicate" msgstr "Bikoiztu" -#: src/app/main/ui/dashboard/file_menu.cljs:240 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.duplicate-multi" msgstr "%s fitxategi bizkoiztu" -#: src/app/main/ui/dashboard/placeholder.cljs:32 -#, markdown +#: src/app/main/ui/dashboard/grid.cljs msgid "dashboard.empty-placeholder-drafts" msgstr "" "Oh ez! Oraindik ez duzu fitxategirik! Txantiloi batekin proba egin nahi " "baduzu joan [Liburutegi eta " "txantiloiak](https://penpot.app/libraries-templates) atalera." -#: src/app/main/ui/dashboard/file_menu.cljs:249 msgid "dashboard.export-binary-multi" msgstr "Deskargatu %s Penpot fitxategi (.penpot)" -#: src/app/main/ui/workspace/main_menu.cljs:605 msgid "dashboard.export-frames" msgstr "Esportatu arbelak PDFra" -#: src/app/main/ui/export.cljs:201 +#: src/app/main/ui/export.cljs msgid "dashboard.export-frames.title" msgstr "Esportatu PDFra" -#, unused msgid "dashboard.export-multi" msgstr "Esportatu %s Penpot fitxategi" -#: src/app/main/ui/export.cljs:109 +#: src/app/main/ui/export.cljs msgid "dashboard.export-multiple.selected" msgstr "Aukeratutakoak: %s / %s" -#: src/app/main/ui/workspace/main_menu.cljs:578 +#: src/app/main/ui/workspace/header.cljs msgid "dashboard.export-shapes" msgstr "Esportatu" -#: src/app/main/ui/export.cljs:180 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.how-to" msgstr "" "Elementuei esportazioko ezarpenak gehitzeko aukeratu duzu diseinuaren " "propietateetatik (eskumako aldearen amaieran)." -#: src/app/main/ui/export.cljs:184 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.how-to-link" msgstr "Penpoten esportazioak konfiguratzeari buruzko informazioa." -#: src/app/main/ui/export.cljs:179 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.no-elements" msgstr "Ez dago esportazioko ezarpenik duen elementurik." -#: src/app/main/ui/export.cljs:190 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.title" msgstr "Esportatu aukeraketa" -#: src/app/main/ui/dashboard/file_menu.cljs:252 msgid "dashboard.export-standard-multi" msgstr "Deskargatu %s fitxategi estandar (.svn + .json)" -#: src/app/main/ui/export.cljs:427 msgid "dashboard.export.detail" msgstr "* Osagaiak, grafikoak, koloreak edo/eta tipografiak izan ditzakete." -#: src/app/main/ui/export.cljs:426 msgid "dashboard.export.explain" msgstr "" "Esportatu nahi duzun fitxategi bat edo gehiagok partekatutako liburutegiak " "darabiltzate. Zer egin nahi duzu baliabideekin*?" -#: src/app/main/ui/export.cljs:435 msgid "dashboard.export.options.all.message" msgstr "" "partekatutako liburutegiak dituzten fitxategiak esportazio paketean sartuko " "dira eta loturak mantenduko dituzte." -#: src/app/main/ui/export.cljs:436 msgid "dashboard.export.options.all.title" msgstr "Esportatu partekatutako liburutegiak" -#: src/app/main/ui/export.cljs:437 msgid "dashboard.export.options.detach.message" msgstr "" "Partekatutako liburutegiak ez dira esportazioan sartuko eta baliabide bat " "ere ez da liburutegian sartuko. " -#: src/app/main/ui/export.cljs:438 msgid "dashboard.export.options.detach.title" msgstr "Erabili baliabideak oinarrizko objektu bezala" -#: src/app/main/ui/export.cljs:439 msgid "dashboard.export.options.merge.message" msgstr "Zure fitxategia baliabide guztiak bere baitan dituela esportatuko da." -#: src/app/main/ui/export.cljs:440 msgid "dashboard.export.options.merge.title" msgstr "Sartu partekatutako liburutegiak fitxategiaren liburutegietan" -#: src/app/main/ui/export.cljs:418 msgid "dashboard.export.title" msgstr "Esportatu fitxategiak" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:309 msgid "dashboard.fonts.deleted-placeholder" msgstr "Letra-tipoa ondo ezabatu da" -#: src/app/main/ui/dashboard/fonts.cljs:206 +#: src/app/main/ui/dashboard/fonts.cljs msgid "dashboard.fonts.dismiss-all" msgstr "Baztertu guztiak" -#: src/app/main/ui/dashboard/fonts.cljs:436 msgid "dashboard.fonts.empty-placeholder" msgstr "Ez duzu pertsonalizatutako letra-tiporik." -#: src/app/main/ui/dashboard/fonts.cljs:194 +#: src/app/main/ui/dashboard/fonts.cljs msgid "dashboard.fonts.fonts-added" msgid_plural "dashboard.fonts.fonts-added" msgstr[0] "Letra-tipo 1 gehitu da" msgstr[1] "%s letra-tipo gehitu dira" -#: src/app/main/ui/dashboard/fonts.cljs:170 -#, markdown msgid "dashboard.fonts.hero-text1" msgstr "" "Hemen gehitutako edozein letra-tipo pertsonalizatu, talde honen fitxategien " @@ -437,8 +392,6 @@ msgstr "" "honetako letra-tipoak kargatu daitezke: **TTF, OTF and WOFF** (batekin " "nahikoa da)." -#: src/app/main/ui/dashboard/fonts.cljs:182 -#, markdown msgid "dashboard.fonts.hero-text2" msgstr "" "Zureak diren edo Penpoten erabiltzeko lizentzia duzun letra-tipoak bakarrik " @@ -448,12 +401,10 @@ msgstr "" "inguruan irakurtzea ere interesgarria izan daiteke: [letra-tipoen " "lizentziak](https://www.typography.com/faq)." -#: src/app/main/ui/dashboard/fonts.cljs:202 +#: src/app/main/ui/dashboard/fonts.cljs msgid "dashboard.fonts.upload-all" msgstr "Kargatu guztiak" -#: src/app/main/ui/dashboard/fonts.cljs:187 -#, markdown msgid "dashboard.fonts.warning-text" msgstr "" "Zure letra-tipoek sistema eragile desberdinetan metrika bertikalekin " @@ -462,4499 +413,4121 @@ msgstr "" "dezakezu. Gainera, weberako letra-tipoak sortzeko " "[Transfonter](https://transfonter.org/) erabiltzea gomendatzen dugu. " -#: src/app/main/ui/dashboard/import.cljs:472, src/app/main/ui/dashboard/project_menu.cljs:108 msgid "dashboard.import" msgstr "Inportatu Penpot fitxategiak" -#: src/app/main/ui/dashboard/import.cljs:304, src/app/worker/import.cljs:753, src/app/worker/import.cljs:755 msgid "dashboard.import.analyze-error" msgstr "Ezin izan dugu fitxategia inportatu" -#: src/app/main/ui/dashboard/import.cljs:308 msgid "dashboard.import.import-error" msgstr "Errorea gertatu da fitxategia inportatzean. Ezin izan da inportatu." -#: src/app/main/ui/dashboard/import.cljs:493 msgid "dashboard.import.import-message" msgstr "%s fitxategi ondo inportatu dira." -#: src/app/main/ui/dashboard/import.cljs:481, src/app/main/ui/dashboard/import.cljs:488 msgid "dashboard.import.import-warning" msgstr "Fitxategi batzuk inportatu ez diren objektu akasdunak dituzte." -#: src/app/main/ui/dashboard/import.cljs:144 msgid "dashboard.import.progress.process-colors" msgstr "Koloreak prozesatzen" -#: src/app/main/ui/dashboard/import.cljs:153 msgid "dashboard.import.progress.process-components" msgstr "Osagaiak prozesatzen" -#: src/app/main/ui/dashboard/import.cljs:150 msgid "dashboard.import.progress.process-media" msgstr "Media prozesatzen" -#: src/app/main/ui/dashboard/import.cljs:141 msgid "dashboard.import.progress.process-page" msgstr "%s orrialdea prozesatzen" -#: src/app/main/ui/dashboard/import.cljs:147 msgid "dashboard.import.progress.process-typographies" msgstr "Letra-tipoak prozesatzen" -#: src/app/main/ui/dashboard/import.cljs:135 msgid "dashboard.import.progress.upload-data" msgstr "Datuak zerbitzarira bidaltzen (%s/%s)" -#: src/app/main/ui/dashboard/import.cljs:138 msgid "dashboard.import.progress.upload-media" msgstr "Fitxategia bidaltzen: %s" -#: src/app/main/ui/dashboard/team.cljs:109 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.invite-profile" msgstr "Gonbidatu taldera" -#: src/app/main/ui/dashboard/sidebar.cljs:547, src/app/main/ui/dashboard/sidebar.cljs:556, src/app/main/ui/dashboard/sidebar.cljs:563, src/app/main/ui/dashboard/team.cljs:312 +#: src/app/main/ui/dashboard/sidebar.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.leave-team" msgstr "Utzi taldea" -#: src/app/main/ui/dashboard/templates.cljs:88, src/app/main/ui/dashboard/templates.cljs:163 msgid "dashboard.libraries-and-templates" msgstr "Liburutegi eta txantiloiak" -#: src/app/main/ui/dashboard/templates.cljs:164 msgid "dashboard.libraries-and-templates.explore" msgstr "Gehiago ikusi eta ikasi nola lagundu" -#: src/app/main/ui/dashboard/import.cljs:365 msgid "dashboard.libraries-and-templates.import-error" msgstr "Arazo bat egon da txantiloia inportatzean. Ezin izan da inportatu." -#: src/app/main/ui/dashboard/libraries.cljs:53 +#: src/app/main/ui/dashboard/libraries.cljs msgid "dashboard.libraries-title" msgstr "Partekatutako liburutegiak" -#: src/app/main/ui/dashboard/placeholder.cljs:45 +#: src/app/main/ui/dashboard/grid.cljs msgid "dashboard.loading-files" msgstr "zure fitxategiak kargatzen…" -#: src/app/main/ui/dashboard/fonts.cljs:431 msgid "dashboard.loading-fonts" msgstr "zure letra-tipoak kargatzen…" -#: src/app/main/ui/dashboard/file_menu.cljs:281, src/app/main/ui/dashboard/project_menu.cljs:100 +#: src/app/main/ui/dashboard/project_menu.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.move-to" msgstr "Mugitu" -#: src/app/main/ui/dashboard/file_menu.cljs:245 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.move-to-multi" msgstr "Mugitu %s fitxategi" -#: src/app/main/ui/dashboard/file_menu.cljs:226 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.move-to-other-team" msgstr "Mugitu beste talde batera" -#: src/app/main/ui/dashboard/files.cljs:105, src/app/main/ui/dashboard/projects.cljs:252, src/app/main/ui/dashboard/projects.cljs:253 +#: src/app/main/ui/dashboard/projects.cljs, +#: src/app/main/ui/dashboard/files.cljs msgid "dashboard.new-file" msgstr "+ Fitxategi berria" -#: src/app/main/data/dashboard.cljs:958, src/app/main/data/dashboard.cljs:1181 +#: src/app/main/data/dashboard.cljs msgid "dashboard.new-file-prefix" msgstr "Fitxategi berria" -#: src/app/main/ui/dashboard/projects.cljs:55 +#: src/app/main/ui/dashboard/projects.cljs msgid "dashboard.new-project" msgstr "+ Proiektu berria" -#: src/app/main/data/dashboard.cljs:726, src/app/main/data/dashboard.cljs:1184 +#: src/app/main/data/dashboard.cljs msgid "dashboard.new-project-prefix" msgstr "Proiektu berria" -#: src/app/main/ui/dashboard/search.cljs:60 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.no-matches-for" msgstr "Ez da \"%s\" aurkitu" -#: src/app/main/ui/dashboard/sidebar.cljs:827 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.no-projects-placeholder" msgstr "Ainguratutako proiektuak hemen agertuko dira" -#: src/app/main/ui/auth/verify_token.cljs:33 +#: src/app/main/ui/auth/verify_token.cljs msgid "dashboard.notifications.email-changed-successfully" msgstr "Zure eposta helbidea ondo eguneratu da" -#: src/app/main/ui/auth/verify_token.cljs:27 +#: src/app/main/ui/auth/verify_token.cljs msgid "dashboard.notifications.email-verified-successfully" msgstr "Zure eposta helbidea egiaztatu egin da" -#: src/app/main/ui/settings/password.cljs:37 +#: src/app/main/ui/settings/password.cljs msgid "dashboard.notifications.password-saved" msgstr "Pasahitza ondo gorde da!" -#: src/app/main/ui/dashboard/team.cljs:1081 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.num-of-members" msgstr "%s kide" -#: src/app/main/ui/dashboard/file_menu.cljs:267 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.open-in-new-tab" msgstr "Ireki fitxa berrian" -#: src/app/main/ui/dashboard/files.cljs:117, src/app/main/ui/dashboard/projects.cljs:260, src/app/main/ui/dashboard/projects.cljs:261 msgid "dashboard.options" msgstr "Aukerak" -#: src/app/main/ui/settings/password.cljs:106, src/app/main/ui/settings/password.cljs:119 +#: src/app/main/ui/settings/password.cljs msgid "dashboard.password-change" msgstr "Aldatu pasahitza" -#: src/app/main/ui/dashboard/pin_button.cljs:24, src/app/main/ui/dashboard/project_menu.cljs:95 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.pin-unpin" msgstr "Ainguratu/Desainguratu" -#: src/app/main/ui/dashboard/projects.cljs:51 +#: src/app/main/ui/dashboard/projects.cljs msgid "dashboard.projects-title" msgstr "Proiektuak" -#: src/app/main/ui/settings/profile.cljs:86 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.remove-account" msgstr "Kontua ezabatu nahi duzu?" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.remove-shared" msgstr "Ezabatu partekatutako liburutegi gisa" -#: src/app/main/ui/settings/profile.cljs:78 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.save-settings" msgstr "Gorde aukerak" -#: src/app/main/ui/dashboard/sidebar.cljs:246, src/app/main/ui/dashboard/sidebar.cljs:247 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.search-placeholder" msgstr "Bilatu…" -#: src/app/main/ui/dashboard/search.cljs:55 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.searching-for" msgstr "\"%s\" bilatzen…" -#: src/app/main/ui/settings/options.cljs:56 +#: src/app/main/ui/settings/options.cljs msgid "dashboard.select-ui-language" msgstr "Aldatu hizkuntza" -#: src/app/main/ui/settings/options.cljs:63 +#: src/app/main/ui/settings/options.cljs msgid "dashboard.select-ui-theme" msgstr "Aukeratu gaia" -#: src/app/main/ui/dashboard/projects.cljs:282 +#: src/app/main/ui/dashboard/grid.cljs msgid "dashboard.show-all-files" msgstr "Ikusi fitxategi guztiak" -#: src/app/main/ui/dashboard/file_menu.cljs:96 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-delete-file" msgstr "Zure fitxategia ondo ezabatu da" -#: src/app/main/ui/dashboard/project_menu.cljs:59 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.success-delete-project" msgstr "Zure proiektua ondo ezabatu da" -#: src/app/main/ui/dashboard/file_menu.cljs:91 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-duplicate-file" msgstr "Zure fitxategia ondo bikoiztu da" -#: src/app/main/ui/dashboard/project_menu.cljs:33 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.success-duplicate-project" msgstr "Zure proiektua ondo bikoiztu da" -#: src/app/main/ui/dashboard/file_menu.cljs:130, src/app/main/ui/dashboard/grid.cljs:558, src/app/main/ui/dashboard/sidebar.cljs:152 +#: src/app/main/ui/dashboard/grid.cljs, src/app/main/ui/dashboard/sidebar.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-move-file" msgstr "Zure fitxategia ondo mugitu da" -#: src/app/main/ui/dashboard/file_menu.cljs:129 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-move-files" msgstr "Zure fitxategiak ondo mugitu dira" -#: src/app/main/ui/dashboard/project_menu.cljs:54 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.success-move-project" msgstr "Zure proiektua ondo mugitu da" -#: src/app/main/ui/dashboard/team.cljs:1052 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.team-info" msgstr "Taldearen informazioa" -#: src/app/main/ui/dashboard/team.cljs:1070 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.team-members" msgstr "Taldekideak" -#: src/app/main/ui/dashboard/team.cljs:1085 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.team-projects" msgstr "Taldearen proiektuak" -#: src/app/main/ui/settings/options.cljs:61 +#: src/app/main/ui/settings/options.cljs msgid "dashboard.theme-change" msgstr "Itxura" -#: src/app/main/ui/dashboard/search.cljs:42 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.title-search" msgstr "Bilaketaren emaitzak" -#: src/app/main/ui/dashboard/search.cljs:50 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.type-something" msgstr "Idatzi bilaktzeko zerbaitu" -#: src/app/main/ui/dashboard/file_menu.cljs:287, src/app/main/ui/workspace/main_menu.cljs:566 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.unpublish-shared" msgstr "Atzera bota liburutegia argitaratzea" -#: src/app/main/ui/settings/options.cljs:71 +#: src/app/main/ui/settings/password.cljs, +#: src/app/main/ui/settings/options.cljs msgid "dashboard.update-settings" msgstr "Eguneratu aukerak" -#: src/app/main/ui/dashboard/team.cljs:861 msgid "dashboard.webhooks.active" msgstr "Aktibo" -#: src/app/main/ui/dashboard/team.cljs:862 msgid "dashboard.webhooks.active.explain" msgstr "Webhook hau aktibatzen denean gertaeraren xehetasunak bidaliko dira" -#: src/app/main/ui/dashboard/team.cljs:852 msgid "dashboard.webhooks.content-type" msgstr "Elementu mota" -#: src/app/main/ui/dashboard/team.cljs:885 msgid "dashboard.webhooks.create" msgstr "Sortu webhooka" -#: src/app/main/ui/dashboard/team.cljs:775 msgid "dashboard.webhooks.create.success" msgstr "Webhooka ondo sortu da." -#: src/app/main/ui/dashboard/team.cljs:882 msgid "dashboard.webhooks.description" msgstr "" "Webhookak beste webgune batzuei Penpoten zerbait gertatu dela jakinarazteko " "modu bat dira. Adierazitako URLtara POST eskaera bat bidaliko dugu." -#: src/app/main/ui/dashboard/team.cljs:1005 msgid "dashboard.webhooks.empty.add-one" msgstr "Sakatu \"Sortu webhooka\" botoia bat gehitzeko." -#: src/app/main/ui/dashboard/team.cljs:1004 msgid "dashboard.webhooks.empty.no-webhooks" msgstr "Ez dago webhookik." -#, unused msgid "dashboard.webhooks.update.success" msgstr "Webhooka ondo aldatu da." -#: src/app/main/ui/settings.cljs:31 +#: src/app/main/ui/settings.cljs msgid "dashboard.your-account-title" msgstr "Zure kontua" -#: src/app/main/ui/settings/profile.cljs:70 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.your-email" msgstr "Eposta" -#: src/app/main/ui/settings/profile.cljs:62 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.your-name" msgstr "Izena" -#: src/app/main/ui/dashboard/file_menu.cljs:38, src/app/main/ui/dashboard/fonts.cljs:33, src/app/main/ui/dashboard/libraries.cljs:42, src/app/main/ui/dashboard/projects.cljs:318, src/app/main/ui/dashboard/search.cljs:30, src/app/main/ui/dashboard/sidebar.cljs:312, src/app/main/ui/dashboard/team.cljs:495, src/app/main/ui/dashboard/team.cljs:729, src/app/main/ui/dashboard/team.cljs:991, src/app/main/ui/dashboard/team.cljs:1038 +#: src/app/main/ui/dashboard/search.cljs, src/app/main/ui/dashboard/team.cljs, +#: src/app/main/ui/dashboard/libraries.cljs, +#: src/app/main/ui/dashboard/projects.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.your-penpot" msgstr "Zure Penpot" -#: src/app/main/ui/alert.cljs:32 +#: src/app/main/ui/alert.cljs msgid "ds.alert-ok" msgstr "Ok" -#: src/app/main/ui/alert.cljs:31, src/app/main/ui/alert.cljs:34 +#: src/app/main/ui/alert.cljs msgid "ds.alert-title" msgstr "Oharra" -#: src/app/main/ui/confirm.cljs:83 +#: src/app/main/ui/confirm.cljs msgid "ds.component-subtitle" msgstr "Eguneratzeko dauden osagaiak:" -#: src/app/main/ui/confirm.cljs:36, src/app/main/ui/workspace/plugins.cljs:246 +#: src/app/main/ui/confirm.cljs msgid "ds.confirm-cancel" msgstr "Utzi" -#: src/app/main/ui/confirm.cljs:37, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:141 +#: src/app/main/ui/confirm.cljs msgid "ds.confirm-ok" msgstr "Ados" -#: src/app/main/ui/confirm.cljs:35, src/app/main/ui/confirm.cljs:39 +#: src/app/main/ui/confirm.cljs, src/app/main/ui/confirm.cljs msgid "ds.confirm-title" msgstr "Ziur?" -#: src/app/main/ui/auth/login.cljs:62 +#: src/app/main/ui/auth/login.cljs msgid "errors.auth-provider-not-configured" msgstr "Saioa hasteko hornitzailea ez dago konfiguratuta." -#: src/app/main/errors.cljs:104 msgid "errors.auth.unable-to-login" msgstr "Badirudi ez zarela sartu edo zure saioa iraungi egin dela." -#: src/app/main/data/fonts.cljs:189 msgid "errors.bad-font" msgstr "Ezin izan da %s letra-tipoa kargatu" -#: src/app/main/data/fonts.cljs:188 msgid "errors.bad-font-plural" msgstr "Ezin izan dira %s letra-tipoak kargatu" -#: src/app/main/data/workspace.cljs:1598 +#: src/app/main/data/workspace.cljs msgid "errors.clipboard-not-implemented" msgstr "Zure nabigatzaileak ezin du hori egin" -#: src/app/main/ui/auth/verify_token.cljs:82, src/app/main/ui/settings/change_email.cljs:46 +#: src/app/main/ui/auth/verify_token.cljs, +#: src/app/main/ui/settings/change_email.cljs msgid "errors.email-already-exists" msgstr "Eposta helbide hori erabilita dago" -#: src/app/main/ui/auth/verify_token.cljs:87 +#: src/app/main/ui/auth/verify_token.cljs msgid "errors.email-already-validated" msgstr "Eposta helbide hori egiaztatuta dago." -#: src/app/main/ui/settings/password.cljs:28 msgid "errors.email-as-password" msgstr "Ezin duzu zure eposta helbidea pasahitz gisa erabiliz" -#: src/app/main/ui/auth/recovery_request.cljs:63, src/app/main/ui/dashboard/team.cljs:578, src/app/main/ui/settings/change_email.cljs:54 +#: src/app/main/ui/auth/register.cljs, +#: src/app/main/ui/auth/recovery_request.cljs, +#: src/app/main/ui/settings/change_email.cljs, +#: src/app/main/ui/dashboard/team.cljs msgid "errors.email-has-permanent-bounces" msgstr "«%s» helbideak ez ditu mezuak ondo jasotzen, itzuli egiten ditu." -#: src/app/main/ui/auth/login.cljs:81, src/app/main/ui/auth/recovery_request.cljs:31, src/app/main/ui/auth/register.cljs:43 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs, +#: src/app/main/ui/auth/recovery_request.cljs msgid "errors.email-invalid" msgstr "Mesedez, idatzi eposta helbide zuzen bat" -#: src/app/main/ui/settings/change_email.cljs:35 +#: src/app/main/ui/settings/change_email.cljs msgid "errors.email-invalid-confirmation" msgstr "Egiaztapenereko epostak bat etorri behar du aurrekoarekin" -#: src/app/main/ui/dashboard/team.cljs:170 msgid "errors.email-spam-or-permanent-bounces" msgstr "" "«%s» helbideak ez ditu mezuak ondo jasotzen, itzuli egiten ditu edo " "spamaren inguruko txostenak ditu." -#: src/app/main/errors.cljs:227 +#: src/app/main/errors.cljs msgid "errors.feature-mismatch" msgstr "" "Badirudi '%s' ezaugarria aktibo duen fitxategi bat irekitzen ari zarela " "baina zure penpot frontendak ezin du hori egin edo ezaugarri hori " "desaktibatuta du." -#: src/app/main/errors.cljs:231, src/app/main/errors.cljs:245 +#: src/app/main/errors.cljs msgid "errors.feature-not-supported" msgstr "Ezaugarria ezin da erabili: '%s'." -#: src/app/main/data/users.cljs:709, src/app/main/ui/auth/login.cljs:65, src/app/main/ui/auth/login.cljs:116, src/app/main/ui/auth/register.cljs:69, src/app/main/ui/auth/register.cljs:237, src/app/main/ui/auth/verify_token.cljs:92, src/app/main/ui/dashboard/team.cljs:173, src/app/main/ui/onboarding/team_choice.cljs:95, src/app/main/ui/settings/access_tokens.cljs:91, src/app/main/ui/settings/feedback.cljs:52 +#: src/app/main/ui/auth/verify_token.cljs, +#: src/app/main/ui/settings/feedback.cljs, src/app/main/ui/dashboard/team.cljs msgid "errors.generic" msgstr "Erroreren bat gertatu da." -#: src/app/main/ui/components/color_input.cljs:57 +#: src/app/main/ui/components/color_input.cljs msgid "errors.invalid-color" msgstr "Kolorea ez da zuzena" -#: src/app/main/ui/static.cljs:43 +#: src/app/main/ui/auth/verify_token.cljs msgid "errors.invite-invalid" msgstr "Gonbidapena ez da zuzena" -#: src/app/main/ui/static.cljs:44 msgid "errors.invite-invalid.info" msgstr "Gonbidapen hau bertan behera utzi dute edo iraungi egin da." -#: src/app/main/ui/auth/login.cljs:101 +#: src/app/main/ui/auth/login.cljs msgid "errors.ldap-disabled" msgstr "LDAP bidez sartzea desgaituta dago." -#: src/app/main/errors.cljs:239 +#: src/app/main/errors.cljs msgid "errors.max-quote-reached" msgstr "" "Kuotaren maximora heldu zara: '%s'. Jarri kontaktuan laguntza " "zerbitzuarekin." -#: src/app/main/data/workspace/media.cljs:184 +#: src/app/main/data/workspace/persistence.cljs msgid "errors.media-too-large" msgstr "Irudia handiegia da (5mb baino gutxiago izan behar ditu)." -#: src/app/main/data/media.cljs:68, src/app/main/data/workspace/media.cljs:187 +#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs msgid "errors.media-type-mismatch" msgstr "Irudiaren edukia eta luzapena bat ez datozela dirudi." -#: src/app/main/data/media.cljs:65, src/app/main/data/workspace/media.cljs:172, src/app/main/data/workspace/media.cljs:175, src/app/main/data/workspace/media.cljs:178, src/app/main/data/workspace/media.cljs:181 +#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs msgid "errors.media-type-not-allowed" msgstr "Irudia zuzena ez dela dirudi." -#: src/app/main/ui/dashboard/team.cljs:574 +#: src/app/main/ui/dashboard/team.cljs msgid "errors.member-is-muted" msgstr "" "Gonbidatzen ari zaren profilak ez ditu eposta bidezko mezuak jasotzen (spam " "gisa markatu delako edo mezuak itzuli egiten dituelako)." -#: src/app/main/ui/settings/password.cljs:61 +#: src/app/main/ui/settings/password.cljs msgid "errors.password-invalid-confirmation" msgstr "Pasahitzaren egiaztapenak bat etorri behar du aurrekoarekin" -#: src/app/main/ui/settings/password.cljs:64 +#: src/app/main/ui/settings/password.cljs msgid "errors.password-too-short" msgstr "Pasahitzak gutxienez 8 karaktere izan behar ditu" -#: src/app/main/data/users.cljs:703, src/app/main/ui/auth/login.cljs:97, src/app/main/ui/auth/login.cljs:105 msgid "errors.profile-blocked" msgstr "Profila blokeatuta dago" -#: src/app/main/ui/auth/recovery_request.cljs:60, src/app/main/ui/dashboard/team.cljs:164, src/app/main/ui/dashboard/team.cljs:570, src/app/main/ui/settings/change_email.cljs:50 +#: src/app/main/ui/auth/recovery_request.cljs, +#: src/app/main/ui/settings/change_email.cljs, +#: src/app/main/ui/dashboard/team.cljs msgid "errors.profile-is-muted" msgstr "" "Zure profilak ez ditu eposta mezuak jasotzen (spam gisa markatu delako edo " "mezuak itzuli egiten dituelako)." -#: src/app/main/data/users.cljs:701, src/app/main/ui/auth/register.cljs:60 +#: src/app/main/ui/auth/register.cljs msgid "errors.registration-disabled" msgstr "Erregistroa desgaituta dago." -#: src/app/main/ui/dashboard/sidebar.cljs:365, src/app/main/ui/dashboard/team.cljs:359 msgid "errors.team-leave.insufficient-members" msgstr "" "Ez dago taldetik irteteko behar beste kide, seguru aski ezabatu egin nahiko " "duzu." -#: src/app/main/ui/dashboard/sidebar.cljs:368, src/app/main/ui/dashboard/team.cljs:362 msgid "errors.team-leave.member-does-not-exists" msgstr "Izendatu nahi duzun kidea ez da existitzen." -#: src/app/main/ui/dashboard/sidebar.cljs:371, src/app/main/ui/dashboard/team.cljs:365 msgid "errors.team-leave.owner-cant-leave" msgstr "Jabea ezin da taldetik irten, jabetza beste pertsona bati eman behar diozu." -#: src/app/main/data/media.cljs:71 +#: src/app/main/data/media.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, +#: src/app/main/ui/inspect/exports.cljs msgid "errors.unexpected-error" msgstr "Errore bat gertatut da." -#: src/app/main/ui/auth/verify_token.cljs:60 +#: src/app/main/ui/auth/verify_token.cljs msgid "errors.unexpected-token" msgstr "Tokena ez da zuzena" -#: src/app/main/ui/dashboard/team.cljs:796 msgid "errors.webhooks.connection" msgstr "Konexio errorea, URLa ezin da ireki" -#: src/app/main/ui/dashboard/team.cljs:790 msgid "errors.webhooks.invalid-uri" msgstr "URLak ez du balidazioa gainditu." -#: src/app/main/ui/dashboard/team.cljs:949 +#, fuzzy msgid "errors.webhooks.last-delivery" msgstr "Errore bat gertatu da azken bidalketan." -#: src/app/main/ui/dashboard/team.cljs:792, src/app/main/ui/dashboard/team.cljs:952 msgid "errors.webhooks.ssl-validation" msgstr "Errorea gertatu da SSL balidazioan." -#: src/app/main/ui/dashboard/team.cljs:794 msgid "errors.webhooks.timeout" msgstr "Denbora muga gainditu da" -#: src/app/main/ui/dashboard/team.cljs:788 msgid "errors.webhooks.unexpected" msgstr "Errore ezezaguna balidazioan" -#: src/app/main/ui/dashboard/team.cljs:798, src/app/main/ui/dashboard/team.cljs:955 msgid "errors.webhooks.unexpected-status" msgstr "Espero ez zen egoera %s" -#: src/app/main/ui/auth/login.cljs:109, src/app/main/ui/auth/login.cljs:113 +#: src/app/main/ui/auth/login.cljs msgid "errors.wrong-credentials" msgstr "Izena edo pasahitza ez dira zuzenak." -#: src/app/main/ui/settings/password.cljs:25 +#: src/app/main/ui/settings/password.cljs msgid "errors.wrong-old-password" msgstr "Aurreko pasahitza ez da zuzena" -#: src/app/main/ui/settings/feedback.cljs:77 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.description" msgstr "Deskribapena" -#: src/app/main/ui/settings/feedback.cljs:95 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.discourse-go-to" msgstr "Penpoten forora joan" -#: src/app/main/ui/settings/feedback.cljs:89 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.discourse-subtitle1" msgstr "Ongi etorri! Laguntza behar baduzu, bilatu, idatzi edo galdetu lasai." -#: src/app/main/ui/settings/feedback.cljs:88 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.discourse-title" msgstr "Penpot komunitatea" -#: src/app/main/ui/settings/feedback.cljs:72 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.subject" msgstr "Gaia" -#: src/app/main/ui/settings/feedback.cljs:69 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.subtitle" msgstr "" "Idatzi zure mezuaren gaia, arazo bat, ideia bat edo zalantza bat den " "esanez. Gure lantaldeko norbaitek ahal bezain laster erantzungo dizu." -#: src/app/main/ui/settings/feedback.cljs:68 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.title" msgstr "Posta elektronikoa" -#: src/app/main/ui/settings/feedback.cljs:105 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.twitter-go-to" msgstr "Xrera joan" -#: src/app/main/ui/settings/feedback.cljs:99 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.twitter-subtitle1" msgstr "Zure zalantza teknikoak erantzuteko kontua." -#: src/app/main/ui/settings/feedback.cljs:98 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.twitter-title" msgstr "Laguntzarako X kontua" -#: src/app/main/ui/settings/password.cljs:30 +#: src/app/main/ui/settings/password.cljs msgid "generic.error" msgstr "Errore bat gertatu da" -#: src/app/main/ui/viewer/inspect/attributes/blur.cljs:26 +#: src/app/main/ui/inspect/attributes/blur.cljs msgid "inspect.attributes.blur" msgstr "Desenfokatuta" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:115 +#: src/app/main/ui/inspect/attributes/blur.cljs msgid "inspect.attributes.blur.value" msgstr "Balioa" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:112 +#: src/app/main/ui/inspect/attributes/common.cljs msgid "inspect.attributes.color.hex" msgstr "HEX" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:114 +#: src/app/main/ui/inspect/attributes/common.cljs msgid "inspect.attributes.color.hsla" msgstr "HSLA" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:113 +#: src/app/main/ui/inspect/attributes/common.cljs msgid "inspect.attributes.color.rgba" msgstr "RGBA" -#: src/app/main/ui/viewer/inspect/attributes/fill.cljs:57 +#: src/app/main/ui/inspect/attributes/fill.cljs msgid "inspect.attributes.fill" msgstr "Betegarria" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:99, src/app/main/ui/viewer/inspect/attributes/image.cljs:51 +#: src/app/main/ui/inspect/attributes/image.cljs msgid "inspect.attributes.image.download" msgstr "Deskargatu jatorrizko irudia" -#: src/app/main/ui/viewer/inspect/attributes/image.cljs:39 +#: src/app/main/ui/inspect/attributes/image.cljs msgid "inspect.attributes.image.height" msgstr "Altuera" -#: src/app/main/ui/viewer/inspect/attributes/image.cljs:32 +#: src/app/main/ui/inspect/attributes/image.cljs msgid "inspect.attributes.image.width" msgstr "Zabalera" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout" msgstr "Egitura" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.height" msgstr "Altuera" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.left" msgstr "Ezkerra" -#: src/app/main/ui/inspect/attributes/layout.cljs, src/app/main/ui/inspect/attributes/layout.cljs -#, unused +#: src/app/main/ui/inspect/attributes/layout.cljs, +#: src/app/main/ui/inspect/attributes/layout.cljs msgid "inspect.attributes.layout.radius" msgstr "Erradioa" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.rotation" msgstr "Biraketa" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.top" msgstr "Goian" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.width" msgstr "Zabalera" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:57 +#: src/app/main/ui/inspect/attributes/shadow.cljs msgid "inspect.attributes.shadow" msgstr "Itzala" -#: src/app/main/ui/viewer/inspect/attributes/geometry.cljs:40 +#: src/app/main/ui/inspect/attributes/layout.cljs msgid "inspect.attributes.size" msgstr "Tamaina eta posizioa" -#: src/app/main/ui/viewer/inspect/attributes/stroke.cljs:52 +#: src/app/main/ui/inspect/attributes/stroke.cljs msgid "inspect.attributes.stroke" msgstr "Ertza" -#, permanent, unused msgid "inspect.attributes.stroke.alignment.center" msgstr "Erdia" -#, permanent, unused msgid "inspect.attributes.stroke.alignment.inner" msgstr "Barnealdea" -#, permanent, unused msgid "inspect.attributes.stroke.alignment.outer" msgstr "Kanpoaldea" -#, unused msgid "inspect.attributes.stroke.style.dotted" msgstr "Puntuak" -#, unused msgid "inspect.attributes.stroke.style.mixed" msgstr "Nahasia" -#, unused msgid "inspect.attributes.stroke.style.none" msgstr "Bat ere ez" -#, unused msgid "inspect.attributes.stroke.style.solid" msgstr "Solidoa" #: src/app/main/ui/inspect/attributes/stroke.cljs -#, unused msgid "inspect.attributes.stroke.width" msgstr "Zabalera" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:81, src/app/main/ui/viewer/inspect/attributes/text.cljs:194 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography" msgstr "Letra-tipo" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:89 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.font-family" msgstr "Letra-tipo familia" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:107 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.font-size" msgstr "Letra-tipoaren tamaina" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:98 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.font-style" msgstr "Letra-tipoaren estiloa" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:116 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.font-weight" msgstr "Letra tipoaren lodiera" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:134 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.letter-spacing" msgstr "Hizkien tartea" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:125 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.line-height" msgstr "Lerroartea" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:143 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.text-decoration" msgstr "Testuaren apainketa" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:145 msgid "inspect.attributes.typography.text-decoration.none" msgstr "Bat ere ez" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:146 msgid "inspect.attributes.typography.text-decoration.strikethrough" msgstr "Marratu" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:147 msgid "inspect.attributes.typography.text-decoration.underline" msgstr "Azpimarratu" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:156 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.text-transform" msgstr "Testua eraldatu" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:158 msgid "inspect.attributes.typography.text-transform.lowercase" msgstr "Letra xeheak" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:159 msgid "inspect.attributes.typography.text-transform.none" msgstr "Bat ere ez" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:160 msgid "inspect.attributes.typography.text-transform.titlecase" msgstr "Lehenengoa letra larriz" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:161 msgid "inspect.attributes.typography.text-transform.uppercase" msgstr "Letra larriz" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:140 msgid "inspect.empty.help" msgstr "" "Diseinua ikuskatzeari buruz gehiago jakin nahi baduzu zoaz Penpoten " "laguntza zentrora" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:143 msgid "inspect.empty.more-info" msgstr "Informazio gehiago ikuskatzeari buruz" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:135 msgid "inspect.empty.select" msgstr "" "Aukeratu forma bat, taula bat edo talde bat beren propietateak eta kodea " "ikuskatzeko" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:125 +#: src/app/main/ui/inspect/right_sidebar.cljs msgid "inspect.tabs.code" msgstr "Kodea" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:98 msgid "inspect.tabs.code.selected.circle" msgstr "Borobila" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:99 msgid "inspect.tabs.code.selected.component" msgstr "Osagaia" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:100 msgid "inspect.tabs.code.selected.curve" msgstr "Kurba" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:101 msgid "inspect.tabs.code.selected.frame" msgstr "Mahaigaina" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:102 msgid "inspect.tabs.code.selected.group" msgstr "Taldea" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:103 msgid "inspect.tabs.code.selected.image" msgstr "Irudia" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:104 msgid "inspect.tabs.code.selected.mask" msgstr "Maskara" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:93 +#: src/app/main/ui/inspect/right_sidebar.cljs msgid "inspect.tabs.code.selected.multiple" msgstr "%s aukeratuta" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:105 msgid "inspect.tabs.code.selected.path" msgstr "Trazadura" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:106 msgid "inspect.tabs.code.selected.rect" msgstr "Laukia" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:107 msgid "inspect.tabs.code.selected.svg-raw" msgstr "SVG" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:108 msgid "inspect.tabs.code.selected.text" msgstr "Testua" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:115 +#: src/app/main/ui/inspect/right_sidebar.cljs msgid "inspect.tabs.info" msgstr "Informazioa" -#: src/app/main/ui/workspace/main_menu.cljs:158 +#: src/app/main/ui/workspace/header.cljs msgid "label.shortcuts" msgstr "Lasterteklak" -#: src/app/main/ui/dashboard/import.cljs:527 msgid "labels.accept" msgstr "Onartu" -#: src/app/main/ui/dashboard/team.cljs:968 msgid "labels.active" msgstr "Aktibo" -#: src/app/main/ui/dashboard/fonts.cljs:175 msgid "labels.add-custom-font" msgstr "Gehitu letra-tipo pertsonalizatua" -#: src/app/main/ui/dashboard/team.cljs:120, src/app/main/ui/dashboard/team.cljs:276, src/app/main/ui/dashboard/team.cljs:519, src/app/main/ui/dashboard/team.cljs:549, src/app/main/ui/onboarding/team_choice.cljs:67 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs msgid "labels.admin" msgstr "Kudeaketa" #: src/app/main/ui/workspace/comments.cljs -#, unused msgid "labels.all" msgstr "Guztia" -#: src/app/main/ui/auth.cljs:37 msgid "labels.and" msgstr "eta" -#: src/app/main/ui/onboarding/team_choice.cljs:162 msgid "labels.back" msgstr "Itzuli" -#: src/app/main/ui/static.cljs:59 +#: src/app/main/ui/static.cljs msgid "labels.bad-gateway.desc-message" msgstr "" "Pixkat itxaron eta berriz saiatu behar duzula dirudi; mantentze-lanak " "egiten ari gara." -#: src/app/main/ui/static.cljs:58 +#: src/app/main/ui/static.cljs msgid "labels.bad-gateway.main-message" msgstr "Zerbitzariaren errorea (Bad Gateway)" -#: src/app/main/data/common.cljs:112, src/app/main/ui/dashboard/change_owner.cljs:69, src/app/main/ui/dashboard/import.cljs:514, src/app/main/ui/dashboard/team.cljs:868, src/app/main/ui/delete_shared.cljs:35, src/app/main/ui/export.cljs:164, src/app/main/ui/export.cljs:460, src/app/main/ui/settings/access_tokens.cljs:188, src/app/main/ui/viewer/share_link.cljs:203, src/app/main/ui/workspace/sidebar/assets/groups.cljs:149 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.cancel" msgstr "Utzi" -#: src/app/main/ui/dashboard/projects.cljs:93, src/app/main/ui/export.cljs:478, src/app/main/ui/settings/access_tokens.cljs:183, src/app/main/ui/viewer/login.cljs:77, src/app/main/ui/viewer/share_link.cljs:174, src/app/main/ui/workspace/libraries.cljs:522 msgid "labels.close" msgstr "Itxi" -#: src/app/main/ui/dashboard/comments.cljs:104, src/app/main/ui/viewer/comments.cljs:70, src/app/main/ui/workspace/comments.cljs:126 +#: src/app/main/ui/dashboard/comments.cljs msgid "labels.comments" msgstr "Iruzkinak" -#: src/app/main/ui/dashboard/sidebar.cljs:985, src/app/main/ui/workspace/main_menu.cljs:110 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.community" msgstr "Komunitatea" -#: src/app/main/ui/settings/password.cljs:103 +#: src/app/main/ui/settings/password.cljs msgid "labels.confirm-password" msgstr "Berretsi pasahitza" -#: src/app/main/ui/dashboard/import.cljs:520, src/app/main/ui/export.cljs:465, src/app/main/ui/onboarding/newsletter.cljs:101 msgid "labels.continue" msgstr "Jarraitu" -#, unused msgid "labels.continue-with" msgstr "Honekin jarraitu" -#: src/app/main/ui/viewer/login.cljs:75 msgid "labels.continue-with-penpot" msgstr "Penpot kontu batekin jarraitu dezakezu" -#: src/app/main/ui/dashboard/team.cljs:642 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.copy-invitation-link" msgstr "Kopiatu esteka" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:157, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:190 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "labels.create" msgstr "Sortu" -#: src/app/main/ui/dashboard/team_form.cljs:101, src/app/main/ui/dashboard/team_form.cljs:121 +#: src/app/main/ui/dashboard/team_form.cljs, +#: src/app/main/ui/dashboard/team_form.cljs msgid "labels.create-team" msgstr "Sortu talde berria" -#: src/app/main/ui/dashboard/team_form.cljs:113 +#: src/app/main/ui/dashboard/team_form.cljs msgid "labels.create-team.placeholder" msgstr "Sartu taldearen izena" -#, unused msgid "labels.custom-fonts" msgstr "Pertsonalizatutako letra-tipoak" -#: src/app/main/ui/settings/sidebar.cljs:73 +#: src/app/main/ui/settings/sidebar.cljs msgid "labels.dashboard" msgstr "Lanlekua" -#: src/app/main/ui/dashboard/file_menu.cljs:306, src/app/main/ui/dashboard/fonts.cljs:255, src/app/main/ui/dashboard/fonts.cljs:332, src/app/main/ui/dashboard/fonts.cljs:346, src/app/main/ui/dashboard/project_menu.cljs:115, src/app/main/ui/dashboard/team.cljs:904, src/app/main/ui/settings/access_tokens.cljs:209, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:209 +#: src/app/main/ui/dashboard/project_menu.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.delete" msgstr "Ezabatu" -#: src/app/main/ui/comments.cljs:357 +#: src/app/main/ui/comments.cljs msgid "labels.delete-comment" msgstr "Ezabatu iruzkina" -#: src/app/main/ui/comments.cljs:354 +#: src/app/main/ui/comments.cljs msgid "labels.delete-comment-thread" msgstr "Ezabatu haria" -#: src/app/main/ui/dashboard/team.cljs:648 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.delete-invitation" msgstr "Ezabatu gonbidapena" -#: src/app/main/ui/dashboard/file_menu.cljs:262 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.delete-multi-files" msgstr "Ezabatu %s fitxategi" -#: src/app/main/ui/dashboard/file_menu.cljs:28, src/app/main/ui/dashboard/files.cljs:72, src/app/main/ui/dashboard/files.cljs:156, src/app/main/ui/dashboard/projects.cljs:220, src/app/main/ui/dashboard/projects.cljs:224, src/app/main/ui/dashboard/sidebar.cljs:791 +#: src/app/main/ui/dashboard/projects.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs, +#: src/app/main/ui/dashboard/files.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.drafts" msgstr "Zirriborroak" -#: src/app/main/ui/comments.cljs:350, src/app/main/ui/dashboard/fonts.cljs:252, src/app/main/ui/dashboard/team.cljs:902, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:205 +#: src/app/main/ui/comments.cljs msgid "labels.edit" msgstr "Editatu" -#, unused msgid "labels.edit-file" msgstr "Editatu fitxategia" -#: src/app/main/ui/dashboard/team.cljs:118, src/app/main/ui/dashboard/team.cljs:279, src/app/main/ui/dashboard/team.cljs:520, src/app/main/ui/dashboard/team.cljs:553, src/app/main/ui/onboarding/team_choice.cljs:66 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs msgid "labels.editor" msgstr "Edizioa" -#: src/app/main/ui/dashboard/team.cljs:661 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.expired-invitation" msgstr "Iraungita" -#: src/app/main/ui/export.cljs:173 msgid "labels.export" msgstr "Esportatu" -#: src/app/main/ui/settings/feedback.cljs:51 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.feedback-disabled" msgstr "Iritziak jasotzeko osagaia desgaituta dago" -#: src/app/main/ui/settings/feedback.cljs:42 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.feedback-sent" msgstr "Iritzia ondo bidali da" -#: src/app/main/ui/dashboard/fonts.cljs:412 msgid "labels.font-family" msgstr "Letra-tipo familia" -#, unused msgid "labels.font-providers" msgstr "Letra-tipo hornitzaileak" -#: src/app/main/ui/dashboard/fonts.cljs:413 msgid "labels.font-variants" msgstr "Estiloak" -#: src/app/main/ui/dashboard/fonts.cljs:52, src/app/main/ui/dashboard/sidebar.cljs:811 msgid "labels.fonts" msgstr "Letra-tipoak" -#: src/app/main/ui/dashboard/sidebar.cljs:1015, src/app/main/ui/workspace/main_menu.cljs:142 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.github-repo" msgstr "GitHubeko errepositorioa" -#: src/app/main/ui/dashboard/sidebar.cljs:1032, src/app/main/ui/settings/sidebar.cljs:113, src/app/main/ui/workspace/main_menu.cljs:171 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/settings/sidebar.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.give-feedback" msgstr "Eman zure iritzia" -#: src/app/main/ui/auth/recovery_request.cljs:110, src/app/main/ui/auth/register.cljs:285, src/app/main/ui/viewer/login.cljs:117 msgid "labels.go-back" msgstr "Itzuli" -#: src/app/main/ui/dashboard/sidebar.cljs:978, src/app/main/ui/workspace/main_menu.cljs:102 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.help-center" msgstr "Laguntza zentroa" -#: src/app/main/ui/viewer/comments.cljs:103, src/app/main/ui/workspace/comments.cljs:67 +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs msgid "labels.hide-resolved-comments" msgstr "Ezkutatu ebatzitzako iruzkinak" -#: src/app/main/ui/dashboard/team.cljs:969 msgid "labels.inactive" msgstr "Inaktibo" -#: src/app/main/ui/dashboard/fonts.cljs:410 msgid "labels.installed-fonts" msgstr "Instalatutako letra-tipoak" -#: src/app/main/ui/static.cljs:144 +#: src/app/main/ui/static.cljs msgid "labels.internal-error.desc-message" msgstr "" "Zerbait arraroa gertatu da. Saiatu berriz eta erroreak agertzen jarraitzen " "badu, jarri kontaktuan zerbitzu teknikoarekin." -#: src/app/main/ui/static.cljs:143 +#: src/app/main/ui/static.cljs msgid "labels.internal-error.main-message" msgstr "Barneko errorea" -#: src/app/main/ui/dashboard/sidebar.cljs:516, src/app/main/ui/dashboard/team.cljs:89, src/app/main/ui/dashboard/team.cljs:97, src/app/main/ui/dashboard/team.cljs:708 +#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.invitations" msgstr "Gonbidapenak" -#: src/app/main/ui/settings/options.cljs:51 +#: src/app/main/ui/settings/options.cljs msgid "labels.language" msgstr "Hizkuntzak" -#: src/app/main/ui/dashboard/sidebar.cljs:1008, src/app/main/ui/workspace/main_menu.cljs:134 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.libraries-and-templates" msgstr "Liburutegi eta Txantiloiak" -#: src/app/main/ui/viewer/header.cljs:203 msgid "labels.log-or-sign" msgstr "Sartu edo eman izena" -#: src/app/main/ui/dashboard/sidebar.cljs:1040 +#: src/app/main/ui/settings.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.logout" msgstr "Irten" -#: src/app/main/ui/dashboard/team.cljs:468 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.member" msgstr "Kidea" -#: src/app/main/ui/dashboard/sidebar.cljs:510, src/app/main/ui/dashboard/team.cljs:87, src/app/main/ui/dashboard/team.cljs:95 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.members" msgstr "Kideak" -#: src/app/main/ui/settings/password.cljs:96 +#: src/app/main/ui/settings/password.cljs msgid "labels.new-password" msgstr "Pasahitz berria" -#: src/app/main/ui/dashboard/comments.cljs:128, src/app/main/ui/workspace/comments.cljs:161 +#: src/app/main/ui/workspace/comments.cljs, +#: src/app/main/ui/dashboard/comments.cljs msgid "labels.no-comments-available" msgstr "Ez duzu iruzkinen inguruko jakinarazpenik." -#: src/app/main/ui/dashboard/team.cljs:694 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.no-invitations" msgstr "Ez dago gonbidapenik." -#: src/app/main/ui/dashboard/team.cljs:696 -#, markdown +#: src/app/main/ui/dashboard/team.cljs msgid "labels.no-invitations-hint" msgstr "Sakatu 'Taldera gonbdiatu' taldekide gehiago izateko." -#: src/app/main/ui/static.cljs:50 +#: src/app/main/ui/static.cljs msgid "labels.not-found.desc-message" msgstr "Orrialde hau ez da existitzen edo ez duzu ikusteko baimenik." -#: src/app/main/ui/static.cljs:49 +#: src/app/main/ui/static.cljs msgid "labels.not-found.main-message" msgstr "Atx!" -#: src/app/main/ui/dashboard/projects.cljs:239, src/app/main/ui/dashboard/team.cljs:1095 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.num-of-files" msgid_plural "labels.num-of-files" msgstr[0] "Fitxategi 1" msgstr[1] "%s fitxategi" -#: src/app/main/ui/viewer/thumbnails.cljs:80 msgid "labels.num-of-frames" msgid_plural "labels.num-of-frames" msgstr[0] "Arbel 1" msgstr[1] "%s arbel" -#: src/app/main/ui/dashboard/team.cljs:1090 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.num-of-projects" msgid_plural "labels.num-of-projects" msgstr[0] "Proiektu 1" msgstr[1] "%s proiektu" -#: src/app/main/ui/settings/password.cljs:89 +#: src/app/main/ui/settings/password.cljs msgid "labels.old-password" msgstr "Aurreko pasahitza" #: src/app/main/ui/workspace/comments.cljs -#, unused msgid "labels.only-yours" msgstr "Zureak bakarrik" -#, unused msgid "labels.or" msgstr "edo" -#: src/app/main/ui/dashboard/team.cljs:286, src/app/main/ui/dashboard/team.cljs:518, src/app/main/ui/dashboard/team.cljs:1076 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs msgid "labels.owner" msgstr "Jabea" -#: src/app/main/ui/settings/sidebar.cljs:87 +#: src/app/main/ui/settings/sidebar.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.password" msgstr "Pasahitza" -#: src/app/main/ui/dashboard/team.cljs:662 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.pending-invitation" msgstr "Zain" -#: src/app/main/ui/settings/profile.cljs:118, src/app/main/ui/settings/sidebar.cljs:82 +#: src/app/main/ui/settings/sidebar.cljs msgid "labels.profile" msgstr "Profila" -#: src/app/main/ui/dashboard/sidebar.cljs:784 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.projects" msgstr "Proiektuak" -#: src/app/main/ui/dashboard/sidebar.cljs:998, src/app/main/ui/settings/sidebar.cljs:106, src/app/main/ui/workspace/main_menu.cljs:126 +#: src/app/main/ui/settings/sidebar.cljs msgid "labels.release-notes" msgstr "Bertsioaren oharrak" #: src/app/main/ui/workspace.cljs -#, unused msgid "labels.reload-file" msgstr "Birkargatu fitxategia" -#: src/app/main/ui/workspace/libraries.cljs, src/app/main/ui/dashboard/team.cljs -#, unused +#: src/app/main/ui/workspace/libraries.cljs, +#: src/app/main/ui/dashboard/team.cljs msgid "labels.remove" msgstr "Kendu" -#: src/app/main/ui/dashboard/team.cljs:316 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.remove-member" msgstr "Kendu kidea" -#: src/app/main/ui/dashboard/file_menu.cljs:271, src/app/main/ui/dashboard/project_menu.cljs:85, src/app/main/ui/dashboard/sidebar.cljs:539, src/app/main/ui/workspace/sidebar/assets/groups.cljs:157 +#: src/app/main/ui/dashboard/sidebar.cljs, +#: src/app/main/ui/dashboard/project_menu.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.rename" msgstr "Berrizendatu" -#: src/app/main/ui/dashboard/team_form.cljs:99 +#: src/app/main/ui/dashboard/team_form.cljs msgid "labels.rename-team" msgstr "Berrizendatu taldea" -#: src/app/main/ui/dashboard/team.cljs:645 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.resend-invitation" msgstr "Birbidali gonbidapena" -#: src/app/main/ui/static.cljs:61, src/app/main/ui/static.cljs:70, src/app/main/ui/static.cljs:148 +#: src/app/main/ui/static.cljs, src/app/main/ui/static.cljs msgid "labels.retry" msgstr "Berriz saiatu" -#: src/app/main/ui/dashboard/team.cljs:469, src/app/main/ui/dashboard/team.cljs:709 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.role" msgstr "Rola" -#: src/app/main/ui/dashboard/fonts.cljs:380, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:191 msgid "labels.save" msgstr "Gorde" -#: src/app/main/ui/dashboard/fonts.cljs:415 msgid "labels.search-font" msgstr "Bilatu letra-tipoa" -#: src/app/main/ui/settings/feedback.cljs:82 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.send" msgstr "Bidali" -#: src/app/main/ui/settings/feedback.cljs:82 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.sending" msgstr "Bidaltzen…" -#: src/app/main/ui/static.cljs:68 +#: src/app/main/ui/static.cljs msgid "labels.service-unavailable.desc-message" msgstr "Gure sistemaren programatutako mantentze-lanak egiten ari gara." -#: src/app/main/ui/static.cljs:67 +#: src/app/main/ui/static.cljs msgid "labels.service-unavailable.main-message" msgstr "Zerbitzua ez dago martxan" -#: src/app/main/ui/dashboard/sidebar.cljs:530, src/app/main/ui/dashboard/team.cljs:88, src/app/main/ui/dashboard/team.cljs:102, src/app/main/ui/settings/options.cljs:84, src/app/main/ui/settings/sidebar.cljs:93 +#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.settings" msgstr "Ezarpenak" -#, unused msgid "labels.share-prototype" msgstr "Partekatu prototipoa" -#: src/app/main/ui/dashboard/sidebar.cljs:800 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.shared-libraries" msgstr "Partekatutako liburutegiak" -#: src/app/main/ui/viewer/comments.cljs:82, src/app/main/ui/workspace/comments.cljs:55, src/app/main/ui/workspace/comments.cljs:135 +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs msgid "labels.show-all-comments" msgstr "Erakutsi iruzkin guztiak" -#: src/app/main/ui/viewer/comments.cljs:115 msgid "labels.show-comments-list" msgstr "Erakutsi iruzkinen zerrenda" -#: src/app/main/ui/viewer/comments.cljs:91, src/app/main/ui/workspace/comments.cljs:61, src/app/main/ui/workspace/comments.cljs:136 +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs msgid "labels.show-your-comments" msgstr "Erakutsi zure iruzkinak bakarrik" -#: src/app/main/ui/dashboard/team.cljs:710 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.status" msgstr "Egoera" -#: src/app/main/ui/dashboard/sidebar.cljs:992, src/app/main/ui/workspace/main_menu.cljs:118 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.tutorials" msgstr "Tutorialak" -#: src/app/main/ui/dashboard/file_menu.cljs:256 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.unpublish-multi-files" msgstr "%s fitxategi argitaratzeari utzi" -#: src/app/main/ui/settings/profile.cljs:103 +#: src/app/main/ui/settings/profile.cljs msgid "labels.update" msgstr "Eguneratu" -#: src/app/main/ui/dashboard/team_form.cljs:120 +#: src/app/main/ui/dashboard/team_form.cljs msgid "labels.update-team" msgstr "Eguneratu taldea" -#: src/app/main/ui/dashboard/fonts.cljs:241 msgid "labels.upload" msgstr "Kargatu" -#: src/app/main/ui/dashboard/fonts.cljs:169 msgid "labels.upload-custom-fonts" msgstr "Kargatu letra-tipoa" -#: src/app/main/ui/dashboard/fonts.cljs:240 msgid "labels.uploading" msgstr "Kargatzen…" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs:223 msgid "labels.view-only" msgstr "IKUSTEKO BAKARRIK" -#: src/app/main/ui/dashboard/team.cljs:123, src/app/main/ui/dashboard/team.cljs:282, src/app/main/ui/dashboard/team.cljs:521 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.viewer" msgstr "Bistarazlea" -#: src/app/main/ui/dashboard/sidebar.cljs:523, src/app/main/ui/dashboard/team.cljs:90, src/app/main/ui/dashboard/team.cljs:100, src/app/main/ui/dashboard/team.cljs:880 msgid "labels.webhooks" msgstr "Webhookak" -#: src/app/main/ui/comments.cljs:194 +#: src/app/main/ui/comments.cljs msgid "labels.write-new-comment" msgstr "Idatzi iruzkin berria" -#: src/app/main/ui/dashboard/team.cljs:237 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.you" msgstr "(zu)" -#: src/app/main/ui/dashboard/sidebar.cljs:968 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.your-account" msgstr "zure kontua" -#: src/app/main/data/media.cljs:49, src/app/main/data/workspace/media.cljs:223, src/app/main/data/workspace/media.cljs:453 +#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs msgid "media.loading" msgstr "Irudia kargatzen…" -#: src/app/main/data/common.cljs:113 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.add-shared-confirm.accept" msgstr "Gehitu partekatutako liburutegi gisa" -#: src/app/main/data/common.cljs:111 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.add-shared-confirm.hint" msgstr "" "Partekatutako liburutegi gisa gehitu ostean, fitxategi honetako baliabideak " "beste fitxategietan erabiltzeko bezala egongo dira." -#: src/app/main/data/common.cljs:110 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.add-shared-confirm.message" msgstr "Gehitu \"%s\" partekatutako liburutegi gisa" -#: src/app/main/ui/workspace/nudge.cljs:60 +#: src/app/main/ui/workspace/nudge.cljs msgid "modals.big-nudge" msgstr "Gehienekoa" -#: src/app/main/ui/settings/change_email.cljs:127 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.confirm-email" msgstr "Egiaztatu posta elektroniko berria" -#: src/app/main/ui/settings/change_email.cljs:114 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.info" msgstr "" "Zure egungo \"%s\" helbidera mezu bat bidaliko du zure nortasuna " "egiaztatzeko." -#: src/app/main/ui/settings/change_email.cljs:119 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.new-email" msgstr "Posta elektroniko berria" -#: src/app/main/ui/settings/change_email.cljs:136 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.submit" msgstr "Aldatu posta elektronikoa" -#: src/app/main/ui/settings/change_email.cljs:107 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.title" msgstr "Aldatu zure posta elektronikoa" -#: src/app/main/ui/dashboard/team.cljs:873 msgid "modals.create-webhook.submit-label" msgstr "Sortu webhooka" -#: src/app/main/ui/dashboard/team.cljs:838 msgid "modals.create-webhook.title" msgstr "Sortu webhooka" -#: src/app/main/ui/dashboard/team.cljs:849 msgid "modals.create-webhook.url.label" msgstr "Informazioaren URLa" -#: src/app/main/ui/dashboard/team.cljs:850 msgid "modals.create-webhook.url.placeholder" msgstr "https://example.com/postreceive" -#: src/app/main/ui/settings/delete_account.cljs:59 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.cancel" msgstr "Utzi eta mantendu nire kontua" -#: src/app/main/ui/settings/delete_account.cljs:64 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.confirm" msgstr "Bai, ezabatu nire kontua" -#: src/app/main/ui/settings/delete_account.cljs:53 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.info" msgstr "" "Zure kontua ezabatzen baduzu zure proiektu eta fitxategi guztiak galduko " "dituzu." -#: src/app/main/ui/settings/delete_account.cljs:46 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.title" msgstr "Zure kontua benetan ezabatu nahi duzu?" -#: src/app/main/ui/comments.cljs:298 +#: src/app/main/ui/comments.cljs msgid "modals.delete-comment-thread.accept" msgstr "Ezabatu elkarrizketa" -#: src/app/main/ui/comments.cljs:297 +#: src/app/main/ui/comments.cljs msgid "modals.delete-comment-thread.message" msgstr "" "Benetan elkarrizketa hau ezabatu nahi al duzu? Iruzkin guztiak ezabatu " "egingo dira." -#: src/app/main/ui/comments.cljs:296 +#: src/app/main/ui/comments.cljs msgid "modals.delete-comment-thread.title" msgstr "Ezabatu elkarrizketa" -#: src/app/main/ui/dashboard/file_menu.cljs:123 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-confirm.accept" msgstr "Ezabatu fitxategia" -#: src/app/main/ui/dashboard/file_menu.cljs:122 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-confirm.message" msgstr "Benetan fitxategi hau ezabatu egin nahi duzu?" -#: src/app/main/ui/dashboard/file_menu.cljs:121 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-confirm.title" msgstr "Fitxategia ezabatzen" -#: src/app/main/ui/dashboard/file_menu.cljs:117 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-multi-confirm.accept" msgstr "Ezabatu fitxategiak" -#: src/app/main/ui/dashboard/file_menu.cljs:116 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-multi-confirm.message" msgstr "Benetan %s fitxategi ezabatu egin nahi dituzu?" -#: src/app/main/ui/dashboard/file_menu.cljs:115 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-multi-confirm.title" msgstr "%s fitxategi ezabatzen" -#: src/app/main/ui/dashboard/fonts.cljs:345 msgid "modals.delete-font-variant.message" msgstr "" "Benetan letra-tipo estilo hau ezabatu egin nahi duzu? Ez da kargatuko " "fitxategiren baten erabiltzen baduzu." -#: src/app/main/ui/dashboard/fonts.cljs:344 msgid "modals.delete-font-variant.title" msgstr "Letra-tipo estiloa ezabatzen" -#: src/app/main/ui/dashboard/fonts.cljs:331 msgid "modals.delete-font.message" msgstr "" "Benetan letra-tipo hau ezabatu egin nahi duzu? Ez da kargatuko fitxategiren " "baten erabiltzen baduzu." -#: src/app/main/ui/dashboard/fonts.cljs:330 msgid "modals.delete-font.title" msgstr "Letra-tipoa ezabatzen" -#: src/app/main/ui/workspace/context_menu.cljs:522, src/app/main/ui/workspace/sidebar/sitemap.cljs:45 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs msgid "modals.delete-page.body" msgstr "Benetan orrialde hau ezabatu egin nahi duzu?" -#: src/app/main/ui/workspace/context_menu.cljs:521, src/app/main/ui/workspace/sidebar/sitemap.cljs:44 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs msgid "modals.delete-page.title" msgstr "Ezabatu orrialdea" -#: src/app/main/ui/dashboard/project_menu.cljs:69 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "modals.delete-project-confirm.accept" msgstr "Ezabatu proiektua" -#: src/app/main/ui/dashboard/project_menu.cljs:68 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "modals.delete-project-confirm.message" msgstr "Benetan proiektu hau ezabatu egin nahi duzu?" -#: src/app/main/ui/dashboard/project_menu.cljs:67 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "modals.delete-project-confirm.title" msgstr "Ezabatu proiektua" -#: src/app/main/ui/delete_shared.cljs:51 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.accept" msgid_plural "modals.delete-shared-confirm.accept" msgstr[0] "Ezabatu fitxategia" msgstr[1] "Ezabatu fitxategiak" -#: src/app/main/ui/delete_shared.cljs:46 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.message" msgid_plural "modals.delete-shared-confirm.message" msgstr[0] "Benetan fitxategi hau ezabatu nahi duzu?" msgstr[1] "Benetan fitxategi hauek ezabatu nahi dituzu?" -#: src/app/main/ui/delete_shared.cljs:41 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.title" msgid_plural "modals.delete-shared-confirm.title" msgstr[0] "Ezabatu fitxategia" msgstr[1] "Ezabatu fitxategiak" -#: src/app/main/ui/dashboard/sidebar.cljs:435 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.delete-team-confirm.accept" msgstr "Ezabatu taldea" -#: src/app/main/ui/dashboard/sidebar.cljs:434 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.delete-team-confirm.message" msgstr "" "Benetan talde hau ezabatu egin nahi duzu? Taldeari lotutako proiektu eta " "fitxategi guztiak betiko ezabatuko dira." -#: src/app/main/ui/dashboard/sidebar.cljs:433 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.delete-team-confirm.title" msgstr "Taldea ezabatzen" -#: src/app/main/ui/dashboard/team.cljs:427 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.delete-team-member-confirm.accept" msgstr "Kidea ezabatzen" -#: src/app/main/ui/dashboard/team.cljs:426 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.delete-team-member-confirm.message" msgstr "Benetan kide hau taldetik ezabatu egin nahi duzu?" -#: src/app/main/ui/dashboard/team.cljs:425 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.delete-team-member-confirm.title" msgstr "Taldekidea ezabatzen" -#: src/app/main/ui/dashboard/team.cljs:942 msgid "modals.delete-webhook.accept" msgstr "Ezabatu webhooka" -#: src/app/main/ui/dashboard/team.cljs:941 msgid "modals.delete-webhook.message" msgstr "Benetan webhook hau ezabatu egin nahi duzu?" -#: src/app/main/ui/dashboard/team.cljs:940 msgid "modals.delete-webhook.title" msgstr "Webhooka ezabatzen" -#: src/app/main/ui/dashboard/team.cljs:872 msgid "modals.edit-webhook.submit-label" msgstr "Aldatu webhooka" -#: src/app/main/ui/dashboard/team.cljs:837 msgid "modals.edit-webhook.title" msgstr "Aldatu webhooka" -#: src/app/main/ui/dashboard/team.cljs:218 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.invite-member-confirm.accept" msgstr "Bidali gonbidapena" -#: src/app/main/ui/dashboard/team.cljs:213, src/app/main/ui/onboarding/team_choice.cljs:156 msgid "modals.invite-member.emails" msgstr "Posta elektronikoak, komarekin banatuta" -#: src/app/main/ui/dashboard/team.cljs:197 msgid "modals.invite-member.repeated-invitation" msgstr "Eposta helbide batzuk jada taldekideenak dira. Ez da gonbidapenik bidaliko." -#: src/app/main/ui/dashboard/team.cljs:190 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.invite-team-member.title" msgstr "Gonbidatu kideak taldera" -#: src/app/main/ui/dashboard/sidebar.cljs:423, src/app/main/ui/dashboard/team.cljs:393 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-close-confirm.hint" msgstr "" "Talde honetako kide bakarra zarenez, taldea bere proiektu eta fitxategiekin " "ezabatuko da." -#: src/app/main/ui/dashboard/sidebar.cljs:422, src/app/main/ui/dashboard/team.cljs:392 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-close-confirm.message" msgstr "Benetan %s taldea utzi egin nahi duzu?" -#: src/app/main/ui/dashboard/change_owner.cljs:59 msgid "modals.leave-and-reassign.forbidden" msgstr "" "Ezin duzu taldea utzi ez badago jabe berria izateko hautagairik. Agian " "taldea ezabatu egin nahi duzu." -#: src/app/main/ui/dashboard/change_owner.cljs:55 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-reassign.hint1" msgstr "Taldearen jabea zara. Aukeratu beste pertsona bat jabe izan dadin." -#: src/app/main/ui/dashboard/change_owner.cljs:78 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-reassign.promote-and-leave" msgstr "Jabe egin eta utzi" -#: src/app/main/ui/dashboard/change_owner.cljs:34 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-reassign.select-member-to-promote" msgstr "Aukeratu jabe berria" -#: src/app/main/ui/dashboard/change_owner.cljs:49 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-reassign.title" msgstr "Utzi aurretik" -#: src/app/main/ui/dashboard/sidebar.cljs:402, src/app/main/ui/dashboard/sidebar.cljs:424, src/app/main/ui/dashboard/team.cljs:394, src/app/main/ui/dashboard/team.cljs:416 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-confirm.accept" msgstr "Utzi taldea" -#: src/app/main/ui/dashboard/sidebar.cljs:401, src/app/main/ui/dashboard/team.cljs:415 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-confirm.message" msgstr "Benetal taldea utzi egin nahi duzu?" -#: src/app/main/ui/dashboard/sidebar.cljs:400, src/app/main/ui/dashboard/sidebar.cljs:421, src/app/main/ui/dashboard/team.cljs:391, src/app/main/ui/dashboard/team.cljs:414 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-confirm.title" msgstr "Taldea uzten" -#: src/app/main/ui/workspace/main_menu.cljs:266, src/app/main/ui/workspace/nudge.cljs:47 +#: src/app/main/ui/workspace/nudge.cljs msgid "modals.nudge-title" msgstr "Desplazamendua" -#: src/app/main/ui/dashboard/team.cljs:340 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.accept" msgstr "Eman jabetza" -#: src/app/main/ui/dashboard/team.cljs:339 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.hint" msgstr "" "Jabetza ematen baduzu, zure rola Kudeatzaile izatera pasatuko da, " "taldearekiko zure baimen batzuk galduz. " -#: src/app/main/ui/dashboard/team.cljs:338 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.message" msgstr "Taldearen jabea zara. Benetan %s taldearen gabe egin nahi duzu?" -#: src/app/main/ui/dashboard/team.cljs:337 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.title" msgstr "Taldearen jabe berria" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.remove-shared-confirm.accept" msgstr "Ezabatu partekatutako liburutegi gisa" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.remove-shared-confirm.hint" msgstr "" "Partekatutako liburutegi gisa ezabatu ostean, fitxategi honen liburutegia " "ezingo da zure beste fitxategietan erabili." -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.remove-shared-confirm.message" msgstr "Gehitu \"%s\" partekatutako liburutegi bezala" -#: src/app/main/ui/workspace/nudge.cljs:53 +#: src/app/main/ui/workspace/nudge.cljs msgid "modals.small-nudge" msgstr "Gutxienekoa" -#: src/app/main/ui/delete_shared.cljs:52 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.unpublish-shared-confirm.accept" msgstr "Argitaratzea atzera bota" -#: src/app/main/ui/delete_shared.cljs:47 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.unpublish-shared-confirm.message" msgid_plural "modals.unpublish-shared-confirm.message" msgstr[0] "Benetan liburutegi honen argitaratzea atzera bota nahi duzu?" msgstr[1] "Benetan liburutegi hauen argitaratzea atzera bota nahi duzu?" -#: src/app/main/ui/delete_shared.cljs:42 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.unpublish-shared-confirm.title" msgid_plural "modals.unpublish-shared-confirm.title" msgstr[0] "Liburutegiaren argitaratzea atzera bota" msgstr[1] "Liburutegian argitaratzea atzera bota" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component-in-bulk.hint" msgstr "" "Partekatutako liburutegi baten osagaiak eguneratzera zoaz. Honek berau " "darabilten beste fitxategi batzuengan eragina izan dezake." -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component-in-bulk.message" msgstr "Eguneratu liburutegiaren osagaiak" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:380 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.accept" msgstr "Eguneratu" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:379 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.cancel" msgstr "Utzi" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:378 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.hint" msgstr "" "Partekatutako liburutegi baten osagai bat eguneratzera zoaz. Honek berau " "darabilten beste fitxategi batzuengan eragina izan dezake." -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:377 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.message" msgstr "Eguneratu liburutegiaren osagaia" -#: src/app/main/ui/dashboard/team.cljs:154, src/app/main/ui/dashboard/team.cljs:595 +#: src/app/main/ui/dashboard/team.cljs msgid "notifications.invitation-email-sent" msgstr "Gonbidapena ondo bidali da" -#: src/app/main/ui/dashboard/team.cljs:616 +#: src/app/main/ui/dashboard/team.cljs msgid "notifications.invitation-link-copied" msgstr "Gonbidapenaren esteka kopiatu da" -#: src/app/main/ui/settings/delete_account.cljs:24 +#: src/app/main/ui/settings/delete_account.cljs msgid "notifications.profile-deletion-not-allowed" msgstr "Ezin da zure profila ezabatu. Berresleitu zure taldeak jarraitu aurretik." -#: src/app/main/ui/settings/options.cljs:29, src/app/main/ui/settings/profile.cljs:35 +#: src/app/main/ui/settings/profile.cljs, src/app/main/ui/settings/options.cljs msgid "notifications.profile-saved" msgstr "Profila ondo gorde da!" -#: src/app/main/ui/settings/change_email.cljs:63 +#: src/app/main/ui/settings/change_email.cljs msgid "notifications.validation-email-sent" msgstr "" "Posta elektronikoa egiaztatzeko mezua ondo bidali da %s helbidera. " "Egiaztatu zure helbidea!" -#, unused msgid "onboarding-v2.before-start.desc1" msgstr "" "Penpotekin lanean hasteko hainbat eta hainbat baliabide daude, adibidez " "erabiltzailearen gida eta gure Youtube kanala." -#, unused msgid "onboarding-v2.before-start.desc2" msgstr "" "Penpot erabiltzeari buruko informazioa. Prototipoak egitetik, diseinuak " "antolatu eta partekatzera." -#, unused msgid "onboarding-v2.before-start.desc2.title" msgstr "Erabiltzailearen gida" -#, unused msgid "onboarding-v2.before-start.desc3" msgstr "Gure eta komunitateak egindako tutorialak ikusi ditzakezu." -#, unused msgid "onboarding-v2.before-start.desc3.title" msgstr "Bideo tutorialak" -#, unused msgid "onboarding-v2.before-start.title" msgstr "Hasi aurretik" -#: src/app/main/ui/onboarding/newsletter.cljs:63 msgid "onboarding-v2.newsletter.desc" msgstr "" "Harpidetu Penpoten buletinera produktuaren garapenaren inguruko albisteak " "ezagutzeko." -#: src/app/main/ui/onboarding/newsletter.cljs:83 msgid "onboarding-v2.newsletter.news" msgstr "" "Bidali Penpoti buruzko albisteak (blogeko artikuluak, bideo-tutorialak, " "zuzenekoak...)." -#: src/app/main/ui/onboarding/newsletter.cljs:91 msgid "onboarding-v2.newsletter.privacy1" msgstr "Zure pribatutasuna zaintzen dugu, hemen irakurri dezakezu gure " -#: src/app/main/ui/onboarding/newsletter.cljs:97 msgid "onboarding-v2.newsletter.privacy2" msgstr "" "Zuretzat garrantzitsuak diren mezuak bakarrik bidaliko dizkizugu. " "Harpidetza zuk nahi duzunean eten dezakezu buletinean dagoen esteka " "erabiliz." -#: src/app/main/ui/onboarding/newsletter.cljs:71 msgid "onboarding-v2.newsletter.updates" msgstr "" "Bidali produktuaren eguneraketak (ezaugarri berriak, bertsioak, " "konponketak, ...)." -#, unused msgid "onboarding-v2.welcome.desc1" msgstr "" "Penpot Kode Irekikoa da eta Kaleidos eta komunitateak egindakoa da. " "Laguntzeko erak:" -#, unused msgid "onboarding-v2.welcome.desc2" msgstr "" "Penpoten oraina eta etorkizunari buruz ikasi, partekatu eta eztabaidatzeko " "tokia." -#, unused msgid "onboarding-v2.welcome.desc2.title" msgstr "Komunitatean parte hartzen" -#, unused msgid "onboarding-v2.welcome.desc3" msgstr "" "Hemen izango duzu itzulpenekin laguntzeko informazioa, funtzionalitateak " "eskatzeko modua, erroreak bilatzekoa…" -#, unused msgid "onboarding-v2.welcome.desc3.title" msgstr "Laguntzeko gida" -#: src/app/main/ui/onboarding/team_choice.cljs:31 msgid "onboarding-v2.welcome.title" msgstr "Ongi etorri Penpotera!" -#: src/app/main/ui/onboarding/team_choice.cljs:215 msgid "onboarding.choice.team-up.create-team-desc" msgstr "Taldeari izena eman ostean, pertsona gehiago gonbidatu ditzakezu." -#: src/app/main/ui/onboarding/team_choice.cljs:224 msgid "onboarding.choice.team-up.create-team-placeholder" msgstr "Idatzi taldearen izena" -#: src/app/main/ui/dashboard/projects.cljs:89, src/app/main/ui/onboarding/team_choice.cljs:140 msgid "onboarding.choice.team-up.invite-members" msgstr "Gonbidatu kideak" -#: src/app/main/ui/onboarding/team_choice.cljs:141 msgid "onboarding.choice.team-up.invite-members-info" msgstr "" "Ez ahaztu garapeneko, diseinuko, kudeaketako... pertsonak sartzea, " "dibertsitatea ona da :)" -#: src/app/main/ui/dashboard/team.cljs:202, src/app/main/ui/onboarding/team_choice.cljs:146 msgid "onboarding.choice.team-up.roles" msgstr "Gonbidatu rol honekin:" -#, unused msgid "onboarding.newsletter.accept" msgstr "Bai, harpidetu" -#: src/app/main/ui/onboarding/newsletter.cljs:40 msgid "onboarding.newsletter.acceptance-message" msgstr "" "Zure harpidetza eskaera ondo bidali du, berrespen mezu bat jasoko duzu zure " "helbidean." -#: src/app/main/ui/onboarding/newsletter.cljs:95 msgid "onboarding.newsletter.policy" msgstr "Pribatutasun politika." -#: src/app/main/ui/onboarding/newsletter.cljs:60 msgid "onboarding.newsletter.title" msgstr "Penpoti buruzko albisteak jaso nahi dituzu?" -#: src/app/main/ui/onboarding/team_choice.cljs:213 msgid "onboarding.team-modal.create-team" msgstr "Sortu talde bat" -#: src/app/main/ui/onboarding/team_choice.cljs:35 msgid "onboarding.team-modal.create-team-desc" msgstr "" "Talde batek Penpoten fitxategi eta proiektuetan elkarrekin lan egiteko " "aukera ematen du." -#: src/app/main/ui/onboarding/team_choice.cljs:40 msgid "onboarding.team-modal.create-team-feature-1" msgstr "Mugarik gabeko fitxategi eta proiektu kopurua" -#: src/app/main/ui/onboarding/team_choice.cljs:44 msgid "onboarding.team-modal.create-team-feature-2" msgstr "Jokalari anitzeko edizioa" -#: src/app/main/ui/onboarding/team_choice.cljs:48 msgid "onboarding.team-modal.create-team-feature-3" msgstr "Rolen kudeaketa" -#: src/app/main/ui/onboarding/team_choice.cljs:52 msgid "onboarding.team-modal.create-team-feature-4" msgstr "Partehartzaile muga gabe" -#: src/app/main/ui/onboarding/team_choice.cljs:56 msgid "onboarding.team-modal.create-team-feature-5" msgstr "%100 doan!" -#: src/app/main/ui/onboarding/templates.cljs:78 msgid "onboarding.templates.subtitle" msgstr "Hemen dituzu txantiloi batzuk." -#: src/app/main/ui/onboarding/templates.cljs:77 msgid "onboarding.templates.title" msgstr "Hasi diseinatzen" -#, unused msgid "onboarding.welcome.alt" msgstr "Penpot" -#: src/app/main/ui/auth/recovery.cljs:99 +#: src/app/main/ui/auth/recovery.cljs msgid "profile.recovery.go-to-login" msgstr "Sartu" -#: src/app/main/ui/viewer/inspect/exports.cljs:147, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:631, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:137, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:148, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:188, src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:158, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:399, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:410, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:430, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:441, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:458, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:472, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:309, src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:183, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:373, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:389, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:245, src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:172 +#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs msgid "settings.multiple" msgstr "Batzuk" # SECTIONS -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:414 msgid "shortcut-section.basics" msgstr "Oinarrizkoak" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:420 msgid "shortcut-section.dashboard" msgstr "Lanlekua" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:423 msgid "shortcut-section.viewer" msgstr "Ikusteko modua" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:417 msgid "shortcut-section.workspace" msgstr "Mahaigaina" # SUBSECTIONS -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:56 msgid "shortcut-subsection.alignment" msgstr "Lerrokatzea" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:57 msgid "shortcut-subsection.edit" msgstr "Editatu" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:58 msgid "shortcut-subsection.general-dashboard" msgstr "Orokorra" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:59 msgid "shortcut-subsection.general-viewer" msgstr "Orokorra" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:60 msgid "shortcut-subsection.main-menu" msgstr "Menu nagusia" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:61 msgid "shortcut-subsection.modify-layers" msgstr "Aldatu geruzak" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:62 msgid "shortcut-subsection.navigation-dashboard" msgstr "Nabigazioa" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:63 msgid "shortcut-subsection.navigation-viewer" msgstr "Nabigazioa" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:64 msgid "shortcut-subsection.navigation-workspace" msgstr "Nabigazioa" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:65 msgid "shortcut-subsection.panels" msgstr "Panelak" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:66 msgid "shortcut-subsection.path-editor" msgstr "Bidea" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:67 msgid "shortcut-subsection.shape" msgstr "Formak" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:68 msgid "shortcut-subsection.text-editor" msgstr "Testuak" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:69 msgid "shortcut-subsection.tools" msgstr "Tresnak" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:70 msgid "shortcut-subsection.zoom-viewer" msgstr "Zoom" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:71 msgid "shortcut-subsection.zoom-workspace" msgstr "Zoom" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:72 msgid "shortcuts.add-comment" msgstr "Gehitu iruzkinak" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:73 msgid "shortcuts.add-node" msgstr "Gehitu nodoa" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:74 msgid "shortcuts.align-bottom" msgstr "Lerrokatu behean" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:75 msgid "shortcuts.align-center" msgstr "Erdian lerrokatu" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:76 msgid "shortcuts.align-hcenter" msgstr "Lerrokatu erdian horizontalki" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:77 msgid "shortcuts.align-justify" msgstr "Justifikatuta lerrokatu" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:78 msgid "shortcuts.align-left" msgstr "Lerrokatu ezkerrean" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:79 msgid "shortcuts.align-right" msgstr "Lerrokatu eskuman" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:80 msgid "shortcuts.align-top" msgstr "Lerrokatu goian" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:81 msgid "shortcuts.align-vcenter" msgstr "Lerrokatu erdian bertikalki" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:82 msgid "shortcuts.artboard-selection" msgstr "Sortu arbela hautapenetik" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:83 msgid "shortcuts.bold" msgstr "Aktibatu/desaktibatu beltza" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:84 msgid "shortcuts.bool-difference" msgstr "Diferentzia" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:85 msgid "shortcuts.bool-exclude" msgstr "Baztertu" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:86 msgid "shortcuts.bool-intersection" msgstr "Ebakidura" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:87 msgid "shortcuts.bool-union" msgstr "Elkarketa" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:88 msgid "shortcuts.bring-back" msgstr "Bidali atzera" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:89 msgid "shortcuts.bring-backward" msgstr "Bidali hondora" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:90 msgid "shortcuts.bring-forward" msgstr "Mugitu aurrealdera" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:91 msgid "shortcuts.bring-front" msgstr "Mugitu aurrera" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:92 msgid "shortcuts.clear-undo" msgstr "Garbitu historiala" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:93 msgid "shortcuts.copy" msgstr "Kopiatu" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:94 msgid "shortcuts.create-component" msgstr "Sortu osagaia" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:95 msgid "shortcuts.create-new-project" msgstr "Sortu berria" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:96 msgid "shortcuts.cut" msgstr "Moztu" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:97 msgid "shortcuts.decrease-zoom" msgstr "Jaitsi zooma" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:98 msgid "shortcuts.delete" msgstr "Ezabatu" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:99 msgid "shortcuts.delete-node" msgstr "Ezabatu nodoa" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:100 msgid "shortcuts.detach-component" msgstr "Banandu osagaian" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:101 msgid "shortcuts.draw-curve" msgstr "Kurba" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:102 msgid "shortcuts.draw-ellipse" msgstr "Elipsea" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:103 msgid "shortcuts.draw-frame" msgstr "Arbela" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:104 msgid "shortcuts.draw-nodes" msgstr "Marraztu nodoak" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:105 msgid "shortcuts.draw-path" msgstr "Bidea" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:106 msgid "shortcuts.draw-rect" msgstr "Laukia" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:107 msgid "shortcuts.draw-text" msgstr "Testua" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:108 msgid "shortcuts.duplicate" msgstr "Bikoiztu" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:109 msgid "shortcuts.escape" msgstr "Utzi" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:110 msgid "shortcuts.export-shapes" msgstr "Esportatu osagaiak" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:111 msgid "shortcuts.fit-all" msgstr "Zoom dena ikusteko" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:112 msgid "shortcuts.flip-horizontal" msgstr "Irauli horizontalki" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:113 msgid "shortcuts.flip-vertical" msgstr "Irauli bertikalki" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:114 msgid "shortcuts.font-size-dec" msgstr "Letra tipoaren tamaina txikitu" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:115 msgid "shortcuts.font-size-inc" msgstr "Letra tipoaren tamaina handitu" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:116 msgid "shortcuts.go-to-drafts" msgstr "Joan zirriborroetara" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:117 msgid "shortcuts.go-to-libs" msgstr "Joan partekatutako liburutegietara" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:118 msgid "shortcuts.go-to-search" msgstr "Bilatu" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:119 msgid "shortcuts.group" msgstr "Taldekatu" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:120 msgid "shortcuts.h-distribute" msgstr "Banatu horizontalki" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:121 msgid "shortcuts.hide-ui" msgstr "Erakutsi/ezkutatu interfazea" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:122 msgid "shortcuts.increase-zoom" msgstr "Zooma handitu" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:123 msgid "shortcuts.insert-image" msgstr "Txertatu irudia" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:124 msgid "shortcuts.italic" msgstr "Aktibatu/desaktibatu etzana" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:125 msgid "shortcuts.join-nodes" msgstr "Elkartu nodoak" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:126 msgid "shortcuts.letter-spacing-dec" msgstr "Hizkien arteko espazioa txikitu" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:127 msgid "shortcuts.letter-spacing-inc" msgstr "Hizkien arteko espazioa handitu" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:128 msgid "shortcuts.line-height-dec" msgstr "Lerroen arteko tartea txikitu" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:129 msgid "shortcuts.line-height-inc" msgstr "Lerroen arteko tartea handitu" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:130 msgid "shortcuts.line-through" msgstr "Aktibatu/desaktibatu marratzea" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:131 msgid "shortcuts.make-corner" msgstr "Bihurtu ertz" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:132 msgid "shortcuts.make-curve" msgstr "Bihurtu kurba" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:133 msgid "shortcuts.mask" msgstr "Maskara" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:134 msgid "shortcuts.merge-nodes" msgstr "Elkartu nodoak" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:135 msgid "shortcuts.move" msgstr "Mugitu" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:136 msgid "shortcuts.move-fast-down" msgstr "Mugitu behera azkar" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:137 msgid "shortcuts.move-fast-left" msgstr "Mugitu ezkerrera azkar" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:138 msgid "shortcuts.move-fast-right" msgstr "Mugitu eskumara azar" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:139 msgid "shortcuts.move-fast-up" msgstr "Mugitu gora azkar" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:140 msgid "shortcuts.move-nodes" msgstr "Mugitu nodoa" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:141 msgid "shortcuts.move-unit-down" msgstr "Mugitu behera" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:142 msgid "shortcuts.move-unit-left" msgstr "Mugitu ezkerrera" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:143 msgid "shortcuts.move-unit-right" msgstr "Mugitu eskumara" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:144 msgid "shortcuts.move-unit-up" msgstr "Mugitu gora" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:145 msgid "shortcuts.next-frame" msgstr "Hurrengo arbela" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:516 msgid "shortcuts.not-found" msgstr "Ez dago emaitzarik" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:146 msgid "shortcuts.opacity-0" msgstr "Opakutasuna %100" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:147 msgid "shortcuts.opacity-1" msgstr "Opakutasuna %10" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:148 msgid "shortcuts.opacity-2" msgstr "Opakutasuna %20" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:149 msgid "shortcuts.opacity-3" msgstr "Opakutasuna %30" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:150 msgid "shortcuts.opacity-4" msgstr "Opakutasuna %40" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:151 msgid "shortcuts.opacity-5" msgstr "Opakutasuna %50" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:152 msgid "shortcuts.opacity-6" msgstr "Opakutasuna %60" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:153 msgid "shortcuts.opacity-7" msgstr "Opakutasuna %70" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:154 msgid "shortcuts.opacity-8" msgstr "Opakutasuna %80" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:155 msgid "shortcuts.opacity-9" msgstr "Opakutasuna %90" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:156 msgid "shortcuts.open-color-picker" msgstr "Ireki kolore-hautatzailea" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:157 msgid "shortcuts.open-comments" msgstr "Iruzkinak" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:158 msgid "shortcuts.open-dashboard" msgstr "Joan lan-lekura" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:159 msgid "shortcuts.open-inspect" msgstr "Ikuskagailura joan" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:160 msgid "shortcuts.open-interactions" msgstr "Joan interakzioetara" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:161 msgid "shortcuts.open-viewer" msgstr "Joan ikusteko modura" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:162 msgid "shortcuts.open-workspace" msgstr "Joan zure mahaigainera" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:260 msgid "shortcuts.or" msgstr " edo " -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:163 msgid "shortcuts.paste" msgstr "Itsatsi" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:164 msgid "shortcuts.prev-frame" msgstr "Aurreko arbela" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:165 msgid "shortcuts.redo" msgstr "Berregin" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:166 msgid "shortcuts.reset-zoom" msgstr "Berrezarri zooma" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:168 msgid "shortcuts.search-placeholder" msgstr "Bilatu lasterbideak" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:169 msgid "shortcuts.select-all" msgstr "Aukeratu guztia" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:170 msgid "shortcuts.select-next" msgstr "Aukeratu hurrengo geruza" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:172 msgid "shortcuts.select-prev" msgstr "Aukeratu aurreko geruza" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:173 msgid "shortcuts.separate-nodes" msgstr "Banatu nodoak" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:174 msgid "shortcuts.show-pixel-grid" msgstr "Erakutsi/ezkutatu pixel sarea" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:175 msgid "shortcuts.show-shortcuts" msgstr "Erakutsi/ezkutatu lasterbideak" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:176 msgid "shortcuts.snap-nodes" msgstr "Lerrokatu nodoak" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:177 msgid "shortcuts.snap-pixel-grid" msgstr "Aktibatu sarea pixelera lerrokatzea" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:178 msgid "shortcuts.start-editing" msgstr "Hasi edizioa" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:179 msgid "shortcuts.start-measure" msgstr "Hasi neurketa" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:180 msgid "shortcuts.stop-measure" msgstr "Amaitu neurketa" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:185 msgid "shortcuts.thumbnail-set" msgstr "Aktibatu iruditxoak" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:496, src/app/main/ui/workspace/sidebar/shortcuts.cljs:505 +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs msgid "shortcuts.title" msgstr "Lasterteklak" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:186 msgid "shortcuts.toggle-alignment" msgstr "Lerrokatzea aldatu" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:187 msgid "shortcuts.toggle-assets" msgstr "Erakutsi/ezkutatu baliabideak" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:188 msgid "shortcuts.toggle-colorpalette" msgstr "Erakutsi/ezkutatu kolore paleta" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:189 msgid "shortcuts.toggle-focus-mode" msgstr "Erakutsi/ezkutatu foko-modua" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:190 msgid "shortcuts.toggle-fullscreen" msgstr "Aktibatu/desaktibatu pantaila osoa" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:192 msgid "shortcuts.toggle-history" msgstr "Erakutsi/Ezkutatu historikoa" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:193 msgid "shortcuts.toggle-layers" msgstr "Erakutsi/ezkutatu geruzak" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:194 msgid "shortcuts.toggle-layout-flex" msgstr "Gehitu/kendu flex diseinua" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:196 msgid "shortcuts.toggle-lock" msgstr "Blokeatu/Desblokeatu" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:197 msgid "shortcuts.toggle-lock-size" msgstr "Blokeatu/Desblokeatu proportzioak" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:202 msgid "shortcuts.toggle-textpalette" msgstr "Erakutsi/Ezkutatu testuen paleta" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:204 msgid "shortcuts.toggle-visibility" msgstr "Erakutsi/Ezkutatu elementua" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:205 msgid "shortcuts.toggle-zoom-style" msgstr "Erakutsi/Ezkutatu zoomaren estiloa" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:206 msgid "shortcuts.underline" msgstr "Aktibatu/desaktibatu azpimarraketa" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:207 msgid "shortcuts.undo" msgstr "Desegin" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:208 msgid "shortcuts.ungroup" msgstr "Banatu" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:209 msgid "shortcuts.unmask" msgstr "Desegin maskara" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:210 msgid "shortcuts.v-distribute" msgstr "Banatu bertikalki" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:211 msgid "shortcuts.zoom-lense-decrease" msgstr "Zooma txikitu" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:212 msgid "shortcuts.zoom-lense-increase" msgstr "Zooma handitu" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:213 msgid "shortcuts.zoom-selected" msgstr "Zooma aukeraketara" -#: src/app/main/ui/dashboard/files.cljs:158 +#: src/app/main/ui/dashboard/files.cljs msgid "title.dashboard.files" msgstr "%s - Penpot" -#: src/app/main/ui/dashboard/fonts.cljs:37 +#: src/app/main/ui/dashboard/fonts.cljs msgid "title.dashboard.font-providers" msgstr "Letra-tipoen hornitzaileak - %s - Penpot" -#: src/app/main/ui/dashboard/fonts.cljs:36 +#: src/app/main/ui/dashboard/fonts.cljs msgid "title.dashboard.fonts" msgstr "Letra-tipoak - %s - Penpot" -#: src/app/main/ui/dashboard/projects.cljs:320 +#: src/app/main/ui/dashboard/projects.cljs msgid "title.dashboard.projects" msgstr "Proiektuak - %s - Penpot" -#: src/app/main/ui/dashboard/search.cljs:32 +#: src/app/main/ui/dashboard/search.cljs msgid "title.dashboard.search" msgstr "Bilatu - %s - Penpot" -#: src/app/main/ui/dashboard/libraries.cljs:44 +#: src/app/main/ui/dashboard/libraries.cljs msgid "title.dashboard.shared-libraries" msgstr "Partekatutako liburutegiak - %s - Penpot" -#: src/app/main/ui/auth/verify_token.cljs:68, src/app/main/ui/auth.cljs:54 +#: src/app/main/ui/auth/verify_token.cljs, src/app/main/ui/auth.cljs msgid "title.default" msgstr "Penpot - Taldeentzako diseinu librea" -#: src/app/main/ui/settings/feedback.cljs:110 +#: src/app/main/ui/settings/feedback.cljs msgid "title.settings.feedback" msgstr "Eman zure iritzia - Penpot" -#: src/app/main/ui/settings/options.cljs:80 +#: src/app/main/ui/settings/options.cljs msgid "title.settings.options" msgstr "Ezarpenak - Penpot" -#: src/app/main/ui/settings/password.cljs:115 +#: src/app/main/ui/settings/password.cljs msgid "title.settings.password" msgstr "Pasahitza - Penpot" -#: src/app/main/ui/settings/profile.cljs:115 +#: src/app/main/ui/settings/profile.cljs msgid "title.settings.profile" msgstr "Profila - Penpot" -#: src/app/main/ui/dashboard/team.cljs:727 +#: src/app/main/ui/dashboard/team.cljs msgid "title.team-invitations" msgstr "Gonbidapenak - %s - Penpot" -#: src/app/main/ui/dashboard/team.cljs:493 +#: src/app/main/ui/dashboard/team.cljs msgid "title.team-members" msgstr "Kideak - %s - Penpot" -#: src/app/main/ui/dashboard/team.cljs:1036 +#: src/app/main/ui/dashboard/team.cljs msgid "title.team-settings" msgstr "Ezarpenak - %s - Penpot" -#: src/app/main/ui/dashboard/team.cljs:989 msgid "title.team-webhooks" msgstr "Webhookak - %s - Penpot" -#: src/app/main/ui/viewer.cljs:419 +#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs msgid "title.viewer" msgstr "%s - Ikusteko modua - Penpot" -#: src/app/main/ui/workspace.cljs:190 +#: src/app/main/ui/workspace.cljs msgid "title.workspace" msgstr "%s - Penpot" -#: src/app/main/ui.cljs:144 msgid "viewer.breaking-change.description" msgstr "" "Partekatutako esteka hau ez dabil- Sortu berri bat edo eska iezaiozu sortu " "zuen pertsonari." -#: src/app/main/ui.cljs:143 msgid "viewer.breaking-change.message" msgstr "Sentitzen dugu!" -#: src/app/main/ui/viewer.cljs:569 +#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs msgid "viewer.empty-state" msgstr "Ez da arbelik aurkitu." -#: src/app/main/ui/viewer.cljs:574 +#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs msgid "viewer.frame-not-found" msgstr "Ez dago arbel hori." -#: src/app/main/ui/viewer/header.cljs:336 msgid "viewer.header.comments-section" msgstr "Iruzkinak (%s)" -#: src/app/main/ui/viewer/interactions.cljs:292 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.dont-show-interactions" msgstr "Ez erakutsi interakzioak" -#: src/app/main/ui/viewer/header.cljs:188 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.fullscreen" msgstr "Pantaila osoa" -#: src/app/main/ui/viewer/header.cljs:345 msgid "viewer.header.inspect-section" msgstr "Ikuskagailua (%s)" -#: src/app/main/ui/viewer/interactions.cljs:282 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.interactions" msgstr "Interakzioak" -#: src/app/main/ui/viewer/header.cljs:327 msgid "viewer.header.interactions-section" msgstr "Interakzioak (%s)" -#: src/app/main/ui/viewer/share_link.cljs:187 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.share.copy-link" msgstr "Kopiatu esteka" -#: src/app/main/ui/viewer/interactions.cljs:300 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.show-interactions" msgstr "Erakutsi interakzioak" -#: src/app/main/ui/viewer/interactions.cljs:311 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.show-interactions-on-click" msgstr "Erakutsi interakzioak klik egitean" -#: src/app/main/ui/viewer/header.cljs:231 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.sitemap" msgstr "Webgunearen mapa" -#: src/app/main/ui/dashboard/team.cljs:948 +#, fuzzy msgid "webhooks.last-delivery.success" msgstr "Azken bidalketa ondo joan da." -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:58 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.hcenter" msgstr "Lerrokatu erdian (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:74 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.hdistribute" msgstr "Banatu espazioa horizontalki (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:50 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.hleft" msgstr "Lerrokatu ezkerrean (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:66 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.hright" msgstr "Lerrokatu eskuman (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:99 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.vbottom" msgstr "Lerrokatu behean (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:91 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.vcenter" msgstr "Lerrokatu erdian (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:104 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.vdistribute" msgstr "Banatu espazioa bertikalki (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:83 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.vtop" msgstr "Lerrokatu goian (%s)" #: src/app/main/ui/workspace/sidebar/assets.cljs -#, unused msgid "workspace.assets.assets" msgstr "Baliabideak" -#: src/app/main/ui/workspace/sidebar/assets.cljs:134 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.box-filter-all" msgstr "Guztiak" -#: src/app/main/ui/dashboard/grid.cljs:130, src/app/main/ui/dashboard/grid.cljs:162, src/app/main/ui/workspace/sidebar/assets/colors.cljs:485, src/app/main/ui/workspace/sidebar/assets.cljs:150 +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.colors" msgstr "Koloreak" -#: src/app/main/ui/dashboard/grid.cljs:126, src/app/main/ui/dashboard/grid.cljs:141, src/app/main/ui/workspace/sidebar/assets/components.cljs:513, src/app/main/ui/workspace/sidebar/assets.cljs:139 +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.components" msgstr "Osagaiak" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:131 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.create-group" msgstr "Sortu talde bat" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:142 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.create-group-hint" msgstr "" "Zure elementuak berrizendatu egingo dira: \"taldearen izena / elementuaren " "izena\"" -#: src/app/main/ui/workspace/context_menu.cljs:529, src/app/main/ui/workspace/sidebar/assets/colors.cljs:251, src/app/main/ui/workspace/sidebar/assets/components.cljs:577, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:424, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:443 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.delete" msgstr "Ezabatu" -#: src/app/main/ui/workspace/context_menu.cljs:534, src/app/main/ui/workspace/sidebar/assets/components.cljs:572 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.duplicate" msgstr "Bikoiztu" -#: src/app/main/ui/workspace/sidebar/assets/components.cljs:571 msgid "workspace.assets.duplicate-main" msgstr "Bikoiztu nagusia" -#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:247, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:439 +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.edit" msgstr "Editatu" -#: src/app/main/ui/workspace/sidebar/assets/graphics.cljs:384, src/app/main/ui/workspace/sidebar/assets.cljs:145 +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.graphics" msgstr "Grafikoak" -#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:255, src/app/main/ui/workspace/sidebar/assets/components.cljs:581, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:428, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:448 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.group" msgstr "Taldekatu" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:141 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.group-name" msgstr "Taldearen izena" -#: src/app/main/ui/workspace/sidebar/assets.cljs:168 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.libraries" msgstr "Liburutegiak" -#: src/app/main/ui/workspace/sidebar/assets/file_library.cljs:62, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:347 msgid "workspace.assets.local-library" msgstr "liburutegi lokala" -#: src/app/main/ui/workspace/sidebar/assets/file_library.cljs:295 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.not-found" msgstr "Ez da baliabiderik aurkitu" -#: src/app/main/ui/workspace/context_menu.cljs:532, src/app/main/ui/workspace/sidebar/assets/colors.cljs:243, src/app/main/ui/workspace/sidebar/assets/components.cljs:566, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:421, src/app/main/ui/workspace/sidebar/assets/groups.cljs:63, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:434 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.rename" msgstr "Izena aldatu" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:132 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.rename-group" msgstr "Berrizendatu taldea" -#: src/app/main/ui/workspace/sidebar/assets.cljs:173 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.search" msgstr "Bilatu baliabideak" #: src/app/main/ui/workspace/sidebar/assets.cljs -#, unused msgid "workspace.assets.selected-count" msgid_plural "workspace.assets.selected-count" msgstr[0] "%s elementu aukeratuta" msgstr[1] "Ez da elementurik aukeratu" -#: src/app/main/ui/dashboard/grid.cljs:134, src/app/main/ui/dashboard/grid.cljs:189, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:397, src/app/main/ui/workspace/sidebar/assets.cljs:155 +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.typography" msgstr "Letra-tipoak" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused msgid "workspace.assets.typography.font-id" msgstr "Letra-tipoak" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:505 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.font-size" msgstr "Tamaina" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:501 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.font-variant-id" msgstr "Aldaerak" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:523 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.go-to-edit" msgstr "Joan estilo liburutegiaren fitxategira editatzeko" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:513 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.letter-spacing" msgstr "Hizkien tartea" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:509 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.line-height" msgstr "Lerroaren altuera" -#: src/app/main/ui/dashboard/grid.cljs:199, src/app/main/ui/workspace/libraries.cljs:461, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:464, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:489, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:596, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:615 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, +#: src/app/main/ui/inspect/attributes/text.cljs, +#: src/app/main/ui/inspect/attributes/text.cljs msgid "workspace.assets.typography.sample" msgstr "Ag" -#, unused msgid "workspace.assets.typography.text-styles" msgstr "Testuen estiloak" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:517 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.text-transform" msgstr "Testua eraldatu" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:66 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.ungroup" msgstr "Banatu" -#: src/app/main/ui/workspace/sidebar/layers.cljs:525 msgid "workspace.focus.focus-mode" msgstr "Foku-modua" -#: src/app/main/ui/workspace/context_menu.cljs:287, src/app/main/ui/workspace/context_menu.cljs:553 msgid "workspace.focus.focus-off" msgstr "Fokua kendu" -#: src/app/main/ui/workspace/context_menu.cljs:286 msgid "workspace.focus.focus-on" msgstr "Fokua gehitu" -#, unused msgid "workspace.focus.selection" msgstr "Aukeraketa" -#: src/app/util/color.cljs:34 +#: src/app/main/data/workspace/libraries.cljs, +#: src/app/main/ui/components/color_bullet.cljs msgid "workspace.gradients.linear" msgstr "Gradiente lineala" -#: src/app/util/color.cljs:35 +#: src/app/main/data/workspace/libraries.cljs, +#: src/app/main/ui/components/color_bullet.cljs msgid "workspace.gradients.radial" msgstr "Gradiente erradiala" -#: src/app/main/ui/workspace/main_menu.cljs:238 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.disable-dynamic-alignment" msgstr "Desaktibatu lerrokatze dinamikoa" -#: src/app/main/ui/workspace/main_menu.cljs:192 msgid "workspace.header.menu.disable-scale-content" msgstr "Desaktibatu eskala proportzionala" #: src/app/main/ui/workspace/header.cljs -#, unused msgid "workspace.header.menu.disable-scale-text" msgstr "Desaktibatu testu eskala" -#: src/app/main/ui/workspace/main_menu.cljs:223 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.disable-snap-guides" msgstr "Desaktibatu gidetara atxikitzea" -#: src/app/main/ui/workspace/main_menu.cljs:253 msgid "workspace.header.menu.disable-snap-pixel-grid" msgstr "Desaktibatu pixelera atxikitzea" -#: src/app/main/ui/workspace/main_menu.cljs:239 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.enable-dynamic-alignment" msgstr "Aktibatu lerrokatze dinamikoa" -#: src/app/main/ui/workspace/main_menu.cljs:193 msgid "workspace.header.menu.enable-scale-content" msgstr "Aktibatu eskala proportzionala" #: src/app/main/ui/workspace/header.cljs -#, unused msgid "workspace.header.menu.enable-scale-text" msgstr "Aktibatu testua eskalatzea" -#: src/app/main/ui/workspace/main_menu.cljs:224 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.enable-snap-guides" msgstr "Atxikitu gidetara" -#: src/app/main/ui/workspace/main_menu.cljs:254 msgid "workspace.header.menu.enable-snap-pixel-grid" msgstr "Aktibatu pixelera atxikitzea" -#: src/app/main/ui/workspace/main_menu.cljs:382 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.hide-artboard-names" msgstr "Ezkutatu arbelen izenak" -#: src/app/main/ui/workspace/main_menu.cljs:353 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.hide-palette" msgstr "Ezkutatu kolore-paleta" -#: src/app/main/ui/workspace/main_menu.cljs:394 msgid "workspace.header.menu.hide-pixel-grid" msgstr "Ezkutatu pixel sareta" -#: src/app/main/ui/workspace/main_menu.cljs:320 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.hide-rules" msgstr "Ezkutatu erregleank" -#: src/app/main/ui/workspace/main_menu.cljs:367 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.hide-textpalette" msgstr "Ezkutatu letra-tipoen paleta" -#: src/app/main/ui/workspace/main_menu.cljs:731 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.edit" msgstr "Editatu" -#: src/app/main/ui/workspace/main_menu.cljs:720 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.file" msgstr "Fitxategia" -#: src/app/main/ui/workspace/main_menu.cljs:777 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.help-info" msgstr "Laguntza eta informazioa" -#: src/app/main/ui/workspace/main_menu.cljs:753 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.preferences" msgstr "Hobespenak" -#: src/app/main/ui/workspace/main_menu.cljs:742 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.view" msgstr "Ikusi" -#: src/app/main/ui/workspace/main_menu.cljs:459 msgid "workspace.header.menu.redo" msgstr "Berregin" -#: src/app/main/ui/workspace/main_menu.cljs:432 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.select-all" msgstr "Guztiak aukeratu" -#: src/app/main/ui/workspace/main_menu.cljs:383 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.show-artboard-names" msgstr "Erakutsi arbelen izenak" -#: src/app/main/ui/workspace/main_menu.cljs:354 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.show-palette" msgstr "Erakutsi kolore-paleta" -#: src/app/main/ui/workspace/main_menu.cljs:321 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.show-rules" msgstr "Erakutsi erregelak" -#: src/app/main/ui/workspace/main_menu.cljs:368 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.show-textpalette" msgstr "Erakutsi letra-tipoen paleta" -#: src/app/main/ui/workspace/main_menu.cljs:446 msgid "workspace.header.menu.undo" msgstr "Desegin" -#: src/app/main/ui/viewer/header.cljs:98, src/app/main/ui/workspace/right_header.cljs:120 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.reset-zoom" msgstr "Berrezarri" #: src/app/main/ui/workspace/header.cljs -#, unused msgid "workspace.header.save-error" msgstr "Errorea gordetzean" -#: src/app/main/ui/workspace/right_header.cljs:52 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.saved" msgstr "Gordeta" #: src/app/main/ui/workspace/header.cljs -#, unused msgid "workspace.header.saving" msgstr "Gordetzen" -#: src/app/main/ui/workspace/right_header.cljs:42, src/app/main/ui/workspace/right_header.cljs:47 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.unsaved" msgstr "Gorde gabeko aldaketak" -#: src/app/main/ui/workspace/right_header.cljs:239 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.viewer" msgstr "Ikusteko modua (%s)" -#: src/app/main/ui/viewer/header.cljs:109 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom-fill" msgstr "Bete - Eskala betetzeko" -#: src/app/main/ui/viewer/header.cljs:102 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom-fit" msgstr "Egokitu - Eskalatu egokitzeko" -#: src/app/main/ui/workspace/right_header.cljs:123 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom-fit-all" msgstr "Zoom dena ikusteko" -#: src/app/main/ui/viewer/header.cljs:116 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom-full-screen" msgstr "Pantaila osoa" -#: src/app/main/ui/workspace/right_header.cljs:130 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom-selected" msgstr "Zooma aukeraketara" #: src/app/main/ui/workspace/libraries.cljs -#, unused msgid "workspace.libraries.add" msgstr "Gehitu" -#: src/app/main/ui/workspace/libraries.cljs:80, src/app/main/ui/workspace/libraries.cljs:99 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.colors" msgstr "%s kolore" -#: src/app/main/ui/workspace/color_palette_ctx_menu.cljs:60, src/app/main/ui/workspace/colorpicker/libraries.cljs:73, src/app/main/ui/workspace/text_palette_ctx_menu.cljs:50 +#: src/app/main/ui/workspace/colorpicker/libraries.cljs, +#: src/app/main/ui/workspace/colorpalette.cljs msgid "workspace.libraries.colors.file-library" msgstr "Fitxategien liburutegia" #: src/app/main/ui/workspace/colorpicker.cljs -#, unused msgid "workspace.libraries.colors.hsv" msgstr "HSV" -#: src/app/main/ui/workspace/color_palette_ctx_menu.cljs:82, src/app/main/ui/workspace/colorpicker/libraries.cljs:72 +#: src/app/main/ui/workspace/colorpicker/libraries.cljs, +#: src/app/main/ui/workspace/colorpalette.cljs msgid "workspace.libraries.colors.recent-colors" msgstr "Azken koloreak" #: src/app/main/ui/workspace/colorpicker.cljs -#, unused msgid "workspace.libraries.colors.rgb-complementary" msgstr "RGB Osagarria" #: src/app/main/ui/workspace/colorpicker.cljs -#, unused msgid "workspace.libraries.colors.rgba" msgstr "RGBA" -#: src/app/main/ui/workspace/colorpicker.cljs:372 +#: src/app/main/ui/workspace/colorpicker.cljs msgid "workspace.libraries.colors.save-color" msgstr "Gorde kolorearen estiloa" -#: src/app/main/ui/workspace/libraries.cljs:74, src/app/main/ui/workspace/libraries.cljs:91 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.components" msgstr "%s osagai" -#: src/app/main/ui/workspace/libraries.cljs:215 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.file-library" msgstr "Fitxategien liburutegia" -#: src/app/main/ui/workspace/libraries.cljs:77, src/app/main/ui/workspace/libraries.cljs:95 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.graphics" msgstr "%s grafiko" -#: src/app/main/ui/workspace/libraries.cljs:209 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.in-this-file" msgstr "FITXATEGI HONETAKO LIBURUTEGIAK" -#: src/app/main/ui/workspace/libraries.cljs:526, src/app/main/ui/workspace/libraries.cljs:531 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.libraries" msgstr "LIBURUTEGIAK" #: src/app/main/ui/workspace/libraries.cljs -#, unused msgid "workspace.libraries.library" msgstr "LIBURUTEGIA" -#: src/app/main/ui/workspace/libraries.cljs:380 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.no-libraries-need-sync" msgstr "Ez dago eguneraketa behar duen partekatutako liburutegirik" -#: src/app/main/ui/workspace/libraries.cljs:299 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.no-matches-for" msgstr "Ez da ezer aurkitu bilaketa honentzat: \"%s\"" -#: src/app/main/ui/workspace/libraries.cljs:296 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.no-shared-libraries-available" msgstr "Ez dago partekatutako liburutegirik" -#: src/app/main/ui/workspace/libraries.cljs:260 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.search-shared-libraries" msgstr "Bilatu partekatutako liburutegiak" -#: src/app/main/ui/workspace/libraries.cljs:256 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.shared-libraries" msgstr "Partekatutako liburutegiak" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:308 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.libraries.text.multiple-typography" msgstr "Letra-tipo anitz" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:311 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.libraries.text.multiple-typography-tooltip" msgstr "Kendu esteka letra-tipo guztiei" -#: src/app/main/ui/workspace/libraries.cljs:83, src/app/main/ui/workspace/libraries.cljs:103 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.typography" msgstr "%s letra-tipo" -#: src/app/main/ui/workspace/libraries.cljs:402 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.update" msgstr "Eguneratu" -#: src/app/main/ui/workspace/libraries.cljs:536 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.updates" msgstr "EGUNERAKETAK" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:737 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.add-interaction" msgstr "Sakatu + botoia interakzioak gehitzeko." -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:86, src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:102 +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs msgid "workspace.options.blur-options.title" msgstr "Lausotu" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:85 +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs msgid "workspace.options.blur-options.title.group" msgstr "Taldea lausotu" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:84 +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs msgid "workspace.options.blur-options.title.multiple" msgstr "Aukeraketa lausotu" -#: src/app/main/ui/workspace/sidebar/options/page.cljs:32, src/app/main/ui/workspace/sidebar/options/page.cljs:39 +#: src/app/main/ui/workspace/sidebar/options/page.cljs msgid "workspace.options.canvas-background" msgstr "Mihisearen atzeko planoa" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:548 msgid "workspace.options.clip-content" msgstr "Edukia aukeratu" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:600, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:605 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs msgid "workspace.options.component" msgstr "Osagaia" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:163 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints" msgstr "Murriztapenak" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:150 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.bottom" msgstr "Behean" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:141, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:152 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.center" msgstr "Erdiratu" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:229 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.fix-when-scrolling" msgstr "Konpondu scroll egitean" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:138 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.left" msgstr "Ezkerrean" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:140 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.leftright" msgstr "Ezker eta eskuma" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:139 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.right" msgstr "Eskuman" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:142, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:153 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.scale" msgstr "Eskala" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:149 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.top" msgstr "Goian" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:151 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.topbottom" msgstr "Goian eta behean" -#: src/app/main/ui/workspace/sidebar/options.cljs:112 +#: src/app/main/ui/workspace/sidebar/options.cljs msgid "workspace.options.design" msgstr "Diseinua" -#: src/app/main/ui/viewer/inspect/exports.cljs:139 +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, +#: src/app/main/ui/inspect/exports.cljs msgid "workspace.options.export" msgstr "Esportatu" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, +#: src/app/main/ui/inspect/exports.cljs msgid "workspace.options.export-multiple" msgstr "Esportatu aukeraketa" -#: src/app/main/ui/viewer/inspect/exports.cljs:195, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:237 +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, +#: src/app/main/ui/inspect/exports.cljs msgid "workspace.options.export-object" msgid_plural "workspace.options.export-object" msgstr[0] "Esportatu elementu 1" msgstr[1] "Esportatu %s elementu" -#: src/app/main/ui/viewer/inspect/exports.cljs:178, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:219 +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs msgid "workspace.options.export.suffix" msgstr "Aurrizkia" -#: src/app/main/ui/export.cljs:240 +#: 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.exporting-complete" msgstr "Esportazioa osatu da" -#: src/app/main/ui/export.cljs:172, src/app/main/ui/export.cljs:241, src/app/main/ui/viewer/inspect/exports.cljs:194, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:236 +#: 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.exporting-object" msgstr "Esportazen…" -#: src/app/main/ui/export.cljs:239 +#: 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.exporting-object-error" msgstr "Esportazioak huts egin du" -#: src/app/main/ui/export.cljs:242 +#: 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.exporting-object-slow" msgstr "Esportazio oso geldoa" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:49, src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:174 +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs msgid "workspace.options.fill" msgstr "Bete" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:178 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.flows.add-flow-start" msgstr "Gehitu fluxuaren hasiera" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -#, unused msgid "workspace.options.flows.flow-start" msgstr "Fluxuaren hasiera" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:161 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.flows.flow-starts" msgstr "Fluxua hasi da" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:29 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.auto" msgstr "Auto" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:157 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.column" msgstr "Zutabeak" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.grid-title" msgstr "Sareta" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:196, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:237 msgid "workspace.options.grid.params.color" msgstr "Kolorea" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.params.columns" msgstr "Zutabeak" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:259 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.gutter" msgstr "Erretena" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:246 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.height" msgstr "Altuera" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:270 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.margin" msgstr "Margina" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.params.rows" msgstr "Lerroak" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:216, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:290 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.set-default" msgstr "Defektuzko orri gisa ezarri" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.params.size" msgstr "Tamaina" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.params.type" msgstr "Elementu mota" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:231 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.bottom" msgstr "Behean" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:229 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.center" msgstr "Erdiratu" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:228 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.left" msgstr "Ezkerrean" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:232 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.right" msgstr "Eskuman" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:225 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.stretch" msgstr "Luzatu" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:227 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.top" msgstr "Goian" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:211, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:288 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.use-default" msgstr "Erabili defektuzkoa" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:247 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.width" msgstr "Zabalera" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:158 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.row" msgstr "Lerroak" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:156 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.square" msgstr "Karratua" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:48 +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs msgid "workspace.options.group-fill" msgstr "Taldea bete" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:42 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.group-stroke" msgstr "Taldea trazatu" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:406 msgid "workspace.options.height" msgstr "Altuera" -#: src/app/main/ui/workspace/sidebar/options.cljs:161 msgid "workspace.options.inspect" msgstr "Ikuskatu" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:468 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-action" msgstr "Ekintza" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:41, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:367 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-after-delay" msgstr "Atzerapen baten ostean" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:614 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-animation" msgstr "Animazioa" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:406 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-animation-dissolve" msgstr "Disolbatu" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:405 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-animation-none" msgstr "Bat ere ez" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:412 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-animation-push" msgstr "Sartu" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:407 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-animation-slide" msgstr "Irristatu" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:391 msgid "workspace.options.interaction-auto" msgstr "automatikoa" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:604 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-background" msgstr "Gehitu atzeko planoko geruzi" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:590 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-close-outside" msgstr "Itxi kanpoan klik egitean" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:372 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-close-overlay" msgstr "Itxi geruza" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:56 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-close-overlay-dest" msgstr "Itxi geruza: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:456 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-delay" msgstr "Atzeratu" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:478 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-destination" msgstr "Helburua" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:661 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-duration" msgstr "Iraupena" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:674 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing" msgstr "Mugimendua" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:416 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing-ease" msgstr "Mugitu" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:417 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing-ease-in" msgstr "Mugitu barrura" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:419 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing-ease-in-out" msgstr "Mugitu barrura eta kanpora" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:418 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing-ease-out" msgstr "Mugitu kanpora" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:415 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing-linear" msgstr "Lineala" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -#, unused msgid "workspace.options.interaction-in" msgstr "Barrura" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:39, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:364 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-mouse-enter" msgstr "Sagua sartzean" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:40, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:365 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-mouse-leave" msgstr "Sagua urruntzean" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:458, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:459, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:464, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:663, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:665, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:669 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-ms" msgstr "ms" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:369 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-navigate-to" msgstr "Nabigatu hona" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:50 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-navigate-to-dest" msgstr "Nabigatu hona: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:51, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:53, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:55, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:380 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-none" msgstr "(ez da ezarri)" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:691 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-offset-effect" msgstr "Desplazamenduaren efektua" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:35, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:360 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-on-click" msgstr "Klik egitean" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:370 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-open-overlay" msgstr "Ireki geruza" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:52 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-open-overlay-dest" msgstr "Ireki geruz: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:59, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:374 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-open-url" msgstr "Ireki helbidea" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -#, unused msgid "workspace.options.interaction-out" msgstr "Kanpoan" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:403 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-bottom-center" msgstr "Behean erdian" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:401 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-bottom-left" msgstr "Behean ezkerrean" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:402 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-bottom-right" msgstr "Behean eskuman" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:397 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-center" msgstr "Erdiratu" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:396 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-manual" msgstr "Eskuzkoa" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:400 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-top-center" msgstr "Goian erdian" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:398 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-top-left" msgstr "Goian ezkerrean" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:399 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-top-right" msgstr "Goian eskuman" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:524 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-position" msgstr "Posizioa" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:494 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-preserve-scroll" msgstr "Mantendu scrollaren posizioa" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:58, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:373 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-prev-screen" msgstr "Aurreko pantaila" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:515 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-relative-to" msgstr "Honekiko erlatiboa" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:57, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:379, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:393, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:394 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-self" msgstr "norbera" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:371 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-toggle-overlay" msgstr "Erakutsi/Ezkutatu geruza" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:54 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-toggle-overlay-dest" msgstr "Erakutsi/Ezkutatu geruza: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:445 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-trigger" msgstr "Hasi" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:503 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-url" msgstr "URL" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:37, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:362 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-while-hovering" msgstr "Sagua gainetik pasatzean" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:38, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:363 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-while-pressing" msgstr "Sakatzean" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:724 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interactions" msgstr "Interakzioak" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:137 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.color" msgstr "Kolorea" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:126 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.color-burn" msgstr "Erretako kolorea" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:129 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.color-dodge" msgstr "Saihestu kolorea" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:124 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.darken" msgstr "Ilundu" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:133 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.difference" msgstr "Diferentzia" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:134 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.exclusion" msgstr "Baztertu" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:132 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.hard-light" msgstr "Argi gogorra" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:135 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.hue" msgstr "Ñabardura" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:127 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.lighten" msgstr "Argitu" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:138 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.luminosity" msgstr "Argitasuna" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:125 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.multiply" msgstr "Biderkatu" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:123 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.normal" msgstr "Normala" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:130 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.overlay" msgstr "Geruza" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:136 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.saturation" msgstr "Asetasuna" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:128 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.screen" msgstr "Pantaila" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:131 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.soft-light" msgstr "Argi biguna" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -#, unused msgid "workspace.options.layer-options.title" msgstr "Geruza" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -#, unused msgid "workspace.options.layer-options.title.group" msgstr "Taldearen geruzak" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -#, unused msgid "workspace.options.layer-options.title.multiple" msgstr "Aukeratutako geruzak" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout-item.advanced-ops" msgstr "Aukera aurreratuak" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:564 +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs msgid "workspace.options.layout-item.layout-item-max-h" msgstr "Gehieneko altuera" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:531 +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs msgid "workspace.options.layout-item.layout-item-max-w" msgstr "Gehieneko zabalera" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:548 +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs msgid "workspace.options.layout-item.layout-item-min-h" msgstr "Gutxieneko altuera" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:515 +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs msgid "workspace.options.layout-item.layout-item-min-w" msgstr "Gutxieneko zabalera" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout-item.title.layout-item-max-h" msgstr "Gehieneko altuera" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout-item.title.layout-item-max-w" msgstr "Gehieneko zabalaera" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout-item.title.layout-item-min-h" msgstr "Gutxieneko altuera" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout-item.title.layout-item-min-w" msgstr "Gutxieneko zabalera" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.bottom" msgstr "Behean" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.direction.column" msgstr "Zutabea" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.direction.column-reverse" msgstr "Alderantzikatu zutabea" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.direction.row" msgstr "Lerroa" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.direction.row-reverse" msgstr "Alderantzikatu lerroa" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.gap" msgstr "Saltoa" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.left" msgstr "Ezkerrean" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout.margin" msgstr "Margina" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout.margin-all" msgstr "Alde guztiak" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout.margin-simple" msgstr "Margin arrunta" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.packed" msgstr "Trinkotuta" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.padding" msgstr "Barrubetea" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.padding-all" msgstr "Alde guztiak" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.padding-simple" msgstr "Barrubete arrunta" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.right" msgstr "Eskuman" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.space-around" msgstr "tarteko espazioa" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.space-between" msgstr "Tarteko espazioa" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.top" msgstr "Goian" -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:146 +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs msgid "workspace.options.more-colors" msgstr "Kolore gehiago" -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:123 +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs msgid "workspace.options.more-lib-colors" msgstr "Liburutegiko kolore gehiago" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:161 msgid "workspace.options.opacity" msgstr "Opakotasuna" -#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.position" msgstr "Posizioa" -#: src/app/main/ui/workspace/sidebar/options.cljs:157 +#: src/app/main/ui/workspace/sidebar/options.cljs msgid "workspace.options.prototype" msgstr "Prototipoa" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:469, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:481 msgid "workspace.options.radius" msgstr "Erradioa" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:513 +#: 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:522 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.radius-bottom-right" msgstr "Behean eskuman" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:495 +#: 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:504 +#: 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:532 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.radius.all-corners" msgstr "Ertz guztiak" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:533 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.radius.single-corners" msgstr "Ertz independenteak" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:183 msgid "workspace.options.recent-fonts" msgstr "Azkenak" -#: src/app/main/ui/export.cljs:284 +#: 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 "Berriz saiatu" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:451 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.rotation" msgstr "Biraketa" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:180 msgid "workspace.options.search-font" msgstr "Bilatu letra-tipoa" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:741 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.select-a-shape" msgstr "" "Aukeratu forma bat, arbel bat edo talde bat eta arrastatu konexioa beste " "arbel batera." -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:105 +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs msgid "workspace.options.selection-color" msgstr "Aukeratutako koloreak" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:47 +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs msgid "workspace.options.selection-fill" msgstr "Aukeraketa bete" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:41 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.selection-stroke" msgstr "Aukeraketa trazatu" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:40, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:198, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:200 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.blur" msgstr "Lausotu" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:238 msgid "workspace.options.shadow-options.color" msgstr "Itzalaren kolorea" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:144 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.drop-shadow" msgstr "Kendu itzala" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:145 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.inner-shadow" msgstr "Barruko itzala" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:38, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:186 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.offsetx" msgstr "X" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:39, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:224 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.offsety" msgstr "Y" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:41, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:211, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:213 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.spread" msgstr "Banatu" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:296 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.title" msgstr "Itzala" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:295 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.title.group" msgstr "Taldearen itzala" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:294 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.title.multiple" msgstr "Aukeraketaren itzalak" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:193 +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs msgid "workspace.options.show-fill-on-export" msgstr "Erakutsi esportazioan" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:562 msgid "workspace.options.show-in-viewer" msgstr "Erakutsi ikusteko moduan" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:162 +#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.size" msgstr "Tamaina" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:355 +#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs msgid "workspace.options.size-presets" msgstr "Aurredefinitutako tamaina" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:43 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke" msgstr "Trazua" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -#, unused msgid "workspace.options.stroke-cap.circle-marker" msgstr "Zirkulu erako markatzailea" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -#, unused msgid "workspace.options.stroke-cap.diamond-marker" msgstr "Diamante erako markatzailea" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -#, unused msgid "workspace.options.stroke-cap.line-arrow" msgstr "Lerro erako gezia" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:124 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.none" msgstr "Bat ere ez" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:132 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.round" msgstr "Txanda" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:133 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.square" msgstr "Karratua" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -#, unused msgid "workspace.options.stroke-cap.square-marker" msgstr "Lauki erako marka" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -#, unused msgid "workspace.options.stroke-cap.triangle-arrow" msgstr "Hiruki gezia" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:192 msgid "workspace.options.stroke-color" msgstr "Trazuaren kolorea" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:165 msgid "workspace.options.stroke-width" msgstr "Marraren zabalera" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:87 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.center" msgstr "Erdiratu" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:105 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.dashed" msgstr "Marrekin" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:104 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.dotted" msgstr "Muntuekin" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:88 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.inner" msgstr "Barruan" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:106 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.mixed" msgstr "Nahastuta" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:89 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.outer" msgstr "Kanpoan" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:103 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.solid" msgstr "Solidoa" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:115 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.align-bottom" msgstr "Lerrokatu behean" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:111 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.align-middle" msgstr "Lerrokatu erdian" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:107 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.align-top" msgstr "Lerrokatu goian" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:82 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.direction-ltr" msgstr "LTR" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:87 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.direction-rtl" msgstr "RTL" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:149 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.grow-auto-height" msgstr "Altuera automatikoa" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:145 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.grow-auto-width" msgstr "Zabalera automatikoa" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:141 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.grow-fixed" msgstr "Finkoa" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:381 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.options.text-options.letter-spacing" msgstr "Hizkien tartea" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:364 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.options.text-options.line-height" msgstr "Lerroaren altuera" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused msgid "workspace.options.text-options.lowercase" msgstr "Letra xeheak" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.options.text-options.none" msgstr "Bat ere ez" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:176 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.strikethrough" msgstr "Gaineko marra (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:51 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.text-align-center" msgstr "Lerrokatu erdian (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:59 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.text-align-justify" msgstr "Justifikatu (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:47 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.text-align-left" msgstr "Lerrokatu ezkerrean (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:55 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.text-align-right" msgstr "Lerrokatu eskuman (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:189 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.title" msgstr "Kontsultaren testua" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:188 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.title-group" msgstr "Taldekatu testua" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:187 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.title-selection" msgstr "Aukeraketa testua" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused msgid "workspace.options.text-options.titlecase" msgstr "Izenburuaren mota" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:171 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.underline" msgstr "Azpimarra (%s)" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused msgid "workspace.options.text-options.uppercase" msgstr "Letra larriak" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:745 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.use-play-button" msgstr "Erabili goiburuko play botoia prototipoa ikusteko." -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:395 msgid "workspace.options.width" msgstr "Zabalera" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:427 msgid "workspace.options.x" msgstr "X" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:438 msgid "workspace.options.y" msgstr "Y" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:167 msgid "workspace.path.actions.add-node" msgstr "Gehitu nodoa (5s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:174 msgid "workspace.path.actions.delete-node" msgstr "Ezabatu nodoa" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:152 msgid "workspace.path.actions.draw-nodes" msgstr "Marraztu nodoak (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:189 msgid "workspace.path.actions.join-nodes" msgstr "Batu nodoak" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:204 msgid "workspace.path.actions.make-corner" msgstr "Ertzera (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:211 msgid "workspace.path.actions.make-curve" msgstr "Kurbara %s" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:182 msgid "workspace.path.actions.merge-nodes" msgstr "Batu nodoak (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:159 msgid "workspace.path.actions.move-nodes" msgstr "Mugitu nodoak (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:196 msgid "workspace.path.actions.separate-nodes" msgstr "Banatu nodoak (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:218 msgid "workspace.path.actions.snap-nodes" msgstr "Atxikitu nodoak (%s)" -#: src/app/main/ui/workspace/context_menu.cljs:441 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.add-flex" msgstr "Gehitu flex diseinua" -#: src/app/main/ui/workspace/context_menu.cljs:193 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.back" msgstr "Atzera bota" -#: src/app/main/ui/workspace/context_menu.cljs:190 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.backward" msgstr "Atzera bidali" -#: src/app/main/ui/workspace/context_menu.cljs:139 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.copy" msgstr "Kopiatu" -#: src/app/main/ui/workspace/context_menu.cljs:275 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.create-artboard-from-selection" msgstr "Aukeraketa arbelera" -#: src/app/main/ui/workspace/context_menu.cljs:465 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.create-component" msgstr "Sortu osagaia" -#: src/app/main/ui/workspace/context_menu.cljs:142 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.cut" msgstr "Ebaki" -#: src/app/main/ui/workspace/context_menu.cljs:486 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.delete" msgstr "Ezabatu" -#: src/app/main/ui/workspace/context_menu.cljs:391 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.delete-flow-start" msgstr "Ezabatu fluxuaren hasiera" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:432 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.detach-instance" msgstr "Askatu instantzia" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:431 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.detach-instances-in-bulk" msgstr "Askatu instantziak" -#: src/app/main/ui/workspace/context_menu.cljs:335, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:75 msgid "workspace.shape.menu.difference" msgstr "Diferentzia" -#: src/app/main/ui/workspace/context_menu.cljs:148 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.duplicate" msgstr "Bikoiztu" -#: src/app/main/ui/workspace/context_menu.cljs:321 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.edit" msgstr "Editatu" -#: src/app/main/ui/workspace/context_menu.cljs:341 msgid "workspace.shape.menu.exclude" msgstr "Baztertu" -#: src/app/main/ui/workspace/context_menu.cljs:348, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:89 msgid "workspace.shape.menu.flatten" msgstr "Lautu" -#: src/app/main/ui/workspace/context_menu.cljs:208 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.flip-horizontal" msgstr "Irauli horizontalki" -#: src/app/main/ui/workspace/context_menu.cljs:204 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.flip-vertical" msgstr "Irauli bertikalki" -#: src/app/main/ui/workspace/context_menu.cljs:394 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.flow-start" msgstr "Fluxuaren hasiera" -#: src/app/main/ui/workspace/context_menu.cljs:184 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.forward" msgstr "Ekarri aurrera" -#: src/app/main/ui/workspace/context_menu.cljs:187 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.front" msgstr "Ekarri aurrera" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.go-main" msgstr "Joan osagai nagusiaren fitxategira" -#: src/app/main/ui/workspace/context_menu.cljs:261 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.group" msgstr "Taldea" -#: src/app/main/ui/workspace/context_menu.cljs:363, src/app/main/ui/workspace/sidebar/layer_item.cljs:145 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.hide" msgstr "Ezkutatu" -#: src/app/main/ui/workspace/context_menu.cljs:548, src/app/main/ui/workspace/main_menu.cljs:408 msgid "workspace.shape.menu.hide-ui" msgstr "Erakutsi/Ezkuatu interfazea" -#: src/app/main/ui/workspace/context_menu.cljs:338 msgid "workspace.shape.menu.intersection" msgstr "Ebakidura" -#: src/app/main/ui/workspace/context_menu.cljs:371, src/app/main/ui/workspace/sidebar/layer_item.cljs:153 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.lock" msgstr "Blokeatu" -#: src/app/main/ui/workspace/context_menu.cljs:266 +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.mask" msgstr "Maskara aplikatu" -#: src/app/main/ui/workspace/context_menu.cljs:145, src/app/main/ui/workspace/context_menu.cljs:545 +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.paste" msgstr "Itsatsi" -#: src/app/main/ui/workspace/context_menu.cljs:331 msgid "workspace.shape.menu.path" msgstr "Bidea" -#: src/app/main/ui/workspace/context_menu.cljs:432 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.remove-flex" msgstr "Ezabatu flex diseinua" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:436 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.reset-overrides" msgstr "Berrezarri gainidazketak" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:439 msgid "workspace.shape.menu.restore-main" msgstr "Berrezarri osagai nagusia" -#: src/app/main/ui/workspace/context_menu.cljs:174 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.select-layer" msgstr "Aukeratu geruza" -#: src/app/main/ui/workspace/context_menu.cljs:360, src/app/main/ui/workspace/sidebar/layer_item.cljs:144 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.show" msgstr "Erakutsi" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:424 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.show-in-assets" msgstr "Ikusi baliabideen panelean" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:442, src/app/main/ui/workspace/sidebar/assets/components.cljs:586 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.show-main" msgstr "Erakutsi osagai nagusia" -#: src/app/main/ui/workspace/context_menu.cljs:221 msgid "workspace.shape.menu.thumbnail-remove" msgstr "Ezabatu iruditxoa" -#: src/app/main/ui/workspace/context_menu.cljs:223 msgid "workspace.shape.menu.thumbnail-set" msgstr "Ezarri iruditxo gisa" -#: src/app/main/ui/workspace/context_menu.cljs:326 msgid "workspace.shape.menu.transform-to-path" msgstr "Eraldatu bidera" -#: src/app/main/ui/workspace/context_menu.cljs:257 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.ungroup" msgstr "Banatu" -#: src/app/main/ui/workspace/context_menu.cljs:332, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:70 msgid "workspace.shape.menu.union" msgstr "Batu" -#: src/app/main/ui/workspace/context_menu.cljs:368, src/app/main/ui/workspace/sidebar/layer_item.cljs:152 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.unlock" msgstr "Desblokeatu" -#: src/app/main/ui/workspace/context_menu.cljs:271 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.unmask" msgstr "Desegin maskara" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.update-components-in-bulk" msgstr "Eguneratu osagai nagusiak" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:445 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.update-main" msgstr "Eguneratu osagai nagusia" -#: src/app/main/ui/components/tab_container.cljs:50 msgid "workspace.sidebar.collapse" msgstr "Itxi alboko barra" -#: src/app/main/ui/workspace/sidebar/collapsable_button.cljs:26 msgid "workspace.sidebar.expand" msgstr "Ireki alboko barra" -#: src/app/main/ui/workspace/right_header.cljs:231, src/app/main/ui/workspace/right_header.cljs:232 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.sidebar.history" msgstr "Historikoa (%s)" -#: src/app/main/ui/workspace/sidebar/layers.cljs:522, src/app/main/ui/workspace/sidebar.cljs:100 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.sidebar.layers" msgstr "Geruzak" -#: src/app/main/ui/workspace/sidebar/layers.cljs:308, src/app/main/ui/workspace/sidebar/layers.cljs:380 msgid "workspace.sidebar.layers.components" msgstr "Osagaiak" -#: src/app/main/ui/workspace/sidebar/layers.cljs:305, src/app/main/ui/workspace/sidebar/layers.cljs:338 msgid "workspace.sidebar.layers.frames" msgstr "Arbelak" -#: src/app/main/ui/workspace/sidebar/layers.cljs:306, src/app/main/ui/workspace/sidebar/layers.cljs:352 msgid "workspace.sidebar.layers.groups" msgstr "Taldeak" -#: src/app/main/ui/workspace/sidebar/layers.cljs:310, src/app/main/ui/workspace/sidebar/layers.cljs:408 msgid "workspace.sidebar.layers.images" msgstr "Irudiak" -#: src/app/main/ui/workspace/sidebar/layers.cljs:307, src/app/main/ui/workspace/sidebar/layers.cljs:366 msgid "workspace.sidebar.layers.masks" msgstr "Maskarak" -#: src/app/main/ui/workspace/sidebar/layers.cljs:289 msgid "workspace.sidebar.layers.search" msgstr "Bilatu geruzak" -#: src/app/main/ui/workspace/sidebar/layers.cljs:311, src/app/main/ui/workspace/sidebar/layers.cljs:422 msgid "workspace.sidebar.layers.shapes" msgstr "Formak" -#: src/app/main/ui/workspace/sidebar/layers.cljs:309, src/app/main/ui/workspace/sidebar/layers.cljs:394 msgid "workspace.sidebar.layers.texts" msgstr "Testuak" -#: src/app/main/ui/viewer/inspect/attributes/svg.cljs:56, src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs:91 +#: src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs, +#: src/app/main/ui/inspect/attributes/svg.cljs msgid "workspace.sidebar.options.svg-attrs.title" msgstr "Inportatutako SVG atributuak" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs:217 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs msgid "workspace.sidebar.sitemap" msgstr "Orrialdeak" -#: src/app/main/ui/workspace/left_header.cljs:91 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.sitemap" msgstr "Web mapa" -#: src/app/main/ui/workspace/sidebar.cljs:120 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.assets" msgstr "Baliabideak" -#: src/app/main/ui/workspace/palette.cljs:165, src/app/main/ui/workspace/palette.cljs:166 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.color-palette" msgstr "Kolore paleta (%s)" -#: src/app/main/ui/workspace/right_header.cljs:220, src/app/main/ui/workspace/right_header.cljs:221 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.comments" msgstr "Iruzkinak (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:180, src/app/main/ui/workspace/top_toolbar.cljs:181 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.curve" msgstr "Kurba (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:160, src/app/main/ui/workspace/top_toolbar.cljs:161 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.ellipse" msgstr "Elipsea (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:142, src/app/main/ui/workspace/top_toolbar.cljs:143 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.frame" msgstr "Arbela (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:59, src/app/main/ui/workspace/top_toolbar.cljs:60 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.image" msgstr "Irudia (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:132, src/app/main/ui/workspace/top_toolbar.cljs:133 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.move" msgstr "Mugitu (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:189, src/app/main/ui/workspace/top_toolbar.cljs:190 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.path" msgstr "Bidea (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:151, src/app/main/ui/workspace/top_toolbar.cljs:152 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.rect" msgstr "Laukia (%s)" #: src/app/main/ui/workspace/left_toolbar.cljs -#, unused msgid "workspace.toolbar.shortcuts" msgstr "Lasterteklak (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:169, src/app/main/ui/workspace/top_toolbar.cljs:170 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.text" msgstr "Testua (%s)" -#: src/app/main/ui/workspace/palette.cljs:173, src/app/main/ui/workspace/palette.cljs:174 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.text-palette" msgstr "Letra-motak (%s)" -#: src/app/main/ui/workspace/sidebar/history.cljs:342 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.empty" msgstr "Ez dago historikoaren aldaketarik" -#: src/app/main/ui/workspace/sidebar/history.cljs:147 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.entry.delete" msgstr "Ezabatuta %s" -#: src/app/main/ui/workspace/sidebar/history.cljs:146 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.entry.modify" msgstr "Aldatuta (%s)" -#: src/app/main/ui/workspace/sidebar/history.cljs:148 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.entry.move" msgstr "Mugitutako objektuak" -#: src/app/main/ui/workspace/sidebar/history.cljs:111 msgid "workspace.undo.entry.multiple.circle" msgstr "borobilak" -#: src/app/main/ui/workspace/sidebar/history.cljs:112 msgid "workspace.undo.entry.multiple.color" msgstr "kolore baliabideak" -#: src/app/main/ui/workspace/sidebar/history.cljs:113 msgid "workspace.undo.entry.multiple.component" msgstr "osagaiak" -#: src/app/main/ui/workspace/sidebar/history.cljs:114 msgid "workspace.undo.entry.multiple.curve" msgstr "kurbak" -#: src/app/main/ui/workspace/sidebar/history.cljs:115 msgid "workspace.undo.entry.multiple.frame" msgstr "arbela" -#: src/app/main/ui/workspace/sidebar/history.cljs:116 msgid "workspace.undo.entry.multiple.group" msgstr "taldeak" -#: src/app/main/ui/workspace/sidebar/history.cljs:117 msgid "workspace.undo.entry.multiple.media" msgstr "baliabide grafikoak" -#: src/app/main/ui/workspace/sidebar/history.cljs:118 msgid "workspace.undo.entry.multiple.multiple" msgstr "objektuak" -#: src/app/main/ui/workspace/sidebar/history.cljs:119 msgid "workspace.undo.entry.multiple.page" msgstr "orrialdeak" -#: src/app/main/ui/workspace/sidebar/history.cljs:120 msgid "workspace.undo.entry.multiple.path" msgstr "bideak" -#: src/app/main/ui/workspace/sidebar/history.cljs:121 msgid "workspace.undo.entry.multiple.rect" msgstr "laukiak" -#: src/app/main/ui/workspace/sidebar/history.cljs:122 msgid "workspace.undo.entry.multiple.shape" msgstr "formak" -#: src/app/main/ui/workspace/sidebar/history.cljs:123 msgid "workspace.undo.entry.multiple.text" msgstr "testuak" -#: src/app/main/ui/workspace/sidebar/history.cljs:124 msgid "workspace.undo.entry.multiple.typography" msgstr "letra-tipoen baliabideak" -#: src/app/main/ui/workspace/sidebar/history.cljs:145 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.entry.new" msgstr "Berria (%s)" -#: src/app/main/ui/workspace/sidebar/history.cljs:125 msgid "workspace.undo.entry.single.circle" msgstr "borobila" -#: src/app/main/ui/workspace/sidebar/history.cljs:126 msgid "workspace.undo.entry.single.color" msgstr "kolore baliabidea" -#: src/app/main/ui/workspace/sidebar/history.cljs:127 msgid "workspace.undo.entry.single.component" msgstr "osagaia" -#: src/app/main/ui/workspace/sidebar/history.cljs:128 msgid "workspace.undo.entry.single.curve" msgstr "kurba" -#: src/app/main/ui/workspace/sidebar/history.cljs:129 msgid "workspace.undo.entry.single.frame" msgstr "arbela" -#: src/app/main/ui/workspace/sidebar/history.cljs:130 msgid "workspace.undo.entry.single.group" msgstr "taldea" -#: src/app/main/ui/workspace/sidebar/history.cljs:131 msgid "workspace.undo.entry.single.image" msgstr "irudia" -#: src/app/main/ui/workspace/sidebar/history.cljs:132 msgid "workspace.undo.entry.single.media" msgstr "baliabide grafikoa" -#: src/app/main/ui/workspace/sidebar/history.cljs:133 msgid "workspace.undo.entry.single.multiple" msgstr "objektua" -#: src/app/main/ui/workspace/sidebar/history.cljs:134 msgid "workspace.undo.entry.single.page" msgstr "orrialdea" -#: src/app/main/ui/workspace/sidebar/history.cljs:135 msgid "workspace.undo.entry.single.path" msgstr "bidea" -#: src/app/main/ui/workspace/sidebar/history.cljs:136 msgid "workspace.undo.entry.single.rect" msgstr "laukia" -#: src/app/main/ui/workspace/sidebar/history.cljs:137 msgid "workspace.undo.entry.single.shape" msgstr "forma" -#: src/app/main/ui/workspace/sidebar/history.cljs:138 msgid "workspace.undo.entry.single.text" msgstr "Testua" -#: src/app/main/ui/workspace/sidebar/history.cljs:139 msgid "workspace.undo.entry.single.typography" msgstr "letra-tipoaren baliabidea" -#: src/app/main/ui/workspace/sidebar/history.cljs:149 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.entry.unknown" msgstr "Honen gaineko eragiketa: %s" -#: src/app/main/ui/workspace/sidebar/history.cljs:335 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.title" msgstr "Historia" -#: src/app/main/data/workspace/libraries.cljs:1094 +#: src/app/main/data/workspace/libraries.cljs msgid "workspace.updates.dismiss" msgstr "Baztertu" -#: src/app/main/data/workspace/libraries.cljs:1090 +#: src/app/main/data/workspace/libraries.cljs msgid "workspace.updates.there-are-updates" msgstr "Eguneraketak daude partekatutako liburutegietan" -#: src/app/main/data/workspace/libraries.cljs:1097 +#: src/app/main/data/workspace/libraries.cljs msgid "workspace.updates.update" msgstr "Eguneratu" -#, unused msgid "workspace.viewport.click-to-close-path" msgstr "Egin klik bidea ixteko" diff --git a/frontend/translations/fa.po b/frontend/translations/fa.po index d2236ba081..af9c817b28 100644 --- a/frontend/translations/fa.po +++ b/frontend/translations/fa.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "PO-Revision-Date: 2024-06-17 08:07+0000\n" "Last-Translator: Anonymous \n" -"Language-Team: Persian " -"\n" +"Language-Team: Persian \n" "Language: fa\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" @@ -11,415 +11,382 @@ msgstr "" "Plural-Forms: nplurals=2; plural=n > 1;\n" "X-Generator: Weblate 5.6-dev\n" -#: src/app/main/ui/auth/register.cljs:151, src/app/main/ui/viewer/login.cljs:104 +#: src/app/main/ui/auth/register.cljs msgid "auth.already-have-account" msgstr "از قبل حساب کاربری دارید؟" -#: src/app/main/ui/auth/register.cljs:299 +#: src/app/main/ui/auth/register.cljs msgid "auth.check-your-email" msgstr "" "ایمیل خود را بررسی کنید و برای تأیید و شروع استفاده از Penpot روی لینک کلیک " "کنید." -#: src/app/main/ui/auth/recovery.cljs:78 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.confirm-password" msgstr "تایید کلمه‌عبور" -#: src/app/main/ui/auth/register.cljs:163 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.create-demo-account" msgstr "ایجاد حساب دمو" #: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs -#, unused msgid "auth.create-demo-profile" msgstr "فقط می‌خواهید آن را امتحان کنید؟" -#: src/app/main/ui/auth/login.cljs:43 +#: src/app/main/ui/auth/register.cljs msgid "auth.demo-warning" msgstr "" "این یک سرویس آزمایشی است، برای کار واقعی استفاده نکنید، پروژه‌ها به صورت " "دوره‌ای پاک می‌شوند." -#: src/app/main/ui/auth/login.cljs:189, src/app/main/ui/viewer/login.cljs:90 +#: src/app/main/ui/auth/login.cljs msgid "auth.forgot-password" msgstr "کلمه‌عبور را فراموش کرده‌اید؟" -#: src/app/main/ui/auth/register.cljs:254 +#: src/app/main/ui/auth/register.cljs msgid "auth.fullname" msgstr "نام کامل" -#: src/app/main/ui/auth/register.cljs:155, src/app/main/ui/viewer/login.cljs:107 +#: src/app/main/ui/auth/register.cljs +#, fuzzy msgid "auth.login-here" msgstr "ورود از اینجا" -#: src/app/main/ui/auth/login.cljs:195 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-submit" msgstr "ورود" -#: src/app/main/ui/auth/login.cljs:222 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-github-submit" msgstr "گیتهاب" -#: src/app/main/ui/auth/login.cljs:228 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-gitlab-submit" msgstr "گیتلب" -#: src/app/main/ui/auth/login.cljs:216 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-google-submit" msgstr "گوگل" -#: src/app/main/ui/auth/login.cljs:201 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-ldap-submit" msgstr "LDAP" -#: src/app/main/ui/auth/login.cljs:234, src/app/main/ui/auth/login.cljs:255 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-oidc-submit" msgstr "OpenID" -#: src/app/main/ui/auth/recovery.cljs:71 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.new-password" msgstr "یک رمزعبور جدید تایپ کنید" -#: src/app/main/ui/auth/recovery.cljs:42 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.notifications.invalid-token-error" msgstr "توکن بازیابی نامعتبر است." -#: src/app/main/ui/auth/recovery.cljs:46 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.notifications.password-changed-successfully" msgstr "کلمه‌عبور با موفقیت تغییر یافت" -#: src/app/main/ui/auth/recovery_request.cljs:57 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.notifications.profile-not-verified" msgstr "پروفایل تأیید نشده است، لطفاً قبل از ادامه، پروفایل را تأیید کنید." -#: src/app/main/ui/auth/recovery_request.cljs:40 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.notifications.recovery-token-sent" msgstr "لینک بازیابی رمزعبور به صندوق ورودی شما ارسال شد." -#: src/app/main/ui/auth/verify_token.cljs:47 +#: src/app/main/ui/auth/verify_token.cljs msgid "auth.notifications.team-invitation-accepted" msgstr "با موفقیت به تیم پیوست" -#: src/app/main/ui/auth/login.cljs:179, src/app/main/ui/auth/register.cljs:115 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.password" msgstr "کلمه‌عبور" -#: src/app/main/ui/auth/register.cljs:114 +#: src/app/main/ui/auth/register.cljs msgid "auth.password-length-hint" msgstr "حداقل ۸ حرف" -#: src/app/main/ui/auth.cljs:41 msgid "auth.privacy-policy" msgstr "سیاست حفظ حریم‌خصوصی" -#: src/app/main/ui/auth/recovery_request.cljs:88 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-submit" msgstr "بازیابی رمزعبور" -#: src/app/main/ui/auth/recovery_request.cljs:101 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-subtitle" msgstr "ما یک ایمیل با دستورالعمل برای شما ارسال خواهیم کرد" -#: src/app/main/ui/auth/recovery_request.cljs:100 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-title" msgstr "رمزعبور را فراموش کرده‌اید؟" -#: src/app/main/ui/auth/recovery.cljs:82 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.recovery-submit" msgstr "رمزعبور خود را تغییر دهید" -#: src/app/main/ui/auth/login.cljs:298, src/app/main/ui/viewer/login.cljs:93 +#: src/app/main/ui/auth/login.cljs msgid "auth.register" msgstr "هنوز حسابی ندارید؟" -#: src/app/main/ui/auth/login.cljs:302, src/app/main/ui/auth/register.cljs:121, src/app/main/ui/auth/register.cljs:263, src/app/main/ui/viewer/login.cljs:97 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.register-submit" msgstr "ایجاد حساب‌کاربری" -#: src/app/main/ui/auth/register.cljs:140 +#: src/app/main/ui/auth/register.cljs msgid "auth.register-title" msgstr "ایجاد حساب" #: src/app/main/ui/auth.cljs -#, unused msgid "auth.sidebar-tagline" msgstr "راه حل منبع-باز برای طراحی و نمونه‌سازی" -#: src/app/main/ui/auth.cljs:33, src/app/main/ui/dashboard/sidebar.cljs:1022, src/app/main/ui/workspace/main_menu.cljs:150 msgid "auth.terms-of-service" msgstr "شرایط استفاده از خدمات" -#: src/app/main/ui/auth/register.cljs:297 +#: src/app/main/ui/auth/register.cljs msgid "auth.verification-email-sent" msgstr "ما یک ایمیل تأیید ارسال کردیم به" -#: src/app/main/ui/workspace/libraries.cljs:228 msgid "common.publish" msgstr "انتشار" -#: src/app/main/ui/viewer/share_link.cljs:304, src/app/main/ui/viewer/share_link.cljs:314 msgid "common.share-link.all-users" msgstr "همه کاربران Penpot" -#: src/app/main/ui/viewer/share_link.cljs:198 msgid "common.share-link.confirm-deletion-link-description" msgstr "" "آیا مطمئنید که می‌خواهید این لینک را حذف کنید؟ اگر این کار را انجام دهید، " "دیگر برای کسی در دسترس نیست" -#: src/app/main/ui/viewer/share_link.cljs:259, src/app/main/ui/viewer/share_link.cljs:289 msgid "common.share-link.current-tag" msgstr "(فعلی)" -#: src/app/main/ui/viewer/share_link.cljs:207, src/app/main/ui/viewer/share_link.cljs:214 msgid "common.share-link.destroy-link" msgstr "از بین بردن لینک" -#: src/app/main/ui/viewer/share_link.cljs:221 msgid "common.share-link.get-link" msgstr "دریافت لینک" -#: src/app/main/ui/viewer/share_link.cljs:139 msgid "common.share-link.link-copied-success" msgstr "لینک با موفقیت کپی شد" -#: src/app/main/ui/viewer/share_link.cljs:231 msgid "common.share-link.manage-ops" msgstr "مدیریت مجوزها" -#: src/app/main/ui/viewer/share_link.cljs:277 +#, fuzzy msgid "common.share-link.page-shared" msgid_plural "common.share-link.page-shared" msgstr[0] "۱ صفحه به اشتراک گذاشته شد" msgstr[1] "%s صفحه به اشتراک گذاشته شدند" -#: src/app/main/ui/viewer/share_link.cljs:298 +#, fuzzy msgid "common.share-link.permissions-can-comment" msgstr "می‌تواند نظر دهد" -#: src/app/main/ui/viewer/share_link.cljs:308 +#, fuzzy msgid "common.share-link.permissions-can-inspect" msgstr "می‌تواند کد را بررسی کند" -#: src/app/main/ui/viewer/share_link.cljs:193 msgid "common.share-link.permissions-hint" msgstr "هر کسی که لینک داشته باشد دسترسی خواهد داشت" -#: src/app/main/ui/viewer/share_link.cljs:241 msgid "common.share-link.permissions-pages" msgstr "صفحات به اشتراک گذاشته شده" -#: src/app/main/ui/viewer/share_link.cljs:183 msgid "common.share-link.placeholder" msgstr "پیوند قابل اشتراک‌گذاری در اینجا ظاهر می‌شود" -#: src/app/main/ui/viewer/share_link.cljs:303, src/app/main/ui/viewer/share_link.cljs:313 msgid "common.share-link.team-members" msgstr "فقط اعضای تیم" -#: src/app/main/ui/viewer/share_link.cljs:171 msgid "common.share-link.title" msgstr "اشتراک‌گذاری پروتوتایپ‌ها" -#: src/app/main/ui/viewer/share_link.cljs:269 msgid "common.share-link.view-all" msgstr "انتخاب همه" -#: src/app/main/ui/workspace/libraries.cljs:224 msgid "common.unpublish" msgstr "لغو انتشار" -#: src/app/main/ui/dashboard/projects.cljs:85 +#: src/app/main/ui/dashboard/projects.cljs msgid "dasboard.team-hero.management" msgstr "مدیریت تیم" -#: src/app/main/ui/dashboard/projects.cljs:84 +#: src/app/main/ui/dashboard/projects.cljs msgid "dasboard.team-hero.text" msgstr "" "Penpot برای تیم‌ها در نظر گرفته شده است. از اعضا دعوت کنید تا روی پروژه‌ها " "و فایل‌ها با هم کار کنند" -#: src/app/main/ui/dashboard/projects.cljs:82 +#: src/app/main/ui/dashboard/projects.cljs +#, fuzzy msgid "dasboard.team-hero.title" msgstr "تیم!" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.tutorial-hero.info" msgstr "در حالی که با این آموزش سرگرم می‌شوید، اصول اولیه را در Penpot بیاموزید." #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.tutorial-hero.start" msgstr "شروع آموزش" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.walkthrough-hero.info" msgstr "در پنپات قدم بزنید و با ویژگی‌های اصلی آن آشنا شوید." #: src/app/main/ui/dashboard/projects.cljs -#, unused +#, fuzzy msgid "dasboard.walkthrough-hero.start" msgstr "شروع تور" -#: src/app/main/ui/dashboard/file_menu.cljs:291, src/app/main/ui/workspace/main_menu.cljs:572 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.add-shared" msgstr "افزودن به‌عنوان کتابخانه مشترک" -#: src/app/main/ui/settings/profile.cljs:75 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.change-email" msgstr "تغییر ایمیل" -#: src/app/main/data/dashboard.cljs:762, src/app/main/data/dashboard.cljs:983 +#: src/app/main/data/dashboard.cljs, src/app/main/data/dashboard.cljs msgid "dashboard.copy-suffix" msgstr "(کپی)" -#: src/app/main/ui/dashboard/sidebar.cljs:338 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.create-new-team" msgstr "ایجاد تیم جدید" -#: src/app/main/ui/components/context_menu_a11y.cljs:256, src/app/main/ui/dashboard/sidebar.cljs:646 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.default-team-name" msgstr "Penpot شما" -#: src/app/main/ui/dashboard/sidebar.cljs:571 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.delete-team" msgstr "حذف تیم" -#: src/app/main/ui/dashboard/file_menu.cljs:296, src/app/main/ui/workspace/main_menu.cljs:589 +#, fuzzy msgid "dashboard.download-binary-file" msgstr "دانلود فایل پنپات (.penpot)" -#: src/app/main/ui/dashboard/file_menu.cljs:300, src/app/main/ui/workspace/main_menu.cljs:597 +#, fuzzy msgid "dashboard.download-standard-file" msgstr "دانلود فایل استاندارد (.svg + .json)" -#: src/app/main/ui/dashboard/file_menu.cljs:276, src/app/main/ui/dashboard/project_menu.cljs:90 +#: src/app/main/ui/dashboard/project_menu.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.duplicate" msgstr "تکثیر" -#: src/app/main/ui/dashboard/file_menu.cljs:240 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.duplicate-multi" msgstr "فایل‌های %s را کپی کنید" -#: src/app/main/ui/dashboard/placeholder.cljs:32 -#, markdown +#: src/app/main/ui/dashboard/grid.cljs msgid "dashboard.empty-placeholder-drafts" msgstr "" "وای نه! شما هنوز هیچ فایلی ندارید! اگر می‌خواهید چند الگو را امتحان کنید، " -"به [کتابخانه‌ها و الگوها] بروید (https://penpot.app/libraries-templates)" +"به [کتابخانه‌ها و الگوها] بروید " +"(https://penpot.app/libraries-templates)" -#: src/app/main/ui/dashboard/file_menu.cljs:249 +#, fuzzy msgid "dashboard.export-binary-multi" msgstr "دانلود %s فایل پنپات (.penpot)" -#: src/app/main/ui/workspace/main_menu.cljs:605 msgid "dashboard.export-frames" msgstr "خروجی آرت‌بوردها به پی‌دی‌اف" -#: src/app/main/ui/export.cljs:201 +#: src/app/main/ui/export.cljs msgid "dashboard.export-frames.title" msgstr "اکسپورت به پی‌دی‌اف" -#, unused msgid "dashboard.export-multi" msgstr "خروجی فایل‌های %s پن‌پات" -#: src/app/main/ui/export.cljs:109 +#: src/app/main/ui/export.cljs msgid "dashboard.export-multiple.selected" msgstr "%s از %s عناصر انتخاب‌شده" -#: src/app/main/ui/workspace/main_menu.cljs:578 +#: src/app/main/ui/workspace/header.cljs msgid "dashboard.export-shapes" msgstr "اکسپورت" -#: src/app/main/ui/export.cljs:180 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.how-to" msgstr "" "می‌توانید تنظیمات اکسپورت را از ویژگی‌های طراحی (در پایین نوار کناری سمت " "راست) به عناصر اضافه کنید." -#: src/app/main/ui/export.cljs:184 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.how-to-link" msgstr "اطلاعات نحوه تنظیم اکسپورت در پنپات." -#: src/app/main/ui/export.cljs:179 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.no-elements" msgstr "هیچ عنصری با تنظیمات اکسپورت وجود ندارد." -#: src/app/main/ui/export.cljs:190 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.title" msgstr "انتخاب اکسپورت" -#: src/app/main/ui/dashboard/file_menu.cljs:252 +#, fuzzy msgid "dashboard.export-standard-multi" msgstr "دانلود %s فایل استاندارد (.svg + .json)" -#: src/app/main/ui/export.cljs:427 msgid "dashboard.export.detail" msgstr "* ممکن است شامل کامپوننت‌ها، گرافیک، رنگ‌ها و/یا تایپوگرافی باشد." -#: src/app/main/ui/export.cljs:426 msgid "dashboard.export.explain" msgstr "" "یک یا چند فایلی که می‌خواهید اکسپورت کنید از کتابخانه‌های مشترک استفاده " "می‌کنند. با دارایی‌های آن‌ها چه می‌خواهید بکنید*؟" -#: src/app/main/ui/export.cljs:435 msgid "dashboard.export.options.all.message" msgstr "" "فایل‌های دارای کتابخانه‌های مشترک در اکسپورت گنجانده می‌شوند و پیوند خود را " "حفظ می‌کنند." -#: src/app/main/ui/export.cljs:436 msgid "dashboard.export.options.all.title" msgstr "اکسپورت کتابخانه‌های مشترک" -#: src/app/main/ui/export.cljs:437 msgid "dashboard.export.options.detach.message" msgstr "" "کتابخانه‌های مشترک در صادرات گنجانده نخواهند شد و هیچ دارایی به کتابخانه " "اضافه نخواهد شد. " -#: src/app/main/ui/export.cljs:438 msgid "dashboard.export.options.detach.title" msgstr "دارایی‌های کتابخانه مشترک را به عنوان اشیاء اساسی در نظر بگیرید" -#: src/app/main/ui/export.cljs:439 msgid "dashboard.export.options.merge.message" msgstr "" "فایل شما با تمام دارایی‌های خارجی که در کتابخانه فایل ادغام شده‌اند اکسپورت " "می‌شود." -#: src/app/main/ui/export.cljs:440 msgid "dashboard.export.options.merge.title" msgstr "دارایی‌های کتابخانه مشترک را در کتابخانه‌های فایل قرار دهید" -#: src/app/main/ui/export.cljs:418 msgid "dashboard.export.title" msgstr "خروجی از فایل‌ها" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:309 msgid "dashboard.fonts.deleted-placeholder" msgstr "فونت حذف شد" -#: src/app/main/ui/dashboard/fonts.cljs:206 +#: src/app/main/ui/dashboard/fonts.cljs msgid "dashboard.fonts.dismiss-all" msgstr "ردکردن همه" -#: src/app/main/ui/dashboard/fonts.cljs:436 msgid "dashboard.fonts.empty-placeholder" msgstr "شما هنوز هیچ فونت سفارشی‌ای نصب نکرده‌اید." -#: src/app/main/ui/dashboard/fonts.cljs:194 +#: src/app/main/ui/dashboard/fonts.cljs msgid "dashboard.fonts.fonts-added" msgid_plural "dashboard.fonts.fonts-added" msgstr[0] "۱ فونت اضافه شد" msgstr[1] "%s فونت اضافه شد" -#: src/app/main/ui/dashboard/fonts.cljs:170 -#, markdown msgid "dashboard.fonts.hero-text1" msgstr "" "هر وب فونتی که در اینجا آپلود کنید به لیست خانواده فونت‌های موجود در " @@ -428,8 +395,6 @@ msgstr "" "فرمت‌های زیر بارگذاری کنید: **TTF، OTF و WOFF** (فقط یکی مورد نیاز خواهد " "بود)." -#: src/app/main/ui/dashboard/fonts.cljs:182 -#, markdown msgid "dashboard.fonts.hero-text2" msgstr "" "شما فقط باید فونت‌هایی را که مالک آنها هستید یا مجوز استفاده از آنها را در " @@ -437,2734 +402,2659 @@ msgstr "" "(https://penpot.app/terms.html) اطلاعات بیشتری کسب کنید. همچنین ممکن است " "بخواهید درباره [مجوز فونت] (https://www.typography.com/faq) مطالعه کنید." -#: src/app/main/ui/dashboard/fonts.cljs:202 +#: src/app/main/ui/dashboard/fonts.cljs msgid "dashboard.fonts.upload-all" msgstr "آپلود همه" -#: src/app/main/ui/dashboard/import.cljs:472, src/app/main/ui/dashboard/project_menu.cljs:108 msgid "dashboard.import" msgstr "ایمپورت کردن فایل‌های پن‌پات" -#: src/app/main/ui/dashboard/import.cljs:304, src/app/worker/import.cljs:753, src/app/worker/import.cljs:755 msgid "dashboard.import.analyze-error" msgstr "اوه! ما نتوانستیم این فایل را ایمپورت کنیم" -#: src/app/main/ui/dashboard/import.cljs:308 msgid "dashboard.import.import-error" msgstr "مشکلی در ایمپورت کردن فایل وجود داشت. فایل ایمپورت نشد." -#: src/app/main/ui/dashboard/import.cljs:493 msgid "dashboard.import.import-message" msgstr "فایل‌های %s با موفقیت ایمپورت شد." -#: src/app/main/ui/dashboard/import.cljs:481, src/app/main/ui/dashboard/import.cljs:488 +#, fuzzy msgid "dashboard.import.import-warning" msgstr "برخی از فایل‌ها حاوی آبجکت‌های نامعتبر بودند که حذف شده‌اند." -#: src/app/main/ui/dashboard/import.cljs:144 msgid "dashboard.import.progress.process-colors" msgstr "در حال پردازش رنگ‌ها" -#: src/app/main/ui/dashboard/import.cljs:153 msgid "dashboard.import.progress.process-components" msgstr "در حال پردازش کامپوننت‌ها" -#: src/app/main/ui/dashboard/import.cljs:150 msgid "dashboard.import.progress.process-media" msgstr "در حال پردازش رسانه‌ها" -#: src/app/main/ui/dashboard/import.cljs:141 msgid "dashboard.import.progress.process-page" msgstr "در حال پردازش صفحه: %s" -#: src/app/main/ui/dashboard/import.cljs:147 msgid "dashboard.import.progress.process-typographies" msgstr "در حال پردازش تایپوگرافی‌ها" -#: src/app/main/ui/dashboard/import.cljs:135 msgid "dashboard.import.progress.upload-data" msgstr "در حال آپلود اطلاعات روی سرور (%s/%s)" -#: src/app/main/ui/dashboard/import.cljs:138 msgid "dashboard.import.progress.upload-media" msgstr "در حال آپلود فایل: %s" -#: src/app/main/ui/dashboard/team.cljs:109 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.invite-profile" msgstr "دعوت به تیم" -#: src/app/main/ui/dashboard/sidebar.cljs:547, src/app/main/ui/dashboard/sidebar.cljs:556, src/app/main/ui/dashboard/sidebar.cljs:563, src/app/main/ui/dashboard/team.cljs:312 +#: src/app/main/ui/dashboard/sidebar.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.leave-team" msgstr "خروج از تیم" -#: src/app/main/ui/dashboard/templates.cljs:88, src/app/main/ui/dashboard/templates.cljs:163 msgid "dashboard.libraries-and-templates" msgstr "کتابخانه‌ها و قالب‌ها" -#: src/app/main/ui/dashboard/templates.cljs:164 +#, fuzzy msgid "dashboard.libraries-and-templates.explore" msgstr "بیشتر آنها را کاوش کنید و بدانید که چگونه مشارکت کنید" -#: src/app/main/ui/dashboard/import.cljs:365 +#, fuzzy msgid "dashboard.libraries-and-templates.import-error" msgstr "مشکلی در ایمپورت کردن قالب وجود داشت. قالب ایمپورت نشد." -#: src/app/main/ui/dashboard/libraries.cljs:53 +#: src/app/main/ui/dashboard/libraries.cljs msgid "dashboard.libraries-title" msgstr "کتابخانه‌های مشترک" -#: src/app/main/ui/dashboard/placeholder.cljs:45 +#: src/app/main/ui/dashboard/grid.cljs msgid "dashboard.loading-files" msgstr "در حال بارگذاری فایل‌های شما …" -#: src/app/main/ui/dashboard/fonts.cljs:431 msgid "dashboard.loading-fonts" msgstr "در حال بارگیری فونت‌های شما …" -#: src/app/main/ui/dashboard/file_menu.cljs:281, src/app/main/ui/dashboard/project_menu.cljs:100 +#: src/app/main/ui/dashboard/project_menu.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.move-to" msgstr "انتقال به" -#: src/app/main/ui/dashboard/file_menu.cljs:245 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.move-to-multi" msgstr "انتقال فایل‌های %s به" -#: src/app/main/ui/dashboard/file_menu.cljs:226 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.move-to-other-team" msgstr "انتقال به تیم دیگر" -#: src/app/main/ui/dashboard/files.cljs:105, src/app/main/ui/dashboard/projects.cljs:252, src/app/main/ui/dashboard/projects.cljs:253 +#: src/app/main/ui/dashboard/projects.cljs, +#: src/app/main/ui/dashboard/files.cljs msgid "dashboard.new-file" msgstr "+ فایل جدید" -#: src/app/main/data/dashboard.cljs:958, src/app/main/data/dashboard.cljs:1181 +#: src/app/main/data/dashboard.cljs msgid "dashboard.new-file-prefix" msgstr "فایل جدید" -#: src/app/main/ui/dashboard/projects.cljs:55 +#: src/app/main/ui/dashboard/projects.cljs msgid "dashboard.new-project" msgstr "+ پروژه جدید" -#: src/app/main/data/dashboard.cljs:726, src/app/main/data/dashboard.cljs:1184 +#: src/app/main/data/dashboard.cljs msgid "dashboard.new-project-prefix" msgstr "پروژه جدید" -#: src/app/main/ui/dashboard/search.cljs:60 +#: src/app/main/ui/dashboard/search.cljs +#, fuzzy msgid "dashboard.no-matches-for" msgstr "هیچ منطبقی برای «%s» یافت نشد" -#: src/app/main/ui/dashboard/sidebar.cljs:827 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.no-projects-placeholder" msgstr "پروژه‌های پین شده در اینجا ظاهر می‌شوند" -#: src/app/main/ui/auth/verify_token.cljs:33 +#: src/app/main/ui/auth/verify_token.cljs msgid "dashboard.notifications.email-changed-successfully" msgstr "آدرس ایمیل شما با موفقیت به‌روز شد" -#: src/app/main/ui/auth/verify_token.cljs:27 +#: src/app/main/ui/auth/verify_token.cljs msgid "dashboard.notifications.email-verified-successfully" msgstr "آدرس ایمیل شما با موفقیت تایید شد" -#: src/app/main/ui/settings/password.cljs:37 +#: src/app/main/ui/settings/password.cljs msgid "dashboard.notifications.password-saved" msgstr "رمزعبور با موفقیت ذخیره شد!" -#: src/app/main/ui/dashboard/team.cljs:1081 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.num-of-members" msgstr "اعضای %s" -#: src/app/main/ui/dashboard/file_menu.cljs:267 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.open-in-new-tab" msgstr "باز کردن فایل در تب جدید" -#: src/app/main/ui/dashboard/files.cljs:117, src/app/main/ui/dashboard/projects.cljs:260, src/app/main/ui/dashboard/projects.cljs:261 msgid "dashboard.options" msgstr "گزینه‌ها" -#: src/app/main/ui/settings/password.cljs:106, src/app/main/ui/settings/password.cljs:119 +#: src/app/main/ui/settings/password.cljs msgid "dashboard.password-change" msgstr "تغییر رمزعبور" -#: src/app/main/ui/dashboard/pin_button.cljs:24, src/app/main/ui/dashboard/project_menu.cljs:95 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.pin-unpin" msgstr "پین/برداشتن پین" -#: src/app/main/ui/dashboard/projects.cljs:51 +#: src/app/main/ui/dashboard/projects.cljs msgid "dashboard.projects-title" msgstr "پروژه‌ها" -#: src/app/main/ui/settings/profile.cljs:86 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.remove-account" msgstr "آیا می‌خواهید حساب خود را حذف کنید؟" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs +#, fuzzy msgid "dashboard.remove-shared" msgstr "حذف به عنوان کتابخانه مشترک" -#: src/app/main/ui/settings/profile.cljs:78 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.save-settings" msgstr "ذخیره تنظیمات" -#: src/app/main/ui/dashboard/sidebar.cljs:246, src/app/main/ui/dashboard/sidebar.cljs:247 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.search-placeholder" msgstr "جستجو…" -#: src/app/main/ui/dashboard/search.cljs:55 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.searching-for" msgstr "جستجو برای “%s“…" -#: src/app/main/ui/settings/options.cljs:56 +#: src/app/main/ui/settings/options.cljs msgid "dashboard.select-ui-language" msgstr "زبان رابط کاربری را انتخاب کنید" -#: src/app/main/ui/settings/options.cljs:63 +#: src/app/main/ui/settings/options.cljs msgid "dashboard.select-ui-theme" msgstr "انتخاب تم" -#: src/app/main/ui/dashboard/projects.cljs:282 +#: src/app/main/ui/dashboard/grid.cljs +#, fuzzy msgid "dashboard.show-all-files" msgstr "نمایش همه فایل‌ها" -#: src/app/main/ui/dashboard/file_menu.cljs:96 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-delete-file" msgstr "فایل شما با موفقیت حذف شد" -#: src/app/main/ui/dashboard/project_menu.cljs:59 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.success-delete-project" msgstr "پروژه شما با موفقیت حذف شد" -#: src/app/main/ui/dashboard/file_menu.cljs:91 +#: src/app/main/ui/dashboard/file_menu.cljs +#, fuzzy msgid "dashboard.success-duplicate-file" msgstr "فایل شما با موفقیت duplicate شد" -#: src/app/main/ui/dashboard/project_menu.cljs:33 +#: src/app/main/ui/dashboard/project_menu.cljs +#, fuzzy msgid "dashboard.success-duplicate-project" msgstr "پروژه شما با موفقیت duplicate شد" -#: src/app/main/ui/dashboard/file_menu.cljs:130, src/app/main/ui/dashboard/grid.cljs:558, src/app/main/ui/dashboard/sidebar.cljs:152 +#: src/app/main/ui/dashboard/grid.cljs, src/app/main/ui/dashboard/sidebar.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-move-file" msgstr "فایل شما با موفقیت منتقل شد" -#: src/app/main/ui/dashboard/file_menu.cljs:129 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-move-files" msgstr "فایل‌های شما با موفقیت منتقل شدند" -#: src/app/main/ui/dashboard/project_menu.cljs:54 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.success-move-project" msgstr "پروژه شما با موفقیت منتقل شد" -#: src/app/main/ui/dashboard/team.cljs:1052 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.team-info" msgstr "اطلاعات تیم" -#: src/app/main/ui/dashboard/team.cljs:1070 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.team-members" msgstr "اعضای تیم" -#: src/app/main/ui/dashboard/team.cljs:1085 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.team-projects" msgstr "پروژه‌های تیم" -#: src/app/main/ui/settings/options.cljs:61 +#: src/app/main/ui/settings/options.cljs msgid "dashboard.theme-change" msgstr "تم رابط کاربری" -#: src/app/main/ui/dashboard/search.cljs:42 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.title-search" msgstr "نتایج جستجو" -#: src/app/main/ui/dashboard/search.cljs:50 +#: src/app/main/ui/dashboard/search.cljs +#, fuzzy msgid "dashboard.type-something" msgstr "برای نمایش نتایج جستجو تایپ کنید" -#: src/app/main/ui/dashboard/file_menu.cljs:287, src/app/main/ui/workspace/main_menu.cljs:566 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.unpublish-shared" msgstr "لغو انتشار کتابخانه" -#: src/app/main/ui/settings/options.cljs:71 +#: src/app/main/ui/settings/password.cljs, +#: src/app/main/ui/settings/options.cljs msgid "dashboard.update-settings" msgstr "به‌روزرسانی تنظیمات" -#: src/app/main/ui/settings.cljs:31 +#: src/app/main/ui/settings.cljs msgid "dashboard.your-account-title" msgstr "حساب شما" -#: src/app/main/ui/settings/profile.cljs:70 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.your-email" msgstr "ایمیل" -#: src/app/main/ui/settings/profile.cljs:62 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.your-name" msgstr "نام شما" -#: src/app/main/ui/dashboard/file_menu.cljs:38, src/app/main/ui/dashboard/fonts.cljs:33, src/app/main/ui/dashboard/libraries.cljs:42, src/app/main/ui/dashboard/projects.cljs:318, src/app/main/ui/dashboard/search.cljs:30, src/app/main/ui/dashboard/sidebar.cljs:312, src/app/main/ui/dashboard/team.cljs:495, src/app/main/ui/dashboard/team.cljs:729, src/app/main/ui/dashboard/team.cljs:991, src/app/main/ui/dashboard/team.cljs:1038 +#: src/app/main/ui/dashboard/search.cljs, src/app/main/ui/dashboard/team.cljs, +#: src/app/main/ui/dashboard/libraries.cljs, +#: src/app/main/ui/dashboard/projects.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.your-penpot" msgstr "پن‌پات شما" -#: src/app/main/ui/alert.cljs:32 +#: src/app/main/ui/alert.cljs msgid "ds.alert-ok" msgstr "خیلی خوب" -#: src/app/main/ui/alert.cljs:31, src/app/main/ui/alert.cljs:34 +#: src/app/main/ui/alert.cljs +#, fuzzy msgid "ds.alert-title" msgstr "توجه" -#: src/app/main/ui/confirm.cljs:83 +#: src/app/main/ui/confirm.cljs +#, fuzzy msgid "ds.component-subtitle" msgstr "کامپوننت‌ها برای به‌روزرسانی:" -#: src/app/main/ui/confirm.cljs:36, src/app/main/ui/workspace/plugins.cljs:246 +#: src/app/main/ui/confirm.cljs msgid "ds.confirm-cancel" msgstr "لغو" -#: src/app/main/ui/confirm.cljs:37, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:141 +#: src/app/main/ui/confirm.cljs msgid "ds.confirm-ok" msgstr "بله" -#: src/app/main/ui/confirm.cljs:35, src/app/main/ui/confirm.cljs:39 +#: src/app/main/ui/confirm.cljs, src/app/main/ui/confirm.cljs msgid "ds.confirm-title" msgstr "مطمئنی؟" -#: src/app/main/ui/auth/login.cljs:62 +#: src/app/main/ui/auth/login.cljs +#, fuzzy msgid "errors.auth-provider-not-configured" msgstr "ارائه دهنده احراز هویت پیکربندی نشده است." -#: src/app/main/errors.cljs:104 +#, fuzzy msgid "errors.auth.unable-to-login" msgstr "به نظر می‌رسد شما احراز هویت نشده‌اید یا جلسه منقضی شده است." -#: src/app/main/data/fonts.cljs:189 msgid "errors.bad-font" msgstr "فونت %s بارگیری نشد" -#: src/app/main/data/fonts.cljs:188 msgid "errors.bad-font-plural" msgstr "فونت‌های %s بارگیری نشدند" -#: src/app/main/data/workspace.cljs:1598 +#: src/app/main/data/workspace.cljs msgid "errors.clipboard-not-implemented" msgstr "مرورگر شما نمی‌تواند این عملیات را انجام دهد" -#: src/app/main/ui/auth/verify_token.cljs:82, src/app/main/ui/settings/change_email.cljs:46 +#: src/app/main/ui/auth/verify_token.cljs, +#: src/app/main/ui/settings/change_email.cljs +#, fuzzy msgid "errors.email-already-exists" msgstr "ایمیل قبلا استفاده شده است" -#: src/app/main/ui/auth/verify_token.cljs:87 +#: src/app/main/ui/auth/verify_token.cljs msgid "errors.email-already-validated" msgstr "ایمیل قبلاً تأیید شده است." -#: src/app/main/ui/settings/password.cljs:28 msgid "errors.email-as-password" msgstr "شما نمی‌توانید از ایمیل خود به عنوان رمزعبور استفاده کنید" -#: src/app/main/ui/settings/change_email.cljs:35 +#: src/app/main/ui/settings/change_email.cljs msgid "errors.email-invalid-confirmation" msgstr "ایمیل تأیید باید مطابقت داشته باشد" -#: src/app/main/data/users.cljs:709, src/app/main/ui/auth/login.cljs:65, src/app/main/ui/auth/login.cljs:116, src/app/main/ui/auth/register.cljs:69, src/app/main/ui/auth/register.cljs:237, src/app/main/ui/auth/verify_token.cljs:92, src/app/main/ui/dashboard/team.cljs:173, src/app/main/ui/onboarding/team_choice.cljs:95, src/app/main/ui/settings/access_tokens.cljs:91, src/app/main/ui/settings/feedback.cljs:52 +#: src/app/main/ui/auth/verify_token.cljs, +#: src/app/main/ui/settings/feedback.cljs, src/app/main/ui/dashboard/team.cljs +#, fuzzy msgid "errors.generic" msgstr "اشتباهی رخ داده است." -#: src/app/main/ui/components/color_input.cljs:57 +#: src/app/main/ui/components/color_input.cljs msgid "errors.invalid-color" msgstr "رنگ نامعتبر" -#: src/app/main/ui/static.cljs:43 +#: src/app/main/ui/auth/verify_token.cljs msgid "errors.invite-invalid" msgstr "دعوت نامعتبر" -#: src/app/main/ui/static.cljs:44 msgid "errors.invite-invalid.info" msgstr "این دعوت ممکن است لغو یا منقضی شده باشد." -#: src/app/main/ui/auth/login.cljs:101 +#: src/app/main/ui/auth/login.cljs msgid "errors.ldap-disabled" msgstr "احراز هویت LDAP غیرفعال است." -#: src/app/main/data/workspace/media.cljs:184 +#: src/app/main/data/workspace/persistence.cljs msgid "errors.media-too-large" msgstr "تصویر برای درج خیلی بزرگ است." -#: src/app/main/data/media.cljs:68, src/app/main/data/workspace/media.cljs:187 +#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs msgid "errors.media-type-mismatch" msgstr "به نظر می‌رسد که محتوای تصویر با پسوند فایل مطابقت ندارد." -#: src/app/main/data/media.cljs:65, src/app/main/data/workspace/media.cljs:172, src/app/main/data/workspace/media.cljs:175, src/app/main/data/workspace/media.cljs:178, src/app/main/data/workspace/media.cljs:181 +#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs msgid "errors.media-type-not-allowed" msgstr "به نظر می‌رسد که این یک تصویر معتبر نیست." -#: src/app/main/ui/settings/password.cljs:61 +#: src/app/main/ui/settings/password.cljs msgid "errors.password-invalid-confirmation" msgstr "رمزعبور تأیید باید مطابقت داشته باشد" -#: src/app/main/ui/settings/password.cljs:64 +#: src/app/main/ui/settings/password.cljs +#, fuzzy msgid "errors.password-too-short" msgstr "رمزعبور باید حداقل 8 کاراکتر باشد" -#: src/app/main/data/users.cljs:703, src/app/main/ui/auth/login.cljs:97, src/app/main/ui/auth/login.cljs:105 msgid "errors.profile-blocked" msgstr "پروفایل مسدود شده" -#: src/app/main/data/users.cljs:701, src/app/main/ui/auth/register.cljs:60 +#: src/app/main/ui/auth/register.cljs msgid "errors.registration-disabled" msgstr "ثبت‌نام در حال حاضر غیرفعال است." -#: src/app/main/ui/dashboard/sidebar.cljs:365, src/app/main/ui/dashboard/team.cljs:359 msgid "errors.team-leave.insufficient-members" msgstr "اعضای کافی برای ترک تیم وجود ندارد، احتمالاً می‌خواهید آن را حذف کنید." -#: src/app/main/ui/dashboard/sidebar.cljs:368, src/app/main/ui/dashboard/team.cljs:362 +#, fuzzy msgid "errors.team-leave.member-does-not-exists" msgstr "عضوی که می‌خواهید اختصاص دهید وجود ندارد." -#: src/app/main/ui/dashboard/sidebar.cljs:371, src/app/main/ui/dashboard/team.cljs:365 msgid "errors.team-leave.owner-cant-leave" msgstr "مالک نمی‌تواند تیم را ترک کند، شما باید نقش مالک را مجدداً اختصاص دهید." -#: src/app/main/data/media.cljs:71 +#: src/app/main/data/media.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, +#: src/app/main/ui/inspect/exports.cljs msgid "errors.unexpected-error" msgstr "یک خطای غیرمنتظره رخ داد." -#: src/app/main/ui/auth/verify_token.cljs:60 +#: src/app/main/ui/auth/verify_token.cljs msgid "errors.unexpected-token" msgstr "توکن ناشناخته" -#: src/app/main/ui/auth/login.cljs:109, src/app/main/ui/auth/login.cljs:113 +#: src/app/main/ui/auth/login.cljs msgid "errors.wrong-credentials" msgstr "به نظر می‌رسد نام‌کاربری یا رمزعبور اشتباه است." -#: src/app/main/ui/settings/password.cljs:25 +#: src/app/main/ui/settings/password.cljs msgid "errors.wrong-old-password" msgstr "رمزعبور قدیمی اشتباه است" -#: src/app/main/ui/settings/feedback.cljs:77 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.description" msgstr "شرح" -#: src/app/main/ui/settings/feedback.cljs:95 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.discourse-go-to" msgstr "به انجمن Penpot بروید" -#: src/app/main/ui/settings/feedback.cljs:89 +#: src/app/main/ui/settings/feedback.cljs +#, fuzzy msgid "feedback.discourse-subtitle1" msgstr "" "ما خوشحالیم که شما اینجا هستید. اگر به کمک نیاز دارید، لطفا قبل از ارسال " "پست جستجو کنید." -#: src/app/main/ui/settings/feedback.cljs:88 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.discourse-title" msgstr "انجمن Penpot" -#: src/app/main/ui/settings/feedback.cljs:72 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.subject" msgstr "موضوع" -#: src/app/main/ui/settings/feedback.cljs:69 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.subtitle" msgstr "" "لطفاً دلیل ایمیل خود را توضیح دهید و مشخص کنید که آیا یک مشکل، ایده یا شک " "است. یکی از اعضای تیم ما در اسرع وقت پاسخ خواهد داد." -#: src/app/main/ui/settings/feedback.cljs:68 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.title" msgstr "ایمیل" -#: src/app/main/ui/settings/feedback.cljs:105 +#: src/app/main/ui/settings/feedback.cljs +#, fuzzy msgid "feedback.twitter-go-to" msgstr "به توییتر بروید" -#: src/app/main/ui/settings/feedback.cljs:99 +#: src/app/main/ui/settings/feedback.cljs +#, fuzzy msgid "feedback.twitter-subtitle1" msgstr "اینجا برای کمک به سوالات فنی شما." -#: src/app/main/ui/settings/feedback.cljs:98 +#: src/app/main/ui/settings/feedback.cljs +#, fuzzy msgid "feedback.twitter-title" msgstr "حساب پشتیبانی در توییتر" -#: src/app/main/ui/settings/password.cljs:30 +#: src/app/main/ui/settings/password.cljs msgid "generic.error" msgstr "خطایی رخ داده است" -#: src/app/main/ui/viewer/inspect/attributes/blur.cljs:26 +#: src/app/main/ui/inspect/attributes/blur.cljs msgid "inspect.attributes.blur" msgstr "محو" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:115 +#: src/app/main/ui/inspect/attributes/blur.cljs msgid "inspect.attributes.blur.value" msgstr "مقدار" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:112 +#: src/app/main/ui/inspect/attributes/common.cljs msgid "inspect.attributes.color.hex" msgstr "HEX" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:114 +#: src/app/main/ui/inspect/attributes/common.cljs msgid "inspect.attributes.color.hsla" msgstr "HSLA" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:113 +#: src/app/main/ui/inspect/attributes/common.cljs msgid "inspect.attributes.color.rgba" msgstr "RGBA" -#: src/app/main/ui/viewer/inspect/attributes/fill.cljs:57 +#: src/app/main/ui/inspect/attributes/fill.cljs msgid "inspect.attributes.fill" msgstr "پر" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:99, src/app/main/ui/viewer/inspect/attributes/image.cljs:51 +#: src/app/main/ui/inspect/attributes/image.cljs msgid "inspect.attributes.image.download" msgstr "دانلود تصویر منبع" -#: src/app/main/ui/viewer/inspect/attributes/image.cljs:39 +#: src/app/main/ui/inspect/attributes/image.cljs msgid "inspect.attributes.image.height" msgstr "ارتفاع" -#: src/app/main/ui/viewer/inspect/attributes/image.cljs:32 +#: src/app/main/ui/inspect/attributes/image.cljs msgid "inspect.attributes.image.width" msgstr "عرض" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout" msgstr "چیدمان" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.height" msgstr "ارتفاع" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.left" msgstr "چپ" -#: src/app/main/ui/inspect/attributes/layout.cljs, src/app/main/ui/inspect/attributes/layout.cljs -#, unused +#: src/app/main/ui/inspect/attributes/layout.cljs, +#: src/app/main/ui/inspect/attributes/layout.cljs msgid "inspect.attributes.layout.radius" msgstr "گردی" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.rotation" msgstr "چرخش" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.top" msgstr "بالا" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.width" msgstr "عرض" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:57 +#: src/app/main/ui/inspect/attributes/shadow.cljs msgid "inspect.attributes.shadow" msgstr "سایه" -#: src/app/main/ui/viewer/inspect/attributes/stroke.cljs:52 +#: src/app/main/ui/inspect/attributes/stroke.cljs +#, fuzzy msgid "inspect.attributes.stroke" msgstr "استروک" -#, permanent, unused msgid "inspect.attributes.stroke.alignment.center" msgstr "مرکز" -#, permanent, unused msgid "inspect.attributes.stroke.alignment.inner" msgstr "داخل" -#, permanent, unused msgid "inspect.attributes.stroke.alignment.outer" msgstr "بیرون" -#, unused msgid "inspect.attributes.stroke.style.dotted" msgstr "خط‌چین" -#, unused msgid "inspect.attributes.stroke.style.mixed" msgstr "‏مخلوط" -#, unused msgid "inspect.attributes.stroke.style.none" msgstr "هیچ‌یک" -#, unused +#, fuzzy msgid "inspect.attributes.stroke.style.solid" msgstr "جامد" #: src/app/main/ui/inspect/attributes/stroke.cljs -#, unused msgid "inspect.attributes.stroke.width" msgstr "عرض" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:81, src/app/main/ui/viewer/inspect/attributes/text.cljs:194 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography" msgstr "تایپوگرافی" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:89 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.font-family" msgstr "خانواده فونت" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:107 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.font-size" msgstr "اندازه فونت" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:98 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.font-style" msgstr "استایل فونت" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:134 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.letter-spacing" msgstr "فاصله بین حروف" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:125 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.line-height" msgstr "ارتفاع خط" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:145 msgid "inspect.attributes.typography.text-decoration.none" msgstr "هیچ‌یک" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:147 msgid "inspect.attributes.typography.text-decoration.underline" msgstr "خط‌زیر" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:156 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.text-transform" msgstr "تبدیل متن" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:158 msgid "inspect.attributes.typography.text-transform.lowercase" msgstr "حروف کوچک" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:159 msgid "inspect.attributes.typography.text-transform.none" msgstr "هیچ‌یک" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:161 msgid "inspect.attributes.typography.text-transform.uppercase" msgstr "حروف بزرگ" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:125 +#: src/app/main/ui/inspect/right_sidebar.cljs msgid "inspect.tabs.code" msgstr "کد" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:98 msgid "inspect.tabs.code.selected.circle" msgstr "دایره" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:99 msgid "inspect.tabs.code.selected.component" msgstr "کامپوننت" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:100 msgid "inspect.tabs.code.selected.curve" msgstr "منحنی" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:101 msgid "inspect.tabs.code.selected.frame" msgstr "آرت‌برد" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:102 msgid "inspect.tabs.code.selected.group" msgstr "گروه" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:103 msgid "inspect.tabs.code.selected.image" msgstr "تصویر" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:104 msgid "inspect.tabs.code.selected.mask" msgstr "ماسک" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:93 +#: src/app/main/ui/inspect/right_sidebar.cljs +#, fuzzy msgid "inspect.tabs.code.selected.multiple" msgstr "%s انتخاب شد" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:105 msgid "inspect.tabs.code.selected.path" msgstr "مسیر" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:106 msgid "inspect.tabs.code.selected.rect" msgstr "مستطیل" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:107 msgid "inspect.tabs.code.selected.svg-raw" msgstr "SVG" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:108 msgid "inspect.tabs.code.selected.text" msgstr "متن" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:115 +#: src/app/main/ui/inspect/right_sidebar.cljs msgid "inspect.tabs.info" msgstr "اطلاعات" -#: src/app/main/ui/workspace/main_menu.cljs:158 +#: src/app/main/ui/workspace/header.cljs msgid "label.shortcuts" msgstr "میانبرها" -#: src/app/main/ui/dashboard/import.cljs:527 msgid "labels.accept" msgstr "تایید" -#: src/app/main/ui/dashboard/fonts.cljs:175 msgid "labels.add-custom-font" msgstr "اضافه کردن فونت سفارشی" -#: src/app/main/ui/dashboard/team.cljs:120, src/app/main/ui/dashboard/team.cljs:276, src/app/main/ui/dashboard/team.cljs:519, src/app/main/ui/dashboard/team.cljs:549, src/app/main/ui/onboarding/team_choice.cljs:67 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs msgid "labels.admin" msgstr "مدیر" #: src/app/main/ui/workspace/comments.cljs -#, unused msgid "labels.all" msgstr "همه" -#: src/app/main/ui/auth.cljs:37 msgid "labels.and" msgstr "و" -#: src/app/main/ui/onboarding/team_choice.cljs:162 msgid "labels.back" msgstr "بازگشت" -#: src/app/main/ui/static.cljs:59 +#: src/app/main/ui/static.cljs +#, fuzzy msgid "labels.bad-gateway.desc-message" msgstr "" "به نظر می‌رسد باید کمی صبر کنید و دوباره تلاش کنید; ما در حال انجام تعمیرات " "کوچک روی سرورهای خود هستیم." -#: src/app/main/data/common.cljs:112, src/app/main/ui/dashboard/change_owner.cljs:69, src/app/main/ui/dashboard/import.cljs:514, src/app/main/ui/dashboard/team.cljs:868, src/app/main/ui/delete_shared.cljs:35, src/app/main/ui/export.cljs:164, src/app/main/ui/export.cljs:460, src/app/main/ui/settings/access_tokens.cljs:188, src/app/main/ui/viewer/share_link.cljs:203, src/app/main/ui/workspace/sidebar/assets/groups.cljs:149 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.cancel" msgstr "لغو" -#: src/app/main/ui/dashboard/projects.cljs:93, src/app/main/ui/export.cljs:478, src/app/main/ui/settings/access_tokens.cljs:183, src/app/main/ui/viewer/login.cljs:77, src/app/main/ui/viewer/share_link.cljs:174, src/app/main/ui/workspace/libraries.cljs:522 msgid "labels.close" msgstr "بستن" -#: src/app/main/ui/dashboard/comments.cljs:104, src/app/main/ui/viewer/comments.cljs:70, src/app/main/ui/workspace/comments.cljs:126 +#: src/app/main/ui/dashboard/comments.cljs msgid "labels.comments" msgstr "نظرات" -#: src/app/main/ui/dashboard/sidebar.cljs:985, src/app/main/ui/workspace/main_menu.cljs:110 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.community" msgstr "انجمن" -#: src/app/main/ui/settings/password.cljs:103 +#: src/app/main/ui/settings/password.cljs msgid "labels.confirm-password" msgstr "تایید رمزعبور" -#: src/app/main/ui/dashboard/import.cljs:520, src/app/main/ui/export.cljs:465, src/app/main/ui/onboarding/newsletter.cljs:101 msgid "labels.continue" msgstr "ادامه" -#, unused msgid "labels.continue-with" msgstr "ادامه دادن با" -#: src/app/main/ui/viewer/login.cljs:75 msgid "labels.continue-with-penpot" msgstr "شما می‌توانید با یک حساب Penpot ادامه دهید" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:157, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:190 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "labels.create" msgstr "ایجاد" -#: src/app/main/ui/dashboard/team_form.cljs:101, src/app/main/ui/dashboard/team_form.cljs:121 +#: src/app/main/ui/dashboard/team_form.cljs, +#: src/app/main/ui/dashboard/team_form.cljs msgid "labels.create-team" msgstr "ایجاد تیم جدید" -#: src/app/main/ui/dashboard/team_form.cljs:113 +#: src/app/main/ui/dashboard/team_form.cljs msgid "labels.create-team.placeholder" msgstr "نام تیم جدید را وارد کنید" -#, unused msgid "labels.custom-fonts" msgstr "فونت‌های سفارشی" -#: src/app/main/ui/settings/sidebar.cljs:73 +#: src/app/main/ui/settings/sidebar.cljs msgid "labels.dashboard" msgstr "داشبورد" -#: src/app/main/ui/dashboard/file_menu.cljs:306, src/app/main/ui/dashboard/fonts.cljs:255, src/app/main/ui/dashboard/fonts.cljs:332, src/app/main/ui/dashboard/fonts.cljs:346, src/app/main/ui/dashboard/project_menu.cljs:115, src/app/main/ui/dashboard/team.cljs:904, src/app/main/ui/settings/access_tokens.cljs:209, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:209 +#: src/app/main/ui/dashboard/project_menu.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.delete" msgstr "حذف" -#: src/app/main/ui/comments.cljs:357 +#: src/app/main/ui/comments.cljs msgid "labels.delete-comment" msgstr "حذف نظر" -#: src/app/main/ui/comments.cljs:354 +#: src/app/main/ui/comments.cljs +#, fuzzy msgid "labels.delete-comment-thread" msgstr "حذف موضوع" -#: src/app/main/ui/dashboard/team.cljs:648 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.delete-invitation" msgstr "حذف دعوت" -#: src/app/main/ui/dashboard/file_menu.cljs:262 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.delete-multi-files" msgstr "حذف فایل‌های %s" -#: src/app/main/ui/dashboard/file_menu.cljs:28, src/app/main/ui/dashboard/files.cljs:72, src/app/main/ui/dashboard/files.cljs:156, src/app/main/ui/dashboard/projects.cljs:220, src/app/main/ui/dashboard/projects.cljs:224, src/app/main/ui/dashboard/sidebar.cljs:791 +#: src/app/main/ui/dashboard/projects.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs, +#: src/app/main/ui/dashboard/files.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.drafts" msgstr "پیش‌نویس‌ها" -#: src/app/main/ui/comments.cljs:350, src/app/main/ui/dashboard/fonts.cljs:252, src/app/main/ui/dashboard/team.cljs:902, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:205 +#: src/app/main/ui/comments.cljs msgid "labels.edit" msgstr "ویرایش" -#, unused msgid "labels.edit-file" msgstr "ویرایش فایل" -#: src/app/main/ui/dashboard/team.cljs:118, src/app/main/ui/dashboard/team.cljs:279, src/app/main/ui/dashboard/team.cljs:520, src/app/main/ui/dashboard/team.cljs:553, src/app/main/ui/onboarding/team_choice.cljs:66 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs msgid "labels.editor" msgstr "ویرایشگر" -#: src/app/main/ui/dashboard/team.cljs:661 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.expired-invitation" msgstr "منقضی شده" -#: src/app/main/ui/export.cljs:173 msgid "labels.export" msgstr "اکسپورت" -#: src/app/main/ui/settings/feedback.cljs:51 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.feedback-disabled" msgstr "بازخورد غیرفعال شد" -#: src/app/main/ui/settings/feedback.cljs:42 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.feedback-sent" msgstr "بازخورد ارسال شد" -#: src/app/main/ui/dashboard/fonts.cljs:412 msgid "labels.font-family" msgstr "خانواده فونت" -#, unused msgid "labels.font-providers" msgstr "ارائه‌دهندگان فونت" -#: src/app/main/ui/dashboard/fonts.cljs:413 msgid "labels.font-variants" msgstr "استایل‌ها" -#: src/app/main/ui/dashboard/fonts.cljs:52, src/app/main/ui/dashboard/sidebar.cljs:811 msgid "labels.fonts" msgstr "فونت‌ها" -#: src/app/main/ui/dashboard/sidebar.cljs:1015, src/app/main/ui/workspace/main_menu.cljs:142 +#: src/app/main/ui/dashboard/sidebar.cljs +#, fuzzy msgid "labels.github-repo" msgstr "مخزن Github" -#: src/app/main/ui/dashboard/sidebar.cljs:1032, src/app/main/ui/settings/sidebar.cljs:113, src/app/main/ui/workspace/main_menu.cljs:171 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/settings/sidebar.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.give-feedback" msgstr "بازخورد بده" -#: src/app/main/ui/auth/recovery_request.cljs:110, src/app/main/ui/auth/register.cljs:285, src/app/main/ui/viewer/login.cljs:117 msgid "labels.go-back" msgstr "برگرد" -#: src/app/main/ui/dashboard/sidebar.cljs:978, src/app/main/ui/workspace/main_menu.cljs:102 +#: src/app/main/ui/dashboard/sidebar.cljs +#, fuzzy msgid "labels.help-center" msgstr "مرکز کمک" -#: src/app/main/ui/viewer/comments.cljs:103, src/app/main/ui/workspace/comments.cljs:67 +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs +#, fuzzy msgid "labels.hide-resolved-comments" msgstr "پنهان کردن نظرات حل شده" -#: src/app/main/ui/dashboard/fonts.cljs:410 msgid "labels.installed-fonts" msgstr "فونت‌های نصب‌شده" -#: src/app/main/ui/static.cljs:144 +#: src/app/main/ui/static.cljs +#, fuzzy msgid "labels.internal-error.desc-message" msgstr "" "اتفاق بدی افتاد. لطفاً عملیات را دوباره امتحان کنید و اگر مشکل همچنان ادامه " "داشت، با پشتیبانی تماس بگیرید." -#: src/app/main/ui/static.cljs:143 +#: src/app/main/ui/static.cljs msgid "labels.internal-error.main-message" msgstr "خطای داخلی" -#: src/app/main/ui/dashboard/sidebar.cljs:516, src/app/main/ui/dashboard/team.cljs:89, src/app/main/ui/dashboard/team.cljs:97, src/app/main/ui/dashboard/team.cljs:708 +#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.invitations" msgstr "دعوت‌نامه‌ها" -#: src/app/main/ui/settings/options.cljs:51 +#: src/app/main/ui/settings/options.cljs msgid "labels.language" msgstr "زبان" -#: src/app/main/ui/dashboard/sidebar.cljs:1008, src/app/main/ui/workspace/main_menu.cljs:134 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.libraries-and-templates" msgstr "کتابخانه‌ها و قالب‌ها" -#: src/app/main/ui/viewer/header.cljs:203 msgid "labels.log-or-sign" msgstr "ورود یا ثبت نام" -#: src/app/main/ui/dashboard/sidebar.cljs:1040 +#: src/app/main/ui/settings.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.logout" msgstr "خروج" -#: src/app/main/ui/dashboard/team.cljs:468 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.member" msgstr "عضو" -#: src/app/main/ui/dashboard/sidebar.cljs:510, src/app/main/ui/dashboard/team.cljs:87, src/app/main/ui/dashboard/team.cljs:95 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.members" msgstr "اعضا" -#: src/app/main/ui/settings/password.cljs:96 +#: src/app/main/ui/settings/password.cljs msgid "labels.new-password" msgstr "رمزعبور جدید" -#: src/app/main/ui/dashboard/comments.cljs:128, src/app/main/ui/workspace/comments.cljs:161 +#: src/app/main/ui/workspace/comments.cljs, +#: src/app/main/ui/dashboard/comments.cljs msgid "labels.no-comments-available" msgstr "هیچ اعلان نظر معلقی ندارید" -#: src/app/main/ui/dashboard/team.cljs:694 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.no-invitations" msgstr "هیچ دعوتنامه‌ای وجود ندارد." -#: src/app/main/ui/dashboard/team.cljs:696 -#, markdown +#: src/app/main/ui/dashboard/team.cljs msgid "labels.no-invitations-hint" msgstr "دکمه \"دعوت به تیم\" را فشار دهید تا اعضای بیشتری را به این تیم دعوت کنید." -#: src/app/main/ui/static.cljs:50 +#: src/app/main/ui/static.cljs msgid "labels.not-found.desc-message" msgstr "ممکن است این صفحه وجود نداشته باشد یا شما مجوز دسترسی به آن را نداشته باشید." -#: src/app/main/ui/static.cljs:49 +#: src/app/main/ui/static.cljs msgid "labels.not-found.main-message" msgstr "اوپس!" -#: src/app/main/ui/dashboard/projects.cljs:239, src/app/main/ui/dashboard/team.cljs:1095 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.num-of-files" msgid_plural "labels.num-of-files" msgstr[0] "۱ فایل" msgstr[1] "%s فایل" -#: src/app/main/ui/viewer/thumbnails.cljs:80 msgid "labels.num-of-frames" msgid_plural "labels.num-of-frames" msgstr[0] "۱ برد" msgstr[1] "%s برد" -#: src/app/main/ui/dashboard/team.cljs:1090 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.num-of-projects" msgid_plural "labels.num-of-projects" msgstr[0] "۱ پروژه" msgstr[1] "%s پروژه" -#: src/app/main/ui/settings/password.cljs:89 +#: src/app/main/ui/settings/password.cljs msgid "labels.old-password" msgstr "رمزعبور قدیمی" #: src/app/main/ui/workspace/comments.cljs -#, unused +#, fuzzy msgid "labels.only-yours" msgstr "فقط برای تو" -#, unused msgid "labels.or" msgstr "یا" -#: src/app/main/ui/dashboard/team.cljs:286, src/app/main/ui/dashboard/team.cljs:518, src/app/main/ui/dashboard/team.cljs:1076 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs msgid "labels.owner" msgstr "مالک" -#: src/app/main/ui/settings/sidebar.cljs:87 +#: src/app/main/ui/settings/sidebar.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.password" msgstr "کلمه‌عبور" -#: src/app/main/ui/dashboard/team.cljs:662 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.pending-invitation" msgstr "در انتظار" -#: src/app/main/ui/settings/profile.cljs:118, src/app/main/ui/settings/sidebar.cljs:82 +#: src/app/main/ui/settings/sidebar.cljs msgid "labels.profile" msgstr "پروفایل" -#: src/app/main/ui/dashboard/sidebar.cljs:784 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.projects" msgstr "پروژه‌ها" -#: src/app/main/ui/dashboard/sidebar.cljs:998, src/app/main/ui/settings/sidebar.cljs:106, src/app/main/ui/workspace/main_menu.cljs:126 +#: src/app/main/ui/settings/sidebar.cljs msgid "labels.release-notes" msgstr "یادداشت‌های انتشار" -#: src/app/main/ui/workspace/libraries.cljs, src/app/main/ui/dashboard/team.cljs -#, unused +#: src/app/main/ui/workspace/libraries.cljs, +#: src/app/main/ui/dashboard/team.cljs msgid "labels.remove" msgstr "حذف" -#: src/app/main/ui/dashboard/team.cljs:316 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.remove-member" msgstr "حذف عضو" -#: src/app/main/ui/dashboard/file_menu.cljs:271, src/app/main/ui/dashboard/project_menu.cljs:85, src/app/main/ui/dashboard/sidebar.cljs:539, src/app/main/ui/workspace/sidebar/assets/groups.cljs:157 +#: src/app/main/ui/dashboard/sidebar.cljs, +#: src/app/main/ui/dashboard/project_menu.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.rename" msgstr "تغییرنام" -#: src/app/main/ui/dashboard/team_form.cljs:99 +#: src/app/main/ui/dashboard/team_form.cljs msgid "labels.rename-team" msgstr "تغییر نام تیم" -#: src/app/main/ui/dashboard/team.cljs:645 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.resend-invitation" msgstr "فرستادن مجدد دعوتنامه" -#: src/app/main/ui/static.cljs:61, src/app/main/ui/static.cljs:70, src/app/main/ui/static.cljs:148 +#: src/app/main/ui/static.cljs, src/app/main/ui/static.cljs msgid "labels.retry" msgstr "امتحان دوباره" -#: src/app/main/ui/dashboard/team.cljs:469, src/app/main/ui/dashboard/team.cljs:709 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.role" msgstr "نقش" -#: src/app/main/ui/dashboard/fonts.cljs:380, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:191 msgid "labels.save" msgstr "ذخیره" -#: src/app/main/ui/dashboard/fonts.cljs:415 msgid "labels.search-font" msgstr "جستجوی فونت" -#: src/app/main/ui/settings/feedback.cljs:82 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.send" msgstr "ارسال" -#: src/app/main/ui/settings/feedback.cljs:82 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.sending" msgstr "درحال ارسال…" -#: src/app/main/ui/static.cljs:68 +#: src/app/main/ui/static.cljs msgid "labels.service-unavailable.desc-message" msgstr "ما در حال تعمیر و نگهداری برنامه‌ریزی شده سیستم‌های خود هستیم." -#: src/app/main/ui/static.cljs:67 +#: src/app/main/ui/static.cljs msgid "labels.service-unavailable.main-message" msgstr "سرویس در دسترس نیست" -#: src/app/main/ui/dashboard/sidebar.cljs:530, src/app/main/ui/dashboard/team.cljs:88, src/app/main/ui/dashboard/team.cljs:102, src/app/main/ui/settings/options.cljs:84, src/app/main/ui/settings/sidebar.cljs:93 +#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.settings" msgstr "تنظیمات" -#, unused msgid "labels.share-prototype" msgstr "به اشتراک گذاشتن پروتوتایپ" -#: src/app/main/ui/dashboard/sidebar.cljs:800 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.shared-libraries" msgstr "کتابخانه‌های مشترک" -#: src/app/main/ui/viewer/comments.cljs:82, src/app/main/ui/workspace/comments.cljs:55, src/app/main/ui/workspace/comments.cljs:135 +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs msgid "labels.show-all-comments" msgstr "نمایش همه نظرات" -#: src/app/main/ui/viewer/comments.cljs:115 msgid "labels.show-comments-list" msgstr "نمایش لیست نظرات" -#: src/app/main/ui/viewer/comments.cljs:91, src/app/main/ui/workspace/comments.cljs:61, src/app/main/ui/workspace/comments.cljs:136 +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs +#, fuzzy msgid "labels.show-your-comments" msgstr "فقط نظرات خودتان را نشان دهید" -#: src/app/main/ui/dashboard/team.cljs:710 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.status" msgstr "وضعیت" -#: src/app/main/ui/dashboard/sidebar.cljs:992, src/app/main/ui/workspace/main_menu.cljs:118 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.tutorials" msgstr "آموزش‌ها" -#: src/app/main/ui/settings/profile.cljs:103 +#: src/app/main/ui/settings/profile.cljs msgid "labels.update" msgstr "به‌روزرسانی" -#: src/app/main/ui/dashboard/team_form.cljs:120 +#: src/app/main/ui/dashboard/team_form.cljs +#, fuzzy msgid "labels.update-team" msgstr "بروزرسانی تیم" -#: src/app/main/ui/dashboard/fonts.cljs:241 msgid "labels.upload" msgstr "بارگذاری" -#: src/app/main/ui/dashboard/fonts.cljs:169 msgid "labels.upload-custom-fonts" msgstr "آپلود فونت‌های سفارشی" -#: src/app/main/ui/dashboard/fonts.cljs:240 msgid "labels.uploading" msgstr "درحال بارگذاری…" -#: src/app/main/ui/dashboard/team.cljs:123, src/app/main/ui/dashboard/team.cljs:282, src/app/main/ui/dashboard/team.cljs:521 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.viewer" msgstr "بیننده" -#: src/app/main/ui/comments.cljs:194 +#: src/app/main/ui/comments.cljs msgid "labels.write-new-comment" msgstr "نظر جدید بنویس" -#: src/app/main/ui/dashboard/team.cljs:237 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.you" msgstr "(شما)" -#: src/app/main/ui/dashboard/sidebar.cljs:968 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.your-account" msgstr "حساب شما" -#: src/app/main/data/media.cljs:49, src/app/main/data/workspace/media.cljs:223, src/app/main/data/workspace/media.cljs:453 +#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs msgid "media.loading" msgstr "در حال بارگیری تصویر…" -#: src/app/main/data/common.cljs:113 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs +#, fuzzy msgid "modals.add-shared-confirm.accept" msgstr "افزودن به عنوان کتابخانه مشترک" -#: src/app/main/data/common.cljs:111 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.add-shared-confirm.hint" msgstr "" "پس از افزودن به‌عنوان کتابخانه مشترک، دارایی‌های این کتابخانۀ فایل برای " "استفاده در بین بقیه فایل‌های شما در دسترس خواهد بود." -#: src/app/main/data/common.cljs:110 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.add-shared-confirm.message" msgstr "افزودن «%s» به عنوان کتابخانه مشترک" -#: src/app/main/ui/settings/change_email.cljs:127 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.confirm-email" msgstr "تایید ایمیل جدید" -#: src/app/main/ui/settings/change_email.cljs:114 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.info" msgstr "برای تأیید هویت شما یک ایمیل به ایمیل فعلی شما \"%s\" ارسال می‌کنیم." -#: src/app/main/ui/settings/change_email.cljs:119 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.new-email" msgstr "ایمیل جدید" -#: src/app/main/ui/settings/change_email.cljs:136 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.submit" msgstr "تغییر ایمیل" -#: src/app/main/ui/settings/change_email.cljs:107 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.title" msgstr "ایمیل خود را تغییر دهید" -#: src/app/main/ui/settings/delete_account.cljs:59 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.cancel" msgstr "لغو و نگه‌داشتن حساب من" -#: src/app/main/ui/settings/delete_account.cljs:64 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.confirm" msgstr "بله، حسابم رو حذف کن" -#: src/app/main/ui/settings/delete_account.cljs:53 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.info" msgstr "" "با حذف کردن حساب خود، تمام پروژه‌ها و آرشیوهای فعلی خود را از دست خواهید " "داد." -#: src/app/main/ui/settings/delete_account.cljs:46 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.title" msgstr "آیا مطمئن هستید که می‌خواهید حساب خود را حذف کنید؟" -#: src/app/main/ui/comments.cljs:298 +#: src/app/main/ui/comments.cljs msgid "modals.delete-comment-thread.accept" msgstr "حذف مکالمه" -#: src/app/main/ui/comments.cljs:297 +#: src/app/main/ui/comments.cljs msgid "modals.delete-comment-thread.message" msgstr "" "آیا مطمئنید که می‌خواهید این مکالمه را حذف کنید؟ تمامی نظرات این تاپیک حذف " "خواهد شد." -#: src/app/main/ui/comments.cljs:296 +#: src/app/main/ui/comments.cljs msgid "modals.delete-comment-thread.title" msgstr "حذف مکالمه" -#: src/app/main/ui/dashboard/file_menu.cljs:123 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-confirm.accept" msgstr "حذف فایل" -#: src/app/main/ui/dashboard/file_menu.cljs:122 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-confirm.message" msgstr "آیا مطمئن هستید که می‌خواهید این فایل را حذف کنید؟" -#: src/app/main/ui/dashboard/file_menu.cljs:121 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-confirm.title" msgstr "در حال حذف فایل" -#: src/app/main/ui/dashboard/file_menu.cljs:117 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-multi-confirm.accept" msgstr "حذف فایل‌ها" -#: src/app/main/ui/dashboard/file_menu.cljs:116 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-multi-confirm.message" msgstr "آیا مطمئن هستید که می‌خواهید فایل‌های %s را حذف کنید؟" -#: src/app/main/ui/dashboard/file_menu.cljs:115 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-multi-confirm.title" msgstr "در حال حذف %s فایل‌ها" -#: src/app/main/ui/dashboard/fonts.cljs:345 msgid "modals.delete-font-variant.message" msgstr "" "آیا مطمئن هستید که می‌خواهید این سبک فونت را حذف کنید؟ اگر در یک فایل " "استفاده شود، بارگیری نمی‌شود." -#: src/app/main/ui/dashboard/fonts.cljs:344 msgid "modals.delete-font-variant.title" msgstr "درحال حذف استایل فونت" -#: src/app/main/ui/dashboard/fonts.cljs:331 msgid "modals.delete-font.message" msgstr "" "آیا مطمئن هستید که می‌خواهید این فونت را حذف کنید؟ اگر در یک فایل استفاده " "شود، بارگیری نمی‌شود." -#: src/app/main/ui/dashboard/fonts.cljs:330 msgid "modals.delete-font.title" msgstr "درحال حذف فونت" -#: src/app/main/ui/workspace/context_menu.cljs:522, src/app/main/ui/workspace/sidebar/sitemap.cljs:45 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs msgid "modals.delete-page.body" msgstr "آیا مطمئن هستید که می‌خواهید این صفحه را حذف کنید؟" -#: src/app/main/ui/workspace/context_menu.cljs:521, src/app/main/ui/workspace/sidebar/sitemap.cljs:44 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs msgid "modals.delete-page.title" msgstr "حذف صفحه" -#: src/app/main/ui/dashboard/project_menu.cljs:69 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "modals.delete-project-confirm.accept" msgstr "حذف پروژه" -#: src/app/main/ui/dashboard/project_menu.cljs:68 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "modals.delete-project-confirm.message" msgstr "آیا مطمئن هستید که می‌خواهید این پروژه را حذف کنید؟" -#: src/app/main/ui/dashboard/project_menu.cljs:67 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "modals.delete-project-confirm.title" msgstr "حذف پروژه" -#: src/app/main/ui/delete_shared.cljs:51 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.accept" msgid_plural "modals.delete-shared-confirm.accept" msgstr[0] "حذف فایل" msgstr[1] "حذف فایل‌ها" -#: src/app/main/ui/delete_shared.cljs:46 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.message" msgid_plural "modals.delete-shared-confirm.message" msgstr[0] "آیا مطمئن هستید که می‌خواهید این فایل را حذف کنید؟" msgstr[1] "آیا مطمئن هستید که می‌خواهید این فایل‌ها را حذف کنید؟" -#: src/app/main/ui/delete_shared.cljs:41 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.title" msgid_plural "modals.delete-shared-confirm.title" msgstr[0] "درحال حذف فایل" msgstr[1] "درحال حذف فایل‌ها" -#: src/app/main/ui/dashboard/sidebar.cljs:435 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.delete-team-confirm.accept" msgstr "حذف تیم" -#: src/app/main/ui/dashboard/sidebar.cljs:434 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.delete-team-confirm.message" msgstr "" "آیا مطمئنید که می‌خواهید این تیم را حذف کنید؟ تمام پروژه‌ها و فایل‌های " "مرتبط با تیم به طور دائم حذف خواهند شد." -#: src/app/main/ui/dashboard/sidebar.cljs:433 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.delete-team-confirm.title" msgstr "درحال حذف تیم" -#: src/app/main/ui/dashboard/team.cljs:427 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.delete-team-member-confirm.accept" msgstr "حذف عضو" -#: src/app/main/ui/dashboard/team.cljs:426 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.delete-team-member-confirm.message" msgstr "آیا مطمئن هستید که می‌خواهید این عضو را از تیم حذف کنید؟" -#: src/app/main/ui/dashboard/team.cljs:425 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.delete-team-member-confirm.title" msgstr "حذف عضو تیم" -#: src/app/main/ui/dashboard/team.cljs:218 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.invite-member-confirm.accept" msgstr "ارسال دعوت‌نامه" -#: src/app/main/ui/dashboard/team.cljs:213, src/app/main/ui/onboarding/team_choice.cljs:156 msgid "modals.invite-member.emails" msgstr "ایمیل‌ها، با کاما از هم جدا شده‌اند" -#: src/app/main/ui/dashboard/team.cljs:190 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.invite-team-member.title" msgstr "دعوت اعضا به تیم" -#: src/app/main/ui/dashboard/sidebar.cljs:423, src/app/main/ui/dashboard/team.cljs:393 +#: src/app/main/ui/dashboard/sidebar.cljs +#, fuzzy msgid "modals.leave-and-close-confirm.hint" msgstr "" "از آنجایی که شما تنها عضو این تیم هستید، تیم به همراه پروژه‌ها و فایل‌هایش " "حذف خواهد شد." -#: src/app/main/ui/dashboard/sidebar.cljs:422, src/app/main/ui/dashboard/team.cljs:392 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-close-confirm.message" msgstr "آیا مطمئنید که می‌خواهید تیم %s را ترک کنید؟" -#: src/app/main/ui/dashboard/change_owner.cljs:59 +#, fuzzy msgid "modals.leave-and-reassign.forbidden" msgstr "" "اگر عضو دیگری برای ارتقا به مالک وجود نداشته باشد، نمی‌توانید تیم را ترک " "کنید. شاید بخواهید تیم را حذف کنید." -#: src/app/main/ui/dashboard/change_owner.cljs:55 +#: src/app/main/ui/dashboard/sidebar.cljs +#, fuzzy msgid "modals.leave-and-reassign.hint1" msgstr "" "شما مالک این تیم هستید. لطفاً قبل از ترک تیم، عضو دیگری را برای ارتقاء به " "مالک انتخاب کنید." -#: src/app/main/ui/dashboard/change_owner.cljs:34 +#: src/app/main/ui/dashboard/sidebar.cljs +#, fuzzy msgid "modals.leave-and-reassign.select-member-to-promote" msgstr "انتخاب یک عضو برای ارتقا" -#: src/app/main/ui/dashboard/change_owner.cljs:49 +#: src/app/main/ui/dashboard/sidebar.cljs +#, fuzzy msgid "modals.leave-and-reassign.title" msgstr "قبل از رفتن" -#: src/app/main/ui/dashboard/sidebar.cljs:402, src/app/main/ui/dashboard/sidebar.cljs:424, src/app/main/ui/dashboard/team.cljs:394, src/app/main/ui/dashboard/team.cljs:416 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-confirm.accept" msgstr "خروج از تیم" -#: src/app/main/ui/dashboard/sidebar.cljs:401, src/app/main/ui/dashboard/team.cljs:415 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-confirm.message" msgstr "آیا مطمئنید که می‌خواهید این تیم را ترک کنید؟" -#: src/app/main/ui/dashboard/sidebar.cljs:400, src/app/main/ui/dashboard/sidebar.cljs:421, src/app/main/ui/dashboard/team.cljs:391, src/app/main/ui/dashboard/team.cljs:414 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-confirm.title" msgstr "درحال ترک تیم" -#: src/app/main/ui/dashboard/team.cljs:340 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.accept" msgstr "انتقال مالکیت" -#: src/app/main/ui/dashboard/team.cljs:339 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.hint" msgstr "" "اگر مالکیت را منتقل کنید، نقش خود را به مدیر تغییر می‌دهید و برخی از " "مجوزهای این تیم را از دست می‌دهید. " -#: src/app/main/ui/dashboard/team.cljs:338 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.message" msgstr "" "شما مالک فعلی این تیم هستید. آیا مطمئنید که می‌خواهید %s را مالک جدید تیم " "کنید؟" -#: src/app/main/ui/dashboard/team.cljs:337 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.title" msgstr "مالک جدید تیم" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.remove-shared-confirm.accept" msgstr "حذف به عنوان کتابخانه مشترک" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs +#, fuzzy msgid "modals.remove-shared-confirm.hint" msgstr "" "پس از حذف به‌عنوان کتابخانه مشترک، کتابخانه فایل این فایل برای استفاده در " "بین بقیه فایل‌های شما در دسترس نخواهد بود." -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:380 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.accept" msgstr "به‌روزرسانی" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:379 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.cancel" msgstr "لغو" -#: src/app/main/ui/settings/options.cljs:29, src/app/main/ui/settings/profile.cljs:35 +#: src/app/main/ui/settings/profile.cljs, src/app/main/ui/settings/options.cljs msgid "notifications.profile-saved" msgstr "پروفایل با موفقیت ذخیره شد!" -#, unused +#, fuzzy msgid "onboarding-v2.before-start.desc2" msgstr "" "اطلاعات دقیق در مورد نحوه استفاده از Penpot. از نمونه‌سازی تا سازماندهی یا " "به اشتراک‌گذاری طرح‌ها." -#, unused +#, fuzzy msgid "onboarding-v2.before-start.desc3" msgstr "" "شما می‌توانید آموزش‌های ما و آموزش‌های ساخته شده توسط انجمن ما را تماشا " "کنید." -#: src/app/main/ui/onboarding/team_choice.cljs:215 msgid "onboarding.choice.team-up.create-team-desc" msgstr "پس از نامگذاری تیم خود، می‌توانید افراد را برای پیوستن دعوت کنید." -#, unused msgid "onboarding.welcome.alt" msgstr "Penpot" -#: src/app/main/ui/viewer/inspect/exports.cljs:147, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:631, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:137, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:148, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:188, src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:158, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:399, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:410, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:430, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:441, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:458, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:472, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:309, src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:183, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:373, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:389, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:245, src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:172 +#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs msgid "settings.multiple" msgstr "مخلوط" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:420 msgid "shortcut-section.dashboard" msgstr "داشبورد" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:423 msgid "shortcut-section.viewer" msgstr "بیننده" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:57 msgid "shortcut-subsection.edit" msgstr "ویرایش" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:60 msgid "shortcut-subsection.main-menu" msgstr "منوی اصلی" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:65 +#, fuzzy msgid "shortcut-subsection.panels" msgstr "پنل‌ها" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:66 msgid "shortcut-subsection.path-editor" msgstr "مسیرها" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:67 msgid "shortcut-subsection.shape" msgstr "شکل‌ها" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:69 msgid "shortcut-subsection.tools" msgstr "ابزار" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:70 msgid "shortcut-subsection.zoom-viewer" msgstr "بزرگنمایی" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:71 msgid "shortcut-subsection.zoom-workspace" msgstr "بزرگنمایی" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:72 msgid "shortcuts.add-comment" msgstr "نظرات" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:73 msgid "shortcuts.add-node" msgstr "افزودن گره" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:74 msgid "shortcuts.align-bottom" msgstr "تراز به پایین" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:93 msgid "shortcuts.copy" msgstr "کپی" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:98 msgid "shortcuts.delete" msgstr "حذف" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:101 msgid "shortcuts.draw-curve" msgstr "منحنی" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:102 msgid "shortcuts.draw-ellipse" msgstr "بیضی" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:103 msgid "shortcuts.draw-frame" msgstr "آرت‌بورد" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:105 msgid "shortcuts.draw-path" msgstr "مسیر" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:106 msgid "shortcuts.draw-rect" msgstr "مستطیل" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:107 msgid "shortcuts.draw-text" msgstr "متن" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:109 msgid "shortcuts.escape" msgstr "لغو" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:112 msgid "shortcuts.flip-horizontal" msgstr "حرکت افقی" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:113 msgid "shortcuts.flip-vertical" msgstr "حرکت عمودی" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:118 msgid "shortcuts.go-to-search" msgstr "جستجو" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:119 msgid "shortcuts.group" msgstr "گروه" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:133 msgid "shortcuts.mask" msgstr "ماسک" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:135 msgid "shortcuts.move" msgstr "انتقال" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:163 msgid "shortcuts.paste" msgstr "چسباندن" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:207 msgid "shortcuts.undo" msgstr "واگرد" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:208 +#, fuzzy msgid "shortcuts.ungroup" msgstr "حذف گروه" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:209 msgid "shortcuts.unmask" msgstr "برداشتن ماسک" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:210 msgid "shortcuts.v-distribute" msgstr "توزیع به صورت عمودی" -#: src/app/main/ui/dashboard/files.cljs:158 +#: src/app/main/ui/dashboard/files.cljs +#, fuzzy msgid "title.dashboard.files" msgstr "%s - Penpot" -#: src/app/main/ui/dashboard/fonts.cljs:36 +#: src/app/main/ui/dashboard/fonts.cljs +#, fuzzy msgid "title.dashboard.fonts" msgstr "فونت‌ها - %s - Penpot" -#: src/app/main/ui/dashboard/projects.cljs:320 +#: src/app/main/ui/dashboard/projects.cljs +#, fuzzy msgid "title.dashboard.projects" msgstr "پروژه‌ها - %s - Penpot" -#: src/app/main/ui/dashboard/search.cljs:32 +#: src/app/main/ui/dashboard/search.cljs +#, fuzzy msgid "title.dashboard.search" msgstr "جستجو - %s - Penpot" -#: src/app/main/ui/dashboard/libraries.cljs:44 +#: src/app/main/ui/dashboard/libraries.cljs msgid "title.dashboard.shared-libraries" msgstr "کتابخانه‌های مشترک - %s - پن‌پات" -#: src/app/main/ui/auth/verify_token.cljs:68, src/app/main/ui/auth.cljs:54 +#: src/app/main/ui/auth/verify_token.cljs, src/app/main/ui/auth.cljs msgid "title.default" msgstr "Penpot - طراحی آزاد برای تیم‌ها" -#: src/app/main/ui/settings/feedback.cljs:110 +#: src/app/main/ui/settings/feedback.cljs msgid "title.settings.feedback" msgstr "بازخورد بدهید - Penpot" -#: src/app/main/ui/settings/options.cljs:80 +#: src/app/main/ui/settings/options.cljs msgid "title.settings.options" msgstr "تنظیمات - Penpot" -#: src/app/main/ui/settings/password.cljs:115 +#: src/app/main/ui/settings/password.cljs msgid "title.settings.password" msgstr "رمزعبور - Penpot" -#: src/app/main/ui/settings/profile.cljs:115 +#: src/app/main/ui/settings/profile.cljs msgid "title.settings.profile" msgstr "پروفایل - پن‌پات" -#: src/app/main/ui/dashboard/team.cljs:727 +#: src/app/main/ui/dashboard/team.cljs +#, fuzzy msgid "title.team-invitations" msgstr "دعوت‌نامه‌ها - %s - Penpot" -#: src/app/main/ui/dashboard/team.cljs:493 +#: src/app/main/ui/dashboard/team.cljs msgid "title.team-members" msgstr "اعضا - %s - پن‌پات" -#: src/app/main/ui/dashboard/team.cljs:1036 +#: src/app/main/ui/dashboard/team.cljs msgid "title.team-settings" msgstr "تنظیمات - %s - پن‌پات" -#: src/app/main/ui/viewer.cljs:419 +#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs msgid "title.viewer" msgstr "%s - حالت مشاهده - پن‌پات" -#: src/app/main/ui/workspace.cljs:190 +#: src/app/main/ui/workspace.cljs +#, fuzzy msgid "title.workspace" msgstr "%s - Penpot" -#: src/app/main/ui.cljs:144 msgid "viewer.breaking-change.description" msgstr "" "این لینک قابل اشتراک‌گذاری دیگر معتبر نیست. یک مورد جدید ایجاد کنید یا از " "مالک یک مورد جدید بخواهید." -#: src/app/main/ui.cljs:143 msgid "viewer.breaking-change.message" msgstr "متاسفم!" -#: src/app/main/ui/viewer.cljs:569 +#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs msgid "viewer.empty-state" msgstr "هیچ آرت‌بوردی در صفحه یافت نشد." -#: src/app/main/ui/viewer.cljs:574 +#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs msgid "viewer.frame-not-found" msgstr "آرت‌بورد یافت نشد." -#: src/app/main/ui/viewer/header.cljs:336 msgid "viewer.header.comments-section" msgstr "نظرات (%s)" -#: src/app/main/ui/viewer/interactions.cljs:292 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.dont-show-interactions" msgstr "تعاملات را نشان ندهید" -#: src/app/main/ui/viewer/header.cljs:188 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.fullscreen" msgstr "تمام صفحه" -#: src/app/main/ui/viewer/interactions.cljs:282 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.interactions" msgstr "تعاملات" -#: src/app/main/ui/viewer/header.cljs:327 msgid "viewer.header.interactions-section" msgstr "تعاملات (%s)" -#: src/app/main/ui/viewer/share_link.cljs:187 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.share.copy-link" msgstr "کپی کردن لینک" -#: src/app/main/ui/viewer/interactions.cljs:300 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.show-interactions" msgstr "نشان دادن تعاملات" -#: src/app/main/ui/viewer/interactions.cljs:311 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.show-interactions-on-click" msgstr "نمایش تعاملات در کلیک" -#: src/app/main/ui/viewer/header.cljs:231 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.sitemap" msgstr "نقشه سایت" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:58 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.hcenter" msgstr "تراز کردن مرکز افقی (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:74 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.hdistribute" msgstr "توزیع فاصله افقی (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:50 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.hleft" msgstr "تراز به چپ (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:66 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.hright" msgstr "تراز کردن به راست (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:99 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.vbottom" msgstr "تراز کردن پایین (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:91 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.vcenter" msgstr "تراز کردن مرکز عمودی (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:104 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.vdistribute" msgstr "توزیع فاصله عمودی (%s)" #: src/app/main/ui/workspace/sidebar/assets.cljs -#, unused msgid "workspace.assets.assets" msgstr "دارایی‌ها" -#: src/app/main/ui/workspace/sidebar/assets.cljs:134 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.box-filter-all" msgstr "تمام دارایی‌ها" -#: src/app/main/ui/dashboard/grid.cljs:130, src/app/main/ui/dashboard/grid.cljs:162, src/app/main/ui/workspace/sidebar/assets/colors.cljs:485, src/app/main/ui/workspace/sidebar/assets.cljs:150 +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.colors" msgstr "رنگ‌ها" -#: src/app/main/ui/dashboard/grid.cljs:126, src/app/main/ui/dashboard/grid.cljs:141, src/app/main/ui/workspace/sidebar/assets/components.cljs:513, src/app/main/ui/workspace/sidebar/assets.cljs:139 +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.components" msgstr "کامپوننت‌ها" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:131 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.create-group" msgstr "ایجاد یک گروه" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:142 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.create-group-hint" msgstr "آیتم‌های شما به طور خودکار به عنوان \"نام گروه / نام آیتم\" نامگذاری می‌شوند" -#: src/app/main/ui/workspace/context_menu.cljs:529, src/app/main/ui/workspace/sidebar/assets/colors.cljs:251, src/app/main/ui/workspace/sidebar/assets/components.cljs:577, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:424, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:443 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.delete" msgstr "حذف" -#: src/app/main/ui/workspace/context_menu.cljs:534, src/app/main/ui/workspace/sidebar/assets/components.cljs:572 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.duplicate" msgstr "تکثیر" -#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:247, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:439 +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.edit" msgstr "ویرایش" -#: src/app/main/ui/workspace/sidebar/assets/graphics.cljs:384, src/app/main/ui/workspace/sidebar/assets.cljs:145 +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.graphics" msgstr "گرافیک" -#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:255, src/app/main/ui/workspace/sidebar/assets/components.cljs:581, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:428, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:448 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.group" msgstr "گروه" -#: src/app/main/ui/workspace/sidebar/assets.cljs:168 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.libraries" msgstr "کتابخانه‌ها" -#: src/app/main/ui/workspace/context_menu.cljs:532, src/app/main/ui/workspace/sidebar/assets/colors.cljs:243, src/app/main/ui/workspace/sidebar/assets/components.cljs:566, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:421, src/app/main/ui/workspace/sidebar/assets/groups.cljs:63, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:434 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.rename" msgstr "تغییرنام" -#: src/app/main/ui/dashboard/grid.cljs:134, src/app/main/ui/dashboard/grid.cljs:189, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:397, src/app/main/ui/workspace/sidebar/assets.cljs:155 +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.typography" msgstr "تایپوگرافی‌ها" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused msgid "workspace.assets.typography.font-id" msgstr "فونت" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:505 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.font-size" msgstr "اندازه" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:501 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.font-variant-id" msgstr "گونه" -#: src/app/main/ui/dashboard/grid.cljs:199, src/app/main/ui/workspace/libraries.cljs:461, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:464, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:489, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:596, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:615 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, +#: src/app/main/ui/handoff/attributes/text.cljs, +#: src/app/main/ui/handoff/attributes/text.cljs msgid "workspace.assets.typography.sample" msgstr "مثال" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:517 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.text-transform" msgstr "تبدیل متن" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:66 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.ungroup" msgstr "حذف گروه" -#, unused msgid "workspace.focus.selection" msgstr "انتخاب" -#: src/app/main/ui/workspace/main_menu.cljs:367 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.hide-textpalette" msgstr "پنهان کردن پالت فونت‌ها" -#: src/app/main/ui/workspace/main_menu.cljs:731 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.edit" msgstr "ویرایش" -#: src/app/main/ui/workspace/main_menu.cljs:720 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.file" msgstr "فایل" -#: src/app/main/ui/workspace/main_menu.cljs:753 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.preferences" msgstr "اولویت‌ها" -#: src/app/main/ui/workspace/main_menu.cljs:742 +#: src/app/main/ui/workspace/header.cljs +#, fuzzy msgid "workspace.header.menu.option.view" msgstr "بازدید" -#: src/app/main/ui/workspace/main_menu.cljs:368 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.show-textpalette" msgstr "نمایش پالت فونت‌ها" -#: src/app/main/ui/viewer/header.cljs:98, src/app/main/ui/workspace/right_header.cljs:120 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.reset-zoom" msgstr "بازنشانی" #: src/app/main/ui/workspace/header.cljs -#, unused msgid "workspace.header.save-error" msgstr "خطا در ذخیره" -#: src/app/main/ui/workspace/right_header.cljs:52 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.saved" msgstr "ذخیره‌شد" #: src/app/main/ui/workspace/header.cljs -#, unused +#, fuzzy msgid "workspace.header.saving" msgstr "ذخیره‌کردن" -#: src/app/main/ui/workspace/right_header.cljs:42, src/app/main/ui/workspace/right_header.cljs:47 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.unsaved" msgstr "تغییرات ذخیره نشده" #: src/app/main/ui/workspace/libraries.cljs -#, unused msgid "workspace.libraries.add" msgstr "افزودن" #: src/app/main/ui/workspace/colorpicker.cljs -#, unused msgid "workspace.libraries.colors.hsv" msgstr "HSV" #: src/app/main/ui/workspace/colorpicker.cljs -#, unused msgid "workspace.libraries.colors.rgba" msgstr "RGBA" -#: src/app/main/ui/workspace/colorpicker.cljs:372 +#: src/app/main/ui/workspace/colorpicker.cljs msgid "workspace.libraries.colors.save-color" msgstr "ذخیره استایل رنگ" -#: src/app/main/ui/workspace/libraries.cljs:526, src/app/main/ui/workspace/libraries.cljs:531 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.libraries" msgstr "کتابخانه‌ها" #: src/app/main/ui/workspace/libraries.cljs -#, unused msgid "workspace.libraries.library" msgstr "کتابخانه" -#: src/app/main/ui/workspace/libraries.cljs:380 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.no-libraries-need-sync" msgstr "هیچ کتابخانه مشترکی وجود ندارد که نیاز به به‌روزرسانی داشته باشد" -#: src/app/main/ui/workspace/libraries.cljs:296 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.no-shared-libraries-available" msgstr "هیچ کتابخانه مشترکی در دسترس نیست" -#: src/app/main/ui/workspace/libraries.cljs:260 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.search-shared-libraries" msgstr "جستجوی کتابخانه‌های مشترک" -#: src/app/main/ui/workspace/libraries.cljs:256 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.shared-libraries" msgstr "کتابخانه‌های مشترک" -#: src/app/main/ui/workspace/libraries.cljs:402 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.update" msgstr "به‌روزرسانی" -#: src/app/main/ui/workspace/libraries.cljs:536 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.updates" msgstr "به‌روزرسانی‌ها" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:86, src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:102 +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs msgid "workspace.options.blur-options.title" msgstr "محو" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:600, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:605 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs msgid "workspace.options.component" msgstr "کامپوننت" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:163 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints" msgstr "محدودیت‌ها" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:150 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.bottom" msgstr "پایین" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:141, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:152 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.center" msgstr "مرکز" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:138 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.left" msgstr "چپ" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:139 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.right" msgstr "راست" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:142, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:153 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.scale" msgstr "مقیاس" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:149 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.top" msgstr "بالا" -#: src/app/main/ui/workspace/sidebar/options.cljs:112 +#: src/app/main/ui/workspace/sidebar/options.cljs msgid "workspace.options.design" msgstr "طراحی" -#: src/app/main/ui/viewer/inspect/exports.cljs:139 +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, +#: src/app/main/ui/inspect/exports.cljs msgid "workspace.options.export" msgstr "اکسپورت" -#: src/app/main/ui/viewer/inspect/exports.cljs:178, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:219 +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs msgid "workspace.options.export.suffix" msgstr "پسوند" -#: src/app/main/ui/export.cljs:172, src/app/main/ui/export.cljs:241, src/app/main/ui/viewer/inspect/exports.cljs:194, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:236 +#: 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.exporting-object" msgstr "درحال گرفتن خروجی…" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:49, src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:174 +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs msgid "workspace.options.fill" msgstr "پر" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:29 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.auto" msgstr "خودکار" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:157 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.column" msgstr "ستون‌ها" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:196, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:237 msgid "workspace.options.grid.params.color" msgstr "رنگ" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.params.columns" msgstr "ستون‌ها" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:246 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.height" msgstr "ارتفاع" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:270 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.margin" msgstr "لبه" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.params.rows" msgstr "ردیف‌ها" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:216, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:290 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, fuzzy msgid "workspace.options.grid.params.set-default" msgstr "تنظیم به عنوان پیش‌فرض" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.params.size" msgstr "اندازه" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.params.type" msgstr "نوع" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:231 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.bottom" msgstr "پایین" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:229 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.center" msgstr "مرکز" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:228 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.left" msgstr "چپ" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:232 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.right" msgstr "راست" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:227 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.top" msgstr "بالا" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:247 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.width" msgstr "پهنا" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:158 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.row" msgstr "ردیف‌ها" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:156 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.square" msgstr "مربع" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:406 msgid "workspace.options.height" msgstr "بلندی" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:468 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-action" msgstr "عمل" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:614 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-animation" msgstr "انیمیشن" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:406 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#, fuzzy msgid "workspace.options.interaction-animation-dissolve" msgstr "حل کردن" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:405 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-animation-none" msgstr "هیچ‌یک" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:412 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-animation-push" msgstr "هل" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:407 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-animation-slide" msgstr "اسلاید" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:456 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-delay" msgstr "تاخیر" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:478 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-destination" msgstr "مقصد" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:661 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-duration" msgstr "مدت‌زمان" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:674 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing" msgstr "تسهیل" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:416 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing-ease" msgstr "سهولت" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:415 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing-linear" msgstr "خطی" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -#, unused msgid "workspace.options.interaction-in" msgstr "در" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:458, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:459, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:464, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:663, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:665, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:669 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-ms" msgstr "م‌ث" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:51, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:53, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:55, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:380 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-none" msgstr "(تنظیم نشده)" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -#, unused msgid "workspace.options.interaction-out" msgstr "خارج" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:397 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-center" msgstr "مرکز" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:396 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-manual" msgstr "دستی" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:524 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-position" msgstr "موقعیت" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:57, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:379, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:393, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:394 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-self" msgstr "خود" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:503 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-url" msgstr "URL" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:137 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.color" msgstr "رنگ" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:124 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#, fuzzy msgid "workspace.options.layer-options.blend-mode.darken" msgstr "تاریک" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:133 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.difference" msgstr "تفاوت" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:135 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#, fuzzy msgid "workspace.options.layer-options.blend-mode.hue" msgstr "رنگ" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:127 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#, fuzzy msgid "workspace.options.layer-options.blend-mode.lighten" msgstr "روشن کردن" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:138 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#, fuzzy msgid "workspace.options.layer-options.blend-mode.luminosity" msgstr "درخشندگی" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:125 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +#, fuzzy msgid "workspace.options.layer-options.blend-mode.multiply" msgstr "تکثیر" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:123 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.normal" msgstr "معمولی" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:136 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.saturation" msgstr "اشباع" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:128 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.screen" msgstr "صفحه نمایش" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -#, unused msgid "workspace.options.layer-options.title" msgstr "لایه" -#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.position" msgstr "موقعیت" -#: src/app/main/ui/workspace/sidebar/options.cljs:157 +#: src/app/main/ui/workspace/sidebar/options.cljs msgid "workspace.options.prototype" msgstr "پروتوتایپ" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:469, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:481 +#, fuzzy msgid "workspace.options.radius" msgstr "گردی" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:183 msgid "workspace.options.recent-fonts" msgstr "اخیر" -#: src/app/main/ui/export.cljs:284 +#: 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 "تلاش دوباره" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:451 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.rotation" msgstr "چرخش" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:741 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#, fuzzy msgid "workspace.options.select-a-shape" msgstr "یک شکل، برد یا گروه را برای کشیدن اتصال به تابلوی دیگر انتخاب کنید." -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:40, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:198, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:200 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.blur" msgstr "محو" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:38, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:186 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.offsetx" msgstr "X" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:39, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:224 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.offsety" msgstr "Y" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:296 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.title" msgstr "سایه" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:162 +#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.size" msgstr "اندازه" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:43 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#, fuzzy msgid "workspace.options.stroke" msgstr "استروک" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:124 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.none" msgstr "هیچ‌یک" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:132 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.round" msgstr "گردی" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:133 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.square" msgstr "مربع" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:87 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.center" msgstr "مرکز" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:105 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.dashed" msgstr "نقطه‌چین" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:104 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.dotted" msgstr "خط‌چین" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:88 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.inner" msgstr "داخل" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:106 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.mixed" msgstr "مخلوط" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:89 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.outer" msgstr "خارج" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:115 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.align-bottom" msgstr "تراز پایین" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:111 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.align-middle" msgstr "تراز وسط" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:107 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.align-top" msgstr "تراز بالا" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:82 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.direction-ltr" msgstr "LTR" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:87 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.direction-rtl" msgstr "RTL" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:149 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.grow-auto-height" msgstr "ارتفاع خودکار" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:145 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.grow-auto-width" msgstr "عرض خودکار" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:141 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.grow-fixed" msgstr "درست شد" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:381 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.options.text-options.letter-spacing" msgstr "فاصله بین حروف" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:364 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.options.text-options.line-height" msgstr "ارتفاع خط" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused msgid "workspace.options.text-options.lowercase" msgstr "حروف کوچک" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.options.text-options.none" msgstr "هیچ‌یک" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:51 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#, fuzzy msgid "workspace.options.text-options.text-align-center" msgstr "تراز در مرکز (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:47 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.text-align-left" msgstr "تراز چپ (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:55 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.text-align-right" msgstr "تراز راست (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:189 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.title" msgstr "متن" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:188 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#, fuzzy msgid "workspace.options.text-options.title-group" msgstr "متن گروهی" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:187 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.title-selection" msgstr "متن انتخابی" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:171 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.underline" msgstr "خط‌زیر (%s)" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused msgid "workspace.options.text-options.uppercase" msgstr "حروف بزرگ" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:745 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.use-play-button" msgstr "از دکمه پخش در هدر برای اجرای نمای پروتوتایپ استفاده کنید." -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:395 msgid "workspace.options.width" msgstr "پهنا" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:427 msgid "workspace.options.x" msgstr "X" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:438 msgid "workspace.options.y" msgstr "Y" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:167 msgid "workspace.path.actions.add-node" msgstr "افزودن گره (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:174 msgid "workspace.path.actions.delete-node" msgstr "حذف گره (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:182 msgid "workspace.path.actions.merge-nodes" msgstr "ادغام گره‌ها (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:159 +#, fuzzy msgid "workspace.path.actions.move-nodes" msgstr "انتقال گره‌ها (%s)" -#: src/app/main/ui/workspace/context_menu.cljs:193 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.back" msgstr "فرستادن به پشت" -#: src/app/main/ui/workspace/context_menu.cljs:190 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.backward" msgstr "فرستادن به عقب" -#: src/app/main/ui/workspace/context_menu.cljs:139 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.copy" msgstr "کپی" -#: src/app/main/ui/workspace/context_menu.cljs:465 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.create-component" msgstr "ایجاد کامپوننت" -#: src/app/main/ui/workspace/context_menu.cljs:142 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.cut" msgstr "برش" -#: src/app/main/ui/workspace/context_menu.cljs:486 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.delete" msgstr "حذف" -#: src/app/main/ui/workspace/context_menu.cljs:335, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:75 msgid "workspace.shape.menu.difference" msgstr "تفاوت" -#: src/app/main/ui/workspace/context_menu.cljs:148 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.duplicate" msgstr "تکرار" -#: src/app/main/ui/workspace/context_menu.cljs:321 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.edit" msgstr "ویزایش" -#: src/app/main/ui/workspace/context_menu.cljs:348, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:89 msgid "workspace.shape.menu.flatten" msgstr "صاف" -#: src/app/main/ui/workspace/context_menu.cljs:208 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.flip-horizontal" msgstr "حرکت افقی" -#: src/app/main/ui/workspace/context_menu.cljs:204 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.flip-vertical" msgstr "چرخش عمودی" -#: src/app/main/ui/workspace/context_menu.cljs:394 +#: src/app/main/ui/workspace/context_menu.cljs +#, fuzzy msgid "workspace.shape.menu.flow-start" msgstr "شروع فلو" -#: src/app/main/ui/workspace/context_menu.cljs:184 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.forward" msgstr "جلو بیاورید" -#: src/app/main/ui/workspace/context_menu.cljs:187 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.front" msgstr "به جلو بیاورید" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.go-main" msgstr "به فایل کامپوننت اصلی بروید" -#: src/app/main/ui/workspace/context_menu.cljs:261 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.group" msgstr "گروه" -#: src/app/main/ui/workspace/context_menu.cljs:363, src/app/main/ui/workspace/sidebar/layer_item.cljs:145 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.hide" msgstr "مخفی" -#: src/app/main/ui/workspace/context_menu.cljs:548, src/app/main/ui/workspace/main_menu.cljs:408 msgid "workspace.shape.menu.hide-ui" msgstr "نمایش/پنهان کردن رابط کاربری" -#: src/app/main/ui/workspace/context_menu.cljs:338 +#, fuzzy msgid "workspace.shape.menu.intersection" msgstr "تقاطع" -#: src/app/main/ui/workspace/context_menu.cljs:371, src/app/main/ui/workspace/sidebar/layer_item.cljs:153 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.lock" msgstr "قفل" -#: src/app/main/ui/workspace/context_menu.cljs:266 +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.mask" msgstr "ماسک" -#: src/app/main/ui/workspace/context_menu.cljs:145, src/app/main/ui/workspace/context_menu.cljs:545 +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.paste" msgstr "چسباندن" -#: src/app/main/ui/workspace/context_menu.cljs:331 msgid "workspace.shape.menu.path" msgstr "مسیر" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:439 msgid "workspace.shape.menu.restore-main" msgstr "بازیابی کامپوننت اصلی" -#: src/app/main/ui/workspace/context_menu.cljs:174 +#: src/app/main/ui/workspace/context_menu.cljs +#, fuzzy msgid "workspace.shape.menu.select-layer" msgstr "انتخاب لایه" -#: src/app/main/ui/workspace/context_menu.cljs:360, src/app/main/ui/workspace/sidebar/layer_item.cljs:144 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.show" msgstr "نمایش" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:424 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs +#, fuzzy msgid "workspace.shape.menu.show-in-assets" msgstr "نمایش در پنل دارایی" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:442, src/app/main/ui/workspace/sidebar/assets/components.cljs:586 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.show-main" msgstr "نمایش کامپوننت اصلی" -#: src/app/main/ui/workspace/context_menu.cljs:221 msgid "workspace.shape.menu.thumbnail-remove" msgstr "حذف تصویر کوچک" -#: src/app/main/ui/workspace/context_menu.cljs:223 msgid "workspace.shape.menu.thumbnail-set" msgstr "تنظیم بعنوان تصویر کوچک" -#: src/app/main/ui/workspace/context_menu.cljs:326 msgid "workspace.shape.menu.transform-to-path" msgstr "تبدیل به مسیر" -#: src/app/main/ui/workspace/context_menu.cljs:257 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.ungroup" msgstr "حذف گروه" -#: src/app/main/ui/workspace/context_menu.cljs:332, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:70 +#, fuzzy msgid "workspace.shape.menu.union" msgstr "متحد" -#: src/app/main/ui/workspace/context_menu.cljs:368, src/app/main/ui/workspace/sidebar/layer_item.cljs:152 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.unlock" msgstr "بازکردن قفل" -#: src/app/main/ui/workspace/context_menu.cljs:271 +#: src/app/main/ui/workspace/context_menu.cljs +#, fuzzy msgid "workspace.shape.menu.unmask" msgstr "حذف ماسک" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.update-components-in-bulk" msgstr "به‌روزرسانی کامپوننت‌های اصلی" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:445 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.update-main" msgstr "به‌روزرسانی کامپوننت اصلی" -#: src/app/main/ui/workspace/sidebar/collapsable_button.cljs:26 msgid "workspace.sidebar.expand" msgstr "گسترش نوار کناری" -#: src/app/main/ui/workspace/right_header.cljs:231, src/app/main/ui/workspace/right_header.cljs:232 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.sidebar.history" msgstr "تاریخچه (%s)" -#: src/app/main/ui/workspace/sidebar/layers.cljs:522, src/app/main/ui/workspace/sidebar.cljs:100 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.sidebar.layers" msgstr "لایه‌ها" -#: src/app/main/ui/workspace/sidebar/layers.cljs:308, src/app/main/ui/workspace/sidebar/layers.cljs:380 msgid "workspace.sidebar.layers.components" msgstr "کامپوننت‌ها" -#: src/app/main/ui/workspace/sidebar/layers.cljs:305, src/app/main/ui/workspace/sidebar/layers.cljs:338 msgid "workspace.sidebar.layers.frames" msgstr "آرت‌بوردها" -#: src/app/main/ui/workspace/sidebar/layers.cljs:306, src/app/main/ui/workspace/sidebar/layers.cljs:352 msgid "workspace.sidebar.layers.groups" msgstr "گروه‌ها" -#: src/app/main/ui/workspace/sidebar/layers.cljs:310, src/app/main/ui/workspace/sidebar/layers.cljs:408 msgid "workspace.sidebar.layers.images" msgstr "تصاویر" -#: src/app/main/ui/workspace/sidebar/layers.cljs:307, src/app/main/ui/workspace/sidebar/layers.cljs:366 msgid "workspace.sidebar.layers.masks" msgstr "ماسک‌ها" -#: src/app/main/ui/workspace/sidebar/layers.cljs:289 msgid "workspace.sidebar.layers.search" msgstr "جستجوی لایه‌ها" -#: src/app/main/ui/workspace/sidebar/layers.cljs:311, src/app/main/ui/workspace/sidebar/layers.cljs:422 msgid "workspace.sidebar.layers.shapes" msgstr "شکل‌ها" -#: src/app/main/ui/workspace/sidebar/layers.cljs:309, src/app/main/ui/workspace/sidebar/layers.cljs:394 msgid "workspace.sidebar.layers.texts" msgstr "متن‌ها" -#: src/app/main/ui/viewer/inspect/attributes/svg.cljs:56, src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs:91 +#: src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs, +#: src/app/main/ui/handoff/attributes/svg.cljs +#, fuzzy msgid "workspace.sidebar.options.svg-attrs.title" msgstr "ویژگی‌های SVG ایمپورت شد" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs:217 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs msgid "workspace.sidebar.sitemap" msgstr "صفحات" -#: src/app/main/ui/workspace/left_header.cljs:91 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.sitemap" msgstr "نقشه سایت" -#: src/app/main/ui/workspace/sidebar.cljs:120 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.assets" msgstr "دارایی‌ها" -#: src/app/main/ui/workspace/palette.cljs:165, src/app/main/ui/workspace/palette.cljs:166 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.color-palette" msgstr "پالت رنگ (%s)" -#: src/app/main/ui/workspace/right_header.cljs:220, src/app/main/ui/workspace/right_header.cljs:221 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.comments" msgstr "نظرات (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:180, src/app/main/ui/workspace/top_toolbar.cljs:181 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.curve" msgstr "منحنی (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:160, src/app/main/ui/workspace/top_toolbar.cljs:161 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.ellipse" msgstr "بیضی (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:142, src/app/main/ui/workspace/top_toolbar.cljs:143 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.frame" msgstr "آرت‌بورد (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:59, src/app/main/ui/workspace/top_toolbar.cljs:60 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.image" msgstr "تصویر (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:132, src/app/main/ui/workspace/top_toolbar.cljs:133 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.move" msgstr "انتقال (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:189, src/app/main/ui/workspace/top_toolbar.cljs:190 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.path" msgstr "مسیر (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:151, src/app/main/ui/workspace/top_toolbar.cljs:152 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.rect" msgstr "مستطیل (%s)" #: src/app/main/ui/workspace/left_toolbar.cljs -#, unused msgid "workspace.toolbar.shortcuts" msgstr "میانبرها (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:169, src/app/main/ui/workspace/top_toolbar.cljs:170 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.text" msgstr "متن (%s)" -#: src/app/main/ui/workspace/palette.cljs:173, src/app/main/ui/workspace/palette.cljs:174 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.text-palette" msgstr "تایپوگرافی‌ها (%s)" -#: src/app/main/ui/workspace/sidebar/history.cljs:342 +#: src/app/main/ui/workspace/sidebar/history.cljs +#, fuzzy msgid "workspace.undo.empty" msgstr "هیچ تاریخچه تغییری تاکنون وجود ندارد" -#: src/app/main/ui/workspace/sidebar/history.cljs:147 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.entry.delete" msgstr "%s حذف شد" -#: src/app/main/ui/workspace/sidebar/history.cljs:146 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.entry.modify" msgstr "اصلاح شد %s" -#: src/app/main/ui/workspace/sidebar/history.cljs:111 msgid "workspace.undo.entry.multiple.circle" msgstr "دایره‌ها" -#: src/app/main/ui/workspace/sidebar/history.cljs:112 msgid "workspace.undo.entry.multiple.color" msgstr "دارایی‌های رنگ" -#: src/app/main/ui/workspace/sidebar/history.cljs:113 msgid "workspace.undo.entry.multiple.component" msgstr "کامپوننت‌ها" -#: src/app/main/ui/workspace/sidebar/history.cljs:114 msgid "workspace.undo.entry.multiple.curve" msgstr "منحنی‌ها" -#: src/app/main/ui/workspace/sidebar/history.cljs:115 msgid "workspace.undo.entry.multiple.frame" msgstr "آرت‌بورد" -#: src/app/main/ui/workspace/sidebar/history.cljs:116 msgid "workspace.undo.entry.multiple.group" msgstr "گروه‌ها" -#: src/app/main/ui/workspace/sidebar/history.cljs:117 msgid "workspace.undo.entry.multiple.media" msgstr "دارایی‌های گرافیکی" -#: src/app/main/ui/workspace/sidebar/history.cljs:118 msgid "workspace.undo.entry.multiple.multiple" msgstr "اشیاء" -#: src/app/main/ui/workspace/sidebar/history.cljs:119 msgid "workspace.undo.entry.multiple.page" msgstr "صفحات" -#: src/app/main/ui/workspace/sidebar/history.cljs:120 msgid "workspace.undo.entry.multiple.path" msgstr "مسیرها" -#: src/app/main/ui/workspace/sidebar/history.cljs:121 msgid "workspace.undo.entry.multiple.rect" msgstr "مستطیل‌ها" -#: src/app/main/ui/workspace/sidebar/history.cljs:122 msgid "workspace.undo.entry.multiple.shape" msgstr "شکل‌ها" -#: src/app/main/ui/workspace/sidebar/history.cljs:123 msgid "workspace.undo.entry.multiple.text" msgstr "متن‌ها" -#: src/app/main/ui/workspace/sidebar/history.cljs:124 msgid "workspace.undo.entry.multiple.typography" msgstr "دارایی‌های تایپوگرافی" -#: src/app/main/ui/workspace/sidebar/history.cljs:145 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.entry.new" msgstr "%s جدید" -#: src/app/main/ui/workspace/sidebar/history.cljs:125 msgid "workspace.undo.entry.single.circle" msgstr "دایره" -#: src/app/main/ui/workspace/sidebar/history.cljs:126 msgid "workspace.undo.entry.single.color" msgstr "دارایی رنگ" -#: src/app/main/ui/workspace/sidebar/history.cljs:127 msgid "workspace.undo.entry.single.component" msgstr "کامپوننت" -#: src/app/main/ui/workspace/sidebar/history.cljs:128 msgid "workspace.undo.entry.single.curve" msgstr "منحنی" -#: src/app/main/ui/workspace/sidebar/history.cljs:129 msgid "workspace.undo.entry.single.frame" msgstr "آرت‌بورد" -#: src/app/main/ui/workspace/sidebar/history.cljs:130 msgid "workspace.undo.entry.single.group" msgstr "گروه" -#: src/app/main/ui/workspace/sidebar/history.cljs:131 msgid "workspace.undo.entry.single.image" msgstr "تصویر" -#: src/app/main/ui/workspace/sidebar/history.cljs:132 msgid "workspace.undo.entry.single.media" msgstr "دارایی گرافیکی" -#: src/app/main/ui/workspace/sidebar/history.cljs:133 msgid "workspace.undo.entry.single.multiple" msgstr "شیء" -#: src/app/main/ui/workspace/sidebar/history.cljs:134 msgid "workspace.undo.entry.single.page" msgstr "صفحه" -#: src/app/main/ui/workspace/sidebar/history.cljs:135 msgid "workspace.undo.entry.single.path" msgstr "مسیر" -#: src/app/main/ui/workspace/sidebar/history.cljs:136 msgid "workspace.undo.entry.single.rect" msgstr "مستطیل" -#: src/app/main/ui/workspace/sidebar/history.cljs:137 msgid "workspace.undo.entry.single.shape" msgstr "شکل" -#: src/app/main/ui/workspace/sidebar/history.cljs:138 msgid "workspace.undo.entry.single.text" msgstr "متن" -#: src/app/main/ui/workspace/sidebar/history.cljs:139 msgid "workspace.undo.entry.single.typography" msgstr "دارایی‌های تایپوگرافی" -#: src/app/main/ui/workspace/sidebar/history.cljs:149 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.entry.unknown" msgstr "عملیات بیش‌از %s" -#: src/app/main/ui/workspace/sidebar/history.cljs:335 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.title" msgstr "تاریخچه" -#: src/app/main/data/workspace/libraries.cljs:1094 +#: src/app/main/data/workspace/libraries.cljs msgid "workspace.updates.dismiss" msgstr "رد" -#: src/app/main/data/workspace/libraries.cljs:1090 +#: src/app/main/data/workspace/libraries.cljs msgid "workspace.updates.there-are-updates" msgstr "به‌روزرسانی در کتابخانه‌های مشترک وجود دارد" -#: src/app/main/data/workspace/libraries.cljs:1097 +#: src/app/main/data/workspace/libraries.cljs msgid "workspace.updates.update" msgstr "به‌روزرسانی" -#, unused msgid "workspace.viewport.click-to-close-path" msgstr "برای بستن مسیر کلیک کنید" diff --git a/frontend/translations/fin_FI.po b/frontend/translations/fin_FI.po index 8b8513924b..48be1617c6 100644 --- a/frontend/translations/fin_FI.po +++ b/frontend/translations/fin_FI.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "PO-Revision-Date: 2024-06-17 08:07+0000\n" "Last-Translator: Anonymous \n" -"Language-Team: Finnish " -"\n" +"Language-Team: Finnish \n" "Language: fin_FI\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" @@ -11,256 +11,234 @@ msgstr "" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 5.6-dev\n" -#: src/app/main/ui/auth/register.cljs:151, src/app/main/ui/viewer/login.cljs:104 +#: src/app/main/ui/auth/register.cljs msgid "auth.already-have-account" msgstr "Onko sinulla jo käyttäjä?" -#: src/app/main/ui/auth/register.cljs:299 +#: src/app/main/ui/auth/register.cljs msgid "auth.check-your-email" msgstr "" "Tarkista sähköpostisi ja paina vahvistuslinkkiä käyttääksesi " "Penpot-ohjelmaa." -#: src/app/main/ui/auth/recovery.cljs:78 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.confirm-password" msgstr "Vahvista salasana" -#: src/app/main/ui/auth/register.cljs:163 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.create-demo-account" msgstr "Luo testikäyttäjä" #: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs -#, unused msgid "auth.create-demo-profile" msgstr "Haluatko vain kokeilla?" -#: src/app/main/ui/auth/login.cljs:43 +#: src/app/main/ui/auth/register.cljs msgid "auth.demo-warning" msgstr "" "Tämä on DEMO versio, ÄLÄ KÄYTÄ oikeaan työhön, projektit tullaan määräajoin " "poistamaan." -#: src/app/main/ui/auth/login.cljs:189, src/app/main/ui/viewer/login.cljs:90 +#: src/app/main/ui/auth/login.cljs msgid "auth.forgot-password" msgstr "Unohditko salasanasi?" -#: src/app/main/ui/auth/register.cljs:254 +#: src/app/main/ui/auth/register.cljs msgid "auth.fullname" msgstr "Koko nimi" -#: src/app/main/ui/auth/register.cljs:155, src/app/main/ui/viewer/login.cljs:107 +#: src/app/main/ui/auth/register.cljs +#, fuzzy msgid "auth.login-here" msgstr "Kirjaudu sisään" -#: src/app/main/ui/auth/login.cljs:195 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-submit" msgstr "Kirjaudu" -#: src/app/main/ui/auth/login.cljs:222 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-github-submit" msgstr "GitHub" -#: src/app/main/ui/auth/login.cljs:228 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-gitlab-submit" msgstr "GitLab" -#: src/app/main/ui/auth/login.cljs:216 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-google-submit" msgstr "Google" -#: src/app/main/ui/auth/login.cljs:201 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-ldap-submit" msgstr "LDAP" -#: src/app/main/ui/auth/login.cljs:234, src/app/main/ui/auth/login.cljs:255 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-oidc-submit" msgstr "OpenID" -#: src/app/main/ui/auth/recovery.cljs:71 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.new-password" msgstr "Syötä uusi salasana" -#: src/app/main/ui/auth/recovery.cljs:42 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.notifications.invalid-token-error" msgstr "Palautustunnus on virheellinen." -#: src/app/main/ui/auth/recovery.cljs:46 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.notifications.password-changed-successfully" msgstr "Salasanan vaihto onnistui" -#: src/app/main/ui/auth/recovery_request.cljs:57 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.notifications.profile-not-verified" msgstr "Käyttäjäsi ei ole vahvistettu, vahvista se jatkaaksesi." -#: src/app/main/ui/auth/recovery_request.cljs:40 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.notifications.recovery-token-sent" msgstr "Salasanan vaihtoon tarvittava linkki lähetetty sähköpostiisi." -#: src/app/main/ui/auth/verify_token.cljs:47 +#: src/app/main/ui/auth/verify_token.cljs msgid "auth.notifications.team-invitation-accepted" msgstr "Ryhmään liittyminen onnistui" -#: src/app/main/ui/auth/login.cljs:179, src/app/main/ui/auth/register.cljs:115 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.password" msgstr "Salasana" -#: src/app/main/ui/auth/register.cljs:114 +#: src/app/main/ui/auth/register.cljs msgid "auth.password-length-hint" msgstr "Vähintään 8 merkkiä" -#: src/app/main/ui/auth.cljs:41 msgid "auth.privacy-policy" msgstr "Tietosuojaseloste" -#: src/app/main/ui/auth/recovery_request.cljs:88 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-submit" msgstr "Palauta salasana" -#: src/app/main/ui/auth/recovery_request.cljs:101 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-subtitle" msgstr "Lähetämme sinulle sähköpostin, jossa lukee ohjeet" -#: src/app/main/ui/auth/recovery_request.cljs:100 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-title" msgstr "Unohtuiko salasana?" -#: src/app/main/ui/auth/recovery.cljs:82 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.recovery-submit" msgstr "Vaihda salasanasi" -#: src/app/main/ui/auth/login.cljs:298, src/app/main/ui/viewer/login.cljs:93 +#: src/app/main/ui/auth/login.cljs msgid "auth.register" msgstr "Ei käyttäjää?" -#: src/app/main/ui/auth/login.cljs:302, src/app/main/ui/auth/register.cljs:121, src/app/main/ui/auth/register.cljs:263, src/app/main/ui/viewer/login.cljs:97 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.register-submit" msgstr "Luo uusi käyttäjä" -#: src/app/main/ui/auth/register.cljs:140 +#: src/app/main/ui/auth/register.cljs msgid "auth.register-title" msgstr "Luo uusi käyttäjä" #: src/app/main/ui/auth.cljs -#, unused msgid "auth.sidebar-tagline" msgstr "Avoimen lähdekoodin ratkaisu suunnitteluun ja prototyyppien valmistukseen." -#: src/app/main/ui/auth.cljs:33, src/app/main/ui/dashboard/sidebar.cljs:1022, src/app/main/ui/workspace/main_menu.cljs:150 msgid "auth.terms-of-service" msgstr "Käyttöehdot" -#: src/app/main/ui/auth/register.cljs:297 +#: src/app/main/ui/auth/register.cljs msgid "auth.verification-email-sent" msgstr "Lähetimme vahvistussähköpostin osoitteeseen" -#: src/app/main/ui/workspace/libraries.cljs:228 msgid "common.publish" msgstr "Julkaise" -#: src/app/main/ui/viewer/share_link.cljs:304, src/app/main/ui/viewer/share_link.cljs:314 msgid "common.share-link.all-users" msgstr "Kaikki Penpotin käyttäjät" -#: src/app/main/ui/viewer/share_link.cljs:198 msgid "common.share-link.confirm-deletion-link-description" msgstr "" "Oletko varma, että haluat poistaa tämän linkin? Sen jälkeen kukaan ei voi " "käyttää sitä" -#: src/app/main/ui/viewer/share_link.cljs:259, src/app/main/ui/viewer/share_link.cljs:289 msgid "common.share-link.current-tag" msgstr "(nykyinen)" -#: src/app/main/ui/viewer/share_link.cljs:207, src/app/main/ui/viewer/share_link.cljs:214 msgid "common.share-link.destroy-link" msgstr "Poista linkki" -#: src/app/main/ui/viewer/share_link.cljs:221 msgid "common.share-link.get-link" msgstr "Hanki linkki" -#: src/app/main/ui/viewer/share_link.cljs:139 msgid "common.share-link.link-copied-success" msgstr "Linkin kopiointi onnistui" -#: src/app/main/ui/viewer/share_link.cljs:231 msgid "common.share-link.manage-ops" msgstr "Muokkaa käyttöoikeuksia" -#: src/app/main/ui/viewer/share_link.cljs:277 msgid "common.share-link.page-shared" msgid_plural "common.share-link.page-shared" msgstr[0] "Yksi sivu jaettu" msgstr[1] "%s sivua jaettu" -#: src/app/main/ui/viewer/share_link.cljs:298 msgid "common.share-link.permissions-can-comment" msgstr "Voi kommentoida" -#: src/app/main/ui/viewer/share_link.cljs:308 msgid "common.share-link.permissions-can-inspect" msgstr "Voi tarkastella koodia" -#: src/app/main/ui/viewer/share_link.cljs:193 msgid "common.share-link.permissions-hint" msgstr "Kaikilla linkin saaneilla on käyttöoikeus" -#: src/app/main/ui/viewer/share_link.cljs:241 msgid "common.share-link.permissions-pages" msgstr "Sivut jaettu" -#: src/app/main/ui/viewer/share_link.cljs:183 msgid "common.share-link.placeholder" msgstr "Jaettava linkki ilmestyy tähän" -#: src/app/main/ui/viewer/share_link.cljs:303, src/app/main/ui/viewer/share_link.cljs:313 msgid "common.share-link.team-members" msgstr "Vain ryhmän jäsenet" -#: src/app/main/ui/viewer/share_link.cljs:171 msgid "common.share-link.title" msgstr "Jaa prototyypit" -#: src/app/main/ui/viewer/share_link.cljs:269 msgid "common.share-link.view-all" msgstr "Valitse kaikki" -#: src/app/main/ui/workspace/libraries.cljs:224 msgid "common.unpublish" msgstr "Peruuta julkaisu" -#: src/app/main/ui/dashboard/projects.cljs:85 +#: src/app/main/ui/dashboard/projects.cljs msgid "dasboard.team-hero.management" msgstr "Ryhmän hallinta" -#: src/app/main/ui/dashboard/projects.cljs:84 +#: src/app/main/ui/dashboard/projects.cljs +#, fuzzy msgid "dasboard.team-hero.text" msgstr "" "Penpot on tarkoitettu ryhmille. Kutsu jäseniä työstääksenne projekteja " "yhdessä" -#: src/app/main/ui/dashboard/projects.cljs:82 +#: src/app/main/ui/dashboard/projects.cljs +#, fuzzy msgid "dasboard.team-hero.title" msgstr "Ryhmäydy!" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.tutorial-hero.info" msgstr "" "Opettele Penpotin perusteet pitämällä hauskaa tämän opastuskierroksen " "kanssa." #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.tutorial-hero.start" msgstr "Aloita opastuskierros" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.tutorial-hero.title" msgstr "Käytännön opastus" #: src/app/main/ui/dashboard/projects.cljs -#, unused +#, fuzzy msgid "dasboard.walkthrough-hero.info" msgstr "Ota opastuskierros Penpotin erilaisista toiminnoista" diff --git a/frontend/translations/fo.po b/frontend/translations/fo.po index 535023a857..bb79b065bf 100644 --- a/frontend/translations/fo.po +++ b/frontend/translations/fo.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "PO-Revision-Date: 2024-06-17 08:07+0000\n" "Last-Translator: Anonymous \n" -"Language-Team: Faroese " -"\n" +"Language-Team: Faroese \n" "Language: fo\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" @@ -11,678 +11,629 @@ msgstr "" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 5.6-dev\n" -#: src/app/main/ui/auth/register.cljs:151, src/app/main/ui/viewer/login.cljs:104 +#: src/app/main/ui/auth/register.cljs msgid "auth.already-have-account" msgstr "Hevur tú longu ein brúkara?" -#: src/app/main/ui/auth/register.cljs:299 +#: src/app/main/ui/auth/register.cljs msgid "auth.check-your-email" msgstr "" "Kanna tín teldupost og trýst á leinkina fyri at vátta og byrja at nýta " "Penpot." -#: src/app/main/ui/auth/recovery.cljs:78 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.confirm-password" msgstr "Vátta loyniorðið" -#: src/app/main/ui/auth/register.cljs:163 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.create-demo-account" msgstr "Stovna royndarkonto" #: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs -#, unused msgid "auth.create-demo-profile" msgstr "Vilt tú royna tað?" -#: src/app/main/ui/auth/login.cljs:43 +#: src/app/main/ui/auth/register.cljs msgid "auth.demo-warning" msgstr "" "Hetta er ein ROYNDAR tænasta, IKKI BRÚKA til veruligt arbeiði, " "verkætlanirnar verða slettaðar regluliga." -#: src/app/main/ui/auth/login.cljs:189, src/app/main/ui/viewer/login.cljs:90 +#: src/app/main/ui/auth/login.cljs msgid "auth.forgot-password" msgstr "Gloymt loyniorðið?" -#: src/app/main/ui/auth/register.cljs:254 +#: src/app/main/ui/auth/register.cljs msgid "auth.fullname" msgstr "Fullfíggja navn" -#: src/app/main/ui/auth/register.cljs:155, src/app/main/ui/viewer/login.cljs:107 +#: src/app/main/ui/auth/register.cljs +#, fuzzy msgid "auth.login-here" msgstr "Innrita her" -#: src/app/main/ui/auth/login.cljs:195 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-submit" msgstr "Rita inn" -#: src/app/main/ui/auth/login.cljs:222 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-github-submit" msgstr "GitHub" -#: src/app/main/ui/auth/login.cljs:228 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-gitlab-submit" msgstr "GitLab" -#: src/app/main/ui/auth/login.cljs:216 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-google-submit" msgstr "Google" -#: src/app/main/ui/auth/login.cljs:201 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-ldap-submit" msgstr "LDAP" -#: src/app/main/ui/auth/login.cljs:234, src/app/main/ui/auth/login.cljs:255 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-oidc-submit" msgstr "OpenID" -#: src/app/main/ui/auth/recovery.cljs:71 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.new-password" msgstr "Skriva eitt nýtt loyniorð" -#: src/app/main/ui/auth/recovery.cljs:46 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.notifications.password-changed-successfully" msgstr "Loyniorðið er broytt" -#: src/app/main/ui/auth/recovery_request.cljs:57 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.notifications.profile-not-verified" msgstr "" "Vangamyndin er ikki váttað, vinarliga vátta vangamyndina áðrenn tú heldur " "áfram." -#: src/app/main/ui/auth/recovery_request.cljs:40 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.notifications.recovery-token-sent" msgstr "Leinkjan til at endurseta títt loyniorð er send til tín postkassa." -#: src/app/main/ui/auth/verify_token.cljs:47 +#: src/app/main/ui/auth/verify_token.cljs msgid "auth.notifications.team-invitation-accepted" msgstr "Sameinaðan í toymið var væleydnað" -#: src/app/main/ui/auth/login.cljs:179, src/app/main/ui/auth/register.cljs:115 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.password" msgstr "Loyniorð" -#: src/app/main/ui/auth/register.cljs:114 +#: src/app/main/ui/auth/register.cljs msgid "auth.password-length-hint" msgstr "Minst 8 stavir" -#: src/app/main/ui/auth.cljs:41 msgid "auth.privacy-policy" msgstr "Privat politikkur" -#: src/app/main/ui/auth/recovery_request.cljs:88 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-submit" msgstr "Endurstovna loyniorð" -#: src/app/main/ui/auth/recovery_request.cljs:101 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-subtitle" msgstr "Vit senda tær ein teldupost við vegleiðing" -#: src/app/main/ui/auth/recovery_request.cljs:100 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-title" msgstr "Gloymt loyniorð?" -#: src/app/main/ui/auth/recovery.cljs:82 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.recovery-submit" msgstr "Broyt títt loyniorð" -#: src/app/main/ui/auth/login.cljs:298, src/app/main/ui/viewer/login.cljs:93 +#: src/app/main/ui/auth/login.cljs msgid "auth.register" msgstr "Onga konto enn?" -#: src/app/main/ui/auth/login.cljs:302, src/app/main/ui/auth/register.cljs:121, src/app/main/ui/auth/register.cljs:263, src/app/main/ui/viewer/login.cljs:97 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.register-submit" msgstr "Stovna konto" -#: src/app/main/ui/auth/register.cljs:140 +#: src/app/main/ui/auth/register.cljs msgid "auth.register-title" msgstr "Stovna eina konto" -#: src/app/main/ui/auth.cljs:33, src/app/main/ui/dashboard/sidebar.cljs:1022, src/app/main/ui/workspace/main_menu.cljs:150 msgid "auth.terms-of-service" msgstr "Treytir" -#: src/app/main/ui/auth/register.cljs:297 +#: src/app/main/ui/auth/register.cljs msgid "auth.verification-email-sent" msgstr "Vit hava sent ein váttanar teldupost til" -#: src/app/main/ui/workspace/libraries.cljs:228 msgid "common.publish" msgstr "Gev út" -#: src/app/main/ui/viewer/share_link.cljs:304, src/app/main/ui/viewer/share_link.cljs:314 msgid "common.share-link.all-users" msgstr "Allir Penpot brúkarar" -#: src/app/main/ui/viewer/share_link.cljs:198 msgid "common.share-link.confirm-deletion-link-description" msgstr "" "Ert tú vís(ur) í, at tú vilt strika hetta leinkið? Gert tú tað, er tað ikki " "longur tøkt hjá nøkrum" -#: src/app/main/ui/viewer/share_link.cljs:259, src/app/main/ui/viewer/share_link.cljs:289 msgid "common.share-link.current-tag" msgstr "(núverandi)" -#: src/app/main/ui/viewer/share_link.cljs:207, src/app/main/ui/viewer/share_link.cljs:214 msgid "common.share-link.destroy-link" msgstr "Strika leinki" -#: src/app/main/ui/viewer/share_link.cljs:221 msgid "common.share-link.get-link" msgstr "Fá leinkið" -#: src/app/main/ui/viewer/share_link.cljs:139 msgid "common.share-link.link-copied-success" msgstr "Leinkið avritað" -#: src/app/main/ui/viewer/share_link.cljs:231 msgid "common.share-link.manage-ops" msgstr "Fyrisit heimildir" -#: src/app/main/ui/viewer/share_link.cljs:277 msgid "common.share-link.page-shared" msgid_plural "common.share-link.page-shared" msgstr[0] "1 síða deild" msgstr[1] "%s síður deildar" -#: src/app/main/ui/viewer/share_link.cljs:298 msgid "common.share-link.permissions-can-comment" msgstr "Kann viðmerkja" -#: src/app/main/ui/viewer/share_link.cljs:308 msgid "common.share-link.permissions-can-inspect" msgstr "Kann skoða kotu" -#: src/app/main/ui/viewer/share_link.cljs:193 msgid "common.share-link.permissions-hint" msgstr "Ein og hvør við leinkjuni hevur atgongd" -#: src/app/main/ui/viewer/share_link.cljs:241 msgid "common.share-link.permissions-pages" msgstr "Síður deildar" -#: src/app/main/ui/viewer/share_link.cljs:183 msgid "common.share-link.placeholder" msgstr "Leinkja, ið kann deilast, verur at síggja her" -#: src/app/main/ui/viewer/share_link.cljs:303, src/app/main/ui/viewer/share_link.cljs:313 msgid "common.share-link.team-members" msgstr "Einans limir í toymi" -#: src/app/main/ui/viewer/share_link.cljs:171 msgid "common.share-link.title" msgstr "Deil frumsnið" -#: src/app/main/ui/viewer/share_link.cljs:269 msgid "common.share-link.view-all" msgstr "Vel alt" -#: src/app/main/ui/workspace/libraries.cljs:224 msgid "common.unpublish" msgstr "Angra útgevan" -#: src/app/main/ui/dashboard/projects.cljs:85 +#: src/app/main/ui/dashboard/projects.cljs msgid "dasboard.team-hero.management" msgstr "Toymisleiðsla" -#: src/app/main/ui/dashboard/projects.cljs:84 +#: src/app/main/ui/dashboard/projects.cljs msgid "dasboard.team-hero.text" msgstr "Penpot er fyri toymum. Bjóða limum at arbeiða saman á verkætlanir og fílur" -#: src/app/main/ui/dashboard/projects.cljs:82 +#: src/app/main/ui/dashboard/projects.cljs msgid "dasboard.team-hero.title" msgstr "Toyma upp!" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.tutorial-hero.info" msgstr "" "Lær alt tað grundleggjandi í Penpot, meðan tú stuttleikar tær við hesari " "lær-og-ger leiðbeiningini." #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.tutorial-hero.start" msgstr "Byrja undirvísingina" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.tutorial-hero.title" msgstr "Lær-við-at-gera leiðbeining" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.walkthrough-hero.info" msgstr "Kom ein túr gjøgnum Penpot og lær høvuðsfunkurnar at kenna." #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.walkthrough-hero.start" msgstr "Byrja rundferð" -#: src/app/main/ui/dashboard/file_menu.cljs:291, src/app/main/ui/workspace/main_menu.cljs:572 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.add-shared" msgstr "Legg afturat sum Deilt Savn" -#: src/app/main/ui/settings/profile.cljs:75 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.change-email" msgstr "Broyt teldupost" -#: src/app/main/data/dashboard.cljs:762, src/app/main/data/dashboard.cljs:983 +#: src/app/main/data/dashboard.cljs, src/app/main/data/dashboard.cljs msgid "dashboard.copy-suffix" msgstr "(avrita)" -#: src/app/main/ui/dashboard/sidebar.cljs:338 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.create-new-team" msgstr "Stovna nýtt toymi" -#: src/app/main/ui/components/context_menu_a11y.cljs:256, src/app/main/ui/dashboard/sidebar.cljs:646 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.default-team-name" msgstr "Títt Penpot" -#: src/app/main/ui/dashboard/sidebar.cljs:571 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.delete-team" msgstr "Strika toymi" -#: src/app/main/ui/dashboard/file_menu.cljs:296, src/app/main/ui/workspace/main_menu.cljs:589 msgid "dashboard.download-binary-file" msgstr "Heinta Penpot fílu (.penpot)" -#: src/app/main/ui/dashboard/file_menu.cljs:300, src/app/main/ui/workspace/main_menu.cljs:597 msgid "dashboard.download-standard-file" msgstr "Heinta standarafílu (.svg + .json)" -#: src/app/main/ui/dashboard/file_menu.cljs:276, src/app/main/ui/dashboard/project_menu.cljs:90 +#: src/app/main/ui/dashboard/project_menu.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.duplicate" msgstr "Tvítøka" -#: src/app/main/ui/dashboard/file_menu.cljs:240 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.duplicate-multi" msgstr "Tvítak %s fílur" -#: src/app/main/ui/dashboard/placeholder.cljs:32 +#: src/app/main/ui/dashboard/grid.cljs #, markdown msgid "dashboard.empty-placeholder-drafts" msgstr "" "Áh nei! Tú hevur ongar fílur enn! Um tú vilt royna við nøkrum skapilónum, " "vitja [Libraries & templates](https://penpot.app/libraries-templates)" -#: src/app/main/ui/dashboard/file_menu.cljs:249 msgid "dashboard.export-binary-multi" msgstr "Heinta %s Penpot fílur (.penpot)" -#: src/app/main/ui/workspace/main_menu.cljs:605 msgid "dashboard.export-frames" msgstr "Útflyt borð sum PDF" -#: src/app/main/ui/export.cljs:201 +#: src/app/main/ui/export.cljs msgid "dashboard.export-frames.title" msgstr "Útflyt til PDF" -#, unused msgid "dashboard.export-multi" msgstr "Útflyt Penpot %s fílur" -#: src/app/main/ui/export.cljs:109 +#: src/app/main/ui/export.cljs msgid "dashboard.export-multiple.selected" msgstr "%s av %s lutum eru valdir" -#: src/app/main/ui/workspace/main_menu.cljs:578 +#: src/app/main/ui/workspace/header.cljs msgid "dashboard.export-shapes" msgstr "Útflyt" -#: src/app/main/ui/export.cljs:184 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.how-to-link" msgstr "Upplýsingar um hvussu tú setur útflytingar í Penpot." -#: src/app/main/ui/export.cljs:179 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.no-elements" msgstr "Har eru ongin lutir við útflytsstillingum." -#: src/app/main/ui/export.cljs:190 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.title" msgstr "Valt til útflyting" -#: src/app/main/ui/dashboard/file_menu.cljs:252 msgid "dashboard.export-standard-multi" msgstr "Heinta %s standarafílur (.svg + .json)" -#: src/app/main/ui/export.cljs:436 msgid "dashboard.export.options.all.title" msgstr "Útflyt deild søvn" -#: src/app/main/ui/export.cljs:418 msgid "dashboard.export.title" msgstr "Útflyt fílur" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:309 msgid "dashboard.fonts.deleted-placeholder" msgstr "Stavsniði er strika" -#: src/app/main/ui/dashboard/fonts.cljs:436 msgid "dashboard.fonts.empty-placeholder" msgstr "Tú hevur enn onki serstavsnið innlagt." -#: src/app/main/ui/dashboard/fonts.cljs:194 +#: src/app/main/ui/dashboard/fonts.cljs msgid "dashboard.fonts.fonts-added" msgid_plural "dashboard.fonts.fonts-added" msgstr[0] "1 stavsnið lagt afturat" msgstr[1] "% stavsnið løgd afturat" -#: src/app/main/ui/dashboard/fonts.cljs:202 +#: src/app/main/ui/dashboard/fonts.cljs msgid "dashboard.fonts.upload-all" msgstr "Legg øll afturat" -#: src/app/main/ui/dashboard/import.cljs:472, src/app/main/ui/dashboard/project_menu.cljs:108 msgid "dashboard.import" msgstr "Innflyt Penpot fílur" -#: src/app/main/ui/dashboard/import.cljs:304, src/app/worker/import.cljs:753, src/app/worker/import.cljs:755 msgid "dashboard.import.analyze-error" msgstr "Ups! Tað riggaði ikki at innflyta hesa fílu" -#: src/app/main/ui/dashboard/import.cljs:308 msgid "dashboard.import.import-error" msgstr "" "Har kom ein trupulleiki, tá vit royndu at innflyta fíluna. Fílan var ikki " "innflutt." -#: src/app/main/ui/dashboard/import.cljs:493 msgid "dashboard.import.import-message" msgstr "% fílur eru innfluttir." -#: src/app/main/ui/dashboard/import.cljs:144 msgid "dashboard.import.progress.process-colors" msgstr "Viðgerð litir" -#: src/app/main/ui/dashboard/import.cljs:153 msgid "dashboard.import.progress.process-components" msgstr "Viðgerð staklutir" -#: src/app/main/ui/dashboard/import.cljs:150 msgid "dashboard.import.progress.process-media" msgstr "Viðgerð miðlar" -#: src/app/main/ui/dashboard/import.cljs:141 msgid "dashboard.import.progress.process-page" msgstr "Viðger síðu: %s" -#: src/app/main/ui/dashboard/import.cljs:147 msgid "dashboard.import.progress.process-typographies" msgstr "Viðgerð stavsnið" -#: src/app/main/ui/dashboard/import.cljs:135 msgid "dashboard.import.progress.upload-data" msgstr "Sendur upp dátur til ambætara (%s/%s)" -#: src/app/main/ui/dashboard/import.cljs:138 msgid "dashboard.import.progress.upload-media" msgstr "Innleggur fílu: %s" -#: src/app/main/ui/dashboard/team.cljs:109 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.invite-profile" msgstr "Bjóða við í toymi" -#: src/app/main/ui/dashboard/sidebar.cljs:547, src/app/main/ui/dashboard/sidebar.cljs:556, src/app/main/ui/dashboard/sidebar.cljs:563, src/app/main/ui/dashboard/team.cljs:312 +#: src/app/main/ui/dashboard/sidebar.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.leave-team" msgstr "Far úr toymu" -#: src/app/main/ui/dashboard/placeholder.cljs:45 +#: src/app/main/ui/dashboard/grid.cljs msgid "dashboard.loading-files" msgstr "lesur tínar fílur inn…" -#: src/app/main/ui/dashboard/fonts.cljs:431 msgid "dashboard.loading-fonts" msgstr "lesur tíni stavsnið inn…" -#: src/app/main/ui/dashboard/file_menu.cljs:281, src/app/main/ui/dashboard/project_menu.cljs:100 +#: src/app/main/ui/dashboard/project_menu.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.move-to" msgstr "Flyt til" -#: src/app/main/ui/dashboard/file_menu.cljs:245 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.move-to-multi" msgstr "Flyt %s fílur til" -#: src/app/main/ui/dashboard/file_menu.cljs:226 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.move-to-other-team" msgstr "Flyt til eitt annað toymi" -#: src/app/main/ui/dashboard/files.cljs:105, src/app/main/ui/dashboard/projects.cljs:252, src/app/main/ui/dashboard/projects.cljs:253 +#: src/app/main/ui/dashboard/projects.cljs, +#: src/app/main/ui/dashboard/files.cljs msgid "dashboard.new-file" msgstr "+ Nýggja fílu" -#: src/app/main/data/dashboard.cljs:958, src/app/main/data/dashboard.cljs:1181 +#: src/app/main/data/dashboard.cljs msgid "dashboard.new-file-prefix" msgstr "Nýggja fílu" -#: src/app/main/ui/dashboard/projects.cljs:55 +#: src/app/main/ui/dashboard/projects.cljs msgid "dashboard.new-project" msgstr "+ Nýggj verkætlan" -#: src/app/main/data/dashboard.cljs:726, src/app/main/data/dashboard.cljs:1184 +#: src/app/main/data/dashboard.cljs msgid "dashboard.new-project-prefix" msgstr "Nýggj verkætlan" -#: src/app/main/ui/dashboard/search.cljs:60 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.no-matches-for" msgstr "Onki samsvar funnið fyri \"%\"" -#: src/app/main/ui/dashboard/sidebar.cljs:827 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.no-projects-placeholder" msgstr "Festar verkætlanir verða víst her" -#: src/app/main/ui/auth/verify_token.cljs:33 +#: src/app/main/ui/auth/verify_token.cljs msgid "dashboard.notifications.email-changed-successfully" msgstr "Tín teldupostadressa er dagførd" -#: src/app/main/ui/auth/verify_token.cljs:27 +#: src/app/main/ui/auth/verify_token.cljs msgid "dashboard.notifications.email-verified-successfully" msgstr "Tín teldupostadressa er váttta" -#: src/app/main/ui/settings/password.cljs:37 +#: src/app/main/ui/settings/password.cljs msgid "dashboard.notifications.password-saved" msgstr "Loyniorði er goymt!" -#: src/app/main/ui/dashboard/team.cljs:1081 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.num-of-members" msgstr "%s limir" -#: src/app/main/ui/dashboard/file_menu.cljs:267 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.open-in-new-tab" msgstr "Lat fílu upp í nýggjum skiljiblaði" -#: src/app/main/ui/dashboard/files.cljs:117, src/app/main/ui/dashboard/projects.cljs:260, src/app/main/ui/dashboard/projects.cljs:261 msgid "dashboard.options" msgstr "Valmøguleikar" -#: src/app/main/ui/settings/password.cljs:106, src/app/main/ui/settings/password.cljs:119 +#: src/app/main/ui/settings/password.cljs msgid "dashboard.password-change" msgstr "Broyt loyniorð" -#: src/app/main/ui/dashboard/pin_button.cljs:24, src/app/main/ui/dashboard/project_menu.cljs:95 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.pin-unpin" msgstr "Fest/Loys" -#: src/app/main/ui/dashboard/projects.cljs:51 +#: src/app/main/ui/dashboard/projects.cljs msgid "dashboard.projects-title" msgstr "Verkætlanir" -#: src/app/main/ui/settings/profile.cljs:86 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.remove-account" msgstr "Vilt tú strika tína konto?" #: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused msgid "dashboard.remove-shared" msgstr "Strikað sum Deilt Savn" -#: src/app/main/ui/settings/profile.cljs:78 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.save-settings" msgstr "Goym stillingar" -#: src/app/main/ui/dashboard/sidebar.cljs:246, src/app/main/ui/dashboard/sidebar.cljs:247 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.search-placeholder" msgstr "Leita…" -#: src/app/main/ui/dashboard/search.cljs:55 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.searching-for" msgstr "Leitar eftir \"%s\"…" -#: src/app/main/ui/settings/options.cljs:56 +#: src/app/main/ui/settings/options.cljs msgid "dashboard.select-ui-language" msgstr "Vel mál til takførisflatu" -#: src/app/main/ui/settings/options.cljs:63 +#: src/app/main/ui/settings/options.cljs msgid "dashboard.select-ui-theme" msgstr "Vel tema" -#: src/app/main/ui/dashboard/projects.cljs:282 +#: src/app/main/ui/dashboard/grid.cljs msgid "dashboard.show-all-files" msgstr "Vís allar fílurnar" -#: src/app/main/ui/dashboard/file_menu.cljs:96 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-delete-file" msgstr "Tín fíla er strikað" -#: src/app/main/ui/dashboard/project_menu.cljs:59 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.success-delete-project" msgstr "Tín verkætlan er strikað" -#: src/app/main/ui/dashboard/file_menu.cljs:130, src/app/main/ui/dashboard/grid.cljs:558, src/app/main/ui/dashboard/sidebar.cljs:152 +#: src/app/main/ui/dashboard/grid.cljs, src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-move-file" msgstr "Tín fíla er flutt" -#: src/app/main/ui/dashboard/file_menu.cljs:129 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-move-files" msgstr "Tínar fílur eru fluttar" -#: src/app/main/ui/dashboard/project_menu.cljs:54 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.success-move-project" msgstr "Tín verkætlan er flutt" -#: src/app/main/ui/dashboard/team.cljs:1052 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.team-info" msgstr "Toymisupplýsingar" -#: src/app/main/ui/dashboard/team.cljs:1070 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.team-members" msgstr "Toymislimir" -#: src/app/main/ui/dashboard/team.cljs:1085 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.team-projects" msgstr "Toymisverkætlanir" -#: src/app/main/ui/settings/options.cljs:61 +#: src/app/main/ui/settings/options.cljs msgid "dashboard.theme-change" msgstr "Takførisflatastílur" -#: src/app/main/ui/dashboard/search.cljs:42 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.title-search" msgstr "Leitiúrslit" -#: src/app/main/ui/dashboard/search.cljs:50 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.type-something" msgstr "Skriva fyri at leita eftir úrslitum" -#: src/app/main/ui/alert.cljs:32 +#: src/app/main/ui/alert.cljs msgid "ds.alert-ok" msgstr "Ókey" -#: src/app/main/ui/confirm.cljs:37, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:141 +#: src/app/main/ui/confirm.cljs msgid "ds.confirm-ok" msgstr "Ókey" -#: src/app/main/data/users.cljs:703, src/app/main/ui/auth/login.cljs:97, src/app/main/ui/auth/login.cljs:105 msgid "errors.profile-blocked" msgstr "Vangamyndin er stongd" -#: src/app/main/ui/dashboard/file_menu.cljs:262 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.delete-multi-files" msgstr "Strikað %s fílur" -#, unused msgid "labels.edit-file" msgstr "Broyt fílu" -#: src/app/main/ui/dashboard/projects.cljs:239, src/app/main/ui/dashboard/team.cljs:1095 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.num-of-files" msgid_plural "labels.num-of-files" msgstr[0] "1 fíla" msgstr[1] "%s fílur" -#: src/app/main/ui/settings/profile.cljs:118, src/app/main/ui/settings/sidebar.cljs:82 +#: src/app/main/ui/settings/sidebar.cljs msgid "labels.profile" msgstr "Vangamynd" -#: src/app/main/data/common.cljs:113 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.add-shared-confirm.accept" msgstr "Legg afturat sum Deilt Savn" -#: src/app/main/data/common.cljs:110 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.add-shared-confirm.message" msgstr "Legg \"%s\" afturat sum Deilt Savn" -#: src/app/main/ui/dashboard/file_menu.cljs:123 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-confirm.accept" msgstr "Strikað fílu" -#: src/app/main/ui/dashboard/file_menu.cljs:122 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-confirm.message" msgstr "Ert tú vísur í, at tú ynskjur at strikað fílu?" -#: src/app/main/ui/dashboard/file_menu.cljs:121 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-confirm.title" msgstr "Strikar fílu" -#: src/app/main/ui/dashboard/file_menu.cljs:117 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-multi-confirm.accept" msgstr "Strikar fílur" -#: src/app/main/ui/dashboard/file_menu.cljs:116 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-multi-confirm.message" msgstr "Ert tú vísur í, at tú vil strikað %s fílur?" -#: src/app/main/ui/dashboard/file_menu.cljs:115 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-multi-confirm.title" msgstr "Strikar %s fílur" -#: src/app/main/ui/delete_shared.cljs:51 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.accept" msgid_plural "modals.delete-shared-confirm.accept" msgstr[0] "Strike fílu" msgstr[1] "Strika fílur" -#: src/app/main/ui/delete_shared.cljs:46 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.message" msgid_plural "modals.delete-shared-confirm.message" msgstr[0] "Ert tú vísur í, at tú vilt strikað hesa fílu?" msgstr[1] "Ert tú vísur í, at tú vilt strikað hesar fílur?" -#: src/app/main/ui/delete_shared.cljs:41 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.title" msgid_plural "modals.delete-shared-confirm.title" msgstr[0] "Strikar fílu" msgstr[1] "Strikar fílur" #: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused msgid "modals.remove-shared-confirm.accept" msgstr "Strikað sum Deilt Savn" #: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused msgid "modals.remove-shared-confirm.message" msgstr "Strika \"%s\" sum Deilt Savn" -#: src/app/main/ui/dashboard/files.cljs:158 +#: src/app/main/ui/dashboard/files.cljs msgid "title.dashboard.files" msgstr "%s - Penpot" -#: src/app/main/ui/settings/profile.cljs:115 +#: src/app/main/ui/settings/profile.cljs msgid "title.settings.profile" msgstr "Vangamynd - Penpot" -#: src/app/main/ui/workspace/main_menu.cljs:720 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.file" msgstr "Fílu" diff --git a/frontend/translations/fr.po b/frontend/translations/fr.po index 04c3222e74..7882541726 100644 --- a/frontend/translations/fr.po +++ b/frontend/translations/fr.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "PO-Revision-Date: 2024-06-17 08:07+0000\n" "Last-Translator: Anonymous \n" -"Language-Team: French " -"\n" +"Language-Team: French \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" @@ -11,411 +11,373 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n!=1);\n" "X-Generator: Weblate 5.6-dev\n" -#: src/app/main/ui/auth/register.cljs:151, src/app/main/ui/viewer/login.cljs:104 +#: src/app/main/ui/auth/register.cljs msgid "auth.already-have-account" msgstr "Vous avez déjà un compte ?" -#: src/app/main/ui/auth/register.cljs:299 +#: src/app/main/ui/auth/register.cljs msgid "auth.check-your-email" msgstr "" "Vérifiez votre e‑mail et cliquez sur le lien pour vérifier et commencer à " "utiliser Penpot." -#: src/app/main/ui/auth/recovery.cljs:78 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.confirm-password" msgstr "Confirmez le mot de passe" -#: src/app/main/ui/auth/register.cljs:163 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.create-demo-account" msgstr "Créer un compte de démonstration" #: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs -#, unused msgid "auth.create-demo-profile" msgstr "Vous voulez juste essayer ?" -#: src/app/main/ui/auth/login.cljs:43 +#: src/app/main/ui/auth/register.cljs msgid "auth.demo-warning" msgstr "" "Il s’agit d’un service de DÉMONSTRATION, NE L'UTILISEZ PAS pour du vrai " "travail, les projets seront périodiquement supprimés." -#: src/app/main/ui/auth/login.cljs:189, src/app/main/ui/viewer/login.cljs:90 +#: src/app/main/ui/auth/login.cljs msgid "auth.forgot-password" msgstr "Mot de passe oublié ?" -#: src/app/main/ui/auth/register.cljs:254 +#: src/app/main/ui/auth/register.cljs msgid "auth.fullname" msgstr "Nom complet" -#: src/app/main/ui/auth/login.cljs:282 -msgid "auth.login-account-title" -msgstr "Connexion à mon compte" - -#: src/app/main/ui/auth/register.cljs:155, src/app/main/ui/viewer/login.cljs:107 +#: src/app/main/ui/auth/register.cljs +#, fuzzy msgid "auth.login-here" msgstr "Connectez-vous ici" -#: src/app/main/ui/auth/login.cljs:195 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-submit" msgstr "Se connecter" -#: src/app/main/ui/auth/login.cljs:285 -msgid "auth.login-tagline" -msgstr "" -"Penpot est l'outil de design libre et open-source pour la collaboration " -"entre Design et Développement" - -#: src/app/main/ui/auth/login.cljs:222 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.login-with-github-submit" msgstr "GitHub" -#: src/app/main/ui/auth/login.cljs:228 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.login-with-gitlab-submit" msgstr "GitLab" -#: src/app/main/ui/auth/login.cljs:216 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-google-submit" msgstr "Google" -#: src/app/main/ui/auth/login.cljs:201 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-ldap-submit" msgstr "LDAP" -#: src/app/main/ui/auth/login.cljs:234, src/app/main/ui/auth/login.cljs:255 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-oidc-submit" msgstr "OpenID" -#: src/app/main/ui/auth/register.cljs:217, src/app/main/ui/dashboard/team_form.cljs:76, src/app/main/ui/onboarding/team_choice.cljs:180, src/app/main/ui/settings/access_tokens.cljs:66, src/app/main/ui/settings/feedback.cljs:34, src/app/main/ui/settings/profile.cljs:45, src/app/main/ui/workspace/sidebar/assets/groups.cljs:108 +#: src/app/main/ui/settings/team-form.cljs, src/app/main/ui/auth/register.cljs, src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/onboarding/team_choice.cljs, src/app/main/ui/settings/access_tokens.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/settings/profile.cljs, src/app/main/ui/workspace/sidebar/assets.cljs msgid "auth.name.not-all-space" msgstr "Le nom doit contenir au moins un caractère autre que l'espace." -#: src/app/main/ui/auth/register.cljs:218, src/app/main/ui/dashboard/team_form.cljs:77, src/app/main/ui/onboarding/team_choice.cljs:181, src/app/main/ui/settings/access_tokens.cljs:67, src/app/main/ui/settings/feedback.cljs:33, src/app/main/ui/settings/profile.cljs:44, src/app/main/ui/workspace/sidebar/assets/groups.cljs:109 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/onboarding/team_choice.cljs, src/app/main/ui/settings/access_tokens.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/settings/profile.cljs, src/app/main/ui/workspace/sidebar/assets.cljs msgid "auth.name.too-long" msgstr "Le nom ne doit pas contenir plus de 250 caractères." -#: src/app/main/ui/auth/recovery.cljs:71 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.new-password" msgstr "Saisissez un nouveau mot de passe" -#: src/app/main/ui/auth/recovery.cljs:42 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.notifications.invalid-token-error" msgstr "Le code de récupération n’est pas valide." -#: src/app/main/ui/auth/recovery.cljs:46 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.notifications.password-changed-successfully" msgstr "Mot de passe changé avec succès" -#: src/app/main/ui/auth/recovery_request.cljs:57 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.notifications.profile-not-verified" msgstr "Le profil n’est pas vérifié. Veuillez vérifier le profil avant de continuer." -#: src/app/main/ui/auth/recovery_request.cljs:40 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.notifications.recovery-token-sent" msgstr "Lien de récupération de mot de passe envoyé." -#: src/app/main/ui/auth/verify_token.cljs:47 +#: src/app/main/ui/auth/verify_token.cljs msgid "auth.notifications.team-invitation-accepted" msgstr "Vous avez rejoint l’équipe avec succès" -#: src/app/main/ui/auth/login.cljs:179, src/app/main/ui/auth/register.cljs:115 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.password" msgstr "Mot de passe" -#: src/app/main/ui/auth/register.cljs:114 +#: src/app/main/ui/auth/register.cljs msgid "auth.password-length-hint" msgstr "Au moins 8 caractères" -#: src/app/main/ui/auth/recovery.cljs:61, src/app/main/ui/auth/recovery.cljs:62, src/app/main/ui/auth/register.cljs:81, src/app/main/ui/settings/password.cljs:75, src/app/main/ui/settings/password.cljs:76, src/app/main/ui/settings/password.cljs:77 +#: src/app/main/ui/auth/register.cljs msgid "auth.password-not-empty" msgstr "Le mot de passe doit contenir au moins un caractère autre que l'espace." -#: src/app/main/ui/auth.cljs:41 msgid "auth.privacy-policy" msgstr "Politique de confidentialité" -#: src/app/main/ui/auth/recovery_request.cljs:88 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-submit" msgstr "Récupérer le mot de passe" -#: src/app/main/ui/auth/recovery_request.cljs:101 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-subtitle" msgstr "Nous vous enverrons un e‑mail avec des instructions" -#: src/app/main/ui/auth/recovery_request.cljs:100 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-title" msgstr "Mot de passe oublié ?" -#: src/app/main/ui/auth/recovery.cljs:82 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.recovery-submit" msgstr "Changez votre mot de passe" -#: src/app/main/ui/auth/login.cljs:298, src/app/main/ui/viewer/login.cljs:93 +#: src/app/main/ui/auth/login.cljs msgid "auth.register" msgstr "Pas encore de compte ?" -#: src/app/main/ui/auth/login.cljs:302, src/app/main/ui/auth/register.cljs:121, src/app/main/ui/auth/register.cljs:263, src/app/main/ui/viewer/login.cljs:97 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.register-submit" msgstr "Créer un compte" -#: src/app/main/ui/auth/register.cljs:140 +#: src/app/main/ui/auth/register.cljs msgid "auth.register-title" msgstr "Créer un compte" #: src/app/main/ui/auth.cljs -#, unused msgid "auth.sidebar-tagline" msgstr "La solution Open Source pour la conception et le prototypage." -#: src/app/main/ui/auth.cljs:33, src/app/main/ui/dashboard/sidebar.cljs:1022, src/app/main/ui/workspace/main_menu.cljs:150 msgid "auth.terms-of-service" msgstr "Conditions générales d'utilisation" -#: src/app/main/ui/auth/register.cljs:297 +#: src/app/main/ui/auth/register.cljs msgid "auth.verification-email-sent" msgstr "Nous avons envoyé un e-mail de vérification à" #: src/app/main/ui/onboarding/questions.cljs -#, unused msgid "branding-illustrations-marketing-pieces" msgstr "...image de marque, illustrations, supports marketing, etc." -#: src/app/main/ui/workspace/libraries.cljs:228 msgid "common.publish" msgstr "Publier" -#: src/app/main/ui/viewer/share_link.cljs:304, src/app/main/ui/viewer/share_link.cljs:314 msgid "common.share-link.all-users" msgstr "Tous les utilisateurs de Penpot" -#: src/app/main/ui/viewer/share_link.cljs:198 msgid "common.share-link.confirm-deletion-link-description" msgstr "" "Êtes-vous certain de vouloir supprimer ce lien ? Si oui, plus personne ne " "pourra y accéder" -#: src/app/main/ui/viewer/share_link.cljs:259, src/app/main/ui/viewer/share_link.cljs:289 msgid "common.share-link.current-tag" msgstr "(actuel)" -#: src/app/main/ui/viewer/share_link.cljs:207, src/app/main/ui/viewer/share_link.cljs:214 msgid "common.share-link.destroy-link" msgstr "Supprimer le lien" -#: src/app/main/ui/viewer/share_link.cljs:221 msgid "common.share-link.get-link" msgstr "Obtenir le lien" -#: src/app/main/ui/viewer/share_link.cljs:139 msgid "common.share-link.link-copied-success" msgstr "Lien copié avec succès" -#: src/app/main/ui/viewer/share_link.cljs:231 msgid "common.share-link.manage-ops" msgstr "Modifier les permissions" -#: src/app/main/ui/viewer/share_link.cljs:277 msgid "common.share-link.page-shared" msgid_plural "common.share-link.page-shared" msgstr[0] "1 page partagée" msgstr[1] "%s pages partagées" -#: src/app/main/ui/viewer/share_link.cljs:298 msgid "common.share-link.permissions-can-comment" msgstr "Peut commenter" -#: src/app/main/ui/viewer/share_link.cljs:308 msgid "common.share-link.permissions-can-inspect" msgstr "Peut inspecter le code" -#: src/app/main/ui/viewer/share_link.cljs:193 msgid "common.share-link.permissions-hint" msgstr "N'importe qui possédant ce lien peut y accéder" -#: src/app/main/ui/viewer/share_link.cljs:241 msgid "common.share-link.permissions-pages" msgstr "Pages partagées" -#: src/app/main/ui/viewer/share_link.cljs:183 msgid "common.share-link.placeholder" msgstr "Le lien à partager apparaîtra ici" -#: src/app/main/ui/viewer/share_link.cljs:303, src/app/main/ui/viewer/share_link.cljs:313 msgid "common.share-link.team-members" msgstr "Seulement les membres de l'équipe" -#: src/app/main/ui/viewer/share_link.cljs:171 msgid "common.share-link.title" msgstr "Partager les prototypes" -#: src/app/main/ui/viewer/share_link.cljs:269 msgid "common.share-link.view-all" msgstr "Tout sélectionner" -#: src/app/main/ui/workspace/libraries.cljs:224 msgid "common.unpublish" msgstr "Dépublier" -#: src/app/main/ui/dashboard/projects.cljs:85 +#: src/app/main/ui/dashboard/projects.cljs msgid "dasboard.team-hero.management" msgstr "Gestion de l'équipe" -#: src/app/main/ui/dashboard/projects.cljs:84 +#: src/app/main/ui/dashboard/projects.cljs msgid "dasboard.team-hero.text" msgstr "" "Penpot est conçu pour les équipes. Invitez les membres pour collaborer sur " "des projets et des fichiers" -#: src/app/main/ui/dashboard/projects.cljs:82 +#: src/app/main/ui/dashboard/projects.cljs msgid "dasboard.team-hero.title" msgstr "Faites une équipe  !" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.tutorial-hero.info" msgstr "Apprenez les bases de Penpot en s'amusant avec ce tutoriel pratique." #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.tutorial-hero.start" msgstr "Démarrer le tutoriel" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.tutorial-hero.title" msgstr "Tutoriel pratique" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.walkthrough-hero.info" msgstr "Explorez Penpot et découvrir ses fonctionnalités." #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.walkthrough-hero.start" msgstr "Commencer le guide" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.walkthrough-hero.title" msgstr "Démonstration de l'interface" -#: src/app/main/ui/settings/access_tokens.cljs:115 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.copied-success" msgstr "Jeton copié" -#: src/app/main/ui/settings/access_tokens.cljs:202 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.create" msgstr "Générer un nouveau jeton" -#: src/app/main/ui/settings/access_tokens.cljs:76 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.create.success" msgstr "Jeton d'accès créé avec succès." -#: src/app/main/ui/settings/access_tokens.cljs:300 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.empty.add-one" msgstr "Pressez le bouton \"Générer un nouveau jeton\" pour en générer un." -#: src/app/main/ui/settings/access_tokens.cljs:299 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.empty.no-access-tokens" msgstr "Vous n'avez pas encore de jeton." -#: src/app/main/ui/settings/access_tokens.cljs:53 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.errors-required-name" msgstr "Le nom est requis" -#: src/app/main/ui/settings/access_tokens.cljs:147 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-180-days" msgstr "180 jours" -#: src/app/main/ui/settings/access_tokens.cljs:144 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-30-days" msgstr "30 jours" -#: src/app/main/ui/settings/access_tokens.cljs:145 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-60-days" msgstr "60 jours" -#: src/app/main/ui/settings/access_tokens.cljs:146 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-90-days" msgstr "90 jours" -#: src/app/main/ui/settings/access_tokens.cljs:143 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-never" msgstr "Jamais" -#: src/app/main/ui/settings/access_tokens.cljs:282 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expired-on" msgstr "A expiré le %s" -#: src/app/main/ui/settings/access_tokens.cljs:283 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expires-on" msgstr "Expire le %s" -#: src/app/main/ui/settings/access_tokens.cljs:281 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.no-expiration" msgstr "Aucune date d'expiration" -#: src/app/main/ui/settings/access_tokens.cljs:197 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.personal" msgstr "Jetons d'accès personnels" -#: src/app/main/ui/settings/access_tokens.cljs:198 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.personal.description" msgstr "" "Les jetons d'accès personnels fonctionnent comme une alternative à notre " "système d'authentification par login/mot de passe et peuvent être utilisés " "pour permettre à une application d'accéder à l'API interne de Penpot" -#: src/app/main/ui/settings/access_tokens.cljs:154 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.token-will-expire" msgstr "Le jeton expirera le %s" -#: src/app/main/ui/settings/access_tokens.cljs:155 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.token-will-not-expire" msgstr "Le jeton n'a pas de date d'expiration" -#: src/app/main/ui/dashboard/file_menu.cljs:291, src/app/main/ui/workspace/main_menu.cljs:572 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.add-shared" msgstr "Ajouter une Bibliothèque Partagée" -#: src/app/main/ui/settings/profile.cljs:75 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.change-email" msgstr "Changer l'adresse e‑mail" -#: src/app/main/data/dashboard.cljs:762, src/app/main/data/dashboard.cljs:983 +#: src/app/main/data/dashboard.cljs, src/app/main/data/dashboard.cljs msgid "dashboard.copy-suffix" msgstr "(copie)" -#: src/app/main/ui/dashboard/sidebar.cljs:338 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.create-new-team" msgstr "+ Créer une nouvelle équipe" -#: src/app/main/ui/components/context_menu_a11y.cljs:256, src/app/main/ui/dashboard/sidebar.cljs:646 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.default-team-name" msgstr "Votre Penpot" -#: src/app/main/ui/dashboard/sidebar.cljs:571 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.delete-team" msgstr "Supprimer l’équipe" -#: src/app/main/ui/dashboard/file_menu.cljs:296, src/app/main/ui/workspace/main_menu.cljs:589 msgid "dashboard.download-binary-file" msgstr "Télécharger le fichier Penpot (.penpot)" -#: src/app/main/ui/dashboard/file_menu.cljs:300, src/app/main/ui/workspace/main_menu.cljs:597 msgid "dashboard.download-standard-file" msgstr "Télécharger le fichier standard (.svg + .json)" -#: src/app/main/ui/dashboard/file_menu.cljs:276, src/app/main/ui/dashboard/project_menu.cljs:90 +#: src/app/main/ui/dashboard/project_menu.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.duplicate" msgstr "Dupliquer" -#: src/app/main/ui/dashboard/file_menu.cljs:240 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.duplicate-multi" msgstr "Dupliquer %s fichiers" -#: src/app/main/ui/dashboard/placeholder.cljs:32 +#: src/app/main/ui/dashboard/grid.cljs #, markdown msgid "dashboard.empty-placeholder-drafts" msgstr "" @@ -423,121 +385,105 @@ msgstr "" "des modèles, allez sur [Bibliothèques et modèles] " "(https://penpot.app/libraries-templates)." -#: src/app/main/ui/dashboard/file_menu.cljs:249 msgid "dashboard.export-binary-multi" msgstr "Télécharger %s fichiers Penpot (.penpot)" -#: src/app/main/ui/workspace/main_menu.cljs:605 msgid "dashboard.export-frames" msgstr "Exporter les plans de travail au format PDF" -#: src/app/main/ui/export.cljs:201 +#: src/app/main/ui/export.cljs msgid "dashboard.export-frames.title" msgstr "Exporter en PDF" -#, unused msgid "dashboard.export-multi" msgstr "Exporter %s fichiers" -#: src/app/main/ui/export.cljs:109 +#: src/app/main/ui/export.cljs msgid "dashboard.export-multiple.selected" msgstr "%s de %s éléments sélectionnés" -#: src/app/main/ui/workspace/main_menu.cljs:578 +#: src/app/main/ui/workspace/header.cljs msgid "dashboard.export-shapes" msgstr "Exporter" -#: src/app/main/ui/export.cljs:180 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.how-to" msgstr "" "Vous pouvez ajouter des paramètres d'exportation aux formes depuis les " "propriétés de design (en bas de la barre latérale de droite)" -#: src/app/main/ui/export.cljs:184 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.how-to-link" msgstr "Information sur comment configurer l'export dans Penpot." -#: src/app/main/ui/export.cljs:179 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.no-elements" msgstr "Aucun élément avec des paramètres d'exportation." -#: src/app/main/ui/export.cljs:190 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.title" msgstr "Exporter la sélection" -#: src/app/main/ui/dashboard/file_menu.cljs:252 msgid "dashboard.export-standard-multi" msgstr "Télécharger %s fichiers standards (.svg + .json)" -#: src/app/main/ui/export.cljs:427 msgid "dashboard.export.detail" msgstr "" "* Peut inclure les composants, éléments graphiques, couleurs et/ou polices " "de caractère." -#: src/app/main/ui/export.cljs:426 msgid "dashboard.export.explain" msgstr "" "Un ou plusieurs fichiers que vous souhaitez exporter utilisent des " "bibliothèques partagées. Que voulez-vous faire avec leurs ressources ?" -#: src/app/main/ui/export.cljs:435 msgid "dashboard.export.options.all.message" msgstr "" "Les fichiers avec des bibliothèques partagées seront inclus dans " "l'exportation, en maintenant leur liaison." -#: src/app/main/ui/export.cljs:436 msgid "dashboard.export.options.all.title" msgstr "Exporter les bibliothèques partagées" -#: src/app/main/ui/export.cljs:437 msgid "dashboard.export.options.detach.message" msgstr "" "Les bibliothèques partagées ne seront pas incluses dans l'exportation et " "aucune ressource ne sera ajoutée à la librairie. " -#: src/app/main/ui/export.cljs:438 msgid "dashboard.export.options.detach.title" msgstr "" "Considérer les ressources des bibliothèques partagées comme des objets " "basiques" -#: src/app/main/ui/export.cljs:439 msgid "dashboard.export.options.merge.message" msgstr "" "Votre fichier sera exporté avec toutes les ressources externes fusionnées " "dans la bibliothèque de fichiers." -#: src/app/main/ui/export.cljs:440 msgid "dashboard.export.options.merge.title" msgstr "" "Inclure les ressources des bibliothèques partagées dans les bibliothèques " "de fichiers" -#: src/app/main/ui/export.cljs:418 msgid "dashboard.export.title" msgstr "Exporter les fichiers" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:309 msgid "dashboard.fonts.deleted-placeholder" msgstr "Police supprimée" -#: src/app/main/ui/dashboard/fonts.cljs:206 +#: src/app/main/ui/dashboard/fonts.cljs msgid "dashboard.fonts.dismiss-all" msgstr "Tout ignorer" -#: src/app/main/ui/dashboard/fonts.cljs:436 msgid "dashboard.fonts.empty-placeholder" msgstr "Les polices personnalisées installées apparaîtront ici." -#: src/app/main/ui/dashboard/fonts.cljs:194 +#: src/app/main/ui/dashboard/fonts.cljs msgid "dashboard.fonts.fonts-added" msgid_plural "dashboard.fonts.fonts-added" msgstr[0] "1 police ajoutée" msgstr[1] "%s polices ajoutées" -#: src/app/main/ui/dashboard/fonts.cljs:170 #, markdown msgid "dashboard.fonts.hero-text1" msgstr "" @@ -547,7 +493,6 @@ msgstr "" "**une seule famille de polices**. Vous pouvez télécharger les polices au " "formats suivants : **TTF, OTF et WOFF** (un seul format est nécessaire)." -#: src/app/main/ui/dashboard/fonts.cljs:182 #, markdown msgid "dashboard.fonts.hero-text2" msgstr "" @@ -557,11 +502,10 @@ msgstr "" "de Penpot](https://penpot.app/terms.html). Vous pouvez également vous " "renseigner sur les [licenses de polices](https://www.typography.com/faq)." -#: src/app/main/ui/dashboard/fonts.cljs:202 +#: src/app/main/ui/dashboard/fonts.cljs msgid "dashboard.fonts.upload-all" msgstr "Uploader tout" -#: src/app/main/ui/dashboard/fonts.cljs:187 #, markdown msgid "dashboard.fonts.warning-text" msgstr "" @@ -573,286 +517,263 @@ msgstr "" "recommandons d'utiliser [Transfonter](https://transfonter.org/) pour " "générer des polices web et corriger les erreurs. " -#: src/app/main/ui/dashboard/import.cljs:472, src/app/main/ui/dashboard/project_menu.cljs:108 msgid "dashboard.import" msgstr "Importer fichiers" -#: src/app/main/ui/dashboard/import.cljs:304, src/app/worker/import.cljs:753, src/app/worker/import.cljs:755 msgid "dashboard.import.analyze-error" msgstr "Oups ! Nous n'avons pas pu importer ce fichier" -#, unused -msgid "dashboard.import.analyze-error.components-v2" -msgstr "" -"Fichier avec composants v2 activé mais n'est pas encore supporté par cette " -"équipe." - -#: src/app/main/ui/dashboard/import.cljs:308 msgid "dashboard.import.import-error" msgstr "" "Un problème est survenu lors de l'importation du fichier. Le fichier n'a " "pas été importé." -#: src/app/main/ui/dashboard/import.cljs:493 msgid "dashboard.import.import-message" msgstr "%s fichiers ont été importés avec succès." -#: src/app/main/ui/dashboard/import.cljs:481, src/app/main/ui/dashboard/import.cljs:488 msgid "dashboard.import.import-warning" msgstr "Certains fichiers contenaient des objets invalides qui ont été enlevés." -#: src/app/main/ui/dashboard/import.cljs:144 msgid "dashboard.import.progress.process-colors" msgstr "Traitement des couleurs" -#: src/app/main/ui/dashboard/import.cljs:153 msgid "dashboard.import.progress.process-components" msgstr "Traitement des composants" -#: src/app/main/ui/dashboard/import.cljs:150 msgid "dashboard.import.progress.process-media" msgstr "Médias en cours de traitement" -#: src/app/main/ui/dashboard/import.cljs:141 msgid "dashboard.import.progress.process-page" msgstr "Traitement de la page : %s" -#: src/app/main/ui/dashboard/import.cljs:147 msgid "dashboard.import.progress.process-typographies" msgstr "Traitement des typographies" -#: src/app/main/ui/dashboard/import.cljs:135 msgid "dashboard.import.progress.upload-data" msgstr "Envoi des données au serveur (%s/%s)" -#: src/app/main/ui/dashboard/import.cljs:138 msgid "dashboard.import.progress.upload-media" msgstr "Envoi du fichier : %s" -#: src/app/main/ui/dashboard/team.cljs:109 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.invite-profile" msgstr "Inviter des personnes" -#: src/app/main/ui/dashboard/sidebar.cljs:547, src/app/main/ui/dashboard/sidebar.cljs:556, src/app/main/ui/dashboard/sidebar.cljs:563, src/app/main/ui/dashboard/team.cljs:312 +#: src/app/main/ui/dashboard/sidebar.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.leave-team" msgstr "Quitter l’équipe" -#: src/app/main/ui/dashboard/templates.cljs:88, src/app/main/ui/dashboard/templates.cljs:163 msgid "dashboard.libraries-and-templates" msgstr "Bibliothèques et Modèles" -#: src/app/main/ui/dashboard/templates.cljs:164 msgid "dashboard.libraries-and-templates.explore" msgstr "En explorez plus et découvrir comment contribuer" -#: src/app/main/ui/dashboard/import.cljs:365 msgid "dashboard.libraries-and-templates.import-error" msgstr "" "Il y avait un problème pendant l'importation de la modèle. La modèle n'est " "pas importé." -#: src/app/main/ui/dashboard/libraries.cljs:53 +#: src/app/main/ui/dashboard/libraries.cljs msgid "dashboard.libraries-title" msgstr "Bibliothèques Partagées" -#: src/app/main/ui/dashboard/placeholder.cljs:45 +#: src/app/main/ui/dashboard/grid.cljs msgid "dashboard.loading-files" msgstr "chargement de vos fichiers…" -#: src/app/main/ui/dashboard/fonts.cljs:431 msgid "dashboard.loading-fonts" msgstr "chargement de vos polices…" -#: src/app/main/ui/dashboard/file_menu.cljs:281, src/app/main/ui/dashboard/project_menu.cljs:100 +#: src/app/main/ui/dashboard/project_menu.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.move-to" msgstr "Déplacer vers" -#: src/app/main/ui/dashboard/file_menu.cljs:245 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.move-to-multi" msgstr "Déplacer %s fichiers vers" -#: src/app/main/ui/dashboard/file_menu.cljs:226 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.move-to-other-team" msgstr "Déplacer vers une autre équipe" -#: src/app/main/ui/dashboard/files.cljs:105, src/app/main/ui/dashboard/projects.cljs:252, src/app/main/ui/dashboard/projects.cljs:253 +#: src/app/main/ui/dashboard/projects.cljs, +#: src/app/main/ui/dashboard/files.cljs msgid "dashboard.new-file" msgstr "+ Nouveau fichier" -#: src/app/main/data/dashboard.cljs:958, src/app/main/data/dashboard.cljs:1181 +#: src/app/main/data/dashboard.cljs msgid "dashboard.new-file-prefix" msgstr "Nouveau fichier" -#: src/app/main/ui/dashboard/projects.cljs:55 +#: src/app/main/ui/dashboard/projects.cljs msgid "dashboard.new-project" msgstr "+ Nouveau projet" -#: src/app/main/data/dashboard.cljs:726, src/app/main/data/dashboard.cljs:1184 +#: src/app/main/data/dashboard.cljs msgid "dashboard.new-project-prefix" msgstr "Nouveau projet" -#: src/app/main/ui/dashboard/search.cljs:60 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.no-matches-for" msgstr "Aucune correspondance pour « %s »" -#: src/app/main/ui/dashboard/sidebar.cljs:827 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.no-projects-placeholder" msgstr "Les projets épinglés apparaîtront ici" -#: src/app/main/ui/auth/verify_token.cljs:33 +#: src/app/main/ui/auth/verify_token.cljs msgid "dashboard.notifications.email-changed-successfully" msgstr "Votre adresse e‑mail a été mise à jour avec succès" -#: src/app/main/ui/auth/verify_token.cljs:27 +#: src/app/main/ui/auth/verify_token.cljs msgid "dashboard.notifications.email-verified-successfully" msgstr "Votre adresse e‑mail a été vérifiée avec succès" -#: src/app/main/ui/settings/password.cljs:37 +#: src/app/main/ui/settings/password.cljs msgid "dashboard.notifications.password-saved" msgstr "Mot de passe enregistré avec succès !" -#: src/app/main/ui/dashboard/team.cljs:1081 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.num-of-members" msgstr "%s membres" -#: src/app/main/ui/dashboard/file_menu.cljs:267 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.open-in-new-tab" msgstr "Ouvrir fichier dans un nouvel onglet" -#: src/app/main/ui/dashboard/files.cljs:117, src/app/main/ui/dashboard/projects.cljs:260, src/app/main/ui/dashboard/projects.cljs:261 msgid "dashboard.options" msgstr "Options" -#: src/app/main/ui/settings/password.cljs:106, src/app/main/ui/settings/password.cljs:119 +#: src/app/main/ui/settings/password.cljs msgid "dashboard.password-change" msgstr "Changer le mot de passe" -#: src/app/main/ui/dashboard/pin_button.cljs:24, src/app/main/ui/dashboard/project_menu.cljs:95 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.pin-unpin" msgstr "Épingler/Désépingler" -#: src/app/main/ui/dashboard/projects.cljs:51 +#: src/app/main/ui/dashboard/projects.cljs msgid "dashboard.projects-title" msgstr "Projets" -#: src/app/main/ui/settings/profile.cljs:86 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.remove-account" msgstr "Vous souhaitez supprimer votre compte ?" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.remove-shared" msgstr "Retirer en tant que Bibliothèque Partagée" -#: src/app/main/ui/settings/profile.cljs:78 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.save-settings" msgstr "Enregistrer les paramètres" -#: src/app/main/ui/dashboard/sidebar.cljs:246, src/app/main/ui/dashboard/sidebar.cljs:247 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.search-placeholder" msgstr "Rechercher…" -#: src/app/main/ui/dashboard/search.cljs:55 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.searching-for" msgstr "Recherche de « %s »…" -#: src/app/main/ui/settings/options.cljs:56 +#: src/app/main/ui/settings/options.cljs msgid "dashboard.select-ui-language" msgstr "Sélectionnez la langue de l’interface" -#: src/app/main/ui/settings/options.cljs:63 +#: src/app/main/ui/settings/options.cljs msgid "dashboard.select-ui-theme" msgstr "Sélectionnez un thème" -#: src/app/main/ui/dashboard/projects.cljs:282 +#: src/app/main/ui/dashboard/grid.cljs msgid "dashboard.show-all-files" msgstr "Voir tous les fichiers" -#: src/app/main/ui/dashboard/file_menu.cljs:96 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-delete-file" msgid_plural "dashboard.success-delete-file" msgstr[0] "Votre fichier a été supprimé avec succès" msgstr[1] "Vos fichiers ont été supprimés avec succès" -#: src/app/main/ui/dashboard/project_menu.cljs:59 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.success-delete-project" msgstr "Votre projet a été supprimé avec succès" -#: src/app/main/ui/dashboard/file_menu.cljs:91 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-duplicate-file" msgid_plural "dashboard.success-delete-file" msgstr[0] "Votre fichier a été dupliqué avec succès" msgstr[1] "Vos fichiers ont été dupliqués avec succès" -#: src/app/main/ui/dashboard/project_menu.cljs:33 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.success-duplicate-project" msgstr "Votre projet a été dupliqué avec succès" -#: src/app/main/ui/dashboard/file_menu.cljs:130, src/app/main/ui/dashboard/grid.cljs:558, src/app/main/ui/dashboard/sidebar.cljs:152 +#: src/app/main/ui/dashboard/grid.cljs, src/app/main/ui/dashboard/sidebar.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-move-file" msgstr "Votre fichier a été déplacé avec succès" -#: src/app/main/ui/dashboard/file_menu.cljs:129 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-move-files" msgstr "Vos fichiers ont été déplacés avec succès" -#: src/app/main/ui/dashboard/project_menu.cljs:54 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.success-move-project" msgstr "Votre projet a été déplacé avec succès" -#: src/app/main/ui/dashboard/team.cljs:1052 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.team-info" msgstr "Information de l’équipe" -#: src/app/main/ui/dashboard/team.cljs:1070 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.team-members" msgstr "Membres de l’équipe" -#: src/app/main/ui/dashboard/team.cljs:1085 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.team-projects" msgstr "Projets de l’équipe" -#: src/app/main/ui/settings/options.cljs:61 +#: src/app/main/ui/settings/options.cljs msgid "dashboard.theme-change" msgstr "Thème de l’interface" -#: src/app/main/ui/dashboard/search.cljs:42 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.title-search" msgstr "Résultats de recherche" -#: src/app/main/ui/dashboard/search.cljs:50 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.type-something" msgstr "Écrivez pour rechercher" -#: src/app/main/ui/dashboard/file_menu.cljs:287, src/app/main/ui/workspace/main_menu.cljs:566 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.unpublish-shared" msgstr "Retirer la Bibliothèque" -#: src/app/main/ui/settings/options.cljs:71 +#: src/app/main/ui/settings/profile.cljs, +#: src/app/main/ui/settings/password.cljs, +#: src/app/main/ui/settings/options.cljs msgid "dashboard.update-settings" msgstr "Mettre à jour les paramètres" -#: src/app/main/ui/dashboard/team.cljs:861 msgid "dashboard.webhooks.active" msgstr "Actif" -#: src/app/main/ui/dashboard/team.cljs:862 msgid "dashboard.webhooks.active.explain" msgstr "Quand ce webhook sera activé, les détails de l'évènement seront envoyés" -#: src/app/main/ui/dashboard/team.cljs:852 msgid "dashboard.webhooks.content-type" msgstr "Type de contenu" -#: src/app/main/ui/dashboard/team.cljs:885 msgid "dashboard.webhooks.create" msgstr "Créer un webhook" -#: src/app/main/ui/dashboard/team.cljs:775 msgid "dashboard.webhooks.create.success" msgstr "Webhook créé avec succès." -#: src/app/main/ui/dashboard/team.cljs:882 msgid "dashboard.webhooks.description" msgstr "" "Les webhooks sont une manière simple de permettre à d'autres site web et " @@ -860,1414 +781,1218 @@ msgstr "" "dans Penpot. Nous enverrons une requête POST à toutes les URLs que vous " "avez indiquées." -#: src/app/main/ui/dashboard/team.cljs:1005 msgid "dashboard.webhooks.empty.add-one" msgstr "Appuyez sur le bouton « Ajouter un webhook » pour en ajouter un." -#: src/app/main/ui/dashboard/team.cljs:1004 msgid "dashboard.webhooks.empty.no-webhooks" msgstr "Aucun webhook créé jusqu’à présent." -#, unused msgid "dashboard.webhooks.update.success" msgstr "Webhook mis à jour avec succès." -#: src/app/main/ui/settings.cljs:31 +#: src/app/main/ui/settings.cljs msgid "dashboard.your-account-title" msgstr "Votre compte" -#: src/app/main/ui/settings/profile.cljs:70 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.your-email" msgstr "E‑mail" -#: src/app/main/ui/settings/profile.cljs:62 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.your-name" msgstr "Votre nom complet" -#: src/app/main/ui/dashboard/file_menu.cljs:38, src/app/main/ui/dashboard/fonts.cljs:33, src/app/main/ui/dashboard/libraries.cljs:42, src/app/main/ui/dashboard/projects.cljs:318, src/app/main/ui/dashboard/search.cljs:30, src/app/main/ui/dashboard/sidebar.cljs:312, src/app/main/ui/dashboard/team.cljs:495, src/app/main/ui/dashboard/team.cljs:729, src/app/main/ui/dashboard/team.cljs:991, src/app/main/ui/dashboard/team.cljs:1038 +#: src/app/main/ui/dashboard/search.cljs, src/app/main/ui/dashboard/team.cljs, +#: src/app/main/ui/dashboard/libraries.cljs, +#: src/app/main/ui/dashboard/projects.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.your-penpot" msgstr "Votre Penpot" -#: src/app/main/ui/alert.cljs:32 +#: src/app/main/ui/alert.cljs msgid "ds.alert-ok" msgstr "Ok" -#: src/app/main/ui/alert.cljs:31, src/app/main/ui/alert.cljs:34 +#: src/app/main/ui/alert.cljs msgid "ds.alert-title" msgstr "Attention" -#: src/app/main/ui/confirm.cljs:83 +#: src/app/main/ui/confirm.cljs msgid "ds.component-subtitle" msgstr "Composants à mettre à jour :" -#: src/app/main/ui/confirm.cljs:36, src/app/main/ui/workspace/plugins.cljs:246 +#: src/app/main/ui/confirm.cljs msgid "ds.confirm-cancel" msgstr "Annuler" -#: src/app/main/ui/confirm.cljs:37, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:141 +#: src/app/main/ui/confirm.cljs msgid "ds.confirm-ok" msgstr "Ok" -#: src/app/main/ui/confirm.cljs:35, src/app/main/ui/confirm.cljs:39 +#: src/app/main/ui/confirm.cljs, src/app/main/ui/confirm.cljs msgid "ds.confirm-title" msgstr "Êtes‑vous sûr ?" -#: src/app/main/data/users.cljs:705 -msgid "errors.auth-provider-not-allowed" -msgstr "Le fournisseur d'authentification n'est pas autorisé pour ce profil" - -#: src/app/main/ui/auth/login.cljs:62 +#: src/app/main/ui/auth/login.cljs msgid "errors.auth-provider-not-configured" msgstr "Fournisseur d'authentification non configuré." -#: src/app/main/errors.cljs:104 msgid "errors.auth.unable-to-login" msgstr "Il semblerait que vous n'êtes pas authentifié ou que votre session a expiré." -#: src/app/main/data/fonts.cljs:189 msgid "errors.bad-font" msgstr "La police %s n'a pas pu être chargée" -#: src/app/main/data/fonts.cljs:188 msgid "errors.bad-font-plural" msgstr "Les polices %s n'ont pas pu être chargées" -#: src/app/main/data/workspace/media.cljs:198 msgid "errors.cannot-upload" msgstr "Impossible de télécharger le fichier média." -#: src/app/main/data/workspace.cljs:1598 +#: src/app/main/data/workspace.cljs msgid "errors.clipboard-not-implemented" msgstr "Votre navigateur ne peut pas effectuer cette opération" -#: src/app/main/ui/auth/verify_token.cljs:82, src/app/main/ui/settings/change_email.cljs:46 +#: src/app/main/ui/auth/verify_token.cljs, +#: src/app/main/ui/settings/change_email.cljs msgid "errors.email-already-exists" msgstr "Adresse e‑mail déjà utilisée" -#: src/app/main/ui/auth/verify_token.cljs:87 +#: src/app/main/ui/auth/verify_token.cljs msgid "errors.email-already-validated" msgstr "Adresse e‑mail déjà validée." -#: src/app/main/ui/settings/password.cljs:28 msgid "errors.email-as-password" msgstr "Vous ne pouvez pas utiliser votre adresse e-mail comme mot de passe" -#: src/app/main/data/users.cljs:707, src/app/main/ui/auth/register.cljs:63 -msgid "errors.email-domain-not-allowed" -msgstr "Domaine non autorisé" - -#: src/app/main/ui/auth/recovery_request.cljs:63, src/app/main/ui/dashboard/team.cljs:578, src/app/main/ui/settings/change_email.cljs:54 +#: src/app/main/ui/auth/register.cljs, +#: src/app/main/ui/auth/recovery_request.cljs, +#: src/app/main/ui/settings/change_email.cljs, +#: src/app/main/ui/dashboard/team.cljs msgid "errors.email-has-permanent-bounces" msgstr "L'adresse e-mail « %s » a un taux de rebond trop élevé." -#: src/app/main/ui/auth/login.cljs:81, src/app/main/ui/auth/recovery_request.cljs:31, src/app/main/ui/auth/register.cljs:43 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs, src/app/main/ui/auth/recovery_request.cljs msgid "errors.email-invalid" msgstr "Veuillez entrer une adresse mail valide" -#: src/app/main/ui/settings/change_email.cljs:35 +#: src/app/main/ui/settings/change_email.cljs msgid "errors.email-invalid-confirmation" msgstr "L’adresse e‑mail de confirmation doit correspondre" -#: src/app/main/ui/dashboard/team.cljs:170 msgid "errors.email-spam-or-permanent-bounces" msgstr "L'e-mail \"%s\" a été signalé comme spam ou a été rejeté." -#: src/app/main/errors.cljs:227 +#: src/app/main/errors.cljs msgid "errors.feature-mismatch" msgstr "" "Il semble que vous ouvrez un fichier qui a la fonctionnalité '%s' activée, " "mais votre interface Penpot ne la prend pas en charge ou l'a désactivée." -#: src/app/main/errors.cljs:231, src/app/main/errors.cljs:245 +#: src/app/main/errors.cljs msgid "errors.feature-not-supported" msgstr "La fonctionnalité '%s' n'est pas prise en charge." -#: src/app/main/errors.cljs:223 +#: src/app/main/errors.cljs msgid "errors.file-feature-mismatch" msgstr "" "Il semble y avoir une incompatibilité entre les fonctionnalités actives et " "celles du fichier que tentez d'ouvrir. Vous devez activer les migrations " "pour '%s' avant de pouvoir ouvrir le fichier." -#: src/app/main/data/users.cljs:709, src/app/main/ui/auth/login.cljs:65, src/app/main/ui/auth/login.cljs:116, src/app/main/ui/auth/register.cljs:69, src/app/main/ui/auth/register.cljs:237, src/app/main/ui/auth/verify_token.cljs:92, src/app/main/ui/dashboard/team.cljs:173, src/app/main/ui/onboarding/team_choice.cljs:95, src/app/main/ui/settings/access_tokens.cljs:91, src/app/main/ui/settings/feedback.cljs:52 +#: src/app/main/ui/auth/verify_token.cljs, +#: src/app/main/ui/settings/feedback.cljs, src/app/main/ui/dashboard/team.cljs msgid "errors.generic" msgstr "Un problème s’est produit." -#: src/app/main/ui/components/color_input.cljs:57 +#: src/app/main/ui/components/color_input.cljs msgid "errors.invalid-color" msgstr "Couleur invalide" -#: src/app/main/ui/static.cljs:43 +#: src/app/main/ui/auth/verify_token.cljs msgid "errors.invite-invalid" msgstr "Invitation invalide" -#: src/app/main/ui/static.cljs:44 msgid "errors.invite-invalid.info" msgstr "Cette invitation est peut-être été annulée ou a expiré." -#: src/app/main/ui/auth/login.cljs:101 +#: src/app/main/ui/auth/login.cljs msgid "errors.ldap-disabled" msgstr "Authentification LDAP désactivée." -#: src/app/main/errors.cljs:239 +#: src/app/main/errors.cljs msgid "errors.max-quote-reached" msgstr "" "Vous avez atteint le quota maximum de '%s'. Veuillez contacter le support " "technique." -#: src/app/main/data/workspace/media.cljs:184 +#: src/app/main/data/workspace/persistence.cljs msgid "errors.media-too-large" msgstr "L’image est trop grande." -#: src/app/main/data/media.cljs:68, src/app/main/data/workspace/media.cljs:187 +#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs msgid "errors.media-type-mismatch" msgstr "" "Il semble que le contenu de l’image ne correspond pas à l’extension de " "fichier." -#: src/app/main/data/media.cljs:65, src/app/main/data/workspace/media.cljs:172, src/app/main/data/workspace/media.cljs:175, src/app/main/data/workspace/media.cljs:178, src/app/main/data/workspace/media.cljs:181 +#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs msgid "errors.media-type-not-allowed" msgstr "L’image ne semble pas être valide." -#: src/app/main/ui/dashboard/team.cljs:574 +#: src/app/main/ui/dashboard/team.cljs msgid "errors.member-is-muted" msgstr "" "L'adresse e-mail du profil que vous invitez est ignorée (signalée comme " "spam ou taux de rebond élevé)." -#: src/app/main/ui/settings/password.cljs:61 +#: src/app/main/ui/settings/password.cljs msgid "errors.password-invalid-confirmation" msgstr "Le mot de passe de confirmation doit correspondre" -#: src/app/main/ui/settings/password.cljs:64 +#: src/app/main/ui/settings/password.cljs msgid "errors.password-too-short" msgstr "Le mot de passe doit contenir au moins 8 caractères" -#: src/app/main/errors.cljs:124 -msgid "errors.paste-data-validation" -msgstr "Données du presse-papier invalides" - -#: src/app/main/data/users.cljs:703, src/app/main/ui/auth/login.cljs:97, src/app/main/ui/auth/login.cljs:105 msgid "errors.profile-blocked" msgstr "Le profil est bloqué" -#: src/app/main/ui/auth/recovery_request.cljs:60, src/app/main/ui/dashboard/team.cljs:164, src/app/main/ui/dashboard/team.cljs:570, src/app/main/ui/settings/change_email.cljs:50 +#: src/app/main/ui/auth/recovery_request.cljs, +#: src/app/main/ui/settings/change_email.cljs, +#: src/app/main/ui/dashboard/team.cljs msgid "errors.profile-is-muted" msgstr "" "L'adresse e-mail de votre profil est ignorée (signalée comme spam ou taux " "de rebond élevé)." -#: src/app/main/data/users.cljs:701, src/app/main/ui/auth/register.cljs:60 +#: src/app/main/ui/auth/register.cljs msgid "errors.registration-disabled" msgstr "L’enregistrement est actuellement désactivé." -#: src/app/main/errors.cljs:218 +#: src/app/main/errors.cljs msgid "errors.team-feature-mismatch" msgstr "Fonctionnalité incompatible détectée '%s'" -#: src/app/main/ui/dashboard/sidebar.cljs:365, src/app/main/ui/dashboard/team.cljs:359 msgid "errors.team-leave.insufficient-members" msgstr "" "Il n'y a pas assez de membres pour quitter l'équipe, vous voulez " "probablement la supprimer." -#: src/app/main/ui/dashboard/sidebar.cljs:368, src/app/main/ui/dashboard/team.cljs:362 msgid "errors.team-leave.member-does-not-exists" msgstr "Le membre que vous essayez d'assigner n'existe pas." -#: src/app/main/ui/dashboard/sidebar.cljs:371, src/app/main/ui/dashboard/team.cljs:365 msgid "errors.team-leave.owner-cant-leave" msgstr "" "Le propriétaire ne peut pas quitter l'équipe, vous devez réassigner le rôle " "de propriétaire." -#: src/app/main/data/media.cljs:71 +#: src/app/main/data/media.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, +#: src/app/main/ui/inspect/exports.cljs msgid "errors.unexpected-error" msgstr "Une erreur inattendue s’est produite." -#: src/app/main/ui/auth/verify_token.cljs:60 +#: src/app/main/ui/auth/verify_token.cljs msgid "errors.unexpected-token" msgstr "Jeton inconnu" -#, unused -msgid "errors.validation" -msgstr "Erreur de validation" - -#: src/app/main/errors.cljs:235 +#: src/app/main/errors.cljs msgid "errors.version-not-supported" msgstr "Le numéro de version du fichier est incompatible" -#: src/app/main/ui/dashboard/team.cljs:796 msgid "errors.webhooks.connection" msgstr "Erreur de connexion, URL inaccessible" -#: src/app/main/ui/dashboard/team.cljs:790 msgid "errors.webhooks.invalid-uri" msgstr "L'URL ne passe pas la validation." -#: src/app/main/ui/dashboard/team.cljs:949 msgid "errors.webhooks.last-delivery" msgstr "Il y a eu une erreur dans le dernier envoi." -#: src/app/main/ui/dashboard/team.cljs:792, src/app/main/ui/dashboard/team.cljs:952 msgid "errors.webhooks.ssl-validation" msgstr "Erreur lors de la validation SSL." -#: src/app/main/ui/dashboard/team.cljs:794 msgid "errors.webhooks.timeout" msgstr "Délai d'attente dépassé" -#: src/app/main/ui/dashboard/team.cljs:788 msgid "errors.webhooks.unexpected" msgstr "Erreur inattendue lors de la validation" -#: src/app/main/ui/dashboard/team.cljs:798, src/app/main/ui/dashboard/team.cljs:955 msgid "errors.webhooks.unexpected-status" msgstr "Statut inattendu %s" -#: src/app/main/ui/auth/login.cljs:109, src/app/main/ui/auth/login.cljs:113 +#: src/app/main/ui/auth/login.cljs msgid "errors.wrong-credentials" msgstr "E-mail ou mot de passe incorrect." -#: src/app/main/ui/settings/password.cljs:25 +#: src/app/main/ui/settings/password.cljs msgid "errors.wrong-old-password" msgstr "L’ancien mot de passe est incorrect" -#: src/app/main/ui/settings/feedback.cljs:77 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.description" msgstr "Description" -#: src/app/main/ui/settings/feedback.cljs:95 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.discourse-go-to" msgstr "Accéder au forum Penpot" -#: src/app/main/ui/settings/feedback.cljs:89 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.discourse-subtitle1" msgstr "" "Nous sommes heureux de vous avoir ici. Si vous avez besoin d'aide, merci " "d'effectuer une recherche avant de poster." -#: src/app/main/ui/settings/feedback.cljs:88 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.discourse-title" msgstr "Communauté Penpot" -#: src/app/main/ui/settings/feedback.cljs:72 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.subject" msgstr "Sujet" -#: src/app/main/ui/settings/feedback.cljs:69 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.subtitle" msgstr "" "Veuillez décrire la raison de votre e-mail, en précisant s'il s'agit d'un " "problème, d'une idée ou d'un doute. Un membre de notre équipe vous répondra " "dans les plus brefs délais." -#: src/app/main/ui/settings/feedback.cljs:68 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.title" msgstr "Email" -#: src/app/main/ui/settings/feedback.cljs:105 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.twitter-go-to" msgstr "Accéder à X" -#: src/app/main/ui/settings/feedback.cljs:99 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.twitter-subtitle1" msgstr "Nous sommes là pour répondre à vos questions techniques." -#: src/app/main/ui/settings/feedback.cljs:98 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.twitter-title" msgstr "Compte d’assistance X" -#: src/app/main/ui/settings/password.cljs:30 +#: src/app/main/ui/settings/password.cljs msgid "generic.error" msgstr "Une erreur s’est produite" -#: src/app/main/ui/viewer/inspect/attributes/blur.cljs:26 +#: src/app/main/ui/inspect/attributes/blur.cljs msgid "inspect.attributes.blur" msgstr "Flou" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:115 +#: src/app/main/ui/inspect/attributes/blur.cljs msgid "inspect.attributes.blur.value" msgstr "Valeur" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:112 +#: src/app/main/ui/inspect/attributes/common.cljs msgid "inspect.attributes.color.hex" msgstr "HEX" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:114 +#: src/app/main/ui/inspect/attributes/common.cljs msgid "inspect.attributes.color.hsla" msgstr "HSLA" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:113 +#: src/app/main/ui/inspect/attributes/common.cljs msgid "inspect.attributes.color.rgba" msgstr "RGBA" -#: src/app/main/ui/viewer/inspect/attributes/fill.cljs:57 +#: src/app/main/ui/inspect/attributes/fill.cljs msgid "inspect.attributes.fill" msgstr "Remplir" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:99, src/app/main/ui/viewer/inspect/attributes/image.cljs:51 +#: src/app/main/ui/inspect/attributes/image.cljs msgid "inspect.attributes.image.download" msgstr "Télécharger l’image source" -#: src/app/main/ui/viewer/inspect/attributes/image.cljs:39 +#: src/app/main/ui/inspect/attributes/image.cljs msgid "inspect.attributes.image.height" msgstr "Hauteur" -#: src/app/main/ui/viewer/inspect/attributes/image.cljs:32 +#: src/app/main/ui/inspect/attributes/image.cljs msgid "inspect.attributes.image.width" msgstr "Largeur" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout" msgstr "Mise en page" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.height" msgstr "Hauteur" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.left" msgstr "Gauche" -#: src/app/main/ui/inspect/attributes/layout.cljs, src/app/main/ui/inspect/attributes/layout.cljs -#, unused +#: src/app/main/ui/inspect/attributes/layout.cljs, +#: src/app/main/ui/inspect/attributes/layout.cljs msgid "inspect.attributes.layout.radius" msgstr "Rayon" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.rotation" msgstr "Rotation" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.top" msgstr "Haut" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.width" msgstr "Largeur" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:57 +#: src/app/main/ui/inspect/attributes/shadow.cljs msgid "inspect.attributes.shadow" msgstr "Ombre" -#: src/app/main/ui/viewer/inspect/attributes/geometry.cljs:40 +#: src/app/main/ui/inspect/attributes/layout.cljs msgid "inspect.attributes.size" msgstr "Taille et position" -#: src/app/main/ui/viewer/inspect/attributes/stroke.cljs:52 +#: src/app/main/ui/inspect/attributes/stroke.cljs msgid "inspect.attributes.stroke" msgstr "Contour" -#, permanent, unused msgid "inspect.attributes.stroke.alignment.center" msgstr "Centre" -#, permanent, unused msgid "inspect.attributes.stroke.alignment.inner" msgstr "Intérieur" -#, permanent, unused msgid "inspect.attributes.stroke.alignment.outer" msgstr "Extérieur" -#, unused msgid "inspect.attributes.stroke.style.dotted" msgstr "Pointillé" -#, unused msgid "inspect.attributes.stroke.style.mixed" msgstr "Mixte" -#, unused msgid "inspect.attributes.stroke.style.none" msgstr "Aucun" -#, unused msgid "inspect.attributes.stroke.style.solid" msgstr "Solide" #: src/app/main/ui/inspect/attributes/stroke.cljs -#, unused msgid "inspect.attributes.stroke.width" msgstr "Épaisseur" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:81, src/app/main/ui/viewer/inspect/attributes/text.cljs:194 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography" msgstr "Typographie" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:89 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.font-family" msgstr "Police de caractères" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:107 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.font-size" msgstr "Taille de police" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:98 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.font-style" msgstr "Style de police" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:116 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.font-weight" msgstr "Graisse de la police" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:134 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.letter-spacing" msgstr "Interlettrage" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:125 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.line-height" msgstr "Interlignage" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:143 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.text-decoration" msgstr "Décoration de texte" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:145 msgid "inspect.attributes.typography.text-decoration.none" msgstr "Aucune" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:146 msgid "inspect.attributes.typography.text-decoration.strikethrough" msgstr "Barré" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:147 msgid "inspect.attributes.typography.text-decoration.underline" msgstr "Soulignage" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:156 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.text-transform" msgstr "Transformation de texte" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:158 msgid "inspect.attributes.typography.text-transform.lowercase" msgstr "Minuscule" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:159 msgid "inspect.attributes.typography.text-transform.none" msgstr "Aucune" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:160 msgid "inspect.attributes.typography.text-transform.titlecase" msgstr "Premières Lettres en Capitales" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:162 -msgid "inspect.attributes.typography.text-transform.unset" -msgstr "Non assigné" - -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:161 msgid "inspect.attributes.typography.text-transform.uppercase" msgstr "Capitales" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:140 msgid "inspect.empty.help" msgstr "Pour en savoir plus sur l'inspection, visitez le centre d'aide de Penpot" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:143 msgid "inspect.empty.more-info" msgstr "Plus d'informations sur l'inspection" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:135 msgid "inspect.empty.select" msgstr "" "Sélectionnez une forme, un plan de travail ou un groupe pour inspecter " "leurs propriétés et le code" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:125 +#: src/app/main/ui/inspect/right_sidebar.cljs msgid "inspect.tabs.code" msgstr "Code" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:98 msgid "inspect.tabs.code.selected.circle" msgstr "Cercle" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:99 msgid "inspect.tabs.code.selected.component" msgstr "Composant" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:100 msgid "inspect.tabs.code.selected.curve" msgstr "Courbe" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:101 msgid "inspect.tabs.code.selected.frame" msgstr "Plan de travail" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:102 msgid "inspect.tabs.code.selected.group" msgstr "Groupe" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:103 msgid "inspect.tabs.code.selected.image" msgstr "Image" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:104 msgid "inspect.tabs.code.selected.mask" msgstr "Masque" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:93 +#: src/app/main/ui/inspect/right_sidebar.cljs msgid "inspect.tabs.code.selected.multiple" msgstr "%s Sélectionné" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:105 msgid "inspect.tabs.code.selected.path" msgstr "Chemin" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:106 msgid "inspect.tabs.code.selected.rect" msgstr "Rectangle" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:107 msgid "inspect.tabs.code.selected.svg-raw" msgstr "SVG" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:108 msgid "inspect.tabs.code.selected.text" msgstr "Texte" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:115 +#: src/app/main/ui/inspect/right_sidebar.cljs msgid "inspect.tabs.info" msgstr "Information" -#: src/app/main/ui/workspace/main_menu.cljs:158 +#: src/app/main/ui/workspace/header.cljs msgid "label.shortcuts" msgstr "Raccourcis" -#: src/app/main/ui/dashboard/import.cljs:527 msgid "labels.accept" msgstr "Accepter" -#: src/app/main/ui/settings/sidebar.cljs:100 +#: src/app/main/ui/settings/sidebar.cljs msgid "labels.access-tokens" msgstr "Jetons d'accès" -#: src/app/main/ui/dashboard/team.cljs:968 msgid "labels.active" msgstr "Activé" -#: src/app/main/ui/dashboard/fonts.cljs:175 msgid "labels.add-custom-font" msgstr "Ajouter police personnalisée" -#: src/app/main/ui/dashboard/team.cljs:120, src/app/main/ui/dashboard/team.cljs:276, src/app/main/ui/dashboard/team.cljs:519, src/app/main/ui/dashboard/team.cljs:549, src/app/main/ui/onboarding/team_choice.cljs:67 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs msgid "labels.admin" msgstr "Administration" -#: src/app/main/ui/onboarding/questions.cljs:174 -msgid "labels.adobe-xd" -msgstr "Adobe XD" - #: src/app/main/ui/workspace/comments.cljs -#, unused msgid "labels.all" msgstr "Tous" -#: src/app/main/ui/auth.cljs:37 msgid "labels.and" msgstr "et" -#: src/app/main/ui/onboarding/team_choice.cljs:162 msgid "labels.back" msgstr "Retour" -#: src/app/main/ui/static.cljs:59 +#: src/app/main/ui/static.cljs msgid "labels.bad-gateway.desc-message" msgstr "" "Il semble que vous deviez attendre un peu et réessayer ; nous effectuons " "une petite maintenance de nos serveurs." -#: src/app/main/ui/static.cljs:58 +#: src/app/main/ui/static.cljs msgid "labels.bad-gateway.main-message" msgstr "Bad Gateway" -#: src/app/main/data/common.cljs:112, src/app/main/ui/dashboard/change_owner.cljs:69, src/app/main/ui/dashboard/import.cljs:514, src/app/main/ui/dashboard/team.cljs:868, src/app/main/ui/delete_shared.cljs:35, src/app/main/ui/export.cljs:164, src/app/main/ui/export.cljs:460, src/app/main/ui/settings/access_tokens.cljs:188, src/app/main/ui/viewer/share_link.cljs:203, src/app/main/ui/workspace/sidebar/assets/groups.cljs:149 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.cancel" msgstr "Annuler" -#: src/app/main/ui/onboarding/questions.cljs:176 -msgid "labels.canva" -msgstr "Canevas" - -#: src/app/main/ui/dashboard/projects.cljs:93, src/app/main/ui/export.cljs:478, src/app/main/ui/settings/access_tokens.cljs:183, src/app/main/ui/viewer/login.cljs:77, src/app/main/ui/viewer/share_link.cljs:174, src/app/main/ui/workspace/libraries.cljs:522 msgid "labels.close" msgstr "Fermer" -#: src/app/main/ui/dashboard/comments.cljs:104, src/app/main/ui/viewer/comments.cljs:70, src/app/main/ui/workspace/comments.cljs:126 +#: src/app/main/ui/dashboard/comments.cljs msgid "labels.comments" msgstr "Commentaires" -#: src/app/main/ui/dashboard/sidebar.cljs:985, src/app/main/ui/workspace/main_menu.cljs:110 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.community" msgstr "Communauté" -#: src/app/main/ui/settings/password.cljs:103 +#: src/app/main/ui/settings/password.cljs msgid "labels.confirm-password" msgstr "Confirmer le mot de passe" -#: src/app/main/ui/dashboard/import.cljs:520, src/app/main/ui/export.cljs:465, src/app/main/ui/onboarding/newsletter.cljs:101 msgid "labels.continue" msgstr "Continuer" -#, unused msgid "labels.continue-with" msgstr "Continuer avec" -#: src/app/main/ui/viewer/login.cljs:75 msgid "labels.continue-with-penpot" msgstr "Vous pouvez continuer avec un compte Penpot" -#: src/app/main/ui/dashboard/team.cljs:642 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.copy-invitation-link" msgstr "Copier le lien" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:157, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:190 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "labels.create" msgstr "Créer" -#: src/app/main/ui/dashboard/team_form.cljs:101, src/app/main/ui/dashboard/team_form.cljs:121 +#: src/app/main/ui/dashboard/team_form.cljs, +#: src/app/main/ui/dashboard/team_form.cljs msgid "labels.create-team" msgstr "Créer nouvelle équipe" -#: src/app/main/ui/dashboard/team_form.cljs:113 +#: src/app/main/ui/dashboard/team_form.cljs msgid "labels.create-team.placeholder" msgstr "Entrer le nom de la nouvelle équipe" -#, unused msgid "labels.custom-fonts" msgstr "Polices personnalisées" -#: src/app/main/ui/settings/sidebar.cljs:73 +#: src/app/main/ui/settings/sidebar.cljs msgid "labels.dashboard" msgstr "Tableau de bord" -#: src/app/main/ui/dashboard/file_menu.cljs:306, src/app/main/ui/dashboard/fonts.cljs:255, src/app/main/ui/dashboard/fonts.cljs:332, src/app/main/ui/dashboard/fonts.cljs:346, src/app/main/ui/dashboard/project_menu.cljs:115, src/app/main/ui/dashboard/team.cljs:904, src/app/main/ui/settings/access_tokens.cljs:209, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:209 +#: src/app/main/ui/dashboard/project_menu.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.delete" msgstr "Supprimer" -#: src/app/main/ui/comments.cljs:357 +#: src/app/main/ui/comments.cljs msgid "labels.delete-comment" msgstr "Supprimer le commentaire" -#: src/app/main/ui/comments.cljs:354 +#: src/app/main/ui/comments.cljs msgid "labels.delete-comment-thread" msgstr "Supprimer le fil" -#: src/app/main/ui/dashboard/team.cljs:648 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.delete-invitation" msgstr "Supprimer l'invitation" -#: src/app/main/ui/dashboard/file_menu.cljs:262 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.delete-multi-files" msgstr "Supprimer %s fichiers" -#: src/app/main/ui/onboarding/questions.cljs:250 -msgid "labels.developer" -msgstr "Développeur" - -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:199 msgid "labels.discard" msgstr "Rejeter" -#: src/app/main/ui/dashboard/file_menu.cljs:28, src/app/main/ui/dashboard/files.cljs:72, src/app/main/ui/dashboard/files.cljs:156, src/app/main/ui/dashboard/projects.cljs:220, src/app/main/ui/dashboard/projects.cljs:224, src/app/main/ui/dashboard/sidebar.cljs:791 +#: src/app/main/ui/dashboard/projects.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs, +#: src/app/main/ui/dashboard/files.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.drafts" msgstr "Brouillons" -#: src/app/main/ui/comments.cljs:350, src/app/main/ui/dashboard/fonts.cljs:252, src/app/main/ui/dashboard/team.cljs:902, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:205 +#: src/app/main/ui/comments.cljs msgid "labels.edit" msgstr "Modifier" -#, unused msgid "labels.edit-file" msgstr "Modifier le fichier" -#: src/app/main/ui/dashboard/team.cljs:118, src/app/main/ui/dashboard/team.cljs:279, src/app/main/ui/dashboard/team.cljs:520, src/app/main/ui/dashboard/team.cljs:553, src/app/main/ui/onboarding/team_choice.cljs:66 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs msgid "labels.editor" msgstr "Éditeur" -#: src/app/main/ui/dashboard/team.cljs:661 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.expired-invitation" msgstr "Expirée" -#: src/app/main/ui/export.cljs:173 msgid "labels.export" msgstr "Exporter" -#: src/app/main/ui/settings/feedback.cljs:51 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.feedback-disabled" msgstr "Avis désactivés" -#: src/app/main/ui/settings/feedback.cljs:42 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.feedback-sent" msgstr "Avis envoyé" -#: src/app/main/ui/onboarding/questions.cljs:170 -msgid "labels.figma" -msgstr "Figma" - -#: src/app/main/ui/dashboard/fonts.cljs:412 msgid "labels.font-family" msgstr "Famille de polices" -#, unused msgid "labels.font-providers" msgstr "Fournisseurs de polices" -#: src/app/main/ui/dashboard/fonts.cljs:413 msgid "labels.font-variants" msgstr "Styles" -#: src/app/main/ui/dashboard/fonts.cljs:52, src/app/main/ui/dashboard/sidebar.cljs:811 msgid "labels.fonts" msgstr "Polices" -#: src/app/main/ui/onboarding/questions.cljs:263 -msgid "labels.founder" -msgstr "Fondateur/Direction" - -#: src/app/main/ui/onboarding/questions.cljs:262 -msgid "labels.freelancer" -msgstr "Je suis freelance" - -#: src/app/main/ui/dashboard/sidebar.cljs:1015, src/app/main/ui/workspace/main_menu.cljs:142 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.github-repo" msgstr "Dépôt GitHub" -#: src/app/main/ui/dashboard/sidebar.cljs:1032, src/app/main/ui/settings/sidebar.cljs:113, src/app/main/ui/workspace/main_menu.cljs:171 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/settings/sidebar.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.give-feedback" msgstr "Donnez votre avis" -#: src/app/main/ui/auth/recovery_request.cljs:110, src/app/main/ui/auth/register.cljs:285, src/app/main/ui/viewer/login.cljs:117 msgid "labels.go-back" msgstr "Retour" -#: src/app/main/ui/dashboard/sidebar.cljs:978, src/app/main/ui/workspace/main_menu.cljs:102 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.help-center" msgstr "Centre d'aide" -#: src/app/main/ui/viewer/comments.cljs:103, src/app/main/ui/workspace/comments.cljs:67 +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs msgid "labels.hide-resolved-comments" msgstr "Masquer les commentaires résolus" -#: src/app/main/ui/dashboard/team.cljs:969 msgid "labels.inactive" msgstr "Inactif" -#: src/app/main/ui/dashboard/fonts.cljs:410 msgid "labels.installed-fonts" msgstr "Polices installées" -#: src/app/main/ui/static.cljs:144 +#: src/app/main/ui/static.cljs msgid "labels.internal-error.desc-message" msgstr "" "Un problème s’est produit. Veuillez réessayer l’opération et, si le " "problème persiste, contacter le service technique." -#: src/app/main/ui/static.cljs:143 +#: src/app/main/ui/static.cljs msgid "labels.internal-error.main-message" msgstr "Erreur interne" -#: src/app/main/ui/onboarding/questions.cljs:178 -msgid "labels.invision" -msgstr "InVision" - -#: src/app/main/ui/dashboard/sidebar.cljs:516, src/app/main/ui/dashboard/team.cljs:89, src/app/main/ui/dashboard/team.cljs:97, src/app/main/ui/dashboard/team.cljs:708 +#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.invitations" msgstr "Invitations" -#: src/app/main/ui/settings/options.cljs:51 +#: src/app/main/ui/settings/options.cljs msgid "labels.language" msgstr "Langue" -#: src/app/main/ui/dashboard/sidebar.cljs:1008, src/app/main/ui/workspace/main_menu.cljs:134 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.libraries-and-templates" msgstr "Bibliothèques et modèles" -#: src/app/main/ui/viewer/header.cljs:203 msgid "labels.log-or-sign" msgstr "Se connecter ou s'inscrire" -#: src/app/main/ui/dashboard/sidebar.cljs:1040 +#: src/app/main/ui/settings.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.logout" msgstr "Se déconnecter" -#: src/app/main/ui/onboarding/questions.cljs:253 -msgid "labels.marketing" -msgstr "Marketing" - -#: src/app/main/ui/dashboard/team.cljs:468 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.member" msgstr "Membre" -#: src/app/main/ui/dashboard/sidebar.cljs:510, src/app/main/ui/dashboard/team.cljs:87, src/app/main/ui/dashboard/team.cljs:95 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.members" msgstr "Membres" -#: src/app/main/ui/settings/password.cljs:96 +#: src/app/main/ui/settings/password.cljs msgid "labels.new-password" msgstr "Nouveau mot de passe" -#: src/app/main/ui/dashboard/templates.cljs:269, src/app/main/ui/onboarding/questions.cljs:55 -msgid "labels.next" -msgstr "Suivant" - -#: src/app/main/ui/dashboard/comments.cljs:128, src/app/main/ui/workspace/comments.cljs:161 +#: src/app/main/ui/workspace/comments.cljs, +#: src/app/main/ui/dashboard/comments.cljs msgid "labels.no-comments-available" msgstr "Vous n’avez aucune notification de commentaire en attente." -#: src/app/main/ui/dashboard/team.cljs:694 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.no-invitations" msgstr "Aucune invitation en attente." -#: src/app/main/ui/dashboard/team.cljs:696 +#: src/app/main/ui/dashboard/team.cljs #, markdown msgid "labels.no-invitations-hint" msgstr "" "Appuyez sur le bouton \"Inviter des personnes\" pour inviter d'autres " "membres à cette équipe." -#: src/app/main/ui/static.cljs:50 +#: src/app/main/ui/static.cljs msgid "labels.not-found.desc-message" msgstr "" "Cette page n’existe pas ou vous ne disposez pas des permissions nécessaires " "pour y accéder." -#: src/app/main/ui/static.cljs:49 +#: src/app/main/ui/static.cljs msgid "labels.not-found.main-message" msgstr "Oups !" -#: src/app/main/ui/dashboard/projects.cljs:239, src/app/main/ui/dashboard/team.cljs:1095 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.num-of-files" msgid_plural "labels.num-of-files" msgstr[0] "1 fichier" msgstr[1] "%s fichiers" -#: src/app/main/ui/viewer/thumbnails.cljs:80 msgid "labels.num-of-frames" msgid_plural "labels.num-of-frames" msgstr[0] "1 plan de travail" msgstr[1] "%s plans de travail" -#: src/app/main/ui/dashboard/team.cljs:1090 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.num-of-projects" msgid_plural "labels.num-of-projects" msgstr[0] "1 projet" msgstr[1] "%s projets" -#: src/app/main/ui/settings/password.cljs:89 +#: src/app/main/ui/settings/password.cljs msgid "labels.old-password" msgstr "Ancien mot de passe" #: src/app/main/ui/workspace/comments.cljs -#, unused msgid "labels.only-yours" msgstr "Seulement les vôtres" -#, unused msgid "labels.or" msgstr "ou" -#: src/app/main/ui/onboarding/questions.cljs:145, src/app/main/ui/onboarding/questions.cljs:214, src/app/main/ui/onboarding/questions.cljs:303, src/app/main/ui/onboarding/questions.cljs:316, src/app/main/ui/onboarding/questions.cljs:389, src/app/main/ui/onboarding/questions.cljs:447 -msgid "labels.other" -msgstr "Autres (préciser)" - -#: src/app/main/ui/dashboard/team.cljs:286, src/app/main/ui/dashboard/team.cljs:518, src/app/main/ui/dashboard/team.cljs:1076 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs msgid "labels.owner" msgstr "Propriétaire" -#: src/app/main/ui/settings/sidebar.cljs:87 +#: src/app/main/ui/settings/sidebar.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.password" msgstr "Mot de passe" -#: src/app/main/ui/dashboard/team.cljs:662 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.pending-invitation" msgstr "En attente" -#: src/app/main/ui/onboarding/questions.cljs:51 -msgid "labels.previous" -msgstr "Précédent" - -#: src/app/main/ui/onboarding/questions.cljs:254 -msgid "labels.product-management" -msgstr "Gestionnaire de produit ou de projet" - -#: src/app/main/ui/settings/profile.cljs:118, src/app/main/ui/settings/sidebar.cljs:82 +#: src/app/main/ui/settings/sidebar.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.profile" msgstr "Profil" -#: src/app/main/ui/dashboard/sidebar.cljs:784 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.projects" msgstr "Projets" -#: src/app/main/ui/dashboard/sidebar.cljs:998, src/app/main/ui/settings/sidebar.cljs:106, src/app/main/ui/workspace/main_menu.cljs:126 +#: src/app/main/ui/settings/sidebar.cljs msgid "labels.release-notes" msgstr "Notes de version" #: src/app/main/ui/workspace.cljs -#, unused msgid "labels.reload-file" msgstr "Actualiser le fichier" -#: src/app/main/ui/workspace/libraries.cljs, src/app/main/ui/dashboard/team.cljs -#, unused +#: src/app/main/ui/workspace/libraries.cljs, +#: src/app/main/ui/dashboard/team.cljs msgid "labels.remove" msgstr "Retirer" -#: src/app/main/ui/dashboard/team.cljs:316 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.remove-member" msgstr "Retirer le membre" -#: src/app/main/ui/dashboard/file_menu.cljs:271, src/app/main/ui/dashboard/project_menu.cljs:85, src/app/main/ui/dashboard/sidebar.cljs:539, src/app/main/ui/workspace/sidebar/assets/groups.cljs:157 +#: src/app/main/ui/dashboard/sidebar.cljs, +#: src/app/main/ui/dashboard/project_menu.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.rename" msgstr "Renommer" -#: src/app/main/ui/dashboard/team_form.cljs:99 +#: src/app/main/ui/dashboard/team_form.cljs msgid "labels.rename-team" msgstr "Renommer l'équipe" -#: src/app/main/ui/dashboard/team.cljs:645 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.resend-invitation" msgstr "Renvoyer l'invitation" -#: src/app/main/ui/static.cljs:61, src/app/main/ui/static.cljs:70, src/app/main/ui/static.cljs:148 +#: src/app/main/ui/static.cljs, src/app/main/ui/static.cljs msgid "labels.retry" msgstr "Réessayer" -#: src/app/main/ui/dashboard/team.cljs:469, src/app/main/ui/dashboard/team.cljs:709 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.role" msgstr "Rôle" -#: src/app/main/ui/dashboard/fonts.cljs:380, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:191 msgid "labels.save" msgstr "Enregistrer" -#: src/app/main/ui/onboarding/questions.cljs:414, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:436 -msgid "labels.search" -msgstr "Rechercher" - -#: src/app/main/ui/dashboard/fonts.cljs:415 msgid "labels.search-font" msgstr "Rechercher une police" -#: src/app/main/ui/onboarding/questions.cljs:90, src/app/main/ui/onboarding/questions.cljs:248, src/app/main/ui/onboarding/questions.cljs:259, src/app/main/ui/onboarding/questions.cljs:270 -msgid "labels.select-option" -msgstr "Sélectionnez une option" - -#: src/app/main/ui/settings/feedback.cljs:82 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.send" msgstr "Envoyer" -#: src/app/main/ui/settings/feedback.cljs:82 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.sending" msgstr "Envoi…" -#: src/app/main/ui/static.cljs:68 +#: src/app/main/ui/static.cljs msgid "labels.service-unavailable.desc-message" msgstr "Nous sommes en maintenance planifiée de nos systèmes." -#: src/app/main/ui/static.cljs:67 +#: src/app/main/ui/static.cljs msgid "labels.service-unavailable.main-message" msgstr "Service non disponible" -#: src/app/main/ui/dashboard/sidebar.cljs:530, src/app/main/ui/dashboard/team.cljs:88, src/app/main/ui/dashboard/team.cljs:102, src/app/main/ui/settings/options.cljs:84, src/app/main/ui/settings/sidebar.cljs:93 +#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.settings" msgstr "Configuration" -#: src/app/main/ui/viewer/header.cljs:199 -msgid "labels.share" -msgstr "Partager" - -#, unused +#: src/app/main/ui/viewer/header.cljs, src/app/main/ui/viewer/header.cljs msgid "labels.share-prototype" msgstr "Partager le prototype" -#: src/app/main/ui/dashboard/sidebar.cljs:800 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.shared-libraries" msgstr "Bibliothèques Partagées" -#: src/app/main/ui/viewer/comments.cljs:82, src/app/main/ui/workspace/comments.cljs:55, src/app/main/ui/workspace/comments.cljs:135 +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs msgid "labels.show-all-comments" msgstr "Afficher tous les commentaires" -#: src/app/main/ui/viewer/comments.cljs:115 msgid "labels.show-comments-list" msgstr "Afficher la liste des commentaires" -#: src/app/main/ui/viewer/comments.cljs:91, src/app/main/ui/workspace/comments.cljs:61, src/app/main/ui/workspace/comments.cljs:136 +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs msgid "labels.show-your-comments" msgstr "Afficher uniquement vos commentaires" -#: src/app/main/ui/onboarding/questions.cljs:172 -msgid "labels.sketch" -msgstr "Sketch" - -#: src/app/main/ui/onboarding/questions.cljs:56 -msgid "labels.start" -msgstr "Commencer" - -#: src/app/main/ui/dashboard/team.cljs:710 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.status" msgstr "Statut" -#: src/app/main/ui/onboarding/questions.cljs:251 -msgid "labels.student-teacher" -msgstr "Étudiant ou enseignant" - -#: src/app/main/ui/dashboard/sidebar.cljs:992, src/app/main/ui/workspace/main_menu.cljs:118 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.tutorials" msgstr "Tutoriels" -#: src/app/main/ui/dashboard/file_menu.cljs:256 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.unpublish-multi-files" msgstr "Dépublier %s fichiers" -#: src/app/main/ui/settings/profile.cljs:103 +#: src/app/main/ui/settings/profile.cljs msgid "labels.update" msgstr "Actualiser" -#: src/app/main/ui/dashboard/team_form.cljs:120 +#: src/app/main/ui/dashboard/team_form.cljs msgid "labels.update-team" msgstr "Mettre à jour l'équipe" -#: src/app/main/ui/dashboard/fonts.cljs:241 msgid "labels.upload" msgstr "Télécharger" -#: src/app/main/ui/dashboard/fonts.cljs:169 msgid "labels.upload-custom-fonts" msgstr "Télécharger des polices personnalisées" -#: src/app/main/ui/dashboard/fonts.cljs:240 msgid "labels.uploading" msgstr "Téléchargement…" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs:223 msgid "labels.view-only" msgstr "Lecture seule" -#: src/app/main/ui/dashboard/team.cljs:123, src/app/main/ui/dashboard/team.cljs:282, src/app/main/ui/dashboard/team.cljs:521 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.viewer" msgstr "Spectateur" -#: src/app/main/ui/dashboard/sidebar.cljs:523, src/app/main/ui/dashboard/team.cljs:90, src/app/main/ui/dashboard/team.cljs:100, src/app/main/ui/dashboard/team.cljs:880 msgid "labels.webhooks" msgstr "Webhooks" -#: src/app/main/ui/comments.cljs:194 +#: src/app/main/ui/comments.cljs msgid "labels.write-new-comment" msgstr "Écrire un nouveau commentaire" -#: src/app/main/ui/dashboard/team.cljs:237 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.you" msgstr "(vous)" -#: src/app/main/ui/dashboard/sidebar.cljs:968 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.your-account" msgstr "Votre compte" -#: src/app/main/ui/workspace/colorpicker.cljs:297, src/app/main/ui/workspace/colorpicker.cljs:298, src/app/main/ui/workspace/colorpicker.cljs:300 -msgid "media.choose-image" -msgstr "Choisir image" - -#, unused -msgid "media.gradient" -msgstr "Gradient" - -#: src/app/main/data/workspace/media.cljs:275, src/app/main/ui/components/color_bullet.cljs:32, src/app/main/ui/components/color_bullet.cljs:45, src/app/main/ui/viewer/inspect/attributes/common.cljs:66, src/app/main/ui/workspace/colorpicker.cljs:211, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:237 -msgid "media.image" -msgstr "Image" - -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:77 -msgid "media.image.short" -msgstr "img" - -#: src/app/main/ui/workspace/colorpicker.cljs:290 -msgid "media.keep-aspect-ratio" -msgstr "Conserver le ratio" - -#: src/app/main/ui/workspace/colorpicker.cljs:208 -msgid "media.linear" -msgstr "Linéaire" - -#: src/app/main/data/media.cljs:49, src/app/main/data/workspace/media.cljs:223, src/app/main/data/workspace/media.cljs:453 +#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs msgid "media.loading" msgstr "Chargement de l’image…" -#: src/app/main/ui/workspace/colorpicker.cljs:209 -msgid "media.radial" -msgstr "Radial" - -#: src/app/main/ui/workspace/colorpicker.cljs:206 -msgid "media.solid" -msgstr "Solide" - -#: src/app/main/data/common.cljs:111 msgid "modals.add-shared-confirm-empty.hint" msgstr "" "Votre bibliothèque est vide. Une fois ajoutées comme Bibliothèque Partagée, " "les ressources que vous créez seront utilisables dans vos autres fichiers. " "Voulez-vous vraiment les publier ?" -#: src/app/main/data/common.cljs:113 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.add-shared-confirm.accept" msgstr "Ajouter comme Bibliothèque Partagée" -#: src/app/main/data/common.cljs:111 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.add-shared-confirm.hint" msgstr "" "Une fois ajoutées en tant que Bibliothèque Partagée, les ressources de " "cette bibliothèque de fichiers seront disponibles pour être utilisées parmi " "le reste de vos fichiers." -#: src/app/main/data/common.cljs:110 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.add-shared-confirm.message" msgstr "Ajouter « %s » comme Bibliothèque Partagée" -#: src/app/main/ui/workspace/nudge.cljs:60 +#: src/app/main/ui/workspace/nudge.cljs msgid "modals.big-nudge" msgstr "Grand nudge" -#: src/app/main/ui/settings/change_email.cljs:127 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.confirm-email" msgstr "Vérifier la nouvelle adresse e‑mail" -#: src/app/main/ui/settings/change_email.cljs:114 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.info" msgstr "" "Nous enverrons un e‑mail à votre adresse actuelle « %s » pour vérifier " "votre identité." -#: src/app/main/ui/settings/change_email.cljs:119 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.new-email" msgstr "Nouvel e‑mail" -#: src/app/main/ui/settings/change_email.cljs:136 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.submit" msgstr "Changer adresse e‑mail" -#: src/app/main/ui/settings/change_email.cljs:107 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.title" msgstr "Changez votre adresse e‑mail" -#: src/app/main/ui/settings/access_tokens.cljs:165, src/app/main/ui/settings/access_tokens.cljs:171 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.create-access-token.copy-token" msgstr "Copier le jeton" -#: src/app/main/ui/settings/access_tokens.cljs:142 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.create-access-token.expiration-date.label" msgstr "Date d'expiration" -#: src/app/main/ui/settings/access_tokens.cljs:136 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.create-access-token.name.label" msgstr "Nom" -#: src/app/main/ui/settings/access_tokens.cljs:138 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.create-access-token.name.placeholder" msgstr "Le nom aide à savoir comment le jeton sera utilisé" -#: src/app/main/ui/settings/access_tokens.cljs:191 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.create-access-token.submit-label" msgstr "Créer un jeton" -#: src/app/main/ui/settings/access_tokens.cljs:123 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.create-access-token.title" msgstr "Générer un jeton d'accès" -#: src/app/main/ui/dashboard/team.cljs:873 msgid "modals.create-webhook.submit-label" msgstr "Créer un webhook" -#: src/app/main/ui/dashboard/team.cljs:838 msgid "modals.create-webhook.title" msgstr "Créer un webhook" -#: src/app/main/ui/dashboard/team.cljs:849 msgid "modals.create-webhook.url.label" msgstr "URL de charge utile" -#: src/app/main/ui/dashboard/team.cljs:850 msgid "modals.create-webhook.url.placeholder" msgstr "https://example.com/postreceive" -#: src/app/main/ui/settings/access_tokens.cljs:271 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.delete-acces-token.accept" msgstr "Supprimer le jeton" -#: src/app/main/ui/settings/access_tokens.cljs:270 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.delete-acces-token.message" msgstr "Confirmez-vous que vous souhaitez supprimer ce jeton ?" -#: src/app/main/ui/settings/access_tokens.cljs:269 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.delete-acces-token.title" msgstr "Supprimer le jeton" -#: src/app/main/ui/settings/delete_account.cljs:59 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.cancel" msgstr "Annuler et conserver mon compte" -#: src/app/main/ui/settings/delete_account.cljs:64 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.confirm" msgstr "Oui, supprimer mon compte" -#: src/app/main/ui/settings/delete_account.cljs:53 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.info" msgstr "" "En supprimant votre compte, vous perdrez tous vos projets et archives " "actuelles." -#: src/app/main/ui/settings/delete_account.cljs:46 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.title" msgstr "Êtes‑vous sûr de vouloir supprimer votre compte ?" -#: src/app/main/ui/comments.cljs:298 +#: src/app/main/ui/comments.cljs msgid "modals.delete-comment-thread.accept" msgstr "Supprimer la conversation" -#: src/app/main/ui/comments.cljs:297 +#: src/app/main/ui/comments.cljs msgid "modals.delete-comment-thread.message" msgstr "" "Êtes‑vous sûr de vouloir supprimer cette conversation ? Tous les " "commentaires de ce fil seront supprimés." -#: src/app/main/ui/comments.cljs:296 +#: src/app/main/ui/comments.cljs msgid "modals.delete-comment-thread.title" msgstr "Supprimer une conversation" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:140 msgid "modals.delete-component-annotation.message" msgstr "Confirmez-vous vouloir supprimer cette note ?" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:139 msgid "modals.delete-component-annotation.title" msgstr "Supprimer la note" -#: src/app/main/ui/dashboard/file_menu.cljs:123 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-confirm.accept" msgstr "Supprimer le fichier" -#: src/app/main/ui/dashboard/file_menu.cljs:122 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-confirm.message" msgstr "Êtes‑vous sûr de vouloir supprimer ce fichier ?" -#: src/app/main/ui/dashboard/file_menu.cljs:121 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-confirm.title" msgstr "Supprimer un fichier" -#: src/app/main/ui/dashboard/file_menu.cljs:117 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-multi-confirm.accept" msgstr "Supprimer les fichiers" -#: src/app/main/ui/dashboard/file_menu.cljs:116 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-multi-confirm.message" msgstr "Êtes-vous sûr de vouloir supprimer %s fichiers ?" -#: src/app/main/ui/dashboard/file_menu.cljs:115 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-multi-confirm.title" msgstr "Suppression de %s fichiers" -#: src/app/main/ui/dashboard/fonts.cljs:345 msgid "modals.delete-font-variant.message" msgstr "" "Êtes-vous sûr de vouloir supprimer ce style de police ? Il ne sera pas " "chargé si il est utilisé dans un fichier." -#: src/app/main/ui/dashboard/fonts.cljs:344 msgid "modals.delete-font-variant.title" msgstr "Suppression du style de police" -#: src/app/main/ui/dashboard/fonts.cljs:331 msgid "modals.delete-font.message" msgstr "" "Êtes-vous sûr de vouloir supprimer cette police ? Elle ne se chargera pas " "si elle est utilisée dans un fichier." -#: src/app/main/ui/dashboard/fonts.cljs:330 msgid "modals.delete-font.title" msgstr "Suppression de la police" -#: src/app/main/ui/workspace/context_menu.cljs:522, src/app/main/ui/workspace/sidebar/sitemap.cljs:45 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs msgid "modals.delete-page.body" msgstr "Êtes‑vous sûr de vouloir supprimer cette page ?" -#: src/app/main/ui/workspace/context_menu.cljs:521, src/app/main/ui/workspace/sidebar/sitemap.cljs:44 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs msgid "modals.delete-page.title" msgstr "Supprimer une page" -#: src/app/main/ui/dashboard/project_menu.cljs:69 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "modals.delete-project-confirm.accept" msgstr "Supprimer le projet" -#: src/app/main/ui/dashboard/project_menu.cljs:68 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "modals.delete-project-confirm.message" msgstr "Êtes‑vous sûr de vouloir supprimer ce projet ?" -#: src/app/main/ui/dashboard/project_menu.cljs:67 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "modals.delete-project-confirm.title" msgstr "Supprimer un projet" -#: src/app/main/ui/delete_shared.cljs:51 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.accept" msgid_plural "modals.delete-shared-confirm.accept" msgstr[0] "Supprimer le fichier" msgstr[1] "Supprimer les fichiers" -#: src/app/main/ui/delete_shared.cljs:55 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.activated.no-files-message" msgid_plural "modals.delete-shared-confirm.activated.no-files-message" msgstr[0] "Activé dans aucun fichier." msgstr[1] "Activés dans aucun fichier." -#: src/app/main/ui/delete_shared.cljs:57 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.activated.scd-message" msgid_plural "modals.delete-shared-confirm.activated.scd-message" msgstr[0] "Cette bibliothèque est active ici : " msgstr[1] "Ces bibliothèques sont actives ici : " -#: src/app/main/ui/delete_shared.cljs:46 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.message" msgid_plural "modals.delete-shared-confirm.message" msgstr[0] "Vous confirmez vouloir supprimer ce fichier ?" msgstr[1] "Vous confirmez vouloir supprimer ces fichiers ?" -#: src/app/main/ui/delete_shared.cljs:41 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.title" msgid_plural "modals.delete-shared-confirm.title" msgstr[0] "Suppression du fichier" msgstr[1] "Suppression des fichiers" -#: src/app/main/ui/dashboard/sidebar.cljs:435 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.delete-team-confirm.accept" msgstr "Supprimer l’équipe" -#: src/app/main/ui/dashboard/sidebar.cljs:434 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.delete-team-confirm.message" msgstr "" "Êtes‑vous sûr de vouloir supprimer cette équipe ? Tous les projets et " "fichiers associés à l’équipe seront définitivement supprimés." -#: src/app/main/ui/dashboard/sidebar.cljs:433 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.delete-team-confirm.title" msgstr "Suppression d’une équipe" -#: src/app/main/ui/dashboard/team.cljs:427 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.delete-team-member-confirm.accept" msgstr "Supprimer le membre" -#: src/app/main/ui/dashboard/team.cljs:426 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.delete-team-member-confirm.message" msgstr "Êtes‑vous sûr de vouloir supprimer ce membre de l’équipe ?" -#: src/app/main/ui/dashboard/team.cljs:425 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.delete-team-member-confirm.title" msgstr "Supprimer un membre d’équipe" -#: src/app/main/ui/delete_shared.cljs:59 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-unpublish-shared-confirm.activated.hint" msgid_plural "modals.delete-unpublish-shared-confirm.activated.hint" msgstr[0] "" @@ -2277,3472 +2002,3218 @@ msgstr[1] "" "Les éléments déjà utilisés dans ces fichiers resteront en place (aucun " "design ne sera altéré)." -#: src/app/main/ui/dashboard/team.cljs:942 msgid "modals.delete-webhook.accept" msgstr "Supprimer le webhook" -#: src/app/main/ui/dashboard/team.cljs:941 msgid "modals.delete-webhook.message" msgstr "Vous confirmez vouloir supprimer le webhook ?" -#: src/app/main/ui/dashboard/team.cljs:940 msgid "modals.delete-webhook.title" msgstr "Suppression du webhook en cours" -#: src/app/main/ui/dashboard/team.cljs:872 msgid "modals.edit-webhook.submit-label" msgstr "Modifier le webhook" -#: src/app/main/ui/dashboard/team.cljs:837 msgid "modals.edit-webhook.title" msgstr "Modifier le webhook" -#: src/app/main/ui/dashboard/team.cljs:218 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.invite-member-confirm.accept" msgstr "Envoyer l'invitation" -#: src/app/main/ui/dashboard/team.cljs:213, src/app/main/ui/onboarding/team_choice.cljs:156 msgid "modals.invite-member.emails" msgstr "Adresse e-mail, séparées par des virgules" -#: src/app/main/ui/dashboard/team.cljs:197 msgid "modals.invite-member.repeated-invitation" msgstr "" "Certains emails appartiennent à des membres actuels de l'équipe. Les " "invitations ne leur seront pas envoyées." -#: src/app/main/ui/dashboard/team.cljs:190 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.invite-team-member.title" msgstr "Inviter des membres dans l'équipe" -#: src/app/main/ui/dashboard/sidebar.cljs:423, src/app/main/ui/dashboard/team.cljs:393 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-close-confirm.hint" msgstr "" "Comme vous êtes le seul membre de l'équipe, celle-ci sera supprimée avec " "ses projets et fichiers." -#: src/app/main/ui/dashboard/sidebar.cljs:422, src/app/main/ui/dashboard/team.cljs:392 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-close-confirm.message" msgstr "Êtes-vous sûr de vouloir quitter l'équipe %s ?" -#: src/app/main/ui/dashboard/change_owner.cljs:59 msgid "modals.leave-and-reassign.forbidden" msgstr "" "Vous ne pouvez pas quitter l'équipe si il n'y a aucun membre à promouvoir " "comme propriétaire. Vous pourriez plutôt supprimer l'équipe." -#: src/app/main/ui/dashboard/change_owner.cljs:55 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-reassign.hint1" msgstr "Vous êtes le propriétaire de %s." -#: src/app/main/ui/dashboard/change_owner.cljs:78 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-reassign.promote-and-leave" msgstr "Promouvoir et quitter" -#: src/app/main/ui/dashboard/change_owner.cljs:34 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-reassign.select-member-to-promote" msgstr "Sélectionnez un membre à promouvoir" -#: src/app/main/ui/dashboard/change_owner.cljs:49 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-reassign.title" msgstr "Sélectionnez un membre à promouvoir" -#: src/app/main/ui/dashboard/sidebar.cljs:402, src/app/main/ui/dashboard/sidebar.cljs:424, src/app/main/ui/dashboard/team.cljs:394, src/app/main/ui/dashboard/team.cljs:416 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-confirm.accept" msgstr "Quitter l’équipe" -#: src/app/main/ui/dashboard/sidebar.cljs:401, src/app/main/ui/dashboard/team.cljs:415 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-confirm.message" msgstr "Êtes‑vous sûr de vouloir quitter cette équipe ?" -#: src/app/main/ui/dashboard/sidebar.cljs:400, src/app/main/ui/dashboard/sidebar.cljs:421, src/app/main/ui/dashboard/team.cljs:391, src/app/main/ui/dashboard/team.cljs:414 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-confirm.title" msgstr "Quitter l’équipe" -#: src/app/main/ui/delete_shared.cljs:53 -msgid "modals.move-shared-confirm.accept" -msgid_plural "modals.move-shared-confirm.accept" -msgstr[0] "Déplacer" -msgstr[1] "Déplacer" - -#: src/app/main/ui/delete_shared.cljs:48 -msgid "modals.move-shared-confirm.message" -msgid_plural "modals.move-shared-confirm.message" -msgstr[0] "Êtes-vous sûr de vouloir déplacer cette librairie ?" -msgstr[1] "Êtes-vous sûr de vouloir déplacer ces librairies ?" - -#: src/app/main/ui/delete_shared.cljs:43 -msgid "modals.move-shared-confirm.title" -msgid_plural "modals.move-shared-confirm.title" -msgstr[0] "Déplacer librairie" -msgstr[1] "Déplacer librairies" - -#: src/app/main/ui/workspace/main_menu.cljs:266, src/app/main/ui/workspace/nudge.cljs:47 +#: src/app/main/ui/workspace/nudge.cljs msgid "modals.nudge-title" msgstr "Taille du décalage" -#: src/app/main/ui/dashboard/team.cljs:340 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.accept" msgstr "Promouvoir" -#: src/app/main/ui/dashboard/team.cljs:339 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.hint" msgstr "" "Si vous transférez la propriété, vous changerez votre rôle en Admin, " "perdant ainsi certaines permissions sur cette équipe. " -#: src/app/main/ui/dashboard/team.cljs:338 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.message" msgstr "Êtes‑vous sûr de vouloir promouvoir cette personne propriétaire ?" -#: src/app/main/ui/dashboard/team.cljs:337 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.title" msgstr "Promouvoir propriétaire" -#: src/app/main/ui/workspace/libraries.cljs:188 msgid "modals.publish-empty-library.accept" msgstr "Publier" -#: src/app/main/ui/workspace/libraries.cljs:187 msgid "modals.publish-empty-library.message" msgstr "Votre bibliothèque est vide. Voulez-vous la publier quand même ?" -#: src/app/main/ui/workspace/libraries.cljs:186 msgid "modals.publish-empty-library.title" msgstr "Publier la bibliothèque vide" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.remove-shared-confirm.accept" msgstr "Supprimer en tant que Bibliothèque Partagée" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.remove-shared-confirm.hint" msgstr "" "Une fois supprimée en tant que Bibliothèque Partagée, la Bibliothèque de ce " "fichier ne pourra plus être utilisée par le reste de vos fichiers." -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.remove-shared-confirm.message" msgstr "Retirer « %s » en tant que Bibliothèque Partagée" -#: src/app/main/ui/workspace/nudge.cljs:53 +#: src/app/main/ui/workspace/nudge.cljs msgid "modals.small-nudge" msgstr "Petit nudge" -#: src/app/main/ui/delete_shared.cljs:52 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.unpublish-shared-confirm.accept" msgid_plural "modals.unpublish-shared-confirm.accept" msgstr[0] "Dépublier" msgstr[1] "Dépublier" -#: src/app/main/ui/delete_shared.cljs:47 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.unpublish-shared-confirm.message" msgid_plural "modals.unpublish-shared-confirm.message" msgstr[0] "Vous êtes sûr de vouloir retirer cette bibliothèque ?" msgstr[1] "Vous êtes sûr de vouloir retirer ces bibliothèques ?" -#: src/app/main/ui/delete_shared.cljs:42 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.unpublish-shared-confirm.title" msgid_plural "modals.unpublish-shared-confirm.title" msgstr[0] "Retirer la bibliothèque" msgstr[1] "Retirer les bibliothèques" #: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs -#, unused msgid "modals.update-remote-component-in-bulk.hint" msgstr "" "Vous êtes sur le point de mettre à jour les composants d'une bibliothèque " "partagée. Cela peut affecter d'autres fichiers qui l'utilisent." #: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs -#, unused msgid "modals.update-remote-component-in-bulk.message" msgstr "Mise à jour des composants dans une bibliothèque partagée" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:380 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.accept" msgstr "Actualiser le composant" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:379 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.cancel" msgstr "Annuler" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:378 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.hint" msgstr "" "Vous êtes sur le point de mettre à jour le composant d’une Bibliothèque " "Partagée. Cela peut affecter d’autres fichiers qui l’utilisent." -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:377 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.message" msgstr "Actualiser le composant d’une bibliothèque" -#: src/app/main/data/common.cljs:71 +#: src/app/main/data/common.cljs msgid "notifications.by-code.upgrade-version" msgstr "Une nouvelle version est disponible, merci de rafraîchir la page" -#: src/app/main/ui/dashboard/team.cljs:154, src/app/main/ui/dashboard/team.cljs:595 +#: src/app/main/ui/dashboard/team.cljs msgid "notifications.invitation-email-sent" msgstr "E‑mail d'invitation envoyé avec succès" -#: src/app/main/ui/dashboard/team.cljs:616 +#: src/app/main/ui/dashboard/team.cljs msgid "notifications.invitation-link-copied" msgstr "Lien d'invitation copié" -#: src/app/main/ui/settings/delete_account.cljs:24 +#: src/app/main/ui/settings/delete_account.cljs msgid "notifications.profile-deletion-not-allowed" msgstr "" "Vous ne pouvez pas supprimer votre profil. Réassignez vos équipes avant de " "continuer." -#: src/app/main/ui/settings/options.cljs:29, src/app/main/ui/settings/profile.cljs:35 +#: src/app/main/ui/settings/profile.cljs, src/app/main/ui/settings/options.cljs msgid "notifications.profile-saved" msgstr "Profil enregistré avec succès !" -#: src/app/main/ui/settings/change_email.cljs:63 +#: src/app/main/ui/settings/change_email.cljs msgid "notifications.validation-email-sent" msgstr "E‑mail de vérification envoyé à %s. Vérifiez votre e‑mail !" -#, unused msgid "onboarding-v2.before-start.desc1" msgstr "" "Sachez qu’il existe de nombreuses ressources disponibles pour vous aider à " "démarrer avec Penpot, comme le Guide de l’utilisateur et notre chaîne " "Youtube." -#, unused msgid "onboarding-v2.before-start.desc2" msgstr "" "De l'information détaillée sur Penpot. De prototypage à l’organisation et " "le partage des designs." -#, unused msgid "onboarding-v2.before-start.desc2.title" msgstr "Guide utilisateur" -#, unused msgid "onboarding-v2.before-start.desc3" msgstr "" "Vous pouvez regarder nos tutoriels et les tutoriels réalisés par notre " "communauté." -#, unused msgid "onboarding-v2.before-start.desc3.title" msgstr "Tutoriels videos" -#, unused msgid "onboarding-v2.before-start.title" msgstr "Avant de démarrer" -#: src/app/main/ui/onboarding/newsletter.cljs:63 msgid "onboarding-v2.newsletter.desc" msgstr "" "Abonnez-vous à la newsletter de Penpot pour être tenu informé du " "développement du produit et de notre actualité." -#: src/app/main/ui/onboarding/newsletter.cljs:83 msgid "onboarding-v2.newsletter.news" msgstr "" "Envoyez-moi des nouvelles de Penpot (articles de blog, tutoriels vidéo, " "streamings...)." -#: src/app/main/ui/onboarding/newsletter.cljs:91 msgid "onboarding-v2.newsletter.privacy1" msgstr "Nous nous soucions de la vie privée, vous pouvez lire ici notre " -#: src/app/main/ui/onboarding/newsletter.cljs:97 msgid "onboarding-v2.newsletter.privacy2" msgstr "" "Nous ne vous enverrons que des e-mails pertinents. Vous pouvez vous " "désabonner à tout moment via votre profil d’utilisateur ou via le lien de " "désabonnement dans l’une de nos newsletters." -#: src/app/main/ui/onboarding/newsletter.cljs:71 msgid "onboarding-v2.newsletter.updates" msgstr "" "Envoyez-moi les mises à jour du produit (nouvelles fonctionnalités, " "versions, corrections...)." -#, unused msgid "onboarding-v2.welcome.desc1" msgstr "" "Penpot est un logiciel Open Source créé par Kaleidos et la communauté, où " "de nombreuses personnes s’entraident déjà. Tout le monde peut collaborer en " ":" -#, unused msgid "onboarding-v2.welcome.desc2" msgstr "" "Un espace public pour apprendre, partager et échanger autour de Penpot, de " "son présent et de son avenir avec l'ensemble de la communauté et l'équipe " "centrale de Penpot." -#, unused msgid "onboarding-v2.welcome.desc2.title" msgstr "Participation à la Communauté" -#, unused msgid "onboarding-v2.welcome.desc3" msgstr "" "Vous y trouverez comment collaborer avec des traductions, des demandes de " "fonctionnalités (feature requests), des contributions au code, la recherche " "de bugs…" -#, unused msgid "onboarding-v2.welcome.desc3.title" msgstr "Guide du contributeur" -#: src/app/main/ui/onboarding/team_choice.cljs:31 msgid "onboarding-v2.welcome.title" msgstr "Bienvenue sur Penpot !" -#: src/app/main/ui/onboarding/team_choice.cljs:229 -msgid "onboarding.choice.team-up.continue-creating-team" -msgstr "Continuer en créant une équipe" - -#: src/app/main/ui/onboarding/team_choice.cljs:239 -msgid "onboarding.choice.team-up.continue-without-a-team" -msgstr "Continuer sans équipe" - -#: src/app/main/ui/onboarding/team_choice.cljs:167 -msgid "onboarding.choice.team-up.create-team-and-invite" -msgstr "Créer une équipe et inviter" - -#, unused -msgid "onboarding.choice.team-up.create-team-and-send-invites" -msgstr "Créer une équipe et envoyer des invitations" - -#: src/app/main/ui/onboarding/team_choice.cljs:170 -msgid "onboarding.choice.team-up.create-team-and-send-invites-description" -msgstr "Vous pourrez envoyer les invitations plus tard" - -#: src/app/main/ui/onboarding/team_choice.cljs:215 msgid "onboarding.choice.team-up.create-team-desc" msgstr "" "Après avoir nommé votre équipe, vous pourrez inviter des personnes à la " "rejoindre." -#: src/app/main/ui/onboarding/team_choice.cljs:224 msgid "onboarding.choice.team-up.create-team-placeholder" msgstr "Entrez le nom de l'équipe" -#: src/app/main/ui/onboarding/team_choice.cljs:168 -msgid "onboarding.choice.team-up.create-team-without-invite" -msgstr "Créer l'équipe" - -#, unused -msgid "onboarding.choice.team-up.create-team-without-inviting" -msgstr "Créer l'équipe sans inviter" - -#: src/app/main/ui/dashboard/projects.cljs:89, src/app/main/ui/onboarding/team_choice.cljs:140 msgid "onboarding.choice.team-up.invite-members" msgstr "Inviter des membres" -#: src/app/main/ui/onboarding/team_choice.cljs:141 msgid "onboarding.choice.team-up.invite-members-info" msgstr "" "N'oubliez pas d'inclure tout le monde. Développeurs, concepteurs, " "gestionnaires... la diversité fait la force :)" -#: src/app/main/ui/dashboard/team.cljs:202, src/app/main/ui/onboarding/team_choice.cljs:146 msgid "onboarding.choice.team-up.roles" msgstr "Inviter avec le rôle :" -#: src/app/main/ui/onboarding/team_choice.cljs:232 -msgid "onboarding.choice.team-up.start-without-a-team" -msgstr "Commencer sans équipe" - -#: src/app/main/ui/onboarding/team_choice.cljs:234 -msgid "onboarding.choice.team-up.start-without-a-team-description" -msgstr "Vous pourrez créer une équipe plus tard." - -#, unused msgid "onboarding.newsletter.accept" msgstr "Oui, s'abonner" -#: src/app/main/ui/onboarding/newsletter.cljs:40 msgid "onboarding.newsletter.acceptance-message" msgstr "Demande d'abonnement envoyé, vous allez recevoir un e-mail de confirmation." -#: src/app/main/ui/onboarding/newsletter.cljs:95 msgid "onboarding.newsletter.policy" msgstr "Politique de confidentialité." -#: src/app/main/ui/onboarding/newsletter.cljs:60 msgid "onboarding.newsletter.title" msgstr "Vous souhaitez recevoir les actualités de Penpot ?" -#: src/app/main/ui/onboarding/questions.cljs:118 -msgid "onboarding.questions.lets-get-started" -msgstr "C'est parti !" - -#: src/app/main/ui/onboarding/questions.cljs:307 -msgid "onboarding.questions.step3.question2" -msgstr "Quel est votre rôle ?" - -#: src/app/main/ui/onboarding/questions.cljs:320 -msgid "onboarding.questions.step3.question3" -msgstr "Quelle est la taille de votre équipe ?" - -#: src/app/main/ui/onboarding/questions.cljs:273 -msgid "onboarding.questions.team-size.11-30" -msgstr "11-30" - -#: src/app/main/ui/onboarding/questions.cljs:274 -msgid "onboarding.questions.team-size.2-10" -msgstr "2-10" - -#: src/app/main/ui/onboarding/questions.cljs:272 -msgid "onboarding.questions.team-size.31-50" -msgstr "31-50" - -#: src/app/main/ui/onboarding/questions.cljs:271 -msgid "onboarding.questions.team-size.more-than-50" -msgstr "Plus que 50" - -#: src/app/main/ui/onboarding/questions.cljs:276 -msgid "onboarding.questions.team-size.personal-project" -msgstr "Je travaille sur un projet personnel" - -#: src/app/main/ui/onboarding/team_choice.cljs:213 msgid "onboarding.team-modal.create-team" msgstr "Créer une équipe" -#: src/app/main/ui/onboarding/team_choice.cljs:35 msgid "onboarding.team-modal.create-team-desc" msgstr "" "Une équipe vous permet de collaborer avec d'autres utilisateurs de Penpot " "travaillant sur les mêmes fichiers et projets." -#: src/app/main/ui/onboarding/team_choice.cljs:40 msgid "onboarding.team-modal.create-team-feature-1" msgstr "Nombre de projets et de fichiers illimité" -#: src/app/main/ui/onboarding/team_choice.cljs:44 msgid "onboarding.team-modal.create-team-feature-2" msgstr "Édition multijoueur" -#: src/app/main/ui/onboarding/team_choice.cljs:48 msgid "onboarding.team-modal.create-team-feature-3" msgstr "Gestion des rôles" -#: src/app/main/ui/onboarding/team_choice.cljs:52 msgid "onboarding.team-modal.create-team-feature-4" msgstr "Nombre de membres illimité" -#: src/app/main/ui/onboarding/team_choice.cljs:56 msgid "onboarding.team-modal.create-team-feature-5" msgstr "100% gratuit !" -#: src/app/main/ui/onboarding/team_choice.cljs:33 -msgid "onboarding.team-modal.team-definition" -msgstr "Qu'est-ce qu'une équipe ?" - -#: src/app/main/ui/onboarding/templates.cljs:78 msgid "onboarding.templates.subtitle" msgstr "Voici quelques modèles." -#: src/app/main/ui/onboarding/templates.cljs:77 msgid "onboarding.templates.title" msgstr "Commencer à concevoir" -#, unused msgid "onboarding.welcome.alt" msgstr "Penpot" -#: src/app/main/ui/auth/recovery.cljs:99 +#: src/app/main/ui/auth/recovery.cljs msgid "profile.recovery.go-to-login" msgstr "Aller à la page de connexion" -#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:221 +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.team-size.11-30" +msgstr "11-30" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.team-size.2-10" +msgstr "2-10" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.team-size.31-50" +msgstr "31-50" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.adobe-xd" +msgstr "Adobe XD" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.canva" +msgstr "Canevas" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.developer" +msgstr "Développeur" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.figma" +msgstr "Figma" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.founder" +msgstr "Fondateur/Direction" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.freelancer" +msgstr "Je suis freelance" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.invision" +msgstr "InVision" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.lets-get-started" +msgstr "C'est parti !" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.product-management" +msgstr "Gestionnaire de produit ou de projet" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.marketing" +msgstr "Marketing" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.team-size.more-than-50" +msgstr "Plus que 50" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.next" +msgstr "Suivant" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.other" +msgstr "Autres (préciser)" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.team-size.personal-project" +msgstr "Je travaille sur un projet personnel" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.previous" +msgstr "Précédent" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.step3.question2" +msgstr "Quel est votre rôle ?" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.select-option" +msgstr "Sélectionnez une option" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.sketch" +msgstr "Sketch" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.start" +msgstr "Commencer" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.student-teacher" +msgstr "Étudiant ou enseignant" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.step3.question3" +msgstr "Quelle est la taille de votre équipe ?" + +#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, msgid "settings.detach" msgstr "Détacher" -#: src/app/main/ui/viewer/inspect/exports.cljs:147, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:631, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:137, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:148, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:188, src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:158, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:399, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:410, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:430, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:441, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:458, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:472, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:309, src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:183, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:373, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:389, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:245, src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:172 +#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs msgid "settings.multiple" msgstr "Divers" -#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:271 -msgid "settings.select-this-color" -msgstr "Sélectionnez les éléments qui utilisent ce style" - # SECTIONS -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:414 msgid "shortcut-section.basics" msgstr "Bases" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:420 msgid "shortcut-section.dashboard" msgstr "Tableau de bord" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:423 msgid "shortcut-section.viewer" msgstr "Spectateur" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:417 msgid "shortcut-section.workspace" msgstr "Espace de travail" # SUBSECTIONS -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:56 msgid "shortcut-subsection.alignment" msgstr "Alignement" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:57 msgid "shortcut-subsection.edit" msgstr "Modifier" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:58 msgid "shortcut-subsection.general-dashboard" msgstr "Générique" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:59 msgid "shortcut-subsection.general-viewer" msgstr "Générique" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:60 msgid "shortcut-subsection.main-menu" msgstr "Menu principal" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:61 msgid "shortcut-subsection.modify-layers" msgstr "Modifier les calques" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:62 msgid "shortcut-subsection.navigation-dashboard" msgstr "Navigation" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:63 msgid "shortcut-subsection.navigation-viewer" msgstr "Navigation" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:64 msgid "shortcut-subsection.navigation-workspace" msgstr "Navigation" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:65 msgid "shortcut-subsection.panels" msgstr "Panneaux" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:66 msgid "shortcut-subsection.path-editor" msgstr "Tracés" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:67 msgid "shortcut-subsection.shape" msgstr "Formes" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:68 msgid "shortcut-subsection.text-editor" msgstr "Textes" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:69 msgid "shortcut-subsection.tools" msgstr "Outils" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:70 msgid "shortcut-subsection.zoom-viewer" msgstr "Zoom" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:71 msgid "shortcut-subsection.zoom-workspace" msgstr "Zoom" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:72 msgid "shortcuts.add-comment" msgstr "Commentaires" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:73 msgid "shortcuts.add-node" msgstr "Ajouter un nœud" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:74 msgid "shortcuts.align-bottom" msgstr "Aligner en bas" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:75 msgid "shortcuts.align-center" msgstr "Aligner au centre" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:76 msgid "shortcuts.align-hcenter" msgstr "Aligner horizontalement au centre" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:77 msgid "shortcuts.align-justify" msgstr "Aligner justifié" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:78 msgid "shortcuts.align-left" msgstr "Aligner à gauche" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:79 msgid "shortcuts.align-right" msgstr "Aligner à droite" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:80 msgid "shortcuts.align-top" msgstr "Aligner en haut" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:81 msgid "shortcuts.align-vcenter" msgstr "Aligner verticalement au centre" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:82 msgid "shortcuts.artboard-selection" msgstr "Créer un plan de travail à partir de la sélection" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:83 msgid "shortcuts.bold" msgstr "Basculer en gras" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:84 msgid "shortcuts.bool-difference" msgstr "Soustraction booléenne" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:85 msgid "shortcuts.bool-exclude" msgstr "Exclusion booléenne" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:86 msgid "shortcuts.bool-intersection" msgstr "Intersection booléenne" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:87 msgid "shortcuts.bool-union" msgstr "Union booléenne" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:88 msgid "shortcuts.bring-back" msgstr "Mettre à l'arrière-plan" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:89 msgid "shortcuts.bring-backward" msgstr "Déplacer en arrière" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:90 msgid "shortcuts.bring-forward" msgstr "Déplacer vers l'avant" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:91 msgid "shortcuts.bring-front" msgstr "Mettre au premier plan" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:92 msgid "shortcuts.clear-undo" msgstr "Rétablir" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:93 msgid "shortcuts.copy" msgstr "Copier" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:94 msgid "shortcuts.create-component" msgstr "Créer un composant" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:95 msgid "shortcuts.create-new-project" msgstr "Créer" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:96 msgid "shortcuts.cut" msgstr "Couper" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:97 msgid "shortcuts.decrease-zoom" msgstr "Dézoomer" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:98 msgid "shortcuts.delete" msgstr "Supprimer" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:99 msgid "shortcuts.delete-node" msgstr "Supprimer le nœud" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:100 msgid "shortcuts.detach-component" msgstr "Détacher le composant" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:101 msgid "shortcuts.draw-curve" msgstr "Courbe" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:102 msgid "shortcuts.draw-ellipse" msgstr "Ellipse" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:103 msgid "shortcuts.draw-frame" msgstr "Plan de travail" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:104 msgid "shortcuts.draw-nodes" msgstr "Dessiner un tracé" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:105 msgid "shortcuts.draw-path" msgstr "Tracé" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:106 msgid "shortcuts.draw-rect" msgstr "Rectangle" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:107 msgid "shortcuts.draw-text" msgstr "Texte" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:108 msgid "shortcuts.duplicate" msgstr "Dupliquer" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:109 msgid "shortcuts.escape" msgstr "Annuler" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:110 msgid "shortcuts.export-shapes" msgstr "Exporter les formes" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:111 msgid "shortcuts.fit-all" msgstr "Zoom ajusté" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:112 msgid "shortcuts.flip-horizontal" msgstr "Retourner horizontalement" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:113 msgid "shortcuts.flip-vertical" msgstr "Retourner verticalement" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:114 msgid "shortcuts.font-size-dec" msgstr "Diminuer la taille de la police" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:115 msgid "shortcuts.font-size-inc" msgstr "Augmenter la taille de la police" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:116 msgid "shortcuts.go-to-drafts" msgstr "Accéder aux brouillons" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:117 msgid "shortcuts.go-to-libs" msgstr "Accéder aux bibliothèques partagées" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:118 msgid "shortcuts.go-to-search" msgstr "Recherche" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:119 msgid "shortcuts.group" msgstr "Grouper" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:120 msgid "shortcuts.h-distribute" msgstr "Répartir horizontalement" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:121 msgid "shortcuts.hide-ui" msgstr "Afficher/masquer l'interface utilisateur" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:122 msgid "shortcuts.increase-zoom" msgstr "Zoom avant" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:123 msgid "shortcuts.insert-image" msgstr "Insérer une image" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:124 msgid "shortcuts.italic" msgstr "Basculer en italique" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:125 msgid "shortcuts.join-nodes" msgstr "Joindre les nœuds" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:126 msgid "shortcuts.letter-spacing-dec" msgstr "Diminuer l'espacement entre les lettres" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:127 msgid "shortcuts.letter-spacing-inc" msgstr "Augmenter l'espacement entre les lettres" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:128 msgid "shortcuts.line-height-dec" msgstr "Diminuer la hauteur de ligne" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:129 msgid "shortcuts.line-height-inc" msgstr "Augmenter la hauteur de ligne" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:130 msgid "shortcuts.line-through" msgstr "Activer/désactiver texte barré" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:131 msgid "shortcuts.make-corner" msgstr "Créer un coin" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:132 msgid "shortcuts.make-curve" msgstr "Faire une courbe" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:133 msgid "shortcuts.mask" msgstr "Masque" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:134 msgid "shortcuts.merge-nodes" msgstr "Fusionner les nœuds" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:135 msgid "shortcuts.move" msgstr "Déplacer" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:136 msgid "shortcuts.move-fast-down" msgstr "Déplacement rapide vers le bas" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:137 msgid "shortcuts.move-fast-left" msgstr "Déplacement rapide vers la gauche" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:138 msgid "shortcuts.move-fast-right" msgstr "Déplacez-vous rapidement vers la droite" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:139 msgid "shortcuts.move-fast-up" msgstr "Déplacement rapide vers le haut" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:140 msgid "shortcuts.move-nodes" msgstr "Déplacer le nœud" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:141 msgid "shortcuts.move-unit-down" msgstr "Déplacer vers le bas" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:142 msgid "shortcuts.move-unit-left" msgstr "Déplacer vers la gauche" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:143 msgid "shortcuts.move-unit-right" msgstr "Déplacer vers la droite" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:144 msgid "shortcuts.move-unit-up" msgstr "Déplacer vers le haut" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:145 msgid "shortcuts.next-frame" msgstr "Plan de travail suivant" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:516 msgid "shortcuts.not-found" msgstr "Aucun raccourci trouvé" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:146 msgid "shortcuts.opacity-0" msgstr "Définir l'opacité à 100%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:147 msgid "shortcuts.opacity-1" msgstr "Définir l'opacité à 10%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:148 msgid "shortcuts.opacity-2" msgstr "Définir l'opacité à 20%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:149 msgid "shortcuts.opacity-3" msgstr "Définir l'opacité à 30%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:150 msgid "shortcuts.opacity-4" msgstr "Définir l'opacité à 40%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:151 msgid "shortcuts.opacity-5" msgstr "Définir l'opacité à 50%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:152 msgid "shortcuts.opacity-6" msgstr "Définir l'opacité à 60%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:153 msgid "shortcuts.opacity-7" msgstr "Définir l'opacité à 70%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:154 msgid "shortcuts.opacity-8" msgstr "Définir l'opacité à 80%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:155 msgid "shortcuts.opacity-9" msgstr "Définir l'opacité à 90%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:156 msgid "shortcuts.open-color-picker" msgstr "Sélecteur de couleurs" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:157 msgid "shortcuts.open-comments" msgstr "Accéder aux commentaires des spectateurs" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:158 msgid "shortcuts.open-dashboard" msgstr "Accéder au tableau de bord" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:159 msgid "shortcuts.open-inspect" msgstr "Aller à l'inspecteur" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:160 msgid "shortcuts.open-interactions" msgstr "Accéder aux interactions des spectateurs" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:161 msgid "shortcuts.open-viewer" msgstr "Accéder aux interactions des spectateurs" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:162 msgid "shortcuts.open-workspace" msgstr "Accéder à l’espace de travail" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:260 msgid "shortcuts.or" msgstr " ou " -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:163 msgid "shortcuts.paste" msgstr "Coller" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:164 msgid "shortcuts.prev-frame" msgstr "Plan de travail précédent" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:165 msgid "shortcuts.redo" msgstr "Rétablir" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:166 msgid "shortcuts.reset-zoom" msgstr "Réinitialiser le zoom" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:167 -msgid "shortcuts.scale" -msgstr "Échelle" - -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:168 msgid "shortcuts.search-placeholder" msgstr "Rechercher des raccourcis" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:169 msgid "shortcuts.select-all" msgstr "Tout sélectionner" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:170 msgid "shortcuts.select-next" msgstr "Sélectionner le calque suivant" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:171 msgid "shortcuts.select-parent-layer" msgstr "Sélectionner le calque parent" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:172 msgid "shortcuts.select-prev" msgstr "Sélectionner le calque précédent" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:173 msgid "shortcuts.separate-nodes" msgstr "Séparer les nœuds" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:174 msgid "shortcuts.show-pixel-grid" msgstr "Afficher/masquer la grille de pixels" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:175 msgid "shortcuts.show-shortcuts" msgstr "Afficher/masquer les raccourcis" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:176 msgid "shortcuts.snap-nodes" msgstr "Aligner sur les nœuds" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:177 msgid "shortcuts.snap-pixel-grid" msgstr "Aligner sur la grille de pixels" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:178 msgid "shortcuts.start-editing" msgstr "Commencer l'édition" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:179 msgid "shortcuts.start-measure" msgstr "Commencer la mesure" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:180 msgid "shortcuts.stop-measure" msgstr "Arrêter la mesure" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:181 msgid "shortcuts.text-align-center" msgstr "Aligner au centre" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:182 msgid "shortcuts.text-align-justify" msgstr "Aligner justifié" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:183 msgid "shortcuts.text-align-left" msgstr "Aligner à gauche" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:184 msgid "shortcuts.text-align-right" msgstr "Aligner à droite" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:185 msgid "shortcuts.thumbnail-set" msgstr "Définir les vignettes" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:496, src/app/main/ui/workspace/sidebar/shortcuts.cljs:505 +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs msgid "shortcuts.title" msgstr "Raccourcis clavier" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:186 msgid "shortcuts.toggle-alignment" msgstr "Activer/désactiver l'alignement dynamique" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:187 msgid "shortcuts.toggle-assets" msgstr "Activer/désactiver les ressources" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:188 msgid "shortcuts.toggle-colorpalette" msgstr "Activer/désactiver la palette de couleurs" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:189 msgid "shortcuts.toggle-focus-mode" msgstr "Activer/désactiver le mode focus" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:190 msgid "shortcuts.toggle-fullscreen" msgstr "Activer/désactiver le plein écran" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:191 -msgid "shortcuts.toggle-guides" -msgstr "Montrer / Cacher les guides" - -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:192 msgid "shortcuts.toggle-history" msgstr "Activer/désactiver l'historique" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:193 msgid "shortcuts.toggle-layers" msgstr "Activer/désactiver les calques" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:194 msgid "shortcuts.toggle-layout-flex" msgstr "Ajouter/supprimer flex layout" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:195 -msgid "shortcuts.toggle-layout-grid" -msgstr "Ajouter / Retirer grid layout" - -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:196 msgid "shortcuts.toggle-lock" msgstr "Verrou sélectionné" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:197 msgid "shortcuts.toggle-lock-size" msgstr "Verrouiller les proportions" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:198 -msgid "shortcuts.toggle-rulers" -msgstr "Montrer / Cacher les règles" - -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:200 -msgid "shortcuts.toggle-snap-guides" -msgstr "Aligner selon les guides" - -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:201 -msgid "shortcuts.toggle-snap-ruler-guide" -msgstr "Aligner selon les guides de règles" - -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:202 msgid "shortcuts.toggle-textpalette" msgstr "Afficher/masquer la palette de texte" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:203 -msgid "shortcuts.toggle-theme" -msgstr "Changer le thème" - -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:204 msgid "shortcuts.toggle-visibility" msgstr "Afficher/masquer l’élément" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:205 msgid "shortcuts.toggle-zoom-style" msgstr "Alterner le style de zoom" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:206 msgid "shortcuts.underline" msgstr "Activer/désactiver le soulignement" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:207 msgid "shortcuts.undo" msgstr "Annuler" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:208 msgid "shortcuts.ungroup" msgstr "Dégrouper" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:209 msgid "shortcuts.unmask" msgstr "Démasquer" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:210 msgid "shortcuts.v-distribute" msgstr "Distribuer verticalement" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:211 msgid "shortcuts.zoom-lense-decrease" msgstr "Diminuer le zoom" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:212 msgid "shortcuts.zoom-lense-increase" msgstr "Augmenter le zoom" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:213 msgid "shortcuts.zoom-selected" msgstr "Zoomer sur la sélection" -#: src/app/main/ui/dashboard/team.cljs:771 +#: src/app/main/ui/dashboard/team.cljs msgid "team.webhooks.max-length" msgstr "Le nom du webhook ne peut pas contenir plus de 2048 caractères." -#: src/app/main/ui/dashboard/files.cljs:158 +#: src/app/main/ui/dashboard/files.cljs msgid "title.dashboard.files" msgstr "%s - Penpot" -#: src/app/main/ui/dashboard/fonts.cljs:37 +#: src/app/main/ui/dashboard/fonts.cljs msgid "title.dashboard.font-providers" msgstr "Fournisseurs de polices - %s - Penpot" -#: src/app/main/ui/dashboard/fonts.cljs:36 +#: src/app/main/ui/dashboard/fonts.cljs msgid "title.dashboard.fonts" msgstr "Polices - %s - Penpot" -#: src/app/main/ui/dashboard/projects.cljs:320 +#: src/app/main/ui/dashboard/projects.cljs msgid "title.dashboard.projects" msgstr "Projets - %s - Penpot" -#: src/app/main/ui/dashboard/search.cljs:32 +#: src/app/main/ui/dashboard/search.cljs msgid "title.dashboard.search" msgstr "Rechercher - %s - Penpot" -#: src/app/main/ui/dashboard/libraries.cljs:44 +#: src/app/main/ui/dashboard/libraries.cljs msgid "title.dashboard.shared-libraries" msgstr "Bibliothèques Partagées - %s - Penpot" -#: src/app/main/ui/auth/verify_token.cljs:68, src/app/main/ui/auth.cljs:54 +#: src/app/main/ui/auth/verify_token.cljs, src/app/main/ui/auth.cljs msgid "title.default" msgstr "Penpot - Liberté de conception pour les équipes" -#: src/app/main/ui/settings/access_tokens.cljs:292 +#: src/app/main/ui/settings/access-tokens.cljs msgid "title.settings.access-tokens" msgstr "Profil - Jetons d'accès" -#: src/app/main/ui/settings/feedback.cljs:110 +#: src/app/main/ui/settings/feedback.cljs msgid "title.settings.feedback" msgstr "Donnez votre avis - Penpot" -#: src/app/main/ui/settings/options.cljs:80 +#: src/app/main/ui/settings/options.cljs msgid "title.settings.options" msgstr "Configuration - Penpot" -#: src/app/main/ui/settings/password.cljs:115 +#: src/app/main/ui/settings/password.cljs msgid "title.settings.password" msgstr "Mot de passe - Penpot" -#: src/app/main/ui/settings/profile.cljs:115 +#: src/app/main/ui/settings/profile.cljs msgid "title.settings.profile" msgstr "Profil - Penpot" -#: src/app/main/ui/dashboard/team.cljs:727 +#: src/app/main/ui/dashboard/team.cljs msgid "title.team-invitations" msgstr "Invitations - %s - Penpot" -#: src/app/main/ui/dashboard/team.cljs:493 +#: src/app/main/ui/dashboard/team.cljs msgid "title.team-members" msgstr "Membres - %s - Penpot" -#: src/app/main/ui/dashboard/team.cljs:1036 +#: src/app/main/ui/dashboard/team.cljs msgid "title.team-settings" msgstr "Configuration - %s - Penpot" -#: src/app/main/ui/dashboard/team.cljs:989 msgid "title.team-webhooks" msgstr "Webhooks - %s - Penpot" -#: src/app/main/ui/viewer.cljs:419 +#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs msgid "title.viewer" msgstr "%s - Mode spectateur - Penpot" -#: src/app/main/ui/workspace.cljs:190 +#: src/app/main/ui/workspace.cljs msgid "title.workspace" msgstr "%s - Penpot" -#: src/app/main/ui.cljs:144 msgid "viewer.breaking-change.description" msgstr "" "Ce lien de partage n'est plus valide. Créez-en un nouveau ou demandez-en un " "nouveau au propriétaire." -#: src/app/main/ui.cljs:143 msgid "viewer.breaking-change.message" msgstr "Désolé !" -#: src/app/main/ui/viewer.cljs:569 +#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs msgid "viewer.empty-state" msgstr "Aucun plan de travail trouvé sur la page." -#: src/app/main/ui/viewer.cljs:574 +#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs msgid "viewer.frame-not-found" msgstr "Plan de travail introuvable." -#: src/app/main/ui/viewer/header.cljs:336 msgid "viewer.header.comments-section" msgstr "Commentaires (%s)" -#: src/app/main/ui/viewer/interactions.cljs:292 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.dont-show-interactions" msgstr "Ne pas afficher les interactions" -#: src/app/main/ui/viewer/header.cljs:188 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.fullscreen" msgstr "Plein écran" -#: src/app/main/ui/viewer/header.cljs:345 msgid "viewer.header.inspect-section" msgstr "Inspecter (%s)" -#: src/app/main/ui/viewer/interactions.cljs:282 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.interactions" msgstr "Interactions" -#: src/app/main/ui/viewer/header.cljs:327 msgid "viewer.header.interactions-section" msgstr "Interactions (%s)" -#: src/app/main/ui/viewer/share_link.cljs:187 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.share.copy-link" msgstr "Copier le lien" -#: src/app/main/ui/viewer/interactions.cljs:300 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.show-interactions" msgstr "Afficher les interactions" -#: src/app/main/ui/viewer/interactions.cljs:311 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.show-interactions-on-click" msgstr "Afficher les interactions au clic" -#: src/app/main/ui/viewer/header.cljs:231 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.sitemap" msgstr "Plan du site" -#: src/app/main/ui/dashboard/team.cljs:948 msgid "webhooks.last-delivery.success" msgstr "Le dernier envoi a réussi." -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:58 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.hcenter" msgstr "Aligner horizontalement au centre (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:74 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.hdistribute" msgstr "Répartir l’espacement horizontal (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:50 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.hleft" msgstr "Aligner à gauche (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:66 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.hright" msgstr "Aligner à droite (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:99 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.vbottom" msgstr "Aligner en bas (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:91 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.vcenter" msgstr "Aligner verticalement au centre (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:104 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.vdistribute" msgstr "Répartir l’espacement vertical (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:83 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.vtop" msgstr "Aligner en haut (%s)" #: src/app/main/ui/workspace/sidebar/assets.cljs -#, unused msgid "workspace.assets.assets" msgstr "Ressources" -#: src/app/main/ui/workspace/sidebar/assets.cljs:134 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.box-filter-all" msgstr "Toutes" -#: src/app/main/ui/dashboard/grid.cljs:130, src/app/main/ui/dashboard/grid.cljs:162, src/app/main/ui/workspace/sidebar/assets/colors.cljs:485, src/app/main/ui/workspace/sidebar/assets.cljs:150 +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.colors" msgstr "Couleurs" -#: src/app/main/ui/dashboard/grid.cljs:126, src/app/main/ui/dashboard/grid.cljs:141, src/app/main/ui/workspace/sidebar/assets/components.cljs:513, src/app/main/ui/workspace/sidebar/assets.cljs:139 +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.components" msgstr "Composants" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:131 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.create-group" msgstr "Créer un groupe" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:142 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.create-group-hint" msgstr "" "Vos éléments seront automatiquement nommées comme tels : « nom du groupe / " "nom de l'élément »" -#: src/app/main/ui/workspace/context_menu.cljs:529, src/app/main/ui/workspace/sidebar/assets/colors.cljs:251, src/app/main/ui/workspace/sidebar/assets/components.cljs:577, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:424, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:443 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.delete" msgstr "Supprimer" -#: src/app/main/ui/workspace/context_menu.cljs:534, src/app/main/ui/workspace/sidebar/assets/components.cljs:572 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.duplicate" msgstr "Dupliquer" -#: src/app/main/ui/workspace/sidebar/assets/components.cljs:571 msgid "workspace.assets.duplicate-main" msgstr "Dupliquer le principal" -#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:247, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:439 +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.edit" msgstr "Modifier" -#: src/app/main/ui/workspace/sidebar/assets.cljs:176 -msgid "workspace.assets.filter" -msgstr "Filtrer" - -#: src/app/main/ui/workspace/sidebar/assets/graphics.cljs:384, src/app/main/ui/workspace/sidebar/assets.cljs:145 +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.graphics" msgstr "Graphiques" -#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:255, src/app/main/ui/workspace/sidebar/assets/components.cljs:581, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:428, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:448 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.group" msgstr "Grouper" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:141 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.group-name" msgstr "Nom du groupe" -#: src/app/main/ui/workspace/sidebar/assets.cljs:168 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.libraries" msgstr "Bibliothèques" -#: src/app/main/ui/workspace/sidebar/assets/file_library.cljs:62, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:347 msgid "workspace.assets.local-library" msgstr "Bibliothèque locale" -#: src/app/main/ui/workspace/sidebar/assets/file_library.cljs:295 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.not-found" msgstr "Aucune ressource trouvée" -#, unused msgid "workspace.assets.open-library" msgstr "Ouvrir le fichier de la bibliothèque" -#: src/app/main/ui/workspace/context_menu.cljs:532, src/app/main/ui/workspace/sidebar/assets/colors.cljs:243, src/app/main/ui/workspace/sidebar/assets/components.cljs:566, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:421, src/app/main/ui/workspace/sidebar/assets/groups.cljs:63, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:434 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.rename" msgstr "Renommer" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:132 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.rename-group" msgstr "Renommer le groupe" -#: src/app/main/ui/workspace/sidebar/assets.cljs:173 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.search" msgstr "Chercher des ressources" #: src/app/main/ui/workspace/sidebar/assets.cljs -#, unused msgid "workspace.assets.selected-count" msgid_plural "workspace.assets.selected-count" msgstr[0] "%s élément sélectionné" msgstr[1] "%s éléments sélectionnés" #: src/app/main/ui/workspace/sidebar/assets.cljs -#, unused msgid "workspace.assets.shared-library" msgstr "Bibliothèque partagée" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:221 -msgid "workspace.assets.sidebar.components" -msgid_plural "workspace.assets.sidebar.components" -msgstr[0] "1 composant" -msgstr[1] "%s composants" - -#: src/app/main/ui/workspace/sidebar/assets.cljs:193 -msgid "workspace.assets.sort" -msgstr "Trier" - -#: src/app/main/ui/dashboard/grid.cljs:134, src/app/main/ui/dashboard/grid.cljs:189, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:397, src/app/main/ui/workspace/sidebar/assets.cljs:155 +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.typography" msgstr "Typographies" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused msgid "workspace.assets.typography.font-id" msgstr "Police" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:505 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.font-size" msgstr "Taille" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:501 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.font-variant-id" msgstr "Variante" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:523 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.go-to-edit" msgstr "Accéder au fichier de bibliothèque de styles à modifier" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:513 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.letter-spacing" msgstr "Interlettrage" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:509 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.line-height" msgstr "Interlignage" -#: src/app/main/ui/dashboard/grid.cljs:199, src/app/main/ui/workspace/libraries.cljs:461, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:464, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:489, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:596, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:615 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, +#: src/app/main/ui/inspect/attributes/text.cljs, +#: src/app/main/ui/inspect/attributes/text.cljs msgid "workspace.assets.typography.sample" msgstr "Ag" -#, unused msgid "workspace.assets.typography.text-styles" msgstr "Styles de texte" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:517 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.text-transform" msgstr "Transformer le texte" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:66 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.ungroup" msgstr "Dissocier" -#: src/app/main/ui/workspace/context_menu.cljs:634 -msgid "workspace.context-menu.grid-cells.area" -msgstr "Créer une zone" - -#: src/app/main/ui/workspace/context_menu.cljs:637 -msgid "workspace.context-menu.grid-cells.create-board" -msgstr "Créer un tableau" - -#: src/app/main/ui/workspace/context_menu.cljs:629 -msgid "workspace.context-menu.grid-cells.merge" -msgstr "Fusionner les cellules" - -#: src/app/main/ui/workspace/context_menu.cljs:594 -msgid "workspace.context-menu.grid-track.column.add-after" -msgstr "Ajouter une colonne à droite" - -#: src/app/main/ui/workspace/context_menu.cljs:593 -msgid "workspace.context-menu.grid-track.column.add-before" -msgstr "Ajouter une colonne à gauche" - -#: src/app/main/ui/workspace/context_menu.cljs:595 -msgid "workspace.context-menu.grid-track.column.delete" -msgstr "Supprimer la colonne" - -#: src/app/main/ui/workspace/context_menu.cljs:596 -msgid "workspace.context-menu.grid-track.column.delete-shapes" -msgstr "Supprimer la colonne et le contenu" - -#: src/app/main/ui/workspace/context_menu.cljs:592 -msgid "workspace.context-menu.grid-track.column.duplicate" -msgstr "Dupliquer la colonne" - -#: src/app/main/ui/workspace/context_menu.cljs:601 -msgid "workspace.context-menu.grid-track.row.add-after" -msgstr "Ajouter une rangée en-dessous" - -#: src/app/main/ui/workspace/context_menu.cljs:600 -msgid "workspace.context-menu.grid-track.row.add-before" -msgstr "Ajouter une rangée au-dessus" - -#: src/app/main/ui/workspace/context_menu.cljs:602 -msgid "workspace.context-menu.grid-track.row.delete" -msgstr "Supprimer la rangée" - -#: src/app/main/ui/workspace/context_menu.cljs:603 -msgid "workspace.context-menu.grid-track.row.delete-shapes" -msgstr "Supprimer la rangée et son contenu" - -#: src/app/main/ui/workspace/context_menu.cljs:599 -msgid "workspace.context-menu.grid-track.row.duplicate" -msgstr "Dupliquer la rangée" - -#: src/app/main/ui/workspace/sidebar/layers.cljs:525 msgid "workspace.focus.focus-mode" msgstr "Mode focus" -#: src/app/main/ui/workspace/context_menu.cljs:287, src/app/main/ui/workspace/context_menu.cljs:553 msgid "workspace.focus.focus-off" msgstr "Focus désactivé" -#: src/app/main/ui/workspace/context_menu.cljs:286 msgid "workspace.focus.focus-on" msgstr "Focus activé" -#, unused msgid "workspace.focus.selection" msgstr "Sélection" -#: src/app/util/color.cljs:34 +#: src/app/main/data/workspace/libraries.cljs, +#: src/app/main/ui/components/color_bullet.cljs msgid "workspace.gradients.linear" msgstr "Dégradé linéaire" -#: src/app/util/color.cljs:35 +#: src/app/main/data/workspace/libraries.cljs, +#: src/app/main/ui/components/color_bullet.cljs msgid "workspace.gradients.radial" msgstr "Dégradé radial" -#: src/app/main/ui/workspace/main_menu.cljs:238 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.disable-dynamic-alignment" msgstr "Désactiver l’alignement dynamique" -#: src/app/main/ui/workspace/main_menu.cljs:192 msgid "workspace.header.menu.disable-scale-content" msgstr "Désactiver l'échelle proportionnelle" #: src/app/main/ui/workspace/header.cljs -#, unused msgid "workspace.header.menu.disable-scale-text" msgstr "Désactiver la mise à l'échelle du texte" -#: src/app/main/ui/workspace/main_menu.cljs:223 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.disable-snap-guides" msgstr "Désactiver l’alignement sur les guides" -#: src/app/main/ui/workspace/main_menu.cljs:253 msgid "workspace.header.menu.disable-snap-pixel-grid" msgstr "Désactiver l’accrochage au pixel" -#: src/app/main/ui/workspace/main_menu.cljs:207 -msgid "workspace.header.menu.disable-snap-ruler-guides" -msgstr "Désactiver l'alignement aux guides de règles" - -#: src/app/main/ui/workspace/main_menu.cljs:239 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.enable-dynamic-alignment" msgstr "Activer l’alignement dynamique" -#: src/app/main/ui/workspace/main_menu.cljs:193 msgid "workspace.header.menu.enable-scale-content" msgstr "Activer l'échelle proportionnelle" #: src/app/main/ui/workspace/header.cljs -#, unused msgid "workspace.header.menu.enable-scale-text" msgstr "Activer le redimensionnement du texte" -#: src/app/main/ui/workspace/main_menu.cljs:224 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.enable-snap-guides" msgstr "Aligner sur les guides" -#: src/app/main/ui/workspace/main_menu.cljs:254 msgid "workspace.header.menu.enable-snap-pixel-grid" msgstr "Activer l’alignement au pixel" -#: src/app/main/ui/workspace/main_menu.cljs:208 -msgid "workspace.header.menu.enable-snap-ruler-guides" -msgstr "Aligner aux guides de règles" - -#: src/app/main/ui/workspace/main_menu.cljs:382 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.hide-artboard-names" msgstr "Masquer le nom des plans de travail" -#: src/app/main/ui/workspace/main_menu.cljs:336 -msgid "workspace.header.menu.hide-guides" -msgstr "Cacher les guides" - -#: src/app/main/ui/workspace/main_menu.cljs:353 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.hide-palette" msgstr "Masquer la palette de couleurs" -#: src/app/main/ui/workspace/main_menu.cljs:394 msgid "workspace.header.menu.hide-pixel-grid" msgstr "Masquer la grille de pixels" -#: src/app/main/ui/workspace/main_menu.cljs:320 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.hide-rules" msgstr "Masquer les règles" -#: src/app/main/ui/workspace/main_menu.cljs:367 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.hide-textpalette" msgstr "Masquer la palette de polices" -#: src/app/main/ui/workspace/main_menu.cljs:731 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.edit" msgstr "Éditer" -#: src/app/main/ui/workspace/main_menu.cljs:720 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.file" msgstr "Fichier" -#: src/app/main/ui/workspace/main_menu.cljs:777 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.help-info" msgstr "Aide et information" -#: src/app/main/ui/workspace/main_menu.cljs:753 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.preferences" msgstr "Préférences" -#: src/app/main/ui/workspace/main_menu.cljs:742 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.view" msgstr "Vue" -#: src/app/main/ui/workspace/main_menu.cljs:459 msgid "workspace.header.menu.redo" msgstr "Répéter" -#: src/app/main/ui/workspace/main_menu.cljs:432 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.select-all" msgstr "Tout sélectionner" -#: src/app/main/ui/workspace/main_menu.cljs:383 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.show-artboard-names" msgstr "Afficher le nom des plans de travail" -#: src/app/main/ui/workspace/main_menu.cljs:337 -msgid "workspace.header.menu.show-guides" -msgstr "Montrer les guides" - -#: src/app/main/ui/workspace/main_menu.cljs:354 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.show-palette" msgstr "Montrer la palette de couleurs" -#: src/app/main/ui/workspace/main_menu.cljs:395 msgid "workspace.header.menu.show-pixel-grid" msgstr "Afficher la grille de pixels" -#: src/app/main/ui/workspace/main_menu.cljs:321 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.show-rules" msgstr "Montrer les règles" -#: src/app/main/ui/workspace/main_menu.cljs:368 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.show-textpalette" msgstr "Afficher la palette des polices" -#: src/app/main/ui/workspace/main_menu.cljs:279 -msgid "workspace.header.menu.toggle-dark-theme" -msgstr "Basculer vers le thème sombre" - -#: src/app/main/ui/workspace/main_menu.cljs:278 -msgid "workspace.header.menu.toggle-light-theme" -msgstr "Basculer vers le thème clair" - -#: src/app/main/ui/workspace/main_menu.cljs:446 msgid "workspace.header.menu.undo" msgstr "Annuler" -#: src/app/main/ui/viewer/header.cljs:98, src/app/main/ui/workspace/right_header.cljs:120 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.reset-zoom" msgstr "Réinitialiser" #: src/app/main/ui/workspace/header.cljs -#, unused msgid "workspace.header.save-error" msgstr "Erreur d’enregistrement" -#: src/app/main/ui/workspace/right_header.cljs:52 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.saved" msgstr "Enregistré" #: src/app/main/ui/workspace/header.cljs -#, unused msgid "workspace.header.saving" msgstr "Enregistrement" -#: src/app/main/ui/workspace/right_header.cljs:42, src/app/main/ui/workspace/right_header.cljs:47 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.unsaved" msgstr "Modifications non sauvegardées" -#: src/app/main/ui/workspace/right_header.cljs:239 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.viewer" msgstr "Mode spectateur (%s)" -#: src/app/main/ui/viewer/header.cljs:79, src/app/main/ui/workspace/right_header.cljs:103 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom" msgstr "Zoom" -#: src/app/main/ui/viewer/header.cljs:109 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom-fill" msgstr "Remplir l’écran" -#: src/app/main/ui/viewer/header.cljs:102 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom-fit" msgstr "Ajuster à l’écran" -#: src/app/main/ui/workspace/right_header.cljs:123 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom-fit-all" msgstr "Zoomer pour montrer tous les éléments" -#: src/app/main/ui/viewer/header.cljs:116 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom-full-screen" msgstr "Plein écran" -#: src/app/main/ui/workspace/right_header.cljs:130 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom-selected" msgstr "Zoomer sur la sélection" -#: src/app/main/ui/workspace/sidebar/options/menus/grid_cell.cljs:273, src/app/main/ui/workspace/sidebar/options/menus/grid_cell.cljs:275, src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:612 -msgid "workspace.layout_grid.editor.options.edit-grid" -msgstr "Éditer la grille" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:1280 -msgid "workspace.layout_grid.editor.options.exit" -msgstr "Quitter" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:483 -msgid "workspace.layout_grid.editor.padding.expand" -msgstr "Montrer les options de marge intérieure sur les 4 côtés" - -#: src/app/main/ui/workspace/viewport/grid_layout_editor.cljs:59 msgid "workspace.layout_grid.editor.title" msgstr "Édition de la grille" -#: src/app/main/ui/workspace/viewport/grid_layout_editor.cljs:65 -msgid "workspace.layout_grid.editor.top-bar.done" -msgstr "Fait" - -#: src/app/main/ui/workspace/viewport/grid_layout_editor.cljs:62 -msgid "workspace.layout_grid.editor.top-bar.locate" -msgstr "Montrer" - -#: src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:1306 -msgid "workspace.layout_grid.editor.top-bar.locate.tooltip" -msgstr "Montrer la disposition en grille" - #: src/app/main/ui/workspace/libraries.cljs -#, unused msgid "workspace.libraries.add" msgstr "Ajouter" -#: src/app/main/ui/workspace/libraries.cljs:80, src/app/main/ui/workspace/libraries.cljs:99 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.colors" msgstr "%s couleurs" -#: src/app/main/ui/workspace/color_palette.cljs:126 +#: src/app/main/ui/workspace/colorpalette.cljs msgid "workspace.libraries.colors.empty-palette" msgstr "Il n'y a pas encore de styles de couleur dans votre bibliothèque" -#: src/app/main/ui/workspace/text_palette.cljs:150 +#: src/app/main/ui/workspace/textpalette.cljs msgid "workspace.libraries.colors.empty-typography-palette" msgstr "Il n'y a pas encore de styles typographiques dans votre bibliothèque" -#: src/app/main/ui/workspace/color_palette_ctx_menu.cljs:60, src/app/main/ui/workspace/colorpicker/libraries.cljs:73, src/app/main/ui/workspace/text_palette_ctx_menu.cljs:50 +#: src/app/main/ui/workspace/colorpicker/libraries.cljs, +#: src/app/main/ui/workspace/colorpalette.cljs msgid "workspace.libraries.colors.file-library" msgstr "Bibliothèque du fichier" #: src/app/main/ui/workspace/colorpicker.cljs -#, unused msgid "workspace.libraries.colors.hsv" msgstr "HSV" -#: src/app/main/ui/workspace/color_palette_ctx_menu.cljs:82, src/app/main/ui/workspace/colorpicker/libraries.cljs:72 +#: src/app/main/ui/workspace/colorpicker/libraries.cljs, +#: src/app/main/ui/workspace/colorpalette.cljs msgid "workspace.libraries.colors.recent-colors" msgstr "Couleurs récentes" #: src/app/main/ui/workspace/colorpicker.cljs -#, unused msgid "workspace.libraries.colors.rgb-complementary" msgstr "Complémentaire en RVB" #: src/app/main/ui/workspace/colorpicker.cljs -#, unused msgid "workspace.libraries.colors.rgba" msgstr "RVBA" -#: src/app/main/ui/workspace/colorpicker.cljs:372 +#: src/app/main/ui/workspace/colorpicker.cljs msgid "workspace.libraries.colors.save-color" msgstr "Enregistrer le style de couleur" -#: src/app/main/ui/workspace/libraries.cljs:74, src/app/main/ui/workspace/libraries.cljs:91 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.components" msgstr "%s composants" -#: src/app/main/ui/workspace/libraries.cljs:215 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.file-library" msgstr "Bibliothèque du fichier" -#: src/app/main/ui/workspace/libraries.cljs:77, src/app/main/ui/workspace/libraries.cljs:95 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.graphics" msgstr "%s graphiques" -#: src/app/main/ui/workspace/libraries.cljs:209 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.in-this-file" msgstr "BIBLIOTHÈQUES DANS CE FICHIER" -#: src/app/main/ui/workspace/libraries.cljs:526, src/app/main/ui/workspace/libraries.cljs:531 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.libraries" msgstr "BIBLIOTHÈQUES" #: src/app/main/ui/workspace/libraries.cljs -#, unused msgid "workspace.libraries.library" msgstr "BIBLIOTHÈQUE" -#: src/app/main/ui/workspace/libraries.cljs:382 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.library-updates" msgstr "MISES À JOUR DE LA BIBLIOTHÈQUE" -#: src/app/main/ui/workspace/libraries.cljs:290 -msgid "workspace.libraries.loading" -msgstr "Chargement…" - -#: src/app/main/ui/workspace/libraries.cljs:380 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.no-libraries-need-sync" msgstr "Aucune Bibliothèque Partagée n’a besoin d’être mise à jour" -#: src/app/main/ui/workspace/libraries.cljs:299 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.no-matches-for" msgstr "Aucune correspondance pour « %s »" -#: src/app/main/ui/workspace/libraries.cljs:296 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.no-shared-libraries-available" msgstr "Aucune Bibliothèque Partagée disponible" -#: src/app/main/ui/workspace/libraries.cljs:260 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.search-shared-libraries" msgstr "Rechercher des Bibliothèques Partagées" -#: src/app/main/ui/workspace/libraries.cljs:256 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.shared-libraries" msgstr "BIBLIOTHÈQUES PARTAGÉES" -#: src/app/main/ui/workspace/libraries.cljs:282 -msgid "workspace.libraries.shared-library-btn" -msgstr "Connecter librairie" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:308 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.libraries.text.multiple-typography" msgstr "Plusieurs typographies" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:311 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.libraries.text.multiple-typography-tooltip" msgstr "Dissocier toutes les typographies" -#: src/app/main/ui/workspace/libraries.cljs:83, src/app/main/ui/workspace/libraries.cljs:103 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.typography" msgstr "%s typographies" -#: src/app/main/ui/workspace/libraries.cljs:249 -msgid "workspace.libraries.unlink-library-btn" -msgstr "Déconnecter librairie" - -#: src/app/main/ui/workspace/libraries.cljs:402 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.update" msgstr "Actualiser" -#: src/app/main/ui/workspace/libraries.cljs:477 +#: src/app/main/data/workspace/libraries.cljs msgid "workspace.libraries.update.see-all-changes" msgstr "Voir tous les changements" -#: src/app/main/ui/workspace/libraries.cljs:536 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.updates" msgstr "MISES À JOUR" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:737 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.add-interaction" msgstr "Cliquer sur le bouton + pour ajouter des interactions." -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:86, src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:102 +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs msgid "workspace.options.blur-options.title" msgstr "Flou" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:85 +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs msgid "workspace.options.blur-options.title.group" msgstr "Flou de groupe" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:84 +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs msgid "workspace.options.blur-options.title.multiple" msgstr "Flou de sélection" -#: src/app/main/ui/workspace/sidebar/options/page.cljs:32, src/app/main/ui/workspace/sidebar/options/page.cljs:39 +#: src/app/main/ui/workspace/sidebar/options/page.cljs msgid "workspace.options.canvas-background" msgstr "Couleur de fond du canvas" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:548 msgid "workspace.options.clip-content" msgstr "Tronquer le contenu" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:600, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:605 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs msgid "workspace.options.component" msgstr "Composant" -#: src/app/main/ui/viewer/inspect/annotation.cljs:19, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:181 msgid "workspace.options.component.annotation" msgstr "Note" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:610 msgid "workspace.options.component.copy" msgstr "Copier" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:173 msgid "workspace.options.component.create-annotation" msgstr "Créer une note" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:172 msgid "workspace.options.component.edit-annotation" msgstr "Éditer une note" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:609 msgid "workspace.options.component.main" msgstr "Principal" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:427 -msgid "workspace.options.component.swap" -msgstr "Échanger composant" - -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:471 -msgid "workspace.options.component.swap.empty" -msgstr "Cette librairie ne contient aucun élément pour le moment" - -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:163 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints" msgstr "Contraintes" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:150 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.bottom" msgstr "Bas" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:141, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:152 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.center" msgstr "Centre" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:229 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.fix-when-scrolling" msgstr "Fixe lors du défilement" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:138 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.left" msgstr "Gauche" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:140 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.leftright" msgstr "Gauche & droite" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:139 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.right" msgstr "Droite" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:142, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:153 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.scale" msgstr "Redimensionner" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:149 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.top" msgstr "Haut" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:151 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.topbottom" msgstr "Haut & bas" -#: src/app/main/ui/workspace/sidebar/options.cljs:112 +#: src/app/main/ui/workspace/sidebar/options.cljs msgid "workspace.options.design" msgstr "Conception" -#: src/app/main/ui/viewer/inspect/exports.cljs:139 +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, +#: src/app/main/ui/inspect/exports.cljs msgid "workspace.options.export" msgstr "Export" #: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs -#, unused msgid "workspace.options.export-multiple" msgstr "Exporter la sélection" -#: src/app/main/ui/viewer/inspect/exports.cljs:195, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:237 +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs msgid "workspace.options.export-object" msgid_plural "workspace.options.export-object" msgstr[0] "Exporter 1 élément" msgstr[1] "Exporter %s éléments" -#: src/app/main/ui/viewer/inspect/exports.cljs:178, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:219 +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs msgid "workspace.options.export.suffix" msgstr "Suffixe" -#: src/app/main/ui/export.cljs:240 +#: 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.exporting-complete" msgstr "L'export est terminé" -#: src/app/main/ui/export.cljs:172, src/app/main/ui/export.cljs:241, src/app/main/ui/viewer/inspect/exports.cljs:194, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:236 +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, +#: src/app/main/ui/inspect/exports.cljs msgid "workspace.options.exporting-object" msgstr "Exportation…" -#: src/app/main/ui/export.cljs:239 +#: 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.exporting-object-error" msgstr "L'export a échoué" -#: src/app/main/ui/export.cljs:242 +#: 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.exporting-object-slow" msgstr "L'export est étonnamment lent" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:49, src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:174 +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs msgid "workspace.options.fill" msgstr "Remplissage" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:178 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.flows.add-flow-start" msgstr "Indiquer le début du flux" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:174 -msgid "workspace.options.flows.flow" -msgstr "Flux" - #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -#, unused msgid "workspace.options.flows.flow-start" msgstr "Début du flux" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:161 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.flows.flow-starts" msgstr "Départs des flux" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:29 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.auto" msgstr "Automatique" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:157 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.column" msgstr "Colonnes" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.grid-title" msgstr "Quadrillage" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:196, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:237 msgid "workspace.options.grid.params.color" msgstr "Couleur" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.params.columns" msgstr "Colonnes" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:259 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.gutter" msgstr "Gouttière" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:246 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.height" msgstr "Hauteur" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:270 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.margin" msgstr "Marge" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.params.rows" msgstr "Lignes" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:216, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:290 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.set-default" msgstr "Définir par défaut" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.params.size" msgstr "Taille" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.params.type" msgstr "Type" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:231 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.bottom" msgstr "Bas" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:229 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.center" msgstr "Centre" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:228 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.left" msgstr "Gauche" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:232 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.right" msgstr "Droite" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:225 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.stretch" msgstr "Étirer" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:227 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.top" msgstr "Haut" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:211, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:288 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.use-default" msgstr "Utiliser la valeur par défaut" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:247 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.width" msgstr "Largeur" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:158 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.row" msgstr "Lignes" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:156 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.square" msgstr "Carré" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:48 +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs msgid "workspace.options.group-fill" msgstr "Remplissage de groupe" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:42 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.group-stroke" msgstr "Contour de groupe" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:310 -msgid "workspace.options.guides.title" -msgstr "Guides" - -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:406 msgid "workspace.options.height" msgstr "Hauteur" -#: src/app/main/ui/workspace/sidebar/options.cljs:161 msgid "workspace.options.inspect" msgstr "Inspecter" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:468 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-action" msgstr "Action" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:41, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:367 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-after-delay" msgstr "Après un délai" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:614 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-animation" msgstr "Animation" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:406 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-animation-dissolve" msgstr "Dissolution" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:405 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-animation-none" msgstr "Aucune" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:412 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-animation-push" msgstr "Pousser" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:407 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-animation-slide" msgstr "Glissement" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:391 msgid "workspace.options.interaction-auto" msgstr "automatique" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:604 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-background" msgstr "Ajouter une superposition d'arrière-plan" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:590 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-close-outside" msgstr "Fermer en cliquant a l'extérieur" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:372 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-close-overlay" msgstr "Fermer la superposition" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:56 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-close-overlay-dest" msgstr "Fermer la superposition : %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:456 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-delay" msgstr "Délai" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:478 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-destination" msgstr "Destination" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:661 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-duration" msgstr "Durée" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:674 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing" msgstr "Easing" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:416 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing-ease" msgstr "Ease" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:417 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing-ease-in" msgstr "Ease in" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:419 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing-ease-in-out" msgstr "Ease in out" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:418 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing-ease-out" msgstr "Ease out" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:415 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing-linear" msgstr "Linéaire" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -#, unused msgid "workspace.options.interaction-in" msgstr "Dans" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:39, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:364 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-mouse-enter" msgstr "Entrée de la souris" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:40, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:365 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-mouse-leave" msgstr "Sortie de la souris" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:458, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:459, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:464, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:663, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:665, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:669 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-ms" msgstr "ms" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:369 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-navigate-to" msgstr "Naviguer vers" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:50 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-navigate-to-dest" msgstr "Naviguer vers : %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:51, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:53, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:55, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:380 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-none" msgstr "(non définie)" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:691 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-offset-effect" msgstr "Effet de décalage" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:35, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:360 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-on-click" msgstr "Au clic" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:370 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-open-overlay" msgstr "Ouvrir la superposition" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:52 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-open-overlay-dest" msgstr "Ouvrir la superposition : %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:59, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:374 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-open-url" msgstr "Ouvrir l'URL" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -#, unused msgid "workspace.options.interaction-out" msgstr "Sortie" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:403 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-bottom-center" msgstr "Centré en bas" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:401 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-bottom-left" msgstr "En bas à gauche" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:402 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-bottom-right" msgstr "En bas à droite" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:397 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-center" msgstr "Au centre" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:396 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-manual" msgstr "Manuel" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:400 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-top-center" msgstr "Centrer en haut" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:398 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-top-left" msgstr "En haut à gauche" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:399 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-top-right" msgstr "En haut à droite" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:524 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-position" msgstr "Position" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:494 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-preserve-scroll" msgstr "Conserver la position du défilement" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:58, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:373 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-prev-screen" msgstr "Écran précédent" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:515 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-relative-to" msgstr "Relatif à" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:57, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:379, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:393, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:394 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-self" msgstr "soi" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:371 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-toggle-overlay" msgstr "Activer/désactiver la superposition" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:54 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-toggle-overlay-dest" msgstr "Activer/désactiver la superposition : %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:445 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-trigger" msgstr "Déclencheur" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:503 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-url" msgstr "URL" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:37, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:362 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-while-hovering" msgstr "En survolant" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:38, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:363 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-while-pressing" msgstr "En appuyant" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:724 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interactions" msgstr "Interactions" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:137 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.color" msgstr "Couleur" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:126 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.color-burn" msgstr "Densité plus forte" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:129 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.color-dodge" msgstr "Densité plus faible" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:124 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.darken" msgstr "Assombrir" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:133 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.difference" msgstr "Différence" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:134 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.exclusion" msgstr "Exclusion" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:132 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.hard-light" msgstr "Lumière crue" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:135 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.hue" msgstr "Teinte" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:127 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.lighten" msgstr "Éclaircir" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:138 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.luminosity" msgstr "Luminosité" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:125 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.multiply" msgstr "Produit" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:123 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.normal" msgstr "Normal" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:130 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.overlay" msgstr "Incrustation" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:136 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.saturation" msgstr "Saturation" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:128 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.screen" msgstr "Superposition" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:131 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.soft-light" msgstr "Lumière tamisée" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -#, unused msgid "workspace.options.layer-options.title" msgstr "Calque" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -#, unused msgid "workspace.options.layer-options.title.group" msgstr "Grouper les calques" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -#, unused msgid "workspace.options.layer-options.title.multiple" msgstr "Calques sélectionnés" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout-item.advanced-ops" msgstr "Options avancées" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:564 +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs msgid "workspace.options.layout-item.layout-item-max-h" msgstr "Hauteur max" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:531 +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs msgid "workspace.options.layout-item.layout-item-max-w" msgstr "Largeur max" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:548 +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs msgid "workspace.options.layout-item.layout-item-min-h" msgstr "Hauteur min" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:515 +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs msgid "workspace.options.layout-item.layout-item-min-w" msgstr "Largeur min" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout-item.title.layout-item-max-h" msgstr "Hauteur maximale" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout-item.title.layout-item-max-w" msgstr "Largeur maximale" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout-item.title.layout-item-min-h" msgstr "Hauteur minimale" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout-item.title.layout-item-min-w" msgstr "Largeur minimale" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.bottom" msgstr "En bas" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.direction.column" msgstr "Colonne" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.direction.column-reverse" msgstr "Colonne inversée" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.direction.row" msgstr "Ligne" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.direction.row-reverse" msgstr "Ligne inversée" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.gap" msgstr "Gap" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.left" msgstr "A gauche" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout.margin" msgstr "La marge" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout.margin-all" msgstr "Tous les côtés" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout.margin-simple" msgstr "Une marge simple" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.packed" msgstr "compacté" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.padding" msgstr "Marge intérieure" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.padding-all" msgstr "Tous les côtés" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.padding-simple" msgstr "Marge intérieure simple" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.right" msgstr "À droite" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.space-around" msgstr "espace autour" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.space-between" msgstr "espace entre" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.top" msgstr "En haut" -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:146 +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs msgid "workspace.options.more-colors" msgstr "Plus de couleurs" -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:123 +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs msgid "workspace.options.more-lib-colors" msgstr "Plus de couleurs de la bibliothèque" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:161 msgid "workspace.options.opacity" msgstr "Opacité" -#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.position" msgstr "Position" -#: src/app/main/ui/workspace/sidebar/options.cljs:157 +#: src/app/main/ui/workspace/sidebar/options.cljs msgid "workspace.options.prototype" msgstr "Prototype" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:469, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:481 msgid "workspace.options.radius" msgstr "Rayon" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:513 +#: 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:522 +#: 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/measures.cljs:495 +#: 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:504 +#: 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:532 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.radius.all-corners" msgstr "Tous les coins" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:533 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.radius.single-corners" msgstr "Coins individuels" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:183 msgid "workspace.options.recent-fonts" msgstr "Récentes" -#: src/app/main/ui/export.cljs:284 +#: 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" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:451 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.rotation" msgstr "Rotation" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:180 msgid "workspace.options.search-font" msgstr "Rechercher une police" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:741 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.select-a-shape" msgstr "" "Sélectionnez une forme, un plan de travail ou un groupe pour faire glisser " "une connexion vers un autre plan de travail." -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:105 +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs msgid "workspace.options.selection-color" msgstr "Couleurs sélectionnées" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:47 +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs msgid "workspace.options.selection-fill" msgstr "Remplissage de sélection" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:41 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.selection-stroke" msgstr "Contour de sélection" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:40, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:198, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:200 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.blur" msgstr "Flou" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:238 msgid "workspace.options.shadow-options.color" msgstr "Couleur de l'ombre" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:144 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.drop-shadow" msgstr "Ombre portée" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:145 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.inner-shadow" msgstr "Ombre intérieure" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:38, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:186 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.offsetx" msgstr "X" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:39, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:224 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.offsety" msgstr "Y" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:41, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:211, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:213 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.spread" msgstr "Diffusion" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:296 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.title" msgstr "Ombre" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:295 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.title.group" msgstr "Ombre de groupe" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:294 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.title.multiple" msgstr "Ombres de la sélection" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:193 +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs msgid "workspace.options.show-fill-on-export" msgstr "Afficher à l'export" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:562 msgid "workspace.options.show-in-viewer" msgstr "Montrer en mode spectateur" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:162 +#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.size" msgstr "Taille" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:355 +#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs msgid "workspace.options.size-presets" msgstr "Tailles prédéfinies" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:43 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke" msgstr "Bordure" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -#, unused msgid "workspace.options.stroke-cap.circle-marker" msgstr "Marqueur cercle" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:129 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.circle-marker-short" msgstr "Cercle" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -#, unused msgid "workspace.options.stroke-cap.diamond-marker" msgstr "Marqueur diamant" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:130 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.diamond-marker-short" msgstr "Diamant" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -#, unused msgid "workspace.options.stroke-cap.line-arrow" msgstr "Flèche de ligne" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:126 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.line-arrow-short" msgstr "Flèche" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:124 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.none" msgstr "Aucune" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:132 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.round" msgstr "Rond" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:133 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.square" msgstr "Carré" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -#, unused msgid "workspace.options.stroke-cap.square-marker" msgstr "Marqueur carré" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:128 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.square-marker-short" msgstr "Rectangle" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -#, unused msgid "workspace.options.stroke-cap.triangle-arrow" msgstr "Flèche triangle" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:127 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.triangle-arrow-short" msgstr "Triangle" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:192 msgid "workspace.options.stroke-color" msgstr "Couleur du tracé" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:165 msgid "workspace.options.stroke-width" msgstr "Largeur du tracé" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:87 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.center" msgstr "Centre" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:105 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.dashed" msgstr "Tirets" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:104 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.dotted" msgstr "Pointillé" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:88 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.inner" msgstr "Intérieur" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:106 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.mixed" msgstr "Mixte" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:89 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.outer" msgstr "Extérieur" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:103 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.solid" msgstr "Solide" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:115 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.align-bottom" msgstr "Aligner en bas" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:111 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.align-middle" msgstr "Aligner verticalement au milieu" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:107 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.align-top" msgstr "Aligner en haut" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:82 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.direction-ltr" msgstr "Gauche à droite" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:87 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.direction-rtl" msgstr "Droite à gauche" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:149 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.grow-auto-height" msgstr "Hauteur automatique" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:145 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.grow-auto-width" msgstr "Largeur automatique" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:141 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.grow-fixed" msgstr "Fixe" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:381 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.options.text-options.letter-spacing" msgstr "Interlettrage" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:364 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.options.text-options.line-height" msgstr "Interlignage" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused msgid "workspace.options.text-options.lowercase" msgstr "Minuscule" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.options.text-options.none" msgstr "Aucune" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:176 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.strikethrough" msgstr "Barré (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:51 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.text-align-center" msgstr "Aligner au centre (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:59 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.text-align-justify" msgstr "Justifier (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:47 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.text-align-left" msgstr "Aligner à gauche (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:55 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.text-align-right" msgstr "Aligner à droite (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:189 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.title" msgstr "Texte" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:188 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.title-group" msgstr "Texte de groupe" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:187 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.title-selection" msgstr "Texte de la sélection" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused msgid "workspace.options.text-options.titlecase" msgstr "Premières Lettres en Capitales" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:171 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.underline" msgstr "Soulignage (%s)" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused msgid "workspace.options.text-options.uppercase" msgstr "Majuscule" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:745 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.use-play-button" msgstr "" "Utilisez le bouton de lecture dans l’en‑tête pour exécuter la vue du " "prototype." -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:395 msgid "workspace.options.width" msgstr "Largeur" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:427 msgid "workspace.options.x" msgstr "Axe X" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:438 msgid "workspace.options.y" msgstr "Axe Y" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:167 msgid "workspace.path.actions.add-node" msgstr "Ajouter un nœud (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:174 msgid "workspace.path.actions.delete-node" msgstr "Supprimer le nœud (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:152 msgid "workspace.path.actions.draw-nodes" msgstr "Dessiner des nœuds (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:189 msgid "workspace.path.actions.join-nodes" msgstr "Joindre les nœuds (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:204 msgid "workspace.path.actions.make-corner" msgstr "Convertir en coin (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:211 msgid "workspace.path.actions.make-curve" msgstr "Convertir en courbe (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:182 msgid "workspace.path.actions.merge-nodes" msgstr "Fusionner les nœuds (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:159 msgid "workspace.path.actions.move-nodes" msgstr "Déplacer les nœuds (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:196 msgid "workspace.path.actions.separate-nodes" msgstr "Dissocier les nœuds (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:218 msgid "workspace.path.actions.snap-nodes" msgstr "Aligner les nœuds (%s)" -#: src/app/main/ui/workspace/context_menu.cljs:441 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.add-flex" msgstr "Ajouter flex layout" -#: src/app/main/ui/workspace/context_menu.cljs:445 msgid "workspace.shape.menu.add-grid" msgstr "Ajouter disposition en grille" -#: src/app/main/ui/workspace/context_menu.cljs:193 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.back" msgstr "Envoyer au fond" -#: src/app/main/ui/workspace/context_menu.cljs:190 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.backward" msgstr "Éloigner" -#: src/app/main/ui/workspace/context_menu.cljs:139 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.copy" msgstr "Copier" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:427 msgid "workspace.shape.menu.create-annotation" msgstr "Créer une note" -#: src/app/main/ui/workspace/context_menu.cljs:275 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.create-artboard-from-selection" msgstr "Créer un plan de travail depuis la sélection" -#: src/app/main/ui/workspace/context_menu.cljs:465 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.create-component" msgstr "Créer un composant" -#: src/app/main/ui/workspace/context_menu.cljs:469 msgid "workspace.shape.menu.create-multiple-components" msgstr "Créer plusieurs composants" -#: src/app/main/ui/workspace/context_menu.cljs:142 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.cut" msgstr "Couper" -#: src/app/main/ui/workspace/context_menu.cljs:486 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.delete" msgstr "Supprimer" -#: src/app/main/ui/workspace/context_menu.cljs:391 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.delete-flow-start" msgstr "Supprimer le départ du flux" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:432 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.detach-instance" msgstr "Détacher l’instance" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:431 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.detach-instances-in-bulk" msgstr "Détacher les instances" -#: src/app/main/ui/workspace/context_menu.cljs:335, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:75 msgid "workspace.shape.menu.difference" msgstr "Différence" -#: src/app/main/ui/workspace/context_menu.cljs:148 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.duplicate" msgstr "Dupliquer" -#: src/app/main/ui/workspace/context_menu.cljs:321 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.edit" msgstr "Modifier" -#: src/app/main/ui/workspace/context_menu.cljs:341 msgid "workspace.shape.menu.exclude" msgstr "Exclure" -#: src/app/main/ui/workspace/context_menu.cljs:348, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:89 msgid "workspace.shape.menu.flatten" msgstr "Aplatir" -#: src/app/main/ui/workspace/context_menu.cljs:208 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.flip-horizontal" msgstr "Retourner horizontalement" -#: src/app/main/ui/workspace/context_menu.cljs:204 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.flip-vertical" msgstr "Retourner verticalement" -#: src/app/main/ui/workspace/context_menu.cljs:394 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.flow-start" msgstr "Départ du flux" -#: src/app/main/ui/workspace/context_menu.cljs:184 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.forward" msgstr "Avancer" -#: src/app/main/ui/workspace/context_menu.cljs:187 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.front" msgstr "Amener au premier plan" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.go-main" msgstr "Aller au fichier du composant principal" -#: src/app/main/ui/workspace/context_menu.cljs:261 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.group" msgstr "Groupe" -#: src/app/main/ui/workspace/context_menu.cljs:363, src/app/main/ui/workspace/sidebar/layer_item.cljs:145 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.hide" msgstr "Masquer" -#: src/app/main/ui/workspace/context_menu.cljs:548, src/app/main/ui/workspace/main_menu.cljs:408 msgid "workspace.shape.menu.hide-ui" msgstr "Montrer/Masquer l'interface" -#: src/app/main/ui/workspace/context_menu.cljs:338 msgid "workspace.shape.menu.intersection" msgstr "Intersection" -#: src/app/main/ui/workspace/context_menu.cljs:371, src/app/main/ui/workspace/sidebar/layer_item.cljs:153 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.lock" msgstr "Bloquer" -#: src/app/main/ui/workspace/context_menu.cljs:266 +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.mask" msgstr "Masque" -#: src/app/main/ui/workspace/context_menu.cljs:145, src/app/main/ui/workspace/context_menu.cljs:545 +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.paste" msgstr "Coller" -#: src/app/main/ui/workspace/context_menu.cljs:331 msgid "workspace.shape.menu.path" msgstr "Chemin" -#: src/app/main/ui/workspace/context_menu.cljs:432 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.remove-flex" msgstr "Retirer flex layout" -#: src/app/main/ui/workspace/context_menu.cljs:435 -msgid "workspace.shape.menu.remove-grid" -msgstr "Supprimer la disposition en grille" - -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:436 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.reset-overrides" msgstr "Annuler les modifications" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:439 msgid "workspace.shape.menu.restore-main" msgstr "Rétablir le composant principal" -#: src/app/main/ui/workspace/context_menu.cljs:174 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.select-layer" msgstr "Sélectionner le calque" -#: src/app/main/ui/workspace/context_menu.cljs:360, src/app/main/ui/workspace/sidebar/layer_item.cljs:144 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.show" msgstr "Montrer" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:424 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.show-in-assets" msgstr "Afficher dans le panneau des ressources" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:442, src/app/main/ui/workspace/sidebar/assets/components.cljs:586 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.show-main" msgstr "Afficher le composant principal" -#: src/app/main/ui/workspace/context_menu.cljs:221 msgid "workspace.shape.menu.thumbnail-remove" msgstr "Retirer la miniature" -#: src/app/main/ui/workspace/context_menu.cljs:223 msgid "workspace.shape.menu.thumbnail-set" msgstr "Définir comme miniature" -#: src/app/main/ui/workspace/context_menu.cljs:326 msgid "workspace.shape.menu.transform-to-path" msgstr "Transformer en chemin" -#: src/app/main/ui/workspace/context_menu.cljs:257 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.ungroup" msgstr "Dégrouper" -#: src/app/main/ui/workspace/context_menu.cljs:332, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:70 msgid "workspace.shape.menu.union" msgstr "Union" -#: src/app/main/ui/workspace/context_menu.cljs:368, src/app/main/ui/workspace/sidebar/layer_item.cljs:152 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.unlock" msgstr "Débloquer" -#: src/app/main/ui/workspace/context_menu.cljs:271 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.unmask" msgstr "Supprimer le masque" #: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs -#, unused msgid "workspace.shape.menu.update-components-in-bulk" msgstr "Mettre à jour les composants" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:445 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.update-main" msgstr "Actualiser le composant principal" -#: src/app/main/ui/components/tab_container.cljs:50 msgid "workspace.sidebar.collapse" msgstr "Réduire la barre latérale" -#: src/app/main/ui/workspace/sidebar/collapsable_button.cljs:26 msgid "workspace.sidebar.expand" msgstr "Ouvrir la barre latérale" -#: src/app/main/ui/workspace/right_header.cljs:231, src/app/main/ui/workspace/right_header.cljs:232 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.sidebar.history" msgstr "Historique (%s)" -#: src/app/main/ui/workspace/sidebar/layers.cljs:522, src/app/main/ui/workspace/sidebar.cljs:100 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.sidebar.layers" msgstr "Calques" -#: src/app/main/ui/workspace/sidebar/layers.cljs:308, src/app/main/ui/workspace/sidebar/layers.cljs:380 msgid "workspace.sidebar.layers.components" msgstr "Composants" -#: src/app/main/ui/workspace/sidebar/layers.cljs:305, src/app/main/ui/workspace/sidebar/layers.cljs:338 msgid "workspace.sidebar.layers.frames" msgstr "Plans de travail" -#: src/app/main/ui/workspace/sidebar/layers.cljs:306, src/app/main/ui/workspace/sidebar/layers.cljs:352 msgid "workspace.sidebar.layers.groups" msgstr "Groupes" -#: src/app/main/ui/workspace/sidebar/layers.cljs:310, src/app/main/ui/workspace/sidebar/layers.cljs:408 msgid "workspace.sidebar.layers.images" msgstr "Images" -#: src/app/main/ui/workspace/sidebar/layers.cljs:307, src/app/main/ui/workspace/sidebar/layers.cljs:366 msgid "workspace.sidebar.layers.masks" msgstr "Les masques" -#: src/app/main/ui/workspace/sidebar/layers.cljs:289 msgid "workspace.sidebar.layers.search" msgstr "Rechercher des calques" -#: src/app/main/ui/workspace/sidebar/layers.cljs:311, src/app/main/ui/workspace/sidebar/layers.cljs:422 msgid "workspace.sidebar.layers.shapes" msgstr "Formes" -#: src/app/main/ui/workspace/sidebar/layers.cljs:309, src/app/main/ui/workspace/sidebar/layers.cljs:394 msgid "workspace.sidebar.layers.texts" msgstr "Textes" -#: src/app/main/ui/viewer/inspect/attributes/svg.cljs:56, src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs:91 +#: src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs, +#: src/app/main/ui/inspect/attributes/svg.cljs msgid "workspace.sidebar.options.svg-attrs.title" msgstr "Attributs SVG importés" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs:217 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs msgid "workspace.sidebar.sitemap" msgstr "Pages" -#: src/app/main/ui/workspace/left_header.cljs:91 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.sitemap" msgstr "Plan du site" -#: src/app/main/ui/workspace/sidebar.cljs:120 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.assets" msgstr "Ressources" -#: src/app/main/ui/workspace/palette.cljs:165, src/app/main/ui/workspace/palette.cljs:166 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.color-palette" msgstr "Palette de couleurs (%s)" -#: src/app/main/ui/workspace/right_header.cljs:220, src/app/main/ui/workspace/right_header.cljs:221 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.comments" msgstr "Commentaires (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:180, src/app/main/ui/workspace/top_toolbar.cljs:181 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.curve" msgstr "Courbe (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:160, src/app/main/ui/workspace/top_toolbar.cljs:161 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.ellipse" msgstr "Ellipse (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:142, src/app/main/ui/workspace/top_toolbar.cljs:143 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.frame" msgstr "Plan de travail (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:59, src/app/main/ui/workspace/top_toolbar.cljs:60 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.image" msgstr "Image (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:132, src/app/main/ui/workspace/top_toolbar.cljs:133 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.move" msgstr "Déplacer (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:189, src/app/main/ui/workspace/top_toolbar.cljs:190 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.path" msgstr "Chemin (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:151, src/app/main/ui/workspace/top_toolbar.cljs:152 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.rect" msgstr "Rectangle (%s)" #: src/app/main/ui/workspace/left_toolbar.cljs -#, unused msgid "workspace.toolbar.shortcuts" msgstr "Raccourcis (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:169, src/app/main/ui/workspace/top_toolbar.cljs:170 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.text" msgstr "Texte (%s)" -#: src/app/main/ui/workspace/palette.cljs:173, src/app/main/ui/workspace/palette.cljs:174 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.text-palette" msgstr "Polices (%s)" -#: src/app/main/ui/workspace/viewport/top_bar.cljs:38 +#: src/app/main/ui/workspace/sidebar/history.cljs +msgid "workspace.undo.empty" +msgstr "Il n’y a aucun changement dans l’historique pour l’instant" + +#: src/app/main/ui/workspace/sidebar/history.cljs +msgid "workspace.undo.entry.delete" +msgstr "Supprimé %s" + +#: src/app/main/ui/workspace/sidebar/history.cljs +msgid "workspace.undo.entry.modify" +msgstr "Modifié %s" + +#: src/app/main/ui/workspace/sidebar/history.cljs +msgid "workspace.undo.entry.move" +msgstr "Objets déplacés" + +msgid "workspace.undo.entry.multiple.circle" +msgstr "cercles" + +msgid "workspace.undo.entry.multiple.color" +msgstr "couleurs" + +msgid "workspace.undo.entry.multiple.component" +msgstr "composants" + +msgid "workspace.undo.entry.multiple.curve" +msgstr "courbes" + +msgid "workspace.undo.entry.multiple.frame" +msgstr "plan de travail" + +msgid "workspace.undo.entry.multiple.group" +msgstr "groupes" + +msgid "workspace.undo.entry.multiple.media" +msgstr "graphiques" + +msgid "workspace.undo.entry.multiple.multiple" +msgstr "objets" + +msgid "workspace.undo.entry.multiple.page" +msgstr "pages" + +msgid "workspace.undo.entry.multiple.path" +msgstr "chemins" + +msgid "workspace.undo.entry.multiple.rect" +msgstr "rectangles" + +msgid "workspace.undo.entry.multiple.shape" +msgstr "formes" + +msgid "workspace.undo.entry.multiple.text" +msgstr "textes" + +msgid "workspace.undo.entry.multiple.typography" +msgstr "typographie" + +#: src/app/main/ui/workspace/sidebar/history.cljs +msgid "workspace.undo.entry.new" +msgstr "Nouveau %s" + +msgid "workspace.undo.entry.single.circle" +msgstr "cercle" + +msgid "workspace.undo.entry.single.color" +msgstr "couleur" + +msgid "workspace.undo.entry.single.component" +msgstr "composant" + +msgid "workspace.undo.entry.single.curve" +msgstr "courbe" + +msgid "workspace.undo.entry.single.frame" +msgstr "plan de travail" + +msgid "workspace.undo.entry.single.group" +msgstr "groupe" + +msgid "workspace.undo.entry.single.image" +msgstr "image" + +msgid "workspace.undo.entry.single.media" +msgstr "graphique" + +msgid "workspace.undo.entry.single.multiple" +msgstr "objet" + +msgid "workspace.undo.entry.single.page" +msgstr "page" + +msgid "workspace.undo.entry.single.path" +msgstr "chemin" + +msgid "workspace.undo.entry.single.rect" +msgstr "rectangle" + +msgid "workspace.undo.entry.single.shape" +msgstr "forme" + +msgid "workspace.undo.entry.single.text" +msgstr "texte" + +msgid "workspace.undo.entry.single.typography" +msgstr "typographie" + +#: src/app/main/ui/workspace/sidebar/history.cljs +msgid "workspace.undo.entry.unknown" +msgstr "Opération sur %s" + +#: src/app/main/ui/workspace/sidebar/history.cljs +msgid "workspace.undo.title" +msgstr "Historique" + +#: src/app/main/data/workspace/libraries.cljs +msgid "workspace.updates.dismiss" +msgstr "Ignorer" + +#: src/app/main/data/workspace/libraries.cljs +msgid "workspace.updates.more-info" +msgstr "Plus d'information" + +#: src/app/main/data/workspace/libraries.cljs +msgid "workspace.updates.there-are-updates" +msgstr "Il y a des mises à jour dans les Bibliothèques Partagées" + +#: src/app/main/data/workspace/libraries.cljs +msgid "workspace.updates.update" +msgstr "Actualiser" + +msgid "workspace.viewport.click-to-close-path" +msgstr "Cliquez pour fermer le chemin" + +#: src/app/main/ui/workspace/sidebar/assets/common.cljs +msgid "workspace.assets.sidebar.components" +msgid_plural "workspace.assets.sidebar.components" +msgstr[0] "1 composant" +msgstr[1] "%s composants" + +msgid "modals.move-shared-confirm.message" +msgid_plural "modals.move-shared-confirm.message" +msgstr[0] "Êtes-vous sûr de vouloir déplacer cette librairie ?" +msgstr[1] "Êtes-vous sûr de vouloir déplacer ces librairies ?" + +msgid "modals.move-shared-confirm.title" +msgid_plural "modals.move-shared-confirm.title" +msgstr[0] "Déplacer librairie" +msgstr[1] "Déplacer librairies" + +msgid "onboarding.team-modal.team-definition" +msgstr "Qu'est-ce qu'une équipe ?" + +msgid "shortcuts.scale" +msgstr "Échelle" + +msgid "shortcuts.toggle-layout-grid" +msgstr "Ajouter / Retirer grid layout" + +msgid "workspace.context-menu.grid-cells.create-board" +msgstr "Créer un tableau" + +msgid "workspace.context-menu.grid-cells.merge" +msgstr "Fusionner les cellules" + +msgid "workspace.context-menu.grid-track.column.add-after" +msgstr "Ajouter une colonne à droite" + +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.menu.enable-snap-ruler-guides" +msgstr "Aligner aux guides de règles" + +msgid "workspace.layout_grid.editor.options.edit-grid" +msgstr "Éditer la grille" + +msgid "workspace.layout_grid.editor.top-bar.locate" +msgstr "Montrer" + +#: src/app/main/ui/workspace/context_menu.cljs +msgid "workspace.shape.menu.remove-grid" +msgstr "Supprimer la disposition en grille" + +#: src/app/main/ui/workspace/libraries.cljs +msgid "workspace.libraries.loading" +msgstr "Chargement…" + +msgid "inspect.attributes.typography.text-transform.unset" +msgstr "Non assigné" + +msgid "labels.share" +msgstr "Partager" + +msgid "labels.search" +msgstr "Rechercher" + +msgid "onboarding.choice.team-up.continue-creating-team" +msgstr "Continuer en créant une équipe" + +msgid "onboarding.choice.team-up.start-without-a-team" +msgstr "Commencer sans équipe" + +msgid "onboarding.choice.team-up.continue-without-a-team" +msgstr "Continuer sans équipe" + +msgid "onboarding.choice.team-up.create-team-and-send-invites" +msgstr "Créer une équipe et envoyer des invitations" + +msgid "onboarding.choice.team-up.start-without-a-team-description" +msgstr "Vous pourrez créer une équipe plus tard." + +msgid "onboarding.choice.team-up.create-team-and-invite" +msgstr "Créer une équipe et inviter" + +msgid "onboarding.choice.team-up.create-team-and-send-invites-description" +msgstr "Vous pourrez envoyer les invitations plus tard" + +msgid "onboarding.choice.team-up.create-team-without-invite" +msgstr "Créer l'équipe" + +msgid "onboarding.choice.team-up.create-team-without-inviting" +msgstr "Créer l'équipe sans inviter" + +msgid "workspace.layout_grid.editor.top-bar.done" +msgstr "Fait" + +msgid "workspace.layout_grid.editor.options.exit" +msgstr "Quitter" + +msgid "workspace.options.component.swap" +msgstr "Échanger composant" + +msgid "workspace.options.component.swap.empty" +msgstr "Cette librairie ne contient aucun élément pour le moment" + +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +msgid "workspace.options.flows.flow" +msgstr "Flux" + +msgid "media.radial" +msgstr "Radial" + +msgid "media.choose-image" +msgstr "Choisir image" + +msgid "media.gradient" +msgstr "Gradient" + +msgid "workspace.options.guides.title" +msgstr "Guides" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.login-account-title" +msgstr "Connexion à mon compte" + +#: src/app/main/data/users.cljs +msgid "errors.email-domain-not-allowed" +msgstr "Domaine non autorisé" + +msgid "errors.paste-data-validation" +msgstr "Données du presse-papier invalides" + +msgid "errors.validation" +msgstr "Erreur de validation" + +msgid "media.image" +msgstr "Image" + +msgid "media.image.short" +msgstr "img" + +msgid "media.keep-aspect-ratio" +msgstr "Conserver le ratio" + +msgid "media.linear" +msgstr "Linéaire" + +msgid "media.solid" +msgstr "Solide" + +msgid "modals.move-shared-confirm.accept" +msgid_plural "modals.move-shared-confirm.accept" +msgstr[0] "Déplacer" +msgstr[1] "Déplacer" + +#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs +msgid "settings.select-this-color" +msgstr "Sélectionnez les éléments qui utilisent ce style" + +msgid "shortcuts.toggle-guides" +msgstr "Montrer / Cacher les guides" + +msgid "shortcuts.toggle-rulers" +msgstr "Montrer / Cacher les règles" + +msgid "shortcuts.toggle-snap-guides" +msgstr "Aligner selon les guides" + +msgid "shortcuts.toggle-snap-ruler-guide" +msgstr "Aligner selon les guides de règles" + +msgid "shortcuts.toggle-theme" +msgstr "Changer le thème" + +#: src/app/main/ui/workspace/sidebar/assets.cljs +msgid "workspace.assets.filter" +msgstr "Filtrer" + +#: src/app/main/ui/workspace/sidebar/assets.cljs +msgid "workspace.assets.sort" +msgstr "Trier" + +msgid "workspace.context-menu.grid-track.column.add-before" +msgstr "Ajouter une colonne à gauche" + +msgid "workspace.context-menu.grid-track.column.delete" +msgstr "Supprimer la colonne" + +msgid "workspace.context-menu.grid-track.column.delete-shapes" +msgstr "Supprimer la colonne et le contenu" + +msgid "workspace.context-menu.grid-track.column.duplicate" +msgstr "Dupliquer la colonne" + +msgid "workspace.context-menu.grid-track.row.add-after" +msgstr "Ajouter une rangée en-dessous" + +msgid "workspace.context-menu.grid-track.row.add-before" +msgstr "Ajouter une rangée au-dessus" + +msgid "workspace.context-menu.grid-track.row.delete" +msgstr "Supprimer la rangée" + +msgid "workspace.context-menu.grid-track.row.delete-shapes" +msgstr "Supprimer la rangée et son contenu" + +msgid "workspace.context-menu.grid-track.row.duplicate" +msgstr "Dupliquer la rangée" + +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.menu.disable-snap-ruler-guides" +msgstr "Désactiver l'alignement aux guides de règles" + +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.menu.show-guides" +msgstr "Montrer les guides" + +msgid "workspace.header.menu.toggle-dark-theme" +msgstr "Basculer vers le thème sombre" + +msgid "workspace.header.menu.toggle-light-theme" +msgstr "Basculer vers le thème clair" + +msgid "workspace.layout_grid.editor.padding.expand" +msgstr "Montrer les options de marge intérieure sur les 4 côtés" + +msgid "workspace.layout_grid.editor.top-bar.locate.tooltip" +msgstr "Montrer la disposition en grille" + +#: src/app/main/ui/workspace/libraries.cljs +msgid "workspace.libraries.shared-library-btn" +msgstr "Connecter librairie" + +#: src/app/main/ui/workspace/libraries.cljs +msgid "workspace.libraries.unlink-library-btn" +msgstr "Déconnecter librairie" + msgid "workspace.top-bar.read-only.done" msgstr "Fait" -#: src/app/main/ui/workspace/viewport/top_bar.cljs:35 #, markdown msgid "workspace.top-bar.view-only" msgstr "**Inspection du code** (Vue uniquement)" -#: src/app/main/ui/workspace/sidebar/history.cljs:342 -msgid "workspace.undo.empty" -msgstr "Il n’y a aucun changement dans l’historique pour l’instant" +#: src/app/main/ui/auth/login.cljs +msgid "auth.login-tagline" +msgstr "" +"Penpot est l'outil de design libre et open-source pour la collaboration " +"entre Design et Développement" -#: src/app/main/ui/workspace/sidebar/history.cljs:147 -msgid "workspace.undo.entry.delete" -msgstr "Supprimé %s" +msgid "dashboard.import.analyze-error.components-v2" +msgstr "" +"Fichier avec composants v2 activé mais n'est pas encore supporté par cette " +"équipe." -#: src/app/main/ui/workspace/sidebar/history.cljs:146 -msgid "workspace.undo.entry.modify" -msgstr "Modifié %s" +#: src/app/main/data/users.cljs +msgid "errors.auth-provider-not-allowed" +msgstr "Le fournisseur d'authentification n'est pas autorisé pour ce profil" -#: src/app/main/ui/workspace/sidebar/history.cljs:148 -msgid "workspace.undo.entry.move" -msgstr "Objets déplacés" +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.menu.hide-guides" +msgstr "Cacher les guides" -#: src/app/main/ui/workspace/sidebar/history.cljs:111 -msgid "workspace.undo.entry.multiple.circle" -msgstr "cercles" - -#: src/app/main/ui/workspace/sidebar/history.cljs:112 -msgid "workspace.undo.entry.multiple.color" -msgstr "couleurs" - -#: src/app/main/ui/workspace/sidebar/history.cljs:113 -msgid "workspace.undo.entry.multiple.component" -msgstr "composants" - -#: src/app/main/ui/workspace/sidebar/history.cljs:114 -msgid "workspace.undo.entry.multiple.curve" -msgstr "courbes" - -#: src/app/main/ui/workspace/sidebar/history.cljs:115 -msgid "workspace.undo.entry.multiple.frame" -msgstr "plan de travail" - -#: src/app/main/ui/workspace/sidebar/history.cljs:116 -msgid "workspace.undo.entry.multiple.group" -msgstr "groupes" - -#: src/app/main/ui/workspace/sidebar/history.cljs:117 -msgid "workspace.undo.entry.multiple.media" -msgstr "graphiques" - -#: src/app/main/ui/workspace/sidebar/history.cljs:118 -msgid "workspace.undo.entry.multiple.multiple" -msgstr "objets" - -#: src/app/main/ui/workspace/sidebar/history.cljs:119 -msgid "workspace.undo.entry.multiple.page" -msgstr "pages" - -#: src/app/main/ui/workspace/sidebar/history.cljs:120 -msgid "workspace.undo.entry.multiple.path" -msgstr "chemins" - -#: src/app/main/ui/workspace/sidebar/history.cljs:121 -msgid "workspace.undo.entry.multiple.rect" -msgstr "rectangles" - -#: src/app/main/ui/workspace/sidebar/history.cljs:122 -msgid "workspace.undo.entry.multiple.shape" -msgstr "formes" - -#: src/app/main/ui/workspace/sidebar/history.cljs:123 -msgid "workspace.undo.entry.multiple.text" -msgstr "textes" - -#: src/app/main/ui/workspace/sidebar/history.cljs:124 -msgid "workspace.undo.entry.multiple.typography" -msgstr "typographie" - -#: src/app/main/ui/workspace/sidebar/history.cljs:145 -msgid "workspace.undo.entry.new" -msgstr "Nouveau %s" - -#: src/app/main/ui/workspace/sidebar/history.cljs:125 -msgid "workspace.undo.entry.single.circle" -msgstr "cercle" - -#: src/app/main/ui/workspace/sidebar/history.cljs:126 -msgid "workspace.undo.entry.single.color" -msgstr "couleur" - -#: src/app/main/ui/workspace/sidebar/history.cljs:127 -msgid "workspace.undo.entry.single.component" -msgstr "composant" - -#: src/app/main/ui/workspace/sidebar/history.cljs:128 -msgid "workspace.undo.entry.single.curve" -msgstr "courbe" - -#: src/app/main/ui/workspace/sidebar/history.cljs:129 -msgid "workspace.undo.entry.single.frame" -msgstr "plan de travail" - -#: src/app/main/ui/workspace/sidebar/history.cljs:130 -msgid "workspace.undo.entry.single.group" -msgstr "groupe" - -#: src/app/main/ui/workspace/sidebar/history.cljs:131 -msgid "workspace.undo.entry.single.image" -msgstr "image" - -#: src/app/main/ui/workspace/sidebar/history.cljs:132 -msgid "workspace.undo.entry.single.media" -msgstr "graphique" - -#: src/app/main/ui/workspace/sidebar/history.cljs:133 -msgid "workspace.undo.entry.single.multiple" -msgstr "objet" - -#: src/app/main/ui/workspace/sidebar/history.cljs:134 -msgid "workspace.undo.entry.single.page" -msgstr "page" - -#: src/app/main/ui/workspace/sidebar/history.cljs:135 -msgid "workspace.undo.entry.single.path" -msgstr "chemin" - -#: src/app/main/ui/workspace/sidebar/history.cljs:136 -msgid "workspace.undo.entry.single.rect" -msgstr "rectangle" - -#: src/app/main/ui/workspace/sidebar/history.cljs:137 -msgid "workspace.undo.entry.single.shape" -msgstr "forme" - -#: src/app/main/ui/workspace/sidebar/history.cljs:138 -msgid "workspace.undo.entry.single.text" -msgstr "texte" - -#: src/app/main/ui/workspace/sidebar/history.cljs:139 -msgid "workspace.undo.entry.single.typography" -msgstr "typographie" - -#: src/app/main/ui/workspace/sidebar/history.cljs:149 -msgid "workspace.undo.entry.unknown" -msgstr "Opération sur %s" - -#: src/app/main/ui/workspace/sidebar/history.cljs:335 -msgid "workspace.undo.title" -msgstr "Historique" - -#: src/app/main/data/workspace/libraries.cljs:1094 -msgid "workspace.updates.dismiss" -msgstr "Ignorer" - -#: src/app/main/data/workspace/libraries.cljs:1092 -msgid "workspace.updates.more-info" -msgstr "Plus d'information" - -#: src/app/main/data/workspace/libraries.cljs:1090 -msgid "workspace.updates.there-are-updates" -msgstr "Il y a des mises à jour dans les Bibliothèques Partagées" - -#: src/app/main/data/workspace/libraries.cljs:1097 -msgid "workspace.updates.update" -msgstr "Actualiser" - -#, unused -msgid "workspace.viewport.click-to-close-path" -msgstr "Cliquez pour fermer le chemin" +msgid "workspace.context-menu.grid-cells.area" +msgstr "Créer une zone" diff --git a/frontend/translations/gl.po b/frontend/translations/gl.po index 8f5c101b8c..3055ed0933 100644 --- a/frontend/translations/gl.po +++ b/frontend/translations/gl.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "PO-Revision-Date: 2024-06-17 08:07+0000\n" "Last-Translator: Anonymous \n" -"Language-Team: Galician " -"\n" +"Language-Team: Galician \n" "Language: gl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" @@ -11,423 +11,378 @@ msgstr "" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 5.6-dev\n" -#: src/app/main/ui/auth/register.cljs:151, src/app/main/ui/viewer/login.cljs:104 +#: src/app/main/ui/auth/register.cljs msgid "auth.already-have-account" msgstr "Xa tes unha conta?" -#: src/app/main/ui/auth/register.cljs:299 +#: src/app/main/ui/auth/register.cljs msgid "auth.check-your-email" msgstr "" "Consulta o teu correo electrónico e preme na ligazón de verificación para " "comezar a usar Penpot." -#: src/app/main/ui/auth/recovery.cljs:78 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.confirm-password" msgstr "Confirmar o contrasinal" -#: src/app/main/ui/auth/register.cljs:163 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.create-demo-account" msgstr "Crear unha conta de proba" #: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs -#, unused msgid "auth.create-demo-profile" msgstr "Queres probar?" -#: src/app/main/ui/auth/login.cljs:43 +#: src/app/main/ui/auth/register.cljs msgid "auth.demo-warning" msgstr "" "Este é un servizo de DEMOSTRACIÓN. NON O UTILICES para traballos reais, os " "proxectos eliminanse periódicamente." -#: src/app/main/ui/auth/login.cljs:189, src/app/main/ui/viewer/login.cljs:90 +#: src/app/main/ui/auth/login.cljs msgid "auth.forgot-password" msgstr "Esqueciches o teu contrasinal?" -#: src/app/main/ui/auth/register.cljs:254 +#: src/app/main/ui/auth/register.cljs msgid "auth.fullname" msgstr "Nome completo" -#: src/app/main/ui/auth/register.cljs:155, src/app/main/ui/viewer/login.cljs:107 +#: src/app/main/ui/auth/register.cljs +#, fuzzy msgid "auth.login-here" msgstr "Entra aquí" -#: src/app/main/ui/auth/login.cljs:195 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-submit" msgstr "Entrar" -#: src/app/main/ui/auth/login.cljs:222 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-github-submit" msgstr "GitHub" -#: src/app/main/ui/auth/login.cljs:228 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-gitlab-submit" msgstr "Gitlab" -#: src/app/main/ui/auth/login.cljs:216 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-google-submit" msgstr "Google" -#: src/app/main/ui/auth/login.cljs:201 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-ldap-submit" msgstr "LDAP" -#: src/app/main/ui/auth/login.cljs:234, src/app/main/ui/auth/login.cljs:255 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-oidc-submit" msgstr "OpenID" -#: src/app/main/ui/auth/recovery.cljs:71 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.new-password" msgstr "Escribe un contrasinal novo" -#: src/app/main/ui/auth/recovery.cljs:42 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.notifications.invalid-token-error" msgstr "O código de recuperación non é correcto." -#: src/app/main/ui/auth/recovery.cljs:46 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.notifications.password-changed-successfully" msgstr "O contrasinal cambiouse correctamente" -#: src/app/main/ui/auth/recovery_request.cljs:57 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.notifications.profile-not-verified" msgstr "Perfil sen verificar, valida o perfil antes de continuar." -#: src/app/main/ui/auth/recovery_request.cljs:40 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.notifications.recovery-token-sent" msgstr "Enviouse ó teu correo electrónico un enlace co que recuperar o contrasinal." -#: src/app/main/ui/auth/verify_token.cljs:47 +#: src/app/main/ui/auth/verify_token.cljs msgid "auth.notifications.team-invitation-accepted" msgstr "Unícheste ao equipo" -#: src/app/main/ui/auth/login.cljs:179, src/app/main/ui/auth/register.cljs:115 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.password" msgstr "Contrasinal" -#: src/app/main/ui/auth/register.cljs:114 +#: src/app/main/ui/auth/register.cljs msgid "auth.password-length-hint" msgstr "Un mínimo de 8 caracteres" -#: src/app/main/ui/auth.cljs:41 msgid "auth.privacy-policy" msgstr "Política de privacidade" -#: src/app/main/ui/auth/recovery_request.cljs:88 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-submit" msgstr "Recuperar contrasinal" -#: src/app/main/ui/auth/recovery_request.cljs:101 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-subtitle" msgstr "Enviarémosche un correo electrónico con instrucións" -#: src/app/main/ui/auth/recovery_request.cljs:100 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-title" msgstr "Esqueceches o teu contrasinal?" -#: src/app/main/ui/auth/recovery.cljs:82 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.recovery-submit" msgstr "Cambiar o teu contrasinal" -#: src/app/main/ui/auth/login.cljs:298, src/app/main/ui/viewer/login.cljs:93 +#: src/app/main/ui/auth/login.cljs msgid "auth.register" msgstr "Ainda non tes unha conta?" -#: src/app/main/ui/auth/login.cljs:302, src/app/main/ui/auth/register.cljs:121, src/app/main/ui/auth/register.cljs:263, src/app/main/ui/viewer/login.cljs:97 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.register-submit" msgstr "Crea unha conta" -#: src/app/main/ui/auth/register.cljs:140 +#: src/app/main/ui/auth/register.cljs msgid "auth.register-title" msgstr "Crea unha conta" #: src/app/main/ui/auth.cljs -#, unused msgid "auth.sidebar-tagline" msgstr "A solución de código aberto para deseñar e crear prototipos." -#: src/app/main/ui/auth.cljs:33, src/app/main/ui/dashboard/sidebar.cljs:1022, src/app/main/ui/workspace/main_menu.cljs:150 msgid "auth.terms-of-service" msgstr "Condicións de servizo" -#: src/app/main/ui/auth/register.cljs:297 +#: src/app/main/ui/auth/register.cljs msgid "auth.verification-email-sent" msgstr "Enviamos un correo electrónico de verificación a" -#: src/app/main/ui/workspace/libraries.cljs:228 msgid "common.publish" msgstr "Publicar" -#: src/app/main/ui/viewer/share_link.cljs:304, src/app/main/ui/viewer/share_link.cljs:314 msgid "common.share-link.all-users" msgstr "Todas as persoas usuarias de Penpot" -#: src/app/main/ui/viewer/share_link.cljs:198 msgid "common.share-link.confirm-deletion-link-description" msgstr "" "Seguro que queres eliminar esta ligazón? Se o fas, non estará dispoñible " "para ninguén" -#: src/app/main/ui/viewer/share_link.cljs:259, src/app/main/ui/viewer/share_link.cljs:289 msgid "common.share-link.current-tag" msgstr "(actual)" -#: src/app/main/ui/viewer/share_link.cljs:207, src/app/main/ui/viewer/share_link.cljs:214 msgid "common.share-link.destroy-link" msgstr "Eliminar ligazón" -#: src/app/main/ui/viewer/share_link.cljs:221 msgid "common.share-link.get-link" msgstr "Obter ligazón" -#: src/app/main/ui/viewer/share_link.cljs:139 msgid "common.share-link.link-copied-success" msgstr "A ligazón copiouse correctamente" -#: src/app/main/ui/viewer/share_link.cljs:231 msgid "common.share-link.manage-ops" msgstr "Xestionar permisos" -#: src/app/main/ui/viewer/share_link.cljs:277 msgid "common.share-link.page-shared" msgid_plural "common.share-link.page-shared" msgstr[0] "1 páxina compartida" msgstr[1] "% páxinas compartidas" -#: src/app/main/ui/viewer/share_link.cljs:298 msgid "common.share-link.permissions-can-comment" msgstr "Poden comentar" -#: src/app/main/ui/viewer/share_link.cljs:308 msgid "common.share-link.permissions-can-inspect" msgstr "Poden ver o código" -#: src/app/main/ui/viewer/share_link.cljs:193 msgid "common.share-link.permissions-hint" msgstr "Calquera persoa ca ligazón terá acceso" -#: src/app/main/ui/viewer/share_link.cljs:241 msgid "common.share-link.permissions-pages" msgstr "Páxinas compartidas" -#: src/app/main/ui/viewer/share_link.cljs:183 msgid "common.share-link.placeholder" msgstr "A ligazón para compartir aparecerá aquí" -#: src/app/main/ui/viewer/share_link.cljs:303, src/app/main/ui/viewer/share_link.cljs:313 msgid "common.share-link.team-members" msgstr "Só membros do equipo" -#: src/app/main/ui/viewer/share_link.cljs:171 msgid "common.share-link.title" msgstr "Compartir prototipos" -#: src/app/main/ui/viewer/share_link.cljs:269 msgid "common.share-link.view-all" msgstr "Seleccionar todas" -#: src/app/main/ui/workspace/libraries.cljs:224 msgid "common.unpublish" msgstr "Cancelar publicación" -#: src/app/main/ui/dashboard/projects.cljs:85 +#: src/app/main/ui/dashboard/projects.cljs msgid "dasboard.team-hero.management" msgstr "Xestión do equipo" -#: src/app/main/ui/dashboard/projects.cljs:84 +#: src/app/main/ui/dashboard/projects.cljs msgid "dasboard.team-hero.text" msgstr "" "Penpot está deseñado para equipos. Convida a persoas coas que trallar en " "proxectos e ficheiros" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.tutorial-hero.info" msgstr "" "Aprende os conceptos básicos de Penpot mentres te divirtes con este " "titorial práctico." #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.tutorial-hero.start" msgstr "Comeza o titorial" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.tutorial-hero.title" msgstr "Titorial práctico" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.walkthrough-hero.info" msgstr "Da unha volta por Penpot e coñece as súas características principais." #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.walkthrough-hero.start" msgstr "Comeza a visita" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.walkthrough-hero.title" msgstr "Percorrido pola interface" -#: src/app/main/ui/dashboard/file_menu.cljs:291, src/app/main/ui/workspace/main_menu.cljs:572 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.add-shared" msgstr "Engadir como Biblioteca Compartida" -#: src/app/main/ui/settings/profile.cljs:75 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.change-email" msgstr "Cambiar correo electrónico" -#: src/app/main/data/dashboard.cljs:762, src/app/main/data/dashboard.cljs:983 +#: src/app/main/data/dashboard.cljs, src/app/main/data/dashboard.cljs msgid "dashboard.copy-suffix" msgstr "(copia)" -#: src/app/main/ui/dashboard/sidebar.cljs:338 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.create-new-team" msgstr "Crear novo equipo" -#: src/app/main/ui/components/context_menu_a11y.cljs:256, src/app/main/ui/dashboard/sidebar.cljs:646 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.default-team-name" msgstr "O teu Penpot" -#: src/app/main/ui/dashboard/sidebar.cljs:571 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.delete-team" msgstr "Eliminar equipo" -#: src/app/main/ui/dashboard/file_menu.cljs:296, src/app/main/ui/workspace/main_menu.cljs:589 msgid "dashboard.download-binary-file" msgstr "Descargar ficheiro Penpot (.penpot)" -#: src/app/main/ui/dashboard/file_menu.cljs:300, src/app/main/ui/workspace/main_menu.cljs:597 msgid "dashboard.download-standard-file" msgstr "Descargar ficheiro estándar (.svg + .json)" -#: src/app/main/ui/dashboard/file_menu.cljs:276, src/app/main/ui/dashboard/project_menu.cljs:90 +#: src/app/main/ui/dashboard/project_menu.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.duplicate" msgstr "Duplicar" -#: src/app/main/ui/dashboard/file_menu.cljs:240 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.duplicate-multi" msgstr "Duplicar % ficheiros" -#: src/app/main/ui/dashboard/placeholder.cljs:32 -#, markdown +#: src/app/main/ui/dashboard/grid.cljs msgid "dashboard.empty-placeholder-drafts" msgstr "" "Ai non! Ainda non tes ficheiros! Se queres facer a proba con algún modelo " "vai a [Bibliotecas e modelos] (https://penpot.app/libraries-templates)" -#: src/app/main/ui/dashboard/file_menu.cljs:249 msgid "dashboard.export-binary-multi" msgstr "Descargar %s ficheiros Penpot (.penpot)" -#: src/app/main/ui/workspace/main_menu.cljs:605 msgid "dashboard.export-frames" msgstr "Exportar marcos a PDF" -#: src/app/main/ui/export.cljs:201 +#: src/app/main/ui/export.cljs msgid "dashboard.export-frames.title" msgstr "Exportar a PDF" -#, unused msgid "dashboard.export-multi" msgstr "Exportar % ficheiros Penpot" -#: src/app/main/ui/export.cljs:109 +#: src/app/main/ui/export.cljs msgid "dashboard.export-multiple.selected" msgstr "% de % elementos seleccionados" -#: src/app/main/ui/workspace/main_menu.cljs:578 +#: src/app/main/ui/workspace/header.cljs msgid "dashboard.export-shapes" msgstr "Exportar" -#: src/app/main/ui/export.cljs:180 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.how-to" msgstr "" "Podes engadir axustes na exportación aos elementos dende as propiedades do " "deseño (parte inferior da barra lateral dereita)." -#: src/app/main/ui/export.cljs:184 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.how-to-link" msgstr "Información sobre como configurar as exportacións en Penpot." -#: src/app/main/ui/export.cljs:179 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.no-elements" msgstr "Non hai elementos con configuración de exportación." -#: src/app/main/ui/export.cljs:190 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.title" msgstr "Exportar selección" -#: src/app/main/ui/dashboard/file_menu.cljs:252 msgid "dashboard.export-standard-multi" msgstr "Descargar %s ficheiros estándar (.svg + .json)" -#: src/app/main/ui/export.cljs:427 msgid "dashboard.export.detail" msgstr "* Pode incluir compoñentes, gráficos, cores e/ou fontes." -#: src/app/main/ui/export.cljs:426 msgid "dashboard.export.explain" msgstr "" "Un ou máis ficheiros dos que queres exportar usan bibliotecas compartidas. " "Que queres facer cos recursos?" -#: src/app/main/ui/export.cljs:435 msgid "dashboard.export.options.all.message" msgstr "" "os ficheiros con bibliotecas compartidas incluiranse na exportación " "mantendo os vínculos." -#: src/app/main/ui/export.cljs:436 msgid "dashboard.export.options.all.title" msgstr "Exportar bibliotecas compartidas" -#: src/app/main/ui/export.cljs:437 msgid "dashboard.export.options.detach.message" msgstr "" "As bibliotecas compartidas non se incluirán na exportación e non se " "engadirán recursos á biblioteca. " -#: src/app/main/ui/export.cljs:438 msgid "dashboard.export.options.detach.title" msgstr "Tratar os recursos da biblioteca compartida coma obxetos básicos" -#: src/app/main/ui/export.cljs:439 msgid "dashboard.export.options.merge.message" msgstr "" "O teu ficheiro exportarase con todos os recursos externos metidos na " "biblioteca do ficheiro." -#: src/app/main/ui/export.cljs:440 msgid "dashboard.export.options.merge.title" msgstr "Incluir os recursos de bibliotecas compartidas na biblioteca do ficheiro" -#: src/app/main/ui/export.cljs:418 msgid "dashboard.export.title" msgstr "Exportar ficheiros" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:309 msgid "dashboard.fonts.deleted-placeholder" msgstr "Fonte eliminada" -#: src/app/main/ui/dashboard/fonts.cljs:206 +#: src/app/main/ui/dashboard/fonts.cljs msgid "dashboard.fonts.dismiss-all" msgstr "Desbotar todas" -#: src/app/main/ui/dashboard/fonts.cljs:436 msgid "dashboard.fonts.empty-placeholder" msgstr "Aínda non instalaches as túas propas fontes." -#: src/app/main/ui/dashboard/fonts.cljs:194 +#: src/app/main/ui/dashboard/fonts.cljs msgid "dashboard.fonts.fonts-added" msgid_plural "dashboard.fonts.fonts-added" msgstr[0] "Engadiuse 1 fonte" msgstr[1] "Engadíronse % fontes" -#: src/app/main/ui/dashboard/fonts.cljs:170 -#, markdown msgid "dashboard.fonts.hero-text1" msgstr "" "Calquera fonte que cargues aquí engadirase na listaxe de familias de fontes " @@ -436,8 +391,6 @@ msgstr "" "Podes cargar fontes cos seguintes formatos: **TTF, OFT e WOFF** (só se " "precisa un)." -#: src/app/main/ui/dashboard/fonts.cljs:182 -#, markdown msgid "dashboard.fonts.hero-text2" msgstr "" "Só debes cargar fontes da túa propiedade ou das que teñas licenza para usar " @@ -445,1154 +398,1077 @@ msgstr "" "[Condicións do servizo de Penpot](https://penpot.app/terms.html). Podes ler " "máis sobre [licenzas de fontes](https://www.typography.com/faq)." -#: src/app/main/ui/dashboard/fonts.cljs:202 +#: src/app/main/ui/dashboard/fonts.cljs msgid "dashboard.fonts.upload-all" msgstr "Cargar todas" -#: src/app/main/ui/dashboard/import.cljs:472, src/app/main/ui/dashboard/project_menu.cljs:108 msgid "dashboard.import" msgstr "Importar archivos de Penpot" -#: src/app/main/ui/dashboard/import.cljs:304, src/app/worker/import.cljs:753, src/app/worker/import.cljs:755 msgid "dashboard.import.analyze-error" msgstr "Vaia! Non se puido importar o ficheiro" -#: src/app/main/ui/dashboard/import.cljs:308 msgid "dashboard.import.import-error" msgstr "Houbo un problema ao importar o ficheiro. Non se puido importar o ficheiro." -#: src/app/main/ui/dashboard/import.cljs:493 msgid "dashboard.import.import-message" msgstr "% ficheiros importáronse correctamente." -#: src/app/main/ui/dashboard/import.cljs:481, src/app/main/ui/dashboard/import.cljs:488 msgid "dashboard.import.import-warning" msgstr "Algúns ficheiros contiñan obxectos non válidos que foron eliminados." -#: src/app/main/ui/dashboard/import.cljs:144 msgid "dashboard.import.progress.process-colors" msgstr "Procesando cores" -#: src/app/main/ui/dashboard/import.cljs:153 msgid "dashboard.import.progress.process-components" msgstr "Procesando compoñentes" -#: src/app/main/ui/dashboard/import.cljs:150 msgid "dashboard.import.progress.process-media" msgstr "Procesando medios" -#: src/app/main/ui/dashboard/import.cljs:141 msgid "dashboard.import.progress.process-page" msgstr "Procesando páxina: %s" -#: src/app/main/ui/dashboard/import.cljs:147 msgid "dashboard.import.progress.process-typographies" msgstr "Procesando fontes" -#: src/app/main/ui/dashboard/import.cljs:135 msgid "dashboard.import.progress.upload-data" msgstr "Enviando datos ao servidor (%s/%s)" -#: src/app/main/ui/dashboard/import.cljs:138 msgid "dashboard.import.progress.upload-media" msgstr "Enviando ficheiro: %s" -#: src/app/main/ui/dashboard/team.cljs:109 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.invite-profile" msgstr "Invitar ao equipo" -#: src/app/main/ui/dashboard/sidebar.cljs:547, src/app/main/ui/dashboard/sidebar.cljs:556, src/app/main/ui/dashboard/sidebar.cljs:563, src/app/main/ui/dashboard/team.cljs:312 +#: src/app/main/ui/dashboard/sidebar.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.leave-team" msgstr "Abandonar o equipo" -#: src/app/main/ui/dashboard/templates.cljs:88, src/app/main/ui/dashboard/templates.cljs:163 msgid "dashboard.libraries-and-templates" msgstr "Bibliotecas e Modelos" -#: src/app/main/ui/dashboard/templates.cljs:164 msgid "dashboard.libraries-and-templates.explore" msgstr "Explora máis e descubre como contribuír" -#: src/app/main/ui/dashboard/import.cljs:365 msgid "dashboard.libraries-and-templates.import-error" msgstr "Ocorreu un problema ao importar o modelo. Non se importou o modelo." -#: src/app/main/ui/dashboard/libraries.cljs:53 +#: src/app/main/ui/dashboard/libraries.cljs msgid "dashboard.libraries-title" msgstr "Bibliotecas compartidas" -#: src/app/main/ui/dashboard/placeholder.cljs:45 +#: src/app/main/ui/dashboard/grid.cljs msgid "dashboard.loading-files" msgstr "cargando os teus ficheiros …" -#: src/app/main/ui/dashboard/fonts.cljs:431 msgid "dashboard.loading-fonts" msgstr "cargando as túas fontes …" -#: src/app/main/ui/dashboard/file_menu.cljs:281, src/app/main/ui/dashboard/project_menu.cljs:100 +#: src/app/main/ui/dashboard/project_menu.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.move-to" msgstr "Mover a" -#: src/app/main/ui/dashboard/file_menu.cljs:245 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.move-to-multi" msgstr "Mover % ficheiros a" -#: src/app/main/ui/dashboard/file_menu.cljs:226 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.move-to-other-team" msgstr "Mover a outro equipo" -#: src/app/main/ui/dashboard/files.cljs:105, src/app/main/ui/dashboard/projects.cljs:252, src/app/main/ui/dashboard/projects.cljs:253 +#: src/app/main/ui/dashboard/projects.cljs, +#: src/app/main/ui/dashboard/files.cljs msgid "dashboard.new-file" msgstr "+ Novo ficheiro" -#: src/app/main/data/dashboard.cljs:958, src/app/main/data/dashboard.cljs:1181 +#: src/app/main/data/dashboard.cljs msgid "dashboard.new-file-prefix" msgstr "Novo ficheiro" -#: src/app/main/ui/dashboard/projects.cljs:55 +#: src/app/main/ui/dashboard/projects.cljs msgid "dashboard.new-project" msgstr "+ Novo proxecto" -#: src/app/main/data/dashboard.cljs:726, src/app/main/data/dashboard.cljs:1184 +#: src/app/main/data/dashboard.cljs msgid "dashboard.new-project-prefix" msgstr "Novo proxecto" -#: src/app/main/ui/dashboard/search.cljs:60 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.no-matches-for" msgstr "Non se atoparon resultados para “%s“" -#: src/app/main/ui/dashboard/sidebar.cljs:827 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.no-projects-placeholder" msgstr "Os proxectos fixados aparecerán aquí" -#: src/app/main/ui/auth/verify_token.cljs:33 +#: src/app/main/ui/auth/verify_token.cljs msgid "dashboard.notifications.email-changed-successfully" msgstr "Actualizouse a túa dirección de correo" -#: src/app/main/ui/auth/verify_token.cljs:27 +#: src/app/main/ui/auth/verify_token.cljs msgid "dashboard.notifications.email-verified-successfully" msgstr "Verificouse a túa dirección de correo" -#: src/app/main/ui/settings/password.cljs:37 +#: src/app/main/ui/settings/password.cljs msgid "dashboard.notifications.password-saved" msgstr "Contrasinal gardado correctamente!" -#: src/app/main/ui/dashboard/team.cljs:1081 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.num-of-members" msgstr "%s integrantes" -#: src/app/main/ui/dashboard/file_menu.cljs:267 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.open-in-new-tab" msgstr "Abrir ficheiro nunha nova lapela" -#: src/app/main/ui/dashboard/files.cljs:117, src/app/main/ui/dashboard/projects.cljs:260, src/app/main/ui/dashboard/projects.cljs:261 msgid "dashboard.options" msgstr "Opcións" -#: src/app/main/ui/settings/password.cljs:106, src/app/main/ui/settings/password.cljs:119 +#: src/app/main/ui/settings/password.cljs msgid "dashboard.password-change" msgstr "Cambiar contrasinal" -#: src/app/main/ui/dashboard/projects.cljs:51 +#: src/app/main/ui/dashboard/projects.cljs msgid "dashboard.projects-title" msgstr "Proxectos" -#: src/app/main/ui/settings/profile.cljs:86 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.remove-account" msgstr "Queres borrar a túa conta?" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.remove-shared" msgstr "Eliminar das bibliotecas compartidas" -#: src/app/main/ui/settings/profile.cljs:78 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.save-settings" msgstr "Gardar configuración" -#: src/app/main/ui/dashboard/sidebar.cljs:246, src/app/main/ui/dashboard/sidebar.cljs:247 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.search-placeholder" msgstr "Buscar…" -#: src/app/main/ui/dashboard/search.cljs:55 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.searching-for" msgstr "Procurando “%s“…" -#: src/app/main/ui/settings/options.cljs:56 +#: src/app/main/ui/settings/options.cljs msgid "dashboard.select-ui-language" msgstr "Escolle idioma da interface" -#: src/app/main/ui/settings/options.cljs:63 +#: src/app/main/ui/settings/options.cljs msgid "dashboard.select-ui-theme" msgstr "Escolle un tema" -#: src/app/main/ui/dashboard/projects.cljs:282 +#: src/app/main/ui/dashboard/grid.cljs msgid "dashboard.show-all-files" msgstr "Mostra todos os ficheiros" -#: src/app/main/ui/dashboard/file_menu.cljs:96 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-delete-file" msgstr "Eliminouse o ficheiro" -#: src/app/main/ui/dashboard/project_menu.cljs:59 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.success-delete-project" msgstr "Eliminouse o proxecto" -#: src/app/main/ui/dashboard/file_menu.cljs:91 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-duplicate-file" msgstr "Duplicouse o ficheiro" -#: src/app/main/ui/dashboard/project_menu.cljs:33 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.success-duplicate-project" msgstr "Duplicouse o proxecto" -#: src/app/main/ui/dashboard/file_menu.cljs:130, src/app/main/ui/dashboard/grid.cljs:558, src/app/main/ui/dashboard/sidebar.cljs:152 +#: src/app/main/ui/dashboard/grid.cljs, src/app/main/ui/dashboard/sidebar.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-move-file" msgstr "Moveuse o ficheiro" -#: src/app/main/ui/dashboard/file_menu.cljs:129 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-move-files" msgstr "Movéronse os ficheiros" -#: src/app/main/ui/dashboard/project_menu.cljs:54 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.success-move-project" msgstr "Moveuse o proxecto" -#: src/app/main/ui/dashboard/team.cljs:1052 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.team-info" msgstr "Información do equipo" -#: src/app/main/ui/dashboard/team.cljs:1070 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.team-members" msgstr "Integrantes do equipo" -#: src/app/main/ui/dashboard/team.cljs:1085 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.team-projects" msgstr "Proxectos do equipo" -#: src/app/main/ui/settings/options.cljs:61 +#: src/app/main/ui/settings/options.cljs msgid "dashboard.theme-change" msgstr "Tema da interface" -#: src/app/main/ui/dashboard/search.cljs:42 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.title-search" msgstr "Resultados da procura" -#: src/app/main/ui/dashboard/search.cljs:50 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.type-something" msgstr "Escribe algo para procurar" -#: src/app/main/ui/dashboard/file_menu.cljs:287, src/app/main/ui/workspace/main_menu.cljs:566 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.unpublish-shared" msgstr "Cancelar publicación da Biblioteca" -#: src/app/main/ui/settings/options.cljs:71 +#: src/app/main/ui/settings/password.cljs, +#: src/app/main/ui/settings/options.cljs msgid "dashboard.update-settings" msgstr "Actualizar configuración" -#: src/app/main/ui/settings.cljs:31 +#: src/app/main/ui/settings.cljs msgid "dashboard.your-account-title" msgstr "A túa conta" -#: src/app/main/ui/settings/profile.cljs:70 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.your-email" msgstr "Correo electrónico" -#: src/app/main/ui/settings/profile.cljs:62 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.your-name" msgstr "Nome" -#: src/app/main/ui/dashboard/file_menu.cljs:38, src/app/main/ui/dashboard/fonts.cljs:33, src/app/main/ui/dashboard/libraries.cljs:42, src/app/main/ui/dashboard/projects.cljs:318, src/app/main/ui/dashboard/search.cljs:30, src/app/main/ui/dashboard/sidebar.cljs:312, src/app/main/ui/dashboard/team.cljs:495, src/app/main/ui/dashboard/team.cljs:729, src/app/main/ui/dashboard/team.cljs:991, src/app/main/ui/dashboard/team.cljs:1038 +#: src/app/main/ui/dashboard/search.cljs, src/app/main/ui/dashboard/team.cljs, +#: src/app/main/ui/dashboard/libraries.cljs, +#: src/app/main/ui/dashboard/projects.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.your-penpot" msgstr "O teu Penpot" -#: src/app/main/ui/alert.cljs:32 +#: src/app/main/ui/alert.cljs msgid "ds.alert-ok" msgstr "De acordo" -#: src/app/main/ui/alert.cljs:31, src/app/main/ui/alert.cljs:34 +#: src/app/main/ui/alert.cljs msgid "ds.alert-title" msgstr "Atención" -#: src/app/main/ui/confirm.cljs:83 +#: src/app/main/ui/confirm.cljs msgid "ds.component-subtitle" msgstr "Compoñentes para actualizar:" -#: src/app/main/ui/confirm.cljs:36, src/app/main/ui/workspace/plugins.cljs:246 +#: src/app/main/ui/confirm.cljs msgid "ds.confirm-cancel" msgstr "Cancelar" -#: src/app/main/ui/confirm.cljs:37, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:141 +#: src/app/main/ui/confirm.cljs msgid "ds.confirm-ok" msgstr "Ok" -#: src/app/main/ui/confirm.cljs:35, src/app/main/ui/confirm.cljs:39 +#: src/app/main/ui/confirm.cljs, src/app/main/ui/confirm.cljs msgid "ds.confirm-title" msgstr "Seguro?" -#: src/app/main/ui/auth/login.cljs:62 +#: src/app/main/ui/auth/login.cljs msgid "errors.auth-provider-not-configured" msgstr "Provedor de autenticación non configurado." -#: src/app/main/ui/settings/feedback.cljs:77 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.description" msgstr "Descrición" -#: src/app/main/ui/settings/feedback.cljs:72 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.subject" msgstr "Asunto" -#: src/app/main/ui/settings/feedback.cljs:68 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.title" msgstr "Correo electrónico" -#: src/app/main/ui/viewer/inspect/attributes/blur.cljs:26 +#: src/app/main/ui/inspect/attributes/blur.cljs msgid "inspect.attributes.blur" msgstr "Desenfoque" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:115 +#: src/app/main/ui/inspect/attributes/blur.cljs msgid "inspect.attributes.blur.value" msgstr "Valor" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:112 +#: src/app/main/ui/inspect/attributes/common.cljs msgid "inspect.attributes.color.hex" msgstr "HEX" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:114 +#: src/app/main/ui/inspect/attributes/common.cljs msgid "inspect.attributes.color.hsla" msgstr "HSLA" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:113 +#: src/app/main/ui/inspect/attributes/common.cljs msgid "inspect.attributes.color.rgba" msgstr "RGBA" -#: src/app/main/ui/viewer/inspect/attributes/fill.cljs:57 +#: src/app/main/ui/inspect/attributes/fill.cljs msgid "inspect.attributes.fill" msgstr "Recheo" -#: src/app/main/ui/viewer/inspect/attributes/image.cljs:39 +#: src/app/main/ui/inspect/attributes/image.cljs msgid "inspect.attributes.image.height" msgstr "Altura" -#: src/app/main/ui/viewer/inspect/attributes/image.cljs:32 +#: src/app/main/ui/inspect/attributes/image.cljs msgid "inspect.attributes.image.width" msgstr "Ancho" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout" msgstr "Disposición" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.height" msgstr "Altura" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.left" msgstr "Esquerda" -#: src/app/main/ui/inspect/attributes/layout.cljs, src/app/main/ui/inspect/attributes/layout.cljs -#, unused +#: src/app/main/ui/inspect/attributes/layout.cljs, +#: src/app/main/ui/inspect/attributes/layout.cljs msgid "inspect.attributes.layout.radius" msgstr "Radio" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.rotation" msgstr "Rotación" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.top" msgstr "Enriba" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.width" msgstr "Ancho" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:57 +#: src/app/main/ui/inspect/attributes/shadow.cljs msgid "inspect.attributes.shadow" msgstr "Sombra" -#: src/app/main/ui/viewer/inspect/attributes/stroke.cljs:52 +#: src/app/main/ui/inspect/attributes/stroke.cljs msgid "inspect.attributes.stroke" msgstr "Bordo" -#, permanent, unused msgid "inspect.attributes.stroke.alignment.center" msgstr "Centro" -#, permanent, unused msgid "inspect.attributes.stroke.alignment.inner" msgstr "Interior" -#, permanent, unused msgid "inspect.attributes.stroke.alignment.outer" msgstr "Exterior" -#, unused msgid "inspect.attributes.stroke.style.dotted" msgstr "Punteado" -#, unused msgid "inspect.attributes.stroke.style.mixed" msgstr "Mixto" -#, unused msgid "inspect.attributes.stroke.style.none" msgstr "Ningún" -#, unused msgid "inspect.attributes.stroke.style.solid" msgstr "Sólido" #: src/app/main/ui/inspect/attributes/stroke.cljs -#, unused msgid "inspect.attributes.stroke.width" msgstr "Ancho" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:81, src/app/main/ui/viewer/inspect/attributes/text.cljs:194 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography" msgstr "Tipografía" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:145 msgid "inspect.attributes.typography.text-decoration.none" msgstr "Ningunha" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:146 msgid "inspect.attributes.typography.text-decoration.strikethrough" msgstr "Riscar" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:147 msgid "inspect.attributes.typography.text-decoration.underline" msgstr "Suliñar" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:159 msgid "inspect.attributes.typography.text-transform.none" msgstr "Ningunha" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:125 +#: src/app/main/ui/inspect/right_sidebar.cljs msgid "inspect.tabs.code" msgstr "Código" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:98 msgid "inspect.tabs.code.selected.circle" msgstr "Círculo" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:99 msgid "inspect.tabs.code.selected.component" msgstr "Compoñente" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:100 msgid "inspect.tabs.code.selected.curve" msgstr "Curva" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:101 msgid "inspect.tabs.code.selected.frame" msgstr "taboleiro" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:102 msgid "inspect.tabs.code.selected.group" msgstr "Grupo" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:103 msgid "inspect.tabs.code.selected.image" msgstr "Imaxe" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:104 msgid "inspect.tabs.code.selected.mask" msgstr "Máscara" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:105 msgid "inspect.tabs.code.selected.path" msgstr "Trazado" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:106 msgid "inspect.tabs.code.selected.rect" msgstr "Rectángulo" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:107 msgid "inspect.tabs.code.selected.svg-raw" msgstr "SVG" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:108 msgid "inspect.tabs.code.selected.text" msgstr "Texto" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:115 +#: src/app/main/ui/inspect/right_sidebar.cljs msgid "inspect.tabs.info" msgstr "Información" -#: src/app/main/ui/workspace/main_menu.cljs:158 +#: src/app/main/ui/workspace/header.cljs msgid "label.shortcuts" msgstr "Atallos do teclado" -#: src/app/main/ui/dashboard/import.cljs:527 msgid "labels.accept" msgstr "Aceptar" -#: src/app/main/ui/dashboard/team.cljs:120, src/app/main/ui/dashboard/team.cljs:276, src/app/main/ui/dashboard/team.cljs:519, src/app/main/ui/dashboard/team.cljs:549, src/app/main/ui/onboarding/team_choice.cljs:67 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs msgid "labels.admin" msgstr "Administración" #: src/app/main/ui/workspace/comments.cljs -#, unused msgid "labels.all" msgstr "Todo" -#: src/app/main/ui/auth.cljs:37 msgid "labels.and" msgstr "e" -#: src/app/main/ui/onboarding/team_choice.cljs:162 msgid "labels.back" msgstr "Volver" -#: src/app/main/data/common.cljs:112, src/app/main/ui/dashboard/change_owner.cljs:69, src/app/main/ui/dashboard/import.cljs:514, src/app/main/ui/dashboard/team.cljs:868, src/app/main/ui/delete_shared.cljs:35, src/app/main/ui/export.cljs:164, src/app/main/ui/export.cljs:460, src/app/main/ui/settings/access_tokens.cljs:188, src/app/main/ui/viewer/share_link.cljs:203, src/app/main/ui/workspace/sidebar/assets/groups.cljs:149 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.cancel" msgstr "Cancelar" -#: src/app/main/ui/dashboard/projects.cljs:93, src/app/main/ui/export.cljs:478, src/app/main/ui/settings/access_tokens.cljs:183, src/app/main/ui/viewer/login.cljs:77, src/app/main/ui/viewer/share_link.cljs:174, src/app/main/ui/workspace/libraries.cljs:522 msgid "labels.close" msgstr "Pechar" -#: src/app/main/ui/dashboard/comments.cljs:104, src/app/main/ui/viewer/comments.cljs:70, src/app/main/ui/workspace/comments.cljs:126 +#: src/app/main/ui/dashboard/comments.cljs msgid "labels.comments" msgstr "Comentarios" -#: src/app/main/ui/dashboard/import.cljs:520, src/app/main/ui/export.cljs:465, src/app/main/ui/onboarding/newsletter.cljs:101 msgid "labels.continue" msgstr "Continuar" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:157, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:190 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "labels.create" msgstr "Crear" -#: src/app/main/ui/settings/sidebar.cljs:73 +#: src/app/main/ui/settings/sidebar.cljs msgid "labels.dashboard" msgstr "Panel" -#: src/app/main/ui/dashboard/file_menu.cljs:306, src/app/main/ui/dashboard/fonts.cljs:255, src/app/main/ui/dashboard/fonts.cljs:332, src/app/main/ui/dashboard/fonts.cljs:346, src/app/main/ui/dashboard/project_menu.cljs:115, src/app/main/ui/dashboard/team.cljs:904, src/app/main/ui/settings/access_tokens.cljs:209, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:209 +#: src/app/main/ui/dashboard/project_menu.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.delete" msgstr "Eliminar" -#: src/app/main/ui/dashboard/file_menu.cljs:28, src/app/main/ui/dashboard/files.cljs:72, src/app/main/ui/dashboard/files.cljs:156, src/app/main/ui/dashboard/projects.cljs:220, src/app/main/ui/dashboard/projects.cljs:224, src/app/main/ui/dashboard/sidebar.cljs:791 +#: src/app/main/ui/dashboard/projects.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs, +#: src/app/main/ui/dashboard/files.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.drafts" msgstr "Borradores" -#: src/app/main/ui/comments.cljs:350, src/app/main/ui/dashboard/fonts.cljs:252, src/app/main/ui/dashboard/team.cljs:902, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:205 +#: src/app/main/ui/comments.cljs msgid "labels.edit" msgstr "Editar" -#: src/app/main/ui/dashboard/team.cljs:118, src/app/main/ui/dashboard/team.cljs:279, src/app/main/ui/dashboard/team.cljs:520, src/app/main/ui/dashboard/team.cljs:553, src/app/main/ui/onboarding/team_choice.cljs:66 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs msgid "labels.editor" msgstr "Editor" -#: src/app/main/ui/dashboard/team.cljs:661 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.expired-invitation" msgstr "Caducada" -#: src/app/main/ui/export.cljs:173 msgid "labels.export" msgstr "Exportar" -#: src/app/main/ui/dashboard/fonts.cljs:413 msgid "labels.font-variants" msgstr "Estilos" -#: src/app/main/ui/dashboard/fonts.cljs:52, src/app/main/ui/dashboard/sidebar.cljs:811 msgid "labels.fonts" msgstr "Fontes" -#: src/app/main/ui/dashboard/sidebar.cljs:516, src/app/main/ui/dashboard/team.cljs:89, src/app/main/ui/dashboard/team.cljs:97, src/app/main/ui/dashboard/team.cljs:708 +#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.invitations" msgstr "Invitacións" -#: src/app/main/ui/settings/options.cljs:51 +#: src/app/main/ui/settings/options.cljs msgid "labels.language" msgstr "Lingua" -#: src/app/main/ui/dashboard/sidebar.cljs:1040 +#: src/app/main/ui/settings.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.logout" msgstr "Pechar sesión" -#: src/app/main/ui/dashboard/team.cljs:468 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.member" msgstr "Integrante" -#: src/app/main/ui/dashboard/sidebar.cljs:510, src/app/main/ui/dashboard/team.cljs:87, src/app/main/ui/dashboard/team.cljs:95 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.members" msgstr "Integrantes" -#: src/app/main/ui/static.cljs:49 +#: src/app/main/ui/static.cljs msgid "labels.not-found.main-message" msgstr "Vaia!" -#, unused msgid "labels.or" msgstr "ou" -#: src/app/main/ui/settings/sidebar.cljs:87 +#: src/app/main/ui/settings/sidebar.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.password" msgstr "Contrasinal" -#: src/app/main/ui/dashboard/team.cljs:662 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.pending-invitation" msgstr "Pendente" -#: src/app/main/ui/settings/profile.cljs:118, src/app/main/ui/settings/sidebar.cljs:82 +#: src/app/main/ui/settings/sidebar.cljs msgid "labels.profile" msgstr "Perfil" -#: src/app/main/ui/dashboard/sidebar.cljs:784 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.projects" msgstr "Proxectos" -#: src/app/main/ui/workspace/libraries.cljs, src/app/main/ui/dashboard/team.cljs -#, unused +#: src/app/main/ui/workspace/libraries.cljs, +#: src/app/main/ui/dashboard/team.cljs msgid "labels.remove" msgstr "Retirar" -#: src/app/main/ui/dashboard/file_menu.cljs:271, src/app/main/ui/dashboard/project_menu.cljs:85, src/app/main/ui/dashboard/sidebar.cljs:539, src/app/main/ui/workspace/sidebar/assets/groups.cljs:157 +#: src/app/main/ui/dashboard/sidebar.cljs, +#: src/app/main/ui/dashboard/project_menu.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.rename" msgstr "Mudar o nome" -#: src/app/main/ui/static.cljs:61, src/app/main/ui/static.cljs:70, src/app/main/ui/static.cljs:148 +#: src/app/main/ui/static.cljs, src/app/main/ui/static.cljs msgid "labels.retry" msgstr "Volver tentar" -#: src/app/main/ui/dashboard/team.cljs:469, src/app/main/ui/dashboard/team.cljs:709 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.role" msgstr "Rol" -#: src/app/main/ui/dashboard/fonts.cljs:380, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:191 msgid "labels.save" msgstr "Gardar" -#: src/app/main/ui/settings/feedback.cljs:82 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.send" msgstr "Enviar" -#: src/app/main/ui/settings/feedback.cljs:82 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.sending" msgstr "Enviando…" -#: src/app/main/ui/dashboard/sidebar.cljs:530, src/app/main/ui/dashboard/team.cljs:88, src/app/main/ui/dashboard/team.cljs:102, src/app/main/ui/settings/options.cljs:84, src/app/main/ui/settings/sidebar.cljs:93 +#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.settings" msgstr "Configuración" -#: src/app/main/ui/dashboard/sidebar.cljs:800 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.shared-libraries" msgstr "Bibliotecas" -#: src/app/main/ui/dashboard/team.cljs:710 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.status" msgstr "Estado" -#: src/app/main/ui/dashboard/sidebar.cljs:992, src/app/main/ui/workspace/main_menu.cljs:118 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.tutorials" msgstr "Titoriales" -#: src/app/main/ui/settings/profile.cljs:103 +#: src/app/main/ui/settings/profile.cljs msgid "labels.update" msgstr "Actualizar" -#: src/app/main/ui/dashboard/fonts.cljs:241 msgid "labels.upload" msgstr "Cargar" -#: src/app/main/ui/dashboard/fonts.cljs:240 msgid "labels.uploading" msgstr "Cargando…" -#: src/app/main/ui/dashboard/team.cljs:123, src/app/main/ui/dashboard/team.cljs:282, src/app/main/ui/dashboard/team.cljs:521 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.viewer" msgstr "Visor" -#: src/app/main/ui/dashboard/team.cljs:237 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.you" msgstr "(ti)" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:380 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.accept" msgstr "Actualizar" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:379 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.cancel" msgstr "Cancelar" -#, unused msgid "onboarding.welcome.alt" msgstr "Penpot" # SECTIONS -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:414 msgid "shortcut-section.basics" msgstr "Básicos" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:420 msgid "shortcut-section.dashboard" msgstr "Panel" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:423 msgid "shortcut-section.viewer" msgstr "Visor" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:417 msgid "shortcut-section.workspace" msgstr "Espazo de traballo" # SUBSECTIONS -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:56 msgid "shortcut-subsection.alignment" msgstr "Aliñamento" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:57 msgid "shortcut-subsection.edit" msgstr "Editar" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:58 msgid "shortcut-subsection.general-dashboard" msgstr "Xenérico" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:59 msgid "shortcut-subsection.general-viewer" msgstr "Xenérico" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:62 msgid "shortcut-subsection.navigation-dashboard" msgstr "Navegación" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:63 msgid "shortcut-subsection.navigation-viewer" msgstr "Navegación" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:64 msgid "shortcut-subsection.navigation-workspace" msgstr "Navegación" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:65 msgid "shortcut-subsection.panels" msgstr "Paneis" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:66 msgid "shortcut-subsection.path-editor" msgstr "Ruta" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:67 msgid "shortcut-subsection.shape" msgstr "Formas" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:69 msgid "shortcut-subsection.tools" msgstr "Ferramentas" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:70 msgid "shortcut-subsection.zoom-viewer" msgstr "Zoom" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:71 msgid "shortcut-subsection.zoom-workspace" msgstr "Zoom" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:72 msgid "shortcuts.add-comment" msgstr "Comentarios" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:93 msgid "shortcuts.copy" msgstr "Copiar" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:96 msgid "shortcuts.cut" msgstr "Cortar" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:98 msgid "shortcuts.delete" msgstr "Eliminar" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:101 msgid "shortcuts.draw-curve" msgstr "Curva" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:102 msgid "shortcuts.draw-ellipse" msgstr "Elipse" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:103 msgid "shortcuts.draw-frame" msgstr "Taboleiro" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:105 msgid "shortcuts.draw-path" msgstr "Ruta" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:106 msgid "shortcuts.draw-rect" msgstr "Rectángulo" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:107 msgid "shortcuts.draw-text" msgstr "Texto" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:108 msgid "shortcuts.duplicate" msgstr "Duplicar" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:109 msgid "shortcuts.escape" msgstr "Cancelar" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:118 msgid "shortcuts.go-to-search" msgstr "Buscar" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:119 msgid "shortcuts.group" msgstr "Agrupar" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:133 msgid "shortcuts.mask" msgstr "Máscara" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:135 msgid "shortcuts.move" msgstr "Mover" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:163 msgid "shortcuts.paste" msgstr "Pegar" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:165 msgid "shortcuts.redo" msgstr "Refacer" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:207 msgid "shortcuts.undo" msgstr "Desfacer" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:208 msgid "shortcuts.ungroup" msgstr "Dispersar" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:209 msgid "shortcuts.unmask" msgstr "Quitar máscara" -#: src/app/main/ui.cljs:143 msgid "viewer.breaking-change.message" msgstr "Sentímolo!" -#: src/app/main/ui/viewer/interactions.cljs:282 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.interactions" msgstr "Interaccións" -#: src/app/main/ui/viewer/header.cljs:231 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.sitemap" msgstr "Mapa do sitio" #: src/app/main/ui/workspace/sidebar/assets.cljs -#, unused msgid "workspace.assets.assets" msgstr "Recursos" -#: src/app/main/ui/dashboard/grid.cljs:130, src/app/main/ui/dashboard/grid.cljs:162, src/app/main/ui/workspace/sidebar/assets/colors.cljs:485, src/app/main/ui/workspace/sidebar/assets.cljs:150 +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.colors" msgstr "Cores" -#: src/app/main/ui/dashboard/grid.cljs:126, src/app/main/ui/dashboard/grid.cljs:141, src/app/main/ui/workspace/sidebar/assets/components.cljs:513, src/app/main/ui/workspace/sidebar/assets.cljs:139 +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.components" msgstr "Compoñentes" -#: src/app/main/ui/workspace/context_menu.cljs:529, src/app/main/ui/workspace/sidebar/assets/colors.cljs:251, src/app/main/ui/workspace/sidebar/assets/components.cljs:577, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:424, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:443 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.delete" msgstr "Eliminar" -#: src/app/main/ui/workspace/context_menu.cljs:534, src/app/main/ui/workspace/sidebar/assets/components.cljs:572 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.duplicate" msgstr "Duplicar" -#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:247, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:439 +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.edit" msgstr "Editar" -#: src/app/main/ui/workspace/sidebar/assets/graphics.cljs:384, src/app/main/ui/workspace/sidebar/assets.cljs:145 +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.graphics" msgstr "Gráficos" -#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:255, src/app/main/ui/workspace/sidebar/assets/components.cljs:581, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:428, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:448 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.group" msgstr "Agrupar" -#: src/app/main/ui/workspace/sidebar/assets.cljs:168 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.libraries" msgstr "Bibliotecas" -#: src/app/main/ui/workspace/context_menu.cljs:532, src/app/main/ui/workspace/sidebar/assets/colors.cljs:243, src/app/main/ui/workspace/sidebar/assets/components.cljs:566, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:421, src/app/main/ui/workspace/sidebar/assets/groups.cljs:63, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:434 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.rename" msgstr "Mudar o nome" -#: src/app/main/ui/dashboard/grid.cljs:134, src/app/main/ui/dashboard/grid.cljs:189, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:397, src/app/main/ui/workspace/sidebar/assets.cljs:155 +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.typography" msgstr "Tipografías" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused msgid "workspace.assets.typography.font-id" msgstr "Fonte" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:505 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.font-size" msgstr "Tamaño" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:501 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.font-variant-id" msgstr "Variante" -#: src/app/main/ui/dashboard/grid.cljs:199, src/app/main/ui/workspace/libraries.cljs:461, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:464, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:489, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:596, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:615 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, +#: src/app/main/ui/inspect/attributes/text.cljs, +#: src/app/main/ui/inspect/attributes/text.cljs msgid "workspace.assets.typography.sample" msgstr "Ag" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:66 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.ungroup" msgstr "Dispersar" -#, unused msgid "workspace.focus.selection" msgstr "Selección" -#: src/app/main/ui/workspace/main_menu.cljs:731 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.edit" msgstr "Editar" -#: src/app/main/ui/workspace/main_menu.cljs:720 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.file" msgstr "Ficheiro" -#: src/app/main/ui/workspace/main_menu.cljs:753 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.preferences" msgstr "Preferencias" -#: src/app/main/ui/viewer/header.cljs:98, src/app/main/ui/workspace/right_header.cljs:120 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.reset-zoom" msgstr "Restablecer" -#: src/app/main/ui/workspace/right_header.cljs:52 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.saved" msgstr "Gardado" #: src/app/main/ui/workspace/header.cljs -#, unused msgid "workspace.header.saving" msgstr "Gardando" #: src/app/main/ui/workspace/libraries.cljs -#, unused msgid "workspace.libraries.add" msgstr "Engadir" #: src/app/main/ui/workspace/colorpicker.cljs -#, unused msgid "workspace.libraries.colors.hsv" msgstr "HSV" #: src/app/main/ui/workspace/colorpicker.cljs -#, unused msgid "workspace.libraries.colors.rgba" msgstr "RGBA" -#: src/app/main/ui/workspace/libraries.cljs:526, src/app/main/ui/workspace/libraries.cljs:531 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.libraries" msgstr "BIBLIOTECAS" #: src/app/main/ui/workspace/libraries.cljs -#, unused msgid "workspace.libraries.library" msgstr "BIBLIOTECA" -#: src/app/main/ui/workspace/libraries.cljs:402 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.update" msgstr "Actualizar" -#: src/app/main/ui/workspace/libraries.cljs:536 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.updates" msgstr "Actualizacións" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:86, src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:102 +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs msgid "workspace.options.blur-options.title" msgstr "Desenfoque" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:600, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:605 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs msgid "workspace.options.component" msgstr "Compoñente" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:163 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints" msgstr "Restricións" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:150 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.bottom" msgstr "Embaixo" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:141, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:152 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.center" msgstr "Centro" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:138 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.left" msgstr "Esquerda" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:140 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.leftright" msgstr "Esquerda e Dereita" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:139 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.right" msgstr "Dereita" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:149 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.top" msgstr "Enriba" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:151 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.topbottom" msgstr "Enriba e Embaixo" -#: src/app/main/ui/workspace/sidebar/options.cljs:112 +#: src/app/main/ui/workspace/sidebar/options.cljs msgid "workspace.options.design" msgstr "Deseño" -#: src/app/main/ui/viewer/inspect/exports.cljs:139 +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, +#: src/app/main/ui/inspect/exports.cljs msgid "workspace.options.export" msgstr "Exportar" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, +#: src/app/main/ui/inspect/exports.cljs msgid "workspace.options.export-multiple" msgstr "Exportar selección" -#: src/app/main/ui/viewer/inspect/exports.cljs:195, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:237 +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, +#: src/app/main/ui/inspect/exports.cljs msgid "workspace.options.export-object" msgid_plural "workspace.options.export-object" msgstr[0] "Exportar 1 elemento" msgstr[1] "Exportar %s elementos" -#: src/app/main/ui/viewer/inspect/exports.cljs:178, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:219 +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs msgid "workspace.options.export.suffix" msgstr "Sufixo" -#: src/app/main/ui/export.cljs:240 +#: 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.exporting-complete" msgstr "Exportación completada" -#: src/app/main/ui/export.cljs:172, src/app/main/ui/export.cljs:241, src/app/main/ui/viewer/inspect/exports.cljs:194, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:236 +#: 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.exporting-object" msgstr "Exportando…" -#: src/app/main/ui/export.cljs:239 +#: 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.exporting-object-error" msgstr "Erro na exportación" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:49, src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:174 +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs msgid "workspace.options.fill" msgstr "Recheo" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:29 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.auto" msgstr "Automático" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:157 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.column" msgstr "Columna" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.grid-title" msgstr "Grade" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:196, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:237 msgid "workspace.options.grid.params.color" msgstr "Cor" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.params.columns" msgstr "Columnas" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:270 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.margin" msgstr "Marxe" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:231 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.bottom" msgstr "Embaixo" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:229 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.center" msgstr "Centro" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:228 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.left" msgstr "Esquerda" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:232 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.right" msgstr "Dereita" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:227 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.top" msgstr "Enriba" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:405 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-animation-none" msgstr "Ningún" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:397 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-center" msgstr "Centro" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.bottom" msgstr "Embaixo" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.left" msgstr "Esquerda" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout.margin" msgstr "Marxe" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.right" msgstr "Dereita" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.top" msgstr "Enriba" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:124 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.none" msgstr "Ningún" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:87 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.center" msgstr "Centro" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.options.text-options.none" msgstr "Nada" -#: src/app/main/ui/workspace/context_menu.cljs:321 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.edit" msgstr "Editar" diff --git a/frontend/translations/ha.po b/frontend/translations/ha.po index 7e0afce72b..858165e3c4 100644 --- a/frontend/translations/ha.po +++ b/frontend/translations/ha.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "PO-Revision-Date: 2024-06-17 08:07+0000\n" "Last-Translator: Anonymous \n" -"Language-Team: Hausa " -"\n" +"Language-Team: Hausa \n" "Language: ha\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" @@ -11,494 +11,447 @@ msgstr "" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 5.6-dev\n" -#: src/app/main/ui/auth/register.cljs:151, src/app/main/ui/viewer/login.cljs:104 +#: src/app/main/ui/auth/register.cljs msgid "auth.already-have-account" msgstr "ka na da taska?" -#: src/app/main/ui/auth/register.cljs:299 +#: src/app/main/ui/auth/register.cljs msgid "auth.check-your-email" msgstr "" "bincika taskarka ta imel,ka danna alamar mahaxa domin tabbatarwa,sannan ka " "fara amfani da fenfot." -#: src/app/main/ui/auth/recovery.cljs:78 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.confirm-password" msgstr "tabbatar da kalmar buxewa" -#: src/app/main/ui/auth/register.cljs:163 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.create-demo-account" msgstr "qirqiri taskar gwaji" #: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs -#, unused msgid "auth.create-demo-profile" msgstr "ka na son gwadawa ne kawai?" -#: src/app/main/ui/auth/login.cljs:43 +#: src/app/main/ui/auth/register.cljs msgid "auth.demo-warning" msgstr "" "wannan aikin gwaji ne kawai,kar ka yi amfani da shi a aikin gaske,lokaci " "zuwa lokaci za ya ringa vacewa ne." -#: src/app/main/ui/auth/login.cljs:189, src/app/main/ui/viewer/login.cljs:90 +#: src/app/main/ui/auth/login.cljs msgid "auth.forgot-password" msgstr "ka manta lambar tsaro?" -#: src/app/main/ui/auth/register.cljs:254 +#: src/app/main/ui/auth/register.cljs msgid "auth.fullname" msgstr "cikakken suna" -#: src/app/main/ui/auth/register.cljs:155, src/app/main/ui/viewer/login.cljs:107 +#: src/app/main/ui/auth/register.cljs +#, fuzzy msgid "auth.login-here" msgstr "shiga nan" -#: src/app/main/ui/auth/login.cljs:195 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-submit" msgstr "shiga ciki" -#: src/app/main/ui/auth/login.cljs:222 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-github-submit" msgstr "matattarar manazarta" -#: src/app/main/ui/auth/login.cljs:228 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-gitlab-submit" msgstr "wurin nazari" -#: src/app/main/ui/auth/login.cljs:216 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-google-submit" msgstr "Gugul" -#: src/app/main/ui/auth/login.cljs:201 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-ldap-submit" msgstr "LDAP" -#: src/app/main/ui/auth/login.cljs:234, src/app/main/ui/auth/login.cljs:255 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-oidc-submit" msgstr "shaidar buxewa" -#: src/app/main/ui/auth/register.cljs:217, src/app/main/ui/dashboard/team_form.cljs:76, src/app/main/ui/onboarding/team_choice.cljs:180, src/app/main/ui/settings/access_tokens.cljs:66, src/app/main/ui/settings/feedback.cljs:34, src/app/main/ui/settings/profile.cljs:45, src/app/main/ui/workspace/sidebar/assets/groups.cljs:108 +#: src/app/main/ui/settings/team-form.cljs, src/app/main/ui/auth/register.cljs, src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/onboarding/team_choice.cljs, src/app/main/ui/settings/access_tokens.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/settings/profile.cljs, src/app/main/ui/workspace/sidebar/assets.cljs msgid "auth.name.not-all-space" msgstr "dole suna ya qumshi waxansu alamimon rubutu, sannan tazara." -#: src/app/main/ui/auth/register.cljs:218, src/app/main/ui/dashboard/team_form.cljs:77, src/app/main/ui/onboarding/team_choice.cljs:181, src/app/main/ui/settings/access_tokens.cljs:67, src/app/main/ui/settings/feedback.cljs:33, src/app/main/ui/settings/profile.cljs:44, src/app/main/ui/workspace/sidebar/assets/groups.cljs:109 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/onboarding/team_choice.cljs, src/app/main/ui/settings/access_tokens.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/settings/profile.cljs, src/app/main/ui/workspace/sidebar/assets.cljs msgid "auth.name.too-long" msgstr "suna dole ya qunshi alamomin rubutu 250." -#: src/app/main/ui/auth/recovery.cljs:71 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.new-password" msgstr "sanya sabuwar lambar tsaro" -#: src/app/main/ui/auth/recovery.cljs:42 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.notifications.invalid-token-error" msgstr "lambar tsaron da ka sanya ba daidai ba ce." -#: src/app/main/ui/auth/recovery.cljs:46 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.notifications.password-changed-successfully" msgstr "ka canza lambar tsaro" -#: src/app/main/ui/auth/recovery_request.cljs:57 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.notifications.profile-not-verified" msgstr "ba a tantance bayananka ba,sai an tantance a ci gaba." -#: src/app/main/ui/auth/recovery_request.cljs:40 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.notifications.recovery-token-sent" msgstr "an aika maka da saqon matakan da za a bi domin dawo da lambar tsaronka." -#: src/app/main/ui/auth/verify_token.cljs:47 +#: src/app/main/ui/auth/verify_token.cljs msgid "auth.notifications.team-invitation-accepted" msgstr "ka zama dan tawaga" -#: src/app/main/ui/auth/login.cljs:179, src/app/main/ui/auth/register.cljs:115 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.password" msgstr "lambar tsaro" -#: src/app/main/ui/auth/register.cljs:114 +#: src/app/main/ui/auth/register.cljs msgid "auth.password-length-hint" msgstr "aqalla a sami alamoni 8" -#: src/app/main/ui/auth.cljs:41 msgid "auth.privacy-policy" msgstr "matakan kaxaita" -#: src/app/main/ui/auth/recovery_request.cljs:101 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-subtitle" msgstr "za mu aika maka da saqon qa'idoji ta imel" -#: src/app/main/ui/auth/recovery.cljs:82 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.recovery-submit" msgstr "canza lambar tsaro" -#: src/app/main/ui/auth/register.cljs:140 +#: src/app/main/ui/auth/register.cljs msgid "auth.register-title" msgstr "qirqiri sabon kundi" #: src/app/main/ui/auth.cljs -#, unused msgid "auth.sidebar-tagline" msgstr "samun hanyar magance matsalar zane-zane." -#: src/app/main/ui/auth.cljs:33, src/app/main/ui/dashboard/sidebar.cljs:1022, src/app/main/ui/workspace/main_menu.cljs:150 msgid "auth.terms-of-service" msgstr "dokokin aiki" -#, unused msgid "auth.terms-privacy-agreement" msgstr "" "lokacin qirqirar kundi, sai ka amincewa da yanayi aikin da " "qa'idojinmuqa'idoji." -#: src/app/main/ui/auth/register.cljs:297 +#: src/app/main/ui/auth/register.cljs msgid "auth.verification-email-sent" msgstr "mun aika maka da saqon tantancewa ta imel" #: src/app/main/ui/onboarding/questions.cljs -#, unused msgid "branding-illustrations-marketing-pieces" msgstr "...branding, illustrations, marketing pieces, etc." -#: src/app/main/ui/workspace/libraries.cljs:228 msgid "common.publish" msgstr "wallafawa" -#: src/app/main/ui/viewer/share_link.cljs:304, src/app/main/ui/viewer/share_link.cljs:314 msgid "common.share-link.all-users" msgstr "duk fenfot" -#: src/app/main/ui/viewer/share_link.cljs:198 msgid "common.share-link.confirm-deletion-link-description" msgstr "ka tabbata ka na son rufe wannan hanyar? idan ka rufe ba mai iya sake bi" -#: src/app/main/ui/viewer/share_link.cljs:259, src/app/main/ui/viewer/share_link.cljs:289 msgid "common.share-link.current-tag" msgstr "(yanzu)" -#: src/app/main/ui/viewer/share_link.cljs:207, src/app/main/ui/viewer/share_link.cljs:214 msgid "common.share-link.destroy-link" msgstr "tarwatsa hanya" -#: src/app/main/ui/viewer/share_link.cljs:221 msgid "common.share-link.get-link" msgstr "samun hanya" -#: src/app/main/ui/viewer/share_link.cljs:139 msgid "common.share-link.link-copied-success" msgstr "an samo kwafi" -#: src/app/main/ui/viewer/share_link.cljs:231 msgid "common.share-link.manage-ops" msgstr "amincewar shugaba" -#: src/app/main/ui/viewer/share_link.cljs:277 msgid "common.share-link.page-shared" msgid_plural "common.share-link.page-shared" msgstr[0] "tura shafi 1" msgstr[1] "%s an tura shafi" -#: src/app/main/ui/viewer/share_link.cljs:298 msgid "common.share-link.permissions-can-comment" msgstr "sharhi" -#: src/app/main/ui/viewer/share_link.cljs:308 msgid "common.share-link.permissions-can-inspect" msgstr "iya bincka lamba" -#: src/app/main/ui/viewer/share_link.cljs:193 msgid "common.share-link.permissions-hint" msgstr "duk wanda ya mallaki mataki,za ya iya shiga" -#: src/app/main/ui/viewer/share_link.cljs:241 msgid "common.share-link.permissions-pages" msgstr "tura shafuka" -#: src/app/main/ui/viewer/share_link.cljs:183 msgid "common.share-link.placeholder" msgstr "hanya mai kyau za ta bayyana a nan" -#: src/app/main/ui/viewer/share_link.cljs:303, src/app/main/ui/viewer/share_link.cljs:313 msgid "common.share-link.team-members" msgstr "memba kaxai" -#: src/app/main/ui/viewer/share_link.cljs:171 msgid "common.share-link.title" msgstr "fenfot" -#: src/app/main/ui/viewer/share_link.cljs:269 msgid "common.share-link.view-all" msgstr "zavi duka" -#: src/app/main/ui/workspace/libraries.cljs:224 msgid "common.unpublish" msgstr "maras wallafa" -#: src/app/main/ui/dashboard/projects.cljs:85 +#: src/app/main/ui/dashboard/projects.cljs msgid "dasboard.team-hero.management" msgstr "shuwagabannin tawaga" -#: src/app/main/ui/dashboard/projects.cljs:84 +#: src/app/main/ui/dashboard/projects.cljs msgid "dasboard.team-hero.text" msgstr "fenfot ta menbobin tawaga ce. kirawo kowa domin yin aiki tarekundaye" -#: src/app/main/ui/dashboard/projects.cljs:82 +#: src/app/main/ui/dashboard/projects.cljs msgid "dasboard.team-hero.title" msgstr "haxin guiwa!" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.tutorial-hero.info" msgstr "ka san dokokin fenfot lokacin da ka ke tare da masoya koyarwa." #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.tutorial-hero.start" msgstr "fara jagoranci" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.tutorial-hero.title" msgstr "jagoranci" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.walkthrough-hero.info" msgstr "bincika manhaja domin sanin manyan sassanta." #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.walkthrough-hero.start" msgstr "fara koyarwa" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.walkthrough-hero.title" msgstr "ma'aunin karvuwar aiki" -#: src/app/main/ui/settings/access_tokens.cljs:115 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.copied-success" msgstr "kwafar lambar tsaro" -#: src/app/main/ui/settings/access_tokens.cljs:202 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.create" msgstr "samo sabuwar lambar tsaro" -#: src/app/main/ui/settings/access_tokens.cljs:76 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.create.success" msgstr "ka sami lambar tsaron da aka yi." -#: src/app/main/ui/settings/access_tokens.cljs:300 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.empty.add-one" msgstr "" "danna maddanin qasa\"danna qasa\n" "emo sabuwar lambar tsaro\" samar da wani." -#: src/app/main/ui/settings/access_tokens.cljs:299 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.empty.no-access-tokens" msgstr "ba ka da wasu lambobin tsaro yanzu." -#: src/app/main/ui/settings/access_tokens.cljs:53 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.errors-required-name" msgstr "ana buqatar suna" -#: src/app/main/ui/settings/access_tokens.cljs:147 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-180-days" msgstr "kwanaki 180" -#: src/app/main/ui/settings/access_tokens.cljs:144 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-30-days" msgstr "kwanaki 30" -#: src/app/main/ui/settings/access_tokens.cljs:145 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-60-days" msgstr "kwanaki 60" -#: src/app/main/ui/settings/access_tokens.cljs:146 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-90-days" msgstr "kwanaki 90" -#: src/app/main/ui/settings/access_tokens.cljs:143 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-never" msgstr "bai yiwuwa" -#: src/app/main/ui/settings/access_tokens.cljs:282 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expired-on" msgstr "gama aiki kan %s" -#: src/app/main/ui/settings/access_tokens.cljs:283 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expires-on" msgstr "gama aiki kan %s" -#: src/app/main/ui/settings/access_tokens.cljs:281 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.no-expiration" msgstr "ba lokacin daina amfani" -#: src/app/main/ui/settings/access_tokens.cljs:197 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.personal" msgstr "mallakar lambobin shiga na sirri" -#: src/app/main/ui/settings/access_tokens.cljs:198 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.personal.description" msgstr "" "lambarka ta shiga na a matsayin zabin hanyar shiga/lambar tsaronmuza a iya " "amfani tsarin tantancewa,domin shiga manhajar cikin fenfot API" -#: src/app/main/ui/settings/access_tokens.cljs:154 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.token-will-expire" msgstr "lambar tsaron za ta gama aiki %s" -#: src/app/main/ui/settings/access_tokens.cljs:155 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.token-will-not-expire" msgstr "lambar tsaron ba ta da lokacin daina aiki" -#: src/app/main/ui/dashboard/file_menu.cljs:291, src/app/main/ui/workspace/main_menu.cljs:572 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.add-shared" msgstr "tura tamkar fenfot" -#: src/app/main/ui/settings/profile.cljs:75 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.change-email" msgstr "canza imel" -#: src/app/main/data/dashboard.cljs:762, src/app/main/data/dashboard.cljs:983 +#: src/app/main/data/dashboard.cljs, src/app/main/data/dashboard.cljs msgid "dashboard.copy-suffix" msgstr "(kwafi)" -#: src/app/main/ui/dashboard/sidebar.cljs:338 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.create-new-team" msgstr "yi sabuwar tawaga" -#: src/app/main/ui/components/context_menu_a11y.cljs:256, src/app/main/ui/dashboard/sidebar.cljs:646 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.default-team-name" msgstr "manhajar fenfot" -#: src/app/main/ui/dashboard/sidebar.cljs:571 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.delete-team" msgstr "goge tawaga" -#: src/app/main/ui/dashboard/file_menu.cljs:296, src/app/main/ui/workspace/main_menu.cljs:589 msgid "dashboard.download-binary-file" msgstr "sauke manhajar fenfot(.manhajar fenfot)" -#: src/app/main/ui/dashboard/file_menu.cljs:300, src/app/main/ui/workspace/main_menu.cljs:597 msgid "dashboard.download-standard-file" msgstr "sauke cikakken kundi(.svg + .json)" -#: src/app/main/ui/dashboard/file_menu.cljs:276, src/app/main/ui/dashboard/project_menu.cljs:90 +#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.duplicate" msgstr "kwafi" -#: src/app/main/ui/dashboard/file_menu.cljs:240 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.duplicate-multi" msgstr "kwafi %s kundaye" -#: src/app/main/ui/dashboard/placeholder.cljs:32 -#, markdown +#: src/app/main/ui/dashboard/grid.cljs +#, fuzzy, markdown msgid "dashboard.empty-placeholder-drafts" msgstr "" "nan za a sami kundayen da aka sanya a taska. gwada sanya na ka kundin \"a " -"taskirarmumaginar kundi](https://manhajar fenfot/taskokin maginar " -"kundaye.html)." +"taskirarmumaginar kundi](https://manhajar fenfot/taskokin maginar kundaye." +"html)." -#: src/app/main/ui/dashboard/file_menu.cljs:249 msgid "dashboard.export-binary-multi" msgstr "sauke %s kundayen manhajar fenfot(.penpot)" -#: src/app/main/ui/workspace/main_menu.cljs:605 msgid "dashboard.export-frames" msgstr "Allon fitarwa na PDF" -#: src/app/main/ui/export.cljs:201 +#: src/app/main/ui/export.cljs msgid "dashboard.export-frames.title" msgstr "Fitarwa a PDF" -#, unused msgid "dashboard.export-multi" msgstr "fitar da fenfot %s kundaye" -#: src/app/main/ui/export.cljs:109 +#: src/app/main/ui/export.cljs msgid "dashboard.export-multiple.selected" msgstr "%s of %s tubullan da aka zava" -#: src/app/main/ui/workspace/main_menu.cljs:578 +#: src/app/main/ui/workspace/header.cljs msgid "dashboard.export-shapes" msgstr "Fitarwa" -#: src/app/main/ui/export.cljs:180 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.how-to" msgstr "" "za ka iya daidaita kayan zanenka ta hanyar (amfani da madannin qasa sashen " "dama)." -#: src/app/main/ui/export.cljs:184 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.how-to-link" msgstr "bayanin yadda ake fitarwa daga fenfot" -#: src/app/main/ui/export.cljs:179 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.no-elements" msgstr "ba wasu abubuwan da ake daidaitawa wajen tsara fitarwa." -#: src/app/main/ui/export.cljs:190 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.title" msgstr "Fitar da zavi" -#: src/app/main/ui/dashboard/file_menu.cljs:252 msgid "dashboard.export-standard-multi" msgstr "Sauke %s cikakken kundi (.svg + .json)" -#: src/app/main/ui/export.cljs:427 msgid "dashboard.export.detail" msgstr "*akwai sassan,hotuna,launuka,da/kozane-zane." -#: src/app/main/ui/export.cljs:426 msgid "dashboard.export.explain" msgstr "za ka iya fitar da kundi daya ko fiye ta hanyar tura taska. \"me \"*?" -#: src/app/main/ui/export.cljs:435 msgid "dashboard.export.options.all.message" msgstr "manhajar tura kundi ta kunshi fitarwa, tattali mahaxarsu." -#: src/app/main/ui/export.cljs:436 msgid "dashboard.export.options.all.title" msgstr "fitar da manhajar tura kundi" -#: src/app/main/ui/export.cljs:437 msgid "dashboard.export.options.detach.message" msgstr "manhajar tura kundi ba ta shiga cikin fitarwa, wani amfaniqarawa a taska. " -#: src/app/main/ui/export.cljs:438 msgid "dashboard.export.options.detach.title" msgstr "lura da bayanan da ke cikin manhajar tura kundi" -#: src/app/main/ui/export.cljs:439 msgid "dashboard.export.options.merge.message" msgstr "" "za ka iya fitar da kundi tare da haxe muhimman abubuwa, na waje a " "kunditaskira." -#: src/app/main/ui/export.cljs:440 msgid "dashboard.export.options.merge.title" msgstr "tura taska ya qunshi bayanan da ke cikin kundin taskoki" -#: src/app/main/ui/export.cljs:418 msgid "dashboard.export.title" msgstr "fitar da kundayr" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:309 msgid "dashboard.fonts.deleted-placeholder" msgstr "rashin font" -#: src/app/main/ui/dashboard/fonts.cljs:206 +#: src/app/main/ui/dashboard/fonts.cljs msgid "dashboard.fonts.dismiss-all" msgstr "goge duka" -#: src/app/main/ui/dashboard/fonts.cljs:436 msgid "dashboard.fonts.empty-placeholder" msgstr "fonts da ka xora nan za ya bayyana." -#: src/app/main/ui/dashboard/fonts.cljs:194 +#: src/app/main/ui/dashboard/fonts.cljs msgid "dashboard.fonts.fonts-added" msgid_plural "dashboard.fonts.fonts-added" msgstr[0] "an qara font 1" msgstr[1] "%s an qara fonts da yawa" -#: src/app/main/ui/dashboard/fonts.cljs:170 #, markdown msgid "dashboard.fonts.hero-text1" msgstr "" @@ -507,7 +460,6 @@ msgstr "" "kasawa**gwaurayen font**. Za ka iya xora font ta waxannan hanyoyin: **TTF, " "OTF and WOFF** (xaya kawai ake buqata)." -#: src/app/main/ui/dashboard/fonts.cljs:182 #, markdown msgid "dashboard.fonts.hero-text2" msgstr "" @@ -516,11 +468,10 @@ msgstr "" "fpntaiki](https://fenfot.app/dokoki.html). Za ka so bayani game " "da[ffonts](https://www.rubutu.com/faq)." -#: src/app/main/ui/dashboard/fonts.cljs:202 +#: src/app/main/ui/dashboard/fonts.cljs msgid "dashboard.fonts.upload-all" msgstr "xora duka" -#: src/app/main/ui/dashboard/fonts.cljs:187 #, markdown msgid "dashboard.fonts.warning-text" msgstr "" @@ -530,1591 +481,1405 @@ msgstr "" "mun aminta da amfani da [taransifota](https://taransifota.org/) domin samo " "webfonts da adana kurakurai. " -#: src/app/main/ui/dashboard/import.cljs:472, src/app/main/ui/dashboard/project_menu.cljs:108 msgid "dashboard.import" msgstr "shigo da kundin fenfot" -#: src/app/main/ui/dashboard/import.cljs:304, src/app/worker/import.cljs:753, src/app/worker/import.cljs:755 msgid "dashboard.import.analyze-error" msgstr "kash! mun gaza shigo da kundinka" -#: src/app/main/ui/dashboard/import.cljs:308 msgid "dashboard.import.import-error" msgstr "akwi matsala a kundin. ba a shio da kundin ba." -#: src/app/main/ui/dashboard/import.cljs:493 msgid "dashboard.import.import-message" msgid_plural "dashboard.import.import-message" msgstr[0] "an shigar kundi 1." msgstr[1] "%s kundaye sun shiga." -#: src/app/main/ui/dashboard/import.cljs:481, src/app/main/ui/dashboard/import.cljs:488 msgid "dashboard.import.import-warning" msgstr "wasu kundayen na dauke da abubuwan da ba su da amfani." -#: src/app/main/ui/dashboard/import.cljs:144 msgid "dashboard.import.progress.process-colors" msgstr "aikin rini" -#: src/app/main/ui/dashboard/import.cljs:153 msgid "dashboard.import.progress.process-components" msgstr "aikin sassa" -#: src/app/main/ui/dashboard/import.cljs:150 msgid "dashboard.import.progress.process-media" msgstr "kammala aiki" -#: src/app/main/ui/dashboard/import.cljs:141 msgid "dashboard.import.progress.process-page" msgstr "fejin kasuwar duniya: %s" -#: src/app/main/ui/dashboard/import.cljs:147 msgid "dashboard.import.progress.process-typographies" msgstr "kula da rubutu" -#: src/app/main/ui/dashboard/import.cljs:135 msgid "dashboard.import.progress.upload-data" msgstr "xora bayani akan sabis (%s/%s)" -#: src/app/main/ui/dashboard/import.cljs:138 msgid "dashboard.import.progress.upload-media" msgstr "xora kundaye: %s" -#: src/app/main/ui/dashboard/team.cljs:109 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.invite-profile" msgstr "neman mutane" -#: src/app/main/ui/dashboard/sidebar.cljs:547, src/app/main/ui/dashboard/sidebar.cljs:556, src/app/main/ui/dashboard/sidebar.cljs:563, src/app/main/ui/dashboard/team.cljs:312 +#: src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.leave-team" msgstr "fita tawaga" -#: src/app/main/ui/dashboard/templates.cljs:88, src/app/main/ui/dashboard/templates.cljs:163 msgid "dashboard.libraries-and-templates" msgstr "taska da shaidar kamfanoni" -#: src/app/main/ui/dashboard/templates.cljs:164 msgid "dashboard.libraries-and-templates.explore" msgstr "bincika su da kyau kasan ta yadda za ka bayar da gudunmawa" -#: src/app/main/ui/dashboard/import.cljs:365 msgid "dashboard.libraries-and-templates.import-error" msgstr "akwai matsala wurin shigo da fejin talla. fejin tallar ba ya xauko." -#: src/app/main/ui/dashboard/libraries.cljs:53 +#: src/app/main/ui/dashboard/libraries.cljs msgid "dashboard.libraries-title" msgstr "taskoki" -#: src/app/main/ui/dashboard/placeholder.cljs:45 +#: src/app/main/ui/dashboard/grid.cljs msgid "dashboard.loading-files" msgstr "aikin dora kundaye …" -#: src/app/main/ui/dashboard/fonts.cljs:431 msgid "dashboard.loading-fonts" msgstr "xora abin adonka …" -#: src/app/main/ui/dashboard/file_menu.cljs:281, src/app/main/ui/dashboard/project_menu.cljs:100 +#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.move-to" msgstr "tura a" -#: src/app/main/ui/dashboard/file_menu.cljs:245 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.move-to-multi" msgstr "tura %s kundaye a" -#: src/app/main/ui/dashboard/file_menu.cljs:226 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.move-to-other-team" msgstr "tura ma sauran tawaga" -#: src/app/main/ui/dashboard/files.cljs:105, src/app/main/ui/dashboard/projects.cljs:252, src/app/main/ui/dashboard/projects.cljs:253 +#: src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/files.cljs msgid "dashboard.new-file" msgstr "+ sabon kundi" -#: src/app/main/data/dashboard.cljs:958, src/app/main/data/dashboard.cljs:1181 +#: src/app/main/data/dashboard.cljs msgid "dashboard.new-file-prefix" msgstr "sabon kundi" -#: src/app/main/ui/dashboard/projects.cljs:55 +#: src/app/main/ui/dashboard/projects.cljs msgid "dashboard.new-project" msgstr "+ sabon aiki" -#: src/app/main/data/dashboard.cljs:726, src/app/main/data/dashboard.cljs:1184 +#: src/app/main/data/dashboard.cljs msgid "dashboard.new-project-prefix" msgstr "sabon aiki" -#: src/app/main/ui/dashboard/search.cljs:60 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.no-matches-for" msgstr "ba wanda ya yi daidai da “%s“" -#: src/app/main/ui/dashboard/sidebar.cljs:827 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.no-projects-placeholder" msgstr "nan za a ga bayanin aiki" -#: src/app/main/ui/auth/verify_token.cljs:33 +#: src/app/main/ui/auth/verify_token.cljs msgid "dashboard.notifications.email-changed-successfully" msgstr "ka zamanantar da adireshinka na imel" -#: src/app/main/ui/auth/verify_token.cljs:27 +#: src/app/main/ui/auth/verify_token.cljs msgid "dashboard.notifications.email-verified-successfully" msgstr "an tantance adireshinka na imel" -#: src/app/main/ui/settings/password.cljs:37 +#: src/app/main/ui/settings/password.cljs msgid "dashboard.notifications.password-saved" msgstr "an tsare maka shaidar tsaro!" -#: src/app/main/ui/dashboard/team.cljs:1081 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.num-of-members" msgstr "%s memba" -#: src/app/main/ui/dashboard/file_menu.cljs:267 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.open-in-new-tab" msgstr "buxe kundi a sabon wurin buxewa" -#: src/app/main/ui/dashboard/files.cljs:117, src/app/main/ui/dashboard/projects.cljs:260, src/app/main/ui/dashboard/projects.cljs:261 msgid "dashboard.options" msgstr "zavi" -#: src/app/main/ui/settings/password.cljs:106, src/app/main/ui/settings/password.cljs:119 +#: src/app/main/ui/settings/password.cljs msgid "dashboard.password-change" msgstr "sauya lambar tsaro" -#: src/app/main/ui/dashboard/pin_button.cljs:24, src/app/main/ui/dashboard/project_menu.cljs:95 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.pin-unpin" msgstr "rufewa/buxewa" -#: src/app/main/ui/dashboard/projects.cljs:51 +#: src/app/main/ui/dashboard/projects.cljs msgid "dashboard.projects-title" msgstr "aiki" -#: src/app/main/ui/settings/profile.cljs:86 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.remove-account" msgstr "ka na son cire taskarka?" #: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused msgid "dashboard.remove-shared" msgstr "cire matattarar kundate" -#: src/app/main/ui/settings/profile.cljs:78 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.save-settings" msgstr "wurin ajiyar saiti" -#: src/app/main/ui/dashboard/sidebar.cljs:246, src/app/main/ui/dashboard/sidebar.cljs:247 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.search-placeholder" msgstr "nema …" -#: src/app/main/ui/dashboard/search.cljs:55 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.searching-for" msgstr "neman “%s“…" -#: src/app/main/ui/settings/options.cljs:56 +#: src/app/main/ui/settings/options.cljs msgid "dashboard.select-ui-language" msgstr "zavavven harshen UI" -#: src/app/main/ui/settings/options.cljs:63 +#: src/app/main/ui/settings/options.cljs msgid "dashboard.select-ui-theme" msgstr "zaven batu" -#: src/app/main/ui/dashboard/projects.cljs:282 +#: src/app/main/ui/dashboard/grid.cljs msgid "dashboard.show-all-files" msgstr "duk kundaye" -#: src/app/main/ui/dashboard/file_menu.cljs:96 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-delete-file" msgid_plural "dashboard.success-delete-file" msgstr[0] "an goge kundinka" msgstr[1] "an goge kundayenka" -#: src/app/main/ui/dashboard/project_menu.cljs:59 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.success-delete-project" msgstr "ka goge aikinka" -#: src/app/main/ui/dashboard/file_menu.cljs:91 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-duplicate-file" msgid_plural "dashboard.success-delete-file" msgstr[0] "an kwafi kundinka" msgstr[1] "an kwafi kundayenka" -#: src/app/main/ui/dashboard/project_menu.cljs:33 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.success-duplicate-project" msgstr "an kwafi aikinka" -#: src/app/main/ui/dashboard/file_menu.cljs:130, src/app/main/ui/dashboard/grid.cljs:558, src/app/main/ui/dashboard/sidebar.cljs:152 +#: src/app/main/ui/dashboard/grid.cljs, src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-move-file" msgstr "an tura aikinka" -#: src/app/main/ui/dashboard/file_menu.cljs:129 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-move-files" msgstr "an tura kundayenka" -#: src/app/main/ui/dashboard/project_menu.cljs:54 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.success-move-project" msgstr "an tura aikinka" -#: src/app/main/ui/dashboard/team.cljs:1052 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.team-info" msgstr "bayanin tawaga" -#: src/app/main/ui/dashboard/team.cljs:1070 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.team-members" msgstr "mambobin tawaga" -#: src/app/main/ui/dashboard/team.cljs:1085 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.team-projects" msgstr "aiyukan tawaga" -#: src/app/main/ui/settings/options.cljs:61 +#: src/app/main/ui/settings/options.cljs msgid "dashboard.theme-change" msgstr "batun UI" -#: src/app/main/ui/dashboard/search.cljs:42 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.title-search" msgstr "neman sakamako" -#: src/app/main/ui/dashboard/search.cljs:50 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.type-something" msgstr "rubuta neman sakamako" -#: src/app/main/ui/dashboard/file_menu.cljs:287, src/app/main/ui/workspace/main_menu.cljs:566 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.unpublish-shared" msgstr "wallafa taska" -#: src/app/main/ui/settings/options.cljs:71 +#: src/app/main/ui/settings/password.cljs, src/app/main/ui/settings/options.cljs msgid "dashboard.update-settings" msgstr "zamanartarwa wurin gyara" -#: src/app/main/ui/dashboard/team.cljs:861 msgid "dashboard.webhooks.active" msgstr "ya na amfani" -#: src/app/main/ui/dashboard/team.cljs:862 msgid "dashboard.webhooks.active.explain" msgstr "idan an sami sauyi a nan ake kawo shi" -#: src/app/main/ui/dashboard/team.cljs:852 msgid "dashboard.webhooks.content-type" msgstr "irin ra'ayi" -#: src/app/main/ui/dashboard/team.cljs:885 msgid "dashboard.webhooks.create" msgstr "yin webhook" -#: src/app/main/ui/dashboard/team.cljs:775 msgid "dashboard.webhooks.create.success" msgstr "an gina Webhook." -#: src/app/main/ui/dashboard/team.cljs:882 msgid "dashboard.webhooks.description" msgstr "" "Webhooks hanyar sanar da manhajoji da addireshi intanet idan wani ya faru a " "Penpot. za a tura maka da saqon talla URLs ka samar da." -#: src/app/main/ui/dashboard/team.cljs:1005 msgid "dashboard.webhooks.empty.add-one" msgstr "danna qasa \"sanya webhook\" qara xaya." -#: src/app/main/ui/dashboard/team.cljs:1004 msgid "dashboard.webhooks.empty.no-webhooks" msgstr "ba a gina wani webhooks ba." -#, unused msgid "dashboard.webhooks.update.success" msgstr "sabunta Webhook." -#: src/app/main/ui/settings.cljs:31 +#: src/app/main/ui/settings.cljs msgid "dashboard.your-account-title" msgstr "gidanka" -#: src/app/main/ui/settings/profile.cljs:70 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.your-email" msgstr "imel" -#: src/app/main/ui/settings/profile.cljs:62 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.your-name" msgstr "sunanka" -#: src/app/main/ui/dashboard/file_menu.cljs:38, src/app/main/ui/dashboard/fonts.cljs:33, src/app/main/ui/dashboard/libraries.cljs:42, src/app/main/ui/dashboard/projects.cljs:318, src/app/main/ui/dashboard/search.cljs:30, src/app/main/ui/dashboard/sidebar.cljs:312, src/app/main/ui/dashboard/team.cljs:495, src/app/main/ui/dashboard/team.cljs:729, src/app/main/ui/dashboard/team.cljs:991, src/app/main/ui/dashboard/team.cljs:1038 +#: src/app/main/ui/dashboard/search.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/libraries.cljs, src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.your-penpot" msgstr "fenfot na ka" -#: src/app/main/ui/alert.cljs:32 +#: src/app/main/ui/alert.cljs msgid "ds.alert-ok" msgstr "haka" -#: src/app/main/ui/alert.cljs:31, src/app/main/ui/alert.cljs:34 +#: src/app/main/ui/alert.cljs msgid "ds.alert-title" msgstr "natsu" -#: src/app/main/ui/confirm.cljs:83 +#: src/app/main/ui/confirm.cljs msgid "ds.component-subtitle" msgstr "zamanantar da sassa:" -#: src/app/main/ui/confirm.cljs:36, src/app/main/ui/workspace/plugins.cljs:246 +#: src/app/main/ui/confirm.cljs msgid "ds.confirm-cancel" msgstr "goge" -#: src/app/main/ui/confirm.cljs:37, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:141 +#: src/app/main/ui/confirm.cljs msgid "ds.confirm-ok" msgstr "haka" -#: src/app/main/ui/confirm.cljs:35, src/app/main/ui/confirm.cljs:39 +#: src/app/main/ui/confirm.cljs, src/app/main/ui/confirm.cljs msgid "ds.confirm-title" msgstr "ka tabbata?" -#: src/app/main/ui/auth/login.cljs:62 +#: src/app/main/ui/auth/login.cljs msgid "errors.auth-provider-not-configured" msgstr "manhajar tantancewar ba ta tsaru ba." -#: src/app/main/errors.cljs:104 msgid "errors.auth.unable-to-login" msgstr "lokacin ya qare ko ba a tantance ka ba." -#: src/app/main/data/fonts.cljs:189 msgid "errors.bad-font" msgstr "ba za a iya xora fonts %s ba" -#: src/app/main/data/fonts.cljs:188 msgid "errors.bad-font-plural" msgstr "ba za a iya xora fonts %s ba" -#: src/app/main/data/workspace/media.cljs:198 msgid "errors.cannot-upload" msgstr "kasa xora xan aiken kundi." -#: src/app/main/data/workspace.cljs:1598 +#: src/app/main/data/workspace.cljs msgid "errors.clipboard-not-implemented" msgstr "manhajar binciken nan ba ta iya yin wannan aikin" -#: src/app/main/ui/auth/verify_token.cljs:82, src/app/main/ui/settings/change_email.cljs:46 +#: src/app/main/ui/auth/verify_token.cljs, src/app/main/ui/settings/change_email.cljs msgid "errors.email-already-exists" msgstr "an yi amfani da imel" -#: src/app/main/ui/auth/verify_token.cljs:87 +#: src/app/main/ui/auth/verify_token.cljs msgid "errors.email-already-validated" msgstr "an farfaxo da imel." -#: src/app/main/ui/settings/password.cljs:28 msgid "errors.email-as-password" msgstr "ba za ka iya amfani da imel ba a matsayin lambar tsaro ba" -#: src/app/main/ui/auth/recovery_request.cljs:63, src/app/main/ui/dashboard/team.cljs:578, src/app/main/ui/settings/change_email.cljs:54 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/settings/change_email.cljs, src/app/main/ui/dashboard/team.cljs msgid "errors.email-has-permanent-bounces" msgstr "imel «%s» na da bayanan matsaloli na dindindin." -#: src/app/main/ui/auth/login.cljs:81, src/app/main/ui/auth/recovery_request.cljs:31, src/app/main/ui/auth/register.cljs:43 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs, src/app/main/ui/auth/recovery_request.cljs msgid "errors.email-invalid" msgstr "sanya imel mai amfani" -#: src/app/main/ui/settings/change_email.cljs:35 +#: src/app/main/ui/settings/change_email.cljs msgid "errors.email-invalid-confirmation" msgstr "tabbata imel xinka ya yi daidai" -#: src/app/main/ui/dashboard/team.cljs:170 msgid "errors.email-spam-or-permanent-bounces" msgstr "saqonni marasa amfani na imel «%s»." -#: src/app/main/errors.cljs:227 +#: src/app/main/errors.cljs msgid "errors.feature-mismatch" msgstr "" "tamkar ka buxe wani kundi da ke da muhimmanci '%s' bayar da dama qarin da " "ka yi ma fenfot xinka bai karbu ba ko ba zai yi aiki ba." -#: src/app/main/errors.cljs:231, src/app/main/errors.cljs:245 +#: src/app/main/errors.cljs msgid "errors.feature-not-supported" msgstr "sassa '%s' ba za su yi aiki ba." -#: src/app/main/data/users.cljs:709, src/app/main/ui/auth/login.cljs:65, src/app/main/ui/auth/login.cljs:116, src/app/main/ui/auth/register.cljs:69, src/app/main/ui/auth/register.cljs:237, src/app/main/ui/auth/verify_token.cljs:92, src/app/main/ui/dashboard/team.cljs:173, src/app/main/ui/onboarding/team_choice.cljs:95, src/app/main/ui/settings/access_tokens.cljs:91, src/app/main/ui/settings/feedback.cljs:52 +#: src/app/main/ui/auth/verify_token.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/dashboard/team.cljs msgid "errors.generic" msgstr "wata matsala ta faru." -#: src/app/main/ui/components/color_input.cljs:57 +#: src/app/main/ui/components/color_input.cljs msgid "errors.invalid-color" msgstr "launin bai yi ba" -#: src/app/main/ui/static.cljs:43 +#: src/app/main/ui/auth/verify_token.cljs msgid "errors.invite-invalid" msgstr "gaiyar ba ta yi ba" -#: src/app/main/ui/static.cljs:44 msgid "errors.invite-invalid.info" msgstr "za a iya soke gayyata ko ta ki aiki." -#: src/app/main/ui/auth/login.cljs:101 +#: src/app/main/ui/auth/login.cljs msgid "errors.ldap-disabled" msgstr "LDAP ya gaza tantancewa." -#: src/app/main/errors.cljs:239 +#: src/app/main/errors.cljs msgid "errors.max-quote-reached" msgstr "kammala adadin '%s' madogara. gyara." -#: src/app/main/data/workspace/media.cljs:184 +#: src/app/main/data/workspace/persistence.cljs msgid "errors.media-too-large" msgstr "hoton da za ka sanya ya yi girma." -#: src/app/main/data/media.cljs:68, src/app/main/data/workspace/media.cljs:187 +#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs msgid "errors.media-type-mismatch" msgstr "hoton da aka sanya bai yi daidai da kundin da ake son faxaxawa ba." -#: src/app/main/data/media.cljs:65, src/app/main/data/workspace/media.cljs:172, src/app/main/data/workspace/media.cljs:175, src/app/main/data/workspace/media.cljs:178, src/app/main/data/workspace/media.cljs:181 +#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/workspace/persistence.cljs, src/app/main/data/workspace/persistence.cljs, src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs msgid "errors.media-type-not-allowed" msgstr "wannan hoton ba ya aiki." -#: src/app/main/ui/dashboard/team.cljs:574 +#: src/app/main/ui/dashboard/team.cljs msgid "errors.member-is-muted" msgstr "bayanan da ka nema imel din su ya suma (bayanan matsaloli)." -#: src/app/main/ui/settings/password.cljs:61 +#: src/app/main/ui/settings/password.cljs msgid "errors.password-invalid-confirmation" msgstr "tabbata labar tsaro ta yi daidai" -#: src/app/main/ui/settings/password.cljs:64 +#: src/app/main/ui/settings/password.cljs msgid "errors.password-too-short" msgstr "lambar tsaro dole ta kai yawan alamu 8" -#: src/app/main/data/users.cljs:703, src/app/main/ui/auth/login.cljs:97, src/app/main/ui/auth/login.cljs:105 msgid "errors.profile-blocked" msgstr "bayanan a rufe suke" -#: src/app/main/ui/auth/recovery_request.cljs:60, src/app/main/ui/dashboard/team.cljs:164, src/app/main/ui/dashboard/team.cljs:570, src/app/main/ui/settings/change_email.cljs:50 +#: src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/settings/change_email.cljs, src/app/main/ui/dashboard/team.cljs msgid "errors.profile-is-muted" msgstr "bayananka su na da imel maras motsi (baiyana matsaloli)." -#: src/app/main/data/users.cljs:701, src/app/main/ui/auth/register.cljs:60 +#: src/app/main/ui/auth/register.cljs msgid "errors.registration-disabled" msgstr "rigitar ba ta yi ba." -#: src/app/main/ui/dashboard/sidebar.cljs:365, src/app/main/ui/dashboard/team.cljs:359 msgid "errors.team-leave.insufficient-members" msgstr "ba sauran masu fita daga tawaga, ba bu tabbacin gogewa." -#: src/app/main/ui/dashboard/sidebar.cljs:368, src/app/main/ui/dashboard/team.cljs:362 msgid "errors.team-leave.member-does-not-exists" msgstr "mamban da ka ke son sanyawa ba ya a ciki." -#: src/app/main/ui/dashboard/sidebar.cljs:371, src/app/main/ui/dashboard/team.cljs:365 msgid "errors.team-leave.owner-cant-leave" msgstr "mai abu ba ya barin tawaga, dole adubi matsayin mai abu." -#: src/app/main/data/media.cljs:71 +#: src/app/main/data/media.cljs, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs msgid "errors.unexpected-error" msgstr "afkuwar kuskuren da ba a zata ba." -#: src/app/main/ui/auth/verify_token.cljs:60 +#: src/app/main/ui/auth/verify_token.cljs msgid "errors.unexpected-token" msgstr "tukuicin da ba a san da shi ba" -#: src/app/main/ui/dashboard/team.cljs:796 msgid "errors.webhooks.connection" msgstr "hadin bai yi ba, ba a iya samun URL" -#: src/app/main/ui/dashboard/team.cljs:790 msgid "errors.webhooks.invalid-uri" msgstr "URL bai gyaru ba." -#: src/app/main/ui/dashboard/team.cljs:949 +#, fuzzy msgid "errors.webhooks.last-delivery" msgstr "saqon qarshe bai je ba." -#: src/app/main/ui/dashboard/team.cljs:792, src/app/main/ui/dashboard/team.cljs:952 msgid "errors.webhooks.ssl-validation" msgstr "kuskure kan farfaxo da SSL." -#: src/app/main/ui/dashboard/team.cljs:794 msgid "errors.webhooks.timeout" msgstr "dakatarwa" -#: src/app/main/ui/dashboard/team.cljs:788 msgid "errors.webhooks.unexpected" msgstr "matsalar da ba zata ba lokacin farfaxowa" -#: src/app/main/ui/dashboard/team.cljs:798, src/app/main/ui/dashboard/team.cljs:955 msgid "errors.webhooks.unexpected-status" msgstr "matsayin da ba zato %s" -#: src/app/main/ui/auth/login.cljs:109, src/app/main/ui/auth/login.cljs:113 +#: src/app/main/ui/auth/login.cljs msgid "errors.wrong-credentials" msgstr "kuskuren imel ko lambar tsaro." -#: src/app/main/ui/settings/password.cljs:25 +#: src/app/main/ui/settings/password.cljs msgid "errors.wrong-old-password" msgstr "tsohuwar lambar tsaro ba daidai ba ce" -#: src/app/main/ui/settings/feedback.cljs:77 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.description" msgstr "bayani" -#: src/app/main/ui/settings/feedback.cljs:95 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.discourse-go-to" msgstr "je ka taskar fenfot" -#: src/app/main/ui/settings/feedback.cljs:89 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.discourse-subtitle1" msgstr "" "mun yi farin ciki da samunka a nan. idan ka na da buqatar taimako sai ka " "tuntuvi na gaba da kai matsayi." -#: src/app/main/ui/settings/feedback.cljs:88 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.discourse-title" msgstr "dangin fenfot" -#: src/app/main/ui/settings/feedback.cljs:72 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.subject" msgstr "shugabanci" -#: src/app/main/ui/settings/feedback.cljs:69 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.subtitle" msgstr "" "bayyana dalilin imel dinka, faiyace idan akwai matsala, an shawarwari ko " "hasashe. tawaga ko mamba za a kula da kai." -#: src/app/main/ui/settings/feedback.cljs:68 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.title" msgstr "imel" -#: src/app/main/ui/settings/feedback.cljs:105 +#: src/app/main/ui/settings/feedback.cljs +#, fuzzy msgid "feedback.twitter-go-to" msgstr "je ka tiwita" -#: src/app/main/ui/settings/feedback.cljs:99 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.twitter-subtitle1" msgstr "tambayoyin da ke buqatar amsa." -#: src/app/main/ui/settings/feedback.cljs:98 +#: src/app/main/ui/settings/feedback.cljs +#, fuzzy msgid "feedback.twitter-title" msgstr "wurin karvar qorafin tiwita" -#: src/app/main/ui/settings/password.cljs:30 +#: src/app/main/ui/settings/password.cljs msgid "generic.error" msgstr "afkuwar matsala" -#: src/app/main/ui/viewer/inspect/attributes/blur.cljs:26 +#: src/app/main/ui/inspect/attributes/blur.cljs msgid "inspect.attributes.blur" msgstr "xige-xige" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:115 +#: src/app/main/ui/inspect/attributes/blur.cljs msgid "inspect.attributes.blur.value" msgstr "muhimmanci" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:112 +#: src/app/main/ui/inspect/attributes/common.cljs msgid "inspect.attributes.color.hex" msgstr "HEX" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:114 +#: src/app/main/ui/inspect/attributes/common.cljs msgid "inspect.attributes.color.hsla" msgstr "HSLA" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:113 +#: src/app/main/ui/inspect/attributes/common.cljs msgid "inspect.attributes.color.rgba" msgstr "RGBA" -#: src/app/main/ui/viewer/inspect/attributes/fill.cljs:57 +#: src/app/main/ui/inspect/attributes/fill.cljs msgid "inspect.attributes.fill" msgstr "cika" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:99, src/app/main/ui/viewer/inspect/attributes/image.cljs:51 +#: src/app/main/ui/inspect/attributes/image.cljs msgid "inspect.attributes.image.download" msgstr "sauke hanyar hoto" -#: src/app/main/ui/viewer/inspect/attributes/image.cljs:39 +#: src/app/main/ui/inspect/attributes/image.cljs msgid "inspect.attributes.image.height" msgstr "tsawo" -#: src/app/main/ui/viewer/inspect/attributes/image.cljs:32 +#: src/app/main/ui/inspect/attributes/image.cljs msgid "inspect.attributes.image.width" msgstr "faxi" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout" msgstr "shiri" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.height" msgstr "tsawo" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.left" msgstr "hagu" #: src/app/main/ui/inspect/attributes/layout.cljs, src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.radius" msgstr "tsakiya" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.rotation" msgstr "jujjuyawa" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.top" msgstr "sama" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.width" msgstr "fadi" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:57 +#: src/app/main/ui/inspect/attributes/shadow.cljs msgid "inspect.attributes.shadow" msgstr "inuwa" -#: src/app/main/ui/viewer/inspect/attributes/geometry.cljs:40 +#: src/app/main/ui/inspect/attributes/layout.cljs msgid "inspect.attributes.size" msgstr "wurin daxa girma" -#: src/app/main/ui/viewer/inspect/attributes/stroke.cljs:52 +#: src/app/main/ui/inspect/attributes/stroke.cljs msgid "inspect.attributes.stroke" msgstr "yankewa" -#, permanent, unused +#, permanent msgid "inspect.attributes.stroke.alignment.center" msgstr "tsakiya" -#, permanent, unused +#, permanent msgid "inspect.attributes.stroke.alignment.inner" msgstr "daga ciki" -#, permanent, unused +#, permanent msgid "inspect.attributes.stroke.alignment.outer" msgstr "daga waje" -#, unused msgid "inspect.attributes.stroke.style.dotted" msgstr "xige-xige" -#, unused msgid "inspect.attributes.stroke.style.mixed" msgstr "gauraya" -#, unused msgid "inspect.attributes.stroke.style.none" msgstr "babu" -#, unused msgid "inspect.attributes.stroke.style.solid" msgstr "tauri" #: src/app/main/ui/inspect/attributes/stroke.cljs -#, unused msgid "inspect.attributes.stroke.width" msgstr "fadi" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:81, src/app/main/ui/viewer/inspect/attributes/text.cljs:194 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography" msgstr "tsara rubutu" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:89 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.font-family" msgstr "gidan salo" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:107 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.font-size" msgstr "girman salo" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:98 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.font-style" msgstr "tsarin salo" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:116 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.font-weight" msgstr "kaurin salon" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:134 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.letter-spacing" msgstr "tazarar harafi" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:125 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.line-height" msgstr "tsawon layi" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:143 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.text-decoration" msgstr "kwalliyar rubutu" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:145 msgid "inspect.attributes.typography.text-decoration.none" msgstr "babu" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:146 msgid "inspect.attributes.typography.text-decoration.strikethrough" msgstr "zana layi tsakiyar rubutu" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:147 msgid "inspect.attributes.typography.text-decoration.underline" msgstr "jan layi" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:156 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.text-transform" msgstr "masarrafin rubu,manya ko qanana" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:158 msgid "inspect.attributes.typography.text-transform.lowercase" msgstr "qananan baqaqe" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:159 msgid "inspect.attributes.typography.text-transform.none" msgstr "babu" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:160 msgid "inspect.attributes.typography.text-transform.titlecase" msgstr "yadda ake rubuta batu" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:161 msgid "inspect.attributes.typography.text-transform.uppercase" msgstr "manyan baqaqe" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:140 msgid "inspect.empty.help" msgstr "domin neman qarin bayani game da fenfot a tuntubi sashen agaji" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:143 msgid "inspect.empty.more-info" msgstr "qarin bayani a fagen lura" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:135 msgid "inspect.empty.select" msgstr "zabar zubi, hukumar masu sa ido akan bangarorinsu da lambobinsu" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:125 +#: src/app/main/ui/inspect/right_sidebar.cljs msgid "inspect.tabs.code" msgstr "lamba" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:98 msgid "inspect.tabs.code.selected.circle" msgstr "da'ira" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:99 msgid "inspect.tabs.code.selected.component" msgstr "bangare" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:100 msgid "inspect.tabs.code.selected.curve" msgstr "lankwasa" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:101 msgid "inspect.tabs.code.selected.frame" msgstr "hukuma" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:102 msgid "inspect.tabs.code.selected.group" msgstr "qungiya" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:103 msgid "inspect.tabs.code.selected.image" msgstr "hoto" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:104 msgid "inspect.tabs.code.selected.mask" msgstr "marfi" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:93 +#: src/app/main/ui/inspect/right_sidebar.cljs msgid "inspect.tabs.code.selected.multiple" msgstr "%s zavavve" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:105 msgid "inspect.tabs.code.selected.path" msgstr "hanya" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:106 msgid "inspect.tabs.code.selected.rect" msgstr "rektangul" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:107 msgid "inspect.tabs.code.selected.svg-raw" msgstr "SVG" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:108 msgid "inspect.tabs.code.selected.text" msgstr "rubutu" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:115 +#: src/app/main/ui/inspect/right_sidebar.cljs msgid "inspect.tabs.info" msgstr "bayani" -#: src/app/main/ui/workspace/main_menu.cljs:158 +#: src/app/main/ui/workspace/header.cljs msgid "label.shortcuts" msgstr "yanke" -#: src/app/main/ui/dashboard/import.cljs:527 msgid "labels.accept" msgstr "karva" -#: src/app/main/ui/settings/sidebar.cljs:100 +#: src/app/main/ui/settings/sidebar.cljs msgid "labels.access-tokens" msgstr "lambobi masu xauke da bayani" -#: src/app/main/ui/dashboard/team.cljs:968 msgid "labels.active" msgstr "mai amfani" -#: src/app/main/ui/dashboard/fonts.cljs:175 msgid "labels.add-custom-font" msgstr "inganta font" -#: src/app/main/ui/dashboard/team.cljs:120, src/app/main/ui/dashboard/team.cljs:276, src/app/main/ui/dashboard/team.cljs:519, src/app/main/ui/dashboard/team.cljs:549, src/app/main/ui/onboarding/team_choice.cljs:67 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs msgid "labels.admin" msgstr "shugaba" -#: src/app/main/ui/onboarding/questions.cljs:174 -msgid "labels.adobe-xd" -msgstr "Adobe XD" - #: src/app/main/ui/workspace/comments.cljs -#, unused msgid "labels.all" msgstr "duk" -#: src/app/main/ui/auth.cljs:37 msgid "labels.and" msgstr "da" -#: src/app/main/ui/onboarding/team_choice.cljs:162 msgid "labels.back" msgstr "baya" -#: src/app/main/ui/static.cljs:59 +#: src/app/main/ui/static.cljs msgid "labels.bad-gateway.desc-message" msgstr "" "ka jinkirta kaxan sannan ka qara gwadawa; mu na aiki daidai domin tattala " "aikinmu." -#: src/app/main/ui/static.cljs:58 +#: src/app/main/ui/static.cljs msgid "labels.bad-gateway.main-message" msgstr "akwai matsala" -#: src/app/main/data/common.cljs:112, src/app/main/ui/dashboard/change_owner.cljs:69, src/app/main/ui/dashboard/import.cljs:514, src/app/main/ui/dashboard/team.cljs:868, src/app/main/ui/delete_shared.cljs:35, src/app/main/ui/export.cljs:164, src/app/main/ui/export.cljs:460, src/app/main/ui/settings/access_tokens.cljs:188, src/app/main/ui/viewer/share_link.cljs:203, src/app/main/ui/workspace/sidebar/assets/groups.cljs:149 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.cancel" msgstr "sokewa" -#: src/app/main/ui/onboarding/questions.cljs:176 -msgid "labels.canva" -msgstr "Canva" - -#: src/app/main/ui/dashboard/projects.cljs:93, src/app/main/ui/export.cljs:478, src/app/main/ui/settings/access_tokens.cljs:183, src/app/main/ui/viewer/login.cljs:77, src/app/main/ui/viewer/share_link.cljs:174, src/app/main/ui/workspace/libraries.cljs:522 msgid "labels.close" msgstr "rufewa" -#: src/app/main/ui/dashboard/comments.cljs:104, src/app/main/ui/viewer/comments.cljs:70, src/app/main/ui/workspace/comments.cljs:126 +#: src/app/main/ui/dashboard/comments.cljs msgid "labels.comments" msgstr "yabo" -#: src/app/main/ui/dashboard/sidebar.cljs:985, src/app/main/ui/workspace/main_menu.cljs:110 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.community" msgstr "matattara" -#: src/app/main/ui/settings/password.cljs:103 +#: src/app/main/ui/settings/password.cljs msgid "labels.confirm-password" msgstr "tabbatar da lambar tsaro" -#: src/app/main/ui/dashboard/import.cljs:520, src/app/main/ui/export.cljs:465, src/app/main/ui/onboarding/newsletter.cljs:101 msgid "labels.continue" msgstr "ci gaba" -#, unused msgid "labels.continue-with" msgstr "ci gaba da" -#: src/app/main/ui/viewer/login.cljs:75 msgid "labels.continue-with-penpot" msgstr "za ka iya ci gaba a idanka na fenfot" -#: src/app/main/ui/dashboard/team.cljs:642 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.copy-invitation-link" msgstr "kwafar hanya" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:157, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:190 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "labels.create" msgstr "yi" -#: src/app/main/ui/dashboard/team_form.cljs:101, src/app/main/ui/dashboard/team_form.cljs:121 +#: src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/dashboard/team_form.cljs msgid "labels.create-team" msgstr "yi sabuwar tawaga" -#: src/app/main/ui/dashboard/team_form.cljs:113 +#: src/app/main/ui/dashboard/team_form.cljs msgid "labels.create-team.placeholder" msgstr "shigar da sabon sunan tawaga" -#, unused msgid "labels.custom-fonts" msgstr "kwalliya da fenfot" -#: src/app/main/ui/settings/sidebar.cljs:73 +#: src/app/main/ui/settings/sidebar.cljs msgid "labels.dashboard" msgstr "dashbod" -#: src/app/main/ui/dashboard/file_menu.cljs:306, src/app/main/ui/dashboard/fonts.cljs:255, src/app/main/ui/dashboard/fonts.cljs:332, src/app/main/ui/dashboard/fonts.cljs:346, src/app/main/ui/dashboard/project_menu.cljs:115, src/app/main/ui/dashboard/team.cljs:904, src/app/main/ui/settings/access_tokens.cljs:209, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:209 +#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "labels.delete" msgstr "goge" -#: src/app/main/ui/comments.cljs:357 +#: src/app/main/ui/comments.cljs msgid "labels.delete-comment" msgstr "goge yabo" -#: src/app/main/ui/comments.cljs:354 +#: src/app/main/ui/comments.cljs msgid "labels.delete-comment-thread" msgstr "goge rubutu" -#: src/app/main/ui/dashboard/team.cljs:648 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.delete-invitation" msgstr "goge gayyata" -#: src/app/main/ui/dashboard/file_menu.cljs:262 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.delete-multi-files" msgstr "goge %s kundaye" -#: src/app/main/ui/onboarding/questions.cljs:250 -msgid "labels.developer" -msgstr "ma su qirqira" - -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:199 msgid "labels.discard" msgstr "vatar" -#: src/app/main/ui/dashboard/file_menu.cljs:28, src/app/main/ui/dashboard/files.cljs:72, src/app/main/ui/dashboard/files.cljs:156, src/app/main/ui/dashboard/projects.cljs:220, src/app/main/ui/dashboard/projects.cljs:224, src/app/main/ui/dashboard/sidebar.cljs:791 +#: src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/files.cljs, src/app/main/ui/dashboard/files.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "labels.drafts" msgstr "adana" -#: src/app/main/ui/comments.cljs:350, src/app/main/ui/dashboard/fonts.cljs:252, src/app/main/ui/dashboard/team.cljs:902, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:205 +#: src/app/main/ui/comments.cljs msgid "labels.edit" msgstr "gyara" -#, unused msgid "labels.edit-file" msgstr "gyara kundi" -#: src/app/main/ui/dashboard/team.cljs:118, src/app/main/ui/dashboard/team.cljs:279, src/app/main/ui/dashboard/team.cljs:520, src/app/main/ui/dashboard/team.cljs:553, src/app/main/ui/onboarding/team_choice.cljs:66 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs msgid "labels.editor" msgstr "maigyara" -#: src/app/main/ui/dashboard/team.cljs:661 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.expired-invitation" msgstr "daina aiki" -#: src/app/main/ui/export.cljs:173 msgid "labels.export" msgstr "fitarwa" -#: src/app/main/ui/settings/feedback.cljs:51 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.feedback-disabled" msgstr "kasa samun bayani" -#: src/app/main/ui/settings/feedback.cljs:42 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.feedback-sent" msgstr "aika bayani" -#: src/app/main/ui/onboarding/questions.cljs:170 -msgid "labels.figma" -msgstr "Figma" - -#: src/app/main/ui/dashboard/fonts.cljs:412 msgid "labels.font-family" msgstr "ire-iren font" -#, unused msgid "labels.font-providers" msgstr "ma su fenfot" -#: src/app/main/ui/dashboard/fonts.cljs:413 msgid "labels.font-variants" msgstr "salo" -#: src/app/main/ui/dashboard/fonts.cljs:52, src/app/main/ui/dashboard/sidebar.cljs:811 msgid "labels.fonts" msgstr "Font" -#: src/app/main/ui/onboarding/questions.cljs:263 -msgid "labels.founder" -msgstr "mawallafi/VP" - -#: src/app/main/ui/onboarding/questions.cljs:262 -msgid "labels.freelancer" -msgstr "ni mai zaman kansa ne" - -#: src/app/main/ui/dashboard/sidebar.cljs:1015, src/app/main/ui/workspace/main_menu.cljs:142 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.github-repo" msgstr "taskar rubuce-rubuce" -#: src/app/main/ui/dashboard/sidebar.cljs:1032, src/app/main/ui/settings/sidebar.cljs:113, src/app/main/ui/workspace/main_menu.cljs:171 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.give-feedback" msgstr "bada bayani" -#: src/app/main/ui/auth/recovery_request.cljs:110, src/app/main/ui/auth/register.cljs:285, src/app/main/ui/viewer/login.cljs:117 msgid "labels.go-back" msgstr "koma baya" -#: src/app/main/ui/dashboard/sidebar.cljs:978, src/app/main/ui/workspace/main_menu.cljs:102 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.help-center" msgstr "sashen taimako" -#: src/app/main/ui/viewer/comments.cljs:103, src/app/main/ui/workspace/comments.cljs:67 +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs msgid "labels.hide-resolved-comments" msgstr "voye saqon da aka buxa" -#: src/app/main/ui/dashboard/team.cljs:969 msgid "labels.inactive" msgstr "maras amfani" -#: src/app/main/ui/dashboard/fonts.cljs:410 msgid "labels.installed-fonts" msgstr "sanya fenfot" -#: src/app/main/ui/static.cljs:144 +#: src/app/main/ui/static.cljs msgid "labels.internal-error.desc-message" msgstr "" "an sami matsala. sake gwadawa idan matsalar ba ta kauce ba, tuntubi sashen " "taimako." -#: src/app/main/ui/static.cljs:143 +#: src/app/main/ui/static.cljs msgid "labels.internal-error.main-message" msgstr "kuskuren ciki" -#: src/app/main/ui/onboarding/questions.cljs:178 -msgid "labels.invision" -msgstr "teburin aiki" - -#: src/app/main/ui/dashboard/sidebar.cljs:516, src/app/main/ui/dashboard/team.cljs:89, src/app/main/ui/dashboard/team.cljs:97, src/app/main/ui/dashboard/team.cljs:708 +#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.invitations" msgstr "gayyata" -#: src/app/main/ui/settings/options.cljs:51 +#: src/app/main/ui/settings/options.cljs msgid "labels.language" msgstr "harshe" -#: src/app/main/ui/dashboard/sidebar.cljs:1008, src/app/main/ui/workspace/main_menu.cljs:134 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.libraries-and-templates" msgstr "taskoki & allunan talla" -#: src/app/main/ui/viewer/header.cljs:203 msgid "labels.log-or-sign" msgstr "yi ko shiga" -#: src/app/main/ui/dashboard/sidebar.cljs:1040 +#: src/app/main/ui/settings.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.logout" msgstr "fita" -#: src/app/main/ui/onboarding/questions.cljs:253 -msgid "labels.marketing" -msgstr "kasuwanci" - -#: src/app/main/ui/dashboard/team.cljs:468 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.member" msgstr "mamba" -#: src/app/main/ui/dashboard/sidebar.cljs:510, src/app/main/ui/dashboard/team.cljs:87, src/app/main/ui/dashboard/team.cljs:95 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.members" msgstr "mambobi" -#: src/app/main/ui/settings/password.cljs:96 +#: src/app/main/ui/settings/password.cljs msgid "labels.new-password" msgstr "sabuwar lambar tsaro" -#: src/app/main/ui/dashboard/templates.cljs:269, src/app/main/ui/onboarding/questions.cljs:55 -msgid "labels.next" -msgstr "na gaba" - -#: src/app/main/ui/dashboard/comments.cljs:128, src/app/main/ui/workspace/comments.cljs:161 +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/dashboard/comments.cljs msgid "labels.no-comments-available" msgstr "an dakatar da kai duka! Alamar sabon sharhi za ta fito nan." -#: src/app/main/ui/dashboard/team.cljs:694 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.no-invitations" msgstr "ba saqon da ba a buxa ba." -#: src/app/main/ui/dashboard/team.cljs:696 +#: src/app/main/ui/dashboard/team.cljs #, markdown msgid "labels.no-invitations-hint" msgstr "danna **gayyato mutane** wurin da ake nemo mutane a wannan tawaga." -#: src/app/main/ui/static.cljs:50 +#: src/app/main/ui/static.cljs msgid "labels.not-found.desc-message" msgstr "babu wannan fagen, ko ba ka da izinin shiga." -#: src/app/main/ui/static.cljs:49 +#: src/app/main/ui/static.cljs msgid "labels.not-found.main-message" msgstr "alama!" -#: src/app/main/ui/dashboard/projects.cljs:239, src/app/main/ui/dashboard/team.cljs:1095 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.num-of-files" msgid_plural "labels.num-of-files" msgstr[0] "kundi 1" msgstr[1] "kundaye %s" -#: src/app/main/ui/viewer/thumbnails.cljs:80 msgid "labels.num-of-frames" msgid_plural "labels.num-of-frames" msgstr[0] "allo 1" msgstr[1] "alluna %s" -#: src/app/main/ui/dashboard/team.cljs:1090 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.num-of-projects" msgid_plural "labels.num-of-projects" msgstr[0] "aiki" msgstr[1] "aiyuka %s" -#: src/app/main/ui/settings/password.cljs:89 +#: src/app/main/ui/settings/password.cljs msgid "labels.old-password" msgstr "tsohuwar lambar tsaro" #: src/app/main/ui/workspace/comments.cljs -#, unused msgid "labels.only-yours" msgstr "naka kawai" -#, unused msgid "labels.or" msgstr "ko" -#: src/app/main/ui/onboarding/questions.cljs:145, src/app/main/ui/onboarding/questions.cljs:214, src/app/main/ui/onboarding/questions.cljs:303, src/app/main/ui/onboarding/questions.cljs:316, src/app/main/ui/onboarding/questions.cljs:389, src/app/main/ui/onboarding/questions.cljs:447 -msgid "labels.other" -msgstr "idan akwai qari (bayyana)" - -#: src/app/main/ui/dashboard/team.cljs:286, src/app/main/ui/dashboard/team.cljs:518, src/app/main/ui/dashboard/team.cljs:1076 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs msgid "labels.owner" msgstr "mai" -#: src/app/main/ui/settings/sidebar.cljs:87 +#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.password" msgstr "lambar tsaro" -#: src/app/main/ui/dashboard/team.cljs:662 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.pending-invitation" msgstr "tukuna" -#: src/app/main/ui/onboarding/questions.cljs:51 -msgid "labels.previous" -msgstr "can baya" - -#: src/app/main/ui/onboarding/questions.cljs:254 -msgid "labels.product-management" -msgstr "shugaban aiki" - -#: src/app/main/ui/settings/profile.cljs:118, src/app/main/ui/settings/sidebar.cljs:82 +#: src/app/main/ui/settings/sidebar.cljs msgid "labels.profile" msgstr "kundi" -#: src/app/main/ui/dashboard/sidebar.cljs:784 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.projects" msgstr "aiyuka" -#: src/app/main/ui/dashboard/sidebar.cljs:998, src/app/main/ui/settings/sidebar.cljs:106, src/app/main/ui/workspace/main_menu.cljs:126 +#: src/app/main/ui/settings/sidebar.cljs msgid "labels.release-notes" msgstr "bayar da bayani" #: src/app/main/ui/workspace.cljs -#, unused msgid "labels.reload-file" msgstr "qara dora kundi" #: src/app/main/ui/workspace/libraries.cljs, src/app/main/ui/dashboard/team.cljs -#, unused msgid "labels.remove" msgstr "cire" -#: src/app/main/ui/dashboard/team.cljs:316 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.remove-member" msgstr "cire mamba" -#: src/app/main/ui/dashboard/file_menu.cljs:271, src/app/main/ui/dashboard/project_menu.cljs:85, src/app/main/ui/dashboard/sidebar.cljs:539, src/app/main/ui/workspace/sidebar/assets/groups.cljs:157 +#: src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "labels.rename" msgstr "sake suna" -#: src/app/main/ui/dashboard/team_form.cljs:99 +#: src/app/main/ui/dashboard/team_form.cljs msgid "labels.rename-team" msgstr "sake suna tawaga" -#: src/app/main/ui/dashboard/team.cljs:645 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.resend-invitation" msgstr "sake aika saqon gayyata" -#: src/app/main/ui/static.cljs:61, src/app/main/ui/static.cljs:70, src/app/main/ui/static.cljs:148 +#: src/app/main/ui/static.cljs, src/app/main/ui/static.cljs, src/app/main/ui/static.cljs msgid "labels.retry" msgstr "sake gwadawa" -#: src/app/main/ui/dashboard/team.cljs:469, src/app/main/ui/dashboard/team.cljs:709 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.role" msgstr "matsayi" -#: src/app/main/ui/dashboard/fonts.cljs:380, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:191 msgid "labels.save" msgstr "ajiye" -#: src/app/main/ui/dashboard/fonts.cljs:415 msgid "labels.search-font" msgstr "neman font" -#: src/app/main/ui/onboarding/questions.cljs:90, src/app/main/ui/onboarding/questions.cljs:248, src/app/main/ui/onboarding/questions.cljs:259, src/app/main/ui/onboarding/questions.cljs:270 -msgid "labels.select-option" -msgstr "dauki wanda kake so" - -#: src/app/main/ui/settings/feedback.cljs:82 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.send" msgstr "aika" -#: src/app/main/ui/settings/feedback.cljs:82 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.sending" msgstr "aikawa…" -#: src/app/main/ui/static.cljs:68 +#: src/app/main/ui/static.cljs msgid "labels.service-unavailable.desc-message" msgstr "mu na cikin kula a tsarinka." -#: src/app/main/ui/static.cljs:67 +#: src/app/main/ui/static.cljs msgid "labels.service-unavailable.main-message" msgstr "ba sabis" -#: src/app/main/ui/dashboard/sidebar.cljs:530, src/app/main/ui/dashboard/team.cljs:88, src/app/main/ui/dashboard/team.cljs:102, src/app/main/ui/settings/options.cljs:84, src/app/main/ui/settings/sidebar.cljs:93 +#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.settings" msgstr "gyara" -#, unused msgid "labels.share-prototype" msgstr "tura manhajar rubutu" -#: src/app/main/ui/dashboard/sidebar.cljs:800 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.shared-libraries" msgstr "taskoki" -#: src/app/main/ui/viewer/comments.cljs:82, src/app/main/ui/workspace/comments.cljs:55, src/app/main/ui/workspace/comments.cljs:135 +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs msgid "labels.show-all-comments" msgstr "fito da yabo" -#: src/app/main/ui/viewer/comments.cljs:115 msgid "labels.show-comments-list" msgstr "jerin ire-iren yabo" -#: src/app/main/ui/viewer/comments.cljs:91, src/app/main/ui/workspace/comments.cljs:61, src/app/main/ui/workspace/comments.cljs:136 +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs msgid "labels.show-your-comments" msgstr "bayyana na ka ra’ayin" -#: src/app/main/ui/onboarding/questions.cljs:172 -msgid "labels.sketch" -msgstr "zana" - -#: src/app/main/ui/onboarding/questions.cljs:56 -msgid "labels.start" -msgstr "fara" - -#: src/app/main/ui/dashboard/team.cljs:710 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.status" msgstr "daraja" -#: src/app/main/ui/onboarding/questions.cljs:251 -msgid "labels.student-teacher" -msgstr "malami ko dalibi" - -#: src/app/main/ui/dashboard/sidebar.cljs:992, src/app/main/ui/workspace/main_menu.cljs:118 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.tutorials" msgstr "koyarwa" -#: src/app/main/ui/dashboard/file_menu.cljs:256 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.unpublish-multi-files" msgstr "kundayen da ba a wallafa ba %s" -#: src/app/main/ui/settings/profile.cljs:103 +#: src/app/main/ui/settings/profile.cljs msgid "labels.update" msgstr "sabunta" -#: src/app/main/ui/dashboard/team_form.cljs:120 +#: src/app/main/ui/dashboard/team_form.cljs msgid "labels.update-team" msgstr "sabunta tawaga" -#: src/app/main/ui/dashboard/fonts.cljs:241 msgid "labels.upload" msgstr "xorawa" -#: src/app/main/ui/dashboard/fonts.cljs:169 msgid "labels.upload-custom-fonts" msgstr "Upload custom fonts" -#: src/app/main/ui/dashboard/fonts.cljs:240 msgid "labels.uploading" msgstr "ana dorawa…" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs:223 msgid "labels.view-only" msgstr "gani kaxai" -#: src/app/main/ui/dashboard/team.cljs:123, src/app/main/ui/dashboard/team.cljs:282, src/app/main/ui/dashboard/team.cljs:521 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.viewer" msgstr "ma su kallo" -#: src/app/main/ui/dashboard/sidebar.cljs:523, src/app/main/ui/dashboard/team.cljs:90, src/app/main/ui/dashboard/team.cljs:100, src/app/main/ui/dashboard/team.cljs:880 msgid "labels.webhooks" msgstr "Webhooks" -#: src/app/main/ui/comments.cljs:194 +#: src/app/main/ui/comments.cljs msgid "labels.write-new-comment" msgstr "rubuta s abon yabo" -#: src/app/main/ui/dashboard/team.cljs:237 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.you" msgstr "(kai)" -#: src/app/main/ui/dashboard/sidebar.cljs:968 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.your-account" msgstr "fagenka" -#: src/app/main/data/media.cljs:49, src/app/main/data/workspace/media.cljs:223, src/app/main/data/workspace/media.cljs:453 +#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs msgid "media.loading" msgstr "xora hoto …" -#: src/app/main/data/common.cljs:111 msgid "modals.add-shared-confirm-empty.hint" msgstr "" "xakin ba komai. wurin ajiyar tawaga, turken da ka yi za ya yi aiki a sauran " "kundaye. ka tabbata kai ne ka ke son wallafa shi?" -#: src/app/main/data/common.cljs:113 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.add-shared-confirm.accept" msgstr "qara yin wurin ajiyar tawaga" -#: src/app/main/data/common.cljs:111 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.add-shared-confirm.hint" msgstr "" "idan ka aje a wurin ajiyar tawaga, turken kundin xakin ajiyar za ya kasance " "za a iya amfani da shi a sauran kundaye." -#: src/app/main/data/common.cljs:110 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.add-shared-confirm.message" msgstr "qara “%s” xakin ajiya" -#: src/app/main/ui/workspace/nudge.cljs:60 +#: src/app/main/ui/workspace/nudge.cljs msgid "modals.big-nudge" msgstr "jan hankali" -#: src/app/main/ui/settings/change_email.cljs:127 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.confirm-email" msgstr "tantance sabon imel" -#: src/app/main/ui/settings/change_email.cljs:114 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.info" msgstr "" "za mu aika maka da imel ta wannan imel xin “%s” domin tantance " "shaidarka." -#: src/app/main/ui/settings/change_email.cljs:119 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.new-email" msgstr "sabon imel" -#: src/app/main/ui/settings/change_email.cljs:136 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.submit" msgstr "sake imel" -#: src/app/main/ui/settings/change_email.cljs:107 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.title" msgstr "sake imel xinka" -#: src/app/main/ui/settings/access_tokens.cljs:165, src/app/main/ui/settings/access_tokens.cljs:171 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.create-access-token.copy-token" msgstr "kwafar kyauta" -#: src/app/main/ui/settings/access_tokens.cljs:142 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.create-access-token.expiration-date.label" msgstr "lokacin daina aiki" -#: src/app/main/ui/settings/access_tokens.cljs:136 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.create-access-token.name.label" msgstr "suna" -#: src/app/main/ui/settings/access_tokens.cljs:138 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.create-access-token.name.placeholder" msgstr "sunan zai iya taimakawa wajen sanin menene alama" -#: src/app/main/ui/settings/access_tokens.cljs:191 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.create-access-token.submit-label" msgstr "yi sabuwar alama" -#: src/app/main/ui/settings/access_tokens.cljs:123 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.create-access-token.title" msgstr "samar da alamar shiga" -#: src/app/main/ui/dashboard/team.cljs:873 msgid "modals.create-webhook.submit-label" msgstr "qirqirar webhook" -#: src/app/main/ui/dashboard/team.cljs:838 msgid "modals.create-webhook.title" msgstr "qirqirar webhook" -#: src/app/main/ui/dashboard/team.cljs:849 msgid "modals.create-webhook.url.label" msgstr "farashin URL" -#: src/app/main/ui/dashboard/team.cljs:850 msgid "modals.create-webhook.url.placeholder" msgstr "https://misali.com/postreceive" -#: src/app/main/ui/settings/access_tokens.cljs:271 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.delete-acces-token.accept" msgstr "goge alama" -#: src/app/main/ui/settings/access_tokens.cljs:270 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.delete-acces-token.message" msgstr "ka tabbata kana son goge wannan alamar?" -#: src/app/main/ui/settings/access_tokens.cljs:269 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.delete-acces-token.title" msgstr "goge alama" -#: src/app/main/ui/settings/delete_account.cljs:59 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.cancel" msgstr "ajiye asusu da soke shi" -#: src/app/main/ui/settings/delete_account.cljs:64 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.confirm" msgstr "haka, goge asusu" -#: src/app/main/ui/settings/delete_account.cljs:53 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.info" msgstr "idan ka cire asusunka za ka iya rasa aikin da ka kammala." -#: src/app/main/ui/settings/delete_account.cljs:46 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.title" msgstr "ka tabbata ka na son goge asusunka?" -#: src/app/main/ui/comments.cljs:298 +#: src/app/main/ui/comments.cljs msgid "modals.delete-comment-thread.accept" msgstr "goge fira" -#: src/app/main/ui/comments.cljs:297 +#: src/app/main/ui/comments.cljs msgid "modals.delete-comment-thread.message" msgstr "ka tabbata ka na son goge fira? duk sharhi a nan za a goge matsaloli." -#: src/app/main/ui/comments.cljs:296 +#: src/app/main/ui/comments.cljs msgid "modals.delete-comment-thread.title" msgstr "goge tattaunawa" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:140 msgid "modals.delete-component-annotation.message" msgstr "ka tabbata kana son goge wannan bayanin?" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:139 msgid "modals.delete-component-annotation.title" msgstr "goge bayani" -#: src/app/main/ui/dashboard/file_menu.cljs:123 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-confirm.accept" msgstr "goge kundi" -#: src/app/main/ui/dashboard/file_menu.cljs:122 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-confirm.message" msgstr "ka tabbata kana son goge wannan kundin?" -#: src/app/main/ui/dashboard/file_menu.cljs:121 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-confirm.title" msgstr "goge kundi" -#: src/app/main/ui/dashboard/file_menu.cljs:117 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-multi-confirm.accept" msgstr "goge kundaye" -#: src/app/main/ui/dashboard/file_menu.cljs:116 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-multi-confirm.message" msgstr "ka tabbata kana son goge %s kundaye?" -#: src/app/main/ui/dashboard/file_menu.cljs:115 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-multi-confirm.title" msgstr "gogewa %s kundaye" -#: src/app/main/ui/dashboard/fonts.cljs:345 msgid "modals.delete-font-variant.message" msgstr "" "ka tabbata kana son goge wannan salon font din? ba zai xoru ba idan an yi " "amfani da shi a kundi." -#: src/app/main/ui/dashboard/fonts.cljs:344 msgid "modals.delete-font-variant.title" msgstr "goge salon font" -#: src/app/main/ui/dashboard/fonts.cljs:331 msgid "modals.delete-font.message" msgstr "" "ka tabbata kana son goge wannan font xin ? ba zai yi aiki ba idan an yi " "amfani da shi a kundi." -#: src/app/main/ui/dashboard/fonts.cljs:330 msgid "modals.delete-font.title" msgstr "goge font" -#: src/app/main/ui/workspace/context_menu.cljs:522, src/app/main/ui/workspace/sidebar/sitemap.cljs:45 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs msgid "modals.delete-page.body" msgstr "ka tabbata kana son goge wannan shafin?" -#: src/app/main/ui/workspace/context_menu.cljs:521, src/app/main/ui/workspace/sidebar/sitemap.cljs:44 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs msgid "modals.delete-page.title" msgstr "goge shafi" -#: src/app/main/ui/dashboard/project_menu.cljs:69 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "modals.delete-project-confirm.accept" msgstr "goge aiki" -#: src/app/main/ui/dashboard/project_menu.cljs:68 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "modals.delete-project-confirm.message" msgstr "ka tabbata kana son goge wannan aikin?" -#: src/app/main/ui/dashboard/project_menu.cljs:67 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "modals.delete-project-confirm.title" msgstr "goge aikin" -#: src/app/main/ui/delete_shared.cljs:51 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.accept" msgid_plural "modals.delete-shared-confirm.accept" msgstr[0] "goge kundi" msgstr[1] "goge kundaye" -#: src/app/main/ui/delete_shared.cljs:55 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.activated.no-files-message" msgid_plural "modals.delete-shared-confirm.activated.no-files-message" msgstr[0] "ba zai yi aiki a kowane kundi ba." msgstr[1] "ba za su yi aiki a kowane kundi ba." -#: src/app/main/ui/delete_shared.cljs:57 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.activated.scd-message" msgid_plural "modals.delete-shared-confirm.activated.scd-message" msgstr[0] "za a iya buxe wannan taskirar a nan: " msgstr[1] "za a iya buxe taskirorin nan a nan: " -#: src/app/main/ui/delete_shared.cljs:46 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.message" msgid_plural "modals.delete-shared-confirm.message" msgstr[0] "ka tabbata kana son goge wannan kundin?" msgstr[1] "ka tabbata kana son goge waxannan kundayen?" -#: src/app/main/ui/delete_shared.cljs:41 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.title" msgid_plural "modals.delete-shared-confirm.title" msgstr[0] "goge kundi" msgstr[1] "goge kundaye" -#: src/app/main/ui/dashboard/sidebar.cljs:435 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.delete-team-confirm.accept" msgstr "goge tawaga" -#: src/app/main/ui/dashboard/sidebar.cljs:434 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.delete-team-confirm.message" msgstr "" "ka tabbata kana son goge wannan tawagar? Duk aiyukanka na kundayen da suka " "danganci tawagar za su yi gogewar dindindin." -#: src/app/main/ui/dashboard/sidebar.cljs:433 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.delete-team-confirm.title" msgstr "gogewar tawaga" -#: src/app/main/ui/dashboard/team.cljs:427 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.delete-team-member-confirm.accept" msgstr "goge memba" -#: src/app/main/ui/dashboard/team.cljs:426 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.delete-team-member-confirm.message" msgstr "ka tabbata kana son cire wannan memban a wannan tawaar?" -#: src/app/main/ui/dashboard/team.cljs:425 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.delete-team-member-confirm.title" msgstr "cire memban tawaga" -#: src/app/main/ui/delete_shared.cljs:59 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-unpublish-shared-confirm.activated.hint" msgid_plural "modals.delete-unpublish-shared-confirm.activated.hint" msgstr[0] "" @@ -2124,3205 +1889,2892 @@ msgstr[1] "" "duk aikin da aka yi a waxancan kundayen, can za a same su (ba zane da za " "iya tsinkawa)." -#: src/app/main/ui/dashboard/team.cljs:942 msgid "modals.delete-webhook.accept" msgstr "goge webhook" -#: src/app/main/ui/dashboard/team.cljs:941 msgid "modals.delete-webhook.message" msgstr "ka tabbata ka na son goge webhook?" -#: src/app/main/ui/dashboard/team.cljs:940 msgid "modals.delete-webhook.title" msgstr "gogewa webhook" -#: src/app/main/ui/dashboard/team.cljs:872 msgid "modals.edit-webhook.submit-label" msgstr "gyara webhook" -#: src/app/main/ui/dashboard/team.cljs:837 msgid "modals.edit-webhook.title" msgstr "gyara webhook" -#: src/app/main/ui/dashboard/team.cljs:218 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.invite-member-confirm.accept" msgstr "aika saqon" -#: src/app/main/ui/dashboard/team.cljs:213, src/app/main/ui/onboarding/team_choice.cljs:156 msgid "modals.invite-member.emails" msgstr "imel, rabawar waqafi" -#: src/app/main/ui/dashboard/team.cljs:197 msgid "modals.invite-member.repeated-invitation" msgstr "" "waxansu imel daga membobin qungiyar na yanzu. ba za a aikawa da gayyatarsu " "ba ." -#: src/app/main/ui/dashboard/team.cljs:190 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.invite-team-member.title" msgstr "gayyato membobi zuwa ga tawaga" -#: src/app/main/ui/dashboard/sidebar.cljs:423, src/app/main/ui/dashboard/team.cljs:393 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-close-confirm.hint" msgstr "" "ka tabbata memban tawaga kaxai, za ya iya goge tawaga tare da aikinta da " "kundaye." -#: src/app/main/ui/dashboard/sidebar.cljs:422, src/app/main/ui/dashboard/team.cljs:392 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-close-confirm.message" msgstr "ka tabbata ka na son fita daga %s tawaga?" -#: src/app/main/ui/dashboard/change_owner.cljs:59 msgid "modals.leave-and-reassign.forbidden" msgstr "" "Webhooks hanyar sanar da manhajoji da addireshi intanet idan wani ya faru a " "Penpot. za a tura maka da saqon talla URLs ka samar da." -#: src/app/main/ui/dashboard/change_owner.cljs:55 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-reassign.hint1" msgstr "" "kai ne mai wannan tawagar. zabi wani memba da za ya iya inganta wa mai shi " "kafin ka fita." -#: src/app/main/ui/dashboard/change_owner.cljs:78 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-reassign.promote-and-leave" msgstr "inganta sannan ka bari" -#: src/app/main/ui/dashboard/change_owner.cljs:34 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-reassign.select-member-to-promote" msgstr "zavi memba domin havakawa" -#: src/app/main/ui/dashboard/change_owner.cljs:49 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-reassign.title" msgstr "kafin ka fita" -#: src/app/main/ui/dashboard/sidebar.cljs:402, src/app/main/ui/dashboard/sidebar.cljs:424, src/app/main/ui/dashboard/team.cljs:394, src/app/main/ui/dashboard/team.cljs:416 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-confirm.accept" msgstr "barin tawaga" -#: src/app/main/ui/dashboard/sidebar.cljs:401, src/app/main/ui/dashboard/team.cljs:415 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-confirm.message" msgstr "ka tabbata ka na son barin wannan tawagar?" -#: src/app/main/ui/dashboard/sidebar.cljs:400, src/app/main/ui/dashboard/sidebar.cljs:421, src/app/main/ui/dashboard/team.cljs:391, src/app/main/ui/dashboard/team.cljs:414 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-confirm.title" msgstr "barin tawaga" -#: src/app/main/ui/workspace/main_menu.cljs:266, src/app/main/ui/workspace/nudge.cljs:47 +#: src/app/main/ui/workspace/nudge.cljs msgid "modals.nudge-title" msgstr "adadin jan hankali" -#: src/app/main/ui/dashboard/team.cljs:340 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.accept" msgstr "canza wurin mallaka" -#: src/app/main/ui/dashboard/team.cljs:339 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.hint" msgstr "" "idan ka canza wurin mallaka, ba za ka iya sauya matsayin shugaba ba, " "gazawar wasu dokokin wannan tawaagar. " -#: src/app/main/ui/dashboard/team.cljs:338 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.message" msgstr "kai ke da wannan tawagar yanzu. ka tabbata kana son yin %s sabon mai tawaga?" -#: src/app/main/ui/dashboard/team.cljs:337 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.title" msgstr "mallakar tawaga" -#: src/app/main/ui/workspace/libraries.cljs:188 msgid "modals.publish-empty-library.accept" msgstr "wallafa" -#: src/app/main/ui/workspace/libraries.cljs:187 msgid "modals.publish-empty-library.message" msgstr "ba komai a taskarka. ka na son wallafa ta?" -#: src/app/main/ui/workspace/libraries.cljs:186 msgid "modals.publish-empty-library.title" msgstr "wallafa taska maras komai" #: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused msgid "modals.remove-shared-confirm.accept" msgstr "cire taskar shiye-shirye" #: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused msgid "modals.remove-shared-confirm.hint" msgstr "" "idan ba ka cire taskar shirye-shirye ba, kundin taskar na wannan kundin zai " "tsaya kasancewar za ka iya amfani da shi a cikin kundayenka." #: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused msgid "modals.remove-shared-confirm.message" msgstr "cire “%s” a taskar shirye-shirye" -#: src/app/main/ui/workspace/nudge.cljs:53 +#: src/app/main/ui/workspace/nudge.cljs msgid "modals.small-nudge" msgstr "qaramin jan hankali" -#: src/app/main/ui/delete_shared.cljs:52 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.unpublish-shared-confirm.accept" msgid_plural "modals.unpublish-shared-confirm.accept" msgstr[0] "maras wallafa" msgstr[1] "maras wallafa" -#: src/app/main/ui/delete_shared.cljs:47 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.unpublish-shared-confirm.message" msgid_plural "modals.unpublish-shared-confirm.message" msgstr[0] "ka tabbata ka na son rufe taskar nan?" msgstr[1] "ka tabbata ka na son rufe taskokin nan?" -#: src/app/main/ui/delete_shared.cljs:42 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.unpublish-shared-confirm.title" msgid_plural "modals.unpublish-shared-confirm.title" msgstr[0] "rufe taska" msgstr[1] "rufe taskoki" #: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs -#, unused msgid "modals.update-remote-component-in-bulk.hint" msgstr "" "ka kusa sabunta taskar ajiyar shir-shirye. zai iya shafar sauran kundayen " "da ke amfani da ita." -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:380 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.accept" msgstr "sabunta" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:379 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.cancel" msgstr "soke" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:378 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.hint" msgstr "" "ka kusa sabunta sashe a babbar taska. wannan za ya iya aiki a sauran " "kundayen da ke amfani da ita." -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:377 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.message" msgstr "sabunta sashe a babbar taska" -#: src/app/main/data/common.cljs:71 +#: src/app/main/data/common.cljs msgid "notifications.by-code.upgrade-version" msgstr "akwai sabon yayi, fatan za a sabunta fage" -#: src/app/main/ui/dashboard/team.cljs:154, src/app/main/ui/dashboard/team.cljs:595 +#: src/app/main/ui/dashboard/team.cljs msgid "notifications.invitation-email-sent" msgstr "an aika da saqon" -#: src/app/main/ui/dashboard/team.cljs:616 +#: src/app/main/ui/dashboard/team.cljs msgid "notifications.invitation-link-copied" msgstr "kwafar hanyar gayya" -#: src/app/main/ui/settings/delete_account.cljs:24 +#: src/app/main/ui/settings/delete_account.cljs msgid "notifications.profile-deletion-not-allowed" msgstr "ba za ka iya goge kundin ba. ka jira umarnin tawaga ka fin ka ci gaba." -#: src/app/main/ui/settings/options.cljs:29, src/app/main/ui/settings/profile.cljs:35 +#: src/app/main/ui/settings/profile.cljs, src/app/main/ui/settings/options.cljs msgid "notifications.profile-saved" msgstr "an ajiye bayanai!" -#: src/app/main/ui/settings/change_email.cljs:63 +#: src/app/main/ui/settings/change_email.cljs msgid "notifications.validation-email-sent" msgstr "an aika da imel din tantancewa %s. bincika imel xinka!" -#, unused msgid "onboarding-v2.before-start.desc1" msgstr "" "ya kamata kasan akwai kayayyaki da yawa da za su iya taimaka maka ka sami " "damar fara aiki da fenfot, kamar jagoran mai amfani tasharmu ta youtub." -#, unused msgid "onboarding-v2.before-start.desc2" msgstr "" "cikakken bayanin yadda za a yi amfani da fenfot. daga rubutu zuwa tsara ko " "rarraba iri." -#, unused msgid "onboarding-v2.before-start.desc2.title" msgstr "xanjagora" -#, unused msgid "onboarding-v2.before-start.desc3" msgstr "za ka iya kallon koyarwarmu da mutanenmu ke yi." -#, unused msgid "onboarding-v2.before-start.desc3.title" msgstr "koyarwa ta hoto mai motsi" -#, unused msgid "onboarding-v2.before-start.title" msgstr "kafin ka fara" -#: src/app/main/ui/onboarding/newsletter.cljs:63 msgid "onboarding-v2.newsletter.desc" msgstr "" "domin jin daxin fenfot , sai ka biya kuxi domin labarai da ci gaban da ake " "samu." -#: src/app/main/ui/onboarding/newsletter.cljs:83 msgid "onboarding-v2.newsletter.news" msgstr "aiko man da bayanin fenfot (rubutun blog, bidiyon koyarwa, kallo...)." -#: src/app/main/ui/onboarding/newsletter.cljs:91 msgid "onboarding-v2.newsletter.privacy1" msgstr "mu na kula da sirri, a nan za ka karanta na mu " -#: src/app/main/ui/onboarding/newsletter.cljs:97 msgid "onboarding-v2.newsletter.privacy2" msgstr "" "za mu aika maka da imel mai amfani. za ka iya biya a kowane lokaci za ka " "iya ta kowace hanyar biyanmu." -#: src/app/main/ui/onboarding/newsletter.cljs:71 msgid "onboarding-v2.newsletter.updates" msgstr "aiko man da sabbin abubuwan da aka yi (sabbib fasali, fitowa, gyara...)." -#, unused msgid "onboarding-v2.welcome.desc1" msgstr "" "fenfot ne ke yin kelaidos kamar yadda mutane ke yi, mutane na taimakon " "junansu. kowa za ya iya hada hannu da:" -#, unused msgid "onboarding-v2.welcome.desc2" msgstr "" "wurin da kowa zai iya koyo, fahimtar ta juna a kan fenfot, kasancewarta " "manyan tawagar fenfot da sauran mutane." -#, unused msgid "onboarding-v2.welcome.desc2.title" msgstr "hulxa da kai cikin mutane" -#, unused msgid "onboarding-v2.welcome.desc3" msgstr "" "wurin da za ka san yadda za ka hada-hannu da fassara, neman fasali, manyan " "gudunmawa, magance matsala…" -#, unused msgid "onboarding-v2.welcome.desc3.title" msgstr "gudunmawar jagora" -#: src/app/main/ui/onboarding/team_choice.cljs:31 msgid "onboarding-v2.welcome.title" msgstr "barka da zuwa fenfot!" -#: src/app/main/ui/onboarding/team_choice.cljs:215 msgid "onboarding.choice.team-up.create-team-desc" msgstr "bayan ka yi wa tawagarka suna, za ka iya gaiyato mutane ku hadu." -#: src/app/main/ui/onboarding/team_choice.cljs:224 msgid "onboarding.choice.team-up.create-team-placeholder" msgstr "sanya sunan tawaga" -#: src/app/main/ui/dashboard/projects.cljs:89, src/app/main/ui/onboarding/team_choice.cljs:140 msgid "onboarding.choice.team-up.invite-members" msgstr "gayyato mambobi" -#: src/app/main/ui/onboarding/team_choice.cljs:141 msgid "onboarding.choice.team-up.invite-members-info" msgstr "" "ka tuna da kowa. masu qirqira, masu tsarawa, shuwagabanniS... daban-daban " "ya qara :)" -#: src/app/main/ui/dashboard/team.cljs:202, src/app/main/ui/onboarding/team_choice.cljs:146 msgid "onboarding.choice.team-up.roles" msgstr "gayyata tare da bayar da matsayi:" -#, unused msgid "onboarding.newsletter.accept" msgstr "haka, za a biya" -#: src/app/main/ui/onboarding/newsletter.cljs:40 msgid "onboarding.newsletter.acceptance-message" msgstr "" "an aika maka da saqon buqatar biya, za mu aika maka da saqon imel tabbatar " "da shi." -#: src/app/main/ui/onboarding/newsletter.cljs:95 msgid "onboarding.newsletter.policy" msgstr "dokoki." -#: src/app/main/ui/onboarding/newsletter.cljs:60 msgid "onboarding.newsletter.title" msgstr "ka buqatar labaran fenfot?" -#: src/app/main/ui/onboarding/questions.cljs:118 -msgid "onboarding.questions.lets-get-started" -msgstr "za mu fara!" - -#: src/app/main/ui/onboarding/questions.cljs:307 -msgid "onboarding.questions.step3.question2" -msgstr "mi ne ne matsayinka?" - -#: src/app/main/ui/onboarding/questions.cljs:320 -msgid "onboarding.questions.step3.question3" -msgstr "bayyana yawan tawagarka?" - -#: src/app/main/ui/onboarding/questions.cljs:273 -msgid "onboarding.questions.team-size.11-30" -msgstr "11-30" - -#: src/app/main/ui/onboarding/questions.cljs:274 -msgid "onboarding.questions.team-size.2-10" -msgstr "2-10" - -#: src/app/main/ui/onboarding/questions.cljs:272 -msgid "onboarding.questions.team-size.31-50" -msgstr "31-50" - -#: src/app/main/ui/onboarding/questions.cljs:271 -msgid "onboarding.questions.team-size.more-than-50" -msgstr "fiye da 50" - -#: src/app/main/ui/onboarding/questions.cljs:276 -msgid "onboarding.questions.team-size.personal-project" -msgstr "ina aikin kaina" - -#: src/app/main/ui/onboarding/team_choice.cljs:213 msgid "onboarding.team-modal.create-team" msgstr "yin tawaga" -#: src/app/main/ui/onboarding/team_choice.cljs:35 msgid "onboarding.team-modal.create-team-desc" msgstr "" "tawaga na ba ka damar haduwa da masu amfani da fenfot domin yi aiki daya " "akan kundaye." -#: src/app/main/ui/onboarding/team_choice.cljs:40 msgid "onboarding.team-modal.create-team-feature-1" msgstr "aiyuka da kundaye da yawa" -#: src/app/main/ui/onboarding/team_choice.cljs:44 msgid "onboarding.team-modal.create-team-feature-2" msgstr "ma su yin shiri dayawa lokaci xaya" -#: src/app/main/ui/onboarding/team_choice.cljs:48 msgid "onboarding.team-modal.create-team-feature-3" msgstr "aiyukan shugaba" -#: src/app/main/ui/onboarding/team_choice.cljs:52 msgid "onboarding.team-modal.create-team-feature-4" msgstr "Unlimited members" -#: src/app/main/ui/onboarding/team_choice.cljs:56 msgid "onboarding.team-modal.create-team-feature-5" msgstr "100% kyauta!" -#: src/app/main/ui/onboarding/templates.cljs:78 msgid "onboarding.templates.subtitle" msgstr "ga wasu hotunan talla nan." -#: src/app/main/ui/onboarding/templates.cljs:77 msgid "onboarding.templates.title" msgstr "fara tsarawa" -#, unused msgid "onboarding.welcome.alt" msgstr "fenfot" -#: src/app/main/ui/auth/recovery.cljs:99 +#: src/app/main/ui/auth/recovery.cljs msgid "profile.recovery.go-to-login" msgstr "je ka hanyar shiga" -#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:221 +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.team-size.11-30" +msgstr "11-30" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.team-size.2-10" +msgstr "2-10" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.team-size.31-50" +msgstr "31-50" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.adobe-xd" +msgstr "Adobe XD" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.canva" +msgstr "Canva" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.developer" +msgstr "ma su qirqira" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.figma" +msgstr "Figma" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.founder" +msgstr "mawallafi/VP" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.freelancer" +msgstr "ni mai zaman kansa ne" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.invision" +msgstr "teburin aiki" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.lets-get-started" +msgstr "za mu fara!" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.product-management" +msgstr "shugaban aiki" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.marketing" +msgstr "kasuwanci" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.team-size.more-than-50" +msgstr "fiye da 50" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.next" +msgstr "na gaba" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.other" +msgstr "idan akwai qari (bayyana)" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.team-size.personal-project" +msgstr "ina aikin kaina" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.previous" +msgstr "can baya" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.step3.question2" +msgstr "mi ne ne matsayinka?" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.select-option" +msgstr "dauki wanda kake so" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.sketch" +msgstr "zana" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.start" +msgstr "fara" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.student-teacher" +msgstr "malami ko dalibi" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.step3.question3" +msgstr "bayyana yawan tawagarka?" + +#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, msgid "settings.detach" msgstr "cire" -#: src/app/main/ui/viewer/inspect/exports.cljs:147, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:631, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:137, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:148, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:188, src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:158, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:399, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:410, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:430, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:441, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:458, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:472, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:309, src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:183, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:373, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:389, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:245, src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:172 +#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs, src/app/main/ui/workspace/sidebar/options/menus/layer.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs, src/app/main/ui/workspace/sidebar/options/menus/blur.cljs msgid "settings.multiple" msgstr "gauraya" # SECTIONS -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:414 msgid "shortcut-section.basics" msgstr "shikashikai" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:420 msgid "shortcut-section.dashboard" msgstr "allon kallo" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:423 msgid "shortcut-section.viewer" msgstr "Dankallo" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:417 msgid "shortcut-section.workspace" msgstr "fagen aiki" # SUBSECTIONS -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:56 msgid "shortcut-subsection.alignment" msgstr "kwaskwarima" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:57 msgid "shortcut-subsection.edit" msgstr "Tace" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:58 msgid "shortcut-subsection.general-dashboard" msgstr "gamayya" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:59 msgid "shortcut-subsection.general-viewer" msgstr "gamayya" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:60 msgid "shortcut-subsection.main-menu" msgstr "Babbar kumshiya" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:61 msgid "shortcut-subsection.modify-layers" msgstr "gyara shimfida" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:62 msgid "shortcut-subsection.navigation-dashboard" msgstr "shawagi" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:63 msgid "shortcut-subsection.navigation-viewer" msgstr "shawagi" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:64 msgid "shortcut-subsection.navigation-workspace" msgstr "shawagi" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:65 msgid "shortcut-subsection.panels" msgstr "allon sarrarfav naura" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:66 msgid "shortcut-subsection.path-editor" msgstr "Hanya" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:67 msgid "shortcut-subsection.shape" msgstr "Siffa" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:68 msgid "shortcut-subsection.text-editor" msgstr "Rubutu" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:69 msgid "shortcut-subsection.tools" msgstr "Kayan aiki" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:70 msgid "shortcut-subsection.zoom-viewer" msgstr "Zukowa" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:71 msgid "shortcut-subsection.zoom-workspace" msgstr "Zukowa" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:72 msgid "shortcuts.add-comment" msgstr "Bayyana Ra'ayi" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:73 msgid "shortcuts.add-node" msgstr "kara Girma" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:74 msgid "shortcuts.align-bottom" msgstr "tsarin kasa" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:75 msgid "shortcuts.align-center" msgstr "tsarin tsakiya" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:76 msgid "shortcuts.align-hcenter" msgstr "tsarin tsakiya ko ina" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:77 msgid "shortcuts.align-justify" msgstr "Tabbataccan tsari" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:78 msgid "shortcuts.align-left" msgstr "tsarin hagu" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:79 msgid "shortcuts.align-right" msgstr "tsarin dama" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:80 msgid "shortcuts.align-top" msgstr "tsarin sama" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:81 msgid "shortcuts.align-vcenter" msgstr "tsarin tsakiya a tsaye" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:82 msgid "shortcuts.artboard-selection" msgstr "kirkiri allo daga zabi" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:83 msgid "shortcuts.bold" msgstr "fito da shi barobaro" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:84 msgid "shortcuts.bool-difference" msgstr "ma'auni mabanbanci" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:85 msgid "shortcuts.bool-exclude" msgstr "kebentaccan ma'auni" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:86 msgid "shortcuts.bool-intersection" msgstr "ma'aunin abubuwa daban daban" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:87 msgid "shortcuts.bool-union" msgstr "ma'auni hadaka" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:88 msgid "shortcuts.bring-back" msgstr "tura zuwa baya" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:89 msgid "shortcuts.bring-backward" msgstr "komawa baya" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:90 msgid "shortcuts.bring-forward" msgstr "tura gaba" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:91 msgid "shortcuts.bring-front" msgstr "kawo zuwa gaba" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:92 msgid "shortcuts.clear-undo" msgstr "goge sake" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:93 msgid "shortcuts.copy" msgstr "kwafi" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:94 msgid "shortcuts.create-component" msgstr "samar da abubuwa iri- iri" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:95 msgid "shortcuts.create-new-project" msgstr "samar da sabo abu" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:96 msgid "shortcuts.cut" msgstr "cire" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:97 msgid "shortcuts.decrease-zoom" msgstr "fito da shi waje" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:98 msgid "shortcuts.delete" msgstr "goge" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:99 msgid "shortcuts.delete-node" msgstr "fita da ga cikin net wok" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:100 msgid "shortcuts.detach-component" msgstr "rarraba abubuwan da su ke a ware" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:101 msgid "shortcuts.draw-curve" msgstr "Ratse" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:102 msgid "shortcuts.draw-ellipse" msgstr "siffar kwai" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:103 msgid "shortcuts.draw-frame" msgstr "Allo" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:104 msgid "shortcuts.draw-nodes" msgstr "samar da hanya" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:105 msgid "shortcuts.draw-path" msgstr "Hanya" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:106 msgid "shortcuts.draw-rect" msgstr "Ractangula" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:107 msgid "shortcuts.draw-text" msgstr "rubutaccan sako" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:108 msgid "shortcuts.duplicate" msgstr "maimaita" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:109 msgid "shortcuts.escape" msgstr "kubuta" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:110 msgid "shortcuts.export-shapes" msgstr "samar da sabbabbin abubuwa" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:111 msgid "shortcuts.fit-all" msgstr "fitar da abubuwan da zai dace da ko wane abu" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:112 msgid "shortcuts.flip-horizontal" msgstr "kifa shi dai dai" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:113 msgid "shortcuts.flip-vertical" msgstr "kifa ta tsaye" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:114 msgid "shortcuts.font-size-dec" msgstr "rage girman rubutu" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:115 msgid "shortcuts.font-size-inc" msgstr "kara gaban yanayi" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:116 msgid "shortcuts.go-to-drafts" msgstr "ta fi rumbu" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:117 msgid "shortcuts.go-to-libs" msgstr "ta fi zuwa rabbabben ma'ajiya" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:118 msgid "shortcuts.go-to-search" msgstr "gajeran sako" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:119 msgid "shortcuts.group" msgstr "rukuni" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:120 msgid "shortcuts.h-distribute" msgstr "raba ta tsaye" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:121 msgid "shortcuts.hide-ui" msgstr "fito / boye UI" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:122 msgid "shortcuts.increase-zoom" msgstr "zuko ciki" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:123 msgid "shortcuts.insert-image" msgstr "sa hoto" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:124 msgid "shortcuts.italic" msgstr "juya zuwa kwantaccen rubuyu" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:125 msgid "shortcuts.join-nodes" msgstr "hada abubuwan" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:126 msgid "shortcuts.letter-spacing-dec" msgstr "rage filin harafin" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:127 msgid "shortcuts.letter-spacing-inc" msgstr "kara filin harafin" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:128 msgid "shortcuts.line-height-dec" msgstr "rage tsawon layi" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:129 msgid "shortcuts.line-height-inc" msgstr "kara tsawon layi" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:130 msgid "shortcuts.line-through" msgstr "danna layin duk" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:131 msgid "shortcuts.make-corner" msgstr "kirkiri kwana" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:132 msgid "shortcuts.make-curve" msgstr "kirkiri lankwasa" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:133 msgid "shortcuts.mask" msgstr "takunkumi" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:134 msgid "shortcuts.merge-nodes" msgstr "hada da kauri" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:135 msgid "shortcuts.move" msgstr "matsa" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:136 msgid "shortcuts.move-fast-down" msgstr "Matsa kasa da sauri" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:137 msgid "shortcuts.move-fast-left" msgstr "Matsa hagu da sauri" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:138 msgid "shortcuts.move-fast-right" msgstr "matsa dama da sauri" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:139 msgid "shortcuts.move-fast-up" msgstr "Matsa sama da sauri" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:140 msgid "shortcuts.move-nodes" msgstr "matsa a hade" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:141 msgid "shortcuts.move-unit-down" msgstr "Matsa da sashin kasa" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:142 msgid "shortcuts.move-unit-left" msgstr "Matsa da sashin hagu" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:143 msgid "shortcuts.move-unit-right" msgstr "Matsa da sashin dama" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:144 msgid "shortcuts.move-unit-up" msgstr "Matsa da sashin samu" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:145 msgid "shortcuts.next-frame" msgstr "wani tsari" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:516 msgid "shortcuts.not-found" msgstr "babu gajeriyar hanya" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:146 msgid "shortcuts.opacity-0" msgstr "Saita dishi dishi zuwa kashi 100" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:147 msgid "shortcuts.opacity-1" msgstr "saita dishi dishi zuwa kashi 10" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:148 msgid "shortcuts.opacity-2" msgstr "Saita dishi dishi zuwa kashi 20" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:149 msgid "shortcuts.opacity-3" msgstr "Seta dashi dashi zuwa kashi 50" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:150 msgid "shortcuts.opacity-4" msgstr "Saita dishi dishi zuwa kashi 40" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:151 msgid "shortcuts.opacity-5" msgstr "Saita dishi dishi zuwa kashi 50" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:152 msgid "shortcuts.opacity-6" msgstr "Saita dishi dishi zuwa kashi 60" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:153 msgid "shortcuts.opacity-7" msgstr "Saita dishi dishi zuwa kashi 70" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:154 msgid "shortcuts.opacity-8" msgstr "seta dishi dishin zuwa kashi 8o" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:155 msgid "shortcuts.opacity-9" msgstr "Seta dish dishi zuwa 90" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:156 msgid "shortcuts.open-color-picker" msgstr "abin daukan kala" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:157 msgid "shortcuts.open-comments" msgstr "tafi inda 'yan kallo za su bayyana ra'ayi" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:158 msgid "shortcuts.open-dashboard" msgstr "tafi gaban allon" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:159 msgid "shortcuts.open-inspect" msgstr "tafi sashin da 'yan kallo za su duba" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:160 msgid "shortcuts.open-interactions" msgstr "tafi sashin da masu kallo suke hulda" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:161 msgid "shortcuts.open-viewer" msgstr "tafi sashin da masu kallo suke hulda" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:162 msgid "shortcuts.open-workspace" msgstr "tafi fagen aiki" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:260 msgid "shortcuts.or" msgstr " ko " -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:163 msgid "shortcuts.paste" msgstr "manna" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:164 msgid "shortcuts.prev-frame" msgstr "allon da ya gabata" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:165 msgid "shortcuts.redo" msgstr "gyara" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:166 msgid "shortcuts.reset-zoom" msgstr "zake zukowa" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:168 msgid "shortcuts.search-placeholder" msgstr "takaitaccen sako yanken" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:169 msgid "shortcuts.select-all" msgstr "zabi duka" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:170 msgid "shortcuts.select-next" msgstr "zabi wani shafi" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:171 msgid "shortcuts.select-parent-layer" msgstr "zabi ainihin shafi" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:172 msgid "shortcuts.select-prev" msgstr "zabi shafin da ya gabata" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:173 msgid "shortcuts.separate-nodes" msgstr "raba kauri" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:174 msgid "shortcuts.show-pixel-grid" msgstr "nuna / boye akwatin pixel" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:175 msgid "shortcuts.show-shortcuts" msgstr "nuna / boye yanken" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:176 msgid "shortcuts.snap-nodes" msgstr "yanke kauri" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:177 msgid "shortcuts.snap-pixel-grid" msgstr "yanke zuwa ga akwatin pixel" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:178 msgid "shortcuts.start-editing" msgstr "fara gyarawa" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:179 msgid "shortcuts.start-measure" msgstr "fara aunawa" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:180 msgid "shortcuts.stop-measure" msgstr "dena aunawa" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:181 msgid "shortcuts.text-align-center" msgstr "jera tsakiya" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:182 msgid "shortcuts.text-align-justify" msgstr "jera da inganci" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:183 msgid "shortcuts.text-align-left" msgstr "jera hagu" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:184 msgid "shortcuts.text-align-right" msgstr "jera dama" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:185 msgid "shortcuts.thumbnail-set" msgstr "saita babban yatsa" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:496, src/app/main/ui/workspace/sidebar/shortcuts.cljs:505 +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs msgid "shortcuts.title" msgstr "allon harufa yanke" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:186 msgid "shortcuts.toggle-alignment" msgstr "Danna a jere" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:187 msgid "shortcuts.toggle-assets" msgstr "Danna kadara" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:188 msgid "shortcuts.toggle-colorpalette" msgstr "Danna launukan kala" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:189 msgid "shortcuts.toggle-focus-mode" msgstr "Danna yanayin maida hankali" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:190 msgid "shortcuts.toggle-fullscreen" msgstr "Danna fuskar ta cika duka" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:192 msgid "shortcuts.toggle-history" msgstr "Danna tarihi" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:193 msgid "shortcuts.toggle-layers" msgstr "Danna shimfida" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:194 msgid "shortcuts.toggle-layout-flex" msgstr "Tara/fitar da lankwasashhiyar shimfida" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:196 msgid "shortcuts.toggle-lock" msgstr "Rufe/bude" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:197 msgid "shortcuts.toggle-lock-size" msgstr "Rufe rabo" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:202 msgid "shortcuts.toggle-textpalette" msgstr "Juya zuwa launukan rubutu" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:204 msgid "shortcuts.toggle-visibility" msgstr "Nuna/boye" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:205 msgid "shortcuts.toggle-zoom-style" msgstr "Danna salon zukowa" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:206 msgid "shortcuts.underline" msgstr "Danna ta layi a kasa" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:207 msgid "shortcuts.undo" msgstr "Cire" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:208 msgid "shortcuts.ungroup" msgstr "Fita daka rukuni" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:209 msgid "shortcuts.unmask" msgstr "Cire takunkumi" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:210 msgid "shortcuts.v-distribute" msgstr "Rarraba ta tsaye" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:211 msgid "shortcuts.zoom-lense-decrease" msgstr "Zuko raguwar ido" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:212 msgid "shortcuts.zoom-lense-increase" msgstr "Zuko karuwar ido" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:213 msgid "shortcuts.zoom-selected" msgstr "Zuko wanda aka zaba" -#: src/app/main/ui/dashboard/team.cljs:771 +#: src/app/main/ui/dashboard/team.cljs msgid "team.webhooks.max-length" msgstr "Sunan shafin yanar gizon zai kunshi a mafi yawa haruffa 2048." -#: src/app/main/ui/dashboard/files.cljs:158 +#: src/app/main/ui/dashboard/files.cljs msgid "title.dashboard.files" msgstr "%s - Tukunyar aje biro" -#: src/app/main/ui/dashboard/fonts.cljs:37 +#: src/app/main/ui/dashboard/fonts.cljs msgid "title.dashboard.font-providers" msgstr "samar da jerin harufa - %s - Mazubin biruka" -#: src/app/main/ui/dashboard/fonts.cljs:36 +#: src/app/main/ui/dashboard/fonts.cljs msgid "title.dashboard.fonts" msgstr "jerin harufa - %s - Mazubin biruka" -#: src/app/main/ui/dashboard/projects.cljs:320 +#: src/app/main/ui/dashboard/projects.cljs msgid "title.dashboard.projects" msgstr "tsare tsare - %s - Mazubin biruka" -#: src/app/main/ui/dashboard/search.cljs:32 +#: src/app/main/ui/dashboard/search.cljs msgid "title.dashboard.search" msgstr "nema - %s - Mazubin biruka" -#: src/app/main/ui/dashboard/libraries.cljs:44 +#: src/app/main/ui/dashboard/libraries.cljs msgid "title.dashboard.shared-libraries" msgstr "Rababban dakin karatu- %s - Mazubin biruka" -#: src/app/main/ui/auth/verify_token.cljs:68, src/app/main/ui/auth.cljs:54 +#: src/app/main/ui/auth/verify_token.cljs, src/app/main/ui/auth.cljs msgid "title.default" msgstr "Mazubin biruka - Tsara yanci ga tawaga" -#: src/app/main/ui/settings/access_tokens.cljs:292 +#: src/app/main/ui/settings/access-tokens.cljs msgid "title.settings.access-tokens" msgstr "karin bayani - Shiga alama" -#: src/app/main/ui/settings/feedback.cljs:110 +#: src/app/main/ui/settings/feedback.cljs msgid "title.settings.feedback" msgstr "bada martani - Mazubin biruka" -#: src/app/main/ui/settings/options.cljs:80 +#: src/app/main/ui/settings/options.cljs msgid "title.settings.options" msgstr "Saiti - Mazubin biruka" -#: src/app/main/ui/settings/password.cljs:115 +#: src/app/main/ui/settings/password.cljs msgid "title.settings.password" msgstr "Nambobin sirri - Mazubin biruka" -#: src/app/main/ui/settings/profile.cljs:115 +#: src/app/main/ui/settings/profile.cljs msgid "title.settings.profile" msgstr "Karin bayani - Mazubin biruka" -#: src/app/main/ui/dashboard/team.cljs:727 +#: src/app/main/ui/dashboard/team.cljs msgid "title.team-invitations" msgstr "Gayyata - %s - Mazubin biruka" -#: src/app/main/ui/dashboard/team.cljs:493 +#: src/app/main/ui/dashboard/team.cljs msgid "title.team-members" msgstr "Yan kungiya - %s - Mazubin biruka" -#: src/app/main/ui/dashboard/team.cljs:1036 +#: src/app/main/ui/dashboard/team.cljs msgid "title.team-settings" msgstr "Saiti - %s - Mazubin biruka" -#: src/app/main/ui/dashboard/team.cljs:989 msgid "title.team-webhooks" msgstr "gidan yanar gizo - %s - Mazubin biruka" -#: src/app/main/ui/viewer.cljs:419 +#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs msgid "title.viewer" msgstr "%s - duba kumburi - Mazubin biruka" -#: src/app/main/ui/workspace.cljs:190 +#: src/app/main/ui/workspace.cljs msgid "title.workspace" msgstr "%s - Mazubin biruka" -#: src/app/main/ui.cljs:144 msgid "viewer.breaking-change.description" msgstr "" "Wannan mahadar da aka raba yanxu batada ingaci. Ka/ki kirkiri wata ko ka/ki " "tamayi maishi a baka/ki sabuwa." -#: src/app/main/ui.cljs:143 msgid "viewer.breaking-change.message" msgstr "Sannu!" -#: src/app/main/ui/viewer.cljs:569 +#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs msgid "viewer.empty-state" msgstr "Babu allon da aka samu a wannan fejin." -#: src/app/main/ui/viewer.cljs:574 +#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs msgid "viewer.frame-not-found" msgstr "Ba'a sami allon ba." -#: src/app/main/ui/viewer/header.cljs:336 msgid "viewer.header.comments-section" msgstr "Bayyana ra'ayi(%s)" -#: src/app/main/ui/viewer/interactions.cljs:292 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.dont-show-interactions" msgstr "Karka/ki nuna hulda" -#: src/app/main/ui/viewer/header.cljs:188 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.fullscreen" msgstr "Cika fuskar" -#: src/app/main/ui/viewer/header.cljs:345 msgid "viewer.header.inspect-section" msgstr "Duba (%s)" -#: src/app/main/ui/viewer/interactions.cljs:282 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.interactions" msgstr "Hulda" -#: src/app/main/ui/viewer/header.cljs:327 msgid "viewer.header.interactions-section" msgstr "Hulda (%s)" -#: src/app/main/ui/viewer/share_link.cljs:187 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.share.copy-link" msgstr "Kwafi mahada" -#: src/app/main/ui/viewer/interactions.cljs:300 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.show-interactions" msgstr "Nuna hulda" -#: src/app/main/ui/viewer/interactions.cljs:311 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.show-interactions-on-click" msgstr "Nuna hulda da an danna" -#: src/app/main/ui/viewer/header.cljs:231 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.sitemap" msgstr "taswirar wuri" -#: src/app/main/ui/dashboard/team.cljs:948 msgid "webhooks.last-delivery.success" msgstr "Sakon karshe ya isa." -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:58 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.hcenter" msgstr "Daidaita tsakiya a kwance (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:74 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.hdistribute" msgstr "rarraba filin kwance (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:50 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.hleft" msgstr "Daidaita hagu (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:66 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.hright" msgstr "Daidaita dama (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:99 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.vbottom" msgstr "Daidaita kasa (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:91 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.vcenter" msgstr "Daidaita a kwance tsakiya (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:104 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.vdistribute" msgstr "rarraba filin tsaye (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:83 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.vtop" msgstr "Daidaita sama(%s)" #: src/app/main/ui/workspace/sidebar/assets.cljs -#, unused msgid "workspace.assets.assets" msgstr "kadara" -#: src/app/main/ui/workspace/sidebar/assets.cljs:134 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.box-filter-all" msgstr "duka kadara" -#: src/app/main/ui/dashboard/grid.cljs:130, src/app/main/ui/dashboard/grid.cljs:162, src/app/main/ui/workspace/sidebar/assets/colors.cljs:485, src/app/main/ui/workspace/sidebar/assets.cljs:150 +#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.colors" msgstr "kala" -#: src/app/main/ui/dashboard/grid.cljs:126, src/app/main/ui/dashboard/grid.cljs:141, src/app/main/ui/workspace/sidebar/assets/components.cljs:513, src/app/main/ui/workspace/sidebar/assets.cljs:139 +#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.components" msgstr "Bangarori" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:131 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.create-group" msgstr "kirkiri rukuni" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:142 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.create-group-hint" msgstr "abubuwanka za a samu su suna nan take kamar \"sunan kungiya/ sunan abubuwan\"" -#: src/app/main/ui/workspace/context_menu.cljs:529, src/app/main/ui/workspace/sidebar/assets/colors.cljs:251, src/app/main/ui/workspace/sidebar/assets/components.cljs:577, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:424, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:443 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.delete" msgstr "goge" -#: src/app/main/ui/workspace/context_menu.cljs:534, src/app/main/ui/workspace/sidebar/assets/components.cljs:572 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs, src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.duplicate" msgstr "maimaita" -#: src/app/main/ui/workspace/sidebar/assets/components.cljs:571 msgid "workspace.assets.duplicate-main" msgstr "maimaita ainihin" -#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:247, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:439 +#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.edit" msgstr "tace" -#: src/app/main/ui/workspace/sidebar/assets/graphics.cljs:384, src/app/main/ui/workspace/sidebar/assets.cljs:145 +#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.graphics" msgstr "zane zane" -#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:255, src/app/main/ui/workspace/sidebar/assets/components.cljs:581, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:428, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:448 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.group" msgstr "rukuni" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:141 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.group-name" msgstr "sunan kungiya" -#: src/app/main/ui/workspace/sidebar/assets.cljs:168 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.libraries" msgstr "dakunan karatu" -#: src/app/main/ui/workspace/sidebar/assets/file_library.cljs:62, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:347 msgid "workspace.assets.local-library" msgstr "dakin karatun gida" -#: src/app/main/ui/workspace/sidebar/assets/file_library.cljs:295 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.not-found" msgstr "ba'a samu kadara ba" -#, unused msgid "workspace.assets.open-library" msgstr "bude fiyal din dakin karatu" -#: src/app/main/ui/workspace/context_menu.cljs:532, src/app/main/ui/workspace/sidebar/assets/colors.cljs:243, src/app/main/ui/workspace/sidebar/assets/components.cljs:566, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:421, src/app/main/ui/workspace/sidebar/assets/groups.cljs:63, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:434 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.rename" msgstr "sake suna" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:132 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.rename-group" msgstr "sake sunan kungiyar" -#: src/app/main/ui/workspace/sidebar/assets.cljs:173 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.search" msgstr "nemo kadarar" #: src/app/main/ui/workspace/sidebar/assets.cljs -#, unused msgid "workspace.assets.selected-count" msgid_plural "workspace.assets.selected-count" msgstr[0] "%s" msgstr[1] "%s zababbun abubuwan" #: src/app/main/ui/workspace/sidebar/assets.cljs -#, unused msgid "workspace.assets.shared-library" msgstr "rababben dakin karatu" -#: src/app/main/ui/dashboard/grid.cljs:134, src/app/main/ui/dashboard/grid.cljs:189, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:397, src/app/main/ui/workspace/sidebar/assets.cljs:155 +#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.typography" msgstr "rubutun rubutu" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused msgid "workspace.assets.typography.font-id" msgstr "tsarin haruffa" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:505 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.font-size" msgstr "girma" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:501 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.font-variant-id" msgstr "bambanci" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:523 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.go-to-edit" msgstr "tafi zuwa salon dakin karatu don a tace" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:513 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.letter-spacing" msgstr "fili a tsakanin haruffa" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:509 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.line-height" msgstr "tsawon layi" -#: src/app/main/ui/dashboard/grid.cljs:199, src/app/main/ui/workspace/libraries.cljs:461, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:464, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:489, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:596, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:615 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, src/app/main/ui/inspect/attributes/text.cljs, src/app/main/ui/inspect/attributes/text.cljs msgid "workspace.assets.typography.sample" msgstr "Ag" -#, unused msgid "workspace.assets.typography.text-styles" msgstr "salon rubutu" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:517 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.text-transform" msgstr "canja rubutu" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:66 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.ungroup" msgstr "kashe daga kungiya" -#: src/app/main/ui/workspace/sidebar/layers.cljs:525 msgid "workspace.focus.focus-mode" msgstr "tsarin maida hankali" -#: src/app/main/ui/workspace/context_menu.cljs:287, src/app/main/ui/workspace/context_menu.cljs:553 msgid "workspace.focus.focus-off" msgstr "karka maida hankali" -#: src/app/main/ui/workspace/context_menu.cljs:286 msgid "workspace.focus.focus-on" msgstr "maida hankali" -#, unused msgid "workspace.focus.selection" msgstr "zaba" -#: src/app/util/color.cljs:34 +#: src/app/main/data/workspace/libraries.cljs, src/app/main/ui/components/color_bullet.cljs msgid "workspace.gradients.linear" msgstr "a layi mikakke" -#: src/app/util/color.cljs:35 +#: src/app/main/data/workspace/libraries.cljs, src/app/main/ui/components/color_bullet.cljs msgid "workspace.gradients.radial" msgstr "a da'ira" -#: src/app/main/ui/workspace/main_menu.cljs:238 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.disable-dynamic-alignment" msgstr "kashe daidaitawa mai canjawa" -#: src/app/main/ui/workspace/main_menu.cljs:192 msgid "workspace.header.menu.disable-scale-content" msgstr "kashe sikelin rabo" #: src/app/main/ui/workspace/header.cljs -#, unused msgid "workspace.header.menu.disable-scale-text" msgstr "kashe sikelin rubutu" -#: src/app/main/ui/workspace/main_menu.cljs:223 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.disable-snap-guides" msgstr "kashe tsinkewa zuwa mai jagora" -#: src/app/main/ui/workspace/main_menu.cljs:253 msgid "workspace.header.menu.disable-snap-pixel-grid" msgstr "kashe tsinkewa zuwa pixel" -#: src/app/main/ui/workspace/main_menu.cljs:239 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.enable-dynamic-alignment" msgstr "bada damar daidaitawa mai canjawa" -#: src/app/main/ui/workspace/main_menu.cljs:193 msgid "workspace.header.menu.enable-scale-content" msgstr "bada damar sikelin rabo" #: src/app/main/ui/workspace/header.cljs -#, unused msgid "workspace.header.menu.enable-scale-text" msgstr "bada damar sikelin rubutu" -#: src/app/main/ui/workspace/main_menu.cljs:224 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.enable-snap-guides" msgstr "Tsinke zuwa mai jagora" -#: src/app/main/ui/workspace/main_menu.cljs:254 msgid "workspace.header.menu.enable-snap-pixel-grid" msgstr "Bda damar tsinkewa zuwa akwatin pixel" -#: src/app/main/ui/workspace/main_menu.cljs:382 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.hide-artboard-names" msgstr "Boye allom suna" -#: src/app/main/ui/workspace/main_menu.cljs:353 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.hide-palette" msgstr "farantin launuka" -#: src/app/main/ui/workspace/main_menu.cljs:394 msgid "workspace.header.menu.hide-pixel-grid" msgstr "boye pixel akwati" -#: src/app/main/ui/workspace/main_menu.cljs:320 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.hide-rules" msgstr "boye ma'auni" -#: src/app/main/ui/workspace/main_menu.cljs:367 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.hide-textpalette" msgstr "boye launukan yanayin tsarin rubutu" -#: src/app/main/ui/workspace/main_menu.cljs:731 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.edit" msgstr "Tace" -#: src/app/main/ui/workspace/main_menu.cljs:720 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.file" msgstr "fayil" -#: src/app/main/ui/workspace/main_menu.cljs:777 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.help-info" msgstr "taimako & bayani" -#: src/app/main/ui/workspace/main_menu.cljs:753 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.preferences" msgstr "fifiko" -#: src/app/main/ui/workspace/main_menu.cljs:742 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.view" msgstr "gani" -#: src/app/main/ui/workspace/main_menu.cljs:459 msgid "workspace.header.menu.redo" msgstr "sake" -#: src/app/main/ui/workspace/main_menu.cljs:432 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.select-all" msgstr "zabi duka" -#: src/app/main/ui/workspace/main_menu.cljs:383 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.show-artboard-names" msgstr "Nuna sunayen allo" -#: src/app/main/ui/workspace/main_menu.cljs:354 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.show-palette" msgstr "nuna launukan kala" -#: src/app/main/ui/workspace/main_menu.cljs:395 msgid "workspace.header.menu.show-pixel-grid" msgstr "Nuna akwatin pixel" -#: src/app/main/ui/workspace/main_menu.cljs:321 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.show-rules" msgstr "Nuna ma'auni" -#: src/app/main/ui/workspace/main_menu.cljs:368 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.show-textpalette" msgstr "Nuna launukan tsarin rubutu" -#: src/app/main/ui/workspace/main_menu.cljs:446 msgid "workspace.header.menu.undo" msgstr "Cire" -#: src/app/main/ui/viewer/header.cljs:98, src/app/main/ui/workspace/right_header.cljs:120 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.reset-zoom" msgstr "Kara saitawa" #: src/app/main/ui/workspace/header.cljs -#, unused msgid "workspace.header.save-error" msgstr "an samu kuskure wajen adanawa" -#: src/app/main/ui/workspace/right_header.cljs:52 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.saved" msgstr "An adana" #: src/app/main/ui/workspace/header.cljs -#, unused msgid "workspace.header.saving" msgstr "Adanawa" -#: src/app/main/ui/workspace/right_header.cljs:42, src/app/main/ui/workspace/right_header.cljs:47 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.unsaved" msgstr "Canja canjan da ba'a adana ba" -#: src/app/main/ui/workspace/right_header.cljs:239 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.viewer" msgstr "yanayin kallo (%s)" -#: src/app/main/ui/viewer/header.cljs:79, src/app/main/ui/workspace/right_header.cljs:103 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom" msgstr "Zuko" -#: src/app/main/ui/viewer/header.cljs:109 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom-fill" msgstr "cike - cika sikeli" -#: src/app/main/ui/viewer/header.cljs:102 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom-fit" msgstr "dace - ja sikeli ya dace da shi" -#: src/app/main/ui/workspace/right_header.cljs:123 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom-fit-all" msgstr "zuko yayi daidai da ko'ina" -#: src/app/main/ui/viewer/header.cljs:116 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom-full-screen" msgstr "Cika allon" -#: src/app/main/ui/workspace/right_header.cljs:130 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom-selected" msgstr "zuko zababbe" -#: src/app/main/ui/workspace/viewport/grid_layout_editor.cljs:59 msgid "workspace.layout_grid.editor.title" msgstr "tace akwati" #: src/app/main/ui/workspace/libraries.cljs -#, unused msgid "workspace.libraries.add" msgstr "tarawa" -#: src/app/main/ui/workspace/libraries.cljs:80, src/app/main/ui/workspace/libraries.cljs:99 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.colors" msgstr "%s kala" -#: src/app/main/ui/workspace/color_palette.cljs:126 +#: src/app/main/ui/workspace/colorpalette.cljs msgid "workspace.libraries.colors.empty-palette" msgstr "Babu salon kaloli a ma'ajiya yanzu" -#: src/app/main/ui/workspace/text_palette.cljs:150 +#: src/app/main/ui/workspace/textpalette.cljs msgid "workspace.libraries.colors.empty-typography-palette" msgstr "Babu rubutun rubutu a ma'ajiya yanzu" -#: src/app/main/ui/workspace/color_palette_ctx_menu.cljs:60, src/app/main/ui/workspace/colorpicker/libraries.cljs:73, src/app/main/ui/workspace/text_palette_ctx_menu.cljs:50 +#: src/app/main/ui/workspace/colorpicker/libraries.cljs, src/app/main/ui/workspace/colorpalette.cljs msgid "workspace.libraries.colors.file-library" msgstr "F" #: src/app/main/ui/workspace/colorpicker.cljs -#, unused msgid "workspace.libraries.colors.hsv" msgstr "HSV" -#: src/app/main/ui/workspace/color_palette_ctx_menu.cljs:82, src/app/main/ui/workspace/colorpicker/libraries.cljs:72 +#: src/app/main/ui/workspace/colorpicker/libraries.cljs, src/app/main/ui/workspace/colorpalette.cljs msgid "workspace.libraries.colors.recent-colors" msgstr "kalar yanzu" #: src/app/main/ui/workspace/colorpicker.cljs -#, unused msgid "workspace.libraries.colors.rgb-complementary" msgstr "Jituwar RGB" #: src/app/main/ui/workspace/colorpicker.cljs -#, unused msgid "workspace.libraries.colors.rgba" msgstr "RGBA" -#: src/app/main/ui/workspace/colorpicker.cljs:372 +#: src/app/main/ui/workspace/colorpicker.cljs msgid "workspace.libraries.colors.save-color" msgstr "Adana salon kala" -#: src/app/main/ui/workspace/libraries.cljs:74, src/app/main/ui/workspace/libraries.cljs:91 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.components" msgstr "%s bangarori" -#: src/app/main/ui/workspace/libraries.cljs:215 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.file-library" msgstr "Ma'adanar fiyal" -#: src/app/main/ui/workspace/libraries.cljs:77, src/app/main/ui/workspace/libraries.cljs:95 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.graphics" msgstr "%s zane zane" -#: src/app/main/ui/workspace/libraries.cljs:209 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.in-this-file" msgstr "Ma'adana a wanna fiyal" -#: src/app/main/ui/workspace/libraries.cljs:526, src/app/main/ui/workspace/libraries.cljs:531 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.libraries" msgstr "ma'adanai" #: src/app/main/ui/workspace/libraries.cljs -#, unused msgid "workspace.libraries.library" msgstr "ma'adana" -#: src/app/main/ui/workspace/libraries.cljs:382 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.library-updates" msgstr "sabunta ma'adana" -#: src/app/main/ui/workspace/libraries.cljs:380 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.no-libraries-need-sync" msgstr "Babu rabben ma'adanai da suke bukatar sabuntawa" -#: src/app/main/ui/workspace/libraries.cljs:299 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.no-matches-for" msgstr "Babu daidaituwa da aka samu na “%s“" -#: src/app/main/ui/workspace/libraries.cljs:296 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.no-shared-libraries-available" msgstr "Babu rababbun ma'adanai wanda aka samu" -#: src/app/main/ui/workspace/libraries.cljs:260 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.search-shared-libraries" msgstr "Duba rabbaun ma'adanai" -#: src/app/main/ui/workspace/libraries.cljs:256 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.shared-libraries" msgstr "Rabban ma'adanai" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:308 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.libraries.text.multiple-typography" msgstr "Rubutun rubutu dayawa" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:311 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.libraries.text.multiple-typography-tooltip" msgstr "Cire mahadar duka rabutun rubutu" -#: src/app/main/ui/workspace/libraries.cljs:83, src/app/main/ui/workspace/libraries.cljs:103 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.typography" msgstr "%s Rubutun rubutu" -#: src/app/main/ui/workspace/libraries.cljs:402 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.update" msgstr "Sabuntawa" -#: src/app/main/ui/workspace/libraries.cljs:477 +#: src/app/main/data/workspace/libraries.cljs msgid "workspace.libraries.update.see-all-changes" msgstr "Aga duka canjin" -#: src/app/main/ui/workspace/libraries.cljs:536 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.updates" msgstr "sabuntawa" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:737 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.add-interaction" msgstr "Danna wannan madannin + domin saka hulda." -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:86, src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:102 +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs msgid "workspace.options.blur-options.title" msgstr "Dishi dishi" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:85 +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs msgid "workspace.options.blur-options.title.group" msgstr "rukuni" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:84 +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs msgid "workspace.options.blur-options.title.multiple" msgstr "zabin dishi dishi" -#: src/app/main/ui/workspace/sidebar/options/page.cljs:32, src/app/main/ui/workspace/sidebar/options/page.cljs:39 +#: src/app/main/ui/workspace/sidebar/options/page.cljs msgid "workspace.options.canvas-background" msgstr "bayan zane" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:548 msgid "workspace.options.clip-content" msgstr "Matse abun ciki" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:600, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:605 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs msgid "workspace.options.component" msgstr "Bangarori" -#: src/app/main/ui/viewer/inspect/annotation.cljs:19, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:181 msgid "workspace.options.component.annotation" msgstr "Yin sharhin rubutu" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:610 msgid "workspace.options.component.copy" msgstr "Kwafa" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:173 msgid "workspace.options.component.create-annotation" msgstr "Kirkiri sharhin rubuta" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:172 msgid "workspace.options.component.edit-annotation" msgstr "Tace sharhin rubutu" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:609 msgid "workspace.options.component.main" msgstr "Ainahin" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:163 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints" msgstr "Takura" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:150 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.bottom" msgstr "Kasa" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:141, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:152 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.center" msgstr "Tsakiya" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:229 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.fix-when-scrolling" msgstr "gyara nemowa" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:138 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.left" msgstr "Hagu" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:140 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.leftright" msgstr "hagu & dama" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:139 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.right" msgstr "dama" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:142, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:153 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.scale" msgstr "maauni" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:149 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.top" msgstr "sama" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:151 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.topbottom" msgstr "sama & kasa" -#: src/app/main/ui/workspace/sidebar/options.cljs:112 +#: src/app/main/ui/workspace/sidebar/options.cljs msgid "workspace.options.design" msgstr "zane" -#: src/app/main/ui/viewer/inspect/exports.cljs:139 +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs msgid "workspace.options.export" msgstr "fitarwa" #: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs -#, unused msgid "workspace.options.export-multiple" msgstr "Fitar da zababbun" -#: src/app/main/ui/viewer/inspect/exports.cljs:195, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:237 +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs msgid "workspace.options.export-object" msgid_plural "workspace.options.export-object" msgstr[0] "Fitarwa 1 Sashi" msgstr[1] "Fitarwa %s sashi-sashi" -#: src/app/main/ui/viewer/inspect/exports.cljs:178, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:219 +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs msgid "workspace.options.export.suffix" msgstr "Kari na bayan baki" -#: src/app/main/ui/export.cljs:240 +#: 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.exporting-complete" msgstr "An gama fitarwa" -#: src/app/main/ui/export.cljs:172, src/app/main/ui/export.cljs:241, src/app/main/ui/viewer/inspect/exports.cljs:194, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:236 +#: 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.exporting-object" msgstr "Ana fitarwa" -#: src/app/main/ui/export.cljs:239 +#: 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.exporting-object-error" msgstr "An gaza fitarwa" -#: src/app/main/ui/export.cljs:242 +#: 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.exporting-object-slow" msgstr "Fitarwa ba tsammani ta sami tsaiko" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:49, src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:174 +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs msgid "workspace.options.fill" msgstr "Cikawa" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:178 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.flows.add-flow-start" msgstr "Kara gudun farko" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -#, unused msgid "workspace.options.flows.flow-start" msgstr "Gudun farko" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:161 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.flows.flow-starts" msgstr "gudun farko" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:29 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.auto" msgstr "da kanshi" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:157 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.column" msgstr "shafi" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.grid-title" msgstr "Akwati" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:196, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:237 msgid "workspace.options.grid.params.color" msgstr "Kala" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.params.columns" msgstr "shafi" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:259 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.gutter" msgstr "mahada" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:246 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.height" msgstr "tsawo" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:270 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.margin" msgstr "gefe" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.params.rows" msgstr "jere" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:216, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:290 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.set-default" msgstr "saita a tsoho" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.params.size" msgstr "girma" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.params.type" msgstr "Nau'i" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:231 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.bottom" msgstr "Kasa" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:229 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.center" msgstr "Tsakiya" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:228 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.left" msgstr "Hagu" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:232 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.right" msgstr "Dama" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:225 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.stretch" msgstr "mikewa" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:227 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.top" msgstr "sama" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:211, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:288 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.use-default" msgstr "yi amfani da tsoho" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:247 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.width" msgstr "fadi" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:158 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.row" msgstr "layuka" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:156 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.square" msgstr "murabba'i" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:48 +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs msgid "workspace.options.group-fill" msgstr "Cika rukuni" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:42 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.group-stroke" msgstr "Ja layi a rukuni" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:406 msgid "workspace.options.height" msgstr "Tsawo" -#: src/app/main/ui/workspace/sidebar/options.cljs:161 msgid "workspace.options.inspect" msgstr "Duba" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:468 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-action" msgstr "aiki" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:41, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:367 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-after-delay" msgstr "Bayan jinkiri" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:614 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-animation" msgstr "hotuna masu motsi" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:406 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-animation-dissolve" msgstr "narkewa" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:405 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-animation-none" msgstr "Babu" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:412 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-animation-push" msgstr "Tura" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:407 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-animation-slide" msgstr "Ja" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:391 msgid "workspace.options.interaction-auto" msgstr "da kanshi" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:604 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-background" msgstr "kara mai rufin bayan" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:590 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-close-outside" msgstr "rufe yayin matsewa ta waje" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:372 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-close-overlay" msgstr "kulle mai rufi" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:56 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-close-overlay-dest" msgstr "kulle mai rufi %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:456 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-delay" msgstr "jinkiri" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:478 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-destination" msgstr "makoma" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:661 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-duration" msgstr "tsahon lokaci" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:674 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing" msgstr "saukakawa" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:416 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing-ease" msgstr "sauki" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:417 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing-ease-in" msgstr "sauki ciki" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:419 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing-ease-in-out" msgstr "sauki ciki waje" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:418 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing-ease-out" msgstr "sauki waje" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:415 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing-linear" msgstr "mikakke" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -#, unused msgid "workspace.options.interaction-in" msgstr "ciki" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:39, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:364 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-mouse-enter" msgstr "linzamin kwamfuter ya shiga" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:40, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:365 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-mouse-leave" msgstr "linzamin kwamfutar ya fita" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:458, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:459, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:464, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:663, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:665, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:669 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-ms" msgstr "ms" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:369 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-navigate-to" msgstr "kewayawa zuwa" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:50 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-navigate-to-dest" msgstr "kewayawa zywa: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:51, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:53, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:55, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:380 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-none" msgstr "(ba'a saita ba )" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:691 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-offset-effect" msgstr "cire tasiri" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:35, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:360 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-on-click" msgstr "da an danna" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:370 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-open-overlay" msgstr "bude mai rufi" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:52 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-open-overlay-dest" msgstr "bude mai rufi: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:59, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:374 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-open-url" msgstr "bude URL" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -#, unused msgid "workspace.options.interaction-out" msgstr "fita" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:403 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-bottom-center" msgstr "kasa tsakiya" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:401 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-bottom-left" msgstr "kasa hagu" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:402 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-bottom-right" msgstr "kasa dama" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:397 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-center" msgstr "tsakiya" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:396 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-manual" msgstr "Yi da kanka" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:400 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-top-center" msgstr "sama tsakiya" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:398 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-top-left" msgstr "sama hagu" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:399 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-top-right" msgstr "sama dama" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:524 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-position" msgstr "Mataki" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:494 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-preserve-scroll" msgstr "adana komawa sama da kasa" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:58, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:373 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-prev-screen" msgstr "allon daya gabata" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:515 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-relative-to" msgstr "alaka zuwa" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:57, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:379, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:393, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:394 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-self" msgstr "kai/ni" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:371 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-toggle-overlay" msgstr "Juya mai murfi" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:54 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-toggle-overlay-dest" msgstr "Juya mai murfi: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:445 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-trigger" msgstr "Jawo" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:503 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-url" msgstr "URL" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:37, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:362 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-while-hovering" msgstr "yayin shawagi" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:38, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:363 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-while-pressing" msgstr "yayin dannawa" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:724 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interactions" msgstr "yayin hulda" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:137 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.color" msgstr "kala" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:126 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.color-burn" msgstr "kala konanniya" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:129 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.color-dodge" msgstr "kala gudajjiya" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:124 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.darken" msgstr "kara masa duhu" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:133 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.difference" msgstr "banbanci" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:134 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.exclusion" msgstr "warewa" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:132 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.hard-light" msgstr "Haske mai muya" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:135 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.hue" msgstr "Haske haske" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:127 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.lighten" msgstr "kara masa haske" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:138 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.luminosity" msgstr "warewa" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:125 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.multiply" msgstr "sau" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:123 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.normal" msgstr "na kullum" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:130 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.overlay" msgstr "mai rufi" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:136 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.saturation" msgstr "jikewa" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:128 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.screen" msgstr "allo" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:131 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.soft-light" msgstr "haske mai sauki" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -#, unused msgid "workspace.options.layer-options.title" msgstr "shafi" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -#, unused msgid "workspace.options.layer-options.title.group" msgstr "rukunin shafi" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -#, unused msgid "workspace.options.layer-options.title.multiple" msgstr "dayawa" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout-item.advanced-ops" msgstr "zabi na ci gaba" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:564 +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs msgid "workspace.options.layout-item.layout-item-max-h" msgstr "tsawo mafi yawa" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:531 +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs msgid "workspace.options.layout-item.layout-item-max-w" msgstr "fadi mafi yawa" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:548 +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs msgid "workspace.options.layout-item.layout-item-min-h" msgstr "tsawo mafi kankanta" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:515 +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs msgid "workspace.options.layout-item.layout-item-min-w" msgstr "fadi mafi kankanta" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout-item.title.layout-item-max-h" msgstr "tsawo mafi yawa" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout-item.title.layout-item-max-w" msgstr "fadi mafi yawa" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout-item.title.layout-item-min-h" msgstr "tsaho mafi kankanta" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout-item.title.layout-item-min-w" msgstr "fadi mafi kankanta" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.bottom" msgstr "kasa" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.direction.column" msgstr "shafi" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.direction.column-reverse" msgstr "sake shafi" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.direction.row" msgstr "jerawa" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.direction.row-reverse" msgstr "jera sauyin fasali" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.gap" msgstr "Gibi" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.left" msgstr "hagu" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout.margin" msgstr "gefe" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout.margin-all" msgstr "gefen duka" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout.margin-simple" msgstr "Samfarin gefe" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.packed" msgstr "cushe" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.padding" msgstr "filla filla" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.padding-all" msgstr "duka gefan" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.padding-simple" msgstr "sassaukan ciko" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.right" msgstr "dama" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.space-around" msgstr "kewayayyen sarrari" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.space-between" msgstr "sarari tsakani" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.top" msgstr "sama" -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:146 +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs msgid "workspace.options.more-colors" msgstr "kaloli masu yawa" -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:123 +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs msgid "workspace.options.more-lib-colors" msgstr "Ma'ajiyar kaloli masu yawa" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:161 msgid "workspace.options.opacity" msgstr "dishi dishi" #: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -#, unused msgid "workspace.options.position" msgstr "matsayi" -#: src/app/main/ui/workspace/sidebar/options.cljs:157 +#: src/app/main/ui/workspace/sidebar/options.cljs msgid "workspace.options.prototype" msgstr "samfur" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:469, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:481 msgid "workspace.options.radius" msgstr "digon tsakiyar da'ira" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:513 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.radius-bottom-left" msgstr "kasan hagu" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:522 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.radius-bottom-right" msgstr "kasan dama" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:495 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.radius-top-left" msgstr "saman hagu" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:504 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.radius-top-right" msgstr "saman dama" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:532 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.radius.all-corners" msgstr "duka kwanar" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:533 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.radius.single-corners" msgstr "kwanar da take cin gashin kanta" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:183 msgid "workspace.options.recent-fonts" msgstr "da dimi dimi" -#: src/app/main/ui/export.cljs:284 +#: 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 "sake" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:451 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.rotation" msgstr "juyawa" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:180 msgid "workspace.options.search-font" msgstr "nemo jerin harufa" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:741 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.select-a-shape" msgstr "zabi surar allo, ko rukuni ta hadu da daya allon." -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:105 +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs msgid "workspace.options.selection-color" msgstr "zababbabbin kaloli" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:47 +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs msgid "workspace.options.selection-fill" msgstr "cika zabi" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:41 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.selection-stroke" msgstr "gigciye zabi" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:40, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:198, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:200 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.blur" msgstr "dishi dishi" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:238 msgid "workspace.options.shadow-options.color" msgstr "inuwar kala" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:144 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.drop-shadow" msgstr "ajiye inuwa" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:145 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.inner-shadow" msgstr "Inuwar ciki" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:38, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:186 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.offsetx" msgstr "X" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:39, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:224 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.offsety" msgstr "Y" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:41, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:211, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:213 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.spread" msgstr "bazu" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:296 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.title" msgstr "inuwa" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:295 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.title.group" msgstr "rukunin inuwa" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:294 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.title.multiple" msgstr "inuwar zabi" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:193 +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs msgid "workspace.options.show-fill-on-export" msgstr "fito da shi a ga" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:562 msgid "workspace.options.show-in-viewer" msgstr "fito da kaurin sosai" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:162 +#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.size" msgstr "girma" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:355 +#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs msgid "workspace.options.size-presets" msgstr "yanayin girman yanayin" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:43 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke" msgstr "gigciye" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -#, unused msgid "workspace.options.stroke-cap.circle-marker" msgstr "da'irar kasuwa" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:129 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.circle-marker-short" msgstr "da'ira" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -#, unused msgid "workspace.options.stroke-cap.diamond-marker" msgstr "darajar kasuwa" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:130 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.diamond-marker-short" msgstr "mai daraja" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -#, unused msgid "workspace.options.stroke-cap.line-arrow" msgstr "layin mashiw" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:126 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.line-arrow-short" msgstr "mashi" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:124 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.none" msgstr "ba komai" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:132 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.round" msgstr "da'ira" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:133 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.square" msgstr "murabba'i" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -#, unused msgid "workspace.options.stroke-cap.square-marker" msgstr "murabba'in kasuwa" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:128 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.square-marker-short" msgstr "Rectangle" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -#, unused msgid "workspace.options.stroke-cap.triangle-arrow" msgstr "Triangle mashi" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:127 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.triangle-arrow-short" msgstr "Triangle" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:192 msgid "workspace.options.stroke-color" msgstr "gigciye kalar" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:165 msgid "workspace.options.stroke-width" msgstr "gigciye fadin" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:87 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.center" msgstr "tsakiya" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:105 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.dashed" msgstr "layin raba abu" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:104 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.dotted" msgstr "digo digo" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:88 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.inner" msgstr "ciki" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:106 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.mixed" msgstr "gauraya" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:89 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.outer" msgstr "waje" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:103 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.solid" msgstr "mai tauri" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:115 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.align-bottom" msgstr "jerin kasa" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:111 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.align-middle" msgstr "jerin tsakiya" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:107 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.align-top" msgstr "jerin sama" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:82 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.direction-ltr" msgstr "LTR" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:87 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.direction-rtl" msgstr "RTL" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:149 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.grow-auto-height" msgstr "sarrafaffan tsaho" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:145 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.grow-auto-width" msgstr "sarrafaffen fadi" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:141 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.grow-fixed" msgstr "dasa" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:381 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.options.text-options.letter-spacing" msgstr "tazarar harafi" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:364 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.options.text-options.line-height" msgstr "tsahon layi" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused msgid "workspace.options.text-options.lowercase" msgstr "yanayin kasa" #: src/app/main/ui/workspace/sidebar/options/menus/text.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused msgid "workspace.options.text-options.none" msgstr "babu" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:176 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.strikethrough" msgstr "gigciye ta cikinsa (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:51 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.text-align-center" msgstr "jerin tsakiya (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:59 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.text-align-justify" msgstr "tabbatarwa (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:47 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.text-align-left" msgstr "jera hagu (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:55 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.text-align-right" msgstr "jera dama (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:189 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.title" msgstr "rubutu" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:188 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.title-group" msgstr "rukunin rubutu" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:187 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.title-selection" msgstr "zababbun rubutu" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused msgid "workspace.options.text-options.titlecase" msgstr "yanayin lakani" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:171 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.underline" msgstr "ja layi (%s)" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused msgid "workspace.options.text-options.uppercase" msgstr "yanayin sama" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:745 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.use-play-button" msgstr "yi amfani da madanneta ta sama ki tafi da samfuri." -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:395 msgid "workspace.options.width" msgstr "fadi" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:427 msgid "workspace.options.x" msgstr "X layi" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:438 msgid "workspace.options.y" msgstr "Y layi" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:167 msgid "workspace.path.actions.add-node" msgstr "kara kauri (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:174 msgid "workspace.path.actions.delete-node" msgstr "goge kauri (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:152 msgid "workspace.path.actions.draw-nodes" msgstr "zane da kauri (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:189 msgid "workspace.path.actions.join-nodes" msgstr "hada kauri (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:204 msgid "workspace.path.actions.make-corner" msgstr "ta kwana (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:211 msgid "workspace.path.actions.make-curve" msgstr "Ta lankwasa (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:182 msgid "workspace.path.actions.merge-nodes" msgstr "hade kauri (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:159 msgid "workspace.path.actions.move-nodes" msgstr "tafi da kauri (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:196 msgid "workspace.path.actions.separate-nodes" msgstr "raba kauri (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:218 msgid "workspace.path.actions.snap-nodes" msgstr "tsinke kauri (%s)" -#: src/app/main/ui/workspace/context_menu.cljs:441 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.add-flex" msgstr "kara sassaukan tsarit" -#: src/app/main/ui/workspace/context_menu.cljs:445 msgid "workspace.shape.menu.add-grid" msgstr "kara akwatin tsari" -#: src/app/main/ui/workspace/context_menu.cljs:193 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.back" msgstr "tura zuwa baya" -#: src/app/main/ui/workspace/context_menu.cljs:190 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.backward" msgstr "tura zuwa baya" -#: src/app/main/ui/workspace/context_menu.cljs:139 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.copy" msgstr "kwafi" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:427 msgid "workspace.shape.menu.create-annotation" msgstr "kirkiri hoto mai motsi" -#: src/app/main/ui/workspace/context_menu.cljs:275 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.create-artboard-from-selection" msgstr "zababban allo" -#: src/app/main/ui/workspace/context_menu.cljs:465 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.create-component" msgstr "kirkiri abubuwa" -#: src/app/main/ui/workspace/context_menu.cljs:469 msgid "workspace.shape.menu.create-multiple-components" msgstr "kirkiri abubuwa da yawa" -#: src/app/main/ui/workspace/context_menu.cljs:142 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.cut" msgstr "cire" -#: src/app/main/ui/workspace/context_menu.cljs:486 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.delete" msgstr "goge" -#: src/app/main/ui/workspace/context_menu.cljs:391 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.delete-flow-start" msgstr "goge kwararar farko" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:432 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.detach-instance" msgstr "raba yanayin abin" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:431 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.detach-instances-in-bulk" msgstr "raba yanayin abin" -#: src/app/main/ui/workspace/context_menu.cljs:335, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:75 msgid "workspace.shape.menu.difference" msgstr "bambanci" -#: src/app/main/ui/workspace/context_menu.cljs:148 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.duplicate" msgstr "maimaita" -#: src/app/main/ui/workspace/context_menu.cljs:321 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.edit" msgstr "tace" -#: src/app/main/ui/workspace/context_menu.cljs:341 msgid "workspace.shape.menu.exclude" msgstr "kebe" -#: src/app/main/ui/workspace/context_menu.cljs:348, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:89 msgid "workspace.shape.menu.flatten" msgstr "mikad da abu" -#: src/app/main/ui/workspace/context_menu.cljs:208 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.flip-horizontal" msgstr "kifa ta tsaye" -#: src/app/main/ui/workspace/context_menu.cljs:204 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.flip-vertical" msgstr "kifa ta kwance" -#: src/app/main/ui/workspace/context_menu.cljs:394 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.flow-start" msgstr "fara malala" -#: src/app/main/ui/workspace/context_menu.cljs:184 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.forward" msgstr "kawo ta gaba" -#: src/app/main/ui/workspace/context_menu.cljs:187 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.front" msgstr "kawo zuwa gaba" #: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs -#, unused msgid "workspace.shape.menu.go-main" msgstr "tafi ainihin wurin fal" -#: src/app/main/ui/workspace/context_menu.cljs:261 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.group" msgstr "rukuni" -#: src/app/main/ui/workspace/context_menu.cljs:363, src/app/main/ui/workspace/sidebar/layer_item.cljs:145 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.hide" msgstr "boye" -#: src/app/main/ui/workspace/context_menu.cljs:548, src/app/main/ui/workspace/main_menu.cljs:408 msgid "workspace.shape.menu.hide-ui" msgstr "nuna / boye UI" -#: src/app/main/ui/workspace/context_menu.cljs:338 msgid "workspace.shape.menu.intersection" msgstr "mahada" -#: src/app/main/ui/workspace/context_menu.cljs:371, src/app/main/ui/workspace/sidebar/layer_item.cljs:153 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.lock" msgstr "kulle" -#: src/app/main/ui/workspace/context_menu.cljs:266 +#: src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.mask" msgstr "takunkumik" -#: src/app/main/ui/workspace/context_menu.cljs:145, src/app/main/ui/workspace/context_menu.cljs:545 +#: src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.paste" msgstr "manna" -#: src/app/main/ui/workspace/context_menu.cljs:331 msgid "workspace.shape.menu.path" msgstr "hanya" -#: src/app/main/ui/workspace/context_menu.cljs:432 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.remove-flex" msgstr "cire sassaukan tsari" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:436 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.reset-overrides" msgstr "sake saita sokewa" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:439 msgid "workspace.shape.menu.restore-main" msgstr "saita ainihin wurin" -#: src/app/main/ui/workspace/context_menu.cljs:174 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.select-layer" msgstr "zabi shimfida" -#: src/app/main/ui/workspace/context_menu.cljs:360, src/app/main/ui/workspace/sidebar/layer_item.cljs:144 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.show" msgstr "nuna" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:424 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.show-in-assets" msgstr "nuna ta kusuwar kadara" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:442, src/app/main/ui/workspace/sidebar/assets/components.cljs:586 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.show-main" msgstr "nuna ainihin wurin" -#: src/app/main/ui/workspace/context_menu.cljs:221 msgid "workspace.shape.menu.thumbnail-remove" msgstr "cire girman babban danyatsa" -#: src/app/main/ui/workspace/context_menu.cljs:223 msgid "workspace.shape.menu.thumbnail-set" msgstr "kara kamar girman babban yatsa" -#: src/app/main/ui/workspace/context_menu.cljs:326 msgid "workspace.shape.menu.transform-to-path" msgstr "sauya zuwa hanya" -#: src/app/main/ui/workspace/context_menu.cljs:257 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.ungroup" msgstr "raba rukunin" -#: src/app/main/ui/workspace/context_menu.cljs:332, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:70 msgid "workspace.shape.menu.union" msgstr "hadakan" -#: src/app/main/ui/workspace/context_menu.cljs:368, src/app/main/ui/workspace/sidebar/layer_item.cljs:152 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.unlock" msgstr "bude" -#: src/app/main/ui/workspace/context_menu.cljs:271 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.unmask" msgstr "bude takunkumi" #: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs -#, unused msgid "workspace.shape.menu.update-components-in-bulk" msgstr "sabunta ainihin wurin" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:445 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.update-main" msgstr "sabunta ainihin wurin" -#: src/app/main/ui/components/tab_container.cljs:50 msgid "workspace.sidebar.collapse" msgstr "ruguza a'ajiyar bayani" -#: src/app/main/ui/workspace/sidebar/collapsable_button.cljs:26 msgid "workspace.sidebar.expand" msgstr "kara yankin ma'agiyar bayani" -#: src/app/main/ui/workspace/right_header.cljs:231, src/app/main/ui/workspace/right_header.cljs:232 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.sidebar.history" msgstr "labari (%s)" -#: src/app/main/ui/workspace/sidebar/layers.cljs:522, src/app/main/ui/workspace/sidebar.cljs:100 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.sidebar.layers" msgstr "shafi" -#: src/app/main/ui/workspace/sidebar/layers.cljs:308, src/app/main/ui/workspace/sidebar/layers.cljs:380 msgid "workspace.sidebar.layers.components" msgstr "bangare" -#: src/app/main/ui/workspace/sidebar/layers.cljs:305, src/app/main/ui/workspace/sidebar/layers.cljs:338 msgid "workspace.sidebar.layers.frames" msgstr "allo" -#: src/app/main/ui/workspace/sidebar/layers.cljs:306, src/app/main/ui/workspace/sidebar/layers.cljs:352 msgid "workspace.sidebar.layers.groups" msgstr "rukuni" -#: src/app/main/ui/workspace/sidebar/layers.cljs:310, src/app/main/ui/workspace/sidebar/layers.cljs:408 msgid "workspace.sidebar.layers.images" msgstr "hoto" -#: src/app/main/ui/workspace/sidebar/layers.cljs:307, src/app/main/ui/workspace/sidebar/layers.cljs:366 msgid "workspace.sidebar.layers.masks" msgstr "takunkumi" -#: src/app/main/ui/workspace/sidebar/layers.cljs:289 msgid "workspace.sidebar.layers.search" msgstr "nemo shimfida" -#: src/app/main/ui/workspace/sidebar/layers.cljs:311, src/app/main/ui/workspace/sidebar/layers.cljs:422 msgid "workspace.sidebar.layers.shapes" msgstr "Siffa" -#: src/app/main/ui/workspace/sidebar/layers.cljs:309, src/app/main/ui/workspace/sidebar/layers.cljs:394 msgid "workspace.sidebar.layers.texts" msgstr "rubutu" -#: src/app/main/ui/viewer/inspect/attributes/svg.cljs:56, src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs:91 +#: src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs, src/app/main/ui/inspect/attributes/svg.cljs msgid "workspace.sidebar.options.svg-attrs.title" msgstr "shigo da shi SVG halaye" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs:217 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs msgid "workspace.sidebar.sitemap" msgstr "shafi" -#: src/app/main/ui/workspace/left_header.cljs:91 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.sitemap" msgstr "taswirar wuri" -#: src/app/main/ui/workspace/sidebar.cljs:120 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.assets" msgstr "kadara" -#: src/app/main/ui/workspace/palette.cljs:165, src/app/main/ui/workspace/palette.cljs:166 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.color-palette" msgstr "farantin kala (%s)" -#: src/app/main/ui/workspace/right_header.cljs:220, src/app/main/ui/workspace/right_header.cljs:221 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.comments" msgstr "ra'ayi (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:180, src/app/main/ui/workspace/top_toolbar.cljs:181 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.curve" msgstr "kwana(%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:160, src/app/main/ui/workspace/top_toolbar.cljs:161 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.ellipse" msgstr "siffar kwai (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:142, src/app/main/ui/workspace/top_toolbar.cljs:143 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.frame" msgstr "allo (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:59, src/app/main/ui/workspace/top_toolbar.cljs:60 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.image" msgstr "hoto (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:132, src/app/main/ui/workspace/top_toolbar.cljs:133 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.move" msgstr "motsa (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:189, src/app/main/ui/workspace/top_toolbar.cljs:190 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.path" msgstr "hanya (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:151, src/app/main/ui/workspace/top_toolbar.cljs:152 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.rect" msgstr "Rectangle (%s)" #: src/app/main/ui/workspace/left_toolbar.cljs -#, unused msgid "workspace.toolbar.shortcuts" msgstr "yanke (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:169, src/app/main/ui/workspace/top_toolbar.cljs:170 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.text" msgstr "rubutu (%s)" -#: src/app/main/ui/workspace/palette.cljs:173, src/app/main/ui/workspace/palette.cljs:174 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.text-palette" msgstr "rubutub rubutu (%s)" -#: src/app/main/ui/workspace/sidebar/history.cljs:342 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.empty" msgstr "babu labaran da su ka canja a yanzu" -#: src/app/main/ui/workspace/sidebar/history.cljs:147 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.entry.delete" msgstr "gogagge %s" -#: src/app/main/ui/workspace/sidebar/history.cljs:146 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.entry.modify" msgstr "gyaggyarawa %s" -#: src/app/main/ui/workspace/sidebar/history.cljs:148 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.entry.move" msgstr "motsa abun" -#: src/app/main/ui/workspace/sidebar/history.cljs:111 msgid "workspace.undo.entry.multiple.circle" msgstr "da'ira" -#: src/app/main/ui/workspace/sidebar/history.cljs:112 msgid "workspace.undo.entry.multiple.color" msgstr "kadarar kala" -#: src/app/main/ui/workspace/sidebar/history.cljs:113 msgid "workspace.undo.entry.multiple.component" msgstr "bangare" -#: src/app/main/ui/workspace/sidebar/history.cljs:114 msgid "workspace.undo.entry.multiple.curve" msgstr "kwana" -#: src/app/main/ui/workspace/sidebar/history.cljs:115 msgid "workspace.undo.entry.multiple.frame" msgstr "allo" -#: src/app/main/ui/workspace/sidebar/history.cljs:116 msgid "workspace.undo.entry.multiple.group" msgstr "rukunis" -#: src/app/main/ui/workspace/sidebar/history.cljs:117 msgid "workspace.undo.entry.multiple.media" msgstr "kadarar zane" -#: src/app/main/ui/workspace/sidebar/history.cljs:118 msgid "workspace.undo.entry.multiple.multiple" msgstr "abu" -#: src/app/main/ui/workspace/sidebar/history.cljs:119 msgid "workspace.undo.entry.multiple.page" msgstr "shafi" -#: src/app/main/ui/workspace/sidebar/history.cljs:120 msgid "workspace.undo.entry.multiple.path" msgstr "hanya" -#: src/app/main/ui/workspace/sidebar/history.cljs:121 msgid "workspace.undo.entry.multiple.rect" msgstr "rectangles" -#: src/app/main/ui/workspace/sidebar/history.cljs:122 msgid "workspace.undo.entry.multiple.shape" msgstr "siffa" -#: src/app/main/ui/workspace/sidebar/history.cljs:123 msgid "workspace.undo.entry.multiple.text" msgstr "rubutu" -#: src/app/main/ui/workspace/sidebar/history.cljs:124 msgid "workspace.undo.entry.multiple.typography" msgstr "rubutun rubuta kadara" -#: src/app/main/ui/workspace/sidebar/history.cljs:145 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.entry.new" msgstr "sabo %s" -#: src/app/main/ui/workspace/sidebar/history.cljs:125 msgid "workspace.undo.entry.single.circle" msgstr "da'ira" -#: src/app/main/ui/workspace/sidebar/history.cljs:126 msgid "workspace.undo.entry.single.color" msgstr "kalar kadara" -#: src/app/main/ui/workspace/sidebar/history.cljs:127 msgid "workspace.undo.entry.single.component" msgstr "bangarori" -#: src/app/main/ui/workspace/sidebar/history.cljs:128 msgid "workspace.undo.entry.single.curve" msgstr "lankwasa" -#: src/app/main/ui/workspace/sidebar/history.cljs:129 msgid "workspace.undo.entry.single.frame" msgstr "allo" -#: src/app/main/ui/workspace/sidebar/history.cljs:130 msgid "workspace.undo.entry.single.group" msgstr "rukuni" -#: src/app/main/ui/workspace/sidebar/history.cljs:131 msgid "workspace.undo.entry.single.image" msgstr "hoto" -#: src/app/main/ui/workspace/sidebar/history.cljs:132 msgid "workspace.undo.entry.single.media" msgstr "kadarar zanen hotuna" -#: src/app/main/ui/workspace/sidebar/history.cljs:133 msgid "workspace.undo.entry.single.multiple" msgstr "wani abu" -#: src/app/main/ui/workspace/sidebar/history.cljs:134 msgid "workspace.undo.entry.single.page" msgstr "shafi" -#: src/app/main/ui/workspace/sidebar/history.cljs:135 msgid "workspace.undo.entry.single.path" msgstr "hanya" -#: src/app/main/ui/workspace/sidebar/history.cljs:136 msgid "workspace.undo.entry.single.rect" msgstr "rectangle" -#: src/app/main/ui/workspace/sidebar/history.cljs:137 msgid "workspace.undo.entry.single.shape" msgstr "siffa" -#: src/app/main/ui/workspace/sidebar/history.cljs:138 msgid "workspace.undo.entry.single.text" msgstr "sako" -#: src/app/main/ui/workspace/sidebar/history.cljs:139 msgid "workspace.undo.entry.single.typography" msgstr "rubutun rubuta kadara" -#: src/app/main/ui/workspace/sidebar/history.cljs:149 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.entry.unknown" msgstr "yanayi fiye da %s" -#: src/app/main/ui/workspace/sidebar/history.cljs:335 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.title" msgstr "labari" -#: src/app/main/data/workspace/libraries.cljs:1094 +#: src/app/main/data/workspace/libraries.cljs msgid "workspace.updates.dismiss" msgstr "watsar" -#: src/app/main/data/workspace/libraries.cljs:1092 +#: src/app/main/data/workspace/libraries.cljs msgid "workspace.updates.more-info" msgstr "bayanai masu yawa" -#: src/app/main/data/workspace/libraries.cljs:1090 +#: src/app/main/data/workspace/libraries.cljs msgid "workspace.updates.there-are-updates" msgstr "a kwai na zamani a rababban ma'ajiya" -#: src/app/main/data/workspace/libraries.cljs:1097 +#: src/app/main/data/workspace/libraries.cljs msgid "workspace.updates.update" msgstr "sabintawas" -#, unused msgid "workspace.viewport.click-to-close-path" msgstr "latsa kusa da hanya" diff --git a/frontend/translations/he.po b/frontend/translations/he.po index b2c68d2cdc..abdf5f5b38 100644 --- a/frontend/translations/he.po +++ b/frontend/translations/he.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "PO-Revision-Date: 2024-06-17 08:07+0000\n" "Last-Translator: Anonymous \n" -"Language-Team: Hebrew " -"\n" +"Language-Team: Hebrew \n" "Language: he\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" @@ -12,206 +12,207 @@ msgstr "" "n % 10 == 0) ? 2 : 3));\n" "X-Generator: Weblate 5.6-dev\n" -#: src/app/main/ui/auth/register.cljs:151, src/app/main/ui/viewer/login.cljs:104 +#: src/app/main/ui/auth/register.cljs msgid "auth.already-have-account" msgstr "כבר יש לך חשבון?" -#: src/app/main/ui/auth/register.cljs:299 +#: src/app/main/ui/auth/register.cljs msgid "auth.check-your-email" -msgstr "נא לחפש בדוא״ל הנכנס שלך וללחוץ על הקישור כדי לאמת ולהתחיל להשתמש ב־Penpot." +msgstr "" +"נא לחפש בדוא״ל הנכנס שלך וללחוץ על הקישור כדי לאמת ולהתחיל להשתמש ב־Penpot." -#: src/app/main/ui/auth/recovery.cljs:78 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.confirm-password" msgstr "אישור הסיסמה" -#: src/app/main/ui/auth/register.cljs:163 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.create-demo-account" msgstr "יצירת חשבון הדגמה" #: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs -#, unused msgid "auth.create-demo-profile" msgstr "מעניין אותך רק להתנסות?" -#: src/app/main/ui/auth/login.cljs:43 +#: src/app/main/ui/auth/register.cljs msgid "auth.demo-warning" -msgstr "זה שירות ניסיוני, לא להשתמש בו לעבודה אמתית, המיזמים יימחקו מדי פעם בפעם." +msgstr "" +"זה שירות ניסיוני, לא להשתמש בו לעבודה אמתית, המיזמים יימחקו מדי פעם בפעם." -#: src/app/main/ui/auth/login.cljs:189, src/app/main/ui/viewer/login.cljs:90 +#: src/app/main/ui/auth/login.cljs msgid "auth.forgot-password" msgstr "שכחת סיסמה?" -#: src/app/main/ui/auth/register.cljs:254 +#: src/app/main/ui/auth/register.cljs msgid "auth.fullname" msgstr "שם מלא" -#: src/app/main/ui/auth/login.cljs:282 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-account-title" msgstr "כניסה לחשבון שלי" -#: src/app/main/ui/auth/register.cljs:155, src/app/main/ui/viewer/login.cljs:107 +#: src/app/main/ui/auth/register.cljs +#, fuzzy msgid "auth.login-here" msgstr "כניסה מכאן" -#: src/app/main/ui/auth/login.cljs:195 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-submit" msgstr "כניסה" -#: src/app/main/ui/auth/login.cljs:285 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-tagline" msgstr "Penpot הוא כלי בקוד פתוח לשיתוף עיצוב וקוד" -#: src/app/main/ui/auth/login.cljs:222 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-github-submit" msgstr "GitHub" -#: src/app/main/ui/auth/login.cljs:228 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-gitlab-submit" msgstr "GitLab" -#: src/app/main/ui/auth/login.cljs:216 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-google-submit" msgstr "Google" -#: src/app/main/ui/auth/login.cljs:201 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-ldap-submit" msgstr "LDAP" -#: src/app/main/ui/auth/login.cljs:234, src/app/main/ui/auth/login.cljs:255 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-oidc-submit" msgstr "‎OpenID Connect" -#: src/app/main/ui/auth/register.cljs:217, src/app/main/ui/dashboard/team_form.cljs:76, src/app/main/ui/onboarding/team_choice.cljs:180, src/app/main/ui/settings/access_tokens.cljs:66, src/app/main/ui/settings/feedback.cljs:34, src/app/main/ui/settings/profile.cljs:45, src/app/main/ui/workspace/sidebar/assets/groups.cljs:108 +#: src/app/main/ui/settings/team-form.cljs, src/app/main/ui/auth/register.cljs, +#: src/app/main/ui/dashboard/team_form.cljs, +#: src/app/main/ui/onboarding/team_choice.cljs, +#: src/app/main/ui/settings/access_tokens.cljs, +#: src/app/main/ui/settings/feedback.cljs, +#: src/app/main/ui/settings/profile.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "auth.name.not-all-space" msgstr "השם חייב להכיל תווים שאינם רווחים." -#: src/app/main/ui/auth/register.cljs:218, src/app/main/ui/dashboard/team_form.cljs:77, src/app/main/ui/onboarding/team_choice.cljs:181, src/app/main/ui/settings/access_tokens.cljs:67, src/app/main/ui/settings/feedback.cljs:33, src/app/main/ui/settings/profile.cljs:44, src/app/main/ui/workspace/sidebar/assets/groups.cljs:109 +#: src/app/main/ui/auth/register.cljs, +#: src/app/main/ui/dashboard/team_form.cljs, +#: src/app/main/ui/onboarding/team_choice.cljs, +#: src/app/main/ui/settings/access_tokens.cljs, +#: src/app/main/ui/settings/feedback.cljs, +#: src/app/main/ui/settings/profile.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "auth.name.too-long" msgstr "השם חייב להכיל 250 תווים לכל היותר." -#: src/app/main/ui/auth/recovery.cljs:71 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.new-password" msgstr "נא להקליד סיסמה חדשה" -#: src/app/main/ui/auth/recovery.cljs:42 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.notifications.invalid-token-error" msgstr "אסימון השחזור שגוי." -#: src/app/main/ui/auth/recovery.cljs:46 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.notifications.password-changed-successfully" msgstr "הסיסמה הוחלפה בהצלחה" -#: src/app/main/ui/auth/recovery_request.cljs:57 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.notifications.profile-not-verified" msgstr "הפרופיל לא עבר אימות, נא לאמת את הפרופיל לפני המשך התהליך." -#: src/app/main/ui/auth/recovery_request.cljs:40 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.notifications.recovery-token-sent" msgstr "קישור לשחזור סיסמה נשלח לתיבת הדוא״ל הנכנס שלך." -#: src/app/main/ui/auth/verify_token.cljs:47 +#: src/app/main/ui/auth/verify_token.cljs msgid "auth.notifications.team-invitation-accepted" msgstr "הצטרפת לצוות בהצלחה" -#: src/app/main/ui/auth/login.cljs:179, src/app/main/ui/auth/register.cljs:115 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.password" msgstr "סיסמה" -#: src/app/main/ui/auth/register.cljs:114 +#: src/app/main/ui/auth/register.cljs msgid "auth.password-length-hint" msgstr "8 תווים לפחות" -#: src/app/main/ui/auth/recovery.cljs:61, src/app/main/ui/auth/recovery.cljs:62, src/app/main/ui/auth/register.cljs:81, src/app/main/ui/settings/password.cljs:75, src/app/main/ui/settings/password.cljs:76, src/app/main/ui/settings/password.cljs:77 +#: src/app/main/ui/auth/register.cljs msgid "auth.password-not-empty" msgstr "הסיסמה חייבת להכיל תווים שאינם רווחים." -#: src/app/main/ui/auth.cljs:41 msgid "auth.privacy-policy" msgstr "מדיניות פרטיות" -#: src/app/main/ui/auth/recovery_request.cljs:88 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-submit" msgstr "שחזור סיסמה" -#: src/app/main/ui/auth/recovery_request.cljs:101 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-subtitle" msgstr "נשלח לך הודעה בדוא״ל עם ההנחיות" -#: src/app/main/ui/auth/recovery_request.cljs:100 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-title" msgstr "שכחת סיסמה?" -#: src/app/main/ui/auth/recovery.cljs:82 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.recovery-submit" msgstr "החלפת הסיסמה שלך" -#: src/app/main/ui/auth/login.cljs:298, src/app/main/ui/viewer/login.cljs:93 +#: src/app/main/ui/auth/login.cljs msgid "auth.register" msgstr "אין לך חשבון עדיין?" -#: src/app/main/ui/auth/login.cljs:302, src/app/main/ui/auth/register.cljs:121, src/app/main/ui/auth/register.cljs:263, src/app/main/ui/viewer/login.cljs:97 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.register-submit" msgstr "יצירת חשבון" -#: src/app/main/ui/auth/register.cljs:140 +#: src/app/main/ui/auth/register.cljs msgid "auth.register-title" msgstr "יצירת חשבון" #: src/app/main/ui/auth.cljs -#, unused msgid "auth.sidebar-tagline" msgstr "הפתרון בקוד פתוח לעיצוב ויצירת אבטיפוס." -#: src/app/main/ui/auth.cljs:33, src/app/main/ui/dashboard/sidebar.cljs:1022, src/app/main/ui/workspace/main_menu.cljs:150 msgid "auth.terms-of-service" msgstr "תנאי השירות" -#, unused +#: src/app/main/ui/auth/register.cljs msgid "auth.terms-privacy-agreement" msgstr "יצירת חשבון חדש מהווה את הסכמתך לתנאי השירות ולמדיניות הפרטיות." -#: src/app/main/ui/auth/register.cljs:297 +#: src/app/main/ui/auth/register.cljs msgid "auth.verification-email-sent" msgstr "שלחנו הודעת דוא״ל לאימות אל" #: src/app/main/ui/onboarding/questions.cljs -#, unused msgid "branding-illustrations-marketing-pieces" msgstr "…מיתוג, איורים, חומרים שיווקיים ועוד." -#: src/app/main/ui/workspace/libraries.cljs:228 msgid "common.publish" msgstr "פרסום" -#: src/app/main/ui/viewer/share_link.cljs:304, src/app/main/ui/viewer/share_link.cljs:314 msgid "common.share-link.all-users" msgstr "כל משתמשי Penpot" -#: src/app/main/ui/viewer/share_link.cljs:198 msgid "common.share-link.confirm-deletion-link-description" msgstr "להסיר את הקישור הזה? ביצוע פעולה זו תמנע מכולם לגשת אליו" -#: src/app/main/ui/viewer/share_link.cljs:259, src/app/main/ui/viewer/share_link.cljs:289 msgid "common.share-link.current-tag" msgstr "(נוכחי)" -#: src/app/main/ui/viewer/share_link.cljs:207, src/app/main/ui/viewer/share_link.cljs:214 msgid "common.share-link.destroy-link" msgstr "השמדת קישור" -#: src/app/main/ui/viewer/share_link.cljs:221 msgid "common.share-link.get-link" msgstr "קבלת קישור" -#: src/app/main/ui/viewer/share_link.cljs:139 msgid "common.share-link.link-copied-success" msgstr "הקישור הועתק בהצלחה" -#: src/app/main/ui/viewer/share_link.cljs:231 msgid "common.share-link.manage-ops" msgstr "ניהול הרשאות" -#: src/app/main/ui/viewer/share_link.cljs:277 msgid "common.share-link.page-shared" msgid_plural "common.share-link.page-shared" msgstr[0] "עמוד שותף" @@ -219,300 +220,271 @@ msgstr[1] "%s עמודים שותפו" msgstr[2] "%s עמודים שותפו" msgstr[3] "%s עמודים שותפו" -#: src/app/main/ui/viewer/share_link.cljs:298 msgid "common.share-link.permissions-can-comment" msgstr "הרשאות תגובה" -#: src/app/main/ui/viewer/share_link.cljs:308 msgid "common.share-link.permissions-can-inspect" msgstr "הרשאות לחקירת הקוד" -#: src/app/main/ui/viewer/share_link.cljs:193 msgid "common.share-link.permissions-hint" msgstr "כל מי שיש לו את הקישור יכול לגשת" -#: src/app/main/ui/viewer/share_link.cljs:241 msgid "common.share-link.permissions-pages" msgstr "עמודים ששותפו" -#: src/app/main/ui/viewer/share_link.cljs:183 msgid "common.share-link.placeholder" msgstr "הקישור לשיתוף יופיע כאן" -#: src/app/main/ui/viewer/share_link.cljs:303, src/app/main/ui/viewer/share_link.cljs:313 msgid "common.share-link.team-members" msgstr "רק חברי צוות" -#: src/app/main/ui/viewer/share_link.cljs:171 msgid "common.share-link.title" msgstr "שיתוף אבות טיפוס" -#: src/app/main/ui/viewer/share_link.cljs:269 msgid "common.share-link.view-all" msgstr "בחירה בהכול" -#: src/app/main/ui/workspace/libraries.cljs:224 msgid "common.unpublish" msgstr "ביטול פרסום" -#: src/app/main/ui/dashboard/projects.cljs:85 +#: src/app/main/ui/dashboard/projects.cljs msgid "dasboard.team-hero.management" msgstr "ניהול צוות" -#: src/app/main/ui/dashboard/projects.cljs:84 +#: src/app/main/ui/dashboard/projects.cljs msgid "dasboard.team-hero.text" -msgstr "Penpot מיועד לצוותים. אפשר להזמין חברים כדי לעבוד ביחד על מיזמים וקבצים" +msgstr "" +"Penpot מיועד לצוותים. אפשר להזמין חברים כדי לעבוד ביחד על מיזמים וקבצים" -#: src/app/main/ui/dashboard/projects.cljs:82 +#: src/app/main/ui/dashboard/projects.cljs msgid "dasboard.team-hero.title" msgstr "להתגבש כקבוצה!" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.tutorial-hero.info" msgstr "כאן נלמד את היסודות של Penpot תוך השתעשעות עם המדריך המעשי הזה." #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.tutorial-hero.start" msgstr "התחלת המדריך" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.tutorial-hero.title" msgstr "מדריך מעשי" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.walkthrough-hero.info" msgstr "סיור במרחבי Penpot ועריכת היכרות עם יכולות המפתח שלו." #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.walkthrough-hero.start" msgstr "התחלת הסיור" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.walkthrough-hero.title" msgstr "סיור בנבכי מנשק המשתמש" -#: src/app/main/ui/settings/access_tokens.cljs:115 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.copied-success" msgstr "האסימון הועתק" -#: src/app/main/ui/settings/access_tokens.cljs:202 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.create" msgstr "יצירת אסימון חדש" -#: src/app/main/ui/settings/access_tokens.cljs:76 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.create.success" msgstr "אסימון הגישה נוצר בהצלחה." -#: src/app/main/ui/settings/access_tokens.cljs:300 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.empty.add-one" msgstr "נא ללחוץ על הכפתור „יצירת אסימון חדש” כדי ליצור אחד חדש." -#: src/app/main/ui/settings/access_tokens.cljs:299 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.empty.no-access-tokens" msgstr "אין לך אסימונים עדיין." -#: src/app/main/ui/settings/access_tokens.cljs:53 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.errors-required-name" msgstr "השם הוא בגדר חובה" -#: src/app/main/ui/settings/access_tokens.cljs:147 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-180-days" msgstr "180 יום" -#: src/app/main/ui/settings/access_tokens.cljs:144 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-30-days" msgstr "30 יום" -#: src/app/main/ui/settings/access_tokens.cljs:145 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-60-days" msgstr "60 יום" -#: src/app/main/ui/settings/access_tokens.cljs:146 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-90-days" msgstr "90 יום" -#: src/app/main/ui/settings/access_tokens.cljs:143 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-never" msgstr "לעולם לא" -#: src/app/main/ui/settings/access_tokens.cljs:282 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expired-on" msgstr "התוקף פג ב־%s" -#: src/app/main/ui/settings/access_tokens.cljs:283 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expires-on" msgstr "התוקף יפוג ב־%s" -#: src/app/main/ui/settings/access_tokens.cljs:281 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.no-expiration" msgstr "אין תאריך תפוגה" -#: src/app/main/ui/settings/access_tokens.cljs:197 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.personal" msgstr "אסימוני כניסה אישיים" -#: src/app/main/ui/settings/access_tokens.cljs:198 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.personal.description" msgstr "" "אסימוני גישה אישיים הם דרך חלופית למערכת אימות הכניסה/סיסמה שלנו ומאפשרים " "ליישום לגשת ל־API הפנימי של Penpot" -#: src/app/main/ui/settings/access_tokens.cljs:154 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.token-will-expire" msgstr "האסימון יפוג ב־%s" -#: src/app/main/ui/settings/access_tokens.cljs:155 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.token-will-not-expire" msgstr "לאסימון אין תאריך תפוגה" -#: src/app/main/ui/dashboard/file_menu.cljs:291, src/app/main/ui/workspace/main_menu.cljs:572 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.add-shared" msgstr "הוספת ספריה משותפת" -#: src/app/main/ui/settings/profile.cljs:75 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.change-email" msgstr "החלפת דוא״ל" -#: src/app/main/data/dashboard.cljs:762, src/app/main/data/dashboard.cljs:983 +#: src/app/main/data/dashboard.cljs, src/app/main/data/dashboard.cljs msgid "dashboard.copy-suffix" msgstr "(עותק)" -#: src/app/main/ui/dashboard/sidebar.cljs:338 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.create-new-team" msgstr "יצירת צוות חדש" -#: src/app/main/ui/components/context_menu_a11y.cljs:256, src/app/main/ui/dashboard/sidebar.cljs:646 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.default-team-name" msgstr "ה־Penpot שלך" -#: src/app/main/ui/dashboard/sidebar.cljs:571 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.delete-team" msgstr "מחיקת צוות" -#: src/app/main/ui/dashboard/file_menu.cljs:296, src/app/main/ui/workspace/main_menu.cljs:589 msgid "dashboard.download-binary-file" msgstr "הורדת קובץ Penpot‏ (‎.penpot)" -#: src/app/main/ui/dashboard/file_menu.cljs:300, src/app/main/ui/workspace/main_menu.cljs:597 msgid "dashboard.download-standard-file" msgstr "הורדת קובץ תקני (‎.svg + .json)" -#: src/app/main/ui/dashboard/file_menu.cljs:276, src/app/main/ui/dashboard/project_menu.cljs:90 +#: src/app/main/ui/dashboard/project_menu.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.duplicate" msgstr "שכפול" -#: src/app/main/ui/dashboard/file_menu.cljs:240 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.duplicate-multi" msgstr "שכפול %s קבצים" -#: src/app/main/ui/dashboard/placeholder.cljs:32 -#, markdown +#: src/app/main/ui/dashboard/grid.cljs msgid "dashboard.empty-placeholder-drafts" msgstr "" "קבצים שנוספו לספריות יתווספו לכאן. כדאי לנסות לשתף את הקבצים שלך או להוסיף " "אותם מ[הספריות והתבניות](https://penpot.app/libraries-templates)." -#: src/app/main/ui/dashboard/file_menu.cljs:249 msgid "dashboard.export-binary-multi" msgstr "הורדת %s קובצי Penpot‏ (‎.penpot)" -#: src/app/main/ui/workspace/main_menu.cljs:605 msgid "dashboard.export-frames" msgstr "ייצוא לוחות אומנות כ־PDF" -#: src/app/main/ui/export.cljs:201 +#: src/app/main/ui/export.cljs msgid "dashboard.export-frames.title" msgstr "ייצוא כ־PDF" -#, unused msgid "dashboard.export-multi" msgstr "ייצוא קובצי %s של Penpot" -#: src/app/main/ui/export.cljs:109 +#: src/app/main/ui/export.cljs msgid "dashboard.export-multiple.selected" msgstr "נבחרו %s מתוך %s רכיבים" -#: src/app/main/ui/workspace/main_menu.cljs:578 +#: src/app/main/ui/workspace/header.cljs msgid "dashboard.export-shapes" msgstr "ייצוא" -#: src/app/main/ui/export.cljs:180 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.how-to" -msgstr "אפשר להוסיף הגדרות ייצוא לרכיבים ממאפייני העיצוב (מתחתית הסרגל שמשמאל)." +msgstr "" +"אפשר להוסיף הגדרות ייצוא לרכיבים ממאפייני העיצוב (מתחתית הסרגל שמשמאל)." -#: src/app/main/ui/export.cljs:184 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.how-to-link" msgstr "מידע על הגדרות ייצוא ב־Penpot." -#: src/app/main/ui/export.cljs:179 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.no-elements" msgstr "אין רכיבים עם הגדרות ייצוא." -#: src/app/main/ui/export.cljs:190 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.title" msgstr "ייצוא הבחירה" -#: src/app/main/ui/dashboard/file_menu.cljs:252 msgid "dashboard.export-standard-multi" msgstr "הורדת %s קבצים תקניים (‎.svg + .json)" -#: src/app/main/ui/export.cljs:427 msgid "dashboard.export.detail" msgstr "* עשוי לכלול רכיבים, גרפיקה, צבעים ו/או טיפוגרפיות." -#: src/app/main/ui/export.cljs:426 msgid "dashboard.export.explain" msgstr "" "אחד או יותר מהקבצים שברצונך לייצא משתמשים בספריות משותפות. מה לעשות עם " "המשאבים שלהן*?" -#: src/app/main/ui/export.cljs:435 msgid "dashboard.export.options.all.message" msgstr "קבצים עם ספריות משותפות יצורפו לייצוא, תוך שימור הקישוריות שלהם." -#: src/app/main/ui/export.cljs:436 msgid "dashboard.export.options.all.title" msgstr "ייצוא ספריות משותפות" -#: src/app/main/ui/export.cljs:437 msgid "dashboard.export.options.detach.message" msgstr "ספריות משותפות לא יצורפו לייצוא ואף משאב לא יתווסף לספריה. " -#: src/app/main/ui/export.cljs:438 msgid "dashboard.export.options.detach.title" msgstr "להתייחס למשאבים בספריות משותפות כעצמים בסיסיים" -#: src/app/main/ui/export.cljs:439 msgid "dashboard.export.options.merge.message" msgstr "הקובץ שלך ייוצא כשכל המשאבים החיצוניים ממוזגים לספריית הקבצים." -#: src/app/main/ui/export.cljs:440 msgid "dashboard.export.options.merge.title" msgstr "לכלול משאבי ספריה משותפת בספריות הקבצים" -#: src/app/main/ui/export.cljs:418 msgid "dashboard.export.title" msgstr "ייצוא קבצים" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:309 msgid "dashboard.fonts.deleted-placeholder" msgstr "הגופן נמחק" -#: src/app/main/ui/dashboard/fonts.cljs:206 +#: src/app/main/ui/dashboard/fonts.cljs msgid "dashboard.fonts.dismiss-all" msgstr "להתעלם מהכול" -#: src/app/main/ui/dashboard/fonts.cljs:436 msgid "dashboard.fonts.empty-placeholder" msgstr "גופנים שהעלית יופיעו כאן." -#: src/app/main/ui/dashboard/fonts.cljs:194 +#: src/app/main/ui/dashboard/fonts.cljs msgid "dashboard.fonts.fonts-added" msgid_plural "dashboard.fonts.fonts-added" msgstr[0] "נוסף גופן" @@ -520,54 +492,43 @@ msgstr[1] "נוספו 2 גופנים" msgstr[2] "נוספו %s גופנים" msgstr[3] "נוספו %s גופנים" -#: src/app/main/ui/dashboard/fonts.cljs:170 -#, markdown msgid "dashboard.fonts.hero-text1" msgstr "" -"כל גופן דפדפן שיועלה כאן יתווסף לרשימת משפחת הגופנים שזמין במאפייני הטקסט " -"של הקבצים של הצוות הזה. גופנים מאותו שם של משפחת גופנים יקובצו תחת **משפחת " +"כל גופן דפדפן שיועלה כאן יתווסף לרשימת משפחת הגופנים שזמין במאפייני הטקסט של " +"הקבצים של הצוות הזה. גופנים מאותו שם של משפחת גופנים יקובצו תחת **משפחת " "גופנים יחידה**. ניתן להעלות גופנים מהסוגים הבאים: **TTF,‏ OTF ו־WOFF** (אחד " "הסוגים יספיק)." -#: src/app/main/ui/dashboard/fonts.cljs:182 -#, markdown msgid "dashboard.fonts.hero-text2" msgstr "" "עליך להעלות גופנים בבעלותך או שיש לך רישיון להשתמש בהם ב־Penpot. ניתן למצוא " -"על כך מידע נוסף בסעיף זכויות התוכן של [תנאי השירות של " -"Penpot](https://penpot.app/terms.html). אפשר גם לקרוא גם על [רישוי " -"גופנים](https://www.typography.com/faq)." +"על כך מידע נוסף בסעיף זכויות התוכן של [תנאי השירות של Penpot](https://penpot." +"app/terms.html). אפשר גם לקרוא גם על [רישוי גופנים](https://www.typography." +"com/faq)." -#: src/app/main/ui/dashboard/fonts.cljs:202 +#: src/app/main/ui/dashboard/fonts.cljs msgid "dashboard.fonts.upload-all" msgstr "להעלות הכול" -#: src/app/main/ui/dashboard/fonts.cljs:187 -#, markdown msgid "dashboard.fonts.warning-text" msgstr "" "זיהינו בעיה אפשרית בגודפים שלך ביחס למדדים אנכיים למערכת הפעלה שונות. כדי " -"לבדוק את זה אפשר להשתמש בשירות מדידות אנכיות של גופנים כגון " -"[זה]](https://vertical-metrics.netlify.app/). בנוסף, המלצתנו היא להשתמש " -"ב־[Transfonter](https://transfonter.org/) כדי לייצר גופני רשת ולתקן שגיאות. " +"לבדוק את זה אפשר להשתמש בשירות מדידות אנכיות של גופנים כגון [זה]](https://" +"vertical-metrics.netlify.app/). בנוסף, המלצתנו היא להשתמש ב־[Transfonter]" +"(https://transfonter.org/) כדי לייצר גופני רשת ולתקן שגיאות. " -#: src/app/main/ui/dashboard/import.cljs:472, src/app/main/ui/dashboard/project_menu.cljs:108 msgid "dashboard.import" msgstr "ייבוא קובצי Penpot" -#: src/app/main/ui/dashboard/import.cljs:304, src/app/worker/import.cljs:753, src/app/worker/import.cljs:755 msgid "dashboard.import.analyze-error" msgstr "אופס! לא הצלחנו לייבא את הקובץ הזה" -#, unused msgid "dashboard.import.analyze-error.components-v2" msgstr "קובץ עם רכיבים בגרסה 2 מופעל אך הצוות הזה לא תומך בזה עדיין." -#: src/app/main/ui/dashboard/import.cljs:308 msgid "dashboard.import.import-error" msgstr "אירעה תקלה בייבוא הקובץ. הוא לא ייובא." -#: src/app/main/ui/dashboard/import.cljs:493 msgid "dashboard.import.import-message" msgid_plural "dashboard.import.import-message" msgstr[0] "קובץ יובא בהצלחה." @@ -575,176 +536,166 @@ msgstr[1] "%s קבצים יובאו בהצלחה." msgstr[2] "%s קבצים יובאו בהצלחה." msgstr[3] "%s קבצים יובאו בהצלחה." -#: src/app/main/ui/dashboard/import.cljs:481, src/app/main/ui/dashboard/import.cljs:488 msgid "dashboard.import.import-warning" msgstr "חלק מהקבצים הכילו פריטים שגויים שהוסרו." -#: src/app/main/ui/dashboard/import.cljs:144 msgid "dashboard.import.progress.process-colors" msgstr "עיבוד צבעים" -#: src/app/main/ui/dashboard/import.cljs:153 msgid "dashboard.import.progress.process-components" msgstr "עיבוד רכיבים" -#: src/app/main/ui/dashboard/import.cljs:150 msgid "dashboard.import.progress.process-media" msgstr "עיבוד מדיה" -#: src/app/main/ui/dashboard/import.cljs:141 msgid "dashboard.import.progress.process-page" msgstr "עיבוד עמוד: %s" -#: src/app/main/ui/dashboard/import.cljs:147 msgid "dashboard.import.progress.process-typographies" msgstr "עיבוד טיפוגרפיות" -#: src/app/main/ui/dashboard/import.cljs:135 msgid "dashboard.import.progress.upload-data" msgstr "הנתונים נשלחים לשרת (%s/%s)" -#: src/app/main/ui/dashboard/import.cljs:138 msgid "dashboard.import.progress.upload-media" msgstr "נשלח קובץ: %s" -#: src/app/main/ui/dashboard/team.cljs:109 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.invite-profile" msgstr "הזמנת אנשים" -#: src/app/main/ui/dashboard/sidebar.cljs:547, src/app/main/ui/dashboard/sidebar.cljs:556, src/app/main/ui/dashboard/sidebar.cljs:563, src/app/main/ui/dashboard/team.cljs:312 +#: src/app/main/ui/dashboard/sidebar.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.leave-team" msgstr "עזיבת הצוות" -#: src/app/main/ui/dashboard/templates.cljs:88, src/app/main/ui/dashboard/templates.cljs:163 msgid "dashboard.libraries-and-templates" msgstr "ספריות ותבניות" -#: src/app/main/ui/dashboard/templates.cljs:164 msgid "dashboard.libraries-and-templates.explore" msgstr "עיון ביותר כאלה והסברים כיצד לתרום להן" -#: src/app/main/ui/dashboard/import.cljs:365 msgid "dashboard.libraries-and-templates.import-error" msgstr "אירעה שגיאה בייבוא התבנית והיא לא ייובאה." -#: src/app/main/ui/dashboard/libraries.cljs:53 +#: src/app/main/ui/dashboard/libraries.cljs msgid "dashboard.libraries-title" msgstr "ספריות משותפות" -#: src/app/main/ui/dashboard/placeholder.cljs:45 +#: src/app/main/ui/dashboard/grid.cljs msgid "dashboard.loading-files" msgstr "הקבצים שלך נטענים…" -#: src/app/main/ui/dashboard/fonts.cljs:431 msgid "dashboard.loading-fonts" msgstr "הגופנים שלך נטענים…" -#: src/app/main/ui/dashboard/file_menu.cljs:281, src/app/main/ui/dashboard/project_menu.cljs:100 +#: src/app/main/ui/dashboard/project_menu.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.move-to" msgstr "העברה אל" -#: src/app/main/ui/dashboard/file_menu.cljs:245 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.move-to-multi" msgstr "העברה של %s קבצים אל" -#: src/app/main/ui/dashboard/file_menu.cljs:226 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.move-to-other-team" msgstr "העברה לצוות אחר" -#: src/app/main/ui/dashboard/files.cljs:105, src/app/main/ui/dashboard/projects.cljs:252, src/app/main/ui/dashboard/projects.cljs:253 +#: src/app/main/ui/dashboard/projects.cljs, +#: src/app/main/ui/dashboard/files.cljs msgid "dashboard.new-file" msgstr "+ קובץ חדש" -#: src/app/main/data/dashboard.cljs:958, src/app/main/data/dashboard.cljs:1181 +#: src/app/main/data/dashboard.cljs msgid "dashboard.new-file-prefix" msgstr "קובץ חדש" -#: src/app/main/ui/dashboard/projects.cljs:55 +#: src/app/main/ui/dashboard/projects.cljs msgid "dashboard.new-project" msgstr "+ מיזם חדש" -#: src/app/main/data/dashboard.cljs:726, src/app/main/data/dashboard.cljs:1184 +#: src/app/main/data/dashboard.cljs msgid "dashboard.new-project-prefix" msgstr "מיזם חדש" -#: src/app/main/ui/dashboard/search.cljs:60 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.no-matches-for" msgstr "לא נמצאו תוצאות לחיפוש אחר „%s”" -#: src/app/main/ui/dashboard/sidebar.cljs:827 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.no-projects-placeholder" msgstr "מיזמים נעוצים יופיעו כאן" -#: src/app/main/ui/auth/verify_token.cljs:33 +#: src/app/main/ui/auth/verify_token.cljs msgid "dashboard.notifications.email-changed-successfully" msgstr "כתובת הדוא״ל שלך עודכנה בהצלחה" -#: src/app/main/ui/auth/verify_token.cljs:27 +#: src/app/main/ui/auth/verify_token.cljs msgid "dashboard.notifications.email-verified-successfully" msgstr "כתובת הדוא״ל שלך אומתה בהצלחה" -#: src/app/main/ui/settings/password.cljs:37 +#: src/app/main/ui/settings/password.cljs msgid "dashboard.notifications.password-saved" msgstr "הסיסמה נשמרה בהצלחה!" -#: src/app/main/ui/dashboard/team.cljs:1081 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.num-of-members" msgstr "%s חברים" -#: src/app/main/ui/dashboard/file_menu.cljs:267 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.open-in-new-tab" msgstr "פתיחת קובץ בלשונית חדשה" -#: src/app/main/ui/dashboard/files.cljs:117, src/app/main/ui/dashboard/projects.cljs:260, src/app/main/ui/dashboard/projects.cljs:261 msgid "dashboard.options" msgstr "אפשרויות" -#: src/app/main/ui/settings/password.cljs:106, src/app/main/ui/settings/password.cljs:119 +#: src/app/main/ui/settings/password.cljs msgid "dashboard.password-change" msgstr "החלפת סיסמה" -#: src/app/main/ui/dashboard/pin_button.cljs:24, src/app/main/ui/dashboard/project_menu.cljs:95 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.pin-unpin" msgstr "נעיצה/שחרור" -#: src/app/main/ui/dashboard/projects.cljs:51 +#: src/app/main/ui/dashboard/projects.cljs msgid "dashboard.projects-title" msgstr "מיזמים" -#: src/app/main/ui/settings/profile.cljs:86 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.remove-account" msgstr "להסיר את החשבון שלך?" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.remove-shared" msgstr "הסרה כספריה משותפת" -#: src/app/main/ui/settings/profile.cljs:78 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.save-settings" msgstr "שמירת ההגדרות" -#: src/app/main/ui/dashboard/sidebar.cljs:246, src/app/main/ui/dashboard/sidebar.cljs:247 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.search-placeholder" msgstr "חיפוש…" -#: src/app/main/ui/dashboard/search.cljs:55 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.searching-for" msgstr "מתבצע חיפוש אחר „%s”…" -#: src/app/main/ui/settings/options.cljs:56 +#: src/app/main/ui/settings/options.cljs msgid "dashboard.select-ui-language" msgstr "בחירת שפת מנשק משתמש" -#: src/app/main/ui/settings/options.cljs:63 +#: src/app/main/ui/settings/options.cljs msgid "dashboard.select-ui-theme" msgstr "בחירת ערכת עיצוב" -#: src/app/main/ui/dashboard/projects.cljs:282 +#: src/app/main/ui/dashboard/grid.cljs msgid "dashboard.show-all-files" msgstr "הצגת כל הקבצים" -#: src/app/main/ui/dashboard/file_menu.cljs:96 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-delete-file" msgid_plural "dashboard.success-delete-file" msgstr[0] "הקובץ שלך נמחק בהצלחה" @@ -752,11 +703,11 @@ msgstr[1] "הקבצים שלך נמחקו בהצלחה" msgstr[2] "הקבצים שלך נמחקו בהצלחה" msgstr[3] "הקבצים שלך נמחקו בהצלחה" -#: src/app/main/ui/dashboard/project_menu.cljs:59 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.success-delete-project" msgstr "המיזם שלך נמחק בהצלחה" -#: src/app/main/ui/dashboard/file_menu.cljs:91 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-duplicate-file" msgid_plural "dashboard.success-delete-file" msgstr[0] "הקובץ שלך שוכפל בהצלחה" @@ -764,933 +715,845 @@ msgstr[1] "הקבצים שלך שוכפלו בהצלחה" msgstr[2] "הקבצים שלך שוכפלו בהצלחה" msgstr[3] "הקבצים שלך שוכפלו בהצלחה" -#: src/app/main/ui/dashboard/project_menu.cljs:33 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.success-duplicate-project" msgstr "המיזם שלך שוכפל בהצלחה" -#: src/app/main/ui/dashboard/file_menu.cljs:130, src/app/main/ui/dashboard/grid.cljs:558, src/app/main/ui/dashboard/sidebar.cljs:152 +#: src/app/main/ui/dashboard/grid.cljs, src/app/main/ui/dashboard/sidebar.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-move-file" msgstr "הקובץ שלך הועבר בהצלחה" -#: src/app/main/ui/dashboard/file_menu.cljs:129 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-move-files" msgstr "הקבצים שלך הועברו בהצלחה" -#: src/app/main/ui/dashboard/project_menu.cljs:54 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.success-move-project" msgstr "המיזם שלך הועבר בהצלחה" -#: src/app/main/ui/dashboard/team.cljs:1052 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.team-info" msgstr "פרטי הצוות" -#: src/app/main/ui/dashboard/team.cljs:1070 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.team-members" msgstr "חברי הצוות" -#: src/app/main/ui/dashboard/team.cljs:1085 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.team-projects" msgstr "מיזמי הצוות" -#: src/app/main/ui/settings/options.cljs:61 +#: src/app/main/ui/settings/options.cljs msgid "dashboard.theme-change" msgstr "ערכת עיצוב מנשק משתמש" -#: src/app/main/ui/dashboard/search.cljs:42 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.title-search" msgstr "תוצאות חיפוש" -#: src/app/main/ui/dashboard/search.cljs:50 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.type-something" msgstr "נא להקליד כדי לחפש" -#: src/app/main/ui/dashboard/file_menu.cljs:287, src/app/main/ui/workspace/main_menu.cljs:566 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.unpublish-shared" msgstr "ביטול פרסום ספרייה" -#: src/app/main/ui/settings/options.cljs:71 +#: src/app/main/ui/settings/profile.cljs, +#: src/app/main/ui/settings/password.cljs, +#: src/app/main/ui/settings/options.cljs msgid "dashboard.update-settings" msgstr "עדכון הגדרות" -#: src/app/main/ui/dashboard/team.cljs:861 msgid "dashboard.webhooks.active" msgstr "פעילה" -#: src/app/main/ui/dashboard/team.cljs:862 msgid "dashboard.webhooks.active.explain" msgstr "כאשר ההתליה הזאת מופעלת פרטי האירוע יישלחו" -#: src/app/main/ui/dashboard/team.cljs:852 msgid "dashboard.webhooks.content-type" msgstr "סוג תוכן" -#: src/app/main/ui/dashboard/team.cljs:885 msgid "dashboard.webhooks.create" msgstr "יצירת התליית רשת" -#: src/app/main/ui/dashboard/team.cljs:775 msgid "dashboard.webhooks.create.success" msgstr "התליית הרשת נוצרה בהצלחה." -#: src/app/main/ui/dashboard/team.cljs:882 msgid "dashboard.webhooks.description" msgstr "" "התליות רשת הן דרך פשוטה לאפשר לאתרים אחרים לקבל הודעות כשאירועים מסוימים " "מתרחשים ב־Penpot. אנו נשלח בקשת POST לכל אחת מהכתובות שתצויינה." -#: src/app/main/ui/dashboard/team.cljs:1005 msgid "dashboard.webhooks.empty.add-one" msgstr "לחיצה על הכפתור „הוספת התליית רשת” תוסיף אחת." -#: src/app/main/ui/dashboard/team.cljs:1004 msgid "dashboard.webhooks.empty.no-webhooks" msgstr "לא נוצרו התליות רשת עדיין." -#, unused msgid "dashboard.webhooks.update.success" msgstr "התליות הרשת עודכנו בהצלחה." -#: src/app/main/ui/settings.cljs:31 +#: src/app/main/ui/settings.cljs msgid "dashboard.your-account-title" msgstr "החשבון שלך" -#: src/app/main/ui/settings/profile.cljs:70 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.your-email" msgstr "דוא״ל" -#: src/app/main/ui/settings/profile.cljs:62 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.your-name" msgstr "שמך" -#: src/app/main/ui/dashboard/file_menu.cljs:38, src/app/main/ui/dashboard/fonts.cljs:33, src/app/main/ui/dashboard/libraries.cljs:42, src/app/main/ui/dashboard/projects.cljs:318, src/app/main/ui/dashboard/search.cljs:30, src/app/main/ui/dashboard/sidebar.cljs:312, src/app/main/ui/dashboard/team.cljs:495, src/app/main/ui/dashboard/team.cljs:729, src/app/main/ui/dashboard/team.cljs:991, src/app/main/ui/dashboard/team.cljs:1038 +#: src/app/main/ui/dashboard/search.cljs, src/app/main/ui/dashboard/team.cljs, +#: src/app/main/ui/dashboard/libraries.cljs, +#: src/app/main/ui/dashboard/projects.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.your-penpot" msgstr "ה־Penpot שלך" -#: src/app/main/ui/alert.cljs:32 +#: src/app/main/ui/alert.cljs msgid "ds.alert-ok" msgstr "אישור" -#: src/app/main/ui/alert.cljs:31, src/app/main/ui/alert.cljs:34 +#: src/app/main/ui/alert.cljs msgid "ds.alert-title" msgstr "תשומת לב" -#: src/app/main/ui/confirm.cljs:83 +#: src/app/main/ui/confirm.cljs msgid "ds.component-subtitle" msgstr "רכיבים לעדכון:" -#: src/app/main/ui/confirm.cljs:36, src/app/main/ui/workspace/plugins.cljs:246 +#: src/app/main/ui/confirm.cljs msgid "ds.confirm-cancel" msgstr "ביטול" -#: src/app/main/ui/confirm.cljs:37, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:141 +#: src/app/main/ui/confirm.cljs msgid "ds.confirm-ok" msgstr "אישור" -#: src/app/main/ui/confirm.cljs:35, src/app/main/ui/confirm.cljs:39 +#: src/app/main/ui/confirm.cljs, src/app/main/ui/confirm.cljs msgid "ds.confirm-title" msgstr "להמשיך?" -#: src/app/main/data/users.cljs:705 +#: src/app/main/data/users.cljs msgid "errors.auth-provider-not-allowed" msgstr "ספק האימות לא מורשה לפרופיל הזה" -#: src/app/main/ui/auth/login.cljs:62 +#: src/app/main/ui/auth/login.cljs msgid "errors.auth-provider-not-configured" msgstr "לא מוגדר ספק אימות." -#: src/app/main/errors.cljs:104 msgid "errors.auth.unable-to-login" msgstr "נראה שלא עברת אימות או שתוקף ההפעלה פג." -#: src/app/main/data/fonts.cljs:189 msgid "errors.bad-font" msgstr "לא ניתן לטעון את הגופן %s" -#: src/app/main/data/fonts.cljs:188 msgid "errors.bad-font-plural" msgstr "לא ניתן לטעון את הגופנים %s" -#: src/app/main/data/workspace/media.cljs:198 msgid "errors.cannot-upload" msgstr "לא ניתן להעלות את קובץ המדיה." -#: src/app/main/data/workspace.cljs:1598 +#: src/app/main/data/workspace.cljs msgid "errors.clipboard-not-implemented" msgstr "הדפדפן שלך לא יכול לבצע את הפעולה הזאת" -#: src/app/main/ui/auth/verify_token.cljs:82, src/app/main/ui/settings/change_email.cljs:46 +#: src/app/main/ui/auth/verify_token.cljs, +#: src/app/main/ui/settings/change_email.cljs msgid "errors.email-already-exists" msgstr "כתובת הדוא״ל כבר בשימוש" -#: src/app/main/ui/auth/verify_token.cljs:87 +#: src/app/main/ui/auth/verify_token.cljs msgid "errors.email-already-validated" msgstr "כתובת הדוא״ל כבר אומתה." -#: src/app/main/ui/settings/password.cljs:28 msgid "errors.email-as-password" msgstr "אין לך אפשרות להשתמש בכתובת הדוא״ל שלך כסיסמה" -#: src/app/main/data/users.cljs:707, src/app/main/ui/auth/register.cljs:63 +#: src/app/main/data/users.cljs msgid "errors.email-domain-not-allowed" msgstr "שם התחום לא מורשה" -#: src/app/main/ui/auth/recovery_request.cljs:63, src/app/main/ui/dashboard/team.cljs:578, src/app/main/ui/settings/change_email.cljs:54 +#: src/app/main/ui/auth/register.cljs, +#: src/app/main/ui/auth/recovery_request.cljs, +#: src/app/main/ui/settings/change_email.cljs, +#: src/app/main/ui/dashboard/team.cljs msgid "errors.email-has-permanent-bounces" msgstr "לכתובת הדוא״ל „%s” יש יותר מדי דוחות החזרה קבועים." -#: src/app/main/ui/auth/login.cljs:81, src/app/main/ui/auth/recovery_request.cljs:31, src/app/main/ui/auth/register.cljs:43 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs, +#: src/app/main/ui/auth/recovery_request.cljs msgid "errors.email-invalid" msgstr "נא למלא כתובת דוא״ל תקפה בבקשה" -#: src/app/main/ui/settings/change_email.cljs:35 +#: src/app/main/ui/settings/change_email.cljs msgid "errors.email-invalid-confirmation" msgstr "כתובת הדוא״ל לאימות חייבת להיות תואמת" -#: src/app/main/ui/dashboard/team.cljs:170 msgid "errors.email-spam-or-permanent-bounces" msgstr "כתובת הדוא״ל „%s” דווחה כספאם או שההודעות תוקפצנה לצמיתות." -#: src/app/main/errors.cljs:227 +#: src/app/main/errors.cljs msgid "errors.feature-mismatch" msgstr "" -"נראה שניסית לפתוח קובץ בו פעילה היכולת ‚%s’ אבל מנשק ה־Penpot שלך לא תומך " -"בה או שהיא מושבתת." +"נראה שניסית לפתוח קובץ בו פעילה היכולת ‚%s’ אבל מנשק ה־Penpot שלך לא תומך בה " +"או שהיא מושבתת." -#: src/app/main/errors.cljs:231, src/app/main/errors.cljs:245 +#: src/app/main/errors.cljs msgid "errors.feature-not-supported" msgstr "אין תמיכה ביכולת ‚%s’." -#: src/app/main/errors.cljs:223 +#: src/app/main/errors.cljs msgid "errors.file-feature-mismatch" msgstr "" "נראה שאין התאמ בין היכולות הפעילות לבין הקובץ שניסית לפתוח. יש להחיל הסבות " "עבור ‚%s’ לפני שיתאפשר לפתוח את הקובץ הזה." -#: src/app/main/data/users.cljs:709, src/app/main/ui/auth/login.cljs:65, src/app/main/ui/auth/login.cljs:116, src/app/main/ui/auth/register.cljs:69, src/app/main/ui/auth/register.cljs:237, src/app/main/ui/auth/verify_token.cljs:92, src/app/main/ui/dashboard/team.cljs:173, src/app/main/ui/onboarding/team_choice.cljs:95, src/app/main/ui/settings/access_tokens.cljs:91, src/app/main/ui/settings/feedback.cljs:52 +#: src/app/main/ui/auth/verify_token.cljs, +#: src/app/main/ui/settings/feedback.cljs, src/app/main/ui/dashboard/team.cljs msgid "errors.generic" msgstr "קרה משהו לא טוב." -#: src/app/main/ui/components/color_input.cljs:57 +#: src/app/main/ui/components/color_input.cljs msgid "errors.invalid-color" msgstr "צבע שגוי" -#: src/app/main/ui/static.cljs:43 +#: src/app/main/ui/auth/verify_token.cljs msgid "errors.invite-invalid" msgstr "ההזמנה שגויה" -#: src/app/main/ui/static.cljs:44 msgid "errors.invite-invalid.info" msgstr "ההזמנה כנראה בוטלה או שתוקפה פג." -#: src/app/main/ui/auth/login.cljs:101 +#: src/app/main/ui/auth/login.cljs msgid "errors.ldap-disabled" msgstr "אימות מול LDAP הושבת." -#: src/app/main/errors.cljs:239 +#: src/app/main/errors.cljs msgid "errors.max-quote-reached" msgstr "הגעת למיכסת ה־‚%s’. נא ליצור קשר עם התמיכה." -#: src/app/main/data/workspace/media.cljs:184 +#: src/app/main/data/workspace/persistence.cljs msgid "errors.media-too-large" msgstr "התמונה גדולה מכדי להוסיף אותה." -#: src/app/main/data/media.cljs:68, src/app/main/data/workspace/media.cljs:187 +#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs msgid "errors.media-type-mismatch" msgstr "נראה כי תוכן התמונה לא תואם לסיומת הקובץ." -#: src/app/main/data/media.cljs:65, src/app/main/data/workspace/media.cljs:172, src/app/main/data/workspace/media.cljs:175, src/app/main/data/workspace/media.cljs:178, src/app/main/data/workspace/media.cljs:181 +#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs msgid "errors.media-type-not-allowed" msgstr "נראה כי זאת תמונה שגויה." -#: src/app/main/ui/dashboard/team.cljs:574 +#: src/app/main/ui/dashboard/team.cljs msgid "errors.member-is-muted" -msgstr "הודעות הדוא״ל לפרופיל שהזמנת מושתקות (דיווחים על דואר זבל או הרבה החזרות)." +msgstr "" +"הודעות הדוא״ל לפרופיל שהזמנת מושתקות (דיווחים על דואר זבל או הרבה החזרות)." -#: src/app/main/ui/settings/password.cljs:61 +#: src/app/main/ui/settings/password.cljs msgid "errors.password-invalid-confirmation" msgstr "סיסמת האימות חייבת להיות תואמת" -#: src/app/main/ui/settings/password.cljs:64 +#: src/app/main/ui/settings/password.cljs msgid "errors.password-too-short" msgstr "הסיסמה חייבת להיות באורך 8 תווים לפחות" -#: src/app/main/errors.cljs:124 msgid "errors.paste-data-validation" msgstr "נתונים שגויים בלוח הגזירים" -#: src/app/main/data/users.cljs:703, src/app/main/ui/auth/login.cljs:97, src/app/main/ui/auth/login.cljs:105 msgid "errors.profile-blocked" msgstr "הפרופיל חסום" -#: src/app/main/ui/auth/recovery_request.cljs:60, src/app/main/ui/dashboard/team.cljs:164, src/app/main/ui/dashboard/team.cljs:570, src/app/main/ui/settings/change_email.cljs:50 +#: src/app/main/ui/auth/recovery_request.cljs, +#: src/app/main/ui/settings/change_email.cljs, +#: src/app/main/ui/dashboard/team.cljs msgid "errors.profile-is-muted" msgstr "הודעות הדוא״ל לפרופיל שלך מושתקות (דיווחי דואר זבל או הרבה החזרות)." -#: src/app/main/data/users.cljs:701, src/app/main/ui/auth/register.cljs:60 +#: src/app/main/ui/auth/register.cljs msgid "errors.registration-disabled" msgstr "ההרשמה מושבתת כרגע." -#: src/app/main/errors.cljs:218 +#: src/app/main/errors.cljs msgid "errors.team-feature-mismatch" msgstr "התגלתה יכולת לא תואמת ‚%s’" -#: src/app/main/ui/dashboard/sidebar.cljs:365, src/app/main/ui/dashboard/team.cljs:359 msgid "errors.team-leave.insufficient-members" msgstr "אין מספיק חברים כדי לעזוב את הצוות, כנראה יהיה עליך למחוק אותו." -#: src/app/main/ui/dashboard/sidebar.cljs:368, src/app/main/ui/dashboard/team.cljs:362 msgid "errors.team-leave.member-does-not-exists" msgstr "החבר שניסית להקצות לא קיים." -#: src/app/main/ui/dashboard/sidebar.cljs:371, src/app/main/ui/dashboard/team.cljs:365 msgid "errors.team-leave.owner-cant-leave" msgstr "הבעלים לא יכולים לעזוב את הקבוצה, עליך להעביר את תפקיד הבעלות." -#: src/app/main/data/media.cljs:71 +#: src/app/main/data/media.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, +#: src/app/main/ui/inspect/exports.cljs msgid "errors.unexpected-error" msgstr "אירעה שגיאה בלתי צפויה." -#: src/app/main/ui/auth/verify_token.cljs:60 +#: src/app/main/ui/auth/verify_token.cljs msgid "errors.unexpected-token" msgstr "אסימון בלתי ידוע" -#, unused msgid "errors.validation" msgstr "שגיאת אימות" -#: src/app/main/errors.cljs:235 +#: src/app/main/errors.cljs msgid "errors.version-not-supported" msgstr "מספר גרסת הקובץ לא תואם" -#: src/app/main/ui/dashboard/team.cljs:796 msgid "errors.webhooks.connection" msgstr "שגיאת תקשורת, הכתובת אינה נגישה" -#: src/app/main/ui/dashboard/team.cljs:790 msgid "errors.webhooks.invalid-uri" msgstr "הכתובת לא מעבירה תיקוף." -#: src/app/main/ui/dashboard/team.cljs:949 msgid "errors.webhooks.last-delivery" msgstr "ההעברה האחרונה לא הצליחה." -#: src/app/main/ui/dashboard/team.cljs:792, src/app/main/ui/dashboard/team.cljs:952 msgid "errors.webhooks.ssl-validation" msgstr "שגיאה בתיקוף SSL." -#: src/app/main/ui/dashboard/team.cljs:794 msgid "errors.webhooks.timeout" msgstr "תום זמן המתנה" -#: src/app/main/ui/dashboard/team.cljs:788 msgid "errors.webhooks.unexpected" msgstr "שגיאה לא צפויה בעת תיקוף" -#: src/app/main/ui/dashboard/team.cljs:798, src/app/main/ui/dashboard/team.cljs:955 msgid "errors.webhooks.unexpected-status" msgstr "המצב %s לא צפוי" -#: src/app/main/ui/auth/login.cljs:109, src/app/main/ui/auth/login.cljs:113 +#: src/app/main/ui/auth/login.cljs msgid "errors.wrong-credentials" msgstr "כתובת הדוא״ל או הסיסמה שגויים." -#: src/app/main/ui/settings/password.cljs:25 +#: src/app/main/ui/settings/password.cljs msgid "errors.wrong-old-password" msgstr "הסיסמה הישנה שגויה" -#: src/app/main/ui/settings/feedback.cljs:77 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.description" msgstr "תיאור" -#: src/app/main/ui/settings/feedback.cljs:95 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.discourse-go-to" msgstr "מעבר לפורום של Penpot" -#: src/app/main/ui/settings/feedback.cljs:89 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.discourse-subtitle1" msgstr "אנחנו שמחים שהצטרפת אלינו. לקבלת עזרה, נא לחפש בטרם פרסום הודעה." -#: src/app/main/ui/settings/feedback.cljs:88 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.discourse-title" msgstr "קהילת Penpot" -#: src/app/main/ui/settings/feedback.cljs:72 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.subject" msgstr "נושא" -#: src/app/main/ui/settings/feedback.cljs:69 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.subtitle" msgstr "" "נא לתאר את הסיבה שלך לשליחת ההודעה תוך פירוט האם זאת תקלה, רעיון או בספק. " "אחד מחברי הצוות שלנו יגיב לך במהירות האפשרית." -#: src/app/main/ui/settings/feedback.cljs:68 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.title" msgstr "דוא״ל" -#: src/app/main/ui/settings/feedback.cljs:105 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.twitter-go-to" msgstr "מעבר ל־X" -#: src/app/main/ui/settings/feedback.cljs:99 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.twitter-subtitle1" msgstr "כאן כדי לסייע בסוגיות טכניות." -#: src/app/main/ui/settings/feedback.cljs:98 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.twitter-title" msgstr "חשבון תמיכה ב־X" -#: src/app/main/ui/settings/password.cljs:30 +#: src/app/main/ui/settings/password.cljs msgid "generic.error" msgstr "אירעה שגיאה" -#: src/app/main/ui/viewer/inspect/attributes/blur.cljs:26 +#: src/app/main/ui/inspect/attributes/blur.cljs msgid "inspect.attributes.blur" msgstr "טשטוש" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:115 +#: src/app/main/ui/inspect/attributes/blur.cljs msgid "inspect.attributes.blur.value" msgstr "ערך" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:112 +#: src/app/main/ui/inspect/attributes/common.cljs msgid "inspect.attributes.color.hex" msgstr "הקסדצימלי" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:114 +#: src/app/main/ui/inspect/attributes/common.cljs msgid "inspect.attributes.color.hsla" msgstr "HSLA" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:113 +#: src/app/main/ui/inspect/attributes/common.cljs msgid "inspect.attributes.color.rgba" msgstr "RGBA" -#: src/app/main/ui/viewer/inspect/attributes/fill.cljs:57 +#: src/app/main/ui/inspect/attributes/fill.cljs msgid "inspect.attributes.fill" msgstr "מילוי" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:99, src/app/main/ui/viewer/inspect/attributes/image.cljs:51 +#: src/app/main/ui/inspect/attributes/image.cljs msgid "inspect.attributes.image.download" msgstr "הורדת תמונת מקור" -#: src/app/main/ui/viewer/inspect/attributes/image.cljs:39 +#: src/app/main/ui/inspect/attributes/image.cljs msgid "inspect.attributes.image.height" msgstr "גובה" -#: src/app/main/ui/viewer/inspect/attributes/image.cljs:32 +#: src/app/main/ui/inspect/attributes/image.cljs msgid "inspect.attributes.image.width" msgstr "רוחב" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout" msgstr "פריסה" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.height" msgstr "גובה" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.left" msgstr "שמאל" -#: src/app/main/ui/inspect/attributes/layout.cljs, src/app/main/ui/inspect/attributes/layout.cljs -#, unused +#: src/app/main/ui/inspect/attributes/layout.cljs, +#: src/app/main/ui/inspect/attributes/layout.cljs msgid "inspect.attributes.layout.radius" msgstr "רדיוס" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.rotation" msgstr "סיבוב" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.top" msgstr "עליון" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.width" msgstr "רוחב" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:57 +#: src/app/main/ui/inspect/attributes/shadow.cljs msgid "inspect.attributes.shadow" msgstr "צל" -#: src/app/main/ui/viewer/inspect/attributes/geometry.cljs:40 +#: src/app/main/ui/inspect/attributes/layout.cljs msgid "inspect.attributes.size" msgstr "גודל ומיקום" -#: src/app/main/ui/viewer/inspect/attributes/stroke.cljs:52 +#: src/app/main/ui/inspect/attributes/stroke.cljs msgid "inspect.attributes.stroke" msgstr "מתאר" -#, permanent, unused msgid "inspect.attributes.stroke.alignment.center" msgstr "מרכז" -#, permanent, unused msgid "inspect.attributes.stroke.alignment.inner" msgstr "בפנים" -#, permanent, unused msgid "inspect.attributes.stroke.alignment.outer" msgstr "בחוץ" -#, unused msgid "inspect.attributes.stroke.style.dotted" msgstr "מנוקד" -#, unused msgid "inspect.attributes.stroke.style.mixed" msgstr "מעורב" -#, unused msgid "inspect.attributes.stroke.style.none" msgstr "ללא" -#, unused msgid "inspect.attributes.stroke.style.solid" msgstr "אחיד" #: src/app/main/ui/inspect/attributes/stroke.cljs -#, unused msgid "inspect.attributes.stroke.width" msgstr "רוחב" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:81, src/app/main/ui/viewer/inspect/attributes/text.cljs:194 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography" msgstr "טיפוגרפיה" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:89 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.font-family" msgstr "משפחת גופנים" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:107 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.font-size" msgstr "גודל גופן" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:98 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.font-style" msgstr "סגנון גופן" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:116 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.font-weight" msgstr "משקל גופן" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:134 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.letter-spacing" msgstr "ריווח תווים" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:125 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.line-height" msgstr "גובה שורה" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:143 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.text-decoration" msgstr "עיטור טקסט" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:145 msgid "inspect.attributes.typography.text-decoration.none" msgstr "ללא" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:146 msgid "inspect.attributes.typography.text-decoration.strikethrough" msgstr "קו חוצה" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:147 msgid "inspect.attributes.typography.text-decoration.underline" msgstr "קו תחתי" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:156 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.text-transform" msgstr "התמרת טקסט" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:158 msgid "inspect.attributes.typography.text-transform.lowercase" msgstr "אותיות קטנות" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:159 msgid "inspect.attributes.typography.text-transform.none" msgstr "ללא" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:160 msgid "inspect.attributes.typography.text-transform.titlecase" msgstr "ראשונות גדולות" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:162 msgid "inspect.attributes.typography.text-transform.unset" msgstr "ביטול הגדרה" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:161 msgid "inspect.attributes.typography.text-transform.uppercase" msgstr "אותיות גדולות" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:140 msgid "inspect.empty.help" msgstr "למידע נוסף על חקירת עיצוב אפשר לבקר במרכז העזרה של Penpot" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:143 msgid "inspect.empty.more-info" msgstr "מידע נוסף על חקירה" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:135 msgid "inspect.empty.select" msgstr "ניתן לבחור צורה, לוח או קבוצה ולראות את המאפיינים והקוד שלהם" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:125 +#: src/app/main/ui/inspect/right_sidebar.cljs msgid "inspect.tabs.code" msgstr "קוד" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:98 msgid "inspect.tabs.code.selected.circle" msgstr "עיגול" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:99 msgid "inspect.tabs.code.selected.component" msgstr "רכיב" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:100 msgid "inspect.tabs.code.selected.curve" msgstr "עיקול" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:101 msgid "inspect.tabs.code.selected.frame" msgstr "לוח" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:102 msgid "inspect.tabs.code.selected.group" msgstr "קבוצה" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:103 msgid "inspect.tabs.code.selected.image" msgstr "תמונה" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:104 msgid "inspect.tabs.code.selected.mask" msgstr "מסכה" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:93 +#: src/app/main/ui/inspect/right_sidebar.cljs msgid "inspect.tabs.code.selected.multiple" msgstr "%s נבחרו" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:105 msgid "inspect.tabs.code.selected.path" msgstr "נתיב" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:106 msgid "inspect.tabs.code.selected.rect" msgstr "מרובע" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:107 msgid "inspect.tabs.code.selected.svg-raw" msgstr "SVG" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:108 msgid "inspect.tabs.code.selected.text" msgstr "טקסט" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:115 +#: src/app/main/ui/inspect/right_sidebar.cljs msgid "inspect.tabs.info" msgstr "מידע" -#: src/app/main/ui/workspace/main_menu.cljs:158 +#: src/app/main/ui/workspace/header.cljs msgid "label.shortcuts" msgstr "קיצורי דרך" -#: src/app/main/ui/dashboard/import.cljs:527 msgid "labels.accept" msgstr "מקובל" -#: src/app/main/ui/settings/sidebar.cljs:100 +#: src/app/main/ui/settings/sidebar.cljs msgid "labels.access-tokens" msgstr "אסימוני גישה" -#: src/app/main/ui/dashboard/team.cljs:968 msgid "labels.active" msgstr "פעיל" -#: src/app/main/ui/dashboard/fonts.cljs:175 msgid "labels.add-custom-font" msgstr "הוספת גופן משלך" -#: src/app/main/ui/dashboard/team.cljs:120, src/app/main/ui/dashboard/team.cljs:276, src/app/main/ui/dashboard/team.cljs:519, src/app/main/ui/dashboard/team.cljs:549, src/app/main/ui/onboarding/team_choice.cljs:67 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs msgid "labels.admin" msgstr "ניהול" -#: src/app/main/ui/onboarding/questions.cljs:174 -msgid "labels.adobe-xd" -msgstr "Adobe XD" - #: src/app/main/ui/workspace/comments.cljs -#, unused msgid "labels.all" msgstr "הכול" -#: src/app/main/ui/auth.cljs:37 msgid "labels.and" msgstr "וגם" -#: src/app/main/ui/onboarding/team_choice.cljs:162 msgid "labels.back" msgstr "חזרה" -#: src/app/main/ui/static.cljs:59 +#: src/app/main/ui/static.cljs msgid "labels.bad-gateway.desc-message" msgstr "" "נראה כאילו עליך להמתין מעט ולנסות שוב, אנו מבצעים עבודות תחזוקה פשוטות " "בשרתים שלנו." -#: src/app/main/ui/static.cljs:58 +#: src/app/main/ui/static.cljs msgid "labels.bad-gateway.main-message" msgstr "שער גישה שגוי" -#: src/app/main/data/common.cljs:112, src/app/main/ui/dashboard/change_owner.cljs:69, src/app/main/ui/dashboard/import.cljs:514, src/app/main/ui/dashboard/team.cljs:868, src/app/main/ui/delete_shared.cljs:35, src/app/main/ui/export.cljs:164, src/app/main/ui/export.cljs:460, src/app/main/ui/settings/access_tokens.cljs:188, src/app/main/ui/viewer/share_link.cljs:203, src/app/main/ui/workspace/sidebar/assets/groups.cljs:149 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.cancel" msgstr "ביטול" -#: src/app/main/ui/onboarding/questions.cljs:176 -msgid "labels.canva" -msgstr "Canva" - -#: src/app/main/ui/dashboard/projects.cljs:93, src/app/main/ui/export.cljs:478, src/app/main/ui/settings/access_tokens.cljs:183, src/app/main/ui/viewer/login.cljs:77, src/app/main/ui/viewer/share_link.cljs:174, src/app/main/ui/workspace/libraries.cljs:522 msgid "labels.close" msgstr "סגירה" -#: src/app/main/ui/dashboard/comments.cljs:104, src/app/main/ui/viewer/comments.cljs:70, src/app/main/ui/workspace/comments.cljs:126 +#: src/app/main/ui/dashboard/comments.cljs msgid "labels.comments" msgstr "הערות" -#: src/app/main/ui/dashboard/sidebar.cljs:985, src/app/main/ui/workspace/main_menu.cljs:110 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.community" msgstr "קהילה" -#: src/app/main/ui/settings/password.cljs:103 +#: src/app/main/ui/settings/password.cljs msgid "labels.confirm-password" msgstr "אישור סיסמה" -#: src/app/main/ui/dashboard/import.cljs:520, src/app/main/ui/export.cljs:465, src/app/main/ui/onboarding/newsletter.cljs:101 msgid "labels.continue" msgstr "להמשיך" -#, unused msgid "labels.continue-with" msgstr "להמשיך עם" -#: src/app/main/ui/viewer/login.cljs:75 msgid "labels.continue-with-penpot" msgstr "אפשר להמשיך עם חשבון Penpot" -#: src/app/main/ui/dashboard/team.cljs:642 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.copy-invitation-link" msgstr "העתקת קישור" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:157, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:190 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "labels.create" msgstr "יצירה" -#: src/app/main/ui/dashboard/team_form.cljs:101, src/app/main/ui/dashboard/team_form.cljs:121 +#: src/app/main/ui/dashboard/team_form.cljs, +#: src/app/main/ui/dashboard/team_form.cljs msgid "labels.create-team" msgstr "יצירת צוות חדש" -#: src/app/main/ui/dashboard/team_form.cljs:113 +#: src/app/main/ui/dashboard/team_form.cljs msgid "labels.create-team.placeholder" msgstr "נא למלא שם לצוות החדש" -#, unused msgid "labels.custom-fonts" msgstr "גופנים משלך" -#: src/app/main/ui/settings/sidebar.cljs:73 +#: src/app/main/ui/settings/sidebar.cljs msgid "labels.dashboard" msgstr "לוח בקרה" -#: src/app/main/ui/dashboard/file_menu.cljs:306, src/app/main/ui/dashboard/fonts.cljs:255, src/app/main/ui/dashboard/fonts.cljs:332, src/app/main/ui/dashboard/fonts.cljs:346, src/app/main/ui/dashboard/project_menu.cljs:115, src/app/main/ui/dashboard/team.cljs:904, src/app/main/ui/settings/access_tokens.cljs:209, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:209 +#: src/app/main/ui/dashboard/project_menu.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.delete" msgstr "מחיקה" -#: src/app/main/ui/comments.cljs:357 +#: src/app/main/ui/comments.cljs msgid "labels.delete-comment" msgstr "מחיקת הערה" -#: src/app/main/ui/comments.cljs:354 +#: src/app/main/ui/comments.cljs msgid "labels.delete-comment-thread" msgstr "מחיקת שרשור" -#: src/app/main/ui/dashboard/team.cljs:648 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.delete-invitation" msgstr "מחיקת הזמנה" -#: src/app/main/ui/dashboard/file_menu.cljs:262 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.delete-multi-files" msgstr "מחיקת %s קבצים" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:199 msgid "labels.discard" msgstr "התעלמות" -#: src/app/main/ui/dashboard/file_menu.cljs:28, src/app/main/ui/dashboard/files.cljs:72, src/app/main/ui/dashboard/files.cljs:156, src/app/main/ui/dashboard/projects.cljs:220, src/app/main/ui/dashboard/projects.cljs:224, src/app/main/ui/dashboard/sidebar.cljs:791 +#: src/app/main/ui/dashboard/projects.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs, +#: src/app/main/ui/dashboard/files.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.drafts" msgstr "טיוטות" -#: src/app/main/ui/comments.cljs:350, src/app/main/ui/dashboard/fonts.cljs:252, src/app/main/ui/dashboard/team.cljs:902, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:205 +#: src/app/main/ui/comments.cljs msgid "labels.edit" msgstr "עריכה" -#, unused msgid "labels.edit-file" msgstr "עריכת קובץ" -#: src/app/main/ui/dashboard/team.cljs:118, src/app/main/ui/dashboard/team.cljs:279, src/app/main/ui/dashboard/team.cljs:520, src/app/main/ui/dashboard/team.cljs:553, src/app/main/ui/onboarding/team_choice.cljs:66 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs msgid "labels.editor" msgstr "עורך" -#: src/app/main/ui/dashboard/team.cljs:661 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.expired-invitation" msgstr "התוקף פג" -#: src/app/main/ui/export.cljs:173 msgid "labels.export" msgstr "ייצוא" -#: src/app/main/ui/settings/feedback.cljs:51 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.feedback-disabled" msgstr "המשוב הושבת" -#: src/app/main/ui/settings/feedback.cljs:42 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.feedback-sent" msgstr "המשוב נשלח" -#: src/app/main/ui/onboarding/questions.cljs:170 -msgid "labels.figma" -msgstr "Figma" - -#: src/app/main/ui/dashboard/fonts.cljs:412 msgid "labels.font-family" msgstr "משפחת גופנים" -#, unused msgid "labels.font-providers" msgstr "ספקי גופנים" -#: src/app/main/ui/dashboard/fonts.cljs:413 msgid "labels.font-variants" msgstr "סגנונות" -#: src/app/main/ui/dashboard/fonts.cljs:52, src/app/main/ui/dashboard/sidebar.cljs:811 msgid "labels.fonts" msgstr "גופנים" -#: src/app/main/ui/onboarding/questions.cljs:263 -msgid "labels.founder" -msgstr "מייסד/סגן נשיא" - -#: src/app/main/ui/onboarding/questions.cljs:262 -msgid "labels.freelancer" -msgstr "יש לי עסק משלי" - -#: src/app/main/ui/dashboard/sidebar.cljs:1015, src/app/main/ui/workspace/main_menu.cljs:142 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.github-repo" msgstr "מאגר GitHub" -#: src/app/main/ui/dashboard/sidebar.cljs:1032, src/app/main/ui/settings/sidebar.cljs:113, src/app/main/ui/workspace/main_menu.cljs:171 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/settings/sidebar.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.give-feedback" msgstr "הגשת משוב" -#: src/app/main/ui/auth/recovery_request.cljs:110, src/app/main/ui/auth/register.cljs:285, src/app/main/ui/viewer/login.cljs:117 msgid "labels.go-back" msgstr "חזרה" -#: src/app/main/ui/dashboard/sidebar.cljs:978, src/app/main/ui/workspace/main_menu.cljs:102 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.help-center" msgstr "מרכז העזרה" -#: src/app/main/ui/viewer/comments.cljs:103, src/app/main/ui/workspace/comments.cljs:67 +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs msgid "labels.hide-resolved-comments" msgstr "הסתרת הערות שנפתרו" -#: src/app/main/ui/dashboard/team.cljs:969 msgid "labels.inactive" msgstr "בלתי פעיל" -#: src/app/main/ui/dashboard/fonts.cljs:410 msgid "labels.installed-fonts" msgstr "גופנים מותקנים" -#: src/app/main/ui/static.cljs:144 +#: src/app/main/ui/static.cljs msgid "labels.internal-error.desc-message" msgstr "" "משהו לא טוב קרה. נא לנסות לבצע את הפעולה שוב ואם הבעיה חוזרת, נא ליצור קשר " "עם התמיכה." -#: src/app/main/ui/static.cljs:143 +#: src/app/main/ui/static.cljs msgid "labels.internal-error.main-message" msgstr "שגיאה פנימית" -#: src/app/main/ui/onboarding/questions.cljs:178 -msgid "labels.invision" -msgstr "InVision" - -#: src/app/main/ui/dashboard/sidebar.cljs:516, src/app/main/ui/dashboard/team.cljs:89, src/app/main/ui/dashboard/team.cljs:97, src/app/main/ui/dashboard/team.cljs:708 +#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.invitations" msgstr "הזמנות" -#: src/app/main/ui/settings/options.cljs:51 +#: src/app/main/ui/settings/options.cljs msgid "labels.language" msgstr "שפה" -#: src/app/main/ui/dashboard/sidebar.cljs:1008, src/app/main/ui/workspace/main_menu.cljs:134 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.libraries-and-templates" msgstr "ספריות ותבניות" -#: src/app/main/ui/viewer/header.cljs:203 msgid "labels.log-or-sign" msgstr "כניסה או הרשמה" -#: src/app/main/ui/dashboard/sidebar.cljs:1040 +#: src/app/main/ui/settings.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.logout" msgstr "יציאה" -#: src/app/main/ui/dashboard/team.cljs:468 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.member" msgstr "חבר" -#: src/app/main/ui/dashboard/sidebar.cljs:510, src/app/main/ui/dashboard/team.cljs:87, src/app/main/ui/dashboard/team.cljs:95 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.members" msgstr "חברים" -#: src/app/main/ui/settings/password.cljs:96 +#: src/app/main/ui/settings/password.cljs msgid "labels.new-password" msgstr "סיסמה חדשה" -#: src/app/main/ui/dashboard/templates.cljs:269, src/app/main/ui/onboarding/questions.cljs:55 -msgid "labels.next" -msgstr "הבאה" - -#: src/app/main/ui/dashboard/comments.cljs:128, src/app/main/ui/workspace/comments.cljs:161 +#: src/app/main/ui/workspace/comments.cljs, +#: src/app/main/ui/dashboard/comments.cljs msgid "labels.no-comments-available" msgstr "עברת על הכול! התראות על הערות חדשות תופענה כאן." -#: src/app/main/ui/dashboard/team.cljs:694 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.no-invitations" msgstr "אין הזמנות ממתינות." -#: src/app/main/ui/dashboard/team.cljs:696 -#, markdown +#: src/app/main/ui/dashboard/team.cljs msgid "labels.no-invitations-hint" msgstr "לחיצה על הכפתור **הזמנת אנשים** תאפשר להזמין אנשים לצוות." -#: src/app/main/ui/static.cljs:50 +#: src/app/main/ui/static.cljs msgid "labels.not-found.desc-message" msgstr "יכול להיות שהעמוד לא קיים או שאין לך הרשאות לגשת אליו." -#: src/app/main/ui/static.cljs:49 +#: src/app/main/ui/static.cljs msgid "labels.not-found.main-message" msgstr "אופס!" -#: src/app/main/ui/dashboard/projects.cljs:239, src/app/main/ui/dashboard/team.cljs:1095 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.num-of-files" msgid_plural "labels.num-of-files" msgstr[0] "קובץ" @@ -1698,7 +1561,6 @@ msgstr[1] "%s קבצים" msgstr[2] "%s קבצים" msgstr[3] "%s קבצים" -#: src/app/main/ui/viewer/thumbnails.cljs:80 msgid "labels.num-of-frames" msgid_plural "labels.num-of-frames" msgstr[0] "לוח" @@ -1706,7 +1568,7 @@ msgstr[1] "%s לוחות" msgstr[2] "%s לוחות" msgstr[3] "%s לוחות" -#: src/app/main/ui/dashboard/team.cljs:1090 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.num-of-projects" msgid_plural "labels.num-of-projects" msgstr[0] "מיזם" @@ -1714,442 +1576,388 @@ msgstr[1] "%s מיזמים" msgstr[2] "%s מיזמים" msgstr[3] "%s מיזמים" -#: src/app/main/ui/settings/password.cljs:89 +#: src/app/main/ui/settings/password.cljs msgid "labels.old-password" msgstr "סיסמה ישנה" #: src/app/main/ui/workspace/comments.cljs -#, unused msgid "labels.only-yours" msgstr "שלך בלבד" -#, unused msgid "labels.or" msgstr "או" -#: src/app/main/ui/onboarding/questions.cljs:145, src/app/main/ui/onboarding/questions.cljs:214, src/app/main/ui/onboarding/questions.cljs:303, src/app/main/ui/onboarding/questions.cljs:316, src/app/main/ui/onboarding/questions.cljs:389, src/app/main/ui/onboarding/questions.cljs:447 -msgid "labels.other" -msgstr "אחר (נא לפרט)" - -#: src/app/main/ui/dashboard/team.cljs:286, src/app/main/ui/dashboard/team.cljs:518, src/app/main/ui/dashboard/team.cljs:1076 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs msgid "labels.owner" msgstr "בעלים" -#: src/app/main/ui/settings/sidebar.cljs:87 +#: src/app/main/ui/settings/sidebar.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.password" msgstr "סיסמה" -#: src/app/main/ui/dashboard/team.cljs:662 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.pending-invitation" msgstr "בהמתנה" -#: src/app/main/ui/onboarding/questions.cljs:51 -msgid "labels.previous" -msgstr "הקודמת" - -#: src/app/main/ui/settings/profile.cljs:118, src/app/main/ui/settings/sidebar.cljs:82 +#: src/app/main/ui/settings/sidebar.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.profile" msgstr "פרופיל" -#: src/app/main/ui/dashboard/sidebar.cljs:784 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.projects" msgstr "מיזמים" -#: src/app/main/ui/dashboard/sidebar.cljs:998, src/app/main/ui/settings/sidebar.cljs:106, src/app/main/ui/workspace/main_menu.cljs:126 +#: src/app/main/ui/settings/sidebar.cljs msgid "labels.release-notes" msgstr "הודעות מהדורה" #: src/app/main/ui/workspace.cljs -#, unused msgid "labels.reload-file" msgstr "רענון קובץ" -#: src/app/main/ui/workspace/libraries.cljs, src/app/main/ui/dashboard/team.cljs -#, unused +#: src/app/main/ui/workspace/libraries.cljs, +#: src/app/main/ui/dashboard/team.cljs msgid "labels.remove" msgstr "הסרה" -#: src/app/main/ui/dashboard/team.cljs:316 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.remove-member" msgstr "הסרת חבר" -#: src/app/main/ui/dashboard/file_menu.cljs:271, src/app/main/ui/dashboard/project_menu.cljs:85, src/app/main/ui/dashboard/sidebar.cljs:539, src/app/main/ui/workspace/sidebar/assets/groups.cljs:157 +#: src/app/main/ui/dashboard/sidebar.cljs, +#: src/app/main/ui/dashboard/project_menu.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.rename" msgstr "שינוי שם" -#: src/app/main/ui/dashboard/team_form.cljs:99 +#: src/app/main/ui/dashboard/team_form.cljs msgid "labels.rename-team" msgstr "שינוי שם לצוות" -#: src/app/main/ui/dashboard/team.cljs:645 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.resend-invitation" msgstr "שליחת ההזמנה מחדש" -#: src/app/main/ui/static.cljs:61, src/app/main/ui/static.cljs:70, src/app/main/ui/static.cljs:148 +#: src/app/main/ui/static.cljs, src/app/main/ui/static.cljs msgid "labels.retry" msgstr "ניסיון חוזר" -#: src/app/main/ui/dashboard/team.cljs:469, src/app/main/ui/dashboard/team.cljs:709 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.role" msgstr "תפקיד" -#: src/app/main/ui/dashboard/fonts.cljs:380, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:191 msgid "labels.save" msgstr "שמירה" -#: src/app/main/ui/onboarding/questions.cljs:414, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:436 msgid "labels.search" msgstr "חיפוש" -#: src/app/main/ui/dashboard/fonts.cljs:415 msgid "labels.search-font" msgstr "חיפוש גופן" -#: src/app/main/ui/onboarding/questions.cljs:90, src/app/main/ui/onboarding/questions.cljs:248, src/app/main/ui/onboarding/questions.cljs:259, src/app/main/ui/onboarding/questions.cljs:270 -msgid "labels.select-option" -msgstr "בחירת אפשרות" - -#: src/app/main/ui/settings/feedback.cljs:82 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.send" msgstr "שליחה" -#: src/app/main/ui/settings/feedback.cljs:82 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.sending" msgstr "מתבצעת שליחה…" -#: src/app/main/ui/static.cljs:68 +#: src/app/main/ui/static.cljs msgid "labels.service-unavailable.desc-message" msgstr "אנחנו בהפוגת תחזוקה מתוכננת של המערכות שלנו." -#: src/app/main/ui/static.cljs:67 +#: src/app/main/ui/static.cljs msgid "labels.service-unavailable.main-message" msgstr "השירות אינו זמין" -#: src/app/main/ui/dashboard/sidebar.cljs:530, src/app/main/ui/dashboard/team.cljs:88, src/app/main/ui/dashboard/team.cljs:102, src/app/main/ui/settings/options.cljs:84, src/app/main/ui/settings/sidebar.cljs:93 +#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.settings" msgstr "הגדרות" -#: src/app/main/ui/viewer/header.cljs:199 msgid "labels.share" msgstr "שיתוף" -#, unused msgid "labels.share-prototype" msgstr "שיתוף אבטיפוס" -#: src/app/main/ui/dashboard/sidebar.cljs:800 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.shared-libraries" msgstr "ספריות משותפות" -#: src/app/main/ui/viewer/comments.cljs:82, src/app/main/ui/workspace/comments.cljs:55, src/app/main/ui/workspace/comments.cljs:135 +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs msgid "labels.show-all-comments" msgstr "הצגת כל ההערות" -#: src/app/main/ui/viewer/comments.cljs:115 msgid "labels.show-comments-list" msgstr "הצגת רשימת הערות" -#: src/app/main/ui/viewer/comments.cljs:91, src/app/main/ui/workspace/comments.cljs:61, src/app/main/ui/workspace/comments.cljs:136 +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs msgid "labels.show-your-comments" msgstr "הצגת ההערות שלך בלבד" -#: src/app/main/ui/onboarding/questions.cljs:172 -msgid "labels.sketch" -msgstr "Sketch" - -#: src/app/main/ui/onboarding/questions.cljs:56 -msgid "labels.start" -msgstr "התחלה" - -#: src/app/main/ui/dashboard/team.cljs:710 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.status" msgstr "מצב" -#: src/app/main/ui/onboarding/questions.cljs:251 -msgid "labels.student-teacher" -msgstr "סטודנט/ית או מרצה" - -#: src/app/main/ui/dashboard/sidebar.cljs:992, src/app/main/ui/workspace/main_menu.cljs:118 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.tutorials" msgstr "מדריכים" -#: src/app/main/ui/dashboard/file_menu.cljs:256 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.unpublish-multi-files" msgstr "ביטול פרסום קובצי %s" -#: src/app/main/ui/settings/profile.cljs:103 +#: src/app/main/ui/settings/profile.cljs msgid "labels.update" msgstr "עדכון" -#: src/app/main/ui/dashboard/team_form.cljs:120 +#: src/app/main/ui/dashboard/team_form.cljs msgid "labels.update-team" msgstr "עדכון צוות" -#: src/app/main/ui/dashboard/fonts.cljs:241 msgid "labels.upload" msgstr "העלאה" -#: src/app/main/ui/dashboard/fonts.cljs:169 msgid "labels.upload-custom-fonts" msgstr "העלאת גופנים משלך" -#: src/app/main/ui/dashboard/fonts.cljs:240 msgid "labels.uploading" msgstr "מתבצעת העלאה…" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs:223 msgid "labels.view-only" msgstr "תצוגה בלבד" -#: src/app/main/ui/dashboard/team.cljs:123, src/app/main/ui/dashboard/team.cljs:282, src/app/main/ui/dashboard/team.cljs:521 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.viewer" msgstr "מציג" -#: src/app/main/ui/dashboard/sidebar.cljs:523, src/app/main/ui/dashboard/team.cljs:90, src/app/main/ui/dashboard/team.cljs:100, src/app/main/ui/dashboard/team.cljs:880 msgid "labels.webhooks" msgstr "התליות" -#: src/app/main/ui/comments.cljs:194 +#: src/app/main/ui/comments.cljs msgid "labels.write-new-comment" msgstr "כתיבת הערה חדשה" -#: src/app/main/ui/dashboard/team.cljs:237 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.you" msgstr "(אני)" -#: src/app/main/ui/dashboard/sidebar.cljs:968 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.your-account" msgstr "החשבון שלך" -#: src/app/main/ui/workspace/colorpicker.cljs:297, src/app/main/ui/workspace/colorpicker.cljs:298, src/app/main/ui/workspace/colorpicker.cljs:300 msgid "media.choose-image" msgstr "בחירת תמונה" -#, unused msgid "media.gradient" msgstr "מדרג" -#: src/app/main/data/workspace/media.cljs:275, src/app/main/ui/components/color_bullet.cljs:32, src/app/main/ui/components/color_bullet.cljs:45, src/app/main/ui/viewer/inspect/attributes/common.cljs:66, src/app/main/ui/workspace/colorpicker.cljs:211, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:237 msgid "media.image" msgstr "תמונה" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:77 -msgid "media.image.short" -msgstr "תמונה" - -#: src/app/main/ui/workspace/colorpicker.cljs:290 -msgid "media.keep-aspect-ratio" -msgstr "שמירה על יחס גובה־רוחב" - -#: src/app/main/ui/workspace/colorpicker.cljs:208 msgid "media.linear" msgstr "קווי" -#: src/app/main/data/media.cljs:49, src/app/main/data/workspace/media.cljs:223, src/app/main/data/workspace/media.cljs:453 +#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs msgid "media.loading" msgstr "התמונה נטענת…" -#: src/app/main/ui/workspace/colorpicker.cljs:209 msgid "media.radial" msgstr "מעגלי" -#: src/app/main/ui/workspace/colorpicker.cljs:206 msgid "media.solid" msgstr "אחיד" -#: src/app/main/data/common.cljs:111 msgid "modals.add-shared-confirm-empty.hint" msgstr "" "הספרייה שלך ריקה. לאחר שנוספה כתיקייה משותפת, הנכסים שנוצרים על ידיך יהיו " "זמינים לצד שאר הקבצים שלך. לפרסם אותה?" -#: src/app/main/data/common.cljs:113 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.add-shared-confirm.accept" msgstr "הוספה כספריה משותפת" -#: src/app/main/data/common.cljs:111 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.add-shared-confirm.hint" msgstr "" "לאחר שנוספה כספריה משותפת, המשאבים בספריית הקבצים הזאת יהיו זמינים בנוסף " "לשאר הקבצים שלך." -#: src/app/main/data/common.cljs:110 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.add-shared-confirm.message" msgstr "הוספת „%s” כספריה משותפת" -#: src/app/main/ui/workspace/nudge.cljs:60 +#: src/app/main/ui/workspace/nudge.cljs msgid "modals.big-nudge" msgstr "הינד גדול" -#: src/app/main/ui/settings/change_email.cljs:127 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.confirm-email" msgstr "אימות כתובת דוא״ל חדשה" -#: src/app/main/ui/settings/change_email.cljs:114 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.info" msgstr "נשלח הודעה לכתובת הדוא״ל הנוכחית שלך „%s” כדי לאמת את הזהות שלך." -#: src/app/main/ui/settings/change_email.cljs:119 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.new-email" msgstr "כתובת דוא״ל חדשה" -#: src/app/main/ui/settings/change_email.cljs:136 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.submit" msgstr "החלפת כתובת דוא״ל" -#: src/app/main/ui/settings/change_email.cljs:107 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.title" msgstr "החלפת כתובת הדוא״ל שלך" -#: src/app/main/ui/settings/access_tokens.cljs:165, src/app/main/ui/settings/access_tokens.cljs:171 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.create-access-token.copy-token" msgstr "העתקת אסימון" -#: src/app/main/ui/settings/access_tokens.cljs:142 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.create-access-token.expiration-date.label" msgstr "תאריך תפוגה" -#: src/app/main/ui/settings/access_tokens.cljs:136 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.create-access-token.name.label" msgstr "שם" -#: src/app/main/ui/settings/access_tokens.cljs:138 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.create-access-token.name.placeholder" msgstr "השם יכול לסייע לך להבין למה מיועד האסימון" -#: src/app/main/ui/settings/access_tokens.cljs:191 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.create-access-token.submit-label" msgstr "יצירת אסימון" -#: src/app/main/ui/settings/access_tokens.cljs:123 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.create-access-token.title" msgstr "יצירת אסימון גישה" -#: src/app/main/ui/dashboard/team.cljs:873 msgid "modals.create-webhook.submit-label" msgstr "יצירת התליה" -#: src/app/main/ui/dashboard/team.cljs:838 msgid "modals.create-webhook.title" msgstr "יצירת התליה" -#: src/app/main/ui/dashboard/team.cljs:849 msgid "modals.create-webhook.url.label" msgstr "כתובת מטען" -#: src/app/main/ui/dashboard/team.cljs:850 msgid "modals.create-webhook.url.placeholder" msgstr "https://example.com/postreceive" -#: src/app/main/ui/settings/access_tokens.cljs:271 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.delete-acces-token.accept" msgstr "מחיקת אסימון" -#: src/app/main/ui/settings/access_tokens.cljs:270 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.delete-acces-token.message" msgstr "למחוק את האסימון הזה?" -#: src/app/main/ui/settings/access_tokens.cljs:269 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.delete-acces-token.title" msgstr "מחיקת אסימון" -#: src/app/main/ui/settings/delete_account.cljs:59 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.cancel" msgstr "ביטול ושמירה על החשבון שלי" -#: src/app/main/ui/settings/delete_account.cljs:64 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.confirm" msgstr "כן, למחוק את החשבון שלי" -#: src/app/main/ui/settings/delete_account.cljs:53 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.info" msgstr "הסרת החשבון שלך תוביל לאיבוד כל המיזמים והארכיונים הקיימים שלך." -#: src/app/main/ui/settings/delete_account.cljs:46 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.title" msgstr "למחוק את החשבון שלך?" -#: src/app/main/ui/comments.cljs:298 +#: src/app/main/ui/comments.cljs msgid "modals.delete-comment-thread.accept" msgstr "מחיקת דיון" -#: src/app/main/ui/comments.cljs:297 +#: src/app/main/ui/comments.cljs msgid "modals.delete-comment-thread.message" msgstr "למחוק את הדיון הזה? כל התגובות בשרשור תימחקנה." -#: src/app/main/ui/comments.cljs:296 +#: src/app/main/ui/comments.cljs msgid "modals.delete-comment-thread.title" msgstr "מחיקת דיון" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:140 msgid "modals.delete-component-annotation.message" msgstr "למחוק את הסימון הזה?" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:139 msgid "modals.delete-component-annotation.title" msgstr "מחיקת סימון" -#: src/app/main/ui/dashboard/file_menu.cljs:123 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-confirm.accept" msgstr "מחיקת קובץ" -#: src/app/main/ui/dashboard/file_menu.cljs:122 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-confirm.message" msgstr "למחוק את הקובץ?" -#: src/app/main/ui/dashboard/file_menu.cljs:121 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-confirm.title" msgstr "הקובץ נמחק" -#: src/app/main/ui/dashboard/file_menu.cljs:117 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-multi-confirm.accept" msgstr "מחיקת קבצים" -#: src/app/main/ui/dashboard/file_menu.cljs:116 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-multi-confirm.message" msgstr "למחוק %s קבצים?" -#: src/app/main/ui/dashboard/file_menu.cljs:115 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-multi-confirm.title" msgstr "%s קבצים נמחקים" -#: src/app/main/ui/dashboard/fonts.cljs:345 msgid "modals.delete-font-variant.message" msgstr "למחוק את סגנון הגופן הזה? הוא לא ייטען אם נעשה בו שימוש בקובץ." -#: src/app/main/ui/dashboard/fonts.cljs:344 msgid "modals.delete-font-variant.title" msgstr "סגנון גופן נמחק" -#: src/app/main/ui/dashboard/fonts.cljs:331 msgid "modals.delete-font.message" msgstr "למחוק את הגופן הזה? הוא לא ייטען אם נעשה בו שימוש בקובץ." -#: src/app/main/ui/dashboard/fonts.cljs:330 msgid "modals.delete-font.title" msgstr "גופן נמחק" -#: src/app/main/ui/workspace/context_menu.cljs:522, src/app/main/ui/workspace/sidebar/sitemap.cljs:45 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs msgid "modals.delete-page.body" msgstr "למחוק את העמוד הזה?" -#: src/app/main/ui/workspace/context_menu.cljs:521, src/app/main/ui/workspace/sidebar/sitemap.cljs:44 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs msgid "modals.delete-page.title" msgstr "מחיקת עמוד" -#: src/app/main/ui/dashboard/project_menu.cljs:69 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "modals.delete-project-confirm.accept" msgstr "מחיקת מיזם" -#: src/app/main/ui/dashboard/project_menu.cljs:68 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "modals.delete-project-confirm.message" msgstr "למחוק את המיזם הזה?" -#: src/app/main/ui/dashboard/project_menu.cljs:67 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "modals.delete-project-confirm.title" msgstr "מחיקת מיזם" -#: src/app/main/ui/delete_shared.cljs:51 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.accept" msgid_plural "modals.delete-shared-confirm.accept" msgstr[0] "מחיקת קובץ" @@ -2157,7 +1965,8 @@ msgstr[1] "מחיקת קבצים" msgstr[2] "מחיקת קבצים" msgstr[3] "מחיקת קבצים" -#: src/app/main/ui/delete_shared.cljs:55 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.activated.no-files-message" msgid_plural "modals.delete-shared-confirm.activated.no-files-message" msgstr[0] "לא מופעל באף קובץ." @@ -2165,7 +1974,8 @@ msgstr[1] "לא מופעלים באף קובץ." msgstr[2] "לא מופעלים באף קובץ." msgstr[3] "לא מופעלים באף קובץ." -#: src/app/main/ui/delete_shared.cljs:57 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.activated.scd-message" msgid_plural "modals.delete-shared-confirm.activated.scd-message" msgstr[0] "הספרייה הזאת מופעלת כאן: " @@ -2173,7 +1983,8 @@ msgstr[1] "הספריות האלו מופעלות כאן: " msgstr[2] "הספריות האלו מופעלות כאן: " msgstr[3] "הספריות האלו מופעלות כאן: " -#: src/app/main/ui/delete_shared.cljs:46 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.message" msgid_plural "modals.delete-shared-confirm.message" msgstr[0] "למחוק את הקובץ?" @@ -2181,7 +1992,8 @@ msgstr[1] "למחוק את הקבצים?" msgstr[2] "למחוק את הקבצים?" msgstr[3] "למחוק את הקבצים?" -#: src/app/main/ui/delete_shared.cljs:41 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.title" msgid_plural "modals.delete-shared-confirm.title" msgstr[0] "מחיקת קובץ" @@ -2189,125 +2001,114 @@ msgstr[1] "מחיקת קבצים" msgstr[2] "מחיקת קבצים" msgstr[3] "מחיקת קבצים" -#: src/app/main/ui/dashboard/sidebar.cljs:435 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.delete-team-confirm.accept" msgstr "מחיקת צוות" -#: src/app/main/ui/dashboard/sidebar.cljs:434 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.delete-team-confirm.message" msgstr "למחוק את הצוות הזה? כל המיזמים והקבצים שמשויכים לצוות יימחקו לצמיתות." -#: src/app/main/ui/dashboard/sidebar.cljs:433 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.delete-team-confirm.title" msgstr "צוות נמחק" -#: src/app/main/ui/dashboard/team.cljs:427 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.delete-team-member-confirm.accept" msgstr "מחיקת חבר" -#: src/app/main/ui/dashboard/team.cljs:426 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.delete-team-member-confirm.message" msgstr "למחוק את החבר הזה מהצוות?" -#: src/app/main/ui/dashboard/team.cljs:425 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.delete-team-member-confirm.title" msgstr "למחוק חבר בצוות" -#: src/app/main/ui/delete_shared.cljs:59 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-unpublish-shared-confirm.activated.hint" msgid_plural "modals.delete-unpublish-shared-confirm.activated.hint" msgstr[0] "נכסים שכבר נעשה בהם שימוש בקובץ הזה יישארו שם (אף עיצוב לא ייפגע)." -msgstr[1] "נכסים שכבר נעשה בהם שימוש בקבצים האלה יישארו שם (אף עיצוב לא ייפגע)." -msgstr[2] "נכסים שכבר נעשה בהם שימוש בקבצים האלה יישארו שם (אף עיצוב לא ייפגע)." -msgstr[3] "נכסים שכבר נעשה בהם שימוש בקבצים האלה יישארו שם (אף עיצוב לא ייפגע)." +msgstr[1] "" +"נכסים שכבר נעשה בהם שימוש בקבצים האלה יישארו שם (אף עיצוב לא ייפגע)." +msgstr[2] "" +"נכסים שכבר נעשה בהם שימוש בקבצים האלה יישארו שם (אף עיצוב לא ייפגע)." +msgstr[3] "" +"נכסים שכבר נעשה בהם שימוש בקבצים האלה יישארו שם (אף עיצוב לא ייפגע)." -#: src/app/main/ui/dashboard/team.cljs:942 msgid "modals.delete-webhook.accept" msgstr "מחיקת התליה" -#: src/app/main/ui/dashboard/team.cljs:941 msgid "modals.delete-webhook.message" msgstr "למחוק את ההתליה?" -#: src/app/main/ui/dashboard/team.cljs:940 msgid "modals.delete-webhook.title" msgstr "מחיקת התליה" -#: src/app/main/ui/dashboard/team.cljs:872 msgid "modals.edit-webhook.submit-label" msgstr "עריכת התליה" -#: src/app/main/ui/dashboard/team.cljs:837 msgid "modals.edit-webhook.title" msgstr "עריכת התליה" -#: src/app/main/ui/dashboard/team.cljs:218 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.invite-member-confirm.accept" msgstr "שליחת הזמנה" -#: src/app/main/ui/dashboard/team.cljs:213, src/app/main/ui/onboarding/team_choice.cljs:156 msgid "modals.invite-member.emails" msgstr "כתובות דוא״ל, מופרדות בפסיקים" -#: src/app/main/ui/dashboard/team.cljs:197 msgid "modals.invite-member.repeated-invitation" msgstr "חלק מכתובות הדוא״ל הן של חברי צוות נוכחיים. ההזמנות לא תישלחנה אליהם." -#: src/app/main/ui/dashboard/team.cljs:190 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.invite-team-member.title" msgstr "הזמנת חברים לצוות" -#: src/app/main/ui/dashboard/sidebar.cljs:423, src/app/main/ui/dashboard/team.cljs:393 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-close-confirm.hint" -msgstr "כיוון שאין עוד חברים בצוות הזה מלבדך, הצוות יימחק על כל המיזמים והקבצים שלו." +msgstr "" +"כיוון שאין עוד חברים בצוות הזה מלבדך, הצוות יימחק על כל המיזמים והקבצים שלו." -#: src/app/main/ui/dashboard/sidebar.cljs:422, src/app/main/ui/dashboard/team.cljs:392 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-close-confirm.message" msgstr "ברצונך לעזוב את הצוות %s?" -#: src/app/main/ui/dashboard/change_owner.cljs:59 msgid "modals.leave-and-reassign.forbidden" msgstr "" "אי אפשר לעזוב צוות אם אין חברים שאפשר לקדם לבעלות עליה. אולי עדיף למחוק את " "הצוות." -#: src/app/main/ui/dashboard/change_owner.cljs:55 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-reassign.hint1" -msgstr "הבעלות על הצוות הזה בידיך. נא לבחור מישהו כדי לקידום לבעלות בטרם עזיבתך." +msgstr "" +"הבעלות על הצוות הזה בידיך. נא לבחור מישהו כדי לקידום לבעלות בטרם עזיבתך." -#: src/app/main/ui/dashboard/change_owner.cljs:78 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-reassign.promote-and-leave" msgstr "קידום ועזיבה" -#: src/app/main/ui/dashboard/change_owner.cljs:34 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-reassign.select-member-to-promote" msgstr "נא לבחור חבר לקידום" -#: src/app/main/ui/dashboard/change_owner.cljs:49 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-reassign.title" msgstr "בטרם עזיבתך" -#: src/app/main/ui/dashboard/sidebar.cljs:402, src/app/main/ui/dashboard/sidebar.cljs:424, src/app/main/ui/dashboard/team.cljs:394, src/app/main/ui/dashboard/team.cljs:416 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-confirm.accept" msgstr "עזיבת צוות" -#: src/app/main/ui/dashboard/sidebar.cljs:401, src/app/main/ui/dashboard/team.cljs:415 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-confirm.message" msgstr "לעזוב את הצוות הזה?" -#: src/app/main/ui/dashboard/sidebar.cljs:400, src/app/main/ui/dashboard/sidebar.cljs:421, src/app/main/ui/dashboard/team.cljs:391, src/app/main/ui/dashboard/team.cljs:414 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-confirm.title" msgstr "עזיבת הצוות" -#: src/app/main/ui/delete_shared.cljs:53 -msgid "modals.move-shared-confirm.accept" -msgid_plural "modals.move-shared-confirm.accept" -msgstr[0] "העברה" -msgstr[1] "העברה" -msgstr[2] "העברה" -msgstr[3] "העברה" - -#: src/app/main/ui/delete_shared.cljs:48 msgid "modals.move-shared-confirm.message" msgid_plural "modals.move-shared-confirm.message" msgstr[0] "להעביר את הספרייה הזאת?" @@ -2315,7 +2116,6 @@ msgstr[1] "להעביר את הספריות האלו?" msgstr[2] "להעביר את הספריות האלו?" msgstr[3] "להעביר את הספריות האלו?" -#: src/app/main/ui/delete_shared.cljs:43 msgid "modals.move-shared-confirm.title" msgid_plural "modals.move-shared-confirm.title" msgstr[0] "העברת ספרייה" @@ -2323,62 +2123,60 @@ msgstr[1] "העברת ספריות" msgstr[2] "העברת ספריות" msgstr[3] "העברת ספריות" -#: src/app/main/ui/workspace/main_menu.cljs:266, src/app/main/ui/workspace/nudge.cljs:47 +#: src/app/main/ui/workspace/nudge.cljs msgid "modals.nudge-title" msgstr "כמות ההינד" -#: src/app/main/ui/dashboard/team.cljs:340 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.accept" msgstr "העברת בעלות" -#: src/app/main/ui/dashboard/team.cljs:339 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.hint" msgstr "" "העברת בעלות תשנה את תפקידך לחלק מההנהלה תוך אובדן חלק מההרשאות שלך על הצוות " "הזה. " -#: src/app/main/ui/dashboard/team.cljs:338 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.message" msgstr "הצוות הזה הוא כרגע בבעלותך. להפוך את %s לבעלים החדשים של הצוות?" -#: src/app/main/ui/dashboard/team.cljs:337 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.title" msgstr "בעלים חדשים לצוות" -#: src/app/main/ui/workspace/libraries.cljs:188 msgid "modals.publish-empty-library.accept" msgstr "פרסום" -#: src/app/main/ui/workspace/libraries.cljs:187 msgid "modals.publish-empty-library.message" msgstr "הספרייה שלך ריקה. לפרסם אותה בכל זאת?" -#: src/app/main/ui/workspace/libraries.cljs:186 msgid "modals.publish-empty-library.title" msgstr "פרסום ספרייה ריקה" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.remove-shared-confirm.accept" msgstr "הסרה כספריה משותפת" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.remove-shared-confirm.hint" msgstr "" -"לאחר הסרה כספריה משותפת, ספריית הקבצים של הקובץ הזה לא תהיה זמינה עוד " -"לשימוש בקרב שאר הקבצים שלך." +"לאחר הסרה כספריה משותפת, ספריית הקבצים של הקובץ הזה לא תהיה זמינה עוד לשימוש " +"בקרב שאר הקבצים שלך." -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.remove-shared-confirm.message" msgstr "הסרת „%s” כספריה משותפת" -#: src/app/main/ui/workspace/nudge.cljs:53 +#: src/app/main/ui/workspace/nudge.cljs msgid "modals.small-nudge" msgstr "הינד קטן" -#: src/app/main/ui/delete_shared.cljs:52 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.unpublish-shared-confirm.accept" msgid_plural "modals.unpublish-shared-confirm.accept" msgstr[0] "ביטול פרסום" @@ -2386,7 +2184,8 @@ msgstr[1] "ביטול פרסום" msgstr[2] "ביטול פרסום" msgstr[3] "ביטול פרסום" -#: src/app/main/ui/delete_shared.cljs:47 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.unpublish-shared-confirm.message" msgid_plural "modals.unpublish-shared-confirm.message" msgstr[0] "לבטל את פרסום הספרייה הזאת?" @@ -2394,7 +2193,8 @@ msgstr[1] "לבטל את פרסום הספריות האלו?" msgstr[2] "לבטל את פרסום הספריות האלו?" msgstr[3] "לבטל את פרסום הספריות האלו?" -#: src/app/main/ui/delete_shared.cljs:42 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.unpublish-shared-confirm.title" msgid_plural "modals.unpublish-shared-confirm.title" msgstr[0] "ביטול פרסום ספרייה" @@ -2402,1219 +2202,1062 @@ msgstr[1] "ביטול פרסום ספריות" msgstr[2] "ביטול פרסום ספריות" msgstr[3] "ביטול פרסום ספריות" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component-in-bulk.hint" msgstr "" -"פעולה זו תעדכן רכיבים בספרייה משותפת. עשוי להשפיע על קבצים אחרים שמשתמשים " -"בה." +"פעולה זו תעדכן רכיבים בספרייה משותפת. עשוי להשפיע על קבצים אחרים שמשתמשים בה." -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component-in-bulk.message" msgstr "עדכון רכיבים בספרייה משותפת" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:380 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.accept" msgstr "עדכון" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:379 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.cancel" msgstr "ביטול" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:378 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.hint" msgstr "" "פעולה זו תעדכן רכיב בספריה משותפת. זה עשוי להשפיע על הקבצים האחרים שמשתמשים " "בה." -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:377 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.message" msgstr "עדכון רכיב בספריה משותפת" -#: src/app/main/data/common.cljs:71 +#: src/app/main/data/common.cljs msgid "notifications.by-code.upgrade-version" msgstr "יש גרסה חדשה, נא לרענן את העמוד" -#: src/app/main/ui/dashboard/team.cljs:154, src/app/main/ui/dashboard/team.cljs:595 +#: src/app/main/ui/dashboard/team.cljs msgid "notifications.invitation-email-sent" msgstr "ההזמנה נשלחה בהצלחה" -#: src/app/main/ui/dashboard/team.cljs:616 +#: src/app/main/ui/dashboard/team.cljs msgid "notifications.invitation-link-copied" msgstr "קישור ההזמנה הועתק" -#: src/app/main/ui/settings/delete_account.cljs:24 +#: src/app/main/ui/settings/delete_account.cljs msgid "notifications.profile-deletion-not-allowed" msgstr "" -"אי אפשר למחוק את הפרופיל שלך. יש להקצות את הצוותים שלך מחדש בטרם המשך " -"בתהליך." +"אי אפשר למחוק את הפרופיל שלך. יש להקצות את הצוותים שלך מחדש בטרם המשך בתהליך." -#: src/app/main/ui/settings/options.cljs:29, src/app/main/ui/settings/profile.cljs:35 +#: src/app/main/ui/settings/profile.cljs, src/app/main/ui/settings/options.cljs msgid "notifications.profile-saved" msgstr "הפרופיל נשמר בהצלחה!" -#: src/app/main/ui/settings/change_email.cljs:63 +#: src/app/main/ui/settings/change_email.cljs msgid "notifications.validation-email-sent" msgstr "הודעת האימות נשלחה בדוא״ל אל %s. נא לבדוק את הדוא״ל שלך!" -#, unused msgid "onboarding-v2.before-start.desc1" msgstr "" -"רצוי לדעת שיש מגוון משאבים זמינים לך כדי לסייע לך להתחיל להשתמש ב־Penpot " -"כמו המדריך למשתמשים וערוץ ה־YouTube שלנו." +"רצוי לדעת שיש מגוון משאבים זמינים לך כדי לסייע לך להתחיל להשתמש ב־Penpot כמו " +"המדריך למשתמשים וערוץ ה־YouTube שלנו." -#, unused msgid "onboarding-v2.before-start.desc2" -msgstr "מידע מפורט על אופן השימוש ב־Penpot. החל מתכנון אבטיפוס ועד שיתוף עיצובים." +msgstr "" +"מידע מפורט על אופן השימוש ב־Penpot. החל מתכנון אבטיפוס ועד שיתוף עיצובים." -#, unused msgid "onboarding-v2.before-start.desc2.title" msgstr "מדריך למשתמשים" -#, unused msgid "onboarding-v2.before-start.desc3" msgstr "אפשר לצפות במדריכים שלנו ובמדריכים שנוצרו על ידי חברי הקהילה שלנו." -#, unused msgid "onboarding-v2.before-start.desc3.title" msgstr "מדריכים מצולמים" -#, unused msgid "onboarding-v2.before-start.title" msgstr "לפני שמתחילים" -#: src/app/main/ui/onboarding/newsletter.cljs:63 msgid "onboarding-v2.newsletter.desc" msgstr "" "ניתן להירשם לרשימת הדיוור של Penpot כדי להתעדכן בתהליך פיתוח המוצר ובחדשות " "נוספות." -#: src/app/main/ui/onboarding/newsletter.cljs:83 msgid "onboarding-v2.newsletter.news" msgstr "נא לשלוח לי חדשות על Penpot (בלוגים, מדריכים מצולמים, שידורים…)." -#: src/app/main/ui/onboarding/newsletter.cljs:91 msgid "onboarding-v2.newsletter.privacy1" msgstr "אכפת לנו מפרטיות, כאן ניתן לקרוא את " -#: src/app/main/ui/onboarding/newsletter.cljs:97 msgid "onboarding-v2.newsletter.privacy2" msgstr "" "אנו נשלח לך בדוא״ל רק הודעות שרלוונטיות לך. אפשר לבטל את המינוי דרך כפתור " "ביטול המינוי בכל אחת מהודעות הדיוור שלנו." -#: src/app/main/ui/onboarding/newsletter.cljs:71 msgid "onboarding-v2.newsletter.updates" msgstr "נא לשלוח לי עדכונים על המוצר (יכולות חדשות, מהדורות, תיקונים…)." -#, unused msgid "onboarding-v2.welcome.desc1" msgstr "" "Penpot הוא בקוד פתוח והוא נוצר על ידי Kaleidos וגם על ידי הקהילה בה מגוון " "אנשים כבר מסייעים זה לזה. כל אחד יכול לתרום דרך:" -#, unused msgid "onboarding-v2.welcome.desc2" msgstr "" "מקום ציבורי ללמידה, שיתוף ודיון על Penpot, ההווה והעתיד שלו עם כל הקהילה " "וצוות הליבה של Penpot." -#, unused msgid "onboarding-v2.welcome.desc2.title" msgstr "השתתפות בפעילות הקהילתית" -#, unused msgid "onboarding-v2.welcome.desc3" msgstr "" "כאן אפשר למצוא מידע על כיצד לשתף פעולה בנושאי תרגום, בקשות יכולות, תרומות " "ליבה, מצוד אחר תקלות…" -#, unused msgid "onboarding-v2.welcome.desc3.title" msgstr "מדריך למתנדבים" -#: src/app/main/ui/onboarding/team_choice.cljs:31 msgid "onboarding-v2.welcome.title" msgstr "ברוך בואך ל־Penpot!" -#: src/app/main/ui/onboarding/team_choice.cljs:229 msgid "onboarding.choice.team-up.continue-creating-team" msgstr "להמשיך ביצירת צוות" -#: src/app/main/ui/onboarding/team_choice.cljs:239 msgid "onboarding.choice.team-up.continue-without-a-team" msgstr "להמשיך בלי צוות" -#: src/app/main/ui/onboarding/team_choice.cljs:167 msgid "onboarding.choice.team-up.create-team-and-invite" msgstr "ליצור צוות ולהזמין" -#, unused msgid "onboarding.choice.team-up.create-team-and-send-invites" msgstr "ליצור צוות ולשלוח הזמנות" -#: src/app/main/ui/onboarding/team_choice.cljs:170 msgid "onboarding.choice.team-up.create-team-and-send-invites-description" msgstr "אפשר להזמין בהמשך" -#: src/app/main/ui/onboarding/team_choice.cljs:215 msgid "onboarding.choice.team-up.create-team-desc" msgstr "לאחר מתן שם לצוות שלך, יתאפשר לך להזמין אנשים להצטרף." -#: src/app/main/ui/onboarding/team_choice.cljs:224 msgid "onboarding.choice.team-up.create-team-placeholder" msgstr "נא למלא את שם הצוות" -#: src/app/main/ui/onboarding/team_choice.cljs:168 msgid "onboarding.choice.team-up.create-team-without-invite" msgstr "ליצור צוות" -#, unused msgid "onboarding.choice.team-up.create-team-without-inviting" msgstr "ליצור צוות בלי לשלוח הזמנות" -#: src/app/main/ui/dashboard/projects.cljs:89, src/app/main/ui/onboarding/team_choice.cljs:140 msgid "onboarding.choice.team-up.invite-members" msgstr "הזמנת חברים" -#: src/app/main/ui/onboarding/team_choice.cljs:141 msgid "onboarding.choice.team-up.invite-members-info" msgstr "רצוי לזכור לכלול את כולם. מפתחים, מעצבים, מנהלים… גיוון מעשיר :)" -#: src/app/main/ui/dashboard/team.cljs:202, src/app/main/ui/onboarding/team_choice.cljs:146 msgid "onboarding.choice.team-up.roles" msgstr "הזמנה עם התפקיד:" -#: src/app/main/ui/onboarding/team_choice.cljs:232 msgid "onboarding.choice.team-up.start-without-a-team" msgstr "להתחיל בלי צוות" -#: src/app/main/ui/onboarding/team_choice.cljs:234 msgid "onboarding.choice.team-up.start-without-a-team-description" msgstr "אפשר ליצור צוות בהמשך." -#, unused msgid "onboarding.newsletter.accept" msgstr "כן, להירשם" -#: src/app/main/ui/onboarding/newsletter.cljs:40 msgid "onboarding.newsletter.acceptance-message" msgstr "בקשת המינוי שלך נשלחה, נשלח לך הודעה בדוא״ל כדי לאשר אותה." -#: src/app/main/ui/onboarding/newsletter.cljs:95 msgid "onboarding.newsletter.policy" msgstr "מדיניות פרטיות." -#: src/app/main/ui/onboarding/newsletter.cljs:60 msgid "onboarding.newsletter.title" msgstr "מעניין אותך לקבל חדשות על Penpot?" -#: src/app/main/ui/onboarding/questions.cljs:118 -msgid "onboarding.questions.lets-get-started" -msgstr "מתחילים!" - -#: src/app/main/ui/onboarding/questions.cljs:320 -msgid "onboarding.questions.step3.question3" -msgstr "מה גודל הצוות שלך?" - -#: src/app/main/ui/onboarding/questions.cljs:273 -msgid "onboarding.questions.team-size.11-30" -msgstr "11‏-30" - -#: src/app/main/ui/onboarding/questions.cljs:274 -msgid "onboarding.questions.team-size.2-10" -msgstr "2-‏10" - -#: src/app/main/ui/onboarding/questions.cljs:272 -msgid "onboarding.questions.team-size.31-50" -msgstr "31‏-50" - -#: src/app/main/ui/onboarding/questions.cljs:271 -msgid "onboarding.questions.team-size.more-than-50" -msgstr "גדול מ־50" - -#: src/app/main/ui/onboarding/questions.cljs:276 -msgid "onboarding.questions.team-size.personal-project" -msgstr "זאת עבודה על מיזם פרטי" - -#: src/app/main/ui/onboarding/team_choice.cljs:213 msgid "onboarding.team-modal.create-team" msgstr "יצירת צוות" -#: src/app/main/ui/onboarding/team_choice.cljs:35 msgid "onboarding.team-modal.create-team-desc" msgstr "" "צוות מאפשר לך לשתף פעולה עם משתמשים אחרים ב־Penpot שעובדים על אותם קבצים " "ומיזמים." -#: src/app/main/ui/onboarding/team_choice.cljs:40 msgid "onboarding.team-modal.create-team-feature-1" msgstr "אין הגבלה על קבצים או מיזמים" -#: src/app/main/ui/onboarding/team_choice.cljs:44 msgid "onboarding.team-modal.create-team-feature-2" msgstr "מהדורת ריבוי משתתפים" -#: src/app/main/ui/onboarding/team_choice.cljs:48 msgid "onboarding.team-modal.create-team-feature-3" msgstr "ניהול תפקידים" -#: src/app/main/ui/onboarding/team_choice.cljs:52 msgid "onboarding.team-modal.create-team-feature-4" msgstr "ללא הגבלת משתמשים" -#: src/app/main/ui/onboarding/team_choice.cljs:56 msgid "onboarding.team-modal.create-team-feature-5" msgstr "100% בחינם!" -#: src/app/main/ui/onboarding/team_choice.cljs:33 msgid "onboarding.team-modal.team-definition" msgstr "מה זה צוות?" -#: src/app/main/ui/onboarding/templates.cljs:78 msgid "onboarding.templates.subtitle" msgstr "הנה כמה תבניות." -#: src/app/main/ui/onboarding/templates.cljs:77 msgid "onboarding.templates.title" msgstr "להתחיל לעצב" -#, unused msgid "onboarding.welcome.alt" msgstr "Penpot" -#: src/app/main/ui/auth/recovery.cljs:99 +#: src/app/main/ui/auth/recovery.cljs msgid "profile.recovery.go-to-login" msgstr "מעבר למסך הכניסה" -#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:221 +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.team-size.11-30" +msgstr "11‏-30" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.team-size.2-10" +msgstr "2-‏10" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.team-size.31-50" +msgstr "31‏-50" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.adobe-xd" +msgstr "Adobe XD" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.canva" +msgstr "Canva" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.figma" +msgstr "Figma" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.founder" +msgstr "מייסד/סגן נשיא" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.freelancer" +msgstr "יש לי עסק משלי" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.invision" +msgstr "InVision" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.lets-get-started" +msgstr "מתחילים!" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.team-size.more-than-50" +msgstr "גדול מ־50" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.next" +msgstr "הבאה" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.other" +msgstr "אחר (נא לפרט)" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.team-size.personal-project" +msgstr "זאת עבודה על מיזם פרטי" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.previous" +msgstr "הקודמת" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.select-option" +msgstr "בחירת אפשרות" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.sketch" +msgstr "Sketch" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.start" +msgstr "התחלה" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.student-teacher" +msgstr "סטודנט/ית או מרצה" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.step3.question3" +msgstr "מה גודל הצוות שלך?" + +#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, msgid "settings.detach" msgstr "ניתוק" -#: src/app/main/ui/viewer/inspect/exports.cljs:147, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:631, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:137, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:148, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:188, src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:158, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:399, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:410, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:430, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:441, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:458, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:472, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:309, src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:183, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:373, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:389, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:245, src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:172 +#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs msgid "settings.multiple" msgstr "מעורב" -#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:271 +#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs msgid "settings.select-this-color" msgstr "בחירת פריטים שמשתמשים בסגנון הזה" # SECTIONS -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:414 msgid "shortcut-section.basics" msgstr "יסודות" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:420 msgid "shortcut-section.dashboard" msgstr "לוח בקרה" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:423 msgid "shortcut-section.viewer" msgstr "מציג" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:417 msgid "shortcut-section.workspace" msgstr "סביבת עבודה" # SUBSECTIONS -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:56 msgid "shortcut-subsection.alignment" msgstr "יישור" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:57 msgid "shortcut-subsection.edit" msgstr "עריכה" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:58 msgid "shortcut-subsection.general-dashboard" msgstr "כללי" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:59 msgid "shortcut-subsection.general-viewer" msgstr "כללי" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:60 msgid "shortcut-subsection.main-menu" msgstr "תפריט ראשי" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:61 msgid "shortcut-subsection.modify-layers" msgstr "שינוי שכבות" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:62 msgid "shortcut-subsection.navigation-dashboard" msgstr "ניווט" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:63 msgid "shortcut-subsection.navigation-viewer" msgstr "ניווט" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:64 msgid "shortcut-subsection.navigation-workspace" msgstr "ניווט" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:65 msgid "shortcut-subsection.panels" msgstr "לוחות" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:66 msgid "shortcut-subsection.path-editor" msgstr "נתיבים" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:67 msgid "shortcut-subsection.shape" msgstr "צורות" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:68 msgid "shortcut-subsection.text-editor" msgstr "טקסטים" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:69 msgid "shortcut-subsection.tools" msgstr "כלים" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:70 msgid "shortcut-subsection.zoom-viewer" msgstr "תקריב" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:71 msgid "shortcut-subsection.zoom-workspace" msgstr "תקריב" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:72 msgid "shortcuts.add-comment" msgstr "הערות" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:73 msgid "shortcuts.add-node" msgstr "הוספת מפרק" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:74 msgid "shortcuts.align-bottom" msgstr "יישור לתחתית" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:75 msgid "shortcuts.align-center" msgstr "יישור למרכז" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:76 msgid "shortcuts.align-hcenter" msgstr "יישור למרכז אופקית" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:77 msgid "shortcuts.align-justify" msgstr "יישור משני הצדדים" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:78 msgid "shortcuts.align-left" msgstr "יישור שמאלה" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:79 msgid "shortcuts.align-right" msgstr "יישור ימינה" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:80 msgid "shortcuts.align-top" msgstr "יישור לראש" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:81 msgid "shortcuts.align-vcenter" msgstr "יישור למרכז אנכית" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:82 msgid "shortcuts.artboard-selection" msgstr "יצירת לוח מהבחירה" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:83 msgid "shortcuts.bold" msgstr "החלפת מצב מודגש" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:84 msgid "shortcuts.bool-difference" msgstr "הבדל בוליאני" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:85 msgid "shortcuts.bool-exclude" msgstr "החרגה בוליאנית" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:86 msgid "shortcuts.bool-intersection" msgstr "הצלבה בוליאנית" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:87 msgid "shortcuts.bool-union" msgstr "איחוד בוליאני" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:88 msgid "shortcuts.bring-back" msgstr "שליחה אחורה" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:89 msgid "shortcuts.bring-backward" msgstr "הרחקה לאחור" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:90 msgid "shortcuts.bring-forward" msgstr "קידום" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:91 msgid "shortcuts.bring-front" msgstr "הבאה לחזית" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:92 msgid "shortcuts.clear-undo" msgstr "פינוי ביטול" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:93 msgid "shortcuts.copy" msgstr "העתקה" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:94 msgid "shortcuts.create-component" msgstr "יצירת רכיב" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:95 msgid "shortcuts.create-new-project" msgstr "יצירת חדש" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:96 msgid "shortcuts.cut" msgstr "גזירה" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:97 msgid "shortcuts.decrease-zoom" msgstr "התרחקות" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:98 msgid "shortcuts.delete" msgstr "מחיקה" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:99 msgid "shortcuts.delete-node" msgstr "מחיקת מפרק" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:100 msgid "shortcuts.detach-component" msgstr "ניתוק רכיב" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:101 msgid "shortcuts.draw-curve" msgstr "עיקול" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:102 msgid "shortcuts.draw-ellipse" msgstr "אליפסה" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:103 msgid "shortcuts.draw-frame" msgstr "לוח" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:104 msgid "shortcuts.draw-nodes" msgstr "ציור נתיב" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:105 msgid "shortcuts.draw-path" msgstr "נתיב" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:106 msgid "shortcuts.draw-rect" msgstr "מרובע" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:107 msgid "shortcuts.draw-text" msgstr "טקסט" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:108 msgid "shortcuts.duplicate" msgstr "שכפול" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:109 msgid "shortcuts.escape" msgstr "ביטול" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:110 msgid "shortcuts.export-shapes" msgstr "ייצוא צורות" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:111 msgid "shortcuts.fit-all" msgstr "כיוון תקריב כדי להציג הכול" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:112 msgid "shortcuts.flip-horizontal" msgstr "היפוך אופקי" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:113 msgid "shortcuts.flip-vertical" msgstr "היפוך אנכי" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:114 msgid "shortcuts.font-size-dec" msgstr "הקטנת גודל הכתב" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:115 msgid "shortcuts.font-size-inc" msgstr "הגדלת גודל הכתב" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:116 msgid "shortcuts.go-to-drafts" msgstr "מעבר לטיוטות" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:117 msgid "shortcuts.go-to-libs" msgstr "מעבר לספריות המשותפות" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:118 msgid "shortcuts.go-to-search" msgstr "חיפוש" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:119 msgid "shortcuts.group" msgstr "קבוצה" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:120 msgid "shortcuts.h-distribute" msgstr "פיזור אופקית" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:121 msgid "shortcuts.hide-ui" msgstr "הצגת/הסתרת מנשק משתמש" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:122 msgid "shortcuts.increase-zoom" msgstr "התקרבות" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:123 msgid "shortcuts.insert-image" msgstr "הוספת תמונה" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:124 msgid "shortcuts.italic" msgstr "החלפת מצב נטוי" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:125 msgid "shortcuts.join-nodes" msgstr "צירוף מפרקים" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:126 msgid "shortcuts.letter-spacing-dec" msgstr "הקטנת ריווח תווים" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:127 msgid "shortcuts.letter-spacing-inc" msgstr "הגדלת ריווח תווים" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:128 msgid "shortcuts.line-height-dec" msgstr "הנמכת שורה" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:129 msgid "shortcuts.line-height-inc" msgstr "הגבהת שורה" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:130 msgid "shortcuts.line-through" msgstr "החלפת מצב קו חוצה" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:131 msgid "shortcuts.make-corner" msgstr "הפיכה לפינה" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:132 msgid "shortcuts.make-curve" msgstr "הפיכה לעיקול" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:133 msgid "shortcuts.mask" msgstr "מסכה" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:134 msgid "shortcuts.merge-nodes" msgstr "מיזוג מפרקים" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:135 msgid "shortcuts.move" msgstr "העברה" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:136 msgid "shortcuts.move-fast-down" msgstr "העברה למטה מהר" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:137 msgid "shortcuts.move-fast-left" msgstr "העברה שמאלה מהר" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:138 msgid "shortcuts.move-fast-right" msgstr "העברה ימינה מהר" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:139 msgid "shortcuts.move-fast-up" msgstr "העברה למעלה מהר" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:140 msgid "shortcuts.move-nodes" msgstr "העברת מפרק" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:141 msgid "shortcuts.move-unit-down" msgstr "העברה למטה" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:142 msgid "shortcuts.move-unit-left" msgstr "העברה שמאלה" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:143 msgid "shortcuts.move-unit-right" msgstr "העברה ימינה" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:144 msgid "shortcuts.move-unit-up" msgstr "העברה למעלה" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:145 msgid "shortcuts.next-frame" msgstr "הלוח הבא" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:516 msgid "shortcuts.not-found" msgstr "לא נמצאו קיצורי דרך" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:146 msgid "shortcuts.opacity-0" msgstr "הגדרת אטימות ל־100%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:147 msgid "shortcuts.opacity-1" msgstr "הגדרת אטימות ל־10%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:148 msgid "shortcuts.opacity-2" msgstr "הגדרת אטימות ל־20%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:149 msgid "shortcuts.opacity-3" msgstr "הגדרת אטימות ל־30%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:150 msgid "shortcuts.opacity-4" msgstr "הגדרת אטימות ל־40%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:151 msgid "shortcuts.opacity-5" msgstr "הגדרת אטימות ל־50%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:152 msgid "shortcuts.opacity-6" msgstr "הגדרת אטימות ל־60%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:153 msgid "shortcuts.opacity-7" msgstr "הגדרת אטימות ל־70%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:154 msgid "shortcuts.opacity-8" msgstr "הגדרת אטימות ל־80%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:155 msgid "shortcuts.opacity-9" msgstr "הגדרת אטימות ל־90%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:156 msgid "shortcuts.open-color-picker" msgstr "בוחר צבעים" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:157 msgid "shortcuts.open-comments" msgstr "מעבר לסעיף הערות צופים" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:158 msgid "shortcuts.open-dashboard" msgstr "מעבר ללוח בקרה" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:159 msgid "shortcuts.open-inspect" msgstr "מעבר לסעיף חקירת צופה" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:160 msgid "shortcuts.open-interactions" msgstr "מעבר לסעיף תפעול משתמש" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:161 msgid "shortcuts.open-viewer" msgstr "מעבר לסעיף תפעול צופה" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:162 msgid "shortcuts.open-workspace" msgstr "מעבר לסביבת עבודה" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:260 msgid "shortcuts.or" msgstr " או " -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:163 msgid "shortcuts.paste" msgstr "הדבקה" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:164 msgid "shortcuts.prev-frame" msgstr "לוח קודם" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:165 msgid "shortcuts.redo" msgstr "ביצוע חוזר" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:166 msgid "shortcuts.reset-zoom" msgstr "איפוס תקריב" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:167 msgid "shortcuts.scale" msgstr "התאמת גודל" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:168 msgid "shortcuts.search-placeholder" msgstr "חיפוש בקיצורי הדרך" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:169 msgid "shortcuts.select-all" msgstr "בחירה בהכול" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:170 msgid "shortcuts.select-next" msgstr "בחירת השכבה הבאה" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:171 msgid "shortcuts.select-parent-layer" msgstr "בחירת שכבת הורה" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:172 msgid "shortcuts.select-prev" msgstr "בחירת השכבה הקודמת" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:173 msgid "shortcuts.separate-nodes" msgstr "הפרדת מפרקים" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:174 msgid "shortcuts.show-pixel-grid" msgstr "הצגת/הסתרת רשת פיקסלים" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:175 msgid "shortcuts.show-shortcuts" msgstr "הצגת/הסתרת קיצורי דרך" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:176 msgid "shortcuts.snap-nodes" msgstr "הצמדה למפרקים" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:177 msgid "shortcuts.snap-pixel-grid" msgstr "הצמדה לרשת פיקסלים" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:178 msgid "shortcuts.start-editing" msgstr "התחלת עריכה" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:179 msgid "shortcuts.start-measure" msgstr "התחלת מדידה" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:180 msgid "shortcuts.stop-measure" msgstr "עצירת מדידה" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:181 msgid "shortcuts.text-align-center" msgstr "יישור למרכז" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:182 msgid "shortcuts.text-align-justify" msgstr "פיזור שווה" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:183 msgid "shortcuts.text-align-left" msgstr "יישור לשמאל" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:184 msgid "shortcuts.text-align-right" msgstr "יישור לימין" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:185 msgid "shortcuts.thumbnail-set" msgstr "הגדרת תמונות ממוזערות" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:496, src/app/main/ui/workspace/sidebar/shortcuts.cljs:505 +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs msgid "shortcuts.title" msgstr "קיצורי מקלדת" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:186 msgid "shortcuts.toggle-alignment" msgstr "החלפת מצב יישור דינמי" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:187 msgid "shortcuts.toggle-assets" msgstr "החלפת מצב נכסים" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:188 msgid "shortcuts.toggle-colorpalette" msgstr "החלפת מצב לוח צבעים" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:189 msgid "shortcuts.toggle-focus-mode" msgstr "החלפת מצב מיקוד" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:190 msgid "shortcuts.toggle-fullscreen" msgstr "החלפת מילוי מסך" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:191 msgid "shortcuts.toggle-guides" msgstr "הצגת / הסתרת קווים מנחים" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:192 msgid "shortcuts.toggle-history" msgstr "החלפת הצגת היסטוריה" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:193 msgid "shortcuts.toggle-layers" msgstr "החלפת הצגת שכבות" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:194 msgid "shortcuts.toggle-layout-flex" msgstr "הוספת/הסרת פריסת flex" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:195 msgid "shortcuts.toggle-layout-grid" msgstr "הוספת/הסרת פריסת רשת" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:196 msgid "shortcuts.toggle-lock" msgstr "נעילת הנבחרים" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:197 msgid "shortcuts.toggle-lock-size" msgstr "נעילת יחס" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:198 msgid "shortcuts.toggle-rulers" msgstr "הצגת / הסתרת סרגלים" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:200 msgid "shortcuts.toggle-snap-guides" msgstr "הצמדה לקווים מנחים" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:201 msgid "shortcuts.toggle-snap-ruler-guide" msgstr "הצמדה לקווים מנחים סרגלים" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:202 msgid "shortcuts.toggle-textpalette" msgstr "החלפת לוח טקסט" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:203 msgid "shortcuts.toggle-theme" msgstr "החלפת ערכת עיצוב" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:204 msgid "shortcuts.toggle-visibility" msgstr "החלפת מצב הצגה" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:205 msgid "shortcuts.toggle-zoom-style" msgstr "החלפת סגנון תקריב" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:206 msgid "shortcuts.underline" msgstr "החלפת מצב קו תחתי" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:207 msgid "shortcuts.undo" msgstr "ביטול" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:208 msgid "shortcuts.ungroup" msgstr "פירוק קבוצה" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:209 msgid "shortcuts.unmask" msgstr "ביטול מסכה" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:210 msgid "shortcuts.v-distribute" msgstr "פיזור אנכי" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:211 msgid "shortcuts.zoom-lense-decrease" msgstr "הקטנת עדשת תקריב" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:212 msgid "shortcuts.zoom-lense-increase" msgstr "הגדלת עדשת תקריב" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:213 msgid "shortcuts.zoom-selected" msgstr "התמקדות על הנבחר" -#: src/app/main/ui/dashboard/team.cljs:771 +#: src/app/main/ui/dashboard/team.cljs msgid "team.webhooks.max-length" msgstr "אורך שם ההתליה הוא עד 2048 תווים." -#: src/app/main/ui/dashboard/files.cljs:158 +#: src/app/main/ui/dashboard/files.cljs msgid "title.dashboard.files" msgstr "%s‏ - Penpot" -#: src/app/main/ui/dashboard/fonts.cljs:37 +#: src/app/main/ui/dashboard/fonts.cljs msgid "title.dashboard.font-providers" msgstr "ספקי גופנים - %s‏ - Penpot" -#: src/app/main/ui/dashboard/fonts.cljs:36 +#: src/app/main/ui/dashboard/fonts.cljs msgid "title.dashboard.fonts" msgstr "גופנים - %s‏ - Penpot" -#: src/app/main/ui/dashboard/projects.cljs:320 +#: src/app/main/ui/dashboard/projects.cljs msgid "title.dashboard.projects" msgstr "מיזמים - %s‏ - Penpot" -#: src/app/main/ui/dashboard/search.cljs:32 +#: src/app/main/ui/dashboard/search.cljs msgid "title.dashboard.search" msgstr "חיפוש - %s‏ - Penpot" -#: src/app/main/ui/dashboard/libraries.cljs:44 +#: src/app/main/ui/dashboard/libraries.cljs msgid "title.dashboard.shared-libraries" msgstr "ספריות משותפות - %s‏ - Penpot" -#: src/app/main/ui/auth/verify_token.cljs:68, src/app/main/ui/auth.cljs:54 +#: src/app/main/ui/auth/verify_token.cljs, src/app/main/ui/auth.cljs msgid "title.default" msgstr "Penpot - חופש עיצובי לצוותים" -#: src/app/main/ui/settings/access_tokens.cljs:292 +#: src/app/main/ui/settings/access-tokens.cljs msgid "title.settings.access-tokens" msgstr "פרופיל - אסימוני גישה" -#: src/app/main/ui/settings/feedback.cljs:110 +#: src/app/main/ui/settings/feedback.cljs msgid "title.settings.feedback" msgstr "הגשת משוב - Penpot" -#: src/app/main/ui/settings/options.cljs:80 +#: src/app/main/ui/settings/options.cljs msgid "title.settings.options" msgstr "הגדרות - Penpot" -#: src/app/main/ui/settings/password.cljs:115 +#: src/app/main/ui/settings/password.cljs msgid "title.settings.password" msgstr "סיסמה - Penpot" -#: src/app/main/ui/settings/profile.cljs:115 +#: src/app/main/ui/settings/profile.cljs msgid "title.settings.profile" msgstr "פרופיל - Penpot" -#: src/app/main/ui/dashboard/team.cljs:727 +#: src/app/main/ui/dashboard/team.cljs msgid "title.team-invitations" msgstr "הזמנות - %s -‏ Penpot" -#: src/app/main/ui/dashboard/team.cljs:493 +#: src/app/main/ui/dashboard/team.cljs msgid "title.team-members" msgstr "חברים - %s‏ - Penpot" -#: src/app/main/ui/dashboard/team.cljs:1036 +#: src/app/main/ui/dashboard/team.cljs msgid "title.team-settings" msgstr "הגדרות - %s‏ - Penpot" -#: src/app/main/ui/dashboard/team.cljs:989 msgid "title.team-webhooks" msgstr "התליות - %s‏ - Penpot" -#: src/app/main/ui/viewer.cljs:419 +#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs msgid "title.viewer" msgstr "%s - מצב תצוגה - Penpot" -#: src/app/main/ui/workspace.cljs:190 +#: src/app/main/ui/workspace.cljs msgid "title.workspace" msgstr "%s‏ - Penpot" -#: src/app/main/ui.cljs:144 msgid "viewer.breaking-change.description" msgstr "" -"קישור זה לשיתוף אינו תקף עוד. נא ליצור אחד חדש או לבקש מהבעלים ליצור אחד " -"חדש." +"קישור זה לשיתוף אינו תקף עוד. נא ליצור אחד חדש או לבקש מהבעלים ליצור אחד חדש." -#: src/app/main/ui.cljs:143 msgid "viewer.breaking-change.message" msgstr "מתנצלים!" -#: src/app/main/ui/viewer.cljs:569 +#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs msgid "viewer.empty-state" msgstr "לא נמצאו לוחות בעמוד." -#: src/app/main/ui/viewer.cljs:574 +#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs msgid "viewer.frame-not-found" msgstr "הלוח לא נמצא." -#: src/app/main/ui/viewer/header.cljs:336 msgid "viewer.header.comments-section" msgstr "הערות (%s)" -#: src/app/main/ui/viewer/interactions.cljs:292 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.dont-show-interactions" msgstr "לא להציג אינטראקציות" -#: src/app/main/ui/viewer/header.cljs:188 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.fullscreen" msgstr "מסך מלא" -#: src/app/main/ui/viewer/header.cljs:345 msgid "viewer.header.inspect-section" msgstr "חקירה (%s)" -#: src/app/main/ui/viewer/interactions.cljs:282 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.interactions" msgstr "אינטראקציות" -#: src/app/main/ui/viewer/header.cljs:327 msgid "viewer.header.interactions-section" msgstr "אינטראקציות (%s)" -#: src/app/main/ui/viewer/share_link.cljs:187 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.share.copy-link" msgstr "העתקת קישור" -#: src/app/main/ui/viewer/interactions.cljs:300 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.show-interactions" msgstr "הצגת פעילויות" -#: src/app/main/ui/viewer/interactions.cljs:311 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.show-interactions-on-click" msgstr "הצגת פעילויות בקליק" -#: src/app/main/ui/viewer/header.cljs:231 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.sitemap" msgstr "מפת אתר" -#: src/app/main/ui/dashboard/team.cljs:948 msgid "webhooks.last-delivery.success" msgstr "ההעברה האחרונה הצליחה." -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:58 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.hcenter" msgstr "(%s) יישור למרכז האופקי" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:74 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.hdistribute" msgstr "(%s) פיזור ריווח אופקי" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:50 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.hleft" msgstr "(%s) יישור שמאלה" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:66 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.hright" msgstr "(%s) יישור ימינה" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:99 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.vbottom" msgstr "(%s) יישור למטה" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:91 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.vcenter" msgstr "(%s) יישור למרכז אנכית" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:104 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.vdistribute" msgstr "(%s) פיזור בריווח אנכי" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:83 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.vtop" msgstr "(%s) יישור למעלה" #: src/app/main/ui/workspace/sidebar/assets.cljs -#, unused msgid "workspace.assets.assets" msgstr "משאבים" -#: src/app/main/ui/workspace/sidebar/assets.cljs:134 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.box-filter-all" msgstr "כל המשאבים" -#: src/app/main/ui/dashboard/grid.cljs:130, src/app/main/ui/dashboard/grid.cljs:162, src/app/main/ui/workspace/sidebar/assets/colors.cljs:485, src/app/main/ui/workspace/sidebar/assets.cljs:150 +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.colors" msgstr "צבעים" -#: src/app/main/ui/dashboard/grid.cljs:126, src/app/main/ui/dashboard/grid.cljs:141, src/app/main/ui/workspace/sidebar/assets/components.cljs:513, src/app/main/ui/workspace/sidebar/assets.cljs:139 +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.components" msgstr "רכיבים" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:131 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.create-group" msgstr "יצירת קבוצה" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:142 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.create-group-hint" msgstr "הפריטים שלך יקבלו אוטומטית שם בסגנון „שם קבוצה / שם פריט”" -#: src/app/main/ui/workspace/context_menu.cljs:529, src/app/main/ui/workspace/sidebar/assets/colors.cljs:251, src/app/main/ui/workspace/sidebar/assets/components.cljs:577, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:424, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:443 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.delete" msgstr "מחיקה" -#: src/app/main/ui/workspace/context_menu.cljs:534, src/app/main/ui/workspace/sidebar/assets/components.cljs:572 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.duplicate" msgstr "שכפול" -#: src/app/main/ui/workspace/sidebar/assets/components.cljs:571 msgid "workspace.assets.duplicate-main" msgstr "שכפול הראשי" -#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:247, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:439 +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.edit" msgstr "עריכה" -#: src/app/main/ui/workspace/sidebar/assets.cljs:176 -msgid "workspace.assets.filter" -msgstr "סינון" - -#: src/app/main/ui/workspace/sidebar/assets/graphics.cljs:384, src/app/main/ui/workspace/sidebar/assets.cljs:145 +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.graphics" msgstr "גרפיקה" -#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:255, src/app/main/ui/workspace/sidebar/assets/components.cljs:581, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:428, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:448 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.group" msgstr "קבוצה" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:141 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.group-name" msgstr "שם קבוצה" -#: src/app/main/ui/workspace/sidebar/assets.cljs:168 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.libraries" msgstr "ספריות" -#: src/app/main/ui/workspace/sidebar/assets/file_library.cljs:62, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:347 msgid "workspace.assets.local-library" msgstr "ספרייה מקומית" -#: src/app/main/ui/workspace/sidebar/assets/file_library.cljs:295 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.not-found" msgstr "לא נמצאו משאבים" -#, unused msgid "workspace.assets.open-library" msgstr "פתיחת קובץ ספרייה" -#: src/app/main/ui/workspace/context_menu.cljs:532, src/app/main/ui/workspace/sidebar/assets/colors.cljs:243, src/app/main/ui/workspace/sidebar/assets/components.cljs:566, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:421, src/app/main/ui/workspace/sidebar/assets/groups.cljs:63, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:434 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.rename" msgstr "שינוי שם" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:132 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.rename-group" msgstr "שינוי שם קבוצה" -#: src/app/main/ui/workspace/sidebar/assets.cljs:173 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.search" msgstr "חיפוש במשאבים" #: src/app/main/ui/workspace/sidebar/assets.cljs -#, unused msgid "workspace.assets.selected-count" msgid_plural "workspace.assets.selected-count" msgstr[0] "פריט נבחר" @@ -3623,598 +3266,515 @@ msgstr[2] "%s פריטים נבחרו" msgstr[3] "%s פריטים נבחרו" #: src/app/main/ui/workspace/sidebar/assets.cljs -#, unused msgid "workspace.assets.shared-library" msgstr "ספרייה משותפת" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:221 -msgid "workspace.assets.sidebar.components" -msgid_plural "workspace.assets.sidebar.components" -msgstr[0] "רכיב" -msgstr[1] "שני רכיבים" -msgstr[2] "%s רכיבים" -msgstr[3] "%s רכיבים" - -#: src/app/main/ui/workspace/sidebar/assets.cljs:193 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.sort" msgstr "מיון" -#: src/app/main/ui/dashboard/grid.cljs:134, src/app/main/ui/dashboard/grid.cljs:189, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:397, src/app/main/ui/workspace/sidebar/assets.cljs:155 +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.typography" msgstr "טיפוגרפיות" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused msgid "workspace.assets.typography.font-id" msgstr "גופן" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:505 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.font-size" msgstr "גודל" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:501 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.font-variant-id" msgstr "הגוון" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:523 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.go-to-edit" msgstr "מעבר לקובץ ספריית סגנון כדי לערוך" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:513 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.letter-spacing" msgstr "ריווח תווים" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:509 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.line-height" msgstr "גובה שורה" -#: src/app/main/ui/dashboard/grid.cljs:199, src/app/main/ui/workspace/libraries.cljs:461, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:464, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:489, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:596, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:615 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, +#: src/app/main/ui/inspect/attributes/text.cljs, +#: src/app/main/ui/inspect/attributes/text.cljs msgid "workspace.assets.typography.sample" msgstr "שצ" -#, unused msgid "workspace.assets.typography.text-styles" msgstr "סגנונות טקסט" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:517 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.text-transform" msgstr "התמרת טקסט" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:66 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.ungroup" msgstr "פירוק קבוצה" -#: src/app/main/ui/workspace/context_menu.cljs:634 msgid "workspace.context-menu.grid-cells.area" msgstr "יצירת שטח" -#: src/app/main/ui/workspace/context_menu.cljs:637 msgid "workspace.context-menu.grid-cells.create-board" msgstr "יצירת לוח" -#: src/app/main/ui/workspace/context_menu.cljs:629 msgid "workspace.context-menu.grid-cells.merge" msgstr "מיזוג תאים" -#: src/app/main/ui/workspace/context_menu.cljs:594 msgid "workspace.context-menu.grid-track.column.add-after" msgstr "הוספת עמודה מימין" -#: src/app/main/ui/workspace/context_menu.cljs:593 msgid "workspace.context-menu.grid-track.column.add-before" msgstr "הוספת עמודה משמאל" -#: src/app/main/ui/workspace/context_menu.cljs:595 msgid "workspace.context-menu.grid-track.column.delete" msgstr "מחיקת עמודה" -#: src/app/main/ui/workspace/context_menu.cljs:596 msgid "workspace.context-menu.grid-track.column.delete-shapes" msgstr "מחיקת עמודה וצורות" -#: src/app/main/ui/workspace/context_menu.cljs:592 msgid "workspace.context-menu.grid-track.column.duplicate" msgstr "שכפול עמודה" -#: src/app/main/ui/workspace/context_menu.cljs:601 msgid "workspace.context-menu.grid-track.row.add-after" msgstr "הוספת שורה מתחת" -#: src/app/main/ui/workspace/context_menu.cljs:600 msgid "workspace.context-menu.grid-track.row.add-before" msgstr "הוספת שורה למעלה" -#: src/app/main/ui/workspace/context_menu.cljs:602 msgid "workspace.context-menu.grid-track.row.delete" msgstr "מחיקת שורה" -#: src/app/main/ui/workspace/context_menu.cljs:603 msgid "workspace.context-menu.grid-track.row.delete-shapes" msgstr "מחיקת שורה וצורות" -#: src/app/main/ui/workspace/context_menu.cljs:599 msgid "workspace.context-menu.grid-track.row.duplicate" msgstr "שכפול שורה" -#: src/app/main/ui/workspace/sidebar/layers.cljs:525 msgid "workspace.focus.focus-mode" msgstr "מצב מיקוד" -#: src/app/main/ui/workspace/context_menu.cljs:287, src/app/main/ui/workspace/context_menu.cljs:553 msgid "workspace.focus.focus-off" msgstr "מיקוד כבוי" -#: src/app/main/ui/workspace/context_menu.cljs:286 msgid "workspace.focus.focus-on" msgstr "מיקוד פעיל" -#, unused msgid "workspace.focus.selection" msgstr "בחירה" -#: src/app/util/color.cljs:34 +#: src/app/main/data/workspace/libraries.cljs, +#: src/app/main/ui/components/color_bullet.cljs msgid "workspace.gradients.linear" msgstr "מדרג קווי" -#: src/app/util/color.cljs:35 +#: src/app/main/data/workspace/libraries.cljs, +#: src/app/main/ui/components/color_bullet.cljs msgid "workspace.gradients.radial" msgstr "מדרג מעגלי" -#: src/app/main/ui/workspace/main_menu.cljs:238 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.disable-dynamic-alignment" msgstr "השבתת יישור דינמי" -#: src/app/main/ui/workspace/main_menu.cljs:192 msgid "workspace.header.menu.disable-scale-content" msgstr "השבתת קנה מידה יחסי" #: src/app/main/ui/workspace/header.cljs -#, unused msgid "workspace.header.menu.disable-scale-text" msgstr "השבתת שינוי גודל טקסט" -#: src/app/main/ui/workspace/main_menu.cljs:223 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.disable-snap-guides" msgstr "השבתת הצמדה לקווים המנחים" -#: src/app/main/ui/workspace/main_menu.cljs:253 msgid "workspace.header.menu.disable-snap-pixel-grid" msgstr "השבתת הצמדה לפיקסל" -#: src/app/main/ui/workspace/main_menu.cljs:207 -msgid "workspace.header.menu.disable-snap-ruler-guides" -msgstr "השבתת הצמדה לקווים מנחים סרגלים" - -#: src/app/main/ui/workspace/main_menu.cljs:239 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.enable-dynamic-alignment" msgstr "הפעלת יישור דינמי" -#: src/app/main/ui/workspace/main_menu.cljs:193 msgid "workspace.header.menu.enable-scale-content" msgstr "הפעלת קנה מידה יחסי" #: src/app/main/ui/workspace/header.cljs -#, unused msgid "workspace.header.menu.enable-scale-text" msgstr "הפעלת שינוי גודל טקסט" -#: src/app/main/ui/workspace/main_menu.cljs:224 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.enable-snap-guides" msgstr "הצמדה לקווים מנחים" -#: src/app/main/ui/workspace/main_menu.cljs:254 msgid "workspace.header.menu.enable-snap-pixel-grid" msgstr "הפעלת הצמדה לפיקסל" -#: src/app/main/ui/workspace/main_menu.cljs:208 -msgid "workspace.header.menu.enable-snap-ruler-guides" -msgstr "הצמדה לקווים מנחים סרגלים" - -#: src/app/main/ui/workspace/main_menu.cljs:382 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.hide-artboard-names" msgstr "הסתרת שמות לוחות" -#: src/app/main/ui/workspace/main_menu.cljs:336 -msgid "workspace.header.menu.hide-guides" -msgstr "הסתרת קווים מנחים" - -#: src/app/main/ui/workspace/main_menu.cljs:353 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.hide-palette" msgstr "הסתרת ערכת צבעים" -#: src/app/main/ui/workspace/main_menu.cljs:394 msgid "workspace.header.menu.hide-pixel-grid" msgstr "הסתרת רשת פיקסלים" -#: src/app/main/ui/workspace/main_menu.cljs:320 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.hide-rules" msgstr "הסתרת סרגלים" -#: src/app/main/ui/workspace/main_menu.cljs:367 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.hide-textpalette" msgstr "הסתרת לוח גופנים" -#: src/app/main/ui/workspace/main_menu.cljs:731 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.edit" msgstr "עריכה" -#: src/app/main/ui/workspace/main_menu.cljs:720 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.file" msgstr "קובץ" -#: src/app/main/ui/workspace/main_menu.cljs:777 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.help-info" msgstr "עזרה ומידע" -#: src/app/main/ui/workspace/main_menu.cljs:753 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.preferences" msgstr "העדפות" -#: src/app/main/ui/workspace/main_menu.cljs:742 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.view" msgstr "תצוגה" -#: src/app/main/ui/workspace/main_menu.cljs:459 msgid "workspace.header.menu.redo" msgstr "ביצוע מחדש" -#: src/app/main/ui/workspace/main_menu.cljs:432 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.select-all" msgstr "לבחור הכול" -#: src/app/main/ui/workspace/main_menu.cljs:383 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.show-artboard-names" msgstr "הצגת שמות לוחות" -#: src/app/main/ui/workspace/main_menu.cljs:337 -msgid "workspace.header.menu.show-guides" -msgstr "הצגת קווים מנחים" - -#: src/app/main/ui/workspace/main_menu.cljs:354 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.show-palette" msgstr "הצגת ערכת צבעים" -#: src/app/main/ui/workspace/main_menu.cljs:395 msgid "workspace.header.menu.show-pixel-grid" msgstr "הצגת רשת פיקסלים" -#: src/app/main/ui/workspace/main_menu.cljs:321 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.show-rules" msgstr "הצגת סרגלים" -#: src/app/main/ui/workspace/main_menu.cljs:368 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.show-textpalette" msgstr "הצגת לוח גופנים" -#: src/app/main/ui/workspace/main_menu.cljs:279 msgid "workspace.header.menu.toggle-dark-theme" msgstr "החלפה לערכת עיצוב כהה" -#: src/app/main/ui/workspace/main_menu.cljs:278 msgid "workspace.header.menu.toggle-light-theme" msgstr "החלפה לערכת עיצוב בהירה" -#: src/app/main/ui/workspace/main_menu.cljs:446 msgid "workspace.header.menu.undo" msgstr "החזרה" -#: src/app/main/ui/viewer/header.cljs:98, src/app/main/ui/workspace/right_header.cljs:120 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.reset-zoom" msgstr "איפוס" #: src/app/main/ui/workspace/header.cljs -#, unused msgid "workspace.header.save-error" msgstr "שגיאה בשמירה" -#: src/app/main/ui/workspace/right_header.cljs:52 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.saved" msgstr "נשמר" #: src/app/main/ui/workspace/header.cljs -#, unused msgid "workspace.header.saving" msgstr "בשמירה" -#: src/app/main/ui/workspace/right_header.cljs:42, src/app/main/ui/workspace/right_header.cljs:47 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.unsaved" msgstr "שינויים שלא נשמרו" -#: src/app/main/ui/workspace/right_header.cljs:239 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.viewer" msgstr "מצב תצוגה (%s)" -#: src/app/main/ui/viewer/header.cljs:79, src/app/main/ui/workspace/right_header.cljs:103 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom" msgstr "תקריב" -#: src/app/main/ui/viewer/header.cljs:109 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom-fill" msgstr "מילוי - שינוי גודל כדי למלא" -#: src/app/main/ui/viewer/header.cljs:102 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom-fit" msgstr "התאמה - שינוי גודל כדי להתאים" -#: src/app/main/ui/workspace/right_header.cljs:123 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom-fit-all" msgstr "כיוון תקריב כדי להציג הכול" -#: src/app/main/ui/viewer/header.cljs:116 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom-full-screen" msgstr "מסך מלא" -#: src/app/main/ui/workspace/right_header.cljs:130 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom-selected" msgstr "התמקדות על הנבחר" -#: src/app/main/ui/workspace/sidebar/options/menus/grid_cell.cljs:273, src/app/main/ui/workspace/sidebar/options/menus/grid_cell.cljs:275, src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:612 msgid "workspace.layout_grid.editor.options.edit-grid" msgstr "עריכת רשת" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:1280 msgid "workspace.layout_grid.editor.options.exit" msgstr "יציאה מהמערכת" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:483 -msgid "workspace.layout_grid.editor.padding.expand" -msgstr "הצגת אפשרויות ריפוד עם 4 צדדים" - -#: src/app/main/ui/workspace/viewport/grid_layout_editor.cljs:59 msgid "workspace.layout_grid.editor.title" msgstr "רשת עריכה" -#: src/app/main/ui/workspace/viewport/grid_layout_editor.cljs:65 msgid "workspace.layout_grid.editor.top-bar.done" msgstr "בוצע" -#: src/app/main/ui/workspace/viewport/grid_layout_editor.cljs:62 msgid "workspace.layout_grid.editor.top-bar.locate" msgstr "איתור" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:1306 -msgid "workspace.layout_grid.editor.top-bar.locate.tooltip" -msgstr "איתור פריסת הרשת" - #: src/app/main/ui/workspace/libraries.cljs -#, unused msgid "workspace.libraries.add" msgstr "הוספה" -#: src/app/main/ui/workspace/libraries.cljs:80, src/app/main/ui/workspace/libraries.cljs:99 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.colors" msgstr "%s צבעים" -#: src/app/main/ui/workspace/color_palette.cljs:126 +#: src/app/main/ui/workspace/colorpalette.cljs msgid "workspace.libraries.colors.empty-palette" msgstr "אין עדיין סגנונות צבע בספרייה שלך" -#: src/app/main/ui/workspace/text_palette.cljs:150 +#: src/app/main/ui/workspace/textpalette.cljs msgid "workspace.libraries.colors.empty-typography-palette" msgstr "עדיין אין סוגי טיפוגרפיה בספרייה שלך" -#: src/app/main/ui/workspace/color_palette_ctx_menu.cljs:60, src/app/main/ui/workspace/colorpicker/libraries.cljs:73, src/app/main/ui/workspace/text_palette_ctx_menu.cljs:50 +#: src/app/main/ui/workspace/colorpicker/libraries.cljs, +#: src/app/main/ui/workspace/colorpalette.cljs msgid "workspace.libraries.colors.file-library" msgstr "ספריית קבצים" #: src/app/main/ui/workspace/colorpicker.cljs -#, unused msgid "workspace.libraries.colors.hsv" msgstr "HSV" -#: src/app/main/ui/workspace/color_palette_ctx_menu.cljs:82, src/app/main/ui/workspace/colorpicker/libraries.cljs:72 +#: src/app/main/ui/workspace/colorpicker/libraries.cljs, +#: src/app/main/ui/workspace/colorpalette.cljs msgid "workspace.libraries.colors.recent-colors" msgstr "צבעים אחרונים" #: src/app/main/ui/workspace/colorpicker.cljs -#, unused msgid "workspace.libraries.colors.rgb-complementary" msgstr "RGB משלים" #: src/app/main/ui/workspace/colorpicker.cljs -#, unused msgid "workspace.libraries.colors.rgba" msgstr "RGBA" -#: src/app/main/ui/workspace/colorpicker.cljs:372 +#: src/app/main/ui/workspace/colorpicker.cljs msgid "workspace.libraries.colors.save-color" msgstr "שמירת סגנון צבע" -#: src/app/main/ui/workspace/libraries.cljs:74, src/app/main/ui/workspace/libraries.cljs:91 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.components" msgstr "%s רכיבים" -#: src/app/main/ui/workspace/libraries.cljs:215 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.file-library" msgstr "ספריית קבצים" -#: src/app/main/ui/workspace/libraries.cljs:77, src/app/main/ui/workspace/libraries.cljs:95 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.graphics" msgstr "%s גרפיקה" -#: src/app/main/ui/workspace/libraries.cljs:209 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.in-this-file" msgstr "ספריות בקובץ הזה" -#: src/app/main/ui/workspace/libraries.cljs:526, src/app/main/ui/workspace/libraries.cljs:531 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.libraries" msgstr "ספריות" #: src/app/main/ui/workspace/libraries.cljs -#, unused msgid "workspace.libraries.library" msgstr "ספרייה" -#: src/app/main/ui/workspace/libraries.cljs:382 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.library-updates" msgstr "עדכוני ספרייה" -#: src/app/main/ui/workspace/libraries.cljs:290 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.loading" msgstr "בטעינה…" -#: src/app/main/ui/workspace/libraries.cljs:380 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.no-libraries-need-sync" msgstr "אין ספריות משותפות שדורשות עדכון" -#: src/app/main/ui/workspace/libraries.cljs:299 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.no-matches-for" msgstr "לא נמצאו תוצאות לחיפוש אחר „%s”" -#: src/app/main/ui/workspace/libraries.cljs:296 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.no-shared-libraries-available" msgstr "אין ספריות משותפות זמינות" -#: src/app/main/ui/workspace/libraries.cljs:260 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.search-shared-libraries" msgstr "חיפוש בספריות המשותפות" -#: src/app/main/ui/workspace/libraries.cljs:256 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.shared-libraries" msgstr "ספריות משותפות" -#: src/app/main/ui/workspace/libraries.cljs:282 -msgid "workspace.libraries.shared-library-btn" -msgstr "חיבור ספרייה" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:308 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.libraries.text.multiple-typography" msgstr "מגוון טיפוגרפיות" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:311 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.libraries.text.multiple-typography-tooltip" msgstr "ניתוק כל הטיפוגרפיות" -#: src/app/main/ui/workspace/libraries.cljs:83, src/app/main/ui/workspace/libraries.cljs:103 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.typography" msgstr "%s טיפוגרפיות" -#: src/app/main/ui/workspace/libraries.cljs:249 -msgid "workspace.libraries.unlink-library-btn" -msgstr "ניתוק ספרייה" - -#: src/app/main/ui/workspace/libraries.cljs:402 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.update" msgstr "עדכון" -#: src/app/main/ui/workspace/libraries.cljs:477 +#: src/app/main/data/workspace/libraries.cljs msgid "workspace.libraries.update.see-all-changes" msgstr "הצגת כל השינויים" -#: src/app/main/ui/workspace/libraries.cljs:536 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.updates" msgstr "עדכונים" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:737 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.add-interaction" msgstr "יש ללחוץ על הכפתור + כדי להוסיף אינטראקציות." -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:86, src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:102 +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs msgid "workspace.options.blur-options.title" msgstr "טשטוש" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:85 +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs msgid "workspace.options.blur-options.title.group" msgstr "טשטוש קבוצה" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:84 +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs msgid "workspace.options.blur-options.title.multiple" msgstr "טשטוש בחירה" -#: src/app/main/ui/workspace/sidebar/options/page.cljs:32, src/app/main/ui/workspace/sidebar/options/page.cljs:39 +#: src/app/main/ui/workspace/sidebar/options/page.cljs msgid "workspace.options.canvas-background" msgstr "רקע משטח ציור" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:548 msgid "workspace.options.clip-content" msgstr "חיתוך התוכן" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:600, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:605 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs msgid "workspace.options.component" msgstr "רכיב" -#: src/app/main/ui/viewer/inspect/annotation.cljs:19, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:181 msgid "workspace.options.component.annotation" msgstr "הסבר" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:610 msgid "workspace.options.component.copy" msgstr "העתקה" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:173 msgid "workspace.options.component.create-annotation" msgstr "יצירת הסבר" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:172 msgid "workspace.options.component.edit-annotation" msgstr "עריכת הסבר" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:609 msgid "workspace.options.component.main" msgstr "ראשי" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:427 msgid "workspace.options.component.swap" msgstr "החלפת רכיב" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:471 msgid "workspace.options.component.swap.empty" msgstr "עדיין אין נכסים בתיקייה הזאת" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:163 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints" msgstr "הגבלות" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:150 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.bottom" msgstr "תחתית" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:141, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:152 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.center" msgstr "מרכז" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:229 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.fix-when-scrolling" msgstr "תיקון בעת גלילה" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:138 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.left" msgstr "שמאל" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:140 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.leftright" msgstr "שמאל וימין" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:139 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.right" msgstr "ימין" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:142, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:153 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.scale" msgstr "שינוי גודל" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:149 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.top" msgstr "עליון" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:151 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.topbottom" msgstr "עליון ותחתון" -#: src/app/main/ui/workspace/sidebar/options.cljs:112 +#: src/app/main/ui/workspace/sidebar/options.cljs msgid "workspace.options.design" msgstr "עיצוב" -#: src/app/main/ui/viewer/inspect/exports.cljs:139 +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, +#: src/app/main/ui/inspect/exports.cljs msgid "workspace.options.export" msgstr "ייצוא" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, +#: src/app/main/ui/inspect/exports.cljs msgid "workspace.options.export-multiple" msgstr "ייצוא הבחירה" -#: src/app/main/ui/viewer/inspect/exports.cljs:195, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:237 +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, +#: src/app/main/ui/inspect/exports.cljs msgid "workspace.options.export-object" msgid_plural "workspace.options.export-object" msgstr[0] "ייצוא רכיב" @@ -4222,1458 +3782,1407 @@ msgstr[1] "ייצוא %s רכיבים" msgstr[2] "ייצוא %s רכיבים" msgstr[3] "ייצוא %s רכיבים" -#: src/app/main/ui/viewer/inspect/exports.cljs:178, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:219 +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs msgid "workspace.options.export.suffix" msgstr "סיומת" -#: src/app/main/ui/export.cljs:240 +#: 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.exporting-complete" msgstr "הייצוא הושלם" -#: src/app/main/ui/export.cljs:172, src/app/main/ui/export.cljs:241, src/app/main/ui/viewer/inspect/exports.cljs:194, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:236 +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, +#: src/app/main/ui/inspect/exports.cljs msgid "workspace.options.exporting-object" msgstr "מתבצע ייצוא…" -#: src/app/main/ui/export.cljs:239 +#: 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.exporting-object-error" msgstr "הייצוא נכשל" -#: src/app/main/ui/export.cljs:242 +#: 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.exporting-object-slow" msgstr "הייצוא אטי בהגזמה" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:49, src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:174 +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs msgid "workspace.options.fill" msgstr "מילוי" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:178 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.flows.add-flow-start" msgstr "הוספת תחילת זרימה" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:174 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.flows.flow" msgstr "זרימה" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -#, unused msgid "workspace.options.flows.flow-start" msgstr "התחלת זרימה" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:161 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.flows.flow-starts" msgstr "הזרימה מתחילה" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:29 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.auto" msgstr "אוטומטי" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:157 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.column" msgstr "עמודות" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.grid-title" msgstr "טבלה" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:196, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:237 msgid "workspace.options.grid.params.color" msgstr "צבע" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.params.columns" msgstr "עמודות" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:259 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.gutter" msgstr "מרזב" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:246 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.height" msgstr "גובה" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:270 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.margin" msgstr "שול" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.params.rows" msgstr "שורות" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:216, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:290 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.set-default" msgstr "הגדרה כבררת מחדל" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.params.size" msgstr "גודל" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.params.type" msgstr "סוג" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:231 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.bottom" msgstr "תחתון" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:229 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.center" msgstr "מרכז" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:228 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.left" msgstr "שמאל" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:232 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.right" msgstr "ימין" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:225 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.stretch" msgstr "מתיחה" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:227 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.top" msgstr "עליון" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:211, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:288 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.use-default" msgstr "להשתמש בבררת המחדל" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:247 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.width" msgstr "רוחב" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:158 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.row" msgstr "שורות" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:156 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.square" msgstr "ריבוע" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:48 +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs msgid "workspace.options.group-fill" msgstr "מילוי קבוצה" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:42 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.group-stroke" msgstr "מתאר קבוצה" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:310 msgid "workspace.options.guides.title" msgstr "קווים מנחים" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:406 msgid "workspace.options.height" msgstr "גובה" -#: src/app/main/ui/workspace/sidebar/options.cljs:161 msgid "workspace.options.inspect" msgstr "חקירה" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:468 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-action" msgstr "פעולה" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:41, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:367 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-after-delay" msgstr "לאחר השהיה" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:614 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-animation" msgstr "הנפשה" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:406 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-animation-dissolve" msgstr "התמוססות" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:405 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-animation-none" msgstr "ללא" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:412 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-animation-push" msgstr "דחיפה" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:407 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-animation-slide" msgstr "גלישה" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:391 msgid "workspace.options.interaction-auto" msgstr "אוטו" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:604 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-background" msgstr "הוספת שכבת רקע" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:590 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-close-outside" msgstr "תיסגר בלחיצה מחוצה לה" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:372 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-close-overlay" msgstr "סגירת שכבת על" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:56 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-close-overlay-dest" msgstr "סגירת שכבת על: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:456 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-delay" msgstr "השהיה" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:478 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-destination" msgstr "יעד" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:661 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-duration" msgstr "משך" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:674 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing" msgstr "החלקה" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:416 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing-ease" msgstr "קלה" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:417 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing-ease-in" msgstr "החלקה פנימה" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:419 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing-ease-in-out" msgstr "החלקה פנימה החוצה" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:418 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing-ease-out" msgstr "החלקה החוצה" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:415 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing-linear" msgstr "קווי" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -#, unused msgid "workspace.options.interaction-in" msgstr "פנימה" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:39, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:364 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-mouse-enter" msgstr "כניסת עכבר" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:40, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:365 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-mouse-leave" msgstr "יציאת עכבר" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:458, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:459, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:464, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:663, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:665, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:669 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-ms" msgstr "מילישניות" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:369 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-navigate-to" msgstr "ניווט אל" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:50 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-navigate-to-dest" msgstr "ניווט אל: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:51, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:53, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:55, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:380 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-none" msgstr "(לא הוגדר)" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:691 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-offset-effect" msgstr "אפקט הזחה" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:35, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:360 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-on-click" msgstr "בלחיצה" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:370 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-open-overlay" msgstr "פתיחת שכבת על" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:52 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-open-overlay-dest" msgstr "פתיחת שכבת על: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:59, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:374 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-open-url" msgstr "פתיחת כתובת" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -#, unused msgid "workspace.options.interaction-out" msgstr "החוצה" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:403 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-bottom-center" msgstr "בתחתית במרכז" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:401 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-bottom-left" msgstr "בתחתית משמאל" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:402 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-bottom-right" msgstr "בתחתית מימין" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:397 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-center" msgstr "מרכז" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:396 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-manual" msgstr "ידני" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:400 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-top-center" msgstr "בראש באמצע" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:398 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-top-left" msgstr "בראש משמאל" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:399 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-top-right" msgstr "בראש מימין" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:524 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-position" msgstr "מיקום" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:494 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-preserve-scroll" msgstr "שימור מיקום גלילה" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:58, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:373 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-prev-screen" msgstr "המסך הקודם" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:515 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-relative-to" msgstr "יחסי אל" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:57, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:379, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:393, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:394 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-self" msgstr "עצמי" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:371 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-toggle-overlay" msgstr "החלפת מצב שכבת על" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:54 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-toggle-overlay-dest" msgstr "החלפת מצב שכבת על: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:445 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-trigger" msgstr "הקפצה" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:503 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-url" msgstr "כתובת" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:37, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:362 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-while-hovering" msgstr "בזמן ריחוף" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:38, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:363 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-while-pressing" msgstr "בזמן לחיצה" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:724 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interactions" msgstr "אינטראקציות" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:137 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.color" msgstr "צבע" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:126 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.color-burn" msgstr "צריבת צבע" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:129 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.color-dodge" msgstr "בריחת צבע" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:124 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.darken" msgstr "החשכה" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:133 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.difference" msgstr "הבדל" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:134 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.exclusion" msgstr "הדרה" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:132 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.hard-light" msgstr "אור קשיח" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:135 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.hue" msgstr "גוון" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:127 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.lighten" msgstr "הבהרה" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:138 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.luminosity" msgstr "תאורה" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:125 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.multiply" msgstr "הכפלה" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:123 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.normal" msgstr "רגיל" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:130 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.overlay" msgstr "שכבת על" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:136 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.saturation" msgstr "רוויה" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:128 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.screen" msgstr "מסך" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:131 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.soft-light" msgstr "אור רך" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -#, unused msgid "workspace.options.layer-options.title" msgstr "שכבה" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -#, unused msgid "workspace.options.layer-options.title.group" msgstr "קיבוץ שכבות" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -#, unused msgid "workspace.options.layer-options.title.multiple" msgstr "שכבות נבחרות" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout-item.advanced-ops" msgstr "אפשרויות מתקדמות" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:564 +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs msgid "workspace.options.layout-item.layout-item-max-h" msgstr "גובה מר.‏" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:531 +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs msgid "workspace.options.layout-item.layout-item-max-w" msgstr "רוחב מר.‏" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:548 +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs msgid "workspace.options.layout-item.layout-item-min-h" msgstr "גובה מז.‏" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:515 +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs msgid "workspace.options.layout-item.layout-item-min-w" msgstr "רוחב מז.‏" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout-item.title.layout-item-max-h" msgstr "גובה מרבי" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout-item.title.layout-item-max-w" msgstr "רוחב מרבי" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout-item.title.layout-item-min-h" msgstr "גובה מזערי" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout-item.title.layout-item-min-w" msgstr "רוחב מזערי" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.bottom" msgstr "תחתית" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.direction.column" msgstr "עמודה" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.direction.column-reverse" msgstr "היפוך עמודה" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.direction.row" msgstr "שורה" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.direction.row-reverse" msgstr "היפוך שורה" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.gap" msgstr "מרווח" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.left" msgstr "שמאל" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout.margin" msgstr "שול" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout.margin-all" msgstr "כל הצדדים" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout.margin-simple" msgstr "שול פשוט" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.packed" msgstr "אסוף" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.padding" msgstr "ריפוד" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.padding-all" msgstr "כל הצדדים" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.padding-simple" msgstr "ריפוד פשוט" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.right" msgstr "ימין" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.space-around" msgstr "רווח מסביב" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.space-between" msgstr "רווח בין לבין" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.top" msgstr "עליון" -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:146 +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs msgid "workspace.options.more-colors" msgstr "צבעים נוספים" -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:123 +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs msgid "workspace.options.more-lib-colors" msgstr "צבעי ספרייה נוספים" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:161 msgid "workspace.options.opacity" msgstr "אטימות" -#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.position" msgstr "מיקום" -#: src/app/main/ui/workspace/sidebar/options.cljs:157 +#: src/app/main/ui/workspace/sidebar/options.cljs msgid "workspace.options.prototype" msgstr "אבטיפוס" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:469, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:481 msgid "workspace.options.radius" msgstr "רדיוס" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:513 +#: 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:522 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.radius-bottom-right" msgstr "בתחתית מימין" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:495 +#: 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:504 +#: 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:532 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.radius.all-corners" msgstr "כל הפינות" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:533 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.radius.single-corners" msgstr "פינות עצמאיות" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:183 msgid "workspace.options.recent-fonts" msgstr "אחרונים" -#: src/app/main/ui/export.cljs:284 +#: 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 "לנסות שוב" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:451 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.rotation" msgstr "סיבוב" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:180 msgid "workspace.options.search-font" msgstr "חיפוש גופן" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:741 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.select-a-shape" msgstr "נא לבחור צורה, לוח או קבוצה כדי לגרור חיבור ללוח אחר." -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:105 +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs msgid "workspace.options.selection-color" msgstr "צבעים נבחרים" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:47 +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs msgid "workspace.options.selection-fill" msgstr "מילוי בחירה" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:41 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.selection-stroke" msgstr "מתאר בחירה" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:40, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:198, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:200 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.blur" msgstr "טשטוש" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:238 msgid "workspace.options.shadow-options.color" msgstr "צבע הצללה" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:144 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.drop-shadow" msgstr "הטלת צל" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:145 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.inner-shadow" msgstr "צל פנימי" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:38, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:186 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.offsetx" msgstr "X" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:39, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:224 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.offsety" msgstr "Y" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:41, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:211, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:213 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.spread" msgstr "פיזור" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:296 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.title" msgstr "צל" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:295 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.title.group" msgstr "צל של קבוצה" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:294 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.title.multiple" msgstr "צללים של בחירה" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:193 +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs msgid "workspace.options.show-fill-on-export" msgstr "הצגה בייצואים" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:562 msgid "workspace.options.show-in-viewer" msgstr "להציג במצב הצגה" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:162 +#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.size" msgstr "גודל" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:355 +#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs msgid "workspace.options.size-presets" msgstr "תבניות גודל" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:43 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke" msgstr "מתאר" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -#, unused msgid "workspace.options.stroke-cap.circle-marker" msgstr "סמן עגול" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:129 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.circle-marker-short" msgstr "עיגול" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -#, unused msgid "workspace.options.stroke-cap.diamond-marker" msgstr "סמן יהלום" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:130 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.diamond-marker-short" msgstr "יהלום" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -#, unused msgid "workspace.options.stroke-cap.line-arrow" msgstr "חץ קו" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:126 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.line-arrow-short" msgstr "חץ" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:124 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.none" msgstr "ללא" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:132 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.round" msgstr "עגול" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:133 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.square" msgstr "ריבוע" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -#, unused msgid "workspace.options.stroke-cap.square-marker" msgstr "סמן ריבוע" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:128 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.square-marker-short" msgstr "מרובע" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -#, unused msgid "workspace.options.stroke-cap.triangle-arrow" msgstr "חץ משולש" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:127 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.triangle-arrow-short" msgstr "משולש" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:192 msgid "workspace.options.stroke-color" msgstr "צבע מתאר" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:165 msgid "workspace.options.stroke-width" msgstr "עובי מתאר" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:87 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.center" msgstr "מרכז" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:105 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.dashed" msgstr "מקווקוו" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:104 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.dotted" msgstr "מנוקד" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:88 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.inner" msgstr "בפנים" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:106 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.mixed" msgstr "מעורב" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:89 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.outer" msgstr "בחוץ" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:103 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.solid" msgstr "אחיד" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:115 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.align-bottom" msgstr "יישור לתחתית" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:111 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.align-middle" msgstr "יישור לאמצע" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:107 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.align-top" msgstr "יישור לראש" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:82 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.direction-ltr" msgstr "משמאל לימין" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:87 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.direction-rtl" msgstr "מימין לשמאל" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:149 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.grow-auto-height" msgstr "גובה אוטומטי" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:145 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.grow-auto-width" msgstr "רוחב אוטומטי" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:141 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.grow-fixed" msgstr "קבוע" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:381 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.options.text-options.letter-spacing" msgstr "ריווח תווים" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:364 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.options.text-options.line-height" msgstr "גובה שורה" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused msgid "workspace.options.text-options.lowercase" msgstr "אותיות קטנות" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.options.text-options.none" msgstr "ללא" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:176 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.strikethrough" msgstr "קו חוצה (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:51 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.text-align-center" msgstr "יישור למרכז (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:59 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.text-align-justify" msgstr "יישור לשני הצדדים (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:47 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.text-align-left" msgstr "יישור שמאלה (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:55 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.text-align-right" msgstr "יישור ימינה (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:189 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.title" msgstr "טקסט" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:188 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.title-group" msgstr "קיבוץ טקסט" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:187 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.title-selection" msgstr "טקסט בחירה" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused msgid "workspace.options.text-options.titlecase" msgstr "רישיות כותרת" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:171 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.underline" msgstr "קו תחתי (%s)" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused msgid "workspace.options.text-options.uppercase" msgstr "אותיות גדולות" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:745 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.use-play-button" msgstr "ניתן להשתמש בכפתור הנגינה שבכותרת כדי להריץ את תצוגת האבטיפוס." -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:395 msgid "workspace.options.width" msgstr "עובי" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:427 msgid "workspace.options.x" msgstr "ציר X" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:438 msgid "workspace.options.y" msgstr "ציר Y" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:167 msgid "workspace.path.actions.add-node" msgstr "הוספת מפרק (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:174 msgid "workspace.path.actions.delete-node" msgstr "מחיקת מפרק (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:152 msgid "workspace.path.actions.draw-nodes" msgstr "ציור מפרקים (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:189 msgid "workspace.path.actions.join-nodes" msgstr "צירוף מפרקים (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:204 msgid "workspace.path.actions.make-corner" msgstr "לפינה (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:211 msgid "workspace.path.actions.make-curve" msgstr "לעיקול (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:182 msgid "workspace.path.actions.merge-nodes" msgstr "מיזוג מפרקים (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:159 msgid "workspace.path.actions.move-nodes" msgstr "העברת מפרקים (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:196 msgid "workspace.path.actions.separate-nodes" msgstr "הפרדת מפרקים (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:218 msgid "workspace.path.actions.snap-nodes" msgstr "הצמדת מפרקים (%s)" -#: src/app/main/ui/workspace/context_menu.cljs:441 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.add-flex" msgstr "הוספת פריסת flex" -#: src/app/main/ui/workspace/context_menu.cljs:445 msgid "workspace.shape.menu.add-grid" msgstr "הוספת פריסת רשת" -#: src/app/main/ui/workspace/context_menu.cljs:193 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.back" msgstr "הרחקה" -#: src/app/main/ui/workspace/context_menu.cljs:190 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.backward" msgstr "הרחקה לאחור" -#: src/app/main/ui/workspace/context_menu.cljs:139 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.copy" msgstr "העתקה" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:427 msgid "workspace.shape.menu.create-annotation" msgstr "יצירת הסבר" -#: src/app/main/ui/workspace/context_menu.cljs:275 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.create-artboard-from-selection" msgstr "בחירה ללוח" -#: src/app/main/ui/workspace/context_menu.cljs:465 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.create-component" msgstr "יצירת רכיב" -#: src/app/main/ui/workspace/context_menu.cljs:469 msgid "workspace.shape.menu.create-multiple-components" msgstr "יצירת מגוון רכיבים" -#: src/app/main/ui/workspace/context_menu.cljs:142 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.cut" msgstr "גזירה" -#: src/app/main/ui/workspace/context_menu.cljs:486 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.delete" msgstr "מחיקה" -#: src/app/main/ui/workspace/context_menu.cljs:391 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.delete-flow-start" msgstr "מחיקת התחלת זרימה" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:432 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.detach-instance" msgstr "ניתוק מופע" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:431 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.detach-instances-in-bulk" msgstr "הפרדת מופעים" -#: src/app/main/ui/workspace/context_menu.cljs:335, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:75 msgid "workspace.shape.menu.difference" msgstr "הבדל" -#: src/app/main/ui/workspace/context_menu.cljs:148 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.duplicate" msgstr "שכפול" -#: src/app/main/ui/workspace/context_menu.cljs:321 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.edit" msgstr "עריכה" -#: src/app/main/ui/workspace/context_menu.cljs:341 msgid "workspace.shape.menu.exclude" msgstr "החרגה" -#: src/app/main/ui/workspace/context_menu.cljs:348, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:89 msgid "workspace.shape.menu.flatten" msgstr "שיטוח" -#: src/app/main/ui/workspace/context_menu.cljs:208 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.flip-horizontal" msgstr "היפוך אופקי" -#: src/app/main/ui/workspace/context_menu.cljs:204 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.flip-vertical" msgstr "היפוך אנכי" -#: src/app/main/ui/workspace/context_menu.cljs:394 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.flow-start" msgstr "התחלת זרימה" -#: src/app/main/ui/workspace/context_menu.cljs:184 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.forward" msgstr "קידום" -#: src/app/main/ui/workspace/context_menu.cljs:187 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.front" msgstr "קידום לחזית" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.go-main" msgstr "מעבר לקובץ הרכיב הראשי" -#: src/app/main/ui/workspace/context_menu.cljs:261 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.group" msgstr "קבוצה" -#: src/app/main/ui/workspace/context_menu.cljs:363, src/app/main/ui/workspace/sidebar/layer_item.cljs:145 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.hide" msgstr "הסתרה" -#: src/app/main/ui/workspace/context_menu.cljs:548, src/app/main/ui/workspace/main_menu.cljs:408 msgid "workspace.shape.menu.hide-ui" msgstr "הצגת/הסתרת מנשק משתמש" -#: src/app/main/ui/workspace/context_menu.cljs:338 msgid "workspace.shape.menu.intersection" msgstr "הצלבה" -#: src/app/main/ui/workspace/context_menu.cljs:371, src/app/main/ui/workspace/sidebar/layer_item.cljs:153 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.lock" msgstr "נעילה" -#: src/app/main/ui/workspace/context_menu.cljs:266 +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.mask" msgstr "מסכה" -#: src/app/main/ui/workspace/context_menu.cljs:145, src/app/main/ui/workspace/context_menu.cljs:545 +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.paste" msgstr "הדבקה" -#: src/app/main/ui/workspace/context_menu.cljs:331 msgid "workspace.shape.menu.path" msgstr "נתיב" -#: src/app/main/ui/workspace/context_menu.cljs:432 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.remove-flex" msgstr "הסרת פריסת flex" -#: src/app/main/ui/workspace/context_menu.cljs:435 -msgid "workspace.shape.menu.remove-grid" -msgstr "הסרת פריסת רשת" - -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:436 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.reset-overrides" msgstr "איפוס מעקפים" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:439 msgid "workspace.shape.menu.restore-main" msgstr "שחזור הרכיב הראשי" -#: src/app/main/ui/workspace/context_menu.cljs:174 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.select-layer" msgstr "בחירת שכבה" -#: src/app/main/ui/workspace/context_menu.cljs:360, src/app/main/ui/workspace/sidebar/layer_item.cljs:144 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.show" msgstr "הצגה" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:424 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.show-in-assets" msgstr "הצגה בלוח משאבים" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:442, src/app/main/ui/workspace/sidebar/assets/components.cljs:586 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.show-main" msgstr "הצגת הרכיב הראשי" -#: src/app/main/ui/workspace/context_menu.cljs:221 msgid "workspace.shape.menu.thumbnail-remove" msgstr "הסרת התמונה הממוזערת" -#: src/app/main/ui/workspace/context_menu.cljs:223 msgid "workspace.shape.menu.thumbnail-set" msgstr "הגדרה כתמונה ממוזערת" -#: src/app/main/ui/workspace/context_menu.cljs:326 msgid "workspace.shape.menu.transform-to-path" msgstr "המרה לנתיב" -#: src/app/main/ui/workspace/context_menu.cljs:257 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.ungroup" msgstr "פירוק קבוצה" -#: src/app/main/ui/workspace/context_menu.cljs:332, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:70 msgid "workspace.shape.menu.union" msgstr "איחוד" -#: src/app/main/ui/workspace/context_menu.cljs:368, src/app/main/ui/workspace/sidebar/layer_item.cljs:152 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.unlock" msgstr "שחרור נעילה" -#: src/app/main/ui/workspace/context_menu.cljs:271 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.unmask" msgstr "ביטול מסכה" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.update-components-in-bulk" msgstr "עדכון הרכיבים הראשיים" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:445 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.update-main" msgstr "עדכון הרכיב הראשי" -#: src/app/main/ui/components/tab_container.cljs:50 msgid "workspace.sidebar.collapse" msgstr "צמצום סרגל צד" -#: src/app/main/ui/workspace/sidebar/collapsable_button.cljs:26 msgid "workspace.sidebar.expand" msgstr "הרחבת סרגל צד" -#: src/app/main/ui/workspace/right_header.cljs:231, src/app/main/ui/workspace/right_header.cljs:232 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.sidebar.history" msgstr "היסטוריה (%s)" -#: src/app/main/ui/workspace/sidebar/layers.cljs:522, src/app/main/ui/workspace/sidebar.cljs:100 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.sidebar.layers" msgstr "שכבות" -#: src/app/main/ui/workspace/sidebar/layers.cljs:308, src/app/main/ui/workspace/sidebar/layers.cljs:380 msgid "workspace.sidebar.layers.components" msgstr "רכיבים" -#: src/app/main/ui/workspace/sidebar/layers.cljs:305, src/app/main/ui/workspace/sidebar/layers.cljs:338 msgid "workspace.sidebar.layers.frames" msgstr "לוחות" -#: src/app/main/ui/workspace/sidebar/layers.cljs:306, src/app/main/ui/workspace/sidebar/layers.cljs:352 msgid "workspace.sidebar.layers.groups" msgstr "קבוצות" -#: src/app/main/ui/workspace/sidebar/layers.cljs:310, src/app/main/ui/workspace/sidebar/layers.cljs:408 msgid "workspace.sidebar.layers.images" msgstr "תמונות" -#: src/app/main/ui/workspace/sidebar/layers.cljs:307, src/app/main/ui/workspace/sidebar/layers.cljs:366 msgid "workspace.sidebar.layers.masks" msgstr "מסכות" -#: src/app/main/ui/workspace/sidebar/layers.cljs:289 msgid "workspace.sidebar.layers.search" msgstr "חיפוש בשכבות" -#: src/app/main/ui/workspace/sidebar/layers.cljs:311, src/app/main/ui/workspace/sidebar/layers.cljs:422 msgid "workspace.sidebar.layers.shapes" msgstr "צורות" -#: src/app/main/ui/workspace/sidebar/layers.cljs:309, src/app/main/ui/workspace/sidebar/layers.cljs:394 msgid "workspace.sidebar.layers.texts" msgstr "טקסטים" -#: src/app/main/ui/viewer/inspect/attributes/svg.cljs:56, src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs:91 +#: src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs, +#: src/app/main/ui/inspect/attributes/svg.cljs msgid "workspace.sidebar.options.svg-attrs.title" msgstr "מאפייני SVG יובאו" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs:217 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs msgid "workspace.sidebar.sitemap" msgstr "עמודים" -#: src/app/main/ui/workspace/left_header.cljs:91 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.sitemap" msgstr "מפת אתר" -#: src/app/main/ui/workspace/sidebar.cljs:120 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.assets" msgstr "משאבים" -#: src/app/main/ui/workspace/palette.cljs:165, src/app/main/ui/workspace/palette.cljs:166 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.color-palette" msgstr "ערכת צבעים (%s)" -#: src/app/main/ui/workspace/right_header.cljs:220, src/app/main/ui/workspace/right_header.cljs:221 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.comments" msgstr "הערות (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:180, src/app/main/ui/workspace/top_toolbar.cljs:181 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.curve" msgstr "עיקול (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:160, src/app/main/ui/workspace/top_toolbar.cljs:161 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.ellipse" msgstr "אליפסה (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:142, src/app/main/ui/workspace/top_toolbar.cljs:143 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.frame" msgstr "לוח (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:59, src/app/main/ui/workspace/top_toolbar.cljs:60 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.image" msgstr "תמונה (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:132, src/app/main/ui/workspace/top_toolbar.cljs:133 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.move" msgstr "העברה (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:189, src/app/main/ui/workspace/top_toolbar.cljs:190 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.path" msgstr "נתיב (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:151, src/app/main/ui/workspace/top_toolbar.cljs:152 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.rect" msgstr "ריבוע (%s)" #: src/app/main/ui/workspace/left_toolbar.cljs -#, unused msgid "workspace.toolbar.shortcuts" msgstr "קיצורי דרך (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:169, src/app/main/ui/workspace/top_toolbar.cljs:170 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.text" msgstr "טקסט (%s)" -#: src/app/main/ui/workspace/palette.cljs:173, src/app/main/ui/workspace/palette.cljs:174 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.text-palette" msgstr "טיפוגרפיות (%s)" -#: src/app/main/ui/workspace/viewport/top_bar.cljs:38 msgid "workspace.top-bar.read-only.done" msgstr "בוצע" -#: src/app/main/ui/workspace/viewport/top_bar.cljs:35 -#, markdown -msgid "workspace.top-bar.view-only" -msgstr "**חקירת קוד** (צפייה בלבד)" - -#: src/app/main/ui/workspace/sidebar/history.cljs:342 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.empty" msgstr "אין שינויים היסטוריים עד כה" -#: src/app/main/ui/workspace/sidebar/history.cljs:147 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.entry.delete" msgstr "%s נמחק" -#: src/app/main/ui/workspace/sidebar/history.cljs:146 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.entry.modify" msgstr "%s נערך" -#: src/app/main/ui/workspace/sidebar/history.cljs:148 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.entry.move" msgstr "פריטים שהועברו" -#: src/app/main/ui/workspace/sidebar/history.cljs:111 msgid "workspace.undo.entry.multiple.circle" msgstr "עיגולים" -#: src/app/main/ui/workspace/sidebar/history.cljs:112 msgid "workspace.undo.entry.multiple.color" msgstr "משאבי צבע" -#: src/app/main/ui/workspace/sidebar/history.cljs:113 msgid "workspace.undo.entry.multiple.component" msgstr "רכיבים" -#: src/app/main/ui/workspace/sidebar/history.cljs:114 msgid "workspace.undo.entry.multiple.curve" msgstr "עיקולים" -#: src/app/main/ui/workspace/sidebar/history.cljs:115 msgid "workspace.undo.entry.multiple.frame" msgstr "לוח" -#: src/app/main/ui/workspace/sidebar/history.cljs:116 msgid "workspace.undo.entry.multiple.group" msgstr "קבוצות" -#: src/app/main/ui/workspace/sidebar/history.cljs:117 msgid "workspace.undo.entry.multiple.media" msgstr "משאבים גרפיים" -#: src/app/main/ui/workspace/sidebar/history.cljs:118 msgid "workspace.undo.entry.multiple.multiple" msgstr "פריטים" -#: src/app/main/ui/workspace/sidebar/history.cljs:119 msgid "workspace.undo.entry.multiple.page" msgstr "עמודים" -#: src/app/main/ui/workspace/sidebar/history.cljs:120 msgid "workspace.undo.entry.multiple.path" msgstr "נתיבים" -#: src/app/main/ui/workspace/sidebar/history.cljs:121 msgid "workspace.undo.entry.multiple.rect" msgstr "ריבועים" -#: src/app/main/ui/workspace/sidebar/history.cljs:122 msgid "workspace.undo.entry.multiple.shape" msgstr "צורות" -#: src/app/main/ui/workspace/sidebar/history.cljs:123 msgid "workspace.undo.entry.multiple.text" msgstr "טקסטים" -#: src/app/main/ui/workspace/sidebar/history.cljs:124 msgid "workspace.undo.entry.multiple.typography" msgstr "משאבים טיפוגרפיים" -#: src/app/main/ui/workspace/sidebar/history.cljs:145 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.entry.new" msgstr "%s חדש" -#: src/app/main/ui/workspace/sidebar/history.cljs:125 msgid "workspace.undo.entry.single.circle" msgstr "עיגול" -#: src/app/main/ui/workspace/sidebar/history.cljs:126 msgid "workspace.undo.entry.single.color" msgstr "משאב צבע" -#: src/app/main/ui/workspace/sidebar/history.cljs:127 msgid "workspace.undo.entry.single.component" msgstr "רכיב" -#: src/app/main/ui/workspace/sidebar/history.cljs:128 msgid "workspace.undo.entry.single.curve" msgstr "עיקול" -#: src/app/main/ui/workspace/sidebar/history.cljs:129 msgid "workspace.undo.entry.single.frame" msgstr "לוח" -#: src/app/main/ui/workspace/sidebar/history.cljs:130 msgid "workspace.undo.entry.single.group" msgstr "קבוצה" -#: src/app/main/ui/workspace/sidebar/history.cljs:131 msgid "workspace.undo.entry.single.image" msgstr "תמונה" -#: src/app/main/ui/workspace/sidebar/history.cljs:132 msgid "workspace.undo.entry.single.media" msgstr "משאב גרפי" -#: src/app/main/ui/workspace/sidebar/history.cljs:133 msgid "workspace.undo.entry.single.multiple" msgstr "פריט" -#: src/app/main/ui/workspace/sidebar/history.cljs:134 msgid "workspace.undo.entry.single.page" msgstr "עמוד" -#: src/app/main/ui/workspace/sidebar/history.cljs:135 msgid "workspace.undo.entry.single.path" msgstr "נתיב" -#: src/app/main/ui/workspace/sidebar/history.cljs:136 msgid "workspace.undo.entry.single.rect" msgstr "מרובע" -#: src/app/main/ui/workspace/sidebar/history.cljs:137 msgid "workspace.undo.entry.single.shape" msgstr "צורה" -#: src/app/main/ui/workspace/sidebar/history.cljs:138 msgid "workspace.undo.entry.single.text" msgstr "טקסט" -#: src/app/main/ui/workspace/sidebar/history.cljs:139 msgid "workspace.undo.entry.single.typography" msgstr "משאב טיפוגרפי" -#: src/app/main/ui/workspace/sidebar/history.cljs:149 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.entry.unknown" msgstr "פעולה על %s" -#: src/app/main/ui/workspace/sidebar/history.cljs:335 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.title" msgstr "היסטוריה" -#: src/app/main/data/workspace/libraries.cljs:1094 +#: src/app/main/data/workspace/libraries.cljs msgid "workspace.updates.dismiss" msgstr "התעלמות" -#: src/app/main/data/workspace/libraries.cljs:1092 +#: src/app/main/data/workspace/libraries.cljs msgid "workspace.updates.more-info" msgstr "מידע נוסף" -#: src/app/main/data/workspace/libraries.cljs:1090 +#: src/app/main/data/workspace/libraries.cljs msgid "workspace.updates.there-are-updates" msgstr "יש עדכונים בספריות המשותפות" -#: src/app/main/data/workspace/libraries.cljs:1097 +#: src/app/main/data/workspace/libraries.cljs msgid "workspace.updates.update" msgstr "עדכון" -#, unused msgid "workspace.viewport.click-to-close-path" msgstr "לחיצה תסגור את הנתיב" + +msgid "media.image.short" +msgstr "תמונה" + +msgid "media.keep-aspect-ratio" +msgstr "שמירה על יחס גובה־רוחב" + +#: src/app/main/ui/workspace/sidebar/assets.cljs +msgid "workspace.assets.filter" +msgstr "סינון" + +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.menu.disable-snap-ruler-guides" +msgstr "השבתת הצמדה לקווים מנחים סרגלים" + +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.menu.enable-snap-ruler-guides" +msgstr "הצמדה לקווים מנחים סרגלים" + +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.menu.hide-guides" +msgstr "הסתרת קווים מנחים" + +msgid "workspace.layout_grid.editor.padding.expand" +msgstr "הצגת אפשרויות ריפוד עם 4 צדדים" + +#: src/app/main/ui/workspace/libraries.cljs +msgid "workspace.libraries.unlink-library-btn" +msgstr "ניתוק ספרייה" + +msgid "workspace.top-bar.view-only" +msgstr "**חקירת קוד** (צפייה בלבד)" + +msgid "modals.move-shared-confirm.accept" +msgid_plural "modals.move-shared-confirm.accept" +msgstr[0] "העברה" +msgstr[1] "העברה" +msgstr[2] "העברה" +msgstr[3] "העברה" + +#: src/app/main/ui/workspace/sidebar/assets/common.cljs +msgid "workspace.assets.sidebar.components" +msgid_plural "workspace.assets.sidebar.components" +msgstr[0] "רכיב" +msgstr[1] "שני רכיבים" +msgstr[2] "%s רכיבים" +msgstr[3] "%s רכיבים" + +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.menu.show-guides" +msgstr "הצגת קווים מנחים" + +msgid "workspace.layout_grid.editor.top-bar.locate.tooltip" +msgstr "איתור פריסת הרשת" + +#: src/app/main/ui/workspace/libraries.cljs +msgid "workspace.libraries.shared-library-btn" +msgstr "חיבור ספרייה" + +#: src/app/main/ui/workspace/context_menu.cljs +msgid "workspace.shape.menu.remove-grid" +msgstr "הסרת פריסת רשת" diff --git a/frontend/translations/hr.po b/frontend/translations/hr.po index ac02a686b3..b29b453ade 100644 --- a/frontend/translations/hr.po +++ b/frontend/translations/hr.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "PO-Revision-Date: 2024-06-17 08:07+0000\n" "Last-Translator: Anonymous \n" -"Language-Team: Croatian " -"\n" +"Language-Team: Croatian \n" "Language: hr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" @@ -12,425 +12,381 @@ msgstr "" "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" "X-Generator: Weblate 5.6-dev\n" -#: src/app/main/ui/auth/register.cljs:151, src/app/main/ui/viewer/login.cljs:104 +#: src/app/main/ui/auth/register.cljs msgid "auth.already-have-account" msgstr "Već imaš račun?" -#: src/app/main/ui/auth/register.cljs:299 +#: src/app/main/ui/auth/register.cljs msgid "auth.check-your-email" msgstr "Provjeri svoj e-mail i klikni na vezu da potvrdiš i počneš koristiti Penpot." -#: src/app/main/ui/auth/recovery.cljs:78 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.confirm-password" msgstr "Potvrdi lozinku" -#: src/app/main/ui/auth/register.cljs:163 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.create-demo-account" msgstr "Kreiraj demo račun" #: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs -#, unused msgid "auth.create-demo-profile" msgstr "Samo želiš isprobati?" -#: src/app/main/ui/auth/login.cljs:43 +#: src/app/main/ui/auth/register.cljs msgid "auth.demo-warning" msgstr "" "Ovo je DEMO usluga. NEMOJ KORISTITI za pravi rad. Projekti će se povremeno " "brisati." -#: src/app/main/ui/auth/login.cljs:189, src/app/main/ui/viewer/login.cljs:90 +#: src/app/main/ui/auth/login.cljs msgid "auth.forgot-password" msgstr "Zaboravljena lozinka?" -#: src/app/main/ui/auth/register.cljs:254 +#: src/app/main/ui/auth/register.cljs msgid "auth.fullname" msgstr "Puno ime" -#: src/app/main/ui/auth/register.cljs:155, src/app/main/ui/viewer/login.cljs:107 +#: src/app/main/ui/auth/register.cljs +#, fuzzy msgid "auth.login-here" msgstr "Prijavi se ovdje" -#: src/app/main/ui/auth/login.cljs:195 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-submit" msgstr "Prijava" -#: src/app/main/ui/auth/login.cljs:222 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-github-submit" msgstr "GitHub" -#: src/app/main/ui/auth/login.cljs:228 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-gitlab-submit" msgstr "GitLab" -#: src/app/main/ui/auth/login.cljs:216 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-google-submit" msgstr "Google" -#: src/app/main/ui/auth/login.cljs:201 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-ldap-submit" msgstr "LDAP" -#: src/app/main/ui/auth/login.cljs:234, src/app/main/ui/auth/login.cljs:255 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-oidc-submit" msgstr "OpenID" -#: src/app/main/ui/auth/recovery.cljs:71 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.new-password" msgstr "Unesi novu lozinku" -#: src/app/main/ui/auth/recovery.cljs:42 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.notifications.invalid-token-error" msgstr "Token za oporavak je nevažeći." -#: src/app/main/ui/auth/recovery.cljs:46 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.notifications.password-changed-successfully" msgstr "Lozinka uspješno promijenjena" -#: src/app/main/ui/auth/recovery_request.cljs:57 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.notifications.profile-not-verified" msgstr "Profil nije potvrđen, potvrdi profil prije nastavka." -#: src/app/main/ui/auth/recovery_request.cljs:40 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.notifications.recovery-token-sent" msgstr "Veza za oporavak lozinke poslana je u tvoj inbox." -#: src/app/main/ui/auth/verify_token.cljs:47 +#: src/app/main/ui/auth/verify_token.cljs msgid "auth.notifications.team-invitation-accepted" msgstr "Uspješno pridružen/a timu" -#: src/app/main/ui/auth/login.cljs:179, src/app/main/ui/auth/register.cljs:115 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.password" msgstr "Lozinka" -#: src/app/main/ui/auth/register.cljs:114 +#: src/app/main/ui/auth/register.cljs msgid "auth.password-length-hint" msgstr "Najmanje 8 znamenki" -#: src/app/main/ui/auth.cljs:41 msgid "auth.privacy-policy" msgstr "Pravila privatnosti" -#: src/app/main/ui/auth/recovery_request.cljs:88 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-submit" msgstr "Obnovi lozinku" -#: src/app/main/ui/auth/recovery_request.cljs:101 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-subtitle" msgstr "Poslat ćemo ti e-mail sa uputama" -#: src/app/main/ui/auth/recovery_request.cljs:100 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-title" msgstr "Zaboravljena lozinka?" -#: src/app/main/ui/auth/recovery.cljs:82 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.recovery-submit" msgstr "Promjeni lozinku" -#: src/app/main/ui/auth/login.cljs:298, src/app/main/ui/viewer/login.cljs:93 +#: src/app/main/ui/auth/login.cljs msgid "auth.register" msgstr "Još nemaš račun?" -#: src/app/main/ui/auth/login.cljs:302, src/app/main/ui/auth/register.cljs:121, src/app/main/ui/auth/register.cljs:263, src/app/main/ui/viewer/login.cljs:97 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.register-submit" msgstr "Stvori račun" -#: src/app/main/ui/auth/register.cljs:140 +#: src/app/main/ui/auth/register.cljs msgid "auth.register-title" msgstr "Stvori račun" #: src/app/main/ui/auth.cljs -#, unused msgid "auth.sidebar-tagline" msgstr "Open Source rješenje za dizajn i izradu prototipova." -#: src/app/main/ui/auth.cljs:33, src/app/main/ui/dashboard/sidebar.cljs:1022, src/app/main/ui/workspace/main_menu.cljs:150 msgid "auth.terms-of-service" msgstr "Uvjeti pružanja usluge" -#: src/app/main/ui/auth/register.cljs:297 +#: src/app/main/ui/auth/register.cljs msgid "auth.verification-email-sent" msgstr "Poslali smo e-mail za potvrdu na" -#: src/app/main/ui/workspace/libraries.cljs:228 msgid "common.publish" msgstr "Objavi" -#: src/app/main/ui/viewer/share_link.cljs:304, src/app/main/ui/viewer/share_link.cljs:314 msgid "common.share-link.all-users" msgstr "Svi Penpot korisnici" -#: src/app/main/ui/viewer/share_link.cljs:198 msgid "common.share-link.confirm-deletion-link-description" msgstr "" "Jesi li siguran/na da želiš ukloniti ovu vezu? Ako to učiniš, više nikome " "neće biti dostupno" -#: src/app/main/ui/viewer/share_link.cljs:259, src/app/main/ui/viewer/share_link.cljs:289 msgid "common.share-link.current-tag" msgstr "(postojeći)" -#: src/app/main/ui/viewer/share_link.cljs:207, src/app/main/ui/viewer/share_link.cljs:214 msgid "common.share-link.destroy-link" msgstr "Poništi poveznicu" -#: src/app/main/ui/viewer/share_link.cljs:221 msgid "common.share-link.get-link" msgstr "Izradi poveznicu" -#: src/app/main/ui/viewer/share_link.cljs:139 msgid "common.share-link.link-copied-success" msgstr "Poveznica uspješno kopirana" -#: src/app/main/ui/viewer/share_link.cljs:231 msgid "common.share-link.manage-ops" msgstr "Upravljanje dopuštenjima" -#: src/app/main/ui/viewer/share_link.cljs:277 msgid "common.share-link.page-shared" msgid_plural "common.share-link.page-shared" msgstr[0] "1 stranica podijeljena" msgstr[1] "%s stranica podijeljeno" msgstr[2] "%s stranica podijeljeno" -#: src/app/main/ui/viewer/share_link.cljs:298 msgid "common.share-link.permissions-can-comment" msgstr "Dopušten komentar" -#: src/app/main/ui/viewer/share_link.cljs:308 msgid "common.share-link.permissions-can-inspect" msgstr "Dopušteno provjeriti kod" -#: src/app/main/ui/viewer/share_link.cljs:193 msgid "common.share-link.permissions-hint" msgstr "Svatko sa poveznicom imat će pristup" -#: src/app/main/ui/viewer/share_link.cljs:241 msgid "common.share-link.permissions-pages" msgstr "Stranice podijeljene" -#: src/app/main/ui/viewer/share_link.cljs:183 msgid "common.share-link.placeholder" msgstr "Ovdje će se pojaviti poveznica za dijeljenje" -#: src/app/main/ui/viewer/share_link.cljs:303, src/app/main/ui/viewer/share_link.cljs:313 msgid "common.share-link.team-members" msgstr "Samo članovi tima" -#: src/app/main/ui/viewer/share_link.cljs:171 msgid "common.share-link.title" msgstr "Podijeli prototip" -#: src/app/main/ui/viewer/share_link.cljs:269 msgid "common.share-link.view-all" msgstr "Označi sve" -#: src/app/main/ui/workspace/libraries.cljs:224 msgid "common.unpublish" msgstr "Poništi objavu" -#: src/app/main/ui/dashboard/projects.cljs:85 +#: src/app/main/ui/dashboard/projects.cljs msgid "dasboard.team-hero.management" msgstr "Upravljanje timom" -#: src/app/main/ui/dashboard/projects.cljs:84 +#: src/app/main/ui/dashboard/projects.cljs msgid "dasboard.team-hero.text" msgstr "" "Penpot je namijenjen timovima. Pozovi članove da zajedno rade na projektima " "i datotekama" -#: src/app/main/ui/dashboard/projects.cljs:82 +#: src/app/main/ui/dashboard/projects.cljs msgid "dasboard.team-hero.title" msgstr "Udruži se!" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.tutorial-hero.info" msgstr "Nauči osnove na Penpotu dok se zabavljaš uz ovaj praktični vodič." #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.tutorial-hero.start" msgstr "Pokreni praktični vodič" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.tutorial-hero.title" msgstr "Praktični vodič" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.walkthrough-hero.info" msgstr "Prošeći Penpotom i upoznaj glavne karakteristike." #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.walkthrough-hero.start" msgstr "Započni obilazak" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.walkthrough-hero.title" msgstr "Pregledaj sučelje" -#: src/app/main/ui/dashboard/file_menu.cljs:291, src/app/main/ui/workspace/main_menu.cljs:572 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.add-shared" msgstr "Dodaj kao zajedničku biblioteku" -#: src/app/main/ui/settings/profile.cljs:75 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.change-email" msgstr "Promijeni e-mail" -#: src/app/main/data/dashboard.cljs:762, src/app/main/data/dashboard.cljs:983 +#: src/app/main/data/dashboard.cljs, src/app/main/data/dashboard.cljs msgid "dashboard.copy-suffix" msgstr "(kopiraj)" -#: src/app/main/ui/dashboard/sidebar.cljs:338 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.create-new-team" msgstr "+ Kreiraj novi tim" -#: src/app/main/ui/components/context_menu_a11y.cljs:256, src/app/main/ui/dashboard/sidebar.cljs:646 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.default-team-name" msgstr "Tvoj Penpot" -#: src/app/main/ui/dashboard/sidebar.cljs:571 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.delete-team" msgstr "Obriši tim" -#: src/app/main/ui/dashboard/file_menu.cljs:296, src/app/main/ui/workspace/main_menu.cljs:589 msgid "dashboard.download-binary-file" msgstr "Preuzmi Penpot datoteku (.penpot)" -#: src/app/main/ui/dashboard/file_menu.cljs:300, src/app/main/ui/workspace/main_menu.cljs:597 msgid "dashboard.download-standard-file" msgstr "Preuzmi standardnu datoteku (.svg + .json)" -#: src/app/main/ui/dashboard/file_menu.cljs:276, src/app/main/ui/dashboard/project_menu.cljs:90 +#: src/app/main/ui/dashboard/project_menu.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.duplicate" msgstr "Kopija" -#: src/app/main/ui/dashboard/file_menu.cljs:240 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.duplicate-multi" msgstr "Kopiraj %s datoteka" -#: src/app/main/ui/dashboard/placeholder.cljs:32 -#, markdown +#: src/app/main/ui/dashboard/grid.cljs msgid "dashboard.empty-placeholder-drafts" msgstr "" "O ne! Još nemaš datoteka! Ako želiš isprobati neke predloške, idi na " "[Biblioteke i predlošci](https://penpot.app/libraries-templates)" -#: src/app/main/ui/dashboard/file_menu.cljs:249 msgid "dashboard.export-binary-multi" msgstr "Preuzmi %s Penpot datoteke (.penpot)" -#: src/app/main/ui/workspace/main_menu.cljs:605 msgid "dashboard.export-frames" msgstr "Izvezi artboard u PDF…" -#: src/app/main/ui/export.cljs:201 +#: src/app/main/ui/export.cljs msgid "dashboard.export-frames.title" msgstr "Izvezi u PDF" -#, unused msgid "dashboard.export-multi" msgstr "Izvezi Penpot %s datoteka" -#: src/app/main/ui/export.cljs:109 +#: src/app/main/ui/export.cljs msgid "dashboard.export-multiple.selected" msgstr "% od % elementa označeno" -#: src/app/main/ui/workspace/main_menu.cljs:578 +#: src/app/main/ui/workspace/header.cljs msgid "dashboard.export-shapes" msgstr "Izvezi" -#: src/app/main/ui/export.cljs:180 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.how-to" msgstr "" "Postavke izvoza možeš dodati elementima iz svojstava dizajna (na dnu desne " "bočne trake)." -#: src/app/main/ui/export.cljs:184 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.how-to-link" msgstr "Informacije kako postaviti izvoz na Penpot." -#: src/app/main/ui/export.cljs:179 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.no-elements" msgstr "Nema elemenata s postavkama izvoza." -#: src/app/main/ui/export.cljs:190 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.title" msgstr "Izvezi odabir" -#: src/app/main/ui/dashboard/file_menu.cljs:252 msgid "dashboard.export-standard-multi" msgstr "Preuzmi %s standardne datoteke (.svg + .json)" -#: src/app/main/ui/export.cljs:427 msgid "dashboard.export.detail" msgstr "* Može uključivati komponente, grafike, boje i/ili tipografije." -#: src/app/main/ui/export.cljs:426 msgid "dashboard.export.explain" msgstr "" "Jedna ili više datoteka koju želiš izvesti koristi zajedničke biblioteke. " "Što želiš učiniti s njihovim stavkama*?" -#: src/app/main/ui/export.cljs:435 msgid "dashboard.export.options.all.message" msgstr "" "datoteke sa zajedničkim bibliotekama bit će uključene u izvoz, održavajući " "njihovu poveznicu." -#: src/app/main/ui/export.cljs:436 msgid "dashboard.export.options.all.title" msgstr "Izvezi zajedničke biblioteke" -#: src/app/main/ui/export.cljs:437 msgid "dashboard.export.options.detach.message" msgstr "" "Zajedničke biblioteke neće biti uključene u izvoz i nikakve stavke neće " "biti dodani u biblioteku. " -#: src/app/main/ui/export.cljs:438 msgid "dashboard.export.options.detach.title" msgstr "Tretiraj stavke zajedničke biblioteke kao osnovne objekte" -#: src/app/main/ui/export.cljs:439 msgid "dashboard.export.options.merge.message" msgstr "" "Tvoja će datoteka biti izvezena sa svim vanjskim stavkama spojenim u " "biblioteku datoteka." -#: src/app/main/ui/export.cljs:440 msgid "dashboard.export.options.merge.title" msgstr "Uključi stavke zajedničke biblioteke u biblioteke datoteka" -#: src/app/main/ui/export.cljs:418 msgid "dashboard.export.title" msgstr "Izvezi datoteke" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:309 msgid "dashboard.fonts.deleted-placeholder" msgstr "Font izbrisan" -#: src/app/main/ui/dashboard/fonts.cljs:206 +#: src/app/main/ui/dashboard/fonts.cljs msgid "dashboard.fonts.dismiss-all" msgstr "Odbaci sve" -#: src/app/main/ui/dashboard/fonts.cljs:436 +#, fuzzy msgid "dashboard.fonts.empty-placeholder" msgstr "Još uvijek nemaš instalirane custom fontove." -#: src/app/main/ui/dashboard/fonts.cljs:194 +#: src/app/main/ui/dashboard/fonts.cljs msgid "dashboard.fonts.fonts-added" msgid_plural "dashboard.fonts.fonts-added" msgstr[0] "1 font dodan" msgstr[1] "%s fontova dodano" msgstr[2] "%s fontova dodano" -#: src/app/main/ui/dashboard/fonts.cljs:170 -#, markdown msgid "dashboard.fonts.hero-text1" msgstr "" "Svaki web-font koji ovdje preneseš biti će dodan na popis fontova koji je " @@ -438,8 +394,6 @@ msgstr "" "će grupirani kao **jedan font**. Možeš učitati fontove sa sljedećim " "formatima: **TTF, OTF i WOFF** (biti će potreban samo jedan)." -#: src/app/main/ui/dashboard/fonts.cljs:182 -#, markdown msgid "dashboard.fonts.hero-text2" msgstr "" "Možeš učitavati samo fontove koje posjeduješ ili imaš licencu za korištenje " @@ -447,4115 +401,3878 @@ msgstr "" "pružanja usluge](https://penpot.app/terms.html). Također možeš pročitati o " "[licenciranju fontova](https://www.typography.com/faq)." -#: src/app/main/ui/dashboard/fonts.cljs:202 +#: src/app/main/ui/dashboard/fonts.cljs msgid "dashboard.fonts.upload-all" msgstr "Učitaj sve" -#: src/app/main/ui/dashboard/import.cljs:472, src/app/main/ui/dashboard/project_menu.cljs:108 msgid "dashboard.import" msgstr "Uvezi Penpot datoteke" -#: src/app/main/ui/dashboard/import.cljs:304, src/app/worker/import.cljs:753, src/app/worker/import.cljs:755 msgid "dashboard.import.analyze-error" msgstr "Ups! Nismo mogli uvesti ovu datoteku" -#: src/app/main/ui/dashboard/import.cljs:308 msgid "dashboard.import.import-error" msgstr "Došlo je do problema pri uvozu datoteke. Datoteka nije uvezena." -#: src/app/main/ui/dashboard/import.cljs:493 msgid "dashboard.import.import-message" msgstr "%s datoteka je uspješno uvezeno." -#: src/app/main/ui/dashboard/import.cljs:481, src/app/main/ui/dashboard/import.cljs:488 msgid "dashboard.import.import-warning" msgstr "Neke su datoteke sadržavale nevažeće objekte koji su uklonjeni." -#: src/app/main/ui/dashboard/import.cljs:144 msgid "dashboard.import.progress.process-colors" msgstr "Obrada boja" -#: src/app/main/ui/dashboard/import.cljs:153 msgid "dashboard.import.progress.process-components" msgstr "Obrada komponenti" -#: src/app/main/ui/dashboard/import.cljs:150 msgid "dashboard.import.progress.process-media" msgstr "Obrada medija" -#: src/app/main/ui/dashboard/import.cljs:141 msgid "dashboard.import.progress.process-page" msgstr "Obrada stranice: %s" -#: src/app/main/ui/dashboard/import.cljs:147 msgid "dashboard.import.progress.process-typographies" msgstr "Obrada tipografija" -#: src/app/main/ui/dashboard/import.cljs:135 msgid "dashboard.import.progress.upload-data" msgstr "Prijenos podataka na poslužitelj (%s/%s)" -#: src/app/main/ui/dashboard/import.cljs:138 msgid "dashboard.import.progress.upload-media" msgstr "Prijenos datoteke: %s" -#: src/app/main/ui/dashboard/team.cljs:109 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.invite-profile" msgstr "Pozovi u tim" -#: src/app/main/ui/dashboard/sidebar.cljs:547, src/app/main/ui/dashboard/sidebar.cljs:556, src/app/main/ui/dashboard/sidebar.cljs:563, src/app/main/ui/dashboard/team.cljs:312 +#: src/app/main/ui/dashboard/sidebar.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.leave-team" msgstr "Napusti tim" -#: src/app/main/ui/dashboard/templates.cljs:88, src/app/main/ui/dashboard/templates.cljs:163 msgid "dashboard.libraries-and-templates" msgstr "Biblioteke i predlošci" -#: src/app/main/ui/dashboard/templates.cljs:164 msgid "dashboard.libraries-and-templates.explore" msgstr "Istraži više njih i saznaj kako doprinijeti" -#: src/app/main/ui/dashboard/import.cljs:365 msgid "dashboard.libraries-and-templates.import-error" msgstr "Došlo je do problema prilikom uvoza predloška. Predložak nije uvezen." -#: src/app/main/ui/dashboard/libraries.cljs:53 +#: src/app/main/ui/dashboard/libraries.cljs msgid "dashboard.libraries-title" msgstr "Biblioteke" -#: src/app/main/ui/dashboard/placeholder.cljs:45 +#: src/app/main/ui/dashboard/grid.cljs msgid "dashboard.loading-files" msgstr "učitavanje tvojih datoteka…" -#: src/app/main/ui/dashboard/fonts.cljs:431 msgid "dashboard.loading-fonts" msgstr "učitavanje tvojih fontova…" -#: src/app/main/ui/dashboard/file_menu.cljs:281, src/app/main/ui/dashboard/project_menu.cljs:100 +#: src/app/main/ui/dashboard/project_menu.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.move-to" msgstr "Premijesti u" -#: src/app/main/ui/dashboard/file_menu.cljs:245 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.move-to-multi" msgstr "Premijesti %s datoteke u" -#: src/app/main/ui/dashboard/file_menu.cljs:226 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.move-to-other-team" msgstr "Premijesti u drugi tim" -#: src/app/main/ui/dashboard/files.cljs:105, src/app/main/ui/dashboard/projects.cljs:252, src/app/main/ui/dashboard/projects.cljs:253 +#: src/app/main/ui/dashboard/projects.cljs, +#: src/app/main/ui/dashboard/files.cljs msgid "dashboard.new-file" msgstr "+ Nova datoteka" -#: src/app/main/data/dashboard.cljs:958, src/app/main/data/dashboard.cljs:1181 +#: src/app/main/data/dashboard.cljs msgid "dashboard.new-file-prefix" msgstr "Nova datoteka" -#: src/app/main/ui/dashboard/projects.cljs:55 +#: src/app/main/ui/dashboard/projects.cljs msgid "dashboard.new-project" msgstr "+ Novi projekt" -#: src/app/main/data/dashboard.cljs:726, src/app/main/data/dashboard.cljs:1184 +#: src/app/main/data/dashboard.cljs msgid "dashboard.new-project-prefix" msgstr "Novi projekt" -#: src/app/main/ui/dashboard/search.cljs:60 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.no-matches-for" msgstr "Nisu pronađeni rezultati za “%s”" -#: src/app/main/ui/dashboard/sidebar.cljs:827 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.no-projects-placeholder" msgstr "Prikvačeni projekti pojavit će se ovdje" -#: src/app/main/ui/auth/verify_token.cljs:33 +#: src/app/main/ui/auth/verify_token.cljs msgid "dashboard.notifications.email-changed-successfully" msgstr "Tvoja e-mail adresa je uspješno ažurirana" -#: src/app/main/ui/auth/verify_token.cljs:27 +#: src/app/main/ui/auth/verify_token.cljs msgid "dashboard.notifications.email-verified-successfully" msgstr "Tvoja e-mail adresa je uspješno potvrđena" -#: src/app/main/ui/settings/password.cljs:37 +#: src/app/main/ui/settings/password.cljs msgid "dashboard.notifications.password-saved" msgstr "Lozinka je uspješno spremljena!" -#: src/app/main/ui/dashboard/team.cljs:1081 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.num-of-members" msgstr "%s članova" -#: src/app/main/ui/dashboard/file_menu.cljs:267 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.open-in-new-tab" msgstr "Otvori datoteku u novoj kartici" -#: src/app/main/ui/dashboard/files.cljs:117, src/app/main/ui/dashboard/projects.cljs:260, src/app/main/ui/dashboard/projects.cljs:261 msgid "dashboard.options" msgstr "Mogućnosti" -#: src/app/main/ui/settings/password.cljs:106, src/app/main/ui/settings/password.cljs:119 +#: src/app/main/ui/settings/password.cljs msgid "dashboard.password-change" msgstr "Promjeni lozinku" -#: src/app/main/ui/dashboard/pin_button.cljs:24, src/app/main/ui/dashboard/project_menu.cljs:95 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.pin-unpin" msgstr "Prikvači/Otkvači" -#: src/app/main/ui/dashboard/projects.cljs:51 +#: src/app/main/ui/dashboard/projects.cljs msgid "dashboard.projects-title" msgstr "Projekti" -#: src/app/main/ui/settings/profile.cljs:86 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.remove-account" msgstr "Želiš li ukloniti svoj račun?" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.remove-shared" msgstr "Ukloni kao zajedničku biblioteku" -#: src/app/main/ui/settings/profile.cljs:78 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.save-settings" msgstr "Spremi postavke" -#: src/app/main/ui/dashboard/sidebar.cljs:246, src/app/main/ui/dashboard/sidebar.cljs:247 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.search-placeholder" msgstr "Pretraži…" -#: src/app/main/ui/dashboard/search.cljs:55 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.searching-for" msgstr "Pretraga \"%s\"…" -#: src/app/main/ui/settings/options.cljs:56 +#: src/app/main/ui/settings/options.cljs msgid "dashboard.select-ui-language" msgstr "Odaberite jezik korisničkog sučelja" -#: src/app/main/ui/settings/options.cljs:63 +#: src/app/main/ui/settings/options.cljs msgid "dashboard.select-ui-theme" msgstr "Odaberi temu" -#: src/app/main/ui/dashboard/projects.cljs:282 +#: src/app/main/ui/dashboard/grid.cljs msgid "dashboard.show-all-files" msgstr "Prikaži sve datoteke" -#: src/app/main/ui/dashboard/file_menu.cljs:96 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-delete-file" msgstr "Tvoja datoteka je uspješno izbrisana" -#: src/app/main/ui/dashboard/project_menu.cljs:59 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.success-delete-project" msgstr "Tvoj projekt je uspješno izbrisan" -#: src/app/main/ui/dashboard/file_menu.cljs:91 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-duplicate-file" msgstr "Tvoja datoteka je uspješno duplicirana" -#: src/app/main/ui/dashboard/project_menu.cljs:33 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.success-duplicate-project" msgstr "Tvoj projekt je uspješno dupliciran" -#: src/app/main/ui/dashboard/file_menu.cljs:130, src/app/main/ui/dashboard/grid.cljs:558, src/app/main/ui/dashboard/sidebar.cljs:152 +#: src/app/main/ui/dashboard/grid.cljs, src/app/main/ui/dashboard/sidebar.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-move-file" msgstr "Tvoja datoteka je uspješno premještena" -#: src/app/main/ui/dashboard/file_menu.cljs:129 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-move-files" msgstr "Tvoje datoteke su uspješno premještene" -#: src/app/main/ui/dashboard/project_menu.cljs:54 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.success-move-project" msgstr "Tvoj projekt je uspješno premješten" -#: src/app/main/ui/dashboard/team.cljs:1052 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.team-info" msgstr "Informacije tima" -#: src/app/main/ui/dashboard/team.cljs:1070 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.team-members" msgstr "Članovi tima" -#: src/app/main/ui/dashboard/team.cljs:1085 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.team-projects" msgstr "Projekti tima" -#: src/app/main/ui/settings/options.cljs:61 +#: src/app/main/ui/settings/options.cljs msgid "dashboard.theme-change" msgstr "Tema korisničkog sučelja" -#: src/app/main/ui/dashboard/search.cljs:42 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.title-search" msgstr "Pretraži rezultate" -#: src/app/main/ui/dashboard/search.cljs:50 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.type-something" msgstr "Upiši za rezultate pretraživanja" -#: src/app/main/ui/dashboard/file_menu.cljs:287, src/app/main/ui/workspace/main_menu.cljs:566 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.unpublish-shared" msgstr "Poništi objavu biblioteke" -#: src/app/main/ui/settings/options.cljs:71 +#: src/app/main/ui/settings/password.cljs, +#: src/app/main/ui/settings/options.cljs msgid "dashboard.update-settings" msgstr "Ažuriraj postavke" -#: src/app/main/ui/settings.cljs:31 +#: src/app/main/ui/settings.cljs msgid "dashboard.your-account-title" msgstr "Tvoj korisnički račun" -#: src/app/main/ui/settings/profile.cljs:70 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.your-email" msgstr "E-mail" -#: src/app/main/ui/settings/profile.cljs:62 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.your-name" msgstr "Ime" -#: src/app/main/ui/dashboard/file_menu.cljs:38, src/app/main/ui/dashboard/fonts.cljs:33, src/app/main/ui/dashboard/libraries.cljs:42, src/app/main/ui/dashboard/projects.cljs:318, src/app/main/ui/dashboard/search.cljs:30, src/app/main/ui/dashboard/sidebar.cljs:312, src/app/main/ui/dashboard/team.cljs:495, src/app/main/ui/dashboard/team.cljs:729, src/app/main/ui/dashboard/team.cljs:991, src/app/main/ui/dashboard/team.cljs:1038 +#: src/app/main/ui/dashboard/search.cljs, src/app/main/ui/dashboard/team.cljs, +#: src/app/main/ui/dashboard/libraries.cljs, +#: src/app/main/ui/dashboard/projects.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.your-penpot" msgstr "Tvoj Penpot" -#: src/app/main/ui/alert.cljs:32 +#: src/app/main/ui/alert.cljs msgid "ds.alert-ok" msgstr "U redu" -#: src/app/main/ui/alert.cljs:31, src/app/main/ui/alert.cljs:34 +#: src/app/main/ui/alert.cljs msgid "ds.alert-title" msgstr "Pažnja" -#: src/app/main/ui/confirm.cljs:83 +#: src/app/main/ui/confirm.cljs msgid "ds.component-subtitle" msgstr "Komponente za ažuriranje:" -#: src/app/main/ui/confirm.cljs:36, src/app/main/ui/workspace/plugins.cljs:246 +#: src/app/main/ui/confirm.cljs msgid "ds.confirm-cancel" msgstr "Poništi" -#: src/app/main/ui/confirm.cljs:37, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:141 +#: src/app/main/ui/confirm.cljs msgid "ds.confirm-ok" msgstr "U redu" -#: src/app/main/ui/confirm.cljs:35, src/app/main/ui/confirm.cljs:39 +#: src/app/main/ui/confirm.cljs, src/app/main/ui/confirm.cljs msgid "ds.confirm-title" msgstr "Jesi li siguran/na?" -#: src/app/main/ui/auth/login.cljs:62 +#: src/app/main/ui/auth/login.cljs msgid "errors.auth-provider-not-configured" msgstr "Pružatelj autentifikacije nije konfiguriran." -#: src/app/main/errors.cljs:104 +#, fuzzy msgid "errors.auth.unable-to-login" msgstr "Čini se da nisi autentificiran/a ili je sesija istekla." -#: src/app/main/data/workspace.cljs:1598 +#: src/app/main/data/workspace.cljs msgid "errors.clipboard-not-implemented" msgstr "Tvoj preglednik ne može izvršiti ovu operaciju" -#: src/app/main/ui/auth/verify_token.cljs:82, src/app/main/ui/settings/change_email.cljs:46 +#: src/app/main/ui/auth/verify_token.cljs, +#: src/app/main/ui/settings/change_email.cljs msgid "errors.email-already-exists" msgstr "E-mail se već koristi" -#: src/app/main/ui/auth/verify_token.cljs:87 +#: src/app/main/ui/auth/verify_token.cljs msgid "errors.email-already-validated" msgstr "E-mail je već potvrđen." -#: src/app/main/ui/settings/password.cljs:28 msgid "errors.email-as-password" msgstr "Ne možeš koristiti svoj e-mail kao lozinku" -#: src/app/main/ui/auth/recovery_request.cljs:63, src/app/main/ui/dashboard/team.cljs:578, src/app/main/ui/settings/change_email.cljs:54 +#: src/app/main/ui/auth/register.cljs, +#: src/app/main/ui/auth/recovery_request.cljs, +#: src/app/main/ui/settings/change_email.cljs, +#: src/app/main/ui/dashboard/team.cljs msgid "errors.email-has-permanent-bounces" msgstr "E-pmail «%s» ima mnogo trajnih izvješća o odbijanju." -#: src/app/main/ui/settings/change_email.cljs:35 +#: src/app/main/ui/settings/change_email.cljs msgid "errors.email-invalid-confirmation" msgstr "E-mail za potvrdu mora odgovarati" -#: src/app/main/ui/dashboard/team.cljs:170 msgid "errors.email-spam-or-permanent-bounces" msgstr "E-mail «%s» je prijavljen kao neželjena pošta ili je trajno odbijen." -#: src/app/main/data/users.cljs:709, src/app/main/ui/auth/login.cljs:65, src/app/main/ui/auth/login.cljs:116, src/app/main/ui/auth/register.cljs:69, src/app/main/ui/auth/register.cljs:237, src/app/main/ui/auth/verify_token.cljs:92, src/app/main/ui/dashboard/team.cljs:173, src/app/main/ui/onboarding/team_choice.cljs:95, src/app/main/ui/settings/access_tokens.cljs:91, src/app/main/ui/settings/feedback.cljs:52 +#: src/app/main/ui/auth/verify_token.cljs, +#: src/app/main/ui/settings/feedback.cljs, src/app/main/ui/dashboard/team.cljs msgid "errors.generic" msgstr "Dogodilo se nešto loše." -#: src/app/main/ui/components/color_input.cljs:57 +#: src/app/main/ui/components/color_input.cljs msgid "errors.invalid-color" msgstr "Pogrešna boja" -#: src/app/main/ui/static.cljs:43 +#: src/app/main/ui/auth/verify_token.cljs msgid "errors.invite-invalid" msgstr "Pogrešna pozivnica" -#: src/app/main/ui/static.cljs:44 msgid "errors.invite-invalid.info" msgstr "Ova pozivnica je možda otkazana ili je istekla." -#: src/app/main/ui/auth/login.cljs:101 +#: src/app/main/ui/auth/login.cljs msgid "errors.ldap-disabled" msgstr "Onemogućena je LDAP provjera autentičnosti." -#: src/app/main/data/workspace/media.cljs:184 +#: src/app/main/data/workspace/persistence.cljs msgid "errors.media-too-large" msgstr "Slika je prevelika za umetanje." -#: src/app/main/data/media.cljs:68, src/app/main/data/workspace/media.cljs:187 +#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs msgid "errors.media-type-mismatch" msgstr "Čini se da sadržaj slike ne odgovara ekstenziji datoteke." -#: src/app/main/data/media.cljs:65, src/app/main/data/workspace/media.cljs:172, src/app/main/data/workspace/media.cljs:175, src/app/main/data/workspace/media.cljs:178, src/app/main/data/workspace/media.cljs:181 +#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs msgid "errors.media-type-not-allowed" msgstr "Čini se da ovo nije važeća slika." -#: src/app/main/ui/dashboard/team.cljs:574 +#: src/app/main/ui/dashboard/team.cljs msgid "errors.member-is-muted" msgstr "" "Profil koji pozivaš ima isključen e-email (izvješća o neželjenoj pošti ili " "veliki broj odbijanja)." -#: src/app/main/ui/settings/password.cljs:61 +#: src/app/main/ui/settings/password.cljs msgid "errors.password-invalid-confirmation" msgstr "Lozinka za potvrdu mora odgovarati" -#: src/app/main/ui/settings/password.cljs:64 +#: src/app/main/ui/settings/password.cljs msgid "errors.password-too-short" msgstr "Lozinka mora sadržavati najmanje 8 znakova" -#: src/app/main/ui/auth/recovery_request.cljs:60, src/app/main/ui/dashboard/team.cljs:164, src/app/main/ui/dashboard/team.cljs:570, src/app/main/ui/settings/change_email.cljs:50 +#: src/app/main/ui/auth/recovery_request.cljs, +#: src/app/main/ui/settings/change_email.cljs, +#: src/app/main/ui/dashboard/team.cljs msgid "errors.profile-is-muted" msgstr "" "Tvoj profil ima isključen e-mail (izvješća o neželjenoj pošti ili veliki " "broj odbijanja)." -#: src/app/main/data/users.cljs:701, src/app/main/ui/auth/register.cljs:60 +#: src/app/main/ui/auth/register.cljs msgid "errors.registration-disabled" msgstr "Registracija je trenutno onemogućena." -#: src/app/main/ui/dashboard/sidebar.cljs:365, src/app/main/ui/dashboard/team.cljs:359 msgid "errors.team-leave.insufficient-members" msgstr "Nedovoljno članova za napuštanje tima, vjerojatno ga želiš izbrisati." -#: src/app/main/ui/dashboard/sidebar.cljs:368, src/app/main/ui/dashboard/team.cljs:362 msgid "errors.team-leave.member-does-not-exists" msgstr "Član kojeg pokušavaš dodijeliti ne postoji." -#: src/app/main/ui/dashboard/sidebar.cljs:371, src/app/main/ui/dashboard/team.cljs:365 msgid "errors.team-leave.owner-cant-leave" msgstr "Vlasnik ne može napustiti tim, moraš ponovno dodijeliti ulogu vlasnika." -#: src/app/main/data/media.cljs:71 +#: src/app/main/data/media.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, +#: src/app/main/ui/inspect/exports.cljs msgid "errors.unexpected-error" msgstr "Došlo je do neočekivane pogreške." -#: src/app/main/ui/auth/verify_token.cljs:60 +#: src/app/main/ui/auth/verify_token.cljs msgid "errors.unexpected-token" msgstr "Nepoznati token" -#: src/app/main/ui/auth/login.cljs:109, src/app/main/ui/auth/login.cljs:113 +#: src/app/main/ui/auth/login.cljs msgid "errors.wrong-credentials" msgstr "Čini se da su korisničko ime ili lozinka pogrešni." -#: src/app/main/ui/settings/password.cljs:25 +#: src/app/main/ui/settings/password.cljs msgid "errors.wrong-old-password" msgstr "Stara lozinka je netočna" -#: src/app/main/ui/settings/feedback.cljs:77 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.description" msgstr "Opis" -#: src/app/main/ui/settings/feedback.cljs:95 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.discourse-go-to" msgstr "Idi na Penpot forum" -#: src/app/main/ui/settings/feedback.cljs:89 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.discourse-subtitle1" msgstr "Sretni smo što si ovdje. Ako trebaš pomoć, pretraži prije objavljivanja." -#: src/app/main/ui/settings/feedback.cljs:88 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.discourse-title" msgstr "Penpot zajednica" -#: src/app/main/ui/settings/feedback.cljs:72 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.subject" msgstr "Tema" -#: src/app/main/ui/settings/feedback.cljs:69 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.subtitle" msgstr "" "Opiši razlog svojeg e-maila, navedi radi li se o problemu, ideji ili " "nedoumici. Član našeg tima će odgovoriti u najkraćem mogućem roku." -#: src/app/main/ui/settings/feedback.cljs:68 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.title" msgstr "E-mail" -#: src/app/main/ui/settings/feedback.cljs:105 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.twitter-go-to" msgstr "Idi na X" -#: src/app/main/ui/settings/feedback.cljs:99 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.twitter-subtitle1" msgstr "Ovdje za pomoć za tvoje tehničke upite." -#: src/app/main/ui/settings/feedback.cljs:98 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.twitter-title" msgstr "X korisnički račun za podršku" -#: src/app/main/ui/settings/password.cljs:30 +#: src/app/main/ui/settings/password.cljs msgid "generic.error" msgstr "Došlo je do pogreške" -#: src/app/main/ui/viewer/inspect/attributes/blur.cljs:26 +#: src/app/main/ui/inspect/attributes/blur.cljs msgid "inspect.attributes.blur" msgstr "Zamućenje" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:115 +#: src/app/main/ui/inspect/attributes/blur.cljs msgid "inspect.attributes.blur.value" msgstr "Vrijednost" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:112 +#: src/app/main/ui/inspect/attributes/common.cljs msgid "inspect.attributes.color.hex" msgstr "HEX" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:114 +#: src/app/main/ui/inspect/attributes/common.cljs msgid "inspect.attributes.color.hsla" msgstr "HSLA" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:113 +#: src/app/main/ui/inspect/attributes/common.cljs msgid "inspect.attributes.color.rgba" msgstr "RGBA" -#: src/app/main/ui/viewer/inspect/attributes/fill.cljs:57 +#: src/app/main/ui/inspect/attributes/fill.cljs msgid "inspect.attributes.fill" msgstr "Ispuna" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:99, src/app/main/ui/viewer/inspect/attributes/image.cljs:51 +#: src/app/main/ui/inspect/attributes/image.cljs msgid "inspect.attributes.image.download" msgstr "Preuzmi izvornu sliku" -#: src/app/main/ui/viewer/inspect/attributes/image.cljs:39 +#: src/app/main/ui/inspect/attributes/image.cljs msgid "inspect.attributes.image.height" msgstr "Visina" -#: src/app/main/ui/viewer/inspect/attributes/image.cljs:32 +#: src/app/main/ui/inspect/attributes/image.cljs msgid "inspect.attributes.image.width" msgstr "Širina" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout" msgstr "Raspored" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.height" msgstr "Visina" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.left" msgstr "Lijevo" -#: src/app/main/ui/inspect/attributes/layout.cljs, src/app/main/ui/inspect/attributes/layout.cljs -#, unused +#: src/app/main/ui/inspect/attributes/layout.cljs, +#: src/app/main/ui/inspect/attributes/layout.cljs msgid "inspect.attributes.layout.radius" msgstr "Radius" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.rotation" msgstr "Rotacija" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.top" msgstr "Vrh" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.width" msgstr "Širina" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:57 +#: src/app/main/ui/inspect/attributes/shadow.cljs msgid "inspect.attributes.shadow" msgstr "Sjena" -#: src/app/main/ui/viewer/inspect/attributes/stroke.cljs:52 +#: src/app/main/ui/inspect/attributes/stroke.cljs msgid "inspect.attributes.stroke" msgstr "Potez" -#, permanent, unused msgid "inspect.attributes.stroke.alignment.center" msgstr "Sredina" -#, permanent, unused msgid "inspect.attributes.stroke.alignment.inner" msgstr "Unutra" -#, permanent, unused msgid "inspect.attributes.stroke.alignment.outer" msgstr "Vani" -#, unused msgid "inspect.attributes.stroke.style.dotted" msgstr "Točkasto" -#, unused msgid "inspect.attributes.stroke.style.mixed" msgstr "Miksano" -#, unused msgid "inspect.attributes.stroke.style.none" msgstr "Nikakav" -#, unused msgid "inspect.attributes.stroke.style.solid" msgstr "Solidan" #: src/app/main/ui/inspect/attributes/stroke.cljs -#, unused msgid "inspect.attributes.stroke.width" msgstr "Širina" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:81, src/app/main/ui/viewer/inspect/attributes/text.cljs:194 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography" msgstr "Tipografija" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:89 +#: src/app/main/ui/inspect/attributes/text.cljs +#, fuzzy msgid "inspect.attributes.typography.font-family" msgstr "Font" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:107 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.font-size" msgstr "Veličina fonta" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:98 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.font-style" msgstr "Stil fonta" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:134 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.letter-spacing" msgstr "Razmak između slova" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:125 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.line-height" msgstr "Visina linije" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:143 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.text-decoration" msgstr "Dekoracija teksta" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:145 +#, fuzzy msgid "inspect.attributes.typography.text-decoration.none" msgstr "Nikakav" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:146 msgid "inspect.attributes.typography.text-decoration.strikethrough" msgstr "Precrtano" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:147 msgid "inspect.attributes.typography.text-decoration.underline" msgstr "Podcrtano" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:156 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.text-transform" msgstr "Transformiraj tekst" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:158 msgid "inspect.attributes.typography.text-transform.lowercase" msgstr "Mala slova" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:159 +#, fuzzy msgid "inspect.attributes.typography.text-transform.none" msgstr "Nikakav" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:160 msgid "inspect.attributes.typography.text-transform.titlecase" msgstr "Velika i mala slova" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:161 msgid "inspect.attributes.typography.text-transform.uppercase" msgstr "Velika slova" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:125 +#: src/app/main/ui/inspect/right_sidebar.cljs msgid "inspect.tabs.code" msgstr "Kod" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:98 msgid "inspect.tabs.code.selected.circle" msgstr "Krug" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:99 msgid "inspect.tabs.code.selected.component" msgstr "Komponenta" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:100 msgid "inspect.tabs.code.selected.curve" msgstr "Krivulja" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:101 msgid "inspect.tabs.code.selected.frame" msgstr "Ploča" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:102 msgid "inspect.tabs.code.selected.group" msgstr "Grupa" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:103 msgid "inspect.tabs.code.selected.image" msgstr "Slika" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:104 msgid "inspect.tabs.code.selected.mask" msgstr "Maska" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:93 +#: src/app/main/ui/inspect/right_sidebar.cljs msgid "inspect.tabs.code.selected.multiple" msgstr "%s Označeno" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:105 +#, fuzzy msgid "inspect.tabs.code.selected.path" msgstr "Path" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:106 msgid "inspect.tabs.code.selected.rect" msgstr "Pravokutnik" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:107 msgid "inspect.tabs.code.selected.svg-raw" msgstr "SVG" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:108 msgid "inspect.tabs.code.selected.text" msgstr "Tekst" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:115 +#: src/app/main/ui/inspect/right_sidebar.cljs msgid "inspect.tabs.info" msgstr "Informacija" -#: src/app/main/ui/workspace/main_menu.cljs:158 +#: src/app/main/ui/workspace/header.cljs msgid "label.shortcuts" msgstr "Prečaci" -#: src/app/main/ui/dashboard/import.cljs:527 msgid "labels.accept" msgstr "Prihvati" -#: src/app/main/ui/dashboard/fonts.cljs:175 +#, fuzzy msgid "labels.add-custom-font" msgstr "Dodajte custom font" -#: src/app/main/ui/dashboard/team.cljs:120, src/app/main/ui/dashboard/team.cljs:276, src/app/main/ui/dashboard/team.cljs:519, src/app/main/ui/dashboard/team.cljs:549, src/app/main/ui/onboarding/team_choice.cljs:67 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs msgid "labels.admin" msgstr "Administrator" #: src/app/main/ui/workspace/comments.cljs -#, unused msgid "labels.all" msgstr "Sve" -#: src/app/main/ui/auth.cljs:37 msgid "labels.and" msgstr "i" -#: src/app/main/ui/onboarding/team_choice.cljs:162 msgid "labels.back" msgstr "Povratak" -#: src/app/main/ui/static.cljs:59 +#: src/app/main/ui/static.cljs msgid "labels.bad-gateway.desc-message" msgstr "" "Čini se da moraš malo pričekati i pokušati ponovno; vršimo mala održavanja " "naših servera." -#: src/app/main/ui/static.cljs:58 +#: src/app/main/ui/static.cljs msgid "labels.bad-gateway.main-message" msgstr "Loš Gateway" -#: src/app/main/data/common.cljs:112, src/app/main/ui/dashboard/change_owner.cljs:69, src/app/main/ui/dashboard/import.cljs:514, src/app/main/ui/dashboard/team.cljs:868, src/app/main/ui/delete_shared.cljs:35, src/app/main/ui/export.cljs:164, src/app/main/ui/export.cljs:460, src/app/main/ui/settings/access_tokens.cljs:188, src/app/main/ui/viewer/share_link.cljs:203, src/app/main/ui/workspace/sidebar/assets/groups.cljs:149 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.cancel" msgstr "Odbaci" -#: src/app/main/ui/dashboard/projects.cljs:93, src/app/main/ui/export.cljs:478, src/app/main/ui/settings/access_tokens.cljs:183, src/app/main/ui/viewer/login.cljs:77, src/app/main/ui/viewer/share_link.cljs:174, src/app/main/ui/workspace/libraries.cljs:522 msgid "labels.close" msgstr "Zatvori" -#: src/app/main/ui/dashboard/comments.cljs:104, src/app/main/ui/viewer/comments.cljs:70, src/app/main/ui/workspace/comments.cljs:126 +#: src/app/main/ui/dashboard/comments.cljs msgid "labels.comments" msgstr "Komentari" -#: src/app/main/ui/dashboard/sidebar.cljs:985, src/app/main/ui/workspace/main_menu.cljs:110 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.community" msgstr "Zajenica" -#: src/app/main/ui/settings/password.cljs:103 +#: src/app/main/ui/settings/password.cljs msgid "labels.confirm-password" msgstr "Potvrdi lozinku" -#: src/app/main/ui/dashboard/import.cljs:520, src/app/main/ui/export.cljs:465, src/app/main/ui/onboarding/newsletter.cljs:101 msgid "labels.continue" msgstr "Nastavi" -#, unused msgid "labels.continue-with" msgstr "Nastavi sa" -#: src/app/main/ui/viewer/login.cljs:75 msgid "labels.continue-with-penpot" msgstr "Možeš nastaviti s Penpot računom" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:157, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:190 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "labels.create" msgstr "Kreiraj" -#: src/app/main/ui/dashboard/team_form.cljs:101, src/app/main/ui/dashboard/team_form.cljs:121 +#: src/app/main/ui/dashboard/team_form.cljs, +#: src/app/main/ui/dashboard/team_form.cljs msgid "labels.create-team" msgstr "Kreiraj novi tim" -#: src/app/main/ui/dashboard/team_form.cljs:113 +#: src/app/main/ui/dashboard/team_form.cljs msgid "labels.create-team.placeholder" msgstr "Unesi ime novog tima" -#, unused msgid "labels.custom-fonts" msgstr "Custom fontovi" -#: src/app/main/ui/settings/sidebar.cljs:73 +#: src/app/main/ui/settings/sidebar.cljs msgid "labels.dashboard" msgstr "Nadzorna ploča" -#: src/app/main/ui/dashboard/file_menu.cljs:306, src/app/main/ui/dashboard/fonts.cljs:255, src/app/main/ui/dashboard/fonts.cljs:332, src/app/main/ui/dashboard/fonts.cljs:346, src/app/main/ui/dashboard/project_menu.cljs:115, src/app/main/ui/dashboard/team.cljs:904, src/app/main/ui/settings/access_tokens.cljs:209, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:209 +#: src/app/main/ui/dashboard/project_menu.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.delete" msgstr "Izbriši" -#: src/app/main/ui/comments.cljs:357 +#: src/app/main/ui/comments.cljs msgid "labels.delete-comment" msgstr "Izbriši komentar" -#: src/app/main/ui/comments.cljs:354 +#: src/app/main/ui/comments.cljs msgid "labels.delete-comment-thread" msgstr "Izbriši thread" -#: src/app/main/ui/dashboard/team.cljs:648 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.delete-invitation" msgstr "Izbriši pozivnicu" -#: src/app/main/ui/dashboard/file_menu.cljs:262 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.delete-multi-files" msgstr "Izbriši %s datoteka" -#: src/app/main/ui/dashboard/file_menu.cljs:28, src/app/main/ui/dashboard/files.cljs:72, src/app/main/ui/dashboard/files.cljs:156, src/app/main/ui/dashboard/projects.cljs:220, src/app/main/ui/dashboard/projects.cljs:224, src/app/main/ui/dashboard/sidebar.cljs:791 +#: src/app/main/ui/dashboard/projects.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs, +#: src/app/main/ui/dashboard/files.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.drafts" msgstr "Nacrti" -#: src/app/main/ui/comments.cljs:350, src/app/main/ui/dashboard/fonts.cljs:252, src/app/main/ui/dashboard/team.cljs:902, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:205 +#: src/app/main/ui/comments.cljs msgid "labels.edit" msgstr "Uredi" -#, unused msgid "labels.edit-file" msgstr "Uredi datoteku" -#: src/app/main/ui/dashboard/team.cljs:118, src/app/main/ui/dashboard/team.cljs:279, src/app/main/ui/dashboard/team.cljs:520, src/app/main/ui/dashboard/team.cljs:553, src/app/main/ui/onboarding/team_choice.cljs:66 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs msgid "labels.editor" msgstr "Urednik" -#: src/app/main/ui/dashboard/team.cljs:661 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.expired-invitation" msgstr "Isteklo" -#: src/app/main/ui/export.cljs:173 msgid "labels.export" msgstr "Izvezi" -#: src/app/main/ui/settings/feedback.cljs:51 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.feedback-disabled" msgstr "Povratne informacije onemogućene" -#: src/app/main/ui/settings/feedback.cljs:42 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.feedback-sent" msgstr "Povratne informacije poslane" -#: src/app/main/ui/dashboard/fonts.cljs:412 +#, fuzzy msgid "labels.font-family" msgstr "Font" -#, unused msgid "labels.font-providers" msgstr "Pružatelji fontova" -#: src/app/main/ui/dashboard/fonts.cljs:413 msgid "labels.font-variants" msgstr "Stilovi" -#: src/app/main/ui/dashboard/fonts.cljs:52, src/app/main/ui/dashboard/sidebar.cljs:811 msgid "labels.fonts" msgstr "Fontovi" -#: src/app/main/ui/dashboard/sidebar.cljs:1015, src/app/main/ui/workspace/main_menu.cljs:142 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.github-repo" msgstr "Github repozitorij" -#: src/app/main/ui/dashboard/sidebar.cljs:1032, src/app/main/ui/settings/sidebar.cljs:113, src/app/main/ui/workspace/main_menu.cljs:171 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/settings/sidebar.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.give-feedback" msgstr "Daj povratnu informaciju" -#: src/app/main/ui/auth/recovery_request.cljs:110, src/app/main/ui/auth/register.cljs:285, src/app/main/ui/viewer/login.cljs:117 msgid "labels.go-back" msgstr "Povratak" -#: src/app/main/ui/dashboard/sidebar.cljs:978, src/app/main/ui/workspace/main_menu.cljs:102 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.help-center" msgstr "Centar za pomoć" -#: src/app/main/ui/viewer/comments.cljs:103, src/app/main/ui/workspace/comments.cljs:67 +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs msgid "labels.hide-resolved-comments" msgstr "Sakrij riješene komentare" -#: src/app/main/ui/dashboard/fonts.cljs:410 msgid "labels.installed-fonts" msgstr "Instalirani fontovi" -#: src/app/main/ui/static.cljs:144 +#: src/app/main/ui/static.cljs msgid "labels.internal-error.desc-message" msgstr "" "Nešto loše se dogodilo. Molimo pokušaj ponovno i ako problem potraje, " "kontaktiraj podršku." -#: src/app/main/ui/static.cljs:143 +#: src/app/main/ui/static.cljs msgid "labels.internal-error.main-message" msgstr "Interna pogreška" -#: src/app/main/ui/dashboard/sidebar.cljs:516, src/app/main/ui/dashboard/team.cljs:89, src/app/main/ui/dashboard/team.cljs:97, src/app/main/ui/dashboard/team.cljs:708 +#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.invitations" msgstr "Pozivnice" -#: src/app/main/ui/settings/options.cljs:51 +#: src/app/main/ui/settings/options.cljs msgid "labels.language" msgstr "Jezik" -#: src/app/main/ui/dashboard/sidebar.cljs:1008, src/app/main/ui/workspace/main_menu.cljs:134 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.libraries-and-templates" msgstr "Biblioteke i predlošci" -#: src/app/main/ui/viewer/header.cljs:203 msgid "labels.log-or-sign" msgstr "Prijava ili registracija" -#: src/app/main/ui/dashboard/sidebar.cljs:1040 +#: src/app/main/ui/settings.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.logout" msgstr "Odjava" -#: src/app/main/ui/dashboard/team.cljs:468 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.member" msgstr "Član" -#: src/app/main/ui/dashboard/sidebar.cljs:510, src/app/main/ui/dashboard/team.cljs:87, src/app/main/ui/dashboard/team.cljs:95 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.members" msgstr "Članovi" -#: src/app/main/ui/settings/password.cljs:96 +#: src/app/main/ui/settings/password.cljs msgid "labels.new-password" msgstr "Nova lozinka" -#: src/app/main/ui/dashboard/comments.cljs:128, src/app/main/ui/workspace/comments.cljs:161 +#: src/app/main/ui/workspace/comments.cljs, +#: src/app/main/ui/dashboard/comments.cljs msgid "labels.no-comments-available" msgstr "Nemaš obavijesti o komentarima na čekanju" -#: src/app/main/ui/dashboard/team.cljs:694 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.no-invitations" msgstr "Nema pozivnica." -#: src/app/main/ui/dashboard/team.cljs:696 -#, markdown +#: src/app/main/ui/dashboard/team.cljs msgid "labels.no-invitations-hint" msgstr "Pritisni gumb \"Pozovi u tim\" da pozoveš više članova u ovaj tim." -#: src/app/main/ui/static.cljs:50 +#: src/app/main/ui/static.cljs msgid "labels.not-found.desc-message" msgstr "Ova stranica možda ne postoji ili nemaš dopuštenja za pristup." -#: src/app/main/ui/static.cljs:49 +#: src/app/main/ui/static.cljs msgid "labels.not-found.main-message" msgstr "Ups!" -#: src/app/main/ui/dashboard/projects.cljs:239, src/app/main/ui/dashboard/team.cljs:1095 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.num-of-files" msgid_plural "labels.num-of-files" msgstr[0] "1 datoteka" msgstr[1] "%s datoteka" msgstr[2] "%s datoteka" -#: src/app/main/ui/viewer/thumbnails.cljs:80 msgid "labels.num-of-frames" msgid_plural "labels.num-of-frames" msgstr[0] "1 ploča" msgstr[1] "%s ploča" msgstr[2] "%s ploča" -#: src/app/main/ui/dashboard/team.cljs:1090 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.num-of-projects" msgid_plural "labels.num-of-projects" msgstr[0] "1 projekt" msgstr[1] "%s projekata" msgstr[2] "%s projekata" -#: src/app/main/ui/settings/password.cljs:89 +#: src/app/main/ui/settings/password.cljs msgid "labels.old-password" msgstr "Stara lozinka" #: src/app/main/ui/workspace/comments.cljs -#, unused msgid "labels.only-yours" msgstr "Samo tvoj" -#, unused msgid "labels.or" msgstr "ili" -#: src/app/main/ui/dashboard/team.cljs:286, src/app/main/ui/dashboard/team.cljs:518, src/app/main/ui/dashboard/team.cljs:1076 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs msgid "labels.owner" msgstr "Vlasnik" -#: src/app/main/ui/settings/sidebar.cljs:87 +#: src/app/main/ui/settings/sidebar.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.password" msgstr "Lozinka" -#: src/app/main/ui/dashboard/team.cljs:662 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.pending-invitation" msgstr "U tijeku" -#: src/app/main/ui/settings/profile.cljs:118, src/app/main/ui/settings/sidebar.cljs:82 +#: src/app/main/ui/settings/sidebar.cljs msgid "labels.profile" msgstr "Profil" -#: src/app/main/ui/dashboard/sidebar.cljs:784 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.projects" msgstr "Projekti" -#: src/app/main/ui/dashboard/sidebar.cljs:998, src/app/main/ui/settings/sidebar.cljs:106, src/app/main/ui/workspace/main_menu.cljs:126 +#: src/app/main/ui/settings/sidebar.cljs +#, fuzzy msgid "labels.release-notes" msgstr "Release notes" -#: src/app/main/ui/workspace/libraries.cljs, src/app/main/ui/dashboard/team.cljs -#, unused +#: src/app/main/ui/workspace/libraries.cljs, +#: src/app/main/ui/dashboard/team.cljs msgid "labels.remove" msgstr "Ukloni" -#: src/app/main/ui/dashboard/team.cljs:316 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.remove-member" msgstr "Ukloni člana" -#: src/app/main/ui/dashboard/file_menu.cljs:271, src/app/main/ui/dashboard/project_menu.cljs:85, src/app/main/ui/dashboard/sidebar.cljs:539, src/app/main/ui/workspace/sidebar/assets/groups.cljs:157 +#: src/app/main/ui/dashboard/sidebar.cljs, +#: src/app/main/ui/dashboard/project_menu.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.rename" msgstr "Preimenuj" -#: src/app/main/ui/dashboard/team_form.cljs:99 +#: src/app/main/ui/dashboard/team_form.cljs msgid "labels.rename-team" msgstr "Preimenuj tim" -#: src/app/main/ui/dashboard/team.cljs:645 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.resend-invitation" msgstr "Ponovno pošalji pozivnicu" -#: src/app/main/ui/static.cljs:61, src/app/main/ui/static.cljs:70, src/app/main/ui/static.cljs:148 +#: src/app/main/ui/static.cljs, src/app/main/ui/static.cljs msgid "labels.retry" msgstr "Pokušaj ponovo" -#: src/app/main/ui/dashboard/team.cljs:469, src/app/main/ui/dashboard/team.cljs:709 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.role" msgstr "Uloga" -#: src/app/main/ui/dashboard/fonts.cljs:380, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:191 msgid "labels.save" msgstr "Spremi" -#: src/app/main/ui/dashboard/fonts.cljs:415 msgid "labels.search-font" msgstr "Pretraži font" -#: src/app/main/ui/settings/feedback.cljs:82 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.send" msgstr "Pošalji" -#: src/app/main/ui/settings/feedback.cljs:82 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.sending" msgstr "Slanje…" -#: src/app/main/ui/static.cljs:68 +#: src/app/main/ui/static.cljs msgid "labels.service-unavailable.desc-message" msgstr "U programiranom smo održavanju naših sustava." -#: src/app/main/ui/static.cljs:67 +#: src/app/main/ui/static.cljs msgid "labels.service-unavailable.main-message" msgstr "Usluga je nedostupna" -#: src/app/main/ui/dashboard/sidebar.cljs:530, src/app/main/ui/dashboard/team.cljs:88, src/app/main/ui/dashboard/team.cljs:102, src/app/main/ui/settings/options.cljs:84, src/app/main/ui/settings/sidebar.cljs:93 +#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.settings" msgstr "Postavke" -#, unused msgid "labels.share-prototype" msgstr "Podijeli prototip" -#: src/app/main/ui/dashboard/sidebar.cljs:800 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.shared-libraries" msgstr "Bibiloteke" -#: src/app/main/ui/viewer/comments.cljs:82, src/app/main/ui/workspace/comments.cljs:55, src/app/main/ui/workspace/comments.cljs:135 +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs msgid "labels.show-all-comments" msgstr "Prikaži sve komentare" -#: src/app/main/ui/viewer/comments.cljs:115 msgid "labels.show-comments-list" msgstr "Prikaži listu komentara" -#: src/app/main/ui/viewer/comments.cljs:91, src/app/main/ui/workspace/comments.cljs:61, src/app/main/ui/workspace/comments.cljs:136 +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs msgid "labels.show-your-comments" msgstr "Prikaži samo tvoje komentare" -#: src/app/main/ui/dashboard/team.cljs:710 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.status" msgstr "Status" -#: src/app/main/ui/dashboard/sidebar.cljs:992, src/app/main/ui/workspace/main_menu.cljs:118 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.tutorials" msgstr "Upute" -#: src/app/main/ui/settings/profile.cljs:103 +#: src/app/main/ui/settings/profile.cljs msgid "labels.update" msgstr "Ažuriraj" -#: src/app/main/ui/dashboard/team_form.cljs:120 +#: src/app/main/ui/dashboard/team_form.cljs msgid "labels.update-team" msgstr "Ažuriraj tim" -#: src/app/main/ui/dashboard/fonts.cljs:241 msgid "labels.upload" msgstr "Prenesi" -#: src/app/main/ui/dashboard/fonts.cljs:169 msgid "labels.upload-custom-fonts" msgstr "Prenesi custom fontove" -#: src/app/main/ui/dashboard/fonts.cljs:240 msgid "labels.uploading" msgstr "Prijenos…" -#: src/app/main/ui/dashboard/team.cljs:123, src/app/main/ui/dashboard/team.cljs:282, src/app/main/ui/dashboard/team.cljs:521 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.viewer" msgstr "Promatrač" -#: src/app/main/ui/comments.cljs:194 +#: src/app/main/ui/comments.cljs msgid "labels.write-new-comment" msgstr "Napiši novi komentar" -#: src/app/main/ui/dashboard/team.cljs:237 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.you" msgstr "(ti)" -#: src/app/main/ui/dashboard/sidebar.cljs:968 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.your-account" msgstr "Tvoj korisnički račun" -#: src/app/main/data/media.cljs:49, src/app/main/data/workspace/media.cljs:223, src/app/main/data/workspace/media.cljs:453 +#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs msgid "media.loading" msgstr "Učitavanje slike…" -#: src/app/main/data/common.cljs:113 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.add-shared-confirm.accept" msgstr "Dodaj kao zajedničku biblioteku" -#: src/app/main/data/common.cljs:111 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.add-shared-confirm.hint" msgstr "" "Nakon dodavanja kao zajedničku biblioteku, stavke ove biblioteke datoteka " "bit će dostupni za korištenje među ostalim tvojim datotekama." -#: src/app/main/data/common.cljs:110 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.add-shared-confirm.message" msgstr "Dodajte “%s” kao zajedničku biblioteku" -#: src/app/main/ui/workspace/nudge.cljs:60 +#: src/app/main/ui/workspace/nudge.cljs +#, fuzzy msgid "modals.big-nudge" msgstr "Big nudge" -#: src/app/main/ui/settings/change_email.cljs:127 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.confirm-email" msgstr "Potvrdite novi e-mail" -#: src/app/main/ui/settings/change_email.cljs:114 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.info" msgstr "" "Poslat ćemo e-mail na tvoj trenutni e-mail \"%s\" kako bismo potvrdili tvoj " "identitet." -#: src/app/main/ui/settings/change_email.cljs:119 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.new-email" msgstr "Novi e-mail" -#: src/app/main/ui/settings/change_email.cljs:136 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.submit" msgstr "Promijeni e-mail" -#: src/app/main/ui/settings/change_email.cljs:107 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.title" msgstr "Promijeni svoj e-mail" -#: src/app/main/ui/settings/delete_account.cljs:59 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.cancel" msgstr "Otkaži i zadrži moj račun" -#: src/app/main/ui/settings/delete_account.cljs:64 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.confirm" msgstr "Da, obriši moj račun" -#: src/app/main/ui/settings/delete_account.cljs:53 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.info" msgstr "Uklanjanjem računa izgubit ćeš sve svoje trenutne projekte i arhive." -#: src/app/main/ui/settings/delete_account.cljs:46 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.title" msgstr "Jeste li siguran/na da želiš izbrisati svoj račun?" -#: src/app/main/ui/comments.cljs:298 +#: src/app/main/ui/comments.cljs msgid "modals.delete-comment-thread.accept" msgstr "Obriši razgovor" -#: src/app/main/ui/comments.cljs:297 +#: src/app/main/ui/comments.cljs msgid "modals.delete-comment-thread.message" msgstr "" "Jesi li siguran/na da želiš izbrisati ovaj razgovor? Svi komentari u ovoj " "temi biti će izbrisani." -#: src/app/main/ui/comments.cljs:296 +#: src/app/main/ui/comments.cljs msgid "modals.delete-comment-thread.title" msgstr "Izbriši razgovor" -#: src/app/main/ui/dashboard/file_menu.cljs:123 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-confirm.accept" msgstr "Izbriši datoteku" -#: src/app/main/ui/dashboard/file_menu.cljs:122 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-confirm.message" msgstr "Jesi li siguran/na da želiš izbrisati ovu datoteku?" -#: src/app/main/ui/dashboard/file_menu.cljs:121 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-confirm.title" msgstr "Brisanje datoteke" -#: src/app/main/ui/dashboard/file_menu.cljs:117 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-multi-confirm.accept" msgstr "Izbriši datoteke" -#: src/app/main/ui/dashboard/file_menu.cljs:116 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-multi-confirm.message" msgstr "Jesi li siguran/na da želiš izbrisati %s datoteke?" -#: src/app/main/ui/dashboard/file_menu.cljs:115 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-multi-confirm.title" msgstr "Brisanje %s datoteka" -#: src/app/main/ui/dashboard/fonts.cljs:345 msgid "modals.delete-font-variant.message" msgstr "" "Jesi li siguran/na da želiš izbrisati ovaj stil fonta? Neće se učitati ako " "se koristi u datoteci." -#: src/app/main/ui/dashboard/fonts.cljs:344 msgid "modals.delete-font-variant.title" msgstr "Brisanje fonta" -#: src/app/main/ui/dashboard/fonts.cljs:331 msgid "modals.delete-font.message" msgstr "" "Jesi li siguran/na da želiš izbrisati ovaj font? Neće se učitati ako se " "koristi u datoteci." -#: src/app/main/ui/dashboard/fonts.cljs:330 msgid "modals.delete-font.title" msgstr "Brisanje fonta" -#: src/app/main/ui/workspace/context_menu.cljs:522, src/app/main/ui/workspace/sidebar/sitemap.cljs:45 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs msgid "modals.delete-page.body" msgstr "Jesi li siguran/na da želiš izbrisati ovu stranicu?" -#: src/app/main/ui/workspace/context_menu.cljs:521, src/app/main/ui/workspace/sidebar/sitemap.cljs:44 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs msgid "modals.delete-page.title" msgstr "Brisanje stranice" -#: src/app/main/ui/dashboard/project_menu.cljs:69 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "modals.delete-project-confirm.accept" msgstr "Brisanje projekta" -#: src/app/main/ui/dashboard/project_menu.cljs:68 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "modals.delete-project-confirm.message" msgstr "Jesi li siguran/na da želiš izbrisati ovaj projekt?" -#: src/app/main/ui/dashboard/project_menu.cljs:67 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "modals.delete-project-confirm.title" msgstr "Brisanje projekta" -#: src/app/main/ui/delete_shared.cljs:51 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.accept" msgid_plural "modals.delete-shared-confirm.accept" msgstr[0] "Izbriši datoteku" msgstr[1] "Izbriši datoteke" msgstr[2] "Izbriši datoteke" -#: src/app/main/ui/delete_shared.cljs:46 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.message" msgid_plural "modals.delete-shared-confirm.message" msgstr[0] "Jesi li siguran/na da želiš izbrisati ovu datoteku?" msgstr[1] "Jesi li siguran/na da želiš izbrisati ove datoteke?" msgstr[2] "Jesi li siguran/na da želiš izbrisati ove datoteke?" -#: src/app/main/ui/delete_shared.cljs:41 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.title" msgid_plural "modals.delete-shared-confirm.title" msgstr[0] "Brisanje datoteke" msgstr[1] "Brisanje datoteka" msgstr[2] "Brisanje datoteka" -#: src/app/main/ui/dashboard/sidebar.cljs:435 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.delete-team-confirm.accept" msgstr "Brisanje tima" -#: src/app/main/ui/dashboard/sidebar.cljs:434 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.delete-team-confirm.message" msgstr "" "Jesi li siguran/na da želiš izbrisati ovaj tim? Svi projekti i datoteke " "povezane s timom biti će trajno izbrisane." -#: src/app/main/ui/dashboard/sidebar.cljs:433 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.delete-team-confirm.title" msgstr "Brisanje tima" -#: src/app/main/ui/dashboard/team.cljs:427 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.delete-team-member-confirm.accept" msgstr "Brisanje člana" -#: src/app/main/ui/dashboard/team.cljs:426 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.delete-team-member-confirm.message" msgstr "Jesi li siguran/na da želiš izbrisati ovog člana iz tima?" -#: src/app/main/ui/dashboard/team.cljs:425 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.delete-team-member-confirm.title" msgstr "Brisanje člana tima" -#: src/app/main/ui/dashboard/team.cljs:218 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.invite-member-confirm.accept" msgstr "Pošalji pozivnicu" -#: src/app/main/ui/dashboard/team.cljs:213, src/app/main/ui/onboarding/team_choice.cljs:156 msgid "modals.invite-member.emails" msgstr "E-mail, odvojeno zarezom" -#: src/app/main/ui/dashboard/team.cljs:190 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.invite-team-member.title" msgstr "Pozovi članove u tim" -#: src/app/main/ui/dashboard/sidebar.cljs:423, src/app/main/ui/dashboard/team.cljs:393 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-close-confirm.hint" msgstr "" "Budući da si jedini član ovog tima, tim će biti izbrisan zajedno sa svojim " "projektima i datotekama." -#: src/app/main/ui/dashboard/sidebar.cljs:422, src/app/main/ui/dashboard/team.cljs:392 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-close-confirm.message" msgstr "Jesi li siguran/na da želiš napustiti tim %s?" -#: src/app/main/ui/dashboard/change_owner.cljs:55 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-reassign.hint1" msgstr "" "Ti si vlasnik ovog tima. Prije odlaska odaberi drugog člana kojeg želiš " "promovirati u vlasnika." -#: src/app/main/ui/dashboard/change_owner.cljs:78 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-reassign.promote-and-leave" msgstr "Promoviraj i napusti" -#: src/app/main/ui/dashboard/change_owner.cljs:34 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-reassign.select-member-to-promote" msgstr "Odaberi člana za promociju" -#: src/app/main/ui/dashboard/change_owner.cljs:49 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-reassign.title" msgstr "Prije nego odeš" -#: src/app/main/ui/dashboard/sidebar.cljs:402, src/app/main/ui/dashboard/sidebar.cljs:424, src/app/main/ui/dashboard/team.cljs:394, src/app/main/ui/dashboard/team.cljs:416 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-confirm.accept" msgstr "Napusti tim" -#: src/app/main/ui/dashboard/sidebar.cljs:401, src/app/main/ui/dashboard/team.cljs:415 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-confirm.message" msgstr "Jesi li siguran/na da želiš napustiti ovaj tim?" -#: src/app/main/ui/dashboard/sidebar.cljs:400, src/app/main/ui/dashboard/sidebar.cljs:421, src/app/main/ui/dashboard/team.cljs:391, src/app/main/ui/dashboard/team.cljs:414 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-confirm.title" msgstr "Napuštanje tima" -#: src/app/main/ui/workspace/main_menu.cljs:266, src/app/main/ui/workspace/nudge.cljs:47 +#: src/app/main/ui/workspace/nudge.cljs +#, fuzzy msgid "modals.nudge-title" msgstr "Nudge amount" -#: src/app/main/ui/dashboard/team.cljs:340 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.accept" msgstr "Prenesi vlasništvo" -#: src/app/main/ui/dashboard/team.cljs:339 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.hint" msgstr "" "Ako preneseš vlasništvo, promijenit ćeš svoju ulogu u Administrator, čime " "ćeš izgubiti neka dopuštenja za ovaj tim. " -#: src/app/main/ui/dashboard/team.cljs:338 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.message" msgstr "" "Ti si trenutni vlasnik ovog tima. Jesi li siguran/na da %s želiš postaviti " "za novog vlasnika tima?" -#: src/app/main/ui/dashboard/team.cljs:337 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.title" msgstr "Novi vlasnik tima" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.remove-shared-confirm.accept" msgstr "Ukloni kao zajedničku biblioteku" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs +#, fuzzy msgid "modals.remove-shared-confirm.hint" msgstr "" "Nakon uklanjanja kao zajedničke biblioteke, biblioteka datoteka ove " "datoteke više neće biti dostupna za korištenje među tvojim ostalim " "datotekama." -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.remove-shared-confirm.message" msgstr "Ukloni “%s” kao zajedničku biblioteku" -#: src/app/main/ui/workspace/nudge.cljs:53 +#: src/app/main/ui/workspace/nudge.cljs msgid "modals.small-nudge" msgstr "Mali pomak" -#: src/app/main/ui/delete_shared.cljs:52 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.unpublish-shared-confirm.accept" msgstr "Poništi objavu" -#: src/app/main/ui/delete_shared.cljs:47 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.unpublish-shared-confirm.message" msgid_plural "modals.unpublish-shared-confirm.message" msgstr[0] "Jesi li siguran/na da želiš poništiti objavu ove biblioteke?" msgstr[1] "Jesi li siguran/na da želiš poništiti objavu ovih biblioteka?" msgstr[2] "Jesi li siguran/na da želiš poništiti objavu ovih biblioteka?" -#: src/app/main/ui/delete_shared.cljs:42 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.unpublish-shared-confirm.title" msgid_plural "modals.unpublish-shared-confirm.title" msgstr[0] "Poništi objavu biblioteke" msgstr[1] "Poništi objavu biblioteka" msgstr[2] "Poništi objavu biblioteka" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component-in-bulk.hint" msgstr "" "Upravo ćeš ažurirati komponente u zajedničkoj biblioteci. To može utjecati " "na druge datoteke koje ga koriste." -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component-in-bulk.message" msgstr "Ažuriraj komponente u zajedničkoj biblioteci" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:380 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.accept" msgstr "Ažuriraj" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:379 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.cancel" msgstr "Poništi" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:378 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.hint" msgstr "" "Upravo ćeš ažurirati komponentu u zajedničkoj biblioteci. To može utjecati " "na druge datoteke koje ga koriste." -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:377 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.message" msgstr "Ažuriraj komponentu u zajedničkoj biblioteci" -#: src/app/main/ui/dashboard/team.cljs:154, src/app/main/ui/dashboard/team.cljs:595 +#: src/app/main/ui/dashboard/team.cljs msgid "notifications.invitation-email-sent" msgstr "Pozivnica je uspješno poslana" -#: src/app/main/ui/settings/delete_account.cljs:24 +#: src/app/main/ui/settings/delete_account.cljs msgid "notifications.profile-deletion-not-allowed" msgstr "" "Ne možeš izbrisati svoj profil. Ponovno dodijeli svoje timove prije " "nastavka." -#: src/app/main/ui/settings/options.cljs:29, src/app/main/ui/settings/profile.cljs:35 +#: src/app/main/ui/settings/profile.cljs, src/app/main/ui/settings/options.cljs msgid "notifications.profile-saved" msgstr "Profil je uspješno spremljen!" -#: src/app/main/ui/settings/change_email.cljs:63 +#: src/app/main/ui/settings/change_email.cljs msgid "notifications.validation-email-sent" msgstr "E-mail za potvrdu poslana je na %s. Provjeri e-email!" -#, unused msgid "onboarding-v2.before-start.desc1" msgstr "" "Postoji mnogo dostupnih resursa koji će ti pomoći da počneš koristiti " "Penpot, poput korisničkog vodiča i našeg Youtube kanala." -#, unused msgid "onboarding-v2.before-start.desc2" msgstr "" "Detaljne informacije o tome kako koristiti Penpot. Od izrade prototipova do " "organiziranja ili dijeljenja dizajna." -#, unused msgid "onboarding-v2.before-start.desc2.title" msgstr "Korisnički priručnik" -#, unused msgid "onboarding-v2.before-start.desc3" msgstr "Možeš gledati naše upute i upute koje je izradila naša zajednica." -#, unused msgid "onboarding-v2.before-start.desc3.title" msgstr "Video tutorijali" -#, unused msgid "onboarding-v2.before-start.title" msgstr "Prije nego počneš" -#, unused msgid "onboarding-v2.welcome.desc1" msgstr "" "Penpot je Open Source i izradio ga je Kaleidos kao i zajednica, gdje mnogi " "ljudi već pomažu jedni drugima. Svi mogu surađivati na:" -#, unused msgid "onboarding-v2.welcome.desc2" msgstr "" "Javni prostor za učenje, dijeljenje i raspravu o Penpotu, njegovoj " "sadašnjosti i budućnosti s cijelom zajednicom i glavnim timom Penpota." -#, unused msgid "onboarding-v2.welcome.desc2.title" msgstr "Sudjelovanje u Community-u" -#, unused msgid "onboarding-v2.welcome.desc3" msgstr "" "Gdje ćete pronaći kako surađivati s prijevodima, zahtjevima za unapređenje, " "temeljnim doprinosima, potragom za bugovima…" -#, unused msgid "onboarding-v2.welcome.desc3.title" msgstr "Vodič za doprinos" -#: src/app/main/ui/onboarding/team_choice.cljs:31 msgid "onboarding-v2.welcome.title" msgstr "Dobrodošli u Penpot!" -#: src/app/main/ui/onboarding/team_choice.cljs:215 msgid "onboarding.choice.team-up.create-team-desc" msgstr "Nakon što imenuješ svoj tim, moći ćeš pozvati ljude da se pridruže." -#: src/app/main/ui/onboarding/team_choice.cljs:224 msgid "onboarding.choice.team-up.create-team-placeholder" msgstr "Unesi naziv tima" -#: src/app/main/ui/dashboard/projects.cljs:89, src/app/main/ui/onboarding/team_choice.cljs:140 msgid "onboarding.choice.team-up.invite-members" msgstr "Pozovi članove" -#: src/app/main/ui/onboarding/team_choice.cljs:141 msgid "onboarding.choice.team-up.invite-members-info" msgstr "" "Ne zaboravi uključiti sve. Programere, dizajnere, menadžere... raznolikost " "se isplati :)" -#: src/app/main/ui/dashboard/team.cljs:202, src/app/main/ui/onboarding/team_choice.cljs:146 msgid "onboarding.choice.team-up.roles" msgstr "Pozovi s ulogom:" -#, unused msgid "onboarding.newsletter.accept" msgstr "Da, pretplati se" -#: src/app/main/ui/onboarding/newsletter.cljs:40 msgid "onboarding.newsletter.acceptance-message" msgstr "Tvoj zahtjev za pretplatu je poslan, poslat ćemo ti e-mail da ga potvrdiš." -#: src/app/main/ui/onboarding/newsletter.cljs:95 msgid "onboarding.newsletter.policy" msgstr "Politika privatnosti." -#: src/app/main/ui/onboarding/newsletter.cljs:60 msgid "onboarding.newsletter.title" msgstr "Želiš primati Penpot novostii?" -#: src/app/main/ui/onboarding/team_choice.cljs:213 msgid "onboarding.team-modal.create-team" msgstr "Kreiraj tim" -#: src/app/main/ui/onboarding/team_choice.cljs:35 msgid "onboarding.team-modal.create-team-desc" msgstr "" "Tim ti omogućuje suradnju s drugim Penpot korisnicima koji rade na istim " "datotekama i projektima." -#: src/app/main/ui/onboarding/team_choice.cljs:40 msgid "onboarding.team-modal.create-team-feature-1" msgstr "Neograničen broj datoteka i projekata" -#: src/app/main/ui/onboarding/team_choice.cljs:44 msgid "onboarding.team-modal.create-team-feature-2" msgstr "Izdanje za više igrača" -#: src/app/main/ui/onboarding/team_choice.cljs:48 msgid "onboarding.team-modal.create-team-feature-3" msgstr "Upravljanje ulogama" -#: src/app/main/ui/onboarding/team_choice.cljs:52 msgid "onboarding.team-modal.create-team-feature-4" msgstr "Neograničen broj članova" -#: src/app/main/ui/onboarding/team_choice.cljs:56 msgid "onboarding.team-modal.create-team-feature-5" msgstr "100% besplatno!" -#: src/app/main/ui/onboarding/templates.cljs:78 msgid "onboarding.templates.subtitle" msgstr "Evo nekoliko predložaka." -#: src/app/main/ui/onboarding/templates.cljs:77 msgid "onboarding.templates.title" msgstr "Počni dizajnirati" -#, unused msgid "onboarding.welcome.alt" msgstr "Penpot" -#: src/app/main/ui/auth/recovery.cljs:99 +#: src/app/main/ui/auth/recovery.cljs msgid "profile.recovery.go-to-login" msgstr "Idi na prijavu" -#: src/app/main/ui/viewer/inspect/exports.cljs:147, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:631, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:137, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:148, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:188, src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:158, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:399, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:410, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:430, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:441, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:458, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:472, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:309, src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:183, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:373, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:389, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:245, src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:172 +#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs msgid "settings.multiple" msgstr "Izmješano" # SECTIONS -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:414 msgid "shortcut-section.basics" msgstr "Osnove" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:420 msgid "shortcut-section.dashboard" msgstr "Nadzorna ploča" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:423 msgid "shortcut-section.viewer" msgstr "Gledatelj" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:417 msgid "shortcut-section.workspace" msgstr "Radni prostor" # SUBSECTIONS -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:56 msgid "shortcut-subsection.alignment" msgstr "Poravnanje" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:57 msgid "shortcut-subsection.edit" msgstr "Uredi" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:58 msgid "shortcut-subsection.general-dashboard" msgstr "Generičko" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:59 msgid "shortcut-subsection.general-viewer" msgstr "Generičko" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:60 msgid "shortcut-subsection.main-menu" msgstr "Glavni meni" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:61 +#, fuzzy msgid "shortcut-subsection.modify-layers" msgstr "Izmijeni layere" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:62 msgid "shortcut-subsection.navigation-dashboard" msgstr "Navigacija" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:63 msgid "shortcut-subsection.navigation-viewer" msgstr "Navigacija" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:64 msgid "shortcut-subsection.navigation-workspace" msgstr "Navigacija" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:65 msgid "shortcut-subsection.panels" msgstr "Paneli" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:66 +#, fuzzy msgid "shortcut-subsection.path-editor" msgstr "Paths" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:67 msgid "shortcut-subsection.shape" msgstr "Oblici" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:69 msgid "shortcut-subsection.tools" msgstr "Alati" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:70 msgid "shortcut-subsection.zoom-viewer" msgstr "Zoom" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:71 msgid "shortcut-subsection.zoom-workspace" msgstr "Zoom" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:72 msgid "shortcuts.add-comment" msgstr "Komentari" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:73 msgid "shortcuts.add-node" msgstr "Dodaj čvor" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:74 msgid "shortcuts.align-bottom" msgstr "Poravnaj dno" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:76 msgid "shortcuts.align-hcenter" msgstr "Poravnaj sredinu vodoravno" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:78 msgid "shortcuts.align-left" msgstr "Poravnaj lijevo" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:79 msgid "shortcuts.align-right" msgstr "Poravnaj desno" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:80 msgid "shortcuts.align-top" msgstr "Poravnaj vrh" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:81 msgid "shortcuts.align-vcenter" msgstr "Poravnaj sredinu okomito" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:82 msgid "shortcuts.artboard-selection" msgstr "Kreiraj ploču iz odabira" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:84 msgid "shortcuts.bool-difference" msgstr "Boolean razlika" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:85 msgid "shortcuts.bool-exclude" msgstr "Boolean isključenje" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:86 msgid "shortcuts.bool-intersection" msgstr "Boolean presijek" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:87 msgid "shortcuts.bool-union" msgstr "Boolean unija" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:88 msgid "shortcuts.bring-back" msgstr "Premijesti u pozadinu" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:89 msgid "shortcuts.bring-backward" msgstr "Premiijesti nazad" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:90 msgid "shortcuts.bring-forward" msgstr "Premijesti naprijed" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:91 +#, fuzzy msgid "shortcuts.bring-front" msgstr "Premijesti skroz naprijed" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:92 +#, fuzzy msgid "shortcuts.clear-undo" msgstr "Obriši povrat" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:93 msgid "shortcuts.copy" msgstr "Kopiraj" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:94 msgid "shortcuts.create-component" msgstr "Kreiraj komponentu" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:95 msgid "shortcuts.create-new-project" msgstr "Kreiraj novo" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:96 msgid "shortcuts.cut" msgstr "Izreži" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:97 msgid "shortcuts.decrease-zoom" msgstr "Zoom out" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:98 msgid "shortcuts.delete" msgstr "Izbriši" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:99 msgid "shortcuts.delete-node" msgstr "Izbriši čvor" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:100 msgid "shortcuts.detach-component" msgstr "Odvoji komponentu" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:101 msgid "shortcuts.draw-curve" msgstr "Krivulja" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:102 msgid "shortcuts.draw-ellipse" msgstr "Elipsa" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:103 msgid "shortcuts.draw-frame" msgstr "Panel" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:104 msgid "shortcuts.draw-nodes" msgstr "Ucrtaj put" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:105 msgid "shortcuts.draw-path" msgstr "Put" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:106 msgid "shortcuts.draw-rect" msgstr "Pravokutnik" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:107 msgid "shortcuts.draw-text" msgstr "Tekst" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:108 msgid "shortcuts.duplicate" msgstr "Dupliciraj" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:109 msgid "shortcuts.escape" msgstr "Poništi" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:110 msgid "shortcuts.export-shapes" msgstr "Izvezi oblike" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:111 msgid "shortcuts.fit-all" msgstr "Zumiraj da stane sve" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:112 msgid "shortcuts.flip-horizontal" msgstr "Okreni vodoravno" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:113 msgid "shortcuts.flip-vertical" msgstr "Okreni okomito" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:116 msgid "shortcuts.go-to-drafts" msgstr "Idi na nacrte" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:117 msgid "shortcuts.go-to-libs" msgstr "Idi na zajedničke biblioteke" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:118 msgid "shortcuts.go-to-search" msgstr "Traži" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:119 msgid "shortcuts.group" msgstr "Grupiraj" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:120 msgid "shortcuts.h-distribute" msgstr "Distribuiraj vodoravno" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:121 msgid "shortcuts.hide-ui" msgstr "Prikaži/sakrij UI" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:122 msgid "shortcuts.increase-zoom" msgstr "Zoom in" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:123 msgid "shortcuts.insert-image" msgstr "Umetni sliku" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:125 msgid "shortcuts.join-nodes" msgstr "Spoji čvorove" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:131 msgid "shortcuts.make-corner" msgstr "Izradi rub" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:132 msgid "shortcuts.make-curve" msgstr "Izradi krivulju" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:133 msgid "shortcuts.mask" msgstr "Maskiraj" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:134 msgid "shortcuts.merge-nodes" msgstr "Spoji čvorove" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:135 msgid "shortcuts.move" msgstr "Premijesti" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:136 msgid "shortcuts.move-fast-down" msgstr "Premijesti brzo dolje" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:137 msgid "shortcuts.move-fast-left" msgstr "Premijesti brzo lijevo" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:138 msgid "shortcuts.move-fast-right" msgstr "Premijesti brzo desno" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:139 msgid "shortcuts.move-fast-up" msgstr "Premijesti brzo gore" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:140 msgid "shortcuts.move-nodes" msgstr "Premijesti čvor" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:141 msgid "shortcuts.move-unit-down" msgstr "Premijesti dolje" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:142 msgid "shortcuts.move-unit-left" msgstr "Premijesti lijevo" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:143 msgid "shortcuts.move-unit-right" msgstr "Premijesti desno" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:144 msgid "shortcuts.move-unit-up" msgstr "Premijesti gore" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:145 msgid "shortcuts.next-frame" msgstr "Slijedeća ploča" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:516 msgid "shortcuts.not-found" msgstr "Nema pronađenih prečaca" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:146 msgid "shortcuts.opacity-0" msgstr "Postavi neprozirnost na 100%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:147 msgid "shortcuts.opacity-1" msgstr "Postavi neprozirnost na 10%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:148 msgid "shortcuts.opacity-2" msgstr "Postavi neprozirnost na 20%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:149 msgid "shortcuts.opacity-3" msgstr "Postavi neprozirnost na 30%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:150 msgid "shortcuts.opacity-4" msgstr "Postavi neprozirnost na 40%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:151 msgid "shortcuts.opacity-5" msgstr "Postavi neprozirnost na 50%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:152 msgid "shortcuts.opacity-6" msgstr "Postavi neprozirnost na 60%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:153 msgid "shortcuts.opacity-7" msgstr "Postavi neprozirnost na 70%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:154 msgid "shortcuts.opacity-8" msgstr "Postavi neprozirnost na 80%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:155 msgid "shortcuts.opacity-9" msgstr "Postavi neprozirnost na 90%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:156 msgid "shortcuts.open-color-picker" msgstr "Birač boja" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:157 msgid "shortcuts.open-comments" msgstr "Idi na odjeljak s komentarima" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:158 msgid "shortcuts.open-dashboard" msgstr "Idi na nadzornu ploču" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:160 msgid "shortcuts.open-interactions" msgstr "Idi na odjeljak interakcija" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:161 msgid "shortcuts.open-viewer" msgstr "Idi na odjeljak interakcija gledatelja" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:162 msgid "shortcuts.open-workspace" msgstr "Idi na radni prostor" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:260 msgid "shortcuts.or" msgstr " ili " -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:163 msgid "shortcuts.paste" msgstr "Zaljepi" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:164 msgid "shortcuts.prev-frame" msgstr "Prethodna ploča" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:165 msgid "shortcuts.redo" msgstr "Ponovi" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:166 msgid "shortcuts.reset-zoom" msgstr "Resetiraj zoom" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:168 msgid "shortcuts.search-placeholder" msgstr "Pretraži prečace" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:169 msgid "shortcuts.select-all" msgstr "Označi sve" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:173 msgid "shortcuts.separate-nodes" msgstr "Posebni čvorovi" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:174 +#, fuzzy msgid "shortcuts.show-pixel-grid" msgstr "Prikaži/sakrij \"pixel grid\"" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:175 msgid "shortcuts.show-shortcuts" msgstr "Prikaži/sakrij prečace" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:176 msgid "shortcuts.snap-nodes" msgstr "Priključi na čvorove" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:177 +#, fuzzy msgid "shortcuts.snap-pixel-grid" msgstr "Priključi na \"pixel grid\"" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:178 msgid "shortcuts.start-editing" msgstr "Počni uređivanje" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:179 msgid "shortcuts.start-measure" msgstr "Počni mjerenje" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:180 msgid "shortcuts.stop-measure" msgstr "Zaustavi mjerenje" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:185 msgid "shortcuts.thumbnail-set" msgstr "Postavi sličice" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:496, src/app/main/ui/workspace/sidebar/shortcuts.cljs:505 +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs msgid "shortcuts.title" msgstr "Prečaci na tipkovnici" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:186 msgid "shortcuts.toggle-alignment" msgstr "Promijena dinamičkog poravnanja" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:187 msgid "shortcuts.toggle-assets" msgstr "Promijena stavaka" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:188 msgid "shortcuts.toggle-colorpalette" msgstr "Promijena palete boja" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:189 msgid "shortcuts.toggle-focus-mode" msgstr "Promijena fokus moda" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:190 msgid "shortcuts.toggle-fullscreen" msgstr "Promijeni cijeli zaslon" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:192 msgid "shortcuts.toggle-history" msgstr "Promijena povijesti" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:193 msgid "shortcuts.toggle-layers" msgstr "Promijena layera" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:196 msgid "shortcuts.toggle-lock" msgstr "Zaključaj odabrano" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:197 msgid "shortcuts.toggle-lock-size" msgstr "Zaključaj proporcije" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:202 msgid "shortcuts.toggle-textpalette" msgstr "Promijeni paletu teksta" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:204 msgid "shortcuts.toggle-visibility" msgstr "Promijeni vidljivost" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:205 msgid "shortcuts.toggle-zoom-style" msgstr "Promijeni stil zooma" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:207 +#, fuzzy msgid "shortcuts.undo" msgstr "Undo" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:208 msgid "shortcuts.ungroup" msgstr "Razgrupiraj" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:209 msgid "shortcuts.unmask" msgstr "Makni masku" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:210 msgid "shortcuts.v-distribute" msgstr "Distribuiraj okomito" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:213 msgid "shortcuts.zoom-selected" msgstr "Zoomiraj na selektirano" -#: src/app/main/ui/dashboard/files.cljs:158 +#: src/app/main/ui/dashboard/files.cljs msgid "title.dashboard.files" msgstr "%s - Penpot" -#: src/app/main/ui/dashboard/fonts.cljs:37 +#: src/app/main/ui/dashboard/fonts.cljs msgid "title.dashboard.font-providers" msgstr "Dobavljači fontova - %s - Penpot" -#: src/app/main/ui/dashboard/fonts.cljs:36 +#: src/app/main/ui/dashboard/fonts.cljs msgid "title.dashboard.fonts" msgstr "Fontovi - %s - Penpot" -#: src/app/main/ui/dashboard/projects.cljs:320 +#: src/app/main/ui/dashboard/projects.cljs msgid "title.dashboard.projects" msgstr "Projekti - %s - Penpot" -#: src/app/main/ui/dashboard/search.cljs:32 +#: src/app/main/ui/dashboard/search.cljs msgid "title.dashboard.search" msgstr "Traži - %s - Penpot" -#: src/app/main/ui/dashboard/libraries.cljs:44 +#: src/app/main/ui/dashboard/libraries.cljs msgid "title.dashboard.shared-libraries" msgstr "Zajedničke biblioteke - %s - Penpot" -#: src/app/main/ui/auth/verify_token.cljs:68, src/app/main/ui/auth.cljs:54 +#: src/app/main/ui/auth/verify_token.cljs, src/app/main/ui/auth.cljs msgid "title.default" msgstr "Penpot - Sloboda dizajna za timove" -#: src/app/main/ui/settings/feedback.cljs:110 +#: src/app/main/ui/settings/feedback.cljs msgid "title.settings.feedback" msgstr "Pošalji povratnu informaciju - Penpot" -#: src/app/main/ui/settings/options.cljs:80 +#: src/app/main/ui/settings/options.cljs msgid "title.settings.options" msgstr "Postavke - Penpot" -#: src/app/main/ui/settings/password.cljs:115 +#: src/app/main/ui/settings/password.cljs msgid "title.settings.password" msgstr "Lozinka - Penpot" -#: src/app/main/ui/settings/profile.cljs:115 +#: src/app/main/ui/settings/profile.cljs msgid "title.settings.profile" msgstr "Profil - Penpot" -#: src/app/main/ui/dashboard/team.cljs:727 +#: src/app/main/ui/dashboard/team.cljs msgid "title.team-invitations" msgstr "Pozivnice - %s - Penpot" -#: src/app/main/ui/dashboard/team.cljs:493 +#: src/app/main/ui/dashboard/team.cljs msgid "title.team-members" msgstr "Članovi - %s - Penpot" -#: src/app/main/ui/dashboard/team.cljs:1036 +#: src/app/main/ui/dashboard/team.cljs msgid "title.team-settings" msgstr "Postavke - %s - Penpot" -#: src/app/main/ui/viewer.cljs:419 +#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs msgid "title.viewer" msgstr "%s - Način prikaza - Penpot" -#: src/app/main/ui/workspace.cljs:190 +#: src/app/main/ui/workspace.cljs msgid "title.workspace" msgstr "%s - Penpot" -#: src/app/main/ui.cljs:144 msgid "viewer.breaking-change.description" msgstr "" "Ova poveznica za dijeljenje više nije važeća. Napravi novu ili traži novu " "od vlasnika." -#: src/app/main/ui.cljs:143 msgid "viewer.breaking-change.message" msgstr "Oprosti!" -#: src/app/main/ui/viewer.cljs:569 +#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs msgid "viewer.empty-state" msgstr "Na stranici nisu pronađene ploče." -#: src/app/main/ui/viewer.cljs:574 +#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs msgid "viewer.frame-not-found" msgstr "Ploča nije pronađena." -#: src/app/main/ui/viewer/header.cljs:336 msgid "viewer.header.comments-section" msgstr "Komentari (%s)" -#: src/app/main/ui/viewer/interactions.cljs:292 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.dont-show-interactions" msgstr "Ne prikazuj interakcije" -#: src/app/main/ui/viewer/header.cljs:188 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.fullscreen" msgstr "Cijeli zaslon" -#: src/app/main/ui/viewer/interactions.cljs:282 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.interactions" msgstr "Interakcije" -#: src/app/main/ui/viewer/header.cljs:327 msgid "viewer.header.interactions-section" msgstr "Interakcije (%s)" -#: src/app/main/ui/viewer/share_link.cljs:187 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.share.copy-link" msgstr "Kopiraj poveznicu" -#: src/app/main/ui/viewer/interactions.cljs:300 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.show-interactions" msgstr "Prikaži interakcije" -#: src/app/main/ui/viewer/interactions.cljs:311 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.show-interactions-on-click" msgstr "Prikaži interakcije na klik" -#: src/app/main/ui/viewer/header.cljs:231 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.sitemap" msgstr "Sitemap" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:58 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.hcenter" msgstr "Poravnaj vodoravno u sredinu (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:74 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.hdistribute" msgstr "Distribuiraj vodoravni razmak (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:50 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.hleft" msgstr "Poravnaj lijevo (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:66 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.hright" msgstr "Poravnaj desno (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:99 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.vbottom" msgstr "Poravnaj dolje (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:91 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.vcenter" msgstr "Poravnaj okomito u sredinu (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:104 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.vdistribute" msgstr "Distribuiraj okomiti razmak (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:83 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.vtop" msgstr "Poravnaj gore (%s)" #: src/app/main/ui/workspace/sidebar/assets.cljs -#, unused msgid "workspace.assets.assets" msgstr "Stavke" -#: src/app/main/ui/workspace/sidebar/assets.cljs:134 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.box-filter-all" msgstr "Sve stavke" -#: src/app/main/ui/dashboard/grid.cljs:130, src/app/main/ui/dashboard/grid.cljs:162, src/app/main/ui/workspace/sidebar/assets/colors.cljs:485, src/app/main/ui/workspace/sidebar/assets.cljs:150 +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.colors" msgstr "Boje" -#: src/app/main/ui/dashboard/grid.cljs:126, src/app/main/ui/dashboard/grid.cljs:141, src/app/main/ui/workspace/sidebar/assets/components.cljs:513, src/app/main/ui/workspace/sidebar/assets.cljs:139 +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.components" msgstr "Komponente" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:131 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.create-group" msgstr "Kreiraj grupu" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:142 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.create-group-hint" msgstr "Tvoje stavke će se automatski imenovati kao \"naziv grupe / naziv stavke\"" -#: src/app/main/ui/workspace/context_menu.cljs:529, src/app/main/ui/workspace/sidebar/assets/colors.cljs:251, src/app/main/ui/workspace/sidebar/assets/components.cljs:577, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:424, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:443 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.delete" msgstr "Izbriši" -#: src/app/main/ui/workspace/context_menu.cljs:534, src/app/main/ui/workspace/sidebar/assets/components.cljs:572 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.duplicate" msgstr "Dupliciraj" -#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:247, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:439 +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.edit" msgstr "Uredi" -#: src/app/main/ui/workspace/sidebar/assets/graphics.cljs:384, src/app/main/ui/workspace/sidebar/assets.cljs:145 +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.graphics" msgstr "Grafika" -#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:255, src/app/main/ui/workspace/sidebar/assets/components.cljs:581, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:428, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:448 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.group" msgstr "Grupa" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:141 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.group-name" msgstr "Ime grupe" -#: src/app/main/ui/workspace/sidebar/assets.cljs:168 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.libraries" msgstr "Biblioteke" -#: src/app/main/ui/workspace/sidebar/assets/file_library.cljs:62, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:347 msgid "workspace.assets.local-library" msgstr "lokalna biblioteka" -#: src/app/main/ui/workspace/sidebar/assets/file_library.cljs:295 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.not-found" msgstr "Nisu pronađene stavke" -#: src/app/main/ui/workspace/context_menu.cljs:532, src/app/main/ui/workspace/sidebar/assets/colors.cljs:243, src/app/main/ui/workspace/sidebar/assets/components.cljs:566, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:421, src/app/main/ui/workspace/sidebar/assets/groups.cljs:63, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:434 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.rename" msgstr "Preimenuj" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:132 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.rename-group" msgstr "Preimenuj grupu" -#: src/app/main/ui/workspace/sidebar/assets.cljs:173 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.search" msgstr "Pretraži stavke" #: src/app/main/ui/workspace/sidebar/assets.cljs -#, unused msgid "workspace.assets.selected-count" msgid_plural "workspace.assets.selected-count" msgstr[0] "%s odabrana stavka" msgstr[1] "%s odabranih stavki" msgstr[2] "%s odabranih stavki" -#: src/app/main/ui/dashboard/grid.cljs:134, src/app/main/ui/dashboard/grid.cljs:189, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:397, src/app/main/ui/workspace/sidebar/assets.cljs:155 +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.typography" msgstr "Tipografija" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused msgid "workspace.assets.typography.font-id" msgstr "Font" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:505 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.font-size" msgstr "Veličina" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:501 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.font-variant-id" msgstr "Varijanta" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:523 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.go-to-edit" msgstr "Idi na datoteku biblioteke stilova za uređivanje" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:513 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.letter-spacing" msgstr "Razmak između slova" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:509 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.line-height" msgstr "Visina linije" -#: src/app/main/ui/dashboard/grid.cljs:199, src/app/main/ui/workspace/libraries.cljs:461, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:464, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:489, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:596, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:615 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, +#: src/app/main/ui/inspect/attributes/text.cljs, +#: src/app/main/ui/inspect/attributes/text.cljs msgid "workspace.assets.typography.sample" msgstr "Ag" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:517 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.text-transform" msgstr "Transformiraj tekst" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:66 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.ungroup" msgstr "Razgrupiraj" -#: src/app/main/ui/workspace/sidebar/layers.cljs:525 msgid "workspace.focus.focus-mode" msgstr "Fokus mode" -#: src/app/main/ui/workspace/context_menu.cljs:287, src/app/main/ui/workspace/context_menu.cljs:553 msgid "workspace.focus.focus-off" msgstr "Fokus isključen" -#: src/app/main/ui/workspace/context_menu.cljs:286 msgid "workspace.focus.focus-on" msgstr "Fokus uključen" -#, unused msgid "workspace.focus.selection" msgstr "Odabir" -#: src/app/util/color.cljs:34 +#: src/app/main/data/workspace/libraries.cljs, +#: src/app/main/ui/components/color_bullet.cljs msgid "workspace.gradients.linear" msgstr "Linearni gradijent" -#: src/app/util/color.cljs:35 +#: src/app/main/data/workspace/libraries.cljs, +#: src/app/main/ui/components/color_bullet.cljs msgid "workspace.gradients.radial" msgstr "Radijalni gradijent" -#: src/app/main/ui/workspace/main_menu.cljs:238 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.disable-dynamic-alignment" msgstr "Onemogući dinamičko poravnanje" #: src/app/main/ui/workspace/header.cljs -#, unused msgid "workspace.header.menu.disable-scale-text" msgstr "Onemogući skaliranje teksta" -#: src/app/main/ui/workspace/main_menu.cljs:223 +#: src/app/main/ui/workspace/header.cljs +#, fuzzy msgid "workspace.header.menu.disable-snap-guides" msgstr "Onemogući \"snap to guides\"" -#: src/app/main/ui/workspace/main_menu.cljs:253 +#, fuzzy msgid "workspace.header.menu.disable-snap-pixel-grid" msgstr "Onemogući \"snap to pixel\"" -#: src/app/main/ui/workspace/main_menu.cljs:239 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.enable-dynamic-alignment" msgstr "Omogući dinamičko poravnanje" #: src/app/main/ui/workspace/header.cljs -#, unused msgid "workspace.header.menu.enable-scale-text" msgstr "Omogući skaliranje teksta" -#: src/app/main/ui/workspace/main_menu.cljs:224 +#: src/app/main/ui/workspace/header.cljs +#, fuzzy msgid "workspace.header.menu.enable-snap-guides" msgstr "Snap to guides" -#: src/app/main/ui/workspace/main_menu.cljs:254 +#, fuzzy msgid "workspace.header.menu.enable-snap-pixel-grid" msgstr "Omogući \"snap to pixel\"" -#: src/app/main/ui/workspace/main_menu.cljs:382 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.hide-artboard-names" msgstr "Sakrij nazive ploča" -#: src/app/main/ui/workspace/main_menu.cljs:353 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.hide-palette" msgstr "Sakrij paletu boja" -#: src/app/main/ui/workspace/main_menu.cljs:394 +#, fuzzy msgid "workspace.header.menu.hide-pixel-grid" msgstr "Sakrij \"pixel grid\"" -#: src/app/main/ui/workspace/main_menu.cljs:320 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.hide-rules" msgstr "Sakrij \"rules\"" -#: src/app/main/ui/workspace/main_menu.cljs:367 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.hide-textpalette" msgstr "Sakrij paletu boja" -#: src/app/main/ui/workspace/main_menu.cljs:731 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.edit" msgstr "Uredi" -#: src/app/main/ui/workspace/main_menu.cljs:720 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.file" msgstr "Datoteka" -#: src/app/main/ui/workspace/main_menu.cljs:777 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.help-info" msgstr "Pomoć i informacije" -#: src/app/main/ui/workspace/main_menu.cljs:753 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.preferences" msgstr "Preferencije" -#: src/app/main/ui/workspace/main_menu.cljs:742 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.view" msgstr "Pregled" -#: src/app/main/ui/workspace/main_menu.cljs:432 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.select-all" msgstr "Odaberi sve" -#: src/app/main/ui/workspace/main_menu.cljs:383 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.show-artboard-names" msgstr "Prikaži nazive ploča" -#: src/app/main/ui/workspace/main_menu.cljs:354 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.show-palette" msgstr "Prikaži paletu boja" -#: src/app/main/ui/workspace/main_menu.cljs:395 +#, fuzzy msgid "workspace.header.menu.show-pixel-grid" msgstr "Prikaži \"pixel grid\"" -#: src/app/main/ui/workspace/main_menu.cljs:321 +#: src/app/main/ui/workspace/header.cljs +#, fuzzy msgid "workspace.header.menu.show-rules" msgstr "Prikaži \"rules\"" -#: src/app/main/ui/workspace/main_menu.cljs:368 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.show-textpalette" msgstr "Prikaži paletu fontova" -#: src/app/main/ui/viewer/header.cljs:98, src/app/main/ui/workspace/right_header.cljs:120 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.reset-zoom" msgstr "Resetiraj" #: src/app/main/ui/workspace/header.cljs -#, unused msgid "workspace.header.save-error" msgstr "Greška kod spremanja" -#: src/app/main/ui/workspace/right_header.cljs:52 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.saved" msgstr "Spremljeno" #: src/app/main/ui/workspace/header.cljs -#, unused msgid "workspace.header.saving" msgstr "Spremanje" -#: src/app/main/ui/workspace/right_header.cljs:42, src/app/main/ui/workspace/right_header.cljs:47 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.unsaved" msgstr "Nespremljene izmijene" -#: src/app/main/ui/workspace/right_header.cljs:239 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.viewer" msgstr "Način prikaza (%s)" -#: src/app/main/ui/viewer/header.cljs:109 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom-fill" msgstr "Ispuna - Skaliraj za popunjavanje" -#: src/app/main/ui/viewer/header.cljs:102 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom-fit" msgstr "Prilagodi - Smanji veličinu da pristane" -#: src/app/main/ui/workspace/right_header.cljs:123 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom-fit-all" msgstr "Zumiraj da stane sve" -#: src/app/main/ui/viewer/header.cljs:116 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom-full-screen" msgstr "Cijeli ekran" -#: src/app/main/ui/workspace/right_header.cljs:130 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom-selected" msgstr "Zumiraj na odabrano" #: src/app/main/ui/workspace/libraries.cljs -#, unused msgid "workspace.libraries.add" msgstr "Dodaj" -#: src/app/main/ui/workspace/libraries.cljs:80, src/app/main/ui/workspace/libraries.cljs:99 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.colors" msgstr "%s boje" -#: src/app/main/ui/workspace/color_palette_ctx_menu.cljs:60, src/app/main/ui/workspace/colorpicker/libraries.cljs:73, src/app/main/ui/workspace/text_palette_ctx_menu.cljs:50 +#: src/app/main/ui/workspace/colorpicker/libraries.cljs, +#: src/app/main/ui/workspace/colorpalette.cljs msgid "workspace.libraries.colors.file-library" msgstr "Biblioteka datoteka" #: src/app/main/ui/workspace/colorpicker.cljs -#, unused msgid "workspace.libraries.colors.hsv" msgstr "HSV" -#: src/app/main/ui/workspace/color_palette_ctx_menu.cljs:82, src/app/main/ui/workspace/colorpicker/libraries.cljs:72 +#: src/app/main/ui/workspace/colorpicker/libraries.cljs, +#: src/app/main/ui/workspace/colorpalette.cljs msgid "workspace.libraries.colors.recent-colors" msgstr "Nedavno korištene boje" #: src/app/main/ui/workspace/colorpicker.cljs -#, unused msgid "workspace.libraries.colors.rgb-complementary" msgstr "RGB komplementarno" #: src/app/main/ui/workspace/colorpicker.cljs -#, unused msgid "workspace.libraries.colors.rgba" msgstr "RGBA" -#: src/app/main/ui/workspace/colorpicker.cljs:372 +#: src/app/main/ui/workspace/colorpicker.cljs msgid "workspace.libraries.colors.save-color" msgstr "Spremi u stil boja" -#: src/app/main/ui/workspace/libraries.cljs:74, src/app/main/ui/workspace/libraries.cljs:91 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.components" msgstr "%s komponente" -#: src/app/main/ui/workspace/libraries.cljs:215 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.file-library" msgstr "Biblioteka datoteka" -#: src/app/main/ui/workspace/libraries.cljs:77, src/app/main/ui/workspace/libraries.cljs:95 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.graphics" msgstr "%s grafike" -#: src/app/main/ui/workspace/libraries.cljs:209 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.in-this-file" msgstr "BIBLIOTEKE U OVOJ DATOTECI" -#: src/app/main/ui/workspace/libraries.cljs:526, src/app/main/ui/workspace/libraries.cljs:531 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.libraries" msgstr "BIBLIOTEKE" #: src/app/main/ui/workspace/libraries.cljs -#, unused msgid "workspace.libraries.library" msgstr "BIBLIOTEKA" -#: src/app/main/ui/workspace/libraries.cljs:380 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.no-libraries-need-sync" msgstr "Ne postoje zajedničke biblioteke koje je potrebno ažurirati" -#: src/app/main/ui/workspace/libraries.cljs:299 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.no-matches-for" msgstr "Nisu pronađeni rezultati za “%s”" -#: src/app/main/ui/workspace/libraries.cljs:296 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.no-shared-libraries-available" msgstr "Nema dostupnih zajedničkih biblioteka" -#: src/app/main/ui/workspace/libraries.cljs:260 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.search-shared-libraries" msgstr "Pretraži zajedničke biblioteke" -#: src/app/main/ui/workspace/libraries.cljs:256 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.shared-libraries" msgstr "ZAJEDNIČKE BIBLIOTEKE" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:308 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.libraries.text.multiple-typography" msgstr "Višestruke tipografije" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:311 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.libraries.text.multiple-typography-tooltip" msgstr "Prekini vezu svih tipografija" -#: src/app/main/ui/workspace/libraries.cljs:83, src/app/main/ui/workspace/libraries.cljs:103 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.typography" msgstr "%s tipografije" -#: src/app/main/ui/workspace/libraries.cljs:402 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.update" msgstr "Ažuriranje" -#: src/app/main/ui/workspace/libraries.cljs:536 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.updates" msgstr "AŽURIRANJA" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:737 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.add-interaction" msgstr "Klikni gumb + za dodavanje interakcija." -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:86, src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:102 +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs msgid "workspace.options.blur-options.title" msgstr "Zamuti" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:85 +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs msgid "workspace.options.blur-options.title.group" msgstr "Grupiraj zamućenje" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:84 +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs msgid "workspace.options.blur-options.title.multiple" msgstr "Odabir zamućenja" -#: src/app/main/ui/workspace/sidebar/options/page.cljs:32, src/app/main/ui/workspace/sidebar/options/page.cljs:39 +#: src/app/main/ui/workspace/sidebar/options/page.cljs msgid "workspace.options.canvas-background" msgstr "Pozadina canvasa" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:548 msgid "workspace.options.clip-content" msgstr "Isjeci sadržaj" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:600, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:605 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs msgid "workspace.options.component" msgstr "Komponenta" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:163 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints" msgstr "Ograničenja" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:150 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.bottom" msgstr "Dno" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:141, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:152 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.center" msgstr "Sredina" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:229 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.fix-when-scrolling" msgstr "Popravi prilikom scrolanja" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:138 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.left" msgstr "Lijevo" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:140 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.leftright" msgstr "Lijevo i desno" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:139 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.right" msgstr "Desno" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:142, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:153 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.scale" msgstr "Skala" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:149 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.top" msgstr "Vrh" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:151 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.topbottom" msgstr "Vrh i dno" -#: src/app/main/ui/workspace/sidebar/options.cljs:112 +#: src/app/main/ui/workspace/sidebar/options.cljs msgid "workspace.options.design" msgstr "Dizajn" -#: src/app/main/ui/viewer/inspect/exports.cljs:139 +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, +#: src/app/main/ui/inspect/exports.cljs msgid "workspace.options.export" msgstr "Izvoz" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, +#: src/app/main/ui/inspect/exports.cljs msgid "workspace.options.export-multiple" msgstr "Izvezi selektirano" -#: src/app/main/ui/viewer/inspect/exports.cljs:195, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:237 +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, +#: src/app/main/ui/inspect/exports.cljs msgid "workspace.options.export-object" msgid_plural "workspace.options.export-object" msgstr[0] "Izvezi 1 element" msgstr[1] "Izvezi %s elemenata" msgstr[2] "Izvezi %s elemenata" -#: src/app/main/ui/viewer/inspect/exports.cljs:178, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:219 +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs msgid "workspace.options.export.suffix" msgstr "Sufiks" -#: src/app/main/ui/export.cljs:240 +#: 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.exporting-complete" msgstr "Izvoz završen" -#: src/app/main/ui/export.cljs:172, src/app/main/ui/export.cljs:241, src/app/main/ui/viewer/inspect/exports.cljs:194, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:236 +#: 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.exporting-object" msgstr "Izvoz…" -#: src/app/main/ui/export.cljs:239 +#: 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.exporting-object-error" msgstr "Izvoz nije uspio" -#: src/app/main/ui/export.cljs:242 +#: 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.exporting-object-slow" msgstr "Izvoz neočekivano spor" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:49, src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:174 +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs msgid "workspace.options.fill" msgstr "Ispuni" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:178 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#, fuzzy msgid "workspace.options.flows.add-flow-start" msgstr "Dodaj početak flowa" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -#, unused +#, fuzzy msgid "workspace.options.flows.flow-start" msgstr "Početak toka" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:161 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#, fuzzy msgid "workspace.options.flows.flow-starts" msgstr "Flow započinje" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:29 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.auto" msgstr "Auto" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:157 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.column" msgstr "Kolumne" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused +#, fuzzy msgid "workspace.options.grid.grid-title" msgstr "Grid" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:196, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:237 msgid "workspace.options.grid.params.color" msgstr "Boja" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.params.columns" msgstr "Kolumne" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:259 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs +#, fuzzy msgid "workspace.options.grid.params.gutter" msgstr "Gutter" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:246 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.height" msgstr "Visina" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:270 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.margin" msgstr "Margina" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.params.rows" msgstr "Redovi" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:216, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:290 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.set-default" msgstr "Postavi kao zadano" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.params.size" msgstr "Veličina" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.params.type" msgstr "Tip" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:231 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.bottom" msgstr "Dno" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:229 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.center" msgstr "Sredina" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:228 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.left" msgstr "Lijevo" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:232 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.right" msgstr "Desno" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:225 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.stretch" msgstr "Razvuci" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:227 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.top" msgstr "Vrh" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:211, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:288 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.use-default" msgstr "Koristi zadano" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:247 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.width" msgstr "Širina" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:158 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.row" msgstr "Redovi" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:156 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.square" msgstr "Pravokutnik" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:48 +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs msgid "workspace.options.group-fill" msgstr "Popunjavanje grupe" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:42 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#, fuzzy msgid "workspace.options.group-stroke" msgstr "Grupni potez" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:406 msgid "workspace.options.height" msgstr "Visina" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:468 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-action" msgstr "Akcija" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:41, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:367 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-after-delay" msgstr "Nakon kašnjenja" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:614 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-animation" msgstr "Animacija" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:406 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#, fuzzy msgid "workspace.options.interaction-animation-dissolve" msgstr "Razriješi" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:405 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-animation-none" msgstr "Nijedan" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:412 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-animation-push" msgstr "Gurni" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:407 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#, fuzzy msgid "workspace.options.interaction-animation-slide" msgstr "Slide" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:604 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-background" msgstr "Dodajte pozadinsko preklapanje" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:590 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-close-outside" msgstr "Zatvori kada klikneš izvana" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:372 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-close-overlay" msgstr "Zatvori preklapanje" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:56 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-close-overlay-dest" msgstr "Zatvori preklapanje: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:456 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-delay" msgstr "Odgoda" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:478 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-destination" msgstr "Odredište" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:661 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-duration" msgstr "Trajanje" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:674 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing" msgstr "Easing" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:416 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing-ease" msgstr "Ease" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:417 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#, fuzzy msgid "workspace.options.interaction-easing-ease-in" msgstr "Ease in" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:419 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#, fuzzy msgid "workspace.options.interaction-easing-ease-in-out" msgstr "Ease in out" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:418 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#, fuzzy msgid "workspace.options.interaction-easing-ease-out" msgstr "Ease out" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:415 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing-linear" msgstr "Linearno" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -#, unused msgid "workspace.options.interaction-in" msgstr "U" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:39, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:364 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#, fuzzy msgid "workspace.options.interaction-mouse-enter" msgstr "Ulaz mišem" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:40, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:365 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-mouse-leave" msgstr "Izlaz mišem" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:458, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:459, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:464, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:663, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:665, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:669 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-ms" msgstr "ms" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:369 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-navigate-to" msgstr "Idi do" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:50 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-navigate-to-dest" msgstr "Idi do: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:51, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:53, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:55, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:380 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#, fuzzy msgid "workspace.options.interaction-none" msgstr "(nije spremno)" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:691 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-offset-effect" msgstr "Offset učinak" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:35, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:360 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-on-click" msgstr "Na klik" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:370 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-open-overlay" msgstr "Otvoreno preklapanje" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:52 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-open-overlay-dest" msgstr "Otvoreno preklapanje: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:59, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:374 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-open-url" msgstr "Otvoreni url" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -#, unused +#, fuzzy msgid "workspace.options.interaction-out" msgstr "Vani" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:403 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-bottom-center" msgstr "Dolje sredina" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:401 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-bottom-left" msgstr "Dolje lijevo" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:402 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-bottom-right" msgstr "Dolje desno" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:397 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-center" msgstr "Sredina" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:396 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-manual" msgstr "Priručnik" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:400 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-top-center" msgstr "Gore sredina" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:398 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-top-left" msgstr "Gore lijevo" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:399 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-top-right" msgstr "Gore desno" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:524 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-position" msgstr "Pozicija" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:494 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-preserve-scroll" msgstr "Sačuvaj položaj scrolanja" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:58, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:373 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-prev-screen" msgstr "Prethodni ekran" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:57, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:379, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:393, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:394 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs +#, fuzzy msgid "workspace.options.interaction-self" msgstr "sebe" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:371 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-toggle-overlay" msgstr "Uključi/isključi preklapanje" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:54 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-toggle-overlay-dest" msgstr "Uključi/isključi preklapanje: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:445 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-trigger" msgstr "Okidač" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:503 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-url" msgstr "URL" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:37, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:362 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-while-hovering" msgstr "Na hover" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:38, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:363 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-while-pressing" msgstr "Dok pritisneš" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:724 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interactions" msgstr "Interakcije" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:137 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.color" msgstr "Boja" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:126 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.color-burn" msgstr "Izgaranje boje" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:129 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.color-dodge" msgstr "Izbjegavanje boja" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:124 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.darken" msgstr "Zatamni" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:133 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.difference" msgstr "Razlika" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:134 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.exclusion" msgstr "Ekskluzija" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:132 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.hard-light" msgstr "Tvrdo svjetlo" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:135 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.hue" msgstr "Nijansa" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:127 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.lighten" msgstr "Posvijetli" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:138 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.luminosity" msgstr "Svjetlost" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:125 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.multiply" msgstr "Umnoži" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:123 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.normal" msgstr "Normalno" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:130 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.overlay" msgstr "Preklapanje" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:136 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.saturation" msgstr "Saturacija" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:128 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.screen" msgstr "Ekran" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:131 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.soft-light" msgstr "Nježno svjetlo" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -#, unused +#, fuzzy msgid "workspace.options.layer-options.title" msgstr "Layer" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -#, unused +#, fuzzy msgid "workspace.options.layer-options.title.group" msgstr "Grupiraj layere" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -#, unused +#, fuzzy msgid "workspace.options.layer-options.title.multiple" msgstr "Označeni layeri" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout-item.advanced-ops" msgstr "Napredne opcije" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:564 +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs msgid "workspace.options.layout-item.layout-item-max-h" msgstr "Max.visina" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:531 +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs msgid "workspace.options.layout-item.layout-item-max-w" msgstr "Max.širina" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:548 +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs msgid "workspace.options.layout-item.layout-item-min-h" msgstr "Min.visina" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:515 +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs msgid "workspace.options.layout-item.layout-item-min-w" msgstr "Min.širina" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout-item.title.layout-item-max-h" msgstr "Maksimalna visina" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout-item.title.layout-item-max-w" msgstr "Maksimalna širina" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout-item.title.layout-item-min-h" msgstr "Minimalna visina" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout-item.title.layout-item-min-w" msgstr "Minimalna širina" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.bottom" msgstr "Dno" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.gap" msgstr "Razmak" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.left" msgstr "Lijevo" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout.margin" msgstr "Margina" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout.margin-all" msgstr "Sve strane" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout.margin-simple" msgstr "Jednostavna margina" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused +#, fuzzy msgid "workspace.options.layout.packed" msgstr "upakiran" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused +#, fuzzy msgid "workspace.options.layout.padding" msgstr "Padding" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.padding-all" msgstr "Sve strane" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.padding-simple" msgstr "Jednostavni padding" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.right" msgstr "Desno" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.space-around" msgstr "prostor okolo" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.space-between" msgstr "prostor između" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.top" msgstr "Vrh" -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:146 +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs msgid "workspace.options.more-colors" msgstr "Više boja" -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:123 +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs msgid "workspace.options.more-lib-colors" msgstr "Više boja iz biblioteke" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:161 msgid "workspace.options.opacity" msgstr "Neprozirnost" -#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.position" msgstr "Pozicija" -#: src/app/main/ui/workspace/sidebar/options.cljs:157 +#: src/app/main/ui/workspace/sidebar/options.cljs msgid "workspace.options.prototype" msgstr "Prototip" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:469, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:481 msgid "workspace.options.radius" msgstr "Radius" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:513 +#: 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:522 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.radius-bottom-right" msgstr "Dolje desno" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:495 +#: 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:504 +#: 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:532 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.radius.all-corners" msgstr "Svi kutevi" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:533 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +#, fuzzy msgid "workspace.options.radius.single-corners" msgstr "Jednostruki kutovi" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:183 msgid "workspace.options.recent-fonts" msgstr "Nedavni" -#: src/app/main/ui/export.cljs:284 +#: 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 "Pokušaj ponovo" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:451 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.rotation" msgstr "Rotacija" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:180 msgid "workspace.options.search-font" msgstr "Pretraži font" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:741 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.select-a-shape" msgstr "Odaberi oblik, ploču ili grupu za povlačenje veze na drugu ploču." -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:105 +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs msgid "workspace.options.selection-color" msgstr "Odabrane boje" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:47 +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs msgid "workspace.options.selection-fill" msgstr "Ispuna odabira" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:41 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#, fuzzy msgid "workspace.options.selection-stroke" msgstr "Potez selektirano" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:40, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:198, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:200 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.blur" msgstr "Zamućeno" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:238 msgid "workspace.options.shadow-options.color" msgstr "Boja sjene" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:144 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.drop-shadow" msgstr "Spusti sjenu" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:145 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.inner-shadow" msgstr "Unutarnja sjena" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:38, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:186 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.offsetx" msgstr "X" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:39, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:224 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.offsety" msgstr "Y" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:41, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:211, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:213 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.spread" msgstr "Proširi" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:296 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.title" msgstr "Sjena" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:295 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.title.group" msgstr "Grupiraj sjenu" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:294 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.title.multiple" msgstr "Odabir sjena" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:193 +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs msgid "workspace.options.show-fill-on-export" msgstr "Prikaži u izvozu" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:562 msgid "workspace.options.show-in-viewer" msgstr "Prikaži u načinu pregleda" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:162 +#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.size" msgstr "Veličina" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:355 +#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs +#, fuzzy msgid "workspace.options.size-presets" msgstr "Unaprijed postavljena veličina" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:43 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke" msgstr "Potez" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -#, unused msgid "workspace.options.stroke-cap.circle-marker" msgstr "Kružni marker" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -#, unused msgid "workspace.options.stroke-cap.diamond-marker" msgstr "Dijamantni marker" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -#, unused msgid "workspace.options.stroke-cap.line-arrow" msgstr "Strelica linije" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:124 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.none" msgstr "Nijedan" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:132 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +#, fuzzy msgid "workspace.options.stroke-cap.round" msgstr "Krug" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:133 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.square" msgstr "Pravokutnik" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -#, unused msgid "workspace.options.stroke-cap.square-marker" msgstr "Pravokutni marker" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -#, unused msgid "workspace.options.stroke-cap.triangle-arrow" msgstr "Trokutna strelica" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:192 msgid "workspace.options.stroke-color" msgstr "Boja poteza" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:165 msgid "workspace.options.stroke-width" msgstr "Širina poteza" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:87 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.center" msgstr "Sredina" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:105 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.dashed" msgstr "Crtkano" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:104 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.dotted" msgstr "Točkasto" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:88 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.inner" msgstr "Unutra" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:106 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.mixed" msgstr "Miješano" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:89 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.outer" msgstr "Vani" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:103 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.solid" msgstr "Čvrsto" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:115 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.align-bottom" msgstr "Poravnaj dno" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:111 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.align-middle" msgstr "Poravnaj sredinu" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:107 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.align-top" msgstr "Poravnaj vrh" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:82 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.direction-ltr" msgstr "LTR" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:87 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.direction-rtl" msgstr "RTL" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:149 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.grow-auto-height" msgstr "Automatska visina" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:145 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.grow-auto-width" msgstr "Automatska širina" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:141 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#, fuzzy msgid "workspace.options.text-options.grow-fixed" msgstr "Popravljeno" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:381 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.options.text-options.letter-spacing" msgstr "Razmak između slova" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:364 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.options.text-options.line-height" msgstr "Visina linije" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused msgid "workspace.options.text-options.lowercase" msgstr "Mala slova" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.options.text-options.none" msgstr "Nijedan" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:176 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.strikethrough" msgstr "Precrtanko (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:51 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.text-align-center" msgstr "Poravnaj sredinu (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:59 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs +#, fuzzy msgid "workspace.options.text-options.text-align-justify" msgstr "Složi u blok (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:47 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.text-align-left" msgstr "Poravnaj lijevo (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:55 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.text-align-right" msgstr "Poravnaj desno (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:189 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.title" msgstr "Tekst" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:188 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.title-group" msgstr "Grupiraj tekst" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:187 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.title-selection" msgstr "Selektiraj tekst" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused msgid "workspace.options.text-options.titlecase" msgstr "Velika i mala slova" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:171 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.underline" msgstr "Podcrtano (%s)" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused msgid "workspace.options.text-options.uppercase" msgstr "Velika slova" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:745 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.use-play-button" msgstr "Upotrijebi play gumb u zaglavlju za pokretanje prikaza prototipa." -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:395 msgid "workspace.options.width" msgstr "Širina" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:427 msgid "workspace.options.x" msgstr "X" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:438 msgid "workspace.options.y" msgstr "Y" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:167 msgid "workspace.path.actions.add-node" msgstr "Dodaj čvor (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:174 msgid "workspace.path.actions.delete-node" msgstr "Izbriši čvor (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:152 msgid "workspace.path.actions.draw-nodes" msgstr "Crtaj čvorove (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:189 msgid "workspace.path.actions.join-nodes" msgstr "Spoji čvorove (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:204 msgid "workspace.path.actions.make-corner" msgstr "Do kuta (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:211 +#, fuzzy msgid "workspace.path.actions.make-curve" msgstr "Do krivulje (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:182 msgid "workspace.path.actions.merge-nodes" msgstr "Spoji čvorove (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:159 msgid "workspace.path.actions.move-nodes" msgstr "Premijesti čvorove (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:196 msgid "workspace.path.actions.separate-nodes" msgstr "Odvoji čvorove(%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:218 +#, fuzzy msgid "workspace.path.actions.snap-nodes" msgstr "Priključi čvorove (%s)" -#: src/app/main/ui/workspace/context_menu.cljs:193 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.back" msgstr "Pošalji natrag" -#: src/app/main/ui/workspace/context_menu.cljs:190 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.backward" msgstr "Pošalji u pozadinu" -#: src/app/main/ui/workspace/context_menu.cljs:139 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.copy" msgstr "Kopiraj" -#: src/app/main/ui/workspace/context_menu.cljs:275 +#: src/app/main/ui/workspace/context_menu.cljs +#, fuzzy msgid "workspace.shape.menu.create-artboard-from-selection" msgstr "Odabir na ploču" -#: src/app/main/ui/workspace/context_menu.cljs:465 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.create-component" msgstr "Kreiraj komponentu" -#: src/app/main/ui/workspace/context_menu.cljs:142 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.cut" msgstr "Izreži" -#: src/app/main/ui/workspace/context_menu.cljs:486 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.delete" msgstr "Izbriši" -#: src/app/main/ui/workspace/context_menu.cljs:391 +#: src/app/main/ui/workspace/context_menu.cljs +#, fuzzy msgid "workspace.shape.menu.delete-flow-start" msgstr "Izbriši početak flowa" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:432 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.detach-instance" msgstr "Odvoji instancu" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:431 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.detach-instances-in-bulk" msgstr "Odvoji instance" -#: src/app/main/ui/workspace/context_menu.cljs:335, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:75 msgid "workspace.shape.menu.difference" msgstr "Razlika" -#: src/app/main/ui/workspace/context_menu.cljs:148 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.duplicate" msgstr "Dupliciraj" -#: src/app/main/ui/workspace/context_menu.cljs:321 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.edit" msgstr "Uredi" -#: src/app/main/ui/workspace/context_menu.cljs:341 msgid "workspace.shape.menu.exclude" msgstr "Izuzmi" -#: src/app/main/ui/workspace/context_menu.cljs:348, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:89 msgid "workspace.shape.menu.flatten" msgstr "Spljošti" -#: src/app/main/ui/workspace/context_menu.cljs:208 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.flip-horizontal" msgstr "Okreni vodoravno" -#: src/app/main/ui/workspace/context_menu.cljs:204 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.flip-vertical" msgstr "Okreni okomito" -#: src/app/main/ui/workspace/context_menu.cljs:394 +#: src/app/main/ui/workspace/context_menu.cljs +#, fuzzy msgid "workspace.shape.menu.flow-start" msgstr "Početak flowa" -#: src/app/main/ui/workspace/context_menu.cljs:184 +#: src/app/main/ui/workspace/context_menu.cljs +#, fuzzy msgid "workspace.shape.menu.forward" msgstr "Postavi ispred" -#: src/app/main/ui/workspace/context_menu.cljs:187 +#: src/app/main/ui/workspace/context_menu.cljs +#, fuzzy msgid "workspace.shape.menu.front" msgstr "Postavi naprijed" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.go-main" msgstr "Idi na datoteku glavne komponente" -#: src/app/main/ui/workspace/context_menu.cljs:261 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.group" msgstr "Grupiraj" -#: src/app/main/ui/workspace/context_menu.cljs:363, src/app/main/ui/workspace/sidebar/layer_item.cljs:145 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.hide" msgstr "Sakrij" -#: src/app/main/ui/workspace/context_menu.cljs:548, src/app/main/ui/workspace/main_menu.cljs:408 msgid "workspace.shape.menu.hide-ui" msgstr "Prikaži/sakrij korisničko sučelje" -#: src/app/main/ui/workspace/context_menu.cljs:338 msgid "workspace.shape.menu.intersection" msgstr "Presjek" -#: src/app/main/ui/workspace/context_menu.cljs:371, src/app/main/ui/workspace/sidebar/layer_item.cljs:153 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.lock" msgstr "Zaključaj" -#: src/app/main/ui/workspace/context_menu.cljs:266 +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.mask" msgstr "Maskiraj" -#: src/app/main/ui/workspace/context_menu.cljs:145, src/app/main/ui/workspace/context_menu.cljs:545 +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.paste" msgstr "Zalijepi" -#: src/app/main/ui/workspace/context_menu.cljs:331 +#, fuzzy msgid "workspace.shape.menu.path" msgstr "Path" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:436 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs +#, fuzzy msgid "workspace.shape.menu.reset-overrides" msgstr "Poništi overrides" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:439 msgid "workspace.shape.menu.restore-main" msgstr "Vrati glavnu komponentu" -#: src/app/main/ui/workspace/context_menu.cljs:174 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.select-layer" msgstr "Označi layer" -#: src/app/main/ui/workspace/context_menu.cljs:360, src/app/main/ui/workspace/sidebar/layer_item.cljs:144 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.show" msgstr "Prikaži" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:442, src/app/main/ui/workspace/sidebar/assets/components.cljs:586 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.show-main" msgstr "Prikaži glavnu komponentu" -#: src/app/main/ui/workspace/context_menu.cljs:221 msgid "workspace.shape.menu.thumbnail-remove" msgstr "Ukloni sličicu" -#: src/app/main/ui/workspace/context_menu.cljs:223 msgid "workspace.shape.menu.thumbnail-set" msgstr "Postavi kao sličicu" -#: src/app/main/ui/workspace/context_menu.cljs:326 +#, fuzzy msgid "workspace.shape.menu.transform-to-path" msgstr "Transformiraj u path" -#: src/app/main/ui/workspace/context_menu.cljs:257 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.ungroup" msgstr "Razgrupiraj" -#: src/app/main/ui/workspace/context_menu.cljs:332, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:70 msgid "workspace.shape.menu.union" msgstr "Unija" -#: src/app/main/ui/workspace/context_menu.cljs:368, src/app/main/ui/workspace/sidebar/layer_item.cljs:152 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.unlock" msgstr "Otključaj" -#: src/app/main/ui/workspace/context_menu.cljs:271 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.unmask" msgstr "Ukloni masku" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.update-components-in-bulk" msgstr "Ažuriraj glavne komponente" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:445 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.update-main" msgstr "Ažuriraj glavnu komponentu" -#: src/app/main/ui/workspace/right_header.cljs:231, src/app/main/ui/workspace/right_header.cljs:232 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.sidebar.history" msgstr "Povijest (%s)" -#: src/app/main/ui/workspace/sidebar/layers.cljs:522, src/app/main/ui/workspace/sidebar.cljs:100 +#: src/app/main/ui/workspace/left_toolbar.cljs +#, fuzzy msgid "workspace.sidebar.layers" msgstr "Layeri" -#: src/app/main/ui/workspace/sidebar/layers.cljs:308, src/app/main/ui/workspace/sidebar/layers.cljs:380 msgid "workspace.sidebar.layers.components" msgstr "Komponente" -#: src/app/main/ui/workspace/sidebar/layers.cljs:305, src/app/main/ui/workspace/sidebar/layers.cljs:338 msgid "workspace.sidebar.layers.frames" msgstr "Ploče" -#: src/app/main/ui/workspace/sidebar/layers.cljs:306, src/app/main/ui/workspace/sidebar/layers.cljs:352 msgid "workspace.sidebar.layers.groups" msgstr "Grupe" -#: src/app/main/ui/workspace/sidebar/layers.cljs:310, src/app/main/ui/workspace/sidebar/layers.cljs:408 msgid "workspace.sidebar.layers.images" msgstr "Slike" -#: src/app/main/ui/workspace/sidebar/layers.cljs:307, src/app/main/ui/workspace/sidebar/layers.cljs:366 msgid "workspace.sidebar.layers.masks" msgstr "Maske" -#: src/app/main/ui/workspace/sidebar/layers.cljs:289 +#, fuzzy msgid "workspace.sidebar.layers.search" msgstr "Traži layere" -#: src/app/main/ui/workspace/sidebar/layers.cljs:311, src/app/main/ui/workspace/sidebar/layers.cljs:422 msgid "workspace.sidebar.layers.shapes" msgstr "Oblici" -#: src/app/main/ui/workspace/sidebar/layers.cljs:309, src/app/main/ui/workspace/sidebar/layers.cljs:394 msgid "workspace.sidebar.layers.texts" msgstr "Tekstovi" -#: src/app/main/ui/viewer/inspect/attributes/svg.cljs:56, src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs:91 +#: src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs, +#: src/app/main/ui/inspect/attributes/svg.cljs msgid "workspace.sidebar.options.svg-attrs.title" msgstr "Uvezeni SVG atributi" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs:217 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs msgid "workspace.sidebar.sitemap" msgstr "Stranice" -#: src/app/main/ui/workspace/left_header.cljs:91 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.sitemap" msgstr "Sitemap" -#: src/app/main/ui/workspace/sidebar.cljs:120 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.assets" msgstr "Stavke" -#: src/app/main/ui/workspace/palette.cljs:165, src/app/main/ui/workspace/palette.cljs:166 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.color-palette" msgstr "Paleta boja (%s)" -#: src/app/main/ui/workspace/right_header.cljs:220, src/app/main/ui/workspace/right_header.cljs:221 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.comments" msgstr "Komentari (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:180, src/app/main/ui/workspace/top_toolbar.cljs:181 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.curve" msgstr "Krivulja (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:160, src/app/main/ui/workspace/top_toolbar.cljs:161 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.ellipse" msgstr "Elipsa (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:142, src/app/main/ui/workspace/top_toolbar.cljs:143 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.frame" msgstr "Ploča (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:59, src/app/main/ui/workspace/top_toolbar.cljs:60 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.image" msgstr "Slika (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:132, src/app/main/ui/workspace/top_toolbar.cljs:133 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.move" msgstr "Premijesti (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:189, src/app/main/ui/workspace/top_toolbar.cljs:190 +#: src/app/main/ui/workspace/left_toolbar.cljs +#, fuzzy msgid "workspace.toolbar.path" msgstr "Path (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:151, src/app/main/ui/workspace/top_toolbar.cljs:152 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.rect" msgstr "Pravokutnik (%s)" #: src/app/main/ui/workspace/left_toolbar.cljs -#, unused msgid "workspace.toolbar.shortcuts" msgstr "Prečaci (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:169, src/app/main/ui/workspace/top_toolbar.cljs:170 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.text" msgstr "Tekst (%s)" -#: src/app/main/ui/workspace/palette.cljs:173, src/app/main/ui/workspace/palette.cljs:174 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.text-palette" msgstr "Tipografija (%s)" -#: src/app/main/ui/workspace/sidebar/history.cljs:342 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.empty" msgstr "Do sada nema promjena povijesti" -#: src/app/main/ui/workspace/sidebar/history.cljs:147 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.entry.delete" msgstr "Izbrisano %s" -#: src/app/main/ui/workspace/sidebar/history.cljs:146 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.entry.modify" msgstr "Izmijenjeno %s" -#: src/app/main/ui/workspace/sidebar/history.cljs:148 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.entry.move" msgstr "Premiješteni objekti" -#: src/app/main/ui/workspace/sidebar/history.cljs:111 msgid "workspace.undo.entry.multiple.circle" msgstr "krugovi" -#: src/app/main/ui/workspace/sidebar/history.cljs:112 msgid "workspace.undo.entry.multiple.color" msgstr "stavke boja" -#: src/app/main/ui/workspace/sidebar/history.cljs:113 msgid "workspace.undo.entry.multiple.component" msgstr "komponente" -#: src/app/main/ui/workspace/sidebar/history.cljs:114 msgid "workspace.undo.entry.multiple.curve" msgstr "krivulje" -#: src/app/main/ui/workspace/sidebar/history.cljs:115 msgid "workspace.undo.entry.multiple.frame" msgstr "ploča" -#: src/app/main/ui/workspace/sidebar/history.cljs:116 msgid "workspace.undo.entry.multiple.group" msgstr "grupe" -#: src/app/main/ui/workspace/sidebar/history.cljs:117 msgid "workspace.undo.entry.multiple.media" msgstr "grafičke stavke" -#: src/app/main/ui/workspace/sidebar/history.cljs:118 msgid "workspace.undo.entry.multiple.multiple" msgstr "objekti" -#: src/app/main/ui/workspace/sidebar/history.cljs:119 msgid "workspace.undo.entry.multiple.page" msgstr "stranice" -#: src/app/main/ui/workspace/sidebar/history.cljs:120 +#, fuzzy msgid "workspace.undo.entry.multiple.path" msgstr "paths" -#: src/app/main/ui/workspace/sidebar/history.cljs:121 msgid "workspace.undo.entry.multiple.rect" msgstr "pravokutnici" -#: src/app/main/ui/workspace/sidebar/history.cljs:122 msgid "workspace.undo.entry.multiple.shape" msgstr "oblici" -#: src/app/main/ui/workspace/sidebar/history.cljs:123 msgid "workspace.undo.entry.multiple.text" msgstr "tekstovi" -#: src/app/main/ui/workspace/sidebar/history.cljs:124 msgid "workspace.undo.entry.multiple.typography" msgstr "tipografske stavke" -#: src/app/main/ui/workspace/sidebar/history.cljs:145 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.entry.new" msgstr "Novo %s" -#: src/app/main/ui/workspace/sidebar/history.cljs:125 msgid "workspace.undo.entry.single.circle" msgstr "krug" -#: src/app/main/ui/workspace/sidebar/history.cljs:126 msgid "workspace.undo.entry.single.color" msgstr "stavka boja" -#: src/app/main/ui/workspace/sidebar/history.cljs:127 msgid "workspace.undo.entry.single.component" msgstr "komponenta" -#: src/app/main/ui/workspace/sidebar/history.cljs:128 msgid "workspace.undo.entry.single.curve" msgstr "krivulja" -#: src/app/main/ui/workspace/sidebar/history.cljs:129 msgid "workspace.undo.entry.single.frame" msgstr "ploča" -#: src/app/main/ui/workspace/sidebar/history.cljs:130 msgid "workspace.undo.entry.single.group" msgstr "grupa" -#: src/app/main/ui/workspace/sidebar/history.cljs:131 msgid "workspace.undo.entry.single.image" msgstr "slika" -#: src/app/main/ui/workspace/sidebar/history.cljs:132 msgid "workspace.undo.entry.single.media" msgstr "grafička stavka" -#: src/app/main/ui/workspace/sidebar/history.cljs:133 msgid "workspace.undo.entry.single.multiple" msgstr "objekt" -#: src/app/main/ui/workspace/sidebar/history.cljs:134 msgid "workspace.undo.entry.single.page" msgstr "stranica" -#: src/app/main/ui/workspace/sidebar/history.cljs:135 +#, fuzzy msgid "workspace.undo.entry.single.path" msgstr "path" -#: src/app/main/ui/workspace/sidebar/history.cljs:136 msgid "workspace.undo.entry.single.rect" msgstr "pravokutnik" -#: src/app/main/ui/workspace/sidebar/history.cljs:137 msgid "workspace.undo.entry.single.shape" msgstr "oblik" -#: src/app/main/ui/workspace/sidebar/history.cljs:138 msgid "workspace.undo.entry.single.text" msgstr "tekst" -#: src/app/main/ui/workspace/sidebar/history.cljs:139 msgid "workspace.undo.entry.single.typography" msgstr "tipografska stavka" -#: src/app/main/ui/workspace/sidebar/history.cljs:149 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.entry.unknown" msgstr "Operacija izvršena %s" -#: src/app/main/ui/workspace/sidebar/history.cljs:335 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.title" msgstr "Povijest" -#: src/app/main/data/workspace/libraries.cljs:1094 +#: src/app/main/data/workspace/libraries.cljs msgid "workspace.updates.dismiss" msgstr "Odbaci" -#: src/app/main/data/workspace/libraries.cljs:1090 +#: src/app/main/data/workspace/libraries.cljs msgid "workspace.updates.there-are-updates" msgstr "Postoje ažuriranja u zajedničkim bibliotekama" -#: src/app/main/data/workspace/libraries.cljs:1097 +#: src/app/main/data/workspace/libraries.cljs msgid "workspace.updates.update" msgstr "Ažuriraj" -#, unused +#, fuzzy msgid "workspace.viewport.click-to-close-path" msgstr "Pritisni da zatvoriš path" diff --git a/frontend/translations/id.po b/frontend/translations/id.po index d1838e9ba0..9e6bef4d69 100644 --- a/frontend/translations/id.po +++ b/frontend/translations/id.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "PO-Revision-Date: 2024-06-17 08:07+0000\n" "Last-Translator: Anonymous \n" -"Language-Team: Indonesian " -"\n" +"Language-Team: Indonesian \n" "Language: id\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" @@ -11,5672 +11,5175 @@ msgstr "" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Weblate 5.6-dev\n" -#: src/app/main/ui/auth/register.cljs:151, src/app/main/ui/viewer/login.cljs:104 +#: src/app/main/ui/auth/register.cljs msgid "auth.already-have-account" msgstr "Sudah memiliki akun?" -#: src/app/main/ui/auth/register.cljs:299 +#: src/app/main/ui/auth/register.cljs msgid "auth.check-your-email" msgstr "" "Periksa surel Anda dan klik pada tautan tersebut untuk memverifikasi dan " "mulai menggunakan Penpot." -#: src/app/main/ui/auth/recovery.cljs:78 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.confirm-password" msgstr "Konfirmasi kata sandi" -#: src/app/main/ui/auth/register.cljs:163 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.create-demo-account" msgstr "Buat akun demo" #: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs -#, unused msgid "auth.create-demo-profile" msgstr "Hanya ingin mencobanya?" -#: src/app/main/ui/auth/login.cljs:43 +#: src/app/main/ui/auth/register.cljs msgid "auth.demo-warning" msgstr "" "Ini layanan DEMO, JANGAN GUNAKAN untuk pekerjaan nyata, proyek-proyek ini " "akan di hapus secara berkala." -#: src/app/main/ui/auth/login.cljs:189, src/app/main/ui/viewer/login.cljs:90 +#: src/app/main/ui/auth/login.cljs msgid "auth.forgot-password" msgstr "Lupa kata sandi?" -#: src/app/main/ui/auth/register.cljs:254 +#: src/app/main/ui/auth/register.cljs msgid "auth.fullname" msgstr "Nama Lengkap" -#: src/app/main/ui/auth/login.cljs:282 -msgid "auth.login-account-title" -msgstr "Masuk ke akun saya" - -#: src/app/main/ui/auth/register.cljs:155, src/app/main/ui/viewer/login.cljs:107 +#: src/app/main/ui/auth/register.cljs +#, fuzzy msgid "auth.login-here" msgstr "Masuk di sini" -#: src/app/main/ui/auth/login.cljs:195 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-submit" msgstr "Masuk" -#: src/app/main/ui/auth/login.cljs:285 -msgid "auth.login-tagline" -msgstr "" -"Penpot adalah peralatan desain bebas & bersumber terbuka untuk kolaborasi " -"Desain dan Kode" - -#: src/app/main/ui/auth/login.cljs:222 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-github-submit" msgstr "GitHub" -#: src/app/main/ui/auth/login.cljs:228 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-gitlab-submit" msgstr "GitLab" -#: src/app/main/ui/auth/login.cljs:216 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-google-submit" msgstr "Google" -#: src/app/main/ui/auth/login.cljs:201 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-ldap-submit" msgstr "LDAP" -#: src/app/main/ui/auth/login.cljs:234, src/app/main/ui/auth/login.cljs:255 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-oidc-submit" msgstr "OpenID Connect" -#: src/app/main/ui/auth/register.cljs:217, src/app/main/ui/dashboard/team_form.cljs:76, src/app/main/ui/onboarding/team_choice.cljs:180, src/app/main/ui/settings/access_tokens.cljs:66, src/app/main/ui/settings/feedback.cljs:34, src/app/main/ui/settings/profile.cljs:45, src/app/main/ui/workspace/sidebar/assets/groups.cljs:108 +#: src/app/main/ui/settings/team-form.cljs, src/app/main/ui/auth/register.cljs, +#: src/app/main/ui/dashboard/team_form.cljs, +#: src/app/main/ui/onboarding/team_choice.cljs, +#: src/app/main/ui/settings/access_tokens.cljs, +#: src/app/main/ui/settings/feedback.cljs, +#: src/app/main/ui/settings/profile.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "auth.name.not-all-space" msgstr "Nama harus berisi beberapa karakter selain spasi." -#: src/app/main/ui/auth/register.cljs:218, src/app/main/ui/dashboard/team_form.cljs:77, src/app/main/ui/onboarding/team_choice.cljs:181, src/app/main/ui/settings/access_tokens.cljs:67, src/app/main/ui/settings/feedback.cljs:33, src/app/main/ui/settings/profile.cljs:44, src/app/main/ui/workspace/sidebar/assets/groups.cljs:109 +#: src/app/main/ui/auth/register.cljs, +#: src/app/main/ui/dashboard/team_form.cljs, +#: src/app/main/ui/onboarding/team_choice.cljs, +#: src/app/main/ui/settings/access_tokens.cljs, +#: src/app/main/ui/settings/feedback.cljs, +#: src/app/main/ui/settings/profile.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "auth.name.too-long" msgstr "Nama harus berisi setidaknya 250 karakter." -#: src/app/main/ui/auth/recovery.cljs:71 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.new-password" msgstr "Ketik kata sandi baru" -#: src/app/main/ui/auth/recovery.cljs:42 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.notifications.invalid-token-error" msgstr "Token pemulihan tidak sah." -#: src/app/main/ui/auth/recovery.cljs:46 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.notifications.password-changed-successfully" msgstr "Kata sandi berhasil diubah" -#: src/app/main/ui/auth/recovery_request.cljs:57 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.notifications.profile-not-verified" -msgstr "Profil belum terverifikasi, harap verifikasi profil sebelum melanjutkan." +msgstr "" +"Profil belum terverifikasi, harap verifikasi profil sebelum melanjutkan." -#: src/app/main/ui/auth/recovery_request.cljs:40 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.notifications.recovery-token-sent" msgstr "Tautan pemulihan kata sandi telah dikirim ke kotak masuk Anda." -#: src/app/main/ui/auth/verify_token.cljs:47 +#: src/app/main/ui/auth/verify_token.cljs msgid "auth.notifications.team-invitation-accepted" msgstr "Berhasil bergabung ke tim" -#: src/app/main/ui/auth/login.cljs:179, src/app/main/ui/auth/register.cljs:115 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.password" msgstr "Kata sandi" -#: src/app/main/ui/auth/register.cljs:114 +#: src/app/main/ui/auth/register.cljs msgid "auth.password-length-hint" msgstr "Setidaknya 8 karakter" -#: src/app/main/ui/auth/recovery.cljs:61, src/app/main/ui/auth/recovery.cljs:62, src/app/main/ui/auth/register.cljs:81, src/app/main/ui/settings/password.cljs:75, src/app/main/ui/settings/password.cljs:76, src/app/main/ui/settings/password.cljs:77 +#: src/app/main/ui/auth/register.cljs msgid "auth.password-not-empty" msgstr "Kata sandi harus berisi beberapa karakter selain spasi." -#: src/app/main/ui/auth.cljs:41 msgid "auth.privacy-policy" msgstr "Kebijakan privasi" -#: src/app/main/ui/auth/recovery_request.cljs:88 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-submit" msgstr "Pulihkan Kata Sandi" -#: src/app/main/ui/auth/recovery_request.cljs:101 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-subtitle" msgstr "Kami akan mengirimkan Anda surel dengan instruksi" -#: src/app/main/ui/auth/recovery_request.cljs:100 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-title" msgstr "Lupa kata sandi?" -#: src/app/main/ui/auth/recovery.cljs:82 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.recovery-submit" msgstr "Ubah kata sandi Anda" -#: src/app/main/ui/auth/login.cljs:298, src/app/main/ui/viewer/login.cljs:93 +#: src/app/main/ui/auth/login.cljs msgid "auth.register" msgstr "Belum punya akun?" -#: src/app/main/ui/auth/login.cljs:302, src/app/main/ui/auth/register.cljs:121, src/app/main/ui/auth/register.cljs:263, src/app/main/ui/viewer/login.cljs:97 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.register-submit" msgstr "Buat akun baru" -#: src/app/main/ui/auth/register.cljs:140 +#: src/app/main/ui/auth/register.cljs msgid "auth.register-title" msgstr "Buat akun baru" #: src/app/main/ui/auth.cljs -#, unused msgid "auth.sidebar-tagline" msgstr "Solusi sumber terbuka untuk pembuatan desain dan prototipe." -#: src/app/main/ui/auth.cljs:33, src/app/main/ui/dashboard/sidebar.cljs:1022, src/app/main/ui/workspace/main_menu.cljs:150 msgid "auth.terms-of-service" msgstr "Kebijakan layanan" -#, unused +#: src/app/main/ui/auth/register.cljs msgid "auth.terms-privacy-agreement" msgstr "" "Ketika membuat akun baru, Anda menyetujui kebijakan layanan dan kebijakan " "privasi kami." -#: src/app/main/ui/auth/register.cljs:297 +#: src/app/main/ui/auth/register.cljs msgid "auth.verification-email-sent" msgstr "Kami telah mengirimkan surel verifikasi ke" #: src/app/main/ui/onboarding/questions.cljs -#, unused msgid "branding-illustrations-marketing-pieces" msgstr "...pencitraan merek, ilustrasi, bagian pemasaran, dll." -#: src/app/main/ui/workspace/libraries.cljs:228 msgid "common.publish" msgstr "Terbitkan" -#: src/app/main/ui/viewer/share_link.cljs:304, src/app/main/ui/viewer/share_link.cljs:314 msgid "common.share-link.all-users" msgstr "Semua pengguna Penpot" -#: src/app/main/ui/viewer/share_link.cljs:198 msgid "common.share-link.confirm-deletion-link-description" msgstr "" "Apakah Anda yakin ingin menghapus tautan ini? Jika Anda menghapusnya, maka " "tautan tersebut tidak akan lagi tersedia bagi siapa pun" -#: src/app/main/ui/viewer/share_link.cljs:259, src/app/main/ui/viewer/share_link.cljs:289 msgid "common.share-link.current-tag" msgstr "(saat ini)" -#: src/app/main/ui/viewer/share_link.cljs:207, src/app/main/ui/viewer/share_link.cljs:214 msgid "common.share-link.destroy-link" msgstr "Hancurkan tautan" -#: src/app/main/ui/viewer/share_link.cljs:221 msgid "common.share-link.get-link" msgstr "Dapatkan tautan" -#: src/app/main/ui/viewer/share_link.cljs:139 msgid "common.share-link.link-copied-success" msgstr "Tautan berhasil disalin" -#: src/app/main/ui/viewer/share_link.cljs:231 msgid "common.share-link.manage-ops" msgstr "Atur perizinan" -#: src/app/main/ui/viewer/share_link.cljs:277 msgid "common.share-link.page-shared" msgid_plural "common.share-link.page-shared" msgstr[0] "%s halaman dibagikan" -#: src/app/main/ui/viewer/share_link.cljs:298 msgid "common.share-link.permissions-can-comment" msgstr "Dapat berkomentar" -#: src/app/main/ui/viewer/share_link.cljs:308 msgid "common.share-link.permissions-can-inspect" msgstr "Dapat menginspeksi kode" -#: src/app/main/ui/viewer/share_link.cljs:193 msgid "common.share-link.permissions-hint" msgstr "Siapapun yang memiliki tautan dapat mengakses" -#: src/app/main/ui/viewer/share_link.cljs:241 msgid "common.share-link.permissions-pages" msgstr "Halaman yang dibagikan" -#: src/app/main/ui/viewer/share_link.cljs:183 msgid "common.share-link.placeholder" msgstr "Tautan yang dapat dibagikan akan muncul di sini" -#: src/app/main/ui/viewer/share_link.cljs:303, src/app/main/ui/viewer/share_link.cljs:313 msgid "common.share-link.team-members" msgstr "Hanya anggota tim" -#: src/app/main/ui/viewer/share_link.cljs:171 msgid "common.share-link.title" msgstr "Bagikan prototipe" -#: src/app/main/ui/viewer/share_link.cljs:269 msgid "common.share-link.view-all" msgstr "Pilih Semua" -#: src/app/main/ui/workspace/libraries.cljs:224 msgid "common.unpublish" msgstr "Batalkan penerbitan" -#: src/app/main/ui/dashboard/projects.cljs:85 +#: src/app/main/ui/dashboard/projects.cljs msgid "dasboard.team-hero.management" msgstr "Pengelolaan tim" -#: src/app/main/ui/dashboard/projects.cljs:84 +#: src/app/main/ui/dashboard/projects.cljs msgid "dasboard.team-hero.text" msgstr "" "Penpot dimaksud untuk tim. Undang anggota untuk bekerja bersama pada " "berbagai proyek dan berkas" -#: src/app/main/ui/dashboard/projects.cljs:82 +#: src/app/main/ui/dashboard/projects.cljs msgid "dasboard.team-hero.title" msgstr "Bersekutu!" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.tutorial-hero.info" msgstr "" -"Pelajari dasarnya di Penpot sambil bersenang-senang dengan tutorial " -"langsung ini." +"Pelajari dasarnya di Penpot sambil bersenang-senang dengan tutorial langsung " +"ini." #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.tutorial-hero.start" msgstr "Mulai tutorial" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.tutorial-hero.title" msgstr "Tutorial Langsung" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.walkthrough-hero.info" msgstr "Lihat sekitar Penpot dan ketahui fitur utamanya." #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.walkthrough-hero.start" msgstr "Mulai tur" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.walkthrough-hero.title" msgstr "Panduan Antarmuka" -#: src/app/main/ui/settings/access_tokens.cljs:115 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.copied-success" msgstr "Token disalin" -#: src/app/main/ui/settings/access_tokens.cljs:202 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.create" msgstr "Buat token baru" -#: src/app/main/ui/settings/access_tokens.cljs:76 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.create.success" msgstr "Token akses berhasil dibuat." -#: src/app/main/ui/settings/access_tokens.cljs:300 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.empty.add-one" msgstr "Tekan tombol \"Buat token baru\" untuk membuat token." -#: src/app/main/ui/settings/access_tokens.cljs:299 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.empty.no-access-tokens" msgstr "Anda belum memiliki token." -#: src/app/main/ui/settings/access_tokens.cljs:53 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.errors-required-name" msgstr "Nama diperlukan" -#: src/app/main/ui/settings/access_tokens.cljs:147 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-180-days" msgstr "180 hari" -#: src/app/main/ui/settings/access_tokens.cljs:144 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-30-days" msgstr "30 hari" -#: src/app/main/ui/settings/access_tokens.cljs:145 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-60-days" msgstr "60 hari" -#: src/app/main/ui/settings/access_tokens.cljs:146 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-90-days" msgstr "90 hari" -#: src/app/main/ui/settings/access_tokens.cljs:143 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-never" msgstr "Tidak pernah" -#: src/app/main/ui/settings/access_tokens.cljs:282 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expired-on" msgstr "Telah kedaluwarsa pada %s" -#: src/app/main/ui/settings/access_tokens.cljs:283 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expires-on" msgstr "Kedaluwarsa pada %s" -#: src/app/main/ui/settings/access_tokens.cljs:281 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.no-expiration" msgstr "Tidak ada tanggal kedaluwarsa" -#: src/app/main/ui/settings/access_tokens.cljs:197 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.personal" msgstr "Token akses pribadi" -#: src/app/main/ui/settings/access_tokens.cljs:198 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.personal.description" msgstr "" "Token akses pribadi berfungsi sebagai alternatif sistem autentikasi nama " "pengguna dan kata sandi dan dapat digunakan untuk memperbolehkan sebuah " "aplikasi untuk mengakses API Penpot internal" -#: src/app/main/ui/settings/access_tokens.cljs:154 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.token-will-expire" msgstr "Token akan kedaluwarsa pada %s" -#: src/app/main/ui/settings/access_tokens.cljs:155 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.token-will-not-expire" msgstr "Token tidak memiliki tanggal kedaluwarsa" -#: src/app/main/ui/dashboard/file_menu.cljs:291, src/app/main/ui/workspace/main_menu.cljs:572 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.add-shared" msgstr "Tambahkan sebagai Pustaka Bersama" -#: src/app/main/ui/settings/profile.cljs:75 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.change-email" msgstr "Ubah surel" -#: src/app/main/data/dashboard.cljs:762, src/app/main/data/dashboard.cljs:983 +#: src/app/main/data/dashboard.cljs, src/app/main/data/dashboard.cljs msgid "dashboard.copy-suffix" msgstr "(salin)" -#: src/app/main/ui/dashboard/sidebar.cljs:338 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.create-new-team" msgstr "Buat tim baru" -#: src/app/main/ui/components/context_menu_a11y.cljs:256, src/app/main/ui/dashboard/sidebar.cljs:646 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.default-team-name" msgstr "Penpot Anda" -#: src/app/main/ui/dashboard/sidebar.cljs:571 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.delete-team" msgstr "Hapus tim" -#: src/app/main/ui/dashboard/file_menu.cljs:296, src/app/main/ui/workspace/main_menu.cljs:589 msgid "dashboard.download-binary-file" msgstr "Unduh berkas Penpot (.penpot)" -#: src/app/main/ui/dashboard/file_menu.cljs:300, src/app/main/ui/workspace/main_menu.cljs:597 msgid "dashboard.download-standard-file" msgstr "Unduh berkas standar (.svg + .json)" -#: src/app/main/ui/dashboard/file_menu.cljs:276, src/app/main/ui/dashboard/project_menu.cljs:90 +#: src/app/main/ui/dashboard/project_menu.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.duplicate" msgstr "Duplikasi" -#: src/app/main/ui/dashboard/file_menu.cljs:240 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.duplicate-multi" msgstr "Gandakan % berkas" -#: src/app/main/ui/dashboard/placeholder.cljs:32 -#, markdown +#: src/app/main/ui/dashboard/grid.cljs msgid "dashboard.empty-placeholder-drafts" msgstr "" "Berkas yang ditambahkan ke Pustaka akan muncul di sini. Coba membagikan " -"berkas Anda atau menambahkan dari [Pustaka & " -"templat](https://penpot.app/libraries-templates) kami." +"berkas Anda atau menambahkan dari [Pustaka & templat](https://penpot.app/" +"libraries-templates) kami." -#: src/app/main/ui/dashboard/file_menu.cljs:249 msgid "dashboard.export-binary-multi" msgstr "Unduh %s berkas Penpot (.penpot)" -#: src/app/main/ui/workspace/main_menu.cljs:605 msgid "dashboard.export-frames" msgstr "Ekspor papan sebagai PDF" -#: src/app/main/ui/export.cljs:201 +#: src/app/main/ui/export.cljs msgid "dashboard.export-frames.title" msgstr "Ekspor sebagai PDF" -#, unused msgid "dashboard.export-multi" msgstr "Ekspor %s berkas Penpot" -#: src/app/main/ui/export.cljs:109 +#: src/app/main/ui/export.cljs msgid "dashboard.export-multiple.selected" msgstr "%s dari %s elemen dipilih" -#: src/app/main/ui/workspace/main_menu.cljs:578 +#: src/app/main/ui/workspace/header.cljs msgid "dashboard.export-shapes" msgstr "Ekspor" -#: src/app/main/ui/export.cljs:180 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.how-to" msgstr "" "Anda dapat menambahkan pengaturan pengeksporan ke elemen dari properti " "desain (di bawah dari bilah sisi kanan)." -#: src/app/main/ui/export.cljs:184 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.how-to-link" msgstr "Info bagaimana menetapkan pengeksporan di Penpot." -#: src/app/main/ui/export.cljs:179 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.no-elements" msgstr "Tidak ada elemen dengan pengaturan pengeksporan." -#: src/app/main/ui/export.cljs:190 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.title" msgstr "Ekspor pilihan" -#: src/app/main/ui/dashboard/file_menu.cljs:252 msgid "dashboard.export-standard-multi" msgstr "Unduh %s berkas standar (.svg + .json)" -#: src/app/main/ui/export.cljs:427 msgid "dashboard.export.detail" msgstr "* Dapat mencakup komponen, grafik, warna dan/atau tipografi." -#: src/app/main/ui/export.cljs:426 msgid "dashboard.export.explain" msgstr "" "Satu atau lebih berkas yang ingin Anda ekspor menggunakan pustaka bersama. " "Apa yang ingin Anda lakukan dengan asetnya*?" -#: src/app/main/ui/export.cljs:435 msgid "dashboard.export.options.all.message" msgstr "berkas dengan pustaka bersama akan dimasukkan dalam hasil ekspor." -#: src/app/main/ui/export.cljs:436 msgid "dashboard.export.options.all.title" msgstr "Ekspor pustaka bersama" -#: src/app/main/ui/export.cljs:437 msgid "dashboard.export.options.detach.message" msgstr "" "Pustaka bersama tidak akan dimasukkan dalam hasil ekspor dan tidak ada aset " "yang akan ditambahkan ke pustaka. " -#: src/app/main/ui/export.cljs:438 msgid "dashboard.export.options.detach.title" msgstr "Perlakukan aset pustaka terbagi sebagai objek dasar" -#: src/app/main/ui/export.cljs:439 msgid "dashboard.export.options.merge.message" msgstr "" "Berkas Anda akan diekspor dengan semua aset eksternal tergabung dalam " "pustaka berkas." -#: src/app/main/ui/export.cljs:440 msgid "dashboard.export.options.merge.title" msgstr "Termasuk aset pustaka terbagi dalam pustaka berkas" -#: src/app/main/ui/export.cljs:418 msgid "dashboard.export.title" msgstr "Ekspor berkas" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:309 msgid "dashboard.fonts.deleted-placeholder" msgstr "Fon dihapus" -#: src/app/main/ui/dashboard/fonts.cljs:206 +#: src/app/main/ui/dashboard/fonts.cljs msgid "dashboard.fonts.dismiss-all" msgstr "Abaikan semua" -#: src/app/main/ui/dashboard/fonts.cljs:436 msgid "dashboard.fonts.empty-placeholder" msgstr "Fon khusus yang Anda unggah akan muncul di sini." -#: src/app/main/ui/dashboard/fonts.cljs:194 +#: src/app/main/ui/dashboard/fonts.cljs msgid "dashboard.fonts.fonts-added" msgid_plural "dashboard.fonts.fonts-added" msgstr[0] "%s fon ditambahkan" -#: src/app/main/ui/dashboard/fonts.cljs:170 -#, markdown msgid "dashboard.fonts.hero-text1" msgstr "" -"Fon web apa pun yang Anda unggah di sini akan ditambahkan ke daftar " -"keluarga fon yang tersedia di properti teks dari berkas dari tim ini. Fon " -"dengan nama keluarga fon yang sama akan dikelompokkan sebagai **keluarga " -"fon tunggal**. Anda dapat mengunggah fon dengan format berikut: **TTF, OTF, " -"dan WOFF** (hanya satu yang diperlukan)." +"Fon web apa pun yang Anda unggah di sini akan ditambahkan ke daftar keluarga " +"fon yang tersedia di properti teks dari berkas dari tim ini. Fon dengan nama " +"keluarga fon yang sama akan dikelompokkan sebagai **keluarga fon tunggal**. " +"Anda dapat mengunggah fon dengan format berikut: **TTF, OTF, dan WOFF** " +"(hanya satu yang diperlukan)." -#: src/app/main/ui/dashboard/fonts.cljs:182 -#, markdown msgid "dashboard.fonts.hero-text2" msgstr "" "Anda seharusnya hanya mengunggah fon yang Anda miliki atau memiliki izin " "untuk menggunakannya dalam Penpot. Ketahui lebih lanjut dalam bagian Hak " -"konten (Content rights) dari [Ketentuan Layanan " -"Penpot](https://penpot.app/terms.html). Anda mungkin juga ingin membaca " -"tentang [lisensi fon](https://www.typography.com/faq)." +"konten (Content rights) dari [Ketentuan Layanan Penpot](https://penpot.app/" +"terms.html). Anda mungkin juga ingin membaca tentang [lisensi fon](https://" +"www.typography.com/faq)." -#: src/app/main/ui/dashboard/fonts.cljs:202 +#: src/app/main/ui/dashboard/fonts.cljs msgid "dashboard.fonts.upload-all" msgstr "Unggah semua" -#: src/app/main/ui/dashboard/fonts.cljs:187 -#, markdown msgid "dashboard.fonts.warning-text" msgstr "" -"Kami telah mendeteksi masalah yang mungkin ada dalam fon Anda terkair " -"dengan metrik vertikal untuk berbagai sistem operasi. Supaya bisa " -"diperiksa, Anda dapat menggunakan layanan metrik vertikal fon seperti [yang " -"ini](https://vertical-metrics.netlify.app/). Sebagai tambahan, kami juga " -"menyarankan menggunakan [Transfonter](https://transfonter.org/) untuk " -"membuat fon web dan memperbaiki kesalahan. " +"Kami telah mendeteksi masalah yang mungkin ada dalam fon Anda terkair dengan " +"metrik vertikal untuk berbagai sistem operasi. Supaya bisa diperiksa, Anda " +"dapat menggunakan layanan metrik vertikal fon seperti [yang ini](https://" +"vertical-metrics.netlify.app/). Sebagai tambahan, kami juga menyarankan " +"menggunakan [Transfonter](https://transfonter.org/) untuk membuat fon web " +"dan memperbaiki kesalahan. " -#: src/app/main/ui/dashboard/import.cljs:472, src/app/main/ui/dashboard/project_menu.cljs:108 msgid "dashboard.import" msgstr "Impor berkas Penpot" -#: src/app/main/ui/dashboard/import.cljs:304, src/app/worker/import.cljs:753, src/app/worker/import.cljs:755 msgid "dashboard.import.analyze-error" msgstr "Aduh! Kami tidak dapat mengimpor berkas ini" -#, unused msgid "dashboard.import.analyze-error.components-v2" -msgstr "Berkas dengan komponen v2 diaktifkan tetapi tim ini belum mendukungnya." +msgstr "" +"Berkas dengan komponen v2 diaktifkan tetapi tim ini belum mendukungnya." -#: src/app/main/ui/dashboard/import.cljs:308 msgid "dashboard.import.import-error" msgstr "Terdapat masalah saat mengimpor berkas. Berkasnya tidak terimpor." -#: src/app/main/ui/dashboard/import.cljs:493 msgid "dashboard.import.import-message" msgstr "%s berkas telah berhasil diimpor." -#: src/app/main/ui/dashboard/import.cljs:481, src/app/main/ui/dashboard/import.cljs:488 msgid "dashboard.import.import-warning" msgstr "Beberapa berkas berisi objek yang tidak valid yang telah dihapus." -#: src/app/main/ui/dashboard/import.cljs:144 msgid "dashboard.import.progress.process-colors" msgstr "Memproses warna" -#: src/app/main/ui/dashboard/import.cljs:153 msgid "dashboard.import.progress.process-components" msgstr "Memproses komponen" -#: src/app/main/ui/dashboard/import.cljs:150 msgid "dashboard.import.progress.process-media" msgstr "Memproses media" -#: src/app/main/ui/dashboard/import.cljs:141 msgid "dashboard.import.progress.process-page" msgstr "Memproses halaman: %s" -#: src/app/main/ui/dashboard/import.cljs:147 msgid "dashboard.import.progress.process-typographies" msgstr "Memproses tipografi" -#: src/app/main/ui/dashboard/import.cljs:135 msgid "dashboard.import.progress.upload-data" msgstr "Mengunggah data ke server (%s/%s)" -#: src/app/main/ui/dashboard/import.cljs:138 msgid "dashboard.import.progress.upload-media" msgstr "Mengunggah berkas: %s" -#: src/app/main/ui/dashboard/team.cljs:109 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.invite-profile" msgstr "Undang orang" -#: src/app/main/ui/dashboard/sidebar.cljs:547, src/app/main/ui/dashboard/sidebar.cljs:556, src/app/main/ui/dashboard/sidebar.cljs:563, src/app/main/ui/dashboard/team.cljs:312 +#: src/app/main/ui/dashboard/sidebar.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.leave-team" msgstr "Tinggalkan tim" -#: src/app/main/ui/dashboard/templates.cljs:88, src/app/main/ui/dashboard/templates.cljs:163 msgid "dashboard.libraries-and-templates" msgstr "Pustaka & Template" -#: src/app/main/ui/dashboard/templates.cljs:164 msgid "dashboard.libraries-and-templates.explore" msgstr "Jelajahi lebih banyak dan pelajari cara berkontribusi" -#: src/app/main/ui/dashboard/import.cljs:365 msgid "dashboard.libraries-and-templates.import-error" msgstr "Terjadi masalah saat mengimpor template. Template tidak diimpor." -#: src/app/main/ui/dashboard/libraries.cljs:53 +#: src/app/main/ui/dashboard/libraries.cljs msgid "dashboard.libraries-title" msgstr "Pustaka" -#: src/app/main/ui/dashboard/placeholder.cljs:45 +#: src/app/main/ui/dashboard/grid.cljs msgid "dashboard.loading-files" msgstr "memuat berkas Anda …" -#: src/app/main/ui/dashboard/fonts.cljs:431 msgid "dashboard.loading-fonts" msgstr "memuat fon Anda …" -#: src/app/main/ui/dashboard/file_menu.cljs:281, src/app/main/ui/dashboard/project_menu.cljs:100 +#: src/app/main/ui/dashboard/project_menu.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.move-to" msgstr "Pindahkan ke" -#: src/app/main/ui/dashboard/file_menu.cljs:245 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.move-to-multi" msgstr "Pindahkan %s berkas ke" -#: src/app/main/ui/dashboard/file_menu.cljs:226 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.move-to-other-team" msgstr "Pindahkan ke tim lain" -#: src/app/main/ui/dashboard/files.cljs:105, src/app/main/ui/dashboard/projects.cljs:252, src/app/main/ui/dashboard/projects.cljs:253 +#: src/app/main/ui/dashboard/projects.cljs, +#: src/app/main/ui/dashboard/files.cljs msgid "dashboard.new-file" msgstr "+ Buat Berkas" -#: src/app/main/data/dashboard.cljs:958, src/app/main/data/dashboard.cljs:1181 +#: src/app/main/data/dashboard.cljs msgid "dashboard.new-file-prefix" msgstr "Berkas Baru" -#: src/app/main/ui/dashboard/projects.cljs:55 +#: src/app/main/ui/dashboard/projects.cljs msgid "dashboard.new-project" msgstr "+ Buat Proyek" -#: src/app/main/data/dashboard.cljs:726, src/app/main/data/dashboard.cljs:1184 +#: src/app/main/data/dashboard.cljs msgid "dashboard.new-project-prefix" msgstr "Proyek Baru" -#: src/app/main/ui/dashboard/search.cljs:60 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.no-matches-for" msgstr "Tidak ada hasil yang ditemukan untuk “%s”" -#: src/app/main/ui/dashboard/sidebar.cljs:827 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.no-projects-placeholder" msgstr "Proyek yang disemat akan muncul di sini" -#: src/app/main/ui/auth/verify_token.cljs:33 +#: src/app/main/ui/auth/verify_token.cljs msgid "dashboard.notifications.email-changed-successfully" msgstr "Alamat surel Anda berhasil diperbarui" -#: src/app/main/ui/auth/verify_token.cljs:27 +#: src/app/main/ui/auth/verify_token.cljs msgid "dashboard.notifications.email-verified-successfully" msgstr "Alamat surel Anda berhasil diverifikasi" -#: src/app/main/ui/settings/password.cljs:37 +#: src/app/main/ui/settings/password.cljs msgid "dashboard.notifications.password-saved" msgstr "Berhasil menyimpan kata sandi!" -#: src/app/main/ui/dashboard/team.cljs:1081 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.num-of-members" msgstr "%s anggota" -#: src/app/main/ui/dashboard/file_menu.cljs:267 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.open-in-new-tab" msgstr "Buka berkas di tab baru" -#: src/app/main/ui/dashboard/files.cljs:117, src/app/main/ui/dashboard/projects.cljs:260, src/app/main/ui/dashboard/projects.cljs:261 msgid "dashboard.options" msgstr "Opsi" -#: src/app/main/ui/settings/password.cljs:106, src/app/main/ui/settings/password.cljs:119 +#: src/app/main/ui/settings/password.cljs msgid "dashboard.password-change" msgstr "Ubah kata sandi" -#: src/app/main/ui/dashboard/pin_button.cljs:24, src/app/main/ui/dashboard/project_menu.cljs:95 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.pin-unpin" msgstr "Semat/Lepas semat" -#: src/app/main/ui/dashboard/projects.cljs:51 +#: src/app/main/ui/dashboard/projects.cljs msgid "dashboard.projects-title" msgstr "Proyek" -#: src/app/main/ui/settings/profile.cljs:86 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.remove-account" msgstr "Ingin menghapus akun Anda?" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.remove-shared" msgstr "Hapus sebagai Pustaka Terbagi" -#: src/app/main/ui/settings/profile.cljs:78 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.save-settings" msgstr "Simpan pengaturan" -#: src/app/main/ui/dashboard/sidebar.cljs:246, src/app/main/ui/dashboard/sidebar.cljs:247 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.search-placeholder" msgstr "Cari…" -#: src/app/main/ui/dashboard/search.cljs:55 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.searching-for" msgstr "Mencari “%s”…" -#: src/app/main/ui/settings/options.cljs:56 +#: src/app/main/ui/settings/options.cljs msgid "dashboard.select-ui-language" msgstr "Pilih bahasa antarmuka" -#: src/app/main/ui/settings/options.cljs:63 +#: src/app/main/ui/settings/options.cljs msgid "dashboard.select-ui-theme" msgstr "Pilih tema" -#: src/app/main/ui/dashboard/projects.cljs:282 +#: src/app/main/ui/dashboard/grid.cljs msgid "dashboard.show-all-files" msgstr "Tampilkan semua berkas" -#: src/app/main/ui/dashboard/file_menu.cljs:96 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-delete-file" msgid_plural "dashboard.success-delete-file" msgstr[0] "Berkas Anda berhasil dihapus" -#: src/app/main/ui/dashboard/project_menu.cljs:59 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.success-delete-project" msgstr "Proyek Anda berhasil dihapus" -#: src/app/main/ui/dashboard/file_menu.cljs:91 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-duplicate-file" msgid_plural "dashboard.success-delete-file" msgstr[0] "Berkas Anda berhasil digandakan" -#: src/app/main/ui/dashboard/project_menu.cljs:33 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.success-duplicate-project" msgstr "Proyek Anda berhasil digandakan" -#: src/app/main/ui/dashboard/file_menu.cljs:130, src/app/main/ui/dashboard/grid.cljs:558, src/app/main/ui/dashboard/sidebar.cljs:152 +#: src/app/main/ui/dashboard/grid.cljs, src/app/main/ui/dashboard/sidebar.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-move-file" msgstr "Berkas Anda berhasil dipindah" -#: src/app/main/ui/dashboard/file_menu.cljs:129 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-move-files" msgstr "Berkas Anda berhasil dipindah" -#: src/app/main/ui/dashboard/project_menu.cljs:54 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.success-move-project" msgstr "Proyek Anda berhasil dipindah" -#: src/app/main/ui/dashboard/team.cljs:1052 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.team-info" msgstr "Info tim" -#: src/app/main/ui/dashboard/team.cljs:1070 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.team-members" msgstr "Anggota tim" -#: src/app/main/ui/dashboard/team.cljs:1085 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.team-projects" msgstr "Proyek tim" -#: src/app/main/ui/settings/options.cljs:61 +#: src/app/main/ui/settings/options.cljs msgid "dashboard.theme-change" msgstr "Tema antarmuka" -#: src/app/main/ui/dashboard/search.cljs:42 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.title-search" msgstr "Hasil pencarian" -#: src/app/main/ui/dashboard/search.cljs:50 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.type-something" msgstr "Ketik untuk mencari hasil" -#: src/app/main/ui/dashboard/file_menu.cljs:287, src/app/main/ui/workspace/main_menu.cljs:566 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.unpublish-shared" msgstr "Batal Penerbitan Pustaka" -#: src/app/main/ui/settings/options.cljs:71 +#: src/app/main/ui/settings/password.cljs, +#: src/app/main/ui/settings/options.cljs msgid "dashboard.update-settings" msgstr "Perbarui pengaturan" -#: src/app/main/ui/dashboard/team.cljs:861 msgid "dashboard.webhooks.active" msgstr "Aktif" -#: src/app/main/ui/dashboard/team.cljs:862 msgid "dashboard.webhooks.active.explain" msgstr "Ketika kaitan ini dipicu detail peristiwa akan dikirim" -#: src/app/main/ui/dashboard/team.cljs:852 msgid "dashboard.webhooks.content-type" msgstr "Jenis konten" -#: src/app/main/ui/dashboard/team.cljs:885 msgid "dashboard.webhooks.create" msgstr "Buat kaitan web" -#: src/app/main/ui/dashboard/team.cljs:775 msgid "dashboard.webhooks.create.success" msgstr "Kaitan web berhasil dibuat." -#: src/app/main/ui/dashboard/team.cljs:882 msgid "dashboard.webhooks.description" msgstr "" "Kaitan web (webhook) adalah cara yang sederhana untuk memperbolehkan situs " -"web dan aplikasi lain untuk diberi tahu ketika beberapa peristiwa terjadi " -"di Penpot. Kami mengirim permintaan POST untuk setiap URL yang Anda " -"sediakan." +"web dan aplikasi lain untuk diberi tahu ketika beberapa peristiwa terjadi di " +"Penpot. Kami mengirim permintaan POST untuk setiap URL yang Anda sediakan." -#: src/app/main/ui/dashboard/team.cljs:1005 msgid "dashboard.webhooks.empty.add-one" msgstr "Klik tombol \"Tambahkan kaitan web\" untuk menambahkan." -#: src/app/main/ui/dashboard/team.cljs:1004 msgid "dashboard.webhooks.empty.no-webhooks" msgstr "Tidak ada kaitan web yang dibuat sejauh ini." -#, unused msgid "dashboard.webhooks.update.success" msgstr "Kaitan web berhasil diperbarui." -#: src/app/main/ui/settings.cljs:31 +#: src/app/main/ui/settings.cljs msgid "dashboard.your-account-title" msgstr "Akun Anda" -#: src/app/main/ui/settings/profile.cljs:70 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.your-email" msgstr "Surel" -#: src/app/main/ui/settings/profile.cljs:62 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.your-name" msgstr "Nama Anda" -#: src/app/main/ui/dashboard/file_menu.cljs:38, src/app/main/ui/dashboard/fonts.cljs:33, src/app/main/ui/dashboard/libraries.cljs:42, src/app/main/ui/dashboard/projects.cljs:318, src/app/main/ui/dashboard/search.cljs:30, src/app/main/ui/dashboard/sidebar.cljs:312, src/app/main/ui/dashboard/team.cljs:495, src/app/main/ui/dashboard/team.cljs:729, src/app/main/ui/dashboard/team.cljs:991, src/app/main/ui/dashboard/team.cljs:1038 +#: src/app/main/ui/dashboard/search.cljs, src/app/main/ui/dashboard/team.cljs, +#: src/app/main/ui/dashboard/libraries.cljs, +#: src/app/main/ui/dashboard/projects.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.your-penpot" msgstr "Penpot Anda" -#: src/app/main/ui/alert.cljs:32 +#: src/app/main/ui/alert.cljs msgid "ds.alert-ok" msgstr "Oke" -#: src/app/main/ui/alert.cljs:31, src/app/main/ui/alert.cljs:34 +#: src/app/main/ui/alert.cljs msgid "ds.alert-title" msgstr "Peringatan" -#: src/app/main/ui/confirm.cljs:83 +#: src/app/main/ui/confirm.cljs msgid "ds.component-subtitle" msgstr "Komponen untuk diperbarui:" -#: src/app/main/ui/confirm.cljs:36, src/app/main/ui/workspace/plugins.cljs:246 +#: src/app/main/ui/confirm.cljs msgid "ds.confirm-cancel" msgstr "Batal" -#: src/app/main/ui/confirm.cljs:37, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:141 +#: src/app/main/ui/confirm.cljs msgid "ds.confirm-ok" msgstr "Oke" -#: src/app/main/ui/confirm.cljs:35, src/app/main/ui/confirm.cljs:39 +#: src/app/main/ui/confirm.cljs, src/app/main/ui/confirm.cljs msgid "ds.confirm-title" msgstr "Apakah Anda yakin?" -#: src/app/main/data/users.cljs:705 -msgid "errors.auth-provider-not-allowed" -msgstr "Penyedia autentikasi tidak diperbolehkan untuk profil ini" - -#: src/app/main/ui/auth/login.cljs:62 +#: src/app/main/ui/auth/login.cljs msgid "errors.auth-provider-not-configured" msgstr "Penyedia autentikasi tidak dikonfigurasi." -#: src/app/main/errors.cljs:104 msgid "errors.auth.unable-to-login" msgstr "Sepertinya Anda tidak terautentikasi atau sesi kedaluwarsa." -#: src/app/main/data/fonts.cljs:189 msgid "errors.bad-font" msgstr "Fon %s tidak dapat dimuat" -#: src/app/main/data/fonts.cljs:188 msgid "errors.bad-font-plural" msgstr "Fon %s tidak dapat dimuat" -#: src/app/main/data/workspace/media.cljs:198 msgid "errors.cannot-upload" msgstr "Tidak dapat mengunggah berkas media." -#: src/app/main/data/workspace.cljs:1598 +#: src/app/main/data/workspace.cljs msgid "errors.clipboard-not-implemented" msgstr "Peramban Anda tidak dapat melakukan operasi ini" -#: src/app/main/ui/auth/verify_token.cljs:82, src/app/main/ui/settings/change_email.cljs:46 +#: src/app/main/ui/auth/verify_token.cljs, +#: src/app/main/ui/settings/change_email.cljs msgid "errors.email-already-exists" msgstr "Surel sudah digunakan" -#: src/app/main/ui/auth/verify_token.cljs:87 +#: src/app/main/ui/auth/verify_token.cljs msgid "errors.email-already-validated" msgstr "Surel sudah divalidasi." -#: src/app/main/ui/settings/password.cljs:28 msgid "errors.email-as-password" msgstr "Anda tidak dapat menggunakan surel Anda sebagai kata sandi" -#: src/app/main/data/users.cljs:707, src/app/main/ui/auth/register.cljs:63 -msgid "errors.email-domain-not-allowed" -msgstr "Domain tidak diperbolehkan" - -#: src/app/main/ui/auth/recovery_request.cljs:63, src/app/main/ui/dashboard/team.cljs:578, src/app/main/ui/settings/change_email.cljs:54 +#: src/app/main/ui/auth/register.cljs, +#: src/app/main/ui/auth/recovery_request.cljs, +#: src/app/main/ui/settings/change_email.cljs, +#: src/app/main/ui/dashboard/team.cljs msgid "errors.email-has-permanent-bounces" msgstr "Surel “%s” memiliki banyak laporan lompatan permanen." -#: src/app/main/ui/auth/login.cljs:81, src/app/main/ui/auth/recovery_request.cljs:31, src/app/main/ui/auth/register.cljs:43 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs, +#: src/app/main/ui/auth/recovery_request.cljs msgid "errors.email-invalid" msgstr "Silakan menyediakan surel yang valid" -#: src/app/main/ui/settings/change_email.cljs:35 +#: src/app/main/ui/settings/change_email.cljs msgid "errors.email-invalid-confirmation" msgstr "Surel konfirmasi harus cocok" -#: src/app/main/ui/dashboard/team.cljs:170 msgid "errors.email-spam-or-permanent-bounces" msgstr "Surel “%s” telah dilaporkan sebagai spam atau lompatan permanen." -#: src/app/main/errors.cljs:227 +#: src/app/main/errors.cljs msgid "errors.feature-mismatch" msgstr "" "Sepertinya Anda membuka berkas yang memiliki fitur '%s' aktif tetapi " "frontend Penpot Anda tidak mendukungnya atau menonaktifkannya." -#: src/app/main/errors.cljs:231, src/app/main/errors.cljs:245 +#: src/app/main/errors.cljs msgid "errors.feature-not-supported" msgstr "Fitur '%s' tidak didukung." -#: src/app/main/errors.cljs:223 +#: src/app/main/errors.cljs msgid "errors.file-feature-mismatch" msgstr "" "Sepertinya ada ketidakcocokan antara fitur yang diaktifkan dengan fitur " "berkas yang sedang Anda buka. Migrasi untuk '%s' harus diterapkan sebelum " "berkasnya dapat dibuka." -#: src/app/main/data/users.cljs:709, src/app/main/ui/auth/login.cljs:65, src/app/main/ui/auth/login.cljs:116, src/app/main/ui/auth/register.cljs:69, src/app/main/ui/auth/register.cljs:237, src/app/main/ui/auth/verify_token.cljs:92, src/app/main/ui/dashboard/team.cljs:173, src/app/main/ui/onboarding/team_choice.cljs:95, src/app/main/ui/settings/access_tokens.cljs:91, src/app/main/ui/settings/feedback.cljs:52 +#: src/app/main/ui/auth/verify_token.cljs, +#: src/app/main/ui/settings/feedback.cljs, src/app/main/ui/dashboard/team.cljs msgid "errors.generic" msgstr "Sesuatu yang salah terjadi." -#: src/app/main/ui/components/color_input.cljs:57 +#: src/app/main/ui/components/color_input.cljs msgid "errors.invalid-color" msgstr "Warna tidak valid" -#: src/app/main/ui/static.cljs:43 +#: src/app/main/ui/auth/verify_token.cljs msgid "errors.invite-invalid" msgstr "Undangan tidak valid" -#: src/app/main/ui/static.cljs:44 msgid "errors.invite-invalid.info" msgstr "Undangan ini mungkin dibatalkan atau telah kedaluwarsa." -#: src/app/main/ui/auth/login.cljs:101 +#: src/app/main/ui/auth/login.cljs msgid "errors.ldap-disabled" msgstr "Autentikasi LDAP dinonaktifkan." -#: src/app/main/errors.cljs:239 +#: src/app/main/errors.cljs msgid "errors.max-quote-reached" msgstr "Anda telah meraih kutipan '%s'. Hubungi dukungan." -#: src/app/main/data/workspace/media.cljs:184 +#: src/app/main/data/workspace/persistence.cljs msgid "errors.media-too-large" msgstr "Gambar terlalu besar untuk disematkan." -#: src/app/main/data/media.cljs:68, src/app/main/data/workspace/media.cljs:187 +#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs msgid "errors.media-type-mismatch" msgstr "Serpertinya konten gambar tidak cocok dengan ekstensi berkas." -#: src/app/main/data/media.cljs:65, src/app/main/data/workspace/media.cljs:172, src/app/main/data/workspace/media.cljs:175, src/app/main/data/workspace/media.cljs:178, src/app/main/data/workspace/media.cljs:181 +#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs msgid "errors.media-type-not-allowed" msgstr "Sepertinya ini bukan gambar yang valid." -#: src/app/main/ui/dashboard/team.cljs:574 +#: src/app/main/ui/dashboard/team.cljs msgid "errors.member-is-muted" msgstr "" -"Profil yang Anda undang membisukan surel (laporan spam atau lompatan " -"tinggi)." +"Profil yang Anda undang membisukan surel (laporan spam atau lompatan tinggi)." -#: src/app/main/ui/settings/password.cljs:61 +#: src/app/main/ui/settings/password.cljs msgid "errors.password-invalid-confirmation" msgstr "Kata sandi konfirmasi harus cocok" -#: src/app/main/ui/settings/password.cljs:64 +#: src/app/main/ui/settings/password.cljs msgid "errors.password-too-short" msgstr "Kata sandi setidaknya 8 karakter" -#: src/app/main/errors.cljs:124 msgid "errors.paste-data-validation" msgstr "Data tidak valid dalam papan klip" -#: src/app/main/data/users.cljs:703, src/app/main/ui/auth/login.cljs:97, src/app/main/ui/auth/login.cljs:105 msgid "errors.profile-blocked" msgstr "Profil diblokir" -#: src/app/main/ui/auth/recovery_request.cljs:60, src/app/main/ui/dashboard/team.cljs:164, src/app/main/ui/dashboard/team.cljs:570, src/app/main/ui/settings/change_email.cljs:50 +#: src/app/main/ui/auth/recovery_request.cljs, +#: src/app/main/ui/settings/change_email.cljs, +#: src/app/main/ui/dashboard/team.cljs msgid "errors.profile-is-muted" msgstr "Profil Anda membisukan surel (laporan spam atau lompatan tinggi)." -#: src/app/main/data/users.cljs:701, src/app/main/ui/auth/register.cljs:60 +#: src/app/main/ui/auth/register.cljs msgid "errors.registration-disabled" msgstr "Pendaftaran saat ini dinonaktifkan." -#: src/app/main/errors.cljs:218 +#: src/app/main/errors.cljs msgid "errors.team-feature-mismatch" msgstr "Fitur '%s' tidak kompatibel terdeteksi" -#: src/app/main/ui/dashboard/sidebar.cljs:365, src/app/main/ui/dashboard/team.cljs:359 msgid "errors.team-leave.insufficient-members" msgstr "" "Anggota tidak cukup untuk meninggalkan tim, Anda mungkin ingin menghapusnya " "saja." -#: src/app/main/ui/dashboard/sidebar.cljs:368, src/app/main/ui/dashboard/team.cljs:362 msgid "errors.team-leave.member-does-not-exists" msgstr "Anggota yang Anda mencoba untuk memberikan peran tidak ada." -#: src/app/main/ui/dashboard/sidebar.cljs:371, src/app/main/ui/dashboard/team.cljs:365 msgid "errors.team-leave.owner-cant-leave" msgstr "" "Pemilik tidak dapat meninggalkan tim, Anda harus memberikan ulang peran " "pemilik." -#: src/app/main/data/media.cljs:71 +#: src/app/main/data/media.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, +#: src/app/main/ui/handoff/exports.cljs msgid "errors.unexpected-error" msgstr "Sebuah kesalahan tidak terduga terjadi." -#: src/app/main/ui/auth/verify_token.cljs:60 +#: src/app/main/ui/auth/verify_token.cljs msgid "errors.unexpected-token" msgstr "Token tidak diketahui" -#, unused msgid "errors.validation" msgstr "Kesalahan Validasi" -#: src/app/main/errors.cljs:235 +#: src/app/main/errors.cljs msgid "errors.version-not-supported" msgstr "Berkas memiliki nomor versi tidak kompatibel" -#: src/app/main/ui/dashboard/team.cljs:796 msgid "errors.webhooks.connection" msgstr "Kesalahan koneksi, URL tidak dapat diraih" -#: src/app/main/ui/dashboard/team.cljs:790 msgid "errors.webhooks.invalid-uri" msgstr "URL tidak melewati validasi." -#: src/app/main/ui/dashboard/team.cljs:949 msgid "errors.webhooks.last-delivery" msgstr "Pengiriman terakhir tidak berhasil." -#: src/app/main/ui/dashboard/team.cljs:792, src/app/main/ui/dashboard/team.cljs:952 msgid "errors.webhooks.ssl-validation" msgstr "Terjadi kesalahan pada validasi SSL." -#: src/app/main/ui/dashboard/team.cljs:794 msgid "errors.webhooks.timeout" msgstr "Waktu habis" -#: src/app/main/ui/dashboard/team.cljs:788 msgid "errors.webhooks.unexpected" msgstr "Terjadi kesalahan tidak terduga saat memvalidasi" -#: src/app/main/ui/dashboard/team.cljs:798, src/app/main/ui/dashboard/team.cljs:955 msgid "errors.webhooks.unexpected-status" msgstr "Status %s tidak diduga" -#: src/app/main/ui/auth/login.cljs:109, src/app/main/ui/auth/login.cljs:113 +#: src/app/main/ui/auth/login.cljs msgid "errors.wrong-credentials" msgstr "Surel atau kata sandi tidak benar." -#: src/app/main/ui/settings/password.cljs:25 +#: src/app/main/ui/settings/password.cljs msgid "errors.wrong-old-password" msgstr "Kata sandi lama tidak benar" -#: src/app/main/ui/settings/feedback.cljs:77 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.description" msgstr "Deskripsi" -#: src/app/main/ui/settings/feedback.cljs:95 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.discourse-go-to" msgstr "Pergi ke forum Penpot" -#: src/app/main/ui/settings/feedback.cljs:89 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.discourse-subtitle1" msgstr "" "Kami senang memiliki Anda di sini. Jika Anda membutuhkan bantuan, silakan " "mencari sebelum Anda mengirim." -#: src/app/main/ui/settings/feedback.cljs:88 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.discourse-title" msgstr "Komunitas Penpot" -#: src/app/main/ui/settings/feedback.cljs:72 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.subject" msgstr "Subjek" -#: src/app/main/ui/settings/feedback.cljs:69 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.subtitle" msgstr "" "Silakan jelaskan alasan surel Anda, menetapkan bahwa itu adalah sebuah " "masalah, sebuah ide, atau sebuah keluhan. Salah satu anggota dari tim kami " "akan menjawab sesegera mungkin." -#: src/app/main/ui/settings/feedback.cljs:68 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.title" msgstr "Surel" -#: src/app/main/ui/settings/feedback.cljs:105 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.twitter-go-to" msgstr "Pergi ke X" -#: src/app/main/ui/settings/feedback.cljs:99 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.twitter-subtitle1" msgstr "Di sini untuk membantu dengan kueri teknis Anda." -#: src/app/main/ui/settings/feedback.cljs:98 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.twitter-title" msgstr "Akun dukungan X" -#: src/app/main/ui/settings/password.cljs:30 +#: src/app/main/ui/settings/password.cljs msgid "generic.error" msgstr "Sebuah kesalahan telah terjadi" -#: src/app/main/ui/viewer/inspect/attributes/blur.cljs:26 +#: src/app/main/ui/inspect/attributes/blur.cljs msgid "inspect.attributes.blur" msgstr "Buram" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:115 +#: src/app/main/ui/inspect/attributes/blur.cljs msgid "inspect.attributes.blur.value" msgstr "Nilai" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:112 +#: src/app/main/ui/inspect/attributes/common.cljs msgid "inspect.attributes.color.hex" msgstr "HEX" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:114 +#: src/app/main/ui/inspect/attributes/common.cljs msgid "inspect.attributes.color.hsla" msgstr "HSLA" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:113 +#: src/app/main/ui/inspect/attributes/common.cljs msgid "inspect.attributes.color.rgba" msgstr "RGBA" -#: src/app/main/ui/viewer/inspect/attributes/fill.cljs:57 +#: src/app/main/ui/inspect/attributes/fill.cljs msgid "inspect.attributes.fill" msgstr "Isian" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:99, src/app/main/ui/viewer/inspect/attributes/image.cljs:51 +#: src/app/main/ui/inspect/attributes/image.cljs msgid "inspect.attributes.image.download" msgstr "Unduh gambar sumber" -#: src/app/main/ui/viewer/inspect/attributes/image.cljs:39 +#: src/app/main/ui/inspect/attributes/image.cljs msgid "inspect.attributes.image.height" msgstr "Tinggi" -#: src/app/main/ui/viewer/inspect/attributes/image.cljs:32 +#: src/app/main/ui/inspect/attributes/image.cljs msgid "inspect.attributes.image.width" msgstr "Lebar" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout" msgstr "Tata Letak" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.height" msgstr "Tinggi" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.left" msgstr "Kiri" -#: src/app/main/ui/inspect/attributes/layout.cljs, src/app/main/ui/inspect/attributes/layout.cljs -#, unused +#: src/app/main/ui/inspect/attributes/layout.cljs, +#: src/app/main/ui/inspect/attributes/layout.cljs msgid "inspect.attributes.layout.radius" msgstr "Radius" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.rotation" msgstr "Rotasi" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.top" msgstr "Atas" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.width" msgstr "Lebar" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:57 +#: src/app/main/ui/inspect/attributes/shadow.cljs msgid "inspect.attributes.shadow" msgstr "Bayangan" -#: src/app/main/ui/viewer/inspect/attributes/geometry.cljs:40 +#: src/app/main/ui/inspect/attributes/layout.cljs msgid "inspect.attributes.size" msgstr "Ukuran dan posisi" -#: src/app/main/ui/viewer/inspect/attributes/stroke.cljs:52 +#: src/app/main/ui/inspect/attributes/stroke.cljs msgid "inspect.attributes.stroke" msgstr "Sapuan" -#, permanent, unused msgid "inspect.attributes.stroke.alignment.center" msgstr "Tengah" -#, permanent, unused msgid "inspect.attributes.stroke.alignment.inner" msgstr "Dalam" -#, permanent, unused msgid "inspect.attributes.stroke.alignment.outer" msgstr "Luar" -#, unused msgid "inspect.attributes.stroke.style.dotted" msgstr "Titik" -#, unused msgid "inspect.attributes.stroke.style.mixed" msgstr "Tercampur" -#, unused msgid "inspect.attributes.stroke.style.none" msgstr "Tidak ada" -#, unused msgid "inspect.attributes.stroke.style.solid" msgstr "Padat" #: src/app/main/ui/inspect/attributes/stroke.cljs -#, unused msgid "inspect.attributes.stroke.width" msgstr "Lebar" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:81, src/app/main/ui/viewer/inspect/attributes/text.cljs:194 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography" msgstr "Tipografi" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:89 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.font-family" msgstr "Keluarga Fon" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:107 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.font-size" msgstr "Ukuran Fon" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:98 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.font-style" msgstr "Gaya Fon" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:116 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.font-weight" msgstr "Berat Fon" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:134 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.letter-spacing" msgstr "Spasi Huruf" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:125 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.line-height" msgstr "Tinggi Garis" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:143 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.text-decoration" msgstr "Dekorasi Teks" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:145 msgid "inspect.attributes.typography.text-decoration.none" msgstr "Tidak ada" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:146 msgid "inspect.attributes.typography.text-decoration.strikethrough" msgstr "Coret" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:147 msgid "inspect.attributes.typography.text-decoration.underline" msgstr "Garis bawah" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:156 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.text-transform" msgstr "Transformasi Teks" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:158 msgid "inspect.attributes.typography.text-transform.lowercase" msgstr "Huruf Kecil" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:159 msgid "inspect.attributes.typography.text-transform.none" msgstr "Tidak ada" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:160 msgid "inspect.attributes.typography.text-transform.titlecase" msgstr "Huruf Judul" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:162 msgid "inspect.attributes.typography.text-transform.unset" msgstr "Tidak ditetapkan" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:161 msgid "inspect.attributes.typography.text-transform.uppercase" msgstr "Huruf Besar" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:140 msgid "inspect.empty.help" msgstr "" "Jika Anda ingin mengetahui lebih lanjut tentang inspeksi desain kunjungi " "pusat bantuan Penpot" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:143 msgid "inspect.empty.more-info" msgstr "Lebih banyak info tentang inspeksi" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:135 msgid "inspect.empty.select" -msgstr "Pilih bentuk, papan, atau grup untuk menginskpeksi properti dan kodenya" +msgstr "" +"Pilih bentuk, papan, atau grup untuk menginskpeksi properti dan kodenya" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:125 +#: src/app/main/ui/inspect/right_sidebar.cljs msgid "inspect.tabs.code" msgstr "Kode" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:98 msgid "inspect.tabs.code.selected.circle" msgstr "Lingkaran" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:99 msgid "inspect.tabs.code.selected.component" msgstr "Komponen" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:100 msgid "inspect.tabs.code.selected.curve" msgstr "Kurva" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:101 msgid "inspect.tabs.code.selected.frame" msgstr "Papan" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:102 msgid "inspect.tabs.code.selected.group" msgstr "Grup" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:103 msgid "inspect.tabs.code.selected.image" msgstr "Gambar" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:104 msgid "inspect.tabs.code.selected.mask" msgstr "Topeng" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:93 +#: src/app/main/ui/inspect/right_sidebar.cljs msgid "inspect.tabs.code.selected.multiple" msgstr "%s Dipilih" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:105 msgid "inspect.tabs.code.selected.path" msgstr "Jalur" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:106 msgid "inspect.tabs.code.selected.rect" msgstr "Persegi Panjang" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:107 msgid "inspect.tabs.code.selected.svg-raw" msgstr "SVG" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:108 msgid "inspect.tabs.code.selected.text" msgstr "Teks" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:115 +#: src/app/main/ui/inspect/right_sidebar.cljs msgid "inspect.tabs.info" msgstr "Info" -#: src/app/main/ui/workspace/main_menu.cljs:158 +#: src/app/main/ui/workspace/header.cljs msgid "label.shortcuts" msgstr "Pintasan" -#: src/app/main/ui/dashboard/import.cljs:527 msgid "labels.accept" msgstr "Terima" -#: src/app/main/ui/settings/sidebar.cljs:100 +#: src/app/main/ui/settings/sidebar.cljs msgid "labels.access-tokens" msgstr "Token akses" -#: src/app/main/ui/dashboard/team.cljs:968 msgid "labels.active" msgstr "Aktif" -#: src/app/main/ui/dashboard/fonts.cljs:175 msgid "labels.add-custom-font" msgstr "Tambahkan fon khusus" -#: src/app/main/ui/dashboard/team.cljs:120, src/app/main/ui/dashboard/team.cljs:276, src/app/main/ui/dashboard/team.cljs:519, src/app/main/ui/dashboard/team.cljs:549, src/app/main/ui/onboarding/team_choice.cljs:67 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs msgid "labels.admin" msgstr "Admin" -#: src/app/main/ui/onboarding/questions.cljs:174 -msgid "labels.adobe-xd" -msgstr "Adobe XD" - #: src/app/main/ui/workspace/comments.cljs -#, unused msgid "labels.all" msgstr "Semua" -#: src/app/main/ui/auth.cljs:37 msgid "labels.and" msgstr "dan" -#: src/app/main/ui/onboarding/team_choice.cljs:162 msgid "labels.back" msgstr "Kembali" -#: src/app/main/ui/static.cljs:59 +#: src/app/main/ui/static.cljs msgid "labels.bad-gateway.desc-message" msgstr "" "Sepertinya Anda harus menunggu sebentar dan mencoba lagi; kami melakukan " "pemeliharaan kecil pada peladen kami." -#: src/app/main/ui/static.cljs:58 +#: src/app/main/ui/static.cljs msgid "labels.bad-gateway.main-message" msgstr "Gerbang Jalur Buruk" -#: src/app/main/data/common.cljs:112, src/app/main/ui/dashboard/change_owner.cljs:69, src/app/main/ui/dashboard/import.cljs:514, src/app/main/ui/dashboard/team.cljs:868, src/app/main/ui/delete_shared.cljs:35, src/app/main/ui/export.cljs:164, src/app/main/ui/export.cljs:460, src/app/main/ui/settings/access_tokens.cljs:188, src/app/main/ui/viewer/share_link.cljs:203, src/app/main/ui/workspace/sidebar/assets/groups.cljs:149 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.cancel" msgstr "Batal" -#: src/app/main/ui/onboarding/questions.cljs:176 -msgid "labels.canva" -msgstr "Canva" - -#: src/app/main/ui/dashboard/projects.cljs:93, src/app/main/ui/export.cljs:478, src/app/main/ui/settings/access_tokens.cljs:183, src/app/main/ui/viewer/login.cljs:77, src/app/main/ui/viewer/share_link.cljs:174, src/app/main/ui/workspace/libraries.cljs:522 msgid "labels.close" msgstr "Tutup" -#: src/app/main/ui/dashboard/comments.cljs:104, src/app/main/ui/viewer/comments.cljs:70, src/app/main/ui/workspace/comments.cljs:126 +#: src/app/main/ui/dashboard/comments.cljs msgid "labels.comments" msgstr "Komentar" -#: src/app/main/ui/dashboard/sidebar.cljs:985, src/app/main/ui/workspace/main_menu.cljs:110 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.community" msgstr "Komunitas" -#: src/app/main/ui/settings/password.cljs:103 +#: src/app/main/ui/settings/password.cljs msgid "labels.confirm-password" msgstr "Konfirmasi kata sandi" -#: src/app/main/ui/dashboard/import.cljs:520, src/app/main/ui/export.cljs:465, src/app/main/ui/onboarding/newsletter.cljs:101 msgid "labels.continue" msgstr "Lanjutkan" -#, unused msgid "labels.continue-with" msgstr "Lanjutkan dengan" -#: src/app/main/ui/viewer/login.cljs:75 msgid "labels.continue-with-penpot" msgstr "Anda dapat melanjutkan dengan sebuah akun Penpot" -#: src/app/main/ui/dashboard/team.cljs:642 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.copy-invitation-link" msgstr "Salin tautan" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:157, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:190 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "labels.create" msgstr "Buat" -#: src/app/main/ui/dashboard/team_form.cljs:101, src/app/main/ui/dashboard/team_form.cljs:121 +#: src/app/main/ui/dashboard/team_form.cljs, +#: src/app/main/ui/dashboard/team_form.cljs msgid "labels.create-team" msgstr "Buat tim baru" -#: src/app/main/ui/dashboard/team_form.cljs:113 +#: src/app/main/ui/dashboard/team_form.cljs msgid "labels.create-team.placeholder" msgstr "Masukkan nama tim baru" -#, unused msgid "labels.custom-fonts" msgstr "Fon khusus" -#: src/app/main/ui/settings/sidebar.cljs:73 +#: src/app/main/ui/settings/sidebar.cljs msgid "labels.dashboard" msgstr "Dasbor" -#: src/app/main/ui/dashboard/file_menu.cljs:306, src/app/main/ui/dashboard/fonts.cljs:255, src/app/main/ui/dashboard/fonts.cljs:332, src/app/main/ui/dashboard/fonts.cljs:346, src/app/main/ui/dashboard/project_menu.cljs:115, src/app/main/ui/dashboard/team.cljs:904, src/app/main/ui/settings/access_tokens.cljs:209, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:209 +#: src/app/main/ui/dashboard/project_menu.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.delete" msgstr "Hapus" -#: src/app/main/ui/comments.cljs:357 +#: src/app/main/ui/comments.cljs msgid "labels.delete-comment" msgstr "Hapus komentar" -#: src/app/main/ui/comments.cljs:354 +#: src/app/main/ui/comments.cljs msgid "labels.delete-comment-thread" msgstr "Hapus utasan" -#: src/app/main/ui/dashboard/team.cljs:648 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.delete-invitation" msgstr "Hapus undangan" -#: src/app/main/ui/dashboard/file_menu.cljs:262 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.delete-multi-files" msgstr "Hapus %s berkas" -#: src/app/main/ui/onboarding/questions.cljs:250 -msgid "labels.developer" -msgstr "Pengembang" - -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:199 msgid "labels.discard" msgstr "Abaikan" -#: src/app/main/ui/dashboard/file_menu.cljs:28, src/app/main/ui/dashboard/files.cljs:72, src/app/main/ui/dashboard/files.cljs:156, src/app/main/ui/dashboard/projects.cljs:220, src/app/main/ui/dashboard/projects.cljs:224, src/app/main/ui/dashboard/sidebar.cljs:791 +#: src/app/main/ui/dashboard/projects.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs, +#: src/app/main/ui/dashboard/files.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.drafts" msgstr "Draf" -#: src/app/main/ui/comments.cljs:350, src/app/main/ui/dashboard/fonts.cljs:252, src/app/main/ui/dashboard/team.cljs:902, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:205 +#: src/app/main/ui/comments.cljs msgid "labels.edit" msgstr "Sunting" -#, unused msgid "labels.edit-file" msgstr "Sunting berkas" -#: src/app/main/ui/dashboard/team.cljs:118, src/app/main/ui/dashboard/team.cljs:279, src/app/main/ui/dashboard/team.cljs:520, src/app/main/ui/dashboard/team.cljs:553, src/app/main/ui/onboarding/team_choice.cljs:66 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs msgid "labels.editor" msgstr "Penyunting" -#: src/app/main/ui/dashboard/team.cljs:661 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.expired-invitation" msgstr "Kedaluwarsa" -#: src/app/main/ui/export.cljs:173 msgid "labels.export" msgstr "Ekspor" -#: src/app/main/ui/settings/feedback.cljs:51 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.feedback-disabled" msgstr "Masukan dinonaktifkan" -#: src/app/main/ui/settings/feedback.cljs:42 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.feedback-sent" msgstr "Masukan dikirim" -#: src/app/main/ui/onboarding/questions.cljs:170 -msgid "labels.figma" -msgstr "Figma" - -#: src/app/main/ui/dashboard/fonts.cljs:412 msgid "labels.font-family" msgstr "Keluarga Fon" -#, unused msgid "labels.font-providers" msgstr "Penyedia fon" -#: src/app/main/ui/dashboard/fonts.cljs:413 msgid "labels.font-variants" msgstr "Gaya" -#: src/app/main/ui/dashboard/fonts.cljs:52, src/app/main/ui/dashboard/sidebar.cljs:811 msgid "labels.fonts" msgstr "Fon" -#: src/app/main/ui/onboarding/questions.cljs:262 -msgid "labels.freelancer" -msgstr "Saya seorang pekerja lepas" - -#: src/app/main/ui/dashboard/sidebar.cljs:1015, src/app/main/ui/workspace/main_menu.cljs:142 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.github-repo" msgstr "Repositori GitHub" -#: src/app/main/ui/dashboard/sidebar.cljs:1032, src/app/main/ui/settings/sidebar.cljs:113, src/app/main/ui/workspace/main_menu.cljs:171 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/settings/sidebar.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.give-feedback" msgstr "Berikan masukan" -#: src/app/main/ui/auth/recovery_request.cljs:110, src/app/main/ui/auth/register.cljs:285, src/app/main/ui/viewer/login.cljs:117 msgid "labels.go-back" msgstr "Kembali" -#: src/app/main/ui/dashboard/sidebar.cljs:978, src/app/main/ui/workspace/main_menu.cljs:102 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.help-center" msgstr "Pusat Bantuan" -#: src/app/main/ui/viewer/comments.cljs:103, src/app/main/ui/workspace/comments.cljs:67 +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs msgid "labels.hide-resolved-comments" msgstr "Sembunyikan komentar yang telah diselesaikan" -#: src/app/main/ui/dashboard/team.cljs:969 msgid "labels.inactive" msgstr "Tidak Aktif" -#: src/app/main/ui/dashboard/fonts.cljs:410 msgid "labels.installed-fonts" msgstr "Fon terpasang" -#: src/app/main/ui/static.cljs:144 +#: src/app/main/ui/static.cljs msgid "labels.internal-error.desc-message" msgstr "" "Sesuatu yang buruk terjadi. Silakan mencoba lagi operasi dan jika masalah " "masih ada, hubungi dukungan." -#: src/app/main/ui/static.cljs:143 +#: src/app/main/ui/static.cljs msgid "labels.internal-error.main-message" msgstr "Kesalahan Internal" -#: src/app/main/ui/onboarding/questions.cljs:178 -msgid "labels.invision" -msgstr "InVision" - -#: src/app/main/ui/dashboard/sidebar.cljs:516, src/app/main/ui/dashboard/team.cljs:89, src/app/main/ui/dashboard/team.cljs:97, src/app/main/ui/dashboard/team.cljs:708 +#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.invitations" msgstr "Undangan" -#: src/app/main/ui/settings/options.cljs:51 +#: src/app/main/ui/settings/options.cljs msgid "labels.language" msgstr "Bahasa" -#: src/app/main/ui/dashboard/sidebar.cljs:1008, src/app/main/ui/workspace/main_menu.cljs:134 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.libraries-and-templates" msgstr "Pustaka & Templat" -#: src/app/main/ui/viewer/header.cljs:203 msgid "labels.log-or-sign" msgstr "Masuk atau daftar" -#: src/app/main/ui/dashboard/sidebar.cljs:1040 +#: src/app/main/ui/settings.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.logout" msgstr "Keluar" -#: src/app/main/ui/dashboard/team.cljs:468 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.member" msgstr "Anggota" -#: src/app/main/ui/dashboard/sidebar.cljs:510, src/app/main/ui/dashboard/team.cljs:87, src/app/main/ui/dashboard/team.cljs:95 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.members" msgstr "Anggota" -#: src/app/main/ui/settings/password.cljs:96 +#: src/app/main/ui/settings/password.cljs msgid "labels.new-password" msgstr "Kata sandi baru" -#: src/app/main/ui/dashboard/templates.cljs:269, src/app/main/ui/onboarding/questions.cljs:55 -msgid "labels.next" -msgstr "Berikutnya" - -#: src/app/main/ui/dashboard/comments.cljs:128, src/app/main/ui/workspace/comments.cljs:161 +#: src/app/main/ui/workspace/comments.cljs, +#: src/app/main/ui/dashboard/comments.cljs msgid "labels.no-comments-available" -msgstr "Anda telah melihat semuanya! Notifikasi komentar baru akan muncul di sini." +msgstr "" +"Anda telah melihat semuanya! Notifikasi komentar baru akan muncul di sini." -#: src/app/main/ui/dashboard/team.cljs:694 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.no-invitations" msgstr "Tidak ada undangan yang menunggu." -#: src/app/main/ui/dashboard/team.cljs:696 -#, markdown +#: src/app/main/ui/dashboard/team.cljs msgid "labels.no-invitations-hint" msgstr "Tekan tombol **Undang orang** untuk mengundang orang-orang ke tim ini." -#: src/app/main/ui/static.cljs:50 +#: src/app/main/ui/static.cljs msgid "labels.not-found.desc-message" msgstr "" -"Laman ini mungkin tidak ada atau Anda tidak memiliki izin untuk " -"mengaksesnya." +"Laman ini mungkin tidak ada atau Anda tidak memiliki izin untuk mengaksesnya." -#: src/app/main/ui/static.cljs:49 +#: src/app/main/ui/static.cljs msgid "labels.not-found.main-message" msgstr "Aduh!" -#: src/app/main/ui/dashboard/projects.cljs:239, src/app/main/ui/dashboard/team.cljs:1095 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.num-of-files" msgid_plural "labels.num-of-files" msgstr[0] "%s berkas" -#: src/app/main/ui/viewer/thumbnails.cljs:80 msgid "labels.num-of-frames" msgid_plural "labels.num-of-frames" msgstr[0] "%s papan" -#: src/app/main/ui/dashboard/team.cljs:1090 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.num-of-projects" msgid_plural "labels.num-of-projects" msgstr[0] "%s proyek" -#: src/app/main/ui/settings/password.cljs:89 +#: src/app/main/ui/settings/password.cljs msgid "labels.old-password" msgstr "Kata sandi lama" #: src/app/main/ui/workspace/comments.cljs -#, unused msgid "labels.only-yours" msgstr "Hanya Anda" -#, unused msgid "labels.or" msgstr "atau" -#: src/app/main/ui/onboarding/questions.cljs:145, src/app/main/ui/onboarding/questions.cljs:214, src/app/main/ui/onboarding/questions.cljs:303, src/app/main/ui/onboarding/questions.cljs:316, src/app/main/ui/onboarding/questions.cljs:389, src/app/main/ui/onboarding/questions.cljs:447 -msgid "labels.other" -msgstr "Lainnya (jelaskan)" - -#: src/app/main/ui/dashboard/team.cljs:286, src/app/main/ui/dashboard/team.cljs:518, src/app/main/ui/dashboard/team.cljs:1076 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs msgid "labels.owner" msgstr "Pemilik" -#: src/app/main/ui/settings/sidebar.cljs:87 +#: src/app/main/ui/settings/sidebar.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.password" msgstr "Kata sandi" -#: src/app/main/ui/dashboard/team.cljs:662 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.pending-invitation" msgstr "Ditunda" -#: src/app/main/ui/onboarding/questions.cljs:51 -msgid "labels.previous" -msgstr "Sebelumnya" - -#: src/app/main/ui/settings/profile.cljs:118, src/app/main/ui/settings/sidebar.cljs:82 +#: src/app/main/ui/settings/sidebar.cljs msgid "labels.profile" msgstr "Profil" -#: src/app/main/ui/dashboard/sidebar.cljs:784 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.projects" msgstr "Proyek" -#: src/app/main/ui/dashboard/sidebar.cljs:998, src/app/main/ui/settings/sidebar.cljs:106, src/app/main/ui/workspace/main_menu.cljs:126 +#: src/app/main/ui/settings/sidebar.cljs msgid "labels.release-notes" msgstr "Catatan rilis" #: src/app/main/ui/workspace.cljs -#, unused msgid "labels.reload-file" msgstr "Muat ulang berkas" -#: src/app/main/ui/workspace/libraries.cljs, src/app/main/ui/dashboard/team.cljs -#, unused +#: src/app/main/ui/workspace/libraries.cljs, +#: src/app/main/ui/dashboard/team.cljs msgid "labels.remove" msgstr "Hapus" -#: src/app/main/ui/dashboard/team.cljs:316 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.remove-member" msgstr "Keluarkan anggota" -#: src/app/main/ui/dashboard/file_menu.cljs:271, src/app/main/ui/dashboard/project_menu.cljs:85, src/app/main/ui/dashboard/sidebar.cljs:539, src/app/main/ui/workspace/sidebar/assets/groups.cljs:157 +#: src/app/main/ui/dashboard/sidebar.cljs, +#: src/app/main/ui/dashboard/project_menu.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.rename" msgstr "Ubah nama" -#: src/app/main/ui/dashboard/team_form.cljs:99 +#: src/app/main/ui/dashboard/team_form.cljs msgid "labels.rename-team" msgstr "Ubah nama tim" -#: src/app/main/ui/dashboard/team.cljs:645 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.resend-invitation" msgstr "Kirim ulang undangan" -#: src/app/main/ui/static.cljs:61, src/app/main/ui/static.cljs:70, src/app/main/ui/static.cljs:148 +#: src/app/main/ui/static.cljs, src/app/main/ui/static.cljs msgid "labels.retry" msgstr "Coba lagi" -#: src/app/main/ui/dashboard/team.cljs:469, src/app/main/ui/dashboard/team.cljs:709 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.role" msgstr "Peran" -#: src/app/main/ui/dashboard/fonts.cljs:380, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:191 msgid "labels.save" msgstr "Simpan" -#: src/app/main/ui/onboarding/questions.cljs:414, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:436 msgid "labels.search" msgstr "Cari" -#: src/app/main/ui/dashboard/fonts.cljs:415 msgid "labels.search-font" msgstr "Cari fon" -#: src/app/main/ui/onboarding/questions.cljs:90, src/app/main/ui/onboarding/questions.cljs:248, src/app/main/ui/onboarding/questions.cljs:259, src/app/main/ui/onboarding/questions.cljs:270 -msgid "labels.select-option" -msgstr "Pilih opsi" - -#: src/app/main/ui/settings/feedback.cljs:82 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.send" msgstr "Kirim" -#: src/app/main/ui/settings/feedback.cljs:82 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.sending" msgstr "Mengirim…" -#: src/app/main/ui/static.cljs:68 +#: src/app/main/ui/static.cljs msgid "labels.service-unavailable.desc-message" msgstr "Kami dalam pemeliharaan yang telah diprogram untuk sistem kami." -#: src/app/main/ui/static.cljs:67 +#: src/app/main/ui/static.cljs msgid "labels.service-unavailable.main-message" msgstr "Layanan Tidak Tersedia" -#: src/app/main/ui/dashboard/sidebar.cljs:530, src/app/main/ui/dashboard/team.cljs:88, src/app/main/ui/dashboard/team.cljs:102, src/app/main/ui/settings/options.cljs:84, src/app/main/ui/settings/sidebar.cljs:93 +#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.settings" msgstr "Pengaturan" -#: src/app/main/ui/viewer/header.cljs:199 msgid "labels.share" msgstr "Bagikan" -#, unused msgid "labels.share-prototype" msgstr "Bagikan prototipe" -#: src/app/main/ui/dashboard/sidebar.cljs:800 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.shared-libraries" msgstr "Pustaka" -#: src/app/main/ui/viewer/comments.cljs:82, src/app/main/ui/workspace/comments.cljs:55, src/app/main/ui/workspace/comments.cljs:135 +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs msgid "labels.show-all-comments" msgstr "Tampilkan semua komentar" -#: src/app/main/ui/viewer/comments.cljs:115 msgid "labels.show-comments-list" msgstr "Tampilkan daftar komentar" -#: src/app/main/ui/viewer/comments.cljs:91, src/app/main/ui/workspace/comments.cljs:61, src/app/main/ui/workspace/comments.cljs:136 +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs msgid "labels.show-your-comments" msgstr "Hanya tampilkan komentar Anda" -#: src/app/main/ui/onboarding/questions.cljs:172 -msgid "labels.sketch" -msgstr "Sketch" - -#: src/app/main/ui/onboarding/questions.cljs:56 -msgid "labels.start" -msgstr "Mulai" - -#: src/app/main/ui/dashboard/team.cljs:710 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.status" msgstr "Status" -#: src/app/main/ui/onboarding/questions.cljs:251 -msgid "labels.student-teacher" -msgstr "Siswa atau Guru" - -#: src/app/main/ui/dashboard/sidebar.cljs:992, src/app/main/ui/workspace/main_menu.cljs:118 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.tutorials" msgstr "Tutorial" -#: src/app/main/ui/dashboard/file_menu.cljs:256 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.unpublish-multi-files" msgstr "Batalkan publikasi %s berkas" -#: src/app/main/ui/settings/profile.cljs:103 +#: src/app/main/ui/settings/profile.cljs msgid "labels.update" msgstr "Perbarui" -#: src/app/main/ui/dashboard/team_form.cljs:120 +#: src/app/main/ui/dashboard/team_form.cljs msgid "labels.update-team" msgstr "Perbarui tim" -#: src/app/main/ui/dashboard/fonts.cljs:241 msgid "labels.upload" msgstr "Unggah" -#: src/app/main/ui/dashboard/fonts.cljs:169 msgid "labels.upload-custom-fonts" msgstr "Unggah fon khusus" -#: src/app/main/ui/dashboard/fonts.cljs:240 msgid "labels.uploading" msgstr "Mengunggah…" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs:223 msgid "labels.view-only" msgstr "TAMPILAN SAJA" -#: src/app/main/ui/dashboard/team.cljs:123, src/app/main/ui/dashboard/team.cljs:282, src/app/main/ui/dashboard/team.cljs:521 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.viewer" msgstr "Pelihat" -#: src/app/main/ui/dashboard/sidebar.cljs:523, src/app/main/ui/dashboard/team.cljs:90, src/app/main/ui/dashboard/team.cljs:100, src/app/main/ui/dashboard/team.cljs:880 msgid "labels.webhooks" msgstr "Kaitan web" -#: src/app/main/ui/comments.cljs:194 +#: src/app/main/ui/comments.cljs msgid "labels.write-new-comment" msgstr "Tulis komentar baru" -#: src/app/main/ui/dashboard/team.cljs:237 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.you" msgstr "(Anda)" -#: src/app/main/ui/dashboard/sidebar.cljs:968 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.your-account" msgstr "Akun Anda" -#: src/app/main/ui/workspace/colorpicker.cljs:297, src/app/main/ui/workspace/colorpicker.cljs:298, src/app/main/ui/workspace/colorpicker.cljs:300 msgid "media.choose-image" msgstr "Pilih gambar" -#, unused msgid "media.gradient" msgstr "Gradien" -#: src/app/main/data/workspace/media.cljs:275, src/app/main/ui/components/color_bullet.cljs:32, src/app/main/ui/components/color_bullet.cljs:45, src/app/main/ui/viewer/inspect/attributes/common.cljs:66, src/app/main/ui/workspace/colorpicker.cljs:211, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:237 msgid "media.image" msgstr "Gambar" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:77 -msgid "media.image.short" -msgstr "gambar" - -#: src/app/main/ui/workspace/colorpicker.cljs:290 -msgid "media.keep-aspect-ratio" -msgstr "Jaga rasio aspek" - -#: src/app/main/ui/workspace/colorpicker.cljs:208 msgid "media.linear" msgstr "Linear" -#: src/app/main/data/media.cljs:49, src/app/main/data/workspace/media.cljs:223, src/app/main/data/workspace/media.cljs:453 +#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs msgid "media.loading" msgstr "Memuat gambar…" -#: src/app/main/ui/workspace/colorpicker.cljs:209 msgid "media.radial" msgstr "Radial" -#: src/app/main/ui/workspace/colorpicker.cljs:206 msgid "media.solid" msgstr "Padat" -#: src/app/main/data/common.cljs:111 msgid "modals.add-shared-confirm-empty.hint" msgstr "" "Pustaka Anda saat ini kosong. Ketika ditambahkan sebagai Pustaka Terbagi, " "aset yang Anda buat akan tersedia untuk digunakan bersama dengan berkas " "Anda. Apakah Anda yakin ingin menerbitkannya?" -#: src/app/main/data/common.cljs:113 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.add-shared-confirm.accept" msgstr "Tambahkan sebagai Pustaka Terbagi" -#: src/app/main/data/common.cljs:111 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.add-shared-confirm.hint" msgstr "" "Ketika ditambahkan sebagai Pustaka Terbagi, aset dari pustaka berkas ini " "akan tersedia untuk digunakan di antara berkas Anda yang lain." -#: src/app/main/data/common.cljs:110 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.add-shared-confirm.message" msgstr "Tambahkan “%s” sebagai Pustaka Terbagi" -#: src/app/main/ui/workspace/nudge.cljs:60 +#: src/app/main/ui/workspace/nudge.cljs msgid "modals.big-nudge" msgstr "Dorongan besar" -#: src/app/main/ui/settings/change_email.cljs:127 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.confirm-email" msgstr "Verifikasi surel baru" -#: src/app/main/ui/settings/change_email.cljs:114 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.info" msgstr "" "Kami akan mengirim Anda sebuah surel ke surel Anda “%s” saat ini untuk " "memverifikasi identitas Anda." -#: src/app/main/ui/settings/change_email.cljs:119 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.new-email" msgstr "Surel baru" -#: src/app/main/ui/settings/change_email.cljs:136 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.submit" msgstr "Ubah surel" -#: src/app/main/ui/settings/change_email.cljs:107 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.title" msgstr "Ubah surel Anda" -#: src/app/main/ui/settings/access_tokens.cljs:165, src/app/main/ui/settings/access_tokens.cljs:171 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.create-access-token.copy-token" msgstr "Salin token" -#: src/app/main/ui/settings/access_tokens.cljs:142 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.create-access-token.expiration-date.label" msgstr "Tanggal kedaluwarsa" -#: src/app/main/ui/settings/access_tokens.cljs:136 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.create-access-token.name.label" msgstr "Nama" -#: src/app/main/ui/settings/access_tokens.cljs:138 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.create-access-token.name.placeholder" msgstr "Namanya dapat mengetahui kegunaan tokennya" -#: src/app/main/ui/settings/access_tokens.cljs:191 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.create-access-token.submit-label" msgstr "Buat token" -#: src/app/main/ui/settings/access_tokens.cljs:123 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.create-access-token.title" msgstr "Buat token baru" -#: src/app/main/ui/dashboard/team.cljs:873 msgid "modals.create-webhook.submit-label" msgstr "Buat kaitan web" -#: src/app/main/ui/dashboard/team.cljs:838 msgid "modals.create-webhook.title" msgstr "Buat kaitan web" -#: src/app/main/ui/dashboard/team.cljs:849 msgid "modals.create-webhook.url.label" msgstr "URL Muatan" -#: src/app/main/ui/dashboard/team.cljs:850 msgid "modals.create-webhook.url.placeholder" msgstr "https://contoh.co.id/terimapos" -#: src/app/main/ui/settings/access_tokens.cljs:271 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.delete-acces-token.accept" msgstr "Hapus token" -#: src/app/main/ui/settings/access_tokens.cljs:270 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.delete-acces-token.message" msgstr "Apakah Anda ingin menghapus token ini?" -#: src/app/main/ui/settings/access_tokens.cljs:269 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.delete-acces-token.title" msgstr "Hapus token" -#: src/app/main/ui/settings/delete_account.cljs:59 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.cancel" msgstr "Batalkan dan jaga akun saya" -#: src/app/main/ui/settings/delete_account.cljs:64 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.confirm" msgstr "Ya, hapus akun saya" -#: src/app/main/ui/settings/delete_account.cljs:53 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.info" msgstr "" "Dengan menghapus akun Anda akan kehilangan semua proyek dan arsip Anda saat " "ini." -#: src/app/main/ui/settings/delete_account.cljs:46 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.title" msgstr "Apakah Anda yakin ingin menghapus akun Anda?" -#: src/app/main/ui/comments.cljs:298 +#: src/app/main/ui/comments.cljs msgid "modals.delete-comment-thread.accept" msgstr "Hapus percakapan" -#: src/app/main/ui/comments.cljs:297 +#: src/app/main/ui/comments.cljs msgid "modals.delete-comment-thread.message" msgstr "" "Apakah Anda yakin ingin menghapus percakapan ini? Semua komentar dalam " "utasan ini akan dihapus." -#: src/app/main/ui/comments.cljs:296 +#: src/app/main/ui/comments.cljs msgid "modals.delete-comment-thread.title" msgstr "Hapus percakapan" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:140 msgid "modals.delete-component-annotation.message" msgstr "Apakah Anda yakin ingin menghapus anotasi ini?" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:139 msgid "modals.delete-component-annotation.title" msgstr "Haus anotasi" -#: src/app/main/ui/dashboard/file_menu.cljs:123 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-confirm.accept" msgstr "Hapus berkas" -#: src/app/main/ui/dashboard/file_menu.cljs:122 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-confirm.message" msgstr "Apakah Anda yakin ingin menghapus berkas ini?" -#: src/app/main/ui/dashboard/file_menu.cljs:121 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-confirm.title" msgstr "Menghapus berkas" -#: src/app/main/ui/dashboard/file_menu.cljs:117 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-multi-confirm.accept" msgstr "Hapus berkas" -#: src/app/main/ui/dashboard/file_menu.cljs:116 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-multi-confirm.message" msgstr "Apakah Anda yakin ingin menghapus %s berkas?" -#: src/app/main/ui/dashboard/file_menu.cljs:115 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-multi-confirm.title" msgstr "Menghapus %s berkas" -#: src/app/main/ui/dashboard/fonts.cljs:345 msgid "modals.delete-font-variant.message" msgstr "" "Apakah Anda yakin ingin menghapus gaya fon ini? Ini tidak akan muat jika " "digunakan dalam sebuah berkas." -#: src/app/main/ui/dashboard/fonts.cljs:344 msgid "modals.delete-font-variant.title" msgstr "Menghapus gaya fon" -#: src/app/main/ui/dashboard/fonts.cljs:331 msgid "modals.delete-font.message" msgstr "" "Apakah Anda yakin ingin menghapus fon ini? Ini tidak akan muat jika " "digunakan dalam sebuah berkas." -#: src/app/main/ui/dashboard/fonts.cljs:330 msgid "modals.delete-font.title" msgstr "Menghapus fon" -#: src/app/main/ui/workspace/context_menu.cljs:522, src/app/main/ui/workspace/sidebar/sitemap.cljs:45 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs msgid "modals.delete-page.body" msgstr "Apakah Anda yakin ingin menghapus halaman ini?" -#: src/app/main/ui/workspace/context_menu.cljs:521, src/app/main/ui/workspace/sidebar/sitemap.cljs:44 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs msgid "modals.delete-page.title" msgstr "Hapus halaman" -#: src/app/main/ui/dashboard/project_menu.cljs:69 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "modals.delete-project-confirm.accept" msgstr "Hapus proyek" -#: src/app/main/ui/dashboard/project_menu.cljs:68 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "modals.delete-project-confirm.message" msgstr "Apakah Anda yakin ingin menghapus proyek ini?" -#: src/app/main/ui/dashboard/project_menu.cljs:67 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "modals.delete-project-confirm.title" msgstr "Hapus proyek" -#: src/app/main/ui/delete_shared.cljs:51 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.accept" msgid_plural "modals.delete-shared-confirm.accept" msgstr[0] "Hapus berkas" -#: src/app/main/ui/delete_shared.cljs:55 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.activated.no-files-message" msgid_plural "modals.delete-shared-confirm.activated.no-files-message" msgstr[0] "Tidak diaktifkan dalam berkas mana pun." -#: src/app/main/ui/delete_shared.cljs:57 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.activated.scd-message" msgid_plural "modals.delete-shared-confirm.activated.scd-message" msgstr[0] "Pustaka ini diaktifkan di sini: " -#: src/app/main/ui/delete_shared.cljs:46 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.message" msgid_plural "modals.delete-shared-confirm.message" msgstr[0] "Apakah Anda yakin ingin menghapus berkas ini?" -#: src/app/main/ui/delete_shared.cljs:41 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.title" msgid_plural "modals.delete-shared-confirm.title" msgstr[0] "Menghapus berkas" -#: src/app/main/ui/dashboard/sidebar.cljs:435 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.delete-team-confirm.accept" msgstr "Hapus tim" -#: src/app/main/ui/dashboard/sidebar.cljs:434 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.delete-team-confirm.message" msgstr "" "Apakah Anda yakin ingin menghapus tim ini? Semua proyek dan berkas terkait " "dengan tim akan dihapus secara permanen." -#: src/app/main/ui/dashboard/sidebar.cljs:433 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.delete-team-confirm.title" msgstr "Menghapus tim" -#: src/app/main/ui/dashboard/team.cljs:427 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.delete-team-member-confirm.accept" msgstr "Keluarkan anggota" -#: src/app/main/ui/dashboard/team.cljs:426 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.delete-team-member-confirm.message" msgstr "Apakah Anda yakin ingin mengeluarkan anggota ini dari tim?" -#: src/app/main/ui/dashboard/team.cljs:425 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.delete-team-member-confirm.title" msgstr "Keluarkan anggota tim" -#: src/app/main/ui/delete_shared.cljs:59 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-unpublish-shared-confirm.activated.hint" msgid_plural "modals.delete-unpublish-shared-confirm.activated.hint" msgstr[0] "" "Aset yang telah digunakan dalam berkas akan tetap di sana (tidak ada desain " "yang akan rusak)." -#: src/app/main/ui/dashboard/team.cljs:942 msgid "modals.delete-webhook.accept" msgstr "Hapus kaitan web" -#: src/app/main/ui/dashboard/team.cljs:941 msgid "modals.delete-webhook.message" msgstr "Apakah Anda yakin ingin menghapus kaitan web ini?" -#: src/app/main/ui/dashboard/team.cljs:940 msgid "modals.delete-webhook.title" msgstr "Menghapus kaitan web" -#: src/app/main/ui/dashboard/team.cljs:872 msgid "modals.edit-webhook.submit-label" msgstr "Sunting kaitan web" -#: src/app/main/ui/dashboard/team.cljs:837 msgid "modals.edit-webhook.title" msgstr "Sunting kaitan web" -#: src/app/main/ui/dashboard/team.cljs:218 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.invite-member-confirm.accept" msgstr "Kirim undangan" -#: src/app/main/ui/dashboard/team.cljs:213, src/app/main/ui/onboarding/team_choice.cljs:156 msgid "modals.invite-member.emails" msgstr "Surel, dipisah dengan koma" -#: src/app/main/ui/dashboard/team.cljs:197 msgid "modals.invite-member.repeated-invitation" msgstr "" -"Beberapa surel berasal dari anggota tim saat ini. Undangan mereka tidak " -"akan dikirim." +"Beberapa surel berasal dari anggota tim saat ini. Undangan mereka tidak akan " +"dikirim." -#: src/app/main/ui/dashboard/team.cljs:190 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.invite-team-member.title" msgstr "Undang anggota ke tim" -#: src/app/main/ui/dashboard/sidebar.cljs:423, src/app/main/ui/dashboard/team.cljs:393 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-close-confirm.hint" msgstr "" "Karena Anda anggota satu-satunya dari tim ini, tim akan dihapus beserta " "proyek dan berkasnya." -#: src/app/main/ui/dashboard/sidebar.cljs:422, src/app/main/ui/dashboard/team.cljs:392 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-close-confirm.message" msgstr "Apakah Anda yakin ingin meninggalkan tim %s?" -#: src/app/main/ui/dashboard/change_owner.cljs:59 msgid "modals.leave-and-reassign.forbidden" msgstr "" "Anda tidak dapat tinggalkan tim jika tidak ada anggota lain untuk " "dipromosikan sebagai pemilik. Anda mungkin ingin menghapus tim ini." -#: src/app/main/ui/dashboard/change_owner.cljs:55 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-reassign.hint1" msgstr "" "Anda adalah pemilik dari tim ini. Silakan memilih anggota lain untuk " "mempromosikan sebagai pemilik sebelum Anda tinggal." -#: src/app/main/ui/dashboard/change_owner.cljs:78 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-reassign.promote-and-leave" msgstr "Promosikan dan tinggal" -#: src/app/main/ui/dashboard/change_owner.cljs:34 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-reassign.select-member-to-promote" msgstr "Pilih seorang anggota untuk dipromosikan" -#: src/app/main/ui/dashboard/change_owner.cljs:49 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-reassign.title" msgstr "Sebelum Anda tinggal" -#: src/app/main/ui/dashboard/sidebar.cljs:402, src/app/main/ui/dashboard/sidebar.cljs:424, src/app/main/ui/dashboard/team.cljs:394, src/app/main/ui/dashboard/team.cljs:416 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-confirm.accept" msgstr "Tinggalkan tim" -#: src/app/main/ui/dashboard/sidebar.cljs:401, src/app/main/ui/dashboard/team.cljs:415 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-confirm.message" msgstr "Apakah Anda ingin meninggalkan tim ini?" -#: src/app/main/ui/dashboard/sidebar.cljs:400, src/app/main/ui/dashboard/sidebar.cljs:421, src/app/main/ui/dashboard/team.cljs:391, src/app/main/ui/dashboard/team.cljs:414 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-confirm.title" msgstr "Meninggalkan tim" -#: src/app/main/ui/delete_shared.cljs:53 -msgid "modals.move-shared-confirm.accept" -msgid_plural "modals.move-shared-confirm.accept" -msgstr[0] "Pindahkan" - -#: src/app/main/ui/delete_shared.cljs:48 -msgid "modals.move-shared-confirm.message" -msgid_plural "modals.move-shared-confirm.message" -msgstr[0] "Apakah Anda yakin ingin memindahkan pustaka ini?" - -#: src/app/main/ui/delete_shared.cljs:43 -msgid "modals.move-shared-confirm.title" -msgid_plural "modals.move-shared-confirm.title" -msgstr[0] "Pindahkan pustaka" - -#: src/app/main/ui/workspace/main_menu.cljs:266, src/app/main/ui/workspace/nudge.cljs:47 +#: src/app/main/ui/workspace/nudge.cljs msgid "modals.nudge-title" msgstr "Jumlah dorongan" -#: src/app/main/ui/dashboard/team.cljs:340 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.accept" msgstr "Transfer kemilikan" -#: src/app/main/ui/dashboard/team.cljs:339 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.hint" msgstr "" -"Jika Anda mentransfer kemilikan, Anda akan mengubah peran Anda ke Admin, " -"dan kehilangan beberapa izin pada tim ini. " +"Jika Anda mentransfer kemilikan, Anda akan mengubah peran Anda ke Admin, dan " +"kehilangan beberapa izin pada tim ini. " -#: src/app/main/ui/dashboard/team.cljs:338 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.message" msgstr "" "Anda saat ini adalah pemilik dari tim ini. Apakah Anda yakin ingin membuat " "%s sebagai pemilik tim ini?" -#: src/app/main/ui/dashboard/team.cljs:337 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.title" msgstr "Pemilik tim baru" -#: src/app/main/ui/workspace/libraries.cljs:188 msgid "modals.publish-empty-library.accept" msgstr "Terbitkan" -#: src/app/main/ui/workspace/libraries.cljs:187 msgid "modals.publish-empty-library.message" msgstr "Pustaka Anda sedang kosong. Apakah Anda ingin menerbitkannya?" -#: src/app/main/ui/workspace/libraries.cljs:186 msgid "modals.publish-empty-library.title" msgstr "Terbitkan pustaka kosong" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.remove-shared-confirm.accept" msgstr "Hapus sebagai Pustaka Terbagi" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.remove-shared-confirm.hint" msgstr "" "Ketika dihapus sebagai Pustaka Terbagi, Pustaka Berkas dari berkas ini akan " "tidak lagi tersedia untuk digunakan di antara berkas Anda." -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.remove-shared-confirm.message" msgstr "Hapus “%s” sebagai Pustaka Terbagi" -#: src/app/main/ui/workspace/nudge.cljs:53 +#: src/app/main/ui/workspace/nudge.cljs msgid "modals.small-nudge" msgstr "Dorongan kecil" -#: src/app/main/ui/delete_shared.cljs:52 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.unpublish-shared-confirm.accept" msgid_plural "modals.unpublish-shared-confirm.accept" msgstr[0] "Batalkan penerbitan" -#: src/app/main/ui/delete_shared.cljs:47 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.unpublish-shared-confirm.message" msgid_plural "modals.unpublish-shared-confirm.message" msgstr[0] "Apakah Anda yakin ingin membatalkan penerbitan pustaka ini?" -#: src/app/main/ui/delete_shared.cljs:42 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.unpublish-shared-confirm.title" msgid_plural "modals.unpublish-shared-confirm.title" msgstr[0] "Batalkan penerbitan pustaka" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component-in-bulk.hint" msgstr "" "Anda akan memperbarui komponen dalam pustaka terbagi. Ini mungkin " "memengaruhi berkas lain yang menggunakannya." -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component-in-bulk.message" msgstr "Perbarui komponen dalam pustaka terbagi" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:380 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.accept" msgstr "Perbarui" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:379 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.cancel" msgstr "Batal" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:378 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.hint" msgstr "" "Anda akan memperbarui sebuah komponen dalam sebuah pustaka terbagi. Ini " "mungkin memengaruhi berkas lain yang menggunakannya." -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:377 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.message" msgstr "Perbarui sebuah komponen dalam sebuah pustaka terbagi" -#: src/app/main/data/common.cljs:71 +#: src/app/main/data/common.cljs msgid "notifications.by-code.upgrade-version" msgstr "Versi baru sudah tersedia, silakan muat ulang laman" -#: src/app/main/ui/dashboard/team.cljs:154, src/app/main/ui/dashboard/team.cljs:595 +#: src/app/main/ui/dashboard/team.cljs msgid "notifications.invitation-email-sent" msgstr "Undangan berhasil dikirim" -#: src/app/main/ui/dashboard/team.cljs:616 +#: src/app/main/ui/dashboard/team.cljs msgid "notifications.invitation-link-copied" msgstr "Tautan undangan disalin" -#: src/app/main/ui/settings/delete_account.cljs:24 +#: src/app/main/ui/settings/delete_account.cljs msgid "notifications.profile-deletion-not-allowed" msgstr "" "Anda tidak dapat menghapus profil Anda. Ubah peran pada tim Anda sebelum " "menlanjutkan." -#: src/app/main/ui/settings/options.cljs:29, src/app/main/ui/settings/profile.cljs:35 +#: src/app/main/ui/settings/profile.cljs, src/app/main/ui/settings/options.cljs msgid "notifications.profile-saved" msgstr "Profil berhasil disimpan!" -#: src/app/main/ui/settings/change_email.cljs:63 +#: src/app/main/ui/settings/change_email.cljs msgid "notifications.validation-email-sent" msgstr "Surel verifikasi dikirim ke %s. Periksa surel Anda!" -#, unused msgid "onboarding-v2.before-start.desc1" msgstr "" "Anda seharusnya tahu bahwa ada banyak sumber daya yang tersedia untuk " "membantu Anda memulai dengan Penpot, seperti Panduan Pengguna dan saluran " "YouTube kami." -#, unused msgid "onboarding-v2.before-start.desc2" msgstr "" "Info detail cara menggunakan Penpot. Dari pembuatan prototipe sampai " "mengelola atau membagikan desain." -#, unused msgid "onboarding-v2.before-start.desc2.title" msgstr "Panduan pengguna" -#, unused msgid "onboarding-v2.before-start.desc3" msgstr "" "Anda dapat melihat tutorial kami dan tutorial lain yang dibuat oleh " "komunitas kami." -#, unused msgid "onboarding-v2.before-start.desc3.title" msgstr "Tutorial video" -#, unused msgid "onboarding-v2.before-start.title" msgstr "Sebelum Anda mulai" -#: src/app/main/ui/onboarding/newsletter.cljs:63 msgid "onboarding-v2.newsletter.desc" msgstr "" "Berlangganan ke buletin Penpot untuk tetap terkini dengan kemajuan " "pengembangan dan berita produk." -#: src/app/main/ui/onboarding/newsletter.cljs:83 msgid "onboarding-v2.newsletter.news" -msgstr "Kirimkan saya berita tentang Penpot (pos blog, tutorial video, siaran...)." +msgstr "" +"Kirimkan saya berita tentang Penpot (pos blog, tutorial video, siaran...)." -#: src/app/main/ui/onboarding/newsletter.cljs:91 msgid "onboarding-v2.newsletter.privacy1" msgstr "Kami peduli tentang privasi, di sini Anda dapat membaca " -#: src/app/main/ui/onboarding/newsletter.cljs:97 msgid "onboarding-v2.newsletter.privacy2" msgstr "" "Kami hanya akan mengirim surel yang relevan. Anda dapat berhenti " "berlangganan kapan pun melalui tautan berhenti langganan di buletin apa pun " "dari kami." -#: src/app/main/ui/onboarding/newsletter.cljs:71 msgid "onboarding-v2.newsletter.updates" msgstr "Kirimkan saya pembaruan produk (fitur baru, rilis, perbaikan...)." -#, unused msgid "onboarding-v2.welcome.desc1" msgstr "" "Penpot itu Sumber Terbuka dan dibuat oleh Kaleidos beserta komunitasnya, di " "mana banyak orang sudah membantu sesama. Siapa pun dapat berkontribusi " "dengan:" -#, unused msgid "onboarding-v2.welcome.desc2" msgstr "" "Sebuah ruang umum untuk belajar, berbagi, dan berdiskusi tentang Penpot, " "masa sekarang dan masa depan dengan seluruh Komunitas dan tim inti Penpot." -#, unused msgid "onboarding-v2.welcome.desc2.title" msgstr "Berpartisipasi dalam Komunitas" -#, unused msgid "onboarding-v2.welcome.desc3" msgstr "" -"Di mana Anda akan menemukan cara berkolaborasi dengan terjemahan, " -"permintaan fitur, kontribusi inti, pemburuan kutu…" +"Di mana Anda akan menemukan cara berkolaborasi dengan terjemahan, permintaan " +"fitur, kontribusi inti, pemburuan kutu…" -#, unused msgid "onboarding-v2.welcome.desc3.title" msgstr "Panduan berkontribusi" -#: src/app/main/ui/onboarding/team_choice.cljs:31 msgid "onboarding-v2.welcome.title" msgstr "Selamat datang di Penpot!" -#: src/app/main/ui/onboarding/team_choice.cljs:229 msgid "onboarding.choice.team-up.continue-creating-team" msgstr "Lanjutkan membuat tim" -#: src/app/main/ui/onboarding/team_choice.cljs:239 msgid "onboarding.choice.team-up.continue-without-a-team" msgstr "Lanjutkan tanpa tim" -#: src/app/main/ui/onboarding/team_choice.cljs:167 msgid "onboarding.choice.team-up.create-team-and-invite" msgstr "Buat tim & undang" -#, unused msgid "onboarding.choice.team-up.create-team-and-send-invites" msgstr "Buat tim dan kirim undangan" -#: src/app/main/ui/onboarding/team_choice.cljs:170 msgid "onboarding.choice.team-up.create-team-and-send-invites-description" msgstr "Anda nanti akan dapat mengundang" -#: src/app/main/ui/onboarding/team_choice.cljs:215 msgid "onboarding.choice.team-up.create-team-desc" msgstr "" "Setelah memberi nama tim, Anda akan dapat mengundang orang-orang untuk " "bergabung." -#: src/app/main/ui/onboarding/team_choice.cljs:224 msgid "onboarding.choice.team-up.create-team-placeholder" msgstr "Masukkan nama tim" -#: src/app/main/ui/onboarding/team_choice.cljs:168 msgid "onboarding.choice.team-up.create-team-without-invite" msgstr "Buat tim" -#, unused msgid "onboarding.choice.team-up.create-team-without-inviting" msgstr "Buat tim tanpa mengundang" -#: src/app/main/ui/dashboard/projects.cljs:89, src/app/main/ui/onboarding/team_choice.cljs:140 msgid "onboarding.choice.team-up.invite-members" msgstr "Undang anggota" -#: src/app/main/ui/onboarding/team_choice.cljs:141 msgid "onboarding.choice.team-up.invite-members-info" msgstr "" "Pastikan untuk menyertakan semuanya. Pengembang, pendesain, pengelola... " "keragaman bertambah :)" -#: src/app/main/ui/dashboard/team.cljs:202, src/app/main/ui/onboarding/team_choice.cljs:146 msgid "onboarding.choice.team-up.roles" msgstr "Undang dengan peran:" -#: src/app/main/ui/onboarding/team_choice.cljs:232 msgid "onboarding.choice.team-up.start-without-a-team" msgstr "Mulai tanpa tim" -#: src/app/main/ui/onboarding/team_choice.cljs:234 msgid "onboarding.choice.team-up.start-without-a-team-description" msgstr "Anda nanti akan dapat membuat tim." -#, unused msgid "onboarding.newsletter.accept" msgstr "Ya, berlangganan" -#: src/app/main/ui/onboarding/newsletter.cljs:40 msgid "onboarding.newsletter.acceptance-message" msgstr "" "Permintaan langganan Anda telah dikirim, kami akan mengirim Anda sebuah " "surel untuk mengonfirmasinya." -#: src/app/main/ui/onboarding/newsletter.cljs:95 msgid "onboarding.newsletter.policy" msgstr "Kebijakan Privasi kami." -#: src/app/main/ui/onboarding/newsletter.cljs:60 msgid "onboarding.newsletter.title" msgstr "Ingin menerima berita Penpot?" -#: src/app/main/ui/onboarding/questions.cljs:118 -msgid "onboarding.questions.lets-get-started" -msgstr "Mari kita mulai!" - -#: src/app/main/ui/onboarding/questions.cljs:273 -msgid "onboarding.questions.team-size.11-30" -msgstr "11–30" - -#: src/app/main/ui/onboarding/questions.cljs:274 -msgid "onboarding.questions.team-size.2-10" -msgstr "2–10" - -#: src/app/main/ui/onboarding/questions.cljs:272 -msgid "onboarding.questions.team-size.31-50" -msgstr "31–50" - -#: src/app/main/ui/onboarding/questions.cljs:271 -msgid "onboarding.questions.team-size.more-than-50" -msgstr "Lebih dari 50" - -#: src/app/main/ui/onboarding/questions.cljs:276 -msgid "onboarding.questions.team-size.personal-project" -msgstr "Saya mengerjakan proyek pribadi" - -#: src/app/main/ui/onboarding/team_choice.cljs:213 msgid "onboarding.team-modal.create-team" msgstr "Buat sebuah tim" -#: src/app/main/ui/onboarding/team_choice.cljs:35 msgid "onboarding.team-modal.create-team-desc" msgstr "" "Sebuah tim memungkinkan Anda berkolaborasi dengan pengguna Penpot lain " "bekerja dalam berkas dan proyek yang sama." -#: src/app/main/ui/onboarding/team_choice.cljs:40 msgid "onboarding.team-modal.create-team-feature-1" msgstr "Berkas dan proyek tidak terbatas" -#: src/app/main/ui/onboarding/team_choice.cljs:44 msgid "onboarding.team-modal.create-team-feature-2" msgstr "Edisi multipemain" -#: src/app/main/ui/onboarding/team_choice.cljs:48 msgid "onboarding.team-modal.create-team-feature-3" msgstr "Pengelolaan peran" -#: src/app/main/ui/onboarding/team_choice.cljs:52 msgid "onboarding.team-modal.create-team-feature-4" msgstr "Anggota tidak terbatas" -#: src/app/main/ui/onboarding/team_choice.cljs:56 msgid "onboarding.team-modal.create-team-feature-5" msgstr "100% gratis!" -#: src/app/main/ui/onboarding/team_choice.cljs:33 -msgid "onboarding.team-modal.team-definition" -msgstr "Apa itu tim?" - -#: src/app/main/ui/onboarding/templates.cljs:78 msgid "onboarding.templates.subtitle" msgstr "Berikut adalah beberapa templat." -#: src/app/main/ui/onboarding/templates.cljs:77 msgid "onboarding.templates.title" msgstr "Mulai mendesain" -#, unused msgid "onboarding.welcome.alt" msgstr "Penpot" -#: src/app/main/ui/auth/recovery.cljs:99 +#: src/app/main/ui/auth/recovery.cljs msgid "profile.recovery.go-to-login" msgstr "Pergi ke log masuk" -#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:221 +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.team-size.11-30" +msgstr "11–30" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.team-size.2-10" +msgstr "2–10" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.team-size.31-50" +msgstr "31–50" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.adobe-xd" +msgstr "Adobe XD" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.canva" +msgstr "Canva" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.developer" +msgstr "Pengembang" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.figma" +msgstr "Figma" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.freelancer" +msgstr "Saya seorang pekerja lepas" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.invision" +msgstr "InVision" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.lets-get-started" +msgstr "Mari kita mulai!" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.team-size.more-than-50" +msgstr "Lebih dari 50" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.next" +msgstr "Berikutnya" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.other" +msgstr "Lainnya (jelaskan)" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.team-size.personal-project" +msgstr "Saya mengerjakan proyek pribadi" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.previous" +msgstr "Sebelumnya" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.select-option" +msgstr "Pilih opsi" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.sketch" +msgstr "Sketch" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.start" +msgstr "Mulai" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.student-teacher" +msgstr "Siswa atau Guru" + +#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, msgid "settings.detach" msgstr "Copot" -#: src/app/main/ui/viewer/inspect/exports.cljs:147, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:631, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:137, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:148, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:188, src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:158, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:399, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:410, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:430, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:441, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:458, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:472, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:309, src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:183, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:373, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:389, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:245, src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:172 +#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs msgid "settings.multiple" msgstr "Tercampur" -#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:271 -msgid "settings.select-this-color" -msgstr "Pilih item menggunakan gaya ini" - # SECTIONS -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:414 msgid "shortcut-section.basics" msgstr "Dasar" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:420 msgid "shortcut-section.dashboard" msgstr "Dasbor" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:423 msgid "shortcut-section.viewer" msgstr "Pelihat" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:417 msgid "shortcut-section.workspace" msgstr "Ruang Kerja" # SUBSECTIONS -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:56 msgid "shortcut-subsection.alignment" msgstr "Penyesuaian" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:57 msgid "shortcut-subsection.edit" msgstr "Sunting" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:58 msgid "shortcut-subsection.general-dashboard" msgstr "Generik" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:59 msgid "shortcut-subsection.general-viewer" msgstr "Generik" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:60 msgid "shortcut-subsection.main-menu" msgstr "Menu utama" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:61 msgid "shortcut-subsection.modify-layers" msgstr "Ubah lapisan" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:62 msgid "shortcut-subsection.navigation-dashboard" msgstr "Navigasi" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:63 msgid "shortcut-subsection.navigation-viewer" msgstr "Navigasi" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:64 msgid "shortcut-subsection.navigation-workspace" msgstr "Navigasi" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:65 msgid "shortcut-subsection.panels" msgstr "Panel" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:66 msgid "shortcut-subsection.path-editor" msgstr "Jejak" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:67 msgid "shortcut-subsection.shape" msgstr "Bentuk" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:68 msgid "shortcut-subsection.text-editor" msgstr "Teks" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:69 msgid "shortcut-subsection.tools" msgstr "Peralatan" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:70 msgid "shortcut-subsection.zoom-viewer" msgstr "Zum" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:71 msgid "shortcut-subsection.zoom-workspace" msgstr "Zum" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:72 msgid "shortcuts.add-comment" msgstr "Komentar" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:73 msgid "shortcuts.add-node" msgstr "Tambahkan simpul" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:74 msgid "shortcuts.align-bottom" msgstr "Sesuaikan ke bawah" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:75 msgid "shortcuts.align-center" msgstr "Paskan ke tengah" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:76 msgid "shortcuts.align-hcenter" msgstr "Sesuaikan ke tengah secara horizontal" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:77 msgid "shortcuts.align-justify" msgstr "Paskan secara rata" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:78 msgid "shortcuts.align-left" msgstr "Sesuaikan ke kiri" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:79 msgid "shortcuts.align-right" msgstr "Sesuaikan ke kanan" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:80 msgid "shortcuts.align-top" msgstr "Sesuaikan ke atas" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:81 msgid "shortcuts.align-vcenter" msgstr "Sesuaikan ke tengah secara vertikal" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:82 msgid "shortcuts.artboard-selection" msgstr "Buat papan dari seleksi" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:83 msgid "shortcuts.bold" msgstr "Tebal" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:84 msgid "shortcuts.bool-difference" msgstr "Perbedaan boolean" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:85 msgid "shortcuts.bool-exclude" msgstr "Pengecualian boolean" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:86 msgid "shortcuts.bool-intersection" msgstr "Berpotongan boolean" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:87 msgid "shortcuts.bool-union" msgstr "Serikat boolean" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:88 msgid "shortcuts.bring-back" msgstr "Turunkan ke paling belakang" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:89 msgid "shortcuts.bring-backward" msgstr "Turunkan ke belakang" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:90 msgid "shortcuts.bring-forward" msgstr "Naikkan ke atas" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:91 msgid "shortcuts.bring-front" msgstr "Naikkan ke paling atas" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:92 msgid "shortcuts.clear-undo" msgstr "Hapus urungan" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:93 msgid "shortcuts.copy" msgstr "Salin" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:94 msgid "shortcuts.create-component" msgstr "Buat komponen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:95 msgid "shortcuts.create-new-project" msgstr "Buat baru" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:96 msgid "shortcuts.cut" msgstr "Potong" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:97 msgid "shortcuts.decrease-zoom" msgstr "Perkecil" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:98 msgid "shortcuts.delete" msgstr "Hapus" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:99 msgid "shortcuts.delete-node" msgstr "Hapus simpul" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:100 msgid "shortcuts.detach-component" msgstr "Lepaskan komponen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:101 msgid "shortcuts.draw-curve" msgstr "Kurva" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:102 msgid "shortcuts.draw-ellipse" msgstr "Elipss" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:103 msgid "shortcuts.draw-frame" msgstr "Papan" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:104 msgid "shortcuts.draw-nodes" msgstr "Gambar jalur" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:105 msgid "shortcuts.draw-path" msgstr "Jalur" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:106 msgid "shortcuts.draw-rect" msgstr "Persegi Panjang" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:107 msgid "shortcuts.draw-text" msgstr "Teks" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:108 msgid "shortcuts.duplicate" msgstr "Gandakan" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:109 msgid "shortcuts.escape" msgstr "Batal" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:110 msgid "shortcuts.export-shapes" msgstr "Ekspor bentuk" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:111 msgid "shortcuts.fit-all" msgstr "Zum untuk muat semua" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:112 msgid "shortcuts.flip-horizontal" msgstr "Balikkan secara horizontal" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:113 msgid "shortcuts.flip-vertical" msgstr "Balikkan secara vertikal" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:114 msgid "shortcuts.font-size-dec" msgstr "Kurangi ukuran fon" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:115 msgid "shortcuts.font-size-inc" msgstr "Tambahkan ukuran fon" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:116 msgid "shortcuts.go-to-drafts" msgstr "Pergi ke draf" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:117 msgid "shortcuts.go-to-libs" msgstr "Pergi ke pustaka terbagi" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:118 msgid "shortcuts.go-to-search" msgstr "Cari" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:119 msgid "shortcuts.group" msgstr "Kelompok" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:120 msgid "shortcuts.h-distribute" msgstr "Distribusikan secara horizontal" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:121 msgid "shortcuts.hide-ui" msgstr "Tampilkan/sembunyikan antarmuka" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:122 msgid "shortcuts.increase-zoom" msgstr "Perbesar" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:123 msgid "shortcuts.insert-image" msgstr "Sematkan gambar" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:124 msgid "shortcuts.italic" msgstr "Miring" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:125 msgid "shortcuts.join-nodes" msgstr "Gabungkan simpul" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:126 msgid "shortcuts.letter-spacing-dec" msgstr "Kurangi spasi huruf" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:127 msgid "shortcuts.letter-spacing-inc" msgstr "Tambahkan spasi huruf" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:128 msgid "shortcuts.line-height-dec" msgstr "Kurangi ketinggian baris" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:129 msgid "shortcuts.line-height-inc" msgstr "Tambahkan ketinggian baris" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:130 msgid "shortcuts.line-through" msgstr "Coret" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:131 msgid "shortcuts.make-corner" msgstr "Buat sudut" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:132 msgid "shortcuts.make-curve" msgstr "Buat kurva" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:133 msgid "shortcuts.mask" msgstr "Topeng" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:134 msgid "shortcuts.merge-nodes" msgstr "Gabungkan simpul" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:135 msgid "shortcuts.move" msgstr "Pindah" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:136 msgid "shortcuts.move-fast-down" msgstr "Pindah ke bawah secara cepat" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:137 msgid "shortcuts.move-fast-left" msgstr "Pindah ke kiri secara cepat" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:138 msgid "shortcuts.move-fast-right" msgstr "Pindah ke kanan secara cepat" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:139 msgid "shortcuts.move-fast-up" msgstr "Pindah ke atas secara cepat" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:140 msgid "shortcuts.move-nodes" msgstr "Pindahkan simpul" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:141 msgid "shortcuts.move-unit-down" msgstr "Pindah ke bawah" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:142 msgid "shortcuts.move-unit-left" msgstr "Pindah ke kiri" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:143 msgid "shortcuts.move-unit-right" msgstr "Pindah ke kanan" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:144 msgid "shortcuts.move-unit-up" msgstr "Pindah ke atas" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:145 msgid "shortcuts.next-frame" msgstr "Papan berikutnya" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:516 msgid "shortcuts.not-found" msgstr "Tidak ada pintasan yang ditemukan" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:146 msgid "shortcuts.opacity-0" msgstr "Tetapkan opasitas ke 100%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:147 msgid "shortcuts.opacity-1" msgstr "Tetapkan opasitas ke 10%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:148 msgid "shortcuts.opacity-2" msgstr "Tetapkan opasitas ke 20%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:149 msgid "shortcuts.opacity-3" msgstr "Tetapkan opasitas ke 30%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:150 msgid "shortcuts.opacity-4" msgstr "Tetapkan opasitas ke 40%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:151 msgid "shortcuts.opacity-5" msgstr "Tetapkan opasitas ke 50%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:152 msgid "shortcuts.opacity-6" msgstr "Tetapkan opasitas ke 60%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:153 msgid "shortcuts.opacity-7" msgstr "Tetapkan opasitas ke 70%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:154 msgid "shortcuts.opacity-8" msgstr "Tetapkan opasitas ke 80%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:155 msgid "shortcuts.opacity-9" msgstr "Tetapkan opasitas ke 90%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:156 msgid "shortcuts.open-color-picker" msgstr "Pemilih warna" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:157 msgid "shortcuts.open-comments" msgstr "Pergi ke bagian komentar pelihat" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:158 msgid "shortcuts.open-dashboard" msgstr "Pergi ke dasbor" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:159 msgid "shortcuts.open-inspect" msgstr "Pergi ke bagian inspeksi penampil" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:160 msgid "shortcuts.open-interactions" msgstr "Pergi ke bagian interaksi pelihat" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:161 msgid "shortcuts.open-viewer" msgstr "Pergi ke bagian interaksi pelihat" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:162 msgid "shortcuts.open-workspace" msgstr "Pergi ke ruang kerja" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:260 msgid "shortcuts.or" msgstr " atau " -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:163 msgid "shortcuts.paste" msgstr "Tempelkan" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:164 msgid "shortcuts.prev-frame" msgstr "Papan sebelumnya" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:165 msgid "shortcuts.redo" msgstr "Ulangi" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:166 msgid "shortcuts.reset-zoom" msgstr "Atur ulang zum" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:167 -msgid "shortcuts.scale" -msgstr "Skala" - -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:168 msgid "shortcuts.search-placeholder" msgstr "Cari pintasan" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:169 msgid "shortcuts.select-all" msgstr "Pilih semua" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:170 msgid "shortcuts.select-next" msgstr "Pilih lapisan berikutnya" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:171 msgid "shortcuts.select-parent-layer" msgstr "Pilih lapisan induk" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:172 msgid "shortcuts.select-prev" msgstr "Pilih lapisan sebelumnya" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:173 msgid "shortcuts.separate-nodes" msgstr "Pisahkan simpul" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:174 msgid "shortcuts.show-pixel-grid" msgstr "Tampilkan/sembunyikan kisi piksel" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:175 msgid "shortcuts.show-shortcuts" msgstr "Tampilkan/sembunyikan pintasan" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:176 msgid "shortcuts.snap-nodes" msgstr "Tancap ke simpul" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:177 msgid "shortcuts.snap-pixel-grid" msgstr "Tancap ke kisi piksel" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:178 msgid "shortcuts.start-editing" msgstr "Mulai menyunting" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:179 msgid "shortcuts.start-measure" msgstr "Mulai mengukur" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:180 msgid "shortcuts.stop-measure" msgstr "Berhenti mengukur" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:181 msgid "shortcuts.text-align-center" msgstr "Paskan ke tengah" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:182 msgid "shortcuts.text-align-justify" msgstr "Paskan secara rata" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:183 msgid "shortcuts.text-align-left" msgstr "Paskan ke kiri" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:184 msgid "shortcuts.text-align-right" msgstr "Paskan ke kanan" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:185 msgid "shortcuts.thumbnail-set" msgstr "Tetapkan gambar kecil" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:496, src/app/main/ui/workspace/sidebar/shortcuts.cljs:505 +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs msgid "shortcuts.title" msgstr "Pintasan papan ketik" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:186 msgid "shortcuts.toggle-alignment" msgstr "Alih penyesuaian dinamis" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:187 msgid "shortcuts.toggle-assets" msgstr "Alih aset" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:188 msgid "shortcuts.toggle-colorpalette" msgstr "Alih palet warna" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:189 msgid "shortcuts.toggle-focus-mode" msgstr "Alih mode fokus" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:190 msgid "shortcuts.toggle-fullscreen" msgstr "Alih layar penuh" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:191 -msgid "shortcuts.toggle-guides" -msgstr "Tampilkan / Sembunyikan panduan" - -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:192 msgid "shortcuts.toggle-history" msgstr "Alih riwayat" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:193 msgid "shortcuts.toggle-layers" msgstr "Alih lapisan" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:194 msgid "shortcuts.toggle-layout-flex" msgstr "Tambahkan/hapus tata letak flex" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:195 -msgid "shortcuts.toggle-layout-grid" -msgstr "Tambahkan/hapus tata letak kisi" - -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:196 msgid "shortcuts.toggle-lock" msgstr "Kunci dipilih" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:197 msgid "shortcuts.toggle-lock-size" msgstr "Kunci proporsi" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:198 -msgid "shortcuts.toggle-rulers" -msgstr "Tampilkan / Sembunyikan penggaris" - -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:200 -msgid "shortcuts.toggle-snap-guides" -msgstr "Pasang ke panduan" - -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:201 -msgid "shortcuts.toggle-snap-ruler-guide" -msgstr "Pasang ke panduan penggaris" - -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:202 msgid "shortcuts.toggle-textpalette" msgstr "Alih palet teks" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:203 msgid "shortcuts.toggle-theme" msgstr "Ubah tema" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:204 msgid "shortcuts.toggle-visibility" msgstr "Alih keterlihatan" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:205 msgid "shortcuts.toggle-zoom-style" msgstr "Alih gaya zum" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:206 msgid "shortcuts.underline" msgstr "Garis bawah" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:207 msgid "shortcuts.undo" msgstr "Urungkan" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:208 msgid "shortcuts.ungroup" msgstr "Lepaskan kelompok" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:209 msgid "shortcuts.unmask" msgstr "Lepaskan topeng" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:210 msgid "shortcuts.v-distribute" msgstr "Distribusikan secara vertikal" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:211 msgid "shortcuts.zoom-lense-decrease" msgstr "Kurangi lensa zum" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:212 msgid "shortcuts.zoom-lense-increase" msgstr "Tambahkan lensa zum" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:213 msgid "shortcuts.zoom-selected" msgstr "Zum ke terpilih" -#: src/app/main/ui/dashboard/team.cljs:771 +#: src/app/main/ui/dashboard/team.cljs msgid "team.webhooks.max-length" msgstr "Nama webhook berisi sampai 2048 karakter." -#: src/app/main/ui/dashboard/files.cljs:158 +#: src/app/main/ui/dashboard/files.cljs msgid "title.dashboard.files" msgstr "%s - Penpot" -#: src/app/main/ui/dashboard/fonts.cljs:37 +#: src/app/main/ui/dashboard/fonts.cljs msgid "title.dashboard.font-providers" msgstr "Penyedia Fon - %s - Penpot" -#: src/app/main/ui/dashboard/fonts.cljs:36 +#: src/app/main/ui/dashboard/fonts.cljs msgid "title.dashboard.fonts" msgstr "Fon - %s - Penpot" -#: src/app/main/ui/dashboard/projects.cljs:320 +#: src/app/main/ui/dashboard/projects.cljs msgid "title.dashboard.projects" msgstr "Proyek - %s - Penpot" -#: src/app/main/ui/dashboard/search.cljs:32 +#: src/app/main/ui/dashboard/search.cljs msgid "title.dashboard.search" msgstr "Cari - %s - Penpot" -#: src/app/main/ui/dashboard/libraries.cljs:44 +#: src/app/main/ui/dashboard/libraries.cljs msgid "title.dashboard.shared-libraries" msgstr "Pustaka Terbagi - %s - Penpot" -#: src/app/main/ui/auth/verify_token.cljs:68, src/app/main/ui/auth.cljs:54 +#: src/app/main/ui/auth/verify_token.cljs, src/app/main/ui/auth.cljs msgid "title.default" msgstr "Penpot - Kebebasan Desain untuk Tim" -#: src/app/main/ui/settings/access_tokens.cljs:292 +#: src/app/main/ui/settings/access-tokens.cljs msgid "title.settings.access-tokens" msgstr "Profil - Token akses" -#: src/app/main/ui/settings/feedback.cljs:110 +#: src/app/main/ui/settings/feedback.cljs msgid "title.settings.feedback" msgstr "Berikan masukan - Penpot" -#: src/app/main/ui/settings/options.cljs:80 +#: src/app/main/ui/settings/options.cljs msgid "title.settings.options" msgstr "Pengaturan - Penpot" -#: src/app/main/ui/settings/password.cljs:115 +#: src/app/main/ui/settings/password.cljs msgid "title.settings.password" msgstr "Kata sandi - Penpot" -#: src/app/main/ui/settings/profile.cljs:115 +#: src/app/main/ui/settings/profile.cljs msgid "title.settings.profile" msgstr "Profil - Penpot" -#: src/app/main/ui/dashboard/team.cljs:727 +#: src/app/main/ui/dashboard/team.cljs msgid "title.team-invitations" msgstr "Undangan - %s - Penpot" -#: src/app/main/ui/dashboard/team.cljs:493 +#: src/app/main/ui/dashboard/team.cljs msgid "title.team-members" msgstr "Anggota - %s - Penpot" -#: src/app/main/ui/dashboard/team.cljs:1036 +#: src/app/main/ui/dashboard/team.cljs msgid "title.team-settings" msgstr "Pengaturan - %s - Penpot" -#: src/app/main/ui/dashboard/team.cljs:989 msgid "title.team-webhooks" msgstr "Kaitan Web - %s - Penpot" -#: src/app/main/ui/viewer.cljs:419 +#: src/app/main/ui/handoff.cljs, src/app/main/ui/viewer.cljs msgid "title.viewer" msgstr "%s - Mode penampilan - Penpot" -#: src/app/main/ui/workspace.cljs:190 +#: src/app/main/ui/workspace.cljs msgid "title.workspace" msgstr "%s - Penpot" -#: src/app/main/ui.cljs:144 msgid "viewer.breaking-change.description" msgstr "" "Tautan yang dapat dibagikan ini tidak valid lagi. Buat yang baru atau " "tanyakan kepada pemilik untuk membuat lagi." -#: src/app/main/ui.cljs:143 msgid "viewer.breaking-change.message" msgstr "Maaf!" -#: src/app/main/ui/viewer.cljs:569 +#: src/app/main/ui/handoff.cljs, src/app/main/ui/viewer.cljs msgid "viewer.empty-state" msgstr "Tidak ada papan yang ditemukan di halaman." -#: src/app/main/ui/viewer.cljs:574 +#: src/app/main/ui/handoff.cljs, src/app/main/ui/viewer.cljs msgid "viewer.frame-not-found" msgstr "Papan tidak ditemukan." -#: src/app/main/ui/viewer/header.cljs:336 msgid "viewer.header.comments-section" msgstr "Komentar (%s)" -#: src/app/main/ui/viewer/interactions.cljs:292 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.dont-show-interactions" msgstr "Jangan tampilkan interaksi" -#: src/app/main/ui/viewer/header.cljs:188 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.fullscreen" msgstr "Layar Penuh" -#: src/app/main/ui/viewer/header.cljs:345 msgid "viewer.header.inspect-section" msgstr "Inspeksi (%s)" -#: src/app/main/ui/viewer/interactions.cljs:282 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.interactions" msgstr "Interaksi" -#: src/app/main/ui/viewer/header.cljs:327 msgid "viewer.header.interactions-section" msgstr "Interaksi (%s)" -#: src/app/main/ui/viewer/share_link.cljs:187 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.share.copy-link" msgstr "Salin tautan" -#: src/app/main/ui/viewer/interactions.cljs:300 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.show-interactions" msgstr "Tampilkan interaksi" -#: src/app/main/ui/viewer/interactions.cljs:311 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.show-interactions-on-click" msgstr "Tampilkan interaksi pada klik" -#: src/app/main/ui/viewer/header.cljs:231 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.sitemap" msgstr "Peta Situs" -#: src/app/main/ui/dashboard/team.cljs:948 msgid "webhooks.last-delivery.success" msgstr "Pengiriman terakhir berhasil." -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:58 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.hcenter" msgstr "Sesuaikan tengah horizontal (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:74 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.hdistribute" msgstr "Distribusikan spasi horizontal (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:50 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.hleft" msgstr "Sesuaikan ke kiri (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:66 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.hright" msgstr "Sesuaikan ke kanan (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:99 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.vbottom" msgstr "Sesuaikan ke bawah (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:91 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.vcenter" msgstr "Sesuaikan ke tengah vertikal (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:104 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.vdistribute" msgstr "Distribusikan spasi vertikal (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:83 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.vtop" msgstr "Sesuaikan ke atas (%s)" #: src/app/main/ui/workspace/sidebar/assets.cljs -#, unused msgid "workspace.assets.assets" msgstr "Aset" -#: src/app/main/ui/workspace/sidebar/assets.cljs:134 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.box-filter-all" msgstr "Semua aset" -#: src/app/main/ui/dashboard/grid.cljs:130, src/app/main/ui/dashboard/grid.cljs:162, src/app/main/ui/workspace/sidebar/assets/colors.cljs:485, src/app/main/ui/workspace/sidebar/assets.cljs:150 +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.colors" msgstr "Warna" -#: src/app/main/ui/dashboard/grid.cljs:126, src/app/main/ui/dashboard/grid.cljs:141, src/app/main/ui/workspace/sidebar/assets/components.cljs:513, src/app/main/ui/workspace/sidebar/assets.cljs:139 +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.components" msgstr "Komponen" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:131 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.create-group" msgstr "Buat sebuah kelompok" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:142 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.create-group-hint" -msgstr "Butir Anda akan dinamakan \"nama kelompok / nama butir\" secara otomatis" +msgstr "" +"Butir Anda akan dinamakan \"nama kelompok / nama butir\" secara otomatis" -#: src/app/main/ui/workspace/context_menu.cljs:529, src/app/main/ui/workspace/sidebar/assets/colors.cljs:251, src/app/main/ui/workspace/sidebar/assets/components.cljs:577, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:424, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:443 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.delete" msgstr "Hapus" -#: src/app/main/ui/workspace/context_menu.cljs:534, src/app/main/ui/workspace/sidebar/assets/components.cljs:572 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.duplicate" msgstr "Gandakan" -#: src/app/main/ui/workspace/sidebar/assets/components.cljs:571 msgid "workspace.assets.duplicate-main" msgstr "Gandakan utama" -#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:247, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:439 +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.edit" msgstr "Sunting" -#: src/app/main/ui/workspace/sidebar/assets.cljs:176 -msgid "workspace.assets.filter" -msgstr "Penyaring" - -#: src/app/main/ui/workspace/sidebar/assets/graphics.cljs:384, src/app/main/ui/workspace/sidebar/assets.cljs:145 +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.graphics" msgstr "Grafis" -#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:255, src/app/main/ui/workspace/sidebar/assets/components.cljs:581, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:428, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:448 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.group" msgstr "Kelompok" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:141 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.group-name" msgstr "Nama kelompok" -#: src/app/main/ui/workspace/sidebar/assets.cljs:168 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.libraries" msgstr "Pustaka" -#: src/app/main/ui/workspace/sidebar/assets/file_library.cljs:62, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:347 msgid "workspace.assets.local-library" msgstr "pustaka lokal" -#: src/app/main/ui/workspace/sidebar/assets/file_library.cljs:295 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.not-found" msgstr "Tidak ada aset yang ditemukan" -#, unused msgid "workspace.assets.open-library" msgstr "Buka berkas pustaka" -#: src/app/main/ui/workspace/context_menu.cljs:532, src/app/main/ui/workspace/sidebar/assets/colors.cljs:243, src/app/main/ui/workspace/sidebar/assets/components.cljs:566, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:421, src/app/main/ui/workspace/sidebar/assets/groups.cljs:63, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:434 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.rename" msgstr "Ubah nama" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:132 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.rename-group" msgstr "Ubah nama kelompok" -#: src/app/main/ui/workspace/sidebar/assets.cljs:173 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.search" msgstr "Cari aset" #: src/app/main/ui/workspace/sidebar/assets.cljs -#, unused msgid "workspace.assets.selected-count" msgid_plural "workspace.assets.selected-count" msgstr[0] "%s aset dipilih" #: src/app/main/ui/workspace/sidebar/assets.cljs -#, unused msgid "workspace.assets.shared-library" msgstr "Pustaka terbagi" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:221 -msgid "workspace.assets.sidebar.components" -msgid_plural "workspace.assets.sidebar.components" -msgstr[0] "%s komponen" - -#: src/app/main/ui/workspace/sidebar/assets.cljs:193 -msgid "workspace.assets.sort" -msgstr "Urutkan" - -#: src/app/main/ui/dashboard/grid.cljs:134, src/app/main/ui/dashboard/grid.cljs:189, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:397, src/app/main/ui/workspace/sidebar/assets.cljs:155 +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.typography" msgstr "Tipografi" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused msgid "workspace.assets.typography.font-id" msgstr "Fon" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:505 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.font-size" msgstr "Ukuran" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:501 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.font-variant-id" msgstr "Varian" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:523 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.go-to-edit" msgstr "Pergi ke berkas pustaka untuk menyunting" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:513 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.letter-spacing" msgstr "Spasi Huruf" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:509 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.line-height" msgstr "Ketinggian Garis" -#: src/app/main/ui/dashboard/grid.cljs:199, src/app/main/ui/workspace/libraries.cljs:461, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:464, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:489, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:596, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:615 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, +#: src/app/main/ui/handoff/attributes/text.cljs, +#: src/app/main/ui/handoff/attributes/text.cljs msgid "workspace.assets.typography.sample" msgstr "Ag" -#, unused msgid "workspace.assets.typography.text-styles" msgstr "Gaya teks" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:517 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.text-transform" msgstr "Transformasi Teks" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:66 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.ungroup" msgstr "Lepas kelompok" -#: src/app/main/ui/workspace/context_menu.cljs:634 msgid "workspace.context-menu.grid-cells.area" msgstr "Buat area" -#: src/app/main/ui/workspace/context_menu.cljs:637 msgid "workspace.context-menu.grid-cells.create-board" msgstr "Buat papan" -#: src/app/main/ui/workspace/context_menu.cljs:629 msgid "workspace.context-menu.grid-cells.merge" msgstr "Gabungkan sel" -#: src/app/main/ui/workspace/context_menu.cljs:594 msgid "workspace.context-menu.grid-track.column.add-after" msgstr "Tambah 1 kolom ke kanan" -#: src/app/main/ui/workspace/context_menu.cljs:593 msgid "workspace.context-menu.grid-track.column.add-before" msgstr "Tambah 1 kolom ke kiri" -#: src/app/main/ui/workspace/context_menu.cljs:595 msgid "workspace.context-menu.grid-track.column.delete" msgstr "Hapus kolom" -#: src/app/main/ui/workspace/context_menu.cljs:596 msgid "workspace.context-menu.grid-track.column.delete-shapes" msgstr "Hapus kolom dan bentuk" -#: src/app/main/ui/workspace/context_menu.cljs:592 msgid "workspace.context-menu.grid-track.column.duplicate" msgstr "Gandakan kolom" -#: src/app/main/ui/workspace/context_menu.cljs:601 msgid "workspace.context-menu.grid-track.row.add-after" msgstr "Tambah 1 baris di bawah" -#: src/app/main/ui/workspace/context_menu.cljs:600 msgid "workspace.context-menu.grid-track.row.add-before" msgstr "Tambah 1 baris di atas" -#: src/app/main/ui/workspace/context_menu.cljs:602 msgid "workspace.context-menu.grid-track.row.delete" msgstr "Hapus baris" -#: src/app/main/ui/workspace/context_menu.cljs:603 msgid "workspace.context-menu.grid-track.row.delete-shapes" msgstr "Hapus baris dan bentuk" -#: src/app/main/ui/workspace/context_menu.cljs:599 msgid "workspace.context-menu.grid-track.row.duplicate" msgstr "Gandakan baris" -#: src/app/main/ui/workspace/sidebar/layers.cljs:525 msgid "workspace.focus.focus-mode" msgstr "Mode fokus" -#: src/app/main/ui/workspace/context_menu.cljs:287, src/app/main/ui/workspace/context_menu.cljs:553 msgid "workspace.focus.focus-off" msgstr "Fokus nonaktif" -#: src/app/main/ui/workspace/context_menu.cljs:286 msgid "workspace.focus.focus-on" msgstr "Fokus aktif" -#, unused msgid "workspace.focus.selection" msgstr "Seleksi" -#: src/app/util/color.cljs:34 +#: src/app/main/data/workspace/libraries.cljs, +#: src/app/main/ui/components/color_bullet.cljs msgid "workspace.gradients.linear" msgstr "Gradien linear" -#: src/app/util/color.cljs:35 +#: src/app/main/data/workspace/libraries.cljs, +#: src/app/main/ui/components/color_bullet.cljs msgid "workspace.gradients.radial" msgstr "Gradien radial" -#: src/app/main/ui/workspace/main_menu.cljs:238 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.disable-dynamic-alignment" msgstr "Nonaktifkan penyesuaian dinamis" -#: src/app/main/ui/workspace/main_menu.cljs:192 msgid "workspace.header.menu.disable-scale-content" msgstr "Nonaktifkan skala proporsional" #: src/app/main/ui/workspace/header.cljs -#, unused msgid "workspace.header.menu.disable-scale-text" msgstr "Nonaktifkan skala teks" -#: src/app/main/ui/workspace/main_menu.cljs:223 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.disable-snap-guides" msgstr "Nonaktifkan tancapan ke pemandu" -#: src/app/main/ui/workspace/main_menu.cljs:253 msgid "workspace.header.menu.disable-snap-pixel-grid" msgstr "Nonaktifkan tancapan ke piksel" -#: src/app/main/ui/workspace/main_menu.cljs:207 -msgid "workspace.header.menu.disable-snap-ruler-guides" -msgstr "Nonaktifkan pemasangan ke panduan penggaris" - -#: src/app/main/ui/workspace/main_menu.cljs:239 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.enable-dynamic-alignment" msgstr "Aktifkan penyesuaian dinamis" -#: src/app/main/ui/workspace/main_menu.cljs:193 msgid "workspace.header.menu.enable-scale-content" msgstr "Aktifkan skala proporsional" #: src/app/main/ui/workspace/header.cljs -#, unused msgid "workspace.header.menu.enable-scale-text" msgstr "Aktifkan skala teks" -#: src/app/main/ui/workspace/main_menu.cljs:224 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.enable-snap-guides" msgstr "Tancapkan ke pemandu" -#: src/app/main/ui/workspace/main_menu.cljs:254 msgid "workspace.header.menu.enable-snap-pixel-grid" msgstr "Aktifkan tancapkan ke piksel" -#: src/app/main/ui/workspace/main_menu.cljs:208 -msgid "workspace.header.menu.enable-snap-ruler-guides" -msgstr "Pasang ke panduan penggaris" - -#: src/app/main/ui/workspace/main_menu.cljs:382 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.hide-artboard-names" msgstr "Sembunyikan nama papan" -#: src/app/main/ui/workspace/main_menu.cljs:336 -msgid "workspace.header.menu.hide-guides" -msgstr "Sembunyikan panduan" - -#: src/app/main/ui/workspace/main_menu.cljs:353 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.hide-palette" msgstr "Sembunyikan palet warna" -#: src/app/main/ui/workspace/main_menu.cljs:394 msgid "workspace.header.menu.hide-pixel-grid" msgstr "Sembunyikan kisi piksel" -#: src/app/main/ui/workspace/main_menu.cljs:320 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.hide-rules" msgstr "Sembunyikan penggaris" -#: src/app/main/ui/workspace/main_menu.cljs:367 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.hide-textpalette" msgstr "Sembunyikan palet fon" -#: src/app/main/ui/workspace/main_menu.cljs:731 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.edit" msgstr "Sunting" -#: src/app/main/ui/workspace/main_menu.cljs:720 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.file" msgstr "Berkas" -#: src/app/main/ui/workspace/main_menu.cljs:777 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.help-info" msgstr "Bantuan & info" -#: src/app/main/ui/workspace/main_menu.cljs:753 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.preferences" msgstr "Preferensi" -#: src/app/main/ui/workspace/main_menu.cljs:742 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.view" msgstr "Tampilan" -#: src/app/main/ui/workspace/main_menu.cljs:459 msgid "workspace.header.menu.redo" msgstr "Ulangi" -#: src/app/main/ui/workspace/main_menu.cljs:432 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.select-all" msgstr "Pilih semua" -#: src/app/main/ui/workspace/main_menu.cljs:383 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.show-artboard-names" msgstr "Tampilkan nama papan" -#: src/app/main/ui/workspace/main_menu.cljs:337 -msgid "workspace.header.menu.show-guides" -msgstr "Tampilkan panduan" - -#: src/app/main/ui/workspace/main_menu.cljs:354 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.show-palette" msgstr "Tampilkan palet warna" -#: src/app/main/ui/workspace/main_menu.cljs:395 msgid "workspace.header.menu.show-pixel-grid" msgstr "Tampilkan kisi piksel" -#: src/app/main/ui/workspace/main_menu.cljs:321 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.show-rules" msgstr "Tampilkan penggaris" -#: src/app/main/ui/workspace/main_menu.cljs:368 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.show-textpalette" msgstr "Tampilkan palet fon" -#: src/app/main/ui/workspace/main_menu.cljs:279 msgid "workspace.header.menu.toggle-dark-theme" msgstr "Ubah ke tema gelap" -#: src/app/main/ui/workspace/main_menu.cljs:278 msgid "workspace.header.menu.toggle-light-theme" msgstr "Ubah ke tema terang" -#: src/app/main/ui/workspace/main_menu.cljs:446 msgid "workspace.header.menu.undo" msgstr "Urungkan" -#: src/app/main/ui/viewer/header.cljs:98, src/app/main/ui/workspace/right_header.cljs:120 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.reset-zoom" msgstr "Atur ulang" #: src/app/main/ui/workspace/header.cljs -#, unused msgid "workspace.header.save-error" msgstr "Kesalahan saat menyimpan" -#: src/app/main/ui/workspace/right_header.cljs:52 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.saved" msgstr "Disimpan" #: src/app/main/ui/workspace/header.cljs -#, unused msgid "workspace.header.saving" msgstr "Menyimpan" -#: src/app/main/ui/workspace/right_header.cljs:42, src/app/main/ui/workspace/right_header.cljs:47 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.unsaved" msgstr "Perubahan belum disimpan" -#: src/app/main/ui/workspace/right_header.cljs:239 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.viewer" msgstr "Mode penampilan (%s)" -#: src/app/main/ui/viewer/header.cljs:79, src/app/main/ui/workspace/right_header.cljs:103 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom" msgstr "Zum" -#: src/app/main/ui/viewer/header.cljs:109 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom-fill" msgstr "Penuhi - Ubah ukuran untuk memenuhi" -#: src/app/main/ui/viewer/header.cljs:102 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom-fit" msgstr "Pas - Ubah ukuran supaya pas" -#: src/app/main/ui/workspace/right_header.cljs:123 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom-fit-all" msgstr "Zum supaya pas semua" -#: src/app/main/ui/viewer/header.cljs:116 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom-full-screen" msgstr "Layar penuh" -#: src/app/main/ui/workspace/right_header.cljs:130 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom-selected" msgstr "Zum ke terpilih" -#: src/app/main/ui/workspace/sidebar/options/menus/grid_cell.cljs:273, src/app/main/ui/workspace/sidebar/options/menus/grid_cell.cljs:275, src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:612 msgid "workspace.layout_grid.editor.options.edit-grid" msgstr "Sunting kisi" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:1280 msgid "workspace.layout_grid.editor.options.exit" msgstr "Keluar" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:483 -msgid "workspace.layout_grid.editor.padding.expand" -msgstr "Tampilkan opsi bantalan 4 sisi" - -#: src/app/main/ui/workspace/viewport/grid_layout_editor.cljs:59 msgid "workspace.layout_grid.editor.title" msgstr "Kisi penyuntingan" -#: src/app/main/ui/workspace/viewport/grid_layout_editor.cljs:65 msgid "workspace.layout_grid.editor.top-bar.done" msgstr "Selesai" -#: src/app/main/ui/workspace/viewport/grid_layout_editor.cljs:62 msgid "workspace.layout_grid.editor.top-bar.locate" msgstr "Cari lokasi" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:1306 -msgid "workspace.layout_grid.editor.top-bar.locate.tooltip" -msgstr "Lokasi tata letak kisi" - #: src/app/main/ui/workspace/libraries.cljs -#, unused msgid "workspace.libraries.add" msgstr "Tambahkan" -#: src/app/main/ui/workspace/libraries.cljs:80, src/app/main/ui/workspace/libraries.cljs:99 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.colors" msgstr "%s warna" -#: src/app/main/ui/workspace/color_palette.cljs:126 +#: src/app/main/ui/workspace/colorpalette.cljs msgid "workspace.libraries.colors.empty-palette" msgstr "Belum ada gaya warna dalam pustaka Anda" -#: src/app/main/ui/workspace/text_palette.cljs:150 +#: src/app/main/ui/workspace/textpalette.cljs msgid "workspace.libraries.colors.empty-typography-palette" msgstr "Belum ada gaya tipografi dalam pustaka Anda" -#: src/app/main/ui/workspace/color_palette_ctx_menu.cljs:60, src/app/main/ui/workspace/colorpicker/libraries.cljs:73, src/app/main/ui/workspace/text_palette_ctx_menu.cljs:50 +#: src/app/main/ui/workspace/colorpicker/libraries.cljs, +#: src/app/main/ui/workspace/colorpalette.cljs msgid "workspace.libraries.colors.file-library" msgstr "Pustaka berkas" #: src/app/main/ui/workspace/colorpicker.cljs -#, unused msgid "workspace.libraries.colors.hsv" msgstr "HSV" -#: src/app/main/ui/workspace/color_palette_ctx_menu.cljs:82, src/app/main/ui/workspace/colorpicker/libraries.cljs:72 +#: src/app/main/ui/workspace/colorpicker/libraries.cljs, +#: src/app/main/ui/workspace/colorpalette.cljs msgid "workspace.libraries.colors.recent-colors" msgstr "Warna terkini" #: src/app/main/ui/workspace/colorpicker.cljs -#, unused msgid "workspace.libraries.colors.rgb-complementary" msgstr "Pelengkap RGB" #: src/app/main/ui/workspace/colorpicker.cljs -#, unused msgid "workspace.libraries.colors.rgba" msgstr "RGBA" -#: src/app/main/ui/workspace/colorpicker.cljs:372 +#: src/app/main/ui/workspace/colorpicker.cljs msgid "workspace.libraries.colors.save-color" msgstr "Simpan gaya warna" -#: src/app/main/ui/workspace/libraries.cljs:74, src/app/main/ui/workspace/libraries.cljs:91 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.components" msgstr "%s komponen" -#: src/app/main/ui/workspace/libraries.cljs:215 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.file-library" msgstr "Pustaka berkas" -#: src/app/main/ui/workspace/libraries.cljs:77, src/app/main/ui/workspace/libraries.cljs:95 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.graphics" msgstr "%s grafis" -#: src/app/main/ui/workspace/libraries.cljs:209 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.in-this-file" msgstr "PUSTAKA DALAM BERKAS INI" -#: src/app/main/ui/workspace/libraries.cljs:526, src/app/main/ui/workspace/libraries.cljs:531 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.libraries" msgstr "PUSTAKA" #: src/app/main/ui/workspace/libraries.cljs -#, unused msgid "workspace.libraries.library" msgstr "PUSTAKA" -#: src/app/main/ui/workspace/libraries.cljs:382 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.library-updates" msgstr "PEMBARUAN PUSTAKA" -#: src/app/main/ui/workspace/libraries.cljs:290 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.loading" msgstr "Memuat…" -#: src/app/main/ui/workspace/libraries.cljs:380 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.no-libraries-need-sync" msgstr "Tidak ada Pustaka Terbagi yang membutuhkan pembaruan" -#: src/app/main/ui/workspace/libraries.cljs:299 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.no-matches-for" msgstr "Tidak ada yang cocok dengan “%s”" -#: src/app/main/ui/workspace/libraries.cljs:296 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.no-shared-libraries-available" msgstr "Tidak ada Pustaka Terbagi yang tersedia" -#: src/app/main/ui/workspace/libraries.cljs:260 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.search-shared-libraries" msgstr "Cari pustaka terbagi" -#: src/app/main/ui/workspace/libraries.cljs:256 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.shared-libraries" msgstr "PUSTAKA TERBAGI" -#: src/app/main/ui/workspace/libraries.cljs:282 -msgid "workspace.libraries.shared-library-btn" -msgstr "Hubungkan pustaka" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:308 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.libraries.text.multiple-typography" msgstr "Beberapa tipografi" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:311 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.libraries.text.multiple-typography-tooltip" msgstr "Lepaskan tautan dari semua tipografi" -#: src/app/main/ui/workspace/libraries.cljs:83, src/app/main/ui/workspace/libraries.cljs:103 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.typography" msgstr "%s tipografi" -#: src/app/main/ui/workspace/libraries.cljs:249 -msgid "workspace.libraries.unlink-library-btn" -msgstr "Putuskan pustaka" - -#: src/app/main/ui/workspace/libraries.cljs:402 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.update" msgstr "Perbarui" -#: src/app/main/ui/workspace/libraries.cljs:477 +#: src/app/main/data/workspace/libraries.cljs msgid "workspace.libraries.update.see-all-changes" msgstr "lihat semua perubahan" -#: src/app/main/ui/workspace/libraries.cljs:536 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.updates" msgstr "PEMBARUAN" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:737 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.add-interaction" msgstr "Klik tombol + untuk menambahkan interaksi." -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:86, src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:102 +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs msgid "workspace.options.blur-options.title" msgstr "Buram" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:85 +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs msgid "workspace.options.blur-options.title.group" msgstr "Buram kelompok" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:84 +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs msgid "workspace.options.blur-options.title.multiple" msgstr "Buram seleksi" -#: src/app/main/ui/workspace/sidebar/options/page.cljs:32, src/app/main/ui/workspace/sidebar/options/page.cljs:39 +#: src/app/main/ui/workspace/sidebar/options/page.cljs msgid "workspace.options.canvas-background" msgstr "Latar belakang kanvas" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:548 msgid "workspace.options.clip-content" msgstr "Klip konten" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:600, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:605 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs msgid "workspace.options.component" msgstr "Komponen" -#: src/app/main/ui/viewer/inspect/annotation.cljs:19, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:181 msgid "workspace.options.component.annotation" msgstr "Anotasi" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:610 msgid "workspace.options.component.copy" msgstr "Salin" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:173 msgid "workspace.options.component.create-annotation" msgstr "Buat anotasi" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:172 msgid "workspace.options.component.edit-annotation" msgstr "Sunting anotasi" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:609 msgid "workspace.options.component.main" msgstr "Utama" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:427 msgid "workspace.options.component.swap" msgstr "Ganti komponen" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:471 msgid "workspace.options.component.swap.empty" msgstr "Belum ada aset dalam pustaka ini" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:163 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints" msgstr "Pasangan" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:150 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.bottom" msgstr "Bawah" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:141, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:152 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.center" msgstr "Tengah" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:229 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.fix-when-scrolling" msgstr "Tetap ketika menggulir" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:138 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.left" msgstr "Kiri" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:140 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.leftright" msgstr "Kiri & Kanan" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:139 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.right" msgstr "Kanan" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:142, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:153 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.scale" msgstr "Ukuran" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:149 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.top" msgstr "Atas" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:151 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.topbottom" msgstr "Atas & Bawah" -#: src/app/main/ui/workspace/sidebar/options.cljs:112 +#: src/app/main/ui/workspace/sidebar/options.cljs msgid "workspace.options.design" msgstr "Desain" -#: src/app/main/ui/viewer/inspect/exports.cljs:139 +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, +#: src/app/main/ui/handoff/exports.cljs msgid "workspace.options.export" msgstr "Ekspor" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, +#: src/app/main/ui/handoff/exports.cljs msgid "workspace.options.export-multiple" msgstr "Ekspor seleksi" -#: src/app/main/ui/viewer/inspect/exports.cljs:195, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:237 +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, +#: src/app/main/ui/handoff/exports.cljs msgid "workspace.options.export-object" msgid_plural "workspace.options.export-object" msgstr[0] "Ekspor %s elemen" -#: src/app/main/ui/viewer/inspect/exports.cljs:178, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:219 +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs msgid "workspace.options.export.suffix" msgstr "Akhiran" -#: src/app/main/ui/export.cljs:240 +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, +#: src/app/main/ui/handoff/exports.cljs, src/app/main/ui/workspace/header.cljs msgid "workspace.options.exporting-complete" msgstr "Pengeksporan selesai" -#: src/app/main/ui/export.cljs:172, src/app/main/ui/export.cljs:241, src/app/main/ui/viewer/inspect/exports.cljs:194, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:236 +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, +#: src/app/main/ui/handoff/exports.cljs, src/app/main/ui/workspace/header.cljs msgid "workspace.options.exporting-object" msgstr "Mengekspor…" -#: src/app/main/ui/export.cljs:239 +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, +#: src/app/main/ui/handoff/exports.cljs, src/app/main/ui/workspace/header.cljs msgid "workspace.options.exporting-object-error" msgstr "Pengeksporan gagal" -#: src/app/main/ui/export.cljs:242 +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, +#: src/app/main/ui/handoff/exports.cljs, src/app/main/ui/workspace/header.cljs msgid "workspace.options.exporting-object-slow" msgstr "Pengeksporan secara tidak terduga lambat" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:49, src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:174 +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs msgid "workspace.options.fill" msgstr "Isian" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:178 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.flows.add-flow-start" msgstr "Tambahkan awalan alur" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:174 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.flows.flow" msgstr "Alur" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -#, unused msgid "workspace.options.flows.flow-start" msgstr "Awalan alur" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:161 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.flows.flow-starts" msgstr "Aluran dimulai" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:29 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.auto" msgstr "Otomatis" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:157 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.column" msgstr "Kolom" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.grid-title" msgstr "Kisi" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:196, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:237 msgid "workspace.options.grid.params.color" msgstr "Warna" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.params.columns" msgstr "Kolom" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:259 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.gutter" msgstr "Selokan" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:246 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.height" msgstr "Tinggi" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:270 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.margin" msgstr "Margin" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.params.rows" msgstr "Baris" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:216, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:290 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.set-default" msgstr "Tetapkan sebagai bawaan" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.params.size" msgstr "Ukuran" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.params.type" msgstr "Jenis" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:231 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.bottom" msgstr "Bawah" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:229 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.center" msgstr "Tengah" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:228 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.left" msgstr "Kiri" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:232 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.right" msgstr "Kanan" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:225 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.stretch" msgstr "Lebarkan" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:227 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.top" msgstr "Atas" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:211, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:288 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.use-default" msgstr "Gunakan bawaan" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:247 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.width" msgstr "Lebar" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:158 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.row" msgstr "Baris" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:156 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.square" msgstr "Kotak" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:48 +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs msgid "workspace.options.group-fill" msgstr "Isian kelompok" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:42 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.group-stroke" msgstr "Sapuan kelompok" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:310 msgid "workspace.options.guides.title" msgstr "Panduan" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:406 msgid "workspace.options.height" msgstr "Tinggi" -#: src/app/main/ui/workspace/sidebar/options.cljs:161 msgid "workspace.options.inspect" msgstr "Inspeksi" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:468 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-action" msgstr "Tindakan" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:41, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:367 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-after-delay" msgstr "Setelah jeda" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:614 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-animation" msgstr "Animasi" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:406 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-animation-dissolve" msgstr "Larut" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:405 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-animation-none" msgstr "Tidak ada" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:412 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-animation-push" msgstr "Dorong" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:407 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-animation-slide" msgstr "Geser" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:391 msgid "workspace.options.interaction-auto" msgstr "otomatis" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:604 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-background" msgstr "Tambahkan hamparan latar belakang" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:590 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-close-outside" msgstr "Tutup ketika mengeklik di luar" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:372 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-close-overlay" msgstr "Tutup hamparan" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:56 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-close-overlay-dest" msgstr "Tutup hamparan: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:456 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-delay" msgstr "Jeda" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:478 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-destination" msgstr "Tujuan" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:661 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-duration" msgstr "Durasi" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:674 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing" msgstr "Pemasukan" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:416 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing-ease" msgstr "Ease" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:417 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing-ease-in" msgstr "Ease masuk" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:419 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing-ease-in-out" msgstr "Ease masuk keluar" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:418 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing-ease-out" msgstr "Ease keluar" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:415 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing-linear" msgstr "Linear" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -#, unused msgid "workspace.options.interaction-in" msgstr "Masuk" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:39, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:364 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-mouse-enter" msgstr "Tetikus masuk" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:40, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:365 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-mouse-leave" msgstr "Tetikus keluar" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:458, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:459, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:464, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:663, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:665, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:669 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-ms" msgstr "md" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:369 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-navigate-to" msgstr "Navigasi ke" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:50 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-navigate-to-dest" msgstr "Navigasi ke: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:51, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:53, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:55, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:380 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-none" msgstr "(tidak ditetapkan)" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:691 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-offset-effect" msgstr "Efek ofset" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:35, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:360 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-on-click" msgstr "Pada Klik" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:370 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-open-overlay" msgstr "Buka hamparan" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:52 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-open-overlay-dest" msgstr "Buka hamparan: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:59, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:374 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-open-url" msgstr "Buka URL" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -#, unused msgid "workspace.options.interaction-out" msgstr "Keluar" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:403 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-bottom-center" msgstr "Tengah bawah" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:401 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-bottom-left" msgstr "Kiri bawah" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:402 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-bottom-right" msgstr "Kanan bawah" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:397 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-center" msgstr "Tengah" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:396 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-manual" msgstr "Manual" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:400 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-top-center" msgstr "Tengah atas" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:398 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-top-left" msgstr "Kiri atas" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:399 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-top-right" msgstr "Kanan atas" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:524 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-position" msgstr "Posisi" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:494 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-preserve-scroll" msgstr "Jaga posisi gulir" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:58, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:373 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-prev-screen" msgstr "Layar sebelumnya" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:515 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-relative-to" msgstr "Relatif ke" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:57, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:379, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:393, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:394 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-self" msgstr "diri sendiri" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:371 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-toggle-overlay" msgstr "Alih hamparan" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:54 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-toggle-overlay-dest" msgstr "Alih hamparan: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:445 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-trigger" msgstr "Picuan" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:503 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-url" msgstr "URL" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:37, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:362 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-while-hovering" msgstr "Saat Melayang" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:38, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:363 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-while-pressing" msgstr "Saat Menekan" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:724 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interactions" msgstr "Interaksi" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:137 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.color" msgstr "Warna" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:126 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.color-burn" msgstr "Bakaran warna" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:129 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.color-dodge" msgstr "Penghindaran warna" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:124 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.darken" msgstr "Gelapkan" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:133 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.difference" msgstr "Perbedaan" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:134 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.exclusion" msgstr "Tidak termasukan" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:132 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.hard-light" msgstr "Cahaya keras" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:135 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.hue" msgstr "Rona" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:127 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.lighten" msgstr "Terangkan" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:138 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.luminosity" msgstr "Kilau" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:125 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.multiply" msgstr "Kalikan" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:123 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.normal" msgstr "Normal" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:130 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.overlay" msgstr "Hamparan" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:136 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.saturation" msgstr "Saturasi" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:128 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.screen" msgstr "Layar" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:131 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.soft-light" msgstr "Cahaya lembut" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -#, unused msgid "workspace.options.layer-options.title" msgstr "Lapisan" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -#, unused msgid "workspace.options.layer-options.title.group" msgstr "Lapisan kelompok" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -#, unused msgid "workspace.options.layer-options.title.multiple" msgstr "Lapisan terpilih" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout-item.advanced-ops" msgstr "Opsi tingkat lanjut" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:564 +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs msgid "workspace.options.layout-item.layout-item-max-h" msgstr "Max.Height" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:531 +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs msgid "workspace.options.layout-item.layout-item-max-w" msgstr "Max.Width" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:548 +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs msgid "workspace.options.layout-item.layout-item-min-h" msgstr "Min.Height" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:515 +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs msgid "workspace.options.layout-item.layout-item-min-w" msgstr "Min.Width" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout-item.title.layout-item-max-h" msgstr "Tinggi maksimum" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout-item.title.layout-item-max-w" msgstr "Lebar maksimum" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout-item.title.layout-item-min-h" msgstr "Tinggi minimum" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout-item.title.layout-item-min-w" msgstr "Lebar minimum" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.bottom" msgstr "Bawah" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.direction.column" msgstr "Kolom" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.direction.column-reverse" msgstr "Kolom terbalik" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.direction.row" msgstr "Barisan" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.direction.row-reverse" msgstr "Baris terbalik" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.gap" msgstr "Celah" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.left" msgstr "Kiri" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout.margin" msgstr "Margin" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout.margin-all" msgstr "Semua sisi" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout.margin-simple" msgstr "Margin sederhana" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.packed" msgstr "dipaket" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.padding" msgstr "Padding" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.padding-all" msgstr "Semua sisi" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.padding-simple" msgstr "Padding sederhana" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.right" msgstr "Kanan" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.space-around" msgstr "ruang di sekitar" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.space-between" msgstr "ruang di antara" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.top" msgstr "Atas" -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:146 +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs msgid "workspace.options.more-colors" msgstr "Lebih banyak warna" -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:123 +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs msgid "workspace.options.more-lib-colors" msgstr "Lebih banyak warna pustaka" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:161 msgid "workspace.options.opacity" msgstr "Opasitas" -#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.position" msgstr "Posisi" -#: src/app/main/ui/workspace/sidebar/options.cljs:157 +#: src/app/main/ui/workspace/sidebar/options.cljs msgid "workspace.options.prototype" msgstr "Prototipe" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:469, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:481 msgid "workspace.options.radius" msgstr "Radius" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:513 +#: 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:522 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.radius-bottom-right" msgstr "Kanan bawah" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:495 +#: 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:504 +#: 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:532 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.radius.all-corners" msgstr "Semua sudut" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:533 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.radius.single-corners" msgstr "Sudut tersendiri" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:183 msgid "workspace.options.recent-fonts" msgstr "Terkini" -#: src/app/main/ui/export.cljs:284 +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, +#: src/app/main/ui/handoff/exports.cljs, src/app/main/ui/workspace/header.cljs msgid "workspace.options.retry" msgstr "Coba lagi" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:451 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.rotation" msgstr "Rotasi" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:180 msgid "workspace.options.search-font" msgstr "Cari fon" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:741 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.select-a-shape" -msgstr "Pilih bentuk, papan, atau kelompok untuk menyeret koneksi ke papan lain." +msgstr "" +"Pilih bentuk, papan, atau kelompok untuk menyeret koneksi ke papan lain." -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:105 +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs msgid "workspace.options.selection-color" msgstr "Warna terpilih" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:47 +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs msgid "workspace.options.selection-fill" msgstr "Isian seleksi" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:41 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.selection-stroke" msgstr "Sapuan seleksi" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:40, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:198, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:200 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.blur" msgstr "Buram" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:238 msgid "workspace.options.shadow-options.color" msgstr "Warna bayangan" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:144 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.drop-shadow" msgstr "Bayangan jatuhan" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:145 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.inner-shadow" msgstr "Bayangan masuk" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:38, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:186 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.offsetx" msgstr "X" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:39, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:224 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.offsety" msgstr "Y" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:41, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:211, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:213 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.spread" msgstr "Tersebar" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:296 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.title" msgstr "Bayangan" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:295 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.title.group" msgstr "Bayangan kelompok" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:294 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.title.multiple" msgstr "Bayangan seleksi" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:193 +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs msgid "workspace.options.show-fill-on-export" msgstr "Tampilkan dalam ekspor" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:562 msgid "workspace.options.show-in-viewer" msgstr "Tampilkan dalam mode penampil" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:162 +#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.size" msgstr "Ukuran" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:355 +#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs msgid "workspace.options.size-presets" msgstr "Prasetel ukuran" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:43 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke" msgstr "Sapuan" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -#, unused msgid "workspace.options.stroke-cap.circle-marker" msgstr "Penanda lingkaran" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:129 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.circle-marker-short" msgstr "Lingkaran" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -#, unused msgid "workspace.options.stroke-cap.diamond-marker" msgstr "Penanda berlian" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:130 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.diamond-marker-short" msgstr "Berlian" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -#, unused msgid "workspace.options.stroke-cap.line-arrow" msgstr "Panah garis" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:126 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.line-arrow-short" msgstr "Tanda panah" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:124 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.none" msgstr "Tidak ada" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:132 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.round" msgstr "Bulat" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:133 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.square" msgstr "Kotak" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -#, unused msgid "workspace.options.stroke-cap.square-marker" msgstr "Penanda kotak" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:128 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.square-marker-short" msgstr "Persegi panjang" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -#, unused msgid "workspace.options.stroke-cap.triangle-arrow" msgstr "Panah segi tiga" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:127 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.triangle-arrow-short" msgstr "Segitiga" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:192 msgid "workspace.options.stroke-color" msgstr "Warna sapuan" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:165 msgid "workspace.options.stroke-width" msgstr "Lebar sapuan" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:87 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.center" msgstr "Tengah" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:105 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.dashed" msgstr "Garis" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:104 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.dotted" msgstr "Titik" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:88 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.inner" msgstr "Dalam" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:106 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.mixed" msgstr "Tercampur" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:89 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.outer" msgstr "Luar" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:103 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.solid" msgstr "Padat" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:115 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.align-bottom" msgstr "Paskan ke bawah" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:111 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.align-middle" msgstr "Paskan ke tengah" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:107 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.align-top" msgstr "Paskan ke atas" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:82 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.direction-ltr" msgstr "Kiri ke Kanan" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:87 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.direction-rtl" msgstr "Kanan ke Kiri" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:149 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.grow-auto-height" msgstr "Tinggi otomatis" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:145 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.grow-auto-width" msgstr "Lebar otomatis" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:141 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.grow-fixed" msgstr "Tetap" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:381 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.options.text-options.letter-spacing" msgstr "Spasi Huruf" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:364 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.options.text-options.line-height" msgstr "Tinggi garis" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused msgid "workspace.options.text-options.lowercase" msgstr "Huruf kecil" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.options.text-options.none" msgstr "Tidak ada" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:176 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.strikethrough" msgstr "Coret (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:51 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.text-align-center" msgstr "Paskan ke tengah (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:59 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.text-align-justify" msgstr "Rata Kiri Kanan (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:47 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.text-align-left" msgstr "Paskan ke kiri (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:55 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.text-align-right" msgstr "Paskan ke kanan (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:189 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.title" msgstr "Teks" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:188 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.title-group" msgstr "Teks kelompok" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:187 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.title-selection" msgstr "Teks seleksi" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused msgid "workspace.options.text-options.titlecase" msgstr "Huruf judul" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:171 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.underline" msgstr "Garis bawah (%s)" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused msgid "workspace.options.text-options.uppercase" msgstr "Huruf Besar" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:745 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.use-play-button" msgstr "Gunakan tombol main di tajuk untuk menjalankan tampilan prototipe." -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:395 msgid "workspace.options.width" msgstr "Lebar" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:427 msgid "workspace.options.x" msgstr "Sumbu X" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:438 msgid "workspace.options.y" msgstr "Sumbu Y" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:167 msgid "workspace.path.actions.add-node" msgstr "Tambahkan simpul (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:174 msgid "workspace.path.actions.delete-node" msgstr "Hapus simpul (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:152 msgid "workspace.path.actions.draw-nodes" msgstr "Gambar simpul (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:189 msgid "workspace.path.actions.join-nodes" msgstr "Gabungkan simpul (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:204 msgid "workspace.path.actions.make-corner" msgstr "Ke sudut (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:211 msgid "workspace.path.actions.make-curve" msgstr "Ke kurva (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:182 msgid "workspace.path.actions.merge-nodes" msgstr "Gabungkan simpul (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:159 msgid "workspace.path.actions.move-nodes" msgstr "Pindahkan simpul (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:196 msgid "workspace.path.actions.separate-nodes" msgstr "Simpul terpisah (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:218 msgid "workspace.path.actions.snap-nodes" msgstr "Tancap simpul (%s)" -#: src/app/main/ui/workspace/context_menu.cljs:441 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.add-flex" msgstr "Tambahkan tata letak flex" -#: src/app/main/ui/workspace/context_menu.cljs:445 msgid "workspace.shape.menu.add-grid" msgstr "Tambahkan tata letak kisi" -#: src/app/main/ui/workspace/context_menu.cljs:193 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.back" msgstr "Kirim ke paling belakang" -#: src/app/main/ui/workspace/context_menu.cljs:190 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.backward" msgstr "Kirim ke belakang" -#: src/app/main/ui/workspace/context_menu.cljs:139 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.copy" msgstr "Salin" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:427 msgid "workspace.shape.menu.create-annotation" msgstr "Buat anotasi" -#: src/app/main/ui/workspace/context_menu.cljs:275 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.create-artboard-from-selection" msgstr "Seleksi ke papan" -#: src/app/main/ui/workspace/context_menu.cljs:465 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.create-component" msgstr "Buat komponen" -#: src/app/main/ui/workspace/context_menu.cljs:469 msgid "workspace.shape.menu.create-multiple-components" msgstr "Buat beberapa komponen" -#: src/app/main/ui/workspace/context_menu.cljs:142 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.cut" msgstr "Potong" -#: src/app/main/ui/workspace/context_menu.cljs:486 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.delete" msgstr "Hapus" -#: src/app/main/ui/workspace/context_menu.cljs:391 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.delete-flow-start" msgstr "Hapus awalan alur" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:432 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.detach-instance" msgstr "Lepaskan bagian" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:431 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.detach-instances-in-bulk" msgstr "Lepaskan bagian" -#: src/app/main/ui/workspace/context_menu.cljs:335, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:75 msgid "workspace.shape.menu.difference" msgstr "Perbedaan" -#: src/app/main/ui/workspace/context_menu.cljs:148 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.duplicate" msgstr "Gandakan" -#: src/app/main/ui/workspace/context_menu.cljs:321 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.edit" msgstr "Sunting" -#: src/app/main/ui/workspace/context_menu.cljs:341 msgid "workspace.shape.menu.exclude" msgstr "Tidak termasuk" -#: src/app/main/ui/workspace/context_menu.cljs:348, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:89 msgid "workspace.shape.menu.flatten" msgstr "Ratakan" -#: src/app/main/ui/workspace/context_menu.cljs:208 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.flip-horizontal" msgstr "Balikkan secara horizontal" -#: src/app/main/ui/workspace/context_menu.cljs:204 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.flip-vertical" msgstr "Balikkan secara vertikal" -#: src/app/main/ui/workspace/context_menu.cljs:394 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.flow-start" msgstr "Awalan alur" -#: src/app/main/ui/workspace/context_menu.cljs:184 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.forward" msgstr "Bawa ke depan" -#: src/app/main/ui/workspace/context_menu.cljs:187 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.front" msgstr "Bawa ke paling depan" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.go-main" msgstr "Pergi ke berkas komponen utama" -#: src/app/main/ui/workspace/context_menu.cljs:261 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.group" msgstr "Kelompok" -#: src/app/main/ui/workspace/context_menu.cljs:363, src/app/main/ui/workspace/sidebar/layer_item.cljs:145 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.hide" msgstr "Sembunyikan" -#: src/app/main/ui/workspace/context_menu.cljs:548, src/app/main/ui/workspace/main_menu.cljs:408 msgid "workspace.shape.menu.hide-ui" msgstr "Tampilkan/Sembunyikan Antarmuka" -#: src/app/main/ui/workspace/context_menu.cljs:338 msgid "workspace.shape.menu.intersection" msgstr "Persimpangan" -#: src/app/main/ui/workspace/context_menu.cljs:371, src/app/main/ui/workspace/sidebar/layer_item.cljs:153 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.lock" msgstr "Kunci" -#: src/app/main/ui/workspace/context_menu.cljs:266 +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.mask" msgstr "Topeng" -#: src/app/main/ui/workspace/context_menu.cljs:145, src/app/main/ui/workspace/context_menu.cljs:545 +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.paste" msgstr "Tempelkan" -#: src/app/main/ui/workspace/context_menu.cljs:331 msgid "workspace.shape.menu.path" msgstr "Jalur" -#: src/app/main/ui/workspace/context_menu.cljs:432 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.remove-flex" msgstr "Hapus tata letak flex" -#: src/app/main/ui/workspace/context_menu.cljs:435 -msgid "workspace.shape.menu.remove-grid" -msgstr "Hapus tata letak kisi" - -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:436 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.reset-overrides" msgstr "Atur ulang timpaan" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:439 msgid "workspace.shape.menu.restore-main" msgstr "Pulihkan komponen utama" -#: src/app/main/ui/workspace/context_menu.cljs:174 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.select-layer" msgstr "Pilih lapisan" -#: src/app/main/ui/workspace/context_menu.cljs:360, src/app/main/ui/workspace/sidebar/layer_item.cljs:144 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.show" msgstr "Tampilkan" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:424 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.show-in-assets" msgstr "Tampilkan dalam panel aset" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:442, src/app/main/ui/workspace/sidebar/assets/components.cljs:586 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.show-main" msgstr "Tampilkan komponen utama" -#: src/app/main/ui/workspace/context_menu.cljs:221 msgid "workspace.shape.menu.thumbnail-remove" msgstr "Hapus gambar kecil" -#: src/app/main/ui/workspace/context_menu.cljs:223 msgid "workspace.shape.menu.thumbnail-set" msgstr "Tetapkan sebagai gambar kecil" -#: src/app/main/ui/workspace/context_menu.cljs:326 msgid "workspace.shape.menu.transform-to-path" msgstr "Transformasi ke jalur" -#: src/app/main/ui/workspace/context_menu.cljs:257 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.ungroup" msgstr "Lepaskan kelompok" -#: src/app/main/ui/workspace/context_menu.cljs:332, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:70 msgid "workspace.shape.menu.union" msgstr "Serikat" -#: src/app/main/ui/workspace/context_menu.cljs:368, src/app/main/ui/workspace/sidebar/layer_item.cljs:152 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.unlock" msgstr "Buka kunci" -#: src/app/main/ui/workspace/context_menu.cljs:271 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.unmask" msgstr "Buka topeng" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.update-components-in-bulk" msgstr "Perbarui komponen utama" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:445 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.update-main" msgstr "Perbarui komponen utama" -#: src/app/main/ui/components/tab_container.cljs:50 msgid "workspace.sidebar.collapse" msgstr "Tutup bilah samping" -#: src/app/main/ui/workspace/sidebar/collapsable_button.cljs:26 msgid "workspace.sidebar.expand" msgstr "Buka bilah samping" -#: src/app/main/ui/workspace/right_header.cljs:231, src/app/main/ui/workspace/right_header.cljs:232 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.sidebar.history" msgstr "Riwayat (%s)" -#: src/app/main/ui/workspace/sidebar/layers.cljs:522, src/app/main/ui/workspace/sidebar.cljs:100 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.sidebar.layers" msgstr "Lapisan" -#: src/app/main/ui/workspace/sidebar/layers.cljs:308, src/app/main/ui/workspace/sidebar/layers.cljs:380 msgid "workspace.sidebar.layers.components" msgstr "Komponen" -#: src/app/main/ui/workspace/sidebar/layers.cljs:305, src/app/main/ui/workspace/sidebar/layers.cljs:338 msgid "workspace.sidebar.layers.frames" msgstr "Papan" -#: src/app/main/ui/workspace/sidebar/layers.cljs:306, src/app/main/ui/workspace/sidebar/layers.cljs:352 msgid "workspace.sidebar.layers.groups" msgstr "Kelompok" -#: src/app/main/ui/workspace/sidebar/layers.cljs:310, src/app/main/ui/workspace/sidebar/layers.cljs:408 msgid "workspace.sidebar.layers.images" msgstr "Gambar" -#: src/app/main/ui/workspace/sidebar/layers.cljs:307, src/app/main/ui/workspace/sidebar/layers.cljs:366 msgid "workspace.sidebar.layers.masks" msgstr "Topeng" -#: src/app/main/ui/workspace/sidebar/layers.cljs:289 msgid "workspace.sidebar.layers.search" msgstr "Cari lapisan" -#: src/app/main/ui/workspace/sidebar/layers.cljs:311, src/app/main/ui/workspace/sidebar/layers.cljs:422 msgid "workspace.sidebar.layers.shapes" msgstr "Bentuk" -#: src/app/main/ui/workspace/sidebar/layers.cljs:309, src/app/main/ui/workspace/sidebar/layers.cljs:394 msgid "workspace.sidebar.layers.texts" msgstr "Teks" -#: src/app/main/ui/viewer/inspect/attributes/svg.cljs:56, src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs:91 +#: src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs, +#: src/app/main/ui/handoff/attributes/svg.cljs msgid "workspace.sidebar.options.svg-attrs.title" msgstr "Atribut SVG Diimpor" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs:217 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs msgid "workspace.sidebar.sitemap" msgstr "Halaman" -#: src/app/main/ui/workspace/left_header.cljs:91 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.sitemap" msgstr "Peta Situs" -#: src/app/main/ui/workspace/sidebar.cljs:120 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.assets" msgstr "Aset" -#: src/app/main/ui/workspace/palette.cljs:165, src/app/main/ui/workspace/palette.cljs:166 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.color-palette" msgstr "Palet Warna (%s)" -#: src/app/main/ui/workspace/right_header.cljs:220, src/app/main/ui/workspace/right_header.cljs:221 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.comments" msgstr "Komentar (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:180, src/app/main/ui/workspace/top_toolbar.cljs:181 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.curve" msgstr "Kurva (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:160, src/app/main/ui/workspace/top_toolbar.cljs:161 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.ellipse" msgstr "Elips (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:142, src/app/main/ui/workspace/top_toolbar.cljs:143 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.frame" msgstr "Papan (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:59, src/app/main/ui/workspace/top_toolbar.cljs:60 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.image" msgstr "Gambar (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:132, src/app/main/ui/workspace/top_toolbar.cljs:133 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.move" msgstr "Pindahkan (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:189, src/app/main/ui/workspace/top_toolbar.cljs:190 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.path" msgstr "Jalur (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:151, src/app/main/ui/workspace/top_toolbar.cljs:152 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.rect" msgstr "Persegi Panjang (%s)" #: src/app/main/ui/workspace/left_toolbar.cljs -#, unused msgid "workspace.toolbar.shortcuts" msgstr "Pintasan (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:169, src/app/main/ui/workspace/top_toolbar.cljs:170 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.text" msgstr "Teks (%s)" -#: src/app/main/ui/workspace/palette.cljs:173, src/app/main/ui/workspace/palette.cljs:174 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.text-palette" msgstr "Tipografi (%s)" -#: src/app/main/ui/workspace/viewport/top_bar.cljs:38 msgid "workspace.top-bar.read-only.done" msgstr "Selesai" -#: src/app/main/ui/workspace/viewport/top_bar.cljs:35 -#, markdown -msgid "workspace.top-bar.view-only" -msgstr "**Menginspeksi kode** (Hanya Lihat)" - -#: src/app/main/ui/workspace/sidebar/history.cljs:342 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.empty" msgstr "Tidak ada riwayat perubahan sejauh ini" -#: src/app/main/ui/workspace/sidebar/history.cljs:147 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.entry.delete" msgstr "%s dihapus" -#: src/app/main/ui/workspace/sidebar/history.cljs:146 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.entry.modify" msgstr "%s diubah" -#: src/app/main/ui/workspace/sidebar/history.cljs:148 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.entry.move" msgstr "Objek dipindah" -#: src/app/main/ui/workspace/sidebar/history.cljs:111 msgid "workspace.undo.entry.multiple.circle" msgstr "lingkaran" -#: src/app/main/ui/workspace/sidebar/history.cljs:112 msgid "workspace.undo.entry.multiple.color" msgstr "aset warna" -#: src/app/main/ui/workspace/sidebar/history.cljs:113 msgid "workspace.undo.entry.multiple.component" msgstr "komponen" -#: src/app/main/ui/workspace/sidebar/history.cljs:114 msgid "workspace.undo.entry.multiple.curve" msgstr "kurva" -#: src/app/main/ui/workspace/sidebar/history.cljs:115 msgid "workspace.undo.entry.multiple.frame" msgstr "papan" -#: src/app/main/ui/workspace/sidebar/history.cljs:116 msgid "workspace.undo.entry.multiple.group" msgstr "kelompok" -#: src/app/main/ui/workspace/sidebar/history.cljs:117 msgid "workspace.undo.entry.multiple.media" msgstr "aset grafis" -#: src/app/main/ui/workspace/sidebar/history.cljs:118 msgid "workspace.undo.entry.multiple.multiple" msgstr "objek" -#: src/app/main/ui/workspace/sidebar/history.cljs:119 msgid "workspace.undo.entry.multiple.page" msgstr "halaman" -#: src/app/main/ui/workspace/sidebar/history.cljs:120 msgid "workspace.undo.entry.multiple.path" msgstr "jejak" -#: src/app/main/ui/workspace/sidebar/history.cljs:121 msgid "workspace.undo.entry.multiple.rect" msgstr "persegi panjang" -#: src/app/main/ui/workspace/sidebar/history.cljs:122 msgid "workspace.undo.entry.multiple.shape" msgstr "bentuk" -#: src/app/main/ui/workspace/sidebar/history.cljs:123 msgid "workspace.undo.entry.multiple.text" msgstr "teks" -#: src/app/main/ui/workspace/sidebar/history.cljs:124 msgid "workspace.undo.entry.multiple.typography" msgstr "aset tipografi" -#: src/app/main/ui/workspace/sidebar/history.cljs:145 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.entry.new" msgstr "%s Baru" -#: src/app/main/ui/workspace/sidebar/history.cljs:125 msgid "workspace.undo.entry.single.circle" msgstr "lingkaran" -#: src/app/main/ui/workspace/sidebar/history.cljs:126 msgid "workspace.undo.entry.single.color" msgstr "aset warna" -#: src/app/main/ui/workspace/sidebar/history.cljs:127 msgid "workspace.undo.entry.single.component" msgstr "komponen" -#: src/app/main/ui/workspace/sidebar/history.cljs:128 msgid "workspace.undo.entry.single.curve" msgstr "kurva" -#: src/app/main/ui/workspace/sidebar/history.cljs:129 msgid "workspace.undo.entry.single.frame" msgstr "papan" -#: src/app/main/ui/workspace/sidebar/history.cljs:130 msgid "workspace.undo.entry.single.group" msgstr "kelompok" -#: src/app/main/ui/workspace/sidebar/history.cljs:131 msgid "workspace.undo.entry.single.image" msgstr "gambar" -#: src/app/main/ui/workspace/sidebar/history.cljs:132 msgid "workspace.undo.entry.single.media" msgstr "aset grafis" -#: src/app/main/ui/workspace/sidebar/history.cljs:133 msgid "workspace.undo.entry.single.multiple" msgstr "objek" -#: src/app/main/ui/workspace/sidebar/history.cljs:134 msgid "workspace.undo.entry.single.page" msgstr "halaman" -#: src/app/main/ui/workspace/sidebar/history.cljs:135 msgid "workspace.undo.entry.single.path" msgstr "jalur" -#: src/app/main/ui/workspace/sidebar/history.cljs:136 msgid "workspace.undo.entry.single.rect" msgstr "persegi panjang" -#: src/app/main/ui/workspace/sidebar/history.cljs:137 msgid "workspace.undo.entry.single.shape" msgstr "bentuk" -#: src/app/main/ui/workspace/sidebar/history.cljs:138 msgid "workspace.undo.entry.single.text" msgstr "teks" -#: src/app/main/ui/workspace/sidebar/history.cljs:139 msgid "workspace.undo.entry.single.typography" msgstr "aset tipografi" -#: src/app/main/ui/workspace/sidebar/history.cljs:149 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.entry.unknown" msgstr "Operasi pada %s" -#: src/app/main/ui/workspace/sidebar/history.cljs:335 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.title" msgstr "Riwayat" -#: src/app/main/data/workspace/libraries.cljs:1094 +#: src/app/main/data/workspace/libraries.cljs msgid "workspace.updates.dismiss" msgstr "Abaikan" -#: src/app/main/data/workspace/libraries.cljs:1092 +#: src/app/main/data/workspace/libraries.cljs msgid "workspace.updates.more-info" msgstr "Info lebih lanjut" -#: src/app/main/data/workspace/libraries.cljs:1090 +#: src/app/main/data/workspace/libraries.cljs msgid "workspace.updates.there-are-updates" msgstr "Ada pembaruan dalam pustaka terbagi" -#: src/app/main/data/workspace/libraries.cljs:1097 +#: src/app/main/data/workspace/libraries.cljs msgid "workspace.updates.update" msgstr "Perbarui" -#, unused msgid "workspace.viewport.click-to-close-path" msgstr "Klik untuk menutup jalur" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.login-account-title" +msgstr "Masuk ke akun saya" + +msgid "media.image.short" +msgstr "gambar" + +msgid "media.keep-aspect-ratio" +msgstr "Jaga rasio aspek" + +msgid "modals.move-shared-confirm.title" +msgid_plural "modals.move-shared-confirm.title" +msgstr[0] "Pindahkan pustaka" + +#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs +msgid "settings.select-this-color" +msgstr "Pilih item menggunakan gaya ini" + +msgid "shortcuts.toggle-layout-grid" +msgstr "Tambahkan/hapus tata letak kisi" + +msgid "shortcuts.toggle-rulers" +msgstr "Tampilkan / Sembunyikan penggaris" + +#: src/app/main/data/users.cljs +msgid "errors.auth-provider-not-allowed" +msgstr "Penyedia autentikasi tidak diperbolehkan untuk profil ini" + +#: src/app/main/data/users.cljs +msgid "errors.email-domain-not-allowed" +msgstr "Domain tidak diperbolehkan" + +msgid "modals.move-shared-confirm.message" +msgid_plural "modals.move-shared-confirm.message" +msgstr[0] "Apakah Anda yakin ingin memindahkan pustaka ini?" + +msgid "shortcuts.toggle-guides" +msgstr "Tampilkan / Sembunyikan panduan" + +msgid "onboarding.team-modal.team-definition" +msgstr "Apa itu tim?" + +msgid "shortcuts.toggle-snap-guides" +msgstr "Pasang ke panduan" + +msgid "shortcuts.toggle-snap-ruler-guide" +msgstr "Pasang ke panduan penggaris" + +#: src/app/main/ui/workspace/sidebar/assets/common.cljs +msgid "workspace.assets.sidebar.components" +msgid_plural "workspace.assets.sidebar.components" +msgstr[0] "%s komponen" + +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.menu.enable-snap-ruler-guides" +msgstr "Pasang ke panduan penggaris" + +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.menu.hide-guides" +msgstr "Sembunyikan panduan" + +msgid "workspace.layout_grid.editor.padding.expand" +msgstr "Tampilkan opsi bantalan 4 sisi" + +#: src/app/main/ui/workspace/context_menu.cljs +msgid "workspace.shape.menu.remove-grid" +msgstr "Hapus tata letak kisi" + +msgid "shortcuts.scale" +msgstr "Skala" + +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.menu.disable-snap-ruler-guides" +msgstr "Nonaktifkan pemasangan ke panduan penggaris" + +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.menu.show-guides" +msgstr "Tampilkan panduan" + +msgid "workspace.top-bar.view-only" +msgstr "**Menginspeksi kode** (Hanya Lihat)" + +#: src/app/main/ui/workspace/libraries.cljs +msgid "workspace.libraries.unlink-library-btn" +msgstr "Putuskan pustaka" + +#: src/app/main/ui/workspace/sidebar/assets.cljs +msgid "workspace.assets.filter" +msgstr "Penyaring" + +#: src/app/main/ui/workspace/sidebar/assets.cljs +msgid "workspace.assets.sort" +msgstr "Urutkan" + +msgid "workspace.layout_grid.editor.top-bar.locate.tooltip" +msgstr "Lokasi tata letak kisi" + +#: src/app/main/ui/workspace/libraries.cljs +msgid "workspace.libraries.shared-library-btn" +msgstr "Hubungkan pustaka" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.login-tagline" +msgstr "" +"Penpot adalah peralatan desain bebas & bersumber terbuka untuk kolaborasi " +"Desain dan Kode" + +msgid "modals.move-shared-confirm.accept" +msgid_plural "modals.move-shared-confirm.accept" +msgstr[0] "Pindahkan" diff --git a/frontend/translations/ig.po b/frontend/translations/ig.po index f09b825da5..6eb4ae1cbe 100644 --- a/frontend/translations/ig.po +++ b/frontend/translations/ig.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "PO-Revision-Date: 2024-06-17 08:07+0000\n" "Last-Translator: Anonymous \n" -"Language-Team: Igbo " -"\n" +"Language-Team: Igbo " +"\n" "Language: ig\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" @@ -11,2214 +11,2008 @@ msgstr "" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Weblate 5.6-dev\n" -#: src/app/main/ui/auth/register.cljs:299 +#: src/app/main/ui/auth/register.cljs msgid "auth.check-your-email" msgstr "Nyoo ozi- n gị ma pịa na njikọ inyocha ma bido jiri ite mkpịsị rụwa ọrụ ." -#: src/app/main/ui/auth/recovery.cljs:78 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.confirm-password" msgstr "kpebie akara mpibanye" -#: src/app/main/ui/auth/register.cljs:163 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.create-demo-account" msgstr "mebeta akara ozigosi" #: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs -#, unused msgid "auth.create-demo-profile" msgstr "Chọọ nọọ ị nwa ya. ?" -#: src/app/main/ui/auth/login.cljs:43 +#: src/app/main/ui/auth/register.cljs msgid "auth.demo-warning" msgstr "" "Ihe bụ ọrụ ozigosi ,e jile ya rụọ ezigbo ọrụ , ọrụ ndị a ga-ekpochapụ site " "na oge ruo na oge" -#: src/app/main/ui/auth/login.cljs:189, src/app/main/ui/viewer/login.cljs:90 +#: src/app/main/ui/auth/login.cljs msgid "auth.forgot-password" msgstr "Chefuru akara mpibanye ?" -#: src/app/main/ui/auth/register.cljs:254 +#: src/app/main/ui/auth/register.cljs msgid "auth.fullname" msgstr "Aha n'uju" -#: src/app/main/ui/auth/register.cljs:155, src/app/main/ui/viewer/login.cljs:107 +#: src/app/main/ui/auth/register.cljs +#, fuzzy msgid "auth.login-here" msgstr "Banye ebe a" -#: src/app/main/ui/auth/login.cljs:195 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-submit" msgstr "Banye" -#: src/app/main/ui/auth/login.cljs:222 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-github-submit" msgstr "Obi Git" -#: src/app/main/ui/auth/login.cljs:228 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-gitlab-submit" msgstr "Ụlọ nchọcha Git" -#: src/app/main/ui/auth/login.cljs:216 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-google-submit" msgstr "Gọgụlụ" -#: src/app/main/ui/auth/login.cljs:201 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-ldap-submit" msgstr "LDAP" -#: src/app/main/ui/auth/login.cljs:234, src/app/main/ui/auth/login.cljs:255 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-oidc-submit" msgstr "Mepe ID" -#: src/app/main/ui/auth/register.cljs:217, src/app/main/ui/dashboard/team_form.cljs:76, src/app/main/ui/onboarding/team_choice.cljs:180, src/app/main/ui/settings/access_tokens.cljs:66, src/app/main/ui/settings/feedback.cljs:34, src/app/main/ui/settings/profile.cljs:45, src/app/main/ui/workspace/sidebar/assets/groups.cljs:108 +#: src/app/main/ui/settings/team-form.cljs, src/app/main/ui/auth/register.cljs, src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/onboarding/team_choice.cljs, src/app/main/ui/settings/access_tokens.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/settings/profile.cljs, src/app/main/ui/workspace/sidebar/assets.cljs msgid "auth.name.not-all-space" msgstr "Aha ga-enweriri ụfọdụ mkpụrụ edemede karịa oghere ." -#: src/app/main/ui/auth/register.cljs:218, src/app/main/ui/dashboard/team_form.cljs:77, src/app/main/ui/onboarding/team_choice.cljs:181, src/app/main/ui/settings/access_tokens.cljs:67, src/app/main/ui/settings/feedback.cljs:33, src/app/main/ui/settings/profile.cljs:44, src/app/main/ui/workspace/sidebar/assets/groups.cljs:109 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/onboarding/team_choice.cljs, src/app/main/ui/settings/access_tokens.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/settings/profile.cljs, src/app/main/ui/workspace/sidebar/assets.cljs msgid "auth.name.too-long" msgstr "Aha ga-enweriri ọ karịa mkpụrụ okwu narị abụọ na iri ise" -#: src/app/main/ui/auth/recovery.cljs:71 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.new-password" msgstr "Pinye akara mpịbanye ọhụrụ" -#: src/app/main/ui/auth/recovery.cljs:42 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.notifications.invalid-token-error" msgstr "Ọdịmara e nweghachitere adabaghị ." -#: src/app/main/ui/auth/recovery.cljs:46 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.notifications.password-changed-successfully" msgstr "Akara mpịbanye a gbanwere gara aga" -#: src/app/main/ui/auth/recovery_request.cljs:57 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.notifications.profile-not-verified" msgstr "E nyochaghị nchịkọta , Biko nyocha nchịkọta tupu ị gaa n'ihu." -#: src/app/main/ui/auth/recovery_request.cljs:40 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.notifications.recovery-token-sent" msgstr "E zigara akara njikọ nnweghachi akara mpibanye n'igbe mbata ozi gị ." -#: src/app/main/ui/auth/verify_token.cljs:47 +#: src/app/main/ui/auth/verify_token.cljs msgid "auth.notifications.team-invitation-accepted" msgstr "Sonyere n'otu nke ọma" -#: src/app/main/ui/auth/register.cljs:114 +#: src/app/main/ui/auth/register.cljs msgid "auth.password-length-hint" msgstr "Ọ karịa mkpụrụ ederede asatọ" -#: src/app/main/ui/auth/recovery.cljs:61, src/app/main/ui/auth/recovery.cljs:62, src/app/main/ui/auth/register.cljs:81, src/app/main/ui/settings/password.cljs:75, src/app/main/ui/settings/password.cljs:76, src/app/main/ui/settings/password.cljs:77 +#: src/app/main/ui/auth/register.cljs msgid "auth.password-not-empty" msgstr "Akara mpịbanye ga-enweriri ụfọdụ leta/akara mpị karịa oghere ." -#: src/app/main/ui/auth.cljs:41 msgid "auth.privacy-policy" msgstr "Iwu oñiño onwe" -#: src/app/main/ui/auth/recovery_request.cljs:88 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-submit" msgstr "Nweghachite akara mpịbanye" -#: src/app/main/ui/auth/recovery_request.cljs:101 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-subtitle" msgstr "Anyị ga-ezita ozi n na ndụmọdụ" -#: src/app/main/ui/auth/recovery_request.cljs:100 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-title" msgstr "Chefuru akara mpịbanye ?" -#: src/app/main/ui/auth/recovery.cljs:82 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.recovery-submit" msgstr "Gbanye akara mpịbanye." -#: src/app/main/ui/auth/login.cljs:298, src/app/main/ui/viewer/login.cljs:93 +#: src/app/main/ui/auth/login.cljs msgid "auth.register" msgstr "E nweghị ebe Ntinye ihe ma kịta?" -#: src/app/main/ui/auth/login.cljs:302, src/app/main/ui/auth/register.cljs:121, src/app/main/ui/auth/register.cljs:263, src/app/main/ui/viewer/login.cljs:97 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.register-submit" msgstr "Mepee ebe Ntinye ihe" -#: src/app/main/ui/auth/register.cljs:140 +#: src/app/main/ui/auth/register.cljs msgid "auth.register-title" msgstr "Mepee ebe ntinye ihe" #: src/app/main/ui/auth.cljs -#, unused msgid "auth.sidebar-tagline" msgstr "Nsina ghere oghe iji mee nse na atụtụ" -#: src/app/main/ui/auth.cljs:33, src/app/main/ui/dashboard/sidebar.cljs:1022, src/app/main/ui/workspace/main_menu.cljs:150 msgid "auth.terms-of-service" msgstr "Ọnọdụ ọrụ" -#, unused msgid "auth.terms-privacy-agreement" msgstr "" "Mgbe Ị na-emepe akara mbata ọhụrụ , ị ga-ekwe nye n'ọnọdụ ọrụ anyị na iwu " "oñiño onwe" -#: src/app/main/ui/auth/register.cljs:297 +#: src/app/main/ui/auth/register.cljs msgid "auth.verification-email-sent" msgstr "Anyị ezigaala ozi nnyocha na" #: src/app/main/ui/onboarding/questions.cljs -#, unused msgid "branding-illustrations-marketing-pieces" msgstr "...onyinye aha, nkọwa gasị, ngwa ire ahịa dịrị gabazịa." -#: src/app/main/ui/workspace/libraries.cljs:228 msgid "common.publish" msgstr "bipụta" -#: src/app/main/ui/viewer/share_link.cljs:304, src/app/main/ui/viewer/share_link.cljs:314 msgid "common.share-link.all-users" msgstr "Ndị niile ji ite mkpịsị arụ ọrụ" -#: src/app/main/ui/viewer/share_link.cljs:259, src/app/main/ui/viewer/share_link.cljs:289 msgid "common.share-link.current-tag" msgstr "(kee ugbu a )" -#: src/app/main/ui/viewer/share_link.cljs:207, src/app/main/ui/viewer/share_link.cljs:214 msgid "common.share-link.destroy-link" msgstr "Mebie njiko" -#: src/app/main/ui/viewer/share_link.cljs:221 msgid "common.share-link.get-link" msgstr "Weta njiko" -#: src/app/main/ui/viewer/share_link.cljs:139 msgid "common.share-link.link-copied-success" msgstr "E setere njiko nke ọma" -#: src/app/main/ui/viewer/share_link.cljs:231 msgid "common.share-link.manage-ops" msgstr "Jikwa ikike" -#: src/app/main/ui/viewer/share_link.cljs:298 msgid "common.share-link.permissions-can-comment" msgstr "nwere ike ikwu okwu" -#: src/app/main/ui/viewer/share_link.cljs:308 msgid "common.share-link.permissions-can-inspect" msgstr "Nwere Ike inyocha akara" -#: src/app/main/ui/viewer/share_link.cljs:193 msgid "common.share-link.permissions-hint" msgstr "Onye ọ bụla ga-enwe ohere mbanye" -#: src/app/main/ui/viewer/share_link.cljs:241 msgid "common.share-link.permissions-pages" msgstr "Ihu akwụkwọ ekekoritara" -#: src/app/main/ui/viewer/share_link.cljs:183 msgid "common.share-link.placeholder" msgstr "Njikọ e nwere ike ikekorita ga-apụta" -#: src/app/main/ui/viewer/share_link.cljs:303, src/app/main/ui/viewer/share_link.cljs:313 msgid "common.share-link.team-members" msgstr "Sọọsọ ndị otu" -#: src/app/main/ui/viewer/share_link.cljs:171 msgid "common.share-link.title" msgstr "Kee atụ gasị" -#: src/app/main/ui/workspace/libraries.cljs:224 msgid "common.unpublish" msgstr "Ebiputaghị" -#: src/app/main/ui/dashboard/projects.cljs:84 +#: src/app/main/ui/dashboard/projects.cljs msgid "dasboard.team-hero.text" msgstr "" "Ite mkpịsị bụ maka otu . Kpọọ ndị otu ka arụkọta ọnụ on arụmarụ na ederede " "ọnụ" -#: src/app/main/ui/dashboard/projects.cljs:82 +#: src/app/main/ui/dashboard/projects.cljs msgid "dasboard.team-hero.title" msgstr "Jikota ọnụ !" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.tutorial-hero.info" msgstr "Mụọ ntọala na ite mkpịsị maka iji nkuzi mmemmekwa eme ihe egwu" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.tutorial-hero.start" msgstr "Bido ọmụmụ" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.tutorial-hero.title" msgstr "Nkuzi mmemmekwa" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.walkthrough-hero.info" msgstr "Mee ngagharị na ite mkpịsị ma mata isi a gwara ya." #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.walkthrough-hero.start" msgstr "Bido njem" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.walkthrough-hero.title" msgstr "Aba ngagharị" -#: src/app/main/ui/settings/access_tokens.cljs:202 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.create" msgstr "Mepụta ọdịmara ọhụrụ" -#: src/app/main/ui/settings/access_tokens.cljs:76 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.create.success" msgstr "Mmepụtara ọdịmara nnweta gara nke ọma ." -#: src/app/main/ui/settings/access_tokens.cljs:300 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.empty.add-one" msgstr "Pịa mpi \"Nweta ọdịmara ọhụrụ \" inweta otu ." -#: src/app/main/ui/settings/access_tokens.cljs:53 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.errors-required-name" msgstr "A chọrọ aha" -#: src/app/main/ui/settings/access_tokens.cljs:147 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-180-days" msgstr "Mkpụrụ ụbọchị narị na iri asatọ" -#: src/app/main/ui/settings/access_tokens.cljs:144 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-30-days" msgstr "Mkpụrụ ụbọchị iri atọ" -#: src/app/main/ui/settings/access_tokens.cljs:145 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-60-days" msgstr "Mkpụrụ ụbọchị iri isii" -#: src/app/main/ui/settings/access_tokens.cljs:146 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-90-days" msgstr "Mkpụrụ ụbọchị iri itoolu" -#: src/app/main/ui/settings/access_tokens.cljs:143 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-never" msgstr "Ncha ncha" -#: src/app/main/ui/settings/access_tokens.cljs:282 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expired-on" msgstr "Mebiri na%s" -#: src/app/main/ui/settings/access_tokens.cljs:283 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expires-on" msgstr "Na-emebi na%s" -#: src/app/main/ui/settings/access_tokens.cljs:281 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.no-expiration" msgstr "Enweghị ụbọchị mmebi" -#: src/app/main/ui/settings/access_tokens.cljs:197 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.personal" msgstr "Ọdịmara nkeonwe" -#: src/app/main/ui/settings/access_tokens.cljs:198 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.personal.description" msgstr "" "Ọdịmara nnweta nke onwe na-arụ ọrụ dị ka mgbamonwe mbanye anyị /akara " "mpịbanye e nwere ike iji usoro mbinye aka kwe ka ngwa nweta ndịnime ite " "mkpịsị API" -#: src/app/main/ui/settings/access_tokens.cljs:154 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.token-will-expire" msgstr "Ọdịmara ga-emebi na%s" -#: src/app/main/ui/settings/access_tokens.cljs:155 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.token-will-not-expire" msgstr "Ọdịmara enweghị ụbọchị mmebi" -#: src/app/main/ui/dashboard/file_menu.cljs:291, src/app/main/ui/workspace/main_menu.cljs:572 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.add-shared" msgstr "Tinye dị ka ọ a nkwekọrịta" -#: src/app/main/ui/settings/profile.cljs:75 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.change-email" msgstr "Gbanwee ozi - n" -#: src/app/main/data/dashboard.cljs:762, src/app/main/data/dashboard.cljs:983 +#: src/app/main/data/dashboard.cljs, src/app/main/data/dashboard.cljs msgid "dashboard.copy-suffix" msgstr "(sere)" -#: src/app/main/ui/dashboard/sidebar.cljs:338 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.create-new-team" msgstr "Mebe otu ọhụrụ" -#: src/app/main/ui/components/context_menu_a11y.cljs:256, src/app/main/ui/dashboard/sidebar.cljs:646 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.default-team-name" msgstr "Ite mkpịsị gị" -#: src/app/main/ui/dashboard/sidebar.cljs:571 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.delete-team" msgstr "kacha otu" -#: src/app/main/ui/dashboard/file_menu.cljs:296, src/app/main/ui/workspace/main_menu.cljs:589 msgid "dashboard.download-binary-file" msgstr "Butuo ederede ite mkpịsị (.penpot)" -#: src/app/main/ui/dashboard/file_menu.cljs:300, src/app/main/ui/workspace/main_menu.cljs:597 msgid "dashboard.download-standard-file" msgstr "Butuo ederede tozuru etozu (.svg + .json)" -#: src/app/main/ui/dashboard/file_menu.cljs:276, src/app/main/ui/dashboard/project_menu.cljs:90 +#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.duplicate" msgstr "mee oyiri" -#: src/app/main/ui/dashboard/file_menu.cljs:240 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.duplicate-multi" msgstr "Mee o yiri %s ederede" -#: src/app/main/ui/dashboard/placeholder.cljs:32 -#, markdown +#: src/app/main/ui/dashboard/grid.cljs +#, fuzzy, markdown msgid "dashboard.empty-placeholder-drafts" msgstr "" "Ederede a tinyere n'ọba ederede ga-apụta ebe a. Gbalịa ikesa ma ọ bụ tinye " -"site n'[Ọba ederede na ndebiri anyị ](https://itemkpịsị.app/ọba ederede " -"gasị-ndebiri gasị.html)." +"site n'[Ọba ederede na ndebiri anyị ](https://itemkpịsị.app/ọba ederede gasị-" +"ndebiri gasị.html)." -#: src/app/main/ui/dashboard/file_menu.cljs:249 msgid "dashboard.export-binary-multi" msgstr "Butuo %s ederede ite mkpịsị (.penpot)" -#: src/app/main/ui/workspace/main_menu.cljs:605 msgid "dashboard.export-frames" msgstr "Bupu bọọdụ dị ka PDF" -#: src/app/main/ui/export.cljs:201 +#: src/app/main/ui/export.cljs msgid "dashboard.export-frames.title" msgstr "Bupu dị ka PDF" -#, unused msgid "dashboard.export-multi" msgstr "Bupu %s ederede Ite mkpịsị" -#: src/app/main/ui/export.cljs:109 +#: src/app/main/ui/export.cljs msgid "dashboard.export-multiple.selected" msgstr "A họrọ %s nke %s ndị na" -#: src/app/main/ui/export.cljs:180 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.how-to" msgstr "" "Ị nwere ike ị tinye ntọala mbupu na ndịna site na ngwongwo nse (n'ala akụkụ " "aka nri ihe ndepụta)" -#: src/app/main/ui/export.cljs:184 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.how-to-link" msgstr "Ozi etu esi ahazi mbupu n'ite mkpịsị" -#: src/app/main/ui/export.cljs:179 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.no-elements" msgstr "E nweghị ndịna ọ bụla na ntọala mbupu" -#: src/app/main/ui/export.cljs:190 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.title" msgstr "Nhọrọ mbupu" -#: src/app/main/ui/dashboard/file_menu.cljs:252 msgid "dashboard.export-standard-multi" msgstr "Buto %s ederede tozuru etozu (.svg + .json)" -#: src/app/main/ui/export.cljs:427 msgid "dashboard.export.detail" msgstr "* Nwere Ike ịgụnye ngwa , esereese gasị, agwụgwara na/ma ọ bụ akara nkụpụta." -#: src/app/main/ui/export.cljs:435 msgid "dashboard.export.options.all.message" msgstr "" "A ga-atinye ederede nwere ọba ederede nkekọrịta ma gụnyere mbupu , ma " "jidekwa ụkpụrụ njikọ ha" -#: src/app/main/ui/export.cljs:436 msgid "dashboard.export.options.all.title" msgstr "Bupu ọba ederede nkekọrịta" -#: src/app/main/ui/export.cljs:437 msgid "dashboard.export.options.detach.message" msgstr "" "Agaghị a tinye ọba ederede nkekọrịta na mbupu ma o nweghị ihe nnwe a ga a " "tinye ọ a ederede . " -#: src/app/main/ui/export.cljs:440 msgid "dashboard.export.options.merge.title" msgstr "Tinye ihe nnwe ọba ederede nkekọrịta n'ime ọ a ederede." -#: src/app/main/ui/export.cljs:418 msgid "dashboard.export.title" msgstr "Ederede mbupu gasị" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:309 msgid "dashboard.fonts.deleted-placeholder" msgstr "Mkpụrụ edemede na-efu efu" -#: src/app/main/ui/dashboard/fonts.cljs:206 +#: src/app/main/ui/dashboard/fonts.cljs msgid "dashboard.fonts.dismiss-all" msgstr "Gbasaa ha niile" -#: src/app/main/ui/dashboard/fonts.cljs:436 msgid "dashboard.fonts.empty-placeholder" msgstr "Mkpụrụ edemede ndị ị bugoro ga-apụta ebe." -#: src/app/main/ui/dashboard/fonts.cljs:202 +#: src/app/main/ui/dashboard/fonts.cljs msgid "dashboard.fonts.upload-all" msgstr "Bugo ha niile" -#: src/app/main/ui/dashboard/fonts.cljs:187 #, markdown msgid "dashboard.fonts.warning-text" msgstr "" "Anyị chọpụtara nsogbu nwere ike ịpụta na mkpụrụ edide gị gbasara ntụ kwụ " "ọtọ " -#: src/app/main/ui/dashboard/import.cljs:304, src/app/worker/import.cljs:753, src/app/worker/import.cljs:755 msgid "dashboard.import.analyze-error" msgstr "Ewuu! Anyị enweghị ike bubata ederede a" -#: src/app/main/ui/dashboard/import.cljs:308 msgid "dashboard.import.import-error" msgstr "E nwere nsogbu na ibubata ederede . E bubataghị ederede ." -#: src/app/main/ui/dashboard/import.cljs:481, src/app/main/ui/dashboard/import.cljs:488 msgid "dashboard.import.import-warning" msgstr "Ụfọdụ ederede nwere ihe ndị adabaghị na ya nke ewepugoro. ." -#: src/app/main/ui/dashboard/import.cljs:144 msgid "dashboard.import.progress.process-colors" msgstr "Nhazi agwụgwara gasị" -#: src/app/main/ui/dashboard/import.cljs:153 msgid "dashboard.import.progress.process-components" msgstr "Nhazi ngwa gasị" -#: src/app/main/ui/dashboard/import.cljs:150 msgid "dashboard.import.progress.process-media" msgstr "Nhazi mgbasa ozi" -#: src/app/main/ui/dashboard/import.cljs:141 msgid "dashboard.import.progress.process-page" msgstr "Nhazi ihu akwụkwọ : %s" -#: src/app/main/ui/dashboard/import.cljs:147 msgid "dashboard.import.progress.process-typographies" msgstr "Nhazi akara nkụpụta" -#: src/app/main/ui/dashboard/import.cljs:135 msgid "dashboard.import.progress.upload-data" msgstr "Ibugo njatụle n'ebe nkesa (%s/%s)" -#: src/app/main/ui/dashboard/import.cljs:138 msgid "dashboard.import.progress.upload-media" msgstr "Ibugo ederede : %s" -#: src/app/main/ui/dashboard/team.cljs:109 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.invite-profile" msgstr "Kpọta mmadụ" -#: src/app/main/ui/dashboard/sidebar.cljs:547, src/app/main/ui/dashboard/sidebar.cljs:556, src/app/main/ui/dashboard/sidebar.cljs:563, src/app/main/ui/dashboard/team.cljs:312 +#: src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.leave-team" msgstr "Hapụ otu" -#: src/app/main/ui/dashboard/templates.cljs:88, src/app/main/ui/dashboard/templates.cljs:163 msgid "dashboard.libraries-and-templates" msgstr "Ọba ederede gasị & ndebiri" -#: src/app/main/ui/dashboard/templates.cljs:164 msgid "dashboard.libraries-and-templates.explore" msgstr "Nyocha ọtụtụ n'ime ha ma mara etu ị ga-esi tinye ọnụ" -#: src/app/main/ui/dashboard/import.cljs:365 msgid "dashboard.libraries-and-templates.import-error" msgstr "E nwere nsogbu ibu aba ndebiri . E bubataghị ndebiri." -#: src/app/main/ui/dashboard/libraries.cljs:53 +#: src/app/main/ui/dashboard/libraries.cljs msgid "dashboard.libraries-title" msgstr "Ọba ederede gasị" -#: src/app/main/ui/dashboard/placeholder.cljs:45 +#: src/app/main/ui/dashboard/grid.cljs msgid "dashboard.loading-files" msgstr "Mbụbata ederede gị …" -#: src/app/main/ui/dashboard/fonts.cljs:431 msgid "dashboard.loading-fonts" msgstr "mbubata mkpụrụ edemede gị …" -#: src/app/main/ui/dashboard/file_menu.cljs:281, src/app/main/ui/dashboard/project_menu.cljs:100 +#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.move-to" msgstr "Ga na" -#: src/app/main/ui/dashboard/file_menu.cljs:245 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.move-to-multi" msgstr "Buga %s ederede gasị na" -#: src/app/main/ui/dashboard/file_menu.cljs:226 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.move-to-other-team" msgstr "Gaa n'otu ọzọ" -#: src/app/main/ui/dashboard/files.cljs:105, src/app/main/ui/dashboard/projects.cljs:252, src/app/main/ui/dashboard/projects.cljs:253 +#: src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/files.cljs msgid "dashboard.new-file" msgstr "+ Ederede ọhụrụ" -#: src/app/main/data/dashboard.cljs:958, src/app/main/data/dashboard.cljs:1181 +#: src/app/main/data/dashboard.cljs msgid "dashboard.new-file-prefix" msgstr "Ederede ọhụrụ" -#: src/app/main/ui/dashboard/projects.cljs:55 +#: src/app/main/ui/dashboard/projects.cljs msgid "dashboard.new-project" msgstr "+ Nchọcha ọhụrụ" -#: src/app/main/data/dashboard.cljs:726, src/app/main/data/dashboard.cljs:1184 +#: src/app/main/data/dashboard.cljs msgid "dashboard.new-project-prefix" msgstr "Arụmarụ ọhụrụ" -#: src/app/main/ui/dashboard/search.cljs:60 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.no-matches-for" msgstr "Ọ nweghị ihe ndabara e nwetara maka “%s“" -#: src/app/main/ui/dashboard/sidebar.cljs:827 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.no-projects-placeholder" msgstr "Arụmarụ a kụdoro ga-apụta ebe a" -#: src/app/main/ui/auth/verify_token.cljs:33 +#: src/app/main/ui/auth/verify_token.cljs msgid "dashboard.notifications.email-changed-successfully" msgstr "Adreesị ozi - n gị ahazigharịala gara nke ọma" -#: src/app/main/ui/auth/verify_token.cljs:27 +#: src/app/main/ui/auth/verify_token.cljs msgid "dashboard.notifications.email-verified-successfully" msgstr "E nyochala adreesị ozi - n gị nke ọma" -#: src/app/main/ui/settings/password.cljs:37 +#: src/app/main/ui/settings/password.cljs msgid "dashboard.notifications.password-saved" msgstr "E dọkwara akara mpịbanye nke ọma !" -#: src/app/main/ui/dashboard/team.cljs:1081 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.num-of-members" msgstr "%s Ndị otu" -#: src/app/main/ui/dashboard/file_menu.cljs:267 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.open-in-new-tab" msgstr "Mepe ederede na tabụ ọhụrụ" -#: src/app/main/ui/dashboard/files.cljs:117, src/app/main/ui/dashboard/projects.cljs:260, src/app/main/ui/dashboard/projects.cljs:261 msgid "dashboard.options" msgstr "Nhọrọ gasị" -#: src/app/main/ui/settings/password.cljs:106, src/app/main/ui/settings/password.cljs:119 +#: src/app/main/ui/settings/password.cljs msgid "dashboard.password-change" msgstr "Gbanwee akara mpịbanye" -#: src/app/main/ui/dashboard/pin_button.cljs:24, src/app/main/ui/dashboard/project_menu.cljs:95 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.pin-unpin" msgstr "Nọmba /Wepụ nọmba" -#: src/app/main/ui/dashboard/projects.cljs:51 +#: src/app/main/ui/dashboard/projects.cljs msgid "dashboard.projects-title" msgstr "Arụmarụ" -#: src/app/main/ui/settings/profile.cljs:86 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.remove-account" msgstr "Chọọ iwepu ebe Ntinye ihe gị ?" #: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused msgid "dashboard.remove-shared" msgstr "Wepụ dị ka ọba ederede nkekọrịta" -#: src/app/main/ui/settings/profile.cljs:78 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.save-settings" msgstr "Dokwa ntọala" -#: src/app/main/ui/dashboard/sidebar.cljs:246, src/app/main/ui/dashboard/sidebar.cljs:247 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.search-placeholder" msgstr "Chọọ…" -#: src/app/main/ui/dashboard/search.cljs:55 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.searching-for" msgstr "Na-achọ “%s“…" -#: src/app/main/ui/settings/options.cljs:56 +#: src/app/main/ui/settings/options.cljs msgid "dashboard.select-ui-language" msgstr "Họrọ asụsụ UI" -#: src/app/main/ui/dashboard/project_menu.cljs:33 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.success-duplicate-project" msgstr "E megharịala arụmarụ gị nke ọma\"" -#: src/app/main/ui/dashboard/file_menu.cljs:130, src/app/main/ui/dashboard/grid.cljs:558, src/app/main/ui/dashboard/sidebar.cljs:152 +#: src/app/main/ui/dashboard/grid.cljs, src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-move-file" msgstr "E wepula ederede gị nke ọma\"" -#: src/app/main/ui/dashboard/project_menu.cljs:54 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.success-move-project" msgstr "E bupula arụmarụ gị nke ọma" -#: src/app/main/ui/dashboard/team.cljs:1052 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.team-info" msgstr "Ozi otu" -#: src/app/main/ui/dashboard/team.cljs:1070 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.team-members" msgstr "Ndị otu" -#: src/app/main/ui/dashboard/team.cljs:1085 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.team-projects" msgstr "Arụmarụ otu" -#: src/app/main/ui/settings/options.cljs:61 +#: src/app/main/ui/settings/options.cljs msgid "dashboard.theme-change" msgstr "Isiokwu UI" -#: src/app/main/ui/dashboard/search.cljs:42 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.title-search" msgstr "Chọọ risọltụ gasị" -#: src/app/main/ui/dashboard/search.cljs:50 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.type-something" msgstr "Pinye ịchọ risọltụ" -#: src/app/main/ui/dashboard/file_menu.cljs:287, src/app/main/ui/workspace/main_menu.cljs:566 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.unpublish-shared" msgstr "Ọba ederede ebiputaghị" -#: src/app/main/ui/settings/options.cljs:71 +#: src/app/main/ui/settings/password.cljs, src/app/main/ui/settings/options.cljs msgid "dashboard.update-settings" msgstr "Hazie ntọala" -#: src/app/main/ui/dashboard/team.cljs:861 msgid "dashboard.webhooks.active" msgstr "Dị gara gara" -#: src/app/main/ui/dashboard/team.cljs:862 msgid "dashboard.webhooks.active.explain" msgstr "Mgbe a kpọlitere nkọ a, ọ ga-Ezipụta nkọwa emume n'uju" -#: src/app/main/ui/dashboard/team.cljs:852 msgid "dashboard.webhooks.content-type" msgstr "Ụdị ndịna" -#: src/app/main/ui/dashboard/team.cljs:885 msgid "dashboard.webhooks.create" msgstr "Mepe nko - ududọ" -#: src/app/main/ui/dashboard/team.cljs:775 msgid "dashboard.webhooks.create.success" msgstr "E mepere nko-ududọ nke ọma ." -#: src/app/main/ui/dashboard/team.cljs:882 msgid "dashboard.webhooks.description" msgstr "" "Nko-ududọ bụ ụzọ dị mfe ga-ekwe ka ebe ududọ na apps ndị ọzọ nweta ozi Mgbe " "ụfọdụ emume na eme n'ite mkpịsị . Anyị ga e ziga OZI arịrịọ nwe URLs ọ bụla " "ị nwetara" -#: src/app/main/ui/dashboard/team.cljs:1005 msgid "dashboard.webhooks.empty.add-one" msgstr "Pịa mpị \"Tinye nko-ududọ \" ịtinye otu ." -#: src/app/main/ui/dashboard/team.cljs:1004 msgid "dashboard.webhooks.empty.no-webhooks" msgstr "E nweghị Nko-ududọ e ebere ruo ugbu a ." -#, unused msgid "dashboard.webhooks.update.success" msgstr "Ahazigharịrị nko-ududọ nke ọma ." -#: src/app/main/ui/settings.cljs:31 +#: src/app/main/ui/settings.cljs msgid "dashboard.your-account-title" msgstr "Ebe Ntinye ihe gị" -#: src/app/main/ui/settings/profile.cljs:70 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.your-email" msgstr "Ozi-n" -#: src/app/main/ui/dashboard/file_menu.cljs:38, src/app/main/ui/dashboard/fonts.cljs:33, src/app/main/ui/dashboard/libraries.cljs:42, src/app/main/ui/dashboard/projects.cljs:318, src/app/main/ui/dashboard/search.cljs:30, src/app/main/ui/dashboard/sidebar.cljs:312, src/app/main/ui/dashboard/team.cljs:495, src/app/main/ui/dashboard/team.cljs:729, src/app/main/ui/dashboard/team.cljs:991, src/app/main/ui/dashboard/team.cljs:1038 +#: src/app/main/ui/dashboard/search.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/libraries.cljs, src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.your-penpot" msgstr "Ite mkpịsị. gị" -#: src/app/main/ui/alert.cljs:32 +#: src/app/main/ui/alert.cljs msgid "ds.alert-ok" msgstr "Okay" -#: src/app/main/ui/alert.cljs:31, src/app/main/ui/alert.cljs:34 +#: src/app/main/ui/alert.cljs msgid "ds.alert-title" msgstr "Gee ntị" -#: src/app/main/ui/confirm.cljs:36, src/app/main/ui/workspace/plugins.cljs:246 +#: src/app/main/ui/confirm.cljs msgid "ds.confirm-cancel" msgstr "Kagbuo" -#: src/app/main/ui/confirm.cljs:37, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:141 +#: src/app/main/ui/confirm.cljs msgid "ds.confirm-ok" msgstr "Okay" -#: src/app/main/ui/confirm.cljs:35, src/app/main/ui/confirm.cljs:39 +#: src/app/main/ui/confirm.cljs, src/app/main/ui/confirm.cljs msgid "ds.confirm-title" msgstr "Ọ doro gị anya ?" -#: src/app/main/errors.cljs:104 msgid "errors.auth.unable-to-login" msgstr "Ọ dị ka enyochaghị gị ma ọ bụ na oge agwụla ." -#: src/app/main/data/fonts.cljs:189 msgid "errors.bad-font" msgstr "E nweghị ike bugo %s mkpụrụ edide" -#: src/app/main/data/fonts.cljs:188 msgid "errors.bad-font-plural" msgstr "E nweghị ike bugo %s mkpụrụ edide" -#: src/app/main/data/workspace/media.cljs:198 msgid "errors.cannot-upload" msgstr "E nweghị ike ị ugo ederede ." -#: src/app/main/data/workspace.cljs:1598 +#: src/app/main/data/workspace.cljs msgid "errors.clipboard-not-implemented" msgstr "Your browser cannot do this operation" -#: src/app/main/ui/auth/verify_token.cljs:82, src/app/main/ui/settings/change_email.cljs:46 +#: src/app/main/ui/auth/verify_token.cljs, src/app/main/ui/settings/change_email.cljs msgid "errors.email-already-exists" msgstr "E jibuola ozi - n rụọ ọrụ" -#: src/app/main/ui/auth/verify_token.cljs:87 +#: src/app/main/ui/auth/verify_token.cljs msgid "errors.email-already-validated" msgstr "Aha ozi-n adabala." -#: src/app/main/ui/settings/password.cljs:28 msgid "errors.email-as-password" msgstr "Ị nweghị ike iji aha ozi-n gị dị ka akara mpịbanye" -#: src/app/main/ui/auth/recovery_request.cljs:63, src/app/main/ui/dashboard/team.cljs:578, src/app/main/ui/settings/change_email.cljs:54 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/settings/change_email.cljs, src/app/main/ui/dashboard/team.cljs msgid "errors.email-has-permanent-bounces" msgstr "Ozi-n «%s» nwere ọtụtụ ozi nkọwa mbịaghachigide." -#: src/app/main/ui/auth/login.cljs:81, src/app/main/ui/auth/recovery_request.cljs:31, src/app/main/ui/auth/register.cljs:43 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs, src/app/main/ui/auth/recovery_request.cljs msgid "errors.email-invalid" msgstr "Debanye aha ozi-n dabara adaba" -#: src/app/main/ui/settings/change_email.cljs:35 +#: src/app/main/ui/settings/change_email.cljs msgid "errors.email-invalid-confirmation" msgstr "Ozi-n nnabata ga-adabrịrị" -#: src/app/main/ui/dashboard/team.cljs:170 msgid "errors.email-spam-or-permanent-bounces" msgstr "E nwela ozi nkọwa na ozi-n«%s» dị ka ozi abaghị uru ma ọ bụ mbịaghachigide." -#: src/app/main/errors.cljs:227 +#: src/app/main/errors.cljs msgid "errors.feature-mismatch" msgstr "" "Ọ dị ka ị na-emepe ederede nwere a gwara naọ gara aga '%s' mana ihu " "itemkpịsị gị akwadoghị ya ma ọ bụ gosiri ọ gaghị aga." -#: src/app/main/errors.cljs:231, src/app/main/errors.cljs:245 +#: src/app/main/errors.cljs msgid "errors.feature-not-supported" msgstr "Akwadoghị agwara '%s' ." -#: src/app/main/data/users.cljs:709, src/app/main/ui/auth/login.cljs:65, src/app/main/ui/auth/login.cljs:116, src/app/main/ui/auth/register.cljs:69, src/app/main/ui/auth/register.cljs:237, src/app/main/ui/auth/verify_token.cljs:92, src/app/main/ui/dashboard/team.cljs:173, src/app/main/ui/onboarding/team_choice.cljs:95, src/app/main/ui/settings/access_tokens.cljs:91, src/app/main/ui/settings/feedback.cljs:52 +#: src/app/main/ui/auth/verify_token.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/dashboard/team.cljs msgid "errors.generic" msgstr "Ihe ezighị ezi emela ." -#: src/app/main/ui/components/color_input.cljs:57 +#: src/app/main/ui/components/color_input.cljs msgid "errors.invalid-color" msgstr "Agwụgwara adabaghị" -#: src/app/main/ui/static.cljs:43 +#: src/app/main/ui/auth/verify_token.cljs msgid "errors.invite-invalid" msgstr "kpọọ òkù adabaghị" -#: src/app/main/ui/static.cljs:44 msgid "errors.invite-invalid.info" msgstr "This invite might be canceled or may be expired." -#: src/app/main/ui/auth/login.cljs:101 +#: src/app/main/ui/auth/login.cljs msgid "errors.ldap-disabled" msgstr "LDAP mbinye aka agaghị ." -#: src/app/main/errors.cljs:239 +#: src/app/main/errors.cljs msgid "errors.max-quote-reached" msgstr "I ruola '%s' ole a chọrọ . Chọọ enyemaka nkwado ." -#: src/app/main/data/workspace/media.cljs:184 +#: src/app/main/data/workspace/persistence.cljs msgid "errors.media-too-large" msgstr "Onyinyo a ebuka ibu maka itinye ." -#: src/app/main/data/media.cljs:68, src/app/main/data/workspace/media.cljs:187 +#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs msgid "errors.media-type-mismatch" msgstr "Dị ka ihe dị na onyinyo adabaghị na mgbatị ederede." -#: src/app/main/ui/dashboard/team.cljs:574 +#: src/app/main/ui/dashboard/team.cljs msgid "errors.member-is-muted" msgstr "" "Nchịkọta gị nwere ozi-n mechiri emechi (akụkọ ozi-n adịghị mma ma ọ bụ " "nwere oké bịaghachiri )." -#: src/app/main/data/users.cljs:703, src/app/main/ui/auth/login.cljs:97, src/app/main/ui/auth/login.cljs:105 msgid "errors.profile-blocked" msgstr "A gbachiri nchịkọta agbachi" -#: src/app/main/ui/auth/recovery_request.cljs:60, src/app/main/ui/dashboard/team.cljs:164, src/app/main/ui/dashboard/team.cljs:570, src/app/main/ui/settings/change_email.cljs:50 +#: src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/settings/change_email.cljs, src/app/main/ui/dashboard/team.cljs msgid "errors.profile-is-muted" msgstr "" "Nchịkọta gị lnwere ozi-n mechiri emechi(akụkọ ozi-n adịghị mma ma ọ bụ " "nwere oké bịaghachiri ).\")." -#: src/app/main/data/users.cljs:701, src/app/main/ui/auth/register.cljs:60 +#: src/app/main/ui/auth/register.cljs msgid "errors.registration-disabled" msgstr "Ndebanye merụrụ emerụ ugbu a." -#: src/app/main/ui/dashboard/sidebar.cljs:365, src/app/main/ui/dashboard/team.cljs:359 msgid "errors.team-leave.insufficient-members" msgstr "Ndị otu ezughị okè ịhapụ otu, ọ nyere ike na ị chọrọ ihichapụ ya ." -#: src/app/main/ui/dashboard/sidebar.cljs:368, src/app/main/ui/dashboard/team.cljs:362 msgid "errors.team-leave.member-does-not-exists" msgstr "Onye otu ị na-achọ inye adịghị ." -#: src/app/main/ui/dashboard/sidebar.cljs:371, src/app/main/ui/dashboard/team.cljs:365 msgid "errors.team-leave.owner-cant-leave" msgstr "O wee enweghị ike ịhapụ otu, ị ga-enyegharịrị ọrụ onwee." -#: src/app/main/data/media.cljs:71 +#: src/app/main/data/media.cljs, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs msgid "errors.unexpected-error" msgstr "Ndejo atughị anya ya pụtara ." -#: src/app/main/ui/auth/verify_token.cljs:60 +#: src/app/main/ui/auth/verify_token.cljs msgid "errors.unexpected-token" msgstr "Ọdịmara amaghị ama" -#: src/app/main/ui/dashboard/team.cljs:796 msgid "errors.webhooks.connection" msgstr "Mmejọ, e nwetaghị URL" -#: src/app/main/ui/dashboard/team.cljs:790 msgid "errors.webhooks.invalid-uri" msgstr "URL enweghị nkwado ." -#: src/app/main/ui/dashboard/team.cljs:792, src/app/main/ui/dashboard/team.cljs:952 msgid "errors.webhooks.ssl-validation" msgstr "Mmejọ na nkwado SSL ." -#: src/app/main/ui/dashboard/team.cljs:794 msgid "errors.webhooks.timeout" msgstr "Oge ezuola" -#: src/app/main/ui/auth/login.cljs:109, src/app/main/ui/auth/login.cljs:113 +#: src/app/main/ui/auth/login.cljs msgid "errors.wrong-credentials" msgstr "Ozi-na ma ọ bụ akara mpịbanye adịghị mma ." -#: src/app/main/ui/settings/password.cljs:25 +#: src/app/main/ui/settings/password.cljs msgid "errors.wrong-old-password" msgstr "Akara mpịbanye ochie adịghị mma" -#: src/app/main/ui/settings/feedback.cljs:77 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.description" msgstr "Nkọwa" -#: src/app/main/ui/settings/feedback.cljs:95 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.discourse-go-to" msgstr "Gaa n'ebe ite mkpịsị" -#: src/app/main/ui/settings/feedback.cljs:89 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.discourse-subtitle1" msgstr "" "Obi dị anyị añụrị ịhụ gị ebea. Ọ bụrụ na enyemaka dị mkpa , biko chọọ tupu " "ị ịga ozi ." -#: src/app/main/ui/settings/feedback.cljs:88 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.discourse-title" msgstr "Ogbe Ite mkpịsị" -#: src/app/main/ui/settings/feedback.cljs:72 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.subject" msgstr "Isiokwu" -#: src/app/main/ui/settings/feedback.cljs:69 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.subtitle" msgstr "" "Biko, kọwaa ihe isi ozi-n gị , kwuo ma ọ bụ nsogbu , ncheputara ma ọ bụ " "ekaenyeghị. Onye otu anyị ga-azaghachi ozugbo ọ nwere ike ." -#: src/app/main/ui/settings/feedback.cljs:68 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.title" msgstr "Ozi- n" -#: src/app/main/ui/settings/feedback.cljs:105 +#: src/app/main/ui/settings/feedback.cljs +#, fuzzy msgid "feedback.twitter-go-to" msgstr "Gaa na Twita" -#: src/app/main/ui/settings/feedback.cljs:99 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.twitter-subtitle1" msgstr "Ebe inyere gị aka n'ajụjụ nkà gị ." -#: src/app/main/ui/settings/password.cljs:30 +#: src/app/main/ui/settings/password.cljs msgid "generic.error" msgstr "Mmehie apụtala" -#: src/app/main/ui/viewer/inspect/attributes/blur.cljs:26 +#: src/app/main/ui/inspect/attributes/blur.cljs msgid "inspect.attributes.blur" msgstr "Inyogo" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:115 +#: src/app/main/ui/inspect/attributes/blur.cljs msgid "inspect.attributes.blur.value" msgstr "Uru" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:112 +#: src/app/main/ui/inspect/attributes/common.cljs msgid "inspect.attributes.color.hex" msgstr "HEX" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:114 +#: src/app/main/ui/inspect/attributes/common.cljs msgid "inspect.attributes.color.hsla" msgstr "HSLA" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:113 +#: src/app/main/ui/inspect/attributes/common.cljs msgid "inspect.attributes.color.rgba" msgstr "RGBA" -#: src/app/main/ui/viewer/inspect/attributes/fill.cljs:57 +#: src/app/main/ui/inspect/attributes/fill.cljs msgid "inspect.attributes.fill" msgstr "Wunye" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:99, src/app/main/ui/viewer/inspect/attributes/image.cljs:51 +#: src/app/main/ui/inspect/attributes/image.cljs msgid "inspect.attributes.image.download" msgstr "Butuo onyinyo nsina" -#: src/app/main/ui/viewer/inspect/attributes/image.cljs:39 +#: src/app/main/ui/inspect/attributes/image.cljs msgid "inspect.attributes.image.height" msgstr "Ogo" -#: src/app/main/ui/viewer/inspect/attributes/image.cljs:32 +#: src/app/main/ui/inspect/attributes/image.cljs msgid "inspect.attributes.image.width" msgstr "Uhie" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout" msgstr "Mpụta" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.height" msgstr "Ogo" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.left" msgstr "Aka ekpe" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.rotation" msgstr "Ntụgharị" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.top" msgstr "Elu" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.width" msgstr "Uhie" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:57 +#: src/app/main/ui/inspect/attributes/shadow.cljs msgid "inspect.attributes.shadow" msgstr "Oninyo" -#: src/app/main/ui/viewer/inspect/attributes/geometry.cljs:40 +#: src/app/main/ui/inspect/attributes/layout.cljs msgid "inspect.attributes.size" msgstr "Nhazi na ọnọdụ" -#: src/app/main/ui/viewer/inspect/attributes/stroke.cljs:52 +#: src/app/main/ui/inspect/attributes/stroke.cljs msgid "inspect.attributes.stroke" msgstr "Akara" -#, permanent, unused +#, permanent msgid "inspect.attributes.stroke.alignment.center" msgstr "Etiti" -#, permanent, unused +#, permanent msgid "inspect.attributes.stroke.alignment.inner" msgstr "Ime" -#, permanent, unused +#, permanent msgid "inspect.attributes.stroke.alignment.outer" msgstr "Ezi" -#, unused msgid "inspect.attributes.stroke.style.dotted" msgstr "Atụrụ kpọm kpọm" -#, unused msgid "inspect.attributes.stroke.style.mixed" msgstr "Gwakọtara" -#, unused msgid "inspect.attributes.stroke.style.none" msgstr "Ncha ncha" -#, unused msgid "inspect.attributes.stroke.style.solid" msgstr "Akpụrụka" #: src/app/main/ui/inspect/attributes/stroke.cljs -#, unused msgid "inspect.attributes.stroke.width" msgstr "Uhie" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:81, src/app/main/ui/viewer/inspect/attributes/text.cljs:194 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography" msgstr "Akara nkụpụta" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:89 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.font-family" msgstr "Ezinụlọ mkpụrụ edide" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:107 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.font-size" msgstr "Nhazi mkpụrụ edide" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:134 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.letter-spacing" msgstr "Ndesa mkpụrụ edemede" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:125 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.line-height" msgstr "Ogo akara" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:143 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.text-decoration" msgstr "Nkwazi ederede" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:145 msgid "inspect.attributes.typography.text-decoration.none" msgstr "Ncha ncha" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:146 msgid "inspect.attributes.typography.text-decoration.strikethrough" msgstr "Kụọgafee" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:147 msgid "inspect.attributes.typography.text-decoration.underline" msgstr "N'okpuru" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:156 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.text-transform" msgstr "Mgbanwe ederede" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:159 msgid "inspect.attributes.typography.text-transform.none" msgstr "None" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:160 msgid "inspect.attributes.typography.text-transform.titlecase" msgstr "Mkpụrụ edemede isiokwu" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:161 msgid "inspect.attributes.typography.text-transform.uppercase" msgstr "Mkpụrụ edemede nnukwu" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:140 msgid "inspect.empty.help" msgstr "" "Ị chọọ ị ma ihe ndị ọzọ maka nnyocha esereese, gaa n'ebe enyemaka ite " "mkpịsị r" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:125 +#: src/app/main/ui/inspect/right_sidebar.cljs msgid "inspect.tabs.code" msgstr "Akara" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:98 msgid "inspect.tabs.code.selected.circle" msgstr "Okirikiri" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:99 msgid "inspect.tabs.code.selected.component" msgstr "Ndịna" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:100 msgid "inspect.tabs.code.selected.curve" msgstr "Nrọgọ" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:101 msgid "inspect.tabs.code.selected.frame" msgstr "Ogwe." -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:102 msgid "inspect.tabs.code.selected.group" msgstr "Otu" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:103 msgid "inspect.tabs.code.selected.image" msgstr "Onyinyo" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:104 msgid "inspect.tabs.code.selected.mask" msgstr "kpuchie" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:93 +#: src/app/main/ui/inspect/right_sidebar.cljs msgid "inspect.tabs.code.selected.multiple" msgstr "%s a họrọ" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:105 msgid "inspect.tabs.code.selected.path" msgstr "Ụzọ" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:106 msgid "inspect.tabs.code.selected.rect" msgstr "Rekụtagụlụ" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:107 msgid "inspect.tabs.code.selected.svg-raw" msgstr "SVG" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:108 msgid "inspect.tabs.code.selected.text" msgstr "Ederede" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:115 +#: src/app/main/ui/inspect/right_sidebar.cljs msgid "inspect.tabs.info" msgstr "Ozi" -#: src/app/main/ui/workspace/main_menu.cljs:158 +#: src/app/main/ui/workspace/header.cljs msgid "label.shortcuts" msgstr "Ụzọ mkpirisi" -#: src/app/main/ui/dashboard/import.cljs:527 msgid "labels.accept" msgstr "Nabata" -#: src/app/main/ui/settings/sidebar.cljs:100 +#: src/app/main/ui/settings/sidebar.cljs msgid "labels.access-tokens" msgstr "Nweta ọdịmara gasị" -#: src/app/main/ui/dashboard/team.cljs:968 msgid "labels.active" msgstr "Gara gara" -#: src/app/main/ui/dashboard/fonts.cljs:175 msgid "labels.add-custom-font" msgstr "Tinye mkpụrụ edide a haziri ahazi" -#: src/app/main/ui/dashboard/team.cljs:120, src/app/main/ui/dashboard/team.cljs:276, src/app/main/ui/dashboard/team.cljs:519, src/app/main/ui/dashboard/team.cljs:549, src/app/main/ui/onboarding/team_choice.cljs:67 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs msgid "labels.admin" msgstr "Ọchịkwa" -#: src/app/main/ui/onboarding/questions.cljs:174 -msgid "labels.adobe-xd" -msgstr "Ngwa nrụkọrịta ọrụ Adobe" - #: src/app/main/ui/workspace/comments.cljs -#, unused msgid "labels.all" msgstr "Ha niile" -#: src/app/main/ui/auth.cljs:37 msgid "labels.and" msgstr "na" -#: src/app/main/ui/onboarding/team_choice.cljs:162 msgid "labels.back" msgstr "Azụ" -#: src/app/main/ui/static.cljs:58 +#: src/app/main/ui/static.cljs msgid "labels.bad-gateway.main-message" msgstr "Ajọ ụzọ mbanye" -#: src/app/main/data/common.cljs:112, src/app/main/ui/dashboard/change_owner.cljs:69, src/app/main/ui/dashboard/import.cljs:514, src/app/main/ui/dashboard/team.cljs:868, src/app/main/ui/delete_shared.cljs:35, src/app/main/ui/export.cljs:164, src/app/main/ui/export.cljs:460, src/app/main/ui/settings/access_tokens.cljs:188, src/app/main/ui/viewer/share_link.cljs:203, src/app/main/ui/workspace/sidebar/assets/groups.cljs:149 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.cancel" msgstr "Kagbuo" -#: src/app/main/ui/onboarding/questions.cljs:176 -msgid "labels.canva" -msgstr "Kanva" - -#: src/app/main/ui/dashboard/projects.cljs:93, src/app/main/ui/export.cljs:478, src/app/main/ui/settings/access_tokens.cljs:183, src/app/main/ui/viewer/login.cljs:77, src/app/main/ui/viewer/share_link.cljs:174, src/app/main/ui/workspace/libraries.cljs:522 msgid "labels.close" msgstr "Megbuo" -#: src/app/main/ui/dashboard/comments.cljs:104, src/app/main/ui/viewer/comments.cljs:70, src/app/main/ui/workspace/comments.cljs:126 +#: src/app/main/ui/dashboard/comments.cljs msgid "labels.comments" msgstr "Okwu gasị" -#: src/app/main/ui/dashboard/sidebar.cljs:985, src/app/main/ui/workspace/main_menu.cljs:110 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.community" msgstr "Ogbe" -#: src/app/main/ui/settings/password.cljs:103 +#: src/app/main/ui/settings/password.cljs msgid "labels.confirm-password" msgstr "Nabata akara mpịbanye" -#: src/app/main/ui/dashboard/import.cljs:520, src/app/main/ui/export.cljs:465, src/app/main/ui/onboarding/newsletter.cljs:101 msgid "labels.continue" msgstr "Ga n'ihu" -#, unused msgid "labels.continue-with" msgstr "Gaa n'ihu" -#: src/app/main/ui/viewer/login.cljs:75 msgid "labels.continue-with-penpot" msgstr "I Nwere Ike ịganihu" -#: src/app/main/ui/dashboard/team.cljs:642 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.copy-invitation-link" msgstr "Dọrọ njikọ" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:157, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:190 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "labels.create" msgstr "Meputa" -#: src/app/main/ui/dashboard/team_form.cljs:101, src/app/main/ui/dashboard/team_form.cljs:121 +#: src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/dashboard/team_form.cljs msgid "labels.create-team" msgstr "Mepee otu ọhụrụ" -#, unused msgid "labels.custom-fonts" msgstr "mkpụrụ edide a haziri" -#: src/app/main/ui/dashboard/file_menu.cljs:306, src/app/main/ui/dashboard/fonts.cljs:255, src/app/main/ui/dashboard/fonts.cljs:332, src/app/main/ui/dashboard/fonts.cljs:346, src/app/main/ui/dashboard/project_menu.cljs:115, src/app/main/ui/dashboard/team.cljs:904, src/app/main/ui/settings/access_tokens.cljs:209, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:209 +#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "labels.delete" msgstr "Hichaa" -#: src/app/main/ui/comments.cljs:357 +#: src/app/main/ui/comments.cljs msgid "labels.delete-comment" msgstr "Hichaa okwu" -#: src/app/main/ui/comments.cljs:354 +#: src/app/main/ui/comments.cljs msgid "labels.delete-comment-thread" msgstr "Hichapụ eri" -#: src/app/main/ui/dashboard/team.cljs:648 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.delete-invitation" msgstr "Hichapụ oku" -#: src/app/main/ui/dashboard/file_menu.cljs:262 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.delete-multi-files" msgstr "Hichapụ ederede %s" -#: src/app/main/ui/onboarding/questions.cljs:250 -msgid "labels.developer" -msgstr "Onye nrụpụta" - -#: src/app/main/ui/dashboard/file_menu.cljs:28, src/app/main/ui/dashboard/files.cljs:72, src/app/main/ui/dashboard/files.cljs:156, src/app/main/ui/dashboard/projects.cljs:220, src/app/main/ui/dashboard/projects.cljs:224, src/app/main/ui/dashboard/sidebar.cljs:791 +#: src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/files.cljs, src/app/main/ui/dashboard/files.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "labels.drafts" msgstr "Ndesita" -#: src/app/main/ui/comments.cljs:350, src/app/main/ui/dashboard/fonts.cljs:252, src/app/main/ui/dashboard/team.cljs:902, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:205 +#: src/app/main/ui/comments.cljs msgid "labels.edit" msgstr "Dezie" -#, unused msgid "labels.edit-file" msgstr "Dezie ederede" -#: src/app/main/ui/dashboard/team.cljs:118, src/app/main/ui/dashboard/team.cljs:279, src/app/main/ui/dashboard/team.cljs:520, src/app/main/ui/dashboard/team.cljs:553, src/app/main/ui/onboarding/team_choice.cljs:66 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs msgid "labels.editor" msgstr "Odezi" -#: src/app/main/ui/dashboard/team.cljs:661 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.expired-invitation" msgstr "Mebiri" -#: src/app/main/ui/settings/feedback.cljs:51 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.feedback-disabled" msgstr "Nzaghachi merụrụ emeru" -#: src/app/main/ui/settings/feedback.cljs:42 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.feedback-sent" msgstr "Zigara nzaghachi" -#: src/app/main/ui/onboarding/questions.cljs:170 -msgid "labels.figma" -msgstr "Ihe onyonyo" - -#: src/app/main/ui/dashboard/fonts.cljs:412 msgid "labels.font-family" msgstr "Ezinụlọ mkpụrụ edide" -#, unused msgid "labels.font-providers" msgstr "Ndị na-enye mkpụrụ edide" -#: src/app/main/ui/dashboard/fonts.cljs:413 msgid "labels.font-variants" msgstr "Ụdịdị gasị" -#: src/app/main/ui/dashboard/fonts.cljs:52, src/app/main/ui/dashboard/sidebar.cljs:811 msgid "labels.fonts" msgstr "Mkpụrụ edide gasị" -#: src/app/main/ui/onboarding/questions.cljs:263 -msgid "labels.founder" -msgstr "Onye malitere /VP" - -#: src/app/main/ui/onboarding/questions.cljs:262 -msgid "labels.freelancer" -msgstr "Onye nwere onwe ya" - -#: src/app/main/ui/dashboard/sidebar.cljs:1015, src/app/main/ui/workspace/main_menu.cljs:142 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.github-repo" msgstr "Ọ a Github" -#: src/app/main/ui/dashboard/sidebar.cljs:1032, src/app/main/ui/settings/sidebar.cljs:113, src/app/main/ui/workspace/main_menu.cljs:171 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.give-feedback" msgstr "Nye nzaghachi" -#: src/app/main/ui/auth/recovery_request.cljs:110, src/app/main/ui/auth/register.cljs:285, src/app/main/ui/viewer/login.cljs:117 msgid "labels.go-back" msgstr "Gaa azụ" -#: src/app/main/ui/dashboard/sidebar.cljs:978, src/app/main/ui/workspace/main_menu.cljs:102 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.help-center" msgstr "Ebe enyemaka" -#: src/app/main/ui/viewer/comments.cljs:103, src/app/main/ui/workspace/comments.cljs:67 +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs msgid "labels.hide-resolved-comments" msgstr "Zoo nkwupụta e kpebiri" -#: src/app/main/ui/dashboard/team.cljs:969 msgid "labels.inactive" msgstr "Arụghị ọrụ" -#: src/app/main/ui/dashboard/fonts.cljs:410 msgid "labels.installed-fonts" msgstr "Mkpụrụ edide gasị ewubere" -#: src/app/main/ui/static.cljs:144 +#: src/app/main/ui/static.cljs msgid "labels.internal-error.desc-message" msgstr "Ihe ọjọọ mere . Biko, rụgharịa ọrụ ma ọ bụ na nsogbu aka dị , kpọọ nkwado ." -#: src/app/main/ui/static.cljs:143 +#: src/app/main/ui/static.cljs msgid "labels.internal-error.main-message" msgstr "Nrụjọ ndịnime" -#: src/app/main/ui/onboarding/questions.cljs:178 -msgid "labels.invision" -msgstr "Mmakpo" - -#: src/app/main/ui/dashboard/sidebar.cljs:516, src/app/main/ui/dashboard/team.cljs:89, src/app/main/ui/dashboard/team.cljs:97, src/app/main/ui/dashboard/team.cljs:708 +#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.invitations" msgstr "Akwụkwọ ịkpọ ọkụ gasị" -#: src/app/main/ui/settings/options.cljs:51 +#: src/app/main/ui/settings/options.cljs msgid "labels.language" msgstr "Asụsụ" -#: src/app/main/ui/dashboard/sidebar.cljs:1008, src/app/main/ui/workspace/main_menu.cljs:134 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.libraries-and-templates" msgstr "Ọba ederede na Ndebiri gasị" -#: src/app/main/ui/viewer/header.cljs:203 msgid "labels.log-or-sign" msgstr "Banye ma ọ bụ debanye" -#: src/app/main/ui/dashboard/sidebar.cljs:1040 +#: src/app/main/ui/settings.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.logout" msgstr "Pụọ" -#: src/app/main/ui/onboarding/questions.cljs:253 -msgid "labels.marketing" -msgstr "Ịzụ ahịa" - -#: src/app/main/ui/dashboard/team.cljs:468 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.member" msgstr "Onye otu" -#: src/app/main/ui/dashboard/sidebar.cljs:510, src/app/main/ui/dashboard/team.cljs:87, src/app/main/ui/dashboard/team.cljs:95 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.members" msgstr "Ndị otu" -#: src/app/main/ui/settings/password.cljs:96 +#: src/app/main/ui/settings/password.cljs msgid "labels.new-password" msgstr "Akara mpịbanye ọhụrụ" -#: src/app/main/ui/dashboard/templates.cljs:269, src/app/main/ui/onboarding/questions.cljs:55 -msgid "labels.next" -msgstr "Ọzọ" - -#: src/app/main/ui/dashboard/comments.cljs:128, src/app/main/ui/workspace/comments.cljs:161 +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/dashboard/comments.cljs msgid "labels.no-comments-available" msgstr "E jidere unu niile! Ngosi nkwupụta ọhụrụ ga-apụta ebe a ." -#: src/app/main/ui/dashboard/team.cljs:694 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.no-invitations" msgstr "E nweghị ọkụ na-echere" -#: src/app/main/ui/dashboard/team.cljs:696 +#: src/app/main/ui/dashboard/team.cljs #, markdown msgid "labels.no-invitations-hint" msgstr "Pịa mpị**kpọọ ndị mmadụ ** ịkpọọ ndị mmadụ n'otu a." -#: src/app/main/ui/static.cljs:50 +#: src/app/main/ui/static.cljs msgid "labels.not-found.desc-message" msgstr "Ihu akwụkwọ a nwere ike ọ gaghị adị ma ọ bụ ị nweghị ikikere inweta ya ." -#: src/app/main/ui/static.cljs:49 +#: src/app/main/ui/static.cljs msgid "labels.not-found.main-message" msgstr "E wuu !" -#: src/app/main/ui/settings/password.cljs:89 +#: src/app/main/ui/settings/password.cljs msgid "labels.old-password" msgstr "Akara mpịbanye ochie" #: src/app/main/ui/workspace/comments.cljs -#, unused msgid "labels.only-yours" msgstr "Sọọsọ nke gị" -#, unused msgid "labels.or" msgstr "ma ọ bụ" -#: src/app/main/ui/onboarding/questions.cljs:145, src/app/main/ui/onboarding/questions.cljs:214, src/app/main/ui/onboarding/questions.cljs:303, src/app/main/ui/onboarding/questions.cljs:316, src/app/main/ui/onboarding/questions.cljs:389, src/app/main/ui/onboarding/questions.cljs:447 -msgid "labels.other" -msgstr "Ọzọ (zipụta)" - -#: src/app/main/ui/dashboard/team.cljs:286, src/app/main/ui/dashboard/team.cljs:518, src/app/main/ui/dashboard/team.cljs:1076 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs msgid "labels.owner" msgstr "Onye nwe" -#: src/app/main/ui/settings/sidebar.cljs:87 +#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.password" msgstr "Akara mpịbanye" -#: src/app/main/ui/dashboard/team.cljs:662 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.pending-invitation" msgstr "Na-echere" -#: src/app/main/ui/onboarding/questions.cljs:254 -msgid "labels.product-management" -msgstr "Onye njikwa ngwaahịa ma ọ bụ arụmarụ" - -#: src/app/main/ui/settings/profile.cljs:118, src/app/main/ui/settings/sidebar.cljs:82 +#: src/app/main/ui/settings/sidebar.cljs msgid "labels.profile" msgstr "Nchịkọta" -#: src/app/main/ui/dashboard/sidebar.cljs:784 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.projects" msgstr "Ọrụ gasị" -#: src/app/main/ui/dashboard/sidebar.cljs:998, src/app/main/ui/settings/sidebar.cljs:106, src/app/main/ui/workspace/main_menu.cljs:126 +#: src/app/main/ui/settings/sidebar.cljs msgid "labels.release-notes" msgstr "Wepụta ndetu" #: src/app/main/ui/workspace.cljs -#, unused msgid "labels.reload-file" msgstr "Bugharịa ederede" #: src/app/main/ui/workspace/libraries.cljs, src/app/main/ui/dashboard/team.cljs -#, unused msgid "labels.remove" msgstr "Wepu" -#: src/app/main/ui/dashboard/team.cljs:316 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.remove-member" msgstr "Wepụ onye otu" -#: src/app/main/ui/dashboard/file_menu.cljs:271, src/app/main/ui/dashboard/project_menu.cljs:85, src/app/main/ui/dashboard/sidebar.cljs:539, src/app/main/ui/workspace/sidebar/assets/groups.cljs:157 +#: src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "labels.rename" msgstr "Nyegharịa aha" -#: src/app/main/ui/dashboard/team_form.cljs:99 +#: src/app/main/ui/dashboard/team_form.cljs msgid "labels.rename-team" msgstr "Nyegharịa otu" -#: src/app/main/ui/static.cljs:61, src/app/main/ui/static.cljs:70, src/app/main/ui/static.cljs:148 +#: src/app/main/ui/static.cljs, src/app/main/ui/static.cljs, src/app/main/ui/static.cljs msgid "labels.retry" msgstr "Nwagharịa" -#: src/app/main/ui/dashboard/team.cljs:469, src/app/main/ui/dashboard/team.cljs:709 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.role" msgstr "Ọrụ" -#: src/app/main/ui/dashboard/fonts.cljs:380, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:191 msgid "labels.save" msgstr "Dokwa" -#: src/app/main/ui/dashboard/fonts.cljs:415 msgid "labels.search-font" msgstr "Chọọ mkpụrụ edide" -#: src/app/main/ui/onboarding/questions.cljs:90, src/app/main/ui/onboarding/questions.cljs:248, src/app/main/ui/onboarding/questions.cljs:259, src/app/main/ui/onboarding/questions.cljs:270 -msgid "labels.select-option" -msgstr "Họrọ nhọ" - -#: src/app/main/ui/settings/feedback.cljs:82 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.send" msgstr "Ziga" -#: src/app/main/ui/settings/feedback.cljs:82 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.sending" msgstr "Na-eziga…" -#: src/app/main/ui/dashboard/sidebar.cljs:530, src/app/main/ui/dashboard/team.cljs:88, src/app/main/ui/dashboard/team.cljs:102, src/app/main/ui/settings/options.cljs:84, src/app/main/ui/settings/sidebar.cljs:93 +#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.settings" msgstr "Ntọala" -#: src/app/main/ui/dashboard/sidebar.cljs:800 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.shared-libraries" msgstr "Ọba ederede" -#: src/app/main/ui/viewer/comments.cljs:82, src/app/main/ui/workspace/comments.cljs:55, src/app/main/ui/workspace/comments.cljs:135 +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs msgid "labels.show-all-comments" msgstr "Gosi nkwupụta niile" -#: src/app/main/ui/viewer/comments.cljs:115 msgid "labels.show-comments-list" msgstr "Gosi ndepụta nkwupụta gasị" -#: src/app/main/ui/viewer/comments.cljs:91, src/app/main/ui/workspace/comments.cljs:61, src/app/main/ui/workspace/comments.cljs:136 +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs msgid "labels.show-your-comments" msgstr "Gosi nanị nkwupụta gị gasị" -#: src/app/main/ui/onboarding/questions.cljs:172 -msgid "labels.sketch" -msgstr "Eserese" - -#: src/app/main/ui/onboarding/questions.cljs:56 -msgid "labels.start" -msgstr "Bido" - -#: src/app/main/ui/dashboard/team.cljs:710 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.status" msgstr "Ọnọdụ" -#: src/app/main/ui/onboarding/questions.cljs:251 -msgid "labels.student-teacher" -msgstr "Nwata akwụkwọ ma ọ bụ onye nkụzi" - -#: src/app/main/ui/dashboard/sidebar.cljs:992, src/app/main/ui/workspace/main_menu.cljs:118 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.tutorials" msgstr "Nkuzi" -#: src/app/main/ui/dashboard/file_menu.cljs:256 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.unpublish-multi-files" msgstr "%s ederede ebipụtaghị" -#: src/app/main/ui/settings/profile.cljs:103 +#: src/app/main/ui/settings/profile.cljs msgid "labels.update" msgstr "Hazigharịa" -#: src/app/main/ui/dashboard/team_form.cljs:120 +#: src/app/main/ui/dashboard/team_form.cljs msgid "labels.update-team" msgstr "Hazigharịa otu" -#: src/app/main/ui/dashboard/fonts.cljs:241 msgid "labels.upload" msgstr "Bugo" -#: src/app/main/ui/dashboard/fonts.cljs:169 msgid "labels.upload-custom-fonts" msgstr "Bugo ederede gasị ahaziri" -#: src/app/main/ui/dashboard/fonts.cljs:240 msgid "labels.uploading" msgstr "Na-ebugo…" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs:223 msgid "labels.view-only" msgstr "Sọọsọ nkiri" -#: src/app/main/ui/dashboard/team.cljs:123, src/app/main/ui/dashboard/team.cljs:282, src/app/main/ui/dashboard/team.cljs:521 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.viewer" msgstr "Ndị nkiri" -#: src/app/main/ui/dashboard/sidebar.cljs:523, src/app/main/ui/dashboard/team.cljs:90, src/app/main/ui/dashboard/team.cljs:100, src/app/main/ui/dashboard/team.cljs:880 msgid "labels.webhooks" msgstr "Nko-ududọ" -#: src/app/main/ui/comments.cljs:194 +#: src/app/main/ui/comments.cljs msgid "labels.write-new-comment" msgstr "Dee nkwupụta ọhụrụ" -#: src/app/main/ui/dashboard/team.cljs:237 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.you" msgstr "(gị)" -#: src/app/main/ui/dashboard/sidebar.cljs:968 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.your-account" msgstr "Akara mbata gị" -#: src/app/main/data/media.cljs:49, src/app/main/data/workspace/media.cljs:223, src/app/main/data/workspace/media.cljs:453 +#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs msgid "media.loading" msgstr "Na-ebupụta onyinyo …" -#: src/app/main/data/common.cljs:111 msgid "modals.add-shared-confirm-empty.hint" msgstr "" "E nweghị ihe dị n'ọba ederede gị. \"Ozugbo e tinyere dị ka ọba ederede " "ekekoritara, ngwongwo ị mepere ga a dị maka iji ya rụọ ọrụ n'edemede gị ndị " "ọzọ niile. Ọ kara gị obi na ị chọrọ ị bipụta ya?" -#: src/app/main/data/common.cljs:113 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.add-shared-confirm.accept" msgstr "Tinye ka ọba ederede Kekoritara" -#: src/app/main/data/common.cljs:111 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.add-shared-confirm.hint" msgstr "" ".Ozugbo e tinyere dị ka ọba ederede ekekoritara, ngwongwo ị mepere ga a dị " "maka iji ya rụọ ọrụ n'edemede gị ndị ọzọ niile." -#: src/app/main/data/common.cljs:110 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.add-shared-confirm.message" msgstr "Tinye “%s” dị ka ọba ederede ekekoritara" -#: src/app/main/ui/workspace/nudge.cljs:60 +#: src/app/main/ui/workspace/nudge.cljs msgid "modals.big-nudge" msgstr "nnukwu nkpatụ" -#: src/app/main/ui/settings/change_email.cljs:136 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.submit" msgstr "Gbanwee ozi nl" -#: src/app/main/ui/settings/access_tokens.cljs:142 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.create-access-token.expiration-date.label" msgstr "Ụbọchị mmebi" -#: src/app/main/ui/settings/access_tokens.cljs:136 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.create-access-token.name.label" msgstr "Aha" -#: src/app/main/ui/settings/access_tokens.cljs:191 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.create-access-token.submit-label" msgstr "Create token" -#: src/app/main/ui/settings/access_tokens.cljs:123 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.create-access-token.title" msgstr "Mepụta ọdịmara nweta" -#: src/app/main/ui/dashboard/team.cljs:873 msgid "modals.create-webhook.submit-label" msgstr "Mebe nko - ududo" -#: src/app/main/ui/dashboard/team.cljs:838 msgid "modals.create-webhook.title" msgstr "Mebe nko-ududo" -#: src/app/main/ui/dashboard/team.cljs:849 msgid "modals.create-webhook.url.label" msgstr "Isi ozi URL" -#: src/app/main/ui/dashboard/team.cljs:850 msgid "modals.create-webhook.url.placeholder" msgstr "https://ọmụmaaụ.com/ozi anabara" -#: src/app/main/ui/settings/access_tokens.cljs:271 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.delete-acces-token.accept" msgstr "Hichapụ ọdịmara" -#: src/app/main/ui/settings/access_tokens.cljs:269 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.delete-acces-token.title" msgstr "Hichapụ ọdịmara" -#: src/app/main/ui/settings/delete_account.cljs:59 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.cancel" msgstr "Kagbuo ma dobe ebe ntinye ihe m" -#: src/app/main/ui/settings/delete_account.cljs:64 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.confirm" msgstr "Eee, hichapụ ebe ntinye ihe m" -#: src/app/main/ui/settings/delete_account.cljs:53 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.info" msgstr "" "Site na iwepu ebe ntinye ihe gị, arụmarụ gị gasị ugbu a naebe nchekwa " "ga-efu ." -#: src/app/main/ui/settings/delete_account.cljs:46 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.title" msgstr "Ọ kara gị obi na ị chọrọ ị hichapụ ebe ntinye ihe gị?" -#: src/app/main/ui/comments.cljs:298 +#: src/app/main/ui/comments.cljs msgid "modals.delete-comment-thread.accept" msgstr "Hichapụ mkparịtaụka" -#: src/app/main/ui/comments.cljs:297 +#: src/app/main/ui/comments.cljs msgid "modals.delete-comment-thread.message" msgstr "Ọ kara gị obi na ị chọrọ ị hichapụ mkparịtaụka a?" -#: src/app/main/ui/comments.cljs:296 +#: src/app/main/ui/comments.cljs msgid "modals.delete-comment-thread.title" msgstr "Hichaa mkparịtaụka" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:140 msgid "modals.delete-component-annotation.message" msgstr "Ọ kara gị obi na ị chọrọ ị hichapụ nkọwa ?" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:139 msgid "modals.delete-component-annotation.title" msgstr "Hichapụ nkọwa" -#: src/app/main/ui/dashboard/file_menu.cljs:123 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-confirm.accept" msgstr "Hichapụ ederede" -#: src/app/main/ui/dashboard/file_menu.cljs:122 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-confirm.message" msgstr "Ọ kara gị obi na ị chọrọ ị hichapụ ederede ?" -#: src/app/main/ui/dashboard/file_menu.cljs:121 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-confirm.title" msgstr "Na-ehichapụ ederede" -#: src/app/main/ui/dashboard/file_menu.cljs:115 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-multi-confirm.title" msgstr "Na-ehichapụ ederede %s" -#: src/app/main/ui/dashboard/fonts.cljs:330 msgid "modals.delete-font.title" msgstr "Na-ehichapụ mkpụrụ edide" -#: src/app/main/ui/workspace/context_menu.cljs:522, src/app/main/ui/workspace/sidebar/sitemap.cljs:45 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs msgid "modals.delete-page.body" msgstr "Ọ kara gị obi na ị chọrọ ị hichapụ ihu akwụkwọ a?" -#: src/app/main/ui/workspace/context_menu.cljs:521, src/app/main/ui/workspace/sidebar/sitemap.cljs:44 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs msgid "modals.delete-page.title" msgstr "Hichapụ ihu akwụkwọ" -#: src/app/main/ui/dashboard/project_menu.cljs:69 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "modals.delete-project-confirm.accept" msgstr "Hichapụ arụmarụ" -#: src/app/main/ui/dashboard/project_menu.cljs:68 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "modals.delete-project-confirm.message" msgstr "Ọ kara gị obi na ị chọrọ ị hichapụ arụmarụ ?" -#: src/app/main/ui/dashboard/project_menu.cljs:67 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "modals.delete-project-confirm.title" msgstr "Hichapụ arụmarụ" -#: src/app/main/ui/dashboard/sidebar.cljs:435 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.delete-team-confirm.accept" msgstr "Hichapụ otu" -#: src/app/main/ui/dashboard/sidebar.cljs:434 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.delete-team-confirm.message" msgstr "" "Ọ kara gị obi na ị chọrọ ị hichapụ otu? ARỤMARỤ na ederede nille gasị " "gbasara otú ga-ehichapụ kpam kpam" -#: src/app/main/ui/dashboard/sidebar.cljs:433 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.delete-team-confirm.title" msgstr "Na-ehichapụ otu" -#: src/app/main/ui/dashboard/team.cljs:427 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.delete-team-member-confirm.accept" msgstr "Hichapụ onye otu" -#: src/app/main/ui/dashboard/team.cljs:426 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.delete-team-member-confirm.message" msgstr "Ọ kara gị obi na ị chọrọ ị hichapụ onye otu n'otu a?" -#: src/app/main/ui/dashboard/team.cljs:425 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.delete-team-member-confirm.title" msgstr "Hichapụ onye otu" -#: src/app/main/ui/dashboard/team.cljs:942 msgid "modals.delete-webhook.accept" msgstr "Hichapụ nko-ududọ" -#: src/app/main/ui/dashboard/team.cljs:941 msgid "modals.delete-webhook.message" msgstr "Ọ kara gị obi na ị chọrọ ị hichapụ nko-ududọ ?" -#: src/app/main/ui/dashboard/team.cljs:940 msgid "modals.delete-webhook.title" msgstr "Na-ehichapụ nko-ududo" -#: src/app/main/ui/dashboard/team.cljs:872 msgid "modals.edit-webhook.submit-label" msgstr "Dezie nko-ududo" -#: src/app/main/ui/dashboard/team.cljs:837 msgid "modals.edit-webhook.title" msgstr "Dezie nko-ududo" -#: src/app/main/ui/dashboard/team.cljs:218 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.invite-member-confirm.accept" msgstr "Ziga akwụkwọ ozi mkpọta" -#: src/app/main/ui/dashboard/team.cljs:213, src/app/main/ui/onboarding/team_choice.cljs:156 msgid "modals.invite-member.emails" msgstr "Ozi-n gasị, Rịkọm e kewara" -#: src/app/main/ui/dashboard/team.cljs:197 msgid "modals.invite-member.repeated-invitation" msgstr "Ụfọdụ ozi n sitere na ndị ugbu a A gaghị e ịga akwụkwọ ozi mkpọta ha" -#: src/app/main/ui/dashboard/team.cljs:190 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.invite-team-member.title" msgstr "kpọta ndị otu n'otu a" -#: src/app/main/ui/dashboard/sidebar.cljs:423, src/app/main/ui/dashboard/team.cljs:393 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-close-confirm.hint" msgstr "" "Etu ị bụ sọọ otu onye otu , a ga e hichapụ otu a ya n'ọrụ na ederede ya " "gasịits projects and files." -#: src/app/main/ui/dashboard/sidebar.cljs:422, src/app/main/ui/dashboard/team.cljs:392 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-close-confirm.message" msgstr "Ọ kara gị obi na ị chọrọ ịhapụ otu %s ?" -#: src/app/main/ui/dashboard/change_owner.cljs:59 msgid "modals.leave-and-reassign.forbidden" msgstr "" "I nweghị ike ịhapụ otu ma ọ bụrụ na e nweghị onye otu ọzọ akwalitere ga na " "onye nwe ya . Ị nwere ike chọọ ị hichapụ otu ." -#: src/app/main/ui/dashboard/change_owner.cljs:55 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-reassign.hint1" msgstr "" "Gị bụ onye nwee otu a, . Biko, họrọ onye otu ọzọ maka ịkwalite gana onye " "nweeya tupu ị hapụ ." -#: src/app/main/ui/dashboard/change_owner.cljs:78 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-reassign.promote-and-leave" msgstr "Kwalite ma hapụ" -#: src/app/main/ui/dashboard/change_owner.cljs:34 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-reassign.select-member-to-promote" msgstr "Họrọ onye otu maka ịkwalite" -#: src/app/main/ui/dashboard/change_owner.cljs:49 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-reassign.title" msgstr "Tupu ị hapụ" -#: src/app/main/ui/dashboard/sidebar.cljs:402, src/app/main/ui/dashboard/sidebar.cljs:424, src/app/main/ui/dashboard/team.cljs:394, src/app/main/ui/dashboard/team.cljs:416 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-confirm.accept" msgstr "Hapụ otu" -#: src/app/main/ui/dashboard/sidebar.cljs:401, src/app/main/ui/dashboard/team.cljs:415 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-confirm.message" msgstr "Ọ kara gị obi na ịchọrọ ịhapụ otu ?" -#: src/app/main/ui/dashboard/sidebar.cljs:400, src/app/main/ui/dashboard/sidebar.cljs:421, src/app/main/ui/dashboard/team.cljs:391, src/app/main/ui/dashboard/team.cljs:414 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-confirm.title" msgstr "Nhapụ otu" -#: src/app/main/ui/workspace/main_menu.cljs:266, src/app/main/ui/workspace/nudge.cljs:47 +#: src/app/main/ui/workspace/nudge.cljs msgid "modals.nudge-title" msgstr "ọnụ ọgụgụ nkpatụ" -#: src/app/main/ui/dashboard/team.cljs:339 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.hint" msgstr "" "Ọ bụrụ na Inyefe onwunwe , ị ga-agbanwe ọrụ gị ka ọchikwa, ụfọdụ ikikere " "n'isi ndị otu na-efu " -#: src/app/main/ui/dashboard/team.cljs:338 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.message" msgstr "" "G bụ onye nwe otu a ugbu a, Ọ doro gị anya na ị chọrọ ime%s Onye ọhụrụ nwe " "otu a?" -#: src/app/main/ui/dashboard/team.cljs:337 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.title" msgstr "Onye nwe otu ọhụrụ" -#: src/app/main/ui/workspace/libraries.cljs:188 msgid "modals.publish-empty-library.accept" msgstr "Biputa" -#: src/app/main/ui/workspace/libraries.cljs:187 msgid "modals.publish-empty-library.message" msgstr "Your library is empty. Are you sure you want to publish it?" -#: src/app/main/ui/workspace/libraries.cljs:186 msgid "modals.publish-empty-library.title" msgstr "Biputa ọba ederede efu" #: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused msgid "modals.remove-shared-confirm.accept" msgstr "Wepụ dịka ọba ederede ekekoritara" #: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused msgid "modals.remove-shared-confirm.hint" msgstr "" "Ozugbo e wepụrụ dị ka ọba ederede ekekoritara, ọba ederede ederede a " "ga-akwụsị dị n'ime ederede ndị ọzọ gasị e ji rụọ ọrụ" #: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused msgid "modals.remove-shared-confirm.message" msgstr "Wepu“%s” dịka ọba ederede ekekoritara" -#: src/app/main/ui/workspace/nudge.cljs:53 +#: src/app/main/ui/workspace/nudge.cljs msgid "modals.small-nudge" msgstr "kpatụ obere" #: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs -#, unused msgid "modals.update-remote-component-in-bulk.hint" msgstr "" "Ị na-achọ ịhazigharị ngwa gasị n'ọba ederede ekekoritara. Ihe nwere ike " "imetuta ederede ndị ọzọ ji ya arụ ọrụ" #: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs -#, unused msgid "modals.update-remote-component-in-bulk.message" msgstr "Update components in a shared library" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:380 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.accept" msgstr "Hazigharịa" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:379 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.cancel" msgstr "Kagbuo" -#: src/app/main/data/common.cljs:71 +#: src/app/main/data/common.cljs msgid "notifications.by-code.upgrade-version" msgstr "A new version is available, please refresh the page" -#: src/app/main/ui/settings/delete_account.cljs:24 +#: src/app/main/ui/settings/delete_account.cljs msgid "notifications.profile-deletion-not-allowed" msgstr "I nweghị ike ị hichapụ nchịkọta gị . Nyegharịa ya ndị otu gị tupu ị ganihu" -#: src/app/main/ui/settings/options.cljs:29, src/app/main/ui/settings/profile.cljs:35 +#: src/app/main/ui/settings/profile.cljs, src/app/main/ui/settings/options.cljs msgid "notifications.profile-saved" msgstr "E dọkwara nchịkọta nke ọma" -#: src/app/main/ui/settings/change_email.cljs:63 +#: src/app/main/ui/settings/change_email.cljs msgid "notifications.validation-email-sent" msgstr "Ozi nnyocha n zigara na%s. Mepe ozi n gị !" -#, unused msgid "onboarding-v2.before-start.desc1" msgstr "" "I kwesịrị ịma na e nwere ọtụtụ ihe e ji arụ ọrụ dị inwere gị iji bido n'ite " "mkpịsị , dị ka ntuziaka onye ọrụ na ọwa YouTube anyị l." -#, unused msgid "onboarding-v2.before-start.desc2" msgstr "" "Ozi banyere etu esi eji ite mkpịsị arụ ọrụ uju. Site na ime atụtụ ga na " "nhazi ma ọ bụ nkesa esereese ." -#, unused msgid "onboarding-v2.before-start.desc2.title" msgstr "Mkpanaka" -#, unused msgid "onboarding-v2.before-start.desc3" msgstr "Ị nwere ike ikiri amụmamụ anyị na amụmamụ nke ndị obodo anyị mere." -#, unused msgid "onboarding-v2.before-start.desc3.title" msgstr "Amụmamụ onyonyo" -#, unused msgid "onboarding-v2.before-start.title" msgstr "Tupu i bido" -#: src/app/main/ui/onboarding/newsletter.cljs:63 msgid "onboarding-v2.newsletter.desc" msgstr "" "Debanye aha n'akụkụ ozi ite mkpịsị iji nọrọ gam gam na ngwa ahịa aaga n'ihu " "mwulite na akụkọ ụwa." -#: src/app/main/ui/onboarding/newsletter.cljs:83 msgid "onboarding-v2.newsletter.news" msgstr "" "Zitere m akụkọ banyere ite mkpịsị (ozi edemonye gasị, Nkụzi ihe onyonyo, " "nkirigarị...)." -#: src/app/main/ui/onboarding/newsletter.cljs:91 msgid "onboarding-v2.newsletter.privacy1" msgstr "Anyị na-eche banyere nzochi onwe, ebe a inwere ike ịgụ..... anyị " -#: src/app/main/ui/onboarding/newsletter.cljs:97 msgid "onboarding-v2.newsletter.privacy2" msgstr "" "Anyị ga e zitere ozi n bara uru sọọsọ . Ị nwere ike idepu aha oge ọ bụla " "site na njikọ ndepu aha n'akwụkwọ ozi gasị anyị ọ bụla ." -#: src/app/main/ui/onboarding/newsletter.cljs:71 msgid "onboarding-v2.newsletter.updates" msgstr "" "Zitere m nhazigharị ngwa ahịa (a gwara ọhụrụ gasị , ihe ndị ewepụta gasịrị " ", ndo ị gasị..)." -#, unused msgid "onboarding-v2.welcome.desc1" msgstr "" "Ite mkpịsị bụ nsina ghere oghe ma bụrụ nke Kaleidos nakwa ndị obodo rụrụ " "Ebe ọtụtụ mmadụ nyewegoroa onwe anyị aka..Onye ọ bụla nwere arụkọrịtasite " "na :" -#, unused msgid "onboarding-v2.welcome.desc2" msgstr "" "Oghere ọha na ndị obodo niile na ndị otu ite mkpịsị kpọmkwem ịmụ, kesa ma " "kọwaa maka ite mkpịsị , ọnọdụ ya ugbu a na ọdịnihu ya" -#, unused msgid "onboarding-v2.welcome.desc3.title" msgstr "Ntụziaka inye aka" -#: src/app/main/ui/onboarding/team_choice.cljs:31 msgid "onboarding-v2.welcome.title" msgstr "Nabata ite mkpịsị !" -#: src/app/main/ui/onboarding/team_choice.cljs:215 msgid "onboarding.choice.team-up.create-team-desc" msgstr "I nye ha otu gị aha , I nwere ike ị kpọta ndị mmadụ ka ha sonye." -#: src/app/main/ui/onboarding/team_choice.cljs:224 msgid "onboarding.choice.team-up.create-team-placeholder" msgstr "Denye aha otu" -#: src/app/main/ui/dashboard/projects.cljs:89, src/app/main/ui/onboarding/team_choice.cljs:140 msgid "onboarding.choice.team-up.invite-members" msgstr "Kpọta ndị otu" -#: src/app/main/ui/onboarding/team_choice.cljs:141 msgid "onboarding.choice.team-up.invite-members-info" msgstr "" "Cheta ka itinye onye ọ bụla Ndị nzụlite, ndị nrụpụta, ndị njikwa... dị iche " "iche adds up :)" -#: src/app/main/ui/dashboard/team.cljs:202, src/app/main/ui/onboarding/team_choice.cljs:146 msgid "onboarding.choice.team-up.roles" msgstr "kpọta tinye ọrụ :" -#, unused msgid "onboarding.newsletter.accept" msgstr "Eee, debanye aha" -#: src/app/main/ui/onboarding/newsletter.cljs:40 msgid "onboarding.newsletter.acceptance-message" msgstr "E zigala arịrịọ ndenye aha gị , anyị ga-ezi tara gị ozi - n iji nabata ya" -#: src/app/main/ui/onboarding/newsletter.cljs:60 msgid "onboarding.newsletter.title" msgstr "Chọrọ inweta ozi ite mkpịsị ?" -#: src/app/main/ui/onboarding/questions.cljs:118 -msgid "onboarding.questions.lets-get-started" -msgstr "Ka anyị bido!" - -#: src/app/main/ui/onboarding/questions.cljs:307 -msgid "onboarding.questions.step3.question2" -msgstr "Gịnị bụ ọrụ gị ?" - -#: src/app/main/ui/onboarding/questions.cljs:320 -msgid "onboarding.questions.step3.question3" -msgstr "Kedụ ka otu gị ha?" - -#: src/app/main/ui/onboarding/questions.cljs:273 -msgid "onboarding.questions.team-size.11-30" -msgstr "Iri na otu ruo na iri atọ" - -#: src/app/main/ui/onboarding/questions.cljs:274 -msgid "onboarding.questions.team-size.2-10" -msgstr "Abụọ ruo na iri" - -#: src/app/main/ui/onboarding/questions.cljs:272 -msgid "onboarding.questions.team-size.31-50" -msgstr "Iri atọ na otu ruo na iri ise" - -#: src/app/main/ui/onboarding/questions.cljs:271 -msgid "onboarding.questions.team-size.more-than-50" -msgstr "Karịrị iri ise" - -#: src/app/main/ui/onboarding/questions.cljs:276 -msgid "onboarding.questions.team-size.personal-project" -msgstr "A na m arụ ọrụ n'arụmarụ onwe" - -#: src/app/main/ui/onboarding/team_choice.cljs:213 msgid "onboarding.team-modal.create-team" msgstr "Mepụta otu" -#: src/app/main/ui/onboarding/team_choice.cljs:35 msgid "onboarding.team-modal.create-team-desc" msgstr "" "Otu ga-ekwe gị na ndị ọzọ ji ite mkpịsị arụ ọrụ ịrụkọta n'otu ederede na " "arụmarụ gasị ." -#: src/app/main/ui/onboarding/team_choice.cljs:40 msgid "onboarding.team-modal.create-team-feature-1" msgstr "Ederede na arụmarụ na enweghị njedebe" -#: src/app/main/ui/onboarding/team_choice.cljs:44 msgid "onboarding.team-modal.create-team-feature-2" msgstr "Mbipụta ọtụtụ egwuregwu" -#: src/app/main/ui/onboarding/team_choice.cljs:48 msgid "onboarding.team-modal.create-team-feature-3" msgstr "Njikwa ọrụ" -#: src/app/main/ui/onboarding/team_choice.cljs:52 msgid "onboarding.team-modal.create-team-feature-4" msgstr "Ndị otu enweghị njedebe" -#: src/app/main/ui/onboarding/team_choice.cljs:56 msgid "onboarding.team-modal.create-team-feature-5" msgstr "% narị efu!" -#: src/app/main/ui/onboarding/templates.cljs:78 msgid "onboarding.templates.subtitle" msgstr "Ụfọdụ ndebiri nọ ebe a." -#: src/app/main/ui/onboarding/templates.cljs:77 msgid "onboarding.templates.title" msgstr "Bido osise" -#: src/app/main/ui/auth/recovery.cljs:99 +#: src/app/main/ui/auth/recovery.cljs msgid "profile.recovery.go-to-login" msgstr "Gaa na mbanye" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:89 +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.team-size.11-30" +msgstr "Iri na otu ruo na iri atọ" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.team-size.2-10" +msgstr "Abụọ ruo na iri" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.team-size.31-50" +msgstr "Iri atọ na otu ruo na iri ise" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.adobe-xd" +msgstr "Ngwa nrụkọrịta ọrụ Adobe" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.canva" +msgstr "Kanva" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.developer" +msgstr "Onye nrụpụta" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.figma" +msgstr "Ihe onyonyo" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.founder" +msgstr "Onye malitere /VP" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.freelancer" +msgstr "Onye nwere onwe ya" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.invision" +msgstr "Mmakpo" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.lets-get-started" +msgstr "Ka anyị bido!" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.product-management" +msgstr "Onye njikwa ngwaahịa ma ọ bụ arụmarụ" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.marketing" +msgstr "Ịzụ ahịa" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.team-size.more-than-50" +msgstr "Karịrị iri ise" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.next" +msgstr "Ọzọ" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.other" +msgstr "Ọzọ (zipụta)" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.team-size.personal-project" +msgstr "A na m arụ ọrụ n'arụmarụ onwe" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.step3.question2" +msgstr "Gịnị bụ ọrụ gị ?" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.select-option" +msgstr "Họrọ nhọ" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.sketch" +msgstr "Eserese" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.start" +msgstr "Bido" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.student-teacher" +msgstr "Nwata akwụkwọ ma ọ bụ onye nkụzi" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.step3.question3" +msgstr "Kedụ ka otu gị ha?" + msgid "shortcuts.bring-backward" msgstr "Wega ebe azụ" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:108 msgid "shortcuts.duplicate" msgstr "Mkpị" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:127 msgid "shortcuts.letter-spacing-inc" msgstr "Leta mmụba oghere" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:163 msgid "shortcuts.paste" msgstr "Nyado" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:183 msgid "shortcuts.text-align-left" msgstr "Dozie akaekpe" -#: src/app/main/ui.cljs:143 msgid "viewer.breaking-change.message" msgstr "Ndo" -#: src/app/main/ui/workspace/context_menu.cljs:529, src/app/main/ui/workspace/sidebar/assets/colors.cljs:251, src/app/main/ui/workspace/sidebar/assets/components.cljs:577, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:424, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:443 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.delete" msgstr "Kachapụ" -#: src/app/main/ui/workspace/sidebar/layers.cljs:525 msgid "workspace.focus.focus-mode" msgstr "Umezi nlekwasa anya" -#: src/app/main/ui/workspace/context_menu.cljs:286 msgid "workspace.focus.focus-on" msgstr "Gbanye nlekwasa anya" -#: src/app/main/ui/workspace/context_menu.cljs:469 msgid "workspace.shape.menu.create-multiple-components" msgstr "Mee ọtụtụ akọrọngwa ga" -#: src/app/main/ui/workspace/palette.cljs:165, src/app/main/ui/workspace/palette.cljs:166 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.color-palette" msgstr "Agba[ Palette (Na narị)" -#: src/app/main/data/workspace/libraries.cljs:1090 +#: src/app/main/data/workspace/libraries.cljs msgid "workspace.updates.there-are-updates" msgstr "E nwegasịrị nhazizigharị nime ọba ederede ga e kere eke" diff --git a/frontend/translations/it.po b/frontend/translations/it.po index 4d47818810..47ea14afa7 100644 --- a/frontend/translations/it.po +++ b/frontend/translations/it.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "PO-Revision-Date: 2024-06-17 08:07+0000\n" "Last-Translator: Anonymous \n" -"Language-Team: Italian " -"\n" +"Language-Team: Italian \n" "Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" @@ -11,419 +11,375 @@ msgstr "" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 5.6-dev\n" -#: src/app/main/ui/auth/register.cljs:151, src/app/main/ui/viewer/login.cljs:104 +#: src/app/main/ui/auth/register.cljs msgid "auth.already-have-account" msgstr "Hai già un account?" -#: src/app/main/ui/auth/register.cljs:299 +#: src/app/main/ui/auth/register.cljs msgid "auth.check-your-email" msgstr "" "Controlla la tua e-mail e clicca sul link di verifica per iniziare a usare " "Penpot." -#: src/app/main/ui/auth/recovery.cljs:78 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.confirm-password" msgstr "Conferma la password" -#: src/app/main/ui/auth/register.cljs:163 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.create-demo-account" msgstr "Creare un account demo" #: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs -#, unused msgid "auth.create-demo-profile" msgstr "Vuoi solamente provare?" -#: src/app/main/ui/auth/login.cljs:43 +#: src/app/main/ui/auth/register.cljs msgid "auth.demo-warning" msgstr "" "Questo è un servizio di prova, non utilizzare per il lavoro reale, i " "progetti verranno eliminati periodicamente." -#: src/app/main/ui/auth/login.cljs:189, src/app/main/ui/viewer/login.cljs:90 +#: src/app/main/ui/auth/login.cljs msgid "auth.forgot-password" msgstr "Hai dimenticato la password?" -#: src/app/main/ui/auth/register.cljs:254 +#: src/app/main/ui/auth/register.cljs msgid "auth.fullname" msgstr "Nome completo" -#: src/app/main/ui/auth/register.cljs:155, src/app/main/ui/viewer/login.cljs:107 +#: src/app/main/ui/auth/register.cljs +#, fuzzy msgid "auth.login-here" msgstr "Accedere qui" -#: src/app/main/ui/auth/login.cljs:195 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-submit" msgstr "Accedi" -#: src/app/main/ui/auth/login.cljs:222 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-github-submit" msgstr "GitHub" -#: src/app/main/ui/auth/login.cljs:228 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-gitlab-submit" msgstr "GitLab" -#: src/app/main/ui/auth/login.cljs:216 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-google-submit" msgstr "Google" -#: src/app/main/ui/auth/login.cljs:201 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-ldap-submit" msgstr "LDAP" -#: src/app/main/ui/auth/login.cljs:234, src/app/main/ui/auth/login.cljs:255 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-oidc-submit" msgstr "OpenID" -#: src/app/main/ui/auth/recovery.cljs:71 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.new-password" msgstr "Inserisci una nuova password" -#: src/app/main/ui/auth/recovery.cljs:42 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.notifications.invalid-token-error" msgstr "Il codice di recupero non è valido." -#: src/app/main/ui/auth/recovery.cljs:46 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.notifications.password-changed-successfully" msgstr "La password è stata modificata con successo" -#: src/app/main/ui/auth/recovery_request.cljs:57 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.notifications.profile-not-verified" msgstr "Il profilo non è verificato. Verifica il profilo prima di continuare." -#: src/app/main/ui/auth/recovery_request.cljs:40 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.notifications.recovery-token-sent" msgstr "Il link per il recupero password è stato inviato alla tua e-mail." -#: src/app/main/ui/auth/login.cljs:179, src/app/main/ui/auth/register.cljs:115 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.password" msgstr "Password" -#: src/app/main/ui/auth/register.cljs:114 +#: src/app/main/ui/auth/register.cljs msgid "auth.password-length-hint" msgstr "Almeno 8 caratteri" -#: src/app/main/ui/auth.cljs:41 msgid "auth.privacy-policy" msgstr "Informativa sulla privacy" -#: src/app/main/ui/auth/recovery_request.cljs:88 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-submit" msgstr "Recupera password" -#: src/app/main/ui/auth/recovery_request.cljs:101 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-subtitle" msgstr "Ti invieremo un'e-mail con le istruzioni" -#: src/app/main/ui/auth/recovery_request.cljs:100 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-title" msgstr "Hai dimenticato la password?" -#: src/app/main/ui/auth/recovery.cljs:82 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.recovery-submit" msgstr "Cambia la tua password" -#: src/app/main/ui/auth/login.cljs:298, src/app/main/ui/viewer/login.cljs:93 +#: src/app/main/ui/auth/login.cljs msgid "auth.register" msgstr "Non hai ancora un account?" -#: src/app/main/ui/auth/login.cljs:302, src/app/main/ui/auth/register.cljs:121, src/app/main/ui/auth/register.cljs:263, src/app/main/ui/viewer/login.cljs:97 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.register-submit" msgstr "Crea un account" -#: src/app/main/ui/auth/register.cljs:140 +#: src/app/main/ui/auth/register.cljs msgid "auth.register-title" msgstr "Crea un account" #: src/app/main/ui/auth.cljs -#, unused msgid "auth.sidebar-tagline" msgstr "La soluzione open source per il design e la prototipazione." -#: src/app/main/ui/auth.cljs:33, src/app/main/ui/dashboard/sidebar.cljs:1022, src/app/main/ui/workspace/main_menu.cljs:150 msgid "auth.terms-of-service" msgstr "Condizioni di servizio" -#: src/app/main/ui/auth/register.cljs:297 +#: src/app/main/ui/auth/register.cljs msgid "auth.verification-email-sent" msgstr "Abbiamo inviato l'e-mail di verifica a" -#: src/app/main/ui/workspace/libraries.cljs:228 msgid "common.publish" msgstr "Pubblica" -#: src/app/main/ui/viewer/share_link.cljs:304, src/app/main/ui/viewer/share_link.cljs:314 msgid "common.share-link.all-users" msgstr "Tutti gli utenti Penpot" -#: src/app/main/ui/viewer/share_link.cljs:198 msgid "common.share-link.confirm-deletion-link-description" msgstr "" "Sei sicuro di voler eliminare questo link? Se sì, non sarà più disponibile " "per nessuno" -#: src/app/main/ui/viewer/share_link.cljs:259, src/app/main/ui/viewer/share_link.cljs:289 msgid "common.share-link.current-tag" msgstr "(attuale)" -#: src/app/main/ui/viewer/share_link.cljs:207, src/app/main/ui/viewer/share_link.cljs:214 msgid "common.share-link.destroy-link" msgstr "Elimina link" -#: src/app/main/ui/viewer/share_link.cljs:221 msgid "common.share-link.get-link" msgstr "Ottieni link" -#: src/app/main/ui/viewer/share_link.cljs:139 msgid "common.share-link.link-copied-success" msgstr "Link copiato con successo" -#: src/app/main/ui/viewer/share_link.cljs:231 msgid "common.share-link.manage-ops" msgstr "Gestisci permessi" -#: src/app/main/ui/viewer/share_link.cljs:277 msgid "common.share-link.page-shared" msgid_plural "common.share-link.page-shared" msgstr[0] "1 pagina condivisa" msgstr[1] "% di pagine condivise" -#: src/app/main/ui/viewer/share_link.cljs:298 msgid "common.share-link.permissions-can-comment" msgstr "Può commentare" -#: src/app/main/ui/viewer/share_link.cljs:308 msgid "common.share-link.permissions-can-inspect" msgstr "Può ispezionare il codice" -#: src/app/main/ui/viewer/share_link.cljs:193 msgid "common.share-link.permissions-hint" msgstr "Chiunque possieda questo link può accedere" -#: src/app/main/ui/viewer/share_link.cljs:241 msgid "common.share-link.permissions-pages" msgstr "Pagine condivise" -#: src/app/main/ui/viewer/share_link.cljs:183 msgid "common.share-link.placeholder" msgstr "Il codice per condividere apparirà qui" -#: src/app/main/ui/viewer/share_link.cljs:303, src/app/main/ui/viewer/share_link.cljs:313 msgid "common.share-link.team-members" msgstr "Solo i membri del team" -#: src/app/main/ui/viewer/share_link.cljs:171 msgid "common.share-link.title" msgstr "Condividi i prototipi" -#: src/app/main/ui/viewer/share_link.cljs:269 msgid "common.share-link.view-all" msgstr "Seleziona tutto" -#: src/app/main/ui/workspace/libraries.cljs:224 msgid "common.unpublish" msgstr "Spubblica" -#: src/app/main/ui/dashboard/projects.cljs:85 +#: src/app/main/ui/dashboard/projects.cljs msgid "dasboard.team-hero.management" msgstr "Gestisci team" -#: src/app/main/ui/dashboard/projects.cljs:84 +#: src/app/main/ui/dashboard/projects.cljs msgid "dasboard.team-hero.text" msgstr "" "Penpot è studiato per i team. Invita membri per lavorare insieme a file e " "progetti" -#: src/app/main/ui/dashboard/projects.cljs:82 +#: src/app/main/ui/dashboard/projects.cljs msgid "dasboard.team-hero.title" msgstr "Fai squadra!" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.tutorial-hero.info" msgstr "Impara le basi di Penpot divertendoti con questo tutorial pratico." #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.tutorial-hero.start" msgstr "Inizia il tutorial" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.tutorial-hero.title" msgstr "Tutorial pratico" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.walkthrough-hero.info" msgstr "Esplora Penpot e scopri le sue principali funzionalità." #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.walkthrough-hero.start" msgstr "Inizia il tour" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.walkthrough-hero.title" msgstr "Spiegazione dell'interfaccia passo per passo" -#: src/app/main/ui/dashboard/file_menu.cljs:291, src/app/main/ui/workspace/main_menu.cljs:572 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.add-shared" msgstr "Aggiungi una libreria condivisa" -#: src/app/main/ui/settings/profile.cljs:75 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.change-email" msgstr "Cambia indirizzo e-mail" -#: src/app/main/data/dashboard.cljs:762, src/app/main/data/dashboard.cljs:983 +#: src/app/main/data/dashboard.cljs, src/app/main/data/dashboard.cljs msgid "dashboard.copy-suffix" msgstr "(copia)" -#: src/app/main/ui/dashboard/sidebar.cljs:338 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.create-new-team" msgstr "Crea un nuovo team" -#: src/app/main/ui/components/context_menu_a11y.cljs:256, src/app/main/ui/dashboard/sidebar.cljs:646 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.default-team-name" msgstr "Il tuo Penpot" -#: src/app/main/ui/dashboard/sidebar.cljs:571 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.delete-team" msgstr "Elimina team" -#: src/app/main/ui/dashboard/file_menu.cljs:296, src/app/main/ui/workspace/main_menu.cljs:589 msgid "dashboard.download-binary-file" msgstr "Scarica il file Penpot (.penpot)" -#: src/app/main/ui/dashboard/file_menu.cljs:300, src/app/main/ui/workspace/main_menu.cljs:597 msgid "dashboard.download-standard-file" msgstr "Scarica il file standard (.svg + .json)" -#: src/app/main/ui/dashboard/file_menu.cljs:276, src/app/main/ui/dashboard/project_menu.cljs:90 +#: src/app/main/ui/dashboard/project_menu.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.duplicate" msgstr "Duplica" -#: src/app/main/ui/dashboard/file_menu.cljs:240 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.duplicate-multi" msgstr "Duplicare %s file" -#: src/app/main/ui/dashboard/placeholder.cljs:32 -#, markdown +#: src/app/main/ui/dashboard/grid.cljs msgid "dashboard.empty-placeholder-drafts" msgstr "" "Oh no! Non hai ancora nessun file! Se desideri provare alcuni template vai " "su [Librerie e template](https://penpot.app/libraries-templates)" -#: src/app/main/ui/dashboard/file_menu.cljs:249 msgid "dashboard.export-binary-multi" msgstr "Scarica %s file Penpot (.penpot)" -#: src/app/main/ui/workspace/main_menu.cljs:605 msgid "dashboard.export-frames" msgstr "Esportare le tavole da disegno in PDF" -#: src/app/main/ui/export.cljs:201 +#: src/app/main/ui/export.cljs msgid "dashboard.export-frames.title" msgstr "Esporta in PDF" -#, unused msgid "dashboard.export-multi" msgstr "Esportare %s file Penpot" -#: src/app/main/ui/export.cljs:109 +#: src/app/main/ui/export.cljs msgid "dashboard.export-multiple.selected" msgstr "%s di %s elementi selezionati" -#: src/app/main/ui/workspace/main_menu.cljs:578 +#: src/app/main/ui/workspace/header.cljs msgid "dashboard.export-shapes" msgstr "Esporta" -#: src/app/main/ui/export.cljs:180 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.how-to" msgstr "" "Puoi aggiungere dei parametri di esportazione agli elementi accedendo alle " "proprietà del design (in fondo alla barra laterale destra)." -#: src/app/main/ui/export.cljs:184 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.how-to-link" msgstr "Informazioni utili su come configurare l'esportazione in Penpot." -#: src/app/main/ui/export.cljs:179 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.no-elements" msgstr "Non ci sono elementi con parametri di esportazione." -#: src/app/main/ui/export.cljs:190 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.title" msgstr "Esporta selezionati" -#: src/app/main/ui/dashboard/file_menu.cljs:252 msgid "dashboard.export-standard-multi" msgstr "Scarica %s file standard (.svg + .json)" -#: src/app/main/ui/export.cljs:427 msgid "dashboard.export.detail" msgstr "" "* Può includere componenti, elementi grafici, colori e/o elementi " "tipografici." -#: src/app/main/ui/export.cljs:426 msgid "dashboard.export.explain" msgstr "" "Uno o più file che desideri esportare utilizzano librerie condivise. Che " "cosa desideri fare con le loro risorse*?" -#: src/app/main/ui/export.cljs:435 msgid "dashboard.export.options.all.message" msgstr "" "I file con librerie condivise verranno inclusi nell'esportazione, " "mantenendo il loro collegamento." -#: src/app/main/ui/export.cljs:436 msgid "dashboard.export.options.all.title" msgstr "Esporta le librerie condivise" -#: src/app/main/ui/export.cljs:437 msgid "dashboard.export.options.detach.message" msgstr "" "Le librerie condivise non saranno incluse nell'esportazione e nessuna " "risorsa verrà aggiunta alla libreria. " -#: src/app/main/ui/export.cljs:438 msgid "dashboard.export.options.detach.title" msgstr "Considera le risorse delle librerie condivise come oggetti di base" -#: src/app/main/ui/export.cljs:439 msgid "dashboard.export.options.merge.message" msgstr "" "Il tuo file verrà esportato con tutte le risorse esterne riunite nella " "libreria dei file." -#: src/app/main/ui/export.cljs:418 msgid "dashboard.export.title" msgstr "Esporta i file" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:309 msgid "dashboard.fonts.deleted-placeholder" msgstr "Font eliminato" -#: src/app/main/ui/dashboard/fonts.cljs:206 +#: src/app/main/ui/dashboard/fonts.cljs msgid "dashboard.fonts.dismiss-all" msgstr "Chiudere tutto" -#: src/app/main/ui/dashboard/fonts.cljs:436 msgid "dashboard.fonts.empty-placeholder" msgstr "Non hai ancora installato font personalizzati." -#: src/app/main/ui/dashboard/fonts.cljs:194 +#: src/app/main/ui/dashboard/fonts.cljs msgid "dashboard.fonts.fonts-added" msgid_plural "dashboard.fonts.fonts-added" msgstr[0] "1 font aggiunto" msgstr[1] "%s font aggiunti" -#: src/app/main/ui/dashboard/fonts.cljs:170 -#, markdown msgid "dashboard.fonts.hero-text1" msgstr "" "Qualsiasi font web caricato qui verrà aggiunto alla lista dei font family " @@ -432,8 +388,6 @@ msgstr "" "**singolo font family**. È possibile caricare font con i seguenti " "formati:**TTF, OTF e WOFF**(uno solo di questi è necessario)." -#: src/app/main/ui/dashboard/fonts.cljs:182 -#, markdown msgid "dashboard.fonts.hero-text2" msgstr "" "È consigliabile caricare unicamente font di cui si è proprietari o dei " @@ -442,1538 +396,1468 @@ msgstr "" "di Penpot](https://penpot.app/terms.html). Potresti anche voler " "approfondire le [licenze per i font](https://www.typography.com/faq)." -#: src/app/main/ui/dashboard/fonts.cljs:202 +#: src/app/main/ui/dashboard/fonts.cljs msgid "dashboard.fonts.upload-all" msgstr "Carica tutto" -#: src/app/main/ui/dashboard/import.cljs:472, src/app/main/ui/dashboard/project_menu.cljs:108 msgid "dashboard.import" msgstr "Importare file Penpot" -#: src/app/main/ui/dashboard/import.cljs:304, src/app/worker/import.cljs:753, src/app/worker/import.cljs:755 msgid "dashboard.import.analyze-error" msgstr "Ops! Non possiamo importare questo file" -#: src/app/main/ui/dashboard/import.cljs:308 msgid "dashboard.import.import-error" msgstr "" "C'è stato un problema con l'importazione del file. Il file non è stato " "importato." -#: src/app/main/ui/dashboard/import.cljs:493 msgid "dashboard.import.import-message" msgstr "%s file sono stati importati con successo." -#: src/app/main/ui/dashboard/import.cljs:481, src/app/main/ui/dashboard/import.cljs:488 msgid "dashboard.import.import-warning" msgstr "Alcuni file contenenti oggetti non validi sono stati rimossi." -#: src/app/main/ui/dashboard/import.cljs:144 msgid "dashboard.import.progress.process-colors" msgstr "Elaborazione dei colori" -#: src/app/main/ui/dashboard/import.cljs:153 msgid "dashboard.import.progress.process-components" msgstr "Elaborazione dei componenti" -#: src/app/main/ui/dashboard/import.cljs:150 msgid "dashboard.import.progress.process-media" msgstr "Elaborazione dei media" -#: src/app/main/ui/dashboard/import.cljs:141 msgid "dashboard.import.progress.process-page" msgstr "Elaborazione pagina: %s" -#: src/app/main/ui/dashboard/import.cljs:147 msgid "dashboard.import.progress.process-typographies" msgstr "Elaborazione degli elementi tipografici" -#: src/app/main/ui/dashboard/import.cljs:135 msgid "dashboard.import.progress.upload-data" msgstr "Caricamento dei dati sul server (%s/%s)" -#: src/app/main/ui/dashboard/import.cljs:138 msgid "dashboard.import.progress.upload-media" msgstr "Caricamento file: %s" -#: src/app/main/ui/dashboard/team.cljs:109 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.invite-profile" msgstr "Invita nel team" -#: src/app/main/ui/dashboard/sidebar.cljs:547, src/app/main/ui/dashboard/sidebar.cljs:556, src/app/main/ui/dashboard/sidebar.cljs:563, src/app/main/ui/dashboard/team.cljs:312 +#: src/app/main/ui/dashboard/sidebar.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.leave-team" msgstr "Abbandona il team" -#: src/app/main/ui/dashboard/templates.cljs:88, src/app/main/ui/dashboard/templates.cljs:163 msgid "dashboard.libraries-and-templates" msgstr "Librerie e template" -#: src/app/main/ui/dashboard/templates.cljs:164 msgid "dashboard.libraries-and-templates.explore" msgstr "Esplorane di più e scopri come contribuire" -#: src/app/main/ui/dashboard/import.cljs:365 msgid "dashboard.libraries-and-templates.import-error" msgstr "" "Si è verificato un problema nell'importazione del template. Il template non " "è stato importato." -#: src/app/main/ui/dashboard/libraries.cljs:53 +#: src/app/main/ui/dashboard/libraries.cljs msgid "dashboard.libraries-title" msgstr "Librerie condivise" -#: src/app/main/ui/dashboard/placeholder.cljs:45 +#: src/app/main/ui/dashboard/grid.cljs msgid "dashboard.loading-files" msgstr "caricamento dei file …" -#: src/app/main/ui/dashboard/fonts.cljs:431 msgid "dashboard.loading-fonts" msgstr "caricamento dei font …" -#: src/app/main/ui/dashboard/file_menu.cljs:281, src/app/main/ui/dashboard/project_menu.cljs:100 +#: src/app/main/ui/dashboard/project_menu.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.move-to" msgstr "Sposta verso" -#: src/app/main/ui/dashboard/file_menu.cljs:245 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.move-to-multi" msgstr "Sposta %s file verso" -#: src/app/main/ui/dashboard/file_menu.cljs:226 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.move-to-other-team" msgstr "Sposta verso un altro team" -#: src/app/main/ui/dashboard/files.cljs:105, src/app/main/ui/dashboard/projects.cljs:252, src/app/main/ui/dashboard/projects.cljs:253 +#: src/app/main/ui/dashboard/projects.cljs, +#: src/app/main/ui/dashboard/files.cljs msgid "dashboard.new-file" msgstr "+ Nuovo File" -#: src/app/main/data/dashboard.cljs:958, src/app/main/data/dashboard.cljs:1181 +#: src/app/main/data/dashboard.cljs msgid "dashboard.new-file-prefix" msgstr "Nuovo File" -#: src/app/main/ui/dashboard/projects.cljs:55 +#: src/app/main/ui/dashboard/projects.cljs msgid "dashboard.new-project" msgstr "+ Nuovo progetto" -#: src/app/main/data/dashboard.cljs:726, src/app/main/data/dashboard.cljs:1184 +#: src/app/main/data/dashboard.cljs msgid "dashboard.new-project-prefix" msgstr "Nuovo progetto" -#: src/app/main/ui/dashboard/search.cljs:60 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.no-matches-for" msgstr "Nessuna corrispondenza trovata per \"%s\"" -#: src/app/main/ui/dashboard/sidebar.cljs:827 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.no-projects-placeholder" msgstr "I progetti appuntati appariranno qui" -#: src/app/main/ui/auth/verify_token.cljs:33 +#: src/app/main/ui/auth/verify_token.cljs msgid "dashboard.notifications.email-changed-successfully" msgstr "Il tuo indirizzo e-mail è stato aggiornato con successo" -#: src/app/main/ui/auth/verify_token.cljs:27 +#: src/app/main/ui/auth/verify_token.cljs msgid "dashboard.notifications.email-verified-successfully" msgstr "Il tuo indirizzo e-mail è stato verificato con successo" -#: src/app/main/ui/settings/password.cljs:37 +#: src/app/main/ui/settings/password.cljs msgid "dashboard.notifications.password-saved" msgstr "La password è stata salvata con successo!" -#: src/app/main/ui/dashboard/team.cljs:1081 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.num-of-members" msgstr "%s membri" -#: src/app/main/ui/dashboard/file_menu.cljs:267 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.open-in-new-tab" msgstr "Apri file in una nuova scheda" -#: src/app/main/ui/dashboard/files.cljs:117, src/app/main/ui/dashboard/projects.cljs:260, src/app/main/ui/dashboard/projects.cljs:261 msgid "dashboard.options" msgstr "Opzioni" -#: src/app/main/ui/settings/password.cljs:106, src/app/main/ui/settings/password.cljs:119 +#: src/app/main/ui/settings/password.cljs msgid "dashboard.password-change" msgstr "Cambia password" -#: src/app/main/ui/dashboard/pin_button.cljs:24, src/app/main/ui/dashboard/project_menu.cljs:95 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.pin-unpin" msgstr "Appunta/Rimuovi" -#: src/app/main/ui/dashboard/projects.cljs:51 +#: src/app/main/ui/dashboard/projects.cljs msgid "dashboard.projects-title" msgstr "Progetti" -#: src/app/main/ui/settings/profile.cljs:86 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.remove-account" msgstr "Desideri eliminare il tuo account?" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.remove-shared" msgstr "Elimina come Libreria Condivisa" -#: src/app/main/ui/settings/profile.cljs:78 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.save-settings" msgstr "Salva impostazioni" -#: src/app/main/ui/dashboard/sidebar.cljs:246, src/app/main/ui/dashboard/sidebar.cljs:247 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.search-placeholder" msgstr "Cerca …" -#: src/app/main/ui/dashboard/search.cljs:55 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.searching-for" msgstr "Ricerca di \"%s\"…" -#: src/app/main/ui/settings/options.cljs:56 +#: src/app/main/ui/settings/options.cljs msgid "dashboard.select-ui-language" msgstr "Seleziona la lingua per l'interfaccia utente" -#: src/app/main/ui/settings/options.cljs:63 +#: src/app/main/ui/settings/options.cljs msgid "dashboard.select-ui-theme" msgstr "Seleziona un tema" -#: src/app/main/ui/dashboard/projects.cljs:282 +#: src/app/main/ui/dashboard/grid.cljs msgid "dashboard.show-all-files" msgstr "Mostra tutti i file" -#: src/app/main/ui/dashboard/file_menu.cljs:96 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-delete-file" msgstr "Il tuo file è stato eliminato con successo" -#: src/app/main/ui/dashboard/project_menu.cljs:59 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.success-delete-project" msgstr "Il tuo progetto è stato eliminato con successo" -#: src/app/main/ui/dashboard/file_menu.cljs:91 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-duplicate-file" msgstr "Il tuo file è stato duplicato con successo" -#: src/app/main/ui/dashboard/project_menu.cljs:33 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.success-duplicate-project" msgstr "Il tuo progetto è stato duplicato con successo" -#: src/app/main/ui/dashboard/file_menu.cljs:130, src/app/main/ui/dashboard/grid.cljs:558, src/app/main/ui/dashboard/sidebar.cljs:152 +#: src/app/main/ui/dashboard/grid.cljs, src/app/main/ui/dashboard/sidebar.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-move-file" msgstr "Il tuo file è stato spostato con successo" -#: src/app/main/ui/dashboard/file_menu.cljs:129 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-move-files" msgstr "I tuoi file sono stati spostati con successo" -#: src/app/main/ui/dashboard/project_menu.cljs:54 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.success-move-project" msgstr "Il tuo progetto è stato spostato con successo" -#: src/app/main/ui/dashboard/team.cljs:1052 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.team-info" msgstr "Informazioni sul team" -#: src/app/main/ui/dashboard/team.cljs:1070 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.team-members" msgstr "Membri del team" -#: src/app/main/ui/dashboard/team.cljs:1085 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.team-projects" msgstr "Progetti del team" -#: src/app/main/ui/settings/options.cljs:61 +#: src/app/main/ui/settings/options.cljs msgid "dashboard.theme-change" msgstr "Tema dell'interfaccia utente" -#: src/app/main/ui/dashboard/search.cljs:42 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.title-search" msgstr "Risultati della ricerca" -#: src/app/main/ui/dashboard/search.cljs:50 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.type-something" msgstr "Scrivi per cercare" -#: src/app/main/ui/dashboard/file_menu.cljs:287, src/app/main/ui/workspace/main_menu.cljs:566 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.unpublish-shared" msgstr "Spubblicare la libreria" -#: src/app/main/ui/settings/options.cljs:71 +#: src/app/main/ui/settings/password.cljs, +#: src/app/main/ui/settings/options.cljs msgid "dashboard.update-settings" msgstr "Aggiorna le impostazioni" -#: src/app/main/ui/settings.cljs:31 +#: src/app/main/ui/settings.cljs msgid "dashboard.your-account-title" msgstr "Il tuo account" -#: src/app/main/ui/settings/profile.cljs:70 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.your-email" msgstr "E-mail" -#: src/app/main/ui/settings/profile.cljs:62 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.your-name" msgstr "Il tuo nome" -#: src/app/main/ui/dashboard/file_menu.cljs:38, src/app/main/ui/dashboard/fonts.cljs:33, src/app/main/ui/dashboard/libraries.cljs:42, src/app/main/ui/dashboard/projects.cljs:318, src/app/main/ui/dashboard/search.cljs:30, src/app/main/ui/dashboard/sidebar.cljs:312, src/app/main/ui/dashboard/team.cljs:495, src/app/main/ui/dashboard/team.cljs:729, src/app/main/ui/dashboard/team.cljs:991, src/app/main/ui/dashboard/team.cljs:1038 +#: src/app/main/ui/dashboard/search.cljs, src/app/main/ui/dashboard/team.cljs, +#: src/app/main/ui/dashboard/libraries.cljs, +#: src/app/main/ui/dashboard/projects.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.your-penpot" msgstr "Il tuo Penpot" -#: src/app/main/ui/alert.cljs:32 +#: src/app/main/ui/alert.cljs msgid "ds.alert-ok" msgstr "Ok" -#: src/app/main/ui/alert.cljs:31, src/app/main/ui/alert.cljs:34 +#: src/app/main/ui/alert.cljs msgid "ds.alert-title" msgstr "Attenzione" -#: src/app/main/ui/confirm.cljs:83 +#: src/app/main/ui/confirm.cljs msgid "ds.component-subtitle" msgstr "Componenti da aggiornare:" -#: src/app/main/ui/confirm.cljs:36, src/app/main/ui/workspace/plugins.cljs:246 +#: src/app/main/ui/confirm.cljs msgid "ds.confirm-cancel" msgstr "Annulla" -#: src/app/main/ui/confirm.cljs:37, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:141 +#: src/app/main/ui/confirm.cljs msgid "ds.confirm-ok" msgstr "Ok" -#: src/app/main/ui/confirm.cljs:35, src/app/main/ui/confirm.cljs:39 +#: src/app/main/ui/confirm.cljs, src/app/main/ui/confirm.cljs msgid "ds.confirm-title" msgstr "Sei sicuro?" -#: src/app/main/ui/auth/login.cljs:62 +#: src/app/main/ui/auth/login.cljs msgid "errors.auth-provider-not-configured" msgstr "Provider di autenticazione non configurato." -#: src/app/main/errors.cljs:104 msgid "errors.auth.unable-to-login" msgstr "Sembra che tu non ti sia autenticato o che la sessione sia scaduta." -#: src/app/main/data/workspace.cljs:1598 +#: src/app/main/data/workspace.cljs msgid "errors.clipboard-not-implemented" msgstr "Il tuo browser non può effettuare questa operazione" -#: src/app/main/ui/auth/verify_token.cljs:82, src/app/main/ui/settings/change_email.cljs:46 +#: src/app/main/ui/auth/verify_token.cljs, +#: src/app/main/ui/settings/change_email.cljs msgid "errors.email-already-exists" msgstr "Indirizzo e-mail già utilizzato" -#: src/app/main/ui/auth/verify_token.cljs:87 +#: src/app/main/ui/auth/verify_token.cljs msgid "errors.email-already-validated" msgstr "Indirizzo e-mail già convalidato." -#: src/app/main/ui/settings/password.cljs:28 msgid "errors.email-as-password" msgstr "Non è possibile utilizzare il tuo indirizzo e-mail come password" -#: src/app/main/ui/settings/change_email.cljs:35 +#: src/app/main/ui/settings/change_email.cljs msgid "errors.email-invalid-confirmation" msgstr "L'indirizzo e-mail di conferma deve corrispondere" -#: src/app/main/ui/dashboard/team.cljs:170 msgid "errors.email-spam-or-permanent-bounces" msgstr "L'e-mail \"%s\" è stata riportata come spam o respinta in modo permanente." -#: src/app/main/data/users.cljs:709, src/app/main/ui/auth/login.cljs:65, src/app/main/ui/auth/login.cljs:116, src/app/main/ui/auth/register.cljs:69, src/app/main/ui/auth/register.cljs:237, src/app/main/ui/auth/verify_token.cljs:92, src/app/main/ui/dashboard/team.cljs:173, src/app/main/ui/onboarding/team_choice.cljs:95, src/app/main/ui/settings/access_tokens.cljs:91, src/app/main/ui/settings/feedback.cljs:52 +#: src/app/main/ui/auth/verify_token.cljs, +#: src/app/main/ui/settings/feedback.cljs, src/app/main/ui/dashboard/team.cljs msgid "errors.generic" msgstr "Si è verificato un problema." -#: src/app/main/ui/components/color_input.cljs:57 +#: src/app/main/ui/components/color_input.cljs msgid "errors.invalid-color" msgstr "Colore non valido" -#: src/app/main/ui/static.cljs:43 +#: src/app/main/ui/auth/verify_token.cljs msgid "errors.invite-invalid" msgstr "Invito non valido" -#: src/app/main/ui/static.cljs:44 msgid "errors.invite-invalid.info" msgstr "Questo è invito può essere stato revocato o può essere scaduto." -#: src/app/main/ui/auth/login.cljs:101 +#: src/app/main/ui/auth/login.cljs msgid "errors.ldap-disabled" msgstr "Autenticazione LDAP disattivata." -#: src/app/main/data/workspace/media.cljs:184 +#: src/app/main/data/workspace/persistence.cljs msgid "errors.media-too-large" msgstr "L'immagine è troppo grande (deve essere inferiore a 5MB)." -#: src/app/main/data/media.cljs:68, src/app/main/data/workspace/media.cljs:187 +#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs msgid "errors.media-type-mismatch" msgstr "" "Sembra che il contenuto dell'immagine non corrisponda all'estensione del " "file." -#: src/app/main/data/media.cljs:65, src/app/main/data/workspace/media.cljs:172, src/app/main/data/workspace/media.cljs:175, src/app/main/data/workspace/media.cljs:178, src/app/main/data/workspace/media.cljs:181 +#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs msgid "errors.media-type-not-allowed" msgstr "L'immagine non sembra valida." -#: src/app/main/ui/settings/password.cljs:61 +#: src/app/main/ui/settings/password.cljs msgid "errors.password-invalid-confirmation" msgstr "La password di conferma deve corrispondere" -#: src/app/main/ui/settings/password.cljs:64 +#: src/app/main/ui/settings/password.cljs msgid "errors.password-too-short" msgstr "La password deve contenere almeno 8 caratteri" -#: src/app/main/data/users.cljs:701, src/app/main/ui/auth/register.cljs:60 +#: src/app/main/ui/auth/register.cljs msgid "errors.registration-disabled" msgstr "La registrazione è al momento disattivata." -#: src/app/main/ui/dashboard/sidebar.cljs:365, src/app/main/ui/dashboard/team.cljs:359 msgid "errors.team-leave.insufficient-members" msgstr "" "Il numero di membri non è sufficiente per abbandonare il team. Vuoi " "probabilmente eliminare il team." -#: src/app/main/ui/dashboard/sidebar.cljs:368, src/app/main/ui/dashboard/team.cljs:362 msgid "errors.team-leave.member-does-not-exists" msgstr "Il membro che stai provando ad assegnare non esiste." -#: src/app/main/ui/dashboard/sidebar.cljs:371, src/app/main/ui/dashboard/team.cljs:365 msgid "errors.team-leave.owner-cant-leave" msgstr "" "Il proprietario non può abbandonare il team. Devi riassegnare il ruolo di " "proprietario." -#: src/app/main/data/media.cljs:71 +#: src/app/main/data/media.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, +#: src/app/main/ui/inspect/exports.cljs msgid "errors.unexpected-error" msgstr "Si è verificato un errore inaspettato." -#: src/app/main/ui/auth/verify_token.cljs:60 +#: src/app/main/ui/auth/verify_token.cljs msgid "errors.unexpected-token" msgstr "Token sconosciuto" -#: src/app/main/ui/auth/login.cljs:109, src/app/main/ui/auth/login.cljs:113 +#: src/app/main/ui/auth/login.cljs msgid "errors.wrong-credentials" msgstr "Il nome utente o la password sembrano essere sbagliati." -#: src/app/main/ui/settings/password.cljs:25 +#: src/app/main/ui/settings/password.cljs msgid "errors.wrong-old-password" msgstr "La password precedente non è corretta" -#: src/app/main/ui/settings/feedback.cljs:77 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.description" msgstr "Descrizione" -#: src/app/main/ui/settings/feedback.cljs:95 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.discourse-go-to" msgstr "Vai al forum Penpot" -#: src/app/main/ui/settings/feedback.cljs:89 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.discourse-subtitle1" msgstr "" "Siamo felici di averti qui. Se hai bisogno di aiuto, fai una ricerca prima " "di postare una richiesta." -#: src/app/main/ui/settings/feedback.cljs:88 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.discourse-title" msgstr "Community di Penpot" -#: src/app/main/ui/settings/feedback.cljs:72 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.subject" msgstr "Soggetto" -#: src/app/main/ui/settings/feedback.cljs:69 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.subtitle" msgstr "" "Descrivi per favore il motivo della tua e-mail, specificando se si tratta " "di un problema, di un'idea oppure di un dubbio. Un membro del nostro team " "ti risponderà il prima possibile." -#: src/app/main/ui/settings/feedback.cljs:68 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.title" msgstr "E-mail" -#: src/app/main/ui/settings/feedback.cljs:105 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.twitter-go-to" msgstr "Vai su X" -#: src/app/main/ui/settings/feedback.cljs:99 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.twitter-subtitle1" msgstr "Siamo qui per aiutarti con le tue domande tecniche." -#: src/app/main/ui/settings/feedback.cljs:98 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.twitter-title" msgstr "Account di supporto X" -#: src/app/main/ui/settings/password.cljs:30 +#: src/app/main/ui/settings/password.cljs msgid "generic.error" msgstr "Si è verificato un errore" -#: src/app/main/ui/viewer/inspect/attributes/blur.cljs:26 +#: src/app/main/ui/inspect/attributes/blur.cljs msgid "inspect.attributes.blur" msgstr "Sfumatura" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:115 +#: src/app/main/ui/inspect/attributes/blur.cljs msgid "inspect.attributes.blur.value" msgstr "Valore" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:112 +#: src/app/main/ui/inspect/attributes/common.cljs msgid "inspect.attributes.color.hex" msgstr "HEX" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:114 +#: src/app/main/ui/inspect/attributes/common.cljs msgid "inspect.attributes.color.hsla" msgstr "HSLA" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:113 +#: src/app/main/ui/inspect/attributes/common.cljs msgid "inspect.attributes.color.rgba" msgstr "RGBA" -#: src/app/main/ui/viewer/inspect/attributes/fill.cljs:57 +#: src/app/main/ui/inspect/attributes/fill.cljs msgid "inspect.attributes.fill" msgstr "Riempire" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:99, src/app/main/ui/viewer/inspect/attributes/image.cljs:51 +#: src/app/main/ui/inspect/attributes/image.cljs msgid "inspect.attributes.image.download" msgstr "Scaricare l'immagine sorgente" -#: src/app/main/ui/viewer/inspect/attributes/image.cljs:39 +#: src/app/main/ui/inspect/attributes/image.cljs msgid "inspect.attributes.image.height" msgstr "Altezza" -#: src/app/main/ui/viewer/inspect/attributes/image.cljs:32 +#: src/app/main/ui/inspect/attributes/image.cljs msgid "inspect.attributes.image.width" msgstr "Larghezza" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout" msgstr "Disposizione" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.height" msgstr "Altezza" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.left" msgstr "Sinistra" -#: src/app/main/ui/inspect/attributes/layout.cljs, src/app/main/ui/inspect/attributes/layout.cljs -#, unused +#: src/app/main/ui/inspect/attributes/layout.cljs, +#: src/app/main/ui/inspect/attributes/layout.cljs msgid "inspect.attributes.layout.radius" msgstr "Raggio" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.rotation" msgstr "Rotazione" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.top" msgstr "In alto" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.width" msgstr "Larghezza" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:57 +#: src/app/main/ui/inspect/attributes/shadow.cljs msgid "inspect.attributes.shadow" msgstr "Ombra" -#: src/app/main/ui/viewer/inspect/attributes/stroke.cljs:52 +#: src/app/main/ui/inspect/attributes/stroke.cljs msgid "inspect.attributes.stroke" msgstr "Contorno" -#, permanent, unused msgid "inspect.attributes.stroke.alignment.center" msgstr "Centro" -#, permanent, unused msgid "inspect.attributes.stroke.alignment.inner" msgstr "Interno" -#, permanent, unused msgid "inspect.attributes.stroke.alignment.outer" msgstr "Esterno" -#, unused msgid "inspect.attributes.stroke.style.dotted" msgstr "Tratteggiato" -#, unused msgid "inspect.attributes.stroke.style.mixed" msgstr "Misto" -#, unused msgid "inspect.attributes.stroke.style.none" msgstr "Nessuno" -#, unused msgid "inspect.attributes.stroke.style.solid" msgstr "Solido" #: src/app/main/ui/inspect/attributes/stroke.cljs -#, unused msgid "inspect.attributes.stroke.width" msgstr "Larghezza" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:81, src/app/main/ui/viewer/inspect/attributes/text.cljs:194 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography" msgstr "Tipografia" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:89 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.font-family" msgstr "Font Family" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:107 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.font-size" msgstr "Dimensione del carattere" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:98 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.font-style" msgstr "Stile del carattere" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:134 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.letter-spacing" msgstr "Spaziatura delle lettere" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:125 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.line-height" msgstr "Altezza Linea" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:143 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.text-decoration" msgstr "Decorazioni testo" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:145 msgid "inspect.attributes.typography.text-decoration.none" msgstr "Nessuno" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:146 msgid "inspect.attributes.typography.text-decoration.strikethrough" msgstr "Barrato" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:147 msgid "inspect.attributes.typography.text-decoration.underline" msgstr "Sottolineato" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:156 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.text-transform" msgstr "Trasforma Testo" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:158 msgid "inspect.attributes.typography.text-transform.lowercase" msgstr "Minuscolo" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:159 msgid "inspect.attributes.typography.text-transform.none" msgstr "Nessuno" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:160 msgid "inspect.attributes.typography.text-transform.titlecase" msgstr "Prime lettere maiuscole" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:161 msgid "inspect.attributes.typography.text-transform.uppercase" msgstr "Maiuscolo" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:125 +#: src/app/main/ui/inspect/right_sidebar.cljs msgid "inspect.tabs.code" msgstr "Codice" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:98 msgid "inspect.tabs.code.selected.circle" msgstr "Cerchio" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:99 msgid "inspect.tabs.code.selected.component" msgstr "Componente" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:100 msgid "inspect.tabs.code.selected.curve" msgstr "Curvo" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:102 msgid "inspect.tabs.code.selected.group" msgstr "Raggruppa" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:103 msgid "inspect.tabs.code.selected.image" msgstr "Immagine" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:104 msgid "inspect.tabs.code.selected.mask" msgstr "Maschera" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:93 +#: src/app/main/ui/inspect/right_sidebar.cljs msgid "inspect.tabs.code.selected.multiple" msgstr "%s selezionati" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:105 msgid "inspect.tabs.code.selected.path" msgstr "Tracciato" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:106 msgid "inspect.tabs.code.selected.rect" msgstr "Rettangolo" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:107 msgid "inspect.tabs.code.selected.svg-raw" msgstr "SVG" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:108 msgid "inspect.tabs.code.selected.text" msgstr "Testo" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:115 +#: src/app/main/ui/inspect/right_sidebar.cljs msgid "inspect.tabs.info" msgstr "Informazione" -#: src/app/main/ui/workspace/main_menu.cljs:158 +#: src/app/main/ui/workspace/header.cljs msgid "label.shortcuts" msgstr "Scorciatoie" -#: src/app/main/ui/dashboard/import.cljs:527 msgid "labels.accept" msgstr "Accettare" -#: src/app/main/ui/dashboard/fonts.cljs:175 msgid "labels.add-custom-font" msgstr "Aggiungere un carattere personalizzato" -#: src/app/main/ui/dashboard/team.cljs:120, src/app/main/ui/dashboard/team.cljs:276, src/app/main/ui/dashboard/team.cljs:519, src/app/main/ui/dashboard/team.cljs:549, src/app/main/ui/onboarding/team_choice.cljs:67 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs msgid "labels.admin" msgstr "Amministratore" #: src/app/main/ui/workspace/comments.cljs -#, unused msgid "labels.all" msgstr "Tutti" -#: src/app/main/ui/auth.cljs:37 msgid "labels.and" msgstr "e" -#: src/app/main/ui/onboarding/team_choice.cljs:162 msgid "labels.back" msgstr "Indietro" -#: src/app/main/ui/static.cljs:59 +#: src/app/main/ui/static.cljs msgid "labels.bad-gateway.desc-message" msgstr "" "Sembra che tu debba aspettare un po' e riprovare; stiamo eseguendo dei " "piccoli lavori di manutenzione sui nostri server." -#: src/app/main/ui/static.cljs:58 +#: src/app/main/ui/static.cljs msgid "labels.bad-gateway.main-message" msgstr "Gateway non corretto" -#: src/app/main/data/common.cljs:112, src/app/main/ui/dashboard/change_owner.cljs:69, src/app/main/ui/dashboard/import.cljs:514, src/app/main/ui/dashboard/team.cljs:868, src/app/main/ui/delete_shared.cljs:35, src/app/main/ui/export.cljs:164, src/app/main/ui/export.cljs:460, src/app/main/ui/settings/access_tokens.cljs:188, src/app/main/ui/viewer/share_link.cljs:203, src/app/main/ui/workspace/sidebar/assets/groups.cljs:149 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.cancel" msgstr "Annulla" -#: src/app/main/ui/dashboard/projects.cljs:93, src/app/main/ui/export.cljs:478, src/app/main/ui/settings/access_tokens.cljs:183, src/app/main/ui/viewer/login.cljs:77, src/app/main/ui/viewer/share_link.cljs:174, src/app/main/ui/workspace/libraries.cljs:522 msgid "labels.close" msgstr "Chiudere" -#: src/app/main/ui/dashboard/comments.cljs:104, src/app/main/ui/viewer/comments.cljs:70, src/app/main/ui/workspace/comments.cljs:126 +#: src/app/main/ui/dashboard/comments.cljs msgid "labels.comments" msgstr "Commenti" -#: src/app/main/ui/dashboard/sidebar.cljs:985, src/app/main/ui/workspace/main_menu.cljs:110 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.community" msgstr "Community" -#: src/app/main/ui/settings/password.cljs:103 +#: src/app/main/ui/settings/password.cljs msgid "labels.confirm-password" msgstr "Conferma la password" -#: src/app/main/ui/dashboard/import.cljs:520, src/app/main/ui/export.cljs:465, src/app/main/ui/onboarding/newsletter.cljs:101 msgid "labels.continue" msgstr "Continua" -#, unused msgid "labels.continue-with" msgstr "Continua con" -#: src/app/main/ui/viewer/login.cljs:75 msgid "labels.continue-with-penpot" msgstr "Puoi continuare con un account Penpot" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:157, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:190 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "labels.create" msgstr "Crea" -#: src/app/main/ui/dashboard/team_form.cljs:101, src/app/main/ui/dashboard/team_form.cljs:121 +#: src/app/main/ui/dashboard/team_form.cljs, +#: src/app/main/ui/dashboard/team_form.cljs msgid "labels.create-team" msgstr "Crea un nuovo team" -#: src/app/main/ui/dashboard/team_form.cljs:113 +#: src/app/main/ui/dashboard/team_form.cljs msgid "labels.create-team.placeholder" msgstr "Inserisci il nome del nuovo team" -#, unused msgid "labels.custom-fonts" msgstr "Font personalizzati" -#: src/app/main/ui/settings/sidebar.cljs:73 +#: src/app/main/ui/settings/sidebar.cljs msgid "labels.dashboard" msgstr "Dashboard" -#: src/app/main/ui/dashboard/file_menu.cljs:306, src/app/main/ui/dashboard/fonts.cljs:255, src/app/main/ui/dashboard/fonts.cljs:332, src/app/main/ui/dashboard/fonts.cljs:346, src/app/main/ui/dashboard/project_menu.cljs:115, src/app/main/ui/dashboard/team.cljs:904, src/app/main/ui/settings/access_tokens.cljs:209, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:209 +#: src/app/main/ui/dashboard/project_menu.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.delete" msgstr "Eliminare" -#: src/app/main/ui/comments.cljs:357 +#: src/app/main/ui/comments.cljs msgid "labels.delete-comment" msgstr "Eliminare il commento" -#: src/app/main/ui/comments.cljs:354 +#: src/app/main/ui/comments.cljs msgid "labels.delete-comment-thread" msgstr "Eliminare il thread" -#: src/app/main/ui/dashboard/team.cljs:648 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.delete-invitation" msgstr "Eliminare l'invito" -#: src/app/main/ui/dashboard/file_menu.cljs:262 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.delete-multi-files" msgstr "Eliminare %s file" -#: src/app/main/ui/dashboard/file_menu.cljs:28, src/app/main/ui/dashboard/files.cljs:72, src/app/main/ui/dashboard/files.cljs:156, src/app/main/ui/dashboard/projects.cljs:220, src/app/main/ui/dashboard/projects.cljs:224, src/app/main/ui/dashboard/sidebar.cljs:791 +#: src/app/main/ui/dashboard/projects.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs, +#: src/app/main/ui/dashboard/files.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.drafts" msgstr "Bozze" -#: src/app/main/ui/comments.cljs:350, src/app/main/ui/dashboard/fonts.cljs:252, src/app/main/ui/dashboard/team.cljs:902, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:205 +#: src/app/main/ui/comments.cljs msgid "labels.edit" msgstr "Modificare" -#, unused msgid "labels.edit-file" msgstr "Modificare il file" -#: src/app/main/ui/dashboard/team.cljs:118, src/app/main/ui/dashboard/team.cljs:279, src/app/main/ui/dashboard/team.cljs:520, src/app/main/ui/dashboard/team.cljs:553, src/app/main/ui/onboarding/team_choice.cljs:66 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs msgid "labels.editor" msgstr "Redattore" -#: src/app/main/ui/dashboard/team.cljs:661 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.expired-invitation" msgstr "Scaduto" -#: src/app/main/ui/export.cljs:173 msgid "labels.export" msgstr "Esportare" -#: src/app/main/ui/settings/feedback.cljs:51 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.feedback-disabled" msgstr "Feedback disabilitato" -#: src/app/main/ui/settings/feedback.cljs:42 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.feedback-sent" msgstr "Feedback inviato" -#: src/app/main/ui/dashboard/fonts.cljs:412 msgid "labels.font-family" msgstr "Font Family" -#, unused msgid "labels.font-providers" msgstr "Fornitori di font" -#: src/app/main/ui/dashboard/fonts.cljs:413 msgid "labels.font-variants" msgstr "Stili" -#: src/app/main/ui/dashboard/fonts.cljs:52, src/app/main/ui/dashboard/sidebar.cljs:811 msgid "labels.fonts" msgstr "Font" -#: src/app/main/ui/dashboard/sidebar.cljs:1015, src/app/main/ui/workspace/main_menu.cljs:142 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.github-repo" msgstr "Repository Github" -#: src/app/main/ui/dashboard/sidebar.cljs:1032, src/app/main/ui/settings/sidebar.cljs:113, src/app/main/ui/workspace/main_menu.cljs:171 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/settings/sidebar.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.give-feedback" msgstr "Dai la tua opinione" -#: src/app/main/ui/auth/recovery_request.cljs:110, src/app/main/ui/auth/register.cljs:285, src/app/main/ui/viewer/login.cljs:117 msgid "labels.go-back" msgstr "Torna indietro" -#: src/app/main/ui/dashboard/sidebar.cljs:978, src/app/main/ui/workspace/main_menu.cljs:102 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.help-center" msgstr "Supporto" -#: src/app/main/ui/viewer/comments.cljs:103, src/app/main/ui/workspace/comments.cljs:67 +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs msgid "labels.hide-resolved-comments" msgstr "Non mostrare i commenti risolti" -#: src/app/main/ui/dashboard/fonts.cljs:410 msgid "labels.installed-fonts" msgstr "Font installati" -#: src/app/main/ui/static.cljs:144 +#: src/app/main/ui/static.cljs msgid "labels.internal-error.desc-message" msgstr "" "Si è verificato un problema. Ritenta l'operazione, se il problema persiste " "contatta il supporto." -#: src/app/main/ui/static.cljs:143 +#: src/app/main/ui/static.cljs msgid "labels.internal-error.main-message" msgstr "Errore interno" -#: src/app/main/ui/dashboard/sidebar.cljs:516, src/app/main/ui/dashboard/team.cljs:89, src/app/main/ui/dashboard/team.cljs:97, src/app/main/ui/dashboard/team.cljs:708 +#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.invitations" msgstr "Inviti" -#: src/app/main/ui/settings/options.cljs:51 +#: src/app/main/ui/settings/options.cljs msgid "labels.language" msgstr "Lingua" -#: src/app/main/ui/dashboard/sidebar.cljs:1008, src/app/main/ui/workspace/main_menu.cljs:134 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.libraries-and-templates" msgstr "Librerie e template" -#: src/app/main/ui/viewer/header.cljs:203 msgid "labels.log-or-sign" msgstr "Connettiti o iscriviti" -#: src/app/main/ui/dashboard/sidebar.cljs:1040 +#: src/app/main/ui/settings.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.logout" msgstr "Disconnetti" -#: src/app/main/ui/dashboard/team.cljs:468 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.member" msgstr "Membro" -#: src/app/main/ui/dashboard/sidebar.cljs:510, src/app/main/ui/dashboard/team.cljs:87, src/app/main/ui/dashboard/team.cljs:95 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.members" msgstr "Membri" -#: src/app/main/ui/settings/password.cljs:96 +#: src/app/main/ui/settings/password.cljs msgid "labels.new-password" msgstr "Nuova password" -#: src/app/main/ui/dashboard/comments.cljs:128, src/app/main/ui/workspace/comments.cljs:161 +#: src/app/main/ui/workspace/comments.cljs, +#: src/app/main/ui/dashboard/comments.cljs msgid "labels.no-comments-available" msgstr "Non ci sono notifiche di commenti in attesa" -#: src/app/main/ui/dashboard/team.cljs:694 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.no-invitations" msgstr "Non ci sono inviti." -#: src/app/main/ui/dashboard/team.cljs:696 -#, markdown +#: src/app/main/ui/dashboard/team.cljs msgid "labels.no-invitations-hint" msgstr "" "Premi il pulsante \"Invita nel team\" per invitare altri membri in questo " "team." -#: src/app/main/ui/static.cljs:50 +#: src/app/main/ui/static.cljs msgid "labels.not-found.desc-message" msgstr "Questa pagina non esiste oppure non hai i permessi necessari per accedervi." -#: src/app/main/ui/static.cljs:49 +#: src/app/main/ui/static.cljs msgid "labels.not-found.main-message" msgstr "Ops!" -#: src/app/main/ui/dashboard/projects.cljs:239, src/app/main/ui/dashboard/team.cljs:1095 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.num-of-files" msgid_plural "labels.num-of-files" msgstr[0] "1 file" msgstr[1] "%s file" -#: src/app/main/ui/dashboard/team.cljs:1090 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.num-of-projects" msgid_plural "labels.num-of-projects" msgstr[0] "1 progetto" msgstr[1] "%s progetti" -#: src/app/main/ui/settings/password.cljs:89 +#: src/app/main/ui/settings/password.cljs msgid "labels.old-password" msgstr "Vecchia password" #: src/app/main/ui/workspace/comments.cljs -#, unused msgid "labels.only-yours" msgstr "Solo tuoi" -#, unused msgid "labels.or" msgstr "oppure" -#: src/app/main/ui/dashboard/team.cljs:286, src/app/main/ui/dashboard/team.cljs:518, src/app/main/ui/dashboard/team.cljs:1076 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs msgid "labels.owner" msgstr "Proprietario" -#: src/app/main/ui/settings/sidebar.cljs:87 +#: src/app/main/ui/settings/sidebar.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.password" msgstr "Password" -#: src/app/main/ui/dashboard/team.cljs:662 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.pending-invitation" msgstr "In attesa" -#: src/app/main/ui/settings/profile.cljs:118, src/app/main/ui/settings/sidebar.cljs:82 +#: src/app/main/ui/settings/sidebar.cljs msgid "labels.profile" msgstr "Profilo" -#: src/app/main/ui/dashboard/sidebar.cljs:784 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.projects" msgstr "Progetti" -#: src/app/main/ui/dashboard/sidebar.cljs:998, src/app/main/ui/settings/sidebar.cljs:106, src/app/main/ui/workspace/main_menu.cljs:126 +#: src/app/main/ui/settings/sidebar.cljs msgid "labels.release-notes" msgstr "Note di versione" -#: src/app/main/ui/workspace/libraries.cljs, src/app/main/ui/dashboard/team.cljs -#, unused +#: src/app/main/ui/workspace/libraries.cljs, +#: src/app/main/ui/dashboard/team.cljs msgid "labels.remove" msgstr "Rimuovere" -#: src/app/main/ui/dashboard/team.cljs:316 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.remove-member" msgstr "Rimuovi membro" -#: src/app/main/ui/dashboard/file_menu.cljs:271, src/app/main/ui/dashboard/project_menu.cljs:85, src/app/main/ui/dashboard/sidebar.cljs:539, src/app/main/ui/workspace/sidebar/assets/groups.cljs:157 +#: src/app/main/ui/dashboard/sidebar.cljs, +#: src/app/main/ui/dashboard/project_menu.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.rename" msgstr "Rinominare" -#: src/app/main/ui/dashboard/team_form.cljs:99 +#: src/app/main/ui/dashboard/team_form.cljs msgid "labels.rename-team" msgstr "Rinominare il team" -#: src/app/main/ui/dashboard/team.cljs:645 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.resend-invitation" msgstr "Invia di nuovo l'invito" -#: src/app/main/ui/static.cljs:61, src/app/main/ui/static.cljs:70, src/app/main/ui/static.cljs:148 +#: src/app/main/ui/static.cljs, src/app/main/ui/static.cljs msgid "labels.retry" msgstr "Riprova" -#: src/app/main/ui/dashboard/team.cljs:469, src/app/main/ui/dashboard/team.cljs:709 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.role" msgstr "Ruolo" -#: src/app/main/ui/dashboard/fonts.cljs:380, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:191 msgid "labels.save" msgstr "Salvare" -#: src/app/main/ui/dashboard/fonts.cljs:415 msgid "labels.search-font" msgstr "Cerca un font" -#: src/app/main/ui/settings/feedback.cljs:82 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.send" msgstr "Inviare" -#: src/app/main/ui/settings/feedback.cljs:82 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.sending" msgstr "Invio…" -#: src/app/main/ui/static.cljs:68 +#: src/app/main/ui/static.cljs msgid "labels.service-unavailable.desc-message" msgstr "Stiamo effettuando la manutenzione programmata dei nostri sistemi." -#: src/app/main/ui/static.cljs:67 +#: src/app/main/ui/static.cljs msgid "labels.service-unavailable.main-message" msgstr "Servizio non disponibile" -#: src/app/main/ui/dashboard/sidebar.cljs:530, src/app/main/ui/dashboard/team.cljs:88, src/app/main/ui/dashboard/team.cljs:102, src/app/main/ui/settings/options.cljs:84, src/app/main/ui/settings/sidebar.cljs:93 +#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.settings" msgstr "Configurazione" -#, unused msgid "labels.share-prototype" msgstr "Condividi il prototipo" -#: src/app/main/ui/dashboard/sidebar.cljs:800 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.shared-libraries" msgstr "Librerie condivise" -#: src/app/main/ui/viewer/comments.cljs:82, src/app/main/ui/workspace/comments.cljs:55, src/app/main/ui/workspace/comments.cljs:135 +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs msgid "labels.show-all-comments" msgstr "Mostra tutti i commenti" -#: src/app/main/ui/viewer/comments.cljs:115 msgid "labels.show-comments-list" msgstr "Mostra la lista dei commenti" -#: src/app/main/ui/viewer/comments.cljs:91, src/app/main/ui/workspace/comments.cljs:61, src/app/main/ui/workspace/comments.cljs:136 +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs msgid "labels.show-your-comments" msgstr "Mostra solo i tuoi commenti" -#: src/app/main/ui/dashboard/team.cljs:710 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.status" msgstr "Stato" -#: src/app/main/ui/dashboard/sidebar.cljs:992, src/app/main/ui/workspace/main_menu.cljs:118 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.tutorials" msgstr "Tutorial" -#: src/app/main/ui/settings/profile.cljs:103 +#: src/app/main/ui/settings/profile.cljs msgid "labels.update" msgstr "Aggiorna" -#: src/app/main/ui/dashboard/team_form.cljs:120 +#: src/app/main/ui/dashboard/team_form.cljs msgid "labels.update-team" msgstr "Aggiorna team" -#: src/app/main/ui/dashboard/fonts.cljs:241 msgid "labels.upload" msgstr "Caricare" -#: src/app/main/ui/dashboard/fonts.cljs:169 msgid "labels.upload-custom-fonts" msgstr "Caricare font personalizzati" -#: src/app/main/ui/dashboard/fonts.cljs:240 msgid "labels.uploading" msgstr "Caricamento…" -#: src/app/main/ui/dashboard/team.cljs:123, src/app/main/ui/dashboard/team.cljs:282, src/app/main/ui/dashboard/team.cljs:521 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.viewer" msgstr "" -#: src/app/main/ui/comments.cljs:194 +#: src/app/main/ui/comments.cljs msgid "labels.write-new-comment" msgstr "Scrivere un nuovo commento" -#: src/app/main/ui/dashboard/team.cljs:237 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.you" msgstr "(tu)" -#: src/app/main/ui/dashboard/sidebar.cljs:968 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.your-account" msgstr "Il tuo account" -#: src/app/main/data/media.cljs:49, src/app/main/data/workspace/media.cljs:223, src/app/main/data/workspace/media.cljs:453 +#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs msgid "media.loading" msgstr "Caricamento dell'immagine…" -#: src/app/main/data/common.cljs:113 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.add-shared-confirm.accept" msgstr "Aggiungere come libreria condivisa" -#: src/app/main/data/common.cljs:111 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.add-shared-confirm.hint" msgstr "" "Una volta aggiunta come libreria condivisa, le risorse di questa libreria " "saranno disponibili per essere utilizzate nel resto dei tuoi file." -#: src/app/main/data/common.cljs:110 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.add-shared-confirm.message" msgstr "Aggiungere \"%s\" come libreria condivisa" -#: src/app/main/ui/workspace/nudge.cljs:60 +#: src/app/main/ui/workspace/nudge.cljs msgid "modals.big-nudge" msgstr "Grande scatto" -#: src/app/main/ui/settings/change_email.cljs:127 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.confirm-email" msgstr "Verificare il nuovo indirizzo e-mail" -#: src/app/main/ui/settings/change_email.cljs:114 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.info" msgstr "" "Ti invieremo un'e-mail al tuo attuale indirizzo e-mail \"%s\" per " "verificare la tua identità." -#: src/app/main/ui/settings/change_email.cljs:119 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.new-email" msgstr "Nuovo indirizzo e-mail" -#: src/app/main/ui/settings/change_email.cljs:136 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.submit" msgstr "Cambiare indirizzo e-mail" -#: src/app/main/ui/settings/change_email.cljs:107 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.title" msgstr "Cambia il tuo indirizzo e-mail" -#: src/app/main/ui/settings/delete_account.cljs:59 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.cancel" msgstr "Annulla e mantieni il mio account" -#: src/app/main/ui/settings/delete_account.cljs:64 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.confirm" msgstr "Sì, cancellare il mio account" -#: src/app/main/ui/settings/delete_account.cljs:53 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.info" msgstr "" "Cancellando il tuo account, perderai tutti i tuoi archivi e progetti " "attuali." -#: src/app/main/ui/settings/delete_account.cljs:46 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.title" msgstr "Eliminare il proprio account?" -#: src/app/main/ui/comments.cljs:298 +#: src/app/main/ui/comments.cljs msgid "modals.delete-comment-thread.accept" msgstr "Elimina conversazione" -#: src/app/main/ui/comments.cljs:297 +#: src/app/main/ui/comments.cljs msgid "modals.delete-comment-thread.message" msgstr "" "Eliminare questa conversazione? Tutti i commenti in questo thread saranno " "cancellati." -#: src/app/main/ui/comments.cljs:296 +#: src/app/main/ui/comments.cljs msgid "modals.delete-comment-thread.title" msgstr "Elimina conversazione" -#: src/app/main/ui/dashboard/file_menu.cljs:123 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-confirm.accept" msgstr "Elimina file" -#: src/app/main/ui/dashboard/file_menu.cljs:122 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-confirm.message" msgstr "Eliminare questo file?" -#: src/app/main/ui/dashboard/file_menu.cljs:121 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-confirm.title" msgstr "Eliminazione file" -#: src/app/main/ui/dashboard/file_menu.cljs:117 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-multi-confirm.accept" msgstr "Elimina files" -#: src/app/main/ui/dashboard/file_menu.cljs:116 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-multi-confirm.message" msgstr "Eliminare %s files?" -#: src/app/main/ui/dashboard/file_menu.cljs:115 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-multi-confirm.title" msgstr "Eliminazione %s files" -#: src/app/main/ui/dashboard/fonts.cljs:345 msgid "modals.delete-font-variant.message" msgstr "" "Eliminare questo stile del carattere? Se è usato in un file, non verrà " "caricato." -#: src/app/main/ui/dashboard/fonts.cljs:344 msgid "modals.delete-font-variant.title" msgstr "Eliminazione stile del carattere" -#: src/app/main/ui/dashboard/fonts.cljs:331 msgid "modals.delete-font.message" msgstr "Eliminare questo carattere? Se è usato in un file, non verrà caricato." -#: src/app/main/ui/dashboard/fonts.cljs:330 msgid "modals.delete-font.title" msgstr "Eliminazione carattere" -#: src/app/main/ui/workspace/context_menu.cljs:522, src/app/main/ui/workspace/sidebar/sitemap.cljs:45 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs msgid "modals.delete-page.body" msgstr "Eliminare questa pagina?" -#: src/app/main/ui/workspace/context_menu.cljs:521, src/app/main/ui/workspace/sidebar/sitemap.cljs:44 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs msgid "modals.delete-page.title" msgstr "Elimina pagina" -#: src/app/main/ui/dashboard/project_menu.cljs:69 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "modals.delete-project-confirm.accept" msgstr "Elimina progetto" -#: src/app/main/ui/dashboard/project_menu.cljs:68 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "modals.delete-project-confirm.message" msgstr "Eliminare questo progetto?" -#: src/app/main/ui/dashboard/project_menu.cljs:67 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "modals.delete-project-confirm.title" msgstr "Elimina progetto" -#: src/app/main/ui/delete_shared.cljs:51 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.accept" msgid_plural "modals.delete-shared-confirm.accept" msgstr[0] "Elimina file" msgstr[1] "Elimina i file" -#: src/app/main/ui/delete_shared.cljs:46 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.message" msgid_plural "modals.delete-shared-confirm.message" msgstr[0] "Eliminare questo file?" msgstr[1] "Eliminare questi file?" -#: src/app/main/ui/delete_shared.cljs:41 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.title" msgid_plural "modals.delete-shared-confirm.title" msgstr[0] "Eliminazione del file" msgstr[1] "Eliminazione dei file" -#: src/app/main/ui/dashboard/sidebar.cljs:435 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.delete-team-confirm.accept" msgstr "Elimina team" -#: src/app/main/ui/dashboard/sidebar.cljs:434 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.delete-team-confirm.message" msgstr "" "Eliminare questo team? Tutti i progetti e i file associati con questo team " "verranno cancellati permanentemente." -#: src/app/main/ui/dashboard/sidebar.cljs:433 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.delete-team-confirm.title" msgstr "Eliminazione del team in corso" -#: src/app/main/ui/dashboard/team.cljs:427 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.delete-team-member-confirm.accept" msgstr "Elimina membro" -#: src/app/main/ui/dashboard/team.cljs:426 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.delete-team-member-confirm.message" msgstr "Eliminare questo membro dal team?" -#: src/app/main/ui/dashboard/team.cljs:425 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.delete-team-member-confirm.title" msgstr "Elimina membro del team" -#: src/app/main/ui/dashboard/team.cljs:218 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.invite-member-confirm.accept" msgstr "Invia invito" -#: src/app/main/ui/dashboard/team.cljs:213, src/app/main/ui/onboarding/team_choice.cljs:156 msgid "modals.invite-member.emails" msgstr "Email, separate da virgole" -#: src/app/main/ui/dashboard/team.cljs:190 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.invite-team-member.title" msgstr "Invita membri al team" -#: src/app/main/ui/dashboard/sidebar.cljs:423, src/app/main/ui/dashboard/team.cljs:393 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-close-confirm.hint" msgstr "" "Poiché sei il solo membro di questo team, il team verrà eliminato insieme " "ai sui file e progetti." -#: src/app/main/ui/dashboard/sidebar.cljs:422, src/app/main/ui/dashboard/team.cljs:392 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-close-confirm.message" msgstr "Lasciare il team di %s?" -#: src/app/main/ui/dashboard/change_owner.cljs:55 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-reassign.hint1" msgstr "" "Sei il proprietario di questo team. Per favore seleziona un altro membro da " "promuovere a proprietario prima di uscire." -#: src/app/main/ui/dashboard/change_owner.cljs:78 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-reassign.promote-and-leave" msgstr "Promuovi e esci" -#: src/app/main/ui/dashboard/change_owner.cljs:34 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-reassign.select-member-to-promote" msgstr "Seleziona un membro da promuovere" -#: src/app/main/ui/dashboard/change_owner.cljs:49 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-reassign.title" msgstr "Prima di uscire" -#: src/app/main/ui/dashboard/sidebar.cljs:402, src/app/main/ui/dashboard/sidebar.cljs:424, src/app/main/ui/dashboard/team.cljs:394, src/app/main/ui/dashboard/team.cljs:416 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-confirm.accept" msgstr "Lascia il team" -#: src/app/main/ui/dashboard/sidebar.cljs:401, src/app/main/ui/dashboard/team.cljs:415 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-confirm.message" msgstr "Vuoi lasciare questo team?" -#: src/app/main/ui/workspace/main_menu.cljs:266, src/app/main/ui/workspace/nudge.cljs:47 +#: src/app/main/ui/workspace/nudge.cljs msgid "modals.nudge-title" msgstr "Ampiezza scatto" -#: src/app/main/ui/dashboard/team.cljs:340 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.accept" msgstr "Trasferisci proprietà" -#: src/app/main/ui/dashboard/team.cljs:339 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.hint" msgstr "" "Trasferendo la proprietà, il tuo ruolo diverrà quello di Admin, perdendo " "alcuni privilegi su questo team. " -#: src/app/main/ui/dashboard/team.cljs:338 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.message" msgstr "" "Sei l'attuale proprietario di questo team. Trasferire la proprietà del team " "a %s?" -#: src/app/main/ui/dashboard/team.cljs:337 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.title" msgstr "Nuovo proprietario del team" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.remove-shared-confirm.accept" msgstr "Elimina come Libreria Condivisa" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.remove-shared-confirm.hint" msgstr "" "Una volta eliminata come Libreria Condivisa, la Libreria dei File di questo " "file smetterà di essere a disposizione per essere usata con il resto dei " "tuoi file." -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.remove-shared-confirm.message" msgstr "Elimina \"%s\" come Libreria Condivisa" -#: src/app/main/ui/workspace/nudge.cljs:53 +#: src/app/main/ui/workspace/nudge.cljs msgid "modals.small-nudge" msgstr "Piccolo scatto" -#: src/app/main/ui/delete_shared.cljs:52 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.unpublish-shared-confirm.accept" msgstr "Annulla pubblicazione" -#: src/app/main/ui/delete_shared.cljs:47 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.unpublish-shared-confirm.message" msgid_plural "modals.unpublish-shared-confirm.message" msgstr[0] "Annullare la pubblicazione di questa libreria?" msgstr[1] "Annullare la pubblicazione di queste librerie?" -#: src/app/main/ui/delete_shared.cljs:42 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.unpublish-shared-confirm.title" msgid_plural "modals.unpublish-shared-confirm.title" msgstr[0] "Annulla pubblicazione libreria" msgstr[1] "Annulla pubblicazione librerie" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component-in-bulk.hint" msgstr "" "Stai per aggiornare i componenti in una libreria condivisa. Questo potrebbe " "causare modifiche nei file che la utilizzano." -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component-in-bulk.message" msgstr "Aggiorna componenti in una libreria condivisa" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:380 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.accept" msgstr "Aggiorna" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:379 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.cancel" msgstr "Cancella" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:378 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.hint" msgstr "" "Stai per aggiornare un componente in una libreria condivisa. Questo " "potrebbe causare modifiche nei file che la utilizzano." -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:377 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.message" msgstr "Aggiorna un componente in una libreria condivisa" -#: src/app/main/ui/dashboard/team.cljs:154, src/app/main/ui/dashboard/team.cljs:595 +#: src/app/main/ui/dashboard/team.cljs msgid "notifications.invitation-email-sent" msgstr "Invito inviato con successo" -#: src/app/main/ui/settings/delete_account.cljs:24 +#: src/app/main/ui/settings/delete_account.cljs msgid "notifications.profile-deletion-not-allowed" msgstr "Non puoi eliminare il tuo profilo. Riassegna i tuoi team prima di procedere." -#: src/app/main/ui/settings/options.cljs:29, src/app/main/ui/settings/profile.cljs:35 +#: src/app/main/ui/settings/profile.cljs, src/app/main/ui/settings/options.cljs msgid "notifications.profile-saved" msgstr "Profilo salvato con successo!" -#: src/app/main/ui/settings/change_email.cljs:63 +#: src/app/main/ui/settings/change_email.cljs msgid "notifications.validation-email-sent" msgstr "Email di verifica inviata a %s. Controlla la tua email!" -#, unused msgid "onboarding-v2.before-start.desc1" msgstr "" "Suggerimento: ci sono tantissime risorse disponibili per aiutarti nei tuoi " "primi passi con Penpot, come la Guida Utenti e il nostro canale di Youtube." -#, unused msgid "onboarding-v2.before-start.desc2" msgstr "" "Informazioni dettagliate su come usare Penpot. Dalla prototipazione " "all'organizzazione o condivisione di design." -#, unused msgid "onboarding-v2.before-start.desc2.title" msgstr "Guida utenti" -#, unused msgid "onboarding-v2.before-start.desc3" msgstr "Puoi guardare i nostri tutorial e quelli creati dalla nostra comunità." -#, unused msgid "onboarding-v2.before-start.desc3.title" msgstr "Video tutorial" -#, unused msgid "onboarding-v2.before-start.title" msgstr "Prima di cominciare" -#, unused msgid "onboarding-v2.welcome.desc1" msgstr "" "Penpot è Open Source ed è prodotto da Kaleidos così come dalla comunità, in " "cui già adesso tantissime persone si aiutano a vicenda. Chiunque può " "collaborare:" -#, unused msgid "onboarding-v2.welcome.desc2" msgstr "" "Uno spazio pubblico dove imparare, condividere e discutere su Penpot, il " "suo presente e futuro con l'intera Comunità e con il team di Penpot." -#, unused msgid "onboarding-v2.welcome.desc2.title" msgstr "Partecipando nella Comunità" -#, unused msgid "onboarding-v2.welcome.desc3" msgstr "" "Qui troverai come collaborare con le traduzioni, richiedere funzionalità, " "contribuire al codice, cercare bug…" -#, unused msgid "onboarding-v2.welcome.desc3.title" msgstr "Guida alla contribuzione" -#: src/app/main/ui/onboarding/team_choice.cljs:31 msgid "onboarding-v2.welcome.title" msgstr "Benvenuti su Penpot!" -#: src/app/main/ui/onboarding/team_choice.cljs:215 msgid "onboarding.choice.team-up.create-team-desc" msgstr "Dopo aver nominato il tuo team, potrai invitare persone ad unirsi ad esso." -#: src/app/main/ui/onboarding/team_choice.cljs:224 msgid "onboarding.choice.team-up.create-team-placeholder" msgstr "Inserisci il nome del team" -#: src/app/main/ui/dashboard/projects.cljs:89, src/app/main/ui/onboarding/team_choice.cljs:140 msgid "onboarding.choice.team-up.invite-members" msgstr "Invita membri" -#: src/app/main/ui/onboarding/team_choice.cljs:141 msgid "onboarding.choice.team-up.invite-members-info" msgstr "" "Non dimenticarti di includere ogni tipo di persona. Programmatori, " "designers, responsabili... la diversità si somma :)" -#: src/app/main/ui/dashboard/team.cljs:202, src/app/main/ui/onboarding/team_choice.cljs:146 msgid "onboarding.choice.team-up.roles" msgstr "Invita con il ruolo:" -#, unused msgid "onboarding.newsletter.accept" msgstr "Si, iscrivimi" -#: src/app/main/ui/onboarding/newsletter.cljs:40 msgid "onboarding.newsletter.acceptance-message" msgstr "" "La tua richiesta di iscrizione è stata invita, ti invieremo un'email di " "conferma." -#: src/app/main/ui/onboarding/newsletter.cljs:95 msgid "onboarding.newsletter.policy" msgstr "Condizioni sulla Privacy." -#: src/app/main/ui/onboarding/newsletter.cljs:60 msgid "onboarding.newsletter.title" msgstr "Vuoi ricevere le news di Pentot?" -#: src/app/main/ui/dashboard/team.cljs:727 +#: src/app/main/ui/dashboard/team.cljs msgid "title.team-invitations" msgstr "Inviti - %s - Penpot" diff --git a/frontend/translations/jpn_JP.po b/frontend/translations/jpn_JP.po index d3d35466f0..9b325ce044 100644 --- a/frontend/translations/jpn_JP.po +++ b/frontend/translations/jpn_JP.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "PO-Revision-Date: 2024-06-17 08:07+0000\n" "Last-Translator: Anonymous \n" -"Language-Team: Japanese " -"\n" +"Language-Team: Japanese \n" "Language: jpn_JP\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" @@ -11,968 +11,901 @@ msgstr "" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Weblate 5.6-dev\n" -#: src/app/main/ui/auth/register.cljs:151, src/app/main/ui/viewer/login.cljs:104 +#: src/app/main/ui/auth/register.cljs msgid "auth.already-have-account" msgstr "アカウントをお持ちですか?" -#: src/app/main/ui/auth/register.cljs:299 +#: src/app/main/ui/auth/register.cljs msgid "auth.check-your-email" msgstr "Penpotを使う前にメールのリンクをクリックして、メールアドレスを認証してください。" -#: src/app/main/ui/auth/recovery.cljs:78 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.confirm-password" msgstr "パスワードを確認" -#: src/app/main/ui/auth/register.cljs:163 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.create-demo-account" msgstr "デモアカウントを作成" #: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs -#, unused msgid "auth.create-demo-profile" msgstr "試してみませんか?" -#: src/app/main/ui/auth/login.cljs:43 +#: src/app/main/ui/auth/register.cljs msgid "auth.demo-warning" msgstr "このサービスはデモ版です。実際の業務には使用しないでください。" -#: src/app/main/ui/auth/login.cljs:189, src/app/main/ui/viewer/login.cljs:90 +#: src/app/main/ui/auth/login.cljs msgid "auth.forgot-password" msgstr "パスワードを忘れましたか?" -#: src/app/main/ui/auth/register.cljs:254 +#: src/app/main/ui/auth/register.cljs msgid "auth.fullname" msgstr "フルネーム" -#: src/app/main/ui/auth/register.cljs:155, src/app/main/ui/viewer/login.cljs:107 +#: src/app/main/ui/auth/register.cljs +#, fuzzy msgid "auth.login-here" msgstr "こちらからログイン" -#: src/app/main/ui/auth/login.cljs:195 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-submit" msgstr "ログイン" -#: src/app/main/ui/auth/login.cljs:222 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-github-submit" msgstr "GitHub" -#: src/app/main/ui/auth/login.cljs:228 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-gitlab-submit" msgstr "Gitlab" -#: src/app/main/ui/auth/login.cljs:216 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-google-submit" msgstr "Google" -#: src/app/main/ui/auth/login.cljs:201 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-ldap-submit" msgstr "LDAPでログイン" -#: src/app/main/ui/auth/login.cljs:234, src/app/main/ui/auth/login.cljs:255 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-oidc-submit" msgstr "OpenID Connect" -#: src/app/main/ui/auth/recovery.cljs:71 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.new-password" msgstr "新しいパスワードを入力" -#: src/app/main/ui/auth/recovery.cljs:42 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.notifications.invalid-token-error" msgstr "リカバリコードが無効です。" -#: src/app/main/ui/auth/recovery.cljs:46 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.notifications.password-changed-successfully" msgstr "パスワードを変更しました" -#: src/app/main/ui/auth/recovery_request.cljs:57 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.notifications.profile-not-verified" msgstr "プロフィールが確認されていません。続ける前にプロフィールを確認してください。" -#: src/app/main/ui/auth/recovery_request.cljs:40 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.notifications.recovery-token-sent" msgstr "パスワード変更リンクをメールで送信しました。" -#: src/app/main/ui/auth/verify_token.cljs:47 +#: src/app/main/ui/auth/verify_token.cljs msgid "auth.notifications.team-invitation-accepted" msgstr "チームに参加しました" -#: src/app/main/ui/auth/login.cljs:179, src/app/main/ui/auth/register.cljs:115 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.password" msgstr "パスワード" -#: src/app/main/ui/auth/register.cljs:114 +#: src/app/main/ui/auth/register.cljs msgid "auth.password-length-hint" msgstr "登録" -#: src/app/main/ui/auth.cljs:41 msgid "auth.privacy-policy" msgstr "プライバシーポリシー" -#: src/app/main/ui/auth/recovery_request.cljs:88 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-submit" msgstr "パスワードを回復" -#: src/app/main/ui/auth/recovery_request.cljs:101 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-subtitle" msgstr "手順を記載したメールをお送りします" -#: src/app/main/ui/auth/recovery_request.cljs:100 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-title" msgstr "パスワードを忘れましたか?" -#: src/app/main/ui/auth/recovery.cljs:82 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.recovery-submit" msgstr "パスワードを変更" -#: src/app/main/ui/auth/login.cljs:298, src/app/main/ui/viewer/login.cljs:93 +#: src/app/main/ui/auth/login.cljs msgid "auth.register" msgstr "アカウントをお持ちでない方はこちら" -#: src/app/main/ui/auth/login.cljs:302, src/app/main/ui/auth/register.cljs:121, src/app/main/ui/auth/register.cljs:263, src/app/main/ui/viewer/login.cljs:97 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.register-submit" msgstr "アカウントを作成" -#: src/app/main/ui/auth/register.cljs:140 +#: src/app/main/ui/auth/register.cljs msgid "auth.register-title" msgstr "アカウントを作成" #: src/app/main/ui/auth.cljs -#, unused msgid "auth.sidebar-tagline" msgstr "デザインとプロトタイピングのためのオープンソースです。" -#: src/app/main/ui/auth.cljs:33, src/app/main/ui/dashboard/sidebar.cljs:1022, src/app/main/ui/workspace/main_menu.cljs:150 msgid "auth.terms-of-service" msgstr "利用規約" -#: src/app/main/ui/auth/register.cljs:297 +#: src/app/main/ui/auth/register.cljs msgid "auth.verification-email-sent" msgstr "認証メールを送信しました" -#: src/app/main/ui/workspace/libraries.cljs:228 msgid "common.publish" msgstr "公開" -#: src/app/main/ui/viewer/share_link.cljs:304, src/app/main/ui/viewer/share_link.cljs:314 msgid "common.share-link.all-users" msgstr "すべてのPenpotユーザー" -#: src/app/main/ui/viewer/share_link.cljs:198 msgid "common.share-link.confirm-deletion-link-description" msgstr "本当にこのリンクを削除しますか?削除すると、リンクは使用できなくなります" -#: src/app/main/ui/viewer/share_link.cljs:259, src/app/main/ui/viewer/share_link.cljs:289 msgid "common.share-link.current-tag" msgstr "(現在有効)" -#: src/app/main/ui/viewer/share_link.cljs:207, src/app/main/ui/viewer/share_link.cljs:214 msgid "common.share-link.destroy-link" msgstr "リンクを削除" -#: src/app/main/ui/viewer/share_link.cljs:221 msgid "common.share-link.get-link" msgstr "リンクを取得" -#: src/app/main/ui/viewer/share_link.cljs:139 msgid "common.share-link.link-copied-success" msgstr "リンクをコピーしました" -#: src/app/main/ui/viewer/share_link.cljs:231 msgid "common.share-link.manage-ops" msgstr "権限の管理" -#: src/app/main/ui/viewer/share_link.cljs:277 msgid "common.share-link.page-shared" msgid_plural "common.share-link.page-shared" msgstr[0] "%s ページが共有済み" -#: src/app/main/ui/viewer/share_link.cljs:298 msgid "common.share-link.permissions-can-comment" msgstr "コメント可能" -#: src/app/main/ui/viewer/share_link.cljs:308 msgid "common.share-link.permissions-can-inspect" msgstr "コードを調査" -#: src/app/main/ui/viewer/share_link.cljs:193 msgid "common.share-link.permissions-hint" msgstr "リンクを知っている全員がアクセス可能" -#: src/app/main/ui/viewer/share_link.cljs:241 msgid "common.share-link.permissions-pages" msgstr "ページ共有済み" -#: src/app/main/ui/viewer/share_link.cljs:183 msgid "common.share-link.placeholder" msgstr "共有リンクはここに表示されます" -#: src/app/main/ui/viewer/share_link.cljs:303, src/app/main/ui/viewer/share_link.cljs:313 msgid "common.share-link.team-members" msgstr "チームのメンバーのみ" -#: src/app/main/ui/viewer/share_link.cljs:171 msgid "common.share-link.title" msgstr "プロトタイプを共有" -#: src/app/main/ui/viewer/share_link.cljs:269 msgid "common.share-link.view-all" msgstr "すべて選択" -#: src/app/main/ui/workspace/libraries.cljs:224 msgid "common.unpublish" msgstr "非公開" -#: src/app/main/ui/dashboard/projects.cljs:85 +#: src/app/main/ui/dashboard/projects.cljs msgid "dasboard.team-hero.management" msgstr "チームを管理" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.tutorial-hero.start" msgstr "チュートリアルを始める" -#: src/app/main/ui/dashboard/file_menu.cljs:291, src/app/main/ui/workspace/main_menu.cljs:572 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.add-shared" msgstr "共有ライブラリとして追加" -#: src/app/main/ui/settings/profile.cljs:75 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.change-email" msgstr "メールアドレスを変更" -#: src/app/main/data/dashboard.cljs:762, src/app/main/data/dashboard.cljs:983 +#: src/app/main/data/dashboard.cljs, src/app/main/data/dashboard.cljs msgid "dashboard.copy-suffix" msgstr "(コピー)" -#: src/app/main/ui/dashboard/sidebar.cljs:338 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.create-new-team" msgstr "チームを新規作成" -#: src/app/main/ui/components/context_menu_a11y.cljs:256, src/app/main/ui/dashboard/sidebar.cljs:646 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.default-team-name" msgstr "あなたのPenpot" -#: src/app/main/ui/dashboard/sidebar.cljs:571 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.delete-team" msgstr "チームを削除" -#: src/app/main/ui/dashboard/file_menu.cljs:296, src/app/main/ui/workspace/main_menu.cljs:589 msgid "dashboard.download-binary-file" msgstr "Penpotファイル(.penpot)をダウンロード" -#: src/app/main/ui/dashboard/file_menu.cljs:300, src/app/main/ui/workspace/main_menu.cljs:597 msgid "dashboard.download-standard-file" msgstr "標準形式(.svg+.json)でダウンロード" -#: src/app/main/ui/dashboard/file_menu.cljs:276, src/app/main/ui/dashboard/project_menu.cljs:90 +#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.duplicate" msgstr "複製" -#: src/app/main/ui/dashboard/file_menu.cljs:240 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.duplicate-multi" msgstr "%s ファイルを複製" -#: src/app/main/ui/dashboard/placeholder.cljs:32 +#: src/app/main/ui/dashboard/grid.cljs #, markdown msgid "dashboard.empty-placeholder-drafts" msgstr "" "まだファイルがありません。もしいくつかのテンプレートを試してみたいなら、[Libraries & " "templates](https://penpot.app/libraries-templates) をチェックしてみてください。" -#: src/app/main/ui/workspace/main_menu.cljs:605 msgid "dashboard.export-frames" msgstr "PDFでエクスポート" -#: src/app/main/ui/export.cljs:201 +#: src/app/main/ui/export.cljs msgid "dashboard.export-frames.title" msgstr "PDFにエクスポート" -#: src/app/main/ui/export.cljs:190 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.title" msgstr "エクスポートの選択" -#: src/app/main/ui/export.cljs:436 msgid "dashboard.export.options.all.title" msgstr "共有ライブラリとしてエクスポート" -#: src/app/main/ui/dashboard/fonts.cljs:194 +#: src/app/main/ui/dashboard/fonts.cljs msgid "dashboard.fonts.fonts-added" msgid_plural "dashboard.fonts.fonts-added" msgstr[0] "%s フォントを追加しました" -#: src/app/main/ui/dashboard/fonts.cljs:202 +#: src/app/main/ui/dashboard/fonts.cljs msgid "dashboard.fonts.upload-all" msgstr "すべてアップロード" -#: src/app/main/ui/dashboard/import.cljs:472, src/app/main/ui/dashboard/project_menu.cljs:108 msgid "dashboard.import" msgstr "Penpotをインポート" -#: src/app/main/ui/dashboard/import.cljs:304, src/app/worker/import.cljs:753, src/app/worker/import.cljs:755 msgid "dashboard.import.analyze-error" msgstr "Penpotファイルをインポート" -#: src/app/main/ui/dashboard/import.cljs:144 msgid "dashboard.import.progress.process-colors" msgstr "色を処理しています" -#: src/app/main/ui/dashboard/import.cljs:153 msgid "dashboard.import.progress.process-components" msgstr "コンポーネントを処理しています" -#: src/app/main/ui/dashboard/import.cljs:150 msgid "dashboard.import.progress.process-media" msgstr "メディアを処理しています" -#: src/app/main/ui/dashboard/import.cljs:141 msgid "dashboard.import.progress.process-page" msgstr "%s ページ処理中" -#: src/app/main/ui/dashboard/import.cljs:135 msgid "dashboard.import.progress.upload-data" msgstr "アップロード中 (%s/%s)" -#: src/app/main/ui/dashboard/import.cljs:138 msgid "dashboard.import.progress.upload-media" msgstr "アップロード中: %s" -#: src/app/main/ui/dashboard/team.cljs:109 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.invite-profile" msgstr "チームに招待" -#: src/app/main/ui/dashboard/sidebar.cljs:547, src/app/main/ui/dashboard/sidebar.cljs:556, src/app/main/ui/dashboard/sidebar.cljs:563, src/app/main/ui/dashboard/team.cljs:312 +#: src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.leave-team" msgstr "チームから脱退" -#: src/app/main/ui/dashboard/libraries.cljs:53 +#: src/app/main/ui/dashboard/libraries.cljs msgid "dashboard.libraries-title" msgstr "共有ライブラリ" -#: src/app/main/ui/dashboard/placeholder.cljs:45 +#: src/app/main/ui/dashboard/grid.cljs msgid "dashboard.loading-files" msgstr "ファイルを読みこんでいます…" -#: src/app/main/ui/dashboard/fonts.cljs:431 msgid "dashboard.loading-fonts" msgstr "フォントを読みこんでいます…" -#: src/app/main/ui/dashboard/files.cljs:105, src/app/main/ui/dashboard/projects.cljs:252, src/app/main/ui/dashboard/projects.cljs:253 +#: src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/files.cljs msgid "dashboard.new-file" msgstr "+ 新しいファイル" -#: src/app/main/data/dashboard.cljs:958, src/app/main/data/dashboard.cljs:1181 +#: src/app/main/data/dashboard.cljs msgid "dashboard.new-file-prefix" msgstr "新しいファイル" -#: src/app/main/ui/dashboard/projects.cljs:55 +#: src/app/main/ui/dashboard/projects.cljs msgid "dashboard.new-project" msgstr "+ 新規プロジェクト" -#: src/app/main/data/dashboard.cljs:726, src/app/main/data/dashboard.cljs:1184 +#: src/app/main/data/dashboard.cljs msgid "dashboard.new-project-prefix" msgstr "新規プロジェクト" -#: src/app/main/ui/dashboard/search.cljs:60 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.no-matches-for" msgstr "\"%s\"が見つかりませんでした" -#: src/app/main/ui/dashboard/sidebar.cljs:827 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.no-projects-placeholder" msgstr "ピン留めされたプロジェクトはここに表示されます" -#: src/app/main/ui/auth/verify_token.cljs:33 +#: src/app/main/ui/auth/verify_token.cljs msgid "dashboard.notifications.email-changed-successfully" msgstr "メールアドレスが更新されました" -#: src/app/main/ui/auth/verify_token.cljs:27 +#: src/app/main/ui/auth/verify_token.cljs msgid "dashboard.notifications.email-verified-successfully" msgstr "メールアドレスが認証されました" -#: src/app/main/ui/settings/password.cljs:37 +#: src/app/main/ui/settings/password.cljs msgid "dashboard.notifications.password-saved" msgstr "パスワードを保存しました!" -#: src/app/main/ui/dashboard/team.cljs:1081 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.num-of-members" msgstr "%s メンバー" -#: src/app/main/ui/dashboard/file_menu.cljs:267 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.open-in-new-tab" msgstr "新しいタブでファイルで開く" -#: src/app/main/ui/dashboard/files.cljs:117, src/app/main/ui/dashboard/projects.cljs:260, src/app/main/ui/dashboard/projects.cljs:261 msgid "dashboard.options" msgstr "オプション" -#: src/app/main/ui/settings/password.cljs:106, src/app/main/ui/settings/password.cljs:119 +#: src/app/main/ui/settings/password.cljs msgid "dashboard.password-change" msgstr "パスワードを変更" -#: src/app/main/ui/dashboard/projects.cljs:51 +#: src/app/main/ui/dashboard/projects.cljs msgid "dashboard.projects-title" msgstr "プロジェクト" -#: src/app/main/ui/settings/profile.cljs:86 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.remove-account" msgstr "アカウントを削除したいですか?" #: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused msgid "dashboard.remove-shared" msgstr "共有ライブラリから削除" -#: src/app/main/ui/settings/profile.cljs:78 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.save-settings" msgstr "設定を保存" -#: src/app/main/ui/dashboard/sidebar.cljs:246, src/app/main/ui/dashboard/sidebar.cljs:247 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.search-placeholder" msgstr "検索…" -#: src/app/main/ui/dashboard/search.cljs:55 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.searching-for" msgstr "“%s“ を検索しています…" -#: src/app/main/ui/settings/options.cljs:56 +#: src/app/main/ui/settings/options.cljs msgid "dashboard.select-ui-language" msgstr "表示言語を選択" -#: src/app/main/ui/settings/options.cljs:63 +#: src/app/main/ui/settings/options.cljs msgid "dashboard.select-ui-theme" msgstr "テーマを選択" -#: src/app/main/ui/dashboard/projects.cljs:282 +#: src/app/main/ui/dashboard/grid.cljs msgid "dashboard.show-all-files" msgstr "すべてのファイルを表示" -#: src/app/main/ui/dashboard/file_menu.cljs:96 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-delete-file" msgstr "ファイルを削除しました" -#: src/app/main/ui/dashboard/project_menu.cljs:59 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.success-delete-project" msgstr "プロジェクトを削除しました" -#: src/app/main/ui/dashboard/file_menu.cljs:91 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-duplicate-file" msgstr "ファイルを複製しました" -#: src/app/main/ui/dashboard/project_menu.cljs:33 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.success-duplicate-project" msgstr "プロジェクトを複製しました" -#: src/app/main/ui/dashboard/file_menu.cljs:130, src/app/main/ui/dashboard/grid.cljs:558, src/app/main/ui/dashboard/sidebar.cljs:152 +#: src/app/main/ui/dashboard/grid.cljs, src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-move-file" msgstr "ファイルを移動しました" -#: src/app/main/ui/dashboard/file_menu.cljs:129 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-move-files" msgstr "ファイルを移動しました" -#: src/app/main/ui/dashboard/project_menu.cljs:54 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.success-move-project" msgstr "ファイルを削除しました" -#: src/app/main/ui/dashboard/team.cljs:1052 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.team-info" msgstr "チーム情報" -#: src/app/main/ui/dashboard/team.cljs:1070 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.team-members" msgstr "チームのメンバー" -#: src/app/main/ui/dashboard/team.cljs:1085 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.team-projects" msgstr "チームのプロジェクト" -#: src/app/main/ui/settings/options.cljs:61 +#: src/app/main/ui/settings/options.cljs msgid "dashboard.theme-change" msgstr "UIテーマ" -#: src/app/main/ui/dashboard/search.cljs:42 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.title-search" msgstr "検索結果" -#: src/app/main/ui/dashboard/search.cljs:50 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.type-something" msgstr "タイプして検索" -#: src/app/main/ui/settings/options.cljs:71 +#: src/app/main/ui/settings/password.cljs, src/app/main/ui/settings/options.cljs msgid "dashboard.update-settings" msgstr "設定を更新" -#: src/app/main/ui/settings.cljs:31 +#: src/app/main/ui/settings.cljs msgid "dashboard.your-account-title" msgstr "あなたのアカウント" -#: src/app/main/ui/settings/profile.cljs:70 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.your-email" msgstr "Eメール" -#: src/app/main/ui/settings/profile.cljs:62 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.your-name" msgstr "名前" -#: src/app/main/ui/dashboard/file_menu.cljs:38, src/app/main/ui/dashboard/fonts.cljs:33, src/app/main/ui/dashboard/libraries.cljs:42, src/app/main/ui/dashboard/projects.cljs:318, src/app/main/ui/dashboard/search.cljs:30, src/app/main/ui/dashboard/sidebar.cljs:312, src/app/main/ui/dashboard/team.cljs:495, src/app/main/ui/dashboard/team.cljs:729, src/app/main/ui/dashboard/team.cljs:991, src/app/main/ui/dashboard/team.cljs:1038 +#: src/app/main/ui/dashboard/search.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/libraries.cljs, src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, fuzzy msgid "dashboard.your-penpot" msgstr "あなたのPenpot" -#: src/app/main/ui/confirm.cljs:36, src/app/main/ui/workspace/plugins.cljs:246 +#: src/app/main/ui/confirm.cljs msgid "ds.confirm-cancel" msgstr "キャンセル" -#: src/app/main/ui/confirm.cljs:37, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:141 +#: src/app/main/ui/confirm.cljs msgid "ds.confirm-ok" msgstr "OK" -#: src/app/main/ui/confirm.cljs:35, src/app/main/ui/confirm.cljs:39 +#: src/app/main/ui/confirm.cljs, src/app/main/ui/confirm.cljs msgid "ds.confirm-title" msgstr "本当に実行しますか?" -#: src/app/main/ui/auth/login.cljs:62 +#: src/app/main/ui/auth/login.cljs msgid "errors.auth-provider-not-configured" msgstr "認証プロバイダが設定されていません。" -#: src/app/main/errors.cljs:104 msgid "errors.auth.unable-to-login" msgstr "認証されていないか、セッションが失効しているようです。" -#: src/app/main/data/workspace.cljs:1598 +#: src/app/main/data/workspace.cljs msgid "errors.clipboard-not-implemented" msgstr "この処理は実行できません" -#: src/app/main/ui/auth/verify_token.cljs:82, src/app/main/ui/settings/change_email.cljs:46 +#: src/app/main/ui/auth/verify_token.cljs, src/app/main/ui/settings/change_email.cljs msgid "errors.email-already-exists" msgstr "メールアドレスは使用されています" -#: src/app/main/ui/auth/verify_token.cljs:87 +#: src/app/main/ui/auth/verify_token.cljs msgid "errors.email-already-validated" msgstr "メールアドレスはすでに有効です。" -#: src/app/main/ui/settings/password.cljs:28 msgid "errors.email-as-password" msgstr "メールアドレスはパスワードとして設定できません" -#: src/app/main/ui/auth/recovery_request.cljs:63, src/app/main/ui/dashboard/team.cljs:578, src/app/main/ui/settings/change_email.cljs:54 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/settings/change_email.cljs, src/app/main/ui/dashboard/team.cljs msgid "errors.email-has-permanent-bounces" msgstr "メールアドレス «%s» には多くの受信失敗レポートがあります。" -#: src/app/main/ui/settings/change_email.cljs:35 +#: src/app/main/ui/settings/change_email.cljs msgid "errors.email-invalid-confirmation" msgstr "メールアドレスは同じものを入力する必要があります" -#: src/app/main/ui/dashboard/team.cljs:170 msgid "errors.email-spam-or-permanent-bounces" msgstr "«%s» はスパムとして報告されたか、または恒久的に受信失敗しています" -#: src/app/main/data/users.cljs:709, src/app/main/ui/auth/login.cljs:65, src/app/main/ui/auth/login.cljs:116, src/app/main/ui/auth/register.cljs:69, src/app/main/ui/auth/register.cljs:237, src/app/main/ui/auth/verify_token.cljs:92, src/app/main/ui/dashboard/team.cljs:173, src/app/main/ui/onboarding/team_choice.cljs:95, src/app/main/ui/settings/access_tokens.cljs:91, src/app/main/ui/settings/feedback.cljs:52 +#: src/app/main/ui/auth/verify_token.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/dashboard/team.cljs msgid "errors.generic" msgstr "エラーが発生しました。" -#: src/app/main/ui/components/color_input.cljs:57 +#: src/app/main/ui/components/color_input.cljs msgid "errors.invalid-color" msgstr "無効な色" -#: src/app/main/ui/static.cljs:43 +#: src/app/main/ui/auth/verify_token.cljs msgid "errors.invite-invalid" msgstr "招待が無効" -#: src/app/main/ui/static.cljs:44 msgid "errors.invite-invalid.info" msgstr "この招待はキャンセルされたか、失効しています。" -#: src/app/main/ui/auth/login.cljs:101 +#: src/app/main/ui/auth/login.cljs msgid "errors.ldap-disabled" msgstr "LDAP認証は無効になっています。" -#: src/app/main/data/workspace/media.cljs:184 +#: src/app/main/data/workspace/persistence.cljs msgid "errors.media-too-large" msgstr "画像が大きすぎます。5MB以下にしてください。" -#: src/app/main/data/media.cljs:68, src/app/main/data/workspace/media.cljs:187 +#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs msgid "errors.media-type-mismatch" msgstr "画像の内容と拡張子が一致しません。" -#: src/app/main/data/media.cljs:65, src/app/main/data/workspace/media.cljs:172, src/app/main/data/workspace/media.cljs:175, src/app/main/data/workspace/media.cljs:178, src/app/main/data/workspace/media.cljs:181 +#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/workspace/persistence.cljs, src/app/main/data/workspace/persistence.cljs, src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs msgid "errors.media-type-not-allowed" msgstr "無効な画像です。" -#: src/app/main/ui/settings/password.cljs:64 +#: src/app/main/ui/settings/password.cljs msgid "errors.password-too-short" msgstr "パスワードは8文字以上である必要があります" -#: src/app/main/data/users.cljs:701, src/app/main/ui/auth/register.cljs:60 +#: src/app/main/ui/auth/register.cljs msgid "errors.registration-disabled" msgstr "新規登録は無効化されています。" -#: src/app/main/ui/dashboard/sidebar.cljs:371, src/app/main/ui/dashboard/team.cljs:365 msgid "errors.team-leave.owner-cant-leave" msgstr "オーナーはチームを脱退できません。オーナーロールを外してください。" -#: src/app/main/data/media.cljs:71 +#: src/app/main/data/media.cljs, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs msgid "errors.unexpected-error" msgstr "エラーが発生しました。" -#: src/app/main/ui/auth/verify_token.cljs:60 +#: src/app/main/ui/auth/verify_token.cljs msgid "errors.unexpected-token" msgstr "不明なトークン" -#: src/app/main/ui/auth/login.cljs:109, src/app/main/ui/auth/login.cljs:113 +#: src/app/main/ui/auth/login.cljs msgid "errors.wrong-credentials" msgstr "ユーザー名かパスワードが正しくありません。" -#: src/app/main/ui/settings/password.cljs:25 +#: src/app/main/ui/settings/password.cljs msgid "errors.wrong-old-password" msgstr "以前のパスワードが正しくありません" -#: src/app/main/ui/settings/feedback.cljs:77 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.description" msgstr "記述" -#: src/app/main/ui/settings/feedback.cljs:95 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.discourse-go-to" msgstr "Penpot forumに参加" -#: src/app/main/ui/settings/feedback.cljs:88 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.discourse-title" msgstr "Penpot コミュニティ" -#: src/app/main/ui/settings/feedback.cljs:72 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.subject" msgstr "題名" -#: src/app/main/ui/settings/feedback.cljs:68 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.title" msgstr "メールアドレス" -#: src/app/main/ui/settings/feedback.cljs:98 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.twitter-title" msgstr "Xサポートアカウント" -#: src/app/main/ui/settings/password.cljs:30 +#: src/app/main/ui/settings/password.cljs msgid "generic.error" msgstr "エラーが発生しました" -#: src/app/main/ui/viewer/inspect/attributes/blur.cljs:26 +#: src/app/main/ui/inspect/attributes/blur.cljs msgid "inspect.attributes.blur" msgstr "ぼかし" -#: src/app/main/ui/viewer/inspect/attributes/fill.cljs:57 +#: src/app/main/ui/inspect/attributes/fill.cljs msgid "inspect.attributes.fill" msgstr "塗りつぶし" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:99, src/app/main/ui/viewer/inspect/attributes/image.cljs:51 +#: src/app/main/ui/inspect/attributes/image.cljs msgid "inspect.attributes.image.download" msgstr "画像をダウンロード" -#: src/app/main/ui/viewer/inspect/attributes/image.cljs:39 +#: src/app/main/ui/inspect/attributes/image.cljs msgid "inspect.attributes.image.height" msgstr "高さ" -#: src/app/main/ui/viewer/inspect/attributes/image.cljs:32 +#: src/app/main/ui/inspect/attributes/image.cljs msgid "inspect.attributes.image.width" msgstr "横幅" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout" msgstr "レイアウト" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.height" msgstr "高さ" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.left" msgstr "左" #: src/app/main/ui/inspect/attributes/layout.cljs, src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.radius" msgstr "半径" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.rotation" msgstr "回転" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.top" msgstr "上" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.width" msgstr "幅" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:57 +#: src/app/main/ui/inspect/attributes/shadow.cljs msgid "inspect.attributes.shadow" msgstr "シャドウ" -#, permanent, unused +#, permanent msgid "inspect.attributes.stroke.alignment.center" msgstr "中央" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:89 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.font-family" msgstr "フォントファミリー" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:107 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.font-size" msgstr "フォントサイズ" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:98 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.font-style" msgstr "フォントスタイル" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:125 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.line-height" msgstr "行の高さ" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:143 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.text-decoration" msgstr "文字装飾" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:147 msgid "inspect.attributes.typography.text-decoration.underline" msgstr "下線" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:98 msgid "inspect.tabs.code.selected.circle" msgstr "円" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:99 msgid "inspect.tabs.code.selected.component" msgstr "コンポーネント" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:100 msgid "inspect.tabs.code.selected.curve" msgstr "曲線" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:102 msgid "inspect.tabs.code.selected.group" msgstr "グループ" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:103 msgid "inspect.tabs.code.selected.image" msgstr "画像" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:104 msgid "inspect.tabs.code.selected.mask" msgstr "マスク" -#: src/app/main/ui/workspace/main_menu.cljs:158 +#: src/app/main/ui/workspace/header.cljs msgid "label.shortcuts" msgstr "ショートカット" -#: src/app/main/ui/dashboard/fonts.cljs:175 msgid "labels.add-custom-font" msgstr "カスタムフォントを追加" -#: src/app/main/data/common.cljs:112, src/app/main/ui/dashboard/change_owner.cljs:69, src/app/main/ui/dashboard/import.cljs:514, src/app/main/ui/dashboard/team.cljs:868, src/app/main/ui/delete_shared.cljs:35, src/app/main/ui/export.cljs:164, src/app/main/ui/export.cljs:460, src/app/main/ui/settings/access_tokens.cljs:188, src/app/main/ui/viewer/share_link.cljs:203, src/app/main/ui/workspace/sidebar/assets/groups.cljs:149 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.cancel" msgstr "キャンセル" -#: src/app/main/ui/dashboard/comments.cljs:104, src/app/main/ui/viewer/comments.cljs:70, src/app/main/ui/workspace/comments.cljs:126 +#: src/app/main/ui/dashboard/comments.cljs msgid "labels.comments" msgstr "コメント" -#: src/app/main/ui/dashboard/sidebar.cljs:985, src/app/main/ui/workspace/main_menu.cljs:110 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.community" msgstr "コミュニティ" -#: src/app/main/ui/settings/password.cljs:103 +#: src/app/main/ui/settings/password.cljs msgid "labels.confirm-password" msgstr "パスワードを確認" -#: src/app/main/ui/dashboard/import.cljs:520, src/app/main/ui/export.cljs:465, src/app/main/ui/onboarding/newsletter.cljs:101 msgid "labels.continue" msgstr "続ける" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:157, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:190 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "labels.create" msgstr "作成" -#: src/app/main/ui/dashboard/team_form.cljs:101, src/app/main/ui/dashboard/team_form.cljs:121 +#: src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/dashboard/team_form.cljs msgid "labels.create-team" msgstr "チームを作成" -#: src/app/main/ui/dashboard/team_form.cljs:113 +#: src/app/main/ui/dashboard/team_form.cljs msgid "labels.create-team.placeholder" msgstr "チームの名前を入力" -#, unused msgid "labels.custom-fonts" msgstr "カスタムフォント" -#: src/app/main/ui/settings/sidebar.cljs:73 +#: src/app/main/ui/settings/sidebar.cljs msgid "labels.dashboard" msgstr "ダッシュボード" -#: src/app/main/ui/dashboard/file_menu.cljs:306, src/app/main/ui/dashboard/fonts.cljs:255, src/app/main/ui/dashboard/fonts.cljs:332, src/app/main/ui/dashboard/fonts.cljs:346, src/app/main/ui/dashboard/project_menu.cljs:115, src/app/main/ui/dashboard/team.cljs:904, src/app/main/ui/settings/access_tokens.cljs:209, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:209 +#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "labels.delete" msgstr "削除" -#: src/app/main/ui/comments.cljs:357 +#: src/app/main/ui/comments.cljs msgid "labels.delete-comment" msgstr "コメントを削除" -#: src/app/main/ui/comments.cljs:354 +#: src/app/main/ui/comments.cljs msgid "labels.delete-comment-thread" msgstr "スレッドを削除" -#: src/app/main/ui/dashboard/team.cljs:648 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.delete-invitation" msgstr "招待を削除" -#: src/app/main/ui/dashboard/file_menu.cljs:28, src/app/main/ui/dashboard/files.cljs:72, src/app/main/ui/dashboard/files.cljs:156, src/app/main/ui/dashboard/projects.cljs:220, src/app/main/ui/dashboard/projects.cljs:224, src/app/main/ui/dashboard/sidebar.cljs:791 +#: src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/files.cljs, src/app/main/ui/dashboard/files.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "labels.drafts" msgstr "下書き" -#: src/app/main/ui/comments.cljs:350, src/app/main/ui/dashboard/fonts.cljs:252, src/app/main/ui/dashboard/team.cljs:902, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:205 +#: src/app/main/ui/comments.cljs msgid "labels.edit" msgstr "編集" -#, unused msgid "labels.edit-file" msgstr "ファイルを編集" -#: src/app/main/ui/dashboard/team.cljs:118, src/app/main/ui/dashboard/team.cljs:279, src/app/main/ui/dashboard/team.cljs:520, src/app/main/ui/dashboard/team.cljs:553, src/app/main/ui/onboarding/team_choice.cljs:66 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs msgid "labels.editor" msgstr "エディタ" -#: src/app/main/ui/dashboard/team.cljs:661 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.expired-invitation" msgstr "失効済み" -#: src/app/main/ui/export.cljs:173 msgid "labels.export" msgstr "エクスポート" -#: src/app/main/ui/settings/feedback.cljs:42 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.feedback-sent" msgstr "フィードバックを送信しました" -#: src/app/main/ui/dashboard/fonts.cljs:412 msgid "labels.font-family" msgstr "フォントファミリー" -#: src/app/main/ui/dashboard/fonts.cljs:413 msgid "labels.font-variants" msgstr "スタイル" -#: src/app/main/ui/dashboard/fonts.cljs:52, src/app/main/ui/dashboard/sidebar.cljs:811 msgid "labels.fonts" msgstr "フォント" -#: src/app/main/ui/dashboard/sidebar.cljs:1015, src/app/main/ui/workspace/main_menu.cljs:142 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.github-repo" msgstr "GitHubレポジトリ" -#: src/app/main/ui/dashboard/sidebar.cljs:1032, src/app/main/ui/settings/sidebar.cljs:113, src/app/main/ui/workspace/main_menu.cljs:171 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.give-feedback" msgstr "フィードバックする" -#: src/app/main/ui/auth/recovery_request.cljs:110, src/app/main/ui/auth/register.cljs:285, src/app/main/ui/viewer/login.cljs:117 msgid "labels.go-back" msgstr "戻る" -#: src/app/main/ui/dashboard/sidebar.cljs:978, src/app/main/ui/workspace/main_menu.cljs:102 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.help-center" msgstr "ヘルプセンター" -#: src/app/main/ui/viewer/comments.cljs:103, src/app/main/ui/workspace/comments.cljs:67 +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs msgid "labels.hide-resolved-comments" msgstr "解決済みのコメントを非表示" -#: src/app/main/ui/static.cljs:143 +#: src/app/main/ui/static.cljs msgid "labels.internal-error.main-message" msgstr "内部エラー" -#: src/app/main/ui/dashboard/sidebar.cljs:516, src/app/main/ui/dashboard/team.cljs:89, src/app/main/ui/dashboard/team.cljs:97, src/app/main/ui/dashboard/team.cljs:708 +#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.invitations" msgstr "招待" -#: src/app/main/ui/settings/options.cljs:51 +#: src/app/main/ui/settings/options.cljs msgid "labels.language" msgstr "言語" -#: src/app/main/ui/dashboard/sidebar.cljs:1008, src/app/main/ui/workspace/main_menu.cljs:134 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.libraries-and-templates" msgstr "ライブラリ&テンプレート" -#: src/app/main/ui/dashboard/sidebar.cljs:1040 +#: src/app/main/ui/settings.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.logout" msgstr "ログアウト" -#: src/app/main/ui/dashboard/team.cljs:468 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.member" msgstr "メンバー" -#: src/app/main/ui/dashboard/sidebar.cljs:510, src/app/main/ui/dashboard/team.cljs:87, src/app/main/ui/dashboard/team.cljs:95 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.members" msgstr "メンバー" -#: src/app/main/ui/settings/password.cljs:96 +#: src/app/main/ui/settings/password.cljs msgid "labels.new-password" msgstr "新しいパスワード" -#: src/app/main/ui/dashboard/team.cljs:694 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.no-invitations" msgstr "招待がありません。" -#: src/app/main/ui/static.cljs:49 +#: src/app/main/ui/static.cljs msgid "labels.not-found.main-message" msgstr "おっと!" -#: src/app/main/ui/settings/password.cljs:89 +#: src/app/main/ui/settings/password.cljs msgid "labels.old-password" msgstr "以前のパスワード" #: src/app/main/ui/workspace/comments.cljs -#, unused msgid "labels.only-yours" msgstr "あなた専用" -#, unused msgid "labels.or" msgstr "または" -#: src/app/main/ui/settings/profile.cljs:118, src/app/main/ui/settings/sidebar.cljs:82 +#: src/app/main/ui/settings/sidebar.cljs msgid "labels.profile" msgstr "プロフィール" -#: src/app/main/ui/dashboard/sidebar.cljs:784 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.projects" msgstr "プロジェクト" -#: src/app/main/ui/dashboard/sidebar.cljs:998, src/app/main/ui/settings/sidebar.cljs:106, src/app/main/ui/workspace/main_menu.cljs:126 +#: src/app/main/ui/settings/sidebar.cljs msgid "labels.release-notes" msgstr "リリースノート" #: src/app/main/ui/workspace/libraries.cljs, src/app/main/ui/dashboard/team.cljs -#, unused msgid "labels.remove" msgstr "削除" -#: src/app/main/ui/dashboard/team.cljs:316 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.remove-member" msgstr "メンバーを削除" -#: src/app/main/ui/dashboard/file_menu.cljs:271, src/app/main/ui/dashboard/project_menu.cljs:85, src/app/main/ui/dashboard/sidebar.cljs:539, src/app/main/ui/workspace/sidebar/assets/groups.cljs:157 +#: src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "labels.rename" msgstr "名前を変更" -#: src/app/main/ui/dashboard/team_form.cljs:99 +#: src/app/main/ui/dashboard/team_form.cljs msgid "labels.rename-team" msgstr "チーム名を変更" -#: src/app/main/ui/dashboard/team.cljs:645 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.resend-invitation" msgstr "招待を再送" -#: src/app/main/ui/static.cljs:61, src/app/main/ui/static.cljs:70, src/app/main/ui/static.cljs:148 +#: src/app/main/ui/static.cljs, src/app/main/ui/static.cljs, src/app/main/ui/static.cljs msgid "labels.retry" msgstr "リトライ" diff --git a/frontend/translations/ko.po b/frontend/translations/ko.po index a91fbffc6a..3bd56f6d27 100644 --- a/frontend/translations/ko.po +++ b/frontend/translations/ko.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "PO-Revision-Date: 2024-06-17 08:07+0000\n" "Last-Translator: Anonymous \n" -"Language-Team: Korean " -"\n" +"Language-Team: Korean \n" "Language: ko\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" @@ -11,910 +11,826 @@ msgstr "" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Weblate 5.6-dev\n" -#: src/app/main/ui/auth/register.cljs:151, src/app/main/ui/viewer/login.cljs:104 +#: src/app/main/ui/auth/register.cljs msgid "auth.already-have-account" msgstr "이미 계정이 있으신가요?" -#: src/app/main/ui/auth/register.cljs:299 -msgid "auth.check-your-email" -msgstr "이메일에 포함된 링크를 클릭하여 계정을 인증하고 펜팟의 사용을 시작하십시오." - -#: src/app/main/ui/auth/recovery.cljs:78 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.confirm-password" msgstr "비밀번호 확인하기" -#: src/app/main/ui/auth/register.cljs:163 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.create-demo-account" msgstr "데모 계정을 생성하세요" #: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs -#, unused msgid "auth.create-demo-profile" msgstr "그냥 해볼까요?" -#: src/app/main/ui/auth/login.cljs:43 -msgid "auth.demo-warning" -msgstr "데모 서비스입니다. 실제 작업에 사용하지 마십시오. 생성된 프로젝트는 주기적으로 삭제될 것입니다." - -#: src/app/main/ui/auth/login.cljs:189, src/app/main/ui/viewer/login.cljs:90 +#: src/app/main/ui/auth/login.cljs msgid "auth.forgot-password" msgstr "비밀번호를 잊어버리셨나요?" -#: src/app/main/ui/auth/register.cljs:254 -msgid "auth.fullname" -msgstr "이름 (성명)" - -#: src/app/main/ui/auth/login.cljs:282 -msgid "auth.login-account-title" -msgstr "내 계정에 로그인하기" - -#: src/app/main/ui/auth/register.cljs:155, src/app/main/ui/viewer/login.cljs:107 +#: src/app/main/ui/auth/register.cljs +#, fuzzy msgid "auth.login-here" msgstr "여기서 로그인하세요" -#: src/app/main/ui/auth/login.cljs:195 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-submit" msgstr "로그인" -#: src/app/main/ui/auth/login.cljs:285 -msgid "auth.login-tagline" -msgstr "펜팟은 디자인과 코딩의 협업을 위한 무료 오픈소스 디자인 도구입니다" - -#: src/app/main/ui/auth/login.cljs:222 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-github-submit" msgstr "깃허브 (GitHub)" -#: src/app/main/ui/auth/login.cljs:228 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-gitlab-submit" msgstr "깃랩 (GitLab)" -#: src/app/main/ui/auth/login.cljs:216 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-google-submit" msgstr "구글 (Google)" -#: src/app/main/ui/auth/login.cljs:201 -msgid "auth.login-with-ldap-submit" -msgstr "LDAP" - -#: src/app/main/ui/auth/login.cljs:234, src/app/main/ui/auth/login.cljs:255 -msgid "auth.login-with-oidc-submit" -msgstr "오픈아이디 (OpenID)" - -#: src/app/main/ui/auth/register.cljs:217, src/app/main/ui/dashboard/team_form.cljs:76, src/app/main/ui/onboarding/team_choice.cljs:180, src/app/main/ui/settings/access_tokens.cljs:66, src/app/main/ui/settings/feedback.cljs:34, src/app/main/ui/settings/profile.cljs:45, src/app/main/ui/workspace/sidebar/assets/groups.cljs:108 -msgid "auth.name.not-all-space" -msgstr "이름은 공백 이외의 글자를 포함해야 합니다." - -#: src/app/main/ui/auth/register.cljs:218, src/app/main/ui/dashboard/team_form.cljs:77, src/app/main/ui/onboarding/team_choice.cljs:181, src/app/main/ui/settings/access_tokens.cljs:67, src/app/main/ui/settings/feedback.cljs:33, src/app/main/ui/settings/profile.cljs:44, src/app/main/ui/workspace/sidebar/assets/groups.cljs:109 -msgid "auth.name.too-long" -msgstr "이름은 최대 250자까지만 입력 가능합니다." - -#: src/app/main/ui/auth/recovery.cljs:71 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.new-password" msgstr "새 비밀번호를 입력하세요" -#: src/app/main/ui/auth/recovery.cljs:42 -msgid "auth.notifications.invalid-token-error" -msgstr "복구 토큰이 유효하지 않습니다." - -#: src/app/main/ui/auth/recovery.cljs:46 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.notifications.password-changed-successfully" msgstr "비밀번호가 성공적으로 변경되었어요" -#: src/app/main/ui/auth/recovery_request.cljs:57 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.notifications.profile-not-verified" msgstr "프로필이 검증되지 않았어요. 계속 하려면 검증절차를 완료해주세요." -#: src/app/main/ui/auth/recovery_request.cljs:40 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.notifications.recovery-token-sent" msgstr "비밀번호 복구를 위한 링크를 메일함으로 보냈어요" -#: src/app/main/ui/auth/verify_token.cljs:47 +#: src/app/main/ui/auth/verify_token.cljs msgid "auth.notifications.team-invitation-accepted" msgstr "팀에 성공적으로 합류했어요" -#: src/app/main/ui/auth/login.cljs:179, src/app/main/ui/auth/register.cljs:115 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.password" msgstr "비밀번호" -#: src/app/main/ui/auth/register.cljs:114 +#: src/app/main/ui/auth/register.cljs msgid "auth.password-length-hint" msgstr "최소 8개의 문자" -#: src/app/main/ui/auth/recovery.cljs:61, src/app/main/ui/auth/recovery.cljs:62, src/app/main/ui/auth/register.cljs:81, src/app/main/ui/settings/password.cljs:75, src/app/main/ui/settings/password.cljs:76, src/app/main/ui/settings/password.cljs:77 -msgid "auth.password-not-empty" -msgstr "비밀번호는 공백 이외의 글자를 포함해야 합니다." - -#: src/app/main/ui/auth.cljs:41 msgid "auth.privacy-policy" msgstr "개인 정보 정책" -#: src/app/main/ui/auth/recovery_request.cljs:88 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-submit" msgstr "비밀번호 복구하기" -#: src/app/main/ui/auth/recovery_request.cljs:101 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-subtitle" msgstr "이용지침을 메일로 전달해드릴거에요" -#: src/app/main/ui/auth/recovery_request.cljs:100 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-title" msgstr "비밀번호를 잊으셨나요?" -#: src/app/main/ui/auth/recovery.cljs:82 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.recovery-submit" msgstr "비밀번호를 바꾸세요" -#: src/app/main/ui/auth/login.cljs:298, src/app/main/ui/viewer/login.cljs:93 +#: src/app/main/ui/auth/login.cljs msgid "auth.register" msgstr "아직 계정이 없으신가요?" -#: src/app/main/ui/auth/login.cljs:302, src/app/main/ui/auth/register.cljs:121, src/app/main/ui/auth/register.cljs:263, src/app/main/ui/viewer/login.cljs:97 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.register-submit" msgstr "계정을 생성하세요" -#: src/app/main/ui/auth/register.cljs:140 +#: src/app/main/ui/auth/register.cljs msgid "auth.register-title" msgstr "계정을 생성하세요" #: src/app/main/ui/auth.cljs -#, unused msgid "auth.sidebar-tagline" msgstr "디자인과 프로토타이핑을 위한 오픈소스 솔루션." -#: src/app/main/ui/auth.cljs:33, src/app/main/ui/dashboard/sidebar.cljs:1022, src/app/main/ui/workspace/main_menu.cljs:150 msgid "auth.terms-of-service" msgstr "서비스 정책" -#, unused +#: src/app/main/ui/auth/register.cljs msgid "auth.terms-privacy-agreement" -msgstr "새로운 계정을 생성하시면, 사용자는 펜팟의 서비스 정책과 개인 정보 정책에 동의하는 것으로 간주됩니다." +msgstr "새로운 계정을 생성하시면, 사용자는 펜팟의 서비스 정책과 개인 정보 정책에 " +"동의하는 것으로 간주됩니다." -#: src/app/main/ui/auth/register.cljs:297 +#: src/app/main/ui/auth/register.cljs msgid "auth.verification-email-sent" msgstr "검증 메일을 ~에 보냈어요" -#: src/app/main/ui/onboarding/questions.cljs -#, unused -msgid "branding-illustrations-marketing-pieces" -msgstr "...브랜딩, 일러스트레이션, 마케팅 자료 등." - -#: src/app/main/ui/workspace/libraries.cljs:228 msgid "common.publish" msgstr "발행하기" -#: src/app/main/ui/viewer/share_link.cljs:304, src/app/main/ui/viewer/share_link.cljs:314 msgid "common.share-link.all-users" msgstr "모든 펜팟 유저들" -#: src/app/main/ui/viewer/share_link.cljs:198 msgid "common.share-link.confirm-deletion-link-description" msgstr "정말로 링크를 제거하고 싶으세요? 제거하시면, 더이상 아무도 이용할 수 없어요" -#: src/app/main/ui/viewer/share_link.cljs:259, src/app/main/ui/viewer/share_link.cljs:289 msgid "common.share-link.current-tag" msgstr "(현재)" -#: src/app/main/ui/viewer/share_link.cljs:207, src/app/main/ui/viewer/share_link.cljs:214 -msgid "common.share-link.destroy-link" -msgstr "링크 제거하기" - -#: src/app/main/ui/viewer/share_link.cljs:221 msgid "common.share-link.get-link" msgstr "링크 얻기" -#: src/app/main/ui/viewer/share_link.cljs:139 msgid "common.share-link.link-copied-success" msgstr "링크를 성공적으로 복사했어요" -#: src/app/main/ui/viewer/share_link.cljs:231 msgid "common.share-link.manage-ops" msgstr "권한을 관리하세요" -#: src/app/main/ui/viewer/share_link.cljs:277 -msgid "common.share-link.page-shared" -msgid_plural "common.share-link.page-shared" -msgstr[0] "%s 페이지가 공유되었습니다" - -#: src/app/main/ui/viewer/share_link.cljs:298 msgid "common.share-link.permissions-can-comment" msgstr "코멘트를 달 수 있어요" -#: src/app/main/ui/viewer/share_link.cljs:308 msgid "common.share-link.permissions-can-inspect" msgstr "코드를 검사할 수 있어요" -#: src/app/main/ui/viewer/share_link.cljs:193 msgid "common.share-link.permissions-hint" msgstr "링크를 가진 누구나 접근할 수 있어요" -#: src/app/main/ui/viewer/share_link.cljs:241 msgid "common.share-link.permissions-pages" msgstr "페이지가 공유됐어요" -#: src/app/main/ui/viewer/share_link.cljs:183 msgid "common.share-link.placeholder" msgstr "공유할 수 있는 링크는 여기 나타날거에요" -#: src/app/main/ui/viewer/share_link.cljs:303, src/app/main/ui/viewer/share_link.cljs:313 msgid "common.share-link.team-members" msgstr "오직 팀원들을 위해" -#: src/app/main/ui/viewer/share_link.cljs:171 msgid "common.share-link.title" msgstr "프로토타입을 공유해요" -#: src/app/main/ui/viewer/share_link.cljs:269 msgid "common.share-link.view-all" msgstr "모두 선택해요" -#: src/app/main/ui/workspace/libraries.cljs:224 msgid "common.unpublish" msgstr "발행취소하기" -#: src/app/main/ui/dashboard/projects.cljs:85 +#: src/app/main/ui/dashboard/projects.cljs msgid "dasboard.team-hero.management" msgstr "팀 관리" -#: src/app/main/ui/dashboard/projects.cljs:84 -msgid "dasboard.team-hero.text" -msgstr "펜팟은 팀을 위한 도구입니다. 팀원들을 초대하여 프로젝트 및 파일 단위로 협업하십시오" - -#: src/app/main/ui/dashboard/projects.cljs:82 +#: src/app/main/ui/dashboard/projects.cljs msgid "dasboard.team-hero.title" msgstr "팀을 이뤄요!" #: src/app/main/ui/dashboard/projects.cljs -#, unused -msgid "dasboard.tutorial-hero.info" -msgstr "본 실습용 튜토리얼을 통해 펜팟의 기본 기능에 대하여 재미있게 학습하십시오." - -#: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.tutorial-hero.start" msgstr "튜토리얼을 시작하세요" #: src/app/main/ui/dashboard/projects.cljs -#, unused -msgid "dasboard.tutorial-hero.title" -msgstr "실습용 튜토리얼" - -#: src/app/main/ui/dashboard/projects.cljs -#, unused -msgid "dasboard.walkthrough-hero.info" -msgstr "펜팟을 둘러보고 주요 기능에 대한 정보를 습득하십시오." - -#: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.walkthrough-hero.start" msgstr "투어를 시작해요" -#: src/app/main/ui/dashboard/projects.cljs -#, unused -msgid "dasboard.walkthrough-hero.title" -msgstr "인터페이스 둘러보기" - -#: src/app/main/ui/settings/access_tokens.cljs:115 -msgid "dashboard.access-tokens.copied-success" -msgstr "복사된 토큰" - -#: src/app/main/ui/settings/access_tokens.cljs:202 -msgid "dashboard.access-tokens.create" -msgstr "새로운 토큰 생성하기" - -#: src/app/main/ui/settings/access_tokens.cljs:76 -msgid "dashboard.access-tokens.create.success" -msgstr "엑세스 토큰이 성공적으로 생성되었습니다." - -#: src/app/main/ui/settings/access_tokens.cljs:300 -msgid "dashboard.access-tokens.empty.add-one" -msgstr "\"새로운 토큰 생성하기\" 버튼을 눌러 토큰을 생성하십시오." - -#: src/app/main/ui/settings/access_tokens.cljs:299 -msgid "dashboard.access-tokens.empty.no-access-tokens" -msgstr "현재 가지고 있는 토큰이 없습니다." - -#: src/app/main/ui/settings/access_tokens.cljs:53 -msgid "dashboard.access-tokens.errors-required-name" -msgstr "이름을 입력하십시오" - -#: src/app/main/ui/settings/access_tokens.cljs:147 -msgid "dashboard.access-tokens.expiration-180-days" -msgstr "180일" - -#: src/app/main/ui/settings/access_tokens.cljs:144 -msgid "dashboard.access-tokens.expiration-30-days" -msgstr "30일" - -#: src/app/main/ui/settings/access_tokens.cljs:145 -msgid "dashboard.access-tokens.expiration-60-days" -msgstr "60일" - -#: src/app/main/ui/settings/access_tokens.cljs:146 -msgid "dashboard.access-tokens.expiration-90-days" -msgstr "90일" - -#: src/app/main/ui/settings/access_tokens.cljs:143 -msgid "dashboard.access-tokens.expiration-never" -msgstr "기한 없음" - -#: src/app/main/ui/settings/access_tokens.cljs:282 -msgid "dashboard.access-tokens.expired-on" -msgstr "%s에 만료되었습니다" - -#: src/app/main/ui/settings/access_tokens.cljs:283 -msgid "dashboard.access-tokens.expires-on" -msgstr "%s에 만료됩니다" - -#: src/app/main/ui/settings/access_tokens.cljs:281 -msgid "dashboard.access-tokens.no-expiration" -msgstr "만료 기한 없음" - -#: src/app/main/ui/settings/access_tokens.cljs:197 -msgid "dashboard.access-tokens.personal" -msgstr "개인용 엑세스 토큰" - -#: src/app/main/ui/settings/access_tokens.cljs:198 -msgid "dashboard.access-tokens.personal.description" -msgstr "" -"개인용 엑세스 토큰은 펜팟의 로그인/암호 인증 시스템의 대안으로 사용되며, 어플리케이션의 펜팟 내부 API 엑세스를 위해 사용될 수 " -"있습니다" - -#: src/app/main/ui/settings/access_tokens.cljs:154 -msgid "dashboard.access-tokens.token-will-expire" -msgstr "토큰은 %s에 만료 예정입니다" - -#: src/app/main/ui/settings/access_tokens.cljs:155 -msgid "dashboard.access-tokens.token-will-not-expire" -msgstr "토큰의 만료 기한이 없습니다" - -#: src/app/main/ui/dashboard/file_menu.cljs:291, src/app/main/ui/workspace/main_menu.cljs:572 -msgid "dashboard.add-shared" -msgstr "공유 라이브러리로 추가하기" - -#: src/app/main/ui/settings/profile.cljs:75 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.change-email" msgstr "이메일을 변경해요" -#: src/app/main/data/dashboard.cljs:762, src/app/main/data/dashboard.cljs:983 +#: src/app/main/data/dashboard.cljs, src/app/main/data/dashboard.cljs msgid "dashboard.copy-suffix" msgstr "(복사)" -#: src/app/main/ui/dashboard/sidebar.cljs:338 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.create-new-team" msgstr "새 팀을 생성해요" -#: src/app/main/ui/components/context_menu_a11y.cljs:256, src/app/main/ui/dashboard/sidebar.cljs:646 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.default-team-name" msgstr "당신의 펜팟" -#: src/app/main/ui/dashboard/sidebar.cljs:571 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.delete-team" msgstr "팀을 해체해요" -#: src/app/main/ui/dashboard/file_menu.cljs:296, src/app/main/ui/workspace/main_menu.cljs:589 msgid "dashboard.download-binary-file" msgstr "펜팟 파일(.penpot)을 다운로드해요" -#: src/app/main/ui/dashboard/file_menu.cljs:300, src/app/main/ui/workspace/main_menu.cljs:597 msgid "dashboard.download-standard-file" msgstr "표준 파일(.svg + .json)을 다운로드해요" -#: src/app/main/ui/dashboard/file_menu.cljs:276, src/app/main/ui/dashboard/project_menu.cljs:90 +#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.duplicate" msgstr "복제해요" -#: src/app/main/ui/dashboard/file_menu.cljs:240 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.duplicate-multi" msgstr "%파일을 복제해요" -#: src/app/main/ui/dashboard/placeholder.cljs:32 -#, markdown -msgid "dashboard.empty-placeholder-drafts" -msgstr "" -"라이브러리에 추가된 파일은 여기에서 볼 수 있습니다. 파일을 공유하거나 펜팟의 [라이브러리와 " -"템플릿](https://penpot.app/libraries-templates.html) 에서 추가해 보십시오." - -#: src/app/main/ui/dashboard/file_menu.cljs:249 -msgid "dashboard.export-binary-multi" -msgstr "%s 펜팟 파일 (.penpot) 다운로드 하기" - -#: src/app/main/ui/workspace/main_menu.cljs:605 msgid "dashboard.export-frames" msgstr "대지를 PDF로 내보내요" -#: src/app/main/ui/export.cljs:201 +#: src/app/main/ui/export.cljs msgid "dashboard.export-frames.title" msgstr "PDF로 내보내요" -#: src/app/main/ui/workspace/main_menu.cljs:578 +#: src/app/main/ui/workspace/header.cljs msgid "dashboard.export-shapes" msgstr "내보내요" -#: src/app/main/ui/viewer/inspect/attributes/blur.cljs:26 +#: src/app/main/ui/inspect/attributes/blur.cljs msgid "inspect.attributes.blur" msgstr "흐림" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:115 +#: src/app/main/ui/inspect/attributes/blur.cljs msgid "inspect.attributes.blur.value" msgstr "값" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:112 +#: src/app/main/ui/inspect/attributes/common.cljs msgid "inspect.attributes.color.hex" msgstr "HEX" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:114 +#: src/app/main/ui/inspect/attributes/common.cljs msgid "inspect.attributes.color.hsla" msgstr "HSLA" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:113 +#: src/app/main/ui/inspect/attributes/common.cljs msgid "inspect.attributes.color.rgba" msgstr "RGBA" -#: src/app/main/ui/viewer/inspect/attributes/fill.cljs:57 +#: src/app/main/ui/inspect/attributes/fill.cljs msgid "inspect.attributes.fill" msgstr "채우기" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:99, src/app/main/ui/viewer/inspect/attributes/image.cljs:51 +#: src/app/main/ui/inspect/attributes/image.cljs msgid "inspect.attributes.image.download" msgstr "소스 이미지 다운로드" -#: src/app/main/ui/viewer/inspect/attributes/image.cljs:39 +#: src/app/main/ui/inspect/attributes/image.cljs msgid "inspect.attributes.image.height" msgstr "높이" -#: src/app/main/ui/viewer/inspect/attributes/image.cljs:32 +#: src/app/main/ui/inspect/attributes/image.cljs msgid "inspect.attributes.image.width" msgstr "폭" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout" msgstr "레이아웃" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.height" msgstr "높이" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.left" msgstr "왼쪽" #: src/app/main/ui/inspect/attributes/layout.cljs, src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.radius" msgstr "반지름" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.rotation" msgstr "회전" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.top" msgstr "위" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.width" msgstr "폭" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:57 +#: src/app/main/ui/inspect/attributes/shadow.cljs msgid "inspect.attributes.shadow" msgstr "그림자" -#: src/app/main/ui/viewer/inspect/attributes/geometry.cljs:40 +#: src/app/main/ui/inspect/attributes/layout.cljs msgid "inspect.attributes.size" msgstr "사이즈와 위치" -#: src/app/main/ui/viewer/inspect/attributes/stroke.cljs:52 +#: src/app/main/ui/inspect/attributes/stroke.cljs msgid "inspect.attributes.stroke" msgstr "선" -#, permanent, unused +#, permanent msgid "inspect.attributes.stroke.alignment.center" msgstr "중앙" -#, permanent, unused +#, permanent msgid "inspect.attributes.stroke.alignment.inner" msgstr "안쪽" -#, permanent, unused +#, permanent msgid "inspect.attributes.stroke.alignment.outer" msgstr "바깥쪽" -#, unused msgid "inspect.attributes.stroke.style.dotted" msgstr "점선" -#, unused msgid "inspect.attributes.stroke.style.mixed" msgstr "혼합" -#, unused msgid "inspect.attributes.stroke.style.solid" msgstr "단색" #: src/app/main/ui/inspect/attributes/stroke.cljs -#, unused msgid "inspect.attributes.stroke.width" msgstr "폭" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:81, src/app/main/ui/viewer/inspect/attributes/text.cljs:194 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography" msgstr "타이포그래피" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:89 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.font-family" msgstr "폰트 패밀리" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:107 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.font-size" msgstr "폰트 사이즈" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:98 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.font-style" msgstr "폰트 스타일" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:146 msgid "inspect.attributes.typography.text-decoration.strikethrough" msgstr "취소선" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:147 msgid "inspect.attributes.typography.text-decoration.underline" msgstr "밑줄" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:156 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.text-transform" msgstr "텍스트 변형" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:158 msgid "inspect.attributes.typography.text-transform.lowercase" msgstr "소문자" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:161 msgid "inspect.attributes.typography.text-transform.uppercase" msgstr "대문자" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:125 +#: src/app/main/ui/inspect/right_sidebar.cljs msgid "inspect.tabs.code" msgstr "코드" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:98 msgid "inspect.tabs.code.selected.circle" msgstr "원" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:99 msgid "inspect.tabs.code.selected.component" msgstr "컴포넌트" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:100 msgid "inspect.tabs.code.selected.curve" msgstr "커브" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:101 msgid "inspect.tabs.code.selected.frame" msgstr "보드" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:102 msgid "inspect.tabs.code.selected.group" msgstr "그룹" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:103 msgid "inspect.tabs.code.selected.image" msgstr "이미지" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:104 msgid "inspect.tabs.code.selected.mask" msgstr "마스크" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:105 msgid "inspect.tabs.code.selected.path" msgstr "패스" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:106 msgid "inspect.tabs.code.selected.rect" msgstr "사각형" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:107 msgid "inspect.tabs.code.selected.svg-raw" msgstr "SVG" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:108 msgid "inspect.tabs.code.selected.text" msgstr "텍스트" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:115 +#: src/app/main/ui/inspect/right_sidebar.cljs msgid "inspect.tabs.info" msgstr "정보" -#: src/app/main/ui/workspace/main_menu.cljs:158 +#: src/app/main/ui/workspace/header.cljs msgid "label.shortcuts" msgstr "단축키" -#: src/app/main/ui/dashboard/import.cljs:527 msgid "labels.accept" msgstr "허가" -#: src/app/main/ui/dashboard/team.cljs:968 msgid "labels.active" msgstr "활성화" -#: src/app/main/ui/dashboard/fonts.cljs:175 msgid "labels.add-custom-font" msgstr "커스텀 폰트 추가" -#: src/app/main/ui/dashboard/team.cljs:120, src/app/main/ui/dashboard/team.cljs:276, src/app/main/ui/dashboard/team.cljs:519, src/app/main/ui/dashboard/team.cljs:549, src/app/main/ui/onboarding/team_choice.cljs:67 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs msgid "labels.admin" msgstr "관리자" #: src/app/main/ui/workspace/comments.cljs -#, unused msgid "labels.all" msgstr "전체" -#: src/app/main/ui/auth.cljs:37 msgid "labels.and" msgstr "그리고" -#: src/app/main/ui/onboarding/team_choice.cljs:162 msgid "labels.back" msgstr "뒤로" -#: src/app/main/ui/static.cljs:58 +#: src/app/main/ui/static.cljs msgid "labels.bad-gateway.main-message" msgstr "잘못된 경로" -#: src/app/main/data/common.cljs:112, src/app/main/ui/dashboard/change_owner.cljs:69, src/app/main/ui/dashboard/import.cljs:514, src/app/main/ui/dashboard/team.cljs:868, src/app/main/ui/delete_shared.cljs:35, src/app/main/ui/export.cljs:164, src/app/main/ui/export.cljs:460, src/app/main/ui/settings/access_tokens.cljs:188, src/app/main/ui/viewer/share_link.cljs:203, src/app/main/ui/workspace/sidebar/assets/groups.cljs:149 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.cancel" msgstr "취소" -#: src/app/main/ui/dashboard/projects.cljs:93, src/app/main/ui/export.cljs:478, src/app/main/ui/settings/access_tokens.cljs:183, src/app/main/ui/viewer/login.cljs:77, src/app/main/ui/viewer/share_link.cljs:174, src/app/main/ui/workspace/libraries.cljs:522 msgid "labels.close" msgstr "닫기" -#: src/app/main/ui/dashboard/comments.cljs:104, src/app/main/ui/viewer/comments.cljs:70, src/app/main/ui/workspace/comments.cljs:126 +#: src/app/main/ui/dashboard/comments.cljs msgid "labels.comments" msgstr "코멘트" -#: src/app/main/ui/dashboard/sidebar.cljs:985, src/app/main/ui/workspace/main_menu.cljs:110 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.community" msgstr "커뮤니티" -#: src/app/main/ui/settings/password.cljs:103 +#: src/app/main/ui/settings/password.cljs msgid "labels.confirm-password" msgstr "비밀번호 확인하기" -#: src/app/main/ui/dashboard/import.cljs:520, src/app/main/ui/export.cljs:465, src/app/main/ui/onboarding/newsletter.cljs:101 msgid "labels.continue" msgstr "계속하기" -#: src/app/main/ui/dashboard/team.cljs:642 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.copy-invitation-link" msgstr "링크 복사하기" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:157, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:190 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "labels.create" msgstr "생성하기" -#: src/app/main/ui/dashboard/team_form.cljs:101, src/app/main/ui/dashboard/team_form.cljs:121 +#: src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/dashboard/team_form.cljs msgid "labels.create-team" msgstr "새로운 팀 만들기" -#: src/app/main/ui/dashboard/team_form.cljs:113 +#: src/app/main/ui/dashboard/team_form.cljs msgid "labels.create-team.placeholder" msgstr "새로운 팀명 입력하세요" -#, unused msgid "labels.custom-fonts" msgstr "커스텀 폰트" -#: src/app/main/ui/settings/sidebar.cljs:73 +#: src/app/main/ui/settings/sidebar.cljs msgid "labels.dashboard" msgstr "대시보드" -#: src/app/main/ui/dashboard/file_menu.cljs:306, src/app/main/ui/dashboard/fonts.cljs:255, src/app/main/ui/dashboard/fonts.cljs:332, src/app/main/ui/dashboard/fonts.cljs:346, src/app/main/ui/dashboard/project_menu.cljs:115, src/app/main/ui/dashboard/team.cljs:904, src/app/main/ui/settings/access_tokens.cljs:209, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:209 +#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "labels.delete" msgstr "삭제하기" -#: src/app/main/ui/comments.cljs:357 +#: src/app/main/ui/comments.cljs msgid "labels.delete-comment" msgstr "코멘트 삭제하기" -#: src/app/main/ui/comments.cljs:354 +#: src/app/main/ui/comments.cljs msgid "labels.delete-comment-thread" msgstr "스레드 제거하기" -#: src/app/main/ui/dashboard/team.cljs:648 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.delete-invitation" msgstr "초대장 제거하기" -#: src/app/main/ui/dashboard/file_menu.cljs:28, src/app/main/ui/dashboard/files.cljs:72, src/app/main/ui/dashboard/files.cljs:156, src/app/main/ui/dashboard/projects.cljs:220, src/app/main/ui/dashboard/projects.cljs:224, src/app/main/ui/dashboard/sidebar.cljs:791 +#: src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/files.cljs, src/app/main/ui/dashboard/files.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "labels.drafts" msgstr "초안" -#: src/app/main/ui/comments.cljs:350, src/app/main/ui/dashboard/fonts.cljs:252, src/app/main/ui/dashboard/team.cljs:902, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:205 +#: src/app/main/ui/comments.cljs msgid "labels.edit" msgstr "편집" -#, unused msgid "labels.edit-file" msgstr "파일 편집" -#: src/app/main/ui/dashboard/team.cljs:118, src/app/main/ui/dashboard/team.cljs:279, src/app/main/ui/dashboard/team.cljs:520, src/app/main/ui/dashboard/team.cljs:553, src/app/main/ui/onboarding/team_choice.cljs:66 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs msgid "labels.editor" msgstr "작성자" -#: src/app/main/ui/dashboard/team.cljs:661 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.expired-invitation" msgstr "기한이 만료된" -#: src/app/main/ui/export.cljs:173 msgid "labels.export" msgstr "내보내기" -#: src/app/main/ui/dashboard/fonts.cljs:412 msgid "labels.font-family" msgstr "폰트 패밀리" -#, unused msgid "labels.font-providers" msgstr "폰트 공급자" -#: src/app/main/ui/dashboard/fonts.cljs:413 msgid "labels.font-variants" msgstr "스타일" -#: src/app/main/ui/dashboard/fonts.cljs:52, src/app/main/ui/dashboard/sidebar.cljs:811 msgid "labels.fonts" msgstr "폰트" -#: src/app/main/ui/auth/recovery_request.cljs:110, src/app/main/ui/auth/register.cljs:285, src/app/main/ui/viewer/login.cljs:117 msgid "labels.go-back" msgstr "뒤로 가기" -#: src/app/main/ui/dashboard/sidebar.cljs:978, src/app/main/ui/workspace/main_menu.cljs:102 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.help-center" msgstr "고객센터" -#: src/app/main/ui/dashboard/team.cljs:969 msgid "labels.inactive" msgstr "비활성화" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs:223 msgid "labels.view-only" msgstr "보기 전용" -#: src/app/main/ui/dashboard/team.cljs:123, src/app/main/ui/dashboard/team.cljs:282, src/app/main/ui/dashboard/team.cljs:521 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.viewer" msgstr "뷰어" -#: src/app/main/ui/dashboard/sidebar.cljs:523, src/app/main/ui/dashboard/team.cljs:90, src/app/main/ui/dashboard/team.cljs:100, src/app/main/ui/dashboard/team.cljs:880 msgid "labels.webhooks" msgstr "웹훅" -#: src/app/main/ui/comments.cljs:194 +#: src/app/main/ui/comments.cljs msgid "labels.write-new-comment" msgstr "새 코멘트 쓰기" -#: src/app/main/data/media.cljs:49, src/app/main/data/workspace/media.cljs:223, src/app/main/data/workspace/media.cljs:453 +#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs msgid "media.loading" msgstr "이미지 로딩중…" -#: src/app/main/data/common.cljs:113 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.add-shared-confirm.accept" msgstr "공유된 라이브러리로 추가" -#: src/app/main/data/common.cljs:110 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.add-shared-confirm.message" msgstr " " -#: src/app/main/ui/settings/change_email.cljs:127 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.confirm-email" msgstr "새 이메일 인증하기" -#: src/app/main/ui/settings/change_email.cljs:119 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.new-email" msgstr "새 이메일" -#: src/app/main/ui/settings/change_email.cljs:136 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.submit" msgstr "이메일 변경하기" -#: src/app/main/ui/settings/change_email.cljs:107 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.title" msgstr "이메일을 변경하세요" -#: src/app/main/ui/dashboard/team.cljs:873 msgid "modals.create-webhook.submit-label" msgstr "웹훅 만들기" -#: src/app/main/ui/dashboard/team.cljs:838 msgid "modals.create-webhook.title" msgstr "웹훅 생성하기" -#: src/app/main/ui/comments.cljs:298 +#: src/app/main/ui/comments.cljs msgid "modals.delete-comment-thread.accept" msgstr "대회 지우기" -#: src/app/main/ui/comments.cljs:296 +#: src/app/main/ui/comments.cljs msgid "modals.delete-comment-thread.title" msgstr "대화 지우기" -#: src/app/main/ui/dashboard/file_menu.cljs:123 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-confirm.accept" msgstr "파일 지우기" -#: src/app/main/ui/dashboard/file_menu.cljs:122 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-confirm.message" msgstr "이 파일을 정말로 지우시겠습니까?" -#: src/app/main/ui/dashboard/file_menu.cljs:121 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-confirm.title" msgstr "파일 삭제중" -#: src/app/main/ui/dashboard/file_menu.cljs:117 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-multi-confirm.accept" msgstr "여러 파일 지우기" -#: src/app/main/ui/dashboard/fonts.cljs:344 msgid "modals.delete-font-variant.title" msgstr "폰트 스타일 지우는 중" -#: src/app/main/ui/dashboard/fonts.cljs:330 msgid "modals.delete-font.title" msgstr "폰트 지우는 중" -#: src/app/main/ui/workspace/context_menu.cljs:522, src/app/main/ui/workspace/sidebar/sitemap.cljs:45 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs msgid "modals.delete-page.body" msgstr "정말로 해당 페이지를 지우시겠습니까?" -#: src/app/main/ui/workspace/context_menu.cljs:521, src/app/main/ui/workspace/sidebar/sitemap.cljs:44 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs msgid "modals.delete-page.title" msgstr "페이지 삭제" -#: src/app/main/ui/dashboard/project_menu.cljs:69 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "modals.delete-project-confirm.accept" msgstr "프로젝트 제거" -#: src/app/main/ui/dashboard/project_menu.cljs:68 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "modals.delete-project-confirm.message" msgstr "정말로 해당 프로젝트를 지우시겠습니까?" -#: src/app/main/ui/dashboard/project_menu.cljs:67 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "modals.delete-project-confirm.title" msgstr "프로젝트 제거" -#: src/app/main/ui/settings/options.cljs:29, src/app/main/ui/settings/profile.cljs:35 +#: src/app/main/ui/settings/profile.cljs, src/app/main/ui/settings/options.cljs msgid "notifications.profile-saved" msgstr "프로필이 성공적으로 저장되었습니다!" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:112 msgid "shortcuts.flip-horizontal" msgstr "가로로 뒤집기" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:113 msgid "shortcuts.flip-vertical" msgstr "세로로 뒤집기" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:116 msgid "shortcuts.go-to-drafts" msgstr "초안으로 가기" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:117 msgid "shortcuts.go-to-libs" msgstr "공유된 라이브러리로 가기" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:118 msgid "shortcuts.go-to-search" msgstr "찾기" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:119 msgid "shortcuts.group" msgstr "그룹" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:120 msgid "shortcuts.h-distribute" msgstr "가로로 분배하기" + +#: src/app/main/ui/auth/register.cljs +msgid "auth.check-your-email" +msgstr "이메일에 포함된 링크를 클릭하여 계정을 인증하고 펜팟의 사용을 시작하십시오." + +#: src/app/main/ui/auth/register.cljs +msgid "auth.fullname" +msgstr "이름 (성명)" + +#: src/app/main/ui/auth/register.cljs +msgid "auth.demo-warning" +msgstr "데모 서비스입니다. 실제 작업에 사용하지 마십시오. 생성된 프로젝트는 " +"주기적으로 삭제될 것입니다." + +#: src/app/main/ui/auth/recovery.cljs +msgid "auth.notifications.invalid-token-error" +msgstr "복구 토큰이 유효하지 않습니다." + +msgid "common.share-link.destroy-link" +msgstr "링크 제거하기" + +#: src/app/main/ui/dashboard/projects.cljs +msgid "dasboard.walkthrough-hero.info" +msgstr "펜팟을 둘러보고 주요 기능에 대한 정보를 습득하십시오." + +#: src/app/main/ui/dashboard/projects.cljs +msgid "dasboard.walkthrough-hero.title" +msgstr "인터페이스 둘러보기" + +#: src/app/main/ui/settings/access-tokens.cljs +msgid "dashboard.access-tokens.create" +msgstr "새로운 토큰 생성하기" + +#: src/app/main/ui/settings/access-tokens.cljs +msgid "dashboard.access-tokens.empty.add-one" +msgstr "\"새로운 토큰 생성하기\" 버튼을 눌러 토큰을 생성하십시오." + +#: src/app/main/ui/settings/access-tokens.cljs +msgid "dashboard.access-tokens.empty.no-access-tokens" +msgstr "현재 가지고 있는 토큰이 없습니다." + +#: src/app/main/ui/settings/access-tokens.cljs +msgid "dashboard.access-tokens.personal" +msgstr "개인용 엑세스 토큰" + +#: src/app/main/ui/settings/access-tokens.cljs +msgid "dashboard.access-tokens.expired-on" +msgstr "%s에 만료되었습니다" + +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/onboarding/team_choice.cljs, src/app/main/ui/settings/access_tokens.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/settings/profile.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +msgid "auth.name.too-long" +msgstr "이름은 최대 250자까지만 입력 가능합니다." + +#: src/app/main/ui/settings/access-tokens.cljs +msgid "dashboard.access-tokens.errors-required-name" +msgstr "이름을 입력하십시오" + +#: src/app/main/ui/settings/access-tokens.cljs +msgid "dashboard.access-tokens.copied-success" +msgstr "복사된 토큰" + +#: src/app/main/ui/settings/access-tokens.cljs +msgid "dashboard.access-tokens.expiration-90-days" +msgstr "90일" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.login-with-ldap-submit" +msgstr "LDAP" + +#: src/app/main/ui/settings/access-tokens.cljs +msgid "dashboard.access-tokens.expires-on" +msgstr "%s에 만료됩니다" + +#: src/app/main/ui/settings/access-tokens.cljs +msgid "dashboard.access-tokens.no-expiration" +msgstr "만료 기한 없음" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "branding-illustrations-marketing-pieces" +msgstr "...브랜딩, 일러스트레이션, 마케팅 자료 등." + +#: src/app/main/ui/auth/login.cljs +msgid "auth.login-tagline" +msgstr "펜팟은 디자인과 코딩의 협업을 위한 무료 오픈소스 디자인 도구입니다" + +#: src/app/main/ui/auth/register.cljs +msgid "auth.password-not-empty" +msgstr "비밀번호는 공백 이외의 글자를 포함해야 합니다." + +#: src/app/main/ui/dashboard/projects.cljs +msgid "dasboard.team-hero.text" +msgstr "펜팟은 팀을 위한 도구입니다. 팀원들을 초대하여 프로젝트 및 파일 단위로 " +"협업하십시오" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.login-with-oidc-submit" +msgstr "오픈아이디 (OpenID)" + +#: src/app/main/ui/dashboard/projects.cljs +msgid "dasboard.tutorial-hero.title" +msgstr "실습용 튜토리얼" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.login-account-title" +msgstr "내 계정에 로그인하기" + +#: src/app/main/ui/settings/team-form.cljs, src/app/main/ui/auth/register.cljs, src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/onboarding/team_choice.cljs, src/app/main/ui/settings/access_tokens.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/settings/profile.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +msgid "auth.name.not-all-space" +msgstr "이름은 공백 이외의 글자를 포함해야 합니다." + +#: src/app/main/ui/dashboard/projects.cljs +msgid "dasboard.tutorial-hero.info" +msgstr "본 실습용 튜토리얼을 통해 펜팟의 기본 기능에 대하여 재미있게 학습하십시오." + +#: src/app/main/ui/settings/access-tokens.cljs +msgid "dashboard.access-tokens.create.success" +msgstr "엑세스 토큰이 성공적으로 생성되었습니다." + +#: src/app/main/ui/settings/access-tokens.cljs +msgid "dashboard.access-tokens.expiration-180-days" +msgstr "180일" + +#: src/app/main/ui/settings/access-tokens.cljs +msgid "dashboard.access-tokens.expiration-30-days" +msgstr "30일" + +#: src/app/main/ui/settings/access-tokens.cljs +msgid "dashboard.access-tokens.expiration-60-days" +msgstr "60일" + +#: src/app/main/ui/settings/access-tokens.cljs +msgid "dashboard.access-tokens.expiration-never" +msgstr "기한 없음" + +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +msgid "dashboard.add-shared" +msgstr "공유 라이브러리로 추가하기" + +#: src/app/main/ui/settings/access-tokens.cljs +msgid "dashboard.access-tokens.personal.description" +msgstr "" +"개인용 엑세스 토큰은 펜팟의 로그인/암호 인증 시스템의 대안으로 사용되며, " +"어플리케이션의 펜팟 내부 API 엑세스를 위해 사용될 수 있습니다" + +msgid "common.share-link.page-shared" +msgid_plural "common.share-link.page-shared" +msgstr[0] "%s 페이지가 공유되었습니다" + +#: src/app/main/ui/settings/access-tokens.cljs +msgid "dashboard.access-tokens.token-will-expire" +msgstr "토큰은 %s에 만료 예정입니다" + +#: src/app/main/ui/settings/access-tokens.cljs +msgid "dashboard.access-tokens.token-will-not-expire" +msgstr "토큰의 만료 기한이 없습니다" + +msgid "dashboard.export-binary-multi" +msgstr "%s 펜팟 파일 (.penpot) 다운로드 하기" + +#: src/app/main/ui/dashboard/grid.cljs +#, fuzzy, markdown +msgid "dashboard.empty-placeholder-drafts" +msgstr "" +"라이브러리에 추가된 파일은 여기에서 볼 수 있습니다. 파일을 공유하거나 펜팟의 " +"[라이브러리와 템플릿](https://penpot.app/libraries-templates.html) 에서 " +"추가해 보십시오." diff --git a/frontend/translations/lt.po b/frontend/translations/lt.po index bebfabb410..707e94a2bc 100644 --- a/frontend/translations/lt.po +++ b/frontend/translations/lt.po @@ -2,302 +2,278 @@ msgid "" msgstr "" "PO-Revision-Date: 2024-06-17 08:07+0000\n" "Last-Translator: Anonymous \n" -"Language-Team: Lithuanian " -"\n" +"Language-Team: Lithuanian \n" "Language: lt\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " -"(n%100<10 || n%100>=20) ? 1 : 2);\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (" +"n%100<10 || n%100>=20) ? 1 : 2);\n" "X-Generator: Weblate 5.6-dev\n" -#: src/app/main/ui/auth/register.cljs:151, src/app/main/ui/viewer/login.cljs:104 +#: src/app/main/ui/auth/register.cljs msgid "auth.already-have-account" msgstr "Jau turite paskyrą?" -#: src/app/main/ui/auth/register.cljs:299 +#: src/app/main/ui/auth/register.cljs msgid "auth.check-your-email" msgstr "" "Pasitikrinkite savo el. paštą, ten rasite pranešimą su nuorodą, kurią " "paspaudę galėsite pradėti naudotis Penpot." -#: src/app/main/ui/auth/recovery.cljs:78 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.confirm-password" msgstr "Slaptažodžio patvirtinimas" -#: src/app/main/ui/auth/register.cljs:163 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.create-demo-account" msgstr "Kurti demonstracinę paskyrą" #: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs -#, unused msgid "auth.create-demo-profile" msgstr "Norite tik išmėginti?" -#: src/app/main/ui/auth/login.cljs:43 +#: src/app/main/ui/auth/register.cljs msgid "auth.demo-warning" msgstr "" "Tai yra DEMONSTRACINĖ versija, NEKURKITE tikrų darbų, nes projektai " "periodiškai - šalinami." -#: src/app/main/ui/auth/login.cljs:189, src/app/main/ui/viewer/login.cljs:90 +#: src/app/main/ui/auth/login.cljs msgid "auth.forgot-password" msgstr "Pamiršote slaptažodį?" -#: src/app/main/ui/auth/register.cljs:254 +#: src/app/main/ui/auth/register.cljs msgid "auth.fullname" msgstr "Vardas ir Pavardė" -#: src/app/main/ui/auth/register.cljs:155, src/app/main/ui/viewer/login.cljs:107 +#: src/app/main/ui/auth/register.cljs +#, fuzzy msgid "auth.login-here" msgstr "Prisijungimas čia" -#: src/app/main/ui/auth/login.cljs:195 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-submit" msgstr "Prisijungti" -#: src/app/main/ui/auth/login.cljs:222 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-github-submit" msgstr "GitHub" -#: src/app/main/ui/auth/login.cljs:228 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-gitlab-submit" msgstr "GitLab" -#: src/app/main/ui/auth/login.cljs:216 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-google-submit" msgstr "Google" -#: src/app/main/ui/auth/login.cljs:201 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-ldap-submit" msgstr "LDAP" -#: src/app/main/ui/auth/login.cljs:234, src/app/main/ui/auth/login.cljs:255 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-oidc-submit" msgstr "OpenID" -#: src/app/main/ui/auth/recovery.cljs:71 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.new-password" msgstr "Įveskite naują slaptažodį" -#: src/app/main/ui/auth/recovery.cljs:42 +#: src/app/main/ui/auth/recovery.cljs +#, fuzzy msgid "auth.notifications.invalid-token-error" msgstr "Atkūrimo prieigos raktas neteisingas." -#: src/app/main/ui/auth/recovery.cljs:46 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.notifications.password-changed-successfully" msgstr "Slaptažodis sėkmingai pakeistas" -#: src/app/main/ui/auth/recovery_request.cljs:57 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.notifications.profile-not-verified" msgstr "Paskyra yra nepatvirtinta, prieš tęsdami patikrinkite paskyrą." -#: src/app/main/ui/auth/recovery_request.cljs:40 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.notifications.recovery-token-sent" msgstr "Slaptažodžio atkūrimo nuoroda išsiųsta į jūsų pašto dėžutę." -#: src/app/main/ui/auth/verify_token.cljs:47 +#: src/app/main/ui/auth/verify_token.cljs msgid "auth.notifications.team-invitation-accepted" msgstr "Sėkmingai prisijungė prie komandos" -#: src/app/main/ui/auth/login.cljs:179, src/app/main/ui/auth/register.cljs:115 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.password" msgstr "Slaptažodis" -#: src/app/main/ui/auth/register.cljs:114 +#: src/app/main/ui/auth/register.cljs msgid "auth.password-length-hint" msgstr "Ne mažiau kaip 8 simboliai" -#: src/app/main/ui/auth.cljs:41 msgid "auth.privacy-policy" msgstr "Privatumo politika" -#: src/app/main/ui/auth/recovery_request.cljs:88 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-submit" msgstr "Atkurti slaptažodį" -#: src/app/main/ui/auth/recovery_request.cljs:101 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-subtitle" msgstr "Atsiųsime jums el. laišką su instrukcijomis" -#: src/app/main/ui/auth/recovery_request.cljs:100 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-title" msgstr "Pamiršote slaptažodį?" -#: src/app/main/ui/auth/recovery.cljs:82 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.recovery-submit" msgstr "Slaptažodžio keitimas" -#: src/app/main/ui/auth/login.cljs:298, src/app/main/ui/viewer/login.cljs:93 +#: src/app/main/ui/auth/login.cljs msgid "auth.register" msgstr "Dar neturite paskyros?" -#: src/app/main/ui/auth/login.cljs:302, src/app/main/ui/auth/register.cljs:121, src/app/main/ui/auth/register.cljs:263, src/app/main/ui/viewer/login.cljs:97 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.register-submit" msgstr "Sukurti paskyrą" -#: src/app/main/ui/auth/register.cljs:140 +#: src/app/main/ui/auth/register.cljs msgid "auth.register-title" msgstr "Sukurti paskyrą" #: src/app/main/ui/auth.cljs -#, unused msgid "auth.sidebar-tagline" msgstr "Atviro kodo dizaino ir prototipų kūrimo sprendimas." -#: src/app/main/ui/auth.cljs:33, src/app/main/ui/dashboard/sidebar.cljs:1022, src/app/main/ui/workspace/main_menu.cljs:150 msgid "auth.terms-of-service" msgstr "Paslaugų teikimo sąlygos" -#: src/app/main/ui/auth/register.cljs:297 +#: src/app/main/ui/auth/register.cljs msgid "auth.verification-email-sent" msgstr "Išsiuntėme patvirtinimo el. laišką adresu" -#: src/app/main/ui/workspace/libraries.cljs:228 msgid "common.publish" msgstr "Paskelbti" -#: src/app/main/ui/viewer/share_link.cljs:304, src/app/main/ui/viewer/share_link.cljs:314 msgid "common.share-link.all-users" msgstr "Visi Penpot vartotojai" -#: src/app/main/ui/viewer/share_link.cljs:198 msgid "common.share-link.confirm-deletion-link-description" msgstr "" "Ar tikrai norite pašalinti šią nuorodą? Jei tai padarysite, ji niekam " "nebebus pasiekiama" -#: src/app/main/ui/viewer/share_link.cljs:259, src/app/main/ui/viewer/share_link.cljs:289 msgid "common.share-link.current-tag" msgstr "(dabartinis)" -#: src/app/main/ui/viewer/share_link.cljs:207, src/app/main/ui/viewer/share_link.cljs:214 msgid "common.share-link.destroy-link" msgstr "Naikinti nuorodą" -#: src/app/main/ui/viewer/share_link.cljs:221 msgid "common.share-link.get-link" msgstr "Gauti nuorodą" -#: src/app/main/ui/viewer/share_link.cljs:139 msgid "common.share-link.link-copied-success" msgstr "Nuoroda sėkmingai nukopijuota" -#: src/app/main/ui/viewer/share_link.cljs:231 msgid "common.share-link.manage-ops" msgstr "Valdyti leidimus" -#: src/app/main/ui/viewer/share_link.cljs:277 msgid "common.share-link.page-shared" msgid_plural "common.share-link.page-shared" msgstr[0] "Bendrinamas 1 puslapis" msgstr[1] "Bendrinami % puslapiai" msgstr[2] "Bendrinama % puslapių" -#: src/app/main/ui/viewer/share_link.cljs:298 msgid "common.share-link.permissions-can-comment" msgstr "Gali komentuoti" -#: src/app/main/ui/viewer/share_link.cljs:308 msgid "common.share-link.permissions-can-inspect" msgstr "Gali apžiūrėti kodą" -#: src/app/main/ui/viewer/share_link.cljs:193 msgid "common.share-link.permissions-hint" msgstr "Kiekvienas, turintis nuorodą, turės prieigą" -#: src/app/main/ui/viewer/share_link.cljs:241 msgid "common.share-link.permissions-pages" msgstr "Bendrinti puslapiai" -#: src/app/main/ui/viewer/share_link.cljs:183 msgid "common.share-link.placeholder" msgstr "Bendrinama nuoroda bus rodoma čia" -#: src/app/main/ui/viewer/share_link.cljs:303, src/app/main/ui/viewer/share_link.cljs:313 msgid "common.share-link.team-members" msgstr "Tik komandos nariams" -#: src/app/main/ui/viewer/share_link.cljs:171 msgid "common.share-link.title" msgstr "Dalinkitės prototipais" -#: src/app/main/ui/viewer/share_link.cljs:269 msgid "common.share-link.view-all" msgstr "Rinktis viską" -#: src/app/main/ui/workspace/libraries.cljs:224 msgid "common.unpublish" msgstr "Atšaukti paskelbimą" -#: src/app/main/ui/dashboard/projects.cljs:85 +#: src/app/main/ui/dashboard/projects.cljs msgid "dasboard.team-hero.management" msgstr "Komandos valdymas" -#: src/app/main/ui/dashboard/projects.cljs:84 +#: src/app/main/ui/dashboard/projects.cljs msgid "dasboard.team-hero.text" msgstr "" "Penpot yra skirtas komandoms. Pakvieskite narius bendram darbui su " "projektais ir failais" -#: src/app/main/ui/dashboard/projects.cljs:82 +#: src/app/main/ui/dashboard/projects.cljs msgid "dasboard.team-hero.title" msgstr "Suburkite komandą!" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.tutorial-hero.info" msgstr "Išmokite Penpot pagrindus ir mėgaukitės šia pamoka." #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.tutorial-hero.start" msgstr "Pradėti pamoką" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.walkthrough-hero.info" msgstr "Panagrinėkite Penpot ir susipažinkite su pagrindinėmis jo savybėmis." #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.walkthrough-hero.start" msgstr "Pradėkite apžvalgą" -#: src/app/main/ui/dashboard/file_menu.cljs:291, src/app/main/ui/workspace/main_menu.cljs:572 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.add-shared" msgstr "Pridėti kaip bendrinamą biblioteką" -#: src/app/main/ui/settings/profile.cljs:75 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.change-email" msgstr "Keisti el. paštą" -#: src/app/main/data/dashboard.cljs:762, src/app/main/data/dashboard.cljs:983 +#: src/app/main/data/dashboard.cljs, src/app/main/data/dashboard.cljs msgid "dashboard.copy-suffix" msgstr "(kopija)" -#: src/app/main/ui/dashboard/sidebar.cljs:338 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.create-new-team" msgstr "Sukurti naują komandą" -#: src/app/main/ui/components/context_menu_a11y.cljs:256, src/app/main/ui/dashboard/sidebar.cljs:646 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.default-team-name" msgstr "Jūsų Penpot" -#: src/app/main/ui/dashboard/sidebar.cljs:571 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.delete-team" msgstr "Naikinti komandą" -#: src/app/main/ui/dashboard/file_menu.cljs:276, src/app/main/ui/dashboard/project_menu.cljs:90 +#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.duplicate" msgstr "Dublikatas" -#: src/app/main/ui/dashboard/file_menu.cljs:240 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.duplicate-multi" msgstr "Dubliuoti %s failus" -#: src/app/main/ui/dashboard/placeholder.cljs:32 +#: src/app/main/ui/dashboard/grid.cljs #, markdown msgid "dashboard.empty-placeholder-drafts" msgstr "" @@ -305,110 +281,96 @@ msgstr "" "arba pridėti iš mūsų [Bibliotekos ir šablonai] " "(https://penpot.app/libraries-templates)" -#: src/app/main/ui/workspace/main_menu.cljs:605 msgid "dashboard.export-frames" msgstr "Eksportuokite darbalaukius į PDF" -#: src/app/main/ui/export.cljs:201 +#: src/app/main/ui/export.cljs msgid "dashboard.export-frames.title" msgstr "Eksportuoti į PDF" -#, unused msgid "dashboard.export-multi" msgstr "Eksportuoti Penpot %s failus" -#: src/app/main/ui/export.cljs:109 +#: src/app/main/ui/export.cljs msgid "dashboard.export-multiple.selected" msgstr "Pasirinkta %s iš %s elementų" -#: src/app/main/ui/workspace/main_menu.cljs:578 +#: src/app/main/ui/workspace/header.cljs msgid "dashboard.export-shapes" msgstr "Eksportuoti" -#: src/app/main/ui/export.cljs:180 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.how-to" msgstr "" "Galite pridėti eksportavimo nustatymus prie elementų iš dizaino ypatybių " "(dešinės šoninės juostos apačioje)." -#: src/app/main/ui/export.cljs:184 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.how-to-link" msgstr "Informacija, kaip nustatyti eksportą \"Penpot\"." -#: src/app/main/ui/export.cljs:179 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.no-elements" msgstr "Nėra elementų su eksporto nustatymais." -#: src/app/main/ui/export.cljs:190 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.title" msgstr "Eksportuoti pažymėtą sritį" -#: src/app/main/ui/export.cljs:427 msgid "dashboard.export.detail" msgstr "* Gali apimti komponentus, grafiką, spalvas ir (arba) tipografiją." -#: src/app/main/ui/export.cljs:426 msgid "dashboard.export.explain" msgstr "" "Viename ar keliuose failuose, kuriuos norite eksportuoti, naudojamos " "bendros bibliotekos. Ką norite daryti su jų komponentais*?" -#: src/app/main/ui/export.cljs:435 msgid "dashboard.export.options.all.message" msgstr "" "failai su bendromis bibliotekomis bus įtraukti į eksportą, išlaikant jų " "susiejimą." -#: src/app/main/ui/export.cljs:436 msgid "dashboard.export.options.all.title" msgstr "Eksportuoti bendrai naudojamas bibliotekas" -#: src/app/main/ui/export.cljs:437 msgid "dashboard.export.options.detach.message" msgstr "" "Bendrai naudojamos bibliotekos nebus įtrauktos į eksportą ir į biblioteką " "nebus pridėta jokių išteklių. " -#: src/app/main/ui/export.cljs:438 msgid "dashboard.export.options.detach.title" msgstr "" "Bendrai naudojamus bibliotekos komponentus traktuokite kaip pagrindinius " "objektus" -#: src/app/main/ui/export.cljs:439 msgid "dashboard.export.options.merge.message" msgstr "" "Jūsų failas bus eksportuotas su visais išoriniais komponentais, sujungtais " "į failų biblioteką." -#: src/app/main/ui/export.cljs:440 msgid "dashboard.export.options.merge.title" msgstr "Įtraukti bendrai naudojamus bibliotekos komponentus į failų bibliotekas" -#: src/app/main/ui/export.cljs:418 msgid "dashboard.export.title" msgstr "Eksportuoti failus" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:309 msgid "dashboard.fonts.deleted-placeholder" msgstr "Šriftas ištrintas" -#: src/app/main/ui/dashboard/fonts.cljs:206 +#: src/app/main/ui/dashboard/fonts.cljs msgid "dashboard.fonts.dismiss-all" msgstr "Atmesti visus" -#: src/app/main/ui/dashboard/fonts.cljs:436 msgid "dashboard.fonts.empty-placeholder" msgstr "Vis dar neįdiegėte tinkintų šriftų." -#: src/app/main/ui/dashboard/fonts.cljs:194 +#: src/app/main/ui/dashboard/fonts.cljs msgid "dashboard.fonts.fonts-added" msgid_plural "dashboard.fonts.fonts-added" msgstr[0] "Pridėtas 1 šriftas" msgstr[1] "Pridėti %s šriftai" msgstr[2] "Šriftas(-ai) pridėti" -#: src/app/main/ui/dashboard/fonts.cljs:170 #, markdown msgid "dashboard.fonts.hero-text1" msgstr "" @@ -418,7 +380,6 @@ msgstr "" "šriftų šeima**. Galite įkelti šių formatų šriftus: **TTF, OTF ir WOFF** " "(reikės tik vieno)." -#: src/app/main/ui/dashboard/fonts.cljs:182 #, markdown msgid "dashboard.fonts.hero-text2" msgstr "" @@ -428,119 +389,106 @@ msgstr "" "\"Turinio teisės\". Taip pat galite paskaityti apie [šriftų " "licencijavimą](https://www.typography.com/faq)." -#: src/app/main/ui/dashboard/fonts.cljs:202 +#: src/app/main/ui/dashboard/fonts.cljs msgid "dashboard.fonts.upload-all" msgstr "Įkelti viską" -#: src/app/main/ui/dashboard/import.cljs:472, src/app/main/ui/dashboard/project_menu.cljs:108 msgid "dashboard.import" msgstr "Importuokite Penpot failus" -#: src/app/main/ui/dashboard/import.cljs:304, src/app/worker/import.cljs:753, src/app/worker/import.cljs:755 msgid "dashboard.import.analyze-error" msgstr "Oi! Nepavyko importuoti šio failo" -#: src/app/main/ui/dashboard/import.cljs:308 msgid "dashboard.import.import-error" msgstr "Iškilo problema importuojant failą. Failas nebuvo importuotas." -#: src/app/main/ui/dashboard/import.cljs:481, src/app/main/ui/dashboard/import.cljs:488 msgid "dashboard.import.import-warning" msgstr "Kai kuriuose failuose buvo netinkamų objektų, kurie buvo pašalinti." -#: src/app/main/ui/dashboard/import.cljs:144 msgid "dashboard.import.progress.process-colors" msgstr "Apdorojimo spalvos" -#: src/app/main/ui/dashboard/import.cljs:153 msgid "dashboard.import.progress.process-components" msgstr "Komponentų apdorojimas" -#: src/app/main/ui/dashboard/import.cljs:150 msgid "dashboard.import.progress.process-media" msgstr "Apdorojamos laikmenos" -#: src/app/main/ui/dashboard/import.cljs:141 msgid "dashboard.import.progress.process-page" msgstr "Apdorojamas puslapis: %s" -#: src/app/main/ui/dashboard/import.cljs:147 msgid "dashboard.import.progress.process-typographies" msgstr "Tipografijų apdorojimas" -#: src/app/main/ui/dashboard/import.cljs:135 msgid "dashboard.import.progress.upload-data" msgstr "Įkeliami duomenys į serverį (%s/%s)" -#: src/app/main/ui/dashboard/import.cljs:138 msgid "dashboard.import.progress.upload-media" msgstr "Įkeliamas failas: %s" -#: src/app/main/data/dashboard.cljs:958, src/app/main/data/dashboard.cljs:1181 +#: src/app/main/data/dashboard.cljs msgid "dashboard.new-file-prefix" msgstr "Naujas failas" -#: src/app/main/ui/dashboard/projects.cljs:55 +#: src/app/main/ui/dashboard/projects.cljs msgid "dashboard.new-project" msgstr "+ Naujas projektas" -#: src/app/main/data/dashboard.cljs:726, src/app/main/data/dashboard.cljs:1184 +#: src/app/main/data/dashboard.cljs msgid "dashboard.new-project-prefix" msgstr "Naujas projektas" -#: src/app/main/ui/dashboard/search.cljs:60 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.no-matches-for" msgstr "Nerasta jokių atitikmenų pagal \"%s\"" -#: src/app/main/ui/dashboard/sidebar.cljs:827 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.no-projects-placeholder" msgstr "Prisegti projektai bus rodomi čia" -#: src/app/main/ui/auth/verify_token.cljs:33 +#: src/app/main/ui/auth/verify_token.cljs msgid "dashboard.notifications.email-changed-successfully" msgstr "Jūsų el. pašto adresas sėkmingai atnaujintas" -#: src/app/main/ui/auth/verify_token.cljs:27 +#: src/app/main/ui/auth/verify_token.cljs msgid "dashboard.notifications.email-verified-successfully" msgstr "Jūsų el. pašto adresas buvo sėkmingai patvirtintas" -#: src/app/main/ui/settings/password.cljs:37 +#: src/app/main/ui/settings/password.cljs msgid "dashboard.notifications.password-saved" msgstr "Slaptažodis sėkmingai išsaugotas!" -#: src/app/main/ui/dashboard/team.cljs:1081 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.num-of-members" msgstr "%s nariai" -#: src/app/main/ui/dashboard/file_menu.cljs:267 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.open-in-new-tab" msgstr "Atidarykite failą naujame skirtuke" -#: src/app/main/ui/dashboard/files.cljs:117, src/app/main/ui/dashboard/projects.cljs:260, src/app/main/ui/dashboard/projects.cljs:261 msgid "dashboard.options" msgstr "Nustatymai" -#: src/app/main/ui/settings/password.cljs:106, src/app/main/ui/settings/password.cljs:119 +#: src/app/main/ui/settings/password.cljs msgid "dashboard.password-change" msgstr "Keisti slaptažodį" -#: src/app/main/ui/dashboard/pin_button.cljs:24, src/app/main/ui/dashboard/project_menu.cljs:95 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.pin-unpin" msgstr "Prisegti/Atsegti" -#: src/app/main/ui/dashboard/projects.cljs:51 +#: src/app/main/ui/dashboard/projects.cljs msgid "dashboard.projects-title" msgstr "Projektai" -#: src/app/main/ui/settings/profile.cljs:86 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.remove-account" msgstr "Norite pašalinti paskyrą?" #: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused msgid "dashboard.remove-shared" msgstr "Pašalinti kaip bendrinamą biblioteką" -#: src/app/main/ui/settings/options.cljs:61 +#: src/app/main/ui/settings/options.cljs msgid "dashboard.theme-change" msgstr "Vartotojo sąsajos tema" diff --git a/frontend/translations/lv.po b/frontend/translations/lv.po index 0089b96d48..bb7a0d34bb 100644 --- a/frontend/translations/lv.po +++ b/frontend/translations/lv.po @@ -2,544 +2,498 @@ msgid "" msgstr "" "PO-Revision-Date: 2024-06-17 08:07+0000\n" "Last-Translator: Anonymous \n" -"Language-Team: Latvian " -"\n" +"Language-Team: Latvian \n" "Language: lv\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=3; plural=(n % 10 == 0 || n % 100 >= 11 && n % 100 " -"<= 19) ? 0 : ((n % 10 == 1 && n % 100 != 11) ? 1 : 2);\n" +"Plural-Forms: nplurals=3; plural=(n % 10 == 0 || n % 100 >= 11 && n % 100 <= " +"19) ? 0 : ((n % 10 == 1 && n % 100 != 11) ? 1 : 2);\n" "X-Generator: Weblate 5.6-dev\n" -#: src/app/main/ui/auth/register.cljs:151, src/app/main/ui/viewer/login.cljs:104 +#: src/app/main/ui/auth/register.cljs msgid "auth.already-have-account" msgstr "Jau ir konts?" -#: src/app/main/ui/auth/register.cljs:299 +#: src/app/main/ui/auth/register.cljs msgid "auth.check-your-email" msgstr "" "Jāpārbauda savs e-pasts un jānoklikšķina uz saites, lai apstiprinātu un " "sāktu izmantot Penpot." -#: src/app/main/ui/auth/recovery.cljs:78 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.confirm-password" msgstr "Apstipriniet paroli" -#: src/app/main/ui/auth/register.cljs:163 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.create-demo-account" msgstr "Izveidot demonstrācijas kontu" #: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs -#, unused msgid "auth.create-demo-profile" msgstr "Gribat tikai pamēģināt?" -#: src/app/main/ui/auth/login.cljs:43 +#: src/app/main/ui/auth/register.cljs msgid "auth.demo-warning" msgstr "" "Šis ir IZRĀDĪŠANAS pakalpojums, kas NAV IZMANTOJAMS īstam darbam, jo " "projekti ik pēc noteikta laika posma tiks izdzēsti." -#: src/app/main/ui/auth/login.cljs:189, src/app/main/ui/viewer/login.cljs:90 +#: src/app/main/ui/auth/login.cljs msgid "auth.forgot-password" msgstr "Aizmirsta parole?" -#: src/app/main/ui/auth/register.cljs:254 +#: src/app/main/ui/auth/register.cljs msgid "auth.fullname" msgstr "Pilns vārds" -#: src/app/main/ui/auth/login.cljs:282 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-account-title" msgstr "Pieteikties manā kontā" -#: src/app/main/ui/auth/register.cljs:155, src/app/main/ui/viewer/login.cljs:107 +#: src/app/main/ui/auth/register.cljs +#, fuzzy msgid "auth.login-here" msgstr "Pieteikties šeit" -#: src/app/main/ui/auth/login.cljs:195 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-submit" msgstr "Pieteikties" -#: src/app/main/ui/auth/login.cljs:285 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-tagline" msgstr "Penpot ir bezmaksas atvērtā pirmkoda dizaina rīks dizaina un koda sadarbībai" -#: src/app/main/ui/auth/login.cljs:222 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-github-submit" msgstr "GitHub" -#: src/app/main/ui/auth/login.cljs:228 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-gitlab-submit" msgstr "GitLab" -#: src/app/main/ui/auth/login.cljs:216 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-google-submit" msgstr "Google" -#: src/app/main/ui/auth/login.cljs:201 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-ldap-submit" msgstr "LDAP" -#: src/app/main/ui/auth/login.cljs:234, src/app/main/ui/auth/login.cljs:255 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-oidc-submit" msgstr "AtvērtoID (OpenID)" -#: src/app/main/ui/auth/register.cljs:217, src/app/main/ui/dashboard/team_form.cljs:76, src/app/main/ui/onboarding/team_choice.cljs:180, src/app/main/ui/settings/access_tokens.cljs:66, src/app/main/ui/settings/feedback.cljs:34, src/app/main/ui/settings/profile.cljs:45, src/app/main/ui/workspace/sidebar/assets/groups.cljs:108 +#: src/app/main/ui/settings/team-form.cljs, src/app/main/ui/auth/register.cljs, src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/onboarding/team_choice.cljs, src/app/main/ui/settings/access_tokens.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/settings/profile.cljs, src/app/main/ui/workspace/sidebar/assets.cljs msgid "auth.name.not-all-space" msgstr "Nosaukumam jāsatur simboli, kas nav atstarpe." -#: src/app/main/ui/auth/register.cljs:218, src/app/main/ui/dashboard/team_form.cljs:77, src/app/main/ui/onboarding/team_choice.cljs:181, src/app/main/ui/settings/access_tokens.cljs:67, src/app/main/ui/settings/feedback.cljs:33, src/app/main/ui/settings/profile.cljs:44, src/app/main/ui/workspace/sidebar/assets/groups.cljs:109 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/onboarding/team_choice.cljs, src/app/main/ui/settings/access_tokens.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/settings/profile.cljs, src/app/main/ui/workspace/sidebar/assets.cljs msgid "auth.name.too-long" msgstr "Nosaukumus nedrīkst pārsniegt 250 simbolus." -#: src/app/main/ui/auth/recovery.cljs:71 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.new-password" msgstr "Ierakstiet jaunu paroli" -#: src/app/main/ui/auth/recovery.cljs:42 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.notifications.invalid-token-error" msgstr "Atkopšanas tekstvienība nav derīga." -#: src/app/main/ui/auth/recovery.cljs:46 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.notifications.password-changed-successfully" msgstr "Parole ir veiksmīgi nomainīta" -#: src/app/main/ui/auth/recovery_request.cljs:57 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.notifications.profile-not-verified" msgstr "" "Profils nav apliecināts, lūgums pirms turpināšanas veikt profila " "apstiprināšanu." -#: src/app/main/ui/auth/recovery_request.cljs:40 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.notifications.recovery-token-sent" msgstr "Paroles atkopšanas saite ir nosūtīta e-pastā." -#: src/app/main/ui/auth/verify_token.cljs:47 +#: src/app/main/ui/auth/verify_token.cljs msgid "auth.notifications.team-invitation-accepted" msgstr "Pievienošanās komandai bija veiksmīga" -#: src/app/main/ui/auth/login.cljs:179, src/app/main/ui/auth/register.cljs:115 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.password" msgstr "Parole" -#: src/app/main/ui/auth/register.cljs:114 +#: src/app/main/ui/auth/register.cljs msgid "auth.password-length-hint" msgstr "Vismaz 8 rakstzīmes" -#: src/app/main/ui/auth/recovery.cljs:61, src/app/main/ui/auth/recovery.cljs:62, src/app/main/ui/auth/register.cljs:81, src/app/main/ui/settings/password.cljs:75, src/app/main/ui/settings/password.cljs:76, src/app/main/ui/settings/password.cljs:77 +#: src/app/main/ui/auth/register.cljs msgid "auth.password-not-empty" msgstr "Parolē ir jābūt arī citām rakstzīmēm bez atstarpes." -#: src/app/main/ui/auth.cljs:41 msgid "auth.privacy-policy" msgstr "Privātuma politika" -#: src/app/main/ui/auth/recovery_request.cljs:88 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-submit" msgstr "Atkopt paroli" -#: src/app/main/ui/auth/recovery_request.cljs:101 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-subtitle" msgstr "Mēs nosūtīsim e-pasta ziņojumu ar norādēm" -#: src/app/main/ui/auth/recovery_request.cljs:100 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-title" msgstr "Aizmirsat paroli?" -#: src/app/main/ui/auth/recovery.cljs:82 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.recovery-submit" msgstr "Nomainīt paroli" -#: src/app/main/ui/auth/login.cljs:298, src/app/main/ui/viewer/login.cljs:93 +#: src/app/main/ui/auth/login.cljs msgid "auth.register" msgstr "Vēl nav konta?" -#: src/app/main/ui/auth/login.cljs:302, src/app/main/ui/auth/register.cljs:121, src/app/main/ui/auth/register.cljs:263, src/app/main/ui/viewer/login.cljs:97 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.register-submit" msgstr "Izveidot kontu" -#: src/app/main/ui/auth/register.cljs:140 +#: src/app/main/ui/auth/register.cljs msgid "auth.register-title" msgstr "Izveidot kontu" #: src/app/main/ui/auth.cljs -#, unused msgid "auth.sidebar-tagline" msgstr "Atvērtā pirmkoda risinājums dizaina izstrādei un modelēšanai." -#: src/app/main/ui/auth.cljs:33, src/app/main/ui/dashboard/sidebar.cljs:1022, src/app/main/ui/workspace/main_menu.cljs:150 msgid "auth.terms-of-service" msgstr "Pakalpojumu sniegšanas noteikumi" -#, unused +#: src/app/main/ui/auth/register.cljs msgid "auth.terms-privacy-agreement" msgstr "" "Ar jauna konta izveidošanu tiek piekrists mūsu pakalpojuma noteikumiem un " "privātuma nosacījumiem." -#: src/app/main/ui/auth/register.cljs:297 +#: src/app/main/ui/auth/register.cljs msgid "auth.verification-email-sent" msgstr "Mēs esam nosūtījuši apstiprinājuma e-pasta ziņojumu uz" #: src/app/main/ui/onboarding/questions.cljs -#, unused msgid "branding-illustrations-marketing-pieces" msgstr "... zīmolrades, ilustrācijām, mārketinga materiāliem utt." -#: src/app/main/ui/workspace/libraries.cljs:228 msgid "common.publish" msgstr "Publicēt" -#: src/app/main/ui/viewer/share_link.cljs:304, src/app/main/ui/viewer/share_link.cljs:314 msgid "common.share-link.all-users" msgstr "Visi Penpot lietotāji" -#: src/app/main/ui/viewer/share_link.cljs:198 msgid "common.share-link.confirm-deletion-link-description" msgstr "Vai tiešām noņemt šo saiti? Noņemot to, saite vairs nebūs pieejama nevienam" -#: src/app/main/ui/viewer/share_link.cljs:259, src/app/main/ui/viewer/share_link.cljs:289 msgid "common.share-link.current-tag" msgstr "(pašreizējais)" -#: src/app/main/ui/viewer/share_link.cljs:207, src/app/main/ui/viewer/share_link.cljs:214 msgid "common.share-link.destroy-link" msgstr "Iznīcināt saiti" -#: src/app/main/ui/viewer/share_link.cljs:221 msgid "common.share-link.get-link" msgstr "Iegūt saiti" -#: src/app/main/ui/viewer/share_link.cljs:139 msgid "common.share-link.link-copied-success" msgstr "Saite ir veiksmīgi nokopēta" -#: src/app/main/ui/viewer/share_link.cljs:231 msgid "common.share-link.manage-ops" msgstr "Pārvaldīt atļaujas" -#: src/app/main/ui/viewer/share_link.cljs:277 msgid "common.share-link.page-shared" msgid_plural "common.share-link.page-shared" msgstr[0] "%s kopīgotu lapu" msgstr[1] "%s kopīgota lapa" msgstr[2] "%s kopīgotas lapas" -#: src/app/main/ui/viewer/share_link.cljs:298 msgid "common.share-link.permissions-can-comment" msgstr "Var komentēt" -#: src/app/main/ui/viewer/share_link.cljs:308 msgid "common.share-link.permissions-can-inspect" msgstr "Var apskatīt kodu" -#: src/app/main/ui/viewer/share_link.cljs:193 msgid "common.share-link.permissions-hint" msgstr "Ikvienam, kam ir saite, būs piekļuve" -#: src/app/main/ui/viewer/share_link.cljs:241 msgid "common.share-link.permissions-pages" msgstr "Kopīgotas lapas" -#: src/app/main/ui/viewer/share_link.cljs:183 msgid "common.share-link.placeholder" msgstr "Šeit tiks parādīta kopīgojama saite" -#: src/app/main/ui/viewer/share_link.cljs:303, src/app/main/ui/viewer/share_link.cljs:313 msgid "common.share-link.team-members" msgstr "Tikai komandas dalībnieki" -#: src/app/main/ui/viewer/share_link.cljs:171 msgid "common.share-link.title" msgstr "Kopīgot prototipus" -#: src/app/main/ui/viewer/share_link.cljs:269 msgid "common.share-link.view-all" msgstr "Atlasīt visu" -#: src/app/main/ui/workspace/libraries.cljs:224 msgid "common.unpublish" msgstr "Atcelt publikāciju" -#: src/app/main/ui/dashboard/projects.cljs:85 +#: src/app/main/ui/dashboard/projects.cljs msgid "dasboard.team-hero.management" msgstr "Komandas pārvaldība" -#: src/app/main/ui/dashboard/projects.cljs:84 +#: src/app/main/ui/dashboard/projects.cljs msgid "dasboard.team-hero.text" msgstr "" "Penpot ir paredzēta komandām. Jāuzaicina dalībnieki, lai kopā strādātu ar " "projektiem un datnēm" -#: src/app/main/ui/dashboard/projects.cljs:82 +#: src/app/main/ui/dashboard/projects.cljs msgid "dasboard.team-hero.title" msgstr "Apvienojieties!" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.tutorial-hero.info" msgstr "Penpot pamatu apgūšana, kamēr tiek gūts prieks, ar šo praktisko apmācību." #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.tutorial-hero.start" msgstr "Sākt apmācību" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.tutorial-hero.title" msgstr "Praktiskā apmācība" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.walkthrough-hero.info" msgstr "Caurskati Penpot un iepazīsties ar tās galvenajām iespējām." #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.walkthrough-hero.start" msgstr "Sākt iepazīšanos" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.walkthrough-hero.title" msgstr "Saskarnes caurskate" -#: src/app/main/ui/settings/access_tokens.cljs:115 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.copied-success" msgstr "Pilnvara ievietota starpliktuvē" -#: src/app/main/ui/settings/access_tokens.cljs:202 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.create" msgstr "Izveidot jaunu pilnvaru" -#: src/app/main/ui/settings/access_tokens.cljs:76 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.create.success" msgstr "Piekļuves pilnvara ir veiksmīgi izveidota." -#: src/app/main/ui/settings/access_tokens.cljs:300 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.empty.add-one" msgstr "Jānospiež poga \"Izveidot jaunu pilnvaru\", lai izveidotu kādu." -#: src/app/main/ui/settings/access_tokens.cljs:299 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.empty.no-access-tokens" msgstr "Pagaidām vēl nav pilnvaru." -#: src/app/main/ui/settings/access_tokens.cljs:53 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.errors-required-name" msgstr "Nosaukums ir obligāts" -#: src/app/main/ui/settings/access_tokens.cljs:147 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-180-days" msgstr "180 dienas" -#: src/app/main/ui/settings/access_tokens.cljs:144 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-30-days" msgstr "30 dienas" -#: src/app/main/ui/settings/access_tokens.cljs:145 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-60-days" msgstr "60 dienas" -#: src/app/main/ui/settings/access_tokens.cljs:146 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-90-days" msgstr "90 dienas" -#: src/app/main/ui/settings/access_tokens.cljs:143 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-never" msgstr "Nekad" -#: src/app/main/ui/settings/access_tokens.cljs:282 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expired-on" msgstr "Izbeidzās %s" -#: src/app/main/ui/settings/access_tokens.cljs:283 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expires-on" msgstr "Derīgs līdz %s" -#: src/app/main/ui/settings/access_tokens.cljs:281 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.no-expiration" msgstr "Bez derīguma termiņa" -#: src/app/main/ui/settings/access_tokens.cljs:197 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.personal" msgstr "Privātās piekļuves pilnvaras" -#: src/app/main/ui/settings/access_tokens.cljs:198 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.personal.description" msgstr "" "Privātās piekļuves pilnvaras darbojas kā alternatīva mūsu " "pieteikšanās/paroles autentificēšanas sistēmai, un tās var izmantot, lai " "ļautu lietotnēm piekļūt iekšējam Penpot API" -#: src/app/main/ui/settings/access_tokens.cljs:154 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.token-will-expire" msgstr "Pilnvara ir derīga līdz %s" -#: src/app/main/ui/settings/access_tokens.cljs:155 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.token-will-not-expire" msgstr "Pilnvarai nav derīguma beigu datuma" -#: src/app/main/ui/dashboard/file_menu.cljs:291, src/app/main/ui/workspace/main_menu.cljs:572 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.add-shared" msgstr "Pievienot kā koplietojamu bibliotēku" -#: src/app/main/ui/settings/profile.cljs:75 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.change-email" msgstr "Mainīt e-pasta adresi" -#: src/app/main/data/dashboard.cljs:762, src/app/main/data/dashboard.cljs:983 +#: src/app/main/data/dashboard.cljs, src/app/main/data/dashboard.cljs msgid "dashboard.copy-suffix" msgstr "(kopija)" -#: src/app/main/ui/dashboard/sidebar.cljs:338 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.create-new-team" msgstr "Izveidot jaunu komandu" -#: src/app/main/ui/components/context_menu_a11y.cljs:256, src/app/main/ui/dashboard/sidebar.cljs:646 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.default-team-name" msgstr "Mans Penpot" -#: src/app/main/ui/dashboard/sidebar.cljs:571 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.delete-team" msgstr "Dzēst komandu" -#: src/app/main/ui/dashboard/file_menu.cljs:296, src/app/main/ui/workspace/main_menu.cljs:589 msgid "dashboard.download-binary-file" msgstr "Lejupielādēt Penpot datni (.penpot)" -#: src/app/main/ui/dashboard/file_menu.cljs:300, src/app/main/ui/workspace/main_menu.cljs:597 msgid "dashboard.download-standard-file" msgstr "Lejupielādēt standarta datni (.svg + .json)" -#: src/app/main/ui/dashboard/file_menu.cljs:276, src/app/main/ui/dashboard/project_menu.cljs:90 +#: src/app/main/ui/dashboard/project_menu.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.duplicate" msgstr "Divkāršot" -#: src/app/main/ui/dashboard/file_menu.cljs:240 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.duplicate-multi" msgstr "Divkāršot %s datnes" -#: src/app/main/ui/dashboard/placeholder.cljs:32 -#, markdown +#: src/app/main/ui/dashboard/grid.cljs msgid "dashboard.empty-placeholder-drafts" msgstr "" "Šeit tiks parādītas bibliotēkām pievienotās datnes. Mēģini koplietot datnes " "vai pievienot tās no mūsu [bibliotēkām un " "veidnēm](https://penpot.app/libraries-templates)." -#: src/app/main/ui/dashboard/file_menu.cljs:249 msgid "dashboard.export-binary-multi" msgstr "Lejupielādēt %s Penpot datnes (.penpot)" -#: src/app/main/ui/workspace/main_menu.cljs:605 msgid "dashboard.export-frames" msgstr "Izgūt plātnes kā PDF" -#: src/app/main/ui/export.cljs:201 +#: src/app/main/ui/export.cljs msgid "dashboard.export-frames.title" msgstr "Izgūt kā PDF" -#, unused msgid "dashboard.export-multi" msgstr "Izgūt Penpot %s datnes" -#: src/app/main/ui/export.cljs:109 +#: src/app/main/ui/export.cljs msgid "dashboard.export-multiple.selected" msgstr "Atlasīti elementi - %s no %s" -#: src/app/main/ui/workspace/main_menu.cljs:578 +#: src/app/main/ui/workspace/header.cljs msgid "dashboard.export-shapes" msgstr "Izgūt" -#: src/app/main/ui/export.cljs:180 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.how-to" msgstr "" "Izgūšanas iestatījumus elementiem var pievienot no noformējuma īpašībām " "(labās sānjoslas apakšā)." -#: src/app/main/ui/export.cljs:184 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.how-to-link" msgstr "Informācija par to, kā iestatīt izgūšanu Penpot." -#: src/app/main/ui/export.cljs:179 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.no-elements" msgstr "Nav elementu ar izgūšanas iestatījumiem." -#: src/app/main/ui/export.cljs:190 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.title" msgstr "Izgūt atlasi" -#: src/app/main/ui/dashboard/file_menu.cljs:252 msgid "dashboard.export-standard-multi" msgstr "Lejupielādēt %s standarta datnes (. svg +. json)" -#: src/app/main/ui/export.cljs:427 msgid "dashboard.export.detail" msgstr "* var ietvert sastāvdaļas, attēlus, krāsas un/vai burtu stilus un veidus." -#: src/app/main/ui/export.cljs:426 msgid "dashboard.export.explain" msgstr "" "Viena vai vairākas izgūstamās datnes izmanto koplietojamas bibliotēkas. Ko " "iesākt ar to līdzekļiem*?" -#: src/app/main/ui/export.cljs:435 msgid "dashboard.export.options.all.message" msgstr "" "izguvē tiks iekļautas datnes ar koplietojamām bibliotēkām, saglabājot to " "sasaisti." -#: src/app/main/ui/export.cljs:436 msgid "dashboard.export.options.all.title" msgstr "Izgūt koplietojamās bibliotēkas" -#: src/app/main/ui/export.cljs:437 msgid "dashboard.export.options.detach.message" msgstr "" "Koplietojamās bibliotēkas netiks iekļautas izguvē, un bibliotēkai netiks " "pievienoti līdzekļi. " -#: src/app/main/ui/export.cljs:438 msgid "dashboard.export.options.detach.title" msgstr "Attiekties pret koplietojamo bibliotēku līdzekļiem kā pret pamatobjektiem" -#: src/app/main/ui/export.cljs:439 msgid "dashboard.export.options.merge.message" msgstr "" "Datne tiks izgūta ar visiem ārējiem līdzekļiem, kas tiks apvienoti datnes " "bibliotēkā." -#: src/app/main/ui/export.cljs:440 msgid "dashboard.export.options.merge.title" msgstr "Iekļaut koplietojamos bibliotēkas līdzekļus datņu bibliotēkās" -#: src/app/main/ui/export.cljs:418 msgid "dashboard.export.title" msgstr "Izgūt datnes" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:309 msgid "dashboard.fonts.deleted-placeholder" msgstr "Fonts izdzēsts" -#: src/app/main/ui/dashboard/fonts.cljs:206 +#: src/app/main/ui/dashboard/fonts.cljs msgid "dashboard.fonts.dismiss-all" msgstr "Noraidīt visu" -#: src/app/main/ui/dashboard/fonts.cljs:436 msgid "dashboard.fonts.empty-placeholder" msgstr "Šeit tiks parādīti augšupielādētie pielāgotie fonti." -#: src/app/main/ui/dashboard/fonts.cljs:194 +#: src/app/main/ui/dashboard/fonts.cljs msgid "dashboard.fonts.fonts-added" msgid_plural "dashboard.fonts.fonts-added" msgstr[0] "Nav pievienoti fonti" msgstr[1] "Fonts pievienots" msgstr[2] "%s fonti pievienoti" -#: src/app/main/ui/dashboard/fonts.cljs:170 -#, markdown msgid "dashboard.fonts.hero-text1" msgstr "" "Visi augšupielādētie tīmekļa fonti tiks pievienoti fontu saimju sarakstam, " @@ -547,8 +501,6 @@ msgstr "" "saimes nosaukumu tiks apkopoti kā **viena fontu saime**. Var augšupielādēt " "fontus šādos veidolos: **TTF, OTF un WOFF** (būs nepieciešams tikai viens)." -#: src/app/main/ui/dashboard/fonts.cljs:182 -#, markdown msgid "dashboard.fonts.hero-text2" msgstr "" "Vajadzētu augšupielādēt tikai sev piederošus fontus vai tos, kuriem ir " @@ -556,12 +508,10 @@ msgstr "" "sniegšanas noteikumos](https://penpot.app/terms.html). Varētu būt noderīgi " "izlasīt arī par [fontu licencēšanu](https://www.typography.com/faq)." -#: src/app/main/ui/dashboard/fonts.cljs:202 +#: src/app/main/ui/dashboard/fonts.cljs msgid "dashboard.fonts.upload-all" msgstr "Augšupielādēt visu" -#: src/app/main/ui/dashboard/fonts.cljs:187 -#, markdown msgid "dashboard.fonts.warning-text" msgstr "" "Esam noteikuši iespējamu sarežģījumu ar fontiem, kas ir saistīta ar " @@ -571,1692 +521,1527 @@ msgstr "" "[Transfonter](https://transfonter.org/), lai izveidotu tīmekļa fontus un " "novērstu kļūdas. " -#: src/app/main/ui/dashboard/import.cljs:472, src/app/main/ui/dashboard/project_menu.cljs:108 msgid "dashboard.import" msgstr "Ievietot Penpot datnes" -#: src/app/main/ui/dashboard/import.cljs:304, src/app/worker/import.cljs:753, src/app/worker/import.cljs:755 msgid "dashboard.import.analyze-error" msgstr "Ak vai! Šo datni nevarēja ievietot" -#, unused msgid "dashboard.import.analyze-error.components-v2" msgstr "Datne ar v2 sastāvdaļām ir aktivizēta, bet šī komanda to vēl neatbalsta." -#: src/app/main/ui/dashboard/import.cljs:308 msgid "dashboard.import.import-error" msgstr "Datnes ievietošanas laikā radās sarežģījumi. Datne netika ievietota." -#: src/app/main/ui/dashboard/import.cljs:493 msgid "dashboard.import.import-message" msgid_plural "dashboard.import.import-message" msgstr[0] "%s datņu tika veiksmīgi ievietotas." msgstr[1] "%s datne tika veiksmīgi ievietota." msgstr[2] "%s datnes tika veiksmīgi ievietotas." -#: src/app/main/ui/dashboard/import.cljs:481, src/app/main/ui/dashboard/import.cljs:488 msgid "dashboard.import.import-warning" msgstr "Dažās datnēs bija nederīgi objekti, kuri tika noņemti." -#: src/app/main/ui/dashboard/import.cljs:144 msgid "dashboard.import.progress.process-colors" msgstr "Krāsu apstrāde" -#: src/app/main/ui/dashboard/import.cljs:153 msgid "dashboard.import.progress.process-components" msgstr "Apstrādā sastāvdaļas" -#: src/app/main/ui/dashboard/import.cljs:150 msgid "dashboard.import.progress.process-media" msgstr "Multivides apstrāde" -#: src/app/main/ui/dashboard/import.cljs:141 msgid "dashboard.import.progress.process-page" msgstr "%s lapas apstrāde" -#: src/app/main/ui/dashboard/import.cljs:147 msgid "dashboard.import.progress.process-typographies" msgstr "Apstrādā burtu stilus un veidus" -#: src/app/main/ui/dashboard/import.cljs:135 msgid "dashboard.import.progress.upload-data" msgstr "Augšupielādē datus serverī (%s/%s)" -#: src/app/main/ui/dashboard/import.cljs:138 msgid "dashboard.import.progress.upload-media" msgstr "Augšupielādē datni: %s" -#: src/app/main/ui/dashboard/team.cljs:109 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.invite-profile" msgstr "Uzaicināt personas" -#: src/app/main/ui/dashboard/sidebar.cljs:547, src/app/main/ui/dashboard/sidebar.cljs:556, src/app/main/ui/dashboard/sidebar.cljs:563, src/app/main/ui/dashboard/team.cljs:312 +#: src/app/main/ui/dashboard/sidebar.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.leave-team" msgstr "Atstāt komandu" -#: src/app/main/ui/dashboard/templates.cljs:88, src/app/main/ui/dashboard/templates.cljs:163 msgid "dashboard.libraries-and-templates" msgstr "Bibliotēkas un veidnes" -#: src/app/main/ui/dashboard/templates.cljs:164 msgid "dashboard.libraries-and-templates.explore" msgstr "Izpētīt vairāk un uzzinātt, kā sniegt ieguldījumu" -#: src/app/main/ui/dashboard/import.cljs:365 msgid "dashboard.libraries-and-templates.import-error" msgstr "Veidnes ievietošanas laikā radās sarežģījumi. Veidne netika ievietota." -#: src/app/main/ui/dashboard/libraries.cljs:53 +#: src/app/main/ui/dashboard/libraries.cljs msgid "dashboard.libraries-title" msgstr "Bibliotēkas" -#: src/app/main/ui/dashboard/placeholder.cljs:45 +#: src/app/main/ui/dashboard/grid.cljs msgid "dashboard.loading-files" msgstr "ielādē datnes …" -#: src/app/main/ui/dashboard/fonts.cljs:431 msgid "dashboard.loading-fonts" msgstr "notiek fontu ielāde …" -#: src/app/main/ui/dashboard/file_menu.cljs:281, src/app/main/ui/dashboard/project_menu.cljs:100 +#: src/app/main/ui/dashboard/project_menu.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.move-to" msgstr "Pārvietot uz" -#: src/app/main/ui/dashboard/file_menu.cljs:245 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.move-to-multi" msgstr "Pārvietot %s datnes uz" -#: src/app/main/ui/dashboard/file_menu.cljs:226 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.move-to-other-team" msgstr "Pārvietot uz citu komandu" -#: src/app/main/ui/dashboard/files.cljs:105, src/app/main/ui/dashboard/projects.cljs:252, src/app/main/ui/dashboard/projects.cljs:253 +#: src/app/main/ui/dashboard/projects.cljs, +#: src/app/main/ui/dashboard/files.cljs msgid "dashboard.new-file" msgstr "+ Jauna datne" -#: src/app/main/data/dashboard.cljs:958, src/app/main/data/dashboard.cljs:1181 +#: src/app/main/data/dashboard.cljs msgid "dashboard.new-file-prefix" msgstr "Jauna datne" -#: src/app/main/ui/dashboard/projects.cljs:55 +#: src/app/main/ui/dashboard/projects.cljs msgid "dashboard.new-project" msgstr "+ Jauns projekts" -#: src/app/main/data/dashboard.cljs:726, src/app/main/data/dashboard.cljs:1184 +#: src/app/main/data/dashboard.cljs msgid "dashboard.new-project-prefix" msgstr "Jauns projekts" -#: src/app/main/ui/dashboard/search.cljs:60 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.no-matches-for" msgstr "“%s” nav atrasta neviena atbilstība" -#: src/app/main/ui/dashboard/sidebar.cljs:827 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.no-projects-placeholder" msgstr "Šeit būs redzami piespraustie projekti" -#: src/app/main/ui/auth/verify_token.cljs:33 +#: src/app/main/ui/auth/verify_token.cljs msgid "dashboard.notifications.email-changed-successfully" msgstr "E-pasta adrese tika veiksmīgi atjaunināta" -#: src/app/main/ui/auth/verify_token.cljs:27 +#: src/app/main/ui/auth/verify_token.cljs msgid "dashboard.notifications.email-verified-successfully" msgstr "E-pasta adrese tika veiksmīgi apliecināta" -#: src/app/main/ui/settings/password.cljs:37 +#: src/app/main/ui/settings/password.cljs msgid "dashboard.notifications.password-saved" msgstr "Parole ir veiksmīgi saglabāta." -#: src/app/main/ui/dashboard/team.cljs:1081 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.num-of-members" msgstr "Dalībieki: %s" -#: src/app/main/ui/dashboard/file_menu.cljs:267 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.open-in-new-tab" msgstr "Atvērt datni jaunā cilnē" -#: src/app/main/ui/dashboard/files.cljs:117, src/app/main/ui/dashboard/projects.cljs:260, src/app/main/ui/dashboard/projects.cljs:261 msgid "dashboard.options" msgstr "Opcijas" -#: src/app/main/ui/settings/password.cljs:106, src/app/main/ui/settings/password.cljs:119 +#: src/app/main/ui/settings/password.cljs msgid "dashboard.password-change" msgstr "Mainīt paroli" -#: src/app/main/ui/dashboard/pin_button.cljs:24, src/app/main/ui/dashboard/project_menu.cljs:95 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.pin-unpin" msgstr "Piespraust/Atspraust" -#: src/app/main/ui/dashboard/projects.cljs:51 +#: src/app/main/ui/dashboard/projects.cljs msgid "dashboard.projects-title" msgstr "Projekti" -#: src/app/main/ui/settings/profile.cljs:86 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.remove-account" msgstr "Noņemt savu kontu?" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.remove-shared" msgstr "Noņemt kā koplietojamo bibliotēku" -#: src/app/main/ui/settings/profile.cljs:78 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.save-settings" msgstr "Saglabāt iestatījumus" -#: src/app/main/ui/dashboard/sidebar.cljs:246, src/app/main/ui/dashboard/sidebar.cljs:247 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.search-placeholder" msgstr "Meklēt…" -#: src/app/main/ui/dashboard/search.cljs:55 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.searching-for" msgstr "Meklē pēc “%s“…" -#: src/app/main/ui/settings/options.cljs:56 +#: src/app/main/ui/settings/options.cljs msgid "dashboard.select-ui-language" msgstr "Atlasīt saskarnes valodu" -#: src/app/main/ui/settings/options.cljs:63 +#: src/app/main/ui/settings/options.cljs msgid "dashboard.select-ui-theme" msgstr "Atlasīt dizainu" -#: src/app/main/ui/dashboard/projects.cljs:282 +#: src/app/main/ui/dashboard/grid.cljs msgid "dashboard.show-all-files" msgstr "Rādīt visas datnes" -#: src/app/main/ui/dashboard/file_menu.cljs:96 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-delete-file" msgid_plural "dashboard.success-delete-file" msgstr[0] "Datnes netika izdzēstas" msgstr[1] "Datne ir sekmīgi izdzēsta" msgstr[2] "Datnes ir sekmīgi izdzēstas" -#: src/app/main/ui/dashboard/project_menu.cljs:59 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.success-delete-project" msgstr "Projekts tika veiksmīgi izdzēsts" -#: src/app/main/ui/dashboard/file_menu.cljs:91 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-duplicate-file" msgid_plural "dashboard.success-delete-file" msgstr[0] "Neviena datne netika sekmīgi divkāršota" msgstr[1] "Datne tika sekmīgi divkāršota" msgstr[2] "Datnes tika sekmīgi divkāršotas" -#: src/app/main/ui/dashboard/project_menu.cljs:33 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.success-duplicate-project" msgstr "Projekts tika veiksmīgi divkāršots" -#: src/app/main/ui/dashboard/file_menu.cljs:130, src/app/main/ui/dashboard/grid.cljs:558, src/app/main/ui/dashboard/sidebar.cljs:152 +#: src/app/main/ui/dashboard/grid.cljs, src/app/main/ui/dashboard/sidebar.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-move-file" msgstr "Datne tika sekmīgi pārvietota" -#: src/app/main/ui/dashboard/file_menu.cljs:129 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-move-files" msgstr "Datnes tika veiksmīgi pārvietotas" -#: src/app/main/ui/dashboard/project_menu.cljs:54 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.success-move-project" msgstr "Projekts tika veiksmīgi pārvietots" -#: src/app/main/ui/dashboard/team.cljs:1052 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.team-info" msgstr "Par komandu" -#: src/app/main/ui/dashboard/team.cljs:1070 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.team-members" msgstr "Komandas dalībnieki" -#: src/app/main/ui/dashboard/team.cljs:1085 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.team-projects" msgstr "Komandas projekti" -#: src/app/main/ui/settings/options.cljs:61 +#: src/app/main/ui/settings/options.cljs msgid "dashboard.theme-change" msgstr "Saskarnes dizains" -#: src/app/main/ui/dashboard/search.cljs:42 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.title-search" msgstr "Meklēšanas rezultāti" -#: src/app/main/ui/dashboard/search.cljs:50 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.type-something" msgstr "Jāievada, lai meklētu" -#: src/app/main/ui/dashboard/file_menu.cljs:287, src/app/main/ui/workspace/main_menu.cljs:566 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.unpublish-shared" msgstr "Atcelt bibliotēkas publicēšanu" -#: src/app/main/ui/settings/options.cljs:71 +#: src/app/main/ui/settings/password.cljs, +#: src/app/main/ui/settings/options.cljs msgid "dashboard.update-settings" msgstr "Atjaunināt iestatījumus" -#: src/app/main/ui/dashboard/team.cljs:861 msgid "dashboard.webhooks.active" msgstr "Ir aktīvs" -#: src/app/main/ui/dashboard/team.cljs:862 msgid "dashboard.webhooks.active.explain" msgstr "Kad tiks aktivizēts āķis, notikuma detaļas tiks piegādātās" -#: src/app/main/ui/dashboard/team.cljs:852 msgid "dashboard.webhooks.content-type" msgstr "Satura tips" -#: src/app/main/ui/dashboard/team.cljs:885 msgid "dashboard.webhooks.create" msgstr "Izveidot tīmekļa aizķeri" -#: src/app/main/ui/dashboard/team.cljs:775 msgid "dashboard.webhooks.create.success" msgstr "Tīmekļa aizķere ir veiksmīgi izveidota." -#: src/app/main/ui/dashboard/team.cljs:882 msgid "dashboard.webhooks.description" msgstr "" "Tīmekļa aizķeres ir vienkāršs veids, kā ļaut citām tīmekļa vietnēm un " "lietotnēm saņemt paziņojumus, kad Penpot notiek noteikti notikumi. Mēs " "nosūtīsim POST pieprasījumu katram norādītajam URL." -#: src/app/main/ui/dashboard/team.cljs:1005 msgid "dashboard.webhooks.empty.add-one" msgstr "Jānospiež poga \"Pievienot tīmekļa aizķeri\", lai pievienotu kādu." -#: src/app/main/ui/dashboard/team.cljs:1004 msgid "dashboard.webhooks.empty.no-webhooks" msgstr "Līdz šim nav izveidota neviena tīmekļa aizķere." -#, unused msgid "dashboard.webhooks.update.success" msgstr "Tīmekļa aizķere ir sekmīgi atjaunināta." -#: src/app/main/ui/settings.cljs:31 +#: src/app/main/ui/settings.cljs msgid "dashboard.your-account-title" msgstr "Mans konts" -#: src/app/main/ui/settings/profile.cljs:70 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.your-email" msgstr "E-pasta adrese" -#: src/app/main/ui/settings/profile.cljs:62 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.your-name" msgstr "Vārds" -#: src/app/main/ui/dashboard/file_menu.cljs:38, src/app/main/ui/dashboard/fonts.cljs:33, src/app/main/ui/dashboard/libraries.cljs:42, src/app/main/ui/dashboard/projects.cljs:318, src/app/main/ui/dashboard/search.cljs:30, src/app/main/ui/dashboard/sidebar.cljs:312, src/app/main/ui/dashboard/team.cljs:495, src/app/main/ui/dashboard/team.cljs:729, src/app/main/ui/dashboard/team.cljs:991, src/app/main/ui/dashboard/team.cljs:1038 +#: src/app/main/ui/dashboard/search.cljs, src/app/main/ui/dashboard/team.cljs, +#: src/app/main/ui/dashboard/libraries.cljs, +#: src/app/main/ui/dashboard/projects.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.your-penpot" msgstr "Mans Penpot" -#: src/app/main/ui/alert.cljs:32 +#: src/app/main/ui/alert.cljs msgid "ds.alert-ok" msgstr "Labi" -#: src/app/main/ui/alert.cljs:31, src/app/main/ui/alert.cljs:34 +#: src/app/main/ui/alert.cljs msgid "ds.alert-title" msgstr "Uzmanību" -#: src/app/main/ui/confirm.cljs:83 +#: src/app/main/ui/confirm.cljs msgid "ds.component-subtitle" msgstr "Atjaunināmās sastāvdaļas:" -#: src/app/main/ui/confirm.cljs:36, src/app/main/ui/workspace/plugins.cljs:246 +#: src/app/main/ui/confirm.cljs msgid "ds.confirm-cancel" msgstr "Atcelt" -#: src/app/main/ui/confirm.cljs:37, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:141 +#: src/app/main/ui/confirm.cljs msgid "ds.confirm-ok" msgstr "Labi" -#: src/app/main/ui/confirm.cljs:35, src/app/main/ui/confirm.cljs:39 +#: src/app/main/ui/confirm.cljs, src/app/main/ui/confirm.cljs msgid "ds.confirm-title" msgstr "Vai esat pārliecināti?" -#: src/app/main/data/users.cljs:705 +#: src/app/main/data/users.cljs msgid "errors.auth-provider-not-allowed" msgstr "Autentifikācijas nodrošinātājs nav atļauts šim profilam" -#: src/app/main/ui/auth/login.cljs:62 +#: src/app/main/ui/auth/login.cljs msgid "errors.auth-provider-not-configured" msgstr "Autentifikācijas nodrošinātājs nav konfigurēts." -#: src/app/main/errors.cljs:104 msgid "errors.auth.unable-to-login" msgstr "Šķiet, ka neesi autentificēts vai ir beidzies sesijas derīgums." -#: src/app/main/data/fonts.cljs:189 msgid "errors.bad-font" msgstr "Fontu %s nevarēja ielādēt" -#: src/app/main/data/fonts.cljs:188 msgid "errors.bad-font-plural" msgstr "Fontus %s nevarēja ielādēt" -#: src/app/main/data/workspace/media.cljs:198 msgid "errors.cannot-upload" msgstr "Nevar augšupielādēt multivides datni." -#: src/app/main/data/workspace.cljs:1598 +#: src/app/main/data/workspace.cljs msgid "errors.clipboard-not-implemented" msgstr "Izmantotais pārlūks nevar veikt šo darbību" -#: src/app/main/ui/auth/verify_token.cljs:82, src/app/main/ui/settings/change_email.cljs:46 +#: src/app/main/ui/auth/verify_token.cljs, +#: src/app/main/ui/settings/change_email.cljs msgid "errors.email-already-exists" msgstr "E-pasta adrese jau tiek izmantota" -#: src/app/main/ui/auth/verify_token.cljs:87 +#: src/app/main/ui/auth/verify_token.cljs msgid "errors.email-already-validated" msgstr "E-pasta adrese jau ir apliecināta." -#: src/app/main/ui/settings/password.cljs:28 msgid "errors.email-as-password" msgstr "E-pastu nevar izmantot kā paroli" -#: src/app/main/data/users.cljs:707, src/app/main/ui/auth/register.cljs:63 +#: src/app/main/data/users.cljs msgid "errors.email-domain-not-allowed" msgstr "Domēns nav atļauts" -#: src/app/main/ui/auth/recovery_request.cljs:63, src/app/main/ui/dashboard/team.cljs:578, src/app/main/ui/settings/change_email.cljs:54 +#: src/app/main/ui/auth/register.cljs, +#: src/app/main/ui/auth/recovery_request.cljs, +#: src/app/main/ui/settings/change_email.cljs, +#: src/app/main/ui/dashboard/team.cljs msgid "errors.email-has-permanent-bounces" msgstr "E-pastam “%s” ir daudz pastāvīgu atlēcienu atskaišu." -#: src/app/main/ui/auth/login.cljs:81, src/app/main/ui/auth/recovery_request.cljs:31, src/app/main/ui/auth/register.cljs:43 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs, +#: src/app/main/ui/auth/recovery_request.cljs msgid "errors.email-invalid" msgstr "Lūgums ievadīt derīgu e-pasta adresi" -#: src/app/main/ui/settings/change_email.cljs:35 +#: src/app/main/ui/settings/change_email.cljs msgid "errors.email-invalid-confirmation" msgstr "Apstiprinājuma e-pastam jāatbilst" -#: src/app/main/ui/dashboard/team.cljs:170 msgid "errors.email-spam-or-permanent-bounces" msgstr "E-pasta adrese “%s” ir atzīmēta surogātpasts vai pastāvīgi saņem atlēcienu." -#: src/app/main/errors.cljs:227 +#: src/app/main/errors.cljs msgid "errors.feature-mismatch" msgstr "" "Šķiet, ka tiek atvērta datne, kurā ir iespējota iespēja '%s', bet " "pašreizējā Penpot versija to neatbalsta vai tā ir atspējota." -#: src/app/main/errors.cljs:231, src/app/main/errors.cljs:245 +#: src/app/main/errors.cljs msgid "errors.feature-not-supported" msgstr "Līdzeklis '%s' netiek atbalstīts." -#: src/app/main/errors.cljs:223 +#: src/app/main/errors.cljs msgid "errors.file-feature-mismatch" msgstr "" "Izskatās, ka ir nesaderība starp iespējotajām iespējām un iespējām datnē, " "kuru tiek mēģināts atvērt. Jāpiemēro '%s' migrācijas, pirms datne var tikt " "atvērta." -#: src/app/main/data/users.cljs:709, src/app/main/ui/auth/login.cljs:65, src/app/main/ui/auth/login.cljs:116, src/app/main/ui/auth/register.cljs:69, src/app/main/ui/auth/register.cljs:237, src/app/main/ui/auth/verify_token.cljs:92, src/app/main/ui/dashboard/team.cljs:173, src/app/main/ui/onboarding/team_choice.cljs:95, src/app/main/ui/settings/access_tokens.cljs:91, src/app/main/ui/settings/feedback.cljs:52 +#: src/app/main/ui/auth/verify_token.cljs, +#: src/app/main/ui/settings/feedback.cljs, src/app/main/ui/dashboard/team.cljs msgid "errors.generic" msgstr "Noticis kaut kas nelāgs." -#: src/app/main/ui/components/color_input.cljs:57 +#: src/app/main/ui/components/color_input.cljs msgid "errors.invalid-color" msgstr "Nederīga krāsa" -#: src/app/main/ui/static.cljs:43 +#: src/app/main/ui/auth/verify_token.cljs msgid "errors.invite-invalid" msgstr "Nederīgs ielūgums" -#: src/app/main/ui/static.cljs:44 msgid "errors.invite-invalid.info" msgstr "Iespējams, ka šis uzaicinājums ir atcelts vai ir beidzies tā derīgums." -#: src/app/main/ui/auth/login.cljs:101 +#: src/app/main/ui/auth/login.cljs msgid "errors.ldap-disabled" msgstr "LDAP autentifikācija ir atspējota." -#: src/app/main/errors.cljs:239 +#: src/app/main/errors.cljs msgid "errors.max-quote-reached" msgstr "Ir sasniegts '%s' ierobežojums. Jāsazinās ar atbalstu." -#: src/app/main/data/workspace/media.cljs:184 +#: src/app/main/data/workspace/persistence.cljs msgid "errors.media-too-large" msgstr "Attēls ir pārāk liels, lai to ievietotu." -#: src/app/main/data/media.cljs:68, src/app/main/data/workspace/media.cljs:187 +#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs msgid "errors.media-type-mismatch" msgstr "Šķiet, ka attēla saturs neatbilst datnes paplašinājumam." -#: src/app/main/data/media.cljs:65, src/app/main/data/workspace/media.cljs:172, src/app/main/data/workspace/media.cljs:175, src/app/main/data/workspace/media.cljs:178, src/app/main/data/workspace/media.cljs:181 +#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs msgid "errors.media-type-not-allowed" msgstr "Šķiet, ka šis nav derīgs attēls." -#: src/app/main/ui/dashboard/team.cljs:574 +#: src/app/main/ui/dashboard/team.cljs msgid "errors.member-is-muted" msgstr "" "Uzaicinātajam profilam ir apklusināta e-pasta saņemšana (ziņojumi par " "surogātpastu vai daudz atlēcienu)." -#: src/app/main/ui/settings/password.cljs:61 +#: src/app/main/ui/settings/password.cljs msgid "errors.password-invalid-confirmation" msgstr "Apstiprinājuma parolei ir jāsakrīt" -#: src/app/main/ui/settings/password.cljs:64 +#: src/app/main/ui/settings/password.cljs msgid "errors.password-too-short" msgstr "Parolē ir jābūt vismaz 8 rakstzīmēm" -#: src/app/main/errors.cljs:124 msgid "errors.paste-data-validation" msgstr "Starpliktuvē ir nederīgi dati" -#: src/app/main/data/users.cljs:703, src/app/main/ui/auth/login.cljs:97, src/app/main/ui/auth/login.cljs:105 msgid "errors.profile-blocked" msgstr "Profils ir bloķēts" -#: src/app/main/ui/auth/recovery_request.cljs:60, src/app/main/ui/dashboard/team.cljs:164, src/app/main/ui/dashboard/team.cljs:570, src/app/main/ui/settings/change_email.cljs:50 +#: src/app/main/ui/auth/recovery_request.cljs, +#: src/app/main/ui/settings/change_email.cljs, +#: src/app/main/ui/dashboard/team.cljs msgid "errors.profile-is-muted" msgstr "" "Profila epasta saņemšana ir apklusināta (ziņojumi par surogātpastu vai " "daudz atlēcienu)." -#: src/app/main/data/users.cljs:701, src/app/main/ui/auth/register.cljs:60 +#: src/app/main/ui/auth/register.cljs msgid "errors.registration-disabled" msgstr "Reģistrācija pašlaik ir atspējota." -#: src/app/main/errors.cljs:218 +#: src/app/main/errors.cljs msgid "errors.team-feature-mismatch" msgstr "Noteikta nesaderīga iespēja '%s'" -#: src/app/main/ui/dashboard/sidebar.cljs:365, src/app/main/ui/dashboard/team.cljs:359 msgid "errors.team-leave.insufficient-members" msgstr "" "Komandā ir nepietiekams dalībnieku skaits, lai to pamestu. Iespējams, ka to " "ir vēlams izdzēst." -#: src/app/main/ui/dashboard/sidebar.cljs:368, src/app/main/ui/dashboard/team.cljs:362 msgid "errors.team-leave.member-does-not-exists" msgstr "Dalībnieks, kuru mēģināt piešķirt, nepastāv." -#: src/app/main/ui/dashboard/sidebar.cljs:371, src/app/main/ui/dashboard/team.cljs:365 msgid "errors.team-leave.owner-cant-leave" msgstr "Īpašnieks nevar pamest komandu, ir jāpiešķir īpašnieka loma citam." -#: src/app/main/data/media.cljs:71 +#: src/app/main/data/media.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, +#: src/app/main/ui/inspect/exports.cljs msgid "errors.unexpected-error" msgstr "Atgadījās neparedzēta kļūda." -#: src/app/main/ui/auth/verify_token.cljs:60 +#: src/app/main/ui/auth/verify_token.cljs msgid "errors.unexpected-token" msgstr "Nezināma tekstvienība" -#, unused msgid "errors.validation" msgstr "Pārbaudes kļūda" -#: src/app/main/errors.cljs:235 +#: src/app/main/errors.cljs msgid "errors.version-not-supported" msgstr "Datnei ir nesaderīgs versijas numurs" -#: src/app/main/ui/dashboard/team.cljs:796 msgid "errors.webhooks.connection" msgstr "Savienojuma kļūda, URL nav sasniedzams" -#: src/app/main/ui/dashboard/team.cljs:790 msgid "errors.webhooks.invalid-uri" msgstr "URL neiztur pārbaudi." -#: src/app/main/ui/dashboard/team.cljs:949 msgid "errors.webhooks.last-delivery" msgstr "Pēdējā piegāde nebija veiksmīga." -#: src/app/main/ui/dashboard/team.cljs:792, src/app/main/ui/dashboard/team.cljs:952 msgid "errors.webhooks.ssl-validation" msgstr "Kļūda SSL pārbaudē." -#: src/app/main/ui/dashboard/team.cljs:794 msgid "errors.webhooks.timeout" msgstr "Noilgums" -#: src/app/main/ui/dashboard/team.cljs:788 msgid "errors.webhooks.unexpected" msgstr "Pārbaudes laikā atgadījās neparedzēta kļūda" -#: src/app/main/ui/dashboard/team.cljs:798, src/app/main/ui/dashboard/team.cljs:955 msgid "errors.webhooks.unexpected-status" msgstr "Neparedzēts statuss %s" -#: src/app/main/ui/auth/login.cljs:109, src/app/main/ui/auth/login.cljs:113 +#: src/app/main/ui/auth/login.cljs msgid "errors.wrong-credentials" msgstr "E-pasta adrese vai parole nav pareiza." -#: src/app/main/ui/settings/password.cljs:25 +#: src/app/main/ui/settings/password.cljs msgid "errors.wrong-old-password" msgstr "Vecā parole nav pareiza" -#: src/app/main/ui/settings/feedback.cljs:77 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.description" msgstr "Apraksts" -#: src/app/main/ui/settings/feedback.cljs:95 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.discourse-go-to" msgstr "Doties uz Penpot forumu" -#: src/app/main/ui/settings/feedback.cljs:89 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.discourse-subtitle1" msgstr "" "Mēs esam priecīgi Tevi šeit redzēt. Ja ir nepieciešama palīdzība, lūgums " "meklēt pirms ieraksta veikšanas." -#: src/app/main/ui/settings/feedback.cljs:88 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.discourse-title" msgstr "Penpot kopiena" -#: src/app/main/ui/settings/feedback.cljs:72 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.subject" msgstr "Temats" -#: src/app/main/ui/settings/feedback.cljs:69 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.subtitle" msgstr "" "Lūgums aprakstīt e-pasta ziņojuma iemeslu, norādot, vai tā ir nepilnība, " "ierosinājums vai šaubas. Kāds mūsu komandas dalībnieks atbildēs pēc " "iespējas ātrāk." -#: src/app/main/ui/settings/feedback.cljs:68 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.title" msgstr "E-pasts" -#: src/app/main/ui/settings/feedback.cljs:105 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.twitter-go-to" msgstr "Atvērt X" -#: src/app/main/ui/settings/feedback.cljs:99 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.twitter-subtitle1" msgstr "Šeit, lai palīdzētu ar tehniskajiem jautājumiem." -#: src/app/main/ui/settings/feedback.cljs:98 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.twitter-title" msgstr "X atbalsta konts" -#: src/app/main/ui/settings/password.cljs:30 +#: src/app/main/ui/settings/password.cljs msgid "generic.error" msgstr "Radās kļūda" -#: src/app/main/ui/viewer/inspect/attributes/blur.cljs:26 +#: src/app/main/ui/inspect/attributes/blur.cljs msgid "inspect.attributes.blur" msgstr "Aizmiglošana" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:115 +#: src/app/main/ui/inspect/attributes/blur.cljs msgid "inspect.attributes.blur.value" msgstr "Vērtība" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:112 +#: src/app/main/ui/inspect/attributes/common.cljs msgid "inspect.attributes.color.hex" msgstr "HEX" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:114 +#: src/app/main/ui/inspect/attributes/common.cljs msgid "inspect.attributes.color.hsla" msgstr "HSLA" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:113 +#: src/app/main/ui/inspect/attributes/common.cljs msgid "inspect.attributes.color.rgba" msgstr "RGBA" -#: src/app/main/ui/viewer/inspect/attributes/fill.cljs:57 +#: src/app/main/ui/inspect/attributes/fill.cljs msgid "inspect.attributes.fill" msgstr "Aizpildījums" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:99, src/app/main/ui/viewer/inspect/attributes/image.cljs:51 +#: src/app/main/ui/inspect/attributes/image.cljs msgid "inspect.attributes.image.download" msgstr "Lejupielādēt avota attēlu" -#: src/app/main/ui/viewer/inspect/attributes/image.cljs:39 +#: src/app/main/ui/inspect/attributes/image.cljs msgid "inspect.attributes.image.height" msgstr "Augstums" -#: src/app/main/ui/viewer/inspect/attributes/image.cljs:32 +#: src/app/main/ui/inspect/attributes/image.cljs msgid "inspect.attributes.image.width" msgstr "Platums" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout" msgstr "Izkārtojums" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.height" msgstr "Augstums" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.left" msgstr "Kreisi" -#: src/app/main/ui/inspect/attributes/layout.cljs, src/app/main/ui/inspect/attributes/layout.cljs -#, unused +#: src/app/main/ui/inspect/attributes/layout.cljs, +#: src/app/main/ui/inspect/attributes/layout.cljs msgid "inspect.attributes.layout.radius" msgstr "Rādiuss" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.rotation" msgstr "Pagriešana" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.top" msgstr "Augša" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.width" msgstr "Platums" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:57 +#: src/app/main/ui/inspect/attributes/shadow.cljs msgid "inspect.attributes.shadow" msgstr "Ēna" -#: src/app/main/ui/viewer/inspect/attributes/geometry.cljs:40 +#: src/app/main/ui/inspect/attributes/layout.cljs msgid "inspect.attributes.size" msgstr "Izmērs un novietojums" -#: src/app/main/ui/viewer/inspect/attributes/stroke.cljs:52 +#: src/app/main/ui/inspect/attributes/stroke.cljs msgid "inspect.attributes.stroke" msgstr "Vilkums" -#, permanent, unused msgid "inspect.attributes.stroke.alignment.center" msgstr "Centrs" -#, permanent, unused msgid "inspect.attributes.stroke.alignment.inner" msgstr "Iekšpuse" -#, permanent, unused msgid "inspect.attributes.stroke.alignment.outer" msgstr "Ārpuse" -#, unused msgid "inspect.attributes.stroke.style.dotted" msgstr "Punktots" -#, unused msgid "inspect.attributes.stroke.style.mixed" msgstr "Sajaukts" -#, unused msgid "inspect.attributes.stroke.style.none" msgstr "Nav" -#, unused msgid "inspect.attributes.stroke.style.solid" msgstr "Nepārtrauktā" #: src/app/main/ui/inspect/attributes/stroke.cljs -#, unused msgid "inspect.attributes.stroke.width" msgstr "Platums" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:81, src/app/main/ui/viewer/inspect/attributes/text.cljs:194 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography" msgstr "Burtu stils un veids" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:89 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.font-family" msgstr "Fontu saime" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:107 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.font-size" msgstr "Fonta izmērs" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:98 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.font-style" msgstr "Fonta stils" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:116 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.font-weight" msgstr "Fonta Treknums" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:134 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.letter-spacing" msgstr "Burtu atstarpes" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:125 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.line-height" msgstr "Līnijas augstums" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:143 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.text-decoration" msgstr "Teksta noformējums" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:145 msgid "inspect.attributes.typography.text-decoration.none" msgstr "Nav" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:146 msgid "inspect.attributes.typography.text-decoration.strikethrough" msgstr "Pārsvītrojums" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:147 msgid "inspect.attributes.typography.text-decoration.underline" msgstr "Pasvītrojums" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:156 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.text-transform" msgstr "Teksta transformācija" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:158 msgid "inspect.attributes.typography.text-transform.lowercase" msgstr "Mazie burti" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:159 msgid "inspect.attributes.typography.text-transform.none" msgstr "Nav" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:160 msgid "inspect.attributes.typography.text-transform.titlecase" msgstr "Virsraksta stils" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:162 msgid "inspect.attributes.typography.text-transform.unset" msgstr "Atiestatīt" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:161 msgid "inspect.attributes.typography.text-transform.uppercase" msgstr "Lielie burti" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:140 msgid "inspect.empty.help" msgstr "" "Ja ir vēlme uzzināt vairāk par dizaina apskati, jāapmeklē Penpot palīdzības " "centrs" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:143 msgid "inspect.empty.more-info" msgstr "Vairāk informācijas par apskatīšanu" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:135 msgid "inspect.empty.select" msgstr "Jāatlasa apveids, plātne vai kopa, lai apskatītu to īpašības un kodu" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:125 +#: src/app/main/ui/inspect/right_sidebar.cljs msgid "inspect.tabs.code" msgstr "Kods" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:98 msgid "inspect.tabs.code.selected.circle" msgstr "Aplis" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:99 msgid "inspect.tabs.code.selected.component" msgstr "Sastāvdaļa" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:100 msgid "inspect.tabs.code.selected.curve" msgstr "Līkne" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:101 msgid "inspect.tabs.code.selected.frame" msgstr "Plātne" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:102 msgid "inspect.tabs.code.selected.group" msgstr "Kopa" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:103 msgid "inspect.tabs.code.selected.image" msgstr "Attēls" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:104 msgid "inspect.tabs.code.selected.mask" msgstr "Maska" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:93 +#: src/app/main/ui/inspect/right_sidebar.cljs msgid "inspect.tabs.code.selected.multiple" msgstr "Atlasīti: %s" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:105 msgid "inspect.tabs.code.selected.path" msgstr "Ceļš" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:106 msgid "inspect.tabs.code.selected.rect" msgstr "Taisnstūris" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:107 msgid "inspect.tabs.code.selected.svg-raw" msgstr "SVG" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:108 msgid "inspect.tabs.code.selected.text" msgstr "Teksts" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:115 +#: src/app/main/ui/inspect/right_sidebar.cljs msgid "inspect.tabs.info" msgstr "Infomācija" -#: src/app/main/ui/workspace/main_menu.cljs:158 +#: src/app/main/ui/workspace/header.cljs msgid "label.shortcuts" msgstr "Saīsnes" -#: src/app/main/ui/dashboard/import.cljs:527 msgid "labels.accept" msgstr "Pieņemt" -#: src/app/main/ui/settings/sidebar.cljs:100 +#: src/app/main/ui/settings/sidebar.cljs msgid "labels.access-tokens" msgstr "Piekļuves pilnvaras" -#: src/app/main/ui/dashboard/team.cljs:968 msgid "labels.active" msgstr "Aktīvs" -#: src/app/main/ui/dashboard/fonts.cljs:175 msgid "labels.add-custom-font" msgstr "Pievienot pielāgotu fontu" -#: src/app/main/ui/dashboard/team.cljs:120, src/app/main/ui/dashboard/team.cljs:276, src/app/main/ui/dashboard/team.cljs:519, src/app/main/ui/dashboard/team.cljs:549, src/app/main/ui/onboarding/team_choice.cljs:67 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs msgid "labels.admin" msgstr "Pārvaldnieks" -#: src/app/main/ui/onboarding/questions.cljs:174 -msgid "labels.adobe-xd" -msgstr "Adobe XD" - #: src/app/main/ui/workspace/comments.cljs -#, unused msgid "labels.all" msgstr "Visi" -#: src/app/main/ui/auth.cljs:37 msgid "labels.and" msgstr "un" -#: src/app/main/ui/onboarding/team_choice.cljs:162 msgid "labels.back" msgstr "Atpakaļ" -#: src/app/main/ui/static.cljs:59 +#: src/app/main/ui/static.cljs msgid "labels.bad-gateway.desc-message" msgstr "" "Izskatās, ka mazliet jāuzgaida un jāmēģina vēlreiz; mēs veicam nelielus " "mūsu serveru uzturēšanas darbus." -#: src/app/main/ui/static.cljs:58 +#: src/app/main/ui/static.cljs msgid "labels.bad-gateway.main-message" msgstr "Nepareiza vārteja" -#: src/app/main/data/common.cljs:112, src/app/main/ui/dashboard/change_owner.cljs:69, src/app/main/ui/dashboard/import.cljs:514, src/app/main/ui/dashboard/team.cljs:868, src/app/main/ui/delete_shared.cljs:35, src/app/main/ui/export.cljs:164, src/app/main/ui/export.cljs:460, src/app/main/ui/settings/access_tokens.cljs:188, src/app/main/ui/viewer/share_link.cljs:203, src/app/main/ui/workspace/sidebar/assets/groups.cljs:149 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.cancel" msgstr "Atcelt" -#: src/app/main/ui/onboarding/questions.cljs:176 -msgid "labels.canva" -msgstr "Canva" - -#: src/app/main/ui/dashboard/projects.cljs:93, src/app/main/ui/export.cljs:478, src/app/main/ui/settings/access_tokens.cljs:183, src/app/main/ui/viewer/login.cljs:77, src/app/main/ui/viewer/share_link.cljs:174, src/app/main/ui/workspace/libraries.cljs:522 msgid "labels.close" msgstr "Aizvērt" -#: src/app/main/ui/dashboard/comments.cljs:104, src/app/main/ui/viewer/comments.cljs:70, src/app/main/ui/workspace/comments.cljs:126 +#: src/app/main/ui/dashboard/comments.cljs msgid "labels.comments" msgstr "Komentāri" -#: src/app/main/ui/dashboard/sidebar.cljs:985, src/app/main/ui/workspace/main_menu.cljs:110 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.community" msgstr "Kopiena" -#: src/app/main/ui/settings/password.cljs:103 +#: src/app/main/ui/settings/password.cljs msgid "labels.confirm-password" msgstr "Apstiprināt paroli" -#: src/app/main/ui/dashboard/import.cljs:520, src/app/main/ui/export.cljs:465, src/app/main/ui/onboarding/newsletter.cljs:101 msgid "labels.continue" msgstr "Turpināt" -#, unused msgid "labels.continue-with" msgstr "Turpināt ar" -#: src/app/main/ui/viewer/login.cljs:75 msgid "labels.continue-with-penpot" msgstr "Varat turpināt ar Penpot kontu" -#: src/app/main/ui/dashboard/team.cljs:642 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.copy-invitation-link" msgstr "Kopēt saiti" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:157, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:190 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "labels.create" msgstr "Izveidot" -#: src/app/main/ui/dashboard/team_form.cljs:101, src/app/main/ui/dashboard/team_form.cljs:121 +#: src/app/main/ui/dashboard/team_form.cljs, +#: src/app/main/ui/dashboard/team_form.cljs msgid "labels.create-team" msgstr "Izveidot jaunu komandu" -#: src/app/main/ui/dashboard/team_form.cljs:113 +#: src/app/main/ui/dashboard/team_form.cljs msgid "labels.create-team.placeholder" msgstr "Jāievada jaunās komandas nosaukums" -#, unused msgid "labels.custom-fonts" msgstr "Pielāgotie fonti" -#: src/app/main/ui/settings/sidebar.cljs:73 +#: src/app/main/ui/settings/sidebar.cljs msgid "labels.dashboard" msgstr "Informācijas panelis" -#: src/app/main/ui/dashboard/file_menu.cljs:306, src/app/main/ui/dashboard/fonts.cljs:255, src/app/main/ui/dashboard/fonts.cljs:332, src/app/main/ui/dashboard/fonts.cljs:346, src/app/main/ui/dashboard/project_menu.cljs:115, src/app/main/ui/dashboard/team.cljs:904, src/app/main/ui/settings/access_tokens.cljs:209, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:209 +#: src/app/main/ui/dashboard/project_menu.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.delete" msgstr "Dzēst" -#: src/app/main/ui/comments.cljs:357 +#: src/app/main/ui/comments.cljs msgid "labels.delete-comment" msgstr "Dzēst komentāru" -#: src/app/main/ui/comments.cljs:354 +#: src/app/main/ui/comments.cljs msgid "labels.delete-comment-thread" msgstr "Dzēst pavedienu" -#: src/app/main/ui/dashboard/team.cljs:648 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.delete-invitation" msgstr "Dzēst uzaicinājumu" -#: src/app/main/ui/dashboard/file_menu.cljs:262 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.delete-multi-files" msgstr "Izdzēst %s datnes" -#: src/app/main/ui/onboarding/questions.cljs:250 -msgid "labels.developer" -msgstr "Izstrādātājs" - -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:199 msgid "labels.discard" msgstr "Atmest" -#: src/app/main/ui/dashboard/file_menu.cljs:28, src/app/main/ui/dashboard/files.cljs:72, src/app/main/ui/dashboard/files.cljs:156, src/app/main/ui/dashboard/projects.cljs:220, src/app/main/ui/dashboard/projects.cljs:224, src/app/main/ui/dashboard/sidebar.cljs:791 +#: src/app/main/ui/dashboard/projects.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs, +#: src/app/main/ui/dashboard/files.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.drafts" msgstr "Melnraksti" -#: src/app/main/ui/comments.cljs:350, src/app/main/ui/dashboard/fonts.cljs:252, src/app/main/ui/dashboard/team.cljs:902, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:205 +#: src/app/main/ui/comments.cljs msgid "labels.edit" msgstr "Labot" -#, unused msgid "labels.edit-file" msgstr "Labot datni" -#: src/app/main/ui/dashboard/team.cljs:118, src/app/main/ui/dashboard/team.cljs:279, src/app/main/ui/dashboard/team.cljs:520, src/app/main/ui/dashboard/team.cljs:553, src/app/main/ui/onboarding/team_choice.cljs:66 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs msgid "labels.editor" msgstr "Redaktors" -#: src/app/main/ui/dashboard/team.cljs:661 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.expired-invitation" msgstr "Beidzies derīgums" -#: src/app/main/ui/export.cljs:173 msgid "labels.export" msgstr "Izgūt" -#: src/app/main/ui/settings/feedback.cljs:51 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.feedback-disabled" msgstr "Atsauksme atspējota" -#: src/app/main/ui/settings/feedback.cljs:42 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.feedback-sent" msgstr "Atsauksme nosūtīta" -#: src/app/main/ui/onboarding/questions.cljs:170 -msgid "labels.figma" -msgstr "Figma" - -#: src/app/main/ui/dashboard/fonts.cljs:412 msgid "labels.font-family" msgstr "Fontu saime" -#, unused msgid "labels.font-providers" msgstr "Fontu nodrošinātāji" -#: src/app/main/ui/dashboard/fonts.cljs:413 msgid "labels.font-variants" msgstr "Stili" -#: src/app/main/ui/dashboard/fonts.cljs:52, src/app/main/ui/dashboard/sidebar.cljs:811 msgid "labels.fonts" msgstr "Fonti" -#: src/app/main/ui/onboarding/questions.cljs:263 -msgid "labels.founder" -msgstr "Dibinātājs/viceprezidents" - -#: src/app/main/ui/onboarding/questions.cljs:262 -msgid "labels.freelancer" -msgstr "Esmu ārštātnieks(-ce)/Pašnodarbināts(-ā)" - -#: src/app/main/ui/dashboard/sidebar.cljs:1015, src/app/main/ui/workspace/main_menu.cljs:142 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.github-repo" msgstr "GitHub repozitorijs" -#: src/app/main/ui/dashboard/sidebar.cljs:1032, src/app/main/ui/settings/sidebar.cljs:113, src/app/main/ui/workspace/main_menu.cljs:171 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/settings/sidebar.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.give-feedback" msgstr "Sniegt atsauksmi" -#: src/app/main/ui/auth/recovery_request.cljs:110, src/app/main/ui/auth/register.cljs:285, src/app/main/ui/viewer/login.cljs:117 msgid "labels.go-back" msgstr "Atpakaļ" -#: src/app/main/ui/dashboard/sidebar.cljs:978, src/app/main/ui/workspace/main_menu.cljs:102 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.help-center" msgstr "Palīdzības centrs" -#: src/app/main/ui/viewer/comments.cljs:103, src/app/main/ui/workspace/comments.cljs:67 +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs msgid "labels.hide-resolved-comments" msgstr "Paslēpt atrisinātos komentārus" -#: src/app/main/ui/dashboard/team.cljs:969 msgid "labels.inactive" msgstr "Neaktīvs" -#: src/app/main/ui/dashboard/fonts.cljs:410 msgid "labels.installed-fonts" msgstr "Instalētie fonti" -#: src/app/main/ui/static.cljs:144 +#: src/app/main/ui/static.cljs msgid "labels.internal-error.desc-message" msgstr "" "Notika kaut kas slikts. Lūgums mēģināt vēlreiz un, ja sarežģījumi joprojām " "pastāv, jāsazinās ar atbalstu." -#: src/app/main/ui/static.cljs:143 +#: src/app/main/ui/static.cljs msgid "labels.internal-error.main-message" msgstr "Iekšēja kļūda" -#: src/app/main/ui/onboarding/questions.cljs:178 -msgid "labels.invision" -msgstr "InVision" - -#: src/app/main/ui/dashboard/sidebar.cljs:516, src/app/main/ui/dashboard/team.cljs:89, src/app/main/ui/dashboard/team.cljs:97, src/app/main/ui/dashboard/team.cljs:708 +#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.invitations" msgstr "Ielūgumi" -#: src/app/main/ui/settings/options.cljs:51 +#: src/app/main/ui/settings/options.cljs msgid "labels.language" msgstr "Valoda" -#: src/app/main/ui/dashboard/sidebar.cljs:1008, src/app/main/ui/workspace/main_menu.cljs:134 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.libraries-and-templates" msgstr "Bibliotēkas un veidnes" -#: src/app/main/ui/viewer/header.cljs:203 msgid "labels.log-or-sign" msgstr "Pieteikties vai reģistrēties" -#: src/app/main/ui/dashboard/sidebar.cljs:1040 +#: src/app/main/ui/settings.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.logout" msgstr "Atteikties" -#: src/app/main/ui/onboarding/questions.cljs:253 -msgid "labels.marketing" -msgstr "Tirgvedība" - -#: src/app/main/ui/dashboard/team.cljs:468 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.member" msgstr "Dalībnieks" -#: src/app/main/ui/dashboard/sidebar.cljs:510, src/app/main/ui/dashboard/team.cljs:87, src/app/main/ui/dashboard/team.cljs:95 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.members" msgstr "Dalībnieki" -#: src/app/main/ui/settings/password.cljs:96 +#: src/app/main/ui/settings/password.cljs msgid "labels.new-password" msgstr "Jaunā parole" -#: src/app/main/ui/dashboard/templates.cljs:269, src/app/main/ui/onboarding/questions.cljs:55 -msgid "labels.next" -msgstr "Nākamais" - -#: src/app/main/ui/dashboard/comments.cljs:128, src/app/main/ui/workspace/comments.cljs:161 +#: src/app/main/ui/workspace/comments.cljs, +#: src/app/main/ui/dashboard/comments.cljs msgid "labels.no-comments-available" msgstr "Jūs esat pieķerti! Šeit tiks parādīti jaunu komentāru paziņojumi." -#: src/app/main/ui/dashboard/team.cljs:694 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.no-invitations" msgstr "Nav gaidošu uzaicinājumu." -#: src/app/main/ui/dashboard/team.cljs:696 -#, markdown +#: src/app/main/ui/dashboard/team.cljs msgid "labels.no-invitations-hint" msgstr "" "Jānoklikšķina uz pogas **Uzaicināt cilvēkus**, lai šajā komandā uzaicinātu " "cilvēkus." -#: src/app/main/ui/static.cljs:50 +#: src/app/main/ui/static.cljs msgid "labels.not-found.desc-message" msgstr "Šī lapa, iespējams, nepastāv, vai arī nav atļauju tai piekļūt." -#: src/app/main/ui/static.cljs:49 +#: src/app/main/ui/static.cljs msgid "labels.not-found.main-message" msgstr "Ups!" -#: src/app/main/ui/dashboard/projects.cljs:239, src/app/main/ui/dashboard/team.cljs:1095 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.num-of-files" msgid_plural "labels.num-of-files" msgstr[0] "0 datņu" msgstr[1] "%s datne" msgstr[2] "%s datnes" -#: src/app/main/ui/viewer/thumbnails.cljs:80 msgid "labels.num-of-frames" msgid_plural "labels.num-of-frames" msgstr[0] "%s plātņu" msgstr[1] "%s plātne" msgstr[2] "%s plātnes" -#: src/app/main/ui/dashboard/team.cljs:1090 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.num-of-projects" msgid_plural "labels.num-of-projects" msgstr[0] "0 projektu" msgstr[1] "Projekts" msgstr[2] "%s projekti" -#: src/app/main/ui/settings/password.cljs:89 +#: src/app/main/ui/settings/password.cljs msgid "labels.old-password" msgstr "Vecā parole" #: src/app/main/ui/workspace/comments.cljs -#, unused msgid "labels.only-yours" msgstr "Tikai mans" -#, unused msgid "labels.or" msgstr "vai" -#: src/app/main/ui/onboarding/questions.cljs:145, src/app/main/ui/onboarding/questions.cljs:214, src/app/main/ui/onboarding/questions.cljs:303, src/app/main/ui/onboarding/questions.cljs:316, src/app/main/ui/onboarding/questions.cljs:389, src/app/main/ui/onboarding/questions.cljs:447 -msgid "labels.other" -msgstr "Cits (jānorāda)" - -#: src/app/main/ui/dashboard/team.cljs:286, src/app/main/ui/dashboard/team.cljs:518, src/app/main/ui/dashboard/team.cljs:1076 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs msgid "labels.owner" msgstr "Īpašnieks" -#: src/app/main/ui/settings/sidebar.cljs:87 +#: src/app/main/ui/settings/sidebar.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.password" msgstr "Parole" -#: src/app/main/ui/dashboard/team.cljs:662 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.pending-invitation" msgstr "Gaidīšana" -#: src/app/main/ui/onboarding/questions.cljs:51 -msgid "labels.previous" -msgstr "Iepriekšējais" - -#: src/app/main/ui/onboarding/questions.cljs:254 -msgid "labels.product-management" -msgstr "Produktu vai projektu vadītājs" - -#: src/app/main/ui/settings/profile.cljs:118, src/app/main/ui/settings/sidebar.cljs:82 +#: src/app/main/ui/settings/sidebar.cljs msgid "labels.profile" msgstr "Profils" -#: src/app/main/ui/dashboard/sidebar.cljs:784 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.projects" msgstr "Projekti" -#: src/app/main/ui/dashboard/sidebar.cljs:998, src/app/main/ui/settings/sidebar.cljs:106, src/app/main/ui/workspace/main_menu.cljs:126 +#: src/app/main/ui/settings/sidebar.cljs msgid "labels.release-notes" msgstr "Laidiena apraksts" #: src/app/main/ui/workspace.cljs -#, unused msgid "labels.reload-file" msgstr "Pārlādēt datni" -#: src/app/main/ui/workspace/libraries.cljs, src/app/main/ui/dashboard/team.cljs -#, unused +#: src/app/main/ui/workspace/libraries.cljs, +#: src/app/main/ui/dashboard/team.cljs msgid "labels.remove" msgstr "Noņemt" -#: src/app/main/ui/dashboard/team.cljs:316 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.remove-member" msgstr "Noņemt dalībnieku" -#: src/app/main/ui/dashboard/file_menu.cljs:271, src/app/main/ui/dashboard/project_menu.cljs:85, src/app/main/ui/dashboard/sidebar.cljs:539, src/app/main/ui/workspace/sidebar/assets/groups.cljs:157 +#: src/app/main/ui/dashboard/sidebar.cljs, +#: src/app/main/ui/dashboard/project_menu.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.rename" msgstr "Pārdēvēt" -#: src/app/main/ui/dashboard/team_form.cljs:99 +#: src/app/main/ui/dashboard/team_form.cljs msgid "labels.rename-team" msgstr "Pārdēvēt grupu" -#: src/app/main/ui/dashboard/team.cljs:645 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.resend-invitation" msgstr "Nosūtīt uzaicinājumu vēlreiz" -#: src/app/main/ui/static.cljs:61, src/app/main/ui/static.cljs:70, src/app/main/ui/static.cljs:148 +#: src/app/main/ui/static.cljs, src/app/main/ui/static.cljs msgid "labels.retry" msgstr "Pamēģināt vēlreiz" -#: src/app/main/ui/dashboard/team.cljs:469, src/app/main/ui/dashboard/team.cljs:709 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.role" msgstr "Loma" -#: src/app/main/ui/dashboard/fonts.cljs:380, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:191 msgid "labels.save" msgstr "Saglabāt" -#: src/app/main/ui/onboarding/questions.cljs:414, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:436 msgid "labels.search" msgstr "Meklēt" -#: src/app/main/ui/dashboard/fonts.cljs:415 msgid "labels.search-font" msgstr "Meklēt fontu" -#: src/app/main/ui/onboarding/questions.cljs:90, src/app/main/ui/onboarding/questions.cljs:248, src/app/main/ui/onboarding/questions.cljs:259, src/app/main/ui/onboarding/questions.cljs:270 -msgid "labels.select-option" -msgstr "Atlasīt iespēju" - -#: src/app/main/ui/settings/feedback.cljs:82 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.send" msgstr "Nosūtīt" -#: src/app/main/ui/settings/feedback.cljs:82 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.sending" msgstr "Nosūtīšana…" -#: src/app/main/ui/static.cljs:68 +#: src/app/main/ui/static.cljs msgid "labels.service-unavailable.desc-message" msgstr "Mēs esam ieplānotos sistēmu uzturēšanas darbos." -#: src/app/main/ui/static.cljs:67 +#: src/app/main/ui/static.cljs msgid "labels.service-unavailable.main-message" msgstr "Pakalpojums nav pieejams" -#: src/app/main/ui/dashboard/sidebar.cljs:530, src/app/main/ui/dashboard/team.cljs:88, src/app/main/ui/dashboard/team.cljs:102, src/app/main/ui/settings/options.cljs:84, src/app/main/ui/settings/sidebar.cljs:93 +#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.settings" msgstr "Iestatījumi" -#: src/app/main/ui/viewer/header.cljs:199 msgid "labels.share" msgstr "Kopīgot" -#, unused msgid "labels.share-prototype" msgstr "Kopīgot prototipu" -#: src/app/main/ui/dashboard/sidebar.cljs:800 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.shared-libraries" msgstr "Bibliotēkas" -#: src/app/main/ui/viewer/comments.cljs:82, src/app/main/ui/workspace/comments.cljs:55, src/app/main/ui/workspace/comments.cljs:135 +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs msgid "labels.show-all-comments" msgstr "Rādīt visus komentārus" -#: src/app/main/ui/viewer/comments.cljs:115 msgid "labels.show-comments-list" msgstr "Rādīt komentāru sarakstu" -#: src/app/main/ui/viewer/comments.cljs:91, src/app/main/ui/workspace/comments.cljs:61, src/app/main/ui/workspace/comments.cljs:136 +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs msgid "labels.show-your-comments" msgstr "Rādīt tikai manas piebildes" -#: src/app/main/ui/onboarding/questions.cljs:172 -msgid "labels.sketch" -msgstr "Sketch" - -#: src/app/main/ui/onboarding/questions.cljs:56 -msgid "labels.start" -msgstr "Sākt" - -#: src/app/main/ui/dashboard/team.cljs:710 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.status" msgstr "Statuss" -#: src/app/main/ui/onboarding/questions.cljs:251 -msgid "labels.student-teacher" -msgstr "Students vai pasniedzējs" - -#: src/app/main/ui/dashboard/sidebar.cljs:992, src/app/main/ui/workspace/main_menu.cljs:118 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.tutorials" msgstr "Pamācības" -#: src/app/main/ui/dashboard/file_menu.cljs:256 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.unpublish-multi-files" msgstr "Atcelt %s datņu publicēšanu" -#: src/app/main/ui/settings/profile.cljs:103 +#: src/app/main/ui/settings/profile.cljs msgid "labels.update" msgstr "Atjaunināt" -#: src/app/main/ui/dashboard/team_form.cljs:120 +#: src/app/main/ui/dashboard/team_form.cljs msgid "labels.update-team" msgstr "Atjaunināt komandu" -#: src/app/main/ui/dashboard/fonts.cljs:241 msgid "labels.upload" msgstr "Augšupielādēt" -#: src/app/main/ui/dashboard/fonts.cljs:169 msgid "labels.upload-custom-fonts" msgstr "Augšupielādēt pielāgotos fontus" -#: src/app/main/ui/dashboard/fonts.cljs:240 msgid "labels.uploading" msgstr "Augšupielādē…" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs:223 msgid "labels.view-only" msgstr "TIKAI SKATĪT" -#: src/app/main/ui/dashboard/team.cljs:123, src/app/main/ui/dashboard/team.cljs:282, src/app/main/ui/dashboard/team.cljs:521 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.viewer" msgstr "Pārlūks" -#: src/app/main/ui/dashboard/sidebar.cljs:523, src/app/main/ui/dashboard/team.cljs:90, src/app/main/ui/dashboard/team.cljs:100, src/app/main/ui/dashboard/team.cljs:880 msgid "labels.webhooks" msgstr "Tīmekļa aizķeres" -#: src/app/main/ui/comments.cljs:194 +#: src/app/main/ui/comments.cljs msgid "labels.write-new-comment" msgstr "Rakstīt jaunu komentāru" -#: src/app/main/ui/dashboard/team.cljs:237 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.you" msgstr "(Jūs)" -#: src/app/main/ui/dashboard/sidebar.cljs:968 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.your-account" msgstr "Mans konts" -#: src/app/main/ui/workspace/colorpicker.cljs:297, src/app/main/ui/workspace/colorpicker.cljs:298, src/app/main/ui/workspace/colorpicker.cljs:300 msgid "media.choose-image" msgstr "Izvēlēties attēlu" -#, unused msgid "media.gradient" msgstr "Pāreja" -#: src/app/main/data/workspace/media.cljs:275, src/app/main/ui/components/color_bullet.cljs:32, src/app/main/ui/components/color_bullet.cljs:45, src/app/main/ui/viewer/inspect/attributes/common.cljs:66, src/app/main/ui/workspace/colorpicker.cljs:211, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:237 msgid "media.image" msgstr "Attēls" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:77 msgid "media.image.short" msgstr "att." -#: src/app/main/ui/workspace/colorpicker.cljs:290 msgid "media.keep-aspect-ratio" msgstr "Paturēt samēru" -#: src/app/main/ui/workspace/colorpicker.cljs:208 msgid "media.linear" msgstr "Līnijveida" -#: src/app/main/data/media.cljs:49, src/app/main/data/workspace/media.cljs:223, src/app/main/data/workspace/media.cljs:453 +#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs msgid "media.loading" msgstr "Ielādē attēlu…" -#: src/app/main/ui/workspace/colorpicker.cljs:209 msgid "media.radial" msgstr "Radiāls" -#: src/app/main/ui/workspace/colorpicker.cljs:206 msgid "media.solid" msgstr "Viengabalains" -#: src/app/main/data/common.cljs:111 msgid "modals.add-shared-confirm-empty.hint" msgstr "" "Bibliotēka ir tukša. Tiklīdz tā būs pievienota kā koplietojama bibliotēka, " "izveidotie līdzekļi būs pieejami izmantošanai pārējos failos. Vai tiešām " "padarīt to pieejamu?" -#: src/app/main/data/common.cljs:113 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.add-shared-confirm.accept" msgstr "Pievienot kā koplietojamu bibliotēku" -#: src/app/main/data/common.cljs:111 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.add-shared-confirm.hint" msgstr "" "Tiklīdz šīs datņu bibliotēkas līdzekļi būs pievienot kā koplietojama " "bibliotēka, tā tie būs pieejami izmantošanai arī pārējās datnēs." -#: src/app/main/data/common.cljs:110 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.add-shared-confirm.message" msgstr "Pievienot “%s” kā koplietojamu bibliotēku" -#: src/app/main/ui/workspace/nudge.cljs:60 +#: src/app/main/ui/workspace/nudge.cljs msgid "modals.big-nudge" msgstr "Liela nobīde" -#: src/app/main/ui/settings/change_email.cljs:127 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.confirm-email" msgstr "Pārbaudīt jauno e-pastu" -#: src/app/main/ui/settings/change_email.cljs:114 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.info" msgstr "" "Mēs nosūtīsim e-pasta ziņojumu uz pašreizējo e-pasta adresi “%s”, lai " "pārbaudītu identitāti." -#: src/app/main/ui/settings/change_email.cljs:119 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.new-email" msgstr "Jauna e-pasta adrese" -#: src/app/main/ui/settings/change_email.cljs:136 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.submit" msgstr "Mainīt e-pasta adresi" -#: src/app/main/ui/settings/change_email.cljs:107 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.title" msgstr "E-pasta maiņa" -#: src/app/main/ui/settings/access_tokens.cljs:165, src/app/main/ui/settings/access_tokens.cljs:171 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.create-access-token.copy-token" msgstr "Ievietot pilnvaru starpliktuvē" -#: src/app/main/ui/settings/access_tokens.cljs:142 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.create-access-token.expiration-date.label" msgstr "Derīguma termiņš" -#: src/app/main/ui/settings/access_tokens.cljs:136 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.create-access-token.name.label" msgstr "Nosaukums" -#: src/app/main/ui/settings/access_tokens.cljs:138 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.create-access-token.name.placeholder" msgstr "Nosaukums var palīdzēt saprast, kam pilnvara ir paredzēta" -#: src/app/main/ui/settings/access_tokens.cljs:191 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.create-access-token.submit-label" msgstr "Izveidot pilnvaru" -#: src/app/main/ui/settings/access_tokens.cljs:123 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.create-access-token.title" msgstr "Izveidot jaunu piekļuves pilnvaru" -#: src/app/main/ui/dashboard/team.cljs:873 msgid "modals.create-webhook.submit-label" msgstr "Izveidot tīmekļa aizķeri" -#: src/app/main/ui/dashboard/team.cljs:838 msgid "modals.create-webhook.title" msgstr "Izveidot tīmekļa aizķeri" -#: src/app/main/ui/dashboard/team.cljs:849 msgid "modals.create-webhook.url.label" msgstr "Vērtuma URL" -#: src/app/main/ui/dashboard/team.cljs:850 msgid "modals.create-webhook.url.placeholder" msgstr "https://example.com/postreceive" -#: src/app/main/ui/settings/access_tokens.cljs:271 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.delete-acces-token.accept" msgstr "Izdzēst pilnvaru" -#: src/app/main/ui/settings/access_tokens.cljs:270 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.delete-acces-token.message" msgstr "Vai tiešām izdzēst šo pilnvaru?" -#: src/app/main/ui/settings/access_tokens.cljs:269 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.delete-acces-token.title" msgstr "Izdzēst pilnvaru" -#: src/app/main/ui/settings/delete_account.cljs:59 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.cancel" msgstr "Atcelt un paturēt manu kontu" -#: src/app/main/ui/settings/delete_account.cljs:64 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.confirm" msgstr "Jā, dzēst manu kontu" -#: src/app/main/ui/settings/delete_account.cljs:53 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.info" msgstr "Pēc konta noņemšanas tiks zaudēti visi pašreizējie projekti un arhīvi." -#: src/app/main/ui/settings/delete_account.cljs:46 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.title" msgstr "Vai tiešām izdzēst savu kontu?" -#: src/app/main/ui/comments.cljs:298 +#: src/app/main/ui/comments.cljs msgid "modals.delete-comment-thread.accept" msgstr "Dzēst sarunu" -#: src/app/main/ui/comments.cljs:297 +#: src/app/main/ui/comments.cljs msgid "modals.delete-comment-thread.message" msgstr "Vai tiešām izdzēst šo sarunu? Visas šī pavediena piebildes tiks izdzēstas." -#: src/app/main/ui/comments.cljs:296 +#: src/app/main/ui/comments.cljs msgid "modals.delete-comment-thread.title" msgstr "Dzēst sarunu" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:140 msgid "modals.delete-component-annotation.message" msgstr "Vai tiešām izdzēst šo piezīmi?" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:139 msgid "modals.delete-component-annotation.title" msgstr "Izdzēst piezīmi" -#: src/app/main/ui/dashboard/file_menu.cljs:123 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-confirm.accept" msgstr "Izdzēst datni" -#: src/app/main/ui/dashboard/file_menu.cljs:122 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-confirm.message" msgstr "Vai tiešām izdzēst šo datni?" -#: src/app/main/ui/dashboard/file_menu.cljs:121 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-confirm.title" msgstr "Izdzēš datni" -#: src/app/main/ui/dashboard/file_menu.cljs:117 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-multi-confirm.accept" msgstr "Izdzēst datnes" -#: src/app/main/ui/dashboard/file_menu.cljs:116 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-multi-confirm.message" msgstr "Vai tiešām izdzēst %s datnes?" -#: src/app/main/ui/dashboard/file_menu.cljs:115 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-multi-confirm.title" msgstr "Izdzēš %s datnes" -#: src/app/main/ui/dashboard/fonts.cljs:345 msgid "modals.delete-font-variant.message" msgstr "" "Vai tiešām izdzēst šo fontu stilu? Tas netiks ielādēts, ja tiek izmantots " "datnē." -#: src/app/main/ui/dashboard/fonts.cljs:344 msgid "modals.delete-font-variant.title" msgstr "Fonta stila dzēšana" -#: src/app/main/ui/dashboard/fonts.cljs:331 msgid "modals.delete-font.message" msgstr "Vai tiešām izdzēst šo fontu? Tas netiks ielādēts, ja tiek izmantots datnē." -#: src/app/main/ui/dashboard/fonts.cljs:330 msgid "modals.delete-font.title" msgstr "Fonta dzēšana" -#: src/app/main/ui/workspace/context_menu.cljs:522, src/app/main/ui/workspace/sidebar/sitemap.cljs:45 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs msgid "modals.delete-page.body" msgstr "Vai tiešām izdzēst šo lapu?" -#: src/app/main/ui/workspace/context_menu.cljs:521, src/app/main/ui/workspace/sidebar/sitemap.cljs:44 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs msgid "modals.delete-page.title" msgstr "Dzēst lapu" -#: src/app/main/ui/dashboard/project_menu.cljs:69 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "modals.delete-project-confirm.accept" msgstr "Dzēst projektu" -#: src/app/main/ui/dashboard/project_menu.cljs:68 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "modals.delete-project-confirm.message" msgstr "Vai tiešām izdzēst šo projektu?" -#: src/app/main/ui/dashboard/project_menu.cljs:67 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "modals.delete-project-confirm.title" msgstr "Dzēst projektu" -#: src/app/main/ui/delete_shared.cljs:51 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.accept" msgid_plural "modals.delete-shared-confirm.accept" msgstr[0] "Nav izdzēšamu datņu" msgstr[1] "Izdzēst datni" msgstr[2] "Izdzēst datnes" -#: src/app/main/ui/delete_shared.cljs:55 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.activated.no-files-message" msgid_plural "modals.delete-shared-confirm.activated.no-files-message" msgstr[0] "Tie nav aktivēti nevienā datnē." msgstr[1] "Tas nav aktivēts nevienā datnē." msgstr[2] "Tie nav aktivēti nevienā datnē." -#: src/app/main/ui/delete_shared.cljs:57 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.activated.scd-message" msgid_plural "modals.delete-shared-confirm.activated.scd-message" msgstr[0] "Šīs bibliotēkas ir aktivētas šeit: " msgstr[1] "Šī bibliotēka ir aktivēta šeit: " msgstr[2] "Šīs bibliotēkas ir aktivētas šeit: " -#: src/app/main/ui/delete_shared.cljs:46 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.message" msgid_plural "modals.delete-shared-confirm.message" msgstr[0] "Nav izdzēšamu datņu" msgstr[1] "Vai tiešām izdzēst šo datni?" msgstr[2] "Vai tiešām izdzēst šīs datnes?" -#: src/app/main/ui/delete_shared.cljs:41 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.title" msgid_plural "modals.delete-shared-confirm.title" msgstr[0] "Nav izdzēšamu datņu" msgstr[1] "Izdzēš datni" msgstr[2] "Izdzēš datnes" -#: src/app/main/ui/dashboard/sidebar.cljs:435 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.delete-team-confirm.accept" msgstr "Dzēst komandu" -#: src/app/main/ui/dashboard/sidebar.cljs:434 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.delete-team-confirm.message" msgstr "" "Vai tiešām izdzēst šo komandu? Visi ar komandu saistītie projekti un datnes " "tiks neatgriezeniski izdzēstas." -#: src/app/main/ui/dashboard/sidebar.cljs:433 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.delete-team-confirm.title" msgstr "Notiek komandas dzēšana" -#: src/app/main/ui/dashboard/team.cljs:427 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.delete-team-member-confirm.accept" msgstr "Dzēst dalībnieku" -#: src/app/main/ui/dashboard/team.cljs:426 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.delete-team-member-confirm.message" msgstr "Vai tiešām izdzēst šo dalībnieku no komandas?" -#: src/app/main/ui/dashboard/team.cljs:425 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.delete-team-member-confirm.title" msgstr "Dzēst komandas dalībnieku" -#: src/app/main/ui/delete_shared.cljs:59 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-unpublish-shared-confirm.activated.hint" msgid_plural "modals.delete-unpublish-shared-confirm.activated.hint" msgstr[0] "" @@ -2269,1416 +2054,1266 @@ msgstr[2] "" "Līdzekļi, kas jau tiek izmantoti šajā datnē, paliks tajā (dizains netiks " "salauzts)." -#: src/app/main/ui/dashboard/team.cljs:942 msgid "modals.delete-webhook.accept" msgstr "Izdzēst tīmekļa aizķeri" -#: src/app/main/ui/dashboard/team.cljs:941 msgid "modals.delete-webhook.message" msgstr "Vai tiešām izdzēst šo tīmekļa aizķeri?" -#: src/app/main/ui/dashboard/team.cljs:940 msgid "modals.delete-webhook.title" msgstr "Notiek tīmekļa aizķeres izdzēšana" -#: src/app/main/ui/dashboard/team.cljs:872 msgid "modals.edit-webhook.submit-label" msgstr "Labot tīmekļa aizķeri" -#: src/app/main/ui/dashboard/team.cljs:837 msgid "modals.edit-webhook.title" msgstr "Labot tīmekļa aizķeri" -#: src/app/main/ui/dashboard/team.cljs:218 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.invite-member-confirm.accept" msgstr "Nosūtīt uzaicinājumu" -#: src/app/main/ui/dashboard/team.cljs:213, src/app/main/ui/onboarding/team_choice.cljs:156 msgid "modals.invite-member.emails" msgstr "E-pasta ziņojumi, atdalīti ar komatiem" -#: src/app/main/ui/dashboard/team.cljs:197 msgid "modals.invite-member.repeated-invitation" msgstr "" "Dažas no e-pasta adresēm ir pašreizējiem komandas dalībniekiem. Ielūgumi " "viņiem netiks nosūtīti." -#: src/app/main/ui/dashboard/team.cljs:190 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.invite-team-member.title" msgstr "Uzaicināt dalībniekus uz komandu" -#: src/app/main/ui/dashboard/sidebar.cljs:423, src/app/main/ui/dashboard/team.cljs:393 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-close-confirm.hint" msgstr "" "Tā kā esi šīs komandas vienīgais dalībnieks, tā tiks izdzēsta līdz ar tās " "projektiem un datnēm." -#: src/app/main/ui/dashboard/sidebar.cljs:422, src/app/main/ui/dashboard/team.cljs:392 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-close-confirm.message" msgstr "Vai tiešām pamest komandu %s?" -#: src/app/main/ui/dashboard/change_owner.cljs:59 msgid "modals.leave-and-reassign.forbidden" msgstr "" "Nevar pamest komandu, ja nav cita dalībnieka, ko norādīt kā īpašnieku. " "Iespējams, ka komandu ir vēlams izdzēst." -#: src/app/main/ui/dashboard/change_owner.cljs:55 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-reassign.hint1" msgstr "" "Tu esi šīs komandas īpašnieks. Lūgums pirms pamešanas atlasīt citu " "dalībnieku, lai to norādītu kā īpašnieku." -#: src/app/main/ui/dashboard/change_owner.cljs:78 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-reassign.promote-and-leave" msgstr "Nozīmēt un pamest" -#: src/app/main/ui/dashboard/change_owner.cljs:34 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-reassign.select-member-to-promote" msgstr "Atlasīt dalībnieku, ko nozīmēt" -#: src/app/main/ui/dashboard/change_owner.cljs:49 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-reassign.title" msgstr "Pirms pamešanas" -#: src/app/main/ui/dashboard/sidebar.cljs:402, src/app/main/ui/dashboard/sidebar.cljs:424, src/app/main/ui/dashboard/team.cljs:394, src/app/main/ui/dashboard/team.cljs:416 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-confirm.accept" msgstr "Pamest komandu" -#: src/app/main/ui/dashboard/sidebar.cljs:401, src/app/main/ui/dashboard/team.cljs:415 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-confirm.message" msgstr "Vai tiešām pamest šo komandu?" -#: src/app/main/ui/dashboard/sidebar.cljs:400, src/app/main/ui/dashboard/sidebar.cljs:421, src/app/main/ui/dashboard/team.cljs:391, src/app/main/ui/dashboard/team.cljs:414 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-confirm.title" msgstr "Komandas pamešana" -#: src/app/main/ui/delete_shared.cljs:53 msgid "modals.move-shared-confirm.accept" msgid_plural "modals.move-shared-confirm.accept" msgstr[0] "Pārvietot" msgstr[1] "Pārvietot" msgstr[2] "Pārvietot" -#: src/app/main/ui/delete_shared.cljs:48 msgid "modals.move-shared-confirm.message" msgid_plural "modals.move-shared-confirm.message" msgstr[0] "Vai tiešām pārvietot šīs bibliotēkas?" msgstr[1] "Vai tiešām pārvietot šīs bibliotēkas?" msgstr[2] "Vai tiešām pārvietot šīs bibliotēkas?" -#: src/app/main/ui/delete_shared.cljs:43 msgid "modals.move-shared-confirm.title" msgid_plural "modals.move-shared-confirm.title" msgstr[0] "Pārvietot bibliotēkas" msgstr[1] "Pārvietot bibliotēkas" msgstr[2] "Pārvietot bibliotēkas" -#: src/app/main/ui/workspace/main_menu.cljs:266, src/app/main/ui/workspace/nudge.cljs:47 +#: src/app/main/ui/workspace/nudge.cljs msgid "modals.nudge-title" msgstr "Nobīdes apjoms" -#: src/app/main/ui/dashboard/team.cljs:340 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.accept" msgstr "Nodot īpašumtiesības" -#: src/app/main/ui/dashboard/team.cljs:339 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.hint" msgstr "" "Ja tiks nodotas īpašumtiesības, ieņemamā loma tiks nomainīta uz " "\"Pārvaldnieks\", zaudējot dažas atļaujas šajā komandā. " -#: src/app/main/ui/dashboard/team.cljs:338 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.message" msgstr "" "Tu esi šīs komandas pašreizējais īpašnieks. Vai tiešām iecelt %s par jauno " "komandas īpašnieku?" -#: src/app/main/ui/dashboard/team.cljs:337 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.title" msgstr "Jauns komandas īpašnieks" -#: src/app/main/ui/workspace/libraries.cljs:188 msgid "modals.publish-empty-library.accept" msgstr "Publicēt" -#: src/app/main/ui/workspace/libraries.cljs:187 msgid "modals.publish-empty-library.message" msgstr "Bibliotēka ir tukša. Vai tiešām publicēt to?" -#: src/app/main/ui/workspace/libraries.cljs:186 msgid "modals.publish-empty-library.title" msgstr "Publicēt tukšu bibliotēku" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.remove-shared-confirm.accept" msgstr "Noņemt kā koplietojamo bibliotēku" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.remove-shared-confirm.hint" msgstr "" "Tiklīdz šīs datnes datņu bibliotēka būs noņemta kā koplietojama bibliotēka, " "tā pārstās būt pieejama izmantošanai pārējās datnēs." -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.remove-shared-confirm.message" msgstr "Noņemt “%s” kā koplietojamu bibliotēku" -#: src/app/main/ui/workspace/nudge.cljs:53 +#: src/app/main/ui/workspace/nudge.cljs msgid "modals.small-nudge" msgstr "Maza nobīde" -#: src/app/main/ui/delete_shared.cljs:52 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.unpublish-shared-confirm.accept" msgid_plural "modals.unpublish-shared-confirm.accept" msgstr[0] "Nav atlases" msgstr[1] "Atcelt publicēšanu" msgstr[2] "Atcelt publicēšanu" -#: src/app/main/ui/delete_shared.cljs:47 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.unpublish-shared-confirm.message" msgid_plural "modals.unpublish-shared-confirm.message" msgstr[0] "Nav izvēlēta neviena bibliotēka" msgstr[1] "Vai tiešām atcelt šīs bibliotēkas publicēšanu?" msgstr[2] "Vai tiešām atcelt šo bibliotēku publicēšanu?" -#: src/app/main/ui/delete_shared.cljs:42 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.unpublish-shared-confirm.title" msgid_plural "modals.unpublish-shared-confirm.title" msgstr[0] "Atcelt bibliotēkas publicēšanu" msgstr[1] "Atcelt bibliotēkas publicēšanu" msgstr[2] "Atcelt bibliotēku publicēšanu" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component-in-bulk.hint" msgstr "" "Tiks atjauninātas sastāvdaļas koplietojamā bibliotēkā. Tas var ietekmēt " "citas datnes, kurās tās ir izmantotas." -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component-in-bulk.message" msgstr "Atjaunināt sastāvdaļas koplietojamā bibliotēkā" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:380 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.accept" msgstr "Atjaunināt" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:379 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.cancel" msgstr "Atcelt" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:378 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.hint" msgstr "" "Tiks atjaunināta koplietojamas bibliotēkas sastāvdaļa. Tas var ietekmēt " "citas datnes, kurās tā ir izmantota." -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:377 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.message" msgstr "Atjaunināt sastāvdaļu koplietojamā bibliotēkā" -#: src/app/main/data/common.cljs:71 +#: src/app/main/data/common.cljs msgid "notifications.by-code.upgrade-version" msgstr "Ir pieejama jauna versija, lūgums atsvaidzināt lapu" -#: src/app/main/ui/dashboard/team.cljs:154, src/app/main/ui/dashboard/team.cljs:595 +#: src/app/main/ui/dashboard/team.cljs msgid "notifications.invitation-email-sent" msgstr "Uzaicinājums veiksmīgi nosūtīts" -#: src/app/main/ui/dashboard/team.cljs:616 +#: src/app/main/ui/dashboard/team.cljs msgid "notifications.invitation-link-copied" msgstr "Uzaicinājuma saite nokopēta" -#: src/app/main/ui/settings/delete_account.cljs:24 +#: src/app/main/ui/settings/delete_account.cljs msgid "notifications.profile-deletion-not-allowed" msgstr "Profilu nevar izdzēst. Pirms turpināšanas jāpiešķir savas komandas citiem." -#: src/app/main/ui/settings/options.cljs:29, src/app/main/ui/settings/profile.cljs:35 +#: src/app/main/ui/settings/profile.cljs, src/app/main/ui/settings/options.cljs msgid "notifications.profile-saved" msgstr "Profils ir veiksmīgi saglabāts." -#: src/app/main/ui/settings/change_email.cljs:63 +#: src/app/main/ui/settings/change_email.cljs msgid "notifications.validation-email-sent" msgstr "" "Patiesuma pārbaudes e-pasta ziņojums tika nosūtīts uz %s. Jāpārbauda savs " "e-pasts." -#, unused msgid "onboarding-v2.before-start.desc1" msgstr "" "Jāņem vērā, ka ir pieejami daudz avotu, kas var palīdzēt uzsākt darbu ar " "Penpot, piemēram, lietotāja rokasgrāmata un mūsu Youtube kanāls." -#, unused msgid "onboarding-v2.before-start.desc2" msgstr "" "Izvērsta informācija par Penpot izmantošanu. No prototipa izveides līdz " "dizainu kārtošanai vai kopīgošanai." -#, unused msgid "onboarding-v2.before-start.desc2.title" msgstr "Lietotāja rokasgrāmata" -#, unused msgid "onboarding-v2.before-start.desc3" msgstr "Ir iespējams apskatīt mūsu pamācības un mūsu kopienas izveidotās pamācības." -#, unused msgid "onboarding-v2.before-start.desc3.title" msgstr "Video pamācības" -#, unused msgid "onboarding-v2.before-start.title" msgstr "Pirms sākt" -#: src/app/main/ui/onboarding/newsletter.cljs:63 msgid "onboarding-v2.newsletter.desc" msgstr "" "Abonēt Penpot biļetenu, lai uzzinātu par produkta izstrādes gaitu un " "jaunumiem." -#: src/app/main/ui/onboarding/newsletter.cljs:83 msgid "onboarding-v2.newsletter.news" msgstr "" "Sūtīt man jaunumus par Penpot (emuāra ieraksti, video pamācības, " "straumēšanas...)." -#: src/app/main/ui/onboarding/newsletter.cljs:91 msgid "onboarding-v2.newsletter.privacy1" msgstr "Mums rūp privātums, šeit var lasīt mūsu " -#: src/app/main/ui/onboarding/newsletter.cljs:97 msgid "onboarding-v2.newsletter.privacy2" msgstr "" "Mēs nosūtīsim tikai atbilstošus e-pasta ziņojumus. Atteikt abonēšanu var " "jebkurā laikā ar abonēšanas atteikšanas saiti jebkurā mūsu biļetenā." -#: src/app/main/ui/onboarding/newsletter.cljs:71 msgid "onboarding-v2.newsletter.updates" msgstr "" "Nosūtīt man produkta atjauninājumus (jaunas funkcijas, izlaidumi, " "labojumi...)." -#, unused msgid "onboarding-v2.welcome.desc1" msgstr "" "Penpot ir Atvērtā pirmkoda lietotne, un to izstrādā Kaleidos, kā arī " "kopiena, kurā daudz cilvēku jau palīdz cits citam. Visi var sadarboties:" -#, unused msgid "onboarding-v2.welcome.desc2" msgstr "" "Publiska telpa, lai mācītos, dalītos un apspriestu Penpot, tās tagadni un " "nākotni ar visu kopienu un Penpot kodola komandu." -#, unused msgid "onboarding-v2.welcome.desc2.title" msgstr "Dalība Kopienā" -#, unused msgid "onboarding-v2.welcome.desc3" msgstr "" "Kur būs atrodams, kā līdzdarboties pie tulkojumiem, iespēju pieprasījumiem, " "devuma kodolam, kļūdu meklēšanas…" -#, unused msgid "onboarding-v2.welcome.desc3.title" msgstr "Līdzdalības rokasgrāmata" -#: src/app/main/ui/onboarding/team_choice.cljs:31 msgid "onboarding-v2.welcome.title" msgstr "Laipni lūdzam Penpot!" -#: src/app/main/ui/onboarding/team_choice.cljs:229 msgid "onboarding.choice.team-up.continue-creating-team" msgstr "Turpināt komandas izveidošanu" -#: src/app/main/ui/onboarding/team_choice.cljs:239 msgid "onboarding.choice.team-up.continue-without-a-team" msgstr "Turpināt bez komandas" -#: src/app/main/ui/onboarding/team_choice.cljs:167 msgid "onboarding.choice.team-up.create-team-and-invite" msgstr "Izveidot komandu un uzaicināt" -#, unused msgid "onboarding.choice.team-up.create-team-and-send-invites" msgstr "Izveidot komandu un nosūtīt uzaicinājumus" -#: src/app/main/ui/onboarding/team_choice.cljs:170 msgid "onboarding.choice.team-up.create-team-and-send-invites-description" msgstr "Uzaicināt būs iespējams vēlāk" -#: src/app/main/ui/onboarding/team_choice.cljs:215 msgid "onboarding.choice.team-up.create-team-desc" msgstr "" "Pēc komandas nosaukuma piešķiršanas varēs uzaicināt cilvēkus tai " "pievienoties." -#: src/app/main/ui/onboarding/team_choice.cljs:224 msgid "onboarding.choice.team-up.create-team-placeholder" msgstr "Jāievada komandas nosaukums" -#: src/app/main/ui/onboarding/team_choice.cljs:168 msgid "onboarding.choice.team-up.create-team-without-invite" msgstr "Izveidot komandu" -#, unused msgid "onboarding.choice.team-up.create-team-without-inviting" msgstr "Izveidot komandu bez uzaicināšanas" -#: src/app/main/ui/dashboard/projects.cljs:89, src/app/main/ui/onboarding/team_choice.cljs:140 msgid "onboarding.choice.team-up.invite-members" msgstr "Uzaicināt dalībniekus" -#: src/app/main/ui/onboarding/team_choice.cljs:141 msgid "onboarding.choice.team-up.invite-members-info" msgstr "" "Jāatceras iekļaut visi. Izstrādātāji, dizaineri, vadītāji... Viedokļu " "dažādībā ir spēks :)" -#: src/app/main/ui/dashboard/team.cljs:202, src/app/main/ui/onboarding/team_choice.cljs:146 msgid "onboarding.choice.team-up.roles" msgstr "Uzaicināt ar lomu:" -#: src/app/main/ui/onboarding/team_choice.cljs:232 msgid "onboarding.choice.team-up.start-without-a-team" msgstr "Uzsākt bez komandas" -#: src/app/main/ui/onboarding/team_choice.cljs:234 msgid "onboarding.choice.team-up.start-without-a-team-description" msgstr "Komandu būs iespējams izveidot vēlāk." -#, unused msgid "onboarding.newsletter.accept" msgstr "Jā, abonēt" -#: src/app/main/ui/onboarding/newsletter.cljs:40 msgid "onboarding.newsletter.acceptance-message" msgstr "" "Abonēšanas pieprasījums ir nosūtīts, un mēs nosūtīsim e-pasta ziņojumu tā " "apstiprināšanai." -#: src/app/main/ui/onboarding/newsletter.cljs:95 msgid "onboarding.newsletter.policy" msgstr "Konfidencialitātes politika." -#: src/app/main/ui/onboarding/newsletter.cljs:60 msgid "onboarding.newsletter.title" msgstr "Vai saņemt Penpot jaunumus?" -#: src/app/main/ui/onboarding/questions.cljs:118 -msgid "onboarding.questions.lets-get-started" -msgstr "Ķeramies pie darba!" - -#: src/app/main/ui/onboarding/questions.cljs:307 -msgid "onboarding.questions.step3.question2" -msgstr "Kāda ir ieņemamā loma?" - -#: src/app/main/ui/onboarding/questions.cljs:320 -msgid "onboarding.questions.step3.question3" -msgstr "Cik liela ir komanda?" - -#: src/app/main/ui/onboarding/questions.cljs:273 -msgid "onboarding.questions.team-size.11-30" -msgstr "11-30" - -#: src/app/main/ui/onboarding/questions.cljs:274 -msgid "onboarding.questions.team-size.2-10" -msgstr "2-10" - -#: src/app/main/ui/onboarding/questions.cljs:272 -msgid "onboarding.questions.team-size.31-50" -msgstr "31-50" - -#: src/app/main/ui/onboarding/questions.cljs:271 -msgid "onboarding.questions.team-size.more-than-50" -msgstr "Vairāk nekā 50" - -#: src/app/main/ui/onboarding/questions.cljs:276 -msgid "onboarding.questions.team-size.personal-project" -msgstr "Strādāju personīgā projektā" - -#: src/app/main/ui/onboarding/team_choice.cljs:213 msgid "onboarding.team-modal.create-team" msgstr "Izveidot komandu" -#: src/app/main/ui/onboarding/team_choice.cljs:35 msgid "onboarding.team-modal.create-team-desc" msgstr "" "Komanda ļauj sadarboties ar citiem Penpot lietotājiem, kas darbojas ar tām " "pašām datnēm un projektiem." -#: src/app/main/ui/onboarding/team_choice.cljs:40 msgid "onboarding.team-modal.create-team-feature-1" msgstr "Neierobežotas datnes un projekti" -#: src/app/main/ui/onboarding/team_choice.cljs:44 msgid "onboarding.team-modal.create-team-feature-2" msgstr "Vairāku lietotāju izdevums" -#: src/app/main/ui/onboarding/team_choice.cljs:48 msgid "onboarding.team-modal.create-team-feature-3" msgstr "Lomu pārvaldība" -#: src/app/main/ui/onboarding/team_choice.cljs:52 msgid "onboarding.team-modal.create-team-feature-4" msgstr "Neierobežoti dalībnieki" -#: src/app/main/ui/onboarding/team_choice.cljs:56 msgid "onboarding.team-modal.create-team-feature-5" msgstr "100% bez maksas!" -#: src/app/main/ui/onboarding/team_choice.cljs:33 msgid "onboarding.team-modal.team-definition" msgstr "Kas ir komanda?" -#: src/app/main/ui/onboarding/templates.cljs:78 msgid "onboarding.templates.subtitle" msgstr "Lūk, dažas veidnes." -#: src/app/main/ui/onboarding/templates.cljs:77 msgid "onboarding.templates.title" msgstr "Sākt projektēšanu" -#, unused msgid "onboarding.welcome.alt" msgstr "Penpot" -#: src/app/main/ui/auth/recovery.cljs:99 +#: src/app/main/ui/auth/recovery.cljs msgid "profile.recovery.go-to-login" msgstr "Doties uz pieteikšanos" -#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:221 +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.team-size.11-30" +msgstr "11-30" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.team-size.2-10" +msgstr "2-10" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.team-size.31-50" +msgstr "31-50" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.adobe-xd" +msgstr "Adobe XD" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.canva" +msgstr "Canva" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.developer" +msgstr "Izstrādātājs" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.figma" +msgstr "Figma" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.founder" +msgstr "Dibinātājs/viceprezidents" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.freelancer" +msgstr "Esmu ārštātnieks(-ce)/Pašnodarbināts(-ā)" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.invision" +msgstr "InVision" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.lets-get-started" +msgstr "Ķeramies pie darba!" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.product-management" +msgstr "Produktu vai projektu vadītājs" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.marketing" +msgstr "Tirgvedība" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.team-size.more-than-50" +msgstr "Vairāk nekā 50" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.next" +msgstr "Nākamais" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.other" +msgstr "Cits (jānorāda)" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.team-size.personal-project" +msgstr "Strādāju personīgā projektā" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.previous" +msgstr "Iepriekšējais" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.step3.question2" +msgstr "Kāda ir ieņemamā loma?" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.select-option" +msgstr "Atlasīt iespēju" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.sketch" +msgstr "Sketch" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.start" +msgstr "Sākt" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.student-teacher" +msgstr "Students vai pasniedzējs" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.step3.question3" +msgstr "Cik liela ir komanda?" + +#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, msgid "settings.detach" msgstr "Atdalīt" -#: src/app/main/ui/viewer/inspect/exports.cljs:147, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:631, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:137, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:148, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:188, src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:158, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:399, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:410, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:430, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:441, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:458, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:472, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:309, src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:183, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:373, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:389, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:245, src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:172 +#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs msgid "settings.multiple" msgstr "Jaukts" -#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:271 +#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs msgid "settings.select-this-color" msgstr "Atlasīt vienumus, kas izmanto šo stilu" # SECTIONS -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:414 msgid "shortcut-section.basics" msgstr "Pamati" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:420 msgid "shortcut-section.dashboard" msgstr "Informācijas panelis" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:423 msgid "shortcut-section.viewer" msgstr "Pārlūks" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:417 msgid "shortcut-section.workspace" msgstr "Darbvieta" # SUBSECTIONS -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:56 msgid "shortcut-subsection.alignment" msgstr "Līdzināšana" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:57 msgid "shortcut-subsection.edit" msgstr "Labot" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:58 msgid "shortcut-subsection.general-dashboard" msgstr "Vispārējs" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:59 msgid "shortcut-subsection.general-viewer" msgstr "Vispārējs" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:60 msgid "shortcut-subsection.main-menu" msgstr "Galvenā izvēlne" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:61 msgid "shortcut-subsection.modify-layers" msgstr "Mainīt slāņus" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:62 msgid "shortcut-subsection.navigation-dashboard" msgstr "Navigācija" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:63 msgid "shortcut-subsection.navigation-viewer" msgstr "Navigācija" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:64 msgid "shortcut-subsection.navigation-workspace" msgstr "Navigācija" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:65 msgid "shortcut-subsection.panels" msgstr "Paneļi" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:66 msgid "shortcut-subsection.path-editor" msgstr "Ceļi" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:67 msgid "shortcut-subsection.shape" msgstr "Formas" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:68 msgid "shortcut-subsection.text-editor" msgstr "Teksti" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:69 msgid "shortcut-subsection.tools" msgstr "Rīki" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:70 msgid "shortcut-subsection.zoom-viewer" msgstr "Tālummaiņa" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:71 msgid "shortcut-subsection.zoom-workspace" msgstr "Tālummaiņa" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:72 msgid "shortcuts.add-comment" msgstr "Komentāri" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:73 msgid "shortcuts.add-node" msgstr "Pievienot mezglu" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:74 msgid "shortcuts.align-bottom" msgstr "Līdzināt pie apakšas" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:75 msgid "shortcuts.align-center" msgstr "Līdzināt vidū" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:76 msgid "shortcuts.align-hcenter" msgstr "Līdzināt vidū līmeniski" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:77 msgid "shortcuts.align-justify" msgstr "Līdzināt pie abām malām" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:78 msgid "shortcuts.align-left" msgstr "Līdzināt pie kreisās malas" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:79 msgid "shortcuts.align-right" msgstr "Līdzināt pa labi" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:80 msgid "shortcuts.align-top" msgstr "Līdzināt pie augšas" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:81 msgid "shortcuts.align-vcenter" msgstr "Līdzināt vidū stateniski" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:82 msgid "shortcuts.artboard-selection" msgstr "Izveidot plātni no atlases" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:83 msgid "shortcuts.bold" msgstr "Pārslēgt treknrakstu" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:84 msgid "shortcuts.bool-difference" msgstr "Būla starpība" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:85 msgid "shortcuts.bool-exclude" msgstr "Būla izslēgšana" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:86 msgid "shortcuts.bool-intersection" msgstr "Būla krustošanās" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:87 msgid "shortcuts.bool-union" msgstr "Būla apvienošana" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:88 msgid "shortcuts.bring-back" msgstr "Sūtīt uz aizmuguri" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:89 msgid "shortcuts.bring-backward" msgstr "Sūtīt atpakaļ" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:90 msgid "shortcuts.bring-forward" msgstr "Virzīt uz priekšu" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:91 msgid "shortcuts.bring-front" msgstr "Izvirzīt priekšā" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:92 msgid "shortcuts.clear-undo" msgstr "Iztīrīt atsaukšanu" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:93 msgid "shortcuts.copy" msgstr "Kopēt" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:94 msgid "shortcuts.create-component" msgstr "Izveidot sastāvdaļu" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:95 msgid "shortcuts.create-new-project" msgstr "Izveidot jaunu" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:96 msgid "shortcuts.cut" msgstr "Izgriezt" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:97 msgid "shortcuts.decrease-zoom" msgstr "Tālināt" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:98 msgid "shortcuts.delete" msgstr "Dzēst" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:99 msgid "shortcuts.delete-node" msgstr "Dzēst mezglu" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:100 msgid "shortcuts.detach-component" msgstr "Atdalīt sastāvdaļu" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:101 msgid "shortcuts.draw-curve" msgstr "Līkne" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:102 msgid "shortcuts.draw-ellipse" msgstr "Elipse" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:103 msgid "shortcuts.draw-frame" msgstr "Plātne" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:104 msgid "shortcuts.draw-nodes" msgstr "Zīmēt ceļu" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:105 msgid "shortcuts.draw-path" msgstr "Ceļš" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:106 msgid "shortcuts.draw-rect" msgstr "Taisnstūris" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:107 msgid "shortcuts.draw-text" msgstr "Teksts" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:108 msgid "shortcuts.duplicate" msgstr "Divkāršot" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:109 msgid "shortcuts.escape" msgstr "Atcelt" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:110 msgid "shortcuts.export-shapes" msgstr "Izgūt apveidus" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:111 msgid "shortcuts.fit-all" msgstr "Tālummainīt, lai ietilpinātu visu" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:112 msgid "shortcuts.flip-horizontal" msgstr "Apvērst līmeniski" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:113 msgid "shortcuts.flip-vertical" msgstr "Apvērst stateniski" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:114 msgid "shortcuts.font-size-dec" msgstr "Samazināt fonta izmēru" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:115 msgid "shortcuts.font-size-inc" msgstr "Palielināt fonta izmēru" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:116 msgid "shortcuts.go-to-drafts" msgstr "Doties uz melnrakstiem" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:117 msgid "shortcuts.go-to-libs" msgstr "Doties uz koplietojamām bibliotēkām" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:118 msgid "shortcuts.go-to-search" msgstr "Meklēt" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:119 msgid "shortcuts.group" msgstr "Apkopot" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:120 msgid "shortcuts.h-distribute" msgstr "Izkliedēt līmeniski" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:121 msgid "shortcuts.hide-ui" msgstr "Rādīt / paslēpt lietotāja saskarni" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:122 msgid "shortcuts.increase-zoom" msgstr "Tuvināt" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:123 msgid "shortcuts.insert-image" msgstr "Ievietot attēlu" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:124 msgid "shortcuts.italic" msgstr "Pārslēgt slīprakstu" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:125 msgid "shortcuts.join-nodes" msgstr "Savienot mezglus" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:126 msgid "shortcuts.letter-spacing-dec" msgstr "Samazināt burtstarpu" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:127 msgid "shortcuts.letter-spacing-inc" msgstr "Palielināt burtstarpu" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:128 msgid "shortcuts.line-height-dec" msgstr "Samazināt līnijas augstumu" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:129 msgid "shortcuts.line-height-inc" msgstr "Palielināt līnijas augstumu" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:130 msgid "shortcuts.line-through" msgstr "Pārslēgt svītrojumu" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:131 msgid "shortcuts.make-corner" msgstr "Izveidot stūri" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:132 msgid "shortcuts.make-curve" msgstr "Izveidot līkni" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:133 msgid "shortcuts.mask" msgstr "Maska" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:134 msgid "shortcuts.merge-nodes" msgstr "Sapludināt mezglus" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:135 msgid "shortcuts.move" msgstr "Pārvietot" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:136 msgid "shortcuts.move-fast-down" msgstr "Strauji pārvietot uz leju" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:137 msgid "shortcuts.move-fast-left" msgstr "Strauji pārvietot pa kreisi" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:138 msgid "shortcuts.move-fast-right" msgstr "Strauji pārvietot pa labi" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:139 msgid "shortcuts.move-fast-up" msgstr "Strauji pārvietot uz augšu" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:140 msgid "shortcuts.move-nodes" msgstr "Pārvietot mezglu" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:141 msgid "shortcuts.move-unit-down" msgstr "Pārvietot uz leju" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:142 msgid "shortcuts.move-unit-left" msgstr "Pārvietot pa kreisi" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:143 msgid "shortcuts.move-unit-right" msgstr "Pārvietot pa labi" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:144 msgid "shortcuts.move-unit-up" msgstr "Pārvietot uz augšu" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:145 msgid "shortcuts.next-frame" msgstr "Nākamā plātne" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:516 msgid "shortcuts.not-found" msgstr "Saīsnes nav atrastas" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:146 msgid "shortcuts.opacity-0" msgstr "Iestatīt necaurspīdīgumu uz 100%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:147 msgid "shortcuts.opacity-1" msgstr "Iestatīt necaurspīdīgumu uz 10%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:148 msgid "shortcuts.opacity-2" msgstr "Iestatīt necaurspīdīgumu uz 20%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:149 msgid "shortcuts.opacity-3" msgstr "Iestatīt necaurspīdīgumu uz 30%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:150 msgid "shortcuts.opacity-4" msgstr "Iestatīt necaurspīdīgumu uz 40%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:151 msgid "shortcuts.opacity-5" msgstr "Iestatīt necaurspīdīgumu uz 50%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:152 msgid "shortcuts.opacity-6" msgstr "Iestatīt necaurspīdīgumu uz 60%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:153 msgid "shortcuts.opacity-7" msgstr "Iestatīt necaurspīdīgumu uz 70%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:154 msgid "shortcuts.opacity-8" msgstr "Iestatīt necaurspīdīgumu uz 80%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:155 msgid "shortcuts.opacity-9" msgstr "Iestatīt necaurspīdīgumu uz 90%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:156 msgid "shortcuts.open-color-picker" msgstr "Krāsu atlasītājs" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:157 msgid "shortcuts.open-comments" msgstr "Atvērt pārlūka komentāru sadaļu" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:158 msgid "shortcuts.open-dashboard" msgstr "Doties uz informācijas paneli" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:159 msgid "shortcuts.open-inspect" msgstr "Doties uz skatītāja apskatīšanas sadaļu" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:160 msgid "shortcuts.open-interactions" msgstr "Doties uz skatītāja mijiedarbības sadaļu" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:161 msgid "shortcuts.open-viewer" msgstr "Doties uz skatītāja mijiedarbības sadaļu" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:162 msgid "shortcuts.open-workspace" msgstr "Doties uz darbvietu" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:260 msgid "shortcuts.or" msgstr " vai " -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:163 msgid "shortcuts.paste" msgstr "Ielīmēt" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:164 msgid "shortcuts.prev-frame" msgstr "Iepriekšējā plātne" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:165 msgid "shortcuts.redo" msgstr "Atatsaukt" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:166 msgid "shortcuts.reset-zoom" msgstr "Atiestatīt tālummaiņu" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:167 msgid "shortcuts.scale" msgstr "Mērogot" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:168 msgid "shortcuts.search-placeholder" msgstr "Meklēt saīsnes" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:169 msgid "shortcuts.select-all" msgstr "Atlasīt visu" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:170 msgid "shortcuts.select-next" msgstr "Atlasīt nākamo slāni" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:171 msgid "shortcuts.select-parent-layer" msgstr "Atlasīt vecākslāni" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:172 msgid "shortcuts.select-prev" msgstr "Atlasīt iepriekšējo slāni" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:173 msgid "shortcuts.separate-nodes" msgstr "Atdalīt mezglus" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:174 msgid "shortcuts.show-pixel-grid" msgstr "Rādīt/paslēpt pikseļu režģi" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:175 msgid "shortcuts.show-shortcuts" msgstr "Rādīt/paslēpt saīsnes" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:176 msgid "shortcuts.snap-nodes" msgstr "Pieķerties mezgliem" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:177 msgid "shortcuts.snap-pixel-grid" msgstr "Pieķerties pikseļu režģim" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:178 msgid "shortcuts.start-editing" msgstr "Sākt labošanu" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:179 msgid "shortcuts.start-measure" msgstr "Sākt mērīšanu" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:180 msgid "shortcuts.stop-measure" msgstr "Beigt mērīšanu" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:181 msgid "shortcuts.text-align-center" msgstr "Līdzināt vidū" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:182 msgid "shortcuts.text-align-justify" msgstr "Līdzināt pie abām malām" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:183 msgid "shortcuts.text-align-left" msgstr "Līdzināt pa kreisi" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:184 msgid "shortcuts.text-align-right" msgstr "Līdzināt pa labi" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:185 msgid "shortcuts.thumbnail-set" msgstr "Iestatīt sīktēlus" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:496, src/app/main/ui/workspace/sidebar/shortcuts.cljs:505 +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs msgid "shortcuts.title" msgstr "Īsinājumtaustiņi" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:186 msgid "shortcuts.toggle-alignment" msgstr "Pārslēgt dinamisko līdzināšanu" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:187 msgid "shortcuts.toggle-assets" msgstr "Pārslēgt līdzekļus" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:188 msgid "shortcuts.toggle-colorpalette" msgstr "Pārslēgt krāsu paleti" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:189 msgid "shortcuts.toggle-focus-mode" msgstr "Pārslēgt fokusa režīmu" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:190 msgid "shortcuts.toggle-fullscreen" msgstr "Pārslēgt pilnekrāna režīmu" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:191 msgid "shortcuts.toggle-guides" msgstr "Rādīt/paslēpt vadlīnijas" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:192 msgid "shortcuts.toggle-history" msgstr "Pārslēgt vēsturi" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:193 msgid "shortcuts.toggle-layers" msgstr "Pārslēgt slāņus" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:194 msgid "shortcuts.toggle-layout-flex" msgstr "Pievienot / Noņemt elastīgo izkārtojumu" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:195 msgid "shortcuts.toggle-layout-grid" msgstr "Pievienot/noņemt režģa izkārtojumu" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:196 msgid "shortcuts.toggle-lock" msgstr "Slēgt / Atslēgt" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:197 msgid "shortcuts.toggle-lock-size" msgstr "Slēgt proporcijas" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:198 msgid "shortcuts.toggle-rulers" msgstr "Rādīt/paslēpt mērjoslas" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:200 msgid "shortcuts.toggle-snap-guides" msgstr "Pievilkt pie vadlīnijām" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:201 msgid "shortcuts.toggle-snap-ruler-guide" msgstr "Pievilkt pie mērjoslu vadlīnijām" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:202 msgid "shortcuts.toggle-textpalette" msgstr "Pārslēgt teksta paleti" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:203 msgid "shortcuts.toggle-theme" msgstr "Mainīt izskatu" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:204 msgid "shortcuts.toggle-visibility" msgstr "Pārslēgt redzamību" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:205 msgid "shortcuts.toggle-zoom-style" msgstr "Pārslēgt tālummaiņas stilu" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:206 msgid "shortcuts.underline" msgstr "Pārslēgt pasvītrojumu" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:207 msgid "shortcuts.undo" msgstr "Atsaukt" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:208 msgid "shortcuts.ungroup" msgstr "Atapkopot" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:209 msgid "shortcuts.unmask" msgstr "Noņemt masku" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:210 msgid "shortcuts.v-distribute" msgstr "Izkliedēt stateniski" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:211 msgid "shortcuts.zoom-lense-decrease" msgstr "Tālummaiņas samazinājums" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:212 msgid "shortcuts.zoom-lense-increase" msgstr "Tālummaiņas palielinājums" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:213 msgid "shortcuts.zoom-selected" msgstr "Tālummainīt uz atlasi" -#: src/app/main/ui/dashboard/team.cljs:771 +#: src/app/main/ui/dashboard/team.cljs msgid "team.webhooks.max-length" msgstr "Tīmekļa aizķeres nosaukumā drīkst būt ne vairāk kā 2048 rakstzīmes." -#: src/app/main/ui/dashboard/files.cljs:158 +#: src/app/main/ui/dashboard/files.cljs msgid "title.dashboard.files" msgstr "%s - Penpot" -#: src/app/main/ui/dashboard/fonts.cljs:37 +#: src/app/main/ui/dashboard/fonts.cljs msgid "title.dashboard.font-providers" msgstr "Fontu nodrošinātāji - %s - Penpot" -#: src/app/main/ui/dashboard/fonts.cljs:36 +#: src/app/main/ui/dashboard/fonts.cljs msgid "title.dashboard.fonts" msgstr "Fonti - %s - Penpot" -#: src/app/main/ui/dashboard/projects.cljs:320 +#: src/app/main/ui/dashboard/projects.cljs msgid "title.dashboard.projects" msgstr "Projekti - %s - Penpot" -#: src/app/main/ui/dashboard/search.cljs:32 +#: src/app/main/ui/dashboard/search.cljs msgid "title.dashboard.search" msgstr "Meklēšana - %s - Penpot" -#: src/app/main/ui/dashboard/libraries.cljs:44 +#: src/app/main/ui/dashboard/libraries.cljs msgid "title.dashboard.shared-libraries" msgstr "Koplietojamās bibliotēkas - %s - Penpot" -#: src/app/main/ui/auth/verify_token.cljs:68, src/app/main/ui/auth.cljs:54 +#: src/app/main/ui/auth/verify_token.cljs, src/app/main/ui/auth.cljs msgid "title.default" msgstr "Penpot - Modelēšanas brīvība komandām" -#: src/app/main/ui/settings/access_tokens.cljs:292 +#: src/app/main/ui/settings/access-tokens.cljs msgid "title.settings.access-tokens" msgstr "Profils - piekļuves pilnvaras" -#: src/app/main/ui/settings/feedback.cljs:110 +#: src/app/main/ui/settings/feedback.cljs msgid "title.settings.feedback" msgstr "Sniegt atsauksmes - Penpot" -#: src/app/main/ui/settings/options.cljs:80 +#: src/app/main/ui/settings/options.cljs msgid "title.settings.options" msgstr "Iestatījumi - Penpot" -#: src/app/main/ui/settings/password.cljs:115 +#: src/app/main/ui/settings/password.cljs msgid "title.settings.password" msgstr "Parole - Penpot" -#: src/app/main/ui/settings/profile.cljs:115 +#: src/app/main/ui/settings/profile.cljs msgid "title.settings.profile" msgstr "Profils - Penpot" -#: src/app/main/ui/dashboard/team.cljs:727 +#: src/app/main/ui/dashboard/team.cljs msgid "title.team-invitations" msgstr "Ielūgumi - %s - Penpot" -#: src/app/main/ui/dashboard/team.cljs:493 +#: src/app/main/ui/dashboard/team.cljs msgid "title.team-members" msgstr "Dalībnieki - %s - Penpot" -#: src/app/main/ui/dashboard/team.cljs:1036 +#: src/app/main/ui/dashboard/team.cljs msgid "title.team-settings" msgstr "Iestatījumi - %s - Penpot" -#: src/app/main/ui/dashboard/team.cljs:989 msgid "title.team-webhooks" msgstr "Tīmekļa aizķeres - %s - Penpot" -#: src/app/main/ui/viewer.cljs:419 +#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs msgid "title.viewer" msgstr "%s - skatīšana - Penpot" -#: src/app/main/ui/workspace.cljs:190 +#: src/app/main/ui/workspace.cljs msgid "title.workspace" msgstr "%s - Penpot" -#: src/app/main/ui.cljs:144 msgid "viewer.breaking-change.description" msgstr "Šī kopīgojamā saite vairs nav derīga. Jāizveido vai jālūdz īpašniekam jauna." -#: src/app/main/ui.cljs:143 msgid "viewer.breaking-change.message" msgstr "Piedošanu!" -#: src/app/main/ui/viewer.cljs:569 +#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs msgid "viewer.empty-state" msgstr "Lapā nav atrasta neviena plātne." -#: src/app/main/ui/viewer.cljs:574 +#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs msgid "viewer.frame-not-found" msgstr "Plātne netika atrasta." -#: src/app/main/ui/viewer/header.cljs:336 msgid "viewer.header.comments-section" msgstr "Komentāri (%s)" -#: src/app/main/ui/viewer/interactions.cljs:292 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.dont-show-interactions" msgstr "Nerādīt mijiedarbības" -#: src/app/main/ui/viewer/header.cljs:188 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.fullscreen" msgstr "Pilnekrāns" -#: src/app/main/ui/viewer/header.cljs:345 msgid "viewer.header.inspect-section" msgstr "Apskatīt (%s)" -#: src/app/main/ui/viewer/interactions.cljs:282 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.interactions" msgstr "Mijiedarbības" -#: src/app/main/ui/viewer/header.cljs:327 msgid "viewer.header.interactions-section" msgstr "Mijiedarbības (%s)" -#: src/app/main/ui/viewer/share_link.cljs:187 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.share.copy-link" msgstr "Kopēt saiti" -#: src/app/main/ui/viewer/interactions.cljs:300 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.show-interactions" msgstr "Rādīt mijiedarbības" -#: src/app/main/ui/viewer/interactions.cljs:311 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.show-interactions-on-click" msgstr "Rādīt mijiedarbības pēc klikšķa" -#: src/app/main/ui/viewer/header.cljs:231 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.sitemap" msgstr "Vietnes karte" -#: src/app/main/ui/dashboard/team.cljs:948 msgid "webhooks.last-delivery.success" msgstr "Pēdējā piegāde bija veiksmīga." -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:58 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.hcenter" msgstr "Līdzināt līmeniskajā vidū (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:74 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.hdistribute" msgstr "Izlīdzināt līmeniskās atstarpes (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:50 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.hleft" msgstr "Līdzināt pa kreisi (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:66 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.hright" msgstr "Līdzināt pa labi (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:99 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.vbottom" msgstr "Līdzināt pie apakšas (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:91 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.vcenter" msgstr "Līdzināt stateniskajā vidū (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:104 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.vdistribute" msgstr "Izlīdzināt stateniskās atstarpes (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:83 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.vtop" msgstr "Līdzināt pie augšas (%s)" #: src/app/main/ui/workspace/sidebar/assets.cljs -#, unused msgid "workspace.assets.assets" msgstr "Līdzekļi" -#: src/app/main/ui/workspace/sidebar/assets.cljs:134 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.box-filter-all" msgstr "Visi līdzekļi" -#: src/app/main/ui/dashboard/grid.cljs:130, src/app/main/ui/dashboard/grid.cljs:162, src/app/main/ui/workspace/sidebar/assets/colors.cljs:485, src/app/main/ui/workspace/sidebar/assets.cljs:150 +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.colors" msgstr "Krāsas" -#: src/app/main/ui/dashboard/grid.cljs:126, src/app/main/ui/dashboard/grid.cljs:141, src/app/main/ui/workspace/sidebar/assets/components.cljs:513, src/app/main/ui/workspace/sidebar/assets.cljs:139 +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.components" msgstr "Sastāvdaļas" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:131 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.create-group" msgstr "Izveidot kopu" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:142 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.create-group-hint" msgstr "Vienumi tiks automātiski nosaukti kā “kopas nosaukums/vienuma nosaukums”" -#: src/app/main/ui/workspace/context_menu.cljs:529, src/app/main/ui/workspace/sidebar/assets/colors.cljs:251, src/app/main/ui/workspace/sidebar/assets/components.cljs:577, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:424, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:443 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.delete" msgstr "Dzēst" -#: src/app/main/ui/workspace/context_menu.cljs:534, src/app/main/ui/workspace/sidebar/assets/components.cljs:572 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.duplicate" msgstr "Divkāršot" -#: src/app/main/ui/workspace/sidebar/assets/components.cljs:571 msgid "workspace.assets.duplicate-main" msgstr "Divkāršot galveno" -#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:247, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:439 +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.edit" msgstr "Labot" -#: src/app/main/ui/workspace/sidebar/assets.cljs:176 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.filter" msgstr "Atlasīt" -#: src/app/main/ui/workspace/sidebar/assets/graphics.cljs:384, src/app/main/ui/workspace/sidebar/assets.cljs:145 +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.graphics" msgstr "Attēli" -#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:255, src/app/main/ui/workspace/sidebar/assets/components.cljs:581, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:428, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:448 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.group" msgstr "Kopa" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:141 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.group-name" msgstr "Kopas nosaukums" -#: src/app/main/ui/workspace/sidebar/assets.cljs:168 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.libraries" msgstr "Bibliotēkas" -#: src/app/main/ui/workspace/sidebar/assets/file_library.cljs:62, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:347 msgid "workspace.assets.local-library" msgstr "vietējā bibliotēka" -#: src/app/main/ui/workspace/sidebar/assets/file_library.cljs:295 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.not-found" msgstr "Līdzekļi nav atrasti" -#, unused msgid "workspace.assets.open-library" msgstr "Atvērt bibliotēkas datni" -#: src/app/main/ui/workspace/context_menu.cljs:532, src/app/main/ui/workspace/sidebar/assets/colors.cljs:243, src/app/main/ui/workspace/sidebar/assets/components.cljs:566, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:421, src/app/main/ui/workspace/sidebar/assets/groups.cljs:63, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:434 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.rename" msgstr "Pārdēvēt" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:132 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.rename-group" msgstr "Pārdēvēt kopu" -#: src/app/main/ui/workspace/sidebar/assets.cljs:173 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.search" msgstr "Meklēt līdzekļus" #: src/app/main/ui/workspace/sidebar/assets.cljs -#, unused msgid "workspace.assets.selected-count" msgid_plural "workspace.assets.selected-count" msgstr[0] "atlasīts %s vienums" @@ -3686,2055 +3321,1905 @@ msgstr[1] "atlasīts %s vienums" msgstr[2] "atlasīti %s vienumi" #: src/app/main/ui/workspace/sidebar/assets.cljs -#, unused msgid "workspace.assets.shared-library" msgstr "Koplietojama bibliotēka" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:221 +#: src/app/main/ui/workspace/sidebar/assets/common.cljs msgid "workspace.assets.sidebar.components" msgid_plural "workspace.assets.sidebar.components" msgstr[0] "%s sastāvdaļu" msgstr[1] "%s sastāvdaļa" msgstr[2] "%s sastāvdaļas" -#: src/app/main/ui/workspace/sidebar/assets.cljs:193 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.sort" msgstr "Kārtot" -#: src/app/main/ui/dashboard/grid.cljs:134, src/app/main/ui/dashboard/grid.cljs:189, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:397, src/app/main/ui/workspace/sidebar/assets.cljs:155 +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.typography" msgstr "Burtu stili un veidi" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused msgid "workspace.assets.typography.font-id" msgstr "Fonti" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:505 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.font-size" msgstr "Izmērs" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:501 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.font-variant-id" msgstr "Fonta variants" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:523 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.go-to-edit" msgstr "Doties uz stilu bibliotēkas datni, lai labotu" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:513 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.letter-spacing" msgstr "Burtstarpa" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:509 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.line-height" msgstr "Rindas augstums" -#: src/app/main/ui/dashboard/grid.cljs:199, src/app/main/ui/workspace/libraries.cljs:461, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:464, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:489, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:596, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:615 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, +#: src/app/main/ui/inspect/attributes/text.cljs, +#: src/app/main/ui/inspect/attributes/text.cljs msgid "workspace.assets.typography.sample" msgstr "Ag" -#, unused msgid "workspace.assets.typography.text-styles" msgstr "Teksta stili" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:517 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.text-transform" msgstr "Teksta pārveide" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:66 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.ungroup" msgstr "Atapkopot" -#: src/app/main/ui/workspace/context_menu.cljs:634 msgid "workspace.context-menu.grid-cells.area" msgstr "Izveidot laukumu" -#: src/app/main/ui/workspace/context_menu.cljs:637 msgid "workspace.context-menu.grid-cells.create-board" msgstr "Izveidot plātni" -#: src/app/main/ui/workspace/context_menu.cljs:629 msgid "workspace.context-menu.grid-cells.merge" msgstr "Apvienot šūnas" -#: src/app/main/ui/workspace/context_menu.cljs:594 msgid "workspace.context-menu.grid-track.column.add-after" msgstr "Pievienot 1 sleju pa labi" -#: src/app/main/ui/workspace/context_menu.cljs:593 msgid "workspace.context-menu.grid-track.column.add-before" msgstr "Pievienot 1 sleju pa kreisi" -#: src/app/main/ui/workspace/context_menu.cljs:595 msgid "workspace.context-menu.grid-track.column.delete" msgstr "Izdzēst sleju" -#: src/app/main/ui/workspace/context_menu.cljs:596 msgid "workspace.context-menu.grid-track.column.delete-shapes" msgstr "Izdzēst slejas un apveidus" -#: src/app/main/ui/workspace/context_menu.cljs:592 msgid "workspace.context-menu.grid-track.column.duplicate" msgstr "Divkāršota sleja" -#: src/app/main/ui/workspace/context_menu.cljs:601 msgid "workspace.context-menu.grid-track.row.add-after" msgstr "Pievienot 1 rindu zem" -#: src/app/main/ui/workspace/context_menu.cljs:600 msgid "workspace.context-menu.grid-track.row.add-before" msgstr "Pievienot 1 rindu virs" -#: src/app/main/ui/workspace/context_menu.cljs:602 msgid "workspace.context-menu.grid-track.row.delete" msgstr "Izdzēst rindu" -#: src/app/main/ui/workspace/context_menu.cljs:603 msgid "workspace.context-menu.grid-track.row.delete-shapes" msgstr "Izdzēst rindu un apveidus" -#: src/app/main/ui/workspace/context_menu.cljs:599 msgid "workspace.context-menu.grid-track.row.duplicate" msgstr "Divkāršot rindu" -#: src/app/main/ui/workspace/sidebar/layers.cljs:525 msgid "workspace.focus.focus-mode" msgstr "Fokusa režīms" -#: src/app/main/ui/workspace/context_menu.cljs:287, src/app/main/ui/workspace/context_menu.cljs:553 msgid "workspace.focus.focus-off" msgstr "Izslēgt fokusu" -#: src/app/main/ui/workspace/context_menu.cljs:286 msgid "workspace.focus.focus-on" msgstr "Ieslēgt fokusu" -#, unused msgid "workspace.focus.selection" msgstr "Atlase" -#: src/app/util/color.cljs:34 +#: src/app/main/data/workspace/libraries.cljs, +#: src/app/main/ui/components/color_bullet.cljs msgid "workspace.gradients.linear" msgstr "Lineārais gradients" -#: src/app/util/color.cljs:35 +#: src/app/main/data/workspace/libraries.cljs, +#: src/app/main/ui/components/color_bullet.cljs msgid "workspace.gradients.radial" msgstr "Radiālais gradients" -#: src/app/main/ui/workspace/main_menu.cljs:238 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.disable-dynamic-alignment" msgstr "Atspējot dinamisko līdzināšanu" -#: src/app/main/ui/workspace/main_menu.cljs:192 msgid "workspace.header.menu.disable-scale-content" msgstr "Atspējot proporcionālo mērogu" #: src/app/main/ui/workspace/header.cljs -#, unused msgid "workspace.header.menu.disable-scale-text" msgstr "Deaktivizēt teksta mērogošanu" -#: src/app/main/ui/workspace/main_menu.cljs:223 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.disable-snap-guides" msgstr "Atspējot pieķeršanos vadotnēm" -#: src/app/main/ui/workspace/main_menu.cljs:253 msgid "workspace.header.menu.disable-snap-pixel-grid" msgstr "Atspējot pieķeršanos pikselim" -#: src/app/main/ui/workspace/main_menu.cljs:207 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.disable-snap-ruler-guides" msgstr "Atspējot pievilkšanu mērjoslu vadlīnijām" -#: src/app/main/ui/workspace/main_menu.cljs:239 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.enable-dynamic-alignment" msgstr "Iespējot dinamisko līdzināšanu" -#: src/app/main/ui/workspace/main_menu.cljs:193 msgid "workspace.header.menu.enable-scale-content" msgstr "Iespējot proporcionālo mērogu" #: src/app/main/ui/workspace/header.cljs -#, unused msgid "workspace.header.menu.enable-scale-text" msgstr "Aktivizēt teksta mērogošanu" -#: src/app/main/ui/workspace/main_menu.cljs:224 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.enable-snap-guides" msgstr "Pieķerties vadotnēm" -#: src/app/main/ui/workspace/main_menu.cljs:254 msgid "workspace.header.menu.enable-snap-pixel-grid" msgstr "Iespējot pieķeršanos pikselim" -#: src/app/main/ui/workspace/main_menu.cljs:208 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.enable-snap-ruler-guides" msgstr "Pievilkt pie mērjoslu vadlīnijām" -#: src/app/main/ui/workspace/main_menu.cljs:382 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.hide-artboard-names" msgstr "Paslēpt plātņu nosaukumus" -#: src/app/main/ui/workspace/main_menu.cljs:336 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.hide-guides" msgstr "Paslēpt vadlīnijas" -#: src/app/main/ui/workspace/main_menu.cljs:353 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.hide-palette" msgstr "Paslēpt krāsu paleti" -#: src/app/main/ui/workspace/main_menu.cljs:394 msgid "workspace.header.menu.hide-pixel-grid" msgstr "Paslēpt pikseļu režģi" -#: src/app/main/ui/workspace/main_menu.cljs:320 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.hide-rules" msgstr "Paslēpt mērjoslas" -#: src/app/main/ui/workspace/main_menu.cljs:367 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.hide-textpalette" msgstr "Paslēpt fontu paleti" -#: src/app/main/ui/workspace/main_menu.cljs:731 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.edit" msgstr "Labot" -#: src/app/main/ui/workspace/main_menu.cljs:720 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.file" msgstr "Datne" -#: src/app/main/ui/workspace/main_menu.cljs:777 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.help-info" msgstr "Palīdzība un informācija" -#: src/app/main/ui/workspace/main_menu.cljs:753 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.preferences" msgstr "Izvēles" -#: src/app/main/ui/workspace/main_menu.cljs:742 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.view" msgstr "Skatīt" -#: src/app/main/ui/workspace/main_menu.cljs:459 msgid "workspace.header.menu.redo" msgstr "Atkārtot" -#: src/app/main/ui/workspace/main_menu.cljs:432 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.select-all" msgstr "Atlasīt visu" -#: src/app/main/ui/workspace/main_menu.cljs:383 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.show-artboard-names" msgstr "Rādīt plātņu nosaukumus" -#: src/app/main/ui/workspace/main_menu.cljs:337 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.show-guides" msgstr "Parādīt vadlīnijas" -#: src/app/main/ui/workspace/main_menu.cljs:354 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.show-palette" msgstr "Rādīt krāsu paleti" -#: src/app/main/ui/workspace/main_menu.cljs:395 msgid "workspace.header.menu.show-pixel-grid" msgstr "Rādīt pikseļu režģi" -#: src/app/main/ui/workspace/main_menu.cljs:321 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.show-rules" msgstr "Rādīt mērjoslas" -#: src/app/main/ui/workspace/main_menu.cljs:368 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.show-textpalette" msgstr "Rādīt fontu paleti" -#: src/app/main/ui/workspace/main_menu.cljs:279 msgid "workspace.header.menu.toggle-dark-theme" msgstr "Pārslēgties uz tumšo izskatu" -#: src/app/main/ui/workspace/main_menu.cljs:278 msgid "workspace.header.menu.toggle-light-theme" msgstr "Pārslēgties uz gaišo izskatu" -#: src/app/main/ui/workspace/main_menu.cljs:446 msgid "workspace.header.menu.undo" msgstr "Atsaukt" -#: src/app/main/ui/viewer/header.cljs:98, src/app/main/ui/workspace/right_header.cljs:120 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.reset-zoom" msgstr "Atiestatīt" #: src/app/main/ui/workspace/header.cljs -#, unused msgid "workspace.header.save-error" msgstr "Saglabāšanas kļūda" -#: src/app/main/ui/workspace/right_header.cljs:52 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.saved" msgstr "Saglabāts" #: src/app/main/ui/workspace/header.cljs -#, unused msgid "workspace.header.saving" msgstr "Saglabāšana" -#: src/app/main/ui/workspace/right_header.cljs:42, src/app/main/ui/workspace/right_header.cljs:47 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.unsaved" msgstr "Nesaglabātas izmaiņas" -#: src/app/main/ui/workspace/right_header.cljs:239 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.viewer" msgstr "Skatīšana (%s)" -#: src/app/main/ui/viewer/header.cljs:79, src/app/main/ui/workspace/right_header.cljs:103 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom" msgstr "Tālummaiņa" -#: src/app/main/ui/viewer/header.cljs:109 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom-fill" msgstr "Aizpildījums — mērogot, lai aizpildītu" -#: src/app/main/ui/viewer/header.cljs:102 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom-fit" msgstr "Ietilpināt — samazināt, lai ietilpinātu" -#: src/app/main/ui/workspace/right_header.cljs:123 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom-fit-all" msgstr "Tālummainīt, lai ietilpinātu visu" -#: src/app/main/ui/viewer/header.cljs:116 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom-full-screen" msgstr "Pilnekrāns" -#: src/app/main/ui/workspace/right_header.cljs:130 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom-selected" msgstr "Tālummainīt uz atlasi" -#: src/app/main/ui/workspace/sidebar/options/menus/grid_cell.cljs:273, src/app/main/ui/workspace/sidebar/options/menus/grid_cell.cljs:275, src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:612 msgid "workspace.layout_grid.editor.options.edit-grid" msgstr "Labot režģi" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:1280 msgid "workspace.layout_grid.editor.options.exit" msgstr "Iziet" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:483 msgid "workspace.layout_grid.editor.padding.expand" msgstr "Rādīt četrpusējas atbīdes iespējas" -#: src/app/main/ui/workspace/viewport/grid_layout_editor.cljs:59 msgid "workspace.layout_grid.editor.title" msgstr "Režģa labošana" -#: src/app/main/ui/workspace/viewport/grid_layout_editor.cljs:65 msgid "workspace.layout_grid.editor.top-bar.done" msgstr "Darīts" -#: src/app/main/ui/workspace/viewport/grid_layout_editor.cljs:62 msgid "workspace.layout_grid.editor.top-bar.locate" msgstr "Noteikt atrašanās vietu" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:1306 msgid "workspace.layout_grid.editor.top-bar.locate.tooltip" msgstr "Norādīt režģa izkārtojumu" #: src/app/main/ui/workspace/libraries.cljs -#, unused msgid "workspace.libraries.add" msgstr "Pievienot" -#: src/app/main/ui/workspace/libraries.cljs:80, src/app/main/ui/workspace/libraries.cljs:99 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.colors" msgstr "%s krāsas" -#: src/app/main/ui/workspace/color_palette.cljs:126 +#: src/app/main/ui/workspace/colorpalette.cljs msgid "workspace.libraries.colors.empty-palette" msgstr "Bibliotēkā vēl nav krāsu stilu" -#: src/app/main/ui/workspace/text_palette.cljs:150 +#: src/app/main/ui/workspace/textpalette.cljs msgid "workspace.libraries.colors.empty-typography-palette" msgstr "Bibliotēkā vēl nav burtu stilu un veidu" -#: src/app/main/ui/workspace/color_palette_ctx_menu.cljs:60, src/app/main/ui/workspace/colorpicker/libraries.cljs:73, src/app/main/ui/workspace/text_palette_ctx_menu.cljs:50 +#: src/app/main/ui/workspace/colorpicker/libraries.cljs, +#: src/app/main/ui/workspace/colorpalette.cljs msgid "workspace.libraries.colors.file-library" msgstr "Datņu bibliotēka" #: src/app/main/ui/workspace/colorpicker.cljs -#, unused msgid "workspace.libraries.colors.hsv" msgstr "HSV" -#: src/app/main/ui/workspace/color_palette_ctx_menu.cljs:82, src/app/main/ui/workspace/colorpicker/libraries.cljs:72 +#: src/app/main/ui/workspace/colorpicker/libraries.cljs, +#: src/app/main/ui/workspace/colorpalette.cljs msgid "workspace.libraries.colors.recent-colors" msgstr "Nesen izmantotās krāsas" #: src/app/main/ui/workspace/colorpicker.cljs -#, unused msgid "workspace.libraries.colors.rgb-complementary" msgstr "Papildu RGB" #: src/app/main/ui/workspace/colorpicker.cljs -#, unused msgid "workspace.libraries.colors.rgba" msgstr "RGBA" -#: src/app/main/ui/workspace/colorpicker.cljs:372 +#: src/app/main/ui/workspace/colorpicker.cljs msgid "workspace.libraries.colors.save-color" msgstr "Saglabāt krāsu stilu" -#: src/app/main/ui/workspace/libraries.cljs:74, src/app/main/ui/workspace/libraries.cljs:91 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.components" msgstr "%s sastāvdaļas" -#: src/app/main/ui/workspace/libraries.cljs:215 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.file-library" msgstr "Datņu bibliotēka" -#: src/app/main/ui/workspace/libraries.cljs:77, src/app/main/ui/workspace/libraries.cljs:95 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.graphics" msgstr "%s attēli" -#: src/app/main/ui/workspace/libraries.cljs:209 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.in-this-file" msgstr "BIBLIOTĒKAS ŠAJĀ DATNĒ" -#: src/app/main/ui/workspace/libraries.cljs:526, src/app/main/ui/workspace/libraries.cljs:531 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.libraries" msgstr "BIBLIOTĒKAS" #: src/app/main/ui/workspace/libraries.cljs -#, unused msgid "workspace.libraries.library" msgstr "BIBLIOTĒKA" -#: src/app/main/ui/workspace/libraries.cljs:382 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.library-updates" msgstr "BIBLIOTĒKAS JAUNINĀJUMI" -#: src/app/main/ui/workspace/libraries.cljs:290 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.loading" msgstr "Ielādē…" -#: src/app/main/ui/workspace/libraries.cljs:380 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.no-libraries-need-sync" msgstr "Nav nevienas koplietojamās bibliotēkas, kas būtu jāatjaunina" -#: src/app/main/ui/workspace/libraries.cljs:299 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.no-matches-for" msgstr "“%s” nav atrasta neviena atbilstība" -#: src/app/main/ui/workspace/libraries.cljs:296 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.no-shared-libraries-available" msgstr "Nav pieejamu koplietojamo bibliotēku" -#: src/app/main/ui/workspace/libraries.cljs:260 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.search-shared-libraries" msgstr "Meklēt koplietojamās bibliotēkas" -#: src/app/main/ui/workspace/libraries.cljs:256 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.shared-libraries" msgstr "KOPLIETOJAMĀS BIBLIOTĒKAS" -#: src/app/main/ui/workspace/libraries.cljs:282 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.shared-library-btn" msgstr "Savienot bibliotēku" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:308 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.libraries.text.multiple-typography" msgstr "Vairāki burtu stili un veidi" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:311 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.libraries.text.multiple-typography-tooltip" msgstr "Atsaistīt visus burtu stilus un veidus" -#: src/app/main/ui/workspace/libraries.cljs:83, src/app/main/ui/workspace/libraries.cljs:103 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.typography" msgstr "%s burtu stili un veidi" -#: src/app/main/ui/workspace/libraries.cljs:249 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.unlink-library-btn" msgstr "Atvienot bibliotēku" -#: src/app/main/ui/workspace/libraries.cljs:402 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.update" msgstr "Atjaunināt" -#: src/app/main/ui/workspace/libraries.cljs:477 +#: src/app/main/data/workspace/libraries.cljs msgid "workspace.libraries.update.see-all-changes" msgstr "apskatīt visas izmaiņas" -#: src/app/main/ui/workspace/libraries.cljs:536 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.updates" msgstr "ATJAUNINĀJUMI" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:737 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.add-interaction" msgstr "Jāklikšķina uz pogas \"+\", lai pievienotu mijiedarbības." -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:86, src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:102 +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs msgid "workspace.options.blur-options.title" msgstr "Aizmiglojums" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:85 +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs msgid "workspace.options.blur-options.title.group" msgstr "Kopas aizmiglojums" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:84 +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs msgid "workspace.options.blur-options.title.multiple" msgstr "Atlases aizmiglojums" -#: src/app/main/ui/workspace/sidebar/options/page.cljs:32, src/app/main/ui/workspace/sidebar/options/page.cljs:39 +#: src/app/main/ui/workspace/sidebar/options/page.cljs msgid "workspace.options.canvas-background" msgstr "Kanvas fons" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:548 msgid "workspace.options.clip-content" msgstr "Apcirpt saturu" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:600, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:605 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs msgid "workspace.options.component" msgstr "Sastāvdaļa" -#: src/app/main/ui/viewer/inspect/annotation.cljs:19, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:181 msgid "workspace.options.component.annotation" msgstr "Piezīme" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:610 msgid "workspace.options.component.copy" msgstr "Ievietot starpliktuvē" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:173 msgid "workspace.options.component.create-annotation" msgstr "Izveidot piezīmi" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:172 msgid "workspace.options.component.edit-annotation" msgstr "Labot piezīmi" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:609 msgid "workspace.options.component.main" msgstr "Galvenais" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:427 msgid "workspace.options.component.swap" msgstr "Mijmainīt sastāvdaļu" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:471 msgid "workspace.options.component.swap.empty" msgstr "Šajā bibliotēkā vēl nav līdzekļu" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:163 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints" msgstr "Ierobežojumi" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:150 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.bottom" msgstr "Apakša" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:141, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:152 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.center" msgstr "Centrs" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:229 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.fix-when-scrolling" msgstr "Nofiksēt ritināšanas laikā" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:138 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.left" msgstr "Pa kreisi" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:140 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.leftright" msgstr "Pa kreisi un labi" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:139 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.right" msgstr "Pa labi" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:142, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:153 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.scale" msgstr "Mērogs" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:149 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.top" msgstr "Augša" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:151 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.topbottom" msgstr "Augša un apakša" -#: src/app/main/ui/workspace/sidebar/options.cljs:112 +#: src/app/main/ui/workspace/sidebar/options.cljs msgid "workspace.options.design" msgstr "Dizains" -#: src/app/main/ui/viewer/inspect/exports.cljs:139 +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, +#: src/app/main/ui/inspect/exports.cljs msgid "workspace.options.export" msgstr "Izguve" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, +#: src/app/main/ui/inspect/exports.cljs msgid "workspace.options.export-multiple" msgstr "Izgūt atlasi" -#: src/app/main/ui/viewer/inspect/exports.cljs:195, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:237 +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, +#: src/app/main/ui/inspect/exports.cljs msgid "workspace.options.export-object" msgid_plural "workspace.options.export-object" msgstr[0] "Izgūt %s elementus" msgstr[1] "Izgūt %s elementu" msgstr[2] "Izgūt %s elementus" -#: src/app/main/ui/viewer/inspect/exports.cljs:178, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:219 +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs msgid "workspace.options.export.suffix" msgstr "Piedēklis" -#: src/app/main/ui/export.cljs:240 +#: 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.exporting-complete" msgstr "Izguve pabeigta" -#: src/app/main/ui/export.cljs:172, src/app/main/ui/export.cljs:241, src/app/main/ui/viewer/inspect/exports.cljs:194, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:236 +#: 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.exporting-object" msgstr "Notiek izgūšana…" -#: src/app/main/ui/export.cljs:239 +#: 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.exporting-object-error" msgstr "Izgūšana neizdevās" -#: src/app/main/ui/export.cljs:242 +#: 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.exporting-object-slow" msgstr "Izgūšana ir neparedzēti lēna" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:49, src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:174 +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs msgid "workspace.options.fill" msgstr "Aizpildīšana" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:178 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.flows.add-flow-start" msgstr "Pievienot plūsmas sākumu" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:174 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.flows.flow" msgstr "Plūsma" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -#, unused msgid "workspace.options.flows.flow-start" msgstr "Plūsmas sākums" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:161 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.flows.flow-starts" msgstr "Plūsma sākas" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:29 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.auto" msgstr "Auto" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:157 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.column" msgstr "Slejas" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.grid-title" msgstr "Režģis" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:196, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:237 msgid "workspace.options.grid.params.color" msgstr "Krāsa" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.params.columns" msgstr "Slejas" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:259 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.gutter" msgstr "Rene" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:246 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.height" msgstr "Augstums" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:270 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.margin" msgstr "Mala" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.params.rows" msgstr "Rindas" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:216, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:290 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.set-default" msgstr "Iestatīt kā noklusējumu" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.params.size" msgstr "Izmērs" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.params.type" msgstr "Tips" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:231 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.bottom" msgstr "Apakša" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:229 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.center" msgstr "Centrs" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:228 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.left" msgstr "Pa kreiss" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:232 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.right" msgstr "Pa labi" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:225 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.stretch" msgstr "Izstiept" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:227 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.top" msgstr "Augša" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:211, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:288 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.use-default" msgstr "Izmantot noklusējumu" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:247 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.width" msgstr "Platums" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:158 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.row" msgstr "Rindas" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:156 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.square" msgstr "Kvadrāts" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:48 +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs msgid "workspace.options.group-fill" msgstr "Kopas aizpildījums" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:42 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.group-stroke" msgstr "Kopas vilkums" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:310 msgid "workspace.options.guides.title" msgstr "Vadotnes" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:406 msgid "workspace.options.height" msgstr "Augstums" -#: src/app/main/ui/workspace/sidebar/options.cljs:161 msgid "workspace.options.inspect" msgstr "Apskatīt" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:468 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-action" msgstr "Darbība" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:41, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:367 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-after-delay" msgstr "Pēc kavēšanās" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:614 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-animation" msgstr "Animācija" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:406 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-animation-dissolve" msgstr "Izšķīst" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:405 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-animation-none" msgstr "Nav" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:412 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-animation-push" msgstr "Grūdiens" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:407 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-animation-slide" msgstr "Bīdīšana" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:391 msgid "workspace.options.interaction-auto" msgstr "auto" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:604 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-background" msgstr "Pievienot fona pārklājumu" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:590 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-close-outside" msgstr "Aizvērt, noklikšķinot ārpus" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:372 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-close-overlay" msgstr "Aizvērt pārklājumu" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:56 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-close-overlay-dest" msgstr "Aizvērt pārklājumu: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:456 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-delay" msgstr "Nobīde" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:478 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-destination" msgstr "Galamērķis" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:661 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-duration" msgstr "Ilgums" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:674 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing" msgstr "Mīkstināšana" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:416 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing-ease" msgstr "Mīkstināt" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:417 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing-ease-in" msgstr "Viegli iekšā" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:419 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing-ease-in-out" msgstr "Viegli iekšā ārā" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:418 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing-ease-out" msgstr "Viegli ārā" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:415 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing-linear" msgstr "Lineāri" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -#, unused msgid "workspace.options.interaction-in" msgstr "Iekšā" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:39, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:364 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-mouse-enter" msgstr "Peles ievade" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:40, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:365 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-mouse-leave" msgstr "Peles pamešana" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:458, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:459, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:464, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:663, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:665, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:669 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-ms" msgstr "ms" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:369 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-navigate-to" msgstr "Doties uz" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:50 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-navigate-to-dest" msgstr "Doties uz: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:51, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:53, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:55, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:380 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-none" msgstr "(nav noteikts)" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:691 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-offset-effect" msgstr "Nobīdes efekts" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:35, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:360 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-on-click" msgstr "Uz klikšķa" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:370 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-open-overlay" msgstr "Atvērt pārklājumu" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:52 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-open-overlay-dest" msgstr "Atvērt pārklājumu: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:59, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:374 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-open-url" msgstr "Atvērt URL" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -#, unused msgid "workspace.options.interaction-out" msgstr "Ārā" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:403 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-bottom-center" msgstr "Apakšējais centrs" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:401 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-bottom-left" msgstr "Apakšā pa kreisi" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:402 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-bottom-right" msgstr "Apakšā pa labi" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:397 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-center" msgstr "Centrs" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:396 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-manual" msgstr "Manuāli" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:400 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-top-center" msgstr "Augšējais centrs" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:398 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-top-left" msgstr "Augšā pa kreisi" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:399 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-top-right" msgstr "Augšā pa labi" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:524 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-position" msgstr "Novietojums" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:494 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-preserve-scroll" msgstr "Paturēt ritināšanas pozīciju" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:58, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:373 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-prev-screen" msgstr "Iepriekšējais ekrāns" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:515 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-relative-to" msgstr "Attiecībā pret" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:57, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:379, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:393, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:394 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-self" msgstr "sevi" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:371 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-toggle-overlay" msgstr "Pārslēgt pārklājumu" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:54 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-toggle-overlay-dest" msgstr "Pārslēgt pārklājumu: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:445 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-trigger" msgstr "Izraisītājs" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:503 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-url" msgstr "URL" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:37, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:362 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-while-hovering" msgstr "Karāšanās laikā" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:38, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:363 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-while-pressing" msgstr "Nospiešanas laikā" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:724 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interactions" msgstr "Mijiedarbības" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:137 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.color" msgstr "Krāsa" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:126 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.color-burn" msgstr "Krāsas izbalēšana" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:129 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.color-dodge" msgstr "Krāsas izcēlums" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:124 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.darken" msgstr "Aptumšot" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:133 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.difference" msgstr "Starpība" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:134 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.exclusion" msgstr "Izslēgšana" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:132 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.hard-light" msgstr "Konturgaisma" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:135 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.hue" msgstr "Nokrāsa" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:127 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.lighten" msgstr "Izgaismot" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:138 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.luminosity" msgstr "Spožums" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:125 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.multiply" msgstr "Vairot" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:123 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.normal" msgstr "Normāls" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:130 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.overlay" msgstr "Pārklājums" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:136 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.saturation" msgstr "Piesātinājums" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:128 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.screen" msgstr "Ekrāns" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:131 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.soft-light" msgstr "Izkliedgaisma" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -#, unused msgid "workspace.options.layer-options.title" msgstr "Slānis" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -#, unused msgid "workspace.options.layer-options.title.group" msgstr "Apkopot slāņus" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -#, unused msgid "workspace.options.layer-options.title.multiple" msgstr "Atlasītie slāņi" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout-item.advanced-ops" msgstr "Papildu opcijas" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:564 +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs msgid "workspace.options.layout-item.layout-item-max-h" msgstr "Maks.augstums" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:531 +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs msgid "workspace.options.layout-item.layout-item-max-w" msgstr "Maks.platums" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:548 +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs msgid "workspace.options.layout-item.layout-item-min-h" msgstr "Min.augstums" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:515 +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs msgid "workspace.options.layout-item.layout-item-min-w" msgstr "Min.platums" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout-item.title.layout-item-max-h" msgstr "Maksimālais augstums" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout-item.title.layout-item-max-w" msgstr "Maksimālais platums" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout-item.title.layout-item-min-h" msgstr "Minimālais augstums" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout-item.title.layout-item-min-w" msgstr "Minimālais platums" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.bottom" msgstr "Apakša" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.direction.column" msgstr "Sleja" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.direction.column-reverse" msgstr "Apvērsta sleja" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.direction.row" msgstr "Rinda" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.direction.row-reverse" msgstr "Apgrieztā rinda" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.gap" msgstr "Atstarpe" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.left" msgstr "Pa kreisi" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout.margin" msgstr "Mala" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout.margin-all" msgstr "Visas malas" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout.margin-simple" msgstr "Vienkāršā mala" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.packed" msgstr "kompakts" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.padding" msgstr "Papildināšana" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.padding-all" msgstr "Visas malas" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.padding-simple" msgstr "Vienkāršā papildināšana" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.right" msgstr "Pa labi" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.space-around" msgstr "telpa apkārt" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.space-between" msgstr "telpa starp" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.top" msgstr "Augša" -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:146 +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs msgid "workspace.options.more-colors" msgstr "Vairāk krāsu" -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:123 +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs msgid "workspace.options.more-lib-colors" msgstr "Vairāk bibliotēkas krāsu" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:161 msgid "workspace.options.opacity" msgstr "Caurspīdīgums" -#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.position" msgstr "Novietojums" -#: src/app/main/ui/workspace/sidebar/options.cljs:157 +#: src/app/main/ui/workspace/sidebar/options.cljs msgid "workspace.options.prototype" msgstr "Prototips" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:469, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:481 msgid "workspace.options.radius" msgstr "Rādiuss" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:513 +#: 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:522 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.radius-bottom-right" msgstr "Apakšā pa labi" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:495 +#: 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:504 +#: 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:532 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.radius.all-corners" msgstr "Visi stūri" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:533 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.radius.single-corners" msgstr "Atsevišķie stūri" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:183 msgid "workspace.options.recent-fonts" msgstr "Pēdējie" -#: src/app/main/ui/export.cljs:284 +#: 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 "Atkārtot" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:451 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.rotation" msgstr "Pagriešana" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:180 msgid "workspace.options.search-font" msgstr "Meklēt fontu" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:741 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.select-a-shape" msgstr "Jāatlasa apveids, plātne vai kopa, lai vilktu savienojumu uz citu plātni." -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:105 +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs msgid "workspace.options.selection-color" msgstr "Atlasītās krāsas" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:47 +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs msgid "workspace.options.selection-fill" msgstr "Atlases aizpildījums" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:41 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.selection-stroke" msgstr "Atlases vilkums" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:40, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:198, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:200 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.blur" msgstr "Aizmiglojums" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:238 msgid "workspace.options.shadow-options.color" msgstr "Ēnas krāsa" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:144 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.drop-shadow" msgstr "Ēnot" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:145 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.inner-shadow" msgstr "Iekšējā ēna" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:38, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:186 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.offsetx" msgstr "X" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:39, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:224 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.offsety" msgstr "Y" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:41, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:211, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:213 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.spread" msgstr "Izkliede" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:296 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.title" msgstr "Ēna" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:295 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.title.group" msgstr "Kopas ēna" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:294 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.title.multiple" msgstr "Atlases ēnas" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:193 +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs msgid "workspace.options.show-fill-on-export" msgstr "Rādīt izguvēs" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:562 msgid "workspace.options.show-in-viewer" msgstr "Rādīt skatītājā" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:162 +#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.size" msgstr "Izmērs" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:355 +#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs msgid "workspace.options.size-presets" msgstr "Izmēra standarti" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:43 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke" msgstr "Vilkums" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -#, unused msgid "workspace.options.stroke-cap.circle-marker" msgstr "Apļa marķieris" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:129 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.circle-marker-short" msgstr "Aplis" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -#, unused msgid "workspace.options.stroke-cap.diamond-marker" msgstr "Rombveida marķieris" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:130 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.diamond-marker-short" msgstr "Dimants" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -#, unused msgid "workspace.options.stroke-cap.line-arrow" msgstr "Līnijas bulta" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:126 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.line-arrow-short" msgstr "Bulta" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:124 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.none" msgstr "Nav" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:132 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.round" msgstr "Apaļš" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:133 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.square" msgstr "Kvadrāts" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -#, unused msgid "workspace.options.stroke-cap.square-marker" msgstr "Kvadrāta marķieris" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:128 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.square-marker-short" msgstr "Taisnstūris" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -#, unused msgid "workspace.options.stroke-cap.triangle-arrow" msgstr "Trīsstūra bulta" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:127 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.triangle-arrow-short" msgstr "Trijstūris" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:192 msgid "workspace.options.stroke-color" msgstr "Vilkuma krāsa" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:165 msgid "workspace.options.stroke-width" msgstr "Vilkuma biezums" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:87 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.center" msgstr "Centrs" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:105 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.dashed" msgstr "Pārtraukts" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:104 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.dotted" msgstr "Punktots" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:88 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.inner" msgstr "Iekšā" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:106 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.mixed" msgstr "Jaukts" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:89 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.outer" msgstr "Ārā" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:103 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.solid" msgstr "Blīvs" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:115 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.align-bottom" msgstr "Līdzināt pie apakšas" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:111 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.align-middle" msgstr "Līdzināt vidū (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:107 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.align-top" msgstr "Līdzināt pie augšas" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:82 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.direction-ltr" msgstr "No kreisās uz labo pusi" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:87 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.direction-rtl" msgstr "No labās uz kreiso pusi" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:149 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.grow-auto-height" msgstr "Automātiskais augstums" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:145 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.grow-auto-width" msgstr "Automātiskais platums" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:141 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.grow-fixed" msgstr "Fiksēts" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:381 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.options.text-options.letter-spacing" msgstr "Burtu atstarpes" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:364 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.options.text-options.line-height" msgstr "Rindas augstums" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused msgid "workspace.options.text-options.lowercase" msgstr "Mazie burti" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.options.text-options.none" msgstr "Nav" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:176 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.strikethrough" msgstr "Pārsvītrots (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:51 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.text-align-center" msgstr "Līdzināt vidū (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:59 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.text-align-justify" msgstr "Izlīdzināt (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:47 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.text-align-left" msgstr "Līdzināt pa kreisi (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:55 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.text-align-right" msgstr "Līdzināt pa labi (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:189 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.title" msgstr "Teksts" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:188 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.title-group" msgstr "Kopas teksts" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:187 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.title-selection" msgstr "Atlases teksts" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused msgid "workspace.options.text-options.titlecase" msgstr "Virsraksta stils" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:171 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.underline" msgstr "Pasvītrojums (%s)" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused msgid "workspace.options.text-options.uppercase" msgstr "Lielie burti" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:745 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.use-play-button" msgstr "Jāizmanto atskaņosanas poga galvenē, lai palaistu prototipa skatu." -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:395 msgid "workspace.options.width" msgstr "Platums" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:427 msgid "workspace.options.x" msgstr "X ass" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:438 msgid "workspace.options.y" msgstr "Y ass" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:167 msgid "workspace.path.actions.add-node" msgstr "Pievienot mezglu (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:174 msgid "workspace.path.actions.delete-node" msgstr "Dzēst mezglu (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:152 msgid "workspace.path.actions.draw-nodes" msgstr "Zīmēt mezglus (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:189 msgid "workspace.path.actions.join-nodes" msgstr "Savienot mezglus (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:204 msgid "workspace.path.actions.make-corner" msgstr "Uz stūri (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:211 msgid "workspace.path.actions.make-curve" msgstr "Uz līkni (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:182 msgid "workspace.path.actions.merge-nodes" msgstr "Mezglu sapludināšana (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:159 msgid "workspace.path.actions.move-nodes" msgstr "Pārvietot mezglus (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:196 msgid "workspace.path.actions.separate-nodes" msgstr "Atdalīt mezglus (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:218 msgid "workspace.path.actions.snap-nodes" msgstr "Pieķert mezglus (%s)" -#: src/app/main/ui/workspace/context_menu.cljs:441 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.add-flex" msgstr "Pievienot elastīgo izkārtojumu" -#: src/app/main/ui/workspace/context_menu.cljs:445 msgid "workspace.shape.menu.add-grid" msgstr "Pievienot režģa izkārtojumu" -#: src/app/main/ui/workspace/context_menu.cljs:193 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.back" msgstr "Sūtīt atpakaļ" -#: src/app/main/ui/workspace/context_menu.cljs:190 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.backward" msgstr "Sūtīt uz aizmuguri" -#: src/app/main/ui/workspace/context_menu.cljs:139 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.copy" msgstr "Kopēt" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:427 msgid "workspace.shape.menu.create-annotation" msgstr "Izveidot piezīmi" -#: src/app/main/ui/workspace/context_menu.cljs:275 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.create-artboard-from-selection" msgstr "Atlase uz plātni" -#: src/app/main/ui/workspace/context_menu.cljs:465 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.create-component" msgstr "Izveidot sastāvdaļu" -#: src/app/main/ui/workspace/context_menu.cljs:469 msgid "workspace.shape.menu.create-multiple-components" msgstr "Izveidot vairākas sastāvdaļas" -#: src/app/main/ui/workspace/context_menu.cljs:142 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.cut" msgstr "Izgriezt" -#: src/app/main/ui/workspace/context_menu.cljs:486 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.delete" msgstr "Dzēst" -#: src/app/main/ui/workspace/context_menu.cljs:391 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.delete-flow-start" msgstr "Izdzēst plūsmas sākumu" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:432 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.detach-instance" msgstr "Atvienot instanci" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:431 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.detach-instances-in-bulk" msgstr "Atvienot instances" -#: src/app/main/ui/workspace/context_menu.cljs:335, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:75 msgid "workspace.shape.menu.difference" msgstr "Starpība" -#: src/app/main/ui/workspace/context_menu.cljs:148 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.duplicate" msgstr "Divkāršot" -#: src/app/main/ui/workspace/context_menu.cljs:321 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.edit" msgstr "Labot" -#: src/app/main/ui/workspace/context_menu.cljs:341 msgid "workspace.shape.menu.exclude" msgstr "Izslēgt" -#: src/app/main/ui/workspace/context_menu.cljs:348, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:89 msgid "workspace.shape.menu.flatten" msgstr "Izklāt" -#: src/app/main/ui/workspace/context_menu.cljs:208 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.flip-horizontal" msgstr "Apvērst līmeniski" -#: src/app/main/ui/workspace/context_menu.cljs:204 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.flip-vertical" msgstr "Apvērst stateniski" -#: src/app/main/ui/workspace/context_menu.cljs:394 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.flow-start" msgstr "Plūsmas sākums" -#: src/app/main/ui/workspace/context_menu.cljs:184 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.forward" msgstr "Virzīt uz priekšu" -#: src/app/main/ui/workspace/context_menu.cljs:187 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.front" msgstr "Virzīt priekšā" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.go-main" msgstr "Doties uz galvenās sastāvdaļas datni" -#: src/app/main/ui/workspace/context_menu.cljs:261 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.group" msgstr "Kopa" -#: src/app/main/ui/workspace/context_menu.cljs:363, src/app/main/ui/workspace/sidebar/layer_item.cljs:145 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.hide" msgstr "Slēpt" -#: src/app/main/ui/workspace/context_menu.cljs:548, src/app/main/ui/workspace/main_menu.cljs:408 msgid "workspace.shape.menu.hide-ui" msgstr "Rādīt/paslēpt UI" -#: src/app/main/ui/workspace/context_menu.cljs:338 msgid "workspace.shape.menu.intersection" msgstr "Šķēlums" -#: src/app/main/ui/workspace/context_menu.cljs:371, src/app/main/ui/workspace/sidebar/layer_item.cljs:153 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.lock" msgstr "Slēgt" -#: src/app/main/ui/workspace/context_menu.cljs:266 +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.mask" msgstr "Maska" -#: src/app/main/ui/workspace/context_menu.cljs:145, src/app/main/ui/workspace/context_menu.cljs:545 +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.paste" msgstr "Ielīmēt" -#: src/app/main/ui/workspace/context_menu.cljs:331 msgid "workspace.shape.menu.path" msgstr "Ceļš" -#: src/app/main/ui/workspace/context_menu.cljs:432 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.remove-flex" msgstr "Noņemt elastīgo izkārtojumu" -#: src/app/main/ui/workspace/context_menu.cljs:435 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.remove-grid" msgstr "Noņemt režģa izkārtojumu" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:436 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.reset-overrides" msgstr "Atiestatīt aizvietojumus" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:439 msgid "workspace.shape.menu.restore-main" msgstr "Atjaunot galveno sastāvdaļu" -#: src/app/main/ui/workspace/context_menu.cljs:174 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.select-layer" msgstr "Atlasīt slāni" -#: src/app/main/ui/workspace/context_menu.cljs:360, src/app/main/ui/workspace/sidebar/layer_item.cljs:144 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.show" msgstr "Pāradīt" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:424 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.show-in-assets" msgstr "Rādīt līdzekļu panelī" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:442, src/app/main/ui/workspace/sidebar/assets/components.cljs:586 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.show-main" msgstr "Rādīt galveno sastāvdaļu" -#: src/app/main/ui/workspace/context_menu.cljs:221 msgid "workspace.shape.menu.thumbnail-remove" msgstr "Noņemt sīktēlu" -#: src/app/main/ui/workspace/context_menu.cljs:223 msgid "workspace.shape.menu.thumbnail-set" msgstr "Iestatīt kā sīktēlu" -#: src/app/main/ui/workspace/context_menu.cljs:326 msgid "workspace.shape.menu.transform-to-path" msgstr "Transformēt par ceļu" -#: src/app/main/ui/workspace/context_menu.cljs:257 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.ungroup" msgstr "Atapkopot" -#: src/app/main/ui/workspace/context_menu.cljs:332, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:70 msgid "workspace.shape.menu.union" msgstr "Apvienot" -#: src/app/main/ui/workspace/context_menu.cljs:368, src/app/main/ui/workspace/sidebar/layer_item.cljs:152 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.unlock" msgstr "Atslēgt" -#: src/app/main/ui/workspace/context_menu.cljs:271 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.unmask" msgstr "Noņemt masku" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.update-components-in-bulk" msgstr "Atjaunināt galvenās sastāvdaļas" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:445 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.update-main" msgstr "Atjaunināt galveno sastāvdaļu" -#: src/app/main/ui/components/tab_container.cljs:50 msgid "workspace.sidebar.collapse" msgstr "Sakļaut sānjoslu" -#: src/app/main/ui/workspace/sidebar/collapsable_button.cljs:26 msgid "workspace.sidebar.expand" msgstr "Izvērst sānjoslu" -#: src/app/main/ui/workspace/right_header.cljs:231, src/app/main/ui/workspace/right_header.cljs:232 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.sidebar.history" msgstr "Vēsture (%s)" -#: src/app/main/ui/workspace/sidebar/layers.cljs:522, src/app/main/ui/workspace/sidebar.cljs:100 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.sidebar.layers" msgstr "Slāņi" -#: src/app/main/ui/workspace/sidebar/layers.cljs:308, src/app/main/ui/workspace/sidebar/layers.cljs:380 msgid "workspace.sidebar.layers.components" msgstr "Sastāvdaļas" -#: src/app/main/ui/workspace/sidebar/layers.cljs:305, src/app/main/ui/workspace/sidebar/layers.cljs:338 msgid "workspace.sidebar.layers.frames" msgstr "Plātnes" -#: src/app/main/ui/workspace/sidebar/layers.cljs:306, src/app/main/ui/workspace/sidebar/layers.cljs:352 msgid "workspace.sidebar.layers.groups" msgstr "Kopas" -#: src/app/main/ui/workspace/sidebar/layers.cljs:310, src/app/main/ui/workspace/sidebar/layers.cljs:408 msgid "workspace.sidebar.layers.images" msgstr "Attēli" -#: src/app/main/ui/workspace/sidebar/layers.cljs:307, src/app/main/ui/workspace/sidebar/layers.cljs:366 msgid "workspace.sidebar.layers.masks" msgstr "Maskas" -#: src/app/main/ui/workspace/sidebar/layers.cljs:289 msgid "workspace.sidebar.layers.search" msgstr "Meklēt slāņus" -#: src/app/main/ui/workspace/sidebar/layers.cljs:311, src/app/main/ui/workspace/sidebar/layers.cljs:422 msgid "workspace.sidebar.layers.shapes" msgstr "Formas" -#: src/app/main/ui/workspace/sidebar/layers.cljs:309, src/app/main/ui/workspace/sidebar/layers.cljs:394 msgid "workspace.sidebar.layers.texts" msgstr "Teksti" -#: src/app/main/ui/viewer/inspect/attributes/svg.cljs:56, src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs:91 +#: src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs, +#: src/app/main/ui/inspect/attributes/svg.cljs msgid "workspace.sidebar.options.svg-attrs.title" msgstr "Ievietotie SVG atribūti" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs:217 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs msgid "workspace.sidebar.sitemap" msgstr "Lapas" -#: src/app/main/ui/workspace/left_header.cljs:91 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.sitemap" msgstr "Vietnes karte" -#: src/app/main/ui/workspace/sidebar.cljs:120 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.assets" msgstr "Līdzekļi" -#: src/app/main/ui/workspace/palette.cljs:165, src/app/main/ui/workspace/palette.cljs:166 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.color-palette" msgstr "Krāsu palete (%s)" -#: src/app/main/ui/workspace/right_header.cljs:220, src/app/main/ui/workspace/right_header.cljs:221 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.comments" msgstr "Komentāri (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:180, src/app/main/ui/workspace/top_toolbar.cljs:181 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.curve" msgstr "Līkne (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:160, src/app/main/ui/workspace/top_toolbar.cljs:161 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.ellipse" msgstr "Elipse (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:142, src/app/main/ui/workspace/top_toolbar.cljs:143 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.frame" msgstr "Plātne (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:59, src/app/main/ui/workspace/top_toolbar.cljs:60 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.image" msgstr "Attēls (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:132, src/app/main/ui/workspace/top_toolbar.cljs:133 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.move" msgstr "Pārvietot (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:189, src/app/main/ui/workspace/top_toolbar.cljs:190 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.path" msgstr "Ceļš (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:151, src/app/main/ui/workspace/top_toolbar.cljs:152 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.rect" msgstr "Taisnstūris (%s)" #: src/app/main/ui/workspace/left_toolbar.cljs -#, unused msgid "workspace.toolbar.shortcuts" msgstr "Saīsnes (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:169, src/app/main/ui/workspace/top_toolbar.cljs:170 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.text" msgstr "Teksts (%s)" -#: src/app/main/ui/workspace/palette.cljs:173, src/app/main/ui/workspace/palette.cljs:174 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.text-palette" msgstr "Burtu stili un veidi (%s)" -#: src/app/main/ui/workspace/viewport/top_bar.cljs:38 msgid "workspace.top-bar.read-only.done" msgstr "Darīts" -#: src/app/main/ui/workspace/viewport/top_bar.cljs:35 #, markdown msgid "workspace.top-bar.view-only" msgstr "**Apskata kodu** (tikai skatīšana)" -#: src/app/main/ui/workspace/sidebar/history.cljs:342 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.empty" msgstr "Līdz šim nav notikušas nekādas vēsturiskās izmaiņas" -#: src/app/main/ui/workspace/sidebar/history.cljs:147 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.entry.delete" msgstr "Dzēsts %s" -#: src/app/main/ui/workspace/sidebar/history.cljs:146 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.entry.modify" msgstr "Modificēts %s" -#: src/app/main/ui/workspace/sidebar/history.cljs:148 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.entry.move" msgstr "Pārvietotie objekti" -#: src/app/main/ui/workspace/sidebar/history.cljs:111 msgid "workspace.undo.entry.multiple.circle" msgstr "apļi" -#: src/app/main/ui/workspace/sidebar/history.cljs:112 msgid "workspace.undo.entry.multiple.color" msgstr "krāsu līdzekļi" -#: src/app/main/ui/workspace/sidebar/history.cljs:113 msgid "workspace.undo.entry.multiple.component" msgstr "sastāvdaļas" -#: src/app/main/ui/workspace/sidebar/history.cljs:114 msgid "workspace.undo.entry.multiple.curve" msgstr "līknes" -#: src/app/main/ui/workspace/sidebar/history.cljs:115 msgid "workspace.undo.entry.multiple.frame" msgstr "plātnes" -#: src/app/main/ui/workspace/sidebar/history.cljs:116 msgid "workspace.undo.entry.multiple.group" msgstr "kopas" -#: src/app/main/ui/workspace/sidebar/history.cljs:117 msgid "workspace.undo.entry.multiple.media" msgstr "grafiskie līdzekļi" -#: src/app/main/ui/workspace/sidebar/history.cljs:118 msgid "workspace.undo.entry.multiple.multiple" msgstr "objekti" -#: src/app/main/ui/workspace/sidebar/history.cljs:119 msgid "workspace.undo.entry.multiple.page" msgstr "lapas" -#: src/app/main/ui/workspace/sidebar/history.cljs:120 msgid "workspace.undo.entry.multiple.path" msgstr "ceļi" -#: src/app/main/ui/workspace/sidebar/history.cljs:121 msgid "workspace.undo.entry.multiple.rect" msgstr "taisnstūri" -#: src/app/main/ui/workspace/sidebar/history.cljs:122 msgid "workspace.undo.entry.multiple.shape" msgstr "formas" -#: src/app/main/ui/workspace/sidebar/history.cljs:123 msgid "workspace.undo.entry.multiple.text" msgstr "teksti" -#: src/app/main/ui/workspace/sidebar/history.cljs:124 msgid "workspace.undo.entry.multiple.typography" msgstr "burtu stilu un veidu līdzekļi" -#: src/app/main/ui/workspace/sidebar/history.cljs:145 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.entry.new" msgstr "Jauns %s" -#: src/app/main/ui/workspace/sidebar/history.cljs:125 msgid "workspace.undo.entry.single.circle" msgstr "aplis" -#: src/app/main/ui/workspace/sidebar/history.cljs:126 msgid "workspace.undo.entry.single.color" msgstr "krāsas līdzeklis" -#: src/app/main/ui/workspace/sidebar/history.cljs:127 msgid "workspace.undo.entry.single.component" msgstr "sastāvdaļa" -#: src/app/main/ui/workspace/sidebar/history.cljs:128 msgid "workspace.undo.entry.single.curve" msgstr "līkne" -#: src/app/main/ui/workspace/sidebar/history.cljs:129 msgid "workspace.undo.entry.single.frame" msgstr "plātne" -#: src/app/main/ui/workspace/sidebar/history.cljs:130 msgid "workspace.undo.entry.single.group" msgstr "kopa" -#: src/app/main/ui/workspace/sidebar/history.cljs:131 msgid "workspace.undo.entry.single.image" msgstr "attēls" -#: src/app/main/ui/workspace/sidebar/history.cljs:132 msgid "workspace.undo.entry.single.media" msgstr "grafiskais līdzeklis" -#: src/app/main/ui/workspace/sidebar/history.cljs:133 msgid "workspace.undo.entry.single.multiple" msgstr "objekts" -#: src/app/main/ui/workspace/sidebar/history.cljs:134 msgid "workspace.undo.entry.single.page" msgstr "lapa" -#: src/app/main/ui/workspace/sidebar/history.cljs:135 msgid "workspace.undo.entry.single.path" msgstr "ceļš" -#: src/app/main/ui/workspace/sidebar/history.cljs:136 msgid "workspace.undo.entry.single.rect" msgstr "taisnstūris" -#: src/app/main/ui/workspace/sidebar/history.cljs:137 msgid "workspace.undo.entry.single.shape" msgstr "forma" -#: src/app/main/ui/workspace/sidebar/history.cljs:138 msgid "workspace.undo.entry.single.text" msgstr "teksts" -#: src/app/main/ui/workspace/sidebar/history.cljs:139 msgid "workspace.undo.entry.single.typography" msgstr "burtu stila un veida līdzeklis" -#: src/app/main/ui/workspace/sidebar/history.cljs:149 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.entry.unknown" msgstr "Darbība ar %s" -#: src/app/main/ui/workspace/sidebar/history.cljs:335 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.title" msgstr "Vēsture" -#: src/app/main/data/workspace/libraries.cljs:1094 +#: src/app/main/data/workspace/libraries.cljs msgid "workspace.updates.dismiss" msgstr "Izlaist" -#: src/app/main/data/workspace/libraries.cljs:1092 +#: src/app/main/data/workspace/libraries.cljs msgid "workspace.updates.more-info" msgstr "Vairāk informācijas" -#: src/app/main/data/workspace/libraries.cljs:1090 +#: src/app/main/data/workspace/libraries.cljs msgid "workspace.updates.there-are-updates" msgstr "Koplietojamajās bibliotēkās ir atjauninājumi" -#: src/app/main/data/workspace/libraries.cljs:1097 +#: src/app/main/data/workspace/libraries.cljs msgid "workspace.updates.update" msgstr "Atjaunināt" -#, unused msgid "workspace.viewport.click-to-close-path" msgstr "Jānoklikšķina, lai aizvērtu ceļu" diff --git a/frontend/translations/ml.po b/frontend/translations/ml.po index c0b56ab74b..f67e468d90 100644 --- a/frontend/translations/ml.po +++ b/frontend/translations/ml.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "PO-Revision-Date: 2024-06-17 08:07+0000\n" "Last-Translator: Anonymous \n" -"Language-Team: Malayalam " -"\n" +"Language-Team: Malayalam \n" "Language: ml\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" @@ -11,207 +11,198 @@ msgstr "" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 5.6-dev\n" -#: src/app/main/ui/auth/register.cljs:151, src/app/main/ui/viewer/login.cljs:104 +#: src/app/main/ui/auth/register.cljs msgid "auth.already-have-account" msgstr "നിലവിൽ അക്കൗണ്ടുണ്ടോ?" -#: src/app/main/ui/auth/register.cljs:299 +#: src/app/main/ui/auth/register.cljs msgid "auth.check-your-email" msgstr "" "പെൻപോട്ട് ഉപയോഗിക്കാനും സാധൂകരിക്കാനും നിങ്ങളുടെ ഇമെയിൽ പരിശോധിച്ച് അതിലെ " "കണ്ണിയിൽ ക്ലിക്ക് ചെയ്യുക." -#: src/app/main/ui/auth/recovery.cljs:78 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.confirm-password" msgstr "പാസ്‌വേഡ് സ്ഥിരീകരിക്കുക" -#: src/app/main/ui/auth/register.cljs:163 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.create-demo-account" msgstr "ഡെമോ അക്കൗണ്ട് സൃഷ്ടിക്കുക" #: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs -#, unused msgid "auth.create-demo-profile" msgstr "ഒന്നുപയോഗിച്ച് നോക്കുന്നോ?" -#: src/app/main/ui/auth/login.cljs:43 +#: src/app/main/ui/auth/register.cljs msgid "auth.demo-warning" msgstr "" "ഇതൊരു ഡെമോ സേവനമാണ്, ഒരു യഥാർത്ഥ ജോലിക്ക് ഉപയോഗിക്കരുത്, പ്രൊജക്റ്റുകൾ " "നിശ്ചിതസമയങ്ങളിൽ മായ്ക്കപ്പെടും." -#: src/app/main/ui/auth/login.cljs:189, src/app/main/ui/viewer/login.cljs:90 +#: src/app/main/ui/auth/login.cljs msgid "auth.forgot-password" msgstr "പാസ്‌വേഡ് മറന്നോ?" -#: src/app/main/ui/auth/register.cljs:254 +#: src/app/main/ui/auth/register.cljs msgid "auth.fullname" msgstr "മുഴുവൻ പേര്" -#: src/app/main/ui/auth/register.cljs:155, src/app/main/ui/viewer/login.cljs:107 +#: src/app/main/ui/auth/register.cljs +#, fuzzy msgid "auth.login-here" msgstr "ഇവിടെ ലോഗിൻ ചെയ്യുക" -#: src/app/main/ui/auth/login.cljs:195 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-submit" msgstr "ലോഗിൻ" -#: src/app/main/ui/auth/login.cljs:222 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-github-submit" msgstr "ഗിറ്റ്ഹബ്ബ്" -#: src/app/main/ui/auth/login.cljs:228 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-gitlab-submit" msgstr "ഗിറ്റ്ലാബ്" -#: src/app/main/ui/auth/login.cljs:216 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-google-submit" msgstr "ഗൂഗിൾ" -#: src/app/main/ui/auth/login.cljs:201 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-ldap-submit" msgstr "LDAP" -#: src/app/main/ui/auth/login.cljs:234, src/app/main/ui/auth/login.cljs:255 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-oidc-submit" msgstr "ഓപ്പൺഐഡി" -#: src/app/main/ui/auth/recovery.cljs:71 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.new-password" msgstr "പുതിയൊരു പാസ്‌വേഡ് ചേർക്കുക" -#: src/app/main/ui/auth/recovery.cljs:42 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.notifications.invalid-token-error" msgstr "റിക്കവറി ടോക്കൺ അസാധുവാണ്." -#: src/app/main/ui/auth/recovery.cljs:46 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.notifications.password-changed-successfully" msgstr "പാസ്‌വേഡ് വിജയകരമായി മാറ്റി" -#: src/app/main/ui/auth/recovery_request.cljs:57 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.notifications.profile-not-verified" msgstr "പ്രൊഫൈൽ സാധൂകരിച്ചിട്ടില്ല, തുടരുന്നതിന് മുൻപ് ദയവായി സാധൂകരിക്കുക." -#: src/app/main/ui/auth/recovery_request.cljs:40 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.notifications.recovery-token-sent" msgstr "പാസ്‌വേഡ് വീണ്ടെടുപ്പ് കണ്ണി നിങ്ങളുടെ ഇൻബോക്സിലേക്ക് അയച്ചിട്ടുണ്ട്." -#: src/app/main/ui/auth/verify_token.cljs:47 +#: src/app/main/ui/auth/verify_token.cljs msgid "auth.notifications.team-invitation-accepted" msgstr "വിജയകരമായി സംഘത്തിൽ ചേർന്നു" -#: src/app/main/ui/auth/login.cljs:179, src/app/main/ui/auth/register.cljs:115 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.password" msgstr "പാസ്‌വേഡ്" -#: src/app/main/ui/auth/register.cljs:114 +#: src/app/main/ui/auth/register.cljs msgid "auth.password-length-hint" msgstr "കുറഞ്ഞത് 8 ക്യാരക്റ്ററുകൾ" -#: src/app/main/ui/auth.cljs:41 msgid "auth.privacy-policy" msgstr "സ്വകാര്യതാനയം" -#: src/app/main/ui/auth/recovery_request.cljs:88 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-submit" msgstr "പാസ്‌വേഡ് വീണ്ടെടുക്കുക" -#: src/app/main/ui/auth/recovery_request.cljs:101 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-subtitle" msgstr "നിർദ്ദേശങ്ങളടങ്ങിയ ഒരു ഇമെയിൽ ഞങ്ങൾ നിങ്ങൾക്ക് അയയ്ക്കും" -#: src/app/main/ui/auth/recovery_request.cljs:100 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-title" msgstr "പാസ്‌വേഡ് മറന്നോ?" -#: src/app/main/ui/auth/recovery.cljs:82 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.recovery-submit" msgstr "പാസ്‌വേഡ് മാറ്റുക" -#: src/app/main/ui/auth/login.cljs:298, src/app/main/ui/viewer/login.cljs:93 +#: src/app/main/ui/auth/login.cljs msgid "auth.register" msgstr "ഇതുവരെ അക്കൗണ്ട് ഇല്ലേ?" -#: src/app/main/ui/auth/login.cljs:302, src/app/main/ui/auth/register.cljs:121, src/app/main/ui/auth/register.cljs:263, src/app/main/ui/viewer/login.cljs:97 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.register-submit" msgstr "അക്കൗണ്ട് സൃഷ്ടിക്കുക" -#: src/app/main/ui/auth/register.cljs:140 +#: src/app/main/ui/auth/register.cljs msgid "auth.register-title" msgstr "അക്കൗണ്ട് സൃഷ്ടിക്കുക" #: src/app/main/ui/auth.cljs -#, unused msgid "auth.sidebar-tagline" msgstr "ഡിസൈനിങിനും പ്രോട്ടോടൈപ്പിങിനുമുള്ള ഓപ്പൺ സോഴ്സ് പ്രതിവിധി." -#: src/app/main/ui/auth.cljs:33, src/app/main/ui/dashboard/sidebar.cljs:1022, src/app/main/ui/workspace/main_menu.cljs:150 msgid "auth.terms-of-service" msgstr "ഉപയോഗനിബന്ധനകൾ" -#: src/app/main/ui/auth/register.cljs:297 +#: src/app/main/ui/auth/register.cljs msgid "auth.verification-email-sent" msgstr "സാധൂകരിക്കാനുള്ള ഇമെയിൽ ഞങ്ങൾ അയച്ചിരിക്കുന്നു" -#: src/app/main/ui/viewer/share_link.cljs:198 msgid "common.share-link.confirm-deletion-link-description" msgstr "" "ഈ കണ്ണി നീക്കം ചെയ്യണമെന്നത് നിങ്ങൾക്ക് തീർച്ചയാണോ? നിങ്ങളത് ചെയ്താൽ, അത് " "ആർക്കും ലഭ്യമല്ലാതാകും" -#: src/app/main/ui/viewer/share_link.cljs:221 msgid "common.share-link.get-link" msgstr "കണ്ണി നേടുക" -#: src/app/main/ui/viewer/share_link.cljs:139 msgid "common.share-link.link-copied-success" msgstr "കണ്ണി വിജയകരമായി പകർത്തി" -#: src/app/main/ui/viewer/share_link.cljs:193 msgid "common.share-link.permissions-hint" msgstr "കണ്ണിയുള്ള ആർക്കും പ്രാപ്യമാകും" -#: src/app/main/ui/viewer/share_link.cljs:183 msgid "common.share-link.placeholder" msgstr "പങ്കുവെക്കാവുന്ന കണ്ണി ഇവിടെ ലഭ്യമാകും" -#: src/app/main/ui/viewer/share_link.cljs:171 msgid "common.share-link.title" msgstr "പ്രോട്ടോടൈപ്പുകൾ പങ്കുവെയ്ക്കുക" -#: src/app/main/ui/dashboard/file_menu.cljs:291, src/app/main/ui/workspace/main_menu.cljs:572 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.add-shared" msgstr "പങ്കിട്ട ലൈബ്രറിയായി ചേർക്കുക" -#: src/app/main/ui/settings/profile.cljs:75 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.change-email" msgstr "ഇമെയിൽ മാറ്റുക" -#: src/app/main/data/dashboard.cljs:762, src/app/main/data/dashboard.cljs:983 +#: src/app/main/data/dashboard.cljs, src/app/main/data/dashboard.cljs msgid "dashboard.copy-suffix" msgstr "(പകർത്തുക)" -#: src/app/main/ui/dashboard/sidebar.cljs:338 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.create-new-team" msgstr "പുതിയ സംഘം രൂപീകരിക്കുക" -#: src/app/main/ui/components/context_menu_a11y.cljs:256, src/app/main/ui/dashboard/sidebar.cljs:646 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.default-team-name" msgstr "നിങ്ങളുടെ പെൻപോട്ട്" -#: src/app/main/ui/dashboard/sidebar.cljs:571 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.delete-team" msgstr "സംഘത്തെ നീക്കുക" -#: src/app/main/ui/dashboard/file_menu.cljs:276, src/app/main/ui/dashboard/project_menu.cljs:90 +#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.duplicate" msgstr "പകർപ്പ്" -#: src/app/main/ui/dashboard/file_menu.cljs:240 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.duplicate-multi" msgstr "%s ഫയലുകളുടെ പകർപ്പ്" -#: src/app/main/ui/dashboard/placeholder.cljs:32 +#: src/app/main/ui/dashboard/grid.cljs #, markdown msgid "dashboard.empty-placeholder-drafts" msgstr "" @@ -219,22 +210,19 @@ msgstr "" "പരീക്ഷിക്കണമെന്നുണ്ടെങ്കിൽ [ലൈബ്രറികളുടെയും ടെമ്പ്ലേറ്റുകളുടെയും " "വിഭാഗത്തിലേക്ക്] (https://penpot.app/libraries-templates) പോകാവുന്നതാണ്" -#: src/app/main/ui/workspace/main_menu.cljs:605 msgid "dashboard.export-frames" msgstr "ആർട്ട്ബോർഡുകൾ പിഡിഎഫായി എക്സ്പോർട്ട് ചെയ്യുക" -#: src/app/main/ui/export.cljs:201 +#: src/app/main/ui/export.cljs msgid "dashboard.export-frames.title" msgstr "പിഡിഎഫായി എക്സ്പോർട്ട് ചെയ്യുക" -#, unused msgid "dashboard.export-multi" msgstr "പെൻപോട്ട് %s ഫയലുകൾ എക്സ്പോർട്ട് ചെയ്യുക" -#: src/app/main/ui/workspace/main_menu.cljs:578 +#: src/app/main/ui/workspace/header.cljs msgid "dashboard.export-shapes" msgstr "എക്സ്പോർട്ട്" -#: src/app/main/ui/export.cljs:427 msgid "dashboard.export.detail" msgstr "* ഘടകങ്ങൾ, ഗ്രാഫിക്സ്, നിറങ്ങൾ അല്ലെങ്കിൽ മുദ്രണകലകൾ എന്നിവ ഉൾപ്പെടാം." diff --git a/frontend/translations/ms.po b/frontend/translations/ms.po index 36e9273f6a..3e07cb73f4 100644 --- a/frontend/translations/ms.po +++ b/frontend/translations/ms.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "PO-Revision-Date: 2024-06-17 08:07+0000\n" "Last-Translator: Anonymous \n" -"Language-Team: Malay " -"\n" +"Language-Team: Malay \n" "Language: ms\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" @@ -11,394 +11,363 @@ msgstr "" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Weblate 5.6-dev\n" -#: src/app/main/ui/auth/register.cljs:163 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.create-demo-account" msgstr "Cipta akaun demo" #: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs -#, unused msgid "auth.create-demo-profile" msgstr "Hanya ingin mencubanya?" -#: src/app/main/ui/auth/login.cljs:43 +#: src/app/main/ui/auth/register.cljs msgid "auth.demo-warning" msgstr "" "Ini adalah perkhidmatan DEMO, JANGAN GUNAKAN untuk kerja sebenar, projek " "akan dipadam secara berkala." -#: src/app/main/ui/auth/login.cljs:189, src/app/main/ui/viewer/login.cljs:90 +#: src/app/main/ui/auth/login.cljs msgid "auth.forgot-password" msgstr "Lupa kata laluan?" -#: src/app/main/ui/auth/register.cljs:254 +#: src/app/main/ui/auth/register.cljs msgid "auth.fullname" msgstr "Nama penuh" -#: src/app/main/ui/auth/register.cljs:155, src/app/main/ui/viewer/login.cljs:107 +#: src/app/main/ui/auth/register.cljs +#, fuzzy msgid "auth.login-here" msgstr "Log masuk disini" -#: src/app/main/ui/auth/login.cljs:195 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-submit" msgstr "Log masuk" -#: src/app/main/ui/auth/login.cljs:222 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-github-submit" msgstr "Github" -#: src/app/main/ui/auth/login.cljs:228 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-gitlab-submit" msgstr "GitLab" -#: src/app/main/ui/auth/login.cljs:216 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-google-submit" msgstr "Google" -#: src/app/main/ui/auth/login.cljs:201 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-ldap-submit" msgstr "LDAP" -#: src/app/main/ui/auth/login.cljs:234, src/app/main/ui/auth/login.cljs:255 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-oidc-submit" msgstr "OpenID Connect" -#: src/app/main/ui/auth/register.cljs:217, src/app/main/ui/dashboard/team_form.cljs:76, src/app/main/ui/onboarding/team_choice.cljs:180, src/app/main/ui/settings/access_tokens.cljs:66, src/app/main/ui/settings/feedback.cljs:34, src/app/main/ui/settings/profile.cljs:45, src/app/main/ui/workspace/sidebar/assets/groups.cljs:108 +#: src/app/main/ui/settings/team-form.cljs, src/app/main/ui/auth/register.cljs, src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/onboarding/team_choice.cljs, src/app/main/ui/settings/access_tokens.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/settings/profile.cljs, src/app/main/ui/workspace/sidebar/assets.cljs msgid "auth.name.not-all-space" msgstr "Nama mesti mengandungi beberapa aksara selain ruang." -#: src/app/main/ui/auth/register.cljs:218, src/app/main/ui/dashboard/team_form.cljs:77, src/app/main/ui/onboarding/team_choice.cljs:181, src/app/main/ui/settings/access_tokens.cljs:67, src/app/main/ui/settings/feedback.cljs:33, src/app/main/ui/settings/profile.cljs:44, src/app/main/ui/workspace/sidebar/assets/groups.cljs:109 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/onboarding/team_choice.cljs, src/app/main/ui/settings/access_tokens.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/settings/profile.cljs, src/app/main/ui/workspace/sidebar/assets.cljs msgid "auth.name.too-long" msgstr "Nama mesti mengandungi paling banyak 250 aksara." -#: src/app/main/ui/auth/recovery.cljs:71 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.new-password" msgstr "Taip kata laluan baharu" -#: src/app/main/ui/auth/recovery.cljs:42 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.notifications.invalid-token-error" msgstr "Token pemulihan adalah tidak sah." -#: src/app/main/ui/auth/recovery.cljs:46 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.notifications.password-changed-successfully" msgstr "Kata laluan berjaya ditukar" -#: src/app/main/ui/auth/recovery_request.cljs:57 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.notifications.profile-not-verified" msgstr "Profil tidak disahkan, sila sahkan profil sebelum meneruskan." -#: src/app/main/ui/auth/recovery_request.cljs:40 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.notifications.recovery-token-sent" msgstr "Pautan pemulihan kata laluan dihantar ke peti masuk anda." -#: src/app/main/ui/auth/verify_token.cljs:47 +#: src/app/main/ui/auth/verify_token.cljs msgid "auth.notifications.team-invitation-accepted" msgstr "Berjaya menyertai pasukan" -#: src/app/main/ui/auth/login.cljs:179, src/app/main/ui/auth/register.cljs:115 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.password" msgstr "Kata laluan" -#: src/app/main/ui/auth/register.cljs:114 +#: src/app/main/ui/auth/register.cljs msgid "auth.password-length-hint" msgstr "Sekurang-kurangnya 8 aksara" -#: src/app/main/ui/auth/recovery.cljs:61, src/app/main/ui/auth/recovery.cljs:62, src/app/main/ui/auth/register.cljs:81, src/app/main/ui/settings/password.cljs:75, src/app/main/ui/settings/password.cljs:76, src/app/main/ui/settings/password.cljs:77 +#: src/app/main/ui/auth/register.cljs msgid "auth.password-not-empty" msgstr "Kata laluan mesti mengandungi beberapa aksara selain daripada ruang." -#: src/app/main/ui/auth.cljs:41 msgid "auth.privacy-policy" msgstr "Dasar privasi" -#: src/app/main/ui/auth/recovery_request.cljs:88 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-submit" msgstr "Pulihkan Kata Laluan" -#: src/app/main/ui/auth/recovery_request.cljs:101 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-subtitle" msgstr "Kami akan menghantar e-mel kepada anda dengan arahan" -#: src/app/main/ui/auth/recovery_request.cljs:100 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-title" msgstr "Lupa kata laluan?" -#: src/app/main/ui/auth/recovery.cljs:82 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.recovery-submit" msgstr "Tukar kata laluan anda" -#: src/app/main/ui/auth/login.cljs:298, src/app/main/ui/viewer/login.cljs:93 +#: src/app/main/ui/auth/login.cljs msgid "auth.register" msgstr "Tiada akaun lagi?" -#: src/app/main/ui/auth/login.cljs:302, src/app/main/ui/auth/register.cljs:121, src/app/main/ui/auth/register.cljs:263, src/app/main/ui/viewer/login.cljs:97 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.register-submit" msgstr "Cipta akaun" -#: src/app/main/ui/auth/register.cljs:140 +#: src/app/main/ui/auth/register.cljs msgid "auth.register-title" msgstr "Cipta akaun" #: src/app/main/ui/auth.cljs -#, unused msgid "auth.sidebar-tagline" msgstr "Penyelesaian sumber terbuka untuk reka bentuk dan prototaip." -#: src/app/main/ui/auth.cljs:33, src/app/main/ui/dashboard/sidebar.cljs:1022, src/app/main/ui/workspace/main_menu.cljs:150 msgid "auth.terms-of-service" msgstr "Syarat perkhidmatan" -#, unused msgid "auth.terms-privacy-agreement" msgstr "" "Apabila membuat akaun baharu, anda bersetuju menerima syarat perkhidmatan " "dan dasar privasi kami." -#: src/app/main/ui/auth/register.cljs:297 +#: src/app/main/ui/auth/register.cljs msgid "auth.verification-email-sent" msgstr "Kami telah menghantar e-mel pengesahan kepada" #: src/app/main/ui/onboarding/questions.cljs -#, unused msgid "branding-illustrations-marketing-pieces" msgstr "... penjenamaan, ilustrasi, bahagian pemasaran, dll." -#: src/app/main/ui/workspace/libraries.cljs:228 msgid "common.publish" msgstr "Terbitkan" -#: src/app/main/ui/viewer/share_link.cljs:304, src/app/main/ui/viewer/share_link.cljs:314 msgid "common.share-link.all-users" msgstr "Semua pengguna Penpot" -#: src/app/main/ui/viewer/share_link.cljs:198 msgid "common.share-link.confirm-deletion-link-description" msgstr "" "Adakah anda pasti untuk mengalih keluar pautan ini? Jika anda melakukannya, " "ia tidak lagi tersedia untuk sesiapa sahaja" -#: src/app/main/ui/viewer/share_link.cljs:259, src/app/main/ui/viewer/share_link.cljs:289 msgid "common.share-link.current-tag" msgstr "(semasa)" -#: src/app/main/ui/viewer/share_link.cljs:207, src/app/main/ui/viewer/share_link.cljs:214 msgid "common.share-link.destroy-link" msgstr "Musnahkan pautan" -#: src/app/main/ui/viewer/share_link.cljs:221 msgid "common.share-link.get-link" msgstr "Dapatkan pautan" -#: src/app/main/ui/viewer/share_link.cljs:139 msgid "common.share-link.link-copied-success" msgstr "Pautan berjaya disalin" -#: src/app/main/ui/viewer/share_link.cljs:231 msgid "common.share-link.manage-ops" msgstr "Urus kebenaran" -#: src/app/main/ui/viewer/share_link.cljs:277 msgid "common.share-link.page-shared" msgid_plural "common.share-link.page-shared" msgstr[0] "%s halaman dikongsi" -#: src/app/main/ui/viewer/share_link.cljs:298 msgid "common.share-link.permissions-can-comment" msgstr "Boleh komen" -#: src/app/main/ui/viewer/share_link.cljs:308 msgid "common.share-link.permissions-can-inspect" msgstr "Boleh memeriksa kod" -#: src/app/main/ui/viewer/share_link.cljs:193 msgid "common.share-link.permissions-hint" msgstr "Sesiapa yang mempunyai pautan akan mendapat akses" -#: src/app/main/ui/viewer/share_link.cljs:241 msgid "common.share-link.permissions-pages" msgstr "Halaman dikongsi" -#: src/app/main/ui/viewer/share_link.cljs:183 msgid "common.share-link.placeholder" msgstr "Pautan boleh kongsi akan dipaparkan di sini" -#: src/app/main/ui/viewer/share_link.cljs:303, src/app/main/ui/viewer/share_link.cljs:313 msgid "common.share-link.team-members" msgstr "Hanya ahli pasukan" -#: src/app/main/ui/viewer/share_link.cljs:171 msgid "common.share-link.title" msgstr "Kongsi prototaip" -#: src/app/main/ui/viewer/share_link.cljs:269 msgid "common.share-link.view-all" msgstr "Pilih semua" -#: src/app/main/ui/workspace/libraries.cljs:224 msgid "common.unpublish" msgstr "Nyahterbitkan" -#: src/app/main/ui/dashboard/projects.cljs:85 +#: src/app/main/ui/dashboard/projects.cljs msgid "dasboard.team-hero.management" msgstr "Pengurusan pasukan" -#: src/app/main/ui/dashboard/projects.cljs:84 +#: src/app/main/ui/dashboard/projects.cljs msgid "dasboard.team-hero.text" msgstr "" "Penpot dibuat untuk pasukan. Jemput ahli untuk bekerjasama dalam projek dan " "fail" -#: src/app/main/ui/dashboard/projects.cljs:82 +#: src/app/main/ui/dashboard/projects.cljs msgid "dasboard.team-hero.title" msgstr "Berganding bahu!" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.tutorial-hero.info" msgstr "" "Pelajari asas-asas di Penpot sambil berseronok dengan tutorial guna tangan " "ini." #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.tutorial-hero.start" msgstr "Mulakan tutorial" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.tutorial-hero.title" msgstr "Tutorial guna tangan" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.walkthrough-hero.info" msgstr "Terokai Penpot untuk mengetahui lebih lanjut tentang ciri utamanya." #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.walkthrough-hero.start" msgstr "Mulakan jelajah" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.walkthrough-hero.title" msgstr "Panduan Antara Muka" -#: src/app/main/ui/settings/access_tokens.cljs:115 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.copied-success" msgstr "Token disalin" -#: src/app/main/ui/settings/access_tokens.cljs:202 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.create" msgstr "Jana token baru" -#: src/app/main/ui/settings/access_tokens.cljs:76 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.create.success" msgstr "Token capaian berjaya dihasilkan." -#: src/app/main/ui/settings/access_tokens.cljs:300 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.empty.add-one" msgstr "Tekan butang \"Jana token baharu\" untuk menjana token." -#: src/app/main/ui/settings/access_tokens.cljs:299 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.empty.no-access-tokens" msgstr "Anda tidak mempunyai token setakat ini." -#: src/app/main/ui/settings/access_tokens.cljs:53 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.errors-required-name" msgstr "Nama diperlukan" -#: src/app/main/ui/settings/access_tokens.cljs:147 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-180-days" msgstr "180 hari" -#: src/app/main/ui/settings/access_tokens.cljs:144 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-30-days" msgstr "30 hari" -#: src/app/main/ui/settings/access_tokens.cljs:145 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-60-days" msgstr "60 hari" -#: src/app/main/ui/settings/access_tokens.cljs:146 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-90-days" msgstr "90 hari" -#: src/app/main/ui/settings/access_tokens.cljs:143 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-never" msgstr "Tidak pernah" -#: src/app/main/ui/settings/access_tokens.cljs:282 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expired-on" msgstr "Luput pada %s" -#: src/app/main/ui/settings/access_tokens.cljs:283 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expires-on" msgstr "Tamat tempoh pada %s" -#: src/app/main/ui/settings/access_tokens.cljs:281 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.no-expiration" msgstr "Tiada tarikh tamat tempoh" -#: src/app/main/ui/settings/access_tokens.cljs:197 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.personal" msgstr "Token capaian peribadi" -#: src/app/main/ui/settings/access_tokens.cljs:198 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.personal.description" msgstr "" "Token capaian peribadi berfungsi seperti alternatif kepada sistem " "pengesahan log masuk/kata laluan kami dan boleh digunakan untuk membenarkan " "aplikasi mengakses API dalaman Penpot" -#: src/app/main/ui/settings/access_tokens.cljs:154 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.token-will-expire" msgstr "Token akan luput pada %s" -#: src/app/main/ui/settings/access_tokens.cljs:155 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.token-will-not-expire" msgstr "Token tidak mempunyai tarikh luput" -#: src/app/main/ui/dashboard/file_menu.cljs:291, src/app/main/ui/workspace/main_menu.cljs:572 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.add-shared" msgstr "Tambahkan sebagai Perpustakaan kongsi" -#: src/app/main/ui/settings/profile.cljs:75 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.change-email" msgstr "tukar e-mel" -#: src/app/main/data/dashboard.cljs:762, src/app/main/data/dashboard.cljs:983 +#: src/app/main/data/dashboard.cljs, src/app/main/data/dashboard.cljs msgid "dashboard.copy-suffix" msgstr "(salin)" -#: src/app/main/ui/dashboard/sidebar.cljs:338 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.create-new-team" msgstr "Buat pasukan baharu" -#: src/app/main/ui/components/context_menu_a11y.cljs:256, src/app/main/ui/dashboard/sidebar.cljs:646 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.default-team-name" msgstr "Penpot anda" -#: src/app/main/ui/dashboard/sidebar.cljs:571 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.delete-team" msgstr "Padam pasukan" -#: src/app/main/ui/dashboard/file_menu.cljs:296, src/app/main/ui/workspace/main_menu.cljs:589 msgid "dashboard.download-binary-file" msgstr "Muat turun fail Penpot (.penpot)" -#: src/app/main/ui/dashboard/file_menu.cljs:300, src/app/main/ui/workspace/main_menu.cljs:597 msgid "dashboard.download-standard-file" msgstr "Muat turun fail standard (.svg + .json)" -#: src/app/main/ui/dashboard/file_menu.cljs:276, src/app/main/ui/dashboard/project_menu.cljs:90 +#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.duplicate" msgstr "Pendua" -#: src/app/main/ui/dashboard/file_menu.cljs:240 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.duplicate-multi" msgstr "Pendua %s fail" -#: src/app/main/ui/dashboard/placeholder.cljs:32 +#: src/app/main/ui/dashboard/grid.cljs #, markdown msgid "dashboard.empty-placeholder-drafts" msgstr "" @@ -406,114 +375,98 @@ msgstr "" "kongsi fail anda atau tambahkan daripada [Perpustakaan & " "templat](https://penpot.app/libraries-templates) kami." -#: src/app/main/ui/dashboard/file_menu.cljs:249 msgid "dashboard.export-binary-multi" msgstr "Muat turun %s fail Penpot (.penpot)" -#: src/app/main/ui/workspace/main_menu.cljs:605 msgid "dashboard.export-frames" msgstr "Eksport papan sebagai PDF" -#: src/app/main/ui/export.cljs:201 +#: src/app/main/ui/export.cljs msgid "dashboard.export-frames.title" msgstr "Eksport sebagai PDF" -#, unused msgid "dashboard.export-multi" msgstr "Eksport fail Penpot %s" -#: src/app/main/ui/export.cljs:109 +#: src/app/main/ui/export.cljs msgid "dashboard.export-multiple.selected" msgstr "%s daripada %s elemen dipilih" -#: src/app/main/ui/workspace/main_menu.cljs:578 +#: src/app/main/ui/workspace/header.cljs msgid "dashboard.export-shapes" msgstr "Eksport" -#: src/app/main/ui/export.cljs:180 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.how-to" msgstr "" "Anda boleh menambah tetapan eksport ke elemen daripada sifat reka bentuk " "(di bahagian bawah bar sisi kanan)." -#: src/app/main/ui/export.cljs:184 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.how-to-link" msgstr "Maklumat cara untuk menetapkan eksport di Penpot." -#: src/app/main/ui/export.cljs:179 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.no-elements" msgstr "Tiada unsur dengan tetapan eksport." -#: src/app/main/ui/export.cljs:190 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.title" msgstr "Eksport Pemilihan" -#: src/app/main/ui/dashboard/file_menu.cljs:252 msgid "dashboard.export-standard-multi" msgstr "Muat turun %s fail standard (.svg + .json)" -#: src/app/main/ui/export.cljs:427 msgid "dashboard.export.detail" msgstr "* Mungkin termasuk komponen, grafik, warna dan/atau tipografi." -#: src/app/main/ui/export.cljs:426 msgid "dashboard.export.explain" msgstr "" "Satu atau lebih fail yang anda ingin eksport menggunakan perpustakaan " "kongsi. Apa yang anda mahu lakukan dengan aset mereka*?" -#: src/app/main/ui/export.cljs:435 msgid "dashboard.export.options.all.message" msgstr "" "fail dengan perpustakaan kongsi akan disertakan dalam eksport, mengekalkan " "hubungannya." -#: src/app/main/ui/export.cljs:436 msgid "dashboard.export.options.all.title" msgstr "Eksport perpustakaan kongsi" -#: src/app/main/ui/export.cljs:437 msgid "dashboard.export.options.detach.message" msgstr "" "Perpustakaan kongsi tidak akan disertakan dalam eksport dan tiada aset akan " "ditambahkan ke perpustakaan. " -#: src/app/main/ui/export.cljs:438 msgid "dashboard.export.options.detach.title" msgstr "Anggap aset perpustakaan kongsi sebagai objek asas" -#: src/app/main/ui/export.cljs:439 msgid "dashboard.export.options.merge.message" msgstr "" "Fail anda akan dieksport dengan semua aset luaran digabungkan ke dalam " "pustaka fail." -#: src/app/main/ui/export.cljs:440 msgid "dashboard.export.options.merge.title" msgstr "Sertakan aset perpustakaan kongsi dalam pustaka fail" -#: src/app/main/ui/export.cljs:418 msgid "dashboard.export.title" msgstr "Eksport fail" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:309 msgid "dashboard.fonts.deleted-placeholder" msgstr "Fon hilang" -#: src/app/main/ui/dashboard/fonts.cljs:206 +#: src/app/main/ui/dashboard/fonts.cljs msgid "dashboard.fonts.dismiss-all" msgstr "Tolak semua" -#: src/app/main/ui/dashboard/fonts.cljs:436 msgid "dashboard.fonts.empty-placeholder" msgstr "Fon tersuai yang anda muat naik akan dipaparkan di sini." -#: src/app/main/ui/dashboard/fonts.cljs:194 +#: src/app/main/ui/dashboard/fonts.cljs msgid "dashboard.fonts.fonts-added" msgid_plural "dashboard.fonts.fonts-added" msgstr[0] "%s fon ditambah" -#: src/app/main/ui/dashboard/fonts.cljs:170 #, markdown msgid "dashboard.fonts.hero-text1" msgstr "" @@ -523,7 +476,6 @@ msgstr "" "tunggal**. Anda boleh memuat naik fon dengan format berikut: **TTF, OTF dan " "WOFF** (hanya satu sahaja diperlukan)." -#: src/app/main/ui/dashboard/fonts.cljs:182 #, markdown msgid "dashboard.fonts.hero-text2" msgstr "" @@ -533,11 +485,10 @@ msgstr "" "juga mungkin ingin membaca tentang [pelesenan " "fon](https://www.typography.com/faq)." -#: src/app/main/ui/dashboard/fonts.cljs:202 +#: src/app/main/ui/dashboard/fonts.cljs msgid "dashboard.fonts.upload-all" msgstr "Muat naik semua" -#: src/app/main/ui/dashboard/fonts.cljs:187 #, markdown msgid "dashboard.fonts.warning-text" msgstr "" @@ -548,2414 +499,2156 @@ msgstr "" "menggunakan [Transfonter](https://transfonter.org/) untuk menjana fon web " "dan membetulkan ralat. " -#: src/app/main/ui/dashboard/import.cljs:472, src/app/main/ui/dashboard/project_menu.cljs:108 msgid "dashboard.import" msgstr "Import fail Penpot" -#: src/app/main/ui/dashboard/import.cljs:304, src/app/worker/import.cljs:753, src/app/worker/import.cljs:755 msgid "dashboard.import.analyze-error" msgstr "Alamak! Kami tidak dapat mengimport fail ini" -#, unused msgid "dashboard.import.analyze-error.components-v2" msgstr "" "Fail dengan komponen v2 diaktifkan tetapi pasukan ini belum menyokongnya " "lagi." -#: src/app/main/ui/dashboard/import.cljs:308 msgid "dashboard.import.import-error" msgstr "Terdapat masalah mengimport fail. Fail tidak diimport." -#: src/app/main/ui/dashboard/import.cljs:493 msgid "dashboard.import.import-message" msgid_plural "dashboard.import.import-message" msgstr[0] "%s fail telah berjaya diimport." -#: src/app/main/ui/dashboard/import.cljs:481, src/app/main/ui/dashboard/import.cljs:488 msgid "dashboard.import.import-warning" msgstr "Sesetengah fail mengandungi objek tidak sah telah dialih keluar." -#: src/app/main/ui/dashboard/import.cljs:144 msgid "dashboard.import.progress.process-colors" msgstr "memproses warna" -#: src/app/main/ui/dashboard/import.cljs:153 msgid "dashboard.import.progress.process-components" msgstr "Memproses komponen" -#: src/app/main/ui/dashboard/import.cljs:150 msgid "dashboard.import.progress.process-media" msgstr "Memproses media" -#: src/app/main/ui/dashboard/import.cljs:141 msgid "dashboard.import.progress.process-page" msgstr "Memproses halaman: %s" -#: src/app/main/ui/dashboard/import.cljs:147 msgid "dashboard.import.progress.process-typographies" msgstr "Memproses tipografi" -#: src/app/main/ui/dashboard/import.cljs:135 msgid "dashboard.import.progress.upload-data" msgstr "Memuat naik data ke pelayan (%s/%s)" -#: src/app/main/ui/dashboard/import.cljs:138 msgid "dashboard.import.progress.upload-media" msgstr "Memuat naik fail: %s" -#: src/app/main/ui/dashboard/team.cljs:109 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.invite-profile" msgstr "Jemput orang ramai" -#: src/app/main/ui/dashboard/sidebar.cljs:547, src/app/main/ui/dashboard/sidebar.cljs:556, src/app/main/ui/dashboard/sidebar.cljs:563, src/app/main/ui/dashboard/team.cljs:312 +#: src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.leave-team" msgstr "Tinggalkan pasukan" -#: src/app/main/ui/dashboard/templates.cljs:88, src/app/main/ui/dashboard/templates.cljs:163 msgid "dashboard.libraries-and-templates" msgstr "Perpustakaan & Templat" -#: src/app/main/ui/dashboard/templates.cljs:164 msgid "dashboard.libraries-and-templates.explore" msgstr "Terokai lebih banyak daripada mereka dan ketahui cara untuk menyumbang" -#: src/app/main/ui/dashboard/import.cljs:365 msgid "dashboard.libraries-and-templates.import-error" msgstr "Terdapat masalah mengimport templat. Templat tidak diimport." -#: src/app/main/ui/dashboard/libraries.cljs:53 +#: src/app/main/ui/dashboard/libraries.cljs msgid "dashboard.libraries-title" msgstr "Perpustakaan" -#: src/app/main/ui/dashboard/placeholder.cljs:45 +#: src/app/main/ui/dashboard/grid.cljs msgid "dashboard.loading-files" msgstr "memuatkan fail anda…" -#: src/app/main/ui/dashboard/fonts.cljs:431 msgid "dashboard.loading-fonts" msgstr "memuatkan fon anda…" -#: src/app/main/ui/dashboard/file_menu.cljs:281, src/app/main/ui/dashboard/project_menu.cljs:100 +#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.move-to" msgstr "Berpindah ke" -#: src/app/main/ui/dashboard/file_menu.cljs:245 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.move-to-multi" msgstr "Pindahkan fail %s ke" -#: src/app/main/ui/dashboard/file_menu.cljs:226 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.move-to-other-team" msgstr "Pindah ke pasukan lain" -#: src/app/main/ui/dashboard/files.cljs:105, src/app/main/ui/dashboard/projects.cljs:252, src/app/main/ui/dashboard/projects.cljs:253 +#: src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/files.cljs msgid "dashboard.new-file" msgstr "+ Fail Baharu" -#: src/app/main/data/dashboard.cljs:958, src/app/main/data/dashboard.cljs:1181 +#: src/app/main/data/dashboard.cljs msgid "dashboard.new-file-prefix" msgstr "Fail Baharu" -#: src/app/main/ui/dashboard/projects.cljs:55 +#: src/app/main/ui/dashboard/projects.cljs msgid "dashboard.new-project" msgstr "+ Projek baharu" -#: src/app/main/data/dashboard.cljs:726, src/app/main/data/dashboard.cljs:1184 +#: src/app/main/data/dashboard.cljs msgid "dashboard.new-project-prefix" msgstr "Projek Baharu" -#: src/app/main/ui/dashboard/search.cljs:60 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.no-matches-for" msgstr "Tiada padanan ditemui untuk \"%s\"" -#: src/app/main/ui/dashboard/sidebar.cljs:827 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.no-projects-placeholder" msgstr "Projek yang disemat akan muncul di sini" -#: src/app/main/ui/auth/verify_token.cljs:33 +#: src/app/main/ui/auth/verify_token.cljs msgid "dashboard.notifications.email-changed-successfully" msgstr "Alamat e-mel anda telah berjaya dikemas kini" -#: src/app/main/ui/auth/verify_token.cljs:27 +#: src/app/main/ui/auth/verify_token.cljs msgid "dashboard.notifications.email-verified-successfully" msgstr "Alamat e-mel anda telah berjaya disahkan" -#: src/app/main/ui/settings/password.cljs:37 +#: src/app/main/ui/settings/password.cljs msgid "dashboard.notifications.password-saved" msgstr "Kata laluan berjaya disimpan!" -#: src/app/main/ui/dashboard/team.cljs:1081 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.num-of-members" msgstr "%s ahli" -#: src/app/main/ui/dashboard/file_menu.cljs:267 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.open-in-new-tab" msgstr "Buka fail dalam tab baharu" -#: src/app/main/ui/dashboard/files.cljs:117, src/app/main/ui/dashboard/projects.cljs:260, src/app/main/ui/dashboard/projects.cljs:261 msgid "dashboard.options" msgstr "Pilihan" -#: src/app/main/ui/settings/password.cljs:106, src/app/main/ui/settings/password.cljs:119 +#: src/app/main/ui/settings/password.cljs msgid "dashboard.password-change" msgstr "Tukar kata laluan" -#: src/app/main/ui/dashboard/pin_button.cljs:24, src/app/main/ui/dashboard/project_menu.cljs:95 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.pin-unpin" msgstr "Semat/Nyahsemat" -#: src/app/main/ui/dashboard/projects.cljs:51 +#: src/app/main/ui/dashboard/projects.cljs msgid "dashboard.projects-title" msgstr "Projek" -#: src/app/main/ui/settings/profile.cljs:86 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.remove-account" msgstr "Mahu mengalih keluar akaun anda?" #: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused msgid "dashboard.remove-shared" msgstr "Alih keluar sebagai Pustaka Dikongsi" -#: src/app/main/ui/settings/profile.cljs:78 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.save-settings" msgstr "Simpan tetapan" -#: src/app/main/ui/dashboard/sidebar.cljs:246, src/app/main/ui/dashboard/sidebar.cljs:247 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.search-placeholder" msgstr "Cari…" -#: src/app/main/ui/dashboard/search.cljs:55 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.searching-for" msgstr "Mencari \"%s\"…" -#: src/app/main/ui/settings/options.cljs:56 +#: src/app/main/ui/settings/options.cljs msgid "dashboard.select-ui-language" msgstr "Pilih Bahasa UI" -#: src/app/main/ui/settings/options.cljs:63 +#: src/app/main/ui/settings/options.cljs msgid "dashboard.select-ui-theme" msgstr "Pilih tema" -#: src/app/main/ui/dashboard/projects.cljs:282 +#: src/app/main/ui/dashboard/grid.cljs msgid "dashboard.show-all-files" msgstr "Tunjukkan semua fail" -#: src/app/main/ui/dashboard/file_menu.cljs:96 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-delete-file" msgid_plural "dashboard.success-delete-file" msgstr[0] "Fail anda telah berjaya dipadamkan" -#: src/app/main/ui/dashboard/project_menu.cljs:59 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.success-delete-project" msgstr "Projek anda telah berjaya dipadamkan" -#: src/app/main/ui/dashboard/file_menu.cljs:91 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-duplicate-file" msgid_plural "dashboard.success-delete-file" msgstr[0] "Fail anda telah berjaya dibuat pendua" -#: src/app/main/ui/dashboard/project_menu.cljs:33 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.success-duplicate-project" msgstr "Projek anda telah berjaya dibuat pendua" -#: src/app/main/ui/dashboard/file_menu.cljs:130, src/app/main/ui/dashboard/grid.cljs:558, src/app/main/ui/dashboard/sidebar.cljs:152 +#: src/app/main/ui/dashboard/grid.cljs, src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-move-file" msgstr "Fail anda berjaya dialihkan" -#: src/app/main/ui/dashboard/file_menu.cljs:129 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-move-files" msgstr "Fail anda telah berjaya dialihkan" -#: src/app/main/ui/dashboard/project_menu.cljs:54 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.success-move-project" msgstr "Projek anda berjaya dialihkan" -#: src/app/main/ui/dashboard/team.cljs:1052 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.team-info" msgstr "Maklumat pasukan" -#: src/app/main/ui/dashboard/team.cljs:1070 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.team-members" msgstr "Anggota kumpulan" -#: src/app/main/ui/dashboard/team.cljs:1085 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.team-projects" msgstr "Projek pasukan" -#: src/app/main/ui/settings/options.cljs:61 +#: src/app/main/ui/settings/options.cljs msgid "dashboard.theme-change" msgstr "Tema UI" -#: src/app/main/ui/dashboard/search.cljs:42 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.title-search" msgstr "Hasil carian" -#: src/app/main/ui/dashboard/search.cljs:50 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.type-something" msgstr "Taip untuk hasil carian" -#: src/app/main/ui/dashboard/file_menu.cljs:287, src/app/main/ui/workspace/main_menu.cljs:566 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.unpublish-shared" msgstr "Nyahterbit Perpustakaan" -#: src/app/main/ui/settings/options.cljs:71 +#: src/app/main/ui/settings/password.cljs, src/app/main/ui/settings/options.cljs msgid "dashboard.update-settings" msgstr "Kemas kini tetapan" -#: src/app/main/ui/dashboard/team.cljs:861 msgid "dashboard.webhooks.active" msgstr "Adalah aktif" -#: src/app/main/ui/dashboard/team.cljs:862 msgid "dashboard.webhooks.active.explain" msgstr "Apabila cangkuk ini dicetuskan, butiran peristiwa akan dihantar" -#: src/app/main/ui/dashboard/team.cljs:852 msgid "dashboard.webhooks.content-type" msgstr "Jenis kandungan" -#: src/app/main/ui/dashboard/team.cljs:885 msgid "dashboard.webhooks.create" msgstr "Cipta webhook" -#: src/app/main/ui/dashboard/team.cljs:775 msgid "dashboard.webhooks.create.success" msgstr "Webhook berjaya dihasilkan." -#: src/app/main/ui/dashboard/team.cljs:882 msgid "dashboard.webhooks.description" msgstr "" "Webhooks adalah cara mudah untuk membolehkan tapak web dan apl lain " "dimaklumkan apabila acara tertentu berlaku di Penpot. Kami akan menghantar " "permintaan POST ke setiap URL yang anda berikan." -#: src/app/main/ui/dashboard/team.cljs:1005 msgid "dashboard.webhooks.empty.add-one" msgstr "Tekan butang \"Tambah webhook\" untuk menambahnya." -#: src/app/main/ui/dashboard/team.cljs:1004 msgid "dashboard.webhooks.empty.no-webhooks" msgstr "Tiada webhook dibuat setakat ini." -#, unused msgid "dashboard.webhooks.update.success" msgstr "Webhook berjaya dikemas kini." -#: src/app/main/ui/settings.cljs:31 +#: src/app/main/ui/settings.cljs msgid "dashboard.your-account-title" msgstr "Akaun anda" -#: src/app/main/ui/settings/profile.cljs:70 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.your-email" msgstr "E-mel" -#: src/app/main/ui/settings/profile.cljs:62 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.your-name" msgstr "Nama anda" -#: src/app/main/ui/dashboard/file_menu.cljs:38, src/app/main/ui/dashboard/fonts.cljs:33, src/app/main/ui/dashboard/libraries.cljs:42, src/app/main/ui/dashboard/projects.cljs:318, src/app/main/ui/dashboard/search.cljs:30, src/app/main/ui/dashboard/sidebar.cljs:312, src/app/main/ui/dashboard/team.cljs:495, src/app/main/ui/dashboard/team.cljs:729, src/app/main/ui/dashboard/team.cljs:991, src/app/main/ui/dashboard/team.cljs:1038 +#: src/app/main/ui/dashboard/search.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/libraries.cljs, src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.your-penpot" msgstr "Penpot anda" -#: src/app/main/ui/alert.cljs:32 +#: src/app/main/ui/alert.cljs msgid "ds.alert-ok" msgstr "Ok" -#: src/app/main/ui/alert.cljs:31, src/app/main/ui/alert.cljs:34 +#: src/app/main/ui/alert.cljs msgid "ds.alert-title" msgstr "Perhatian" -#: src/app/main/ui/confirm.cljs:83 +#: src/app/main/ui/confirm.cljs msgid "ds.component-subtitle" msgstr "Komponen untuk dikemas kini:" -#: src/app/main/ui/confirm.cljs:36, src/app/main/ui/workspace/plugins.cljs:246 +#: src/app/main/ui/confirm.cljs msgid "ds.confirm-cancel" msgstr "Batal" -#: src/app/main/ui/confirm.cljs:37, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:141 +#: src/app/main/ui/confirm.cljs msgid "ds.confirm-ok" msgstr "Ok" -#: src/app/main/ui/confirm.cljs:35, src/app/main/ui/confirm.cljs:39 +#: src/app/main/ui/confirm.cljs, src/app/main/ui/confirm.cljs msgid "ds.confirm-title" msgstr "Adakah anda pasti?" -#: src/app/main/ui/auth/login.cljs:62 +#: src/app/main/ui/auth/login.cljs msgid "errors.auth-provider-not-configured" msgstr "Pembekal pengesahan tidak dikonfigurasikan." -#: src/app/main/errors.cljs:104 msgid "errors.auth.unable-to-login" msgstr "Nampaknya anda belum disahkan atau sesi telah tamat tempoh." -#: src/app/main/data/fonts.cljs:189 msgid "errors.bad-font" msgstr "Fon %s tidak dapat dimuatkan" -#: src/app/main/data/fonts.cljs:188 msgid "errors.bad-font-plural" msgstr "Fon %s tidak dapat dimuatkan" -#: src/app/main/data/workspace/media.cljs:198 msgid "errors.cannot-upload" msgstr "Tidak boleh memuat naik fail media." -#: src/app/main/data/workspace.cljs:1598 +#: src/app/main/data/workspace.cljs msgid "errors.clipboard-not-implemented" msgstr "Pelayar anda tidak dapat melakukan operasi ini" -#: src/app/main/ui/auth/verify_token.cljs:82, src/app/main/ui/settings/change_email.cljs:46 +#: src/app/main/ui/auth/verify_token.cljs, src/app/main/ui/settings/change_email.cljs msgid "errors.email-already-exists" msgstr "E-mel sudah digunakan" -#: src/app/main/ui/auth/verify_token.cljs:87 +#: src/app/main/ui/auth/verify_token.cljs msgid "errors.email-already-validated" msgstr "E-mel sudah disahkan." -#: src/app/main/ui/settings/password.cljs:28 msgid "errors.email-as-password" msgstr "Anda tidak boleh menggunakan e-mel sebagai kata laluan" -#: src/app/main/ui/auth/recovery_request.cljs:63, src/app/main/ui/dashboard/team.cljs:578, src/app/main/ui/settings/change_email.cljs:54 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/settings/change_email.cljs, src/app/main/ui/dashboard/team.cljs msgid "errors.email-has-permanent-bounces" msgstr "E-mel «%s» mempunyai banyak laporan lantunan kekal." -#: src/app/main/ui/auth/login.cljs:81, src/app/main/ui/auth/recovery_request.cljs:31, src/app/main/ui/auth/register.cljs:43 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs, src/app/main/ui/auth/recovery_request.cljs msgid "errors.email-invalid" msgstr "Sila masukkan e-mel yang sah" -#: src/app/main/ui/settings/change_email.cljs:35 +#: src/app/main/ui/settings/change_email.cljs msgid "errors.email-invalid-confirmation" msgstr "E-mel pengesahan mesti sepadan" -#: src/app/main/ui/dashboard/team.cljs:170 msgid "errors.email-spam-or-permanent-bounces" msgstr "E-mel «%s» telah dilaporkan sebagai spam atau melantun secara kekal." -#: src/app/main/errors.cljs:227 +#: src/app/main/errors.cljs msgid "errors.feature-mismatch" msgstr "" "Nampaknya anda sedang membuka fail yang mendayakan ciri '%s' tetapi versi " "penpot semasa tidak menyokongnya atau menyahdayakannya." -#: src/app/main/errors.cljs:231, src/app/main/errors.cljs:245 +#: src/app/main/errors.cljs msgid "errors.feature-not-supported" msgstr "Ciri '%s' tidak disokong." -#: src/app/main/errors.cljs:223 +#: src/app/main/errors.cljs msgid "errors.file-feature-mismatch" msgstr "" "Nampaknya terdapat ketidakpadanan antara ciri yang didayakan dan ciri fail " "yang anda cuba buka. Migrasi untuk '%s' perlu digunakan sebelum fail boleh " "dibuka." -#: src/app/main/data/users.cljs:709, src/app/main/ui/auth/login.cljs:65, src/app/main/ui/auth/login.cljs:116, src/app/main/ui/auth/register.cljs:69, src/app/main/ui/auth/register.cljs:237, src/app/main/ui/auth/verify_token.cljs:92, src/app/main/ui/dashboard/team.cljs:173, src/app/main/ui/onboarding/team_choice.cljs:95, src/app/main/ui/settings/access_tokens.cljs:91, src/app/main/ui/settings/feedback.cljs:52 +#: src/app/main/ui/auth/verify_token.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/dashboard/team.cljs msgid "errors.generic" msgstr "Sesuatu yang tidak kena telah berlaku." -#: src/app/main/ui/components/color_input.cljs:57 +#: src/app/main/ui/components/color_input.cljs msgid "errors.invalid-color" msgstr "Warna tidak sah" -#: src/app/main/ui/static.cljs:43 +#: src/app/main/ui/auth/verify_token.cljs msgid "errors.invite-invalid" msgstr "Jemputan tidak sah" -#: src/app/main/ui/static.cljs:44 msgid "errors.invite-invalid.info" msgstr "Jemputan ini mungkin dibatalkan atau mungkin tamat tempoh." -#: src/app/main/ui/auth/login.cljs:101 +#: src/app/main/ui/auth/login.cljs msgid "errors.ldap-disabled" msgstr "Pengesahan LDAP dilumpuhkan." -#: src/app/main/errors.cljs:239 +#: src/app/main/errors.cljs msgid "errors.max-quote-reached" msgstr "Anda telah mencapai petikan '%s'. Hubungi sokongan." -#: src/app/main/data/workspace/media.cljs:184 +#: src/app/main/data/workspace/persistence.cljs msgid "errors.media-too-large" msgstr "Imej terlalu besar untuk dimasukkan." -#: src/app/main/data/media.cljs:68, src/app/main/data/workspace/media.cljs:187 +#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs msgid "errors.media-type-mismatch" msgstr "Nampaknya kandungan imej tidak sepadan dengan sambungan fail." -#: src/app/main/data/media.cljs:65, src/app/main/data/workspace/media.cljs:172, src/app/main/data/workspace/media.cljs:175, src/app/main/data/workspace/media.cljs:178, src/app/main/data/workspace/media.cljs:181 +#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/workspace/persistence.cljs, src/app/main/data/workspace/persistence.cljs, src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs msgid "errors.media-type-not-allowed" msgstr "Nampaknya ini bukan imej yang sah." -#: src/app/main/ui/dashboard/team.cljs:574 +#: src/app/main/ui/dashboard/team.cljs msgid "errors.member-is-muted" msgstr "" "Profil yang anda jemput mempunyai e-mel yang diredamkan (laporan spam atau " "lantunan tinggi)." -#: src/app/main/ui/settings/password.cljs:61 +#: src/app/main/ui/settings/password.cljs msgid "errors.password-invalid-confirmation" msgstr "Kata laluan pengesahan mesti sepadan" -#: src/app/main/ui/settings/password.cljs:64 +#: src/app/main/ui/settings/password.cljs msgid "errors.password-too-short" msgstr "Kata laluan hendaklah sekurang-kurangnya 8 aksara" -#: src/app/main/errors.cljs:124 msgid "errors.paste-data-validation" msgstr "Data tidak sah dalam papan klip" -#: src/app/main/data/users.cljs:703, src/app/main/ui/auth/login.cljs:97, src/app/main/ui/auth/login.cljs:105 msgid "errors.profile-blocked" msgstr "Profil disekat" -#: src/app/main/ui/auth/recovery_request.cljs:60, src/app/main/ui/dashboard/team.cljs:164, src/app/main/ui/dashboard/team.cljs:570, src/app/main/ui/settings/change_email.cljs:50 +#: src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/settings/change_email.cljs, src/app/main/ui/dashboard/team.cljs msgid "errors.profile-is-muted" msgstr "" "Profil anda mempunyai e-mel yang diredamkan (laporan spam atau lantunan " "tinggi)." -#: src/app/main/data/users.cljs:701, src/app/main/ui/auth/register.cljs:60 +#: src/app/main/ui/auth/register.cljs msgid "errors.registration-disabled" msgstr "Pendaftaran dilumpuhkan pada masa ini." -#: src/app/main/errors.cljs:218 +#: src/app/main/errors.cljs msgid "errors.team-feature-mismatch" msgstr "Ciri tidak serasi '%s' dikesan" -#: src/app/main/ui/dashboard/sidebar.cljs:365, src/app/main/ui/dashboard/team.cljs:359 msgid "errors.team-leave.insufficient-members" msgstr "" "Ahli tidak mencukupi untuk meninggalkan pasukan, anda mungkin mahu " "memadamkannya." -#: src/app/main/ui/dashboard/sidebar.cljs:368, src/app/main/ui/dashboard/team.cljs:362 msgid "errors.team-leave.member-does-not-exists" msgstr "Ahli yang anda cuba tetapkan tidak wujud." -#: src/app/main/ui/dashboard/sidebar.cljs:371, src/app/main/ui/dashboard/team.cljs:365 msgid "errors.team-leave.owner-cant-leave" msgstr "" "Pemilik tidak boleh meninggalkan pasukan, anda mesti menetapkan semula " "peranan pemilik." -#: src/app/main/data/media.cljs:71 +#: src/app/main/data/media.cljs, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs msgid "errors.unexpected-error" msgstr "Ralat yang tidak dijangka berlaku." -#: src/app/main/ui/auth/verify_token.cljs:60 +#: src/app/main/ui/auth/verify_token.cljs msgid "errors.unexpected-token" msgstr "Token tidak diketahui" -#, unused msgid "errors.validation" msgstr "Ralat Pengesahan" -#: src/app/main/errors.cljs:235 +#: src/app/main/errors.cljs msgid "errors.version-not-supported" msgstr "Fail mempunyai nombor versi yang tidak serasi" -#: src/app/main/ui/dashboard/team.cljs:796 msgid "errors.webhooks.connection" msgstr "Ralat sambungan, URL tidak dapat dicapai" -#: src/app/main/ui/dashboard/team.cljs:790 msgid "errors.webhooks.invalid-uri" msgstr "URL tidak lulus pengesahan." -#: src/app/main/ui/dashboard/team.cljs:949 +#, fuzzy msgid "errors.webhooks.last-delivery" msgstr "Penghantaran terakhir tidak berjaya." -#: src/app/main/ui/dashboard/team.cljs:792, src/app/main/ui/dashboard/team.cljs:952 msgid "errors.webhooks.ssl-validation" msgstr "Ralat pada pengesahan SSL." -#: src/app/main/ui/dashboard/team.cljs:794 msgid "errors.webhooks.timeout" msgstr "Masa tamat" -#: src/app/main/ui/dashboard/team.cljs:788 msgid "errors.webhooks.unexpected" msgstr "Ralat yang tidak dijangka semasa mengesahkan" -#: src/app/main/ui/dashboard/team.cljs:798, src/app/main/ui/dashboard/team.cljs:955 msgid "errors.webhooks.unexpected-status" msgstr "Status tidak dijangka %s" -#: src/app/main/ui/auth/login.cljs:109, src/app/main/ui/auth/login.cljs:113 +#: src/app/main/ui/auth/login.cljs msgid "errors.wrong-credentials" msgstr "E-mel atau kata laluan tidak betul." -#: src/app/main/ui/settings/password.cljs:25 +#: src/app/main/ui/settings/password.cljs msgid "errors.wrong-old-password" msgstr "Kata laluan lama tidak betul" -#: src/app/main/ui/settings/feedback.cljs:77 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.description" msgstr "Penerangan" -#: src/app/main/ui/settings/feedback.cljs:95 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.discourse-go-to" msgstr "Pergi ke forum Penpot" -#: src/app/main/ui/settings/feedback.cljs:89 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.discourse-subtitle1" msgstr "" "Kami berbesar hati anda berada disini. Jika anda memerlukan bantuan, sila " "cari sebelum anda menyiarkan siaran baharu." -#: src/app/main/ui/settings/feedback.cljs:88 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.discourse-title" msgstr "Komuniti Penpot" -#: src/app/main/ui/settings/feedback.cljs:72 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.subject" msgstr "Subjek" -#: src/app/main/ui/settings/feedback.cljs:69 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.subtitle" msgstr "" "Sila terangkan sebab e-mel anda, nyatakan sama ada isu, idea atau keraguan. " "Seorang ahli pasukan kami akan menjawab secepat mungkin." -#: src/app/main/ui/settings/feedback.cljs:68 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.title" msgstr "E-mel" -#: src/app/main/ui/settings/feedback.cljs:105 +#: src/app/main/ui/settings/feedback.cljs +#, fuzzy msgid "feedback.twitter-go-to" msgstr "Pergi ke Twitter" -#: src/app/main/ui/settings/feedback.cljs:99 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.twitter-subtitle1" msgstr "Kami di sini untuk membantu dengan pertanyaan teknikal anda." -#: src/app/main/ui/settings/feedback.cljs:98 +#: src/app/main/ui/settings/feedback.cljs +#, fuzzy msgid "feedback.twitter-title" msgstr "Akaun sokongan Twitter" -#: src/app/main/ui/settings/password.cljs:30 +#: src/app/main/ui/settings/password.cljs msgid "generic.error" msgstr "Ralat telah berlaku" -#: src/app/main/ui/viewer/inspect/attributes/blur.cljs:26 +#: src/app/main/ui/inspect/attributes/blur.cljs msgid "inspect.attributes.blur" msgstr "Kabur" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:115 +#: src/app/main/ui/inspect/attributes/blur.cljs msgid "inspect.attributes.blur.value" msgstr "Nilai" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:112 +#: src/app/main/ui/inspect/attributes/common.cljs msgid "inspect.attributes.color.hex" msgstr "HEX" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:114 +#: src/app/main/ui/inspect/attributes/common.cljs msgid "inspect.attributes.color.hsla" msgstr "HSLA" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:113 +#: src/app/main/ui/inspect/attributes/common.cljs msgid "inspect.attributes.color.rgba" msgstr "RGBA" -#: src/app/main/ui/viewer/inspect/attributes/fill.cljs:57 +#: src/app/main/ui/inspect/attributes/fill.cljs msgid "inspect.attributes.fill" msgstr "Isi" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:99, src/app/main/ui/viewer/inspect/attributes/image.cljs:51 +#: src/app/main/ui/inspect/attributes/image.cljs msgid "inspect.attributes.image.download" msgstr "Muat turun sumber gambar" -#: src/app/main/ui/viewer/inspect/attributes/image.cljs:39 +#: src/app/main/ui/inspect/attributes/image.cljs msgid "inspect.attributes.image.height" msgstr "Tinggi" -#: src/app/main/ui/viewer/inspect/attributes/image.cljs:32 +#: src/app/main/ui/inspect/attributes/image.cljs msgid "inspect.attributes.image.width" msgstr "Lebar" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout" msgstr "Susun atur" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.height" msgstr "Tinggi" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.left" msgstr "kiri" #: src/app/main/ui/inspect/attributes/layout.cljs, src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.radius" msgstr "Jejari" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.rotation" msgstr "Putaran" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.top" msgstr "Atas" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.width" msgstr "Lebar" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:57 +#: src/app/main/ui/inspect/attributes/shadow.cljs msgid "inspect.attributes.shadow" msgstr "Bayang" -#: src/app/main/ui/viewer/inspect/attributes/geometry.cljs:40 +#: src/app/main/ui/inspect/attributes/layout.cljs msgid "inspect.attributes.size" msgstr "Ukuran dan kedudukan" -#: src/app/main/ui/viewer/inspect/attributes/stroke.cljs:52 +#: src/app/main/ui/inspect/attributes/stroke.cljs +#, fuzzy msgid "inspect.attributes.stroke" msgstr "Gurisan" -#, permanent, unused +#, permanent msgid "inspect.attributes.stroke.alignment.center" msgstr "Tengah" -#, permanent, unused +#, permanent msgid "inspect.attributes.stroke.alignment.inner" msgstr "Dalam" -#, permanent, unused +#, permanent msgid "inspect.attributes.stroke.alignment.outer" msgstr "Luar" -#, unused msgid "inspect.attributes.stroke.style.dotted" msgstr "Bertitik" -#, unused msgid "inspect.attributes.stroke.style.mixed" msgstr "bercampur" -#, unused msgid "inspect.attributes.stroke.style.none" msgstr "Tiada" -#, unused msgid "inspect.attributes.stroke.style.solid" msgstr "Padu" #: src/app/main/ui/inspect/attributes/stroke.cljs -#, unused msgid "inspect.attributes.stroke.width" msgstr "Lebar" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:81, src/app/main/ui/viewer/inspect/attributes/text.cljs:194 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography" msgstr "Tipografi" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:89 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.font-family" msgstr "Keluarga Fon" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:107 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.font-size" msgstr "Saiz huruf" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:98 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.font-style" msgstr "Gaya Huruf" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:116 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.font-weight" msgstr "Berat Huruf" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:134 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.letter-spacing" msgstr "Jarak Huruf" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:125 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.line-height" msgstr "Tinggi Garis" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:143 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.text-decoration" msgstr "Hiasan Teks" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:145 msgid "inspect.attributes.typography.text-decoration.none" msgstr "Tiada" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:146 msgid "inspect.attributes.typography.text-decoration.strikethrough" msgstr "Tembus" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:147 msgid "inspect.attributes.typography.text-decoration.underline" msgstr "Garis bawah" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:156 +#: src/app/main/ui/inspect/attributes/text.cljs +#, fuzzy msgid "inspect.attributes.typography.text-transform" msgstr "Transformasian Teks" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:158 msgid "inspect.attributes.typography.text-transform.lowercase" msgstr "Huruf Kecil" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:159 msgid "inspect.attributes.typography.text-transform.none" msgstr "Tiada" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:160 msgid "inspect.attributes.typography.text-transform.titlecase" msgstr "Huruf Tajuk" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:162 msgid "inspect.attributes.typography.text-transform.unset" msgstr "Nyahset" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:161 msgid "inspect.attributes.typography.text-transform.uppercase" msgstr "Huruf Besar" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:140 msgid "inspect.empty.help" msgstr "" "Jika anda ingin mengetahui lebih lanjut tentang pemeriksaan reka bentuk, " "lawati pusat bantuan Penpot" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:143 +#, fuzzy msgid "inspect.empty.more-info" msgstr "Maklumat lanjut tentang inspect" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:135 msgid "inspect.empty.select" msgstr "Pilih bentuk, papan atau kumpulan untuk memeriksa sifat dan kod mereka" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:125 +#: src/app/main/ui/inspect/right_sidebar.cljs msgid "inspect.tabs.code" msgstr "Kod" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:98 msgid "inspect.tabs.code.selected.circle" msgstr "Bulatan" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:99 msgid "inspect.tabs.code.selected.component" msgstr "Komponen" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:100 msgid "inspect.tabs.code.selected.curve" msgstr "Lengkung" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:101 msgid "inspect.tabs.code.selected.frame" msgstr "Papan" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:102 msgid "inspect.tabs.code.selected.group" msgstr "Kumpulan" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:103 msgid "inspect.tabs.code.selected.image" msgstr "Gambar" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:104 msgid "inspect.tabs.code.selected.mask" msgstr "Maska" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:93 +#: src/app/main/ui/inspect/right_sidebar.cljs msgid "inspect.tabs.code.selected.multiple" msgstr "%s Dipilih" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:105 msgid "inspect.tabs.code.selected.path" msgstr "Laluan" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:106 msgid "inspect.tabs.code.selected.rect" msgstr "Segi empat tepat" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:107 msgid "inspect.tabs.code.selected.svg-raw" msgstr "SVG" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:108 msgid "inspect.tabs.code.selected.text" msgstr "Teks" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:115 +#: src/app/main/ui/inspect/right_sidebar.cljs msgid "inspect.tabs.info" msgstr "Maklumat" -#: src/app/main/ui/workspace/main_menu.cljs:158 +#: src/app/main/ui/workspace/header.cljs msgid "label.shortcuts" msgstr "Pintasan" -#: src/app/main/ui/dashboard/import.cljs:527 msgid "labels.accept" msgstr "Terima" -#: src/app/main/ui/settings/sidebar.cljs:100 +#: src/app/main/ui/settings/sidebar.cljs msgid "labels.access-tokens" msgstr "Token capaian" -#: src/app/main/ui/dashboard/team.cljs:968 msgid "labels.active" msgstr "Aktif" -#: src/app/main/ui/dashboard/fonts.cljs:175 msgid "labels.add-custom-font" msgstr "Tambah fon tersuai" -#: src/app/main/ui/dashboard/team.cljs:120, src/app/main/ui/dashboard/team.cljs:276, src/app/main/ui/dashboard/team.cljs:519, src/app/main/ui/dashboard/team.cljs:549, src/app/main/ui/onboarding/team_choice.cljs:67 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs msgid "labels.admin" msgstr "Pentadbir" -#: src/app/main/ui/onboarding/questions.cljs:174 -msgid "labels.adobe-xd" -msgstr "Adobe XD" - #: src/app/main/ui/workspace/comments.cljs -#, unused msgid "labels.all" msgstr "Semua" -#: src/app/main/ui/auth.cljs:37 msgid "labels.and" msgstr "dan" -#: src/app/main/ui/onboarding/team_choice.cljs:162 msgid "labels.back" msgstr "Kembali" -#: src/app/main/ui/static.cljs:59 +#: src/app/main/ui/static.cljs msgid "labels.bad-gateway.desc-message" msgstr "" "Nampaknya anda perlu menunggu sebentar dan mencuba semula; kami sedang " "melakukan penyelenggaraan kecil pelayan kami." -#: src/app/main/ui/static.cljs:58 +#: src/app/main/ui/static.cljs msgid "labels.bad-gateway.main-message" msgstr "Ralat pelayan (Bad Gateway)" -#: src/app/main/data/common.cljs:112, src/app/main/ui/dashboard/change_owner.cljs:69, src/app/main/ui/dashboard/import.cljs:514, src/app/main/ui/dashboard/team.cljs:868, src/app/main/ui/delete_shared.cljs:35, src/app/main/ui/export.cljs:164, src/app/main/ui/export.cljs:460, src/app/main/ui/settings/access_tokens.cljs:188, src/app/main/ui/viewer/share_link.cljs:203, src/app/main/ui/workspace/sidebar/assets/groups.cljs:149 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.cancel" msgstr "Batal" -#: src/app/main/ui/onboarding/questions.cljs:176 -msgid "labels.canva" -msgstr "Canva" - -#: src/app/main/ui/dashboard/projects.cljs:93, src/app/main/ui/export.cljs:478, src/app/main/ui/settings/access_tokens.cljs:183, src/app/main/ui/viewer/login.cljs:77, src/app/main/ui/viewer/share_link.cljs:174, src/app/main/ui/workspace/libraries.cljs:522 msgid "labels.close" msgstr "Tutup" -#: src/app/main/ui/dashboard/comments.cljs:104, src/app/main/ui/viewer/comments.cljs:70, src/app/main/ui/workspace/comments.cljs:126 +#: src/app/main/ui/dashboard/comments.cljs msgid "labels.comments" msgstr "Komen" -#: src/app/main/ui/dashboard/sidebar.cljs:985, src/app/main/ui/workspace/main_menu.cljs:110 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.community" msgstr "Komuniti" -#: src/app/main/ui/settings/password.cljs:103 +#: src/app/main/ui/settings/password.cljs msgid "labels.confirm-password" msgstr "Sahkan kata laluan" -#: src/app/main/ui/dashboard/import.cljs:520, src/app/main/ui/export.cljs:465, src/app/main/ui/onboarding/newsletter.cljs:101 msgid "labels.continue" msgstr "Teruskan" -#, unused msgid "labels.continue-with" msgstr "Teruskan dengan" -#: src/app/main/ui/viewer/login.cljs:75 msgid "labels.continue-with-penpot" msgstr "Anda boleh meneruskan dengan akaun Penpot" -#: src/app/main/ui/dashboard/team.cljs:642 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.copy-invitation-link" msgstr "Salin pautan" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:157, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:190 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "labels.create" msgstr "Cipta" -#: src/app/main/ui/dashboard/team_form.cljs:101, src/app/main/ui/dashboard/team_form.cljs:121 +#: src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/dashboard/team_form.cljs msgid "labels.create-team" msgstr "Cipta pasukan baharu" -#: src/app/main/ui/dashboard/team_form.cljs:113 +#: src/app/main/ui/dashboard/team_form.cljs msgid "labels.create-team.placeholder" msgstr "Masukkan nama pasukan baharu" -#, unused msgid "labels.custom-fonts" msgstr "Fon tersuai" -#: src/app/main/ui/settings/sidebar.cljs:73 +#: src/app/main/ui/settings/sidebar.cljs msgid "labels.dashboard" msgstr "Papan pemuka" -#: src/app/main/ui/dashboard/file_menu.cljs:306, src/app/main/ui/dashboard/fonts.cljs:255, src/app/main/ui/dashboard/fonts.cljs:332, src/app/main/ui/dashboard/fonts.cljs:346, src/app/main/ui/dashboard/project_menu.cljs:115, src/app/main/ui/dashboard/team.cljs:904, src/app/main/ui/settings/access_tokens.cljs:209, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:209 +#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "labels.delete" msgstr "Padam" -#: src/app/main/ui/comments.cljs:357 +#: src/app/main/ui/comments.cljs msgid "labels.delete-comment" msgstr "Padam komen" -#: src/app/main/ui/comments.cljs:354 +#: src/app/main/ui/comments.cljs msgid "labels.delete-comment-thread" msgstr "Padam bebenang" -#: src/app/main/ui/dashboard/team.cljs:648 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.delete-invitation" msgstr "Padam jemputan" -#: src/app/main/ui/dashboard/file_menu.cljs:262 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.delete-multi-files" msgstr "Padam fail %s" -#: src/app/main/ui/onboarding/questions.cljs:250 -msgid "labels.developer" -msgstr "Pembangun" - -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:199 msgid "labels.discard" msgstr "Buang" -#: src/app/main/ui/dashboard/file_menu.cljs:28, src/app/main/ui/dashboard/files.cljs:72, src/app/main/ui/dashboard/files.cljs:156, src/app/main/ui/dashboard/projects.cljs:220, src/app/main/ui/dashboard/projects.cljs:224, src/app/main/ui/dashboard/sidebar.cljs:791 +#: src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/files.cljs, src/app/main/ui/dashboard/files.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "labels.drafts" msgstr "Draf" -#: src/app/main/ui/comments.cljs:350, src/app/main/ui/dashboard/fonts.cljs:252, src/app/main/ui/dashboard/team.cljs:902, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:205 +#: src/app/main/ui/comments.cljs msgid "labels.edit" msgstr "Sunting" -#, unused msgid "labels.edit-file" msgstr "Sunting fail" -#: src/app/main/ui/dashboard/team.cljs:118, src/app/main/ui/dashboard/team.cljs:279, src/app/main/ui/dashboard/team.cljs:520, src/app/main/ui/dashboard/team.cljs:553, src/app/main/ui/onboarding/team_choice.cljs:66 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs msgid "labels.editor" msgstr "Penyunting" -#: src/app/main/ui/dashboard/team.cljs:661 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.expired-invitation" msgstr "Tamat tempoh" -#: src/app/main/ui/export.cljs:173 msgid "labels.export" msgstr "Eksport" -#: src/app/main/ui/settings/feedback.cljs:51 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.feedback-disabled" msgstr "Maklum balas dilumpuhkan" -#: src/app/main/ui/settings/feedback.cljs:42 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.feedback-sent" msgstr "Maklum balas dihantar" -#: src/app/main/ui/onboarding/questions.cljs:170 -msgid "labels.figma" -msgstr "Figma" - -#: src/app/main/ui/dashboard/fonts.cljs:412 msgid "labels.font-family" msgstr "Keluarga Fon" -#, unused msgid "labels.font-providers" msgstr "Pembekal fon" -#: src/app/main/ui/dashboard/fonts.cljs:413 msgid "labels.font-variants" msgstr "Gaya" -#: src/app/main/ui/dashboard/fonts.cljs:52, src/app/main/ui/dashboard/sidebar.cljs:811 msgid "labels.fonts" msgstr "Fon" -#: src/app/main/ui/onboarding/questions.cljs:263 -msgid "labels.founder" -msgstr "Pengasas/VP" - -#: src/app/main/ui/onboarding/questions.cljs:262 -msgid "labels.freelancer" -msgstr "Saya seorang pekerja bebas (freelancer)" - -#: src/app/main/ui/dashboard/sidebar.cljs:1015, src/app/main/ui/workspace/main_menu.cljs:142 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.github-repo" msgstr "Repositori Github" -#: src/app/main/ui/dashboard/sidebar.cljs:1032, src/app/main/ui/settings/sidebar.cljs:113, src/app/main/ui/workspace/main_menu.cljs:171 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.give-feedback" msgstr "Beri maklum balas" -#: src/app/main/ui/auth/recovery_request.cljs:110, src/app/main/ui/auth/register.cljs:285, src/app/main/ui/viewer/login.cljs:117 msgid "labels.go-back" msgstr "Pergi balik" -#: src/app/main/ui/dashboard/sidebar.cljs:978, src/app/main/ui/workspace/main_menu.cljs:102 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.help-center" msgstr "Pusat Bantuan" -#: src/app/main/ui/viewer/comments.cljs:103, src/app/main/ui/workspace/comments.cljs:67 +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs msgid "labels.hide-resolved-comments" msgstr "Sembunyikan komen yang diselesaikan" -#: src/app/main/ui/dashboard/team.cljs:969 msgid "labels.inactive" msgstr "tidak aktif" -#: src/app/main/ui/dashboard/fonts.cljs:410 msgid "labels.installed-fonts" msgstr "Fon yang dipasang" -#: src/app/main/ui/static.cljs:144 +#: src/app/main/ui/static.cljs msgid "labels.internal-error.desc-message" msgstr "" "Sesuatu yang buruk telah berlaku. Sila cuba semula operasi dan jika masalah " "berterusan, hubungi sokongan." -#: src/app/main/ui/static.cljs:143 +#: src/app/main/ui/static.cljs msgid "labels.internal-error.main-message" msgstr "Ralat Dalaman" -#: src/app/main/ui/onboarding/questions.cljs:178 -msgid "labels.invision" -msgstr "InVision" - -#: src/app/main/ui/dashboard/sidebar.cljs:516, src/app/main/ui/dashboard/team.cljs:89, src/app/main/ui/dashboard/team.cljs:97, src/app/main/ui/dashboard/team.cljs:708 +#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.invitations" msgstr "Jemputan" -#: src/app/main/ui/settings/options.cljs:51 +#: src/app/main/ui/settings/options.cljs msgid "labels.language" msgstr "Bahasa" -#: src/app/main/ui/dashboard/sidebar.cljs:1008, src/app/main/ui/workspace/main_menu.cljs:134 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.libraries-and-templates" msgstr "Perpustakaan & Templat" -#: src/app/main/ui/viewer/header.cljs:203 msgid "labels.log-or-sign" msgstr "Log masuk atau daftar" -#: src/app/main/ui/dashboard/sidebar.cljs:1040 +#: src/app/main/ui/settings.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.logout" msgstr "Log keluar" -#: src/app/main/ui/onboarding/questions.cljs:253 -msgid "labels.marketing" -msgstr "Pemasaran" - -#: src/app/main/ui/dashboard/team.cljs:468 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.member" msgstr "Ahli" -#: src/app/main/ui/dashboard/sidebar.cljs:510, src/app/main/ui/dashboard/team.cljs:87, src/app/main/ui/dashboard/team.cljs:95 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.members" msgstr "Ahli" -#: src/app/main/ui/settings/password.cljs:96 +#: src/app/main/ui/settings/password.cljs msgid "labels.new-password" msgstr "Kata laluan baharu" -#: src/app/main/ui/dashboard/templates.cljs:269, src/app/main/ui/onboarding/questions.cljs:55 -msgid "labels.next" -msgstr "Seterusnya" - -#: src/app/main/ui/dashboard/comments.cljs:128, src/app/main/ui/workspace/comments.cljs:161 +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/dashboard/comments.cljs msgid "labels.no-comments-available" msgstr "" "Anda telah melihat semua yang baru! Pemberitahuan ulasan baharu akan " "dipaparkan di sini." -#: src/app/main/ui/dashboard/team.cljs:694 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.no-invitations" msgstr "Tiada jemputan tertunda." -#: src/app/main/ui/dashboard/team.cljs:696 +#: src/app/main/ui/dashboard/team.cljs #, markdown msgid "labels.no-invitations-hint" msgstr "Klik butang **Jemput orang** untuk menjemput orang ke pasukan ini." -#: src/app/main/ui/static.cljs:50 +#: src/app/main/ui/static.cljs msgid "labels.not-found.desc-message" msgstr "" "Halaman ini mungkin tidak wujud atau anda tiada kebenaran untuk " "mengaksesnya." -#: src/app/main/ui/static.cljs:49 +#: src/app/main/ui/static.cljs msgid "labels.not-found.main-message" msgstr "Alamak!" -#: src/app/main/ui/dashboard/projects.cljs:239, src/app/main/ui/dashboard/team.cljs:1095 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.num-of-files" msgid_plural "labels.num-of-files" msgstr[0] "%s fail" -#: src/app/main/ui/viewer/thumbnails.cljs:80 msgid "labels.num-of-frames" msgid_plural "labels.num-of-frames" msgstr[0] "%s papan" -#: src/app/main/ui/dashboard/team.cljs:1090 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.num-of-projects" msgid_plural "labels.num-of-projects" msgstr[0] "%s projek" -#: src/app/main/ui/settings/password.cljs:89 +#: src/app/main/ui/settings/password.cljs msgid "labels.old-password" msgstr "Kata laluan lama" #: src/app/main/ui/workspace/comments.cljs -#, unused msgid "labels.only-yours" msgstr "Hanya milik anda" -#, unused msgid "labels.or" msgstr "atau" -#: src/app/main/ui/onboarding/questions.cljs:145, src/app/main/ui/onboarding/questions.cljs:214, src/app/main/ui/onboarding/questions.cljs:303, src/app/main/ui/onboarding/questions.cljs:316, src/app/main/ui/onboarding/questions.cljs:389, src/app/main/ui/onboarding/questions.cljs:447 -msgid "labels.other" -msgstr "Lain-lain (nyatakan)" - -#: src/app/main/ui/dashboard/team.cljs:286, src/app/main/ui/dashboard/team.cljs:518, src/app/main/ui/dashboard/team.cljs:1076 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs msgid "labels.owner" msgstr "Pemilik" -#: src/app/main/ui/settings/sidebar.cljs:87 +#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.password" msgstr "Kata laluan" -#: src/app/main/ui/dashboard/team.cljs:662 +#: src/app/main/ui/dashboard/team.cljs +#, fuzzy msgid "labels.pending-invitation" msgstr "Belum selesai" -#: src/app/main/ui/onboarding/questions.cljs:51 -msgid "labels.previous" -msgstr "Sebelumnya" - -#: src/app/main/ui/onboarding/questions.cljs:254 -msgid "labels.product-management" -msgstr "Pengurus Produk atau Projek" - -#: src/app/main/ui/settings/profile.cljs:118, src/app/main/ui/settings/sidebar.cljs:82 +#: src/app/main/ui/settings/sidebar.cljs msgid "labels.profile" msgstr "Profil" -#: src/app/main/ui/dashboard/sidebar.cljs:784 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.projects" msgstr "Projek" -#: src/app/main/ui/dashboard/sidebar.cljs:998, src/app/main/ui/settings/sidebar.cljs:106, src/app/main/ui/workspace/main_menu.cljs:126 +#: src/app/main/ui/settings/sidebar.cljs msgid "labels.release-notes" msgstr "Nota keluaran" #: src/app/main/ui/workspace.cljs -#, unused msgid "labels.reload-file" msgstr "Muat semula fail" #: src/app/main/ui/workspace/libraries.cljs, src/app/main/ui/dashboard/team.cljs -#, unused msgid "labels.remove" msgstr "Alih keluar" -#: src/app/main/ui/dashboard/team.cljs:316 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.remove-member" msgstr "Buang ahli" -#: src/app/main/ui/dashboard/file_menu.cljs:271, src/app/main/ui/dashboard/project_menu.cljs:85, src/app/main/ui/dashboard/sidebar.cljs:539, src/app/main/ui/workspace/sidebar/assets/groups.cljs:157 +#: src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "labels.rename" msgstr "Namakan semula" -#: src/app/main/ui/dashboard/team_form.cljs:99 +#: src/app/main/ui/dashboard/team_form.cljs msgid "labels.rename-team" msgstr "Namakan semula pasukan" -#: src/app/main/ui/dashboard/team.cljs:645 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.resend-invitation" msgstr "Hantar semula jemputan" -#: src/app/main/ui/static.cljs:61, src/app/main/ui/static.cljs:70, src/app/main/ui/static.cljs:148 +#: src/app/main/ui/static.cljs, src/app/main/ui/static.cljs, src/app/main/ui/static.cljs msgid "labels.retry" msgstr "Cuba semula" -#: src/app/main/ui/dashboard/team.cljs:469, src/app/main/ui/dashboard/team.cljs:709 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.role" msgstr "Peranan" -#: src/app/main/ui/dashboard/fonts.cljs:380, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:191 msgid "labels.save" msgstr "Simpan" -#: src/app/main/ui/onboarding/questions.cljs:414, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:436 msgid "labels.search" msgstr "Cari" -#: src/app/main/ui/dashboard/fonts.cljs:415 msgid "labels.search-font" msgstr "Cari fon" -#: src/app/main/ui/onboarding/questions.cljs:90, src/app/main/ui/onboarding/questions.cljs:248, src/app/main/ui/onboarding/questions.cljs:259, src/app/main/ui/onboarding/questions.cljs:270 -msgid "labels.select-option" -msgstr "Pilih pilihan" - -#: src/app/main/ui/settings/feedback.cljs:82 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.send" msgstr "Hantar" -#: src/app/main/ui/settings/feedback.cljs:82 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.sending" msgstr "Menghantar…" -#: src/app/main/ui/static.cljs:68 +#: src/app/main/ui/static.cljs msgid "labels.service-unavailable.desc-message" msgstr "Kami sedang menjalankan penyelenggaraan berjadual pada sistem kami." -#: src/app/main/ui/static.cljs:67 +#: src/app/main/ui/static.cljs msgid "labels.service-unavailable.main-message" msgstr "Perkhidmatan Tidak Tersedia" -#: src/app/main/ui/dashboard/sidebar.cljs:530, src/app/main/ui/dashboard/team.cljs:88, src/app/main/ui/dashboard/team.cljs:102, src/app/main/ui/settings/options.cljs:84, src/app/main/ui/settings/sidebar.cljs:93 +#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.settings" msgstr "Tetapan" -#: src/app/main/ui/viewer/header.cljs:199 msgid "labels.share" msgstr "Kongsi" -#, unused msgid "labels.share-prototype" msgstr "Kongsi prototaip" -#: src/app/main/ui/dashboard/sidebar.cljs:800 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.shared-libraries" msgstr "Perpustakaan" -#: src/app/main/ui/viewer/comments.cljs:82, src/app/main/ui/workspace/comments.cljs:55, src/app/main/ui/workspace/comments.cljs:135 +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs msgid "labels.show-all-comments" msgstr "Paparkan semua komen" -#: src/app/main/ui/viewer/comments.cljs:115 msgid "labels.show-comments-list" msgstr "Paparkan senarai komen" -#: src/app/main/ui/viewer/comments.cljs:91, src/app/main/ui/workspace/comments.cljs:61, src/app/main/ui/workspace/comments.cljs:136 +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs msgid "labels.show-your-comments" msgstr "Paparkan komen anda sahaja" -#: src/app/main/ui/onboarding/questions.cljs:172 -msgid "labels.sketch" -msgstr "Sketch" - -#: src/app/main/ui/onboarding/questions.cljs:56 -msgid "labels.start" -msgstr "Mula" - -#: src/app/main/ui/dashboard/team.cljs:710 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.status" msgstr "Status" -#: src/app/main/ui/onboarding/questions.cljs:251 -msgid "labels.student-teacher" -msgstr "Pelajar atau guru" - -#: src/app/main/ui/dashboard/sidebar.cljs:992, src/app/main/ui/workspace/main_menu.cljs:118 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.tutorials" msgstr "Tutorial" -#: src/app/main/ui/dashboard/file_menu.cljs:256 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.unpublish-multi-files" msgstr "Nyahterbitkan %s fail" -#: src/app/main/ui/settings/profile.cljs:103 +#: src/app/main/ui/settings/profile.cljs msgid "labels.update" msgstr "Kemas kini" -#: src/app/main/ui/dashboard/team_form.cljs:120 +#: src/app/main/ui/dashboard/team_form.cljs msgid "labels.update-team" msgstr "Kemas kini pasukan" -#: src/app/main/ui/dashboard/fonts.cljs:241 msgid "labels.upload" msgstr "Muat naik" -#: src/app/main/ui/dashboard/fonts.cljs:169 msgid "labels.upload-custom-fonts" msgstr "Muat naik fon tersuai" -#: src/app/main/ui/dashboard/fonts.cljs:240 msgid "labels.uploading" msgstr "Memuat naik…" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs:223 msgid "labels.view-only" msgstr "LIHAT SAHAJA" -#: src/app/main/ui/dashboard/team.cljs:123, src/app/main/ui/dashboard/team.cljs:282, src/app/main/ui/dashboard/team.cljs:521 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.viewer" msgstr "Penonton" -#: src/app/main/ui/dashboard/sidebar.cljs:523, src/app/main/ui/dashboard/team.cljs:90, src/app/main/ui/dashboard/team.cljs:100, src/app/main/ui/dashboard/team.cljs:880 msgid "labels.webhooks" msgstr "Cangkuk Web (Webhook)" -#: src/app/main/ui/comments.cljs:194 +#: src/app/main/ui/comments.cljs msgid "labels.write-new-comment" msgstr "Tulis komen baharu" -#: src/app/main/ui/dashboard/team.cljs:237 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.you" msgstr "(anda)" -#: src/app/main/ui/dashboard/sidebar.cljs:968 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.your-account" msgstr "Akaun anda" -#: src/app/main/data/media.cljs:49, src/app/main/data/workspace/media.cljs:223, src/app/main/data/workspace/media.cljs:453 +#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs msgid "media.loading" msgstr "Memuatkan gambar…" -#: src/app/main/data/common.cljs:111 msgid "modals.add-shared-confirm-empty.hint" msgstr "" "Pustaka anda kosong. Setelah ditambahkan sebagai Pustaka Dikongsi, aset " "yang anda buat akan tersedia untuk digunakan antara fail anda yang lain. " "Adakah anda pasti mahu menerbitkannya?" -#: src/app/main/data/common.cljs:113 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.add-shared-confirm.accept" msgstr "Tambah sebagai Pustaka Kongsi" -#: src/app/main/data/common.cljs:111 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.add-shared-confirm.hint" msgstr "" "Setelah ditambahkan sebagai Pustaka Kongsi, aset pustaka fail ini akan " "tersedia untuk digunakan antara fail anda yang lain." -#: src/app/main/data/common.cljs:110 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.add-shared-confirm.message" msgstr "Tambah “%s” sebagai Pustaka Kongsi" -#: src/app/main/ui/workspace/nudge.cljs:60 +#: src/app/main/ui/workspace/nudge.cljs +#, fuzzy msgid "modals.big-nudge" msgstr "Anjakan besar" -#: src/app/main/ui/settings/change_email.cljs:127 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.confirm-email" msgstr "Sahkan e-mel baharu" -#: src/app/main/ui/settings/change_email.cljs:114 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.info" msgstr "" "Kami akan menghantar e-mel ke e-mel semasa anda “%s” untuk pengesahan " "identiti." -#: src/app/main/ui/settings/change_email.cljs:119 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.new-email" msgstr "E-mel baharu" -#: src/app/main/ui/settings/change_email.cljs:136 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.submit" msgstr "Tukar e-mel" -#: src/app/main/ui/settings/change_email.cljs:107 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.title" msgstr "Tukar e-mel anda" -#: src/app/main/ui/settings/access_tokens.cljs:165, src/app/main/ui/settings/access_tokens.cljs:171 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.create-access-token.copy-token" msgstr "Salin token" -#: src/app/main/ui/settings/access_tokens.cljs:142 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.create-access-token.expiration-date.label" msgstr "Tarikh tamat tempoh" -#: src/app/main/ui/settings/access_tokens.cljs:136 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.create-access-token.name.label" msgstr "Nama" -#: src/app/main/ui/settings/access_tokens.cljs:138 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.create-access-token.name.placeholder" msgstr "Nama boleh membantu untuk mengetahui token itu untuk apa" -#: src/app/main/ui/settings/access_tokens.cljs:191 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.create-access-token.submit-label" msgstr "Cipta token" -#: src/app/main/ui/settings/access_tokens.cljs:123 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.create-access-token.title" msgstr "Jana token capaian" -#: src/app/main/ui/dashboard/team.cljs:873 msgid "modals.create-webhook.submit-label" msgstr "Cipta cangkuk web (webhook)" -#: src/app/main/ui/dashboard/team.cljs:838 msgid "modals.create-webhook.title" msgstr "Cipta cangkuk web (webhook)" -#: src/app/main/ui/dashboard/team.cljs:849 msgid "modals.create-webhook.url.label" msgstr "URL muatan" -#: src/app/main/ui/dashboard/team.cljs:850 msgid "modals.create-webhook.url.placeholder" msgstr "https://example.com/postreceive" -#: src/app/main/ui/settings/access_tokens.cljs:271 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.delete-acces-token.accept" msgstr "Padam token" -#: src/app/main/ui/settings/access_tokens.cljs:270 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.delete-acces-token.message" msgstr "Adakah anda pasti mahu memadamkan token ini?" -#: src/app/main/ui/settings/access_tokens.cljs:269 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.delete-acces-token.title" msgstr "Padam token" -#: src/app/main/ui/settings/delete_account.cljs:59 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.cancel" msgstr "Batal dan kekalkan akaun saya" -#: src/app/main/ui/settings/delete_account.cljs:64 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.confirm" msgstr "Ya, padam akaun saya" -#: src/app/main/ui/settings/delete_account.cljs:53 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.info" msgstr "" "Dengan mengalih keluar akaun anda, anda akan kehilangan semua projek dan " "arkib semasa anda." -#: src/app/main/ui/settings/delete_account.cljs:46 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.title" msgstr "Adakah anda pasti mahu memadam akaun anda?" -#: src/app/main/ui/comments.cljs:298 +#: src/app/main/ui/comments.cljs msgid "modals.delete-comment-thread.accept" msgstr "Padam perbualan" -#: src/app/main/ui/comments.cljs:297 +#: src/app/main/ui/comments.cljs msgid "modals.delete-comment-thread.message" msgstr "" "Adakah anda pasti mahu memadamkan perbualan ini? Semua komen dalam urutan " "ini akan dipadamkan." -#: src/app/main/ui/comments.cljs:296 +#: src/app/main/ui/comments.cljs msgid "modals.delete-comment-thread.title" msgstr "Padam perbualan" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:140 msgid "modals.delete-component-annotation.message" msgstr "Adakah anda pasti ingin memadamkan anotasi ini?" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:139 msgid "modals.delete-component-annotation.title" msgstr "Padam anotasi" -#: src/app/main/ui/dashboard/file_menu.cljs:123 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-confirm.accept" msgstr "Padam fail" -#: src/app/main/ui/dashboard/file_menu.cljs:122 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-confirm.message" msgstr "Adakah anda pasti mahu memadamkan fail ini?" -#: src/app/main/ui/dashboard/file_menu.cljs:121 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-confirm.title" msgstr "Memadam fail" -#: src/app/main/ui/dashboard/file_menu.cljs:117 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-multi-confirm.accept" msgstr "Padam fail" -#: src/app/main/ui/dashboard/file_menu.cljs:116 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-multi-confirm.message" msgstr "Adakah anda pasti mahu memadamkan %s fail?" -#: src/app/main/ui/dashboard/file_menu.cljs:115 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-multi-confirm.title" msgstr "Memadamkan %s fail" -#: src/app/main/ui/dashboard/fonts.cljs:345 msgid "modals.delete-font-variant.message" msgstr "" "Adakah anda pasti mahu memadamkan gaya fon ini? Ia tidak akan dimuatkan " "jika digunakan dalam fail." -#: src/app/main/ui/dashboard/fonts.cljs:344 msgid "modals.delete-font-variant.title" msgstr "Memadam gaya fon" -#: src/app/main/ui/dashboard/fonts.cljs:331 msgid "modals.delete-font.message" msgstr "" "Adakah anda pasti mahu memadamkan fon ini? Ia tidak akan dimuatkan jika " "digunakan dalam fail." -#: src/app/main/ui/dashboard/fonts.cljs:330 msgid "modals.delete-font.title" msgstr "Memadam fon" -#: src/app/main/ui/workspace/context_menu.cljs:522, src/app/main/ui/workspace/sidebar/sitemap.cljs:45 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs msgid "modals.delete-page.body" msgstr "Adakah anda pasti mahu memadamkan halaman ini?" -#: src/app/main/ui/workspace/context_menu.cljs:521, src/app/main/ui/workspace/sidebar/sitemap.cljs:44 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs msgid "modals.delete-page.title" msgstr "Padam halaman" -#: src/app/main/ui/dashboard/project_menu.cljs:69 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "modals.delete-project-confirm.accept" msgstr "Padam projek" -#: src/app/main/ui/dashboard/project_menu.cljs:68 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "modals.delete-project-confirm.message" msgstr "Adakah anda pasti mahu memadamkan projek ini?" -#: src/app/main/ui/dashboard/project_menu.cljs:67 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "modals.delete-project-confirm.title" msgstr "Padam projek" -#: src/app/main/ui/delete_shared.cljs:51 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.accept" msgid_plural "modals.delete-shared-confirm.accept" msgstr[0] "Padam fail" -#: src/app/main/ui/delete_shared.cljs:55 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.activated.no-files-message" msgid_plural "modals.delete-shared-confirm.activated.no-files-message" msgstr[0] "Ia tidak diaktifkan dalam mana-mana fail." -#: src/app/main/ui/delete_shared.cljs:57 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.activated.scd-message" msgid_plural "modals.delete-shared-confirm.activated.scd-message" msgstr[0] "Pustaka ini diaktifkan di sini: " -#: src/app/main/ui/delete_shared.cljs:46 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.message" msgid_plural "modals.delete-shared-confirm.message" msgstr[0] "Adakah anda pasti mahu memadamkan fail ini?" -#: src/app/main/ui/delete_shared.cljs:41 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.title" msgid_plural "modals.delete-shared-confirm.title" msgstr[0] "Memadam fail" -#: src/app/main/ui/dashboard/sidebar.cljs:435 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.delete-team-confirm.accept" msgstr "Padam pasukan" -#: src/app/main/ui/dashboard/sidebar.cljs:434 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.delete-team-confirm.message" msgstr "" "Adakah anda pasti mahu memadamkan pasukan ini? Semua projek dan fail yang " "dikaitkan dengan pasukan akan dipadamkan secara kekal." -#: src/app/main/ui/dashboard/sidebar.cljs:433 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.delete-team-confirm.title" msgstr "Memadam pasukan" -#: src/app/main/ui/dashboard/team.cljs:427 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.delete-team-member-confirm.accept" msgstr "Padam ahli" -#: src/app/main/ui/dashboard/team.cljs:426 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.delete-team-member-confirm.message" msgstr "Adakah anda pasti mahu memadamkan ahli ini daripada pasukan?" -#: src/app/main/ui/dashboard/team.cljs:425 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.delete-team-member-confirm.title" msgstr "Padam ahli pasukan" -#: src/app/main/ui/delete_shared.cljs:59 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-unpublish-shared-confirm.activated.hint" msgid_plural "modals.delete-unpublish-shared-confirm.activated.hint" msgstr[0] "" "Aset yang telah digunakan dalam fail ini akan kekal di sana (tiada reka " "bentuk akan rosak)." -#: src/app/main/ui/dashboard/team.cljs:942 msgid "modals.delete-webhook.accept" msgstr "Padam cangkuk web (webhook)" -#: src/app/main/ui/dashboard/team.cljs:941 msgid "modals.delete-webhook.message" msgstr "Adakah anda pasti mahu memadamkan cangkuk web (webhook) ini?" -#: src/app/main/ui/dashboard/team.cljs:940 msgid "modals.delete-webhook.title" msgstr "Memadam cangkuk web (webhook)" -#: src/app/main/ui/dashboard/team.cljs:872 msgid "modals.edit-webhook.submit-label" msgstr "Sunting cangkuk web (webhook)" -#: src/app/main/ui/dashboard/team.cljs:837 msgid "modals.edit-webhook.title" msgstr "Sunting cangkuk web (webhook)" -#: src/app/main/ui/dashboard/team.cljs:218 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.invite-member-confirm.accept" msgstr "Hantar jemputan" -#: src/app/main/ui/dashboard/team.cljs:213, src/app/main/ui/onboarding/team_choice.cljs:156 msgid "modals.invite-member.emails" msgstr "E-mel, dipisahkan dengan koma" -#: src/app/main/ui/dashboard/team.cljs:197 msgid "modals.invite-member.repeated-invitation" msgstr "" "Sesetengah e-mel adalah daripada ahli pasukan semasa. Jemputan mereka tidak " "akan dihantar." -#: src/app/main/ui/dashboard/team.cljs:190 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.invite-team-member.title" msgstr "Jemput ahli ke pasukan" -#: src/app/main/ui/dashboard/sidebar.cljs:423, src/app/main/ui/dashboard/team.cljs:393 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-close-confirm.hint" msgstr "" "Memandangkan anda satu-satunya ahli pasukan, pasukan ini akan dipadamkan " "bersama-sama dengan projek dan failnya." -#: src/app/main/ui/dashboard/sidebar.cljs:422, src/app/main/ui/dashboard/team.cljs:392 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-close-confirm.message" msgstr "Adakah anda pasti mahu meninggalkan pasukan %s?" -#: src/app/main/ui/dashboard/change_owner.cljs:59 msgid "modals.leave-and-reassign.forbidden" msgstr "" "Anda tidak boleh meninggalkan pasukan jika tiada ahli lain untuk dinaikkan " "pangkat kepada pemilik. Anda mungkin mahu memadamkan pasukan." -#: src/app/main/ui/dashboard/change_owner.cljs:55 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-reassign.hint1" msgstr "" "Anda adalah pemilik pasukan ini. Sila pilih ahli lain untuk dinaikkan " "pangkat kepada pemilik sebelum anda pergi." -#: src/app/main/ui/dashboard/change_owner.cljs:78 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-reassign.promote-and-leave" msgstr "Naik pangkat dan tinggalkan" -#: src/app/main/ui/dashboard/change_owner.cljs:34 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-reassign.select-member-to-promote" msgstr "Pilih ahli untuk dinaikkan pangkat" -#: src/app/main/ui/dashboard/change_owner.cljs:49 +#: src/app/main/ui/dashboard/sidebar.cljs +#, fuzzy msgid "modals.leave-and-reassign.title" msgstr "Sebelum anda pergi" -#: src/app/main/ui/dashboard/sidebar.cljs:402, src/app/main/ui/dashboard/sidebar.cljs:424, src/app/main/ui/dashboard/team.cljs:394, src/app/main/ui/dashboard/team.cljs:416 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-confirm.accept" msgstr "Tinggalkan pasukan" -#: src/app/main/ui/dashboard/sidebar.cljs:401, src/app/main/ui/dashboard/team.cljs:415 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-confirm.message" msgstr "Adakah anda pasti mahu meninggalkan pasukan ini?" -#: src/app/main/ui/dashboard/sidebar.cljs:400, src/app/main/ui/dashboard/sidebar.cljs:421, src/app/main/ui/dashboard/team.cljs:391, src/app/main/ui/dashboard/team.cljs:414 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-confirm.title" msgstr "Meninggalkan pasukan" -#: src/app/main/ui/workspace/main_menu.cljs:266, src/app/main/ui/workspace/nudge.cljs:47 +#: src/app/main/ui/workspace/nudge.cljs msgid "modals.nudge-title" msgstr "Jumlah anjakan" -#: src/app/main/ui/dashboard/team.cljs:340 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.accept" msgstr "Pindah hak milik" -#: src/app/main/ui/dashboard/team.cljs:339 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.hint" msgstr "" "Jika anda memindahkan pemilikan, anda akan menukar peranan anda kepada " "Pentadbir, kehilangan beberapa kebenaran ke atas pasukan ini. " -#: src/app/main/ui/dashboard/team.cljs:338 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.message" msgstr "" "Anda adalah pemilik semasa pasukan ini. Adakah anda pasti mahu menjadikan " "%s pemilik baharu pasukan?" -#: src/app/main/ui/dashboard/team.cljs:337 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.title" msgstr "Pemilik pasukan baru" -#: src/app/main/ui/workspace/libraries.cljs:188 msgid "modals.publish-empty-library.accept" msgstr "Terbitkan" -#: src/app/main/ui/workspace/libraries.cljs:187 msgid "modals.publish-empty-library.message" msgstr "Pustaka anda kosong. Adakah anda pasti mahu menerbitkannya?" -#: src/app/main/ui/workspace/libraries.cljs:186 msgid "modals.publish-empty-library.title" msgstr "Terbitkan perpustakaan kosong" #: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused msgid "modals.remove-shared-confirm.accept" msgstr "Alih keluar sebagai Pustaka Kongsi" #: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused msgid "modals.remove-shared-confirm.hint" msgstr "" "Setelah dialih keluar sebagai Pustaka Kongsi, Pustaka Fail fail ini akan " "berhenti tersedia untuk digunakan di antara fail anda yang lain." #: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused msgid "modals.remove-shared-confirm.message" msgstr "Alih keluar \"%s\" sebagai Pustaka Kongsi" -#: src/app/main/ui/workspace/nudge.cljs:53 +#: src/app/main/ui/workspace/nudge.cljs msgid "modals.small-nudge" msgstr "Anjakan kecil" -#: src/app/main/ui/delete_shared.cljs:52 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.unpublish-shared-confirm.accept" msgid_plural "modals.unpublish-shared-confirm.accept" msgstr[0] "Nyahterbit" -#: src/app/main/ui/delete_shared.cljs:47 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.unpublish-shared-confirm.message" msgid_plural "modals.unpublish-shared-confirm.message" msgstr[0] "Adakah anda pasti mahu menyahterbitkan perpustakaan ini?" -#: src/app/main/ui/delete_shared.cljs:42 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.unpublish-shared-confirm.title" msgid_plural "modals.unpublish-shared-confirm.title" msgstr[0] "Nyahterbit pustaka" #: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs -#, unused msgid "modals.update-remote-component-in-bulk.hint" msgstr "" "Anda akan mengemas kini komponen dalam pustaka kongsi. Ini mungkin " "menjejaskan fail lain yang menggunakannya." #: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs -#, unused msgid "modals.update-remote-component-in-bulk.message" msgstr "Kemas kini komponen dalam pustaka kongsi" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:380 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.accept" msgstr "Kemas kini" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:379 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.cancel" msgstr "Batal" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:378 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.hint" msgstr "" "Anda akan mengemas kini komponen dalam pustaka kongsi. Ini mungkin " "menjejaskan fail lain yang menggunakannya." -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:377 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.message" msgstr "Kemas kini komponen dalam pustaka kongsi" -#: src/app/main/data/common.cljs:71 +#: src/app/main/data/common.cljs msgid "notifications.by-code.upgrade-version" msgstr "Versi baharu tersedia, sila muat semula halaman" -#: src/app/main/ui/dashboard/team.cljs:154, src/app/main/ui/dashboard/team.cljs:595 +#: src/app/main/ui/dashboard/team.cljs msgid "notifications.invitation-email-sent" msgstr "Jemputan berjaya dihantar" -#: src/app/main/ui/dashboard/team.cljs:616 +#: src/app/main/ui/dashboard/team.cljs msgid "notifications.invitation-link-copied" msgstr "Pautan jemputan disalin" -#: src/app/main/ui/settings/delete_account.cljs:24 +#: src/app/main/ui/settings/delete_account.cljs msgid "notifications.profile-deletion-not-allowed" msgstr "" "Anda tidak boleh memadamkan profil anda. Tetapkan semula pasukan anda " "sebelum meneruskan." -#: src/app/main/ui/settings/options.cljs:29, src/app/main/ui/settings/profile.cljs:35 +#: src/app/main/ui/settings/profile.cljs, src/app/main/ui/settings/options.cljs msgid "notifications.profile-saved" msgstr "Profil berjaya disimpan!" -#: src/app/main/ui/settings/change_email.cljs:63 +#: src/app/main/ui/settings/change_email.cljs msgid "notifications.validation-email-sent" msgstr "E-mel pengesahan dihantar kepada %s. Semak e-mel anda!" -#, unused msgid "onboarding-v2.before-start.desc1" msgstr "" "Anda harus tahu bahawa terdapat banyak sumber yang tersedia untuk membantu " "anda bermula dengan Penpot, seperti Panduan Pengguna dan saluran Youtube " "kami." -#, unused msgid "onboarding-v2.before-start.desc2" msgstr "" "Maklumat terperinci tentang cara menggunakan Penpot. Daripada prototaip " "kepada menyusun atau berkongsi reka bentuk." -#, unused msgid "onboarding-v2.before-start.desc2.title" msgstr "Panduan pengguna" -#, unused msgid "onboarding-v2.before-start.desc3" msgstr "" "Anda boleh menonton tutorial kami dan tutorial yang dibuat oleh komuniti " "kami." -#, unused msgid "onboarding-v2.before-start.desc3.title" msgstr "Video tutorial" -#, unused msgid "onboarding-v2.before-start.title" msgstr "Sebelum anda mula" -#: src/app/main/ui/onboarding/newsletter.cljs:63 msgid "onboarding-v2.newsletter.desc" msgstr "" "Langgan surat berita Penpot untuk mengikuti perkembangan dan berita " "pembangunan produk." -#: src/app/main/ui/onboarding/newsletter.cljs:83 msgid "onboarding-v2.newsletter.news" msgstr "" "Hantar kepada saya berita tentang Penpot (siaran blog, tutorial video, " "penstriman...)." -#: src/app/main/ui/onboarding/newsletter.cljs:91 msgid "onboarding-v2.newsletter.privacy1" msgstr "Kami mengambil berat tentang privasi, di sini anda boleh membaca. " -#: src/app/main/ui/onboarding/newsletter.cljs:97 msgid "onboarding-v2.newsletter.privacy2" msgstr "" "Kami hanya akan menghantar e-mel yang berkaitan kepada anda. Anda boleh " "berhenti melanggan pada bila-bila masa melalui pautan nyahlanggan dalam " "mana-mana surat berita kami." -#: src/app/main/ui/onboarding/newsletter.cljs:71 msgid "onboarding-v2.newsletter.updates" msgstr "Hantar kepada saya kemas kini produk (ciri baharu, keluaran, pembetulan...)." -#, unused msgid "onboarding-v2.welcome.desc1" msgstr "" "Penpot ialah Sumber Terbuka dan ia dibuat oleh Kaleidos serta komuniti, di " "mana ramai orang sudah membantu antara satu sama lain. Semua orang boleh " "bekerjasama dengan:" -#, unused msgid "onboarding-v2.welcome.desc2" msgstr "" "Ruang awam untuk belajar, berkongsi dan membincangkan tentang Penpot, masa " "kini dan masa depannya dengan seluruh Komuniti dan pasukan teras Penpot." -#, unused msgid "onboarding-v2.welcome.desc2.title" msgstr "Mengambil bahagian dalam Komuniti" -#, unused msgid "onboarding-v2.welcome.desc3" msgstr "" "Di mana anda akan menemui cara untuk bekerjasama dengan terjemahan, " "permintaan ciri, sumbangan teras, pemburuan pepijat…" -#, unused msgid "onboarding-v2.welcome.desc3.title" msgstr "Panduan memberi sumbangan" -#: src/app/main/ui/onboarding/team_choice.cljs:31 msgid "onboarding-v2.welcome.title" msgstr "Selamat datang ke Penpot!" -#: src/app/main/ui/onboarding/team_choice.cljs:229 msgid "onboarding.choice.team-up.continue-creating-team" msgstr "Teruskan mencipta pasukan" -#: src/app/main/ui/onboarding/team_choice.cljs:239 msgid "onboarding.choice.team-up.continue-without-a-team" msgstr "Teruskan tanpa pasukan" -#: src/app/main/ui/onboarding/team_choice.cljs:167 msgid "onboarding.choice.team-up.create-team-and-invite" msgstr "Buat pasukan & jemput" -#, unused msgid "onboarding.choice.team-up.create-team-and-send-invites" msgstr "Buat pasukan dan hantar jemputan" -#: src/app/main/ui/onboarding/team_choice.cljs:170 msgid "onboarding.choice.team-up.create-team-and-send-invites-description" msgstr "Anda boleh menjemput kemudian" -#: src/app/main/ui/onboarding/team_choice.cljs:215 msgid "onboarding.choice.team-up.create-team-desc" msgstr "" "Selepas menamakan pasukan anda, anda akan dapat menjemput orang untuk " "menyertai." -#: src/app/main/ui/onboarding/team_choice.cljs:224 msgid "onboarding.choice.team-up.create-team-placeholder" msgstr "Masukkan nama pasukan" -#: src/app/main/ui/onboarding/team_choice.cljs:168 msgid "onboarding.choice.team-up.create-team-without-invite" msgstr "Cipta pasukan" -#, unused msgid "onboarding.choice.team-up.create-team-without-inviting" msgstr "Buat pasukan tanpa menjemput" -#: src/app/main/ui/dashboard/projects.cljs:89, src/app/main/ui/onboarding/team_choice.cljs:140 msgid "onboarding.choice.team-up.invite-members" msgstr "Jemput ahli" -#: src/app/main/ui/onboarding/team_choice.cljs:141 msgid "onboarding.choice.team-up.invite-members-info" msgstr "" "Ingat untuk memasukkan semua orang. Pemaju, pereka bentuk, pengurus... " "kepelbagaian bertambah :)" -#: src/app/main/ui/dashboard/team.cljs:202, src/app/main/ui/onboarding/team_choice.cljs:146 msgid "onboarding.choice.team-up.roles" msgstr "Jemput dengan peranan:" -#: src/app/main/ui/onboarding/team_choice.cljs:232 msgid "onboarding.choice.team-up.start-without-a-team" msgstr "Mulakan tanpa pasukan" -#: src/app/main/ui/onboarding/team_choice.cljs:234 msgid "onboarding.choice.team-up.start-without-a-team-description" msgstr "Anda boleh membuat pasukan kemudian." -#, unused msgid "onboarding.newsletter.accept" msgstr "Ya, langgan" -#: src/app/main/ui/onboarding/newsletter.cljs:40 msgid "onboarding.newsletter.acceptance-message" msgstr "" "Permintaan langganan anda telah dihantar, kami akan menghantar e-mel kepada " "anda untuk mengesahkannya." -#: src/app/main/ui/onboarding/newsletter.cljs:95 msgid "onboarding.newsletter.policy" msgstr "Dasar Privasi." -#: src/app/main/ui/onboarding/newsletter.cljs:60 msgid "onboarding.newsletter.title" msgstr "Ingin menerima berita Penpot?" -#: src/app/main/ui/onboarding/questions.cljs:118 -msgid "onboarding.questions.lets-get-started" -msgstr "Mari mulakan!" - -#: src/app/main/ui/onboarding/questions.cljs:307 -msgid "onboarding.questions.step3.question2" -msgstr "Apakah peranan anda?" - -#: src/app/main/ui/onboarding/questions.cljs:320 -msgid "onboarding.questions.step3.question3" -msgstr "Berapakah saiz pasukan anda?" - -#: src/app/main/ui/onboarding/questions.cljs:273 -msgid "onboarding.questions.team-size.11-30" -msgstr "11-30" - -#: src/app/main/ui/onboarding/questions.cljs:274 -msgid "onboarding.questions.team-size.2-10" -msgstr "2-10" - -#: src/app/main/ui/onboarding/questions.cljs:272 -msgid "onboarding.questions.team-size.31-50" -msgstr "31-50" - -#: src/app/main/ui/onboarding/questions.cljs:271 -msgid "onboarding.questions.team-size.more-than-50" -msgstr "Lebih daripada 50" - -#: src/app/main/ui/onboarding/questions.cljs:276 -msgid "onboarding.questions.team-size.personal-project" -msgstr "Saya sedang menjalankan projek peribadi" - -#: src/app/main/ui/onboarding/team_choice.cljs:213 msgid "onboarding.team-modal.create-team" msgstr "Cipta pasukan" -#: src/app/main/ui/onboarding/team_choice.cljs:35 msgid "onboarding.team-modal.create-team-desc" msgstr "" "Pasukan membolehkan anda bekerjasama dengan pengguna Penpot lain yang " "bekerja dalam fail dan projek yang sama." -#: src/app/main/ui/onboarding/team_choice.cljs:40 msgid "onboarding.team-modal.create-team-feature-1" msgstr "Fail dan projek tanpa had" -#: src/app/main/ui/onboarding/team_choice.cljs:44 msgid "onboarding.team-modal.create-team-feature-2" msgstr "Edisi berbilang pemain" -#: src/app/main/ui/onboarding/team_choice.cljs:48 msgid "onboarding.team-modal.create-team-feature-3" msgstr "Pengurusan peranan" -#: src/app/main/ui/onboarding/team_choice.cljs:52 msgid "onboarding.team-modal.create-team-feature-4" msgstr "Ahli tanpa had" -#: src/app/main/ui/onboarding/team_choice.cljs:56 msgid "onboarding.team-modal.create-team-feature-5" msgstr "100% percuma!" -#: src/app/main/ui/onboarding/templates.cljs:78 msgid "onboarding.templates.subtitle" msgstr "Berikut adalah beberapa templat." -#: src/app/main/ui/onboarding/templates.cljs:77 msgid "onboarding.templates.title" msgstr "Mula mereka bentuk" -#, unused msgid "onboarding.welcome.alt" msgstr "Penpot" -#: src/app/main/ui/auth/recovery.cljs:99 +#: src/app/main/ui/auth/recovery.cljs msgid "profile.recovery.go-to-login" msgstr "Pergi ke log masuk" -#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:221 +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.team-size.11-30" +msgstr "11-30" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.team-size.2-10" +msgstr "2-10" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.team-size.31-50" +msgstr "31-50" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.adobe-xd" +msgstr "Adobe XD" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.canva" +msgstr "Canva" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.developer" +msgstr "Pembangun" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.figma" +msgstr "Figma" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.founder" +msgstr "Pengasas/VP" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.freelancer" +msgstr "Saya seorang pekerja bebas (freelancer)" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.invision" +msgstr "InVision" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.lets-get-started" +msgstr "Mari mulakan!" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.product-management" +msgstr "Pengurus Produk atau Projek" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.marketing" +msgstr "Pemasaran" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.team-size.more-than-50" +msgstr "Lebih daripada 50" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.next" +msgstr "Seterusnya" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.other" +msgstr "Lain-lain (nyatakan)" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.team-size.personal-project" +msgstr "Saya sedang menjalankan projek peribadi" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.previous" +msgstr "Sebelumnya" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.step3.question2" +msgstr "Apakah peranan anda?" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.select-option" +msgstr "Pilih pilihan" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.sketch" +msgstr "Sketch" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.start" +msgstr "Mula" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.student-teacher" +msgstr "Pelajar atau guru" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.step3.question3" +msgstr "Berapakah saiz pasukan anda?" + +#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, +#, fuzzy msgid "settings.detach" msgstr "Tanggalkan" -#: src/app/main/ui/viewer/inspect/exports.cljs:147, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:631, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:137, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:148, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:188, src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:158, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:399, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:410, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:430, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:441, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:458, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:472, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:309, src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:183, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:373, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:389, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:245, src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:172 +#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs, src/app/main/ui/workspace/sidebar/options/menus/layer.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs, src/app/main/ui/workspace/sidebar/options/menus/blur.cljs msgid "settings.multiple" msgstr "Bercampur" # SECTIONS -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:414 msgid "shortcut-section.basics" msgstr "Asas" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:420 msgid "shortcut-section.dashboard" msgstr "Papan pemuka" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:423 msgid "shortcut-section.viewer" msgstr "Penonton" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:417 msgid "shortcut-section.workspace" msgstr "Ruang kerja" # SUBSECTIONS -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:56 msgid "shortcut-subsection.alignment" msgstr "Penjajaran" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:57 msgid "shortcut-subsection.edit" msgstr "Sunting" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:58 msgid "shortcut-subsection.general-dashboard" msgstr "Generik" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:59 msgid "shortcut-subsection.general-viewer" msgstr "Generik" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:60 msgid "shortcut-subsection.main-menu" msgstr "Menu utama" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:61 msgid "shortcut-subsection.modify-layers" msgstr "Ubah suai lapisan" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:62 msgid "shortcut-subsection.navigation-dashboard" msgstr "Navigasi" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:63 msgid "shortcut-subsection.navigation-viewer" msgstr "Navigasi" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:64 msgid "shortcut-subsection.navigation-workspace" msgstr "Navigasi" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:65 msgid "shortcut-subsection.panels" msgstr "Panel" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:66 msgid "shortcut-subsection.path-editor" msgstr "laluan" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:67 msgid "shortcut-subsection.shape" msgstr "Bentuk" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:68 msgid "shortcut-subsection.text-editor" msgstr "Teks" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:69 msgid "shortcut-subsection.tools" msgstr "Alatan" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:70 msgid "shortcut-subsection.zoom-viewer" msgstr "Zum" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:71 msgid "shortcut-subsection.zoom-workspace" msgstr "Zum" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:72 msgid "shortcuts.add-comment" msgstr "Komen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:73 msgid "shortcuts.add-node" msgstr "Tambah nota" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:74 msgid "shortcuts.align-bottom" msgstr "Sejajarkan bahagian bawah" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:75 msgid "shortcuts.align-center" msgstr "Jajarkan tengah" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:76 msgid "shortcuts.align-hcenter" msgstr "Jajarkan tengah secara mendatar" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:77 msgid "shortcuts.align-justify" msgstr "Mengimbangkan keselarasan" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:78 msgid "shortcuts.align-left" msgstr "Jajar ke kiri" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:79 msgid "shortcuts.align-right" msgstr "Sejajar ke kanan" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:80 msgid "shortcuts.align-top" msgstr "Jajarkan atas" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:81 msgid "shortcuts.align-vcenter" msgstr "Jajarkan tengah secara menegak" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:82 msgid "shortcuts.artboard-selection" msgstr "Cipta papan daripada pemilihan" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:83 msgid "shortcuts.bold" msgstr "Togol tebal" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:84 msgid "shortcuts.bool-difference" msgstr "Perbezaan Boolean" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:85 msgid "shortcuts.bool-exclude" msgstr "Pengecualian Boolean" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:86 msgid "shortcuts.bool-intersection" msgstr "Persimpangan Boolean" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:87 msgid "shortcuts.bool-union" msgstr "Kesatuan Boolean" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:88 msgid "shortcuts.bring-back" msgstr "Hantar ke paling belakang" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:89 msgid "shortcuts.bring-backward" msgstr "Hantar ke belakang" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:90 msgid "shortcuts.bring-forward" msgstr "Bawa ke hadapan" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:91 msgid "shortcuts.bring-front" msgstr "Bawa ke paling hadapan" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:92 msgid "shortcuts.clear-undo" msgstr "Kosongkan buat asal" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:93 msgid "shortcuts.copy" msgstr "Salin" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:94 msgid "shortcuts.create-component" msgstr "Cipta komponen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:95 msgid "shortcuts.create-new-project" msgstr "Buat baharu" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:96 msgid "shortcuts.cut" msgstr "Potong" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:97 msgid "shortcuts.decrease-zoom" msgstr "Zum keluar" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:98 msgid "shortcuts.delete" msgstr "Padam" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:99 msgid "shortcuts.delete-node" msgstr "Padamkan nod" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:100 msgid "shortcuts.detach-component" msgstr "Tanggalkan komponen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:101 msgid "shortcuts.draw-curve" msgstr "Lengkung" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:102 msgid "shortcuts.draw-ellipse" msgstr "elips" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:103 msgid "shortcuts.draw-frame" msgstr "Papan" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:104 msgid "shortcuts.draw-nodes" msgstr "Lukis laluan" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:105 msgid "shortcuts.draw-path" msgstr "Laluan" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:106 msgid "shortcuts.draw-rect" msgstr "Segi empat tepat" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:107 msgid "shortcuts.draw-text" msgstr "Teks" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:108 msgid "shortcuts.duplicate" msgstr "Pendua" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:109 msgid "shortcuts.escape" msgstr "Batal" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:110 msgid "shortcuts.export-shapes" msgstr "Eksport bentuk" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:111 msgid "shortcuts.fit-all" msgstr "Zum untuk muat semua" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:112 msgid "shortcuts.flip-horizontal" msgstr "Terbalikkan secara mendatar" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:113 msgid "shortcuts.flip-vertical" msgstr "Terbalikkan secara menegak" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:114 msgid "shortcuts.font-size-dec" msgstr "Kurangkan saiz fon" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:115 msgid "shortcuts.font-size-inc" msgstr "Tambah saiz fon" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:116 msgid "shortcuts.go-to-drafts" msgstr "Pergi ke draf" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:117 msgid "shortcuts.go-to-libs" msgstr "Pergi ke perpustakaan kongsi" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:118 msgid "shortcuts.go-to-search" msgstr "Cari" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:119 msgid "shortcuts.group" msgstr "Kumpulan" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:120 msgid "shortcuts.h-distribute" msgstr "Edarkan secara mendatar" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:121 msgid "shortcuts.hide-ui" msgstr "Tunjukkan / Sembunyikan UI" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:122 msgid "shortcuts.increase-zoom" msgstr "Zum kedalam" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:123 msgid "shortcuts.insert-image" msgstr "Masukkan gambar" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:124 msgid "shortcuts.italic" msgstr "Togol condong" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:125 msgid "shortcuts.join-nodes" msgstr "Sambung nod" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:126 msgid "shortcuts.letter-spacing-dec" msgstr "Kurangkan jarak huruf" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:127 msgid "shortcuts.letter-spacing-inc" msgstr "Penambahan jarak huruf" diff --git a/frontend/translations/nb_NO.po b/frontend/translations/nb_NO.po index 2c229c6d03..990f3b2c1d 100644 --- a/frontend/translations/nb_NO.po +++ b/frontend/translations/nb_NO.po @@ -11,690 +11,680 @@ msgstr "" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 5.0-dev\n" -#: src/app/main/ui/auth/recovery.cljs:78 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.confirm-password" msgstr "Bekreft passord" -#: src/app/main/ui/auth/login.cljs:189, src/app/main/ui/viewer/login.cljs:90 +#: src/app/main/ui/auth/login.cljs msgid "auth.forgot-password" msgstr "Glemt passordet?" -#: src/app/main/ui/auth/register.cljs:254 +#: src/app/main/ui/auth/register.cljs msgid "auth.fullname" msgstr "Fullt navn" -#: src/app/main/ui/auth/recovery.cljs:71 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.new-password" msgstr "Skriv inn et nytt passord" -#: src/app/main/ui/auth/recovery.cljs:42 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.notifications.invalid-token-error" msgstr "Gjenopprettelsessymbolet er ugyldig." -#: src/app/main/ui/auth/login.cljs:179, src/app/main/ui/auth/register.cljs:115 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.password" msgstr "Passord" -#: src/app/main/ui/auth/recovery_request.cljs:88 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-submit" msgstr "Gjenopprett passord" -#: src/app/main/ui/auth/recovery.cljs:82 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.recovery-submit" msgstr "Endre passordet ditt" -#: src/app/main/ui/auth/login.cljs:298, src/app/main/ui/viewer/login.cljs:93 +#: src/app/main/ui/auth/login.cljs msgid "auth.register" msgstr "Ingen konto enda?" -#: src/app/main/ui/auth/login.cljs:302, src/app/main/ui/auth/register.cljs:121, src/app/main/ui/auth/register.cljs:263, src/app/main/ui/viewer/login.cljs:97 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs +#, fuzzy msgid "auth.register-submit" msgstr "Opprett konto" -#: src/app/main/ui/auth/register.cljs:140 +#: src/app/main/ui/auth/register.cljs +#, fuzzy msgid "auth.register-title" msgstr "Opprett konto" -#: src/app/main/ui/dashboard/file_menu.cljs:291, src/app/main/ui/workspace/main_menu.cljs:572 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.add-shared" msgstr "Legg til som delt bibliotek" -#: src/app/main/data/dashboard.cljs:762, src/app/main/data/dashboard.cljs:983 +#: src/app/main/data/dashboard.cljs, src/app/main/data/dashboard.cljs msgid "dashboard.copy-suffix" msgstr "(kopi)" -#: src/app/main/ui/components/context_menu_a11y.cljs:256, src/app/main/ui/dashboard/sidebar.cljs:646 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.default-team-name" msgstr "Din Penpot" -#: src/app/main/ui/dashboard/sidebar.cljs:571 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.delete-team" msgstr "Slett lag" -#: src/app/main/ui/dashboard/team.cljs:109 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.invite-profile" msgstr "Inviter til team" -#: src/app/main/ui/dashboard/sidebar.cljs:547, src/app/main/ui/dashboard/sidebar.cljs:556, src/app/main/ui/dashboard/sidebar.cljs:563, src/app/main/ui/dashboard/team.cljs:312 +#: src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.leave-team" msgstr "Forlat team" -#: src/app/main/ui/dashboard/libraries.cljs:53 +#: src/app/main/ui/dashboard/libraries.cljs msgid "dashboard.libraries-title" msgstr "Delte biblioteker" -#: src/app/main/ui/dashboard/file_menu.cljs:281, src/app/main/ui/dashboard/project_menu.cljs:100 +#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.move-to" msgstr "Flytt til" -#: src/app/main/ui/dashboard/file_menu.cljs:245 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.move-to-multi" msgstr "Flytt %s filer til" -#: src/app/main/ui/dashboard/file_menu.cljs:226 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.move-to-other-team" msgstr "Flytt til annet team" -#: src/app/main/ui/dashboard/files.cljs:105, src/app/main/ui/dashboard/projects.cljs:252, src/app/main/ui/dashboard/projects.cljs:253 +#: src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/files.cljs +#, fuzzy msgid "dashboard.new-file" msgstr "+ Ny fil" -#: src/app/main/ui/dashboard/projects.cljs:55 +#: src/app/main/ui/dashboard/projects.cljs msgid "dashboard.new-project" msgstr "+ Nytt prosjekt" -#: src/app/main/ui/dashboard/team.cljs:1081 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.num-of-members" msgstr "%s medlemmer" -#: src/app/main/ui/dashboard/file_menu.cljs:267 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.open-in-new-tab" msgstr "Åpne fil i ny fane" -#: src/app/main/ui/settings/password.cljs:106, src/app/main/ui/settings/password.cljs:119 +#: src/app/main/ui/settings/password.cljs msgid "dashboard.password-change" msgstr "Endre passord" -#: src/app/main/ui/dashboard/pin_button.cljs:24, src/app/main/ui/dashboard/project_menu.cljs:95 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.pin-unpin" msgstr "Fest/løsne" -#: src/app/main/ui/dashboard/projects.cljs:51 +#: src/app/main/ui/dashboard/projects.cljs msgid "dashboard.projects-title" msgstr "Prosjekter" -#: src/app/main/ui/settings/profile.cljs:86 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.remove-account" msgstr "Ønsker du å fjerne kontoen din?" #: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused +#, fuzzy msgid "dashboard.remove-shared" msgstr "Fjern som delt bibliotek" -#: src/app/main/ui/dashboard/sidebar.cljs:246, src/app/main/ui/dashboard/sidebar.cljs:247 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.search-placeholder" msgstr "Søk …" -#: src/app/main/ui/dashboard/search.cljs:55 +#: src/app/main/ui/dashboard/search.cljs +#, fuzzy msgid "dashboard.searching-for" msgstr "Şøker etter «%s» …" -#: src/app/main/ui/settings/options.cljs:56 +#: src/app/main/ui/settings/options.cljs +#, fuzzy msgid "dashboard.select-ui-language" msgstr "Velg grensesnittsspråk" -#: src/app/main/ui/settings/options.cljs:63 +#: src/app/main/ui/settings/options.cljs msgid "dashboard.select-ui-theme" msgstr "Velg drakt" -#: src/app/main/ui/dashboard/projects.cljs:282 +#: src/app/main/ui/dashboard/grid.cljs msgid "dashboard.show-all-files" msgstr "Vis alle filer" -#: src/app/main/ui/dashboard/team.cljs:1052 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.team-info" msgstr "Teaminfo" -#: src/app/main/ui/dashboard/team.cljs:1070 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.team-members" msgstr "Teammedlemmer" -#: src/app/main/ui/dashboard/team.cljs:1085 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.team-projects" msgstr "Lagprosjekter" -#: src/app/main/ui/settings/options.cljs:61 +#: src/app/main/ui/settings/options.cljs msgid "dashboard.theme-change" msgstr "Utseende" -#: src/app/main/ui/settings.cljs:31 +#: src/app/main/ui/settings.cljs msgid "dashboard.your-account-title" msgstr "Din konto" -#: src/app/main/ui/settings/profile.cljs:62 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.your-name" msgstr "Ditt navn" -#: src/app/main/ui/dashboard/file_menu.cljs:38, src/app/main/ui/dashboard/fonts.cljs:33, src/app/main/ui/dashboard/libraries.cljs:42, src/app/main/ui/dashboard/projects.cljs:318, src/app/main/ui/dashboard/search.cljs:30, src/app/main/ui/dashboard/sidebar.cljs:312, src/app/main/ui/dashboard/team.cljs:495, src/app/main/ui/dashboard/team.cljs:729, src/app/main/ui/dashboard/team.cljs:991, src/app/main/ui/dashboard/team.cljs:1038 +#: src/app/main/ui/dashboard/search.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/libraries.cljs, src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.your-penpot" msgstr "Din Penpot" -#: src/app/main/ui/confirm.cljs:36, src/app/main/ui/workspace/plugins.cljs:246 +#: src/app/main/ui/confirm.cljs msgid "ds.confirm-cancel" msgstr "Avbryt" -#: src/app/main/ui/confirm.cljs:37, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:141 +#: src/app/main/ui/confirm.cljs +#, fuzzy msgid "ds.confirm-ok" msgstr "OK" -#: src/app/main/ui/confirm.cljs:35, src/app/main/ui/confirm.cljs:39 +#: src/app/main/ui/confirm.cljs, src/app/main/ui/confirm.cljs msgid "ds.confirm-title" msgstr "Er du sikker?" -#: src/app/main/ui/components/color_input.cljs:57 +#: src/app/main/ui/components/color_input.cljs msgid "errors.invalid-color" msgstr "Ugyldig farge" -#: src/app/main/ui/auth/verify_token.cljs:60 +#: src/app/main/ui/auth/verify_token.cljs msgid "errors.unexpected-token" msgstr "Ukjent symbol" -#: src/app/main/ui/settings/feedback.cljs:77 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.description" msgstr "Beskrivelse" -#: src/app/main/ui/settings/feedback.cljs:72 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.subject" msgstr "Emne" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:115 +#: src/app/main/ui/inspect/attributes/blur.cljs msgid "inspect.attributes.blur.value" msgstr "Verdi" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:99, src/app/main/ui/viewer/inspect/attributes/image.cljs:51 +#: src/app/main/ui/inspect/attributes/image.cljs msgid "inspect.attributes.image.download" msgstr "Last ned kildebilde" -#: src/app/main/ui/viewer/inspect/attributes/image.cljs:39 +#: src/app/main/ui/inspect/attributes/image.cljs msgid "inspect.attributes.image.height" msgstr "Høyde" -#: src/app/main/ui/viewer/inspect/attributes/image.cljs:32 +#: src/app/main/ui/inspect/attributes/image.cljs msgid "inspect.attributes.image.width" msgstr "Bredde" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.height" msgstr "Høyde" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.left" msgstr "Venstre" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.width" msgstr "Bredde" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:57 +#: src/app/main/ui/inspect/attributes/shadow.cljs msgid "inspect.attributes.shadow" msgstr "Skygge" #: src/app/main/ui/inspect/attributes/stroke.cljs -#, unused msgid "inspect.attributes.stroke.width" msgstr "Bredde" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:81, src/app/main/ui/viewer/inspect/attributes/text.cljs:194 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography" msgstr "Typografi" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:89 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.font-family" msgstr "Skriftfamilie" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:107 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.font-size" msgstr "Skriftstørrelse" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:98 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.font-style" msgstr "Skriftstil" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:125 +#: src/app/main/ui/inspect/right_sidebar.cljs msgid "inspect.tabs.code" msgstr "Kode" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:98 msgid "inspect.tabs.code.selected.circle" msgstr "Sirkel" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:102 msgid "inspect.tabs.code.selected.group" msgstr "Gruppe" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:103 msgid "inspect.tabs.code.selected.image" msgstr "Bilde" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:105 msgid "inspect.tabs.code.selected.path" msgstr "Sti" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:107 msgid "inspect.tabs.code.selected.svg-raw" msgstr "SVG" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:108 msgid "inspect.tabs.code.selected.text" msgstr "Tekst" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:115 +#: src/app/main/ui/inspect/right_sidebar.cljs msgid "inspect.tabs.info" msgstr "Info" -#: src/app/main/ui/dashboard/import.cljs:527 msgid "labels.accept" msgstr "Godta" -#: src/app/main/data/common.cljs:112, src/app/main/ui/dashboard/change_owner.cljs:69, src/app/main/ui/dashboard/import.cljs:514, src/app/main/ui/dashboard/team.cljs:868, src/app/main/ui/delete_shared.cljs:35, src/app/main/ui/export.cljs:164, src/app/main/ui/export.cljs:460, src/app/main/ui/settings/access_tokens.cljs:188, src/app/main/ui/viewer/share_link.cljs:203, src/app/main/ui/workspace/sidebar/assets/groups.cljs:149 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.cancel" msgstr "Avbryt" -#: src/app/main/ui/settings/password.cljs:103 +#: src/app/main/ui/settings/password.cljs msgid "labels.confirm-password" msgstr "Bekreft passord" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:157, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:190 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "labels.create" msgstr "Opprett" -#: src/app/main/ui/dashboard/team_form.cljs:101, src/app/main/ui/dashboard/team_form.cljs:121 +#: src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/dashboard/team_form.cljs msgid "labels.create-team" msgstr "Opprett nytt lag" -#: src/app/main/ui/dashboard/team_form.cljs:113 +#: src/app/main/ui/dashboard/team_form.cljs msgid "labels.create-team.placeholder" msgstr "Skriv inn nytt lagnavn" -#, unused msgid "labels.custom-fonts" msgstr "Egendefinerte skrifter" -#: src/app/main/ui/settings/sidebar.cljs:73 +#: src/app/main/ui/settings/sidebar.cljs msgid "labels.dashboard" msgstr "Oversikt" -#: src/app/main/ui/dashboard/file_menu.cljs:306, src/app/main/ui/dashboard/fonts.cljs:255, src/app/main/ui/dashboard/fonts.cljs:332, src/app/main/ui/dashboard/fonts.cljs:346, src/app/main/ui/dashboard/project_menu.cljs:115, src/app/main/ui/dashboard/team.cljs:904, src/app/main/ui/settings/access_tokens.cljs:209, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:209 +#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "labels.delete" msgstr "Slett" -#: src/app/main/ui/comments.cljs:357 +#: src/app/main/ui/comments.cljs msgid "labels.delete-comment" msgstr "Slett kommentar" -#: src/app/main/ui/comments.cljs:354 +#: src/app/main/ui/comments.cljs msgid "labels.delete-comment-thread" msgstr "Slett tråd" -#: src/app/main/ui/dashboard/file_menu.cljs:262 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.delete-multi-files" msgstr "Slett %s filer" -#: src/app/main/ui/dashboard/file_menu.cljs:28, src/app/main/ui/dashboard/files.cljs:72, src/app/main/ui/dashboard/files.cljs:156, src/app/main/ui/dashboard/projects.cljs:220, src/app/main/ui/dashboard/projects.cljs:224, src/app/main/ui/dashboard/sidebar.cljs:791 +#: src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/files.cljs, src/app/main/ui/dashboard/files.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "labels.drafts" msgstr "Kladder" -#: src/app/main/ui/comments.cljs:350, src/app/main/ui/dashboard/fonts.cljs:252, src/app/main/ui/dashboard/team.cljs:902, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:205 +#: src/app/main/ui/comments.cljs msgid "labels.edit" msgstr "Rediger" -#: src/app/main/ui/dashboard/fonts.cljs:412 msgid "labels.font-family" msgstr "Skriftfamilie" -#, unused msgid "labels.font-providers" msgstr "Skrifttilbydere" -#: src/app/main/ui/dashboard/fonts.cljs:52, src/app/main/ui/dashboard/sidebar.cljs:811 msgid "labels.fonts" msgstr "Skrifter" -#: src/app/main/ui/dashboard/fonts.cljs:410 msgid "labels.installed-fonts" msgstr "Installerte skrifter" -#: src/app/main/ui/settings/options.cljs:51 +#: src/app/main/ui/settings/options.cljs msgid "labels.language" msgstr "Språk" -#: src/app/main/ui/dashboard/sidebar.cljs:1040 +#: src/app/main/ui/settings.cljs, src/app/main/ui/dashboard/sidebar.cljs +#, fuzzy msgid "labels.logout" msgstr "Logg ut" -#: src/app/main/ui/dashboard/sidebar.cljs:510, src/app/main/ui/dashboard/team.cljs:87, src/app/main/ui/dashboard/team.cljs:95 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.members" msgstr "Medlemmer" -#: src/app/main/ui/settings/password.cljs:96 +#: src/app/main/ui/settings/password.cljs msgid "labels.new-password" msgstr "Nytt passord" -#: src/app/main/ui/settings/password.cljs:89 +#: src/app/main/ui/settings/password.cljs msgid "labels.old-password" msgstr "Gammelt passord" -#: src/app/main/ui/dashboard/team.cljs:286, src/app/main/ui/dashboard/team.cljs:518, src/app/main/ui/dashboard/team.cljs:1076 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs msgid "labels.owner" msgstr "Eier" -#: src/app/main/ui/settings/sidebar.cljs:87 +#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.password" msgstr "Passord" -#: src/app/main/ui/settings/profile.cljs:118, src/app/main/ui/settings/sidebar.cljs:82 +#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.profile" msgstr "Profil" -#: src/app/main/ui/dashboard/sidebar.cljs:784 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.projects" msgstr "Prosjekter" #: src/app/main/ui/workspace/libraries.cljs, src/app/main/ui/dashboard/team.cljs -#, unused msgid "labels.remove" msgstr "Fjern" -#: src/app/main/ui/dashboard/file_menu.cljs:271, src/app/main/ui/dashboard/project_menu.cljs:85, src/app/main/ui/dashboard/sidebar.cljs:539, src/app/main/ui/workspace/sidebar/assets/groups.cljs:157 +#: src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "labels.rename" msgstr "Gi nytt navn" -#: src/app/main/ui/static.cljs:61, src/app/main/ui/static.cljs:70, src/app/main/ui/static.cljs:148 +#: src/app/main/ui/static.cljs, src/app/main/ui/static.cljs, src/app/main/ui/static.cljs msgid "labels.retry" msgstr "Prøv igjen" -#: src/app/main/ui/dashboard/team.cljs:469, src/app/main/ui/dashboard/team.cljs:709 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.role" msgstr "Rolle" -#: src/app/main/ui/dashboard/fonts.cljs:380, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:191 msgid "labels.save" msgstr "Lagre" -#: src/app/main/ui/dashboard/fonts.cljs:415 +#, fuzzy msgid "labels.search-font" msgstr "Søk etter skrift" -#: src/app/main/ui/settings/feedback.cljs:82 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.send" msgstr "Send" -#: src/app/main/ui/settings/feedback.cljs:82 +#: src/app/main/ui/settings/feedback.cljs +#, fuzzy msgid "labels.sending" msgstr "Sender …" -#: src/app/main/ui/dashboard/sidebar.cljs:530, src/app/main/ui/dashboard/team.cljs:88, src/app/main/ui/dashboard/team.cljs:102, src/app/main/ui/settings/options.cljs:84, src/app/main/ui/settings/sidebar.cljs:93 +#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.settings" msgstr "Innstillinger" -#: src/app/main/ui/dashboard/sidebar.cljs:800 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.shared-libraries" msgstr "Delte bibliotek" -#: src/app/main/ui/viewer/comments.cljs:82, src/app/main/ui/workspace/comments.cljs:55, src/app/main/ui/workspace/comments.cljs:135 +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs msgid "labels.show-all-comments" msgstr "Vis alle kommentarer" -#: src/app/main/ui/dashboard/fonts.cljs:241 msgid "labels.upload" msgstr "Last opp" -#: src/app/main/ui/dashboard/fonts.cljs:169 msgid "labels.upload-custom-fonts" msgstr "Last opp egendefinerte skrifter" -#: src/app/main/ui/dashboard/fonts.cljs:240 msgid "labels.uploading" msgstr "Laster opp …" -#: src/app/main/ui/comments.cljs:194 +#: src/app/main/ui/comments.cljs msgid "labels.write-new-comment" msgstr "Skriv ny kommentar" -#: src/app/main/data/media.cljs:49, src/app/main/data/workspace/media.cljs:223, src/app/main/data/workspace/media.cljs:453 +#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs msgid "media.loading" msgstr "Laster inn bilde …" -#: src/app/main/data/common.cljs:113 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +#, fuzzy msgid "modals.add-shared-confirm.accept" msgstr "Legg til som delt bibliotek" -#: src/app/main/ui/settings/change_email.cljs:127 +#: src/app/main/ui/settings/change_email.cljs +#, fuzzy msgid "modals.change-email.confirm-email" msgstr "Bekreft ny e-postadresse" -#: src/app/main/ui/settings/delete_account.cljs:64 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.confirm" msgstr "Ja, slett kontoen min" -#: src/app/main/ui/comments.cljs:298 +#: src/app/main/ui/comments.cljs msgid "modals.delete-comment-thread.accept" msgstr "Slett samtale" -#: src/app/main/ui/comments.cljs:296 +#: src/app/main/ui/comments.cljs msgid "modals.delete-comment-thread.title" msgstr "Slett samtale" -#: src/app/main/ui/dashboard/file_menu.cljs:123 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-confirm.accept" msgstr "Slett fil" -#: src/app/main/ui/dashboard/file_menu.cljs:117 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-multi-confirm.accept" msgstr "Slett filer" -#: src/app/main/ui/workspace/context_menu.cljs:521, src/app/main/ui/workspace/sidebar/sitemap.cljs:44 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs msgid "modals.delete-page.title" msgstr "Slett side" -#: src/app/main/ui/dashboard/project_menu.cljs:69 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "modals.delete-project-confirm.accept" msgstr "Slett prosjekt" -#: src/app/main/ui/dashboard/team.cljs:427 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.delete-team-member-confirm.accept" msgstr "Slett medlem" -#: src/app/main/ui/dashboard/team.cljs:425 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.delete-team-member-confirm.title" msgstr "Slett teammedlem" -#: src/app/main/ui/dashboard/sidebar.cljs:402, src/app/main/ui/dashboard/sidebar.cljs:424, src/app/main/ui/dashboard/team.cljs:394, src/app/main/ui/dashboard/team.cljs:416 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-confirm.accept" msgstr "Forlat team" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:379 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.cancel" msgstr "Avbryt" -#: src/app/main/ui/dashboard/team.cljs:154, src/app/main/ui/dashboard/team.cljs:595 +#: src/app/main/ui/dashboard/team.cljs +#, fuzzy msgid "notifications.invitation-email-sent" msgstr "Invitasjon sendt" -#: src/app/main/ui/settings/options.cljs:29, src/app/main/ui/settings/profile.cljs:35 +#: src/app/main/ui/settings/profile.cljs, src/app/main/ui/settings/options.cljs +#, fuzzy msgid "notifications.profile-saved" msgstr "Profil lagret" -#: src/app/main/ui/settings/options.cljs:80 +#: src/app/main/ui/settings/options.cljs +#, fuzzy msgid "title.settings.options" msgstr "Innstillinger - Penpot" -#: src/app/main/ui/settings/password.cljs:115 +#: src/app/main/ui/settings/password.cljs +#, fuzzy msgid "title.settings.password" msgstr "Passord - Penpot" -#: src/app/main/ui/settings/profile.cljs:115 +#: src/app/main/ui/settings/profile.cljs +#, fuzzy msgid "title.settings.profile" msgstr "Profil - Penpot" -#: src/app/main/ui/dashboard/team.cljs:1036 +#: src/app/main/ui/dashboard/team.cljs +#, fuzzy msgid "title.team-settings" msgstr "Innstillinger - %s - Penpot" -#: src/app/main/ui/workspace.cljs:190 +#: src/app/main/ui/workspace.cljs +#, fuzzy msgid "title.workspace" msgstr "%s - Penpot" -#: src/app/main/ui/dashboard/grid.cljs:130, src/app/main/ui/dashboard/grid.cljs:162, src/app/main/ui/workspace/sidebar/assets/colors.cljs:485, src/app/main/ui/workspace/sidebar/assets.cljs:150 +#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.colors" msgstr "Farger" -#: src/app/main/ui/dashboard/grid.cljs:126, src/app/main/ui/dashboard/grid.cljs:141, src/app/main/ui/workspace/sidebar/assets/components.cljs:513, src/app/main/ui/workspace/sidebar/assets.cljs:139 +#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.components" msgstr "Komponenter" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:131 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.create-group" msgstr "Opprett en gruppe" -#: src/app/main/ui/workspace/context_menu.cljs:529, src/app/main/ui/workspace/sidebar/assets/colors.cljs:251, src/app/main/ui/workspace/sidebar/assets/components.cljs:577, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:424, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:443 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.delete" msgstr "Slett" -#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:247, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:439 +#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.edit" msgstr "Rediger" -#: src/app/main/ui/workspace/sidebar/assets/graphics.cljs:384, src/app/main/ui/workspace/sidebar/assets.cljs:145 +#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.graphics" msgstr "Grafikk" -#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:255, src/app/main/ui/workspace/sidebar/assets/components.cljs:581, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:428, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:448 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.group" msgstr "Gruppe" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:141 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.group-name" msgstr "Gruppenavn" -#: src/app/main/ui/workspace/sidebar/assets.cljs:168 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.libraries" msgstr "Bibliotek" -#: src/app/main/ui/workspace/context_menu.cljs:532, src/app/main/ui/workspace/sidebar/assets/colors.cljs:243, src/app/main/ui/workspace/sidebar/assets/components.cljs:566, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:421, src/app/main/ui/workspace/sidebar/assets/groups.cljs:63, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:434 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.rename" msgstr "Gi nytt navn" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused msgid "workspace.assets.typography.font-id" msgstr "Skrift" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:505 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.font-size" msgstr "Størrelse" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:501 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.font-variant-id" msgstr "Variant" -#: src/app/main/ui/workspace/main_menu.cljs:321 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.show-rules" msgstr "Vis regler" #: src/app/main/ui/workspace/libraries.cljs -#, unused msgid "workspace.libraries.add" msgstr "Legg til" -#: src/app/main/ui/workspace/libraries.cljs:80, src/app/main/ui/workspace/libraries.cljs:99 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.colors" msgstr "%s farger" -#: src/app/main/ui/workspace/color_palette_ctx_menu.cljs:60, src/app/main/ui/workspace/colorpicker/libraries.cljs:73, src/app/main/ui/workspace/text_palette_ctx_menu.cljs:50 +#: src/app/main/ui/workspace/colorpicker/libraries.cljs, src/app/main/ui/workspace/colorpalette.cljs msgid "workspace.libraries.colors.file-library" msgstr "Filbibliotek" -#: src/app/main/ui/workspace/color_palette_ctx_menu.cljs:82, src/app/main/ui/workspace/colorpicker/libraries.cljs:72 +#: src/app/main/ui/workspace/colorpicker/libraries.cljs, src/app/main/ui/workspace/colorpalette.cljs msgid "workspace.libraries.colors.recent-colors" msgstr "Nylige farger" -#: src/app/main/ui/workspace/colorpicker.cljs:372 +#: src/app/main/ui/workspace/colorpicker.cljs msgid "workspace.libraries.colors.save-color" msgstr "Lagre fargestil" -#: src/app/main/ui/workspace/libraries.cljs:74, src/app/main/ui/workspace/libraries.cljs:91 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.components" msgstr "%s komponenter" -#: src/app/main/ui/workspace/libraries.cljs:215 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.file-library" msgstr "Filbibliotek" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:600, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:605 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs msgid "workspace.options.component" msgstr "Komponent" -#: src/app/main/ui/workspace/sidebar/options.cljs:112 +#: src/app/main/ui/workspace/sidebar/options.cljs msgid "workspace.options.design" msgstr "Design" -#: src/app/main/ui/export.cljs:172, src/app/main/ui/export.cljs:241, src/app/main/ui/viewer/inspect/exports.cljs:194, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:236 +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs msgid "workspace.options.exporting-object" msgstr "Eksporterer …" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.params.columns" msgstr "Kolonner" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:246 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.height" msgstr "Høyde" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.params.rows" msgstr "Rader" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:216, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:290 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.set-default" msgstr "Sett som forvalg" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.params.size" msgstr "Størrelse" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.params.type" msgstr "Type" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:211, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:288 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.use-default" msgstr "Bruk forvalg" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:247 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.width" msgstr "Bredde" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:158 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.row" msgstr "Rader" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:127 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.lighten" msgstr "Lysne" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:128 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.screen" msgstr "Skjerm" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:532 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.radius.all-corners" msgstr "Alle hjørner" diff --git a/frontend/translations/nl.po b/frontend/translations/nl.po index 702293e5b8..7e3bf1d07e 100644 --- a/frontend/translations/nl.po +++ b/frontend/translations/nl.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "PO-Revision-Date: 2024-06-17 08:07+0000\n" "Last-Translator: Anonymous \n" -"Language-Team: Dutch " -"\n" +"Language-Team: Dutch \n" "Language: nl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" @@ -11,536 +11,502 @@ msgstr "" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 5.6-dev\n" -#: src/app/main/ui/auth/register.cljs:151, src/app/main/ui/viewer/login.cljs:104 +#: src/app/main/ui/auth/register.cljs msgid "auth.already-have-account" msgstr "Heb je al een account?" -#: src/app/main/ui/auth/register.cljs:299 +#: src/app/main/ui/auth/register.cljs msgid "auth.check-your-email" msgstr "" "Controleer je e-mail en klik op de link om te verifiëren en Penpot te gaan " "gebruiken." -#: src/app/main/ui/auth/recovery.cljs:78 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.confirm-password" msgstr "Wachtwoord bevestigen" -#: src/app/main/ui/auth/register.cljs:163 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.create-demo-account" msgstr "Demo-account aanmaken" #: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs -#, unused msgid "auth.create-demo-profile" msgstr "Wil je het gewoon proberen?" -#: src/app/main/ui/auth/login.cljs:43 +#: src/app/main/ui/auth/register.cljs msgid "auth.demo-warning" msgstr "" "Dit is een DEMO-service, GEBRUIK DIT NIET voor echt werk, de projecten " "worden regelmatig gewist." -#: src/app/main/ui/auth/login.cljs:189, src/app/main/ui/viewer/login.cljs:90 +#: src/app/main/ui/auth/login.cljs msgid "auth.forgot-password" msgstr "Wachtwoord vergeten?" -#: src/app/main/ui/auth/register.cljs:254 +#: src/app/main/ui/auth/register.cljs msgid "auth.fullname" msgstr "Volledige naam" -#: src/app/main/ui/auth/login.cljs:282 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-account-title" msgstr "Log in op mijn account" -#: src/app/main/ui/auth/register.cljs:155, src/app/main/ui/viewer/login.cljs:107 +#: src/app/main/ui/auth/register.cljs +#, fuzzy msgid "auth.login-here" msgstr "Hier inloggen" -#: src/app/main/ui/auth/login.cljs:195 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-submit" msgstr "Inloggen" -#: src/app/main/ui/auth/login.cljs:285 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-tagline" msgstr "" "Penpot is de gratis open-source ontwerptool voor samenwerking op het gebied " "van ontwerp en code" -#: src/app/main/ui/auth/login.cljs:222 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-github-submit" msgstr "GitHub" -#: src/app/main/ui/auth/login.cljs:228 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-gitlab-submit" msgstr "GitLab" -#: src/app/main/ui/auth/login.cljs:216 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-google-submit" msgstr "Google" -#: src/app/main/ui/auth/login.cljs:201 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-ldap-submit" msgstr "LDAP" -#: src/app/main/ui/auth/login.cljs:234, src/app/main/ui/auth/login.cljs:255 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-oidc-submit" msgstr "OpenID" -#: src/app/main/ui/auth/register.cljs:217, src/app/main/ui/dashboard/team_form.cljs:76, src/app/main/ui/onboarding/team_choice.cljs:180, src/app/main/ui/settings/access_tokens.cljs:66, src/app/main/ui/settings/feedback.cljs:34, src/app/main/ui/settings/profile.cljs:45, src/app/main/ui/workspace/sidebar/assets/groups.cljs:108 +#: src/app/main/ui/settings/team-form.cljs, src/app/main/ui/auth/register.cljs, +#: src/app/main/ui/dashboard/team_form.cljs, +#: src/app/main/ui/onboarding/team_choice.cljs, +#: src/app/main/ui/settings/access_tokens.cljs, +#: src/app/main/ui/settings/feedback.cljs, +#: src/app/main/ui/settings/profile.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "auth.name.not-all-space" msgstr "De naam mag geen spatie bevatten." -#: src/app/main/ui/auth/register.cljs:218, src/app/main/ui/dashboard/team_form.cljs:77, src/app/main/ui/onboarding/team_choice.cljs:181, src/app/main/ui/settings/access_tokens.cljs:67, src/app/main/ui/settings/feedback.cljs:33, src/app/main/ui/settings/profile.cljs:44, src/app/main/ui/workspace/sidebar/assets/groups.cljs:109 +#: src/app/main/ui/auth/register.cljs, +#: src/app/main/ui/dashboard/team_form.cljs, +#: src/app/main/ui/onboarding/team_choice.cljs, +#: src/app/main/ui/settings/access_tokens.cljs, +#: src/app/main/ui/settings/feedback.cljs, +#: src/app/main/ui/settings/profile.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "auth.name.too-long" msgstr "De naam mag maximaal 250 tekens bevatten." -#: src/app/main/ui/auth/recovery.cljs:71 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.new-password" msgstr "Typ een nieuw wachtwoord" -#: src/app/main/ui/auth/recovery.cljs:42 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.notifications.invalid-token-error" msgstr "De herstelbewijsstuk is ongeldig." -#: src/app/main/ui/auth/recovery.cljs:46 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.notifications.password-changed-successfully" msgstr "Wachtwoord succesvol gewijzigd" -#: src/app/main/ui/auth/recovery_request.cljs:57 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.notifications.profile-not-verified" msgstr "Profiel is niet geverifieerd. Verifieer het profiel voordat je verder gaat." -#: src/app/main/ui/auth/recovery_request.cljs:40 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.notifications.recovery-token-sent" msgstr "Wachtwoordherstel-link is per e-mail naar je verzonden." -#: src/app/main/ui/auth/verify_token.cljs:47 +#: src/app/main/ui/auth/verify_token.cljs msgid "auth.notifications.team-invitation-accepted" msgstr "Succesvol toegetreden tot het team" -#: src/app/main/ui/auth/login.cljs:179, src/app/main/ui/auth/register.cljs:115 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.password" msgstr "Wachtwoord" -#: src/app/main/ui/auth/register.cljs:114 +#: src/app/main/ui/auth/register.cljs msgid "auth.password-length-hint" msgstr "Minimaal 8 tekens" -#: src/app/main/ui/auth/recovery.cljs:61, src/app/main/ui/auth/recovery.cljs:62, src/app/main/ui/auth/register.cljs:81, src/app/main/ui/settings/password.cljs:75, src/app/main/ui/settings/password.cljs:76, src/app/main/ui/settings/password.cljs:77 +#: src/app/main/ui/auth/register.cljs msgid "auth.password-not-empty" msgstr "Het wachtwoord mag geen spatie bevatten." -#: src/app/main/ui/auth.cljs:41 msgid "auth.privacy-policy" msgstr "Privacybeleid" -#: src/app/main/ui/auth/recovery_request.cljs:88 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-submit" msgstr "Wachtwoord herstellen" -#: src/app/main/ui/auth/recovery_request.cljs:101 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-subtitle" msgstr "We sturen je een e-mail met instructies" -#: src/app/main/ui/auth/recovery_request.cljs:100 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-title" msgstr "Wachtwoord vergeten?" -#: src/app/main/ui/auth/recovery.cljs:82 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.recovery-submit" msgstr "Wachtwoord wijzigen" -#: src/app/main/ui/auth/login.cljs:298, src/app/main/ui/viewer/login.cljs:93 +#: src/app/main/ui/auth/login.cljs msgid "auth.register" msgstr "Nog geen account?" -#: src/app/main/ui/auth/login.cljs:302, src/app/main/ui/auth/register.cljs:121, src/app/main/ui/auth/register.cljs:263, src/app/main/ui/viewer/login.cljs:97 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.register-submit" msgstr "Account aanmaken" -#: src/app/main/ui/auth/register.cljs:140 +#: src/app/main/ui/auth/register.cljs msgid "auth.register-title" msgstr "Account aanmaken" #: src/app/main/ui/auth.cljs -#, unused msgid "auth.sidebar-tagline" msgstr "De open-source oplossing voor ontwerp en prototyping." -#: src/app/main/ui/auth.cljs:33, src/app/main/ui/dashboard/sidebar.cljs:1022, src/app/main/ui/workspace/main_menu.cljs:150 msgid "auth.terms-of-service" msgstr "Gebruiksvoorwaarden" -#, unused +#: src/app/main/ui/auth/register.cljs msgid "auth.terms-privacy-agreement" msgstr "" "Met het aanmaken van een nieuw account ga je akkoord met onze " "gebruiksvoorwaarden en ons privacybeleid." -#: src/app/main/ui/auth/register.cljs:297 +#: src/app/main/ui/auth/register.cljs msgid "auth.verification-email-sent" msgstr "We hebben een verificatie-e-mail verzonden naar" #: src/app/main/ui/onboarding/questions.cljs -#, unused msgid "branding-illustrations-marketing-pieces" msgstr "…branding, illustraties, marketingstukken, etc." -#: src/app/main/ui/workspace/libraries.cljs:228 msgid "common.publish" msgstr "Publiceren" -#: src/app/main/ui/viewer/share_link.cljs:304, src/app/main/ui/viewer/share_link.cljs:314 msgid "common.share-link.all-users" msgstr "Alle Penpot-gebruikers" -#: src/app/main/ui/viewer/share_link.cljs:198 msgid "common.share-link.confirm-deletion-link-description" msgstr "" "Weet je zeker dat je deze link wilt verwijderen? Als je dit doet, is het " "voor niemand meer beschikbaar" -#: src/app/main/ui/viewer/share_link.cljs:259, src/app/main/ui/viewer/share_link.cljs:289 msgid "common.share-link.current-tag" msgstr "(huidig)" -#: src/app/main/ui/viewer/share_link.cljs:207, src/app/main/ui/viewer/share_link.cljs:214 msgid "common.share-link.destroy-link" msgstr "Link verwijderen" -#: src/app/main/ui/viewer/share_link.cljs:221 msgid "common.share-link.get-link" msgstr "Link ophalen" -#: src/app/main/ui/viewer/share_link.cljs:139 msgid "common.share-link.link-copied-success" msgstr "Link gekopieerd" -#: src/app/main/ui/viewer/share_link.cljs:231 msgid "common.share-link.manage-ops" msgstr "Rechten beheren" -#: src/app/main/ui/viewer/share_link.cljs:277 msgid "common.share-link.page-shared" msgid_plural "common.share-link.page-shared" msgstr[0] "1 pagina gedeeld" msgstr[1] "%s pagina's gedeeld" -#: src/app/main/ui/viewer/share_link.cljs:298 msgid "common.share-link.permissions-can-comment" msgstr "Kan commentaar geven" -#: src/app/main/ui/viewer/share_link.cljs:308 msgid "common.share-link.permissions-can-inspect" msgstr "Kan code inspecteren" -#: src/app/main/ui/viewer/share_link.cljs:193 msgid "common.share-link.permissions-hint" msgstr "Iedereen met de link heeft toegang" -#: src/app/main/ui/viewer/share_link.cljs:241 msgid "common.share-link.permissions-pages" msgstr "Gedeelde pagina's" -#: src/app/main/ui/viewer/share_link.cljs:183 msgid "common.share-link.placeholder" msgstr "De deelbare link zal hier verschijnen" -#: src/app/main/ui/viewer/share_link.cljs:303, src/app/main/ui/viewer/share_link.cljs:313 msgid "common.share-link.team-members" msgstr "Alleen teamleden" -#: src/app/main/ui/viewer/share_link.cljs:171 msgid "common.share-link.title" msgstr "Prototypes delen" -#: src/app/main/ui/viewer/share_link.cljs:269 msgid "common.share-link.view-all" msgstr "Alles selecteren" -#: src/app/main/ui/workspace/libraries.cljs:224 msgid "common.unpublish" msgstr "Publicatie ongedaan maken" -#: src/app/main/ui/dashboard/projects.cljs:85 +#: src/app/main/ui/dashboard/projects.cljs msgid "dasboard.team-hero.management" msgstr "Teambeheer" -#: src/app/main/ui/dashboard/projects.cljs:84 +#: src/app/main/ui/dashboard/projects.cljs msgid "dasboard.team-hero.text" msgstr "" "Penpot is bedoeld voor teams. Nodig leden uit om samen te werken aan " "projecten en bestanden" -#: src/app/main/ui/dashboard/projects.cljs:82 +#: src/app/main/ui/dashboard/projects.cljs msgid "dasboard.team-hero.title" msgstr "Werk samen!" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.tutorial-hero.info" msgstr "" "Leer de basisprincipes van Penpot terwijl je plezier hebt met deze " "interactieve introductie." #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.tutorial-hero.start" msgstr "Start de introductie" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.tutorial-hero.title" msgstr "Praktische introductie" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.walkthrough-hero.info" msgstr "Maak een rondleiding door Penpot en leer de belangrijkste functies kennen." #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.walkthrough-hero.start" msgstr "Start de rondleiding" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.walkthrough-hero.title" msgstr "Rondleiding door de interface" -#: src/app/main/ui/settings/access_tokens.cljs:115 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.copied-success" msgstr "Toegangsbewijs gekopieerd" -#: src/app/main/ui/settings/access_tokens.cljs:202 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.create" msgstr "Nieuw toegangsbewijs aanmaken" -#: src/app/main/ui/settings/access_tokens.cljs:76 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.create.success" msgstr "Toegangsbewijs is succesvol aangemaakt." -#: src/app/main/ui/settings/access_tokens.cljs:300 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.empty.add-one" msgstr "Klik op de knop \"Nieuw toegangsbewijs aanmaken\" om er een aan te maken." -#: src/app/main/ui/settings/access_tokens.cljs:299 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.empty.no-access-tokens" msgstr "Je hebt nog geen toegangsbewijzen." -#: src/app/main/ui/settings/access_tokens.cljs:53 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.errors-required-name" msgstr "De naam is verplicht" -#: src/app/main/ui/settings/access_tokens.cljs:147 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-180-days" msgstr "180 dagen" -#: src/app/main/ui/settings/access_tokens.cljs:144 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-30-days" msgstr "30 dagen" -#: src/app/main/ui/settings/access_tokens.cljs:145 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-60-days" msgstr "60 dagen" -#: src/app/main/ui/settings/access_tokens.cljs:146 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-90-days" msgstr "90 dagen" -#: src/app/main/ui/settings/access_tokens.cljs:143 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-never" msgstr "Nooit" -#: src/app/main/ui/settings/access_tokens.cljs:282 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expired-on" msgstr "Verlopen op %s" -#: src/app/main/ui/settings/access_tokens.cljs:283 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expires-on" msgstr "Verloopt op %s" -#: src/app/main/ui/settings/access_tokens.cljs:281 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.no-expiration" msgstr "Geen verloopdatum" -#: src/app/main/ui/settings/access_tokens.cljs:197 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.personal" msgstr "Persoonlijke toegangsbewijzen" -#: src/app/main/ui/settings/access_tokens.cljs:198 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.personal.description" msgstr "" "Persoonlijke toegangsbewijzen functioneren als alternatief voor ons " "login/wachtwoord-authenticatiesysteem en kunnen worden gebruikt om een " "applicatie toegang te geven tot de interne Penpot API" -#: src/app/main/ui/settings/access_tokens.cljs:154 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.token-will-expire" msgstr "Het toegangsbewijs verloopt op %s" -#: src/app/main/ui/settings/access_tokens.cljs:155 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.token-will-not-expire" msgstr "Het toegangsbewijs heeft geen verloopdatum" -#: src/app/main/ui/dashboard/file_menu.cljs:291, src/app/main/ui/workspace/main_menu.cljs:572 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.add-shared" msgstr "Toevoegen als gedeelde bibliotheek" -#: src/app/main/ui/settings/profile.cljs:75 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.change-email" msgstr "E-mailadres wijzigen" -#: src/app/main/data/dashboard.cljs:762, src/app/main/data/dashboard.cljs:983 +#: src/app/main/data/dashboard.cljs, src/app/main/data/dashboard.cljs msgid "dashboard.copy-suffix" msgstr "(kopie)" -#: src/app/main/ui/dashboard/sidebar.cljs:338 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.create-new-team" msgstr "Nieuw team aanmaken" -#: src/app/main/ui/components/context_menu_a11y.cljs:256, src/app/main/ui/dashboard/sidebar.cljs:646 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.default-team-name" msgstr "Jouw Penpot" -#: src/app/main/ui/dashboard/sidebar.cljs:571 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.delete-team" msgstr "Team verwijderen" -#: src/app/main/ui/dashboard/file_menu.cljs:296, src/app/main/ui/workspace/main_menu.cljs:589 msgid "dashboard.download-binary-file" msgstr "Penpot-bestand downloaden (.penpot)" -#: src/app/main/ui/dashboard/file_menu.cljs:300, src/app/main/ui/workspace/main_menu.cljs:597 msgid "dashboard.download-standard-file" msgstr "Standaardbestand downloaden (.svg + .json)" -#: src/app/main/ui/dashboard/file_menu.cljs:276, src/app/main/ui/dashboard/project_menu.cljs:90 +#: src/app/main/ui/dashboard/project_menu.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.duplicate" msgstr "Dupliceren" -#: src/app/main/ui/dashboard/file_menu.cljs:240 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.duplicate-multi" msgstr "%s bestanden dupliceren" -#: src/app/main/ui/dashboard/placeholder.cljs:32 -#, markdown +#: src/app/main/ui/dashboard/grid.cljs msgid "dashboard.empty-placeholder-drafts" msgstr "" "Bestanden die aan bibliotheken zijn toegevoegd, worden hier weergegeven. " "Probeer je bestanden te delen of toe te voegen vanuit onze [Bibliotheken & " "sjablonen] (https://penpot.app/libraries-templates)." -#: src/app/main/ui/dashboard/file_menu.cljs:249 msgid "dashboard.export-binary-multi" msgstr "%s Penpot-bestanden downloaden (.penpot)" -#: src/app/main/ui/workspace/main_menu.cljs:605 msgid "dashboard.export-frames" msgstr "Borden exporteren als PDF" -#: src/app/main/ui/export.cljs:201 +#: src/app/main/ui/export.cljs msgid "dashboard.export-frames.title" msgstr "Exporteren als PDF" -#, unused msgid "dashboard.export-multi" msgstr "%s Penpot-bestanden exporteren" -#: src/app/main/ui/export.cljs:109 +#: src/app/main/ui/export.cljs msgid "dashboard.export-multiple.selected" msgstr "%s van %s elementen geselecteerd" -#: src/app/main/ui/workspace/main_menu.cljs:578 +#: src/app/main/ui/workspace/header.cljs msgid "dashboard.export-shapes" msgstr "Exporteren" -#: src/app/main/ui/export.cljs:180 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.how-to" msgstr "" "Je kunt exportinstellingen toevoegen aan elementen vanuit de " "ontwerpeigenschappen (onderaan de rechter zijbalk)." -#: src/app/main/ui/export.cljs:184 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.how-to-link" msgstr "Info over het instellen van exports in Penpot." -#: src/app/main/ui/export.cljs:179 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.no-elements" msgstr "Er zijn geen elementen met exportinstellingen." -#: src/app/main/ui/export.cljs:190 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.title" msgstr "Selectie exporteren" -#: src/app/main/ui/dashboard/file_menu.cljs:252 msgid "dashboard.export-standard-multi" msgstr "%s standaardbestanden downloaden (.svg + .json)" -#: src/app/main/ui/export.cljs:427 msgid "dashboard.export.detail" msgstr "* Kan componenten, afbeeldingen, kleuren en/of typografie bevatten." -#: src/app/main/ui/export.cljs:426 msgid "dashboard.export.explain" msgstr "" "Een of meer bestanden die je wilt exporteren maken gebruik van gedeelde " "bibliotheken. Wat wil je doen met hun assets*?" -#: src/app/main/ui/export.cljs:435 msgid "dashboard.export.options.all.message" msgstr "" "Bestanden met gedeelde bibliotheken worden opgenomen in de export en hun " "koppelingen worden behouden." -#: src/app/main/ui/export.cljs:436 msgid "dashboard.export.options.all.title" msgstr "Gedeelde bibliotheken exporteren" -#: src/app/main/ui/export.cljs:437 msgid "dashboard.export.options.detach.message" msgstr "" "Gedeelde bibliotheken worden niet opgenomen in de export en er worden geen " "assets aan de bibliotheek toegevoegd. " -#: src/app/main/ui/export.cljs:438 msgid "dashboard.export.options.detach.title" msgstr "Gedeelde bibliotheek-assets als basisobjecten behandelen" -#: src/app/main/ui/export.cljs:439 msgid "dashboard.export.options.merge.message" msgstr "" "Je bestand wordt geëxporteerd met alle externe assets samengevoegd in de " "bestandsbibliotheek." -#: src/app/main/ui/export.cljs:440 msgid "dashboard.export.options.merge.title" msgstr "Inclusief gedeelde bibliotheek-assets in bestandsbibliotheken" -#: src/app/main/ui/export.cljs:418 msgid "dashboard.export.title" msgstr "Bestanden exporteren" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:309 msgid "dashboard.fonts.deleted-placeholder" msgstr "Lettertype ontbreekt" -#: src/app/main/ui/dashboard/fonts.cljs:206 +#: src/app/main/ui/dashboard/fonts.cljs msgid "dashboard.fonts.dismiss-all" msgstr "Alles negeren" -#: src/app/main/ui/dashboard/fonts.cljs:436 msgid "dashboard.fonts.empty-placeholder" msgstr "Aangepaste lettertypen die je uploadt, verschijnen hier." -#: src/app/main/ui/dashboard/fonts.cljs:194 +#: src/app/main/ui/dashboard/fonts.cljs msgid "dashboard.fonts.fonts-added" msgid_plural "dashboard.fonts.fonts-added" msgstr[0] "1 lettertype toegevoegd" msgstr[1] "%s lettertypes toegevoegd" -#: src/app/main/ui/dashboard/fonts.cljs:170 -#, markdown msgid "dashboard.fonts.hero-text1" msgstr "" "Elk web-lettertype dat je hier uploadt zal worden toegevoegd aan de " @@ -548,8 +514,6 @@ msgstr "" "Lettertypen worden gegroepeerd op familienaam. Je kunt lettertypen uploaden " "met de volgende formaten: **TTF, OTF en WOFF** (slechts één formaat nodig)." -#: src/app/main/ui/dashboard/fonts.cljs:182 -#, markdown msgid "dashboard.fonts.hero-text2" msgstr "" "Je mag alleen lettertypen uploaden waarvan je de eigenaar bent of waarvoor " @@ -558,12 +522,10 @@ msgstr "" "Servicevoorwaarden](https://penpot.app/terms.html). Misschien wil je ook " "meer lezen over [lettertypelicenties](https://www.typography.com/faq)." -#: src/app/main/ui/dashboard/fonts.cljs:202 +#: src/app/main/ui/dashboard/fonts.cljs msgid "dashboard.fonts.upload-all" msgstr "Alles uploaden" -#: src/app/main/ui/dashboard/fonts.cljs:187 -#, markdown msgid "dashboard.fonts.warning-text" msgstr "" "We hebben een mogelijk probleem gevonden in je lettertypen met betrekking " @@ -573,420 +535,402 @@ msgstr "" "[Transfonter](https://transfonter.org/) te gebruiken om web-lettertypen te " "genereren en soortgelijke fouten op te lossen. " -#: src/app/main/ui/dashboard/import.cljs:472, src/app/main/ui/dashboard/project_menu.cljs:108 msgid "dashboard.import" msgstr "Importeer Penpot-bestanden" -#: src/app/main/ui/dashboard/import.cljs:304, src/app/worker/import.cljs:753, src/app/worker/import.cljs:755 msgid "dashboard.import.analyze-error" msgstr "Oeps! We konden dit bestand niet importeren" -#, unused msgid "dashboard.import.analyze-error.components-v2" msgstr "" "Bestand met componenten v2 geactiveerd, maar dit team ondersteunt dit nog " "niet." -#: src/app/main/ui/dashboard/import.cljs:308 msgid "dashboard.import.import-error" msgstr "" "Er is een probleem opgetreden bij het importeren van het bestand. Het " "bestand is niet geïmporteerd." -#: src/app/main/ui/dashboard/import.cljs:493 msgid "dashboard.import.import-message" msgid_plural "dashboard.import.import-message" msgstr[0] "1 bestand is geïmporteerd." msgstr[1] "%s bestanden zijn geïmporteerd." -#: src/app/main/ui/dashboard/import.cljs:481, src/app/main/ui/dashboard/import.cljs:488 msgid "dashboard.import.import-warning" msgstr "Sommige bestanden bevatten ongeldige objecten die verwijderd zijn." -#: src/app/main/ui/dashboard/import.cljs:144 msgid "dashboard.import.progress.process-colors" msgstr "Kleuren aan het verwerken" -#: src/app/main/ui/dashboard/import.cljs:153 msgid "dashboard.import.progress.process-components" msgstr "Componenten aan het verwerken" -#: src/app/main/ui/dashboard/import.cljs:150 msgid "dashboard.import.progress.process-media" msgstr "Media aan het verwerken" -#: src/app/main/ui/dashboard/import.cljs:141 msgid "dashboard.import.progress.process-page" msgstr "Pagina aan het verwerkten: %s" -#: src/app/main/ui/dashboard/import.cljs:147 msgid "dashboard.import.progress.process-typographies" msgstr "Typografie verwerken" -#: src/app/main/ui/dashboard/import.cljs:135 msgid "dashboard.import.progress.upload-data" msgstr "Gegevens uploaden naar server (%s/%s)" -#: src/app/main/ui/dashboard/import.cljs:138 msgid "dashboard.import.progress.upload-media" msgstr "Bestand aan het uploaden: %s" -#: src/app/main/ui/dashboard/team.cljs:109 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.invite-profile" msgstr "Nodig mensen uit" -#: src/app/main/ui/dashboard/sidebar.cljs:547, src/app/main/ui/dashboard/sidebar.cljs:556, src/app/main/ui/dashboard/sidebar.cljs:563, src/app/main/ui/dashboard/team.cljs:312 +#: src/app/main/ui/dashboard/sidebar.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.leave-team" msgstr "Team verlaten" -#: src/app/main/ui/dashboard/templates.cljs:88, src/app/main/ui/dashboard/templates.cljs:163 msgid "dashboard.libraries-and-templates" msgstr "Bibliotheken & sjablonen" -#: src/app/main/ui/dashboard/templates.cljs:164 msgid "dashboard.libraries-and-templates.explore" msgstr "Ontdek er meer van en weet hoe je kunt bijdragen" -#: src/app/main/ui/dashboard/import.cljs:365 msgid "dashboard.libraries-and-templates.import-error" msgstr "" "Er is een probleem opgetreden bij het importeren van het sjabloon. Het " "sjabloon is niet geïmporteerd." -#: src/app/main/ui/dashboard/libraries.cljs:53 +#: src/app/main/ui/dashboard/libraries.cljs msgid "dashboard.libraries-title" msgstr "Bibliotheken" -#: src/app/main/ui/dashboard/placeholder.cljs:45 +#: src/app/main/ui/dashboard/grid.cljs msgid "dashboard.loading-files" msgstr "bestanden laden …" -#: src/app/main/ui/dashboard/fonts.cljs:431 msgid "dashboard.loading-fonts" msgstr "lettertypen laden …" -#: src/app/main/ui/dashboard/file_menu.cljs:281, src/app/main/ui/dashboard/project_menu.cljs:100 +#: src/app/main/ui/dashboard/project_menu.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.move-to" msgstr "Verplaats naar" -#: src/app/main/ui/dashboard/file_menu.cljs:245 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.move-to-multi" msgstr "Verplaats %s bestanden naar" -#: src/app/main/ui/dashboard/file_menu.cljs:226 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.move-to-other-team" msgstr "Verplaats naar ander team" -#: src/app/main/ui/dashboard/files.cljs:105, src/app/main/ui/dashboard/projects.cljs:252, src/app/main/ui/dashboard/projects.cljs:253 +#: src/app/main/ui/dashboard/projects.cljs, +#: src/app/main/ui/dashboard/files.cljs msgid "dashboard.new-file" msgstr "+ Nieuw bestand" -#: src/app/main/data/dashboard.cljs:958, src/app/main/data/dashboard.cljs:1181 +#: src/app/main/data/dashboard.cljs msgid "dashboard.new-file-prefix" msgstr "Nieuw bestand" -#: src/app/main/ui/dashboard/projects.cljs:55 +#: src/app/main/ui/dashboard/projects.cljs msgid "dashboard.new-project" msgstr "+ Nieuw project" -#: src/app/main/data/dashboard.cljs:726, src/app/main/data/dashboard.cljs:1184 +#: src/app/main/data/dashboard.cljs msgid "dashboard.new-project-prefix" msgstr "Nieuw project" -#: src/app/main/ui/dashboard/search.cljs:60 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.no-matches-for" msgstr "Geen overeenkomsten gevonden voor \"%s\"" -#: src/app/main/ui/dashboard/sidebar.cljs:827 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.no-projects-placeholder" msgstr "Vastgemaakte projecten worden hier weergegeven" -#: src/app/main/ui/auth/verify_token.cljs:33 +#: src/app/main/ui/auth/verify_token.cljs msgid "dashboard.notifications.email-changed-successfully" msgstr "Je e-mailadres is succesvol bijgewerkt" -#: src/app/main/ui/auth/verify_token.cljs:27 +#: src/app/main/ui/auth/verify_token.cljs msgid "dashboard.notifications.email-verified-successfully" msgstr "Je e-mailadres is geverifieerd" -#: src/app/main/ui/settings/password.cljs:37 +#: src/app/main/ui/settings/password.cljs msgid "dashboard.notifications.password-saved" msgstr "Wachtwoord succesvol opgeslagen!" -#: src/app/main/ui/dashboard/team.cljs:1081 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.num-of-members" msgstr "%s leden" -#: src/app/main/ui/dashboard/file_menu.cljs:267 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.open-in-new-tab" msgstr "Bestand openen in een nieuw tabblad" -#: src/app/main/ui/dashboard/files.cljs:117, src/app/main/ui/dashboard/projects.cljs:260, src/app/main/ui/dashboard/projects.cljs:261 msgid "dashboard.options" msgstr "Opties" -#: src/app/main/ui/settings/password.cljs:106, src/app/main/ui/settings/password.cljs:119 +#: src/app/main/ui/settings/password.cljs msgid "dashboard.password-change" msgstr "Verander wachtwoord" -#: src/app/main/ui/dashboard/pin_button.cljs:24, src/app/main/ui/dashboard/project_menu.cljs:95 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.pin-unpin" msgstr "Vastzetten/losmaken" -#: src/app/main/ui/dashboard/projects.cljs:51 +#: src/app/main/ui/dashboard/projects.cljs msgid "dashboard.projects-title" msgstr "Projecten" -#: src/app/main/ui/settings/profile.cljs:86 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.remove-account" msgstr "Wil je je account verwijderen?" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.remove-shared" msgstr "Verwijder als gedeelde bibliotheek" -#: src/app/main/ui/settings/profile.cljs:78 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.save-settings" msgstr "Instellingen opslaan" -#: src/app/main/ui/dashboard/sidebar.cljs:246, src/app/main/ui/dashboard/sidebar.cljs:247 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.search-placeholder" msgstr "Zoeken…" -#: src/app/main/ui/dashboard/search.cljs:55 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.searching-for" msgstr "Zoeken naar \"%s\"…" -#: src/app/main/ui/settings/options.cljs:56 +#: src/app/main/ui/settings/options.cljs msgid "dashboard.select-ui-language" msgstr "Taal selecteren" -#: src/app/main/ui/settings/options.cljs:63 +#: src/app/main/ui/settings/options.cljs msgid "dashboard.select-ui-theme" msgstr "Thema selecteren" -#: src/app/main/ui/dashboard/projects.cljs:282 +#: src/app/main/ui/dashboard/grid.cljs msgid "dashboard.show-all-files" msgstr "Alle bestanden tonen" -#: src/app/main/ui/dashboard/file_menu.cljs:96 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-delete-file" msgid_plural "dashboard.success-delete-file" msgstr[0] "Je bestand is succesvol verwijderd" msgstr[1] "Je bestanden zijn succesvol verwijderd" -#: src/app/main/ui/dashboard/project_menu.cljs:59 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.success-delete-project" msgstr "Je project is succesvol verwijderd" -#: src/app/main/ui/dashboard/file_menu.cljs:91 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-duplicate-file" msgid_plural "dashboard.success-delete-file" msgstr[0] "Je bestand is succesvol gedupliceerd" msgstr[1] "Je bestanden zijn succesvol gedupliceerd" -#: src/app/main/ui/dashboard/project_menu.cljs:33 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.success-duplicate-project" msgstr "Je project is succesvol gedupliceerd" -#: src/app/main/ui/dashboard/file_menu.cljs:130, src/app/main/ui/dashboard/grid.cljs:558, src/app/main/ui/dashboard/sidebar.cljs:152 +#: src/app/main/ui/dashboard/grid.cljs, src/app/main/ui/dashboard/sidebar.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-move-file" msgstr "Je bestand is succesvol verplaatst" -#: src/app/main/ui/dashboard/file_menu.cljs:129 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-move-files" msgstr "Je bestanden zijn succesvol verplaatst" -#: src/app/main/ui/dashboard/project_menu.cljs:54 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.success-move-project" msgstr "Je project is succesvol verplaatst" -#: src/app/main/ui/dashboard/team.cljs:1052 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.team-info" msgstr "Team info" -#: src/app/main/ui/dashboard/team.cljs:1070 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.team-members" msgstr "Teamleden" -#: src/app/main/ui/dashboard/team.cljs:1085 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.team-projects" msgstr "Teamprojecten" -#: src/app/main/ui/settings/options.cljs:61 +#: src/app/main/ui/settings/options.cljs msgid "dashboard.theme-change" msgstr "UI thema" -#: src/app/main/ui/dashboard/search.cljs:42 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.title-search" msgstr "Zoekresultaten" -#: src/app/main/ui/dashboard/search.cljs:50 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.type-something" msgstr "Typ om te zoeken" -#: src/app/main/ui/dashboard/file_menu.cljs:287, src/app/main/ui/workspace/main_menu.cljs:566 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.unpublish-shared" msgstr "Publicatie Bibliotheek ongedaan maken" -#: src/app/main/ui/settings/options.cljs:71 +#: src/app/main/ui/settings/password.cljs, +#: src/app/main/ui/settings/options.cljs msgid "dashboard.update-settings" msgstr "Instellingen bijwerken" -#: src/app/main/ui/dashboard/team.cljs:861 msgid "dashboard.webhooks.active" msgstr "Is actief" -#: src/app/main/ui/dashboard/team.cljs:862 msgid "dashboard.webhooks.active.explain" msgstr "Wanneer deze hook wordt getriggerd, worden gebeurtenisdetails afgeleverd" -#: src/app/main/ui/dashboard/team.cljs:852 msgid "dashboard.webhooks.content-type" msgstr "Contenttype" -#: src/app/main/ui/dashboard/team.cljs:885 msgid "dashboard.webhooks.create" msgstr "Maak webhook" -#: src/app/main/ui/dashboard/team.cljs:775 msgid "dashboard.webhooks.create.success" msgstr "Webhook is succesvol aangemaakt." -#: src/app/main/ui/dashboard/team.cljs:882 msgid "dashboard.webhooks.description" msgstr "" "Webhooks zijn een eenvoudige manier om andere websites en apps op de hoogte " "te stellen wanneer bepaalde gebeurtenissen bij Penpot plaatsvinden. We " "sturen een POST-verzoek naar elke URL die je opgeeft." -#: src/app/main/ui/dashboard/team.cljs:1005 msgid "dashboard.webhooks.empty.add-one" msgstr "Druk op de knop \"Maak webhook\" om er een aan te maken." -#: src/app/main/ui/dashboard/team.cljs:1004 msgid "dashboard.webhooks.empty.no-webhooks" msgstr "Er zijn nog geen webhooks aangemaakt." -#, unused msgid "dashboard.webhooks.update.success" msgstr "Webhook is bijgewerkt." -#: src/app/main/ui/settings.cljs:31 +#: src/app/main/ui/settings.cljs msgid "dashboard.your-account-title" msgstr "Jouw account" -#: src/app/main/ui/settings/profile.cljs:70 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.your-email" msgstr "E-mail" -#: src/app/main/ui/settings/profile.cljs:62 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.your-name" msgstr "Naam" -#: src/app/main/ui/dashboard/file_menu.cljs:38, src/app/main/ui/dashboard/fonts.cljs:33, src/app/main/ui/dashboard/libraries.cljs:42, src/app/main/ui/dashboard/projects.cljs:318, src/app/main/ui/dashboard/search.cljs:30, src/app/main/ui/dashboard/sidebar.cljs:312, src/app/main/ui/dashboard/team.cljs:495, src/app/main/ui/dashboard/team.cljs:729, src/app/main/ui/dashboard/team.cljs:991, src/app/main/ui/dashboard/team.cljs:1038 +#: src/app/main/ui/dashboard/search.cljs, src/app/main/ui/dashboard/team.cljs, +#: src/app/main/ui/dashboard/libraries.cljs, +#: src/app/main/ui/dashboard/projects.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.your-penpot" msgstr "Jouw Penpot" -#: src/app/main/ui/alert.cljs:32 +#: src/app/main/ui/alert.cljs msgid "ds.alert-ok" msgstr "Oké" -#: src/app/main/ui/alert.cljs:31, src/app/main/ui/alert.cljs:34 +#: src/app/main/ui/alert.cljs msgid "ds.alert-title" msgstr "Waarschuwing" -#: src/app/main/ui/confirm.cljs:83 +#: src/app/main/ui/confirm.cljs msgid "ds.component-subtitle" msgstr "Componenten bijwerken:" -#: src/app/main/ui/confirm.cljs:36, src/app/main/ui/workspace/plugins.cljs:246 +#: src/app/main/ui/confirm.cljs msgid "ds.confirm-cancel" msgstr "Annuleren" -#: src/app/main/ui/confirm.cljs:37, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:141 +#: src/app/main/ui/confirm.cljs msgid "ds.confirm-ok" msgstr "Oké" -#: src/app/main/ui/confirm.cljs:35, src/app/main/ui/confirm.cljs:39 +#: src/app/main/ui/confirm.cljs, src/app/main/ui/confirm.cljs msgid "ds.confirm-title" msgstr "Weet je het zeker?" -#: src/app/main/data/users.cljs:705 +#: src/app/main/data/users.cljs msgid "errors.auth-provider-not-allowed" msgstr "Auth-provider is niet toegestaan voor dit profiel" -#: src/app/main/ui/auth/login.cljs:62 +#: src/app/main/ui/auth/login.cljs msgid "errors.auth-provider-not-configured" msgstr "Authenticatie-provider niet geconfigureerd." -#: src/app/main/errors.cljs:104 msgid "errors.auth.unable-to-login" msgstr "" "Het lijkt erop dat je niet geauthentiseerd bent of dat de sessie is " "verlopen." -#: src/app/main/data/fonts.cljs:189 msgid "errors.bad-font" msgstr "Het lettertype %s kon niet geladen worden" -#: src/app/main/data/fonts.cljs:188 msgid "errors.bad-font-plural" msgstr "De lettertypen %s konden niet geladen worden" -#: src/app/main/data/workspace/media.cljs:198 msgid "errors.cannot-upload" msgstr "Kan het mediabestand niet uploaden." -#: src/app/main/data/workspace.cljs:1598 +#: src/app/main/data/workspace.cljs msgid "errors.clipboard-not-implemented" msgstr "Je browser kan deze functie niet uitvoeren" -#: src/app/main/ui/auth/verify_token.cljs:82, src/app/main/ui/settings/change_email.cljs:46 +#: src/app/main/ui/auth/verify_token.cljs, +#: src/app/main/ui/settings/change_email.cljs msgid "errors.email-already-exists" msgstr "E-mail is al in gebruik" -#: src/app/main/ui/auth/verify_token.cljs:87 +#: src/app/main/ui/auth/verify_token.cljs msgid "errors.email-already-validated" msgstr "E-mail is al gevalideerd." -#: src/app/main/ui/settings/password.cljs:28 msgid "errors.email-as-password" msgstr "Je kan je e-mail niet als wachtwoord gebruiken" -#: src/app/main/data/users.cljs:707, src/app/main/ui/auth/register.cljs:63 +#: src/app/main/data/users.cljs msgid "errors.email-domain-not-allowed" msgstr "Domein niet toegestaan" -#: src/app/main/ui/auth/recovery_request.cljs:63, src/app/main/ui/dashboard/team.cljs:578, src/app/main/ui/settings/change_email.cljs:54 +#: src/app/main/ui/auth/register.cljs, +#: src/app/main/ui/auth/recovery_request.cljs, +#: src/app/main/ui/settings/change_email.cljs, +#: src/app/main/ui/dashboard/team.cljs msgid "errors.email-has-permanent-bounces" msgstr "Het emailadres «%s» heeft veel permanente bounce-rapporten." -#: src/app/main/ui/auth/login.cljs:81, src/app/main/ui/auth/recovery_request.cljs:31, src/app/main/ui/auth/register.cljs:43 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs, +#: src/app/main/ui/auth/recovery_request.cljs msgid "errors.email-invalid" msgstr "Voer een geldig e-mailadres in" -#: src/app/main/ui/settings/change_email.cljs:35 +#: src/app/main/ui/settings/change_email.cljs msgid "errors.email-invalid-confirmation" msgstr "Bevestigingsmail moet overeenkomen" -#: src/app/main/ui/dashboard/team.cljs:170 msgid "errors.email-spam-or-permanent-bounces" msgstr "Het e-mailadres «%s» is gemeld als spam of permanent teruggestuurd." -#: src/app/main/errors.cljs:227 +#: src/app/main/errors.cljs msgid "errors.feature-mismatch" msgstr "" "Het lijkt erop dat je een bestand opent waarin de functie '%s' is " "ingeschakeld, maar jouw Penpot- versie ondersteunt dit niet of heeft het " "uitgeschakeld." -#: src/app/main/errors.cljs:231, src/app/main/errors.cljs:245 +#: src/app/main/errors.cljs msgid "errors.feature-not-supported" msgstr "Functie '%s' wordt niet ondersteund." -#: src/app/main/errors.cljs:223 +#: src/app/main/errors.cljs msgid "errors.file-feature-mismatch" msgstr "" "Het lijkt erop dat er een discrepantie bestaat tussen de ingeschakelde " @@ -994,1264 +938,1136 @@ msgstr "" "moeten migraties voor '%s' worden toegepast voordat het bestand kan worden " "geopend." -#: src/app/main/data/users.cljs:709, src/app/main/ui/auth/login.cljs:65, src/app/main/ui/auth/login.cljs:116, src/app/main/ui/auth/register.cljs:69, src/app/main/ui/auth/register.cljs:237, src/app/main/ui/auth/verify_token.cljs:92, src/app/main/ui/dashboard/team.cljs:173, src/app/main/ui/onboarding/team_choice.cljs:95, src/app/main/ui/settings/access_tokens.cljs:91, src/app/main/ui/settings/feedback.cljs:52 +#: src/app/main/ui/auth/verify_token.cljs, +#: src/app/main/ui/settings/feedback.cljs, src/app/main/ui/dashboard/team.cljs msgid "errors.generic" msgstr "Er ging iets mis." -#: src/app/main/ui/components/color_input.cljs:57 +#: src/app/main/ui/components/color_input.cljs msgid "errors.invalid-color" msgstr "Ongeldige kleur" -#: src/app/main/ui/static.cljs:43 +#: src/app/main/ui/auth/verify_token.cljs msgid "errors.invite-invalid" msgstr "Uitnodiging ongeldig" -#: src/app/main/ui/static.cljs:44 msgid "errors.invite-invalid.info" msgstr "Deze uitnodiging is mogelijk geannuleerd of verlopen." -#: src/app/main/ui/auth/login.cljs:101 +#: src/app/main/ui/auth/login.cljs msgid "errors.ldap-disabled" msgstr "LDAP-authenticatie is uitgeschakeld." -#: src/app/main/errors.cljs:239 +#: src/app/main/errors.cljs msgid "errors.max-quote-reached" msgstr "Je hebt de limiet van '%s' bereikt. Neem contact op met support." -#: src/app/main/data/workspace/media.cljs:184 +#: src/app/main/data/workspace/persistence.cljs msgid "errors.media-too-large" msgstr "De afbeelding is te groot om in te voegen." -#: src/app/main/data/media.cljs:68, src/app/main/data/workspace/media.cljs:187 +#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs msgid "errors.media-type-mismatch" msgstr "" "Het lijkt erop dat de inhoud van de afbeelding niet overeenkomt met de " "bestandsextensie." -#: src/app/main/data/media.cljs:65, src/app/main/data/workspace/media.cljs:172, src/app/main/data/workspace/media.cljs:175, src/app/main/data/workspace/media.cljs:178, src/app/main/data/workspace/media.cljs:181 +#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs msgid "errors.media-type-not-allowed" msgstr "Het lijkt erop dat dit geen geldige afbeelding is." -#: src/app/main/ui/dashboard/team.cljs:574 +#: src/app/main/ui/dashboard/team.cljs msgid "errors.member-is-muted" msgstr "" "Het profiel dat je uitnodigt, heeft e-mails gedempt (spammeldingen of hoge " "bounces)." -#: src/app/main/ui/settings/password.cljs:61 +#: src/app/main/ui/settings/password.cljs msgid "errors.password-invalid-confirmation" msgstr "Bevestigingswachtwoord moet overeenkomen" -#: src/app/main/ui/settings/password.cljs:64 +#: src/app/main/ui/settings/password.cljs msgid "errors.password-too-short" msgstr "Wachtwoord moet minimaal 8 tekens lang zijn" -#: src/app/main/errors.cljs:124 msgid "errors.paste-data-validation" msgstr "Ongeldige gegevens op klembord" -#: src/app/main/data/users.cljs:703, src/app/main/ui/auth/login.cljs:97, src/app/main/ui/auth/login.cljs:105 msgid "errors.profile-blocked" msgstr "Het profiel is geblokkeerd" -#: src/app/main/ui/auth/recovery_request.cljs:60, src/app/main/ui/dashboard/team.cljs:164, src/app/main/ui/dashboard/team.cljs:570, src/app/main/ui/settings/change_email.cljs:50 +#: src/app/main/ui/auth/recovery_request.cljs, +#: src/app/main/ui/settings/change_email.cljs, +#: src/app/main/ui/dashboard/team.cljs msgid "errors.profile-is-muted" msgstr "Je profiel heeft e-mails gedempt (spammeldingen of hoge bounces)." -#: src/app/main/data/users.cljs:701, src/app/main/ui/auth/register.cljs:60 +#: src/app/main/ui/auth/register.cljs msgid "errors.registration-disabled" msgstr "De registratie is momenteel uitgeschakeld." -#: src/app/main/errors.cljs:218 +#: src/app/main/errors.cljs msgid "errors.team-feature-mismatch" msgstr "Incompatibele functie '%s' gedetecteerd" -#: src/app/main/ui/dashboard/sidebar.cljs:365, src/app/main/ui/dashboard/team.cljs:359 msgid "errors.team-leave.insufficient-members" msgstr "" "Onvoldoende leden om het team te verlaten, je kunt dit team maar beter " "verwijderen." -#: src/app/main/ui/dashboard/sidebar.cljs:368, src/app/main/ui/dashboard/team.cljs:362 msgid "errors.team-leave.member-does-not-exists" msgstr "Het lid dat je probeert toe te wijzen, bestaat niet." -#: src/app/main/ui/dashboard/sidebar.cljs:371, src/app/main/ui/dashboard/team.cljs:365 msgid "errors.team-leave.owner-cant-leave" msgstr "" "Eigenaar kan het team niet verlaten, je moet de rol van eigenaar eerst " "opnieuw toewijzen." -#: src/app/main/data/media.cljs:71 +#: src/app/main/data/media.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, +#: src/app/main/ui/inspect/exports.cljs msgid "errors.unexpected-error" msgstr "Er is een onverwachte fout opgetreden." -#: src/app/main/ui/auth/verify_token.cljs:60 +#: src/app/main/ui/auth/verify_token.cljs msgid "errors.unexpected-token" msgstr "Onbekend bewijsstuk" -#, unused msgid "errors.validation" msgstr "Validatiefout" -#: src/app/main/errors.cljs:235 +#: src/app/main/errors.cljs msgid "errors.version-not-supported" msgstr "Bestand heeft een incompatibel versienummer" -#: src/app/main/ui/dashboard/team.cljs:796 msgid "errors.webhooks.connection" msgstr "Verbindingsfout, URL niet bereikbaar" -#: src/app/main/ui/dashboard/team.cljs:790 msgid "errors.webhooks.invalid-uri" msgstr "URL komt niet door de validatie." -#: src/app/main/ui/dashboard/team.cljs:949 msgid "errors.webhooks.last-delivery" msgstr "Laatste levering was niet succesvol." -#: src/app/main/ui/dashboard/team.cljs:792, src/app/main/ui/dashboard/team.cljs:952 msgid "errors.webhooks.ssl-validation" msgstr "Fout bij SSL-validatie." -#: src/app/main/ui/dashboard/team.cljs:794 msgid "errors.webhooks.timeout" msgstr "Time-out" -#: src/app/main/ui/dashboard/team.cljs:788 msgid "errors.webhooks.unexpected" msgstr "Onverwachte fout bij het valideren" -#: src/app/main/ui/dashboard/team.cljs:798, src/app/main/ui/dashboard/team.cljs:955 msgid "errors.webhooks.unexpected-status" msgstr "Onverwachte status %s" -#: src/app/main/ui/auth/login.cljs:109, src/app/main/ui/auth/login.cljs:113 +#: src/app/main/ui/auth/login.cljs msgid "errors.wrong-credentials" msgstr "E-mailadres of wachtwoord is incorrect." -#: src/app/main/ui/settings/password.cljs:25 +#: src/app/main/ui/settings/password.cljs msgid "errors.wrong-old-password" msgstr "Huidige wachtwoord is onjuist" -#: src/app/main/ui/settings/feedback.cljs:77 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.description" msgstr "Omschrijving" -#: src/app/main/ui/settings/feedback.cljs:95 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.discourse-go-to" msgstr "Ga naar het Penpot-forum" -#: src/app/main/ui/settings/feedback.cljs:89 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.discourse-subtitle1" msgstr "" "We zijn blij dat je er bent. Als je hulp nodig hebt, zoek dan eerst voordat " "je een nieuwe vraag stelt." -#: src/app/main/ui/settings/feedback.cljs:88 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.discourse-title" msgstr "Penpot-gemeenschap" -#: src/app/main/ui/settings/feedback.cljs:72 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.subject" msgstr "Onderwerp" -#: src/app/main/ui/settings/feedback.cljs:69 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.subtitle" msgstr "" "Beschrijf de reden van je e-mail en geef aan of het een probleem, een idee " "of een twijfel betreft. Een lid van ons team zal zo snel mogelijk reageren." -#: src/app/main/ui/settings/feedback.cljs:68 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.title" msgstr "E-mail" -#: src/app/main/ui/settings/feedback.cljs:105 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.twitter-go-to" msgstr "Ga naar X" -#: src/app/main/ui/settings/feedback.cljs:99 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.twitter-subtitle1" msgstr "Hier om te helpen met je technische vragen." -#: src/app/main/ui/settings/feedback.cljs:98 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.twitter-title" msgstr "X-ondersteuningsaccount" -#: src/app/main/ui/settings/password.cljs:30 +#: src/app/main/ui/settings/password.cljs msgid "generic.error" msgstr "er is een fout opgetreden" -#: src/app/main/ui/viewer/inspect/attributes/blur.cljs:26 +#: src/app/main/ui/inspect/attributes/blur.cljs msgid "inspect.attributes.blur" msgstr "Vervagen" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:115 +#: src/app/main/ui/inspect/attributes/blur.cljs msgid "inspect.attributes.blur.value" msgstr "Waarde" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:112 +#: src/app/main/ui/inspect/attributes/common.cljs msgid "inspect.attributes.color.hex" msgstr "HEX" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:114 +#: src/app/main/ui/inspect/attributes/common.cljs msgid "inspect.attributes.color.hsla" msgstr "HSLA" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:113 +#: src/app/main/ui/inspect/attributes/common.cljs msgid "inspect.attributes.color.rgba" msgstr "RGBA" -#: src/app/main/ui/viewer/inspect/attributes/fill.cljs:57 +#: src/app/main/ui/inspect/attributes/fill.cljs msgid "inspect.attributes.fill" msgstr "Vullen" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:99, src/app/main/ui/viewer/inspect/attributes/image.cljs:51 +#: src/app/main/ui/inspect/attributes/image.cljs msgid "inspect.attributes.image.download" msgstr "Bronafbeelding downloaden" -#: src/app/main/ui/viewer/inspect/attributes/image.cljs:39 +#: src/app/main/ui/inspect/attributes/image.cljs msgid "inspect.attributes.image.height" msgstr "Hoogte" -#: src/app/main/ui/viewer/inspect/attributes/image.cljs:32 +#: src/app/main/ui/inspect/attributes/image.cljs msgid "inspect.attributes.image.width" msgstr "Breedte" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout" msgstr "Layout" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.height" msgstr "Hoogte" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.left" msgstr "Links" -#: src/app/main/ui/inspect/attributes/layout.cljs, src/app/main/ui/inspect/attributes/layout.cljs -#, unused +#: src/app/main/ui/inspect/attributes/layout.cljs, +#: src/app/main/ui/inspect/attributes/layout.cljs msgid "inspect.attributes.layout.radius" msgstr "Radius" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.rotation" msgstr "Rotatie" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.top" msgstr "Top" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.width" msgstr "Breedte" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:57 +#: src/app/main/ui/inspect/attributes/shadow.cljs msgid "inspect.attributes.shadow" msgstr "Schaduw" -#: src/app/main/ui/viewer/inspect/attributes/geometry.cljs:40 +#: src/app/main/ui/inspect/attributes/layout.cljs msgid "inspect.attributes.size" msgstr "Grootte en positie" -#: src/app/main/ui/viewer/inspect/attributes/stroke.cljs:52 +#: src/app/main/ui/inspect/attributes/stroke.cljs msgid "inspect.attributes.stroke" msgstr "Streek" -#, permanent, unused msgid "inspect.attributes.stroke.alignment.center" msgstr "Midden" -#, permanent, unused msgid "inspect.attributes.stroke.alignment.inner" msgstr "Binnenkant" -#, permanent, unused msgid "inspect.attributes.stroke.alignment.outer" msgstr "Buitenkant" -#, unused msgid "inspect.attributes.stroke.style.dotted" msgstr "Gestippeld" -#, unused msgid "inspect.attributes.stroke.style.mixed" msgstr "Gemengd" -#, unused msgid "inspect.attributes.stroke.style.none" msgstr "Geen" -#, unused msgid "inspect.attributes.stroke.style.solid" msgstr "Solide" #: src/app/main/ui/inspect/attributes/stroke.cljs -#, unused msgid "inspect.attributes.stroke.width" msgstr "Breedte" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:81, src/app/main/ui/viewer/inspect/attributes/text.cljs:194 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography" msgstr "Typografie" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:89 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.font-family" msgstr "Lettertype-familie" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:107 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.font-size" msgstr "Lettergrootte" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:98 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.font-style" msgstr "Lettertype-stijl" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:116 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.font-weight" msgstr "Lettertype dikte" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:134 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.letter-spacing" msgstr "Letterafstand" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:125 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.line-height" msgstr "Regelafstand" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:143 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.text-decoration" msgstr "Tekst decoratie" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:145 msgid "inspect.attributes.typography.text-decoration.none" msgstr "Geen" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:146 msgid "inspect.attributes.typography.text-decoration.strikethrough" msgstr "Doorhalen" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:147 msgid "inspect.attributes.typography.text-decoration.underline" msgstr "Onderstrepen" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:156 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.text-transform" msgstr "Teksttransformatie" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:158 msgid "inspect.attributes.typography.text-transform.lowercase" msgstr "Kleine letters" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:159 msgid "inspect.attributes.typography.text-transform.none" msgstr "Geen" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:160 msgid "inspect.attributes.typography.text-transform.titlecase" msgstr "Beginhoofdletters" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:162 msgid "inspect.attributes.typography.text-transform.unset" msgstr "Uitschakelen" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:161 msgid "inspect.attributes.typography.text-transform.uppercase" msgstr "HOOFDLETTERS" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:140 msgid "inspect.empty.help" msgstr "" "Als je meer wilt weten over ontwerpinspectie, ga dan naar het helpcentrum " "van Penpot" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:143 msgid "inspect.empty.more-info" msgstr "Meer info over inspecteren" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:135 msgid "inspect.empty.select" msgstr "" "Selecteer een vorm, bord of groep om hun eigenschappen en code te " "inspecteren" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:125 +#: src/app/main/ui/inspect/right_sidebar.cljs msgid "inspect.tabs.code" msgstr "Code" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:98 msgid "inspect.tabs.code.selected.circle" msgstr "Cirkel" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:99 msgid "inspect.tabs.code.selected.component" msgstr "Component" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:100 msgid "inspect.tabs.code.selected.curve" msgstr "Kromme" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:101 msgid "inspect.tabs.code.selected.frame" msgstr "Bord" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:102 msgid "inspect.tabs.code.selected.group" msgstr "Groep" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:103 msgid "inspect.tabs.code.selected.image" msgstr "Afbeelding" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:104 msgid "inspect.tabs.code.selected.mask" msgstr "Masker" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:93 +#: src/app/main/ui/inspect/right_sidebar.cljs msgid "inspect.tabs.code.selected.multiple" msgstr "%s Geselecteerd" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:105 msgid "inspect.tabs.code.selected.path" msgstr "Pad" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:106 msgid "inspect.tabs.code.selected.rect" msgstr "Rechthoek" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:107 msgid "inspect.tabs.code.selected.svg-raw" msgstr "SVG" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:108 msgid "inspect.tabs.code.selected.text" msgstr "Tekst" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:115 +#: src/app/main/ui/inspect/right_sidebar.cljs msgid "inspect.tabs.info" msgstr "Informatie" -#: src/app/main/ui/workspace/main_menu.cljs:158 +#: src/app/main/ui/workspace/header.cljs msgid "label.shortcuts" msgstr "Sneltoetsen" -#: src/app/main/ui/dashboard/import.cljs:527 msgid "labels.accept" msgstr "Accepteren" -#: src/app/main/ui/settings/sidebar.cljs:100 +#: src/app/main/ui/settings/sidebar.cljs msgid "labels.access-tokens" msgstr "Toegangsbewijzen" -#: src/app/main/ui/dashboard/team.cljs:968 msgid "labels.active" msgstr "Actief" -#: src/app/main/ui/dashboard/fonts.cljs:175 msgid "labels.add-custom-font" msgstr "Eigen lettertype toevoegen" -#: src/app/main/ui/dashboard/team.cljs:120, src/app/main/ui/dashboard/team.cljs:276, src/app/main/ui/dashboard/team.cljs:519, src/app/main/ui/dashboard/team.cljs:549, src/app/main/ui/onboarding/team_choice.cljs:67 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs msgid "labels.admin" msgstr "Admin" -#: src/app/main/ui/onboarding/questions.cljs:174 -msgid "labels.adobe-xd" -msgstr "Adobe XD" - #: src/app/main/ui/workspace/comments.cljs -#, unused msgid "labels.all" msgstr "Alles" -#: src/app/main/ui/auth.cljs:37 msgid "labels.and" msgstr "en" -#: src/app/main/ui/onboarding/team_choice.cljs:162 msgid "labels.back" msgstr "Terug" -#: src/app/main/ui/static.cljs:59 +#: src/app/main/ui/static.cljs msgid "labels.bad-gateway.desc-message" msgstr "" "Het lijkt erop dat je even moet wachten en het opnieuw moet proberen; we " "voeren klein onderhoud uit aan onze servers." -#: src/app/main/ui/static.cljs:58 +#: src/app/main/ui/static.cljs msgid "labels.bad-gateway.main-message" msgstr "Bad Gateway" -#: src/app/main/data/common.cljs:112, src/app/main/ui/dashboard/change_owner.cljs:69, src/app/main/ui/dashboard/import.cljs:514, src/app/main/ui/dashboard/team.cljs:868, src/app/main/ui/delete_shared.cljs:35, src/app/main/ui/export.cljs:164, src/app/main/ui/export.cljs:460, src/app/main/ui/settings/access_tokens.cljs:188, src/app/main/ui/viewer/share_link.cljs:203, src/app/main/ui/workspace/sidebar/assets/groups.cljs:149 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.cancel" msgstr "Annuleren" -#: src/app/main/ui/onboarding/questions.cljs:176 -msgid "labels.canva" -msgstr "Canva" - -#: src/app/main/ui/dashboard/projects.cljs:93, src/app/main/ui/export.cljs:478, src/app/main/ui/settings/access_tokens.cljs:183, src/app/main/ui/viewer/login.cljs:77, src/app/main/ui/viewer/share_link.cljs:174, src/app/main/ui/workspace/libraries.cljs:522 msgid "labels.close" msgstr "Sluiten" -#: src/app/main/ui/dashboard/comments.cljs:104, src/app/main/ui/viewer/comments.cljs:70, src/app/main/ui/workspace/comments.cljs:126 +#: src/app/main/ui/dashboard/comments.cljs msgid "labels.comments" msgstr "Commentaar" -#: src/app/main/ui/dashboard/sidebar.cljs:985, src/app/main/ui/workspace/main_menu.cljs:110 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.community" msgstr "Gemeenschap" -#: src/app/main/ui/settings/password.cljs:103 +#: src/app/main/ui/settings/password.cljs msgid "labels.confirm-password" msgstr "Wachtwoord bevestigen" -#: src/app/main/ui/dashboard/import.cljs:520, src/app/main/ui/export.cljs:465, src/app/main/ui/onboarding/newsletter.cljs:101 msgid "labels.continue" msgstr "Doorgaan" -#, unused msgid "labels.continue-with" msgstr "Doorgaan met" -#: src/app/main/ui/viewer/login.cljs:75 msgid "labels.continue-with-penpot" msgstr "Je kunt doorgaan met een Penpot-account" -#: src/app/main/ui/dashboard/team.cljs:642 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.copy-invitation-link" msgstr "Link kopiëren" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:157, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:190 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "labels.create" msgstr "Aanmaken" -#: src/app/main/ui/dashboard/team_form.cljs:101, src/app/main/ui/dashboard/team_form.cljs:121 +#: src/app/main/ui/dashboard/team_form.cljs, +#: src/app/main/ui/dashboard/team_form.cljs msgid "labels.create-team" msgstr "Nieuw team aanmaken" -#: src/app/main/ui/dashboard/team_form.cljs:113 +#: src/app/main/ui/dashboard/team_form.cljs msgid "labels.create-team.placeholder" msgstr "Nieuwe teamnaam" -#, unused msgid "labels.custom-fonts" msgstr "Eigen lettertypen" -#: src/app/main/ui/settings/sidebar.cljs:73 +#: src/app/main/ui/settings/sidebar.cljs msgid "labels.dashboard" msgstr "Dashboard" -#: src/app/main/ui/dashboard/file_menu.cljs:306, src/app/main/ui/dashboard/fonts.cljs:255, src/app/main/ui/dashboard/fonts.cljs:332, src/app/main/ui/dashboard/fonts.cljs:346, src/app/main/ui/dashboard/project_menu.cljs:115, src/app/main/ui/dashboard/team.cljs:904, src/app/main/ui/settings/access_tokens.cljs:209, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:209 +#: src/app/main/ui/dashboard/project_menu.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.delete" msgstr "Verwijderen" -#: src/app/main/ui/comments.cljs:357 +#: src/app/main/ui/comments.cljs msgid "labels.delete-comment" msgstr "Commentaar verwijderen" -#: src/app/main/ui/comments.cljs:354 +#: src/app/main/ui/comments.cljs msgid "labels.delete-comment-thread" msgstr "Thread verwijderen" -#: src/app/main/ui/dashboard/team.cljs:648 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.delete-invitation" msgstr "Uitnodiging verwijderen" -#: src/app/main/ui/dashboard/file_menu.cljs:262 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.delete-multi-files" msgstr "%s bestanden verwijderen" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:199 msgid "labels.discard" msgstr "Weggooien" -#: src/app/main/ui/dashboard/file_menu.cljs:28, src/app/main/ui/dashboard/files.cljs:72, src/app/main/ui/dashboard/files.cljs:156, src/app/main/ui/dashboard/projects.cljs:220, src/app/main/ui/dashboard/projects.cljs:224, src/app/main/ui/dashboard/sidebar.cljs:791 +#: src/app/main/ui/dashboard/projects.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs, +#: src/app/main/ui/dashboard/files.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.drafts" msgstr "Concepten" -#: src/app/main/ui/comments.cljs:350, src/app/main/ui/dashboard/fonts.cljs:252, src/app/main/ui/dashboard/team.cljs:902, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:205 +#: src/app/main/ui/comments.cljs msgid "labels.edit" msgstr "Bewerken" -#, unused msgid "labels.edit-file" msgstr "Bestand bewerken" -#: src/app/main/ui/dashboard/team.cljs:118, src/app/main/ui/dashboard/team.cljs:279, src/app/main/ui/dashboard/team.cljs:520, src/app/main/ui/dashboard/team.cljs:553, src/app/main/ui/onboarding/team_choice.cljs:66 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs msgid "labels.editor" msgstr "Editor" -#: src/app/main/ui/dashboard/team.cljs:661 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.expired-invitation" msgstr "Verlopen" -#: src/app/main/ui/export.cljs:173 msgid "labels.export" msgstr "Exporteren" -#: src/app/main/ui/settings/feedback.cljs:51 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.feedback-disabled" msgstr "Feedback uitgeschakeld" -#: src/app/main/ui/settings/feedback.cljs:42 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.feedback-sent" msgstr "Feedback verstuurd" -#: src/app/main/ui/onboarding/questions.cljs:170 -msgid "labels.figma" -msgstr "Figma" - -#: src/app/main/ui/dashboard/fonts.cljs:412 msgid "labels.font-family" msgstr "Lettertype-familie" -#, unused msgid "labels.font-providers" msgstr "Lettertypeaanbieders" -#: src/app/main/ui/dashboard/fonts.cljs:413 msgid "labels.font-variants" msgstr "Stijlen" -#: src/app/main/ui/dashboard/fonts.cljs:52, src/app/main/ui/dashboard/sidebar.cljs:811 msgid "labels.fonts" msgstr "Lettertypen" -#: src/app/main/ui/onboarding/questions.cljs:262 -msgid "labels.freelancer" -msgstr "Ik ben een freelancer" - -#: src/app/main/ui/dashboard/sidebar.cljs:1015, src/app/main/ui/workspace/main_menu.cljs:142 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.github-repo" msgstr "GitHub-repository" -#: src/app/main/ui/dashboard/sidebar.cljs:1032, src/app/main/ui/settings/sidebar.cljs:113, src/app/main/ui/workspace/main_menu.cljs:171 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/settings/sidebar.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.give-feedback" msgstr "Geef feedback" -#: src/app/main/ui/auth/recovery_request.cljs:110, src/app/main/ui/auth/register.cljs:285, src/app/main/ui/viewer/login.cljs:117 msgid "labels.go-back" msgstr "Ga terug" -#: src/app/main/ui/dashboard/sidebar.cljs:978, src/app/main/ui/workspace/main_menu.cljs:102 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.help-center" msgstr "Helpcentrum" -#: src/app/main/ui/viewer/comments.cljs:103, src/app/main/ui/workspace/comments.cljs:67 +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs msgid "labels.hide-resolved-comments" msgstr "Verwerkt commentaar verbergen" -#: src/app/main/ui/dashboard/team.cljs:969 msgid "labels.inactive" msgstr "Inactief" -#: src/app/main/ui/dashboard/fonts.cljs:410 msgid "labels.installed-fonts" msgstr "Geïnstalleerde lettertypen" -#: src/app/main/ui/static.cljs:144 +#: src/app/main/ui/static.cljs msgid "labels.internal-error.desc-message" msgstr "" "Er ging iets mis. Probeer de bewerking opnieuw of neem contact op met " "support als het probleem zich blijft voordoen." -#: src/app/main/ui/static.cljs:143 +#: src/app/main/ui/static.cljs msgid "labels.internal-error.main-message" msgstr "Interne fout" -#: src/app/main/ui/onboarding/questions.cljs:178 -msgid "labels.invision" -msgstr "InVision" - -#: src/app/main/ui/dashboard/sidebar.cljs:516, src/app/main/ui/dashboard/team.cljs:89, src/app/main/ui/dashboard/team.cljs:97, src/app/main/ui/dashboard/team.cljs:708 +#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.invitations" msgstr "Uitnodigingen" -#: src/app/main/ui/settings/options.cljs:51 +#: src/app/main/ui/settings/options.cljs msgid "labels.language" msgstr "Taal" -#: src/app/main/ui/dashboard/sidebar.cljs:1008, src/app/main/ui/workspace/main_menu.cljs:134 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.libraries-and-templates" msgstr "Bibliotheken en sjablonen" -#: src/app/main/ui/viewer/header.cljs:203 msgid "labels.log-or-sign" msgstr "Log in of meld je aan" -#: src/app/main/ui/dashboard/sidebar.cljs:1040 +#: src/app/main/ui/settings.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.logout" msgstr "Uitloggen" -#: src/app/main/ui/dashboard/team.cljs:468 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.member" msgstr "Lid" -#: src/app/main/ui/dashboard/sidebar.cljs:510, src/app/main/ui/dashboard/team.cljs:87, src/app/main/ui/dashboard/team.cljs:95 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.members" msgstr "Leden" -#: src/app/main/ui/settings/password.cljs:96 +#: src/app/main/ui/settings/password.cljs msgid "labels.new-password" msgstr "Nieuw wachtwoord" -#: src/app/main/ui/dashboard/templates.cljs:269, src/app/main/ui/onboarding/questions.cljs:55 -msgid "labels.next" -msgstr "Volgende" - -#: src/app/main/ui/dashboard/comments.cljs:128, src/app/main/ui/workspace/comments.cljs:161 +#: src/app/main/ui/workspace/comments.cljs, +#: src/app/main/ui/dashboard/comments.cljs msgid "labels.no-comments-available" msgstr "Je bent helemaal bij! Nieuwe commentaarmeldingen verschijnen hier." -#: src/app/main/ui/dashboard/team.cljs:694 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.no-invitations" msgstr "Geen openstaande uitnodigingen." -#: src/app/main/ui/dashboard/team.cljs:696 -#, markdown +#: src/app/main/ui/dashboard/team.cljs msgid "labels.no-invitations-hint" msgstr "" "Klik op de knop **Mensen uitnodigen** om mensen uit te nodigen voor dit " "team." -#: src/app/main/ui/static.cljs:50 +#: src/app/main/ui/static.cljs msgid "labels.not-found.desc-message" msgstr "Deze pagina bestaat mogelijk niet of je hebt geen toegangsrechten." -#: src/app/main/ui/static.cljs:49 +#: src/app/main/ui/static.cljs msgid "labels.not-found.main-message" msgstr "Oeps!" -#: src/app/main/ui/dashboard/projects.cljs:239, src/app/main/ui/dashboard/team.cljs:1095 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.num-of-files" msgid_plural "labels.num-of-files" msgstr[0] "1 bestand" msgstr[1] "%s bestanden" -#: src/app/main/ui/viewer/thumbnails.cljs:80 msgid "labels.num-of-frames" msgid_plural "labels.num-of-frames" msgstr[0] "1 bord" msgstr[1] "%s borden" -#: src/app/main/ui/dashboard/team.cljs:1090 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.num-of-projects" msgid_plural "labels.num-of-projects" msgstr[0] "1 project" msgstr[1] "%s projecten" -#: src/app/main/ui/settings/password.cljs:89 +#: src/app/main/ui/settings/password.cljs msgid "labels.old-password" msgstr "Huidig wachtwoord" #: src/app/main/ui/workspace/comments.cljs -#, unused msgid "labels.only-yours" msgstr "Alleen van jou" -#, unused msgid "labels.or" msgstr "of" -#: src/app/main/ui/onboarding/questions.cljs:145, src/app/main/ui/onboarding/questions.cljs:214, src/app/main/ui/onboarding/questions.cljs:303, src/app/main/ui/onboarding/questions.cljs:316, src/app/main/ui/onboarding/questions.cljs:389, src/app/main/ui/onboarding/questions.cljs:447 -msgid "labels.other" -msgstr "Anders (namelijk…)" - -#: src/app/main/ui/dashboard/team.cljs:286, src/app/main/ui/dashboard/team.cljs:518, src/app/main/ui/dashboard/team.cljs:1076 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs msgid "labels.owner" msgstr "Eigenaar" -#: src/app/main/ui/settings/sidebar.cljs:87 +#: src/app/main/ui/settings/sidebar.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.password" msgstr "Wachtwoord" -#: src/app/main/ui/dashboard/team.cljs:662 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.pending-invitation" msgstr "In behandeling" -#: src/app/main/ui/onboarding/questions.cljs:51 -msgid "labels.previous" -msgstr "Vorige" - -#: src/app/main/ui/settings/profile.cljs:118, src/app/main/ui/settings/sidebar.cljs:82 +#: src/app/main/ui/settings/sidebar.cljs msgid "labels.profile" msgstr "Profiel" -#: src/app/main/ui/dashboard/sidebar.cljs:784 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.projects" msgstr "Projecten" -#: src/app/main/ui/dashboard/sidebar.cljs:998, src/app/main/ui/settings/sidebar.cljs:106, src/app/main/ui/workspace/main_menu.cljs:126 +#: src/app/main/ui/settings/sidebar.cljs msgid "labels.release-notes" msgstr "Release-opmerkingen" #: src/app/main/ui/workspace.cljs -#, unused msgid "labels.reload-file" msgstr "Bestand opnieuw laden" -#: src/app/main/ui/workspace/libraries.cljs, src/app/main/ui/dashboard/team.cljs -#, unused +#: src/app/main/ui/workspace/libraries.cljs, +#: src/app/main/ui/dashboard/team.cljs msgid "labels.remove" msgstr "Verwijderen" -#: src/app/main/ui/dashboard/team.cljs:316 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.remove-member" msgstr "Lid verwijderen" -#: src/app/main/ui/dashboard/file_menu.cljs:271, src/app/main/ui/dashboard/project_menu.cljs:85, src/app/main/ui/dashboard/sidebar.cljs:539, src/app/main/ui/workspace/sidebar/assets/groups.cljs:157 +#: src/app/main/ui/dashboard/sidebar.cljs, +#: src/app/main/ui/dashboard/project_menu.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.rename" msgstr "Hernoemen" -#: src/app/main/ui/dashboard/team_form.cljs:99 +#: src/app/main/ui/dashboard/team_form.cljs msgid "labels.rename-team" msgstr "Team hernoemen" -#: src/app/main/ui/dashboard/team.cljs:645 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.resend-invitation" msgstr "Uitnodiging opnieuw versturen" -#: src/app/main/ui/static.cljs:61, src/app/main/ui/static.cljs:70, src/app/main/ui/static.cljs:148 +#: src/app/main/ui/static.cljs, src/app/main/ui/static.cljs msgid "labels.retry" msgstr "Opnieuw proberen" -#: src/app/main/ui/dashboard/team.cljs:469, src/app/main/ui/dashboard/team.cljs:709 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.role" msgstr "Rol" -#: src/app/main/ui/dashboard/fonts.cljs:380, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:191 msgid "labels.save" msgstr "Opslaan" -#: src/app/main/ui/onboarding/questions.cljs:414, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:436 msgid "labels.search" msgstr "Zoeken" -#: src/app/main/ui/dashboard/fonts.cljs:415 msgid "labels.search-font" msgstr "Lettertype zoeken" -#: src/app/main/ui/onboarding/questions.cljs:90, src/app/main/ui/onboarding/questions.cljs:248, src/app/main/ui/onboarding/questions.cljs:259, src/app/main/ui/onboarding/questions.cljs:270 -msgid "labels.select-option" -msgstr "Selecteer een optie" - -#: src/app/main/ui/settings/feedback.cljs:82 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.send" msgstr "Versturen" -#: src/app/main/ui/settings/feedback.cljs:82 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.sending" msgstr "Versturen…" -#: src/app/main/ui/static.cljs:68 +#: src/app/main/ui/static.cljs msgid "labels.service-unavailable.desc-message" msgstr "We zijn bezig met onderhoud van onze systemen." -#: src/app/main/ui/static.cljs:67 +#: src/app/main/ui/static.cljs msgid "labels.service-unavailable.main-message" msgstr "Service niet beschikbaar" -#: src/app/main/ui/dashboard/sidebar.cljs:530, src/app/main/ui/dashboard/team.cljs:88, src/app/main/ui/dashboard/team.cljs:102, src/app/main/ui/settings/options.cljs:84, src/app/main/ui/settings/sidebar.cljs:93 +#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.settings" msgstr "Instellingen" -#: src/app/main/ui/viewer/header.cljs:199 msgid "labels.share" msgstr "Delen" -#, unused msgid "labels.share-prototype" msgstr "Prototype delen" -#: src/app/main/ui/dashboard/sidebar.cljs:800 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.shared-libraries" msgstr "Bibliotheek" -#: src/app/main/ui/viewer/comments.cljs:82, src/app/main/ui/workspace/comments.cljs:55, src/app/main/ui/workspace/comments.cljs:135 +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs msgid "labels.show-all-comments" msgstr "Alle commentaar tonen" -#: src/app/main/ui/viewer/comments.cljs:115 msgid "labels.show-comments-list" msgstr "Commentaarlijst tonen" -#: src/app/main/ui/viewer/comments.cljs:91, src/app/main/ui/workspace/comments.cljs:61, src/app/main/ui/workspace/comments.cljs:136 +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs msgid "labels.show-your-comments" msgstr "Alleen eigen commentaar tonen" -#: src/app/main/ui/onboarding/questions.cljs:172 -msgid "labels.sketch" -msgstr "Sketch" - -#: src/app/main/ui/onboarding/questions.cljs:56 -msgid "labels.start" -msgstr "Starten" - -#: src/app/main/ui/dashboard/team.cljs:710 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.status" msgstr "Status" -#: src/app/main/ui/onboarding/questions.cljs:251 -msgid "labels.student-teacher" -msgstr "Student of docent" - -#: src/app/main/ui/dashboard/sidebar.cljs:992, src/app/main/ui/workspace/main_menu.cljs:118 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.tutorials" msgstr "Introductie" -#: src/app/main/ui/dashboard/file_menu.cljs:256 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.unpublish-multi-files" msgstr "Publicatie van %s bestanden ongedaan maken" -#: src/app/main/ui/settings/profile.cljs:103 +#: src/app/main/ui/settings/profile.cljs msgid "labels.update" msgstr "Bijwerken" -#: src/app/main/ui/dashboard/team_form.cljs:120 +#: src/app/main/ui/dashboard/team_form.cljs msgid "labels.update-team" msgstr "Team bijwerken" -#: src/app/main/ui/dashboard/fonts.cljs:241 msgid "labels.upload" msgstr "Uploaden" -#: src/app/main/ui/dashboard/fonts.cljs:169 msgid "labels.upload-custom-fonts" msgstr "Eigen lettertypen uploaden" -#: src/app/main/ui/dashboard/fonts.cljs:240 msgid "labels.uploading" msgstr "Uploaden…" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs:223 msgid "labels.view-only" msgstr "ALLEEN BEKIJKEN" -#: src/app/main/ui/dashboard/team.cljs:123, src/app/main/ui/dashboard/team.cljs:282, src/app/main/ui/dashboard/team.cljs:521 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.viewer" msgstr "Kijker" -#: src/app/main/ui/dashboard/sidebar.cljs:523, src/app/main/ui/dashboard/team.cljs:90, src/app/main/ui/dashboard/team.cljs:100, src/app/main/ui/dashboard/team.cljs:880 msgid "labels.webhooks" msgstr "Webhooks" -#: src/app/main/ui/comments.cljs:194 +#: src/app/main/ui/comments.cljs msgid "labels.write-new-comment" msgstr "Nieuw commentaar toevoegen" -#: src/app/main/ui/dashboard/team.cljs:237 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.you" msgstr "(jij)" -#: src/app/main/ui/dashboard/sidebar.cljs:968 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.your-account" msgstr "Jouw account" -#: src/app/main/ui/workspace/colorpicker.cljs:297, src/app/main/ui/workspace/colorpicker.cljs:298, src/app/main/ui/workspace/colorpicker.cljs:300 msgid "media.choose-image" msgstr "Afbeelding kiezen" -#, unused msgid "media.gradient" msgstr "Verloop" -#: src/app/main/data/workspace/media.cljs:275, src/app/main/ui/components/color_bullet.cljs:32, src/app/main/ui/components/color_bullet.cljs:45, src/app/main/ui/viewer/inspect/attributes/common.cljs:66, src/app/main/ui/workspace/colorpicker.cljs:211, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:237 msgid "media.image" msgstr "Afbeelding" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:77 msgid "media.image.short" msgstr "img" -#: src/app/main/ui/workspace/colorpicker.cljs:290 msgid "media.keep-aspect-ratio" msgstr "Verhoudingen behouden" -#: src/app/main/ui/workspace/colorpicker.cljs:208 msgid "media.linear" msgstr "Lineair" -#: src/app/main/data/media.cljs:49, src/app/main/data/workspace/media.cljs:223, src/app/main/data/workspace/media.cljs:453 +#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs msgid "media.loading" msgstr "Afbeelding laden…" -#: src/app/main/ui/workspace/colorpicker.cljs:209 msgid "media.radial" msgstr "Radiaal" -#: src/app/main/ui/workspace/colorpicker.cljs:206 msgid "media.solid" msgstr "Solide" -#: src/app/main/data/common.cljs:111 msgid "modals.add-shared-confirm-empty.hint" msgstr "" "Je bibliotheek is leeg. Eenmaal toegevoegd als Gedeelde Bibliotheek, zijn " "de assets die je aanmaakt beschikbaar voor gebruik in de rest van je " "bestanden. Weet je zeker dat je dit wilt publiceren??" -#: src/app/main/data/common.cljs:113 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.add-shared-confirm.accept" msgstr "Toevoegen als gedeelde bibliotheek" -#: src/app/main/data/common.cljs:111 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.add-shared-confirm.hint" msgstr "" "Eenmaal toegevoegd als gedeelde bibliotheek, zijn de assets van deze " "bestandsbibliotheek beschikbaar voor gebruik tussen de rest van je " "bestanden." -#: src/app/main/data/common.cljs:110 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.add-shared-confirm.message" msgstr "\"%s\" toevoegen als gedeelde bibliotheek" -#: src/app/main/ui/workspace/nudge.cljs:60 +#: src/app/main/ui/workspace/nudge.cljs msgid "modals.big-nudge" msgstr "Grote verschuiving" -#: src/app/main/ui/settings/change_email.cljs:127 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.confirm-email" msgstr "Nieuw e-mailadres verifiëren" -#: src/app/main/ui/settings/change_email.cljs:114 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.info" msgstr "" "We sturen je een e-mail naar je huidige e-mailadres \"%s\" om je identiteit " "te verifiëren." -#: src/app/main/ui/settings/change_email.cljs:119 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.new-email" msgstr "Nieuw e-mailadres" -#: src/app/main/ui/settings/change_email.cljs:136 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.submit" msgstr "E-mailadres wijzigen" -#: src/app/main/ui/settings/change_email.cljs:107 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.title" msgstr "Je e-mailadres wijzigen" -#: src/app/main/ui/settings/access_tokens.cljs:165, src/app/main/ui/settings/access_tokens.cljs:171 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.create-access-token.copy-token" msgstr "Toegangsbewijs kopiëren" -#: src/app/main/ui/settings/access_tokens.cljs:142 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.create-access-token.expiration-date.label" msgstr "Vervaldatum" -#: src/app/main/ui/settings/access_tokens.cljs:136 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.create-access-token.name.label" msgstr "Naam" -#: src/app/main/ui/settings/access_tokens.cljs:138 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.create-access-token.name.placeholder" msgstr "De naam helpt je te onthouden waar het toegangsbewijs voor is" -#: src/app/main/ui/settings/access_tokens.cljs:191 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.create-access-token.submit-label" msgstr "Toegangsbewijs aanmaken" -#: src/app/main/ui/settings/access_tokens.cljs:123 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.create-access-token.title" msgstr "Toegangsbewijs genereren" -#: src/app/main/ui/dashboard/team.cljs:873 msgid "modals.create-webhook.submit-label" msgstr "Webhook aanmaken" -#: src/app/main/ui/dashboard/team.cljs:838 msgid "modals.create-webhook.title" msgstr "Webhook aanmaken" -#: src/app/main/ui/dashboard/team.cljs:849 msgid "modals.create-webhook.url.label" msgstr "Payload-URL" -#: src/app/main/ui/dashboard/team.cljs:850 msgid "modals.create-webhook.url.placeholder" msgstr "https://voorbeeld.nl/postreceive" -#: src/app/main/ui/settings/access_tokens.cljs:271 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.delete-acces-token.accept" msgstr "Toegangsbewijs verwijderen" -#: src/app/main/ui/settings/access_tokens.cljs:270 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.delete-acces-token.message" msgstr "Weet je zeker dat je dit toegangsbewijs wilt verwijderen?" -#: src/app/main/ui/settings/access_tokens.cljs:269 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.delete-acces-token.title" msgstr "Toegangsbewijs verwijderen" -#: src/app/main/ui/settings/delete_account.cljs:59 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.cancel" msgstr "Annuleer en behoud mijn account" -#: src/app/main/ui/settings/delete_account.cljs:64 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.confirm" msgstr "Ja, verwijder mijn account" -#: src/app/main/ui/settings/delete_account.cljs:53 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.info" msgstr "" "Als je je account verwijdert, verlies je al je huidige projecten en " "archieven." -#: src/app/main/ui/settings/delete_account.cljs:46 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.title" msgstr "Weet je zeker dat je je account wilt verwijderen?" -#: src/app/main/ui/comments.cljs:298 +#: src/app/main/ui/comments.cljs msgid "modals.delete-comment-thread.accept" msgstr "Gesprek verwijderen" -#: src/app/main/ui/comments.cljs:297 +#: src/app/main/ui/comments.cljs msgid "modals.delete-comment-thread.message" msgstr "" "Weet je zeker dat je dit gesprek wilt verwijderen? Alle reacties in deze " "thread worden verwijderd." -#: src/app/main/ui/comments.cljs:296 +#: src/app/main/ui/comments.cljs msgid "modals.delete-comment-thread.title" msgstr "Gesprek verwijderen" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:140 msgid "modals.delete-component-annotation.message" msgstr "Weet je zeker dat je deze aantekening wilt verwijderen?" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:139 msgid "modals.delete-component-annotation.title" msgstr "Aantekening verwijderen" -#: src/app/main/ui/dashboard/file_menu.cljs:123 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-confirm.accept" msgstr "Bestand verwijderen" -#: src/app/main/ui/dashboard/file_menu.cljs:122 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-confirm.message" msgstr "Weet je zeker dat je dit bestand wilt verwijderen?" -#: src/app/main/ui/dashboard/file_menu.cljs:121 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-confirm.title" msgstr "Bestand verwijderen" -#: src/app/main/ui/dashboard/file_menu.cljs:117 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-multi-confirm.accept" msgstr "Bestanden verwijderen" -#: src/app/main/ui/dashboard/file_menu.cljs:116 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-multi-confirm.message" msgstr "Weet je zeker dat je %s bestanden wilt verwijderen?" -#: src/app/main/ui/dashboard/file_menu.cljs:115 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-multi-confirm.title" msgstr "Verwijderen van %s bestanden" -#: src/app/main/ui/dashboard/fonts.cljs:345 msgid "modals.delete-font-variant.message" msgstr "" "Weet je zeker dat je deze lettertypestijl wilt verwijderen? Het wordt dan " "niet meer geladen als het in een bestand wordt gebruikt." -#: src/app/main/ui/dashboard/fonts.cljs:344 msgid "modals.delete-font-variant.title" msgstr "Lettertypestijl verwijderen" -#: src/app/main/ui/dashboard/fonts.cljs:331 msgid "modals.delete-font.message" msgstr "" "Weet je zeker dat je dit lettertype wilt verwijderen? Het wordt dan niet " "meer geladen als het in een bestand wordt gebruikt." -#: src/app/main/ui/dashboard/fonts.cljs:330 msgid "modals.delete-font.title" msgstr "Lettertype verwijderen" -#: src/app/main/ui/workspace/context_menu.cljs:522, src/app/main/ui/workspace/sidebar/sitemap.cljs:45 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs msgid "modals.delete-page.body" msgstr "Weet je zeker dat je deze pagina wilt verwijderen?" -#: src/app/main/ui/workspace/context_menu.cljs:521, src/app/main/ui/workspace/sidebar/sitemap.cljs:44 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs msgid "modals.delete-page.title" msgstr "Pagina verwijderen" -#: src/app/main/ui/dashboard/project_menu.cljs:69 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "modals.delete-project-confirm.accept" msgstr "Project verwijderen" -#: src/app/main/ui/dashboard/project_menu.cljs:68 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "modals.delete-project-confirm.message" msgstr "Weet je zeker dat je dit project wilt verwijderen?" -#: src/app/main/ui/dashboard/project_menu.cljs:67 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "modals.delete-project-confirm.title" msgstr "Project verwijderen" -#: src/app/main/ui/delete_shared.cljs:51 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.accept" msgid_plural "modals.delete-shared-confirm.accept" msgstr[0] "Bestand verwijderen" msgstr[1] "Bestanden verwijderen" -#: src/app/main/ui/delete_shared.cljs:55 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.activated.no-files-message" msgid_plural "modals.delete-shared-confirm.activated.no-files-message" msgstr[0] "Het is in geen enkel bestand geactiveerd." msgstr[1] "Ze zijn in geen enkel bestand geactiveerd." -#: src/app/main/ui/delete_shared.cljs:57 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.activated.scd-message" msgid_plural "modals.delete-shared-confirm.activated.scd-message" msgstr[0] "Deze bibliotheek wordt hier geactiveerd: " msgstr[1] "Deze bibliotheken worden hier geactiveerd: " -#: src/app/main/ui/delete_shared.cljs:46 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.message" msgid_plural "modals.delete-shared-confirm.message" msgstr[0] "Weet je zeker dat je dit bestand wilt verwijderen?" msgstr[1] "Weet je zeker dat je deze bestanden wilt verwijderen?" -#: src/app/main/ui/delete_shared.cljs:41 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.title" msgid_plural "modals.delete-shared-confirm.title" msgstr[0] "Bestand verwijderen" msgstr[1] "Bestanden verwijderen" -#: src/app/main/ui/dashboard/sidebar.cljs:435 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.delete-team-confirm.accept" msgstr "Team verwijderen" -#: src/app/main/ui/dashboard/sidebar.cljs:434 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.delete-team-confirm.message" msgstr "" "Weet je zeker dat je dit team wilt verwijderen? Alle projecten en bestanden " "die aan het team zijn gekoppeld, worden permanent verwijderd." -#: src/app/main/ui/dashboard/sidebar.cljs:433 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.delete-team-confirm.title" msgstr "Team verwijderen" -#: src/app/main/ui/dashboard/team.cljs:427 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.delete-team-member-confirm.accept" msgstr "Lid verwijderen" -#: src/app/main/ui/dashboard/team.cljs:426 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.delete-team-member-confirm.message" msgstr "Weet je zeker dat je dit lid van het team wilt verwijderen?" -#: src/app/main/ui/dashboard/team.cljs:425 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.delete-team-member-confirm.title" msgstr "Teamlid verwijderen" -#: src/app/main/ui/delete_shared.cljs:59 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-unpublish-shared-confirm.activated.hint" msgid_plural "modals.delete-unpublish-shared-confirm.activated.hint" msgstr[0] "" @@ -2261,173 +2077,161 @@ msgstr[1] "" "Assets die al in die bestanden zijn gebruikt, blijven daar staan (er wordt " "geen ontwerp verbroken)." -#: src/app/main/ui/dashboard/team.cljs:942 msgid "modals.delete-webhook.accept" msgstr "Webhook verwijderen" -#: src/app/main/ui/dashboard/team.cljs:941 msgid "modals.delete-webhook.message" msgstr "Weet je zeker dat je deze webhook wilt verwijderen?" -#: src/app/main/ui/dashboard/team.cljs:940 msgid "modals.delete-webhook.title" msgstr "Webhook verwijderen" -#: src/app/main/ui/dashboard/team.cljs:872 msgid "modals.edit-webhook.submit-label" msgstr "Webhook bewerken" -#: src/app/main/ui/dashboard/team.cljs:837 msgid "modals.edit-webhook.title" msgstr "Webhook bewerken" -#: src/app/main/ui/dashboard/team.cljs:218 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.invite-member-confirm.accept" msgstr "Uitnodiging versturen" -#: src/app/main/ui/dashboard/team.cljs:213, src/app/main/ui/onboarding/team_choice.cljs:156 msgid "modals.invite-member.emails" msgstr "E-mailadressen, kommagescheiden" -#: src/app/main/ui/dashboard/team.cljs:197 msgid "modals.invite-member.repeated-invitation" msgstr "" "Sommige e-mailadressen zijn van bestaande teamleden. Zij krijgen geen " "nieuwe uitnodigingen." -#: src/app/main/ui/dashboard/team.cljs:190 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.invite-team-member.title" msgstr "Leden voor het team uitnodigen" -#: src/app/main/ui/dashboard/sidebar.cljs:423, src/app/main/ui/dashboard/team.cljs:393 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-close-confirm.hint" msgstr "" "Aangezien je het enige lid van dit team bent, wordt het team samen met de " "projecten en bestanden verwijderd." -#: src/app/main/ui/dashboard/sidebar.cljs:422, src/app/main/ui/dashboard/team.cljs:392 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-close-confirm.message" msgstr "Weet je zeker dat je het %s team wilt verlaten?" -#: src/app/main/ui/dashboard/change_owner.cljs:59 msgid "modals.leave-and-reassign.forbidden" msgstr "" "Je kunt het team niet verlaten als er geen ander lid is om tot eigenaar te " "promoveren. Misschien wil je het team verwijderen." -#: src/app/main/ui/dashboard/change_owner.cljs:55 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-reassign.hint1" msgstr "" "Jij bent de eigenaar van dit team. Selecteer een ander lid om tot eigenaar " "te promoveren voordat je vertrekt." -#: src/app/main/ui/dashboard/change_owner.cljs:78 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-reassign.promote-and-leave" msgstr "Promoveren en verlaten" -#: src/app/main/ui/dashboard/change_owner.cljs:34 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-reassign.select-member-to-promote" msgstr "Selecteer een lid om te promoveren" -#: src/app/main/ui/dashboard/change_owner.cljs:49 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-reassign.title" msgstr "Voordat je gaat" -#: src/app/main/ui/dashboard/sidebar.cljs:402, src/app/main/ui/dashboard/sidebar.cljs:424, src/app/main/ui/dashboard/team.cljs:394, src/app/main/ui/dashboard/team.cljs:416 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-confirm.accept" msgstr "Team verlaten" -#: src/app/main/ui/dashboard/sidebar.cljs:401, src/app/main/ui/dashboard/team.cljs:415 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-confirm.message" msgstr "Weet je zeker dat je dit team wilt verlaten?" -#: src/app/main/ui/dashboard/sidebar.cljs:400, src/app/main/ui/dashboard/sidebar.cljs:421, src/app/main/ui/dashboard/team.cljs:391, src/app/main/ui/dashboard/team.cljs:414 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-confirm.title" msgstr "Team verlaten" -#: src/app/main/ui/delete_shared.cljs:53 msgid "modals.move-shared-confirm.accept" msgid_plural "modals.move-shared-confirm.accept" msgstr[0] "Verplaatsen" msgstr[1] "Verplaatsen" -#: src/app/main/ui/delete_shared.cljs:48 msgid "modals.move-shared-confirm.message" msgid_plural "modals.move-shared-confirm.message" msgstr[0] "Weet je zeker dat je deze bibliotheek wilt verplaatsen?" msgstr[1] "Weet je zeker dat je deze bibliotheken wilt verplaatsen?" -#: src/app/main/ui/delete_shared.cljs:43 msgid "modals.move-shared-confirm.title" msgid_plural "modals.move-shared-confirm.title" msgstr[0] "Bibliotheek verplaatsen" msgstr[1] "Bibliotheken verplaatsen" -#: src/app/main/ui/workspace/main_menu.cljs:266, src/app/main/ui/workspace/nudge.cljs:47 +#: src/app/main/ui/workspace/nudge.cljs msgid "modals.nudge-title" msgstr "Verschuiving" -#: src/app/main/ui/dashboard/team.cljs:340 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.accept" msgstr "Eigendom overdragen" -#: src/app/main/ui/dashboard/team.cljs:339 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.hint" msgstr "" "Als je het eigendom overdraagt, verander je je rol in beheerder en verlies " "je enkele machtigingen voor dit team. " -#: src/app/main/ui/dashboard/team.cljs:338 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.message" msgstr "" "Je bent de huidige eigenaar van dit team. Weet je zeker dat je %s de nieuwe " "eigenaar van het team wilt maken?" -#: src/app/main/ui/dashboard/team.cljs:337 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.title" msgstr "Nieuwe teameigenaar" -#: src/app/main/ui/workspace/libraries.cljs:188 msgid "modals.publish-empty-library.accept" msgstr "Publiceren" -#: src/app/main/ui/workspace/libraries.cljs:187 msgid "modals.publish-empty-library.message" msgstr "Je bibliotheek is leeg. Weet je zeker dat je het wilt publiceren?" -#: src/app/main/ui/workspace/libraries.cljs:186 msgid "modals.publish-empty-library.title" msgstr "Lege bibliotheek publiceren" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.remove-shared-confirm.accept" msgstr "Als gedeelde bibliotheek verwijderen" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.remove-shared-confirm.hint" msgstr "" "Eenmaal verwijderd als gedeelde bibliotheek, is de bestandsbibliotheek van " "dit bestand niet meer beschikbaar voor gebruik onder de rest van je " "bestanden." -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.remove-shared-confirm.message" msgstr "\"%s\" als gedeelde bibliotheek verwijderen" -#: src/app/main/ui/workspace/nudge.cljs:53 +#: src/app/main/ui/workspace/nudge.cljs msgid "modals.small-nudge" msgstr "Kleine verschuiving" -#: src/app/main/ui/delete_shared.cljs:52 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.unpublish-shared-confirm.accept" msgid_plural "modals.unpublish-shared-confirm.accept" msgstr[0] "Publicatie ongedaan maken" msgstr[1] "Publicaties ongedaan maken" -#: src/app/main/ui/delete_shared.cljs:47 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.unpublish-shared-confirm.message" msgid_plural "modals.unpublish-shared-confirm.message" msgstr[0] "Weet je zeker dat je de publicatie van deze bibliotheek ongedaan wilt maken?" @@ -2435,3330 +2239,3015 @@ msgstr[1] "" "Weet je zeker dat je de publicatie van deze bibliotheken ongedaan wilt " "maken?" -#: src/app/main/ui/delete_shared.cljs:42 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.unpublish-shared-confirm.title" msgid_plural "modals.unpublish-shared-confirm.title" msgstr[0] "Publicatie bibliotheek ongedaan maken" msgstr[1] "Publicatie bibliotheken ongedaan maken" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component-in-bulk.hint" msgstr "" "Je staat op het punt om componenten in een gedeelde bibliotheek bij te " "werken. Dit kan van invloed zijn op andere bestanden die er gebruik van " "maken." -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component-in-bulk.message" msgstr "Componenten in een gedeelde bibliotheek bijwerken" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:380 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.accept" msgstr "Bijwerken" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:379 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.cancel" msgstr "Annuleren" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:378 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.hint" msgstr "" "Je staat op het punt een component in een gedeelde bibliotheek bij te " "werken. Dit kan van invloed zijn op andere bestanden die er gebruik van " "maken." -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:377 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.message" msgstr "Component in een gedeelde bibliotheek bijwerken" -#: src/app/main/data/common.cljs:71 +#: src/app/main/data/common.cljs msgid "notifications.by-code.upgrade-version" msgstr "Er is een nieuwe versie beschikbaar, vernieuw de pagina" -#: src/app/main/ui/dashboard/team.cljs:154, src/app/main/ui/dashboard/team.cljs:595 +#: src/app/main/ui/dashboard/team.cljs msgid "notifications.invitation-email-sent" msgstr "Uitnodiging succesvol verstuurd" -#: src/app/main/ui/dashboard/team.cljs:616 +#: src/app/main/ui/dashboard/team.cljs msgid "notifications.invitation-link-copied" msgstr "Uitnodigingslink gekopieerd" -#: src/app/main/ui/settings/delete_account.cljs:24 +#: src/app/main/ui/settings/delete_account.cljs msgid "notifications.profile-deletion-not-allowed" msgstr "" "Je kunt je profiel niet verwijderen. Wijs je teams opnieuw toe voordat je " "verder gaat." -#: src/app/main/ui/settings/options.cljs:29, src/app/main/ui/settings/profile.cljs:35 +#: src/app/main/ui/settings/profile.cljs, src/app/main/ui/settings/options.cljs msgid "notifications.profile-saved" msgstr "Profiel is opgeslagen!" -#: src/app/main/ui/settings/change_email.cljs:63 +#: src/app/main/ui/settings/change_email.cljs msgid "notifications.validation-email-sent" msgstr "Verificatie-e-mail verzonden naar %s. Controleer je e-mail!" -#, unused msgid "onboarding-v2.before-start.desc1" msgstr "" "Je moet weten dat er veel bronnen beschikbaar zijn om je op weg te helpen " "met Penpot, zoals de gebruikershandleiding en ons YouTube-kanaal." -#, unused msgid "onboarding-v2.before-start.desc2" msgstr "" "Gedetailleerde informatie over het gebruik van Penpot. Van prototyping tot " "het organiseren of delen van ontwerpen." -#, unused msgid "onboarding-v2.before-start.desc2.title" msgstr "Gebruikershandleiding" -#, unused msgid "onboarding-v2.before-start.desc3" msgstr "Je kunt onze introducties en die van onze gemeenschap bekijken." -#, unused msgid "onboarding-v2.before-start.desc3.title" msgstr "Video-introducties" -#, unused msgid "onboarding-v2.before-start.title" msgstr "Voordat je begint" -#: src/app/main/ui/onboarding/newsletter.cljs:63 msgid "onboarding-v2.newsletter.desc" msgstr "" "Abonneer je op de Penpot-nieuwsbrief om op de hoogte te blijven van de " "voortgang van de productontwikkeling en nieuws." -#: src/app/main/ui/onboarding/newsletter.cljs:83 msgid "onboarding-v2.newsletter.news" msgstr "Stuur mij nieuws over Penpot (blogposts, video-introducties, streamings…)." -#: src/app/main/ui/onboarding/newsletter.cljs:91 msgid "onboarding-v2.newsletter.privacy1" msgstr "Wij geven om privacy, lees hier onze " -#: src/app/main/ui/onboarding/newsletter.cljs:97 msgid "onboarding-v2.newsletter.privacy2" msgstr "" "We sturen je alleen relevante e-mails. Je kunt je op elk moment afmelden " "via de afmeldlink in al onze nieuwsbrieven." -#: src/app/main/ui/onboarding/newsletter.cljs:71 msgid "onboarding-v2.newsletter.updates" msgstr "Stuur mij productnieuws (nieuwe functies, releases, correcties…)." -#, unused msgid "onboarding-v2.welcome.desc1" msgstr "" "Penpot is Open Source en is gemaakt door zowel Kaleidos als de gemeenschap, " "waar al veel mensen elkaar helpen. Iedereen kan samenwerken door:" -#, unused msgid "onboarding-v2.welcome.desc2" msgstr "" "Een openbare ruimte om te leren, te delen en te discussiëren over Penpot, " "zijn heden en toekomst met de hele gemeenschap en het kernteam van Penpot." -#, unused msgid "onboarding-v2.welcome.desc2.title" msgstr "Deelnemen aan de Penpot-gemeenschap" -#, unused msgid "onboarding-v2.welcome.desc3" msgstr "" "Waar je kunt vinden hoe je kunt samenwerken aan vertalingen, " "functieverzoeken, kernbijdragen, zoeken naar bugs…" -#, unused msgid "onboarding-v2.welcome.desc3.title" msgstr "Bijdragen" -#: src/app/main/ui/onboarding/team_choice.cljs:31 msgid "onboarding-v2.welcome.title" msgstr "Welkom bij Penpot!" -#: src/app/main/ui/onboarding/team_choice.cljs:229 msgid "onboarding.choice.team-up.continue-creating-team" msgstr "Doorgaan met team aanmaken" -#: src/app/main/ui/onboarding/team_choice.cljs:239 msgid "onboarding.choice.team-up.continue-without-a-team" msgstr "Doorgaan zonder team" -#: src/app/main/ui/onboarding/team_choice.cljs:167 msgid "onboarding.choice.team-up.create-team-and-invite" msgstr "Team aanmaken & uitnodigen" -#, unused msgid "onboarding.choice.team-up.create-team-and-send-invites" msgstr "Team aanmaken en uitnodigingen versturen" -#: src/app/main/ui/onboarding/team_choice.cljs:170 msgid "onboarding.choice.team-up.create-team-and-send-invites-description" msgstr "Je kunt later uitnodigen" -#: src/app/main/ui/onboarding/team_choice.cljs:215 msgid "onboarding.choice.team-up.create-team-desc" msgstr "" "Nadat je je team een naam hebt gegeven, kun je mensen uitnodigen om lid te " "worden." -#: src/app/main/ui/onboarding/team_choice.cljs:224 msgid "onboarding.choice.team-up.create-team-placeholder" msgstr "Voer de naam van het team in" -#: src/app/main/ui/onboarding/team_choice.cljs:168 msgid "onboarding.choice.team-up.create-team-without-invite" msgstr "Team aanmaken" -#, unused msgid "onboarding.choice.team-up.create-team-without-inviting" msgstr "Team aanmaken zonder uitnodigingen" -#: src/app/main/ui/dashboard/projects.cljs:89, src/app/main/ui/onboarding/team_choice.cljs:140 msgid "onboarding.choice.team-up.invite-members" msgstr "Leden uitnodigen" -#: src/app/main/ui/onboarding/team_choice.cljs:141 msgid "onboarding.choice.team-up.invite-members-info" msgstr "" "Vergeet niet om iedereen mee te nemen. Ontwikkelaars, ontwerpers, " "managers... diversiteit is alleen maar beter :)" -#: src/app/main/ui/dashboard/team.cljs:202, src/app/main/ui/onboarding/team_choice.cljs:146 msgid "onboarding.choice.team-up.roles" msgstr "Uitnodigen met rol:" -#: src/app/main/ui/onboarding/team_choice.cljs:232 msgid "onboarding.choice.team-up.start-without-a-team" msgstr "Zonder team beginnen" -#: src/app/main/ui/onboarding/team_choice.cljs:234 msgid "onboarding.choice.team-up.start-without-a-team-description" msgstr "Je kunt later een team samenstellen." -#, unused msgid "onboarding.newsletter.accept" msgstr "Ja, abonneren" -#: src/app/main/ui/onboarding/newsletter.cljs:40 msgid "onboarding.newsletter.acceptance-message" msgstr "" "Je inschrijvingsverzoek is verzonden, wij sturen je een e-mail ter " "bevestiging." -#: src/app/main/ui/onboarding/newsletter.cljs:95 msgid "onboarding.newsletter.policy" msgstr "Privacybeleid." -#: src/app/main/ui/onboarding/newsletter.cljs:60 msgid "onboarding.newsletter.title" msgstr "Wil je Penpot-nieuws ontvangen?" -#: src/app/main/ui/onboarding/questions.cljs:118 -msgid "onboarding.questions.lets-get-started" -msgstr "Laten we beginnen!" - -#: src/app/main/ui/onboarding/questions.cljs:273 -msgid "onboarding.questions.team-size.11-30" -msgstr "11-30" - -#: src/app/main/ui/onboarding/questions.cljs:274 -msgid "onboarding.questions.team-size.2-10" -msgstr "2-10" - -#: src/app/main/ui/onboarding/questions.cljs:272 -msgid "onboarding.questions.team-size.31-50" -msgstr "31-50" - -#: src/app/main/ui/onboarding/questions.cljs:271 -msgid "onboarding.questions.team-size.more-than-50" -msgstr "Meer dan 50" - -#: src/app/main/ui/onboarding/questions.cljs:276 -msgid "onboarding.questions.team-size.personal-project" -msgstr "Ik werk aan een persoonlijk project" - -#: src/app/main/ui/onboarding/team_choice.cljs:213 msgid "onboarding.team-modal.create-team" msgstr "Team aanmaken" -#: src/app/main/ui/onboarding/team_choice.cljs:35 msgid "onboarding.team-modal.create-team-desc" msgstr "" "Met een team kun je samenwerken met andere Penpot-gebruikers die aan " "dezelfde bestanden en projecten werken." -#: src/app/main/ui/onboarding/team_choice.cljs:40 msgid "onboarding.team-modal.create-team-feature-1" msgstr "Oneindig veel bestanden en projecten" -#: src/app/main/ui/onboarding/team_choice.cljs:44 msgid "onboarding.team-modal.create-team-feature-2" msgstr "Multiplayer-editie" -#: src/app/main/ui/onboarding/team_choice.cljs:48 msgid "onboarding.team-modal.create-team-feature-3" msgstr "Rollenbeheer" -#: src/app/main/ui/onboarding/team_choice.cljs:52 msgid "onboarding.team-modal.create-team-feature-4" msgstr "Oneindig veel leden" -#: src/app/main/ui/onboarding/team_choice.cljs:56 msgid "onboarding.team-modal.create-team-feature-5" msgstr "100% gratis!" -#: src/app/main/ui/onboarding/team_choice.cljs:33 msgid "onboarding.team-modal.team-definition" msgstr "Wat is een team?" -#: src/app/main/ui/onboarding/templates.cljs:78 msgid "onboarding.templates.subtitle" msgstr "Hier zijn wat sjablonen." -#: src/app/main/ui/onboarding/templates.cljs:77 msgid "onboarding.templates.title" msgstr "Start met ontwerpen" -#, unused msgid "onboarding.welcome.alt" msgstr "Penpot" -#: src/app/main/ui/auth/recovery.cljs:99 +#: src/app/main/ui/auth/recovery.cljs msgid "profile.recovery.go-to-login" msgstr "Ga naar inlogscherm" -#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:221 +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.team-size.11-30" +msgstr "11-30" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.team-size.2-10" +msgstr "2-10" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.team-size.31-50" +msgstr "31-50" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.adobe-xd" +msgstr "Adobe XD" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.canva" +msgstr "Canva" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.figma" +msgstr "Figma" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.freelancer" +msgstr "Ik ben een freelancer" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.invision" +msgstr "InVision" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.lets-get-started" +msgstr "Laten we beginnen!" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.team-size.more-than-50" +msgstr "Meer dan 50" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.next" +msgstr "Volgende" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.other" +msgstr "Anders (namelijk…)" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.team-size.personal-project" +msgstr "Ik werk aan een persoonlijk project" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.previous" +msgstr "Vorige" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.select-option" +msgstr "Selecteer een optie" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.sketch" +msgstr "Sketch" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.start" +msgstr "Starten" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.student-teacher" +msgstr "Student of docent" + +#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, msgid "settings.detach" msgstr "Ontkoppelen" -#: src/app/main/ui/viewer/inspect/exports.cljs:147, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:631, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:137, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:148, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:188, src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:158, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:399, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:410, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:430, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:441, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:458, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:472, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:309, src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:183, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:373, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:389, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:245, src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:172 +#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs msgid "settings.multiple" msgstr "Gemixt" -#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:271 +#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs msgid "settings.select-this-color" msgstr "Selecteer items in deze stijl" # SECTIONS -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:414 msgid "shortcut-section.basics" msgstr "Basis" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:420 msgid "shortcut-section.dashboard" msgstr "Dashboard" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:423 msgid "shortcut-section.viewer" msgstr "Bekijker" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:417 msgid "shortcut-section.workspace" msgstr "Werkruimte" # SUBSECTIONS -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:56 msgid "shortcut-subsection.alignment" msgstr "Uitlijning" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:57 msgid "shortcut-subsection.edit" msgstr "Bewerken" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:58 msgid "shortcut-subsection.general-dashboard" msgstr "Algemeen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:59 msgid "shortcut-subsection.general-viewer" msgstr "Algemeen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:60 msgid "shortcut-subsection.main-menu" msgstr "Hoofdmenu" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:61 msgid "shortcut-subsection.modify-layers" msgstr "Lagen wijzigen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:62 msgid "shortcut-subsection.navigation-dashboard" msgstr "Navigatie" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:63 msgid "shortcut-subsection.navigation-viewer" msgstr "Navigatie" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:64 msgid "shortcut-subsection.navigation-workspace" msgstr "Navigatie" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:65 msgid "shortcut-subsection.panels" msgstr "Panelen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:66 msgid "shortcut-subsection.path-editor" msgstr "Paden" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:67 msgid "shortcut-subsection.shape" msgstr "Vormen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:68 msgid "shortcut-subsection.text-editor" msgstr "Teksten" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:69 msgid "shortcut-subsection.tools" msgstr "Hulpmiddelen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:70 msgid "shortcut-subsection.zoom-viewer" msgstr "Zoomen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:71 msgid "shortcut-subsection.zoom-workspace" msgstr "Zoomen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:72 msgid "shortcuts.add-comment" msgstr "Commentaar" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:73 msgid "shortcuts.add-node" msgstr "Knooppunt toevoegen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:74 msgid "shortcuts.align-bottom" msgstr "Onderaan uitlijnen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:75 msgid "shortcuts.align-center" msgstr "Centreren" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:76 msgid "shortcuts.align-hcenter" msgstr "Horizontaal centreren" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:77 msgid "shortcuts.align-justify" msgstr "Uitlijnen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:78 msgid "shortcuts.align-left" msgstr "Links uitlijnen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:79 msgid "shortcuts.align-right" msgstr "Rechts uitlijnen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:80 msgid "shortcuts.align-top" msgstr "Bovenaan uitlijnen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:81 msgid "shortcuts.align-vcenter" msgstr "Verticaal centreren" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:82 msgid "shortcuts.artboard-selection" msgstr "Maak bord van selectie" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:83 msgid "shortcuts.bold" msgstr "Vet in/uitschakelen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:84 msgid "shortcuts.bool-difference" msgstr "Aftrekken (Booleaans verschil)" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:85 msgid "shortcuts.bool-exclude" msgstr "Uitsluiten" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:86 msgid "shortcuts.bool-intersection" msgstr "Booleaanse kruising" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:87 msgid "shortcuts.bool-union" msgstr "Booleaanse vereniging" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:88 msgid "shortcuts.bring-back" msgstr "Naar de achtergrond" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:89 msgid "shortcuts.bring-backward" msgstr "Naar achteren" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:90 msgid "shortcuts.bring-forward" msgstr "Naar voren" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:91 msgid "shortcuts.bring-front" msgstr "Naar de voorgrond" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:92 msgid "shortcuts.clear-undo" msgstr "Ongedaan maken wissen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:93 msgid "shortcuts.copy" msgstr "Kopiëren" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:94 msgid "shortcuts.create-component" msgstr "Component aanmaken" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:95 msgid "shortcuts.create-new-project" msgstr "Nieuw project aanmaken" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:96 msgid "shortcuts.cut" msgstr "Knippen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:97 msgid "shortcuts.decrease-zoom" msgstr "Uitzoomen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:98 msgid "shortcuts.delete" msgstr "Verwijderen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:99 msgid "shortcuts.delete-node" msgstr "Knooppunt verwijderen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:100 msgid "shortcuts.detach-component" msgstr "Component losmaken" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:101 msgid "shortcuts.draw-curve" msgstr "Kromme" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:102 msgid "shortcuts.draw-ellipse" msgstr "Ellips" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:103 msgid "shortcuts.draw-frame" msgstr "Bord" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:104 msgid "shortcuts.draw-nodes" msgstr "Pad tekenen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:105 msgid "shortcuts.draw-path" msgstr "Pad" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:106 msgid "shortcuts.draw-rect" msgstr "Rechthoek" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:107 msgid "shortcuts.draw-text" msgstr "Tekst" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:108 msgid "shortcuts.duplicate" msgstr "Dupliceren" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:109 msgid "shortcuts.escape" msgstr "Annuleren" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:110 msgid "shortcuts.export-shapes" msgstr "Vormen exporteren" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:111 msgid "shortcuts.fit-all" msgstr "Passend zoomen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:112 msgid "shortcuts.flip-horizontal" msgstr "Horizontaal spiegelen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:113 msgid "shortcuts.flip-vertical" msgstr "Verticaal spiegelen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:114 msgid "shortcuts.font-size-dec" msgstr "Lettergrootte verkleinen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:115 msgid "shortcuts.font-size-inc" msgstr "Lettergrootte vergroten" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:116 msgid "shortcuts.go-to-drafts" msgstr "Ga naar concepten" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:117 msgid "shortcuts.go-to-libs" msgstr "Ga naar gedeelde bibliotheek" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:118 msgid "shortcuts.go-to-search" msgstr "Zoeken" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:119 msgid "shortcuts.group" msgstr "Groeperen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:120 msgid "shortcuts.h-distribute" msgstr "Horizontaal verdelen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:121 msgid "shortcuts.hide-ui" msgstr "UI tonen/verbergen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:122 msgid "shortcuts.increase-zoom" msgstr "Inzoomen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:123 msgid "shortcuts.insert-image" msgstr "Afbeelding invoegen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:124 msgid "shortcuts.italic" msgstr "Cursief in/uitschakelen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:125 msgid "shortcuts.join-nodes" msgstr "Knooppunten verbinden" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:126 msgid "shortcuts.letter-spacing-dec" msgstr "Letterafstand verkleinen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:127 msgid "shortcuts.letter-spacing-inc" msgstr "Letterafstand vergroten" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:128 msgid "shortcuts.line-height-dec" msgstr "Regelafstand verkleinen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:129 msgid "shortcuts.line-height-inc" msgstr "Regelafstand vergroten" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:130 msgid "shortcuts.line-through" msgstr "Doorstrepen in/uitschakelen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:131 msgid "shortcuts.make-corner" msgstr "Hoek maken" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:132 msgid "shortcuts.make-curve" msgstr "Kromme maken" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:133 msgid "shortcuts.mask" msgstr "Maskeren" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:134 msgid "shortcuts.merge-nodes" msgstr "Knooppunten samenvoegen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:135 msgid "shortcuts.move" msgstr "Verplaatsen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:136 msgid "shortcuts.move-fast-down" msgstr "Snel naar beneden verplaatsen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:137 msgid "shortcuts.move-fast-left" msgstr "Snel naar links verplaatsen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:138 msgid "shortcuts.move-fast-right" msgstr "Snel naar rechts verplaatsen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:139 msgid "shortcuts.move-fast-up" msgstr "Snel naar boven verplaatsen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:140 msgid "shortcuts.move-nodes" msgstr "Knooppunt verplaatsen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:141 msgid "shortcuts.move-unit-down" msgstr "Naar beneden verplaatsen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:142 msgid "shortcuts.move-unit-left" msgstr "Naar links verplaatsen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:143 msgid "shortcuts.move-unit-right" msgstr "Naar rechts verplaatsen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:144 msgid "shortcuts.move-unit-up" msgstr "Naar boven verplaatsen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:145 msgid "shortcuts.next-frame" msgstr "Volgend bord" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:516 msgid "shortcuts.not-found" msgstr "Geen sneltoets gevonden" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:146 msgid "shortcuts.opacity-0" msgstr "Dekking 100%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:147 msgid "shortcuts.opacity-1" msgstr "Dekking 10%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:148 msgid "shortcuts.opacity-2" msgstr "Dekking 20%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:149 msgid "shortcuts.opacity-3" msgstr "Dekking 30%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:150 msgid "shortcuts.opacity-4" msgstr "Dekking 40%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:151 msgid "shortcuts.opacity-5" msgstr "Dekking 50%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:152 msgid "shortcuts.opacity-6" msgstr "Dekking 60%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:153 msgid "shortcuts.opacity-7" msgstr "Dekking 70%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:154 msgid "shortcuts.opacity-8" msgstr "Dekking 80%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:155 msgid "shortcuts.opacity-9" msgstr "Dekking 90%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:156 msgid "shortcuts.open-color-picker" msgstr "Kleurkiezer" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:157 msgid "shortcuts.open-comments" msgstr "Ga naar het commentaargedeelte van de kijker" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:158 msgid "shortcuts.open-dashboard" msgstr "Ga naar dashboard" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:159 msgid "shortcuts.open-inspect" msgstr "Ga naar de sectie voor het inspecteren van kijkers" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:160 msgid "shortcuts.open-interactions" msgstr "Ga naar de kijkersinteracties-sectie" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:161 msgid "shortcuts.open-viewer" msgstr "Ga naar de kijkersinteracties-sectie" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:162 msgid "shortcuts.open-workspace" msgstr "Ga naar werkruimte" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:260 msgid "shortcuts.or" msgstr " of " -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:163 msgid "shortcuts.paste" msgstr "Plakken" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:164 msgid "shortcuts.prev-frame" msgstr "Vorig bord" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:165 msgid "shortcuts.redo" msgstr "Opnieuw doen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:166 msgid "shortcuts.reset-zoom" msgstr "Zoom herstellen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:167 msgid "shortcuts.scale" msgstr "Schaal" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:168 msgid "shortcuts.search-placeholder" msgstr "Sneltoetsen zoeken" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:169 msgid "shortcuts.select-all" msgstr "Alles selecteren" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:170 msgid "shortcuts.select-next" msgstr "Volgende laag selecteren" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:171 msgid "shortcuts.select-parent-layer" msgstr "Bovenliggende laag selecteren" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:172 msgid "shortcuts.select-prev" msgstr "Vorige laag selecteren" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:173 msgid "shortcuts.separate-nodes" msgstr "Knooppunten loskoppelen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:174 msgid "shortcuts.show-pixel-grid" msgstr "Pixelraster tonen/verbergen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:175 msgid "shortcuts.show-shortcuts" msgstr "Sneltoetsen tonen/verbergen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:176 msgid "shortcuts.snap-nodes" msgstr "Uitlijnen op knooppunten" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:177 msgid "shortcuts.snap-pixel-grid" msgstr "Uitlijnen op pixelraster" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:178 msgid "shortcuts.start-editing" msgstr "Start met bewerken" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:179 msgid "shortcuts.start-measure" msgstr "Meting starten" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:180 msgid "shortcuts.stop-measure" msgstr "Meting beëindigen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:181 msgid "shortcuts.text-align-center" msgstr "Gecentreerd uitlijnen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:182 msgid "shortcuts.text-align-justify" msgstr "Volledig uitvullen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:183 msgid "shortcuts.text-align-left" msgstr "Links uitlijnen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:184 msgid "shortcuts.text-align-right" msgstr "Rechts uitlijnen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:185 msgid "shortcuts.thumbnail-set" msgstr "Miniaturen instellen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:496, src/app/main/ui/workspace/sidebar/shortcuts.cljs:505 +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs msgid "shortcuts.title" msgstr "Sneltoetsen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:186 msgid "shortcuts.toggle-alignment" msgstr "Dynamisch uitlijnen in/uitschakelen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:187 msgid "shortcuts.toggle-assets" msgstr "Assets in/uitschakelen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:188 msgid "shortcuts.toggle-colorpalette" msgstr "Kleurenpalet in/uitschakelen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:189 msgid "shortcuts.toggle-focus-mode" msgstr "Focusmodus in/uitschakelen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:190 msgid "shortcuts.toggle-fullscreen" msgstr "Volledig scherm in/uitschakelen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:191 msgid "shortcuts.toggle-guides" msgstr "Hulplijnen tonen/verbergen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:192 msgid "shortcuts.toggle-history" msgstr "Geschiedenis in/uitschakelen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:193 msgid "shortcuts.toggle-layers" msgstr "Lagen in/uitschakelen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:194 msgid "shortcuts.toggle-layout-flex" msgstr "Flex-layout toevoegen/verwijderen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:195 msgid "shortcuts.toggle-layout-grid" msgstr "Raster-layout toevoegen/verwijderen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:196 msgid "shortcuts.toggle-lock" msgstr "Vergrendelen/ontgrendelen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:197 msgid "shortcuts.toggle-lock-size" msgstr "Proporties vergrendelen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:198 msgid "shortcuts.toggle-rulers" msgstr "Linialen tonen/verbergen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:200 msgid "shortcuts.toggle-snap-guides" msgstr "Uitlijnen op hulpijnen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:201 msgid "shortcuts.toggle-snap-ruler-guide" msgstr "Uitlijnen op liniaal-hulplijnen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:202 msgid "shortcuts.toggle-textpalette" msgstr "Tekstpalet in/uitschakelen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:203 msgid "shortcuts.toggle-theme" msgstr "Thema veranderen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:204 msgid "shortcuts.toggle-visibility" msgstr "Tonen/verbergen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:205 msgid "shortcuts.toggle-zoom-style" msgstr "Zoomstijl wisselen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:206 msgid "shortcuts.underline" msgstr "Onderstrepen in/uitschakelen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:207 msgid "shortcuts.undo" msgstr "Ongedaan maken" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:208 msgid "shortcuts.ungroup" msgstr "Groep opheffen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:209 msgid "shortcuts.unmask" msgstr "Masker verwijderen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:210 msgid "shortcuts.v-distribute" msgstr "Verticaal verdelen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:211 msgid "shortcuts.zoom-lense-decrease" msgstr "Zoomlens verkleinen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:212 msgid "shortcuts.zoom-lense-increase" msgstr "Zoomlens vergroten" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:213 msgid "shortcuts.zoom-selected" msgstr "Zoomen naar selectie" -#: src/app/main/ui/dashboard/team.cljs:771 +#: src/app/main/ui/dashboard/team.cljs msgid "team.webhooks.max-length" msgstr "De webhooknaam mag maximaal 2048 tekens bevatten." -#: src/app/main/ui/dashboard/files.cljs:158 +#: src/app/main/ui/dashboard/files.cljs msgid "title.dashboard.files" msgstr "%s - Penpot" -#: src/app/main/ui/dashboard/fonts.cljs:37 +#: src/app/main/ui/dashboard/fonts.cljs msgid "title.dashboard.font-providers" msgstr "Lettertypeaanbieders - %s - Penpot" -#: src/app/main/ui/dashboard/fonts.cljs:36 +#: src/app/main/ui/dashboard/fonts.cljs msgid "title.dashboard.fonts" msgstr "Lettertypen - %s - Penpot" -#: src/app/main/ui/dashboard/projects.cljs:320 +#: src/app/main/ui/dashboard/projects.cljs msgid "title.dashboard.projects" msgstr "Projecten - %s - Penpot" -#: src/app/main/ui/dashboard/search.cljs:32 +#: src/app/main/ui/dashboard/search.cljs msgid "title.dashboard.search" msgstr "Zoeken - %s - Penpot" -#: src/app/main/ui/dashboard/libraries.cljs:44 +#: src/app/main/ui/dashboard/libraries.cljs msgid "title.dashboard.shared-libraries" msgstr "Gedeelde bibliotheken - %s - Penpot" -#: src/app/main/ui/auth/verify_token.cljs:68, src/app/main/ui/auth.cljs:54 +#: src/app/main/ui/auth/verify_token.cljs, src/app/main/ui/auth.cljs msgid "title.default" msgstr "Penpot - Ontwerpvrijheid voor teams" -#: src/app/main/ui/settings/access_tokens.cljs:292 +#: src/app/main/ui/settings/access-tokens.cljs msgid "title.settings.access-tokens" msgstr "Profiel - Toegangsbewijzen" -#: src/app/main/ui/settings/feedback.cljs:110 +#: src/app/main/ui/settings/feedback.cljs msgid "title.settings.feedback" msgstr "Feedback geven - Penpot" -#: src/app/main/ui/settings/options.cljs:80 +#: src/app/main/ui/settings/options.cljs msgid "title.settings.options" msgstr "Instellingen - Penpot" -#: src/app/main/ui/settings/password.cljs:115 +#: src/app/main/ui/settings/password.cljs msgid "title.settings.password" msgstr "Wachtwoord - Penpot" -#: src/app/main/ui/settings/profile.cljs:115 +#: src/app/main/ui/settings/profile.cljs msgid "title.settings.profile" msgstr "Profiel - Penpot" -#: src/app/main/ui/dashboard/team.cljs:727 +#: src/app/main/ui/dashboard/team.cljs msgid "title.team-invitations" msgstr "Uitnodigingen - %s - Penpot" -#: src/app/main/ui/dashboard/team.cljs:493 +#: src/app/main/ui/dashboard/team.cljs msgid "title.team-members" msgstr "Leden - %s - Penpot" -#: src/app/main/ui/dashboard/team.cljs:1036 +#: src/app/main/ui/dashboard/team.cljs msgid "title.team-settings" msgstr "Instellingen - %s - Penpot" -#: src/app/main/ui/dashboard/team.cljs:989 msgid "title.team-webhooks" msgstr "Webhooks - %s - Penpot" -#: src/app/main/ui/viewer.cljs:419 +#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs msgid "title.viewer" msgstr "%s - Weergavemodus - Penpot" -#: src/app/main/ui/workspace.cljs:190 +#: src/app/main/ui/workspace.cljs msgid "title.workspace" msgstr "%s - Penpot" -#: src/app/main/ui.cljs:144 msgid "viewer.breaking-change.description" msgstr "" "Deze deelbare link is niet langer geldig. Maak een nieuwe aan of vraag de " "eigenaar om een nieuwe." -#: src/app/main/ui.cljs:143 msgid "viewer.breaking-change.message" msgstr "Sorry!" -#: src/app/main/ui/viewer.cljs:569 +#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs msgid "viewer.empty-state" msgstr "Geen borden gevonden op de pagina." -#: src/app/main/ui/viewer.cljs:574 +#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs msgid "viewer.frame-not-found" msgstr "Bord niet gevonden." -#: src/app/main/ui/viewer/header.cljs:336 msgid "viewer.header.comments-section" msgstr "Commentaar (%s)" -#: src/app/main/ui/viewer/interactions.cljs:292 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.dont-show-interactions" msgstr "Interacties niet tonen" -#: src/app/main/ui/viewer/header.cljs:188 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.fullscreen" msgstr "Volledig scherm" -#: src/app/main/ui/viewer/header.cljs:345 msgid "viewer.header.inspect-section" msgstr "Inspecteren (%s)" -#: src/app/main/ui/viewer/interactions.cljs:282 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.interactions" msgstr "Interacties" -#: src/app/main/ui/viewer/header.cljs:327 msgid "viewer.header.interactions-section" msgstr "Interacties (%s)" -#: src/app/main/ui/viewer/share_link.cljs:187 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.share.copy-link" msgstr "Link kopiëren" -#: src/app/main/ui/viewer/interactions.cljs:300 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.show-interactions" msgstr "Interacties tonen" -#: src/app/main/ui/viewer/interactions.cljs:311 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.show-interactions-on-click" msgstr "Interacties tonen bij aanklikken" -#: src/app/main/ui/viewer/header.cljs:231 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.sitemap" msgstr "Sitemap" -#: src/app/main/ui/dashboard/team.cljs:948 msgid "webhooks.last-delivery.success" msgstr "De laatste levering was succesvol." -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:58 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.hcenter" msgstr "Horizontaal centreren (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:74 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.hdistribute" msgstr "Horizontaal verdelen (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:50 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.hleft" msgstr "Links uitlijnen (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:66 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.hright" msgstr "Rechts uitlijnen (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:99 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.vbottom" msgstr "Onderkant uitlijnen (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:91 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.vcenter" msgstr "Verticaal centreren (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:104 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.vdistribute" msgstr "Verticaal verdelen (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:83 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.vtop" msgstr "Bovenkant uitlijnen (%s)" #: src/app/main/ui/workspace/sidebar/assets.cljs -#, unused msgid "workspace.assets.assets" msgstr "Assets" -#: src/app/main/ui/workspace/sidebar/assets.cljs:134 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.box-filter-all" msgstr "Alle assets" -#: src/app/main/ui/dashboard/grid.cljs:130, src/app/main/ui/dashboard/grid.cljs:162, src/app/main/ui/workspace/sidebar/assets/colors.cljs:485, src/app/main/ui/workspace/sidebar/assets.cljs:150 +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.colors" msgstr "Kleuren" -#: src/app/main/ui/dashboard/grid.cljs:126, src/app/main/ui/dashboard/grid.cljs:141, src/app/main/ui/workspace/sidebar/assets/components.cljs:513, src/app/main/ui/workspace/sidebar/assets.cljs:139 +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.components" msgstr "Componenten" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:131 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.create-group" msgstr "Groep aanmaken" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:142 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.create-group-hint" msgstr "Je items krijgen automatisch de naam \"groepsnaam / itemnaam\"" -#: src/app/main/ui/workspace/context_menu.cljs:529, src/app/main/ui/workspace/sidebar/assets/colors.cljs:251, src/app/main/ui/workspace/sidebar/assets/components.cljs:577, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:424, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:443 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.delete" msgstr "Verwijderen" -#: src/app/main/ui/workspace/context_menu.cljs:534, src/app/main/ui/workspace/sidebar/assets/components.cljs:572 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.duplicate" msgstr "Dupliceren" -#: src/app/main/ui/workspace/sidebar/assets/components.cljs:571 msgid "workspace.assets.duplicate-main" msgstr "Hoofdcomponent dupliceren" -#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:247, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:439 +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.edit" msgstr "Bewerken" -#: src/app/main/ui/workspace/sidebar/assets.cljs:176 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.filter" msgstr "Filteren" -#: src/app/main/ui/workspace/sidebar/assets/graphics.cljs:384, src/app/main/ui/workspace/sidebar/assets.cljs:145 +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.graphics" msgstr "Graphics" -#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:255, src/app/main/ui/workspace/sidebar/assets/components.cljs:581, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:428, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:448 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.group" msgstr "Groeperen" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:141 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.group-name" msgstr "Groepsnaam" -#: src/app/main/ui/workspace/sidebar/assets.cljs:168 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.libraries" msgstr "Bibliotheken" -#: src/app/main/ui/workspace/sidebar/assets/file_library.cljs:62, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:347 msgid "workspace.assets.local-library" msgstr "Lokale bibliotheek" -#: src/app/main/ui/workspace/sidebar/assets/file_library.cljs:295 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.not-found" msgstr "Geen assets gevonden" -#, unused msgid "workspace.assets.open-library" msgstr "Open Bibliotheek-bestand" -#: src/app/main/ui/workspace/context_menu.cljs:532, src/app/main/ui/workspace/sidebar/assets/colors.cljs:243, src/app/main/ui/workspace/sidebar/assets/components.cljs:566, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:421, src/app/main/ui/workspace/sidebar/assets/groups.cljs:63, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:434 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.rename" msgstr "Hernoemen" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:132 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.rename-group" msgstr "Groep hernoemen" -#: src/app/main/ui/workspace/sidebar/assets.cljs:173 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.search" msgstr "Assets zoeken" #: src/app/main/ui/workspace/sidebar/assets.cljs -#, unused msgid "workspace.assets.selected-count" msgid_plural "workspace.assets.selected-count" msgstr[0] "%s item geselecteerd" msgstr[1] "%s items geselecteerd" #: src/app/main/ui/workspace/sidebar/assets.cljs -#, unused msgid "workspace.assets.shared-library" msgstr "Gedeelde bibliotheek" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:221 +#: src/app/main/ui/workspace/sidebar/assets/common.cljs msgid "workspace.assets.sidebar.components" msgid_plural "workspace.assets.sidebar.components" msgstr[0] "1 component" msgstr[1] "%s componenten" -#: src/app/main/ui/workspace/sidebar/assets.cljs:193 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.sort" msgstr "Sorteren" -#: src/app/main/ui/dashboard/grid.cljs:134, src/app/main/ui/dashboard/grid.cljs:189, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:397, src/app/main/ui/workspace/sidebar/assets.cljs:155 +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.typography" msgstr "Typografie" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused msgid "workspace.assets.typography.font-id" msgstr "Lettertype" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:505 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.font-size" msgstr "Grootte" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:501 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.font-variant-id" msgstr "Variant" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:523 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.go-to-edit" msgstr "Ga naar het stijl-bibliotheekbestand om te bewerken" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:513 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.letter-spacing" msgstr "Letterafstand" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:509 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.line-height" msgstr "Regelafstand" -#: src/app/main/ui/dashboard/grid.cljs:199, src/app/main/ui/workspace/libraries.cljs:461, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:464, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:489, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:596, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:615 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, +#: src/app/main/ui/inspect/attributes/text.cljs, +#: src/app/main/ui/inspect/attributes/text.cljs msgid "workspace.assets.typography.sample" msgstr "Ag" -#, unused msgid "workspace.assets.typography.text-styles" msgstr "Tekststijlen" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:517 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.text-transform" msgstr "Tekst transformeren" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:66 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.ungroup" msgstr "Groep opheffen" -#: src/app/main/ui/workspace/context_menu.cljs:634 msgid "workspace.context-menu.grid-cells.area" msgstr "Gebied aanmaken" -#: src/app/main/ui/workspace/context_menu.cljs:637 msgid "workspace.context-menu.grid-cells.create-board" msgstr "Bord aanmaken" -#: src/app/main/ui/workspace/context_menu.cljs:629 msgid "workspace.context-menu.grid-cells.merge" msgstr "Cellen samenvoegen" -#: src/app/main/ui/workspace/context_menu.cljs:594 msgid "workspace.context-menu.grid-track.column.add-after" msgstr "Rechts 1 kolom toevoegen" -#: src/app/main/ui/workspace/context_menu.cljs:593 msgid "workspace.context-menu.grid-track.column.add-before" msgstr "Links 1 kolom toevoegen" -#: src/app/main/ui/workspace/context_menu.cljs:595 msgid "workspace.context-menu.grid-track.column.delete" msgstr "Kolom verwijderen" -#: src/app/main/ui/workspace/context_menu.cljs:596 msgid "workspace.context-menu.grid-track.column.delete-shapes" msgstr "Kolom en vormen verwijderen" -#: src/app/main/ui/workspace/context_menu.cljs:592 msgid "workspace.context-menu.grid-track.column.duplicate" msgstr "Kolom dupliceren" -#: src/app/main/ui/workspace/context_menu.cljs:601 msgid "workspace.context-menu.grid-track.row.add-after" msgstr "Onder 1 rij toevoegen" -#: src/app/main/ui/workspace/context_menu.cljs:600 msgid "workspace.context-menu.grid-track.row.add-before" msgstr "Boven 1 rij toevoegen" -#: src/app/main/ui/workspace/context_menu.cljs:602 msgid "workspace.context-menu.grid-track.row.delete" msgstr "Rij verwijderen" -#: src/app/main/ui/workspace/context_menu.cljs:603 msgid "workspace.context-menu.grid-track.row.delete-shapes" msgstr "Rij en vormen verwijderen" -#: src/app/main/ui/workspace/context_menu.cljs:599 msgid "workspace.context-menu.grid-track.row.duplicate" msgstr "Rij dupliceren" -#: src/app/main/ui/workspace/sidebar/layers.cljs:525 msgid "workspace.focus.focus-mode" msgstr "Focusmodus" -#: src/app/main/ui/workspace/context_menu.cljs:287, src/app/main/ui/workspace/context_menu.cljs:553 msgid "workspace.focus.focus-off" msgstr "Focus uit" -#: src/app/main/ui/workspace/context_menu.cljs:286 msgid "workspace.focus.focus-on" msgstr "Focus aan" -#, unused msgid "workspace.focus.selection" msgstr "Selectie" -#: src/app/util/color.cljs:34 +#: src/app/main/data/workspace/libraries.cljs, +#: src/app/main/ui/components/color_bullet.cljs msgid "workspace.gradients.linear" msgstr "Lineair verloop" -#: src/app/util/color.cljs:35 +#: src/app/main/data/workspace/libraries.cljs, +#: src/app/main/ui/components/color_bullet.cljs msgid "workspace.gradients.radial" msgstr "Radiaal verloop" -#: src/app/main/ui/workspace/main_menu.cljs:238 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.disable-dynamic-alignment" msgstr "Dynamische uitlijning uitschakelen" -#: src/app/main/ui/workspace/main_menu.cljs:192 msgid "workspace.header.menu.disable-scale-content" msgstr "Proportionele schaal uitschakelen" #: src/app/main/ui/workspace/header.cljs -#, unused msgid "workspace.header.menu.disable-scale-text" msgstr "Tekstschaal uitschakelen" -#: src/app/main/ui/workspace/main_menu.cljs:223 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.disable-snap-guides" msgstr "Uitlijnen op hulplijnen uitschakelen" -#: src/app/main/ui/workspace/main_menu.cljs:253 msgid "workspace.header.menu.disable-snap-pixel-grid" msgstr "Uitlijnen op pixel uitschakelen" -#: src/app/main/ui/workspace/main_menu.cljs:207 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.disable-snap-ruler-guides" msgstr "Uitlijnen op liniaal-hulplijnen deactiveren" -#: src/app/main/ui/workspace/main_menu.cljs:239 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.enable-dynamic-alignment" msgstr "Dynamische uitlijning inschakelen" -#: src/app/main/ui/workspace/main_menu.cljs:193 msgid "workspace.header.menu.enable-scale-content" msgstr "Proportionele schaal inschakelen" #: src/app/main/ui/workspace/header.cljs -#, unused msgid "workspace.header.menu.enable-scale-text" msgstr "Tekstschaal inschakelen" -#: src/app/main/ui/workspace/main_menu.cljs:224 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.enable-snap-guides" msgstr "Uitlijnen op hulplijnen" -#: src/app/main/ui/workspace/main_menu.cljs:254 msgid "workspace.header.menu.enable-snap-pixel-grid" msgstr "Uitlijnen op pixel" -#: src/app/main/ui/workspace/main_menu.cljs:208 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.enable-snap-ruler-guides" msgstr "Uitlijnen op liniaal-hulplijnen" -#: src/app/main/ui/workspace/main_menu.cljs:382 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.hide-artboard-names" msgstr "Bordnamen verbergen" -#: src/app/main/ui/workspace/main_menu.cljs:336 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.hide-guides" msgstr "Hulplijnen verbergen" -#: src/app/main/ui/workspace/main_menu.cljs:353 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.hide-palette" msgstr "Kleurenpalet verbergen" -#: src/app/main/ui/workspace/main_menu.cljs:394 msgid "workspace.header.menu.hide-pixel-grid" msgstr "Pixelraster verbergen" -#: src/app/main/ui/workspace/main_menu.cljs:320 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.hide-rules" msgstr "Linialen verbergen" -#: src/app/main/ui/workspace/main_menu.cljs:367 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.hide-textpalette" msgstr "Lettertype-palet verbergen" -#: src/app/main/ui/workspace/main_menu.cljs:731 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.edit" msgstr "Bewerken" -#: src/app/main/ui/workspace/main_menu.cljs:720 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.file" msgstr "Bestand" -#: src/app/main/ui/workspace/main_menu.cljs:777 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.help-info" msgstr "Hulp & informatie" -#: src/app/main/ui/workspace/main_menu.cljs:753 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.preferences" msgstr "Voorkeuren" -#: src/app/main/ui/workspace/main_menu.cljs:742 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.view" msgstr "Beeld" -#: src/app/main/ui/workspace/main_menu.cljs:459 msgid "workspace.header.menu.redo" msgstr "Opnieuw doen" -#: src/app/main/ui/workspace/main_menu.cljs:432 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.select-all" msgstr "Alles selecteren" -#: src/app/main/ui/workspace/main_menu.cljs:383 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.show-artboard-names" msgstr "Bordnamen tonen" -#: src/app/main/ui/workspace/main_menu.cljs:337 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.show-guides" msgstr "Hulplijnen weergeven" -#: src/app/main/ui/workspace/main_menu.cljs:354 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.show-palette" msgstr "Kleurenpalet tonen" -#: src/app/main/ui/workspace/main_menu.cljs:395 msgid "workspace.header.menu.show-pixel-grid" msgstr "Pixelraster tonen" -#: src/app/main/ui/workspace/main_menu.cljs:321 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.show-rules" msgstr "Linialen tonen" -#: src/app/main/ui/workspace/main_menu.cljs:368 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.show-textpalette" msgstr "Lettertype-palet tonen" -#: src/app/main/ui/workspace/main_menu.cljs:279 msgid "workspace.header.menu.toggle-dark-theme" msgstr "Donker thema inschakelen" -#: src/app/main/ui/workspace/main_menu.cljs:278 msgid "workspace.header.menu.toggle-light-theme" msgstr "Licht thema inschakelen" -#: src/app/main/ui/workspace/main_menu.cljs:446 msgid "workspace.header.menu.undo" msgstr "Ongedaan maken" -#: src/app/main/ui/viewer/header.cljs:98, src/app/main/ui/workspace/right_header.cljs:120 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.reset-zoom" msgstr "Herstellen" #: src/app/main/ui/workspace/header.cljs -#, unused msgid "workspace.header.save-error" msgstr "Fout tijdens opslaan" -#: src/app/main/ui/workspace/right_header.cljs:52 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.saved" msgstr "Opgeslagen" #: src/app/main/ui/workspace/header.cljs -#, unused msgid "workspace.header.saving" msgstr "Opslaan" -#: src/app/main/ui/workspace/right_header.cljs:42, src/app/main/ui/workspace/right_header.cljs:47 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.unsaved" msgstr "Niet-opgeslagen wijzigingen" -#: src/app/main/ui/workspace/right_header.cljs:239 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.viewer" msgstr "Weergavemodus (%s)" -#: src/app/main/ui/viewer/header.cljs:79, src/app/main/ui/workspace/right_header.cljs:103 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom" msgstr "Zoomen" -#: src/app/main/ui/viewer/header.cljs:109 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom-fill" msgstr "Vullen - Schalen om te vullen" -#: src/app/main/ui/viewer/header.cljs:102 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom-fit" msgstr "Passend maken - Verkleinen om te passen" -#: src/app/main/ui/workspace/right_header.cljs:123 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom-fit-all" msgstr "Passend zoomen" -#: src/app/main/ui/viewer/header.cljs:116 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom-full-screen" msgstr "Volledig scherm" -#: src/app/main/ui/workspace/right_header.cljs:130 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom-selected" msgstr "Naar selectie zoomen" -#: src/app/main/ui/workspace/sidebar/options/menus/grid_cell.cljs:273, src/app/main/ui/workspace/sidebar/options/menus/grid_cell.cljs:275, src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:612 msgid "workspace.layout_grid.editor.options.edit-grid" msgstr "Raster bewerken" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:1280 msgid "workspace.layout_grid.editor.options.exit" msgstr "Sluiten" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:483 msgid "workspace.layout_grid.editor.padding.expand" msgstr "4-zijdige opvulopties weergeven" -#: src/app/main/ui/workspace/viewport/grid_layout_editor.cljs:59 msgid "workspace.layout_grid.editor.title" msgstr "Raster bewerken" -#: src/app/main/ui/workspace/viewport/grid_layout_editor.cljs:65 msgid "workspace.layout_grid.editor.top-bar.done" msgstr "Klaar" -#: src/app/main/ui/workspace/viewport/grid_layout_editor.cljs:62 msgid "workspace.layout_grid.editor.top-bar.locate" msgstr "Lokaliseren" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:1306 msgid "workspace.layout_grid.editor.top-bar.locate.tooltip" msgstr "Raster-layout tonen" #: src/app/main/ui/workspace/libraries.cljs -#, unused msgid "workspace.libraries.add" msgstr "Toevoegen" -#: src/app/main/ui/workspace/libraries.cljs:80, src/app/main/ui/workspace/libraries.cljs:99 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.colors" msgstr "%s kleuren" -#: src/app/main/ui/workspace/color_palette.cljs:126 +#: src/app/main/ui/workspace/colorpalette.cljs msgid "workspace.libraries.colors.empty-palette" msgstr "Er zijn nog geen kleurstijlen in je bibliotheek" -#: src/app/main/ui/workspace/text_palette.cljs:150 +#: src/app/main/ui/workspace/textpalette.cljs msgid "workspace.libraries.colors.empty-typography-palette" msgstr "Er zijn nog geen typografiestijlen in je bibliotheek" -#: src/app/main/ui/workspace/color_palette_ctx_menu.cljs:60, src/app/main/ui/workspace/colorpicker/libraries.cljs:73, src/app/main/ui/workspace/text_palette_ctx_menu.cljs:50 +#: src/app/main/ui/workspace/colorpicker/libraries.cljs, +#: src/app/main/ui/workspace/colorpalette.cljs msgid "workspace.libraries.colors.file-library" msgstr "Bestandsbibliotheek" #: src/app/main/ui/workspace/colorpicker.cljs -#, unused msgid "workspace.libraries.colors.hsv" msgstr "HSV" -#: src/app/main/ui/workspace/color_palette_ctx_menu.cljs:82, src/app/main/ui/workspace/colorpicker/libraries.cljs:72 +#: src/app/main/ui/workspace/colorpicker/libraries.cljs, +#: src/app/main/ui/workspace/colorpalette.cljs msgid "workspace.libraries.colors.recent-colors" msgstr "Recente kleuren" #: src/app/main/ui/workspace/colorpicker.cljs -#, unused msgid "workspace.libraries.colors.rgb-complementary" msgstr "RGB Complementair" #: src/app/main/ui/workspace/colorpicker.cljs -#, unused msgid "workspace.libraries.colors.rgba" msgstr "RGBA" -#: src/app/main/ui/workspace/colorpicker.cljs:372 +#: src/app/main/ui/workspace/colorpicker.cljs msgid "workspace.libraries.colors.save-color" msgstr "Kleurstijl opslaan" -#: src/app/main/ui/workspace/libraries.cljs:74, src/app/main/ui/workspace/libraries.cljs:91 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.components" msgstr "%s componenten" -#: src/app/main/ui/workspace/libraries.cljs:215 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.file-library" msgstr "Bestandsbibliotheek" -#: src/app/main/ui/workspace/libraries.cljs:77, src/app/main/ui/workspace/libraries.cljs:95 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.graphics" msgstr "%s afbeeldingen" -#: src/app/main/ui/workspace/libraries.cljs:209 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.in-this-file" msgstr "BIBLIOTHEKEN IN DIT BESTAND" -#: src/app/main/ui/workspace/libraries.cljs:526, src/app/main/ui/workspace/libraries.cljs:531 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.libraries" msgstr "BIBLIOTHEKEN" #: src/app/main/ui/workspace/libraries.cljs -#, unused msgid "workspace.libraries.library" msgstr "BIBLIOTHEEK" -#: src/app/main/ui/workspace/libraries.cljs:382 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.library-updates" msgstr "BIBLIOTHEEK-UPDATES" -#: src/app/main/ui/workspace/libraries.cljs:290 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.loading" msgstr "Laden…" -#: src/app/main/ui/workspace/libraries.cljs:380 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.no-libraries-need-sync" msgstr "Er zijn geen gedeelde bibliotheken die moeten worden bijgewerkt" -#: src/app/main/ui/workspace/libraries.cljs:299 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.no-matches-for" msgstr "Geen resultaten gevonden voor “%s“" -#: src/app/main/ui/workspace/libraries.cljs:296 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.no-shared-libraries-available" msgstr "Er zijn geen gedeelde bibliotheken beschikbaar" -#: src/app/main/ui/workspace/libraries.cljs:260 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.search-shared-libraries" msgstr "Gedeelde bibliotheken zoeken" -#: src/app/main/ui/workspace/libraries.cljs:256 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.shared-libraries" msgstr "GEDEELDE BIBLIOTHEKEN" -#: src/app/main/ui/workspace/libraries.cljs:282 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.shared-library-btn" msgstr "Bibliotheek verbinden" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:308 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.libraries.text.multiple-typography" msgstr "Meervoudige typografie" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:311 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.libraries.text.multiple-typography-tooltip" msgstr "Alle typografie ontkoppelen" -#: src/app/main/ui/workspace/libraries.cljs:83, src/app/main/ui/workspace/libraries.cljs:103 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.typography" msgstr "%s typografie" -#: src/app/main/ui/workspace/libraries.cljs:249 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.unlink-library-btn" msgstr "Bibliotheekverbinding verbreken" -#: src/app/main/ui/workspace/libraries.cljs:402 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.update" msgstr "Bijwerken" -#: src/app/main/ui/workspace/libraries.cljs:477 +#: src/app/main/data/workspace/libraries.cljs msgid "workspace.libraries.update.see-all-changes" msgstr "alle wijzigingen bekijken" -#: src/app/main/ui/workspace/libraries.cljs:536 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.updates" msgstr "UPDATES" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:737 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.add-interaction" msgstr "Klik op de knop + om interacties toe te voegen." -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:86, src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:102 +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs msgid "workspace.options.blur-options.title" msgstr "Vervagen" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:85 +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs msgid "workspace.options.blur-options.title.group" msgstr "Groep vervagen" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:84 +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs msgid "workspace.options.blur-options.title.multiple" msgstr "Selectie vervagen" -#: src/app/main/ui/workspace/sidebar/options/page.cljs:32, src/app/main/ui/workspace/sidebar/options/page.cljs:39 +#: src/app/main/ui/workspace/sidebar/options/page.cljs msgid "workspace.options.canvas-background" msgstr "Canvasachtergrond" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:548 msgid "workspace.options.clip-content" msgstr "Content bijsnijden" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:600, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:605 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs msgid "workspace.options.component" msgstr "Component" -#: src/app/main/ui/viewer/inspect/annotation.cljs:19, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:181 msgid "workspace.options.component.annotation" msgstr "Aantekening" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:610 msgid "workspace.options.component.copy" msgstr "Kopiëren" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:173 msgid "workspace.options.component.create-annotation" msgstr "Aantekening maken" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:172 msgid "workspace.options.component.edit-annotation" msgstr "Aantekening bewerken" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:609 msgid "workspace.options.component.main" msgstr "Hoofd" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:427 msgid "workspace.options.component.swap" msgstr "Component uitwisselen" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:471 msgid "workspace.options.component.swap.empty" msgstr "Er zijn nog geen assets in deze bibliotheek" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:163 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints" msgstr "Beperkingen" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:150 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.bottom" msgstr "Onderkant" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:141, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:152 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.center" msgstr "Midden" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:229 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.fix-when-scrolling" msgstr "Vastzetten tijdens scrollen" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:138 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.left" msgstr "Links" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:140 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.leftright" msgstr "Links & Rechts" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:139 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.right" msgstr "Rechts" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:142, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:153 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.scale" msgstr "Schaal" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:149 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.top" msgstr "Bovenkant" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:151 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.topbottom" msgstr "Boven- en onderkant" -#: src/app/main/ui/workspace/sidebar/options.cljs:112 +#: src/app/main/ui/workspace/sidebar/options.cljs msgid "workspace.options.design" msgstr "Ontwerp" -#: src/app/main/ui/viewer/inspect/exports.cljs:139 +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, +#: src/app/main/ui/inspect/exports.cljs msgid "workspace.options.export" msgstr "Exporteren" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, +#: src/app/main/ui/inspect/exports.cljs msgid "workspace.options.export-multiple" msgstr "Selectie exporteren" -#: src/app/main/ui/viewer/inspect/exports.cljs:195, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:237 +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, +#: src/app/main/ui/inspect/exports.cljs msgid "workspace.options.export-object" msgid_plural "workspace.options.export-object" msgstr[0] "1 Element exporteren" msgstr[1] "%s Elementen exporteren" -#: src/app/main/ui/viewer/inspect/exports.cljs:178, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:219 +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs msgid "workspace.options.export.suffix" msgstr "Achtervoegsel" -#: src/app/main/ui/export.cljs:240 +#: 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.exporting-complete" msgstr "Export klaar" -#: src/app/main/ui/export.cljs:172, src/app/main/ui/export.cljs:241, src/app/main/ui/viewer/inspect/exports.cljs:194, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:236 +#: 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.exporting-object" msgstr "Exporteren…" -#: src/app/main/ui/export.cljs:239 +#: 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.exporting-object-error" msgstr "Export mislukt" -#: src/app/main/ui/export.cljs:242 +#: 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.exporting-object-slow" msgstr "Export onverwacht traag" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:49, src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:174 +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs msgid "workspace.options.fill" msgstr "Vullen" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:178 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.flows.add-flow-start" msgstr "Stroomdiagram-startpunt toevoegen" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:174 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.flows.flow" msgstr "Stroomdiagram" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -#, unused msgid "workspace.options.flows.flow-start" msgstr "Stroomdiagram-startpunt" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:161 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.flows.flow-starts" msgstr "Stroomdiagram-startpunten" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:29 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.auto" msgstr "Automatisch" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:157 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.column" msgstr "Kolommen" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.grid-title" msgstr "Raster" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:196, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:237 msgid "workspace.options.grid.params.color" msgstr "Kleur" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.params.columns" msgstr "Kolommen" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:259 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.gutter" msgstr "Tussenruimte" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:246 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.height" msgstr "Hoogte" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:270 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.margin" msgstr "Marge" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.params.rows" msgstr "Rijen" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:216, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:290 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.set-default" msgstr "Als standaard instellen" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.params.size" msgstr "Grootte" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.params.type" msgstr "Type" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:231 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.bottom" msgstr "Onderkant" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:229 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.center" msgstr "Midden" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:228 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.left" msgstr "Links" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:232 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.right" msgstr "Rechts" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:225 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.stretch" msgstr "Uitrekken" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:227 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.top" msgstr "Bovenkant" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:211, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:288 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.use-default" msgstr "Standaard gebruiken" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:247 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.width" msgstr "Breedte" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:158 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.row" msgstr "Rijen" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:156 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.square" msgstr "Vierkant" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:48 +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs msgid "workspace.options.group-fill" msgstr "Groep vullen" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:42 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.group-stroke" msgstr "Groep-streek" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:310 msgid "workspace.options.guides.title" msgstr "Hulplijnen" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:406 msgid "workspace.options.height" msgstr "Hoogte" -#: src/app/main/ui/workspace/sidebar/options.cljs:161 msgid "workspace.options.inspect" msgstr "Inspecteren" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:468 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-action" msgstr "Actie" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:41, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:367 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-after-delay" msgstr "Na vertraging" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:614 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-animation" msgstr "Animatie" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:406 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-animation-dissolve" msgstr "Ontbinden" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:405 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-animation-none" msgstr "Geen" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:412 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-animation-push" msgstr "Duwen" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:407 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-animation-slide" msgstr "Schuiven" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:391 msgid "workspace.options.interaction-auto" msgstr "automatisch" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:604 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-background" msgstr "Achtergrond toevoegen" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:590 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-close-outside" msgstr "Sluiten als er buiten wordt geklikt" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:372 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-close-overlay" msgstr "Overlay sluiten" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:56 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-close-overlay-dest" msgstr "Overlay sluiten: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:456 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-delay" msgstr "Vertraging" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:478 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-destination" msgstr "Bestemming" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:661 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-duration" msgstr "Duur" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:674 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing" msgstr "Easing" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:416 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing-ease" msgstr "Ease" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:417 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing-ease-in" msgstr "Ease in" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:419 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing-ease-in-out" msgstr "Ease in out" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:418 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing-ease-out" msgstr "Ease out" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:415 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing-linear" msgstr "Lineair" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -#, unused msgid "workspace.options.interaction-in" msgstr "In" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:39, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:364 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-mouse-enter" msgstr "Muis komt binnen" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:40, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:365 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-mouse-leave" msgstr "Muis verlaat" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:458, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:459, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:464, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:663, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:665, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:669 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-ms" msgstr "ms" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:369 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-navigate-to" msgstr "Navigeer naar" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:50 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-navigate-to-dest" msgstr "Navigeer naar: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:51, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:53, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:55, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:380 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-none" msgstr "(niet ingesteld)" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:691 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-offset-effect" msgstr "Offset-effect" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:35, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:360 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-on-click" msgstr "Bij klikken" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:370 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-open-overlay" msgstr "Overlay openen" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:52 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-open-overlay-dest" msgstr "Overlay openen: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:59, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:374 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-open-url" msgstr "URL openen" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -#, unused msgid "workspace.options.interaction-out" msgstr "Out" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:403 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-bottom-center" msgstr "Midden onder" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:401 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-bottom-left" msgstr "Linksonder" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:402 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-bottom-right" msgstr "Rechtsonder" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:397 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-center" msgstr "Gecentreerd" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:396 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-manual" msgstr "Handmatig" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:400 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-top-center" msgstr "Midden boven" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:398 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-top-left" msgstr "Linksboven" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:399 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-top-right" msgstr "Rechtsboven" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:524 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-position" msgstr "Positie" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:494 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-preserve-scroll" msgstr "Scrollpositie behouden" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:58, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:373 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-prev-screen" msgstr "Vorig scherm" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:515 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-relative-to" msgstr "Relatief tot" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:57, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:379, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:393, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:394 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-self" msgstr "zelf" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:371 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-toggle-overlay" msgstr "Overlay in/uitschakelen" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:54 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-toggle-overlay-dest" msgstr "Overlay in/uitschakelen: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:445 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-trigger" msgstr "Trigger" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:503 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-url" msgstr "URL" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:37, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:362 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-while-hovering" msgstr "Tijdens hover" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:38, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:363 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-while-pressing" msgstr "Tijdens klikken" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:724 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interactions" msgstr "Interacties" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:137 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.color" msgstr "Kleur" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:126 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.color-burn" msgstr "Kleur versterken" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:129 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.color-dodge" msgstr "Kleur verminderen" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:124 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.darken" msgstr "Donkerder maken" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:133 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.difference" msgstr "Verschil" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:134 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.exclusion" msgstr "Uitsluiting" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:132 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.hard-light" msgstr "Hard licht" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:135 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.hue" msgstr "Tint" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:127 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.lighten" msgstr "Lichter maken" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:138 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.luminosity" msgstr "Helderheid" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:125 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.multiply" msgstr "Vermenigvuldigen" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:123 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.normal" msgstr "Normaal" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:130 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.overlay" msgstr "Overlay" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:136 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.saturation" msgstr "Verzadiging" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:128 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.screen" msgstr "Scherm" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:131 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.soft-light" msgstr "Zacht licht" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -#, unused msgid "workspace.options.layer-options.title" msgstr "Laag" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -#, unused msgid "workspace.options.layer-options.title.group" msgstr "Lagen groeperen" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -#, unused msgid "workspace.options.layer-options.title.multiple" msgstr "Geselecteerde lagen" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout-item.advanced-ops" msgstr "Geavanceerde opties" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:564 +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs msgid "workspace.options.layout-item.layout-item-max-h" msgstr "Max.Hoogte" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:531 +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs msgid "workspace.options.layout-item.layout-item-max-w" msgstr "Max.Breedte" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:548 +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs msgid "workspace.options.layout-item.layout-item-min-h" msgstr "Min.Hoogte" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:515 +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs msgid "workspace.options.layout-item.layout-item-min-w" msgstr "Min.Breedte" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout-item.title.layout-item-max-h" msgstr "Maximum hoogte" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout-item.title.layout-item-max-w" msgstr "Maximum breedte" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout-item.title.layout-item-min-h" msgstr "Minimum hoogte" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout-item.title.layout-item-min-w" msgstr "Minimum breedte" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.bottom" msgstr "Onderkant" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.direction.column" msgstr "Kolom" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.direction.column-reverse" msgstr "Kolom omkeren" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.direction.row" msgstr "Rij" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.direction.row-reverse" msgstr "Rij omkeren" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.gap" msgstr "Tussenruimte" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.left" msgstr "Links" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout.margin" msgstr "Marge" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout.margin-all" msgstr "Alle kanten" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout.margin-simple" msgstr "Enkelvoudige marge" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.packed" msgstr "ingepakt" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.padding" msgstr "Opvulling" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.padding-all" msgstr "Alle kanten" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.padding-simple" msgstr "Enkelvoudige opvulling" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.right" msgstr "Rechts" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.space-around" msgstr "ruimte rondom" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.space-between" msgstr "ruimte tussen" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.top" msgstr "Bovenkant" -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:146 +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs msgid "workspace.options.more-colors" msgstr "Meer kleuren" -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:123 +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs msgid "workspace.options.more-lib-colors" msgstr "Meer bibliotheekkleuren" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:161 msgid "workspace.options.opacity" msgstr "Dekking" -#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.position" msgstr "Positie" -#: src/app/main/ui/workspace/sidebar/options.cljs:157 +#: src/app/main/ui/workspace/sidebar/options.cljs msgid "workspace.options.prototype" msgstr "Prototype" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:469, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:481 msgid "workspace.options.radius" msgstr "Radius" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:513 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.radius-bottom-left" msgstr "Onder links" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:522 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.radius-bottom-right" msgstr "Onder rechts" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:495 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.radius-top-left" msgstr "Boven links" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:504 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.radius-top-right" msgstr "Boven rechts" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:532 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.radius.all-corners" msgstr "Alle hoeken" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:533 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.radius.single-corners" msgstr "Onafhankelijke hoeken" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:183 msgid "workspace.options.recent-fonts" msgstr "Recent" -#: src/app/main/ui/export.cljs:284 +#: 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 "Opnieuw proberen" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:451 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.rotation" msgstr "Rotatie" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:180 msgid "workspace.options.search-font" msgstr "Lettertype zoeken" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:741 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.select-a-shape" msgstr "" "Selecteer een vorm, bord of groep om d.m.v. slepen een verbinding met een " "ander bord te maken." -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:105 +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs msgid "workspace.options.selection-color" msgstr "Geselecteerde kleuren" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:47 +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs msgid "workspace.options.selection-fill" msgstr "Selectie vullen" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:41 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.selection-stroke" msgstr "Selectie-streek" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:40, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:198, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:200 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.blur" msgstr "Vervagen" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:238 msgid "workspace.options.shadow-options.color" msgstr "Schaduwkleur" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:144 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.drop-shadow" msgstr "Slagschaduw" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:145 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.inner-shadow" msgstr "Schaduw naar binnen" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:38, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:186 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.offsetx" msgstr "X" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:39, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:224 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.offsety" msgstr "Y" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:41, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:211, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:213 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.spread" msgstr "Spreiding" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:296 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.title" msgstr "Schaduw" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:295 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.title.group" msgstr "Groep voorzien van schaduw" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:294 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.title.multiple" msgstr "Selectie voorzien van schaduw" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:193 +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs msgid "workspace.options.show-fill-on-export" msgstr "In exports tonen" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:562 msgid "workspace.options.show-in-viewer" msgstr "In weergavemodus tonen" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:162 +#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.size" msgstr "Grootte" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:355 +#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs msgid "workspace.options.size-presets" msgstr "Groottevoorinstellingen" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:43 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke" msgstr "Streek" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -#, unused msgid "workspace.options.stroke-cap.circle-marker" msgstr "Cirkelmarkering" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:129 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.circle-marker-short" msgstr "Cirkel" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -#, unused msgid "workspace.options.stroke-cap.diamond-marker" msgstr "Ruitmarkering" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:130 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.diamond-marker-short" msgstr "Ruit" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -#, unused msgid "workspace.options.stroke-cap.line-arrow" msgstr "Lijn-pijl" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:126 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.line-arrow-short" msgstr "Pijl" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:124 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.none" msgstr "Geen" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:132 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.round" msgstr "Rond" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:133 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.square" msgstr "Vierkant" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -#, unused msgid "workspace.options.stroke-cap.square-marker" msgstr "Vierkantmarkering" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:128 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.square-marker-short" msgstr "Rechthoek" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -#, unused msgid "workspace.options.stroke-cap.triangle-arrow" msgstr "Driehoek-pijl" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:127 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.triangle-arrow-short" msgstr "Driehoek" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:192 msgid "workspace.options.stroke-color" msgstr "Streekkleur" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:165 msgid "workspace.options.stroke-width" msgstr "Streekdikte" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:87 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.center" msgstr "Gecentreerd" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:105 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.dashed" msgstr "Gestreept" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:104 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.dotted" msgstr "Gestippeld" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:88 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.inner" msgstr "Binnen" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:106 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.mixed" msgstr "Gemengd" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:89 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.outer" msgstr "Buiten" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:103 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.solid" msgstr "Solide" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:115 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.align-bottom" msgstr "Onderaan uitlijnen" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:111 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.align-middle" msgstr "Midden uitlijnen" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:107 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.align-top" msgstr "Boven uitlijnen" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:82 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.direction-ltr" msgstr "Links naar rechts" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:87 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.direction-rtl" msgstr "Rechts naar links" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:149 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.grow-auto-height" msgstr "Automatische hoogte" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:145 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.grow-auto-width" msgstr "Automatische breedte" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:141 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.grow-fixed" msgstr "Vast" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:381 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.options.text-options.letter-spacing" msgstr "Letterafstand" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:364 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.options.text-options.line-height" msgstr "Regelafstand" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused msgid "workspace.options.text-options.lowercase" msgstr "Kleine letters" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.options.text-options.none" msgstr "Geen" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:176 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.strikethrough" msgstr "Doorhalen (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:51 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.text-align-center" msgstr "Centreren (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:59 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.text-align-justify" msgstr "Uitvullen (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:47 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.text-align-left" msgstr "Links uitlijnen (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:55 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.text-align-right" msgstr "Rechts uitlijnen (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:189 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.title" msgstr "Tekst" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:188 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.title-group" msgstr "Groeptekst" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:187 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.title-selection" msgstr "Selectietekst" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused msgid "workspace.options.text-options.titlecase" msgstr "Beginhoofdletters" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:171 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.underline" msgstr "Onderstrepen (%s)" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused msgid "workspace.options.text-options.uppercase" msgstr "HOOFDLETTERS" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:745 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.use-play-button" msgstr "Gebruik de afspeelknop in de koptekst om de prototypeweergave uit te voeren." -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:395 msgid "workspace.options.width" msgstr "Breedte" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:427 msgid "workspace.options.x" msgstr "X-as" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:438 msgid "workspace.options.y" msgstr "Y-as" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:167 msgid "workspace.path.actions.add-node" msgstr "Knooppunt toevoegen (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:174 msgid "workspace.path.actions.delete-node" msgstr "Knooppunt verwijderen (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:152 msgid "workspace.path.actions.draw-nodes" msgstr "Knooppunten tekenen (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:189 msgid "workspace.path.actions.join-nodes" msgstr "Knooppunten verbinden (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:204 msgid "workspace.path.actions.make-corner" msgstr "Naar hoek (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:211 msgid "workspace.path.actions.make-curve" msgstr "Naar kromme (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:182 msgid "workspace.path.actions.merge-nodes" msgstr "Knooppunten samenvoegen (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:159 msgid "workspace.path.actions.move-nodes" msgstr "Knooppunten verplaatsen (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:196 msgid "workspace.path.actions.separate-nodes" msgstr "Knooppunten loskoppelen (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:218 msgid "workspace.path.actions.snap-nodes" msgstr "Uitlijnen op knooppunten (%s)" -#: src/app/main/ui/workspace/plugins.cljs:55 -msgid "workspace.plugins.button-open" -msgstr "Openen" - -#: src/app/main/ui/workspace/plugins.cljs:164 -msgid "workspace.plugins.empty-plugins" -msgstr "Nog geen plug-ins geïnstalleerd" - -#: src/app/main/ui/workspace/plugins.cljs:157 -msgid "workspace.plugins.error.url" -msgstr "De plug-in bestaat niet of de URL is niet correct." - -#: src/app/main/ui/workspace/plugins.cljs:153 -msgid "workspace.plugins.install" -msgstr "Installeren" - -#: src/app/main/ui/workspace/plugins.cljs:170 -msgid "workspace.plugins.installed-plugins" -msgstr "Geïnstalleerde plug-ins" - -#: src/app/main/ui/workspace/main_menu.cljs:624 -msgid "workspace.plugins.menu.plugins-manager" -msgstr "Plug-in-beheer" - -#: src/app/main/ui/workspace/main_menu.cljs:765 -msgid "workspace.plugins.menu.title" -msgstr "Plug-ins" - -#: src/app/main/ui/workspace/plugins.cljs:166 -msgid "workspace.plugins.plugin-list-link" -msgstr "Plug-in-lijst" - -#: src/app/main/ui/workspace/plugins.cljs:149 -msgid "workspace.plugins.search-placeholder" -msgstr "De URL van een plug-in invoeren" - -#, unused -msgid "workspace.plugins.success" -msgstr "Plug-in met succes geladen." - -#: src/app/main/ui/workspace/plugins.cljs:143 -msgid "workspace.plugins.title" -msgstr "Plug-ins" - -#: src/app/main/ui/workspace/context_menu.cljs:441 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.add-flex" msgstr "Flex-indeling toevoegen" -#: src/app/main/ui/workspace/context_menu.cljs:445 msgid "workspace.shape.menu.add-grid" msgstr "Rasterindeling toevoegen" -#: src/app/main/ui/workspace/context_menu.cljs:193 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.back" msgstr "Naar achtergrond verplaatsen" -#: src/app/main/ui/workspace/context_menu.cljs:190 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.backward" msgstr "Naar achteren verplaatsen" -#: src/app/main/ui/workspace/context_menu.cljs:139 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.copy" msgstr "Kopiëren" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:427 msgid "workspace.shape.menu.create-annotation" msgstr "Aantekening maken" -#: src/app/main/ui/workspace/context_menu.cljs:275 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.create-artboard-from-selection" msgstr "Selectie naar bord" -#: src/app/main/ui/workspace/context_menu.cljs:465 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.create-component" msgstr "Component aanmaken" -#: src/app/main/ui/workspace/context_menu.cljs:469 msgid "workspace.shape.menu.create-multiple-components" msgstr "Meerdere componenten aanmaken" -#: src/app/main/ui/workspace/context_menu.cljs:142 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.cut" msgstr "Knippen" -#: src/app/main/ui/workspace/context_menu.cljs:486 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.delete" msgstr "Verwijderen" -#: src/app/main/ui/workspace/context_menu.cljs:391 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.delete-flow-start" msgstr "Stroomdiagram-start verwijderen" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:432 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.detach-instance" msgstr "Instantie losmaken" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:431 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.detach-instances-in-bulk" msgstr "Instanties losmaken" -#: src/app/main/ui/workspace/context_menu.cljs:335, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:75 msgid "workspace.shape.menu.difference" msgstr "Verschil" -#: src/app/main/ui/workspace/context_menu.cljs:148 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.duplicate" msgstr "Dupliceren" -#: src/app/main/ui/workspace/context_menu.cljs:321 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.edit" msgstr "Bewerken" -#: src/app/main/ui/workspace/context_menu.cljs:341 msgid "workspace.shape.menu.exclude" msgstr "Uitsluiten" -#: src/app/main/ui/workspace/context_menu.cljs:348, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:89 msgid "workspace.shape.menu.flatten" msgstr "Afvlakken" -#: src/app/main/ui/workspace/context_menu.cljs:208 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.flip-horizontal" msgstr "Horizontaal spiegelen" -#: src/app/main/ui/workspace/context_menu.cljs:204 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.flip-vertical" msgstr "Verticaal spiegelen" -#: src/app/main/ui/workspace/context_menu.cljs:394 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.flow-start" msgstr "Stroomdiagram-start" -#: src/app/main/ui/workspace/context_menu.cljs:184 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.forward" msgstr "Naar voren brengen" -#: src/app/main/ui/workspace/context_menu.cljs:187 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.front" msgstr "Naar voorgrond brengen" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.go-main" msgstr "Ga naar hoofdcomponent" -#: src/app/main/ui/workspace/context_menu.cljs:261 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.group" msgstr "Groep" -#: src/app/main/ui/workspace/context_menu.cljs:363, src/app/main/ui/workspace/sidebar/layer_item.cljs:145 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.hide" msgstr "Verbergen" -#: src/app/main/ui/workspace/context_menu.cljs:548, src/app/main/ui/workspace/main_menu.cljs:408 msgid "workspace.shape.menu.hide-ui" msgstr "Gebruikersinterface tonen/verbergen" -#: src/app/main/ui/workspace/context_menu.cljs:338 msgid "workspace.shape.menu.intersection" msgstr "Kruispunt" -#: src/app/main/ui/workspace/context_menu.cljs:371, src/app/main/ui/workspace/sidebar/layer_item.cljs:153 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.lock" msgstr "Vergrendelen" -#: src/app/main/ui/workspace/context_menu.cljs:266 +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.mask" msgstr "Masker" -#: src/app/main/ui/workspace/context_menu.cljs:145, src/app/main/ui/workspace/context_menu.cljs:545 +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.paste" msgstr "Plakken" -#: src/app/main/ui/workspace/context_menu.cljs:331 msgid "workspace.shape.menu.path" msgstr "Pad" -#: src/app/main/ui/workspace/context_menu.cljs:432 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.remove-flex" msgstr "Flex-indeling verwijderen" -#: src/app/main/ui/workspace/context_menu.cljs:435 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.remove-grid" msgstr "Raster-layout verwijderen" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:436 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.reset-overrides" msgstr "Overschrijvingen opnieuw instellen" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:439 msgid "workspace.shape.menu.restore-main" msgstr "Hoofdcomponent herstellen" -#: src/app/main/ui/workspace/context_menu.cljs:174 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.select-layer" msgstr "Laag selecteren" -#: src/app/main/ui/workspace/context_menu.cljs:360, src/app/main/ui/workspace/sidebar/layer_item.cljs:144 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.show" msgstr "Tonen" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:424 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.show-in-assets" msgstr "In paneel Assets tonen" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:442, src/app/main/ui/workspace/sidebar/assets/components.cljs:586 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.show-main" msgstr "Hoofdcomponent tonen" -#: src/app/main/ui/workspace/context_menu.cljs:221 msgid "workspace.shape.menu.thumbnail-remove" msgstr "Miniatuur verwijderen" -#: src/app/main/ui/workspace/context_menu.cljs:223 msgid "workspace.shape.menu.thumbnail-set" msgstr "Instellen als miniatuur" -#: src/app/main/ui/workspace/context_menu.cljs:326 msgid "workspace.shape.menu.transform-to-path" msgstr "Transformeren naar pad" -#: src/app/main/ui/workspace/context_menu.cljs:257 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.ungroup" msgstr "Groep opheffen" -#: src/app/main/ui/workspace/context_menu.cljs:332, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:70 msgid "workspace.shape.menu.union" msgstr "Vereniging" -#: src/app/main/ui/workspace/context_menu.cljs:368, src/app/main/ui/workspace/sidebar/layer_item.cljs:152 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.unlock" msgstr "Ontgrendelen" -#: src/app/main/ui/workspace/context_menu.cljs:271 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.unmask" msgstr "Masker wegnemen" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.update-components-in-bulk" msgstr "Hoofdcomponenten bijwerken" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:445 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.update-main" msgstr "Hoofdcomponent bijwerken" -#: src/app/main/ui/components/tab_container.cljs:50 msgid "workspace.sidebar.collapse" msgstr "Zijbalk inklappen" -#: src/app/main/ui/workspace/sidebar/collapsable_button.cljs:26 msgid "workspace.sidebar.expand" msgstr "Zijbalk uitklappen" -#: src/app/main/ui/workspace/right_header.cljs:231, src/app/main/ui/workspace/right_header.cljs:232 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.sidebar.history" msgstr "Geschiedenis (%s)" -#: src/app/main/ui/workspace/sidebar/layers.cljs:522, src/app/main/ui/workspace/sidebar.cljs:100 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.sidebar.layers" msgstr "Lagen" -#: src/app/main/ui/workspace/sidebar/layers.cljs:308, src/app/main/ui/workspace/sidebar/layers.cljs:380 msgid "workspace.sidebar.layers.components" msgstr "Componenten" -#: src/app/main/ui/workspace/sidebar/layers.cljs:305, src/app/main/ui/workspace/sidebar/layers.cljs:338 msgid "workspace.sidebar.layers.frames" msgstr "Borden" -#: src/app/main/ui/workspace/sidebar/layers.cljs:306, src/app/main/ui/workspace/sidebar/layers.cljs:352 msgid "workspace.sidebar.layers.groups" msgstr "Groepen" -#: src/app/main/ui/workspace/sidebar/layers.cljs:310, src/app/main/ui/workspace/sidebar/layers.cljs:408 msgid "workspace.sidebar.layers.images" msgstr "Afbeeldingen" -#: src/app/main/ui/workspace/sidebar/layers.cljs:307, src/app/main/ui/workspace/sidebar/layers.cljs:366 msgid "workspace.sidebar.layers.masks" msgstr "Maskers" -#: src/app/main/ui/workspace/sidebar/layers.cljs:289 msgid "workspace.sidebar.layers.search" msgstr "Lagen doorzoeken" -#: src/app/main/ui/workspace/sidebar/layers.cljs:311, src/app/main/ui/workspace/sidebar/layers.cljs:422 msgid "workspace.sidebar.layers.shapes" msgstr "Vormen" -#: src/app/main/ui/workspace/sidebar/layers.cljs:309, src/app/main/ui/workspace/sidebar/layers.cljs:394 msgid "workspace.sidebar.layers.texts" msgstr "Teksten" -#: src/app/main/ui/viewer/inspect/attributes/svg.cljs:56, src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs:91 +#: src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs, +#: src/app/main/ui/inspect/attributes/svg.cljs msgid "workspace.sidebar.options.svg-attrs.title" msgstr "Geïmporteerde SVG-kenmerken" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs:217 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs msgid "workspace.sidebar.sitemap" msgstr "Pagina's" -#: src/app/main/ui/workspace/left_header.cljs:91 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.sitemap" msgstr "Sitemap" -#: src/app/main/ui/workspace/sidebar.cljs:120 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.assets" msgstr "Assets" -#: src/app/main/ui/workspace/palette.cljs:165, src/app/main/ui/workspace/palette.cljs:166 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.color-palette" msgstr "Kleurenpalet (%s)" -#: src/app/main/ui/workspace/right_header.cljs:220, src/app/main/ui/workspace/right_header.cljs:221 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.comments" msgstr "Commentaar (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:180, src/app/main/ui/workspace/top_toolbar.cljs:181 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.curve" msgstr "Kromme (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:160, src/app/main/ui/workspace/top_toolbar.cljs:161 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.ellipse" msgstr "Ellips (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:142, src/app/main/ui/workspace/top_toolbar.cljs:143 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.frame" msgstr "Bord (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:59, src/app/main/ui/workspace/top_toolbar.cljs:60 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.image" msgstr "Afbeelding (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:132, src/app/main/ui/workspace/top_toolbar.cljs:133 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.move" msgstr "Verplaatsen (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:189, src/app/main/ui/workspace/top_toolbar.cljs:190 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.path" msgstr "Pad (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:151, src/app/main/ui/workspace/top_toolbar.cljs:152 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.rect" msgstr "Rechthoek (%s)" #: src/app/main/ui/workspace/left_toolbar.cljs -#, unused msgid "workspace.toolbar.shortcuts" msgstr "Sneltoetsen (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:169, src/app/main/ui/workspace/top_toolbar.cljs:170 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.text" msgstr "Tekst (%s)" -#: src/app/main/ui/workspace/palette.cljs:173, src/app/main/ui/workspace/palette.cljs:174 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.text-palette" msgstr "Typografie (%s)" -#: src/app/main/ui/workspace/viewport/top_bar.cljs:38 msgid "workspace.top-bar.read-only.done" msgstr "Klaar" -#: src/app/main/ui/workspace/viewport/top_bar.cljs:35 #, markdown msgid "workspace.top-bar.view-only" msgstr "**Code inspecteren** (alleen weergave)" -#: src/app/main/ui/workspace/sidebar/history.cljs:342 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.empty" msgstr "Er zijn tot nu toe geen wijzigingen in de geschiedenis" -#: src/app/main/ui/workspace/sidebar/history.cljs:147 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.entry.delete" msgstr "%s verwijderd" -#: src/app/main/ui/workspace/sidebar/history.cljs:146 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.entry.modify" msgstr "%s gewijzigd" -#: src/app/main/ui/workspace/sidebar/history.cljs:148 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.entry.move" msgstr "Verplaatste objecten" -#: src/app/main/ui/workspace/sidebar/history.cljs:111 msgid "workspace.undo.entry.multiple.circle" msgstr "cirkels" -#: src/app/main/ui/workspace/sidebar/history.cljs:112 msgid "workspace.undo.entry.multiple.color" msgstr "kleur assets" -#: src/app/main/ui/workspace/sidebar/history.cljs:113 msgid "workspace.undo.entry.multiple.component" msgstr "componenten" -#: src/app/main/ui/workspace/sidebar/history.cljs:114 msgid "workspace.undo.entry.multiple.curve" msgstr "krommen" -#: src/app/main/ui/workspace/sidebar/history.cljs:115 msgid "workspace.undo.entry.multiple.frame" msgstr "bord" -#: src/app/main/ui/workspace/sidebar/history.cljs:116 msgid "workspace.undo.entry.multiple.group" msgstr "groepen" -#: src/app/main/ui/workspace/sidebar/history.cljs:117 msgid "workspace.undo.entry.multiple.media" msgstr "grafische assets" -#: src/app/main/ui/workspace/sidebar/history.cljs:118 msgid "workspace.undo.entry.multiple.multiple" msgstr "objecten" -#: src/app/main/ui/workspace/sidebar/history.cljs:119 msgid "workspace.undo.entry.multiple.page" msgstr "pagina's" -#: src/app/main/ui/workspace/sidebar/history.cljs:120 msgid "workspace.undo.entry.multiple.path" msgstr "paden" -#: src/app/main/ui/workspace/sidebar/history.cljs:121 msgid "workspace.undo.entry.multiple.rect" msgstr "rechthoeken" -#: src/app/main/ui/workspace/sidebar/history.cljs:122 msgid "workspace.undo.entry.multiple.shape" msgstr "vormen" -#: src/app/main/ui/workspace/sidebar/history.cljs:123 msgid "workspace.undo.entry.multiple.text" msgstr "teksten" -#: src/app/main/ui/workspace/sidebar/history.cljs:124 msgid "workspace.undo.entry.multiple.typography" msgstr "typografie-assets" -#: src/app/main/ui/workspace/sidebar/history.cljs:145 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.entry.new" msgstr "Nieuw: %s" -#: src/app/main/ui/workspace/sidebar/history.cljs:125 msgid "workspace.undo.entry.single.circle" msgstr "cirkel" -#: src/app/main/ui/workspace/sidebar/history.cljs:126 msgid "workspace.undo.entry.single.color" msgstr "kleur asset" -#: src/app/main/ui/workspace/sidebar/history.cljs:127 msgid "workspace.undo.entry.single.component" msgstr "component" -#: src/app/main/ui/workspace/sidebar/history.cljs:128 msgid "workspace.undo.entry.single.curve" msgstr "kromme" -#: src/app/main/ui/workspace/sidebar/history.cljs:129 msgid "workspace.undo.entry.single.frame" msgstr "bord" -#: src/app/main/ui/workspace/sidebar/history.cljs:130 msgid "workspace.undo.entry.single.group" msgstr "groep" -#: src/app/main/ui/workspace/sidebar/history.cljs:131 msgid "workspace.undo.entry.single.image" msgstr "afbeelding" -#: src/app/main/ui/workspace/sidebar/history.cljs:132 msgid "workspace.undo.entry.single.media" msgstr "grafisch asset" -#: src/app/main/ui/workspace/sidebar/history.cljs:133 msgid "workspace.undo.entry.single.multiple" msgstr "object" -#: src/app/main/ui/workspace/sidebar/history.cljs:134 msgid "workspace.undo.entry.single.page" msgstr "pagina" -#: src/app/main/ui/workspace/sidebar/history.cljs:135 msgid "workspace.undo.entry.single.path" msgstr "pad" -#: src/app/main/ui/workspace/sidebar/history.cljs:136 msgid "workspace.undo.entry.single.rect" msgstr "rechthoek" -#: src/app/main/ui/workspace/sidebar/history.cljs:137 msgid "workspace.undo.entry.single.shape" msgstr "vorm" -#: src/app/main/ui/workspace/sidebar/history.cljs:138 msgid "workspace.undo.entry.single.text" msgstr "tekst" -#: src/app/main/ui/workspace/sidebar/history.cljs:139 msgid "workspace.undo.entry.single.typography" msgstr "typografie asset" -#: src/app/main/ui/workspace/sidebar/history.cljs:149 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.entry.unknown" msgstr "Voortgang van %s" -#: src/app/main/ui/workspace/sidebar/history.cljs:335 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.title" msgstr "Geschiedenis" -#: src/app/main/data/workspace/libraries.cljs:1094 +#: src/app/main/data/workspace/libraries.cljs msgid "workspace.updates.dismiss" msgstr "Afwijzen" -#: src/app/main/data/workspace/libraries.cljs:1092 +#: src/app/main/data/workspace/libraries.cljs msgid "workspace.updates.more-info" msgstr "Meer info" -#: src/app/main/data/workspace/libraries.cljs:1090 +#: src/app/main/data/workspace/libraries.cljs msgid "workspace.updates.there-are-updates" msgstr "Er zijn updates in gedeelde bibliotheken" -#: src/app/main/data/workspace/libraries.cljs:1097 +#: src/app/main/data/workspace/libraries.cljs msgid "workspace.updates.update" msgstr "Bijwerken" -#, unused msgid "workspace.viewport.click-to-close-path" msgstr "Klik om het pad te sluiten" + +msgid "workspace.plugins.error.url" +msgstr "De plug-in bestaat niet of de URL is niet correct." + +msgid "workspace.plugins.success" +msgstr "Plug-in met succes geladen." + +msgid "workspace.plugins.title" +msgstr "Plug-ins" + +msgid "workspace.plugins.search-placeholder" +msgstr "De URL van een plug-in invoeren" + +msgid "workspace.plugins.installed-plugins" +msgstr "Geïnstalleerde plug-ins" + +msgid "workspace.plugins.install" +msgstr "Installeren" + +msgid "workspace.plugins.empty-plugins" +msgstr "Nog geen plug-ins geïnstalleerd" + +msgid "workspace.plugins.plugin-list-link" +msgstr "Plug-in-lijst" + +msgid "workspace.plugins.button-open" +msgstr "Openen" + +msgid "workspace.plugins.menu.plugins-manager" +msgstr "Plug-in-beheer" + +msgid "workspace.plugins.menu.title" +msgstr "Plug-ins" diff --git a/frontend/translations/pl.po b/frontend/translations/pl.po index d0961536fa..505571f231 100644 --- a/frontend/translations/pl.po +++ b/frontend/translations/pl.po @@ -2,320 +2,291 @@ msgid "" msgstr "" "PO-Revision-Date: 2024-06-17 08:07+0000\n" "Last-Translator: Anonymous \n" -"Language-Team: Polish " -"\n" +"Language-Team: Polish \n" "Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && " -"(n%100<10 || n%100>=20) ? 1 : 2);\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " +"|| n%100>=20) ? 1 : 2);\n" "X-Generator: Weblate 5.6-dev\n" -#: src/app/main/ui/auth/register.cljs:151, src/app/main/ui/viewer/login.cljs:104 +#: src/app/main/ui/auth/register.cljs msgid "auth.already-have-account" msgstr "Posiadasz już konto?" -#: src/app/main/ui/auth/register.cljs:299 +#: src/app/main/ui/auth/register.cljs msgid "auth.check-your-email" msgstr "" "Sprawdź swój email i kliknij w link, aby zweryfikować i zacząć korzystać z " "Penpot." -#: src/app/main/ui/auth/recovery.cljs:78 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.confirm-password" msgstr "Potwierdź hasło" -#: src/app/main/ui/auth/register.cljs:163 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.create-demo-account" msgstr "Utwórz konto demo" #: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs -#, unused msgid "auth.create-demo-profile" msgstr "Chcesz tylko spróbować?" -#: src/app/main/ui/auth/login.cljs:43 +#: src/app/main/ui/auth/register.cljs msgid "auth.demo-warning" msgstr "" "To jest usługa DEMO, NIE UŻYWAJ jej do prawdziwej pracy, projekty będą " "okresowo usuwane." -#: src/app/main/ui/auth/login.cljs:189, src/app/main/ui/viewer/login.cljs:90 +#: src/app/main/ui/auth/login.cljs msgid "auth.forgot-password" msgstr "Zapomniałeś hasła?" -#: src/app/main/ui/auth/register.cljs:254 +#: src/app/main/ui/auth/register.cljs msgid "auth.fullname" msgstr "Imię i nazwisko" -#: src/app/main/ui/auth/register.cljs:155, src/app/main/ui/viewer/login.cljs:107 +#: src/app/main/ui/auth/register.cljs +#, fuzzy msgid "auth.login-here" msgstr "Zaloguj się tutaj" -#: src/app/main/ui/auth/login.cljs:195 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-submit" msgstr "Zaloguj się" -#: src/app/main/ui/auth/login.cljs:222 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-github-submit" msgstr "GitHub" -#: src/app/main/ui/auth/login.cljs:228 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-gitlab-submit" msgstr "Gitlab" -#: src/app/main/ui/auth/login.cljs:216 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-google-submit" msgstr "Google" -#: src/app/main/ui/auth/login.cljs:201 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-ldap-submit" msgstr "LDAP" -#: src/app/main/ui/auth/login.cljs:234, src/app/main/ui/auth/login.cljs:255 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-oidc-submit" msgstr "OpenID" -#: src/app/main/ui/auth/recovery.cljs:71 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.new-password" msgstr "Wpisz nowe hasło" -#: src/app/main/ui/auth/recovery.cljs:42 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.notifications.invalid-token-error" msgstr "Token odzyskiwania jest nieprawidłowy." -#: src/app/main/ui/auth/recovery.cljs:46 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.notifications.password-changed-successfully" msgstr "Hasło zmienione pomyślnie" -#: src/app/main/ui/auth/recovery_request.cljs:57 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.notifications.profile-not-verified" msgstr "Profil nie został zweryfikowany, zweryfikuj profil przed kontynuacją." -#: src/app/main/ui/auth/recovery_request.cljs:40 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.notifications.recovery-token-sent" msgstr "Link do odzyskiwania hasła został wysłany na Twój email." -#: src/app/main/ui/auth/verify_token.cljs:47 +#: src/app/main/ui/auth/verify_token.cljs msgid "auth.notifications.team-invitation-accepted" msgstr "Pomyślnie dołączyłeś do zespołu" -#: src/app/main/ui/auth/login.cljs:179, src/app/main/ui/auth/register.cljs:115 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.password" msgstr "Hasło" -#: src/app/main/ui/auth/register.cljs:114 +#: src/app/main/ui/auth/register.cljs msgid "auth.password-length-hint" msgstr "Conajmniej 8 znaków" -#: src/app/main/ui/auth.cljs:41 msgid "auth.privacy-policy" msgstr "Polityka prywatności" -#: src/app/main/ui/auth/recovery_request.cljs:88 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-submit" msgstr "Odzyskaj hasło" -#: src/app/main/ui/auth/recovery_request.cljs:101 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-subtitle" msgstr "Wyślemy Ci email z instrukcją" -#: src/app/main/ui/auth/recovery_request.cljs:100 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-title" msgstr "Zapomniałeś hasła?" -#: src/app/main/ui/auth/recovery.cljs:82 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.recovery-submit" msgstr "Zmień hasło" -#: src/app/main/ui/auth/login.cljs:298, src/app/main/ui/viewer/login.cljs:93 +#: src/app/main/ui/auth/login.cljs msgid "auth.register" msgstr "Nie masz jeszcze konta?" -#: src/app/main/ui/auth/login.cljs:302, src/app/main/ui/auth/register.cljs:121, src/app/main/ui/auth/register.cljs:263, src/app/main/ui/viewer/login.cljs:97 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.register-submit" msgstr "Utwórz konto" -#: src/app/main/ui/auth/register.cljs:140 +#: src/app/main/ui/auth/register.cljs msgid "auth.register-title" msgstr "Utwórz konto" #: src/app/main/ui/auth.cljs -#, unused msgid "auth.sidebar-tagline" msgstr "Rozwiązanie typu Open Source do projektowania i prototypowania." -#: src/app/main/ui/auth.cljs:33, src/app/main/ui/dashboard/sidebar.cljs:1022, src/app/main/ui/workspace/main_menu.cljs:150 msgid "auth.terms-of-service" msgstr "Warunki świadczenia usług" -#: src/app/main/ui/auth/register.cljs:297 +#: src/app/main/ui/auth/register.cljs msgid "auth.verification-email-sent" msgstr "Wysłaliśmy email weryfikacyjny na adres" -#: src/app/main/ui/workspace/libraries.cljs:228 msgid "common.publish" msgstr "Opublikuj" -#: src/app/main/ui/viewer/share_link.cljs:304, src/app/main/ui/viewer/share_link.cljs:314 msgid "common.share-link.all-users" msgstr "Wszyscy użytkownicy Penpot" -#: src/app/main/ui/viewer/share_link.cljs:198 msgid "common.share-link.confirm-deletion-link-description" msgstr "" "Czy na pewno chcesz usunąć ten link? Jeśli to zrobisz, nie będzie już " "dostępny dla nikogo" -#: src/app/main/ui/viewer/share_link.cljs:259, src/app/main/ui/viewer/share_link.cljs:289 msgid "common.share-link.current-tag" msgstr "(aktualne)" -#: src/app/main/ui/viewer/share_link.cljs:207, src/app/main/ui/viewer/share_link.cljs:214 msgid "common.share-link.destroy-link" msgstr "Usuń link" -#: src/app/main/ui/viewer/share_link.cljs:221 msgid "common.share-link.get-link" msgstr "Uzyskaj link" -#: src/app/main/ui/viewer/share_link.cljs:139 msgid "common.share-link.link-copied-success" msgstr "Link skopiowano pomyślnie" -#: src/app/main/ui/viewer/share_link.cljs:231 msgid "common.share-link.manage-ops" msgstr "Zarządzaj uprawnieniami" -#: src/app/main/ui/viewer/share_link.cljs:277 msgid "common.share-link.page-shared" msgid_plural "common.share-link.page-shared" msgstr[0] "1 udostępniona strona" msgstr[1] "%s udostępnione strony" msgstr[2] "%s udostępnionych stron" -#: src/app/main/ui/viewer/share_link.cljs:298 msgid "common.share-link.permissions-can-comment" msgstr "Może komentować" -#: src/app/main/ui/viewer/share_link.cljs:308 msgid "common.share-link.permissions-can-inspect" msgstr "Może sprawdzać kod" -#: src/app/main/ui/viewer/share_link.cljs:193 msgid "common.share-link.permissions-hint" msgstr "Każdy, kto ma link, będzie miał dostęp" -#: src/app/main/ui/viewer/share_link.cljs:241 msgid "common.share-link.permissions-pages" msgstr "Udostępnione strony" -#: src/app/main/ui/viewer/share_link.cljs:183 msgid "common.share-link.placeholder" msgstr "Tutaj pojawi się link do udostępniania" -#: src/app/main/ui/viewer/share_link.cljs:303, src/app/main/ui/viewer/share_link.cljs:313 msgid "common.share-link.team-members" msgstr "Tylko członkowie zespołu" -#: src/app/main/ui/viewer/share_link.cljs:171 msgid "common.share-link.title" msgstr "Udostępnij prototypy" -#: src/app/main/ui/viewer/share_link.cljs:269 msgid "common.share-link.view-all" msgstr "Wybierz wszystko" -#: src/app/main/ui/workspace/libraries.cljs:224 msgid "common.unpublish" msgstr "Cofnij publikację" -#: src/app/main/ui/dashboard/projects.cljs:85 +#: src/app/main/ui/dashboard/projects.cljs msgid "dasboard.team-hero.management" msgstr "Zarządzanie zespołem" -#: src/app/main/ui/dashboard/projects.cljs:84 +#: src/app/main/ui/dashboard/projects.cljs msgid "dasboard.team-hero.text" msgstr "" "Penpot jest przeznaczony dla zespołów. Zaproś członków do wspólnej pracy " "nad projektami i plikami" -#: src/app/main/ui/dashboard/projects.cljs:82 +#: src/app/main/ui/dashboard/projects.cljs msgid "dasboard.team-hero.title" msgstr "Połącz siły!" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.tutorial-hero.info" msgstr "Naucz się podstaw obsługi Penpot, bawiąc się tym praktycznym tutorialem." #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.tutorial-hero.start" msgstr "Zacznij tutorial" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.tutorial-hero.title" msgstr "Praktyczny Tutorial" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.walkthrough-hero.info" msgstr "Wybierz się na spacer po Penpot i poznaj jego główne funkcje." #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.walkthrough-hero.start" msgstr "Rozpocznij wycieczkę" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.walkthrough-hero.title" msgstr "Przewodnik po interfejsie" -#: src/app/main/ui/dashboard/file_menu.cljs:291, src/app/main/ui/workspace/main_menu.cljs:572 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.add-shared" msgstr "Dodaj jako Udostępnioną Bibliotekę" -#: src/app/main/ui/settings/profile.cljs:75 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.change-email" msgstr "Zmień email" -#: src/app/main/data/dashboard.cljs:762, src/app/main/data/dashboard.cljs:983 +#: src/app/main/data/dashboard.cljs, src/app/main/data/dashboard.cljs msgid "dashboard.copy-suffix" msgstr "(skopiuj)" -#: src/app/main/ui/dashboard/sidebar.cljs:338 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.create-new-team" msgstr "Utwórz nowy zespół" -#: src/app/main/ui/components/context_menu_a11y.cljs:256, src/app/main/ui/dashboard/sidebar.cljs:646 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.default-team-name" msgstr "Twój Penpot" -#: src/app/main/ui/dashboard/sidebar.cljs:571 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.delete-team" msgstr "Usuń zespół" -#: src/app/main/ui/dashboard/file_menu.cljs:296, src/app/main/ui/workspace/main_menu.cljs:589 msgid "dashboard.download-binary-file" msgstr "Pobierz plik Penpot (.penpot)" -#: src/app/main/ui/dashboard/file_menu.cljs:300, src/app/main/ui/workspace/main_menu.cljs:597 msgid "dashboard.download-standard-file" msgstr "Pobierz plik standardowy (.svg + .json)" -#: src/app/main/ui/dashboard/file_menu.cljs:276, src/app/main/ui/dashboard/project_menu.cljs:90 +#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.duplicate" msgstr "Duplikuj" -#: src/app/main/ui/dashboard/file_menu.cljs:240 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.duplicate-multi" msgstr "Zduplikuj %s pliki" -#: src/app/main/ui/dashboard/placeholder.cljs:32 +#: src/app/main/ui/dashboard/grid.cljs #, markdown msgid "dashboard.empty-placeholder-drafts" msgstr "" @@ -323,116 +294,100 @@ msgstr "" "lub dodać z naszych [Bibliotek i " "szablonów](https://penpot.app/libraries-templates)." -#: src/app/main/ui/dashboard/file_menu.cljs:249 msgid "dashboard.export-binary-multi" msgstr "Pobierz %s plików Penpot (.penpot)" -#: src/app/main/ui/workspace/main_menu.cljs:605 msgid "dashboard.export-frames" msgstr "Eksportuj obszary kompozycji jako PDF" -#: src/app/main/ui/export.cljs:201 +#: src/app/main/ui/export.cljs msgid "dashboard.export-frames.title" msgstr "Eksportuj jako PDF" -#, unused msgid "dashboard.export-multi" msgstr "Eksportuj %s pliki Penpot" -#: src/app/main/ui/export.cljs:109 +#: src/app/main/ui/export.cljs msgid "dashboard.export-multiple.selected" msgstr "%s z %s elementów wybranych" -#: src/app/main/ui/workspace/main_menu.cljs:578 +#: src/app/main/ui/workspace/header.cljs msgid "dashboard.export-shapes" msgstr "Eksportuj" -#: src/app/main/ui/export.cljs:180 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.how-to" msgstr "" "Możesz dodać ustawienia eksportu do elementów z właściwości projektu (na " "dole prawego paska bocznego)." -#: src/app/main/ui/export.cljs:184 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.how-to-link" msgstr "Informacje jak ustawić eksport w Penpot." -#: src/app/main/ui/export.cljs:179 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.no-elements" msgstr "Nie ma elementów z ustawieniami eksportu." -#: src/app/main/ui/export.cljs:190 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.title" msgstr "Eksportuj wybrane" -#: src/app/main/ui/dashboard/file_menu.cljs:252 msgid "dashboard.export-standard-multi" msgstr "Pobierz %s plików standardowych (.svg + .json)" -#: src/app/main/ui/export.cljs:427 msgid "dashboard.export.detail" msgstr "* Może zawierać komponenty, grafikę, kolory i/lub typografię." -#: src/app/main/ui/export.cljs:426 msgid "dashboard.export.explain" msgstr "" "Co najmniej jeden plik, który chcesz wyeksportować, korzysta z bibliotek " "udostępnionych. Co chcesz zrobić z ich zasobami*?" -#: src/app/main/ui/export.cljs:435 msgid "dashboard.export.options.all.message" msgstr "" "pliki z bibliotekami współdzielonymi zostaną uwzględnione w eksporcie, z " "zachowaniem ich powiązania." -#: src/app/main/ui/export.cljs:436 msgid "dashboard.export.options.all.title" msgstr "Eksportuj biblioteki udostępnione" -#: src/app/main/ui/export.cljs:437 msgid "dashboard.export.options.detach.message" msgstr "" "Biblioteki udostępnione nie zostaną uwzględnione w eksporcie i żadne zasoby " "nie zostaną dodane do biblioteki. " -#: src/app/main/ui/export.cljs:438 msgid "dashboard.export.options.detach.title" msgstr "Traktuj zasoby biblioteki współdzielonej jako podstawowe obiekty" -#: src/app/main/ui/export.cljs:439 msgid "dashboard.export.options.merge.message" msgstr "" "Twój plik zostanie wyeksportowany ze wszystkimi zasobami zewnętrznymi " "połączonymi z biblioteką plików." -#: src/app/main/ui/export.cljs:440 msgid "dashboard.export.options.merge.title" msgstr "Uwzględnij zasoby bibliotek współdzielonych w bibliotekach plików" -#: src/app/main/ui/export.cljs:418 msgid "dashboard.export.title" msgstr "Eksportuj pliki" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:309 msgid "dashboard.fonts.deleted-placeholder" msgstr "Font usunięty" -#: src/app/main/ui/dashboard/fonts.cljs:206 +#: src/app/main/ui/dashboard/fonts.cljs msgid "dashboard.fonts.dismiss-all" msgstr "Odrzuć wszystko" -#: src/app/main/ui/dashboard/fonts.cljs:436 msgid "dashboard.fonts.empty-placeholder" msgstr "Niestandardowe fonty, które prześlesz, pojawią się tutaj." -#: src/app/main/ui/dashboard/fonts.cljs:194 +#: src/app/main/ui/dashboard/fonts.cljs msgid "dashboard.fonts.fonts-added" msgid_plural "dashboard.fonts.fonts-added" msgstr[0] "1 font dodany" msgstr[1] "%s fonty dodane" msgstr[2] "%s fontów dodanych" -#: src/app/main/ui/dashboard/fonts.cljs:170 #, markdown msgid "dashboard.fonts.hero-text1" msgstr "" @@ -442,7 +397,6 @@ msgstr "" "Możesz przesyłać fonty w następujących formatach: **TTF, OTF i WOFF** " "(potrzebny będzie tylko jeden)." -#: src/app/main/ui/dashboard/fonts.cljs:182 #, markdown msgid "dashboard.fonts.hero-text2" msgstr "" @@ -452,1597 +406,1468 @@ msgstr "" "(https://penpot.app/terms.html). Możesz też przeczytać o [licencjonowaniu " "fontów](https://www.typography.com/faq)." -#: src/app/main/ui/dashboard/fonts.cljs:202 +#: src/app/main/ui/dashboard/fonts.cljs msgid "dashboard.fonts.upload-all" msgstr "Prześlij wszystko" -#: src/app/main/ui/dashboard/import.cljs:472, src/app/main/ui/dashboard/project_menu.cljs:108 msgid "dashboard.import" msgstr "Importuj pliki Penpot" -#: src/app/main/ui/dashboard/import.cljs:304, src/app/worker/import.cljs:753, src/app/worker/import.cljs:755 msgid "dashboard.import.analyze-error" msgstr "Kurza stopa! Nie udało się zaimportować tego pliku" -#: src/app/main/ui/dashboard/import.cljs:308 msgid "dashboard.import.import-error" msgstr "Podczas importowania pliku wystąpił problem. Plik nie został zaimportowany." -#: src/app/main/ui/dashboard/import.cljs:493 msgid "dashboard.import.import-message" msgstr "%s plików zostało pomyślnie zaimportowanych." -#: src/app/main/ui/dashboard/import.cljs:481, src/app/main/ui/dashboard/import.cljs:488 msgid "dashboard.import.import-warning" msgstr "Niektóre pliki zawierały nieprawidłowe obiekty, które zostały usunięte." -#: src/app/main/ui/dashboard/import.cljs:144 msgid "dashboard.import.progress.process-colors" msgstr "Przetwarzanie kolorów" -#: src/app/main/ui/dashboard/import.cljs:153 msgid "dashboard.import.progress.process-components" msgstr "Przetwarzanie komponentów" -#: src/app/main/ui/dashboard/import.cljs:150 msgid "dashboard.import.progress.process-media" msgstr "Przetwarzanie mediów" -#: src/app/main/ui/dashboard/import.cljs:141 msgid "dashboard.import.progress.process-page" msgstr "Przetwarzanie strony: %s" -#: src/app/main/ui/dashboard/import.cljs:147 msgid "dashboard.import.progress.process-typographies" msgstr "Przetwarzanie typografii" -#: src/app/main/ui/dashboard/import.cljs:135 msgid "dashboard.import.progress.upload-data" msgstr "Przesyłanie danych na serwer (%s/%s)" -#: src/app/main/ui/dashboard/import.cljs:138 msgid "dashboard.import.progress.upload-media" msgstr "Przesyłanie pliku: %s" -#: src/app/main/ui/dashboard/team.cljs:109 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.invite-profile" msgstr "Zaproś ludzi" -#: src/app/main/ui/dashboard/sidebar.cljs:547, src/app/main/ui/dashboard/sidebar.cljs:556, src/app/main/ui/dashboard/sidebar.cljs:563, src/app/main/ui/dashboard/team.cljs:312 +#: src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.leave-team" msgstr "Opuść zespół" -#: src/app/main/ui/dashboard/templates.cljs:88, src/app/main/ui/dashboard/templates.cljs:163 msgid "dashboard.libraries-and-templates" msgstr "Biblioteki i szablony" -#: src/app/main/ui/dashboard/templates.cljs:164 msgid "dashboard.libraries-and-templates.explore" msgstr "Poznaj więcej z nich i dowiedz się, jak pomóc" -#: src/app/main/ui/dashboard/import.cljs:365 msgid "dashboard.libraries-and-templates.import-error" msgstr "Wystąpił problem z importem szablonu. Szablon nie został zaimportowany." -#: src/app/main/ui/dashboard/libraries.cljs:53 +#: src/app/main/ui/dashboard/libraries.cljs msgid "dashboard.libraries-title" msgstr "Biblioteki współdzielone" -#: src/app/main/ui/dashboard/placeholder.cljs:45 +#: src/app/main/ui/dashboard/grid.cljs msgid "dashboard.loading-files" msgstr "wczytywanie Twoich plików…" -#: src/app/main/ui/dashboard/fonts.cljs:431 msgid "dashboard.loading-fonts" msgstr "wczytywanie Twoich fontów…" -#: src/app/main/ui/dashboard/file_menu.cljs:281, src/app/main/ui/dashboard/project_menu.cljs:100 +#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.move-to" msgstr "Przenieś do" -#: src/app/main/ui/dashboard/file_menu.cljs:245 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.move-to-multi" msgstr "Przenieś %s pliki do" -#: src/app/main/ui/dashboard/file_menu.cljs:226 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.move-to-other-team" msgstr "Przenieś do innego zespołu" -#: src/app/main/ui/dashboard/files.cljs:105, src/app/main/ui/dashboard/projects.cljs:252, src/app/main/ui/dashboard/projects.cljs:253 +#: src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/files.cljs msgid "dashboard.new-file" msgstr "+ Nowy plik" -#: src/app/main/data/dashboard.cljs:958, src/app/main/data/dashboard.cljs:1181 +#: src/app/main/data/dashboard.cljs msgid "dashboard.new-file-prefix" msgstr "Nowy plik" -#: src/app/main/ui/dashboard/projects.cljs:55 +#: src/app/main/ui/dashboard/projects.cljs msgid "dashboard.new-project" msgstr "+ Nowy projekt" -#: src/app/main/data/dashboard.cljs:726, src/app/main/data/dashboard.cljs:1184 +#: src/app/main/data/dashboard.cljs msgid "dashboard.new-project-prefix" msgstr "Nowy projekt" -#: src/app/main/ui/dashboard/search.cljs:60 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.no-matches-for" msgstr "Nie znaleziono dopasowań dla “%s“" -#: src/app/main/ui/dashboard/sidebar.cljs:827 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.no-projects-placeholder" msgstr "Tutaj pojawią się przypięte projekty" -#: src/app/main/ui/auth/verify_token.cljs:33 +#: src/app/main/ui/auth/verify_token.cljs msgid "dashboard.notifications.email-changed-successfully" msgstr "Twój adres email został pomyślnie zaktualizowany" -#: src/app/main/ui/auth/verify_token.cljs:27 +#: src/app/main/ui/auth/verify_token.cljs msgid "dashboard.notifications.email-verified-successfully" msgstr "Twój adres email został pomyślnie zweryfikowany" -#: src/app/main/ui/settings/password.cljs:37 +#: src/app/main/ui/settings/password.cljs msgid "dashboard.notifications.password-saved" msgstr "Hasło zostało pomyślnie zapisane!" -#: src/app/main/ui/dashboard/team.cljs:1081 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.num-of-members" msgstr "%s członków" -#: src/app/main/ui/dashboard/file_menu.cljs:267 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.open-in-new-tab" msgstr "Otwórz plik w nowej zakładce" -#: src/app/main/ui/dashboard/files.cljs:117, src/app/main/ui/dashboard/projects.cljs:260, src/app/main/ui/dashboard/projects.cljs:261 msgid "dashboard.options" msgstr "Opcje" -#: src/app/main/ui/settings/password.cljs:106, src/app/main/ui/settings/password.cljs:119 +#: src/app/main/ui/settings/password.cljs msgid "dashboard.password-change" msgstr "Zmień hasło" -#: src/app/main/ui/dashboard/pin_button.cljs:24, src/app/main/ui/dashboard/project_menu.cljs:95 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.pin-unpin" msgstr "Przypnij/Odepnij" -#: src/app/main/ui/dashboard/projects.cljs:51 +#: src/app/main/ui/dashboard/projects.cljs msgid "dashboard.projects-title" msgstr "Projekty" -#: src/app/main/ui/settings/profile.cljs:86 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.remove-account" msgstr "Czy chesz usunąć swoje konto?" #: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused msgid "dashboard.remove-shared" msgstr "Usuń jako Bibliotekę Udostępnioną" -#: src/app/main/ui/settings/profile.cljs:78 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.save-settings" msgstr "Zapisz ustawienia" -#: src/app/main/ui/dashboard/sidebar.cljs:246, src/app/main/ui/dashboard/sidebar.cljs:247 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.search-placeholder" msgstr "Szukaj…" -#: src/app/main/ui/dashboard/search.cljs:55 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.searching-for" msgstr "Wyszukiwanie “%s“…" -#: src/app/main/ui/settings/options.cljs:56 +#: src/app/main/ui/settings/options.cljs msgid "dashboard.select-ui-language" msgstr "Wybierz język interfejsu" -#: src/app/main/ui/settings/options.cljs:63 +#: src/app/main/ui/settings/options.cljs msgid "dashboard.select-ui-theme" msgstr "Wybierz temat" -#: src/app/main/ui/dashboard/projects.cljs:282 +#: src/app/main/ui/dashboard/grid.cljs msgid "dashboard.show-all-files" msgstr "Pokaż wszystkie pliki" -#: src/app/main/ui/dashboard/project_menu.cljs:59 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.success-delete-project" msgstr "Twój projekt został pomyślnie usunięty" -#: src/app/main/ui/dashboard/project_menu.cljs:33 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.success-duplicate-project" msgstr "Twój projekt został pomyślnie zduplikowany" -#: src/app/main/ui/dashboard/file_menu.cljs:130, src/app/main/ui/dashboard/grid.cljs:558, src/app/main/ui/dashboard/sidebar.cljs:152 +#: src/app/main/ui/dashboard/grid.cljs, src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-move-file" msgstr "Twój plik został pomyślnie przeniesiony" -#: src/app/main/ui/dashboard/file_menu.cljs:129 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-move-files" msgstr "Twoje pliki został pomyślnie przeniesione" -#: src/app/main/ui/dashboard/project_menu.cljs:54 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.success-move-project" msgstr "Twój projekt został pomyślnie przeniesiony" -#: src/app/main/ui/dashboard/team.cljs:1052 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.team-info" msgstr "Informacje o zespole" -#: src/app/main/ui/dashboard/team.cljs:1070 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.team-members" msgstr "Członkowie zespołu" -#: src/app/main/ui/dashboard/team.cljs:1085 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.team-projects" msgstr "Projekty zespołu" -#: src/app/main/ui/settings/options.cljs:61 +#: src/app/main/ui/settings/options.cljs msgid "dashboard.theme-change" msgstr "Temat interfejsu" -#: src/app/main/ui/dashboard/search.cljs:42 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.title-search" msgstr "Wyniki wyszukiwania" -#: src/app/main/ui/dashboard/search.cljs:50 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.type-something" msgstr "Wpisz, aby wyszukać wyniki" -#: src/app/main/ui/dashboard/file_menu.cljs:287, src/app/main/ui/workspace/main_menu.cljs:566 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.unpublish-shared" msgstr "Cofnij publikację biblioteki" -#: src/app/main/ui/settings/options.cljs:71 +#: src/app/main/ui/settings/password.cljs, src/app/main/ui/settings/options.cljs msgid "dashboard.update-settings" msgstr "Aktualizuj ustawienia" -#: src/app/main/ui/dashboard/team.cljs:861 msgid "dashboard.webhooks.active" msgstr "Jest aktywny" -#: src/app/main/ui/dashboard/team.cljs:862 msgid "dashboard.webhooks.active.explain" msgstr "Po wywołaniu tego haka zostaną dostarczone szczegóły zdarzenia" -#: src/app/main/ui/dashboard/team.cljs:852 msgid "dashboard.webhooks.content-type" msgstr "Typ treści" -#: src/app/main/ui/dashboard/team.cljs:885 msgid "dashboard.webhooks.create" msgstr "Utwórz webhooka" -#: src/app/main/ui/dashboard/team.cljs:775 msgid "dashboard.webhooks.create.success" msgstr "Pomyślnie utworzono webhook." -#: src/app/main/ui/dashboard/team.cljs:882 msgid "dashboard.webhooks.description" msgstr "" "Webhook to prosty sposób na powiadamianie innych stron internetowych i " "aplikacji o określonych zdarzeniach w Penpot. Wyślemy żądanie POST do " "każdego podanego przez Ciebie adresu URL." -#: src/app/main/ui/dashboard/team.cljs:1005 msgid "dashboard.webhooks.empty.add-one" msgstr "Naciśnij przycisk „Dodaj webhook”, aby go dodać." -#: src/app/main/ui/dashboard/team.cljs:1004 msgid "dashboard.webhooks.empty.no-webhooks" msgstr "Do tej pory nie utworzono żadnych webhooków." -#, unused msgid "dashboard.webhooks.update.success" msgstr "Webhook został pomyślnie zaktualizowany." -#: src/app/main/ui/settings.cljs:31 +#: src/app/main/ui/settings.cljs msgid "dashboard.your-account-title" msgstr "Twoje konto" -#: src/app/main/ui/settings/profile.cljs:70 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.your-email" msgstr "Email" -#: src/app/main/ui/settings/profile.cljs:62 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.your-name" msgstr "Twoje imię" -#: src/app/main/ui/dashboard/file_menu.cljs:38, src/app/main/ui/dashboard/fonts.cljs:33, src/app/main/ui/dashboard/libraries.cljs:42, src/app/main/ui/dashboard/projects.cljs:318, src/app/main/ui/dashboard/search.cljs:30, src/app/main/ui/dashboard/sidebar.cljs:312, src/app/main/ui/dashboard/team.cljs:495, src/app/main/ui/dashboard/team.cljs:729, src/app/main/ui/dashboard/team.cljs:991, src/app/main/ui/dashboard/team.cljs:1038 +#: src/app/main/ui/dashboard/search.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/libraries.cljs, src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.your-penpot" msgstr "Twój Penpot" -#: src/app/main/ui/alert.cljs:32 +#: src/app/main/ui/alert.cljs msgid "ds.alert-ok" msgstr "Ok" -#: src/app/main/ui/alert.cljs:31, src/app/main/ui/alert.cljs:34 +#: src/app/main/ui/alert.cljs msgid "ds.alert-title" msgstr "Uwaga" -#: src/app/main/ui/confirm.cljs:83 +#: src/app/main/ui/confirm.cljs msgid "ds.component-subtitle" msgstr "Komponenty do aktualizacji:" -#: src/app/main/ui/confirm.cljs:36, src/app/main/ui/workspace/plugins.cljs:246 +#: src/app/main/ui/confirm.cljs msgid "ds.confirm-cancel" msgstr "Anuluj" -#: src/app/main/ui/confirm.cljs:37, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:141 +#: src/app/main/ui/confirm.cljs msgid "ds.confirm-ok" msgstr "Ok" -#: src/app/main/ui/confirm.cljs:35, src/app/main/ui/confirm.cljs:39 +#: src/app/main/ui/confirm.cljs, src/app/main/ui/confirm.cljs msgid "ds.confirm-title" msgstr "Jesteś pewien?" -#: src/app/main/ui/auth/login.cljs:62 +#: src/app/main/ui/auth/login.cljs msgid "errors.auth-provider-not-configured" msgstr "Dostawca uwierzytelniania nie został skonfigurowany." -#: src/app/main/errors.cljs:104 msgid "errors.auth.unable-to-login" msgstr "Wygląda na to, że nie jesteś uwierzytelniony lub sesja wygasła." -#: src/app/main/data/fonts.cljs:189 msgid "errors.bad-font" msgstr "Nie można załadować fontu %s" -#: src/app/main/data/fonts.cljs:188 msgid "errors.bad-font-plural" msgstr "Nie można załadować fontów %s" -#: src/app/main/data/workspace.cljs:1598 +#: src/app/main/data/workspace.cljs msgid "errors.clipboard-not-implemented" msgstr "Twoja przeglądarka nie może wykonać tej operacji" -#: src/app/main/ui/auth/verify_token.cljs:82, src/app/main/ui/settings/change_email.cljs:46 +#: src/app/main/ui/auth/verify_token.cljs, src/app/main/ui/settings/change_email.cljs msgid "errors.email-already-exists" msgstr "Email jest już używany" -#: src/app/main/ui/auth/verify_token.cljs:87 +#: src/app/main/ui/auth/verify_token.cljs msgid "errors.email-already-validated" msgstr "E-mail został już zweryfikowany." -#: src/app/main/ui/settings/password.cljs:28 msgid "errors.email-as-password" msgstr "Nie możesz użyć swojego adresu email jako hasła" -#: src/app/main/ui/auth/recovery_request.cljs:63, src/app/main/ui/dashboard/team.cljs:578, src/app/main/ui/settings/change_email.cljs:54 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/settings/change_email.cljs, src/app/main/ui/dashboard/team.cljs msgid "errors.email-has-permanent-bounces" msgstr "Email «%s» zawiera wiele stałych raportów o odrzuceniu." -#: src/app/main/ui/auth/login.cljs:81, src/app/main/ui/auth/recovery_request.cljs:31, src/app/main/ui/auth/register.cljs:43 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs, src/app/main/ui/auth/recovery_request.cljs msgid "errors.email-invalid" msgstr "Podaj prawidłowy adres e-mail" -#: src/app/main/ui/settings/change_email.cljs:35 +#: src/app/main/ui/settings/change_email.cljs msgid "errors.email-invalid-confirmation" msgstr "E-mail potwierdzający musi być zgodny" -#: src/app/main/ui/dashboard/team.cljs:170 msgid "errors.email-spam-or-permanent-bounces" msgstr "Email «%s» został zgłoszony jako spam lub trwale odrzucony." -#: src/app/main/errors.cljs:227 +#: src/app/main/errors.cljs msgid "errors.feature-mismatch" msgstr "" "Wygląda na to, że otwierasz plik, który ma włączoną funkcję '%s'. Twój " "interfejs użytkownika penpota jej nie obsługuje lub ma ją wyłączoną." -#: src/app/main/errors.cljs:231, src/app/main/errors.cljs:245 +#: src/app/main/errors.cljs msgid "errors.feature-not-supported" msgstr "Funkcja '%s' nie jest obsługiwana." -#: src/app/main/data/users.cljs:709, src/app/main/ui/auth/login.cljs:65, src/app/main/ui/auth/login.cljs:116, src/app/main/ui/auth/register.cljs:69, src/app/main/ui/auth/register.cljs:237, src/app/main/ui/auth/verify_token.cljs:92, src/app/main/ui/dashboard/team.cljs:173, src/app/main/ui/onboarding/team_choice.cljs:95, src/app/main/ui/settings/access_tokens.cljs:91, src/app/main/ui/settings/feedback.cljs:52 +#: src/app/main/ui/auth/verify_token.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/dashboard/team.cljs msgid "errors.generic" msgstr "Coś poszło nie tak." -#: src/app/main/ui/components/color_input.cljs:57 +#: src/app/main/ui/components/color_input.cljs msgid "errors.invalid-color" msgstr "Nieprawidłowy kolor" -#: src/app/main/ui/static.cljs:43 +#: src/app/main/ui/auth/verify_token.cljs msgid "errors.invite-invalid" msgstr "Nieprawidłowe zaproszenie" -#: src/app/main/ui/static.cljs:44 msgid "errors.invite-invalid.info" msgstr "To zaproszenie może być anulowane lub wygasło." -#: src/app/main/ui/auth/login.cljs:101 +#: src/app/main/ui/auth/login.cljs msgid "errors.ldap-disabled" msgstr "Uwierzytelnianie LDAP jest wyłączone." -#: src/app/main/errors.cljs:239 +#: src/app/main/errors.cljs msgid "errors.max-quote-reached" msgstr "Osiągnąłeś limit '%s'. Skontaktuj się z pomocą techniczną." -#: src/app/main/data/workspace/media.cljs:184 +#: src/app/main/data/workspace/persistence.cljs msgid "errors.media-too-large" msgstr "Obraz jest zbyt duży." -#: src/app/main/data/media.cljs:68, src/app/main/data/workspace/media.cljs:187 +#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs msgid "errors.media-type-mismatch" msgstr "Wygląda na to, że zawartość obrazu nie pasuje do rozszerzenia pliku." -#: src/app/main/data/media.cljs:65, src/app/main/data/workspace/media.cljs:172, src/app/main/data/workspace/media.cljs:175, src/app/main/data/workspace/media.cljs:178, src/app/main/data/workspace/media.cljs:181 +#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/workspace/persistence.cljs, src/app/main/data/workspace/persistence.cljs, src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs msgid "errors.media-type-not-allowed" msgstr "Wygląda, że to nie jest prawidłowy obraz." -#: src/app/main/ui/dashboard/team.cljs:574 +#: src/app/main/ui/dashboard/team.cljs msgid "errors.member-is-muted" msgstr "" "W zapraszanym profilu powiadomienia email są wyciszone (zgłoszenia spamu " "lub wysokie odrzucenia)." -#: src/app/main/ui/settings/password.cljs:61 +#: src/app/main/ui/settings/password.cljs msgid "errors.password-invalid-confirmation" msgstr "Hasło potwierdzające musi być zgodne" -#: src/app/main/ui/settings/password.cljs:64 +#: src/app/main/ui/settings/password.cljs msgid "errors.password-too-short" msgstr "Hasło powinno zawierać co najmniej 8 znaków" -#: src/app/main/data/users.cljs:703, src/app/main/ui/auth/login.cljs:97, src/app/main/ui/auth/login.cljs:105 msgid "errors.profile-blocked" msgstr "Profil jest zablokowany" -#: src/app/main/ui/auth/recovery_request.cljs:60, src/app/main/ui/dashboard/team.cljs:164, src/app/main/ui/dashboard/team.cljs:570, src/app/main/ui/settings/change_email.cljs:50 +#: src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/settings/change_email.cljs, src/app/main/ui/dashboard/team.cljs msgid "errors.profile-is-muted" msgstr "" "Twój profil ma wyciszone powiadomienia email (zgłoszenia spamu lub wysokie " "odrzucenia)." -#: src/app/main/data/users.cljs:701, src/app/main/ui/auth/register.cljs:60 +#: src/app/main/ui/auth/register.cljs msgid "errors.registration-disabled" msgstr "Rejestracja jest obecnie wyłączona." -#: src/app/main/ui/dashboard/sidebar.cljs:365, src/app/main/ui/dashboard/team.cljs:359 msgid "errors.team-leave.insufficient-members" msgstr "" "Niewystarczająca liczba członków, aby opuścić zespół, prawdopodobnie chcesz " "go usunąć." -#: src/app/main/ui/dashboard/sidebar.cljs:368, src/app/main/ui/dashboard/team.cljs:362 msgid "errors.team-leave.member-does-not-exists" msgstr "Członek, którego próbujesz przypisać, nie istnieje." -#: src/app/main/ui/dashboard/sidebar.cljs:371, src/app/main/ui/dashboard/team.cljs:365 msgid "errors.team-leave.owner-cant-leave" msgstr "" "Właściciel nie może opuścić zespołu, musisz ponownie przypisać rolę " "właściciela." -#: src/app/main/data/media.cljs:71 +#: src/app/main/data/media.cljs, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs msgid "errors.unexpected-error" msgstr "Wystąpił nieoczekiwany błąd." -#: src/app/main/ui/auth/verify_token.cljs:60 +#: src/app/main/ui/auth/verify_token.cljs msgid "errors.unexpected-token" msgstr "Nieznany token" -#: src/app/main/ui/dashboard/team.cljs:796 msgid "errors.webhooks.connection" msgstr "Błąd połączenia, adres URL nieosiągalny" -#: src/app/main/ui/dashboard/team.cljs:790 msgid "errors.webhooks.invalid-uri" msgstr "Adres URL nie przechodzi weryfikacji." -#: src/app/main/ui/dashboard/team.cljs:949 +#, fuzzy msgid "errors.webhooks.last-delivery" msgstr "Ostatnia wysyłka nie powiodła się." -#: src/app/main/ui/dashboard/team.cljs:792, src/app/main/ui/dashboard/team.cljs:952 msgid "errors.webhooks.ssl-validation" msgstr "Błąd podczas sprawdzania poprawności SSL." -#: src/app/main/ui/dashboard/team.cljs:794 msgid "errors.webhooks.timeout" msgstr "Koniec czasu" -#: src/app/main/ui/dashboard/team.cljs:788 msgid "errors.webhooks.unexpected" msgstr "Nieoczekiwany błąd podczas sprawdzania poprawności" -#: src/app/main/ui/dashboard/team.cljs:798, src/app/main/ui/dashboard/team.cljs:955 msgid "errors.webhooks.unexpected-status" msgstr "Nieoczekiwany status %s" -#: src/app/main/ui/auth/login.cljs:109, src/app/main/ui/auth/login.cljs:113 +#: src/app/main/ui/auth/login.cljs msgid "errors.wrong-credentials" msgstr "Email lub hasło są niepoprawne." -#: src/app/main/ui/settings/password.cljs:25 +#: src/app/main/ui/settings/password.cljs msgid "errors.wrong-old-password" msgstr "Stare hasło jest nieprawidłowe" -#: src/app/main/ui/settings/feedback.cljs:77 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.description" msgstr "Opis" -#: src/app/main/ui/settings/feedback.cljs:95 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.discourse-go-to" msgstr "Przejdź do forum Penpot" -#: src/app/main/ui/settings/feedback.cljs:89 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.discourse-subtitle1" msgstr "" "Cieszymy się, że tu jesteś. Jeśli potrzebujesz pomocy, poszukaj jej zanim " "napiszesz." -#: src/app/main/ui/settings/feedback.cljs:88 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.discourse-title" msgstr "Społeczność Penpot" -#: src/app/main/ui/settings/feedback.cljs:72 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.subject" msgstr "Temat" -#: src/app/main/ui/settings/feedback.cljs:69 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.subtitle" msgstr "" "Opisz powód swojego e-maila, określając, czy jest to problem, pomysł czy " "wątpliwość. Członek naszego zespołu odpowie tak szybko, jak to możliwe." -#: src/app/main/ui/settings/feedback.cljs:68 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.title" msgstr "Email" -#: src/app/main/ui/settings/feedback.cljs:105 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.twitter-go-to" msgstr "Przejdź do Xa" -#: src/app/main/ui/settings/feedback.cljs:99 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.twitter-subtitle1" msgstr "Służymy pomocą w kwestiach technicznych." -#: src/app/main/ui/settings/feedback.cljs:98 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.twitter-title" msgstr "Konto wsparcia na Xze" -#: src/app/main/ui/settings/password.cljs:30 +#: src/app/main/ui/settings/password.cljs msgid "generic.error" msgstr "Wystąpił błąd" -#: src/app/main/ui/viewer/inspect/attributes/blur.cljs:26 +#: src/app/main/ui/inspect/attributes/blur.cljs msgid "inspect.attributes.blur" msgstr "Rozmycie" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:115 +#: src/app/main/ui/inspect/attributes/blur.cljs msgid "inspect.attributes.blur.value" msgstr "Wartość" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:112 +#: src/app/main/ui/inspect/attributes/common.cljs msgid "inspect.attributes.color.hex" msgstr "HEX" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:114 +#: src/app/main/ui/inspect/attributes/common.cljs msgid "inspect.attributes.color.hsla" msgstr "HSLA" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:113 +#: src/app/main/ui/inspect/attributes/common.cljs msgid "inspect.attributes.color.rgba" msgstr "RGBA" -#: src/app/main/ui/viewer/inspect/attributes/fill.cljs:57 +#: src/app/main/ui/inspect/attributes/fill.cljs msgid "inspect.attributes.fill" msgstr "Wypełnienie" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:99, src/app/main/ui/viewer/inspect/attributes/image.cljs:51 +#: src/app/main/ui/inspect/attributes/image.cljs msgid "inspect.attributes.image.download" msgstr "Pobierz obraz źródłowy" -#: src/app/main/ui/viewer/inspect/attributes/image.cljs:39 +#: src/app/main/ui/inspect/attributes/image.cljs msgid "inspect.attributes.image.height" msgstr "Wysokość" -#: src/app/main/ui/viewer/inspect/attributes/image.cljs:32 +#: src/app/main/ui/inspect/attributes/image.cljs msgid "inspect.attributes.image.width" msgstr "Szerokość" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout" msgstr "Układ" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.height" msgstr "Wysokość" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.left" msgstr "Lewo" #: src/app/main/ui/inspect/attributes/layout.cljs, src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.radius" msgstr "Promień" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.rotation" msgstr "Obrót" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.top" msgstr "Góra" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.width" msgstr "Szerokość" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:57 +#: src/app/main/ui/inspect/attributes/shadow.cljs msgid "inspect.attributes.shadow" msgstr "Cień" -#: src/app/main/ui/viewer/inspect/attributes/geometry.cljs:40 +#: src/app/main/ui/inspect/attributes/layout.cljs msgid "inspect.attributes.size" msgstr "Rozmiar i położenie" -#: src/app/main/ui/viewer/inspect/attributes/stroke.cljs:52 +#: src/app/main/ui/inspect/attributes/stroke.cljs msgid "inspect.attributes.stroke" msgstr "Obrys" -#, permanent, unused +#, permanent msgid "inspect.attributes.stroke.alignment.center" msgstr "Środek" -#, permanent, unused +#, permanent msgid "inspect.attributes.stroke.alignment.inner" msgstr "Wewnątrz" -#, permanent, unused +#, permanent msgid "inspect.attributes.stroke.alignment.outer" msgstr "Zewnątrz" -#, unused msgid "inspect.attributes.stroke.style.dotted" msgstr "Kropkowany" -#, unused msgid "inspect.attributes.stroke.style.mixed" msgstr "Mieszany" -#, unused msgid "inspect.attributes.stroke.style.none" msgstr "Brak" -#, unused msgid "inspect.attributes.stroke.style.solid" msgstr "Ciągły" #: src/app/main/ui/inspect/attributes/stroke.cljs -#, unused msgid "inspect.attributes.stroke.width" msgstr "Szerokość" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:81, src/app/main/ui/viewer/inspect/attributes/text.cljs:194 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography" msgstr "Typografia" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:89 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.font-family" msgstr "Rodzina fontów" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:107 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.font-size" msgstr "Rozmiar fontu" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:98 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.font-style" msgstr "Styl fontu" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:134 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.letter-spacing" msgstr "Rozstaw liter" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:125 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.line-height" msgstr "Wysokość linii" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:143 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.text-decoration" msgstr "Dekoracja tekstu" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:145 msgid "inspect.attributes.typography.text-decoration.none" msgstr "Brak" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:146 msgid "inspect.attributes.typography.text-decoration.strikethrough" msgstr "Przekreślenie" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:147 msgid "inspect.attributes.typography.text-decoration.underline" msgstr "Podkreślenie" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:156 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.text-transform" msgstr "Przekształcenie tekstu" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:158 msgid "inspect.attributes.typography.text-transform.lowercase" msgstr "małe litery" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:159 msgid "inspect.attributes.typography.text-transform.none" msgstr "Brak" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:160 msgid "inspect.attributes.typography.text-transform.titlecase" msgstr "Kapitaliki" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:161 msgid "inspect.attributes.typography.text-transform.uppercase" msgstr "DUŻE LITERY" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:140 msgid "inspect.empty.help" msgstr "" "Jeśli chcesz dowiedzieć się więcej o inspekcji projektu, odwiedź centrum " "pomocy Penpot" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:143 msgid "inspect.empty.more-info" msgstr "Więcej informacji o inspekcji" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:135 msgid "inspect.empty.select" msgstr "Wybierz kształt, tablicę lub grupę, aby sprawdzić ich właściwości i kod" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:125 +#: src/app/main/ui/inspect/right_sidebar.cljs msgid "inspect.tabs.code" msgstr "Kod" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:98 msgid "inspect.tabs.code.selected.circle" msgstr "Okrąg" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:99 msgid "inspect.tabs.code.selected.component" msgstr "Komponent" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:100 msgid "inspect.tabs.code.selected.curve" msgstr "Krzywa" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:101 msgid "inspect.tabs.code.selected.frame" msgstr "Artboard" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:102 msgid "inspect.tabs.code.selected.group" msgstr "Grupa" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:103 msgid "inspect.tabs.code.selected.image" msgstr "Obraz" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:104 msgid "inspect.tabs.code.selected.mask" msgstr "Maska" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:93 +#: src/app/main/ui/inspect/right_sidebar.cljs msgid "inspect.tabs.code.selected.multiple" msgstr "%s wybrano" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:105 msgid "inspect.tabs.code.selected.path" msgstr "Ścieżka" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:106 msgid "inspect.tabs.code.selected.rect" msgstr "Prostokąt" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:107 msgid "inspect.tabs.code.selected.svg-raw" msgstr "SVG" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:108 msgid "inspect.tabs.code.selected.text" msgstr "Tekst" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:115 +#: src/app/main/ui/inspect/right_sidebar.cljs msgid "inspect.tabs.info" msgstr "Informacje" -#: src/app/main/ui/workspace/main_menu.cljs:158 +#: src/app/main/ui/workspace/header.cljs msgid "label.shortcuts" msgstr "Skróty" -#: src/app/main/ui/dashboard/import.cljs:527 msgid "labels.accept" msgstr "Akceptuj" -#: src/app/main/ui/dashboard/team.cljs:968 msgid "labels.active" msgstr "Aktywny" -#: src/app/main/ui/dashboard/fonts.cljs:175 msgid "labels.add-custom-font" msgstr "Dodaj niestandardowy font" -#: src/app/main/ui/dashboard/team.cljs:120, src/app/main/ui/dashboard/team.cljs:276, src/app/main/ui/dashboard/team.cljs:519, src/app/main/ui/dashboard/team.cljs:549, src/app/main/ui/onboarding/team_choice.cljs:67 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs msgid "labels.admin" msgstr "Admin" #: src/app/main/ui/workspace/comments.cljs -#, unused msgid "labels.all" msgstr "Wszystko" -#: src/app/main/ui/auth.cljs:37 msgid "labels.and" msgstr "i" -#: src/app/main/ui/onboarding/team_choice.cljs:162 msgid "labels.back" msgstr "Cofnij" -#: src/app/main/ui/static.cljs:59 +#: src/app/main/ui/static.cljs msgid "labels.bad-gateway.desc-message" msgstr "" "Wygląda na to, że musisz trochę poczekać i spróbować ponownie; wykonujemy " "drobne prace konserwacyjne naszych serwerów." -#: src/app/main/ui/static.cljs:58 +#: src/app/main/ui/static.cljs msgid "labels.bad-gateway.main-message" msgstr "Bad Gateway" -#: src/app/main/data/common.cljs:112, src/app/main/ui/dashboard/change_owner.cljs:69, src/app/main/ui/dashboard/import.cljs:514, src/app/main/ui/dashboard/team.cljs:868, src/app/main/ui/delete_shared.cljs:35, src/app/main/ui/export.cljs:164, src/app/main/ui/export.cljs:460, src/app/main/ui/settings/access_tokens.cljs:188, src/app/main/ui/viewer/share_link.cljs:203, src/app/main/ui/workspace/sidebar/assets/groups.cljs:149 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.cancel" msgstr "Anuluj" -#: src/app/main/ui/dashboard/projects.cljs:93, src/app/main/ui/export.cljs:478, src/app/main/ui/settings/access_tokens.cljs:183, src/app/main/ui/viewer/login.cljs:77, src/app/main/ui/viewer/share_link.cljs:174, src/app/main/ui/workspace/libraries.cljs:522 msgid "labels.close" msgstr "Zamknij" -#: src/app/main/ui/dashboard/comments.cljs:104, src/app/main/ui/viewer/comments.cljs:70, src/app/main/ui/workspace/comments.cljs:126 +#: src/app/main/ui/dashboard/comments.cljs msgid "labels.comments" msgstr "Komentarze" -#: src/app/main/ui/dashboard/sidebar.cljs:985, src/app/main/ui/workspace/main_menu.cljs:110 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.community" msgstr "Społeczność" -#: src/app/main/ui/settings/password.cljs:103 +#: src/app/main/ui/settings/password.cljs msgid "labels.confirm-password" msgstr "Potwierdź hasło" -#: src/app/main/ui/dashboard/import.cljs:520, src/app/main/ui/export.cljs:465, src/app/main/ui/onboarding/newsletter.cljs:101 msgid "labels.continue" msgstr "Kontynuuj" -#, unused msgid "labels.continue-with" msgstr "Kontynuuj z" -#: src/app/main/ui/viewer/login.cljs:75 msgid "labels.continue-with-penpot" msgstr "Możesz kontynuować z kontem Penpot" -#: src/app/main/ui/dashboard/team.cljs:642 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.copy-invitation-link" msgstr "Kopiuj link" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:157, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:190 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "labels.create" msgstr "Stwórz" -#: src/app/main/ui/dashboard/team_form.cljs:101, src/app/main/ui/dashboard/team_form.cljs:121 +#: src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/dashboard/team_form.cljs msgid "labels.create-team" msgstr "Stwórz nowy zespół" -#: src/app/main/ui/dashboard/team_form.cljs:113 +#: src/app/main/ui/dashboard/team_form.cljs msgid "labels.create-team.placeholder" msgstr "Wprowadź nazwę nowego zespołu" -#, unused msgid "labels.custom-fonts" msgstr "Niestandardowe fonty" -#: src/app/main/ui/settings/sidebar.cljs:73 +#: src/app/main/ui/settings/sidebar.cljs msgid "labels.dashboard" msgstr "Kokpit" -#: src/app/main/ui/dashboard/file_menu.cljs:306, src/app/main/ui/dashboard/fonts.cljs:255, src/app/main/ui/dashboard/fonts.cljs:332, src/app/main/ui/dashboard/fonts.cljs:346, src/app/main/ui/dashboard/project_menu.cljs:115, src/app/main/ui/dashboard/team.cljs:904, src/app/main/ui/settings/access_tokens.cljs:209, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:209 +#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "labels.delete" msgstr "Usuń" -#: src/app/main/ui/comments.cljs:357 +#: src/app/main/ui/comments.cljs msgid "labels.delete-comment" msgstr "Usuń komentarz" -#: src/app/main/ui/comments.cljs:354 +#: src/app/main/ui/comments.cljs msgid "labels.delete-comment-thread" msgstr "Usuń wątek" -#: src/app/main/ui/dashboard/team.cljs:648 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.delete-invitation" msgstr "Usuń zaproszenie" -#: src/app/main/ui/dashboard/file_menu.cljs:262 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.delete-multi-files" msgstr "Usuń %s plików" -#: src/app/main/ui/dashboard/file_menu.cljs:28, src/app/main/ui/dashboard/files.cljs:72, src/app/main/ui/dashboard/files.cljs:156, src/app/main/ui/dashboard/projects.cljs:220, src/app/main/ui/dashboard/projects.cljs:224, src/app/main/ui/dashboard/sidebar.cljs:791 +#: src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/files.cljs, src/app/main/ui/dashboard/files.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "labels.drafts" msgstr "Szkice" -#: src/app/main/ui/comments.cljs:350, src/app/main/ui/dashboard/fonts.cljs:252, src/app/main/ui/dashboard/team.cljs:902, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:205 +#: src/app/main/ui/comments.cljs msgid "labels.edit" msgstr "Edytuj" -#, unused msgid "labels.edit-file" msgstr "Edytuj plik" -#: src/app/main/ui/dashboard/team.cljs:118, src/app/main/ui/dashboard/team.cljs:279, src/app/main/ui/dashboard/team.cljs:520, src/app/main/ui/dashboard/team.cljs:553, src/app/main/ui/onboarding/team_choice.cljs:66 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs msgid "labels.editor" msgstr "Edytor" -#: src/app/main/ui/dashboard/team.cljs:661 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.expired-invitation" msgstr "Wygasły" -#: src/app/main/ui/export.cljs:173 msgid "labels.export" msgstr "Eksportuj" -#: src/app/main/ui/settings/feedback.cljs:51 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.feedback-disabled" msgstr "Opinie wyłączone" -#: src/app/main/ui/settings/feedback.cljs:42 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.feedback-sent" msgstr "Opinia wysłana" -#: src/app/main/ui/dashboard/fonts.cljs:412 msgid "labels.font-family" msgstr "Rodzina fontów" -#, unused msgid "labels.font-providers" msgstr "Dostawcy fontów" -#: src/app/main/ui/dashboard/fonts.cljs:413 msgid "labels.font-variants" msgstr "Style" -#: src/app/main/ui/dashboard/fonts.cljs:52, src/app/main/ui/dashboard/sidebar.cljs:811 msgid "labels.fonts" msgstr "Fonty" -#: src/app/main/ui/dashboard/sidebar.cljs:1015, src/app/main/ui/workspace/main_menu.cljs:142 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.github-repo" msgstr "Repozytorium Github" -#: src/app/main/ui/dashboard/sidebar.cljs:1032, src/app/main/ui/settings/sidebar.cljs:113, src/app/main/ui/workspace/main_menu.cljs:171 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.give-feedback" msgstr "Dodaj opinię" -#: src/app/main/ui/auth/recovery_request.cljs:110, src/app/main/ui/auth/register.cljs:285, src/app/main/ui/viewer/login.cljs:117 msgid "labels.go-back" msgstr "Wróć" -#: src/app/main/ui/dashboard/sidebar.cljs:978, src/app/main/ui/workspace/main_menu.cljs:102 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.help-center" msgstr "Centrum Pomocy" -#: src/app/main/ui/viewer/comments.cljs:103, src/app/main/ui/workspace/comments.cljs:67 +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs msgid "labels.hide-resolved-comments" msgstr "Ukryj rozwiązane komentarze" -#: src/app/main/ui/dashboard/team.cljs:969 msgid "labels.inactive" msgstr "Nieaktywny" -#: src/app/main/ui/dashboard/fonts.cljs:410 msgid "labels.installed-fonts" msgstr "Zainstalowane fonty" -#: src/app/main/ui/static.cljs:144 +#: src/app/main/ui/static.cljs msgid "labels.internal-error.desc-message" msgstr "" "Stało się coś złego. Spróbuj ponownie wykonać operację, a jeśli problem " "będzie się powtarzał, skontaktuj się z pomocą techniczną." -#: src/app/main/ui/static.cljs:143 +#: src/app/main/ui/static.cljs msgid "labels.internal-error.main-message" msgstr "Błąd wewnętrzny" -#: src/app/main/ui/dashboard/sidebar.cljs:516, src/app/main/ui/dashboard/team.cljs:89, src/app/main/ui/dashboard/team.cljs:97, src/app/main/ui/dashboard/team.cljs:708 +#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.invitations" msgstr "Zaproszenia" -#: src/app/main/ui/settings/options.cljs:51 +#: src/app/main/ui/settings/options.cljs msgid "labels.language" msgstr "Język" -#: src/app/main/ui/dashboard/sidebar.cljs:1008, src/app/main/ui/workspace/main_menu.cljs:134 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.libraries-and-templates" msgstr "Biblioteki i szablony" -#: src/app/main/ui/viewer/header.cljs:203 msgid "labels.log-or-sign" msgstr "Zaloguj się lub zarejestruj" -#: src/app/main/ui/dashboard/sidebar.cljs:1040 +#: src/app/main/ui/settings.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.logout" msgstr "Wyloguj" -#: src/app/main/ui/dashboard/team.cljs:468 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.member" msgstr "Członek" -#: src/app/main/ui/dashboard/sidebar.cljs:510, src/app/main/ui/dashboard/team.cljs:87, src/app/main/ui/dashboard/team.cljs:95 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.members" msgstr "Członkowie" -#: src/app/main/ui/settings/password.cljs:96 +#: src/app/main/ui/settings/password.cljs msgid "labels.new-password" msgstr "Nowe hasło" -#: src/app/main/ui/dashboard/comments.cljs:128, src/app/main/ui/workspace/comments.cljs:161 +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/dashboard/comments.cljs msgid "labels.no-comments-available" msgstr "" "Wszyscy jesteście na bieżąco! Tutaj będą pojawiać się powiadomienia o " "nowych komentarzach." -#: src/app/main/ui/dashboard/team.cljs:694 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.no-invitations" msgstr "Brak oczekujących zaproszeń." -#: src/app/main/ui/dashboard/team.cljs:696 +#: src/app/main/ui/dashboard/team.cljs #, markdown msgid "labels.no-invitations-hint" msgstr "Kliknij przycisk **Zaproś osoby**, aby zaprosić osoby do tego zespołu." -#: src/app/main/ui/static.cljs:50 +#: src/app/main/ui/static.cljs msgid "labels.not-found.desc-message" msgstr "Ta strona może nie istnieć lub nie masz do niej uprawnień dostępu." -#: src/app/main/ui/static.cljs:49 +#: src/app/main/ui/static.cljs msgid "labels.not-found.main-message" msgstr "Kurza stopa!" -#: src/app/main/ui/dashboard/projects.cljs:239, src/app/main/ui/dashboard/team.cljs:1095 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.num-of-files" msgid_plural "labels.num-of-files" msgstr[0] "1 plik" msgstr[1] "%s pliki" msgstr[2] "%s plików" -#: src/app/main/ui/viewer/thumbnails.cljs:80 msgid "labels.num-of-frames" msgid_plural "labels.num-of-frames" msgstr[0] "1 artboard" msgstr[1] "%s artboardy" msgstr[2] "%s artboardów" -#: src/app/main/ui/dashboard/team.cljs:1090 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.num-of-projects" msgid_plural "labels.num-of-projects" msgstr[0] "1 projekt" msgstr[1] "%s projekty" msgstr[2] "%s projektów" -#: src/app/main/ui/settings/password.cljs:89 +#: src/app/main/ui/settings/password.cljs msgid "labels.old-password" msgstr "Stare hasło" #: src/app/main/ui/workspace/comments.cljs -#, unused msgid "labels.only-yours" msgstr "Tylko twoje" -#, unused msgid "labels.or" msgstr "lub" -#: src/app/main/ui/dashboard/team.cljs:286, src/app/main/ui/dashboard/team.cljs:518, src/app/main/ui/dashboard/team.cljs:1076 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs msgid "labels.owner" msgstr "Właściciel" -#: src/app/main/ui/settings/sidebar.cljs:87 +#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.password" msgstr "Hasło" -#: src/app/main/ui/dashboard/team.cljs:662 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.pending-invitation" msgstr "Oczekiwanie" -#: src/app/main/ui/settings/profile.cljs:118, src/app/main/ui/settings/sidebar.cljs:82 +#: src/app/main/ui/settings/sidebar.cljs msgid "labels.profile" msgstr "Profil" -#: src/app/main/ui/dashboard/sidebar.cljs:784 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.projects" msgstr "Projekty" -#: src/app/main/ui/dashboard/sidebar.cljs:998, src/app/main/ui/settings/sidebar.cljs:106, src/app/main/ui/workspace/main_menu.cljs:126 +#: src/app/main/ui/settings/sidebar.cljs msgid "labels.release-notes" msgstr "Uwagi do wydania" #: src/app/main/ui/workspace.cljs -#, unused msgid "labels.reload-file" msgstr "Przeładuj plik" #: src/app/main/ui/workspace/libraries.cljs, src/app/main/ui/dashboard/team.cljs -#, unused msgid "labels.remove" msgstr "Usuń" -#: src/app/main/ui/dashboard/team.cljs:316 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.remove-member" msgstr "Usuń członka zespołu" -#: src/app/main/ui/dashboard/file_menu.cljs:271, src/app/main/ui/dashboard/project_menu.cljs:85, src/app/main/ui/dashboard/sidebar.cljs:539, src/app/main/ui/workspace/sidebar/assets/groups.cljs:157 +#: src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "labels.rename" msgstr "Zmień nazwę" -#: src/app/main/ui/dashboard/team_form.cljs:99 +#: src/app/main/ui/dashboard/team_form.cljs msgid "labels.rename-team" msgstr "Zmień nazwę zespołu" -#: src/app/main/ui/dashboard/team.cljs:645 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.resend-invitation" msgstr "Wyślij ponownie zaproszenie" -#: src/app/main/ui/static.cljs:61, src/app/main/ui/static.cljs:70, src/app/main/ui/static.cljs:148 +#: src/app/main/ui/static.cljs, src/app/main/ui/static.cljs, src/app/main/ui/static.cljs msgid "labels.retry" msgstr "Ponów" -#: src/app/main/ui/dashboard/team.cljs:469, src/app/main/ui/dashboard/team.cljs:709 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.role" msgstr "Rola" -#: src/app/main/ui/dashboard/fonts.cljs:380, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:191 msgid "labels.save" msgstr "Zapisz" -#: src/app/main/ui/dashboard/fonts.cljs:415 msgid "labels.search-font" msgstr "Szukaj fontu" -#: src/app/main/ui/settings/feedback.cljs:82 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.send" msgstr "Wyślij" -#: src/app/main/ui/settings/feedback.cljs:82 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.sending" msgstr "Wysyłanie…" -#: src/app/main/ui/static.cljs:68 +#: src/app/main/ui/static.cljs msgid "labels.service-unavailable.desc-message" msgstr "Zajmujemy się planowaną konserwacją naszych systemów." -#: src/app/main/ui/static.cljs:67 +#: src/app/main/ui/static.cljs msgid "labels.service-unavailable.main-message" msgstr "Serwis niedostępny" -#: src/app/main/ui/dashboard/sidebar.cljs:530, src/app/main/ui/dashboard/team.cljs:88, src/app/main/ui/dashboard/team.cljs:102, src/app/main/ui/settings/options.cljs:84, src/app/main/ui/settings/sidebar.cljs:93 +#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.settings" msgstr "Ustawienia" -#, unused msgid "labels.share-prototype" msgstr "Udostępnij prototyp" -#: src/app/main/ui/dashboard/sidebar.cljs:800 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.shared-libraries" msgstr "Biblioteki Współdzielone" -#: src/app/main/ui/viewer/comments.cljs:82, src/app/main/ui/workspace/comments.cljs:55, src/app/main/ui/workspace/comments.cljs:135 +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs msgid "labels.show-all-comments" msgstr "Pokaż wszystkie komentarze" -#: src/app/main/ui/viewer/comments.cljs:115 msgid "labels.show-comments-list" msgstr "Pokaż listę komentarzy" -#: src/app/main/ui/viewer/comments.cljs:91, src/app/main/ui/workspace/comments.cljs:61, src/app/main/ui/workspace/comments.cljs:136 +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs msgid "labels.show-your-comments" msgstr "Pokaż tylko swoje komentarze" -#: src/app/main/ui/dashboard/team.cljs:710 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.status" msgstr "Status" -#: src/app/main/ui/dashboard/sidebar.cljs:992, src/app/main/ui/workspace/main_menu.cljs:118 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.tutorials" msgstr "Samouczki" -#: src/app/main/ui/dashboard/file_menu.cljs:256 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.unpublish-multi-files" msgstr "Cofnij publikację plików %s" -#: src/app/main/ui/settings/profile.cljs:103 +#: src/app/main/ui/settings/profile.cljs msgid "labels.update" msgstr "Aktualizuj" -#: src/app/main/ui/dashboard/team_form.cljs:120 +#: src/app/main/ui/dashboard/team_form.cljs msgid "labels.update-team" msgstr "Zaktualizuj zespół" -#: src/app/main/ui/dashboard/fonts.cljs:241 msgid "labels.upload" msgstr "Wgraj" -#: src/app/main/ui/dashboard/fonts.cljs:169 msgid "labels.upload-custom-fonts" msgstr "Wgraj niestandardowe fonty" -#: src/app/main/ui/dashboard/fonts.cljs:240 msgid "labels.uploading" msgstr "Wgrywanie…" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs:223 msgid "labels.view-only" msgstr "TYLKO PODGLĄD" -#: src/app/main/ui/dashboard/team.cljs:123, src/app/main/ui/dashboard/team.cljs:282, src/app/main/ui/dashboard/team.cljs:521 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.viewer" msgstr "Widz" -#: src/app/main/ui/dashboard/sidebar.cljs:523, src/app/main/ui/dashboard/team.cljs:90, src/app/main/ui/dashboard/team.cljs:100, src/app/main/ui/dashboard/team.cljs:880 msgid "labels.webhooks" msgstr "Webhooki" -#: src/app/main/ui/comments.cljs:194 +#: src/app/main/ui/comments.cljs msgid "labels.write-new-comment" msgstr "Napisz nowy komentarz" -#: src/app/main/ui/dashboard/team.cljs:237 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.you" msgstr "(Ty)" -#: src/app/main/ui/dashboard/sidebar.cljs:968 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.your-account" msgstr "Twoje konto" -#: src/app/main/data/media.cljs:49, src/app/main/data/workspace/media.cljs:223, src/app/main/data/workspace/media.cljs:453 +#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs msgid "media.loading" msgstr "Wczytywanie obrazu…" -#: src/app/main/data/common.cljs:113 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.add-shared-confirm.accept" msgstr "Dodaj jako Bibliotekę Współdzieloną" -#: src/app/main/data/common.cljs:111 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.add-shared-confirm.hint" msgstr "" "Po dodaniu jej jako Biblioteki Współdzielonej, zasoby tej biblioteki plików " "będą dostępne do wykorzystania w pozostałych Twoich plikach." -#: src/app/main/data/common.cljs:110 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.add-shared-confirm.message" msgstr "Dodaj “%s” jako Bibliotekę Współdzieloną" -#: src/app/main/ui/workspace/nudge.cljs:60 +#: src/app/main/ui/workspace/nudge.cljs msgid "modals.big-nudge" msgstr "Duże przesunięcie" -#: src/app/main/ui/settings/change_email.cljs:127 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.confirm-email" msgstr "Zweryfikuj nowy email" -#: src/app/main/ui/settings/change_email.cljs:114 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.info" msgstr "" "Wyślemy Ci wiadomość na Twój aktualny adres email “%s”, żeby zweryfikować " "Twoją tożsamość." -#: src/app/main/ui/settings/change_email.cljs:119 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.new-email" msgstr "Nowy email" -#: src/app/main/ui/settings/change_email.cljs:136 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.submit" msgstr "Zmień email" -#: src/app/main/ui/settings/change_email.cljs:107 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.title" msgstr "Zmień swój email" -#: src/app/main/ui/dashboard/team.cljs:873 msgid "modals.create-webhook.submit-label" msgstr "Utwórz webhook" -#: src/app/main/ui/dashboard/team.cljs:838 msgid "modals.create-webhook.title" msgstr "Utwórz webhook" -#: src/app/main/ui/dashboard/team.cljs:849 msgid "modals.create-webhook.url.label" msgstr "Ładowność URL" -#: src/app/main/ui/dashboard/team.cljs:850 msgid "modals.create-webhook.url.placeholder" msgstr "https://example.com/postreceive" -#: src/app/main/ui/settings/delete_account.cljs:59 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.cancel" msgstr "Anuluj i zachowaj moje konto" -#: src/app/main/ui/settings/delete_account.cljs:64 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.confirm" msgstr "Tak, usuń moje konto" -#: src/app/main/ui/settings/delete_account.cljs:53 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.info" msgstr "Usuwając konto, stracisz wszystkie swoje bieżące i archiwalne projekty." -#: src/app/main/ui/settings/delete_account.cljs:46 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.title" msgstr "Czy na pewno chcesz usunąć swoje konto?" -#: src/app/main/ui/comments.cljs:298 +#: src/app/main/ui/comments.cljs msgid "modals.delete-comment-thread.accept" msgstr "Usuń rozmowę" -#: src/app/main/ui/comments.cljs:297 +#: src/app/main/ui/comments.cljs msgid "modals.delete-comment-thread.message" msgstr "" "Czy na pewno chcesz usunąć tę rozmowę? Wszystkie komentarze w tym wątku " "zostaną usunięte." -#: src/app/main/ui/comments.cljs:296 +#: src/app/main/ui/comments.cljs msgid "modals.delete-comment-thread.title" msgstr "Usuń rozmowę" -#: src/app/main/ui/dashboard/file_menu.cljs:123 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-confirm.accept" msgstr "Usuń plik" -#: src/app/main/ui/dashboard/file_menu.cljs:122 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-confirm.message" msgstr "Czy na pewno chcesz usunąć ten plik?" -#: src/app/main/ui/dashboard/file_menu.cljs:121 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-confirm.title" msgstr "Usuwanie pliku" -#: src/app/main/ui/dashboard/file_menu.cljs:117 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-multi-confirm.accept" msgstr "Usuń pliki" -#: src/app/main/ui/dashboard/file_menu.cljs:116 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-multi-confirm.message" msgstr "Czy na pewno chcesz usunąć %s pliki?" -#: src/app/main/ui/dashboard/file_menu.cljs:115 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-multi-confirm.title" msgstr "Usuwanie %s plików" -#: src/app/main/ui/dashboard/fonts.cljs:345 msgid "modals.delete-font-variant.message" msgstr "" "Czy na pewno chcesz usunąć ten styl fontu? Nie zostanie załadowany, jeśli " "jest używany w pliku." -#: src/app/main/ui/dashboard/fonts.cljs:344 msgid "modals.delete-font-variant.title" msgstr "Usuwanie stylu fontu" -#: src/app/main/ui/dashboard/fonts.cljs:331 msgid "modals.delete-font.message" msgstr "" "Czy na pewno chcesz usunąć ten font? Nie zostanie załadowany, jeśli jest " "używany w pliku." -#: src/app/main/ui/dashboard/fonts.cljs:330 msgid "modals.delete-font.title" msgstr "Usuwanie fontu" -#: src/app/main/ui/workspace/context_menu.cljs:522, src/app/main/ui/workspace/sidebar/sitemap.cljs:45 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs msgid "modals.delete-page.body" msgstr "Czy na pewno chcesz usunąć tę stronę?" -#: src/app/main/ui/workspace/context_menu.cljs:521, src/app/main/ui/workspace/sidebar/sitemap.cljs:44 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs msgid "modals.delete-page.title" msgstr "Usuń stronę" -#: src/app/main/ui/dashboard/project_menu.cljs:69 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "modals.delete-project-confirm.accept" msgstr "Usuń projekt" -#: src/app/main/ui/dashboard/project_menu.cljs:68 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "modals.delete-project-confirm.message" msgstr "Czy na pewno chcesz usunąć ten projekt?" -#: src/app/main/ui/dashboard/project_menu.cljs:67 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "modals.delete-project-confirm.title" msgstr "Usuń projekt" -#: src/app/main/ui/delete_shared.cljs:51 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.accept" msgid_plural "modals.delete-shared-confirm.accept" msgstr[0] "Usuń plik" msgstr[1] "Usuń pliki" msgstr[2] "Usuń pliki" -#: src/app/main/ui/delete_shared.cljs:46 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.message" msgid_plural "modals.delete-shared-confirm.message" msgstr[0] "Czy na pewno chcesz usunąć ten plik?" msgstr[1] "Czy na pewno chcesz usunąć te pliki?" msgstr[2] "Czy na pewno chcesz usunąć te pliki?" -#: src/app/main/ui/delete_shared.cljs:41 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.title" msgid_plural "modals.delete-shared-confirm.title" msgstr[0] "Usuwanie pliku" msgstr[1] "Usuwanie plików" msgstr[2] "Usuwanie plików" -#: src/app/main/ui/dashboard/sidebar.cljs:435 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.delete-team-confirm.accept" msgstr "Usuń zespół" -#: src/app/main/ui/dashboard/sidebar.cljs:434 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.delete-team-confirm.message" msgstr "" "Czy na pewno chcesz usunąć ten zespół? Wszystkie projekty i pliki powiązane " "z zespołem zostaną trwale usunięte." -#: src/app/main/ui/dashboard/sidebar.cljs:433 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.delete-team-confirm.title" msgstr "Usuwanie zespołu" -#: src/app/main/ui/dashboard/team.cljs:427 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.delete-team-member-confirm.accept" msgstr "Usuń członka" -#: src/app/main/ui/dashboard/team.cljs:426 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.delete-team-member-confirm.message" msgstr "Czy na pewno chcesz usunąć tego członka z zespołu?" -#: src/app/main/ui/dashboard/team.cljs:425 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.delete-team-member-confirm.title" msgstr "Usuń członka zespołu" -#: src/app/main/ui/dashboard/team.cljs:942 msgid "modals.delete-webhook.accept" msgstr "Usuń webhook" -#: src/app/main/ui/dashboard/team.cljs:941 msgid "modals.delete-webhook.message" msgstr "Czy na pewno chcesz usunąć ten webhook?" -#: src/app/main/ui/dashboard/team.cljs:940 msgid "modals.delete-webhook.title" msgstr "Usuwanie webhooka" -#: src/app/main/ui/dashboard/team.cljs:872 msgid "modals.edit-webhook.submit-label" msgstr "Edytuj webhook" -#: src/app/main/ui/dashboard/team.cljs:837 msgid "modals.edit-webhook.title" msgstr "Edytuj webhook" -#: src/app/main/ui/dashboard/team.cljs:218 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.invite-member-confirm.accept" msgstr "Wyślij zaproszenie" -#: src/app/main/ui/dashboard/team.cljs:213, src/app/main/ui/onboarding/team_choice.cljs:156 msgid "modals.invite-member.emails" msgstr "Emaile, oddzielone przecinkami" -#: src/app/main/ui/dashboard/team.cljs:190 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.invite-team-member.title" msgstr "Zaproś członków do zespołu" -#: src/app/main/ui/dashboard/sidebar.cljs:423, src/app/main/ui/dashboard/team.cljs:393 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-close-confirm.hint" msgstr "" "Ponieważ jesteś jedynym członkiem tego zespołu, zespół zostanie usunięty " "wraz z projektami i plikami." -#: src/app/main/ui/dashboard/sidebar.cljs:422, src/app/main/ui/dashboard/team.cljs:392 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-close-confirm.message" msgstr "Czy na pewno chcesz opuścić zespół %s?" -#: src/app/main/ui/dashboard/change_owner.cljs:59 msgid "modals.leave-and-reassign.forbidden" msgstr "" "Nie możesz opuścić zespołu, jeśli nie ma innego członka, którego można by " "awansować na właściciela. Możesz chcieć usunąć zespół." -#: src/app/main/ui/dashboard/change_owner.cljs:55 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-reassign.hint1" msgstr "" "Jesteś właścicielem tego zespołu. Wybierz innego członka, którego chcesz " "awansować na właściciela, zanim odejdziesz." -#: src/app/main/ui/dashboard/change_owner.cljs:78 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-reassign.promote-and-leave" msgstr "Awansuj i odejdź" -#: src/app/main/ui/dashboard/change_owner.cljs:34 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-reassign.select-member-to-promote" msgstr "Wybierz członka do awansu" -#: src/app/main/ui/dashboard/change_owner.cljs:49 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-reassign.title" msgstr "Zanim opuścisz" -#: src/app/main/ui/dashboard/sidebar.cljs:402, src/app/main/ui/dashboard/sidebar.cljs:424, src/app/main/ui/dashboard/team.cljs:394, src/app/main/ui/dashboard/team.cljs:416 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-confirm.accept" msgstr "Opuść zespół" -#: src/app/main/ui/dashboard/sidebar.cljs:401, src/app/main/ui/dashboard/team.cljs:415 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-confirm.message" msgstr "Czy na pewno chcesz opuścić ten zespół?" -#: src/app/main/ui/dashboard/sidebar.cljs:400, src/app/main/ui/dashboard/sidebar.cljs:421, src/app/main/ui/dashboard/team.cljs:391, src/app/main/ui/dashboard/team.cljs:414 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-confirm.title" msgstr "Opusczanie zespołu" -#: src/app/main/ui/workspace/main_menu.cljs:266, src/app/main/ui/workspace/nudge.cljs:47 +#: src/app/main/ui/workspace/nudge.cljs msgid "modals.nudge-title" msgstr "Ilość przesunięcia" -#: src/app/main/ui/dashboard/team.cljs:340 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.accept" msgstr "Przeniesienie własności" -#: src/app/main/ui/dashboard/team.cljs:339 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.hint" msgstr "" "Jeśli przeniesiesz własność, zmienisz swoją rolę na administratora, tracąc " "niektóre uprawnienia w tym zespole. " -#: src/app/main/ui/dashboard/team.cljs:338 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.message" msgstr "" "Jesteś obecnym właścicielem tego zespołu. Czy na pewno chcesz, aby %s " "został nowym właścicielem zespołu?" -#: src/app/main/ui/dashboard/team.cljs:337 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.title" msgstr "Nowy właściciel zespołu" #: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused msgid "modals.remove-shared-confirm.accept" msgstr "Usuń jako Bibliotekę Współdzieloną" #: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused msgid "modals.remove-shared-confirm.hint" msgstr "" "Po usunięciu jako Biblioteka Współdzielona, Biblioteka Plików tego pliku " "przestanie być dostępna do użytku wśród pozostałych plików." #: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused msgid "modals.remove-shared-confirm.message" msgstr "Usuń “%s” jako Bibliotekę Współdzieloną" -#: src/app/main/ui/workspace/nudge.cljs:53 +#: src/app/main/ui/workspace/nudge.cljs msgid "modals.small-nudge" msgstr "Małe przesunięcie" -#: src/app/main/ui/delete_shared.cljs:52 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.unpublish-shared-confirm.accept" msgid_plural "modals.unpublish-shared-confirm.accept" msgstr[0] "Cofnij publikację" msgstr[1] "Cofnij publikacje" msgstr[2] "Cofnij publikacje" -#: src/app/main/ui/delete_shared.cljs:47 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.unpublish-shared-confirm.message" msgid_plural "modals.unpublish-shared-confirm.message" msgstr[0] "Czy na pewno chcesz cofnąć publikację tej biblioteki?" msgstr[1] "Czy na pewno chcesz cofnąć publikację tych bibliotek?" msgstr[2] "Czy na pewno chcesz cofnąć publikację tych bibliotek?" -#: src/app/main/ui/delete_shared.cljs:42 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.unpublish-shared-confirm.title" msgid_plural "modals.unpublish-shared-confirm.title" msgstr[0] "Cofnij publikację biblioteki" @@ -2050,2807 +1875,2485 @@ msgstr[1] "Cofnij publikację bibliotek" msgstr[2] "Cofnij publikację bibliotek" #: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs -#, unused msgid "modals.update-remote-component-in-bulk.hint" msgstr "" "Zamierzasz zaktualizować komponenty w bibliotece współdzielonej. Może to " "wpłynąć na inne pliki, które z nich korzystają." #: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs -#, unused msgid "modals.update-remote-component-in-bulk.message" msgstr "Aktualizuj komponenty w bibliotece współdzielonej" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:380 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.accept" msgstr "Aktualizuj" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:379 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.cancel" msgstr "Anuluj" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:378 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.hint" msgstr "" "Zamierzasz zaktualizować komponent w bibliotece współdzielonej. Może to " "wpłynąć na inne pliki, które z niego korzystają." -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:377 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.message" msgstr "Zaktualizuj komponent w bibliotece współdzielonej" -#: src/app/main/ui/dashboard/team.cljs:154, src/app/main/ui/dashboard/team.cljs:595 +#: src/app/main/ui/dashboard/team.cljs msgid "notifications.invitation-email-sent" msgstr "Zaproszenie wysłane pomyślnie" -#: src/app/main/ui/dashboard/team.cljs:616 +#: src/app/main/ui/dashboard/team.cljs msgid "notifications.invitation-link-copied" msgstr "Link do zaproszenia został skopiowany" -#: src/app/main/ui/settings/delete_account.cljs:24 +#: src/app/main/ui/settings/delete_account.cljs msgid "notifications.profile-deletion-not-allowed" msgstr "" "Nie możesz usunąć swojego profilu. Zmień przypisanie swoich zespołów, zanim " "przejdziesz dalej." -#: src/app/main/ui/settings/options.cljs:29, src/app/main/ui/settings/profile.cljs:35 +#: src/app/main/ui/settings/profile.cljs, src/app/main/ui/settings/options.cljs msgid "notifications.profile-saved" msgstr "Profil został pomyślnie zapisany!" -#: src/app/main/ui/settings/change_email.cljs:63 +#: src/app/main/ui/settings/change_email.cljs msgid "notifications.validation-email-sent" msgstr "Email weryfikacyjny został wysłany do %s. Sprawdź swój email!" -#, unused msgid "onboarding-v2.before-start.desc1" msgstr "" "Powinieneś wiedzieć, że dostępnych jest wiele zasobów, które pomogą Ci " "rozpocząć pracę z Penpotem, takich jak Podręcznik Użytkownika i nasz kanał " "na YouTube." -#, unused msgid "onboarding-v2.before-start.desc2" msgstr "" "Szczegółowe informacje o tym, jak korzystać z Penpot. Od prototypowania po " "organizowanie lub udostępnianie projektów." -#, unused msgid "onboarding-v2.before-start.desc2.title" msgstr "Podręcznik użytkownika" -#, unused msgid "onboarding-v2.before-start.desc3" msgstr "Możesz oglądać nasze samouczki i samouczki wykonane przez naszą społeczność." -#, unused msgid "onboarding-v2.before-start.desc3.title" msgstr "Samouczki wideo" -#, unused msgid "onboarding-v2.before-start.title" msgstr "Zanim zaczniesz" -#: src/app/main/ui/onboarding/newsletter.cljs:63 msgid "onboarding-v2.newsletter.desc" msgstr "" "Zapisz się do newslettera Penpot, aby być na bieżąco z postępami w rozwoju " "produktu i nowościami." -#: src/app/main/ui/onboarding/newsletter.cljs:83 msgid "onboarding-v2.newsletter.news" msgstr "" "Wysyłaj mi wiadomości o Penpot (posty na blogach, samouczki wideo, " "transmisje...)." -#: src/app/main/ui/onboarding/newsletter.cljs:91 msgid "onboarding-v2.newsletter.privacy1" msgstr "Dbamy o prywatność, tutaj możesz przeczytać nasze " -#: src/app/main/ui/onboarding/newsletter.cljs:97 msgid "onboarding-v2.newsletter.privacy2" msgstr "" "Będziemy wysyłać do Ciebie tylko odpowiednie e-maile. Możesz zrezygnować z " "subskrypcji w dowolnym momencie, korzystając z łącza rezygnacji z " "subskrypcji w dowolnym z naszych biuletynów." -#: src/app/main/ui/onboarding/newsletter.cljs:71 msgid "onboarding-v2.newsletter.updates" msgstr "Wysyłaj mi aktualizacje produktów (nowe funkcje, wydania, poprawki...)." -#, unused msgid "onboarding-v2.welcome.desc1" msgstr "" "Penpot jest Open Source i jest tworzony przez Kaleidos oraz społeczność, w " "której wiele osób już pomaga sobie nawzajem. Każdy może współpracować " "poprzez:" -#, unused msgid "onboarding-v2.welcome.desc2" msgstr "" "Przestrzeń publiczna do nauki, dzielenia się i dyskusji o Penpot, jego " "teraźniejszości i przyszłości z całą społecznością i głównym zespołem " "Penpot." -#, unused msgid "onboarding-v2.welcome.desc2.title" msgstr "Uczestnictwo w społeczności" -#, unused msgid "onboarding-v2.welcome.desc3" msgstr "" "Gdzie dowiesz się, jak współpracować przy tłumaczeniach, prośbach o nowe " "funkcje, podstawowych treściach, wyszukiwaniu błędów…" -#, unused msgid "onboarding-v2.welcome.desc3.title" msgstr "Przewodnik współtworzenia" -#: src/app/main/ui/onboarding/team_choice.cljs:31 msgid "onboarding-v2.welcome.title" msgstr "Witamy w Penpot!" -#: src/app/main/ui/onboarding/team_choice.cljs:215 msgid "onboarding.choice.team-up.create-team-desc" msgstr "Po nazwaniu swojego zespołu będziesz mógł zapraszać osoby do dołączenia." -#: src/app/main/ui/onboarding/team_choice.cljs:224 msgid "onboarding.choice.team-up.create-team-placeholder" msgstr "Wprowadź nazwę zespołu" -#: src/app/main/ui/dashboard/projects.cljs:89, src/app/main/ui/onboarding/team_choice.cljs:140 msgid "onboarding.choice.team-up.invite-members" msgstr "Zaproś członków" -#: src/app/main/ui/onboarding/team_choice.cljs:141 msgid "onboarding.choice.team-up.invite-members-info" msgstr "" "Pamiętaj, aby uwzględnić wszystkich. Deweloperzy, projektanci, " "managerowie... różnorodność się sumuje :)" -#: src/app/main/ui/dashboard/team.cljs:202, src/app/main/ui/onboarding/team_choice.cljs:146 msgid "onboarding.choice.team-up.roles" msgstr "Zaproś z rolą:" -#, unused msgid "onboarding.newsletter.accept" msgstr "Tak, zasubskrybuj" -#: src/app/main/ui/onboarding/newsletter.cljs:40 msgid "onboarding.newsletter.acceptance-message" msgstr "" "Twoja prośba o subskrypcję została wysłana, wyślemy Ci wiadomość email w " "celu jej potwierdzenia." -#: src/app/main/ui/onboarding/newsletter.cljs:95 msgid "onboarding.newsletter.policy" msgstr "Polityka prywatności." -#: src/app/main/ui/onboarding/newsletter.cljs:60 msgid "onboarding.newsletter.title" msgstr "Chcesz otrzymywać informacje o Penpot?" -#: src/app/main/ui/onboarding/team_choice.cljs:213 msgid "onboarding.team-modal.create-team" msgstr "Utwórz zespół" -#: src/app/main/ui/onboarding/team_choice.cljs:35 msgid "onboarding.team-modal.create-team-desc" msgstr "" "Zespół umożliwia współpracę z innymi użytkownikami Penpota pracującymi nad " "tymi samymi plikami i projektami." -#: src/app/main/ui/onboarding/team_choice.cljs:40 msgid "onboarding.team-modal.create-team-feature-1" msgstr "Nieograniczone pliki i projekty" -#: src/app/main/ui/onboarding/team_choice.cljs:44 msgid "onboarding.team-modal.create-team-feature-2" msgstr "Edycja dla wielu graczy" -#: src/app/main/ui/onboarding/team_choice.cljs:48 msgid "onboarding.team-modal.create-team-feature-3" msgstr "Zarządzanie rolami" -#: src/app/main/ui/onboarding/team_choice.cljs:52 msgid "onboarding.team-modal.create-team-feature-4" msgstr "Nieograniczona liczba członków" -#: src/app/main/ui/onboarding/team_choice.cljs:56 msgid "onboarding.team-modal.create-team-feature-5" msgstr "100% za darmo!" -#: src/app/main/ui/onboarding/templates.cljs:78 msgid "onboarding.templates.subtitle" msgstr "Oto kilka szablonów." -#: src/app/main/ui/onboarding/templates.cljs:77 msgid "onboarding.templates.title" msgstr "Zacznij projektować" -#, unused msgid "onboarding.welcome.alt" msgstr "Penpot" -#: src/app/main/ui/auth/recovery.cljs:99 +#: src/app/main/ui/auth/recovery.cljs msgid "profile.recovery.go-to-login" msgstr "Przejdź do logowania" -#: src/app/main/ui/viewer/inspect/exports.cljs:147, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:631, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:137, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:148, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:188, src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:158, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:399, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:410, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:430, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:441, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:458, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:472, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:309, src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:183, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:373, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:389, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:245, src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:172 +#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs, src/app/main/ui/workspace/sidebar/options/menus/layer.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs, src/app/main/ui/workspace/sidebar/options/menus/blur.cljs msgid "settings.multiple" msgstr "Mieszane" # SECTIONS -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:414 msgid "shortcut-section.basics" msgstr "Podstawy" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:420 msgid "shortcut-section.dashboard" msgstr "Kokpit" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:423 msgid "shortcut-section.viewer" msgstr "Widz" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:417 msgid "shortcut-section.workspace" msgstr "Obszar roboczy" # SUBSECTIONS -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:56 msgid "shortcut-subsection.alignment" msgstr "Wyrównanie" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:57 msgid "shortcut-subsection.edit" msgstr "Edytuj" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:58 msgid "shortcut-subsection.general-dashboard" msgstr "Ogólny" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:59 msgid "shortcut-subsection.general-viewer" msgstr "Ogólny" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:60 msgid "shortcut-subsection.main-menu" msgstr "Menu główne" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:61 msgid "shortcut-subsection.modify-layers" msgstr "Modyfikuj warstwy" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:62 msgid "shortcut-subsection.navigation-dashboard" msgstr "Nawigacja" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:63 msgid "shortcut-subsection.navigation-viewer" msgstr "Nawigacja" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:64 msgid "shortcut-subsection.navigation-workspace" msgstr "Nawigacja" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:65 msgid "shortcut-subsection.panels" msgstr "Panele" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:66 msgid "shortcut-subsection.path-editor" msgstr "Ścieżki" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:67 msgid "shortcut-subsection.shape" msgstr "Kształty" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:69 msgid "shortcut-subsection.tools" msgstr "Narzędzia" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:70 msgid "shortcut-subsection.zoom-viewer" msgstr "Przybliżenie" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:71 msgid "shortcut-subsection.zoom-workspace" msgstr "Przybliżenie" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:72 msgid "shortcuts.add-comment" msgstr "Komentarze" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:73 msgid "shortcuts.add-node" msgstr "Dodaj węzeł" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:74 msgid "shortcuts.align-bottom" msgstr "Wyrównaj do dołu" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:76 msgid "shortcuts.align-hcenter" msgstr "Wyrównaj do środka w poziomie" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:78 msgid "shortcuts.align-left" msgstr "Wyrównaj do lewej" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:79 msgid "shortcuts.align-right" msgstr "Wyrównaj do prawej" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:80 msgid "shortcuts.align-top" msgstr "Wyrównaj do góry" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:81 msgid "shortcuts.align-vcenter" msgstr "Wyrównaj do środka w pionie" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:82 msgid "shortcuts.artboard-selection" msgstr "Utwórz obszar kompozycji z wybranych" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:84 msgid "shortcuts.bool-difference" msgstr "Różnica logiczna" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:85 msgid "shortcuts.bool-exclude" msgstr "Wykluczenie logiczne" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:86 msgid "shortcuts.bool-intersection" msgstr "Logiczny punkt przecięcia" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:87 msgid "shortcuts.bool-union" msgstr "Związek logiczny" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:88 msgid "shortcuts.bring-back" msgstr "Przesuń na spód" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:89 msgid "shortcuts.bring-backward" msgstr "Przesuń niżej" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:90 msgid "shortcuts.bring-forward" msgstr "Przesuń wyżej" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:91 msgid "shortcuts.bring-front" msgstr "Przesuń na wierzch" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:92 msgid "shortcuts.clear-undo" msgstr "Wyczyść cofnięcia" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:93 msgid "shortcuts.copy" msgstr "Kopiuj" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:94 msgid "shortcuts.create-component" msgstr "Utwórz komponent" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:95 msgid "shortcuts.create-new-project" msgstr "Stwórz nowy" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:96 msgid "shortcuts.cut" msgstr "Wytnij" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:97 msgid "shortcuts.decrease-zoom" msgstr "Oddal" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:98 msgid "shortcuts.delete" msgstr "Usuń" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:99 msgid "shortcuts.delete-node" msgstr "Usuń węzeł" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:100 msgid "shortcuts.detach-component" msgstr "Odłącz komponent" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:101 msgid "shortcuts.draw-curve" msgstr "Krzywa" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:102 msgid "shortcuts.draw-ellipse" msgstr "Elipsa" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:103 msgid "shortcuts.draw-frame" msgstr "Obszar kompozycji" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:104 msgid "shortcuts.draw-nodes" msgstr "Rysuj ścieżkę" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:105 msgid "shortcuts.draw-path" msgstr "Ścieżka" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:106 msgid "shortcuts.draw-rect" msgstr "Prostokąt" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:107 msgid "shortcuts.draw-text" msgstr "Tekst" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:108 msgid "shortcuts.duplicate" msgstr "Duplikuj" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:109 msgid "shortcuts.escape" msgstr "Anuluj" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:110 msgid "shortcuts.export-shapes" msgstr "Eksportuj kształty" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:111 msgid "shortcuts.fit-all" msgstr "Powiększ, aby dopasować wszystko" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:112 msgid "shortcuts.flip-horizontal" msgstr "Obróć poziomo" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:113 msgid "shortcuts.flip-vertical" msgstr "Obróć pionowo" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:116 msgid "shortcuts.go-to-drafts" msgstr "Idź do szkiców" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:117 msgid "shortcuts.go-to-libs" msgstr "Idź do bibliotek współdzielonych" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:118 msgid "shortcuts.go-to-search" msgstr "Szukaj" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:119 msgid "shortcuts.group" msgstr "Grupa" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:120 msgid "shortcuts.h-distribute" msgstr "Rozłóż w poziomie" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:121 msgid "shortcuts.hide-ui" msgstr "Pokaż/ukryj UI" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:122 msgid "shortcuts.increase-zoom" msgstr "Przybliż" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:123 msgid "shortcuts.insert-image" msgstr "Wstaw obraz" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:125 msgid "shortcuts.join-nodes" msgstr "Połącz węzły" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:131 msgid "shortcuts.make-corner" msgstr "Zrób narożnik" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:132 msgid "shortcuts.make-curve" msgstr "Zrób krzywą" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:133 msgid "shortcuts.mask" msgstr "Maska" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:134 msgid "shortcuts.merge-nodes" msgstr "Scal węzły" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:135 msgid "shortcuts.move" msgstr "Przesuń" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:136 msgid "shortcuts.move-fast-down" msgstr "Szybko w dół" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:137 msgid "shortcuts.move-fast-left" msgstr "Szybko w lewo" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:138 msgid "shortcuts.move-fast-right" msgstr "Szybko w prawo" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:139 msgid "shortcuts.move-fast-up" msgstr "Szybko w górę" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:140 msgid "shortcuts.move-nodes" msgstr "Przesuń węzeł" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:141 msgid "shortcuts.move-unit-down" msgstr "W dół" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:142 msgid "shortcuts.move-unit-left" msgstr "W lewo" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:143 msgid "shortcuts.move-unit-right" msgstr "W prawo" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:144 msgid "shortcuts.move-unit-up" msgstr "W górę" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:145 msgid "shortcuts.next-frame" msgstr "Następny obszar kompozycji" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:516 msgid "shortcuts.not-found" msgstr "Nie znaleziono skrótów" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:146 msgid "shortcuts.opacity-0" msgstr "Ustaw krycie na 100%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:147 msgid "shortcuts.opacity-1" msgstr "Ustaw krycie na 10%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:148 msgid "shortcuts.opacity-2" msgstr "Ustaw krycie na 20%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:149 msgid "shortcuts.opacity-3" msgstr "Ustaw krycie na 30%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:150 msgid "shortcuts.opacity-4" msgstr "Ustaw krycie na 40%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:151 msgid "shortcuts.opacity-5" msgstr "Ustaw krycie na 50%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:152 msgid "shortcuts.opacity-6" msgstr "Ustaw krycie na 60%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:153 msgid "shortcuts.opacity-7" msgstr "Ustaw krycie na 70%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:154 msgid "shortcuts.opacity-8" msgstr "Ustaw krycie na 80%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:155 msgid "shortcuts.opacity-9" msgstr "Ustaw krycie na 90%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:156 msgid "shortcuts.open-color-picker" msgstr "Próbnik kolorów" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:157 msgid "shortcuts.open-comments" msgstr "Przejdź do sekcji komentarzy widzów" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:158 msgid "shortcuts.open-dashboard" msgstr "Idź do kokpitu" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:159 msgid "shortcuts.open-inspect" msgstr "Przejdź do sekcji kontroli widzów" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:160 msgid "shortcuts.open-interactions" msgstr "Idź do sekcji interakcji widza" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:161 msgid "shortcuts.open-viewer" msgstr "Idż do sekcji interakcji widza" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:162 msgid "shortcuts.open-workspace" msgstr "Idż do obszaru roboczego" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:260 msgid "shortcuts.or" msgstr " lub " -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:163 msgid "shortcuts.paste" msgstr "Wklej" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:164 msgid "shortcuts.prev-frame" msgstr "Poprzedni artboard" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:165 msgid "shortcuts.redo" msgstr "Ponów" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:166 msgid "shortcuts.reset-zoom" msgstr "Resetuj powiększenie" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:168 msgid "shortcuts.search-placeholder" msgstr "Szukaj skrótów" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:169 msgid "shortcuts.select-all" msgstr "Wybierz wszystko" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:173 msgid "shortcuts.separate-nodes" msgstr "Oddziel węzły" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:174 msgid "shortcuts.show-pixel-grid" msgstr "Pokaż/ukryj siatkę pikseli" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:175 msgid "shortcuts.show-shortcuts" msgstr "Pokaż/ukryj skróty" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:176 msgid "shortcuts.snap-nodes" msgstr "Przyciągaj do węzłów" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:177 msgid "shortcuts.snap-pixel-grid" msgstr "Przyciągaj do siatki pikseli" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:178 msgid "shortcuts.start-editing" msgstr "Rozpocznij edycję" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:179 msgid "shortcuts.start-measure" msgstr "Rozpocznij pomiary" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:180 msgid "shortcuts.stop-measure" msgstr "Zakończ pomiary" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:185 msgid "shortcuts.thumbnail-set" msgstr "Ustaw miniaturki" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:496, src/app/main/ui/workspace/sidebar/shortcuts.cljs:505 +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs msgid "shortcuts.title" msgstr "Skróty klawiaturowe" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:186 msgid "shortcuts.toggle-alignment" msgstr "Przełącz dynamiczne wyrównanie" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:187 msgid "shortcuts.toggle-assets" msgstr "Przełącz zasoby" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:188 msgid "shortcuts.toggle-colorpalette" msgstr "Przełącz paletę kolorów" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:189 msgid "shortcuts.toggle-focus-mode" msgstr "Przełącz tryb skupienia" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:190 msgid "shortcuts.toggle-fullscreen" msgstr "Przełącz tryb pełnoekranowy" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:192 msgid "shortcuts.toggle-history" msgstr "Przełącz historię" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:193 msgid "shortcuts.toggle-layers" msgstr "Przełącz warstwy" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:194 msgid "shortcuts.toggle-layout-flex" msgstr "Dodaj/usuń flex układu" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:196 msgid "shortcuts.toggle-lock" msgstr "Zablokuj wybrane" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:197 msgid "shortcuts.toggle-lock-size" msgstr "Zablokuj proporcje" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:202 msgid "shortcuts.toggle-textpalette" msgstr "Przełącz paletę tekstu" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:205 msgid "shortcuts.toggle-zoom-style" msgstr "Przełącz sposób powiększania" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:207 msgid "shortcuts.undo" msgstr "Cofnij" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:208 msgid "shortcuts.ungroup" msgstr "Rozgrupuj" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:209 msgid "shortcuts.unmask" msgstr "Usuń maskę" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:210 msgid "shortcuts.v-distribute" msgstr "Rozłóż w pionie" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:213 msgid "shortcuts.zoom-selected" msgstr "Przybliż wybrane" -#: src/app/main/ui/dashboard/files.cljs:158 +#: src/app/main/ui/dashboard/files.cljs msgid "title.dashboard.files" msgstr "%s - Penpot" -#: src/app/main/ui/dashboard/fonts.cljs:37 +#: src/app/main/ui/dashboard/fonts.cljs msgid "title.dashboard.font-providers" msgstr "Dostawcy Fontów - %s - Penpot" -#: src/app/main/ui/dashboard/fonts.cljs:36 +#: src/app/main/ui/dashboard/fonts.cljs msgid "title.dashboard.fonts" msgstr "Fonty - %s - Penpot" -#: src/app/main/ui/dashboard/projects.cljs:320 +#: src/app/main/ui/dashboard/projects.cljs msgid "title.dashboard.projects" msgstr "Projekty - %s - Penpot" -#: src/app/main/ui/dashboard/search.cljs:32 +#: src/app/main/ui/dashboard/search.cljs msgid "title.dashboard.search" msgstr "Szukaj - %s - Penpot" -#: src/app/main/ui/dashboard/libraries.cljs:44 +#: src/app/main/ui/dashboard/libraries.cljs msgid "title.dashboard.shared-libraries" msgstr "Biblioteki Współdzielone - %s - Penpot" -#: src/app/main/ui/auth/verify_token.cljs:68, src/app/main/ui/auth.cljs:54 +#: src/app/main/ui/auth/verify_token.cljs, src/app/main/ui/auth.cljs msgid "title.default" msgstr "Penpot — swoboda projektowania dla zespołów" -#: src/app/main/ui/settings/feedback.cljs:110 +#: src/app/main/ui/settings/feedback.cljs msgid "title.settings.feedback" msgstr "Przekaż opinię - Penpot" -#: src/app/main/ui/settings/options.cljs:80 +#: src/app/main/ui/settings/options.cljs msgid "title.settings.options" msgstr "Ustawienia - Penpot" -#: src/app/main/ui/settings/password.cljs:115 +#: src/app/main/ui/settings/password.cljs msgid "title.settings.password" msgstr "Hasło - Penpot" -#: src/app/main/ui/settings/profile.cljs:115 +#: src/app/main/ui/settings/profile.cljs msgid "title.settings.profile" msgstr "Profil - Penpot" -#: src/app/main/ui/dashboard/team.cljs:727 +#: src/app/main/ui/dashboard/team.cljs msgid "title.team-invitations" msgstr "Zaproszenia - %s - Penpot" -#: src/app/main/ui/dashboard/team.cljs:493 +#: src/app/main/ui/dashboard/team.cljs msgid "title.team-members" msgstr "Członkowie - %s - Penpot" -#: src/app/main/ui/dashboard/team.cljs:1036 +#: src/app/main/ui/dashboard/team.cljs msgid "title.team-settings" msgstr "Ustawienia - %s - Penpot" -#: src/app/main/ui/dashboard/team.cljs:989 msgid "title.team-webhooks" msgstr "Webhooki - %s - Penpot" -#: src/app/main/ui/viewer.cljs:419 +#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs msgid "title.viewer" msgstr "%s - Tryb wyświetlania - Penpot" -#: src/app/main/ui/workspace.cljs:190 +#: src/app/main/ui/workspace.cljs msgid "title.workspace" msgstr "%s - Penpot" -#: src/app/main/ui.cljs:144 msgid "viewer.breaking-change.description" msgstr "" "Ten udostępniany link jest już nieważny. Utwórz nowy lub poproś właściciela " "o nowy." -#: src/app/main/ui.cljs:143 msgid "viewer.breaking-change.message" msgstr "Wybacz!" -#: src/app/main/ui/viewer.cljs:569 +#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs msgid "viewer.empty-state" msgstr "Na stronie nie znaleziono obszarów kompozycji." -#: src/app/main/ui/viewer.cljs:574 +#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs msgid "viewer.frame-not-found" msgstr "Obszar kompozycji nie znaleziony." -#: src/app/main/ui/viewer/header.cljs:336 msgid "viewer.header.comments-section" msgstr "Komentarze (%s)" -#: src/app/main/ui/viewer/interactions.cljs:292 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.dont-show-interactions" msgstr "Nie pokazuj interakcji" -#: src/app/main/ui/viewer/header.cljs:188 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.fullscreen" msgstr "Pełny ekran" -#: src/app/main/ui/viewer/header.cljs:345 msgid "viewer.header.inspect-section" msgstr "Sprawdź (%s)" -#: src/app/main/ui/viewer/interactions.cljs:282 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.interactions" msgstr "Interakcje" -#: src/app/main/ui/viewer/header.cljs:327 msgid "viewer.header.interactions-section" msgstr "Interakcje (%s)" -#: src/app/main/ui/viewer/share_link.cljs:187 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.share.copy-link" msgstr "Kopiuj link" -#: src/app/main/ui/viewer/interactions.cljs:300 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.show-interactions" msgstr "Pokaż interakcje" -#: src/app/main/ui/viewer/interactions.cljs:311 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.show-interactions-on-click" msgstr "Pokaż interakcje po kliknięciu" -#: src/app/main/ui/viewer/header.cljs:231 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.sitemap" msgstr "Mapa strony" -#: src/app/main/ui/dashboard/team.cljs:948 +#, fuzzy msgid "webhooks.last-delivery.success" msgstr "Ostatnia wysyłka przebiegła pomyślnie." -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:58 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.hcenter" msgstr "Wyrównaj do środka w poziomie (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:74 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.hdistribute" msgstr "Rozłóż odstępy w poziomie (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:50 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.hleft" msgstr "Wyrównaj do lewej (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:66 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.hright" msgstr "Wyrównaj do prawej (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:99 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.vbottom" msgstr "Wyrównaj do dołu (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:91 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.vcenter" msgstr "Wyrównaj do środka w pionie (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:104 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.vdistribute" msgstr "Rozłóż odstępy w pionie (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:83 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.vtop" msgstr "Wyrównaj do góry (%s)" #: src/app/main/ui/workspace/sidebar/assets.cljs -#, unused msgid "workspace.assets.assets" msgstr "Zasoby" -#: src/app/main/ui/workspace/sidebar/assets.cljs:134 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.box-filter-all" msgstr "Wszystkie zasoby" -#: src/app/main/ui/dashboard/grid.cljs:130, src/app/main/ui/dashboard/grid.cljs:162, src/app/main/ui/workspace/sidebar/assets/colors.cljs:485, src/app/main/ui/workspace/sidebar/assets.cljs:150 +#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.colors" msgstr "Kolory" -#: src/app/main/ui/dashboard/grid.cljs:126, src/app/main/ui/dashboard/grid.cljs:141, src/app/main/ui/workspace/sidebar/assets/components.cljs:513, src/app/main/ui/workspace/sidebar/assets.cljs:139 +#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.components" msgstr "Komponenty" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:131 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.create-group" msgstr "Utwórz grupę" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:142 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.create-group-hint" msgstr "" "Twoje elementy zostaną automatycznie nazwane jako „nazwa grupy / nazwa " "elementu”" -#: src/app/main/ui/workspace/context_menu.cljs:529, src/app/main/ui/workspace/sidebar/assets/colors.cljs:251, src/app/main/ui/workspace/sidebar/assets/components.cljs:577, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:424, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:443 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.delete" msgstr "Usuń" -#: src/app/main/ui/workspace/context_menu.cljs:534, src/app/main/ui/workspace/sidebar/assets/components.cljs:572 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs, src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.duplicate" msgstr "Duplikuj" -#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:247, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:439 +#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.edit" msgstr "Edytuj" -#: src/app/main/ui/workspace/sidebar/assets/graphics.cljs:384, src/app/main/ui/workspace/sidebar/assets.cljs:145 +#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.graphics" msgstr "Grafika" -#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:255, src/app/main/ui/workspace/sidebar/assets/components.cljs:581, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:428, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:448 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.group" msgstr "Grupa" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:141 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.group-name" msgstr "Nazwa grupy" -#: src/app/main/ui/workspace/sidebar/assets.cljs:168 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.libraries" msgstr "Biblioteki" -#: src/app/main/ui/workspace/sidebar/assets/file_library.cljs:62, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:347 msgid "workspace.assets.local-library" msgstr "lokalna biblioteka" -#: src/app/main/ui/workspace/sidebar/assets/file_library.cljs:295 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.not-found" msgstr "Nie znaleziono zasobów" -#: src/app/main/ui/workspace/context_menu.cljs:532, src/app/main/ui/workspace/sidebar/assets/colors.cljs:243, src/app/main/ui/workspace/sidebar/assets/components.cljs:566, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:421, src/app/main/ui/workspace/sidebar/assets/groups.cljs:63, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:434 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.rename" msgstr "Zmień nazwę" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:132 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.rename-group" msgstr "Zmień nazwę grupy" -#: src/app/main/ui/workspace/sidebar/assets.cljs:173 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.search" msgstr "Szukaj zasobów" #: src/app/main/ui/workspace/sidebar/assets.cljs -#, unused msgid "workspace.assets.selected-count" msgid_plural "workspace.assets.selected-count" msgstr[0] "Wybrano %s element" msgstr[1] "Wybrano %s elementy" msgstr[2] "Wybrano %s elementów" -#: src/app/main/ui/dashboard/grid.cljs:134, src/app/main/ui/dashboard/grid.cljs:189, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:397, src/app/main/ui/workspace/sidebar/assets.cljs:155 +#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.typography" msgstr "Typografia" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused msgid "workspace.assets.typography.font-id" msgstr "Font" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:505 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.font-size" msgstr "Rozmiar" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:501 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.font-variant-id" msgstr "Wariant" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:523 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.go-to-edit" msgstr "Przejdź do pliku biblioteki stylów, żeby edytować" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:513 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.letter-spacing" msgstr "Odstępy między literami" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:509 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.line-height" msgstr "Wysokość Linii" -#: src/app/main/ui/dashboard/grid.cljs:199, src/app/main/ui/workspace/libraries.cljs:461, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:464, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:489, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:596, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:615 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, src/app/main/ui/inspect/attributes/text.cljs, src/app/main/ui/inspect/attributes/text.cljs msgid "workspace.assets.typography.sample" msgstr "Ag" -#, unused msgid "workspace.assets.typography.text-styles" msgstr "Style tekstu" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:517 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.text-transform" msgstr "Transformacja tekstu" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:66 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.ungroup" msgstr "Rozgrupuj" -#: src/app/main/ui/workspace/sidebar/layers.cljs:525 msgid "workspace.focus.focus-mode" msgstr "Tryb skupienia" -#: src/app/main/ui/workspace/context_menu.cljs:287, src/app/main/ui/workspace/context_menu.cljs:553 msgid "workspace.focus.focus-off" msgstr "Tryb skupienia wyłączony" -#: src/app/main/ui/workspace/context_menu.cljs:286 msgid "workspace.focus.focus-on" msgstr "Tryb skupienia włączony" -#, unused msgid "workspace.focus.selection" msgstr "Zaznaczenie" -#: src/app/util/color.cljs:34 +#: src/app/main/data/workspace/libraries.cljs, src/app/main/ui/components/color_bullet.cljs msgid "workspace.gradients.linear" msgstr "Gradient liniowy" -#: src/app/util/color.cljs:35 +#: src/app/main/data/workspace/libraries.cljs, src/app/main/ui/components/color_bullet.cljs msgid "workspace.gradients.radial" msgstr "Gradient radialny" -#: src/app/main/ui/workspace/main_menu.cljs:238 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.disable-dynamic-alignment" msgstr "Wyłącz wyrównanie dynamiczne" #: src/app/main/ui/workspace/header.cljs -#, unused msgid "workspace.header.menu.disable-scale-text" msgstr "Wyłącz skalowanie tekstu" -#: src/app/main/ui/workspace/main_menu.cljs:223 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.disable-snap-guides" msgstr "Wyłącz przyciąganie do prowadnic" -#: src/app/main/ui/workspace/main_menu.cljs:253 msgid "workspace.header.menu.disable-snap-pixel-grid" msgstr "Wyłącz przyciąganie do piksela" -#: src/app/main/ui/workspace/main_menu.cljs:239 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.enable-dynamic-alignment" msgstr "Włącz dynamiczne wyrównanie" #: src/app/main/ui/workspace/header.cljs -#, unused msgid "workspace.header.menu.enable-scale-text" msgstr "Włącz skalowanie tekstu" -#: src/app/main/ui/workspace/main_menu.cljs:224 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.enable-snap-guides" msgstr "Przyciągaj do prowadnic" -#: src/app/main/ui/workspace/main_menu.cljs:254 msgid "workspace.header.menu.enable-snap-pixel-grid" msgstr "Włącz przyciąganie do piksela" -#: src/app/main/ui/workspace/main_menu.cljs:382 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.hide-artboard-names" msgstr "Ukryj nazwy obszarów kompozycji" -#: src/app/main/ui/workspace/main_menu.cljs:353 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.hide-palette" msgstr "Ukryj paletę kolorów" -#: src/app/main/ui/workspace/main_menu.cljs:394 msgid "workspace.header.menu.hide-pixel-grid" msgstr "Ukryj siatkę pikseli" -#: src/app/main/ui/workspace/main_menu.cljs:320 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.hide-rules" msgstr "Ukryj linijki" -#: src/app/main/ui/workspace/main_menu.cljs:367 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.hide-textpalette" msgstr "Ukryj paletę fontów" -#: src/app/main/ui/workspace/main_menu.cljs:731 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.edit" msgstr "Edytuj" -#: src/app/main/ui/workspace/main_menu.cljs:720 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.file" msgstr "Plik" -#: src/app/main/ui/workspace/main_menu.cljs:777 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.help-info" msgstr "Pomoc i info" -#: src/app/main/ui/workspace/main_menu.cljs:753 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.preferences" msgstr "Ustawienia" -#: src/app/main/ui/workspace/main_menu.cljs:742 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.view" msgstr "Widok" -#: src/app/main/ui/workspace/main_menu.cljs:432 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.select-all" msgstr "Zaznacz wszystko" -#: src/app/main/ui/workspace/main_menu.cljs:383 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.show-artboard-names" msgstr "Pokaz nazwy obszarów kompozycji" -#: src/app/main/ui/workspace/main_menu.cljs:354 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.show-palette" msgstr "Pokaż paletę kolorów" -#: src/app/main/ui/workspace/main_menu.cljs:395 msgid "workspace.header.menu.show-pixel-grid" msgstr "Pokaż siatkę pikseli" -#: src/app/main/ui/workspace/main_menu.cljs:321 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.show-rules" msgstr "Pokaż linijki" -#: src/app/main/ui/workspace/main_menu.cljs:368 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.show-textpalette" msgstr "Pokaż paletę fontów" -#: src/app/main/ui/viewer/header.cljs:98, src/app/main/ui/workspace/right_header.cljs:120 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.reset-zoom" msgstr "Resetuj" #: src/app/main/ui/workspace/header.cljs -#, unused msgid "workspace.header.save-error" msgstr "Błąd przy zapisywaniu" -#: src/app/main/ui/workspace/right_header.cljs:52 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.saved" msgstr "Zapisano" #: src/app/main/ui/workspace/header.cljs -#, unused msgid "workspace.header.saving" msgstr "Zapisywanie" -#: src/app/main/ui/workspace/right_header.cljs:42, src/app/main/ui/workspace/right_header.cljs:47 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.unsaved" msgstr "Niezapisane zmiany" -#: src/app/main/ui/workspace/right_header.cljs:239 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.viewer" msgstr "Tryb widoku (%s)" -#: src/app/main/ui/viewer/header.cljs:109 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom-fill" msgstr "Wypełnij — skaluj, aby wypełnić" -#: src/app/main/ui/viewer/header.cljs:102 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom-fit" msgstr "Dopasuj — zmniejsz, aby dopasować" -#: src/app/main/ui/workspace/right_header.cljs:123 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom-fit-all" msgstr "Powiększ, aby dopasować wszystko" -#: src/app/main/ui/viewer/header.cljs:116 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom-full-screen" msgstr "Pełny ekran" -#: src/app/main/ui/workspace/right_header.cljs:130 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom-selected" msgstr "Powiększ wybrane" #: src/app/main/ui/workspace/libraries.cljs -#, unused msgid "workspace.libraries.add" msgstr "Dodaj" -#: src/app/main/ui/workspace/libraries.cljs:80, src/app/main/ui/workspace/libraries.cljs:99 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.colors" msgstr "%s kolory" -#: src/app/main/ui/workspace/color_palette_ctx_menu.cljs:60, src/app/main/ui/workspace/colorpicker/libraries.cljs:73, src/app/main/ui/workspace/text_palette_ctx_menu.cljs:50 +#: src/app/main/ui/workspace/colorpicker/libraries.cljs, src/app/main/ui/workspace/colorpalette.cljs msgid "workspace.libraries.colors.file-library" msgstr "Biblioteka plików" #: src/app/main/ui/workspace/colorpicker.cljs -#, unused msgid "workspace.libraries.colors.hsv" msgstr "HSV" -#: src/app/main/ui/workspace/color_palette_ctx_menu.cljs:82, src/app/main/ui/workspace/colorpicker/libraries.cljs:72 +#: src/app/main/ui/workspace/colorpicker/libraries.cljs, src/app/main/ui/workspace/colorpalette.cljs msgid "workspace.libraries.colors.recent-colors" msgstr "Bieżące kolory" #: src/app/main/ui/workspace/colorpicker.cljs -#, unused msgid "workspace.libraries.colors.rgb-complementary" msgstr "RGB - Komplementarne" #: src/app/main/ui/workspace/colorpicker.cljs -#, unused msgid "workspace.libraries.colors.rgba" msgstr "RGBA" -#: src/app/main/ui/workspace/colorpicker.cljs:372 +#: src/app/main/ui/workspace/colorpicker.cljs msgid "workspace.libraries.colors.save-color" msgstr "Zapisz styl koloru" -#: src/app/main/ui/workspace/libraries.cljs:74, src/app/main/ui/workspace/libraries.cljs:91 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.components" msgstr "%s komponenty" -#: src/app/main/ui/workspace/libraries.cljs:215 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.file-library" msgstr "Biblioteka plików" -#: src/app/main/ui/workspace/libraries.cljs:77, src/app/main/ui/workspace/libraries.cljs:95 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.graphics" msgstr "%s grafiki" -#: src/app/main/ui/workspace/libraries.cljs:209 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.in-this-file" msgstr "BIBLIOTEKI W TYM PLIKU" -#: src/app/main/ui/workspace/libraries.cljs:526, src/app/main/ui/workspace/libraries.cljs:531 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.libraries" msgstr "BIBLIOTEKI" #: src/app/main/ui/workspace/libraries.cljs -#, unused msgid "workspace.libraries.library" msgstr "BIBLIOTEKA" -#: src/app/main/ui/workspace/libraries.cljs:380 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.no-libraries-need-sync" msgstr "Nie ma Bibliotek Współdzielonych, które wymagają aktualizacji" -#: src/app/main/ui/workspace/libraries.cljs:299 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.no-matches-for" msgstr "Nie znaleziono dopasowań dla “%s“" -#: src/app/main/ui/workspace/libraries.cljs:296 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.no-shared-libraries-available" msgstr "Brak dostępnych Bibliotek Współdzielonych" -#: src/app/main/ui/workspace/libraries.cljs:260 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.search-shared-libraries" msgstr "Przeszukaj Biblioteki Współdzielone" -#: src/app/main/ui/workspace/libraries.cljs:256 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.shared-libraries" msgstr "BIBLIOTEKI WSPÓŁDZIELONE" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:308 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.libraries.text.multiple-typography" msgstr "Wiele typografii" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:311 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.libraries.text.multiple-typography-tooltip" msgstr "Odlinkuj wszystkie typografie" -#: src/app/main/ui/workspace/libraries.cljs:83, src/app/main/ui/workspace/libraries.cljs:103 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.typography" msgstr "%s typografie" -#: src/app/main/ui/workspace/libraries.cljs:402 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.update" msgstr "Aktualizuj" -#: src/app/main/ui/workspace/libraries.cljs:536 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.updates" msgstr "AKTUALIZACJE" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:737 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.add-interaction" msgstr "Kliknij przycisk +, aby dodać interakcje." -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:86, src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:102 +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs msgid "workspace.options.blur-options.title" msgstr "Rozmycie" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:85 +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs msgid "workspace.options.blur-options.title.group" msgstr "Rozmycie grupowe" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:84 +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs msgid "workspace.options.blur-options.title.multiple" msgstr "Rozmycie zaznaczenia" -#: src/app/main/ui/workspace/sidebar/options/page.cljs:32, src/app/main/ui/workspace/sidebar/options/page.cljs:39 +#: src/app/main/ui/workspace/sidebar/options/page.cljs msgid "workspace.options.canvas-background" msgstr "Tło płótna" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:548 msgid "workspace.options.clip-content" msgstr "Przytnij treść" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:600, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:605 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs msgid "workspace.options.component" msgstr "Komponent" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:163 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints" msgstr "Ograniczenia" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:150 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.bottom" msgstr "Dół" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:141, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:152 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.center" msgstr "Środek" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:229 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.fix-when-scrolling" msgstr "Zatrzymaj podczas przewijania" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:138 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.left" msgstr "Lewo" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:140 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.leftright" msgstr "Lewo i prawo" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:139 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.right" msgstr "Prawo" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:142, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:153 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.scale" msgstr "Skala" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:149 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.top" msgstr "Góra" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:151 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.topbottom" msgstr "Góra i dół" -#: src/app/main/ui/workspace/sidebar/options.cljs:112 +#: src/app/main/ui/workspace/sidebar/options.cljs msgid "workspace.options.design" msgstr "Projektowanie" -#: src/app/main/ui/viewer/inspect/exports.cljs:139 +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs msgid "workspace.options.export" msgstr "Eksport" #: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs -#, unused msgid "workspace.options.export-multiple" msgstr "Eksportuj zaznaczone" -#: src/app/main/ui/viewer/inspect/exports.cljs:195, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:237 +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs msgid "workspace.options.export-object" msgid_plural "workspace.options.export-object" msgstr[0] "Eksportuj 1 element" msgstr[1] "Eksportuj %s elementy" msgstr[2] "Eksportuj %s elementów" -#: src/app/main/ui/viewer/inspect/exports.cljs:178, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:219 +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs msgid "workspace.options.export.suffix" msgstr "Przyrostek" -#: src/app/main/ui/export.cljs:240 +#: 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.exporting-complete" msgstr "Eksportowanie zakończone" -#: src/app/main/ui/export.cljs:172, src/app/main/ui/export.cljs:241, src/app/main/ui/viewer/inspect/exports.cljs:194, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:236 +#: 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.exporting-object" msgstr "Eksportowanie…" -#: src/app/main/ui/export.cljs:239 +#: 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.exporting-object-error" msgstr "Eksport nie powiódł się" -#: src/app/main/ui/export.cljs:242 +#: 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.exporting-object-slow" msgstr "Eksportowanie niespodziewanie powolne" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:49, src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:174 +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs msgid "workspace.options.fill" msgstr "Wypełnij" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:178 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.flows.add-flow-start" msgstr "Dodaj początek flow" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -#, unused msgid "workspace.options.flows.flow-start" msgstr "Początek Flow" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:161 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.flows.flow-starts" msgstr "Początek flow" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:29 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.auto" msgstr "Auto" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:157 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.column" msgstr "Kolumny" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.grid-title" msgstr "Siatka" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:196, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:237 msgid "workspace.options.grid.params.color" msgstr "Kolor" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.params.columns" msgstr "Kolumny" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:259 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.gutter" msgstr "Rowek" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:246 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.height" msgstr "Wysokość" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:270 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.margin" msgstr "Margines" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.params.rows" msgstr "Rzędy" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:216, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:290 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.set-default" msgstr "Ustaw jako domyślne" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.params.size" msgstr "Rozmiar" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.params.type" msgstr "Typ" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:231 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.bottom" msgstr "Dół" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:229 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.center" msgstr "Środek" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:228 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.left" msgstr "Lewo" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:232 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.right" msgstr "Prawo" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:225 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.stretch" msgstr "Rozciągnij" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:227 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.top" msgstr "Góra" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:211, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:288 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.use-default" msgstr "Użyj domyślnych" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:247 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.width" msgstr "Szerokość" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:158 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.row" msgstr "Rzędy" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:156 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.square" msgstr "Kwadrat" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:48 +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs msgid "workspace.options.group-fill" msgstr "Wypełnienie grupy" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:42 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.group-stroke" msgstr "Obrys grupy" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:406 msgid "workspace.options.height" msgstr "Wysokość" -#: src/app/main/ui/workspace/sidebar/options.cljs:161 msgid "workspace.options.inspect" msgstr "Sprawdź" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:468 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-action" msgstr "Akcja" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:41, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:367 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-after-delay" msgstr "Po opóźnieniu" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:614 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-animation" msgstr "Animacja" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:406 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-animation-dissolve" msgstr "Rozpłynięcie" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:405 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-animation-none" msgstr "Brak" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:412 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-animation-push" msgstr "Pchnięcie" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:407 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-animation-slide" msgstr "Poślizg" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:391 msgid "workspace.options.interaction-auto" msgstr "auto" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:604 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-background" msgstr "Dodaj nakładkę tła" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:590 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-close-outside" msgstr "Zamknij po kliknięciu na zewnątrz" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:372 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-close-overlay" msgstr "Zamknij nakładkę" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:56 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-close-overlay-dest" msgstr "Zamknij nakładkę: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:456 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-delay" msgstr "Opóźnienie" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:478 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-destination" msgstr "Miejsce docelowe" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:661 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-duration" msgstr "Czas trwania" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:674 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing" msgstr "Złagodzenie" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:416 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing-ease" msgstr "Złagódź" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:417 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing-ease-in" msgstr "Łagodne wejście" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:419 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing-ease-in-out" msgstr "Łagodne wejście wyjście" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:418 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing-ease-out" msgstr "Łagodne wyjście" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:415 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing-linear" msgstr "Liniowy" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -#, unused msgid "workspace.options.interaction-in" msgstr "Wejście" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:39, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:364 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-mouse-enter" msgstr "Wejście myszy" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:40, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:365 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-mouse-leave" msgstr "Wyjście myszy" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:458, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:459, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:464, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:663, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:665, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:669 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-ms" msgstr "ms" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:369 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-navigate-to" msgstr "Nawiguj do" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:50 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-navigate-to-dest" msgstr "Nawiguj do: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:51, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:53, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:55, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:380 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-none" msgstr "(nie ustawiono)" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:691 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-offset-effect" msgstr "Efekt przesunięcia" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:35, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:360 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-on-click" msgstr "Na kliknięcie" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:370 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-open-overlay" msgstr "Otwórz nakładkę" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:52 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-open-overlay-dest" msgstr "Otwórz nakładkę: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:59, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:374 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-open-url" msgstr "Otwórz URL" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -#, unused msgid "workspace.options.interaction-out" msgstr "Wyjście" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:403 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-bottom-center" msgstr "Dolny środek" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:401 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-bottom-left" msgstr "Dolne lewo" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:402 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-bottom-right" msgstr "Dolne prawo" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:397 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-center" msgstr "Środek" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:396 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-manual" msgstr "Ręczna" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:400 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-top-center" msgstr "Górny środek" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:398 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-top-left" msgstr "Górne lewo" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:399 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-top-right" msgstr "Górne prawo" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:524 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-position" msgstr "Pozycja" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:494 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-preserve-scroll" msgstr "Zachowaj pozycję przewijania" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:58, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:373 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-prev-screen" msgstr "Poprzedni ekran" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:515 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-relative-to" msgstr "Względny do" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:57, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:379, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:393, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:394 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-self" msgstr "własne" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:371 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-toggle-overlay" msgstr "Przełącz nakładkę" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:54 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-toggle-overlay-dest" msgstr "Przełącz nakładkę: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:445 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-trigger" msgstr "Wyzwalacz" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:503 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-url" msgstr "URL" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:37, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:362 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-while-hovering" msgstr "Przy najechaniu" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:38, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:363 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-while-pressing" msgstr "Przy naciśnięciu" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:724 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interactions" msgstr "Interakcje" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:137 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.color" msgstr "Kolor" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:126 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.color-burn" msgstr "Ściemnianie" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:129 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.color-dodge" msgstr "Rozjaśnienie" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:124 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.darken" msgstr "Ciemniej" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:133 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.difference" msgstr "Różnica" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:134 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.exclusion" msgstr "Wykluczenie" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:132 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.hard-light" msgstr "Ostre światło" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:135 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.hue" msgstr "Barwa" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:127 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.lighten" msgstr "Jaśniej" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:138 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.luminosity" msgstr "Jasność" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:125 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.multiply" msgstr "Mnożenie" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:123 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.normal" msgstr "Normalny" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:130 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.overlay" msgstr "Nakładka" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:136 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.saturation" msgstr "Nasycenie" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:128 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.screen" msgstr "Ekran" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:131 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.soft-light" msgstr "Łagodne światło" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -#, unused msgid "workspace.options.layer-options.title" msgstr "Warstwa" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -#, unused msgid "workspace.options.layer-options.title.group" msgstr "Zgrupowane warstwy" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -#, unused msgid "workspace.options.layer-options.title.multiple" msgstr "Wybrane warstwy" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout-item.advanced-ops" msgstr "Zaawansowane opcje" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:564 +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs msgid "workspace.options.layout-item.layout-item-max-h" msgstr "Maks.Wysokość" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:531 +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs msgid "workspace.options.layout-item.layout-item-max-w" msgstr "Maks.Szerokość" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:548 +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs msgid "workspace.options.layout-item.layout-item-min-h" msgstr "Min.Wysokość" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:515 +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs msgid "workspace.options.layout-item.layout-item-min-w" msgstr "Min.Szerokość" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout-item.title.layout-item-max-h" msgstr "Maksymalna wysokość" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout-item.title.layout-item-max-w" msgstr "Maksymalna szerokość" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout-item.title.layout-item-min-h" msgstr "Minimalna wysokość" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout-item.title.layout-item-min-w" msgstr "Minimalna szerokość" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.bottom" msgstr "Dół" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.direction.column" msgstr "Kolumna" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.direction.row" msgstr "Wiersz" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.gap" msgstr "Przerwa" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.left" msgstr "Lewo" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout.margin" msgstr "Margines" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout.margin-all" msgstr "Wszystkie strony" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout.margin-simple" msgstr "Prosty margines" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.packed" msgstr "zapakowane" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.padding" msgstr "Dopełnienie" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.padding-all" msgstr "Wszystkie strony" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.padding-simple" msgstr "Proste dopełnienie" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.right" msgstr "Prawa" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.space-around" msgstr "przestrzeń wokół" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.space-between" msgstr "przestrzeń pomiędzy" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.top" msgstr "Góra" -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:146 +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs msgid "workspace.options.more-colors" msgstr "Więcej kolorów" -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:123 +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs msgid "workspace.options.more-lib-colors" msgstr "Więcej kolorów z biblioteki" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:161 msgid "workspace.options.opacity" msgstr "Nieprzezroczystość" #: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -#, unused msgid "workspace.options.position" msgstr "Pozycja" -#: src/app/main/ui/workspace/sidebar/options.cljs:157 +#: src/app/main/ui/workspace/sidebar/options.cljs msgid "workspace.options.prototype" msgstr "Prototyp" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:469, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:481 msgid "workspace.options.radius" msgstr "Promień" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:513 +#: 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:522 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.radius-bottom-right" msgstr "Dolne prawo" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:495 +#: 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:504 +#: 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:532 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.radius.all-corners" msgstr "Wszystkie rogi" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:533 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.radius.single-corners" msgstr "Poszczególne narożniki" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:183 msgid "workspace.options.recent-fonts" msgstr "Bieżące" -#: src/app/main/ui/export.cljs:284 +#: 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 "Ponów" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:451 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.rotation" msgstr "Obrót" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:180 msgid "workspace.options.search-font" msgstr "Szukaj fontu" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:741 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.select-a-shape" msgstr "" "Wybierz kształt, obszar roboczy lub grupę, aby przeciągnąć połączenie do " "innego obszaru kompozycji." -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:105 +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs msgid "workspace.options.selection-color" msgstr "Wybrane kolory" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:47 +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs msgid "workspace.options.selection-fill" msgstr "Wypełnienie zaznaczenia" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:41 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.selection-stroke" msgstr "Obrys zaznaczenia" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:40, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:198, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:200 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.blur" msgstr "Rozmycie" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:238 msgid "workspace.options.shadow-options.color" msgstr "Kolor cienia" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:144 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.drop-shadow" msgstr "Rzuć cień" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:145 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.inner-shadow" msgstr "Cień wewnętrzny" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:38, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:186 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.offsetx" msgstr "X" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:39, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:224 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.offsety" msgstr "Y" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:41, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:211, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:213 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.spread" msgstr "Rozłożenie" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:296 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.title" msgstr "Cień" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:295 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.title.group" msgstr "Cień grupy" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:294 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.title.multiple" msgstr "Cień zaznaczenia" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:193 +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs msgid "workspace.options.show-fill-on-export" msgstr "Pokaż przy eksporcie" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:562 msgid "workspace.options.show-in-viewer" msgstr "Pokaż w trybie przeglądania" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:162 +#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.size" msgstr "Rozmiar" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:355 +#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs msgid "workspace.options.size-presets" msgstr "Wstępne ustawienia rozmiaru" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:43 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke" msgstr "Obrys" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -#, unused msgid "workspace.options.stroke-cap.circle-marker" msgstr "Okrągły znacznik" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -#, unused msgid "workspace.options.stroke-cap.diamond-marker" msgstr "Diamentowy znacznik" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -#, unused msgid "workspace.options.stroke-cap.line-arrow" msgstr "Grot linii" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:124 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.none" msgstr "Brak" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:132 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.round" msgstr "Okrągły" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:133 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.square" msgstr "Kwadratowy" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -#, unused msgid "workspace.options.stroke-cap.square-marker" msgstr "Kwadratowy znacznik" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -#, unused msgid "workspace.options.stroke-cap.triangle-arrow" msgstr "Trójkątny grot" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:192 msgid "workspace.options.stroke-color" msgstr "Kolor obrysu" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:165 msgid "workspace.options.stroke-width" msgstr "Szerokość obrysu" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:87 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.center" msgstr "Środek" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:105 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.dashed" msgstr "Przerywany" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:104 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.dotted" msgstr "Kropkowany" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:88 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.inner" msgstr "W środku" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:106 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.mixed" msgstr "Mieszany" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:89 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.outer" msgstr "Na zewnątrz" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:103 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.solid" msgstr "Ciągły" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:115 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.align-bottom" msgstr "Wyrównaj do dołu" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:111 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.align-middle" msgstr "Wyrównaj do środka" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:107 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.align-top" msgstr "Wyrównaj do góry" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:82 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.direction-ltr" msgstr "LTR" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:87 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.direction-rtl" msgstr "RTL" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:149 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.grow-auto-height" msgstr "Automatyczna wysokość" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:145 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.grow-auto-width" msgstr "Automatyczna szerokość" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:141 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.grow-fixed" msgstr "Stały" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:381 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.options.text-options.letter-spacing" msgstr "Odstępy między literami" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:364 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.options.text-options.line-height" msgstr "Wysokość linii" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused msgid "workspace.options.text-options.lowercase" msgstr "małe litery" #: src/app/main/ui/workspace/sidebar/options/menus/text.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused msgid "workspace.options.text-options.none" msgstr "Brak" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:176 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.strikethrough" msgstr "Przekreślenie (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:51 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.text-align-center" msgstr "Wyrównaj do środka (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:59 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.text-align-justify" msgstr "Wyjustuj (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:47 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.text-align-left" msgstr "Wyrównaj do lewej (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:55 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.text-align-right" msgstr "Wyrównaj do prawej (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:189 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.title" msgstr "Tekst" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:188 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.title-group" msgstr "Grupa tekstu" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:187 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.title-selection" msgstr "Tekst zaznaczony" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused msgid "workspace.options.text-options.titlecase" msgstr "Nazwy własne" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:171 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.underline" msgstr "Podkreślenie (%s)" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused msgid "workspace.options.text-options.uppercase" msgstr "DUŻE LITERY" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:745 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.use-play-button" msgstr "Użyj przycisku odtwarzania w nagłówku, aby uruchomić widok prototypu." -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:395 msgid "workspace.options.width" msgstr "Szerokość" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:427 msgid "workspace.options.x" msgstr "Oś X" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:438 msgid "workspace.options.y" msgstr "Oś Y" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:167 msgid "workspace.path.actions.add-node" msgstr "Dodaj węzeł (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:174 msgid "workspace.path.actions.delete-node" msgstr "Usuń węzeł (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:152 msgid "workspace.path.actions.draw-nodes" msgstr "Rysuj węzły (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:189 msgid "workspace.path.actions.join-nodes" msgstr "Połącz węzły (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:204 msgid "workspace.path.actions.make-corner" msgstr "Do rogu (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:211 msgid "workspace.path.actions.make-curve" msgstr "Do krzywej (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:182 msgid "workspace.path.actions.merge-nodes" msgstr "Połącz węzły (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:159 msgid "workspace.path.actions.move-nodes" msgstr "Przenieś węzły (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:196 msgid "workspace.path.actions.separate-nodes" msgstr "Rozłącz węzły (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:218 msgid "workspace.path.actions.snap-nodes" msgstr "Przyciągnij węzły (%s)" -#: src/app/main/ui/workspace/context_menu.cljs:441 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.add-flex" msgstr "Dodaj układ flex" -#: src/app/main/ui/workspace/context_menu.cljs:193 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.back" msgstr "Przesuń na spód" -#: src/app/main/ui/workspace/context_menu.cljs:190 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.backward" msgstr "Przesuń do tyłu" -#: src/app/main/ui/workspace/context_menu.cljs:139 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.copy" msgstr "Kopiuj" -#: src/app/main/ui/workspace/context_menu.cljs:275 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.create-artboard-from-selection" msgstr "Zaznaczone do obszaru kompozycji" -#: src/app/main/ui/workspace/context_menu.cljs:465 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.create-component" msgstr "Utwórz komponent" -#: src/app/main/ui/workspace/context_menu.cljs:142 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.cut" msgstr "Wytnij" -#: src/app/main/ui/workspace/context_menu.cljs:486 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.delete" msgstr "Usuń" -#: src/app/main/ui/workspace/context_menu.cljs:391 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.delete-flow-start" msgstr "Usuń początek flow" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:432 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.detach-instance" msgstr "Odłącz instancję" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:431 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.detach-instances-in-bulk" msgstr "Odłącz instancje" -#: src/app/main/ui/workspace/context_menu.cljs:335, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:75 msgid "workspace.shape.menu.difference" msgstr "Różnica" -#: src/app/main/ui/workspace/context_menu.cljs:148 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.duplicate" msgstr "Duplikuj" -#: src/app/main/ui/workspace/context_menu.cljs:321 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.edit" msgstr "Edytuj" -#: src/app/main/ui/workspace/context_menu.cljs:341 msgid "workspace.shape.menu.exclude" msgstr "Wyklucz" -#: src/app/main/ui/workspace/context_menu.cljs:348, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:89 msgid "workspace.shape.menu.flatten" msgstr "Spłaszcz" -#: src/app/main/ui/workspace/context_menu.cljs:208 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.flip-horizontal" msgstr "Odwróć w poziomie" -#: src/app/main/ui/workspace/context_menu.cljs:204 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.flip-vertical" msgstr "Odwróć w pionie" -#: src/app/main/ui/workspace/context_menu.cljs:394 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.flow-start" msgstr "Początek flow" -#: src/app/main/ui/workspace/context_menu.cljs:184 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.forward" msgstr "Przesuń do góry" -#: src/app/main/ui/workspace/context_menu.cljs:187 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.front" msgstr "Przesuń na wierzch" #: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs -#, unused msgid "workspace.shape.menu.go-main" msgstr "Przejdź do głównego pliku komponentu" -#: src/app/main/ui/workspace/context_menu.cljs:261 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.group" msgstr "Grupuj" -#: src/app/main/ui/workspace/context_menu.cljs:363, src/app/main/ui/workspace/sidebar/layer_item.cljs:145 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.hide" msgstr "Ukryj" -#: src/app/main/ui/workspace/context_menu.cljs:548, src/app/main/ui/workspace/main_menu.cljs:408 msgid "workspace.shape.menu.hide-ui" msgstr "Pokaż/Ukryj UI" -#: src/app/main/ui/workspace/context_menu.cljs:338 msgid "workspace.shape.menu.intersection" msgstr "Przecięcie" -#: src/app/main/ui/workspace/context_menu.cljs:371, src/app/main/ui/workspace/sidebar/layer_item.cljs:153 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.lock" msgstr "Zablokuj" -#: src/app/main/ui/workspace/context_menu.cljs:266 +#: src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.mask" msgstr "Maskuj" -#: src/app/main/ui/workspace/context_menu.cljs:145, src/app/main/ui/workspace/context_menu.cljs:545 +#: src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.paste" msgstr "Wklej" -#: src/app/main/ui/workspace/context_menu.cljs:331 msgid "workspace.shape.menu.path" msgstr "Ścieżka" -#: src/app/main/ui/workspace/context_menu.cljs:432 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.remove-flex" msgstr "Usuń układ flex" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:436 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.reset-overrides" msgstr "Zresetuj nadpisania" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:439 msgid "workspace.shape.menu.restore-main" msgstr "Przywróć główny komponent" -#: src/app/main/ui/workspace/context_menu.cljs:174 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.select-layer" msgstr "Zaznacz warstwę" -#: src/app/main/ui/workspace/context_menu.cljs:360, src/app/main/ui/workspace/sidebar/layer_item.cljs:144 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.show" msgstr "Pokaż" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:424 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.show-in-assets" msgstr "Pokaż w panelu zasobów" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:442, src/app/main/ui/workspace/sidebar/assets/components.cljs:586 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.show-main" msgstr "Pokaż główny komponent" -#: src/app/main/ui/workspace/context_menu.cljs:221 msgid "workspace.shape.menu.thumbnail-remove" msgstr "Usuń miniaturę" -#: src/app/main/ui/workspace/context_menu.cljs:223 msgid "workspace.shape.menu.thumbnail-set" msgstr "Ustaw jako miniaturę" -#: src/app/main/ui/workspace/context_menu.cljs:326 msgid "workspace.shape.menu.transform-to-path" msgstr "Przekształć w ścieżkę" -#: src/app/main/ui/workspace/context_menu.cljs:257 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.ungroup" msgstr "Rozgrupuj" -#: src/app/main/ui/workspace/context_menu.cljs:332, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:70 msgid "workspace.shape.menu.union" msgstr "Złącz" -#: src/app/main/ui/workspace/context_menu.cljs:368, src/app/main/ui/workspace/sidebar/layer_item.cljs:152 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.unlock" msgstr "Odblokuj" -#: src/app/main/ui/workspace/context_menu.cljs:271 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.unmask" msgstr "Odmaskuj" #: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs -#, unused msgid "workspace.shape.menu.update-components-in-bulk" msgstr "Aktualizuj główne komponenty" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:445 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.update-main" msgstr "Aktualizuj główny komponent" -#: src/app/main/ui/components/tab_container.cljs:50 msgid "workspace.sidebar.collapse" msgstr "Zwiń pasek boczny" -#: src/app/main/ui/workspace/sidebar/collapsable_button.cljs:26 msgid "workspace.sidebar.expand" msgstr "Rozwiń pasek boczny" -#: src/app/main/ui/workspace/right_header.cljs:231, src/app/main/ui/workspace/right_header.cljs:232 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.sidebar.history" msgstr "Historia (%s)" -#: src/app/main/ui/workspace/sidebar/layers.cljs:522, src/app/main/ui/workspace/sidebar.cljs:100 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.sidebar.layers" msgstr "Warstwy" -#: src/app/main/ui/workspace/sidebar/layers.cljs:308, src/app/main/ui/workspace/sidebar/layers.cljs:380 msgid "workspace.sidebar.layers.components" msgstr "Komponenty" -#: src/app/main/ui/workspace/sidebar/layers.cljs:305, src/app/main/ui/workspace/sidebar/layers.cljs:338 msgid "workspace.sidebar.layers.frames" msgstr "Obszary kompozycji" -#: src/app/main/ui/workspace/sidebar/layers.cljs:306, src/app/main/ui/workspace/sidebar/layers.cljs:352 msgid "workspace.sidebar.layers.groups" msgstr "Grupy" -#: src/app/main/ui/workspace/sidebar/layers.cljs:310, src/app/main/ui/workspace/sidebar/layers.cljs:408 msgid "workspace.sidebar.layers.images" msgstr "Obrazy" -#: src/app/main/ui/workspace/sidebar/layers.cljs:307, src/app/main/ui/workspace/sidebar/layers.cljs:366 msgid "workspace.sidebar.layers.masks" msgstr "Maski" -#: src/app/main/ui/workspace/sidebar/layers.cljs:289 msgid "workspace.sidebar.layers.search" msgstr "Przeszukaj warstwy" -#: src/app/main/ui/workspace/sidebar/layers.cljs:311, src/app/main/ui/workspace/sidebar/layers.cljs:422 msgid "workspace.sidebar.layers.shapes" msgstr "Kształty" -#: src/app/main/ui/workspace/sidebar/layers.cljs:309, src/app/main/ui/workspace/sidebar/layers.cljs:394 msgid "workspace.sidebar.layers.texts" msgstr "Teksty" -#: src/app/main/ui/viewer/inspect/attributes/svg.cljs:56, src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs:91 +#: src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs, src/app/main/ui/inspect/attributes/svg.cljs msgid "workspace.sidebar.options.svg-attrs.title" msgstr "Importowane atrybuty SVG" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs:217 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs msgid "workspace.sidebar.sitemap" msgstr "Strony" -#: src/app/main/ui/workspace/left_header.cljs:91 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.sitemap" msgstr "Mapa strony" -#: src/app/main/ui/workspace/sidebar.cljs:120 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.assets" msgstr "Zasoby" -#: src/app/main/ui/workspace/palette.cljs:165, src/app/main/ui/workspace/palette.cljs:166 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.color-palette" msgstr "Palety kolorów (%s)" -#: src/app/main/ui/workspace/right_header.cljs:220, src/app/main/ui/workspace/right_header.cljs:221 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.comments" msgstr "Komentarze (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:180, src/app/main/ui/workspace/top_toolbar.cljs:181 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.curve" msgstr "Krzywa (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:160, src/app/main/ui/workspace/top_toolbar.cljs:161 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.ellipse" msgstr "Elipsa (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:142, src/app/main/ui/workspace/top_toolbar.cljs:143 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.frame" msgstr "Obszar kompozycji (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:59, src/app/main/ui/workspace/top_toolbar.cljs:60 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.image" msgstr "Obraz (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:132, src/app/main/ui/workspace/top_toolbar.cljs:133 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.move" msgstr "Przenieś (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:189, src/app/main/ui/workspace/top_toolbar.cljs:190 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.path" msgstr "Ścieżka (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:151, src/app/main/ui/workspace/top_toolbar.cljs:152 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.rect" msgstr "Prostokąt (%s)" #: src/app/main/ui/workspace/left_toolbar.cljs -#, unused msgid "workspace.toolbar.shortcuts" msgstr "Skróty (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:169, src/app/main/ui/workspace/top_toolbar.cljs:170 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.text" msgstr "Tekst (%s)" -#: src/app/main/ui/workspace/palette.cljs:173, src/app/main/ui/workspace/palette.cljs:174 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.text-palette" msgstr "Typografie (%s)" -#: src/app/main/ui/workspace/sidebar/history.cljs:342 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.empty" msgstr "Jak dotąd nie ma zmian w historii" -#: src/app/main/ui/workspace/sidebar/history.cljs:147 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.entry.delete" msgstr "Usunięto (%s)" -#: src/app/main/ui/workspace/sidebar/history.cljs:146 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.entry.modify" msgstr "Zmodyfikowano (%s)" -#: src/app/main/ui/workspace/sidebar/history.cljs:148 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.entry.move" msgstr "Przesunięte obiekty" -#: src/app/main/ui/workspace/sidebar/history.cljs:111 msgid "workspace.undo.entry.multiple.circle" msgstr "koła" -#: src/app/main/ui/workspace/sidebar/history.cljs:112 msgid "workspace.undo.entry.multiple.color" msgstr "zasoby kolorów" -#: src/app/main/ui/workspace/sidebar/history.cljs:113 msgid "workspace.undo.entry.multiple.component" msgstr "komponenty" -#: src/app/main/ui/workspace/sidebar/history.cljs:114 msgid "workspace.undo.entry.multiple.curve" msgstr "krzywe" -#: src/app/main/ui/workspace/sidebar/history.cljs:115 msgid "workspace.undo.entry.multiple.frame" msgstr "obszar kompozycji" -#: src/app/main/ui/workspace/sidebar/history.cljs:116 msgid "workspace.undo.entry.multiple.group" msgstr "grupy" -#: src/app/main/ui/workspace/sidebar/history.cljs:117 msgid "workspace.undo.entry.multiple.media" msgstr "zasoby graficzne" -#: src/app/main/ui/workspace/sidebar/history.cljs:118 msgid "workspace.undo.entry.multiple.multiple" msgstr "obiekty" -#: src/app/main/ui/workspace/sidebar/history.cljs:119 msgid "workspace.undo.entry.multiple.page" msgstr "strony" -#: src/app/main/ui/workspace/sidebar/history.cljs:120 msgid "workspace.undo.entry.multiple.path" msgstr "ścieżki" -#: src/app/main/ui/workspace/sidebar/history.cljs:121 msgid "workspace.undo.entry.multiple.rect" msgstr "prostokąty" -#: src/app/main/ui/workspace/sidebar/history.cljs:122 msgid "workspace.undo.entry.multiple.shape" msgstr "kształty" -#: src/app/main/ui/workspace/sidebar/history.cljs:123 msgid "workspace.undo.entry.multiple.text" msgstr "teksty" -#: src/app/main/ui/workspace/sidebar/history.cljs:124 msgid "workspace.undo.entry.multiple.typography" msgstr "zasoby typograficzne" -#: src/app/main/ui/workspace/sidebar/history.cljs:145 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.entry.new" msgstr "Nowy %s" -#: src/app/main/ui/workspace/sidebar/history.cljs:125 msgid "workspace.undo.entry.single.circle" msgstr "koło" -#: src/app/main/ui/workspace/sidebar/history.cljs:126 msgid "workspace.undo.entry.single.color" msgstr "zasób koloru" -#: src/app/main/ui/workspace/sidebar/history.cljs:127 msgid "workspace.undo.entry.single.component" msgstr "komponent" -#: src/app/main/ui/workspace/sidebar/history.cljs:128 msgid "workspace.undo.entry.single.curve" msgstr "krzywa" -#: src/app/main/ui/workspace/sidebar/history.cljs:129 msgid "workspace.undo.entry.single.frame" msgstr "obszar kompozycji" -#: src/app/main/ui/workspace/sidebar/history.cljs:130 msgid "workspace.undo.entry.single.group" msgstr "grupa" -#: src/app/main/ui/workspace/sidebar/history.cljs:131 msgid "workspace.undo.entry.single.image" msgstr "obraz" -#: src/app/main/ui/workspace/sidebar/history.cljs:132 msgid "workspace.undo.entry.single.media" msgstr "zasób graficzny" -#: src/app/main/ui/workspace/sidebar/history.cljs:133 msgid "workspace.undo.entry.single.multiple" msgstr "obiekt" -#: src/app/main/ui/workspace/sidebar/history.cljs:134 msgid "workspace.undo.entry.single.page" msgstr "strona" -#: src/app/main/ui/workspace/sidebar/history.cljs:135 msgid "workspace.undo.entry.single.path" msgstr "ścieżka" -#: src/app/main/ui/workspace/sidebar/history.cljs:136 msgid "workspace.undo.entry.single.rect" msgstr "prostokąt" -#: src/app/main/ui/workspace/sidebar/history.cljs:137 msgid "workspace.undo.entry.single.shape" msgstr "kształt" -#: src/app/main/ui/workspace/sidebar/history.cljs:138 msgid "workspace.undo.entry.single.text" msgstr "tekst" -#: src/app/main/ui/workspace/sidebar/history.cljs:139 msgid "workspace.undo.entry.single.typography" msgstr "zasób typograficzny" -#: src/app/main/ui/workspace/sidebar/history.cljs:149 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.entry.unknown" msgstr "Operacja ponad %s" -#: src/app/main/ui/workspace/sidebar/history.cljs:335 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.title" msgstr "Historia" -#: src/app/main/data/workspace/libraries.cljs:1094 +#: src/app/main/data/workspace/libraries.cljs msgid "workspace.updates.dismiss" msgstr "Odrzuć" -#: src/app/main/data/workspace/libraries.cljs:1090 +#: src/app/main/data/workspace/libraries.cljs msgid "workspace.updates.there-are-updates" msgstr "W bibliotekach współdzielonych są aktualizacje" -#: src/app/main/data/workspace/libraries.cljs:1097 +#: src/app/main/data/workspace/libraries.cljs msgid "workspace.updates.update" msgstr "Aktualizuj" -#, unused msgid "workspace.viewport.click-to-close-path" msgstr "Kliknij, aby zamknąć ścieżkę" diff --git a/frontend/translations/pt_BR.po b/frontend/translations/pt_BR.po index 94fa1e85bd..e61276ac65 100644 --- a/frontend/translations/pt_BR.po +++ b/frontend/translations/pt_BR.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "PO-Revision-Date: 2024-06-17 08:07+0000\n" "Last-Translator: Anonymous \n" -"Language-Team: Portuguese (Brazil) " -"\n" +"Language-Team: Portuguese (Brazil) \n" "Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" @@ -11,309 +11,280 @@ msgstr "" "Plural-Forms: nplurals=2; plural=n > 1;\n" "X-Generator: Weblate 5.6-dev\n" -#: src/app/main/ui/auth/register.cljs:151, src/app/main/ui/viewer/login.cljs:104 +#: src/app/main/ui/auth/register.cljs msgid "auth.already-have-account" msgstr "Já tem uma conta?" -#: src/app/main/ui/auth/register.cljs:299 +#: src/app/main/ui/auth/register.cljs msgid "auth.check-your-email" msgstr "" "Verifique seu e-mail e clique no link de verificação para começar a usar o " "Penpot." -#: src/app/main/ui/auth/recovery.cljs:78 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.confirm-password" msgstr "Confirmar senha" -#: src/app/main/ui/auth/register.cljs:163 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.create-demo-account" msgstr "Criar conta de demonstração" #: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs -#, unused msgid "auth.create-demo-profile" msgstr "Quer apenas experimentar?" -#: src/app/main/ui/auth/login.cljs:43 +#: src/app/main/ui/auth/register.cljs msgid "auth.demo-warning" msgstr "" "Este é um serviço DEMONSTRATIVO, NÃO USE para trabalho real, os projetos " "serão apagados periodicamente." -#: src/app/main/ui/auth/login.cljs:189, src/app/main/ui/viewer/login.cljs:90 +#: src/app/main/ui/auth/login.cljs msgid "auth.forgot-password" msgstr "Esqueceu sua senha?" -#: src/app/main/ui/auth/register.cljs:254 +#: src/app/main/ui/auth/register.cljs msgid "auth.fullname" msgstr "Nome completo" -#: src/app/main/ui/auth/register.cljs:155, src/app/main/ui/viewer/login.cljs:107 +#: src/app/main/ui/auth/register.cljs +#, fuzzy msgid "auth.login-here" msgstr "Entrar aqui" -#: src/app/main/ui/auth/login.cljs:195 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-submit" msgstr "Entrar" -#: src/app/main/ui/auth/login.cljs:222 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-github-submit" msgstr "GitHub" -#: src/app/main/ui/auth/login.cljs:228 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-gitlab-submit" msgstr "GitLab" -#: src/app/main/ui/auth/login.cljs:216 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-google-submit" msgstr "Google" -#: src/app/main/ui/auth/login.cljs:201 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-ldap-submit" msgstr "LDAP" -#: src/app/main/ui/auth/login.cljs:234, src/app/main/ui/auth/login.cljs:255 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-oidc-submit" msgstr "OpenID" -#: src/app/main/ui/auth/recovery.cljs:71 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.new-password" msgstr "Digite uma nova senha" -#: src/app/main/ui/auth/recovery.cljs:42 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.notifications.invalid-token-error" msgstr "O código de recuperação é inválido." -#: src/app/main/ui/auth/recovery.cljs:46 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.notifications.password-changed-successfully" msgstr "Senha alterada com sucesso" -#: src/app/main/ui/auth/recovery_request.cljs:57 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.notifications.profile-not-verified" msgstr "Perfil não verificado. Por favor, verifique o perfil antes de continuar." -#: src/app/main/ui/auth/recovery_request.cljs:40 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.notifications.recovery-token-sent" msgstr "Link de recuperação de senha foi enviado para sua caixa de entrada." -#: src/app/main/ui/auth/verify_token.cljs:47 +#: src/app/main/ui/auth/verify_token.cljs msgid "auth.notifications.team-invitation-accepted" msgstr "Entrou para a equipe com sucesso" -#: src/app/main/ui/auth/login.cljs:179, src/app/main/ui/auth/register.cljs:115 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.password" msgstr "Senha" -#: src/app/main/ui/auth/register.cljs:114 +#: src/app/main/ui/auth/register.cljs msgid "auth.password-length-hint" msgstr "Pelo menos 8 caracteres" -#: src/app/main/ui/auth.cljs:41 msgid "auth.privacy-policy" msgstr "Política de privacidade" -#: src/app/main/ui/auth/recovery_request.cljs:88 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-submit" msgstr "Recuperar senha" -#: src/app/main/ui/auth/recovery_request.cljs:101 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-subtitle" msgstr "Enviaremos para você um e-mail com instruções" -#: src/app/main/ui/auth/recovery_request.cljs:100 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-title" msgstr "Esqueceu sua senha?" -#: src/app/main/ui/auth/recovery.cljs:82 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.recovery-submit" msgstr "Mudar a sua senha" -#: src/app/main/ui/auth/login.cljs:298, src/app/main/ui/viewer/login.cljs:93 +#: src/app/main/ui/auth/login.cljs msgid "auth.register" msgstr "Ainda não tem uma conta?" -#: src/app/main/ui/auth/login.cljs:302, src/app/main/ui/auth/register.cljs:121, src/app/main/ui/auth/register.cljs:263, src/app/main/ui/viewer/login.cljs:97 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.register-submit" msgstr "Criar uma conta" -#: src/app/main/ui/auth/register.cljs:140 +#: src/app/main/ui/auth/register.cljs msgid "auth.register-title" msgstr "Criar uma conta" #: src/app/main/ui/auth.cljs -#, unused msgid "auth.sidebar-tagline" msgstr "A solução de código aberto para design e prototipação." -#: src/app/main/ui/auth.cljs:33, src/app/main/ui/dashboard/sidebar.cljs:1022, src/app/main/ui/workspace/main_menu.cljs:150 msgid "auth.terms-of-service" msgstr "Termos de serviço" -#: src/app/main/ui/auth/register.cljs:297 +#: src/app/main/ui/auth/register.cljs msgid "auth.verification-email-sent" msgstr "Enviamos um e-mail de verificação para" -#: src/app/main/ui/workspace/libraries.cljs:228 msgid "common.publish" msgstr "Publicar" -#: src/app/main/ui/viewer/share_link.cljs:304, src/app/main/ui/viewer/share_link.cljs:314 msgid "common.share-link.all-users" msgstr "Todos os usuários do Penpot" -#: src/app/main/ui/viewer/share_link.cljs:198 msgid "common.share-link.confirm-deletion-link-description" msgstr "" "Tem certeza de que deseja remover este link? Se você fizer isso, ele não " "estará mais disponível para ninguém" -#: src/app/main/ui/viewer/share_link.cljs:259, src/app/main/ui/viewer/share_link.cljs:289 msgid "common.share-link.current-tag" msgstr "(atual)" -#: src/app/main/ui/viewer/share_link.cljs:207, src/app/main/ui/viewer/share_link.cljs:214 msgid "common.share-link.destroy-link" msgstr "Destruir link" -#: src/app/main/ui/viewer/share_link.cljs:221 msgid "common.share-link.get-link" msgstr "Obter link" -#: src/app/main/ui/viewer/share_link.cljs:139 msgid "common.share-link.link-copied-success" msgstr "Link copiado com sucesso" -#: src/app/main/ui/viewer/share_link.cljs:231 msgid "common.share-link.manage-ops" msgstr "Gerenciar Permissões" -#: src/app/main/ui/viewer/share_link.cljs:277 msgid "common.share-link.page-shared" msgid_plural "common.share-link.page-shared" msgstr[0] "1 página compartilhada" msgstr[1] "%s páginas compartilhadas" -#: src/app/main/ui/viewer/share_link.cljs:298 msgid "common.share-link.permissions-can-comment" msgstr "Pode comentar" -#: src/app/main/ui/viewer/share_link.cljs:308 msgid "common.share-link.permissions-can-inspect" msgstr "Pode inspecionar o código" -#: src/app/main/ui/viewer/share_link.cljs:193 msgid "common.share-link.permissions-hint" msgstr "Qualquer pessoa com o link terá acesso" -#: src/app/main/ui/viewer/share_link.cljs:241 msgid "common.share-link.permissions-pages" msgstr "Páginas compartilhadas" -#: src/app/main/ui/viewer/share_link.cljs:183 msgid "common.share-link.placeholder" msgstr "O link compartilhável aparecerá aqui" -#: src/app/main/ui/viewer/share_link.cljs:303, src/app/main/ui/viewer/share_link.cljs:313 msgid "common.share-link.team-members" msgstr "Apenas membros da equipe" -#: src/app/main/ui/viewer/share_link.cljs:171 msgid "common.share-link.title" msgstr "Compartilhar protótipos" -#: src/app/main/ui/viewer/share_link.cljs:269 msgid "common.share-link.view-all" msgstr "Selecionar todos" -#: src/app/main/ui/workspace/libraries.cljs:224 msgid "common.unpublish" msgstr "Cancelar publicação" -#: src/app/main/ui/dashboard/projects.cljs:85 +#: src/app/main/ui/dashboard/projects.cljs msgid "dasboard.team-hero.management" msgstr "Gerenciamento de equipe" -#: src/app/main/ui/dashboard/projects.cljs:84 +#: src/app/main/ui/dashboard/projects.cljs msgid "dasboard.team-hero.text" msgstr "" "O Penpot é destinado a equipes. Convide pessoas para trabalhar junto com " "você em projetos e arquivos" -#: src/app/main/ui/dashboard/projects.cljs:82 +#: src/app/main/ui/dashboard/projects.cljs msgid "dasboard.team-hero.title" msgstr "Junte o time!" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.tutorial-hero.info" msgstr "Aprenda o básico no Penpot enquanto se diverte com este tutorial prático." #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.tutorial-hero.start" msgstr "Começar o tutorial" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.tutorial-hero.title" msgstr "Tutorial prático" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.walkthrough-hero.info" msgstr "Faça um tour pelo Penpot e conheça suas principais características." #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.walkthrough-hero.start" msgstr "Começar tour" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.walkthrough-hero.title" msgstr "Passo a passo da interface" -#: src/app/main/ui/dashboard/file_menu.cljs:291, src/app/main/ui/workspace/main_menu.cljs:572 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.add-shared" msgstr "Adicionar a biblioteca compartilhada" -#: src/app/main/ui/settings/profile.cljs:75 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.change-email" msgstr "Alterar e-mail" -#: src/app/main/data/dashboard.cljs:762, src/app/main/data/dashboard.cljs:983 +#: src/app/main/data/dashboard.cljs, src/app/main/data/dashboard.cljs msgid "dashboard.copy-suffix" msgstr "(copiar)" -#: src/app/main/ui/dashboard/sidebar.cljs:338 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.create-new-team" msgstr "Criar nova equipe" -#: src/app/main/ui/components/context_menu_a11y.cljs:256, src/app/main/ui/dashboard/sidebar.cljs:646 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.default-team-name" msgstr "Seu Penpot" -#: src/app/main/ui/dashboard/sidebar.cljs:571 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.delete-team" msgstr "Deletar equipe" -#: src/app/main/ui/dashboard/file_menu.cljs:296, src/app/main/ui/workspace/main_menu.cljs:589 msgid "dashboard.download-binary-file" msgstr "Baixar arquivo Penpot (.penpot)" -#: src/app/main/ui/dashboard/file_menu.cljs:300, src/app/main/ui/workspace/main_menu.cljs:597 msgid "dashboard.download-standard-file" msgstr "Baixar arquivo padrão (.svg + .json)" -#: src/app/main/ui/dashboard/file_menu.cljs:276, src/app/main/ui/dashboard/project_menu.cljs:90 +#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.duplicate" msgstr "Duplicar" -#: src/app/main/ui/dashboard/file_menu.cljs:240 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.duplicate-multi" msgstr "Duplicar %s arquivos" -#: src/app/main/ui/dashboard/placeholder.cljs:32 +#: src/app/main/ui/dashboard/grid.cljs #, markdown msgid "dashboard.empty-placeholder-drafts" msgstr "" @@ -321,117 +292,101 @@ msgstr "" "compartilhar seus arquivos ou adicione das nossas [Bibliotecas & " "modelos](https://penpot.app/libraries-templates)." -#: src/app/main/ui/dashboard/file_menu.cljs:249 msgid "dashboard.export-binary-multi" msgstr "Baixar %s arquivos Penpot (.penpot)" -#: src/app/main/ui/workspace/main_menu.cljs:605 msgid "dashboard.export-frames" msgstr "Exportar boards em PDF" -#: src/app/main/ui/export.cljs:201 +#: src/app/main/ui/export.cljs msgid "dashboard.export-frames.title" msgstr "Exportar como arquivo PDF" -#, unused msgid "dashboard.export-multi" msgstr "Exportar %s arquivos" -#: src/app/main/ui/export.cljs:109 +#: src/app/main/ui/export.cljs msgid "dashboard.export-multiple.selected" msgstr "%s de %s elementos selecionados" -#: src/app/main/ui/workspace/main_menu.cljs:578 +#: src/app/main/ui/workspace/header.cljs msgid "dashboard.export-shapes" msgstr "Exportar" -#: src/app/main/ui/export.cljs:180 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.how-to" msgstr "" "Você pode adicionar configurações de exportação em elementos nas " "propriedades de design (na parte inferior da barra lateral direita)." -#: src/app/main/ui/export.cljs:184 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.how-to-link" msgstr "Informações sobre como configurar exportações no Penpot." -#: src/app/main/ui/export.cljs:179 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.no-elements" msgstr "Não há elementos com configurações de exportação." -#: src/app/main/ui/export.cljs:190 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.title" msgstr "Exportar seleção" -#: src/app/main/ui/dashboard/file_menu.cljs:252 msgid "dashboard.export-standard-multi" msgstr "Baixar %s arquivos padrões (.svg + .json)" -#: src/app/main/ui/export.cljs:427 msgid "dashboard.export.detail" msgstr "* Pode incluir componentes, gráficos, cores e/ou tipografias." -#: src/app/main/ui/export.cljs:426 msgid "dashboard.export.explain" msgstr "" "Um ou mais arquivos que você deseja exportar estão usando bibliotecas " "compartilhadas. O que você quer fazer com seus recursos*?" -#: src/app/main/ui/export.cljs:435 msgid "dashboard.export.options.all.message" msgstr "" "arquivos com bibliotecas compartilhadas serão incluídos na exportação, " "mantendo seu vínculo." -#: src/app/main/ui/export.cljs:436 msgid "dashboard.export.options.all.title" msgstr "Exportar bibliotecas compartilhadas" -#: src/app/main/ui/export.cljs:437 msgid "dashboard.export.options.detach.message" msgstr "" "Bibliotecas compartilhadas não serão incluídas na exportação e nenhum ativo " "será adicionado a biblioteca. " -#: src/app/main/ui/export.cljs:438 msgid "dashboard.export.options.detach.title" msgstr "Trate os ativos da biblioteca compartilhada como objetos básicos" -#: src/app/main/ui/export.cljs:439 msgid "dashboard.export.options.merge.message" msgstr "" "Seu arquivo será exportado com todos os ativos externos mesclados na " "biblioteca de ativos do arquivo." -#: src/app/main/ui/export.cljs:440 msgid "dashboard.export.options.merge.title" msgstr "" "Incluir ativos da biblioteca compartilhada na biblioteca de ativos do " "arquivo" -#: src/app/main/ui/export.cljs:418 msgid "dashboard.export.title" msgstr "Exportar arquivos" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:309 msgid "dashboard.fonts.deleted-placeholder" msgstr "Fonte deletada" -#: src/app/main/ui/dashboard/fonts.cljs:206 +#: src/app/main/ui/dashboard/fonts.cljs msgid "dashboard.fonts.dismiss-all" msgstr "Retirar todas" -#: src/app/main/ui/dashboard/fonts.cljs:436 msgid "dashboard.fonts.empty-placeholder" msgstr "Fontes customizadas que você adicionar vão aparecer aqui." -#: src/app/main/ui/dashboard/fonts.cljs:194 +#: src/app/main/ui/dashboard/fonts.cljs msgid "dashboard.fonts.fonts-added" msgid_plural "dashboard.fonts.fonts-added" msgstr[0] "1 fonte adicionada" msgstr[1] "%s fontes adicionadas" -#: src/app/main/ui/dashboard/fonts.cljs:170 #, markdown msgid "dashboard.fonts.hero-text1" msgstr "" @@ -441,7 +396,6 @@ msgstr "" "como uma **única família de fontes**. Você pode fazer upload de fontes com " "os seguintes formatos: **TTF, OTF e WOFF** (apenas uma será necessária)." -#: src/app/main/ui/dashboard/fonts.cljs:182 #, markdown msgid "dashboard.fonts.hero-text2" msgstr "" @@ -451,1561 +405,1433 @@ msgstr "" "veja esta leitura sobre [licenciamento de " "fontes](https://www.typography.com/faq)." -#: src/app/main/ui/dashboard/fonts.cljs:202 +#: src/app/main/ui/dashboard/fonts.cljs msgid "dashboard.fonts.upload-all" msgstr "Enviar tudo" -#: src/app/main/ui/dashboard/import.cljs:472, src/app/main/ui/dashboard/project_menu.cljs:108 msgid "dashboard.import" msgstr "Importar arquivos" -#: src/app/main/ui/dashboard/import.cljs:304, src/app/worker/import.cljs:753, src/app/worker/import.cljs:755 msgid "dashboard.import.analyze-error" msgstr "Ops! Não conseguimos importar este arquivo" -#: src/app/main/ui/dashboard/import.cljs:308 msgid "dashboard.import.import-error" msgstr "Ocorreu um problema ao importar o arquivo, então ele não foi importado." -#: src/app/main/ui/dashboard/import.cljs:493 msgid "dashboard.import.import-message" msgstr "%s arquivos foram importados com sucesso." -#: src/app/main/ui/dashboard/import.cljs:481, src/app/main/ui/dashboard/import.cljs:488 msgid "dashboard.import.import-warning" msgstr "Alguns arquivos continham objetos inválidos que foram removidos." -#: src/app/main/ui/dashboard/import.cljs:144 msgid "dashboard.import.progress.process-colors" msgstr "Processando as cores" -#: src/app/main/ui/dashboard/import.cljs:153 msgid "dashboard.import.progress.process-components" msgstr "Processando os componentes" -#: src/app/main/ui/dashboard/import.cljs:150 msgid "dashboard.import.progress.process-media" msgstr "Processando as mídias" -#: src/app/main/ui/dashboard/import.cljs:141 msgid "dashboard.import.progress.process-page" msgstr "Processando página: %s" -#: src/app/main/ui/dashboard/import.cljs:147 msgid "dashboard.import.progress.process-typographies" msgstr "Processando as fontes" -#: src/app/main/ui/dashboard/import.cljs:135 msgid "dashboard.import.progress.upload-data" msgstr "Carregando dados para o servidor (%s/%s)" -#: src/app/main/ui/dashboard/import.cljs:138 msgid "dashboard.import.progress.upload-media" msgstr "Enviando arquivo: %s" -#: src/app/main/ui/dashboard/team.cljs:109 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.invite-profile" msgstr "Convidar pessoas" -#: src/app/main/ui/dashboard/sidebar.cljs:547, src/app/main/ui/dashboard/sidebar.cljs:556, src/app/main/ui/dashboard/sidebar.cljs:563, src/app/main/ui/dashboard/team.cljs:312 +#: src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.leave-team" msgstr "Sair da equipe" -#: src/app/main/ui/dashboard/templates.cljs:88, src/app/main/ui/dashboard/templates.cljs:163 msgid "dashboard.libraries-and-templates" msgstr "Bibliotecas e Modelos" -#: src/app/main/ui/dashboard/templates.cljs:164 msgid "dashboard.libraries-and-templates.explore" msgstr "Explore mais e aprenda como contribuir" -#: src/app/main/ui/dashboard/import.cljs:365 msgid "dashboard.libraries-and-templates.import-error" msgstr "Ocorreu um problema ao importar o modelo. O modelo não foi importado." -#: src/app/main/ui/dashboard/libraries.cljs:53 +#: src/app/main/ui/dashboard/libraries.cljs msgid "dashboard.libraries-title" msgstr "Bibliotecas de ativos" -#: src/app/main/ui/dashboard/placeholder.cljs:45 +#: src/app/main/ui/dashboard/grid.cljs msgid "dashboard.loading-files" msgstr "carregando seus arquivos…" -#: src/app/main/ui/dashboard/fonts.cljs:431 msgid "dashboard.loading-fonts" msgstr "carregando suas fontes …" -#: src/app/main/ui/dashboard/file_menu.cljs:281, src/app/main/ui/dashboard/project_menu.cljs:100 +#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.move-to" msgstr "Mover para" -#: src/app/main/ui/dashboard/file_menu.cljs:245 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.move-to-multi" msgstr "Mover %s arquivos para" -#: src/app/main/ui/dashboard/file_menu.cljs:226 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.move-to-other-team" msgstr "Mover para outra equipe" -#: src/app/main/ui/dashboard/files.cljs:105, src/app/main/ui/dashboard/projects.cljs:252, src/app/main/ui/dashboard/projects.cljs:253 +#: src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/files.cljs msgid "dashboard.new-file" msgstr "+ Novo arquivo" -#: src/app/main/data/dashboard.cljs:958, src/app/main/data/dashboard.cljs:1181 +#: src/app/main/data/dashboard.cljs msgid "dashboard.new-file-prefix" msgstr "Novo arquivo" -#: src/app/main/ui/dashboard/projects.cljs:55 +#: src/app/main/ui/dashboard/projects.cljs msgid "dashboard.new-project" msgstr "+ Novo projeto" -#: src/app/main/data/dashboard.cljs:726, src/app/main/data/dashboard.cljs:1184 +#: src/app/main/data/dashboard.cljs msgid "dashboard.new-project-prefix" msgstr "Novo projeto" -#: src/app/main/ui/dashboard/search.cljs:60 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.no-matches-for" msgstr "Não achamos nada com “%s“" -#: src/app/main/ui/dashboard/sidebar.cljs:827 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.no-projects-placeholder" msgstr "Projetos fixados aparecerão aqui" -#: src/app/main/ui/auth/verify_token.cljs:33 +#: src/app/main/ui/auth/verify_token.cljs msgid "dashboard.notifications.email-changed-successfully" msgstr "Seu endereço de e-mail foi atualizado com sucesso" -#: src/app/main/ui/auth/verify_token.cljs:27 +#: src/app/main/ui/auth/verify_token.cljs msgid "dashboard.notifications.email-verified-successfully" msgstr "Seu endereço de e-mail foi verificado com sucesso" -#: src/app/main/ui/settings/password.cljs:37 +#: src/app/main/ui/settings/password.cljs msgid "dashboard.notifications.password-saved" msgstr "Senha salva com sucesso!" -#: src/app/main/ui/dashboard/team.cljs:1081 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.num-of-members" msgstr "%s membros" -#: src/app/main/ui/dashboard/file_menu.cljs:267 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.open-in-new-tab" msgstr "Abrir arquivo em uma nova guia" -#: src/app/main/ui/dashboard/files.cljs:117, src/app/main/ui/dashboard/projects.cljs:260, src/app/main/ui/dashboard/projects.cljs:261 msgid "dashboard.options" msgstr "Opções" -#: src/app/main/ui/settings/password.cljs:106, src/app/main/ui/settings/password.cljs:119 +#: src/app/main/ui/settings/password.cljs msgid "dashboard.password-change" msgstr "Alterar senha" -#: src/app/main/ui/dashboard/pin_button.cljs:24, src/app/main/ui/dashboard/project_menu.cljs:95 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.pin-unpin" msgstr "Fixar/Desafixar" -#: src/app/main/ui/dashboard/projects.cljs:51 +#: src/app/main/ui/dashboard/projects.cljs msgid "dashboard.projects-title" msgstr "Projetos" -#: src/app/main/ui/settings/profile.cljs:86 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.remove-account" msgstr "Quer remover sua conta?" #: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused msgid "dashboard.remove-shared" msgstr "Remover compartilhamento de Biblioteca" -#: src/app/main/ui/settings/profile.cljs:78 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.save-settings" msgstr "Salvar configurações" -#: src/app/main/ui/dashboard/sidebar.cljs:246, src/app/main/ui/dashboard/sidebar.cljs:247 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.search-placeholder" msgstr "Pesquisar…" -#: src/app/main/ui/dashboard/search.cljs:55 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.searching-for" msgstr "Pesquisando por “%s“…" -#: src/app/main/ui/settings/options.cljs:56 +#: src/app/main/ui/settings/options.cljs msgid "dashboard.select-ui-language" msgstr "Selecionar idioma da Interface" -#: src/app/main/ui/settings/options.cljs:63 +#: src/app/main/ui/settings/options.cljs msgid "dashboard.select-ui-theme" msgstr "Selecionar tema" -#: src/app/main/ui/dashboard/projects.cljs:282 +#: src/app/main/ui/dashboard/grid.cljs msgid "dashboard.show-all-files" msgstr "Mostrar todos os arquivos" -#: src/app/main/ui/dashboard/project_menu.cljs:59 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.success-delete-project" msgstr "Seu projeto foi excluído com sucesso" -#: src/app/main/ui/dashboard/project_menu.cljs:33 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.success-duplicate-project" msgstr "Seu projeto foi duplicado com sucesso" -#: src/app/main/ui/dashboard/file_menu.cljs:130, src/app/main/ui/dashboard/grid.cljs:558, src/app/main/ui/dashboard/sidebar.cljs:152 +#: src/app/main/ui/dashboard/grid.cljs, src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-move-file" msgstr "Seu arquivo foi movido com sucesso" -#: src/app/main/ui/dashboard/file_menu.cljs:129 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-move-files" msgstr "Seus arquivos foram movidos com sucesso" -#: src/app/main/ui/dashboard/project_menu.cljs:54 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.success-move-project" msgstr "Seu projeto foi movido com sucesso" -#: src/app/main/ui/dashboard/team.cljs:1052 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.team-info" msgstr "Informação da equipe" -#: src/app/main/ui/dashboard/team.cljs:1070 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.team-members" msgstr "Membros da equipe" -#: src/app/main/ui/dashboard/team.cljs:1085 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.team-projects" msgstr "Projetos da equipe" -#: src/app/main/ui/settings/options.cljs:61 +#: src/app/main/ui/settings/options.cljs msgid "dashboard.theme-change" msgstr "Tema da Interface" -#: src/app/main/ui/dashboard/search.cljs:42 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.title-search" msgstr "Resultados da pesquisa" -#: src/app/main/ui/dashboard/search.cljs:50 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.type-something" msgstr "Digite para pesquisar nos resultados" -#: src/app/main/ui/dashboard/file_menu.cljs:287, src/app/main/ui/workspace/main_menu.cljs:566 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.unpublish-shared" msgstr "Cancelar publicação da biblioteca" -#: src/app/main/ui/settings/options.cljs:71 +#: src/app/main/ui/settings/profile.cljs, src/app/main/ui/settings/password.cljs, src/app/main/ui/settings/options.cljs msgid "dashboard.update-settings" msgstr "Atualizar configurações" -#: src/app/main/ui/dashboard/team.cljs:861 msgid "dashboard.webhooks.active" msgstr "Está ativo" -#: src/app/main/ui/dashboard/team.cljs:862 msgid "dashboard.webhooks.active.explain" msgstr "Quando esse hook é invocado detalhes de eventos vão ser enviados" -#: src/app/main/ui/dashboard/team.cljs:852 msgid "dashboard.webhooks.content-type" msgstr "Tipo de conteúdo" -#: src/app/main/ui/dashboard/team.cljs:885 msgid "dashboard.webhooks.create" msgstr "Criar webhook" -#: src/app/main/ui/dashboard/team.cljs:775 msgid "dashboard.webhooks.create.success" msgstr "Webhook criado com sucesso." -#: src/app/main/ui/dashboard/team.cljs:882 msgid "dashboard.webhooks.description" msgstr "" "Webhooks são uma forma simples de permitir que outros websites e " "aplicativos sejam notificados quando certos eventos acontecem no Penpot. " "Nós enviaremos uma solicitação POST para todas as URLs que você digite." -#: src/app/main/ui/dashboard/team.cljs:1005 msgid "dashboard.webhooks.empty.add-one" msgstr "Clique em \"Adicionar Webhook\" para adicionar um Webhook." -#: src/app/main/ui/dashboard/team.cljs:1004 msgid "dashboard.webhooks.empty.no-webhooks" msgstr "Nenhum Webhook criado ainda." -#, unused msgid "dashboard.webhooks.update.success" msgstr "Webhook atualizado com sucesso." -#: src/app/main/ui/settings.cljs:31 +#: src/app/main/ui/settings.cljs msgid "dashboard.your-account-title" msgstr "Sua conta" -#: src/app/main/ui/settings/profile.cljs:70 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.your-email" msgstr "E-mail" -#: src/app/main/ui/settings/profile.cljs:62 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.your-name" msgstr "Seu nome" -#: src/app/main/ui/dashboard/file_menu.cljs:38, src/app/main/ui/dashboard/fonts.cljs:33, src/app/main/ui/dashboard/libraries.cljs:42, src/app/main/ui/dashboard/projects.cljs:318, src/app/main/ui/dashboard/search.cljs:30, src/app/main/ui/dashboard/sidebar.cljs:312, src/app/main/ui/dashboard/team.cljs:495, src/app/main/ui/dashboard/team.cljs:729, src/app/main/ui/dashboard/team.cljs:991, src/app/main/ui/dashboard/team.cljs:1038 +#: src/app/main/ui/dashboard/search.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/libraries.cljs, src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.your-penpot" msgstr "Seu Penpot" -#: src/app/main/ui/alert.cljs:32 +#: src/app/main/ui/alert.cljs msgid "ds.alert-ok" msgstr "Ok" -#: src/app/main/ui/alert.cljs:31, src/app/main/ui/alert.cljs:34 +#: src/app/main/ui/alert.cljs msgid "ds.alert-title" msgstr "Atenção" -#: src/app/main/ui/confirm.cljs:83 +#: src/app/main/ui/confirm.cljs msgid "ds.component-subtitle" msgstr "Componentes para atualizar:" -#: src/app/main/ui/confirm.cljs:36, src/app/main/ui/workspace/plugins.cljs:246 +#: src/app/main/ui/confirm.cljs msgid "ds.confirm-cancel" msgstr "Cancelar" -#: src/app/main/ui/confirm.cljs:37, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:141 +#: src/app/main/ui/confirm.cljs msgid "ds.confirm-ok" msgstr "Ok" -#: src/app/main/ui/confirm.cljs:35, src/app/main/ui/confirm.cljs:39 +#: src/app/main/ui/confirm.cljs, src/app/main/ui/confirm.cljs msgid "ds.confirm-title" msgstr "Tem certeza?" -#: src/app/main/ui/auth/login.cljs:62 +#: src/app/main/ui/auth/login.cljs msgid "errors.auth-provider-not-configured" msgstr "Provedor de autenticação não configurado." -#: src/app/main/errors.cljs:104 msgid "errors.auth.unable-to-login" msgstr "Parece que você não está autenticado ou a sessão expirou." -#: src/app/main/data/fonts.cljs:189 msgid "errors.bad-font" msgstr "A fonte %s não pôde ser carregada" -#: src/app/main/data/fonts.cljs:188 msgid "errors.bad-font-plural" msgstr "As fontes %s não puderam ser carregadas" -#: src/app/main/data/workspace.cljs:1598 +#: src/app/main/data/workspace.cljs msgid "errors.clipboard-not-implemented" msgstr "Seu navegador não pode fazer esta operação" -#: src/app/main/ui/auth/verify_token.cljs:82, src/app/main/ui/settings/change_email.cljs:46 +#: src/app/main/ui/auth/verify_token.cljs, src/app/main/ui/settings/change_email.cljs msgid "errors.email-already-exists" msgstr "E-mail já utilizado" -#: src/app/main/ui/auth/verify_token.cljs:87 +#: src/app/main/ui/auth/verify_token.cljs msgid "errors.email-already-validated" msgstr "E-mail já validado." -#: src/app/main/ui/settings/password.cljs:28 msgid "errors.email-as-password" msgstr "Você não pode usar seu e-mail como senha" -#: src/app/main/ui/auth/recovery_request.cljs:63, src/app/main/ui/dashboard/team.cljs:578, src/app/main/ui/settings/change_email.cljs:54 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/settings/change_email.cljs, src/app/main/ui/dashboard/team.cljs msgid "errors.email-has-permanent-bounces" msgstr "O e-mail «%s» tem muitos relatórios de devolução permanentes." -#: src/app/main/ui/auth/login.cljs:81, src/app/main/ui/auth/recovery_request.cljs:31, src/app/main/ui/auth/register.cljs:43 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs, src/app/main/ui/auth/recovery_request.cljs msgid "errors.email-invalid" msgstr "Por favor, insira um email válido" -#: src/app/main/ui/settings/change_email.cljs:35 +#: src/app/main/ui/settings/change_email.cljs msgid "errors.email-invalid-confirmation" msgstr "E-mail de confirmação deve ser o mesmo" -#: src/app/main/ui/dashboard/team.cljs:170 msgid "errors.email-spam-or-permanent-bounces" msgstr "O e-mail «%s» foi denunciado como spam ou devolvido permanentemente." -#: src/app/main/errors.cljs:227 +#: src/app/main/errors.cljs msgid "errors.feature-mismatch" msgstr "" "Parece que você está abrindo um arquivo que tem a funcionalidade '%s' " "habilitada, mas o seu frontend no penpot não a suporta ou ela está " "desabilitada." -#: src/app/main/errors.cljs:231, src/app/main/errors.cljs:245 +#: src/app/main/errors.cljs msgid "errors.feature-not-supported" msgstr "Recurso '%s' não é suportado." -#: src/app/main/data/users.cljs:709, src/app/main/ui/auth/login.cljs:65, src/app/main/ui/auth/login.cljs:116, src/app/main/ui/auth/register.cljs:69, src/app/main/ui/auth/register.cljs:237, src/app/main/ui/auth/verify_token.cljs:92, src/app/main/ui/dashboard/team.cljs:173, src/app/main/ui/onboarding/team_choice.cljs:95, src/app/main/ui/settings/access_tokens.cljs:91, src/app/main/ui/settings/feedback.cljs:52 +#: src/app/main/ui/auth/verify_token.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/dashboard/team.cljs msgid "errors.generic" msgstr "Algo errado aconteceu." -#: src/app/main/ui/components/color_input.cljs:57 +#: src/app/main/ui/components/color_input.cljs msgid "errors.invalid-color" msgstr "Cor inválida" -#: src/app/main/ui/static.cljs:43 +#: src/app/main/ui/auth/verify_token.cljs msgid "errors.invite-invalid" msgstr "Convite inválido" -#: src/app/main/ui/static.cljs:44 msgid "errors.invite-invalid.info" msgstr "Este convite pode ter sido cancelado ou expirou." -#: src/app/main/ui/auth/login.cljs:101 +#: src/app/main/ui/auth/login.cljs msgid "errors.ldap-disabled" msgstr "Autenticação por LDAP está desativada." -#: src/app/main/errors.cljs:239 +#: src/app/main/errors.cljs msgid "errors.max-quote-reached" msgstr "Você atingiu a cota de '%s'. Entre em contato com o suporte." -#: src/app/main/data/workspace/media.cljs:184 +#: src/app/main/data/workspace/persistence.cljs msgid "errors.media-too-large" msgstr "A imagem é muito grande para ser inserida." -#: src/app/main/data/media.cljs:68, src/app/main/data/workspace/media.cljs:187 +#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs msgid "errors.media-type-mismatch" msgstr "Parece que o conteúdo da imagem não corresponde a extensão do arquivo." -#: src/app/main/data/media.cljs:65, src/app/main/data/workspace/media.cljs:172, src/app/main/data/workspace/media.cljs:175, src/app/main/data/workspace/media.cljs:178, src/app/main/data/workspace/media.cljs:181 +#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/workspace/persistence.cljs, src/app/main/data/workspace/persistence.cljs, src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs msgid "errors.media-type-not-allowed" msgstr "Parece que esta não é uma imagem válida." -#: src/app/main/ui/dashboard/team.cljs:574 +#: src/app/main/ui/dashboard/team.cljs msgid "errors.member-is-muted" msgstr "" "O perfil que você está convidando tem e-mails silenciados (relatos de spam " "ou altas devoluções)." -#: src/app/main/ui/settings/password.cljs:61 +#: src/app/main/ui/settings/password.cljs msgid "errors.password-invalid-confirmation" msgstr "A senha de confirmação deve ser a mesma" -#: src/app/main/ui/settings/password.cljs:64 +#: src/app/main/ui/settings/password.cljs msgid "errors.password-too-short" msgstr "A senha deve ter pelo menos 8 caracteres" -#: src/app/main/data/users.cljs:703, src/app/main/ui/auth/login.cljs:97, src/app/main/ui/auth/login.cljs:105 msgid "errors.profile-blocked" msgstr "O perfil está bloqueado" -#: src/app/main/ui/auth/recovery_request.cljs:60, src/app/main/ui/dashboard/team.cljs:164, src/app/main/ui/dashboard/team.cljs:570, src/app/main/ui/settings/change_email.cljs:50 +#: src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/settings/change_email.cljs, src/app/main/ui/dashboard/team.cljs msgid "errors.profile-is-muted" msgstr "Seu perfil tem e-mails silenciados (relatos de spam ou altas devoluções)." -#: src/app/main/data/users.cljs:701, src/app/main/ui/auth/register.cljs:60 +#: src/app/main/ui/auth/register.cljs msgid "errors.registration-disabled" msgstr "O registro de contas está desativado no momento." -#: src/app/main/ui/dashboard/sidebar.cljs:365, src/app/main/ui/dashboard/team.cljs:359 msgid "errors.team-leave.insufficient-members" msgstr "" "Membros insuficientes para deixar a equipe, você provavelmente deseja " "excluí-la." -#: src/app/main/ui/dashboard/sidebar.cljs:368, src/app/main/ui/dashboard/team.cljs:362 msgid "errors.team-leave.member-does-not-exists" msgstr "O membro que você tentou atribuir não existe." -#: src/app/main/ui/dashboard/sidebar.cljs:371, src/app/main/ui/dashboard/team.cljs:365 msgid "errors.team-leave.owner-cant-leave" msgstr "" "O proprietário não pode sair da equipe, você deve reatribuir a função de " "proprietário para outro membro." -#: src/app/main/data/media.cljs:71 +#: src/app/main/data/media.cljs, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs msgid "errors.unexpected-error" msgstr "Um erro inesperado ocorreu." -#: src/app/main/ui/auth/verify_token.cljs:60 +#: src/app/main/ui/auth/verify_token.cljs msgid "errors.unexpected-token" msgstr "Token desconhecido" -#: src/app/main/ui/dashboard/team.cljs:796 msgid "errors.webhooks.connection" msgstr "Erro de conexão, URL não acessível" -#: src/app/main/ui/dashboard/team.cljs:790 msgid "errors.webhooks.invalid-uri" msgstr "A URL não passa na validação." -#: src/app/main/ui/dashboard/team.cljs:949 +#, fuzzy msgid "errors.webhooks.last-delivery" msgstr "O último envio não foi bem-sucedido." -#: src/app/main/ui/dashboard/team.cljs:792, src/app/main/ui/dashboard/team.cljs:952 msgid "errors.webhooks.ssl-validation" msgstr "Erro na validação SSL." -#: src/app/main/ui/dashboard/team.cljs:794 msgid "errors.webhooks.timeout" msgstr "O tempo se esgotou" -#: src/app/main/ui/dashboard/team.cljs:788 msgid "errors.webhooks.unexpected" msgstr "Erro inesperado durante a validação" -#: src/app/main/ui/dashboard/team.cljs:798, src/app/main/ui/dashboard/team.cljs:955 msgid "errors.webhooks.unexpected-status" msgstr "Status inesperado %s" -#: src/app/main/ui/auth/login.cljs:109, src/app/main/ui/auth/login.cljs:113 +#: src/app/main/ui/auth/login.cljs msgid "errors.wrong-credentials" msgstr "E-mail ou senha está incorreto." -#: src/app/main/ui/settings/password.cljs:25 +#: src/app/main/ui/settings/password.cljs msgid "errors.wrong-old-password" msgstr "A senha antiga está incorreta" -#: src/app/main/ui/settings/feedback.cljs:77 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.description" msgstr "Descrição" -#: src/app/main/ui/settings/feedback.cljs:95 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.discourse-go-to" msgstr "Vá para o fórum do Penpot" -#: src/app/main/ui/settings/feedback.cljs:89 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.discourse-subtitle1" msgstr "" "Estamos felizes em ter você aqui. Se precisar de ajuda com algo, pesquise " "antes de postar." -#: src/app/main/ui/settings/feedback.cljs:88 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.discourse-title" msgstr "Comunidade do Penpot" -#: src/app/main/ui/settings/feedback.cljs:72 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.subject" msgstr "Assunto" -#: src/app/main/ui/settings/feedback.cljs:69 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.subtitle" msgstr "" "Por favor, descreva o motivo do seu e-mail, especificando se é um problema, " "uma ideia ou uma dúvida. Um membro de nossa equipe responderá o mais rápido " "possível." -#: src/app/main/ui/settings/feedback.cljs:68 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.title" msgstr "E-mail" -#: src/app/main/ui/settings/feedback.cljs:105 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.twitter-go-to" msgstr "Ir ao X" -#: src/app/main/ui/settings/feedback.cljs:99 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.twitter-subtitle1" msgstr "Precisa de ajuda com dúvidas mais técnicas? Veja o nosso X." -#: src/app/main/ui/settings/feedback.cljs:98 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.twitter-title" msgstr "Conta de suporte no X" -#: src/app/main/ui/settings/password.cljs:30 +#: src/app/main/ui/settings/password.cljs msgid "generic.error" msgstr "Um erro ocorreu" -#: src/app/main/ui/viewer/inspect/attributes/blur.cljs:26 +#: src/app/main/ui/inspect/attributes/blur.cljs msgid "inspect.attributes.blur" msgstr "Desfoque" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:115 +#: src/app/main/ui/inspect/attributes/blur.cljs msgid "inspect.attributes.blur.value" msgstr "Valor" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:112 +#: src/app/main/ui/inspect/attributes/common.cljs msgid "inspect.attributes.color.hex" msgstr "HEX" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:114 +#: src/app/main/ui/inspect/attributes/common.cljs msgid "inspect.attributes.color.hsla" msgstr "HSLA" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:113 +#: src/app/main/ui/inspect/attributes/common.cljs msgid "inspect.attributes.color.rgba" msgstr "RGBA" -#: src/app/main/ui/viewer/inspect/attributes/fill.cljs:57 +#: src/app/main/ui/inspect/attributes/fill.cljs msgid "inspect.attributes.fill" msgstr "Preenchimento" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:99, src/app/main/ui/viewer/inspect/attributes/image.cljs:51 +#: src/app/main/ui/inspect/attributes/image.cljs msgid "inspect.attributes.image.download" msgstr "Baixar imagem original" -#: src/app/main/ui/viewer/inspect/attributes/image.cljs:39 +#: src/app/main/ui/inspect/attributes/image.cljs msgid "inspect.attributes.image.height" msgstr "Altura" -#: src/app/main/ui/viewer/inspect/attributes/image.cljs:32 +#: src/app/main/ui/inspect/attributes/image.cljs msgid "inspect.attributes.image.width" msgstr "Largura" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout" msgstr "Layout" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.height" msgstr "Altura" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.left" msgstr "Esquerda" #: src/app/main/ui/inspect/attributes/layout.cljs, src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.radius" msgstr "Arredondamento" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.rotation" msgstr "Rotação" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.top" msgstr "Superior" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.width" msgstr "Largura" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:57 +#: src/app/main/ui/inspect/attributes/shadow.cljs msgid "inspect.attributes.shadow" msgstr "Sombra" -#: src/app/main/ui/viewer/inspect/attributes/geometry.cljs:40 +#: src/app/main/ui/inspect/attributes/layout.cljs msgid "inspect.attributes.size" msgstr "Tamanho e posição" -#: src/app/main/ui/viewer/inspect/attributes/stroke.cljs:52 +#: src/app/main/ui/inspect/attributes/stroke.cljs msgid "inspect.attributes.stroke" msgstr "Traçado" -#, permanent, unused +#, permanent msgid "inspect.attributes.stroke.alignment.center" msgstr "Centro" -#, permanent, unused +#, permanent msgid "inspect.attributes.stroke.alignment.inner" msgstr "Dentro" -#, permanent, unused +#, permanent msgid "inspect.attributes.stroke.alignment.outer" msgstr "Fora" -#, unused msgid "inspect.attributes.stroke.style.dotted" msgstr "Pontilhado" -#, unused msgid "inspect.attributes.stroke.style.mixed" msgstr "Misto" -#, unused msgid "inspect.attributes.stroke.style.none" msgstr "Nenhum" -#, unused msgid "inspect.attributes.stroke.style.solid" msgstr "Sólido" #: src/app/main/ui/inspect/attributes/stroke.cljs -#, unused msgid "inspect.attributes.stroke.width" msgstr "Largura" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:81, src/app/main/ui/viewer/inspect/attributes/text.cljs:194 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography" msgstr "Tipografia" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:89 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.font-family" msgstr "Família tipográfica" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:107 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.font-size" msgstr "Tamanho da fonte" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:98 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.font-style" msgstr "Estilo da fonte" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:134 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.letter-spacing" msgstr "Espaçamento entre letras" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:125 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.line-height" msgstr "Altura da linha" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:143 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.text-decoration" msgstr "Decoração de texto" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:145 msgid "inspect.attributes.typography.text-decoration.none" msgstr "Nenhum" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:146 msgid "inspect.attributes.typography.text-decoration.strikethrough" msgstr "Riscado" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:147 msgid "inspect.attributes.typography.text-decoration.underline" msgstr "Sublinhado" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:156 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.text-transform" msgstr "Transformação de texto" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:158 msgid "inspect.attributes.typography.text-transform.lowercase" msgstr "Minúsculo" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:159 msgid "inspect.attributes.typography.text-transform.none" msgstr "Nenhuma" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:160 msgid "inspect.attributes.typography.text-transform.titlecase" msgstr "Iniciais em maiúsculas" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:161 msgid "inspect.attributes.typography.text-transform.uppercase" msgstr "Maiúsculo" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:140 msgid "inspect.empty.help" msgstr "" "Se quiser saber mais sobre inspecionar o design, visite a central de ajuda " "do Penpot" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:143 msgid "inspect.empty.more-info" msgstr "Mais informações sobre inspecionar" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:135 msgid "inspect.empty.select" msgstr "" "Selecione uma forma, board ou grupo para inspecionar suas propriedades e " "código" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:125 +#: src/app/main/ui/inspect/right_sidebar.cljs msgid "inspect.tabs.code" msgstr "Código" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:98 msgid "inspect.tabs.code.selected.circle" msgstr "Círculo" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:99 msgid "inspect.tabs.code.selected.component" msgstr "Componente" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:100 msgid "inspect.tabs.code.selected.curve" msgstr "Curva" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:101 msgid "inspect.tabs.code.selected.frame" msgstr "Board" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:102 msgid "inspect.tabs.code.selected.group" msgstr "Grupo" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:103 msgid "inspect.tabs.code.selected.image" msgstr "Imagem" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:104 msgid "inspect.tabs.code.selected.mask" msgstr "Máscara" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:93 +#: src/app/main/ui/inspect/right_sidebar.cljs msgid "inspect.tabs.code.selected.multiple" msgstr "%s selecionados" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:105 msgid "inspect.tabs.code.selected.path" msgstr "Caminho" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:106 msgid "inspect.tabs.code.selected.rect" msgstr "Retângulo" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:107 msgid "inspect.tabs.code.selected.svg-raw" msgstr "SVG" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:108 msgid "inspect.tabs.code.selected.text" msgstr "Texto" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:115 +#: src/app/main/ui/inspect/right_sidebar.cljs msgid "inspect.tabs.info" msgstr "Informação" -#: src/app/main/ui/workspace/main_menu.cljs:158 +#: src/app/main/ui/workspace/header.cljs msgid "label.shortcuts" msgstr "Atalhos" -#: src/app/main/ui/dashboard/import.cljs:527 msgid "labels.accept" msgstr "Aceitar" -#: src/app/main/ui/dashboard/team.cljs:968 msgid "labels.active" msgstr "Ativo" -#: src/app/main/ui/dashboard/fonts.cljs:175 msgid "labels.add-custom-font" msgstr "Adicionar fonte personalizada" -#: src/app/main/ui/dashboard/team.cljs:120, src/app/main/ui/dashboard/team.cljs:276, src/app/main/ui/dashboard/team.cljs:519, src/app/main/ui/dashboard/team.cljs:549, src/app/main/ui/onboarding/team_choice.cljs:67 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs msgid "labels.admin" msgstr "Administrador" #: src/app/main/ui/workspace/comments.cljs -#, unused msgid "labels.all" msgstr "Todos" -#: src/app/main/ui/auth.cljs:37 msgid "labels.and" msgstr "e" -#: src/app/main/ui/onboarding/team_choice.cljs:162 msgid "labels.back" msgstr "Voltar" -#: src/app/main/ui/static.cljs:59 +#: src/app/main/ui/static.cljs msgid "labels.bad-gateway.desc-message" msgstr "" "Parece que você precisa esperar um pouco e tentar de novo; estamos " "realizando pequenas manutenções em nossos servidores." -#: src/app/main/ui/static.cljs:58 +#: src/app/main/ui/static.cljs msgid "labels.bad-gateway.main-message" msgstr "Erro do servidor (Bad Gateway)" -#: src/app/main/data/common.cljs:112, src/app/main/ui/dashboard/change_owner.cljs:69, src/app/main/ui/dashboard/import.cljs:514, src/app/main/ui/dashboard/team.cljs:868, src/app/main/ui/delete_shared.cljs:35, src/app/main/ui/export.cljs:164, src/app/main/ui/export.cljs:460, src/app/main/ui/settings/access_tokens.cljs:188, src/app/main/ui/viewer/share_link.cljs:203, src/app/main/ui/workspace/sidebar/assets/groups.cljs:149 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.cancel" msgstr "Cancelar" -#: src/app/main/ui/dashboard/projects.cljs:93, src/app/main/ui/export.cljs:478, src/app/main/ui/settings/access_tokens.cljs:183, src/app/main/ui/viewer/login.cljs:77, src/app/main/ui/viewer/share_link.cljs:174, src/app/main/ui/workspace/libraries.cljs:522 msgid "labels.close" msgstr "Fechar" -#: src/app/main/ui/dashboard/comments.cljs:104, src/app/main/ui/viewer/comments.cljs:70, src/app/main/ui/workspace/comments.cljs:126 +#: src/app/main/ui/dashboard/comments.cljs msgid "labels.comments" msgstr "Comentários" -#: src/app/main/ui/dashboard/sidebar.cljs:985, src/app/main/ui/workspace/main_menu.cljs:110 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.community" msgstr "Comunidade" -#: src/app/main/ui/settings/password.cljs:103 +#: src/app/main/ui/settings/password.cljs msgid "labels.confirm-password" msgstr "Confirmar senha" -#: src/app/main/ui/dashboard/import.cljs:520, src/app/main/ui/export.cljs:465, src/app/main/ui/onboarding/newsletter.cljs:101 msgid "labels.continue" msgstr "Continuar" -#, unused msgid "labels.continue-with" msgstr "Continue com" -#: src/app/main/ui/viewer/login.cljs:75 msgid "labels.continue-with-penpot" msgstr "Você pode continuar com uma conta do Penpot" -#: src/app/main/ui/dashboard/team.cljs:642 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.copy-invitation-link" msgstr "Copiar link" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:157, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:190 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "labels.create" msgstr "Criar" -#: src/app/main/ui/dashboard/team_form.cljs:101, src/app/main/ui/dashboard/team_form.cljs:121 +#: src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/dashboard/team_form.cljs msgid "labels.create-team" msgstr "Criar nova equipe" -#: src/app/main/ui/dashboard/team_form.cljs:113 +#: src/app/main/ui/dashboard/team_form.cljs msgid "labels.create-team.placeholder" msgstr "Insira o nome da nova equipe" -#, unused msgid "labels.custom-fonts" msgstr "Fontes personalizadas" -#: src/app/main/ui/settings/sidebar.cljs:73 +#: src/app/main/ui/settings/sidebar.cljs msgid "labels.dashboard" msgstr "Painel" -#: src/app/main/ui/dashboard/file_menu.cljs:306, src/app/main/ui/dashboard/fonts.cljs:255, src/app/main/ui/dashboard/fonts.cljs:332, src/app/main/ui/dashboard/fonts.cljs:346, src/app/main/ui/dashboard/project_menu.cljs:115, src/app/main/ui/dashboard/team.cljs:904, src/app/main/ui/settings/access_tokens.cljs:209, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:209 +#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "labels.delete" msgstr "Excluir" -#: src/app/main/ui/comments.cljs:357 +#: src/app/main/ui/comments.cljs msgid "labels.delete-comment" msgstr "Excluir comentário" -#: src/app/main/ui/comments.cljs:354 +#: src/app/main/ui/comments.cljs msgid "labels.delete-comment-thread" msgstr "Excluir tópico" -#: src/app/main/ui/dashboard/team.cljs:648 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.delete-invitation" msgstr "Excluir convite" -#: src/app/main/ui/dashboard/file_menu.cljs:262 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.delete-multi-files" msgstr "Excluir %s arquivos" -#: src/app/main/ui/dashboard/file_menu.cljs:28, src/app/main/ui/dashboard/files.cljs:72, src/app/main/ui/dashboard/files.cljs:156, src/app/main/ui/dashboard/projects.cljs:220, src/app/main/ui/dashboard/projects.cljs:224, src/app/main/ui/dashboard/sidebar.cljs:791 +#: src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/files.cljs, src/app/main/ui/dashboard/files.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "labels.drafts" msgstr "Rascunhos" -#: src/app/main/ui/comments.cljs:350, src/app/main/ui/dashboard/fonts.cljs:252, src/app/main/ui/dashboard/team.cljs:902, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:205 +#: src/app/main/ui/comments.cljs msgid "labels.edit" msgstr "Editar" -#, unused msgid "labels.edit-file" msgstr "Editar arquivo" -#: src/app/main/ui/dashboard/team.cljs:118, src/app/main/ui/dashboard/team.cljs:279, src/app/main/ui/dashboard/team.cljs:520, src/app/main/ui/dashboard/team.cljs:553, src/app/main/ui/onboarding/team_choice.cljs:66 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs msgid "labels.editor" msgstr "Editor" -#: src/app/main/ui/dashboard/team.cljs:661 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.expired-invitation" msgstr "Expirado" -#: src/app/main/ui/export.cljs:173 msgid "labels.export" msgstr "Exportar" -#: src/app/main/ui/settings/feedback.cljs:51 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.feedback-disabled" msgstr "Feedback desativado" -#: src/app/main/ui/settings/feedback.cljs:42 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.feedback-sent" msgstr "Feedback enviado" -#: src/app/main/ui/dashboard/fonts.cljs:412 msgid "labels.font-family" msgstr "Família tipográfica" -#, unused msgid "labels.font-providers" msgstr "Provedores de fonte" -#: src/app/main/ui/dashboard/fonts.cljs:413 msgid "labels.font-variants" msgstr "Estilos" -#: src/app/main/ui/dashboard/fonts.cljs:52, src/app/main/ui/dashboard/sidebar.cljs:811 msgid "labels.fonts" msgstr "Fontes" -#: src/app/main/ui/dashboard/sidebar.cljs:1015, src/app/main/ui/workspace/main_menu.cljs:142 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.github-repo" msgstr "Repositório do Github" -#: src/app/main/ui/dashboard/sidebar.cljs:1032, src/app/main/ui/settings/sidebar.cljs:113, src/app/main/ui/workspace/main_menu.cljs:171 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.give-feedback" msgstr "Enviar feedback" -#: src/app/main/ui/auth/recovery_request.cljs:110, src/app/main/ui/auth/register.cljs:285, src/app/main/ui/viewer/login.cljs:117 msgid "labels.go-back" msgstr "Voltar" -#: src/app/main/ui/dashboard/sidebar.cljs:978, src/app/main/ui/workspace/main_menu.cljs:102 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.help-center" msgstr "Central de Ajuda" -#: src/app/main/ui/viewer/comments.cljs:103, src/app/main/ui/workspace/comments.cljs:67 +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs msgid "labels.hide-resolved-comments" msgstr "Ocultar comentários resolvidos" -#: src/app/main/ui/dashboard/team.cljs:969 msgid "labels.inactive" msgstr "Inativo" -#: src/app/main/ui/dashboard/fonts.cljs:410 msgid "labels.installed-fonts" msgstr "Fontes instaladas" -#: src/app/main/ui/static.cljs:144 +#: src/app/main/ui/static.cljs msgid "labels.internal-error.desc-message" msgstr "" "Algo errado aconteceu. Por favor, tente novamente e se o problema " "persistir, entre em contato com o suporte." -#: src/app/main/ui/static.cljs:143 +#: src/app/main/ui/static.cljs msgid "labels.internal-error.main-message" msgstr "Erro interno" -#: src/app/main/ui/dashboard/sidebar.cljs:516, src/app/main/ui/dashboard/team.cljs:89, src/app/main/ui/dashboard/team.cljs:97, src/app/main/ui/dashboard/team.cljs:708 +#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.invitations" msgstr "Convites" -#: src/app/main/ui/settings/options.cljs:51 +#: src/app/main/ui/settings/options.cljs msgid "labels.language" msgstr "Linguagem" -#: src/app/main/ui/dashboard/sidebar.cljs:1008, src/app/main/ui/workspace/main_menu.cljs:134 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.libraries-and-templates" msgstr "Bibliotecas & Modelos" -#: src/app/main/ui/viewer/header.cljs:203 msgid "labels.log-or-sign" msgstr "Entre ou cadastre-se" -#: src/app/main/ui/dashboard/sidebar.cljs:1040 +#: src/app/main/ui/settings.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.logout" msgstr "Sair" -#: src/app/main/ui/dashboard/team.cljs:468 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.member" msgstr "Membro" -#: src/app/main/ui/dashboard/sidebar.cljs:510, src/app/main/ui/dashboard/team.cljs:87, src/app/main/ui/dashboard/team.cljs:95 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.members" msgstr "Membros" -#: src/app/main/ui/settings/password.cljs:96 +#: src/app/main/ui/settings/password.cljs msgid "labels.new-password" msgstr "Nova senha" -#: src/app/main/ui/dashboard/comments.cljs:128, src/app/main/ui/workspace/comments.cljs:161 +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/dashboard/comments.cljs msgid "labels.no-comments-available" msgstr "Nada de novo por aqui! Novas notificações de comentários irão aparecer aqui." -#: src/app/main/ui/dashboard/team.cljs:694 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.no-invitations" msgstr "Não há convites pendentes." -#: src/app/main/ui/dashboard/team.cljs:696 +#: src/app/main/ui/dashboard/team.cljs #, markdown msgid "labels.no-invitations-hint" msgstr "Clique no botão **Convidar pessoas** para convidar membros para esta equipe." -#: src/app/main/ui/static.cljs:50 +#: src/app/main/ui/static.cljs msgid "labels.not-found.desc-message" msgstr "Esta página não existe ou você não tem permissão para acessá-la." -#: src/app/main/ui/static.cljs:49 +#: src/app/main/ui/static.cljs msgid "labels.not-found.main-message" msgstr "Ops!" -#: src/app/main/ui/dashboard/projects.cljs:239, src/app/main/ui/dashboard/team.cljs:1095 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.num-of-files" msgid_plural "labels.num-of-files" msgstr[0] "1 arquivo" msgstr[1] "%s arquivos" -#: src/app/main/ui/viewer/thumbnails.cljs:80 msgid "labels.num-of-frames" msgid_plural "labels.num-of-frames" msgstr[0] "1 tela" msgstr[1] "%s telas" -#: src/app/main/ui/dashboard/team.cljs:1090 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.num-of-projects" msgid_plural "labels.num-of-projects" msgstr[0] "1 projeto" msgstr[1] "% projetos" -#: src/app/main/ui/settings/password.cljs:89 +#: src/app/main/ui/settings/password.cljs msgid "labels.old-password" msgstr "Senha antiga" #: src/app/main/ui/workspace/comments.cljs -#, unused msgid "labels.only-yours" msgstr "Apenas seu" -#, unused msgid "labels.or" msgstr "ou" -#: src/app/main/ui/dashboard/team.cljs:286, src/app/main/ui/dashboard/team.cljs:518, src/app/main/ui/dashboard/team.cljs:1076 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs msgid "labels.owner" msgstr "Proprietário" -#: src/app/main/ui/settings/sidebar.cljs:87 +#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.password" msgstr "Senha" -#: src/app/main/ui/dashboard/team.cljs:662 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.pending-invitation" msgstr "Pendente" -#: src/app/main/ui/settings/profile.cljs:118, src/app/main/ui/settings/sidebar.cljs:82 +#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.profile" msgstr "Perfil" -#: src/app/main/ui/dashboard/sidebar.cljs:784 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.projects" msgstr "Projetos" -#: src/app/main/ui/dashboard/sidebar.cljs:998, src/app/main/ui/settings/sidebar.cljs:106, src/app/main/ui/workspace/main_menu.cljs:126 +#: src/app/main/ui/settings/sidebar.cljs msgid "labels.release-notes" msgstr "Notas de atualização" #: src/app/main/ui/workspace.cljs -#, unused msgid "labels.reload-file" msgstr "Recarregar arquivo" #: src/app/main/ui/workspace/libraries.cljs, src/app/main/ui/dashboard/team.cljs -#, unused msgid "labels.remove" msgstr "Remover" -#: src/app/main/ui/dashboard/team.cljs:316 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.remove-member" msgstr "Remover membro" -#: src/app/main/ui/dashboard/file_menu.cljs:271, src/app/main/ui/dashboard/project_menu.cljs:85, src/app/main/ui/dashboard/sidebar.cljs:539, src/app/main/ui/workspace/sidebar/assets/groups.cljs:157 +#: src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "labels.rename" msgstr "Renomear" -#: src/app/main/ui/dashboard/team_form.cljs:99 +#: src/app/main/ui/dashboard/team_form.cljs msgid "labels.rename-team" msgstr "Renomear equipe" -#: src/app/main/ui/dashboard/team.cljs:645 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.resend-invitation" msgstr "Reenviar convite" -#: src/app/main/ui/static.cljs:61, src/app/main/ui/static.cljs:70, src/app/main/ui/static.cljs:148 +#: src/app/main/ui/static.cljs, src/app/main/ui/static.cljs, src/app/main/ui/static.cljs msgid "labels.retry" msgstr "Tentar novamente" -#: src/app/main/ui/dashboard/team.cljs:469, src/app/main/ui/dashboard/team.cljs:709 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.role" msgstr "Cargo" -#: src/app/main/ui/dashboard/fonts.cljs:380, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:191 msgid "labels.save" msgstr "Salvar" -#: src/app/main/ui/dashboard/fonts.cljs:415 msgid "labels.search-font" msgstr "Buscar fonte" -#: src/app/main/ui/settings/feedback.cljs:82 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.send" msgstr "Enviar" -#: src/app/main/ui/settings/feedback.cljs:82 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.sending" msgstr "Enviando…" -#: src/app/main/ui/static.cljs:68 +#: src/app/main/ui/static.cljs msgid "labels.service-unavailable.desc-message" msgstr "Estamos em manutenção programada de nossos sistemas." -#: src/app/main/ui/static.cljs:67 +#: src/app/main/ui/static.cljs msgid "labels.service-unavailable.main-message" msgstr "Serviço indisponível" -#: src/app/main/ui/dashboard/sidebar.cljs:530, src/app/main/ui/dashboard/team.cljs:88, src/app/main/ui/dashboard/team.cljs:102, src/app/main/ui/settings/options.cljs:84, src/app/main/ui/settings/sidebar.cljs:93 +#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.settings" msgstr "Configurações" -#, unused msgid "labels.share-prototype" msgstr "Compartilhar protótipo" -#: src/app/main/ui/dashboard/sidebar.cljs:800 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.shared-libraries" msgstr "Bibliotecas" -#: src/app/main/ui/viewer/comments.cljs:82, src/app/main/ui/workspace/comments.cljs:55, src/app/main/ui/workspace/comments.cljs:135 +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs msgid "labels.show-all-comments" msgstr "Mostrar todos os comentários" -#: src/app/main/ui/viewer/comments.cljs:115 msgid "labels.show-comments-list" msgstr "Mostrar lista de comentários" -#: src/app/main/ui/viewer/comments.cljs:91, src/app/main/ui/workspace/comments.cljs:61, src/app/main/ui/workspace/comments.cljs:136 +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs msgid "labels.show-your-comments" msgstr "Mostrar apenas seus comentários" -#: src/app/main/ui/dashboard/team.cljs:710 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.status" msgstr "Status" -#: src/app/main/ui/dashboard/sidebar.cljs:992, src/app/main/ui/workspace/main_menu.cljs:118 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.tutorials" msgstr "Tutorial" -#: src/app/main/ui/dashboard/file_menu.cljs:256 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.unpublish-multi-files" msgstr "Despublicar arquivos %s" -#: src/app/main/ui/settings/profile.cljs:103 +#: src/app/main/ui/settings/profile.cljs msgid "labels.update" msgstr "Atualizar" -#: src/app/main/ui/dashboard/team_form.cljs:120 +#: src/app/main/ui/dashboard/team_form.cljs msgid "labels.update-team" msgstr "Atualizar equipe" -#: src/app/main/ui/dashboard/fonts.cljs:241 msgid "labels.upload" msgstr "Carregar" -#: src/app/main/ui/dashboard/fonts.cljs:169 msgid "labels.upload-custom-fonts" msgstr "Enviar fontes personalizadas" -#: src/app/main/ui/dashboard/fonts.cljs:240 msgid "labels.uploading" msgstr "Enviando…" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs:223 msgid "labels.view-only" msgstr "SOMENTE VISUALIZAÇÃO" -#: src/app/main/ui/dashboard/team.cljs:123, src/app/main/ui/dashboard/team.cljs:282, src/app/main/ui/dashboard/team.cljs:521 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.viewer" msgstr "Visualizador" -#: src/app/main/ui/dashboard/sidebar.cljs:523, src/app/main/ui/dashboard/team.cljs:90, src/app/main/ui/dashboard/team.cljs:100, src/app/main/ui/dashboard/team.cljs:880 msgid "labels.webhooks" msgstr "Webhooks" -#: src/app/main/ui/comments.cljs:194 +#: src/app/main/ui/comments.cljs msgid "labels.write-new-comment" msgstr "Escrever um novo comentário" -#: src/app/main/ui/dashboard/team.cljs:237 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.you" msgstr "(você)" -#: src/app/main/ui/dashboard/sidebar.cljs:968 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.your-account" msgstr "Sua conta" -#: src/app/main/data/media.cljs:49, src/app/main/data/workspace/media.cljs:223, src/app/main/data/workspace/media.cljs:453 +#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs msgid "media.loading" msgstr "Carregando imagem…" -#: src/app/main/data/common.cljs:113 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.add-shared-confirm.accept" msgstr "Adicionar na Biblioteca Compartilhada" -#: src/app/main/data/common.cljs:111 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.add-shared-confirm.hint" msgstr "" "Depois de adicionados como parte da Biblioteca Compartilhada, os recursos " "desta biblioteca de ativos estarão disponíveis para serem usados com o " "restante de seus arquivos." -#: src/app/main/data/common.cljs:110 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.add-shared-confirm.message" msgstr "Adicionar “%s” na Biblioteca Compartilhada" -#: src/app/main/ui/workspace/nudge.cljs:60 +#: src/app/main/ui/workspace/nudge.cljs msgid "modals.big-nudge" msgstr "Grande deslocamento" -#: src/app/main/ui/settings/change_email.cljs:127 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.confirm-email" msgstr "Verificar o novo e-mail" -#: src/app/main/ui/settings/change_email.cljs:114 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.info" msgstr "" "Enviaremos a você um e-mail para seu e-mail atual “%s” para verificar sua " "identidade." -#: src/app/main/ui/settings/change_email.cljs:119 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.new-email" msgstr "Novo e-mail" -#: src/app/main/ui/settings/change_email.cljs:136 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.submit" msgstr "Alterar e-mail" -#: src/app/main/ui/settings/change_email.cljs:107 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.title" msgstr "Alterar seu e-mail" -#: src/app/main/ui/dashboard/team.cljs:873 msgid "modals.create-webhook.submit-label" msgstr "Criar webhook" -#: src/app/main/ui/dashboard/team.cljs:838 msgid "modals.create-webhook.title" msgstr "Criar webhook" -#: src/app/main/ui/dashboard/team.cljs:849 msgid "modals.create-webhook.url.label" msgstr "URL do payload" -#: src/app/main/ui/dashboard/team.cljs:850 msgid "modals.create-webhook.url.placeholder" msgstr "https://exemplo.com.br/postreceive" -#: src/app/main/ui/settings/delete_account.cljs:59 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.cancel" msgstr "Cancelar e manter minha conta" -#: src/app/main/ui/settings/delete_account.cljs:64 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.confirm" msgstr "Sim, exclua minha conta" -#: src/app/main/ui/settings/delete_account.cljs:53 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.info" msgstr "Ao excluir sua conta, você perderá todos os seus projetos e arquivos atuais." -#: src/app/main/ui/settings/delete_account.cljs:46 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.title" msgstr "Tem certeza que deseja excluir sua conta?" -#: src/app/main/ui/comments.cljs:298 +#: src/app/main/ui/comments.cljs msgid "modals.delete-comment-thread.accept" msgstr "Excluir conversa" -#: src/app/main/ui/comments.cljs:297 +#: src/app/main/ui/comments.cljs msgid "modals.delete-comment-thread.message" msgstr "" "Tem certeza de que deseja excluir esta conversa? Todos os comentários neste " "tópico serão excluídos." -#: src/app/main/ui/comments.cljs:296 +#: src/app/main/ui/comments.cljs msgid "modals.delete-comment-thread.title" msgstr "Excluir conversa" -#: src/app/main/ui/dashboard/file_menu.cljs:123 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-confirm.accept" msgstr "Excluir arquivo" -#: src/app/main/ui/dashboard/file_menu.cljs:122 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-confirm.message" msgstr "Tem certeza que deseja excluir este arquivo?" -#: src/app/main/ui/dashboard/file_menu.cljs:121 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-confirm.title" msgstr "Excluindo arquivo" -#: src/app/main/ui/dashboard/file_menu.cljs:117 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-multi-confirm.accept" msgstr "Excluir arquivos" -#: src/app/main/ui/dashboard/file_menu.cljs:116 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-multi-confirm.message" msgstr "Tem certeza de que deseja excluir %s arquivos?" -#: src/app/main/ui/dashboard/file_menu.cljs:115 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-multi-confirm.title" msgstr "Excluindo %s arquivos" -#: src/app/main/ui/dashboard/fonts.cljs:345 msgid "modals.delete-font-variant.message" msgstr "" "Tem certeza de que deseja excluir este estilo de fonte? Ele não será " "carregado se for usado em um arquivo." -#: src/app/main/ui/dashboard/fonts.cljs:344 msgid "modals.delete-font-variant.title" msgstr "Excluindo estilo de fonte" -#: src/app/main/ui/dashboard/fonts.cljs:331 msgid "modals.delete-font.message" msgstr "" "Tem certeza que deseja excluir essa fonte? Ela não será carregada se for " "utilizada em um arquivo." -#: src/app/main/ui/dashboard/fonts.cljs:330 msgid "modals.delete-font.title" msgstr "Excluindo fonte" -#: src/app/main/ui/workspace/context_menu.cljs:522, src/app/main/ui/workspace/sidebar/sitemap.cljs:45 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs msgid "modals.delete-page.body" msgstr "Tem certeza de que deseja excluir esta página?" -#: src/app/main/ui/workspace/context_menu.cljs:521, src/app/main/ui/workspace/sidebar/sitemap.cljs:44 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs msgid "modals.delete-page.title" msgstr "Excluir página" -#: src/app/main/ui/dashboard/project_menu.cljs:69 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "modals.delete-project-confirm.accept" msgstr "Excluir projeto" -#: src/app/main/ui/dashboard/project_menu.cljs:68 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "modals.delete-project-confirm.message" msgstr "Tem certeza de que deseja excluir este projeto?" -#: src/app/main/ui/dashboard/project_menu.cljs:67 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "modals.delete-project-confirm.title" msgstr "Excluir projeto" -#: src/app/main/ui/delete_shared.cljs:51 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.accept" msgid_plural "modals.delete-shared-confirm.accept" msgstr[0] "Excluir arquivo" msgstr[1] "Excluir arquivos" -#: src/app/main/ui/delete_shared.cljs:46 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.message" msgid_plural "modals.delete-shared-confirm.message" msgstr[0] "Tem certeza de que deseja excluir este arquivo?" msgstr[1] "Tem certeza de que deseja excluir estes arquivos?" -#: src/app/main/ui/delete_shared.cljs:41 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.title" msgid_plural "modals.delete-shared-confirm.title" msgstr[0] "Excluindo arquivo" msgstr[1] "Excluindo arquivos" -#: src/app/main/ui/dashboard/sidebar.cljs:435 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.delete-team-confirm.accept" msgstr "Excluir equipe" -#: src/app/main/ui/dashboard/sidebar.cljs:434 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.delete-team-confirm.message" msgstr "" "Tem certeza de que deseja excluir a equipe? Todos os projetos e arquivos " "associados a essa equipe serão excluídos permanentemente." -#: src/app/main/ui/dashboard/sidebar.cljs:433 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.delete-team-confirm.title" msgstr "Excluindo equipe" -#: src/app/main/ui/dashboard/team.cljs:427 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.delete-team-member-confirm.accept" msgstr "Excluir membro" -#: src/app/main/ui/dashboard/team.cljs:426 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.delete-team-member-confirm.message" msgstr "Tem certeza de que deseja excluir este membro da equipe?" -#: src/app/main/ui/dashboard/team.cljs:425 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.delete-team-member-confirm.title" msgstr "Excluir membro da equipe" -#: src/app/main/ui/dashboard/team.cljs:942 msgid "modals.delete-webhook.accept" msgstr "Excluir webhook" -#: src/app/main/ui/dashboard/team.cljs:941 msgid "modals.delete-webhook.message" msgstr "Tem certeza que deseja excluir este webhook?" -#: src/app/main/ui/dashboard/team.cljs:940 msgid "modals.delete-webhook.title" msgstr "Excluindo webhook" -#: src/app/main/ui/dashboard/team.cljs:872 msgid "modals.edit-webhook.submit-label" msgstr "Editar webhook" -#: src/app/main/ui/dashboard/team.cljs:837 msgid "modals.edit-webhook.title" msgstr "Editar webhook" -#: src/app/main/ui/dashboard/team.cljs:218 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.invite-member-confirm.accept" msgstr "Enviar convite" -#: src/app/main/ui/dashboard/team.cljs:213, src/app/main/ui/onboarding/team_choice.cljs:156 msgid "modals.invite-member.emails" msgstr "E-mails, separados por vírgulas" -#: src/app/main/ui/dashboard/team.cljs:190 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.invite-team-member.title" msgstr "Convide membros para a equipe" -#: src/app/main/ui/dashboard/sidebar.cljs:423, src/app/main/ui/dashboard/team.cljs:393 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-close-confirm.hint" msgstr "" "Como você é o único membro desta equipe, a equipe será excluída junto com " "seus projetos e arquivos." -#: src/app/main/ui/dashboard/sidebar.cljs:422, src/app/main/ui/dashboard/team.cljs:392 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-close-confirm.message" msgstr "Tem certeza de que deseja sair da equipe %s?" -#: src/app/main/ui/dashboard/change_owner.cljs:59 msgid "modals.leave-and-reassign.forbidden" msgstr "" "Você não pode deixar a equipe se não houver outro membro para promover a " "proprietário. Você talvez queira excluir a equipe." -#: src/app/main/ui/dashboard/change_owner.cljs:55 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-reassign.hint1" msgstr "Você é o proprietário de %s." -#: src/app/main/ui/dashboard/change_owner.cljs:78 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-reassign.promote-and-leave" msgstr "Promover e sair" -#: src/app/main/ui/dashboard/change_owner.cljs:34 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-reassign.select-member-to-promote" msgstr "Selecione um membro para promover" -#: src/app/main/ui/dashboard/change_owner.cljs:49 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-reassign.title" msgstr "Selecione um membro para promover" -#: src/app/main/ui/dashboard/sidebar.cljs:402, src/app/main/ui/dashboard/sidebar.cljs:424, src/app/main/ui/dashboard/team.cljs:394, src/app/main/ui/dashboard/team.cljs:416 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-confirm.accept" msgstr "Sair da equipe" -#: src/app/main/ui/dashboard/sidebar.cljs:401, src/app/main/ui/dashboard/team.cljs:415 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-confirm.message" msgstr "Tem certeza de que deseja sair da equipe?" -#: src/app/main/ui/dashboard/sidebar.cljs:400, src/app/main/ui/dashboard/sidebar.cljs:421, src/app/main/ui/dashboard/team.cljs:391, src/app/main/ui/dashboard/team.cljs:414 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-confirm.title" msgstr "Saindo da equipe" -#: src/app/main/ui/workspace/main_menu.cljs:266, src/app/main/ui/workspace/nudge.cljs:47 +#: src/app/main/ui/workspace/nudge.cljs msgid "modals.nudge-title" msgstr "Quantidade de deslocamento" -#: src/app/main/ui/dashboard/team.cljs:340 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.accept" msgstr "Transferir equipe" -#: src/app/main/ui/dashboard/team.cljs:339 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.hint" msgstr "" "Se você transferir a propriedade, mudará sua função para Admin, perdendo " "algumas permissões sobre essa equipe. " -#: src/app/main/ui/dashboard/team.cljs:338 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.message" msgstr "" "Você é o atual proprietário da equipe. Tem certeza de que deseja promover " "este usuário a proprietário?" -#: src/app/main/ui/dashboard/team.cljs:337 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.title" msgstr "Novo proprietário da equipe" #: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused msgid "modals.remove-shared-confirm.accept" msgstr "Remover da Biblioteca Compartilhada" #: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused msgid "modals.remove-shared-confirm.hint" msgstr "" "Depois de removido da Biblioteca Compartilhada, os Componentes deste " @@ -2013,2827 +1839,2504 @@ msgstr "" "arquivos." #: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused msgid "modals.remove-shared-confirm.message" msgstr "Remover “%s” da Biblioteca Compartilhada" -#: src/app/main/ui/workspace/nudge.cljs:53 +#: src/app/main/ui/workspace/nudge.cljs msgid "modals.small-nudge" msgstr "Pequeno deslocamento" -#: src/app/main/ui/delete_shared.cljs:52 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.unpublish-shared-confirm.accept" msgid_plural "modals.unpublish-shared-confirm.accept" msgstr[0] "Despublicar" msgstr[1] "Despublicar" -#: src/app/main/ui/delete_shared.cljs:47 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.unpublish-shared-confirm.message" msgid_plural "modals.unpublish-shared-confirm.message" msgstr[0] "Tem certeza de que deseja cancelar a publicação desta biblioteca?" msgstr[1] "Tem certeza de que deseja cancelar a publicação dessas bibliotecas?" -#: src/app/main/ui/delete_shared.cljs:42 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.unpublish-shared-confirm.title" msgid_plural "modals.unpublish-shared-confirm.title" msgstr[0] "Cancelar publicação da biblioteca" msgstr[1] "Cancelar publicação das bibliotecas" #: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs -#, unused msgid "modals.update-remote-component-in-bulk.hint" msgstr "" "Você está prestes a atualizar componentes em uma biblioteca compartilhada. " "Isso pode afetar outros arquivos que a utilizam." #: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs -#, unused msgid "modals.update-remote-component-in-bulk.message" msgstr "Atualizar componentes em uma biblioteca compartilhada" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:380 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.accept" msgstr "Atualizar" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:379 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.cancel" msgstr "Cancelar" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:378 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.hint" msgstr "" "Você está prestes a atualizar um componente em uma biblioteca " "compartilhada. Isso pode afetar outros arquivos que a utilizam." -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:377 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.message" msgstr "Atualizar componente em uma biblioteca compartilhada" -#: src/app/main/ui/dashboard/team.cljs:154, src/app/main/ui/dashboard/team.cljs:595 +#: src/app/main/ui/dashboard/team.cljs msgid "notifications.invitation-email-sent" msgstr "Convite enviado com sucesso" -#: src/app/main/ui/dashboard/team.cljs:616 +#: src/app/main/ui/dashboard/team.cljs msgid "notifications.invitation-link-copied" msgstr "Link do convite copiado" -#: src/app/main/ui/settings/delete_account.cljs:24 +#: src/app/main/ui/settings/delete_account.cljs msgid "notifications.profile-deletion-not-allowed" msgstr "" "Você não pode deletar seu perfil. Determine um novo proprietário para suas " "equipes antes de continuar." -#: src/app/main/ui/settings/options.cljs:29, src/app/main/ui/settings/profile.cljs:35 +#: src/app/main/ui/settings/profile.cljs, src/app/main/ui/settings/options.cljs msgid "notifications.profile-saved" msgstr "Perfil salvo com sucesso!" -#: src/app/main/ui/settings/change_email.cljs:63 +#: src/app/main/ui/settings/change_email.cljs msgid "notifications.validation-email-sent" msgstr "E-mail de verificação enviado para %s. Verifique seu e-mail!" -#, unused msgid "onboarding-v2.before-start.desc1" msgstr "" "Saiba que existem muitos recursos disponíveis para ajudá-lo a começar a " "usar o Penpot, como o Guia do Usuário e nosso canal no Youtube." -#, unused msgid "onboarding-v2.before-start.desc2" msgstr "" "Informações detalhadas sobre como usar o Penpot. Da prototipagem até a " "organização ou compartilhamento de projetos." -#, unused msgid "onboarding-v2.before-start.desc2.title" msgstr "Guia do Usuário" -#, unused msgid "onboarding-v2.before-start.desc3" msgstr "" "Você pode assistir nossos tutoriais e os tutoriais feitos por nossa " "comunidade." -#, unused msgid "onboarding-v2.before-start.desc3.title" msgstr "Tutoriais em vídeo" -#, unused msgid "onboarding-v2.before-start.title" msgstr "Antes de começar" -#: src/app/main/ui/onboarding/newsletter.cljs:63 msgid "onboarding-v2.newsletter.desc" msgstr "" "Assine a newsletter do Penpot para se manter atualizado sobre o " "desenvolvimento, progressos e novidades." -#: src/app/main/ui/onboarding/newsletter.cljs:83 msgid "onboarding-v2.newsletter.news" msgstr "" "Quero receber notícias sobre o Penpot (postagens do blog, tutoriais em " "vídeo, lives...)." -#: src/app/main/ui/onboarding/newsletter.cljs:91 msgid "onboarding-v2.newsletter.privacy1" msgstr "Sua privacidade é importante para nós, saiba mais aqui " -#: src/app/main/ui/onboarding/newsletter.cljs:97 msgid "onboarding-v2.newsletter.privacy2" msgstr "" "Enviaremos apenas e-mails relevantes para você e você pode cancelar a " "inscrição a qualquer momento através do link de cancelamento em qualquer " "uma das newsletters." -#: src/app/main/ui/onboarding/newsletter.cljs:71 msgid "onboarding-v2.newsletter.updates" msgstr "" "Quero receber atualizações do produto (novos recursos, lançamentos, " "correções...)." -#, unused msgid "onboarding-v2.welcome.desc1" msgstr "" "O Penpot é Código Aberto (open-source) e é feito pela Kaleidos e também " "pela comunidade, onde muitas pessoas já se ajudam. Todos podem colaborar:" -#, unused msgid "onboarding-v2.welcome.desc2" msgstr "" "Um espaço público para aprender, compartilhar e discutir sobre o Penpot, " "seu presente e futuro com toda a Comunidade e a equipe principal do Penpot." -#, unused msgid "onboarding-v2.welcome.desc2.title" msgstr "Participando da Comunidade" -#, unused msgid "onboarding-v2.welcome.desc3" msgstr "" "Onde você poderá colaborar com traduções, solicitações de recursos, " "contribuições principais, caçando bugs…" -#, unused msgid "onboarding-v2.welcome.desc3.title" msgstr "Guia do contribuidor" -#: src/app/main/ui/onboarding/team_choice.cljs:31 msgid "onboarding-v2.welcome.title" msgstr "Bem-vindo ao Penpot!" -#: src/app/main/ui/onboarding/team_choice.cljs:215 msgid "onboarding.choice.team-up.create-team-desc" msgstr "Depois de nomear sua equipe, você poderá convidar pessoas para participar." -#: src/app/main/ui/onboarding/team_choice.cljs:224 msgid "onboarding.choice.team-up.create-team-placeholder" msgstr "Digite o nome da equipe" -#: src/app/main/ui/dashboard/projects.cljs:89, src/app/main/ui/onboarding/team_choice.cljs:140 msgid "onboarding.choice.team-up.invite-members" msgstr "Convide membros" -#: src/app/main/ui/onboarding/team_choice.cljs:141 msgid "onboarding.choice.team-up.invite-members-info" msgstr "" "Lembre-se de incluir todos. Desenvolvedores, designers, gerentes... a " "diversidade soma :)" -#: src/app/main/ui/dashboard/team.cljs:202, src/app/main/ui/onboarding/team_choice.cljs:146 msgid "onboarding.choice.team-up.roles" msgstr "Convide com a função:" -#, unused msgid "onboarding.newsletter.accept" msgstr "Sim, assinar" -#: src/app/main/ui/onboarding/newsletter.cljs:40 msgid "onboarding.newsletter.acceptance-message" msgstr "" "Sua solicitação de inscrição foi enviada, enviaremos um e-mail para " "confirmá-la." -#: src/app/main/ui/onboarding/newsletter.cljs:95 msgid "onboarding.newsletter.policy" msgstr "Politica de privacidade." -#: src/app/main/ui/onboarding/newsletter.cljs:60 msgid "onboarding.newsletter.title" msgstr "Deseja receber novidades sobre o Penpot?" -#: src/app/main/ui/onboarding/team_choice.cljs:213 msgid "onboarding.team-modal.create-team" msgstr "Crie uma equipe" -#: src/app/main/ui/onboarding/team_choice.cljs:35 msgid "onboarding.team-modal.create-team-desc" msgstr "" "Uma equipe permite que você colabore com outros usuários do Penpot " "trabalhando nos mesmos arquivos e projetos." -#: src/app/main/ui/onboarding/team_choice.cljs:40 msgid "onboarding.team-modal.create-team-feature-1" msgstr "Arquivos e projetos ilimitados" -#: src/app/main/ui/onboarding/team_choice.cljs:44 msgid "onboarding.team-modal.create-team-feature-2" msgstr "Edição multiusuário" -#: src/app/main/ui/onboarding/team_choice.cljs:48 msgid "onboarding.team-modal.create-team-feature-3" msgstr "Gerenciamento de funções" -#: src/app/main/ui/onboarding/team_choice.cljs:52 msgid "onboarding.team-modal.create-team-feature-4" msgstr "Membros ilimitados" -#: src/app/main/ui/onboarding/team_choice.cljs:56 msgid "onboarding.team-modal.create-team-feature-5" msgstr "100% gratuito!" -#: src/app/main/ui/onboarding/templates.cljs:78 msgid "onboarding.templates.subtitle" msgstr "Aqui estão alguns modelos." -#: src/app/main/ui/onboarding/templates.cljs:77 msgid "onboarding.templates.title" msgstr "Começar a criar" -#, unused msgid "onboarding.welcome.alt" msgstr "Penpot" -#: src/app/main/ui/auth/recovery.cljs:99 +#: src/app/main/ui/auth/recovery.cljs msgid "profile.recovery.go-to-login" msgstr "Ir para a página de login" -#: src/app/main/ui/viewer/inspect/exports.cljs:147, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:631, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:137, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:148, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:188, src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:158, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:399, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:410, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:430, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:441, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:458, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:472, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:309, src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:183, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:373, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:389, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:245, src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:172 +#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs, src/app/main/ui/workspace/sidebar/options/menus/layer.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs, src/app/main/ui/workspace/sidebar/options/menus/blur.cljs msgid "settings.multiple" msgstr "Misto" # SECTIONS -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:414 msgid "shortcut-section.basics" msgstr "Fundamentos" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:420 msgid "shortcut-section.dashboard" msgstr "Painel" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:423 msgid "shortcut-section.viewer" msgstr "Espectador" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:417 msgid "shortcut-section.workspace" msgstr "Espaço de trabalho" # SUBSECTIONS -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:56 msgid "shortcut-subsection.alignment" msgstr "Alinhamento" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:57 msgid "shortcut-subsection.edit" msgstr "Editar" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:58 msgid "shortcut-subsection.general-dashboard" msgstr "Geral" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:59 msgid "shortcut-subsection.general-viewer" msgstr "Geral" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:60 msgid "shortcut-subsection.main-menu" msgstr "Menu principal" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:61 msgid "shortcut-subsection.modify-layers" msgstr "Modificar camadas" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:62 msgid "shortcut-subsection.navigation-dashboard" msgstr "Navegação" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:63 msgid "shortcut-subsection.navigation-viewer" msgstr "Navegação" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:64 msgid "shortcut-subsection.navigation-workspace" msgstr "Navegação" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:65 msgid "shortcut-subsection.panels" msgstr "Painéis" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:66 msgid "shortcut-subsection.path-editor" msgstr "Curvas" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:67 msgid "shortcut-subsection.shape" msgstr "Formas" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:69 msgid "shortcut-subsection.tools" msgstr "Ferramentas" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:70 msgid "shortcut-subsection.zoom-viewer" msgstr "Zoom" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:71 msgid "shortcut-subsection.zoom-workspace" msgstr "Zoom" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:72 msgid "shortcuts.add-comment" msgstr "Comentários" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:73 msgid "shortcuts.add-node" msgstr "Adicionar ponto" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:74 msgid "shortcuts.align-bottom" msgstr "Alinhar a base" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:76 msgid "shortcuts.align-hcenter" msgstr "Centralizar horizontalmente" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:78 msgid "shortcuts.align-left" msgstr "Alinhar a esquerda" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:79 msgid "shortcuts.align-right" msgstr "Alinhar a direita" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:80 msgid "shortcuts.align-top" msgstr "Alinhar ao topo" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:81 msgid "shortcuts.align-vcenter" msgstr "Centralizar verticalmente" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:82 msgid "shortcuts.artboard-selection" msgstr "Criar tela a partir da seleção" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:84 msgid "shortcuts.bool-difference" msgstr "Subtrair" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:85 msgid "shortcuts.bool-exclude" msgstr "Exclusão" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:86 msgid "shortcuts.bool-intersection" msgstr "Interseccionar" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:87 msgid "shortcuts.bool-union" msgstr "União" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:88 msgid "shortcuts.bring-back" msgstr "Mover ao fundo" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:89 msgid "shortcuts.bring-backward" msgstr "Mover para trás" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:90 msgid "shortcuts.bring-forward" msgstr "Mover para a frente" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:91 msgid "shortcuts.bring-front" msgstr "Mover ao topo" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:92 msgid "shortcuts.clear-undo" msgstr "Limpar desfazer" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:93 msgid "shortcuts.copy" msgstr "Copiar" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:94 msgid "shortcuts.create-component" msgstr "Criar componente" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:95 msgid "shortcuts.create-new-project" msgstr "Criar novo" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:96 msgid "shortcuts.cut" msgstr "Recortar" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:97 msgid "shortcuts.decrease-zoom" msgstr "Reduzir zoom" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:98 msgid "shortcuts.delete" msgstr "Apagar" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:99 msgid "shortcuts.delete-node" msgstr "Apagar ponto" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:100 msgid "shortcuts.detach-component" msgstr "Quebrar componente" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:101 msgid "shortcuts.draw-curve" msgstr "Curva" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:102 msgid "shortcuts.draw-ellipse" msgstr "Elipse" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:103 msgid "shortcuts.draw-frame" msgstr "Tela" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:104 msgid "shortcuts.draw-nodes" msgstr "Desenhar caminho" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:105 msgid "shortcuts.draw-path" msgstr "Caminho" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:106 msgid "shortcuts.draw-rect" msgstr "Retângulo" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:107 msgid "shortcuts.draw-text" msgstr "Texto" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:108 msgid "shortcuts.duplicate" msgstr "Duplicar" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:109 msgid "shortcuts.escape" msgstr "Cancelar" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:110 msgid "shortcuts.export-shapes" msgstr "Exportar formas" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:111 msgid "shortcuts.fit-all" msgstr "Ajustar para ver tudo" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:112 msgid "shortcuts.flip-horizontal" msgstr "Refletir horizontalmente" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:113 msgid "shortcuts.flip-vertical" msgstr "Refletir verticalmente" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:116 msgid "shortcuts.go-to-drafts" msgstr "Ir para rascunhos" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:117 msgid "shortcuts.go-to-libs" msgstr "Ir para as bibliotecas compartilhadas" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:118 msgid "shortcuts.go-to-search" msgstr "Pesquisar" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:119 msgid "shortcuts.group" msgstr "Agrupar" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:120 msgid "shortcuts.h-distribute" msgstr "Distribuir horizontalmente" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:121 msgid "shortcuts.hide-ui" msgstr "Mostrar/ocultar interface" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:122 msgid "shortcuts.increase-zoom" msgstr "Mais zoom" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:123 msgid "shortcuts.insert-image" msgstr "Inserir imagem" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:125 msgid "shortcuts.join-nodes" msgstr "Unir pontos" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:131 msgid "shortcuts.make-corner" msgstr "Arredondar canto" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:132 msgid "shortcuts.make-curve" msgstr "Criar curva" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:133 msgid "shortcuts.mask" msgstr "Máscara" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:134 msgid "shortcuts.merge-nodes" msgstr "Unir pontos" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:135 msgid "shortcuts.move" msgstr "Mover" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:136 msgid "shortcuts.move-fast-down" msgstr "Mover para baixo rápido" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:137 msgid "shortcuts.move-fast-left" msgstr "Mover para a esquerda rápido" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:138 msgid "shortcuts.move-fast-right" msgstr "Mover para a direita rápido" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:139 msgid "shortcuts.move-fast-up" msgstr "Mover para cima rápido" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:140 msgid "shortcuts.move-nodes" msgstr "Mover ponto" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:141 msgid "shortcuts.move-unit-down" msgstr "Mover para baixo" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:142 msgid "shortcuts.move-unit-left" msgstr "Mover para a esquerda" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:143 msgid "shortcuts.move-unit-right" msgstr "Mover para a direita" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:144 msgid "shortcuts.move-unit-up" msgstr "Mover para cima" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:145 msgid "shortcuts.next-frame" msgstr "Próximo quadro" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:516 msgid "shortcuts.not-found" msgstr "Não foram encontrados atalhos" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:146 msgid "shortcuts.opacity-0" msgstr "Definir opacidade para 100%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:147 msgid "shortcuts.opacity-1" msgstr "Definir opacidade para 10%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:148 msgid "shortcuts.opacity-2" msgstr "Definir opacidade para 20%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:149 msgid "shortcuts.opacity-3" msgstr "Definir opacidade para 30%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:150 msgid "shortcuts.opacity-4" msgstr "Definir opacidade para 40%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:151 msgid "shortcuts.opacity-5" msgstr "Definir opacidade para 50%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:152 msgid "shortcuts.opacity-6" msgstr "Definir opacidade para 60%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:153 msgid "shortcuts.opacity-7" msgstr "Definir opacidade para 70%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:154 msgid "shortcuts.opacity-8" msgstr "Definir opacidade para 80%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:155 msgid "shortcuts.opacity-9" msgstr "Definir opacidade para 90%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:156 msgid "shortcuts.open-color-picker" msgstr "Seletor de Cores" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:157 msgid "shortcuts.open-comments" msgstr "Ir para seção de comentários" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:158 msgid "shortcuts.open-dashboard" msgstr "Ir para o dashboard" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:159 msgid "shortcuts.open-inspect" msgstr "Ir para seção de inspeção" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:160 msgid "shortcuts.open-interactions" msgstr "Ir para seção de interação" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:161 msgid "shortcuts.open-viewer" msgstr "Ir para seção de interação" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:162 msgid "shortcuts.open-workspace" msgstr "Ir para o workspace" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:260 msgid "shortcuts.or" msgstr " ou " -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:163 msgid "shortcuts.paste" msgstr "Colar" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:164 msgid "shortcuts.prev-frame" msgstr "Tela anterior" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:165 msgid "shortcuts.redo" msgstr "Refazer" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:166 msgid "shortcuts.reset-zoom" msgstr "Redefinir zoom" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:168 msgid "shortcuts.search-placeholder" msgstr "Procurar nos atalhos" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:169 msgid "shortcuts.select-all" msgstr "Selecionar todos" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:173 msgid "shortcuts.separate-nodes" msgstr "Separar pontos" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:174 msgid "shortcuts.show-pixel-grid" msgstr "Mostrar/ocultar grade de pixels" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:175 msgid "shortcuts.show-shortcuts" msgstr "Mostrar/ocultar atalhos" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:176 msgid "shortcuts.snap-nodes" msgstr "Aderir aos pontos" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:177 msgid "shortcuts.snap-pixel-grid" msgstr "Ajustar a grade de Pixels" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:178 msgid "shortcuts.start-editing" msgstr "Começar a editar" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:179 msgid "shortcuts.start-measure" msgstr "Iniciar medição" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:180 msgid "shortcuts.stop-measure" msgstr "Parar medição" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:185 msgid "shortcuts.thumbnail-set" msgstr "Definir como miniatura" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:496, src/app/main/ui/workspace/sidebar/shortcuts.cljs:505 +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs msgid "shortcuts.title" msgstr "Atalhos do teclado" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:186 msgid "shortcuts.toggle-alignment" msgstr "Alternar alinhamento dinâmico" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:187 msgid "shortcuts.toggle-assets" msgstr "Mostrar/Esconder ativos" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:188 msgid "shortcuts.toggle-colorpalette" msgstr "Mostrar/Esconder paleta de cores" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:189 msgid "shortcuts.toggle-focus-mode" msgstr "Entrar/Sair do modo de foco" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:190 msgid "shortcuts.toggle-fullscreen" msgstr "Entrar/Sair da tela cheia" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:192 msgid "shortcuts.toggle-history" msgstr "Mostrar/Esconder histórico" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:193 msgid "shortcuts.toggle-layers" msgstr "Mostrar/Esconder camadas" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:194 msgid "shortcuts.toggle-layout-flex" msgstr "Adicionar/remover Flex Layout" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:196 msgid "shortcuts.toggle-lock" msgstr "Bloquear selecionado" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:197 msgid "shortcuts.toggle-lock-size" msgstr "Fixar proporções" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:202 msgid "shortcuts.toggle-textpalette" msgstr "Mostrar/Esconder paleta de tipografias" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:205 msgid "shortcuts.toggle-zoom-style" msgstr "Alternar estilo de zoom" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:207 msgid "shortcuts.undo" msgstr "Desfazer" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:208 msgid "shortcuts.ungroup" msgstr "Desagrupar" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:209 msgid "shortcuts.unmask" msgstr "Retirar máscara" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:210 msgid "shortcuts.v-distribute" msgstr "Distribuir verticalmente" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:213 msgid "shortcuts.zoom-selected" msgstr "Ajustar zoom a seleção" -#: src/app/main/ui/dashboard/files.cljs:158 +#: src/app/main/ui/dashboard/files.cljs msgid "title.dashboard.files" msgstr "%s - Penpot" -#: src/app/main/ui/dashboard/fonts.cljs:37 +#: src/app/main/ui/dashboard/fonts.cljs msgid "title.dashboard.font-providers" msgstr "Provedores de fonte - %s - Penpot" -#: src/app/main/ui/dashboard/fonts.cljs:36 +#: src/app/main/ui/dashboard/fonts.cljs msgid "title.dashboard.fonts" msgstr "Fontes - %s - Penpot" -#: src/app/main/ui/dashboard/projects.cljs:320 +#: src/app/main/ui/dashboard/projects.cljs msgid "title.dashboard.projects" msgstr "Projetos - %s - Penpot" -#: src/app/main/ui/dashboard/search.cljs:32 +#: src/app/main/ui/dashboard/search.cljs msgid "title.dashboard.search" msgstr "Pesquisar - %s - Penpot" -#: src/app/main/ui/dashboard/libraries.cljs:44 +#: src/app/main/ui/dashboard/libraries.cljs msgid "title.dashboard.shared-libraries" msgstr "Bibliotecas Compartilhadas - %s - Penpot" -#: src/app/main/ui/auth/verify_token.cljs:68, src/app/main/ui/auth.cljs:54 +#: src/app/main/ui/auth/verify_token.cljs, src/app/main/ui/auth.cljs msgid "title.default" msgstr "Penpot - Liberdade de design para equipes" -#: src/app/main/ui/settings/feedback.cljs:110 +#: src/app/main/ui/settings/feedback.cljs msgid "title.settings.feedback" msgstr "Dê sua opinião - Penpot" -#: src/app/main/ui/settings/options.cljs:80 +#: src/app/main/ui/settings/options.cljs msgid "title.settings.options" msgstr "Configurações - Penpot" -#: src/app/main/ui/settings/password.cljs:115 +#: src/app/main/ui/settings/password.cljs msgid "title.settings.password" msgstr "Senha - Penpot" -#: src/app/main/ui/settings/profile.cljs:115 +#: src/app/main/ui/settings/profile.cljs msgid "title.settings.profile" msgstr "Perfil - Penpot" -#: src/app/main/ui/dashboard/team.cljs:727 +#: src/app/main/ui/dashboard/team.cljs msgid "title.team-invitations" msgstr "Convites - %s - Penpot" -#: src/app/main/ui/dashboard/team.cljs:493 +#: src/app/main/ui/dashboard/team.cljs msgid "title.team-members" msgstr "Membros - %s - Penpot" -#: src/app/main/ui/dashboard/team.cljs:1036 +#: src/app/main/ui/dashboard/team.cljs msgid "title.team-settings" msgstr "Configurações - %s - Penpot" -#: src/app/main/ui/dashboard/team.cljs:989 msgid "title.team-webhooks" msgstr "Webhooks - %s - Penpot" -#: src/app/main/ui/viewer.cljs:419 +#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs msgid "title.viewer" msgstr "%s - Modo protótipo - Penpot" -#: src/app/main/ui/workspace.cljs:190 +#: src/app/main/ui/workspace.cljs msgid "title.workspace" msgstr "%s - Penpot" -#: src/app/main/ui.cljs:144 msgid "viewer.breaking-change.description" msgstr "" "Este link compartilhável não é mais válido. Crie ou peça ao proprietário um " "novo." -#: src/app/main/ui.cljs:143 msgid "viewer.breaking-change.message" msgstr "Desculpe!" -#: src/app/main/ui/viewer.cljs:569 +#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs msgid "viewer.empty-state" msgstr "Não foram encontradas telas nesta página." -#: src/app/main/ui/viewer.cljs:574 +#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs msgid "viewer.frame-not-found" msgstr "Tela não encontrada." -#: src/app/main/ui/viewer/header.cljs:336 msgid "viewer.header.comments-section" msgstr "Comentários (%s)" -#: src/app/main/ui/viewer/interactions.cljs:292 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.dont-show-interactions" msgstr "Não mostrar interações" -#: src/app/main/ui/viewer/header.cljs:188 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.fullscreen" msgstr "Tela cheia" -#: src/app/main/ui/viewer/header.cljs:345 msgid "viewer.header.inspect-section" msgstr "Inspeção (%s)" -#: src/app/main/ui/viewer/interactions.cljs:282 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.interactions" msgstr "Interações" -#: src/app/main/ui/viewer/header.cljs:327 msgid "viewer.header.interactions-section" msgstr "Interações (%s)" -#: src/app/main/ui/viewer/share_link.cljs:187 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.share.copy-link" msgstr "Copiar link" -#: src/app/main/ui/viewer/interactions.cljs:300 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.show-interactions" msgstr "Mostrar interações" -#: src/app/main/ui/viewer/interactions.cljs:311 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.show-interactions-on-click" msgstr "Mostrar interações ao clicar" -#: src/app/main/ui/viewer/header.cljs:231 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.sitemap" msgstr "Mapa do site" -#: src/app/main/ui/dashboard/team.cljs:948 +#, fuzzy msgid "webhooks.last-delivery.success" msgstr "O último envio foi bem-sucedido." -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:58 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.hcenter" msgstr "Centralizar horizontalmente (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:74 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.hdistribute" msgstr "Distribuir espaçamento horizontal (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:50 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.hleft" msgstr "Alinhar a esquerda (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:66 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.hright" msgstr "Alinhar a direita (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:99 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.vbottom" msgstr "Alinhar a base (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:91 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.vcenter" msgstr "Centralizar verticalmente (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:104 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.vdistribute" msgstr "Distribuir espaçamento vertical (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:83 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.vtop" msgstr "Alinhar ao topo (%s)" #: src/app/main/ui/workspace/sidebar/assets.cljs -#, unused msgid "workspace.assets.assets" msgstr "Ativos" -#: src/app/main/ui/workspace/sidebar/assets.cljs:134 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.box-filter-all" msgstr "Todos os ativos" -#: src/app/main/ui/dashboard/grid.cljs:130, src/app/main/ui/dashboard/grid.cljs:162, src/app/main/ui/workspace/sidebar/assets/colors.cljs:485, src/app/main/ui/workspace/sidebar/assets.cljs:150 +#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.colors" msgstr "Cores" -#: src/app/main/ui/dashboard/grid.cljs:126, src/app/main/ui/dashboard/grid.cljs:141, src/app/main/ui/workspace/sidebar/assets/components.cljs:513, src/app/main/ui/workspace/sidebar/assets.cljs:139 +#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.components" msgstr "Componentes" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:131 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.create-group" msgstr "Criar grupo" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:142 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.create-group-hint" msgstr "" "Seus itens serão nomeados automaticamente como \"nome do grupo / nome do " "item\"" -#: src/app/main/ui/workspace/context_menu.cljs:529, src/app/main/ui/workspace/sidebar/assets/colors.cljs:251, src/app/main/ui/workspace/sidebar/assets/components.cljs:577, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:424, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:443 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.delete" msgstr "Excluir" -#: src/app/main/ui/workspace/context_menu.cljs:534, src/app/main/ui/workspace/sidebar/assets/components.cljs:572 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs, src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.duplicate" msgstr "Duplicar" -#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:247, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:439 +#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.edit" msgstr "Editar" -#: src/app/main/ui/workspace/sidebar/assets/graphics.cljs:384, src/app/main/ui/workspace/sidebar/assets.cljs:145 +#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.graphics" msgstr "Imagens" -#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:255, src/app/main/ui/workspace/sidebar/assets/components.cljs:581, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:428, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:448 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.group" msgstr "Agrupar" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:141 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.group-name" msgstr "Nome do grupo" -#: src/app/main/ui/workspace/sidebar/assets.cljs:168 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.libraries" msgstr "Bibliotecas" -#: src/app/main/ui/workspace/sidebar/assets/file_library.cljs:62, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:347 msgid "workspace.assets.local-library" msgstr "biblioteca local" -#: src/app/main/ui/workspace/sidebar/assets/file_library.cljs:295 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.not-found" msgstr "Nenhum ativo encontrado" -#: src/app/main/ui/workspace/context_menu.cljs:532, src/app/main/ui/workspace/sidebar/assets/colors.cljs:243, src/app/main/ui/workspace/sidebar/assets/components.cljs:566, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:421, src/app/main/ui/workspace/sidebar/assets/groups.cljs:63, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:434 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.rename" msgstr "Renomear" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:132 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.rename-group" msgstr "Renomear grupo" -#: src/app/main/ui/workspace/sidebar/assets.cljs:173 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.search" msgstr "Procurar nos ativos" #: src/app/main/ui/workspace/sidebar/assets.cljs -#, unused msgid "workspace.assets.selected-count" msgid_plural "workspace.assets.selected-count" msgstr[0] "%s item selecionado" msgstr[1] "%s itens selecionados" -#: src/app/main/ui/dashboard/grid.cljs:134, src/app/main/ui/dashboard/grid.cljs:189, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:397, src/app/main/ui/workspace/sidebar/assets.cljs:155 +#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.typography" msgstr "Tipografias" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused msgid "workspace.assets.typography.font-id" msgstr "Fonte" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:505 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.font-size" msgstr "Tamanho" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:501 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.font-variant-id" msgstr "Variante" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:523 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.go-to-edit" msgstr "Ir para biblioteca de estilo para editar" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:513 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.letter-spacing" msgstr "Espaçamento de letra" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:509 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.line-height" msgstr "Altura da linha" -#: src/app/main/ui/dashboard/grid.cljs:199, src/app/main/ui/workspace/libraries.cljs:461, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:464, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:489, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:596, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:615 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, src/app/main/ui/inspect/attributes/text.cljs, src/app/main/ui/inspect/attributes/text.cljs msgid "workspace.assets.typography.sample" msgstr "Ag" -#, unused msgid "workspace.assets.typography.text-styles" msgstr "Estilos de texto" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:517 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.text-transform" msgstr "Transformações de texto" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:66 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.ungroup" msgstr "Desagrupar" -#: src/app/main/ui/workspace/sidebar/layers.cljs:525 msgid "workspace.focus.focus-mode" msgstr "Modo de foco" -#: src/app/main/ui/workspace/context_menu.cljs:287, src/app/main/ui/workspace/context_menu.cljs:553 msgid "workspace.focus.focus-off" msgstr "Foco desligado" -#: src/app/main/ui/workspace/context_menu.cljs:286 msgid "workspace.focus.focus-on" msgstr "Foco ligado" -#, unused msgid "workspace.focus.selection" msgstr "Seleção" -#: src/app/util/color.cljs:34 +#: src/app/main/data/workspace/libraries.cljs, src/app/main/ui/components/color_bullet.cljs msgid "workspace.gradients.linear" msgstr "Gradiente linear" -#: src/app/util/color.cljs:35 +#: src/app/main/data/workspace/libraries.cljs, src/app/main/ui/components/color_bullet.cljs msgid "workspace.gradients.radial" msgstr "Gradiente radial" -#: src/app/main/ui/workspace/main_menu.cljs:238 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.disable-dynamic-alignment" msgstr "Desabilitar alinhamento dinâmico" #: src/app/main/ui/workspace/header.cljs -#, unused msgid "workspace.header.menu.disable-scale-text" msgstr "Desativar escalonamento de texto" -#: src/app/main/ui/workspace/main_menu.cljs:223 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.disable-snap-guides" msgstr "Desativar aderência as réguas" -#: src/app/main/ui/workspace/main_menu.cljs:253 msgid "workspace.header.menu.disable-snap-pixel-grid" msgstr "Desativar aderência a grade de pixels" -#: src/app/main/ui/workspace/main_menu.cljs:239 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.enable-dynamic-alignment" msgstr "Habilitar alinhamento dinâmico" #: src/app/main/ui/workspace/header.cljs -#, unused msgid "workspace.header.menu.enable-scale-text" msgstr "Ativar escalonamento de texto" -#: src/app/main/ui/workspace/main_menu.cljs:224 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.enable-snap-guides" msgstr "Aderir as réguas" -#: src/app/main/ui/workspace/main_menu.cljs:254 msgid "workspace.header.menu.enable-snap-pixel-grid" msgstr "Habilitar aderência a grade de pixels" -#: src/app/main/ui/workspace/main_menu.cljs:382 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.hide-artboard-names" msgstr "Esconder nomes das telas" -#: src/app/main/ui/workspace/main_menu.cljs:353 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.hide-palette" msgstr "Esconder paleta de cores" -#: src/app/main/ui/workspace/main_menu.cljs:394 msgid "workspace.header.menu.hide-pixel-grid" msgstr "Ocultar grade de pixels" -#: src/app/main/ui/workspace/main_menu.cljs:320 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.hide-rules" msgstr "Ocultar réguas" -#: src/app/main/ui/workspace/main_menu.cljs:367 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.hide-textpalette" msgstr "Ocultar paleta de tipografias" -#: src/app/main/ui/workspace/main_menu.cljs:731 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.edit" msgstr "Editar" -#: src/app/main/ui/workspace/main_menu.cljs:720 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.file" msgstr "Arquivo" -#: src/app/main/ui/workspace/main_menu.cljs:777 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.help-info" msgstr "Ajuda e informações" -#: src/app/main/ui/workspace/main_menu.cljs:753 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.preferences" msgstr "Preferências" -#: src/app/main/ui/workspace/main_menu.cljs:742 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.view" msgstr "Visualizar" -#: src/app/main/ui/workspace/main_menu.cljs:432 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.select-all" msgstr "Selecionar tudo" -#: src/app/main/ui/workspace/main_menu.cljs:383 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.show-artboard-names" msgstr "Mostrar nomes das telas" -#: src/app/main/ui/workspace/main_menu.cljs:354 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.show-palette" msgstr "Mostrar paleta de cores" -#: src/app/main/ui/workspace/main_menu.cljs:395 msgid "workspace.header.menu.show-pixel-grid" msgstr "Mostrar grade de pixels" -#: src/app/main/ui/workspace/main_menu.cljs:321 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.show-rules" msgstr "Mostrar réguas" -#: src/app/main/ui/workspace/main_menu.cljs:368 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.show-textpalette" msgstr "Mostrar paleta de tipografias" -#: src/app/main/ui/viewer/header.cljs:98, src/app/main/ui/workspace/right_header.cljs:120 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.reset-zoom" msgstr "Redefinir" #: src/app/main/ui/workspace/header.cljs -#, unused msgid "workspace.header.save-error" msgstr "Erro ao salvar" -#: src/app/main/ui/workspace/right_header.cljs:52 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.saved" msgstr "Salvo" #: src/app/main/ui/workspace/header.cljs -#, unused msgid "workspace.header.saving" msgstr "Salvando" -#: src/app/main/ui/workspace/right_header.cljs:42, src/app/main/ui/workspace/right_header.cljs:47 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.unsaved" msgstr "Há alterações não salvas" -#: src/app/main/ui/workspace/right_header.cljs:239 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.viewer" msgstr "Ver protótipo (%s)" -#: src/app/main/ui/viewer/header.cljs:109 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom-fill" msgstr "Ajustar até preencher" -#: src/app/main/ui/viewer/header.cljs:102 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom-fit" msgstr "Ajustar até encaixar" -#: src/app/main/ui/workspace/right_header.cljs:123 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom-fit-all" msgstr "Ajustar a janela" -#: src/app/main/ui/viewer/header.cljs:116 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom-full-screen" msgstr "Tela cheia" -#: src/app/main/ui/workspace/right_header.cljs:130 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom-selected" msgstr "Zoom na seleção" #: src/app/main/ui/workspace/libraries.cljs -#, unused msgid "workspace.libraries.add" msgstr "Adicionar" -#: src/app/main/ui/workspace/libraries.cljs:80, src/app/main/ui/workspace/libraries.cljs:99 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.colors" msgstr "%s cores" -#: src/app/main/ui/workspace/color_palette_ctx_menu.cljs:60, src/app/main/ui/workspace/colorpicker/libraries.cljs:73, src/app/main/ui/workspace/text_palette_ctx_menu.cljs:50 +#: src/app/main/ui/workspace/colorpicker/libraries.cljs, src/app/main/ui/workspace/colorpalette.cljs msgid "workspace.libraries.colors.file-library" msgstr "Biblioteca do arquivo" #: src/app/main/ui/workspace/colorpicker.cljs -#, unused msgid "workspace.libraries.colors.hsv" msgstr "HSV" -#: src/app/main/ui/workspace/color_palette_ctx_menu.cljs:82, src/app/main/ui/workspace/colorpicker/libraries.cljs:72 +#: src/app/main/ui/workspace/colorpicker/libraries.cljs, src/app/main/ui/workspace/colorpalette.cljs msgid "workspace.libraries.colors.recent-colors" msgstr "Cores recentes" #: src/app/main/ui/workspace/colorpicker.cljs -#, unused msgid "workspace.libraries.colors.rgb-complementary" msgstr "RGB Complementar" #: src/app/main/ui/workspace/colorpicker.cljs -#, unused msgid "workspace.libraries.colors.rgba" msgstr "RGBA" -#: src/app/main/ui/workspace/colorpicker.cljs:372 +#: src/app/main/ui/workspace/colorpicker.cljs msgid "workspace.libraries.colors.save-color" msgstr "Salvar estilo de cor" -#: src/app/main/ui/workspace/libraries.cljs:74, src/app/main/ui/workspace/libraries.cljs:91 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.components" msgstr "%s componentes" -#: src/app/main/ui/workspace/libraries.cljs:215 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.file-library" msgstr "Biblioteca de arquivos" -#: src/app/main/ui/workspace/libraries.cljs:77, src/app/main/ui/workspace/libraries.cljs:95 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.graphics" msgstr "%s imagens" -#: src/app/main/ui/workspace/libraries.cljs:209 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.in-this-file" msgstr "BIBLIOTECAS NESTE ARQUIVO" -#: src/app/main/ui/workspace/libraries.cljs:526, src/app/main/ui/workspace/libraries.cljs:531 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.libraries" msgstr "BIBLIOTECAS" #: src/app/main/ui/workspace/libraries.cljs -#, unused msgid "workspace.libraries.library" msgstr "BIBLIOTECA" -#: src/app/main/ui/workspace/libraries.cljs:380 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.no-libraries-need-sync" msgstr "Não há bibliotecas compartilhadas para atualizar" -#: src/app/main/ui/workspace/libraries.cljs:299 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.no-matches-for" msgstr "Não foram encontrados resultados para “%s“" -#: src/app/main/ui/workspace/libraries.cljs:296 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.no-shared-libraries-available" msgstr "Não há bibliotecas compartilhadas disponíveis" -#: src/app/main/ui/workspace/libraries.cljs:260 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.search-shared-libraries" msgstr "Procurar bibliotecas compartilhadas" -#: src/app/main/ui/workspace/libraries.cljs:256 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.shared-libraries" msgstr "BIBLIOTECAS COMPARTILHADAS" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:308 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.libraries.text.multiple-typography" msgstr "Tipografias múltiplas" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:311 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.libraries.text.multiple-typography-tooltip" msgstr "Desassociar todas as tipografias" -#: src/app/main/ui/workspace/libraries.cljs:83, src/app/main/ui/workspace/libraries.cljs:103 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.typography" msgstr "%s tipografias" -#: src/app/main/ui/workspace/libraries.cljs:402 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.update" msgstr "Atualizar" -#: src/app/main/ui/workspace/libraries.cljs:536 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.updates" msgstr "ATUALIZAÇÔES" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:737 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.add-interaction" msgstr "Clique no botão + para adicionar interações." -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:86, src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:102 +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs msgid "workspace.options.blur-options.title" msgstr "Desfoque" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:85 +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs msgid "workspace.options.blur-options.title.group" msgstr "Desfoque do grupo" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:84 +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs msgid "workspace.options.blur-options.title.multiple" msgstr "Desfoque da seleção" -#: src/app/main/ui/workspace/sidebar/options/page.cljs:32, src/app/main/ui/workspace/sidebar/options/page.cljs:39 +#: src/app/main/ui/workspace/sidebar/options/page.cljs msgid "workspace.options.canvas-background" msgstr "Fundo da tela" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:548 msgid "workspace.options.clip-content" msgstr "Cortar conteúdo" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:600, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:605 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs msgid "workspace.options.component" msgstr "Componente" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:163 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints" msgstr "Ancoragem" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:150 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.bottom" msgstr "Baixo" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:141, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:152 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.center" msgstr "Centro" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:229 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.fix-when-scrolling" msgstr "Fixar na rolagem" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:138 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.left" msgstr "Esquerda" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:140 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.leftright" msgstr "Esquerda e Direita" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:139 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.right" msgstr "Direita" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:142, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:153 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.scale" msgstr "Escalar" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:149 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.top" msgstr "Cima" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:151 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.topbottom" msgstr "Cima e Baixo" -#: src/app/main/ui/workspace/sidebar/options.cljs:112 +#: src/app/main/ui/workspace/sidebar/options.cljs msgid "workspace.options.design" msgstr "Design" -#: src/app/main/ui/viewer/inspect/exports.cljs:139 +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs msgid "workspace.options.export" msgstr "Exportar" #: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs -#, unused msgid "workspace.options.export-multiple" msgstr "Exportar seleção" -#: src/app/main/ui/viewer/inspect/exports.cljs:178, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:219 +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs msgid "workspace.options.export.suffix" msgstr "Sufixo" -#: src/app/main/ui/export.cljs:240 +#: 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.exporting-complete" msgstr "Exportação completa" -#: src/app/main/ui/export.cljs:172, src/app/main/ui/export.cljs:241, src/app/main/ui/viewer/inspect/exports.cljs:194, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:236 +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs msgid "workspace.options.exporting-object" msgstr "Exportando…" -#: src/app/main/ui/export.cljs:239 +#: 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.exporting-object-error" msgstr "Exportação falhou" -#: src/app/main/ui/export.cljs:242 +#: 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.exporting-object-slow" msgstr "A exportação está inesperadamente lenta" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:49, src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:174 +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs msgid "workspace.options.fill" msgstr "Preenchimento" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:178 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.flows.add-flow-start" msgstr "Adicionar entrada de fluxo" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -#, unused msgid "workspace.options.flows.flow-start" msgstr "Início do fluxo" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:161 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.flows.flow-starts" msgstr "Início de fluxo" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:29 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.auto" msgstr "Automático" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:157 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.column" msgstr "Colunas" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.grid-title" msgstr "Grade" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:196, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:237 msgid "workspace.options.grid.params.color" msgstr "Cor" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.params.columns" msgstr "Colunas" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:259 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.gutter" msgstr "Espaçamento" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:246 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.height" msgstr "Altura" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:270 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.margin" msgstr "Margem" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.params.rows" msgstr "Linhas" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:216, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:290 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.set-default" msgstr "Definir como padrão" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.params.size" msgstr "Tamanho" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.params.type" msgstr "Tipo" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:231 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.bottom" msgstr "Inferior" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:229 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.center" msgstr "Centro" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:228 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.left" msgstr "Esquerda" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:232 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.right" msgstr "Direita" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:225 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.stretch" msgstr "Esticar" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:227 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.top" msgstr "Superior" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:211, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:288 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.use-default" msgstr "Usar padrão" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:247 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.width" msgstr "Largura" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:158 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.row" msgstr "Linhas" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:156 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.square" msgstr "Quadrado" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:48 +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs msgid "workspace.options.group-fill" msgstr "Preenchimento do grupo" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:42 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.group-stroke" msgstr "Traçado do grupo" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:406 msgid "workspace.options.height" msgstr "Altura" -#: src/app/main/ui/workspace/sidebar/options.cljs:161 msgid "workspace.options.inspect" msgstr "Inspecionar" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:468 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-action" msgstr "Ação" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:41, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:367 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-after-delay" msgstr "Após um tempo" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:614 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-animation" msgstr "Animação" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:406 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-animation-dissolve" msgstr "Dissolver" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:405 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-animation-none" msgstr "Nenhuma" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:412 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-animation-push" msgstr "Empurrar" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:407 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-animation-slide" msgstr "Deslizar" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:391 msgid "workspace.options.interaction-auto" msgstr "automático" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:604 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-background" msgstr "Adicionar um fundo na sobreposição" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:590 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-close-outside" msgstr "Fechar quando clicar no fundo" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:372 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-close-overlay" msgstr "Fechar sobreposição" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:56 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-close-overlay-dest" msgstr "Fechar sobreposição: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:456 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-delay" msgstr "Delay" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:478 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-destination" msgstr "Destino" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:661 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-duration" msgstr "Duração" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:674 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing" msgstr "Atenuação" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:416 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing-ease" msgstr "Ease" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:417 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing-ease-in" msgstr "Ease in" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:419 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing-ease-in-out" msgstr "Ease in out" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:418 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing-ease-out" msgstr "Ease out" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:415 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing-linear" msgstr "Linear" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -#, unused msgid "workspace.options.interaction-in" msgstr "Entrando" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:39, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:364 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-mouse-enter" msgstr "Mouse entra" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:40, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:365 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-mouse-leave" msgstr "Mouse sai" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:458, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:459, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:464, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:663, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:665, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:669 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-ms" msgstr "ms" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:369 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-navigate-to" msgstr "Navegar para" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:50 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-navigate-to-dest" msgstr "Navegar para: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:51, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:53, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:55, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:380 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-none" msgstr "(não especificado)" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:691 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-offset-effect" msgstr "Efeito de offset" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:35, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:360 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-on-click" msgstr "Ao clicar" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:370 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-open-overlay" msgstr "Abrir sobreposição" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:52 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-open-overlay-dest" msgstr "Abrir sobreposição: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:59, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:374 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-open-url" msgstr "Abrir URL" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -#, unused msgid "workspace.options.interaction-out" msgstr "Saindo" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:403 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-bottom-center" msgstr "Centro inferior" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:401 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-bottom-left" msgstr "Inferior esquerdo" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:402 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-bottom-right" msgstr "Inferior direito" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:397 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-center" msgstr "Centro" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:396 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-manual" msgstr "Manual" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:400 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-top-center" msgstr "Superior (no meio)" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:398 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-top-left" msgstr "Superior (a esquerda)" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:399 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-top-right" msgstr "Superior (a direita)" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:524 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-position" msgstr "Posição" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:494 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-preserve-scroll" msgstr "Preservar posição da rolagem (scroll)" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:58, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:373 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-prev-screen" msgstr "Tela anterior" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:515 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-relative-to" msgstr "Relativo a" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:57, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:379, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:393, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:394 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-self" msgstr "Si próprio" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:371 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-toggle-overlay" msgstr "Alternar sobreposição" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:54 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-toggle-overlay-dest" msgstr "Alternar sobreposição: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:445 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-trigger" msgstr "Ativador" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:503 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-url" msgstr "URL" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:37, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:362 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-while-hovering" msgstr "Durante o hover" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:38, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:363 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-while-pressing" msgstr "Enquanto clica" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:724 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interactions" msgstr "Interações" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:137 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.color" msgstr "Cor" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:126 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.color-burn" msgstr "Queimar cor" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:129 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.color-dodge" msgstr "Subexposição de cores" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:124 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.darken" msgstr "Escurecer" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:133 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.difference" msgstr "Diferença" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:134 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.exclusion" msgstr "Exclusão" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:132 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.hard-light" msgstr "Luz direta" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:135 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.hue" msgstr "Matiz" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:127 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.lighten" msgstr "Clarear" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:138 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.luminosity" msgstr "Luminusidade" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:125 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.multiply" msgstr "Multiplicação" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:123 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.normal" msgstr "Normal" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:130 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.overlay" msgstr "Sobreposição" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:136 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.saturation" msgstr "Saturação" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:128 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.screen" msgstr "Tela" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:131 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.soft-light" msgstr "Luz difusa" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -#, unused msgid "workspace.options.layer-options.title" msgstr "Camada" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -#, unused msgid "workspace.options.layer-options.title.group" msgstr "Camadas do grupo" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -#, unused msgid "workspace.options.layer-options.title.multiple" msgstr "Camadas selecionadas" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout-item.advanced-ops" msgstr "Opções avançadas" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:564 +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs msgid "workspace.options.layout-item.layout-item-max-h" msgstr "Altura Máx." -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:531 +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs msgid "workspace.options.layout-item.layout-item-max-w" msgstr "Largura Máx." -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:548 +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs msgid "workspace.options.layout-item.layout-item-min-h" msgstr "Altura Min." -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:515 +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs msgid "workspace.options.layout-item.layout-item-min-w" msgstr "Altura Min." #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout-item.title.layout-item-max-h" msgstr "Altura máxima" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout-item.title.layout-item-max-w" msgstr "Largura máxima" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout-item.title.layout-item-min-h" msgstr "Altura mínima" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout-item.title.layout-item-min-w" msgstr "Largura mínima" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.bottom" msgstr "Inferior" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.direction.column" msgstr "Coluna" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.direction.row" msgstr "Linha" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.gap" msgstr "Espaço" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.left" msgstr "Esquerda" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout.margin" msgstr "Margem" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout.margin-all" msgstr "Todos os lados" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout.margin-simple" msgstr "Margem simples" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.packed" msgstr "embalado" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.padding" msgstr "Padding" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.padding-all" msgstr "Todos os lados" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.padding-simple" msgstr "Padding simples" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.right" msgstr "Direito" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.space-around" msgstr "espaçar em volta" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.space-between" msgstr "espaçar dentro" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.top" msgstr "Topo" -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:146 +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs msgid "workspace.options.more-colors" msgstr "Mais cores" -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:123 +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs msgid "workspace.options.more-lib-colors" msgstr "Mais cores da biblioteca" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:161 msgid "workspace.options.opacity" msgstr "Opacidade" #: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -#, unused msgid "workspace.options.position" msgstr "Posição" -#: src/app/main/ui/workspace/sidebar/options.cljs:157 +#: src/app/main/ui/workspace/sidebar/options.cljs msgid "workspace.options.prototype" msgstr "Protótipo" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:469, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:481 msgid "workspace.options.radius" msgstr "Raio" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:513 +#: 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:522 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.radius-bottom-right" msgstr "Inferior direito" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:495 +#: 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:504 +#: 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:532 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.radius.all-corners" msgstr "Todos os cantos" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:533 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.radius.single-corners" msgstr "Cantos individuais" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:183 msgid "workspace.options.recent-fonts" msgstr "Recente" -#: src/app/main/ui/export.cljs:284 +#: 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 "Repetir" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:451 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.rotation" msgstr "Rotação" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:180 msgid "workspace.options.search-font" msgstr "Procurar fonte" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:741 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.select-a-shape" msgstr "" "Selecione uma forma, tela ou grupo para arrastar uma conexão para outra " "tela." -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:105 +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs msgid "workspace.options.selection-color" msgstr "Cores selecionadas" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:47 +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs msgid "workspace.options.selection-fill" msgstr "Preenchimento da seleção" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:41 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.selection-stroke" msgstr "Selecionar traçado" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:40, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:198, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:200 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.blur" msgstr "Desfoque" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:238 msgid "workspace.options.shadow-options.color" msgstr "Cor da sombra" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:144 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.drop-shadow" msgstr "Sombra projetada" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:145 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.inner-shadow" msgstr "Sombra interna" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:38, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:186 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.offsetx" msgstr "X" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:39, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:224 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.offsety" msgstr "Y" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:41, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:211, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:213 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.spread" msgstr "Alcance" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:296 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.title" msgstr "Sombra" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:295 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.title.group" msgstr "Sombra do grupo" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:294 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.title.multiple" msgstr "Sombras da seleção" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:193 +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs msgid "workspace.options.show-fill-on-export" msgstr "Mostrar nas exportações" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:562 msgid "workspace.options.show-in-viewer" msgstr "Mostrar no modo protótipo" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:162 +#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.size" msgstr "Tamanho" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:355 +#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs msgid "workspace.options.size-presets" msgstr "Padrões de tamanho" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:43 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke" msgstr "Traçado" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -#, unused msgid "workspace.options.stroke-cap.circle-marker" msgstr "Ponta de círculo" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -#, unused msgid "workspace.options.stroke-cap.diamond-marker" msgstr "Ponta de losango" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -#, unused msgid "workspace.options.stroke-cap.line-arrow" msgstr "Seta de linha" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:124 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.none" msgstr "Nenhum" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:132 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.round" msgstr "Redonda" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:133 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.square" msgstr "Quadrada" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -#, unused msgid "workspace.options.stroke-cap.square-marker" msgstr "Ponta de quadrado" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -#, unused msgid "workspace.options.stroke-cap.triangle-arrow" msgstr "Seta triangular" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:192 msgid "workspace.options.stroke-color" msgstr "Cor do traçado" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:165 msgid "workspace.options.stroke-width" msgstr "Largura do traçado" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:87 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.center" msgstr "Centro" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:105 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.dashed" msgstr "Tracejada" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:104 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.dotted" msgstr "Pontilhada" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:88 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.inner" msgstr "Dentro" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:106 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.mixed" msgstr "Misturado" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:89 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.outer" msgstr "Fora" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:103 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.solid" msgstr "Sólido" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:115 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.align-bottom" msgstr "Alinhar a base" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:111 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.align-middle" msgstr "Alinhar no meio" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:107 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.align-top" msgstr "Alinhar ao topo" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:82 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.direction-ltr" msgstr "Esquerda para a direita" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:87 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.direction-rtl" msgstr "Direita para a esquerda" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:149 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.grow-auto-height" msgstr "Altura automática" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:145 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.grow-auto-width" msgstr "Largura automática" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:141 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.grow-fixed" msgstr "Fixo" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:381 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.options.text-options.letter-spacing" msgstr "Espaçamento entre letras" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:364 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.options.text-options.line-height" msgstr "Altura de linha" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused msgid "workspace.options.text-options.lowercase" msgstr "Minúsculo" #: src/app/main/ui/workspace/sidebar/options/menus/text.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused msgid "workspace.options.text-options.none" msgstr "Nenhum" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:176 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.strikethrough" msgstr "Rasurado (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:51 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.text-align-center" msgstr "Alinhar ao centro (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:59 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.text-align-justify" msgstr "Justificar (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:47 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.text-align-left" msgstr "Alinhar a esquerda (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:55 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.text-align-right" msgstr "Alinhar a direita (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:189 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.title" msgstr "Texto" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:188 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.title-group" msgstr "Texto do grupo" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:187 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.title-selection" msgstr "Texto de seleção" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused msgid "workspace.options.text-options.titlecase" msgstr "Iniciais maiúsculas" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:171 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.underline" msgstr "Sublinhado (%s)" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused msgid "workspace.options.text-options.uppercase" msgstr "Maiúsculo" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:745 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.use-play-button" msgstr "Use o botão play no cabeçalho para visualizar o protótipo." -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:395 msgid "workspace.options.width" msgstr "Largura" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:427 msgid "workspace.options.x" msgstr "eixo X" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:438 msgid "workspace.options.y" msgstr "eixo Y" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:167 msgid "workspace.path.actions.add-node" msgstr "Adicionar ponto (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:174 msgid "workspace.path.actions.delete-node" msgstr "Remover ponto (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:152 msgid "workspace.path.actions.draw-nodes" msgstr "Desenhar ponto (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:189 msgid "workspace.path.actions.join-nodes" msgstr "Unir pontos (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:204 msgid "workspace.path.actions.make-corner" msgstr "Transformar em retas (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:211 msgid "workspace.path.actions.make-curve" msgstr "Transformar em Curvas (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:182 msgid "workspace.path.actions.merge-nodes" msgstr "Juntar pontos (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:159 msgid "workspace.path.actions.move-nodes" msgstr "Mover pontos (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:196 msgid "workspace.path.actions.separate-nodes" msgstr "Separar pontos (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:218 msgid "workspace.path.actions.snap-nodes" msgstr "Aderir aos pontos (%s)" -#: src/app/main/ui/workspace/context_menu.cljs:441 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.add-flex" msgstr "Adicionar Flex Layout" -#: src/app/main/ui/workspace/context_menu.cljs:193 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.back" msgstr "Enviar para o fundo" -#: src/app/main/ui/workspace/context_menu.cljs:190 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.backward" msgstr "Enviar para trás" -#: src/app/main/ui/workspace/context_menu.cljs:139 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.copy" msgstr "Copiar" -#: src/app/main/ui/workspace/context_menu.cljs:275 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.create-artboard-from-selection" msgstr "Agrupar em uma tela" -#: src/app/main/ui/workspace/context_menu.cljs:465 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.create-component" msgstr "Criar componente" -#: src/app/main/ui/workspace/context_menu.cljs:142 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.cut" msgstr "Cortar" -#: src/app/main/ui/workspace/context_menu.cljs:486 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.delete" msgstr "Remover" -#: src/app/main/ui/workspace/context_menu.cljs:391 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.delete-flow-start" msgstr "Remover início de fluxo" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:432 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.detach-instance" msgstr "Quebrar instância" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:431 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.detach-instances-in-bulk" msgstr "Quebrar instâncias" -#: src/app/main/ui/workspace/context_menu.cljs:335, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:75 msgid "workspace.shape.menu.difference" msgstr "Diferença" -#: src/app/main/ui/workspace/context_menu.cljs:148 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.duplicate" msgstr "Duplicar" -#: src/app/main/ui/workspace/context_menu.cljs:321 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.edit" msgstr "Editar" -#: src/app/main/ui/workspace/context_menu.cljs:341 msgid "workspace.shape.menu.exclude" msgstr "Excluir" -#: src/app/main/ui/workspace/context_menu.cljs:348, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:89 msgid "workspace.shape.menu.flatten" msgstr "Achatar" -#: src/app/main/ui/workspace/context_menu.cljs:208 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.flip-horizontal" msgstr "Inverter horizontalmente" -#: src/app/main/ui/workspace/context_menu.cljs:204 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.flip-vertical" msgstr "Inverter verticalmente" -#: src/app/main/ui/workspace/context_menu.cljs:394 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.flow-start" msgstr "Início do fluxo" -#: src/app/main/ui/workspace/context_menu.cljs:184 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.forward" msgstr "Trazer para a frente" -#: src/app/main/ui/workspace/context_menu.cljs:187 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.front" msgstr "Trazer para o topo" #: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs -#, unused msgid "workspace.shape.menu.go-main" msgstr "Ir para o arquivo do componente principal" -#: src/app/main/ui/workspace/context_menu.cljs:261 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.group" msgstr "Agrupar" -#: src/app/main/ui/workspace/context_menu.cljs:363, src/app/main/ui/workspace/sidebar/layer_item.cljs:145 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.hide" msgstr "Esconder" -#: src/app/main/ui/workspace/context_menu.cljs:548, src/app/main/ui/workspace/main_menu.cljs:408 msgid "workspace.shape.menu.hide-ui" msgstr "Mostrar/ocultar Interface" -#: src/app/main/ui/workspace/context_menu.cljs:338 msgid "workspace.shape.menu.intersection" msgstr "Interseção" -#: src/app/main/ui/workspace/context_menu.cljs:371, src/app/main/ui/workspace/sidebar/layer_item.cljs:153 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.lock" msgstr "Bloquear" -#: src/app/main/ui/workspace/context_menu.cljs:266 +#: src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.mask" msgstr "Máscara" -#: src/app/main/ui/workspace/context_menu.cljs:145, src/app/main/ui/workspace/context_menu.cljs:545 +#: src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.paste" msgstr "Colar" -#: src/app/main/ui/workspace/context_menu.cljs:331 msgid "workspace.shape.menu.path" msgstr "Caminho" -#: src/app/main/ui/workspace/context_menu.cljs:432 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.remove-flex" msgstr "Excluir Flex Layout" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:436 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.reset-overrides" msgstr "Redefinir substituições" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:439 msgid "workspace.shape.menu.restore-main" msgstr "Restaurar componente principal" -#: src/app/main/ui/workspace/context_menu.cljs:174 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.select-layer" msgstr "Selecionar camada" -#: src/app/main/ui/workspace/context_menu.cljs:360, src/app/main/ui/workspace/sidebar/layer_item.cljs:144 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.show" msgstr "Mostrar" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:424 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.show-in-assets" msgstr "Mostrar no painel de ativos" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:442, src/app/main/ui/workspace/sidebar/assets/components.cljs:586 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.show-main" msgstr "Mostrar componente principal" -#: src/app/main/ui/workspace/context_menu.cljs:221 msgid "workspace.shape.menu.thumbnail-remove" msgstr "Remover miniatura" -#: src/app/main/ui/workspace/context_menu.cljs:223 msgid "workspace.shape.menu.thumbnail-set" msgstr "Definir como miniatura" -#: src/app/main/ui/workspace/context_menu.cljs:326 msgid "workspace.shape.menu.transform-to-path" msgstr "Transformar em caminho" -#: src/app/main/ui/workspace/context_menu.cljs:257 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.ungroup" msgstr "Desagrupar" -#: src/app/main/ui/workspace/context_menu.cljs:332, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:70 msgid "workspace.shape.menu.union" msgstr "Unir" -#: src/app/main/ui/workspace/context_menu.cljs:368, src/app/main/ui/workspace/sidebar/layer_item.cljs:152 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.unlock" msgstr "Desbloquear" -#: src/app/main/ui/workspace/context_menu.cljs:271 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.unmask" msgstr "Remover máscara" #: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs -#, unused msgid "workspace.shape.menu.update-components-in-bulk" msgstr "Atualizar componentes principais" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:445 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.update-main" msgstr "Atualizar o componente principal" -#: src/app/main/ui/components/tab_container.cljs:50 msgid "workspace.sidebar.collapse" msgstr "Recolher a barra lateral" -#: src/app/main/ui/workspace/sidebar/collapsable_button.cljs:26 msgid "workspace.sidebar.expand" msgstr "Expandir a barra lateral" -#: src/app/main/ui/workspace/right_header.cljs:231, src/app/main/ui/workspace/right_header.cljs:232 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.sidebar.history" msgstr "Histórico (%s)" -#: src/app/main/ui/workspace/sidebar/layers.cljs:522, src/app/main/ui/workspace/sidebar.cljs:100 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.sidebar.layers" msgstr "Camadas" -#: src/app/main/ui/workspace/sidebar/layers.cljs:308, src/app/main/ui/workspace/sidebar/layers.cljs:380 msgid "workspace.sidebar.layers.components" msgstr "Componentes" -#: src/app/main/ui/workspace/sidebar/layers.cljs:305, src/app/main/ui/workspace/sidebar/layers.cljs:338 msgid "workspace.sidebar.layers.frames" msgstr "Telas" -#: src/app/main/ui/workspace/sidebar/layers.cljs:306, src/app/main/ui/workspace/sidebar/layers.cljs:352 msgid "workspace.sidebar.layers.groups" msgstr "Grupos" -#: src/app/main/ui/workspace/sidebar/layers.cljs:310, src/app/main/ui/workspace/sidebar/layers.cljs:408 msgid "workspace.sidebar.layers.images" msgstr "Imagens" -#: src/app/main/ui/workspace/sidebar/layers.cljs:307, src/app/main/ui/workspace/sidebar/layers.cljs:366 msgid "workspace.sidebar.layers.masks" msgstr "Máscaras" -#: src/app/main/ui/workspace/sidebar/layers.cljs:289 msgid "workspace.sidebar.layers.search" msgstr "Pesquisar nas camadas" -#: src/app/main/ui/workspace/sidebar/layers.cljs:311, src/app/main/ui/workspace/sidebar/layers.cljs:422 msgid "workspace.sidebar.layers.shapes" msgstr "Formas" -#: src/app/main/ui/workspace/sidebar/layers.cljs:309, src/app/main/ui/workspace/sidebar/layers.cljs:394 msgid "workspace.sidebar.layers.texts" msgstr "Textos" -#: src/app/main/ui/viewer/inspect/attributes/svg.cljs:56, src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs:91 +#: src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs, src/app/main/ui/inspect/attributes/svg.cljs msgid "workspace.sidebar.options.svg-attrs.title" msgstr "Atributos SVG importados" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs:217 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs msgid "workspace.sidebar.sitemap" msgstr "Páginas" -#: src/app/main/ui/workspace/left_header.cljs:91 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.sitemap" msgstr "Mapa do site" -#: src/app/main/ui/workspace/sidebar.cljs:120 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.assets" msgstr "Ativos" -#: src/app/main/ui/workspace/palette.cljs:165, src/app/main/ui/workspace/palette.cljs:166 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.color-palette" msgstr "Paleta de cores (%s)" -#: src/app/main/ui/workspace/right_header.cljs:220, src/app/main/ui/workspace/right_header.cljs:221 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.comments" msgstr "Comentários (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:180, src/app/main/ui/workspace/top_toolbar.cljs:181 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.curve" msgstr "Ferramenta Curvas (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:160, src/app/main/ui/workspace/top_toolbar.cljs:161 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.ellipse" msgstr "Ferramenta Elipse (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:142, src/app/main/ui/workspace/top_toolbar.cljs:143 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.frame" msgstr "Ferramenta Tela (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:59, src/app/main/ui/workspace/top_toolbar.cljs:60 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.image" msgstr "Importar Imagem (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:132, src/app/main/ui/workspace/top_toolbar.cljs:133 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.move" msgstr "Ferramenta Seleção/Mover (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:189, src/app/main/ui/workspace/top_toolbar.cljs:190 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.path" msgstr "Ferramenta Caneta (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:151, src/app/main/ui/workspace/top_toolbar.cljs:152 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.rect" msgstr "Ferramenta Retângulo (%s)" #: src/app/main/ui/workspace/left_toolbar.cljs -#, unused msgid "workspace.toolbar.shortcuts" msgstr "Atalhos (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:169, src/app/main/ui/workspace/top_toolbar.cljs:170 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.text" msgstr "Ferramenta Texto (%s)" -#: src/app/main/ui/workspace/palette.cljs:173, src/app/main/ui/workspace/palette.cljs:174 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.text-palette" msgstr "Tipografias (%s)" -#: src/app/main/ui/workspace/sidebar/history.cljs:342 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.empty" msgstr "Não há mudanças no histórico até agora" -#: src/app/main/ui/workspace/sidebar/history.cljs:147 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.entry.delete" msgstr "%s excluido" -#: src/app/main/ui/workspace/sidebar/history.cljs:146 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.entry.modify" msgstr "(%s) modificado" -#: src/app/main/ui/workspace/sidebar/history.cljs:148 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.entry.move" msgstr "Objetos movidos" -#: src/app/main/ui/workspace/sidebar/history.cljs:111 msgid "workspace.undo.entry.multiple.circle" msgstr "círculos" -#: src/app/main/ui/workspace/sidebar/history.cljs:112 msgid "workspace.undo.entry.multiple.color" msgstr "ativos de cor" -#: src/app/main/ui/workspace/sidebar/history.cljs:113 msgid "workspace.undo.entry.multiple.component" msgstr "componentes" -#: src/app/main/ui/workspace/sidebar/history.cljs:114 msgid "workspace.undo.entry.multiple.curve" msgstr "curvas" -#: src/app/main/ui/workspace/sidebar/history.cljs:115 msgid "workspace.undo.entry.multiple.frame" msgstr "tela" -#: src/app/main/ui/workspace/sidebar/history.cljs:116 msgid "workspace.undo.entry.multiple.group" msgstr "grupos" -#: src/app/main/ui/workspace/sidebar/history.cljs:117 msgid "workspace.undo.entry.multiple.media" msgstr "ativo gráfico" -#: src/app/main/ui/workspace/sidebar/history.cljs:118 msgid "workspace.undo.entry.multiple.multiple" msgstr "objetos" -#: src/app/main/ui/workspace/sidebar/history.cljs:119 msgid "workspace.undo.entry.multiple.page" msgstr "páginas" -#: src/app/main/ui/workspace/sidebar/history.cljs:120 msgid "workspace.undo.entry.multiple.path" msgstr "caminhos" -#: src/app/main/ui/workspace/sidebar/history.cljs:121 msgid "workspace.undo.entry.multiple.rect" msgstr "retângulos" -#: src/app/main/ui/workspace/sidebar/history.cljs:122 msgid "workspace.undo.entry.multiple.shape" msgstr "formas" -#: src/app/main/ui/workspace/sidebar/history.cljs:123 msgid "workspace.undo.entry.multiple.text" msgstr "textos" -#: src/app/main/ui/workspace/sidebar/history.cljs:124 msgid "workspace.undo.entry.multiple.typography" msgstr "ativos tipográficos" -#: src/app/main/ui/workspace/sidebar/history.cljs:145 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.entry.new" msgstr "Novo %s" -#: src/app/main/ui/workspace/sidebar/history.cljs:125 msgid "workspace.undo.entry.single.circle" msgstr "círculo" -#: src/app/main/ui/workspace/sidebar/history.cljs:126 msgid "workspace.undo.entry.single.color" msgstr "ativo de cor" -#: src/app/main/ui/workspace/sidebar/history.cljs:127 msgid "workspace.undo.entry.single.component" msgstr "componente" -#: src/app/main/ui/workspace/sidebar/history.cljs:128 msgid "workspace.undo.entry.single.curve" msgstr "curva" -#: src/app/main/ui/workspace/sidebar/history.cljs:129 msgid "workspace.undo.entry.single.frame" msgstr "tela" -#: src/app/main/ui/workspace/sidebar/history.cljs:130 msgid "workspace.undo.entry.single.group" msgstr "grupo" -#: src/app/main/ui/workspace/sidebar/history.cljs:131 msgid "workspace.undo.entry.single.image" msgstr "imagem" -#: src/app/main/ui/workspace/sidebar/history.cljs:132 msgid "workspace.undo.entry.single.media" msgstr "ativo gráfico" -#: src/app/main/ui/workspace/sidebar/history.cljs:133 msgid "workspace.undo.entry.single.multiple" msgstr "objeto" -#: src/app/main/ui/workspace/sidebar/history.cljs:134 msgid "workspace.undo.entry.single.page" msgstr "página" -#: src/app/main/ui/workspace/sidebar/history.cljs:135 msgid "workspace.undo.entry.single.path" msgstr "caminho" -#: src/app/main/ui/workspace/sidebar/history.cljs:136 msgid "workspace.undo.entry.single.rect" msgstr "retângulo" -#: src/app/main/ui/workspace/sidebar/history.cljs:137 msgid "workspace.undo.entry.single.shape" msgstr "forma" -#: src/app/main/ui/workspace/sidebar/history.cljs:138 msgid "workspace.undo.entry.single.text" msgstr "texto" -#: src/app/main/ui/workspace/sidebar/history.cljs:139 msgid "workspace.undo.entry.single.typography" msgstr "ativo de tipografia" -#: src/app/main/ui/workspace/sidebar/history.cljs:149 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.entry.unknown" msgstr "Operação em %s" -#: src/app/main/ui/workspace/sidebar/history.cljs:335 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.title" msgstr "Histórico" -#: src/app/main/data/workspace/libraries.cljs:1094 +#: src/app/main/data/workspace/libraries.cljs msgid "workspace.updates.dismiss" msgstr "Dispensar" -#: src/app/main/data/workspace/libraries.cljs:1090 +#: src/app/main/data/workspace/libraries.cljs msgid "workspace.updates.there-are-updates" msgstr "Existem atualizações nas bibliotecas compartilhadas" -#: src/app/main/data/workspace/libraries.cljs:1097 +#: src/app/main/data/workspace/libraries.cljs msgid "workspace.updates.update" msgstr "Atualizar" -#, unused msgid "workspace.viewport.click-to-close-path" msgstr "Clique para fechar o caminho" diff --git a/frontend/translations/pt_PT.po b/frontend/translations/pt_PT.po index 3a44177150..011a7e5bad 100644 --- a/frontend/translations/pt_PT.po +++ b/frontend/translations/pt_PT.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "PO-Revision-Date: 2024-06-17 08:07+0000\n" "Last-Translator: Anonymous \n" -"Language-Team: Portuguese (Portugal) " -"\n" +"Language-Team: Portuguese (Portugal) \n" "Language: pt_PT\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" @@ -11,534 +11,492 @@ msgstr "" "Plural-Forms: nplurals=2; plural=n > 1;\n" "X-Generator: Weblate 5.6-dev\n" -#: src/app/main/ui/auth/register.cljs:151, src/app/main/ui/viewer/login.cljs:104 +#: src/app/main/ui/auth/register.cljs msgid "auth.already-have-account" msgstr "Já tens uma conta?" -#: src/app/main/ui/auth/register.cljs:299 +#: src/app/main/ui/auth/register.cljs msgid "auth.check-your-email" msgstr "" "Verifica o teu e‑mail e clica no link de verificação para começares a " "utilizar o Penpot." -#: src/app/main/ui/auth/recovery.cljs:78 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.confirm-password" msgstr "Confirmar palavra-passe" -#: src/app/main/ui/auth/register.cljs:163 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.create-demo-account" msgstr "Cria uma conta de demonstração" #: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs -#, unused msgid "auth.create-demo-profile" msgstr "Só queres experimentar?" -#: src/app/main/ui/auth/login.cljs:43 +#: src/app/main/ui/auth/register.cljs msgid "auth.demo-warning" msgstr "" "Este é um serviço de DEMONSTRAÇÃO, NÃO UTILIZES para trabalhos reais. Os " "projetos serão eliminados periodicamente." -#: src/app/main/ui/auth/login.cljs:189, src/app/main/ui/viewer/login.cljs:90 +#: src/app/main/ui/auth/login.cljs msgid "auth.forgot-password" msgstr "Esqueceste a tua palavra-passe?" -#: src/app/main/ui/auth/register.cljs:254 +#: src/app/main/ui/auth/register.cljs msgid "auth.fullname" msgstr "Nome completo" -#: src/app/main/ui/auth/login.cljs:282 -msgid "auth.login-account-title" -msgstr "Entrar na minha conta" - -#: src/app/main/ui/auth/register.cljs:155, src/app/main/ui/viewer/login.cljs:107 +#: src/app/main/ui/auth/register.cljs +#, fuzzy msgid "auth.login-here" msgstr "Iniciar sessão" -#: src/app/main/ui/auth/login.cljs:195 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-submit" msgstr "Iniciar sessão" -#: src/app/main/ui/auth/login.cljs:285 -msgid "auth.login-tagline" -msgstr "" -"O Penpot é a ferramenta de desenho gratuita e de código aberto para " -"colaboração entre Design e Código" - -#: src/app/main/ui/auth/login.cljs:222 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-github-submit" msgstr "Github" -#: src/app/main/ui/auth/login.cljs:228 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-gitlab-submit" msgstr "GitLab" -#: src/app/main/ui/auth/login.cljs:216 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-google-submit" msgstr "Google" -#: src/app/main/ui/auth/login.cljs:201 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-ldap-submit" msgstr "LDAP" -#: src/app/main/ui/auth/login.cljs:234, src/app/main/ui/auth/login.cljs:255 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-oidc-submit" msgstr "OpenID Connect" -#: src/app/main/ui/auth/register.cljs:217, src/app/main/ui/dashboard/team_form.cljs:76, src/app/main/ui/onboarding/team_choice.cljs:180, src/app/main/ui/settings/access_tokens.cljs:66, src/app/main/ui/settings/feedback.cljs:34, src/app/main/ui/settings/profile.cljs:45, src/app/main/ui/workspace/sidebar/assets/groups.cljs:108 +#: src/app/main/ui/settings/team-form.cljs, src/app/main/ui/auth/register.cljs, +#: src/app/main/ui/dashboard/team_form.cljs, +#: src/app/main/ui/onboarding/team_choice.cljs, +#: src/app/main/ui/settings/access_tokens.cljs, +#: src/app/main/ui/settings/feedback.cljs, +#: src/app/main/ui/settings/profile.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "auth.name.not-all-space" msgstr "O nome deve conter pelo menos um caractere que não seja um espaço." -#: src/app/main/ui/auth/register.cljs:218, src/app/main/ui/dashboard/team_form.cljs:77, src/app/main/ui/onboarding/team_choice.cljs:181, src/app/main/ui/settings/access_tokens.cljs:67, src/app/main/ui/settings/feedback.cljs:33, src/app/main/ui/settings/profile.cljs:44, src/app/main/ui/workspace/sidebar/assets/groups.cljs:109 +#: src/app/main/ui/auth/register.cljs, +#: src/app/main/ui/dashboard/team_form.cljs, +#: src/app/main/ui/onboarding/team_choice.cljs, +#: src/app/main/ui/settings/access_tokens.cljs, +#: src/app/main/ui/settings/feedback.cljs, +#: src/app/main/ui/settings/profile.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "auth.name.too-long" msgstr "O nome deve conter um máximo de 250 caracteres." -#: src/app/main/ui/auth/recovery.cljs:71 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.new-password" msgstr "Escreve uma nova palavra-passe" -#: src/app/main/ui/auth/recovery.cljs:42 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.notifications.invalid-token-error" msgstr "O token de recuperação é inválido." -#: src/app/main/ui/auth/recovery.cljs:46 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.notifications.password-changed-successfully" msgstr "Palavra-passe alterada com sucesso" -#: src/app/main/ui/auth/recovery_request.cljs:57 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.notifications.profile-not-verified" msgstr "O perfil não está verificado, por favor valida-o antes de continuar." -#: src/app/main/ui/auth/recovery_request.cljs:40 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.notifications.recovery-token-sent" msgstr "Link de recuperação da palavra-passe enviado para o teu e-mail." -#: src/app/main/ui/auth/verify_token.cljs:47 +#: src/app/main/ui/auth/verify_token.cljs msgid "auth.notifications.team-invitation-accepted" msgstr "Entraste na equipa com sucesso" -#: src/app/main/ui/auth/login.cljs:179, src/app/main/ui/auth/register.cljs:115 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.password" msgstr "Palavra-passe" -#: src/app/main/ui/auth/register.cljs:114 +#: src/app/main/ui/auth/register.cljs msgid "auth.password-length-hint" msgstr "Mínimo de 8 caracteres" -#: src/app/main/ui/auth/recovery.cljs:61, src/app/main/ui/auth/recovery.cljs:62, src/app/main/ui/auth/register.cljs:81, src/app/main/ui/settings/password.cljs:75, src/app/main/ui/settings/password.cljs:76, src/app/main/ui/settings/password.cljs:77 +#: src/app/main/ui/auth/register.cljs msgid "auth.password-not-empty" -msgstr "A palavra-passe deve conter pelo menos um caractere que não seja um espaço." +msgstr "" +"A palavra-passe deve conter pelo menos um caractere que não seja um espaço." -#: src/app/main/ui/auth.cljs:41 msgid "auth.privacy-policy" msgstr "Política de privacidade" -#: src/app/main/ui/auth/recovery_request.cljs:88 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-submit" msgstr "Recuperar palavra-passe" -#: src/app/main/ui/auth/recovery_request.cljs:101 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-subtitle" msgstr "Vamos enviar-te um e-mail com as instruções" -#: src/app/main/ui/auth/recovery_request.cljs:100 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-title" msgstr "Não te lembras da tua palavra-passe?" -#: src/app/main/ui/auth/recovery.cljs:82 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.recovery-submit" msgstr "Altera a palavra-passe" -#: src/app/main/ui/auth/login.cljs:298, src/app/main/ui/viewer/login.cljs:93 +#: src/app/main/ui/auth/login.cljs msgid "auth.register" msgstr "Não tens conta?" -#: src/app/main/ui/auth/login.cljs:302, src/app/main/ui/auth/register.cljs:121, src/app/main/ui/auth/register.cljs:263, src/app/main/ui/viewer/login.cljs:97 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.register-submit" msgstr "Criar conta" -#: src/app/main/ui/auth/register.cljs:140 +#: src/app/main/ui/auth/register.cljs msgid "auth.register-title" msgstr "Cria uma conta" #: src/app/main/ui/auth.cljs -#, unused msgid "auth.sidebar-tagline" msgstr "A solução de código aberto para design e prototipagem." -#: src/app/main/ui/auth.cljs:33, src/app/main/ui/dashboard/sidebar.cljs:1022, src/app/main/ui/workspace/main_menu.cljs:150 msgid "auth.terms-of-service" msgstr "Termos de serviço" -#, unused +#: src/app/main/ui/auth/register.cljs msgid "auth.terms-privacy-agreement" msgstr "" "Ao criar uma nova conta, concordas com os nossos termos de serviço e " "política de privacidade." -#: src/app/main/ui/auth/register.cljs:297 +#: src/app/main/ui/auth/register.cljs msgid "auth.verification-email-sent" msgstr "Enviámos um email de verificação para" #: src/app/main/ui/onboarding/questions.cljs -#, unused msgid "branding-illustrations-marketing-pieces" msgstr "...branding, ilustrações, artigos de marketing, etc." -#: src/app/main/ui/workspace/libraries.cljs:228 msgid "common.publish" msgstr "Publicar" -#: src/app/main/ui/viewer/share_link.cljs:304, src/app/main/ui/viewer/share_link.cljs:314 msgid "common.share-link.all-users" msgstr "Todos os utilizadores Penpot" -#: src/app/main/ui/viewer/share_link.cljs:198 msgid "common.share-link.confirm-deletion-link-description" msgstr "" -"Tens a certeza de que queres remover este link? Se o fizeres, deixa de " -"ficar disponível para ninguém" +"Tens a certeza de que queres remover este link? Se o fizeres, deixa de ficar " +"disponível para ninguém" -#: src/app/main/ui/viewer/share_link.cljs:259, src/app/main/ui/viewer/share_link.cljs:289 msgid "common.share-link.current-tag" msgstr "(atual)" -#: src/app/main/ui/viewer/share_link.cljs:207, src/app/main/ui/viewer/share_link.cljs:214 msgid "common.share-link.destroy-link" msgstr "Eliminar link" -#: src/app/main/ui/viewer/share_link.cljs:221 msgid "common.share-link.get-link" msgstr "Obter link" -#: src/app/main/ui/viewer/share_link.cljs:139 msgid "common.share-link.link-copied-success" msgstr "Link copiado com sucesso" -#: src/app/main/ui/viewer/share_link.cljs:231 msgid "common.share-link.manage-ops" msgstr "Gerir permissões" -#: src/app/main/ui/viewer/share_link.cljs:277 msgid "common.share-link.page-shared" msgid_plural "common.share-link.page-shared" msgstr[0] "1 página partilhada" msgstr[1] "%s páginas partilhadas" -#: src/app/main/ui/viewer/share_link.cljs:298 msgid "common.share-link.permissions-can-comment" msgstr "Pode comentar" -#: src/app/main/ui/viewer/share_link.cljs:308 msgid "common.share-link.permissions-can-inspect" msgstr "Pode inspecionar o código" -#: src/app/main/ui/viewer/share_link.cljs:193 msgid "common.share-link.permissions-hint" msgstr "Qualquer pessoa com o link terá acesso" -#: src/app/main/ui/viewer/share_link.cljs:241 msgid "common.share-link.permissions-pages" msgstr "Páginas partilhadas" -#: src/app/main/ui/viewer/share_link.cljs:183 msgid "common.share-link.placeholder" msgstr "O link partilhável será apresentado aqui" -#: src/app/main/ui/viewer/share_link.cljs:303, src/app/main/ui/viewer/share_link.cljs:313 msgid "common.share-link.team-members" msgstr "Apenas membros da equipa" -#: src/app/main/ui/viewer/share_link.cljs:171 msgid "common.share-link.title" msgstr "Partilha protótipos" -#: src/app/main/ui/viewer/share_link.cljs:269 msgid "common.share-link.view-all" msgstr "Seleciona tudo" -#: src/app/main/ui/workspace/libraries.cljs:224 msgid "common.unpublish" msgstr "Cancelar publicação" -#: src/app/main/ui/dashboard/projects.cljs:85 +#: src/app/main/ui/dashboard/projects.cljs msgid "dasboard.team-hero.management" msgstr "Gestão da equipa" -#: src/app/main/ui/dashboard/projects.cljs:84 +#: src/app/main/ui/dashboard/projects.cljs msgid "dasboard.team-hero.text" msgstr "" -"O Penpot é destinado a equipas. Convida colegas para colaborarem em " -"projetos e ficheiros" +"O Penpot é destinado a equipas. Convida colegas para colaborarem em projetos " +"e ficheiros" -#: src/app/main/ui/dashboard/projects.cljs:82 +#: src/app/main/ui/dashboard/projects.cljs msgid "dasboard.team-hero.title" msgstr "Trabalho de equipa!" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.tutorial-hero.info" -msgstr "Aprende os básicos no Penpot enquanto divertes-te a praticar neste tutorial." +msgstr "" +"Aprende os básicos no Penpot enquanto divertes-te a praticar neste tutorial." #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.tutorial-hero.start" msgstr "Iniciar tutorial" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.tutorial-hero.title" msgstr "Tutorial prático" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.walkthrough-hero.info" msgstr "Explora o Penpot e conhece as suas principais características." #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.walkthrough-hero.start" msgstr "Inicia a tour" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.walkthrough-hero.title" msgstr "Passo a passo na interface" -#: src/app/main/ui/settings/access_tokens.cljs:115 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.copied-success" msgstr "Token copiado" -#: src/app/main/ui/settings/access_tokens.cljs:202 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.create" msgstr "Gerar novo token" -#: src/app/main/ui/settings/access_tokens.cljs:76 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.create.success" msgstr "Token de acesso criado com sucesso." -#: src/app/main/ui/settings/access_tokens.cljs:300 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.empty.add-one" msgstr "Clica no botão \"Gerar novo token\" para gerar um." -#: src/app/main/ui/settings/access_tokens.cljs:299 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.empty.no-access-tokens" msgstr "Ainda não tens nenhum token." -#: src/app/main/ui/settings/access_tokens.cljs:53 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.errors-required-name" msgstr "O nome é obrigatório" -#: src/app/main/ui/settings/access_tokens.cljs:147 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-180-days" msgstr "180 dias" -#: src/app/main/ui/settings/access_tokens.cljs:144 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-30-days" msgstr "30 dias" -#: src/app/main/ui/settings/access_tokens.cljs:145 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-60-days" msgstr "60 dias" -#: src/app/main/ui/settings/access_tokens.cljs:146 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-90-days" msgstr "90 dias" -#: src/app/main/ui/settings/access_tokens.cljs:143 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-never" msgstr "Nunca" -#: src/app/main/ui/settings/access_tokens.cljs:282 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expired-on" msgstr "Expirou a %s" -#: src/app/main/ui/settings/access_tokens.cljs:283 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expires-on" msgstr "Expira a %s" -#: src/app/main/ui/settings/access_tokens.cljs:281 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.no-expiration" msgstr "Sem data de expiração" -#: src/app/main/ui/settings/access_tokens.cljs:197 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.personal" msgstr "Tokens de acesso pessoais" -#: src/app/main/ui/settings/access_tokens.cljs:198 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.personal.description" msgstr "" -"Os tokens de acesso pessoais funcionam como uma alternativa ao nosso " -"sistema de autenticação de login/palavra-passe e podem ser usados para " -"permitir que uma aplicação tenha acesso à API interna do Penpot" +"Os tokens de acesso pessoais funcionam como uma alternativa ao nosso sistema " +"de autenticação de login/palavra-passe e podem ser usados para permitir que " +"uma aplicação tenha acesso à API interna do Penpot" -#: src/app/main/ui/settings/access_tokens.cljs:154 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.token-will-expire" msgstr "O token irá expirar a %s" -#: src/app/main/ui/settings/access_tokens.cljs:155 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.token-will-not-expire" msgstr "O token não tem data de expiração" -#: src/app/main/ui/dashboard/file_menu.cljs:291, src/app/main/ui/workspace/main_menu.cljs:572 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.add-shared" msgstr "Adicionar como biblioteca partilhada" -#: src/app/main/ui/settings/profile.cljs:75 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.change-email" msgstr "Alterar e-mail" -#: src/app/main/data/dashboard.cljs:762, src/app/main/data/dashboard.cljs:983 +#: src/app/main/data/dashboard.cljs, src/app/main/data/dashboard.cljs msgid "dashboard.copy-suffix" msgstr "(copiar)" -#: src/app/main/ui/dashboard/sidebar.cljs:338 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.create-new-team" msgstr "+ Criar nova equipa" -#: src/app/main/ui/components/context_menu_a11y.cljs:256, src/app/main/ui/dashboard/sidebar.cljs:646 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.default-team-name" msgstr "O teu Penpot" -#: src/app/main/ui/dashboard/sidebar.cljs:571 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.delete-team" msgstr "Eliminar equipa" -#: src/app/main/ui/dashboard/file_menu.cljs:296, src/app/main/ui/workspace/main_menu.cljs:589 msgid "dashboard.download-binary-file" msgstr "Descarregar ficheiro Penpot (.penpot)" -#: src/app/main/ui/dashboard/file_menu.cljs:300, src/app/main/ui/workspace/main_menu.cljs:597 msgid "dashboard.download-standard-file" msgstr "Descarregar ficheiro standard (svg + json)" -#: src/app/main/ui/dashboard/file_menu.cljs:276, src/app/main/ui/dashboard/project_menu.cljs:90 +#: src/app/main/ui/dashboard/project_menu.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.duplicate" msgstr "Duplicar" -#: src/app/main/ui/dashboard/file_menu.cljs:240 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.duplicate-multi" msgstr "Duplicar %s ficheiros" -#: src/app/main/ui/dashboard/placeholder.cljs:32 -#, markdown +#: src/app/main/ui/dashboard/grid.cljs msgid "dashboard.empty-placeholder-drafts" msgstr "" "Os ficheiros adicionados às Bibliotecas irão aparecer aqui. Experimenta " -"adicionar os teus ficheiros ou experimenta algumas das nossas [Bibliotecas " -"e templates](https://penpot.app/libraries-templates)." +"adicionar os teus ficheiros ou experimenta algumas das nossas [Bibliotecas e " +"templates](https://penpot.app/libraries-templates)." -#: src/app/main/ui/dashboard/file_menu.cljs:249 msgid "dashboard.export-binary-multi" msgstr "Descarrega %s ficheiros Penpot (.penpot)" -#: src/app/main/ui/workspace/main_menu.cljs:605 msgid "dashboard.export-frames" msgstr "Exportar pranchetas para PDF" -#: src/app/main/ui/export.cljs:201 +#: src/app/main/ui/export.cljs msgid "dashboard.export-frames.title" msgstr "Exportar para PDF" -#, unused msgid "dashboard.export-multi" msgstr "Exportar %s ficheiros Penpot" -#: src/app/main/ui/export.cljs:109 +#: src/app/main/ui/export.cljs msgid "dashboard.export-multiple.selected" msgstr "%s de %s elementos selecionados" -#: src/app/main/ui/workspace/main_menu.cljs:578 +#: src/app/main/ui/workspace/header.cljs msgid "dashboard.export-shapes" msgstr "Exportar" -#: src/app/main/ui/export.cljs:180 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.how-to" msgstr "" "Podes adicionar definições de exportação em elementos a partir das " "propriedades de design (na parte inferior da barra lateral direita)." -#: src/app/main/ui/export.cljs:184 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.how-to-link" msgstr "Informações sobre como definir exportações no Penpot." -#: src/app/main/ui/export.cljs:179 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.no-elements" msgstr "Não existem elementos com definições de exportação." -#: src/app/main/ui/export.cljs:190 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.title" msgstr "Exportar seleção" -#: src/app/main/ui/dashboard/file_menu.cljs:252 msgid "dashboard.export-standard-multi" msgstr "Descarregar %s ficheiros standard (svg + json)" -#: src/app/main/ui/export.cljs:427 msgid "dashboard.export.detail" msgstr "* Pode incluir componentes, gráficos, cores e/ou tipografia." -#: src/app/main/ui/export.cljs:426 msgid "dashboard.export.explain" msgstr "" "Um ou mais ficheiros que queres exportar estão a utilizar bibliotecas " "partilhadas. O que queres fazer com os recursos*?" -#: src/app/main/ui/export.cljs:435 msgid "dashboard.export.options.all.message" msgstr "" "ficheiros com bibliotecas partilhadas serão incluídos na exportação, " "mantendo as ligações." -#: src/app/main/ui/export.cljs:436 msgid "dashboard.export.options.all.title" msgstr "Exportar bibliotecas partilhadas" -#: src/app/main/ui/export.cljs:437 msgid "dashboard.export.options.detach.message" msgstr "" "Bibliotecas partilhadas não serão incluídas na exportação e nenhum recurso " "será adicionado à biblioteca. " -#: src/app/main/ui/export.cljs:438 msgid "dashboard.export.options.detach.title" msgstr "Trata os recursos da biblioteca partilhada como objetos básicos" -#: src/app/main/ui/export.cljs:439 msgid "dashboard.export.options.merge.message" msgstr "" "Os teus ficheiros serão exportados com todos os recursos externos " "incorporados na biblioteca de ficheiros." -#: src/app/main/ui/export.cljs:440 msgid "dashboard.export.options.merge.title" msgstr "Incluir recursos da biblioteca partilhada em bibliotecas de ficheiros" -#: src/app/main/ui/export.cljs:418 msgid "dashboard.export.title" msgstr "Exportar ficheiros" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:309 msgid "dashboard.fonts.deleted-placeholder" msgstr "Tipo de letra eliminado" -#: src/app/main/ui/dashboard/fonts.cljs:206 +#: src/app/main/ui/dashboard/fonts.cljs msgid "dashboard.fonts.dismiss-all" msgstr "Ignorar todas" -#: src/app/main/ui/dashboard/fonts.cljs:436 msgid "dashboard.fonts.empty-placeholder" msgstr "Ainda não tens tipos de letra personalizados instalados." -#: src/app/main/ui/dashboard/fonts.cljs:194 +#: src/app/main/ui/dashboard/fonts.cljs msgid "dashboard.fonts.fonts-added" msgid_plural "dashboard.fonts.fonts-added" msgstr[0] "1 tipo de letra adicionado" msgstr[1] "%s tipos de letra adicionados" -#: src/app/main/ui/dashboard/fonts.cljs:170 -#, markdown msgid "dashboard.fonts.hero-text1" msgstr "" "Qualquer web font que carregares aqui será adicionada à família de fontes " @@ -547,21 +505,17 @@ msgstr "" "carregar tipos de letra com os seguintes formatos: **TTF, OTF e WOFF** " "(apenas um será necessário)." -#: src/app/main/ui/dashboard/fonts.cljs:182 -#, markdown msgid "dashboard.fonts.hero-text2" msgstr "" -"Deves carregar tipos de letra que possuas or tenhas licença para utilizar " -"no Penpot. Sabe mais na secção de Direitos de Conteúdos dos [Termos de " -"serviço do Penpot](https://penpot.app/terms.html). Podes também ler mais " -"sobre [licenciamento de fontes](https://www.typography.com/faq)." +"Deves carregar tipos de letra que possuas or tenhas licença para utilizar no " +"Penpot. Sabe mais na secção de Direitos de Conteúdos dos [Termos de serviço " +"do Penpot](https://penpot.app/terms.html). Podes também ler mais sobre " +"[licenciamento de fontes](https://www.typography.com/faq)." -#: src/app/main/ui/dashboard/fonts.cljs:202 +#: src/app/main/ui/dashboard/fonts.cljs msgid "dashboard.fonts.upload-all" msgstr "Carregar tudo" -#: src/app/main/ui/dashboard/fonts.cljs:187 -#, markdown msgid "dashboard.fonts.warning-text" msgstr "" "Detetámos um possível problema nas tuas fontes relacionado com métricas " @@ -570,1666 +524,1518 @@ msgstr "" "além disso, recomendamos o uso do [Transfonter](https://transfonter.org/) " "para gerar fontes web e corrigir erros. " -#: src/app/main/ui/dashboard/import.cljs:472, src/app/main/ui/dashboard/project_menu.cljs:108 msgid "dashboard.import" msgstr "Importar ficheiros Penpot" -#: src/app/main/ui/dashboard/import.cljs:304, src/app/worker/import.cljs:753, src/app/worker/import.cljs:755 msgid "dashboard.import.analyze-error" msgstr "Oops! Não conseguimos importar este ficheiro" -#, unused msgid "dashboard.import.analyze-error.components-v2" msgstr "" "Ficheiro exportado com componentes v2 mas a equipa atual ainda não os " "suporta." -#: src/app/main/ui/dashboard/import.cljs:308 msgid "dashboard.import.import-error" -msgstr "Ocorreu um problema na importação do ficheiro. O ficheiro não foi importado." +msgstr "" +"Ocorreu um problema na importação do ficheiro. O ficheiro não foi importado." -#: src/app/main/ui/dashboard/import.cljs:493 msgid "dashboard.import.import-message" msgid_plural "dashboard.import.import-message" msgstr[0] "1 ficheiro foi importado com sucesso." msgstr[1] "%s ficheiros foram importados com sucesso." -#: src/app/main/ui/dashboard/import.cljs:481, src/app/main/ui/dashboard/import.cljs:488 msgid "dashboard.import.import-warning" msgstr "Alguns ficheiros continham objetos inválidos que foram removidos." -#: src/app/main/ui/dashboard/import.cljs:144 msgid "dashboard.import.progress.process-colors" msgstr "Processando cores" -#: src/app/main/ui/dashboard/import.cljs:153 msgid "dashboard.import.progress.process-components" msgstr "Processando componentes" -#: src/app/main/ui/dashboard/import.cljs:150 msgid "dashboard.import.progress.process-media" msgstr "Processando media" -#: src/app/main/ui/dashboard/import.cljs:141 msgid "dashboard.import.progress.process-page" msgstr "Processando página: %s" -#: src/app/main/ui/dashboard/import.cljs:147 msgid "dashboard.import.progress.process-typographies" msgstr "Processando tipografias" -#: src/app/main/ui/dashboard/import.cljs:135 msgid "dashboard.import.progress.upload-data" msgstr "A carregar dados para o servidor (%s/%s)" -#: src/app/main/ui/dashboard/import.cljs:138 msgid "dashboard.import.progress.upload-media" msgstr "A carregar ficheiro: %s" -#: src/app/main/ui/dashboard/team.cljs:109 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.invite-profile" msgstr "Convidar para a equipa" -#: src/app/main/ui/dashboard/sidebar.cljs:547, src/app/main/ui/dashboard/sidebar.cljs:556, src/app/main/ui/dashboard/sidebar.cljs:563, src/app/main/ui/dashboard/team.cljs:312 +#: src/app/main/ui/dashboard/sidebar.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.leave-team" msgstr "Sair da equipa" -#: src/app/main/ui/dashboard/templates.cljs:88, src/app/main/ui/dashboard/templates.cljs:163 msgid "dashboard.libraries-and-templates" msgstr "Bibliotecas e Templates" -#: src/app/main/ui/dashboard/templates.cljs:164 msgid "dashboard.libraries-and-templates.explore" msgstr "Explora mais e sabe como contribuir" -#: src/app/main/ui/dashboard/import.cljs:365 msgid "dashboard.libraries-and-templates.import-error" msgstr "" "Ocorreu um problema com a importação do template. O template não foi " "importado." -#: src/app/main/ui/dashboard/libraries.cljs:53 +#: src/app/main/ui/dashboard/libraries.cljs msgid "dashboard.libraries-title" msgstr "Bibliotecas" -#: src/app/main/ui/dashboard/placeholder.cljs:45 +#: src/app/main/ui/dashboard/grid.cljs msgid "dashboard.loading-files" msgstr "a carregar os teus ficheiros …" -#: src/app/main/ui/dashboard/fonts.cljs:431 msgid "dashboard.loading-fonts" msgstr "a carregar as tuas fontes …" -#: src/app/main/ui/dashboard/file_menu.cljs:281, src/app/main/ui/dashboard/project_menu.cljs:100 +#: src/app/main/ui/dashboard/project_menu.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.move-to" msgstr "Mover para" -#: src/app/main/ui/dashboard/file_menu.cljs:245 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.move-to-multi" msgstr "Mover %s ficheiros para" -#: src/app/main/ui/dashboard/file_menu.cljs:226 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.move-to-other-team" msgstr "Mover para outra equipa" -#: src/app/main/ui/dashboard/files.cljs:105, src/app/main/ui/dashboard/projects.cljs:252, src/app/main/ui/dashboard/projects.cljs:253 +#: src/app/main/ui/dashboard/projects.cljs, +#: src/app/main/ui/dashboard/files.cljs msgid "dashboard.new-file" msgstr "+ Novo Ficheiro" -#: src/app/main/data/dashboard.cljs:958, src/app/main/data/dashboard.cljs:1181 +#: src/app/main/data/dashboard.cljs msgid "dashboard.new-file-prefix" msgstr "Novo Ficheiro" -#: src/app/main/ui/dashboard/projects.cljs:55 +#: src/app/main/ui/dashboard/projects.cljs msgid "dashboard.new-project" msgstr "+ Novo projeto" -#: src/app/main/data/dashboard.cljs:726, src/app/main/data/dashboard.cljs:1184 +#: src/app/main/data/dashboard.cljs msgid "dashboard.new-project-prefix" msgstr "Novo Projeto" -#: src/app/main/ui/dashboard/search.cljs:60 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.no-matches-for" msgstr "Não há resultados para \"%s\"" -#: src/app/main/ui/dashboard/sidebar.cljs:827 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.no-projects-placeholder" msgstr "Projetos afixados aparecerão aqui" -#: src/app/main/ui/auth/verify_token.cljs:33 +#: src/app/main/ui/auth/verify_token.cljs msgid "dashboard.notifications.email-changed-successfully" msgstr "O teu endereço de e-mail foi atualizado com sucesso" -#: src/app/main/ui/auth/verify_token.cljs:27 +#: src/app/main/ui/auth/verify_token.cljs msgid "dashboard.notifications.email-verified-successfully" msgstr "O teu endereço de e-mail foi verificado com sucesso" -#: src/app/main/ui/settings/password.cljs:37 +#: src/app/main/ui/settings/password.cljs msgid "dashboard.notifications.password-saved" msgstr "Palavra-passe guardada com sucesso!" -#: src/app/main/ui/dashboard/team.cljs:1081 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.num-of-members" msgstr "%s membros" -#: src/app/main/ui/dashboard/file_menu.cljs:267 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.open-in-new-tab" msgstr "Abrir ficheiro num novo separador" -#: src/app/main/ui/dashboard/files.cljs:117, src/app/main/ui/dashboard/projects.cljs:260, src/app/main/ui/dashboard/projects.cljs:261 msgid "dashboard.options" msgstr "Opções" -#: src/app/main/ui/settings/password.cljs:106, src/app/main/ui/settings/password.cljs:119 +#: src/app/main/ui/settings/password.cljs msgid "dashboard.password-change" msgstr "Alterar palavra-passe" -#: src/app/main/ui/dashboard/pin_button.cljs:24, src/app/main/ui/dashboard/project_menu.cljs:95 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.pin-unpin" msgstr "Afixar/Desafixar" -#: src/app/main/ui/dashboard/projects.cljs:51 +#: src/app/main/ui/dashboard/projects.cljs msgid "dashboard.projects-title" msgstr "Projetos" -#: src/app/main/ui/settings/profile.cljs:86 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.remove-account" msgstr "Queres remover a tua conta?" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.remove-shared" msgstr "Remover como Biblioteca Partilhada" -#: src/app/main/ui/settings/profile.cljs:78 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.save-settings" msgstr "Guardar definições" -#: src/app/main/ui/dashboard/sidebar.cljs:246, src/app/main/ui/dashboard/sidebar.cljs:247 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.search-placeholder" msgstr "Pesquisar…" -#: src/app/main/ui/dashboard/search.cljs:55 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.searching-for" msgstr "Pesquisar por \"%s\"…" -#: src/app/main/ui/settings/options.cljs:56 +#: src/app/main/ui/settings/options.cljs msgid "dashboard.select-ui-language" msgstr "Selecionar idioma da Interface" -#: src/app/main/ui/settings/options.cljs:63 +#: src/app/main/ui/settings/options.cljs msgid "dashboard.select-ui-theme" msgstr "Selecionar tema" -#: src/app/main/ui/dashboard/projects.cljs:282 +#: src/app/main/ui/dashboard/grid.cljs msgid "dashboard.show-all-files" msgstr "Mostrar todos os ficheiros" -#: src/app/main/ui/dashboard/file_menu.cljs:96 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-delete-file" msgid_plural "dashboard.success-delete-file" msgstr[0] "O teu ficheiro foi apagado com sucesso" msgstr[1] "Os teus ficheiros foram apagados com sucesso" -#: src/app/main/ui/dashboard/project_menu.cljs:59 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.success-delete-project" msgstr "O teu projeto foi eliminado com sucesso" -#: src/app/main/ui/dashboard/file_menu.cljs:91 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-duplicate-file" msgid_plural "dashboard.success-delete-file" msgstr[0] "O teu ficheiro foi duplicado com sucesso" msgstr[1] "Os teus ficheiros foram duplicados com sucesso" -#: src/app/main/ui/dashboard/project_menu.cljs:33 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.success-duplicate-project" msgstr "O teu projeto foi duplicado com sucesso" -#: src/app/main/ui/dashboard/file_menu.cljs:130, src/app/main/ui/dashboard/grid.cljs:558, src/app/main/ui/dashboard/sidebar.cljs:152 +#: src/app/main/ui/dashboard/grid.cljs, src/app/main/ui/dashboard/sidebar.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-move-file" msgstr "O teu ficheiro foi movido com sucesso" -#: src/app/main/ui/dashboard/file_menu.cljs:129 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-move-files" msgstr "Os teus ficheiros foram movidos com sucesso" -#: src/app/main/ui/dashboard/project_menu.cljs:54 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.success-move-project" msgstr "O teu projeto foi movido com sucesso" -#: src/app/main/ui/dashboard/team.cljs:1052 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.team-info" msgstr "Informação da equipa" -#: src/app/main/ui/dashboard/team.cljs:1070 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.team-members" msgstr "Membros da equipa" -#: src/app/main/ui/dashboard/team.cljs:1085 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.team-projects" msgstr "Projetos da equipa" -#: src/app/main/ui/settings/options.cljs:61 +#: src/app/main/ui/settings/options.cljs msgid "dashboard.theme-change" msgstr "Tema da interface" -#: src/app/main/ui/dashboard/search.cljs:42 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.title-search" msgstr "Resultados da pesquisa" -#: src/app/main/ui/dashboard/search.cljs:50 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.type-something" msgstr "Escreve para pesquisar resultados" -#: src/app/main/ui/dashboard/file_menu.cljs:287, src/app/main/ui/workspace/main_menu.cljs:566 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.unpublish-shared" msgstr "Cancelar publicação da Biblioteca" -#: src/app/main/ui/settings/options.cljs:71 +#: src/app/main/ui/settings/password.cljs, +#: src/app/main/ui/settings/options.cljs msgid "dashboard.update-settings" msgstr "Atualizar definições" -#: src/app/main/ui/dashboard/team.cljs:861 msgid "dashboard.webhooks.active" msgstr "Ativo" -#: src/app/main/ui/dashboard/team.cljs:862 msgid "dashboard.webhooks.active.explain" msgstr "Quando este webhook for ativado serão enviados detalhes do evento" -#: src/app/main/ui/dashboard/team.cljs:852 msgid "dashboard.webhooks.content-type" msgstr "Tipo de conteúdo" -#: src/app/main/ui/dashboard/team.cljs:885 msgid "dashboard.webhooks.create" msgstr "Criar webhook" -#: src/app/main/ui/dashboard/team.cljs:775 msgid "dashboard.webhooks.create.success" msgstr "Webhook criado com sucesso." -#: src/app/main/ui/dashboard/team.cljs:882 msgid "dashboard.webhooks.description" msgstr "" "Os webhooks são uma forma simples de permitir a outros sites e aplicações " "serem notificados quando acontecem certas ações no Penpot. Enviaremos um " "pedido POST para cada um dos URLs que forneceres." -#: src/app/main/ui/dashboard/team.cljs:1005 msgid "dashboard.webhooks.empty.add-one" msgstr "Clica no botão \"Criar webhook\" para adicionar um." -#: src/app/main/ui/dashboard/team.cljs:1004 msgid "dashboard.webhooks.empty.no-webhooks" msgstr "Ainda não há nenhum webhook criado." -#, unused msgid "dashboard.webhooks.update.success" msgstr "Webhook atualizado com sucesso." -#: src/app/main/ui/settings.cljs:31 +#: src/app/main/ui/settings.cljs msgid "dashboard.your-account-title" msgstr "A tua conta" -#: src/app/main/ui/settings/profile.cljs:70 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.your-email" msgstr "E-mail" -#: src/app/main/ui/settings/profile.cljs:62 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.your-name" msgstr "O teu nome" -#: src/app/main/ui/dashboard/file_menu.cljs:38, src/app/main/ui/dashboard/fonts.cljs:33, src/app/main/ui/dashboard/libraries.cljs:42, src/app/main/ui/dashboard/projects.cljs:318, src/app/main/ui/dashboard/search.cljs:30, src/app/main/ui/dashboard/sidebar.cljs:312, src/app/main/ui/dashboard/team.cljs:495, src/app/main/ui/dashboard/team.cljs:729, src/app/main/ui/dashboard/team.cljs:991, src/app/main/ui/dashboard/team.cljs:1038 +#: src/app/main/ui/dashboard/search.cljs, src/app/main/ui/dashboard/team.cljs, +#: src/app/main/ui/dashboard/libraries.cljs, +#: src/app/main/ui/dashboard/projects.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.your-penpot" msgstr "O teu Penpot" -#: src/app/main/ui/alert.cljs:32 +#: src/app/main/ui/alert.cljs msgid "ds.alert-ok" msgstr "Ok" -#: src/app/main/ui/alert.cljs:31, src/app/main/ui/alert.cljs:34 +#: src/app/main/ui/alert.cljs msgid "ds.alert-title" msgstr "Atenção" -#: src/app/main/ui/confirm.cljs:83 +#: src/app/main/ui/confirm.cljs msgid "ds.component-subtitle" msgstr "Componentes para atualizar:" -#: src/app/main/ui/confirm.cljs:36, src/app/main/ui/workspace/plugins.cljs:246 +#: src/app/main/ui/confirm.cljs msgid "ds.confirm-cancel" msgstr "Cancelar" -#: src/app/main/ui/confirm.cljs:37, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:141 +#: src/app/main/ui/confirm.cljs msgid "ds.confirm-ok" msgstr "Ok" -#: src/app/main/ui/confirm.cljs:35, src/app/main/ui/confirm.cljs:39 +#: src/app/main/ui/confirm.cljs, src/app/main/ui/confirm.cljs msgid "ds.confirm-title" msgstr "Tens a certeza?" -#: src/app/main/ui/auth/login.cljs:62 +#: src/app/main/ui/auth/login.cljs msgid "errors.auth-provider-not-configured" msgstr "Provedor de autenticação não configurado." -#: src/app/main/errors.cljs:104 msgid "errors.auth.unable-to-login" msgstr "Parece que não estás autenticado ou a sessão expirou." -#: src/app/main/data/fonts.cljs:189 msgid "errors.bad-font" msgstr "A fonte %s não pôde ser carregada" -#: src/app/main/data/fonts.cljs:188 msgid "errors.bad-font-plural" msgstr "As fontes %s não puderam ser carregadas" -#: src/app/main/data/workspace/media.cljs:198 msgid "errors.cannot-upload" msgstr "Não foi possível carregar o ficheiro." -#: src/app/main/data/workspace.cljs:1598 +#: src/app/main/data/workspace.cljs msgid "errors.clipboard-not-implemented" msgstr "O teu browser não pode fazer esta operação" -#: src/app/main/ui/auth/verify_token.cljs:82, src/app/main/ui/settings/change_email.cljs:46 +#: src/app/main/ui/auth/verify_token.cljs, +#: src/app/main/ui/settings/change_email.cljs msgid "errors.email-already-exists" msgstr "E-mail já utilizado" -#: src/app/main/ui/auth/verify_token.cljs:87 +#: src/app/main/ui/auth/verify_token.cljs msgid "errors.email-already-validated" msgstr "E-mail já validado." -#: src/app/main/ui/settings/password.cljs:28 msgid "errors.email-as-password" msgstr "Não podes utilizar o teu e-mail como palavra-passe" -#: src/app/main/data/users.cljs:707, src/app/main/ui/auth/register.cljs:63 -msgid "errors.email-domain-not-allowed" -msgstr "Domínio não permitido" - -#: src/app/main/ui/auth/recovery_request.cljs:63, src/app/main/ui/dashboard/team.cljs:578, src/app/main/ui/settings/change_email.cljs:54 +#: src/app/main/ui/auth/register.cljs, +#: src/app/main/ui/auth/recovery_request.cljs, +#: src/app/main/ui/settings/change_email.cljs, +#: src/app/main/ui/dashboard/team.cljs msgid "errors.email-has-permanent-bounces" msgstr "O e-mail «%s» tem muitos relatórios de rejeição permanentes." -#: src/app/main/ui/auth/login.cljs:81, src/app/main/ui/auth/recovery_request.cljs:31, src/app/main/ui/auth/register.cljs:43 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs, +#: src/app/main/ui/auth/recovery_request.cljs msgid "errors.email-invalid" msgstr "Por favor introduz um email válido" -#: src/app/main/ui/settings/change_email.cljs:35 +#: src/app/main/ui/settings/change_email.cljs msgid "errors.email-invalid-confirmation" msgstr "O e-mail de confirmação deve combinar" -#: src/app/main/ui/dashboard/team.cljs:170 msgid "errors.email-spam-or-permanent-bounces" msgstr "O e-mail «%s» foi denunciado como spam ou devolvido permanentemente." -#: src/app/main/errors.cljs:227 +#: src/app/main/errors.cljs msgid "errors.feature-mismatch" msgstr "" "Parece que estás a abrir um ficheiro que tem a funcionalidade '%s' ativada, " "mas a versão do teu Penpot não a suporta, ou está desativada." -#: src/app/main/errors.cljs:231, src/app/main/errors.cljs:245 +#: src/app/main/errors.cljs msgid "errors.feature-not-supported" msgstr "A funcionalidade '%s' não é suportada." -#: src/app/main/errors.cljs:223 +#: src/app/main/errors.cljs msgid "errors.file-feature-mismatch" msgstr "" "Parece que existem discrepâncias entre as funcionalidades ativadas e as " "funcionalidades do ficheiro que estás a tentar abrir. Será necessário " "aplicar migrações para '%s' antes de poder abrir o ficheiro." -#: src/app/main/data/users.cljs:709, src/app/main/ui/auth/login.cljs:65, src/app/main/ui/auth/login.cljs:116, src/app/main/ui/auth/register.cljs:69, src/app/main/ui/auth/register.cljs:237, src/app/main/ui/auth/verify_token.cljs:92, src/app/main/ui/dashboard/team.cljs:173, src/app/main/ui/onboarding/team_choice.cljs:95, src/app/main/ui/settings/access_tokens.cljs:91, src/app/main/ui/settings/feedback.cljs:52 +#: src/app/main/ui/auth/verify_token.cljs, +#: src/app/main/ui/settings/feedback.cljs, src/app/main/ui/dashboard/team.cljs msgid "errors.generic" msgstr "Ocorreu algo inesperado." -#: src/app/main/ui/components/color_input.cljs:57 +#: src/app/main/ui/components/color_input.cljs msgid "errors.invalid-color" msgstr "Cor inválida" -#: src/app/main/ui/static.cljs:43 +#: src/app/main/ui/auth/verify_token.cljs msgid "errors.invite-invalid" msgstr "Convite inválido" -#: src/app/main/ui/static.cljs:44 msgid "errors.invite-invalid.info" msgstr "Este convite pode ter sido cancelado ou expirado." -#: src/app/main/ui/auth/login.cljs:101 +#: src/app/main/ui/auth/login.cljs msgid "errors.ldap-disabled" msgstr "Autenticação LDAP está desativada." -#: src/app/main/errors.cljs:239 +#: src/app/main/errors.cljs msgid "errors.max-quote-reached" msgstr "Alcançou o máximo da quota '%s'. Contacte o suporte técnico." -#: src/app/main/data/workspace/media.cljs:184 +#: src/app/main/data/workspace/persistence.cljs msgid "errors.media-too-large" msgstr "A imagem é demasiado grande para ser inserida." -#: src/app/main/data/media.cljs:68, src/app/main/data/workspace/media.cljs:187 +#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs msgid "errors.media-type-mismatch" -msgstr "Parece que o conteúdo da imagem não corresponde à extensão do ficheiro." +msgstr "" +"Parece que o conteúdo da imagem não corresponde à extensão do ficheiro." -#: src/app/main/data/media.cljs:65, src/app/main/data/workspace/media.cljs:172, src/app/main/data/workspace/media.cljs:175, src/app/main/data/workspace/media.cljs:178, src/app/main/data/workspace/media.cljs:181 +#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs msgid "errors.media-type-not-allowed" msgstr "Parece que esta não é uma imagem válida." -#: src/app/main/ui/dashboard/team.cljs:574 +#: src/app/main/ui/dashboard/team.cljs msgid "errors.member-is-muted" msgstr "" -"O perfil que estás a convidar tem e-mails silenciados (relatórios de spam " -"ou devoluções altas)." +"O perfil que estás a convidar tem e-mails silenciados (relatórios de spam ou " +"devoluções altas)." -#: src/app/main/ui/settings/password.cljs:61 +#: src/app/main/ui/settings/password.cljs msgid "errors.password-invalid-confirmation" msgstr "A palavra-passe de confirmação tem de corresponder" -#: src/app/main/ui/settings/password.cljs:64 +#: src/app/main/ui/settings/password.cljs msgid "errors.password-too-short" msgstr "A palavra-passe deverá conter no mínimo 8 caracteres" -#: src/app/main/errors.cljs:124 msgid "errors.paste-data-validation" msgstr "Dados inválidos na área de transferência" -#: src/app/main/data/users.cljs:703, src/app/main/ui/auth/login.cljs:97, src/app/main/ui/auth/login.cljs:105 msgid "errors.profile-blocked" msgstr "O perfil está bloqueado" -#: src/app/main/ui/auth/recovery_request.cljs:60, src/app/main/ui/dashboard/team.cljs:164, src/app/main/ui/dashboard/team.cljs:570, src/app/main/ui/settings/change_email.cljs:50 +#: src/app/main/ui/auth/recovery_request.cljs, +#: src/app/main/ui/settings/change_email.cljs, +#: src/app/main/ui/dashboard/team.cljs msgid "errors.profile-is-muted" msgstr "" "O teu perfil tem e-mails silenciados (relatórios de spam ou devoluções " "altas)." -#: src/app/main/data/users.cljs:701, src/app/main/ui/auth/register.cljs:60 +#: src/app/main/ui/auth/register.cljs msgid "errors.registration-disabled" msgstr "A criação de contas está atualmente desativada." -#: src/app/main/errors.cljs:218 +#: src/app/main/errors.cljs msgid "errors.team-feature-mismatch" msgstr "Funcionalidade incompatível '%s' detetada" -#: src/app/main/ui/dashboard/sidebar.cljs:365, src/app/main/ui/dashboard/team.cljs:359 msgid "errors.team-leave.insufficient-members" -msgstr "Membros insuficientes para deixar a equipa, provavelmente queres eliminá-la." +msgstr "" +"Membros insuficientes para deixar a equipa, provavelmente queres eliminá-la." -#: src/app/main/ui/dashboard/sidebar.cljs:368, src/app/main/ui/dashboard/team.cljs:362 msgid "errors.team-leave.member-does-not-exists" msgstr "O membro que tentas atribuir não existe." -#: src/app/main/ui/dashboard/sidebar.cljs:371, src/app/main/ui/dashboard/team.cljs:365 msgid "errors.team-leave.owner-cant-leave" msgstr "" "O proprietário não pode sair da equipa, deverás retribuir a função de " "proprietário." -#: src/app/main/data/media.cljs:71 +#: src/app/main/data/media.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, +#: src/app/main/ui/inspect/exports.cljs msgid "errors.unexpected-error" msgstr "Ocorreu um erro inesperado." -#: src/app/main/ui/auth/verify_token.cljs:60 +#: src/app/main/ui/auth/verify_token.cljs msgid "errors.unexpected-token" msgstr "Token desconhecido" -#, unused msgid "errors.validation" msgstr "Erro de validação" -#: src/app/main/errors.cljs:235 +#: src/app/main/errors.cljs msgid "errors.version-not-supported" msgstr "O ficheiro tem um número de versão incompatível" -#: src/app/main/ui/dashboard/team.cljs:796 msgid "errors.webhooks.connection" msgstr "Erro de conexão, não foi possível alcançar o URL" -#: src/app/main/ui/dashboard/team.cljs:790 msgid "errors.webhooks.invalid-uri" msgstr "O URL não passou na validação." -#: src/app/main/ui/dashboard/team.cljs:949 +#, fuzzy msgid "errors.webhooks.last-delivery" msgstr "Último envio sem sucesso." -#: src/app/main/ui/dashboard/team.cljs:792, src/app/main/ui/dashboard/team.cljs:952 msgid "errors.webhooks.ssl-validation" msgstr "Erro na validação SSL." -#: src/app/main/ui/dashboard/team.cljs:794 msgid "errors.webhooks.timeout" msgstr "Timeout" -#: src/app/main/ui/dashboard/team.cljs:788 msgid "errors.webhooks.unexpected" msgstr "Erro inesperado ao validar" -#: src/app/main/ui/dashboard/team.cljs:798, src/app/main/ui/dashboard/team.cljs:955 msgid "errors.webhooks.unexpected-status" msgstr "Estado inesperado %s" -#: src/app/main/ui/auth/login.cljs:109, src/app/main/ui/auth/login.cljs:113 +#: src/app/main/ui/auth/login.cljs msgid "errors.wrong-credentials" msgstr "Utilizador ou palavra-passe parecem estar errados." -#: src/app/main/ui/settings/password.cljs:25 +#: src/app/main/ui/settings/password.cljs msgid "errors.wrong-old-password" msgstr "Palavra-passe antiga está incorreta" -#: src/app/main/ui/settings/feedback.cljs:77 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.description" msgstr "Descrição" -#: src/app/main/ui/settings/feedback.cljs:95 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.discourse-go-to" msgstr "Ir para o fórum Penpot" -#: src/app/main/ui/settings/feedback.cljs:89 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.discourse-subtitle1" msgstr "" "Estamos felizes em ter-te aqui. Se precisares de ajuda, por favor pesquisa " "antes de publicar." -#: src/app/main/ui/settings/feedback.cljs:88 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.discourse-title" msgstr "Comunidade Penpot" -#: src/app/main/ui/settings/feedback.cljs:72 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.subject" msgstr "Assunto" -#: src/app/main/ui/settings/feedback.cljs:69 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.subtitle" msgstr "" "Por favor descreve o motivo do teu e-mail, especificando se é um problema, " -"uma ideia, ou uma dúvida. Um membro da nossa equipa tentará responder o " -"mais rápido possível." +"uma ideia, ou uma dúvida. Um membro da nossa equipa tentará responder o mais " +"rápido possível." -#: src/app/main/ui/settings/feedback.cljs:68 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.title" msgstr "E-mail" -#: src/app/main/ui/settings/feedback.cljs:105 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.twitter-go-to" msgstr "Ir para o X" -#: src/app/main/ui/settings/feedback.cljs:99 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.twitter-subtitle1" msgstr "Aqui para ajudar com as tuas dúvidas técnicas." -#: src/app/main/ui/settings/feedback.cljs:98 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.twitter-title" msgstr "Conta de suporte no X" -#: src/app/main/ui/settings/password.cljs:30 +#: src/app/main/ui/settings/password.cljs msgid "generic.error" msgstr "Ocorreu um erro" -#: src/app/main/ui/viewer/inspect/attributes/blur.cljs:26 +#: src/app/main/ui/inspect/attributes/blur.cljs msgid "inspect.attributes.blur" msgstr "Desfoque" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:115 +#: src/app/main/ui/inspect/attributes/blur.cljs msgid "inspect.attributes.blur.value" msgstr "Valor" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:112 +#: src/app/main/ui/inspect/attributes/common.cljs msgid "inspect.attributes.color.hex" msgstr "HEX" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:114 +#: src/app/main/ui/inspect/attributes/common.cljs msgid "inspect.attributes.color.hsla" msgstr "HSLA" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:113 +#: src/app/main/ui/inspect/attributes/common.cljs msgid "inspect.attributes.color.rgba" msgstr "RGBA" -#: src/app/main/ui/viewer/inspect/attributes/fill.cljs:57 +#: src/app/main/ui/inspect/attributes/fill.cljs msgid "inspect.attributes.fill" msgstr "Preencher" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:99, src/app/main/ui/viewer/inspect/attributes/image.cljs:51 +#: src/app/main/ui/inspect/attributes/image.cljs msgid "inspect.attributes.image.download" msgstr "Descarregar imagem original" -#: src/app/main/ui/viewer/inspect/attributes/image.cljs:39 +#: src/app/main/ui/inspect/attributes/image.cljs msgid "inspect.attributes.image.height" msgstr "Altura" -#: src/app/main/ui/viewer/inspect/attributes/image.cljs:32 +#: src/app/main/ui/inspect/attributes/image.cljs msgid "inspect.attributes.image.width" msgstr "Largura" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout" msgstr "Layout" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.height" msgstr "Altura" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.left" msgstr "Esquerda" -#: src/app/main/ui/inspect/attributes/layout.cljs, src/app/main/ui/inspect/attributes/layout.cljs -#, unused +#: src/app/main/ui/inspect/attributes/layout.cljs, +#: src/app/main/ui/inspect/attributes/layout.cljs msgid "inspect.attributes.layout.radius" msgstr "Raio" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.rotation" msgstr "Rotação" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.top" msgstr "Topo" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.width" msgstr "Largura" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:57 +#: src/app/main/ui/inspect/attributes/shadow.cljs msgid "inspect.attributes.shadow" msgstr "Sombra" -#: src/app/main/ui/viewer/inspect/attributes/geometry.cljs:40 +#: src/app/main/ui/inspect/attributes/layout.cljs msgid "inspect.attributes.size" msgstr "Tamanho e posição" -#: src/app/main/ui/viewer/inspect/attributes/stroke.cljs:52 +#: src/app/main/ui/inspect/attributes/stroke.cljs msgid "inspect.attributes.stroke" msgstr "Traço" -#, permanent, unused msgid "inspect.attributes.stroke.alignment.center" msgstr "Centro" -#, permanent, unused msgid "inspect.attributes.stroke.alignment.inner" msgstr "Interior" -#, permanent, unused msgid "inspect.attributes.stroke.alignment.outer" msgstr "Exterior" -#, unused msgid "inspect.attributes.stroke.style.dotted" msgstr "Pontilhado" -#, unused msgid "inspect.attributes.stroke.style.mixed" msgstr "Misto" -#, unused msgid "inspect.attributes.stroke.style.none" msgstr "Nenhum" -#, unused msgid "inspect.attributes.stroke.style.solid" msgstr "Sólido" #: src/app/main/ui/inspect/attributes/stroke.cljs -#, unused msgid "inspect.attributes.stroke.width" msgstr "Largura" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:81, src/app/main/ui/viewer/inspect/attributes/text.cljs:194 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography" msgstr "Tipografia" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:89 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.font-family" msgstr "Família da Fonte" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:107 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.font-size" msgstr "Tamanho da Fonte" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:98 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.font-style" msgstr "Estilo da Fonte" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:116 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.font-weight" msgstr "Espessura da fonte" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:134 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.letter-spacing" msgstr "Espaço entre caracteres" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:125 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.line-height" msgstr "Altura da Linha" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:143 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.text-decoration" msgstr "Decoração de Texto" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:145 msgid "inspect.attributes.typography.text-decoration.none" msgstr "Nenhum" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:146 msgid "inspect.attributes.typography.text-decoration.strikethrough" msgstr "Rasurado" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:147 msgid "inspect.attributes.typography.text-decoration.underline" msgstr "Sublinhado" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:156 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.text-transform" msgstr "Transformação de Texto" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:158 msgid "inspect.attributes.typography.text-transform.lowercase" msgstr "Minúsculas" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:159 msgid "inspect.attributes.typography.text-transform.none" msgstr "Nenhum" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:160 msgid "inspect.attributes.typography.text-transform.titlecase" msgstr "Capitalização de Título" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:162 msgid "inspect.attributes.typography.text-transform.unset" msgstr "Sem atribuição" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:161 msgid "inspect.attributes.typography.text-transform.uppercase" msgstr "Maiúsculas" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:140 msgid "inspect.empty.help" -msgstr "Se quiseres saber mais sobre a inspeção, visita o centro de ajuda do Penpot" +msgstr "" +"Se quiseres saber mais sobre a inspeção, visita o centro de ajuda do Penpot" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:143 msgid "inspect.empty.more-info" msgstr "Mais informações sobre a inspeção" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:135 msgid "inspect.empty.select" msgstr "" "Seleciona uma forma, prancheta, ou grupo para inspecionar os seus atributos " "e código" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:125 +#: src/app/main/ui/inspect/right_sidebar.cljs msgid "inspect.tabs.code" msgstr "Código" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:98 msgid "inspect.tabs.code.selected.circle" msgstr "Círculo" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:99 msgid "inspect.tabs.code.selected.component" msgstr "Componente" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:100 msgid "inspect.tabs.code.selected.curve" msgstr "Curva" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:101 msgid "inspect.tabs.code.selected.frame" msgstr "Prancheta" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:102 msgid "inspect.tabs.code.selected.group" msgstr "Grupo" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:103 msgid "inspect.tabs.code.selected.image" msgstr "Imagem" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:104 msgid "inspect.tabs.code.selected.mask" msgstr "Máscara" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:93 +#: src/app/main/ui/inspect/right_sidebar.cljs msgid "inspect.tabs.code.selected.multiple" msgstr "%s Selecionados" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:105 msgid "inspect.tabs.code.selected.path" msgstr "Caminho" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:106 msgid "inspect.tabs.code.selected.rect" msgstr "Rectângulo" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:107 msgid "inspect.tabs.code.selected.svg-raw" msgstr "SVG" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:108 msgid "inspect.tabs.code.selected.text" msgstr "Texto" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:115 +#: src/app/main/ui/inspect/right_sidebar.cljs msgid "inspect.tabs.info" msgstr "Informação" -#: src/app/main/ui/workspace/main_menu.cljs:158 +#: src/app/main/ui/workspace/header.cljs msgid "label.shortcuts" msgstr "Atalhos" -#: src/app/main/ui/dashboard/import.cljs:527 msgid "labels.accept" msgstr "Aceitar" -#: src/app/main/ui/settings/sidebar.cljs:100 +#: src/app/main/ui/settings/sidebar.cljs msgid "labels.access-tokens" msgstr "Tokens de acesso" -#: src/app/main/ui/dashboard/team.cljs:968 msgid "labels.active" msgstr "Ativo" -#: src/app/main/ui/dashboard/fonts.cljs:175 msgid "labels.add-custom-font" msgstr "Adicionar fonte personalizada" -#: src/app/main/ui/dashboard/team.cljs:120, src/app/main/ui/dashboard/team.cljs:276, src/app/main/ui/dashboard/team.cljs:519, src/app/main/ui/dashboard/team.cljs:549, src/app/main/ui/onboarding/team_choice.cljs:67 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs msgid "labels.admin" msgstr "Administração" -#: src/app/main/ui/onboarding/questions.cljs:174 -msgid "labels.adobe-xd" -msgstr "Adobe XD" - #: src/app/main/ui/workspace/comments.cljs -#, unused msgid "labels.all" msgstr "Todos" -#: src/app/main/ui/auth.cljs:37 msgid "labels.and" msgstr "e" -#: src/app/main/ui/onboarding/team_choice.cljs:162 msgid "labels.back" msgstr "Voltar" -#: src/app/main/ui/static.cljs:59 +#: src/app/main/ui/static.cljs msgid "labels.bad-gateway.desc-message" msgstr "" "Parece que tens de aguardar um pouco e tentar novamente; estamos a realizar " "pequenas manutenções nos nossos servidores." -#: src/app/main/ui/static.cljs:58 +#: src/app/main/ui/static.cljs msgid "labels.bad-gateway.main-message" msgstr "Error de Servidor (Bad Gateway)" -#: src/app/main/data/common.cljs:112, src/app/main/ui/dashboard/change_owner.cljs:69, src/app/main/ui/dashboard/import.cljs:514, src/app/main/ui/dashboard/team.cljs:868, src/app/main/ui/delete_shared.cljs:35, src/app/main/ui/export.cljs:164, src/app/main/ui/export.cljs:460, src/app/main/ui/settings/access_tokens.cljs:188, src/app/main/ui/viewer/share_link.cljs:203, src/app/main/ui/workspace/sidebar/assets/groups.cljs:149 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.cancel" msgstr "Cancelar" -#: src/app/main/ui/onboarding/questions.cljs:176 -msgid "labels.canva" -msgstr "Canva" - -#: src/app/main/ui/dashboard/projects.cljs:93, src/app/main/ui/export.cljs:478, src/app/main/ui/settings/access_tokens.cljs:183, src/app/main/ui/viewer/login.cljs:77, src/app/main/ui/viewer/share_link.cljs:174, src/app/main/ui/workspace/libraries.cljs:522 msgid "labels.close" msgstr "Fechar" -#: src/app/main/ui/dashboard/comments.cljs:104, src/app/main/ui/viewer/comments.cljs:70, src/app/main/ui/workspace/comments.cljs:126 +#: src/app/main/ui/dashboard/comments.cljs msgid "labels.comments" msgstr "Comentários" -#: src/app/main/ui/dashboard/sidebar.cljs:985, src/app/main/ui/workspace/main_menu.cljs:110 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.community" msgstr "Comunidade" -#: src/app/main/ui/settings/password.cljs:103 +#: src/app/main/ui/settings/password.cljs msgid "labels.confirm-password" msgstr "Confirmar palavra-passe" -#: src/app/main/ui/dashboard/import.cljs:520, src/app/main/ui/export.cljs:465, src/app/main/ui/onboarding/newsletter.cljs:101 msgid "labels.continue" msgstr "Continuar" -#, unused msgid "labels.continue-with" msgstr "Continuar com" -#: src/app/main/ui/viewer/login.cljs:75 msgid "labels.continue-with-penpot" msgstr "Podes continuar com uma conta Penpot" -#: src/app/main/ui/dashboard/team.cljs:642 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.copy-invitation-link" msgstr "Copiar link" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:157, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:190 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "labels.create" msgstr "Criar" -#: src/app/main/ui/dashboard/team_form.cljs:101, src/app/main/ui/dashboard/team_form.cljs:121 +#: src/app/main/ui/dashboard/team_form.cljs, +#: src/app/main/ui/dashboard/team_form.cljs msgid "labels.create-team" msgstr "Criar equipa nova" -#: src/app/main/ui/dashboard/team_form.cljs:113 +#: src/app/main/ui/dashboard/team_form.cljs msgid "labels.create-team.placeholder" msgstr "Introduz o nome da nova equipa" -#, unused msgid "labels.custom-fonts" msgstr "Fonte personalizada" -#: src/app/main/ui/settings/sidebar.cljs:73 +#: src/app/main/ui/settings/sidebar.cljs msgid "labels.dashboard" msgstr "Painel" -#: src/app/main/ui/dashboard/file_menu.cljs:306, src/app/main/ui/dashboard/fonts.cljs:255, src/app/main/ui/dashboard/fonts.cljs:332, src/app/main/ui/dashboard/fonts.cljs:346, src/app/main/ui/dashboard/project_menu.cljs:115, src/app/main/ui/dashboard/team.cljs:904, src/app/main/ui/settings/access_tokens.cljs:209, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:209 +#: src/app/main/ui/dashboard/project_menu.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.delete" msgstr "Eliminar" -#: src/app/main/ui/comments.cljs:357 +#: src/app/main/ui/comments.cljs msgid "labels.delete-comment" msgstr "Eliminar comentário" -#: src/app/main/ui/comments.cljs:354 +#: src/app/main/ui/comments.cljs msgid "labels.delete-comment-thread" msgstr "Eliminar tópico" -#: src/app/main/ui/dashboard/team.cljs:648 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.delete-invitation" msgstr "Eliminar convite" -#: src/app/main/ui/dashboard/file_menu.cljs:262 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.delete-multi-files" msgstr "Eliminar %s ficheiros" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:199 msgid "labels.discard" msgstr "Descartar" -#: src/app/main/ui/dashboard/file_menu.cljs:28, src/app/main/ui/dashboard/files.cljs:72, src/app/main/ui/dashboard/files.cljs:156, src/app/main/ui/dashboard/projects.cljs:220, src/app/main/ui/dashboard/projects.cljs:224, src/app/main/ui/dashboard/sidebar.cljs:791 +#: src/app/main/ui/dashboard/projects.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs, +#: src/app/main/ui/dashboard/files.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.drafts" msgstr "Rascunhos" -#: src/app/main/ui/comments.cljs:350, src/app/main/ui/dashboard/fonts.cljs:252, src/app/main/ui/dashboard/team.cljs:902, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:205 +#: src/app/main/ui/comments.cljs msgid "labels.edit" msgstr "Editar" -#, unused msgid "labels.edit-file" msgstr "Editar ficheiro" -#: src/app/main/ui/dashboard/team.cljs:118, src/app/main/ui/dashboard/team.cljs:279, src/app/main/ui/dashboard/team.cljs:520, src/app/main/ui/dashboard/team.cljs:553, src/app/main/ui/onboarding/team_choice.cljs:66 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs msgid "labels.editor" msgstr "Editor" -#: src/app/main/ui/dashboard/team.cljs:661 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.expired-invitation" msgstr "Expirado" -#: src/app/main/ui/export.cljs:173 msgid "labels.export" msgstr "Exportar" -#: src/app/main/ui/settings/feedback.cljs:51 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.feedback-disabled" msgstr "Feedback desativado" -#: src/app/main/ui/settings/feedback.cljs:42 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.feedback-sent" msgstr "Feedback enviado" -#: src/app/main/ui/onboarding/questions.cljs:170 -msgid "labels.figma" -msgstr "Figma" - -#: src/app/main/ui/dashboard/fonts.cljs:412 msgid "labels.font-family" msgstr "Família da Fonte" -#, unused msgid "labels.font-providers" msgstr "Provedores de fontes" -#: src/app/main/ui/dashboard/fonts.cljs:413 msgid "labels.font-variants" msgstr "Variantes" -#: src/app/main/ui/dashboard/fonts.cljs:52, src/app/main/ui/dashboard/sidebar.cljs:811 msgid "labels.fonts" msgstr "Fontes" -#: src/app/main/ui/onboarding/questions.cljs:262 -msgid "labels.freelancer" -msgstr "Sou trabalhador(a) independente (freelancer)" - -#: src/app/main/ui/dashboard/sidebar.cljs:1015, src/app/main/ui/workspace/main_menu.cljs:142 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.github-repo" msgstr "Repositório Github" -#: src/app/main/ui/dashboard/sidebar.cljs:1032, src/app/main/ui/settings/sidebar.cljs:113, src/app/main/ui/workspace/main_menu.cljs:171 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/settings/sidebar.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.give-feedback" msgstr "Dá feedback" -#: src/app/main/ui/auth/recovery_request.cljs:110, src/app/main/ui/auth/register.cljs:285, src/app/main/ui/viewer/login.cljs:117 msgid "labels.go-back" msgstr "Voltar atrás" -#: src/app/main/ui/dashboard/sidebar.cljs:978, src/app/main/ui/workspace/main_menu.cljs:102 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.help-center" msgstr "Centro de Ajuda" -#: src/app/main/ui/viewer/comments.cljs:103, src/app/main/ui/workspace/comments.cljs:67 +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs msgid "labels.hide-resolved-comments" msgstr "Ocultar comentários resolvidos" -#: src/app/main/ui/dashboard/team.cljs:969 msgid "labels.inactive" msgstr "Inativo" -#: src/app/main/ui/dashboard/fonts.cljs:410 msgid "labels.installed-fonts" msgstr "Fontes instaladas" -#: src/app/main/ui/static.cljs:144 +#: src/app/main/ui/static.cljs msgid "labels.internal-error.desc-message" msgstr "" "Ocorreu algo inesperado. Tenta novamente a operação e se o problema " "persistir, entra em contacto com o suporte." -#: src/app/main/ui/static.cljs:143 +#: src/app/main/ui/static.cljs msgid "labels.internal-error.main-message" msgstr "Erro interno" -#: src/app/main/ui/onboarding/questions.cljs:178 -msgid "labels.invision" -msgstr "InVision" - -#: src/app/main/ui/dashboard/sidebar.cljs:516, src/app/main/ui/dashboard/team.cljs:89, src/app/main/ui/dashboard/team.cljs:97, src/app/main/ui/dashboard/team.cljs:708 +#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.invitations" msgstr "Convites" -#: src/app/main/ui/settings/options.cljs:51 +#: src/app/main/ui/settings/options.cljs msgid "labels.language" msgstr "Idioma" -#: src/app/main/ui/dashboard/sidebar.cljs:1008, src/app/main/ui/workspace/main_menu.cljs:134 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.libraries-and-templates" msgstr "Bibliotecas e Templates" -#: src/app/main/ui/viewer/header.cljs:203 msgid "labels.log-or-sign" msgstr "Iniciar sessão ou registar" -#: src/app/main/ui/dashboard/sidebar.cljs:1040 +#: src/app/main/ui/settings.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.logout" msgstr "Terminar sessão" -#: src/app/main/ui/dashboard/team.cljs:468 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.member" msgstr "Membro" -#: src/app/main/ui/dashboard/sidebar.cljs:510, src/app/main/ui/dashboard/team.cljs:87, src/app/main/ui/dashboard/team.cljs:95 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.members" msgstr "Membros" -#: src/app/main/ui/settings/password.cljs:96 +#: src/app/main/ui/settings/password.cljs msgid "labels.new-password" msgstr "Palavra-passe nova" -#: src/app/main/ui/dashboard/templates.cljs:269, src/app/main/ui/onboarding/questions.cljs:55 -msgid "labels.next" -msgstr "Seguinte" - -#: src/app/main/ui/dashboard/comments.cljs:128, src/app/main/ui/workspace/comments.cljs:161 +#: src/app/main/ui/workspace/comments.cljs, +#: src/app/main/ui/dashboard/comments.cljs msgid "labels.no-comments-available" msgstr "Não tens notificações de comentários pendentes." -#: src/app/main/ui/dashboard/team.cljs:694 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.no-invitations" msgstr "Não há convites." -#: src/app/main/ui/dashboard/team.cljs:696 -#, markdown +#: src/app/main/ui/dashboard/team.cljs msgid "labels.no-invitations-hint" msgstr "" "Clica no botão \"Convidar para a equipa\" para convidar mais membros para " "esta equipa." -#: src/app/main/ui/static.cljs:50 +#: src/app/main/ui/static.cljs msgid "labels.not-found.desc-message" msgstr "Esta página não existe ou não tens permissões para a aceder." -#: src/app/main/ui/static.cljs:49 +#: src/app/main/ui/static.cljs msgid "labels.not-found.main-message" msgstr "Ups!" -#: src/app/main/ui/dashboard/projects.cljs:239, src/app/main/ui/dashboard/team.cljs:1095 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.num-of-files" msgid_plural "labels.num-of-files" msgstr[0] "1 ficheiro" msgstr[1] "%s ficheiros" -#: src/app/main/ui/viewer/thumbnails.cljs:80 msgid "labels.num-of-frames" msgid_plural "labels.num-of-frames" msgstr[0] "1 prancheta" msgstr[1] "%s pranchetas" -#: src/app/main/ui/dashboard/team.cljs:1090 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.num-of-projects" msgid_plural "labels.num-of-projects" msgstr[0] "1 projeto" msgstr[1] "%s projetos" -#: src/app/main/ui/settings/password.cljs:89 +#: src/app/main/ui/settings/password.cljs msgid "labels.old-password" msgstr "Palavra-passe antiga" #: src/app/main/ui/workspace/comments.cljs -#, unused msgid "labels.only-yours" msgstr "Apenas teu" -#, unused msgid "labels.or" msgstr "ou" -#: src/app/main/ui/onboarding/questions.cljs:145, src/app/main/ui/onboarding/questions.cljs:214, src/app/main/ui/onboarding/questions.cljs:303, src/app/main/ui/onboarding/questions.cljs:316, src/app/main/ui/onboarding/questions.cljs:389, src/app/main/ui/onboarding/questions.cljs:447 -msgid "labels.other" -msgstr "Outra (especificar)" - -#: src/app/main/ui/dashboard/team.cljs:286, src/app/main/ui/dashboard/team.cljs:518, src/app/main/ui/dashboard/team.cljs:1076 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs msgid "labels.owner" msgstr "Proprietário" -#: src/app/main/ui/settings/sidebar.cljs:87 +#: src/app/main/ui/settings/sidebar.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.password" msgstr "Palavra-passe" -#: src/app/main/ui/dashboard/team.cljs:662 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.pending-invitation" msgstr "Pendente" -#: src/app/main/ui/onboarding/questions.cljs:51 -msgid "labels.previous" -msgstr "Anterior" - -#: src/app/main/ui/settings/profile.cljs:118, src/app/main/ui/settings/sidebar.cljs:82 +#: src/app/main/ui/settings/sidebar.cljs msgid "labels.profile" msgstr "Perfil" -#: src/app/main/ui/dashboard/sidebar.cljs:784 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.projects" msgstr "Projetos" -#: src/app/main/ui/dashboard/sidebar.cljs:998, src/app/main/ui/settings/sidebar.cljs:106, src/app/main/ui/workspace/main_menu.cljs:126 +#: src/app/main/ui/settings/sidebar.cljs msgid "labels.release-notes" msgstr "Notas de versões" #: src/app/main/ui/workspace.cljs -#, unused msgid "labels.reload-file" msgstr "Recarregar ficheiro" -#: src/app/main/ui/workspace/libraries.cljs, src/app/main/ui/dashboard/team.cljs -#, unused +#: src/app/main/ui/workspace/libraries.cljs, +#: src/app/main/ui/dashboard/team.cljs msgid "labels.remove" msgstr "Remover" -#: src/app/main/ui/dashboard/team.cljs:316 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.remove-member" msgstr "Remover membro" -#: src/app/main/ui/dashboard/file_menu.cljs:271, src/app/main/ui/dashboard/project_menu.cljs:85, src/app/main/ui/dashboard/sidebar.cljs:539, src/app/main/ui/workspace/sidebar/assets/groups.cljs:157 +#: src/app/main/ui/dashboard/sidebar.cljs, +#: src/app/main/ui/dashboard/project_menu.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.rename" msgstr "Renomear" -#: src/app/main/ui/dashboard/team_form.cljs:99 +#: src/app/main/ui/dashboard/team_form.cljs msgid "labels.rename-team" msgstr "Renomear equipa" -#: src/app/main/ui/dashboard/team.cljs:645 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.resend-invitation" msgstr "Reenviar convite" -#: src/app/main/ui/static.cljs:61, src/app/main/ui/static.cljs:70, src/app/main/ui/static.cljs:148 +#: src/app/main/ui/static.cljs, src/app/main/ui/static.cljs msgid "labels.retry" msgstr "Tentar novamente" -#: src/app/main/ui/dashboard/team.cljs:469, src/app/main/ui/dashboard/team.cljs:709 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.role" msgstr "Cargo" -#: src/app/main/ui/dashboard/fonts.cljs:380, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:191 msgid "labels.save" msgstr "Salvar" -#: src/app/main/ui/onboarding/questions.cljs:414, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:436 msgid "labels.search" msgstr "Pesquisar" -#: src/app/main/ui/dashboard/fonts.cljs:415 msgid "labels.search-font" msgstr "Pesquisar font" -#: src/app/main/ui/onboarding/questions.cljs:90, src/app/main/ui/onboarding/questions.cljs:248, src/app/main/ui/onboarding/questions.cljs:259, src/app/main/ui/onboarding/questions.cljs:270 -msgid "labels.select-option" -msgstr "Escolhe uma opção" - -#: src/app/main/ui/settings/feedback.cljs:82 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.send" msgstr "Enviar" -#: src/app/main/ui/settings/feedback.cljs:82 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.sending" msgstr "Enviando…" -#: src/app/main/ui/static.cljs:68 +#: src/app/main/ui/static.cljs msgid "labels.service-unavailable.desc-message" msgstr "Estamos numa manutenção programada dos nossos sistemas." -#: src/app/main/ui/static.cljs:67 +#: src/app/main/ui/static.cljs msgid "labels.service-unavailable.main-message" msgstr "Serviço Indisponível" -#: src/app/main/ui/dashboard/sidebar.cljs:530, src/app/main/ui/dashboard/team.cljs:88, src/app/main/ui/dashboard/team.cljs:102, src/app/main/ui/settings/options.cljs:84, src/app/main/ui/settings/sidebar.cljs:93 +#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.settings" msgstr "Definições" -#: src/app/main/ui/viewer/header.cljs:199 msgid "labels.share" msgstr "Partilhar" -#, unused msgid "labels.share-prototype" msgstr "Partilhar protótipo" -#: src/app/main/ui/dashboard/sidebar.cljs:800 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.shared-libraries" msgstr "Bibliotecas" -#: src/app/main/ui/viewer/comments.cljs:82, src/app/main/ui/workspace/comments.cljs:55, src/app/main/ui/workspace/comments.cljs:135 +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs msgid "labels.show-all-comments" msgstr "Mostrar todos os comentários" -#: src/app/main/ui/viewer/comments.cljs:115 msgid "labels.show-comments-list" msgstr "Mostrar lista de comentários" -#: src/app/main/ui/viewer/comments.cljs:91, src/app/main/ui/workspace/comments.cljs:61, src/app/main/ui/workspace/comments.cljs:136 +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs msgid "labels.show-your-comments" msgstr "Mostrar apenas os teus comentários" -#: src/app/main/ui/onboarding/questions.cljs:172 -msgid "labels.sketch" -msgstr "Sketch" - -#: src/app/main/ui/onboarding/questions.cljs:56 -msgid "labels.start" -msgstr "Começar" - -#: src/app/main/ui/dashboard/team.cljs:710 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.status" msgstr "Estado" -#: src/app/main/ui/onboarding/questions.cljs:251 -msgid "labels.student-teacher" -msgstr "Estudante ou professor(a)" - -#: src/app/main/ui/dashboard/sidebar.cljs:992, src/app/main/ui/workspace/main_menu.cljs:118 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.tutorials" msgstr "Tutoriais" -#: src/app/main/ui/dashboard/file_menu.cljs:256 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.unpublish-multi-files" msgstr "Despublicar %s ficheiros" -#: src/app/main/ui/settings/profile.cljs:103 +#: src/app/main/ui/settings/profile.cljs msgid "labels.update" msgstr "Atualizar" -#: src/app/main/ui/dashboard/team_form.cljs:120 +#: src/app/main/ui/dashboard/team_form.cljs msgid "labels.update-team" msgstr "Atualizar equipa" -#: src/app/main/ui/dashboard/fonts.cljs:241 msgid "labels.upload" msgstr "Carregar" -#: src/app/main/ui/dashboard/fonts.cljs:169 msgid "labels.upload-custom-fonts" msgstr "Carregar fontes personalizadas" -#: src/app/main/ui/dashboard/fonts.cljs:240 msgid "labels.uploading" msgstr "Carregando…" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs:223 msgid "labels.view-only" msgstr "Somente leitura" -#: src/app/main/ui/dashboard/team.cljs:123, src/app/main/ui/dashboard/team.cljs:282, src/app/main/ui/dashboard/team.cljs:521 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.viewer" msgstr "Visualizador" -#: src/app/main/ui/dashboard/sidebar.cljs:523, src/app/main/ui/dashboard/team.cljs:90, src/app/main/ui/dashboard/team.cljs:100, src/app/main/ui/dashboard/team.cljs:880 msgid "labels.webhooks" msgstr "Webhooks" -#: src/app/main/ui/comments.cljs:194 +#: src/app/main/ui/comments.cljs msgid "labels.write-new-comment" msgstr "Escrever novo comentário" -#: src/app/main/ui/dashboard/team.cljs:237 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.you" msgstr "(tu)" -#: src/app/main/ui/dashboard/sidebar.cljs:968 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.your-account" msgstr "A tua conta" -#: src/app/main/ui/workspace/colorpicker.cljs:297, src/app/main/ui/workspace/colorpicker.cljs:298, src/app/main/ui/workspace/colorpicker.cljs:300 msgid "media.choose-image" msgstr "Escolher imagem" -#, unused msgid "media.gradient" msgstr "Gradiente" -#: src/app/main/data/workspace/media.cljs:275, src/app/main/ui/components/color_bullet.cljs:32, src/app/main/ui/components/color_bullet.cljs:45, src/app/main/ui/viewer/inspect/attributes/common.cljs:66, src/app/main/ui/workspace/colorpicker.cljs:211, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:237 msgid "media.image" msgstr "Imagem" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:77 -msgid "media.image.short" -msgstr "img" - -#: src/app/main/ui/workspace/colorpicker.cljs:208 msgid "media.linear" msgstr "Linear" -#: src/app/main/data/media.cljs:49, src/app/main/data/workspace/media.cljs:223, src/app/main/data/workspace/media.cljs:453 +#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs msgid "media.loading" msgstr "A carregar imagem…" -#: src/app/main/ui/workspace/colorpicker.cljs:209 msgid "media.radial" msgstr "Radial" -#: src/app/main/ui/workspace/colorpicker.cljs:206 msgid "media.solid" msgstr "Sólido" -#: src/app/main/data/common.cljs:111 msgid "modals.add-shared-confirm-empty.hint" msgstr "" "A tua biblioteca está vazia. Assim que ela seja adicionada como uma " -"biblioteca partilhada, os recursos que criares nela estarão disponíveis " -"para serem usados nos teus outros ficheiros. Tens a certeza que queres " -"publicá-la?" +"biblioteca partilhada, os recursos que criares nela estarão disponíveis para " +"serem usados nos teus outros ficheiros. Tens a certeza que queres publicá-la?" -#: src/app/main/data/common.cljs:113 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.add-shared-confirm.accept" msgstr "Adicionar como Biblioteca Partilhada" -#: src/app/main/data/common.cljs:111 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.add-shared-confirm.hint" msgstr "" "Uma vez adicionados como Biblioteca Partilhada, os recursos na biblioteca " "deste ficheiro estarão disponíveis com o resto dos teus ficheiros." -#: src/app/main/data/common.cljs:110 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.add-shared-confirm.message" msgstr "Adicionar \"%s\" como Biblioteca Partilhada" -#: src/app/main/ui/workspace/nudge.cljs:60 +#: src/app/main/ui/workspace/nudge.cljs msgid "modals.big-nudge" msgstr "Grande deslocamento" -#: src/app/main/ui/settings/change_email.cljs:127 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.confirm-email" msgstr "Verificar o novo e-mail" -#: src/app/main/ui/settings/change_email.cljs:114 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.info" msgstr "" -"Vamos enviar um e‑mail para o teu endereço atual \"%s\" para verificar a " -"tua identidade." +"Vamos enviar um e‑mail para o teu endereço atual \"%s\" para verificar a tua " +"identidade." -#: src/app/main/ui/settings/change_email.cljs:119 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.new-email" msgstr "Novo e-mail" -#: src/app/main/ui/settings/change_email.cljs:136 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.submit" msgstr "Alterar e-mail" -#: src/app/main/ui/settings/change_email.cljs:107 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.title" msgstr "Altera o teu e-mail" -#: src/app/main/ui/settings/access_tokens.cljs:165, src/app/main/ui/settings/access_tokens.cljs:171 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.create-access-token.copy-token" msgstr "Copiar token" -#: src/app/main/ui/settings/access_tokens.cljs:142 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.create-access-token.expiration-date.label" msgstr "Data de expiração" -#: src/app/main/ui/settings/access_tokens.cljs:136 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.create-access-token.name.label" msgstr "Nome" -#: src/app/main/ui/settings/access_tokens.cljs:138 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.create-access-token.name.placeholder" msgstr "O nome pode ajudar a sugerir para que o token serve" -#: src/app/main/ui/settings/access_tokens.cljs:191 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.create-access-token.submit-label" msgstr "Criar token" -#: src/app/main/ui/settings/access_tokens.cljs:123 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.create-access-token.title" msgstr "Gerar token de acesso" -#: src/app/main/ui/dashboard/team.cljs:873 msgid "modals.create-webhook.submit-label" msgstr "Criar webhook" -#: src/app/main/ui/dashboard/team.cljs:838 msgid "modals.create-webhook.title" msgstr "Criar webhook" -#: src/app/main/ui/dashboard/team.cljs:849 msgid "modals.create-webhook.url.label" msgstr "URL do payload" -#: src/app/main/ui/dashboard/team.cljs:850 msgid "modals.create-webhook.url.placeholder" msgstr "https://example.com/postreceive" -#: src/app/main/ui/settings/access_tokens.cljs:271 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.delete-acces-token.accept" msgstr "Apagar token" -#: src/app/main/ui/settings/access_tokens.cljs:270 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.delete-acces-token.message" msgstr "Tens a certeza que queres apagar este token?" -#: src/app/main/ui/settings/access_tokens.cljs:269 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.delete-acces-token.title" msgstr "Apagar token" -#: src/app/main/ui/settings/delete_account.cljs:59 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.cancel" msgstr "Cancelar e manter a minha conta" -#: src/app/main/ui/settings/delete_account.cljs:64 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.confirm" msgstr "Sim, elimina a minha conta" -#: src/app/main/ui/settings/delete_account.cljs:53 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.info" msgstr "Ao remover a tua conta vais perder todos os projetos e ficheiros." -#: src/app/main/ui/settings/delete_account.cljs:46 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.title" msgstr "Tens a certeza de que queres eliminar a tua conta?" -#: src/app/main/ui/comments.cljs:298 +#: src/app/main/ui/comments.cljs msgid "modals.delete-comment-thread.accept" msgstr "Eliminar conversa" -#: src/app/main/ui/comments.cljs:297 +#: src/app/main/ui/comments.cljs msgid "modals.delete-comment-thread.message" msgstr "" -"Tens a certeza de que pretender eliminar esta conversa? Todos os " -"comentários neste tópico serão eliminados." +"Tens a certeza de que pretender eliminar esta conversa? Todos os comentários " +"neste tópico serão eliminados." -#: src/app/main/ui/comments.cljs:296 +#: src/app/main/ui/comments.cljs msgid "modals.delete-comment-thread.title" msgstr "Eliminar conversa" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:140 msgid "modals.delete-component-annotation.message" msgstr "Tens a certeza que queres apagar esta nota?" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:139 msgid "modals.delete-component-annotation.title" msgstr "Apagar nota" -#: src/app/main/ui/dashboard/file_menu.cljs:123 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-confirm.accept" msgstr "Eliminar ficheiro" -#: src/app/main/ui/dashboard/file_menu.cljs:122 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-confirm.message" msgstr "Tens a certeza de que pretendes eliminar este ficheiro?" -#: src/app/main/ui/dashboard/file_menu.cljs:121 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-confirm.title" msgstr "Eliminando ficheiro" -#: src/app/main/ui/dashboard/file_menu.cljs:117 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-multi-confirm.accept" msgstr "Eliminar ficheiros" -#: src/app/main/ui/dashboard/file_menu.cljs:116 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-multi-confirm.message" msgstr "Tens a certeza de que pretendes eliminar %s ficheiros?" -#: src/app/main/ui/dashboard/file_menu.cljs:115 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-multi-confirm.title" msgstr "Eliminando %s ficheiros" -#: src/app/main/ui/dashboard/fonts.cljs:345 msgid "modals.delete-font-variant.message" msgstr "" -"Tens a certeza de que pretendes eliminar este estilo de fonte? Não " -"carregará se estiver a ser utilizado num ficheiro." +"Tens a certeza de que pretendes eliminar este estilo de fonte? Não carregará " +"se estiver a ser utilizado num ficheiro." -#: src/app/main/ui/dashboard/fonts.cljs:344 msgid "modals.delete-font-variant.title" msgstr "Eliminando estilo de fonte" -#: src/app/main/ui/dashboard/fonts.cljs:331 msgid "modals.delete-font.message" msgstr "" "Tens a certeza de que pretendes eliminar esta fonte? Não carregará se " "estiver a ser utilizada num ficheiro." -#: src/app/main/ui/dashboard/fonts.cljs:330 msgid "modals.delete-font.title" msgstr "Eliminando fonte" -#: src/app/main/ui/workspace/context_menu.cljs:522, src/app/main/ui/workspace/sidebar/sitemap.cljs:45 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs msgid "modals.delete-page.body" msgstr "Tens a certeza de que pretendes eliminar esta página?" -#: src/app/main/ui/workspace/context_menu.cljs:521, src/app/main/ui/workspace/sidebar/sitemap.cljs:44 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs msgid "modals.delete-page.title" msgstr "Eliminar página" -#: src/app/main/ui/dashboard/project_menu.cljs:69 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "modals.delete-project-confirm.accept" msgstr "Eliminar projeto" -#: src/app/main/ui/dashboard/project_menu.cljs:68 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "modals.delete-project-confirm.message" msgstr "Tens a certeza de que pretendes eliminar este projeto?" -#: src/app/main/ui/dashboard/project_menu.cljs:67 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "modals.delete-project-confirm.title" msgstr "Eliminar projeto" -#: src/app/main/ui/delete_shared.cljs:51 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.accept" msgid_plural "modals.delete-shared-confirm.accept" msgstr[0] "Eliminar ficheiro" msgstr[1] "Eliminar ficheiros" -#: src/app/main/ui/delete_shared.cljs:55 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.activated.no-files-message" msgid_plural "modals.delete-shared-confirm.activated.no-files-message" msgstr[0] "Não está ativa em nenhum ficheiro." msgstr[1] "Não estão ativas em nenhum ficheiro." -#: src/app/main/ui/delete_shared.cljs:57 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.activated.scd-message" msgid_plural "modals.delete-shared-confirm.activated.scd-message" msgstr[0] "Esta biblioteca está ativa aqui: " msgstr[1] "Estas bibliotecas estão ativas aqui: " -#: src/app/main/ui/delete_shared.cljs:46 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.message" msgid_plural "modals.delete-shared-confirm.message" msgstr[0] "Tens a certeza de que pretendes eliminar este ficheiro?" msgstr[1] "Tens a certeza de que pretendes eliminar estes ficheiros?" -#: src/app/main/ui/delete_shared.cljs:41 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.title" msgid_plural "modals.delete-shared-confirm.title" msgstr[0] "Eliminando ficheiro" msgstr[1] "Eliminando ficheiros" -#: src/app/main/ui/dashboard/sidebar.cljs:435 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.delete-team-confirm.accept" msgstr "Eliminar equipa" -#: src/app/main/ui/dashboard/sidebar.cljs:434 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.delete-team-confirm.message" msgstr "" "Tens a certeza de que pretendes eliminar esta equipa? Todos os projetos e " "ficheiros associados com a equipa serão eliminados permanentemente." -#: src/app/main/ui/dashboard/sidebar.cljs:433 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.delete-team-confirm.title" msgstr "Eliminando equipa" -#: src/app/main/ui/dashboard/team.cljs:427 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.delete-team-member-confirm.accept" msgstr "Eliminar membro" -#: src/app/main/ui/dashboard/team.cljs:426 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.delete-team-member-confirm.message" msgstr "Tens a certeza de que pretendes eliminar este membro da equipa?" -#: src/app/main/ui/dashboard/team.cljs:425 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.delete-team-member-confirm.title" msgstr "Eliminar membro da equipa" -#: src/app/main/ui/delete_shared.cljs:59 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-unpublish-shared-confirm.activated.hint" msgid_plural "modals.delete-unpublish-shared-confirm.activated.hint" msgstr[0] "" @@ -2239,3405 +2045,3117 @@ msgstr[1] "" "Os recursos que estiverem a ser usados nestes ficheiros continuarão " "presentes (nenhum design será afetado)." -#: src/app/main/ui/dashboard/team.cljs:942 msgid "modals.delete-webhook.accept" msgstr "Apagar webhook" -#: src/app/main/ui/dashboard/team.cljs:941 msgid "modals.delete-webhook.message" msgstr "Tens a certeza que queres apagar este webhook?" -#: src/app/main/ui/dashboard/team.cljs:940 msgid "modals.delete-webhook.title" msgstr "A apagar webhook" -#: src/app/main/ui/dashboard/team.cljs:872 msgid "modals.edit-webhook.submit-label" msgstr "Editar webhook" -#: src/app/main/ui/dashboard/team.cljs:837 msgid "modals.edit-webhook.title" msgstr "Editar webhook" -#: src/app/main/ui/dashboard/team.cljs:218 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.invite-member-confirm.accept" msgstr "Enviar convite" -#: src/app/main/ui/dashboard/team.cljs:213, src/app/main/ui/onboarding/team_choice.cljs:156 msgid "modals.invite-member.emails" msgstr "E-mails, separados por vírgulas" -#: src/app/main/ui/dashboard/team.cljs:197 msgid "modals.invite-member.repeated-invitation" msgstr "" "Alguns endereços de email pertencem a membros atuais da equipa. Não serão " "enviados convites para estes endereços." -#: src/app/main/ui/dashboard/team.cljs:190 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.invite-team-member.title" msgstr "Convidar membros para a equipa" -#: src/app/main/ui/dashboard/sidebar.cljs:423, src/app/main/ui/dashboard/team.cljs:393 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-close-confirm.hint" msgstr "" "Como és o único membro desta equipa, a equipa será eliminado juntamente com " "os projetos e ficheiros." -#: src/app/main/ui/dashboard/sidebar.cljs:422, src/app/main/ui/dashboard/team.cljs:392 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-close-confirm.message" msgstr "Tens a certeza de que pretendes sair da equipa %s?" -#: src/app/main/ui/dashboard/change_owner.cljs:59 msgid "modals.leave-and-reassign.forbidden" msgstr "" "Não pode deixar a equipa se não houver outro membro a promover a dono. Pode " "querer eliminar a equipa." -#: src/app/main/ui/dashboard/change_owner.cljs:55 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-reassign.hint1" msgstr "" "És o proprietário desta equipa. Por favor seleciona outro membro para " "promover para proprietário antes de saíres." -#: src/app/main/ui/dashboard/change_owner.cljs:78 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-reassign.promote-and-leave" msgstr "Promover e sair" -#: src/app/main/ui/dashboard/change_owner.cljs:34 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-reassign.select-member-to-promote" msgstr "Seleciona um membro para promover" -#: src/app/main/ui/dashboard/change_owner.cljs:49 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-reassign.title" msgstr "Antes de saires" -#: src/app/main/ui/dashboard/sidebar.cljs:402, src/app/main/ui/dashboard/sidebar.cljs:424, src/app/main/ui/dashboard/team.cljs:394, src/app/main/ui/dashboard/team.cljs:416 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-confirm.accept" msgstr "Sair da equipa" -#: src/app/main/ui/dashboard/sidebar.cljs:401, src/app/main/ui/dashboard/team.cljs:415 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-confirm.message" msgstr "Tens a certeza de que pretendes sair desta equipa?" -#: src/app/main/ui/dashboard/sidebar.cljs:400, src/app/main/ui/dashboard/sidebar.cljs:421, src/app/main/ui/dashboard/team.cljs:391, src/app/main/ui/dashboard/team.cljs:414 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-confirm.title" msgstr "Saindo da equipa" -#: src/app/main/ui/delete_shared.cljs:53 -msgid "modals.move-shared-confirm.accept" -msgid_plural "modals.move-shared-confirm.accept" -msgstr[0] "Mover" -msgstr[1] "Mover" - -#: src/app/main/ui/delete_shared.cljs:43 -msgid "modals.move-shared-confirm.title" -msgid_plural "modals.move-shared-confirm.title" -msgstr[0] "Mover biblioteca" -msgstr[1] "Mover bibliotecas" - -#: src/app/main/ui/workspace/main_menu.cljs:266, src/app/main/ui/workspace/nudge.cljs:47 +#: src/app/main/ui/workspace/nudge.cljs msgid "modals.nudge-title" msgstr "Montante de deslocamento" -#: src/app/main/ui/dashboard/team.cljs:340 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.accept" msgstr "Transferir propriedade" -#: src/app/main/ui/dashboard/team.cljs:339 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.hint" msgstr "" -"Se transferires a propriedade, vais alterar a tua função para " -"Administrador, perdendo algumas permissões sobre esta equipa. " +"Se transferires a propriedade, vais alterar a tua função para Administrador, " +"perdendo algumas permissões sobre esta equipa. " -#: src/app/main/ui/dashboard/team.cljs:338 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.message" msgstr "" "És o proprietário atual desta equipa. Tens a certeza de que pretendes " "promover %s a proprietário da equipa?" -#: src/app/main/ui/dashboard/team.cljs:337 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.title" msgstr "Novo proprietário de equipa" -#: src/app/main/ui/workspace/libraries.cljs:188 msgid "modals.publish-empty-library.accept" msgstr "Publicar" -#: src/app/main/ui/workspace/libraries.cljs:187 msgid "modals.publish-empty-library.message" msgstr "A tua biblioteca está vazia. Tens a certeza que queres publicá-la?" -#: src/app/main/ui/workspace/libraries.cljs:186 msgid "modals.publish-empty-library.title" msgstr "Publicar biblioteca vazia" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.remove-shared-confirm.accept" msgstr "Remover como Biblioteca Partilhada" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.remove-shared-confirm.hint" msgstr "" -"Uma vez removida como Biblioteca Partilhada, a Biblioteca de Ficheiros " -"deste ficheiro deixarão de estar disponíveis para serem utilizados com o " -"resto dos teus ficheiros." +"Uma vez removida como Biblioteca Partilhada, a Biblioteca de Ficheiros deste " +"ficheiro deixarão de estar disponíveis para serem utilizados com o resto dos " +"teus ficheiros." -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.remove-shared-confirm.message" msgstr "Remover \"%s\" como Biblioteca Partilhada" -#: src/app/main/ui/workspace/nudge.cljs:53 +#: src/app/main/ui/workspace/nudge.cljs msgid "modals.small-nudge" msgstr "Pequeno deslocamento" -#: src/app/main/ui/delete_shared.cljs:52 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.unpublish-shared-confirm.accept" msgid_plural "modals.unpublish-shared-confirm.accept" msgstr[0] "Cancelar publicação" msgstr[1] "Cancelar publicações" -#: src/app/main/ui/delete_shared.cljs:47 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.unpublish-shared-confirm.message" msgid_plural "modals.unpublish-shared-confirm.message" -msgstr[0] "Tens a certeza de que queres cancelar a publicação desta biblioteca?" -msgstr[1] "Tens a certeza de que queres cancelar a publicação destas bibliotecas?" +msgstr[0] "" +"Tens a certeza de que queres cancelar a publicação desta biblioteca?" +msgstr[1] "" +"Tens a certeza de que queres cancelar a publicação destas bibliotecas?" -#: src/app/main/ui/delete_shared.cljs:42 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.unpublish-shared-confirm.title" msgid_plural "modals.unpublish-shared-confirm.title" msgstr[0] "Cancelar publicação da biblioteca" msgstr[1] "Cancelar publicação das bibliotecas" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component-in-bulk.hint" msgstr "" "Estás prestes a atualizar componentes numa biblioteca partilhada. Pode " "afetar outros ficheiros que o utilizam." -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component-in-bulk.message" msgstr "Atualizar componentes numa biblioteca partilhada" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:380 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.accept" msgstr "Atualizar" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:379 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.cancel" msgstr "Cancelar" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:378 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.hint" msgstr "" "Estás prestes a atualizar componentes numa biblioteca partilhada. Pode " "afetar outros ficheiros que o utilizam." -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:377 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.message" msgstr "Atualizar componente numa biblioteca partilhada" -#: src/app/main/data/common.cljs:71 +#: src/app/main/data/common.cljs msgid "notifications.by-code.upgrade-version" msgstr "Está disponível uma nova versão, por favor atualiza a página" -#: src/app/main/ui/dashboard/team.cljs:154, src/app/main/ui/dashboard/team.cljs:595 +#: src/app/main/ui/dashboard/team.cljs msgid "notifications.invitation-email-sent" msgstr "Convite enviado com sucesso" -#: src/app/main/ui/dashboard/team.cljs:616 +#: src/app/main/ui/dashboard/team.cljs msgid "notifications.invitation-link-copied" msgstr "Link de convite copiado" -#: src/app/main/ui/settings/delete_account.cljs:24 +#: src/app/main/ui/settings/delete_account.cljs msgid "notifications.profile-deletion-not-allowed" msgstr "" "Não podes eliminar o teu perfil. Atribui um proprietário às tuas equipas " "antes de avançar." -#: src/app/main/ui/settings/options.cljs:29, src/app/main/ui/settings/profile.cljs:35 +#: src/app/main/ui/settings/profile.cljs, src/app/main/ui/settings/options.cljs msgid "notifications.profile-saved" msgstr "Perfil salvo com sucesso!" -#: src/app/main/ui/settings/change_email.cljs:63 +#: src/app/main/ui/settings/change_email.cljs msgid "notifications.validation-email-sent" msgstr "E-mail de verificação enviado para %s. Verifica o teu e-mail!" -#, unused msgid "onboarding-v2.before-start.desc1" msgstr "" "Deves saber que existem muitos recursos disponíveis para ajudar a começar a " "usar o Penpot, como o Guia de Utilizador e no nosso canal de YouTube." -#, unused msgid "onboarding-v2.before-start.desc2" msgstr "" "Informações detalhadas sobre como utilizar o Penpot. Desde o protótipo à " "organização ou partilha de designs." -#, unused msgid "onboarding-v2.before-start.desc2.title" msgstr "Guia de Utilizador" -#, unused msgid "onboarding-v2.before-start.desc3" msgstr "Poderás ver os nossos tutoriais e os criados pela nossa comunidade." -#, unused msgid "onboarding-v2.before-start.desc3.title" msgstr "Tutoriais em vídeo" -#, unused msgid "onboarding-v2.before-start.title" msgstr "Antes de começares" -#: src/app/main/ui/onboarding/newsletter.cljs:63 msgid "onboarding-v2.newsletter.desc" msgstr "" "Subscreva a Penpot newsletter para ficar a par do progresso do " "desenvolvimento do produto e das novidades." -#: src/app/main/ui/onboarding/newsletter.cljs:83 msgid "onboarding-v2.newsletter.news" msgstr "" "Envie-me notícias sobre o Penpot (postagens em blogs, tutoriais em vídeo, " "streamings...)." -#: src/app/main/ui/onboarding/newsletter.cljs:91 msgid "onboarding-v2.newsletter.privacy1" msgstr "Sua privacidade é importante para nós, saiba mais aqui " -#: src/app/main/ui/onboarding/newsletter.cljs:97 msgid "onboarding-v2.newsletter.privacy2" msgstr "" "Enviaremos apenas e-mails relevantes para você. Você pode cancelar a " -"inscrição a qualquer momento através do link de cancelamento de inscrição " -"em qualquer uma de nossas newsletter." +"inscrição a qualquer momento através do link de cancelamento de inscrição em " +"qualquer uma de nossas newsletter." -#: src/app/main/ui/onboarding/newsletter.cljs:71 msgid "onboarding-v2.newsletter.updates" msgstr "" "Envie-me atualizações do produto (novas funcionalidades, lançamentos, " "correções...)." -#, unused msgid "onboarding-v2.welcome.desc1" msgstr "" "O Penpot é um software de código aberto criado pela Kaleidos e também pela " "comunidade, onde muitas pessoas já colaboram. Todos podem colaborar:" -#, unused msgid "onboarding-v2.welcome.desc2" msgstr "" "Um espaço público para aprender, partilhar e discutir sobre o Penpot, o " "presente e futuro com toda a Comunidade e com a equipa principal do Penpot." -#, unused msgid "onboarding-v2.welcome.desc2.title" msgstr "Participando na Comunidade" -#, unused msgid "onboarding-v2.welcome.desc3" msgstr "" "Onde vais encontrar como colaborar com traduções, solicitações de " "funcionalidades, contribuições core, caça a bugs…" -#, unused msgid "onboarding-v2.welcome.desc3.title" msgstr "Guia de Contribuição" -#: src/app/main/ui/onboarding/team_choice.cljs:31 msgid "onboarding-v2.welcome.title" msgstr "Bem-vindo ao Penpot!" -#: src/app/main/ui/onboarding/team_choice.cljs:229 msgid "onboarding.choice.team-up.continue-creating-team" msgstr "Continuar criação de equipa" -#: src/app/main/ui/onboarding/team_choice.cljs:239 msgid "onboarding.choice.team-up.continue-without-a-team" msgstr "Continuar sem equipa" -#: src/app/main/ui/onboarding/team_choice.cljs:167 msgid "onboarding.choice.team-up.create-team-and-invite" msgstr "Criar equipa e convidar" -#, unused msgid "onboarding.choice.team-up.create-team-and-send-invites" msgstr "Criar equipa e enviar convites" -#: src/app/main/ui/onboarding/team_choice.cljs:170 msgid "onboarding.choice.team-up.create-team-and-send-invites-description" msgstr "Poderás enviar convites mais tarde" -#: src/app/main/ui/onboarding/team_choice.cljs:215 msgid "onboarding.choice.team-up.create-team-desc" msgstr "Depois de nomeares a tua equipa, poderás convidar pessoas para entrar." -#: src/app/main/ui/onboarding/team_choice.cljs:224 msgid "onboarding.choice.team-up.create-team-placeholder" msgstr "Escreve o nome da equipa" -#: src/app/main/ui/onboarding/team_choice.cljs:168 msgid "onboarding.choice.team-up.create-team-without-invite" msgstr "Criar equipa" -#, unused msgid "onboarding.choice.team-up.create-team-without-inviting" msgstr "Criar equipa sem convidar" -#: src/app/main/ui/dashboard/projects.cljs:89, src/app/main/ui/onboarding/team_choice.cljs:140 msgid "onboarding.choice.team-up.invite-members" msgstr "Convida membros" -#: src/app/main/ui/onboarding/team_choice.cljs:141 msgid "onboarding.choice.team-up.invite-members-info" msgstr "" -"Lembra-te em incluir todos. Programadores, designers, gestores... " -"acrescenta diversidade :)" +"Lembra-te em incluir todos. Programadores, designers, gestores... acrescenta " +"diversidade :)" -#: src/app/main/ui/dashboard/team.cljs:202, src/app/main/ui/onboarding/team_choice.cljs:146 msgid "onboarding.choice.team-up.roles" msgstr "Convidar com a função:" -#: src/app/main/ui/onboarding/team_choice.cljs:232 msgid "onboarding.choice.team-up.start-without-a-team" msgstr "Começar sem equipa" -#: src/app/main/ui/onboarding/team_choice.cljs:234 msgid "onboarding.choice.team-up.start-without-a-team-description" msgstr "Poderás criar uma equipa mais tarde." -#, unused msgid "onboarding.newsletter.accept" msgstr "Sim, subscreve" -#: src/app/main/ui/onboarding/newsletter.cljs:40 msgid "onboarding.newsletter.acceptance-message" msgstr "" "A tua solicitação de inscrição foi enviada, iremos enviar-te um e-mail para " "confirmá-la." -#: src/app/main/ui/onboarding/newsletter.cljs:95 msgid "onboarding.newsletter.policy" msgstr "Política de Privacidade." -#: src/app/main/ui/onboarding/newsletter.cljs:60 msgid "onboarding.newsletter.title" msgstr "Queres receber as novidades do Penpot?" -#: src/app/main/ui/onboarding/questions.cljs:118 -msgid "onboarding.questions.lets-get-started" -msgstr "Vamos começar!" - -#: src/app/main/ui/onboarding/questions.cljs:320 -msgid "onboarding.questions.step3.question3" -msgstr "De que tamanho é a tua equipa?" - -#: src/app/main/ui/onboarding/questions.cljs:273 -msgid "onboarding.questions.team-size.11-30" -msgstr "11-30" - -#: src/app/main/ui/onboarding/questions.cljs:274 -msgid "onboarding.questions.team-size.2-10" -msgstr "2-10" - -#: src/app/main/ui/onboarding/questions.cljs:272 -msgid "onboarding.questions.team-size.31-50" -msgstr "31-50" - -#: src/app/main/ui/onboarding/questions.cljs:271 -msgid "onboarding.questions.team-size.more-than-50" -msgstr "Mais de 50" - -#: src/app/main/ui/onboarding/questions.cljs:276 -msgid "onboarding.questions.team-size.personal-project" -msgstr "Estou a trabalhar num projeto pessoal" - -#: src/app/main/ui/onboarding/team_choice.cljs:213 msgid "onboarding.team-modal.create-team" msgstr "Cria uma equipa" -#: src/app/main/ui/onboarding/team_choice.cljs:35 msgid "onboarding.team-modal.create-team-desc" msgstr "" "Uma equipa permite que colabores com outros utilizadores do Penpot " "trabalhando nos mesmos ficheiros e projetos." -#: src/app/main/ui/onboarding/team_choice.cljs:40 msgid "onboarding.team-modal.create-team-feature-1" msgstr "Ficheiros e projetos ilimitados" -#: src/app/main/ui/onboarding/team_choice.cljs:44 msgid "onboarding.team-modal.create-team-feature-2" msgstr "Edição Multiplayer" -#: src/app/main/ui/onboarding/team_choice.cljs:48 msgid "onboarding.team-modal.create-team-feature-3" msgstr "Gestão de funções" -#: src/app/main/ui/onboarding/team_choice.cljs:52 msgid "onboarding.team-modal.create-team-feature-4" msgstr "Membros ilimitados" -#: src/app/main/ui/onboarding/team_choice.cljs:56 msgid "onboarding.team-modal.create-team-feature-5" msgstr "100% grátis!" -#: src/app/main/ui/onboarding/team_choice.cljs:33 -msgid "onboarding.team-modal.team-definition" -msgstr "O que é uma equipa?" - -#: src/app/main/ui/onboarding/templates.cljs:78 msgid "onboarding.templates.subtitle" msgstr "Aqui tens alguns templates." -#: src/app/main/ui/onboarding/templates.cljs:77 msgid "onboarding.templates.title" msgstr "Começa a desenhar" -#, unused msgid "onboarding.welcome.alt" msgstr "Penpot" -#: src/app/main/ui/auth/recovery.cljs:99 +#: src/app/main/ui/auth/recovery.cljs msgid "profile.recovery.go-to-login" msgstr "Ir para login" -#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:221 +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.team-size.11-30" +msgstr "11-30" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.team-size.2-10" +msgstr "2-10" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.team-size.31-50" +msgstr "31-50" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.adobe-xd" +msgstr "Adobe XD" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.canva" +msgstr "Canva" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.figma" +msgstr "Figma" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.freelancer" +msgstr "Sou trabalhador(a) independente (freelancer)" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.invision" +msgstr "InVision" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.lets-get-started" +msgstr "Vamos começar!" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.team-size.more-than-50" +msgstr "Mais de 50" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.next" +msgstr "Seguinte" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.other" +msgstr "Outra (especificar)" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.team-size.personal-project" +msgstr "Estou a trabalhar num projeto pessoal" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.previous" +msgstr "Anterior" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.select-option" +msgstr "Escolhe uma opção" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.sketch" +msgstr "Sketch" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.start" +msgstr "Começar" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.student-teacher" +msgstr "Estudante ou professor(a)" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.step3.question3" +msgstr "De que tamanho é a tua equipa?" + +#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, msgid "settings.detach" msgstr "Desacoplar" -#: src/app/main/ui/viewer/inspect/exports.cljs:147, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:631, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:137, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:148, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:188, src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:158, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:399, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:410, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:430, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:441, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:458, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:472, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:309, src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:183, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:373, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:389, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:245, src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:172 +#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs msgid "settings.multiple" msgstr "Misturado" -#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:271 -msgid "settings.select-this-color" -msgstr "Selecionar itens que usem este estilo" - # SECTIONS -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:414 msgid "shortcut-section.basics" msgstr "Básicos" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:420 msgid "shortcut-section.dashboard" msgstr "Painel" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:423 msgid "shortcut-section.viewer" msgstr "Visualizador" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:417 msgid "shortcut-section.workspace" msgstr "Área de Trabalho" # SUBSECTIONS -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:56 msgid "shortcut-subsection.alignment" msgstr "Alinhamento" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:57 msgid "shortcut-subsection.edit" msgstr "Editar" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:58 msgid "shortcut-subsection.general-dashboard" msgstr "Genérico" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:59 msgid "shortcut-subsection.general-viewer" msgstr "Genérico" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:60 msgid "shortcut-subsection.main-menu" msgstr "Menu Principal" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:61 msgid "shortcut-subsection.modify-layers" msgstr "Modificar camadas" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:62 msgid "shortcut-subsection.navigation-dashboard" msgstr "Navegação" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:63 msgid "shortcut-subsection.navigation-viewer" msgstr "Navegação" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:64 msgid "shortcut-subsection.navigation-workspace" msgstr "Navegação" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:65 msgid "shortcut-subsection.panels" msgstr "Painéis" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:66 msgid "shortcut-subsection.path-editor" msgstr "Caminhos" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:67 msgid "shortcut-subsection.shape" msgstr "Formas" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:68 msgid "shortcut-subsection.text-editor" msgstr "Textos" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:69 msgid "shortcut-subsection.tools" msgstr "Ferramentas" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:70 msgid "shortcut-subsection.zoom-viewer" msgstr "Zoom" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:71 msgid "shortcut-subsection.zoom-workspace" msgstr "Zoom" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:72 msgid "shortcuts.add-comment" msgstr "Comentários" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:73 msgid "shortcuts.add-node" msgstr "Adicionar nó" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:74 msgid "shortcuts.align-bottom" msgstr "Alinhar abaixo" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:75 msgid "shortcuts.align-center" msgstr "Alinhar ao centro" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:76 msgid "shortcuts.align-hcenter" msgstr "Alinhar ao centro horizontalmente" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:77 msgid "shortcuts.align-justify" msgstr "Alinhar justificado" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:78 msgid "shortcuts.align-left" msgstr "Alinhar à esquerda" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:79 msgid "shortcuts.align-right" msgstr "Alinhar à direita" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:80 msgid "shortcuts.align-top" msgstr "Alinhar topo" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:81 msgid "shortcuts.align-vcenter" msgstr "Alinhar ao centro verticalmente" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:82 msgid "shortcuts.artboard-selection" msgstr "Criar prancheta a partir da seleção" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:83 msgid "shortcuts.bold" msgstr "Alternar negrito" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:84 msgid "shortcuts.bool-difference" msgstr "Diferença booleana" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:85 msgid "shortcuts.bool-exclude" msgstr "Exclusão Booleana" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:86 msgid "shortcuts.bool-intersection" msgstr "Intersecção Booleana" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:87 msgid "shortcuts.bool-union" msgstr "União Booleana" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:88 msgid "shortcuts.bring-back" msgstr "Enviar para trás" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:89 msgid "shortcuts.bring-backward" msgstr "Mover para trás" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:90 msgid "shortcuts.bring-forward" msgstr "Mover para a frente" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:91 msgid "shortcuts.bring-front" msgstr "Enviar para a frente" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:92 msgid "shortcuts.clear-undo" msgstr "Limpar historial" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:93 msgid "shortcuts.copy" msgstr "Copiar" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:94 msgid "shortcuts.create-component" msgstr "Criar componente" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:95 msgid "shortcuts.create-new-project" msgstr "Criar novo" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:96 msgid "shortcuts.cut" msgstr "Recortar" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:97 msgid "shortcuts.decrease-zoom" msgstr "Menos zoom" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:98 msgid "shortcuts.delete" msgstr "Eliminar" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:99 msgid "shortcuts.delete-node" msgstr "Eliminar nó" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:100 msgid "shortcuts.detach-component" msgstr "Desanexar componente" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:101 msgid "shortcuts.draw-curve" msgstr "Curva" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:102 msgid "shortcuts.draw-ellipse" msgstr "Elipse" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:103 msgid "shortcuts.draw-frame" msgstr "Quadro" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:104 msgid "shortcuts.draw-nodes" msgstr "Desenhar caminho" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:105 msgid "shortcuts.draw-path" msgstr "Caminho" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:106 msgid "shortcuts.draw-rect" msgstr "Rectângulo" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:107 msgid "shortcuts.draw-text" msgstr "Texto" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:108 msgid "shortcuts.duplicate" msgstr "Duplicar" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:109 msgid "shortcuts.escape" msgstr "Cancelar" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:110 msgid "shortcuts.export-shapes" msgstr "Exportar formas" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:111 msgid "shortcuts.fit-all" msgstr "Ajustar tudo à janela" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:112 msgid "shortcuts.flip-horizontal" msgstr "Virar horizontalmente" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:113 msgid "shortcuts.flip-vertical" msgstr "Virar verticalmente" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:114 msgid "shortcuts.font-size-dec" msgstr "Decrementar tamanho de fonte" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:115 msgid "shortcuts.font-size-inc" msgstr "Incrementar tamanho da fonte" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:116 msgid "shortcuts.go-to-drafts" msgstr "Ir para rascunhos" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:117 msgid "shortcuts.go-to-libs" msgstr "Ir para bibliotecas partilhadas" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:118 msgid "shortcuts.go-to-search" msgstr "Pesquisa" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:119 msgid "shortcuts.group" msgstr "Grupo" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:120 msgid "shortcuts.h-distribute" msgstr "Distribuir horizontalmente" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:121 msgid "shortcuts.hide-ui" msgstr "Mostrar/ocultar interface" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:122 msgid "shortcuts.increase-zoom" msgstr "Mais zoom" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:123 msgid "shortcuts.insert-image" msgstr "Inserir imagem" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:124 msgid "shortcuts.italic" msgstr "Alternar itálico" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:125 msgid "shortcuts.join-nodes" msgstr "Unir nós" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:126 msgid "shortcuts.letter-spacing-dec" msgstr "Decrementar espaçamento de letras" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:127 msgid "shortcuts.letter-spacing-inc" msgstr "Incrementar espaçamento de letras" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:128 msgid "shortcuts.line-height-dec" msgstr "Decrementar espaçamento entre linhas" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:129 msgid "shortcuts.line-height-inc" msgstr "Incrementar espaçamento entre linhas" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:130 msgid "shortcuts.line-through" msgstr "Alternar texto rasurado" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:131 msgid "shortcuts.make-corner" msgstr "Fazer canto" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:132 msgid "shortcuts.make-curve" msgstr "Fazer curva" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:133 msgid "shortcuts.mask" msgstr "Máscara" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:134 msgid "shortcuts.merge-nodes" msgstr "Fundir nós" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:135 msgid "shortcuts.move" msgstr "Mover" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:136 msgid "shortcuts.move-fast-down" msgstr "Mover para baixo rápido" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:137 msgid "shortcuts.move-fast-left" msgstr "Mover para a esquerda rápido" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:138 msgid "shortcuts.move-fast-right" msgstr "Mover para a direita rápido" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:139 msgid "shortcuts.move-fast-up" msgstr "Mover para cima rápido" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:140 msgid "shortcuts.move-nodes" msgstr "Mover nó" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:141 msgid "shortcuts.move-unit-down" msgstr "Mover para baixo" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:142 msgid "shortcuts.move-unit-left" msgstr "Mover para a esquerda" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:143 msgid "shortcuts.move-unit-right" msgstr "Mover para a direita" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:144 msgid "shortcuts.move-unit-up" msgstr "Mover para cima" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:145 msgid "shortcuts.next-frame" msgstr "Próximo quadro" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:516 msgid "shortcuts.not-found" msgstr "Nenhum atalho encontrado" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:146 msgid "shortcuts.opacity-0" msgstr "Definir opacidade a 100%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:147 msgid "shortcuts.opacity-1" msgstr "Definir opacidade a 10%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:148 msgid "shortcuts.opacity-2" msgstr "Definir opacidade a 20%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:149 msgid "shortcuts.opacity-3" msgstr "Definir opacidade a 30%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:150 msgid "shortcuts.opacity-4" msgstr "Definir opacidade a 40%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:151 msgid "shortcuts.opacity-5" msgstr "Definir opacidade a 50%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:152 msgid "shortcuts.opacity-6" msgstr "Definir opacidade a 60%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:153 msgid "shortcuts.opacity-7" msgstr "Definir opacidade a 70%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:154 msgid "shortcuts.opacity-8" msgstr "Definir opacidade a 80%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:155 msgid "shortcuts.opacity-9" msgstr "Definir opacidade a 90%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:156 msgid "shortcuts.open-color-picker" msgstr "Selector de cores" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:157 msgid "shortcuts.open-comments" msgstr "Ir para secção de comentários" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:158 msgid "shortcuts.open-dashboard" msgstr "Ir para painel" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:159 msgid "shortcuts.open-inspect" msgstr "Ir para secção de inspeção" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:160 msgid "shortcuts.open-interactions" msgstr "Ir para secção de interações" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:161 msgid "shortcuts.open-viewer" msgstr "Ir para secção de interações" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:162 msgid "shortcuts.open-workspace" msgstr "Ir para a área de trabalho" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:260 msgid "shortcuts.or" msgstr " ou " -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:163 msgid "shortcuts.paste" msgstr "Colar" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:164 msgid "shortcuts.prev-frame" msgstr "Quadro anterior" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:165 msgid "shortcuts.redo" msgstr "Refazer" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:166 msgid "shortcuts.reset-zoom" msgstr "Redefinir zoom" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:168 msgid "shortcuts.search-placeholder" msgstr "Pesquisar atalhos" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:169 msgid "shortcuts.select-all" msgstr "Selecionar tudo" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:170 msgid "shortcuts.select-next" msgstr "Selecionar camada seguinte" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:171 msgid "shortcuts.select-parent-layer" msgstr "Selecionar camada pai" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:172 msgid "shortcuts.select-prev" msgstr "Selecionar camada anterior" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:173 msgid "shortcuts.separate-nodes" msgstr "Separar nós" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:174 msgid "shortcuts.show-pixel-grid" msgstr "Mostrar/ocultar grade de píxeis" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:175 msgid "shortcuts.show-shortcuts" msgstr "Mostrar/ocultar atalhos" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:176 msgid "shortcuts.snap-nodes" msgstr "Ajustar aos nós" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:177 msgid "shortcuts.snap-pixel-grid" msgstr "Ajustar à grade de píxeis" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:178 msgid "shortcuts.start-editing" msgstr "Iniciar edição" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:179 msgid "shortcuts.start-measure" msgstr "Iniciar medição" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:180 msgid "shortcuts.stop-measure" msgstr "Parar medição" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:181 msgid "shortcuts.text-align-center" msgstr "Alinhar ao centro" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:182 msgid "shortcuts.text-align-justify" msgstr "Alinhar justificado" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:183 msgid "shortcuts.text-align-left" msgstr "Alinhar à esquerda" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:184 msgid "shortcuts.text-align-right" msgstr "Alinhar à direita" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:185 msgid "shortcuts.thumbnail-set" msgstr "Definir imagem destaque" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:496, src/app/main/ui/workspace/sidebar/shortcuts.cljs:505 +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs msgid "shortcuts.title" msgstr "Atalhos do teclado" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:186 msgid "shortcuts.toggle-alignment" msgstr "Alternar alinhamento dinâmico" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:187 msgid "shortcuts.toggle-assets" msgstr "Alternar recursos" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:188 msgid "shortcuts.toggle-colorpalette" msgstr "Alternar selector de cores" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:189 msgid "shortcuts.toggle-focus-mode" msgstr "Alternar modo de foco" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:190 msgid "shortcuts.toggle-fullscreen" msgstr "Alternar tela cheia" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:192 msgid "shortcuts.toggle-history" msgstr "Alternar histórico" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:193 msgid "shortcuts.toggle-layers" msgstr "Alternar camadas" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:194 msgid "shortcuts.toggle-layout-flex" msgstr "Adicionar / Remover layout flex" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:196 msgid "shortcuts.toggle-lock" msgstr "Bloquear selecionado" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:197 msgid "shortcuts.toggle-lock-size" msgstr "Bloquear proporções" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:202 msgid "shortcuts.toggle-textpalette" msgstr "Alternar paleta de texto" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:203 msgid "shortcuts.toggle-theme" msgstr "Mudar tema" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:204 msgid "shortcuts.toggle-visibility" msgstr "Mostrar / Ocultar" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:205 msgid "shortcuts.toggle-zoom-style" msgstr "Alternar estilo de zoom" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:206 msgid "shortcuts.underline" msgstr "Alternar sublinhado" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:207 msgid "shortcuts.undo" msgstr "Desfazer" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:208 msgid "shortcuts.ungroup" msgstr "Desagrupar" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:209 msgid "shortcuts.unmask" msgstr "Retirar máscara" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:210 msgid "shortcuts.v-distribute" msgstr "Distribuir verticalmente" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:211 msgid "shortcuts.zoom-lense-decrease" msgstr "Reduzir zoom na lupa" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:212 msgid "shortcuts.zoom-lense-increase" msgstr "Aumentar zoom na lupa" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:213 msgid "shortcuts.zoom-selected" msgstr "Zoom para selecionados" -#: src/app/main/ui/dashboard/team.cljs:771 +#: src/app/main/ui/dashboard/team.cljs msgid "team.webhooks.max-length" msgstr "O nome do webhook deve conter um máximo de 2048 caracteres." -#: src/app/main/ui/dashboard/files.cljs:158 +#: src/app/main/ui/dashboard/files.cljs msgid "title.dashboard.files" msgstr "%s - Penpot" -#: src/app/main/ui/dashboard/fonts.cljs:37 +#: src/app/main/ui/dashboard/fonts.cljs msgid "title.dashboard.font-providers" msgstr "Provedores de fonte - %s - Penpot" -#: src/app/main/ui/dashboard/fonts.cljs:36 +#: src/app/main/ui/dashboard/fonts.cljs msgid "title.dashboard.fonts" msgstr "Fontes - %s - Penpot" -#: src/app/main/ui/dashboard/projects.cljs:320 +#: src/app/main/ui/dashboard/projects.cljs msgid "title.dashboard.projects" msgstr "Projetos - %s - Penpot" -#: src/app/main/ui/dashboard/search.cljs:32 +#: src/app/main/ui/dashboard/search.cljs msgid "title.dashboard.search" msgstr "Pesquisa - %s - Penpot" -#: src/app/main/ui/dashboard/libraries.cljs:44 +#: src/app/main/ui/dashboard/libraries.cljs msgid "title.dashboard.shared-libraries" msgstr "Bibliotecas partilhadas - %s - Penpot" -#: src/app/main/ui/auth/verify_token.cljs:68, src/app/main/ui/auth.cljs:54 +#: src/app/main/ui/auth/verify_token.cljs, src/app/main/ui/auth.cljs msgid "title.default" msgstr "Penpot - Liberdade de Design para Equipas" -#: src/app/main/ui/settings/access_tokens.cljs:292 +#: src/app/main/ui/settings/access-tokens.cljs msgid "title.settings.access-tokens" msgstr "Perfil - Tokens de acesso" -#: src/app/main/ui/settings/feedback.cljs:110 +#: src/app/main/ui/settings/feedback.cljs msgid "title.settings.feedback" msgstr "Dá feedback - Penpot" -#: src/app/main/ui/settings/options.cljs:80 +#: src/app/main/ui/settings/options.cljs msgid "title.settings.options" msgstr "Definições - Penpot" -#: src/app/main/ui/settings/password.cljs:115 +#: src/app/main/ui/settings/password.cljs msgid "title.settings.password" msgstr "Palavra-passe - Penpot" -#: src/app/main/ui/settings/profile.cljs:115 +#: src/app/main/ui/settings/profile.cljs msgid "title.settings.profile" msgstr "Perfil - Penpot" -#: src/app/main/ui/dashboard/team.cljs:727 +#: src/app/main/ui/dashboard/team.cljs msgid "title.team-invitations" msgstr "Convites - %s - Penpot" -#: src/app/main/ui/dashboard/team.cljs:493 +#: src/app/main/ui/dashboard/team.cljs msgid "title.team-members" msgstr "Membros - %s - Penpot" -#: src/app/main/ui/dashboard/team.cljs:1036 +#: src/app/main/ui/dashboard/team.cljs msgid "title.team-settings" msgstr "Definições - %s - Penpot" -#: src/app/main/ui/dashboard/team.cljs:989 msgid "title.team-webhooks" msgstr "Webhooks - %s - Penpot" -#: src/app/main/ui/viewer.cljs:419 +#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs msgid "title.viewer" msgstr "%s - Modo visualizador - Penpot" -#: src/app/main/ui/workspace.cljs:190 +#: src/app/main/ui/workspace.cljs msgid "title.workspace" msgstr "%s - Penpot" -#: src/app/main/ui.cljs:144 msgid "viewer.breaking-change.description" msgstr "" -"Este link partilhável já não é válido. Cria uma nova ou pede ao " -"proprietário para um novo." +"Este link partilhável já não é válido. Cria uma nova ou pede ao proprietário " +"para um novo." -#: src/app/main/ui.cljs:143 msgid "viewer.breaking-change.message" msgstr "Desculpa!" -#: src/app/main/ui/viewer.cljs:569 +#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs msgid "viewer.empty-state" msgstr "Não foram encontrados quadros na página." -#: src/app/main/ui/viewer.cljs:574 +#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs msgid "viewer.frame-not-found" msgstr "Quadro não encontrado." -#: src/app/main/ui/viewer/header.cljs:336 msgid "viewer.header.comments-section" msgstr "Comentários (%s)" -#: src/app/main/ui/viewer/interactions.cljs:292 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.dont-show-interactions" msgstr "Não mostrar interações" -#: src/app/main/ui/viewer/header.cljs:188 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.fullscreen" msgstr "Tela Cheia" -#: src/app/main/ui/viewer/header.cljs:345 msgid "viewer.header.inspect-section" msgstr "Inspecionar (%s)" -#: src/app/main/ui/viewer/interactions.cljs:282 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.interactions" msgstr "Interações" -#: src/app/main/ui/viewer/header.cljs:327 msgid "viewer.header.interactions-section" msgstr "Interações (%s)" -#: src/app/main/ui/viewer/share_link.cljs:187 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.share.copy-link" msgstr "Copiar link" -#: src/app/main/ui/viewer/interactions.cljs:300 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.show-interactions" msgstr "Mostrar interações" -#: src/app/main/ui/viewer/interactions.cljs:311 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.show-interactions-on-click" msgstr "Mostrar interações com click" -#: src/app/main/ui/viewer/header.cljs:231 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.sitemap" msgstr "Mapa do site" -#: src/app/main/ui/dashboard/team.cljs:948 +#, fuzzy msgid "webhooks.last-delivery.success" msgstr "Último envio com sucesso." -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:58 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.hcenter" msgstr "Alinhar horizontal ao centro (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:74 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.hdistribute" msgstr "Distribuir espaçamento horizontal (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:50 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.hleft" msgstr "Alinhar à esquerda (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:66 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.hright" msgstr "Alinhar à direita (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:99 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.vbottom" msgstr "Alinhar abaixo (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:91 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.vcenter" msgstr "Alinhar ao centro verticalmente (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:104 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.vdistribute" msgstr "Distribuir espaçamento vertical (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:83 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.vtop" msgstr "Alinhar ao topo (%s)" #: src/app/main/ui/workspace/sidebar/assets.cljs -#, unused msgid "workspace.assets.assets" msgstr "Recursos" -#: src/app/main/ui/workspace/sidebar/assets.cljs:134 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.box-filter-all" msgstr "Todos os recursos" -#: src/app/main/ui/dashboard/grid.cljs:130, src/app/main/ui/dashboard/grid.cljs:162, src/app/main/ui/workspace/sidebar/assets/colors.cljs:485, src/app/main/ui/workspace/sidebar/assets.cljs:150 +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.colors" msgstr "Cores" -#: src/app/main/ui/dashboard/grid.cljs:126, src/app/main/ui/dashboard/grid.cljs:141, src/app/main/ui/workspace/sidebar/assets/components.cljs:513, src/app/main/ui/workspace/sidebar/assets.cljs:139 +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.components" msgstr "Componentes" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:131 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.create-group" msgstr "Criar grupo" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:142 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.create-group-hint" msgstr "" "Os teus itens serão nomeados automaticamente como \"nome do grupo / nome do " "item\"" -#: src/app/main/ui/workspace/context_menu.cljs:529, src/app/main/ui/workspace/sidebar/assets/colors.cljs:251, src/app/main/ui/workspace/sidebar/assets/components.cljs:577, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:424, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:443 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.delete" msgstr "Eliminar" -#: src/app/main/ui/workspace/context_menu.cljs:534, src/app/main/ui/workspace/sidebar/assets/components.cljs:572 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.duplicate" msgstr "Duplicar" -#: src/app/main/ui/workspace/sidebar/assets/components.cljs:571 msgid "workspace.assets.duplicate-main" msgstr "Duplicar principal" -#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:247, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:439 +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.edit" msgstr "Editar" -#: src/app/main/ui/workspace/sidebar/assets.cljs:176 -msgid "workspace.assets.filter" -msgstr "Filtrar" - -#: src/app/main/ui/workspace/sidebar/assets/graphics.cljs:384, src/app/main/ui/workspace/sidebar/assets.cljs:145 +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.graphics" msgstr "Gráficos" -#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:255, src/app/main/ui/workspace/sidebar/assets/components.cljs:581, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:428, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:448 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.group" msgstr "Agrupar" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:141 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.group-name" msgstr "Nome do grupo" -#: src/app/main/ui/workspace/sidebar/assets.cljs:168 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.libraries" msgstr "Bibliotecas" -#: src/app/main/ui/workspace/sidebar/assets/file_library.cljs:62, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:347 msgid "workspace.assets.local-library" msgstr "biblioteca local" -#: src/app/main/ui/workspace/sidebar/assets/file_library.cljs:295 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.not-found" msgstr "Recursos não encontrados" -#, unused msgid "workspace.assets.open-library" msgstr "Abrir ficheiro de biblioteca" -#: src/app/main/ui/workspace/context_menu.cljs:532, src/app/main/ui/workspace/sidebar/assets/colors.cljs:243, src/app/main/ui/workspace/sidebar/assets/components.cljs:566, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:421, src/app/main/ui/workspace/sidebar/assets/groups.cljs:63, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:434 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.rename" msgstr "Renomear" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:132 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.rename-group" msgstr "Renomear grupo" -#: src/app/main/ui/workspace/sidebar/assets.cljs:173 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.search" msgstr "Pesquisar recursos" #: src/app/main/ui/workspace/sidebar/assets.cljs -#, unused msgid "workspace.assets.selected-count" msgid_plural "workspace.assets.selected-count" msgstr[0] "%s item selecionado" msgstr[1] "%s itens selecionados" #: src/app/main/ui/workspace/sidebar/assets.cljs -#, unused msgid "workspace.assets.shared-library" msgstr "Biblioteca partilhada" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:221 -msgid "workspace.assets.sidebar.components" -msgid_plural "workspace.assets.sidebar.components" -msgstr[0] "1 componente" -msgstr[1] "%s componentes" - -#: src/app/main/ui/workspace/sidebar/assets.cljs:193 -msgid "workspace.assets.sort" -msgstr "Ordenar" - -#: src/app/main/ui/dashboard/grid.cljs:134, src/app/main/ui/dashboard/grid.cljs:189, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:397, src/app/main/ui/workspace/sidebar/assets.cljs:155 +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.typography" msgstr "Tipografias" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused msgid "workspace.assets.typography.font-id" msgstr "Fonte" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:505 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.font-size" msgstr "Tamanho" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:501 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.font-variant-id" msgstr "Variante" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:523 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.go-to-edit" msgstr "Ir para ficheiro da biblioteca de estilos para editar" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:513 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.letter-spacing" msgstr "Espaço entre letras" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:509 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.line-height" msgstr "Altura da Linha" -#: src/app/main/ui/dashboard/grid.cljs:199, src/app/main/ui/workspace/libraries.cljs:461, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:464, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:489, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:596, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:615 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, +#: src/app/main/ui/inspect/attributes/text.cljs, +#: src/app/main/ui/inspect/attributes/text.cljs msgid "workspace.assets.typography.sample" msgstr "Ag" -#, unused msgid "workspace.assets.typography.text-styles" msgstr "Estilos de texto" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:517 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.text-transform" msgstr "Transformar Texto" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:66 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.ungroup" msgstr "Desagrupar" -#: src/app/main/ui/workspace/context_menu.cljs:634 msgid "workspace.context-menu.grid-cells.area" msgstr "Criar área" -#: src/app/main/ui/workspace/context_menu.cljs:637 msgid "workspace.context-menu.grid-cells.create-board" msgstr "Criar prancheta" -#: src/app/main/ui/workspace/context_menu.cljs:629 msgid "workspace.context-menu.grid-cells.merge" msgstr "Unir células" -#: src/app/main/ui/workspace/context_menu.cljs:594 msgid "workspace.context-menu.grid-track.column.add-after" msgstr "Adicionar 1 coluna à direita" -#: src/app/main/ui/workspace/context_menu.cljs:593 msgid "workspace.context-menu.grid-track.column.add-before" msgstr "Adicionar 1 coluna à esquerda" -#: src/app/main/ui/workspace/context_menu.cljs:595 msgid "workspace.context-menu.grid-track.column.delete" msgstr "Eliminar coluna" -#: src/app/main/ui/workspace/context_menu.cljs:596 msgid "workspace.context-menu.grid-track.column.delete-shapes" msgstr "Apagar coluna e conteúdos" -#: src/app/main/ui/workspace/context_menu.cljs:592 msgid "workspace.context-menu.grid-track.column.duplicate" msgstr "Duplicar coluna" -#: src/app/main/ui/workspace/context_menu.cljs:601 msgid "workspace.context-menu.grid-track.row.add-after" msgstr "Adicionar 1 fila abaixo" -#: src/app/main/ui/workspace/context_menu.cljs:600 msgid "workspace.context-menu.grid-track.row.add-before" msgstr "Adicionar 1 fila acima" -#: src/app/main/ui/workspace/context_menu.cljs:602 msgid "workspace.context-menu.grid-track.row.delete" msgstr "Apagar fila" -#: src/app/main/ui/workspace/context_menu.cljs:603 msgid "workspace.context-menu.grid-track.row.delete-shapes" msgstr "Apagar fila e conteúdos" -#: src/app/main/ui/workspace/context_menu.cljs:599 msgid "workspace.context-menu.grid-track.row.duplicate" msgstr "Duplicar fila" -#: src/app/main/ui/workspace/sidebar/layers.cljs:525 msgid "workspace.focus.focus-mode" msgstr "Modo de foco" -#: src/app/main/ui/workspace/context_menu.cljs:287, src/app/main/ui/workspace/context_menu.cljs:553 msgid "workspace.focus.focus-off" msgstr "Foco desativado" -#: src/app/main/ui/workspace/context_menu.cljs:286 msgid "workspace.focus.focus-on" msgstr "Foco ativo" -#, unused msgid "workspace.focus.selection" msgstr "Seleção" -#: src/app/util/color.cljs:34 +#: src/app/main/data/workspace/libraries.cljs, +#: src/app/main/ui/components/color_bullet.cljs msgid "workspace.gradients.linear" msgstr "Gradiente linear" -#: src/app/util/color.cljs:35 +#: src/app/main/data/workspace/libraries.cljs, +#: src/app/main/ui/components/color_bullet.cljs msgid "workspace.gradients.radial" msgstr "Gradiente radial" -#: src/app/main/ui/workspace/main_menu.cljs:238 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.disable-dynamic-alignment" msgstr "Desativar alinhamento dinâmico" -#: src/app/main/ui/workspace/main_menu.cljs:192 msgid "workspace.header.menu.disable-scale-content" msgstr "Desativar escala proporcional" #: src/app/main/ui/workspace/header.cljs -#, unused msgid "workspace.header.menu.disable-scale-text" msgstr "Desativar escala de texto" -#: src/app/main/ui/workspace/main_menu.cljs:223 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.disable-snap-guides" msgstr "Desativar ajuste às guias" -#: src/app/main/ui/workspace/main_menu.cljs:253 msgid "workspace.header.menu.disable-snap-pixel-grid" msgstr "Desativar ajuste ao pixel" -#: src/app/main/ui/workspace/main_menu.cljs:239 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.enable-dynamic-alignment" msgstr "Ativar alinhamento dinâmico" -#: src/app/main/ui/workspace/main_menu.cljs:193 msgid "workspace.header.menu.enable-scale-content" msgstr "Ativar escala proporcional" #: src/app/main/ui/workspace/header.cljs -#, unused msgid "workspace.header.menu.enable-scale-text" msgstr "Ativar escalar texto" -#: src/app/main/ui/workspace/main_menu.cljs:224 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.enable-snap-guides" msgstr "Ajustar às guias" -#: src/app/main/ui/workspace/main_menu.cljs:254 msgid "workspace.header.menu.enable-snap-pixel-grid" msgstr "Ativar ajuste ao pixel" -#: src/app/main/ui/workspace/main_menu.cljs:382 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.hide-artboard-names" msgstr "Ocultar nome das pranchetas" -#: src/app/main/ui/workspace/main_menu.cljs:353 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.hide-palette" msgstr "Ocultar paleta de cor" -#: src/app/main/ui/workspace/main_menu.cljs:394 msgid "workspace.header.menu.hide-pixel-grid" msgstr "Ocultar grade de píxeis" -#: src/app/main/ui/workspace/main_menu.cljs:320 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.hide-rules" msgstr "Ocultar réguas" -#: src/app/main/ui/workspace/main_menu.cljs:367 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.hide-textpalette" msgstr "Ocultar paleta de texto" -#: src/app/main/ui/workspace/main_menu.cljs:731 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.edit" msgstr "Editar" -#: src/app/main/ui/workspace/main_menu.cljs:720 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.file" msgstr "Ficheiro" -#: src/app/main/ui/workspace/main_menu.cljs:777 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.help-info" msgstr "Ajuda e Informações" -#: src/app/main/ui/workspace/main_menu.cljs:753 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.preferences" msgstr "Preferências" -#: src/app/main/ui/workspace/main_menu.cljs:742 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.view" msgstr "Visualização" -#: src/app/main/ui/workspace/main_menu.cljs:459 msgid "workspace.header.menu.redo" msgstr "Refazer" -#: src/app/main/ui/workspace/main_menu.cljs:432 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.select-all" msgstr "Selecionar tudo" -#: src/app/main/ui/workspace/main_menu.cljs:383 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.show-artboard-names" msgstr "Mostrar nomes das pranchetas" -#: src/app/main/ui/workspace/main_menu.cljs:354 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.show-palette" msgstr "Mostrar paleta de cor" -#: src/app/main/ui/workspace/main_menu.cljs:395 msgid "workspace.header.menu.show-pixel-grid" msgstr "Mostrar grade de píxeis" -#: src/app/main/ui/workspace/main_menu.cljs:321 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.show-rules" msgstr "Mostrar réguas" -#: src/app/main/ui/workspace/main_menu.cljs:368 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.show-textpalette" msgstr "Mostrar paleta de texto" -#: src/app/main/ui/workspace/main_menu.cljs:279 msgid "workspace.header.menu.toggle-dark-theme" msgstr "Alterar para tema escuro" -#: src/app/main/ui/workspace/main_menu.cljs:278 msgid "workspace.header.menu.toggle-light-theme" msgstr "Mudar para tema claro" -#: src/app/main/ui/workspace/main_menu.cljs:446 msgid "workspace.header.menu.undo" msgstr "Desfazer" -#: src/app/main/ui/viewer/header.cljs:98, src/app/main/ui/workspace/right_header.cljs:120 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.reset-zoom" msgstr "Ampliar em 100%" #: src/app/main/ui/workspace/header.cljs -#, unused msgid "workspace.header.save-error" msgstr "Erro ao salvar" -#: src/app/main/ui/workspace/right_header.cljs:52 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.saved" msgstr "Guardado" #: src/app/main/ui/workspace/header.cljs -#, unused msgid "workspace.header.saving" msgstr "A salvar" -#: src/app/main/ui/workspace/right_header.cljs:42, src/app/main/ui/workspace/right_header.cljs:47 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.unsaved" msgstr "Alterações não guardadas" -#: src/app/main/ui/workspace/right_header.cljs:239 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.viewer" msgstr "Modo de visualização (%s)" -#: src/app/main/ui/viewer/header.cljs:79, src/app/main/ui/workspace/right_header.cljs:103 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom" msgstr "Zoom" -#: src/app/main/ui/viewer/header.cljs:109 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom-fill" msgstr "Ajustar para preencher" -#: src/app/main/ui/viewer/header.cljs:102 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom-fit" msgstr "Ajustar para encaixar" -#: src/app/main/ui/workspace/right_header.cljs:123 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom-fit-all" msgstr "Ajustar para mostrar tudo" -#: src/app/main/ui/viewer/header.cljs:116 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom-full-screen" msgstr "Tela cheia" -#: src/app/main/ui/workspace/right_header.cljs:130 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom-selected" msgstr "Aumentar para seleção" -#: src/app/main/ui/workspace/sidebar/options/menus/grid_cell.cljs:273, src/app/main/ui/workspace/sidebar/options/menus/grid_cell.cljs:275, src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:612 msgid "workspace.layout_grid.editor.options.edit-grid" msgstr "Editar grelha" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:1280 msgid "workspace.layout_grid.editor.options.exit" msgstr "Sair" -#: src/app/main/ui/workspace/viewport/grid_layout_editor.cljs:59 msgid "workspace.layout_grid.editor.title" msgstr "A editar grelha" -#: src/app/main/ui/workspace/viewport/grid_layout_editor.cljs:65 msgid "workspace.layout_grid.editor.top-bar.done" msgstr "Feito" -#: src/app/main/ui/workspace/viewport/grid_layout_editor.cljs:62 msgid "workspace.layout_grid.editor.top-bar.locate" msgstr "Localizar" #: src/app/main/ui/workspace/libraries.cljs -#, unused msgid "workspace.libraries.add" msgstr "Adicionar" -#: src/app/main/ui/workspace/libraries.cljs:80, src/app/main/ui/workspace/libraries.cljs:99 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.colors" msgstr "%s cores" -#: src/app/main/ui/workspace/color_palette.cljs:126 +#: src/app/main/ui/workspace/colorpalette.cljs msgid "workspace.libraries.colors.empty-palette" msgstr "Ainda não existem estilos de cor na tua biblioteca" -#: src/app/main/ui/workspace/text_palette.cljs:150 +#: src/app/main/ui/workspace/textpalette.cljs msgid "workspace.libraries.colors.empty-typography-palette" msgstr "Ainda não existem tipografias na tua biblioteca" -#: src/app/main/ui/workspace/color_palette_ctx_menu.cljs:60, src/app/main/ui/workspace/colorpicker/libraries.cljs:73, src/app/main/ui/workspace/text_palette_ctx_menu.cljs:50 +#: src/app/main/ui/workspace/colorpicker/libraries.cljs, +#: src/app/main/ui/workspace/colorpalette.cljs msgid "workspace.libraries.colors.file-library" msgstr "Biblioteca de ficheiros" #: src/app/main/ui/workspace/colorpicker.cljs -#, unused msgid "workspace.libraries.colors.hsv" msgstr "HSV" -#: src/app/main/ui/workspace/color_palette_ctx_menu.cljs:82, src/app/main/ui/workspace/colorpicker/libraries.cljs:72 +#: src/app/main/ui/workspace/colorpicker/libraries.cljs, +#: src/app/main/ui/workspace/colorpalette.cljs msgid "workspace.libraries.colors.recent-colors" msgstr "Cores recentes" #: src/app/main/ui/workspace/colorpicker.cljs -#, unused msgid "workspace.libraries.colors.rgb-complementary" msgstr "RGB Complementar" #: src/app/main/ui/workspace/colorpicker.cljs -#, unused msgid "workspace.libraries.colors.rgba" msgstr "RGBA" -#: src/app/main/ui/workspace/colorpicker.cljs:372 +#: src/app/main/ui/workspace/colorpicker.cljs msgid "workspace.libraries.colors.save-color" msgstr "Guardar estilo de cor" -#: src/app/main/ui/workspace/libraries.cljs:74, src/app/main/ui/workspace/libraries.cljs:91 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.components" msgstr "%s componentes" -#: src/app/main/ui/workspace/libraries.cljs:215 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.file-library" msgstr "Biblioteca de ficheiros" -#: src/app/main/ui/workspace/libraries.cljs:77, src/app/main/ui/workspace/libraries.cljs:95 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.graphics" msgstr "%s gráficos" -#: src/app/main/ui/workspace/libraries.cljs:209 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.in-this-file" msgstr "BIBLIOTECAS NESTE FICHEIRO" -#: src/app/main/ui/workspace/libraries.cljs:526, src/app/main/ui/workspace/libraries.cljs:531 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.libraries" msgstr "BIBLIOTECAS" #: src/app/main/ui/workspace/libraries.cljs -#, unused msgid "workspace.libraries.library" msgstr "BIBLIOTECA" -#: src/app/main/ui/workspace/libraries.cljs:382 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.library-updates" msgstr "ATUALIZAÇÕES DE BIBLIOTECAS" -#: src/app/main/ui/workspace/libraries.cljs:290 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.loading" msgstr "A carregar…" -#: src/app/main/ui/workspace/libraries.cljs:380 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.no-libraries-need-sync" msgstr "Não há bibliotecas partilhadas que precisem de atualização" -#: src/app/main/ui/workspace/libraries.cljs:299 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.no-matches-for" msgstr "Não há resultados para \"%s\"" -#: src/app/main/ui/workspace/libraries.cljs:296 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.no-shared-libraries-available" msgstr "Não há bibliotecas partilhadas disponíveis" -#: src/app/main/ui/workspace/libraries.cljs:260 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.search-shared-libraries" msgstr "Pesquisar bibliotecas partilhadas" -#: src/app/main/ui/workspace/libraries.cljs:256 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.shared-libraries" msgstr "BIBLIOTECAS PARTILHADAS" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:308 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.libraries.text.multiple-typography" msgstr "Múltiplas tipografias" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:311 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.libraries.text.multiple-typography-tooltip" msgstr "Desassociar todas as tipografias" -#: src/app/main/ui/workspace/libraries.cljs:83, src/app/main/ui/workspace/libraries.cljs:103 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.typography" msgstr "%s tipografias" -#: src/app/main/ui/workspace/libraries.cljs:402 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.update" msgstr "Atualizar" -#: src/app/main/ui/workspace/libraries.cljs:477 +#: src/app/main/data/workspace/libraries.cljs msgid "workspace.libraries.update.see-all-changes" msgstr "ver todas as alterações" -#: src/app/main/ui/workspace/libraries.cljs:536 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.updates" msgstr "ATUALIZAÇÕES" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:737 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.add-interaction" msgstr "Clica no botão + para adicionar interações." -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:86, src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:102 +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs msgid "workspace.options.blur-options.title" msgstr "Desfoque" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:85 +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs msgid "workspace.options.blur-options.title.group" msgstr "Desfoque de grupo" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:84 +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs msgid "workspace.options.blur-options.title.multiple" msgstr "Desfoque de seleção" -#: src/app/main/ui/workspace/sidebar/options/page.cljs:32, src/app/main/ui/workspace/sidebar/options/page.cljs:39 +#: src/app/main/ui/workspace/sidebar/options/page.cljs msgid "workspace.options.canvas-background" msgstr "Plano de fundo" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:548 msgid "workspace.options.clip-content" msgstr "Recorte do conteúdo" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:600, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:605 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs msgid "workspace.options.component" msgstr "Componente" -#: src/app/main/ui/viewer/inspect/annotation.cljs:19, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:181 msgid "workspace.options.component.annotation" msgstr "Nota" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:610 msgid "workspace.options.component.copy" msgstr "Cópia" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:173 msgid "workspace.options.component.create-annotation" msgstr "Criar uma nota" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:172 msgid "workspace.options.component.edit-annotation" msgstr "Editar uma nota" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:609 msgid "workspace.options.component.main" msgstr "Principal" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:427 msgid "workspace.options.component.swap" msgstr "Trocar de componente" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:471 msgid "workspace.options.component.swap.empty" msgstr "Ainda não existem recursos nesta biblioteca" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:163 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints" msgstr "Restrições" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:150 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.bottom" msgstr "Abaixo" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:141, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:152 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.center" msgstr "Centro" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:229 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.fix-when-scrolling" msgstr "Fixar no scroll" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:138 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.left" msgstr "Esquerda" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:140 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.leftright" msgstr "Esquerda e Direita" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:139 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.right" msgstr "Direita" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:142, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:153 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.scale" msgstr "Escala" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:149 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.top" msgstr "Topo" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:151 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.topbottom" msgstr "Topo e Abaixo" -#: src/app/main/ui/workspace/sidebar/options.cljs:112 +#: src/app/main/ui/workspace/sidebar/options.cljs msgid "workspace.options.design" msgstr "Design" -#: src/app/main/ui/viewer/inspect/exports.cljs:139 +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, +#: src/app/main/ui/inspect/exports.cljs msgid "workspace.options.export" msgstr "Exportar" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, +#: src/app/main/ui/inspect/exports.cljs msgid "workspace.options.export-multiple" msgstr "Exportar seleção" -#: src/app/main/ui/viewer/inspect/exports.cljs:195, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:237 +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, +#: src/app/main/ui/inspect/exports.cljs msgid "workspace.options.export-object" msgid_plural "workspace.options.export-object" msgstr[0] "Exportar 1 elemento" msgstr[1] "Exportar %s elementos" -#: src/app/main/ui/viewer/inspect/exports.cljs:178, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:219 +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs msgid "workspace.options.export.suffix" msgstr "Sufixo" -#: src/app/main/ui/export.cljs:240 +#: 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.exporting-complete" msgstr "Exportação completa" -#: src/app/main/ui/export.cljs:172, src/app/main/ui/export.cljs:241, src/app/main/ui/viewer/inspect/exports.cljs:194, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:236 +#: 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.exporting-object" msgstr "A exportar…" -#: src/app/main/ui/export.cljs:239 +#: 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.exporting-object-error" msgstr "A exportação falhou" -#: src/app/main/ui/export.cljs:242 +#: 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.exporting-object-slow" msgstr "Exportação inesperadamente lenta" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:49, src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:174 +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs msgid "workspace.options.fill" msgstr "Preenchimento" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:178 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.flows.add-flow-start" msgstr "Adicionar início de fluxo" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:174 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.flows.flow" msgstr "Fluxo" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -#, unused msgid "workspace.options.flows.flow-start" msgstr "Início de fluxo" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:161 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.flows.flow-starts" msgstr "Início de fluxo" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:29 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.auto" msgstr "Automático" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:157 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.column" msgstr "Colunas" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.grid-title" msgstr "Grade" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:196, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:237 msgid "workspace.options.grid.params.color" msgstr "Cor" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.params.columns" msgstr "Colunas" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:259 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.gutter" msgstr "Espaço" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:246 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.height" msgstr "Altura" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:270 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.margin" msgstr "Margem" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.params.rows" msgstr "Linhas" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:216, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:290 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.set-default" msgstr "Definir como padrão" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.params.size" msgstr "Tamanho" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.params.type" msgstr "Tipo" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:231 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.bottom" msgstr "Abaixo" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:229 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.center" msgstr "Centro" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:228 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.left" msgstr "Esquerda" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:232 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.right" msgstr "Direita" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:225 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.stretch" msgstr "Esticar" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:227 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.top" msgstr "Topo" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:211, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:288 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.use-default" msgstr "Utilizar padrão" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:247 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.width" msgstr "Largura" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:158 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.row" msgstr "Linhas" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:156 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.square" msgstr "Quadrado" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:48 +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs msgid "workspace.options.group-fill" msgstr "Preenchimento de grupo" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:42 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.group-stroke" msgstr "Traço de grupo" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:310 msgid "workspace.options.guides.title" msgstr "Guias" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:406 msgid "workspace.options.height" msgstr "Altura" -#: src/app/main/ui/workspace/sidebar/options.cljs:161 msgid "workspace.options.inspect" msgstr "Inspecionar" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:468 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-action" msgstr "Ação" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:41, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:367 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-after-delay" msgstr "Após atraso" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:614 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-animation" msgstr "Animação" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:406 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-animation-dissolve" msgstr "Dissolver" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:405 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-animation-none" msgstr "Nenhum" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:412 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-animation-push" msgstr "Empurrar" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:407 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-animation-slide" msgstr "Deslizar" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:391 msgid "workspace.options.interaction-auto" msgstr "Automático" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:604 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-background" msgstr "Adicionar sobreposição de fundo" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:590 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-close-outside" msgstr "Fechar ao clicar no exterior" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:372 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-close-overlay" msgstr "Fechar sobreposição" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:56 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-close-overlay-dest" msgstr "Fechar sobreposição: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:456 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-delay" msgstr "Atraso" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:478 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-destination" msgstr "Destino" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:661 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-duration" msgstr "Duração" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:674 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing" msgstr "Easing" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:416 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing-ease" msgstr "Ease" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:417 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing-ease-in" msgstr "Ease in" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:419 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing-ease-in-out" msgstr "Ease in out" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:418 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing-ease-out" msgstr "Ease out" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:415 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing-linear" msgstr "Linear" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -#, unused msgid "workspace.options.interaction-in" msgstr "Dentro" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:39, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:364 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-mouse-enter" msgstr "Cursor entra" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:40, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:365 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-mouse-leave" msgstr "Cursor sai" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:458, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:459, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:464, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:663, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:665, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:669 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-ms" msgstr "ms" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:369 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-navigate-to" msgstr "Navegar para" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:50 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-navigate-to-dest" msgstr "Navegar para: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:51, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:53, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:55, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:380 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-none" msgstr "(indefinido)" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:691 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-offset-effect" msgstr "Efeito Offset" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:35, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:360 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-on-click" msgstr "No Clique" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:370 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-open-overlay" msgstr "Abrir sobreposição" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:52 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-open-overlay-dest" msgstr "Abrir sobreposição: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:59, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:374 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-open-url" msgstr "Abrir url" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -#, unused msgid "workspace.options.interaction-out" msgstr "Fora" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:403 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-bottom-center" msgstr "Inferior centro" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:401 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-bottom-left" msgstr "Inferior esquerdo" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:402 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-bottom-right" msgstr "Inferior direito" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:397 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-center" msgstr "Centro" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:396 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-manual" msgstr "Manual" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:400 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-top-center" msgstr "Superior centro" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:398 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-top-left" msgstr "Superior esquerdo" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:399 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-top-right" msgstr "Superior direito" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:524 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-position" msgstr "Posição" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:494 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-preserve-scroll" msgstr "Preservar posição do scroll" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:58, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:373 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-prev-screen" msgstr "Ecrã anterior" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:515 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-relative-to" msgstr "Relativa a" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:57, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:379, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:393, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:394 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-self" msgstr "auto" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:371 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-toggle-overlay" msgstr "Alternar a sobreposição" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:54 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-toggle-overlay-dest" msgstr "Alternar a sobreposição: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:445 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-trigger" msgstr "Ativador" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:503 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-url" msgstr "URL" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:37, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:362 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-while-hovering" msgstr "Durante o hover" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:38, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:363 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-while-pressing" msgstr "Durante a premir" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:724 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interactions" msgstr "Interações" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:137 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.color" msgstr "Cor" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:126 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.color-burn" msgstr "Superexposição de cor" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:129 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.color-dodge" msgstr "Subexposição Linear (Adicionar)" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:124 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.darken" msgstr "Escurecer" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:133 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.difference" msgstr "Diferença" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:134 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.exclusion" msgstr "Exclusão" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:132 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.hard-light" msgstr "Luz direta" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:135 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.hue" msgstr "Matiz" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:127 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.lighten" msgstr "Clarear" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:138 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.luminosity" msgstr "Luminosidade" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:125 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.multiply" msgstr "Multiplicação" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:123 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.normal" msgstr "Normal" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:130 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.overlay" msgstr "Sobrepor" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:136 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.saturation" msgstr "Saturação" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:128 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.screen" msgstr "Tela" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:131 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.soft-light" msgstr "Luz indireta" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -#, unused msgid "workspace.options.layer-options.title" msgstr "Camada" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -#, unused msgid "workspace.options.layer-options.title.group" msgstr "Grupo de camadas" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -#, unused msgid "workspace.options.layer-options.title.multiple" msgstr "Camadas selecionadas" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout-item.advanced-ops" msgstr "Opções avançadas" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:564 +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs msgid "workspace.options.layout-item.layout-item-max-h" msgstr "Altura.Máx" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:531 +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs msgid "workspace.options.layout-item.layout-item-max-w" msgstr "Largura.Máx" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:548 +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs msgid "workspace.options.layout-item.layout-item-min-h" msgstr "Altura.Min" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:515 +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs msgid "workspace.options.layout-item.layout-item-min-w" msgstr "Largura.Min" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout-item.title.layout-item-max-h" msgstr "Altura máxima" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout-item.title.layout-item-max-w" msgstr "Largura máxima" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout-item.title.layout-item-min-h" msgstr "Altura mínima" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout-item.title.layout-item-min-w" msgstr "Largura mínima" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.bottom" msgstr "Abaixo" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.direction.column" msgstr "Coluna" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.direction.column-reverse" msgstr "Coluna invertida" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.direction.row" msgstr "Linha" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.direction.row-reverse" msgstr "Linha invertida" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.gap" msgstr "Espaço" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.left" msgstr "Esquerda" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout.margin" msgstr "Margem" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout.margin-all" msgstr "Todos os lados" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout.margin-simple" msgstr "Margem simples" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.packed" msgstr "juntos" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.padding" msgstr "Distância interna" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.padding-all" msgstr "Todos os lados" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.padding-simple" msgstr "Padding simples" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.right" msgstr "Direita" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.space-around" msgstr "espaço à volta" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.space-between" msgstr "espaço entre" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.top" msgstr "Topo" -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:146 +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs msgid "workspace.options.more-colors" msgstr "Mais cores" -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:123 +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs msgid "workspace.options.more-lib-colors" msgstr "Mais bibliotecas de cor" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:161 msgid "workspace.options.opacity" msgstr "Opacidade" -#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.position" msgstr "Posição" -#: src/app/main/ui/workspace/sidebar/options.cljs:157 +#: src/app/main/ui/workspace/sidebar/options.cljs msgid "workspace.options.prototype" msgstr "Protótipo" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:469, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:481 msgid "workspace.options.radius" msgstr "Raio" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:513 +#: 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:522 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.radius-bottom-right" msgstr "Inferior direito" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:495 +#: 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:504 +#: 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:532 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.radius.all-corners" msgstr "Todos os cantos" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:533 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.radius.single-corners" msgstr "Cantos individuais" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:183 msgid "workspace.options.recent-fonts" msgstr "Recente" -#: src/app/main/ui/export.cljs:284 +#: 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 "Repetir" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:451 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.rotation" msgstr "Rotação" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:180 msgid "workspace.options.search-font" msgstr "Pesquisar fonte" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:741 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.select-a-shape" msgstr "" "Selecionar a forma, prancheta ou grupo para arrastar uma conexão para outra " "prancheta." -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:105 +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs msgid "workspace.options.selection-color" msgstr "Cores selecionadas" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:47 +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs msgid "workspace.options.selection-fill" msgstr "Preenchimento de seleção" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:41 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.selection-stroke" msgstr "Traço da seleção" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:40, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:198, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:200 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.blur" msgstr "Desfoque" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:238 msgid "workspace.options.shadow-options.color" msgstr "Cor da sombra" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:144 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.drop-shadow" msgstr "Sombra" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:145 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.inner-shadow" msgstr "Sombra interna" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:38, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:186 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.offsetx" msgstr "X" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:39, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:224 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.offsety" msgstr "Y" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:41, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:211, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:213 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.spread" msgstr "Difundir" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:296 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.title" msgstr "Sombra" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:295 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.title.group" msgstr "Grupo de sombras" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:294 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.title.multiple" msgstr "Seleção de sombras" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:193 +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs msgid "workspace.options.show-fill-on-export" msgstr "Mostrar na exportação" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:562 msgid "workspace.options.show-in-viewer" msgstr "Mostrar no modo de visualização" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:162 +#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.size" msgstr "Tamanho" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:355 +#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs msgid "workspace.options.size-presets" msgstr "Tamanho pré-definido" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:43 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke" msgstr "Traço" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -#, unused msgid "workspace.options.stroke-cap.circle-marker" msgstr "Marcador circular" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:129 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.circle-marker-short" msgstr "Círculo" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -#, unused msgid "workspace.options.stroke-cap.diamond-marker" msgstr "Marcador em diamante" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:130 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.diamond-marker-short" msgstr "Diamante" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -#, unused msgid "workspace.options.stroke-cap.line-arrow" msgstr "Seta de linha" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:126 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.line-arrow-short" msgstr "Seta" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:124 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.none" msgstr "Nenhum" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:132 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.round" msgstr "Arredondado" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:133 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.square" msgstr "Quadrado" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -#, unused msgid "workspace.options.stroke-cap.square-marker" msgstr "Marcador quadrado" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:128 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.square-marker-short" msgstr "Retângulo" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -#, unused msgid "workspace.options.stroke-cap.triangle-arrow" msgstr "Seta triangular" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:127 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.triangle-arrow-short" msgstr "Triângulo" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:192 msgid "workspace.options.stroke-color" msgstr "Cor do traço" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:165 msgid "workspace.options.stroke-width" msgstr "Largura do traço" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:87 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.center" msgstr "Centro" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:105 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.dashed" msgstr "Tracejado" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:104 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.dotted" msgstr "Pontilhado" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:88 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.inner" msgstr "Interior" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:106 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.mixed" msgstr "Misto" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:89 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.outer" msgstr "Exterior" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:103 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.solid" msgstr "Sólido" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:115 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.align-bottom" msgstr "Alinhar abaixo" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:111 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.align-middle" msgstr "Alinhar ao meio" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:107 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.align-top" msgstr "Alinhar ao topo" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:82 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.direction-ltr" msgstr "LTR" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:87 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.direction-rtl" msgstr "RTL" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:149 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.grow-auto-height" msgstr "Altura automática" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:145 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.grow-auto-width" msgstr "Largura automática" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:141 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.grow-fixed" msgstr "Fixo" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:381 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.options.text-options.letter-spacing" msgstr "Espaço entre letras" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:364 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.options.text-options.line-height" msgstr "Altura entre linhas" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused msgid "workspace.options.text-options.lowercase" msgstr "Minúsculas" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.options.text-options.none" msgstr "Nenhum" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:176 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.strikethrough" msgstr "Rasurado (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:51 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.text-align-center" msgstr "Alinhar ao centro (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:59 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.text-align-justify" msgstr "Justificar (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:47 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.text-align-left" msgstr "Alinhar à esquerda (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:55 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.text-align-right" msgstr "Alinhar à direita (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:189 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.title" msgstr "Texto" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:188 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.title-group" msgstr "Grupo de texto" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:187 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.title-selection" msgstr "Texto selecionado" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused msgid "workspace.options.text-options.titlecase" msgstr "Capitalizar iniciais" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:171 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.underline" msgstr "Sublinhado (%s)" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused msgid "workspace.options.text-options.uppercase" msgstr "Maiúsculas" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:745 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.use-play-button" msgstr "" "Utiliza o botão de play no cabeçalho para iniciar a visualização do " "protótipo." -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:395 msgid "workspace.options.width" msgstr "Largura" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:427 msgid "workspace.options.x" msgstr "Eixo X" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:438 msgid "workspace.options.y" msgstr "Y" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:167 msgid "workspace.path.actions.add-node" msgstr "Adicionar nó (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:174 msgid "workspace.path.actions.delete-node" msgstr "Eliminar nó (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:152 msgid "workspace.path.actions.draw-nodes" msgstr "Desenhar nós (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:189 msgid "workspace.path.actions.join-nodes" msgstr "Unir nós (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:204 msgid "workspace.path.actions.make-corner" msgstr "Em cantos (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:211 msgid "workspace.path.actions.make-curve" msgstr "Em curvas (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:182 msgid "workspace.path.actions.merge-nodes" msgstr "Fundir nós (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:159 msgid "workspace.path.actions.move-nodes" msgstr "Mover nós (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:196 msgid "workspace.path.actions.separate-nodes" msgstr "Separar nós (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:218 msgid "workspace.path.actions.snap-nodes" msgstr "Ajustar nós (%s)" -#: src/app/main/ui/workspace/context_menu.cljs:441 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.add-flex" msgstr "Adicionar layout flex" -#: src/app/main/ui/workspace/context_menu.cljs:445 msgid "workspace.shape.menu.add-grid" msgstr "Adicionar layout em grelha" -#: src/app/main/ui/workspace/context_menu.cljs:193 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.back" msgstr "Enviar para trás" -#: src/app/main/ui/workspace/context_menu.cljs:190 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.backward" msgstr "Mover para trás" -#: src/app/main/ui/workspace/context_menu.cljs:139 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.copy" msgstr "Copiar" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:427 msgid "workspace.shape.menu.create-annotation" msgstr "Criar nota" -#: src/app/main/ui/workspace/context_menu.cljs:275 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.create-artboard-from-selection" msgstr "Seleção para a prancheta" -#: src/app/main/ui/workspace/context_menu.cljs:465 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.create-component" msgstr "Criar componente" -#: src/app/main/ui/workspace/context_menu.cljs:469 msgid "workspace.shape.menu.create-multiple-components" msgstr "Criar múltiplos componentes" -#: src/app/main/ui/workspace/context_menu.cljs:142 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.cut" msgstr "Recortar" -#: src/app/main/ui/workspace/context_menu.cljs:486 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.delete" msgstr "Eliminar" -#: src/app/main/ui/workspace/context_menu.cljs:391 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.delete-flow-start" msgstr "Eliminar início de fluxo" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:432 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.detach-instance" msgstr "Desprender instância" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:431 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.detach-instances-in-bulk" msgstr "Desprender instâncias" -#: src/app/main/ui/workspace/context_menu.cljs:335, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:75 msgid "workspace.shape.menu.difference" msgstr "Diferença" -#: src/app/main/ui/workspace/context_menu.cljs:148 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.duplicate" msgstr "Duplicar" -#: src/app/main/ui/workspace/context_menu.cljs:321 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.edit" msgstr "Editar" -#: src/app/main/ui/workspace/context_menu.cljs:341 msgid "workspace.shape.menu.exclude" msgstr "Excluir" -#: src/app/main/ui/workspace/context_menu.cljs:348, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:89 msgid "workspace.shape.menu.flatten" msgstr "Achatar" -#: src/app/main/ui/workspace/context_menu.cljs:208 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.flip-horizontal" msgstr "Virar na horizontal" -#: src/app/main/ui/workspace/context_menu.cljs:204 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.flip-vertical" msgstr "Virar na vertical" -#: src/app/main/ui/workspace/context_menu.cljs:394 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.flow-start" msgstr "Início de fluxo" -#: src/app/main/ui/workspace/context_menu.cljs:184 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.forward" msgstr "Mover para a frente" -#: src/app/main/ui/workspace/context_menu.cljs:187 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.front" msgstr "Enviar para a frente" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.go-main" msgstr "Ir para ficheiro do componente principal" -#: src/app/main/ui/workspace/context_menu.cljs:261 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.group" msgstr "Agrupar" -#: src/app/main/ui/workspace/context_menu.cljs:363, src/app/main/ui/workspace/sidebar/layer_item.cljs:145 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.hide" msgstr "Ocultar" -#: src/app/main/ui/workspace/context_menu.cljs:548, src/app/main/ui/workspace/main_menu.cljs:408 msgid "workspace.shape.menu.hide-ui" msgstr "Mostrar/Ocultar interface" -#: src/app/main/ui/workspace/context_menu.cljs:338 msgid "workspace.shape.menu.intersection" msgstr "Interseção" -#: src/app/main/ui/workspace/context_menu.cljs:371, src/app/main/ui/workspace/sidebar/layer_item.cljs:153 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.lock" msgstr "Bloquear" -#: src/app/main/ui/workspace/context_menu.cljs:266 +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.mask" msgstr "Máscara" -#: src/app/main/ui/workspace/context_menu.cljs:145, src/app/main/ui/workspace/context_menu.cljs:545 +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.paste" msgstr "Colar" -#: src/app/main/ui/workspace/context_menu.cljs:331 msgid "workspace.shape.menu.path" msgstr "Curvas" -#: src/app/main/ui/workspace/context_menu.cljs:432 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.remove-flex" msgstr "Remover layout flex" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:436 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.reset-overrides" msgstr "Anular alterações" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:439 msgid "workspace.shape.menu.restore-main" msgstr "Restaurar componente principal" -#: src/app/main/ui/workspace/context_menu.cljs:174 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.select-layer" msgstr "Selecionar camada" -#: src/app/main/ui/workspace/context_menu.cljs:360, src/app/main/ui/workspace/sidebar/layer_item.cljs:144 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.show" msgstr "Mostrar" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:424 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.show-in-assets" msgstr "Mostrar recursos no painel" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:442, src/app/main/ui/workspace/sidebar/assets/components.cljs:586 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.show-main" msgstr "Mostrar componente principal" -#: src/app/main/ui/workspace/context_menu.cljs:221 msgid "workspace.shape.menu.thumbnail-remove" msgstr "Remover miniatura" -#: src/app/main/ui/workspace/context_menu.cljs:223 msgid "workspace.shape.menu.thumbnail-set" msgstr "Definir como miniatura" -#: src/app/main/ui/workspace/context_menu.cljs:326 msgid "workspace.shape.menu.transform-to-path" msgstr "Transformar em vector" -#: src/app/main/ui/workspace/context_menu.cljs:257 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.ungroup" msgstr "Desagrupar" -#: src/app/main/ui/workspace/context_menu.cljs:332, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:70 msgid "workspace.shape.menu.union" msgstr "União" -#: src/app/main/ui/workspace/context_menu.cljs:368, src/app/main/ui/workspace/sidebar/layer_item.cljs:152 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.unlock" msgstr "Desbloquear" -#: src/app/main/ui/workspace/context_menu.cljs:271 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.unmask" msgstr "Retirar máscara" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.update-components-in-bulk" msgstr "Atualizar componentes principais" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:445 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.update-main" msgstr "Atualizar componente principal" -#: src/app/main/ui/components/tab_container.cljs:50 msgid "workspace.sidebar.collapse" msgstr "Fechar barra lateral" -#: src/app/main/ui/workspace/sidebar/collapsable_button.cljs:26 msgid "workspace.sidebar.expand" msgstr "Expandir barra lateral" -#: src/app/main/ui/workspace/right_header.cljs:231, src/app/main/ui/workspace/right_header.cljs:232 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.sidebar.history" msgstr "Histórico (%s)" -#: src/app/main/ui/workspace/sidebar/layers.cljs:522, src/app/main/ui/workspace/sidebar.cljs:100 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.sidebar.layers" msgstr "Camadas" -#: src/app/main/ui/workspace/sidebar/layers.cljs:308, src/app/main/ui/workspace/sidebar/layers.cljs:380 msgid "workspace.sidebar.layers.components" msgstr "Componentes" -#: src/app/main/ui/workspace/sidebar/layers.cljs:305, src/app/main/ui/workspace/sidebar/layers.cljs:338 msgid "workspace.sidebar.layers.frames" msgstr "Pranchetas" -#: src/app/main/ui/workspace/sidebar/layers.cljs:306, src/app/main/ui/workspace/sidebar/layers.cljs:352 msgid "workspace.sidebar.layers.groups" msgstr "Grupos" -#: src/app/main/ui/workspace/sidebar/layers.cljs:310, src/app/main/ui/workspace/sidebar/layers.cljs:408 msgid "workspace.sidebar.layers.images" msgstr "Imagens" -#: src/app/main/ui/workspace/sidebar/layers.cljs:307, src/app/main/ui/workspace/sidebar/layers.cljs:366 msgid "workspace.sidebar.layers.masks" msgstr "Máscaras" -#: src/app/main/ui/workspace/sidebar/layers.cljs:289 msgid "workspace.sidebar.layers.search" msgstr "Pesquisar camadas" -#: src/app/main/ui/workspace/sidebar/layers.cljs:311, src/app/main/ui/workspace/sidebar/layers.cljs:422 msgid "workspace.sidebar.layers.shapes" msgstr "Formas" -#: src/app/main/ui/workspace/sidebar/layers.cljs:309, src/app/main/ui/workspace/sidebar/layers.cljs:394 msgid "workspace.sidebar.layers.texts" msgstr "Textos" -#: src/app/main/ui/viewer/inspect/attributes/svg.cljs:56, src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs:91 +#: src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs, +#: src/app/main/ui/inspect/attributes/svg.cljs msgid "workspace.sidebar.options.svg-attrs.title" msgstr "Importar atributos do SVG" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs:217 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs msgid "workspace.sidebar.sitemap" msgstr "Páginas" -#: src/app/main/ui/workspace/left_header.cljs:91 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.sitemap" msgstr "Mapa do site" -#: src/app/main/ui/workspace/sidebar.cljs:120 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.assets" msgstr "Recursos" -#: src/app/main/ui/workspace/palette.cljs:165, src/app/main/ui/workspace/palette.cljs:166 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.color-palette" msgstr "Paleta de cores (%s)" -#: src/app/main/ui/workspace/right_header.cljs:220, src/app/main/ui/workspace/right_header.cljs:221 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.comments" msgstr "Comentários (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:180, src/app/main/ui/workspace/top_toolbar.cljs:181 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.curve" msgstr "Curvas (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:160, src/app/main/ui/workspace/top_toolbar.cljs:161 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.ellipse" msgstr "Elipse (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:142, src/app/main/ui/workspace/top_toolbar.cljs:143 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.frame" msgstr "Prancheta (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:59, src/app/main/ui/workspace/top_toolbar.cljs:60 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.image" msgstr "Imagem (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:132, src/app/main/ui/workspace/top_toolbar.cljs:133 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.move" msgstr "Mover (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:189, src/app/main/ui/workspace/top_toolbar.cljs:190 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.path" msgstr "Caminho (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:151, src/app/main/ui/workspace/top_toolbar.cljs:152 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.rect" msgstr "Rectângulo (%s)" #: src/app/main/ui/workspace/left_toolbar.cljs -#, unused msgid "workspace.toolbar.shortcuts" msgstr "Atalhos (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:169, src/app/main/ui/workspace/top_toolbar.cljs:170 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.text" msgstr "Texto (%s)" -#: src/app/main/ui/workspace/palette.cljs:173, src/app/main/ui/workspace/palette.cljs:174 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.text-palette" msgstr "Tipografias (%s)" -#: src/app/main/ui/workspace/viewport/top_bar.cljs:38 msgid "workspace.top-bar.read-only.done" msgstr "Feito" -#: src/app/main/ui/workspace/viewport/top_bar.cljs:35 -#, markdown -msgid "workspace.top-bar.view-only" -msgstr "**A inspecionar código** (Somente leitura)" - -#: src/app/main/ui/workspace/sidebar/history.cljs:342 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.empty" msgstr "Não há histórico de mudanças até agora" -#: src/app/main/ui/workspace/sidebar/history.cljs:147 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.entry.delete" msgstr "%s eliminado" -#: src/app/main/ui/workspace/sidebar/history.cljs:146 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.entry.modify" msgstr "%s modificado" -#: src/app/main/ui/workspace/sidebar/history.cljs:148 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.entry.move" msgstr "Objectos movidos" -#: src/app/main/ui/workspace/sidebar/history.cljs:111 msgid "workspace.undo.entry.multiple.circle" msgstr "círculos" -#: src/app/main/ui/workspace/sidebar/history.cljs:112 msgid "workspace.undo.entry.multiple.color" msgstr "recursos de cor" -#: src/app/main/ui/workspace/sidebar/history.cljs:113 msgid "workspace.undo.entry.multiple.component" msgstr "componentes" -#: src/app/main/ui/workspace/sidebar/history.cljs:114 msgid "workspace.undo.entry.multiple.curve" msgstr "curvas" -#: src/app/main/ui/workspace/sidebar/history.cljs:115 msgid "workspace.undo.entry.multiple.frame" msgstr "prancheta" -#: src/app/main/ui/workspace/sidebar/history.cljs:116 msgid "workspace.undo.entry.multiple.group" msgstr "grupos" -#: src/app/main/ui/workspace/sidebar/history.cljs:117 msgid "workspace.undo.entry.multiple.media" msgstr "recursos gráficos" -#: src/app/main/ui/workspace/sidebar/history.cljs:118 msgid "workspace.undo.entry.multiple.multiple" msgstr "objectos" -#: src/app/main/ui/workspace/sidebar/history.cljs:119 msgid "workspace.undo.entry.multiple.page" msgstr "páginas" -#: src/app/main/ui/workspace/sidebar/history.cljs:120 msgid "workspace.undo.entry.multiple.path" msgstr "caminhos" -#: src/app/main/ui/workspace/sidebar/history.cljs:121 msgid "workspace.undo.entry.multiple.rect" msgstr "rectângulos" -#: src/app/main/ui/workspace/sidebar/history.cljs:122 msgid "workspace.undo.entry.multiple.shape" msgstr "formas" -#: src/app/main/ui/workspace/sidebar/history.cljs:123 msgid "workspace.undo.entry.multiple.text" msgstr "textos" -#: src/app/main/ui/workspace/sidebar/history.cljs:124 msgid "workspace.undo.entry.multiple.typography" msgstr "recursos tipográficos" -#: src/app/main/ui/workspace/sidebar/history.cljs:145 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.entry.new" msgstr "Novo %s" -#: src/app/main/ui/workspace/sidebar/history.cljs:125 msgid "workspace.undo.entry.single.circle" msgstr "círculo" -#: src/app/main/ui/workspace/sidebar/history.cljs:126 msgid "workspace.undo.entry.single.color" msgstr "recurso de cor" -#: src/app/main/ui/workspace/sidebar/history.cljs:127 msgid "workspace.undo.entry.single.component" msgstr "componente" -#: src/app/main/ui/workspace/sidebar/history.cljs:128 msgid "workspace.undo.entry.single.curve" msgstr "curva" -#: src/app/main/ui/workspace/sidebar/history.cljs:129 msgid "workspace.undo.entry.single.frame" msgstr "prancheta" -#: src/app/main/ui/workspace/sidebar/history.cljs:130 msgid "workspace.undo.entry.single.group" msgstr "grupo" -#: src/app/main/ui/workspace/sidebar/history.cljs:131 msgid "workspace.undo.entry.single.image" msgstr "imagem" -#: src/app/main/ui/workspace/sidebar/history.cljs:132 msgid "workspace.undo.entry.single.media" msgstr "recurso gráfico" -#: src/app/main/ui/workspace/sidebar/history.cljs:133 msgid "workspace.undo.entry.single.multiple" msgstr "objecto" -#: src/app/main/ui/workspace/sidebar/history.cljs:134 msgid "workspace.undo.entry.single.page" msgstr "página" -#: src/app/main/ui/workspace/sidebar/history.cljs:135 msgid "workspace.undo.entry.single.path" msgstr "caminho" -#: src/app/main/ui/workspace/sidebar/history.cljs:136 msgid "workspace.undo.entry.single.rect" msgstr "rectângulo" -#: src/app/main/ui/workspace/sidebar/history.cljs:137 msgid "workspace.undo.entry.single.shape" msgstr "forma" -#: src/app/main/ui/workspace/sidebar/history.cljs:138 msgid "workspace.undo.entry.single.text" msgstr "texto" -#: src/app/main/ui/workspace/sidebar/history.cljs:139 msgid "workspace.undo.entry.single.typography" msgstr "recurso tipográfico" -#: src/app/main/ui/workspace/sidebar/history.cljs:149 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.entry.unknown" msgstr "Operação sobre %s" -#: src/app/main/ui/workspace/sidebar/history.cljs:335 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.title" msgstr "Histórico" -#: src/app/main/data/workspace/libraries.cljs:1094 +#: src/app/main/data/workspace/libraries.cljs msgid "workspace.updates.dismiss" msgstr "Ignorar" -#: src/app/main/data/workspace/libraries.cljs:1092 +#: src/app/main/data/workspace/libraries.cljs msgid "workspace.updates.more-info" msgstr "Mais informações" -#: src/app/main/data/workspace/libraries.cljs:1090 +#: src/app/main/data/workspace/libraries.cljs msgid "workspace.updates.there-are-updates" msgstr "Existem atualizações nas bibliotecas partilhadas" -#: src/app/main/data/workspace/libraries.cljs:1097 +#: src/app/main/data/workspace/libraries.cljs msgid "workspace.updates.update" msgstr "Atualizar" -#, unused msgid "workspace.viewport.click-to-close-path" msgstr "Clica para fechar o caminho" +#: src/app/main/ui/auth/login.cljs +msgid "auth.login-account-title" +msgstr "Entrar na minha conta" + +#: src/app/main/data/users.cljs +msgid "errors.email-domain-not-allowed" +msgstr "Domínio não permitido" + +msgid "media.image.short" +msgstr "img" + +msgid "modals.move-shared-confirm.title" +msgid_plural "modals.move-shared-confirm.title" +msgstr[0] "Mover biblioteca" +msgstr[1] "Mover bibliotecas" + +msgid "onboarding.team-modal.team-definition" +msgstr "O que é uma equipa?" + +#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs +msgid "settings.select-this-color" +msgstr "Selecionar itens que usem este estilo" + +#: src/app/main/ui/workspace/sidebar/assets/common.cljs +msgid "workspace.assets.sidebar.components" +msgid_plural "workspace.assets.sidebar.components" +msgstr[0] "1 componente" +msgstr[1] "%s componentes" + +#: src/app/main/ui/workspace/sidebar/assets.cljs +msgid "workspace.assets.sort" +msgstr "Ordenar" + +msgid "workspace.top-bar.view-only" +msgstr "**A inspecionar código** (Somente leitura)" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.login-tagline" +msgstr "" +"O Penpot é a ferramenta de desenho gratuita e de código aberto para " +"colaboração entre Design e Código" + +msgid "modals.move-shared-confirm.accept" +msgid_plural "modals.move-shared-confirm.accept" +msgstr[0] "Mover" +msgstr[1] "Mover" + +#: src/app/main/ui/workspace/sidebar/assets.cljs +msgid "workspace.assets.filter" +msgstr "Filtrar" + #~ msgid "dashboard.newsletter-title" #~ msgstr "Subscrição de Newsletter" @@ -5660,7 +5178,9 @@ msgstr "Clica para fechar o caminho" #~ msgstr "projeto no GitHub" #~ msgid "onboarding.slide.0.desc1" -#~ msgstr "Cria interfaces maravilhosas em colaboração com todos os membros da equipa." +#~ msgstr "" +#~ "Cria interfaces maravilhosas em colaboração com todos os membros da " +#~ "equipa." #~ msgid "onboarding.slide.1.desc1" #~ msgstr "Cria interações ricas para simular o comportamento do produto." diff --git a/frontend/translations/ro.po b/frontend/translations/ro.po index 394ae398c6..76fd8d9620 100644 --- a/frontend/translations/ro.po +++ b/frontend/translations/ro.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "PO-Revision-Date: 2024-06-17 08:07+0000\n" "Last-Translator: Anonymous \n" -"Language-Team: Romanian " -"\n" +"Language-Team: Romanian \n" "Language: ro\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" @@ -12,524 +12,478 @@ msgstr "" "20)) ? 1 : 2;\n" "X-Generator: Weblate 5.6-dev\n" -#: src/app/main/ui/auth/register.cljs:151, src/app/main/ui/viewer/login.cljs:104 +#: src/app/main/ui/auth/register.cljs msgid "auth.already-have-account" msgstr "Ai deja un cont?" -#: src/app/main/ui/auth/register.cljs:299 +#: src/app/main/ui/auth/register.cljs msgid "auth.check-your-email" msgstr "" "Verificați adresa de e-mail, faceți click pe link-ul de verificare și " "începeți să utilizați Penpot." -#: src/app/main/ui/auth/recovery.cljs:78 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.confirm-password" msgstr "Confirmați parola" -#: src/app/main/ui/auth/register.cljs:163 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.create-demo-account" msgstr "Creează un cont demo" #: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs -#, unused msgid "auth.create-demo-profile" msgstr "Vrei doar să încerci?" -#: src/app/main/ui/auth/login.cljs:43 +#: src/app/main/ui/auth/register.cljs msgid "auth.demo-warning" msgstr "" "Acesta este un DEMO, NU UTILIZAȚI pentru lucrări reale, întrucât proiectele " "vor fi șterse periodic." -#: src/app/main/ui/auth/login.cljs:189, src/app/main/ui/viewer/login.cljs:90 +#: src/app/main/ui/auth/login.cljs msgid "auth.forgot-password" msgstr "Ai uitat parola?" -#: src/app/main/ui/auth/register.cljs:254 +#: src/app/main/ui/auth/register.cljs msgid "auth.fullname" msgstr "Numele complet" -#: src/app/main/ui/auth/register.cljs:155, src/app/main/ui/viewer/login.cljs:107 +#: src/app/main/ui/auth/register.cljs +#, fuzzy msgid "auth.login-here" msgstr "Conectează-te" -#: src/app/main/ui/auth/login.cljs:195 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-submit" msgstr "Intră în cont" -#: src/app/main/ui/auth/login.cljs:222 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-github-submit" msgstr "GitHub" -#: src/app/main/ui/auth/login.cljs:228 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-gitlab-submit" msgstr "GitLab" -#: src/app/main/ui/auth/login.cljs:216 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-google-submit" msgstr "Google" -#: src/app/main/ui/auth/login.cljs:201 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-ldap-submit" msgstr "LDAP" -#: src/app/main/ui/auth/login.cljs:234, src/app/main/ui/auth/login.cljs:255 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-oidc-submit" msgstr "OpenID" -#: src/app/main/ui/auth/register.cljs:217, src/app/main/ui/dashboard/team_form.cljs:76, src/app/main/ui/onboarding/team_choice.cljs:180, src/app/main/ui/settings/access_tokens.cljs:66, src/app/main/ui/settings/feedback.cljs:34, src/app/main/ui/settings/profile.cljs:45, src/app/main/ui/workspace/sidebar/assets/groups.cljs:108 +#: src/app/main/ui/settings/team-form.cljs, src/app/main/ui/auth/register.cljs, src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/onboarding/team_choice.cljs, src/app/main/ui/settings/access_tokens.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/settings/profile.cljs, src/app/main/ui/workspace/sidebar/assets.cljs msgid "auth.name.not-all-space" msgstr "Numele trebuie să conțină un caracter altul decât spațiu." -#: src/app/main/ui/auth/register.cljs:218, src/app/main/ui/dashboard/team_form.cljs:77, src/app/main/ui/onboarding/team_choice.cljs:181, src/app/main/ui/settings/access_tokens.cljs:67, src/app/main/ui/settings/feedback.cljs:33, src/app/main/ui/settings/profile.cljs:44, src/app/main/ui/workspace/sidebar/assets/groups.cljs:109 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/onboarding/team_choice.cljs, src/app/main/ui/settings/access_tokens.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/settings/profile.cljs, src/app/main/ui/workspace/sidebar/assets.cljs msgid "auth.name.too-long" msgstr "Numele trebuie să conțină cel mult 250 caractere." -#: src/app/main/ui/auth/recovery.cljs:71 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.new-password" msgstr "Introduceți o parolă nouă" -#: src/app/main/ui/auth/recovery.cljs:42 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.notifications.invalid-token-error" msgstr "Codul de recuperare nu este valid." -#: src/app/main/ui/auth/recovery.cljs:46 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.notifications.password-changed-successfully" msgstr "Parola a fost schimbată cu success" -#: src/app/main/ui/auth/recovery_request.cljs:57 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.notifications.profile-not-verified" msgstr "" "Profilul nu este verificat, vă rugăm să verificați profilul înainte de a " "continua." -#: src/app/main/ui/auth/recovery_request.cljs:40 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.notifications.recovery-token-sent" msgstr "Un link de recuperare a parolei s-a trimis pe e-mail." -#: src/app/main/ui/auth/verify_token.cljs:47 +#: src/app/main/ui/auth/verify_token.cljs msgid "auth.notifications.team-invitation-accepted" msgstr "Te-ai alăturat echipei cu success" -#: src/app/main/ui/auth/login.cljs:179, src/app/main/ui/auth/register.cljs:115 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.password" msgstr "Parola" -#: src/app/main/ui/auth/register.cljs:114 +#: src/app/main/ui/auth/register.cljs msgid "auth.password-length-hint" msgstr "Cel puțin 8 caractere" -#: src/app/main/ui/auth/recovery.cljs:61, src/app/main/ui/auth/recovery.cljs:62, src/app/main/ui/auth/register.cljs:81, src/app/main/ui/settings/password.cljs:75, src/app/main/ui/settings/password.cljs:76, src/app/main/ui/settings/password.cljs:77 +#: src/app/main/ui/auth/register.cljs msgid "auth.password-not-empty" msgstr "Parola trebuie să conțină un caracter altul decât spațiu." -#: src/app/main/ui/auth.cljs:41 msgid "auth.privacy-policy" msgstr "Politica de Confidențialitate" -#: src/app/main/ui/auth/recovery_request.cljs:88 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-submit" msgstr "Recuperare Parolă" -#: src/app/main/ui/auth/recovery_request.cljs:101 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-subtitle" msgstr "Îți vom trimite un email cu instrucțiunile" -#: src/app/main/ui/auth/recovery_request.cljs:100 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-title" msgstr "Ai uitat parola?" -#: src/app/main/ui/auth/recovery.cljs:82 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.recovery-submit" msgstr "Schimbă parola" -#: src/app/main/ui/auth/login.cljs:298, src/app/main/ui/viewer/login.cljs:93 +#: src/app/main/ui/auth/login.cljs msgid "auth.register" msgstr "Nu aveți încă un cont?" -#: src/app/main/ui/auth/login.cljs:302, src/app/main/ui/auth/register.cljs:121, src/app/main/ui/auth/register.cljs:263, src/app/main/ui/viewer/login.cljs:97 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.register-submit" msgstr "Creează un cont" -#: src/app/main/ui/auth/register.cljs:140 +#: src/app/main/ui/auth/register.cljs msgid "auth.register-title" msgstr "Creează un cont" #: src/app/main/ui/auth.cljs -#, unused msgid "auth.sidebar-tagline" msgstr "Soluția open-source pentru proiectare design și prototipare." -#: src/app/main/ui/auth.cljs:33, src/app/main/ui/dashboard/sidebar.cljs:1022, src/app/main/ui/workspace/main_menu.cljs:150 msgid "auth.terms-of-service" msgstr "Termenii serviciului" -#: src/app/main/ui/auth/register.cljs:297 +#: src/app/main/ui/auth/register.cljs msgid "auth.verification-email-sent" msgstr "Am trimis un email de verificare la" #: src/app/main/ui/onboarding/questions.cljs -#, unused msgid "branding-illustrations-marketing-pieces" msgstr "... mărci, ilustrații, piese de marketing, etc." -#: src/app/main/ui/workspace/libraries.cljs:228 msgid "common.publish" msgstr "Publică" -#: src/app/main/ui/viewer/share_link.cljs:304, src/app/main/ui/viewer/share_link.cljs:314 msgid "common.share-link.all-users" msgstr "Toți utilizatorii Penpot" -#: src/app/main/ui/viewer/share_link.cljs:198 msgid "common.share-link.confirm-deletion-link-description" msgstr "" "Sigur doriți să eliminați acest link? Dacă o faci, nu mai este disponibilă " "pentru nimeni" -#: src/app/main/ui/viewer/share_link.cljs:259, src/app/main/ui/viewer/share_link.cljs:289 msgid "common.share-link.current-tag" msgstr "(curent)" -#: src/app/main/ui/viewer/share_link.cljs:207, src/app/main/ui/viewer/share_link.cljs:214 msgid "common.share-link.destroy-link" msgstr "Distruge linkul" -#: src/app/main/ui/viewer/share_link.cljs:221 msgid "common.share-link.get-link" msgstr "Obține link" -#: src/app/main/ui/viewer/share_link.cljs:139 msgid "common.share-link.link-copied-success" msgstr "Link copiat cu succes" -#: src/app/main/ui/viewer/share_link.cljs:231 msgid "common.share-link.manage-ops" msgstr "Gestionați permisiunile" -#: src/app/main/ui/viewer/share_link.cljs:277 msgid "common.share-link.page-shared" msgid_plural "common.share-link.page-shared" msgstr[0] "1 pagină partajată" msgstr[1] "%s pagini partajate" msgstr[2] "%s de pagini partajate" -#: src/app/main/ui/viewer/share_link.cljs:298 msgid "common.share-link.permissions-can-comment" msgstr "Poate comenta" -#: src/app/main/ui/viewer/share_link.cljs:308 msgid "common.share-link.permissions-can-inspect" msgstr "Poate inspecta codul" -#: src/app/main/ui/viewer/share_link.cljs:193 msgid "common.share-link.permissions-hint" msgstr "Oricine cu linkul va avea acces" -#: src/app/main/ui/viewer/share_link.cljs:241 msgid "common.share-link.permissions-pages" msgstr "Pagini partajate" -#: src/app/main/ui/viewer/share_link.cljs:183 msgid "common.share-link.placeholder" msgstr "Linkul care poate fi partajat va apărea aici" -#: src/app/main/ui/viewer/share_link.cljs:303, src/app/main/ui/viewer/share_link.cljs:313 msgid "common.share-link.team-members" msgstr "Doar membrii echipei" -#: src/app/main/ui/viewer/share_link.cljs:171 msgid "common.share-link.title" msgstr "Distribuiți prototipuri" -#: src/app/main/ui/viewer/share_link.cljs:269 msgid "common.share-link.view-all" msgstr "Selectează Tot" -#: src/app/main/ui/workspace/libraries.cljs:224 msgid "common.unpublish" msgstr "Anulați publicarea" -#: src/app/main/ui/dashboard/projects.cljs:85 +#: src/app/main/ui/dashboard/projects.cljs msgid "dasboard.team-hero.management" msgstr "Managementul echipei" -#: src/app/main/ui/dashboard/projects.cljs:84 +#: src/app/main/ui/dashboard/projects.cljs msgid "dasboard.team-hero.text" msgstr "" "Penpot este destinat echipelor. Invitați membrii să lucreze împreună la " "proiecte și fișiere" -#: src/app/main/ui/dashboard/projects.cljs:82 +#: src/app/main/ui/dashboard/projects.cljs msgid "dasboard.team-hero.title" msgstr "Faceți echipă!" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.tutorial-hero.info" msgstr "" "Învață elementele de bază la Penpot în timp ce te distrezi puțin cu acest " "tutorial practic." #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.tutorial-hero.start" msgstr "Începeți tutorialul" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.tutorial-hero.title" msgstr "Tutorial practic" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.walkthrough-hero.info" msgstr "Fă o plimbare prin Penpot și cunoaște-i principalele caracteristici." #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.walkthrough-hero.start" msgstr "Începeți turul" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.walkthrough-hero.title" msgstr "Tutorial interfață" -#: src/app/main/ui/settings/access_tokens.cljs:115 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.copied-success" msgstr "Jeton copiat" -#: src/app/main/ui/settings/access_tokens.cljs:202 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.create" msgstr "Generați jeton nou" -#: src/app/main/ui/settings/access_tokens.cljs:76 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.create.success" msgstr "Jeton de acces creat cu succes." -#: src/app/main/ui/settings/access_tokens.cljs:300 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.empty.add-one" msgstr "Apăsați butonul 'Generați jeton nou' pentru a genera unul." -#: src/app/main/ui/settings/access_tokens.cljs:299 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.empty.no-access-tokens" msgstr "Nu aveți încă jetoane." -#: src/app/main/ui/settings/access_tokens.cljs:53 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.errors-required-name" msgstr "Numele este obligatoriu" -#: src/app/main/ui/settings/access_tokens.cljs:147 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-180-days" msgstr "180 zile" -#: src/app/main/ui/settings/access_tokens.cljs:144 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-30-days" msgstr "30 zile" -#: src/app/main/ui/settings/access_tokens.cljs:145 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-60-days" msgstr "60 zile" -#: src/app/main/ui/settings/access_tokens.cljs:146 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-90-days" msgstr "90 zile" -#: src/app/main/ui/settings/access_tokens.cljs:143 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-never" msgstr "Niciodată" -#: src/app/main/ui/settings/access_tokens.cljs:282 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expired-on" msgstr "Expirat pe %s" -#: src/app/main/ui/settings/access_tokens.cljs:283 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expires-on" msgstr "Expiră pe %s" -#: src/app/main/ui/settings/access_tokens.cljs:281 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.no-expiration" msgstr "Fără dată de expirare" -#: src/app/main/ui/settings/access_tokens.cljs:197 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.personal" msgstr "Jeton de acces personal" -#: src/app/main/ui/settings/access_tokens.cljs:198 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.personal.description" msgstr "" "Jetoanele de acces personal funcționează ca o alternativă la sistemul " "nostru de autentificare prin login/parolă și poate fi folosit pentru a " "permite unei aplicații să acceseze API-ul intern Penpot" -#: src/app/main/ui/settings/access_tokens.cljs:154 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.token-will-expire" msgstr "Jetonul va expira pe %s" -#: src/app/main/ui/settings/access_tokens.cljs:155 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.token-will-not-expire" msgstr "Jetonul nu are dată de expirare" -#: src/app/main/ui/dashboard/file_menu.cljs:291, src/app/main/ui/workspace/main_menu.cljs:572 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.add-shared" msgstr "Adăugați ca bibliotecă partajată" -#: src/app/main/ui/settings/profile.cljs:75 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.change-email" msgstr "Schimbă adresa de e-mail" -#: src/app/main/data/dashboard.cljs:762, src/app/main/data/dashboard.cljs:983 +#: src/app/main/data/dashboard.cljs, src/app/main/data/dashboard.cljs msgid "dashboard.copy-suffix" msgstr "(copiază)" -#: src/app/main/ui/dashboard/sidebar.cljs:338 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.create-new-team" msgstr "Creează o nouă echipă" -#: src/app/main/ui/components/context_menu_a11y.cljs:256, src/app/main/ui/dashboard/sidebar.cljs:646 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.default-team-name" msgstr "Contul Penpot" -#: src/app/main/ui/dashboard/sidebar.cljs:571 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.delete-team" msgstr "Șterge echipa" -#: src/app/main/ui/dashboard/file_menu.cljs:296, src/app/main/ui/workspace/main_menu.cljs:589 msgid "dashboard.download-binary-file" msgstr "Descărcați fișierul Penpot (.penpot)" -#: src/app/main/ui/dashboard/file_menu.cljs:300, src/app/main/ui/workspace/main_menu.cljs:597 msgid "dashboard.download-standard-file" msgstr "Descărcați fișierul standard (.svg + .json)" -#: src/app/main/ui/dashboard/file_menu.cljs:276, src/app/main/ui/dashboard/project_menu.cljs:90 +#: src/app/main/ui/dashboard/project_menu.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.duplicate" msgstr "Duplicat" -#: src/app/main/ui/dashboard/file_menu.cljs:240 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.duplicate-multi" msgstr "Duplicați %s fișiere" -#: src/app/main/ui/dashboard/placeholder.cljs:32 -#, markdown +#: src/app/main/ui/dashboard/grid.cljs msgid "dashboard.empty-placeholder-drafts" msgstr "" "Fișierele adăugate la Biblioteci vor apărea aici. Încercați să partajați " "fișierele dvs. sau adăugați-le din [Biblioteci și " "șabloane](https://penpot.app/libraries-templates)." -#: src/app/main/ui/dashboard/file_menu.cljs:249 msgid "dashboard.export-binary-multi" msgstr "Descărcați %s fișiere Penpot (.penpot)" -#: src/app/main/ui/workspace/main_menu.cljs:605 msgid "dashboard.export-frames" msgstr "Exportați table ca PDF" -#: src/app/main/ui/export.cljs:201 +#: src/app/main/ui/export.cljs msgid "dashboard.export-frames.title" msgstr "Exportați ca PDF" -#, unused msgid "dashboard.export-multi" msgstr "Exportați %s fișiere Penpot" -#: src/app/main/ui/export.cljs:109 +#: src/app/main/ui/export.cljs msgid "dashboard.export-multiple.selected" msgstr "%s din %s elemente selectate" -#: src/app/main/ui/workspace/main_menu.cljs:578 +#: src/app/main/ui/workspace/header.cljs msgid "dashboard.export-shapes" msgstr "Exportă" -#: src/app/main/ui/export.cljs:180 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.how-to" msgstr "" "Puteți adăuga setări de export la elemente din proprietățile designului (în " "partea de jos a barei laterale din dreapta)." -#: src/app/main/ui/export.cljs:184 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.how-to-link" msgstr "Informații despre cum să setați exporturile la Penpot." -#: src/app/main/ui/export.cljs:179 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.no-elements" msgstr "Nu există elemente cu setări de export." -#: src/app/main/ui/export.cljs:190 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.title" msgstr "Exportați selecția" -#: src/app/main/ui/dashboard/file_menu.cljs:252 msgid "dashboard.export-standard-multi" msgstr "Descărcați fișiere standard %s (.svg + .json)" -#: src/app/main/ui/export.cljs:427 msgid "dashboard.export.detail" msgstr "* Poate include componente, elemente grafice, culori și/sau tipografii." -#: src/app/main/ui/export.cljs:426 msgid "dashboard.export.explain" msgstr "" "Unul sau mai multe fișiere pe care doriți să le exportați folosesc " "biblioteci partajate. Ce vrei să faci cu activele lor*?" -#: src/app/main/ui/export.cljs:435 msgid "dashboard.export.options.all.message" msgstr "" "fișierele cu biblioteci partajate vor fi incluse în export, menținându-le " "legătura." -#: src/app/main/ui/export.cljs:436 msgid "dashboard.export.options.all.title" msgstr "Exportați biblioteci partajate" -#: src/app/main/ui/export.cljs:437 msgid "dashboard.export.options.detach.message" msgstr "" "Bibliotecile partajate nu vor fi incluse în export și nu vor fi adăugate " "elemente în bibliotecă. " -#: src/app/main/ui/export.cljs:438 msgid "dashboard.export.options.detach.title" msgstr "Tratați activele bibliotecii partajate ca obiecte de bază" -#: src/app/main/ui/export.cljs:439 msgid "dashboard.export.options.merge.message" msgstr "" "Fișierul dvs. va fi exportat cu toate activele externe îmbinate în " "biblioteca de fișiere." -#: src/app/main/ui/export.cljs:440 msgid "dashboard.export.options.merge.title" msgstr "Includeți elementele bibliotecii partajate în bibliotecile de fișiere" -#: src/app/main/ui/export.cljs:418 msgid "dashboard.export.title" msgstr "Exportați fișiere" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:309 msgid "dashboard.fonts.deleted-placeholder" msgstr "Font șters" -#: src/app/main/ui/dashboard/fonts.cljs:206 +#: src/app/main/ui/dashboard/fonts.cljs msgid "dashboard.fonts.dismiss-all" msgstr "Anulează tot" -#: src/app/main/ui/dashboard/fonts.cljs:436 msgid "dashboard.fonts.empty-placeholder" msgstr "Fonturile personalizate pe care le încărcați vor apărea aici." -#: src/app/main/ui/dashboard/fonts.cljs:194 +#: src/app/main/ui/dashboard/fonts.cljs msgid "dashboard.fonts.fonts-added" msgid_plural "dashboard.fonts.fonts-added" msgstr[0] "1 font adăugat" msgstr[1] "%s fonturi adăugate" msgstr[2] "%s de fonturi adăugate" -#: src/app/main/ui/dashboard/fonts.cljs:170 -#, markdown msgid "dashboard.fonts.hero-text1" msgstr "" "Fonturile încărcate vor fi adăugate la familia de fonturi disponibilă " @@ -537,8 +491,6 @@ msgstr "" "familie de font-uri**. Tipurile de fişiere acceptate: **TTF, OTF și WOFF** " "(se poate urca doar un singur tip)." -#: src/app/main/ui/dashboard/fonts.cljs:182 -#, markdown msgid "dashboard.fonts.hero-text2" msgstr "" "Ar trebui să urcați doar fonturi la care aveți drept de folosință sau " @@ -547,12 +499,10 @@ msgstr "" "asemenea, vă recomandăm să citiți și despre [licențierea " "fonturilor](https://www.typography.com/faq)." -#: src/app/main/ui/dashboard/fonts.cljs:202 +#: src/app/main/ui/dashboard/fonts.cljs msgid "dashboard.fonts.upload-all" msgstr "Încarcă toate" -#: src/app/main/ui/dashboard/fonts.cljs:187 -#, markdown msgid "dashboard.fonts.warning-text" msgstr "" "Am detectat o posibilă problemă în fonturile dvs. în legătură cu metricile " @@ -562,281 +512,265 @@ msgstr "" "utilizați [Transfonter](https://transfonter.org/) pentru a genera fonturi " "web și a remedia erorile. " -#: src/app/main/ui/dashboard/import.cljs:472, src/app/main/ui/dashboard/project_menu.cljs:108 msgid "dashboard.import" msgstr "Importați fișiere Penpot" -#: src/app/main/ui/dashboard/import.cljs:304, src/app/worker/import.cljs:753, src/app/worker/import.cljs:755 msgid "dashboard.import.analyze-error" msgstr "Hopa! Nu am putut importa acest fișier" -#: src/app/main/ui/dashboard/import.cljs:308 msgid "dashboard.import.import-error" msgstr "A apărut o problemă la importul fișierului. Fișierul nu a fost importat." -#: src/app/main/ui/dashboard/import.cljs:493 msgid "dashboard.import.import-message" msgid_plural "dashboard.import.import-message" msgstr[0] "1 fișier a fost importat cu succes." msgstr[1] "% fișiere au fost importate cu succes." msgstr[2] "% de fișiere au fost importate cu succes." -#: src/app/main/ui/dashboard/import.cljs:481, src/app/main/ui/dashboard/import.cljs:488 msgid "dashboard.import.import-warning" msgstr "Unele fișiere conțineau obiecte nevalide care au fost eliminate." -#: src/app/main/ui/dashboard/import.cljs:144 msgid "dashboard.import.progress.process-colors" msgstr "Procesarea culorilor" -#: src/app/main/ui/dashboard/import.cljs:153 msgid "dashboard.import.progress.process-components" msgstr "Procesarea componentelor" -#: src/app/main/ui/dashboard/import.cljs:150 msgid "dashboard.import.progress.process-media" msgstr "Procesarea fișierelor media" -#: src/app/main/ui/dashboard/import.cljs:141 msgid "dashboard.import.progress.process-page" msgstr "Procesarea paginii: %s" -#: src/app/main/ui/dashboard/import.cljs:147 msgid "dashboard.import.progress.process-typographies" msgstr "Procesarea tipografiilor" -#: src/app/main/ui/dashboard/import.cljs:135 msgid "dashboard.import.progress.upload-data" msgstr "Încărcarea datelor pe server (%s/%s)" -#: src/app/main/ui/dashboard/import.cljs:138 msgid "dashboard.import.progress.upload-media" msgstr "Încărcarea fișierului: %s" -#: src/app/main/ui/dashboard/team.cljs:109 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.invite-profile" msgstr "Invitați persoane" -#: src/app/main/ui/dashboard/sidebar.cljs:547, src/app/main/ui/dashboard/sidebar.cljs:556, src/app/main/ui/dashboard/sidebar.cljs:563, src/app/main/ui/dashboard/team.cljs:312 +#: src/app/main/ui/dashboard/sidebar.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.leave-team" msgstr "Părăsește echipa" -#: src/app/main/ui/dashboard/templates.cljs:88, src/app/main/ui/dashboard/templates.cljs:163 msgid "dashboard.libraries-and-templates" msgstr "Biblioteci & Șabloane" -#: src/app/main/ui/dashboard/templates.cljs:164 msgid "dashboard.libraries-and-templates.explore" msgstr "Explorează mai multe dintre ele și află cum să contribui" -#: src/app/main/ui/dashboard/import.cljs:365 msgid "dashboard.libraries-and-templates.import-error" msgstr "A apărut o problemă la importarea șablonului. Șablonul nu a fost importat." -#: src/app/main/ui/dashboard/libraries.cljs:53 +#: src/app/main/ui/dashboard/libraries.cljs msgid "dashboard.libraries-title" msgstr "Biblioteci Partajate" -#: src/app/main/ui/dashboard/placeholder.cljs:45 +#: src/app/main/ui/dashboard/grid.cljs msgid "dashboard.loading-files" msgstr "încărcarea fișierelor …" -#: src/app/main/ui/dashboard/fonts.cljs:431 msgid "dashboard.loading-fonts" msgstr "se încarcă fonturile tale…" -#: src/app/main/ui/dashboard/file_menu.cljs:281, src/app/main/ui/dashboard/project_menu.cljs:100 +#: src/app/main/ui/dashboard/project_menu.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.move-to" msgstr "Mută la" -#: src/app/main/ui/dashboard/file_menu.cljs:245 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.move-to-multi" msgstr "Mutați %s fișiere la" -#: src/app/main/ui/dashboard/file_menu.cljs:226 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.move-to-other-team" msgstr "Mutați la altă echipă" -#: src/app/main/ui/dashboard/files.cljs:105, src/app/main/ui/dashboard/projects.cljs:252, src/app/main/ui/dashboard/projects.cljs:253 +#: src/app/main/ui/dashboard/projects.cljs, +#: src/app/main/ui/dashboard/files.cljs msgid "dashboard.new-file" msgstr "+ Fișier nou" -#: src/app/main/data/dashboard.cljs:958, src/app/main/data/dashboard.cljs:1181 +#: src/app/main/data/dashboard.cljs msgid "dashboard.new-file-prefix" msgstr "Fișer nou" -#: src/app/main/ui/dashboard/projects.cljs:55 +#: src/app/main/ui/dashboard/projects.cljs msgid "dashboard.new-project" msgstr "+ Proiect nou" -#: src/app/main/data/dashboard.cljs:726, src/app/main/data/dashboard.cljs:1184 +#: src/app/main/data/dashboard.cljs msgid "dashboard.new-project-prefix" msgstr "Proiect nou" -#: src/app/main/ui/dashboard/search.cljs:60 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.no-matches-for" msgstr "Nu există rezultate pentru “%s“" -#: src/app/main/ui/dashboard/sidebar.cljs:827 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.no-projects-placeholder" msgstr "Proiectele fixate vor apărea aici" -#: src/app/main/ui/auth/verify_token.cljs:33 +#: src/app/main/ui/auth/verify_token.cljs msgid "dashboard.notifications.email-changed-successfully" msgstr "Adresa ta de email a fost actualizată cu success" -#: src/app/main/ui/auth/verify_token.cljs:27 +#: src/app/main/ui/auth/verify_token.cljs msgid "dashboard.notifications.email-verified-successfully" msgstr "Adresa ta de email este confirmată" -#: src/app/main/ui/settings/password.cljs:37 +#: src/app/main/ui/settings/password.cljs msgid "dashboard.notifications.password-saved" msgstr "Parolă actualizată cu success!" -#: src/app/main/ui/dashboard/team.cljs:1081 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.num-of-members" msgstr "%s membrii" -#: src/app/main/ui/dashboard/file_menu.cljs:267 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.open-in-new-tab" msgstr "Deschide fișier într-o pagină nouă" -#: src/app/main/ui/dashboard/files.cljs:117, src/app/main/ui/dashboard/projects.cljs:260, src/app/main/ui/dashboard/projects.cljs:261 msgid "dashboard.options" msgstr "Opțiuni" -#: src/app/main/ui/settings/password.cljs:106, src/app/main/ui/settings/password.cljs:119 +#: src/app/main/ui/settings/password.cljs msgid "dashboard.password-change" msgstr "Schimbă parola" -#: src/app/main/ui/dashboard/pin_button.cljs:24, src/app/main/ui/dashboard/project_menu.cljs:95 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.pin-unpin" msgstr "Fixați/Anulați fixarea" -#: src/app/main/ui/dashboard/projects.cljs:51 +#: src/app/main/ui/dashboard/projects.cljs msgid "dashboard.projects-title" msgstr "Proiecte" -#: src/app/main/ui/settings/profile.cljs:86 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.remove-account" msgstr "Doriți să vă ștergeți contul?" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.remove-shared" msgstr "Elimină ca şi Colecţie Distribuită" -#: src/app/main/ui/settings/profile.cljs:78 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.save-settings" msgstr "Salvează setările" -#: src/app/main/ui/dashboard/sidebar.cljs:246, src/app/main/ui/dashboard/sidebar.cljs:247 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.search-placeholder" msgstr "Căutare…" -#: src/app/main/ui/dashboard/search.cljs:55 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.searching-for" msgstr "Căutare pentru “%s“…" -#: src/app/main/ui/settings/options.cljs:56 +#: src/app/main/ui/settings/options.cljs msgid "dashboard.select-ui-language" msgstr "Selectați limbajul interfeței" -#: src/app/main/ui/settings/options.cljs:63 +#: src/app/main/ui/settings/options.cljs msgid "dashboard.select-ui-theme" msgstr "Selectați o temă" -#: src/app/main/ui/dashboard/projects.cljs:282 +#: src/app/main/ui/dashboard/grid.cljs msgid "dashboard.show-all-files" msgstr "Afișați toate fișierele" -#: src/app/main/ui/dashboard/file_menu.cljs:96 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-delete-file" msgid_plural "dashboard.success-delete-file" msgstr[0] "Fișierul dumneavoastră a fost șters cu succes" msgstr[1] "Fișierele dumneavoastră au fost șterse cu succes" msgstr[2] "Fișierele dumneavoastră au fost șterse cu succes" -#: src/app/main/ui/dashboard/project_menu.cljs:59 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.success-delete-project" msgstr "Proiectul s-a șters cu succes" -#: src/app/main/ui/dashboard/file_menu.cljs:91 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-duplicate-file" msgid_plural "dashboard.success-delete-file" msgstr[0] "Fișierul dumneavoastră a fost duplicat cu succes" msgstr[1] "Fișierele dumneavoastră au fost duplicate cu succes" msgstr[2] "Fișierele dumneavoastră au fost duplicate cu succes" -#: src/app/main/ui/dashboard/project_menu.cljs:33 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.success-duplicate-project" msgstr "Proiectul s-a duplicat cu succes" -#: src/app/main/ui/dashboard/file_menu.cljs:130, src/app/main/ui/dashboard/grid.cljs:558, src/app/main/ui/dashboard/sidebar.cljs:152 +#: src/app/main/ui/dashboard/grid.cljs, src/app/main/ui/dashboard/sidebar.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-move-file" msgstr "Fișierul a fost mutat cu succes" -#: src/app/main/ui/dashboard/file_menu.cljs:129 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-move-files" msgstr "Fișerele au fost mutate cu succes" -#: src/app/main/ui/dashboard/project_menu.cljs:54 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.success-move-project" msgstr "Proiectul a fost mutat cu succes" -#: src/app/main/ui/dashboard/team.cljs:1052 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.team-info" msgstr "Informațiile echipei" -#: src/app/main/ui/dashboard/team.cljs:1070 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.team-members" msgstr "Membrii echipei" -#: src/app/main/ui/dashboard/team.cljs:1085 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.team-projects" msgstr "Proiectele echipei" -#: src/app/main/ui/settings/options.cljs:61 +#: src/app/main/ui/settings/options.cljs msgid "dashboard.theme-change" msgstr "Interfață temă" -#: src/app/main/ui/dashboard/search.cljs:42 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.title-search" msgstr "Rezultatele căutării" -#: src/app/main/ui/dashboard/search.cljs:50 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.type-something" msgstr "Scrie pentru a începe căutarea" -#: src/app/main/ui/dashboard/file_menu.cljs:287, src/app/main/ui/workspace/main_menu.cljs:566 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.unpublish-shared" msgstr "Anulați publicarea bibliotecii" -#: src/app/main/ui/settings/options.cljs:71 +#: src/app/main/ui/settings/profile.cljs, +#: src/app/main/ui/settings/password.cljs, +#: src/app/main/ui/settings/options.cljs msgid "dashboard.update-settings" msgstr "Actualizare setări" -#: src/app/main/ui/dashboard/team.cljs:861 msgid "dashboard.webhooks.active" msgstr "Este activ" -#: src/app/main/ui/dashboard/team.cljs:862 msgid "dashboard.webhooks.active.explain" msgstr "Când acest hook este declanșat, se vor furniza detalii despre eveniment" -#: src/app/main/ui/dashboard/team.cljs:852 msgid "dashboard.webhooks.content-type" msgstr "Tip de conținut" -#: src/app/main/ui/dashboard/team.cljs:885 msgid "dashboard.webhooks.create" msgstr "Creați webhook" -#: src/app/main/ui/dashboard/team.cljs:775 msgid "dashboard.webhooks.create.success" msgstr "Webhook creat cu succes." -#: src/app/main/ui/dashboard/team.cljs:882 msgid "dashboard.webhooks.description" msgstr "" "Webhook-urile sunt o modalitate simplă de a permite altor site-uri web și " @@ -844,1319 +778,1204 @@ msgstr "" "Penpot. Vom trimite o solicitare POST la fiecare dintre adresele URL pe " "care le furnizați." -#: src/app/main/ui/dashboard/team.cljs:1005 msgid "dashboard.webhooks.empty.add-one" msgstr "Apăsați butonul \"Adăugați webhook\" pentru a adăuga unul." -#: src/app/main/ui/dashboard/team.cljs:1004 msgid "dashboard.webhooks.empty.no-webhooks" msgstr "Niciun webhook creat până acum." -#, unused msgid "dashboard.webhooks.update.success" msgstr "Webhook actualizat cu succes." -#: src/app/main/ui/settings.cljs:31 +#: src/app/main/ui/settings.cljs msgid "dashboard.your-account-title" msgstr "Contul tău" -#: src/app/main/ui/settings/profile.cljs:70 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.your-email" msgstr "Email" -#: src/app/main/ui/settings/profile.cljs:62 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.your-name" msgstr "Numele tău" -#: src/app/main/ui/dashboard/file_menu.cljs:38, src/app/main/ui/dashboard/fonts.cljs:33, src/app/main/ui/dashboard/libraries.cljs:42, src/app/main/ui/dashboard/projects.cljs:318, src/app/main/ui/dashboard/search.cljs:30, src/app/main/ui/dashboard/sidebar.cljs:312, src/app/main/ui/dashboard/team.cljs:495, src/app/main/ui/dashboard/team.cljs:729, src/app/main/ui/dashboard/team.cljs:991, src/app/main/ui/dashboard/team.cljs:1038 +#: src/app/main/ui/dashboard/search.cljs, src/app/main/ui/dashboard/team.cljs, +#: src/app/main/ui/dashboard/libraries.cljs, +#: src/app/main/ui/dashboard/projects.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.your-penpot" msgstr "Contul Penpot" -#: src/app/main/ui/alert.cljs:32 +#: src/app/main/ui/alert.cljs msgid "ds.alert-ok" msgstr "Ok" -#: src/app/main/ui/alert.cljs:31, src/app/main/ui/alert.cljs:34 +#: src/app/main/ui/alert.cljs msgid "ds.alert-title" msgstr "Atenţie" -#: src/app/main/ui/confirm.cljs:83 +#: src/app/main/ui/confirm.cljs msgid "ds.component-subtitle" msgstr "Componente de actualizat:" -#: src/app/main/ui/confirm.cljs:36, src/app/main/ui/workspace/plugins.cljs:246 +#: src/app/main/ui/confirm.cljs msgid "ds.confirm-cancel" msgstr "Anulează" -#: src/app/main/ui/confirm.cljs:37, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:141 +#: src/app/main/ui/confirm.cljs msgid "ds.confirm-ok" msgstr "Ok" -#: src/app/main/ui/confirm.cljs:35, src/app/main/ui/confirm.cljs:39 +#: src/app/main/ui/confirm.cljs, src/app/main/ui/confirm.cljs msgid "ds.confirm-title" msgstr "Ești sigur?" -#: src/app/main/ui/auth/login.cljs:62 +#: src/app/main/ui/auth/login.cljs msgid "errors.auth-provider-not-configured" msgstr "Furnizorul de autentificare nu este configurat." -#: src/app/main/errors.cljs:104 msgid "errors.auth.unable-to-login" msgstr "Se pare că nu sunteți autentificat sau sesiunea a expirat." -#: src/app/main/data/fonts.cljs:189 msgid "errors.bad-font" msgstr "Fontul %s nu a putut fi încărcat" -#: src/app/main/data/fonts.cljs:188 msgid "errors.bad-font-plural" msgstr "Fonturile %s nu au putut fi încărcate" -#: src/app/main/data/workspace/media.cljs:198 msgid "errors.cannot-upload" msgstr "Fișierul media nu s-a putut încărca." -#: src/app/main/data/workspace.cljs:1598 +#: src/app/main/data/workspace.cljs msgid "errors.clipboard-not-implemented" msgstr "Bowser-ul tău nu permite clipboard" -#: src/app/main/ui/auth/verify_token.cljs:82, src/app/main/ui/settings/change_email.cljs:46 +#: src/app/main/ui/auth/verify_token.cljs, +#: src/app/main/ui/settings/change_email.cljs msgid "errors.email-already-exists" msgstr "Email deja trimis" -#: src/app/main/ui/auth/verify_token.cljs:87 +#: src/app/main/ui/auth/verify_token.cljs msgid "errors.email-already-validated" msgstr "Adresa de email este deja validată." -#: src/app/main/ui/settings/password.cljs:28 msgid "errors.email-as-password" msgstr "Nu vă puteți folosi e-mailul ca parolă" -#: src/app/main/ui/auth/recovery_request.cljs:63, src/app/main/ui/dashboard/team.cljs:578, src/app/main/ui/settings/change_email.cljs:54 +#: src/app/main/ui/auth/register.cljs, +#: src/app/main/ui/auth/recovery_request.cljs, +#: src/app/main/ui/settings/change_email.cljs, +#: src/app/main/ui/dashboard/team.cljs msgid "errors.email-has-permanent-bounces" msgstr "Adresa de email «%s» are multe rapoarte permanente de respingere." -#: src/app/main/ui/auth/login.cljs:81, src/app/main/ui/auth/recovery_request.cljs:31, src/app/main/ui/auth/register.cljs:43 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs, +#: src/app/main/ui/auth/recovery_request.cljs msgid "errors.email-invalid" msgstr "Vă rugăm să introduceți un e-mail valid" -#: src/app/main/ui/settings/change_email.cljs:35 +#: src/app/main/ui/settings/change_email.cljs msgid "errors.email-invalid-confirmation" msgstr "E-mailul de confirmare trebuie să se potrivească" -#: src/app/main/ui/dashboard/team.cljs:170 msgid "errors.email-spam-or-permanent-bounces" msgstr "E-mailul «%s» a fost raportat ca spam sau respins permanent." -#: src/app/main/errors.cljs:227 +#: src/app/main/errors.cljs msgid "errors.feature-mismatch" msgstr "" "Se pare că deschideți un fișier care are activată funcția \"%s\", dar " "frontend-ul dumneavoastră penpot nu o acceptă sau o are dezactivată." -#: src/app/main/errors.cljs:231, src/app/main/errors.cljs:245 +#: src/app/main/errors.cljs msgid "errors.feature-not-supported" msgstr "Funcția \"%s\" nu este acceptată." -#: src/app/main/data/users.cljs:709, src/app/main/ui/auth/login.cljs:65, src/app/main/ui/auth/login.cljs:116, src/app/main/ui/auth/register.cljs:69, src/app/main/ui/auth/register.cljs:237, src/app/main/ui/auth/verify_token.cljs:92, src/app/main/ui/dashboard/team.cljs:173, src/app/main/ui/onboarding/team_choice.cljs:95, src/app/main/ui/settings/access_tokens.cljs:91, src/app/main/ui/settings/feedback.cljs:52 +#: src/app/main/ui/auth/verify_token.cljs, +#: src/app/main/ui/settings/feedback.cljs, src/app/main/ui/dashboard/team.cljs msgid "errors.generic" msgstr "S-a întâmplat ceva în neregulă." -#: src/app/main/ui/components/color_input.cljs:57 +#: src/app/main/ui/components/color_input.cljs msgid "errors.invalid-color" msgstr "Culoare invalidă" -#: src/app/main/ui/static.cljs:43 +#: src/app/main/ui/auth/verify_token.cljs msgid "errors.invite-invalid" msgstr "Invitație invalidă" -#: src/app/main/ui/static.cljs:44 msgid "errors.invite-invalid.info" msgstr "Această invitație poate fi anulată sau expirată." -#: src/app/main/ui/auth/login.cljs:101 +#: src/app/main/ui/auth/login.cljs msgid "errors.ldap-disabled" msgstr "Autentificarea cu LDAP este dezactivată." -#: src/app/main/errors.cljs:239 +#: src/app/main/errors.cljs msgid "errors.max-quote-reached" msgstr "Ați ajuns la cota \"%s\". Luați legătura cu serviciul de asistență." -#: src/app/main/data/workspace/media.cljs:184 +#: src/app/main/data/workspace/persistence.cljs msgid "errors.media-too-large" msgstr "Imaginea este prea mare pentru a fi inserată." -#: src/app/main/data/media.cljs:68, src/app/main/data/workspace/media.cljs:187 +#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs msgid "errors.media-type-mismatch" msgstr "Se pare că conținutul imaginii nu se potrivește cu extensia de fișier." -#: src/app/main/data/media.cljs:65, src/app/main/data/workspace/media.cljs:172, src/app/main/data/workspace/media.cljs:175, src/app/main/data/workspace/media.cljs:178, src/app/main/data/workspace/media.cljs:181 +#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs msgid "errors.media-type-not-allowed" msgstr "Se pare că aceasta nu este o imagine validă." -#: src/app/main/ui/dashboard/team.cljs:574 +#: src/app/main/ui/dashboard/team.cljs msgid "errors.member-is-muted" msgstr "" "Profilul pe care încercați să îl invitați este dezactivat (din cauza spam " "sau inactivitate)." -#: src/app/main/ui/settings/password.cljs:61 +#: src/app/main/ui/settings/password.cljs msgid "errors.password-invalid-confirmation" msgstr "Parola de confirmare trebuie să se potrivească" -#: src/app/main/ui/settings/password.cljs:64 +#: src/app/main/ui/settings/password.cljs msgid "errors.password-too-short" msgstr "Parola trebuie să conțină cel puțin 8 caractere" -#: src/app/main/data/users.cljs:703, src/app/main/ui/auth/login.cljs:97, src/app/main/ui/auth/login.cljs:105 msgid "errors.profile-blocked" msgstr "Profilul este blocat" -#: src/app/main/ui/auth/recovery_request.cljs:60, src/app/main/ui/dashboard/team.cljs:164, src/app/main/ui/dashboard/team.cljs:570, src/app/main/ui/settings/change_email.cljs:50 +#: src/app/main/ui/auth/recovery_request.cljs, +#: src/app/main/ui/settings/change_email.cljs, +#: src/app/main/ui/dashboard/team.cljs msgid "errors.profile-is-muted" msgstr "" "Profilul tău conține adrese de email dezactivate (rapoarte spam sau " "inactive)." -#: src/app/main/data/users.cljs:701, src/app/main/ui/auth/register.cljs:60 +#: src/app/main/ui/auth/register.cljs msgid "errors.registration-disabled" msgstr "Înregistrarea este dezactivată în prezent." -#: src/app/main/ui/dashboard/sidebar.cljs:365, src/app/main/ui/dashboard/team.cljs:359 msgid "errors.team-leave.insufficient-members" msgstr "" "Nu există suficienți membri pentru a părăsi echipa, probabil că doriți să o " "ștergeți." -#: src/app/main/ui/dashboard/sidebar.cljs:368, src/app/main/ui/dashboard/team.cljs:362 msgid "errors.team-leave.member-does-not-exists" msgstr "Membrul pe care încercați să-l atribuiți nu există." -#: src/app/main/ui/dashboard/sidebar.cljs:371, src/app/main/ui/dashboard/team.cljs:365 msgid "errors.team-leave.owner-cant-leave" msgstr "" "Proprietarul nu poate părăsi echipa, trebuie să reatribuiți rolul de " "proprietar." -#: src/app/main/data/media.cljs:71 +#: src/app/main/data/media.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, +#: src/app/main/ui/inspect/exports.cljs msgid "errors.unexpected-error" msgstr "A apărut o eroare neașteptată." -#: src/app/main/ui/auth/verify_token.cljs:60 +#: src/app/main/ui/auth/verify_token.cljs msgid "errors.unexpected-token" msgstr "Cod necunoscut" -#: src/app/main/ui/dashboard/team.cljs:796 msgid "errors.webhooks.connection" msgstr "Eroare de conexiune, URL-ul nu poate fi accesat" -#: src/app/main/ui/dashboard/team.cljs:790 msgid "errors.webhooks.invalid-uri" msgstr "URL-ul nu a trecut validarea." -#: src/app/main/ui/dashboard/team.cljs:949 +#, fuzzy msgid "errors.webhooks.last-delivery" msgstr "Ultima livrare nu a avut succes." -#: src/app/main/ui/dashboard/team.cljs:792, src/app/main/ui/dashboard/team.cljs:952 msgid "errors.webhooks.ssl-validation" msgstr "Eroare la validarea SSL." -#: src/app/main/ui/dashboard/team.cljs:794 msgid "errors.webhooks.timeout" msgstr "Timeout" -#: src/app/main/ui/dashboard/team.cljs:788 msgid "errors.webhooks.unexpected" msgstr "Eroare neașteptată la validare" -#: src/app/main/ui/dashboard/team.cljs:798, src/app/main/ui/dashboard/team.cljs:955 msgid "errors.webhooks.unexpected-status" msgstr "Stare neașteptată %s" -#: src/app/main/ui/auth/login.cljs:109, src/app/main/ui/auth/login.cljs:113 +#: src/app/main/ui/auth/login.cljs msgid "errors.wrong-credentials" msgstr "E-mailul sau parola sunt incorecte." -#: src/app/main/ui/settings/password.cljs:25 +#: src/app/main/ui/settings/password.cljs msgid "errors.wrong-old-password" msgstr "Parola veche este incorectă" -#: src/app/main/ui/settings/feedback.cljs:77 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.description" msgstr "Descriere" -#: src/app/main/ui/settings/feedback.cljs:95 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.discourse-go-to" msgstr "Accesați forumul Penpot" -#: src/app/main/ui/settings/feedback.cljs:89 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.discourse-subtitle1" msgstr "" "Ne bucurăm să te avem aici. Dacă aveți nevoie de ajutor, căutați înainte de " "a posta." -#: src/app/main/ui/settings/feedback.cljs:88 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.discourse-title" msgstr "Comunitatea Penpot" -#: src/app/main/ui/settings/feedback.cljs:72 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.subject" msgstr "Subiect" -#: src/app/main/ui/settings/feedback.cljs:69 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.subtitle" msgstr "" "Descrie motivul pentru care ne scrii, specificând eventuale probleme, idei " "sau nelămuriri. Un membru al echipei noastre îți va răspunde în scurt timp." -#: src/app/main/ui/settings/feedback.cljs:68 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.title" msgstr "Adresă de Email" -#: src/app/main/ui/settings/feedback.cljs:105 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.twitter-go-to" msgstr "Accesați X" -#: src/app/main/ui/settings/feedback.cljs:99 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.twitter-subtitle1" msgstr "Aici pentru a vă ajuta cu întrebările tehnice." -#: src/app/main/ui/settings/feedback.cljs:98 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.twitter-title" msgstr "Cont de asistență X" -#: src/app/main/ui/settings/password.cljs:30 +#: src/app/main/ui/settings/password.cljs msgid "generic.error" msgstr "Am întâmpinat o eroare" -#: src/app/main/ui/viewer/inspect/attributes/blur.cljs:26 +#: src/app/main/ui/inspect/attributes/blur.cljs msgid "inspect.attributes.blur" msgstr "Estompare" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:115 +#: src/app/main/ui/inspect/attributes/blur.cljs msgid "inspect.attributes.blur.value" msgstr "Valoare" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:112 +#: src/app/main/ui/inspect/attributes/common.cljs msgid "inspect.attributes.color.hex" msgstr "HEX" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:114 +#: src/app/main/ui/inspect/attributes/common.cljs msgid "inspect.attributes.color.hsla" msgstr "HSLA" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:113 +#: src/app/main/ui/inspect/attributes/common.cljs msgid "inspect.attributes.color.rgba" msgstr "RGBA" -#: src/app/main/ui/viewer/inspect/attributes/fill.cljs:57 +#: src/app/main/ui/inspect/attributes/fill.cljs msgid "inspect.attributes.fill" msgstr "Umple" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:99, src/app/main/ui/viewer/inspect/attributes/image.cljs:51 +#: src/app/main/ui/inspect/attributes/image.cljs msgid "inspect.attributes.image.download" msgstr "Descarcă imaginea sursă" -#: src/app/main/ui/viewer/inspect/attributes/image.cljs:39 +#: src/app/main/ui/inspect/attributes/image.cljs msgid "inspect.attributes.image.height" msgstr "Înălțime" -#: src/app/main/ui/viewer/inspect/attributes/image.cljs:32 +#: src/app/main/ui/inspect/attributes/image.cljs msgid "inspect.attributes.image.width" msgstr "Lățime" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout" msgstr "Layout" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.height" msgstr "Înălțime" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.left" msgstr "Stânga" -#: src/app/main/ui/inspect/attributes/layout.cljs, src/app/main/ui/inspect/attributes/layout.cljs -#, unused +#: src/app/main/ui/inspect/attributes/layout.cljs, +#: src/app/main/ui/inspect/attributes/layout.cljs msgid "inspect.attributes.layout.radius" msgstr "Rază" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.rotation" msgstr "Rotație" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.top" msgstr "Top" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.width" msgstr "Lățime" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:57 +#: src/app/main/ui/inspect/attributes/shadow.cljs msgid "inspect.attributes.shadow" msgstr "Umbră" -#: src/app/main/ui/viewer/inspect/attributes/geometry.cljs:40 +#: src/app/main/ui/inspect/attributes/layout.cljs msgid "inspect.attributes.size" msgstr "Dimensiune și poziție" -#: src/app/main/ui/viewer/inspect/attributes/stroke.cljs:52 +#: src/app/main/ui/inspect/attributes/stroke.cljs msgid "inspect.attributes.stroke" msgstr "Linie" -#, permanent, unused msgid "inspect.attributes.stroke.alignment.center" msgstr "Centru" -#, permanent, unused msgid "inspect.attributes.stroke.alignment.inner" msgstr "Interior" -#, permanent, unused msgid "inspect.attributes.stroke.alignment.outer" msgstr "Exterior" -#, unused msgid "inspect.attributes.stroke.style.dotted" msgstr "Punctat" -#, unused msgid "inspect.attributes.stroke.style.mixed" msgstr "Mixat" -#, unused msgid "inspect.attributes.stroke.style.none" msgstr "Niciunul" -#, unused msgid "inspect.attributes.stroke.style.solid" msgstr "Solid" #: src/app/main/ui/inspect/attributes/stroke.cljs -#, unused msgid "inspect.attributes.stroke.width" msgstr "Lățime" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:81, src/app/main/ui/viewer/inspect/attributes/text.cljs:194 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography" msgstr "Tipografie" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:89 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.font-family" msgstr "Familie de Fonturi" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:107 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.font-size" msgstr "Dimensiune Font" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:98 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.font-style" msgstr "Stil Font" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:116 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.font-weight" msgstr "Greutate Font" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:134 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.letter-spacing" msgstr "Spațiere" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:125 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.line-height" msgstr "Înălțimea rândului" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:143 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.text-decoration" msgstr "Decorare Text" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:145 msgid "inspect.attributes.typography.text-decoration.none" msgstr "Niciunul" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:146 msgid "inspect.attributes.typography.text-decoration.strikethrough" msgstr "Barat" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:147 msgid "inspect.attributes.typography.text-decoration.underline" msgstr "Subliniat" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:156 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.text-transform" msgstr "Transformare Text" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:158 msgid "inspect.attributes.typography.text-transform.lowercase" msgstr "Minuscule" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:159 msgid "inspect.attributes.typography.text-transform.none" msgstr "Niciunul" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:160 msgid "inspect.attributes.typography.text-transform.titlecase" msgstr "Majuscule Titlu" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:161 msgid "inspect.attributes.typography.text-transform.uppercase" msgstr "Majuscule" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:140 msgid "inspect.empty.help" msgstr "" "Dacă doriți să aflați mai multe despre inspectorul de design, vizitați " "centrul de ajutor Penpot" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:143 msgid "inspect.empty.more-info" msgstr "Mai multe informații despre inspector" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:135 msgid "inspect.empty.select" msgstr "" "Selectați o formă, o placă sau un grup pentru a le inspecta proprietățile " "și codul" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:125 +#: src/app/main/ui/inspect/right_sidebar.cljs msgid "inspect.tabs.code" msgstr "Cod" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:98 msgid "inspect.tabs.code.selected.circle" msgstr "Cerc" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:99 msgid "inspect.tabs.code.selected.component" msgstr "Componentă" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:100 msgid "inspect.tabs.code.selected.curve" msgstr "Curbat" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:101 msgid "inspect.tabs.code.selected.frame" msgstr "Planșă de lucru" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:102 msgid "inspect.tabs.code.selected.group" msgstr "Grup" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:103 msgid "inspect.tabs.code.selected.image" msgstr "Imagine" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:104 msgid "inspect.tabs.code.selected.mask" msgstr "Mască" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:93 +#: src/app/main/ui/inspect/right_sidebar.cljs msgid "inspect.tabs.code.selected.multiple" msgstr "%s Selectate" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:105 msgid "inspect.tabs.code.selected.path" msgstr "Traiectorie" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:106 msgid "inspect.tabs.code.selected.rect" msgstr "Dreptunghi" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:107 msgid "inspect.tabs.code.selected.svg-raw" msgstr "SVG" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:108 msgid "inspect.tabs.code.selected.text" msgstr "Text" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:115 +#: src/app/main/ui/inspect/right_sidebar.cljs msgid "inspect.tabs.info" msgstr "Info" -#: src/app/main/ui/workspace/main_menu.cljs:158 +#: src/app/main/ui/workspace/header.cljs msgid "label.shortcuts" msgstr "Comenzi rapide" -#: src/app/main/ui/dashboard/import.cljs:527 msgid "labels.accept" msgstr "Acceptă" -#: src/app/main/ui/settings/sidebar.cljs:100 +#: src/app/main/ui/settings/sidebar.cljs msgid "labels.access-tokens" msgstr "Jetoane acces" -#: src/app/main/ui/dashboard/team.cljs:968 msgid "labels.active" msgstr "Activ" -#: src/app/main/ui/dashboard/fonts.cljs:175 msgid "labels.add-custom-font" msgstr "Adăugați font personalizat" -#: src/app/main/ui/dashboard/team.cljs:120, src/app/main/ui/dashboard/team.cljs:276, src/app/main/ui/dashboard/team.cljs:519, src/app/main/ui/dashboard/team.cljs:549, src/app/main/ui/onboarding/team_choice.cljs:67 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs msgid "labels.admin" msgstr "Administrator" -#: src/app/main/ui/onboarding/questions.cljs:174 -msgid "labels.adobe-xd" -msgstr "Adobe XD" - #: src/app/main/ui/workspace/comments.cljs -#, unused msgid "labels.all" msgstr "Toate" -#: src/app/main/ui/auth.cljs:37 msgid "labels.and" msgstr "și" -#: src/app/main/ui/onboarding/team_choice.cljs:162 msgid "labels.back" msgstr "Înapoi" -#: src/app/main/ui/static.cljs:59 +#: src/app/main/ui/static.cljs msgid "labels.bad-gateway.desc-message" msgstr "Momentan serverele noastre sunt în mentenanță. Revino în scurt timp." -#: src/app/main/ui/static.cljs:58 +#: src/app/main/ui/static.cljs msgid "labels.bad-gateway.main-message" msgstr "Eroare de Server" -#: src/app/main/data/common.cljs:112, src/app/main/ui/dashboard/change_owner.cljs:69, src/app/main/ui/dashboard/import.cljs:514, src/app/main/ui/dashboard/team.cljs:868, src/app/main/ui/delete_shared.cljs:35, src/app/main/ui/export.cljs:164, src/app/main/ui/export.cljs:460, src/app/main/ui/settings/access_tokens.cljs:188, src/app/main/ui/viewer/share_link.cljs:203, src/app/main/ui/workspace/sidebar/assets/groups.cljs:149 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.cancel" msgstr "Anulează" -#: src/app/main/ui/onboarding/questions.cljs:176 -msgid "labels.canva" -msgstr "Canva" - -#: src/app/main/ui/dashboard/projects.cljs:93, src/app/main/ui/export.cljs:478, src/app/main/ui/settings/access_tokens.cljs:183, src/app/main/ui/viewer/login.cljs:77, src/app/main/ui/viewer/share_link.cljs:174, src/app/main/ui/workspace/libraries.cljs:522 msgid "labels.close" msgstr "Închide" -#: src/app/main/ui/dashboard/comments.cljs:104, src/app/main/ui/viewer/comments.cljs:70, src/app/main/ui/workspace/comments.cljs:126 +#: src/app/main/ui/dashboard/comments.cljs msgid "labels.comments" msgstr "Comentarii" -#: src/app/main/ui/dashboard/sidebar.cljs:985, src/app/main/ui/workspace/main_menu.cljs:110 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.community" msgstr "Comunitate" -#: src/app/main/ui/settings/password.cljs:103 +#: src/app/main/ui/settings/password.cljs msgid "labels.confirm-password" msgstr "Confirmă parola" -#: src/app/main/ui/dashboard/import.cljs:520, src/app/main/ui/export.cljs:465, src/app/main/ui/onboarding/newsletter.cljs:101 msgid "labels.continue" msgstr "Continuă" -#, unused msgid "labels.continue-with" msgstr "Continuă cu" -#: src/app/main/ui/viewer/login.cljs:75 msgid "labels.continue-with-penpot" msgstr "Poți continua cu un cont Penpot" -#: src/app/main/ui/dashboard/team.cljs:642 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.copy-invitation-link" msgstr "Copiați link-ul" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:157, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:190 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "labels.create" msgstr "Creează" -#: src/app/main/ui/dashboard/team_form.cljs:101, src/app/main/ui/dashboard/team_form.cljs:121 +#: src/app/main/ui/dashboard/team_form.cljs, +#: src/app/main/ui/dashboard/team_form.cljs msgid "labels.create-team" msgstr "Creează o echipă" -#: src/app/main/ui/dashboard/team_form.cljs:113 +#: src/app/main/ui/dashboard/team_form.cljs msgid "labels.create-team.placeholder" msgstr "Introduceți noul nume al echipei" -#, unused msgid "labels.custom-fonts" msgstr "Fonturi personalizate" -#: src/app/main/ui/settings/sidebar.cljs:73 +#: src/app/main/ui/settings/sidebar.cljs msgid "labels.dashboard" msgstr "Administrare" -#: src/app/main/ui/dashboard/file_menu.cljs:306, src/app/main/ui/dashboard/fonts.cljs:255, src/app/main/ui/dashboard/fonts.cljs:332, src/app/main/ui/dashboard/fonts.cljs:346, src/app/main/ui/dashboard/project_menu.cljs:115, src/app/main/ui/dashboard/team.cljs:904, src/app/main/ui/settings/access_tokens.cljs:209, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:209 +#: src/app/main/ui/dashboard/project_menu.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.delete" msgstr "Șterge" -#: src/app/main/ui/comments.cljs:357 +#: src/app/main/ui/comments.cljs msgid "labels.delete-comment" msgstr "Șterge comentariu" -#: src/app/main/ui/comments.cljs:354 +#: src/app/main/ui/comments.cljs msgid "labels.delete-comment-thread" msgstr "Șterge discuție" -#: src/app/main/ui/dashboard/team.cljs:648 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.delete-invitation" msgstr "Șterge invitație" -#: src/app/main/ui/dashboard/file_menu.cljs:262 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.delete-multi-files" msgstr "Șterge %s fișiere" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:199 msgid "labels.discard" msgstr "Anulați" -#: src/app/main/ui/dashboard/file_menu.cljs:28, src/app/main/ui/dashboard/files.cljs:72, src/app/main/ui/dashboard/files.cljs:156, src/app/main/ui/dashboard/projects.cljs:220, src/app/main/ui/dashboard/projects.cljs:224, src/app/main/ui/dashboard/sidebar.cljs:791 +#: src/app/main/ui/dashboard/projects.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs, +#: src/app/main/ui/dashboard/files.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.drafts" msgstr "Drafturi" -#: src/app/main/ui/comments.cljs:350, src/app/main/ui/dashboard/fonts.cljs:252, src/app/main/ui/dashboard/team.cljs:902, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:205 +#: src/app/main/ui/comments.cljs msgid "labels.edit" msgstr "Editează" -#, unused msgid "labels.edit-file" msgstr "Editează fișier" -#: src/app/main/ui/dashboard/team.cljs:118, src/app/main/ui/dashboard/team.cljs:279, src/app/main/ui/dashboard/team.cljs:520, src/app/main/ui/dashboard/team.cljs:553, src/app/main/ui/onboarding/team_choice.cljs:66 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs msgid "labels.editor" msgstr "Editor" -#: src/app/main/ui/dashboard/team.cljs:661 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.expired-invitation" msgstr "Expirat" -#: src/app/main/ui/export.cljs:173 msgid "labels.export" msgstr "Exportă" -#: src/app/main/ui/settings/feedback.cljs:51 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.feedback-disabled" msgstr "Feedback dezactivat" -#: src/app/main/ui/settings/feedback.cljs:42 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.feedback-sent" msgstr "Feedback trimis" -#: src/app/main/ui/onboarding/questions.cljs:170 -msgid "labels.figma" -msgstr "Figma" - -#: src/app/main/ui/dashboard/fonts.cljs:412 msgid "labels.font-family" msgstr "Familie de Fonturi" -#, unused msgid "labels.font-providers" msgstr "Provideri de Fonturi" -#: src/app/main/ui/dashboard/fonts.cljs:413 msgid "labels.font-variants" msgstr "Stiluri" -#: src/app/main/ui/dashboard/fonts.cljs:52, src/app/main/ui/dashboard/sidebar.cljs:811 msgid "labels.fonts" msgstr "Fonturi" -#: src/app/main/ui/onboarding/questions.cljs:262 -msgid "labels.freelancer" -msgstr "Sunt un freelancer" - -#: src/app/main/ui/dashboard/sidebar.cljs:1015, src/app/main/ui/workspace/main_menu.cljs:142 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.github-repo" msgstr "Repozitoriu Github" -#: src/app/main/ui/dashboard/sidebar.cljs:1032, src/app/main/ui/settings/sidebar.cljs:113, src/app/main/ui/workspace/main_menu.cljs:171 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/settings/sidebar.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.give-feedback" msgstr "Lasă un feedback" -#: src/app/main/ui/auth/recovery_request.cljs:110, src/app/main/ui/auth/register.cljs:285, src/app/main/ui/viewer/login.cljs:117 msgid "labels.go-back" msgstr "Întoarce-te" -#: src/app/main/ui/dashboard/sidebar.cljs:978, src/app/main/ui/workspace/main_menu.cljs:102 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.help-center" msgstr "Centru Ajutor" -#: src/app/main/ui/viewer/comments.cljs:103, src/app/main/ui/workspace/comments.cljs:67 +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs msgid "labels.hide-resolved-comments" msgstr "Ascunde comentariile rezolvate" -#: src/app/main/ui/dashboard/team.cljs:969 msgid "labels.inactive" msgstr "Inactiv" -#: src/app/main/ui/dashboard/fonts.cljs:410 msgid "labels.installed-fonts" msgstr "Fonturi instalate" -#: src/app/main/ui/static.cljs:144 +#: src/app/main/ui/static.cljs msgid "labels.internal-error.desc-message" msgstr "" "Am întâmpinat o eroare. Te rugăm, mai încearcă o dată. Dacă problema " "persistă poți contacta echipa de suport." -#: src/app/main/ui/static.cljs:143 +#: src/app/main/ui/static.cljs msgid "labels.internal-error.main-message" msgstr "Eroare internă" -#: src/app/main/ui/onboarding/questions.cljs:178 -msgid "labels.invision" -msgstr "InVision" - -#: src/app/main/ui/dashboard/sidebar.cljs:516, src/app/main/ui/dashboard/team.cljs:89, src/app/main/ui/dashboard/team.cljs:97, src/app/main/ui/dashboard/team.cljs:708 +#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.invitations" msgstr "Invitații" -#: src/app/main/ui/settings/options.cljs:51 +#: src/app/main/ui/settings/options.cljs msgid "labels.language" msgstr "Limbă" -#: src/app/main/ui/dashboard/sidebar.cljs:1008, src/app/main/ui/workspace/main_menu.cljs:134 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.libraries-and-templates" msgstr "Biblioteci & Șabloane" -#: src/app/main/ui/viewer/header.cljs:203 msgid "labels.log-or-sign" msgstr "Conectați-vă sau înregistrați-vă" -#: src/app/main/ui/dashboard/sidebar.cljs:1040 +#: src/app/main/ui/settings.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.logout" msgstr "Deconectare" -#: src/app/main/ui/dashboard/team.cljs:468 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.member" msgstr "Membru" -#: src/app/main/ui/dashboard/sidebar.cljs:510, src/app/main/ui/dashboard/team.cljs:87, src/app/main/ui/dashboard/team.cljs:95 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.members" msgstr "Membri" -#: src/app/main/ui/settings/password.cljs:96 +#: src/app/main/ui/settings/password.cljs msgid "labels.new-password" msgstr "Parolă nouă" -#: src/app/main/ui/dashboard/templates.cljs:269, src/app/main/ui/onboarding/questions.cljs:55 -msgid "labels.next" -msgstr "Următor" - -#: src/app/main/ui/dashboard/comments.cljs:128, src/app/main/ui/workspace/comments.cljs:161 +#: src/app/main/ui/workspace/comments.cljs, +#: src/app/main/ui/dashboard/comments.cljs msgid "labels.no-comments-available" msgstr "Sunteți la zi! Notificările de comentarii noi vor apărea aici." -#: src/app/main/ui/dashboard/team.cljs:694 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.no-invitations" msgstr "Nu există invitații în așteptare." -#: src/app/main/ui/dashboard/team.cljs:696 -#, markdown +#: src/app/main/ui/dashboard/team.cljs msgid "labels.no-invitations-hint" msgstr "" "Faceți clic pe butonul **Invitați persoane** pentru a invita persoane în " "această echipă." -#: src/app/main/ui/static.cljs:50 +#: src/app/main/ui/static.cljs msgid "labels.not-found.desc-message" msgstr "Această pagină nu există sau nu ai permisiunea să o accesezi." -#: src/app/main/ui/static.cljs:49 +#: src/app/main/ui/static.cljs msgid "labels.not-found.main-message" msgstr "Opa!" -#: src/app/main/ui/dashboard/projects.cljs:239, src/app/main/ui/dashboard/team.cljs:1095 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.num-of-files" msgid_plural "labels.num-of-files" msgstr[0] "1 fişier" msgstr[1] "%s fişiere" msgstr[2] "%s fişiere" -#: src/app/main/ui/viewer/thumbnails.cljs:80 msgid "labels.num-of-frames" msgid_plural "labels.num-of-frames" msgstr[0] "1 planșă" msgstr[1] "%s planșe" msgstr[2] "%s de planșe" -#: src/app/main/ui/dashboard/team.cljs:1090 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.num-of-projects" msgid_plural "labels.num-of-projects" msgstr[0] "1 proiecte" msgstr[1] "%s proiecte" msgstr[2] "%s proiecte" -#: src/app/main/ui/settings/password.cljs:89 +#: src/app/main/ui/settings/password.cljs msgid "labels.old-password" msgstr "Parola veche" #: src/app/main/ui/workspace/comments.cljs -#, unused msgid "labels.only-yours" msgstr "Personale" -#, unused msgid "labels.or" msgstr "sau" -#: src/app/main/ui/onboarding/questions.cljs:145, src/app/main/ui/onboarding/questions.cljs:214, src/app/main/ui/onboarding/questions.cljs:303, src/app/main/ui/onboarding/questions.cljs:316, src/app/main/ui/onboarding/questions.cljs:389, src/app/main/ui/onboarding/questions.cljs:447 -msgid "labels.other" -msgstr "Alta (specificați)" - -#: src/app/main/ui/dashboard/team.cljs:286, src/app/main/ui/dashboard/team.cljs:518, src/app/main/ui/dashboard/team.cljs:1076 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs msgid "labels.owner" msgstr "Autor" -#: src/app/main/ui/settings/sidebar.cljs:87 +#: src/app/main/ui/settings/sidebar.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.password" msgstr "Parola" -#: src/app/main/ui/dashboard/team.cljs:662 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.pending-invitation" msgstr "În curs" -#: src/app/main/ui/onboarding/questions.cljs:51 -msgid "labels.previous" -msgstr "Anterior" - -#: src/app/main/ui/settings/profile.cljs:118, src/app/main/ui/settings/sidebar.cljs:82 +#: src/app/main/ui/settings/sidebar.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.profile" msgstr "Profil" -#: src/app/main/ui/dashboard/sidebar.cljs:784 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.projects" msgstr "Proiecte" -#: src/app/main/ui/dashboard/sidebar.cljs:998, src/app/main/ui/settings/sidebar.cljs:106, src/app/main/ui/workspace/main_menu.cljs:126 +#: src/app/main/ui/settings/sidebar.cljs msgid "labels.release-notes" msgstr "Mențiuni" #: src/app/main/ui/workspace.cljs -#, unused msgid "labels.reload-file" msgstr "Reîncărcați fișierul" -#: src/app/main/ui/workspace/libraries.cljs, src/app/main/ui/dashboard/team.cljs -#, unused +#: src/app/main/ui/workspace/libraries.cljs, +#: src/app/main/ui/dashboard/team.cljs msgid "labels.remove" msgstr "Elimină" -#: src/app/main/ui/dashboard/team.cljs:316 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.remove-member" msgstr "Eliminați membru" -#: src/app/main/ui/dashboard/file_menu.cljs:271, src/app/main/ui/dashboard/project_menu.cljs:85, src/app/main/ui/dashboard/sidebar.cljs:539, src/app/main/ui/workspace/sidebar/assets/groups.cljs:157 +#: src/app/main/ui/dashboard/sidebar.cljs, +#: src/app/main/ui/dashboard/project_menu.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.rename" msgstr "Redenumire" -#: src/app/main/ui/dashboard/team_form.cljs:99 +#: src/app/main/ui/dashboard/team_form.cljs msgid "labels.rename-team" msgstr "Modifică numele echipei" -#: src/app/main/ui/dashboard/team.cljs:645 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.resend-invitation" msgstr "Retrimite invitația" -#: src/app/main/ui/static.cljs:61, src/app/main/ui/static.cljs:70, src/app/main/ui/static.cljs:148 +#: src/app/main/ui/static.cljs, src/app/main/ui/static.cljs msgid "labels.retry" msgstr "Încearcă din nou" -#: src/app/main/ui/dashboard/team.cljs:469, src/app/main/ui/dashboard/team.cljs:709 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.role" msgstr "Rol" -#: src/app/main/ui/dashboard/fonts.cljs:380, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:191 msgid "labels.save" msgstr "Salvează" -#: src/app/main/ui/dashboard/fonts.cljs:415 msgid "labels.search-font" msgstr "Caută font" -#: src/app/main/ui/onboarding/questions.cljs:90, src/app/main/ui/onboarding/questions.cljs:248, src/app/main/ui/onboarding/questions.cljs:259, src/app/main/ui/onboarding/questions.cljs:270 -msgid "labels.select-option" -msgstr "Selectați opțiune" - -#: src/app/main/ui/settings/feedback.cljs:82 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.send" msgstr "Trimitere" -#: src/app/main/ui/settings/feedback.cljs:82 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.sending" msgstr "Se trimite…" -#: src/app/main/ui/static.cljs:68 +#: src/app/main/ui/static.cljs msgid "labels.service-unavailable.desc-message" msgstr "Momentan suntem în mentenanță." -#: src/app/main/ui/static.cljs:67 +#: src/app/main/ui/static.cljs msgid "labels.service-unavailable.main-message" msgstr "Serviciul nu este disponibil" -#: src/app/main/ui/dashboard/sidebar.cljs:530, src/app/main/ui/dashboard/team.cljs:88, src/app/main/ui/dashboard/team.cljs:102, src/app/main/ui/settings/options.cljs:84, src/app/main/ui/settings/sidebar.cljs:93 +#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.settings" msgstr "Setări" -#, unused +#: src/app/main/ui/viewer/header.cljs, src/app/main/ui/viewer/header.cljs msgid "labels.share-prototype" msgstr "Distribuie link" -#: src/app/main/ui/dashboard/sidebar.cljs:800 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.shared-libraries" msgstr "Biblioteci distribuite" -#: src/app/main/ui/viewer/comments.cljs:82, src/app/main/ui/workspace/comments.cljs:55, src/app/main/ui/workspace/comments.cljs:135 +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs msgid "labels.show-all-comments" msgstr "Afișează toate comentariile" -#: src/app/main/ui/viewer/comments.cljs:115 msgid "labels.show-comments-list" msgstr "Arată lista de comentarii" -#: src/app/main/ui/viewer/comments.cljs:91, src/app/main/ui/workspace/comments.cljs:61, src/app/main/ui/workspace/comments.cljs:136 +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs msgid "labels.show-your-comments" msgstr "Afișează doar comentariile mele" -#: src/app/main/ui/onboarding/questions.cljs:172 -msgid "labels.sketch" -msgstr "Sketch" - -#: src/app/main/ui/onboarding/questions.cljs:56 -msgid "labels.start" -msgstr "Începeți" - -#: src/app/main/ui/dashboard/team.cljs:710 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.status" msgstr "Stare" -#: src/app/main/ui/onboarding/questions.cljs:251 -msgid "labels.student-teacher" -msgstr "Student sau profesor" - -#: src/app/main/ui/dashboard/sidebar.cljs:992, src/app/main/ui/workspace/main_menu.cljs:118 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.tutorials" msgstr "Tutoriale" -#: src/app/main/ui/dashboard/file_menu.cljs:256 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.unpublish-multi-files" msgstr "Depublicați %s fișiere" -#: src/app/main/ui/settings/profile.cljs:103 +#: src/app/main/ui/settings/profile.cljs msgid "labels.update" msgstr "Actualizare" -#: src/app/main/ui/dashboard/team_form.cljs:120 +#: src/app/main/ui/dashboard/team_form.cljs msgid "labels.update-team" msgstr "Actualizare echipă" -#: src/app/main/ui/dashboard/fonts.cljs:241 msgid "labels.upload" msgstr "Încărcare" -#: src/app/main/ui/dashboard/fonts.cljs:169 msgid "labels.upload-custom-fonts" msgstr "Încarcă fonturi personalizate" -#: src/app/main/ui/dashboard/fonts.cljs:240 msgid "labels.uploading" msgstr "Se încarcă…" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs:223 msgid "labels.view-only" msgstr "NUMAI VIZUALIZARE" -#: src/app/main/ui/dashboard/team.cljs:123, src/app/main/ui/dashboard/team.cljs:282, src/app/main/ui/dashboard/team.cljs:521 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.viewer" msgstr "Vizitator" -#: src/app/main/ui/dashboard/sidebar.cljs:523, src/app/main/ui/dashboard/team.cljs:90, src/app/main/ui/dashboard/team.cljs:100, src/app/main/ui/dashboard/team.cljs:880 msgid "labels.webhooks" msgstr "Webhook-uri" -#: src/app/main/ui/comments.cljs:194 +#: src/app/main/ui/comments.cljs msgid "labels.write-new-comment" msgstr "Scrie un comentariu" -#: src/app/main/ui/dashboard/team.cljs:237 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.you" msgstr "(tu)" -#: src/app/main/ui/dashboard/sidebar.cljs:968 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.your-account" msgstr "Contul tău" -#: src/app/main/data/media.cljs:49, src/app/main/data/workspace/media.cljs:223, src/app/main/data/workspace/media.cljs:453 +#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs msgid "media.loading" msgstr "Încarcă imaginea…" -#: src/app/main/data/common.cljs:111 msgid "modals.add-shared-confirm-empty.hint" msgstr "" "Biblioteca dumneavoastră este goală. Odată adăugate ca bibliotecă " "partajată, obiectele pe care le creați vor fi disponibile pentru a fi " "utilizate în celelalte fișiere. Sunteți sigur că doriți să o publicați?" -#: src/app/main/data/common.cljs:113 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.add-shared-confirm.accept" msgstr "Adaugă la Colecții distribuite" -#: src/app/main/data/common.cljs:111 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.add-shared-confirm.hint" msgstr "" "O dată adăugat la Colecții distribuite, toate fișierele acestei colecții " "vor deveni disponibile altora." -#: src/app/main/data/common.cljs:110 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.add-shared-confirm.message" msgstr "Adaugă “%s” la Colecții Distribuite" -#: src/app/main/ui/workspace/nudge.cljs:60 +#: src/app/main/ui/workspace/nudge.cljs msgid "modals.big-nudge" msgstr "Ghiont mare" -#: src/app/main/ui/settings/change_email.cljs:127 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.confirm-email" msgstr "Verifică-ți adresa de e-mail" -#: src/app/main/ui/settings/change_email.cljs:114 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.info" msgstr "Îți vom trimite un email pe adresa “%s” pentru identificare." -#: src/app/main/ui/settings/change_email.cljs:119 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.new-email" msgstr "Mail nou" -#: src/app/main/ui/settings/change_email.cljs:136 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.submit" msgstr "Schimbă adresa de e-mail" -#: src/app/main/ui/settings/change_email.cljs:107 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.title" msgstr "Schimbă-ți adresa de E-mail" -#: src/app/main/ui/settings/access_tokens.cljs:165, src/app/main/ui/settings/access_tokens.cljs:171 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.create-access-token.copy-token" msgstr "Copiați jeton" -#: src/app/main/ui/settings/access_tokens.cljs:142 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.create-access-token.expiration-date.label" msgstr "Dată de expirare" -#: src/app/main/ui/settings/access_tokens.cljs:136 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.create-access-token.name.label" msgstr "Nume" -#: src/app/main/ui/settings/access_tokens.cljs:138 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.create-access-token.name.placeholder" msgstr "Numele vă poate ajuta să știți pentru ce este folosit jetonul" -#: src/app/main/ui/settings/access_tokens.cljs:191 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.create-access-token.submit-label" msgstr "Creați jeton" -#: src/app/main/ui/settings/access_tokens.cljs:123 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.create-access-token.title" msgstr "Generați jeton acces" -#: src/app/main/ui/dashboard/team.cljs:873 msgid "modals.create-webhook.submit-label" msgstr "Creați webhook" -#: src/app/main/ui/dashboard/team.cljs:838 msgid "modals.create-webhook.title" msgstr "Creați webhook" -#: src/app/main/ui/dashboard/team.cljs:849 msgid "modals.create-webhook.url.label" msgstr "URL a încărcăturii" -#: src/app/main/ui/dashboard/team.cljs:850 msgid "modals.create-webhook.url.placeholder" msgstr "https://example.com/postreceive" -#: src/app/main/ui/settings/access_tokens.cljs:271 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.delete-acces-token.accept" msgstr "Ștergeți jeton" -#: src/app/main/ui/settings/access_tokens.cljs:270 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.delete-acces-token.message" msgstr "Sunteți sigur că doriți să ștergeți acest jeton?" -#: src/app/main/ui/settings/access_tokens.cljs:269 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.delete-acces-token.title" msgstr "Ștergeți jeton" -#: src/app/main/ui/settings/delete_account.cljs:59 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.cancel" msgstr "Anulează ștergerea contului" -#: src/app/main/ui/settings/delete_account.cljs:64 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.confirm" msgstr "Confirm ștergerea contului" -#: src/app/main/ui/settings/delete_account.cljs:53 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.info" msgstr "Prin ștergerea contului, se vor șterge toate proiectele și arhivele tale." -#: src/app/main/ui/settings/delete_account.cljs:46 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.title" msgstr "Ești sigur că dorești ștergerea contului?" -#: src/app/main/ui/comments.cljs:298 +#: src/app/main/ui/comments.cljs msgid "modals.delete-comment-thread.accept" msgstr "Șterge conversație" -#: src/app/main/ui/comments.cljs:297 +#: src/app/main/ui/comments.cljs msgid "modals.delete-comment-thread.message" msgstr "" "Ești sigur că dorești să ștergi această conversație? Toate discuțiile din " "cadrul subiect vor fi șterse." -#: src/app/main/ui/comments.cljs:296 +#: src/app/main/ui/comments.cljs msgid "modals.delete-comment-thread.title" msgstr "Șterge conversație" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:140 msgid "modals.delete-component-annotation.message" msgstr "Sunteți sigur că doriți să ștergeți această notă?" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:139 msgid "modals.delete-component-annotation.title" msgstr "Ștergeți notă" -#: src/app/main/ui/dashboard/file_menu.cljs:123 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-confirm.accept" msgstr "Șterge fișier" -#: src/app/main/ui/dashboard/file_menu.cljs:122 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-confirm.message" msgstr "Ești sigur că dorești să ștergi acest fișier?" -#: src/app/main/ui/dashboard/file_menu.cljs:121 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-confirm.title" msgstr "Ștergere fișier" -#: src/app/main/ui/dashboard/file_menu.cljs:117 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-multi-confirm.accept" msgstr "Șterge fișiere" -#: src/app/main/ui/dashboard/file_menu.cljs:116 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-multi-confirm.message" msgstr "Ești sigur că dorești să ștergi aceste %s fișiere?" -#: src/app/main/ui/dashboard/file_menu.cljs:115 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-multi-confirm.title" msgstr "Ștergere %s fișeiere în curs" -#: src/app/main/ui/dashboard/fonts.cljs:345 msgid "modals.delete-font-variant.message" msgstr "" "Sigur doriți să ștergeți acest stil de font? Nu se va încărca dacă este " "folosit într-un fișier." -#: src/app/main/ui/dashboard/fonts.cljs:344 msgid "modals.delete-font-variant.title" msgstr "Ștergerea stilului fontului" -#: src/app/main/ui/dashboard/fonts.cljs:331 msgid "modals.delete-font.message" msgstr "" "Ești sigur că dorești să ștergi acest font? O dată șters acesta nu se va " "mai încărca în proiectele tale." -#: src/app/main/ui/dashboard/fonts.cljs:330 msgid "modals.delete-font.title" msgstr "Ștergere font" -#: src/app/main/ui/workspace/context_menu.cljs:522, src/app/main/ui/workspace/sidebar/sitemap.cljs:45 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs msgid "modals.delete-page.body" msgstr "Ești sigur că dorești să ștergi această pagină?" -#: src/app/main/ui/workspace/context_menu.cljs:521, src/app/main/ui/workspace/sidebar/sitemap.cljs:44 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs msgid "modals.delete-page.title" msgstr "Șterge pagină" -#: src/app/main/ui/dashboard/project_menu.cljs:69 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "modals.delete-project-confirm.accept" msgstr "Șterge proiect" -#: src/app/main/ui/dashboard/project_menu.cljs:68 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "modals.delete-project-confirm.message" msgstr "Ești sigur că dorești să ștergi acest proiect?" -#: src/app/main/ui/dashboard/project_menu.cljs:67 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "modals.delete-project-confirm.title" msgstr "Șterge proiect" -#: src/app/main/ui/delete_shared.cljs:51 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.accept" msgid_plural "modals.delete-shared-confirm.accept" msgstr[0] "Șterge fișier" msgstr[1] "Șterge fișiere" msgstr[2] "Șterge fișierele" -#: src/app/main/ui/delete_shared.cljs:55 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.activated.no-files-message" msgid_plural "modals.delete-shared-confirm.activated.no-files-message" msgstr[0] "Nu este activat în niciun fișier." msgstr[1] "Nu sunt activate în niciun fișier." msgstr[2] "Nu sunt activate în niciun fișier." -#: src/app/main/ui/delete_shared.cljs:57 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.activated.scd-message" msgid_plural "modals.delete-shared-confirm.activated.scd-message" msgstr[0] "Această librărie este activată aici: " msgstr[1] "Aceste librării sunt activate aici: " msgstr[2] "Aceste librării sunt activate aici: " -#: src/app/main/ui/delete_shared.cljs:46 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.message" msgid_plural "modals.delete-shared-confirm.message" msgstr[0] "Ești sigur că vrei sa ștergi acest fișier?" msgstr[1] "Ești sigur că vrei sa ștergi aceste fișiere?" msgstr[2] "Ești sigur că vrei sa ștergi aceste fișiere?" -#: src/app/main/ui/delete_shared.cljs:41 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.title" msgid_plural "modals.delete-shared-confirm.title" msgstr[0] "Se șterge fișierul" msgstr[1] "Se șterg fișierele" msgstr[2] "Se șterg fișierele" -#: src/app/main/ui/dashboard/sidebar.cljs:435 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.delete-team-confirm.accept" msgstr "Șterge echipă" -#: src/app/main/ui/dashboard/sidebar.cljs:434 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.delete-team-confirm.message" msgstr "" "Ești sigur că dorești să ștergi această echipă? Toate proiectele și " "fișierele asociate acesteia vor fi permanent șterse." -#: src/app/main/ui/dashboard/sidebar.cljs:433 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.delete-team-confirm.title" msgstr "Ștergere echipă în curs" -#: src/app/main/ui/dashboard/team.cljs:427 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.delete-team-member-confirm.accept" msgstr "Elimină membru" -#: src/app/main/ui/dashboard/team.cljs:426 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.delete-team-member-confirm.message" msgstr "Ești sigur că dorești să elimini acest membru din echipă?" -#: src/app/main/ui/dashboard/team.cljs:425 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.delete-team-member-confirm.title" msgstr "Elimină un membru al echipei" -#: src/app/main/ui/delete_shared.cljs:59 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-unpublish-shared-confirm.activated.hint" msgid_plural "modals.delete-unpublish-shared-confirm.activated.hint" msgstr[0] "" @@ -2169,1307 +1988,1162 @@ msgstr[2] "" "Obiectele care au fost folosite deja în aceste fișiere vor rămâne acolo " "(niciun design nu va fi stricat)." -#: src/app/main/ui/dashboard/team.cljs:942 msgid "modals.delete-webhook.accept" msgstr "Ștergeți webhook" -#: src/app/main/ui/dashboard/team.cljs:941 msgid "modals.delete-webhook.message" msgstr "Sunteți sigur că doriți să ștergeți acest webhook?" -#: src/app/main/ui/dashboard/team.cljs:940 msgid "modals.delete-webhook.title" msgstr "Ștergerea webhook-ului" -#: src/app/main/ui/dashboard/team.cljs:872 msgid "modals.edit-webhook.submit-label" msgstr "Editați webhook" -#: src/app/main/ui/dashboard/team.cljs:837 msgid "modals.edit-webhook.title" msgstr "Editați webhook" -#: src/app/main/ui/dashboard/team.cljs:218 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.invite-member-confirm.accept" msgstr "Trimite invitație" -#: src/app/main/ui/dashboard/team.cljs:213, src/app/main/ui/onboarding/team_choice.cljs:156 msgid "modals.invite-member.emails" msgstr "E-mailuri, separate prin virgulă" -#: src/app/main/ui/dashboard/team.cljs:197 msgid "modals.invite-member.repeated-invitation" msgstr "" "Unele e-mailuri provin de la membri actuali ai echipei. Invitațiile lor nu " "vor fi trimise." -#: src/app/main/ui/dashboard/team.cljs:190 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.invite-team-member.title" msgstr "Invitați membri în echipă" -#: src/app/main/ui/dashboard/sidebar.cljs:423, src/app/main/ui/dashboard/team.cljs:393 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-close-confirm.hint" msgstr "" "Deoarece ești singurul membru al acestei echipe, echipa va fi ștearsă " "împreună cu proiectele și fișierele sale." -#: src/app/main/ui/dashboard/sidebar.cljs:422, src/app/main/ui/dashboard/team.cljs:392 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-close-confirm.message" msgstr "Sigur doriți să părăsiți echipa %s?" -#: src/app/main/ui/dashboard/change_owner.cljs:59 msgid "modals.leave-and-reassign.forbidden" msgstr "" "Nu puteţi părăsi echipa dacă nu există un alt membru care să devină " "administrator. Aţi putea şterge echipa." -#: src/app/main/ui/dashboard/change_owner.cljs:55 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-reassign.hint1" msgstr "Ești administratorul echipei %s." -#: src/app/main/ui/dashboard/change_owner.cljs:78 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-reassign.promote-and-leave" msgstr "Promovează şi părăseşte echipa" -#: src/app/main/ui/dashboard/change_owner.cljs:34 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-reassign.select-member-to-promote" msgstr "Selectează un membru pentru promovare" -#: src/app/main/ui/dashboard/change_owner.cljs:49 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-reassign.title" msgstr "Selectează un membru pentru promovare" -#: src/app/main/ui/dashboard/sidebar.cljs:402, src/app/main/ui/dashboard/sidebar.cljs:424, src/app/main/ui/dashboard/team.cljs:394, src/app/main/ui/dashboard/team.cljs:416 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-confirm.accept" msgstr "Părăsește echipa" -#: src/app/main/ui/dashboard/sidebar.cljs:401, src/app/main/ui/dashboard/team.cljs:415 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-confirm.message" msgstr "Ești sigur că dorești să părăsești această echipă?" -#: src/app/main/ui/dashboard/sidebar.cljs:400, src/app/main/ui/dashboard/sidebar.cljs:421, src/app/main/ui/dashboard/team.cljs:391, src/app/main/ui/dashboard/team.cljs:414 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-confirm.title" msgstr "Părăsire echipă în curs" -#: src/app/main/ui/workspace/main_menu.cljs:266, src/app/main/ui/workspace/nudge.cljs:47 +#: src/app/main/ui/workspace/nudge.cljs msgid "modals.nudge-title" msgstr "Suma înghiontului" -#: src/app/main/ui/dashboard/team.cljs:340 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.accept" msgstr "Promovează" -#: src/app/main/ui/dashboard/team.cljs:339 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.hint" msgstr "" "Dacă transferați dreptul de proprietate, vă veți schimba rolul în " "Administrator, pierzând unele permisiuni asupra acestei echipe. " -#: src/app/main/ui/dashboard/team.cljs:338 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.message" msgstr "Ești sigur că dorești să promovezi acest utilizator ca deținător al echipei?" -#: src/app/main/ui/dashboard/team.cljs:337 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.title" msgstr "Confirmare promovare" -#: src/app/main/ui/workspace/libraries.cljs:188 msgid "modals.publish-empty-library.accept" msgstr "Publicați" -#: src/app/main/ui/workspace/libraries.cljs:187 msgid "modals.publish-empty-library.message" msgstr "Librăria dvs. este goală. Sunteți sigur că doriți să o publicați?" -#: src/app/main/ui/workspace/libraries.cljs:186 msgid "modals.publish-empty-library.title" msgstr "Publicați librărie goală" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.remove-shared-confirm.accept" msgstr "Elimină din Colecțiile Distribuite" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.remove-shared-confirm.hint" msgstr "" "O dată șters din Colecțiile Distribuite, toate fișierele acestei colecții " "nu vor mai fi disponibile altora." -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.remove-shared-confirm.message" msgstr "Șterge “%s” din Colecții Distribuite" -#: src/app/main/ui/workspace/nudge.cljs:53 +#: src/app/main/ui/workspace/nudge.cljs msgid "modals.small-nudge" msgstr "Înghiont mic" -#: src/app/main/ui/delete_shared.cljs:52 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.unpublish-shared-confirm.accept" msgid_plural "modals.unpublish-shared-confirm.accept" msgstr[0] "Anulați publicarea" msgstr[1] "Anulați publicarea" msgstr[2] "Anulați publicarea" -#: src/app/main/ui/delete_shared.cljs:47 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.unpublish-shared-confirm.message" msgid_plural "modals.unpublish-shared-confirm.message" msgstr[0] "Sigur doriți să anulați publicarea acestei biblioteci?" msgstr[1] "Sigur doriți să anulați publicarea acestor biblioteci?" msgstr[2] "Sigur doriți să anulați publicarea acestor biblioteci?" -#: src/app/main/ui/delete_shared.cljs:42 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.unpublish-shared-confirm.title" msgid_plural "modals.unpublish-shared-confirm.title" msgstr[0] "Anulează publicarea bibliotecii" msgstr[1] "Anulează publicarea bibliotecilor" msgstr[2] "Anulează publicarea bibliotecilor" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component-in-bulk.hint" msgstr "" "Ești pe cale de a actualiza componentele dintr-o bibliotecă partajată. " "Acest lucru poate afecta alte fișiere care o folosesc." -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component-in-bulk.message" msgstr "Actualizează componentele într-o bibliotecă partajată" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:380 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.accept" msgstr "Actualizare componentă" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:379 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.cancel" msgstr "Anulează" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:378 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.hint" msgstr "" "Actualizezi o componentă dintr-o colecţie distribuită. Pot fi afectate alte " "fişiere ce o folosesc." -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:377 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.message" msgstr "Actualizaţi o componentă dintr-o colecţie distribuită" -#: src/app/main/data/common.cljs:71 +#: src/app/main/data/common.cljs msgid "notifications.by-code.upgrade-version" msgstr "O versiune nouă este valabilă, vă rugăm să reîncărcați pagina" -#: src/app/main/ui/dashboard/team.cljs:154, src/app/main/ui/dashboard/team.cljs:595 +#: src/app/main/ui/dashboard/team.cljs msgid "notifications.invitation-email-sent" msgstr "Invitaţie trimisă cu succes" -#: src/app/main/ui/dashboard/team.cljs:616 +#: src/app/main/ui/dashboard/team.cljs msgid "notifications.invitation-link-copied" msgstr "Link de invitație copiat" -#: src/app/main/ui/settings/delete_account.cljs:24 +#: src/app/main/ui/settings/delete_account.cljs msgid "notifications.profile-deletion-not-allowed" msgstr "Nu vă puteți șterge profilul. Reatribuiți-vă echipele înainte de a continua." -#: src/app/main/ui/settings/options.cljs:29, src/app/main/ui/settings/profile.cljs:35 +#: src/app/main/ui/settings/profile.cljs, src/app/main/ui/settings/options.cljs msgid "notifications.profile-saved" msgstr "Profil salvat cu succes!" -#: src/app/main/ui/settings/change_email.cljs:63 +#: src/app/main/ui/settings/change_email.cljs msgid "notifications.validation-email-sent" msgstr "Un e-mail de verificare a fost trimis la %s. Verifică-ţi adresa de e-mail!" -#, unused msgid "onboarding-v2.before-start.desc1" msgstr "" "Trebuie să știți că există o mulțime de resurse disponibile pentru a vă " "ajuta să începeți cu Penpot, cum ar fi Ghidul utilizatorului și canalul " "nostru de Youtube." -#, unused msgid "onboarding-v2.before-start.desc2" msgstr "" "Informații detaliate despre cum să utilizați Penpot. De la prototipare la " "organizarea sau partajarea design-urilor." -#, unused msgid "onboarding-v2.before-start.desc2.title" msgstr "Ghid utilizator" -#, unused msgid "onboarding-v2.before-start.desc3" msgstr "" "Puteți urmări tutorialele noastre și tutorialele realizate de comunitatea " "noastră." -#, unused msgid "onboarding-v2.before-start.desc3.title" msgstr "Tutoriale video" -#, unused msgid "onboarding-v2.before-start.title" msgstr "Înainte de a începe" -#: src/app/main/ui/onboarding/newsletter.cljs:63 msgid "onboarding-v2.newsletter.desc" msgstr "" "Abonați-vă la newsletter-ul Penpot pentru a fi la curent cu progresul și " "noutățile dezvoltării produsului." -#: src/app/main/ui/onboarding/newsletter.cljs:83 msgid "onboarding-v2.newsletter.news" msgstr "" "Trimite-mi noutăți despre Penpot (postări pe blog, tutoriale video, " "streaming...)." -#: src/app/main/ui/onboarding/newsletter.cljs:91 msgid "onboarding-v2.newsletter.privacy1" msgstr "Ne pasă de confidențialitate, aici puteți citi " -#: src/app/main/ui/onboarding/newsletter.cljs:97 msgid "onboarding-v2.newsletter.privacy2" msgstr "" "Vă vom trimite doar e-mailuri relevante. Vă puteți dezabona oricând prin " "linkul de dezabonare din oricare dintre buletinele noastre informative." -#: src/app/main/ui/onboarding/newsletter.cljs:71 msgid "onboarding-v2.newsletter.updates" msgstr "Trimite-mi actualizări de produse (funcții noi, lansări, remedieri...)." -#, unused msgid "onboarding-v2.welcome.desc1" msgstr "" "Penpot este Open Source și este făcut de Kaleidos, precum și de comunitate, " "unde mulți oameni deja se ajută reciproc. Toată lumea poate colabora prin:" -#, unused msgid "onboarding-v2.welcome.desc2" msgstr "" "Un spațiu public pentru a învăța, a împărtăși și a discuta despre Penpot, " "prezentul și viitorul său cu întreaga comunitate și echipa principală " "Penpot." -#, unused msgid "onboarding-v2.welcome.desc2.title" msgstr "Participând în Comunitate" -#, unused msgid "onboarding-v2.welcome.desc3" msgstr "" "Unde veți găsi cum să colaborați cu traduceri, solicitări de funcții, " "contribuții de bază, vânătoare de erori…" -#, unused msgid "onboarding-v2.welcome.desc3.title" msgstr "Ghid de contribuție" -#: src/app/main/ui/onboarding/team_choice.cljs:31 msgid "onboarding-v2.welcome.title" msgstr "Bun venit la Penpot!" -#: src/app/main/ui/onboarding/team_choice.cljs:215 msgid "onboarding.choice.team-up.create-team-desc" msgstr "După ce îți denumești echipa, vei putea invita oameni să se alăture." -#: src/app/main/ui/onboarding/team_choice.cljs:224 msgid "onboarding.choice.team-up.create-team-placeholder" msgstr "Introduceți numele echipei" -#: src/app/main/ui/dashboard/projects.cljs:89, src/app/main/ui/onboarding/team_choice.cljs:140 msgid "onboarding.choice.team-up.invite-members" msgstr "Invitați membri" -#: src/app/main/ui/onboarding/team_choice.cljs:141 msgid "onboarding.choice.team-up.invite-members-info" msgstr "" "Nu uitați să includeți pe toată lumea. Dezvoltatori, designeri, manageri... " "diversitatea se adaugă :)" -#: src/app/main/ui/dashboard/team.cljs:202, src/app/main/ui/onboarding/team_choice.cljs:146 msgid "onboarding.choice.team-up.roles" msgstr "Invitați cu rolul:" -#, unused msgid "onboarding.newsletter.accept" msgstr "Da, abonează" -#: src/app/main/ui/onboarding/newsletter.cljs:40 msgid "onboarding.newsletter.acceptance-message" msgstr "" "Solicitarea dvs. de abonament a fost trimisă, vă vom trimite un e-mail " "pentru a o confirma." -#: src/app/main/ui/onboarding/newsletter.cljs:95 msgid "onboarding.newsletter.policy" msgstr "Politica de Confidențialitate." -#: src/app/main/ui/onboarding/newsletter.cljs:60 msgid "onboarding.newsletter.title" msgstr "Vrei să primești știri Penpot?" -#: src/app/main/ui/onboarding/questions.cljs:118 -msgid "onboarding.questions.lets-get-started" -msgstr "Să începem!" - -#: src/app/main/ui/onboarding/questions.cljs:273 -msgid "onboarding.questions.team-size.11-30" -msgstr "11-30" - -#: src/app/main/ui/onboarding/questions.cljs:274 -msgid "onboarding.questions.team-size.2-10" -msgstr "2-10" - -#: src/app/main/ui/onboarding/questions.cljs:272 -msgid "onboarding.questions.team-size.31-50" -msgstr "31-50" - -#: src/app/main/ui/onboarding/questions.cljs:271 -msgid "onboarding.questions.team-size.more-than-50" -msgstr "Mai mult de 50" - -#: src/app/main/ui/onboarding/questions.cljs:276 -msgid "onboarding.questions.team-size.personal-project" -msgstr "Lucrez la un proiect personal" - -#: src/app/main/ui/onboarding/team_choice.cljs:213 msgid "onboarding.team-modal.create-team" msgstr "Creați o echipă" -#: src/app/main/ui/onboarding/team_choice.cljs:35 msgid "onboarding.team-modal.create-team-desc" msgstr "" "O echipă vă permite să colaborați cu alți utilizatori Penpot care lucrează " "în aceleași fișiere și proiecte." -#: src/app/main/ui/onboarding/team_choice.cljs:40 msgid "onboarding.team-modal.create-team-feature-1" msgstr "Fișiere și proiecte nelimitate" -#: src/app/main/ui/onboarding/team_choice.cljs:44 msgid "onboarding.team-modal.create-team-feature-2" msgstr "Ediția multi-utilizator" -#: src/app/main/ui/onboarding/team_choice.cljs:48 msgid "onboarding.team-modal.create-team-feature-3" msgstr "Managementul rolurilor" -#: src/app/main/ui/onboarding/team_choice.cljs:52 msgid "onboarding.team-modal.create-team-feature-4" msgstr "Membri nelimitați" -#: src/app/main/ui/onboarding/team_choice.cljs:56 msgid "onboarding.team-modal.create-team-feature-5" msgstr "100% gratuit!" -#: src/app/main/ui/onboarding/templates.cljs:78 msgid "onboarding.templates.subtitle" msgstr "Aici sunt câteva șabloane." -#: src/app/main/ui/onboarding/templates.cljs:77 msgid "onboarding.templates.title" msgstr "Începeți să proiectați" -#, unused msgid "onboarding.welcome.alt" msgstr "Penpot" -#: src/app/main/ui/auth/recovery.cljs:99 +#: src/app/main/ui/auth/recovery.cljs msgid "profile.recovery.go-to-login" msgstr "Mergi la autentificare" -#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:221 +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.team-size.11-30" +msgstr "11-30" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.team-size.2-10" +msgstr "2-10" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.team-size.31-50" +msgstr "31-50" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.adobe-xd" +msgstr "Adobe XD" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.canva" +msgstr "Canva" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.figma" +msgstr "Figma" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.freelancer" +msgstr "Sunt un freelancer" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.invision" +msgstr "InVision" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.lets-get-started" +msgstr "Să începem!" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.team-size.more-than-50" +msgstr "Mai mult de 50" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.next" +msgstr "Următor" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.other" +msgstr "Alta (specificați)" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.team-size.personal-project" +msgstr "Lucrez la un proiect personal" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.previous" +msgstr "Anterior" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.select-option" +msgstr "Selectați opțiune" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.sketch" +msgstr "Sketch" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.start" +msgstr "Începeți" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.student-teacher" +msgstr "Student sau profesor" + +#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, msgid "settings.detach" msgstr "Detașați" -#: src/app/main/ui/viewer/inspect/exports.cljs:147, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:631, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:137, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:148, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:188, src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:158, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:399, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:410, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:430, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:441, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:458, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:472, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:309, src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:183, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:373, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:389, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:245, src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:172 +#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs msgid "settings.multiple" msgstr "Multiple" # SECTIONS -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:414 msgid "shortcut-section.basics" msgstr "Bazele" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:420 msgid "shortcut-section.dashboard" msgstr "Bord" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:423 msgid "shortcut-section.viewer" msgstr "Vizualizator" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:417 msgid "shortcut-section.workspace" msgstr "Spațiu de lucru" # SUBSECTIONS -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:56 msgid "shortcut-subsection.alignment" msgstr "Aliniere" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:57 msgid "shortcut-subsection.edit" msgstr "Editează" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:58 msgid "shortcut-subsection.general-dashboard" msgstr "Generic" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:59 msgid "shortcut-subsection.general-viewer" msgstr "Generic" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:60 msgid "shortcut-subsection.main-menu" msgstr "Meniul principal" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:61 msgid "shortcut-subsection.modify-layers" msgstr "Modifică straturi" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:62 msgid "shortcut-subsection.navigation-dashboard" msgstr "Navigație" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:63 msgid "shortcut-subsection.navigation-viewer" msgstr "Navigație" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:64 msgid "shortcut-subsection.navigation-workspace" msgstr "Navigație" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:65 msgid "shortcut-subsection.panels" msgstr "Panouri" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:66 msgid "shortcut-subsection.path-editor" msgstr "Drumuri" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:67 msgid "shortcut-subsection.shape" msgstr "Forme" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:68 msgid "shortcut-subsection.text-editor" msgstr "Texte" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:69 msgid "shortcut-subsection.tools" msgstr "Unelte" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:70 msgid "shortcut-subsection.zoom-viewer" msgstr "Zoom" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:71 msgid "shortcut-subsection.zoom-workspace" msgstr "Zoom" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:72 msgid "shortcuts.add-comment" msgstr "Comentarii" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:73 msgid "shortcuts.add-node" msgstr "Adaugă nod" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:74 msgid "shortcuts.align-bottom" msgstr "Aliniați jos" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:75 msgid "shortcuts.align-center" msgstr "Aliniere la centru" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:76 msgid "shortcuts.align-hcenter" msgstr "Aliniați centrul orizontal" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:77 msgid "shortcuts.align-justify" msgstr "Aliniere justificată" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:78 msgid "shortcuts.align-left" msgstr "Aliniați stânga" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:79 msgid "shortcuts.align-right" msgstr "Aliniați dreapta" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:80 msgid "shortcuts.align-top" msgstr "Aliniați sus" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:81 msgid "shortcuts.align-vcenter" msgstr "Aliniați centrul vertical" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:82 msgid "shortcuts.artboard-selection" msgstr "Creează tablă din selecție" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:83 msgid "shortcuts.bold" msgstr "Comutare bold" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:84 msgid "shortcuts.bool-difference" msgstr "Diferența booleană" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:85 msgid "shortcuts.bool-exclude" msgstr "Exclude boolean" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:86 msgid "shortcuts.bool-intersection" msgstr "Intersecție boolean" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:87 msgid "shortcuts.bool-union" msgstr "Uniune boolean" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:88 msgid "shortcuts.bring-back" msgstr "Trimite la spate" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:89 msgid "shortcuts.bring-backward" msgstr "Trimite în spate" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:90 msgid "shortcuts.bring-forward" msgstr "Aduce în față" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:91 msgid "shortcuts.bring-front" msgstr "Aduce în față" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:92 msgid "shortcuts.clear-undo" msgstr "Ștergeți anularea" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:93 msgid "shortcuts.copy" msgstr "Copiază" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:94 msgid "shortcuts.create-component" msgstr "Creează component" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:95 msgid "shortcuts.create-new-project" msgstr "Creează nou" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:96 msgid "shortcuts.cut" msgstr "Taie" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:97 msgid "shortcuts.decrease-zoom" msgstr "Micșorează" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:98 msgid "shortcuts.delete" msgstr "Șterge" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:99 msgid "shortcuts.delete-node" msgstr "Șterge nod" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:100 msgid "shortcuts.detach-component" msgstr "Detașează component" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:101 msgid "shortcuts.draw-curve" msgstr "Curbă" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:102 msgid "shortcuts.draw-ellipse" msgstr "Elipsă" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:103 msgid "shortcuts.draw-frame" msgstr "Tablă" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:104 msgid "shortcuts.draw-nodes" msgstr "Trasează drum" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:105 msgid "shortcuts.draw-path" msgstr "Drum" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:106 msgid "shortcuts.draw-rect" msgstr "Dreptunghi" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:107 msgid "shortcuts.draw-text" msgstr "Text" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:108 msgid "shortcuts.duplicate" msgstr "Duplică" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:109 msgid "shortcuts.escape" msgstr "Anulează" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:110 msgid "shortcuts.export-shapes" msgstr "Exportați formele" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:111 msgid "shortcuts.fit-all" msgstr "Măriți pentru a încăpea tot" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:112 msgid "shortcuts.flip-horizontal" msgstr "Întoarceți pe orizontală" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:113 msgid "shortcuts.flip-vertical" msgstr "Întoarceți pe verticală" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:114 msgid "shortcuts.font-size-dec" msgstr "Reducere dimensiune font" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:115 msgid "shortcuts.font-size-inc" msgstr "Creștere dimensiune font" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:116 msgid "shortcuts.go-to-drafts" msgstr "Accesați schițele" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:117 msgid "shortcuts.go-to-libs" msgstr "Accesați bibliotecile partajate" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:118 msgid "shortcuts.go-to-search" msgstr "Căutați" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:119 msgid "shortcuts.group" msgstr "Grup" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:120 msgid "shortcuts.h-distribute" msgstr "Distribuiți pe orizontală" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:121 msgid "shortcuts.hide-ui" msgstr "Arată/ascunde interfața" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:122 msgid "shortcuts.increase-zoom" msgstr "Măriți" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:123 msgid "shortcuts.insert-image" msgstr "Inserați imagine" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:124 msgid "shortcuts.italic" msgstr "Comutare cursiv" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:125 msgid "shortcuts.join-nodes" msgstr "Uniți noduri" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:126 msgid "shortcuts.letter-spacing-dec" msgstr "Reducere spațiere litere" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:127 msgid "shortcuts.letter-spacing-inc" msgstr "Creștere spațiere litere" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:128 msgid "shortcuts.line-height-dec" msgstr "Reducere înălțime linie" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:129 msgid "shortcuts.line-height-inc" msgstr "Creștere înălțime linie" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:130 msgid "shortcuts.line-through" msgstr "Comutare tăiere" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:131 msgid "shortcuts.make-corner" msgstr "Faceți colț" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:132 msgid "shortcuts.make-curve" msgstr "Faceți o curbă" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:133 msgid "shortcuts.mask" msgstr "Mască" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:134 msgid "shortcuts.merge-nodes" msgstr "Îmbinați nodurile" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:135 msgid "shortcuts.move" msgstr "Mutați" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:136 msgid "shortcuts.move-fast-down" msgstr "Mutați jos rapid" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:137 msgid "shortcuts.move-fast-left" msgstr "Mutați în stânga rapid" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:138 msgid "shortcuts.move-fast-right" msgstr "Mutați în dreapta rapid" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:139 msgid "shortcuts.move-fast-up" msgstr "Mutați sus rapid" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:140 msgid "shortcuts.move-nodes" msgstr "Mutați noduri" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:141 msgid "shortcuts.move-unit-down" msgstr "Mutați jos" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:142 msgid "shortcuts.move-unit-left" msgstr "Mutați în stânga" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:143 msgid "shortcuts.move-unit-right" msgstr "Mutați în dreapta" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:144 msgid "shortcuts.move-unit-up" msgstr "Mutați sus" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:145 msgid "shortcuts.next-frame" msgstr "Următoarea tablă" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:516 msgid "shortcuts.not-found" msgstr "Nu s-au găsit comenzi rapide" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:146 msgid "shortcuts.opacity-0" msgstr "Setați opacitatea la 100%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:147 msgid "shortcuts.opacity-1" msgstr "Setați opacitatea la 10%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:148 msgid "shortcuts.opacity-2" msgstr "Setați opacitatea la 20%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:149 msgid "shortcuts.opacity-3" msgstr "Setați opacitatea la 30%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:150 msgid "shortcuts.opacity-4" msgstr "Setați opacitatea la 40%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:151 msgid "shortcuts.opacity-5" msgstr "Setați opacitatea la 50%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:152 msgid "shortcuts.opacity-6" msgstr "Setați opacitatea la 60%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:153 msgid "shortcuts.opacity-7" msgstr "Setați opacitatea la 70%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:154 msgid "shortcuts.opacity-8" msgstr "Setați opacitatea la 80%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:155 msgid "shortcuts.opacity-9" msgstr "Setați opacitatea la 90%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:156 msgid "shortcuts.open-color-picker" msgstr "Selector de culoare" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:157 msgid "shortcuts.open-comments" msgstr "Accesați secțiunea de comentarii ale spectatorului" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:158 msgid "shortcuts.open-dashboard" msgstr "Accesați tabloul de bord" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:159 msgid "shortcuts.open-inspect" msgstr "Mergeți la secțiunea de inspecție a vizualizatorului" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:160 msgid "shortcuts.open-interactions" msgstr "Accesați secțiunea de interacțiuni ale spectatorului" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:161 msgid "shortcuts.open-viewer" msgstr "Accesați secțiunea de interacțiuni ale spectatorului" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:162 msgid "shortcuts.open-workspace" msgstr "Accesați spațiul de lucru" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:260 msgid "shortcuts.or" msgstr " sau " -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:163 msgid "shortcuts.paste" msgstr "Lipește" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:164 msgid "shortcuts.prev-frame" msgstr "Tabla anterioară" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:165 msgid "shortcuts.redo" msgstr "Refaceți" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:166 msgid "shortcuts.reset-zoom" msgstr "Resetați zoomul" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:168 msgid "shortcuts.search-placeholder" msgstr "Căutați comenzi rapide" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:169 msgid "shortcuts.select-all" msgstr "Selectează tot" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:170 msgid "shortcuts.select-next" msgstr "Selectare strat următor" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:171 msgid "shortcuts.select-parent-layer" msgstr "Selectați strat părinte" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:172 msgid "shortcuts.select-prev" msgstr "Selectare strat anterior" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:173 msgid "shortcuts.separate-nodes" msgstr "Noduri separate" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:174 msgid "shortcuts.show-pixel-grid" msgstr "Afișați/ascundeți grila de pixeli" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:175 msgid "shortcuts.show-shortcuts" msgstr "Afișați/ascundeți comenzile rapide" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:176 msgid "shortcuts.snap-nodes" msgstr "Fixare la noduri" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:177 msgid "shortcuts.snap-pixel-grid" msgstr "Fixare la grila de pixeli" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:178 msgid "shortcuts.start-editing" msgstr "Începeți editarea" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:179 msgid "shortcuts.start-measure" msgstr "Începeți măsurarea" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:180 msgid "shortcuts.stop-measure" msgstr "Opriți măsurarea" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:181 msgid "shortcuts.text-align-center" msgstr "Aliniați la centru" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:182 msgid "shortcuts.text-align-justify" msgstr "Aliniați justificat" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:183 msgid "shortcuts.text-align-left" msgstr "Aliniați la stânga" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:184 msgid "shortcuts.text-align-right" msgstr "Aliniați la dreapta" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:185 msgid "shortcuts.thumbnail-set" msgstr "Setați miniaturile" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:496, src/app/main/ui/workspace/sidebar/shortcuts.cljs:505 +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs msgid "shortcuts.title" msgstr "Comenzi rapide de la tastatură" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:186 msgid "shortcuts.toggle-alignment" msgstr "Comutați alinierea dinamică" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:187 msgid "shortcuts.toggle-assets" msgstr "Comutați obiectele" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:188 msgid "shortcuts.toggle-colorpalette" msgstr "Comutați paleta de culori" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:189 msgid "shortcuts.toggle-focus-mode" msgstr "Comutați modul de focus" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:190 msgid "shortcuts.toggle-fullscreen" msgstr "Comutați la ecran complet" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:192 msgid "shortcuts.toggle-history" msgstr "Comutați istoricul" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:193 msgid "shortcuts.toggle-layers" msgstr "Comutați straturile" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:194 msgid "shortcuts.toggle-layout-flex" msgstr "Adăugare/eliminare aspect flexibil" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:196 msgid "shortcuts.toggle-lock" msgstr "Blocați selecția" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:197 msgid "shortcuts.toggle-lock-size" msgstr "Blocați proporțiile" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:202 msgid "shortcuts.toggle-textpalette" msgstr "Comutați paleta de text" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:204 msgid "shortcuts.toggle-visibility" msgstr "Comutați vizibilitatea" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:205 msgid "shortcuts.toggle-zoom-style" msgstr "Comutați stilul zoomului" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:206 msgid "shortcuts.underline" msgstr "Comutare subliniere" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:207 msgid "shortcuts.undo" msgstr "Anulați" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:208 msgid "shortcuts.ungroup" msgstr "Degrupați" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:209 msgid "shortcuts.unmask" msgstr "Demascați" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:210 msgid "shortcuts.v-distribute" msgstr "Distribuiți vertical" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:211 msgid "shortcuts.zoom-lense-decrease" msgstr "Reducere obiectiv de zoom" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:212 msgid "shortcuts.zoom-lense-increase" msgstr "Creștere obiectiv de zoom" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:213 msgid "shortcuts.zoom-selected" msgstr "Mărește la selecție" -#: src/app/main/ui/dashboard/team.cljs:771 +#: src/app/main/ui/dashboard/team.cljs msgid "team.webhooks.max-length" msgstr "Numele webhook-ului trebuie să conțină maxim 2048 caractere." -#: src/app/main/ui/dashboard/files.cljs:158 +#: src/app/main/ui/dashboard/files.cljs msgid "title.dashboard.files" msgstr "%s - Penpot" -#: src/app/main/ui/dashboard/fonts.cljs:37 +#: src/app/main/ui/dashboard/fonts.cljs msgid "title.dashboard.font-providers" msgstr "Furnizori de Fonturi - %s - Penpot" -#: src/app/main/ui/dashboard/fonts.cljs:36 +#: src/app/main/ui/dashboard/fonts.cljs msgid "title.dashboard.fonts" msgstr "Fonturi - %s - Penpot" -#: src/app/main/ui/dashboard/projects.cljs:320 +#: src/app/main/ui/dashboard/projects.cljs msgid "title.dashboard.projects" msgstr "Proiecte - %s - Penpot" -#: src/app/main/ui/dashboard/search.cljs:32 +#: src/app/main/ui/dashboard/search.cljs msgid "title.dashboard.search" msgstr "Caută - %s - Penpot" -#: src/app/main/ui/dashboard/libraries.cljs:44 +#: src/app/main/ui/dashboard/libraries.cljs msgid "title.dashboard.shared-libraries" msgstr "Biblioteci Distribuite - %s - Penpot" -#: src/app/main/ui/auth/verify_token.cljs:68, src/app/main/ui/auth.cljs:54 +#: src/app/main/ui/auth/verify_token.cljs, src/app/main/ui/auth.cljs msgid "title.default" msgstr "Penpot - Libertate în Design pentru Echipe" -#: src/app/main/ui/settings/access_tokens.cljs:292 +#: src/app/main/ui/settings/access-tokens.cljs msgid "title.settings.access-tokens" msgstr "Profil - Jetoane acces" -#: src/app/main/ui/settings/feedback.cljs:110 +#: src/app/main/ui/settings/feedback.cljs msgid "title.settings.feedback" msgstr "Oferă feedback - Penpot" -#: src/app/main/ui/settings/options.cljs:80 +#: src/app/main/ui/settings/options.cljs msgid "title.settings.options" msgstr "Setări - Penpot" -#: src/app/main/ui/settings/password.cljs:115 +#: src/app/main/ui/settings/password.cljs msgid "title.settings.password" msgstr "Parolă - Penpot" -#: src/app/main/ui/settings/profile.cljs:115 +#: src/app/main/ui/settings/profile.cljs msgid "title.settings.profile" msgstr "Profil - Penpot" -#: src/app/main/ui/dashboard/team.cljs:727 +#: src/app/main/ui/dashboard/team.cljs msgid "title.team-invitations" msgstr "Invitații -%s - Penpot" -#: src/app/main/ui/dashboard/team.cljs:493 +#: src/app/main/ui/dashboard/team.cljs msgid "title.team-members" msgstr "Membri - %s - Penpot" -#: src/app/main/ui/dashboard/team.cljs:1036 +#: src/app/main/ui/dashboard/team.cljs msgid "title.team-settings" msgstr "Setări - %s - Penpot" -#: src/app/main/ui/dashboard/team.cljs:989 msgid "title.team-webhooks" msgstr "Webhooks - %s - Penpot" -#: src/app/main/ui/viewer.cljs:419 +#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs msgid "title.viewer" msgstr "%s - Vizualizare - Penpot" -#: src/app/main/ui/workspace.cljs:190 +#: src/app/main/ui/workspace.cljs msgid "title.workspace" msgstr "%s - Penpot" -#: src/app/main/ui.cljs:144 msgid "viewer.breaking-change.description" msgstr "" "Acest link care poate fi partajat nu mai este valid. Creați unul nou sau " "cereți proprietarului unul nou." -#: src/app/main/ui.cljs:143 msgid "viewer.breaking-change.message" msgstr "Scuze!" -#: src/app/main/ui/viewer.cljs:569 +#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs msgid "viewer.empty-state" msgstr "Nu există ferestre disponibile pe această pagină." -#: src/app/main/ui/viewer.cljs:574 +#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs msgid "viewer.frame-not-found" msgstr "Fereastra nu există." -#: src/app/main/ui/viewer/header.cljs:336 msgid "viewer.header.comments-section" msgstr "Comentarii (%s)" -#: src/app/main/ui/viewer/interactions.cljs:292 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.dont-show-interactions" msgstr "Nu afişa interacţiunile" -#: src/app/main/ui/viewer/header.cljs:188 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.fullscreen" msgstr "Ecran complet" -#: src/app/main/ui/viewer/header.cljs:345 msgid "viewer.header.inspect-section" msgstr "Inspectați (%s)" -#: src/app/main/ui/viewer/interactions.cljs:282 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.interactions" msgstr "Interacţiunile" -#: src/app/main/ui/viewer/header.cljs:327 msgid "viewer.header.interactions-section" msgstr "Interacțiuni (%s)" -#: src/app/main/ui/viewer/share_link.cljs:187 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.share.copy-link" msgstr "Copiază link" -#: src/app/main/ui/viewer/interactions.cljs:300 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.show-interactions" msgstr "Afişează interacţiunile" -#: src/app/main/ui/viewer/interactions.cljs:311 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.show-interactions-on-click" msgstr "Afişează interacţiunile la click" -#: src/app/main/ui/viewer/header.cljs:231 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.sitemap" msgstr "Harta site-ului" -#: src/app/main/ui/dashboard/team.cljs:948 +#, fuzzy msgid "webhooks.last-delivery.success" msgstr "Ultima livrare a fost cu succes." -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:58 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.hcenter" msgstr "Aliniază orizontal (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:74 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.hdistribute" msgstr "Introdu spaţierea orizontală (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:50 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.hleft" msgstr "Aliniază la stânga (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:66 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.hright" msgstr "Aliniază la dreapta (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:99 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.vbottom" msgstr "Aliniază jos (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:91 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.vcenter" msgstr "Aliniază vertical (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:104 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.vdistribute" msgstr "Introdu spaţierea pe verticală (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:83 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.vtop" msgstr "Aliniază sus (%s)" #: src/app/main/ui/workspace/sidebar/assets.cljs -#, unused msgid "workspace.assets.assets" msgstr "Obiecte" -#: src/app/main/ui/workspace/sidebar/assets.cljs:134 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.box-filter-all" msgstr "Toate obiectele" -#: src/app/main/ui/dashboard/grid.cljs:130, src/app/main/ui/dashboard/grid.cljs:162, src/app/main/ui/workspace/sidebar/assets/colors.cljs:485, src/app/main/ui/workspace/sidebar/assets.cljs:150 +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.colors" msgstr "Culori" -#: src/app/main/ui/dashboard/grid.cljs:126, src/app/main/ui/dashboard/grid.cljs:141, src/app/main/ui/workspace/sidebar/assets/components.cljs:513, src/app/main/ui/workspace/sidebar/assets.cljs:139 +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.components" msgstr "Componente" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:131 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.create-group" msgstr "Creează grup" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:142 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.create-group-hint" msgstr "Obiectele vor fi numite automat ca \"nume grup / nume obiect\"" -#: src/app/main/ui/workspace/context_menu.cljs:529, src/app/main/ui/workspace/sidebar/assets/colors.cljs:251, src/app/main/ui/workspace/sidebar/assets/components.cljs:577, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:424, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:443 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.delete" msgstr "Şterge" -#: src/app/main/ui/workspace/context_menu.cljs:534, src/app/main/ui/workspace/sidebar/assets/components.cljs:572 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.duplicate" msgstr "Duplică" -#: src/app/main/ui/workspace/sidebar/assets/components.cljs:571 msgid "workspace.assets.duplicate-main" msgstr "Duplicare principală" -#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:247, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:439 +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.edit" msgstr "Editează" -#: src/app/main/ui/workspace/sidebar/assets/graphics.cljs:384, src/app/main/ui/workspace/sidebar/assets.cljs:145 +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.graphics" msgstr "Obiecte grafice" -#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:255, src/app/main/ui/workspace/sidebar/assets/components.cljs:581, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:428, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:448 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.group" msgstr "Grup" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:141 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.group-name" msgstr "Nume grup" -#: src/app/main/ui/workspace/sidebar/assets.cljs:168 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.libraries" msgstr "Biblioteci" -#: src/app/main/ui/workspace/sidebar/assets/file_library.cljs:62, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:347 msgid "workspace.assets.local-library" msgstr "biblioteca locală" -#: src/app/main/ui/workspace/sidebar/assets/file_library.cljs:295 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.not-found" msgstr "Nu au fost găsite obiecte" -#, unused msgid "workspace.assets.open-library" msgstr "Deschideți fișier librărie" -#: src/app/main/ui/workspace/context_menu.cljs:532, src/app/main/ui/workspace/sidebar/assets/colors.cljs:243, src/app/main/ui/workspace/sidebar/assets/components.cljs:566, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:421, src/app/main/ui/workspace/sidebar/assets/groups.cljs:63, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:434 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.rename" msgstr "Redenumeşte" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:132 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.rename-group" msgstr "Redenumiți grupul" -#: src/app/main/ui/workspace/sidebar/assets.cljs:173 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.search" msgstr "Caută obiecte" #: src/app/main/ui/workspace/sidebar/assets.cljs -#, unused msgid "workspace.assets.selected-count" msgid_plural "workspace.assets.selected-count" msgstr[0] "%s obiect selectat" @@ -3477,1903 +3151,1779 @@ msgstr[1] "%s obiecte selectate" msgstr[2] "%s obiecte selectate" #: src/app/main/ui/workspace/sidebar/assets.cljs -#, unused msgid "workspace.assets.shared-library" msgstr "Librărie partajată" -#: src/app/main/ui/dashboard/grid.cljs:134, src/app/main/ui/dashboard/grid.cljs:189, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:397, src/app/main/ui/workspace/sidebar/assets.cljs:155 +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.typography" msgstr "Tipografii" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused msgid "workspace.assets.typography.font-id" msgstr "Font" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:505 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.font-size" msgstr "Dimensiune" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:501 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.font-variant-id" msgstr "Variante" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:523 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.go-to-edit" msgstr "Editează fişierul în Colecţia de stiluri" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:513 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.letter-spacing" msgstr "Spaţiere Litere" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:509 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.line-height" msgstr "Înălţime linie" -#: src/app/main/ui/dashboard/grid.cljs:199, src/app/main/ui/workspace/libraries.cljs:461, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:464, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:489, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:596, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:615 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, +#: src/app/main/ui/inspect/attributes/text.cljs, +#: src/app/main/ui/inspect/attributes/text.cljs msgid "workspace.assets.typography.sample" msgstr "Ag" -#, unused msgid "workspace.assets.typography.text-styles" msgstr "Stiluri de text" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:517 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.text-transform" msgstr "Transformare Text" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:66 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.ungroup" msgstr "Degrupați" -#: src/app/main/ui/workspace/sidebar/layers.cljs:525 msgid "workspace.focus.focus-mode" msgstr "Mod focus" -#: src/app/main/ui/workspace/context_menu.cljs:287, src/app/main/ui/workspace/context_menu.cljs:553 msgid "workspace.focus.focus-off" msgstr "Focus oprit" -#: src/app/main/ui/workspace/context_menu.cljs:286 msgid "workspace.focus.focus-on" msgstr "Focus pornit" -#, unused msgid "workspace.focus.selection" msgstr "Selecție" -#: src/app/util/color.cljs:34 +#: src/app/main/data/workspace/libraries.cljs, +#: src/app/main/ui/components/color_bullet.cljs msgid "workspace.gradients.linear" msgstr "Gradient liniar" -#: src/app/util/color.cljs:35 +#: src/app/main/data/workspace/libraries.cljs, +#: src/app/main/ui/components/color_bullet.cljs msgid "workspace.gradients.radial" msgstr "Gradient radial" -#: src/app/main/ui/workspace/main_menu.cljs:238 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.disable-dynamic-alignment" msgstr "Dezactivează alinierea dinamică" -#: src/app/main/ui/workspace/main_menu.cljs:192 msgid "workspace.header.menu.disable-scale-content" msgstr "Dezactivare scară proporțională" #: src/app/main/ui/workspace/header.cljs -#, unused msgid "workspace.header.menu.disable-scale-text" msgstr "Dezactivează dimensionarea textului" -#: src/app/main/ui/workspace/main_menu.cljs:223 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.disable-snap-guides" msgstr "Dezactivați fixarea la ghiduri" -#: src/app/main/ui/workspace/main_menu.cljs:253 msgid "workspace.header.menu.disable-snap-pixel-grid" msgstr "Dezactivați fixarea la pixel" -#: src/app/main/ui/workspace/main_menu.cljs:239 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.enable-dynamic-alignment" msgstr "Aliniere dinamică" -#: src/app/main/ui/workspace/main_menu.cljs:193 msgid "workspace.header.menu.enable-scale-content" msgstr "Activare scară proporțională" #: src/app/main/ui/workspace/header.cljs -#, unused msgid "workspace.header.menu.enable-scale-text" msgstr "Activează scalarea textului" -#: src/app/main/ui/workspace/main_menu.cljs:224 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.enable-snap-guides" msgstr "Fixare la ghiduri" -#: src/app/main/ui/workspace/main_menu.cljs:254 msgid "workspace.header.menu.enable-snap-pixel-grid" msgstr "Activați fixarea la pixel" -#: src/app/main/ui/workspace/main_menu.cljs:382 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.hide-artboard-names" msgstr "Ascundeți numele tablelor" -#: src/app/main/ui/workspace/main_menu.cljs:353 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.hide-palette" msgstr "Ascunde paleta de culori" -#: src/app/main/ui/workspace/main_menu.cljs:394 msgid "workspace.header.menu.hide-pixel-grid" msgstr "Ascundeți grila de pixeli" -#: src/app/main/ui/workspace/main_menu.cljs:320 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.hide-rules" msgstr "Ascunde ghidul liniar" -#: src/app/main/ui/workspace/main_menu.cljs:367 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.hide-textpalette" msgstr "Ascundeți paleta de fonturi" -#: src/app/main/ui/workspace/main_menu.cljs:731 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.edit" msgstr "Editați" -#: src/app/main/ui/workspace/main_menu.cljs:720 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.file" msgstr "Fișier" -#: src/app/main/ui/workspace/main_menu.cljs:777 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.help-info" msgstr "Ajutor & info" -#: src/app/main/ui/workspace/main_menu.cljs:753 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.preferences" msgstr "Preferințe" -#: src/app/main/ui/workspace/main_menu.cljs:742 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.view" msgstr "Vezi" -#: src/app/main/ui/workspace/main_menu.cljs:459 msgid "workspace.header.menu.redo" msgstr "Refacere" -#: src/app/main/ui/workspace/main_menu.cljs:432 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.select-all" msgstr "Selectează tot" -#: src/app/main/ui/workspace/main_menu.cljs:383 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.show-artboard-names" msgstr "Afișați numele tablelor" -#: src/app/main/ui/workspace/main_menu.cljs:354 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.show-palette" msgstr "Afişează paleta de culori" -#: src/app/main/ui/workspace/main_menu.cljs:395 msgid "workspace.header.menu.show-pixel-grid" msgstr "Afișați grila de pixeli" -#: src/app/main/ui/workspace/main_menu.cljs:321 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.show-rules" msgstr "Afişează Liniarul" -#: src/app/main/ui/workspace/main_menu.cljs:368 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.show-textpalette" msgstr "Afișați paleta de fonturi" -#: src/app/main/ui/workspace/main_menu.cljs:446 msgid "workspace.header.menu.undo" msgstr "Anulare" -#: src/app/main/ui/viewer/header.cljs:98, src/app/main/ui/workspace/right_header.cljs:120 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.reset-zoom" msgstr "Resetați" #: src/app/main/ui/workspace/header.cljs -#, unused msgid "workspace.header.save-error" msgstr "Eroare în timpul salvării" -#: src/app/main/ui/workspace/right_header.cljs:52 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.saved" msgstr "Salvat" #: src/app/main/ui/workspace/header.cljs -#, unused msgid "workspace.header.saving" msgstr "Salvare în curs" -#: src/app/main/ui/workspace/right_header.cljs:42, src/app/main/ui/workspace/right_header.cljs:47 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.unsaved" msgstr "Modificări nesalvate" -#: src/app/main/ui/workspace/right_header.cljs:239 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.viewer" msgstr "Vizualizare (%s)" -#: src/app/main/ui/viewer/header.cljs:79, src/app/main/ui/workspace/right_header.cljs:103 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom" msgstr "Zoom" -#: src/app/main/ui/viewer/header.cljs:109 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom-fill" msgstr "Umplere - Scalare pentru a umple" -#: src/app/main/ui/viewer/header.cljs:102 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom-fit" msgstr "Potrivire - Scalare în jos a se potrivi" -#: src/app/main/ui/workspace/right_header.cljs:123 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom-fit-all" msgstr "Zoom pentru a potrivi tot" -#: src/app/main/ui/viewer/header.cljs:116 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom-full-screen" msgstr "Ecran complet" -#: src/app/main/ui/workspace/right_header.cljs:130 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom-selected" msgstr "Zoom la selecție" -#: src/app/main/ui/workspace/viewport/grid_layout_editor.cljs:59 msgid "workspace.layout_grid.editor.title" msgstr "Editare grilă" #: src/app/main/ui/workspace/libraries.cljs -#, unused msgid "workspace.libraries.add" msgstr "Adaugă" -#: src/app/main/ui/workspace/libraries.cljs:80, src/app/main/ui/workspace/libraries.cljs:99 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.colors" msgstr "%s culori" -#: src/app/main/ui/workspace/color_palette.cljs:126 +#: src/app/main/ui/workspace/colorpalette.cljs msgid "workspace.libraries.colors.empty-palette" msgstr "Nu există stiluri de culori în librăria dvs. încă" -#: src/app/main/ui/workspace/text_palette.cljs:150 +#: src/app/main/ui/workspace/textpalette.cljs msgid "workspace.libraries.colors.empty-typography-palette" msgstr "Nu există stiluri de tipografie în librăria dvs. încă" -#: src/app/main/ui/workspace/color_palette_ctx_menu.cljs:60, src/app/main/ui/workspace/colorpicker/libraries.cljs:73, src/app/main/ui/workspace/text_palette_ctx_menu.cljs:50 +#: src/app/main/ui/workspace/colorpicker/libraries.cljs, +#: src/app/main/ui/workspace/colorpalette.cljs msgid "workspace.libraries.colors.file-library" msgstr "Bibliotecă de fișiere" #: src/app/main/ui/workspace/colorpicker.cljs -#, unused msgid "workspace.libraries.colors.hsv" msgstr "HSV" -#: src/app/main/ui/workspace/color_palette_ctx_menu.cljs:82, src/app/main/ui/workspace/colorpicker/libraries.cljs:72 +#: src/app/main/ui/workspace/colorpicker/libraries.cljs, +#: src/app/main/ui/workspace/colorpalette.cljs msgid "workspace.libraries.colors.recent-colors" msgstr "Culori recente" #: src/app/main/ui/workspace/colorpicker.cljs -#, unused msgid "workspace.libraries.colors.rgb-complementary" msgstr "RGB Complementar" #: src/app/main/ui/workspace/colorpicker.cljs -#, unused msgid "workspace.libraries.colors.rgba" msgstr "RGBA" -#: src/app/main/ui/workspace/colorpicker.cljs:372 +#: src/app/main/ui/workspace/colorpicker.cljs msgid "workspace.libraries.colors.save-color" msgstr "Salvează stilul culorii" -#: src/app/main/ui/workspace/libraries.cljs:74, src/app/main/ui/workspace/libraries.cljs:91 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.components" msgstr "%s componente" -#: src/app/main/ui/workspace/libraries.cljs:215 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.file-library" msgstr "Bibliotecă de fișiere" -#: src/app/main/ui/workspace/libraries.cljs:77, src/app/main/ui/workspace/libraries.cljs:95 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.graphics" msgstr "%s obiecte grafice" -#: src/app/main/ui/workspace/libraries.cljs:209 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.in-this-file" msgstr "BIBLIOTECILE FIŞIERULUI" -#: src/app/main/ui/workspace/libraries.cljs:526, src/app/main/ui/workspace/libraries.cljs:531 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.libraries" msgstr "BIBLIOTECI" #: src/app/main/ui/workspace/libraries.cljs -#, unused msgid "workspace.libraries.library" msgstr "BIBLIOTECĂ" -#: src/app/main/ui/workspace/libraries.cljs:382 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.library-updates" msgstr "ACTUALIZĂRI LIBRĂRII" -#: src/app/main/ui/workspace/libraries.cljs:380 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.no-libraries-need-sync" msgstr "Nu există Biblioteci Distribuite ce necesită update" -#: src/app/main/ui/workspace/libraries.cljs:299 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.no-matches-for" msgstr "Nu au fost găsite asemănări pentru “%s“" -#: src/app/main/ui/workspace/libraries.cljs:296 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.no-shared-libraries-available" msgstr "Nu există Biblioteci Distribuite" -#: src/app/main/ui/workspace/libraries.cljs:260 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.search-shared-libraries" msgstr "Caută în bibliotecile distribuite" -#: src/app/main/ui/workspace/libraries.cljs:256 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.shared-libraries" msgstr "BIBLIOTECI DISTRIBUITE" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:308 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.libraries.text.multiple-typography" msgstr "Tipografii multiple" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:311 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.libraries.text.multiple-typography-tooltip" msgstr "Deconectează toate tipografiile" -#: src/app/main/ui/workspace/libraries.cljs:83, src/app/main/ui/workspace/libraries.cljs:103 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.typography" msgstr "%s tipografii" -#: src/app/main/ui/workspace/libraries.cljs:402 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.update" msgstr "Actualizați" -#: src/app/main/ui/workspace/libraries.cljs:477 +#: src/app/main/data/workspace/libraries.cljs msgid "workspace.libraries.update.see-all-changes" msgstr "vedeți toate schimbările" -#: src/app/main/ui/workspace/libraries.cljs:536 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.updates" msgstr "ACTUALIZĂRI" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:737 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.add-interaction" msgstr "Faceți clic pe butonul + pentru a adăuga interacțiuni." -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:86, src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:102 +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs msgid "workspace.options.blur-options.title" msgstr "Estompare" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:85 +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs msgid "workspace.options.blur-options.title.group" msgstr "Blur pe grup" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:84 +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs msgid "workspace.options.blur-options.title.multiple" msgstr "Selecţie de blur" -#: src/app/main/ui/workspace/sidebar/options/page.cljs:32, src/app/main/ui/workspace/sidebar/options/page.cljs:39 +#: src/app/main/ui/workspace/sidebar/options/page.cljs msgid "workspace.options.canvas-background" msgstr "Fundal canvas" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:548 msgid "workspace.options.clip-content" msgstr "Conținutul clipului" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:600, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:605 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs msgid "workspace.options.component" msgstr "Componentă" -#: src/app/main/ui/viewer/inspect/annotation.cljs:19, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:181 msgid "workspace.options.component.annotation" msgstr "Notă" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:610 msgid "workspace.options.component.copy" msgstr "Copiați" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:173 msgid "workspace.options.component.create-annotation" msgstr "Creați o notă" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:172 msgid "workspace.options.component.edit-annotation" msgstr "Editați o notă" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:609 msgid "workspace.options.component.main" msgstr "Principal" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:163 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints" msgstr "Constrângeri" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:150 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.bottom" msgstr "Jos" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:141, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:152 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.center" msgstr "Centru" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:229 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.fix-when-scrolling" msgstr "Fixat la parcurgere" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:138 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.left" msgstr "Stânga" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:140 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.leftright" msgstr "Stânga & Dreapta" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:139 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.right" msgstr "Dreapta" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:142, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:153 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.scale" msgstr "Scală" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:149 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.top" msgstr "Sus" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:151 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.topbottom" msgstr "Sus & Jos" -#: src/app/main/ui/workspace/sidebar/options.cljs:112 +#: src/app/main/ui/workspace/sidebar/options.cljs msgid "workspace.options.design" msgstr "Design" -#: src/app/main/ui/viewer/inspect/exports.cljs:139 +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, +#: src/app/main/ui/inspect/exports.cljs msgid "workspace.options.export" msgstr "Exportă" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, +#: src/app/main/ui/handoff/exports.cljs msgid "workspace.options.export-multiple" msgstr "Exportați selecția" -#: src/app/main/ui/viewer/inspect/exports.cljs:195, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:237 +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, +#: src/app/main/ui/inspect/exports.cljs msgid "workspace.options.export-object" msgid_plural "workspace.options.export-object" msgstr[0] "Exportați 1 element" msgstr[1] "Exportați %s elemente" msgstr[2] "Exportați %s elemente" -#: src/app/main/ui/viewer/inspect/exports.cljs:178, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:219 +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs msgid "workspace.options.export.suffix" msgstr "Sufix" -#: src/app/main/ui/export.cljs:240 +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, +#: src/app/main/ui/handoff/exports.cljs, src/app/main/ui/workspace/header.cljs msgid "workspace.options.exporting-complete" msgstr "Export finalizat" -#: src/app/main/ui/export.cljs:172, src/app/main/ui/export.cljs:241, src/app/main/ui/viewer/inspect/exports.cljs:194, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:236 +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, +#: src/app/main/ui/inspect/exports.cljs msgid "workspace.options.exporting-object" msgstr "Se exportă…" -#: src/app/main/ui/export.cljs:239 +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, +#: src/app/main/ui/handoff/exports.cljs, src/app/main/ui/workspace/header.cljs msgid "workspace.options.exporting-object-error" msgstr "Export eșuat" -#: src/app/main/ui/export.cljs:242 +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, +#: src/app/main/ui/handoff/exports.cljs, src/app/main/ui/workspace/header.cljs msgid "workspace.options.exporting-object-slow" msgstr "Export neașteptat de lent" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:49, src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:174 +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs msgid "workspace.options.fill" msgstr "Umple" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:178 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.flows.add-flow-start" msgstr "Adăugați început flux" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -#, unused msgid "workspace.options.flows.flow-start" msgstr "Pornirea fluxului" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:161 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.flows.flow-starts" msgstr "Fluxul începe" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:29 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.auto" msgstr "Auto" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:157 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.column" msgstr "Coloane" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.grid-title" msgstr "Grilă" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:196, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:237 msgid "workspace.options.grid.params.color" msgstr "Culoare" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.params.columns" msgstr "Coloane" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:259 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.gutter" msgstr "Spaţiere" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:246 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.height" msgstr "Înălţime" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:270 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.margin" msgstr "Margine" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.params.rows" msgstr "Rânduri" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:216, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:290 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.set-default" msgstr "Setează ca predefinit" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.params.size" msgstr "Mărime" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.params.type" msgstr "Tip" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:231 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.bottom" msgstr "Jos" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:229 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.center" msgstr "Centru" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:228 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.left" msgstr "Stânga" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:232 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.right" msgstr "Dreapta" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:225 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.stretch" msgstr "Întinde" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:227 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.top" msgstr "Sus" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:211, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:288 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.use-default" msgstr "Foloseşte default" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:247 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.width" msgstr "Lăţime" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:158 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.row" msgstr "Rânduri" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:156 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.square" msgstr "Pătrat" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:48 +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs msgid "workspace.options.group-fill" msgstr "Umplere grup" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:42 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.group-stroke" msgstr "Conturare grup" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:406 msgid "workspace.options.height" msgstr "Înălțime" -#: src/app/main/ui/workspace/sidebar/options.cljs:161 msgid "workspace.options.inspect" msgstr "Inspectați" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:468 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-action" msgstr "Acțiune" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:41, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:367 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-after-delay" msgstr "După întârziere" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:614 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-animation" msgstr "Animație" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:406 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-animation-dissolve" msgstr "Dizolvare" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:405 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-animation-none" msgstr "Nimic" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:412 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-animation-push" msgstr "Împinge" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:407 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-animation-slide" msgstr "Alunecă" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:391 msgid "workspace.options.interaction-auto" msgstr "auto" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:604 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-background" msgstr "Adăugați suprapunere de fundal" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:590 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-close-outside" msgstr "Închideți atunci când faceți clic în exterior" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:372 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-close-overlay" msgstr "Închideți suprapunerea" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:56 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-close-overlay-dest" msgstr "Închideți suprapunerea: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:456 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-delay" msgstr "Întârziere" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:478 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-destination" msgstr "Destinație" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:661 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-duration" msgstr "Durată" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:674 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing" msgstr "Easing" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:416 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing-ease" msgstr "Ease" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:417 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing-ease-in" msgstr "Ease in" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:419 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing-ease-in-out" msgstr "Ease in out" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:418 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing-ease-out" msgstr "Ease out" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:415 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing-linear" msgstr "Liniar" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -#, unused msgid "workspace.options.interaction-in" msgstr "În" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:39, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:364 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-mouse-enter" msgstr "Intrarea mouse-ului" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:40, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:365 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-mouse-leave" msgstr "Plecarea mouse-ului" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:458, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:459, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:464, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:663, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:665, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:669 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-ms" msgstr "ms" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:369 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-navigate-to" msgstr "Navigați la" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:50 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-navigate-to-dest" msgstr "Navigați la: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:51, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:53, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:55, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:380 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-none" msgstr "(nedefinit)" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:691 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-offset-effect" msgstr "Efect de offset" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:35, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:360 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-on-click" msgstr "La clic" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:370 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-open-overlay" msgstr "Deschideți suprapunerea" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:52 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-open-overlay-dest" msgstr "Deschideți suprapunerea: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:59, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:374 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-open-url" msgstr "Deschideți adresa URL" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -#, unused msgid "workspace.options.interaction-out" msgstr "Afară" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:403 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-bottom-center" msgstr "Centru jos" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:401 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-bottom-left" msgstr "Stânga jos" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:402 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-bottom-right" msgstr "Dreapta jos" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:397 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-center" msgstr "Centru" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:396 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-manual" msgstr "Manual" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:400 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-top-center" msgstr "Centru sus" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:398 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-top-left" msgstr "Stânga sus" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:399 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-top-right" msgstr "Dreapta sus" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:524 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-position" msgstr "Poziție" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:494 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-preserve-scroll" msgstr "Păstrați poziția derulării" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:58, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:373 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-prev-screen" msgstr "Ecranul anterior" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:515 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-relative-to" msgstr "Relativ la" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:57, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:379, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:393, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:394 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-self" msgstr "sine" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:371 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-toggle-overlay" msgstr "Comutare suprapunere" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:54 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-toggle-overlay-dest" msgstr "Comutați suprapunerea: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:445 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-trigger" msgstr "Declanșator" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:503 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-url" msgstr "URL" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:37, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:362 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-while-hovering" msgstr "În timp ce plutește" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:38, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:363 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-while-pressing" msgstr "În timp ce este apăsat" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:724 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interactions" msgstr "Interacțiuni" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:137 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.color" msgstr "Culoare" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:126 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.color-burn" msgstr "Arderea culorii" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:129 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.color-dodge" msgstr "Evitare culoare" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:124 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.darken" msgstr "Întunecat" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:133 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.difference" msgstr "Diferență" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:134 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.exclusion" msgstr "Excludere" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:132 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.hard-light" msgstr "Lumină Puternică" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:135 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.hue" msgstr "Nuanță" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:127 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.lighten" msgstr "Luminat" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:138 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.luminosity" msgstr "Luminozitate" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:125 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.multiply" msgstr "Multiplică" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:123 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.normal" msgstr "Normal" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:130 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.overlay" msgstr "Strat" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:136 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.saturation" msgstr "Saturaţie" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:128 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.screen" msgstr "Screen" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:131 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.soft-light" msgstr "Lumină slabă" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -#, unused msgid "workspace.options.layer-options.title" msgstr "Strat" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -#, unused msgid "workspace.options.layer-options.title.group" msgstr "Grupează layere" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -#, unused msgid "workspace.options.layer-options.title.multiple" msgstr "Layere selectate" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout-item.advanced-ops" msgstr "Opțiuni avansate" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:564 +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs msgid "workspace.options.layout-item.layout-item-max-h" msgstr "Înălțime maximă" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:531 +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs msgid "workspace.options.layout-item.layout-item-max-w" msgstr "Lățime maximă" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:548 +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs msgid "workspace.options.layout-item.layout-item-min-h" msgstr "Înălțime minimă" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:515 +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs msgid "workspace.options.layout-item.layout-item-min-w" msgstr "Lățime minimă" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout-item.title.layout-item-max-h" msgstr "Înălțime maximă" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout-item.title.layout-item-max-w" msgstr "Lățime maximă" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout-item.title.layout-item-min-h" msgstr "Înălțime minimă" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout-item.title.layout-item-min-w" msgstr "Lățime minimă" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.bottom" msgstr "Jos" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.direction.column" msgstr "Coloană" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.direction.column-reverse" msgstr "Coloană inversată" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.direction.row" msgstr "Rând" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.direction.row-reverse" msgstr "Rând inversat" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.gap" msgstr "Spațiu" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.left" msgstr "Stânga" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout.margin" msgstr "Margine" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout.margin-all" msgstr "Toate laturile" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout.margin-simple" msgstr "Margine simplă" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.packed" msgstr "plin" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.padding" msgstr "Căptușeală" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.padding-all" msgstr "Toate laturile" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.padding-simple" msgstr "Căptușeală simplă" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.right" msgstr "Dreapta" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.space-around" msgstr "spațiu în jur" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.space-between" msgstr "spațiu între" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.top" msgstr "Sus" -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:146 +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs msgid "workspace.options.more-colors" msgstr "Mai multe culori" -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:123 +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs msgid "workspace.options.more-lib-colors" msgstr "Mai multe culori de bibliotecă" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:161 msgid "workspace.options.opacity" msgstr "Opacitate" -#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.position" msgstr "Poziţie" -#: src/app/main/ui/workspace/sidebar/options.cljs:157 +#: src/app/main/ui/workspace/sidebar/options.cljs msgid "workspace.options.prototype" msgstr "Prototip" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:469, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:481 msgid "workspace.options.radius" msgstr "Rază" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:513 +#: 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:522 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.radius-bottom-right" msgstr "Dreapta jos" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:495 +#: 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:504 +#: 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:532 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.radius.all-corners" msgstr "Toate colţurile" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:533 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.radius.single-corners" msgstr "Colțuri independente" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:183 msgid "workspace.options.recent-fonts" msgstr "Recente" -#: src/app/main/ui/export.cljs:284 +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, +#: src/app/main/ui/handoff/exports.cljs, src/app/main/ui/workspace/header.cljs msgid "workspace.options.retry" msgstr "Reîncercați" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:451 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.rotation" msgstr "Rotaţie" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:180 msgid "workspace.options.search-font" msgstr "Căutați font" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:741 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.select-a-shape" msgstr "Selectează o formă, o planşă sau grupează pentru a conecta o altă planşă." -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:105 +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs msgid "workspace.options.selection-color" msgstr "Culori selectate" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:47 +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs msgid "workspace.options.selection-fill" msgstr "Umplere selecție" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:41 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.selection-stroke" msgstr "Contur selecție" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:40, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:198, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:200 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.blur" msgstr "Estompare" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:238 msgid "workspace.options.shadow-options.color" msgstr "Culoare umbră" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:144 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.drop-shadow" msgstr "Umbră proiectată" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:145 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.inner-shadow" msgstr "Umbră interioară" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:38, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:186 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.offsetx" msgstr "X" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:39, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:224 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.offsety" msgstr "Y" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:41, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:211, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:213 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.spread" msgstr "Accentuare" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:296 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.title" msgstr "Umbră" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:295 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.title.group" msgstr "Umbră grup" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:294 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.title.multiple" msgstr "Umbre de selecție" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:193 +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs msgid "workspace.options.show-fill-on-export" msgstr "Afișați în exporturi" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:562 msgid "workspace.options.show-in-viewer" msgstr "Afișare în modul de vizualizare" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:162 +#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.size" msgstr "Mărime" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:355 +#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs msgid "workspace.options.size-presets" msgstr "Dimensiuni presetate" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:43 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke" msgstr "Contur" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -#, unused msgid "workspace.options.stroke-cap.circle-marker" msgstr "Marcator cerc" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:129 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.circle-marker-short" msgstr "Cerc" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -#, unused msgid "workspace.options.stroke-cap.diamond-marker" msgstr "Marcator diamant" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:130 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.diamond-marker-short" msgstr "Diamant" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -#, unused msgid "workspace.options.stroke-cap.line-arrow" msgstr "Săgeată linie" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:126 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.line-arrow-short" msgstr "Săgeată" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:124 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.none" msgstr "Nimic" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:132 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.round" msgstr "Rotund" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:133 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.square" msgstr "Pătrat" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -#, unused msgid "workspace.options.stroke-cap.square-marker" msgstr "Marcator pătrat" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:128 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.square-marker-short" msgstr "Dreptunghi" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -#, unused msgid "workspace.options.stroke-cap.triangle-arrow" msgstr "Săgeată triunghi" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:127 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.triangle-arrow-short" msgstr "Triunghi" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:192 msgid "workspace.options.stroke-color" msgstr "Culoare contur" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:165 msgid "workspace.options.stroke-width" msgstr "Lățimea conturului" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:87 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.center" msgstr "Centru" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:105 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.dashed" msgstr "Întrerupt" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:104 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.dotted" msgstr "Punctat" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:88 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.inner" msgstr "Interior" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:106 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.mixed" msgstr "Mixed" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:89 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.outer" msgstr "Exterior" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:103 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.solid" msgstr "Solid" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:115 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.align-bottom" msgstr "Aliniază jos" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:111 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.align-middle" msgstr "Aliniază la mijloc" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:107 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.align-top" msgstr "Aliniază sus" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:82 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.direction-ltr" msgstr "LTR" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:87 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.direction-rtl" msgstr "RTL" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:149 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.grow-auto-height" msgstr "Înălţime auto" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:145 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.grow-auto-width" msgstr "Lăţime auto" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:141 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.grow-fixed" msgstr "Fix" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:381 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.options.text-options.letter-spacing" msgstr "Spaţiere Litere" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:364 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.options.text-options.line-height" msgstr "Înălţime linii" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused msgid "workspace.options.text-options.lowercase" msgstr "Minuscule" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.options.text-options.none" msgstr "Nici unul" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:176 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.strikethrough" msgstr "Barat (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:51 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.text-align-center" msgstr "Aliniază centru (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:59 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.text-align-justify" msgstr "Justifică (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:47 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.text-align-left" msgstr "Aliniază la stânga (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:55 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.text-align-right" msgstr "Aliniază la dreapta (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:189 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.title" msgstr "Text" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:188 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.title-group" msgstr "Grupează text" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:187 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.title-selection" msgstr "Selecţie text" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused msgid "workspace.options.text-options.titlecase" msgstr "Majuscule titlu" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:171 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.underline" msgstr "Subliniază (%s)" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused msgid "workspace.options.text-options.uppercase" msgstr "Majuscule" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:745 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.use-play-button" msgstr "Foloseşte butonul play din header pentru a porni vizualizarea prototip." -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:395 msgid "workspace.options.width" msgstr "Lăţime" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:427 msgid "workspace.options.x" msgstr "Axa X" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:438 msgid "workspace.options.y" msgstr "Axa Y" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:167 msgid "workspace.path.actions.add-node" msgstr "Adaugă nod (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:174 msgid "workspace.path.actions.delete-node" msgstr "Şterge nod (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:152 msgid "workspace.path.actions.draw-nodes" msgstr "Desenează noduri (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:189 msgid "workspace.path.actions.join-nodes" msgstr "Adaugă noduri (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:204 msgid "workspace.path.actions.make-corner" msgstr "În colţ (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:211 msgid "workspace.path.actions.make-curve" msgstr "În curbă (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:182 msgid "workspace.path.actions.merge-nodes" msgstr "Uneşte noduri (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:159 msgid "workspace.path.actions.move-nodes" msgstr "Mută noduri (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:196 msgid "workspace.path.actions.separate-nodes" msgstr "Separă noduri (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:218 msgid "workspace.path.actions.snap-nodes" msgstr "Trage noduri (%s)" -#: src/app/main/ui/workspace/context_menu.cljs:441 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.add-flex" msgstr "Adăugați aspect flexibil" -#: src/app/main/ui/workspace/context_menu.cljs:445 msgid "workspace.shape.menu.add-grid" msgstr "Adăugați aspect grilă" -#: src/app/main/ui/workspace/context_menu.cljs:193 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.back" msgstr "Trimite înapoi" -#: src/app/main/ui/workspace/context_menu.cljs:190 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.backward" msgstr "Trimite în urmă" -#: src/app/main/ui/workspace/context_menu.cljs:139 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.copy" msgstr "Copiază" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:427 msgid "workspace.shape.menu.create-annotation" msgstr "Creați notă" -#: src/app/main/ui/workspace/context_menu.cljs:275 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.create-artboard-from-selection" msgstr "Selecție la planșă" -#: src/app/main/ui/workspace/context_menu.cljs:465 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.create-component" msgstr "Creează componentă" -#: src/app/main/ui/workspace/context_menu.cljs:469 msgid "workspace.shape.menu.create-multiple-components" msgstr "Creați componente multiple" -#: src/app/main/ui/workspace/context_menu.cljs:142 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.cut" msgstr "Taie" -#: src/app/main/ui/workspace/context_menu.cljs:486 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.delete" msgstr "Şterge" -#: src/app/main/ui/workspace/context_menu.cljs:391 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.delete-flow-start" msgstr "Ștergeți începutul fluxului" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:432 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.detach-instance" msgstr "Detaşează instanţă" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:431 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.detach-instances-in-bulk" msgstr "Detașați instanțele" -#: src/app/main/ui/workspace/context_menu.cljs:335, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:75 msgid "workspace.shape.menu.difference" msgstr "Diferență" -#: src/app/main/ui/workspace/context_menu.cljs:148 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.duplicate" msgstr "Duplică" -#: src/app/main/ui/workspace/context_menu.cljs:321 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.edit" msgstr "Editează" -#: src/app/main/ui/workspace/context_menu.cljs:341 msgid "workspace.shape.menu.exclude" msgstr "Excludeți" -#: src/app/main/ui/workspace/context_menu.cljs:348, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:89 msgid "workspace.shape.menu.flatten" msgstr "Aplatizați" -#: src/app/main/ui/workspace/context_menu.cljs:208 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.flip-horizontal" msgstr "Întoarce pe orizontală" -#: src/app/main/ui/workspace/context_menu.cljs:204 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.flip-vertical" msgstr "Întoarce pe verticală" -#: src/app/main/ui/workspace/context_menu.cljs:394 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.flow-start" msgstr "Pornirea fluxului" -#: src/app/main/ui/workspace/context_menu.cljs:184 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.forward" msgstr "Aduceţi înainte" -#: src/app/main/ui/workspace/context_menu.cljs:187 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.front" msgstr "Aduceţi în faţă" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.go-main" msgstr "Mergi la componenta principală" -#: src/app/main/ui/workspace/context_menu.cljs:261 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.group" msgstr "Grupează" -#: src/app/main/ui/workspace/context_menu.cljs:363, src/app/main/ui/workspace/sidebar/layer_item.cljs:145 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.hide" msgstr "Ascunde" -#: src/app/main/ui/workspace/context_menu.cljs:548, src/app/main/ui/workspace/main_menu.cljs:408 msgid "workspace.shape.menu.hide-ui" msgstr "Afișați/ Ascundeți UI" -#: src/app/main/ui/workspace/context_menu.cljs:338 msgid "workspace.shape.menu.intersection" msgstr "Intersecție" -#: src/app/main/ui/workspace/context_menu.cljs:371, src/app/main/ui/workspace/sidebar/layer_item.cljs:153 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.lock" msgstr "Blochează" -#: src/app/main/ui/workspace/context_menu.cljs:266 +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.mask" msgstr "Maschează" -#: src/app/main/ui/workspace/context_menu.cljs:145, src/app/main/ui/workspace/context_menu.cljs:545 +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.paste" msgstr "Lipeşte" -#: src/app/main/ui/workspace/context_menu.cljs:331 msgid "workspace.shape.menu.path" msgstr "Drum" -#: src/app/main/ui/workspace/context_menu.cljs:432 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.remove-flex" msgstr "Îndepărtați aspect flexibil" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:436 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.reset-overrides" msgstr "Resetează suprascrierile" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:439 msgid "workspace.shape.menu.restore-main" msgstr "Restaurați componenta principală" -#: src/app/main/ui/workspace/context_menu.cljs:174 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.select-layer" msgstr "Selectați stratul" -#: src/app/main/ui/workspace/context_menu.cljs:360, src/app/main/ui/workspace/sidebar/layer_item.cljs:144 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.show" msgstr "Afişează" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:424 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.show-in-assets" msgstr "Afișați în panoul de obiecte" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:442, src/app/main/ui/workspace/sidebar/assets/components.cljs:586 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.show-main" msgstr "Afişează componenta principală" -#: src/app/main/ui/workspace/context_menu.cljs:221 msgid "workspace.shape.menu.thumbnail-remove" msgstr "Eliminați miniatura" -#: src/app/main/ui/workspace/context_menu.cljs:223 msgid "workspace.shape.menu.thumbnail-set" msgstr "Setați ca miniatură" -#: src/app/main/ui/workspace/context_menu.cljs:326 msgid "workspace.shape.menu.transform-to-path" msgstr "Transformați în drum" -#: src/app/main/ui/workspace/context_menu.cljs:257 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.ungroup" msgstr "Degrupează" -#: src/app/main/ui/workspace/context_menu.cljs:332, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:70 msgid "workspace.shape.menu.union" msgstr "Uniune" -#: src/app/main/ui/workspace/context_menu.cljs:368, src/app/main/ui/workspace/sidebar/layer_item.cljs:152 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.unlock" msgstr "Deblochează" -#: src/app/main/ui/workspace/context_menu.cljs:271 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.unmask" msgstr "Demaschează" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.update-components-in-bulk" msgstr "Actualizați componentele principale" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:445 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.update-main" msgstr "Actualizaţi principala componentă" -#: src/app/main/ui/components/tab_container.cljs:50 msgid "workspace.sidebar.collapse" msgstr "Restrângeți bara laterală" -#: src/app/main/ui/workspace/sidebar/collapsable_button.cljs:26 msgid "workspace.sidebar.expand" msgstr "Extindeți bara laterală" -#: src/app/main/ui/workspace/right_header.cljs:231, src/app/main/ui/workspace/right_header.cljs:232 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.sidebar.history" msgstr "Istoric (%s)" -#: src/app/main/ui/workspace/sidebar/layers.cljs:522, src/app/main/ui/workspace/sidebar.cljs:100 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.sidebar.layers" msgstr "Layere" -#: src/app/main/ui/workspace/sidebar/layers.cljs:308, src/app/main/ui/workspace/sidebar/layers.cljs:380 msgid "workspace.sidebar.layers.components" msgstr "Componente" -#: src/app/main/ui/workspace/sidebar/layers.cljs:305, src/app/main/ui/workspace/sidebar/layers.cljs:338 msgid "workspace.sidebar.layers.frames" msgstr "Plăci" -#: src/app/main/ui/workspace/sidebar/layers.cljs:306, src/app/main/ui/workspace/sidebar/layers.cljs:352 msgid "workspace.sidebar.layers.groups" msgstr "Grupuri" -#: src/app/main/ui/workspace/sidebar/layers.cljs:310, src/app/main/ui/workspace/sidebar/layers.cljs:408 msgid "workspace.sidebar.layers.images" msgstr "Imagini" -#: src/app/main/ui/workspace/sidebar/layers.cljs:307, src/app/main/ui/workspace/sidebar/layers.cljs:366 msgid "workspace.sidebar.layers.masks" msgstr "Măști" -#: src/app/main/ui/workspace/sidebar/layers.cljs:289 msgid "workspace.sidebar.layers.search" msgstr "Căutați straturi" -#: src/app/main/ui/workspace/sidebar/layers.cljs:311, src/app/main/ui/workspace/sidebar/layers.cljs:422 msgid "workspace.sidebar.layers.shapes" msgstr "Forme" -#: src/app/main/ui/workspace/sidebar/layers.cljs:309, src/app/main/ui/workspace/sidebar/layers.cljs:394 msgid "workspace.sidebar.layers.texts" msgstr "Texte" -#: src/app/main/ui/viewer/inspect/attributes/svg.cljs:56, src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs:91 +#: src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs, +#: src/app/main/ui/inspect/attributes/svg.cljs msgid "workspace.sidebar.options.svg-attrs.title" msgstr "Atribute SVG importate" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs:217 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs msgid "workspace.sidebar.sitemap" msgstr "Pagini" -#: src/app/main/ui/workspace/left_header.cljs:91 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.sitemap" msgstr "Harta site-ului" -#: src/app/main/ui/workspace/sidebar.cljs:120 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.assets" msgstr "Obiecte" -#: src/app/main/ui/workspace/palette.cljs:165, src/app/main/ui/workspace/palette.cljs:166 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.color-palette" msgstr "Paletă de culori (%s)" -#: src/app/main/ui/workspace/right_header.cljs:220, src/app/main/ui/workspace/right_header.cljs:221 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.comments" msgstr "Comentarii (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:180, src/app/main/ui/workspace/top_toolbar.cljs:181 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.curve" msgstr "Curbe (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:160, src/app/main/ui/workspace/top_toolbar.cljs:161 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.ellipse" msgstr "Elipsă (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:142, src/app/main/ui/workspace/top_toolbar.cljs:143 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.frame" msgstr "Planşă de lucru (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:59, src/app/main/ui/workspace/top_toolbar.cljs:60 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.image" msgstr "Imagine (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:132, src/app/main/ui/workspace/top_toolbar.cljs:133 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.move" msgstr "Poziţionează (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:189, src/app/main/ui/workspace/top_toolbar.cljs:190 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.path" msgstr "Cale (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:151, src/app/main/ui/workspace/top_toolbar.cljs:152 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.rect" msgstr "Dreptunghi (%s)" #: src/app/main/ui/workspace/left_toolbar.cljs -#, unused msgid "workspace.toolbar.shortcuts" msgstr "Comenzi rapide (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:169, src/app/main/ui/workspace/top_toolbar.cljs:170 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.text" msgstr "Text (%s)" -#: src/app/main/ui/workspace/palette.cljs:173, src/app/main/ui/workspace/palette.cljs:174 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.text-palette" msgstr "Tipografii (%s)" -#: src/app/main/ui/workspace/sidebar/history.cljs:342 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.empty" msgstr "Nu sunt modificări în istoric" -#: src/app/main/ui/workspace/sidebar/history.cljs:147 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.entry.delete" msgstr "Şters %s" -#: src/app/main/ui/workspace/sidebar/history.cljs:146 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.entry.modify" msgstr "Modificat %s" -#: src/app/main/ui/workspace/sidebar/history.cljs:148 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.entry.move" msgstr "Obiecte mutate" -#: src/app/main/ui/workspace/sidebar/history.cljs:111 msgid "workspace.undo.entry.multiple.circle" msgstr "cercuri" -#: src/app/main/ui/workspace/sidebar/history.cljs:112 msgid "workspace.undo.entry.multiple.color" msgstr "Culori obiecte" -#: src/app/main/ui/workspace/sidebar/history.cljs:113 msgid "workspace.undo.entry.multiple.component" msgstr "componente" -#: src/app/main/ui/workspace/sidebar/history.cljs:114 msgid "workspace.undo.entry.multiple.curve" msgstr "curbe" -#: src/app/main/ui/workspace/sidebar/history.cljs:115 msgid "workspace.undo.entry.multiple.frame" msgstr "planşă de lucru" -#: src/app/main/ui/workspace/sidebar/history.cljs:116 msgid "workspace.undo.entry.multiple.group" msgstr "grupuri" -#: src/app/main/ui/workspace/sidebar/history.cljs:117 msgid "workspace.undo.entry.multiple.media" msgstr "obiecte grafice" -#: src/app/main/ui/workspace/sidebar/history.cljs:118 msgid "workspace.undo.entry.multiple.multiple" msgstr "obiecte" -#: src/app/main/ui/workspace/sidebar/history.cljs:119 msgid "workspace.undo.entry.multiple.page" msgstr "pagini" -#: src/app/main/ui/workspace/sidebar/history.cljs:120 msgid "workspace.undo.entry.multiple.path" msgstr "căi" -#: src/app/main/ui/workspace/sidebar/history.cljs:121 msgid "workspace.undo.entry.multiple.rect" msgstr "dreptunghiuri" -#: src/app/main/ui/workspace/sidebar/history.cljs:122 msgid "workspace.undo.entry.multiple.shape" msgstr "forme" -#: src/app/main/ui/workspace/sidebar/history.cljs:123 msgid "workspace.undo.entry.multiple.text" msgstr "texte" -#: src/app/main/ui/workspace/sidebar/history.cljs:124 msgid "workspace.undo.entry.multiple.typography" msgstr "obiecte tipografice" -#: src/app/main/ui/workspace/sidebar/history.cljs:145 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.entry.new" msgstr "Nou %s" -#: src/app/main/ui/workspace/sidebar/history.cljs:125 msgid "workspace.undo.entry.single.circle" msgstr "cerc" -#: src/app/main/ui/workspace/sidebar/history.cljs:126 msgid "workspace.undo.entry.single.color" msgstr "culoare" -#: src/app/main/ui/workspace/sidebar/history.cljs:127 msgid "workspace.undo.entry.single.component" msgstr "componentă" -#: src/app/main/ui/workspace/sidebar/history.cljs:128 msgid "workspace.undo.entry.single.curve" msgstr "curbă" -#: src/app/main/ui/workspace/sidebar/history.cljs:129 msgid "workspace.undo.entry.single.frame" msgstr "planşă de lucru" -#: src/app/main/ui/workspace/sidebar/history.cljs:130 msgid "workspace.undo.entry.single.group" msgstr "grup" -#: src/app/main/ui/workspace/sidebar/history.cljs:131 msgid "workspace.undo.entry.single.image" msgstr "imagine" -#: src/app/main/ui/workspace/sidebar/history.cljs:132 msgid "workspace.undo.entry.single.media" msgstr "obiect grafic" -#: src/app/main/ui/workspace/sidebar/history.cljs:133 msgid "workspace.undo.entry.single.multiple" msgstr "obiect" -#: src/app/main/ui/workspace/sidebar/history.cljs:134 msgid "workspace.undo.entry.single.page" msgstr "pagină" -#: src/app/main/ui/workspace/sidebar/history.cljs:135 msgid "workspace.undo.entry.single.path" msgstr "cale" -#: src/app/main/ui/workspace/sidebar/history.cljs:136 msgid "workspace.undo.entry.single.rect" msgstr "dreptunghi" -#: src/app/main/ui/workspace/sidebar/history.cljs:137 msgid "workspace.undo.entry.single.shape" msgstr "formă" -#: src/app/main/ui/workspace/sidebar/history.cljs:138 msgid "workspace.undo.entry.single.text" msgstr "text" -#: src/app/main/ui/workspace/sidebar/history.cljs:139 msgid "workspace.undo.entry.single.typography" msgstr "obiect tipografic" -#: src/app/main/ui/workspace/sidebar/history.cljs:149 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.entry.unknown" msgstr "Operaţiune terminată %s" -#: src/app/main/ui/workspace/sidebar/history.cljs:335 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.title" msgstr "Istoric" -#: src/app/main/data/workspace/libraries.cljs:1094 +#: src/app/main/data/workspace/libraries.cljs msgid "workspace.updates.dismiss" msgstr "Renunţă" -#: src/app/main/data/workspace/libraries.cljs:1092 +#: src/app/main/data/workspace/libraries.cljs msgid "workspace.updates.more-info" msgstr "Mai multe informații" -#: src/app/main/data/workspace/libraries.cljs:1090 +#: src/app/main/data/workspace/libraries.cljs msgid "workspace.updates.there-are-updates" msgstr "Există actualizări în bibliotecile distribuite" -#: src/app/main/data/workspace/libraries.cljs:1097 +#: src/app/main/data/workspace/libraries.cljs msgid "workspace.updates.update" msgstr "Actualizează" -#, unused msgid "workspace.viewport.click-to-close-path" msgstr "Click pentru a închide calea" diff --git a/frontend/translations/ru.po b/frontend/translations/ru.po index 47bcf953d0..1b961ddca1 100644 --- a/frontend/translations/ru.po +++ b/frontend/translations/ru.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "PO-Revision-Date: 2024-06-17 08:07+0000\n" "Last-Translator: Anonymous \n" -"Language-Team: Russian " -"\n" +"Language-Team: Russian \n" "Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" @@ -11,446 +11,397 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Weblate 5.6-dev\n" -#: src/app/main/ui/auth/register.cljs:151, src/app/main/ui/viewer/login.cljs:104 +#: src/app/main/ui/auth/register.cljs msgid "auth.already-have-account" msgstr "Уже есть аккаунт?" -#: src/app/main/ui/auth/register.cljs:299 +#: src/app/main/ui/auth/register.cljs msgid "auth.check-your-email" msgstr "Перейдите по ссылке в электронном письме, чтобы начать работу с Penpot." -#: src/app/main/ui/auth/recovery.cljs:78 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.confirm-password" msgstr "Подтвердите пароль" -#: src/app/main/ui/auth/register.cljs:163 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.create-demo-account" msgstr "Создать демо-аккаунт" #: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs -#, unused msgid "auth.create-demo-profile" msgstr "Хотите попробовать?" -#: src/app/main/ui/auth/login.cljs:43 +#: src/app/main/ui/auth/register.cljs msgid "auth.demo-warning" msgstr "" "Это ДЕМОНСТРАЦИЯ, НЕ ИСПОЛЬЗУЙТЕ для работы, проекты будут периодически " "удаляться." -#: src/app/main/ui/auth/login.cljs:189, src/app/main/ui/viewer/login.cljs:90 +#: src/app/main/ui/auth/login.cljs msgid "auth.forgot-password" msgstr "Забыли пароль?" -#: src/app/main/ui/auth/register.cljs:254 +#: src/app/main/ui/auth/register.cljs msgid "auth.fullname" msgstr "Полное имя" -#: src/app/main/ui/auth/register.cljs:155, src/app/main/ui/viewer/login.cljs:107 +#: src/app/main/ui/auth/register.cljs +#, fuzzy msgid "auth.login-here" msgstr "Войти здесь" -#: src/app/main/ui/auth/login.cljs:195 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-submit" msgstr "Вход" -#: src/app/main/ui/auth/login.cljs:222 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.login-with-github-submit" msgstr "GitHub" -#: src/app/main/ui/auth/login.cljs:228 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.login-with-gitlab-submit" msgstr "GitLab" -#: src/app/main/ui/auth/login.cljs:216 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-google-submit" msgstr "Google" -#: src/app/main/ui/auth/login.cljs:201 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-ldap-submit" msgstr "LDAP" -#: src/app/main/ui/auth/login.cljs:234, src/app/main/ui/auth/login.cljs:255 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-oidc-submit" msgstr "OpenID" -#: src/app/main/ui/auth/recovery.cljs:71 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.new-password" msgstr "Введите новый пароль" -#: src/app/main/ui/auth/recovery.cljs:42 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.notifications.invalid-token-error" msgstr "Неверный код восстановления." -#: src/app/main/ui/auth/recovery.cljs:46 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.notifications.password-changed-successfully" msgstr "Пароль успешно изменён" -#: src/app/main/ui/auth/recovery_request.cljs:57 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.notifications.profile-not-verified" msgstr "Профиль не подтверждён, пожалуйста, проверьте почту." -#: src/app/main/ui/auth/recovery_request.cljs:40 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.notifications.recovery-token-sent" msgstr "Ссылка для восстановления пароля отправлена на почту." -#: src/app/main/ui/auth/verify_token.cljs:47 +#: src/app/main/ui/auth/verify_token.cljs msgid "auth.notifications.team-invitation-accepted" msgstr "Приглашение в команду принято" -#: src/app/main/ui/auth/login.cljs:179, src/app/main/ui/auth/register.cljs:115 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.password" msgstr "Пароль" -#: src/app/main/ui/auth/register.cljs:114 +#: src/app/main/ui/auth/register.cljs msgid "auth.password-length-hint" msgstr "Минимум 8 символов" -#: src/app/main/ui/auth.cljs:41 msgid "auth.privacy-policy" msgstr "Политика конфиденциальности" -#: src/app/main/ui/auth/recovery_request.cljs:88 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-submit" msgstr "Восстановить пароль" -#: src/app/main/ui/auth/recovery_request.cljs:101 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-subtitle" msgstr "Мы отправим эл. письмо с инструкциями" -#: src/app/main/ui/auth/recovery_request.cljs:100 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-title" msgstr "Забыли пароль?" -#: src/app/main/ui/auth/recovery.cljs:82 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.recovery-submit" msgstr "Изменить пароль" -#: src/app/main/ui/auth/login.cljs:298, src/app/main/ui/viewer/login.cljs:93 +#: src/app/main/ui/auth/login.cljs msgid "auth.register" msgstr "Еще нет аккаунта?" -#: src/app/main/ui/auth/login.cljs:302, src/app/main/ui/auth/register.cljs:121, src/app/main/ui/auth/register.cljs:263, src/app/main/ui/viewer/login.cljs:97 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.register-submit" msgstr "Создать аккаунт" -#: src/app/main/ui/auth/register.cljs:140 +#: src/app/main/ui/auth/register.cljs msgid "auth.register-title" msgstr "Создать аккаунт" #: src/app/main/ui/auth.cljs -#, unused msgid "auth.sidebar-tagline" msgstr "Open Source решение для дизайна и прототипирования." -#: src/app/main/ui/auth.cljs:33, src/app/main/ui/dashboard/sidebar.cljs:1022, src/app/main/ui/workspace/main_menu.cljs:150 msgid "auth.terms-of-service" msgstr "Условия использования" -#: src/app/main/ui/auth/register.cljs:297 +#: src/app/main/ui/auth/register.cljs msgid "auth.verification-email-sent" msgstr "Мы отправили эл. письмо с подтверждением на" -#: src/app/main/ui/workspace/libraries.cljs:228 msgid "common.publish" msgstr "Опубликовать" -#: src/app/main/ui/viewer/share_link.cljs:304, src/app/main/ui/viewer/share_link.cljs:314 msgid "common.share-link.all-users" msgstr "Все пользователи Penpot" -#: src/app/main/ui/viewer/share_link.cljs:198 msgid "common.share-link.confirm-deletion-link-description" msgstr "" "Вы точно хотите удалить эту ссылку? После этого она перестанет быть " "доступной" -#: src/app/main/ui/viewer/share_link.cljs:259, src/app/main/ui/viewer/share_link.cljs:289 msgid "common.share-link.current-tag" msgstr "(текущее)" -#: src/app/main/ui/viewer/share_link.cljs:207, src/app/main/ui/viewer/share_link.cljs:214 msgid "common.share-link.destroy-link" msgstr "Удалить ссылку" -#: src/app/main/ui/viewer/share_link.cljs:221 msgid "common.share-link.get-link" msgstr "Получить ссылку" -#: src/app/main/ui/viewer/share_link.cljs:139 msgid "common.share-link.link-copied-success" msgstr "Ссылка скопирована" -#: src/app/main/ui/viewer/share_link.cljs:231 msgid "common.share-link.manage-ops" msgstr "Управлять разрешениями" -#: src/app/main/ui/viewer/share_link.cljs:277 msgid "common.share-link.page-shared" msgid_plural "common.share-link.page-shared" msgstr[0] "1 общая страница" msgstr[1] "%s общих страниц" -#: src/app/main/ui/viewer/share_link.cljs:298 msgid "common.share-link.permissions-can-comment" msgstr "Может комментировать" -#: src/app/main/ui/viewer/share_link.cljs:308 msgid "common.share-link.permissions-can-inspect" msgstr "Может проверять код" -#: src/app/main/ui/viewer/share_link.cljs:193 msgid "common.share-link.permissions-hint" msgstr "Доступ открыт для получателей ссылки" -#: src/app/main/ui/viewer/share_link.cljs:241 msgid "common.share-link.permissions-pages" msgstr "Общие страницы" -#: src/app/main/ui/viewer/share_link.cljs:183 msgid "common.share-link.placeholder" msgstr "Ссылка появится здесь" -#: src/app/main/ui/viewer/share_link.cljs:303, src/app/main/ui/viewer/share_link.cljs:313 msgid "common.share-link.team-members" msgstr "Только участники команды" -#: src/app/main/ui/viewer/share_link.cljs:171 msgid "common.share-link.title" msgstr "Поделиться прототипами" -#: src/app/main/ui/viewer/share_link.cljs:269 msgid "common.share-link.view-all" msgstr "Выбрать все" -#: src/app/main/ui/workspace/libraries.cljs:224 msgid "common.unpublish" msgstr "Снять с публикации" -#: src/app/main/ui/dashboard/projects.cljs:85 +#: src/app/main/ui/dashboard/projects.cljs msgid "dasboard.team-hero.management" msgstr "Управление командой" -#: src/app/main/ui/dashboard/projects.cljs:84 +#: src/app/main/ui/dashboard/projects.cljs msgid "dasboard.team-hero.text" msgstr "" "Penpot предназначен для команд. Приглашайте участников к совместной работе " "над проектами и файлами" -#: src/app/main/ui/dashboard/projects.cljs:82 +#: src/app/main/ui/dashboard/projects.cljs msgid "dasboard.team-hero.title" msgstr "Объединяйтесь!" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.tutorial-hero.info" msgstr "Изучите основы в Penpot весело с этим практическим руководством." #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.tutorial-hero.start" msgstr "Начать обучение" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.tutorial-hero.title" msgstr "Практическое руководство" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.walkthrough-hero.info" msgstr "Прогуляйтесь по возможностям Penpot и познакомьтесь с основными функциями." #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.walkthrough-hero.start" msgstr "Начать тур" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.walkthrough-hero.title" msgstr "Руководство по интерфейсу" -#: src/app/main/ui/settings/access_tokens.cljs:115 -msgid "dashboard.access-tokens.copied-success" -msgstr "Токен скопирован" - -#: src/app/main/ui/settings/access_tokens.cljs:147 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-180-days" msgstr "180 дней" -#: src/app/main/ui/settings/access_tokens.cljs:144 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-30-days" msgstr "30 дней" -#: src/app/main/ui/settings/access_tokens.cljs:145 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-60-days" msgstr "60 дней" -#: src/app/main/ui/settings/access_tokens.cljs:146 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-90-days" msgstr "90 дней" -#: src/app/main/ui/settings/access_tokens.cljs:143 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-never" msgstr "Никогда" -#: src/app/main/ui/dashboard/file_menu.cljs:291, src/app/main/ui/workspace/main_menu.cljs:572 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.add-shared" msgstr "Добавить как общую библиотеку" -#: src/app/main/ui/settings/profile.cljs:75 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.change-email" msgstr "Изменить эл. почту" -#: src/app/main/data/dashboard.cljs:762, src/app/main/data/dashboard.cljs:983 +#: src/app/main/data/dashboard.cljs, src/app/main/data/dashboard.cljs msgid "dashboard.copy-suffix" msgstr "(копия)" -#: src/app/main/ui/dashboard/sidebar.cljs:338 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.create-new-team" msgstr "Создать новую команду" -#: src/app/main/ui/components/context_menu_a11y.cljs:256, src/app/main/ui/dashboard/sidebar.cljs:646 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.default-team-name" msgstr "Ваш Penpot" -#: src/app/main/ui/dashboard/sidebar.cljs:571 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.delete-team" msgstr "Удалить команду" -#: src/app/main/ui/dashboard/file_menu.cljs:296, src/app/main/ui/workspace/main_menu.cljs:589 msgid "dashboard.download-binary-file" msgstr "Скачать файл Penpot (.penpot)" -#: src/app/main/ui/dashboard/file_menu.cljs:300, src/app/main/ui/workspace/main_menu.cljs:597 msgid "dashboard.download-standard-file" msgstr "Скачать стандартный файл (.svg + .json)" -#: src/app/main/ui/dashboard/file_menu.cljs:276, src/app/main/ui/dashboard/project_menu.cljs:90 +#: src/app/main/ui/dashboard/project_menu.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.duplicate" msgstr "Дублировать" -#: src/app/main/ui/dashboard/file_menu.cljs:240 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.duplicate-multi" msgstr "Дублировать файлы (%s)" -#: src/app/main/ui/dashboard/placeholder.cljs:32 -#, markdown +#: src/app/main/ui/dashboard/grid.cljs msgid "dashboard.empty-placeholder-drafts" msgstr "" "Файлы, добавленные в Библиотеки, появятся здесь. Попробуйте поделиться " "своими файлами или добавить их из наших [Библиотек и " "шаблонов](https://penpot.app/libraries-templates)." -#: src/app/main/ui/dashboard/file_menu.cljs:249 msgid "dashboard.export-binary-multi" msgstr "Скачать файлы Penpot (.penpot) (%s)" -#: src/app/main/ui/workspace/main_menu.cljs:605 msgid "dashboard.export-frames" msgstr "Экспорт кадров в PDF" -#: src/app/main/ui/export.cljs:201 +#: src/app/main/ui/export.cljs msgid "dashboard.export-frames.title" msgstr "Экспорт в формате PDF" -#, unused msgid "dashboard.export-multi" msgstr "Экспорт файлов Penpot (%s)" -#: src/app/main/ui/export.cljs:109 +#: src/app/main/ui/export.cljs msgid "dashboard.export-multiple.selected" msgstr "Выбрано %s из %s элементов" -#: src/app/main/ui/workspace/main_menu.cljs:578 +#: src/app/main/ui/workspace/header.cljs msgid "dashboard.export-shapes" msgstr "Экспорт" -#: src/app/main/ui/export.cljs:180 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.how-to" msgstr "" "Вы можете добавить настройки экспорта элементам из свойств дизайна (в " "нижней части правой боковой панели)." -#: src/app/main/ui/export.cljs:184 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.how-to-link" msgstr "Информация о настройке экспорта в Penpot." -#: src/app/main/ui/export.cljs:179 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.no-elements" msgstr "Нет элементов с настройками экспорта." -#: src/app/main/ui/export.cljs:190 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.title" msgstr "Выбор экспорта" -#: src/app/main/ui/dashboard/file_menu.cljs:252 msgid "dashboard.export-standard-multi" msgstr "Скачать стандартные файлы (.svg + .json) (%s)" -#: src/app/main/ui/export.cljs:427 msgid "dashboard.export.detail" msgstr "* Могут содержать компоненты, цвета, графику, и/или типографику." -#: src/app/main/ui/export.cljs:426 msgid "dashboard.export.explain" msgstr "" "Один или несколько файлов на экспорт используют общие библиотеки. Что нужно " "сделать с их ресурсами*?" -#: src/app/main/ui/export.cljs:435 msgid "dashboard.export.options.all.message" msgstr "Файлы с общих библиотек будут включены в экспорт, сохраняя свою привязку." -#: src/app/main/ui/export.cljs:436 msgid "dashboard.export.options.all.title" msgstr "Экспорт общих библиотек" -#: src/app/main/ui/export.cljs:437 msgid "dashboard.export.options.detach.message" msgstr "" "Общие библиотеки не будут включены в экспорт, и вложенные ресурсы не " "попадут в библиотеку экспорта. " -#: src/app/main/ui/export.cljs:438 msgid "dashboard.export.options.detach.title" msgstr "Воспринимать ресурсы общей библиотеки как обычные объекты" -#: src/app/main/ui/export.cljs:439 msgid "dashboard.export.options.merge.message" msgstr "" "Ваш файл будет экспортирован с включением всех внешних ресурсов в " "библиотеку экспорта." -#: src/app/main/ui/export.cljs:440 msgid "dashboard.export.options.merge.title" msgstr "Включить ресурсы общей библиотеки в файловые библиотеки" -#: src/app/main/ui/export.cljs:418 msgid "dashboard.export.title" msgstr "Экспорт файлов" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:309 msgid "dashboard.fonts.deleted-placeholder" msgstr "Шрифт удалён" -#: src/app/main/ui/dashboard/fonts.cljs:206 +#: src/app/main/ui/dashboard/fonts.cljs msgid "dashboard.fonts.dismiss-all" msgstr "Отменить все" -#: src/app/main/ui/dashboard/fonts.cljs:436 msgid "dashboard.fonts.empty-placeholder" msgstr "Пользовательские шрифты, которые вы загружаете, будут отображаться здесь." -#: src/app/main/ui/dashboard/fonts.cljs:194 +#: src/app/main/ui/dashboard/fonts.cljs msgid "dashboard.fonts.fonts-added" msgid_plural "dashboard.fonts.fonts-added" msgstr[0] "Шрифт добавлен" msgstr[1] "Шрифты добавлены (%s)" -#: src/app/main/ui/dashboard/fonts.cljs:170 -#, markdown msgid "dashboard.fonts.hero-text1" msgstr "" "Любой загружаемый сюда шрифт будет добавлен в семейство шрифтов и доступен " @@ -459,8 +410,6 @@ msgstr "" "загрузки допустимы следующие форматы: **TTF, OTF и WOFF** (используйте один " "из них)." -#: src/app/main/ui/dashboard/fonts.cljs:182 -#, markdown msgid "dashboard.fonts.hero-text2" msgstr "" "Вам следует загружать только собственные шрифты, или у которых есть " @@ -469,2882 +418,2724 @@ msgstr "" "Также можете прочитать о [лицензированием " "шрифтов](https://www.typography.com/faq) в целом." -#: src/app/main/ui/dashboard/fonts.cljs:202 +#: src/app/main/ui/dashboard/fonts.cljs msgid "dashboard.fonts.upload-all" msgstr "Загрузить все" -#: src/app/main/ui/dashboard/import.cljs:472, src/app/main/ui/dashboard/project_menu.cljs:108 msgid "dashboard.import" msgstr "Импорт файлов Penpot" -#: src/app/main/ui/dashboard/import.cljs:304, src/app/worker/import.cljs:753, src/app/worker/import.cljs:755 msgid "dashboard.import.analyze-error" msgstr "Ой! Не вышло импортировать этот файл" -#: src/app/main/ui/dashboard/import.cljs:308 msgid "dashboard.import.import-error" msgstr "Есть проблема с импортом файла. Файл не был импортирован." -#: src/app/main/ui/dashboard/import.cljs:493 msgid "dashboard.import.import-message" msgstr "Файлы успешно импортированы (%s)." -#: src/app/main/ui/dashboard/import.cljs:481, src/app/main/ui/dashboard/import.cljs:488 msgid "dashboard.import.import-warning" msgstr "Некоторые файлы содержали неверные объекты, которые были удалены." -#: src/app/main/ui/dashboard/import.cljs:144 msgid "dashboard.import.progress.process-colors" msgstr "Обработка цветов" -#: src/app/main/ui/dashboard/import.cljs:153 msgid "dashboard.import.progress.process-components" msgstr "Обработка компонентов" -#: src/app/main/ui/dashboard/import.cljs:150 msgid "dashboard.import.progress.process-media" msgstr "Обработка медиа" -#: src/app/main/ui/dashboard/import.cljs:141 msgid "dashboard.import.progress.process-page" msgstr "Обработка страницы: %s" -#: src/app/main/ui/dashboard/import.cljs:147 msgid "dashboard.import.progress.process-typographies" msgstr "Обработка типографики" -#: src/app/main/ui/dashboard/import.cljs:135 msgid "dashboard.import.progress.upload-data" msgstr "Загрузка данных на сервер (%s/%s)" -#: src/app/main/ui/dashboard/import.cljs:138 msgid "dashboard.import.progress.upload-media" msgstr "Загрузка файла: %s" -#: src/app/main/ui/dashboard/team.cljs:109 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.invite-profile" msgstr "Пригласить людей" -#: src/app/main/ui/dashboard/sidebar.cljs:547, src/app/main/ui/dashboard/sidebar.cljs:556, src/app/main/ui/dashboard/sidebar.cljs:563, src/app/main/ui/dashboard/team.cljs:312 +#: src/app/main/ui/dashboard/sidebar.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.leave-team" msgstr "Покинуть команду" -#: src/app/main/ui/dashboard/templates.cljs:88, src/app/main/ui/dashboard/templates.cljs:163 msgid "dashboard.libraries-and-templates" msgstr "Библиотеки и шаблоны" -#: src/app/main/ui/dashboard/templates.cljs:164 msgid "dashboard.libraries-and-templates.explore" msgstr "Узнайте больше о них и о том, как внести свой вклад" -#: src/app/main/ui/dashboard/import.cljs:365 msgid "dashboard.libraries-and-templates.import-error" msgstr "Возникла проблема с импортом шаблона. Шаблон не был импортирован." -#: src/app/main/ui/dashboard/libraries.cljs:53 +#: src/app/main/ui/dashboard/libraries.cljs msgid "dashboard.libraries-title" msgstr "Библиотеки" -#: src/app/main/ui/dashboard/placeholder.cljs:45 +#: src/app/main/ui/dashboard/grid.cljs msgid "dashboard.loading-files" msgstr "загрузка ваших файлов …" -#: src/app/main/ui/dashboard/fonts.cljs:431 msgid "dashboard.loading-fonts" msgstr "загрузка ваших шрифтов …" -#: src/app/main/ui/dashboard/file_menu.cljs:281, src/app/main/ui/dashboard/project_menu.cljs:100 +#: src/app/main/ui/dashboard/project_menu.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.move-to" msgstr "Переместить" -#: src/app/main/ui/dashboard/file_menu.cljs:245 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.move-to-multi" msgstr "Переместить файлы (%s)" -#: src/app/main/ui/dashboard/file_menu.cljs:226 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.move-to-other-team" msgstr "Перевести в другую команду" -#: src/app/main/ui/dashboard/files.cljs:105, src/app/main/ui/dashboard/projects.cljs:252, src/app/main/ui/dashboard/projects.cljs:253 +#: src/app/main/ui/dashboard/projects.cljs, +#: src/app/main/ui/dashboard/files.cljs msgid "dashboard.new-file" msgstr "+ Новый файл" -#: src/app/main/data/dashboard.cljs:958, src/app/main/data/dashboard.cljs:1181 +#: src/app/main/data/dashboard.cljs msgid "dashboard.new-file-prefix" msgstr "Новый файл" -#: src/app/main/ui/dashboard/projects.cljs:55 +#: src/app/main/ui/dashboard/projects.cljs msgid "dashboard.new-project" msgstr "+ Новый проект" -#: src/app/main/data/dashboard.cljs:726, src/app/main/data/dashboard.cljs:1184 +#: src/app/main/data/dashboard.cljs msgid "dashboard.new-project-prefix" msgstr "Новый проект" -#: src/app/main/ui/dashboard/search.cljs:60 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.no-matches-for" msgstr "Совпадений для “%s“ не найдено" -#: src/app/main/ui/dashboard/sidebar.cljs:827 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.no-projects-placeholder" msgstr "Закреплённые проекты будут здесь" -#: src/app/main/ui/auth/verify_token.cljs:33 +#: src/app/main/ui/auth/verify_token.cljs msgid "dashboard.notifications.email-changed-successfully" msgstr "Ваш адрес эл. почты был успешно обновлён" -#: src/app/main/ui/auth/verify_token.cljs:27 +#: src/app/main/ui/auth/verify_token.cljs msgid "dashboard.notifications.email-verified-successfully" msgstr "Ваш email адрес успешно подтвержден" -#: src/app/main/ui/settings/password.cljs:37 +#: src/app/main/ui/settings/password.cljs msgid "dashboard.notifications.password-saved" msgstr "Пароль успешно сохранен!" -#: src/app/main/ui/dashboard/team.cljs:1081 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.num-of-members" msgstr "Участников: %s" -#: src/app/main/ui/dashboard/file_menu.cljs:267 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.open-in-new-tab" msgstr "Открыть в новой вкладке" -#: src/app/main/ui/dashboard/files.cljs:117, src/app/main/ui/dashboard/projects.cljs:260, src/app/main/ui/dashboard/projects.cljs:261 msgid "dashboard.options" msgstr "Опции" -#: src/app/main/ui/settings/password.cljs:106, src/app/main/ui/settings/password.cljs:119 +#: src/app/main/ui/settings/password.cljs msgid "dashboard.password-change" msgstr "Изменить пароль" -#: src/app/main/ui/dashboard/pin_button.cljs:24, src/app/main/ui/dashboard/project_menu.cljs:95 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.pin-unpin" msgstr "Закрепить/Открепить" -#: src/app/main/ui/dashboard/projects.cljs:51 +#: src/app/main/ui/dashboard/projects.cljs msgid "dashboard.projects-title" msgstr "Проекты" -#: src/app/main/ui/settings/profile.cljs:86 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.remove-account" msgstr "Хотите удалить свой аккаунт?" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.remove-shared" msgstr "Снять статус общей библиотеки" -#: src/app/main/ui/settings/profile.cljs:78 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.save-settings" msgstr "Сохранить настройки" -#: src/app/main/ui/dashboard/sidebar.cljs:246, src/app/main/ui/dashboard/sidebar.cljs:247 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.search-placeholder" msgstr "Поиск…" -#: src/app/main/ui/dashboard/search.cljs:55 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.searching-for" msgstr "Поиск \"%s\"…" -#: src/app/main/ui/settings/options.cljs:56 +#: src/app/main/ui/settings/options.cljs msgid "dashboard.select-ui-language" msgstr "Выберите язык интерфейса" -#: src/app/main/ui/settings/options.cljs:63 +#: src/app/main/ui/settings/options.cljs msgid "dashboard.select-ui-theme" msgstr "Выберите тему" -#: src/app/main/ui/dashboard/projects.cljs:282 +#: src/app/main/ui/dashboard/grid.cljs msgid "dashboard.show-all-files" msgstr "Показать все файлы" -#: src/app/main/ui/dashboard/file_menu.cljs:96 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-delete-file" msgid_plural "dashboard.success-delete-file" msgstr[0] "Ваш файл успешно удален" msgstr[1] "Ваши файлы успешно удалены" -#: src/app/main/ui/dashboard/project_menu.cljs:59 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.success-delete-project" msgstr "Ваш проект удалён" -#: src/app/main/ui/dashboard/project_menu.cljs:33 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.success-duplicate-project" msgstr "Ваш проект продублирован" -#: src/app/main/ui/dashboard/file_menu.cljs:130, src/app/main/ui/dashboard/grid.cljs:558, src/app/main/ui/dashboard/sidebar.cljs:152 +#: src/app/main/ui/dashboard/grid.cljs, src/app/main/ui/dashboard/sidebar.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-move-file" msgstr "Ваш файл успешно перемещён" -#: src/app/main/ui/dashboard/file_menu.cljs:129 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-move-files" msgstr "Ваши файлы успешно перемещены" -#: src/app/main/ui/dashboard/project_menu.cljs:54 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.success-move-project" msgstr "Ваш проект перемещён" -#: src/app/main/ui/dashboard/team.cljs:1052 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.team-info" msgstr "О команде" -#: src/app/main/ui/dashboard/team.cljs:1070 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.team-members" msgstr "Участники команды" -#: src/app/main/ui/dashboard/team.cljs:1085 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.team-projects" msgstr "Командные проекты" -#: src/app/main/ui/settings/options.cljs:61 +#: src/app/main/ui/settings/options.cljs msgid "dashboard.theme-change" msgstr "Тема интерфейса пользователя" -#: src/app/main/ui/dashboard/search.cljs:42 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.title-search" msgstr "Результаты поиска" -#: src/app/main/ui/dashboard/search.cljs:50 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.type-something" msgstr "Введите для поиска" -#: src/app/main/ui/dashboard/file_menu.cljs:287, src/app/main/ui/workspace/main_menu.cljs:566 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.unpublish-shared" msgstr "Снять библиотеку с публикации" -#: src/app/main/ui/settings/options.cljs:71 +#: src/app/main/ui/settings/profile.cljs, +#: src/app/main/ui/settings/password.cljs, +#: src/app/main/ui/settings/options.cljs msgid "dashboard.update-settings" msgstr "Обновить настройки" -#: src/app/main/ui/dashboard/team.cljs:861 msgid "dashboard.webhooks.active" msgstr "Активен" -#: src/app/main/ui/dashboard/team.cljs:852 msgid "dashboard.webhooks.content-type" msgstr "Тип контента" -#: src/app/main/ui/dashboard/team.cljs:885 msgid "dashboard.webhooks.create" msgstr "Создать вебхук" -#: src/app/main/ui/settings.cljs:31 +#: src/app/main/ui/settings.cljs msgid "dashboard.your-account-title" msgstr "Ваш аккаунт" -#: src/app/main/ui/settings/profile.cljs:70 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.your-email" msgstr "Эл. почта" -#: src/app/main/ui/settings/profile.cljs:62 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.your-name" msgstr "Ваше имя" -#: src/app/main/ui/dashboard/file_menu.cljs:38, src/app/main/ui/dashboard/fonts.cljs:33, src/app/main/ui/dashboard/libraries.cljs:42, src/app/main/ui/dashboard/projects.cljs:318, src/app/main/ui/dashboard/search.cljs:30, src/app/main/ui/dashboard/sidebar.cljs:312, src/app/main/ui/dashboard/team.cljs:495, src/app/main/ui/dashboard/team.cljs:729, src/app/main/ui/dashboard/team.cljs:991, src/app/main/ui/dashboard/team.cljs:1038 +#: src/app/main/ui/dashboard/search.cljs, src/app/main/ui/dashboard/team.cljs, +#: src/app/main/ui/dashboard/libraries.cljs, +#: src/app/main/ui/dashboard/projects.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.your-penpot" msgstr "Ваш Penpot" -#: src/app/main/ui/alert.cljs:32 +#: src/app/main/ui/alert.cljs msgid "ds.alert-ok" msgstr "Ок" -#: src/app/main/ui/alert.cljs:31, src/app/main/ui/alert.cljs:34 +#: src/app/main/ui/alert.cljs msgid "ds.alert-title" msgstr "Внимание" -#: src/app/main/ui/confirm.cljs:83 +#: src/app/main/ui/confirm.cljs msgid "ds.component-subtitle" msgstr "Компоненты для обновления:" -#: src/app/main/ui/confirm.cljs:36, src/app/main/ui/workspace/plugins.cljs:246 +#: src/app/main/ui/confirm.cljs msgid "ds.confirm-cancel" msgstr "Отмена" -#: src/app/main/ui/confirm.cljs:37, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:141 +#: src/app/main/ui/confirm.cljs msgid "ds.confirm-ok" msgstr "Oк" -#: src/app/main/ui/confirm.cljs:35, src/app/main/ui/confirm.cljs:39 +#: src/app/main/ui/confirm.cljs, src/app/main/ui/confirm.cljs msgid "ds.confirm-title" msgstr "Вы уверены?" -#: src/app/main/ui/auth/login.cljs:62 +#: src/app/main/ui/auth/login.cljs msgid "errors.auth-provider-not-configured" msgstr "Провайдер аутентификации не настроен." -#: src/app/main/errors.cljs:104 msgid "errors.auth.unable-to-login" msgstr "Кажется, сеанс истёк. Войдите снова." -#: src/app/main/data/fonts.cljs:189 msgid "errors.bad-font" msgstr "Шрифт %s не может быть загружен" -#: src/app/main/data/fonts.cljs:188 msgid "errors.bad-font-plural" msgstr "Шрифты %s не могут быть загружены" -#: src/app/main/data/workspace.cljs:1598 +#: src/app/main/data/workspace.cljs msgid "errors.clipboard-not-implemented" msgstr "Ваш браузер не поддерживает эту операцию" -#: src/app/main/ui/auth/verify_token.cljs:82, src/app/main/ui/settings/change_email.cljs:46 +#: src/app/main/ui/auth/verify_token.cljs, +#: src/app/main/ui/settings/change_email.cljs msgid "errors.email-already-exists" msgstr "Такая эл. почта уже используется" -#: src/app/main/ui/auth/verify_token.cljs:87 +#: src/app/main/ui/auth/verify_token.cljs msgid "errors.email-already-validated" msgstr "Эл. почта уже подтверждена." -#: src/app/main/ui/settings/password.cljs:28 msgid "errors.email-as-password" msgstr "Нельзя указывать в качестве пароля адрес эл. почты" -#: src/app/main/ui/auth/recovery_request.cljs:63, src/app/main/ui/dashboard/team.cljs:578, src/app/main/ui/settings/change_email.cljs:54 +#: src/app/main/ui/auth/register.cljs, +#: src/app/main/ui/auth/recovery_request.cljs, +#: src/app/main/ui/settings/change_email.cljs, +#: src/app/main/ui/dashboard/team.cljs msgid "errors.email-has-permanent-bounces" msgstr "Эл. почта «%s» постоянно недоступна." -#: src/app/main/ui/settings/change_email.cljs:35 +#: src/app/main/ui/settings/change_email.cljs msgid "errors.email-invalid-confirmation" msgstr "Эл. почта для подтверждения должна совпадать" -#: src/app/main/ui/dashboard/team.cljs:170 msgid "errors.email-spam-or-permanent-bounces" msgstr "Эл. почта «%s» была отмечена как спам или постоянно недоступна." -#: src/app/main/data/users.cljs:709, src/app/main/ui/auth/login.cljs:65, src/app/main/ui/auth/login.cljs:116, src/app/main/ui/auth/register.cljs:69, src/app/main/ui/auth/register.cljs:237, src/app/main/ui/auth/verify_token.cljs:92, src/app/main/ui/dashboard/team.cljs:173, src/app/main/ui/onboarding/team_choice.cljs:95, src/app/main/ui/settings/access_tokens.cljs:91, src/app/main/ui/settings/feedback.cljs:52 +#: src/app/main/ui/auth/verify_token.cljs, +#: src/app/main/ui/settings/feedback.cljs, src/app/main/ui/dashboard/team.cljs msgid "errors.generic" msgstr "Что-то пошло не так." -#: src/app/main/ui/components/color_input.cljs:57 +#: src/app/main/ui/components/color_input.cljs msgid "errors.invalid-color" msgstr "Неверный цвет" -#: src/app/main/ui/static.cljs:44 msgid "errors.invite-invalid.info" msgstr "Возможно, это приглашение отменено или истёк срок его действия." -#: src/app/main/ui/auth/login.cljs:101 +#: src/app/main/ui/auth/login.cljs msgid "errors.ldap-disabled" msgstr "Вход c LDAP отключён." -#: src/app/main/data/workspace/media.cljs:184 +#: src/app/main/data/workspace/persistence.cljs msgid "errors.media-too-large" msgstr "Изображение слишком большое для вставки." -#: src/app/main/data/media.cljs:68, src/app/main/data/workspace/media.cljs:187 +#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs msgid "errors.media-type-mismatch" msgstr "Формат медиа не соответует расширению файла." -#: src/app/main/data/media.cljs:65, src/app/main/data/workspace/media.cljs:172, src/app/main/data/workspace/media.cljs:175, src/app/main/data/workspace/media.cljs:178, src/app/main/data/workspace/media.cljs:181 +#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs msgid "errors.media-type-not-allowed" msgstr "Неверное медиа." -#: src/app/main/ui/dashboard/team.cljs:574 +#: src/app/main/ui/dashboard/team.cljs msgid "errors.member-is-muted" msgstr "Невозможно пригласить адресата с недоступным адресом электронной почты." -#: src/app/main/ui/settings/password.cljs:61 +#: src/app/main/ui/settings/password.cljs msgid "errors.password-invalid-confirmation" msgstr "Пароль для подтверждения должен совпадать" -#: src/app/main/ui/settings/password.cljs:64 +#: src/app/main/ui/settings/password.cljs msgid "errors.password-too-short" msgstr "Пароль должен быть минимум 8 символов" -#: src/app/main/data/users.cljs:703, src/app/main/ui/auth/login.cljs:97, src/app/main/ui/auth/login.cljs:105 msgid "errors.profile-blocked" msgstr "Профиль заблокирован" -#: src/app/main/ui/auth/recovery_request.cljs:60, src/app/main/ui/dashboard/team.cljs:164, src/app/main/ui/dashboard/team.cljs:570, src/app/main/ui/settings/change_email.cljs:50 +#: src/app/main/ui/auth/recovery_request.cljs, +#: src/app/main/ui/settings/change_email.cljs, +#: src/app/main/ui/dashboard/team.cljs msgid "errors.profile-is-muted" msgstr "Ваш адрес электронной почты не доступен." -#: src/app/main/data/users.cljs:701, src/app/main/ui/auth/register.cljs:60 +#: src/app/main/ui/auth/register.cljs msgid "errors.registration-disabled" msgstr "Регистрация сейчас отключена." -#: src/app/main/ui/dashboard/sidebar.cljs:365, src/app/main/ui/dashboard/team.cljs:359 msgid "errors.team-leave.insufficient-members" msgstr "" "Недостаточно участников, чтобы покинуть команду, вероятно, вы хотите её " "удалить." -#: src/app/main/ui/dashboard/sidebar.cljs:368, src/app/main/ui/dashboard/team.cljs:362 msgid "errors.team-leave.member-does-not-exists" msgstr "Участник, которого вы пытаетесь назначить, не существует." -#: src/app/main/ui/dashboard/sidebar.cljs:371, src/app/main/ui/dashboard/team.cljs:365 msgid "errors.team-leave.owner-cant-leave" msgstr "Нужно переназначить роль владельца перед тем, как покинуть команду." -#: src/app/main/data/media.cljs:71 +#: src/app/main/data/media.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, +#: src/app/main/ui/inspect/exports.cljs msgid "errors.unexpected-error" msgstr "Произошла ошибка." -#: src/app/main/ui/auth/verify_token.cljs:60 +#: src/app/main/ui/auth/verify_token.cljs msgid "errors.unexpected-token" msgstr "Неизвестный токен" -#: src/app/main/ui/auth/login.cljs:109, src/app/main/ui/auth/login.cljs:113 +#: src/app/main/ui/auth/login.cljs msgid "errors.wrong-credentials" msgstr "Эл. почта или пароль неверны." -#: src/app/main/ui/settings/password.cljs:25 +#: src/app/main/ui/settings/password.cljs msgid "errors.wrong-old-password" msgstr "Старый пароль неверный" -#: src/app/main/ui/settings/feedback.cljs:77 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.description" msgstr "Описание" -#: src/app/main/ui/settings/feedback.cljs:95 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.discourse-go-to" msgstr "Перейти на форум Penpot" -#: src/app/main/ui/settings/feedback.cljs:89 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.discourse-subtitle1" msgstr "" "Мы рады вас здесь видеть. Если вам нужна помощь, пожалуйста, поищите ответ, " "возможно он уже есть." -#: src/app/main/ui/settings/feedback.cljs:88 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.discourse-title" msgstr "Сообщество Penpot" -#: src/app/main/ui/settings/feedback.cljs:72 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.subject" msgstr "Краткое описание" -#: src/app/main/ui/settings/feedback.cljs:69 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.subtitle" msgstr "" "Пожалуйста, опишите причину обращения: проблема в работе, идея или " "сомнение. Участник нашей команды даст ответ в ближайшее время." -#: src/app/main/ui/settings/feedback.cljs:68 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.title" msgstr "Эл. почта" -#: src/app/main/ui/settings/feedback.cljs:105 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.twitter-go-to" msgstr "Перейти в X" -#: src/app/main/ui/settings/feedback.cljs:99 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.twitter-subtitle1" msgstr "Здесь, чтобы помочь с вашими техническими запросами." -#: src/app/main/ui/settings/feedback.cljs:98 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.twitter-title" msgstr "Аккаунт поддержки в X" -#: src/app/main/ui/settings/password.cljs:30 +#: src/app/main/ui/settings/password.cljs msgid "generic.error" msgstr "Произошла ошибка" -#: src/app/main/ui/viewer/inspect/attributes/blur.cljs:26 +#: src/app/main/ui/inspect/attributes/blur.cljs msgid "inspect.attributes.blur" msgstr "Размытие" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:115 +#: src/app/main/ui/inspect/attributes/blur.cljs msgid "inspect.attributes.blur.value" msgstr "Значение" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:112 +#: src/app/main/ui/inspect/attributes/common.cljs msgid "inspect.attributes.color.hex" msgstr "HEX" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:114 +#: src/app/main/ui/inspect/attributes/common.cljs msgid "inspect.attributes.color.hsla" msgstr "HSLA" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:113 +#: src/app/main/ui/inspect/attributes/common.cljs msgid "inspect.attributes.color.rgba" msgstr "RGBA" -#: src/app/main/ui/viewer/inspect/attributes/fill.cljs:57 +#: src/app/main/ui/inspect/attributes/fill.cljs msgid "inspect.attributes.fill" msgstr "Заливка" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:99, src/app/main/ui/viewer/inspect/attributes/image.cljs:51 +#: src/app/main/ui/inspect/attributes/image.cljs msgid "inspect.attributes.image.download" msgstr "Скачать оригинал" -#: src/app/main/ui/viewer/inspect/attributes/image.cljs:39 +#: src/app/main/ui/inspect/attributes/image.cljs msgid "inspect.attributes.image.height" msgstr "Высота" -#: src/app/main/ui/viewer/inspect/attributes/image.cljs:32 +#: src/app/main/ui/inspect/attributes/image.cljs msgid "inspect.attributes.image.width" msgstr "Ширина" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout" msgstr "Размещение" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.height" msgstr "Высота" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.left" msgstr "Слева" -#: src/app/main/ui/inspect/attributes/layout.cljs, src/app/main/ui/inspect/attributes/layout.cljs -#, unused +#: src/app/main/ui/inspect/attributes/layout.cljs, +#: src/app/main/ui/inspect/attributes/layout.cljs msgid "inspect.attributes.layout.radius" msgstr "Радиус" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.rotation" msgstr "Вращение" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.top" msgstr "Сверху" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.width" msgstr "Ширина" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:57 +#: src/app/main/ui/inspect/attributes/shadow.cljs msgid "inspect.attributes.shadow" msgstr "Тень" -#: src/app/main/ui/viewer/inspect/attributes/stroke.cljs:52 +#: src/app/main/ui/inspect/attributes/stroke.cljs msgid "inspect.attributes.stroke" msgstr "Обводка" -#, permanent, unused msgid "inspect.attributes.stroke.alignment.center" msgstr "Центр" -#, permanent, unused msgid "inspect.attributes.stroke.alignment.inner" msgstr "Внутрь" -#, permanent, unused msgid "inspect.attributes.stroke.alignment.outer" msgstr "Наружу" -#, unused msgid "inspect.attributes.stroke.style.dotted" msgstr "Точечная" -#, unused msgid "inspect.attributes.stroke.style.mixed" msgstr "Смешанная" -#, unused msgid "inspect.attributes.stroke.style.none" msgstr "Нет" -#, unused msgid "inspect.attributes.stroke.style.solid" msgstr "Сплошная" #: src/app/main/ui/inspect/attributes/stroke.cljs -#, unused msgid "inspect.attributes.stroke.width" msgstr "Толщина" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:81, src/app/main/ui/viewer/inspect/attributes/text.cljs:194 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography" msgstr "Текст" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:89 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.font-family" msgstr "Гарнитура" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:107 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.font-size" msgstr "Размер" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:98 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.font-style" msgstr "Шрифт" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:134 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.letter-spacing" msgstr "Трекинг" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:125 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.line-height" msgstr "Интерлиньяж" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:143 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.text-decoration" msgstr "Оформление" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:145 msgid "inspect.attributes.typography.text-decoration.none" msgstr "Нет" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:146 msgid "inspect.attributes.typography.text-decoration.strikethrough" msgstr "Перечёркнутый" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:147 msgid "inspect.attributes.typography.text-decoration.underline" msgstr "Подчёркнутый" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:156 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.text-transform" msgstr "Регистр" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:158 msgid "inspect.attributes.typography.text-transform.lowercase" msgstr "Нижний регистр" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:159 msgid "inspect.attributes.typography.text-transform.none" msgstr "Какой есть" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:160 msgid "inspect.attributes.typography.text-transform.titlecase" msgstr "Регистр Заголовка" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:161 msgid "inspect.attributes.typography.text-transform.uppercase" msgstr "Верхний регистр" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:125 +#: src/app/main/ui/inspect/right_sidebar.cljs msgid "inspect.tabs.code" msgstr "Код" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:98 msgid "inspect.tabs.code.selected.circle" msgstr "Круг" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:99 msgid "inspect.tabs.code.selected.component" msgstr "Компонент" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:100 msgid "inspect.tabs.code.selected.curve" msgstr "Кривая" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:101 msgid "inspect.tabs.code.selected.frame" msgstr "Кадр" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:102 msgid "inspect.tabs.code.selected.group" msgstr "Группа" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:103 msgid "inspect.tabs.code.selected.image" msgstr "Изображение" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:104 msgid "inspect.tabs.code.selected.mask" msgstr "Маска" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:93 +#: src/app/main/ui/inspect/right_sidebar.cljs msgid "inspect.tabs.code.selected.multiple" msgstr "Выделено: %s" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:105 msgid "inspect.tabs.code.selected.path" msgstr "Контур" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:106 msgid "inspect.tabs.code.selected.rect" msgstr "Прямоугольник" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:107 msgid "inspect.tabs.code.selected.svg-raw" msgstr "SVG" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:108 msgid "inspect.tabs.code.selected.text" msgstr "Текст" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:115 +#: src/app/main/ui/inspect/right_sidebar.cljs msgid "inspect.tabs.info" msgstr "Информация" -#: src/app/main/ui/workspace/main_menu.cljs:158 +#: src/app/main/ui/workspace/header.cljs msgid "label.shortcuts" msgstr "Сочетания клавиш" -#: src/app/main/ui/dashboard/import.cljs:527 msgid "labels.accept" msgstr "Принять" -#: src/app/main/ui/dashboard/fonts.cljs:175 msgid "labels.add-custom-font" msgstr "Добавить произвольный шрифт" -#: src/app/main/ui/dashboard/team.cljs:120, src/app/main/ui/dashboard/team.cljs:276, src/app/main/ui/dashboard/team.cljs:519, src/app/main/ui/dashboard/team.cljs:549, src/app/main/ui/onboarding/team_choice.cljs:67 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs msgid "labels.admin" msgstr "Администратор" #: src/app/main/ui/workspace/comments.cljs -#, unused msgid "labels.all" msgstr "Все" -#: src/app/main/ui/auth.cljs:37 msgid "labels.and" msgstr "и" -#: src/app/main/ui/onboarding/team_choice.cljs:162 msgid "labels.back" msgstr "Назад" -#: src/app/main/ui/static.cljs:59 +#: src/app/main/ui/static.cljs msgid "labels.bad-gateway.desc-message" msgstr "Возможны технические работы. Пожалуйста, зайдите чуть позже." -#: src/app/main/ui/static.cljs:58 +#: src/app/main/ui/static.cljs msgid "labels.bad-gateway.main-message" msgstr "Bad Gateway" -#: src/app/main/data/common.cljs:112, src/app/main/ui/dashboard/change_owner.cljs:69, src/app/main/ui/dashboard/import.cljs:514, src/app/main/ui/dashboard/team.cljs:868, src/app/main/ui/delete_shared.cljs:35, src/app/main/ui/export.cljs:164, src/app/main/ui/export.cljs:460, src/app/main/ui/settings/access_tokens.cljs:188, src/app/main/ui/viewer/share_link.cljs:203, src/app/main/ui/workspace/sidebar/assets/groups.cljs:149 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.cancel" msgstr "Отмена" -#: src/app/main/ui/dashboard/projects.cljs:93, src/app/main/ui/export.cljs:478, src/app/main/ui/settings/access_tokens.cljs:183, src/app/main/ui/viewer/login.cljs:77, src/app/main/ui/viewer/share_link.cljs:174, src/app/main/ui/workspace/libraries.cljs:522 msgid "labels.close" msgstr "Закрыть" -#: src/app/main/ui/dashboard/comments.cljs:104, src/app/main/ui/viewer/comments.cljs:70, src/app/main/ui/workspace/comments.cljs:126 +#: src/app/main/ui/dashboard/comments.cljs msgid "labels.comments" msgstr "Комментарии" -#: src/app/main/ui/dashboard/sidebar.cljs:985, src/app/main/ui/workspace/main_menu.cljs:110 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.community" msgstr "Сообщество" -#: src/app/main/ui/settings/password.cljs:103 +#: src/app/main/ui/settings/password.cljs msgid "labels.confirm-password" msgstr "Подтвердите пароль" -#: src/app/main/ui/dashboard/import.cljs:520, src/app/main/ui/export.cljs:465, src/app/main/ui/onboarding/newsletter.cljs:101 msgid "labels.continue" msgstr "Продолжить" -#, unused msgid "labels.continue-with" msgstr "Продолжить с" -#: src/app/main/ui/viewer/login.cljs:75 msgid "labels.continue-with-penpot" msgstr "Вы можете продолжить с аккаунтом Penpot" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:157, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:190 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "labels.create" msgstr "Создать" -#: src/app/main/ui/dashboard/team_form.cljs:101, src/app/main/ui/dashboard/team_form.cljs:121 +#: src/app/main/ui/dashboard/team_form.cljs, +#: src/app/main/ui/dashboard/team_form.cljs msgid "labels.create-team" msgstr "Создать новую команду" -#: src/app/main/ui/dashboard/team_form.cljs:113 +#: src/app/main/ui/dashboard/team_form.cljs msgid "labels.create-team.placeholder" msgstr "Введите название новой команды" -#, unused msgid "labels.custom-fonts" msgstr "Произвольные шрифты" -#: src/app/main/ui/settings/sidebar.cljs:73 +#: src/app/main/ui/settings/sidebar.cljs msgid "labels.dashboard" msgstr "Панель управления" -#: src/app/main/ui/dashboard/file_menu.cljs:306, src/app/main/ui/dashboard/fonts.cljs:255, src/app/main/ui/dashboard/fonts.cljs:332, src/app/main/ui/dashboard/fonts.cljs:346, src/app/main/ui/dashboard/project_menu.cljs:115, src/app/main/ui/dashboard/team.cljs:904, src/app/main/ui/settings/access_tokens.cljs:209, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:209 +#: src/app/main/ui/dashboard/project_menu.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.delete" msgstr "Удалить" -#: src/app/main/ui/comments.cljs:357 +#: src/app/main/ui/comments.cljs msgid "labels.delete-comment" msgstr "Удалить комментарий" -#: src/app/main/ui/comments.cljs:354 +#: src/app/main/ui/comments.cljs msgid "labels.delete-comment-thread" msgstr "Удалить обсуждение" -#: src/app/main/ui/dashboard/team.cljs:648 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.delete-invitation" msgstr "Удалить приглашение" -#: src/app/main/ui/dashboard/file_menu.cljs:262 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.delete-multi-files" msgstr "Удалить файлы (%s)" -#: src/app/main/ui/dashboard/file_menu.cljs:28, src/app/main/ui/dashboard/files.cljs:72, src/app/main/ui/dashboard/files.cljs:156, src/app/main/ui/dashboard/projects.cljs:220, src/app/main/ui/dashboard/projects.cljs:224, src/app/main/ui/dashboard/sidebar.cljs:791 +#: src/app/main/ui/dashboard/projects.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs, +#: src/app/main/ui/dashboard/files.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.drafts" msgstr "Черновики" -#: src/app/main/ui/comments.cljs:350, src/app/main/ui/dashboard/fonts.cljs:252, src/app/main/ui/dashboard/team.cljs:902, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:205 +#: src/app/main/ui/comments.cljs msgid "labels.edit" msgstr "Редактировать" -#, unused msgid "labels.edit-file" msgstr "Редактировать" -#: src/app/main/ui/dashboard/team.cljs:118, src/app/main/ui/dashboard/team.cljs:279, src/app/main/ui/dashboard/team.cljs:520, src/app/main/ui/dashboard/team.cljs:553, src/app/main/ui/onboarding/team_choice.cljs:66 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs msgid "labels.editor" msgstr "Редактор" -#: src/app/main/ui/dashboard/team.cljs:661 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.expired-invitation" msgstr "Истекло" -#: src/app/main/ui/export.cljs:173 msgid "labels.export" msgstr "Экспорт" -#: src/app/main/ui/settings/feedback.cljs:51 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.feedback-disabled" msgstr "Обратная связь отключена" -#: src/app/main/ui/settings/feedback.cljs:42 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.feedback-sent" msgstr "Отзыв отправлен" -#: src/app/main/ui/dashboard/fonts.cljs:412 msgid "labels.font-family" msgstr "Семейство шрифтов" -#, unused msgid "labels.font-providers" msgstr "Поставщики шрифтов" -#: src/app/main/ui/dashboard/fonts.cljs:413 msgid "labels.font-variants" msgstr "Начертания" -#: src/app/main/ui/dashboard/fonts.cljs:52, src/app/main/ui/dashboard/sidebar.cljs:811 msgid "labels.fonts" msgstr "Шрифты" -#: src/app/main/ui/dashboard/sidebar.cljs:1015, src/app/main/ui/workspace/main_menu.cljs:142 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.github-repo" msgstr "Репозиторий на Github" -#: src/app/main/ui/dashboard/sidebar.cljs:1032, src/app/main/ui/settings/sidebar.cljs:113, src/app/main/ui/workspace/main_menu.cljs:171 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/settings/sidebar.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.give-feedback" msgstr "Оставить отзыв" -#: src/app/main/ui/auth/recovery_request.cljs:110, src/app/main/ui/auth/register.cljs:285, src/app/main/ui/viewer/login.cljs:117 msgid "labels.go-back" msgstr "Назад" -#: src/app/main/ui/dashboard/sidebar.cljs:978, src/app/main/ui/workspace/main_menu.cljs:102 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.help-center" msgstr "Помощь" -#: src/app/main/ui/viewer/comments.cljs:103, src/app/main/ui/workspace/comments.cljs:67 +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs msgid "labels.hide-resolved-comments" msgstr "Скрыть решённые комментарии" -#: src/app/main/ui/dashboard/fonts.cljs:410 msgid "labels.installed-fonts" msgstr "Установленные шрифты" -#: src/app/main/ui/static.cljs:144 +#: src/app/main/ui/static.cljs msgid "labels.internal-error.desc-message" msgstr "Что-то пошло не так. Пожалуйста, повторите или обратитесь в поддержку." -#: src/app/main/ui/static.cljs:143 +#: src/app/main/ui/static.cljs msgid "labels.internal-error.main-message" msgstr "Внутренняя ошибка" -#: src/app/main/ui/dashboard/sidebar.cljs:516, src/app/main/ui/dashboard/team.cljs:89, src/app/main/ui/dashboard/team.cljs:97, src/app/main/ui/dashboard/team.cljs:708 +#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.invitations" msgstr "Приглашения" -#: src/app/main/ui/settings/options.cljs:51 +#: src/app/main/ui/settings/options.cljs msgid "labels.language" msgstr "Язык" -#: src/app/main/ui/dashboard/sidebar.cljs:1008, src/app/main/ui/workspace/main_menu.cljs:134 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.libraries-and-templates" msgstr "Библиотеки и шаблоны" -#: src/app/main/ui/viewer/header.cljs:203 msgid "labels.log-or-sign" msgstr "Войти или зарегистрироваться" -#: src/app/main/ui/dashboard/sidebar.cljs:1040 +#: src/app/main/ui/settings.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.logout" msgstr "Выйти" -#: src/app/main/ui/dashboard/team.cljs:468 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.member" msgstr "Участник" -#: src/app/main/ui/dashboard/sidebar.cljs:510, src/app/main/ui/dashboard/team.cljs:87, src/app/main/ui/dashboard/team.cljs:95 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.members" msgstr "Участники" -#: src/app/main/ui/settings/password.cljs:96 +#: src/app/main/ui/settings/password.cljs msgid "labels.new-password" msgstr "Новый пароль" -#: src/app/main/ui/dashboard/comments.cljs:128, src/app/main/ui/workspace/comments.cljs:161 +#: src/app/main/ui/workspace/comments.cljs, +#: src/app/main/ui/dashboard/comments.cljs msgid "labels.no-comments-available" msgstr "Вы попались! Здесь будут появляться уведомления о новых комментариях." -#: src/app/main/ui/dashboard/team.cljs:694 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.no-invitations" msgstr "Нет ожидающих приглашений." -#: src/app/main/ui/dashboard/team.cljs:696 -#, markdown +#: src/app/main/ui/dashboard/team.cljs msgid "labels.no-invitations-hint" msgstr "Нажмите кнопку **Пригласить людей**, чтобы пригласить в эту команду." -#: src/app/main/ui/static.cljs:50 +#: src/app/main/ui/static.cljs msgid "labels.not-found.desc-message" msgstr "Эта страница не существует, или у вас нет к ней доступа." -#: src/app/main/ui/static.cljs:49 +#: src/app/main/ui/static.cljs msgid "labels.not-found.main-message" msgstr "Ой!" -#: src/app/main/ui/dashboard/projects.cljs:239, src/app/main/ui/dashboard/team.cljs:1095 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.num-of-files" msgid_plural "labels.num-of-files" msgstr[0] "Файл" msgstr[1] "Файлы (%s)" -#: src/app/main/ui/viewer/thumbnails.cljs:80 msgid "labels.num-of-frames" msgid_plural "labels.num-of-frames" msgstr[0] "Кадр" msgstr[1] "Кадры (%s)" -#: src/app/main/ui/dashboard/team.cljs:1090 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.num-of-projects" msgid_plural "labels.num-of-projects" msgstr[0] "Проект" msgstr[1] "Проекты (%s)" -#: src/app/main/ui/settings/password.cljs:89 +#: src/app/main/ui/settings/password.cljs msgid "labels.old-password" msgstr "Старый пароль" #: src/app/main/ui/workspace/comments.cljs -#, unused msgid "labels.only-yours" msgstr "Только ваши" -#, unused msgid "labels.or" msgstr "или" -#: src/app/main/ui/dashboard/team.cljs:286, src/app/main/ui/dashboard/team.cljs:518, src/app/main/ui/dashboard/team.cljs:1076 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs msgid "labels.owner" msgstr "Владелец" -#: src/app/main/ui/settings/sidebar.cljs:87 +#: src/app/main/ui/settings/sidebar.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.password" msgstr "Пароль" -#: src/app/main/ui/dashboard/team.cljs:662 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.pending-invitation" msgstr "Ожидание" -#: src/app/main/ui/settings/profile.cljs:118, src/app/main/ui/settings/sidebar.cljs:82 +#: src/app/main/ui/settings/sidebar.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.profile" msgstr "Профиль" -#: src/app/main/ui/dashboard/sidebar.cljs:784 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.projects" msgstr "Проекты" -#: src/app/main/ui/dashboard/sidebar.cljs:998, src/app/main/ui/settings/sidebar.cljs:106, src/app/main/ui/workspace/main_menu.cljs:126 +#: src/app/main/ui/settings/sidebar.cljs msgid "labels.release-notes" msgstr "Примечания к выпуску" -#: src/app/main/ui/workspace/libraries.cljs, src/app/main/ui/dashboard/team.cljs -#, unused +#: src/app/main/ui/workspace/libraries.cljs, +#: src/app/main/ui/dashboard/team.cljs msgid "labels.remove" msgstr "Удалить" -#: src/app/main/ui/dashboard/team.cljs:316 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.remove-member" msgstr "Удалить участника" -#: src/app/main/ui/dashboard/file_menu.cljs:271, src/app/main/ui/dashboard/project_menu.cljs:85, src/app/main/ui/dashboard/sidebar.cljs:539, src/app/main/ui/workspace/sidebar/assets/groups.cljs:157 +#: src/app/main/ui/dashboard/sidebar.cljs, +#: src/app/main/ui/dashboard/project_menu.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.rename" msgstr "Переименовать" -#: src/app/main/ui/dashboard/team_form.cljs:99 +#: src/app/main/ui/dashboard/team_form.cljs msgid "labels.rename-team" msgstr "Переименовать команду" -#: src/app/main/ui/dashboard/team.cljs:645 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.resend-invitation" msgstr "Снова отправить приглашение" -#: src/app/main/ui/static.cljs:61, src/app/main/ui/static.cljs:70, src/app/main/ui/static.cljs:148 +#: src/app/main/ui/static.cljs, src/app/main/ui/static.cljs msgid "labels.retry" msgstr "Заново" -#: src/app/main/ui/dashboard/team.cljs:469, src/app/main/ui/dashboard/team.cljs:709 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.role" msgstr "Роль" -#: src/app/main/ui/dashboard/fonts.cljs:380, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:191 msgid "labels.save" msgstr "Сохранить" -#: src/app/main/ui/dashboard/fonts.cljs:415 msgid "labels.search-font" msgstr "Искать шрифт" -#: src/app/main/ui/settings/feedback.cljs:82 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.send" msgstr "Отправить" -#: src/app/main/ui/settings/feedback.cljs:82 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.sending" msgstr "Отправка…" -#: src/app/main/ui/static.cljs:68 +#: src/app/main/ui/static.cljs msgid "labels.service-unavailable.desc-message" msgstr "Мы проводим диагностику наших систем." -#: src/app/main/ui/static.cljs:67 +#: src/app/main/ui/static.cljs msgid "labels.service-unavailable.main-message" msgstr "Сервис недоступен" -#: src/app/main/ui/dashboard/sidebar.cljs:530, src/app/main/ui/dashboard/team.cljs:88, src/app/main/ui/dashboard/team.cljs:102, src/app/main/ui/settings/options.cljs:84, src/app/main/ui/settings/sidebar.cljs:93 +#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.settings" msgstr "Настройки" -#, unused +#: src/app/main/ui/viewer/header.cljs, src/app/main/ui/viewer/header.cljs msgid "labels.share-prototype" msgstr "Поделиться ссылкой" -#: src/app/main/ui/dashboard/sidebar.cljs:800 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.shared-libraries" msgstr "Библиотеки" -#: src/app/main/ui/viewer/comments.cljs:82, src/app/main/ui/workspace/comments.cljs:55, src/app/main/ui/workspace/comments.cljs:135 +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs msgid "labels.show-all-comments" msgstr "Показать все" -#: src/app/main/ui/viewer/comments.cljs:115 msgid "labels.show-comments-list" msgstr "Показать список комментариев" -#: src/app/main/ui/viewer/comments.cljs:91, src/app/main/ui/workspace/comments.cljs:61, src/app/main/ui/workspace/comments.cljs:136 +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs msgid "labels.show-your-comments" msgstr "Показать только ваши" -#: src/app/main/ui/dashboard/team.cljs:710 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.status" msgstr "Состояние" -#: src/app/main/ui/dashboard/sidebar.cljs:992, src/app/main/ui/workspace/main_menu.cljs:118 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.tutorials" msgstr "Руководства" -#: src/app/main/ui/settings/profile.cljs:103 +#: src/app/main/ui/settings/profile.cljs msgid "labels.update" msgstr "Обновить" -#: src/app/main/ui/dashboard/team_form.cljs:120 +#: src/app/main/ui/dashboard/team_form.cljs msgid "labels.update-team" msgstr "Обновить команду" -#: src/app/main/ui/dashboard/fonts.cljs:241 msgid "labels.upload" msgstr "Загрузить" -#: src/app/main/ui/dashboard/fonts.cljs:169 msgid "labels.upload-custom-fonts" msgstr "Загрузить произвольные шрифты" -#: src/app/main/ui/dashboard/fonts.cljs:240 msgid "labels.uploading" msgstr "Загрузка…" -#: src/app/main/ui/dashboard/team.cljs:123, src/app/main/ui/dashboard/team.cljs:282, src/app/main/ui/dashboard/team.cljs:521 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.viewer" msgstr "Наблюдатель" -#: src/app/main/ui/comments.cljs:194 +#: src/app/main/ui/comments.cljs msgid "labels.write-new-comment" msgstr "Написать комментарий" -#: src/app/main/ui/dashboard/team.cljs:237 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.you" msgstr "(вы)" -#: src/app/main/ui/dashboard/sidebar.cljs:968 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.your-account" msgstr "Ваш аккаунт" -#: src/app/main/data/media.cljs:49, src/app/main/data/workspace/media.cljs:223, src/app/main/data/workspace/media.cljs:453 +#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs msgid "media.loading" msgstr "Загрузка изображения…" -#: src/app/main/data/common.cljs:113 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.add-shared-confirm.accept" msgstr "Добавить как общую библиотеку" -#: src/app/main/data/common.cljs:111 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.add-shared-confirm.hint" msgstr "" "При выдаче статуса общей библиотеки, ресурсы этого проекта будут доступны к " "использованию в остальных файлах." -#: src/app/main/data/common.cljs:110 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.add-shared-confirm.message" msgstr "Добавить \"%s\" как общую библиотеку" -#: src/app/main/ui/workspace/nudge.cljs:60 +#: src/app/main/ui/workspace/nudge.cljs msgid "modals.big-nudge" msgstr "Большой сдвиг" -#: src/app/main/ui/settings/change_email.cljs:127 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.confirm-email" msgstr "Подтвердить новую эл. почту" -#: src/app/main/ui/settings/change_email.cljs:114 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.info" msgstr "" "Мы отправим эл. письмо для подтверждения личности на текущую эл. почту " "\"%s\"." -#: src/app/main/ui/settings/change_email.cljs:119 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.new-email" msgstr "Новая эл. почта" -#: src/app/main/ui/settings/change_email.cljs:136 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.submit" msgstr "Изменить эл. почту" -#: src/app/main/ui/settings/change_email.cljs:107 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.title" msgstr "Изменить эл. почту" -#: src/app/main/ui/settings/delete_account.cljs:59 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.cancel" msgstr "Отменить и сохранить мой аккаунт" -#: src/app/main/ui/settings/delete_account.cljs:64 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.confirm" msgstr "Да, удалить мой аккаунт" -#: src/app/main/ui/settings/delete_account.cljs:53 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.info" msgstr "Удалив аккаунт Вы потеряете все прокты и архивы." -#: src/app/main/ui/settings/delete_account.cljs:46 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.title" msgstr "Вы уверены, что хотите удалить аккаунт?" -#: src/app/main/ui/comments.cljs:298 +#: src/app/main/ui/comments.cljs msgid "modals.delete-comment-thread.accept" msgstr "Удалить переписку" -#: src/app/main/ui/comments.cljs:297 +#: src/app/main/ui/comments.cljs msgid "modals.delete-comment-thread.message" msgstr "" "Вы уверены, что хотите удалить это обсуждение? Все комментарии, входящие в " "него будут удалены." -#: src/app/main/ui/comments.cljs:296 +#: src/app/main/ui/comments.cljs msgid "modals.delete-comment-thread.title" msgstr "Удалить обсуждение" -#: src/app/main/ui/dashboard/file_menu.cljs:123 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-confirm.accept" msgstr "Удалить файл" -#: src/app/main/ui/dashboard/file_menu.cljs:122 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-confirm.message" msgstr "Точно удалить этот файл?" -#: src/app/main/ui/dashboard/file_menu.cljs:121 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-confirm.title" msgstr "Удаление файла" -#: src/app/main/ui/dashboard/file_menu.cljs:117 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-multi-confirm.accept" msgstr "Удалить файлы" -#: src/app/main/ui/dashboard/file_menu.cljs:116 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-multi-confirm.message" msgstr "Точно хотите удалить файлы (%s)?" -#: src/app/main/ui/dashboard/file_menu.cljs:115 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-multi-confirm.title" msgstr "Удаление файлов (%s)" -#: src/app/main/ui/dashboard/fonts.cljs:345 msgid "modals.delete-font-variant.message" msgstr "" "Вы действительно хотите удалить это начертание шрифта? Оно не будет " "загружаться, если используется в файле." -#: src/app/main/ui/dashboard/fonts.cljs:344 msgid "modals.delete-font-variant.title" msgstr "Удаление начертания шрифта" -#: src/app/main/ui/dashboard/fonts.cljs:331 msgid "modals.delete-font.message" msgstr "" "Вы действительно хотите удалить этот шрифт? Он не будет загружаться, если " "используется в файле." -#: src/app/main/ui/dashboard/fonts.cljs:330 msgid "modals.delete-font.title" msgstr "Удаление шрифта" -#: src/app/main/ui/workspace/context_menu.cljs:522, src/app/main/ui/workspace/sidebar/sitemap.cljs:45 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs msgid "modals.delete-page.body" msgstr "Вы уверены, что хотите удалить эту страницу?" -#: src/app/main/ui/workspace/context_menu.cljs:521, src/app/main/ui/workspace/sidebar/sitemap.cljs:44 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs msgid "modals.delete-page.title" msgstr "Удаление страницы" -#: src/app/main/ui/dashboard/project_menu.cljs:69 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "modals.delete-project-confirm.accept" msgstr "Удалить проект" -#: src/app/main/ui/dashboard/project_menu.cljs:68 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "modals.delete-project-confirm.message" msgstr "Вы уверены, что хотите удалить этот проект?" -#: src/app/main/ui/dashboard/project_menu.cljs:67 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "modals.delete-project-confirm.title" msgstr "Удаление проекта" -#: src/app/main/ui/delete_shared.cljs:51 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.accept" msgid_plural "modals.delete-shared-confirm.accept" msgstr[0] "Удалить файл" msgstr[1] "Удалить файлы" -#: src/app/main/ui/delete_shared.cljs:46 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.message" msgid_plural "modals.delete-shared-confirm.message" msgstr[0] "Вы уверены, что хотите удалить этот файл?" msgstr[1] "Вы уверены, что хотите удалить эти файлы?" -#: src/app/main/ui/delete_shared.cljs:41 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.title" msgid_plural "modals.delete-shared-confirm.title" msgstr[0] "Удаление файла" msgstr[1] "Удаление файлов" -#: src/app/main/ui/dashboard/sidebar.cljs:435 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.delete-team-confirm.accept" msgstr "Удалить команду" -#: src/app/main/ui/dashboard/sidebar.cljs:434 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.delete-team-confirm.message" msgstr "" "Вы уверены, что хотите удалить эту команду? Все проекты и файлы этой " "команды также будут безвозвратно удалены." -#: src/app/main/ui/dashboard/sidebar.cljs:433 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.delete-team-confirm.title" msgstr "Удаление команды" -#: src/app/main/ui/dashboard/team.cljs:427 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.delete-team-member-confirm.accept" msgstr "Удалить участника" -#: src/app/main/ui/dashboard/team.cljs:426 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.delete-team-member-confirm.message" msgstr "Вы уверены, что хотите удалить этого участника из команды?" -#: src/app/main/ui/dashboard/team.cljs:425 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.delete-team-member-confirm.title" msgstr "Удалить участника команды" -#: src/app/main/ui/dashboard/team.cljs:218 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.invite-member-confirm.accept" msgstr "Отправить приглашение" -#: src/app/main/ui/dashboard/team.cljs:213, src/app/main/ui/onboarding/team_choice.cljs:156 msgid "modals.invite-member.emails" msgstr "Эл. почты, разделённые запятой" -#: src/app/main/ui/dashboard/team.cljs:190 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.invite-team-member.title" msgstr "Пригласить участников в команду" -#: src/app/main/ui/dashboard/sidebar.cljs:423, src/app/main/ui/dashboard/team.cljs:393 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-close-confirm.hint" msgstr "" "Так как вы единственный участник этой команды, она будет удалена вместе с " "проектами и файлами." -#: src/app/main/ui/dashboard/sidebar.cljs:422, src/app/main/ui/dashboard/team.cljs:392 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-close-confirm.message" msgstr "Вы уверены, что хотите покинуть команду %s?" -#: src/app/main/ui/dashboard/change_owner.cljs:59 msgid "modals.leave-and-reassign.forbidden" msgstr "" "Вы не можете покинуть команду, если нет другого участника, которого можно " "было бы назначить владельцем. Возможно, вы захотите удалить команду." -#: src/app/main/ui/dashboard/change_owner.cljs:55 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-reassign.hint1" msgstr "" "Вы владелец этой команды. Прежде чем покинуть её, выберите другого " "участника, чтобы сделать его владельцем." -#: src/app/main/ui/dashboard/change_owner.cljs:78 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-reassign.promote-and-leave" msgstr "Назначить и покинуть" -#: src/app/main/ui/dashboard/change_owner.cljs:34 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-reassign.select-member-to-promote" msgstr "Выберите участника для назначения" -#: src/app/main/ui/dashboard/sidebar.cljs:402, src/app/main/ui/dashboard/sidebar.cljs:424, src/app/main/ui/dashboard/team.cljs:394, src/app/main/ui/dashboard/team.cljs:416 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-confirm.accept" msgstr "Покинуть команду" -#: src/app/main/ui/dashboard/sidebar.cljs:401, src/app/main/ui/dashboard/team.cljs:415 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-confirm.message" msgstr "Вы уверены, что хотите покинуть эту команду?" -#: src/app/main/ui/dashboard/sidebar.cljs:400, src/app/main/ui/dashboard/sidebar.cljs:421, src/app/main/ui/dashboard/team.cljs:391, src/app/main/ui/dashboard/team.cljs:414 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-confirm.title" msgstr "Выход из команды" -#: src/app/main/ui/dashboard/team.cljs:338 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.message" msgstr "" "Вы текущий владелец этой команды. Вы уверены, что хотите сделать %s новым " "владельцем команды?" -#: src/app/main/ui/dashboard/team.cljs:337 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.title" msgstr "Новый владелец команды" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.remove-shared-confirm.accept" msgstr "Удалить из общих библиотек" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.remove-shared-confirm.hint" msgstr "" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.remove-shared-confirm.message" msgstr "" -#: src/app/main/ui/delete_shared.cljs:47 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.unpublish-shared-confirm.message" msgid_plural "modals.unpublish-shared-confirm.message" msgstr[0] "Вы уверены, что хотите снять с публикации эту библиотеку?" msgstr[1] "Вы уверены, что хотите снять с публикации эти библиотеки?" -#: src/app/main/ui/delete_shared.cljs:42 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.unpublish-shared-confirm.title" msgid_plural "modals.unpublish-shared-confirm.title" msgstr[0] "Снять библиотеку с публикации" msgstr[1] "Снять библиотеки с публикации" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component-in-bulk.hint" msgstr "" "Вы собираетесь обновить компоненты в общей библиотеке. Это может повлиять " "на другие файлы, которые её используют." -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component-in-bulk.message" msgstr "Обновить компоненты в общей библиотеке" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:380 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.accept" msgstr "Обновить" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:379 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.cancel" msgstr "Отменить" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:378 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.hint" msgstr "" "Вы собираетесь обновить компонент в общей библиотеке. Это может повлиять на " "другие файлы, которые её используют." -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:377 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.message" msgstr "Обновить компонент в общей библиотеке" -#: src/app/main/ui/settings/delete_account.cljs:24 +#: src/app/main/ui/settings/delete_account.cljs msgid "notifications.profile-deletion-not-allowed" msgstr "Вы не можете удалить свой профиль. Сначала переназначьте ваши команды." -#: src/app/main/ui/settings/options.cljs:29, src/app/main/ui/settings/profile.cljs:35 +#: src/app/main/ui/settings/profile.cljs, src/app/main/ui/settings/options.cljs msgid "notifications.profile-saved" msgstr "Профиль успешно сохранён!" -#, unused msgid "onboarding-v2.before-start.desc3" msgstr "" "Вы можете посмотреть наши руководства и руководства, созданные нашим " "сообществом." -#: src/app/main/ui/onboarding/newsletter.cljs:71 msgid "onboarding-v2.newsletter.updates" msgstr "Присылать мне обновления продукта (новые функции, выпуски, исправления...)." -#, unused msgid "onboarding-v2.welcome.desc1" msgstr "" "Penpot — проект с открытым исходным кодом, созданный Kaleidos и " "сообществом, где многие люди уже помогают друг другу. Каждый может начать " "сотрудничество:" -#, unused msgid "onboarding-v2.welcome.desc3.title" msgstr "Руководство по участию в проекте" -#: src/app/main/ui/onboarding/team_choice.cljs:31 msgid "onboarding-v2.welcome.title" msgstr "Добро пожаловать в Penpot!" -#: src/app/main/ui/onboarding/team_choice.cljs:215 msgid "onboarding.choice.team-up.create-team-desc" msgstr "" "После добавления названия команды, вы сможете пригласить людей " "присоединиться." -#: src/app/main/ui/onboarding/team_choice.cljs:224 msgid "onboarding.choice.team-up.create-team-placeholder" msgstr "Введите название команды" -#: src/app/main/ui/dashboard/projects.cljs:89, src/app/main/ui/onboarding/team_choice.cljs:140 msgid "onboarding.choice.team-up.invite-members" msgstr "Пригласить участников" -#: src/app/main/ui/onboarding/team_choice.cljs:141 msgid "onboarding.choice.team-up.invite-members-info" msgstr "" "Никого не забудьте. Разработчики, дизайнеры, менеджеры... разнообразие " "развивает :)" -#: src/app/main/ui/onboarding/team_choice.cljs:213 msgid "onboarding.team-modal.create-team" msgstr "Создать команду" -#: src/app/main/ui/onboarding/team_choice.cljs:35 msgid "onboarding.team-modal.create-team-desc" msgstr "" "Команда позволяет вам сотрудничать с другими пользователями Penpot, " "работающими над одними файлами и проектами." -#: src/app/main/ui/onboarding/team_choice.cljs:40 msgid "onboarding.team-modal.create-team-feature-1" msgstr "Неограниченное количество файлов и проектов" -#: src/app/main/ui/onboarding/team_choice.cljs:44 msgid "onboarding.team-modal.create-team-feature-2" msgstr "Многопользовательская версия" -#: src/app/main/ui/onboarding/team_choice.cljs:48 msgid "onboarding.team-modal.create-team-feature-3" msgstr "Управление ролями" -#: src/app/main/ui/onboarding/team_choice.cljs:52 msgid "onboarding.team-modal.create-team-feature-4" msgstr "Неограниченное количество участников" -#: src/app/main/ui/onboarding/team_choice.cljs:56 msgid "onboarding.team-modal.create-team-feature-5" msgstr "100% бесплатно!" -#: src/app/main/ui/onboarding/templates.cljs:78 msgid "onboarding.templates.subtitle" msgstr "Вот несколько шаблонов." -#: src/app/main/ui/onboarding/templates.cljs:77 msgid "onboarding.templates.title" msgstr "Заняться дизайном" -#, unused msgid "onboarding.welcome.alt" msgstr "Penpot" -#: src/app/main/ui/auth/recovery.cljs:99 +#: src/app/main/ui/auth/recovery.cljs msgid "profile.recovery.go-to-login" msgstr "Перейти к входу" -#: src/app/main/ui/viewer/inspect/exports.cljs:147, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:631, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:137, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:148, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:188, src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:158, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:399, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:410, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:430, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:441, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:458, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:472, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:309, src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:183, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:373, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:389, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:245, src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:172 +#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs msgid "settings.multiple" msgstr "Смешаный" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:57 msgid "shortcut-subsection.edit" msgstr "Редактировать" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:60 msgid "shortcut-subsection.main-menu" msgstr "Главное меню" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:61 msgid "shortcut-subsection.modify-layers" msgstr "Изменить слои" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:62 msgid "shortcut-subsection.navigation-dashboard" msgstr "Навигация" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:63 msgid "shortcut-subsection.navigation-viewer" msgstr "Навигация" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:64 msgid "shortcut-subsection.navigation-workspace" msgstr "Навигация" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:65 msgid "shortcut-subsection.panels" msgstr "Панели" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:93 msgid "shortcuts.copy" msgstr "Скопировать" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:94 msgid "shortcuts.create-component" msgstr "Создать компонент" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:98 msgid "shortcuts.delete" msgstr "Удалить" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:117 msgid "shortcuts.go-to-libs" msgstr "Перейти к общим библиотекам" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:118 msgid "shortcuts.go-to-search" msgstr "Поиск" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:121 msgid "shortcuts.hide-ui" msgstr "Показать/скрыть UI" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:151 msgid "shortcuts.opacity-5" msgstr "Установить непрозрачность на 50%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:152 msgid "shortcuts.opacity-6" msgstr "Установить непрозрачность на 60%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:153 msgid "shortcuts.opacity-7" msgstr "Установить непрозрачность на 70%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:154 msgid "shortcuts.opacity-8" msgstr "Установить непрозрачность на 80%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:155 msgid "shortcuts.opacity-9" msgstr "Установить непрозрачность на 90%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:156 msgid "shortcuts.open-color-picker" msgstr "Выбор цвета" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:162 msgid "shortcuts.open-workspace" msgstr "Перейти к рабочей области" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:260 msgid "shortcuts.or" msgstr " или " -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:163 msgid "shortcuts.paste" msgstr "Вставить" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:169 msgid "shortcuts.select-all" msgstr "Выбрать все" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:174 msgid "shortcuts.show-pixel-grid" msgstr "Показать/скрыть сетку пикселей" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:175 msgid "shortcuts.show-shortcuts" msgstr "Показать/скрыть горячие клавиши" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:178 msgid "shortcuts.start-editing" msgstr "Начать редактирование" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:179 msgid "shortcuts.start-measure" msgstr "Начать измерение" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:180 msgid "shortcuts.stop-measure" msgstr "Остановить измерение" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:496, src/app/main/ui/workspace/sidebar/shortcuts.cljs:505 +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs msgid "shortcuts.title" msgstr "Горячие клавиши" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:187 msgid "shortcuts.toggle-assets" msgstr "Переключить ресурсы" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:188 msgid "shortcuts.toggle-colorpalette" msgstr "Переключить палитру цветов" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:189 msgid "shortcuts.toggle-focus-mode" msgstr "Переключить режим фокуса" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:192 msgid "shortcuts.toggle-history" msgstr "Переключить историю" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:193 msgid "shortcuts.toggle-layers" msgstr "Переключить слои" -#: src/app/main/ui/dashboard/files.cljs:158 +#: src/app/main/ui/dashboard/files.cljs msgid "title.dashboard.files" msgstr "%s - Penpot" -#: src/app/main/ui/dashboard/fonts.cljs:37 +#: src/app/main/ui/dashboard/fonts.cljs msgid "title.dashboard.font-providers" msgstr "Поставщики шрифтов - %s - Penpot" -#: src/app/main/ui/dashboard/fonts.cljs:36 +#: src/app/main/ui/dashboard/fonts.cljs msgid "title.dashboard.fonts" msgstr "Шрифты - %s - Penpot" -#: src/app/main/ui/dashboard/projects.cljs:320 +#: src/app/main/ui/dashboard/projects.cljs msgid "title.dashboard.projects" msgstr "Проекты - %s - Penpot" -#: src/app/main/ui/dashboard/search.cljs:32 +#: src/app/main/ui/dashboard/search.cljs msgid "title.dashboard.search" msgstr "Поиск - %s - Penpot" -#: src/app/main/ui/dashboard/libraries.cljs:44 +#: src/app/main/ui/dashboard/libraries.cljs msgid "title.dashboard.shared-libraries" msgstr "Общие библиотеки - %s - Penpot" -#: src/app/main/ui/auth/verify_token.cljs:68, src/app/main/ui/auth.cljs:54 +#: src/app/main/ui/auth/verify_token.cljs, src/app/main/ui/auth.cljs msgid "title.default" msgstr "Penpot — свобода в дизайне для команд" -#: src/app/main/ui/settings/feedback.cljs:110 +#: src/app/main/ui/settings/feedback.cljs msgid "title.settings.feedback" msgstr "Оставить отзыв - Penpot" -#: src/app/main/ui/settings/options.cljs:80 +#: src/app/main/ui/settings/options.cljs msgid "title.settings.options" msgstr "Настройки - Penpot" -#: src/app/main/ui/settings/password.cljs:115 +#: src/app/main/ui/settings/password.cljs msgid "title.settings.password" msgstr "Пароль - Penpot" -#: src/app/main/ui/settings/profile.cljs:115 +#: src/app/main/ui/settings/profile.cljs msgid "title.settings.profile" msgstr "Профиль - Penpot" -#: src/app/main/ui/dashboard/team.cljs:727 +#: src/app/main/ui/dashboard/team.cljs msgid "title.team-invitations" msgstr "Приглашения - %s - Penpot" -#: src/app/main/ui/dashboard/team.cljs:493 +#: src/app/main/ui/dashboard/team.cljs msgid "title.team-members" msgstr "Участники - %s - Penpot" -#: src/app/main/ui/dashboard/team.cljs:1036 +#: src/app/main/ui/dashboard/team.cljs msgid "title.team-settings" msgstr "Настройки - %s - Penpot" -#: src/app/main/ui/viewer.cljs:419 +#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs msgid "title.viewer" msgstr "%s - Режим просмотра - Penpot" -#: src/app/main/ui/workspace.cljs:190 +#: src/app/main/ui/workspace.cljs msgid "title.workspace" msgstr "%s - Penpot" -#: src/app/main/ui.cljs:144 msgid "viewer.breaking-change.description" msgstr "" "Эта общая ссылка больше не действительна. Создайте новую или попросите об " "этом владельца." -#: src/app/main/ui.cljs:143 msgid "viewer.breaking-change.message" msgstr "Извините!" -#: src/app/main/ui/viewer.cljs:569 +#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs msgid "viewer.empty-state" msgstr "На странице не найдено ни одного кадра." -#: src/app/main/ui/viewer.cljs:574 +#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs msgid "viewer.frame-not-found" msgstr "Кадр не найден." -#: src/app/main/ui/viewer/header.cljs:336 msgid "viewer.header.comments-section" msgstr "Комментарии (%s)" -#: src/app/main/ui/viewer/interactions.cljs:292 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.dont-show-interactions" msgstr "Не показывать взаимодействия" -#: src/app/main/ui/viewer/header.cljs:188 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.fullscreen" msgstr "Полный экран" -#: src/app/main/ui/viewer/interactions.cljs:282 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.interactions" msgstr "Интерактив" -#: src/app/main/ui/viewer/header.cljs:327 msgid "viewer.header.interactions-section" msgstr "Интерактив (%s)" -#: src/app/main/ui/viewer/share_link.cljs:187 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.share.copy-link" msgstr "Скопировать ссылку" -#: src/app/main/ui/viewer/interactions.cljs:300 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.show-interactions" msgstr "Показывать взаимодействия" -#: src/app/main/ui/viewer/interactions.cljs:311 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.show-interactions-on-click" msgstr "Показывать взаимодействия по клику" -#: src/app/main/ui/viewer/header.cljs:231 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.sitemap" msgstr "План сайта" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:58 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.hcenter" msgstr "Выровнять по горизонтали (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:74 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.hdistribute" msgstr "Распределить горизонтальное пространство (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:50 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.hleft" msgstr "Выровнять по левому краю (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:66 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.hright" msgstr "Выровнять по правому краю (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:99 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.vbottom" msgstr "Выровнять по нижнему краю (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:91 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.vcenter" msgstr "Выровнять по вертикали (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:104 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.vdistribute" msgstr "Распределить вертикальное пространство (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:83 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.vtop" msgstr "Выровнять по верхнему краю (%s)" #: src/app/main/ui/workspace/sidebar/assets.cljs -#, unused msgid "workspace.assets.assets" msgstr "Ресурсы" -#: src/app/main/ui/workspace/sidebar/assets.cljs:134 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.box-filter-all" msgstr "Все ресурсы" -#: src/app/main/ui/dashboard/grid.cljs:130, src/app/main/ui/dashboard/grid.cljs:162, src/app/main/ui/workspace/sidebar/assets/colors.cljs:485, src/app/main/ui/workspace/sidebar/assets.cljs:150 +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.colors" msgstr "Цвета" -#: src/app/main/ui/dashboard/grid.cljs:126, src/app/main/ui/dashboard/grid.cljs:141, src/app/main/ui/workspace/sidebar/assets/components.cljs:513, src/app/main/ui/workspace/sidebar/assets.cljs:139 +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.components" msgstr "Компоненты" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:131 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.create-group" msgstr "Создать группу" -#: src/app/main/ui/workspace/context_menu.cljs:529, src/app/main/ui/workspace/sidebar/assets/colors.cljs:251, src/app/main/ui/workspace/sidebar/assets/components.cljs:577, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:424, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:443 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.delete" msgstr "Удалить" -#: src/app/main/ui/workspace/context_menu.cljs:534, src/app/main/ui/workspace/sidebar/assets/components.cljs:572 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.duplicate" msgstr "Дублировать" -#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:247, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:439 +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.edit" msgstr "Редактировать" -#: src/app/main/ui/workspace/sidebar/assets/graphics.cljs:384, src/app/main/ui/workspace/sidebar/assets.cljs:145 +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.graphics" msgstr "Графика" -#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:255, src/app/main/ui/workspace/sidebar/assets/components.cljs:581, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:428, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:448 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.group" msgstr "Группа" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:141 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.group-name" msgstr "Имя группы" -#: src/app/main/ui/workspace/sidebar/assets.cljs:168 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.libraries" msgstr "Библиотеки" -#: src/app/main/ui/workspace/sidebar/assets/file_library.cljs:295 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.not-found" msgstr "Ресурсы не найдены" -#: src/app/main/ui/workspace/context_menu.cljs:532, src/app/main/ui/workspace/sidebar/assets/colors.cljs:243, src/app/main/ui/workspace/sidebar/assets/components.cljs:566, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:421, src/app/main/ui/workspace/sidebar/assets/groups.cljs:63, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:434 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.rename" msgstr "Переименовать" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:132 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.rename-group" msgstr "Переименовать группу" -#: src/app/main/ui/workspace/sidebar/assets.cljs:173 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.search" msgstr "Поиск ресурсов" #: src/app/main/ui/workspace/sidebar/assets.cljs -#, unused msgid "workspace.assets.selected-count" msgid_plural "workspace.assets.selected-count" msgstr[0] "Выбран ресурс" msgstr[1] "Выбраны ресурсы (%s)" -#: src/app/main/ui/dashboard/grid.cljs:134, src/app/main/ui/dashboard/grid.cljs:189, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:397, src/app/main/ui/workspace/sidebar/assets.cljs:155 +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.typography" msgstr "Типографика" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused msgid "workspace.assets.typography.font-id" msgstr "Шрифт" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:505 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.font-size" msgstr "Размер" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:501 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.font-variant-id" msgstr "Начертание" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:523 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.go-to-edit" msgstr "Перейти к файлу библиотеки стилей для редактирования" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:513 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.letter-spacing" msgstr "Кернинг" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:509 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.line-height" msgstr "Интерлиньяж" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:517 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.text-transform" msgstr "Регистр" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:66 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.ungroup" msgstr "Разгруппировать" -#: src/app/main/ui/workspace/main_menu.cljs:238 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.disable-dynamic-alignment" msgstr "Отключить активное выравнивание" -#: src/app/main/ui/workspace/main_menu.cljs:239 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.enable-dynamic-alignment" msgstr "Включить активное выравнивание" -#: src/app/main/ui/workspace/main_menu.cljs:382 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.hide-artboard-names" msgstr "Скрыть имена кадров" -#: src/app/main/ui/workspace/main_menu.cljs:353 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.hide-palette" msgstr "Скрыть палитру цветов" -#: src/app/main/ui/workspace/main_menu.cljs:394 msgid "workspace.header.menu.hide-pixel-grid" msgstr "Скрыть сетку пикселей" -#: src/app/main/ui/workspace/main_menu.cljs:320 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.hide-rules" msgstr "Скрыть линейки" -#: src/app/main/ui/workspace/main_menu.cljs:367 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.hide-textpalette" msgstr "Скрыть палитру шрифтов" -#: src/app/main/ui/workspace/main_menu.cljs:720 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.file" msgstr "Файл" -#: src/app/main/ui/workspace/main_menu.cljs:777 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.help-info" msgstr "Помощь и информация" -#: src/app/main/ui/workspace/main_menu.cljs:432 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.select-all" msgstr "" -#: src/app/main/ui/workspace/main_menu.cljs:383 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.show-artboard-names" msgstr "Показать имена кадров" -#: src/app/main/ui/workspace/main_menu.cljs:354 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.show-palette" msgstr "Показать палитру цветов" -#: src/app/main/ui/workspace/main_menu.cljs:321 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.show-rules" msgstr "Показать линейки" -#: src/app/main/ui/viewer/header.cljs:98, src/app/main/ui/workspace/right_header.cljs:120 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.reset-zoom" msgstr "Сброс" -#: src/app/main/ui/workspace/right_header.cljs:239 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.viewer" msgstr "Режим просмотра (%s)" #: src/app/main/ui/workspace/libraries.cljs -#, unused msgid "workspace.libraries.add" msgstr "Добавить" -#: src/app/main/ui/workspace/libraries.cljs:80, src/app/main/ui/workspace/libraries.cljs:99 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.colors" msgstr "" -#: src/app/main/ui/workspace/color_palette_ctx_menu.cljs:60, src/app/main/ui/workspace/colorpicker/libraries.cljs:73, src/app/main/ui/workspace/text_palette_ctx_menu.cljs:50 +#: src/app/main/ui/workspace/colorpicker/libraries.cljs, +#: src/app/main/ui/workspace/colorpalette.cljs msgid "workspace.libraries.colors.file-library" msgstr "Библиотека файлов" #: src/app/main/ui/workspace/colorpicker.cljs -#, unused msgid "workspace.libraries.colors.hsv" msgstr "HSV" -#: src/app/main/ui/workspace/color_palette_ctx_menu.cljs:82, src/app/main/ui/workspace/colorpicker/libraries.cljs:72 +#: src/app/main/ui/workspace/colorpicker/libraries.cljs, +#: src/app/main/ui/workspace/colorpalette.cljs msgid "workspace.libraries.colors.recent-colors" msgstr "Недавние цвета" #: src/app/main/ui/workspace/colorpicker.cljs -#, unused msgid "workspace.libraries.colors.rgb-complementary" msgstr "Дополнительный цвет RGB" #: src/app/main/ui/workspace/colorpicker.cljs -#, unused msgid "workspace.libraries.colors.rgba" msgstr "RGBA" -#: src/app/main/ui/workspace/colorpicker.cljs:372 +#: src/app/main/ui/workspace/colorpicker.cljs msgid "workspace.libraries.colors.save-color" msgstr "Сохранить стиль цвета" -#: src/app/main/ui/workspace/libraries.cljs:74, src/app/main/ui/workspace/libraries.cljs:91 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.components" msgstr "" -#: src/app/main/ui/workspace/libraries.cljs:215 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.file-library" msgstr "Библиотека файлов" -#: src/app/main/ui/workspace/libraries.cljs:77, src/app/main/ui/workspace/libraries.cljs:95 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.graphics" msgstr "" -#: src/app/main/ui/workspace/libraries.cljs:209 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.in-this-file" msgstr "БИБЛИОТЕКИ В ЭТОМ ФАЙЛЕ" -#: src/app/main/ui/workspace/libraries.cljs:526, src/app/main/ui/workspace/libraries.cljs:531 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.libraries" msgstr "БИБЛИОТЕКИ" #: src/app/main/ui/workspace/libraries.cljs -#, unused msgid "workspace.libraries.library" msgstr "БИБЛИОТЕКА" -#: src/app/main/ui/workspace/libraries.cljs:380 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.no-libraries-need-sync" msgstr "Нет общих библиотек, требующих обновления" -#: src/app/main/ui/workspace/libraries.cljs:299 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.no-matches-for" msgstr "Совпадений для \"%s\" не найдено" -#: src/app/main/ui/workspace/libraries.cljs:296 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.no-shared-libraries-available" msgstr "Общие библиотеки отсутсвуют" -#: src/app/main/ui/workspace/libraries.cljs:260 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.search-shared-libraries" msgstr "Искать общие библиотеки" -#: src/app/main/ui/workspace/libraries.cljs:256 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.shared-libraries" msgstr "ОБЩИЕ БИБЛИОТЕКИ" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:308 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.libraries.text.multiple-typography" msgstr "Несколько типографик" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:311 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.libraries.text.multiple-typography-tooltip" msgstr "Отвязать все типографики" -#: src/app/main/ui/workspace/libraries.cljs:83, src/app/main/ui/workspace/libraries.cljs:103 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.typography" msgstr "Типографики (%s)" -#: src/app/main/ui/workspace/libraries.cljs:402 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.update" msgstr "Обновить" -#: src/app/main/ui/workspace/libraries.cljs:536 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.updates" msgstr "ОБНОВЛЕНИЯ" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:737 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.add-interaction" msgstr "Нажмите кнопку \"+\" для добавления интерактива." -#: src/app/main/ui/workspace/sidebar/options/page.cljs:32, src/app/main/ui/workspace/sidebar/options/page.cljs:39 +#: src/app/main/ui/workspace/sidebar/options/page.cljs msgid "workspace.options.canvas-background" msgstr "Фон холста" -#: src/app/main/ui/workspace/sidebar/options.cljs:112 +#: src/app/main/ui/workspace/sidebar/options.cljs msgid "workspace.options.design" msgstr "Дизайн" -#: src/app/main/ui/viewer/inspect/exports.cljs:139 +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, +#: src/app/main/ui/inspect/exports.cljs msgid "workspace.options.export" msgstr "Экспорт" -#: src/app/main/ui/viewer/inspect/exports.cljs:195, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:237 +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, +#: src/app/main/ui/inspect/exports.cljs msgid "workspace.options.export-object" msgid_plural "workspace.options.export-object" msgstr[0] "Экспорт 1 элемента" msgstr[1] "Экспорт %s элементов" -#: src/app/main/ui/export.cljs:240 +#: 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.exporting-complete" msgstr "Экспорт завершён" -#: src/app/main/ui/export.cljs:172, src/app/main/ui/export.cljs:241, src/app/main/ui/viewer/inspect/exports.cljs:194, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:236 +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, +#: src/app/main/ui/inspect/exports.cljs msgid "workspace.options.exporting-object" msgstr "Экспортирование…" -#: src/app/main/ui/export.cljs:239 +#: 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.exporting-object-error" msgstr "Экспорт не удался" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:49, src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:174 +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs msgid "workspace.options.fill" msgstr "Заливка" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:178 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.flows.add-flow-start" msgstr "Добавить начало потока" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -#, unused msgid "workspace.options.flows.flow-start" msgstr "Начало потока" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:161 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.flows.flow-starts" msgstr "Начала потоков" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:29 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.auto" msgstr "Авто" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:157 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.column" msgstr "Колонки" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.params.columns" msgstr "Колонки" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:259 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.gutter" msgstr "Желоб" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:246 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.height" msgstr "Высота" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:270 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.margin" msgstr "Поле" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.params.rows" msgstr "Строки" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:216, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:290 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.set-default" msgstr "Установить по умолчанию" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.params.size" msgstr "Размер" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.params.type" msgstr "Тип" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:231 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.bottom" msgstr "Низ" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:229 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.center" msgstr "Центр" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:228 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.left" msgstr "Левый" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:232 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.right" msgstr "Правый" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:225 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.stretch" msgstr "Растягивать" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:227 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.top" msgstr "Верх" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:211, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:288 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.use-default" msgstr "Использовать значение по умолчанию" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:247 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.width" msgstr "Ширина" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:158 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.row" msgstr "Строки" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:156 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.square" msgstr "Квадрат" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:48 +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs msgid "workspace.options.group-fill" msgstr "Заливка для группы" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:42 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.group-stroke" msgstr "Обводка для группы" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:310 msgid "workspace.options.guides.title" msgstr "Направляющие" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:724 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interactions" msgstr "Интерактив" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:137 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.color" msgstr "Цвет" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -#, unused msgid "workspace.options.layer-options.title" msgstr "Слой" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -#, unused msgid "workspace.options.layer-options.title.group" msgstr "Группировать слои" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -#, unused msgid "workspace.options.layer-options.title.multiple" msgstr "Выделенные слои" -#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.position" msgstr "Позиция" -#: src/app/main/ui/workspace/sidebar/options.cljs:157 +#: src/app/main/ui/workspace/sidebar/options.cljs msgid "workspace.options.prototype" msgstr "Прототип" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:469, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:481 msgid "workspace.options.radius" msgstr "Радиус" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:451 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.rotation" msgstr "Вращение" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:180 msgid "workspace.options.search-font" msgstr "Искать шрифт" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:741 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.select-a-shape" msgstr "Выберите фигуру, кадр или группу для соединения с другим кадром." -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:47 +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs msgid "workspace.options.selection-fill" msgstr "Заливка выбранного" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:41 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.selection-stroke" msgstr "Обводка выбранного" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:40, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:198, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:200 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.blur" msgstr "Размытие" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:238 msgid "workspace.options.shadow-options.color" msgstr "Цвет тени" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:145 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.inner-shadow" msgstr "Внутренняя тень" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:38, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:186 -msgid "workspace.options.shadow-options.offsetx" -msgstr "X" - -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:39, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:224 -msgid "workspace.options.shadow-options.offsety" -msgstr "Y" - -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:296 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.title" msgstr "Тень" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:193 -msgid "workspace.options.show-fill-on-export" -msgstr "Показать в экспорте" - -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:562 msgid "workspace.options.show-in-viewer" msgstr "Показать в режиме просмотра" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:162 +#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.size" msgstr "Размер" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:355 +#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs msgid "workspace.options.size-presets" msgstr "Предустановки размеров" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:43 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke" msgstr "Обводка" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:129 -msgid "workspace.options.stroke-cap.circle-marker-short" -msgstr "Круг" - -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:128 -msgid "workspace.options.stroke-cap.square-marker-short" -msgstr "Прямоугольник" - #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -#, unused -msgid "workspace.options.stroke-cap.triangle-arrow" -msgstr "Треугольная стрела" - -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:127 -msgid "workspace.options.stroke-cap.triangle-arrow-short" -msgstr "Треугольник" - -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:87 msgid "workspace.options.stroke.center" msgstr "Центр" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:105 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.dashed" msgstr "Пунктирный" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:104 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.dotted" msgstr "Точечный" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:88 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.inner" msgstr "Внутрь" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:106 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.mixed" msgstr "Смешаный" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:89 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.outer" msgstr "Наружу" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:103 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.solid" msgstr "Сплошной" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:115 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.align-bottom" msgstr "Выровнять низ" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:111 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.align-middle" msgstr "Выравнивание по центру" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:107 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.align-top" msgstr "Выравнивание по верхнему краю" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:82 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.direction-ltr" msgstr "Слева направо" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:87 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.direction-rtl" msgstr "Справа налево" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:149 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.grow-auto-height" msgstr "Автовысота" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:145 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.grow-auto-width" msgstr "Автоширина" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:141 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.grow-fixed" msgstr "Фиксированно" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:381 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.options.text-options.letter-spacing" msgstr "Межсимвольный интервал" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:364 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.options.text-options.line-height" msgstr "Высота строки" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused msgid "workspace.options.text-options.lowercase" msgstr "Нижний регистр" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.options.text-options.none" msgstr "Не задано" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:176 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.strikethrough" msgstr "Перечеркнутый (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:51 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.text-align-center" msgstr "Выравнивание по центру (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:59 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.text-align-justify" msgstr "Выравнивание по ширине (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:47 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.text-align-left" msgstr "Выравнивание по левому краю (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:55 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.text-align-right" msgstr "Выравнивание по правому краю (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:189 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.title" msgstr "Текст" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:188 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.title-group" msgstr "Текст группы" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:187 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.title-selection" msgstr "Выбранный текст" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused msgid "workspace.options.text-options.titlecase" msgstr "Слова с заглавной буквы" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:171 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.underline" msgstr "Подчеркнутый (%s)" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused msgid "workspace.options.text-options.uppercase" msgstr "Верхний регистр" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:745 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.use-play-button" msgstr "Нажмите кнопку воспроизведения вверху для показа прототипа." -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:395 -msgid "workspace.options.width" -msgstr "Ширина" - -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:427 msgid "workspace.options.x" msgstr "Ось X" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:438 msgid "workspace.options.y" msgstr "Ось Y" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:167 msgid "workspace.path.actions.add-node" msgstr "Добавить узел (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:174 msgid "workspace.path.actions.delete-node" msgstr "Удалить узел (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:152 msgid "workspace.path.actions.draw-nodes" msgstr "Показать узлы (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:189 msgid "workspace.path.actions.join-nodes" msgstr "Соединить узлы (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:204 msgid "workspace.path.actions.make-corner" msgstr "В угол (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:211 msgid "workspace.path.actions.make-curve" msgstr "В кривую (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:182 msgid "workspace.path.actions.merge-nodes" msgstr "Объединить узлы (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:159 msgid "workspace.path.actions.move-nodes" msgstr "Сместить узлы (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:196 msgid "workspace.path.actions.separate-nodes" msgstr "Разделить узлы (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:218 msgid "workspace.path.actions.snap-nodes" msgstr "Прилипать узлами (%s)" -#: src/app/main/ui/workspace/context_menu.cljs:139 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.copy" msgstr "Скопировать" -#: src/app/main/ui/workspace/context_menu.cljs:275 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.create-artboard-from-selection" msgstr "Выделенное в кадр" -#: src/app/main/ui/workspace/context_menu.cljs:465 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.create-component" msgstr "Создать компонент" -#: src/app/main/ui/workspace/context_menu.cljs:142 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.cut" msgstr "Вырезать" -#: src/app/main/ui/workspace/context_menu.cljs:486 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.delete" msgstr "Удалить" -#: src/app/main/ui/workspace/context_menu.cljs:391 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.delete-flow-start" msgstr "Удалить начало потока" -#: src/app/main/ui/workspace/context_menu.cljs:335, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:75 msgid "workspace.shape.menu.difference" msgstr "Разница" -#: src/app/main/ui/workspace/context_menu.cljs:148 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.duplicate" msgstr "Дублировать" -#: src/app/main/ui/workspace/context_menu.cljs:321 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.edit" msgstr "Редактировать" -#: src/app/main/ui/workspace/context_menu.cljs:341 msgid "workspace.shape.menu.exclude" msgstr "Исключить" -#: src/app/main/ui/workspace/context_menu.cljs:394 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.flow-start" msgstr "Начало потока" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.go-main" msgstr "Перейти к основному файлу компонента" -#: src/app/main/ui/workspace/context_menu.cljs:363, src/app/main/ui/workspace/sidebar/layer_item.cljs:145 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.hide" msgstr "Скрыть" -#: src/app/main/ui/workspace/context_menu.cljs:548, src/app/main/ui/workspace/main_menu.cljs:408 msgid "workspace.shape.menu.hide-ui" msgstr "Показать/скрыть UI" -#: src/app/main/ui/workspace/context_menu.cljs:338 -msgid "workspace.shape.menu.intersection" -msgstr "Пересечь" - -#: src/app/main/ui/workspace/context_menu.cljs:371, src/app/main/ui/workspace/sidebar/layer_item.cljs:153 -msgid "workspace.shape.menu.lock" -msgstr "Заблокировать" - -#: src/app/main/ui/workspace/context_menu.cljs:145, src/app/main/ui/workspace/context_menu.cljs:545 -msgid "workspace.shape.menu.paste" -msgstr "Вставить" - -#: src/app/main/ui/workspace/context_menu.cljs:331 msgid "workspace.shape.menu.path" msgstr "Контур" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:436 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.reset-overrides" msgstr "Сбросить переопределения" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:439 msgid "workspace.shape.menu.restore-main" msgstr "Восстановить основной компонент" -#: src/app/main/ui/workspace/context_menu.cljs:174 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.select-layer" msgstr "Выбрать слой" -#: src/app/main/ui/workspace/context_menu.cljs:360, src/app/main/ui/workspace/sidebar/layer_item.cljs:144 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.show" msgstr "Показать" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:442, src/app/main/ui/workspace/sidebar/assets/components.cljs:586 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.show-main" msgstr "Показать основной компонент" -#: src/app/main/ui/workspace/context_menu.cljs:221 msgid "workspace.shape.menu.thumbnail-remove" msgstr "Удалить миниатюру" -#: src/app/main/ui/workspace/context_menu.cljs:223 msgid "workspace.shape.menu.thumbnail-set" msgstr "Сделать миниатюрой" -#: src/app/main/ui/workspace/context_menu.cljs:326 msgid "workspace.shape.menu.transform-to-path" msgstr "Преобразовать в контур" -#: src/app/main/ui/workspace/context_menu.cljs:257 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.ungroup" msgstr "Разгруппировать" -#: src/app/main/ui/workspace/context_menu.cljs:332, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:70 -msgid "workspace.shape.menu.union" -msgstr "Суммировать" - -#: src/app/main/ui/workspace/context_menu.cljs:368, src/app/main/ui/workspace/sidebar/layer_item.cljs:152 -msgid "workspace.shape.menu.unlock" -msgstr "Paзблокировать" - -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.update-components-in-bulk" msgstr "Обновить основные компоненты" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:445 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.update-main" msgstr "Обновить основной компонент" -#: src/app/main/ui/components/tab_container.cljs:50 -msgid "workspace.sidebar.collapse" -msgstr "Свернуть боковую панель" - -#: src/app/main/ui/workspace/sidebar/collapsable_button.cljs:26 -msgid "workspace.sidebar.expand" -msgstr "Расширить боковую панель" - -#: src/app/main/ui/workspace/right_header.cljs:231, src/app/main/ui/workspace/right_header.cljs:232 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.sidebar.history" msgstr "История (%s)" -#: src/app/main/ui/workspace/sidebar/layers.cljs:522, src/app/main/ui/workspace/sidebar.cljs:100 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.sidebar.layers" msgstr "Слои" -#: src/app/main/ui/workspace/sidebar/layers.cljs:308, src/app/main/ui/workspace/sidebar/layers.cljs:380 msgid "workspace.sidebar.layers.components" msgstr "Компоненты" -#: src/app/main/ui/workspace/sidebar/layers.cljs:306, src/app/main/ui/workspace/sidebar/layers.cljs:352 -msgid "workspace.sidebar.layers.groups" -msgstr "Группы" - -#: src/app/main/ui/workspace/sidebar/layers.cljs:310, src/app/main/ui/workspace/sidebar/layers.cljs:408 -msgid "workspace.sidebar.layers.images" -msgstr "Изображения" - -#: src/app/main/ui/workspace/sidebar/layers.cljs:307, src/app/main/ui/workspace/sidebar/layers.cljs:366 -msgid "workspace.sidebar.layers.masks" -msgstr "Маски" - -#: src/app/main/ui/workspace/sidebar/layers.cljs:289 msgid "workspace.sidebar.layers.search" msgstr "Искать слои" -#: src/app/main/ui/workspace/sidebar/layers.cljs:311, src/app/main/ui/workspace/sidebar/layers.cljs:422 -msgid "workspace.sidebar.layers.shapes" -msgstr "Формы" - -#: src/app/main/ui/workspace/sidebar/layers.cljs:309, src/app/main/ui/workspace/sidebar/layers.cljs:394 -msgid "workspace.sidebar.layers.texts" -msgstr "Тексты" - -#: src/app/main/ui/workspace/sidebar/sitemap.cljs:217 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs msgid "workspace.sidebar.sitemap" msgstr "Страницы" -#: src/app/main/ui/workspace/left_header.cljs:91 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.sitemap" msgstr "Карта сайта" -#: src/app/main/ui/workspace/sidebar.cljs:120 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.assets" msgstr "Ресурсы" -#: src/app/main/ui/workspace/palette.cljs:165, src/app/main/ui/workspace/palette.cljs:166 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.color-palette" msgstr "Палитра цветов (%s)" -#: src/app/main/ui/workspace/right_header.cljs:220, src/app/main/ui/workspace/right_header.cljs:221 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.comments" msgstr "Комментарии (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:180, src/app/main/ui/workspace/top_toolbar.cljs:181 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.curve" msgstr "Кривая (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:160, src/app/main/ui/workspace/top_toolbar.cljs:161 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.ellipse" msgstr "Эллипс (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:142, src/app/main/ui/workspace/top_toolbar.cljs:143 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.frame" msgstr "Кадр (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:59, src/app/main/ui/workspace/top_toolbar.cljs:60 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.image" msgstr "Изображение (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:132, src/app/main/ui/workspace/top_toolbar.cljs:133 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.move" msgstr "Перемещение (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:189, src/app/main/ui/workspace/top_toolbar.cljs:190 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.path" msgstr "Контур (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:151, src/app/main/ui/workspace/top_toolbar.cljs:152 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.rect" msgstr "Прямоугольник (%s)" #: src/app/main/ui/workspace/left_toolbar.cljs -#, unused -msgid "workspace.toolbar.shortcuts" -msgstr "Сочетание клавиш (%s)" - -#: src/app/main/ui/workspace/top_toolbar.cljs:169, src/app/main/ui/workspace/top_toolbar.cljs:170 msgid "workspace.toolbar.text" msgstr "Текст (%s)" -#: src/app/main/ui/workspace/palette.cljs:173, src/app/main/ui/workspace/palette.cljs:174 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.text-palette" msgstr "Типографики (%s)" -#: src/app/main/ui/workspace/viewport/top_bar.cljs:38 -msgid "workspace.top-bar.read-only.done" -msgstr "Готово" - -#: src/app/main/ui/workspace/sidebar/history.cljs:111 -msgid "workspace.undo.entry.multiple.circle" -msgstr "круги" - -#: src/app/main/ui/workspace/sidebar/history.cljs:112 msgid "workspace.undo.entry.multiple.color" msgstr "цветовые ресурсы" -#: src/app/main/ui/workspace/sidebar/history.cljs:113 msgid "workspace.undo.entry.multiple.component" msgstr "компоненты" -#: src/app/main/ui/workspace/sidebar/history.cljs:115 msgid "workspace.undo.entry.multiple.frame" msgstr "кадры" -#: src/app/main/ui/workspace/sidebar/history.cljs:116 -msgid "workspace.undo.entry.multiple.group" -msgstr "группы" - -#: src/app/main/ui/workspace/sidebar/history.cljs:117 msgid "workspace.undo.entry.multiple.media" msgstr "графические ресурсы" -#: src/app/main/ui/workspace/sidebar/history.cljs:118 -msgid "workspace.undo.entry.multiple.multiple" -msgstr "объекты" - -#: src/app/main/ui/workspace/sidebar/history.cljs:119 -msgid "workspace.undo.entry.multiple.page" -msgstr "страницы" - -#: src/app/main/ui/workspace/sidebar/history.cljs:120 msgid "workspace.undo.entry.multiple.path" msgstr "контуры" -#: src/app/main/ui/workspace/sidebar/history.cljs:122 -msgid "workspace.undo.entry.multiple.shape" -msgstr "формы" - -#: src/app/main/ui/workspace/sidebar/history.cljs:123 -msgid "workspace.undo.entry.multiple.text" -msgstr "тексты" - -#: src/app/main/ui/workspace/sidebar/history.cljs:124 msgid "workspace.undo.entry.multiple.typography" msgstr "типографические ресурсы" -#: src/app/main/ui/workspace/sidebar/history.cljs:145 -msgid "workspace.undo.entry.new" -msgstr "Новый: %s" - -#: src/app/main/ui/workspace/sidebar/history.cljs:125 -msgid "workspace.undo.entry.single.circle" -msgstr "круг" - -#: src/app/main/ui/workspace/sidebar/history.cljs:127 -msgid "workspace.undo.entry.single.component" -msgstr "компонент" - -#: src/app/main/ui/workspace/sidebar/history.cljs:129 msgid "workspace.undo.entry.single.frame" msgstr "кадр" -#: src/app/main/ui/workspace/sidebar/history.cljs:130 msgid "workspace.undo.entry.single.group" msgstr "группа" -#: src/app/main/ui/workspace/sidebar/history.cljs:131 -msgid "workspace.undo.entry.single.image" -msgstr "изображение" - -#: src/app/main/ui/workspace/sidebar/history.cljs:133 -msgid "workspace.undo.entry.single.multiple" -msgstr "объект" - -#: src/app/main/ui/workspace/sidebar/history.cljs:134 -msgid "workspace.undo.entry.single.page" -msgstr "страница" - -#: src/app/main/ui/workspace/sidebar/history.cljs:135 msgid "workspace.undo.entry.single.path" msgstr "контур" -#: src/app/main/ui/workspace/sidebar/history.cljs:136 msgid "workspace.undo.entry.single.rect" msgstr "прямоугольник" -#: src/app/main/ui/workspace/sidebar/history.cljs:137 -msgid "workspace.undo.entry.single.shape" -msgstr "форма" - -#: src/app/main/ui/workspace/sidebar/history.cljs:138 -msgid "workspace.undo.entry.single.text" -msgstr "текст" - -#: src/app/main/ui/workspace/sidebar/history.cljs:335 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.title" msgstr "История" -#: src/app/main/data/workspace/libraries.cljs:1094 +#: src/app/main/data/workspace/libraries.cljs msgid "workspace.updates.dismiss" msgstr "Отклонить" -#: src/app/main/data/workspace/libraries.cljs:1092 -msgid "workspace.updates.more-info" -msgstr "Дополнительная информация" - -#: src/app/main/data/workspace/libraries.cljs:1090 +#: src/app/main/data/workspace/libraries.cljs msgid "workspace.updates.there-are-updates" msgstr "Обнаружены обновления общих библиотек" -#: src/app/main/data/workspace/libraries.cljs:1097 +#: src/app/main/data/workspace/libraries.cljs msgid "workspace.updates.update" msgstr "Обновить" -#, unused msgid "workspace.viewport.click-to-close-path" msgstr "Нажмите для замыкания контура" + +msgid "workspace.undo.entry.multiple.multiple" +msgstr "объекты" + +msgid "workspace.undo.entry.single.page" +msgstr "страница" + +#: src/app/main/ui/settings/access-tokens.cljs +msgid "dashboard.access-tokens.copied-success" +msgstr "Токен скопирован" + +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +msgid "workspace.options.shadow-options.offsetx" +msgstr "X" + +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs +msgid "workspace.options.show-fill-on-export" +msgstr "Показать в экспорте" + +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +msgid "workspace.options.stroke-cap.circle-marker-short" +msgstr "Круг" + +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +msgid "workspace.options.stroke-cap.triangle-arrow" +msgstr "Треугольная стрела" + +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +msgid "workspace.options.stroke-cap.square-marker-short" +msgstr "Прямоугольник" + +#: src/app/main/ui/workspace/context_menu.cljs +msgid "workspace.shape.menu.lock" +msgstr "Заблокировать" + +#: src/app/main/ui/workspace/sidebar/history.cljs +msgid "workspace.undo.entry.new" +msgstr "Новый: %s" + +msgid "workspace.undo.entry.multiple.group" +msgstr "группы" + +msgid "workspace.undo.entry.single.component" +msgstr "компонент" + +msgid "workspace.undo.entry.single.circle" +msgstr "круг" + +msgid "workspace.undo.entry.single.multiple" +msgstr "объект" + +#: src/app/main/data/workspace/libraries.cljs +msgid "workspace.updates.more-info" +msgstr "Дополнительная информация" + +msgid "workspace.top-bar.read-only.done" +msgstr "Готово" + +#: src/app/main/ui/workspace/left_toolbar.cljs +msgid "workspace.toolbar.shortcuts" +msgstr "Сочетание клавиш (%s)" + +msgid "workspace.sidebar.layers.shapes" +msgstr "Формы" + +msgid "workspace.undo.entry.multiple.page" +msgstr "страницы" + +msgid "workspace.shape.menu.intersection" +msgstr "Пересечь" + +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs +msgid "workspace.options.shadow-options.offsety" +msgstr "Y" + +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +msgid "workspace.options.stroke-cap.triangle-arrow-short" +msgstr "Треугольник" + +msgid "workspace.undo.entry.multiple.shape" +msgstr "формы" + +msgid "workspace.undo.entry.multiple.circle" +msgstr "круги" + +#: src/app/main/ui/workspace/context_menu.cljs +msgid "workspace.shape.menu.unlock" +msgstr "Paзблокировать" + +msgid "workspace.sidebar.collapse" +msgstr "Свернуть боковую панель" + +msgid "workspace.options.width" +msgstr "Ширина" + +#: src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs +msgid "workspace.shape.menu.paste" +msgstr "Вставить" + +msgid "workspace.undo.entry.single.shape" +msgstr "форма" + +msgid "workspace.undo.entry.single.text" +msgstr "текст" + +msgid "workspace.undo.entry.single.image" +msgstr "изображение" + +msgid "workspace.undo.entry.multiple.text" +msgstr "тексты" + +msgid "workspace.sidebar.layers.texts" +msgstr "Тексты" + +msgid "workspace.sidebar.layers.masks" +msgstr "Маски" + +msgid "workspace.sidebar.layers.images" +msgstr "Изображения" + +msgid "workspace.sidebar.layers.groups" +msgstr "Группы" + +msgid "workspace.sidebar.expand" +msgstr "Расширить боковую панель" + +msgid "workspace.shape.menu.union" +msgstr "Суммировать" diff --git a/frontend/translations/ta.po b/frontend/translations/ta.po index 8222f448b3..6ed7b51180 100644 --- a/frontend/translations/ta.po +++ b/frontend/translations/ta.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "PO-Revision-Date: 2024-06-17 08:07+0000\n" "Last-Translator: Anonymous \n" -"Language-Team: Tamil " -"\n" +"Language-Team: Tamil \n" "Language: ta\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" @@ -11,202 +11,186 @@ msgstr "" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 5.6-dev\n" -#: src/app/main/ui/auth/register.cljs:151, src/app/main/ui/viewer/login.cljs:104 +#: src/app/main/ui/auth/register.cljs msgid "auth.already-have-account" msgstr "ஏற்கனவே ஒரு கணக்கு உள்ளதா?" -#: src/app/main/ui/auth/register.cljs:299 +#: src/app/main/ui/auth/register.cljs msgid "auth.check-your-email" msgstr "" "உங்கள் மின்னஞ்சலைச் சரிபார்த்து, இணைப்பைக் கிளிக் செய்து சரிபார்த்து, " "Penpot ஐப் பயன்படுத்தத் தொடங்குங்கள்." -#: src/app/main/ui/auth/recovery.cljs:78 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.confirm-password" msgstr "கடவுச்சொல்லை உறுதிப்படுத்தவும்" -#: src/app/main/ui/auth/register.cljs:163 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.create-demo-account" msgstr "டெமோ கணக்கை உருவாக்கவும்" #: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs -#, unused msgid "auth.create-demo-profile" msgstr "அதை முயற்சி செய்ய வேண்டுமா?" -#: src/app/main/ui/auth/login.cljs:43 +#: src/app/main/ui/auth/register.cljs msgid "auth.demo-warning" msgstr "" "இது ஒரு டெமோ சேவை, உண்மையான வேலைக்கு பயன்படுத்த வேண்டாம், திட்டங்கள் " "அவ்வப்போது அழிக்கப்படும்." -#: src/app/main/ui/auth/login.cljs:189, src/app/main/ui/viewer/login.cljs:90 +#: src/app/main/ui/auth/login.cljs msgid "auth.forgot-password" msgstr "கடவுச்சொல்லை மறந்துவிட்டீர்களா?" -#: src/app/main/ui/auth/register.cljs:254 +#: src/app/main/ui/auth/register.cljs msgid "auth.fullname" msgstr "முழு பெயர்" -#: src/app/main/ui/auth/register.cljs:155, src/app/main/ui/viewer/login.cljs:107 +#: src/app/main/ui/auth/register.cljs +#, fuzzy msgid "auth.login-here" msgstr "இங்கே உள்நுழைக" -#: src/app/main/ui/auth/login.cljs:195 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-submit" msgstr "உள்நுழை" -#: src/app/main/ui/auth/login.cljs:222 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-github-submit" msgstr "GitHub" -#: src/app/main/ui/auth/login.cljs:228 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-gitlab-submit" msgstr "கிட்லேப்" -#: src/app/main/ui/auth/login.cljs:216 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-google-submit" msgstr "கூகுள்" -#: src/app/main/ui/auth/login.cljs:201 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-ldap-submit" msgstr "LDAP" -#: src/app/main/ui/auth/login.cljs:234, src/app/main/ui/auth/login.cljs:255 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-oidc-submit" msgstr "ஓப்பன் ஐடி" -#: src/app/main/ui/auth/recovery.cljs:71 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.new-password" msgstr "புதிய கடவுச்சொல்லை உள்ளிடவும்" -#: src/app/main/ui/auth/recovery.cljs:42 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.notifications.invalid-token-error" msgstr "மீட்பு டோக்கன் செல்லுபடியாகாது." -#: src/app/main/ui/auth/recovery.cljs:46 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.notifications.password-changed-successfully" msgstr "கடவுச்சொல் வெற்றிகரமாக மாற்றப்பட்டது" -#: src/app/main/ui/auth/recovery_request.cljs:57 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.notifications.profile-not-verified" msgstr "" "சுயவிவரம் சரிபார்க்கப்படவில்லை, தொடர்வதற்கு முன் சுயவிவரத்தைச் " "சரிபார்க்கவும்." -#: src/app/main/ui/auth/recovery_request.cljs:40 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.notifications.recovery-token-sent" msgstr "கடவுச்சொல் மீட்பு இணைப்பு உங்கள் இன்பாக்ஸிற்கு அனுப்பப்பட்டது." -#: src/app/main/ui/auth/verify_token.cljs:47 +#: src/app/main/ui/auth/verify_token.cljs msgid "auth.notifications.team-invitation-accepted" msgstr "அணியில் வெற்றிகரமாக இணைந்தார்" -#: src/app/main/ui/auth/login.cljs:179, src/app/main/ui/auth/register.cljs:115 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.password" msgstr "கடவுச்சொல்" -#: src/app/main/ui/auth/register.cljs:114 +#: src/app/main/ui/auth/register.cljs msgid "auth.password-length-hint" msgstr "குறைந்தது 8 எழுத்துகள்" -#: src/app/main/ui/auth.cljs:41 msgid "auth.privacy-policy" msgstr "தனியுரிமைக் கொள்கை" -#: src/app/main/ui/auth/recovery_request.cljs:88 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-submit" msgstr "கடவுச்சொல்லை மீட்டெடுக்கவும்" -#: src/app/main/ui/auth/recovery_request.cljs:101 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-subtitle" msgstr "வழிமுறைகளுடன் கூடிய மின்னஞ்சலை உங்களுக்கு அனுப்புவோம்" -#: src/app/main/ui/auth/recovery_request.cljs:100 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-title" msgstr "கடவுச்சொல்லை மறந்துவிட்டீர்களா?" -#: src/app/main/ui/auth/recovery.cljs:82 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.recovery-submit" msgstr "உங்கள் கடவுச்சொல்லை மாற்றுக" -#: src/app/main/ui/auth/login.cljs:298, src/app/main/ui/viewer/login.cljs:93 +#: src/app/main/ui/auth/login.cljs msgid "auth.register" msgstr "இன்னும் கணக்கு இல்லையா?" -#: src/app/main/ui/auth/login.cljs:302, src/app/main/ui/auth/register.cljs:121, src/app/main/ui/auth/register.cljs:263, src/app/main/ui/viewer/login.cljs:97 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.register-submit" msgstr "ஒரு கணக்கை உருவாக்கவும்" -#: src/app/main/ui/auth/register.cljs:140 +#: src/app/main/ui/auth/register.cljs msgid "auth.register-title" msgstr "ஒரு கணக்கை உருவாக்கவும்" #: src/app/main/ui/auth.cljs -#, unused msgid "auth.sidebar-tagline" msgstr "வடிவமைப்பு மற்றும் முன்மாதிரிக்கான திறந்த மூல தீர்வு." -#: src/app/main/ui/auth.cljs:33, src/app/main/ui/dashboard/sidebar.cljs:1022, src/app/main/ui/workspace/main_menu.cljs:150 msgid "auth.terms-of-service" msgstr "சேவை விதிமுறைகள்" -#: src/app/main/ui/auth/register.cljs:297 +#: src/app/main/ui/auth/register.cljs msgid "auth.verification-email-sent" msgstr "சரிபார்ப்பு மின்னஞ்சலை அனுப்பியுள்ளோம் இந்த முகவரிக்கு" -#: src/app/main/ui/workspace/libraries.cljs:228 msgid "common.publish" msgstr "வெளியிடுங்கள்" -#: src/app/main/ui/viewer/share_link.cljs:304, src/app/main/ui/viewer/share_link.cljs:314 msgid "common.share-link.all-users" msgstr "அனைத்து Penpot பயனர்களும்" -#: src/app/main/ui/viewer/share_link.cljs:198 msgid "common.share-link.confirm-deletion-link-description" msgstr "" "இந்த இணைப்பை நிச்சயமாக அகற்ற விரும்புகிறீர்களா? நீங்கள் அதைச் செய்தால், அது " "இனி யாருக்கும் கிடைக்காது" -#: src/app/main/ui/viewer/share_link.cljs:259, src/app/main/ui/viewer/share_link.cljs:289 msgid "common.share-link.current-tag" msgstr "(தற்போதைய)" -#: src/app/main/ui/viewer/share_link.cljs:207, src/app/main/ui/viewer/share_link.cljs:214 msgid "common.share-link.destroy-link" msgstr "இணைப்பை அழிக்கவும்" -#: src/app/main/ui/viewer/share_link.cljs:221 msgid "common.share-link.get-link" msgstr "இணைப்பைப் பெறுங்கள்" -#: src/app/main/ui/viewer/share_link.cljs:139 msgid "common.share-link.link-copied-success" msgstr "இணைப்பு வெற்றிகரமாக நகலெடுக்கப்பட்டது" -#: src/app/main/ui/viewer/share_link.cljs:231 msgid "common.share-link.manage-ops" msgstr "அனுமதிகளை நிர்வகிக்கவும்" -#: src/app/main/ui/viewer/share_link.cljs:277 msgid "common.share-link.page-shared" msgid_plural "common.share-link.page-shared" msgstr[0] "1 பக்கம் பகிரப்பட்டது" msgstr[1] "%s பக்கங்கள் பகிரப்பட்டன" -#: src/app/main/ui/viewer/share_link.cljs:298 msgid "common.share-link.permissions-can-comment" msgstr "கருத்து தெரிவிக்கலாம்" -#: src/app/main/ui/viewer/share_link.cljs:308 msgid "common.share-link.permissions-can-inspect" msgstr "குறியீட்டை ஆய்வு செய்யலாம்" -#: src/app/main/ui/viewer/share_link.cljs:193 msgid "common.share-link.permissions-hint" msgstr "இணைப்பு உள்ள எவருக்கும் அணுகல் இருக்கும்" -#: src/app/main/ui/viewer/share_link.cljs:241 msgid "common.share-link.permissions-pages" msgstr "பக்கங்கள் பகிரப்பட்டன" diff --git a/frontend/translations/tr.po b/frontend/translations/tr.po index bf61be621c..92d9dfe7e1 100644 --- a/frontend/translations/tr.po +++ b/frontend/translations/tr.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "PO-Revision-Date: 2024-06-17 08:07+0000\n" "Last-Translator: Anonymous \n" -"Language-Team: Turkish " -"\n" +"Language-Team: Turkish \n" "Language: tr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" @@ -11,536 +11,490 @@ msgstr "" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 5.6-dev\n" -#: src/app/main/ui/auth/register.cljs:151, src/app/main/ui/viewer/login.cljs:104 +#: src/app/main/ui/auth/register.cljs msgid "auth.already-have-account" msgstr "Zaten hesabın var mı?" -#: src/app/main/ui/auth/register.cljs:299 +#: src/app/main/ui/auth/register.cljs msgid "auth.check-your-email" msgstr "" "Penpot hesabını onaylamak ve kullanmaya başlamak için e-postanı kontrol et " "ve gönderilen bağlantıya tıkla." -#: src/app/main/ui/auth/recovery.cljs:78 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.confirm-password" msgstr "Parolayı onayla" -#: src/app/main/ui/auth/register.cljs:163 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.create-demo-account" msgstr "Demo hesabı oluştur" #: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs -#, unused msgid "auth.create-demo-profile" msgstr "Sadece denemek mi istiyorsun?" -#: src/app/main/ui/auth/login.cljs:43 +#: src/app/main/ui/auth/register.cljs msgid "auth.demo-warning" msgstr "" "Bu bir DEMO hizmettir, gerçek işleriniz için KULLANMAYIN, projeler belirli " "aralıklarla silinecektir." -#: src/app/main/ui/auth/login.cljs:189, src/app/main/ui/viewer/login.cljs:90 +#: src/app/main/ui/auth/login.cljs msgid "auth.forgot-password" msgstr "Parolanı mı unuttun?" -#: src/app/main/ui/auth/register.cljs:254 +#: src/app/main/ui/auth/register.cljs msgid "auth.fullname" msgstr "Tam Adın" -#: src/app/main/ui/auth/login.cljs:282 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-account-title" msgstr "Hesabımda oturum aç" -#: src/app/main/ui/auth/register.cljs:155, src/app/main/ui/viewer/login.cljs:107 +#: src/app/main/ui/auth/register.cljs +#, fuzzy msgid "auth.login-here" msgstr "Buradan oturum açın" -#: src/app/main/ui/auth/login.cljs:195 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-submit" msgstr "Oturum aç" -#: src/app/main/ui/auth/login.cljs:285 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-tagline" msgstr "" "Penpot, tasarım ve kod işbirliği için özgür ve açık kaynaklı tasarım " "aracıdır" -#: src/app/main/ui/auth/login.cljs:222 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.login-with-github-submit" msgstr "GitHub" -#: src/app/main/ui/auth/login.cljs:228 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.login-with-gitlab-submit" msgstr "GitLab" -#: src/app/main/ui/auth/login.cljs:216 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-google-submit" msgstr "Google" -#: src/app/main/ui/auth/login.cljs:201 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-ldap-submit" msgstr "LDAP" -#: src/app/main/ui/auth/login.cljs:234, src/app/main/ui/auth/login.cljs:255 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-oidc-submit" msgstr "OpenID" -#: src/app/main/ui/auth/register.cljs:217, src/app/main/ui/dashboard/team_form.cljs:76, src/app/main/ui/onboarding/team_choice.cljs:180, src/app/main/ui/settings/access_tokens.cljs:66, src/app/main/ui/settings/feedback.cljs:34, src/app/main/ui/settings/profile.cljs:45, src/app/main/ui/workspace/sidebar/assets/groups.cljs:108 +#: src/app/main/ui/settings/team-form.cljs, src/app/main/ui/auth/register.cljs, src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/onboarding/team_choice.cljs, src/app/main/ui/settings/access_tokens.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/settings/profile.cljs, src/app/main/ui/workspace/sidebar/assets.cljs msgid "auth.name.not-all-space" msgstr "İsim boşluk dışında bir karakter içermelidir." -#: src/app/main/ui/auth/register.cljs:218, src/app/main/ui/dashboard/team_form.cljs:77, src/app/main/ui/onboarding/team_choice.cljs:181, src/app/main/ui/settings/access_tokens.cljs:67, src/app/main/ui/settings/feedback.cljs:33, src/app/main/ui/settings/profile.cljs:44, src/app/main/ui/workspace/sidebar/assets/groups.cljs:109 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/onboarding/team_choice.cljs, src/app/main/ui/settings/access_tokens.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/settings/profile.cljs, src/app/main/ui/workspace/sidebar/assets.cljs msgid "auth.name.too-long" msgstr "İsim en fazla 250 karakter içermelidir." -#: src/app/main/ui/auth/recovery.cljs:71 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.new-password" msgstr "Yeni bir parola gir" -#: src/app/main/ui/auth/recovery.cljs:42 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.notifications.invalid-token-error" msgstr "Kurtarma jetonu geçerli değil." -#: src/app/main/ui/auth/recovery.cljs:46 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.notifications.password-changed-successfully" msgstr "Parola başarıyla değiştirildi" -#: src/app/main/ui/auth/recovery_request.cljs:57 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.notifications.profile-not-verified" msgstr "Profil onaylanmamış, devam etmeden önce profili onaylayın." -#: src/app/main/ui/auth/recovery_request.cljs:40 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.notifications.recovery-token-sent" msgstr "Parola kurtarma bağlantısı e-posta kutuna gönderildi." -#: src/app/main/ui/auth/verify_token.cljs:47 +#: src/app/main/ui/auth/verify_token.cljs msgid "auth.notifications.team-invitation-accepted" msgstr "Takıma başarıyla katıldın" -#: src/app/main/ui/auth/login.cljs:179, src/app/main/ui/auth/register.cljs:115 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.password" msgstr "Parola" -#: src/app/main/ui/auth/register.cljs:114 +#: src/app/main/ui/auth/register.cljs msgid "auth.password-length-hint" msgstr "En az 8 karakter" -#: src/app/main/ui/auth/recovery.cljs:61, src/app/main/ui/auth/recovery.cljs:62, src/app/main/ui/auth/register.cljs:81, src/app/main/ui/settings/password.cljs:75, src/app/main/ui/settings/password.cljs:76, src/app/main/ui/settings/password.cljs:77 +#: src/app/main/ui/auth/register.cljs msgid "auth.password-not-empty" msgstr "Parola boşluk dışında bir karakter içermelidir." -#: src/app/main/ui/auth.cljs:41 msgid "auth.privacy-policy" msgstr "Gizlilik politikası" -#: src/app/main/ui/auth/recovery_request.cljs:88 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-submit" msgstr "Parolayı kurtar" -#: src/app/main/ui/auth/recovery_request.cljs:101 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-subtitle" msgstr "Detayları sana e-posta ile göndereceğiz" -#: src/app/main/ui/auth/recovery_request.cljs:100 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-title" msgstr "Parolanı mı unuttun?" -#: src/app/main/ui/auth/recovery.cljs:82 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.recovery-submit" msgstr "Parolanı değiştir" -#: src/app/main/ui/auth/login.cljs:298, src/app/main/ui/viewer/login.cljs:93 +#: src/app/main/ui/auth/login.cljs msgid "auth.register" msgstr "Henüz hesabın yok mu?" -#: src/app/main/ui/auth/login.cljs:302, src/app/main/ui/auth/register.cljs:121, src/app/main/ui/auth/register.cljs:263, src/app/main/ui/viewer/login.cljs:97 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.register-submit" msgstr "Bir hesap oluştur" -#: src/app/main/ui/auth/register.cljs:140 +#: src/app/main/ui/auth/register.cljs msgid "auth.register-title" msgstr "Bir hesap oluştur" #: src/app/main/ui/auth.cljs -#, unused msgid "auth.sidebar-tagline" msgstr "Tasarım ve prototipleme için açık-kaynak çözüm." -#: src/app/main/ui/auth.cljs:33, src/app/main/ui/dashboard/sidebar.cljs:1022, src/app/main/ui/workspace/main_menu.cljs:150 msgid "auth.terms-of-service" msgstr "Hizmet şartları" -#, unused +#: src/app/main/ui/auth/register.cljs msgid "auth.terms-privacy-agreement" msgstr "" "Bir hesap oluştururken, koşullarımızı ve gizlilik politikamızı kabul etmiş " "sayılırsınız." -#: src/app/main/ui/auth/register.cljs:297 +#: src/app/main/ui/auth/register.cljs msgid "auth.verification-email-sent" msgstr "Onay e-postanı şu adrese gönderdik" #: src/app/main/ui/onboarding/questions.cljs -#, unused msgid "branding-illustrations-marketing-pieces" msgstr "...marka çalışması, çizimler, pazarlama materyalleri, vb." -#: src/app/main/ui/workspace/libraries.cljs:228 msgid "common.publish" msgstr "Yayınla" -#: src/app/main/ui/viewer/share_link.cljs:304, src/app/main/ui/viewer/share_link.cljs:314 msgid "common.share-link.all-users" msgstr "Tüm Penpot kullanıcıları" -#: src/app/main/ui/viewer/share_link.cljs:198 msgid "common.share-link.confirm-deletion-link-description" msgstr "" "Bu bağlantıyı kaldırmak istediğinizden emin misiniz? Bunu yaparsanız, artık " "kimse tarafından kullanılamayacak" -#: src/app/main/ui/viewer/share_link.cljs:259, src/app/main/ui/viewer/share_link.cljs:289 msgid "common.share-link.current-tag" msgstr "(geçerli)" -#: src/app/main/ui/viewer/share_link.cljs:207, src/app/main/ui/viewer/share_link.cljs:214 msgid "common.share-link.destroy-link" msgstr "Bağlantıyı yok et" -#: src/app/main/ui/viewer/share_link.cljs:221 msgid "common.share-link.get-link" msgstr "Bağlantıyı al" -#: src/app/main/ui/viewer/share_link.cljs:139 msgid "common.share-link.link-copied-success" msgstr "Bağlantı başarıyla kopyalandı" -#: src/app/main/ui/viewer/share_link.cljs:231 msgid "common.share-link.manage-ops" msgstr "İzinleri yönet" -#: src/app/main/ui/viewer/share_link.cljs:277 msgid "common.share-link.page-shared" msgid_plural "common.share-link.page-shared" msgstr[0] "1 sayfa paylaşıldı" msgstr[1] "%s sayfa paylaşıldı" -#: src/app/main/ui/viewer/share_link.cljs:298 msgid "common.share-link.permissions-can-comment" msgstr "Yorum yapabilir" -#: src/app/main/ui/viewer/share_link.cljs:308 msgid "common.share-link.permissions-can-inspect" msgstr "Kodu inceleyebilir" -#: src/app/main/ui/viewer/share_link.cljs:193 msgid "common.share-link.permissions-hint" msgstr "Bağlantıya sahip olan herkes erişebilir" -#: src/app/main/ui/viewer/share_link.cljs:241 msgid "common.share-link.permissions-pages" msgstr "Paylaşılan sayfalar" -#: src/app/main/ui/viewer/share_link.cljs:183 msgid "common.share-link.placeholder" msgstr "Paylaşılabilir bağlantı burada görünecek" -#: src/app/main/ui/viewer/share_link.cljs:303, src/app/main/ui/viewer/share_link.cljs:313 msgid "common.share-link.team-members" msgstr "Yalnızca takım üyeleri" -#: src/app/main/ui/viewer/share_link.cljs:171 msgid "common.share-link.title" msgstr "Prototipleri paylaş" -#: src/app/main/ui/viewer/share_link.cljs:269 msgid "common.share-link.view-all" msgstr "Tümünü Seç" -#: src/app/main/ui/workspace/libraries.cljs:224 msgid "common.unpublish" msgstr "Yayından kaldır" -#: src/app/main/ui/dashboard/projects.cljs:85 +#: src/app/main/ui/dashboard/projects.cljs msgid "dasboard.team-hero.management" msgstr "Takım yönetimi" -#: src/app/main/ui/dashboard/projects.cljs:84 +#: src/app/main/ui/dashboard/projects.cljs msgid "dasboard.team-hero.text" msgstr "" "Penpot takımlar içindir. Üyeleri projeler ve dosyalar üzerinde birlikte " "çalışmaya davet edin" -#: src/app/main/ui/dashboard/projects.cljs:82 +#: src/app/main/ui/dashboard/projects.cljs msgid "dasboard.team-hero.title" msgstr "Takım olun!" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.tutorial-hero.info" msgstr "" "Bu uygulamalı öğretici ile biraz eğlenirken Penpot'taki temel bilgileri " "öğrenin." #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.tutorial-hero.start" msgstr "Öğreticiyi başlat" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.tutorial-hero.title" msgstr "Uygulamalı Öğretici" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.walkthrough-hero.info" msgstr "Penpot'ta bir gezintiye çıkın ve temel özelliklerini öğrenin." #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.walkthrough-hero.start" msgstr "Gezintiyi başlat" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.walkthrough-hero.title" msgstr "Arayüz İncelemesi" -#: src/app/main/ui/settings/access_tokens.cljs:115 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.copied-success" msgstr "Belirteç kopyalandı" -#: src/app/main/ui/settings/access_tokens.cljs:202 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.create" msgstr "Yeni belirteç oluştur" -#: src/app/main/ui/settings/access_tokens.cljs:76 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.create.success" msgstr "Erişim belirteci başarıyla oluşturuldu." -#: src/app/main/ui/settings/access_tokens.cljs:300 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.empty.add-one" msgstr "Bir belirteç oluşturmak için \"Yeni belirteç oluştur\" düğmesine basın." -#: src/app/main/ui/settings/access_tokens.cljs:299 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.empty.no-access-tokens" msgstr "Şu ana kadar hiç belirteciniz yok." -#: src/app/main/ui/settings/access_tokens.cljs:53 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.errors-required-name" msgstr "İsim gereklidir" -#: src/app/main/ui/settings/access_tokens.cljs:147 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-180-days" msgstr "180 gün" -#: src/app/main/ui/settings/access_tokens.cljs:144 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-30-days" msgstr "30 gün" -#: src/app/main/ui/settings/access_tokens.cljs:145 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-60-days" msgstr "60 gün" -#: src/app/main/ui/settings/access_tokens.cljs:146 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-90-days" msgstr "90 gün" -#: src/app/main/ui/settings/access_tokens.cljs:143 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-never" msgstr "Asla" -#: src/app/main/ui/settings/access_tokens.cljs:282 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expired-on" msgstr "%s tarihinde sona erdi" -#: src/app/main/ui/settings/access_tokens.cljs:283 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expires-on" msgstr "%s tarihinde sona eriyor" -#: src/app/main/ui/settings/access_tokens.cljs:281 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.no-expiration" msgstr "Süresiz" -#: src/app/main/ui/settings/access_tokens.cljs:197 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.personal" msgstr "Kişisel erişim belirteçleri" -#: src/app/main/ui/settings/access_tokens.cljs:198 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.personal.description" msgstr "" "Kişisel erişim belirteçleri, oturum açma/parola kimlik doğrulama " "sistemimize alternatif olarak işlev görür ve bir uygulamanın dahili Penpot " "API'sine erişmesine izin vermek için kullanılabilir" -#: src/app/main/ui/settings/access_tokens.cljs:154 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.token-will-expire" msgstr "Belirtecin süresi %s tarihinde sona erecek" -#: src/app/main/ui/settings/access_tokens.cljs:155 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.token-will-not-expire" msgstr "Belirtecin sona erme tarihi yok" -#: src/app/main/ui/dashboard/file_menu.cljs:291, src/app/main/ui/workspace/main_menu.cljs:572 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.add-shared" msgstr "Paylaşılan Kütüphane olarak ekle" -#: src/app/main/ui/settings/profile.cljs:75 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.change-email" msgstr "E-posta adresini değiştir" -#: src/app/main/data/dashboard.cljs:762, src/app/main/data/dashboard.cljs:983 +#: src/app/main/data/dashboard.cljs, src/app/main/data/dashboard.cljs msgid "dashboard.copy-suffix" msgstr "(kopya)" -#: src/app/main/ui/dashboard/sidebar.cljs:338 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.create-new-team" msgstr "Yeni takım oluştur" -#: src/app/main/ui/components/context_menu_a11y.cljs:256, src/app/main/ui/dashboard/sidebar.cljs:646 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.default-team-name" msgstr "Penpot'un" -#: src/app/main/ui/dashboard/sidebar.cljs:571 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.delete-team" msgstr "Takımı sil" -#: src/app/main/ui/dashboard/file_menu.cljs:296, src/app/main/ui/workspace/main_menu.cljs:589 msgid "dashboard.download-binary-file" msgstr "Penpot dosyasını indir (.penpot)" -#: src/app/main/ui/dashboard/file_menu.cljs:300, src/app/main/ui/workspace/main_menu.cljs:597 msgid "dashboard.download-standard-file" msgstr "Standart dosyayı indir (.svg + .json)" -#: src/app/main/ui/dashboard/file_menu.cljs:276, src/app/main/ui/dashboard/project_menu.cljs:90 +#: src/app/main/ui/dashboard/project_menu.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.duplicate" msgstr "Kopyasını oluştur" -#: src/app/main/ui/dashboard/file_menu.cljs:240 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.duplicate-multi" msgstr "%s dosyanın kopyasını oluştur" -#: src/app/main/ui/dashboard/placeholder.cljs:32 -#, markdown +#: src/app/main/ui/dashboard/grid.cljs msgid "dashboard.empty-placeholder-drafts" msgstr "" "Kütüphanelere eklenen dosyalar burada görünecektir. Dosyalarınızı " "paylaşmayı deneyin veya [Kütüphaneler ve " "şablonlarımızdan](https://penpot.app/libraries-templates) ekleyin." -#: src/app/main/ui/dashboard/file_menu.cljs:249 msgid "dashboard.export-binary-multi" msgstr "%s Penpot dosyasını indir (.penpot)" -#: src/app/main/ui/workspace/main_menu.cljs:605 msgid "dashboard.export-frames" msgstr "Çalışma yüzeylerini PDF olarak dışa aktar" -#: src/app/main/ui/export.cljs:201 +#: src/app/main/ui/export.cljs msgid "dashboard.export-frames.title" msgstr "PDF olarak dışa aktar" -#, unused msgid "dashboard.export-multi" msgstr "Penpot %s dosyalarını dışa aktar" -#: src/app/main/ui/export.cljs:109 +#: src/app/main/ui/export.cljs msgid "dashboard.export-multiple.selected" msgstr "%s / %s öge seçildi" -#: src/app/main/ui/workspace/main_menu.cljs:578 +#: src/app/main/ui/workspace/header.cljs msgid "dashboard.export-shapes" msgstr "Dışa aktar" -#: src/app/main/ui/export.cljs:180 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.how-to" msgstr "" "Tasarım özelliklerinden (sağ kenar çubuğunun alt kısmında) ögelere dışa " "aktarma ayarları ekleyebilirsiniz." -#: src/app/main/ui/export.cljs:184 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.how-to-link" msgstr "Penpot'ta dışa aktarmaların nasıl ayarlandırılacağı hakkında bilgi." -#: src/app/main/ui/export.cljs:179 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.no-elements" msgstr "Dışa aktarma ayarlarına sahip hiçbir öge yok." -#: src/app/main/ui/export.cljs:190 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.title" msgstr "Seçimi dışa aktar" -#: src/app/main/ui/dashboard/file_menu.cljs:252 msgid "dashboard.export-standard-multi" msgstr "%s standart dosyayı indir (.svg + .json)" -#: src/app/main/ui/export.cljs:427 msgid "dashboard.export.detail" msgstr "* Bileşenleri, grafikleri, renkleri ve/veya tipografileri içerebilir." -#: src/app/main/ui/export.cljs:426 msgid "dashboard.export.explain" msgstr "" "Dışarı aktarmak istediğiniz bir veya daha fazla dosya, paylaşılan " "kütüphaneleri kullanıyor. Bunların varlıklarıyla ne yapmak istiyorsunuz*?" -#: src/app/main/ui/export.cljs:435 msgid "dashboard.export.options.all.message" msgstr "" "paylaşılan kütüphanelere sahip dosyalar, bağlantılarını koruyarak dışarı " "aktarmaya dahil edilecek." -#: src/app/main/ui/export.cljs:436 msgid "dashboard.export.options.all.title" msgstr "Paylaşılan kütüphaneleri dışarı aktar" -#: src/app/main/ui/export.cljs:437 msgid "dashboard.export.options.detach.message" msgstr "" "Paylaşılan kütüphaneler dışarı aktarmaya dahil edilmeyecek ve kütüphaneye " "hiçbir varlık eklenmeyecek. " -#: src/app/main/ui/export.cljs:438 msgid "dashboard.export.options.detach.title" msgstr "Paylaşılan kütüphane varlıklarını temel nesneler olarak ele al" -#: src/app/main/ui/export.cljs:439 msgid "dashboard.export.options.merge.message" msgstr "" "Dosyanız, tüm harici varlıklar kütüphane dosyasına birleştirilmiş olarak " "dışarı aktarılacak." -#: src/app/main/ui/export.cljs:440 msgid "dashboard.export.options.merge.title" msgstr "Dosya kütüphanelerine paylaşılan kütüphane varlıklarını dahil et" -#: src/app/main/ui/export.cljs:418 msgid "dashboard.export.title" msgstr "Dosyaları dışarı aktar" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:309 msgid "dashboard.fonts.deleted-placeholder" msgstr "Yazı tipi silindi" -#: src/app/main/ui/dashboard/fonts.cljs:206 +#: src/app/main/ui/dashboard/fonts.cljs msgid "dashboard.fonts.dismiss-all" msgstr "Hepsini kapat" -#: src/app/main/ui/dashboard/fonts.cljs:436 msgid "dashboard.fonts.empty-placeholder" msgstr "Yüklediğiniz özel yazı tipleri burada görünecektir." -#: src/app/main/ui/dashboard/fonts.cljs:194 +#: src/app/main/ui/dashboard/fonts.cljs msgid "dashboard.fonts.fonts-added" msgid_plural "dashboard.fonts.fonts-added" msgstr[0] "1 yazı tipi eklendi" msgstr[1] "%s yazı tipi eklendi" -#: src/app/main/ui/dashboard/fonts.cljs:170 -#, markdown msgid "dashboard.fonts.hero-text1" msgstr "" "Buraya yüklediğiniz herhangi bir web yazı tipi, bu takımın dosyalarının " @@ -549,8 +503,6 @@ msgstr "" "gruplandırılacak. Yazı tiplerini şu biçimlerde yükleyebilirsiniz: **TTF, " "OTF ve WOFF** (yalnızca bir tane gerekli olacak)." -#: src/app/main/ui/dashboard/fonts.cljs:182 -#, markdown msgid "dashboard.fonts.hero-text2" msgstr "" "Sadece kendinize ait veya Penpot'ta kullanılabilecek bir lisansa sahip olan " @@ -560,11 +512,10 @@ msgstr "" "lisanslama](https://www.typography.com/faq) hakkında daha fazla bilgi almak " "isteyebilirsiniz." -#: src/app/main/ui/dashboard/fonts.cljs:202 +#: src/app/main/ui/dashboard/fonts.cljs msgid "dashboard.fonts.upload-all" msgstr "Tümünü karşıya yükle" -#: src/app/main/ui/dashboard/fonts.cljs:187 #, markdown msgid "dashboard.fonts.warning-text" msgstr "" @@ -575,1686 +526,1524 @@ msgstr "" "hataları düzeltmek için [Transfonter](https://transfonter.org/) " "kullanmanızı öneririz. " -#: src/app/main/ui/dashboard/import.cljs:472, src/app/main/ui/dashboard/project_menu.cljs:108 msgid "dashboard.import" msgstr "Penpot dosyalarını içe aktar" -#: src/app/main/ui/dashboard/import.cljs:304, src/app/worker/import.cljs:753, src/app/worker/import.cljs:755 msgid "dashboard.import.analyze-error" msgstr "Oops! Bu dosyayı içeri aktaramadık" -#, unused msgid "dashboard.import.analyze-error.components-v2" msgstr "" "Bileşenler v2 ile dosya etkinleştirildi ancak bu takım henüz bunu " "desteklemiyor." -#: src/app/main/ui/dashboard/import.cljs:308 msgid "dashboard.import.import-error" msgstr "Dosya içeri aktarılırken bir sorun oluştu. Dosya içeri aktarılmadı." -#: src/app/main/ui/dashboard/import.cljs:493 msgid "dashboard.import.import-message" msgid_plural "dashboard.import.import-message" msgstr[0] "1 dosya başarıyla içeri aktarıldı." msgstr[1] "%s dosya başarıyla içeri aktarıldı." -#: src/app/main/ui/dashboard/import.cljs:481, src/app/main/ui/dashboard/import.cljs:488 msgid "dashboard.import.import-warning" msgstr "Bazı dosyalar kaldırılmış geçersiz nesneler içeriyordu." -#: src/app/main/ui/dashboard/import.cljs:144 msgid "dashboard.import.progress.process-colors" msgstr "Renkler işleniyor" -#: src/app/main/ui/dashboard/import.cljs:153 msgid "dashboard.import.progress.process-components" msgstr "Bileşenler işleniyor" -#: src/app/main/ui/dashboard/import.cljs:150 msgid "dashboard.import.progress.process-media" msgstr "Ortam işleniyor" -#: src/app/main/ui/dashboard/import.cljs:141 msgid "dashboard.import.progress.process-page" msgstr "Sayfa işleniyor: %s" -#: src/app/main/ui/dashboard/import.cljs:147 msgid "dashboard.import.progress.process-typographies" msgstr "Tipografiler işleniyor" -#: src/app/main/ui/dashboard/import.cljs:135 msgid "dashboard.import.progress.upload-data" msgstr "Veriler sunucuya yükleniyor (%s/%s)" -#: src/app/main/ui/dashboard/import.cljs:138 msgid "dashboard.import.progress.upload-media" msgstr "Dosya yükleniyor: %s" -#: src/app/main/ui/dashboard/team.cljs:109 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.invite-profile" msgstr "İnsanları davet et" -#: src/app/main/ui/dashboard/sidebar.cljs:547, src/app/main/ui/dashboard/sidebar.cljs:556, src/app/main/ui/dashboard/sidebar.cljs:563, src/app/main/ui/dashboard/team.cljs:312 +#: src/app/main/ui/dashboard/sidebar.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.leave-team" msgstr "Takımdan ayrıl" -#: src/app/main/ui/dashboard/templates.cljs:88, src/app/main/ui/dashboard/templates.cljs:163 msgid "dashboard.libraries-and-templates" msgstr "Kütüphaneler ve Şablonlar" -#: src/app/main/ui/dashboard/templates.cljs:164 msgid "dashboard.libraries-and-templates.explore" msgstr "Daha fazlasını keşfedin ve nasıl katkıda bulunacağınızı öğrenin" -#: src/app/main/ui/dashboard/import.cljs:365 msgid "dashboard.libraries-and-templates.import-error" msgstr "Şablon içe aktarılırken bir sorun oluştu. Şablon içe aktarılmadı." -#: src/app/main/ui/dashboard/libraries.cljs:53 +#: src/app/main/ui/dashboard/libraries.cljs msgid "dashboard.libraries-title" msgstr "Paylaşılan Kütüphaneler" -#: src/app/main/ui/dashboard/placeholder.cljs:45 +#: src/app/main/ui/dashboard/grid.cljs msgid "dashboard.loading-files" msgstr "dosyalarınız yükleniyor …" -#: src/app/main/ui/dashboard/fonts.cljs:431 msgid "dashboard.loading-fonts" msgstr "yazı tipleriniz yükleniyor…" -#: src/app/main/ui/dashboard/file_menu.cljs:281, src/app/main/ui/dashboard/project_menu.cljs:100 +#: src/app/main/ui/dashboard/project_menu.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.move-to" msgstr "Şuraya taşı" -#: src/app/main/ui/dashboard/file_menu.cljs:245 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.move-to-multi" msgstr "%s dosyayı şuraya taşı" -#: src/app/main/ui/dashboard/file_menu.cljs:226 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.move-to-other-team" msgstr "Başka takıma taşı" -#: src/app/main/ui/dashboard/files.cljs:105, src/app/main/ui/dashboard/projects.cljs:252, src/app/main/ui/dashboard/projects.cljs:253 +#: src/app/main/ui/dashboard/projects.cljs, +#: src/app/main/ui/dashboard/files.cljs msgid "dashboard.new-file" msgstr "+ Yeni Dosya" -#: src/app/main/data/dashboard.cljs:958, src/app/main/data/dashboard.cljs:1181 +#: src/app/main/data/dashboard.cljs msgid "dashboard.new-file-prefix" msgstr "Yeni Dosya" -#: src/app/main/ui/dashboard/projects.cljs:55 +#: src/app/main/ui/dashboard/projects.cljs msgid "dashboard.new-project" msgstr "+ Yeni Proje" -#: src/app/main/data/dashboard.cljs:726, src/app/main/data/dashboard.cljs:1184 +#: src/app/main/data/dashboard.cljs msgid "dashboard.new-project-prefix" msgstr "Yeni Proje" -#: src/app/main/ui/dashboard/search.cljs:60 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.no-matches-for" msgstr "\"%s\" için sonuç bulunamadı" -#: src/app/main/ui/dashboard/sidebar.cljs:827 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.no-projects-placeholder" msgstr "Sabitlenmiş projeler burada görünür" -#: src/app/main/ui/auth/verify_token.cljs:33 +#: src/app/main/ui/auth/verify_token.cljs msgid "dashboard.notifications.email-changed-successfully" msgstr "E-posta adresiniz başarıyla güncellendi" -#: src/app/main/ui/auth/verify_token.cljs:27 +#: src/app/main/ui/auth/verify_token.cljs msgid "dashboard.notifications.email-verified-successfully" msgstr "E-posta adresin başarıyla doğrulandı" -#: src/app/main/ui/settings/password.cljs:37 +#: src/app/main/ui/settings/password.cljs msgid "dashboard.notifications.password-saved" msgstr "Parola başarıyla kaydedildi!" -#: src/app/main/ui/dashboard/team.cljs:1081 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.num-of-members" msgstr "%s üye" -#: src/app/main/ui/dashboard/file_menu.cljs:267 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.open-in-new-tab" msgstr "Dosyayı yeni sekmede aç" -#: src/app/main/ui/dashboard/files.cljs:117, src/app/main/ui/dashboard/projects.cljs:260, src/app/main/ui/dashboard/projects.cljs:261 msgid "dashboard.options" msgstr "Seçenekler" -#: src/app/main/ui/settings/password.cljs:106, src/app/main/ui/settings/password.cljs:119 +#: src/app/main/ui/settings/password.cljs msgid "dashboard.password-change" msgstr "Parola değiştir" -#: src/app/main/ui/dashboard/pin_button.cljs:24, src/app/main/ui/dashboard/project_menu.cljs:95 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.pin-unpin" msgstr "Sabitle/Sabitleme" -#: src/app/main/ui/dashboard/projects.cljs:51 +#: src/app/main/ui/dashboard/projects.cljs msgid "dashboard.projects-title" msgstr "Projeler" -#: src/app/main/ui/settings/profile.cljs:86 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.remove-account" msgstr "Hesabınızı kaldırmak mı istiyorsunuz?" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.remove-shared" msgstr "Paylaşılan Kütüphane olarak sil" -#: src/app/main/ui/settings/profile.cljs:78 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.save-settings" msgstr "Ayarları kaydet" -#: src/app/main/ui/dashboard/sidebar.cljs:246, src/app/main/ui/dashboard/sidebar.cljs:247 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.search-placeholder" msgstr "Ara…" -#: src/app/main/ui/dashboard/search.cljs:55 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.searching-for" msgstr "“%s“ aranıyor…" -#: src/app/main/ui/settings/options.cljs:56 +#: src/app/main/ui/settings/options.cljs msgid "dashboard.select-ui-language" msgstr "Arayüz dilini seç" -#: src/app/main/ui/settings/options.cljs:63 +#: src/app/main/ui/settings/options.cljs msgid "dashboard.select-ui-theme" msgstr "Tema seç" -#: src/app/main/ui/dashboard/projects.cljs:282 +#: src/app/main/ui/dashboard/grid.cljs msgid "dashboard.show-all-files" msgstr "Tüm dosyaları göster" -#: src/app/main/ui/dashboard/file_menu.cljs:96 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-delete-file" msgid_plural "dashboard.success-delete-file" msgstr[0] "Dosyanız başarıyla silindi" msgstr[1] "Dosyalarınız başarıyla silindi" -#: src/app/main/ui/dashboard/project_menu.cljs:59 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.success-delete-project" msgstr "Projeniz başarıyla silindi" -#: src/app/main/ui/dashboard/file_menu.cljs:91 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-duplicate-file" msgid_plural "dashboard.success-delete-file" msgstr[0] "Dosyanız başarıyla kopyalandı" msgstr[1] "Dosyalarınız başarıyla kopyalandı" -#: src/app/main/ui/dashboard/project_menu.cljs:33 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.success-duplicate-project" msgstr "Projenin kopyası başarıyla oluşturuldu" -#: src/app/main/ui/dashboard/file_menu.cljs:130, src/app/main/ui/dashboard/grid.cljs:558, src/app/main/ui/dashboard/sidebar.cljs:152 +#: src/app/main/ui/dashboard/grid.cljs, src/app/main/ui/dashboard/sidebar.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-move-file" msgstr "Dosyan başarıyla taşındı" -#: src/app/main/ui/dashboard/file_menu.cljs:129 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-move-files" msgstr "Dosyaların başarıyla taşındı" -#: src/app/main/ui/dashboard/project_menu.cljs:54 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.success-move-project" msgstr "Projen başarıyla taşındı" -#: src/app/main/ui/dashboard/team.cljs:1052 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.team-info" msgstr "Takım bilgisi" -#: src/app/main/ui/dashboard/team.cljs:1070 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.team-members" msgstr "Takım üyeleri" -#: src/app/main/ui/dashboard/team.cljs:1085 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.team-projects" msgstr "Takım projeleri" -#: src/app/main/ui/settings/options.cljs:61 +#: src/app/main/ui/settings/options.cljs msgid "dashboard.theme-change" msgstr "Kullanıcı arayüzü teması" -#: src/app/main/ui/dashboard/search.cljs:42 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.title-search" msgstr "Arama sonuçları" -#: src/app/main/ui/dashboard/search.cljs:50 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.type-something" msgstr "Aramak için yazın" -#: src/app/main/ui/dashboard/file_menu.cljs:287, src/app/main/ui/workspace/main_menu.cljs:566 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.unpublish-shared" msgstr "Kütüphaneyi Yayından Kaldır" -#: src/app/main/ui/settings/options.cljs:71 +#: src/app/main/ui/settings/profile.cljs, +#: src/app/main/ui/settings/password.cljs, +#: src/app/main/ui/settings/options.cljs msgid "dashboard.update-settings" msgstr "Ayarları güncelle" -#: src/app/main/ui/dashboard/team.cljs:861 msgid "dashboard.webhooks.active" msgstr "Etkin" -#: src/app/main/ui/dashboard/team.cljs:862 msgid "dashboard.webhooks.active.explain" msgstr "Bu kanca tetiklendiğinde olay ayrıntıları iletilecektir" -#: src/app/main/ui/dashboard/team.cljs:852 msgid "dashboard.webhooks.content-type" msgstr "İçerik türü" -#: src/app/main/ui/dashboard/team.cljs:885 msgid "dashboard.webhooks.create" msgstr "Web kancası oluştur" -#: src/app/main/ui/dashboard/team.cljs:775 msgid "dashboard.webhooks.create.success" msgstr "Web kancası başarıyla oluşturuldu." -#: src/app/main/ui/dashboard/team.cljs:882 msgid "dashboard.webhooks.description" msgstr "" "Web kancaları, Penpot'ta belirli olaylar gerçekleştiğinde diğer web " "sitelerinin ve uygulamaların bilgilendirilmesine izin vermenin basit bir " "yoludur. Belirttiğiniz URL'lerin her birine bir POST isteği göndereceğiz." -#: src/app/main/ui/dashboard/team.cljs:1005 msgid "dashboard.webhooks.empty.add-one" msgstr "Bir tane eklemek için \"Web kancası ekle\" düğmesine basın." -#: src/app/main/ui/dashboard/team.cljs:1004 msgid "dashboard.webhooks.empty.no-webhooks" msgstr "Şimdiye kadar web kancası oluşturulmadı." -#, unused msgid "dashboard.webhooks.update.success" msgstr "Web kancası başarıyla güncellendi." -#: src/app/main/ui/settings.cljs:31 +#: src/app/main/ui/settings.cljs msgid "dashboard.your-account-title" msgstr "Hesabınız" -#: src/app/main/ui/settings/profile.cljs:70 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.your-email" msgstr "E-posta" -#: src/app/main/ui/settings/profile.cljs:62 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.your-name" msgstr "Adın" -#: src/app/main/ui/dashboard/file_menu.cljs:38, src/app/main/ui/dashboard/fonts.cljs:33, src/app/main/ui/dashboard/libraries.cljs:42, src/app/main/ui/dashboard/projects.cljs:318, src/app/main/ui/dashboard/search.cljs:30, src/app/main/ui/dashboard/sidebar.cljs:312, src/app/main/ui/dashboard/team.cljs:495, src/app/main/ui/dashboard/team.cljs:729, src/app/main/ui/dashboard/team.cljs:991, src/app/main/ui/dashboard/team.cljs:1038 +#: src/app/main/ui/dashboard/search.cljs, src/app/main/ui/dashboard/team.cljs, +#: src/app/main/ui/dashboard/libraries.cljs, +#: src/app/main/ui/dashboard/projects.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.your-penpot" msgstr "Penpot'un" -#: src/app/main/ui/alert.cljs:32 +#: src/app/main/ui/alert.cljs msgid "ds.alert-ok" msgstr "Tamam" -#: src/app/main/ui/alert.cljs:31, src/app/main/ui/alert.cljs:34 +#: src/app/main/ui/alert.cljs msgid "ds.alert-title" msgstr "Dikkat" -#: src/app/main/ui/confirm.cljs:83 +#: src/app/main/ui/confirm.cljs msgid "ds.component-subtitle" msgstr "Güncellenecek bileşenler:" -#: src/app/main/ui/confirm.cljs:36, src/app/main/ui/workspace/plugins.cljs:246 +#: src/app/main/ui/confirm.cljs msgid "ds.confirm-cancel" msgstr "İptal" -#: src/app/main/ui/confirm.cljs:37, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:141 +#: src/app/main/ui/confirm.cljs msgid "ds.confirm-ok" msgstr "Tamam" -#: src/app/main/ui/confirm.cljs:35, src/app/main/ui/confirm.cljs:39 +#: src/app/main/ui/confirm.cljs, src/app/main/ui/confirm.cljs msgid "ds.confirm-title" msgstr "Emin misin?" -#: src/app/main/data/users.cljs:705 +#: src/app/main/data/users.cljs msgid "errors.auth-provider-not-allowed" msgstr "Kimlik doğrulama sağlayıcısına bu profil için izin verilmiyor" -#: src/app/main/ui/auth/login.cljs:62 +#: src/app/main/ui/auth/login.cljs msgid "errors.auth-provider-not-configured" msgstr "Kimlik doğrulama sağlayıcısı yapılandırılmadı." -#: src/app/main/errors.cljs:104 msgid "errors.auth.unable-to-login" msgstr "Kimliğiniz doğrulanmamış veya oturumun süresi dolmuş gibi görünüyor." -#: src/app/main/data/fonts.cljs:189 msgid "errors.bad-font" msgstr "%s yazı tipi yüklenemedi" -#: src/app/main/data/fonts.cljs:188 msgid "errors.bad-font-plural" msgstr "%s yazı tipleri yüklenemedi" -#: src/app/main/data/workspace/media.cljs:198 msgid "errors.cannot-upload" msgstr "Medya dosyası yüklenemedi." -#: src/app/main/data/workspace.cljs:1598 +#: src/app/main/data/workspace.cljs msgid "errors.clipboard-not-implemented" msgstr "Tarayıcın bu işlemi gerçekleştiremiyor" -#: src/app/main/ui/auth/verify_token.cljs:82, src/app/main/ui/settings/change_email.cljs:46 +#: src/app/main/ui/auth/verify_token.cljs, +#: src/app/main/ui/settings/change_email.cljs msgid "errors.email-already-exists" msgstr "E-posta zaten kullanımda" -#: src/app/main/ui/auth/verify_token.cljs:87 +#: src/app/main/ui/auth/verify_token.cljs msgid "errors.email-already-validated" msgstr "E-posta zaten doğrulandı." -#: src/app/main/ui/settings/password.cljs:28 msgid "errors.email-as-password" msgstr "E-postanızı parola olarak kullanamazsınız" -#: src/app/main/data/users.cljs:707, src/app/main/ui/auth/register.cljs:63 +#: src/app/main/data/users.cljs msgid "errors.email-domain-not-allowed" msgstr "Etki alanına izin verilmiyor" -#: src/app/main/ui/auth/recovery_request.cljs:63, src/app/main/ui/dashboard/team.cljs:578, src/app/main/ui/settings/change_email.cljs:54 +#: src/app/main/ui/auth/register.cljs, +#: src/app/main/ui/auth/recovery_request.cljs, +#: src/app/main/ui/settings/change_email.cljs, +#: src/app/main/ui/dashboard/team.cljs msgid "errors.email-has-permanent-bounces" msgstr "«%s» adresi için çok fazla geri dönme raporu var." -#: src/app/main/ui/auth/login.cljs:81, src/app/main/ui/auth/recovery_request.cljs:31, src/app/main/ui/auth/register.cljs:43 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs, +#: src/app/main/ui/auth/recovery_request.cljs msgid "errors.email-invalid" msgstr "Lütfen geçerli bir e-posta adresi girin" -#: src/app/main/ui/settings/change_email.cljs:35 +#: src/app/main/ui/settings/change_email.cljs msgid "errors.email-invalid-confirmation" msgstr "Doğrulama e-postası eşleşmiyor" -#: src/app/main/ui/dashboard/team.cljs:170 msgid "errors.email-spam-or-permanent-bounces" msgstr "«%s» e-postasının spam veya kalıcı olarak geri döndüğü bildirildi." -#: src/app/main/errors.cljs:227 +#: src/app/main/errors.cljs msgid "errors.feature-mismatch" msgstr "" "Görünüşe göre '%s' özelliğinin etkin olduğu bir dosyayı açıyorsunuz, ancak " "şu anki penpot sürümü bunu desteklemiyor veya devre dışı bırakıldı." -#: src/app/main/errors.cljs:231, src/app/main/errors.cljs:245 +#: src/app/main/errors.cljs msgid "errors.feature-not-supported" msgstr "'%s' özelliği desteklenmiyor." -#: src/app/main/errors.cljs:223 +#: src/app/main/errors.cljs msgid "errors.file-feature-mismatch" msgstr "" "Etkinleştirilen özellikler ile açmaya çalıştığınız dosyanın özellikleri " "arasında bir uyumsuzluk var gibi görünüyor. Dosyanın açılabilmesi için önce " "'%s' için geçişlerin uygulanması gerekiyor." -#: src/app/main/data/users.cljs:709, src/app/main/ui/auth/login.cljs:65, src/app/main/ui/auth/login.cljs:116, src/app/main/ui/auth/register.cljs:69, src/app/main/ui/auth/register.cljs:237, src/app/main/ui/auth/verify_token.cljs:92, src/app/main/ui/dashboard/team.cljs:173, src/app/main/ui/onboarding/team_choice.cljs:95, src/app/main/ui/settings/access_tokens.cljs:91, src/app/main/ui/settings/feedback.cljs:52 +#: src/app/main/ui/auth/verify_token.cljs, +#: src/app/main/ui/settings/feedback.cljs, src/app/main/ui/dashboard/team.cljs msgid "errors.generic" msgstr "Bir şeyler ters gitti." -#: src/app/main/ui/components/color_input.cljs:57 +#: src/app/main/ui/components/color_input.cljs msgid "errors.invalid-color" msgstr "Geçersiz renk" -#: src/app/main/ui/static.cljs:43 +#: src/app/main/ui/auth/verify_token.cljs msgid "errors.invite-invalid" msgstr "Geçersiz davet" -#: src/app/main/ui/static.cljs:44 msgid "errors.invite-invalid.info" msgstr "Bu davet iptal edilmiş veya süresi dolmuş olabilir." -#: src/app/main/ui/auth/login.cljs:101 +#: src/app/main/ui/auth/login.cljs msgid "errors.ldap-disabled" msgstr "LDAP ile oturum açma devre dışı bırakıldı." -#: src/app/main/errors.cljs:239 +#: src/app/main/errors.cljs msgid "errors.max-quote-reached" msgstr "'%s' sınırına ulaştınız. Destek ile iletişime geçin." -#: src/app/main/data/workspace/media.cljs:184 +#: src/app/main/data/workspace/persistence.cljs msgid "errors.media-too-large" msgstr "Bu görsel eklemek için çok büyük." -#: src/app/main/data/media.cljs:68, src/app/main/data/workspace/media.cljs:187 +#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs msgid "errors.media-type-mismatch" msgstr "Görselin içeriği, dosya uzantısı ile eşleşmiyor gibi görünüyor." -#: src/app/main/data/media.cljs:65, src/app/main/data/workspace/media.cljs:172, src/app/main/data/workspace/media.cljs:175, src/app/main/data/workspace/media.cljs:178, src/app/main/data/workspace/media.cljs:181 +#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs msgid "errors.media-type-not-allowed" msgstr "Geçerli bir görsel gibi görünmüyor." -#: src/app/main/ui/dashboard/team.cljs:574 +#: src/app/main/ui/dashboard/team.cljs msgid "errors.member-is-muted" msgstr "" "Davet ettiğiniz profilin e-posta adresine ait çok fazla geri dönme raporu " "var veya spam olarak bildirilmiş." -#: src/app/main/ui/settings/password.cljs:61 +#: src/app/main/ui/settings/password.cljs msgid "errors.password-invalid-confirmation" msgstr "Parolalar eşleşmedi" -#: src/app/main/ui/settings/password.cljs:64 +#: src/app/main/ui/settings/password.cljs msgid "errors.password-too-short" msgstr "Parola en az 8 karakterden oluşmalı" -#: src/app/main/errors.cljs:124 msgid "errors.paste-data-validation" msgstr "Panoda geçersiz veri" -#: src/app/main/data/users.cljs:703, src/app/main/ui/auth/login.cljs:97, src/app/main/ui/auth/login.cljs:105 msgid "errors.profile-blocked" msgstr "Profil engellendi" -#: src/app/main/ui/auth/recovery_request.cljs:60, src/app/main/ui/dashboard/team.cljs:164, src/app/main/ui/dashboard/team.cljs:570, src/app/main/ui/settings/change_email.cljs:50 +#: src/app/main/ui/auth/recovery_request.cljs, +#: src/app/main/ui/settings/change_email.cljs, +#: src/app/main/ui/dashboard/team.cljs msgid "errors.profile-is-muted" msgstr "" "Profilinizde sessize alınmış e-postalar var (spam raporları veya yüksek " "geri dönüşler sebebiyle)." -#: src/app/main/data/users.cljs:701, src/app/main/ui/auth/register.cljs:60 +#: src/app/main/ui/auth/register.cljs msgid "errors.registration-disabled" msgstr "Kayıt olma şu anda devre dışı." -#: src/app/main/errors.cljs:218 +#: src/app/main/errors.cljs msgid "errors.team-feature-mismatch" msgstr "Uyumsuz '%s' özelliği algılandı" -#: src/app/main/ui/dashboard/sidebar.cljs:365, src/app/main/ui/dashboard/team.cljs:359 msgid "errors.team-leave.insufficient-members" msgstr "Takımdan ayrılmak için yeterli üye yok, onu silmek isteyebilirsiniz." -#: src/app/main/ui/dashboard/sidebar.cljs:368, src/app/main/ui/dashboard/team.cljs:362 msgid "errors.team-leave.member-does-not-exists" msgstr "Atamaya çalıştığınız üye mevcut değil." -#: src/app/main/ui/dashboard/sidebar.cljs:371, src/app/main/ui/dashboard/team.cljs:365 msgid "errors.team-leave.owner-cant-leave" msgstr "Sahip takımdan ayrılamaz, sahip rolünü yeniden atamanız gerekir." -#: src/app/main/data/media.cljs:71 +#: src/app/main/data/media.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, +#: src/app/main/ui/inspect/exports.cljs msgid "errors.unexpected-error" msgstr "Beklenmedik bir hata oluştu." -#: src/app/main/ui/auth/verify_token.cljs:60 +#: src/app/main/ui/auth/verify_token.cljs msgid "errors.unexpected-token" msgstr "Bilinmeyen jeton" -#, unused msgid "errors.validation" msgstr "Doğrulama Hatası" -#: src/app/main/errors.cljs:235 +#: src/app/main/errors.cljs msgid "errors.version-not-supported" msgstr "Dosyanın uyumsuz bir sürüm numarası var" -#: src/app/main/ui/dashboard/team.cljs:796 msgid "errors.webhooks.connection" msgstr "Bağlantı hatası, URL'ye erişilemiyor" -#: src/app/main/ui/dashboard/team.cljs:790 msgid "errors.webhooks.invalid-uri" msgstr "URL doğrulamayı geçemiyor." -#: src/app/main/ui/dashboard/team.cljs:949 msgid "errors.webhooks.last-delivery" msgstr "Son iletim başarılı olmadı." -#: src/app/main/ui/dashboard/team.cljs:792, src/app/main/ui/dashboard/team.cljs:952 msgid "errors.webhooks.ssl-validation" msgstr "SSL doğrulamasında hata." -#: src/app/main/ui/dashboard/team.cljs:794 msgid "errors.webhooks.timeout" msgstr "Zaman aşımı" -#: src/app/main/ui/dashboard/team.cljs:788 msgid "errors.webhooks.unexpected" msgstr "Doğrulamada beklenmeyen hata" -#: src/app/main/ui/dashboard/team.cljs:798, src/app/main/ui/dashboard/team.cljs:955 msgid "errors.webhooks.unexpected-status" msgstr "Beklenmeyen durum %s" -#: src/app/main/ui/auth/login.cljs:109, src/app/main/ui/auth/login.cljs:113 +#: src/app/main/ui/auth/login.cljs msgid "errors.wrong-credentials" msgstr "E-posta veya parola yanlış." -#: src/app/main/ui/settings/password.cljs:25 +#: src/app/main/ui/settings/password.cljs msgid "errors.wrong-old-password" msgstr "Eski parola yanlış" -#: src/app/main/ui/settings/feedback.cljs:77 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.description" msgstr "Açıklama" -#: src/app/main/ui/settings/feedback.cljs:95 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.discourse-go-to" msgstr "Penpot forumuna git" -#: src/app/main/ui/settings/feedback.cljs:89 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.discourse-subtitle1" msgstr "" "Burada olmanızdan mutluluk duyuyoruz. Yardıma ihtiyacınız varsa, lütfen " "göndermeden önce arama yapın." -#: src/app/main/ui/settings/feedback.cljs:88 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.discourse-title" msgstr "Penpot topluluğu" -#: src/app/main/ui/settings/feedback.cljs:72 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.subject" msgstr "Konu" -#: src/app/main/ui/settings/feedback.cljs:69 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.subtitle" msgstr "" "Lütfen bir sorun, fikir ya da kuşkunuzu açıklayarak e-postanızın nedenini " "belirtin. Takımımızın bir üyesi en kısa sürede yanıt verecektir." -#: src/app/main/ui/settings/feedback.cljs:68 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.title" msgstr "E-posta" -#: src/app/main/ui/settings/feedback.cljs:105 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.twitter-go-to" msgstr "X'a git" -#: src/app/main/ui/settings/feedback.cljs:99 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.twitter-subtitle1" msgstr "Teknik sorularınıza yardımcı olmak için buradayız." -#: src/app/main/ui/settings/feedback.cljs:98 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.twitter-title" msgstr "X destek hesabı" -#: src/app/main/ui/settings/password.cljs:30 +#: src/app/main/ui/settings/password.cljs msgid "generic.error" msgstr "Bir hata oluştu" -#: src/app/main/ui/viewer/inspect/attributes/blur.cljs:26 +#: src/app/main/ui/inspect/attributes/blur.cljs msgid "inspect.attributes.blur" msgstr "Bulanıklık" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:115 +#: src/app/main/ui/inspect/attributes/blur.cljs msgid "inspect.attributes.blur.value" msgstr "Değer" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:112 +#: src/app/main/ui/inspect/attributes/common.cljs msgid "inspect.attributes.color.hex" msgstr "HEX" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:114 +#: src/app/main/ui/inspect/attributes/common.cljs msgid "inspect.attributes.color.hsla" msgstr "HSLA" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:113 +#: src/app/main/ui/inspect/attributes/common.cljs msgid "inspect.attributes.color.rgba" msgstr "RGBA" -#: src/app/main/ui/viewer/inspect/attributes/fill.cljs:57 +#: src/app/main/ui/inspect/attributes/fill.cljs msgid "inspect.attributes.fill" msgstr "Doldur" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:99, src/app/main/ui/viewer/inspect/attributes/image.cljs:51 +#: src/app/main/ui/inspect/attributes/image.cljs msgid "inspect.attributes.image.download" msgstr "Kaynak görselini indir" -#: src/app/main/ui/viewer/inspect/attributes/image.cljs:39 +#: src/app/main/ui/inspect/attributes/image.cljs msgid "inspect.attributes.image.height" msgstr "Yükseklik" -#: src/app/main/ui/viewer/inspect/attributes/image.cljs:32 +#: src/app/main/ui/inspect/attributes/image.cljs msgid "inspect.attributes.image.width" msgstr "Genişlik" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout" msgstr "Yerleşim düzeni" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.height" msgstr "Yükseklik" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.left" msgstr "Sol" -#: src/app/main/ui/inspect/attributes/layout.cljs, src/app/main/ui/inspect/attributes/layout.cljs -#, unused +#: src/app/main/ui/inspect/attributes/layout.cljs, +#: src/app/main/ui/inspect/attributes/layout.cljs msgid "inspect.attributes.layout.radius" msgstr "Yarıçap" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.rotation" msgstr "Döndür" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.top" msgstr "Üst" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.width" msgstr "Genişlik" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:57 +#: src/app/main/ui/inspect/attributes/shadow.cljs msgid "inspect.attributes.shadow" msgstr "Gölge" -#: src/app/main/ui/viewer/inspect/attributes/geometry.cljs:40 +#: src/app/main/ui/inspect/attributes/layout.cljs msgid "inspect.attributes.size" msgstr "Boyut ve konum" -#: src/app/main/ui/viewer/inspect/attributes/stroke.cljs:52 +#: src/app/main/ui/inspect/attributes/stroke.cljs msgid "inspect.attributes.stroke" msgstr "Çerçeve" -#, permanent, unused msgid "inspect.attributes.stroke.alignment.center" msgstr "Merkezi" -#, permanent, unused msgid "inspect.attributes.stroke.alignment.inner" msgstr "İçinde" -#, permanent, unused msgid "inspect.attributes.stroke.alignment.outer" msgstr "Dışarıda" -#, unused msgid "inspect.attributes.stroke.style.dotted" msgstr "Noktalı" -#, unused msgid "inspect.attributes.stroke.style.mixed" msgstr "Karışık" -#, unused msgid "inspect.attributes.stroke.style.none" msgstr "Hiçbiri" -#, unused msgid "inspect.attributes.stroke.style.solid" msgstr "Düz" #: src/app/main/ui/inspect/attributes/stroke.cljs -#, unused msgid "inspect.attributes.stroke.width" msgstr "Genişlik" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:81, src/app/main/ui/viewer/inspect/attributes/text.cljs:194 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography" msgstr "Tipografi" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:89 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.font-family" msgstr "Yazı Tipi Ailesi" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:107 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.font-size" msgstr "Yazı Tipi Boyutu" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:98 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.font-style" msgstr "Yazı Tipi Biçimi" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:116 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.font-weight" msgstr "Yazı Tipi Kalınlığı" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:134 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.letter-spacing" msgstr "Harf Aralığı" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:125 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.line-height" msgstr "Satır Yüksekliği" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:143 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.text-decoration" msgstr "Metin Süsleme" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:145 msgid "inspect.attributes.typography.text-decoration.none" msgstr "Hiçbiri" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:146 msgid "inspect.attributes.typography.text-decoration.strikethrough" msgstr "Üstü Çizili" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:147 msgid "inspect.attributes.typography.text-decoration.underline" msgstr "Altı Çizili" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:156 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.text-transform" msgstr "Metin Dönüşümü" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:158 msgid "inspect.attributes.typography.text-transform.lowercase" msgstr "Küçük Harf" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:159 msgid "inspect.attributes.typography.text-transform.none" msgstr "Hiçbiri" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:160 msgid "inspect.attributes.typography.text-transform.titlecase" msgstr "İlk Harfleri Büyük" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:162 msgid "inspect.attributes.typography.text-transform.unset" msgstr "Ayarlanmadı" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:161 msgid "inspect.attributes.typography.text-transform.uppercase" msgstr "Büyük Harf" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:140 msgid "inspect.empty.help" msgstr "" "Tasarım incelemesi hakkında daha fazla bilgi edinmek istiyorsanız Penpot " "yardım merkezini ziyaret edin" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:143 msgid "inspect.empty.more-info" msgstr "İnceleme hakkında daha fazla bilgi" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:135 msgid "inspect.empty.select" msgstr "" "Özelliklerini ve kodunu incelemek için bir şekil, çalışma yüzeyi veya grup " "seçin" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:125 +#: src/app/main/ui/inspect/right_sidebar.cljs msgid "inspect.tabs.code" msgstr "Kod" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:98 msgid "inspect.tabs.code.selected.circle" msgstr "Daire" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:99 msgid "inspect.tabs.code.selected.component" msgstr "Bileşen" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:100 msgid "inspect.tabs.code.selected.curve" msgstr "Eğri" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:101 msgid "inspect.tabs.code.selected.frame" msgstr "Çalışma yüzeyi" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:102 msgid "inspect.tabs.code.selected.group" msgstr "Grup" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:103 msgid "inspect.tabs.code.selected.image" msgstr "Görsel" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:104 msgid "inspect.tabs.code.selected.mask" msgstr "Maskele" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:93 +#: src/app/main/ui/inspect/right_sidebar.cljs msgid "inspect.tabs.code.selected.multiple" msgstr "%s Seçildi" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:105 msgid "inspect.tabs.code.selected.path" msgstr "Yol" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:106 msgid "inspect.tabs.code.selected.rect" msgstr "Dikdörtgen" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:107 msgid "inspect.tabs.code.selected.svg-raw" msgstr "SVG" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:108 msgid "inspect.tabs.code.selected.text" msgstr "Metin" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:115 +#: src/app/main/ui/inspect/right_sidebar.cljs msgid "inspect.tabs.info" msgstr "Bilgi" -#: src/app/main/ui/workspace/main_menu.cljs:158 +#: src/app/main/ui/workspace/header.cljs msgid "label.shortcuts" msgstr "Kısayollar" -#: src/app/main/ui/dashboard/import.cljs:527 msgid "labels.accept" msgstr "Kabul et" -#: src/app/main/ui/settings/sidebar.cljs:100 +#: src/app/main/ui/settings/sidebar.cljs msgid "labels.access-tokens" msgstr "Erişim belirteçleri" -#: src/app/main/ui/dashboard/team.cljs:968 msgid "labels.active" msgstr "Etkin" -#: src/app/main/ui/dashboard/fonts.cljs:175 msgid "labels.add-custom-font" msgstr "Özel yazı tipi ekle" -#: src/app/main/ui/dashboard/team.cljs:120, src/app/main/ui/dashboard/team.cljs:276, src/app/main/ui/dashboard/team.cljs:519, src/app/main/ui/dashboard/team.cljs:549, src/app/main/ui/onboarding/team_choice.cljs:67 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs msgid "labels.admin" msgstr "Yönetici" -#: src/app/main/ui/onboarding/questions.cljs:174 -msgid "labels.adobe-xd" -msgstr "Adobe XD" - #: src/app/main/ui/workspace/comments.cljs -#, unused msgid "labels.all" msgstr "Hepsi" -#: src/app/main/ui/auth.cljs:37 msgid "labels.and" msgstr "ve" -#: src/app/main/ui/onboarding/team_choice.cljs:162 msgid "labels.back" msgstr "Geri" -#: src/app/main/ui/static.cljs:59 +#: src/app/main/ui/static.cljs msgid "labels.bad-gateway.desc-message" msgstr "" "Görünüşe göre biraz beklemen ve yeniden denemen gerekiyor; sunucularımızda " "küçük bir bakım yapıyoruz." -#: src/app/main/ui/static.cljs:58 +#: src/app/main/ui/static.cljs msgid "labels.bad-gateway.main-message" msgstr "Hatalı Ağ Geçidi" -#: src/app/main/data/common.cljs:112, src/app/main/ui/dashboard/change_owner.cljs:69, src/app/main/ui/dashboard/import.cljs:514, src/app/main/ui/dashboard/team.cljs:868, src/app/main/ui/delete_shared.cljs:35, src/app/main/ui/export.cljs:164, src/app/main/ui/export.cljs:460, src/app/main/ui/settings/access_tokens.cljs:188, src/app/main/ui/viewer/share_link.cljs:203, src/app/main/ui/workspace/sidebar/assets/groups.cljs:149 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.cancel" msgstr "İptal" -#: src/app/main/ui/onboarding/questions.cljs:176 -msgid "labels.canva" -msgstr "Canva" - -#: src/app/main/ui/dashboard/projects.cljs:93, src/app/main/ui/export.cljs:478, src/app/main/ui/settings/access_tokens.cljs:183, src/app/main/ui/viewer/login.cljs:77, src/app/main/ui/viewer/share_link.cljs:174, src/app/main/ui/workspace/libraries.cljs:522 msgid "labels.close" msgstr "Kapat" -#: src/app/main/ui/dashboard/comments.cljs:104, src/app/main/ui/viewer/comments.cljs:70, src/app/main/ui/workspace/comments.cljs:126 +#: src/app/main/ui/dashboard/comments.cljs msgid "labels.comments" msgstr "Yorumlar" -#: src/app/main/ui/dashboard/sidebar.cljs:985, src/app/main/ui/workspace/main_menu.cljs:110 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.community" msgstr "Topluluk" -#: src/app/main/ui/settings/password.cljs:103 +#: src/app/main/ui/settings/password.cljs msgid "labels.confirm-password" msgstr "Parolayı onayla" -#: src/app/main/ui/dashboard/import.cljs:520, src/app/main/ui/export.cljs:465, src/app/main/ui/onboarding/newsletter.cljs:101 msgid "labels.continue" msgstr "Devam et" -#, unused msgid "labels.continue-with" msgstr "İle devam et" -#: src/app/main/ui/viewer/login.cljs:75 msgid "labels.continue-with-penpot" msgstr "Penpot hesabıyla devam edebilirsiniz" -#: src/app/main/ui/dashboard/team.cljs:642 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.copy-invitation-link" msgstr "Bağlantıyı kopyala" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:157, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:190 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "labels.create" msgstr "Oluştur" -#: src/app/main/ui/dashboard/team_form.cljs:101, src/app/main/ui/dashboard/team_form.cljs:121 +#: src/app/main/ui/dashboard/team_form.cljs, +#: src/app/main/ui/dashboard/team_form.cljs msgid "labels.create-team" msgstr "Yeni takım oluştur" -#: src/app/main/ui/dashboard/team_form.cljs:113 +#: src/app/main/ui/dashboard/team_form.cljs msgid "labels.create-team.placeholder" msgstr "Yeni takım adı gir" -#, unused msgid "labels.custom-fonts" msgstr "Özel yazı tipleri" -#: src/app/main/ui/settings/sidebar.cljs:73 +#: src/app/main/ui/settings/sidebar.cljs msgid "labels.dashboard" msgstr "Denetim paneli" -#: src/app/main/ui/dashboard/file_menu.cljs:306, src/app/main/ui/dashboard/fonts.cljs:255, src/app/main/ui/dashboard/fonts.cljs:332, src/app/main/ui/dashboard/fonts.cljs:346, src/app/main/ui/dashboard/project_menu.cljs:115, src/app/main/ui/dashboard/team.cljs:904, src/app/main/ui/settings/access_tokens.cljs:209, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:209 +#: src/app/main/ui/dashboard/project_menu.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.delete" msgstr "Sil" -#: src/app/main/ui/comments.cljs:357 +#: src/app/main/ui/comments.cljs msgid "labels.delete-comment" msgstr "Yorumu sil" -#: src/app/main/ui/comments.cljs:354 +#: src/app/main/ui/comments.cljs msgid "labels.delete-comment-thread" msgstr "Mesaj dizisini sil" -#: src/app/main/ui/dashboard/team.cljs:648 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.delete-invitation" msgstr "Daveti sil" -#: src/app/main/ui/dashboard/file_menu.cljs:262 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.delete-multi-files" msgstr "%s dosyayı sil" -#: src/app/main/ui/onboarding/questions.cljs:250 -msgid "labels.developer" -msgstr "Geliştirici" - -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:199 msgid "labels.discard" msgstr "At" -#: src/app/main/ui/dashboard/file_menu.cljs:28, src/app/main/ui/dashboard/files.cljs:72, src/app/main/ui/dashboard/files.cljs:156, src/app/main/ui/dashboard/projects.cljs:220, src/app/main/ui/dashboard/projects.cljs:224, src/app/main/ui/dashboard/sidebar.cljs:791 +#: src/app/main/ui/dashboard/projects.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs, +#: src/app/main/ui/dashboard/files.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.drafts" msgstr "Taslak" -#: src/app/main/ui/comments.cljs:350, src/app/main/ui/dashboard/fonts.cljs:252, src/app/main/ui/dashboard/team.cljs:902, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:205 +#: src/app/main/ui/comments.cljs msgid "labels.edit" msgstr "Düzenle" -#, unused msgid "labels.edit-file" msgstr "Dosya düzenle" -#: src/app/main/ui/dashboard/team.cljs:118, src/app/main/ui/dashboard/team.cljs:279, src/app/main/ui/dashboard/team.cljs:520, src/app/main/ui/dashboard/team.cljs:553, src/app/main/ui/onboarding/team_choice.cljs:66 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs msgid "labels.editor" msgstr "Düzenleyici" -#: src/app/main/ui/dashboard/team.cljs:661 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.expired-invitation" msgstr "Süresi doldu" -#: src/app/main/ui/export.cljs:173 msgid "labels.export" msgstr "Dışa aktar" -#: src/app/main/ui/settings/feedback.cljs:51 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.feedback-disabled" msgstr "Geri bildirim devre dışı bırakıldı" -#: src/app/main/ui/settings/feedback.cljs:42 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.feedback-sent" msgstr "Geri bildirim gönderildi" -#: src/app/main/ui/onboarding/questions.cljs:170 -msgid "labels.figma" -msgstr "Figma" - -#: src/app/main/ui/dashboard/fonts.cljs:412 msgid "labels.font-family" msgstr "Yazı Tipi Ailesi" -#, unused msgid "labels.font-providers" msgstr "Yazı tipi sağlayıcıları" -#: src/app/main/ui/dashboard/fonts.cljs:413 msgid "labels.font-variants" msgstr "Biçimler" -#: src/app/main/ui/dashboard/fonts.cljs:52, src/app/main/ui/dashboard/sidebar.cljs:811 msgid "labels.fonts" msgstr "Yazı tipleri" -#: src/app/main/ui/onboarding/questions.cljs:263 -msgid "labels.founder" -msgstr "Kurucu/Başkan Yardımcısı" - -#: src/app/main/ui/onboarding/questions.cljs:262 -msgid "labels.freelancer" -msgstr "Serbest çalışıyorum" - -#: src/app/main/ui/dashboard/sidebar.cljs:1015, src/app/main/ui/workspace/main_menu.cljs:142 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.github-repo" msgstr "Github deposu" -#: src/app/main/ui/dashboard/sidebar.cljs:1032, src/app/main/ui/settings/sidebar.cljs:113, src/app/main/ui/workspace/main_menu.cljs:171 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/settings/sidebar.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.give-feedback" msgstr "Geri bildirimde bulun" -#: src/app/main/ui/auth/recovery_request.cljs:110, src/app/main/ui/auth/register.cljs:285, src/app/main/ui/viewer/login.cljs:117 msgid "labels.go-back" msgstr "Geri dön" -#: src/app/main/ui/dashboard/sidebar.cljs:978, src/app/main/ui/workspace/main_menu.cljs:102 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.help-center" msgstr "Yardım Merkezi" -#: src/app/main/ui/viewer/comments.cljs:103, src/app/main/ui/workspace/comments.cljs:67 +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs msgid "labels.hide-resolved-comments" msgstr "Çözülmüş yorumları gizle" -#: src/app/main/ui/dashboard/team.cljs:969 msgid "labels.inactive" msgstr "Etkin değil" -#: src/app/main/ui/dashboard/fonts.cljs:410 msgid "labels.installed-fonts" msgstr "Kurulu yazı tipleri" -#: src/app/main/ui/static.cljs:144 +#: src/app/main/ui/static.cljs msgid "labels.internal-error.desc-message" msgstr "" "Kötü bir şey oldu. Lütfen işlemi yeniden deneyin ve sorun devam ederse " "destek ile iletişime geçin." -#: src/app/main/ui/static.cljs:143 +#: src/app/main/ui/static.cljs msgid "labels.internal-error.main-message" msgstr "İç Hata" -#: src/app/main/ui/onboarding/questions.cljs:178 -msgid "labels.invision" -msgstr "InVision" - -#: src/app/main/ui/dashboard/sidebar.cljs:516, src/app/main/ui/dashboard/team.cljs:89, src/app/main/ui/dashboard/team.cljs:97, src/app/main/ui/dashboard/team.cljs:708 +#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.invitations" msgstr "Davetler" -#: src/app/main/ui/settings/options.cljs:51 +#: src/app/main/ui/settings/options.cljs msgid "labels.language" msgstr "Dil" -#: src/app/main/ui/dashboard/sidebar.cljs:1008, src/app/main/ui/workspace/main_menu.cljs:134 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.libraries-and-templates" msgstr "Kütüphaneler ve Şablonlar" -#: src/app/main/ui/viewer/header.cljs:203 msgid "labels.log-or-sign" msgstr "Oturum açın veya kaydolun" -#: src/app/main/ui/dashboard/sidebar.cljs:1040 +#: src/app/main/ui/settings.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.logout" msgstr "Oturumu kapat" -#: src/app/main/ui/onboarding/questions.cljs:253 -msgid "labels.marketing" -msgstr "Pazarlama" - -#: src/app/main/ui/dashboard/team.cljs:468 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.member" msgstr "Üye" -#: src/app/main/ui/dashboard/sidebar.cljs:510, src/app/main/ui/dashboard/team.cljs:87, src/app/main/ui/dashboard/team.cljs:95 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.members" msgstr "Üyeler" -#: src/app/main/ui/settings/password.cljs:96 +#: src/app/main/ui/settings/password.cljs msgid "labels.new-password" msgstr "Yeni parola" -#: src/app/main/ui/dashboard/templates.cljs:269, src/app/main/ui/onboarding/questions.cljs:55 -msgid "labels.next" -msgstr "Sonraki" - -#: src/app/main/ui/dashboard/comments.cljs:128, src/app/main/ui/workspace/comments.cljs:161 +#: src/app/main/ui/workspace/comments.cljs, +#: src/app/main/ui/dashboard/comments.cljs msgid "labels.no-comments-available" msgstr "Hepsini bitirdiniz! Yeni yorum bildirimleri burada görünecektir." -#: src/app/main/ui/dashboard/team.cljs:694 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.no-invitations" msgstr "Bekleyen davetiye yok." -#: src/app/main/ui/dashboard/team.cljs:696 -#, markdown +#: src/app/main/ui/dashboard/team.cljs msgid "labels.no-invitations-hint" msgstr "" "Kişileri bu takıma davet etmek için **İnsanları davet et** düğmesine " "tıklayın." -#: src/app/main/ui/static.cljs:50 +#: src/app/main/ui/static.cljs msgid "labels.not-found.desc-message" msgstr "Bu sayfa mevcut olmayabilir veya erişim izniniz olmayabilir." -#: src/app/main/ui/static.cljs:49 +#: src/app/main/ui/static.cljs msgid "labels.not-found.main-message" msgstr "Oops!" -#: src/app/main/ui/dashboard/projects.cljs:239, src/app/main/ui/dashboard/team.cljs:1095 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.num-of-files" msgid_plural "labels.num-of-files" msgstr[0] "1 dosya" msgstr[1] "%s dosya" -#: src/app/main/ui/viewer/thumbnails.cljs:80 msgid "labels.num-of-frames" msgid_plural "labels.num-of-frames" msgstr[0] "1 çalışma yüzeyi" msgstr[1] "%s çalışma yüzeyi" -#: src/app/main/ui/dashboard/team.cljs:1090 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.num-of-projects" msgid_plural "labels.num-of-projects" msgstr[0] "1 proje" msgstr[1] "%s proje" -#: src/app/main/ui/settings/password.cljs:89 +#: src/app/main/ui/settings/password.cljs msgid "labels.old-password" msgstr "Eski parola" #: src/app/main/ui/workspace/comments.cljs -#, unused msgid "labels.only-yours" msgstr "Sadece seninkiler" -#, unused msgid "labels.or" msgstr "veya" -#: src/app/main/ui/onboarding/questions.cljs:145, src/app/main/ui/onboarding/questions.cljs:214, src/app/main/ui/onboarding/questions.cljs:303, src/app/main/ui/onboarding/questions.cljs:316, src/app/main/ui/onboarding/questions.cljs:389, src/app/main/ui/onboarding/questions.cljs:447 -msgid "labels.other" -msgstr "Diğer (lütfen belirtiniz)" - -#: src/app/main/ui/dashboard/team.cljs:286, src/app/main/ui/dashboard/team.cljs:518, src/app/main/ui/dashboard/team.cljs:1076 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs msgid "labels.owner" msgstr "Sahip" -#: src/app/main/ui/settings/sidebar.cljs:87 +#: src/app/main/ui/settings/sidebar.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.password" msgstr "Parola" -#: src/app/main/ui/dashboard/team.cljs:662 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.pending-invitation" msgstr "Bekliyor" -#: src/app/main/ui/onboarding/questions.cljs:51 -msgid "labels.previous" -msgstr "Önceki" - -#: src/app/main/ui/onboarding/questions.cljs:254 -msgid "labels.product-management" -msgstr "Ürün veya Proje yöneticisi" - -#: src/app/main/ui/settings/profile.cljs:118, src/app/main/ui/settings/sidebar.cljs:82 +#: src/app/main/ui/settings/sidebar.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.profile" msgstr "Profil" -#: src/app/main/ui/dashboard/sidebar.cljs:784 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.projects" msgstr "Projeler" -#: src/app/main/ui/dashboard/sidebar.cljs:998, src/app/main/ui/settings/sidebar.cljs:106, src/app/main/ui/workspace/main_menu.cljs:126 +#: src/app/main/ui/settings/sidebar.cljs msgid "labels.release-notes" msgstr "Sürüm notları" #: src/app/main/ui/workspace.cljs -#, unused msgid "labels.reload-file" msgstr "Dosyayı yeniden yükle" -#: src/app/main/ui/workspace/libraries.cljs, src/app/main/ui/dashboard/team.cljs -#, unused +#: src/app/main/ui/workspace/libraries.cljs, +#: src/app/main/ui/dashboard/team.cljs msgid "labels.remove" msgstr "Kaldır" -#: src/app/main/ui/dashboard/team.cljs:316 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.remove-member" msgstr "Üyeyi kaldır" -#: src/app/main/ui/dashboard/file_menu.cljs:271, src/app/main/ui/dashboard/project_menu.cljs:85, src/app/main/ui/dashboard/sidebar.cljs:539, src/app/main/ui/workspace/sidebar/assets/groups.cljs:157 +#: src/app/main/ui/dashboard/sidebar.cljs, +#: src/app/main/ui/dashboard/project_menu.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.rename" msgstr "Yeniden adlandır" -#: src/app/main/ui/dashboard/team_form.cljs:99 +#: src/app/main/ui/dashboard/team_form.cljs msgid "labels.rename-team" msgstr "Takımı yeniden adlandır" -#: src/app/main/ui/dashboard/team.cljs:645 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.resend-invitation" msgstr "Daveti yeniden gönder" -#: src/app/main/ui/static.cljs:61, src/app/main/ui/static.cljs:70, src/app/main/ui/static.cljs:148 +#: src/app/main/ui/static.cljs, src/app/main/ui/static.cljs msgid "labels.retry" msgstr "Yeniden dene" -#: src/app/main/ui/dashboard/team.cljs:469, src/app/main/ui/dashboard/team.cljs:709 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.role" msgstr "Rol" -#: src/app/main/ui/dashboard/fonts.cljs:380, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:191 msgid "labels.save" msgstr "Kaydet" -#: src/app/main/ui/onboarding/questions.cljs:414, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:436 msgid "labels.search" msgstr "Ara" -#: src/app/main/ui/dashboard/fonts.cljs:415 msgid "labels.search-font" msgstr "Yazı tipi ara" -#: src/app/main/ui/onboarding/questions.cljs:90, src/app/main/ui/onboarding/questions.cljs:248, src/app/main/ui/onboarding/questions.cljs:259, src/app/main/ui/onboarding/questions.cljs:270 -msgid "labels.select-option" -msgstr "Bir seçenek belirleyin" - -#: src/app/main/ui/settings/feedback.cljs:82 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.send" msgstr "Gönder" -#: src/app/main/ui/settings/feedback.cljs:82 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.sending" msgstr "Gönderiliyor…" -#: src/app/main/ui/static.cljs:68 +#: src/app/main/ui/static.cljs msgid "labels.service-unavailable.desc-message" msgstr "Sistemlerimizin programlı bakımını yapıyoruz." -#: src/app/main/ui/static.cljs:67 +#: src/app/main/ui/static.cljs msgid "labels.service-unavailable.main-message" msgstr "Hizmet Kullanılamıyor" -#: src/app/main/ui/dashboard/sidebar.cljs:530, src/app/main/ui/dashboard/team.cljs:88, src/app/main/ui/dashboard/team.cljs:102, src/app/main/ui/settings/options.cljs:84, src/app/main/ui/settings/sidebar.cljs:93 +#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.settings" msgstr "Ayarlar" -#: src/app/main/ui/viewer/header.cljs:199 msgid "labels.share" msgstr "Paylaş" -#, unused +#: src/app/main/ui/viewer/header.cljs, src/app/main/ui/viewer/header.cljs msgid "labels.share-prototype" msgstr "Prototipi paylaş" -#: src/app/main/ui/dashboard/sidebar.cljs:800 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.shared-libraries" msgstr "Paylaşılan Kütüphaneler" -#: src/app/main/ui/viewer/comments.cljs:82, src/app/main/ui/workspace/comments.cljs:55, src/app/main/ui/workspace/comments.cljs:135 +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs msgid "labels.show-all-comments" msgstr "Tüm yorumları göster" -#: src/app/main/ui/viewer/comments.cljs:115 msgid "labels.show-comments-list" msgstr "Yorum listesini göster" -#: src/app/main/ui/viewer/comments.cljs:91, src/app/main/ui/workspace/comments.cljs:61, src/app/main/ui/workspace/comments.cljs:136 +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs msgid "labels.show-your-comments" msgstr "Yalnızca kendi yorumlarımı göster" -#: src/app/main/ui/onboarding/questions.cljs:172 -msgid "labels.sketch" -msgstr "Sketch" - -#: src/app/main/ui/onboarding/questions.cljs:56 -msgid "labels.start" -msgstr "Başla" - -#: src/app/main/ui/dashboard/team.cljs:710 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.status" msgstr "Durum" -#: src/app/main/ui/onboarding/questions.cljs:251 -msgid "labels.student-teacher" -msgstr "Öğrenci veya öğretmen" - -#: src/app/main/ui/dashboard/sidebar.cljs:992, src/app/main/ui/workspace/main_menu.cljs:118 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.tutorials" msgstr "Öğreticiler" -#: src/app/main/ui/dashboard/file_menu.cljs:256 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.unpublish-multi-files" msgstr "%s dosyayı yayından kaldır" -#: src/app/main/ui/settings/profile.cljs:103 +#: src/app/main/ui/settings/profile.cljs msgid "labels.update" msgstr "Güncelle" -#: src/app/main/ui/dashboard/team_form.cljs:120 +#: src/app/main/ui/dashboard/team_form.cljs msgid "labels.update-team" msgstr "Takımı güncelle" -#: src/app/main/ui/dashboard/fonts.cljs:241 msgid "labels.upload" msgstr "Yükle" -#: src/app/main/ui/dashboard/fonts.cljs:169 msgid "labels.upload-custom-fonts" msgstr "Özel yazı tipi yükle" -#: src/app/main/ui/dashboard/fonts.cljs:240 msgid "labels.uploading" msgstr "Yükleniyor…" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs:223 msgid "labels.view-only" msgstr "YALNIZCA GÖRÜNTÜLE" -#: src/app/main/ui/dashboard/team.cljs:123, src/app/main/ui/dashboard/team.cljs:282, src/app/main/ui/dashboard/team.cljs:521 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.viewer" msgstr "Görüntüleyici" -#: src/app/main/ui/dashboard/sidebar.cljs:523, src/app/main/ui/dashboard/team.cljs:90, src/app/main/ui/dashboard/team.cljs:100, src/app/main/ui/dashboard/team.cljs:880 msgid "labels.webhooks" msgstr "Web kancaları" -#: src/app/main/ui/comments.cljs:194 +#: src/app/main/ui/comments.cljs msgid "labels.write-new-comment" msgstr "Yeni yorum yaz" -#: src/app/main/ui/dashboard/team.cljs:237 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.you" msgstr "(siz)" -#: src/app/main/ui/dashboard/sidebar.cljs:968 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.your-account" msgstr "Hesabınız" -#: src/app/main/ui/workspace/colorpicker.cljs:297, src/app/main/ui/workspace/colorpicker.cljs:298, src/app/main/ui/workspace/colorpicker.cljs:300 msgid "media.choose-image" msgstr "Görsel seç" -#, unused msgid "media.gradient" msgstr "Değişim" -#: src/app/main/data/workspace/media.cljs:275, src/app/main/ui/components/color_bullet.cljs:32, src/app/main/ui/components/color_bullet.cljs:45, src/app/main/ui/viewer/inspect/attributes/common.cljs:66, src/app/main/ui/workspace/colorpicker.cljs:211, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:237 msgid "media.image" msgstr "Görsel" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:77 msgid "media.image.short" msgstr "görsel" -#: src/app/main/ui/workspace/colorpicker.cljs:290 msgid "media.keep-aspect-ratio" msgstr "En boy oranını koru" -#: src/app/main/ui/workspace/colorpicker.cljs:208 msgid "media.linear" msgstr "Doğrusal" -#: src/app/main/data/media.cljs:49, src/app/main/data/workspace/media.cljs:223, src/app/main/data/workspace/media.cljs:453 +#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs msgid "media.loading" msgstr "Görsel yükleniyor…" -#: src/app/main/ui/workspace/colorpicker.cljs:209 msgid "media.radial" msgstr "Işınsal" -#: src/app/main/ui/workspace/colorpicker.cljs:206 msgid "media.solid" msgstr "Katı" -#: src/app/main/data/common.cljs:111 msgid "modals.add-shared-confirm-empty.hint" msgstr "" "Kütüphaneniz boş. Paylaşılan Kütüphane olarak eklendiğinde, oluşturduğunuz " "varlıklar diğer dosyalarınız arasında kullanılabilir olacak. Yayınlamak " "istediğinizden emin misiniz?" -#: src/app/main/data/common.cljs:113 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.add-shared-confirm.accept" msgstr "Paylaşılmış Kütüphane olarak Ekle" -#: src/app/main/data/common.cljs:111 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.add-shared-confirm.hint" msgstr "" "Paylaşılmış Kütüphane olarak eklenince, bu dosya kütüphanesindeki varlıklar " "diğer dosyalarınızdan da ulaşılabilecek." -#: src/app/main/data/common.cljs:110 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.add-shared-confirm.message" msgstr "Paylaşılmış Kütüphane olarak “%s” Ekle" -#: src/app/main/ui/workspace/nudge.cljs:60 +#: src/app/main/ui/workspace/nudge.cljs msgid "modals.big-nudge" msgstr "Büyük dürtme" -#: src/app/main/ui/settings/change_email.cljs:127 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.confirm-email" msgstr "Yeni e-postayı doğrulayın" -#: src/app/main/ui/settings/change_email.cljs:114 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.info" msgstr "" "“%s” e-posta adresinize kimliğinizi doğrulamak için bir e-posta " "göndereceğiz." -#: src/app/main/ui/settings/change_email.cljs:119 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.new-email" msgstr "Yeni e-posta" -#: src/app/main/ui/settings/change_email.cljs:136 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.submit" msgstr "E-postayı değiştir" -#: src/app/main/ui/settings/change_email.cljs:107 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.title" msgstr "E-postanızı değiştirin" -#: src/app/main/ui/settings/access_tokens.cljs:165, src/app/main/ui/settings/access_tokens.cljs:171 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.create-access-token.copy-token" msgstr "Belirteci kopyala" -#: src/app/main/ui/settings/access_tokens.cljs:142 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.create-access-token.expiration-date.label" msgstr "Sona erme tarihi" -#: src/app/main/ui/settings/access_tokens.cljs:136 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.create-access-token.name.label" msgstr "İsim" -#: src/app/main/ui/settings/access_tokens.cljs:138 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.create-access-token.name.placeholder" msgstr "Adı, belirtecin ne için olduğunu bilmenize yardımcı olabilir" -#: src/app/main/ui/settings/access_tokens.cljs:191 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.create-access-token.submit-label" msgstr "Belirteç oluştur" -#: src/app/main/ui/settings/access_tokens.cljs:123 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.create-access-token.title" msgstr "Erişim belirteci oluştur" -#: src/app/main/ui/dashboard/team.cljs:873 msgid "modals.create-webhook.submit-label" msgstr "Web kancası oluştur" -#: src/app/main/ui/dashboard/team.cljs:838 msgid "modals.create-webhook.title" msgstr "Web kancası oluştur" -#: src/app/main/ui/dashboard/team.cljs:849 msgid "modals.create-webhook.url.label" msgstr "Yük URL'si" -#: src/app/main/ui/dashboard/team.cljs:850 msgid "modals.create-webhook.url.placeholder" msgstr "https://example.com/postreceive" -#: src/app/main/ui/settings/access_tokens.cljs:271 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.delete-acces-token.accept" msgstr "Belirteci sil" -#: src/app/main/ui/settings/access_tokens.cljs:270 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.delete-acces-token.message" msgstr "Bu belirteci silmek istediğinizden emin misiniz?" -#: src/app/main/ui/settings/access_tokens.cljs:269 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.delete-acces-token.title" msgstr "Belirteci sil" -#: src/app/main/ui/settings/delete_account.cljs:59 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.cancel" msgstr "İptal et ve hesabımı koru" -#: src/app/main/ui/settings/delete_account.cljs:64 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.confirm" msgstr "Evet, hesabımı sil" -#: src/app/main/ui/settings/delete_account.cljs:53 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.info" msgstr "Hesabını silerek tüm projelerini ve arşivlerini kaybedeceksin." -#: src/app/main/ui/settings/delete_account.cljs:46 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.title" msgstr "Hesabını silmek istediğinden emin misin?" -#: src/app/main/ui/comments.cljs:298 +#: src/app/main/ui/comments.cljs msgid "modals.delete-comment-thread.accept" msgstr "Konuşmayı sil" -#: src/app/main/ui/comments.cljs:297 +#: src/app/main/ui/comments.cljs msgid "modals.delete-comment-thread.message" msgstr "" "Bu konuşmayı silmek istediğinden emin misin? Konudaki tüm yorumlar " "silinecek." -#: src/app/main/ui/comments.cljs:296 +#: src/app/main/ui/comments.cljs msgid "modals.delete-comment-thread.title" msgstr "Konuşmayı sil" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:140 msgid "modals.delete-component-annotation.message" msgstr "Bu açıklamayı silmek istediğinize emin misiniz?" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:139 msgid "modals.delete-component-annotation.title" msgstr "Açıklamayı sil" -#: src/app/main/ui/dashboard/file_menu.cljs:123 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-confirm.accept" msgstr "Dosyayı sil" -#: src/app/main/ui/dashboard/file_menu.cljs:122 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-confirm.message" msgstr "Bu dosyayı silmek istediğinden emin misin?" -#: src/app/main/ui/dashboard/file_menu.cljs:121 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-confirm.title" msgstr "Dosya siliniyor" -#: src/app/main/ui/dashboard/file_menu.cljs:117 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-multi-confirm.accept" msgstr "Dosyaları sil" -#: src/app/main/ui/dashboard/file_menu.cljs:116 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-multi-confirm.message" msgstr "%s dosyayı silmek istediğinden emin misin?" -#: src/app/main/ui/dashboard/file_menu.cljs:115 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-multi-confirm.title" msgstr "%s dosyayı sil" -#: src/app/main/ui/dashboard/fonts.cljs:345 msgid "modals.delete-font-variant.message" msgstr "" "Bu yazı tipi biçimini silmek istediğinizden emin misiniz? Bir dosyada " "kullanılıyorsa yüklenmeyecektir." -#: src/app/main/ui/dashboard/fonts.cljs:344 msgid "modals.delete-font-variant.title" msgstr "Yazı tipi biçimini sil" -#: src/app/main/ui/dashboard/fonts.cljs:331 msgid "modals.delete-font.message" msgstr "" "Bu yazı tipini silmek istediğinize emin misiniz? Bir dosyada kullanılıyorsa " "yüklenmeyecektir." -#: src/app/main/ui/dashboard/fonts.cljs:330 msgid "modals.delete-font.title" msgstr "Yazı tipini sil" -#: src/app/main/ui/workspace/context_menu.cljs:522, src/app/main/ui/workspace/sidebar/sitemap.cljs:45 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs msgid "modals.delete-page.body" msgstr "Bu sayfayı silmek istediğinden emin misin?" -#: src/app/main/ui/workspace/context_menu.cljs:521, src/app/main/ui/workspace/sidebar/sitemap.cljs:44 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs msgid "modals.delete-page.title" msgstr "Sayfayı sil" -#: src/app/main/ui/dashboard/project_menu.cljs:69 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "modals.delete-project-confirm.accept" msgstr "Projeyi sil" -#: src/app/main/ui/dashboard/project_menu.cljs:68 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "modals.delete-project-confirm.message" msgstr "Bu projeyi silmek istediğinden emin misin?" -#: src/app/main/ui/dashboard/project_menu.cljs:67 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "modals.delete-project-confirm.title" msgstr "Projeyi sil" -#: src/app/main/ui/delete_shared.cljs:51 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.accept" msgid_plural "modals.delete-shared-confirm.accept" msgstr[0] "Dosyayı sil" msgstr[1] "Dosyaları sil" -#: src/app/main/ui/delete_shared.cljs:55 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.activated.no-files-message" msgid_plural "modals.delete-shared-confirm.activated.no-files-message" msgstr[0] "Hiçbir dosyada etkinleştirilmedi." msgstr[1] "Hiçbir dosyada etkinleştirilmediler." -#: src/app/main/ui/delete_shared.cljs:57 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.activated.scd-message" msgid_plural "modals.delete-shared-confirm.activated.scd-message" msgstr[0] "Bu kütüphane burada etkinleştirildi: " msgstr[1] "Bu kütüphaneler burada etkinleştirildiler: " -#: src/app/main/ui/delete_shared.cljs:46 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.message" msgid_plural "modals.delete-shared-confirm.message" msgstr[0] "Bu dosyayı silmek istediğinizden emin misiniz?" msgstr[1] "Bu dosyaları silmek istediğinizden emin misiniz?" -#: src/app/main/ui/delete_shared.cljs:41 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.title" msgid_plural "modals.delete-shared-confirm.title" msgstr[0] "Dosya siliniyor" msgstr[1] "Dosyalar siliniyor" -#: src/app/main/ui/dashboard/sidebar.cljs:435 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.delete-team-confirm.accept" msgstr "Takımı sil" -#: src/app/main/ui/dashboard/sidebar.cljs:434 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.delete-team-confirm.message" msgstr "" "Bu takımı silmek istediğinden emin misin? Takımla ilişkili dosyalar ve " "projeler kalıcı olarak silinecektir." -#: src/app/main/ui/dashboard/sidebar.cljs:433 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.delete-team-confirm.title" msgstr "Takım siliniyor" -#: src/app/main/ui/dashboard/team.cljs:427 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.delete-team-member-confirm.accept" msgstr "Üyeyi sil" -#: src/app/main/ui/dashboard/team.cljs:426 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.delete-team-member-confirm.message" msgstr "Bu üyeyi takımdan silmek istediğinden emin misin?" -#: src/app/main/ui/dashboard/team.cljs:425 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.delete-team-member-confirm.title" msgstr "Takım üyesini sil" -#: src/app/main/ui/delete_shared.cljs:59 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-unpublish-shared-confirm.activated.hint" msgid_plural "modals.delete-unpublish-shared-confirm.activated.hint" msgstr[0] "" @@ -2264,3506 +2053,3160 @@ msgstr[1] "" "Bu dosyalarda daha önce kullanılmış olan varlıklar orada kalmaya devam " "edecek (hiçbir tasarım bozulmayacak)." -#: src/app/main/ui/dashboard/team.cljs:942 msgid "modals.delete-webhook.accept" msgstr "Web kancasını sil" -#: src/app/main/ui/dashboard/team.cljs:941 msgid "modals.delete-webhook.message" msgstr "Bu web kancasını silmek istediğinizden emin misiniz?" -#: src/app/main/ui/dashboard/team.cljs:940 msgid "modals.delete-webhook.title" msgstr "Web kancası siliniyor" -#: src/app/main/ui/dashboard/team.cljs:872 msgid "modals.edit-webhook.submit-label" msgstr "Web kancasını düzenle" -#: src/app/main/ui/dashboard/team.cljs:837 msgid "modals.edit-webhook.title" msgstr "Web kancasını düzenle" -#: src/app/main/ui/dashboard/team.cljs:218 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.invite-member-confirm.accept" msgstr "Davet gönder" -#: src/app/main/ui/dashboard/team.cljs:213, src/app/main/ui/onboarding/team_choice.cljs:156 msgid "modals.invite-member.emails" msgstr "E-posta adresleri, virgülle ayrılmış" -#: src/app/main/ui/dashboard/team.cljs:197 msgid "modals.invite-member.repeated-invitation" msgstr "" "Bazı e-posta adresleri mevcut takım üyelerine aittir. Davetleri " "gönderilmeyecektir." -#: src/app/main/ui/dashboard/team.cljs:190 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.invite-team-member.title" msgstr "Üyeleri takıma davet et" -#: src/app/main/ui/dashboard/sidebar.cljs:423, src/app/main/ui/dashboard/team.cljs:393 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-close-confirm.hint" msgstr "" "Tek üyesi siz olduğunuz için takım, projeleri ve dosyaları ile birlikte " "silinecektir." -#: src/app/main/ui/dashboard/sidebar.cljs:422, src/app/main/ui/dashboard/team.cljs:392 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-close-confirm.message" msgstr "%s takımından ayrılmak istediğinizden emin misiniz?" -#: src/app/main/ui/dashboard/change_owner.cljs:59 msgid "modals.leave-and-reassign.forbidden" msgstr "" "Birisini takımın sahibi yapmadan takımı bırakamazsın. Takımı silmek " "isteyebilirsin." -#: src/app/main/ui/dashboard/change_owner.cljs:55 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-reassign.hint1" msgstr "" "Bu takımın sahibi sizsiniz. Lütfen ayrılmadan önce sahibi olarak belirlemek " "için başka bir üye seçin." -#: src/app/main/ui/dashboard/change_owner.cljs:78 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-reassign.promote-and-leave" msgstr "Terfi ettir ve ayrıl" -#: src/app/main/ui/dashboard/change_owner.cljs:34 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-reassign.select-member-to-promote" msgstr "Terfi ettirmek için bir üye seçin" -#: src/app/main/ui/dashboard/change_owner.cljs:49 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-reassign.title" msgstr "Ayrılmadan önce" -#: src/app/main/ui/dashboard/sidebar.cljs:402, src/app/main/ui/dashboard/sidebar.cljs:424, src/app/main/ui/dashboard/team.cljs:394, src/app/main/ui/dashboard/team.cljs:416 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-confirm.accept" msgstr "Takımdan ayrıl" -#: src/app/main/ui/dashboard/sidebar.cljs:401, src/app/main/ui/dashboard/team.cljs:415 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-confirm.message" msgstr "Bu takımdan ayrılmak istediğinden emin misin?" -#: src/app/main/ui/dashboard/sidebar.cljs:400, src/app/main/ui/dashboard/sidebar.cljs:421, src/app/main/ui/dashboard/team.cljs:391, src/app/main/ui/dashboard/team.cljs:414 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-confirm.title" msgstr "Takımdan ayrıl" -#: src/app/main/ui/delete_shared.cljs:53 msgid "modals.move-shared-confirm.accept" msgid_plural "modals.move-shared-confirm.accept" msgstr[0] "Taşı" msgstr[1] "Taşı" -#: src/app/main/ui/delete_shared.cljs:48 msgid "modals.move-shared-confirm.message" msgid_plural "modals.move-shared-confirm.message" msgstr[0] "Bu kütüphaneyi taşımak istediğinizden emin misiniz?" msgstr[1] "Bu kütüphaneleri taşımak istediğinizden emin misiniz?" -#: src/app/main/ui/delete_shared.cljs:43 msgid "modals.move-shared-confirm.title" msgid_plural "modals.move-shared-confirm.title" msgstr[0] "Kütüphaneyi taşı" msgstr[1] "Kütüphaneleri taşı" -#: src/app/main/ui/workspace/main_menu.cljs:266, src/app/main/ui/workspace/nudge.cljs:47 +#: src/app/main/ui/workspace/nudge.cljs msgid "modals.nudge-title" msgstr "Dürtme miktarı" -#: src/app/main/ui/dashboard/team.cljs:340 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.accept" msgstr "Sahipliği aktar" -#: src/app/main/ui/dashboard/team.cljs:339 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.hint" msgstr "" "Sahipliği aktarırsanız, rolünüzü Yönetici olarak değiştireceksiniz ve bu " "takım üzerindeki bazı izinleri kaybedeceksiniz. " -#: src/app/main/ui/dashboard/team.cljs:338 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.message" msgstr "" "Bu takımın şu anki sahibi sizsiniz. %s kişisini takımın yeni sahibi yapmak " "istediğinizden emin misiniz?" -#: src/app/main/ui/dashboard/team.cljs:337 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.title" msgstr "Yeni takım sahibi" -#: src/app/main/ui/workspace/libraries.cljs:188 msgid "modals.publish-empty-library.accept" msgstr "Yayınla" -#: src/app/main/ui/workspace/libraries.cljs:187 msgid "modals.publish-empty-library.message" msgstr "Kütüphaneniz boş. Yine de yayınlamak istediğinizden emin misiniz?" -#: src/app/main/ui/workspace/libraries.cljs:186 msgid "modals.publish-empty-library.title" msgstr "Boş kütüphaneyi yayınla" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.remove-shared-confirm.accept" msgstr "Paylaşılan Kütüphane olarak kaldır" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.remove-shared-confirm.hint" msgstr "" "Paylaşılan Kütüphane olarak kaldırıldıktan sonra, bu dosyanın Dosya " "Kütüphanesi, dosyalarınızın geri kalanında artık kullanılabilir olmayacak." -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.remove-shared-confirm.message" msgstr "“%s” Paylaşılan Kütüphanesini Kaldır" -#: src/app/main/ui/workspace/nudge.cljs:53 +#: src/app/main/ui/workspace/nudge.cljs msgid "modals.small-nudge" msgstr "Küçük dürtme" -#: src/app/main/ui/delete_shared.cljs:52 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.unpublish-shared-confirm.accept" msgid_plural "modals.unpublish-shared-confirm.accept" msgstr[0] "Yayından kaldır" msgstr[1] "Yayından kaldır" -#: src/app/main/ui/delete_shared.cljs:47 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.unpublish-shared-confirm.message" msgid_plural "modals.unpublish-shared-confirm.message" msgstr[0] "Bu kütüphaneyi yayından kaldırmak istediğinizden emin misiniz?" msgstr[1] "Bu kütüphaneleri yayından kaldırmak istediğinizden emin misiniz?" -#: src/app/main/ui/delete_shared.cljs:42 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.unpublish-shared-confirm.title" msgid_plural "modals.unpublish-shared-confirm.title" msgstr[0] "Kütüphaneyi yayından kaldır" msgstr[1] "Kütüphaneleri yayından kaldır" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component-in-bulk.hint" msgstr "" "Paylaşılan bir kütüphanedeki bileşenleri güncellemek üzeresiniz. Bu, onu " "kullanan diğer dosyaları etkileyebilir." -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component-in-bulk.message" msgstr "Paylaşılan bir kütüphanedeki bileşenleri güncelle" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:380 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.accept" msgstr "Güncelle" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:379 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.cancel" msgstr "İptal" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:378 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.hint" msgstr "" "Paylaşılmış bir kütüphanedeki bileşeni güncellemek üzeresin. Onu kullanan " "diğer dosyalar etkilenebilir." -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:377 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.message" msgstr "Paylaşılmış bir kütüphanede bir bileşen güncelle" -#: src/app/main/data/common.cljs:71 +#: src/app/main/data/common.cljs msgid "notifications.by-code.upgrade-version" msgstr "Yeni bir sürüm mevcut, lütfen sayfayı yenileyin" -#: src/app/main/ui/dashboard/team.cljs:154, src/app/main/ui/dashboard/team.cljs:595 +#: src/app/main/ui/dashboard/team.cljs msgid "notifications.invitation-email-sent" msgstr "Davet başarıyla iletildi" -#: src/app/main/ui/dashboard/team.cljs:616 +#: src/app/main/ui/dashboard/team.cljs msgid "notifications.invitation-link-copied" msgstr "Davet bağlantısı kopyalandı" -#: src/app/main/ui/settings/delete_account.cljs:24 +#: src/app/main/ui/settings/delete_account.cljs msgid "notifications.profile-deletion-not-allowed" msgstr "Profilinizi silemezsiniz. Devam etmeden önce takımlarınızı birine atayın." -#: src/app/main/ui/settings/options.cljs:29, src/app/main/ui/settings/profile.cljs:35 +#: src/app/main/ui/settings/profile.cljs, src/app/main/ui/settings/options.cljs msgid "notifications.profile-saved" msgstr "Profil başarıyla kaydedildi!" -#: src/app/main/ui/settings/change_email.cljs:63 +#: src/app/main/ui/settings/change_email.cljs msgid "notifications.validation-email-sent" msgstr "%s adresine doğrulama e-postası gönderildi. E-posta kutunuza bakın!" -#, unused msgid "onboarding-v2.before-start.desc1" msgstr "" "Kullanıcı Kılavuzu ve Youtube kanalımız gibi Penpot'u kullanmaya " "başlamanıza yardımcı olacak birçok kaynak olduğunu bilmelisiniz." -#, unused msgid "onboarding-v2.before-start.desc2" msgstr "" "Penpot'un nasıl kullanılacağı hakkında ayrıntılı bilgi. Prototiplemeden " "tasarımları düzenlemeye veya paylaşmaya kadar." -#, unused msgid "onboarding-v2.before-start.desc2.title" msgstr "Kullanıcı kılavuzu" -#, unused msgid "onboarding-v2.before-start.desc3" msgstr "Bizim ve topluluğumuz tarafından hazırlanan öğreticileri izleyebilirsiniz." -#, unused msgid "onboarding-v2.before-start.desc3.title" msgstr "Video öğreticiler" -#, unused msgid "onboarding-v2.before-start.title" msgstr "Başlamadan önce" -#: src/app/main/ui/onboarding/newsletter.cljs:63 msgid "onboarding-v2.newsletter.desc" msgstr "" "Ürün geliştirme sürecinden ve haberlerden haberdar olmak için Penpot " "bültenine abone olun." -#: src/app/main/ui/onboarding/newsletter.cljs:83 msgid "onboarding-v2.newsletter.news" msgstr "" "Bana Penpot hakkında haberler gönder (blog gönderileri, video öğreticiler, " "yayınlar...)." -#: src/app/main/ui/onboarding/newsletter.cljs:91 msgid "onboarding-v2.newsletter.privacy1" msgstr "Gizliliğe önem veriyoruz, buradan okuyabilirsiniz. " -#: src/app/main/ui/onboarding/newsletter.cljs:97 msgid "onboarding-v2.newsletter.privacy2" msgstr "" "Size yalnızca ilgili e-postaları göndereceğiz. Bültenlerimizden herhangi " "birindeki abonelikten çıkma bağlantısını kullanarak istediğiniz zaman " "aboneliğinizi iptal edebilirsiniz." -#: src/app/main/ui/onboarding/newsletter.cljs:71 msgid "onboarding-v2.newsletter.updates" msgstr "Bana ürün güncellemeleri gönder (yeni özellikler, sürümler, düzeltmeler...)." -#, unused msgid "onboarding-v2.welcome.desc1" msgstr "" "Penpot açık kaynaklıdır ve Kaleidos'un yanı sıra birçok insanın birbirine " "yardım ettiği topluluk tarafından yapılmıştır. Herkes işbirliğine " "katılabilir:" -#, unused msgid "onboarding-v2.welcome.desc2" msgstr "" "Tüm topluluk ve Penpot çekirdek takımı ile Penpot, bugünü ve geleceği " "hakkında bilgi edinmek, paylaşmak ve tartışmak için herkese açık bir alan." -#, unused msgid "onboarding-v2.welcome.desc2.title" msgstr "Topluluğa Katılım" -#, unused msgid "onboarding-v2.welcome.desc3" msgstr "" "Çeviriler, özellik istekleri, temel katkılar, hata avı ile nasıl işbirliği " "yapacağınızı bulacağınız yer…" -#, unused msgid "onboarding-v2.welcome.desc3.title" msgstr "Katkıda bulunma kılavuzu" -#: src/app/main/ui/onboarding/team_choice.cljs:31 msgid "onboarding-v2.welcome.title" msgstr "Penpot'a hoş geldiniz!" -#: src/app/main/ui/onboarding/team_choice.cljs:229 msgid "onboarding.choice.team-up.continue-creating-team" msgstr "Takım oluşturmaya devam edin" -#: src/app/main/ui/onboarding/team_choice.cljs:239 msgid "onboarding.choice.team-up.continue-without-a-team" msgstr "Takım olmadan devam edin" -#: src/app/main/ui/onboarding/team_choice.cljs:167 msgid "onboarding.choice.team-up.create-team-and-invite" msgstr "Takım oluşturun ve davet edin" -#, unused msgid "onboarding.choice.team-up.create-team-and-send-invites" msgstr "Takım oluşturun ve davet gönderin" -#: src/app/main/ui/onboarding/team_choice.cljs:170 msgid "onboarding.choice.team-up.create-team-and-send-invites-description" msgstr "Daha sonra davet edebileceksiniz" -#: src/app/main/ui/onboarding/team_choice.cljs:215 msgid "onboarding.choice.team-up.create-team-desc" msgstr "Takımınızı adlandırdıktan sonra, insanları katılmaya davet edebileceksiniz." -#: src/app/main/ui/onboarding/team_choice.cljs:224 msgid "onboarding.choice.team-up.create-team-placeholder" msgstr "Takımın adını girin" -#: src/app/main/ui/onboarding/team_choice.cljs:168 msgid "onboarding.choice.team-up.create-team-without-invite" msgstr "Takım oluşturun" -#, unused msgid "onboarding.choice.team-up.create-team-without-inviting" msgstr "Davet etmeden takım oluşturun" -#: src/app/main/ui/dashboard/projects.cljs:89, src/app/main/ui/onboarding/team_choice.cljs:140 msgid "onboarding.choice.team-up.invite-members" msgstr "Üyeleri davet edin" -#: src/app/main/ui/onboarding/team_choice.cljs:141 msgid "onboarding.choice.team-up.invite-members-info" msgstr "" "Herkesi dahil etmeyi unutmayın. Geliştiriciler, tasarımcılar, " "yöneticiler... çeşitlilik iyidir :)" -#: src/app/main/ui/dashboard/team.cljs:202, src/app/main/ui/onboarding/team_choice.cljs:146 msgid "onboarding.choice.team-up.roles" msgstr "Rol ile davet et:" -#: src/app/main/ui/onboarding/team_choice.cljs:232 msgid "onboarding.choice.team-up.start-without-a-team" msgstr "Takım olmadan başlayın" -#: src/app/main/ui/onboarding/team_choice.cljs:234 msgid "onboarding.choice.team-up.start-without-a-team-description" msgstr "Daha sonra bir takım oluşturabileceksiniz." -#, unused msgid "onboarding.newsletter.accept" msgstr "Evet, abone ol" -#: src/app/main/ui/onboarding/newsletter.cljs:40 msgid "onboarding.newsletter.acceptance-message" msgstr "Abonelik talebiniz iletildi, size onaylamak için bir e-posta göndereceğiz." -#: src/app/main/ui/onboarding/newsletter.cljs:95 msgid "onboarding.newsletter.policy" msgstr "Gizlilik Politikası." -#: src/app/main/ui/onboarding/newsletter.cljs:60 msgid "onboarding.newsletter.title" msgstr "Penpot haberlerini almak ister misiniz?" -#: src/app/main/ui/onboarding/questions.cljs:118 -msgid "onboarding.questions.lets-get-started" -msgstr "Haydi başlayalım!" - -#: src/app/main/ui/onboarding/questions.cljs:307 -msgid "onboarding.questions.step3.question2" -msgstr "Göreviniz nedir?" - -#: src/app/main/ui/onboarding/questions.cljs:320 -msgid "onboarding.questions.step3.question3" -msgstr "Takımınızın büyüklüğü nedir?" - -#: src/app/main/ui/onboarding/questions.cljs:273 -msgid "onboarding.questions.team-size.11-30" -msgstr "11-30" - -#: src/app/main/ui/onboarding/questions.cljs:274 -msgid "onboarding.questions.team-size.2-10" -msgstr "2-10" - -#: src/app/main/ui/onboarding/questions.cljs:272 -msgid "onboarding.questions.team-size.31-50" -msgstr "31-50" - -#: src/app/main/ui/onboarding/questions.cljs:271 -msgid "onboarding.questions.team-size.more-than-50" -msgstr "50'den fazla" - -#: src/app/main/ui/onboarding/questions.cljs:276 -msgid "onboarding.questions.team-size.personal-project" -msgstr "Kendi projem üzerinde çalışıyorum" - -#: src/app/main/ui/onboarding/team_choice.cljs:213 msgid "onboarding.team-modal.create-team" msgstr "Bir takım oluştur" -#: src/app/main/ui/onboarding/team_choice.cljs:35 msgid "onboarding.team-modal.create-team-desc" msgstr "" "Takım, aynı dosya ve projelerde çalışan diğer Penpot kullanıcılarıyla " "işbirliği yapmanıza olanak tanır." -#: src/app/main/ui/onboarding/team_choice.cljs:40 msgid "onboarding.team-modal.create-team-feature-1" msgstr "Sınırsız dosya ve proje" -#: src/app/main/ui/onboarding/team_choice.cljs:44 msgid "onboarding.team-modal.create-team-feature-2" msgstr "Çok oyunculu sürüm" -#: src/app/main/ui/onboarding/team_choice.cljs:48 msgid "onboarding.team-modal.create-team-feature-3" msgstr "Rol yönetimi" -#: src/app/main/ui/onboarding/team_choice.cljs:52 msgid "onboarding.team-modal.create-team-feature-4" msgstr "Sınırsız üye" -#: src/app/main/ui/onboarding/team_choice.cljs:56 msgid "onboarding.team-modal.create-team-feature-5" msgstr "%100 özgür!" -#: src/app/main/ui/onboarding/team_choice.cljs:33 msgid "onboarding.team-modal.team-definition" msgstr "Takım nedir?" -#: src/app/main/ui/onboarding/templates.cljs:78 msgid "onboarding.templates.subtitle" msgstr "İşte bazı şablonlar." -#: src/app/main/ui/onboarding/templates.cljs:77 msgid "onboarding.templates.title" msgstr "Tasarlamaya başla" -#, unused msgid "onboarding.welcome.alt" msgstr "Penpot" -#: src/app/main/ui/auth/recovery.cljs:99 +#: src/app/main/ui/auth/recovery.cljs msgid "profile.recovery.go-to-login" msgstr "Oturum açmaya git" -#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:221 +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.team-size.11-30" +msgstr "11-30" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.team-size.2-10" +msgstr "2-10" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.team-size.31-50" +msgstr "31-50" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.adobe-xd" +msgstr "Adobe XD" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.canva" +msgstr "Canva" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.developer" +msgstr "Geliştirici" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.figma" +msgstr "Figma" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.founder" +msgstr "Kurucu/Başkan Yardımcısı" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.freelancer" +msgstr "Serbest çalışıyorum" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.invision" +msgstr "InVision" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.lets-get-started" +msgstr "Haydi başlayalım!" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.product-management" +msgstr "Ürün veya Proje yöneticisi" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.marketing" +msgstr "Pazarlama" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.team-size.more-than-50" +msgstr "50'den fazla" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.next" +msgstr "Sonraki" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.other" +msgstr "Diğer (lütfen belirtiniz)" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.team-size.personal-project" +msgstr "Kendi projem üzerinde çalışıyorum" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.previous" +msgstr "Önceki" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.step3.question2" +msgstr "Göreviniz nedir?" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.select-option" +msgstr "Bir seçenek belirleyin" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.sketch" +msgstr "Sketch" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.start" +msgstr "Başla" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.student-teacher" +msgstr "Öğrenci veya öğretmen" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.step3.question3" +msgstr "Takımınızın büyüklüğü nedir?" + +#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, msgid "settings.detach" msgstr "Çıkar" -#: src/app/main/ui/viewer/inspect/exports.cljs:147, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:631, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:137, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:148, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:188, src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:158, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:399, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:410, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:430, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:441, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:458, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:472, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:309, src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:183, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:373, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:389, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:245, src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:172 +#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs msgid "settings.multiple" msgstr "Karışık" -#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:271 +#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs msgid "settings.select-this-color" msgstr "Bu biçimi kullanan ögeleri seç" # SECTIONS -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:414 msgid "shortcut-section.basics" msgstr "Temel bilgiler" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:420 msgid "shortcut-section.dashboard" msgstr "Denetim paneli" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:423 msgid "shortcut-section.viewer" msgstr "Görüntüleyici" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:417 msgid "shortcut-section.workspace" msgstr "Çalışma alanı" # SUBSECTIONS -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:56 msgid "shortcut-subsection.alignment" msgstr "Hizalama" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:57 msgid "shortcut-subsection.edit" msgstr "Düzenle" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:58 msgid "shortcut-subsection.general-dashboard" msgstr "Genel" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:59 msgid "shortcut-subsection.general-viewer" msgstr "Genel" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:60 msgid "shortcut-subsection.main-menu" msgstr "Ana menü" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:61 msgid "shortcut-subsection.modify-layers" msgstr "Katmanları değiştir" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:62 msgid "shortcut-subsection.navigation-dashboard" msgstr "Gezinme" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:63 msgid "shortcut-subsection.navigation-viewer" msgstr "Gezinme" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:64 msgid "shortcut-subsection.navigation-workspace" msgstr "Gezinme" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:65 msgid "shortcut-subsection.panels" msgstr "Paneller" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:66 msgid "shortcut-subsection.path-editor" msgstr "Yollar" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:67 msgid "shortcut-subsection.shape" msgstr "Şekiller" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:68 msgid "shortcut-subsection.text-editor" msgstr "Metinler" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:69 msgid "shortcut-subsection.tools" msgstr "Araçlar" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:70 msgid "shortcut-subsection.zoom-viewer" msgstr "Yakınlaştır" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:71 msgid "shortcut-subsection.zoom-workspace" msgstr "Yakınlaştır" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:72 msgid "shortcuts.add-comment" msgstr "Yorumlar" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:73 msgid "shortcuts.add-node" msgstr "Düğüm ekle" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:74 msgid "shortcuts.align-bottom" msgstr "Alta hizala" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:75 msgid "shortcuts.align-center" msgstr "Ortala" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:76 msgid "shortcuts.align-hcenter" msgstr "Ortayı yatay olarak hizala" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:77 msgid "shortcuts.align-justify" msgstr "İki yana yasla" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:78 msgid "shortcuts.align-left" msgstr "Sola hizala" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:79 msgid "shortcuts.align-right" msgstr "Sağa hizala" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:80 msgid "shortcuts.align-top" msgstr "Üste hizala" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:81 msgid "shortcuts.align-vcenter" msgstr "Ortayı dikey olarak hizala" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:82 msgid "shortcuts.artboard-selection" msgstr "Seçimden çalışma yüzeyi oluştur" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:83 msgid "shortcuts.bold" msgstr "Kalın yazı aç/kapat" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:84 msgid "shortcuts.bool-difference" msgstr "Boole farkı" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:85 msgid "shortcuts.bool-exclude" msgstr "Boole hariç tut" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:86 msgid "shortcuts.bool-intersection" msgstr "Boole kesişim" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:87 msgid "shortcuts.bool-union" msgstr "Boole birleşim" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:88 msgid "shortcuts.bring-back" msgstr "En arkaya gönder" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:89 msgid "shortcuts.bring-backward" msgstr "Arkaya gönder" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:90 msgid "shortcuts.bring-forward" msgstr "Öne getir" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:91 msgid "shortcuts.bring-front" msgstr "En öne getir" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:92 msgid "shortcuts.clear-undo" msgstr "Geri almayı temizle" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:93 msgid "shortcuts.copy" msgstr "Kopyala" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:94 msgid "shortcuts.create-component" msgstr "Bileşen oluştur" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:95 msgid "shortcuts.create-new-project" msgstr "Yeni oluştur" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:96 msgid "shortcuts.cut" msgstr "Kes" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:97 msgid "shortcuts.decrease-zoom" msgstr "Uzaklaştır" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:98 msgid "shortcuts.delete" msgstr "Sil" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:99 msgid "shortcuts.delete-node" msgstr "Düğümü sil" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:100 msgid "shortcuts.detach-component" msgstr "Bileşeni ayır" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:101 msgid "shortcuts.draw-curve" msgstr "Eğri" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:102 msgid "shortcuts.draw-ellipse" msgstr "Elips" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:103 msgid "shortcuts.draw-frame" msgstr "Çalışma yüzeyi" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:104 msgid "shortcuts.draw-nodes" msgstr "Yol çiz" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:105 msgid "shortcuts.draw-path" msgstr "Yol" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:106 msgid "shortcuts.draw-rect" msgstr "Dikdörtgen" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:107 msgid "shortcuts.draw-text" msgstr "Metin" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:108 msgid "shortcuts.duplicate" msgstr "Çoğalt" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:109 msgid "shortcuts.escape" msgstr "İptal" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:110 msgid "shortcuts.export-shapes" msgstr "Şekilleri dışa aktar" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:111 msgid "shortcuts.fit-all" msgstr "Tümüne uydurmak için yakınlaştır" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:112 msgid "shortcuts.flip-horizontal" msgstr "Yatay olarak çevir" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:113 msgid "shortcuts.flip-vertical" msgstr "Dikey olarak çevir" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:114 msgid "shortcuts.font-size-dec" msgstr "Yazı boyutunu azalt" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:115 msgid "shortcuts.font-size-inc" msgstr "Yazı boyutunu artır" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:116 msgid "shortcuts.go-to-drafts" msgstr "Taslaklara git" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:117 msgid "shortcuts.go-to-libs" msgstr "Paylaşılan kütüphanelere git" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:118 msgid "shortcuts.go-to-search" msgstr "Ara" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:119 msgid "shortcuts.group" msgstr "Grup" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:120 msgid "shortcuts.h-distribute" msgstr "Yatay olarak dağıt" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:121 msgid "shortcuts.hide-ui" msgstr "Kullanıcı arayüzünü göster/gizle" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:122 msgid "shortcuts.increase-zoom" msgstr "Yakınlaştır" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:123 msgid "shortcuts.insert-image" msgstr "Görsel ekle" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:124 msgid "shortcuts.italic" msgstr "İtalik yazı aç/kapat" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:125 msgid "shortcuts.join-nodes" msgstr "Düğümlere katıl" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:126 msgid "shortcuts.letter-spacing-dec" msgstr "Harf aralığını azalt" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:127 msgid "shortcuts.letter-spacing-inc" msgstr "Harf aralığını artır" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:128 msgid "shortcuts.line-height-dec" msgstr "Satır yüksekliğini azalt" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:129 msgid "shortcuts.line-height-inc" msgstr "Satır yüksekliğini artır" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:130 msgid "shortcuts.line-through" msgstr "Üstü çizili yazı aç/kapat" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:131 msgid "shortcuts.make-corner" msgstr "Köşe yap" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:132 msgid "shortcuts.make-curve" msgstr "Eğri yap" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:133 msgid "shortcuts.mask" msgstr "Maskele" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:134 msgid "shortcuts.merge-nodes" msgstr "Düğümleri birleştir" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:135 msgid "shortcuts.move" msgstr "Taşı" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:136 msgid "shortcuts.move-fast-down" msgstr "Hızlı aşağı taşı" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:137 msgid "shortcuts.move-fast-left" msgstr "Hızlı sola taşı" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:138 msgid "shortcuts.move-fast-right" msgstr "Hızlı sağa taşı" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:139 msgid "shortcuts.move-fast-up" msgstr "Hızlı yukarı taşı" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:140 msgid "shortcuts.move-nodes" msgstr "Düğümü taşı" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:141 msgid "shortcuts.move-unit-down" msgstr "Aşağı taşı" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:142 msgid "shortcuts.move-unit-left" msgstr "Sola taşı" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:143 msgid "shortcuts.move-unit-right" msgstr "Sağa taşı" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:144 msgid "shortcuts.move-unit-up" msgstr "Yukarı taşı" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:145 msgid "shortcuts.next-frame" msgstr "Sonraki çalışma yüzeyi" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:516 msgid "shortcuts.not-found" msgstr "Kısayol bulunamadı" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:146 msgid "shortcuts.opacity-0" msgstr "Opaklığı %100 olarak ayarla" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:147 msgid "shortcuts.opacity-1" msgstr "Opaklığı %10 olarak ayarla" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:148 msgid "shortcuts.opacity-2" msgstr "Opaklığı %20 olarak ayarla" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:149 msgid "shortcuts.opacity-3" msgstr "Opaklığı %30 olarak ayarla" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:150 msgid "shortcuts.opacity-4" msgstr "Opaklığı %40 olarak ayarla" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:151 msgid "shortcuts.opacity-5" msgstr "Opaklığı %50 olarak ayarla" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:152 msgid "shortcuts.opacity-6" msgstr "Opaklığı %60 olarak ayarla" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:153 msgid "shortcuts.opacity-7" msgstr "Opaklığı %70 olarak ayarla" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:154 msgid "shortcuts.opacity-8" msgstr "Opaklığı %80 olarak ayarla" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:155 msgid "shortcuts.opacity-9" msgstr "Opaklığı %90 olarak ayarla" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:156 msgid "shortcuts.open-color-picker" msgstr "Renk seçici" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:157 msgid "shortcuts.open-comments" msgstr "Görüntüleyici yorum bölümüne git" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:158 msgid "shortcuts.open-dashboard" msgstr "Denetim paneline git" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:159 msgid "shortcuts.open-inspect" msgstr "Görüntüleyici inceleme bölümüne git" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:160 msgid "shortcuts.open-interactions" msgstr "Görüntüleyici etkileşimleri bölümüne git" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:161 msgid "shortcuts.open-viewer" msgstr "Görüntüleyici etkileşimleri bölümüne git" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:162 msgid "shortcuts.open-workspace" msgstr "Çalışma alanına git" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:260 msgid "shortcuts.or" msgstr " veya " -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:163 msgid "shortcuts.paste" msgstr "Yapıştır" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:164 msgid "shortcuts.prev-frame" msgstr "Önceki çalışma yüzeyi" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:165 msgid "shortcuts.redo" msgstr "Yeniden yap" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:166 msgid "shortcuts.reset-zoom" msgstr "Yakınlaştırmayı sıfırla" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:167 msgid "shortcuts.scale" msgstr "Ölçeklendir" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:168 msgid "shortcuts.search-placeholder" msgstr "Kısayolları ara" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:169 msgid "shortcuts.select-all" msgstr "Tümünü seç" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:170 msgid "shortcuts.select-next" msgstr "Sonraki katmanı seç" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:171 msgid "shortcuts.select-parent-layer" msgstr "Ana katmanı seç" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:172 msgid "shortcuts.select-prev" msgstr "Önceki katmanı seç" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:173 msgid "shortcuts.separate-nodes" msgstr "Düğümleri ayır" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:174 msgid "shortcuts.show-pixel-grid" msgstr "Piksel ızgarasını göster/gizle" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:175 msgid "shortcuts.show-shortcuts" msgstr "Kısayolları göster/gizle" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:176 msgid "shortcuts.snap-nodes" msgstr "Düğümlere tuttur" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:177 msgid "shortcuts.snap-pixel-grid" msgstr "Piksel ızgarasına tuttur" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:178 msgid "shortcuts.start-editing" msgstr "Düzenlemeye başla" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:179 msgid "shortcuts.start-measure" msgstr "Ölçüme başla" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:180 msgid "shortcuts.stop-measure" msgstr "Ölçümü durdur" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:181 msgid "shortcuts.text-align-center" msgstr "Ortaya hizala" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:182 msgid "shortcuts.text-align-justify" msgstr "İki yana yasla" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:183 msgid "shortcuts.text-align-left" msgstr "Sola hizala" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:184 msgid "shortcuts.text-align-right" msgstr "Sağa hizala" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:185 msgid "shortcuts.thumbnail-set" msgstr "Küçük resimleri ayarla" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:496, src/app/main/ui/workspace/sidebar/shortcuts.cljs:505 +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs msgid "shortcuts.title" msgstr "Klavye kısayolları" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:186 msgid "shortcuts.toggle-alignment" msgstr "Dinamik hizalamayı aç/kapat" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:187 msgid "shortcuts.toggle-assets" msgstr "Varlıkları değiştir" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:188 msgid "shortcuts.toggle-colorpalette" msgstr "Renk paletini değiştir" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:189 msgid "shortcuts.toggle-focus-mode" msgstr "Odak modunu değiştir" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:190 msgid "shortcuts.toggle-fullscreen" msgstr "Tam ekranı değiştir" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:191 msgid "shortcuts.toggle-guides" msgstr "Kılavuzları göster/gizle" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:192 msgid "shortcuts.toggle-history" msgstr "Geçmişi değiştir" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:193 msgid "shortcuts.toggle-layers" msgstr "Katmanları değiştir" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:194 msgid "shortcuts.toggle-layout-flex" msgstr "Düzen esnekliği ekle/kaldır" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:195 msgid "shortcuts.toggle-layout-grid" msgstr "Izgara düzeni ekle/kaldır" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:196 msgid "shortcuts.toggle-lock" msgstr "Seçileni kilitle" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:197 msgid "shortcuts.toggle-lock-size" msgstr "Oranları kilitle" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:198 msgid "shortcuts.toggle-rulers" msgstr "Cetvelleri göster/gizle" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:200 msgid "shortcuts.toggle-snap-guides" msgstr "Kılavuzlara tuttur" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:201 msgid "shortcuts.toggle-snap-ruler-guide" msgstr "Cetvel kılavuzlarına tuttur" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:202 msgid "shortcuts.toggle-textpalette" msgstr "Metin paletini değiştir" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:203 msgid "shortcuts.toggle-theme" msgstr "Temayı değiştir" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:204 msgid "shortcuts.toggle-visibility" msgstr "Göster / Gizle" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:205 msgid "shortcuts.toggle-zoom-style" msgstr "Yakınlaştırma şeklini değiştir" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:206 msgid "shortcuts.underline" msgstr "Alt çizgiyi aç/kapat" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:207 msgid "shortcuts.undo" msgstr "Geri al" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:208 msgid "shortcuts.ungroup" msgstr "Grubu dağıt" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:209 msgid "shortcuts.unmask" msgstr "Maskelemeyi kaldır" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:210 msgid "shortcuts.v-distribute" msgstr "Dikey olarak dağıt" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:211 msgid "shortcuts.zoom-lense-decrease" msgstr "Görüntüyü küçült" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:212 msgid "shortcuts.zoom-lense-increase" msgstr "Görüntüyü büyült" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:213 msgid "shortcuts.zoom-selected" msgstr "Seçilene yakınlaştır" -#: src/app/main/ui/dashboard/team.cljs:771 +#: src/app/main/ui/dashboard/team.cljs msgid "team.webhooks.max-length" msgstr "Webhook adı en fazla 2048 karakter içermelidir." -#: src/app/main/ui/dashboard/files.cljs:158 +#: src/app/main/ui/dashboard/files.cljs msgid "title.dashboard.files" msgstr "%s - Penpot" -#: src/app/main/ui/dashboard/fonts.cljs:37 +#: src/app/main/ui/dashboard/fonts.cljs msgid "title.dashboard.font-providers" msgstr "Yazı Tipi Sağlayıcıları - %s - Penpot" -#: src/app/main/ui/dashboard/fonts.cljs:36 +#: src/app/main/ui/dashboard/fonts.cljs msgid "title.dashboard.fonts" msgstr "Yazı Tipleri - %s - Penpot" -#: src/app/main/ui/dashboard/projects.cljs:320 +#: src/app/main/ui/dashboard/projects.cljs msgid "title.dashboard.projects" msgstr "Projeler - %s - Penpot" -#: src/app/main/ui/dashboard/search.cljs:32 +#: src/app/main/ui/dashboard/search.cljs msgid "title.dashboard.search" msgstr "Ara - %s - Penpot" -#: src/app/main/ui/dashboard/libraries.cljs:44 +#: src/app/main/ui/dashboard/libraries.cljs msgid "title.dashboard.shared-libraries" msgstr "Paylaşılmış Kütüphaneler - %s - Penpot" -#: src/app/main/ui/auth/verify_token.cljs:68, src/app/main/ui/auth.cljs:54 +#: src/app/main/ui/auth/verify_token.cljs, src/app/main/ui/auth.cljs msgid "title.default" msgstr "Penpot - Takımlar için Özgür Tasarım" -#: src/app/main/ui/settings/access_tokens.cljs:292 +#: src/app/main/ui/settings/access-tokens.cljs msgid "title.settings.access-tokens" msgstr "Profil - Erişim belirteçleri" -#: src/app/main/ui/settings/feedback.cljs:110 +#: src/app/main/ui/settings/feedback.cljs msgid "title.settings.feedback" msgstr "Geri bildirimde bulun - Penpot" -#: src/app/main/ui/settings/options.cljs:80 +#: src/app/main/ui/settings/options.cljs msgid "title.settings.options" msgstr "Ayarlar - Penpot" -#: src/app/main/ui/settings/password.cljs:115 +#: src/app/main/ui/settings/password.cljs msgid "title.settings.password" msgstr "Parola - Penpot" -#: src/app/main/ui/settings/profile.cljs:115 +#: src/app/main/ui/settings/profile.cljs msgid "title.settings.profile" msgstr "Profil - Penpot" -#: src/app/main/ui/dashboard/team.cljs:727 +#: src/app/main/ui/dashboard/team.cljs msgid "title.team-invitations" msgstr "Davetler - %s - Penpot" -#: src/app/main/ui/dashboard/team.cljs:493 +#: src/app/main/ui/dashboard/team.cljs msgid "title.team-members" msgstr "Üyeler - %s - Penpot" -#: src/app/main/ui/dashboard/team.cljs:1036 +#: src/app/main/ui/dashboard/team.cljs msgid "title.team-settings" msgstr "Ayarlar - %s - Penpot" -#: src/app/main/ui/dashboard/team.cljs:989 msgid "title.team-webhooks" msgstr "Web kancaları - %s - Penpot" -#: src/app/main/ui/viewer.cljs:419 +#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs msgid "title.viewer" msgstr "%s - Görünüm modu - Penpot" -#: src/app/main/ui/workspace.cljs:190 +#: src/app/main/ui/workspace.cljs msgid "title.workspace" msgstr "%s - Penpot" -#: src/app/main/ui.cljs:144 msgid "viewer.breaking-change.description" msgstr "" "Bu paylaşılabilir bağlantı artık geçerli değil. Yeni bir tane oluşturun " "veya sahibinden yeni bir tane isteyin." -#: src/app/main/ui.cljs:143 msgid "viewer.breaking-change.message" msgstr "Üzgünüm!" -#: src/app/main/ui/viewer.cljs:569 +#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs msgid "viewer.empty-state" msgstr "Sayfada çalışma yüzeyi bulunamadı." -#: src/app/main/ui/viewer.cljs:574 +#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs msgid "viewer.frame-not-found" msgstr "Çalışma yüzeyi bulunamadı." -#: src/app/main/ui/viewer/header.cljs:336 msgid "viewer.header.comments-section" msgstr "Yorumlar (%s)" -#: src/app/main/ui/viewer/interactions.cljs:292 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.dont-show-interactions" msgstr "Etkileşimleri gösterme" -#: src/app/main/ui/viewer/header.cljs:188 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.fullscreen" msgstr "Tam Ekran" -#: src/app/main/ui/viewer/header.cljs:345 msgid "viewer.header.inspect-section" msgstr "İncele (%s)" -#: src/app/main/ui/viewer/interactions.cljs:282 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.interactions" msgstr "Etkileşimler" -#: src/app/main/ui/viewer/header.cljs:327 msgid "viewer.header.interactions-section" msgstr "Etkileşimler (%s)" -#: src/app/main/ui/viewer/share_link.cljs:187 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.share.copy-link" msgstr "Bağlantıyı kopyala" -#: src/app/main/ui/viewer/interactions.cljs:300 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.show-interactions" msgstr "Etkileşimleri göster" -#: src/app/main/ui/viewer/interactions.cljs:311 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.show-interactions-on-click" msgstr "Tıklamada etkileşimleri göster" -#: src/app/main/ui/viewer/header.cljs:231 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.sitemap" msgstr "Site haritası" -#: src/app/main/ui/dashboard/team.cljs:948 msgid "webhooks.last-delivery.success" msgstr "Son iletim başarılı oldu." -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:58 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.hcenter" msgstr "Yatay olarak ortaya hizala (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:74 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.hdistribute" msgstr "Yatayda dağıt (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:50 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.hleft" msgstr "Sola hizala (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:66 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.hright" msgstr "Sağa hizala (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:99 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.vbottom" msgstr "Alta hizala (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:91 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.vcenter" msgstr "Dikey olarak ortaya hizala (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:104 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.vdistribute" msgstr "Dikeyde dağıt (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:83 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.vtop" msgstr "Üste hizala (%s)" #: src/app/main/ui/workspace/sidebar/assets.cljs -#, unused msgid "workspace.assets.assets" msgstr "Varlıklar" -#: src/app/main/ui/workspace/sidebar/assets.cljs:134 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.box-filter-all" msgstr "Tüm varlıklar" -#: src/app/main/ui/dashboard/grid.cljs:130, src/app/main/ui/dashboard/grid.cljs:162, src/app/main/ui/workspace/sidebar/assets/colors.cljs:485, src/app/main/ui/workspace/sidebar/assets.cljs:150 +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.colors" msgstr "Renkler" -#: src/app/main/ui/dashboard/grid.cljs:126, src/app/main/ui/dashboard/grid.cljs:141, src/app/main/ui/workspace/sidebar/assets/components.cljs:513, src/app/main/ui/workspace/sidebar/assets.cljs:139 +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.components" msgstr "Bileşenler" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:131 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.create-group" msgstr "Grup oluştur" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:142 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.create-group-hint" msgstr "Ögeleriniz otomatik olarak \"grup adı / öge adı\" olarak adlandırılacak" -#: src/app/main/ui/workspace/context_menu.cljs:529, src/app/main/ui/workspace/sidebar/assets/colors.cljs:251, src/app/main/ui/workspace/sidebar/assets/components.cljs:577, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:424, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:443 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.delete" msgstr "Sil" -#: src/app/main/ui/workspace/context_menu.cljs:534, src/app/main/ui/workspace/sidebar/assets/components.cljs:572 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.duplicate" msgstr "Çoğalt" -#: src/app/main/ui/workspace/sidebar/assets/components.cljs:571 msgid "workspace.assets.duplicate-main" msgstr "Ana bileşeni çoğalt" -#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:247, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:439 +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.edit" msgstr "Düzenle" -#: src/app/main/ui/workspace/sidebar/assets.cljs:176 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.filter" msgstr "Filtrele" -#: src/app/main/ui/workspace/sidebar/assets/graphics.cljs:384, src/app/main/ui/workspace/sidebar/assets.cljs:145 +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.graphics" msgstr "Grafikler" -#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:255, src/app/main/ui/workspace/sidebar/assets/components.cljs:581, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:428, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:448 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.group" msgstr "Grup" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:141 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.group-name" msgstr "Grup adı" -#: src/app/main/ui/workspace/sidebar/assets.cljs:168 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.libraries" msgstr "Kütüphaneler" -#: src/app/main/ui/workspace/sidebar/assets/file_library.cljs:62, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:347 msgid "workspace.assets.local-library" msgstr "yerel kütüphane" -#: src/app/main/ui/workspace/sidebar/assets/file_library.cljs:295 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.not-found" msgstr "Varlık bulunmadı" -#, unused msgid "workspace.assets.open-library" msgstr "Kütüphane dosyasını aç" -#: src/app/main/ui/workspace/context_menu.cljs:532, src/app/main/ui/workspace/sidebar/assets/colors.cljs:243, src/app/main/ui/workspace/sidebar/assets/components.cljs:566, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:421, src/app/main/ui/workspace/sidebar/assets/groups.cljs:63, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:434 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.rename" msgstr "Yeniden adlandır" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:132 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.rename-group" msgstr "Grubu yeniden adlandır" -#: src/app/main/ui/workspace/sidebar/assets.cljs:173 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.search" msgstr "Varlık ara" #: src/app/main/ui/workspace/sidebar/assets.cljs -#, unused msgid "workspace.assets.selected-count" msgid_plural "workspace.assets.selected-count" msgstr[0] "%s öge seçildi" msgstr[1] "%s öge seçildi" #: src/app/main/ui/workspace/sidebar/assets.cljs -#, unused msgid "workspace.assets.shared-library" msgstr "Paylaşılan kütüphane" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:221 +#: src/app/main/ui/workspace/sidebar/assets/common.cljs msgid "workspace.assets.sidebar.components" msgid_plural "workspace.assets.sidebar.components" msgstr[0] "1 bileşen" msgstr[1] "%s bileşen" -#: src/app/main/ui/workspace/sidebar/assets.cljs:193 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.sort" msgstr "Sırala" -#: src/app/main/ui/dashboard/grid.cljs:134, src/app/main/ui/dashboard/grid.cljs:189, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:397, src/app/main/ui/workspace/sidebar/assets.cljs:155 +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.typography" msgstr "Tipografiler" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused msgid "workspace.assets.typography.font-id" msgstr "Yazı tipi" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:505 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.font-size" msgstr "Boyut" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:501 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.font-variant-id" msgstr "Çeşit" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:523 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.go-to-edit" msgstr "Düzenlemek için biçim kütüphane dosyasına gidin" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:513 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.letter-spacing" msgstr "Harf Boşluğu" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:509 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.line-height" msgstr "Satır Yüksekliği" -#: src/app/main/ui/dashboard/grid.cljs:199, src/app/main/ui/workspace/libraries.cljs:461, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:464, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:489, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:596, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:615 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, +#: src/app/main/ui/inspect/attributes/text.cljs, +#: src/app/main/ui/inspect/attributes/text.cljs msgid "workspace.assets.typography.sample" msgstr "Ag" -#, unused msgid "workspace.assets.typography.text-styles" msgstr "Metin biçimleri" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:517 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.text-transform" msgstr "Metin Dönüşümü" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:66 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.ungroup" msgstr "Grubu dağıt" -#: src/app/main/ui/workspace/context_menu.cljs:634 msgid "workspace.context-menu.grid-cells.area" msgstr "Alan oluştur" -#: src/app/main/ui/workspace/context_menu.cljs:637 msgid "workspace.context-menu.grid-cells.create-board" msgstr "Çalışma yüzeyi oluştur" -#: src/app/main/ui/workspace/context_menu.cljs:629 msgid "workspace.context-menu.grid-cells.merge" msgstr "Hücreleri birleştir" -#: src/app/main/ui/workspace/context_menu.cljs:594 msgid "workspace.context-menu.grid-track.column.add-after" msgstr "Sağa 1 sütun ekle" -#: src/app/main/ui/workspace/context_menu.cljs:593 msgid "workspace.context-menu.grid-track.column.add-before" msgstr "Sola 1 sütun ekle" -#: src/app/main/ui/workspace/context_menu.cljs:595 msgid "workspace.context-menu.grid-track.column.delete" msgstr "Sütunu sil" -#: src/app/main/ui/workspace/context_menu.cljs:596 msgid "workspace.context-menu.grid-track.column.delete-shapes" msgstr "Sütun ve şekilleri sil" -#: src/app/main/ui/workspace/context_menu.cljs:592 msgid "workspace.context-menu.grid-track.column.duplicate" msgstr "Yinelenen sütun" -#: src/app/main/ui/workspace/context_menu.cljs:601 msgid "workspace.context-menu.grid-track.row.add-after" msgstr "Aşağıya 1 satır ekle" -#: src/app/main/ui/workspace/context_menu.cljs:600 msgid "workspace.context-menu.grid-track.row.add-before" msgstr "Yukarıya 1 satır ekle" -#: src/app/main/ui/workspace/context_menu.cljs:602 msgid "workspace.context-menu.grid-track.row.delete" msgstr "Satırı sil" -#: src/app/main/ui/workspace/context_menu.cljs:603 msgid "workspace.context-menu.grid-track.row.delete-shapes" msgstr "Satır ve şekilleri sil" -#: src/app/main/ui/workspace/context_menu.cljs:599 msgid "workspace.context-menu.grid-track.row.duplicate" msgstr "Yinelenen satır" -#: src/app/main/ui/workspace/sidebar/layers.cljs:525 msgid "workspace.focus.focus-mode" msgstr "Odaklanma modu" -#: src/app/main/ui/workspace/context_menu.cljs:287, src/app/main/ui/workspace/context_menu.cljs:553 msgid "workspace.focus.focus-off" msgstr "Odaklanma kapalı" -#: src/app/main/ui/workspace/context_menu.cljs:286 msgid "workspace.focus.focus-on" msgstr "Odaklanma açık" -#, unused msgid "workspace.focus.selection" msgstr "Seçim" -#: src/app/util/color.cljs:34 +#: src/app/main/data/workspace/libraries.cljs, +#: src/app/main/ui/components/color_bullet.cljs msgid "workspace.gradients.linear" msgstr "Doğrusal degrade" -#: src/app/util/color.cljs:35 +#: src/app/main/data/workspace/libraries.cljs, +#: src/app/main/ui/components/color_bullet.cljs msgid "workspace.gradients.radial" msgstr "Dairesel degrade" -#: src/app/main/ui/workspace/main_menu.cljs:238 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.disable-dynamic-alignment" msgstr "Dinamik hizalamayı devre dışı bırak" -#: src/app/main/ui/workspace/main_menu.cljs:192 msgid "workspace.header.menu.disable-scale-content" msgstr "Orantılı ölçeklendirmeyi devre dışı bırak" #: src/app/main/ui/workspace/header.cljs -#, unused msgid "workspace.header.menu.disable-scale-text" msgstr "Metin ölçeklendirmeyi devre dışı bırak" -#: src/app/main/ui/workspace/main_menu.cljs:223 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.disable-snap-guides" msgstr "Kılavuzlara tutturmayı devre dışı bırak" -#: src/app/main/ui/workspace/main_menu.cljs:253 msgid "workspace.header.menu.disable-snap-pixel-grid" msgstr "Piksele tutturmayı devre dışı bırak" -#: src/app/main/ui/workspace/main_menu.cljs:207 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.disable-snap-ruler-guides" msgstr "Cetvel kılavuzlarına tutturmayı devre dışı bırak" -#: src/app/main/ui/workspace/main_menu.cljs:239 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.enable-dynamic-alignment" msgstr "Dinamik hizalamayı etkinleştir" -#: src/app/main/ui/workspace/main_menu.cljs:193 msgid "workspace.header.menu.enable-scale-content" msgstr "Orantılı ölçeklendirmeyi etkinleştir" #: src/app/main/ui/workspace/header.cljs -#, unused msgid "workspace.header.menu.enable-scale-text" msgstr "Metin ölçeklendirmeyi etkinleştir" -#: src/app/main/ui/workspace/main_menu.cljs:224 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.enable-snap-guides" msgstr "Kılavuzlara tuttur" -#: src/app/main/ui/workspace/main_menu.cljs:254 msgid "workspace.header.menu.enable-snap-pixel-grid" msgstr "Piksele tutturmayı etkinleştir" -#: src/app/main/ui/workspace/main_menu.cljs:208 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.enable-snap-ruler-guides" msgstr "Cetvel kılavuzlarına tuttur" -#: src/app/main/ui/workspace/main_menu.cljs:382 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.hide-artboard-names" msgstr "Çalışma yüzeyi adlarını gizle" -#: src/app/main/ui/workspace/main_menu.cljs:336 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.hide-guides" msgstr "Kılavuzları gizle" -#: src/app/main/ui/workspace/main_menu.cljs:353 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.hide-palette" msgstr "Renk paletini gizle" -#: src/app/main/ui/workspace/main_menu.cljs:394 msgid "workspace.header.menu.hide-pixel-grid" msgstr "Piksel ızgarasını gizle" -#: src/app/main/ui/workspace/main_menu.cljs:320 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.hide-rules" msgstr "Cetvelleri gizle" -#: src/app/main/ui/workspace/main_menu.cljs:367 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.hide-textpalette" msgstr "Yazı tipi paletini gizle" -#: src/app/main/ui/workspace/main_menu.cljs:731 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.edit" msgstr "Düzenle" -#: src/app/main/ui/workspace/main_menu.cljs:720 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.file" msgstr "Dosya" -#: src/app/main/ui/workspace/main_menu.cljs:777 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.help-info" msgstr "Yardım ve bilgi" -#: src/app/main/ui/workspace/main_menu.cljs:753 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.preferences" msgstr "Tercihler" -#: src/app/main/ui/workspace/main_menu.cljs:742 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.view" msgstr "Görünüm" -#: src/app/main/ui/workspace/main_menu.cljs:459 msgid "workspace.header.menu.redo" msgstr "Tekrarla" -#: src/app/main/ui/workspace/main_menu.cljs:432 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.select-all" msgstr "Tümünü seç" -#: src/app/main/ui/workspace/main_menu.cljs:383 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.show-artboard-names" msgstr "Çalışma yüzeylerinin adlarını göster" -#: src/app/main/ui/workspace/main_menu.cljs:337 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.show-guides" msgstr "Kılavuzları göster" -#: src/app/main/ui/workspace/main_menu.cljs:354 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.show-palette" msgstr "Renk paletini göster" -#: src/app/main/ui/workspace/main_menu.cljs:395 msgid "workspace.header.menu.show-pixel-grid" msgstr "Piksel ızgarasını göster" -#: src/app/main/ui/workspace/main_menu.cljs:321 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.show-rules" msgstr "Cetvelleri göster" -#: src/app/main/ui/workspace/main_menu.cljs:368 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.show-textpalette" msgstr "Yazı tipi paletini göster" -#: src/app/main/ui/workspace/main_menu.cljs:279 msgid "workspace.header.menu.toggle-dark-theme" msgstr "Koyu temaya geç" -#: src/app/main/ui/workspace/main_menu.cljs:278 msgid "workspace.header.menu.toggle-light-theme" msgstr "Açık temaya geç" -#: src/app/main/ui/workspace/main_menu.cljs:446 msgid "workspace.header.menu.undo" msgstr "Geri al" -#: src/app/main/ui/viewer/header.cljs:98, src/app/main/ui/workspace/right_header.cljs:120 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.reset-zoom" msgstr "Sıfırla" #: src/app/main/ui/workspace/header.cljs -#, unused msgid "workspace.header.save-error" msgstr "Kaydetme hatası" -#: src/app/main/ui/workspace/right_header.cljs:52 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.saved" msgstr "Kaydedildi" #: src/app/main/ui/workspace/header.cljs -#, unused msgid "workspace.header.saving" msgstr "Kaydediliyor" -#: src/app/main/ui/workspace/right_header.cljs:42, src/app/main/ui/workspace/right_header.cljs:47 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.unsaved" msgstr "Kaydedilmemiş değişiklikler" -#: src/app/main/ui/workspace/right_header.cljs:239 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.viewer" msgstr "Görünüm modu (%s)" -#: src/app/main/ui/viewer/header.cljs:79, src/app/main/ui/workspace/right_header.cljs:103 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom" msgstr "Yakınlaştırma" -#: src/app/main/ui/viewer/header.cljs:109 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom-fill" msgstr "Doldur - Doldurmak için ölçeklendir" -#: src/app/main/ui/viewer/header.cljs:102 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom-fit" msgstr "Sığdır - Sığdırmak için küçült" -#: src/app/main/ui/workspace/right_header.cljs:123 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom-fit-all" msgstr "Tümüne uydurmak için yakınlaştır" -#: src/app/main/ui/viewer/header.cljs:116 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom-full-screen" msgstr "Tam ekran" -#: src/app/main/ui/workspace/right_header.cljs:130 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom-selected" msgstr "Seçilene yakınlaştır" -#: src/app/main/ui/workspace/sidebar/options/menus/grid_cell.cljs:273, src/app/main/ui/workspace/sidebar/options/menus/grid_cell.cljs:275, src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:612 msgid "workspace.layout_grid.editor.options.edit-grid" msgstr "Izgarayı düzenle" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:1280 msgid "workspace.layout_grid.editor.options.exit" msgstr "Çıkış" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:483 msgid "workspace.layout_grid.editor.padding.expand" msgstr "4 taraflı dolgu seçeneklerini göster" -#: src/app/main/ui/workspace/viewport/grid_layout_editor.cljs:59 msgid "workspace.layout_grid.editor.title" msgstr "Düzenleme ızgarası" -#: src/app/main/ui/workspace/viewport/grid_layout_editor.cljs:65 msgid "workspace.layout_grid.editor.top-bar.done" msgstr "Bitti" -#: src/app/main/ui/workspace/viewport/grid_layout_editor.cljs:62 msgid "workspace.layout_grid.editor.top-bar.locate" msgstr "Bul" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:1306 msgid "workspace.layout_grid.editor.top-bar.locate.tooltip" msgstr "Izgara düzenini bul" #: src/app/main/ui/workspace/libraries.cljs -#, unused msgid "workspace.libraries.add" msgstr "Ekle" -#: src/app/main/ui/workspace/libraries.cljs:80, src/app/main/ui/workspace/libraries.cljs:99 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.colors" msgstr "%s renk" -#: src/app/main/ui/workspace/color_palette.cljs:126 +#: src/app/main/ui/workspace/colorpalette.cljs msgid "workspace.libraries.colors.empty-palette" msgstr "Kütüphanenizde henüz renk stili yok" -#: src/app/main/ui/workspace/text_palette.cljs:150 +#: src/app/main/ui/workspace/textpalette.cljs msgid "workspace.libraries.colors.empty-typography-palette" msgstr "Kütüphanenizde henüz tipografi stili yok" -#: src/app/main/ui/workspace/color_palette_ctx_menu.cljs:60, src/app/main/ui/workspace/colorpicker/libraries.cljs:73, src/app/main/ui/workspace/text_palette_ctx_menu.cljs:50 +#: src/app/main/ui/workspace/colorpicker/libraries.cljs, +#: src/app/main/ui/workspace/colorpalette.cljs msgid "workspace.libraries.colors.file-library" msgstr "Dosya kütüphanesi" #: src/app/main/ui/workspace/colorpicker.cljs -#, unused msgid "workspace.libraries.colors.hsv" msgstr "HSV" -#: src/app/main/ui/workspace/color_palette_ctx_menu.cljs:82, src/app/main/ui/workspace/colorpicker/libraries.cljs:72 +#: src/app/main/ui/workspace/colorpicker/libraries.cljs, +#: src/app/main/ui/workspace/colorpalette.cljs msgid "workspace.libraries.colors.recent-colors" msgstr "Son renkler" #: src/app/main/ui/workspace/colorpicker.cljs -#, unused msgid "workspace.libraries.colors.rgb-complementary" msgstr "RGB Tamamlayıcı" #: src/app/main/ui/workspace/colorpicker.cljs -#, unused msgid "workspace.libraries.colors.rgba" msgstr "RGBA" -#: src/app/main/ui/workspace/colorpicker.cljs:372 +#: src/app/main/ui/workspace/colorpicker.cljs msgid "workspace.libraries.colors.save-color" msgstr "Renk biçimini kaydet" -#: src/app/main/ui/workspace/libraries.cljs:74, src/app/main/ui/workspace/libraries.cljs:91 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.components" msgstr "%s bileşen" -#: src/app/main/ui/workspace/libraries.cljs:215 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.file-library" msgstr "Dosya kütüphanesi" -#: src/app/main/ui/workspace/libraries.cljs:77, src/app/main/ui/workspace/libraries.cljs:95 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.graphics" msgstr "%s grafik" -#: src/app/main/ui/workspace/libraries.cljs:209 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.in-this-file" msgstr "BU DOSYADAKİ KÜTÜPHANELER" -#: src/app/main/ui/workspace/libraries.cljs:526, src/app/main/ui/workspace/libraries.cljs:531 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.libraries" msgstr "KÜTÜPHANELER" #: src/app/main/ui/workspace/libraries.cljs -#, unused msgid "workspace.libraries.library" msgstr "KÜTÜPHANE" -#: src/app/main/ui/workspace/libraries.cljs:382 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.library-updates" msgstr "KÜTÜPHANE GÜNCELLEMELERİ" -#: src/app/main/ui/workspace/libraries.cljs:290 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.loading" msgstr "Yükleniyor…" -#: src/app/main/ui/workspace/libraries.cljs:380 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.no-libraries-need-sync" msgstr "Güncelleme gerektiren Paylaşılmış Kütüphane bulunmuyor" -#: src/app/main/ui/workspace/libraries.cljs:299 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.no-matches-for" msgstr "“%s“ için eşleşme bulunmadı" -#: src/app/main/ui/workspace/libraries.cljs:296 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.no-shared-libraries-available" msgstr "Paylaşılmış Kütüphane bulunmuyor" -#: src/app/main/ui/workspace/libraries.cljs:260 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.search-shared-libraries" msgstr "Paylaşılmış kütüphane ara" -#: src/app/main/ui/workspace/libraries.cljs:256 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.shared-libraries" msgstr "PAYLAŞILMIŞ KÜTÜPHANELER" -#: src/app/main/ui/workspace/libraries.cljs:282 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.shared-library-btn" msgstr "Kütüphaneyi bağla" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:308 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.libraries.text.multiple-typography" msgstr "Çoklu tipografiler" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:311 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.libraries.text.multiple-typography-tooltip" msgstr "Tüm tipografileri ayır" -#: src/app/main/ui/workspace/libraries.cljs:83, src/app/main/ui/workspace/libraries.cljs:103 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.typography" msgstr "%s tipografi" -#: src/app/main/ui/workspace/libraries.cljs:249 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.unlink-library-btn" msgstr "Kütüphanenin bağlantısını kes" -#: src/app/main/ui/workspace/libraries.cljs:402 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.update" msgstr "Güncelle" -#: src/app/main/ui/workspace/libraries.cljs:477 +#: src/app/main/data/workspace/libraries.cljs msgid "workspace.libraries.update.see-all-changes" msgstr "tüm değişiklikleri gör" -#: src/app/main/ui/workspace/libraries.cljs:536 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.updates" msgstr "GÜNCELLEMELER" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:737 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.add-interaction" msgstr "Etkileşimler eklemek için + düğmesine tıklayın." -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:86, src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:102 +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs msgid "workspace.options.blur-options.title" msgstr "Bulanıklık" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:85 +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs msgid "workspace.options.blur-options.title.group" msgstr "Grup bulanıklığı" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:84 +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs msgid "workspace.options.blur-options.title.multiple" msgstr "Seçim bulanıklığı" -#: src/app/main/ui/workspace/sidebar/options/page.cljs:32, src/app/main/ui/workspace/sidebar/options/page.cljs:39 +#: src/app/main/ui/workspace/sidebar/options/page.cljs msgid "workspace.options.canvas-background" msgstr "Tuval arka planı" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:548 msgid "workspace.options.clip-content" msgstr "İçeriği kırp" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:600, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:605 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs msgid "workspace.options.component" msgstr "Bileşen" -#: src/app/main/ui/viewer/inspect/annotation.cljs:19, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:181 msgid "workspace.options.component.annotation" msgstr "Açıklama" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:610 msgid "workspace.options.component.copy" msgstr "Kopyala" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:173 msgid "workspace.options.component.create-annotation" msgstr "Bir açıklama oluştur" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:172 msgid "workspace.options.component.edit-annotation" msgstr "Bir açıklamayı düzenle" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:609 msgid "workspace.options.component.main" msgstr "Ana bileşen" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:427 msgid "workspace.options.component.swap" msgstr "Bileşeni değiştir" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:471 msgid "workspace.options.component.swap.empty" msgstr "Bu kütüphanede henüz varlık yok" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:163 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints" msgstr "Kısıtlamalar" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:150 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.bottom" msgstr "Alt" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:141, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:152 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.center" msgstr "Merkez" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:229 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.fix-when-scrolling" msgstr "Kaydırırken sabit" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:138 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.left" msgstr "Sol" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:140 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.leftright" msgstr "Sol ve Sağ" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:139 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.right" msgstr "Sağ" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:142, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:153 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.scale" msgstr "Ölçeklendir" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:149 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.top" msgstr "Üst" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:151 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.topbottom" msgstr "Üst ve Alt" -#: src/app/main/ui/workspace/sidebar/options.cljs:112 +#: src/app/main/ui/workspace/sidebar/options.cljs msgid "workspace.options.design" msgstr "Tasarım" -#: src/app/main/ui/viewer/inspect/exports.cljs:139 +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, +#: src/app/main/ui/inspect/exports.cljs msgid "workspace.options.export" msgstr "Dışa aktar" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, +#: src/app/main/ui/inspect/exports.cljs msgid "workspace.options.export-multiple" msgstr "Seçimi dışa aktar" -#: src/app/main/ui/viewer/inspect/exports.cljs:195, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:237 +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs msgid "workspace.options.export-object" msgid_plural "workspace.options.export-object" msgstr[0] "1 ögeyi dışa aktar" msgstr[1] "%s ögeyi dışa aktar" -#: src/app/main/ui/viewer/inspect/exports.cljs:178, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:219 +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs msgid "workspace.options.export.suffix" msgstr "Son ek" -#: src/app/main/ui/export.cljs:240 +#: 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.exporting-complete" msgstr "Dışa aktarma tamamlandı" -#: src/app/main/ui/export.cljs:172, src/app/main/ui/export.cljs:241, src/app/main/ui/viewer/inspect/exports.cljs:194, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:236 +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, +#: src/app/main/ui/inspect/exports.cljs msgid "workspace.options.exporting-object" msgstr "Dışa aktarılıyor…" -#: src/app/main/ui/export.cljs:239 +#: 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.exporting-object-error" msgstr "Dışa aktarılamadı" -#: src/app/main/ui/export.cljs:242 +#: 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.exporting-object-slow" msgstr "Dışa aktarma beklenmedik şekilde yavaş" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:49, src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:174 +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs msgid "workspace.options.fill" msgstr "Doldur" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:178 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.flows.add-flow-start" msgstr "Akış başlangıcı ekle" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:174 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.flows.flow" msgstr "Akış" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -#, unused msgid "workspace.options.flows.flow-start" msgstr "Akış başlangıcı" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:161 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.flows.flow-starts" msgstr "Akış başlar" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:29 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.auto" msgstr "Otomatik" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:157 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.column" msgstr "Sütunlar" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.grid-title" msgstr "Izgara" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:196, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:237 msgid "workspace.options.grid.params.color" msgstr "Renk" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.params.columns" msgstr "Sütunlar" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:259 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.gutter" msgstr "Aralık" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:246 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.height" msgstr "Yükseklik" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:270 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.margin" msgstr "Kenar Boşluğu" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.params.rows" msgstr "Satırlar" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:216, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:290 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.set-default" msgstr "Varsayılan olarak belirle" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.params.size" msgstr "Boyut" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.params.type" msgstr "Tür" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:231 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.bottom" msgstr "Alt" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:229 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.center" msgstr "Orta" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:228 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.left" msgstr "Sol" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:232 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.right" msgstr "Sağ" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:225 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.stretch" msgstr "Ger" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:227 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.top" msgstr "Üst" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:211, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:288 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.use-default" msgstr "Varsayılanı kullan" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:247 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.width" msgstr "Genişlik" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:158 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.row" msgstr "Satırlar" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:156 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.square" msgstr "Kare" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:48 +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs msgid "workspace.options.group-fill" msgstr "Grubu doldur" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:42 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.group-stroke" msgstr "Grubu çiz" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:310 msgid "workspace.options.guides.title" msgstr "Kılavuzlar" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:406 msgid "workspace.options.height" msgstr "Yükseklik" -#: src/app/main/ui/workspace/sidebar/options.cljs:161 msgid "workspace.options.inspect" msgstr "İncele" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:468 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-action" msgstr "Eylem" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:41, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:367 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-after-delay" msgstr "Gecikmeden sonra" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:614 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-animation" msgstr "Canlandırma" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:406 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-animation-dissolve" msgstr "Çöz" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:405 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-animation-none" msgstr "Hiçbiri" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:412 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-animation-push" msgstr "İt" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:407 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-animation-slide" msgstr "Kaydır" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:391 msgid "workspace.options.interaction-auto" msgstr "otomatik" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:604 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-background" msgstr "Arka plan üst katmanı ekle" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:590 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-close-outside" msgstr "Dışarıya tıklandığında kapat" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:372 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-close-overlay" msgstr "Üst katmanı kapat" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:56 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-close-overlay-dest" msgstr "Üst katmanı kapat: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:456 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-delay" msgstr "Gecikme" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:478 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-destination" msgstr "Hedef" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:661 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-duration" msgstr "Süre" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:674 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing" msgstr "Yumuşatma" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:416 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing-ease" msgstr "Yumuşat" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:417 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing-ease-in" msgstr "Yumuşak giriş" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:419 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing-ease-in-out" msgstr "Yumuşak giriş çıkış" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:418 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing-ease-out" msgstr "Yumuşak çıkış" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:415 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing-linear" msgstr "Doğrusal" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -#, unused msgid "workspace.options.interaction-in" msgstr "Giriş" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:39, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:364 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-mouse-enter" msgstr "Fare girişi" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:40, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:365 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-mouse-leave" msgstr "Fare çıkışı" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:458, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:459, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:464, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:663, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:665, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:669 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-ms" msgstr "ms" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:369 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-navigate-to" msgstr "Git" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:50 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-navigate-to-dest" msgstr "Şuraya gidin: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:51, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:53, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:55, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:380 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-none" msgstr "(ayarlanmadı)" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:691 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-offset-effect" msgstr "Uzaklık efekti" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:35, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:360 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-on-click" msgstr "Tıklandığında" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:370 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-open-overlay" msgstr "Üst katmanı aç" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:52 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-open-overlay-dest" msgstr "Üst katmanı aç: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:59, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:374 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-open-url" msgstr "URL'yi aç" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -#, unused msgid "workspace.options.interaction-out" msgstr "Çıkış" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:403 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-bottom-center" msgstr "Alt orta" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:401 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-bottom-left" msgstr "Sol alt" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:402 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-bottom-right" msgstr "Sağ alt" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:397 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-center" msgstr "Merkez" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:396 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-manual" msgstr "El ile" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:400 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-top-center" msgstr "Üst orta" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:398 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-top-left" msgstr "Sol üst" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:399 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-top-right" msgstr "Sağ üst" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:524 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-position" msgstr "Konum" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:494 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-preserve-scroll" msgstr "Kaydırma konumunu koru" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:58, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:373 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-prev-screen" msgstr "Önceki ekran" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:515 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-relative-to" msgstr "Göreceli" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:57, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:379, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:393, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:394 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-self" msgstr "kendi" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:371 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-toggle-overlay" msgstr "Üst katmanı değiştir" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:54 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-toggle-overlay-dest" msgstr "Üst katmanı değiştir: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:445 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-trigger" msgstr "Tetikle" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:503 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-url" msgstr "URL" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:37, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:362 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-while-hovering" msgstr "Üzerinde Gezinirken" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:38, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:363 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-while-pressing" msgstr "Basarken" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:724 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interactions" msgstr "Etkileşimler" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:137 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.color" msgstr "Renk" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:126 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.color-burn" msgstr "Renk yanması" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:129 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.color-dodge" msgstr "Renk atlatması" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:124 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.darken" msgstr "Karart" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:133 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.difference" msgstr "Fark" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:134 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.exclusion" msgstr "Dışla" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:132 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.hard-light" msgstr "Sert ışık" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:135 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.hue" msgstr "Ton" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:127 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.lighten" msgstr "Aydınlat" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:138 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.luminosity" msgstr "Parlaklık" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:125 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.multiply" msgstr "Çoğalt" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:123 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.normal" msgstr "Normal" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:130 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.overlay" msgstr "Üst katman" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:136 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.saturation" msgstr "Doygunluk" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:128 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.screen" msgstr "Ekran" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:131 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.soft-light" msgstr "Yumuşak ışık" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -#, unused msgid "workspace.options.layer-options.title" msgstr "Katman" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -#, unused msgid "workspace.options.layer-options.title.group" msgstr "Katman grubu" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -#, unused msgid "workspace.options.layer-options.title.multiple" msgstr "Seçili katmanlar" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout-item.advanced-ops" msgstr "Gelişmiş seçenekler" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:564 +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs msgid "workspace.options.layout-item.layout-item-max-h" msgstr "Azami Yükseklik" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:531 +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs msgid "workspace.options.layout-item.layout-item-max-w" msgstr "Azami Genişlik" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:548 +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs msgid "workspace.options.layout-item.layout-item-min-h" msgstr "Asgari Yükseklik" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:515 +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs msgid "workspace.options.layout-item.layout-item-min-w" msgstr "Asgari Genişlik" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout-item.title.layout-item-max-h" msgstr "Azami yükseklik" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout-item.title.layout-item-max-w" msgstr "Azami genişlik" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout-item.title.layout-item-min-h" msgstr "Asgari yükseklik" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout-item.title.layout-item-min-w" msgstr "Asgari genişlik" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.bottom" msgstr "Alt" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.direction.column" msgstr "Sütun" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.direction.column-reverse" msgstr "Ters sütun" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.direction.row" msgstr "Satır" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.direction.row-reverse" msgstr "Ters satır" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.gap" msgstr "Boşluk" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.left" msgstr "Sol" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout.margin" msgstr "Kenar Boşluğu" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout.margin-all" msgstr "Tüm kenarlar" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout.margin-simple" msgstr "Basit kenar boşluğu" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.packed" msgstr "paketlenmiş" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.padding" msgstr "Dolgu" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.padding-all" msgstr "Tüm kenarlar" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.padding-simple" msgstr "Basit dolgu" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.right" msgstr "Sağ" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.space-around" msgstr "etrafında boşluk" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.space-between" msgstr "arasında boşluk" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.top" msgstr "Üst" -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:146 +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs msgid "workspace.options.more-colors" msgstr "Daha fazla renk" -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:123 +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs msgid "workspace.options.more-lib-colors" msgstr "Daha fazla kütüphane rengi" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:161 msgid "workspace.options.opacity" msgstr "Opaklık" -#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.position" msgstr "Konum" -#: src/app/main/ui/workspace/sidebar/options.cljs:157 +#: src/app/main/ui/workspace/sidebar/options.cljs msgid "workspace.options.prototype" msgstr "Prototip" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:469, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:481 msgid "workspace.options.radius" msgstr "Yarıçap" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:513 +#: 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:522 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.radius-bottom-right" msgstr "Sağ alt" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:495 +#: 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:504 +#: 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:532 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.radius.all-corners" msgstr "Tüm köşeler" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:533 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.radius.single-corners" msgstr "Bireysel köşeler" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:183 msgid "workspace.options.recent-fonts" msgstr "Son kullanılanlar" -#: src/app/main/ui/export.cljs:284 +#: 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 "Yeniden dene" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:451 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.rotation" msgstr "Döndür" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:180 msgid "workspace.options.search-font" msgstr "Yazı tipi ara" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:741 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.select-a-shape" msgstr "" "Diğer çalışma yüzeyine bağlantı taşımak için bir şekil, çalışma yüzeyi ya " "da grup seçin." -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:105 +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs msgid "workspace.options.selection-color" msgstr "Seçilen renkler" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:47 +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs msgid "workspace.options.selection-fill" msgstr "Seçimi doldur" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:41 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.selection-stroke" msgstr "Seçimi çiz" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:40, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:198, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:200 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.blur" msgstr "Bulanıklık" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:238 msgid "workspace.options.shadow-options.color" msgstr "Gölge rengi" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:144 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.drop-shadow" msgstr "Kabartı gölgesi" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:145 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.inner-shadow" msgstr "İç gölge" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:38, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:186 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.offsetx" msgstr "X" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:39, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:224 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.offsety" msgstr "Y" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:41, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:211, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:213 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.spread" msgstr "Yayılma" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:296 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.title" msgstr "Gölge" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:295 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.title.group" msgstr "Gölge grubu" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:294 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.title.multiple" msgstr "Gölge seçimi" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:193 +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs msgid "workspace.options.show-fill-on-export" msgstr "Dışa aktarmalarda göster" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:562 msgid "workspace.options.show-in-viewer" msgstr "Görünüm modunda göster" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:162 +#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.size" msgstr "Boyut" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:355 +#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs msgid "workspace.options.size-presets" msgstr "Boyut ön ayarları" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:43 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke" msgstr "Çerçeve" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -#, unused msgid "workspace.options.stroke-cap.circle-marker" msgstr "Daire işaretleyici" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:129 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.circle-marker-short" msgstr "Daire" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -#, unused msgid "workspace.options.stroke-cap.diamond-marker" msgstr "Elmas işaretleyici" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:130 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.diamond-marker-short" msgstr "Elmas" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -#, unused msgid "workspace.options.stroke-cap.line-arrow" msgstr "Çizgi oku" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:126 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.line-arrow-short" msgstr "Ok" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:124 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.none" msgstr "Hiçbiri" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:132 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.round" msgstr "Yuvarlak" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:133 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.square" msgstr "Kare" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -#, unused msgid "workspace.options.stroke-cap.square-marker" msgstr "Kare işaretleyici" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:128 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.square-marker-short" msgstr "Dikdörtgen" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -#, unused msgid "workspace.options.stroke-cap.triangle-arrow" msgstr "Üçgen ok" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:127 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.triangle-arrow-short" msgstr "Üçgen" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:192 msgid "workspace.options.stroke-color" msgstr "Çerçeve rengi" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:165 msgid "workspace.options.stroke-width" msgstr "Çerçeve genişliği" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:87 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.center" msgstr "Merkez" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:105 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.dashed" msgstr "Çizgili" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:104 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.dotted" msgstr "Noktalı" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:88 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.inner" msgstr "İçinde" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:106 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.mixed" msgstr "Karışık" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:89 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.outer" msgstr "Dışında" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:103 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.solid" msgstr "Katı" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:115 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.align-bottom" msgstr "Alta hizala" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:111 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.align-middle" msgstr "Merkeze hizala" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:107 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.align-top" msgstr "Üste hizala" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:82 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.direction-ltr" msgstr "Soldan sağa" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:87 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.direction-rtl" msgstr "Sağdan sola" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:149 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.grow-auto-height" msgstr "Otomatik yükseklik" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:145 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.grow-auto-width" msgstr "Otomatik genişlik" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:141 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.grow-fixed" msgstr "Sabit" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:381 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.options.text-options.letter-spacing" msgstr "Harf Aralıkları" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:364 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.options.text-options.line-height" msgstr "Satır yüksekliği" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused msgid "workspace.options.text-options.lowercase" msgstr "Küçük harf" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.options.text-options.none" msgstr "Hiçbiri" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:176 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.strikethrough" msgstr "Üstü çizili (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:51 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.text-align-center" msgstr "Ortaya hizala (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:59 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.text-align-justify" msgstr "İki yana yasla (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:47 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.text-align-left" msgstr "Sola hizala (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:55 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.text-align-right" msgstr "Sağa hizala (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:189 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.title" msgstr "Metin" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:188 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.title-group" msgstr "Grup metni" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:187 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.title-selection" msgstr "Metin seçimi" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused msgid "workspace.options.text-options.titlecase" msgstr "İlk harfi büyük" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:171 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.underline" msgstr "Altı Çizili (%s)" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused msgid "workspace.options.text-options.uppercase" msgstr "Büyük Harf" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:745 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.use-play-button" msgstr "Prototip görünümünü çalıştırmak için başlıktaki oynatma düğmesini kullan." -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:395 msgid "workspace.options.width" msgstr "Genişlik" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:427 msgid "workspace.options.x" msgstr "X ekseni" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:438 msgid "workspace.options.y" msgstr "Y ekseni" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:167 msgid "workspace.path.actions.add-node" msgstr "Düğüm ekle (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:174 msgid "workspace.path.actions.delete-node" msgstr "Düğüm sil (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:152 msgid "workspace.path.actions.draw-nodes" msgstr "Düğüm çiz (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:189 msgid "workspace.path.actions.join-nodes" msgstr "Düğümleri birleştir (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:204 msgid "workspace.path.actions.make-corner" msgstr "Köşeye (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:211 msgid "workspace.path.actions.make-curve" msgstr "Eğriye (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:182 msgid "workspace.path.actions.merge-nodes" msgstr "Düğümleri birleştir (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:159 msgid "workspace.path.actions.move-nodes" msgstr "Düğümleri taşı (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:196 msgid "workspace.path.actions.separate-nodes" msgstr "Düğümleri ayır (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:218 msgid "workspace.path.actions.snap-nodes" msgstr "Düğümleri tuttur (%s)" -#: src/app/main/ui/workspace/plugins.cljs:55 -msgid "workspace.plugins.button-open" -msgstr "Aç" - -#: src/app/main/ui/workspace/plugins.cljs:164 -msgid "workspace.plugins.empty-plugins" -msgstr "Henüz eklenti kurulmadı" - -#: src/app/main/ui/workspace/plugins.cljs:157 -msgid "workspace.plugins.error.url" -msgstr "Eklenti yok veya URL doğru değil." - -#: src/app/main/ui/workspace/plugins.cljs:153 -msgid "workspace.plugins.install" -msgstr "Kur" - -#: src/app/main/ui/workspace/plugins.cljs:170 -msgid "workspace.plugins.installed-plugins" -msgstr "Kurulu eklentiler" - -#: src/app/main/ui/workspace/main_menu.cljs:624 -msgid "workspace.plugins.menu.plugins-manager" -msgstr "Eklenti yöneticisi" - -#: src/app/main/ui/workspace/main_menu.cljs:765 -msgid "workspace.plugins.menu.title" -msgstr "Eklentiler" - -#: src/app/main/ui/workspace/plugins.cljs:166 -msgid "workspace.plugins.plugin-list-link" -msgstr "Eklenti Listesi" - -#: src/app/main/ui/workspace/plugins.cljs:149 -msgid "workspace.plugins.search-placeholder" -msgstr "Bir eklenti URL'si yazın" - -#, unused -msgid "workspace.plugins.success" -msgstr "Eklenti doğru şekilde yüklendi." - -#: src/app/main/ui/workspace/plugins.cljs:143 -msgid "workspace.plugins.title" -msgstr "Eklentiler" - -#: src/app/main/ui/workspace/context_menu.cljs:441 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.add-flex" msgstr "Esnek düzen ekle" -#: src/app/main/ui/workspace/context_menu.cljs:445 msgid "workspace.shape.menu.add-grid" msgstr "Izgara düzeni ekle" -#: src/app/main/ui/workspace/context_menu.cljs:193 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.back" msgstr "En arkaya gönder" -#: src/app/main/ui/workspace/context_menu.cljs:190 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.backward" msgstr "Arkaya gönder" -#: src/app/main/ui/workspace/context_menu.cljs:139 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.copy" msgstr "Kopyala" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:427 msgid "workspace.shape.menu.create-annotation" msgstr "Açıklama oluştur" -#: src/app/main/ui/workspace/context_menu.cljs:275 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.create-artboard-from-selection" msgstr "Çalışma yüzeyi için seçim" -#: src/app/main/ui/workspace/context_menu.cljs:465 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.create-component" msgstr "Bileşen oluştur" -#: src/app/main/ui/workspace/context_menu.cljs:469 msgid "workspace.shape.menu.create-multiple-components" msgstr "Çoklu bileşen oluştur" -#: src/app/main/ui/workspace/context_menu.cljs:142 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.cut" msgstr "Kes" -#: src/app/main/ui/workspace/context_menu.cljs:486 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.delete" msgstr "Sil" -#: src/app/main/ui/workspace/context_menu.cljs:391 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.delete-flow-start" msgstr "Akış başlangıcını sil" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:432 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.detach-instance" msgstr "Örneği ayır" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:431 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.detach-instances-in-bulk" msgstr "Örnekleri ayır" -#: src/app/main/ui/workspace/context_menu.cljs:335, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:75 msgid "workspace.shape.menu.difference" msgstr "Fark" -#: src/app/main/ui/workspace/context_menu.cljs:148 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.duplicate" msgstr "Çoğalt" -#: src/app/main/ui/workspace/context_menu.cljs:321 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.edit" msgstr "Düzenle" -#: src/app/main/ui/workspace/context_menu.cljs:341 msgid "workspace.shape.menu.exclude" msgstr "Dışla" -#: src/app/main/ui/workspace/context_menu.cljs:348, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:89 msgid "workspace.shape.menu.flatten" msgstr "Düzleştir" -#: src/app/main/ui/workspace/context_menu.cljs:208 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.flip-horizontal" msgstr "Yatay ters çevir" -#: src/app/main/ui/workspace/context_menu.cljs:204 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.flip-vertical" msgstr "Dikey ters çevir" -#: src/app/main/ui/workspace/context_menu.cljs:394 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.flow-start" msgstr "Akış başlangıcı" -#: src/app/main/ui/workspace/context_menu.cljs:184 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.forward" msgstr "Öne getir" -#: src/app/main/ui/workspace/context_menu.cljs:187 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.front" msgstr "En öne getir" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.go-main" msgstr "Ana bileşen dosyasına git" -#: src/app/main/ui/workspace/context_menu.cljs:261 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.group" msgstr "Grup" -#: src/app/main/ui/workspace/context_menu.cljs:363, src/app/main/ui/workspace/sidebar/layer_item.cljs:145 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.hide" msgstr "Gizle" -#: src/app/main/ui/workspace/context_menu.cljs:548, src/app/main/ui/workspace/main_menu.cljs:408 msgid "workspace.shape.menu.hide-ui" msgstr "Kullanıcı arayüzünü göster/gizle" -#: src/app/main/ui/workspace/context_menu.cljs:338 msgid "workspace.shape.menu.intersection" msgstr "Kesişme" -#: src/app/main/ui/workspace/context_menu.cljs:371, src/app/main/ui/workspace/sidebar/layer_item.cljs:153 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.lock" msgstr "Kilitle" -#: src/app/main/ui/workspace/context_menu.cljs:266 +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.mask" msgstr "Maskele" -#: src/app/main/ui/workspace/context_menu.cljs:145, src/app/main/ui/workspace/context_menu.cljs:545 +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.paste" msgstr "Yapıştır" -#: src/app/main/ui/workspace/context_menu.cljs:331 msgid "workspace.shape.menu.path" msgstr "Yol" -#: src/app/main/ui/workspace/context_menu.cljs:432 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.remove-flex" msgstr "Düzen esnekliğini kaldır" -#: src/app/main/ui/workspace/context_menu.cljs:435 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.remove-grid" msgstr "Izgara düzenini kaldır" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:436 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.reset-overrides" msgstr "Geçersiz kılmaları sıfırla" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:439 msgid "workspace.shape.menu.restore-main" msgstr "Ana bileşeni geri yükle" -#: src/app/main/ui/workspace/context_menu.cljs:174 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.select-layer" msgstr "Katman seç" -#: src/app/main/ui/workspace/context_menu.cljs:360, src/app/main/ui/workspace/sidebar/layer_item.cljs:144 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.show" msgstr "Göster" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:424 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.show-in-assets" msgstr "Varlıklar panelinde göster" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:442, src/app/main/ui/workspace/sidebar/assets/components.cljs:586 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.show-main" msgstr "Ana bileşeni göster" -#: src/app/main/ui/workspace/context_menu.cljs:221 msgid "workspace.shape.menu.thumbnail-remove" msgstr "Küçük resmi kaldır" -#: src/app/main/ui/workspace/context_menu.cljs:223 msgid "workspace.shape.menu.thumbnail-set" msgstr "Küçük resim olarak ayarla" -#: src/app/main/ui/workspace/context_menu.cljs:326 msgid "workspace.shape.menu.transform-to-path" msgstr "Yola dönüştür" -#: src/app/main/ui/workspace/context_menu.cljs:257 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.ungroup" msgstr "Grubu dağıt" -#: src/app/main/ui/workspace/context_menu.cljs:332, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:70 msgid "workspace.shape.menu.union" msgstr "Birleşim" -#: src/app/main/ui/workspace/context_menu.cljs:368, src/app/main/ui/workspace/sidebar/layer_item.cljs:152 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.unlock" msgstr "Kilidi aç" -#: src/app/main/ui/workspace/context_menu.cljs:271 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.unmask" msgstr "Maskelemeyi kaldır" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.update-components-in-bulk" msgstr "Ana bileşenleri güncelle" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:445 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.update-main" msgstr "Ana bileşeni güncelle" -#: src/app/main/ui/components/tab_container.cljs:50 msgid "workspace.sidebar.collapse" msgstr "Kenar çubuğunu daralt" -#: src/app/main/ui/workspace/sidebar/collapsable_button.cljs:26 msgid "workspace.sidebar.expand" msgstr "Kenar çubuğunu genişlet" -#: src/app/main/ui/workspace/right_header.cljs:231, src/app/main/ui/workspace/right_header.cljs:232 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.sidebar.history" msgstr "Geçmiş (%s)" -#: src/app/main/ui/workspace/sidebar/layers.cljs:522, src/app/main/ui/workspace/sidebar.cljs:100 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.sidebar.layers" msgstr "Katmanlar" -#: src/app/main/ui/workspace/sidebar/layers.cljs:308, src/app/main/ui/workspace/sidebar/layers.cljs:380 msgid "workspace.sidebar.layers.components" msgstr "Bileşenler" -#: src/app/main/ui/workspace/sidebar/layers.cljs:305, src/app/main/ui/workspace/sidebar/layers.cljs:338 msgid "workspace.sidebar.layers.frames" msgstr "Çalışma yüzeyleri" -#: src/app/main/ui/workspace/sidebar/layers.cljs:306, src/app/main/ui/workspace/sidebar/layers.cljs:352 msgid "workspace.sidebar.layers.groups" msgstr "Gruplar" -#: src/app/main/ui/workspace/sidebar/layers.cljs:310, src/app/main/ui/workspace/sidebar/layers.cljs:408 msgid "workspace.sidebar.layers.images" msgstr "Görseller" -#: src/app/main/ui/workspace/sidebar/layers.cljs:307, src/app/main/ui/workspace/sidebar/layers.cljs:366 msgid "workspace.sidebar.layers.masks" msgstr "Maskeler" -#: src/app/main/ui/workspace/sidebar/layers.cljs:289 msgid "workspace.sidebar.layers.search" msgstr "Katmanları ara" -#: src/app/main/ui/workspace/sidebar/layers.cljs:311, src/app/main/ui/workspace/sidebar/layers.cljs:422 msgid "workspace.sidebar.layers.shapes" msgstr "Şekiller" -#: src/app/main/ui/workspace/sidebar/layers.cljs:309, src/app/main/ui/workspace/sidebar/layers.cljs:394 msgid "workspace.sidebar.layers.texts" msgstr "Metinler" -#: src/app/main/ui/viewer/inspect/attributes/svg.cljs:56, src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs:91 +#: src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs, +#: src/app/main/ui/inspect/attributes/svg.cljs msgid "workspace.sidebar.options.svg-attrs.title" msgstr "İçe Aktarılan SVG Öznitelikleri" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs:217 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs msgid "workspace.sidebar.sitemap" msgstr "Sayfalar" -#: src/app/main/ui/workspace/left_header.cljs:91 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.sitemap" msgstr "Site haritası" -#: src/app/main/ui/workspace/sidebar.cljs:120 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.assets" msgstr "Varlıklar" -#: src/app/main/ui/workspace/palette.cljs:165, src/app/main/ui/workspace/palette.cljs:166 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.color-palette" msgstr "Renk Paketi (%s)" -#: src/app/main/ui/workspace/right_header.cljs:220, src/app/main/ui/workspace/right_header.cljs:221 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.comments" msgstr "Yorumlar (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:180, src/app/main/ui/workspace/top_toolbar.cljs:181 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.curve" msgstr "Eğri (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:160, src/app/main/ui/workspace/top_toolbar.cljs:161 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.ellipse" msgstr "Elips (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:142, src/app/main/ui/workspace/top_toolbar.cljs:143 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.frame" msgstr "Çalışma Yüzeyi (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:59, src/app/main/ui/workspace/top_toolbar.cljs:60 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.image" msgstr "Görsel (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:132, src/app/main/ui/workspace/top_toolbar.cljs:133 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.move" msgstr "Taşı (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:189, src/app/main/ui/workspace/top_toolbar.cljs:190 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.path" msgstr "Yol (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:151, src/app/main/ui/workspace/top_toolbar.cljs:152 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.rect" msgstr "Dikdörtgen (%s)" #: src/app/main/ui/workspace/left_toolbar.cljs -#, unused msgid "workspace.toolbar.shortcuts" msgstr "Kısayollar (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:169, src/app/main/ui/workspace/top_toolbar.cljs:170 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.text" msgstr "Metin (%s)" -#: src/app/main/ui/workspace/palette.cljs:173, src/app/main/ui/workspace/palette.cljs:174 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.text-palette" msgstr "Tipografiler (%s)" -#: src/app/main/ui/workspace/viewport/top_bar.cljs:38 msgid "workspace.top-bar.read-only.done" msgstr "Bitti" -#: src/app/main/ui/workspace/viewport/top_bar.cljs:35 #, markdown msgid "workspace.top-bar.view-only" msgstr "**Kodu incele** ( Yalnızca Görüntüle)" -#: src/app/main/ui/workspace/sidebar/history.cljs:342 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.empty" msgstr "Şu ana kadar değişim geçmişi yok" -#: src/app/main/ui/workspace/sidebar/history.cljs:147 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.entry.delete" msgstr "%s silindi" -#: src/app/main/ui/workspace/sidebar/history.cljs:146 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.entry.modify" msgstr "%s düzenlendi" -#: src/app/main/ui/workspace/sidebar/history.cljs:148 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.entry.move" msgstr "Nesneler taşındı" -#: src/app/main/ui/workspace/sidebar/history.cljs:111 msgid "workspace.undo.entry.multiple.circle" msgstr "daireler" -#: src/app/main/ui/workspace/sidebar/history.cljs:112 msgid "workspace.undo.entry.multiple.color" msgstr "renk varlıkları" -#: src/app/main/ui/workspace/sidebar/history.cljs:113 msgid "workspace.undo.entry.multiple.component" msgstr "bileşenler" -#: src/app/main/ui/workspace/sidebar/history.cljs:114 msgid "workspace.undo.entry.multiple.curve" msgstr "eğriler" -#: src/app/main/ui/workspace/sidebar/history.cljs:115 msgid "workspace.undo.entry.multiple.frame" msgstr "çalışma yüzeyi" -#: src/app/main/ui/workspace/sidebar/history.cljs:116 msgid "workspace.undo.entry.multiple.group" msgstr "gruplar" -#: src/app/main/ui/workspace/sidebar/history.cljs:117 msgid "workspace.undo.entry.multiple.media" msgstr "grafik varlıkları" -#: src/app/main/ui/workspace/sidebar/history.cljs:118 msgid "workspace.undo.entry.multiple.multiple" msgstr "nesneler" -#: src/app/main/ui/workspace/sidebar/history.cljs:119 msgid "workspace.undo.entry.multiple.page" msgstr "sayfalar" -#: src/app/main/ui/workspace/sidebar/history.cljs:120 msgid "workspace.undo.entry.multiple.path" msgstr "yollar" -#: src/app/main/ui/workspace/sidebar/history.cljs:121 msgid "workspace.undo.entry.multiple.rect" msgstr "dikdörtgenler" -#: src/app/main/ui/workspace/sidebar/history.cljs:122 msgid "workspace.undo.entry.multiple.shape" msgstr "şekiller" -#: src/app/main/ui/workspace/sidebar/history.cljs:123 msgid "workspace.undo.entry.multiple.text" msgstr "metinler" -#: src/app/main/ui/workspace/sidebar/history.cljs:124 msgid "workspace.undo.entry.multiple.typography" msgstr "tipografi varlıkları" -#: src/app/main/ui/workspace/sidebar/history.cljs:145 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.entry.new" msgstr "Yeni %s" -#: src/app/main/ui/workspace/sidebar/history.cljs:125 msgid "workspace.undo.entry.single.circle" msgstr "daire" -#: src/app/main/ui/workspace/sidebar/history.cljs:126 msgid "workspace.undo.entry.single.color" msgstr "renk varlığı" -#: src/app/main/ui/workspace/sidebar/history.cljs:127 msgid "workspace.undo.entry.single.component" msgstr "bileşen" -#: src/app/main/ui/workspace/sidebar/history.cljs:128 msgid "workspace.undo.entry.single.curve" msgstr "eğri" -#: src/app/main/ui/workspace/sidebar/history.cljs:129 msgid "workspace.undo.entry.single.frame" msgstr "çalışma yüzeyi" -#: src/app/main/ui/workspace/sidebar/history.cljs:130 msgid "workspace.undo.entry.single.group" msgstr "grup" -#: src/app/main/ui/workspace/sidebar/history.cljs:131 msgid "workspace.undo.entry.single.image" msgstr "görsel" -#: src/app/main/ui/workspace/sidebar/history.cljs:132 msgid "workspace.undo.entry.single.media" msgstr "grafik varlığı" -#: src/app/main/ui/workspace/sidebar/history.cljs:133 msgid "workspace.undo.entry.single.multiple" msgstr "nesne" -#: src/app/main/ui/workspace/sidebar/history.cljs:134 msgid "workspace.undo.entry.single.page" msgstr "sayfa" -#: src/app/main/ui/workspace/sidebar/history.cljs:135 msgid "workspace.undo.entry.single.path" msgstr "yol" -#: src/app/main/ui/workspace/sidebar/history.cljs:136 msgid "workspace.undo.entry.single.rect" msgstr "dikdörtgen" -#: src/app/main/ui/workspace/sidebar/history.cljs:137 msgid "workspace.undo.entry.single.shape" msgstr "şekil" -#: src/app/main/ui/workspace/sidebar/history.cljs:138 msgid "workspace.undo.entry.single.text" msgstr "metin" -#: src/app/main/ui/workspace/sidebar/history.cljs:139 msgid "workspace.undo.entry.single.typography" msgstr "tipografi varlığı" -#: src/app/main/ui/workspace/sidebar/history.cljs:149 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.entry.unknown" msgstr "%s üstündeki işlem" -#: src/app/main/ui/workspace/sidebar/history.cljs:335 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.title" msgstr "Geçmiş" -#: src/app/main/data/workspace/libraries.cljs:1094 +#: src/app/main/data/workspace/libraries.cljs msgid "workspace.updates.dismiss" msgstr "Yoksay" -#: src/app/main/data/workspace/libraries.cljs:1092 +#: src/app/main/data/workspace/libraries.cljs msgid "workspace.updates.more-info" msgstr "Daha fazla bilgi" -#: src/app/main/data/workspace/libraries.cljs:1090 +#: src/app/main/data/workspace/libraries.cljs msgid "workspace.updates.there-are-updates" msgstr "Paylaşılan kütüphaneler için güncellemeler var" -#: src/app/main/data/workspace/libraries.cljs:1097 +#: src/app/main/data/workspace/libraries.cljs msgid "workspace.updates.update" msgstr "Güncelle" -#, unused msgid "workspace.viewport.click-to-close-path" msgstr "Yolu kapatmak için tıklayın" @@ -5824,3 +5267,36 @@ msgstr "Yolu kapatmak için tıklayın" #~ msgid "workspace.options.layout-item.title.min-w" #~ msgstr "Asgari genişlik" + +msgid "workspace.plugins.install" +msgstr "Kur" + +msgid "workspace.plugins.title" +msgstr "Eklentiler" + +msgid "workspace.plugins.search-placeholder" +msgstr "Bir eklenti URL'si yazın" + +msgid "workspace.plugins.installed-plugins" +msgstr "Kurulu eklentiler" + +msgid "workspace.plugins.error.url" +msgstr "Eklenti yok veya URL doğru değil." + +msgid "workspace.plugins.empty-plugins" +msgstr "Henüz eklenti kurulmadı" + +msgid "workspace.plugins.button-open" +msgstr "Aç" + +msgid "workspace.plugins.success" +msgstr "Eklenti doğru şekilde yüklendi." + +msgid "workspace.plugins.menu.plugins-manager" +msgstr "Eklenti yöneticisi" + +msgid "workspace.plugins.menu.title" +msgstr "Eklentiler" + +msgid "workspace.plugins.plugin-list-link" +msgstr "Eklenti Listesi" diff --git a/frontend/translations/ukr_UA.po b/frontend/translations/ukr_UA.po index 08da14efb4..3c7f50b164 100644 --- a/frontend/translations/ukr_UA.po +++ b/frontend/translations/ukr_UA.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "PO-Revision-Date: 2024-06-17 08:07+0000\n" "Last-Translator: Anonymous \n" -"Language-Team: Ukrainian " -"\n" +"Language-Team: Ukrainian \n" "Language: ukr_UA\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" @@ -12,870 +12,777 @@ msgstr "" "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" "X-Generator: Weblate 5.6-dev\n" -#: src/app/main/ui/auth/register.cljs:151, src/app/main/ui/viewer/login.cljs:104 +#: src/app/main/ui/auth/register.cljs msgid "auth.already-have-account" msgstr "Уже маєте аккаунт?" -#: src/app/main/ui/auth/login.cljs:189, src/app/main/ui/viewer/login.cljs:90 +#: src/app/main/ui/auth/login.cljs msgid "auth.forgot-password" msgstr "Забули пароль?" -#: src/app/main/ui/auth/register.cljs:254 +#: src/app/main/ui/auth/register.cljs msgid "auth.fullname" msgstr "Повне ім'я" -#: src/app/main/ui/auth/register.cljs:155, src/app/main/ui/viewer/login.cljs:107 +#: src/app/main/ui/auth/register.cljs +#, fuzzy msgid "auth.login-here" msgstr "Ввійдіть тут" -#: src/app/main/ui/auth/login.cljs:195 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-submit" msgstr "Вхід" -#: src/app/main/ui/auth/login.cljs:222 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-github-submit" msgstr "GitHub" -#: src/app/main/ui/auth/login.cljs:228 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-gitlab-submit" msgstr "GitLab" -#: src/app/main/ui/auth/login.cljs:216 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-google-submit" msgstr "Google" -#: src/app/main/ui/auth/login.cljs:201 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-ldap-submit" msgstr "LDAP" -#: src/app/main/ui/auth/login.cljs:234, src/app/main/ui/auth/login.cljs:255 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-oidc-submit" msgstr "OpenID" -#: src/app/main/ui/auth/recovery.cljs:71 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.new-password" msgstr "Введіть новий пароль" -#: src/app/main/ui/auth/recovery.cljs:42 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.notifications.invalid-token-error" msgstr "Невірний код відновлення." -#: src/app/main/ui/auth/recovery.cljs:46 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.notifications.password-changed-successfully" msgstr "Пароль успішно змінено" -#: src/app/main/ui/auth/login.cljs:179, src/app/main/ui/auth/register.cljs:115 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.password" msgstr "Пароль" -#: src/app/main/ui/auth/register.cljs:114 +#: src/app/main/ui/auth/register.cljs msgid "auth.password-length-hint" msgstr "Щонайменше 8 символів" -#: src/app/main/ui/workspace/libraries.cljs:228 msgid "common.publish" msgstr "Опублікувати" -#: src/app/main/ui/viewer/share_link.cljs:259, src/app/main/ui/viewer/share_link.cljs:289 +#, fuzzy msgid "common.share-link.current-tag" msgstr "(поточне)" -#: src/app/main/ui/workspace/libraries.cljs:224 msgid "common.unpublish" msgstr "Зняти з публікації" -#: src/app/main/ui/dashboard/file_menu.cljs:291, src/app/main/ui/workspace/main_menu.cljs:572 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.add-shared" msgstr "Додати як Спільну Бібліотеку" -#: src/app/main/data/dashboard.cljs:762, src/app/main/data/dashboard.cljs:983 +#: src/app/main/data/dashboard.cljs, src/app/main/data/dashboard.cljs msgid "dashboard.copy-suffix" msgstr "(копія)" -#: src/app/main/ui/dashboard/sidebar.cljs:338 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.create-new-team" msgstr "+ Створити нову команду" -#: src/app/main/ui/dashboard/file_menu.cljs:296, src/app/main/ui/workspace/main_menu.cljs:589 msgid "dashboard.download-binary-file" msgstr "Завантажити файл Penpot (.penpot)" -#: src/app/main/ui/dashboard/file_menu.cljs:276, src/app/main/ui/dashboard/project_menu.cljs:90 +#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.duplicate" msgstr "Створити дублікат" -#, unused msgid "dashboard.export-multi" msgstr "Експорт файлів Penpot (%s)" -#: src/app/main/ui/workspace/main_menu.cljs:578 +#: src/app/main/ui/workspace/header.cljs msgid "dashboard.export-shapes" msgstr "Експорт" -#: src/app/main/ui/dashboard/libraries.cljs:53 +#: src/app/main/ui/dashboard/libraries.cljs msgid "dashboard.libraries-title" msgstr "Бібліотеки" -#: src/app/main/ui/dashboard/placeholder.cljs:45 +#: src/app/main/ui/dashboard/grid.cljs msgid "dashboard.loading-files" msgstr "завантажую ваші файли…" -#: src/app/main/ui/dashboard/fonts.cljs:431 msgid "dashboard.loading-fonts" msgstr "завантажую ваші шрифти…" -#: src/app/main/ui/dashboard/file_menu.cljs:245 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.move-to-multi" msgstr "Перемістити файли (%s)" -#: src/app/main/ui/dashboard/file_menu.cljs:226 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.move-to-other-team" msgstr "Перенести в іншу команду" -#: src/app/main/ui/dashboard/files.cljs:117, src/app/main/ui/dashboard/projects.cljs:260, src/app/main/ui/dashboard/projects.cljs:261 msgid "dashboard.options" msgstr "Опції" -#: src/app/main/ui/dashboard/pin_button.cljs:24, src/app/main/ui/dashboard/project_menu.cljs:95 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.pin-unpin" msgstr "Закріпити/Відчепити" -#: src/app/main/ui/dashboard/projects.cljs:51 +#: src/app/main/ui/dashboard/projects.cljs msgid "dashboard.projects-title" msgstr "Проекти" #: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused msgid "dashboard.remove-shared" msgstr "Видалити Спільну Бібліотеку" -#: src/app/main/ui/dashboard/sidebar.cljs:246, src/app/main/ui/dashboard/sidebar.cljs:247 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.search-placeholder" msgstr "Пошук…" -#: src/app/main/ui/dashboard/search.cljs:50 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.type-something" msgstr "Введіть для пошуку" -#: src/app/main/ui/settings/profile.cljs:70 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.your-email" msgstr "Електронна пошта" -#: src/app/main/ui/alert.cljs:32 +#: src/app/main/ui/alert.cljs msgid "ds.alert-ok" msgstr "Ок" -#: src/app/main/ui/alert.cljs:31, src/app/main/ui/alert.cljs:34 +#: src/app/main/ui/alert.cljs msgid "ds.alert-title" msgstr "Увага" -#: src/app/main/ui/confirm.cljs:36, src/app/main/ui/workspace/plugins.cljs:246 +#: src/app/main/ui/confirm.cljs msgid "ds.confirm-cancel" msgstr "Відміна" -#: src/app/main/ui/confirm.cljs:37, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:141 +#: src/app/main/ui/confirm.cljs msgid "ds.confirm-ok" msgstr "Ок" -#: src/app/main/ui/auth/login.cljs:62 +#: src/app/main/ui/auth/login.cljs msgid "errors.auth-provider-not-configured" msgstr "Провайдер для автентифікації не налаштований." -#: src/app/main/ui/settings/feedback.cljs:77 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.description" msgstr "Опис" -#: src/app/main/ui/settings/feedback.cljs:72 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.subject" msgstr "Тема" -#: src/app/main/ui/settings/feedback.cljs:68 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.title" msgstr "Електронна пошта" -#: src/app/main/ui/viewer/inspect/attributes/blur.cljs:26 +#: src/app/main/ui/inspect/attributes/blur.cljs msgid "inspect.attributes.blur" msgstr "Розмивання" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:115 +#: src/app/main/ui/inspect/attributes/blur.cljs msgid "inspect.attributes.blur.value" msgstr "Значення" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:112 +#: src/app/main/ui/inspect/attributes/common.cljs msgid "inspect.attributes.color.hex" msgstr "HEX" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:114 +#: src/app/main/ui/inspect/attributes/common.cljs msgid "inspect.attributes.color.hsla" msgstr "HSLA" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:113 +#: src/app/main/ui/inspect/attributes/common.cljs msgid "inspect.attributes.color.rgba" msgstr "RGBA" -#: src/app/main/ui/viewer/inspect/attributes/fill.cljs:57 +#: src/app/main/ui/inspect/attributes/fill.cljs msgid "inspect.attributes.fill" msgstr "Заливка" -#: src/app/main/ui/viewer/inspect/attributes/image.cljs:39 +#: src/app/main/ui/inspect/attributes/image.cljs msgid "inspect.attributes.image.height" msgstr "Висота" -#: src/app/main/ui/viewer/inspect/attributes/image.cljs:32 +#: src/app/main/ui/inspect/attributes/image.cljs msgid "inspect.attributes.image.width" msgstr "Ширина" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout" msgstr "Розміщення" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.height" msgstr "Висота" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.left" msgstr "Зліва" #: src/app/main/ui/inspect/attributes/layout.cljs, src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.radius" msgstr "Радіус" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.rotation" msgstr "Обертання" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.top" msgstr "Зверху" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.width" msgstr "Ширина" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:57 +#: src/app/main/ui/inspect/attributes/shadow.cljs msgid "inspect.attributes.shadow" msgstr "Тінь" -#, permanent, unused +#, permanent msgid "inspect.attributes.stroke.alignment.center" msgstr "Центр" -#, permanent, unused +#, permanent msgid "inspect.attributes.stroke.alignment.inner" msgstr "Всередину" -#, permanent, unused +#, permanent msgid "inspect.attributes.stroke.alignment.outer" msgstr "Назовні" -#, unused msgid "inspect.attributes.stroke.style.dotted" msgstr "Точковий" -#, unused msgid "inspect.attributes.stroke.style.mixed" msgstr "Змішаний" -#, unused msgid "inspect.attributes.stroke.style.none" msgstr "Немає" -#, unused msgid "inspect.attributes.stroke.style.solid" msgstr "Суцільний" #: src/app/main/ui/inspect/attributes/stroke.cljs -#, unused msgid "inspect.attributes.stroke.width" msgstr "Товщина" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:81, src/app/main/ui/viewer/inspect/attributes/text.cljs:194 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography" msgstr "Текст" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:145 msgid "inspect.attributes.typography.text-decoration.none" msgstr "Немає" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:146 msgid "inspect.attributes.typography.text-decoration.strikethrough" msgstr "Перечеркнутий" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:147 msgid "inspect.attributes.typography.text-decoration.underline" msgstr "Підчеркнутий" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:159 msgid "inspect.attributes.typography.text-transform.none" msgstr "Який є" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:125 +#: src/app/main/ui/inspect/right_sidebar.cljs msgid "inspect.tabs.code" msgstr "Код" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:98 msgid "inspect.tabs.code.selected.circle" msgstr "Коло" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:99 msgid "inspect.tabs.code.selected.component" msgstr "Компонент" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:100 msgid "inspect.tabs.code.selected.curve" msgstr "Крива" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:101 msgid "inspect.tabs.code.selected.frame" msgstr "Кадр" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:102 msgid "inspect.tabs.code.selected.group" msgstr "Група" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:103 msgid "inspect.tabs.code.selected.image" msgstr "Зображення" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:104 msgid "inspect.tabs.code.selected.mask" msgstr "Маска" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:93 +#: src/app/main/ui/inspect/right_sidebar.cljs msgid "inspect.tabs.code.selected.multiple" msgstr "Виділено: %s" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:105 msgid "inspect.tabs.code.selected.path" msgstr "Контур" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:106 msgid "inspect.tabs.code.selected.rect" msgstr "Прямокутник" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:107 msgid "inspect.tabs.code.selected.svg-raw" msgstr "SVG" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:108 msgid "inspect.tabs.code.selected.text" msgstr "Текст" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:115 +#: src/app/main/ui/inspect/right_sidebar.cljs msgid "inspect.tabs.info" msgstr "Інформація" -#: src/app/main/ui/dashboard/import.cljs:527 msgid "labels.accept" msgstr "Прийняти" -#: src/app/main/ui/dashboard/team.cljs:120, src/app/main/ui/dashboard/team.cljs:276, src/app/main/ui/dashboard/team.cljs:519, src/app/main/ui/dashboard/team.cljs:549, src/app/main/ui/onboarding/team_choice.cljs:67 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs msgid "labels.admin" msgstr "Адміністратор" #: src/app/main/ui/workspace/comments.cljs -#, unused msgid "labels.all" msgstr "Всі" -#: src/app/main/ui/auth.cljs:37 msgid "labels.and" msgstr "і" -#: src/app/main/ui/onboarding/team_choice.cljs:162 msgid "labels.back" msgstr "Назад" -#: src/app/main/data/common.cljs:112, src/app/main/ui/dashboard/change_owner.cljs:69, src/app/main/ui/dashboard/import.cljs:514, src/app/main/ui/dashboard/team.cljs:868, src/app/main/ui/delete_shared.cljs:35, src/app/main/ui/export.cljs:164, src/app/main/ui/export.cljs:460, src/app/main/ui/settings/access_tokens.cljs:188, src/app/main/ui/viewer/share_link.cljs:203, src/app/main/ui/workspace/sidebar/assets/groups.cljs:149 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.cancel" msgstr "Відміна" -#: src/app/main/ui/dashboard/projects.cljs:93, src/app/main/ui/export.cljs:478, src/app/main/ui/settings/access_tokens.cljs:183, src/app/main/ui/viewer/login.cljs:77, src/app/main/ui/viewer/share_link.cljs:174, src/app/main/ui/workspace/libraries.cljs:522 msgid "labels.close" msgstr "Закрити" -#: src/app/main/ui/dashboard/comments.cljs:104, src/app/main/ui/viewer/comments.cljs:70, src/app/main/ui/workspace/comments.cljs:126 +#: src/app/main/ui/dashboard/comments.cljs msgid "labels.comments" msgstr "Коментарі" -#: src/app/main/ui/dashboard/sidebar.cljs:985, src/app/main/ui/workspace/main_menu.cljs:110 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.community" msgstr "Спільнота" -#: src/app/main/ui/dashboard/import.cljs:520, src/app/main/ui/export.cljs:465, src/app/main/ui/onboarding/newsletter.cljs:101 msgid "labels.continue" msgstr "Продовжити" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:157, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:190 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "labels.create" msgstr "Створити" -#: src/app/main/ui/settings/sidebar.cljs:73 +#: src/app/main/ui/settings/sidebar.cljs msgid "labels.dashboard" msgstr "Панель управління" -#: src/app/main/ui/dashboard/file_menu.cljs:306, src/app/main/ui/dashboard/fonts.cljs:255, src/app/main/ui/dashboard/fonts.cljs:332, src/app/main/ui/dashboard/fonts.cljs:346, src/app/main/ui/dashboard/project_menu.cljs:115, src/app/main/ui/dashboard/team.cljs:904, src/app/main/ui/settings/access_tokens.cljs:209, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:209 +#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "labels.delete" msgstr "Видалити" -#: src/app/main/ui/dashboard/file_menu.cljs:28, src/app/main/ui/dashboard/files.cljs:72, src/app/main/ui/dashboard/files.cljs:156, src/app/main/ui/dashboard/projects.cljs:220, src/app/main/ui/dashboard/projects.cljs:224, src/app/main/ui/dashboard/sidebar.cljs:791 +#: src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/files.cljs, src/app/main/ui/dashboard/files.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "labels.drafts" msgstr "Чорновики" -#: src/app/main/ui/comments.cljs:350, src/app/main/ui/dashboard/fonts.cljs:252, src/app/main/ui/dashboard/team.cljs:902, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:205 +#: src/app/main/ui/comments.cljs msgid "labels.edit" msgstr "Редагувати" -#: src/app/main/ui/dashboard/team.cljs:118, src/app/main/ui/dashboard/team.cljs:279, src/app/main/ui/dashboard/team.cljs:520, src/app/main/ui/dashboard/team.cljs:553, src/app/main/ui/onboarding/team_choice.cljs:66 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs msgid "labels.editor" msgstr "Редактор" -#: src/app/main/ui/dashboard/team.cljs:661 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.expired-invitation" msgstr "Протерміновано" -#: src/app/main/ui/export.cljs:173 msgid "labels.export" msgstr "Експорт" -#: src/app/main/ui/dashboard/fonts.cljs:413 msgid "labels.font-variants" msgstr "Стилі" -#: src/app/main/ui/dashboard/fonts.cljs:52, src/app/main/ui/dashboard/sidebar.cljs:811 msgid "labels.fonts" msgstr "Шрифти" -#: src/app/main/ui/dashboard/sidebar.cljs:516, src/app/main/ui/dashboard/team.cljs:89, src/app/main/ui/dashboard/team.cljs:97, src/app/main/ui/dashboard/team.cljs:708 +#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.invitations" msgstr "Запрошення" -#: src/app/main/ui/settings/options.cljs:51 +#: src/app/main/ui/settings/options.cljs msgid "labels.language" msgstr "Мова" -#: src/app/main/ui/dashboard/sidebar.cljs:1040 +#: src/app/main/ui/settings.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.logout" msgstr "Вийти" -#: src/app/main/ui/dashboard/team.cljs:468 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.member" msgstr "Учасник" -#: src/app/main/ui/dashboard/sidebar.cljs:510, src/app/main/ui/dashboard/team.cljs:87, src/app/main/ui/dashboard/team.cljs:95 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.members" msgstr "Учасники" -#: src/app/main/ui/static.cljs:49 +#: src/app/main/ui/static.cljs msgid "labels.not-found.main-message" msgstr "Халепа!" -#, unused msgid "labels.or" msgstr "або" -#: src/app/main/ui/dashboard/team.cljs:286, src/app/main/ui/dashboard/team.cljs:518, src/app/main/ui/dashboard/team.cljs:1076 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs msgid "labels.owner" msgstr "Власник" -#: src/app/main/ui/settings/sidebar.cljs:87 +#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.password" msgstr "Пароль" -#: src/app/main/ui/dashboard/team.cljs:662 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.pending-invitation" msgstr "Очікування" -#: src/app/main/ui/settings/profile.cljs:118, src/app/main/ui/settings/sidebar.cljs:82 +#: src/app/main/ui/settings/sidebar.cljs msgid "labels.profile" msgstr "Профіль" -#: src/app/main/ui/dashboard/sidebar.cljs:784 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.projects" msgstr "Проекти" #: src/app/main/ui/workspace/libraries.cljs, src/app/main/ui/dashboard/team.cljs -#, unused msgid "labels.remove" msgstr "Видалити" -#: src/app/main/ui/dashboard/file_menu.cljs:271, src/app/main/ui/dashboard/project_menu.cljs:85, src/app/main/ui/dashboard/sidebar.cljs:539, src/app/main/ui/workspace/sidebar/assets/groups.cljs:157 +#: src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "labels.rename" msgstr "Перейменувати" -#: src/app/main/ui/static.cljs:61, src/app/main/ui/static.cljs:70, src/app/main/ui/static.cljs:148 +#: src/app/main/ui/static.cljs, src/app/main/ui/static.cljs, src/app/main/ui/static.cljs msgid "labels.retry" msgstr "Повторити" -#: src/app/main/ui/dashboard/team.cljs:469, src/app/main/ui/dashboard/team.cljs:709 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.role" msgstr "Роль" -#: src/app/main/ui/dashboard/fonts.cljs:380, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:191 msgid "labels.save" msgstr "Зберегти" -#: src/app/main/ui/settings/feedback.cljs:82 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.send" msgstr "Надіслати" -#: src/app/main/ui/settings/feedback.cljs:82 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.sending" msgstr "Надсилаю…" -#: src/app/main/ui/dashboard/sidebar.cljs:530, src/app/main/ui/dashboard/team.cljs:88, src/app/main/ui/dashboard/team.cljs:102, src/app/main/ui/settings/options.cljs:84, src/app/main/ui/settings/sidebar.cljs:93 +#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.settings" msgstr "Налаштування" -#: src/app/main/ui/dashboard/sidebar.cljs:800 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.shared-libraries" msgstr "Бібліотеки" -#: src/app/main/ui/dashboard/team.cljs:710 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.status" msgstr "Статус" -#: src/app/main/ui/dashboard/sidebar.cljs:992, src/app/main/ui/workspace/main_menu.cljs:118 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.tutorials" msgstr "Посібники" -#: src/app/main/ui/settings/profile.cljs:103 +#: src/app/main/ui/settings/profile.cljs msgid "labels.update" msgstr "Оновити" -#: src/app/main/ui/dashboard/fonts.cljs:241 msgid "labels.upload" msgstr "Завантаження" -#: src/app/main/ui/dashboard/fonts.cljs:240 msgid "labels.uploading" msgstr "Завантажую…" -#: src/app/main/ui/dashboard/team.cljs:123, src/app/main/ui/dashboard/team.cljs:282, src/app/main/ui/dashboard/team.cljs:521 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.viewer" msgstr "Спостерігач" -#: src/app/main/ui/dashboard/team.cljs:237 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.you" msgstr "(ви)" -#: src/app/main/ui/delete_shared.cljs:52 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.unpublish-shared-confirm.accept" msgstr "Зняти з публікації" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:380 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.accept" msgstr "Оновити" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:379 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.cancel" msgstr "Відмінити" -#, unused msgid "onboarding.welcome.alt" msgstr "Penpot" -#: src/app/main/ui/viewer/inspect/exports.cljs:147, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:631, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:137, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:148, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:188, src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:158, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:399, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:410, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:430, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:441, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:458, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:472, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:309, src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:183, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:373, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:389, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:245, src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:172 +#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs, src/app/main/ui/workspace/sidebar/options/menus/layer.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs, src/app/main/ui/workspace/sidebar/options/menus/blur.cljs msgid "settings.multiple" msgstr "Змішаний" # SECTIONS -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:414 msgid "shortcut-section.basics" msgstr "Основи" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:420 msgid "shortcut-section.dashboard" msgstr "Панель управління" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:423 msgid "shortcut-section.viewer" msgstr "Переглядач" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:417 msgid "shortcut-section.workspace" msgstr "Робоче поле" # SUBSECTIONS -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:56 msgid "shortcut-subsection.alignment" msgstr "Вирівнювання" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:57 msgid "shortcut-subsection.edit" msgstr "Редагувати" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:58 msgid "shortcut-subsection.general-dashboard" msgstr "Загальний" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:59 msgid "shortcut-subsection.general-viewer" msgstr "Загальний" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:62 msgid "shortcut-subsection.navigation-dashboard" msgstr "Навігація" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:63 msgid "shortcut-subsection.navigation-viewer" msgstr "Навігація" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:64 msgid "shortcut-subsection.navigation-workspace" msgstr "Навігація" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:65 msgid "shortcut-subsection.panels" msgstr "Панелі" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:66 msgid "shortcut-subsection.path-editor" msgstr "Контури" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:67 msgid "shortcut-subsection.shape" msgstr "Форми" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:69 msgid "shortcut-subsection.tools" msgstr "Інструменти" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:70 msgid "shortcut-subsection.zoom-viewer" msgstr "Масштабування" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:71 msgid "shortcut-subsection.zoom-workspace" msgstr "Масштабування" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:72 msgid "shortcuts.add-comment" msgstr "Коментарі" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:93 msgid "shortcuts.copy" msgstr "Скопіювати" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:96 msgid "shortcuts.cut" msgstr "Вирізати" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:98 msgid "shortcuts.delete" msgstr "Видалити" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:101 msgid "shortcuts.draw-curve" msgstr "Крива" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:102 msgid "shortcuts.draw-ellipse" msgstr "Еліпс" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:103 msgid "shortcuts.draw-frame" msgstr "Рамка" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:105 msgid "shortcuts.draw-path" msgstr "Контур" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:106 msgid "shortcuts.draw-rect" msgstr "Прямокутник" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:107 msgid "shortcuts.draw-text" msgstr "Текст" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:108 msgid "shortcuts.duplicate" msgstr "Дублікат" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:109 msgid "shortcuts.escape" msgstr "Відмінити" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:118 msgid "shortcuts.go-to-search" msgstr "Пошук" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:119 msgid "shortcuts.group" msgstr "Група" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:133 msgid "shortcuts.mask" msgstr "Маска" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:135 msgid "shortcuts.move" msgstr "Перемістити" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:260 msgid "shortcuts.or" msgstr " або " -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:163 msgid "shortcuts.paste" msgstr "Вставити" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:208 msgid "shortcuts.ungroup" msgstr "Розбити групу" -#: src/app/main/ui.cljs:143 msgid "viewer.breaking-change.message" msgstr "Упс!" -#: src/app/main/ui/viewer/interactions.cljs:282 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.interactions" msgstr "Інтеракції" -#: src/app/main/ui/viewer/header.cljs:231 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.sitemap" msgstr "Мапа сайту" #: src/app/main/ui/workspace/sidebar/assets.cljs -#, unused msgid "workspace.assets.assets" msgstr "Ресурси" -#: src/app/main/ui/dashboard/grid.cljs:130, src/app/main/ui/dashboard/grid.cljs:162, src/app/main/ui/workspace/sidebar/assets/colors.cljs:485, src/app/main/ui/workspace/sidebar/assets.cljs:150 +#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.colors" msgstr "Кольори" -#: src/app/main/ui/dashboard/grid.cljs:126, src/app/main/ui/dashboard/grid.cljs:141, src/app/main/ui/workspace/sidebar/assets/components.cljs:513, src/app/main/ui/workspace/sidebar/assets.cljs:139 +#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.components" msgstr "Компоненти" -#: src/app/main/ui/workspace/context_menu.cljs:529, src/app/main/ui/workspace/sidebar/assets/colors.cljs:251, src/app/main/ui/workspace/sidebar/assets/components.cljs:577, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:424, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:443 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.delete" msgstr "Видалити" -#: src/app/main/ui/workspace/context_menu.cljs:534, src/app/main/ui/workspace/sidebar/assets/components.cljs:572 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs, src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.duplicate" msgstr "Створити дуплікат" -#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:247, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:439 +#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.edit" msgstr "Редагувати" -#: src/app/main/ui/workspace/sidebar/assets/graphics.cljs:384, src/app/main/ui/workspace/sidebar/assets.cljs:145 +#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.graphics" msgstr "Графіка" -#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:255, src/app/main/ui/workspace/sidebar/assets/components.cljs:581, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:428, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:448 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.group" msgstr "Група" -#: src/app/main/ui/workspace/sidebar/assets.cljs:168 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.libraries" msgstr "Бібліотеки" -#: src/app/main/ui/workspace/context_menu.cljs:532, src/app/main/ui/workspace/sidebar/assets/colors.cljs:243, src/app/main/ui/workspace/sidebar/assets/components.cljs:566, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:421, src/app/main/ui/workspace/sidebar/assets/groups.cljs:63, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:434 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.rename" msgstr "Перейменувати" -#: src/app/main/ui/dashboard/grid.cljs:134, src/app/main/ui/dashboard/grid.cljs:189, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:397, src/app/main/ui/workspace/sidebar/assets.cljs:155 +#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.typography" msgstr "Типографіка" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused msgid "workspace.assets.typography.font-id" msgstr "Шрифт" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:505 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.font-size" msgstr "Розмір" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:501 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.font-variant-id" msgstr "Варіант" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:66 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.ungroup" msgstr "Розгрупувати" -#, unused msgid "workspace.focus.selection" msgstr "Вибір" -#: src/app/main/ui/workspace/main_menu.cljs:731 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.edit" msgstr "Редагувати" -#: src/app/main/ui/workspace/main_menu.cljs:720 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.file" msgstr "Файл" -#: src/app/main/ui/workspace/main_menu.cljs:753 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.preferences" msgstr "Налаштування" -#: src/app/main/ui/workspace/main_menu.cljs:742 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.view" msgstr "Вид" -#: src/app/main/ui/viewer/header.cljs:98, src/app/main/ui/workspace/right_header.cljs:120 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.reset-zoom" msgstr "Скинути" -#: src/app/main/ui/workspace/right_header.cljs:52 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.saved" msgstr "Збережено" #: src/app/main/ui/workspace/header.cljs -#, unused msgid "workspace.header.saving" msgstr "Збереження" #: src/app/main/ui/workspace/libraries.cljs -#, unused msgid "workspace.libraries.add" msgstr "Додати" #: src/app/main/ui/workspace/colorpicker.cljs -#, unused msgid "workspace.libraries.colors.hsv" msgstr "HSV" #: src/app/main/ui/workspace/colorpicker.cljs -#, unused msgid "workspace.libraries.colors.rgba" msgstr "RGBA" -#: src/app/main/ui/workspace/libraries.cljs:526, src/app/main/ui/workspace/libraries.cljs:531 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.libraries" msgstr "БІБЛІОТЕКИ" #: src/app/main/ui/workspace/libraries.cljs -#, unused msgid "workspace.libraries.library" msgstr "БІБЛІОТЕКА" -#: src/app/main/ui/workspace/libraries.cljs:402 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.update" msgstr "Оновити" -#: src/app/main/ui/workspace/libraries.cljs:536 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.updates" msgstr "ОНОВЛЕННЯ" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:86, src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:102 +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs msgid "workspace.options.blur-options.title" msgstr "Розмиття" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:600, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:605 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs msgid "workspace.options.component" msgstr "Компонент" diff --git a/frontend/translations/yo.po b/frontend/translations/yo.po index 7259ad1209..ab6e5baedd 100644 --- a/frontend/translations/yo.po +++ b/frontend/translations/yo.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "PO-Revision-Date: 2024-06-17 08:07+0000\n" "Last-Translator: Anonymous \n" -"Language-Team: Yoruba " -"\n" +"Language-Team: Yoruba \n" "Language: yo\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" @@ -11,486 +11,442 @@ msgstr "" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Weblate 5.6-dev\n" -#: src/app/main/ui/auth/register.cljs:299 +#: src/app/main/ui/auth/register.cljs msgid "auth.check-your-email" msgstr "" "yẹ ímeèlì rẹ wò kí o tẹ ọ̀nà-àsopọ̀ láti mọ̀ dájú àti láti bẹ̀rẹ̀ sí lo " "pẹ́ńpọtì." -#: src/app/main/ui/auth/recovery.cljs:78 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.confirm-password" msgstr "jẹ́rìísí ọ̀rọ̀-ìgbaniwọlé" -#: src/app/main/ui/auth/register.cljs:163 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.create-demo-account" msgstr "ṣẹ̀dá ìfihàn àkáùntí" #: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs -#, unused msgid "auth.create-demo-profile" msgstr "kàn fẹ́ gbìyànjú ú rẹ̀?" -#: src/app/main/ui/auth/login.cljs:43 +#: src/app/main/ui/auth/register.cljs msgid "auth.demo-warning" msgstr "" "\"\"This is a DEMO service, DO NOT USE for real work, the projects will be " "parẹ́ lóòrèkóòrè." -#: src/app/main/ui/auth/login.cljs:189, src/app/main/ui/viewer/login.cljs:90 +#: src/app/main/ui/auth/login.cljs msgid "auth.forgot-password" msgstr "gbàgbé ọ̀rọ̀-ìgbaniwọlé ?" -#: src/app/main/ui/auth/register.cljs:254 +#: src/app/main/ui/auth/register.cljs msgid "auth.fullname" msgstr "orúkọ lẹ́kùnn-ún-rẹ́rẹ́" -#: src/app/main/ui/auth/register.cljs:155, src/app/main/ui/viewer/login.cljs:107 +#: src/app/main/ui/auth/register.cljs +#, fuzzy msgid "auth.login-here" msgstr "wọlé síbí" -#: src/app/main/ui/auth/login.cljs:195 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-submit" msgstr "wọlé" -#: src/app/main/ui/auth/login.cljs:222 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-github-submit" msgstr "ibùdó gítì" -#: src/app/main/ui/auth/login.cljs:228 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-gitlab-submit" msgstr "láàbù gítì" -#: src/app/main/ui/auth/login.cljs:216 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-google-submit" msgstr "ṣàwárí" -#: src/app/main/ui/auth/login.cljs:201 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-ldap-submit" msgstr "LDAP" -#: src/app/main/ui/auth/login.cljs:234, src/app/main/ui/auth/login.cljs:255 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-oidc-submit" msgstr "ṣílẹ̀kuǹ ìdánimọ̀" -#: src/app/main/ui/auth/register.cljs:218, src/app/main/ui/dashboard/team_form.cljs:77, src/app/main/ui/onboarding/team_choice.cljs:181, src/app/main/ui/settings/access_tokens.cljs:67, src/app/main/ui/settings/feedback.cljs:33, src/app/main/ui/settings/profile.cljs:44, src/app/main/ui/workspace/sidebar/assets/groups.cljs:109 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/onboarding/team_choice.cljs, src/app/main/ui/settings/access_tokens.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/settings/profile.cljs, src/app/main/ui/workspace/sidebar/assets.cljs msgid "auth.name.too-long" msgstr "orúkọ kò gbọdọ̀ ju àádọ́jọ́ lẹ́tà lọ." -#: src/app/main/ui/auth/recovery.cljs:71 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.new-password" msgstr "tẹ ọ̀rọ̀ ìgbaniwọlé tuntun" -#: src/app/main/ui/auth/recovery.cljs:42 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.notifications.invalid-token-error" msgstr "àmì àtúnwárí ti díbàjẹ́." -#: src/app/main/ui/auth/recovery.cljs:46 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.notifications.password-changed-successfully" msgstr "ọ̀rọ̀-ìgbaniwọlé ti yí padà dáadáa" -#: src/app/main/ui/auth/recovery_request.cljs:57 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.notifications.profile-not-verified" msgstr "" "a tí ì ṣe ìwádìí bí o ṣe jẹ́, jọ̀wọ́ ṣe ìwádìí bí o ṣe jẹ́ kí o tó tẹ̀ " "síwájú." -#: src/app/main/ui/auth/recovery_request.cljs:40 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.notifications.recovery-token-sent" msgstr "a ti fi ọ̀rọ̀-ìgbaniwọle aṣàtúnwárí ránṣẹ sínu àpótí rẹ." -#: src/app/main/ui/auth/verify_token.cljs:47 +#: src/app/main/ui/auth/verify_token.cljs msgid "auth.notifications.team-invitation-accepted" msgstr "o ti wọ inú ẹgbẹ́ bó ṣeyẹ" -#: src/app/main/ui/auth/login.cljs:179, src/app/main/ui/auth/register.cljs:115 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.password" msgstr "ọ̀rọ̀- ìgbaniwọlé" -#: src/app/main/ui/auth/register.cljs:114 +#: src/app/main/ui/auth/register.cljs msgid "auth.password-length-hint" msgstr "kò gbọdọ̀ ju ohun kíkọ mẹ́jọ lọ" -#: src/app/main/ui/auth/recovery.cljs:61, src/app/main/ui/auth/recovery.cljs:62, src/app/main/ui/auth/register.cljs:81, src/app/main/ui/settings/password.cljs:75, src/app/main/ui/settings/password.cljs:76, src/app/main/ui/settings/password.cljs:77 +#: src/app/main/ui/auth/register.cljs msgid "auth.password-not-empty" msgstr "ọ̀rọ̀-ìgbaniwọlé gbọ́dọ̀ ní nǹkan kíkọ láìsí àlàfo." -#: src/app/main/ui/auth.cljs:41 msgid "auth.privacy-policy" msgstr "ìpamọ ètò ìmúló" -#: src/app/main/ui/auth/recovery_request.cljs:88 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-submit" msgstr "ṣàtuńwárí ọ̀rọ̀-ìgbaniwọlé" -#: src/app/main/ui/auth/recovery_request.cljs:101 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-subtitle" msgstr "a má a fi àwọn ìtọ́nisọ́nà ránsẹ́ sínú ímeèlì rẹ" -#: src/app/main/ui/auth/recovery_request.cljs:100 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-title" msgstr "gbàgbé ọ̀rọ̀-ìgbaniwọle ?" -#: src/app/main/ui/auth/recovery.cljs:82 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.recovery-submit" msgstr "yí ọ̀rọ̀-ìgbaniwọlé rẹ padà" -#: src/app/main/ui/auth/login.cljs:298, src/app/main/ui/viewer/login.cljs:93 +#: src/app/main/ui/auth/login.cljs msgid "auth.register" msgstr "kò tí ì sí àkáùntì?" -#: src/app/main/ui/auth/login.cljs:302, src/app/main/ui/auth/register.cljs:121, src/app/main/ui/auth/register.cljs:263, src/app/main/ui/viewer/login.cljs:97 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.register-submit" msgstr "ṣẹ̀dá àkáùntì" -#: src/app/main/ui/auth/register.cljs:140 +#: src/app/main/ui/auth/register.cljs msgid "auth.register-title" msgstr "ṣẹ̀dá àkáùntì" #: src/app/main/ui/auth.cljs -#, unused msgid "auth.sidebar-tagline" msgstr "ṣíṣí orísun yíyà àti àwòrán ni yóò fi lojútùú ." -#: src/app/main/ui/auth.cljs:33, src/app/main/ui/dashboard/sidebar.cljs:1022, src/app/main/ui/workspace/main_menu.cljs:150 msgid "auth.terms-of-service" msgstr "òfin ibiṣẹ́" -#, unused msgid "auth.terms-privacy-agreement" msgstr "" "\"nígbà, tí o bá ń ṣẹ̀dá àkáùntí tuntun ,o gbọ́dọ̀ gba àwọn òfin ibiṣẹ́ " "àti àṣírí rẹ́`." -#: src/app/main/ui/auth/register.cljs:297 +#: src/app/main/ui/auth/register.cljs msgid "auth.verification-email-sent" msgstr "a ti fi ìjẹ́rìísí ránsẹ́ sínú ímeèlì rẹ" #: src/app/main/ui/onboarding/questions.cljs -#, unused msgid "branding-illustrations-marketing-pieces" msgstr ".. ìyàsọ́tọ, àpèjúwe,títajà nǹkan, abbl." -#: src/app/main/ui/workspace/libraries.cljs:228 msgid "common.publish" msgstr "ìgbéjáde" -#: src/app/main/ui/viewer/share_link.cljs:304, src/app/main/ui/viewer/share_link.cljs:314 msgid "common.share-link.all-users" msgstr "gbogbo àwọn tó ń lo pẹ́ńpọtì" -#: src/app/main/ui/viewer/share_link.cljs:259, src/app/main/ui/viewer/share_link.cljs:289 msgid "common.share-link.current-tag" msgstr "(lọ́wọ́lọ́wọ́)" -#: src/app/main/ui/viewer/share_link.cljs:207, src/app/main/ui/viewer/share_link.cljs:214 msgid "common.share-link.destroy-link" msgstr "pa ọ̀nà-àsopọ̀ run" -#: src/app/main/ui/viewer/share_link.cljs:221 msgid "common.share-link.get-link" msgstr "gba ọ̀nà-àsopọ́" -#: src/app/main/ui/viewer/share_link.cljs:139 msgid "common.share-link.link-copied-success" msgstr "so àdàkọ pọ̀ bó ṣeyẹ" -#: src/app/main/ui/viewer/share_link.cljs:231 msgid "common.share-link.manage-ops" msgstr "ṣàkóṣo ìgbaniláàye" -#: src/app/main/ui/viewer/share_link.cljs:298 msgid "common.share-link.permissions-can-comment" msgstr "o lè sọ̀rọ̀" -#: src/app/main/ui/viewer/share_link.cljs:308 msgid "common.share-link.permissions-can-inspect" msgstr "ṣe àyẹ̀wò kóòdù" -#: src/app/main/ui/viewer/share_link.cljs:193 msgid "common.share-link.permissions-hint" msgstr "ẹnikẹ́ni tí ó bá ní ọ̀nà-àsopọ á ní àǹfààní àtiwọle" -#: src/app/main/ui/viewer/share_link.cljs:241 msgid "common.share-link.permissions-pages" msgstr "pín ojú ìwé" -#: src/app/main/ui/viewer/share_link.cljs:183 msgid "common.share-link.placeholder" msgstr "ọ̀nà-àsopọ̀ ojú ìwé tí a pín á hàn ní bí yìí" -#: src/app/main/ui/viewer/share_link.cljs:303, src/app/main/ui/viewer/share_link.cljs:313 msgid "common.share-link.team-members" msgstr "ọmọ ẹgbẹ́ nìkan ni" -#: src/app/main/ui/viewer/share_link.cljs:171 msgid "common.share-link.title" msgstr "pín àwọn àpẹrẹ" -#: src/app/main/ui/viewer/share_link.cljs:269 msgid "common.share-link.view-all" msgstr "yan gbogbo rẹ̀" -#: src/app/main/ui/workspace/libraries.cljs:224 msgid "common.unpublish" msgstr "ohun tí a kò tí ì kọ jáde" -#: src/app/main/ui/dashboard/projects.cljs:85 +#: src/app/main/ui/dashboard/projects.cljs msgid "dasboard.team-hero.management" msgstr "ìṣàkóṣo ọmọ ẹgbẹ" -#: src/app/main/ui/dashboard/projects.cljs:82 +#: src/app/main/ui/dashboard/projects.cljs msgid "dasboard.team-hero.title" msgstr "kẹ́gbẹ́ ṣera wọn lọ́kan" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.tutorial-hero.info" msgstr "" "\"kọ́ nípa kókó bi pẹ́ńpọtì nígbàtí ò ń dára rẹ láraya nípa fífi àwon " "ọwọ́ rẹ ṣe “ “ìdánilẹ́kọ̀ọ́ ." #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.tutorial-hero.start" msgstr "bẹ̀rẹ̀ ìdánilẹ́kọ̀ọ́" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.tutorial-hero.title" msgstr "gbọ́wọ́ lórí idánilẹ́kọ̀ọ́" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.walkthrough-hero.info" msgstr "rìn kàákiri pẹ́ńpọti kí o lè mọ kókó àwẹn ẹ̀yà ara rẹ̀." #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.walkthrough-hero.start" msgstr "bẹ̀rẹ̀ ìrìn kiri" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.walkthrough-hero.title" msgstr "wò ó bí o ṣe ń rìn kiri" -#: src/app/main/ui/settings/access_tokens.cljs:202 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.create" msgstr "ṣe ìpilẹ̀sẹ̀ àmì tókìnnì" -#: src/app/main/ui/settings/access_tokens.cljs:76 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.create.success" msgstr "ṣe àyẹ̀wò àmì tókìnnì tí o ṣẹ̀dá bó ṣeyẹ." -#: src/app/main/ui/settings/access_tokens.cljs:300 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.empty.add-one" msgstr "tẹ bọ́tìnnì \" ṣe ìpilẹ̀sẹ̀ àmì tókìnnì tuntun\" láti ṣe ìpilẹ̀sẹ̀ òmíràn." -#: src/app/main/ui/settings/access_tokens.cljs:299 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.empty.no-access-tokens" msgstr "o kò tí ì ní àmì tókínnì títí di ìsinsìn yìí." -#: src/app/main/ui/settings/access_tokens.cljs:53 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.errors-required-name" msgstr "a nílò orúkọ" -#: src/app/main/ui/settings/access_tokens.cljs:147 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-180-days" msgstr "ọgọ́saǹ-ań ọjọ́" -#: src/app/main/ui/settings/access_tokens.cljs:144 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-30-days" msgstr "ọgbọ̀n ọjọ́" -#: src/app/main/ui/settings/access_tokens.cljs:145 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-60-days" msgstr "ọgọ́ta ọjọ́" -#: src/app/main/ui/settings/access_tokens.cljs:146 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-90-days" msgstr "àádọ́ruǹ-ún ọjọ́" -#: src/app/main/ui/settings/access_tokens.cljs:143 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-never" msgstr "rárá" -#: src/app/main/ui/settings/access_tokens.cljs:282 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expired-on" msgstr "ó parí ní %s" -#: src/app/main/ui/settings/access_tokens.cljs:283 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expires-on" msgstr "ó parí %s" -#: src/app/main/ui/settings/access_tokens.cljs:281 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.no-expiration" msgstr "kò sì ọjọ́ ìparí" -#: src/app/main/ui/settings/access_tokens.cljs:197 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.personal" msgstr "àmì tokìnnì ìwọlé ti ara ẹni" -#: src/app/main/ui/settings/access_tokens.cljs:198 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.personal.description" msgstr "" "Iṣẹ́ àmì tókìnì ìwọlé ti ara ẹni dàbì ọ̀nà kejí tí a le gbà wọlé/ ọ̀rọ̀- " "agbaniwọle a lè lo ìfàsẹ sí ètò láti gbaye fún ohun èlò à tì wọlé " "pẹ́ńpọtì ti abẹ́nú api" -#: src/app/main/ui/settings/access_tokens.cljs:154 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.token-will-expire" msgstr "àmì tòkìn yóò parí ní %s" -#: src/app/main/ui/settings/access_tokens.cljs:155 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.token-will-not-expire" msgstr "kò sí ọjọ́ ìparí fún àmì tókìn" -#: src/app/main/ui/dashboard/file_menu.cljs:291, src/app/main/ui/workspace/main_menu.cljs:572 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.add-shared" msgstr "ṣe àpàpọ̀ bí i yàrá ìkàwe tí a pín" -#: src/app/main/ui/settings/profile.cljs:75 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.change-email" msgstr "pàrọ̀ ímeèlí" -#: src/app/main/data/dashboard.cljs:762, src/app/main/data/dashboard.cljs:983 +#: src/app/main/data/dashboard.cljs, src/app/main/data/dashboard.cljs msgid "dashboard.copy-suffix" msgstr "(dàákọ)" -#: src/app/main/ui/dashboard/sidebar.cljs:338 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.create-new-team" msgstr "ṣẹ̀dá ẹgbẹ́ tuntun" -#: src/app/main/ui/components/context_menu_a11y.cljs:256, src/app/main/ui/dashboard/sidebar.cljs:646 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.default-team-name" msgstr "pẹ́ńpọtì rẹ" -#: src/app/main/ui/dashboard/sidebar.cljs:571 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.delete-team" msgstr "pa ẹgbẹ́ rẹ́" -#: src/app/main/ui/dashboard/file_menu.cljs:296, src/app/main/ui/workspace/main_menu.cljs:589 msgid "dashboard.download-binary-file" msgstr "sọ fáìlí pẹ́ńpọtì kalẹ̀ (.penpot)" -#: src/app/main/ui/dashboard/file_menu.cljs:300, src/app/main/ui/workspace/main_menu.cljs:597 msgid "dashboard.download-standard-file" msgstr "sọ fáìlì ìpéwọ̀n kalẹ̀ (.svg + .json)" -#: src/app/main/ui/dashboard/file_menu.cljs:276, src/app/main/ui/dashboard/project_menu.cljs:90 +#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.duplicate" msgstr "ṣe ẹ̀dà" -#: src/app/main/ui/dashboard/file_menu.cljs:240 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.duplicate-multi" msgstr "ṣe ẹ̀dà %s fáìlì" -#: src/app/main/ui/dashboard/placeholder.cljs:32 -#, markdown +#: src/app/main/ui/dashboard/grid.cljs +#, fuzzy, markdown msgid "dashboard.empty-placeholder-drafts" msgstr "" -"\"\" fáìlí tí a dàpọ̀ mọ yàrá ìkàwé á hàn níbí yìí. gbìyànjú láti má a " -"pín àwon fáìlì rẹ̀ tàbí ṣàfikún láti ibi [yàrá ìkàwé wa àti àwòṣe " +"\"\" fáìlí tí a dàpọ̀ mọ yàrá ìkàwé á hàn níbí yìí. gbìyànjú láti má a pín " +"àwon fáìlì rẹ̀ tàbí ṣàfikún láti ibi [yàrá ìkàwé wa àti àwòṣe " "](https://penpot.app/libraries-templates.html)." -#: src/app/main/ui/dashboard/file_menu.cljs:249 msgid "dashboard.export-binary-multi" msgstr "sọ àwọn fáìlì pẹ́ẹ́pọtì kalẹ́ %s (.pẹ́ńpọtì)" -#: src/app/main/ui/workspace/main_menu.cljs:605 msgid "dashboard.export-frames" msgstr "fi bọọdù ráńṣẹ bí i PDF" -#: src/app/main/ui/export.cljs:201 +#: src/app/main/ui/export.cljs msgid "dashboard.export-frames.title" msgstr "fi ráńṣẹ́ bí i PDF" -#, unused msgid "dashboard.export-multi" msgstr "fi pẹ́ńpọtì ráńṣẹ́%s files" -#: src/app/main/ui/export.cljs:109 +#: src/app/main/ui/export.cljs msgid "dashboard.export-multiple.selected" msgstr "% ti %s ẹ́límẹ́ǹti tí a yàn" -#: src/app/main/ui/workspace/main_menu.cljs:578 +#: src/app/main/ui/workspace/header.cljs msgid "dashboard.export-shapes" msgstr "fi ráńṣẹ" -#: src/app/main/ui/export.cljs:180 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.how-to" msgstr "" "o lé ṣe àfikún ti ètò ìfiráńṣẹ si ẹ́límẹ́ǹtì láti bi àmì ohun ìní ( níbi " "ìsàlẹ̀ báà lẹ́gbẹ̀ẹ́ ọ̀tun )." -#: src/app/main/ui/export.cljs:184 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.how-to-link" msgstr "àlàyé bí a ti ṣètò ìfiráńṣẹ sí pẹ́ńpọtì ." -#: src/app/main/ui/export.cljs:179 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.no-elements" msgstr "kòsí àwọn ẹ́límẹ́ǹtì pẹ̀lú ètò ìfirańńṣẹ." -#: src/app/main/ui/export.cljs:190 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.title" msgstr "àṣàyàn ìfiránṣẹ́" -#: src/app/main/ui/dashboard/file_menu.cljs:252 msgid "dashboard.export-standard-multi" msgstr "danlóòdù %s àwọn ojúlówó fáìli (.svg + .json)" -#: src/app/main/ui/export.cljs:427 msgid "dashboard.export.detail" msgstr "* ó le ní àwọn ẹ̀yà ara, àwòrán àti àwon àwọ̀ àti / tàbí àtẹ̀jáde." -#: src/app/main/ui/export.cljs:435 msgid "dashboard.export.options.all.message" msgstr "" "àwọn fáìli tí ó wà nínú yàrá ìkàwé pípín á dàpọ̀ mọ́ ti ìfiráńṣẹ́, fún " "síṣetọ́jútheir linkage ìsopọ̀ wọn." -#: src/app/main/ui/export.cljs:436 msgid "dashboard.export.options.all.title" msgstr "ṣe ìfiráńṣẹ́ yàrá ìkàwé pípín" -#: src/app/main/ui/export.cljs:437 msgid "dashboard.export.options.detach.message" msgstr "" "Shared libraries will not be included in the export and no assets will be " "yàrá ìkàwé pípín kò ní sí nínú ti ìfiráńṣẹ́ àti pé kò ni ohun ìní kan tí " "a ó fi kún yàrá ìkàwé. " -#: src/app/main/ui/export.cljs:438 msgid "dashboard.export.options.detach.title" msgstr "ṣe ìtọ́jú ohun ìní iyàrá ìkàwé pípín bí i nǹkan tó jẹ́ kókó" -#: src/app/main/ui/export.cljs:439 msgid "dashboard.export.options.merge.message" msgstr "" "á fi fáìlì rẹ ráńṣẹ́ pẹ̀lú gbogbo àwọn ohun ìní tó wà láyìíka ni a ó papọ̀ " "sínú fáìlì yàrá ìkàwé." -#: src/app/main/ui/export.cljs:440 msgid "dashboard.export.options.merge.title" msgstr "da ohun ìní yàrá ìkàwé pípín pọ̀ mọ́ fáìlì yàrá ìkàwé" -#: src/app/main/ui/export.cljs:418 msgid "dashboard.export.title" msgstr "fi àwọn fáìlì ráńṣẹ" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:309 msgid "dashboard.fonts.deleted-placeholder" msgstr "fọ́ǹtì tó sọnù" -#: src/app/main/ui/dashboard/fonts.cljs:206 +#: src/app/main/ui/dashboard/fonts.cljs msgid "dashboard.fonts.dismiss-all" msgstr "yọ gbogbo wọn kúrò" -#: src/app/main/ui/dashboard/fonts.cljs:436 msgid "dashboard.fonts.empty-placeholder" msgstr "àwọn fọ́ǹtì tí o ọpulóòdù yó hàn níbí." -#: src/app/main/ui/dashboard/fonts.cljs:170 #, markdown msgid "dashboard.fonts.hero-text1" msgstr "" @@ -500,7 +456,6 @@ msgstr "" "soso**. O lè ọpulóòdù fọ́ǹtì pẹ̀lú àwọn ìlànà wọ̀nyí: **TTF, OTF and " "WOFF** (ẹyọ kan péré la ó nílò)." -#: src/app/main/ui/dashboard/fonts.cljs:182 #, markdown msgid "dashboard.fonts.hero-text2" msgstr "" @@ -509,11 +464,10 @@ msgstr "" "òfin pẹ́ńpọtìiṣẹ́](https://pẹ́ńpọtì.apù/àwọn òfin.html). o sì le fẹ́ kà " "nípa[ ìwé àṣẹ- pẹ́ńpọtì](https://www.taipogíráfì.com/faq)." -#: src/app/main/ui/dashboard/fonts.cljs:202 +#: src/app/main/ui/dashboard/fonts.cljs msgid "dashboard.fonts.upload-all" msgstr "ọpulóòdù gbogbo rẹ̀" -#: src/app/main/ui/dashboard/fonts.cljs:187 #, markdown msgid "dashboard.fonts.warning-text" msgstr "" @@ -524,4528 +478,4056 @@ msgstr "" "Ní àfikún, a rẹkọmẹ́ǹdì lílo[tíráńsìfọtà(https://tíráńsìfọtà.org/) láti " "pilẹ̀ṣẹ̀ àwọn wẹ́bù fọ́ǹtì láti túnṣeàsìṣe. " -#: src/app/main/ui/dashboard/import.cljs:472, src/app/main/ui/dashboard/project_menu.cljs:108 msgid "dashboard.import" msgstr "gbé àwọn fáìlì pẹ́ńpọtì wọlé" -#: src/app/main/ui/dashboard/import.cljs:304, src/app/worker/import.cljs:753, src/app/worker/import.cljs:755 msgid "dashboard.import.analyze-error" msgstr "ooho! a kò lè gbé fáìlì yìí wọlé" -#: src/app/main/ui/dashboard/import.cljs:308 msgid "dashboard.import.import-error" msgstr "wàhálà wà láti gbé kan wà láti gbé fáìlì wọlé . fáìlì kò wọlé." -#: src/app/main/ui/dashboard/import.cljs:481, src/app/main/ui/dashboard/import.cljs:488 msgid "dashboard.import.import-warning" msgstr "àwọn fáìlì tí ó ní nǹkan tí kò fẹsẹ múlẹ̀ ti di yíyọ kúro." -#: src/app/main/ui/dashboard/import.cljs:144 msgid "dashboard.import.progress.process-colors" msgstr "síṣe ètò àwọ̀" -#: src/app/main/ui/dashboard/import.cljs:153 msgid "dashboard.import.progress.process-components" msgstr "síṣe ètò àwọn irin iṣẹ́" -#: src/app/main/ui/dashboard/import.cljs:150 msgid "dashboard.import.progress.process-media" msgstr "síṣe ètò àwọn ohun ìgbéròyìn jáde" -#: src/app/main/ui/dashboard/import.cljs:141 msgid "dashboard.import.progress.process-page" msgstr "síṣe ètò ojú ìwe : %s" -#: src/app/main/ui/dashboard/import.cljs:147 msgid "dashboard.import.progress.process-typographies" msgstr "síṣe ètò àkọsílẹ̀ ojú ìwé" -#: src/app/main/ui/dashboard/import.cljs:135 msgid "dashboard.import.progress.upload-data" msgstr "ọpulóòdù dátà sínú sáfà (%s/%s)" -#: src/app/main/ui/dashboard/import.cljs:138 msgid "dashboard.import.progress.upload-media" msgstr "ọpulóòdù fáìlì: %s" -#: src/app/main/ui/dashboard/team.cljs:109 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.invite-profile" msgstr "pe àwọn ènìyàn" -#: src/app/main/ui/dashboard/sidebar.cljs:547, src/app/main/ui/dashboard/sidebar.cljs:556, src/app/main/ui/dashboard/sidebar.cljs:563, src/app/main/ui/dashboard/team.cljs:312 +#: src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.leave-team" msgstr "fẹgbẹ́ sílẹ̀" -#: src/app/main/ui/dashboard/templates.cljs:88, src/app/main/ui/dashboard/templates.cljs:163 msgid "dashboard.libraries-and-templates" msgstr "yàrá ìkàwé àti àwọn àwòṣe" -#: src/app/main/ui/dashboard/templates.cljs:164 msgid "dashboard.libraries-and-templates.explore" msgstr "ṣe ìwákiri ọ̀pọ̀ wọn kí o sì mọ bí ó ṣe sojúṣe tiẹ" -#: src/app/main/ui/dashboard/import.cljs:365 msgid "dashboard.libraries-and-templates.import-error" msgstr "wàhálà wà fún gbígbé tẹ́ńpílétì wọlé. tẹ́ńpílétì kò wọlé." -#: src/app/main/ui/dashboard/libraries.cljs:53 +#: src/app/main/ui/dashboard/libraries.cljs msgid "dashboard.libraries-title" msgstr "yàrá ìkàwé" -#: src/app/main/ui/dashboard/placeholder.cljs:45 +#: src/app/main/ui/dashboard/grid.cljs msgid "dashboard.loading-files" msgstr "ṣe ìkójọpọ̀ àwọn fáìlí rẹ …" -#: src/app/main/ui/dashboard/fonts.cljs:431 msgid "dashboard.loading-fonts" msgstr "ṣèkójọpọ̀ àwọ fọ́ǹtì rẹ …" -#: src/app/main/ui/dashboard/file_menu.cljs:281, src/app/main/ui/dashboard/project_menu.cljs:100 +#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.move-to" msgstr "gbé lọ" -#: src/app/main/ui/dashboard/file_menu.cljs:245 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.move-to-multi" msgstr "gbé %s àwọn fáìlì lọ" -#: src/app/main/ui/dashboard/file_menu.cljs:226 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.move-to-other-team" msgstr "gbé lọ sí ẹgbẹ́ mìíràn" -#: src/app/main/ui/dashboard/files.cljs:105, src/app/main/ui/dashboard/projects.cljs:252, src/app/main/ui/dashboard/projects.cljs:253 +#: src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/files.cljs msgid "dashboard.new-file" msgstr "+ fáìlì tuntun" -#: src/app/main/data/dashboard.cljs:958, src/app/main/data/dashboard.cljs:1181 +#: src/app/main/data/dashboard.cljs msgid "dashboard.new-file-prefix" msgstr "fáìlì tuntun" -#: src/app/main/ui/dashboard/projects.cljs:55 +#: src/app/main/ui/dashboard/projects.cljs msgid "dashboard.new-project" msgstr "+ iṣẹ́ àgbéṣe tuntun" -#: src/app/main/data/dashboard.cljs:726, src/app/main/data/dashboard.cljs:1184 +#: src/app/main/data/dashboard.cljs msgid "dashboard.new-project-prefix" msgstr "iṣẹ́ àgbéṣe tuntun" -#: src/app/main/ui/dashboard/search.cljs:60 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.no-matches-for" msgstr "kò sí èyí tó báramu fún un“%s“" -#: src/app/main/ui/dashboard/sidebar.cljs:827 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.no-projects-placeholder" msgstr "àwon iṣẹ́ àgbéṣe tí a kànpọ á hàn níbí" -#: src/app/main/ui/auth/verify_token.cljs:33 +#: src/app/main/ui/auth/verify_token.cljs msgid "dashboard.notifications.email-changed-successfully" msgstr "a ti mú ímeèlì rẹ dójú ìwọn dáadáa" -#: src/app/main/ui/auth/verify_token.cljs:27 +#: src/app/main/ui/auth/verify_token.cljs msgid "dashboard.notifications.email-verified-successfully" msgstr "a ti ṣe ìwádìí ímeèlì rẹ dáadáa" -#: src/app/main/ui/settings/password.cljs:37 +#: src/app/main/ui/settings/password.cljs msgid "dashboard.notifications.password-saved" msgstr "a ti fi ọ̀rọ̀ ìgbaniwọlé rẹ pamọ́ dáadáa!" -#: src/app/main/ui/dashboard/team.cljs:1081 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.num-of-members" msgstr "%s àwọn ọmọ ẹgbẹ́" -#: src/app/main/ui/dashboard/file_menu.cljs:267 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.open-in-new-tab" msgstr "ṣí fáìlì sínú tábù tuntun" -#: src/app/main/ui/dashboard/files.cljs:117, src/app/main/ui/dashboard/projects.cljs:260, src/app/main/ui/dashboard/projects.cljs:261 msgid "dashboard.options" msgstr "àwọn àṣàyàn" -#: src/app/main/ui/settings/password.cljs:106, src/app/main/ui/settings/password.cljs:119 +#: src/app/main/ui/settings/password.cljs msgid "dashboard.password-change" msgstr "yí ọ̀rọ̀ ìgbaniwọlé padà" -#: src/app/main/ui/dashboard/pin_button.cljs:24, src/app/main/ui/dashboard/project_menu.cljs:95 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.pin-unpin" msgstr "pínì/yọ pínì kúrò" -#: src/app/main/ui/dashboard/projects.cljs:51 +#: src/app/main/ui/dashboard/projects.cljs msgid "dashboard.projects-title" msgstr "àwọn iṣẹ́ àgbéṣe" -#: src/app/main/ui/settings/profile.cljs:86 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.remove-account" msgstr "o fẹ́ yọ àkáǹtì rẹ kúro?" #: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused msgid "dashboard.remove-shared" msgstr "yọ ọ́ kúrò gẹ́gẹ́ bí yàrá kàwé pípín" -#: src/app/main/ui/settings/profile.cljs:78 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.save-settings" msgstr "fi àwọn eto pamọ́" -#: src/app/main/ui/dashboard/sidebar.cljs:246, src/app/main/ui/dashboard/sidebar.cljs:247 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.search-placeholder" msgstr "ṣàwárí…" -#: src/app/main/ui/dashboard/search.cljs:55 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.searching-for" msgstr "ṣàwárí fún “%s“…" -#: src/app/main/ui/settings/options.cljs:56 +#: src/app/main/ui/settings/options.cljs msgid "dashboard.select-ui-language" msgstr "yan èdè ui" -#: src/app/main/ui/settings/options.cljs:63 +#: src/app/main/ui/settings/options.cljs msgid "dashboard.select-ui-theme" msgstr "yan àkọlé" -#: src/app/main/ui/dashboard/projects.cljs:282 +#: src/app/main/ui/dashboard/grid.cljs msgid "dashboard.show-all-files" msgstr "fi gbogbo àwn fáìlì hàn" -#: src/app/main/ui/dashboard/project_menu.cljs:59 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.success-delete-project" msgstr "iṣẹ́ àgbéṣe rẹ ti parẹ́ dáadáa" -#: src/app/main/ui/dashboard/project_menu.cljs:33 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.success-duplicate-project" msgstr "a ti ṣe ẹ̀dà iṣẹ́ àgbéṣe rẹ dáadáa" -#: src/app/main/ui/dashboard/file_menu.cljs:130, src/app/main/ui/dashboard/grid.cljs:558, src/app/main/ui/dashboard/sidebar.cljs:152 +#: src/app/main/ui/dashboard/grid.cljs, src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-move-file" msgstr "a ti gbé fáìlì rẹ kúro dáadáa" -#: src/app/main/ui/dashboard/file_menu.cljs:129 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-move-files" msgstr "a ti gbé àwọn fáìlì rẹ kúrò dáadáa" -#: src/app/main/ui/dashboard/project_menu.cljs:54 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.success-move-project" msgstr "a ti gbé iṣẹ́ àgbéṣe rẹ kúrò dáadáa" -#: src/app/main/ui/dashboard/team.cljs:1052 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.team-info" msgstr "àlàyé ẹgbẹ́" -#: src/app/main/ui/dashboard/team.cljs:1070 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.team-members" msgstr "àwọn ọmọ ẹgbẹ́" -#: src/app/main/ui/dashboard/team.cljs:1085 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.team-projects" msgstr "iṣẹ́ àgbéṣe ọmọ ẹgbẹ́" -#: src/app/main/ui/settings/options.cljs:61 +#: src/app/main/ui/settings/options.cljs msgid "dashboard.theme-change" msgstr "àkọlé ui" -#: src/app/main/ui/dashboard/search.cljs:42 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.title-search" msgstr "ṣàwárí àwọn èsì" -#: src/app/main/ui/dashboard/search.cljs:50 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.type-something" msgstr "tẹ̀ láti rí àwọn èsì" -#: src/app/main/ui/dashboard/file_menu.cljs:287, src/app/main/ui/workspace/main_menu.cljs:566 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.unpublish-shared" msgstr "yàrá ìkàwé tí a kòtí ì gbé jáde" -#: src/app/main/ui/settings/options.cljs:71 +#: src/app/main/ui/settings/password.cljs, src/app/main/ui/settings/options.cljs msgid "dashboard.update-settings" msgstr "mú àwọn ètò dójú ìwọ̀n" -#: src/app/main/ui/dashboard/team.cljs:861 msgid "dashboard.webhooks.active" msgstr "ti ń siṣẹ́" -#: src/app/main/ui/dashboard/team.cljs:862 msgid "dashboard.webhooks.active.explain" msgstr "When this hook is triggered event details will be delivered" -#: src/app/main/ui/dashboard/team.cljs:852 msgid "dashboard.webhooks.content-type" msgstr "ẹ̀yà kọ́ńtẹ́ǹtì" -#: src/app/main/ui/dashboard/team.cljs:885 msgid "dashboard.webhooks.create" msgstr "ṣẹ̀dá ìkọ́-wẹ́bù" -#: src/app/main/ui/dashboard/team.cljs:775 msgid "dashboard.webhooks.create.success" msgstr "a ti ṣẹ̀dá ìkọ́-wẹ́bù dáadáa ." -#: src/app/main/ui/dashboard/team.cljs:882 msgid "dashboard.webhooks.description" msgstr "" "àwọn ìkọ́-wẹ́bù jẹ́ ọ̀nà tó rọrùn láti fi ààyè sílẹ̀ fún àwọn ààyè " "ayélujára mìíràn àti awọn ápù ṣe filọ́ tí àwọn ìṣẹ̀lẹ̀ kan bá ní " "pẹ́ńpọtì’’ a ó fi ìbéèrè ráńṣẹ́ sí ọ̀kọ̀kan wọn tí urls tó o pèsè." -#: src/app/main/ui/dashboard/team.cljs:1005 msgid "dashboard.webhooks.empty.add-one" msgstr "tẹ bọ́tínnì \"fikún ìkọ́- wẹ́bù\" láti fì kan sí i." -#: src/app/main/ui/dashboard/team.cljs:1004 msgid "dashboard.webhooks.empty.no-webhooks" msgstr "kò sí ìkọ́-wẹ́bù tí a ṣẹ̀da´dì sisìnyí." -#: src/app/main/ui/settings.cljs:31 +#: src/app/main/ui/settings.cljs msgid "dashboard.your-account-title" msgstr "àkáǹtì rẹ" -#: src/app/main/ui/settings/profile.cljs:70 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.your-email" msgstr "ímeèlì" -#: src/app/main/ui/settings/profile.cljs:62 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.your-name" msgstr "ímeèlì rẹ" -#: src/app/main/ui/dashboard/file_menu.cljs:38, src/app/main/ui/dashboard/fonts.cljs:33, src/app/main/ui/dashboard/libraries.cljs:42, src/app/main/ui/dashboard/projects.cljs:318, src/app/main/ui/dashboard/search.cljs:30, src/app/main/ui/dashboard/sidebar.cljs:312, src/app/main/ui/dashboard/team.cljs:495, src/app/main/ui/dashboard/team.cljs:729, src/app/main/ui/dashboard/team.cljs:991, src/app/main/ui/dashboard/team.cljs:1038 +#: src/app/main/ui/dashboard/search.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/libraries.cljs, src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.your-penpot" msgstr "pẹ́ńpọtì rẹ" -#: src/app/main/ui/alert.cljs:32 +#: src/app/main/ui/alert.cljs msgid "ds.alert-ok" msgstr "ó dára" -#: src/app/main/ui/alert.cljs:31, src/app/main/ui/alert.cljs:34 +#: src/app/main/ui/alert.cljs msgid "ds.alert-title" msgstr "àkíyèsí" -#: src/app/main/ui/confirm.cljs:83 +#: src/app/main/ui/confirm.cljs msgid "ds.component-subtitle" msgstr "ní láti ṣe ìmúdójú ìwọ̀n àwọn irin iṣẹ́:" -#: src/app/main/ui/confirm.cljs:36, src/app/main/ui/workspace/plugins.cljs:246 +#: src/app/main/ui/confirm.cljs msgid "ds.confirm-cancel" msgstr "fagilé e" -#: src/app/main/ui/confirm.cljs:37, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:141 +#: src/app/main/ui/confirm.cljs msgid "ds.confirm-ok" msgstr "ó dára" -#: src/app/main/ui/auth/login.cljs:62 +#: src/app/main/ui/auth/login.cljs msgid "errors.auth-provider-not-configured" msgstr "a kò tí ì fàṣẹ si àtúntò olùpèṣè." -#: src/app/main/errors.cljs:104 msgid "errors.auth.unable-to-login" msgstr "ó dàbí pé o kò tí ì fàṣẹ sí i tàbí àkókò ti kọjá ." -#: src/app/main/data/fonts.cljs:189 msgid "errors.bad-font" msgstr "fọ́ǹtì %s kò ṣe kójọpọ̀" -#: src/app/main/data/fonts.cljs:188 msgid "errors.bad-font-plural" msgstr "àwọn fọ́ǹtì %s kò ṣe kójọpọ̀" -#: src/app/main/data/workspace/media.cljs:198 msgid "errors.cannot-upload" msgstr "kò le ọpulóòdù fáìlì ìgbéròyìn-jáde." -#: src/app/main/data/workspace.cljs:1598 +#: src/app/main/data/workspace.cljs msgid "errors.clipboard-not-implemented" msgstr "a ṣàwákiri rẹ kò le ṣe iṣẹ́ yìí" -#: src/app/main/ui/auth/verify_token.cljs:82, src/app/main/ui/settings/change_email.cljs:46 +#: src/app/main/ui/auth/verify_token.cljs, src/app/main/ui/settings/change_email.cljs msgid "errors.email-already-exists" msgstr "ímeèlì yìí ti jẹ́ lílò tẹ́lẹ" -#: src/app/main/ui/auth/verify_token.cljs:87 +#: src/app/main/ui/auth/verify_token.cljs msgid "errors.email-already-validated" msgstr "a ti fọwọ́ sí ímeèlì rẹ tẹ́lẹ̀." -#: src/app/main/ui/settings/password.cljs:28 msgid "errors.email-as-password" msgstr "o kò le lo ímeèlì rẹ gẹ́gẹ́ bí ọ̀rọ̀ ìgbaniwọlé" -#: src/app/main/ui/auth/recovery_request.cljs:63, src/app/main/ui/dashboard/team.cljs:578, src/app/main/ui/settings/change_email.cljs:54 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/settings/change_email.cljs, src/app/main/ui/dashboard/team.cljs msgid "errors.email-has-permanent-bounces" msgstr "Ímeèlì «%s» ti ní ìjábọ̀ ọ̀pọ̀ọlọpọ̀ ìta-bọn-ọ̀n ti pẹ́." -#: src/app/main/ui/auth/login.cljs:81, src/app/main/ui/auth/recovery_request.cljs:31, src/app/main/ui/auth/register.cljs:43 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs, src/app/main/ui/auth/recovery_request.cljs msgid "errors.email-invalid" msgstr "Tẹ àti wọlé pẹ̀lú ímeèlì tó wúlo jọ̀wọ́" -#: src/app/main/ui/settings/change_email.cljs:35 +#: src/app/main/ui/settings/change_email.cljs msgid "errors.email-invalid-confirmation" msgstr "Ímeèlì tí a ti mọ̀dájú gbọ́dọ̀ báramu" -#: src/app/main/ui/dashboard/team.cljs:170 msgid "errors.email-spam-or-permanent-bounces" msgstr "Ímeèlì ti «%s» ń jábọ̀ gẹ́gẹ́ bí i awúrúju tàbí ìta-bọ̀n-ọnọǹ tipẹ́." -#: src/app/main/errors.cljs:231, src/app/main/errors.cljs:245 +#: src/app/main/errors.cljs msgid "errors.feature-not-supported" msgstr "Àwọn ẹ̀yà ara ẹ̀rọ '%s' kò ní àtìlẹ́yìn." -#: src/app/main/data/users.cljs:709, src/app/main/ui/auth/login.cljs:65, src/app/main/ui/auth/login.cljs:116, src/app/main/ui/auth/register.cljs:69, src/app/main/ui/auth/register.cljs:237, src/app/main/ui/auth/verify_token.cljs:92, src/app/main/ui/dashboard/team.cljs:173, src/app/main/ui/onboarding/team_choice.cljs:95, src/app/main/ui/settings/access_tokens.cljs:91, src/app/main/ui/settings/feedback.cljs:52 +#: src/app/main/ui/auth/verify_token.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/dashboard/team.cljs msgid "errors.generic" msgstr "Àsìṣe kan ti ṣẹlẹ̀." -#: src/app/main/ui/components/color_input.cljs:57 +#: src/app/main/ui/components/color_input.cljs msgid "errors.invalid-color" msgstr "àwọ̀ tó ti díbàjẹ́" -#: src/app/main/ui/static.cljs:44 msgid "errors.invite-invalid.info" msgstr "Èyí tí a pè le parẹ́ tàbí ki àkókò lekọjá ." -#: src/app/main/ui/auth/login.cljs:101 +#: src/app/main/ui/auth/login.cljs msgid "errors.ldap-disabled" msgstr "Ìfàṣẹsí LDAP kò ṣe é ṣe ." -#: src/app/main/errors.cljs:239 +#: src/app/main/errors.cljs msgid "errors.max-quote-reached" msgstr "O ti débi '%s' ìfàmìsí. Késí i pẹ̀lú àtìlẹ́yìn ." -#: src/app/main/data/workspace/media.cljs:184 +#: src/app/main/data/workspace/persistence.cljs msgid "errors.media-too-large" msgstr "Àwòrán tóbi púpọ ju ohun tí a le fisí lọ." -#: src/app/main/data/media.cljs:65, src/app/main/data/workspace/media.cljs:172, src/app/main/data/workspace/media.cljs:175, src/app/main/data/workspace/media.cljs:178, src/app/main/data/workspace/media.cljs:181 +#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/workspace/persistence.cljs, src/app/main/data/workspace/persistence.cljs, src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs msgid "errors.media-type-not-allowed" msgstr "Ó dàbí pé èyí kì í ṣe àwòrán tó fẹsẹ́ múlẹ̀." -#: src/app/main/ui/dashboard/team.cljs:574 +#: src/app/main/ui/dashboard/team.cljs msgid "errors.member-is-muted" msgstr "" "Pírófáìlì ímeèlì tí ò ǹ pè ti dákẹ (ti jábọ̀ àwúrúju tàbí ìtabọ̀n-ọ̀n tó " "ga)." -#: src/app/main/ui/settings/password.cljs:61 +#: src/app/main/ui/settings/password.cljs msgid "errors.password-invalid-confirmation" msgstr "Ijẹ́rìísí ọ̀rọ̀ ìgbaniwọlé rẹ gbọ́dọ̀ báramu" -#: src/app/main/ui/settings/password.cljs:64 +#: src/app/main/ui/settings/password.cljs msgid "errors.password-too-short" msgstr "Ọ̀rọ̀ ìgbaniwọlé kò gbọdọ̀ dín ní lẹ́tà mẹ́jọ" -#: src/app/main/data/users.cljs:703, src/app/main/ui/auth/login.cljs:97, src/app/main/ui/auth/login.cljs:105 msgid "errors.profile-blocked" msgstr "Ti dínà mọ́ pírófáìlì" -#: src/app/main/ui/auth/recovery_request.cljs:60, src/app/main/ui/dashboard/team.cljs:164, src/app/main/ui/dashboard/team.cljs:570, src/app/main/ui/settings/change_email.cljs:50 +#: src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/settings/change_email.cljs, src/app/main/ui/dashboard/team.cljs msgid "errors.profile-is-muted" msgstr "Ímeèlì pírófáìlì rẹ ti ní ìdákẹ́ (ìjábọ̀ àwúrúju tàbí ìtabọ̀n-ọ̀n tó ga)." -#: src/app/main/data/users.cljs:701, src/app/main/ui/auth/register.cljs:60 +#: src/app/main/ui/auth/register.cljs msgid "errors.registration-disabled" msgstr "Ìforúkọ-sílẹ̀ kò ṣe é ṣe lọ́wọ́lọ́wọ́." -#: src/app/main/ui/dashboard/sidebar.cljs:365, src/app/main/ui/dashboard/team.cljs:359 msgid "errors.team-leave.insufficient-members" msgstr "kí àwọn ọmọ ẹgbẹ́ tí kò péye fi ẹgbẹ́ sílẹ̀, àbí bóyá o fẹ́ paárẹ́ ni ." -#: src/app/main/ui/dashboard/sidebar.cljs:368, src/app/main/ui/dashboard/team.cljs:362 msgid "errors.team-leave.member-does-not-exists" msgstr "Kòsí ọmọ ẹgbẹ́ tí o fẹ́ yàn ." -#: src/app/main/ui/dashboard/sidebar.cljs:371, src/app/main/ui/dashboard/team.cljs:365 msgid "errors.team-leave.owner-cant-leave" msgstr "Oní nǹkan kò le fi ẹgbẹ́ sílẹ̀ , o gbọ́dọ̀ tún ṣe àtúnyàn iṣẹ́ oní nǹkan." -#: src/app/main/data/media.cljs:71 +#: src/app/main/data/media.cljs, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs msgid "errors.unexpected-error" msgstr "Àsìṣe tí a kòrò tẹ́lẹ̀ ti ṣẹlẹ." -#: src/app/main/ui/auth/verify_token.cljs:60 +#: src/app/main/ui/auth/verify_token.cljs msgid "errors.unexpected-token" msgstr "Tókìnnì àìmọ̀" -#: src/app/main/ui/dashboard/team.cljs:796 msgid "errors.webhooks.connection" msgstr "Àsìṣe nínú ètò ìsopọ̀, kò lè dé ibi URL" -#: src/app/main/ui/dashboard/team.cljs:790 msgid "errors.webhooks.invalid-uri" msgstr "URL kò páásì ìfọwọ́sí." -#: src/app/main/ui/dashboard/team.cljs:949 +#, fuzzy msgid "errors.webhooks.last-delivery" msgstr "Èyí tí a fijíṣẹ́ kẹ́yìn kò dára." -#: src/app/main/ui/dashboard/team.cljs:792, src/app/main/ui/dashboard/team.cljs:952 msgid "errors.webhooks.ssl-validation" msgstr "Àsìṣe nínú ìfẹwọ́sí SSL ." -#: src/app/main/ui/dashboard/team.cljs:794 msgid "errors.webhooks.timeout" msgstr "Àkókò ti lọ" -#: src/app/main/ui/dashboard/team.cljs:788 msgid "errors.webhooks.unexpected" msgstr "Unexpected error on validating àsìṣe àìròtẹ́lẹ̀ lórí ìfọwọ́sí" -#: src/app/main/ui/dashboard/team.cljs:798, src/app/main/ui/dashboard/team.cljs:955 msgid "errors.webhooks.unexpected-status" msgstr "Ipò àìròtẹ́lẹ̀ %s" -#: src/app/main/ui/auth/login.cljs:109, src/app/main/ui/auth/login.cljs:113 +#: src/app/main/ui/auth/login.cljs msgid "errors.wrong-credentials" msgstr "Ímeèlì tàbí ọ̀rọ̀ ìgbaniwọlé kò tọ̀nà." -#: src/app/main/ui/settings/password.cljs:25 +#: src/app/main/ui/settings/password.cljs msgid "errors.wrong-old-password" msgstr "Ọ̀rọ̀ ìgbaniwọlé ti àtijọ́ kò tọ̀nà" -#: src/app/main/ui/settings/feedback.cljs:77 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.description" msgstr "Àpèjúwe" -#: src/app/main/ui/settings/feedback.cljs:95 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.discourse-go-to" msgstr "Lọ ibi àpérò pẹ́ńpọtì" -#: src/app/main/ui/settings/feedback.cljs:89 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.discourse-subtitle1" msgstr "" "Inú wa dùn láti rí ẹ níbí. Tí o bá nílò ìrànlọ́wọ, please search before " "you jọ̀wọ́ ṣàwárí kí o tó firáńṣẹ́." -#: src/app/main/ui/settings/feedback.cljs:88 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.discourse-title" msgstr "Agbègbè pẹ́ńpọtì" -#: src/app/main/ui/settings/feedback.cljs:72 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.subject" msgstr "Kókó-ọ̀rọ̀" -#: src/app/main/ui/settings/feedback.cljs:69 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.subtitle" msgstr "" "Jọ̀wọ́ ṣàpèjúwe ìdí tó wà fún ímeèlì rẹ, ṣàfihàn tì àríyànjiyàn bá wà, le " "jẹ́ èrò tàbí síṣe iyèméjì. Ìkan lára àwọn ọmọ ẹgbẹ́ wa yóò dáhùn láìpẹ́ " "láìjìnnà." -#: src/app/main/ui/settings/feedback.cljs:68 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.title" msgstr "Ímeèlì" -#: src/app/main/ui/settings/feedback.cljs:105 +#: src/app/main/ui/settings/feedback.cljs +#, fuzzy msgid "feedback.twitter-go-to" msgstr "Lọ sí Tíwítà" -#: src/app/main/ui/settings/feedback.cljs:99 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.twitter-subtitle1" msgstr "A wà níbí láti ṣe ìrànlọ́wọ́ fún àwọn ìbéèrè tó bá wà lórí iṣẹ́ ọnà." -#: src/app/main/ui/settings/feedback.cljs:98 +#: src/app/main/ui/settings/feedback.cljs +#, fuzzy msgid "feedback.twitter-title" msgstr "Àkáùnti àtìlẹ́yìn fún Tíwítà" -#: src/app/main/ui/settings/password.cljs:30 +#: src/app/main/ui/settings/password.cljs msgid "generic.error" msgstr "Àsìṣe kan ti ṣẹlẹ̀" -#: src/app/main/ui/viewer/inspect/attributes/blur.cljs:26 +#: src/app/main/ui/inspect/attributes/blur.cljs msgid "inspect.attributes.blur" msgstr "ìkùku ti wà" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:115 +#: src/app/main/ui/inspect/attributes/blur.cljs msgid "inspect.attributes.blur.value" msgstr "bó se péye" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:112 +#: src/app/main/ui/inspect/attributes/common.cljs msgid "inspect.attributes.color.hex" msgstr "dínà mọ́" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:114 +#: src/app/main/ui/inspect/attributes/common.cljs msgid "inspect.attributes.color.hsla" msgstr "Ti dínà mọ" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:113 +#: src/app/main/ui/inspect/attributes/common.cljs msgid "inspect.attributes.color.rgba" msgstr "RGBA" -#: src/app/main/ui/viewer/inspect/attributes/fill.cljs:57 +#: src/app/main/ui/inspect/attributes/fill.cljs msgid "inspect.attributes.fill" msgstr "Fílì" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:99, src/app/main/ui/viewer/inspect/attributes/image.cljs:51 +#: src/app/main/ui/inspect/attributes/image.cljs msgid "inspect.attributes.image.download" msgstr "Danlóòdù orísun àwòrán" -#: src/app/main/ui/viewer/inspect/attributes/image.cljs:39 +#: src/app/main/ui/inspect/attributes/image.cljs msgid "inspect.attributes.image.height" msgstr "Gíga" -#: src/app/main/ui/viewer/inspect/attributes/image.cljs:32 +#: src/app/main/ui/inspect/attributes/image.cljs msgid "inspect.attributes.image.width" msgstr "Fífẹ" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout" msgstr "Layout" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.height" msgstr "Gíga" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.left" msgstr "Òsì" #: src/app/main/ui/inspect/attributes/layout.cljs, src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.radius" msgstr "Rédíọ́sì" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.rotation" msgstr "Yíyí" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.top" msgstr "Òkè" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.width" msgstr "Fífẹ̀" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:57 +#: src/app/main/ui/inspect/attributes/shadow.cljs msgid "inspect.attributes.shadow" msgstr "Ibòòji" -#: src/app/main/ui/viewer/inspect/attributes/geometry.cljs:40 +#: src/app/main/ui/inspect/attributes/layout.cljs msgid "inspect.attributes.size" msgstr "Ìwọ̀n àti ipò" -#: src/app/main/ui/viewer/inspect/attributes/stroke.cljs:52 +#: src/app/main/ui/inspect/attributes/stroke.cljs msgid "inspect.attributes.stroke" msgstr "Stroke Sítírókì" -#, permanent, unused +#, permanent msgid "inspect.attributes.stroke.alignment.center" msgstr "Ààrin" -#, permanent, unused +#, permanent msgid "inspect.attributes.stroke.alignment.inner" msgstr "Nínú" -#, permanent, unused +#, permanent msgid "inspect.attributes.stroke.alignment.outer" msgstr "Ìtá" -#, unused msgid "inspect.attributes.stroke.style.dotted" msgstr "ti sàmì" -#, unused msgid "inspect.attributes.stroke.style.mixed" msgstr "Àdàlú" -#, unused msgid "inspect.attributes.stroke.style.none" msgstr "Kò sí" -#, unused msgid "inspect.attributes.stroke.style.solid" msgstr "Lágbára" #: src/app/main/ui/inspect/attributes/stroke.cljs -#, unused msgid "inspect.attributes.stroke.width" msgstr "Fífẹ̀" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:81, src/app/main/ui/viewer/inspect/attributes/text.cljs:194 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography" msgstr "Taipogíráfì" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:89 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.font-family" msgstr "Ẹbí Fọ́ǹtì" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:107 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.font-size" msgstr "Ìwọ̀n Fọ́ǹtì" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:98 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.font-style" msgstr "Àrà Fọ́ǹtì" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:116 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.font-weight" msgstr "Ìwúwo Fọ́ǹtì" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:134 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.letter-spacing" msgstr "Ìfàyè sí ààrin Lẹ́tà" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:125 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.line-height" msgstr "Gíga Ìlà" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:143 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.text-decoration" msgstr "Síṣe ọ̀rọ̀ lọ́ṣọ̀ọ́" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:145 msgid "inspect.attributes.typography.text-decoration.none" msgstr "Kò sí" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:146 msgid "inspect.attributes.typography.text-decoration.strikethrough" msgstr "Strikethrough" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:147 msgid "inspect.attributes.typography.text-decoration.underline" msgstr "Fàlà sí" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:156 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.text-transform" msgstr "ọ̀rọ̀ ti yí padà" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:158 msgid "inspect.attributes.typography.text-transform.lowercase" msgstr "Lẹ́tà Kékeré" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:159 msgid "inspect.attributes.typography.text-transform.none" msgstr "Kò sí" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:160 msgid "inspect.attributes.typography.text-transform.titlecase" msgstr "Àkọlé Lẹ́tà" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:161 msgid "inspect.attributes.typography.text-transform.uppercase" msgstr "Lẹ́tà ńlá" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:140 msgid "inspect.empty.help" msgstr "" "Tí o bá fẹ́ mọ̀ nípa àpẹẹrẹ alárà bẹ ààrin gbùngbùn àwọn pẹ́ńpọtì wò fún " "ìràlọ́wọ́" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:143 msgid "inspect.empty.more-info" msgstr "Àfikún àlàyé fún ìbẹ̀wò" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:135 msgid "inspect.empty.select" msgstr "Yan ìrísí, bọ́ọ̀dù tàbí ẹgbẹ́ láti lọ ṣe ìbẹ̀wò ohun ìní wọn àti kóòdù" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:125 +#: src/app/main/ui/inspect/right_sidebar.cljs msgid "inspect.tabs.code" msgstr "Kóòdù" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:98 msgid "inspect.tabs.code.selected.circle" msgstr "Àyíká" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:99 msgid "inspect.tabs.code.selected.component" msgstr "Ẹ̀yà" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:100 msgid "inspect.tabs.code.selected.curve" msgstr "Igun" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:101 msgid "inspect.tabs.code.selected.frame" msgstr "Bọ́ọ̀dù" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:102 msgid "inspect.tabs.code.selected.group" msgstr "Ẹgbẹ́" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:103 msgid "inspect.tabs.code.selected.image" msgstr "Àwòrán" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:104 msgid "inspect.tabs.code.selected.mask" msgstr "Ìbòjú" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:93 +#: src/app/main/ui/inspect/right_sidebar.cljs msgid "inspect.tabs.code.selected.multiple" msgstr "%s Ti yàn" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:105 msgid "inspect.tabs.code.selected.path" msgstr "Ipa-ọ̀nà" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:106 msgid "inspect.tabs.code.selected.rect" msgstr "Rectangle" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:107 msgid "inspect.tabs.code.selected.svg-raw" msgstr "SVG" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:108 msgid "inspect.tabs.code.selected.text" msgstr "Ọ̀rọ̀" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:115 +#: src/app/main/ui/inspect/right_sidebar.cljs msgid "inspect.tabs.info" msgstr "Àlàyé" -#: src/app/main/ui/workspace/main_menu.cljs:158 +#: src/app/main/ui/workspace/header.cljs msgid "label.shortcuts" msgstr "Ọ̀nà àbùjá" -#: src/app/main/ui/settings/sidebar.cljs:100 +#: src/app/main/ui/settings/sidebar.cljs msgid "labels.access-tokens" msgstr "Ṣàyẹ̀wò tókín-nì" -#: src/app/main/ui/dashboard/team.cljs:968 msgid "labels.active" msgstr "Ń siṣẹ́" -#: src/app/main/ui/dashboard/fonts.cljs:175 msgid "labels.add-custom-font" msgstr "Ṣàfikún àṣà Fọ́ǹtì" -#: src/app/main/ui/dashboard/team.cljs:120, src/app/main/ui/dashboard/team.cljs:276, src/app/main/ui/dashboard/team.cljs:519, src/app/main/ui/dashboard/team.cljs:549, src/app/main/ui/onboarding/team_choice.cljs:67 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs msgid "labels.admin" msgstr "Alábòjútó" -#: src/app/main/ui/onboarding/questions.cljs:174 -msgid "labels.adobe-xd" -msgstr "Àdòbí XD" - #: src/app/main/ui/workspace/comments.cljs -#, unused msgid "labels.all" msgstr "Gbogbo ẹ̀" -#: src/app/main/ui/auth.cljs:37 msgid "labels.and" msgstr "àti" -#: src/app/main/ui/onboarding/team_choice.cljs:162 msgid "labels.back" msgstr "Padá" -#: src/app/main/ui/static.cljs:59 +#: src/app/main/ui/static.cljs msgid "labels.bad-gateway.desc-message" msgstr "" "Ó dàbí ẹnipé o ní láti dúró díẹ̀ kí o tún gbìyàjú ; à ń siṣẹ́ díẹ̀ síṣe " "ìtọ́jú sáfà wa." -#: src/app/main/ui/static.cljs:58 +#: src/app/main/ui/static.cljs msgid "labels.bad-gateway.main-message" msgstr "Ọ̀nà-àbáwọle búburú" -#: src/app/main/data/common.cljs:112, src/app/main/ui/dashboard/change_owner.cljs:69, src/app/main/ui/dashboard/import.cljs:514, src/app/main/ui/dashboard/team.cljs:868, src/app/main/ui/delete_shared.cljs:35, src/app/main/ui/export.cljs:164, src/app/main/ui/export.cljs:460, src/app/main/ui/settings/access_tokens.cljs:188, src/app/main/ui/viewer/share_link.cljs:203, src/app/main/ui/workspace/sidebar/assets/groups.cljs:149 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.cancel" msgstr "Párẹ́" -#: src/app/main/ui/onboarding/questions.cljs:176 -msgid "labels.canva" -msgstr "Káńfà" - -#: src/app/main/ui/dashboard/projects.cljs:93, src/app/main/ui/export.cljs:478, src/app/main/ui/settings/access_tokens.cljs:183, src/app/main/ui/viewer/login.cljs:77, src/app/main/ui/viewer/share_link.cljs:174, src/app/main/ui/workspace/libraries.cljs:522 msgid "labels.close" msgstr "Tì í" -#: src/app/main/ui/dashboard/comments.cljs:104, src/app/main/ui/viewer/comments.cljs:70, src/app/main/ui/workspace/comments.cljs:126 +#: src/app/main/ui/dashboard/comments.cljs msgid "labels.comments" msgstr "dásí i" -#: src/app/main/ui/dashboard/sidebar.cljs:985, src/app/main/ui/workspace/main_menu.cljs:110 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.community" msgstr "Agbègbè" -#: src/app/main/ui/settings/password.cljs:103 +#: src/app/main/ui/settings/password.cljs msgid "labels.confirm-password" msgstr "Jẹ́rìísí" -#: src/app/main/ui/dashboard/import.cljs:520, src/app/main/ui/export.cljs:465, src/app/main/ui/onboarding/newsletter.cljs:101 msgid "labels.continue" msgstr "Tẹ̀ síwájú" -#, unused msgid "labels.continue-with" msgstr "Tẹ̀ síwájú pẹ̀lú" -#: src/app/main/ui/viewer/login.cljs:75 msgid "labels.continue-with-penpot" msgstr "O lè tẹ̀ síwájú pẹ̀lú àkáúnti pẹ́ńpọtì" -#: src/app/main/ui/dashboard/team.cljs:642 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.copy-invitation-link" msgstr "ṣà dàkọ ọ̀nà àsopọ̀" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:157, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:190 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "labels.create" msgstr "Ṣẹ̀dá" -#: src/app/main/ui/dashboard/team_form.cljs:101, src/app/main/ui/dashboard/team_form.cljs:121 +#: src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/dashboard/team_form.cljs msgid "labels.create-team" msgstr "Ṣẹ̀dá ẹgbẹ́ tuntun" -#: src/app/main/ui/dashboard/team_form.cljs:113 +#: src/app/main/ui/dashboard/team_form.cljs msgid "labels.create-team.placeholder" msgstr "Fi orúkọ ẹgbẹ́ tuntun wọlé" -#, unused msgid "labels.custom-fonts" msgstr "Kọ́sítọ́mù àwọn fọ́ǹtì" -#: src/app/main/ui/settings/sidebar.cljs:73 +#: src/app/main/ui/settings/sidebar.cljs msgid "labels.dashboard" msgstr "Dáṣìbọọ̀dù" -#: src/app/main/ui/dashboard/file_menu.cljs:306, src/app/main/ui/dashboard/fonts.cljs:255, src/app/main/ui/dashboard/fonts.cljs:332, src/app/main/ui/dashboard/fonts.cljs:346, src/app/main/ui/dashboard/project_menu.cljs:115, src/app/main/ui/dashboard/team.cljs:904, src/app/main/ui/settings/access_tokens.cljs:209, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:209 +#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "labels.delete" msgstr "Paárẹ́" -#: src/app/main/ui/comments.cljs:357 +#: src/app/main/ui/comments.cljs msgid "labels.delete-comment" msgstr "Pa kọ́mẹ́ǹtì rẹ́" -#: src/app/main/ui/comments.cljs:354 +#: src/app/main/ui/comments.cljs msgid "labels.delete-comment-thread" msgstr "Pa gbogbo kọ́mẹ́ǹtì rẹ́" -#: src/app/main/ui/dashboard/team.cljs:648 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.delete-invitation" msgstr "Pa ìfìwépè rẹ́" -#: src/app/main/ui/dashboard/file_menu.cljs:262 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.delete-multi-files" msgstr "Pa gbogbo %s fáìlì rẹ́" -#: src/app/main/ui/onboarding/questions.cljs:250 -msgid "labels.developer" -msgstr "Olùdásílẹ̀" - -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:199 msgid "labels.discard" msgstr "Yọ́ kúrò" -#: src/app/main/ui/dashboard/file_menu.cljs:28, src/app/main/ui/dashboard/files.cljs:72, src/app/main/ui/dashboard/files.cljs:156, src/app/main/ui/dashboard/projects.cljs:220, src/app/main/ui/dashboard/projects.cljs:224, src/app/main/ui/dashboard/sidebar.cljs:791 +#: src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/files.cljs, src/app/main/ui/dashboard/files.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "labels.drafts" msgstr "Kọ ọ́ sílẹ̀" -#: src/app/main/ui/comments.cljs:350, src/app/main/ui/dashboard/fonts.cljs:252, src/app/main/ui/dashboard/team.cljs:902, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:205 +#: src/app/main/ui/comments.cljs msgid "labels.edit" msgstr "sàtúnkà" -#, unused msgid "labels.edit-file" msgstr "sàtúnkà fáìlì" -#: src/app/main/ui/dashboard/team.cljs:118, src/app/main/ui/dashboard/team.cljs:279, src/app/main/ui/dashboard/team.cljs:520, src/app/main/ui/dashboard/team.cljs:553, src/app/main/ui/onboarding/team_choice.cljs:66 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs msgid "labels.editor" msgstr "Olóòtú" -#: src/app/main/ui/dashboard/team.cljs:661 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.expired-invitation" msgstr "Kọjá àkókò" -#: src/app/main/ui/export.cljs:173 msgid "labels.export" msgstr "Fi ránṣẹ́" -#: src/app/main/ui/settings/feedback.cljs:51 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.feedback-disabled" msgstr "Èsì kò siṣẹ́" -#: src/app/main/ui/settings/feedback.cljs:42 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.feedback-sent" msgstr "Èsì ti lọ" -#: src/app/main/ui/onboarding/questions.cljs:170 -msgid "labels.figma" -msgstr "Fígímà" - -#: src/app/main/ui/dashboard/fonts.cljs:412 msgid "labels.font-family" msgstr "Ẹbí fọ́ǹtì" -#, unused msgid "labels.font-providers" msgstr "Àwọn Olùpèṣè fọ́ǹtì" -#: src/app/main/ui/dashboard/fonts.cljs:413 msgid "labels.font-variants" msgstr "Àrà" -#: src/app/main/ui/dashboard/fonts.cljs:52, src/app/main/ui/dashboard/sidebar.cljs:811 msgid "labels.fonts" msgstr "Fọ̀ǹtì" -#: src/app/main/ui/onboarding/questions.cljs:263 -msgid "labels.founder" -msgstr "Olùdásílẹ̀/VP" - -#: src/app/main/ui/onboarding/questions.cljs:262 -msgid "labels.freelancer" -msgstr "Oníṣẹ́ ni mí" - -#: src/app/main/ui/dashboard/sidebar.cljs:1015, src/app/main/ui/workspace/main_menu.cljs:142 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.github-repo" msgstr "Báǹkì gítì-ọbù" -#: src/app/main/ui/dashboard/sidebar.cljs:1032, src/app/main/ui/settings/sidebar.cljs:113, src/app/main/ui/workspace/main_menu.cljs:171 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.give-feedback" msgstr "Fèsì padà" -#: src/app/main/ui/auth/recovery_request.cljs:110, src/app/main/ui/auth/register.cljs:285, src/app/main/ui/viewer/login.cljs:117 msgid "labels.go-back" msgstr "Padà sẹ́yìn" -#: src/app/main/ui/dashboard/sidebar.cljs:978, src/app/main/ui/workspace/main_menu.cljs:102 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.help-center" msgstr "Ibi ìranilọ́wọ́" -#: src/app/main/ui/viewer/comments.cljs:103, src/app/main/ui/workspace/comments.cljs:67 +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs msgid "labels.hide-resolved-comments" msgstr "Fi àwọn ọ̀rọ̀ tí a ti yanjú pamọ́" -#: src/app/main/ui/dashboard/team.cljs:969 msgid "labels.inactive" msgstr "kò ja fáfá" -#: src/app/main/ui/dashboard/fonts.cljs:410 msgid "labels.installed-fonts" msgstr "Fi àwọn fọ́ǹtì sí orí ẹ̀rọ" -#: src/app/main/ui/static.cljs:144 +#: src/app/main/ui/static.cljs msgid "labels.internal-error.desc-message" msgstr "" "Nǹkan bíburú ti ṣẹlè. Jọ̀wọ́ ṣe àtúnṣe iṣẹ́ náà àti pé tí wàhálà bá sì " "tẹ̀ síwájú, ké sí olùbásọ̀rọ̀." -#: src/app/main/ui/static.cljs:143 +#: src/app/main/ui/static.cljs msgid "labels.internal-error.main-message" msgstr "Àsìṣe ti abẹ́nú" -#: src/app/main/ui/onboarding/questions.cljs:178 -msgid "labels.invision" -msgstr "Ìkógun wọ̀lú" - -#: src/app/main/ui/dashboard/sidebar.cljs:516, src/app/main/ui/dashboard/team.cljs:89, src/app/main/ui/dashboard/team.cljs:97, src/app/main/ui/dashboard/team.cljs:708 +#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.invitations" msgstr "Ìfiwépè" -#: src/app/main/ui/settings/options.cljs:51 +#: src/app/main/ui/settings/options.cljs msgid "labels.language" msgstr "Èdè" -#: src/app/main/ui/dashboard/sidebar.cljs:1008, src/app/main/ui/workspace/main_menu.cljs:134 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.libraries-and-templates" msgstr "Àwọn yàrá ìkàwé & Tẹ́ńpílétì" -#: src/app/main/ui/viewer/header.cljs:203 msgid "labels.log-or-sign" msgstr "ṣí kí o wọle tàbí kí o ṣàmì wọlé" -#: src/app/main/ui/dashboard/sidebar.cljs:1040 +#: src/app/main/ui/settings.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.logout" msgstr "Padé kí ojáde" -#: src/app/main/ui/onboarding/questions.cljs:253 -msgid "labels.marketing" -msgstr "Títajà" - -#: src/app/main/ui/dashboard/team.cljs:468 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.member" msgstr "Ẹgbẹ" -#: src/app/main/ui/dashboard/sidebar.cljs:510, src/app/main/ui/dashboard/team.cljs:87, src/app/main/ui/dashboard/team.cljs:95 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.members" msgstr "Àwọn ọmọ Ẹgbẹ́" -#: src/app/main/ui/settings/password.cljs:96 +#: src/app/main/ui/settings/password.cljs msgid "labels.new-password" msgstr "Ọ̀rọ̀ Ìgbaniwọlé tuntun" -#: src/app/main/ui/dashboard/templates.cljs:269, src/app/main/ui/onboarding/questions.cljs:55 -msgid "labels.next" -msgstr "Èyí tó kàn" - -#: src/app/main/ui/dashboard/comments.cljs:128, src/app/main/ui/workspace/comments.cljs:161 +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/dashboard/comments.cljs msgid "labels.no-comments-available" msgstr "A ti gbé gbogbo yín dè! Àwọn ọ̀rọ̀ ìfitónilétí tuntun yí ó hàn níbí." -#: src/app/main/ui/dashboard/team.cljs:694 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.no-invitations" msgstr "kò si àwọn ìfìwépè kankan nílẹ̀." -#: src/app/main/ui/dashboard/team.cljs:696 +#: src/app/main/ui/dashboard/team.cljs #, markdown msgid "labels.no-invitations-hint" msgstr "Tẹ̀ ẹ́ **Pe àwọn ènìyàn** tẹ bọ́tìnnì láti pe àwọn ènìyàn sínú ẹgbẹ́." -#: src/app/main/ui/static.cljs:50 +#: src/app/main/ui/static.cljs msgid "labels.not-found.desc-message" msgstr "Ojú ìwé yìí le má sìí tàbí ò kò ni ìgbaniláàyè láti wọlé sí bẹ̀ ." -#: src/app/main/ui/static.cljs:49 +#: src/app/main/ui/static.cljs msgid "labels.not-found.main-message" msgstr "Óóho!" -#: src/app/main/ui/settings/password.cljs:89 +#: src/app/main/ui/settings/password.cljs msgid "labels.old-password" msgstr "Ọ̀rọ̀ ìgbaniwọlé àtijọ́" #: src/app/main/ui/workspace/comments.cljs -#, unused msgid "labels.only-yours" msgstr "Tìrẹ nìkan" -#, unused msgid "labels.or" msgstr "tàbí" -#: src/app/main/ui/onboarding/questions.cljs:145, src/app/main/ui/onboarding/questions.cljs:214, src/app/main/ui/onboarding/questions.cljs:303, src/app/main/ui/onboarding/questions.cljs:316, src/app/main/ui/onboarding/questions.cljs:389, src/app/main/ui/onboarding/questions.cljs:447 -msgid "labels.other" -msgstr "Òmíìràn(ní pàtó)" - -#: src/app/main/ui/dashboard/team.cljs:286, src/app/main/ui/dashboard/team.cljs:518, src/app/main/ui/dashboard/team.cljs:1076 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs msgid "labels.owner" msgstr "Oníǹkan" -#: src/app/main/ui/settings/sidebar.cljs:87 +#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.password" msgstr "Ọ̀rọ̀ ìgbaniwọlé" -#: src/app/main/ui/dashboard/team.cljs:662 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.pending-invitation" msgstr "Ńńdúró" -#: src/app/main/ui/onboarding/questions.cljs:51 -msgid "labels.previous" -msgstr "Tàtẹ̀yìn wá" - -#: src/app/main/ui/onboarding/questions.cljs:254 -msgid "labels.product-management" -msgstr "Ohun títà tàbí iṣẹ́ àgbéṣe Olùṣàkóso" - -#: src/app/main/ui/settings/profile.cljs:118, src/app/main/ui/settings/sidebar.cljs:82 +#: src/app/main/ui/settings/sidebar.cljs msgid "labels.profile" msgstr "Pírófáìlì" -#: src/app/main/ui/dashboard/sidebar.cljs:784 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.projects" msgstr "Àwọn iṣẹ́ àgbéṣe" -#: src/app/main/ui/dashboard/sidebar.cljs:998, src/app/main/ui/settings/sidebar.cljs:106, src/app/main/ui/workspace/main_menu.cljs:126 +#: src/app/main/ui/settings/sidebar.cljs msgid "labels.release-notes" msgstr "Fi àkọsílẹ̀ rẹ sílẹ̀" #: src/app/main/ui/workspace.cljs -#, unused msgid "labels.reload-file" msgstr "Tún gbé fáìlì sí i" #: src/app/main/ui/workspace/libraries.cljs, src/app/main/ui/dashboard/team.cljs -#, unused msgid "labels.remove" msgstr "Yọ ọ́ kúrò" -#: src/app/main/ui/dashboard/team.cljs:316 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.remove-member" msgstr "Yọ ọmọ ẹgbẹ́ kúrò" -#: src/app/main/ui/dashboard/file_menu.cljs:271, src/app/main/ui/dashboard/project_menu.cljs:85, src/app/main/ui/dashboard/sidebar.cljs:539, src/app/main/ui/workspace/sidebar/assets/groups.cljs:157 +#: src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "labels.rename" msgstr "Fún un lórúkọ mìíràn" -#: src/app/main/ui/dashboard/team_form.cljs:99 +#: src/app/main/ui/dashboard/team_form.cljs msgid "labels.rename-team" msgstr "Fún ẹgbẹ́ lórúkọ mìíràn" -#: src/app/main/ui/dashboard/team.cljs:645 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.resend-invitation" msgstr "Tún fì ìwé ìpè ránńṣẹ́" -#: src/app/main/ui/static.cljs:61, src/app/main/ui/static.cljs:70, src/app/main/ui/static.cljs:148 +#: src/app/main/ui/static.cljs, src/app/main/ui/static.cljs, src/app/main/ui/static.cljs msgid "labels.retry" msgstr "Tún gbìyànjú" -#: src/app/main/ui/dashboard/team.cljs:469, src/app/main/ui/dashboard/team.cljs:709 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.role" msgstr "Ojúṣe" -#: src/app/main/ui/dashboard/fonts.cljs:380, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:191 msgid "labels.save" msgstr "Fi pamọ́" -#: src/app/main/ui/dashboard/fonts.cljs:415 msgid "labels.search-font" msgstr "Ṣàwárí fọ́ǹtì" -#: src/app/main/ui/onboarding/questions.cljs:90, src/app/main/ui/onboarding/questions.cljs:248, src/app/main/ui/onboarding/questions.cljs:259, src/app/main/ui/onboarding/questions.cljs:270 -msgid "labels.select-option" -msgstr "Ṣe àṣàyàn" - -#: src/app/main/ui/settings/feedback.cljs:82 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.send" msgstr "Fi ránńṣẹ́" -#: src/app/main/ui/settings/feedback.cljs:82 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.sending" msgstr "Fífi-ránńṣẹ…" -#: src/app/main/ui/static.cljs:68 +#: src/app/main/ui/static.cljs msgid "labels.service-unavailable.desc-message" msgstr "A wà níbi ètò ìpèsè ìtọ́jú àwọn sísítẹ́mù wa." -#: src/app/main/ui/static.cljs:67 +#: src/app/main/ui/static.cljs msgid "labels.service-unavailable.main-message" msgstr "Sáfísì kòsí" -#: src/app/main/ui/dashboard/sidebar.cljs:530, src/app/main/ui/dashboard/team.cljs:88, src/app/main/ui/dashboard/team.cljs:102, src/app/main/ui/settings/options.cljs:84, src/app/main/ui/settings/sidebar.cljs:93 +#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.settings" msgstr "Àwọn ètò" -#, unused msgid "labels.share-prototype" msgstr "Pín àwọn ohun tí a ti kọ tẹ́lẹ̀" -#: src/app/main/ui/dashboard/sidebar.cljs:800 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.shared-libraries" msgstr "Yàrá ìkáwe" -#: src/app/main/ui/viewer/comments.cljs:82, src/app/main/ui/workspace/comments.cljs:55, src/app/main/ui/workspace/comments.cljs:135 +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs msgid "labels.show-all-comments" msgstr "Fi gbogbo kọ́mẹ́ǹtì hàn" -#: src/app/main/ui/viewer/comments.cljs:115 msgid "labels.show-comments-list" msgstr "Fi àkójọ àwọn kọ́mẹ́ǹtì hàn" -#: src/app/main/ui/viewer/comments.cljs:91, src/app/main/ui/workspace/comments.cljs:61, src/app/main/ui/workspace/comments.cljs:136 +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs msgid "labels.show-your-comments" msgstr "Fi àwọn kọ́mẹ́ǹtì tìrẹ nìkan hàn" -#: src/app/main/ui/onboarding/questions.cljs:172 -msgid "labels.sketch" -msgstr "Yàwòrán" - -#: src/app/main/ui/onboarding/questions.cljs:56 -msgid "labels.start" -msgstr "Bẹ̀rẹ̀" - -#: src/app/main/ui/dashboard/team.cljs:710 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.status" msgstr "Ipò" -#: src/app/main/ui/onboarding/questions.cljs:251 -msgid "labels.student-teacher" -msgstr "Akẹ́kọ̀ọ́ tàbí olùkọ̀ọ́" - -#: src/app/main/ui/dashboard/sidebar.cljs:992, src/app/main/ui/workspace/main_menu.cljs:118 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.tutorials" msgstr "Ìbáṣepọ̀" -#: src/app/main/ui/dashboard/file_menu.cljs:256 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.unpublish-multi-files" msgstr "%s àwọn fáìlì tí a kò tí kọ jáde" -#: src/app/main/ui/settings/profile.cljs:103 +#: src/app/main/ui/settings/profile.cljs msgid "labels.update" msgstr "mú dójú ìwọ̀n" -#: src/app/main/ui/dashboard/team_form.cljs:120 +#: src/app/main/ui/dashboard/team_form.cljs msgid "labels.update-team" msgstr "Mẹ́gbẹ́ dójú ìwọ̀n" -#: src/app/main/ui/dashboard/fonts.cljs:241 msgid "labels.upload" msgstr "Ọpulóòdù" -#: src/app/main/ui/dashboard/fonts.cljs:169 msgid "labels.upload-custom-fonts" msgstr "Ọpulóòdù kọ́sítẹ́mù fọ́ǹtì" -#: src/app/main/ui/dashboard/fonts.cljs:240 msgid "labels.uploading" msgstr "Ń ọpulóòdù…" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs:223 msgid "labels.view-only" msgstr "Wò ó nìkan" -#: src/app/main/ui/dashboard/team.cljs:123, src/app/main/ui/dashboard/team.cljs:282, src/app/main/ui/dashboard/team.cljs:521 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.viewer" msgstr "Olùwo" -#: src/app/main/ui/dashboard/sidebar.cljs:523, src/app/main/ui/dashboard/team.cljs:90, src/app/main/ui/dashboard/team.cljs:100, src/app/main/ui/dashboard/team.cljs:880 msgid "labels.webhooks" msgstr "àwọn ìwé ìkọ́ wẹ́bù" -#: src/app/main/ui/comments.cljs:194 +#: src/app/main/ui/comments.cljs msgid "labels.write-new-comment" msgstr "Write new comment Kọ kọ́mẹ́ǹtì tuntun" -#: src/app/main/ui/dashboard/team.cljs:237 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.you" msgstr "(ìwọ)" -#: src/app/main/ui/dashboard/sidebar.cljs:968 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.your-account" msgstr "Àkáùntì rẹ" -#: src/app/main/data/media.cljs:49, src/app/main/data/workspace/media.cljs:223, src/app/main/data/workspace/media.cljs:453 +#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs msgid "media.loading" msgstr "Ìkójọpọ̀ àwòrán…" -#: src/app/main/data/common.cljs:111 msgid "modals.add-shared-confirm-empty.hint" msgstr "" "Yàrá ìkàwé rẹ ti dófìfo. Lọ́gán tí o bá ti ṣàfikún gẹ́gẹ́ bí yàrá ìkàwé " "pípín, dúkìá tí o ṣẹ̀dá á wà fún lílò àwọn fáìlì rẹ tó kù. Are you sure " "you tí o fẹ́ kọ jáde?" -#: src/app/main/data/common.cljs:113 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.add-shared-confirm.accept" msgstr "Ṣàfikún gẹ́gẹ́ bí yàrá ìkàwé pípín" -#: src/app/main/data/common.cljs:111 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.add-shared-confirm.hint" msgstr "" "Lẹ́ẹ̀kan-nà tí o bá ti ṣàfikún gẹ́gẹ́ bí yàrá ìkàwé pípín, àwọn dúkìá inú " "fáìlì yàrá á di wíwà fún lílò àwọn fáìlì rẹ tó kù." -#: src/app/main/data/common.cljs:110 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.add-shared-confirm.message" msgstr "Ṣàfikún “%s” gẹ́gẹ́ bí yàrá ìkàwé pípí" -#: src/app/main/ui/workspace/nudge.cljs:60 +#: src/app/main/ui/workspace/nudge.cljs msgid "modals.big-nudge" msgstr "Big nudge Nọ́ọ̀jì ńlá" -#: src/app/main/ui/settings/change_email.cljs:127 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.confirm-email" msgstr "Ṣàyẹ̀wò ímeèlì tuntun" -#: src/app/main/ui/settings/change_email.cljs:114 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.info" msgstr "" "A fi ímeèlì kan ránń ṣẹ́ sí inú ímeèlì tí ò ń lò lọ́wọ́lọ́wọ́“%s” láti ṣe " "àyẹ̀wò ìdánimọ̀ rẹ." -#: src/app/main/ui/settings/change_email.cljs:119 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.new-email" msgstr "Ímeèlì tuntun" -#: src/app/main/ui/settings/change_email.cljs:136 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.submit" msgstr "Pàrọ̀ ímeèlìl" -#: src/app/main/ui/settings/change_email.cljs:107 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.title" msgstr "Pàrọ̀ ímeèlì rẹ" -#: src/app/main/ui/settings/access_tokens.cljs:165, src/app/main/ui/settings/access_tokens.cljs:171 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.create-access-token.copy-token" msgstr "Ṣẹ̀dà tókìn" -#: src/app/main/ui/settings/access_tokens.cljs:142 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.create-access-token.expiration-date.label" msgstr "Ọjọ́ ìparí" -#: src/app/main/ui/settings/access_tokens.cljs:136 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.create-access-token.name.label" msgstr "Orúkọ" -#: src/app/main/ui/settings/access_tokens.cljs:138 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.create-access-token.name.placeholder" msgstr "Orúkọ yí ó ràn wá lọ́wọ́ láti mọ ohun tí tókìn wà fún" -#: src/app/main/ui/settings/access_tokens.cljs:191 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.create-access-token.submit-label" msgstr "Ṣẹ̀dà tókìn" -#: src/app/main/ui/settings/access_tokens.cljs:123 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.create-access-token.title" msgstr "Pilẹ̀ṣẹ̀ wí wọlé tókìń" -#: src/app/main/ui/dashboard/team.cljs:873 msgid "modals.create-webhook.submit-label" msgstr "Ṣẹ̀dá ìkọ́- wẹ́bù" -#: src/app/main/ui/dashboard/team.cljs:838 msgid "modals.create-webhook.title" msgstr "Ṣẹ̀dá ìkọ́-wẹ́bù" -#: src/app/main/ui/dashboard/team.cljs:849 msgid "modals.create-webhook.url.label" msgstr "Péloòdù URL" -#: src/app/main/ui/dashboard/team.cljs:850 msgid "modals.create-webhook.url.placeholder" msgstr "https://àpẹrẹ.com/postreceive ìgbà àtẹ̀yinwá" -#: src/app/main/ui/settings/access_tokens.cljs:271 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.delete-acces-token.accept" msgstr "Pa tókìn rẹ́" -#: src/app/main/ui/settings/access_tokens.cljs:270 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.delete-acces-token.message" msgstr "Ṣé ó dá ọ lójú pé o fẹ́ pa tókìn yi rẹ́?" -#: src/app/main/ui/settings/access_tokens.cljs:269 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.delete-acces-token.title" msgstr "Pa tókìn rẹ́" -#: src/app/main/ui/settings/delete_account.cljs:59 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.cancel" msgstr "Fagilé e kí o sì fi àkáùntì mi pamọ́" -#: src/app/main/ui/settings/delete_account.cljs:64 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.confirm" msgstr "Bẹ́ẹ̀ni, pa àkáùntì mi rẹ́" -#: src/app/main/ui/settings/delete_account.cljs:53 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.info" msgstr "" "Nípa yíyọ àkáùntì rẹ kúrò o ’ pàdánù gbogbo àwọn iṣẹ́ àgbéṣe rẹ àti àwọn tí " "ó wà lápamọ́." -#: src/app/main/ui/settings/delete_account.cljs:46 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.title" msgstr "Ṣé ó dá ọ lójú pé o fẹ́ pa àkáùntì rẹ rẹ́ ?" -#: src/app/main/ui/comments.cljs:298 +#: src/app/main/ui/comments.cljs msgid "modals.delete-comment-thread.accept" msgstr "Pa ìtàkurọ̀sọ rẹ́" -#: src/app/main/ui/comments.cljs:297 +#: src/app/main/ui/comments.cljs msgid "modals.delete-comment-thread.message" msgstr "" "Ṣé ódá ọ lójú pé o fẹ́ pa ìtàkurọ̀sọ yìí rẹ́? All comments in this Gbogbo " "àsọyé tó wà níbí tó tẹ̀lé ra wọn ni á di píparẹ́." -#: src/app/main/ui/comments.cljs:296 +#: src/app/main/ui/comments.cljs msgid "modals.delete-comment-thread.title" msgstr "Pa ìtàkurọ̀sọ rẹ" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:140 msgid "modals.delete-component-annotation.message" msgstr "Ṣe ó dá ọ lójú pé o fẹ́ pa àkọsílẹ̀ yìí rẹ́?" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:139 msgid "modals.delete-component-annotation.title" msgstr "Pa àkọsílẹ̀ rẹ́" -#: src/app/main/ui/dashboard/file_menu.cljs:123 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-confirm.accept" msgstr "Pa fáìlì rẹ́" -#: src/app/main/ui/dashboard/file_menu.cljs:122 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-confirm.message" msgstr "Ṣé ó dá ọ lójú pé o fẹ́ pa fáìlì yìí rẹ́?" -#: src/app/main/ui/dashboard/file_menu.cljs:121 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-confirm.title" msgstr "Pa fáìlì rẹ́" -#: src/app/main/ui/dashboard/file_menu.cljs:117 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-multi-confirm.accept" msgstr "Pa àwọn fáìlì rẹ́" -#: src/app/main/ui/dashboard/file_menu.cljs:116 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-multi-confirm.message" msgstr "Ṣé ó dá ọ lójú pé o fẹ́ pa %s àwọn fáìlì rẹ́ ?" -#: src/app/main/ui/dashboard/file_menu.cljs:115 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-multi-confirm.title" msgstr "Pa fáìlì rẹ́ %s" -#: src/app/main/ui/dashboard/fonts.cljs:345 msgid "modals.delete-font-variant.message" msgstr "" "Ṣé ó dá ọ lójú pé o fẹ́ pa fọ́ǹtì alárà yìí rẹ́ ? Kò ní gbé e tí a bá lò " "ó nínú fáìlì." -#: src/app/main/ui/dashboard/fonts.cljs:331 msgid "modals.delete-font.message" msgstr "" "Ṣé ó dá ọ lójú pé o fẹ́ pa fẹ́ǹtì yí rẹ́? Kò ní le gbé e tí a bá lò ó nínú " "Fáìlì." -#: src/app/main/ui/workspace/context_menu.cljs:522, src/app/main/ui/workspace/sidebar/sitemap.cljs:45 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs msgid "modals.delete-page.body" msgstr "Ṣé ó dá ọ lójú pé o fẹ́ pa ojú ìwé yìí rẹ́?" -#: src/app/main/ui/workspace/context_menu.cljs:521, src/app/main/ui/workspace/sidebar/sitemap.cljs:44 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs msgid "modals.delete-page.title" msgstr "Pa ojú ìwé rẹ́" -#: src/app/main/ui/dashboard/project_menu.cljs:69 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "modals.delete-project-confirm.accept" msgstr "Pa iṣẹ́ àgbéṣe rẹ́" -#: src/app/main/ui/dashboard/project_menu.cljs:68 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "modals.delete-project-confirm.message" msgstr "Ṣé ó dá ọ lójú pé o fẹ́ pa iṣẹ́ àgbéṣe yìí rẹ́?" -#: src/app/main/ui/dashboard/project_menu.cljs:67 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "modals.delete-project-confirm.title" msgstr "Pa iṣẹ́ àgbéṣe rẹ́" -#: src/app/main/ui/dashboard/sidebar.cljs:435 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.delete-team-confirm.accept" msgstr "Pa ẹgbẹ́ rẹ́" -#: src/app/main/ui/dashboard/sidebar.cljs:434 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.delete-team-confirm.message" msgstr "" "Ṣé ó dá ọ lójú pé o fẹ́ pa ẹgbẹ́ yìí rẹ́? Ggogbo iṣẹ́ àgbéṣe àti fáìlì tí ó " "bá ní nǹkan ṣe pẹ̀lú ẹgbẹ́ ni a ó parẹ́ pátápátá." -#: src/app/main/ui/dashboard/sidebar.cljs:433 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.delete-team-confirm.title" msgstr "Yọ ẹgbẹ́ kúrò" -#: src/app/main/ui/dashboard/team.cljs:427 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.delete-team-member-confirm.accept" msgstr "Yọ ọmọ ẹgbẹ́ kúrò" -#: src/app/main/ui/dashboard/team.cljs:426 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.delete-team-member-confirm.message" msgstr "Ṣé ó dá ọ lójú pé o fẹ́ yọ ọmọ ẹgbẹ́ yìí kúrò nínú ẹgbẹ́?" -#: src/app/main/ui/dashboard/team.cljs:425 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.delete-team-member-confirm.title" msgstr "Yọ ọmọ ẹgbẹ́ kúrò" -#: src/app/main/ui/dashboard/team.cljs:942 msgid "modals.delete-webhook.accept" msgstr "Pa ìkọ́-wẹ́bù rẹ́" -#: src/app/main/ui/dashboard/team.cljs:941 msgid "modals.delete-webhook.message" msgstr "Ṣe ó dá ọ lójú pé o fẹ́ pa ìkọ́-wẹ́bù yìí rẹ́?" -#: src/app/main/ui/dashboard/team.cljs:940 msgid "modals.delete-webhook.title" msgstr "Pa ìkọ́- wẹ́bù rẹ́" -#: src/app/main/ui/dashboard/team.cljs:872 msgid "modals.edit-webhook.submit-label" msgstr "Ṣe àtúnṣe ìkọ́- wẹ́bù" -#: src/app/main/ui/dashboard/team.cljs:837 msgid "modals.edit-webhook.title" msgstr "Ṣe àtúnṣe ìkọ́-wẹ́bù" -#: src/app/main/ui/dashboard/team.cljs:218 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.invite-member-confirm.accept" msgstr "Fi ìfìwépè ránńṣẹ́" -#: src/app/main/ui/dashboard/team.cljs:213, src/app/main/ui/onboarding/team_choice.cljs:156 msgid "modals.invite-member.emails" msgstr "Ímeèlì, kí kọmá yà á sọ́tọ̀" -#: src/app/main/ui/dashboard/team.cljs:197 msgid "modals.invite-member.repeated-invitation" msgstr "" "Díẹ̀ nínú àwọn ímeèlì wá láti ọ̀dọ̀ àwọn tó jẹ́ ọmọ ẹgbẹ́ ní ìsinsìnyí. Ìwé " "ìfipé wọn a kò nífi ránńṣẹ́." -#: src/app/main/ui/dashboard/team.cljs:190 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.invite-team-member.title" msgstr "Pe àwọn ọmọ ẹgbẹ́ sínú ẹgbẹ́" -#: src/app/main/ui/dashboard/sidebar.cljs:423, src/app/main/ui/dashboard/team.cljs:393 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-close-confirm.hint" msgstr "" "Gẹ́gẹ́ bí o ṣe jẹ́ ìwọ nìkan ni ọmọ ẹgbẹ́ nínú ẹgbẹ́ yìí, a ó yọ ẹgbẹ́ " "kúrò pẹ̀lú iṣẹ́ àgbéṣe rẹ̀ àti àwọn fáìlì." -#: src/app/main/ui/dashboard/sidebar.cljs:422, src/app/main/ui/dashboard/team.cljs:392 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-close-confirm.message" msgstr "Ṣé ó dá ọ lójú pé o fẹ́ kúrò nínú %s ẹgbẹ́?" -#: src/app/main/ui/dashboard/change_owner.cljs:59 msgid "modals.leave-and-reassign.forbidden" msgstr "" "O kò lè kúrò nínú ẹgbẹ́ tí kò bá sí ọmọ ẹgbẹ́ mìíràn tó ní ìgbéga sí oní " "ǹǹkan. O lè fẹ́ pa ẹgbẹ́ rẹ́." -#: src/app/main/ui/dashboard/change_owner.cljs:55 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-reassign.hint1" msgstr "" "Ìwọ ni ẹni tí ó ni ẹgbẹ́ yìí. Please select another member to promote to " "Jọ̀wọ́ yan ọmọ ẹgbẹ́ mìíràn tí yíò ní ìgbéga ẹni tí ó ni nǹkan kí o tó " "kúrò." -#: src/app/main/ui/dashboard/change_owner.cljs:78 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-reassign.promote-and-leave" msgstr "Ṣe ìgbéga kí o kúrò" -#: src/app/main/ui/dashboard/change_owner.cljs:34 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-reassign.select-member-to-promote" msgstr "Yan ọmọ ẹgbẹ́ kan tí o ó gbéga" -#: src/app/main/ui/dashboard/change_owner.cljs:49 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-reassign.title" msgstr "Kí o tó kúrò" -#: src/app/main/ui/dashboard/sidebar.cljs:402, src/app/main/ui/dashboard/sidebar.cljs:424, src/app/main/ui/dashboard/team.cljs:394, src/app/main/ui/dashboard/team.cljs:416 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-confirm.accept" msgstr "Fi ẹgbẹ́ sílẹ̀" -#: src/app/main/ui/dashboard/sidebar.cljs:401, src/app/main/ui/dashboard/team.cljs:415 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-confirm.message" msgstr "Ṣé ó dá ọ lójú pé o fẹ́ fi ẹgbẹ́ yìí sílẹ̀?" -#: src/app/main/ui/dashboard/sidebar.cljs:400, src/app/main/ui/dashboard/sidebar.cljs:421, src/app/main/ui/dashboard/team.cljs:391, src/app/main/ui/dashboard/team.cljs:414 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-confirm.title" msgstr "Ń fi ẹgbẹ́ sílẹ̀" -#: src/app/main/ui/workspace/main_menu.cljs:266, src/app/main/ui/workspace/nudge.cljs:47 +#: src/app/main/ui/workspace/nudge.cljs msgid "modals.nudge-title" msgstr "Fi kún iye tó jẹ́" -#: src/app/main/ui/dashboard/team.cljs:340 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.accept" msgstr "Gbé ẹni tó ni nǹkan" -#: src/app/main/ui/dashboard/team.cljs:339 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.hint" msgstr "" "Tí o bá gbé ẹni tí ó ni nǹkan, o ó yìí ojúṣe rẹ pada sí Alábòjútó, losing " " àwọn ìgbà láàyè díẹ̀ á wà fún ẹgbẹ́ yìí. " -#: src/app/main/ui/dashboard/team.cljs:338 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.message" msgstr "" "Ìwọ ni ẹni tí ó ni ẹgbẹ́ yìí lọ́wọ́lọ́wọ́. Are you sure you want to make Ṣé " "ó dá ọ lójú pé o fẹ́ jẹ́ %s oní nǹkan tuntun fún ẹgbẹ́?" -#: src/app/main/ui/dashboard/team.cljs:337 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.title" msgstr "Ẹni tó ni ẹgbẹ́ tuntun" -#: src/app/main/ui/workspace/libraries.cljs:188 msgid "modals.publish-empty-library.accept" msgstr "Kọ ọ́ jáde" -#: src/app/main/ui/workspace/libraries.cljs:187 msgid "modals.publish-empty-library.message" msgstr "Yàrá ìkàwé rẹ ṣófìfo. Ṣé ó dá ọ lójú pé o fẹ́ kọ ọ́ jáde?" -#: src/app/main/ui/workspace/libraries.cljs:186 msgid "modals.publish-empty-library.title" msgstr "Gbé yàrá ìkàwé tó ṣófìfo jáde" #: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused msgid "modals.remove-shared-confirm.accept" msgstr "Yọ ọ́ kúrò gẹ́gẹ́ bí i yàrá ìkàwé pípín" #: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused msgid "modals.remove-shared-confirm.hint" msgstr "" "Lọ́gán tí o bá ti yọ ọ́ kúrò gẹ́gẹ́ bí i Fáìlì yàrá ìkàwé pípín , Fáìlì " "yàrà ìkàwé ti fáìlì yìí á dúró tí á wà fún lílò àwọn fáìlì rẹ tó kù." #: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused msgid "modals.remove-shared-confirm.message" msgstr "Yọ ọ́ kúrò“%s” gẹ́gẹ́ bí yàrá ìkàwé pípín" -#: src/app/main/ui/workspace/nudge.cljs:53 +#: src/app/main/ui/workspace/nudge.cljs msgid "modals.small-nudge" msgstr "Fọwọ́ làn-ań díẹ̀" #: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs -#, unused msgid "modals.update-remote-component-in-bulk.hint" msgstr "" "O ṣetán láti mú àwọn ẹ̀yà irin iṣẹ́ dé ojú ìwọ̀n ní yàrá ìkàwé pípín. Èyí " "le fa wàhálà fún àwọn fáìlì mìíràn tí ó ń lò ó." #: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs -#, unused msgid "modals.update-remote-component-in-bulk.message" msgstr "Mú àwọn ẹ̀yà irin iṣẹ́ dójú ìwọ̀n nínú iyàram ìkàwé pípín" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:380 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.accept" msgstr "Mú dójú ìwọ̀n" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:379 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.cancel" msgstr "Fagilé e" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:378 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.hint" msgstr "" "O ṣetán látí mú àwọn ẹ̀yà irin iṣẹ́ yàrá ìkàwé dójú ìwọ̀n . This may affect " "Èyí lè fa wàhálà fún àwọn fáìlì míràn tí ó ń lò ó." -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:377 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.message" msgstr "Mú ẹ̀yà iyàrá ìkàwé pípín kan dójú ìwọ̀n" -#: src/app/main/data/common.cljs:71 +#: src/app/main/data/common.cljs msgid "notifications.by-code.upgrade-version" msgstr "Ẹ̀yà tuntun ti wà, jọ̀wọ́ tún sọ ọ́ jí" -#: src/app/main/ui/dashboard/team.cljs:154, src/app/main/ui/dashboard/team.cljs:595 +#: src/app/main/ui/dashboard/team.cljs msgid "notifications.invitation-email-sent" msgstr "Ìfipè tí a fi ránńṣẹ́ ti lọ dáadáa" -#: src/app/main/ui/dashboard/team.cljs:616 +#: src/app/main/ui/dashboard/team.cljs msgid "notifications.invitation-link-copied" msgstr "ti ṣe àdàkọ ìfipè ọ̀nà ìtọ́ka sí" -#: src/app/main/ui/settings/delete_account.cljs:24 +#: src/app/main/ui/settings/delete_account.cljs msgid "notifications.profile-deletion-not-allowed" msgstr "O kò le è yọ pírófáìlì rẹ kúro. Ṣe àtún yàn àwọn ẹgbẹ́ kí o tó tẹ̀ síwájú." -#: src/app/main/ui/settings/options.cljs:29, src/app/main/ui/settings/profile.cljs:35 +#: src/app/main/ui/settings/profile.cljs, src/app/main/ui/settings/options.cljs msgid "notifications.profile-saved" msgstr "A ti fi pírófáìlì pamọ́ dáadáa!" -#: src/app/main/ui/settings/change_email.cljs:63 +#: src/app/main/ui/settings/change_email.cljs msgid "notifications.validation-email-sent" msgstr "Verification email sent to %s. Check your email!" -#, unused msgid "onboarding-v2.before-start.desc1" msgstr "" "O ní láti mọ̀ pé oríṣiríṣi ohu ohun èlò ló wà láti ràn ọ́ lọ́wọ́ láti rí " "gbà bẹ̀rẹ̀ pẹ̀lú Pẹ́ńpọtì, gẹ́gẹ́ bí ohun èlò ìtọ́nisọ́nà àti yútuùbù wa " "fún ìlànà ìbáni sọ̀rọ̀." -#, unused msgid "onboarding-v2.before-start.desc2" msgstr "" "Ẹ̀kún-uń rẹ́rẹ́ àlàyé nípa bí a ó ṣe lo pẹ́ńpọtì . Láti bi àfọwọ́kọ lọ sí " "síṣe ètò tàbí pípiń àwọn àrà orísi ." -#, unused msgid "onboarding-v2.before-start.desc2.title" msgstr "Ìtọ́ni sọ́nà Onílò" -#, unused msgid "onboarding-v2.before-start.desc3" msgstr "O lè wo ìbáṣepọ̀ wa àti ìbáṣepọ̀ ti èyí tí agbègbè wa ṣe." -#, unused msgid "onboarding-v2.before-start.desc3.title" msgstr "Fídíò àwọn ìbáṣepọ̀" -#, unused msgid "onboarding-v2.before-start.title" msgstr "Kí o tó bẹ̀rẹ̀" -#: src/app/main/ui/onboarding/newsletter.cljs:63 msgid "onboarding-v2.newsletter.desc" msgstr "" "Ṣe alábàápín ìwé ìròyìn ti pẹ́ńpọtì kí o lè mọ ohun tí ó ń lọ ọjà " "development progress and new Ìdàgbàsókè, Ìlọsíwájú,àti àwọn ìròyìn ." -#: src/app/main/ui/onboarding/newsletter.cljs:83 msgid "onboarding-v2.newsletter.news" msgstr "" "Fí ìròyìn ránńṣẹ́ sí mi nípa Pẹ́ńpọtì (àwọn bulọ́ọ̀gì,àwọn fídiò " "ìbáṣepọ̀, àwọn sísàn wọlé...)." -#: src/app/main/ui/onboarding/newsletter.cljs:91 msgid "onboarding-v2.newsletter.privacy1" msgstr "Ìfi pamọ́ jẹ wá lógún, ní bí o le kà nípa wa " -#: src/app/main/ui/onboarding/newsletter.cljs:97 msgid "onboarding-v2.newsletter.privacy2" msgstr "" "Àwọn ímeèlì tó ṣe kókó nìknn la ó fi ránńṣẹ́ sí ọ. o lè yọwọ́ kúrò ní " "ìgbàkììgbàní ìlànà ti ìyọwọ́ kúrò nínú èyíkéyìí ìwé ìròyìn wa." -#: src/app/main/ui/onboarding/newsletter.cljs:71 msgid "onboarding-v2.newsletter.updates" msgstr "" "Fi ìmú dójú ìwọ̀n ọjà ránńṣẹ́ sí mi (àwọn ẹ̀yà yuntun, tú sílẹ̀, ṣà " "túnṣe...)." -#, unused msgid "onboarding-v2.welcome.desc1" msgstr "" "Pẹ́ńpọtì ni orísun ìṣílẹ̀kùn àti pe Kálẹidòsìló ṣe é àti àwọn agbègbè, Ní " "bi ọ̀pọ̀lọpọ̀ àwọn ènìyàn ti ran ara wọn lọ́wọ́ tẹ́lẹ̀ . Gbgbo wọn ló lè " "ṣe àjùmọ̀ṣenípa:" -#, unused msgid "onboarding-v2.welcome.desc2" msgstr "" "Ìkẹ́kọ̀ọ́ ìta gbangba, pín-in kí ẹ sì jí ròrò nípa Pẹ́ńpọtì, ibi tó wà " "lọ́wọ́lọ́wọ́ ọ̀jọ́ iwájú pẹ̀lú gbogbo agbègbè àti ìmójútó ẹgbẹ́ pẹ́ńpọtì . " " ." -#, unused msgid "onboarding-v2.welcome.desc3" msgstr "" "Ibi tí a ó ti ri bí a ó ti ṣe àjùmọ̀ṣepọ̀ pẹ̀lú àwọn ìtumọ̀, àwọn ìbéèrè " "ẹ̀yà ara ẹ̀rọ, ìmójútó síṣe ojúṣe, ìṣọdẹ kòkòrò…" -#, unused msgid "onboarding-v2.welcome.desc3.title" msgstr "Sísojúṣe ìtọ́sẹ́nà" -#: src/app/main/ui/onboarding/team_choice.cljs:31 msgid "onboarding-v2.welcome.title" msgstr "Káàbọ̀ sí pẹ́ńpọtì!" -#: src/app/main/ui/onboarding/team_choice.cljs:215 msgid "onboarding.choice.team-up.create-team-desc" msgstr "" "Lẹ́yìn tí o bá ti fún ẹgbẹ́ rẹ lórúkọ, Ó le pe àwọn ènìyàn láti darapọ̀ mọ́ " "ẹgbẹ́." -#: src/app/main/ui/onboarding/team_choice.cljs:224 msgid "onboarding.choice.team-up.create-team-placeholder" msgstr "Tẹ orúkọ ẹgbẹ́" -#: src/app/main/ui/dashboard/projects.cljs:89, src/app/main/ui/onboarding/team_choice.cljs:140 msgid "onboarding.choice.team-up.invite-members" msgstr "Fìwépè ọmọ àwọn ẹgbẹ́" -#: src/app/main/ui/onboarding/team_choice.cljs:141 msgid "onboarding.choice.team-up.invite-members-info" msgstr "" "Rántí láti fi gbogbo wọn sí i. Àwọn Olùdásílẹ̀, àwọn aṣàpẹẹrẹ, alákóso... " "onírúúrú dà wọ́n pọ̀ :)" -#: src/app/main/ui/dashboard/team.cljs:202, src/app/main/ui/onboarding/team_choice.cljs:146 msgid "onboarding.choice.team-up.roles" msgstr "Pè wọ́n pẹ̀lú ojúṣe wọn:" -#, unused msgid "onboarding.newsletter.accept" msgstr "Bẹ́ẹ̀ni, ṣe alábàpín" -#: src/app/main/ui/onboarding/newsletter.cljs:40 msgid "onboarding.newsletter.acceptance-message" msgstr "" "A ti fi ìbéèrè fún síṣe alá-bápín rẹ ránńṣẹ́, a ó fi ímeèlì ránńṣẹ́ sí ọ " "látijẹ́rìí sí." -#: src/app/main/ui/onboarding/newsletter.cljs:95 msgid "onboarding.newsletter.policy" msgstr "Ètò ìmúlò tí a fi pamọ́." -#: src/app/main/ui/onboarding/newsletter.cljs:60 msgid "onboarding.newsletter.title" msgstr "Fẹ́ gba àwọn ìròyìn pẹ́ńpọti?" -#: src/app/main/ui/onboarding/questions.cljs:118 -msgid "onboarding.questions.lets-get-started" -msgstr "Ẹjẹ́ 'ká bẹ̀rẹ̀ !" - -#: src/app/main/ui/onboarding/questions.cljs:320 -msgid "onboarding.questions.step3.question3" -msgstr "kín ni ìwọ̀n ẹgbẹ́ rẹ ?" - -#: src/app/main/ui/onboarding/questions.cljs:273 -msgid "onboarding.questions.team-size.11-30" -msgstr "Mọ́kànlá-Ọgbọ̀n" - -#: src/app/main/ui/onboarding/questions.cljs:274 -msgid "onboarding.questions.team-size.2-10" -msgstr "Méjì – mẹ́wàá" - -#: src/app/main/ui/onboarding/questions.cljs:272 -msgid "onboarding.questions.team-size.31-50" -msgstr "Mọ́kànlélọ́gbọ̀n-Àádọ́ta" - -#: src/app/main/ui/onboarding/questions.cljs:271 -msgid "onboarding.questions.team-size.more-than-50" -msgstr "Ju àádọ́ta lọ" - -#: src/app/main/ui/onboarding/questions.cljs:276 -msgid "onboarding.questions.team-size.personal-project" -msgstr "Mò ń siṣẹ́ àgbéṣẹ ti ara mi ni" - -#: src/app/main/ui/onboarding/team_choice.cljs:213 msgid "onboarding.team-modal.create-team" msgstr "Ṣẹ̀dá ẹgbẹ́ kan" -#: src/app/main/ui/onboarding/team_choice.cljs:35 msgid "onboarding.team-modal.create-team-desc" msgstr "" "A team allows you to collaborate with other Penpot users working in the " "Ẹgbẹ́ kan yí ó gbà ọ́ láyè láti lè siṣẹ́pọ̀ pẹ̀lú àwọn onílò pẹ́ńpọti tí ó " "siṣẹ́ nínú àwọn fáìlì àti àwọn iṣẹ́ àgbéṣe kan náà ." -#: src/app/main/ui/onboarding/team_choice.cljs:40 msgid "onboarding.team-modal.create-team-feature-1" msgstr "Àwọn fáìlì àti àwọn iṣẹ́ àgbéṣe tí kò lópin" -#: src/app/main/ui/onboarding/team_choice.cljs:44 msgid "onboarding.team-modal.create-team-feature-2" msgstr "Multiplayer edition" -#: src/app/main/ui/onboarding/team_choice.cljs:48 msgid "onboarding.team-modal.create-team-feature-3" msgstr "àwọn ipa ìṣàkóṣo" -#: src/app/main/ui/onboarding/team_choice.cljs:52 msgid "onboarding.team-modal.create-team-feature-4" msgstr "Àwọn ọmọ ẹgbẹ́ tí kò lópin" -#: src/app/main/ui/onboarding/team_choice.cljs:56 msgid "onboarding.team-modal.create-team-feature-5" msgstr "100% Ọ̀fẹ́!" -#: src/app/main/ui/onboarding/templates.cljs:78 msgid "onboarding.templates.subtitle" msgstr "Àwọn àwòṣe díẹ̀ nìyí níbí." -#: src/app/main/ui/onboarding/templates.cljs:77 msgid "onboarding.templates.title" msgstr "Bẹ̀rẹ̀ sí ṣe ẹ̀yà alárà" -#, unused msgid "onboarding.welcome.alt" msgstr "Pẹ́ńpọtì" -#: src/app/main/ui/auth/recovery.cljs:99 +#: src/app/main/ui/auth/recovery.cljs msgid "profile.recovery.go-to-login" msgstr "Lọ láti wọlé" -#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:221 +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.team-size.11-30" +msgstr "Mọ́kànlá-Ọgbọ̀n" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.team-size.2-10" +msgstr "Méjì – mẹ́wàá" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.team-size.31-50" +msgstr "Mọ́kànlélọ́gbọ̀n-Àádọ́ta" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.adobe-xd" +msgstr "Àdòbí XD" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.canva" +msgstr "Káńfà" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.developer" +msgstr "Olùdásílẹ̀" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.figma" +msgstr "Fígímà" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.founder" +msgstr "Olùdásílẹ̀/VP" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.freelancer" +msgstr "Oníṣẹ́ ni mí" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.invision" +msgstr "Ìkógun wọ̀lú" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.lets-get-started" +msgstr "Ẹjẹ́ 'ká bẹ̀rẹ̀ !" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.product-management" +msgstr "Ohun títà tàbí iṣẹ́ àgbéṣe Olùṣàkóso" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.marketing" +msgstr "Títajà" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.team-size.more-than-50" +msgstr "Ju àádọ́ta lọ" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.next" +msgstr "Èyí tó kàn" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.other" +msgstr "Òmíìràn(ní pàtó)" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.team-size.personal-project" +msgstr "Mò ń siṣẹ́ àgbéṣẹ ti ara mi ni" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.previous" +msgstr "Tàtẹ̀yìn wá" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.select-option" +msgstr "Ṣe àṣàyàn" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.sketch" +msgstr "Yàwòrán" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.start" +msgstr "Bẹ̀rẹ̀" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.student-teacher" +msgstr "Akẹ́kọ̀ọ́ tàbí olùkọ̀ọ́" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.step3.question3" +msgstr "kín ni ìwọ̀n ẹgbẹ́ rẹ ?" + +#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, msgid "settings.detach" msgstr "Yọ kúrò" -#: src/app/main/ui/viewer/inspect/exports.cljs:147, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:631, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:137, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:148, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:188, src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:158, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:399, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:410, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:430, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:441, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:458, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:472, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:309, src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:183, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:373, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:389, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:245, src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:172 +#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs, src/app/main/ui/workspace/sidebar/options/menus/layer.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs, src/app/main/ui/workspace/sidebar/options/menus/blur.cljs msgid "settings.multiple" msgstr "Dàárú" # SECTIONS -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:414 msgid "shortcut-section.basics" msgstr "Ipìlẹ̀" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:423 msgid "shortcut-section.viewer" msgstr "Ólùwò" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:417 msgid "shortcut-section.workspace" msgstr "Àaye ìṣẹ́" # SUBSECTIONS -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:56 msgid "shortcut-subsection.alignment" msgstr "Titete" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:57 msgid "shortcut-subsection.edit" msgstr "Sàtunkọ" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:59 msgid "shortcut-subsection.general-viewer" msgstr "àbùdá" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:60 msgid "shortcut-subsection.main-menu" msgstr "Akojọ ólórì aṣyn" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:61 msgid "shortcut-subsection.modify-layers" msgstr "Yípàdá fẹ́lẹ́fẹ́lẹ́" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:62 msgid "shortcut-subsection.navigation-dashboard" msgstr "Lìlọ́ kìrì" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:63 msgid "shortcut-subsection.navigation-viewer" msgstr "Lìlọ́ kìrì" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:64 msgid "shortcut-subsection.navigation-workspace" msgstr "Lìlọ́ kìrì" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:65 msgid "shortcut-subsection.panels" msgstr "Àwọ̀n pánẹ̀lí" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:66 msgid "shortcut-subsection.path-editor" msgstr "Àwọ́n ọna" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:67 msgid "shortcut-subsection.shape" msgstr "Àwọ́n apẹ́rẹ́" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:68 msgid "shortcut-subsection.text-editor" msgstr "Àwọ́n ọ́rọ̀" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:69 msgid "shortcut-subsection.tools" msgstr "Àwọ́n irínṣẹ̀" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:70 msgid "shortcut-subsection.zoom-viewer" msgstr "Sun-un" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:71 msgid "shortcut-subsection.zoom-workspace" msgstr "Sun-un" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:72 msgid "shortcuts.add-comment" msgstr "Ọ́rọ̀íwòye" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:73 msgid "shortcuts.add-node" msgstr "Fí ípàdé kùn" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:74 msgid "shortcuts.align-bottom" msgstr "Sópọ sí ísàle" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:75 msgid "shortcuts.align-center" msgstr "Parapọ àárin" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:76 msgid "shortcuts.align-hcenter" msgstr "Páràpọ àárin naa" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:77 msgid "shortcuts.align-justify" msgstr "Ṣe dèédé si ìdálárè" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:78 msgid "shortcuts.align-left" msgstr "Sosi ósì" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:79 msgid "shortcuts.align-right" msgstr "Sosi ọtún" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:80 msgid "shortcuts.align-top" msgstr "Sopo si òké" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:81 msgid "shortcuts.align-vcenter" msgstr "Tẹle àárin ni inàró" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:82 msgid "shortcuts.artboard-selection" msgstr "Ṣẹ̀dá ọ̀kọ̀ lati yìyán" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:83 msgid "shortcuts.bold" msgstr "Yipàdà to han" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:84 msgid "shortcuts.bool-difference" msgstr "Iyàtò Boolean" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:85 msgid "shortcuts.bool-exclude" msgstr "Boolean tà yọ̀kúro" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:86 msgid "shortcuts.bool-intersection" msgstr "ikòritá Boolean" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:87 msgid "shortcuts.bool-union" msgstr "Asépọ̀ Boolean" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:88 msgid "shortcuts.bring-back" msgstr "Fírànṣẹ́ si ẹ́hin" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:89 msgid "shortcuts.bring-backward" msgstr "Ran pàdà sí ehin" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:90 msgid "shortcuts.bring-forward" msgstr "Mù siwájù" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:91 msgid "shortcuts.bring-front" msgstr "Mù si wájù" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:92 msgid "shortcuts.clear-undo" msgstr "Pa yipàdá rẹ" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:93 msgid "shortcuts.copy" msgstr "Dàákọ" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:94 msgid "shortcuts.create-component" msgstr "Ṣẹ̀dá pàátì" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:95 msgid "shortcuts.create-new-project" msgstr "Ṣẹ̀dá títún" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:96 msgid "shortcuts.cut" msgstr "Ge" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:97 msgid "shortcuts.decrease-zoom" msgstr "Sun-un jàdé" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:98 msgid "shortcuts.delete" msgstr "Pàrẹ" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:99 msgid "shortcuts.delete-node" msgstr "Pa ipàdé" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:100 msgid "shortcuts.detach-component" msgstr "Yà paati" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:101 msgid "shortcuts.draw-curve" msgstr "Yìyí" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:102 msgid "shortcuts.draw-ellipse" msgstr "Ẹ́lipsì" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:104 msgid "shortcuts.draw-nodes" msgstr "Fà ọnà" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:105 msgid "shortcuts.draw-path" msgstr "Ọnà" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:106 msgid "shortcuts.draw-rect" msgstr "Ònìgún mèrìn" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:107 msgid "shortcuts.draw-text" msgstr "Ọ́rọ̀" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:108 msgid "shortcuts.duplicate" msgstr "Ṣe pidánpidán" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:109 msgid "shortcuts.escape" msgstr "Fàgílèè" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:110 msgid "shortcuts.export-shapes" msgstr "Ókèéré apẹ̀rẹ̀" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:111 msgid "shortcuts.fit-all" msgstr "Sun-un látì ba gbògbò rẹ̀ mú" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:112 msgid "shortcuts.flip-horizontal" msgstr "Yipadà ní pẹ̀tẹ̀lẹ̀" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:113 msgid "shortcuts.flip-vertical" msgstr "Yipadà ní ínàró" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:114 msgid "shortcuts.font-size-dec" msgstr "Dìn íwọ̀n fonti kù" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:115 msgid "shortcuts.font-size-inc" msgstr "Alekun iwọn fonti" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:116 msgid "shortcuts.go-to-drafts" msgstr "Lọ sí iyáwòran" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:117 msgid "shortcuts.go-to-libs" msgstr "Lọ si awọn ílé-Ikàwé tí a pín" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:118 msgid "shortcuts.go-to-search" msgstr "Wàá" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:119 msgid "shortcuts.group" msgstr "Ẹgbẹ" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:120 msgid "shortcuts.h-distribute" msgstr "Pinpín kàákírì pètèlè" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:121 msgid "shortcuts.hide-ui" msgstr "Ífìhan / Tọju UI" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:122 msgid "shortcuts.increase-zoom" msgstr "Sùn-un sínú" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:123 msgid "shortcuts.insert-image" msgstr "Fí àwóran sii" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:124 msgid "shortcuts.italic" msgstr "Yipàdà ítalikì" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:125 msgid "shortcuts.join-nodes" msgstr "Dàràpọ̀ awọn ipàdé" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:126 msgid "shortcuts.letter-spacing-dec" msgstr "Din aayé lẹ́tà kù" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:127 msgid "shortcuts.letter-spacing-inc" msgstr "Alekun aayé lẹ́tà" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:128 msgid "shortcuts.line-height-dec" msgstr "Dinkù gígà ílà" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:129 msgid "shortcuts.line-height-inc" msgstr "Ílà ton gá sókè" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:130 msgid "shortcuts.line-through" msgstr "Íyìpàdà ílà to yọ̀rí" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:131 msgid "shortcuts.make-corner" msgstr "Ṣè ígùn" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:132 msgid "shortcuts.make-curve" msgstr "Ṣe ìsépọ" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:133 msgid "shortcuts.mask" msgstr "Ibòjú" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:134 msgid "shortcuts.merge-nodes" msgstr "Dàpọ̀ awọ́n apa" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:135 msgid "shortcuts.move" msgstr "Gbé" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:136 msgid "shortcuts.move-fast-down" msgstr "Sàré lọ́ sí isàlẹ̀" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:137 msgid "shortcuts.move-fast-left" msgstr "Gbé sí osi kiákiá" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:138 msgid "shortcuts.move-fast-right" msgstr "Gbé si ọ̀tún kiákiá" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:139 msgid "shortcuts.move-fast-up" msgstr "Gbé si òké kiákiá" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:140 msgid "shortcuts.move-nodes" msgstr "Gbé ipàdé" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:141 msgid "shortcuts.move-unit-down" msgstr "Gbé sílè" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:142 msgid "shortcuts.move-unit-left" msgstr "Gbé osi" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:143 msgid "shortcuts.move-unit-right" msgstr "Gbé sọtùn" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:144 msgid "shortcuts.move-unit-up" msgstr "Gbé sóke" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:145 msgid "shortcuts.next-frame" msgstr "Ọ̀kọ̀ tókan" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:516 msgid "shortcuts.not-found" msgstr "Kò sí awọ́n ọ̀nà abùjá ti à rii" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:146 msgid "shortcuts.opacity-0" msgstr "Fí akomo sí ipò 100%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:147 msgid "shortcuts.opacity-1" msgstr "Fi akomo si ipo 10%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:148 msgid "shortcuts.opacity-2" msgstr "Fi akomo si ipo 20%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:149 msgid "shortcuts.opacity-3" msgstr "Fi akomo si ipo 30%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:150 msgid "shortcuts.opacity-4" msgstr "Fi akomo si ipo 40%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:151 msgid "shortcuts.opacity-5" msgstr "Fi akomo si ipo 50%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:152 msgid "shortcuts.opacity-6" msgstr "Fi akomo si ipo 60%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:153 msgid "shortcuts.opacity-7" msgstr "Fi akomo si ipo 70%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:154 msgid "shortcuts.opacity-8" msgstr "Fi akomo si ipo 80%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:155 msgid "shortcuts.opacity-9" msgstr "Fi akomo si ipo 90%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:156 msgid "shortcuts.open-color-picker" msgstr "Ólùṣà àwọ̀" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:158 msgid "shortcuts.open-dashboard" msgstr "Lọ si dasibodu" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:159 msgid "shortcuts.open-inspect" msgstr "Lọ si apaa ayewo olùwò" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:161 msgid "shortcuts.open-viewer" msgstr "Lọ si apaa ibaraẹnisọrọ olùwò" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:260 msgid "shortcuts.or" msgstr " tabi " -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:163 msgid "shortcuts.paste" msgstr "Lẹẹmọ" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:164 msgid "shortcuts.prev-frame" msgstr "Ọkọ ti tẹlẹ" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:165 msgid "shortcuts.redo" msgstr "Tunṣe" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:166 msgid "shortcuts.reset-zoom" msgstr "tun sun" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:168 msgid "shortcuts.search-placeholder" msgstr "Wa awọn ọna abuja" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:169 msgid "shortcuts.select-all" msgstr "Ṣa gbogbo re" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:171 msgid "shortcuts.select-parent-layer" msgstr "Yan Obii pẹlẹbẹ" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:175 msgid "shortcuts.show-shortcuts" msgstr "Ifihan / Itọju ọna abùjá" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:176 msgid "shortcuts.snap-nodes" msgstr "Yaa si awon apa" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:177 msgid "shortcuts.snap-pixel-grid" msgstr "Yaa si pikseli ilana" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:179 msgid "shortcuts.start-measure" msgstr "Bẹ̀rẹ̀ wíwọ̀n" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:180 msgid "shortcuts.stop-measure" msgstr "da wíwọ̀n duro" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:181 msgid "shortcuts.text-align-center" msgstr "Parapọ saarin" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:182 msgid "shortcuts.text-align-justify" msgstr "Sedede lárè" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:183 msgid "shortcuts.text-align-left" msgstr "mo si osi" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:184 msgid "shortcuts.text-align-right" msgstr "Mo sotun" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:185 msgid "shortcuts.thumbnail-set" msgstr "Se étò awòn áwòran fun fidio" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:186 msgid "shortcuts.toggle-alignment" msgstr "Iyipada titete ìmúdàgba" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:187 msgid "shortcuts.toggle-assets" msgstr "Yi dukia pada" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:188 msgid "shortcuts.toggle-colorpalette" msgstr "Yi paleti awọ pada" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:189 msgid "shortcuts.toggle-focus-mode" msgstr "Yi ipo idojukọ pada" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:190 msgid "shortcuts.toggle-fullscreen" msgstr "Yi kuro ni fulscrin" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:193 msgid "shortcuts.toggle-layers" msgstr "Yi awon pelebe yii pada" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:196 msgid "shortcuts.toggle-lock" msgstr "Tiipa / Siilẹ" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:197 msgid "shortcuts.toggle-lock-size" msgstr "títìipa lápàkàn" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:202 msgid "shortcuts.toggle-textpalette" msgstr "Yíípàda ọrọ paleti" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:204 msgid "shortcuts.toggle-visibility" msgstr "Fihan / Toju re" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:205 msgid "shortcuts.toggle-zoom-style" msgstr "Yiipada asa sun-un" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:206 msgid "shortcuts.underline" msgstr "Yii abẹlẹ" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:207 msgid "shortcuts.undo" msgstr "Yi pada" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:208 msgid "shortcuts.ungroup" msgstr "Tu ẹgbẹ" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:209 msgid "shortcuts.unmask" msgstr "Aiboju" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:210 msgid "shortcuts.v-distribute" msgstr "Pin ni inaro" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:211 msgid "shortcuts.zoom-lense-decrease" msgstr "Dín lẹnsì sisun kù" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:212 msgid "shortcuts.zoom-lense-increase" msgstr "Lílọ̀soké lẹnsi sisun" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:213 msgid "shortcuts.zoom-selected" msgstr "Yiyan pelu sun-un" -#: src/app/main/ui/dashboard/team.cljs:771 +#: src/app/main/ui/dashboard/team.cljs msgid "team.webhooks.max-length" msgstr "Orúkọ̀ webhook kò gbọ́dọ̀ kọjà awọ́n óhun kíkọ́ 2048." -#: src/app/main/ui/dashboard/files.cljs:158 +#: src/app/main/ui/dashboard/files.cljs msgid "title.dashboard.files" msgstr "%s - Penpot" -#: src/app/main/ui/dashboard/fonts.cljs:37 +#: src/app/main/ui/dashboard/fonts.cljs msgid "title.dashboard.font-providers" msgstr "Pipese oniru fọnti - %s - Penpot" -#: src/app/main/ui/dashboard/fonts.cljs:36 +#: src/app/main/ui/dashboard/fonts.cljs msgid "title.dashboard.fonts" msgstr "Fọnti - %s - Penpot" -#: src/app/main/ui/dashboard/projects.cljs:320 +#: src/app/main/ui/dashboard/projects.cljs msgid "title.dashboard.projects" msgstr "Awọn ísè agbèsè - %s - Penpot" -#: src/app/main/ui/dashboard/search.cljs:32 +#: src/app/main/ui/dashboard/search.cljs msgid "title.dashboard.search" msgstr "Wà - %s - Penpot" -#: src/app/main/ui/auth/verify_token.cljs:68, src/app/main/ui/auth.cljs:54 +#: src/app/main/ui/auth/verify_token.cljs, src/app/main/ui/auth.cljs msgid "title.default" msgstr "Penpot – Se onìrú òmínìra fun awọ̀n ẹ̀gbẹ̀" -#: src/app/main/ui/settings/access_tokens.cljs:292 +#: src/app/main/ui/settings/access-tokens.cljs msgid "title.settings.access-tokens" msgstr "Profaili – Aami wiwọle" -#: src/app/main/ui/settings/feedback.cljs:110 +#: src/app/main/ui/settings/feedback.cljs msgid "title.settings.feedback" msgstr "Fi esi- Penpot" -#: src/app/main/ui/settings/options.cljs:80 +#: src/app/main/ui/settings/options.cljs msgid "title.settings.options" msgstr "Awon eto - Penpot" -#: src/app/main/ui/settings/password.cljs:115 +#: src/app/main/ui/settings/password.cljs msgid "title.settings.password" msgstr "Ọrọigbaníwólé - Penpot" -#: src/app/main/ui/settings/profile.cljs:115 +#: src/app/main/ui/settings/profile.cljs msgid "title.settings.profile" msgstr "Profaili - Penpot" -#: src/app/main/ui/dashboard/team.cljs:727 +#: src/app/main/ui/dashboard/team.cljs msgid "title.team-invitations" msgstr "Ifíwẹ́pe - %s - Penpot" -#: src/app/main/ui/dashboard/team.cljs:493 +#: src/app/main/ui/dashboard/team.cljs msgid "title.team-members" msgstr "Ọ́́mọ̀ ẹgbẹ - %s - Penpot" -#: src/app/main/ui/dashboard/team.cljs:1036 +#: src/app/main/ui/dashboard/team.cljs msgid "title.team-settings" msgstr "Awọn eto - %s - Penpot" -#: src/app/main/ui/dashboard/team.cljs:989 msgid "title.team-webhooks" msgstr "Webhooks - %s - Penpot" -#: src/app/main/ui/viewer.cljs:419 +#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs msgid "title.viewer" msgstr "%s –Ipo wíwò - Penpot" -#: src/app/main/ui/workspace.cljs:190 +#: src/app/main/ui/workspace.cljs msgid "title.workspace" msgstr "%s - Penpot" -#: src/app/main/ui/viewer.cljs:569 +#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs msgid "viewer.empty-state" msgstr "No boards found on the page." -#: src/app/main/ui/viewer.cljs:574 +#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs msgid "viewer.frame-not-found" msgstr "A kò ri ọ̀kọ̀." -#: src/app/main/ui/viewer/header.cljs:336 msgid "viewer.header.comments-section" msgstr "Ọrọìwòye (%s)" -#: src/app/main/ui/viewer/interactions.cljs:292 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.dont-show-interactions" msgstr "Maa fi ìbaráẹ̀nìsepọ han" -#: src/app/main/ui/viewer/header.cljs:188 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.fullscreen" msgstr "Fé ká gḅọgbọ síkírínì" -#: src/app/main/ui/viewer/header.cljs:345 msgid "viewer.header.inspect-section" msgstr "Ayéwò (%s)" -#: src/app/main/ui/viewer/interactions.cljs:282 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.interactions" msgstr "Ibaraenisépọ̀" -#: src/app/main/ui/viewer/header.cljs:327 msgid "viewer.header.interactions-section" msgstr "Awọ̀n Ibaraenisépọ̀ (%s)" -#: src/app/main/ui/viewer/share_link.cljs:187 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.share.copy-link" msgstr "Da línkì kọ̀" -#: src/app/main/ui/viewer/interactions.cljs:300 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.show-interactions" msgstr "Ifihan Ibaraenisépọ̀" -#: src/app/main/ui/viewer/header.cljs:231 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.sitemap" msgstr "Áwòran átọ̀kà ílẹ̀" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:58 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.hcenter" msgstr "Paŕàpọ̀ sí petelè aarin (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:74 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.hdistribute" msgstr "Pin aayè ni pètélè (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:50 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.hleft" msgstr "Páràpọ̀ sí òsì (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:66 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.hright" msgstr "Páràpọ̀ sí ọtun (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:99 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.vbottom" msgstr "Páràpọ̀ sí isàlẹ̀ (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:91 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.vcenter" msgstr "Páràpọ̀ sí inàro aarin (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:104 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.vdistribute" msgstr "Pin aayè inàró (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:83 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.vtop" msgstr "Párápọ̀ sóké (%s)" #: src/app/main/ui/workspace/sidebar/assets.cljs -#, unused msgid "workspace.assets.assets" msgstr "Awọ̀n dukia" -#: src/app/main/ui/workspace/sidebar/assets.cljs:134 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.box-filter-all" msgstr "Gbọ̀gbọ̀ awọ̀n dukia" -#: src/app/main/ui/dashboard/grid.cljs:130, src/app/main/ui/dashboard/grid.cljs:162, src/app/main/ui/workspace/sidebar/assets/colors.cljs:485, src/app/main/ui/workspace/sidebar/assets.cljs:150 +#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.colors" msgstr "Áwò" -#: src/app/main/ui/dashboard/grid.cljs:126, src/app/main/ui/dashboard/grid.cljs:141, src/app/main/ui/workspace/sidebar/assets/components.cljs:513, src/app/main/ui/workspace/sidebar/assets.cljs:139 +#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.components" msgstr "Awọ̀n eroja" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:131 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.create-group" msgstr "Ṣẹ̀dá ẹ̀gbẹ̀ kan" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:142 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.create-group-hint" msgstr "páarẹ̀" -#: src/app/main/ui/workspace/context_menu.cljs:534, src/app/main/ui/workspace/sidebar/assets/components.cljs:572 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs, src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.duplicate" msgstr "ẹẹdà" -#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:247, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:439 +#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.edit" msgstr "Ṣatunkọ" -#: src/app/main/ui/workspace/sidebar/assets/graphics.cljs:384, src/app/main/ui/workspace/sidebar/assets.cljs:145 +#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.graphics" msgstr "Awọn Awòran" -#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:255, src/app/main/ui/workspace/sidebar/assets/components.cljs:581, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:428, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:448 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.group" msgstr "Ẹgbẹ" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:141 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.group-name" msgstr "Orúkọ̀ ẹgbẹ" -#: src/app/main/ui/workspace/sidebar/assets.cljs:168 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.libraries" msgstr "Ílè-iwè" -#: src/app/main/ui/workspace/sidebar/assets/file_library.cljs:62, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:347 msgid "workspace.assets.local-library" msgstr "Ílè-iwè agbegbe" -#: src/app/main/ui/workspace/sidebar/assets/file_library.cljs:295 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.not-found" msgstr "Ko si ohun-ini ti a rii" -#, unused msgid "workspace.assets.open-library" msgstr "Ṣii faili ìlé-ikáwè" -#: src/app/main/ui/workspace/context_menu.cljs:532, src/app/main/ui/workspace/sidebar/assets/colors.cljs:243, src/app/main/ui/workspace/sidebar/assets/components.cljs:566, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:421, src/app/main/ui/workspace/sidebar/assets/groups.cljs:63, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:434 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.rename" msgstr "Lo oruko imiran" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:132 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.rename-group" msgstr "Lo oruko imiran fun ẹgbẹ" -#: src/app/main/ui/workspace/sidebar/assets.cljs:173 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.search" msgstr "Wa dukia" #: src/app/main/ui/workspace/sidebar/assets.cljs -#, unused msgid "workspace.assets.shared-library" msgstr "Iĺẹ̀ iwekika ti a pln" -#: src/app/main/ui/dashboard/grid.cljs:134, src/app/main/ui/dashboard/grid.cljs:189, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:397, src/app/main/ui/workspace/sidebar/assets.cljs:155 +#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.typography" msgstr "Iwe itẹwe" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused msgid "workspace.assets.typography.font-id" msgstr "Fonti" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:505 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.font-size" msgstr "Iwon" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:501 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.font-variant-id" msgstr "Iyatọ" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:513 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.letter-spacing" msgstr "Aaye leta" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:509 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.line-height" msgstr "Giga ila" -#: src/app/main/ui/dashboard/grid.cljs:199, src/app/main/ui/workspace/libraries.cljs:461, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:464, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:489, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:596, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:615 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, src/app/main/ui/inspect/attributes/text.cljs, src/app/main/ui/inspect/attributes/text.cljs msgid "workspace.assets.typography.sample" msgstr "Ag" -#, unused msgid "workspace.assets.typography.text-styles" msgstr "Oniru ọrọ" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:517 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.text-transform" msgstr "Iyipádà ọrọ" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:66 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.ungroup" msgstr "Títù ẹ̀gbẹ́" -#: src/app/main/ui/workspace/sidebar/layers.cljs:525 msgid "workspace.focus.focus-mode" msgstr "Ipo Idojukọ" -#: src/app/main/ui/workspace/context_menu.cljs:287, src/app/main/ui/workspace/context_menu.cljs:553 msgid "workspace.focus.focus-off" msgstr "Pa Ídòjúkọ" -#: src/app/main/ui/workspace/context_menu.cljs:286 msgid "workspace.focus.focus-on" msgstr "Tan Ídòjúkọ" -#, unused msgid "workspace.focus.selection" msgstr "Yiyan" -#: src/app/util/color.cljs:34 +#: src/app/main/data/workspace/libraries.cljs, src/app/main/ui/components/color_bullet.cljs msgid "workspace.gradients.linear" msgstr "Itesiwaju gerege" -#: src/app/util/color.cljs:35 +#: src/app/main/data/workspace/libraries.cljs, src/app/main/ui/components/color_bullet.cljs msgid "workspace.gradients.radial" msgstr "Itesiwaju Radial" -#: src/app/main/ui/workspace/main_menu.cljs:192 msgid "workspace.header.menu.disable-scale-content" msgstr "Pa asèkalẹ̀ iwọnbà" #: src/app/main/ui/workspace/header.cljs -#, unused msgid "workspace.header.menu.disable-scale-text" msgstr "Pa ọrọ iwọnba" -#: src/app/main/ui/workspace/main_menu.cljs:253 msgid "workspace.header.menu.disable-snap-pixel-grid" msgstr "Pa yipada si piseli" -#: src/app/main/ui/workspace/main_menu.cljs:239 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.enable-dynamic-alignment" msgstr "Tan imudagba to Sedede" -#: src/app/main/ui/workspace/main_menu.cljs:193 msgid "workspace.header.menu.enable-scale-content" msgstr "Tan asèkalẹ̀ iwọnbà" #: src/app/main/ui/workspace/header.cljs -#, unused msgid "workspace.header.menu.enable-scale-text" msgstr "Tan iwọnbà ọrọ" -#: src/app/main/ui/workspace/main_menu.cljs:224 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.enable-snap-guides" msgstr "Yipada si itọ̀nìsọna" -#: src/app/main/ui/workspace/main_menu.cljs:254 msgid "workspace.header.menu.enable-snap-pixel-grid" msgstr "Tan Yipada si piseli" -#: src/app/main/ui/workspace/main_menu.cljs:353 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.hide-palette" msgstr "Tọ̀jú awọ palẹti" -#: src/app/main/ui/workspace/main_menu.cljs:394 msgid "workspace.header.menu.hide-pixel-grid" msgstr "Tọ̀jú pisẹli ilana" -#: src/app/main/ui/workspace/main_menu.cljs:320 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.hide-rules" msgstr "Tọ̀jú awọn ólòrí" -#: src/app/main/ui/workspace/main_menu.cljs:367 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.hide-textpalette" msgstr "Tọ̀jú awọn fọnti paleti" -#: src/app/main/ui/workspace/main_menu.cljs:731 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.edit" msgstr "Satunkọ" -#: src/app/main/ui/workspace/main_menu.cljs:720 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.file" msgstr "Faili" -#: src/app/main/ui/workspace/main_menu.cljs:777 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.help-info" msgstr "Iranlọwọ ati alaye" -#: src/app/main/ui/workspace/main_menu.cljs:753 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.preferences" msgstr "Awọn àyánfẹ̀" -#: src/app/main/ui/workspace/main_menu.cljs:742 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.view" msgstr "Wiwo" -#: src/app/main/ui/workspace/main_menu.cljs:459 msgid "workspace.header.menu.redo" msgstr "Tun ṣe" -#: src/app/main/ui/workspace/main_menu.cljs:432 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.select-all" msgstr "Sa gbogbo rẹ" -#: src/app/main/ui/workspace/main_menu.cljs:354 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.show-palette" msgstr "Fi awo paleti han" -#: src/app/main/ui/workspace/main_menu.cljs:395 msgid "workspace.header.menu.show-pixel-grid" msgstr "Fi piseli ilana han" -#: src/app/main/ui/workspace/main_menu.cljs:321 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.show-rules" msgstr "Ifihan awọ̀n ólórí" -#: src/app/main/ui/workspace/main_menu.cljs:368 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.show-textpalette" msgstr "Ifihan fonti paleti" -#: src/app/main/ui/workspace/main_menu.cljs:446 msgid "workspace.header.menu.undo" msgstr "Yi pada" -#: src/app/main/ui/viewer/header.cljs:98, src/app/main/ui/workspace/right_header.cljs:120 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.reset-zoom" msgstr "Tunto" #: src/app/main/ui/workspace/header.cljs -#, unused msgid "workspace.header.save-error" msgstr "àsisè lórì fíf́ipamọ" -#: src/app/main/ui/workspace/right_header.cljs:52 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.saved" msgstr "Ti a fipamọ" #: src/app/main/ui/workspace/header.cljs -#, unused msgid "workspace.header.saving" msgstr "Fifipámọ" -#: src/app/main/ui/workspace/right_header.cljs:42, src/app/main/ui/workspace/right_header.cljs:47 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.unsaved" msgstr "Awọn ayípàdà ti kó ni fipamọ" -#: src/app/main/ui/workspace/right_header.cljs:239 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.viewer" msgstr "Ipo wiwo(%s)" -#: src/app/main/ui/viewer/header.cljs:79, src/app/main/ui/workspace/right_header.cljs:103 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom" msgstr "sun-un" -#: src/app/main/ui/viewer/header.cljs:109 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom-fill" msgstr "Kun - óṣùwọn to kun" -#: src/app/main/ui/viewer/header.cljs:102 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom-fit" msgstr "Báràmù - óṣùwọn to Báràmù" -#: src/app/main/ui/workspace/right_header.cljs:123 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom-fit-all" msgstr "Suun kí o bá gbógbó rẹ̀ dọ́gbà" -#: src/app/main/ui/viewer/header.cljs:116 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom-full-screen" msgstr "Áseàfihan to kún" -#: src/app/main/ui/workspace/right_header.cljs:130 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom-selected" msgstr "Ṣuum lati yan" -#: src/app/main/ui/workspace/viewport/grid_layout_editor.cljs:59 msgid "workspace.layout_grid.editor.title" msgstr "Ilànà àyípàdà" #: src/app/main/ui/workspace/libraries.cljs -#, unused msgid "workspace.libraries.add" msgstr "Afikùn" -#: src/app/main/ui/workspace/libraries.cljs:80, src/app/main/ui/workspace/libraries.cljs:99 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.colors" msgstr "%s awọn awọ" -#: src/app/main/ui/workspace/color_palette.cljs:126 +#: src/app/main/ui/workspace/colorpalette.cljs msgid "workspace.libraries.colors.empty-palette" msgstr "Kòyi si oniruiru awọ ni ilé-ikàwé re" -#: src/app/main/ui/workspace/text_palette.cljs:150 +#: src/app/main/ui/workspace/textpalette.cljs msgid "workspace.libraries.colors.empty-typography-palette" msgstr "Ko si oniruiru iwé itẹ̀wé ni ilé ikàwé rẹ̀" #: src/app/main/ui/workspace/colorpicker.cljs -#, unused msgid "workspace.libraries.colors.hsv" msgstr "HSV" -#: src/app/main/ui/workspace/color_palette_ctx_menu.cljs:82, src/app/main/ui/workspace/colorpicker/libraries.cljs:72 +#: src/app/main/ui/workspace/colorpicker/libraries.cljs, src/app/main/ui/workspace/colorpalette.cljs msgid "workspace.libraries.colors.recent-colors" msgstr "Awọn àwò tálò láipẹ̀" #: src/app/main/ui/workspace/colorpicker.cljs -#, unused msgid "workspace.libraries.colors.rgb-complementary" msgstr "RGB Ibáramù" #: src/app/main/ui/workspace/colorpicker.cljs -#, unused msgid "workspace.libraries.colors.rgba" msgstr "RGBA" -#: src/app/main/ui/workspace/colorpicker.cljs:372 +#: src/app/main/ui/workspace/colorpicker.cljs msgid "workspace.libraries.colors.save-color" msgstr "Fi awọn oniru awọ pamọ" -#: src/app/main/ui/workspace/libraries.cljs:74, src/app/main/ui/workspace/libraries.cljs:91 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.components" msgstr "%s Ẹya ara ẹrọ" -#: src/app/main/ui/workspace/libraries.cljs:215 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.file-library" msgstr "Faili ilé ikàwé" -#: src/app/main/ui/workspace/libraries.cljs:77, src/app/main/ui/workspace/libraries.cljs:95 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.graphics" msgstr "%s ayaworan" -#: src/app/main/ui/workspace/libraries.cljs:526, src/app/main/ui/workspace/libraries.cljs:531 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.libraries" msgstr "Awọn Ílè íkawè" #: src/app/main/ui/workspace/libraries.cljs -#, unused msgid "workspace.libraries.library" msgstr "Ílè íkawè" -#: src/app/main/ui/workspace/libraries.cljs:382 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.library-updates" msgstr "Ílè íkawè ímùdojúiwọn" -#: src/app/main/ui/workspace/libraries.cljs:380 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.no-libraries-need-sync" msgstr "Kò si Ilé kàwé ti a pin si ímùdojúiwọn" -#: src/app/main/ui/workspace/libraries.cljs:256 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.shared-libraries" msgstr "Awọn ilé kàwé tí a pìn" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:308 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.libraries.text.multiple-typography" msgstr "Óríṣí awọn íwè itẹ̀wé" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:311 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.libraries.text.multiple-typography-tooltip" msgstr "Tú gbógbó lińkí awọn íwè itẹ̀wé" -#: src/app/main/ui/workspace/libraries.cljs:83, src/app/main/ui/workspace/libraries.cljs:103 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.typography" msgstr "%s awọn íwè itẹ̀wé" -#: src/app/main/ui/workspace/libraries.cljs:402 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.update" msgstr "ímùdojúiwọn" -#: src/app/main/ui/workspace/libraries.cljs:477 +#: src/app/main/data/workspace/libraries.cljs msgid "workspace.libraries.update.see-all-changes" msgstr "wò gbògbò awọn ayípàdà" -#: src/app/main/ui/workspace/libraries.cljs:536 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.updates" msgstr "Awọn ímùdojúiwọn" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:737 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.add-interaction" msgstr "Tẹ amí + làtí fi íbàràénisépọ̀ kun" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:86, src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:102 +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs msgid "workspace.options.blur-options.title" msgstr "Baìbaì" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:85 +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs msgid "workspace.options.blur-options.title.group" msgstr "Ẹ̀gdẹ́ Baìbaì" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:84 +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs msgid "workspace.options.blur-options.title.multiple" msgstr "Asayan Baìbaì" -#: src/app/main/ui/workspace/sidebar/options/page.cljs:32, src/app/main/ui/workspace/sidebar/options/page.cljs:39 +#: src/app/main/ui/workspace/sidebar/options/page.cljs msgid "workspace.options.canvas-background" msgstr "Kánfásì abẹ́le" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:548 msgid "workspace.options.clip-content" msgstr "Ábẹrẹ́ ákoonù" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:600, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:605 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs msgid "workspace.options.component" msgstr "Apakan" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:610 msgid "workspace.options.component.copy" msgstr "Ádàakọ" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:172 msgid "workspace.options.component.edit-annotation" msgstr "Ṣatunkọ àkọ̀silẹ̀" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:609 msgid "workspace.options.component.main" msgstr "Ólòrí" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:163 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints" msgstr "Awọn ihámọ" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:150 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.bottom" msgstr "Ídì" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:141, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:152 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.center" msgstr "Aarin" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:138 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.left" msgstr "Òsi" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:140 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.leftright" msgstr "Osi ati otun" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:139 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.right" msgstr "Ọ̀tún" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:142, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:153 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.scale" msgstr "Íwọ́n" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:149 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.top" msgstr "Ókè" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:151 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.topbottom" msgstr "Ókè ati Ídí" -#: src/app/main/ui/workspace/sidebar/options.cljs:112 +#: src/app/main/ui/workspace/sidebar/options.cljs msgid "workspace.options.design" msgstr "Ónirú" -#: src/app/main/ui/viewer/inspect/exports.cljs:139 +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs msgid "workspace.options.export" msgstr "Sí ilẹ́ òkèeré" -#: src/app/main/ui/viewer/inspect/exports.cljs:178, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:219 +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs msgid "workspace.options.export.suffix" msgstr "afikun ọrọ niipárí" -#: src/app/main/ui/export.cljs:240 +#: 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.exporting-complete" msgstr "Gbígbè okeere ti pari" -#: src/app/main/ui/export.cljs:172, src/app/main/ui/export.cljs:241, src/app/main/ui/viewer/inspect/exports.cljs:194, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:236 +#: 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.exporting-object" msgstr "Gbígbè okeere …" -#: src/app/main/ui/export.cljs:239 +#: 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.exporting-object-error" msgstr "Gbígbè okeere kuna" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:49, src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:174 +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs msgid "workspace.options.fill" msgstr "Kún" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:178 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.flows.add-flow-start" msgstr "Safikun ibẹrè ṣiṣan" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -#, unused msgid "workspace.options.flows.flow-start" msgstr "ibẹrè ṣiṣan" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:161 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.flows.flow-starts" msgstr "íbẹrè awọn ṣiṣan" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:29 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.auto" msgstr "Aifọ́wọyi" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.grid-title" msgstr "Ilánà" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:196, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:237 msgid "workspace.options.grid.params.color" msgstr "Awọ" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.params.columns" msgstr "Awọn ọwọn" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:259 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.gutter" msgstr "Gota" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:246 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.height" msgstr "Òkè" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:270 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.margin" msgstr "Àlà" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.params.rows" msgstr "Àwọn orí ìlà ìbú" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:216, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:290 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.set-default" msgstr "Fi sípò abínibí" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.params.size" msgstr "Ìwọ̀n" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.params.type" msgstr "Irú" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:231 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.bottom" msgstr "ìsàlẹ̀" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:229 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.center" msgstr "Àárín" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:228 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.left" msgstr "Òsì" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:232 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.right" msgstr "Ọ̀tún" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:225 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.stretch" msgstr "Nà" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:227 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.top" msgstr "Òkè" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:211, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:288 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.use-default" msgstr "Lo ipò abínibí" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:247 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.width" msgstr "Ìgbòrò" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:158 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.row" msgstr "Àwọn orị ìlà ìbú" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:156 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.square" msgstr "Alápoméjì" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:48 +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs msgid "workspace.options.group-fill" msgstr "Ẹ̀kún ẹgbẹ́" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:42 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.group-stroke" msgstr "Ẹgba ẹgbẹ́" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:406 msgid "workspace.options.height" msgstr "Gíga" -#: src/app/main/ui/workspace/sidebar/options.cljs:161 msgid "workspace.options.inspect" msgstr "Ṣàyẹ̀wò" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:468 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-action" msgstr "Ìgbésẹ̀" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:41, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:367 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-after-delay" msgstr "Lẹ́yìn ìdádúro" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:614 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-animation" msgstr "Àwòrán abẹ̀mí" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:406 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-animation-dissolve" msgstr "Túká" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:405 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-animation-none" msgstr "Kòsí" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:412 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-animation-push" msgstr "Tì" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:407 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-animation-slide" msgstr "Aṣàfihàn" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:391 msgid "workspace.options.interaction-auto" msgstr "Ọkọ̀" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:604 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-background" msgstr "Fi àyíká ìtẹ̀lẹ̀ ìlànà síi" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:590 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-close-outside" msgstr "Páadé tí o bá n tẹ ìta" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:372 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-close-overlay" msgstr "Pa ìlànà ìtẹ̀lẹ̀ dé" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:56 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-close-overlay-dest" msgstr "Pa ìlànà ìtẹ̀lẹ̀ dé: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:456 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-delay" msgstr "Ìdádúró" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:478 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-destination" msgstr "Èbúté" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:661 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-duration" msgstr "Ịgbà" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:674 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing" msgstr "Rírokùn" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:416 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing-ease" msgstr "Ìrọ̀rùn" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:417 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing-ease-in" msgstr "Rọra wọlé" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:419 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing-ease-in-out" msgstr "Rọra wọlé jáde" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:418 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing-ease-out" msgstr "Rọra jáde" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:415 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing-linear" msgstr "Ilà" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -#, unused msgid "workspace.options.interaction-in" msgstr "Inú" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:39, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:364 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-mouse-enter" msgstr "Atọ́ka ìwọnú" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:40, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:365 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-mouse-leave" msgstr "Atọ́ka kíkúrò" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:458, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:459, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:464, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:663, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:665, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:669 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-ms" msgstr "ms" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:369 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-navigate-to" msgstr "Lílọ kiri sí" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:50 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-navigate-to-dest" msgstr "Lílo kiri sí: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:51, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:53, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:55, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:380 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-none" msgstr "(Akò ṣètò)" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:691 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-offset-effect" msgstr "Ipa àìṣedédé" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:35, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:360 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-on-click" msgstr "Tẹ orí" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:370 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-open-overlay" msgstr "Ṣíìtẹ̀lé ìlànà" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:52 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-open-overlay-dest" msgstr "Ṣí ìtẹ̀lé ìlànà: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:59, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:374 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-open-url" msgstr "Ṣí URL" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -#, unused msgid "workspace.options.interaction-out" msgstr "Jáde" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:403 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-bottom-center" msgstr "Àáriń ìsàlẹ̀" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:401 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-bottom-left" msgstr "Ìsàlẹ̀ òsì" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:402 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-bottom-right" msgstr "Ìsàḷ̀ẹ̀ ọ̀tún" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:397 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-center" msgstr "Àárín" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:396 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-manual" msgstr "Aláfọwóṣe" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:400 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-top-center" msgstr "Àárín òkè" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:398 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-top-left" msgstr "Òkè òsì" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:399 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-top-right" msgstr "Òkè ọ̀tún" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:524 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-position" msgstr "Ipò" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:494 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-preserve-scroll" msgstr "Ṣe ìtọ́jú ipò àyílọ" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:58, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:373 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-prev-screen" msgstr "Aṣàfihàn àtẹ̀yìnwá" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:515 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-relative-to" msgstr "Ìbátan sí" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:57, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:379, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:393, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:394 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-self" msgstr "Tìkara" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:371 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-toggle-overlay" msgstr "Àyípadà ìtẹ̀lé ìlànà" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:54 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-toggle-overlay-dest" msgstr "Àyípadà ìtẹ̀lé ìlànà: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:445 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-trigger" msgstr "Okùnfà" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:503 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-url" msgstr "URL" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:37, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:362 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-while-hovering" msgstr "Nígbàtí óhún rábàbà" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:38, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:363 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-while-pressing" msgstr "Nígbàtị óhún tẹ̀" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:724 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interactions" msgstr "Àwọn ìbáraẹniṣepọ̀" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:137 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.color" msgstr "Àwọ̀" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:126 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.color-burn" msgstr "Ṣẹ̀dà àwọ̀" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:129 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.color-dodge" msgstr "Òpó àwọ̀" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:124 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.darken" msgstr "Ṣókuǹkùn" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:133 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.difference" msgstr "Ìyàtọ̀" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:134 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.exclusion" msgstr "Ìyàsọ́tọ̀" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:132 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.hard-light" msgstr "Iná líle" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:135 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.hue" msgstr "Ọdà" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:127 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.lighten" msgstr "Fẹ́ẹ́rẹ́fẹ́" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:138 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.luminosity" msgstr "Ìmọ́lẹ̀" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:125 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.multiply" msgstr "Ìsọdipúpọ̀" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:123 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.normal" msgstr "Déédé" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:130 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.overlay" msgstr "Ìtẹ̀lẹ́ ìlànà" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:136 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.saturation" msgstr "Ẹ̀kúnrẹ́rẹ́" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:128 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.screen" msgstr "Aṣàfihàn" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:131 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.soft-light" msgstr "Ìmọ́lẹ̀ rokoṣo" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -#, unused msgid "workspace.options.layer-options.title" msgstr "Ìpele" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -#, unused msgid "workspace.options.layer-options.title.group" msgstr "Ẹgbẹ́ ìpele" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -#, unused msgid "workspace.options.layer-options.title.multiple" msgstr "Egbẹ́ ààyò" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout-item.advanced-ops" msgstr "Ànàálè ìtẹ̀síwájú" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:564 +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs msgid "workspace.options.layout-item.layout-item-max-h" msgstr "Ibi tó ga jùlọ" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:531 +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs msgid "workspace.options.layout-item.layout-item-max-w" msgstr "Ìgbòrò tó ga jù" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:548 +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs msgid "workspace.options.layout-item.layout-item-min-h" msgstr "Gíga to kéré jù lọ" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:515 +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs msgid "workspace.options.layout-item.layout-item-min-w" msgstr "Ìgbòrò tó kéré jù lọ" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout-item.title.layout-item-max-h" msgstr "Gíga tó pọ̀jù" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout-item.title.layout-item-max-w" msgstr "Ìgbòrò tí pòjù" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout-item.title.layout-item-min-h" msgstr "Gíga tó kéré jùlọ" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout-item.title.layout-item-min-w" msgstr "Gbígbòrò tó kéré jù lọ" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.bottom" msgstr "Ìdí" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.direction.column" msgstr "Ìlà òòró" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.direction.column-reverse" msgstr "Ìlà òòró yíyípadà" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.direction.row" msgstr "Ilà ìbú" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.direction.row-reverse" msgstr "Ilà ìbú yíyípadà" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.gap" msgstr "Àlàfo" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.left" msgstr "Òsì" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout.margin" msgstr "Etí ìwé" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout.margin-all" msgstr "Gbogbo àwọn àwòrán" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout.margin-simple" msgstr "Etí ìwé ẹyọ" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.packed" msgstr "tí wọn dì" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.padding" msgstr "Ìtẹ̀wọ́nú" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.padding-all" msgstr "Gbogbo ẹ̀gbẹ́" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.padding-simple" msgstr "Ìtẹ̀wọ́nú pọ́nbélé" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.right" msgstr "Ọ̀tún" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.space-around" msgstr "Àyè àyíká" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.space-between" msgstr "Àyè àárín" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.top" msgstr "Òkè" -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:146 +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs msgid "workspace.options.more-colors" msgstr "Àwọn àwọ̀ púpọ̀ sí i" -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:123 +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs msgid "workspace.options.more-lib-colors" msgstr "Àwọn yàrá àwọ̀ púpọ̀ sí I" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:161 msgid "workspace.options.opacity" msgstr "Àìríran" #: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -#, unused msgid "workspace.options.position" msgstr "Ipò" -#: src/app/main/ui/workspace/sidebar/options.cljs:157 +#: src/app/main/ui/workspace/sidebar/options.cljs msgid "workspace.options.prototype" msgstr "Ìtẹ̀lé ìlànà" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:469, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:481 msgid "workspace.options.radius" msgstr "Ìdáméjì òbìrìkìtiì" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:513 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.radius-bottom-left" msgstr "Apá òsì ìsàlẹ̀" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:522 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.radius-bottom-right" msgstr "Apá ọ̀tún ìsàle" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:495 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.radius-top-left" msgstr "Òkè òsì" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:504 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.radius-top-right" msgstr "Òkè ọ̀tún" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:532 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.radius.all-corners" msgstr "Àwọn gbogbo igun" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:533 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.radius.single-corners" msgstr "Àwọn igun olómìnira" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:183 msgid "workspace.options.recent-fonts" msgstr "Àìpẹ́" -#: src/app/main/ui/export.cljs:284 +#: 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 "Tún gbìyànjú" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:451 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.rotation" msgstr "Yíyípo" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:180 msgid "workspace.options.search-font" msgstr "Àdàkọ ìwádìí" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:741 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.select-a-shape" msgstr "" "Yan ìrísi ,pátákó tàbí ẹgbẹ́ láti fa ìsopọ̀ mọ́ pátákó " "òmíràn." -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:105 +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs msgid "workspace.options.selection-color" msgstr "Àwọn àwọ̀ tí a ti yàn" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:47 +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs msgid "workspace.options.selection-fill" msgstr "Ìmúṣẹ tí a yàn" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:41 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.selection-stroke" msgstr "Ipò ìlù tí a yàn" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:40, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:198, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:200 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.blur" msgstr "Rẹ́súrẹ́sú" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:238 msgid "workspace.options.shadow-options.color" msgstr "Àwọ̀ òjíjí" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:144 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.drop-shadow" msgstr "Da òjìjí" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:145 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.inner-shadow" msgstr "Òjìjí inú" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:38, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:186 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.offsetx" msgstr "X" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:39, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:224 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.offsety" msgstr "Y" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:41, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:211, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:213 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.spread" msgstr "Tànkálẹ̀" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:296 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.title" msgstr "Òjìjí" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:295 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.title.group" msgstr "Àwùjọ òjìjí" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:294 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.title.multiple" msgstr "Òjìjí tí a yàn" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:193 +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs msgid "workspace.options.show-fill-on-export" msgstr "Fihàn nínụ àgbéjáde" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:562 msgid "workspace.options.show-in-viewer" msgstr "Fihàn nínú ipò wíwò" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:162 +#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.size" msgstr "Ìwọ̀n" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:355 +#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs msgid "workspace.options.size-presets" msgstr "Àwọn àtòjọ" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:43 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke" msgstr "Ipò ìlà" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -#, unused msgid "workspace.options.stroke-cap.circle-marker" msgstr "Àmì yíyíká" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:129 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.circle-marker-short" msgstr "Yíyíká" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -#, unused msgid "workspace.options.stroke-cap.diamond-marker" msgstr "Àmì dáyámọ́ǹdì" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:130 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.diamond-marker-short" msgstr "Dáyámọ́ǹdì" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -#, unused msgid "workspace.options.stroke-cap.line-arrow" msgstr "Ọfà ìlà" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:126 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.line-arrow-short" msgstr "Ofà" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:124 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.none" msgstr "Kòsí" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:132 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.round" msgstr "Yíká" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:133 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.square" msgstr "Alápoméjì" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -#, unused msgid "workspace.options.stroke-cap.square-marker" msgstr "Àmì alápoméjì" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:128 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.square-marker-short" msgstr "Onígun mẹ́rin" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -#, unused msgid "workspace.options.stroke-cap.triangle-arrow" msgstr "Ofà onígun mẹ́ta" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:127 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.triangle-arrow-short" msgstr "Onígun mẹ́ta" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:192 msgid "workspace.options.stroke-color" msgstr "Àwọ ìlà" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:165 msgid "workspace.options.stroke-width" msgstr "Ìgbòrò ìlà" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:87 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.center" msgstr "Àárín" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:105 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.dashed" msgstr "Tó ní ìlà-ìlà" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:104 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.dotted" msgstr "àmì tó tó tó" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:88 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.inner" msgstr "Nínú" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:106 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.mixed" msgstr "Tí a ti dàpọ̀" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:89 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.outer" msgstr "Ìta" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:103 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.solid" msgstr "Ṣinsin" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:115 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.align-bottom" msgstr "Mú dọ́gba abẹ́" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:111 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.align-middle" msgstr "Mú dọgba àárín" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:107 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.align-top" msgstr "Mú dọ́gba òkè" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:82 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.direction-ltr" msgstr "LTR" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:87 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.direction-rtl" msgstr "RTL" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:149 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.grow-auto-height" msgstr "Gíga aládàáṣiṣẹ́" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:145 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.grow-auto-width" msgstr "Gbígbòòrò aládáàṣiṣé" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:141 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.grow-fixed" msgstr "Tí kò yíyadà" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:381 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.options.text-options.letter-spacing" msgstr "Àlàfo lẹ́tà" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:364 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.options.text-options.line-height" msgstr "Gíga ìlà" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused msgid "workspace.options.text-options.lowercase" msgstr "Lẹ́tà kékeré" #: src/app/main/ui/workspace/sidebar/options/menus/text.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused msgid "workspace.options.text-options.none" msgstr "Kòsí" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:176 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.strikethrough" msgstr "Ìfọwọ́bàyíká (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:51 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.text-align-center" msgstr "Mú dọ́gba àárín (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:59 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.text-align-justify" msgstr "Ìdálàre (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:47 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.text-align-left" msgstr "Mú dọ́gba òsì (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:55 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.text-align-right" msgstr "Mú dọ́gba ọ̀tún (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:189 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.title" msgstr "Àyọkà" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:188 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.title-group" msgstr "Àwùjọ àyọkà" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:187 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.title-selection" msgstr "Àṣàyàn ọ̀rọ̀" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused msgid "workspace.options.text-options.titlecase" msgstr "ipò ọ̀rọ̀ àkórí" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:171 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.underline" msgstr "Fífàlà (%s)" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused msgid "workspace.options.text-options.uppercase" msgstr "Lẹ́tà ńlá" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:745 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.use-play-button" msgstr "" "Lo bọ́tìnì ìṣe tó wà lóori àkọsórí náà láti ṣakóso ìwò " "àkàwé." -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:395 msgid "workspace.options.width" msgstr "Ìgbòrò" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:427 msgid "workspace.options.x" msgstr "Ipò X" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:438 msgid "workspace.options.y" msgstr "Ipò Y" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:167 msgid "workspace.path.actions.add-node" msgstr "Fi ìpàdé kún (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:174 msgid "workspace.path.actions.delete-node" msgstr "Pa ìpàdé ré (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:152 msgid "workspace.path.actions.draw-nodes" msgstr "Fa ìpàdé (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:189 msgid "workspace.path.actions.join-nodes" msgstr "Da ìpàdé pọ̀ (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:204 msgid "workspace.path.actions.make-corner" msgstr "Sí igun (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:211 msgid "workspace.path.actions.make-curve" msgstr "Sí ẹkọ̀rọ̀ (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:182 msgid "workspace.path.actions.merge-nodes" msgstr "Da ìpàdé pò (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:159 msgid "workspace.path.actions.move-nodes" msgstr "Gbé ìpàde (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:196 msgid "workspace.path.actions.separate-nodes" msgstr "Ya ̣ìpàdé sọ́tọ̀ (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:218 msgid "workspace.path.actions.snap-nodes" msgstr "Ìmọ̀lára ìpàdé (%s)" -#: src/app/main/ui/workspace/context_menu.cljs:441 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.add-flex" msgstr "Fi àrọ ètò ìrísí kun" -#: src/app/main/ui/workspace/context_menu.cljs:445 msgid "workspace.shape.menu.add-grid" msgstr "Fi gírídì ètò ìrísị kun" -#: src/app/main/ui/workspace/context_menu.cljs:193 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.back" msgstr "dáa padà séyiǹ" -#: src/app/main/ui/workspace/context_menu.cljs:190 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.backward" msgstr "dá padà sọ́wọ èyiǹ" -#: src/app/main/ui/workspace/context_menu.cljs:139 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.copy" msgstr "Ṣẹ̀dà" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:427 msgid "workspace.shape.menu.create-annotation" msgstr "Ṣèda àlàyé" -#: src/app/main/ui/workspace/context_menu.cljs:275 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.create-artboard-from-selection" msgstr "Yíyàn sí pátákó" -#: src/app/main/ui/workspace/context_menu.cljs:465 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.create-component" msgstr "Ṣẹ́dá àkóónú" -#: src/app/main/ui/workspace/context_menu.cljs:469 msgid "workspace.shape.menu.create-multiple-components" msgstr "Ṣẹ̀dá ọ̀pọ̀lọpọ̀ àkóónú" -#: src/app/main/ui/workspace/context_menu.cljs:142 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.cut" msgstr "Gé" -#: src/app/main/ui/workspace/context_menu.cljs:486 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.delete" msgstr "Parẹ́" -#: src/app/main/ui/workspace/context_menu.cljs:391 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.delete-flow-start" msgstr "Pa ìbẹ̀ẹ̀rè ìsàn rẹ́" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:432 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.detach-instance" msgstr "ṣẹ́ àpẹ̣ẹre yọ nípò" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:431 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.detach-instances-in-bulk" msgstr "Ṣẹ́ àwọn àpẹẹrẹ yọ nípò" -#: src/app/main/ui/workspace/context_menu.cljs:335, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:75 msgid "workspace.shape.menu.difference" msgstr "Ìyàtọ̀" -#: src/app/main/ui/workspace/context_menu.cljs:148 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.duplicate" msgstr "Sẹ ẹ̀dà" -#: src/app/main/ui/workspace/context_menu.cljs:321 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.edit" msgstr "Sàtúnṣe" -#: src/app/main/ui/workspace/context_menu.cljs:341 msgid "workspace.shape.menu.exclude" msgstr "Ṣà yọ sílè" -#: src/app/main/ui/workspace/context_menu.cljs:348, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:89 msgid "workspace.shape.menu.flatten" msgstr "Tẹ́ pẹrẹsẹ" -#: src/app/main/ui/workspace/context_menu.cljs:208 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.flip-horizontal" msgstr "Ìyí padà oníbùú" -#: src/app/main/ui/workspace/context_menu.cljs:204 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.flip-vertical" msgstr "Ìyí padà olóòró" -#: src/app/main/ui/workspace/context_menu.cljs:394 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.flow-start" msgstr "Ìbẹ̀rè ìṣàn" -#: src/app/main/ui/workspace/context_menu.cljs:184 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.forward" msgstr "Mú wá sọ́wọ́ iwájú" -#: src/app/main/ui/workspace/context_menu.cljs:187 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.front" msgstr "Mú wá sí wájú" #: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs -#, unused msgid "workspace.shape.menu.go-main" msgstr "Lọ sí olórí fáìlì àkóónú" -#: src/app/main/ui/workspace/context_menu.cljs:261 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.group" msgstr "Àwùjọ" -#: src/app/main/ui/workspace/context_menu.cljs:363, src/app/main/ui/workspace/sidebar/layer_item.cljs:145 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.hide" msgstr "Tọ́jú" -#: src/app/main/ui/workspace/context_menu.cljs:548, src/app/main/ui/workspace/main_menu.cljs:408 msgid "workspace.shape.menu.hide-ui" msgstr "Fihàn/ Tọ́jú UI" -#: src/app/main/ui/workspace/context_menu.cljs:338 msgid "workspace.shape.menu.intersection" msgstr "Ìkòríta" -#: src/app/main/ui/workspace/context_menu.cljs:371, src/app/main/ui/workspace/sidebar/layer_item.cljs:153 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.lock" msgstr "Tì" -#: src/app/main/ui/workspace/context_menu.cljs:266 +#: src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.mask" msgstr "Ìbòjú" -#: src/app/main/ui/workspace/context_menu.cljs:145, src/app/main/ui/workspace/context_menu.cljs:545 +#: src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.paste" msgstr "lẹ̀mọ́" -#: src/app/main/ui/workspace/context_menu.cljs:331 msgid "workspace.shape.menu.path" msgstr "Ipa ọ̀nà" -#: src/app/main/ui/workspace/context_menu.cljs:432 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.remove-flex" msgstr "Yọ àrọ ètò ìrísí kúrò" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:436 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.reset-overrides" msgstr "Ṣe àtúnṣe ìdojúkọ" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:439 msgid "workspace.shape.menu.restore-main" msgstr "Dạ àkóónú pàtàkì sí pò" -#: src/app/main/ui/workspace/context_menu.cljs:174 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.select-layer" msgstr "Yan ìpele" -#: src/app/main/ui/workspace/context_menu.cljs:360, src/app/main/ui/workspace/sidebar/layer_item.cljs:144 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.show" msgstr "Ṣà fihàn" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:424 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.show-in-assets" msgstr "Ṣafihàn nínú atọ́ka àwọn ìgbìmọ̀ ìní" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:442, src/app/main/ui/workspace/sidebar/assets/components.cljs:586 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.show-main" msgstr "Ṣà fihàn àkóónú pàtàkì" -#: src/app/main/ui/workspace/context_menu.cljs:221 msgid "workspace.shape.menu.thumbnail-remove" msgstr "Yọ àwòrán aláṣojú kúrò" -#: src/app/main/ui/workspace/context_menu.cljs:223 msgid "workspace.shape.menu.thumbnail-set" msgstr "Fi sípò àwòrań aláṣojú" -#: src/app/main/ui/workspace/context_menu.cljs:326 msgid "workspace.shape.menu.transform-to-path" msgstr "Yípadà sí pópó ọ̀nà" -#: src/app/main/ui/workspace/context_menu.cljs:257 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.ungroup" msgstr "Ṣe àìkójọ" -#: src/app/main/ui/workspace/context_menu.cljs:332, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:70 msgid "workspace.shape.menu.union" msgstr "Ìbáṣepò" -#: src/app/main/ui/workspace/context_menu.cljs:368, src/app/main/ui/workspace/sidebar/layer_item.cljs:152 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.unlock" msgstr "Ṣíí" -#: src/app/main/ui/workspace/context_menu.cljs:271 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.unmask" msgstr "Sí ìbòjú" #: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs -#, unused msgid "workspace.shape.menu.update-components-in-bulk" msgstr "Mímú àwọn ọ̀rọ̀ àkóónú pàtàkì dójú ìwọ̀n" -#: src/app/main/ui/components/tab_container.cljs:50 msgid "workspace.sidebar.collapse" msgstr "Wó òpó ègbẹ́" -#: src/app/main/ui/workspace/sidebar/collapsable_button.cljs:26 msgid "workspace.sidebar.expand" msgstr "Fẹ òpó ẹ̀gbẹ́" -#: src/app/main/ui/workspace/right_header.cljs:231, src/app/main/ui/workspace/right_header.cljs:232 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.sidebar.history" msgstr "Ìtàn (%s)" -#: src/app/main/ui/workspace/sidebar/layers.cljs:522, src/app/main/ui/workspace/sidebar.cljs:100 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.sidebar.layers" msgstr "Àwọn ìpele" -#: src/app/main/ui/workspace/sidebar/layers.cljs:308, src/app/main/ui/workspace/sidebar/layers.cljs:380 msgid "workspace.sidebar.layers.components" msgstr "Àwọn àkóónú" -#: src/app/main/ui/workspace/sidebar/layers.cljs:305, src/app/main/ui/workspace/sidebar/layers.cljs:338 msgid "workspace.sidebar.layers.frames" msgstr "Àwọn pátákó" -#: src/app/main/ui/workspace/sidebar/layers.cljs:306, src/app/main/ui/workspace/sidebar/layers.cljs:352 msgid "workspace.sidebar.layers.groups" msgstr "Àkójọ" -#: src/app/main/ui/workspace/sidebar/layers.cljs:310, src/app/main/ui/workspace/sidebar/layers.cljs:408 msgid "workspace.sidebar.layers.images" msgstr "Àwọn àwòrán" -#: src/app/main/ui/workspace/sidebar/layers.cljs:307, src/app/main/ui/workspace/sidebar/layers.cljs:366 msgid "workspace.sidebar.layers.masks" msgstr "Àwọn ìbòjú" -#: src/app/main/ui/workspace/sidebar/layers.cljs:289 msgid "workspace.sidebar.layers.search" msgstr "Àwọn ìpele wíwá" -#: src/app/main/ui/workspace/sidebar/layers.cljs:311, src/app/main/ui/workspace/sidebar/layers.cljs:422 msgid "workspace.sidebar.layers.shapes" msgstr "Àwọn ìrísí" -#: src/app/main/ui/workspace/sidebar/layers.cljs:309, src/app/main/ui/workspace/sidebar/layers.cljs:394 msgid "workspace.sidebar.layers.texts" msgstr "Àwọn àyọkà" -#: src/app/main/ui/viewer/inspect/attributes/svg.cljs:56, src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs:91 +#: src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs, src/app/main/ui/inspect/attributes/svg.cljs msgid "workspace.sidebar.options.svg-attrs.title" msgstr "Gbígbé àwọn ànímọ́ SVG wọlé wá" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs:217 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs msgid "workspace.sidebar.sitemap" msgstr "Àwọn abala" -#: src/app/main/ui/workspace/left_header.cljs:91 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.sitemap" msgstr "Máàpù ojú ìlà" -#: src/app/main/ui/workspace/sidebar.cljs:120 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.assets" msgstr "Àwọn ohun ìní" -#: src/app/main/ui/workspace/palette.cljs:165, src/app/main/ui/workspace/palette.cljs:166 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.color-palette" msgstr "Pálètì àwọ̀ (%s)" -#: src/app/main/ui/workspace/right_header.cljs:220, src/app/main/ui/workspace/right_header.cljs:221 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.comments" msgstr "Àwọn ìdáásí (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:180, src/app/main/ui/workspace/top_toolbar.cljs:181 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.curve" msgstr "Ìṣépo (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:160, src/app/main/ui/workspace/top_toolbar.cljs:161 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.ellipse" msgstr "Àlàfo (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:142, src/app/main/ui/workspace/top_toolbar.cljs:143 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.frame" msgstr "Pátákó (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:59, src/app/main/ui/workspace/top_toolbar.cljs:60 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.image" msgstr "Àwòrán(%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:132, src/app/main/ui/workspace/top_toolbar.cljs:133 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.move" msgstr "Gbé (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:189, src/app/main/ui/workspace/top_toolbar.cljs:190 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.path" msgstr "Pópó ọ̀nà (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:151, src/app/main/ui/workspace/top_toolbar.cljs:152 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.rect" msgstr "Onígun mẹ́rin (%s)" #: src/app/main/ui/workspace/left_toolbar.cljs -#, unused msgid "workspace.toolbar.shortcuts" msgstr "Àwón ọ̀nà àbùjá (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:169, src/app/main/ui/workspace/top_toolbar.cljs:170 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.text" msgstr "Àyọkà (%s)" -#: src/app/main/ui/workspace/palette.cljs:173, src/app/main/ui/workspace/palette.cljs:174 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.text-palette" msgstr "Àwọn ohun ìtẹ̀wé (%s)" -#: src/app/main/ui/workspace/sidebar/history.cljs:342 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.empty" msgstr "Di ìgbà yìí kò sí àyípadà nínú ìtàn" -#: src/app/main/ui/workspace/sidebar/history.cljs:147 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.entry.delete" msgstr "Paarẹ́%s" -#: src/app/main/ui/workspace/sidebar/history.cljs:146 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.entry.modify" msgstr "Àtuńṣe %s" -#: src/app/main/ui/workspace/sidebar/history.cljs:148 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.entry.move" msgstr "Àwọn ohun tí a ti gbé lọ" -#: src/app/main/ui/workspace/sidebar/history.cljs:111 msgid "workspace.undo.entry.multiple.circle" msgstr "Awọn àyíká" -#: src/app/main/ui/workspace/sidebar/history.cljs:112 msgid "workspace.undo.entry.multiple.color" msgstr "Àwọn ohun àmúṣọrọ̀ àwọ̀" -#: src/app/main/ui/workspace/sidebar/history.cljs:113 msgid "workspace.undo.entry.multiple.component" msgstr "Àkóónú" -#: src/app/main/ui/workspace/sidebar/history.cljs:114 msgid "workspace.undo.entry.multiple.curve" msgstr "Àwọn ẹkọ̀rọ̀" -#: src/app/main/ui/workspace/sidebar/history.cljs:115 msgid "workspace.undo.entry.multiple.frame" msgstr "Pátákó" -#: src/app/main/ui/workspace/sidebar/history.cljs:116 msgid "workspace.undo.entry.multiple.group" msgstr "Àwọn àkójọ" -#: src/app/main/ui/workspace/sidebar/history.cljs:117 msgid "workspace.undo.entry.multiple.media" msgstr "Àwọn ohun ìyì àwòrán" -#: src/app/main/ui/workspace/sidebar/history.cljs:118 msgid "workspace.undo.entry.multiple.multiple" msgstr "Àwọn ǹǹkan" -#: src/app/main/ui/workspace/sidebar/history.cljs:119 msgid "workspace.undo.entry.multiple.page" msgstr "Àwọn ojú awé" -#: src/app/main/ui/workspace/sidebar/history.cljs:120 msgid "workspace.undo.entry.multiple.path" msgstr "Àwọn ẹ̀bá ọ̀nà" -#: src/app/main/ui/workspace/sidebar/history.cljs:121 msgid "workspace.undo.entry.multiple.rect" msgstr "Àwọn onígun mẹ́rin" -#: src/app/main/ui/workspace/sidebar/history.cljs:122 msgid "workspace.undo.entry.multiple.shape" msgstr "Ìrísí" -#: src/app/main/ui/workspace/sidebar/history.cljs:123 msgid "workspace.undo.entry.multiple.text" msgstr "Àwọn àyọkà" -#: src/app/main/ui/workspace/sidebar/history.cljs:124 msgid "workspace.undo.entry.multiple.typography" msgstr "Àwọn ohun ìyì ìwé títẹ̀" -#: src/app/main/ui/workspace/sidebar/history.cljs:145 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.entry.new" msgstr "Titun %s" -#: src/app/main/ui/workspace/sidebar/history.cljs:125 msgid "workspace.undo.entry.single.circle" msgstr "Àyíká" -#: src/app/main/ui/workspace/sidebar/history.cljs:126 msgid "workspace.undo.entry.single.color" msgstr "Ohun àmúṣọrọ̀ àwọ̀" -#: src/app/main/ui/workspace/sidebar/history.cljs:127 msgid "workspace.undo.entry.single.component" msgstr "Àkóónú" -#: src/app/main/ui/workspace/sidebar/history.cljs:128 msgid "workspace.undo.entry.single.curve" msgstr "Ẹkọ̀rọ̀" -#: src/app/main/ui/workspace/sidebar/history.cljs:129 msgid "workspace.undo.entry.single.frame" msgstr "Pátákó" -#: src/app/main/ui/workspace/sidebar/history.cljs:130 msgid "workspace.undo.entry.single.group" msgstr "Àkójọ" -#: src/app/main/ui/workspace/sidebar/history.cljs:131 msgid "workspace.undo.entry.single.image" msgstr "Àwòrán" -#: src/app/main/ui/workspace/sidebar/history.cljs:132 msgid "workspace.undo.entry.single.media" msgstr "Ohun àmúṣọrọ̀ èyà àwòrán" -#: src/app/main/ui/workspace/sidebar/history.cljs:133 msgid "workspace.undo.entry.single.multiple" msgstr "Ohun" -#: src/app/main/ui/workspace/sidebar/history.cljs:134 msgid "workspace.undo.entry.single.page" msgstr "Ojú awẹ́" -#: src/app/main/ui/workspace/sidebar/history.cljs:135 msgid "workspace.undo.entry.single.path" msgstr "Pópó ònà" -#: src/app/main/ui/workspace/sidebar/history.cljs:136 msgid "workspace.undo.entry.single.rect" msgstr "Onígun mẹ́rin" -#: src/app/main/ui/workspace/sidebar/history.cljs:137 msgid "workspace.undo.entry.single.shape" msgstr "Ìrísí" -#: src/app/main/ui/workspace/sidebar/history.cljs:138 msgid "workspace.undo.entry.single.text" msgstr "Àyọkà" -#: src/app/main/ui/workspace/sidebar/history.cljs:139 msgid "workspace.undo.entry.single.typography" msgstr "Ohun ìyì ìwé títẹ̀" -#: src/app/main/ui/workspace/sidebar/history.cljs:149 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.entry.unknown" msgstr "Iṣẹ́ parí %s" -#: src/app/main/ui/workspace/sidebar/history.cljs:335 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.title" msgstr "Ìtàn" -#: src/app/main/data/workspace/libraries.cljs:1094 +#: src/app/main/data/workspace/libraries.cljs msgid "workspace.updates.dismiss" msgstr "Ta nù" -#: src/app/main/data/workspace/libraries.cljs:1092 +#: src/app/main/data/workspace/libraries.cljs msgid "workspace.updates.more-info" msgstr "Àlàyé síi" -#: src/app/main/data/workspace/libraries.cljs:1090 +#: src/app/main/data/workspace/libraries.cljs msgid "workspace.updates.there-are-updates" msgstr "Àwọn imúdójúìwọ̀n wà nínú àwọn yàrá ìkàwẹ tí a pín" -#: src/app/main/data/workspace/libraries.cljs:1097 +#: src/app/main/data/workspace/libraries.cljs msgid "workspace.updates.update" msgstr "Ìmúdójúìwọ̀n" -#, unused msgid "workspace.viewport.click-to-close-path" msgstr "Tẹ̀ láti pa pópó ọ̀nà dé" diff --git a/frontend/translations/zh_CN.po b/frontend/translations/zh_CN.po index 347d80fee2..3abd8eddfc 100644 --- a/frontend/translations/zh_CN.po +++ b/frontend/translations/zh_CN.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "PO-Revision-Date: 2024-06-17 08:07+0000\n" "Last-Translator: Anonymous \n" -"Language-Team: Chinese (Simplified) " -"\n" +"Language-Team: Chinese (Simplified) \n" "Language: zh_CN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" @@ -11,5555 +11,5087 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Weblate 5.6-dev\n" -#: src/app/main/ui/auth/register.cljs:151, src/app/main/ui/viewer/login.cljs:104 +#: src/app/main/ui/auth/register.cljs msgid "auth.already-have-account" msgstr "已经有账号了?" -#: src/app/main/ui/auth/register.cljs:299 +#: src/app/main/ui/auth/register.cljs msgid "auth.check-your-email" msgstr "请检查电子邮箱,点击邮件中的超链接来验证,然后开始使用Penpot。" -#: src/app/main/ui/auth/recovery.cljs:78 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.confirm-password" msgstr "确认密码" -#: src/app/main/ui/auth/register.cljs:163 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.create-demo-account" msgstr "创建演示账号" #: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs -#, unused msgid "auth.create-demo-profile" msgstr "只是想试试?" -#: src/app/main/ui/auth/login.cljs:43 +#: src/app/main/ui/auth/register.cljs msgid "auth.demo-warning" msgstr "这是一个演示服务,请【不要】用于真实工作,这些项目将被周期性地抹除。" -#: src/app/main/ui/auth/login.cljs:189, src/app/main/ui/viewer/login.cljs:90 +#: src/app/main/ui/auth/login.cljs msgid "auth.forgot-password" msgstr "忘记密码?" -#: src/app/main/ui/auth/register.cljs:254 +#: src/app/main/ui/auth/register.cljs msgid "auth.fullname" msgstr "全名" -#: src/app/main/ui/auth/login.cljs:282 -msgid "auth.login-account-title" -msgstr "登录我的账号" - -#: src/app/main/ui/auth/register.cljs:155, src/app/main/ui/viewer/login.cljs:107 +#: src/app/main/ui/auth/register.cljs +#, fuzzy msgid "auth.login-here" msgstr "在这里登录" -#: src/app/main/ui/auth/login.cljs:195 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-submit" msgstr "登录" -#: src/app/main/ui/auth/login.cljs:285 -msgid "auth.login-tagline" -msgstr "Penpot是一款自由开源的设计工具,用于「设计」和「开发」协同" - -#: src/app/main/ui/auth/login.cljs:222 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.login-with-github-submit" msgstr "GitHub登录" -#: src/app/main/ui/auth/login.cljs:228 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.login-with-gitlab-submit" msgstr "Gitlab登录" -#: src/app/main/ui/auth/login.cljs:216 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-google-submit" msgstr "Google登录" -#: src/app/main/ui/auth/login.cljs:201 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-ldap-submit" msgstr "LDAP登录" -#: src/app/main/ui/auth/login.cljs:234, src/app/main/ui/auth/login.cljs:255 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-oidc-submit" msgstr "OpenID登录" -#: src/app/main/ui/auth/register.cljs:217, src/app/main/ui/dashboard/team_form.cljs:76, src/app/main/ui/onboarding/team_choice.cljs:180, src/app/main/ui/settings/access_tokens.cljs:66, src/app/main/ui/settings/feedback.cljs:34, src/app/main/ui/settings/profile.cljs:45, src/app/main/ui/workspace/sidebar/assets/groups.cljs:108 +#: src/app/main/ui/settings/team-form.cljs, src/app/main/ui/auth/register.cljs, +#: src/app/main/ui/dashboard/team_form.cljs, +#: src/app/main/ui/onboarding/team_choice.cljs, +#: src/app/main/ui/settings/access_tokens.cljs, +#: src/app/main/ui/settings/feedback.cljs, +#: src/app/main/ui/settings/profile.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "auth.name.not-all-space" msgstr "姓名必须包含一些空格以外的字符。" -#: src/app/main/ui/auth/register.cljs:218, src/app/main/ui/dashboard/team_form.cljs:77, src/app/main/ui/onboarding/team_choice.cljs:181, src/app/main/ui/settings/access_tokens.cljs:67, src/app/main/ui/settings/feedback.cljs:33, src/app/main/ui/settings/profile.cljs:44, src/app/main/ui/workspace/sidebar/assets/groups.cljs:109 +#: src/app/main/ui/auth/register.cljs, +#: src/app/main/ui/dashboard/team_form.cljs, +#: src/app/main/ui/onboarding/team_choice.cljs, +#: src/app/main/ui/settings/access_tokens.cljs, +#: src/app/main/ui/settings/feedback.cljs, +#: src/app/main/ui/settings/profile.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "auth.name.too-long" msgstr "姓名最多包含250个字符。" -#: src/app/main/ui/auth/recovery.cljs:71 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.new-password" msgstr "输入新的密码" -#: src/app/main/ui/auth/recovery.cljs:42 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.notifications.invalid-token-error" msgstr "恢复令牌无效。" -#: src/app/main/ui/auth/recovery.cljs:46 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.notifications.password-changed-successfully" msgstr "密码修改成功" -#: src/app/main/ui/auth/recovery_request.cljs:57 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.notifications.profile-not-verified" msgstr "个人资料未验证,请于验证后继续。" -#: src/app/main/ui/auth/recovery_request.cljs:40 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.notifications.recovery-token-sent" msgstr "找回密码链接已发至你的收件箱。" -#: src/app/main/ui/auth/verify_token.cljs:47 +#: src/app/main/ui/auth/verify_token.cljs msgid "auth.notifications.team-invitation-accepted" msgstr "成功加入团队" -#: src/app/main/ui/auth/login.cljs:179, src/app/main/ui/auth/register.cljs:115 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.password" msgstr "密码" -#: src/app/main/ui/auth/register.cljs:114 +#: src/app/main/ui/auth/register.cljs msgid "auth.password-length-hint" msgstr "至少8位字符" -#: src/app/main/ui/auth/recovery.cljs:61, src/app/main/ui/auth/recovery.cljs:62, src/app/main/ui/auth/register.cljs:81, src/app/main/ui/settings/password.cljs:75, src/app/main/ui/settings/password.cljs:76, src/app/main/ui/settings/password.cljs:77 +#: src/app/main/ui/auth/register.cljs msgid "auth.password-not-empty" msgstr "密码必须包含一些空格以外的字符。" -#: src/app/main/ui/auth.cljs:41 msgid "auth.privacy-policy" msgstr "隐私政策" -#: src/app/main/ui/auth/recovery_request.cljs:88 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-submit" msgstr "找回密码" -#: src/app/main/ui/auth/recovery_request.cljs:101 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-subtitle" msgstr "我们将给你发送一封带有说明的电子邮件" -#: src/app/main/ui/auth/recovery_request.cljs:100 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-title" msgstr "忘记密码?" -#: src/app/main/ui/auth/recovery.cljs:82 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.recovery-submit" msgstr "修改密码" -#: src/app/main/ui/auth/login.cljs:298, src/app/main/ui/viewer/login.cljs:93 +#: src/app/main/ui/auth/login.cljs msgid "auth.register" msgstr "现在还没有账号?" -#: src/app/main/ui/auth/login.cljs:302, src/app/main/ui/auth/register.cljs:121, src/app/main/ui/auth/register.cljs:263, src/app/main/ui/viewer/login.cljs:97 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.register-submit" msgstr "创建账号" -#: src/app/main/ui/auth/register.cljs:140 +#: src/app/main/ui/auth/register.cljs msgid "auth.register-title" msgstr "创建账号" #: src/app/main/ui/auth.cljs -#, unused msgid "auth.sidebar-tagline" msgstr "设计与原型的开源解决方案。" -#: src/app/main/ui/auth.cljs:33, src/app/main/ui/dashboard/sidebar.cljs:1022, src/app/main/ui/workspace/main_menu.cljs:150 msgid "auth.terms-of-service" msgstr "服务协议" -#, unused +#: src/app/main/ui/auth/register.cljs msgid "auth.terms-privacy-agreement" msgstr "创建账号意味着您认可我们的服务条例和隐私政策。" -#: src/app/main/ui/auth/register.cljs:297 +#: src/app/main/ui/auth/register.cljs msgid "auth.verification-email-sent" msgstr "我们已经发送了一封验证邮件到" #: src/app/main/ui/onboarding/questions.cljs -#, unused msgid "branding-illustrations-marketing-pieces" msgstr "品牌设计、插图、营销物料等。" -#: src/app/main/ui/workspace/libraries.cljs:228 msgid "common.publish" msgstr "发布" -#: src/app/main/ui/viewer/share_link.cljs:304, src/app/main/ui/viewer/share_link.cljs:314 msgid "common.share-link.all-users" msgstr "所有Penpot用户" -#: src/app/main/ui/viewer/share_link.cljs:198 msgid "common.share-link.confirm-deletion-link-description" msgstr "你确定要移除链接?那么任何人都无法再访问它" -#: src/app/main/ui/viewer/share_link.cljs:259, src/app/main/ui/viewer/share_link.cljs:289 msgid "common.share-link.current-tag" msgstr "(当前)" -#: src/app/main/ui/viewer/share_link.cljs:207, src/app/main/ui/viewer/share_link.cljs:214 msgid "common.share-link.destroy-link" msgstr "去除链接" -#: src/app/main/ui/viewer/share_link.cljs:221 msgid "common.share-link.get-link" msgstr "获取链接" -#: src/app/main/ui/viewer/share_link.cljs:139 msgid "common.share-link.link-copied-success" msgstr "链接已复制" -#: src/app/main/ui/viewer/share_link.cljs:231 msgid "common.share-link.manage-ops" msgstr "权限管理" -#: src/app/main/ui/viewer/share_link.cljs:277 msgid "common.share-link.page-shared" msgid_plural "common.share-link.page-shared" msgstr[0] "1页已共享" msgstr[1] "%s页已共享" -#: src/app/main/ui/viewer/share_link.cljs:298 msgid "common.share-link.permissions-can-comment" msgstr "可评论" -#: src/app/main/ui/viewer/share_link.cljs:308 msgid "common.share-link.permissions-can-inspect" msgstr "可审查代码" -#: src/app/main/ui/viewer/share_link.cljs:193 msgid "common.share-link.permissions-hint" msgstr "任何人通过此链接都可访问" -#: src/app/main/ui/viewer/share_link.cljs:241 msgid "common.share-link.permissions-pages" msgstr "页面已共享" -#: src/app/main/ui/viewer/share_link.cljs:183 msgid "common.share-link.placeholder" msgstr "可分享的链接会在此处显示" -#: src/app/main/ui/viewer/share_link.cljs:303, src/app/main/ui/viewer/share_link.cljs:313 msgid "common.share-link.team-members" msgstr "只团队成员" -#: src/app/main/ui/viewer/share_link.cljs:171 msgid "common.share-link.title" msgstr "分享原型" -#: src/app/main/ui/viewer/share_link.cljs:269 msgid "common.share-link.view-all" msgstr "选择所有" -#: src/app/main/ui/workspace/libraries.cljs:224 msgid "common.unpublish" msgstr "未发布" -#: src/app/main/ui/dashboard/projects.cljs:85 +#: src/app/main/ui/dashboard/projects.cljs msgid "dasboard.team-hero.management" msgstr "团队管理" -#: src/app/main/ui/dashboard/projects.cljs:84 +#: src/app/main/ui/dashboard/projects.cljs msgid "dasboard.team-hero.text" msgstr "Penpot是为团队协作而设计,邀请成员合作处理项目和文件" -#: src/app/main/ui/dashboard/projects.cljs:82 +#: src/app/main/ui/dashboard/projects.cljs msgid "dasboard.team-hero.title" msgstr "组建团队!" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.tutorial-hero.info" msgstr "通过有趣的实践教程学习Penpot的基础知识。" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.tutorial-hero.start" msgstr "开始教程" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.tutorial-hero.title" msgstr "实践教程" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.walkthrough-hero.info" msgstr "浏览Penpot, 了解其主要功能。" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.walkthrough-hero.start" msgstr "开始浏览" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.walkthrough-hero.title" msgstr "界面浏览" -#: src/app/main/ui/settings/access_tokens.cljs:115 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.copied-success" msgstr "已复制令牌" -#: src/app/main/ui/settings/access_tokens.cljs:202 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.create" msgstr "生成新令牌" -#: src/app/main/ui/settings/access_tokens.cljs:76 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.create.success" msgstr "成功创建访问令牌。" -#: src/app/main/ui/settings/access_tokens.cljs:300 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.empty.add-one" msgstr "点击“生成新令牌”按钮来生成一个。" -#: src/app/main/ui/settings/access_tokens.cljs:299 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.empty.no-access-tokens" msgstr "你目前还没有令牌。" -#: src/app/main/ui/settings/access_tokens.cljs:53 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.errors-required-name" msgstr "名称是必填项" -#: src/app/main/ui/settings/access_tokens.cljs:147 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-180-days" msgstr "180天" -#: src/app/main/ui/settings/access_tokens.cljs:144 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-30-days" msgstr "30天" -#: src/app/main/ui/settings/access_tokens.cljs:145 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-60-days" msgstr "60天" -#: src/app/main/ui/settings/access_tokens.cljs:146 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-90-days" msgstr "90天" -#: src/app/main/ui/settings/access_tokens.cljs:143 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-never" msgstr "从不" -#: src/app/main/ui/settings/access_tokens.cljs:282 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expired-on" msgstr "已经于%s到期" -#: src/app/main/ui/settings/access_tokens.cljs:283 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expires-on" msgstr "将于%s到期" -#: src/app/main/ui/settings/access_tokens.cljs:281 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.no-expiration" msgstr "无到期时限" -#: src/app/main/ui/settings/access_tokens.cljs:197 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.personal" msgstr "个人访问令牌" -#: src/app/main/ui/settings/access_tokens.cljs:198 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.personal.description" -msgstr "个人访问令牌可被理解为密码认证的代替选项,常用于允许(第三方)应用访问Penpot内部API" +msgstr "" +"个人访问令牌可被理解为密码认证的代替选项,常用于允许(第三方)应用访问Penpot" +"内部API" -#: src/app/main/ui/settings/access_tokens.cljs:154 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.token-will-expire" msgstr "令牌将于%s到期" -#: src/app/main/ui/settings/access_tokens.cljs:155 +#: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.token-will-not-expire" msgstr "令牌无到期时限" -#: src/app/main/ui/dashboard/file_menu.cljs:291, src/app/main/ui/workspace/main_menu.cljs:572 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.add-shared" msgstr "添加为共享库" -#: src/app/main/ui/settings/profile.cljs:75 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.change-email" msgstr "修改电子邮件" -#: src/app/main/data/dashboard.cljs:762, src/app/main/data/dashboard.cljs:983 +#: src/app/main/data/dashboard.cljs, src/app/main/data/dashboard.cljs msgid "dashboard.copy-suffix" msgstr "(拷贝)" -#: src/app/main/ui/dashboard/sidebar.cljs:338 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.create-new-team" msgstr "创建新团队" -#: src/app/main/ui/components/context_menu_a11y.cljs:256, src/app/main/ui/dashboard/sidebar.cljs:646 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.default-team-name" msgstr "你的Penpot" -#: src/app/main/ui/dashboard/sidebar.cljs:571 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.delete-team" msgstr "删除团队" -#: src/app/main/ui/dashboard/file_menu.cljs:296, src/app/main/ui/workspace/main_menu.cljs:589 msgid "dashboard.download-binary-file" msgstr "下载Penpot文件 (.penpot)" -#: src/app/main/ui/dashboard/file_menu.cljs:300, src/app/main/ui/workspace/main_menu.cljs:597 msgid "dashboard.download-standard-file" msgstr "下载标准文件(.svg + .json)" -#: src/app/main/ui/dashboard/file_menu.cljs:276, src/app/main/ui/dashboard/project_menu.cljs:90 +#: src/app/main/ui/dashboard/project_menu.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.duplicate" msgstr "复制" -#: src/app/main/ui/dashboard/file_menu.cljs:240 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.duplicate-multi" msgstr "复制 %s 个文件" -#: src/app/main/ui/dashboard/placeholder.cljs:32 -#, markdown +#: src/app/main/ui/dashboard/grid.cljs +#, fuzzy msgid "dashboard.empty-placeholder-drafts" msgstr "" -"添加到库的文件将出现在这里。尝试分享你的文件或从我们的[库和模板](https://penpot.app/libraries-templates." -"html)添加。" +"添加到库的文件将出现在这里。尝试分享你的文件或从我们的[库和模板](https://penp" +"ot.app/libraries-templates.html)添加。" -#: src/app/main/ui/dashboard/file_menu.cljs:249 msgid "dashboard.export-binary-multi" msgstr "下载 %s Penpot文件 (.penpot)" -#: src/app/main/ui/workspace/main_menu.cljs:605 msgid "dashboard.export-frames" msgstr "将画板导出为 PDF 格式" -#: src/app/main/ui/export.cljs:201 +#: src/app/main/ui/export.cljs msgid "dashboard.export-frames.title" msgstr "导出为PDF" -#, unused msgid "dashboard.export-multi" msgstr "导出 %s 个文件" -#: src/app/main/ui/export.cljs:109 +#: src/app/main/ui/export.cljs msgid "dashboard.export-multiple.selected" msgstr "已选择 %s / %s 元素" -#: src/app/main/ui/workspace/main_menu.cljs:578 +#: src/app/main/ui/workspace/header.cljs msgid "dashboard.export-shapes" msgstr "导出" -#: src/app/main/ui/export.cljs:180 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.how-to" msgstr "你可以在设计选项中为元素添加导出设置(位于右侧边栏底部)。" -#: src/app/main/ui/export.cljs:184 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.how-to-link" msgstr "关于如何使用Penpot导出。" -#: src/app/main/ui/export.cljs:179 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.no-elements" msgstr "在导出设置中没找到任何元素。" -#: src/app/main/ui/export.cljs:190 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.title" msgstr "导出已选中" -#: src/app/main/ui/dashboard/file_menu.cljs:252 msgid "dashboard.export-standard-multi" msgstr "下载 %s 标准文件 (.svg + .json)" -#: src/app/main/ui/export.cljs:427 msgid "dashboard.export.detail" msgstr "* 可能包含组件、图形、颜色和/或排版。" -#: src/app/main/ui/export.cljs:426 msgid "dashboard.export.explain" msgstr "你想导出的一个或多个文件用到了共享库。你想怎么处理它们的素材?" -#: src/app/main/ui/export.cljs:435 msgid "dashboard.export.options.all.message" msgstr "使用了共享库的文件将会在导出时保持引用关系。" -#: src/app/main/ui/export.cljs:436 msgid "dashboard.export.options.all.title" msgstr "导出共享库" -#: src/app/main/ui/export.cljs:437 msgid "dashboard.export.options.detach.message" msgstr "导出文件中将不包含共享库,素材也不会被添加到库中。 " -#: src/app/main/ui/export.cljs:438 msgid "dashboard.export.options.detach.title" msgstr "将共享库素材作为基本对象" -#: src/app/main/ui/export.cljs:439 msgid "dashboard.export.options.merge.message" msgstr "导出您的文件时所有的外部素材将会被合并到库中。" -#: src/app/main/ui/export.cljs:440 msgid "dashboard.export.options.merge.title" msgstr "将共享库素材加入文件库" -#: src/app/main/ui/export.cljs:418 msgid "dashboard.export.title" msgstr "导出文档" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:309 msgid "dashboard.fonts.deleted-placeholder" msgstr "字体已删除" -#: src/app/main/ui/dashboard/fonts.cljs:206 +#: src/app/main/ui/dashboard/fonts.cljs msgid "dashboard.fonts.dismiss-all" msgstr "全部取消" -#: src/app/main/ui/dashboard/fonts.cljs:436 msgid "dashboard.fonts.empty-placeholder" msgstr "您上传的自定义字体将显示在此处。" -#: src/app/main/ui/dashboard/fonts.cljs:194 +#: src/app/main/ui/dashboard/fonts.cljs msgid "dashboard.fonts.fonts-added" msgid_plural "dashboard.fonts.fonts-added" msgstr[0] "1 个字体添加成功" msgstr[1] "%s 个字体添加成功" -#: src/app/main/ui/dashboard/fonts.cljs:170 -#, markdown msgid "dashboard.fonts.hero-text1" msgstr "" -"你在此上传的任何网络字体文件,将会被添加至本团队下文件的字体属性中的可用字体族列表中。拥有相同字体族名称的字体文件,将会按照字体族进行分组。你可以上传以" +"你在此上传的任何网络字体文件,将会被添加至本团队下文件的字体属性中的可用字体" +"族列表中。拥有相同字体族名称的字体文件,将会按照字体族进行分组。你可以上传以" "下格式的字体文件:**TTF,OTF和WOFF**(你只需要上传其中一种即可)。" -#: src/app/main/ui/dashboard/fonts.cljs:182 -#, markdown msgid "dashboard.fonts.hero-text2" msgstr "" -"你应当只向Penpot上传你所拥有的字体,或是你持有使用许可的字体。点击[Penpot服务条例](https://penpot.app/terms." -"html)查看更多有关内容权利的章节。或许你也想了解一下[字体许可授权] (https://www.typography.com/faq)。" +"你应当只向Penpot上传你所拥有的字体,或是你持有使用许可的字体。点击[Penpot服务" +"条例](https://penpot.app/terms.html)查看更多有关内容权利的章节。或许你也想了" +"解一下[字体许可授权] (https://www.typography.com/faq)。" -#: src/app/main/ui/dashboard/fonts.cljs:202 +#: src/app/main/ui/dashboard/fonts.cljs msgid "dashboard.fonts.upload-all" msgstr "全部上传" -#: src/app/main/ui/dashboard/fonts.cljs:187 -#, markdown msgid "dashboard.fonts.warning-text" msgstr "" -"我们在你的字体中检测到一个可能的问题,与不同操作系统的垂直度量有关。为了检查它,你可以使用字体垂直度量服务,如[这个](https://" -"vertical-metrics.netlify.app/)。此外,我们建议使用[Transfonter](https://transfonter." -"org/)来生成网络字体并修复错误。 " +"我们在你的字体中检测到一个可能的问题,与不同操作系统的垂直度量有关。为了检查" +"它,你可以使用字体垂直度量服务,如[这个](https://vertical-metrics.netlify." +"app/)。此外,我们建议使用[Transfonter](https://transfonter.org/)来生成网络字" +"体并修复错误。 " -#: src/app/main/ui/dashboard/import.cljs:472, src/app/main/ui/dashboard/project_menu.cljs:108 msgid "dashboard.import" msgstr "导入文件" -#: src/app/main/ui/dashboard/import.cljs:304, src/app/worker/import.cljs:753, src/app/worker/import.cljs:755 msgid "dashboard.import.analyze-error" msgstr "文件无法导入" -#, unused -msgid "dashboard.import.analyze-error.components-v2" -msgstr "文件已启用“组件v2”功能,但这个团队尚未支持该功能。" - -#: src/app/main/ui/dashboard/import.cljs:308 msgid "dashboard.import.import-error" msgstr "文件导入过程中出现未知问题,导入失败。" -#: src/app/main/ui/dashboard/import.cljs:493 msgid "dashboard.import.import-message" msgstr "%s 个文件导入成功。" -#: src/app/main/ui/dashboard/import.cljs:481, src/app/main/ui/dashboard/import.cljs:488 msgid "dashboard.import.import-warning" msgstr "一些包含无效对象的文档已被移除。" -#: src/app/main/ui/dashboard/import.cljs:144 msgid "dashboard.import.progress.process-colors" msgstr "处理颜色中" -#: src/app/main/ui/dashboard/import.cljs:153 msgid "dashboard.import.progress.process-components" msgstr "处理组件中" -#: src/app/main/ui/dashboard/import.cljs:150 msgid "dashboard.import.progress.process-media" msgstr "处理视频中" -#: src/app/main/ui/dashboard/import.cljs:141 msgid "dashboard.import.progress.process-page" msgstr "处理页面中:%s" -#: src/app/main/ui/dashboard/import.cljs:147 msgid "dashboard.import.progress.process-typographies" msgstr "处理字体中" -#: src/app/main/ui/dashboard/import.cljs:135 msgid "dashboard.import.progress.upload-data" msgstr "数据上传中" -#: src/app/main/ui/dashboard/import.cljs:138 msgid "dashboard.import.progress.upload-media" msgstr "文件上传中" -#: src/app/main/ui/dashboard/team.cljs:109 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.invite-profile" msgstr "邀请people" -#: src/app/main/ui/dashboard/sidebar.cljs:547, src/app/main/ui/dashboard/sidebar.cljs:556, src/app/main/ui/dashboard/sidebar.cljs:563, src/app/main/ui/dashboard/team.cljs:312 +#: src/app/main/ui/dashboard/sidebar.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.leave-team" msgstr "退出团队" -#: src/app/main/ui/dashboard/templates.cljs:88, src/app/main/ui/dashboard/templates.cljs:163 msgid "dashboard.libraries-and-templates" msgstr "库和模板" -#: src/app/main/ui/dashboard/templates.cljs:164 msgid "dashboard.libraries-and-templates.explore" msgstr "探索更多内容,了解如何做出贡献" -#: src/app/main/ui/dashboard/import.cljs:365 msgid "dashboard.libraries-and-templates.import-error" msgstr "导入模板时发生错误。模板未导入成功。" -#: src/app/main/ui/dashboard/libraries.cljs:53 +#: src/app/main/ui/dashboard/libraries.cljs msgid "dashboard.libraries-title" msgstr "共享库" -#: src/app/main/ui/dashboard/placeholder.cljs:45 +#: src/app/main/ui/dashboard/grid.cljs msgid "dashboard.loading-files" msgstr "正在加载文档…" -#: src/app/main/ui/dashboard/fonts.cljs:431 msgid "dashboard.loading-fonts" msgstr "正在加载字体…" -#: src/app/main/ui/dashboard/file_menu.cljs:281, src/app/main/ui/dashboard/project_menu.cljs:100 +#: src/app/main/ui/dashboard/project_menu.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.move-to" msgstr "移动到" -#: src/app/main/ui/dashboard/file_menu.cljs:245 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.move-to-multi" msgstr "移动 %s 个文件到" -#: src/app/main/ui/dashboard/file_menu.cljs:226 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.move-to-other-team" msgstr "移动到其他团队" -#: src/app/main/ui/dashboard/files.cljs:105, src/app/main/ui/dashboard/projects.cljs:252, src/app/main/ui/dashboard/projects.cljs:253 +#: src/app/main/ui/dashboard/projects.cljs, +#: src/app/main/ui/dashboard/files.cljs msgid "dashboard.new-file" msgstr "+ 新文档" -#: src/app/main/data/dashboard.cljs:958, src/app/main/data/dashboard.cljs:1181 +#: src/app/main/data/dashboard.cljs msgid "dashboard.new-file-prefix" msgstr "新建文件" -#: src/app/main/ui/dashboard/projects.cljs:55 +#: src/app/main/ui/dashboard/projects.cljs msgid "dashboard.new-project" msgstr "+ 新项目" -#: src/app/main/data/dashboard.cljs:726, src/app/main/data/dashboard.cljs:1184 +#: src/app/main/data/dashboard.cljs msgid "dashboard.new-project-prefix" msgstr "新建项目" -#: src/app/main/ui/dashboard/search.cljs:60 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.no-matches-for" msgstr "没有找到“%s”的匹配项" -#: src/app/main/ui/dashboard/sidebar.cljs:827 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.no-projects-placeholder" msgstr "被钉住的项目会显示在这儿" -#: src/app/main/ui/auth/verify_token.cljs:33 +#: src/app/main/ui/auth/verify_token.cljs msgid "dashboard.notifications.email-changed-successfully" msgstr "已经成功更新你的电子邮件" -#: src/app/main/ui/auth/verify_token.cljs:27 +#: src/app/main/ui/auth/verify_token.cljs msgid "dashboard.notifications.email-verified-successfully" msgstr "已经成功验证你的电子邮件" -#: src/app/main/ui/settings/password.cljs:37 +#: src/app/main/ui/settings/password.cljs msgid "dashboard.notifications.password-saved" msgstr "已经成功保存密码!" -#: src/app/main/ui/dashboard/team.cljs:1081 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.num-of-members" msgstr "成员%s人" -#: src/app/main/ui/dashboard/file_menu.cljs:267 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.open-in-new-tab" msgstr "在新标签页打开文件" -#: src/app/main/ui/dashboard/files.cljs:117, src/app/main/ui/dashboard/projects.cljs:260, src/app/main/ui/dashboard/projects.cljs:261 msgid "dashboard.options" msgstr "选项" -#: src/app/main/ui/settings/password.cljs:106, src/app/main/ui/settings/password.cljs:119 +#: src/app/main/ui/settings/password.cljs msgid "dashboard.password-change" msgstr "修改密码" -#: src/app/main/ui/dashboard/pin_button.cljs:24, src/app/main/ui/dashboard/project_menu.cljs:95 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.pin-unpin" msgstr "钉到侧边栏/取消钉住" -#: src/app/main/ui/dashboard/projects.cljs:51 +#: src/app/main/ui/dashboard/projects.cljs msgid "dashboard.projects-title" msgstr "项目" -#: src/app/main/ui/settings/profile.cljs:86 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.remove-account" msgstr "希望注销您的账号?" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.remove-shared" msgstr "不再作为共享库" -#: src/app/main/ui/settings/profile.cljs:78 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.save-settings" msgstr "保存设置" -#: src/app/main/ui/dashboard/sidebar.cljs:246, src/app/main/ui/dashboard/sidebar.cljs:247 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.search-placeholder" msgstr "搜索…" -#: src/app/main/ui/dashboard/search.cljs:55 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.searching-for" msgstr "正在搜索“%s”…" -#: src/app/main/ui/settings/options.cljs:56 +#: src/app/main/ui/settings/options.cljs msgid "dashboard.select-ui-language" msgstr "选择界面语言" -#: src/app/main/ui/settings/options.cljs:63 +#: src/app/main/ui/settings/options.cljs msgid "dashboard.select-ui-theme" msgstr "选择界面主题" -#: src/app/main/ui/dashboard/projects.cljs:282 +#: src/app/main/ui/dashboard/grid.cljs msgid "dashboard.show-all-files" msgstr "显示全部文档" -#: src/app/main/ui/dashboard/file_menu.cljs:96 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-delete-file" msgid_plural "dashboard.success-delete-file" msgstr[0] "您的文件已被成功删除" msgstr[1] "您的文件已被成功删除" -#: src/app/main/ui/dashboard/project_menu.cljs:59 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.success-delete-project" msgstr "成功删除了项目" -#: src/app/main/ui/dashboard/file_menu.cljs:91 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-duplicate-file" msgid_plural "dashboard.success-delete-file" msgstr[0] "您的文件已被成功复制" msgstr[1] "您的文件已被成功复制" -#: src/app/main/ui/dashboard/project_menu.cljs:33 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.success-duplicate-project" msgstr "成功创建了项目副本" -#: src/app/main/ui/dashboard/file_menu.cljs:130, src/app/main/ui/dashboard/grid.cljs:558, src/app/main/ui/dashboard/sidebar.cljs:152 +#: src/app/main/ui/dashboard/grid.cljs, src/app/main/ui/dashboard/sidebar.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-move-file" msgstr "成功移动了文件" -#: src/app/main/ui/dashboard/file_menu.cljs:129 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-move-files" msgstr "成功移动了文件" -#: src/app/main/ui/dashboard/project_menu.cljs:54 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.success-move-project" msgstr "成功移动了项目" -#: src/app/main/ui/dashboard/team.cljs:1052 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.team-info" msgstr "团队信息" -#: src/app/main/ui/dashboard/team.cljs:1070 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.team-members" msgstr "团队成员" -#: src/app/main/ui/dashboard/team.cljs:1085 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.team-projects" msgstr "团队项目" -#: src/app/main/ui/settings/options.cljs:61 +#: src/app/main/ui/settings/options.cljs msgid "dashboard.theme-change" msgstr "界面主题" -#: src/app/main/ui/dashboard/search.cljs:42 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.title-search" msgstr "搜索结果" -#: src/app/main/ui/dashboard/search.cljs:50 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.type-something" msgstr "输入关键词进行搜索" -#: src/app/main/ui/dashboard/file_menu.cljs:287, src/app/main/ui/workspace/main_menu.cljs:566 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.unpublish-shared" msgstr "取消发布库" -#: src/app/main/ui/settings/options.cljs:71 +#: src/app/main/ui/settings/profile.cljs, +#: src/app/main/ui/settings/password.cljs, +#: src/app/main/ui/settings/options.cljs msgid "dashboard.update-settings" msgstr "保存设置" -#: src/app/main/ui/dashboard/team.cljs:861 msgid "dashboard.webhooks.active" msgstr "处于活跃状态" -#: src/app/main/ui/dashboard/team.cljs:862 msgid "dashboard.webhooks.active.explain" msgstr "当这个webhook被触发时,事件细节将被传递" -#: src/app/main/ui/dashboard/team.cljs:852 msgid "dashboard.webhooks.content-type" msgstr "内容类型" -#: src/app/main/ui/dashboard/team.cljs:885 msgid "dashboard.webhooks.create" msgstr "创建webhook" -#: src/app/main/ui/dashboard/team.cljs:775 msgid "dashboard.webhooks.create.success" msgstr "Webhook创建成功。" -#: src/app/main/ui/dashboard/team.cljs:882 msgid "dashboard.webhooks.description" -msgstr "Webhooks是一种简单的方式,允许其他网站和应用程序在Penpot的某些事件发生时得到通知。我们将发送一个POST请求到你提供的每个URL。" +msgstr "" +"Webhooks是一种简单的方式,允许其他网站和应用程序在Penpot的某些事件发生时得到" +"通知。我们将发送一个POST请求到你提供的每个URL。" -#: src/app/main/ui/dashboard/team.cljs:1005 msgid "dashboard.webhooks.empty.add-one" msgstr "按“添加webhook”按钮添加一个。" -#: src/app/main/ui/dashboard/team.cljs:1004 msgid "dashboard.webhooks.empty.no-webhooks" msgstr "到目前为止还没有创建webhook。" -#, unused msgid "dashboard.webhooks.update.success" msgstr "Webhook成功更新。" -#: src/app/main/ui/settings.cljs:31 +#: src/app/main/ui/settings.cljs msgid "dashboard.your-account-title" msgstr "你的账号" -#: src/app/main/ui/settings/profile.cljs:70 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.your-email" msgstr "电子邮件" -#: src/app/main/ui/settings/profile.cljs:62 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.your-name" msgstr "你的姓名" -#: src/app/main/ui/dashboard/file_menu.cljs:38, src/app/main/ui/dashboard/fonts.cljs:33, src/app/main/ui/dashboard/libraries.cljs:42, src/app/main/ui/dashboard/projects.cljs:318, src/app/main/ui/dashboard/search.cljs:30, src/app/main/ui/dashboard/sidebar.cljs:312, src/app/main/ui/dashboard/team.cljs:495, src/app/main/ui/dashboard/team.cljs:729, src/app/main/ui/dashboard/team.cljs:991, src/app/main/ui/dashboard/team.cljs:1038 +#: src/app/main/ui/dashboard/search.cljs, src/app/main/ui/dashboard/team.cljs, +#: src/app/main/ui/dashboard/libraries.cljs, +#: src/app/main/ui/dashboard/projects.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.your-penpot" msgstr "你的Penpot" -#: src/app/main/ui/alert.cljs:32 +#: src/app/main/ui/alert.cljs msgid "ds.alert-ok" msgstr "好" -#: src/app/main/ui/alert.cljs:31, src/app/main/ui/alert.cljs:34 +#: src/app/main/ui/alert.cljs msgid "ds.alert-title" msgstr "注意" -#: src/app/main/ui/confirm.cljs:83 +#: src/app/main/ui/confirm.cljs msgid "ds.component-subtitle" msgstr "待更新的组件:" -#: src/app/main/ui/confirm.cljs:36, src/app/main/ui/workspace/plugins.cljs:246 +#: src/app/main/ui/confirm.cljs msgid "ds.confirm-cancel" msgstr "取消" -#: src/app/main/ui/confirm.cljs:37, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:141 +#: src/app/main/ui/confirm.cljs msgid "ds.confirm-ok" msgstr "OK" -#: src/app/main/ui/confirm.cljs:35, src/app/main/ui/confirm.cljs:39 +#: src/app/main/ui/confirm.cljs, src/app/main/ui/confirm.cljs msgid "ds.confirm-title" msgstr "你确定?" -#: src/app/main/ui/auth/login.cljs:62 +#: src/app/main/ui/auth/login.cljs msgid "errors.auth-provider-not-configured" msgstr "没有配置身份认证服务源." -#: src/app/main/errors.cljs:104 msgid "errors.auth.unable-to-login" msgstr "你似乎还没有登录或会话已过期。" -#: src/app/main/data/fonts.cljs:189 msgid "errors.bad-font" msgstr "无法加载%s字体" -#: src/app/main/data/fonts.cljs:188 msgid "errors.bad-font-plural" msgstr "无法加载%s等字体" -#: src/app/main/data/workspace/media.cljs:198 msgid "errors.cannot-upload" msgstr "无法上传该媒体文件。" -#: src/app/main/data/workspace.cljs:1598 +#: src/app/main/data/workspace.cljs msgid "errors.clipboard-not-implemented" msgstr "你的浏览器不支持该操作" -#: src/app/main/ui/auth/verify_token.cljs:82, src/app/main/ui/settings/change_email.cljs:46 +#: src/app/main/ui/auth/verify_token.cljs, +#: src/app/main/ui/settings/change_email.cljs msgid "errors.email-already-exists" msgstr "电子邮件已被占用" -#: src/app/main/ui/auth/verify_token.cljs:87 +#: src/app/main/ui/auth/verify_token.cljs msgid "errors.email-already-validated" msgstr "电子邮件已经验证通过。" -#: src/app/main/ui/settings/password.cljs:28 msgid "errors.email-as-password" msgstr "密码不能为邮箱地址" -#: src/app/main/data/users.cljs:707, src/app/main/ui/auth/register.cljs:63 -msgid "errors.email-domain-not-allowed" -msgstr "不允许使用此域名" - -#: src/app/main/ui/auth/recovery_request.cljs:63, src/app/main/ui/dashboard/team.cljs:578, src/app/main/ui/settings/change_email.cljs:54 +#: src/app/main/ui/auth/register.cljs, +#: src/app/main/ui/auth/recovery_request.cljs, +#: src/app/main/ui/settings/change_email.cljs, +#: src/app/main/ui/dashboard/team.cljs msgid "errors.email-has-permanent-bounces" msgstr "电子邮件“%s”收到了非常多的永久退信报告。" -#: src/app/main/ui/auth/login.cljs:81, src/app/main/ui/auth/recovery_request.cljs:31, src/app/main/ui/auth/register.cljs:43 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs, +#: src/app/main/ui/auth/recovery_request.cljs msgid "errors.email-invalid" msgstr "请输入有效的电子邮件" -#: src/app/main/ui/settings/change_email.cljs:35 +#: src/app/main/ui/settings/change_email.cljs msgid "errors.email-invalid-confirmation" msgstr "确认电子邮件必须保持一致" -#: src/app/main/ui/dashboard/team.cljs:170 msgid "errors.email-spam-or-permanent-bounces" msgstr "此邮箱[%s]已被标记为垃圾邮件或已被永久拉黑。" -#: src/app/main/errors.cljs:227 +#: src/app/main/errors.cljs msgid "errors.feature-mismatch" -msgstr "看起来你正在打开一个启用了'%s'功能的文件,但当前penpot版本并不支持该功能或已将其禁用。" +msgstr "" +"看起来你正在打开一个启用了'%s'功能的文件,但当前penpot版本并不支持该功能或已" +"将其禁用。" -#: src/app/main/errors.cljs:231, src/app/main/errors.cljs:245 +#: src/app/main/errors.cljs msgid "errors.feature-not-supported" msgstr "不支持功能“%s”。" -#: src/app/main/errors.cljs:223 +#: src/app/main/errors.cljs msgid "errors.file-feature-mismatch" -msgstr "看起来当前启用的功能,与正在打开的文件所依赖的功能不匹配。在打开文件前,需要应用对“%s”修改。" +msgstr "" +"看起来当前启用的功能,与正在打开的文件所依赖的功能不匹配。在打开文件前,需要" +"应用对“%s”修改。" -#: src/app/main/data/users.cljs:709, src/app/main/ui/auth/login.cljs:65, src/app/main/ui/auth/login.cljs:116, src/app/main/ui/auth/register.cljs:69, src/app/main/ui/auth/register.cljs:237, src/app/main/ui/auth/verify_token.cljs:92, src/app/main/ui/dashboard/team.cljs:173, src/app/main/ui/onboarding/team_choice.cljs:95, src/app/main/ui/settings/access_tokens.cljs:91, src/app/main/ui/settings/feedback.cljs:52 +#: src/app/main/ui/auth/verify_token.cljs, +#: src/app/main/ui/settings/feedback.cljs, src/app/main/ui/dashboard/team.cljs msgid "errors.generic" msgstr "发生了某种错误。" -#: src/app/main/ui/components/color_input.cljs:57 +#: src/app/main/ui/components/color_input.cljs msgid "errors.invalid-color" msgstr "无效的颜色" -#: src/app/main/ui/static.cljs:43 +#: src/app/main/ui/auth/verify_token.cljs msgid "errors.invite-invalid" msgstr "无效的邀请" -#: src/app/main/ui/static.cljs:44 msgid "errors.invite-invalid.info" msgstr "此邀请可能已取消或已过期。" -#: src/app/main/ui/auth/login.cljs:101 +#: src/app/main/ui/auth/login.cljs msgid "errors.ldap-disabled" msgstr "LDAP身份验证已禁用。" -#: src/app/main/errors.cljs:239 +#: src/app/main/errors.cljs msgid "errors.max-quote-reached" msgstr "您已达到“%s”报价。与支持人员联系。" -#: src/app/main/data/workspace/media.cljs:184 +#: src/app/main/data/workspace/persistence.cljs msgid "errors.media-too-large" msgstr "图片尺寸过大,故无法插入。" -#: src/app/main/data/media.cljs:68, src/app/main/data/workspace/media.cljs:187 +#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs msgid "errors.media-type-mismatch" msgstr "图片内容好像与文档扩展名不匹配。" -#: src/app/main/data/media.cljs:65, src/app/main/data/workspace/media.cljs:172, src/app/main/data/workspace/media.cljs:175, src/app/main/data/workspace/media.cljs:178, src/app/main/data/workspace/media.cljs:181 +#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs msgid "errors.media-type-not-allowed" msgstr "该图片好像不可用。" -#: src/app/main/ui/dashboard/team.cljs:574 +#: src/app/main/ui/dashboard/team.cljs msgid "errors.member-is-muted" msgstr "你邀请的人设置了邮件免打扰(报告垃圾邮件或者多次退信)。" -#: src/app/main/ui/settings/password.cljs:61 +#: src/app/main/ui/settings/password.cljs msgid "errors.password-invalid-confirmation" msgstr "确认密码必须保持一致" -#: src/app/main/ui/settings/password.cljs:64 +#: src/app/main/ui/settings/password.cljs msgid "errors.password-too-short" msgstr "密码最少需要8位字符" -#: src/app/main/errors.cljs:124 msgid "errors.paste-data-validation" msgstr "剪切板中为无效数据" -#: src/app/main/data/users.cljs:703, src/app/main/ui/auth/login.cljs:97, src/app/main/ui/auth/login.cljs:105 msgid "errors.profile-blocked" msgstr "个人资料已被屏蔽" -#: src/app/main/ui/auth/recovery_request.cljs:60, src/app/main/ui/dashboard/team.cljs:164, src/app/main/ui/dashboard/team.cljs:570, src/app/main/ui/settings/change_email.cljs:50 +#: src/app/main/ui/auth/recovery_request.cljs, +#: src/app/main/ui/settings/change_email.cljs, +#: src/app/main/ui/dashboard/team.cljs msgid "errors.profile-is-muted" msgstr "你设置了邮件免打扰(报告垃圾邮件或者多次退信)。" -#: src/app/main/data/users.cljs:701, src/app/main/ui/auth/register.cljs:60 +#: src/app/main/ui/auth/register.cljs msgid "errors.registration-disabled" msgstr "当前禁止注册。" -#: src/app/main/errors.cljs:218 +#: src/app/main/errors.cljs msgid "errors.team-feature-mismatch" msgstr "检测到不兼容功能“%s”" -#: src/app/main/ui/dashboard/sidebar.cljs:365, src/app/main/ui/dashboard/team.cljs:359 msgid "errors.team-leave.insufficient-members" msgstr "离开团队后成员不足,您可能要将其删除。" -#: src/app/main/ui/dashboard/sidebar.cljs:368, src/app/main/ui/dashboard/team.cljs:362 msgid "errors.team-leave.member-does-not-exists" msgstr "您尝试分配的成员不存在。" -#: src/app/main/ui/dashboard/sidebar.cljs:371, src/app/main/ui/dashboard/team.cljs:365 msgid "errors.team-leave.owner-cant-leave" msgstr "所有者不能离开团队,您必须转让所有者角色。" -#: src/app/main/data/media.cljs:71 +#: src/app/main/data/media.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, +#: src/app/main/ui/inspect/exports.cljs msgid "errors.unexpected-error" msgstr "发生了意料之外的错误。" -#: src/app/main/ui/auth/verify_token.cljs:60 +#: src/app/main/ui/auth/verify_token.cljs msgid "errors.unexpected-token" msgstr "未知的令牌" -#, unused msgid "errors.validation" msgstr "验证错误" -#: src/app/main/errors.cljs:235 +#: src/app/main/errors.cljs msgid "errors.version-not-supported" msgstr "文件具有不兼容的版本号" -#: src/app/main/ui/dashboard/team.cljs:796 msgid "errors.webhooks.connection" msgstr "连接错误,无法访问 URL" -#: src/app/main/ui/dashboard/team.cljs:790 msgid "errors.webhooks.invalid-uri" msgstr "网址未通过验证。" -#: src/app/main/ui/dashboard/team.cljs:949 msgid "errors.webhooks.last-delivery" msgstr "上次交付不成功。" -#: src/app/main/ui/dashboard/team.cljs:792, src/app/main/ui/dashboard/team.cljs:952 msgid "errors.webhooks.ssl-validation" msgstr "SSL 验证时出错。" -#: src/app/main/ui/dashboard/team.cljs:794 msgid "errors.webhooks.timeout" msgstr "超时" -#: src/app/main/ui/dashboard/team.cljs:788 msgid "errors.webhooks.unexpected" msgstr "验证时出现意外错误" -#: src/app/main/ui/dashboard/team.cljs:798, src/app/main/ui/dashboard/team.cljs:955 msgid "errors.webhooks.unexpected-status" msgstr "意外状态%s" -#: src/app/main/ui/auth/login.cljs:109, src/app/main/ui/auth/login.cljs:113 +#: src/app/main/ui/auth/login.cljs msgid "errors.wrong-credentials" msgstr "邮箱或密码错误。" -#: src/app/main/ui/settings/password.cljs:25 +#: src/app/main/ui/settings/password.cljs msgid "errors.wrong-old-password" msgstr "旧密码不正确" -#: src/app/main/ui/settings/feedback.cljs:77 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.description" msgstr "描述" -#: src/app/main/ui/settings/feedback.cljs:95 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.discourse-go-to" msgstr "前往Penpot论坛" -#: src/app/main/ui/settings/feedback.cljs:89 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.discourse-subtitle1" msgstr "我们很欢迎你的到来。请在发布帮助请求前搜索你所需要的帮助内容。" -#: src/app/main/ui/settings/feedback.cljs:88 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.discourse-title" msgstr "Penpot社区" -#: src/app/main/ui/settings/feedback.cljs:72 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.subject" msgstr "话题" -#: src/app/main/ui/settings/feedback.cljs:69 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.subtitle" -msgstr "请说明你发邮件的原因,详细说明这是一个问题反馈、一个点子还是一个疑问。我们会尽快回复。" +msgstr "" +"请说明你发邮件的原因,详细说明这是一个问题反馈、一个点子还是一个疑问。我们会" +"尽快回复。" -#: src/app/main/ui/settings/feedback.cljs:68 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.title" msgstr "电子邮件" -#: src/app/main/ui/settings/feedback.cljs:105 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.twitter-go-to" msgstr "前往X(原Twitter)" -#: src/app/main/ui/settings/feedback.cljs:99 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.twitter-subtitle1" msgstr "这里可以帮助您解决技术问题。" -#: src/app/main/ui/settings/feedback.cljs:98 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.twitter-title" msgstr "X(原Twitter)支持帐号" -#: src/app/main/ui/settings/password.cljs:30 +#: src/app/main/ui/settings/password.cljs msgid "generic.error" msgstr "发生了一个错误" -#: src/app/main/ui/viewer/inspect/attributes/blur.cljs:26 +#: src/app/main/ui/inspect/attributes/blur.cljs msgid "inspect.attributes.blur" msgstr "模糊" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:115 +#: src/app/main/ui/inspect/attributes/blur.cljs msgid "inspect.attributes.blur.value" msgstr "值" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:112 +#: src/app/main/ui/inspect/attributes/common.cljs msgid "inspect.attributes.color.hex" msgstr "HEX" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:114 +#: src/app/main/ui/inspect/attributes/common.cljs msgid "inspect.attributes.color.hsla" msgstr "HSLA" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:113 +#: src/app/main/ui/inspect/attributes/common.cljs msgid "inspect.attributes.color.rgba" msgstr "RGBA" -#: src/app/main/ui/viewer/inspect/attributes/fill.cljs:57 +#: src/app/main/ui/inspect/attributes/fill.cljs msgid "inspect.attributes.fill" msgstr "填充" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:99, src/app/main/ui/viewer/inspect/attributes/image.cljs:51 +#: src/app/main/ui/inspect/attributes/image.cljs msgid "inspect.attributes.image.download" msgstr "下载原图" -#: src/app/main/ui/viewer/inspect/attributes/image.cljs:39 +#: src/app/main/ui/inspect/attributes/image.cljs msgid "inspect.attributes.image.height" msgstr "高" -#: src/app/main/ui/viewer/inspect/attributes/image.cljs:32 +#: src/app/main/ui/inspect/attributes/image.cljs msgid "inspect.attributes.image.width" msgstr "宽" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout" msgstr "布局" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.height" msgstr "高" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.left" msgstr "左" -#: src/app/main/ui/inspect/attributes/layout.cljs, src/app/main/ui/inspect/attributes/layout.cljs -#, unused +#: src/app/main/ui/inspect/attributes/layout.cljs, +#: src/app/main/ui/inspect/attributes/layout.cljs msgid "inspect.attributes.layout.radius" msgstr "圆角" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.rotation" msgstr "旋转" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.top" msgstr "顶" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.width" msgstr "宽" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:57 +#: src/app/main/ui/inspect/attributes/shadow.cljs msgid "inspect.attributes.shadow" msgstr "阴影" -#: src/app/main/ui/viewer/inspect/attributes/geometry.cljs:40 +#: src/app/main/ui/inspect/attributes/layout.cljs msgid "inspect.attributes.size" msgstr "尺寸和位置" -#: src/app/main/ui/viewer/inspect/attributes/stroke.cljs:52 +#: src/app/main/ui/inspect/attributes/stroke.cljs msgid "inspect.attributes.stroke" msgstr "边框" -#, permanent, unused msgid "inspect.attributes.stroke.alignment.center" msgstr "居中" -#, permanent, unused msgid "inspect.attributes.stroke.alignment.inner" msgstr "内部" -#, permanent, unused msgid "inspect.attributes.stroke.alignment.outer" msgstr "外部" -#, unused msgid "inspect.attributes.stroke.style.dotted" msgstr "虚线" -#, unused msgid "inspect.attributes.stroke.style.mixed" msgstr "混合" -#, unused msgid "inspect.attributes.stroke.style.none" msgstr "无" -#, unused msgid "inspect.attributes.stroke.style.solid" msgstr "实线" #: src/app/main/ui/inspect/attributes/stroke.cljs -#, unused msgid "inspect.attributes.stroke.width" msgstr "宽" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:81, src/app/main/ui/viewer/inspect/attributes/text.cljs:194 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography" msgstr "排版" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:89 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.font-family" msgstr "字体" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:107 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.font-size" msgstr "字号" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:98 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.font-style" msgstr "文字风格" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:116 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.font-weight" msgstr "字体重量" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:134 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.letter-spacing" msgstr "字距" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:125 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.line-height" msgstr "行高" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:143 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.text-decoration" msgstr "文字装饰" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:145 msgid "inspect.attributes.typography.text-decoration.none" msgstr "无" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:146 msgid "inspect.attributes.typography.text-decoration.strikethrough" msgstr "删除线" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:147 msgid "inspect.attributes.typography.text-decoration.underline" msgstr "下划线" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:156 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.text-transform" msgstr "文本变换" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:158 msgid "inspect.attributes.typography.text-transform.lowercase" msgstr "小写" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:159 msgid "inspect.attributes.typography.text-transform.none" msgstr "无" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:160 msgid "inspect.attributes.typography.text-transform.titlecase" msgstr "首字母大写" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:162 msgid "inspect.attributes.typography.text-transform.unset" msgstr "取消设置" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:161 msgid "inspect.attributes.typography.text-transform.uppercase" msgstr "大写" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:140 msgid "inspect.empty.help" msgstr "如果您想了解有关设计检查的更多信息,请访问Penpot的帮助中心" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:143 msgid "inspect.empty.more-info" msgstr "有关检查的详细信息" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:135 msgid "inspect.empty.select" msgstr "选择形状、板或组以检查其属性和代码" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:125 +#: src/app/main/ui/inspect/right_sidebar.cljs msgid "inspect.tabs.code" msgstr "代码" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:98 msgid "inspect.tabs.code.selected.circle" msgstr "圆" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:99 msgid "inspect.tabs.code.selected.component" msgstr "组件" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:100 msgid "inspect.tabs.code.selected.curve" msgstr "曲线" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:101 msgid "inspect.tabs.code.selected.frame" msgstr "画板" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:102 msgid "inspect.tabs.code.selected.group" msgstr "编组" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:103 msgid "inspect.tabs.code.selected.image" msgstr "图片" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:104 msgid "inspect.tabs.code.selected.mask" msgstr "蒙版" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:93 +#: src/app/main/ui/inspect/right_sidebar.cljs msgid "inspect.tabs.code.selected.multiple" msgstr "已选中%s项" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:105 msgid "inspect.tabs.code.selected.path" msgstr "路径" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:106 msgid "inspect.tabs.code.selected.rect" msgstr "矩形" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:107 msgid "inspect.tabs.code.selected.svg-raw" msgstr "SVG" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:108 msgid "inspect.tabs.code.selected.text" msgstr "文本" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:115 +#: src/app/main/ui/inspect/right_sidebar.cljs msgid "inspect.tabs.info" msgstr "信息" -#: src/app/main/ui/workspace/main_menu.cljs:158 +#: src/app/main/ui/workspace/header.cljs msgid "label.shortcuts" msgstr "快捷方式" -#: src/app/main/ui/dashboard/import.cljs:527 msgid "labels.accept" msgstr "接受" -#: src/app/main/ui/settings/sidebar.cljs:100 +#: src/app/main/ui/settings/sidebar.cljs msgid "labels.access-tokens" msgstr "访问令牌" -#: src/app/main/ui/dashboard/team.cljs:968 msgid "labels.active" msgstr "激活" -#: src/app/main/ui/dashboard/fonts.cljs:175 msgid "labels.add-custom-font" msgstr "添加自定义字体" -#: src/app/main/ui/dashboard/team.cljs:120, src/app/main/ui/dashboard/team.cljs:276, src/app/main/ui/dashboard/team.cljs:519, src/app/main/ui/dashboard/team.cljs:549, src/app/main/ui/onboarding/team_choice.cljs:67 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs msgid "labels.admin" msgstr "管理员" -#: src/app/main/ui/onboarding/questions.cljs:174 -msgid "labels.adobe-xd" -msgstr "Adobe XD" - #: src/app/main/ui/workspace/comments.cljs -#, unused msgid "labels.all" msgstr "全部" -#: src/app/main/ui/auth.cljs:37 msgid "labels.and" msgstr "和" -#: src/app/main/ui/onboarding/team_choice.cljs:162 msgid "labels.back" msgstr "后退" -#: src/app/main/ui/static.cljs:59 +#: src/app/main/ui/static.cljs msgid "labels.bad-gateway.desc-message" msgstr "请过会儿再来试试,我们正在对服务器进行一些简单维护。" -#: src/app/main/ui/static.cljs:58 +#: src/app/main/ui/static.cljs msgid "labels.bad-gateway.main-message" msgstr "网关错误" -#: src/app/main/data/common.cljs:112, src/app/main/ui/dashboard/change_owner.cljs:69, src/app/main/ui/dashboard/import.cljs:514, src/app/main/ui/dashboard/team.cljs:868, src/app/main/ui/delete_shared.cljs:35, src/app/main/ui/export.cljs:164, src/app/main/ui/export.cljs:460, src/app/main/ui/settings/access_tokens.cljs:188, src/app/main/ui/viewer/share_link.cljs:203, src/app/main/ui/workspace/sidebar/assets/groups.cljs:149 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.cancel" msgstr "取消" -#: src/app/main/ui/onboarding/questions.cljs:176 -msgid "labels.canva" -msgstr "Canva" - -#: src/app/main/ui/dashboard/projects.cljs:93, src/app/main/ui/export.cljs:478, src/app/main/ui/settings/access_tokens.cljs:183, src/app/main/ui/viewer/login.cljs:77, src/app/main/ui/viewer/share_link.cljs:174, src/app/main/ui/workspace/libraries.cljs:522 msgid "labels.close" msgstr "关闭" -#: src/app/main/ui/dashboard/comments.cljs:104, src/app/main/ui/viewer/comments.cljs:70, src/app/main/ui/workspace/comments.cljs:126 +#: src/app/main/ui/dashboard/comments.cljs msgid "labels.comments" msgstr "评论" -#: src/app/main/ui/dashboard/sidebar.cljs:985, src/app/main/ui/workspace/main_menu.cljs:110 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.community" msgstr "社区" -#: src/app/main/ui/settings/password.cljs:103 +#: src/app/main/ui/settings/password.cljs msgid "labels.confirm-password" msgstr "确认密码" -#: src/app/main/ui/dashboard/import.cljs:520, src/app/main/ui/export.cljs:465, src/app/main/ui/onboarding/newsletter.cljs:101 msgid "labels.continue" msgstr "继续" -#, unused msgid "labels.continue-with" msgstr "继续" -#: src/app/main/ui/viewer/login.cljs:75 msgid "labels.continue-with-penpot" msgstr "你可以使用Penpot帐号继续" -#: src/app/main/ui/dashboard/team.cljs:642 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.copy-invitation-link" msgstr "复制链接" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:157, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:190 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "labels.create" msgstr "创建" -#: src/app/main/ui/dashboard/team_form.cljs:101, src/app/main/ui/dashboard/team_form.cljs:121 +#: src/app/main/ui/dashboard/team_form.cljs, +#: src/app/main/ui/dashboard/team_form.cljs msgid "labels.create-team" msgstr "创建新团队" -#: src/app/main/ui/dashboard/team_form.cljs:113 +#: src/app/main/ui/dashboard/team_form.cljs msgid "labels.create-team.placeholder" msgstr "输入新的团队名称" -#, unused msgid "labels.custom-fonts" msgstr "自定义字体" -#: src/app/main/ui/settings/sidebar.cljs:73 +#: src/app/main/ui/settings/sidebar.cljs msgid "labels.dashboard" msgstr "面板" -#: src/app/main/ui/dashboard/file_menu.cljs:306, src/app/main/ui/dashboard/fonts.cljs:255, src/app/main/ui/dashboard/fonts.cljs:332, src/app/main/ui/dashboard/fonts.cljs:346, src/app/main/ui/dashboard/project_menu.cljs:115, src/app/main/ui/dashboard/team.cljs:904, src/app/main/ui/settings/access_tokens.cljs:209, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:209 +#: src/app/main/ui/dashboard/project_menu.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.delete" msgstr "删除" -#: src/app/main/ui/comments.cljs:357 +#: src/app/main/ui/comments.cljs msgid "labels.delete-comment" msgstr "删除该评论" -#: src/app/main/ui/comments.cljs:354 +#: src/app/main/ui/comments.cljs msgid "labels.delete-comment-thread" msgstr "删除该讨论串" -#: src/app/main/ui/dashboard/team.cljs:648 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.delete-invitation" msgstr "删除邀请" -#: src/app/main/ui/dashboard/file_menu.cljs:262 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.delete-multi-files" msgstr "删除%s个文件" -#: src/app/main/ui/onboarding/questions.cljs:250 -msgid "labels.developer" -msgstr "开发者" - -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:199 msgid "labels.discard" msgstr "丢弃" -#: src/app/main/ui/dashboard/file_menu.cljs:28, src/app/main/ui/dashboard/files.cljs:72, src/app/main/ui/dashboard/files.cljs:156, src/app/main/ui/dashboard/projects.cljs:220, src/app/main/ui/dashboard/projects.cljs:224, src/app/main/ui/dashboard/sidebar.cljs:791 +#: src/app/main/ui/dashboard/projects.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs, +#: src/app/main/ui/dashboard/files.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.drafts" msgstr "草稿" -#: src/app/main/ui/comments.cljs:350, src/app/main/ui/dashboard/fonts.cljs:252, src/app/main/ui/dashboard/team.cljs:902, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:205 +#: src/app/main/ui/comments.cljs msgid "labels.edit" msgstr "编辑" -#, unused msgid "labels.edit-file" msgstr "编辑文档" -#: src/app/main/ui/dashboard/team.cljs:118, src/app/main/ui/dashboard/team.cljs:279, src/app/main/ui/dashboard/team.cljs:520, src/app/main/ui/dashboard/team.cljs:553, src/app/main/ui/onboarding/team_choice.cljs:66 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs msgid "labels.editor" msgstr "编辑者" -#: src/app/main/ui/dashboard/team.cljs:661 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.expired-invitation" msgstr "已到期" -#: src/app/main/ui/export.cljs:173 msgid "labels.export" msgstr "导出" -#: src/app/main/ui/settings/feedback.cljs:51 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.feedback-disabled" msgstr "反馈被禁止" -#: src/app/main/ui/settings/feedback.cljs:42 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.feedback-sent" msgstr "反馈已发出" -#: src/app/main/ui/onboarding/questions.cljs:170 -msgid "labels.figma" -msgstr "Figma" - -#: src/app/main/ui/dashboard/fonts.cljs:412 msgid "labels.font-family" msgstr "字体族" -#, unused msgid "labels.font-providers" msgstr "字体提供者" -#: src/app/main/ui/dashboard/fonts.cljs:413 msgid "labels.font-variants" msgstr "样式" -#: src/app/main/ui/dashboard/fonts.cljs:52, src/app/main/ui/dashboard/sidebar.cljs:811 msgid "labels.fonts" msgstr "字体" -#: src/app/main/ui/onboarding/questions.cljs:263 -msgid "labels.founder" -msgstr "创始人/副总裁" - -#: src/app/main/ui/onboarding/questions.cljs:262 -msgid "labels.freelancer" -msgstr "我是一名自由职业者" - -#: src/app/main/ui/dashboard/sidebar.cljs:1015, src/app/main/ui/workspace/main_menu.cljs:142 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.github-repo" msgstr "Github仓库" -#: src/app/main/ui/dashboard/sidebar.cljs:1032, src/app/main/ui/settings/sidebar.cljs:113, src/app/main/ui/workspace/main_menu.cljs:171 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/settings/sidebar.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.give-feedback" msgstr "提交反馈" -#: src/app/main/ui/auth/recovery_request.cljs:110, src/app/main/ui/auth/register.cljs:285, src/app/main/ui/viewer/login.cljs:117 msgid "labels.go-back" msgstr "返回" -#: src/app/main/ui/dashboard/sidebar.cljs:978, src/app/main/ui/workspace/main_menu.cljs:102 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.help-center" msgstr "帮助中心" -#: src/app/main/ui/viewer/comments.cljs:103, src/app/main/ui/workspace/comments.cljs:67 +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs msgid "labels.hide-resolved-comments" msgstr "隐藏已决定的评论" -#: src/app/main/ui/dashboard/team.cljs:969 msgid "labels.inactive" msgstr "未激活" -#: src/app/main/ui/dashboard/fonts.cljs:410 msgid "labels.installed-fonts" msgstr "已安装字体" -#: src/app/main/ui/static.cljs:144 +#: src/app/main/ui/static.cljs msgid "labels.internal-error.desc-message" -msgstr "发生了一些不妙的事。请尝试重新操作。如果问题仍然存在,请联系我们以取得支持。" +msgstr "" +"发生了一些不妙的事。请尝试重新操作。如果问题仍然存在,请联系我们以取得支持。" -#: src/app/main/ui/static.cljs:143 +#: src/app/main/ui/static.cljs msgid "labels.internal-error.main-message" msgstr "内部错误" -#: src/app/main/ui/onboarding/questions.cljs:178 -msgid "labels.invision" -msgstr "InVision" - -#: src/app/main/ui/dashboard/sidebar.cljs:516, src/app/main/ui/dashboard/team.cljs:89, src/app/main/ui/dashboard/team.cljs:97, src/app/main/ui/dashboard/team.cljs:708 +#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.invitations" msgstr "邀请" -#: src/app/main/ui/settings/options.cljs:51 +#: src/app/main/ui/settings/options.cljs msgid "labels.language" msgstr "语言" -#: src/app/main/ui/dashboard/sidebar.cljs:1008, src/app/main/ui/workspace/main_menu.cljs:134 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.libraries-and-templates" msgstr "库&模板" -#: src/app/main/ui/viewer/header.cljs:203 msgid "labels.log-or-sign" msgstr "登录或注册" -#: src/app/main/ui/dashboard/sidebar.cljs:1040 +#: src/app/main/ui/settings.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.logout" msgstr "登出" -#: src/app/main/ui/onboarding/questions.cljs:253 -msgid "labels.marketing" -msgstr "市场营销" - -#: src/app/main/ui/dashboard/team.cljs:468 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.member" msgstr "成员" -#: src/app/main/ui/dashboard/sidebar.cljs:510, src/app/main/ui/dashboard/team.cljs:87, src/app/main/ui/dashboard/team.cljs:95 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.members" msgstr "成员" -#: src/app/main/ui/settings/password.cljs:96 +#: src/app/main/ui/settings/password.cljs msgid "labels.new-password" msgstr "新密码" -#: src/app/main/ui/dashboard/templates.cljs:269, src/app/main/ui/onboarding/questions.cljs:55 -msgid "labels.next" -msgstr "下一项" - -#: src/app/main/ui/dashboard/comments.cljs:128, src/app/main/ui/workspace/comments.cljs:161 +#: src/app/main/ui/workspace/comments.cljs, +#: src/app/main/ui/dashboard/comments.cljs msgid "labels.no-comments-available" msgstr "你们都赶上了! 新的评论通知将出现在这里。" -#: src/app/main/ui/dashboard/team.cljs:694 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.no-invitations" msgstr "没有待处理的邀请。" -#: src/app/main/ui/dashboard/team.cljs:696 -#, markdown +#: src/app/main/ui/dashboard/team.cljs msgid "labels.no-invitations-hint" msgstr "单击“**邀请他人**”按钮以邀请人员加入此团队。" -#: src/app/main/ui/static.cljs:50 +#: src/app/main/ui/static.cljs msgid "labels.not-found.desc-message" msgstr "可能该页面不存在,也可能你没有访问权限。" -#: src/app/main/ui/static.cljs:49 +#: src/app/main/ui/static.cljs msgid "labels.not-found.main-message" msgstr "哎呀!" -#: src/app/main/ui/dashboard/projects.cljs:239, src/app/main/ui/dashboard/team.cljs:1095 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.num-of-files" msgid_plural "labels.num-of-files" msgstr[0] "共1个文档" msgstr[1] "共%s个文档" -#: src/app/main/ui/viewer/thumbnails.cljs:80 msgid "labels.num-of-frames" msgid_plural "labels.num-of-frames" msgstr[0] "1个画板" msgstr[1] "%s个画板" -#: src/app/main/ui/dashboard/team.cljs:1090 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.num-of-projects" msgid_plural "labels.num-of-projects" msgstr[0] "1 个项目" msgstr[1] "共 %s 个项目" -#: src/app/main/ui/settings/password.cljs:89 +#: src/app/main/ui/settings/password.cljs msgid "labels.old-password" msgstr "旧密码" #: src/app/main/ui/workspace/comments.cljs -#, unused msgid "labels.only-yours" msgstr "仅你的" -#, unused msgid "labels.or" msgstr "或" -#: src/app/main/ui/onboarding/questions.cljs:145, src/app/main/ui/onboarding/questions.cljs:214, src/app/main/ui/onboarding/questions.cljs:303, src/app/main/ui/onboarding/questions.cljs:316, src/app/main/ui/onboarding/questions.cljs:389, src/app/main/ui/onboarding/questions.cljs:447 -msgid "labels.other" -msgstr "其他(请注明)" - -#: src/app/main/ui/dashboard/team.cljs:286, src/app/main/ui/dashboard/team.cljs:518, src/app/main/ui/dashboard/team.cljs:1076 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs msgid "labels.owner" msgstr "所有者" -#: src/app/main/ui/settings/sidebar.cljs:87 +#: src/app/main/ui/settings/sidebar.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.password" msgstr "密码" -#: src/app/main/ui/dashboard/team.cljs:662 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.pending-invitation" msgstr "待办" -#: src/app/main/ui/onboarding/questions.cljs:51 -msgid "labels.previous" -msgstr "前一项" - -#: src/app/main/ui/onboarding/questions.cljs:254 -msgid "labels.product-management" -msgstr "产品经理/项目经理" - -#: src/app/main/ui/settings/profile.cljs:118, src/app/main/ui/settings/sidebar.cljs:82 +#: src/app/main/ui/settings/sidebar.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.profile" msgstr "个人资料" -#: src/app/main/ui/dashboard/sidebar.cljs:784 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.projects" msgstr "项目" -#: src/app/main/ui/dashboard/sidebar.cljs:998, src/app/main/ui/settings/sidebar.cljs:106, src/app/main/ui/workspace/main_menu.cljs:126 +#: src/app/main/ui/settings/sidebar.cljs msgid "labels.release-notes" msgstr "发布说明" #: src/app/main/ui/workspace.cljs -#, unused msgid "labels.reload-file" msgstr "重新加载文件" -#: src/app/main/ui/workspace/libraries.cljs, src/app/main/ui/dashboard/team.cljs -#, unused +#: src/app/main/ui/workspace/libraries.cljs, +#: src/app/main/ui/dashboard/team.cljs msgid "labels.remove" msgstr "移除" -#: src/app/main/ui/dashboard/team.cljs:316 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.remove-member" msgstr "删除成员" -#: src/app/main/ui/dashboard/file_menu.cljs:271, src/app/main/ui/dashboard/project_menu.cljs:85, src/app/main/ui/dashboard/sidebar.cljs:539, src/app/main/ui/workspace/sidebar/assets/groups.cljs:157 +#: src/app/main/ui/dashboard/sidebar.cljs, +#: src/app/main/ui/dashboard/project_menu.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.rename" msgstr "重命名" -#: src/app/main/ui/dashboard/team_form.cljs:99 +#: src/app/main/ui/dashboard/team_form.cljs msgid "labels.rename-team" msgstr "重命名团队" -#: src/app/main/ui/dashboard/team.cljs:645 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.resend-invitation" msgstr "重新发送邀请" -#: src/app/main/ui/static.cljs:61, src/app/main/ui/static.cljs:70, src/app/main/ui/static.cljs:148 +#: src/app/main/ui/static.cljs, src/app/main/ui/static.cljs msgid "labels.retry" msgstr "重试" -#: src/app/main/ui/dashboard/team.cljs:469, src/app/main/ui/dashboard/team.cljs:709 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.role" msgstr "角色" -#: src/app/main/ui/dashboard/fonts.cljs:380, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:191 msgid "labels.save" msgstr "保存" -#: src/app/main/ui/onboarding/questions.cljs:414, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:436 msgid "labels.search" msgstr "搜索" -#: src/app/main/ui/dashboard/fonts.cljs:415 msgid "labels.search-font" msgstr "搜索字体" -#: src/app/main/ui/settings/feedback.cljs:82 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.send" msgstr "发送" -#: src/app/main/ui/settings/feedback.cljs:82 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.sending" msgstr "正在发送…" -#: src/app/main/ui/static.cljs:68 +#: src/app/main/ui/static.cljs msgid "labels.service-unavailable.desc-message" msgstr "我们正在进行系统的程序维护。" -#: src/app/main/ui/static.cljs:67 +#: src/app/main/ui/static.cljs msgid "labels.service-unavailable.main-message" msgstr "服务不可用" -#: src/app/main/ui/dashboard/sidebar.cljs:530, src/app/main/ui/dashboard/team.cljs:88, src/app/main/ui/dashboard/team.cljs:102, src/app/main/ui/settings/options.cljs:84, src/app/main/ui/settings/sidebar.cljs:93 +#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.settings" msgstr "设置" -#: src/app/main/ui/viewer/header.cljs:199 msgid "labels.share" msgstr "分享" -#, unused msgid "labels.share-prototype" msgstr "分享原型" -#: src/app/main/ui/dashboard/sidebar.cljs:800 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.shared-libraries" msgstr "共享库" -#: src/app/main/ui/viewer/comments.cljs:82, src/app/main/ui/workspace/comments.cljs:55, src/app/main/ui/workspace/comments.cljs:135 +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs msgid "labels.show-all-comments" msgstr "显示所有评论" -#: src/app/main/ui/viewer/comments.cljs:115 msgid "labels.show-comments-list" msgstr "显示评论列表" -#: src/app/main/ui/viewer/comments.cljs:91, src/app/main/ui/workspace/comments.cljs:61, src/app/main/ui/workspace/comments.cljs:136 +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs msgid "labels.show-your-comments" msgstr "只显示你的评论" -#: src/app/main/ui/onboarding/questions.cljs:172 -msgid "labels.sketch" -msgstr "Sketch" - -#: src/app/main/ui/onboarding/questions.cljs:56 -msgid "labels.start" -msgstr "开始" - -#: src/app/main/ui/dashboard/team.cljs:710 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.status" msgstr "状态" -#: src/app/main/ui/onboarding/questions.cljs:251 -msgid "labels.student-teacher" -msgstr "学生/教师" - -#: src/app/main/ui/dashboard/sidebar.cljs:992, src/app/main/ui/workspace/main_menu.cljs:118 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.tutorials" msgstr "教程" -#: src/app/main/ui/dashboard/file_menu.cljs:256 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.unpublish-multi-files" msgstr "取消发布%s文件" -#: src/app/main/ui/settings/profile.cljs:103 +#: src/app/main/ui/settings/profile.cljs msgid "labels.update" msgstr "更新" -#: src/app/main/ui/dashboard/team_form.cljs:120 +#: src/app/main/ui/dashboard/team_form.cljs msgid "labels.update-team" msgstr "更新团队" -#: src/app/main/ui/dashboard/fonts.cljs:241 msgid "labels.upload" msgstr "上传" -#: src/app/main/ui/dashboard/fonts.cljs:169 msgid "labels.upload-custom-fonts" msgstr "上传自定义字体" -#: src/app/main/ui/dashboard/fonts.cljs:240 msgid "labels.uploading" msgstr "正在上传…" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs:223 msgid "labels.view-only" msgstr "仅查看" -#: src/app/main/ui/dashboard/team.cljs:123, src/app/main/ui/dashboard/team.cljs:282, src/app/main/ui/dashboard/team.cljs:521 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.viewer" msgstr "查看者" -#: src/app/main/ui/dashboard/sidebar.cljs:523, src/app/main/ui/dashboard/team.cljs:90, src/app/main/ui/dashboard/team.cljs:100, src/app/main/ui/dashboard/team.cljs:880 msgid "labels.webhooks" msgstr "Webhooks" -#: src/app/main/ui/comments.cljs:194 +#: src/app/main/ui/comments.cljs msgid "labels.write-new-comment" msgstr "写一条新评论" -#: src/app/main/ui/dashboard/team.cljs:237 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.you" msgstr "(你)" -#: src/app/main/ui/dashboard/sidebar.cljs:968 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.your-account" msgstr "你的账户" -#: src/app/main/ui/workspace/colorpicker.cljs:297, src/app/main/ui/workspace/colorpicker.cljs:298, src/app/main/ui/workspace/colorpicker.cljs:300 msgid "media.choose-image" msgstr "选择图片" -#, unused msgid "media.gradient" msgstr "渐变" -#: src/app/main/data/workspace/media.cljs:275, src/app/main/ui/components/color_bullet.cljs:32, src/app/main/ui/components/color_bullet.cljs:45, src/app/main/ui/viewer/inspect/attributes/common.cljs:66, src/app/main/ui/workspace/colorpicker.cljs:211, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:237 msgid "media.image" msgstr "图片" -#: src/app/main/ui/workspace/colorpicker.cljs:290 -msgid "media.keep-aspect-ratio" -msgstr "保持宽高比" - -#: src/app/main/ui/workspace/colorpicker.cljs:208 msgid "media.linear" msgstr "线性" -#: src/app/main/data/media.cljs:49, src/app/main/data/workspace/media.cljs:223, src/app/main/data/workspace/media.cljs:453 +#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs msgid "media.loading" msgstr "正在加载图片…" -#: src/app/main/ui/workspace/colorpicker.cljs:209 msgid "media.radial" msgstr "径向" -#: src/app/main/ui/workspace/colorpicker.cljs:206 msgid "media.solid" msgstr "纯色" -#: src/app/main/data/common.cljs:111 msgid "modals.add-shared-confirm-empty.hint" -msgstr "你的库是空白的。一旦添加为共享库,此文档库中的素材就可被用于你的其他文档中。你确定要发布它吗?" +msgstr "" +"你的库是空白的。一旦添加为共享库,此文档库中的素材就可被用于你的其他文档中。" +"你确定要发布它吗?" -#: src/app/main/data/common.cljs:113 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.add-shared-confirm.accept" msgstr "添加为共享库" -#: src/app/main/data/common.cljs:111 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.add-shared-confirm.hint" msgstr "一旦添加为共享库,此文档库中的素材就可被用于你的其他文档中。" -#: src/app/main/data/common.cljs:110 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.add-shared-confirm.message" msgstr "将“%s”添加为共享库" -#: src/app/main/ui/workspace/nudge.cljs:60 +#: src/app/main/ui/workspace/nudge.cljs msgid "modals.big-nudge" msgstr "小幅微调" -#: src/app/main/ui/settings/change_email.cljs:127 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.confirm-email" msgstr "验证新的邮件" -#: src/app/main/ui/settings/change_email.cljs:114 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.info" msgstr "我们会发送一封信的邮件到当前的电子邮件“%s”,以验证你的身份。" -#: src/app/main/ui/settings/change_email.cljs:119 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.new-email" msgstr "新电子邮件" -#: src/app/main/ui/settings/change_email.cljs:136 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.submit" msgstr "修改电子邮件" -#: src/app/main/ui/settings/change_email.cljs:107 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.title" msgstr "修改你的电子邮件" -#: src/app/main/ui/settings/access_tokens.cljs:165, src/app/main/ui/settings/access_tokens.cljs:171 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.create-access-token.copy-token" msgstr "复制令牌" -#: src/app/main/ui/settings/access_tokens.cljs:142 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.create-access-token.expiration-date.label" msgstr "到期时间" -#: src/app/main/ui/settings/access_tokens.cljs:136 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.create-access-token.name.label" msgstr "名称" -#: src/app/main/ui/settings/access_tokens.cljs:138 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.create-access-token.name.placeholder" msgstr "名称可以帮你记住令牌的用途" -#: src/app/main/ui/settings/access_tokens.cljs:191 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.create-access-token.submit-label" msgstr "创建令牌" -#: src/app/main/ui/settings/access_tokens.cljs:123 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.create-access-token.title" msgstr "生成访问令牌" -#: src/app/main/ui/dashboard/team.cljs:873 msgid "modals.create-webhook.submit-label" msgstr "创建webhook" -#: src/app/main/ui/dashboard/team.cljs:838 msgid "modals.create-webhook.title" msgstr "创建webhook" -#: src/app/main/ui/dashboard/team.cljs:849 msgid "modals.create-webhook.url.label" msgstr "有效负载网址" -#: src/app/main/ui/dashboard/team.cljs:850 msgid "modals.create-webhook.url.placeholder" msgstr "https://example.com/postreceive" -#: src/app/main/ui/settings/access_tokens.cljs:271 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.delete-acces-token.accept" msgstr "删除令牌" -#: src/app/main/ui/settings/access_tokens.cljs:270 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.delete-acces-token.message" msgstr "你确定想要删除这个令牌吗?" -#: src/app/main/ui/settings/access_tokens.cljs:269 +#: src/app/main/ui/settings/access-tokens.cljs msgid "modals.delete-acces-token.title" msgstr "删除令牌" -#: src/app/main/ui/settings/delete_account.cljs:59 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.cancel" msgstr "取消操作并保留我的账号" -#: src/app/main/ui/settings/delete_account.cljs:64 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.confirm" msgstr "是的,删除我的账号" -#: src/app/main/ui/settings/delete_account.cljs:53 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.info" msgstr "删除账号后,你会失去所有项目和存档。" -#: src/app/main/ui/settings/delete_account.cljs:46 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.title" msgstr "你确定想要删除你的账号?" -#: src/app/main/ui/comments.cljs:298 +#: src/app/main/ui/comments.cljs msgid "modals.delete-comment-thread.accept" msgstr "删除对话" -#: src/app/main/ui/comments.cljs:297 +#: src/app/main/ui/comments.cljs msgid "modals.delete-comment-thread.message" msgstr "你确定想要删除这个对话?该讨论串里的所有评论都会被一同删除。" -#: src/app/main/ui/comments.cljs:296 +#: src/app/main/ui/comments.cljs msgid "modals.delete-comment-thread.title" msgstr "删除对话" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:140 msgid "modals.delete-component-annotation.message" msgstr "你确定想要删除这个注释?" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:139 msgid "modals.delete-component-annotation.title" msgstr "删除注释" -#: src/app/main/ui/dashboard/file_menu.cljs:123 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-confirm.accept" msgstr "删除文档" -#: src/app/main/ui/dashboard/file_menu.cljs:122 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-confirm.message" msgstr "你确定想要删除这个文档?" -#: src/app/main/ui/dashboard/file_menu.cljs:121 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-confirm.title" msgstr "正在删除文档" -#: src/app/main/ui/dashboard/file_menu.cljs:117 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-multi-confirm.accept" msgstr "删除文件" -#: src/app/main/ui/dashboard/file_menu.cljs:116 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-multi-confirm.message" msgstr "你确定要删除这%s个文件?" -#: src/app/main/ui/dashboard/file_menu.cljs:115 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-multi-confirm.title" msgstr "正在删除%s个文件" -#: src/app/main/ui/dashboard/fonts.cljs:345 msgid "modals.delete-font-variant.message" msgstr "你确定要删除这个字体样式吗?如果它被用在某个文件里的话,将无法加载。" -#: src/app/main/ui/dashboard/fonts.cljs:344 msgid "modals.delete-font-variant.title" msgstr "正在删除字体样式" -#: src/app/main/ui/dashboard/fonts.cljs:331 msgid "modals.delete-font.message" msgstr "你确定要删除这个字体吗?如果它被用在某个文件里的话,将无法加载。" -#: src/app/main/ui/dashboard/fonts.cljs:330 msgid "modals.delete-font.title" msgstr "正在删除字体" -#: src/app/main/ui/workspace/context_menu.cljs:522, src/app/main/ui/workspace/sidebar/sitemap.cljs:45 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs msgid "modals.delete-page.body" msgstr "你确定想要删除这个页面?" -#: src/app/main/ui/workspace/context_menu.cljs:521, src/app/main/ui/workspace/sidebar/sitemap.cljs:44 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs msgid "modals.delete-page.title" msgstr "删除页面" -#: src/app/main/ui/dashboard/project_menu.cljs:69 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "modals.delete-project-confirm.accept" msgstr "删除项目" -#: src/app/main/ui/dashboard/project_menu.cljs:68 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "modals.delete-project-confirm.message" msgstr "你确定想要删除这个项目?" -#: src/app/main/ui/dashboard/project_menu.cljs:67 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "modals.delete-project-confirm.title" msgstr "删除项目" -#: src/app/main/ui/delete_shared.cljs:51 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.accept" msgid_plural "modals.delete-shared-confirm.accept" msgstr[0] "删除文件" msgstr[1] "批量删除文件" -#: src/app/main/ui/delete_shared.cljs:55 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.activated.no-files-message" msgid_plural "modals.delete-shared-confirm.activated.no-files-message" msgstr[0] "没有文件引用它。" msgstr[1] "没有文件引用它们。" -#: src/app/main/ui/delete_shared.cljs:57 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.activated.scd-message" msgid_plural "modals.delete-shared-confirm.activated.scd-message" msgstr[0] "该库被以下文档使用: " msgstr[1] "这些库被以下文档使用: " -#: src/app/main/ui/delete_shared.cljs:46 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.message" msgid_plural "modals.delete-shared-confirm.message" msgstr[0] "你是否确认要删除这个文件?" msgstr[1] "你是否确认要删除这些文件?" -#: src/app/main/ui/delete_shared.cljs:41 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.title" msgid_plural "modals.delete-shared-confirm.title" msgstr[0] "删除文件" msgstr[1] "批量删除文件" -#: src/app/main/ui/dashboard/sidebar.cljs:435 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.delete-team-confirm.accept" msgstr "删除团队" -#: src/app/main/ui/dashboard/sidebar.cljs:434 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.delete-team-confirm.message" msgstr "你确定想要删除这个团队?与该团队关联的所有项目和文档都会被永久删除。" -#: src/app/main/ui/dashboard/sidebar.cljs:433 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.delete-team-confirm.title" msgstr "正在删除团队" -#: src/app/main/ui/dashboard/team.cljs:427 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.delete-team-member-confirm.accept" msgstr "删除成员" -#: src/app/main/ui/dashboard/team.cljs:426 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.delete-team-member-confirm.message" msgstr "你确定想要从团队中删除这个成员?" -#: src/app/main/ui/dashboard/team.cljs:425 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.delete-team-member-confirm.title" msgstr "删除团队成员" -#: src/app/main/ui/delete_shared.cljs:59 -msgid "modals.delete-unpublish-shared-confirm.activated.hint" -msgid_plural "modals.delete-unpublish-shared-confirm.activated.hint" -msgstr[0] "这个文件中被其他文件引用的素材依然在那(其他文件的现有设计不会被破坏)。" -msgstr[1] "这些文件中被其他文件引用的素材依然在那(其他文件的现有设计不会被破坏)。" - -#: src/app/main/ui/dashboard/team.cljs:942 msgid "modals.delete-webhook.accept" msgstr "删除webhook" -#: src/app/main/ui/dashboard/team.cljs:941 msgid "modals.delete-webhook.message" msgstr "你确定要删除这个webhook吗?" -#: src/app/main/ui/dashboard/team.cljs:940 msgid "modals.delete-webhook.title" msgstr "删除webhook" -#: src/app/main/ui/dashboard/team.cljs:872 msgid "modals.edit-webhook.submit-label" msgstr "编辑webhook" -#: src/app/main/ui/dashboard/team.cljs:837 msgid "modals.edit-webhook.title" msgstr "编辑webhook" -#: src/app/main/ui/dashboard/team.cljs:218 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.invite-member-confirm.accept" msgstr "发送邀请" -#: src/app/main/ui/dashboard/team.cljs:213, src/app/main/ui/onboarding/team_choice.cljs:156 msgid "modals.invite-member.emails" msgstr "电子邮件,以逗号分隔" -#: src/app/main/ui/dashboard/team.cljs:197 msgid "modals.invite-member.repeated-invitation" msgstr "有些电子邮件是来自当前的团队成员。他们的邀请将不会被发送。" -#: src/app/main/ui/dashboard/team.cljs:190 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.invite-team-member.title" msgstr "邀请成员加入团队" -#: src/app/main/ui/dashboard/sidebar.cljs:423, src/app/main/ui/dashboard/team.cljs:393 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-close-confirm.hint" msgstr "由于你是这个团队的唯一成员,这个团队将连同其项目和文件一起被删除。" -#: src/app/main/ui/dashboard/sidebar.cljs:422, src/app/main/ui/dashboard/team.cljs:392 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-close-confirm.message" msgstr "您确定要离开 %s 团队吗?" -#: src/app/main/ui/dashboard/change_owner.cljs:59 msgid "modals.leave-and-reassign.forbidden" -msgstr "如果不能推选另一个成员作为团队所有者,你就无法离开团队。你或许想要删除该团队。" +msgstr "" +"如果不能推选另一个成员作为团队所有者,你就无法离开团队。你或许想要删除该团" +"队。" -#: src/app/main/ui/dashboard/change_owner.cljs:55 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-reassign.hint1" msgstr "你是此团队的所有者。在你离开团队之前,请选择其他成员晋升为所有者。" -#: src/app/main/ui/dashboard/change_owner.cljs:78 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-reassign.promote-and-leave" msgstr "晋升并退出" -#: src/app/main/ui/dashboard/change_owner.cljs:34 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-reassign.select-member-to-promote" msgstr "选择一位成员晋升" -#: src/app/main/ui/dashboard/change_owner.cljs:49 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-reassign.title" msgstr "在你离开之前" -#: src/app/main/ui/dashboard/sidebar.cljs:402, src/app/main/ui/dashboard/sidebar.cljs:424, src/app/main/ui/dashboard/team.cljs:394, src/app/main/ui/dashboard/team.cljs:416 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-confirm.accept" msgstr "退出团队" -#: src/app/main/ui/dashboard/sidebar.cljs:401, src/app/main/ui/dashboard/team.cljs:415 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-confirm.message" msgstr "你确定要离开本团队吗?" -#: src/app/main/ui/dashboard/sidebar.cljs:400, src/app/main/ui/dashboard/sidebar.cljs:421, src/app/main/ui/dashboard/team.cljs:391, src/app/main/ui/dashboard/team.cljs:414 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-confirm.title" msgstr "正在退出团队" -#: src/app/main/ui/delete_shared.cljs:53 -msgid "modals.move-shared-confirm.accept" -msgid_plural "modals.move-shared-confirm.accept" -msgstr[0] "移动" -msgstr[1] "移动" - -#: src/app/main/ui/delete_shared.cljs:48 -msgid "modals.move-shared-confirm.message" -msgid_plural "modals.move-shared-confirm.message" -msgstr[0] "你确定要移动这个共享库吗?" -msgstr[1] "你确定要移动这些共享库吗?" - -#: src/app/main/ui/delete_shared.cljs:43 -msgid "modals.move-shared-confirm.title" -msgid_plural "modals.move-shared-confirm.title" -msgstr[0] "移动共享库" -msgstr[1] "移动共享库" - -#: src/app/main/ui/workspace/main_menu.cljs:266, src/app/main/ui/workspace/nudge.cljs:47 +#: src/app/main/ui/workspace/nudge.cljs msgid "modals.nudge-title" msgstr "微调量" -#: src/app/main/ui/dashboard/team.cljs:340 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.accept" msgstr "转让所有权" -#: src/app/main/ui/dashboard/team.cljs:339 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.hint" msgstr "如果你转移所有权,你的角色将变为管理员,失去对这个团队的一些权限。 " -#: src/app/main/ui/dashboard/team.cljs:338 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.message" msgstr "您是此团队的所有者,你确定想要将所有者转让给该成员?" -#: src/app/main/ui/dashboard/team.cljs:337 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.title" msgstr "新增团队所有者" -#: src/app/main/ui/workspace/libraries.cljs:188 msgid "modals.publish-empty-library.accept" msgstr "发布" -#: src/app/main/ui/workspace/libraries.cljs:187 msgid "modals.publish-empty-library.message" msgstr "你的库是空白的。你确定想要发布它?" -#: src/app/main/ui/workspace/libraries.cljs:186 msgid "modals.publish-empty-library.title" msgstr "发布空白库" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.remove-shared-confirm.accept" msgstr "不再作为共享库" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.remove-shared-confirm.hint" msgstr "一旦不再作为共享库,该文档库就不能继续用于你的其他文档中。" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.remove-shared-confirm.message" msgstr "不再将“%s”作为共享库" -#: src/app/main/ui/workspace/nudge.cljs:53 +#: src/app/main/ui/workspace/nudge.cljs msgid "modals.small-nudge" msgstr "小幅微调" -#: src/app/main/ui/delete_shared.cljs:52 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.unpublish-shared-confirm.accept" msgid_plural "modals.unpublish-shared-confirm.accept" msgstr[0] "取消发布" msgstr[1] "取消发布" -#: src/app/main/ui/delete_shared.cljs:47 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.unpublish-shared-confirm.message" msgid_plural "modals.unpublish-shared-confirm.message" msgstr[0] "你是否确认取消发布这个库?" msgstr[1] "你是否确认取消发布这些库?" -#: src/app/main/ui/delete_shared.cljs:42 +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.unpublish-shared-confirm.title" msgid_plural "modals.unpublish-shared-confirm.title" msgstr[0] "取消发布库" msgstr[1] "批量取消发布库" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component-in-bulk.hint" msgstr "你即将更新共享库中的组件,这可能会影响使用这些组件的其他文档。" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component-in-bulk.message" msgstr "更新共享库组件" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:380 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.accept" msgstr "更新组件" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:379 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.cancel" msgstr "取消" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:378 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.hint" msgstr "你即将更新共享库中的一个组件。这可能会对使用该组件的其他文档产生影响。" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:377 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.message" msgstr "更新共享库中的一个组件" -#: src/app/main/data/common.cljs:71 +#: src/app/main/data/common.cljs msgid "notifications.by-code.upgrade-version" msgstr "有新版本可用,请刷新页面" -#: src/app/main/ui/dashboard/team.cljs:154, src/app/main/ui/dashboard/team.cljs:595 +#: src/app/main/ui/dashboard/team.cljs msgid "notifications.invitation-email-sent" msgstr "成功发送邀请" -#: src/app/main/ui/dashboard/team.cljs:616 +#: src/app/main/ui/dashboard/team.cljs msgid "notifications.invitation-link-copied" msgstr "邀请链接已复制" -#: src/app/main/ui/settings/delete_account.cljs:24 +#: src/app/main/ui/settings/delete_account.cljs msgid "notifications.profile-deletion-not-allowed" msgstr "您无法删除您的个人资料。在继续之前重新分配您的团队。" -#: src/app/main/ui/settings/options.cljs:29, src/app/main/ui/settings/profile.cljs:35 +#: src/app/main/ui/settings/profile.cljs, src/app/main/ui/settings/options.cljs msgid "notifications.profile-saved" msgstr "个人资料保存成功!" -#: src/app/main/ui/settings/change_email.cljs:63 +#: src/app/main/ui/settings/change_email.cljs msgid "notifications.validation-email-sent" msgstr "验证邮件已发至%s。请检查电子邮箱!" -#, unused msgid "onboarding-v2.before-start.desc1" msgstr "有很多资源可以帮助你开始使用Penpot,如用户指南和我们的Youtube频道。" -#, unused msgid "onboarding-v2.before-start.desc2" msgstr "有关如何使用Penpot的详细信息。从原型设计到组织或共享设计。" -#, unused msgid "onboarding-v2.before-start.desc2.title" msgstr "用户指南" -#, unused msgid "onboarding-v2.before-start.desc3" msgstr "您可以观看我们的官方教程以及社区制作的教程。" -#, unused msgid "onboarding-v2.before-start.desc3.title" msgstr "视频教程" -#, unused msgid "onboarding-v2.before-start.title" msgstr "在开始之前" -#: src/app/main/ui/onboarding/newsletter.cljs:63 msgid "onboarding-v2.newsletter.desc" msgstr "订阅Penpot通知邮件,跟进产品开发进度,获取最新消息。" -#: src/app/main/ui/onboarding/newsletter.cljs:83 msgid "onboarding-v2.newsletter.news" msgstr "发给我有关Penpot的新闻(博客文章、视频教程、直播等)。" -#: src/app/main/ui/onboarding/newsletter.cljs:91 msgid "onboarding-v2.newsletter.privacy1" msgstr "我们关心隐私,您可在此阅读我们的 " -#: src/app/main/ui/onboarding/newsletter.cljs:97 msgid "onboarding-v2.newsletter.privacy2" -msgstr "我们将仅发送与您有关的邮件,您可以随时在其中任意一封邮件中点击取消订阅。" +msgstr "" +"我们将仅发送与您有关的邮件,您可以随时在其中任意一封邮件中点击取消订阅。" -#: src/app/main/ui/onboarding/newsletter.cljs:71 msgid "onboarding-v2.newsletter.updates" msgstr "向我发送一些产品更新(新功能,新版本,新修复等)。" -#, unused msgid "onboarding-v2.welcome.desc1" -msgstr "Penpot是由Kaleidos及社区共同开发的开源软件,许多人已经在社区中互相帮助。每个人都可以通过以下方式进行协作:" +msgstr "" +"Penpot是由Kaleidos及社区共同开发的开源软件,许多人已经在社区中互相帮助。每个" +"人都可以通过以下方式进行协作:" -#, unused msgid "onboarding-v2.welcome.desc2" -msgstr "一个与整个社区和Penpot核心团队学习、分享和讨论Penpot及其现在和未来的公共空间。" +msgstr "" +"一个与整个社区和Penpot核心团队学习、分享和讨论Penpot及其现在和未来的公共空" +"间。" -#, unused msgid "onboarding-v2.welcome.desc2.title" msgstr "参与到社区中" -#, unused msgid "onboarding-v2.welcome.desc3" -msgstr "在这里,您将了解如何协作进行翻译、功能需求提出、核心代码贡献、BUG修复等…" +msgstr "" +"在这里,您将了解如何协作进行翻译、功能需求提出、核心代码贡献、BUG修复等…" -#, unused msgid "onboarding-v2.welcome.desc3.title" msgstr "贡献指南" -#: src/app/main/ui/onboarding/team_choice.cljs:31 msgid "onboarding-v2.welcome.title" msgstr "欢迎来到Penpot!" -#: src/app/main/ui/onboarding/team_choice.cljs:229 msgid "onboarding.choice.team-up.continue-creating-team" msgstr "继续创建团队" -#: src/app/main/ui/onboarding/team_choice.cljs:239 msgid "onboarding.choice.team-up.continue-without-a-team" msgstr "以个人身份继续" -#: src/app/main/ui/onboarding/team_choice.cljs:167 msgid "onboarding.choice.team-up.create-team-and-invite" msgstr "创建团队 & 邀请" -#, unused msgid "onboarding.choice.team-up.create-team-and-send-invites" msgstr "创建团队并发送邀请" -#: src/app/main/ui/onboarding/team_choice.cljs:170 msgid "onboarding.choice.team-up.create-team-and-send-invites-description" msgstr "你可以稍后再邀请成员" -#: src/app/main/ui/onboarding/team_choice.cljs:215 msgid "onboarding.choice.team-up.create-team-desc" msgstr "命名团队后,您将能够邀请他人加入。" -#: src/app/main/ui/onboarding/team_choice.cljs:224 msgid "onboarding.choice.team-up.create-team-placeholder" msgstr "输入团队名称" -#: src/app/main/ui/onboarding/team_choice.cljs:168 msgid "onboarding.choice.team-up.create-team-without-invite" msgstr "创建团队" -#, unused msgid "onboarding.choice.team-up.create-team-without-inviting" msgstr "创建团队但暂不邀请" -#: src/app/main/ui/dashboard/projects.cljs:89, src/app/main/ui/onboarding/team_choice.cljs:140 msgid "onboarding.choice.team-up.invite-members" msgstr "邀请成员" -#: src/app/main/ui/onboarding/team_choice.cljs:141 msgid "onboarding.choice.team-up.invite-members-info" msgstr "记得将开发人员、设计师、经理……等各类人员都加进来:)" -#: src/app/main/ui/dashboard/team.cljs:202, src/app/main/ui/onboarding/team_choice.cljs:146 msgid "onboarding.choice.team-up.roles" msgstr "邀请角色:" -#: src/app/main/ui/onboarding/team_choice.cljs:232 msgid "onboarding.choice.team-up.start-without-a-team" msgstr "以个人身份开始" -#: src/app/main/ui/onboarding/team_choice.cljs:234 msgid "onboarding.choice.team-up.start-without-a-team-description" msgstr "你可以稍后再创建团队。" -#, unused msgid "onboarding.newsletter.accept" msgstr "是的,订阅" -#: src/app/main/ui/onboarding/newsletter.cljs:40 msgid "onboarding.newsletter.acceptance-message" msgstr "您的订阅请求已发送,我们将向您发送一封电子邮件进行确认。" -#: src/app/main/ui/onboarding/newsletter.cljs:95 msgid "onboarding.newsletter.policy" msgstr "隐私策略。" -#: src/app/main/ui/onboarding/newsletter.cljs:60 msgid "onboarding.newsletter.title" msgstr "想要接收 Penpot 新闻?" -#: src/app/main/ui/onboarding/questions.cljs:118 -msgid "onboarding.questions.lets-get-started" -msgstr "让我们开始吧!" - -#: src/app/main/ui/onboarding/questions.cljs:307 -msgid "onboarding.questions.step3.question2" -msgstr "你是哪种身份?" - -#: src/app/main/ui/onboarding/questions.cljs:320 -msgid "onboarding.questions.step3.question3" -msgstr "你的团队有多少人?" - -#: src/app/main/ui/onboarding/questions.cljs:273 -msgid "onboarding.questions.team-size.11-30" -msgstr "11-30" - -#: src/app/main/ui/onboarding/questions.cljs:274 -msgid "onboarding.questions.team-size.2-10" -msgstr "2-10" - -#: src/app/main/ui/onboarding/questions.cljs:272 -msgid "onboarding.questions.team-size.31-50" -msgstr "31-50" - -#: src/app/main/ui/onboarding/questions.cljs:271 -msgid "onboarding.questions.team-size.more-than-50" -msgstr "50以上" - -#: src/app/main/ui/onboarding/questions.cljs:276 -msgid "onboarding.questions.team-size.personal-project" -msgstr "我在做个人项目" - -#: src/app/main/ui/onboarding/team_choice.cljs:213 msgid "onboarding.team-modal.create-team" msgstr "创建一个团队" -#: src/app/main/ui/onboarding/team_choice.cljs:35 msgid "onboarding.team-modal.create-team-desc" msgstr "团队能够让你与其它Penpot用户协作处理相同的文件和项目。" -#: src/app/main/ui/onboarding/team_choice.cljs:40 msgid "onboarding.team-modal.create-team-feature-1" msgstr "无限制的文件和项目" -#: src/app/main/ui/onboarding/team_choice.cljs:44 msgid "onboarding.team-modal.create-team-feature-2" msgstr "多用户编辑" -#: src/app/main/ui/onboarding/team_choice.cljs:48 msgid "onboarding.team-modal.create-team-feature-3" msgstr "角色管理" -#: src/app/main/ui/onboarding/team_choice.cljs:52 msgid "onboarding.team-modal.create-team-feature-4" msgstr "无限制成员" -#: src/app/main/ui/onboarding/team_choice.cljs:56 msgid "onboarding.team-modal.create-team-feature-5" msgstr "完全免费!" -#: src/app/main/ui/onboarding/team_choice.cljs:33 -msgid "onboarding.team-modal.team-definition" -msgstr "团队是什么?" - -#: src/app/main/ui/onboarding/templates.cljs:78 msgid "onboarding.templates.subtitle" msgstr "这里有一些模板。" -#: src/app/main/ui/onboarding/templates.cljs:77 msgid "onboarding.templates.title" msgstr "开始设计" -#, unused msgid "onboarding.welcome.alt" msgstr "Penpot" -#: src/app/main/ui/auth/recovery.cljs:99 +#: src/app/main/ui/auth/recovery.cljs msgid "profile.recovery.go-to-login" msgstr "去登录" -#: src/app/main/ui/viewer/inspect/exports.cljs:147, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:631, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:137, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:148, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:188, src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:158, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:399, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:410, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:430, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:441, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:458, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:472, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:309, src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:183, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:373, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:389, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:245, src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:172 +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.team-size.11-30" +msgstr "11-30" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.team-size.2-10" +msgstr "2-10" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.team-size.31-50" +msgstr "31-50" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.adobe-xd" +msgstr "Adobe XD" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.canva" +msgstr "Canva" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.developer" +msgstr "开发者" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.figma" +msgstr "Figma" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.founder" +msgstr "创始人/副总裁" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.freelancer" +msgstr "我是一名自由职业者" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.invision" +msgstr "InVision" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.lets-get-started" +msgstr "让我们开始吧!" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.product-management" +msgstr "产品经理/项目经理" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.marketing" +msgstr "市场营销" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.team-size.more-than-50" +msgstr "50以上" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.next" +msgstr "下一项" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.other" +msgstr "其他(请注明)" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.team-size.personal-project" +msgstr "我在做个人项目" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.previous" +msgstr "前一项" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.step3.question2" +msgstr "你是哪种身份?" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.sketch" +msgstr "Sketch" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.start" +msgstr "开始" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "labels.student-teacher" +msgstr "学生/教师" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "onboarding.questions.step3.question3" +msgstr "你的团队有多少人?" + +#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs msgid "settings.multiple" msgstr "混合" -#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:271 -msgid "settings.select-this-color" -msgstr "选择使用此样式的项目" - # SECTIONS -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:414 msgid "shortcut-section.basics" msgstr "基础" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:420 msgid "shortcut-section.dashboard" msgstr "仪表盘" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:423 msgid "shortcut-section.viewer" msgstr "观察者" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:417 msgid "shortcut-section.workspace" msgstr "工作区" # SUBSECTIONS -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:56 msgid "shortcut-subsection.alignment" msgstr "对准" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:57 msgid "shortcut-subsection.edit" msgstr "编辑" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:58 msgid "shortcut-subsection.general-dashboard" msgstr "通用" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:59 msgid "shortcut-subsection.general-viewer" msgstr "通用" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:60 msgid "shortcut-subsection.main-menu" msgstr "主菜单" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:61 msgid "shortcut-subsection.modify-layers" msgstr "修改图层" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:62 msgid "shortcut-subsection.navigation-dashboard" msgstr "导航" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:63 msgid "shortcut-subsection.navigation-viewer" msgstr "导航" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:64 msgid "shortcut-subsection.navigation-workspace" msgstr "导航" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:65 msgid "shortcut-subsection.panels" msgstr "面板" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:66 msgid "shortcut-subsection.path-editor" msgstr "路径" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:67 msgid "shortcut-subsection.shape" msgstr "形状" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:68 msgid "shortcut-subsection.text-editor" msgstr "文本" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:69 msgid "shortcut-subsection.tools" msgstr "工具" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:70 msgid "shortcut-subsection.zoom-viewer" msgstr "缩放" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:71 msgid "shortcut-subsection.zoom-workspace" msgstr "缩放" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:72 msgid "shortcuts.add-comment" msgstr "评论" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:73 msgid "shortcuts.add-node" msgstr "添加节点" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:74 msgid "shortcuts.align-bottom" msgstr "底部对齐" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:75 msgid "shortcuts.align-center" msgstr "居中对齐" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:76 msgid "shortcuts.align-hcenter" msgstr "水平居中对齐" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:77 msgid "shortcuts.align-justify" msgstr "两端对齐" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:78 msgid "shortcuts.align-left" msgstr "靠左对齐" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:79 msgid "shortcuts.align-right" msgstr "靠右对齐" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:80 msgid "shortcuts.align-top" msgstr "顶部对齐" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:81 msgid "shortcuts.align-vcenter" msgstr "垂直居中对齐" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:82 msgid "shortcuts.artboard-selection" msgstr "以所选内容创建画板" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:83 msgid "shortcuts.bold" msgstr "切换粗体" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:84 msgid "shortcuts.bool-difference" msgstr "布尔差" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:85 msgid "shortcuts.bool-exclude" msgstr "布尔排除" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:86 msgid "shortcuts.bool-intersection" msgstr "布尔交集" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:87 msgid "shortcuts.bool-union" msgstr "布尔合并" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:88 msgid "shortcuts.bring-back" msgstr "移至最下层" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:89 msgid "shortcuts.bring-backward" msgstr "移至下一层" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:90 msgid "shortcuts.bring-forward" msgstr "移至上一层" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:91 msgid "shortcuts.bring-front" msgstr "移至最上层" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:92 msgid "shortcuts.clear-undo" msgstr "清除回退内容" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:93 msgid "shortcuts.copy" msgstr "拷贝" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:94 msgid "shortcuts.create-component" msgstr "创建组件" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:95 msgid "shortcuts.create-new-project" msgstr "创建新的" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:96 msgid "shortcuts.cut" msgstr "剪切" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:97 msgid "shortcuts.decrease-zoom" msgstr "缩小" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:98 msgid "shortcuts.delete" msgstr "删除" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:99 msgid "shortcuts.delete-node" msgstr "删除节点" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:100 msgid "shortcuts.detach-component" msgstr "拆分组件" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:101 msgid "shortcuts.draw-curve" msgstr "曲线" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:102 msgid "shortcuts.draw-ellipse" msgstr "椭圆" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:103 msgid "shortcuts.draw-frame" msgstr "画板" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:104 msgid "shortcuts.draw-nodes" msgstr "绘制路径" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:105 msgid "shortcuts.draw-path" msgstr "路径" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:106 msgid "shortcuts.draw-rect" msgstr "长方形" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:107 msgid "shortcuts.draw-text" msgstr "文本" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:108 msgid "shortcuts.duplicate" msgstr "复制" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:109 msgid "shortcuts.escape" msgstr "取消" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:110 msgid "shortcuts.export-shapes" msgstr "导出形状" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:111 msgid "shortcuts.fit-all" msgstr "缩放至适应所有" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:112 msgid "shortcuts.flip-horizontal" msgstr "水平翻转" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:113 msgid "shortcuts.flip-vertical" msgstr "垂直翻转" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:114 msgid "shortcuts.font-size-dec" msgstr "缩小字体大小" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:115 msgid "shortcuts.font-size-inc" msgstr "增加字体大小" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:116 msgid "shortcuts.go-to-drafts" msgstr "前往草稿" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:117 msgid "shortcuts.go-to-libs" msgstr "前往共享库" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:118 msgid "shortcuts.go-to-search" msgstr "搜索" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:119 msgid "shortcuts.group" msgstr "组" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:120 msgid "shortcuts.h-distribute" msgstr "水平分布" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:121 msgid "shortcuts.hide-ui" msgstr "显示/隐藏UI" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:122 msgid "shortcuts.increase-zoom" msgstr "放大" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:123 msgid "shortcuts.insert-image" msgstr "插入图片" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:124 msgid "shortcuts.italic" msgstr "切换斜体" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:125 msgid "shortcuts.join-nodes" msgstr "链接节点" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:126 msgid "shortcuts.letter-spacing-dec" msgstr "减少字母间距" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:127 msgid "shortcuts.letter-spacing-inc" msgstr "减少字母间距" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:128 msgid "shortcuts.line-height-dec" msgstr "减少行高" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:129 msgid "shortcuts.line-height-inc" msgstr "增加行高" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:130 msgid "shortcuts.line-through" msgstr "切换删除线" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:131 msgid "shortcuts.make-corner" msgstr "制作圆角" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:132 msgid "shortcuts.make-curve" msgstr "制作曲线" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:133 msgid "shortcuts.mask" msgstr "遮罩" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:134 msgid "shortcuts.merge-nodes" msgstr "合并节点" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:135 msgid "shortcuts.move" msgstr "移动" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:136 msgid "shortcuts.move-fast-down" msgstr "快速下移" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:137 msgid "shortcuts.move-fast-left" msgstr "快速向左移动" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:138 msgid "shortcuts.move-fast-right" msgstr "快速向右移动" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:139 msgid "shortcuts.move-fast-up" msgstr "快速上移" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:140 msgid "shortcuts.move-nodes" msgstr "移动节点" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:141 msgid "shortcuts.move-unit-down" msgstr "向下移动" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:142 msgid "shortcuts.move-unit-left" msgstr "左移" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:143 msgid "shortcuts.move-unit-right" msgstr "右移" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:144 msgid "shortcuts.move-unit-up" msgstr "上移" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:145 msgid "shortcuts.next-frame" msgstr "下个画板" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:516 msgid "shortcuts.not-found" msgstr "没找到快捷方式" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:146 msgid "shortcuts.opacity-0" msgstr "设置不透明度为100%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:147 msgid "shortcuts.opacity-1" msgstr "设置不透明度为10%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:148 msgid "shortcuts.opacity-2" msgstr "设置不透明度为20%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:149 msgid "shortcuts.opacity-3" msgstr "设置不透明度为30%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:150 msgid "shortcuts.opacity-4" msgstr "设置不透明度为40%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:151 msgid "shortcuts.opacity-5" msgstr "设置不透明度为50%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:152 msgid "shortcuts.opacity-6" msgstr "设置不透明度为60%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:153 msgid "shortcuts.opacity-7" msgstr "设置不透明度为70%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:154 msgid "shortcuts.opacity-8" msgstr "设置不透明度为80%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:155 msgid "shortcuts.opacity-9" msgstr "设置不透明度为90%" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:156 msgid "shortcuts.open-color-picker" msgstr "色彩拾取器" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:157 msgid "shortcuts.open-comments" msgstr "前往查阅者评论区" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:158 msgid "shortcuts.open-dashboard" msgstr "前往看板" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:159 msgid "shortcuts.open-inspect" msgstr "转到查看器检查部分" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:160 msgid "shortcuts.open-interactions" msgstr "转往阅读器交互部分" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:161 msgid "shortcuts.open-viewer" msgstr "转往阅读器交互部分" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:162 msgid "shortcuts.open-workspace" msgstr "前往工作区" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:260 msgid "shortcuts.or" msgstr " 或 " -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:163 msgid "shortcuts.paste" msgstr "粘贴" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:164 msgid "shortcuts.prev-frame" msgstr "前一画板" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:165 msgid "shortcuts.redo" msgstr "重做" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:166 msgid "shortcuts.reset-zoom" msgstr "重置缩放" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:168 msgid "shortcuts.search-placeholder" msgstr "搜索快捷方式" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:169 msgid "shortcuts.select-all" msgstr "选择所有" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:170 msgid "shortcuts.select-next" msgstr "选择下一个图层" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:171 msgid "shortcuts.select-parent-layer" msgstr "选择上级图层" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:172 msgid "shortcuts.select-prev" msgstr "选择上一个图层" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:173 msgid "shortcuts.separate-nodes" msgstr "分离节点" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:174 msgid "shortcuts.show-pixel-grid" msgstr "显示/隐藏像素网格" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:175 msgid "shortcuts.show-shortcuts" msgstr "显示/隐藏快捷方式" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:176 msgid "shortcuts.snap-nodes" msgstr "对齐到节点" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:177 msgid "shortcuts.snap-pixel-grid" msgstr "对齐像素网格" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:178 msgid "shortcuts.start-editing" msgstr "启用编辑" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:179 msgid "shortcuts.start-measure" msgstr "启用测量" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:180 msgid "shortcuts.stop-measure" msgstr "停止测量" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:181 msgid "shortcuts.text-align-center" msgstr "水平居中" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:182 msgid "shortcuts.text-align-justify" msgstr "两端对齐" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:183 msgid "shortcuts.text-align-left" msgstr "靠左对齐" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:184 msgid "shortcuts.text-align-right" msgstr "靠右对齐" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:185 msgid "shortcuts.thumbnail-set" msgstr "设置缩略图" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:496, src/app/main/ui/workspace/sidebar/shortcuts.cljs:505 +#: src/app/main/ui/workspace/sidebar/shortcuts.cljs msgid "shortcuts.title" msgstr "快捷键" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:186 msgid "shortcuts.toggle-alignment" msgstr "切换动态对齐" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:187 msgid "shortcuts.toggle-assets" msgstr "切换资产" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:188 msgid "shortcuts.toggle-colorpalette" msgstr "切换调色板" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:189 msgid "shortcuts.toggle-focus-mode" msgstr "切换焦点模式" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:190 msgid "shortcuts.toggle-fullscreen" msgstr "切换全屏" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:191 -msgid "shortcuts.toggle-guides" -msgstr "显示/隐藏参考线" - -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:192 msgid "shortcuts.toggle-history" msgstr "切换历史" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:193 msgid "shortcuts.toggle-layers" msgstr "切换层" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:194 msgid "shortcuts.toggle-layout-flex" msgstr "添加/删除弹性布局" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:195 -msgid "shortcuts.toggle-layout-grid" -msgstr "添加/移除网格布局" - -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:196 msgid "shortcuts.toggle-lock" msgstr "锁定所选" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:197 msgid "shortcuts.toggle-lock-size" msgstr "锁定比例" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:198 -msgid "shortcuts.toggle-rulers" -msgstr "显示/隐藏标尺" - -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:200 -msgid "shortcuts.toggle-snap-guides" -msgstr "吸附到参考线" - -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:201 -msgid "shortcuts.toggle-snap-ruler-guide" -msgstr "吸附到标尺参考线" - -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:202 msgid "shortcuts.toggle-textpalette" msgstr "切换文本调色板" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:203 -msgid "shortcuts.toggle-theme" -msgstr "更改主题" - -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:204 msgid "shortcuts.toggle-visibility" msgstr "切换可见度" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:205 msgid "shortcuts.toggle-zoom-style" msgstr "切换缩放样式" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:206 msgid "shortcuts.underline" msgstr "切换下划线" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:207 msgid "shortcuts.undo" msgstr "回退" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:208 msgid "shortcuts.ungroup" msgstr "取消组合" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:209 msgid "shortcuts.unmask" msgstr "取消遮罩" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:210 msgid "shortcuts.v-distribute" msgstr "垂直分布" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:211 msgid "shortcuts.zoom-lense-decrease" msgstr "变焦镜头缩小" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:212 msgid "shortcuts.zoom-lense-increase" msgstr "变焦镜头放大" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:213 msgid "shortcuts.zoom-selected" msgstr "缩放到选定对象" -#: src/app/main/ui/dashboard/team.cljs:771 +#: src/app/main/ui/dashboard/team.cljs msgid "team.webhooks.max-length" msgstr "Webhook的名称最多包含2048个字符。" -#: src/app/main/ui/dashboard/files.cljs:158 +#: src/app/main/ui/dashboard/files.cljs msgid "title.dashboard.files" msgstr "%s - Penpot" -#: src/app/main/ui/dashboard/fonts.cljs:37 +#: src/app/main/ui/dashboard/fonts.cljs msgid "title.dashboard.font-providers" msgstr "字体提供者 - %s - Penpot" -#: src/app/main/ui/dashboard/fonts.cljs:36 +#: src/app/main/ui/dashboard/fonts.cljs msgid "title.dashboard.fonts" msgstr "字体 - %s - Penpot" -#: src/app/main/ui/dashboard/projects.cljs:320 +#: src/app/main/ui/dashboard/projects.cljs msgid "title.dashboard.projects" msgstr "项目 - %s - Penpot" -#: src/app/main/ui/dashboard/search.cljs:32 +#: src/app/main/ui/dashboard/search.cljs msgid "title.dashboard.search" msgstr "搜索 - %s - Penpot" -#: src/app/main/ui/dashboard/libraries.cljs:44 +#: src/app/main/ui/dashboard/libraries.cljs msgid "title.dashboard.shared-libraries" msgstr "共享库 - %s - Penpot" -#: src/app/main/ui/auth/verify_token.cljs:68, src/app/main/ui/auth.cljs:54 +#: src/app/main/ui/auth/verify_token.cljs, src/app/main/ui/auth.cljs msgid "title.default" msgstr "Penpot - 面向团队,设计自由" -#: src/app/main/ui/settings/access_tokens.cljs:292 +#: src/app/main/ui/settings/access-tokens.cljs msgid "title.settings.access-tokens" msgstr "个人资料 — 访问令牌" -#: src/app/main/ui/settings/feedback.cljs:110 +#: src/app/main/ui/settings/feedback.cljs msgid "title.settings.feedback" msgstr "提交反馈 - Penpot" -#: src/app/main/ui/settings/options.cljs:80 +#: src/app/main/ui/settings/options.cljs msgid "title.settings.options" msgstr "设置 - Penpot" -#: src/app/main/ui/settings/password.cljs:115 +#: src/app/main/ui/settings/password.cljs msgid "title.settings.password" msgstr "密码 - Penpot" -#: src/app/main/ui/settings/profile.cljs:115 +#: src/app/main/ui/settings/profile.cljs msgid "title.settings.profile" msgstr "个人资料 - Penpot" -#: src/app/main/ui/dashboard/team.cljs:727 +#: src/app/main/ui/dashboard/team.cljs msgid "title.team-invitations" msgstr "邀请函 - %s - Penpot" -#: src/app/main/ui/dashboard/team.cljs:493 +#: src/app/main/ui/dashboard/team.cljs msgid "title.team-members" msgstr "成员 - %s - Penpot" -#: src/app/main/ui/dashboard/team.cljs:1036 +#: src/app/main/ui/dashboard/team.cljs msgid "title.team-settings" msgstr "设置 - %s - Penpot" -#: src/app/main/ui/dashboard/team.cljs:989 msgid "title.team-webhooks" msgstr "Webhooks - %s - Penpot" -#: src/app/main/ui/viewer.cljs:419 +#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs msgid "title.viewer" msgstr "%s - 预览模式)- Penpot" -#: src/app/main/ui/workspace.cljs:190 +#: src/app/main/ui/workspace.cljs msgid "title.workspace" msgstr "%s - Penpot" -#: src/app/main/ui.cljs:144 msgid "viewer.breaking-change.description" msgstr "此共享的链接已失效。创建一个新的链接或向所有者索取一个新的链接。" -#: src/app/main/ui.cljs:143 msgid "viewer.breaking-change.message" msgstr "对不起!" -#: src/app/main/ui/viewer.cljs:569 +#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs msgid "viewer.empty-state" msgstr "该页面上未找到任何画框。" -#: src/app/main/ui/viewer.cljs:574 +#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs msgid "viewer.frame-not-found" msgstr "画框未找到。" -#: src/app/main/ui/viewer/header.cljs:336 msgid "viewer.header.comments-section" msgstr "注释 (%s)" -#: src/app/main/ui/viewer/interactions.cljs:292 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.dont-show-interactions" msgstr "不显示交互" -#: src/app/main/ui/viewer/header.cljs:188 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.fullscreen" msgstr "全屏" -#: src/app/main/ui/viewer/header.cljs:345 msgid "viewer.header.inspect-section" msgstr "检查 (%s)" -#: src/app/main/ui/viewer/interactions.cljs:282 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.interactions" msgstr "交互" -#: src/app/main/ui/viewer/header.cljs:327 msgid "viewer.header.interactions-section" msgstr "交互 (%s)" -#: src/app/main/ui/viewer/share_link.cljs:187 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.share.copy-link" msgstr "复制链接" -#: src/app/main/ui/viewer/interactions.cljs:300 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.show-interactions" msgstr "显示交互" -#: src/app/main/ui/viewer/interactions.cljs:311 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.show-interactions-on-click" msgstr "点击时显示交互" -#: src/app/main/ui/viewer/header.cljs:231 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.sitemap" msgstr "站点地图" -#: src/app/main/ui/dashboard/team.cljs:948 msgid "webhooks.last-delivery.success" msgstr "上次交付成功。" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:58 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.hcenter" msgstr "水平居中对齐 (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:74 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.hdistribute" msgstr "水平均匀分布 (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:50 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.hleft" msgstr "靠左对齐 (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:66 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.hright" msgstr "靠右对齐 (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:99 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.vbottom" msgstr "底部对齐 (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:91 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.vcenter" msgstr "垂直居中对齐 (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:104 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.vdistribute" msgstr "垂直均匀分布 (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:83 +#: src/app/main/ui/workspace/sidebar/align.cljs msgid "workspace.align.vtop" msgstr "顶部对齐 (%s)" #: src/app/main/ui/workspace/sidebar/assets.cljs -#, unused msgid "workspace.assets.assets" msgstr "素材" -#: src/app/main/ui/workspace/sidebar/assets.cljs:134 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.box-filter-all" msgstr "所有素材" -#: src/app/main/ui/dashboard/grid.cljs:130, src/app/main/ui/dashboard/grid.cljs:162, src/app/main/ui/workspace/sidebar/assets/colors.cljs:485, src/app/main/ui/workspace/sidebar/assets.cljs:150 +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.colors" msgstr "颜色" -#: src/app/main/ui/dashboard/grid.cljs:126, src/app/main/ui/dashboard/grid.cljs:141, src/app/main/ui/workspace/sidebar/assets/components.cljs:513, src/app/main/ui/workspace/sidebar/assets.cljs:139 +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.components" msgstr "组件" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:131 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.create-group" msgstr "创建组" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:142 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.create-group-hint" msgstr "这些物件将按照“组名/物件名”的格式自动命名" -#: src/app/main/ui/workspace/context_menu.cljs:529, src/app/main/ui/workspace/sidebar/assets/colors.cljs:251, src/app/main/ui/workspace/sidebar/assets/components.cljs:577, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:424, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:443 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.delete" msgstr "删除" -#: src/app/main/ui/workspace/context_menu.cljs:534, src/app/main/ui/workspace/sidebar/assets/components.cljs:572 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.duplicate" msgstr "创建副本" -#: src/app/main/ui/workspace/sidebar/assets/components.cljs:571 msgid "workspace.assets.duplicate-main" msgstr "重复主体" -#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:247, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:439 +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.edit" msgstr "编辑" -#: src/app/main/ui/workspace/sidebar/assets.cljs:176 -msgid "workspace.assets.filter" -msgstr "过滤器" - -#: src/app/main/ui/workspace/sidebar/assets/graphics.cljs:384, src/app/main/ui/workspace/sidebar/assets.cljs:145 +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.graphics" msgstr "图形" -#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:255, src/app/main/ui/workspace/sidebar/assets/components.cljs:581, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:428, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:448 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.group" msgstr "组" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:141 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.group-name" msgstr "组名" -#: src/app/main/ui/workspace/sidebar/assets.cljs:168 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.libraries" msgstr "库" -#: src/app/main/ui/workspace/sidebar/assets/file_library.cljs:62, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:347 msgid "workspace.assets.local-library" msgstr "本地库" -#: src/app/main/ui/workspace/sidebar/assets/file_library.cljs:295 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.not-found" msgstr "未找到素材" -#, unused msgid "workspace.assets.open-library" msgstr "打开库文档" -#: src/app/main/ui/workspace/context_menu.cljs:532, src/app/main/ui/workspace/sidebar/assets/colors.cljs:243, src/app/main/ui/workspace/sidebar/assets/components.cljs:566, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:421, src/app/main/ui/workspace/sidebar/assets/groups.cljs:63, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:434 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.rename" msgstr "重命名" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:132 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.rename-group" msgstr "重命名组" -#: src/app/main/ui/workspace/sidebar/assets.cljs:173 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.search" msgstr "搜索素材" #: src/app/main/ui/workspace/sidebar/assets.cljs -#, unused msgid "workspace.assets.selected-count" msgid_plural "workspace.assets.selected-count" msgstr[0] "已选中%s个物件" msgstr[1] "已选中%s个物件" #: src/app/main/ui/workspace/sidebar/assets.cljs -#, unused msgid "workspace.assets.shared-library" msgstr "共享库" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:221 -msgid "workspace.assets.sidebar.components" -msgid_plural "workspace.assets.sidebar.components" -msgstr[0] "1个组件" -msgstr[1] "%s个组件" - -#: src/app/main/ui/workspace/sidebar/assets.cljs:193 -msgid "workspace.assets.sort" -msgstr "排序" - -#: src/app/main/ui/dashboard/grid.cljs:134, src/app/main/ui/dashboard/grid.cljs:189, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:397, src/app/main/ui/workspace/sidebar/assets.cljs:155 +#: src/app/main/ui/workspace/sidebar/assets.cljs, +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.typography" msgstr "排版" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused msgid "workspace.assets.typography.font-id" msgstr "字体" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:505 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.font-size" msgstr "尺寸" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:501 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.font-variant-id" msgstr "变体" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:523 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.go-to-edit" msgstr "前往样式库文件进行编辑" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:513 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.letter-spacing" msgstr "字距" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:509 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.line-height" msgstr "行高" -#: src/app/main/ui/dashboard/grid.cljs:199, src/app/main/ui/workspace/libraries.cljs:461, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:464, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:489, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:596, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:615 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, +#: src/app/main/ui/inspect/attributes/text.cljs, +#: src/app/main/ui/inspect/attributes/text.cljs msgid "workspace.assets.typography.sample" msgstr "Ag" -#, unused msgid "workspace.assets.typography.text-styles" msgstr "文本样式" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:517 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.text-transform" msgstr "文本变换" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:66 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.ungroup" msgstr "解组" -#: src/app/main/ui/workspace/context_menu.cljs:634 -msgid "workspace.context-menu.grid-cells.area" -msgstr "新建区域" - -#: src/app/main/ui/workspace/context_menu.cljs:637 -msgid "workspace.context-menu.grid-cells.create-board" -msgstr "新建画板" - -#: src/app/main/ui/workspace/context_menu.cljs:629 -msgid "workspace.context-menu.grid-cells.merge" -msgstr "合并网格" - -#: src/app/main/ui/workspace/context_menu.cljs:594 -msgid "workspace.context-menu.grid-track.column.add-after" -msgstr "在右侧添加一列" - -#: src/app/main/ui/workspace/context_menu.cljs:593 -msgid "workspace.context-menu.grid-track.column.add-before" -msgstr "在左侧添加一列" - -#: src/app/main/ui/workspace/context_menu.cljs:595 -msgid "workspace.context-menu.grid-track.column.delete" -msgstr "删除此列" - -#: src/app/main/ui/workspace/context_menu.cljs:596 -msgid "workspace.context-menu.grid-track.column.delete-shapes" -msgstr "删除此列及其内容" - -#: src/app/main/ui/workspace/context_menu.cljs:592 -msgid "workspace.context-menu.grid-track.column.duplicate" -msgstr "复制此列" - -#: src/app/main/ui/workspace/context_menu.cljs:601 -msgid "workspace.context-menu.grid-track.row.add-after" -msgstr "在下方添加一行" - -#: src/app/main/ui/workspace/context_menu.cljs:600 -msgid "workspace.context-menu.grid-track.row.add-before" -msgstr "在上方添加一行" - -#: src/app/main/ui/workspace/context_menu.cljs:602 -msgid "workspace.context-menu.grid-track.row.delete" -msgstr "删除此行" - -#: src/app/main/ui/workspace/context_menu.cljs:603 -msgid "workspace.context-menu.grid-track.row.delete-shapes" -msgstr "删除此行及其内容" - -#: src/app/main/ui/workspace/context_menu.cljs:599 -msgid "workspace.context-menu.grid-track.row.duplicate" -msgstr "复制此行" - -#: src/app/main/ui/workspace/sidebar/layers.cljs:525 msgid "workspace.focus.focus-mode" msgstr "禅模式" -#: src/app/main/ui/workspace/context_menu.cljs:287, src/app/main/ui/workspace/context_menu.cljs:553 msgid "workspace.focus.focus-off" msgstr "退出禅模式" -#: src/app/main/ui/workspace/context_menu.cljs:286 msgid "workspace.focus.focus-on" msgstr "关注" -#, unused msgid "workspace.focus.selection" msgstr "选择" -#: src/app/util/color.cljs:34 +#: src/app/main/data/workspace/libraries.cljs, +#: src/app/main/ui/components/color_bullet.cljs msgid "workspace.gradients.linear" msgstr "线性渐变" -#: src/app/util/color.cljs:35 +#: src/app/main/data/workspace/libraries.cljs, +#: src/app/main/ui/components/color_bullet.cljs msgid "workspace.gradients.radial" msgstr "放射渐变" -#: src/app/main/ui/workspace/main_menu.cljs:238 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.disable-dynamic-alignment" msgstr "禁用动态对齐" -#: src/app/main/ui/workspace/main_menu.cljs:192 msgid "workspace.header.menu.disable-scale-content" msgstr "禁用比例尺" #: src/app/main/ui/workspace/header.cljs -#, unused msgid "workspace.header.menu.disable-scale-text" msgstr "禁用缩放文本" -#: src/app/main/ui/workspace/main_menu.cljs:223 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.disable-snap-guides" msgstr "禁用与参考线对齐" -#: src/app/main/ui/workspace/main_menu.cljs:253 msgid "workspace.header.menu.disable-snap-pixel-grid" msgstr "禁用像素对齐" -#: src/app/main/ui/workspace/main_menu.cljs:207 -msgid "workspace.header.menu.disable-snap-ruler-guides" -msgstr "禁用“吸附到标尺参考线”" - -#: src/app/main/ui/workspace/main_menu.cljs:239 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.enable-dynamic-alignment" msgstr "启用动态对齐" -#: src/app/main/ui/workspace/main_menu.cljs:193 msgid "workspace.header.menu.enable-scale-content" msgstr "启用比例尺" #: src/app/main/ui/workspace/header.cljs -#, unused msgid "workspace.header.menu.enable-scale-text" msgstr "启用缩放文本" -#: src/app/main/ui/workspace/main_menu.cljs:224 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.enable-snap-guides" msgstr "与参考线对齐" -#: src/app/main/ui/workspace/main_menu.cljs:254 msgid "workspace.header.menu.enable-snap-pixel-grid" msgstr "启用像素对齐" -#: src/app/main/ui/workspace/main_menu.cljs:208 -msgid "workspace.header.menu.enable-snap-ruler-guides" -msgstr "启用“吸附到标尺参考线”" - -#: src/app/main/ui/workspace/main_menu.cljs:382 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.hide-artboard-names" msgstr "隐藏画板名称" -#: src/app/main/ui/workspace/main_menu.cljs:336 -msgid "workspace.header.menu.hide-guides" -msgstr "隐藏参考线" - -#: src/app/main/ui/workspace/main_menu.cljs:353 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.hide-palette" msgstr "隐藏调色盘" -#: src/app/main/ui/workspace/main_menu.cljs:394 msgid "workspace.header.menu.hide-pixel-grid" msgstr "隐藏像素网格" -#: src/app/main/ui/workspace/main_menu.cljs:320 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.hide-rules" msgstr "隐藏标尺" -#: src/app/main/ui/workspace/main_menu.cljs:367 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.hide-textpalette" msgstr "隐藏字体调色板" -#: src/app/main/ui/workspace/main_menu.cljs:731 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.edit" msgstr "编辑" -#: src/app/main/ui/workspace/main_menu.cljs:720 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.file" msgstr "文件" -#: src/app/main/ui/workspace/main_menu.cljs:777 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.help-info" msgstr "帮助和信息" -#: src/app/main/ui/workspace/main_menu.cljs:753 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.preferences" msgstr "首选项" -#: src/app/main/ui/workspace/main_menu.cljs:742 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.view" msgstr "视图" -#: src/app/main/ui/workspace/main_menu.cljs:459 msgid "workspace.header.menu.redo" msgstr "重做" -#: src/app/main/ui/workspace/main_menu.cljs:432 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.select-all" msgstr "全选" -#: src/app/main/ui/workspace/main_menu.cljs:383 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.show-artboard-names" msgstr "显示画板名称" -#: src/app/main/ui/workspace/main_menu.cljs:337 -msgid "workspace.header.menu.show-guides" -msgstr "显示参考线" - -#: src/app/main/ui/workspace/main_menu.cljs:354 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.show-palette" msgstr "显示调色盘" -#: src/app/main/ui/workspace/main_menu.cljs:395 msgid "workspace.header.menu.show-pixel-grid" msgstr "显示像素网格" -#: src/app/main/ui/workspace/main_menu.cljs:321 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.show-rules" msgstr "显示标尺" -#: src/app/main/ui/workspace/main_menu.cljs:368 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.show-textpalette" msgstr "显示字体调色板" -#: src/app/main/ui/workspace/main_menu.cljs:279 -msgid "workspace.header.menu.toggle-dark-theme" -msgstr "切换到深色主题" - -#: src/app/main/ui/workspace/main_menu.cljs:278 -msgid "workspace.header.menu.toggle-light-theme" -msgstr "切换到浅色主题" - -#: src/app/main/ui/workspace/main_menu.cljs:446 msgid "workspace.header.menu.undo" msgstr "撤销" -#: src/app/main/ui/viewer/header.cljs:98, src/app/main/ui/workspace/right_header.cljs:120 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.reset-zoom" msgstr "重置" #: src/app/main/ui/workspace/header.cljs -#, unused msgid "workspace.header.save-error" msgstr "保存时发生错误" -#: src/app/main/ui/workspace/right_header.cljs:52 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.saved" msgstr "已保存" #: src/app/main/ui/workspace/header.cljs -#, unused msgid "workspace.header.saving" msgstr "正在保存" -#: src/app/main/ui/workspace/right_header.cljs:42, src/app/main/ui/workspace/right_header.cljs:47 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.unsaved" msgstr "未保存的修改" -#: src/app/main/ui/workspace/right_header.cljs:239 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.viewer" msgstr "预览模式(%s)" -#: src/app/main/ui/viewer/header.cljs:79, src/app/main/ui/workspace/right_header.cljs:103 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom" msgstr "缩放" -#: src/app/main/ui/viewer/header.cljs:109 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom-fill" msgstr "填充 - 填充比例" -#: src/app/main/ui/viewer/header.cljs:102 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom-fit" msgstr "适合 - 缩小以适合" -#: src/app/main/ui/workspace/right_header.cljs:123 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom-fit-all" msgstr "缩放以适应所有" -#: src/app/main/ui/viewer/header.cljs:116 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom-full-screen" msgstr "全屏" -#: src/app/main/ui/workspace/right_header.cljs:130 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom-selected" msgstr "缩放到选定的位置" -#: src/app/main/ui/workspace/sidebar/options/menus/grid_cell.cljs:273, src/app/main/ui/workspace/sidebar/options/menus/grid_cell.cljs:275, src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:612 msgid "workspace.layout_grid.editor.options.edit-grid" msgstr "编辑网格" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:1280 msgid "workspace.layout_grid.editor.options.exit" msgstr "退出" -#: src/app/main/ui/workspace/viewport/grid_layout_editor.cljs:59 msgid "workspace.layout_grid.editor.title" msgstr "编辑网格" -#: src/app/main/ui/workspace/viewport/grid_layout_editor.cljs:65 msgid "workspace.layout_grid.editor.top-bar.done" msgstr "完成" -#: src/app/main/ui/workspace/viewport/grid_layout_editor.cljs:62 msgid "workspace.layout_grid.editor.top-bar.locate" msgstr "定位" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:1306 -msgid "workspace.layout_grid.editor.top-bar.locate.tooltip" -msgstr "定位网格布局" - #: src/app/main/ui/workspace/libraries.cljs -#, unused msgid "workspace.libraries.add" msgstr "添加" -#: src/app/main/ui/workspace/libraries.cljs:80, src/app/main/ui/workspace/libraries.cljs:99 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.colors" msgstr "%s种颜色" -#: src/app/main/ui/workspace/color_palette.cljs:126 +#: src/app/main/ui/workspace/colorpalette.cljs msgid "workspace.libraries.colors.empty-palette" msgstr "你的库中还没有颜色风格" -#: src/app/main/ui/workspace/text_palette.cljs:150 +#: src/app/main/ui/workspace/textpalette.cljs msgid "workspace.libraries.colors.empty-typography-palette" msgstr "你的库中还没有排版风格" -#: src/app/main/ui/workspace/color_palette_ctx_menu.cljs:60, src/app/main/ui/workspace/colorpicker/libraries.cljs:73, src/app/main/ui/workspace/text_palette_ctx_menu.cljs:50 +#: src/app/main/ui/workspace/colorpicker/libraries.cljs, +#: src/app/main/ui/workspace/colorpalette.cljs msgid "workspace.libraries.colors.file-library" msgstr "文档库" #: src/app/main/ui/workspace/colorpicker.cljs -#, unused msgid "workspace.libraries.colors.hsv" msgstr "HSV" -#: src/app/main/ui/workspace/color_palette_ctx_menu.cljs:82, src/app/main/ui/workspace/colorpicker/libraries.cljs:72 +#: src/app/main/ui/workspace/colorpicker/libraries.cljs, +#: src/app/main/ui/workspace/colorpalette.cljs msgid "workspace.libraries.colors.recent-colors" msgstr "最近使用的颜色" #: src/app/main/ui/workspace/colorpicker.cljs -#, unused msgid "workspace.libraries.colors.rgb-complementary" msgstr "RGB互补" #: src/app/main/ui/workspace/colorpicker.cljs -#, unused msgid "workspace.libraries.colors.rgba" msgstr "RGBA" -#: src/app/main/ui/workspace/colorpicker.cljs:372 +#: src/app/main/ui/workspace/colorpicker.cljs msgid "workspace.libraries.colors.save-color" msgstr "保存颜色风格" -#: src/app/main/ui/workspace/libraries.cljs:74, src/app/main/ui/workspace/libraries.cljs:91 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.components" msgstr "%s个组件" -#: src/app/main/ui/workspace/libraries.cljs:215 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.file-library" msgstr "文档库" -#: src/app/main/ui/workspace/libraries.cljs:77, src/app/main/ui/workspace/libraries.cljs:95 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.graphics" msgstr "%s个图形" -#: src/app/main/ui/workspace/libraries.cljs:209 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.in-this-file" msgstr "本文档中的库" -#: src/app/main/ui/workspace/libraries.cljs:526, src/app/main/ui/workspace/libraries.cljs:531 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.libraries" msgstr "库" #: src/app/main/ui/workspace/libraries.cljs -#, unused msgid "workspace.libraries.library" msgstr "库" -#: src/app/main/ui/workspace/libraries.cljs:382 -msgid "workspace.libraries.library-updates" -msgstr "共享库更新" - -#: src/app/main/ui/workspace/libraries.cljs:290 -msgid "workspace.libraries.loading" -msgstr "加载中…" - -#: src/app/main/ui/workspace/libraries.cljs:380 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.no-libraries-need-sync" msgstr "没有需要更新的共享库" -#: src/app/main/ui/workspace/libraries.cljs:299 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.no-matches-for" msgstr "没有找到“%s”的匹配项" -#: src/app/main/ui/workspace/libraries.cljs:296 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.no-shared-libraries-available" msgstr "没有可用的共享库" -#: src/app/main/ui/workspace/libraries.cljs:260 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.search-shared-libraries" msgstr "搜索共享库" -#: src/app/main/ui/workspace/libraries.cljs:256 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.shared-libraries" msgstr "共享库" -#: src/app/main/ui/workspace/libraries.cljs:282 -msgid "workspace.libraries.shared-library-btn" -msgstr "连接共享库" - -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:308 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.libraries.text.multiple-typography" msgstr "复合排版" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:311 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.libraries.text.multiple-typography-tooltip" msgstr "断开所有排版的链接" -#: src/app/main/ui/workspace/libraries.cljs:83, src/app/main/ui/workspace/libraries.cljs:103 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.typography" msgstr "%s个排版" -#: src/app/main/ui/workspace/libraries.cljs:249 -msgid "workspace.libraries.unlink-library-btn" -msgstr "断开共享库" - -#: src/app/main/ui/workspace/libraries.cljs:402 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.update" msgstr "更新" -#: src/app/main/ui/workspace/libraries.cljs:477 +#: src/app/main/data/workspace/libraries.cljs msgid "workspace.libraries.update.see-all-changes" msgstr "查看所有修改" -#: src/app/main/ui/workspace/libraries.cljs:536 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.updates" msgstr "更新" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:737 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.add-interaction" msgstr "单击 + 按钮以添加交互。" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:86, src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:102 +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs msgid "workspace.options.blur-options.title" msgstr "模糊" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:85 +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs msgid "workspace.options.blur-options.title.group" msgstr "编组模糊" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:84 +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs msgid "workspace.options.blur-options.title.multiple" msgstr "选项模糊" -#: src/app/main/ui/workspace/sidebar/options/page.cljs:32, src/app/main/ui/workspace/sidebar/options/page.cljs:39 +#: src/app/main/ui/workspace/sidebar/options/page.cljs msgid "workspace.options.canvas-background" msgstr "画布背景" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:548 msgid "workspace.options.clip-content" msgstr "剪辑内容" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:600, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:605 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs msgid "workspace.options.component" msgstr "组件" -#: src/app/main/ui/viewer/inspect/annotation.cljs:19, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:181 msgid "workspace.options.component.annotation" msgstr "注释" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:610 msgid "workspace.options.component.copy" msgstr "复制" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:173 msgid "workspace.options.component.create-annotation" msgstr "创建注释" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:172 msgid "workspace.options.component.edit-annotation" msgstr "编辑注释" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:427 -msgid "workspace.options.component.swap" -msgstr "交换组件" - -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:471 msgid "workspace.options.component.swap.empty" msgstr "你的库中还没有素材" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:163 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints" msgstr "限制条件" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:150 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.bottom" msgstr "底部固定" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:141, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:152 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.center" msgstr "居中" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:229 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.fix-when-scrolling" msgstr "滚动时保持固定" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:138 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.left" msgstr "靠左固定" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:140 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.leftright" msgstr "左右固定" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:139 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.right" msgstr "靠右固定" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:142, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:153 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.scale" msgstr "跟随缩放" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:149 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.top" msgstr "顶部固定" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:151 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.topbottom" msgstr "上下固定" -#: src/app/main/ui/workspace/sidebar/options.cljs:112 +#: src/app/main/ui/workspace/sidebar/options.cljs msgid "workspace.options.design" msgstr "设计" -#: src/app/main/ui/viewer/inspect/exports.cljs:139 +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, +#: src/app/main/ui/inspect/exports.cljs msgid "workspace.options.export" msgstr "导出" -#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, +#: src/app/main/ui/inspect/exports.cljs msgid "workspace.options.export-multiple" msgstr "导出已选择" -#: src/app/main/ui/viewer/inspect/exports.cljs:195, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:237 +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, +#: src/app/main/ui/inspect/exports.cljs msgid "workspace.options.export-object" msgid_plural "workspace.options.export-object" msgstr[0] "输出1个元素" msgstr[1] "输出%s元素" -#: src/app/main/ui/viewer/inspect/exports.cljs:178, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:219 +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs msgid "workspace.options.export.suffix" msgstr "后缀" -#: src/app/main/ui/export.cljs:240 +#: 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.exporting-complete" msgstr "导出完成" -#: src/app/main/ui/export.cljs:172, src/app/main/ui/export.cljs:241, src/app/main/ui/viewer/inspect/exports.cljs:194, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:236 +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, +#: src/app/main/ui/inspect/exports.cljs msgid "workspace.options.exporting-object" msgstr "正在导出…" -#: src/app/main/ui/export.cljs:239 +#: 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.exporting-object-error" msgstr "导出失败" -#: src/app/main/ui/export.cljs:242 +#: 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.exporting-object-slow" msgstr "导出速度意外缓慢" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:49, src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:174 +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs msgid "workspace.options.fill" msgstr "填充" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:178 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.flows.add-flow-start" msgstr "增加流程起点" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:174 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.flows.flow" msgstr "流程" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -#, unused msgid "workspace.options.flows.flow-start" msgstr "流程起点" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:161 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.flows.flow-starts" msgstr "所有流程起点" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:29 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.auto" msgstr "自动" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:157 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.column" msgstr "列" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.grid-title" msgstr "网格" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:196, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:237 msgid "workspace.options.grid.params.color" msgstr "颜色" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.params.columns" msgstr "列" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:259 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.gutter" msgstr "栅格间隔" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:246 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.height" msgstr "高" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:270 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.margin" msgstr "外边距" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.params.rows" msgstr "行" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:216, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:290 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.set-default" msgstr "设为默认" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.params.size" msgstr "尺寸" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.params.type" msgstr "类型" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:231 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.bottom" msgstr "底" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:229 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.center" msgstr "居中" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:228 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.left" msgstr "左" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:232 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.right" msgstr "右" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:225 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.stretch" msgstr "拉伸" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:227 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.top" msgstr "顶" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:211, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:288 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.use-default" msgstr "使用默认" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:247 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.width" msgstr "宽" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:158 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.row" msgstr "行" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:156 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.square" msgstr "正方形" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:48 +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs msgid "workspace.options.group-fill" msgstr "编组填充" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:42 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.group-stroke" msgstr "编组边框" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:310 -msgid "workspace.options.guides.title" -msgstr "参考线" - -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:406 msgid "workspace.options.height" msgstr "高度" -#: src/app/main/ui/workspace/sidebar/options.cljs:161 msgid "workspace.options.inspect" msgstr "检查" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:468 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-action" msgstr "执行" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:41, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:367 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-after-delay" msgstr "延迟后" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:614 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-animation" msgstr "动画" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:406 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-animation-dissolve" msgstr "解散" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:405 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-animation-none" msgstr "无" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:412 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-animation-push" msgstr "推送" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:407 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-animation-slide" msgstr "滑动" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:391 msgid "workspace.options.interaction-auto" msgstr "自动" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:604 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-background" msgstr "添加背景覆盖" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:590 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-close-outside" msgstr "点击外部时关闭" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:372 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-close-overlay" msgstr "关闭覆盖" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:56 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-close-overlay-dest" msgstr "关闭遮罩层: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:456 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-delay" msgstr "延迟" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:478 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-destination" msgstr "目的地" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:661 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-duration" msgstr "持续时间" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:674 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing" msgstr "平滑" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:416 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing-ease" msgstr "缓解" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:417 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing-ease-in" msgstr "缓入" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:419 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing-ease-in-out" msgstr "缓进缓出" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:418 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing-ease-out" msgstr "缓出" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:415 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing-linear" msgstr "线性" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -#, unused msgid "workspace.options.interaction-in" msgstr "在" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:39, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:364 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-mouse-enter" msgstr "鼠标进入" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:40, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:365 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-mouse-leave" msgstr "鼠标离开" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:458, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:459, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:464, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:663, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:665, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:669 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-ms" msgstr "ms" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:369 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-navigate-to" msgstr "导航至" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:50 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-navigate-to-dest" msgstr "导航到: %s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:51, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:53, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:55, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:380 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-none" msgstr "(未设定)" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:691 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-offset-effect" msgstr "偏移效果" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:35, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:360 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-on-click" msgstr "点击时" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:370 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-open-overlay" msgstr "打开叠加层" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:52 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-open-overlay-dest" msgstr "打开覆盖:%s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:59, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:374 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-open-url" msgstr "打开网址" #: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs -#, unused msgid "workspace.options.interaction-out" msgstr "外" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:403 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-bottom-center" msgstr "底部居中" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:401 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-bottom-left" msgstr "左下角" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:402 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-bottom-right" msgstr "右下角" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:397 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-center" msgstr "居中" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:396 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-manual" msgstr "手册" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:400 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-top-center" msgstr "顶部居中" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:398 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-top-left" msgstr "左上角" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:399 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-top-right" msgstr "右上角" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:524 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-position" msgstr "位置" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:494 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-preserve-scroll" msgstr "保留滚动位置" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:58, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:373 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-prev-screen" msgstr "上一个屏幕" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:515 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-relative-to" msgstr "相对于" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:57, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:379, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:393, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:394 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-self" msgstr "自己" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:371 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-toggle-overlay" msgstr "切换覆盖层" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:54 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-toggle-overlay-dest" msgstr "切换覆盖:%s" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:445 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-trigger" msgstr "触发器" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:503 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-url" msgstr "URL" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:37, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:362 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-while-hovering" msgstr "悬停时" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:38, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:363 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-while-pressing" msgstr "按下时" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:724 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interactions" msgstr "交互" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:137 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.color" msgstr "颜色" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:126 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.color-burn" msgstr "颜色加深" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:129 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.color-dodge" msgstr "颜色减淡" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:124 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.darken" msgstr "变暗" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:133 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.difference" msgstr "差值" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:134 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.exclusion" msgstr "排除" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:132 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.hard-light" msgstr "强光" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:135 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.hue" msgstr "色相" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:127 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.lighten" msgstr "变亮" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:138 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.luminosity" msgstr "亮度" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:125 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.multiply" msgstr "正片叠底" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:123 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.normal" msgstr "正常" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:130 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.overlay" msgstr "叠加" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:136 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.saturation" msgstr "饱和度" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:128 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.screen" msgstr "滤色" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:131 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.soft-light" msgstr "柔光" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -#, unused msgid "workspace.options.layer-options.title" msgstr "图层" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -#, unused msgid "workspace.options.layer-options.title.group" msgstr "图层组" #: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs -#, unused msgid "workspace.options.layer-options.title.multiple" msgstr "已选中的图层" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout-item.advanced-ops" msgstr "高级选项" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:564 +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs msgid "workspace.options.layout-item.layout-item-max-h" msgstr "最大高度" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:531 +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs msgid "workspace.options.layout-item.layout-item-max-w" msgstr "最大宽度" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:548 +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs msgid "workspace.options.layout-item.layout-item-min-h" msgstr "最小高度" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:515 +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs msgid "workspace.options.layout-item.layout-item-min-w" msgstr "最小宽度" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout-item.title.layout-item-max-h" msgstr "最大高度" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout-item.title.layout-item-max-w" msgstr "最大宽度" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout-item.title.layout-item-min-h" msgstr "最小高度" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout-item.title.layout-item-min-w" msgstr "最小宽度" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.bottom" msgstr "底部" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.direction.column" msgstr "列" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.direction.column-reverse" msgstr "反向列" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.direction.row" msgstr "行" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.direction.row-reverse" msgstr "反向行" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.gap" msgstr "差距" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.left" msgstr "左" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout.margin" msgstr "外边距" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout.margin-all" msgstr "所有方向" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout.margin-simple" msgstr "简易外边距" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.packed" msgstr "收起" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.padding" msgstr "内边距" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.padding-all" msgstr "所有方向" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.padding-simple" msgstr "简易内边距" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.right" msgstr "右" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.space-around" msgstr "周围留空" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.space-between" msgstr "间隔留空" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.top" msgstr "顶部" -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:146 +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs msgid "workspace.options.more-colors" msgstr "更多颜色" -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:123 +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs msgid "workspace.options.more-lib-colors" msgstr "更多共享库颜色" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:161 msgid "workspace.options.opacity" msgstr "不透明度" -#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.position" msgstr "位置" -#: src/app/main/ui/workspace/sidebar/options.cljs:157 +#: src/app/main/ui/workspace/sidebar/options.cljs msgid "workspace.options.prototype" msgstr "原型" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:469, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:481 msgid "workspace.options.radius" msgstr "圆角" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:513 +#: 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:522 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.radius-bottom-right" msgstr "右下角" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:495 +#: 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:504 +#: 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:532 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.radius.all-corners" msgstr "所有角" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:533 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.radius.single-corners" msgstr "独立的角" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:183 msgid "workspace.options.recent-fonts" msgstr "最近的" -#: src/app/main/ui/export.cljs:284 +#: 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 "重试" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:451 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.rotation" msgstr "旋转" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:180 msgid "workspace.options.search-font" msgstr "搜索字体" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:741 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.select-a-shape" msgstr "选择一个形状、画板或编组,拖至另一个画板,以创建关联。" -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:105 +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs msgid "workspace.options.selection-color" msgstr "已选颜色" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:47 +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs msgid "workspace.options.selection-fill" msgstr "选项填充" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:41 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.selection-stroke" msgstr "选项边框" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:40, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:198, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:200 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.blur" msgstr "模糊" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:238 msgid "workspace.options.shadow-options.color" msgstr "阴影颜色" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:144 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.drop-shadow" msgstr "外阴影" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:145 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.inner-shadow" msgstr "内阴影" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:38, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:186 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.offsetx" msgstr "X" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:39, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:224 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.offsety" msgstr "Y" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:41, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:211, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:213 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.spread" msgstr "展开" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:296 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.title" msgstr "阴影" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:295 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.title.group" msgstr "编组阴影" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:294 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.title.multiple" msgstr "选项阴影" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:193 +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs msgid "workspace.options.show-fill-on-export" msgstr "在导出中显示" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:562 msgid "workspace.options.show-in-viewer" msgstr "在预览模式显示" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:162 +#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.size" msgstr "尺寸" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:355 +#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs msgid "workspace.options.size-presets" msgstr "尺寸预设" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:43 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke" msgstr "边框" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -#, unused msgid "workspace.options.stroke-cap.circle-marker" msgstr "圆形标记" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:129 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.circle-marker-short" msgstr "圆形" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -#, unused msgid "workspace.options.stroke-cap.diamond-marker" msgstr "钻石标记" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:130 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.diamond-marker-short" msgstr "钻石" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -#, unused msgid "workspace.options.stroke-cap.line-arrow" msgstr "箭头" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:126 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.line-arrow-short" msgstr "箭头" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:124 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.none" msgstr "无边框" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:132 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.round" msgstr "圆头" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:133 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.square" msgstr "方头" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -#, unused msgid "workspace.options.stroke-cap.square-marker" msgstr "方形标记" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:128 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.square-marker-short" msgstr "矩形" #: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs -#, unused msgid "workspace.options.stroke-cap.triangle-arrow" msgstr "三角箭头" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:127 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.triangle-arrow-short" msgstr "三角形" -#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:192 msgid "workspace.options.stroke-color" msgstr "线条颜色" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:165 msgid "workspace.options.stroke-width" msgstr "线宽" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:87 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.center" msgstr "居中" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:105 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.dashed" msgstr "长虚线" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:104 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.dotted" msgstr "虚线" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:88 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.inner" msgstr "内部" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:106 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.mixed" msgstr "混合" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:89 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.outer" msgstr "外部" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:103 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.solid" msgstr "实线" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:115 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.align-bottom" msgstr "底部对齐" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:111 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.align-middle" msgstr "垂直居中" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:107 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.align-top" msgstr "顶部对齐" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:82 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.direction-ltr" msgstr "从左到右" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:87 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.direction-rtl" msgstr "从右到左" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:149 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.grow-auto-height" msgstr "自动高度" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:145 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.grow-auto-width" msgstr "自动宽度" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:141 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.grow-fixed" msgstr "固定" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:381 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.options.text-options.letter-spacing" msgstr "字距" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:364 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.options.text-options.line-height" msgstr "行高" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused msgid "workspace.options.text-options.lowercase" msgstr "小写" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs, +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.options.text-options.none" msgstr "无" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:176 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.strikethrough" msgstr "删除线 (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:51 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.text-align-center" msgstr "水平居中 (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:59 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.text-align-justify" msgstr "两端对齐 (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:47 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.text-align-left" msgstr "靠左对齐 (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:55 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.text-align-right" msgstr "靠右对齐 (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:189 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.title" msgstr "文本" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:188 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.title-group" msgstr "编组文本" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:187 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.title-selection" msgstr "选项文本" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused msgid "workspace.options.text-options.titlecase" msgstr "首字母大写" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:171 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.underline" msgstr "下划线 (%s)" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused msgid "workspace.options.text-options.uppercase" msgstr "大写" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:745 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.use-play-button" msgstr "点击页面顶端的播放按钮预览原型。" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:395 msgid "workspace.options.width" msgstr "宽度" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:427 msgid "workspace.options.x" msgstr "X轴" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:438 msgid "workspace.options.y" msgstr "Y轴" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:167 msgid "workspace.path.actions.add-node" msgstr "添加节点(%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:174 msgid "workspace.path.actions.delete-node" msgstr "删除节点(%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:152 msgid "workspace.path.actions.draw-nodes" msgstr "绘制节点(%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:189 msgid "workspace.path.actions.join-nodes" msgstr "连接节点(%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:204 msgid "workspace.path.actions.make-corner" msgstr "转锐角 (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:211 msgid "workspace.path.actions.make-curve" msgstr "转圆角 (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:182 msgid "workspace.path.actions.merge-nodes" msgstr "合并节点(%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:159 msgid "workspace.path.actions.move-nodes" msgstr "移动节点(%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:196 msgid "workspace.path.actions.separate-nodes" msgstr "拆分节点(%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:218 msgid "workspace.path.actions.snap-nodes" msgstr "对接节点 (%s)" -#: src/app/main/ui/workspace/context_menu.cljs:441 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.add-flex" msgstr "添加弹性布局" -#: src/app/main/ui/workspace/context_menu.cljs:445 msgid "workspace.shape.menu.add-grid" msgstr "添加网格布局" -#: src/app/main/ui/workspace/context_menu.cljs:193 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.back" msgstr "移至底层" -#: src/app/main/ui/workspace/context_menu.cljs:190 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.backward" msgstr "向下移动一层" -#: src/app/main/ui/workspace/context_menu.cljs:139 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.copy" msgstr "复制" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:427 msgid "workspace.shape.menu.create-annotation" msgstr "创建注释" -#: src/app/main/ui/workspace/context_menu.cljs:275 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.create-artboard-from-selection" msgstr "转为画板" -#: src/app/main/ui/workspace/context_menu.cljs:465 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.create-component" msgstr "创建组件" -#: src/app/main/ui/workspace/context_menu.cljs:469 msgid "workspace.shape.menu.create-multiple-components" msgstr "创建多个组件" -#: src/app/main/ui/workspace/context_menu.cljs:142 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.cut" msgstr "剪切" -#: src/app/main/ui/workspace/context_menu.cljs:486 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.delete" msgstr "删除" -#: src/app/main/ui/workspace/context_menu.cljs:391 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.delete-flow-start" msgstr "删除流程起点" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:432 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.detach-instance" msgstr "解绑实例" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:431 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.detach-instances-in-bulk" msgstr "解绑实例" -#: src/app/main/ui/workspace/context_menu.cljs:335, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:75 msgid "workspace.shape.menu.difference" msgstr "差集" -#: src/app/main/ui/workspace/context_menu.cljs:148 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.duplicate" msgstr "创建副本" -#: src/app/main/ui/workspace/context_menu.cljs:321 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.edit" msgstr "编辑" -#: src/app/main/ui/workspace/context_menu.cljs:341 msgid "workspace.shape.menu.exclude" msgstr "相减" -#: src/app/main/ui/workspace/context_menu.cljs:348, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:89 msgid "workspace.shape.menu.flatten" msgstr "展平" -#: src/app/main/ui/workspace/context_menu.cljs:208 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.flip-horizontal" msgstr "水平翻转" -#: src/app/main/ui/workspace/context_menu.cljs:204 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.flip-vertical" msgstr "垂直翻转" -#: src/app/main/ui/workspace/context_menu.cljs:394 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.flow-start" msgstr "流程起点" -#: src/app/main/ui/workspace/context_menu.cljs:184 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.forward" msgstr "向上移动一层" -#: src/app/main/ui/workspace/context_menu.cljs:187 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.front" msgstr "移至顶层" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.go-main" msgstr "前往主组件文档" -#: src/app/main/ui/workspace/context_menu.cljs:261 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.group" msgstr "编组" -#: src/app/main/ui/workspace/context_menu.cljs:363, src/app/main/ui/workspace/sidebar/layer_item.cljs:145 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.hide" msgstr "隐藏" -#: src/app/main/ui/workspace/context_menu.cljs:548, src/app/main/ui/workspace/main_menu.cljs:408 msgid "workspace.shape.menu.hide-ui" msgstr "显示/隐藏界面" -#: src/app/main/ui/workspace/context_menu.cljs:338 msgid "workspace.shape.menu.intersection" msgstr "差集" -#: src/app/main/ui/workspace/context_menu.cljs:371, src/app/main/ui/workspace/sidebar/layer_item.cljs:153 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.lock" msgstr "锁定" -#: src/app/main/ui/workspace/context_menu.cljs:266 +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.mask" msgstr "蒙板" -#: src/app/main/ui/workspace/context_menu.cljs:145, src/app/main/ui/workspace/context_menu.cljs:545 +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.paste" msgstr "粘贴" -#: src/app/main/ui/workspace/context_menu.cljs:331 msgid "workspace.shape.menu.path" msgstr "路径" -#: src/app/main/ui/workspace/context_menu.cljs:432 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.remove-flex" msgstr "删除弹性布局" -#: src/app/main/ui/workspace/context_menu.cljs:435 -msgid "workspace.shape.menu.remove-grid" -msgstr "移除网格布局" - -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:436 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.reset-overrides" msgstr "还原自定义选项" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:439 msgid "workspace.shape.menu.restore-main" msgstr "恢复主要组件" -#: src/app/main/ui/workspace/context_menu.cljs:174 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.select-layer" msgstr "选择图层" -#: src/app/main/ui/workspace/context_menu.cljs:360, src/app/main/ui/workspace/sidebar/layer_item.cljs:144 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.show" msgstr "显示" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:424 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.show-in-assets" msgstr "在素材面板中显示" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:442, src/app/main/ui/workspace/sidebar/assets/components.cljs:586 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.show-main" msgstr "显示主组件" -#: src/app/main/ui/workspace/context_menu.cljs:221 msgid "workspace.shape.menu.thumbnail-remove" msgstr "移除缩略图" -#: src/app/main/ui/workspace/context_menu.cljs:223 msgid "workspace.shape.menu.thumbnail-set" msgstr "设为缩略图" -#: src/app/main/ui/workspace/context_menu.cljs:326 msgid "workspace.shape.menu.transform-to-path" msgstr "转换为路径" -#: src/app/main/ui/workspace/context_menu.cljs:257 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.ungroup" msgstr "取消编组" -#: src/app/main/ui/workspace/context_menu.cljs:332, src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:70 msgid "workspace.shape.menu.union" msgstr "相加" -#: src/app/main/ui/workspace/context_menu.cljs:368, src/app/main/ui/workspace/sidebar/layer_item.cljs:152 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.unlock" msgstr "取消锁定" -#: src/app/main/ui/workspace/context_menu.cljs:271 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.unmask" msgstr "取消蒙版" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs -#, unused +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.update-components-in-bulk" msgstr "更新主要组件" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:445 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, +#: src/app/main/ui/workspace/context_menu.cljs, +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.update-main" msgstr "更新主组件" -#: src/app/main/ui/components/tab_container.cljs:50 msgid "workspace.sidebar.collapse" msgstr "收起侧边栏" -#: src/app/main/ui/workspace/sidebar/collapsable_button.cljs:26 msgid "workspace.sidebar.expand" msgstr "展开侧边栏" -#: src/app/main/ui/workspace/right_header.cljs:231, src/app/main/ui/workspace/right_header.cljs:232 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.sidebar.history" msgstr "历史(%s)" -#: src/app/main/ui/workspace/sidebar/layers.cljs:522, src/app/main/ui/workspace/sidebar.cljs:100 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.sidebar.layers" msgstr "图层" -#: src/app/main/ui/workspace/sidebar/layers.cljs:308, src/app/main/ui/workspace/sidebar/layers.cljs:380 msgid "workspace.sidebar.layers.components" msgstr "组件" -#: src/app/main/ui/workspace/sidebar/layers.cljs:305, src/app/main/ui/workspace/sidebar/layers.cljs:338 msgid "workspace.sidebar.layers.frames" msgstr "画板" -#: src/app/main/ui/workspace/sidebar/layers.cljs:306, src/app/main/ui/workspace/sidebar/layers.cljs:352 msgid "workspace.sidebar.layers.groups" msgstr "编组" -#: src/app/main/ui/workspace/sidebar/layers.cljs:310, src/app/main/ui/workspace/sidebar/layers.cljs:408 msgid "workspace.sidebar.layers.images" msgstr "图片" -#: src/app/main/ui/workspace/sidebar/layers.cljs:307, src/app/main/ui/workspace/sidebar/layers.cljs:366 msgid "workspace.sidebar.layers.masks" msgstr "遮罩" -#: src/app/main/ui/workspace/sidebar/layers.cljs:289 msgid "workspace.sidebar.layers.search" msgstr "搜索图层" -#: src/app/main/ui/workspace/sidebar/layers.cljs:311, src/app/main/ui/workspace/sidebar/layers.cljs:422 msgid "workspace.sidebar.layers.shapes" msgstr "形状" -#: src/app/main/ui/workspace/sidebar/layers.cljs:309, src/app/main/ui/workspace/sidebar/layers.cljs:394 msgid "workspace.sidebar.layers.texts" msgstr "文本" -#: src/app/main/ui/viewer/inspect/attributes/svg.cljs:56, src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs:91 +#: src/app/main/ui/workspace/sidebar/options/menus/svg_attrs.cljs, +#: src/app/main/ui/inspect/attributes/svg.cljs msgid "workspace.sidebar.options.svg-attrs.title" msgstr "已导入SVG属性" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs:217 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs msgid "workspace.sidebar.sitemap" msgstr "页面" -#: src/app/main/ui/workspace/left_header.cljs:91 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.sitemap" msgstr "站点地图" -#: src/app/main/ui/workspace/sidebar.cljs:120 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.assets" msgstr "素材" -#: src/app/main/ui/workspace/palette.cljs:165, src/app/main/ui/workspace/palette.cljs:166 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.color-palette" msgstr "调色盘(%s)" -#: src/app/main/ui/workspace/right_header.cljs:220, src/app/main/ui/workspace/right_header.cljs:221 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.comments" msgstr "评论(%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:180, src/app/main/ui/workspace/top_toolbar.cljs:181 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.curve" msgstr "曲线(%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:160, src/app/main/ui/workspace/top_toolbar.cljs:161 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.ellipse" msgstr "椭圆(%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:142, src/app/main/ui/workspace/top_toolbar.cljs:143 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.frame" msgstr "画板(%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:59, src/app/main/ui/workspace/top_toolbar.cljs:60 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.image" msgstr "图片(%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:132, src/app/main/ui/workspace/top_toolbar.cljs:133 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.move" msgstr "移动 (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:189, src/app/main/ui/workspace/top_toolbar.cljs:190 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.path" msgstr "路径(%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:151, src/app/main/ui/workspace/top_toolbar.cljs:152 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.rect" msgstr "矩形(%s)" #: src/app/main/ui/workspace/left_toolbar.cljs -#, unused msgid "workspace.toolbar.shortcuts" msgstr "快捷键 (%s)" -#: src/app/main/ui/workspace/top_toolbar.cljs:169, src/app/main/ui/workspace/top_toolbar.cljs:170 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.text" msgstr "文本(%s)" -#: src/app/main/ui/workspace/palette.cljs:173, src/app/main/ui/workspace/palette.cljs:174 +#: src/app/main/ui/workspace/left_toolbar.cljs msgid "workspace.toolbar.text-palette" msgstr "排字式样 (%s)" -#: src/app/main/ui/workspace/viewport/top_bar.cljs:38 msgid "workspace.top-bar.read-only.done" msgstr "完成" -#: src/app/main/ui/workspace/viewport/top_bar.cljs:35 -#, markdown -msgid "workspace.top-bar.view-only" -msgstr "**检查代码**(仅查看)" - -#: src/app/main/ui/workspace/sidebar/history.cljs:342 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.empty" msgstr "目前没有历史修改" -#: src/app/main/ui/workspace/sidebar/history.cljs:147 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.entry.delete" msgstr "%s已删除" -#: src/app/main/ui/workspace/sidebar/history.cljs:146 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.entry.modify" msgstr "%s已修改" -#: src/app/main/ui/workspace/sidebar/history.cljs:148 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.entry.move" msgstr "对象已移动" -#: src/app/main/ui/workspace/sidebar/history.cljs:111 msgid "workspace.undo.entry.multiple.circle" msgstr "圆" -#: src/app/main/ui/workspace/sidebar/history.cljs:112 msgid "workspace.undo.entry.multiple.color" msgstr "颜色素材" -#: src/app/main/ui/workspace/sidebar/history.cljs:113 msgid "workspace.undo.entry.multiple.component" msgstr "组件" -#: src/app/main/ui/workspace/sidebar/history.cljs:114 msgid "workspace.undo.entry.multiple.curve" msgstr "曲线" -#: src/app/main/ui/workspace/sidebar/history.cljs:115 msgid "workspace.undo.entry.multiple.frame" msgstr "画板" -#: src/app/main/ui/workspace/sidebar/history.cljs:116 msgid "workspace.undo.entry.multiple.group" msgstr "编组" -#: src/app/main/ui/workspace/sidebar/history.cljs:117 msgid "workspace.undo.entry.multiple.media" msgstr "图形素材" -#: src/app/main/ui/workspace/sidebar/history.cljs:118 msgid "workspace.undo.entry.multiple.multiple" msgstr "对象" -#: src/app/main/ui/workspace/sidebar/history.cljs:119 msgid "workspace.undo.entry.multiple.page" msgstr "页面" -#: src/app/main/ui/workspace/sidebar/history.cljs:120 msgid "workspace.undo.entry.multiple.path" msgstr "路径" -#: src/app/main/ui/workspace/sidebar/history.cljs:121 msgid "workspace.undo.entry.multiple.rect" msgstr "矩形" -#: src/app/main/ui/workspace/sidebar/history.cljs:122 msgid "workspace.undo.entry.multiple.shape" msgstr "形状" -#: src/app/main/ui/workspace/sidebar/history.cljs:123 msgid "workspace.undo.entry.multiple.text" msgstr "文本" -#: src/app/main/ui/workspace/sidebar/history.cljs:124 msgid "workspace.undo.entry.multiple.typography" msgstr "排版素材" -#: src/app/main/ui/workspace/sidebar/history.cljs:145 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.entry.new" msgstr "新建%s" -#: src/app/main/ui/workspace/sidebar/history.cljs:125 msgid "workspace.undo.entry.single.circle" msgstr "圆" -#: src/app/main/ui/workspace/sidebar/history.cljs:126 msgid "workspace.undo.entry.single.color" msgstr "颜色素材" -#: src/app/main/ui/workspace/sidebar/history.cljs:127 msgid "workspace.undo.entry.single.component" msgstr "组件" -#: src/app/main/ui/workspace/sidebar/history.cljs:128 msgid "workspace.undo.entry.single.curve" msgstr "曲线" -#: src/app/main/ui/workspace/sidebar/history.cljs:129 msgid "workspace.undo.entry.single.frame" msgstr "画板" -#: src/app/main/ui/workspace/sidebar/history.cljs:130 msgid "workspace.undo.entry.single.group" msgstr "编组" -#: src/app/main/ui/workspace/sidebar/history.cljs:131 msgid "workspace.undo.entry.single.image" msgstr "图片" -#: src/app/main/ui/workspace/sidebar/history.cljs:132 msgid "workspace.undo.entry.single.media" msgstr "图形素材" -#: src/app/main/ui/workspace/sidebar/history.cljs:133 msgid "workspace.undo.entry.single.multiple" msgstr "对象" -#: src/app/main/ui/workspace/sidebar/history.cljs:134 msgid "workspace.undo.entry.single.page" msgstr "页面" -#: src/app/main/ui/workspace/sidebar/history.cljs:135 msgid "workspace.undo.entry.single.path" msgstr "路径" -#: src/app/main/ui/workspace/sidebar/history.cljs:136 msgid "workspace.undo.entry.single.rect" msgstr "矩形" -#: src/app/main/ui/workspace/sidebar/history.cljs:137 msgid "workspace.undo.entry.single.shape" msgstr "形状" -#: src/app/main/ui/workspace/sidebar/history.cljs:138 msgid "workspace.undo.entry.single.text" msgstr "文本" -#: src/app/main/ui/workspace/sidebar/history.cljs:139 msgid "workspace.undo.entry.single.typography" msgstr "排版素材" -#: src/app/main/ui/workspace/sidebar/history.cljs:149 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.entry.unknown" msgstr "操作覆盖%s" -#: src/app/main/ui/workspace/sidebar/history.cljs:335 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.title" msgstr "历史" -#: src/app/main/data/workspace/libraries.cljs:1094 +#: src/app/main/data/workspace/libraries.cljs msgid "workspace.updates.dismiss" msgstr "忽略" -#: src/app/main/data/workspace/libraries.cljs:1092 +#: src/app/main/data/workspace/libraries.cljs msgid "workspace.updates.more-info" msgstr "更多信息" -#: src/app/main/data/workspace/libraries.cljs:1090 +#: src/app/main/data/workspace/libraries.cljs msgid "workspace.updates.there-are-updates" msgstr "共享库有更新" -#: src/app/main/data/workspace/libraries.cljs:1097 +#: src/app/main/data/workspace/libraries.cljs msgid "workspace.updates.update" msgstr "更新" -#, unused msgid "workspace.viewport.click-to-close-path" msgstr "单击以闭合路径" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.login-account-title" +msgstr "登录我的账号" + +#: src/app/main/ui/workspace/libraries.cljs +msgid "workspace.libraries.library-updates" +msgstr "共享库更新" + +msgid "workspace.options.component.swap" +msgstr "交换组件" + +msgid "workspace.options.guides.title" +msgstr "参考线" + +#: src/app/main/ui/workspace/header.cljs, +#: src/app/main/ui/dashboard/file_menu.cljs +msgid "modals.delete-unpublish-shared-confirm.activated.hint" +msgid_plural "modals.delete-unpublish-shared-confirm.activated.hint" +msgstr[0] "" +"这个文件中被其他文件引用的素材依然在那(其他文件的现有设计不会被破坏)。" +msgstr[1] "" +"这些文件中被其他文件引用的素材依然在那(其他文件的现有设计不会被破坏)。" + +msgid "dashboard.import.analyze-error.components-v2" +msgstr "文件已启用“组件v2”功能,但这个团队尚未支持该功能。" + +msgid "workspace.header.menu.toggle-dark-theme" +msgstr "切换到深色主题" + +msgid "workspace.header.menu.toggle-light-theme" +msgstr "切换到浅色主题" + +msgid "media.keep-aspect-ratio" +msgstr "保持宽高比" + +msgid "onboarding.team-modal.team-definition" +msgstr "团队是什么?" + +#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs +msgid "settings.select-this-color" +msgstr "选择使用此样式的项目" + +msgid "shortcuts.toggle-snap-guides" +msgstr "吸附到参考线" + +msgid "shortcuts.toggle-snap-ruler-guide" +msgstr "吸附到标尺参考线" + +msgid "shortcuts.toggle-theme" +msgstr "更改主题" + +#: src/app/main/ui/workspace/sidebar/assets/common.cljs +msgid "workspace.assets.sidebar.components" +msgid_plural "workspace.assets.sidebar.components" +msgstr[0] "1个组件" +msgstr[1] "%s个组件" + +msgid "workspace.context-menu.grid-cells.area" +msgstr "新建区域" + +msgid "workspace.context-menu.grid-cells.create-board" +msgstr "新建画板" + +msgid "workspace.context-menu.grid-cells.merge" +msgstr "合并网格" + +msgid "workspace.context-menu.grid-track.column.add-after" +msgstr "在右侧添加一列" + +msgid "workspace.context-menu.grid-track.column.delete-shapes" +msgstr "删除此列及其内容" + +msgid "workspace.context-menu.grid-track.column.duplicate" +msgstr "复制此列" + +msgid "workspace.context-menu.grid-track.row.add-after" +msgstr "在下方添加一行" + +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.menu.enable-snap-ruler-guides" +msgstr "启用“吸附到标尺参考线”" + +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.menu.show-guides" +msgstr "显示参考线" + +msgid "workspace.layout_grid.editor.top-bar.locate.tooltip" +msgstr "定位网格布局" + +#: src/app/main/ui/workspace/libraries.cljs +msgid "workspace.libraries.unlink-library-btn" +msgstr "断开共享库" + +msgid "workspace.top-bar.view-only" +msgstr "**检查代码**(仅查看)" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.login-tagline" +msgstr "Penpot是一款自由开源的设计工具,用于「设计」和「开发」协同" + +msgid "modals.move-shared-confirm.accept" +msgid_plural "modals.move-shared-confirm.accept" +msgstr[0] "移动" +msgstr[1] "移动" + +#: src/app/main/data/users.cljs +msgid "errors.email-domain-not-allowed" +msgstr "不允许使用此域名" + +msgid "modals.move-shared-confirm.message" +msgid_plural "modals.move-shared-confirm.message" +msgstr[0] "你确定要移动这个共享库吗?" +msgstr[1] "你确定要移动这些共享库吗?" + +msgid "modals.move-shared-confirm.title" +msgid_plural "modals.move-shared-confirm.title" +msgstr[0] "移动共享库" +msgstr[1] "移动共享库" + +msgid "shortcuts.toggle-guides" +msgstr "显示/隐藏参考线" + +#: src/app/main/ui/workspace/sidebar/assets.cljs +msgid "workspace.assets.filter" +msgstr "过滤器" + +msgid "shortcuts.toggle-layout-grid" +msgstr "添加/移除网格布局" + +msgid "shortcuts.toggle-rulers" +msgstr "显示/隐藏标尺" + +#: src/app/main/ui/workspace/sidebar/assets.cljs +msgid "workspace.assets.sort" +msgstr "排序" + +msgid "workspace.context-menu.grid-track.column.add-before" +msgstr "在左侧添加一列" + +#: src/app/main/ui/workspace/context_menu.cljs +msgid "workspace.shape.menu.remove-grid" +msgstr "移除网格布局" + +msgid "workspace.context-menu.grid-track.column.delete" +msgstr "删除此列" + +msgid "workspace.context-menu.grid-track.row.duplicate" +msgstr "复制此行" + +msgid "workspace.context-menu.grid-track.row.add-before" +msgstr "在上方添加一行" + +msgid "workspace.context-menu.grid-track.row.delete" +msgstr "删除此行" + +msgid "workspace.context-menu.grid-track.row.delete-shapes" +msgstr "删除此行及其内容" + +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.menu.disable-snap-ruler-guides" +msgstr "禁用“吸附到标尺参考线”" + +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.menu.hide-guides" +msgstr "隐藏参考线" + +#: src/app/main/ui/workspace/libraries.cljs +msgid "workspace.libraries.loading" +msgstr "加载中…" + +#: src/app/main/ui/workspace/libraries.cljs +msgid "workspace.libraries.shared-library-btn" +msgstr "连接共享库" diff --git a/frontend/translations/zh_Hant.po b/frontend/translations/zh_Hant.po index 849f0325c8..724bddba89 100644 --- a/frontend/translations/zh_Hant.po +++ b/frontend/translations/zh_Hant.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "PO-Revision-Date: 2024-06-17 08:07+0000\n" "Last-Translator: Anonymous \n" -"Language-Team: Chinese (Traditional) " -"\n" +"Language-Team: Chinese (Traditional) \n" "Language: zh_Hant\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" @@ -11,501 +11,353 @@ msgstr "" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Weblate 5.6-dev\n" -#: src/app/main/ui/auth/register.cljs:151, src/app/main/ui/viewer/login.cljs:104 +#: src/app/main/ui/auth/register.cljs msgid "auth.already-have-account" msgstr "已經有帳號了嗎?" -#: src/app/main/ui/auth/register.cljs:299 +#: src/app/main/ui/auth/register.cljs msgid "auth.check-your-email" msgstr "檢查你的信箱,點擊信中連結來驗證並開始使用 Penpot。" -#: src/app/main/ui/auth/recovery.cljs:78 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.confirm-password" msgstr "確認密碼" -#: src/app/main/ui/auth/register.cljs:163 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.create-demo-account" msgstr "建立展示帳號" #: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs -#, unused msgid "auth.create-demo-profile" msgstr "只是想試試看嗎?" -#: src/app/main/ui/auth/login.cljs:43 +#: src/app/main/ui/auth/register.cljs msgid "auth.demo-warning" msgstr "此服務僅用於展示,請勿用於實際工作。專案內容將被定期清除。" -#: src/app/main/ui/auth/login.cljs:189, src/app/main/ui/viewer/login.cljs:90 +#: src/app/main/ui/auth/login.cljs msgid "auth.forgot-password" msgstr "忘記密碼?" -#: src/app/main/ui/auth/register.cljs:254 +#: src/app/main/ui/auth/register.cljs msgid "auth.fullname" msgstr "全名" -#: src/app/main/ui/auth/login.cljs:282 -msgid "auth.login-account-title" -msgstr "登入我的帳號" - -#: src/app/main/ui/auth/register.cljs:155, src/app/main/ui/viewer/login.cljs:107 +#: src/app/main/ui/auth/register.cljs +#, fuzzy msgid "auth.login-here" msgstr "在此登入" -#: src/app/main/ui/auth/login.cljs:195 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-submit" msgstr "登入" -#: src/app/main/ui/auth/login.cljs:285 -msgid "auth.login-tagline" -msgstr "Penpot 是用於設計與開發協作,免費且開源的設計工具" - -#: src/app/main/ui/auth/login.cljs:222 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-github-submit" msgstr "GitHub" -#: src/app/main/ui/auth/login.cljs:228 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-gitlab-submit" msgstr "GitLab" -#: src/app/main/ui/auth/login.cljs:216 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-google-submit" msgstr "Google" -#: src/app/main/ui/auth/login.cljs:201 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-ldap-submit" msgstr "LDAP" -#: src/app/main/ui/auth/login.cljs:234, src/app/main/ui/auth/login.cljs:255 +#: src/app/main/ui/auth/login.cljs msgid "auth.login-with-oidc-submit" msgstr "OpenID" -#: src/app/main/ui/auth/register.cljs:217, src/app/main/ui/dashboard/team_form.cljs:76, src/app/main/ui/onboarding/team_choice.cljs:180, src/app/main/ui/settings/access_tokens.cljs:66, src/app/main/ui/settings/feedback.cljs:34, src/app/main/ui/settings/profile.cljs:45, src/app/main/ui/workspace/sidebar/assets/groups.cljs:108 -msgid "auth.name.not-all-space" -msgstr "名稱內必須包含空白以外的文字。" - -#: src/app/main/ui/auth/register.cljs:218, src/app/main/ui/dashboard/team_form.cljs:77, src/app/main/ui/onboarding/team_choice.cljs:181, src/app/main/ui/settings/access_tokens.cljs:67, src/app/main/ui/settings/feedback.cljs:33, src/app/main/ui/settings/profile.cljs:44, src/app/main/ui/workspace/sidebar/assets/groups.cljs:109 -msgid "auth.name.too-long" -msgstr "名稱最多包含 250 個字元。" - -#: src/app/main/ui/auth/recovery.cljs:71 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.new-password" msgstr "輸入新密碼" -#: src/app/main/ui/auth/recovery.cljs:42 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.notifications.invalid-token-error" msgstr "此 Recovery token 是無效的。" -#: src/app/main/ui/auth/recovery.cljs:46 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.notifications.password-changed-successfully" msgstr "已成功更改密碼" -#: src/app/main/ui/auth/recovery_request.cljs:57 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.notifications.profile-not-verified" msgstr "個人檔案尚未驗證,再繼續之前,請先驗證個人檔案。" -#: src/app/main/ui/auth/recovery_request.cljs:40 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.notifications.recovery-token-sent" msgstr "密碼重設連結已寄送至您的信箱。" -#: src/app/main/ui/auth/verify_token.cljs:47 +#: src/app/main/ui/auth/verify_token.cljs msgid "auth.notifications.team-invitation-accepted" msgstr "已成功加入團隊" -#: src/app/main/ui/auth/login.cljs:179, src/app/main/ui/auth/register.cljs:115 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.password" msgstr "密碼" -#: src/app/main/ui/auth/register.cljs:114 +#: src/app/main/ui/auth/register.cljs msgid "auth.password-length-hint" msgstr "至少需要八個字元" -#: src/app/main/ui/auth/recovery.cljs:61, src/app/main/ui/auth/recovery.cljs:62, src/app/main/ui/auth/register.cljs:81, src/app/main/ui/settings/password.cljs:75, src/app/main/ui/settings/password.cljs:76, src/app/main/ui/settings/password.cljs:77 -msgid "auth.password-not-empty" -msgstr "密碼必須包含空白以外的字元。" - -#: src/app/main/ui/auth.cljs:41 msgid "auth.privacy-policy" msgstr "隱私權政策" -#: src/app/main/ui/auth/recovery_request.cljs:88 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-submit" msgstr "復原密碼" -#: src/app/main/ui/auth/recovery_request.cljs:101 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-subtitle" msgstr "我們會寄送一封包含指南的電子郵件給您" -#: src/app/main/ui/auth/recovery_request.cljs:100 +#: src/app/main/ui/auth/recovery_request.cljs msgid "auth.recovery-request-title" msgstr "忘記密碼?" -#: src/app/main/ui/auth/recovery.cljs:82 +#: src/app/main/ui/auth/recovery.cljs msgid "auth.recovery-submit" msgstr "修改密碼" -#: src/app/main/ui/auth/login.cljs:298, src/app/main/ui/viewer/login.cljs:93 +#: src/app/main/ui/auth/login.cljs msgid "auth.register" msgstr "還沒有帳號嗎?" -#: src/app/main/ui/auth/login.cljs:302, src/app/main/ui/auth/register.cljs:121, src/app/main/ui/auth/register.cljs:263, src/app/main/ui/viewer/login.cljs:97 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs msgid "auth.register-submit" msgstr "建立帳號" -#: src/app/main/ui/auth/register.cljs:140 +#: src/app/main/ui/auth/register.cljs msgid "auth.register-title" msgstr "建立帳號" #: src/app/main/ui/auth.cljs -#, unused msgid "auth.sidebar-tagline" msgstr "設計與原型製作的開源解決方案。" -#: src/app/main/ui/auth.cljs:33, src/app/main/ui/dashboard/sidebar.cljs:1022, src/app/main/ui/workspace/main_menu.cljs:150 msgid "auth.terms-of-service" msgstr "服務條款" -#: src/app/main/ui/auth/register.cljs:297 +#: src/app/main/ui/auth/register.cljs msgid "auth.verification-email-sent" msgstr "我們會寄送一封驗證郵件至" -#: src/app/main/ui/onboarding/questions.cljs -#, unused -msgid "branding-illustrations-marketing-pieces" -msgstr "...品牌設計、插畫、行銷素材等。" - -#: src/app/main/ui/workspace/libraries.cljs:228 msgid "common.publish" msgstr "發怖" -#: src/app/main/ui/viewer/share_link.cljs:304, src/app/main/ui/viewer/share_link.cljs:314 msgid "common.share-link.all-users" msgstr "所有 Penpot 用戶" -#: src/app/main/ui/viewer/share_link.cljs:198 msgid "common.share-link.confirm-deletion-link-description" msgstr "確定要移除此連結?如果這麼做,它將不再能被任何人存取" -#: src/app/main/ui/viewer/share_link.cljs:259, src/app/main/ui/viewer/share_link.cljs:289 msgid "common.share-link.current-tag" msgstr "(目前)" -#: src/app/main/ui/viewer/share_link.cljs:207, src/app/main/ui/viewer/share_link.cljs:214 msgid "common.share-link.destroy-link" msgstr "銷毀連結" -#: src/app/main/ui/viewer/share_link.cljs:221 msgid "common.share-link.get-link" msgstr "取得連結" -#: src/app/main/ui/viewer/share_link.cljs:139 msgid "common.share-link.link-copied-success" msgstr "成功複製連結" -#: src/app/main/ui/viewer/share_link.cljs:231 msgid "common.share-link.manage-ops" msgstr "權限管理" -#: src/app/main/ui/viewer/share_link.cljs:277 msgid "common.share-link.page-shared" msgid_plural "common.share-link.page-shared" msgstr[0] "已共享 %s 頁" -#: src/app/main/ui/viewer/share_link.cljs:298 msgid "common.share-link.permissions-can-comment" msgstr "可評論" -#: src/app/main/ui/viewer/share_link.cljs:308 msgid "common.share-link.permissions-can-inspect" msgstr "可檢閱代碼" -#: src/app/main/ui/viewer/share_link.cljs:193 msgid "common.share-link.permissions-hint" msgstr "任何有連結的人皆能存取" -#: src/app/main/ui/viewer/share_link.cljs:241 msgid "common.share-link.permissions-pages" msgstr "已共享頁面" -#: src/app/main/ui/viewer/share_link.cljs:183 msgid "common.share-link.placeholder" msgstr "可分享的連結將會在此顯示" -#: src/app/main/ui/viewer/share_link.cljs:303, src/app/main/ui/viewer/share_link.cljs:313 msgid "common.share-link.team-members" msgstr "只限團隊成員" -#: src/app/main/ui/viewer/share_link.cljs:171 msgid "common.share-link.title" msgstr "分享原型" -#: src/app/main/ui/viewer/share_link.cljs:269 msgid "common.share-link.view-all" msgstr "全選" -#: src/app/main/ui/workspace/libraries.cljs:224 msgid "common.unpublish" msgstr "未發怖" -#: src/app/main/ui/dashboard/projects.cljs:85 +#: src/app/main/ui/dashboard/projects.cljs msgid "dasboard.team-hero.management" msgstr "團隊管理" -#: src/app/main/ui/dashboard/projects.cljs:84 +#: src/app/main/ui/dashboard/projects.cljs msgid "dasboard.team-hero.text" msgstr "Penpot旨在團隊協作。邀請隊員加入共同協作" -#: src/app/main/ui/dashboard/projects.cljs:82 +#: src/app/main/ui/dashboard/projects.cljs msgid "dasboard.team-hero.title" msgstr "組隊!" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.tutorial-hero.info" msgstr "通過富趣味的教程實作學習 Penpot 的基礎知識。" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.tutorial-hero.start" msgstr "開始教程" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.tutorial-hero.title" msgstr "實踐教程" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.walkthrough-hero.info" msgstr "逐步遊覽Penpot以了解主要功能。" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.walkthrough-hero.start" msgstr "開始遊覽" #: src/app/main/ui/dashboard/projects.cljs -#, unused msgid "dasboard.walkthrough-hero.title" msgstr "遊覽用戶界面" -#: src/app/main/ui/settings/access_tokens.cljs:115 -msgid "dashboard.access-tokens.copied-success" -msgstr "已複製 Token" - -#: src/app/main/ui/settings/access_tokens.cljs:202 -msgid "dashboard.access-tokens.create" -msgstr "產生新的 Token" - -#: src/app/main/ui/settings/access_tokens.cljs:76 -msgid "dashboard.access-tokens.create.success" -msgstr "已成功建立 Access Token。" - -#: src/app/main/ui/settings/access_tokens.cljs:300 -msgid "dashboard.access-tokens.empty.add-one" -msgstr "按下\"產生新 Token\" 按鈕來產生一個。" - -#: src/app/main/ui/settings/access_tokens.cljs:299 -msgid "dashboard.access-tokens.empty.no-access-tokens" -msgstr "你目前還沒有 Tokens。" - -#: src/app/main/ui/settings/access_tokens.cljs:53 -msgid "dashboard.access-tokens.errors-required-name" -msgstr "名稱是必填的" - -#: src/app/main/ui/settings/access_tokens.cljs:147 -msgid "dashboard.access-tokens.expiration-180-days" -msgstr "180 天" - -#: src/app/main/ui/settings/access_tokens.cljs:144 -msgid "dashboard.access-tokens.expiration-30-days" -msgstr "30 天" - -#: src/app/main/ui/settings/access_tokens.cljs:145 -msgid "dashboard.access-tokens.expiration-60-days" -msgstr "60 天" - -#: src/app/main/ui/settings/access_tokens.cljs:146 -msgid "dashboard.access-tokens.expiration-90-days" -msgstr "90 天" - -#: src/app/main/ui/settings/access_tokens.cljs:143 -msgid "dashboard.access-tokens.expiration-never" -msgstr "從不" - -#: src/app/main/ui/settings/access_tokens.cljs:282 -msgid "dashboard.access-tokens.expired-on" -msgstr "已於 %s 過期" - -#: src/app/main/ui/settings/access_tokens.cljs:283 -msgid "dashboard.access-tokens.expires-on" -msgstr "將於 %s 過期" - -#: src/app/main/ui/settings/access_tokens.cljs:281 -msgid "dashboard.access-tokens.no-expiration" -msgstr "沒有到期時間" - -#: src/app/main/ui/settings/access_tokens.cljs:197 -msgid "dashboard.access-tokens.personal" -msgstr "個人存取權杖" - -#: src/app/main/ui/settings/access_tokens.cljs:198 -msgid "dashboard.access-tokens.personal.description" -msgstr "個人存取權杖就像是帳號密碼驗證系統的替代方案,且可用於讓第三方應用程式存取 Penpot 內部 API" - -#: src/app/main/ui/settings/access_tokens.cljs:154 -msgid "dashboard.access-tokens.token-will-expire" -msgstr "權杖將於 %s 到期" - -#: src/app/main/ui/settings/access_tokens.cljs:155 -msgid "dashboard.access-tokens.token-will-not-expire" -msgstr "權杖沒有到期時間" - -#: src/app/main/ui/dashboard/file_menu.cljs:291, src/app/main/ui/workspace/main_menu.cljs:572 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.add-shared" msgstr "加入為共享檔案庫" -#: src/app/main/ui/settings/profile.cljs:75 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.change-email" msgstr "更改電子郵件" -#: src/app/main/data/dashboard.cljs:762, src/app/main/data/dashboard.cljs:983 +#: src/app/main/data/dashboard.cljs, src/app/main/data/dashboard.cljs msgid "dashboard.copy-suffix" msgstr "(複製)" -#: src/app/main/ui/dashboard/sidebar.cljs:338 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.create-new-team" msgstr "建立新團隊" -#: src/app/main/ui/components/context_menu_a11y.cljs:256, src/app/main/ui/dashboard/sidebar.cljs:646 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.default-team-name" msgstr "你的 Penpot" -#: src/app/main/ui/dashboard/sidebar.cljs:571 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.delete-team" msgstr "刪除團隊" -#: src/app/main/ui/dashboard/file_menu.cljs:296, src/app/main/ui/workspace/main_menu.cljs:589 msgid "dashboard.download-binary-file" msgstr "下載 Penpot 檔案 (.penpot)" -#: src/app/main/ui/dashboard/file_menu.cljs:300, src/app/main/ui/workspace/main_menu.cljs:597 msgid "dashboard.download-standard-file" msgstr "下載標準檔案 (.svg + .json)" -#: src/app/main/ui/dashboard/file_menu.cljs:276, src/app/main/ui/dashboard/project_menu.cljs:90 +#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.duplicate" msgstr "複本" -#: src/app/main/ui/dashboard/file_menu.cljs:240 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.duplicate-multi" msgstr "複製 %s 個檔案" -#: src/app/main/ui/dashboard/placeholder.cljs:32 +#: src/app/main/ui/dashboard/grid.cljs #, markdown msgid "dashboard.empty-placeholder-drafts" msgstr "" "添加在資料庫的檔案會在此處列出。請分享你的檔案或由我們的 [資料庫 & " "模板區段](https://penpot.app/libraries-templates) 添加。" -#: src/app/main/ui/dashboard/file_menu.cljs:249 msgid "dashboard.export-binary-multi" msgstr "下載 %s 個Penpot 檔案 (.penpot)" -#: src/app/main/ui/workspace/main_menu.cljs:605 msgid "dashboard.export-frames" msgstr "將 boards 匯出為 PDF" -#: src/app/main/ui/export.cljs:201 +#: src/app/main/ui/export.cljs msgid "dashboard.export-frames.title" msgstr "匯出為PDF" -#, unused msgid "dashboard.export-multi" msgstr "匯出 %s 個檔案" -#: src/app/main/ui/export.cljs:109 +#: src/app/main/ui/export.cljs +#, fuzzy msgid "dashboard.export-multiple.selected" msgstr "已選取%s / %s elements" -#: src/app/main/ui/workspace/main_menu.cljs:578 +#: src/app/main/ui/workspace/header.cljs msgid "dashboard.export-shapes" msgstr "匯出" -#: src/app/main/ui/export.cljs:180 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.how-to" msgstr "你可以從設計屬性(位於右側邊欄底部)為元素添加匯出設置。" -#: src/app/main/ui/export.cljs:184 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.how-to-link" msgstr "Penpot匯出功能的簡介。" -#: src/app/main/ui/export.cljs:179 +#: src/app/main/ui/export.cljs +#, fuzzy msgid "dashboard.export-shapes.no-elements" msgstr "匯出設定未有任何element。" -#: src/app/main/ui/export.cljs:190 +#: src/app/main/ui/export.cljs msgid "dashboard.export-shapes.title" msgstr "匯出已選取項目" -#: src/app/main/ui/dashboard/file_menu.cljs:252 msgid "dashboard.export-standard-multi" msgstr "下載%s個標準檔案 (.svg + .json)" -#: src/app/main/ui/export.cljs:427 msgid "dashboard.export.detail" msgstr "* 可能會包含元件、圖像、顏色及/或文字編排。" -#: src/app/main/ui/export.cljs:426 msgid "dashboard.export.explain" msgstr "你想匯出的單個或多個檔案中使用了共用資料庫,你想要如何處理它們的素材*?" -#: src/app/main/ui/export.cljs:435 -msgid "dashboard.export.options.all.message" -msgstr "使用了共用資料庫的檔案將被包含在匯出內,並保持他們的連結關係。" - -#: src/app/main/ui/export.cljs:436 msgid "dashboard.export.options.all.title" msgstr "匯出共享媒體庫" -#: src/app/main/ui/export.cljs:437 -msgid "dashboard.export.options.detach.message" -msgstr "共用資料庫將不包含在匯出檔案內,且資產不會被加入資料庫。 " - -#: src/app/main/ui/export.cljs:438 +#, fuzzy msgid "dashboard.export.options.detach.title" msgstr "將檔案庫資源視為基本物件" -#: src/app/main/ui/export.cljs:439 msgid "dashboard.export.options.merge.message" msgstr "您的檔案將連同所有外部資源將一併匯出到檔案庫中。" -#: src/app/main/ui/export.cljs:440 -msgid "dashboard.export.options.merge.title" -msgstr "將共享資料庫的內容加入檔案資料庫" - -#: src/app/main/ui/export.cljs:418 msgid "dashboard.export.title" msgstr "匯出檔案" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:309 msgid "dashboard.fonts.deleted-placeholder" msgstr "已刪除字型" -#: src/app/main/ui/dashboard/fonts.cljs:206 +#: src/app/main/ui/dashboard/fonts.cljs msgid "dashboard.fonts.dismiss-all" msgstr "全部取消" -#: src/app/main/ui/dashboard/fonts.cljs:436 msgid "dashboard.fonts.empty-placeholder" msgstr "此處將會列出你上載的自訂字型。" -#: src/app/main/ui/dashboard/fonts.cljs:194 +#: src/app/main/ui/dashboard/fonts.cljs msgid "dashboard.fonts.fonts-added" msgid_plural "dashboard.fonts.fonts-added" msgstr[0] "添加了%s個字體" -#: src/app/main/ui/dashboard/fonts.cljs:170 #, markdown msgid "dashboard.fonts.hero-text1" msgstr "" @@ -513,7 +365,6 @@ msgstr "" "字體將會列入本團隊共用檔案的可用字型家族清單。相同字型家族名稱的字體將被分組為**單一字型家族**。可上傳以下格式的字體:**TTF、OTF 和 " "WOFF**(任何一種)。" -#: src/app/main/ui/dashboard/fonts.cljs:182 #, markdown msgid "dashboard.fonts.hero-text2" msgstr "" @@ -521,2178 +372,2083 @@ msgstr "" "中使用的字型。如需瞭解更多,請參閱[Penpot的服務條款](https://penpot.app/terms." "html)的內容權利部分。您可能還想閱讀有關 [字體許可](https://www.typography.com/faq) 的資訊。" -#: src/app/main/ui/dashboard/fonts.cljs:202 +#: src/app/main/ui/dashboard/fonts.cljs msgid "dashboard.fonts.upload-all" msgstr "全部上傳" -#: src/app/main/ui/dashboard/import.cljs:472, src/app/main/ui/dashboard/project_menu.cljs:108 msgid "dashboard.import" msgstr "匯入檔案" -#: src/app/main/ui/dashboard/import.cljs:304, src/app/worker/import.cljs:753, src/app/worker/import.cljs:755 msgid "dashboard.import.analyze-error" msgstr "喔不!我們無法匯入此檔案" -#, unused -msgid "dashboard.import.analyze-error.components-v2" -msgstr "檔案中啟用了 Components v2 但這個團隊尚未支援。" - -#: src/app/main/ui/dashboard/import.cljs:308 msgid "dashboard.import.import-error" msgstr "匯入檔案時發生錯誤。檔案未匯入。" -#: src/app/main/ui/dashboard/import.cljs:493 msgid "dashboard.import.import-message" msgstr "已成功匯入 %s 個檔案。" -#: src/app/main/ui/dashboard/import.cljs:481, src/app/main/ui/dashboard/import.cljs:488 msgid "dashboard.import.import-warning" msgstr "部份檔案因包含無效物件而被移除。" -#: src/app/main/ui/dashboard/import.cljs:144 msgid "dashboard.import.progress.process-colors" msgstr "正在處理顏色" -#: src/app/main/ui/dashboard/import.cljs:153 msgid "dashboard.import.progress.process-components" msgstr "正在處理元件" -#: src/app/main/ui/dashboard/import.cljs:150 msgid "dashboard.import.progress.process-media" msgstr "正在處理媒體" -#: src/app/main/ui/dashboard/import.cljs:141 msgid "dashboard.import.progress.process-page" msgstr "正在處理第 %s 頁" -#: src/app/main/ui/dashboard/import.cljs:147 msgid "dashboard.import.progress.process-typographies" msgstr "正在處理字體排版中" -#: src/app/main/ui/dashboard/import.cljs:135 msgid "dashboard.import.progress.upload-data" msgstr "上傳資料至伺服器 (%s/%s)" -#: src/app/main/ui/dashboard/import.cljs:138 msgid "dashboard.import.progress.upload-media" msgstr "正在上傳檔案:%s" -#: src/app/main/ui/dashboard/team.cljs:109 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.invite-profile" msgstr "邀請人員" -#: src/app/main/ui/dashboard/sidebar.cljs:547, src/app/main/ui/dashboard/sidebar.cljs:556, src/app/main/ui/dashboard/sidebar.cljs:563, src/app/main/ui/dashboard/team.cljs:312 +#: src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.leave-team" msgstr "離開團隊" -#: src/app/main/ui/dashboard/templates.cljs:88, src/app/main/ui/dashboard/templates.cljs:163 +#, fuzzy msgid "dashboard.libraries-and-templates" msgstr "資料庫和範本" -#: src/app/main/ui/dashboard/templates.cljs:164 msgid "dashboard.libraries-and-templates.explore" msgstr "探索更多內容並了解如何貢獻" -#: src/app/main/ui/dashboard/import.cljs:365 msgid "dashboard.libraries-and-templates.import-error" msgstr "匯入範本時出現問題。範本並未匯入。" -#: src/app/main/ui/dashboard/libraries.cljs:53 +#: src/app/main/ui/dashboard/libraries.cljs msgid "dashboard.libraries-title" msgstr "檔案庫" -#: src/app/main/ui/dashboard/placeholder.cljs:45 +#: src/app/main/ui/dashboard/grid.cljs msgid "dashboard.loading-files" msgstr "正在載入檔案…" -#: src/app/main/ui/dashboard/fonts.cljs:431 msgid "dashboard.loading-fonts" msgstr "正在載入字型…" -#: src/app/main/ui/dashboard/file_menu.cljs:281, src/app/main/ui/dashboard/project_menu.cljs:100 +#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.move-to" msgstr "移至" -#: src/app/main/ui/dashboard/file_menu.cljs:245 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.move-to-multi" msgstr "將 %s 個檔案移動至" -#: src/app/main/ui/dashboard/file_menu.cljs:226 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.move-to-other-team" msgstr "移至其他團隊" -#: src/app/main/ui/dashboard/files.cljs:105, src/app/main/ui/dashboard/projects.cljs:252, src/app/main/ui/dashboard/projects.cljs:253 +#: src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/files.cljs msgid "dashboard.new-file" msgstr "+ 新檔案" -#: src/app/main/data/dashboard.cljs:958, src/app/main/data/dashboard.cljs:1181 +#: src/app/main/data/dashboard.cljs msgid "dashboard.new-file-prefix" msgstr "新檔案" -#: src/app/main/ui/dashboard/projects.cljs:55 +#: src/app/main/ui/dashboard/projects.cljs msgid "dashboard.new-project" msgstr "+ 新的專案" -#: src/app/main/data/dashboard.cljs:726, src/app/main/data/dashboard.cljs:1184 +#: src/app/main/data/dashboard.cljs msgid "dashboard.new-project-prefix" msgstr "新專案" -#: src/app/main/ui/dashboard/search.cljs:60 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.no-matches-for" msgstr "找不到符合 「%s」的項目" -#: src/app/main/ui/dashboard/sidebar.cljs:827 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.no-projects-placeholder" msgstr "釘選的專案會在此顯示" -#: src/app/main/ui/auth/verify_token.cljs:33 +#: src/app/main/ui/auth/verify_token.cljs msgid "dashboard.notifications.email-changed-successfully" msgstr "已成功更改您的電子郵件地址" -#: src/app/main/ui/auth/verify_token.cljs:27 +#: src/app/main/ui/auth/verify_token.cljs msgid "dashboard.notifications.email-verified-successfully" msgstr "已成功驗證您的電子郵件地址" -#: src/app/main/ui/settings/password.cljs:37 +#: src/app/main/ui/settings/password.cljs msgid "dashboard.notifications.password-saved" msgstr "密碼已儲存成功!" -#: src/app/main/ui/dashboard/team.cljs:1081 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.num-of-members" msgstr "%s 位成員" -#: src/app/main/ui/dashboard/file_menu.cljs:267 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.open-in-new-tab" msgstr "在新分頁開啟檔案" -#: src/app/main/ui/dashboard/files.cljs:117, src/app/main/ui/dashboard/projects.cljs:260, src/app/main/ui/dashboard/projects.cljs:261 msgid "dashboard.options" msgstr "選項" -#: src/app/main/ui/settings/password.cljs:106, src/app/main/ui/settings/password.cljs:119 +#: src/app/main/ui/settings/password.cljs msgid "dashboard.password-change" msgstr "修改密碼" -#: src/app/main/ui/dashboard/pin_button.cljs:24, src/app/main/ui/dashboard/project_menu.cljs:95 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.pin-unpin" msgstr "釘選/取消釘選" -#: src/app/main/ui/dashboard/projects.cljs:51 +#: src/app/main/ui/dashboard/projects.cljs msgid "dashboard.projects-title" msgstr "專案" -#: src/app/main/ui/settings/profile.cljs:86 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.remove-account" msgstr "想要移除您的帳號嗎?" -#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs -#, unused -msgid "dashboard.remove-shared" -msgstr "不再作為共用資料庫" - -#: src/app/main/ui/settings/profile.cljs:78 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.save-settings" msgstr "儲存設定" -#: src/app/main/ui/dashboard/sidebar.cljs:246, src/app/main/ui/dashboard/sidebar.cljs:247 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "dashboard.search-placeholder" msgstr "搜尋…" -#: src/app/main/ui/dashboard/search.cljs:55 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.searching-for" msgstr "正在搜尋 “%s“…" -#: src/app/main/ui/settings/options.cljs:56 +#: src/app/main/ui/settings/options.cljs msgid "dashboard.select-ui-language" msgstr "選擇介面語言" -#: src/app/main/ui/settings/options.cljs:63 +#: src/app/main/ui/settings/options.cljs msgid "dashboard.select-ui-theme" msgstr "選擇主題" -#: src/app/main/ui/dashboard/projects.cljs:282 +#: src/app/main/ui/dashboard/grid.cljs msgid "dashboard.show-all-files" msgstr "顯示所有檔案" -#: src/app/main/ui/dashboard/file_menu.cljs:96 -msgid "dashboard.success-delete-file" -msgid_plural "dashboard.success-delete-file" -msgstr[0] "已成功刪除您的檔案" - -#: src/app/main/ui/dashboard/project_menu.cljs:59 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.success-delete-project" msgstr "已成功刪除您的專案" -#: src/app/main/ui/dashboard/file_menu.cljs:91 -msgid "dashboard.success-duplicate-file" -msgid_plural "dashboard.success-delete-file" -msgstr[0] "已成功為您的檔案建立副本" - -#: src/app/main/ui/dashboard/project_menu.cljs:33 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.success-duplicate-project" msgstr "你的專案已成功複製" -#: src/app/main/ui/dashboard/file_menu.cljs:130, src/app/main/ui/dashboard/grid.cljs:558, src/app/main/ui/dashboard/sidebar.cljs:152 +#: src/app/main/ui/dashboard/grid.cljs, src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-move-file" msgstr "已成功移動您的檔案" -#: src/app/main/ui/dashboard/file_menu.cljs:129 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.success-move-files" msgstr "已成功移動您的檔案" -#: src/app/main/ui/dashboard/project_menu.cljs:54 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "dashboard.success-move-project" msgstr "已成功移動您的專案" -#: src/app/main/ui/dashboard/team.cljs:1052 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.team-info" msgstr "團隊資訊" -#: src/app/main/ui/dashboard/team.cljs:1070 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.team-members" msgstr "團隊成員" -#: src/app/main/ui/dashboard/team.cljs:1085 +#: src/app/main/ui/dashboard/team.cljs msgid "dashboard.team-projects" msgstr "團隊專案" -#: src/app/main/ui/settings/options.cljs:61 +#: src/app/main/ui/settings/options.cljs msgid "dashboard.theme-change" msgstr "介面主題" -#: src/app/main/ui/dashboard/search.cljs:42 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.title-search" msgstr "搜尋結果" -#: src/app/main/ui/dashboard/search.cljs:50 +#: src/app/main/ui/dashboard/search.cljs msgid "dashboard.type-something" msgstr "輸入以搜尋" -#: src/app/main/ui/dashboard/file_menu.cljs:287, src/app/main/ui/workspace/main_menu.cljs:566 -msgid "dashboard.unpublish-shared" -msgstr "取消發佈資料庫" - -#: src/app/main/ui/settings/options.cljs:71 +#: src/app/main/ui/settings/profile.cljs, src/app/main/ui/settings/password.cljs, src/app/main/ui/settings/options.cljs msgid "dashboard.update-settings" msgstr "更新設定" -#: src/app/main/ui/dashboard/team.cljs:861 msgid "dashboard.webhooks.active" msgstr "正在生效" -#: src/app/main/ui/dashboard/team.cljs:862 msgid "dashboard.webhooks.active.explain" msgstr "當觸發此Webhook時,將會傳遞事件詳細信息" -#: src/app/main/ui/dashboard/team.cljs:852 msgid "dashboard.webhooks.content-type" msgstr "內容類型" -#: src/app/main/ui/dashboard/team.cljs:885 msgid "dashboard.webhooks.create" msgstr "設置Webhook" -#: src/app/main/ui/dashboard/team.cljs:775 msgid "dashboard.webhooks.create.success" msgstr "成功添加Webhook。" -#: src/app/main/ui/dashboard/team.cljs:882 msgid "dashboard.webhooks.description" msgstr "當Penpot 發生特定事件時,Webhook 是一種使其他網站和應用程式收到通知的簡單方法。我們會向你指定的每個網址發送 POST 請求。" -#: src/app/main/ui/dashboard/team.cljs:1005 msgid "dashboard.webhooks.empty.add-one" msgstr "按「設置Webhook」添加。" -#: src/app/main/ui/dashboard/team.cljs:1004 msgid "dashboard.webhooks.empty.no-webhooks" msgstr "未有設置任何Webhook。" -#, unused msgid "dashboard.webhooks.update.success" msgstr "成功更新Webhook。" -#: src/app/main/ui/settings.cljs:31 +#: src/app/main/ui/settings.cljs msgid "dashboard.your-account-title" msgstr "您的帳號" -#: src/app/main/ui/settings/profile.cljs:70 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.your-email" msgstr "電子郵件" -#: src/app/main/ui/settings/profile.cljs:62 +#: src/app/main/ui/settings/profile.cljs msgid "dashboard.your-name" msgstr "你的名字" -#: src/app/main/ui/dashboard/file_menu.cljs:38, src/app/main/ui/dashboard/fonts.cljs:33, src/app/main/ui/dashboard/libraries.cljs:42, src/app/main/ui/dashboard/projects.cljs:318, src/app/main/ui/dashboard/search.cljs:30, src/app/main/ui/dashboard/sidebar.cljs:312, src/app/main/ui/dashboard/team.cljs:495, src/app/main/ui/dashboard/team.cljs:729, src/app/main/ui/dashboard/team.cljs:991, src/app/main/ui/dashboard/team.cljs:1038 +#: src/app/main/ui/dashboard/search.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/libraries.cljs, src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "dashboard.your-penpot" msgstr "你的 Penpot" -#: src/app/main/ui/alert.cljs:32 +#: src/app/main/ui/alert.cljs msgid "ds.alert-ok" msgstr "確認" -#: src/app/main/ui/alert.cljs:31, src/app/main/ui/alert.cljs:34 +#: src/app/main/ui/alert.cljs msgid "ds.alert-title" msgstr "注意" -#: src/app/main/ui/confirm.cljs:83 -msgid "ds.component-subtitle" -msgstr "待更新的元件:" - -#: src/app/main/ui/confirm.cljs:36, src/app/main/ui/workspace/plugins.cljs:246 +#: src/app/main/ui/confirm.cljs msgid "ds.confirm-cancel" msgstr "取消" -#: src/app/main/ui/confirm.cljs:37, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:141 +#: src/app/main/ui/confirm.cljs msgid "ds.confirm-ok" msgstr "Ok" -#: src/app/main/ui/confirm.cljs:35, src/app/main/ui/confirm.cljs:39 +#: src/app/main/ui/confirm.cljs, src/app/main/ui/confirm.cljs msgid "ds.confirm-title" msgstr "您確定嗎?" -#: src/app/main/data/users.cljs:705 -msgid "errors.auth-provider-not-allowed" -msgstr "此設定檔不允許此驗證提供者" - -#: src/app/main/ui/auth/login.cljs:62 +#: src/app/main/ui/auth/login.cljs msgid "errors.auth-provider-not-configured" msgstr "尚未配置身份驗證供應商。" -#: src/app/main/errors.cljs:104 msgid "errors.auth.unable-to-login" msgstr "閣下尚未登入。" -#: src/app/main/data/fonts.cljs:189 msgid "errors.bad-font" msgstr "無法載入 %s 字體" -#: src/app/main/data/fonts.cljs:188 msgid "errors.bad-font-plural" msgstr "無法載入 %s 字體" -#: src/app/main/data/workspace/media.cljs:198 -msgid "errors.cannot-upload" -msgstr "無法上傳此媒體檔案。" - -#: src/app/main/data/workspace.cljs:1598 +#: src/app/main/data/workspace.cljs msgid "errors.clipboard-not-implemented" msgstr "你的瀏覽器無法執行此作業" -#: src/app/main/ui/auth/verify_token.cljs:82, src/app/main/ui/settings/change_email.cljs:46 +#: src/app/main/ui/auth/verify_token.cljs, src/app/main/ui/settings/change_email.cljs msgid "errors.email-already-exists" msgstr "電子信箱已被使用" -#: src/app/main/ui/auth/verify_token.cljs:87 +#: src/app/main/ui/auth/verify_token.cljs msgid "errors.email-already-validated" msgstr "電子信箱已完成驗證。" -#: src/app/main/ui/settings/password.cljs:28 msgid "errors.email-as-password" msgstr "你的電郵地址不能用作密碼" -#: src/app/main/data/users.cljs:707, src/app/main/ui/auth/register.cljs:63 -msgid "errors.email-domain-not-allowed" -msgstr "不允許此域名" - -#: src/app/main/ui/auth/recovery_request.cljs:63, src/app/main/ui/dashboard/team.cljs:578, src/app/main/ui/settings/change_email.cljs:54 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/recovery_request.cljs, src/app/main/ui/settings/change_email.cljs, src/app/main/ui/dashboard/team.cljs msgid "errors.email-has-permanent-bounces" msgstr "電子郵件«%s»有許多永久退件報告。" -#: src/app/main/ui/auth/login.cljs:81, src/app/main/ui/auth/recovery_request.cljs:31, src/app/main/ui/auth/register.cljs:43 +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs, src/app/main/ui/auth/recovery_request.cljs msgid "errors.email-invalid" msgstr "請輸入一個有效的電郵地址" -#: src/app/main/ui/settings/change_email.cljs:35 +#: src/app/main/ui/settings/change_email.cljs msgid "errors.email-invalid-confirmation" msgstr "電郵地址必須相同" -#: src/app/main/ui/dashboard/team.cljs:170 msgid "errors.email-spam-or-permanent-bounces" msgstr "電子郵件 «%s» 已被報告為垃圾郵件或永久退件。" -#: src/app/main/errors.cljs:227 +#: src/app/main/errors.cljs msgid "errors.feature-mismatch" msgstr "你正開啟的檔案包含Penpot尚未支援或停用'%s' 功能。" -#: src/app/main/errors.cljs:231, src/app/main/errors.cljs:245 +#: src/app/main/errors.cljs msgid "errors.feature-not-supported" msgstr "不支援 「%s」功能。" -#: src/app/main/data/users.cljs:709, src/app/main/ui/auth/login.cljs:65, src/app/main/ui/auth/login.cljs:116, src/app/main/ui/auth/register.cljs:69, src/app/main/ui/auth/register.cljs:237, src/app/main/ui/auth/verify_token.cljs:92, src/app/main/ui/dashboard/team.cljs:173, src/app/main/ui/onboarding/team_choice.cljs:95, src/app/main/ui/settings/access_tokens.cljs:91, src/app/main/ui/settings/feedback.cljs:52 +#: src/app/main/ui/auth/verify_token.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/dashboard/team.cljs msgid "errors.generic" msgstr "發生了一些錯誤。" -#: src/app/main/ui/components/color_input.cljs:57 +#: src/app/main/ui/components/color_input.cljs msgid "errors.invalid-color" msgstr "顏色無效" -#: src/app/main/ui/static.cljs:43 +#: src/app/main/ui/auth/verify_token.cljs msgid "errors.invite-invalid" msgstr "邀請無效" -#: src/app/main/ui/static.cljs:44 msgid "errors.invite-invalid.info" msgstr "本邀請或已被取消或過期。" -#: src/app/main/ui/auth/login.cljs:101 +#: src/app/main/ui/auth/login.cljs msgid "errors.ldap-disabled" msgstr "LDAP 驗證已停用。" -#: src/app/main/errors.cljs:239 +#: src/app/main/errors.cljs msgid "errors.max-quote-reached" msgstr "你已達「%s」上限。請聯絡支援。" -#: src/app/main/data/workspace/media.cljs:184 +#: src/app/main/data/workspace/persistence.cljs msgid "errors.media-too-large" msgstr "影像檔案過大,無法插入。" -#: src/app/main/data/media.cljs:68, src/app/main/data/workspace/media.cljs:187 +#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs msgid "errors.media-type-mismatch" msgstr "似乎圖形檔案的格式內容與檔案擴展名不匹配。" -#: src/app/main/data/media.cljs:65, src/app/main/data/workspace/media.cljs:172, src/app/main/data/workspace/media.cljs:175, src/app/main/data/workspace/media.cljs:178, src/app/main/data/workspace/media.cljs:181 +#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/workspace/persistence.cljs, src/app/main/data/workspace/persistence.cljs, src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs msgid "errors.media-type-not-allowed" msgstr "這好像不是個能用的影像。" -#: src/app/main/ui/dashboard/team.cljs:574 +#: src/app/main/ui/dashboard/team.cljs msgid "errors.member-is-muted" msgstr "您邀請的人員設置了電子郵件靜音(垃圾郵件報告或高退件率)。" -#: src/app/main/ui/settings/password.cljs:61 +#: src/app/main/ui/settings/password.cljs msgid "errors.password-invalid-confirmation" msgstr "確認密碼必須相符" -#: src/app/main/ui/settings/password.cljs:64 +#: src/app/main/ui/settings/password.cljs msgid "errors.password-too-short" msgstr "密碼至少需有 8 個字元" -#: src/app/main/errors.cljs:124 -msgid "errors.paste-data-validation" -msgstr "剪貼簿中的資料無效" - -#: src/app/main/data/users.cljs:703, src/app/main/ui/auth/login.cljs:97, src/app/main/ui/auth/login.cljs:105 msgid "errors.profile-blocked" msgstr "已封鎖用戶" -#: src/app/main/data/users.cljs:701, src/app/main/ui/auth/register.cljs:60 +#: src/app/main/ui/auth/register.cljs msgid "errors.registration-disabled" msgstr "目前並不開放註冊。" -#: src/app/main/ui/dashboard/sidebar.cljs:365, src/app/main/ui/dashboard/team.cljs:359 msgid "errors.team-leave.insufficient-members" msgstr "成員不足,無法離開團隊,您可能希望將其刪除。" -#: src/app/main/ui/dashboard/sidebar.cljs:368, src/app/main/ui/dashboard/team.cljs:362 msgid "errors.team-leave.member-does-not-exists" msgstr "查無此人。" -#: src/app/main/ui/dashboard/sidebar.cljs:371, src/app/main/ui/dashboard/team.cljs:365 msgid "errors.team-leave.owner-cant-leave" msgstr "團隊擁有者不能離開其團隊,你須重新委任團隊擁有者角色。" -#: src/app/main/data/media.cljs:71 +#: src/app/main/data/media.cljs, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs msgid "errors.unexpected-error" msgstr "發生了預料之外的錯誤。" -#: src/app/main/ui/auth/verify_token.cljs:60 +#: src/app/main/ui/auth/verify_token.cljs msgid "errors.unexpected-token" msgstr "未知的 token" -#: src/app/main/ui/dashboard/team.cljs:796 msgid "errors.webhooks.connection" msgstr "連線錯誤,無法接上網址" -#: src/app/main/ui/dashboard/team.cljs:790 msgid "errors.webhooks.invalid-uri" msgstr "網址未能通過驗証。" -#: src/app/main/ui/dashboard/team.cljs:949 +#, fuzzy msgid "errors.webhooks.last-delivery" msgstr "上一次傳送未能成功。" -#: src/app/main/ui/dashboard/team.cljs:792, src/app/main/ui/dashboard/team.cljs:952 msgid "errors.webhooks.ssl-validation" msgstr "SSL證書驗證錯誤。" -#: src/app/main/ui/dashboard/team.cljs:794 msgid "errors.webhooks.timeout" msgstr "連線逾時" -#: src/app/main/ui/dashboard/team.cljs:788 msgid "errors.webhooks.unexpected" msgstr "驗證時出現未有預料的錯誤" -#: src/app/main/ui/dashboard/team.cljs:798, src/app/main/ui/dashboard/team.cljs:955 msgid "errors.webhooks.unexpected-status" msgstr "未預料狀態 %s" -#: src/app/main/ui/auth/login.cljs:109, src/app/main/ui/auth/login.cljs:113 +#: src/app/main/ui/auth/login.cljs msgid "errors.wrong-credentials" msgstr "電子郵件或密碼似乎有誤。" -#: src/app/main/ui/settings/password.cljs:25 +#: src/app/main/ui/settings/password.cljs msgid "errors.wrong-old-password" msgstr "舊密碼不正確" -#: src/app/main/ui/settings/feedback.cljs:77 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.description" msgstr "狀況描述" -#: src/app/main/ui/settings/feedback.cljs:95 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.discourse-go-to" msgstr "前往 Penpot 討論區" -#: src/app/main/ui/settings/feedback.cljs:89 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.discourse-subtitle1" msgstr "歡迎光臨。如需協助,在發文求助前請先查閱相類內容。" -#: src/app/main/ui/settings/feedback.cljs:88 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.discourse-title" msgstr "Penpot 社群" -#: src/app/main/ui/settings/feedback.cljs:72 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.subject" msgstr "主旨" -#: src/app/main/ui/settings/feedback.cljs:69 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.subtitle" msgstr "請描述您來函的因由,分類說明是問題、想法還是疑問。我們將儘快回覆。" -#: src/app/main/ui/settings/feedback.cljs:68 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.title" msgstr "電子郵件" -#: src/app/main/ui/settings/feedback.cljs:105 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.twitter-go-to" msgstr "前往X" -#: src/app/main/ui/settings/feedback.cljs:99 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.twitter-subtitle1" msgstr "協助解你的決技術問題。" -#: src/app/main/ui/settings/feedback.cljs:98 +#: src/app/main/ui/settings/feedback.cljs msgid "feedback.twitter-title" msgstr "X支援帳戶" -#: src/app/main/ui/settings/password.cljs:30 +#: src/app/main/ui/settings/password.cljs msgid "generic.error" msgstr "出現錯誤" -#: src/app/main/ui/viewer/inspect/attributes/blur.cljs:26 +#: src/app/main/ui/inspect/attributes/blur.cljs msgid "inspect.attributes.blur" msgstr "模糊" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:115 +#: src/app/main/ui/inspect/attributes/blur.cljs msgid "inspect.attributes.blur.value" msgstr "數值" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:112 +#: src/app/main/ui/inspect/attributes/common.cljs msgid "inspect.attributes.color.hex" msgstr "HEX" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:114 +#: src/app/main/ui/inspect/attributes/common.cljs msgid "inspect.attributes.color.hsla" msgstr "HSLA" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:113 +#: src/app/main/ui/inspect/attributes/common.cljs msgid "inspect.attributes.color.rgba" msgstr "RGBA" -#: src/app/main/ui/viewer/inspect/attributes/fill.cljs:57 +#: src/app/main/ui/inspect/attributes/fill.cljs msgid "inspect.attributes.fill" msgstr "填充" -#: src/app/main/ui/viewer/inspect/attributes/common.cljs:99, src/app/main/ui/viewer/inspect/attributes/image.cljs:51 +#: src/app/main/ui/inspect/attributes/image.cljs msgid "inspect.attributes.image.download" msgstr "下載原始圖片" -#: src/app/main/ui/viewer/inspect/attributes/image.cljs:39 +#: src/app/main/ui/inspect/attributes/image.cljs msgid "inspect.attributes.image.height" msgstr "高度" -#: src/app/main/ui/viewer/inspect/attributes/image.cljs:32 +#: src/app/main/ui/inspect/attributes/image.cljs msgid "inspect.attributes.image.width" msgstr "寬度" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout" msgstr "樣式" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.height" msgstr "高度" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.left" msgstr "左" #: src/app/main/ui/inspect/attributes/layout.cljs, src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.radius" msgstr "圓角半徑" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.rotation" msgstr "旋轉" #: src/app/main/ui/inspect/attributes/layout.cljs -#, unused msgid "inspect.attributes.layout.width" msgstr "寬度" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:57 +#: src/app/main/ui/inspect/attributes/shadow.cljs msgid "inspect.attributes.shadow" msgstr "陰影" -#, unused msgid "inspect.attributes.stroke.style.dotted" msgstr "點線" -#, unused msgid "inspect.attributes.stroke.style.none" msgstr "無" -#, unused msgid "inspect.attributes.stroke.style.solid" msgstr "實線" #: src/app/main/ui/inspect/attributes/stroke.cljs -#, unused msgid "inspect.attributes.stroke.width" msgstr "寬度" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:81, src/app/main/ui/viewer/inspect/attributes/text.cljs:194 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography" msgstr "字體" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:89 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.font-family" msgstr "字型家族" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:107 +#: src/app/main/ui/inspect/attributes/text.cljs msgid "inspect.attributes.typography.font-size" msgstr "字體大小" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:145 msgid "inspect.attributes.typography.text-decoration.none" msgstr "無" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:146 msgid "inspect.attributes.typography.text-decoration.strikethrough" msgstr "刪除線" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:147 msgid "inspect.attributes.typography.text-decoration.underline" msgstr "底線" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:158 msgid "inspect.attributes.typography.text-transform.lowercase" msgstr "全小寫" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:159 msgid "inspect.attributes.typography.text-transform.none" msgstr "無" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:160 msgid "inspect.attributes.typography.text-transform.titlecase" msgstr "詞首字母大寫" -#: src/app/main/ui/viewer/inspect/attributes/text.cljs:161 msgid "inspect.attributes.typography.text-transform.uppercase" msgstr "全大寫" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:140 msgid "inspect.empty.help" msgstr "如果您想瞭解更多關於設計檢查的資訊,請訪問Penpot的幫助中心" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:143 msgid "inspect.empty.more-info" msgstr "有關檢查的詳細資訊" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:98 msgid "inspect.tabs.code.selected.circle" msgstr "圖形" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:100 msgid "inspect.tabs.code.selected.curve" msgstr "曲線" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:101 msgid "inspect.tabs.code.selected.frame" msgstr "畫板" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:102 msgid "inspect.tabs.code.selected.group" msgstr "群組" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:103 msgid "inspect.tabs.code.selected.image" msgstr "圖像" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:105 msgid "inspect.tabs.code.selected.path" msgstr "路徑" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:106 msgid "inspect.tabs.code.selected.rect" msgstr "矩形" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:107 msgid "inspect.tabs.code.selected.svg-raw" msgstr "SVG" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:108 msgid "inspect.tabs.code.selected.text" msgstr "文字" -#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:115 +#: src/app/main/ui/inspect/right_sidebar.cljs msgid "inspect.tabs.info" msgstr "資訊" -#: src/app/main/ui/dashboard/import.cljs:527 msgid "labels.accept" msgstr "接受" -#: src/app/main/ui/dashboard/team.cljs:120, src/app/main/ui/dashboard/team.cljs:276, src/app/main/ui/dashboard/team.cljs:519, src/app/main/ui/dashboard/team.cljs:549, src/app/main/ui/onboarding/team_choice.cljs:67 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs msgid "labels.admin" msgstr "管理員" #: src/app/main/ui/workspace/comments.cljs -#, unused msgid "labels.all" msgstr "全部" -#: src/app/main/ui/auth.cljs:37 msgid "labels.and" msgstr "及" -#: src/app/main/ui/static.cljs:59 +#: src/app/main/ui/static.cljs msgid "labels.bad-gateway.desc-message" msgstr "伺服器正在進行小型維修,請稍後重試。" -#: src/app/main/ui/static.cljs:58 +#: src/app/main/ui/static.cljs msgid "labels.bad-gateway.main-message" msgstr "無效的閘道" -#: src/app/main/data/common.cljs:112, src/app/main/ui/dashboard/change_owner.cljs:69, src/app/main/ui/dashboard/import.cljs:514, src/app/main/ui/dashboard/team.cljs:868, src/app/main/ui/delete_shared.cljs:35, src/app/main/ui/export.cljs:164, src/app/main/ui/export.cljs:460, src/app/main/ui/settings/access_tokens.cljs:188, src/app/main/ui/viewer/share_link.cljs:203, src/app/main/ui/workspace/sidebar/assets/groups.cljs:149 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.cancel" msgstr "取消" -#: src/app/main/ui/dashboard/projects.cljs:93, src/app/main/ui/export.cljs:478, src/app/main/ui/settings/access_tokens.cljs:183, src/app/main/ui/viewer/login.cljs:77, src/app/main/ui/viewer/share_link.cljs:174, src/app/main/ui/workspace/libraries.cljs:522 msgid "labels.close" msgstr "關閉" -#: src/app/main/ui/dashboard/comments.cljs:104, src/app/main/ui/viewer/comments.cljs:70, src/app/main/ui/workspace/comments.cljs:126 +#: src/app/main/ui/dashboard/comments.cljs msgid "labels.comments" msgstr "評論" -#: src/app/main/ui/dashboard/sidebar.cljs:985, src/app/main/ui/workspace/main_menu.cljs:110 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.community" msgstr "社群" -#: src/app/main/ui/settings/password.cljs:103 +#: src/app/main/ui/settings/password.cljs msgid "labels.confirm-password" msgstr "確認密碼" -#: src/app/main/ui/dashboard/import.cljs:520, src/app/main/ui/export.cljs:465, src/app/main/ui/onboarding/newsletter.cljs:101 msgid "labels.continue" msgstr "繼續" -#: src/app/main/ui/viewer/login.cljs:75 msgid "labels.continue-with-penpot" msgstr "以Penpot帳戶繼續" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:157, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:190 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "labels.create" msgstr "建立" -#: src/app/main/ui/dashboard/team_form.cljs:101, src/app/main/ui/dashboard/team_form.cljs:121 +#: src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/dashboard/team_form.cljs msgid "labels.create-team" msgstr "建立新團隊" -#: src/app/main/ui/dashboard/team_form.cljs:113 +#: src/app/main/ui/dashboard/team_form.cljs msgid "labels.create-team.placeholder" msgstr "輸入新團隊名稱" -#: src/app/main/ui/settings/sidebar.cljs:73 +#: src/app/main/ui/settings/sidebar.cljs msgid "labels.dashboard" msgstr "控制台" -#: src/app/main/ui/dashboard/file_menu.cljs:306, src/app/main/ui/dashboard/fonts.cljs:255, src/app/main/ui/dashboard/fonts.cljs:332, src/app/main/ui/dashboard/fonts.cljs:346, src/app/main/ui/dashboard/project_menu.cljs:115, src/app/main/ui/dashboard/team.cljs:904, src/app/main/ui/settings/access_tokens.cljs:209, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:209 +#: src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "labels.delete" msgstr "刪除" -#: src/app/main/ui/dashboard/team.cljs:648 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.delete-invitation" msgstr "刪除邀請" -#: src/app/main/ui/dashboard/file_menu.cljs:262 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "labels.delete-multi-files" msgstr "刪除 %s 檔案" -#: src/app/main/ui/dashboard/file_menu.cljs:28, src/app/main/ui/dashboard/files.cljs:72, src/app/main/ui/dashboard/files.cljs:156, src/app/main/ui/dashboard/projects.cljs:220, src/app/main/ui/dashboard/projects.cljs:224, src/app/main/ui/dashboard/sidebar.cljs:791 +#: src/app/main/ui/dashboard/projects.cljs, src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/files.cljs, src/app/main/ui/dashboard/files.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "labels.drafts" msgstr "草稿" -#: src/app/main/ui/comments.cljs:350, src/app/main/ui/dashboard/fonts.cljs:252, src/app/main/ui/dashboard/team.cljs:902, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:205 +#: src/app/main/ui/comments.cljs msgid "labels.edit" msgstr "編輯" -#, unused msgid "labels.edit-file" msgstr "編輯檔案" -#: src/app/main/ui/dashboard/team.cljs:118, src/app/main/ui/dashboard/team.cljs:279, src/app/main/ui/dashboard/team.cljs:520, src/app/main/ui/dashboard/team.cljs:553, src/app/main/ui/onboarding/team_choice.cljs:66 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs msgid "labels.editor" msgstr "編輯者" -#: src/app/main/ui/dashboard/team.cljs:661 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.expired-invitation" msgstr "過期" -#: src/app/main/ui/export.cljs:173 msgid "labels.export" msgstr "匯出" -#: src/app/main/ui/settings/feedback.cljs:51 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.feedback-disabled" msgstr "已停用迴響" -#: src/app/main/ui/settings/feedback.cljs:42 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.feedback-sent" msgstr "已發送迴響" -#: src/app/main/ui/dashboard/fonts.cljs:412 msgid "labels.font-family" msgstr "字型家族" -#: src/app/main/ui/dashboard/fonts.cljs:413 msgid "labels.font-variants" msgstr "樣式" -#: src/app/main/ui/dashboard/fonts.cljs:52, src/app/main/ui/dashboard/sidebar.cljs:811 msgid "labels.fonts" msgstr "字型" -#: src/app/main/ui/dashboard/sidebar.cljs:1015, src/app/main/ui/workspace/main_menu.cljs:142 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.github-repo" msgstr "Github 倉庫" -#: src/app/main/ui/dashboard/sidebar.cljs:1032, src/app/main/ui/settings/sidebar.cljs:113, src/app/main/ui/workspace/main_menu.cljs:171 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.give-feedback" msgstr "給予迴響" -#: src/app/main/ui/auth/recovery_request.cljs:110, src/app/main/ui/auth/register.cljs:285, src/app/main/ui/viewer/login.cljs:117 msgid "labels.go-back" msgstr "返回" -#: src/app/main/ui/dashboard/sidebar.cljs:978, src/app/main/ui/workspace/main_menu.cljs:102 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.help-center" msgstr "説明中心" -#: src/app/main/ui/viewer/comments.cljs:103, src/app/main/ui/workspace/comments.cljs:67 +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs msgid "labels.hide-resolved-comments" msgstr "隱藏已解決的評論" -#: src/app/main/ui/dashboard/fonts.cljs:410 msgid "labels.installed-fonts" msgstr "已安裝的字體" -#: src/app/main/ui/static.cljs:143 +#: src/app/main/ui/static.cljs msgid "labels.internal-error.main-message" msgstr "內部錯誤" -#: src/app/main/ui/dashboard/sidebar.cljs:516, src/app/main/ui/dashboard/team.cljs:89, src/app/main/ui/dashboard/team.cljs:97, src/app/main/ui/dashboard/team.cljs:708 +#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.invitations" msgstr "邀請" -#: src/app/main/ui/settings/options.cljs:51 +#: src/app/main/ui/settings/options.cljs msgid "labels.language" msgstr "語言" -#: src/app/main/ui/viewer/header.cljs:203 msgid "labels.log-or-sign" msgstr "登錄或註冊" -#: src/app/main/ui/dashboard/sidebar.cljs:1040 +#: src/app/main/ui/settings.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.logout" msgstr "登出" -#: src/app/main/ui/dashboard/team.cljs:468 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.member" msgstr "成員" -#: src/app/main/ui/dashboard/sidebar.cljs:510, src/app/main/ui/dashboard/team.cljs:87, src/app/main/ui/dashboard/team.cljs:95 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.members" msgstr "成員" -#: src/app/main/ui/settings/password.cljs:96 +#: src/app/main/ui/settings/password.cljs msgid "labels.new-password" msgstr "新密碼" -#: src/app/main/ui/dashboard/team.cljs:694 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.no-invitations" msgstr "沒有待處理的邀請。" -#: src/app/main/ui/static.cljs:50 +#: src/app/main/ui/static.cljs msgid "labels.not-found.desc-message" msgstr "此頁面可能不存在,或者您無權訪問。" -#: src/app/main/ui/static.cljs:49 +#: src/app/main/ui/static.cljs msgid "labels.not-found.main-message" msgstr "喔不!" -#: src/app/main/ui/dashboard/projects.cljs:239, src/app/main/ui/dashboard/team.cljs:1095 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.num-of-files" msgid_plural "labels.num-of-files" msgstr[0] "%s 個檔案" -#: src/app/main/ui/dashboard/team.cljs:1090 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.num-of-projects" msgid_plural "labels.num-of-projects" msgstr[0] "%s 個專案" -#: src/app/main/ui/settings/password.cljs:89 +#: src/app/main/ui/settings/password.cljs msgid "labels.old-password" msgstr "原有密碼" #: src/app/main/ui/workspace/comments.cljs -#, unused msgid "labels.only-yours" msgstr "只有你" -#, unused msgid "labels.or" msgstr "或" -#: src/app/main/ui/dashboard/team.cljs:286, src/app/main/ui/dashboard/team.cljs:518, src/app/main/ui/dashboard/team.cljs:1076 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs msgid "labels.owner" msgstr "擁有者" -#: src/app/main/ui/settings/sidebar.cljs:87 +#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.password" msgstr "密碼" -#: src/app/main/ui/dashboard/team.cljs:662 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.pending-invitation" msgstr "待辦" -#: src/app/main/ui/settings/profile.cljs:118, src/app/main/ui/settings/sidebar.cljs:82 +#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.profile" msgstr "個人檔案" -#: src/app/main/ui/dashboard/sidebar.cljs:784 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.projects" msgstr "專案" -#: src/app/main/ui/dashboard/sidebar.cljs:998, src/app/main/ui/settings/sidebar.cljs:106, src/app/main/ui/workspace/main_menu.cljs:126 +#: src/app/main/ui/settings/sidebar.cljs msgid "labels.release-notes" msgstr "更新日誌" #: src/app/main/ui/workspace.cljs -#, unused msgid "labels.reload-file" msgstr "重新載入檔案" #: src/app/main/ui/workspace/libraries.cljs, src/app/main/ui/dashboard/team.cljs -#, unused msgid "labels.remove" msgstr "移除" -#: src/app/main/ui/dashboard/team.cljs:316 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.remove-member" msgstr "移除團隊成員" -#: src/app/main/ui/dashboard/file_menu.cljs:271, src/app/main/ui/dashboard/project_menu.cljs:85, src/app/main/ui/dashboard/sidebar.cljs:539, src/app/main/ui/workspace/sidebar/assets/groups.cljs:157 +#: src/app/main/ui/dashboard/sidebar.cljs, src/app/main/ui/dashboard/project_menu.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "labels.rename" msgstr "重新命名" -#: src/app/main/ui/dashboard/team_form.cljs:99 +#: src/app/main/ui/dashboard/team_form.cljs msgid "labels.rename-team" msgstr "重新命名團隊" -#: src/app/main/ui/dashboard/team.cljs:645 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.resend-invitation" msgstr "重新發送邀請" -#: src/app/main/ui/static.cljs:61, src/app/main/ui/static.cljs:70, src/app/main/ui/static.cljs:148 +#: src/app/main/ui/static.cljs, src/app/main/ui/static.cljs, src/app/main/ui/static.cljs msgid "labels.retry" msgstr "重試" -#: src/app/main/ui/dashboard/team.cljs:469, src/app/main/ui/dashboard/team.cljs:709 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.role" msgstr "角色" -#: src/app/main/ui/dashboard/fonts.cljs:380, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:191 msgid "labels.save" msgstr "儲存" -#: src/app/main/ui/dashboard/fonts.cljs:415 msgid "labels.search-font" msgstr "搜尋字體" -#: src/app/main/ui/settings/feedback.cljs:82 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.send" msgstr "傳送" -#: src/app/main/ui/settings/feedback.cljs:82 +#: src/app/main/ui/settings/feedback.cljs msgid "labels.sending" msgstr "正在傳送…" -#: src/app/main/ui/static.cljs:68 +#: src/app/main/ui/static.cljs msgid "labels.service-unavailable.desc-message" msgstr "系統正在進行定期保養。" -#: src/app/main/ui/static.cljs:67 +#: src/app/main/ui/static.cljs msgid "labels.service-unavailable.main-message" msgstr "暫停服務" -#: src/app/main/ui/dashboard/sidebar.cljs:530, src/app/main/ui/dashboard/team.cljs:88, src/app/main/ui/dashboard/team.cljs:102, src/app/main/ui/settings/options.cljs:84, src/app/main/ui/settings/sidebar.cljs:93 +#: src/app/main/ui/settings/sidebar.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.settings" msgstr "設定" -#: src/app/main/ui/dashboard/sidebar.cljs:800 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.shared-libraries" msgstr "檔案庫" -#: src/app/main/ui/viewer/comments.cljs:91, src/app/main/ui/workspace/comments.cljs:61, src/app/main/ui/workspace/comments.cljs:136 +#: src/app/main/ui/workspace/comments.cljs, src/app/main/ui/viewer/header.cljs msgid "labels.show-your-comments" msgstr "僅顯示您的評論" -#: src/app/main/ui/dashboard/sidebar.cljs:992, src/app/main/ui/workspace/main_menu.cljs:118 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.tutorials" msgstr "教學" -#: src/app/main/ui/settings/profile.cljs:103 +#: src/app/main/ui/settings/profile.cljs msgid "labels.update" msgstr "更新" -#: src/app/main/ui/dashboard/fonts.cljs:241 msgid "labels.upload" msgstr "上傳" -#: src/app/main/ui/dashboard/fonts.cljs:240 msgid "labels.uploading" msgstr "正在上傳…" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs:223 msgid "labels.view-only" msgstr "僅供查閱" -#: src/app/main/ui/dashboard/team.cljs:123, src/app/main/ui/dashboard/team.cljs:282, src/app/main/ui/dashboard/team.cljs:521 +#: src/app/main/ui/dashboard/team.cljs msgid "labels.viewer" msgstr "檢視者" -#: src/app/main/ui/dashboard/sidebar.cljs:523, src/app/main/ui/dashboard/team.cljs:90, src/app/main/ui/dashboard/team.cljs:100, src/app/main/ui/dashboard/team.cljs:880 msgid "labels.webhooks" msgstr "Webhook" -#: src/app/main/ui/dashboard/team.cljs:237 +#: src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/team.cljs, src/app/main/ui/dashboard/sidebar.cljs msgid "labels.you" msgstr "(你)" -#: src/app/main/ui/dashboard/sidebar.cljs:968 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "labels.your-account" msgstr "你的帳戶" -#: src/app/main/data/media.cljs:49, src/app/main/data/workspace/media.cljs:223, src/app/main/data/workspace/media.cljs:453 +#: src/app/main/data/workspace/persistence.cljs, src/app/main/data/workspace/persistence.cljs, src/app/main/data/media.cljs msgid "media.loading" msgstr "正在載入圖片…" -#: src/app/main/ui/settings/change_email.cljs:127 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.confirm-email" msgstr "驗證新電子郵件" -#: src/app/main/ui/settings/change_email.cljs:114 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.info" msgstr "我們將寄送郵件至您目前的電子郵件信箱 “%s” 以確認身分。" -#: src/app/main/ui/settings/change_email.cljs:119 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.new-email" msgstr "新電郵" -#: src/app/main/ui/settings/change_email.cljs:136 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.submit" msgstr "更改電子郵件" -#: src/app/main/ui/settings/change_email.cljs:107 +#: src/app/main/ui/settings/change_email.cljs msgid "modals.change-email.title" msgstr "更改你的電郵" -#: src/app/main/ui/dashboard/team.cljs:873 msgid "modals.create-webhook.submit-label" msgstr "設置Webhook" -#: src/app/main/ui/dashboard/team.cljs:838 msgid "modals.create-webhook.title" msgstr "設置Webhook" -#: src/app/main/ui/dashboard/team.cljs:849 msgid "modals.create-webhook.url.label" msgstr "訊息負載網址" -#: src/app/main/ui/dashboard/team.cljs:850 msgid "modals.create-webhook.url.placeholder" msgstr "https://example.com/postreceive" -#: src/app/main/ui/settings/delete_account.cljs:64 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.confirm" msgstr "是的,請刪除我的帳號" -#: src/app/main/ui/settings/delete_account.cljs:53 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.info" msgstr "刪除你的帳戶後,你會失去現有專案及檔案。" -#: src/app/main/ui/settings/delete_account.cljs:46 +#: src/app/main/ui/settings/delete_account.cljs msgid "modals.delete-account.title" msgstr "您確定要刪除您的帳號嗎?" -#: src/app/main/ui/dashboard/file_menu.cljs:123 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-confirm.accept" msgstr "刪除檔案" -#: src/app/main/ui/dashboard/file_menu.cljs:122 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-confirm.message" msgstr "您確定要刪除這個檔案嗎?" -#: src/app/main/ui/dashboard/file_menu.cljs:121 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-confirm.title" msgstr "正在刪除檔案" -#: src/app/main/ui/dashboard/file_menu.cljs:117 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-multi-confirm.accept" msgstr "刪除多個檔案" -#: src/app/main/ui/dashboard/file_menu.cljs:116 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-multi-confirm.message" msgstr "您確定要刪除 %s 個檔案嗎?" -#: src/app/main/ui/dashboard/file_menu.cljs:115 +#: src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-file-multi-confirm.title" msgstr "正在刪除 %s 個檔案" -#: src/app/main/ui/dashboard/fonts.cljs:344 msgid "modals.delete-font-variant.title" msgstr "正在刪除字體樣式" -#: src/app/main/ui/workspace/context_menu.cljs:522, src/app/main/ui/workspace/sidebar/sitemap.cljs:45 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs msgid "modals.delete-page.body" msgstr "您確定要刪除這個頁面嗎?" -#: src/app/main/ui/dashboard/project_menu.cljs:69 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "modals.delete-project-confirm.accept" msgstr "刪除專案" -#: src/app/main/ui/dashboard/project_menu.cljs:68 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "modals.delete-project-confirm.message" msgstr "您確定要刪除這個專案嗎?" -#: src/app/main/ui/dashboard/project_menu.cljs:67 +#: src/app/main/ui/dashboard/project_menu.cljs msgid "modals.delete-project-confirm.title" msgstr "刪除專案" -#: src/app/main/ui/delete_shared.cljs:51 +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs msgid "modals.delete-shared-confirm.accept" msgid_plural "modals.delete-shared-confirm.accept" msgstr[0] "刪除檔案" -#: src/app/main/ui/dashboard/sidebar.cljs:435 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.delete-team-confirm.accept" msgstr "刪除團體" -#: src/app/main/ui/dashboard/sidebar.cljs:433 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.delete-team-confirm.title" msgstr "正在刪除團體" -#: src/app/main/ui/dashboard/team.cljs:427 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.delete-team-member-confirm.accept" msgstr "刪除成員" -#: src/app/main/ui/dashboard/team.cljs:425 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.delete-team-member-confirm.title" msgstr "刪除團隊成員" -#: src/app/main/ui/dashboard/team.cljs:940 msgid "modals.delete-webhook.title" msgstr "刪除 Webhook" -#: src/app/main/ui/dashboard/team.cljs:872 msgid "modals.edit-webhook.submit-label" msgstr "修改 Webhook" -#: src/app/main/ui/dashboard/team.cljs:837 msgid "modals.edit-webhook.title" msgstr "修改 Webhook" -#: src/app/main/ui/dashboard/change_owner.cljs:59 msgid "modals.leave-and-reassign.forbidden" msgstr "如果沒有其他成員晉升為團隊的擁有者,您則不能離開團隊。或者您可以選擇刪除該團隊。" -#: src/app/main/ui/dashboard/change_owner.cljs:49 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-and-reassign.title" msgstr "離開前" -#: src/app/main/ui/dashboard/sidebar.cljs:402, src/app/main/ui/dashboard/sidebar.cljs:424, src/app/main/ui/dashboard/team.cljs:394, src/app/main/ui/dashboard/team.cljs:416 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-confirm.accept" msgstr "離開團隊" -#: src/app/main/ui/dashboard/sidebar.cljs:401, src/app/main/ui/dashboard/team.cljs:415 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-confirm.message" msgstr "您確定要離開這個團隊嗎?" -#: src/app/main/ui/dashboard/sidebar.cljs:400, src/app/main/ui/dashboard/sidebar.cljs:421, src/app/main/ui/dashboard/team.cljs:391, src/app/main/ui/dashboard/team.cljs:414 +#: src/app/main/ui/dashboard/sidebar.cljs msgid "modals.leave-confirm.title" msgstr "正在離開團隊" -#: src/app/main/ui/dashboard/team.cljs:338 +#: src/app/main/ui/dashboard/team.cljs msgid "modals.promote-owner-confirm.message" msgstr "您是此團隊的當前擁有者。您是否確實要使 %s 成為團隊的新擁有者?" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:380 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.accept" msgstr "更新" -#: src/app/main/ui/workspace/sidebar/assets/common.cljs:379 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs, src/app/main/ui/workspace/context_menu.cljs msgid "modals.update-remote-component.cancel" msgstr "取消" -#: src/app/main/ui/settings/change_email.cljs:63 +#: src/app/main/ui/settings/change_email.cljs msgid "notifications.validation-email-sent" msgstr "已將驗證信傳送至 %s。請查看您的電子郵件信箱!" -#, unused msgid "onboarding-v2.before-start.desc1" msgstr "我們有許多協助你開始使用Penpot的資源,例如使用者指南及我們的 Youtube 頻道。" -#: src/app/main/ui/onboarding/newsletter.cljs:97 msgid "onboarding-v2.newsletter.privacy2" msgstr "我們只會向您發送相關電子郵件。您可以隨時在我們的通訊中通過取消訂閱連結來取消訂閱。" -#, unused msgid "onboarding-v2.welcome.desc1" msgstr "Penpot係由Kaleidos及與社群成員共同協作的開放原始碼軟件。所有人皆可以下方法協作:" -#, unused msgid "onboarding-v2.welcome.desc2" msgstr "這是與整個社群和 Penpot 核心團隊一起學習、分享和討論 Penpot、它的現在和未來的公共空間。" -#, unused msgid "onboarding.welcome.alt" msgstr "Penpot" -#: src/app/main/ui/auth/recovery.cljs:99 +#: src/app/main/ui/auth/recovery.cljs msgid "profile.recovery.go-to-login" msgstr "前往登入" -#: src/app/main/ui/viewer/inspect/exports.cljs:147, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:631, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:137, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:148, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:188, src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:158, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:399, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:410, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:430, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:441, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:458, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:472, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:309, src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:183, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:373, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:389, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:245, src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:172 +#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs, src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs, src/app/main/ui/workspace/sidebar/options/menus/layer.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs, src/app/main/ui/workspace/sidebar/options/menus/blur.cljs msgid "settings.multiple" msgstr "混合" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:420 msgid "shortcut-section.dashboard" msgstr "儀表板" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:423 msgid "shortcut-section.viewer" msgstr "檢視者" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:417 msgid "shortcut-section.workspace" msgstr "工作區" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:57 msgid "shortcut-subsection.edit" msgstr "編輯" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:60 msgid "shortcut-subsection.main-menu" msgstr "主功能表" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:69 msgid "shortcut-subsection.tools" msgstr "工具" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:70 msgid "shortcut-subsection.zoom-viewer" msgstr "縮放" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:71 msgid "shortcut-subsection.zoom-workspace" msgstr "縮放" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:72 msgid "shortcuts.add-comment" msgstr "評論" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:93 msgid "shortcuts.copy" msgstr "複製" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:96 msgid "shortcuts.cut" msgstr "剪下" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:98 msgid "shortcuts.delete" msgstr "刪除" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:101 msgid "shortcuts.draw-curve" msgstr "曲線" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:103 msgid "shortcuts.draw-frame" msgstr "畫板" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:105 msgid "shortcuts.draw-path" msgstr "路徑" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:106 msgid "shortcuts.draw-rect" msgstr "矩形" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:107 msgid "shortcuts.draw-text" msgstr "文字" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:108 msgid "shortcuts.duplicate" msgstr "複本" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:109 msgid "shortcuts.escape" msgstr "取消" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:118 msgid "shortcuts.go-to-search" msgstr "搜尋" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:119 msgid "shortcuts.group" msgstr "群組" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:260 msgid "shortcuts.or" msgstr " 或 " -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:186 msgid "shortcuts.toggle-alignment" msgstr "切換動態對齊" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:188 msgid "shortcuts.toggle-colorpalette" msgstr "切換調色板" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:189 msgid "shortcuts.toggle-focus-mode" msgstr "切換專注模式" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:192 msgid "shortcuts.toggle-history" msgstr "切換歷史記錄" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:193 msgid "shortcuts.toggle-layers" msgstr "切換圖層" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:196 msgid "shortcuts.toggle-lock" msgstr "鎖定選擇" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:197 msgid "shortcuts.toggle-lock-size" msgstr "鎖定比例" -#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:208 msgid "shortcuts.ungroup" msgstr "取消群組" -#: src/app/main/ui/dashboard/files.cljs:158 +#: src/app/main/ui/dashboard/files.cljs msgid "title.dashboard.files" msgstr "%s – Penpot" -#: src/app/main/ui/dashboard/fonts.cljs:36 +#: src/app/main/ui/dashboard/fonts.cljs msgid "title.dashboard.fonts" msgstr "字型 - %s - Penpot" -#: src/app/main/ui/dashboard/projects.cljs:320 +#: src/app/main/ui/dashboard/projects.cljs msgid "title.dashboard.projects" msgstr "專案 - %s - Penpot" -#: src/app/main/ui/dashboard/search.cljs:32 +#: src/app/main/ui/dashboard/search.cljs msgid "title.dashboard.search" msgstr "搜尋 - %s - Penpot" -#: src/app/main/ui/auth/verify_token.cljs:68, src/app/main/ui/auth.cljs:54 +#: src/app/main/ui/auth/verify_token.cljs, src/app/main/ui/auth.cljs msgid "title.default" msgstr "Penpot - 給團隊設計的自由" -#: src/app/main/ui/settings/feedback.cljs:110 +#: src/app/main/ui/settings/feedback.cljs msgid "title.settings.feedback" msgstr "提供回饋 - Penpot" -#: src/app/main/ui/settings/options.cljs:80 +#: src/app/main/ui/settings/options.cljs msgid "title.settings.options" msgstr "設定 - Penpot" -#: src/app/main/ui/settings/password.cljs:115 +#: src/app/main/ui/settings/password.cljs msgid "title.settings.password" msgstr "密碼 - Penpot" -#: src/app/main/ui/settings/profile.cljs:115 +#: src/app/main/ui/settings/profile.cljs msgid "title.settings.profile" msgstr "個人資料 - Penpot" -#: src/app/main/ui/dashboard/team.cljs:493 +#: src/app/main/ui/dashboard/team.cljs msgid "title.team-members" msgstr "成員 - %s - Penpot" -#: src/app/main/ui/dashboard/team.cljs:1036 +#: src/app/main/ui/dashboard/team.cljs msgid "title.team-settings" msgstr "設定 - %s - Penpot" -#: src/app/main/ui/viewer.cljs:419 +#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs msgid "title.viewer" msgstr "%s - 檢視模式 - Penpot" -#: src/app/main/ui/workspace.cljs:190 +#: src/app/main/ui/workspace.cljs msgid "title.workspace" msgstr "%s - Penpot" -#: src/app/main/ui.cljs:144 msgid "viewer.breaking-change.description" msgstr "這個共用連結已失效,建立一個新連結,或向擁有者要求一個。" -#: src/app/main/ui.cljs:143 msgid "viewer.breaking-change.message" msgstr "抱歉!" -#: src/app/main/ui/viewer/interactions.cljs:282 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.interactions" msgstr "交互作用" -#: src/app/main/ui/viewer/share_link.cljs:187 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.share.copy-link" msgstr "複製連結" -#: src/app/main/ui/viewer/header.cljs:231 +#: src/app/main/ui/viewer/header.cljs msgid "viewer.header.sitemap" msgstr "網站地圖" #: src/app/main/ui/workspace/sidebar/assets.cljs -#, unused msgid "workspace.assets.assets" msgstr "資產" -#: src/app/main/ui/dashboard/grid.cljs:130, src/app/main/ui/dashboard/grid.cljs:162, src/app/main/ui/workspace/sidebar/assets/colors.cljs:485, src/app/main/ui/workspace/sidebar/assets.cljs:150 +#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.colors" msgstr "顏色" -#: src/app/main/ui/dashboard/grid.cljs:126, src/app/main/ui/dashboard/grid.cljs:141, src/app/main/ui/workspace/sidebar/assets/components.cljs:513, src/app/main/ui/workspace/sidebar/assets.cljs:139 +#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.components" msgstr "元件" -#: src/app/main/ui/workspace/context_menu.cljs:529, src/app/main/ui/workspace/sidebar/assets/colors.cljs:251, src/app/main/ui/workspace/sidebar/assets/components.cljs:577, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:424, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:443 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.delete" msgstr "刪除" -#: src/app/main/ui/workspace/context_menu.cljs:534, src/app/main/ui/workspace/sidebar/assets/components.cljs:572 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs, src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.duplicate" msgstr "複本" -#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:247, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:439 +#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.edit" msgstr "編輯" -#: src/app/main/ui/workspace/sidebar/assets/graphics.cljs:384, src/app/main/ui/workspace/sidebar/assets.cljs:145 +#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.graphics" msgstr "圖形" -#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:255, src/app/main/ui/workspace/sidebar/assets/components.cljs:581, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:428, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:448 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.group" msgstr "群組" -#: src/app/main/ui/workspace/sidebar/assets.cljs:168 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.libraries" msgstr "檔案庫" -#: src/app/main/ui/workspace/context_menu.cljs:532, src/app/main/ui/workspace/sidebar/assets/colors.cljs:243, src/app/main/ui/workspace/sidebar/assets/components.cljs:566, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:421, src/app/main/ui/workspace/sidebar/assets/groups.cljs:63, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:434 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.rename" msgstr "重新命名" -#: src/app/main/ui/dashboard/grid.cljs:134, src/app/main/ui/dashboard/grid.cljs:189, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:397, src/app/main/ui/workspace/sidebar/assets.cljs:155 +#: src/app/main/ui/workspace/sidebar/assets.cljs, src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.typography" msgstr "字體排版設計" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused msgid "workspace.assets.typography.font-id" msgstr "字型" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:505 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.font-size" msgstr "尺寸" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:501 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs msgid "workspace.assets.typography.font-variant-id" msgstr "變體" -#: src/app/main/ui/dashboard/grid.cljs:199, src/app/main/ui/workspace/libraries.cljs:461, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:464, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:489, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:596, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:615 +#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs, src/app/main/ui/inspect/attributes/text.cljs, src/app/main/ui/inspect/attributes/text.cljs +#, fuzzy msgid "workspace.assets.typography.sample" msgstr "Ag" -#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:66 +#: src/app/main/ui/workspace/sidebar/assets.cljs msgid "workspace.assets.ungroup" msgstr "取消群組" -#: src/app/main/ui/workspace/main_menu.cljs:720 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.file" msgstr "檔案" -#: src/app/main/ui/workspace/main_menu.cljs:753 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.preferences" msgstr "偏好設定" -#: src/app/main/ui/workspace/main_menu.cljs:742 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.option.view" msgstr "檢視" -#: src/app/main/ui/workspace/main_menu.cljs:432 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.menu.select-all" msgstr "全選" -#: src/app/main/ui/viewer/header.cljs:98, src/app/main/ui/workspace/right_header.cljs:120 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.reset-zoom" msgstr "重設" -#: src/app/main/ui/workspace/right_header.cljs:52 +#: src/app/main/ui/workspace/header.cljs msgid "workspace.header.saved" msgstr "已儲存" #: src/app/main/ui/workspace/header.cljs -#, unused msgid "workspace.header.saving" msgstr "正在儲存" #: src/app/main/ui/workspace/libraries.cljs -#, unused msgid "workspace.libraries.add" msgstr "新增" #: src/app/main/ui/workspace/colorpicker.cljs -#, unused msgid "workspace.libraries.colors.hsv" msgstr "HSV" #: src/app/main/ui/workspace/colorpicker.cljs -#, unused msgid "workspace.libraries.colors.rgba" msgstr "RGBA" -#: src/app/main/ui/workspace/libraries.cljs:526, src/app/main/ui/workspace/libraries.cljs:531 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.libraries" msgstr "檔案庫" #: src/app/main/ui/workspace/libraries.cljs -#, unused msgid "workspace.libraries.library" msgstr "檔案庫" -#: src/app/main/ui/workspace/libraries.cljs:402 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.update" msgstr "更新" -#: src/app/main/ui/workspace/libraries.cljs:536 +#: src/app/main/ui/workspace/libraries.cljs msgid "workspace.libraries.updates" msgstr "更新" -#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:86, src/app/main/ui/workspace/sidebar/options/menus/blur.cljs:102 +#: src/app/main/ui/workspace/sidebar/options/menus/blur.cljs msgid "workspace.options.blur-options.title" msgstr "模糊" -#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs:600, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:605 +#: src/app/main/ui/workspace/sidebar/options/menus/component.cljs msgid "workspace.options.component" msgstr "元件" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:163 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints" msgstr "約束條件" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:150 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.bottom" msgstr "下" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:141, src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:152 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.center" msgstr "中" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:229 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.fix-when-scrolling" msgstr "滾動時固定位置" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:138 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.left" msgstr "左" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:140 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.leftright" msgstr "左和右" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:139 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.right" msgstr "右" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:149 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.top" msgstr "上" -#: src/app/main/ui/workspace/sidebar/options/menus/constraints.cljs:151 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.constraints.topbottom" msgstr "上和下" -#: src/app/main/ui/workspace/sidebar/options.cljs:112 +#: src/app/main/ui/workspace/sidebar/options.cljs msgid "workspace.options.design" msgstr "設計" -#: src/app/main/ui/viewer/inspect/exports.cljs:139 +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs msgid "workspace.options.export" msgstr "匯出" #: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs -#, unused msgid "workspace.options.export-multiple" msgstr "匯出已選取項目" -#: src/app/main/ui/viewer/inspect/exports.cljs:195, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:237 +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs msgid "workspace.options.export-object" msgid_plural "workspace.options.export-object" msgstr[0] "匯出 %s 元素" -#: src/app/main/ui/viewer/inspect/exports.cljs:178, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:219 +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs msgid "workspace.options.export.suffix" msgstr "後綴" -#: src/app/main/ui/export.cljs:240 +#: 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.exporting-complete" msgstr "完成匯出" -#: src/app/main/ui/export.cljs:172, src/app/main/ui/export.cljs:241, src/app/main/ui/viewer/inspect/exports.cljs:194, src/app/main/ui/workspace/sidebar/options/menus/exports.cljs:236 +#: src/app/main/ui/workspace/sidebar/options/menus/exports.cljs, src/app/main/ui/inspect/exports.cljs msgid "workspace.options.exporting-object" msgstr "正在匯出…" -#: src/app/main/ui/export.cljs:239 +#: 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.exporting-object-error" msgstr "匯出失敗" -#: src/app/main/ui/export.cljs:242 +#: 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.exporting-object-slow" msgstr "匯出異常緩慢" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:49, src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:174 +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs msgid "workspace.options.fill" msgstr "填充" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:29 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.auto" msgstr "自動" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:157 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.column" msgstr "欄" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.params.columns" msgstr "欄" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:246 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.height" msgstr "高度" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.params.rows" msgstr "列" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:216, src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:290 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.set-default" msgstr "設置為預設值" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.params.size" msgstr "尺寸" #: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs -#, unused msgid "workspace.options.grid.params.type" msgstr "類型" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:231 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.bottom" msgstr "下" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:229 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.center" msgstr "中" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:228 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.left" msgstr "左" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:232 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.right" msgstr "右" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:227 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.type.top" msgstr "上" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:247 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.params.width" msgstr "寬度" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:158 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.row" msgstr "列" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:156 +#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs msgid "workspace.options.grid.square" msgstr "正方形" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:406 msgid "workspace.options.height" msgstr "高度" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:614 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-animation" msgstr "動畫" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:405 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-animation-none" msgstr "無" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:391 msgid "workspace.options.interaction-auto" msgstr "自動" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:456 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-delay" msgstr "延遲" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:415 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-easing-linear" msgstr "線性" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:458, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:459, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:464, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:663, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:665, src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:669 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-ms" msgstr "毫秒" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:396 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-pos-manual" msgstr "手動" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:524 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-position" msgstr "位置" -#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs:503 +#: src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs msgid "workspace.options.interaction-url" msgstr "網址" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:137 +#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs msgid "workspace.options.layer-options.blend-mode.color" msgstr "顏色" -#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs:564 +#: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs msgid "workspace.options.layout-item.layout-item-max-h" msgstr "最高" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout-item.title.layout-item-min-h" msgstr "最小高度" #: src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs -#, unused msgid "workspace.options.layout-item.title.layout-item-min-w" msgstr "最小寬度" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.bottom" msgstr "下" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.left" msgstr "左" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.right" msgstr "右" #: src/app/main/ui/workspace/sidebar/options/menus/layout.cljs -#, unused msgid "workspace.options.layout.top" msgstr "上" -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:146 +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs msgid "workspace.options.more-colors" msgstr "更多顏色" -#: src/app/main/ui/workspace/sidebar/options/menus/layer.cljs:161 msgid "workspace.options.opacity" msgstr "不透明度" #: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs -#, unused msgid "workspace.options.position" msgstr "位置" -#: src/app/main/ui/workspace/sidebar/options.cljs:157 +#: src/app/main/ui/workspace/sidebar/options.cljs msgid "workspace.options.prototype" msgstr "原型" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:469, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:481 msgid "workspace.options.radius" msgstr "圓角半徑" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:532 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.radius.all-corners" msgstr "所有角落" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:533 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.radius.single-corners" msgstr "個別角落" -#: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs:183 msgid "workspace.options.recent-fonts" msgstr "最近" -#: src/app/main/ui/export.cljs:284 +#: 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 "重試" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:451 +#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.rotation" msgstr "旋轉" -#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs:105 +#: src/app/main/ui/workspace/sidebar/options/menus/color_selection.cljs msgid "workspace.options.selection-color" msgstr "已選顏色" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:40, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:198, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:200 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.blur" msgstr "模糊" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:38, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:186 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.offsetx" msgstr "X" -#: src/app/main/ui/viewer/inspect/attributes/shadow.cljs:39, src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:224 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.offsety" msgstr "Y" -#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs:296 +#: src/app/main/ui/workspace/sidebar/options/menus/shadow.cljs msgid "workspace.options.shadow-options.title" msgstr "陰影" -#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs:193 +#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs msgid "workspace.options.show-fill-on-export" msgstr "在匯出中顯示" -#: src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs:162 +#: src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs, src/app/main/ui/workspace/sidebar/options/menus/measures.cljs msgid "workspace.options.size" msgstr "尺寸" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:124 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.none" msgstr "無" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:133 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke-cap.square" msgstr "正方形" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:87 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.center" msgstr "置中" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:105 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.dashed" msgstr "虛線" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:104 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.dotted" msgstr "點線" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:88 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.inner" msgstr "裏面" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:89 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.outer" msgstr "外面" -#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:103 +#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs msgid "workspace.options.stroke.solid" msgstr "實線" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:82 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.direction-ltr" msgstr "左至右" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:87 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.direction-rtl" msgstr "右至左" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused msgid "workspace.options.text-options.lowercase" msgstr "小寫" #: src/app/main/ui/workspace/sidebar/options/menus/text.cljs, src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused msgid "workspace.options.text-options.none" msgstr "無" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:51 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.text-align-center" msgstr "置中 (%s)" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:189 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.title" msgstr "文字" -#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs:171 +#: src/app/main/ui/workspace/sidebar/options/menus/text.cljs msgid "workspace.options.text-options.underline" msgstr "底線" #: src/app/main/ui/workspace/sidebar/options/menus/typography.cljs -#, unused msgid "workspace.options.text-options.uppercase" msgstr "大寫" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:427 msgid "workspace.options.x" msgstr "X軸" -#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs:438 msgid "workspace.options.y" msgstr "Y 軸" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:167 msgid "workspace.path.actions.add-node" msgstr "新增節點 (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:174 msgid "workspace.path.actions.delete-node" msgstr "刪除節點(%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:152 msgid "workspace.path.actions.draw-nodes" msgstr "繪製節點 (%s)" -#: src/app/main/ui/workspace/viewport/path_actions.cljs:189 msgid "workspace.path.actions.join-nodes" msgstr "聯接節點 (%s)" -#: src/app/main/ui/workspace/context_menu.cljs:139 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.copy" msgstr "複製" -#: src/app/main/ui/workspace/context_menu.cljs:142 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.cut" msgstr "剪下" -#: src/app/main/ui/workspace/context_menu.cljs:486 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.delete" msgstr "刪除" -#: src/app/main/ui/workspace/context_menu.cljs:148 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.duplicate" msgstr "複本" -#: src/app/main/ui/workspace/context_menu.cljs:321 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.edit" msgstr "編輯" -#: src/app/main/ui/workspace/context_menu.cljs:261 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.group" msgstr "群組" -#: src/app/main/ui/workspace/context_menu.cljs:363, src/app/main/ui/workspace/sidebar/layer_item.cljs:145 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.hide" msgstr "隱藏" -#: src/app/main/ui/workspace/context_menu.cljs:548, src/app/main/ui/workspace/main_menu.cljs:408 msgid "workspace.shape.menu.hide-ui" msgstr "顯示/隱藏使用者介面" -#: src/app/main/ui/workspace/context_menu.cljs:371, src/app/main/ui/workspace/sidebar/layer_item.cljs:153 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.lock" msgstr "鎖定" -#: src/app/main/ui/workspace/context_menu.cljs:145, src/app/main/ui/workspace/context_menu.cljs:545 +#: src/app/main/ui/workspace/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.paste" msgstr "貼上" -#: src/app/main/ui/workspace/context_menu.cljs:331 msgid "workspace.shape.menu.path" msgstr "路徑" -#: src/app/main/ui/workspace/context_menu.cljs:174 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.select-layer" msgstr "選擇圖層" -#: src/app/main/ui/workspace/context_menu.cljs:360, src/app/main/ui/workspace/sidebar/layer_item.cljs:144 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.show" msgstr "顯示" -#: src/app/main/ui/workspace/context_menu.cljs:221 msgid "workspace.shape.menu.thumbnail-remove" msgstr "移除縮圖" -#: src/app/main/ui/workspace/context_menu.cljs:223 msgid "workspace.shape.menu.thumbnail-set" msgstr "設置為縮圖" -#: src/app/main/ui/workspace/context_menu.cljs:257 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.ungroup" msgstr "取消群組" -#: src/app/main/ui/workspace/context_menu.cljs:368, src/app/main/ui/workspace/sidebar/layer_item.cljs:152 +#: src/app/main/ui/workspace/context_menu.cljs msgid "workspace.shape.menu.unlock" msgstr "解除鎖定" -#: src/app/main/ui/workspace/sidebar/layers.cljs:310, src/app/main/ui/workspace/sidebar/layers.cljs:408 msgid "workspace.sidebar.layers.images" msgstr "圖像" -#: src/app/main/ui/workspace/sidebar/layers.cljs:309, src/app/main/ui/workspace/sidebar/layers.cljs:394 msgid "workspace.sidebar.layers.texts" msgstr "文字" -#: src/app/main/ui/workspace/sidebar/sitemap.cljs:217 +#: src/app/main/ui/workspace/sidebar/sitemap.cljs msgid "workspace.sidebar.sitemap" msgstr "頁" -#: src/app/main/ui/workspace/sidebar/history.cljs:111 msgid "workspace.undo.entry.multiple.circle" msgstr "圖形" -#: src/app/main/ui/workspace/sidebar/history.cljs:114 msgid "workspace.undo.entry.multiple.curve" msgstr "曲線" -#: src/app/main/ui/workspace/sidebar/history.cljs:115 msgid "workspace.undo.entry.multiple.frame" msgstr "畫板" -#: src/app/main/ui/workspace/sidebar/history.cljs:118 msgid "workspace.undo.entry.multiple.multiple" msgstr "物件" -#: src/app/main/ui/workspace/sidebar/history.cljs:119 msgid "workspace.undo.entry.multiple.page" msgstr "頁" -#: src/app/main/ui/workspace/sidebar/history.cljs:120 msgid "workspace.undo.entry.multiple.path" msgstr "路徑" -#: src/app/main/ui/workspace/sidebar/history.cljs:121 msgid "workspace.undo.entry.multiple.rect" msgstr "矩形" -#: src/app/main/ui/workspace/sidebar/history.cljs:122 msgid "workspace.undo.entry.multiple.shape" msgstr "形狀" -#: src/app/main/ui/workspace/sidebar/history.cljs:123 msgid "workspace.undo.entry.multiple.text" msgstr "文字" -#: src/app/main/ui/workspace/sidebar/history.cljs:124 msgid "workspace.undo.entry.multiple.typography" msgstr "字元樣式資產" -#: src/app/main/ui/workspace/sidebar/history.cljs:125 msgid "workspace.undo.entry.single.circle" msgstr "圓圈" -#: src/app/main/ui/workspace/sidebar/history.cljs:126 msgid "workspace.undo.entry.single.color" msgstr "顏色素材" -#: src/app/main/ui/workspace/sidebar/history.cljs:128 msgid "workspace.undo.entry.single.curve" msgstr "曲線" -#: src/app/main/ui/workspace/sidebar/history.cljs:129 msgid "workspace.undo.entry.single.frame" msgstr "畫板" -#: src/app/main/ui/workspace/sidebar/history.cljs:130 msgid "workspace.undo.entry.single.group" msgstr "群組" -#: src/app/main/ui/workspace/sidebar/history.cljs:131 msgid "workspace.undo.entry.single.image" msgstr "影像" -#: src/app/main/ui/workspace/sidebar/history.cljs:133 msgid "workspace.undo.entry.single.multiple" msgstr "物件" -#: src/app/main/ui/workspace/sidebar/history.cljs:134 msgid "workspace.undo.entry.single.page" msgstr "頁面" -#: src/app/main/ui/workspace/sidebar/history.cljs:135 msgid "workspace.undo.entry.single.path" msgstr "路徑" -#: src/app/main/ui/workspace/sidebar/history.cljs:136 msgid "workspace.undo.entry.single.rect" msgstr "矩形" -#: src/app/main/ui/workspace/sidebar/history.cljs:137 msgid "workspace.undo.entry.single.shape" msgstr "形狀" -#: src/app/main/ui/workspace/sidebar/history.cljs:138 msgid "workspace.undo.entry.single.text" msgstr "文字" -#: src/app/main/ui/workspace/sidebar/history.cljs:149 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.entry.unknown" msgstr "操作覆蓋%s" -#: src/app/main/ui/workspace/sidebar/history.cljs:335 +#: src/app/main/ui/workspace/sidebar/history.cljs msgid "workspace.undo.title" msgstr "歷史" -#: src/app/main/data/workspace/libraries.cljs:1094 +#: src/app/main/data/workspace/libraries.cljs +#, fuzzy msgid "workspace.updates.dismiss" msgstr "解散" -#: src/app/main/data/workspace/libraries.cljs:1090 +#: src/app/main/data/workspace/libraries.cljs msgid "workspace.updates.there-are-updates" msgstr "共用檔案庫有更新" -#: src/app/main/data/workspace/libraries.cljs:1097 +#: src/app/main/data/workspace/libraries.cljs msgid "workspace.updates.update" msgstr "更新" -#, unused msgid "workspace.viewport.click-to-close-path" msgstr "點擊以關閉路徑" + +#: src/app/main/ui/settings/access-tokens.cljs +msgid "dashboard.access-tokens.expiration-never" +msgstr "從不" + +#: src/app/main/ui/settings/access-tokens.cljs +msgid "dashboard.access-tokens.expiration-60-days" +msgstr "60 天" + +#: src/app/main/ui/settings/access-tokens.cljs +msgid "dashboard.access-tokens.token-will-not-expire" +msgstr "權杖沒有到期時間" + +#: src/app/main/ui/settings/access-tokens.cljs +msgid "dashboard.access-tokens.expiration-180-days" +msgstr "180 天" + +#: src/app/main/ui/settings/access-tokens.cljs +msgid "dashboard.access-tokens.expiration-30-days" +msgstr "30 天" + +#, fuzzy +msgid "dashboard.export.options.all.message" +msgstr "使用了共用資料庫的檔案將被包含在匯出內,並保持他們的連結關係。" + +#: src/app/main/ui/settings/access-tokens.cljs +msgid "dashboard.access-tokens.create" +msgstr "產生新的 Token" + +#: src/app/main/ui/settings/access-tokens.cljs +msgid "dashboard.access-tokens.empty.no-access-tokens" +msgstr "你目前還沒有 Tokens。" + +#: src/app/main/ui/settings/access-tokens.cljs +msgid "dashboard.access-tokens.empty.add-one" +msgstr "按下\"產生新 Token\" 按鈕來產生一個。" + +#: src/app/main/ui/settings/access-tokens.cljs +msgid "dashboard.access-tokens.create.success" +msgstr "已成功建立 Access Token。" + +#: src/app/main/ui/settings/access-tokens.cljs +msgid "dashboard.access-tokens.no-expiration" +msgstr "沒有到期時間" + +#: src/app/main/ui/settings/access-tokens.cljs +msgid "dashboard.access-tokens.copied-success" +msgstr "已複製 Token" + +#: src/app/main/ui/settings/access-tokens.cljs +msgid "dashboard.access-tokens.errors-required-name" +msgstr "名稱是必填的" + +#: src/app/main/ui/settings/access-tokens.cljs +msgid "dashboard.access-tokens.token-will-expire" +msgstr "權杖將於 %s 到期" + +msgid "dashboard.export.options.merge.title" +msgstr "將共享資料庫的內容加入檔案資料庫" + +#: src/app/main/ui/settings/team-form.cljs, src/app/main/ui/auth/register.cljs, src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/onboarding/team_choice.cljs, src/app/main/ui/settings/access_tokens.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/settings/profile.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +msgid "auth.name.not-all-space" +msgstr "名稱內必須包含空白以外的文字。" + +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/onboarding/team_choice.cljs, src/app/main/ui/settings/access_tokens.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/settings/profile.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +msgid "auth.name.too-long" +msgstr "名稱最多包含 250 個字元。" + +#: src/app/main/ui/settings/access-tokens.cljs +msgid "dashboard.access-tokens.expiration-90-days" +msgstr "90 天" + +#: src/app/main/ui/settings/access-tokens.cljs +msgid "dashboard.access-tokens.expires-on" +msgstr "將於 %s 過期" + +#: src/app/main/ui/settings/access-tokens.cljs +msgid "dashboard.access-tokens.expired-on" +msgstr "已於 %s 過期" + +#: src/app/main/ui/dashboard/file_menu.cljs +msgid "dashboard.success-delete-file" +msgid_plural "dashboard.success-delete-file" +msgstr[0] "已成功刪除您的檔案" + +#: src/app/main/ui/dashboard/file_menu.cljs +#, fuzzy +msgid "dashboard.success-duplicate-file" +msgid_plural "dashboard.success-delete-file" +msgstr[0] "已成功為您的檔案建立副本" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.login-account-title" +msgstr "登入我的帳號" + +#: src/app/main/ui/auth/login.cljs +msgid "auth.login-tagline" +msgstr "Penpot 是用於設計與開發協作,免費且開源的設計工具" + +#: src/app/main/ui/onboarding/questions.cljs +msgid "branding-illustrations-marketing-pieces" +msgstr "...品牌設計、插畫、行銷素材等。" + +#: src/app/main/ui/auth/register.cljs +msgid "auth.password-not-empty" +msgstr "密碼必須包含空白以外的字元。" + +#: src/app/main/ui/settings/access-tokens.cljs +msgid "dashboard.access-tokens.personal" +msgstr "個人存取權杖" + +msgid "dashboard.export.options.detach.message" +msgstr "共用資料庫將不包含在匯出檔案內,且資產不會被加入資料庫。 " + +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +msgid "dashboard.remove-shared" +msgstr "不再作為共用資料庫" + +#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs +msgid "dashboard.unpublish-shared" +msgstr "取消發佈資料庫" + +msgid "errors.cannot-upload" +msgstr "無法上傳此媒體檔案。" + +#: src/app/main/ui/settings/access-tokens.cljs +msgid "dashboard.access-tokens.personal.description" +msgstr "個人存取權杖就像是帳號密碼驗證系統的替代方案,且可用於讓第三方應用程式存取 " +"Penpot 內部 API" + +#: src/app/main/data/users.cljs +msgid "errors.email-domain-not-allowed" +msgstr "不允許此域名" + +msgid "errors.paste-data-validation" +msgstr "剪貼簿中的資料無效" + +msgid "dashboard.import.analyze-error.components-v2" +msgstr "檔案中啟用了 Components v2 但這個團隊尚未支援。" + +#: src/app/main/ui/confirm.cljs +msgid "ds.component-subtitle" +msgstr "待更新的元件:" + +#: src/app/main/data/users.cljs +msgid "errors.auth-provider-not-allowed" +msgstr "此設定檔不允許此驗證提供者" From f095e1b29fd5dd4487d05890a5205039196c6f14 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Thu, 20 Jun 2024 08:03:18 +0200 Subject: [PATCH 311/476] :sparkles: Replace custom all-spaces? fn with generic str/blank? --- frontend/src/app/main/ui/comments.cljs | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/frontend/src/app/main/ui/comments.cljs b/frontend/src/app/main/ui/comments.cljs index fd156e6a70..5427b29f14 100644 --- a/frontend/src/app/main/ui/comments.cljs +++ b/frontend/src/app/main/ui/comments.cljs @@ -17,7 +17,6 @@ [app.main.refs :as refs] [app.main.store :as st] [app.main.ui.components.dropdown :refer [dropdown]] - [app.main.ui.components.forms :as fm] [app.main.ui.icons :as i] [app.util.dom :as dom] [app.util.i18n :as i18n :refer [tr]] @@ -96,7 +95,7 @@ (let [show-buttons? (mf/use-state false) content (mf/use-state "") - disabled? (or (fm/all-spaces? @content) + disabled? (or (str/blank? @content) (str/empty-or-nil? @content)) on-focus @@ -155,7 +154,7 @@ pos-x (* (:x position) zoom) pos-y (* (:y position) zoom) - disabled? (or (fm/all-spaces? content) + disabled? (or (str/blank? content) (str/empty-or-nil? content)) on-esc @@ -225,7 +224,7 @@ (mf/deps @content) (fn [] (on-submit @content))) - disabled? (or (fm/all-spaces? @content) + disabled? (or (str/blank? @content) (str/empty-or-nil? @content))] [:div {:class (stl/css :edit-form)} From 7be79c10fd4cbdef5499d4be583daf3d69826a38 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Thu, 13 Jun 2024 11:43:21 +0200 Subject: [PATCH 312/476] :recycle: Refactor forms Mainly replace spec with schema with better and more reusable validations --- common/src/app/common/data.cljc | 9 +- common/src/app/common/schema.cljc | 185 ++++++++++++++++-- common/src/app/common/schema/generators.cljc | 21 +- frontend/src/app/main/ui/auth/login.cljs | 21 +- frontend/src/app/main/ui/auth/recovery.cljs | 41 ++-- .../app/main/ui/auth/recovery_request.cljs | 29 ++- frontend/src/app/main/ui/auth/register.cljs | 153 ++++++--------- .../src/app/main/ui/components/forms.cljs | 60 ++---- .../app/main/ui/dashboard/change_owner.cljs | 11 +- frontend/src/app/main/ui/dashboard/team.cljs | 40 ++-- .../src/app/main/ui/dashboard/team_form.cljs | 24 ++- .../src/app/main/ui/onboarding/questions.cljs | 176 ++++++++--------- .../app/main/ui/onboarding/team_choice.cljs | 34 ++-- .../app/main/ui/settings/access_tokens.cljs | 25 +-- .../app/main/ui/settings/change_email.cljs | 56 ++---- .../src/app/main/ui/settings/feedback.cljs | 27 ++- .../src/app/main/ui/settings/options.cljs | 13 +- .../src/app/main/ui/settings/password.cljs | 52 ++--- .../src/app/main/ui/settings/profile.cljs | 57 +++--- .../ui/workspace/sidebar/assets/groups.cljs | 22 +-- frontend/src/app/util/forms.cljs | 183 +++++++++-------- frontend/translations/af.po | 20 +- frontend/translations/ar.po | 20 +- frontend/translations/bn.po | 2 +- frontend/translations/ca.po | 4 +- frontend/translations/cs.po | 28 +-- frontend/translations/da.po | 2 +- frontend/translations/de.po | 40 +--- frontend/translations/el.po | 4 +- frontend/translations/en.po | 33 ++-- frontend/translations/es.po | 33 ++-- frontend/translations/es_419.po | 19 +- frontend/translations/eu.po | 6 +- frontend/translations/fa.po | 4 +- frontend/translations/fin_FI.po | 2 +- frontend/translations/fr.po | 28 +-- frontend/translations/gl.po | 2 +- frontend/translations/ha.po | 24 +-- frontend/translations/he.po | 40 +--- frontend/translations/hr.po | 4 +- frontend/translations/id.po | 40 +--- frontend/translations/ig.po | 24 +-- frontend/translations/it.po | 4 +- frontend/translations/jpn_JP.po | 4 +- frontend/translations/ko.po | 22 +-- frontend/translations/lt.po | 2 +- frontend/translations/lv.po | 28 +-- frontend/translations/ml.po | 2 +- frontend/translations/ms.po | 24 +-- frontend/translations/nb_NO.po | 2 +- frontend/translations/nl.po | 40 +--- frontend/translations/pl.po | 6 +- frontend/translations/pt_BR.po | 6 +- frontend/translations/pt_PT.po | 41 +--- frontend/translations/ro.po | 28 +-- frontend/translations/ru.po | 4 +- frontend/translations/ta.po | 2 +- frontend/translations/tr.po | 28 +-- frontend/translations/ukr_UA.po | 2 +- frontend/translations/yo.po | 24 +-- frontend/translations/zh_CN.po | 40 +--- frontend/translations/zh_Hant.po | 24 +-- 62 files changed, 786 insertions(+), 1165 deletions(-) diff --git a/common/src/app/common/data.cljc b/common/src/app/common/data.cljc index 645091fd0a..ecf55b115f 100644 --- a/common/src/app/common/data.cljc +++ b/common/src/app/common/data.cljc @@ -9,7 +9,7 @@ data resources." (:refer-clojure :exclude [read-string hash-map merge name update-vals parse-double group-by iteration concat mapcat - parse-uuid max min]) + parse-uuid max min regexp?]) #?(:cljs (:require-macros [app.common.data])) @@ -641,6 +641,13 @@ ;; Utilities ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +(defn regexp? + "Return `true` if `x` is a regexp pattern + instance." + [x] + #?(:cljs (cljs.core/regexp? x) + :clj (instance? java.util.regex.Pattern x))) + (defn nilf "Returns a new function that if you pass nil as any argument will return nil" diff --git a/common/src/app/common/schema.cljc b/common/src/app/common/schema.cljc index a74b88f1f0..37636d5b24 100644 --- a/common/src/app/common/schema.cljc +++ b/common/src/app/common/schema.cljc @@ -44,6 +44,14 @@ [o] (m/schema? o)) +(defn properties + [s] + (m/properties s)) + +(defn type-properties + [s] + (m/type-properties s)) + (defn lazy-schema? [s] (satisfies? ILazySchema s)) @@ -144,6 +152,8 @@ (m/encode s val options transformer))) (defn decode + ([s val] + (m/decode s val default-options default-transformer)) ([s val transformer] (m/decode s val default-options transformer)) ([s val options transformer] @@ -428,23 +438,33 @@ [s] (if (string? s) (re-matches email-re s) - s)) + nil)) + +(defn email-string? + [s] + (and (string? s) + (re-seq email-re s))) -;; FIXME: add proper email generator (define! ::email - {:type ::email - :pred (fn [s] - (and (string? s) - (< (count s) 250) - (re-seq email-re s))) + {:type :string + :pred email-string? + :property-pred + (fn [{:keys [max] :as props}] + (if (some? max) + (fn [value] + (<= (count value) max)) + (constantly true))) + :type-properties {:title "email" :description "string with valid email address" - :error/message "expected valid email" - :gen/gen (-> :string sg/generator) + :error/code "errors.invalid-email" + :gen/gen (sg/email) ::oapi/type "string" ::oapi/format "email" - ::oapi/decode parse-email}}) + ::oapi/decode + (fn [v] + (or (parse-email v) v))}}) (def non-empty-strings-xf (comp @@ -452,6 +472,59 @@ (remove str/empty?) (remove str/blank?))) +;; NOTE: this is general purpose set spec and should be used over the other + +(define! ::set + {:type :set + :compile + (fn [{:keys [coerce kind max min] :as props} _ _] + (let [xform (if coerce + (comp non-empty-strings-xf (map coerce)) + non-empty-strings-xf) + pred (cond + (fn? kind) kind + (nil? kind) any? + :else (validator kind)) + + pred (cond + (and max min) + (fn [value] + (let [size (count value)] + (and (set? value) + (<= min size max) + (every? pred value)))) + + min + (fn [value] + (let [size (count value)] + (and (set? value) + (<= min size) + (every? pred value)))) + + max + (fn [value] + (let [size (count value)] + (and (set? value) + (<= size max) + (every? pred value)))) + + :else + pred)] + + {:pred pred + :type-properties + {:title "set" + :description "Set of Strings" + :error/message "should be a set of strings" + :gen/gen (-> kind sg/generator sg/set) + ::oapi/type "array" + ::oapi/format "set" + ::oapi/items {:type "string"} + ::oapi/unique-items true + ::oapi/decode (fn [v] + (let [v (if (string? v) (str/split v #"[\s,]+") v)] + (into #{} xform v)))}}))}) + (define! ::set-of-strings {:type ::set-of-strings :pred #(and (set? %) (every? string? %)) @@ -634,6 +707,8 @@ (define! ::fn [:schema fn?]) +;; FIXME: deprecated, replace with ::text + (define! ::word-string {:type ::word-string :pred #(and (string? %) (not (str/blank? %))) @@ -649,16 +724,102 @@ (define! ::uri {:type ::uri :pred u/uri? + :property-pred + (fn [{:keys [min max prefix] :as props}] + (if (seq props) + (fn [value] + (let [value (str value) + size (count value)] + + (and + (cond + (and min max) + (<= min size max) + + min + (<= min size) + + max + (<= size max)) + + (cond + (d/regexp? prefix) + (some? (re-seq prefix value)) + + :else + true)))) + + (constantly true))) + :type-properties {:title "uri" :description "URI formatted string" - :error/message "expected URI instance" + :error/code "errors.invalid-uri" :gen/gen (sg/uri) ::oapi/type "string" ::oapi/format "uri" ::oapi/decode (comp u/uri str/trim)}}) -(def! ::plugin-data +(define! ::text + {:type :string + :pred #(and (string? %) (not (str/blank? %))) + :property-pred + (fn [{:keys [min max] :as props}] + (if (seq props) + (fn [value] + (let [size (count value)] + (cond + (and min max) + (<= min size max) + + min + (<= min size) + + max + (<= size max)))) + (constantly true))) + + :type-properties + {:title "string" + :description "not whitespace string" + :gen/gen (sg/word-string) + :error/code "errors.invalid-text" + :error/fn + (fn [{:keys [value schema]}] + (let [{:keys [max min] :as props} (properties schema)] + (cond + (and (string? value) + (number? max) + (> (count value) max)) + ["errors.field-max-length" max] + + (and (string? value) + (number? min) + (< (count value) min)) + ["errors.field-min-length" min] + + (and (string? value) + (str/blank? value)) + "errors.field-not-all-whitespace")))}}) + +(define! ::password + {:type :string + :pred + (fn [value] + (and (string? value) + (>= (count value) 8) + (not (str/blank? value)))) + :type-properties + {:title "password" + :gen/gen (->> (sg/word-string) + (sg/filter #(>= (count %) 8))) + :error/code "errors.password-too-short" + ::oapi/type "string" + ::oapi/format "password"}}) + + +;; FIXME: this should not be here +(define! ::plugin-data [:map-of {:gen/max 5} :string :string]) ;; ---- PREDICATES diff --git a/common/src/app/common/schema/generators.cljc b/common/src/app/common/schema/generators.cljc index 83e00bfd87..081e1d5ca8 100644 --- a/common/src/app/common/schema/generators.cljc +++ b/common/src/app/common/schema/generators.cljc @@ -77,10 +77,23 @@ (defn word-string [] - (->> (tg/such-that #(re-matches #"\w+" %) - tg/string-alphanumeric - 50) - (tg/such-that (complement str/blank?)))) + (as-> tg/string-alphanumeric $$ + (tg/such-that (fn [v] (re-matches #"\w+" v)) $$ 50) + (tg/such-that (fn [v] + (and (not (str/blank? v)) + (not (re-matches #"^\d+.*" v)))) + $$ + 50))) + + +(defn email + [] + (->> (word-string) + (tg/such-that (fn [v] (>= (count v) 4))) + (tg/fmap str/lower) + (tg/fmap (fn [v] + (str v "@example.net"))))) + (defn uri [] diff --git a/frontend/src/app/main/ui/auth/login.cljs b/frontend/src/app/main/ui/auth/login.cljs index 389a901f5d..7324c7ec19 100644 --- a/frontend/src/app/main/ui/auth/login.cljs +++ b/frontend/src/app/main/ui/auth/login.cljs @@ -7,8 +7,8 @@ (ns app.main.ui.auth.login (:require-macros [app.main.style :as stl]) (:require - [app.common.data :as d] [app.common.logging :as log] + [app.common.schema :as sm] [app.common.spec :as us] [app.config :as cf] [app.main.data.messages :as msg] @@ -72,20 +72,19 @@ (s/keys :req-un [::email ::password] :opt-un [::invitation-token])) -(defn handle-error-messages - [errors _data] - (d/update-when errors :email - (fn [{:keys [code] :as error}] - (cond-> error - (= code ::us/email) - (assoc :message (tr "errors.email-invalid")))))) +(def ^:private schema:login-form + [:map {:title "LoginForm"} + [:email [::sm/email {:error/code "errors.invalid-email"}]] + [:password [:string {:min 1}]] + [:invitation-token {:optional true} + [:string {:min 1}]]]) (mf/defc login-form [{:keys [params on-success-callback origin] :as props}] - (let [initial (mf/use-memo (mf/deps params) (constantly params)) + (let [initial (mf/with-memo [params] params) error (mf/use-state false) - form (fm/use-form :spec ::login-form - :validators [handle-error-messages] + form (fm/use-form :schema schema:login-form + ;; :validators [handle-error-messages] :initial initial) on-error diff --git a/frontend/src/app/main/ui/auth/recovery.cljs b/frontend/src/app/main/ui/auth/recovery.cljs index 85657eef6b..6ec730c5b8 100644 --- a/frontend/src/app/main/ui/auth/recovery.cljs +++ b/frontend/src/app/main/ui/auth/recovery.cljs @@ -7,39 +7,29 @@ (ns app.main.ui.auth.recovery (:require-macros [app.main.style :as stl]) (:require - [app.common.spec :as us] + [app.common.schema :as sm] [app.main.data.messages :as msg] [app.main.data.users :as du] [app.main.store :as st] [app.main.ui.components.forms :as fm] [app.util.i18n :as i18n :refer [tr]] [app.util.router :as rt] - [cljs.spec.alpha :as s] [rumext.v2 :as mf])) -(s/def ::password-1 ::us/not-empty-string) -(s/def ::password-2 ::us/not-empty-string) -(s/def ::token ::us/not-empty-string) - -(s/def ::recovery-form - (s/keys :req-un [::password-1 - ::password-2])) - -(defn- password-equality - [errors data] - (let [password-1 (:password-1 data) - password-2 (:password-2 data)] - (cond-> errors - (and password-1 password-2 - (not= password-1 password-2)) - (assoc :password-2 {:message "errors.password-invalid-confirmation"}) - - (and password-1 (> 8 (count password-1))) - (assoc :password-1 {:message "errors.password-too-short"})))) +(def ^:private schema:recovery-form + [:and + [:map {:title "RecoveryForm"} + [:token ::sm/text] + [:password-1 ::sm/password] + [:password-2 ::sm/password]] + [:fn {:error/code "errors.password-invalid-confirmation" + :error/field :password-2} + (fn [{:keys [password-1 password-2]}] + (= password-1 password-2))]]) (defn- on-error [_form _error] - (st/emit! (msg/error (tr "auth.notifications.invalid-token-error")))) + (st/emit! (msg/error (tr "errors.invalid-recovery-token")))) (defn- on-success [_] @@ -56,14 +46,13 @@ (mf/defc recovery-form [{:keys [params] :as props}] - (let [form (fm/use-form :spec ::recovery-form - :validators [password-equality - (fm/validate-not-empty :password-1 (tr "auth.password-not-empty")) - (fm/validate-not-empty :password-2 (tr "auth.password-not-empty"))] + (let [form (fm/use-form :schema schema:recovery-form :initial params)] + [:& fm/form {:on-submit on-submit :class (stl/css :recovery-form) :form form} + [:div {:class (stl/css :fields-row)} [:& fm/input {:type "password" :name :password-1 diff --git a/frontend/src/app/main/ui/auth/recovery_request.cljs b/frontend/src/app/main/ui/auth/recovery_request.cljs index 43988fb3c8..d3ce49eaa3 100644 --- a/frontend/src/app/main/ui/auth/recovery_request.cljs +++ b/frontend/src/app/main/ui/auth/recovery_request.cljs @@ -7,8 +7,7 @@ (ns app.main.ui.auth.recovery-request (:require-macros [app.main.style :as stl]) (:require - [app.common.data :as d] - [app.common.spec :as us] + [app.common.schema :as sm] [app.main.data.messages :as msg] [app.main.data.users :as du] [app.main.store :as st] @@ -17,30 +16,24 @@ [app.util.i18n :as i18n :refer [tr]] [app.util.router :as rt] [beicon.v2.core :as rx] - [cljs.spec.alpha :as s] [rumext.v2 :as mf])) -(s/def ::email ::us/email) -(s/def ::recovery-request-form (s/keys :req-un [::email])) -(defn handle-error-messages - [errors _data] - (d/update-when errors :email - (fn [{:keys [code] :as error}] - (cond-> error - (= code :missing) - (assoc :message (tr "errors.email-invalid")))))) +(def ^:private schema:recovery-request-form + [:map {:title "RecoverRequestForm"} + [:email ::sm/email]]) (mf/defc recovery-form [{:keys [on-success-callback] :as props}] - (let [form (fm/use-form :spec ::recovery-request-form - :validators [handle-error-messages] + (let [form (fm/use-form :schema schema:recovery-request-form :initial {}) submitted (mf/use-state false) - default-success-finish #(st/emit! (msg/info (tr "auth.notifications.recovery-token-sent"))) + default-success-finish + (mf/use-fn + #(st/emit! (msg/info (tr "auth.notifications.recovery-token-sent")))) on-success - (mf/use-callback + (mf/use-fn (fn [cdata _] (reset! submitted false) (if (nil? on-success-callback) @@ -48,7 +41,7 @@ (on-success-callback (:email cdata))))) on-error - (mf/use-callback + (mf/use-fn (fn [data cause] (reset! submitted false) (let [code (-> cause ex-data :code)] @@ -65,7 +58,7 @@ (rx/throw cause))))) on-submit - (mf/use-callback + (mf/use-fn (fn [] (reset! submitted true) (let [cdata (:clean-data @form) diff --git a/frontend/src/app/main/ui/auth/register.cljs b/frontend/src/app/main/ui/auth/register.cljs index 90daacf1e6..ae8e47d74d 100644 --- a/frontend/src/app/main/ui/auth/register.cljs +++ b/frontend/src/app/main/ui/auth/register.cljs @@ -7,8 +7,7 @@ (ns app.main.ui.auth.register (:require-macros [app.main.style :as stl]) (:require - [app.common.data :as d] - [app.common.spec :as us] + [app.common.schema :as sm] [app.config :as cf] [app.main.data.messages :as msg] [app.main.data.users :as du] @@ -22,67 +21,42 @@ [app.util.router :as rt] [app.util.storage :as sto] [beicon.v2.core :as rx] - [cljs.spec.alpha :as s] [rumext.v2 :as mf])) ;; --- PAGE: Register -(defn- validate-password-length - [errors data] - (let [password (:password data)] - (cond-> errors - (> 8 (count password)) - (assoc :password {:message "errors.password-too-short"})))) - -(defn- validate-email - [errors _] - (d/update-when errors :email - (fn [{:keys [code] :as error}] - (cond-> error - (= code ::us/email) - (assoc :message (tr "errors.email-invalid")))))) - -(s/def ::fullname ::us/not-empty-string) -(s/def ::password ::us/not-empty-string) -(s/def ::email ::us/email) -(s/def ::invitation-token ::us/not-empty-string) -(s/def ::terms-privacy ::us/boolean) - -(s/def ::register-form - (s/keys :req-un [::password ::email] - :opt-un [::invitation-token])) - -(defn- on-prepare-register-error - [form cause] - (let [{:keys [type code]} (ex-data cause)] - (condp = [type code] - [:restriction :registration-disabled] - (st/emit! (msg/error (tr "errors.registration-disabled"))) - - [:restriction :email-domain-is-not-allowed] - (st/emit! (msg/error (tr "errors.email-domain-not-allowed"))) - - [:validation :email-as-password] - (swap! form assoc-in [:errors :password] - {:message "errors.email-as-password"}) - - (st/emit! (msg/error (tr "errors.generic")))))) - -(defn- on-prepare-register-success - [params] - (st/emit! (rt/nav :auth-register-validate {} params))) +(def ^:private schema:register-form + [:map {:title "RegisterForm"} + [:password ::sm/password] + [:email ::sm/email] + [:invitation-token {:optional true} ::sm/text]]) (mf/defc register-form + {::mf/props :obj} [{:keys [params on-success-callback]}] (let [initial (mf/use-memo (mf/deps params) (constantly params)) - form (fm/use-form :spec ::register-form - :validators [validate-password-length - validate-email - (fm/validate-not-empty :password (tr "auth.password-not-empty"))] + form (fm/use-form :schema schema:register-form :initial initial) submitted? (mf/use-state false) + on-error + (mf/use-fn + (fn [form cause] + (let [{:keys [type code]} (ex-data cause)] + (condp = [type code] + [:restriction :registration-disabled] + (st/emit! (msg/error (tr "errors.registration-disabled"))) + + [:restriction :email-domain-is-not-allowed] + (st/emit! (msg/error (tr "errors.email-domain-not-allowed"))) + + [:validation :email-as-password] + (swap! form assoc-in [:errors :password] + {:code "errors.email-as-password"}) + + (st/emit! (msg/error (tr "errors.generic"))))))) + on-submit (mf/use-fn (mf/deps on-success-callback) @@ -90,16 +64,14 @@ (reset! submitted? true) (let [cdata (:clean-data @form) on-success (fn [data] - (if (nil? on-success-callback) - (on-prepare-register-success data) - (on-success-callback data))) - on-error (fn [data] - (on-prepare-register-error form data))] + (if (fn? on-success-callback) + (on-success-callback data) + (st/emit! (rt/nav :auth-register-validate {} data))))] (->> (rp/cmd! :prepare-register-profile cdata) (rx/map #(merge % params)) (rx/finalize #(reset! submitted? false)) - (rx/subs! on-success on-error)))))] + (rx/subs! on-success (partial on-error form))))))] [:& fm/form {:on-submit on-submit :form form} [:div {:class (stl/css :fields-row)} @@ -164,33 +136,6 @@ ;; --- PAGE: register validation -(defn- on-register-success - [data] - (cond - (some? (:invitation-token data)) - (let [token (:invitation-token data)] - (st/emit! (rt/nav :auth-verify-token {} {:token token}))) - - (:is-active data) - (st/emit! (du/login-from-register)) - - :else - (do - (swap! sto/storage assoc ::email (:email data)) - (st/emit! (rt/nav :auth-register-success))))) - -(s/def ::accept-terms-and-privacy (s/and ::us/boolean true?)) -(s/def ::accept-newsletter-subscription ::us/boolean) - -(if (contains? cf/flags :terms-and-privacy-checkbox) - (s/def ::register-validate-form - (s/keys :req-un [::token ::fullname ::accept-terms-and-privacy] - :opt-un [::accept-newsletter-subscription])) - (s/def ::register-validate-form - (s/keys :req-un [::token ::fullname] - :opt-un [::accept-terms-and-privacy - ::accept-newsletter-subscription]))) - (mf/defc terms-and-privacy {::mf/props :obj ::mf/private true} @@ -210,34 +155,48 @@ :default-checked false :label terms-label}]])) +(def ^:private schema:register-validate-form + [:map {:title "RegisterValidateForm"} + [:token ::sm/text] + [:fullname [::sm/text {:max 250}]] + [:accept-terms-and-privacy {:optional (not (contains? cf/flags :terms-and-privacy-checkbox))} + [:and :boolean [:= true]]]]) + (mf/defc register-validate-form - {::mf/props :obj} + {::mf/props :obj + ::mf/private true} [{:keys [params on-success-callback]}] - (let [validators (mf/with-memo [] - [(fm/validate-not-empty :fullname (tr "auth.name.not-all-space")) - (fm/validate-length :fullname fm/max-length-allowed (tr "auth.name.too-long"))]) - - form (fm/use-form :spec ::register-validate-form - :validators validators - :initial params) - + (let [form (fm/use-form :schema schema:register-validate-form :initial params) submitted? (mf/use-state false) on-success (mf/use-fn (mf/deps on-success-callback) (fn [params] - (if (nil? on-success-callback) - (on-register-success params) - (on-success-callback (:email params))))) + (if (fn? on-success-callback) + (on-success-callback (:email params)) + + (cond + (some? (:invitation-token params)) + (let [token (:invitation-token params)] + (st/emit! (rt/nav :auth-verify-token {} {:token token}))) + + (:is-active params) + (st/emit! (du/login-from-register)) + + :else + (do + (swap! sto/storage assoc ::email (:email params)) + (st/emit! (rt/nav :auth-register-success))))))) on-error (mf/use-fn - (fn [_cause] + (fn [_] (st/emit! (msg/error (tr "errors.generic"))))) on-submit (mf/use-fn + (mf/deps on-success on-error) (fn [form _] (reset! submitted? true) (let [params (:clean-data @form)] diff --git a/frontend/src/app/main/ui/components/forms.cljs b/frontend/src/app/main/ui/components/forms.cljs index e454be3a3e..eef34a8cf1 100644 --- a/frontend/src/app/main/ui/components/forms.cljs +++ b/frontend/src/app/main/ui/components/forms.cljs @@ -18,7 +18,6 @@ [app.util.keyboard :as kbd] [app.util.object :as obj] [cljs.core :as c] - [clojure.string] [cuerdas.core :as str] [rumext.v2 :as mf])) @@ -26,7 +25,9 @@ (def use-form fm/use-form) (mf/defc input - [{:keys [label help-icon disabled form hint trim children data-testid on-change-value placeholder show-success?] :as props}] + [{:keys [label help-icon disabled form hint trim children data-testid on-change-value placeholder show-success? show-error] + :or {show-error true} + :as props}] (let [input-type (get props :type "text") input-name (get props :name) more-classes (get props :class) @@ -152,11 +153,14 @@ children]) (cond - (and touched? (:message error)) - [:div {:id (dm/str "error-" input-name) - :class (stl/css :error) - :data-testid (clojure.string/join [data-testid "-error"])} - (tr (:message error))] + (and touched? (:code error) show-error) + (let [code (:code error)] + [:div {:id (dm/str "error-" input-name) + :class (stl/css :error) + :data-testid (dm/str data-testid "-error")} + (if (vector? code) + (tr (nth code 0) (i18n/c (nth code 1))) + (tr code))]) (string? hint) [:div {:class (stl/css :hint)} hint])]])) @@ -207,8 +211,8 @@ [:label {:class (stl/css :textarea-label)} label] [:> :textarea props] (cond - (and touched? (:message error)) - [:span {:class (stl/css :error)} (tr (:message error))] + (and touched? (:code error)) + [:span {:class (stl/css :error)} (tr (:code error))] (string? hint) [:span {:class (stl/css :hint)} hint])])) @@ -550,41 +554,3 @@ [:span {:class (stl/css :text)} (:text item)] [:button {:class (stl/css :icon) :on-click #(remove-item! item)} i/close]]])])])) - -;; --- Validators - -(defn all-spaces? - [value] - (let [trimmed (str/trim value)] - (str/empty? trimmed))) - -(def max-length-allowed 250) -(def max-uri-length-allowed 2048) - -(defn max-length? - [value length] - (> (count value) length)) - -(defn validate-length - [field length errors-msg] - (fn [errors data] - (cond-> errors - (max-length? (get data field) length) - (assoc field {:message errors-msg})))) - -(defn validate-not-empty - [field error-msg] - (fn [errors data] - (cond-> errors - (all-spaces? (get data field)) - (assoc field {:message error-msg})))) - -(defn validate-not-all-spaces - [field error-msg] - (fn [errors data] - (let [value (get data field)] - (cond-> errors - (and - (all-spaces? value) - (> (count value) 0)) - (assoc field {:message error-msg}))))) diff --git a/frontend/src/app/main/ui/dashboard/change_owner.cljs b/frontend/src/app/main/ui/dashboard/change_owner.cljs index b3a8e04d2d..d87056e00d 100644 --- a/frontend/src/app/main/ui/dashboard/change_owner.cljs +++ b/frontend/src/app/main/ui/dashboard/change_owner.cljs @@ -7,25 +7,24 @@ (ns app.main.ui.dashboard.change-owner (:require-macros [app.main.style :as stl]) (:require - [app.common.spec :as us] + [app.common.schema :as sm] [app.main.data.modal :as modal] [app.main.refs :as refs] [app.main.store :as st] [app.main.ui.components.forms :as fm] [app.main.ui.icons :as i] [app.util.i18n :as i18n :refer [tr]] - [cljs.spec.alpha :as s] [rumext.v2 :as mf])) -(s/def ::member-id ::us/uuid) -(s/def ::leave-modal-form - (s/keys :req-un [::member-id])) +(def ^:private schema:leave-modal-form + [:map {:title "LeaveModalForm"} + [:member-id ::sm/uuid]]) (mf/defc leave-and-reassign-modal {::mf/register modal/components ::mf/register-as :leave-and-reassign} [{:keys [profile team accept]}] - (let [form (fm/use-form :spec ::leave-modal-form :initial {}) + (let [form (fm/use-form :schema schema:leave-modal-form :initial {}) members-map (mf/deref refs/dashboard-team-members) members (vals members-map) diff --git a/frontend/src/app/main/ui/dashboard/team.cljs b/frontend/src/app/main/ui/dashboard/team.cljs index 0d78ee520c..3a0d3421f2 100644 --- a/frontend/src/app/main/ui/dashboard/team.cljs +++ b/frontend/src/app/main/ui/dashboard/team.cljs @@ -9,6 +9,7 @@ (:require [app.common.data :as d] [app.common.data.macros :as dm] + [app.common.schema :as sm] [app.common.spec :as us] [app.config :as cfg] [app.main.data.dashboard :as dd] @@ -33,7 +34,6 @@ [cuerdas.core :as str] [rumext.v2 :as mf])) - (def ^:private arrow-icon (i/icon-xref :arrow (stl/css :arrow-icon))) @@ -131,6 +131,12 @@ (s/def ::invite-member-form (s/keys :req-un [::role ::emails ::team-id])) +(def ^:private schema:invite-member-form + [:map {:title "InviteMemberForm"} + [:role :keyword] + [:emails [::sm/set {:kind ::sm/email :min 1}]] + [:team-id ::sm/uuid]]) + (mf/defc invite-members-modal {::mf/register modal/components ::mf/register-as :invite-members @@ -139,9 +145,14 @@ (let [members-map (mf/deref refs/dashboard-team-members) perms (:permissions team) - roles (mf/use-memo (mf/deps perms) #(get-available-roles perms)) - initial (mf/use-memo (constantly {:role "editor" :team-id (:id team)})) - form (fm/use-form :spec ::invite-member-form + roles (mf/with-memo [perms] + (get-available-roles perms)) + team-id (:id team) + + initial (mf/with-memo [team-id] + {:role "editor" :team-id team-id}) + + form (fm/use-form :schema schema:invite-member-form :initial initial) error-text (mf/use-state "") @@ -746,10 +757,11 @@ ;; WEBHOOKS SECTION ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -(s/def ::uri ::us/uri) -(s/def ::mtype ::us/not-empty-string) -(s/def ::webhook-form - (s/keys :req-un [::uri ::mtype])) +(def ^:private schema:webhook-form + [:map {:title "WebhookForm"} + [:uri [::sm/uri {:max 4069 :prefix #"^http[s]?://" + :error/code "errors.webhooks.invalid-uri"}]] + [:mtype ::sm/text]]) (def valid-webhook-mtypes [{:label "application/json" :value "application/json"} @@ -763,12 +775,12 @@ {::mf/register modal/components ::mf/register-as :webhook} [{:keys [webhook] :as props}] - ;; FIXME: this is a workaround because input fields do not support rendering hooks - (let [initial (mf/use-memo (fn [] (or (some-> webhook (update :uri str)) - {:is-active false :mtype "application/json"}))) - form (fm/use-form :spec ::webhook-form - :initial initial - :validators [(fm/validate-length :uri fm/max-uri-length-allowed (tr "team.webhooks.max-length"))]) + + (let [initial (mf/with-memo [] + (or (some-> webhook (update :uri str)) + {:is-active false :mtype "application/json"})) + form (fm/use-form :schema schema:webhook-form + :initial initial) on-success (mf/use-fn (fn [_] diff --git a/frontend/src/app/main/ui/dashboard/team_form.cljs b/frontend/src/app/main/ui/dashboard/team_form.cljs index 7a37ec9c6c..3d7e790f2e 100644 --- a/frontend/src/app/main/ui/dashboard/team_form.cljs +++ b/frontend/src/app/main/ui/dashboard/team_form.cljs @@ -7,7 +7,7 @@ (ns app.main.ui.dashboard.team-form (:require-macros [app.main.style :as stl]) (:require - [app.common.spec :as us] + [app.common.schema :as sm] [app.main.data.dashboard :as dd] [app.main.data.messages :as msg] [app.main.data.modal :as modal] @@ -19,12 +19,11 @@ [app.util.keyboard :as kbd] [app.util.router :as rt] [beicon.v2.core :as rx] - [cljs.spec.alpha :as s] [rumext.v2 :as mf])) -(s/def ::name ::us/not-empty-string) -(s/def ::team-form - (s/keys :req-un [::name])) +(def ^:private schema:team-form + [:map {:title "TeamForm"} + [:name [::sm/text {:max 250}]]]) (defn- on-create-success [_form response] @@ -68,24 +67,23 @@ (on-update-submit form) (on-create-submit form)))) -(mf/defc team-form-modal {::mf/register modal/components - ::mf/register-as :team-form} +(mf/defc team-form-modal + {::mf/register modal/components + ::mf/register-as :team-form} [{:keys [team] :as props}] (let [initial (mf/use-memo (fn [] (or team {}))) - form (fm/use-form :spec ::team-form - :validators [(fm/validate-not-empty :name (tr "auth.name.not-all-space")) - (fm/validate-length :name fm/max-length-allowed (tr "auth.name.too-long"))] + form (fm/use-form :schema schema:team-form :initial initial) handle-keydown - (mf/use-callback - (mf/deps) + (mf/use-fn (fn [e] (when (kbd/enter? e) (dom/prevent-default e) (dom/stop-propagation e) (on-submit form e)))) - on-close #(st/emit! (modal/hide))] + on-close + (mf/use-fn #(st/emit! (modal/hide)))] [:div {:class (stl/css :modal-overlay)} [:div {:class (stl/css :modal-container)} diff --git a/frontend/src/app/main/ui/onboarding/questions.cljs b/frontend/src/app/main/ui/onboarding/questions.cljs index 3d715a1858..d8d9396850 100644 --- a/frontend/src/app/main/ui/onboarding/questions.cljs +++ b/frontend/src/app/main/ui/onboarding/questions.cljs @@ -10,13 +10,13 @@ (:require [app.common.data :as d] [app.common.data.macros :as dm] + [app.common.schema :as sm] [app.main.data.events :as-alias ev] [app.main.data.users :as du] [app.main.store :as st] [app.main.ui.components.forms :as fm] [app.main.ui.icons :as i] [app.util.i18n :as i18n :refer [tr]] - [cljs.spec.alpha :as s] [cuerdas.core :as str] [potok.v2.core :as ptk] [rumext.v2 :as mf])) @@ -56,25 +56,20 @@ (tr "labels.start")) :class (stl/css :next-button)}]]])) -(s/def ::questions-form-step-1 - (s/keys :req-un [::planning - ::expected-use] - :opt-un [::planning-other])) +(def ^:private schema:questions-form-1 + [:and -(defn- step-1-form-validator - [errors data] - (let [planning (:planning data) - planning-other (:planning-other data)] - (cond-> errors - (and (= planning "other") - (str/blank? planning-other)) - (assoc :planning-other {:code "missing"}) + [:map {:title "QuestionsFormStep1"} + [:planning ::sm/text] + [:expected-use [:enum "work" "education" "personal"]] + [:planning-other {:optional true} + [::sm/text {:max 512}]]] - (not= planning "other") - (assoc :planning-other nil) - - (str/blank? planning) - (assoc :planning {:code "missing"})))) + [:fn {:error/field :planning-other} + (fn [{:keys [planning planning-other]}] + (or (not= planning "other") + (and (= planning "other") + (not (str/blank? planning-other)))))]]) (mf/defc step-1 {::mf/props :obj} @@ -143,24 +138,24 @@ [:& fm/input {:name :planning-other :class (stl/css :input-spacing) :placeholder (tr "labels.other") + :show-error false :label ""}])]])) -(s/def ::questions-form-step-2 - (s/keys :req-un [::experience-design-tool] - :opt-un [::experience-design-tool-other])) +(def ^:private schema:questions-form-2 + [:and + [:map {:title "QuestionsFormStep2"} + [:experience-design-tool + [:enum "figma" "sketch" "adobe-xd" "canva" "invision" "other"]] + [:experience-design-tool-other {:optional true} + [::sm/text {:max 512}]]] -(defn- step-2-form-validator - [errors data] - (let [experience (:experience-design-tool data) - experience-other (:experience-design-tool-other data)] - - (cond-> errors - (and (= experience "other") - (str/blank? experience-other)) - (assoc :experience-design-tool-other {:code "missing"}) - - (not= experience "other") - (assoc :experience-design-tool-other nil)))) + [:fn {:error/field :experience-design-tool-other} + (fn [data] + (let [experience (:experience-design-tool data) + experience-other (:experience-design-tool-other data)] + (or (not= experience "other") + (and (= experience "other") + (not (str/blank? experience-other))))))]]) (mf/defc step-2 {::mf/props :obj} @@ -180,7 +175,7 @@ (conj {:label (tr "labels.other-short") :value "other" :icon i/curve}))) current-experience - (dm/get-in @form [:clean-data :experience-design-tool]) + (dm/get-in @form [:data :experience-design-tool]) on-design-tool-change (mf/use-fn @@ -212,33 +207,34 @@ [:& fm/input {:name :experience-design-tool-other :class (stl/css :input-spacing) :placeholder (tr "labels.other") + :show-error false :label ""}])]])) -(s/def ::questions-form-step-3 - (s/keys :req-un [::team-size ::role ::responsability] - :opt-un [::role-other ::responsability-other])) -(defn- step-3-form-validator - [errors data] - (let [role (:role data) - role-other (:role-other data) - responsability (:responsability data) - responsability-other (:responsability-other data)] +(def ^:private schema:questions-form-3 + [:and + [:map {:title "QuestionsFormStep3"} + [:team-size + [:enum "more-than-50" "31-50" "11-30" "2-10" "freelancer" "personal-project"]] + [:role + [:enum "designer" "developer" "student-teacher" "graphic-design" "marketing" "manager" "other"]] + [:responsability + [:enum "team-leader" "team-member" "freelancer" "ceo-founder" "director" "student-teacher" "other"]] - (cond-> errors - (and (= role "other") - (str/blank? role-other)) - (assoc :role-other {:code "missing"}) + [:role-other {:optional true} [::sm/text {:max 512}]] + [:responsability-other {:optional true} [::sm/text {:max 512}]]] - (not= role "other") - (assoc :role-other nil) + [:fn {:error/field :role-other} + (fn [{:keys [role role-other]}] + (or (not= role "other") + (and (= role "other") + (not (str/blank? role-other)))))] - (and (= responsability "other") - (str/blank? responsability-other)) - (assoc :responsability-other {:code "missing"}) - - (not= responsability "other") - (assoc :responsability-other nil)))) + [:fn {:error/field :responsability-other} + (fn [{:keys [responsability responsability-other]}] + (or (not= responsability "other") + (and (= responsability "other") + (not (str/blank? responsability-other)))))]]) (mf/defc step-3 {::mf/props :obj} @@ -264,7 +260,6 @@ {:label (tr "labels.director") :value "director"}]) (conj {:label (tr "labels.other-short") :value "other"}))) - team-size-options (mf/with-memo [] [{:label (tr "labels.select-option") :value "" :key "team-size" :disabled true} @@ -301,6 +296,7 @@ [:& fm/input {:name :role-other :class (stl/css :input-spacing) :placeholder (tr "labels.other") + :show-error false :label ""}])] [:div {:class (stl/css :modal-question)} @@ -314,6 +310,7 @@ [:& fm/input {:name :responsability-other :class (stl/css :input-spacing) :placeholder (tr "labels.other") + :show-error false :label ""}])] [:div {:class (stl/css :modal-question)} @@ -323,21 +320,18 @@ :select-class (stl/css :select-class) :name :team-size}]]])) -(s/def ::questions-form-step-4 - (s/keys :req-un [::start-with] - :opt-un [::start-with-other])) +(def ^:private schema:questions-form-4 + [:and + [:map {:title "QuestionsFormStep4"} + [:start-with + [:enum "ui" "wireframing" "prototyping" "ds" "code" "other"]] + [:start-with-other {:optional true} [::sm/text {:max 512}]]] -(defn- step-4-form-validator - [errors data] - (let [start (:start-with data) - start-other (:start-with-other data)] - (cond-> errors - (and (= start "other") - (str/blank? start-other)) - (assoc :start-with-other {:code "missing"}) - - (not= start "other") - (assoc :start-with-other nil)))) + [:fn {:error/field :start-with-other} + (fn [{:keys [start-with start-with-other]}] + (or (not= start-with "other") + (and (= start-with "other") + (not (str/blank? start-with-other)))))]]) (mf/defc step-4 {::mf/props :obj} @@ -386,23 +380,21 @@ [:& fm/input {:name :start-with-other :class (stl/css :input-spacing) :label "" + :show-error false :placeholder (tr "labels.other")}])]])) -(s/def ::questions-form-step-5 - (s/keys :req-un [::referer] - :opt-un [::referer-other])) +(def ^:private schema:questions-form-5 + [:and + [:map {:title "QuestionsFormStep5"} + [:referer + [:enum "youtube" "event" "search" "social" "article" "other"]] + [:referer-other {:optional true} [::sm/text {:max 512}]]] -(defn- step-5-form-validator - [errors data] - (let [referer (:referer data) - referer-other (:referer-other data)] - (cond-> errors - (and (= referer "other") - (str/blank? referer-other)) - (assoc :referer-other {:code "missing"}) - - (not= referer "other") - (assoc :referer-other nil)))) + [:fn {:error/field :referer-other} + (fn [{:keys [referer referer-other]}] + (or (not= referer "other") + (and (= referer "other") + (not (str/blank? referer-other)))))]]) (mf/defc step-5 {::mf/props :obj} @@ -444,6 +436,7 @@ [:& fm/input {:name :referer-other :class (stl/css :input-spacing) :label "" + :show-error false :placeholder (tr "labels.other")}])]])) (mf/defc questions-modal @@ -456,28 +449,23 @@ ;; and we want to keep the filled info step-1-form (fm/use-form :initial {} - :validators [step-1-form-validator] - :spec ::questions-form-step-1) + :schema schema:questions-form-1) step-2-form (fm/use-form :initial {} - :validators [step-2-form-validator] - :spec ::questions-form-step-2) + :schema schema:questions-form-2) step-3-form (fm/use-form :initial {} - :validators [step-3-form-validator] - :spec ::questions-form-step-3) + :schema schema:questions-form-3) step-4-form (fm/use-form :initial {} - :validators [step-4-form-validator] - :spec ::questions-form-step-4) + :schema schema:questions-form-4) step-5-form (fm/use-form :initial {} - :validators [step-5-form-validator] - :spec ::questions-form-step-5) + :schema schema:questions-form-5) on-next (mf/use-fn diff --git a/frontend/src/app/main/ui/onboarding/team_choice.cljs b/frontend/src/app/main/ui/onboarding/team_choice.cljs index 4525d7b711..b97079518d 100644 --- a/frontend/src/app/main/ui/onboarding/team_choice.cljs +++ b/frontend/src/app/main/ui/onboarding/team_choice.cljs @@ -8,7 +8,7 @@ (:require-macros [app.main.style :as stl]) (:require [app.common.data.macros :as dm] - [app.common.spec :as us] + [app.common.schema :as sm] [app.main.data.dashboard :as dd] [app.main.data.events :as ev] [app.main.data.messages :as msg] @@ -18,7 +18,6 @@ [app.main.ui.icons :as i] [app.util.i18n :as i18n :refer [tr]] [app.util.router :as rt] - [cljs.spec.alpha :as s] [potok.v2.core :as ptk] [rumext.v2 :as mf])) @@ -55,11 +54,10 @@ [:p {:class (stl/css :modal-desc)} (tr "onboarding.team-modal.create-team-feature-5")]]]]) - -(s/def ::emails (s/and ::us/set-of-valid-emails)) -(s/def ::role ::us/keyword) -(s/def ::invite-form - (s/keys :req-un [::role ::emails])) +(def ^:private schema:invite-form + [:map {:title "InviteForm"} + [:role :keyword] + [:emails [::sm/set {:kind ::sm/email}]]]) (defn- get-available-roles [] @@ -73,7 +71,7 @@ #(do {:role "editor" :name name})) - form (fm/use-form :spec ::invite-form + form (fm/use-form :schema schema:invite-form :initial initial) params (:clean-data @form) @@ -151,7 +149,7 @@ :name :emails :auto-focus? true :trim true - :valid-item-fn us/parse-email + :valid-item-fn sm/parse-email :caution-item-fn #{} :label (tr "modals.invite-member.emails") :on-submit on-submit}]] @@ -172,18 +170,16 @@ [:div {:class (stl/css :paginator)} "2/2"]])) +(def ^:private schema:team-form + [:map {:title "TeamForm"} + [:name [::sm/text {:max 250}]]]) + (mf/defc team-form-step-1 {::mf/props :obj ::mf/private true} [{:keys [on-submit]}] - (let [validators (mf/with-memo [] - [(fm/validate-not-empty :name (tr "auth.name.not-all-space")) - (fm/validate-length :name fm/max-length-allowed (tr "auth.name.too-long"))]) - - form (fm/use-form - :spec ::team-form - :initial {} - :validators validators) + (let [form (fm/use-form :schema schema:team-form + :initial {}) on-submit* (mf/use-fn @@ -240,10 +236,6 @@ [:div {:class (stl/css :paginator)} "1/2"]])) -(s/def ::name ::us/not-empty-string) -(s/def ::team-form - (s/keys :req-un [::name])) - (mf/defc onboarding-team-modal {::mf/props :obj} [] diff --git a/frontend/src/app/main/ui/settings/access_tokens.cljs b/frontend/src/app/main/ui/settings/access_tokens.cljs index 663c9a09d0..c98ed00e3e 100644 --- a/frontend/src/app/main/ui/settings/access_tokens.cljs +++ b/frontend/src/app/main/ui/settings/access_tokens.cljs @@ -7,7 +7,7 @@ (ns app.main.ui.settings.access-tokens (:require-macros [app.main.style :as stl]) (:require - [app.common.spec :as us] + [app.common.schema :as sm] [app.main.data.messages :as msg] [app.main.data.modal :as modal] [app.main.data.users :as du] @@ -20,8 +20,6 @@ [app.util.keyboard :as kbd] [app.util.time :as dt] [app.util.webapi :as wapi] - [cljs.spec.alpha :as s] - [cuerdas.core :as str] [okulary.core :as l] [rumext.v2 :as mf])) @@ -40,17 +38,10 @@ (def token-created-ref (l/derived :access-token-created st/state)) -(s/def ::name ::us/not-empty-string) -(s/def ::expiration-date ::us/not-empty-string) -(s/def ::access-token-form - (s/keys :req-un [::name ::expiration-date])) - -(defn- name-validator - [errors data] - (let [name (:name data)] - (cond-> errors - (str/blank? name) - (assoc :name {:message (tr "dashboard.access-tokens.errors-required-name")})))) +(def ^:private schema:form + [:map {:title "AccessTokenForm"} + [:name [::sm/text {:max 250}]] + [:expiration-date [::sm/text {:max 250}]]]) (def initial-data {:name "" :expiration-date "never"}) @@ -61,10 +52,8 @@ [] (let [form (fm/use-form :initial initial-data - :spec ::access-token-form - :validators [name-validator - (fm/validate-not-empty :name (tr "auth.name.not-all-space")) - (fm/validate-length :name fm/max-length-allowed (tr "auth.name.too-long"))]) + :schema schema:form) + created (mf/deref token-created-ref) created? (mf/use-state false) locale (mf/deref i18n/locale) diff --git a/frontend/src/app/main/ui/settings/change_email.cljs b/frontend/src/app/main/ui/settings/change_email.cljs index b90a55ee6b..91f866e1a3 100644 --- a/frontend/src/app/main/ui/settings/change_email.cljs +++ b/frontend/src/app/main/ui/settings/change_email.cljs @@ -7,9 +7,7 @@ (ns app.main.ui.settings.change-email (:require-macros [app.main.style :as stl]) (:require - [app.common.data :as d] - [app.common.data.macros :as dma] - [app.common.spec :as us] + [app.common.schema :as sm] [app.main.data.messages :as msg] [app.main.data.modal :as modal] [app.main.data.users :as du] @@ -20,24 +18,8 @@ [app.main.ui.notifications.context-notification :refer [context-notification]] [app.util.i18n :as i18n :refer [tr]] [beicon.v2.core :as rx] - [cljs.spec.alpha :as s] [rumext.v2 :as mf])) -(s/def ::email-1 ::us/email) -(s/def ::email-2 ::us/email) - -(defn- email-equality - [errors data] - (let [email-1 (:email-1 data) - email-2 (:email-2 data)] - (cond-> errors - (and email-1 email-2 (not= email-1 email-2)) - (assoc :email-2 {:message (tr "errors.email-invalid-confirmation") - :code :different-emails})))) - -(s/def ::email-change-form - (s/keys :req-un [::email-1 ::email-2])) - (defn- on-error [form error] (case (:code (ex-data error)) @@ -71,30 +53,32 @@ :on-success (partial on-success profile)}] (st/emit! (du/request-email-change (with-meta params mdata))))) +(def ^:private schema:email-change-form + [:and + [:map {:title "EmailChangeForm"} + [:email-1 ::sm/email] + [:email-2 ::sm/email]] + [:fn {:error/code "errors.invalid-email-confirmation" + :error/field :email-2} + (fn [data] + (let [email-1 (:email-1 data) + email-2 (:email-2 data)] + (= email-1 email-2)))]]) + (mf/defc change-email-modal {::mf/register modal/components ::mf/register-as :change-email} [] (let [profile (mf/deref refs/profile) - form (fm/use-form :spec ::email-change-form - :validators [email-equality] + form (fm/use-form :schema schema:email-change-form :initial profile) on-close - (mf/use-callback #(st/emit! (modal/hide))) + (mf/use-fn #(st/emit! (modal/hide))) on-submit - (mf/use-callback + (mf/use-fn (mf/deps profile) - (partial on-submit profile)) - - on-email-change - (mf/use-callback - (fn [_ _] - (let [different-emails-error? (= (dma/get-in @form [:errors :email-2 :code]) :different-emails) - email-1 (dma/get-in @form [:clean-data :email-1]) - email-2 (dma/get-in @form [:clean-data :email-2])] - (when (and different-emails-error? (= email-1 email-2)) - (swap! form d/dissoc-in [:errors :email-2])))))] + (partial on-submit profile))] [:div {:class (stl/css :modal-overlay)} [:div {:class (stl/css :modal-container)} @@ -118,16 +102,14 @@ :name :email-1 :label (tr "modals.change-email.new-email") :trim true - :show-success? true - :on-change-value on-email-change}]] + :show-success? true}]] [:div {:class (stl/css :fields-row)} [:& fm/input {:type "email" :name :email-2 :label (tr "modals.change-email.confirm-email") :trim true - :show-success? true - :on-change-value on-email-change}]]] + :show-success? true}]]] [:div {:class (stl/css :modal-footer)} [:div {:class (stl/css :action-buttons) diff --git a/frontend/src/app/main/ui/settings/feedback.cljs b/frontend/src/app/main/ui/settings/feedback.cljs index 4fcc7f790c..d8c5c1e3a5 100644 --- a/frontend/src/app/main/ui/settings/feedback.cljs +++ b/frontend/src/app/main/ui/settings/feedback.cljs @@ -8,7 +8,7 @@ "Feedback form." (:require-macros [app.main.style :as stl]) (:require - [app.common.spec :as us] + [app.common.schema :as sm] [app.main.data.messages :as msg] [app.main.refs :as refs] [app.main.repo :as rp] @@ -17,25 +17,22 @@ [app.util.dom :as dom] [app.util.i18n :as i18n :refer [tr]] [beicon.v2.core :as rx] - [cljs.spec.alpha :as s] [rumext.v2 :as mf])) -(s/def ::content ::us/not-empty-string) -(s/def ::subject ::us/not-empty-string) - -(s/def ::feedback-form - (s/keys :req-un [::subject ::content])) +(def ^:private schema:feedback-form + [:map {:title "FeedbackForm"} + [:subject [::sm/text {:max 250}]] + [:content [::sm/text {:max 5000}]]]) (mf/defc feedback-form + {::mf/private true} [] (let [profile (mf/deref refs/profile) - form (fm/use-form :spec ::feedback-form - :validators [(fm/validate-length :subject fm/max-length-allowed (tr "auth.name.too-long")) - (fm/validate-not-empty :subject (tr "auth.name.not-all-space"))]) + form (fm/use-form :schema schema:feedback-form) loading (mf/use-state false) on-succes - (mf/use-callback + (mf/use-fn (mf/deps profile) (fn [_] (reset! loading false) @@ -43,7 +40,7 @@ (swap! form assoc :data {} :touched {} :errors {}))) on-error - (mf/use-callback + (mf/use-fn (mf/deps profile) (fn [{:keys [code] :as error}] (reset! loading false) @@ -52,7 +49,7 @@ (st/emit! (msg/error (tr "errors.generic")))))) on-submit - (mf/use-callback + (mf/use-fn (mf/deps profile) (fn [form _] (reset! loading true) @@ -106,8 +103,8 @@ (mf/defc feedback-page [] - (mf/use-effect - #(dom/set-html-title (tr "title.settings.feedback"))) + (mf/with-effect [] + (dom/set-html-title (tr "title.settings.feedback"))) [:div {:class (stl/css :dashboard-settings)} [:div {:class (stl/css :form-container)} diff --git a/frontend/src/app/main/ui/settings/options.cljs b/frontend/src/app/main/ui/settings/options.cljs index ef83e220e4..36f0fe7783 100644 --- a/frontend/src/app/main/ui/settings/options.cljs +++ b/frontend/src/app/main/ui/settings/options.cljs @@ -7,7 +7,6 @@ (ns app.main.ui.settings.options (:require-macros [app.main.style :as stl]) (:require - [app.common.spec :as us] [app.main.data.messages :as msg] [app.main.data.users :as du] [app.main.refs :as refs] @@ -15,14 +14,12 @@ [app.main.ui.components.forms :as fm] [app.util.dom :as dom] [app.util.i18n :as i18n :refer [tr]] - [cljs.spec.alpha :as s] [rumext.v2 :as mf])) -(s/def ::lang (s/nilable ::us/string)) -(s/def ::theme (s/nilable ::us/not-empty-string)) - -(s/def ::options-form - (s/keys :opt-un [::lang ::theme])) +(def ^:private schema:options-form + [:map {:title "OptionsForm"} + [:lang {:optional true} [:string {:max 20}]] + [:theme {:optional true} [:string {:max 250}]]]) (defn- on-success [profile] @@ -41,7 +38,7 @@ (let [profile (mf/deref refs/profile) initial (mf/with-memo [profile] (update profile :lang #(or % ""))) - form (fm/use-form :spec ::options-form + form (fm/use-form :schema schema:options-form :initial initial)] [:& fm/form {:class (stl/css :options-form) diff --git a/frontend/src/app/main/ui/settings/password.cljs b/frontend/src/app/main/ui/settings/password.cljs index 3f3a4ca72f..ac3373c451 100644 --- a/frontend/src/app/main/ui/settings/password.cljs +++ b/frontend/src/app/main/ui/settings/password.cljs @@ -7,14 +7,13 @@ (ns app.main.ui.settings.password (:require-macros [app.main.style :as stl]) (:require - [app.common.spec :as us] + [app.common.schema :as sm] [app.main.data.messages :as msg] [app.main.data.users :as udu] [app.main.store :as st] [app.main.ui.components.forms :as fm] [app.util.dom :as dom] [app.util.i18n :as i18n :refer [tr]] - [cljs.spec.alpha :as s] [rumext.v2 :as mf])) (defn- on-error @@ -22,10 +21,10 @@ (case (:code (ex-data error)) :old-password-not-match (swap! form assoc-in [:errors :password-old] - {:message (tr "errors.wrong-old-password")}) + {:code "errors.wrong-old-password"}) :email-as-password (swap! form assoc-in [:errors :password-1] - {:message (tr "errors.email-as-password")}) + {:code "errors.email-as-password"}) (let [msg (tr "generic.error")] (st/emit! (msg/error msg))))) @@ -47,40 +46,29 @@ :on-error (partial on-error form)})] (st/emit! (udu/update-password params)))) -(s/def ::password-1 ::us/not-empty-string) -(s/def ::password-2 ::us/not-empty-string) -(s/def ::password-old (s/nilable ::us/string)) - -(defn- password-equality - [errors data] - (let [password-1 (:password-1 data) - password-2 (:password-2 data)] - - (cond-> errors - (and password-1 password-2 (not= password-1 password-2)) - (assoc :password-2 {:message (tr "errors.password-invalid-confirmation")}) - - (and password-1 (> 8 (count password-1))) - (assoc :password-1 {:message (tr "errors.password-too-short")})))) - -(s/def ::password-form - (s/keys :req-un [::password-1 - ::password-2 - ::password-old])) +(def ^:private schema:password-form + [:and + [:map {:title "PasswordForm"} + [:password-1 ::sm/password] + [:password-2 ::sm/password] + [:password-old ::sm/password]] + [:fn {:error/code "errors.password-invalid-confirmation" + :error/field :password-2} + (fn [{:keys [password-1 password-2]}] + (= password-1 password-2))]]) (mf/defc password-form [] - (let [initial (mf/use-memo (constantly {:password-old nil})) - form (fm/use-form :spec ::password-form - :validators [(fm/validate-not-all-spaces :password-old (tr "auth.password-not-empty")) - (fm/validate-not-empty :password-1 (tr "auth.password-not-empty")) - (fm/validate-not-empty :password-2 (tr "auth.password-not-empty")) - password-equality] - :initial initial)] + (let [initial (mf/with-memo [] + {:password-old "" + :password-1 "" + :password-2 ""}) + form (fm/use-form :schema schema:password-form + :initial initial)] + [:& fm/form {:class (stl/css :password-form) :on-submit on-submit :form form} - [:div {:class (stl/css :fields-row)} [:& fm/input {:type "password" diff --git a/frontend/src/app/main/ui/settings/profile.cljs b/frontend/src/app/main/ui/settings/profile.cljs index abc96cf37f..370938539e 100644 --- a/frontend/src/app/main/ui/settings/profile.cljs +++ b/frontend/src/app/main/ui/settings/profile.cljs @@ -7,7 +7,7 @@ (ns app.main.ui.settings.profile (:require-macros [app.main.style :as stl]) (:require - [app.common.spec :as us] + [app.common.schema :as sm] [app.config :as cf] [app.main.data.messages :as msg] [app.main.data.modal :as modal] @@ -18,14 +18,12 @@ [app.main.ui.components.forms :as fm] [app.util.dom :as dom] [app.util.i18n :as i18n :refer [tr]] - [cljs.spec.alpha :as s] [rumext.v2 :as mf])) -(s/def ::fullname ::us/not-empty-string) -(s/def ::email ::us/email) - -(s/def ::profile-form - (s/keys :req-un [::fullname ::email])) +(def ^:private schema:profile-form + [:map {:title "ProfileForm"} + [:fullname [::sm/text {:max 250}]] + [:email ::sm/email]]) (defn- on-submit [form _event] @@ -37,19 +35,18 @@ ;; --- Profile Form (mf/defc profile-form + {::mf/private true} [] (let [profile (mf/deref refs/profile) - form (fm/use-form :spec ::profile-form - :initial profile - :validators [(fm/validate-length :fullname fm/max-length-allowed (tr "auth.name.too-long")) - (fm/validate-not-empty :fullname (tr "auth.name.not-all-space"))]) + form (fm/use-form :schema schema:profile-form + :initial profile) - handle-show-change-email - (mf/use-callback + on-show-change-email + (mf/use-fn #(modal/show! :change-email {})) - handle-show-delete-account - (mf/use-callback + on-show-delete-account + (mf/use-fn #(modal/show! :delete-account {}))] [:& fm/form {:on-submit on-submit @@ -62,7 +59,7 @@ :label (tr "dashboard.your-name")}]] [:div {:class (stl/css :fields-row) - :on-click handle-show-change-email} + :on-click on-show-change-email} [:& fm/input {:type "email" :name :email @@ -71,7 +68,7 @@ [:div {:class (stl/css :options)} [:div.change-email - [:a {:on-click handle-show-change-email} + [:a {:on-click on-show-change-email} (tr "dashboard.change-email")]]]] [:> fm/submit-button* @@ -81,17 +78,25 @@ [:div {:class (stl/css :links)} [:div {:class (stl/css :link-item)} - [:a {:on-click handle-show-delete-account + [:a {:on-click on-show-delete-account :data-testid "remove-acount-btn"} (tr "dashboard.remove-account")]]]])) ;; --- Profile Photo Form -(mf/defc profile-photo-form [] - (let [file-input (mf/use-ref nil) - profile (mf/deref refs/profile) - photo (cf/resolve-profile-photo-url profile) - on-image-click #(dom/click (mf/ref-val file-input)) +(mf/defc profile-photo-form + {::mf/private true} + [] + (let [input-ref (mf/use-ref nil) + profile (mf/deref refs/profile) + + photo + (mf/with-memo [profile] + (cf/resolve-profile-photo-url profile)) + + on-image-click + (mf/use-fn + #(dom/click (mf/ref-val input-ref))) on-file-selected (fn [file] @@ -104,15 +109,17 @@ [:img {:src photo}] [:& file-uploader {:accept "image/jpeg,image/png" :multi false - :ref file-input + :ref input-ref :on-selected on-file-selected :data-testid "profile-image-input"}]]])) ;; --- Profile Page -(mf/defc profile-page [] +(mf/defc profile-page + [] (mf/with-effect [] (dom/set-html-title (tr "title.settings.profile"))) + [:div {:class (stl/css :dashboard-settings)} [:div {:class (stl/css :form-container)} [:h2 (tr "labels.profile")] diff --git a/frontend/src/app/main/ui/workspace/sidebar/assets/groups.cljs b/frontend/src/app/main/ui/workspace/sidebar/assets/groups.cljs index dc882483ec..82d97180d9 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/assets/groups.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/assets/groups.cljs @@ -8,7 +8,7 @@ (:require-macros [app.main.style :as stl]) (:require [app.common.files.helpers :as cfh] - [app.common.spec :as us] + [app.common.schema :as sm] [app.main.data.modal :as modal] [app.main.data.workspace :as dw] [app.main.store :as st] @@ -18,7 +18,6 @@ [app.main.ui.workspace.sidebar.assets.common :as cmm] [app.util.dom :as dom] [app.util.i18n :as i18n :refer [tr]] - [cljs.spec.alpha :as s] [rumext.v2 :as mf])) (mf/defc asset-group-title @@ -92,21 +91,18 @@ (compare key1 key2)))) assets))) -(s/def ::asset-name ::us/not-empty-string) -(s/def ::name-group-form - (s/keys :req-un [::asset-name])) +(def ^:private schema:group-form + [:map {:title "GroupForm"} + [:name [::sm/text {:max 250}]]]) (mf/defc name-group-dialog {::mf/register modal/components ::mf/register-as :name-group-dialog} [{:keys [path last-path accept] :as ctx :or {path "" last-path ""}}] - (let [initial (mf/use-memo - (mf/deps last-path) - (constantly {:asset-name last-path})) - form (fm/use-form :spec ::name-group-form - :validators [(fm/validate-not-empty :asset-name (tr "auth.name.not-all-space")) - (fm/validate-length :asset-name fm/max-length-allowed (tr "auth.name.too-long"))] + (let [initial (mf/with-memo [last-path] + {:asset-name last-path}) + form (fm/use-form :schema schema:group-form :initial initial) create? (empty? path) @@ -117,7 +113,7 @@ (mf/use-fn (mf/deps form) (fn [_] - (let [asset-name (get-in @form [:clean-data :asset-name])] + (let [asset-name (get-in @form [:clean-data :name])] (if create? (accept asset-name) (accept path asset-name)) @@ -135,7 +131,7 @@ [:div {:class (stl/css :modal-content)} [:& fm/form {:form form :on-submit on-accept} - [:& fm/input {:name :asset-name + [:& fm/input {:name :name :class (stl/css :input-wrapper) :auto-focus? true :label (tr "workspace.assets.group-name") diff --git a/frontend/src/app/util/forms.cljs b/frontend/src/app/util/forms.cljs index 8cbb792b2f..d1e1c9b480 100644 --- a/frontend/src/app/util/forms.cljs +++ b/frontend/src/app/util/forms.cljs @@ -8,119 +8,146 @@ (:refer-clojure :exclude [uuid]) (:require [app.common.data :as d] - [app.common.spec :as us] + [app.common.data.macros :as dm] + [app.common.schema :as sm] [app.util.i18n :refer [tr]] - [cljs.spec.alpha :as s] [cuerdas.core :as str] + [malli.core :as m] [rumext.v2 :as mf])) ;; --- Handlers Helpers -(defn- interpret-problem - [acc {:keys [path pred via] :as problem}] - (cond - (and (empty? path) - (list? pred) - (= (first (last pred)) 'cljs.core/contains?)) - (let [field (last (last pred)) - path (conj path field) - root (first via)] - (assoc-in acc path {:code :missing :type :builtin :root root :field field})) +(defn- interpret-schema-problem + [acc {:keys [schema in value] :as problem}] + (let [props (merge (m/type-properties schema) + (m/properties schema)) + field (or (first in) (:error/field props))] - (and (seq path) (seq via)) - (let [field (first path) - code (last via) - root (first via)] - (assoc-in acc path {:code code :type :builtin :root root :field field})) + (if (contains? acc field) + acc + (cond + (nil? value) + (assoc acc field {:code "errors.field-missing"}) - :else acc)) + (contains? props :error/code) + (assoc acc field {:code (:error/code props)}) -(declare create-form-mutator) + (contains? props :error/message) + (assoc acc field {:code (:error/message props)}) -(defn use-form - [& {:keys [initial] :as opts}] - (let [state (mf/useState 0) - render (aget state 1) + (contains? props :error/fn) + (let [v-fn (:error/fn props) + code (v-fn problem)] + (assoc acc field {:code code})) - get-state (mf/use-callback - (mf/deps initial) - (fn [] - {:data (if (fn? initial) (initial) initial) - :errors {} - :touched {}})) + (contains? props :error/validators) + (let [validators (:error/validators props) + props (reduce #(%2 %1 value) props validators)] + (assoc acc field {:code (d/nilv (:error/code props) "errors.invalid-data")})) - state-ref (mf/use-ref (get-state)) - form (mf/use-memo (mf/deps initial) #(create-form-mutator state-ref render get-state opts))] + :else + (assoc acc field {:code "errors.invalid-data"}))))) - (mf/use-effect - (mf/deps initial) +(defn- use-rerender-fn + [] + (let [state (mf/useState 0) + render-fn (aget state 1)] + (mf/use-fn + (mf/deps render-fn) (fn [] - (if (fn? initial) - (swap! form update :data merge (initial)) - (swap! form update :data merge initial)))) + (render-fn inc))))) - form)) +(defn- apply-validators + [validators state errors] + (reduce (fn [errors validator-fn] + (merge errors (validator-fn errors (:data state)))) + errors + validators)) -(defn- wrap-update-fn - [f {:keys [spec validators]}] +(defn- collect-schema-errors + [schema validators state] + (let [explain (sm/explain schema (:data state)) + errors (->> (reduce interpret-schema-problem {} (:errors explain)) + (apply-validators validators state))] + + (-> (:errors state) + (merge errors) + (d/without-nils) + (not-empty)))) + +(defn- wrap-update-schema-fn + [f {:keys [schema validators]}] (fn [& args] - (let [state (apply f args) - cleaned (s/conform spec (:data state)) - problems (when (= ::s/invalid cleaned) - (::s/problems (s/explain-data spec (:data state)))) - - errors (reduce interpret-problem {} problems) - - - errors (reduce (fn [errors vf] - (merge errors (vf errors (:data state)))) - errors - validators) - errors (merge (:errors state) errors) - errors (d/without-nils errors)] - + (let [state (apply f args) + cleaned (sm/decode schema (:data state)) + valid? (sm/validate schema cleaned) + errors (when-not valid? + (collect-schema-errors schema validators state))] (assoc state :errors errors - :clean-data (when (not= cleaned ::s/invalid) cleaned) - :valid (and (empty? errors) - (not= cleaned ::s/invalid)))))) + :clean-data (when valid? cleaned) + :valid (and (not errors) valid?))))) (defn- create-form-mutator - [state-ref render get-state opts] + [internal-state rerender-fn wrap-update-fn initial opts] (reify IDeref (-deref [_] - (mf/ref-val state-ref)) + (mf/ref-val internal-state)) IReset (-reset! [_ new-value] (if (nil? new-value) - (mf/set-ref-val! state-ref (get-state)) - (mf/set-ref-val! state-ref new-value)) - (render inc)) + (mf/set-ref-val! internal-state (if (fn? initial) (initial) initial)) + (mf/set-ref-val! internal-state new-value)) + (rerender-fn)) ISwap (-swap! [_ f] (let [f (wrap-update-fn f opts)] - (mf/set-ref-val! state-ref (f (mf/ref-val state-ref))) - (render inc))) - + (mf/set-ref-val! internal-state (f (mf/ref-val internal-state))) + (rerender-fn))) (-swap! [_ f x] (let [f (wrap-update-fn f opts)] - (mf/set-ref-val! state-ref (f (mf/ref-val state-ref) x)) - (render inc))) + (mf/set-ref-val! internal-state (f (mf/ref-val internal-state) x)) + (rerender-fn))) (-swap! [_ f x y] (let [f (wrap-update-fn f opts)] - (mf/set-ref-val! state-ref (f (mf/ref-val state-ref) x y)) - (render inc))) + (mf/set-ref-val! internal-state (f (mf/ref-val internal-state) x y)) + (rerender-fn))) (-swap! [_ f x y more] (let [f (wrap-update-fn f opts)] - (mf/set-ref-val! state-ref (apply f (mf/ref-val state-ref) x y more)) - (render inc))))) + (mf/set-ref-val! internal-state (apply f (mf/ref-val internal-state) x y more)) + (rerender-fn))))) + +(defn use-form + [& {:keys [initial] :as opts}] + (let [rerender-fn (use-rerender-fn) + + internal-state + (mf/use-ref nil) + + form-mutator + (mf/with-memo [initial] + (create-form-mutator internal-state rerender-fn wrap-update-schema-fn initial opts))] + + ;; Initialize internal state once + (mf/with-effect [] + (mf/set-ref-val! internal-state + {:data {} + :errors {} + :touched {}})) + + (mf/with-effect [initial] + (if (fn? initial) + (swap! form-mutator update :data merge (initial)) + (swap! form-mutator update :data merge initial))) + + form-mutator)) (defn on-input-change ([form field value] @@ -150,8 +177,8 @@ (mf/defc field-error [{:keys [form field type] :as props}] - (let [{:keys [message] :as error} (get-in form [:errors field]) - touched? (get-in form [:touched field]) + (let [{:keys [message] :as error} (dm/get-in form [:errors field]) + touched? (dm/get-in form [:touched field]) show? (and touched? error message (cond (nil? type) true @@ -164,12 +191,6 @@ (defn error-class [form field] - (when (and (get-in form [:errors field]) - (get-in form [:touched field])) + (when (and (dm/get-in form [:errors field]) + (dm/get-in form [:touched field])) "invalid")) - -;; --- Form Specs and Conformers - -(s/def ::email ::us/email) -(s/def ::not-empty-string ::us/not-empty-string) -(s/def ::color ::us/rgb-color-str) diff --git a/frontend/translations/af.po b/frontend/translations/af.po index 5f940756e8..2ade2f3edd 100644 --- a/frontend/translations/af.po +++ b/frontend/translations/af.po @@ -76,20 +76,12 @@ msgstr "LDAP" msgid "auth.login-with-oidc-submit" msgstr "OpenID" -#: src/app/main/ui/settings/team-form.cljs, src/app/main/ui/auth/register.cljs, src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/onboarding/team_choice.cljs, src/app/main/ui/settings/access_tokens.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/settings/profile.cljs, src/app/main/ui/workspace/sidebar/assets.cljs -msgid "auth.name.not-all-space" -msgstr "Die naam moet 'n ander karakter as spasie bevat." - -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/onboarding/team_choice.cljs, src/app/main/ui/settings/access_tokens.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/settings/profile.cljs, src/app/main/ui/workspace/sidebar/assets.cljs -msgid "auth.name.too-long" -msgstr "Die naam moet hoogstens 250 karakters bevat." - #: src/app/main/ui/auth/recovery.cljs msgid "auth.new-password" msgstr "Tik 'n nuwe wagwoord in" #: src/app/main/ui/auth/recovery.cljs -msgid "auth.notifications.invalid-token-error" +msgid "errors.invalid-recovery-token" msgstr "Die hersteltoken is ongeldig." #: src/app/main/ui/auth/recovery.cljs @@ -118,10 +110,6 @@ msgstr "Wagwoord" msgid "auth.password-length-hint" msgstr "Ten minste 8 karakters" -#: src/app/main/ui/auth/register.cljs -msgid "auth.password-not-empty" -msgstr "Wagwoord moet 'n ander karakter as spasie bevat." - msgid "auth.privacy-policy" msgstr "Privaatheidsbeleid" @@ -275,7 +263,7 @@ msgid "dashboard.access-tokens.create" msgstr "Genereer nuwe token" #: src/app/main/ui/settings/access-tokens.cljs -msgid "dashboard.access-tokens.create.success" +msgid "dashboard.access-tokens.create-success" msgstr "Toegangstoken is suksesvol geskep." #: src/app/main/ui/settings/access-tokens.cljs @@ -286,10 +274,6 @@ msgstr "Druk die knoppie \"Genereer nuwe token\" om een te genereer." msgid "dashboard.access-tokens.empty.no-access-tokens" msgstr "Jy het tot dusver geen tokens nie." -#: src/app/main/ui/settings/access-tokens.cljs -msgid "dashboard.access-tokens.errors-required-name" -msgstr "Die naam word vereis" - #: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-180-days" msgstr "180 dae" diff --git a/frontend/translations/ar.po b/frontend/translations/ar.po index 8c1d9e966b..a47dac159d 100644 --- a/frontend/translations/ar.po +++ b/frontend/translations/ar.po @@ -78,7 +78,7 @@ msgid "auth.new-password" msgstr "اكتب كلمة مرور جديدة" #: src/app/main/ui/auth/recovery.cljs -msgid "auth.notifications.invalid-token-error" +msgid "errors.invalid-recovery-token" msgstr "رمز الاسترداد غير صالح." #: src/app/main/ui/auth/recovery.cljs @@ -743,11 +743,11 @@ msgstr "يحتوي البريد الإلكتروني «%s» على العديد #: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs, #: src/app/main/ui/auth/recovery_request.cljs -msgid "errors.email-invalid" +msgid "errors.invalid-email" msgstr "أدخل بريدًا إلكترونيًا صالحًا من فضلك" #: src/app/main/ui/settings/change_email.cljs -msgid "errors.email-invalid-confirmation" +msgid "errors.invalid-email-confirmation" msgstr "يجب أن يتطابق البريد الإلكتروني للتأكيد" msgid "errors.email-spam-or-permanent-bounces" @@ -2292,10 +2292,6 @@ msgstr "زيادة عدسة التكبير" msgid "shortcuts.zoom-selected" msgstr "كبر المحدد" -#: src/app/main/ui/dashboard/team.cljs -msgid "team.webhooks.max-length" -msgstr "يجب الا يزيد اسم الويبهوك على 2048 حرفا" - #: src/app/main/ui/dashboard/files.cljs msgid "title.dashboard.files" msgstr "%s - Penpotعنوان ملفات لوحة القيادة" @@ -4307,14 +4303,6 @@ msgstr "الرمز منسوخ" msgid "auth.login-tagline" msgstr "Penpot هو أداة تصميم مجانية ومفتوحة المصدر للتعاون بين التصميم والبرمجة" -#: src/app/main/ui/settings/team-form.cljs, src/app/main/ui/auth/register.cljs, src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/onboarding/team_choice.cljs, src/app/main/ui/settings/access_tokens.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/settings/profile.cljs, src/app/main/ui/workspace/sidebar/assets.cljs -msgid "auth.name.not-all-space" -msgstr "يجب أن يحتوي الاسم على بعض الأحرف غير الفراغات." - -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/onboarding/team_choice.cljs, src/app/main/ui/settings/access_tokens.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/settings/profile.cljs, src/app/main/ui/workspace/sidebar/assets.cljs -msgid "auth.name.too-long" -msgstr "يجب أن يحتوي الاسم على 250 حرفًا كحد أقصى." - #: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.empty.add-one" msgstr "اضغط على الزر \"إنشاء رمز جديد\" لإنشاء واحد." @@ -4332,5 +4320,5 @@ msgid "dashboard.access-tokens.create" msgstr "قم بإنشاء رمز جديد" #: src/app/main/ui/settings/access-tokens.cljs -msgid "dashboard.access-tokens.create.success" +msgid "dashboard.access-tokens.create-success" msgstr "تم إنشاء رمز الوصول بنجاح." diff --git a/frontend/translations/bn.po b/frontend/translations/bn.po index e6303cdcc6..478d20c961 100644 --- a/frontend/translations/bn.po +++ b/frontend/translations/bn.po @@ -77,5 +77,5 @@ msgid "auth.new-password" msgstr "নতুন পাসওয়ার্ড টাইপ করুন" #: src/app/main/ui/auth/recovery.cljs -msgid "auth.notifications.invalid-token-error" +msgid "errors.invalid-recovery-token" msgstr "রিকভারি টোকেন সঠিক নয়।" diff --git a/frontend/translations/ca.po b/frontend/translations/ca.po index b803c7206c..62017b4cae 100644 --- a/frontend/translations/ca.po +++ b/frontend/translations/ca.po @@ -81,7 +81,7 @@ msgid "auth.new-password" msgstr "Escriviu una contrasenya nova" #: src/app/main/ui/auth/recovery.cljs -msgid "auth.notifications.invalid-token-error" +msgid "errors.invalid-recovery-token" msgstr "El codi de recuperació no és vàlid." #: src/app/main/ui/auth/recovery.cljs @@ -722,7 +722,7 @@ msgid "errors.email-has-permanent-bounces" msgstr "El correu «%s» té molts informes de retorn permanents." #: src/app/main/ui/settings/change_email.cljs -msgid "errors.email-invalid-confirmation" +msgid "errors.invalid-email-confirmation" msgstr "El correu de confirmació ha de coincidir" msgid "errors.email-spam-or-permanent-bounces" diff --git a/frontend/translations/cs.po b/frontend/translations/cs.po index 862545f4cd..1140f40b0c 100644 --- a/frontend/translations/cs.po +++ b/frontend/translations/cs.po @@ -76,20 +76,12 @@ msgstr "LDAP" msgid "auth.login-with-oidc-submit" msgstr "OpenID" -#: src/app/main/ui/settings/team-form.cljs, src/app/main/ui/auth/register.cljs, src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/onboarding/team_choice.cljs, src/app/main/ui/settings/access_tokens.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/settings/profile.cljs, src/app/main/ui/workspace/sidebar/assets.cljs -msgid "auth.name.not-all-space" -msgstr "Název musí obsahovat jiný znak než mezeru." - -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/onboarding/team_choice.cljs, src/app/main/ui/settings/access_tokens.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/settings/profile.cljs, src/app/main/ui/workspace/sidebar/assets.cljs -msgid "auth.name.too-long" -msgstr "Název musí obsahovat maximálně 250 znaků." - #: src/app/main/ui/auth/recovery.cljs msgid "auth.new-password" msgstr "Zadejte nové heslo" #: src/app/main/ui/auth/recovery.cljs -msgid "auth.notifications.invalid-token-error" +msgid "errors.invalid-recovery-token" msgstr "Token pro obnovení je neplatný." #: src/app/main/ui/auth/recovery.cljs @@ -116,10 +108,6 @@ msgstr "Heslo" msgid "auth.password-length-hint" msgstr "Minimálně 8 znaků" -#: src/app/main/ui/auth/register.cljs -msgid "auth.password-not-empty" -msgstr "Heslo musí obsahovat jiný znak než mezeru." - msgid "auth.privacy-policy" msgstr "Zásady ochrany osobních údajů" @@ -278,7 +266,7 @@ msgid "dashboard.access-tokens.create" msgstr "Generovat nový token" #: src/app/main/ui/settings/access-tokens.cljs -msgid "dashboard.access-tokens.create.success" +msgid "dashboard.access-tokens.create-success" msgstr "Přístupový token byl úspěšně vytvořen." #: src/app/main/ui/settings/access-tokens.cljs @@ -291,10 +279,6 @@ msgstr "" msgid "dashboard.access-tokens.empty.no-access-tokens" msgstr "Zatím nemáte žádné tokeny." -#: src/app/main/ui/settings/access-tokens.cljs -msgid "dashboard.access-tokens.errors-required-name" -msgstr "Jméno je povinné" - #: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-180-days" msgstr "180 dní" @@ -865,11 +849,11 @@ msgstr "E-mail «%s» má mnoho trvalých zpráv o nedoručitelnosti." #: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs, #: src/app/main/ui/auth/recovery_request.cljs -msgid "errors.email-invalid" +msgid "errors.invalid-email" msgstr "Zadejte prosím platný email" #: src/app/main/ui/settings/change_email.cljs -msgid "errors.email-invalid-confirmation" +msgid "errors.invalid-email-confirmation" msgstr "Potvrzovací e-mail se musí shodovat" msgid "errors.email-spam-or-permanent-bounces" @@ -2974,10 +2958,6 @@ msgstr "Zvětšení zoomu" msgid "shortcuts.zoom-selected" msgstr "Přiblížit na vybrané" -#: src/app/main/ui/dashboard/team.cljs -msgid "team.webhooks.max-length" -msgstr "Název webhooku musí obsahovat maximálně 2048 znaků." - #: src/app/main/ui/dashboard/files.cljs msgid "title.dashboard.files" msgstr "%s - Penpot" diff --git a/frontend/translations/da.po b/frontend/translations/da.po index d90f002d52..7c176ff70e 100644 --- a/frontend/translations/da.po +++ b/frontend/translations/da.po @@ -81,7 +81,7 @@ msgid "auth.new-password" msgstr "Indtast et nyt kodeord" #: src/app/main/ui/auth/recovery.cljs -msgid "auth.notifications.invalid-token-error" +msgid "errors.invalid-recovery-token" msgstr "Genopretningspoletten er ugyldig." #: src/app/main/ui/auth/recovery.cljs diff --git a/frontend/translations/de.po b/frontend/translations/de.po index 48214d1fa3..207abcb76a 100644 --- a/frontend/translations/de.po +++ b/frontend/translations/de.po @@ -86,32 +86,12 @@ msgstr "LDAP" msgid "auth.login-with-oidc-submit" msgstr "OpenID" -#: src/app/main/ui/settings/team-form.cljs, src/app/main/ui/auth/register.cljs, -#: src/app/main/ui/dashboard/team_form.cljs, -#: src/app/main/ui/onboarding/team_choice.cljs, -#: src/app/main/ui/settings/access_tokens.cljs, -#: src/app/main/ui/settings/feedback.cljs, -#: src/app/main/ui/settings/profile.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs -msgid "auth.name.not-all-space" -msgstr "Der Name darf keine Leerzeichen enthalten." - -#: src/app/main/ui/auth/register.cljs, -#: src/app/main/ui/dashboard/team_form.cljs, -#: src/app/main/ui/onboarding/team_choice.cljs, -#: src/app/main/ui/settings/access_tokens.cljs, -#: src/app/main/ui/settings/feedback.cljs, -#: src/app/main/ui/settings/profile.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs -msgid "auth.name.too-long" -msgstr "Der Name darf höchstens 250 Zeichen lang sein." - #: src/app/main/ui/auth/recovery.cljs msgid "auth.new-password" msgstr "Geben Sie ein neues Passwort ein" #: src/app/main/ui/auth/recovery.cljs -msgid "auth.notifications.invalid-token-error" +msgid "errors.invalid-recovery-token" msgstr "Der Wiederherstellungscode ist ungültig." #: src/app/main/ui/auth/recovery.cljs @@ -141,10 +121,6 @@ msgstr "Passwort" msgid "auth.password-length-hint" msgstr "Mindestens 8 Zeichen" -#: src/app/main/ui/auth/register.cljs -msgid "auth.password-not-empty" -msgstr "Das Passwort darf keine Leerzeichen enthalten." - msgid "auth.privacy-policy" msgstr "Datenschutzerklärung" @@ -305,7 +281,7 @@ msgid "dashboard.access-tokens.create" msgstr "Neues Token generieren" #: src/app/main/ui/settings/access-tokens.cljs -msgid "dashboard.access-tokens.create.success" +msgid "dashboard.access-tokens.create-success" msgstr "Der Zugangstoken wurde erfolgreich erstellt." #: src/app/main/ui/settings/access-tokens.cljs @@ -318,10 +294,6 @@ msgstr "" msgid "dashboard.access-tokens.empty.no-access-tokens" msgstr "Du hast bisher keine Token." -#: src/app/main/ui/settings/access-tokens.cljs -msgid "dashboard.access-tokens.errors-required-name" -msgstr "Der Name ist erforderlich" - #: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-180-days" msgstr "180 Tage" @@ -921,11 +893,11 @@ msgstr "" #: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs, #: src/app/main/ui/auth/recovery_request.cljs -msgid "errors.email-invalid" +msgid "errors.invalid-email" msgstr "Geben Sie bitte eine gültige E-Mail-Adresse ein" #: src/app/main/ui/settings/change_email.cljs -msgid "errors.email-invalid-confirmation" +msgid "errors.invalid-email-confirmation" msgstr "Bestätigungs-E-Mail muss übereinstimmen" msgid "errors.email-spam-or-permanent-bounces" @@ -3099,10 +3071,6 @@ msgstr "Ansicht mit Zoomwerkzeug vergrößern" msgid "shortcuts.zoom-selected" msgstr "Zur Auswahl zoomen" -#: src/app/main/ui/dashboard/team.cljs -msgid "team.webhooks.max-length" -msgstr "Der Name des Webhooks darf höchstens 2048 Zeichen lang sein." - #: src/app/main/ui/dashboard/files.cljs msgid "title.dashboard.files" msgstr "%s - Penpot" diff --git a/frontend/translations/el.po b/frontend/translations/el.po index 4f4c677c1b..27ea17f25a 100644 --- a/frontend/translations/el.po +++ b/frontend/translations/el.po @@ -77,7 +77,7 @@ msgid "auth.new-password" msgstr "Πληκτρολογήστε έναν νέο κωδικό πρόσβασης." #: src/app/main/ui/auth/recovery.cljs -msgid "auth.notifications.invalid-token-error" +msgid "errors.invalid-recovery-token" msgstr "Ο κωδικός ανάκτησης δεν είναι έγκυρος." #: src/app/main/ui/auth/recovery.cljs @@ -384,7 +384,7 @@ msgid "errors.email-has-permanent-bounces" msgstr "Το email «%s» έχει πολλές μόνιμες αναφορές αναπήδησης." #: src/app/main/ui/settings/change_email.cljs -msgid "errors.email-invalid-confirmation" +msgid "errors.invalid-email-confirmation" msgstr "Το email επιβεβαίωσης πρέπει να ταιριάζει" #: src/app/main/ui/auth/verify_token.cljs, diff --git a/frontend/translations/en.po b/frontend/translations/en.po index 8458241ba9..b05464a4c9 100644 --- a/frontend/translations/en.po +++ b/frontend/translations/en.po @@ -98,19 +98,24 @@ msgid "auth.login-with-oidc-submit" msgstr "OpenID" #: src/app/main/ui/settings/team-form.cljs, src/app/main/ui/auth/register.cljs, src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/onboarding/team_choice.cljs, src/app/main/ui/settings/access_tokens.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/settings/profile.cljs, src/app/main/ui/workspace/sidebar/assets.cljs -msgid "auth.name.not-all-space" +msgid "errors.field-not-all-whitespace" msgstr "The name must contain some character other than space." -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/onboarding/team_choice.cljs, src/app/main/ui/settings/access_tokens.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/settings/profile.cljs, src/app/main/ui/workspace/sidebar/assets.cljs -msgid "auth.name.too-long" -msgstr "The name must contain at most 250 characters." +#: src/app/main/ui/auth/register.cljs, src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/onboarding/team_choice.cljs, src/app/main/ui/setti ngs/access_tokens.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/settings/profile.cljs, src/app/main/ui/workspace/sidebar/assets.cljs +msgid "errors.field-max-length" +msgstr[0] "Must contain at most 1 characters." +msgstr[1] "Must contain at most %s characters." + +msgid "errors.field-min-length" +msgstr[0] "Must contain at least 1 character." +msgstr[1] "Must contain at least %s characters." #: src/app/main/ui/auth/recovery.cljs msgid "auth.new-password" msgstr "Type a new password" #: src/app/main/ui/auth/recovery.cljs -msgid "auth.notifications.invalid-token-error" +msgid "errors.invalid-recovery-token" msgstr "The recovery token is invalid." #: src/app/main/ui/auth/recovery.cljs @@ -137,10 +142,6 @@ msgstr "Password" msgid "auth.password-length-hint" msgstr "At least 8 characters" -#: src/app/main/ui/auth/register.cljs -msgid "auth.password-not-empty" -msgstr "Password must contain some character other than space." - msgid "auth.privacy-policy" msgstr "Privacy policy" @@ -309,7 +310,7 @@ msgid "dashboard.access-tokens.create" msgstr "Generate new token" #: src/app/main/ui/settings/access-tokens.cljs -msgid "dashboard.access-tokens.create.success" +msgid "dashboard.access-tokens.create-success" msgstr "Access token created successfully." #: src/app/main/ui/settings/access-tokens.cljs @@ -320,10 +321,6 @@ msgstr "Press the button \"Generate new token\" to generate one." msgid "dashboard.access-tokens.empty.no-access-tokens" msgstr "You have no tokens so far." -#: src/app/main/ui/settings/access-tokens.cljs -msgid "dashboard.access-tokens.errors-required-name" -msgstr "The name is required" - #: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-180-days" msgstr "180 days" @@ -898,11 +895,11 @@ msgid "errors.email-has-permanent-bounces" msgstr "The email «%s» has many permanent bounce reports." #: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs, src/app/main/ui/auth/recovery_request.cljs -msgid "errors.email-invalid" +msgid "errors.invalid-email" msgstr "Enter a valid email please" #: src/app/main/ui/settings/change_email.cljs -msgid "errors.email-invalid-confirmation" +msgid "errors.invalid-email-confirmation" msgstr "Confirmation email must match" msgid "errors.email-spam-or-permanent-bounces" @@ -3131,10 +3128,6 @@ msgstr "Zoom lense increase" msgid "shortcuts.zoom-selected" msgstr "Zoom to selected" -#: src/app/main/ui/dashboard/team.cljs -msgid "team.webhooks.max-length" -msgstr "The webhook name must contain at most 2048 characters." - #: src/app/main/ui/dashboard/files.cljs msgid "title.dashboard.files" msgstr "%s - Penpot" diff --git a/frontend/translations/es.po b/frontend/translations/es.po index 187c38f822..c226af8922 100644 --- a/frontend/translations/es.po +++ b/frontend/translations/es.po @@ -98,19 +98,24 @@ msgid "auth.login-with-oidc-submit" msgstr "OpenID" #: src/app/main/ui/settings/team-form.cljs, src/app/main/ui/auth/register.cljs, src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/onboarding/team_choice.cljs, src/app/main/ui/settings/access_tokens.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/settings/profile.cljs, src/app/main/ui/workspace/sidebar/assets.cljs -msgid "auth.name.not-all-space" -msgstr "El nombre debe contener algún carácter diferente de espacio" +msgid "errors.field-not-all-whitespace" +msgstr "Debe contener algún carácter diferente de espacio." #: src/app/main/ui/auth/register.cljs, src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/onboarding/team_choice.cljs, src/app/main/ui/settings/access_tokens.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/settings/profile.cljs, src/app/main/ui/workspace/sidebar/assets.cljs -msgid "auth.name.too-long" -msgstr "El nombre debe contener como máximo 250 caracteres." +msgid "errors.field-max-length" +msgstr[0] "Debe contener como máximo 1 caracter." +msgstr[1] "Debe contener como máximo %s caracteres." + +msgid "errors.field-min-length" +msgstr[0] "Debe contener como mínimo 1 caracter." +msgstr[1] "Debe contener como mínimo %s caracteres." #: src/app/main/ui/auth/recovery.cljs msgid "auth.new-password" msgstr "Introduce la nueva contraseña" #: src/app/main/ui/auth/recovery.cljs -msgid "auth.notifications.invalid-token-error" +msgid "errors.invalid-recovery-token" msgstr "El código de recuperación no es válido." #: src/app/main/ui/auth/recovery.cljs @@ -139,10 +144,6 @@ msgstr "Contraseña" msgid "auth.password-length-hint" msgstr "8 caracteres como mínimo" -#: src/app/main/ui/auth/register.cljs -msgid "auth.password-not-empty" -msgstr "La contraseña debe contener algún caracter diferente de espacio" - msgid "auth.privacy-policy" msgstr "Política de privacidad" @@ -315,7 +316,7 @@ msgid "dashboard.access-tokens.create" msgstr "Generar nuevo token" #: src/app/main/ui/settings/access-tokens.cljs -msgid "dashboard.access-tokens.create.success" +msgid "dashboard.access-tokens.create-success" msgstr "Access token creado con éxito." #: src/app/main/ui/settings/access-tokens.cljs @@ -326,10 +327,6 @@ msgstr "Pulsa el botón \"Generar nuevo token\" para generar uno." msgid "dashboard.access-tokens.empty.no-access-tokens" msgstr "Todavía no tienes ningún token." -#: src/app/main/ui/settings/access-tokens.cljs -msgid "dashboard.access-tokens.errors-required-name" -msgstr "El nombre es obligatorio" - #: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-180-days" msgstr "180 días" @@ -924,11 +921,11 @@ msgid "errors.email-has-permanent-bounces" msgstr "El correo electrónico «%s» tiene varios reportes de rebote permanente." #: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs, src/app/main/ui/auth/recovery_request.cljs -msgid "errors.email-invalid" +msgid "errors.invalid-email" msgstr "Por favor, escribe un email válido" #: src/app/main/ui/settings/change_email.cljs -msgid "errors.email-invalid-confirmation" +msgid "errors.invalid-email-confirmation" msgstr "El correo de confirmación debe coincidir" msgid "errors.email-spam-or-permanent-bounces" @@ -3188,10 +3185,6 @@ msgstr "Incrementar zoom a objetivo" msgid "shortcuts.zoom-selected" msgstr "Zoom a selección" -#: src/app/main/ui/dashboard/team.cljs -msgid "team.webhooks.max-length" -msgstr "El nombre del webhook debe contener como máximo 2048 caracteres." - #: src/app/main/ui/dashboard/files.cljs msgid "title.dashboard.files" msgstr "%s - Penpot" diff --git a/frontend/translations/es_419.po b/frontend/translations/es_419.po index 97dfd69884..a89a3a2638 100644 --- a/frontend/translations/es_419.po +++ b/frontend/translations/es_419.po @@ -77,19 +77,20 @@ msgid "auth.login-with-oidc-submit" msgstr "Open ID" #: src/app/main/ui/settings/team-form.cljs, src/app/main/ui/auth/register.cljs, src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/onboarding/team_choice.cljs, src/app/main/ui/settings/access_tokens.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/settings/profile.cljs, src/app/main/ui/workspace/sidebar/assets.cljs -msgid "auth.name.not-all-space" +msgid "errors.field-not-all-whitespace" msgstr "El nombre debe contener algún carácter distinto al del espacio." #: src/app/main/ui/auth/register.cljs, src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/onboarding/team_choice.cljs, src/app/main/ui/settings/access_tokens.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/settings/profile.cljs, src/app/main/ui/workspace/sidebar/assets.cljs -msgid "auth.name.too-long" -msgstr "El nombre debe contener como máximo 250 caracteres." +msgid "errors.field-max-length" +msgstr[0] "El nombre debe contener como máximo 1 caracter." +msgstr[1] "El nombre debe contener como máximo %s caracteres." #: src/app/main/ui/auth/recovery.cljs msgid "auth.new-password" msgstr "Escribe una nueva contraseña" #: src/app/main/ui/auth/recovery.cljs -msgid "auth.notifications.invalid-token-error" +msgid "errors.invalid-recovery-token" msgstr "El token de recuperación no es válido." #: src/app/main/ui/auth/recovery.cljs @@ -118,10 +119,6 @@ msgstr "Contraseña" msgid "auth.password-length-hint" msgstr "Al menos 8 carácteres" -#: src/app/main/ui/auth/register.cljs -msgid "auth.password-not-empty" -msgstr "La contraseña debe contener algún carácter que no sea espacio." - msgid "auth.privacy-policy" msgstr "Política de privacidad" @@ -280,7 +277,7 @@ msgid "dashboard.access-tokens.create" msgstr "Generar nuevo token" #: src/app/main/ui/settings/access-tokens.cljs -msgid "dashboard.access-tokens.create.success" +msgid "dashboard.access-tokens.create-success" msgstr "Token de acceso creado correctamente." #: src/app/main/ui/settings/access-tokens.cljs @@ -291,10 +288,6 @@ msgstr "Presione el botón \"Generar nuevo token\" para generar uno." msgid "dashboard.access-tokens.empty.no-access-tokens" msgstr "No tienes tokens hasta el momento." -#: src/app/main/ui/settings/access-tokens.cljs -msgid "dashboard.access-tokens.errors-required-name" -msgstr "El nombre es requerido" - #: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-180-days" msgstr "180 días" diff --git a/frontend/translations/eu.po b/frontend/translations/eu.po index 485001f16e..c47aad698a 100644 --- a/frontend/translations/eu.po +++ b/frontend/translations/eu.po @@ -81,7 +81,7 @@ msgid "auth.new-password" msgstr "Sartu Pasahitz berria" #: src/app/main/ui/auth/recovery.cljs -msgid "auth.notifications.invalid-token-error" +msgid "errors.invalid-recovery-token" msgstr "Berreskuratzeko kodea ez da zuzena." #: src/app/main/ui/auth/recovery.cljs @@ -758,11 +758,11 @@ msgstr "«%s» helbideak ez ditu mezuak ondo jasotzen, itzuli egiten ditu." #: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs, #: src/app/main/ui/auth/recovery_request.cljs -msgid "errors.email-invalid" +msgid "errors.invalid-email" msgstr "Mesedez, idatzi eposta helbide zuzen bat" #: src/app/main/ui/settings/change_email.cljs -msgid "errors.email-invalid-confirmation" +msgid "errors.invalid-email-confirmation" msgstr "Egiaztapenereko epostak bat etorri behar du aurrekoarekin" msgid "errors.email-spam-or-permanent-bounces" diff --git a/frontend/translations/fa.po b/frontend/translations/fa.po index af9c817b28..08838d22a7 100644 --- a/frontend/translations/fa.po +++ b/frontend/translations/fa.po @@ -81,7 +81,7 @@ msgid "auth.new-password" msgstr "یک رمزعبور جدید تایپ کنید" #: src/app/main/ui/auth/recovery.cljs -msgid "auth.notifications.invalid-token-error" +msgid "errors.invalid-recovery-token" msgstr "توکن بازیابی نامعتبر است." #: src/app/main/ui/auth/recovery.cljs @@ -728,7 +728,7 @@ msgid "errors.email-as-password" msgstr "شما نمی‌توانید از ایمیل خود به عنوان رمزعبور استفاده کنید" #: src/app/main/ui/settings/change_email.cljs -msgid "errors.email-invalid-confirmation" +msgid "errors.invalid-email-confirmation" msgstr "ایمیل تأیید باید مطابقت داشته باشد" #: src/app/main/ui/auth/verify_token.cljs, diff --git a/frontend/translations/fin_FI.po b/frontend/translations/fin_FI.po index 48be1617c6..d16237c516 100644 --- a/frontend/translations/fin_FI.po +++ b/frontend/translations/fin_FI.po @@ -81,7 +81,7 @@ msgid "auth.new-password" msgstr "Syötä uusi salasana" #: src/app/main/ui/auth/recovery.cljs -msgid "auth.notifications.invalid-token-error" +msgid "errors.invalid-recovery-token" msgstr "Palautustunnus on virheellinen." #: src/app/main/ui/auth/recovery.cljs diff --git a/frontend/translations/fr.po b/frontend/translations/fr.po index 7882541726..25217c5df9 100644 --- a/frontend/translations/fr.po +++ b/frontend/translations/fr.po @@ -76,20 +76,12 @@ msgstr "LDAP" msgid "auth.login-with-oidc-submit" msgstr "OpenID" -#: src/app/main/ui/settings/team-form.cljs, src/app/main/ui/auth/register.cljs, src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/onboarding/team_choice.cljs, src/app/main/ui/settings/access_tokens.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/settings/profile.cljs, src/app/main/ui/workspace/sidebar/assets.cljs -msgid "auth.name.not-all-space" -msgstr "Le nom doit contenir au moins un caractère autre que l'espace." - -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/onboarding/team_choice.cljs, src/app/main/ui/settings/access_tokens.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/settings/profile.cljs, src/app/main/ui/workspace/sidebar/assets.cljs -msgid "auth.name.too-long" -msgstr "Le nom ne doit pas contenir plus de 250 caractères." - #: src/app/main/ui/auth/recovery.cljs msgid "auth.new-password" msgstr "Saisissez un nouveau mot de passe" #: src/app/main/ui/auth/recovery.cljs -msgid "auth.notifications.invalid-token-error" +msgid "errors.invalid-recovery-token" msgstr "Le code de récupération n’est pas valide." #: src/app/main/ui/auth/recovery.cljs @@ -116,10 +108,6 @@ msgstr "Mot de passe" msgid "auth.password-length-hint" msgstr "Au moins 8 caractères" -#: src/app/main/ui/auth/register.cljs -msgid "auth.password-not-empty" -msgstr "Le mot de passe doit contenir au moins un caractère autre que l'espace." - msgid "auth.privacy-policy" msgstr "Politique de confidentialité" @@ -271,7 +259,7 @@ msgid "dashboard.access-tokens.create" msgstr "Générer un nouveau jeton" #: src/app/main/ui/settings/access-tokens.cljs -msgid "dashboard.access-tokens.create.success" +msgid "dashboard.access-tokens.create-success" msgstr "Jeton d'accès créé avec succès." #: src/app/main/ui/settings/access-tokens.cljs @@ -282,10 +270,6 @@ msgstr "Pressez le bouton \"Générer un nouveau jeton\" pour en générer un." msgid "dashboard.access-tokens.empty.no-access-tokens" msgstr "Vous n'avez pas encore de jeton." -#: src/app/main/ui/settings/access-tokens.cljs -msgid "dashboard.access-tokens.errors-required-name" -msgstr "Le nom est requis" - #: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-180-days" msgstr "180 jours" @@ -874,11 +858,11 @@ msgid "errors.email-has-permanent-bounces" msgstr "L'adresse e-mail « %s » a un taux de rebond trop élevé." #: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs, src/app/main/ui/auth/recovery_request.cljs -msgid "errors.email-invalid" +msgid "errors.invalid-email" msgstr "Veuillez entrer une adresse mail valide" #: src/app/main/ui/settings/change_email.cljs -msgid "errors.email-invalid-confirmation" +msgid "errors.invalid-email-confirmation" msgstr "L’adresse e‑mail de confirmation doit correspondre" msgid "errors.email-spam-or-permanent-bounces" @@ -2930,10 +2914,6 @@ msgstr "Augmenter le zoom" msgid "shortcuts.zoom-selected" msgstr "Zoomer sur la sélection" -#: src/app/main/ui/dashboard/team.cljs -msgid "team.webhooks.max-length" -msgstr "Le nom du webhook ne peut pas contenir plus de 2048 caractères." - #: src/app/main/ui/dashboard/files.cljs msgid "title.dashboard.files" msgstr "%s - Penpot" diff --git a/frontend/translations/gl.po b/frontend/translations/gl.po index 3055ed0933..3d89251d03 100644 --- a/frontend/translations/gl.po +++ b/frontend/translations/gl.po @@ -81,7 +81,7 @@ msgid "auth.new-password" msgstr "Escribe un contrasinal novo" #: src/app/main/ui/auth/recovery.cljs -msgid "auth.notifications.invalid-token-error" +msgid "errors.invalid-recovery-token" msgstr "O código de recuperación non é correcto." #: src/app/main/ui/auth/recovery.cljs diff --git a/frontend/translations/ha.po b/frontend/translations/ha.po index 858165e3c4..594d242297 100644 --- a/frontend/translations/ha.po +++ b/frontend/translations/ha.po @@ -76,20 +76,12 @@ msgstr "LDAP" msgid "auth.login-with-oidc-submit" msgstr "shaidar buxewa" -#: src/app/main/ui/settings/team-form.cljs, src/app/main/ui/auth/register.cljs, src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/onboarding/team_choice.cljs, src/app/main/ui/settings/access_tokens.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/settings/profile.cljs, src/app/main/ui/workspace/sidebar/assets.cljs -msgid "auth.name.not-all-space" -msgstr "dole suna ya qumshi waxansu alamimon rubutu, sannan tazara." - -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/onboarding/team_choice.cljs, src/app/main/ui/settings/access_tokens.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/settings/profile.cljs, src/app/main/ui/workspace/sidebar/assets.cljs -msgid "auth.name.too-long" -msgstr "suna dole ya qunshi alamomin rubutu 250." - #: src/app/main/ui/auth/recovery.cljs msgid "auth.new-password" msgstr "sanya sabuwar lambar tsaro" #: src/app/main/ui/auth/recovery.cljs -msgid "auth.notifications.invalid-token-error" +msgid "errors.invalid-recovery-token" msgstr "lambar tsaron da ka sanya ba daidai ba ce." #: src/app/main/ui/auth/recovery.cljs @@ -252,7 +244,7 @@ msgid "dashboard.access-tokens.create" msgstr "samo sabuwar lambar tsaro" #: src/app/main/ui/settings/access-tokens.cljs -msgid "dashboard.access-tokens.create.success" +msgid "dashboard.access-tokens.create-success" msgstr "ka sami lambar tsaron da aka yi." #: src/app/main/ui/settings/access-tokens.cljs @@ -265,10 +257,6 @@ msgstr "" msgid "dashboard.access-tokens.empty.no-access-tokens" msgstr "ba ka da wasu lambobin tsaro yanzu." -#: src/app/main/ui/settings/access-tokens.cljs -msgid "dashboard.access-tokens.errors-required-name" -msgstr "ana buqatar suna" - #: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-180-days" msgstr "kwanaki 180" @@ -819,11 +807,11 @@ msgid "errors.email-has-permanent-bounces" msgstr "imel «%s» na da bayanan matsaloli na dindindin." #: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs, src/app/main/ui/auth/recovery_request.cljs -msgid "errors.email-invalid" +msgid "errors.invalid-email" msgstr "sanya imel mai amfani" #: src/app/main/ui/settings/change_email.cljs -msgid "errors.email-invalid-confirmation" +msgid "errors.invalid-email-confirmation" msgstr "tabbata imel xinka ya yi daidai" msgid "errors.email-spam-or-permanent-bounces" @@ -2790,10 +2778,6 @@ msgstr "Zuko karuwar ido" msgid "shortcuts.zoom-selected" msgstr "Zuko wanda aka zaba" -#: src/app/main/ui/dashboard/team.cljs -msgid "team.webhooks.max-length" -msgstr "Sunan shafin yanar gizon zai kunshi a mafi yawa haruffa 2048." - #: src/app/main/ui/dashboard/files.cljs msgid "title.dashboard.files" msgstr "%s - Tukunyar aje biro" diff --git a/frontend/translations/he.po b/frontend/translations/he.po index abdf5f5b38..85de785ed1 100644 --- a/frontend/translations/he.po +++ b/frontend/translations/he.po @@ -83,32 +83,12 @@ msgstr "LDAP" msgid "auth.login-with-oidc-submit" msgstr "‎OpenID Connect" -#: src/app/main/ui/settings/team-form.cljs, src/app/main/ui/auth/register.cljs, -#: src/app/main/ui/dashboard/team_form.cljs, -#: src/app/main/ui/onboarding/team_choice.cljs, -#: src/app/main/ui/settings/access_tokens.cljs, -#: src/app/main/ui/settings/feedback.cljs, -#: src/app/main/ui/settings/profile.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs -msgid "auth.name.not-all-space" -msgstr "השם חייב להכיל תווים שאינם רווחים." - -#: src/app/main/ui/auth/register.cljs, -#: src/app/main/ui/dashboard/team_form.cljs, -#: src/app/main/ui/onboarding/team_choice.cljs, -#: src/app/main/ui/settings/access_tokens.cljs, -#: src/app/main/ui/settings/feedback.cljs, -#: src/app/main/ui/settings/profile.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs -msgid "auth.name.too-long" -msgstr "השם חייב להכיל 250 תווים לכל היותר." - #: src/app/main/ui/auth/recovery.cljs msgid "auth.new-password" msgstr "נא להקליד סיסמה חדשה" #: src/app/main/ui/auth/recovery.cljs -msgid "auth.notifications.invalid-token-error" +msgid "errors.invalid-recovery-token" msgstr "אסימון השחזור שגוי." #: src/app/main/ui/auth/recovery.cljs @@ -135,10 +115,6 @@ msgstr "סיסמה" msgid "auth.password-length-hint" msgstr "8 תווים לפחות" -#: src/app/main/ui/auth/register.cljs -msgid "auth.password-not-empty" -msgstr "הסיסמה חייבת להכיל תווים שאינם רווחים." - msgid "auth.privacy-policy" msgstr "מדיניות פרטיות" @@ -293,7 +269,7 @@ msgid "dashboard.access-tokens.create" msgstr "יצירת אסימון חדש" #: src/app/main/ui/settings/access-tokens.cljs -msgid "dashboard.access-tokens.create.success" +msgid "dashboard.access-tokens.create-success" msgstr "אסימון הגישה נוצר בהצלחה." #: src/app/main/ui/settings/access-tokens.cljs @@ -304,10 +280,6 @@ msgstr "נא ללחוץ על הכפתור „יצירת אסימון חדש” msgid "dashboard.access-tokens.empty.no-access-tokens" msgstr "אין לך אסימונים עדיין." -#: src/app/main/ui/settings/access-tokens.cljs -msgid "dashboard.access-tokens.errors-required-name" -msgstr "השם הוא בגדר חובה" - #: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-180-days" msgstr "180 יום" @@ -889,11 +861,11 @@ msgstr "לכתובת הדוא״ל „%s” יש יותר מדי דוחות הח #: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs, #: src/app/main/ui/auth/recovery_request.cljs -msgid "errors.email-invalid" +msgid "errors.invalid-email" msgstr "נא למלא כתובת דוא״ל תקפה בבקשה" #: src/app/main/ui/settings/change_email.cljs -msgid "errors.email-invalid-confirmation" +msgid "errors.invalid-email-confirmation" msgstr "כתובת הדוא״ל לאימות חייבת להיות תואמת" msgid "errors.email-spam-or-permanent-bounces" @@ -3009,10 +2981,6 @@ msgstr "הגדלת עדשת תקריב" msgid "shortcuts.zoom-selected" msgstr "התמקדות על הנבחר" -#: src/app/main/ui/dashboard/team.cljs -msgid "team.webhooks.max-length" -msgstr "אורך שם ההתליה הוא עד 2048 תווים." - #: src/app/main/ui/dashboard/files.cljs msgid "title.dashboard.files" msgstr "%s‏ - Penpot" diff --git a/frontend/translations/hr.po b/frontend/translations/hr.po index b29b453ade..c551e954b4 100644 --- a/frontend/translations/hr.po +++ b/frontend/translations/hr.po @@ -80,7 +80,7 @@ msgid "auth.new-password" msgstr "Unesi novu lozinku" #: src/app/main/ui/auth/recovery.cljs -msgid "auth.notifications.invalid-token-error" +msgid "errors.invalid-recovery-token" msgstr "Token za oporavak je nevažeći." #: src/app/main/ui/auth/recovery.cljs @@ -715,7 +715,7 @@ msgid "errors.email-has-permanent-bounces" msgstr "E-pmail «%s» ima mnogo trajnih izvješća o odbijanju." #: src/app/main/ui/settings/change_email.cljs -msgid "errors.email-invalid-confirmation" +msgid "errors.invalid-email-confirmation" msgstr "E-mail za potvrdu mora odgovarati" msgid "errors.email-spam-or-permanent-bounces" diff --git a/frontend/translations/id.po b/frontend/translations/id.po index 9e6bef4d69..2014d95aa9 100644 --- a/frontend/translations/id.po +++ b/frontend/translations/id.po @@ -76,32 +76,12 @@ msgstr "LDAP" msgid "auth.login-with-oidc-submit" msgstr "OpenID Connect" -#: src/app/main/ui/settings/team-form.cljs, src/app/main/ui/auth/register.cljs, -#: src/app/main/ui/dashboard/team_form.cljs, -#: src/app/main/ui/onboarding/team_choice.cljs, -#: src/app/main/ui/settings/access_tokens.cljs, -#: src/app/main/ui/settings/feedback.cljs, -#: src/app/main/ui/settings/profile.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs -msgid "auth.name.not-all-space" -msgstr "Nama harus berisi beberapa karakter selain spasi." - -#: src/app/main/ui/auth/register.cljs, -#: src/app/main/ui/dashboard/team_form.cljs, -#: src/app/main/ui/onboarding/team_choice.cljs, -#: src/app/main/ui/settings/access_tokens.cljs, -#: src/app/main/ui/settings/feedback.cljs, -#: src/app/main/ui/settings/profile.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs -msgid "auth.name.too-long" -msgstr "Nama harus berisi setidaknya 250 karakter." - #: src/app/main/ui/auth/recovery.cljs msgid "auth.new-password" msgstr "Ketik kata sandi baru" #: src/app/main/ui/auth/recovery.cljs -msgid "auth.notifications.invalid-token-error" +msgid "errors.invalid-recovery-token" msgstr "Token pemulihan tidak sah." #: src/app/main/ui/auth/recovery.cljs @@ -129,10 +109,6 @@ msgstr "Kata sandi" msgid "auth.password-length-hint" msgstr "Setidaknya 8 karakter" -#: src/app/main/ui/auth/register.cljs -msgid "auth.password-not-empty" -msgstr "Kata sandi harus berisi beberapa karakter selain spasi." - msgid "auth.privacy-policy" msgstr "Kebijakan privasi" @@ -291,7 +267,7 @@ msgid "dashboard.access-tokens.create" msgstr "Buat token baru" #: src/app/main/ui/settings/access-tokens.cljs -msgid "dashboard.access-tokens.create.success" +msgid "dashboard.access-tokens.create-success" msgstr "Token akses berhasil dibuat." #: src/app/main/ui/settings/access-tokens.cljs @@ -302,10 +278,6 @@ msgstr "Tekan tombol \"Buat token baru\" untuk membuat token." msgid "dashboard.access-tokens.empty.no-access-tokens" msgstr "Anda belum memiliki token." -#: src/app/main/ui/settings/access-tokens.cljs -msgid "dashboard.access-tokens.errors-required-name" -msgstr "Nama diperlukan" - #: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-180-days" msgstr "180 hari" @@ -878,11 +850,11 @@ msgstr "Surel “%s” memiliki banyak laporan lompatan permanen." #: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs, #: src/app/main/ui/auth/recovery_request.cljs -msgid "errors.email-invalid" +msgid "errors.invalid-email" msgstr "Silakan menyediakan surel yang valid" #: src/app/main/ui/settings/change_email.cljs -msgid "errors.email-invalid-confirmation" +msgid "errors.invalid-email-confirmation" msgstr "Surel konfirmasi harus cocok" msgid "errors.email-spam-or-permanent-bounces" @@ -2964,10 +2936,6 @@ msgstr "Tambahkan lensa zum" msgid "shortcuts.zoom-selected" msgstr "Zum ke terpilih" -#: src/app/main/ui/dashboard/team.cljs -msgid "team.webhooks.max-length" -msgstr "Nama webhook berisi sampai 2048 karakter." - #: src/app/main/ui/dashboard/files.cljs msgid "title.dashboard.files" msgstr "%s - Penpot" diff --git a/frontend/translations/ig.po b/frontend/translations/ig.po index 6eb4ae1cbe..fd0da7b89b 100644 --- a/frontend/translations/ig.po +++ b/frontend/translations/ig.po @@ -70,20 +70,12 @@ msgstr "LDAP" msgid "auth.login-with-oidc-submit" msgstr "Mepe ID" -#: src/app/main/ui/settings/team-form.cljs, src/app/main/ui/auth/register.cljs, src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/onboarding/team_choice.cljs, src/app/main/ui/settings/access_tokens.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/settings/profile.cljs, src/app/main/ui/workspace/sidebar/assets.cljs -msgid "auth.name.not-all-space" -msgstr "Aha ga-enweriri ụfọdụ mkpụrụ edemede karịa oghere ." - -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/onboarding/team_choice.cljs, src/app/main/ui/settings/access_tokens.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/settings/profile.cljs, src/app/main/ui/workspace/sidebar/assets.cljs -msgid "auth.name.too-long" -msgstr "Aha ga-enweriri ọ karịa mkpụrụ okwu narị abụọ na iri ise" - #: src/app/main/ui/auth/recovery.cljs msgid "auth.new-password" msgstr "Pinye akara mpịbanye ọhụrụ" #: src/app/main/ui/auth/recovery.cljs -msgid "auth.notifications.invalid-token-error" +msgid "errors.invalid-recovery-token" msgstr "Ọdịmara e nweghachitere adabaghị ." #: src/app/main/ui/auth/recovery.cljs @@ -106,10 +98,6 @@ msgstr "Sonyere n'otu nke ọma" msgid "auth.password-length-hint" msgstr "Ọ karịa mkpụrụ ederede asatọ" -#: src/app/main/ui/auth/register.cljs -msgid "auth.password-not-empty" -msgstr "Akara mpịbanye ga-enweriri ụfọdụ leta/akara mpị karịa oghere ." - msgid "auth.privacy-policy" msgstr "Iwu oñiño onwe" @@ -245,17 +233,13 @@ msgid "dashboard.access-tokens.create" msgstr "Mepụta ọdịmara ọhụrụ" #: src/app/main/ui/settings/access-tokens.cljs -msgid "dashboard.access-tokens.create.success" +msgid "dashboard.access-tokens.create-success" msgstr "Mmepụtara ọdịmara nnweta gara nke ọma ." #: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.empty.add-one" msgstr "Pịa mpi \"Nweta ọdịmara ọhụrụ \" inweta otu ." -#: src/app/main/ui/settings/access-tokens.cljs -msgid "dashboard.access-tokens.errors-required-name" -msgstr "A chọrọ aha" - #: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-180-days" msgstr "Mkpụrụ ụbọchị narị na iri asatọ" @@ -724,11 +708,11 @@ msgid "errors.email-has-permanent-bounces" msgstr "Ozi-n «%s» nwere ọtụtụ ozi nkọwa mbịaghachigide." #: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs, src/app/main/ui/auth/recovery_request.cljs -msgid "errors.email-invalid" +msgid "errors.invalid-email" msgstr "Debanye aha ozi-n dabara adaba" #: src/app/main/ui/settings/change_email.cljs -msgid "errors.email-invalid-confirmation" +msgid "errors.invalid-email-confirmation" msgstr "Ozi-n nnabata ga-adabrịrị" msgid "errors.email-spam-or-permanent-bounces" diff --git a/frontend/translations/it.po b/frontend/translations/it.po index 47ea14afa7..5c1a9fb186 100644 --- a/frontend/translations/it.po +++ b/frontend/translations/it.po @@ -81,7 +81,7 @@ msgid "auth.new-password" msgstr "Inserisci una nuova password" #: src/app/main/ui/auth/recovery.cljs -msgid "auth.notifications.invalid-token-error" +msgid "errors.invalid-recovery-token" msgstr "Il codice di recupero non è valido." #: src/app/main/ui/auth/recovery.cljs @@ -706,7 +706,7 @@ msgid "errors.email-as-password" msgstr "Non è possibile utilizzare il tuo indirizzo e-mail come password" #: src/app/main/ui/settings/change_email.cljs -msgid "errors.email-invalid-confirmation" +msgid "errors.invalid-email-confirmation" msgstr "L'indirizzo e-mail di conferma deve corrispondere" msgid "errors.email-spam-or-permanent-bounces" diff --git a/frontend/translations/jpn_JP.po b/frontend/translations/jpn_JP.po index 9b325ce044..0dc3c920d9 100644 --- a/frontend/translations/jpn_JP.po +++ b/frontend/translations/jpn_JP.po @@ -77,7 +77,7 @@ msgid "auth.new-password" msgstr "新しいパスワードを入力" #: src/app/main/ui/auth/recovery.cljs -msgid "auth.notifications.invalid-token-error" +msgid "errors.invalid-recovery-token" msgstr "リカバリコードが無効です。" #: src/app/main/ui/auth/recovery.cljs @@ -519,7 +519,7 @@ msgid "errors.email-has-permanent-bounces" msgstr "メールアドレス «%s» には多くの受信失敗レポートがあります。" #: src/app/main/ui/settings/change_email.cljs -msgid "errors.email-invalid-confirmation" +msgid "errors.invalid-email-confirmation" msgstr "メールアドレスは同じものを入力する必要があります" msgid "errors.email-spam-or-permanent-bounces" diff --git a/frontend/translations/ko.po b/frontend/translations/ko.po index 3bd56f6d27..cf99805feb 100644 --- a/frontend/translations/ko.po +++ b/frontend/translations/ko.po @@ -683,7 +683,7 @@ msgstr "데모 서비스입니다. 실제 작업에 사용하지 마십시오. "주기적으로 삭제될 것입니다." #: src/app/main/ui/auth/recovery.cljs -msgid "auth.notifications.invalid-token-error" +msgid "errors.invalid-recovery-token" msgstr "복구 토큰이 유효하지 않습니다." msgid "common.share-link.destroy-link" @@ -717,14 +717,6 @@ msgstr "개인용 엑세스 토큰" msgid "dashboard.access-tokens.expired-on" msgstr "%s에 만료되었습니다" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/onboarding/team_choice.cljs, src/app/main/ui/settings/access_tokens.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/settings/profile.cljs, src/app/main/ui/workspace/sidebar/assets.cljs -msgid "auth.name.too-long" -msgstr "이름은 최대 250자까지만 입력 가능합니다." - -#: src/app/main/ui/settings/access-tokens.cljs -msgid "dashboard.access-tokens.errors-required-name" -msgstr "이름을 입력하십시오" - #: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.copied-success" msgstr "복사된 토큰" @@ -754,8 +746,10 @@ msgid "auth.login-tagline" msgstr "펜팟은 디자인과 코딩의 협업을 위한 무료 오픈소스 디자인 도구입니다" #: src/app/main/ui/auth/register.cljs -msgid "auth.password-not-empty" -msgstr "비밀번호는 공백 이외의 글자를 포함해야 합니다." +#, markdown +msgid "auth.terms-privacy-agreement-md" +msgstr "새로운 계정을 생성하시면, 사용자는 펜팟의 [서비스 정책](%s)과 [개인 정보 " +"정책](%s)에 동의하는 것으로 간주됩니다." #: src/app/main/ui/dashboard/projects.cljs msgid "dasboard.team-hero.text" @@ -774,16 +768,12 @@ msgstr "실습용 튜토리얼" msgid "auth.login-account-title" msgstr "내 계정에 로그인하기" -#: src/app/main/ui/settings/team-form.cljs, src/app/main/ui/auth/register.cljs, src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/onboarding/team_choice.cljs, src/app/main/ui/settings/access_tokens.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/settings/profile.cljs, src/app/main/ui/workspace/sidebar/assets.cljs -msgid "auth.name.not-all-space" -msgstr "이름은 공백 이외의 글자를 포함해야 합니다." - #: src/app/main/ui/dashboard/projects.cljs msgid "dasboard.tutorial-hero.info" msgstr "본 실습용 튜토리얼을 통해 펜팟의 기본 기능에 대하여 재미있게 학습하십시오." #: src/app/main/ui/settings/access-tokens.cljs -msgid "dashboard.access-tokens.create.success" +msgid "dashboard.access-tokens.create-success" msgstr "엑세스 토큰이 성공적으로 생성되었습니다." #: src/app/main/ui/settings/access-tokens.cljs diff --git a/frontend/translations/lt.po b/frontend/translations/lt.po index 707e94a2bc..08113cf5ca 100644 --- a/frontend/translations/lt.po +++ b/frontend/translations/lt.po @@ -83,7 +83,7 @@ msgstr "Įveskite naują slaptažodį" #: src/app/main/ui/auth/recovery.cljs #, fuzzy -msgid "auth.notifications.invalid-token-error" +msgid "errors.invalid-recovery-token" msgstr "Atkūrimo prieigos raktas neteisingas." #: src/app/main/ui/auth/recovery.cljs diff --git a/frontend/translations/lv.po b/frontend/translations/lv.po index bb7a0d34bb..d759cd7bd0 100644 --- a/frontend/translations/lv.po +++ b/frontend/translations/lv.po @@ -85,20 +85,12 @@ msgstr "LDAP" msgid "auth.login-with-oidc-submit" msgstr "AtvērtoID (OpenID)" -#: src/app/main/ui/settings/team-form.cljs, src/app/main/ui/auth/register.cljs, src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/onboarding/team_choice.cljs, src/app/main/ui/settings/access_tokens.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/settings/profile.cljs, src/app/main/ui/workspace/sidebar/assets.cljs -msgid "auth.name.not-all-space" -msgstr "Nosaukumam jāsatur simboli, kas nav atstarpe." - -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/onboarding/team_choice.cljs, src/app/main/ui/settings/access_tokens.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/settings/profile.cljs, src/app/main/ui/workspace/sidebar/assets.cljs -msgid "auth.name.too-long" -msgstr "Nosaukumus nedrīkst pārsniegt 250 simbolus." - #: src/app/main/ui/auth/recovery.cljs msgid "auth.new-password" msgstr "Ierakstiet jaunu paroli" #: src/app/main/ui/auth/recovery.cljs -msgid "auth.notifications.invalid-token-error" +msgid "errors.invalid-recovery-token" msgstr "Atkopšanas tekstvienība nav derīga." #: src/app/main/ui/auth/recovery.cljs @@ -127,10 +119,6 @@ msgstr "Parole" msgid "auth.password-length-hint" msgstr "Vismaz 8 rakstzīmes" -#: src/app/main/ui/auth/register.cljs -msgid "auth.password-not-empty" -msgstr "Parolē ir jābūt arī citām rakstzīmēm bez atstarpes." - msgid "auth.privacy-policy" msgstr "Privātuma politika" @@ -287,7 +275,7 @@ msgid "dashboard.access-tokens.create" msgstr "Izveidot jaunu pilnvaru" #: src/app/main/ui/settings/access-tokens.cljs -msgid "dashboard.access-tokens.create.success" +msgid "dashboard.access-tokens.create-success" msgstr "Piekļuves pilnvara ir veiksmīgi izveidota." #: src/app/main/ui/settings/access-tokens.cljs @@ -298,10 +286,6 @@ msgstr "Jānospiež poga \"Izveidot jaunu pilnvaru\", lai izveidotu kādu." msgid "dashboard.access-tokens.empty.no-access-tokens" msgstr "Pagaidām vēl nav pilnvaru." -#: src/app/main/ui/settings/access-tokens.cljs -msgid "dashboard.access-tokens.errors-required-name" -msgstr "Nosaukums ir obligāts" - #: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-180-days" msgstr "180 dienas" @@ -890,11 +874,11 @@ msgstr "E-pastam “%s” ir daudz pastāvīgu atlēcienu atskaišu." #: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs, #: src/app/main/ui/auth/recovery_request.cljs -msgid "errors.email-invalid" +msgid "errors.invalid-email" msgstr "Lūgums ievadīt derīgu e-pasta adresi" #: src/app/main/ui/settings/change_email.cljs -msgid "errors.email-invalid-confirmation" +msgid "errors.invalid-email-confirmation" msgstr "Apstiprinājuma e-pastam jāatbilst" msgid "errors.email-spam-or-permanent-bounces" @@ -3062,10 +3046,6 @@ msgstr "Tālummaiņas palielinājums" msgid "shortcuts.zoom-selected" msgstr "Tālummainīt uz atlasi" -#: src/app/main/ui/dashboard/team.cljs -msgid "team.webhooks.max-length" -msgstr "Tīmekļa aizķeres nosaukumā drīkst būt ne vairāk kā 2048 rakstzīmes." - #: src/app/main/ui/dashboard/files.cljs msgid "title.dashboard.files" msgstr "%s - Penpot" diff --git a/frontend/translations/ml.po b/frontend/translations/ml.po index f67e468d90..2502c20107 100644 --- a/frontend/translations/ml.po +++ b/frontend/translations/ml.po @@ -81,7 +81,7 @@ msgid "auth.new-password" msgstr "പുതിയൊരു പാസ്‌വേഡ് ചേർക്കുക" #: src/app/main/ui/auth/recovery.cljs -msgid "auth.notifications.invalid-token-error" +msgid "errors.invalid-recovery-token" msgstr "റിക്കവറി ടോക്കൺ അസാധുവാണ്." #: src/app/main/ui/auth/recovery.cljs diff --git a/frontend/translations/ms.po b/frontend/translations/ms.po index 3e07cb73f4..08db4e6f9c 100644 --- a/frontend/translations/ms.po +++ b/frontend/translations/ms.po @@ -62,20 +62,12 @@ msgstr "LDAP" msgid "auth.login-with-oidc-submit" msgstr "OpenID Connect" -#: src/app/main/ui/settings/team-form.cljs, src/app/main/ui/auth/register.cljs, src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/onboarding/team_choice.cljs, src/app/main/ui/settings/access_tokens.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/settings/profile.cljs, src/app/main/ui/workspace/sidebar/assets.cljs -msgid "auth.name.not-all-space" -msgstr "Nama mesti mengandungi beberapa aksara selain ruang." - -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/onboarding/team_choice.cljs, src/app/main/ui/settings/access_tokens.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/settings/profile.cljs, src/app/main/ui/workspace/sidebar/assets.cljs -msgid "auth.name.too-long" -msgstr "Nama mesti mengandungi paling banyak 250 aksara." - #: src/app/main/ui/auth/recovery.cljs msgid "auth.new-password" msgstr "Taip kata laluan baharu" #: src/app/main/ui/auth/recovery.cljs -msgid "auth.notifications.invalid-token-error" +msgid "errors.invalid-recovery-token" msgstr "Token pemulihan adalah tidak sah." #: src/app/main/ui/auth/recovery.cljs @@ -102,10 +94,6 @@ msgstr "Kata laluan" msgid "auth.password-length-hint" msgstr "Sekurang-kurangnya 8 aksara" -#: src/app/main/ui/auth/register.cljs -msgid "auth.password-not-empty" -msgstr "Kata laluan mesti mengandungi beberapa aksara selain daripada ruang." - msgid "auth.privacy-policy" msgstr "Dasar privasi" @@ -263,7 +251,7 @@ msgid "dashboard.access-tokens.create" msgstr "Jana token baru" #: src/app/main/ui/settings/access-tokens.cljs -msgid "dashboard.access-tokens.create.success" +msgid "dashboard.access-tokens.create-success" msgstr "Token capaian berjaya dihasilkan." #: src/app/main/ui/settings/access-tokens.cljs @@ -274,10 +262,6 @@ msgstr "Tekan butang \"Jana token baharu\" untuk menjana token." msgid "dashboard.access-tokens.empty.no-access-tokens" msgstr "Anda tidak mempunyai token setakat ini." -#: src/app/main/ui/settings/access-tokens.cljs -msgid "dashboard.access-tokens.errors-required-name" -msgstr "Nama diperlukan" - #: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-180-days" msgstr "180 hari" @@ -840,11 +824,11 @@ msgid "errors.email-has-permanent-bounces" msgstr "E-mel «%s» mempunyai banyak laporan lantunan kekal." #: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs, src/app/main/ui/auth/recovery_request.cljs -msgid "errors.email-invalid" +msgid "errors.invalid-email" msgstr "Sila masukkan e-mel yang sah" #: src/app/main/ui/settings/change_email.cljs -msgid "errors.email-invalid-confirmation" +msgid "errors.invalid-email-confirmation" msgstr "E-mel pengesahan mesti sepadan" msgid "errors.email-spam-or-permanent-bounces" diff --git a/frontend/translations/nb_NO.po b/frontend/translations/nb_NO.po index 990f3b2c1d..76d20969bc 100644 --- a/frontend/translations/nb_NO.po +++ b/frontend/translations/nb_NO.po @@ -28,7 +28,7 @@ msgid "auth.new-password" msgstr "Skriv inn et nytt passord" #: src/app/main/ui/auth/recovery.cljs -msgid "auth.notifications.invalid-token-error" +msgid "errors.invalid-recovery-token" msgstr "Gjenopprettelsessymbolet er ugyldig." #: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs diff --git a/frontend/translations/nl.po b/frontend/translations/nl.po index 7e3bf1d07e..139c96ddf4 100644 --- a/frontend/translations/nl.po +++ b/frontend/translations/nl.po @@ -86,32 +86,12 @@ msgstr "LDAP" msgid "auth.login-with-oidc-submit" msgstr "OpenID" -#: src/app/main/ui/settings/team-form.cljs, src/app/main/ui/auth/register.cljs, -#: src/app/main/ui/dashboard/team_form.cljs, -#: src/app/main/ui/onboarding/team_choice.cljs, -#: src/app/main/ui/settings/access_tokens.cljs, -#: src/app/main/ui/settings/feedback.cljs, -#: src/app/main/ui/settings/profile.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs -msgid "auth.name.not-all-space" -msgstr "De naam mag geen spatie bevatten." - -#: src/app/main/ui/auth/register.cljs, -#: src/app/main/ui/dashboard/team_form.cljs, -#: src/app/main/ui/onboarding/team_choice.cljs, -#: src/app/main/ui/settings/access_tokens.cljs, -#: src/app/main/ui/settings/feedback.cljs, -#: src/app/main/ui/settings/profile.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs -msgid "auth.name.too-long" -msgstr "De naam mag maximaal 250 tekens bevatten." - #: src/app/main/ui/auth/recovery.cljs msgid "auth.new-password" msgstr "Typ een nieuw wachtwoord" #: src/app/main/ui/auth/recovery.cljs -msgid "auth.notifications.invalid-token-error" +msgid "errors.invalid-recovery-token" msgstr "De herstelbewijsstuk is ongeldig." #: src/app/main/ui/auth/recovery.cljs @@ -138,10 +118,6 @@ msgstr "Wachtwoord" msgid "auth.password-length-hint" msgstr "Minimaal 8 tekens" -#: src/app/main/ui/auth/register.cljs -msgid "auth.password-not-empty" -msgstr "Het wachtwoord mag geen spatie bevatten." - msgid "auth.privacy-policy" msgstr "Privacybeleid" @@ -301,7 +277,7 @@ msgid "dashboard.access-tokens.create" msgstr "Nieuw toegangsbewijs aanmaken" #: src/app/main/ui/settings/access-tokens.cljs -msgid "dashboard.access-tokens.create.success" +msgid "dashboard.access-tokens.create-success" msgstr "Toegangsbewijs is succesvol aangemaakt." #: src/app/main/ui/settings/access-tokens.cljs @@ -312,10 +288,6 @@ msgstr "Klik op de knop \"Nieuw toegangsbewijs aanmaken\" om er een aan te maken msgid "dashboard.access-tokens.empty.no-access-tokens" msgstr "Je hebt nog geen toegangsbewijzen." -#: src/app/main/ui/settings/access-tokens.cljs -msgid "dashboard.access-tokens.errors-required-name" -msgstr "De naam is verplicht" - #: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-180-days" msgstr "180 dagen" @@ -909,11 +881,11 @@ msgstr "Het emailadres «%s» heeft veel permanente bounce-rapporten." #: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs, #: src/app/main/ui/auth/recovery_request.cljs -msgid "errors.email-invalid" +msgid "errors.invalid-email" msgstr "Voer een geldig e-mailadres in" #: src/app/main/ui/settings/change_email.cljs -msgid "errors.email-invalid-confirmation" +msgid "errors.invalid-email-confirmation" msgstr "Bevestigingsmail moet overeenkomen" msgid "errors.email-spam-or-permanent-bounces" @@ -3056,10 +3028,6 @@ msgstr "Zoomlens vergroten" msgid "shortcuts.zoom-selected" msgstr "Zoomen naar selectie" -#: src/app/main/ui/dashboard/team.cljs -msgid "team.webhooks.max-length" -msgstr "De webhooknaam mag maximaal 2048 tekens bevatten." - #: src/app/main/ui/dashboard/files.cljs msgid "title.dashboard.files" msgstr "%s - Penpot" diff --git a/frontend/translations/pl.po b/frontend/translations/pl.po index 505571f231..30db462572 100644 --- a/frontend/translations/pl.po +++ b/frontend/translations/pl.po @@ -82,7 +82,7 @@ msgid "auth.new-password" msgstr "Wpisz nowe hasło" #: src/app/main/ui/auth/recovery.cljs -msgid "auth.notifications.invalid-token-error" +msgid "errors.invalid-recovery-token" msgstr "Token odzyskiwania jest nieprawidłowy." #: src/app/main/ui/auth/recovery.cljs @@ -732,11 +732,11 @@ msgid "errors.email-has-permanent-bounces" msgstr "Email «%s» zawiera wiele stałych raportów o odrzuceniu." #: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs, src/app/main/ui/auth/recovery_request.cljs -msgid "errors.email-invalid" +msgid "errors.invalid-email" msgstr "Podaj prawidłowy adres e-mail" #: src/app/main/ui/settings/change_email.cljs -msgid "errors.email-invalid-confirmation" +msgid "errors.invalid-email-confirmation" msgstr "E-mail potwierdzający musi być zgodny" msgid "errors.email-spam-or-permanent-bounces" diff --git a/frontend/translations/pt_BR.po b/frontend/translations/pt_BR.po index e61276ac65..0e7625482d 100644 --- a/frontend/translations/pt_BR.po +++ b/frontend/translations/pt_BR.po @@ -81,7 +81,7 @@ msgid "auth.new-password" msgstr "Digite uma nova senha" #: src/app/main/ui/auth/recovery.cljs -msgid "auth.notifications.invalid-token-error" +msgid "errors.invalid-recovery-token" msgstr "O código de recuperação é inválido." #: src/app/main/ui/auth/recovery.cljs @@ -731,11 +731,11 @@ msgid "errors.email-has-permanent-bounces" msgstr "O e-mail «%s» tem muitos relatórios de devolução permanentes." #: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs, src/app/main/ui/auth/recovery_request.cljs -msgid "errors.email-invalid" +msgid "errors.invalid-email" msgstr "Por favor, insira um email válido" #: src/app/main/ui/settings/change_email.cljs -msgid "errors.email-invalid-confirmation" +msgid "errors.invalid-email-confirmation" msgstr "E-mail de confirmação deve ser o mesmo" msgid "errors.email-spam-or-permanent-bounces" diff --git a/frontend/translations/pt_PT.po b/frontend/translations/pt_PT.po index 011a7e5bad..20968b6b3c 100644 --- a/frontend/translations/pt_PT.po +++ b/frontend/translations/pt_PT.po @@ -76,32 +76,12 @@ msgstr "LDAP" msgid "auth.login-with-oidc-submit" msgstr "OpenID Connect" -#: src/app/main/ui/settings/team-form.cljs, src/app/main/ui/auth/register.cljs, -#: src/app/main/ui/dashboard/team_form.cljs, -#: src/app/main/ui/onboarding/team_choice.cljs, -#: src/app/main/ui/settings/access_tokens.cljs, -#: src/app/main/ui/settings/feedback.cljs, -#: src/app/main/ui/settings/profile.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs -msgid "auth.name.not-all-space" -msgstr "O nome deve conter pelo menos um caractere que não seja um espaço." - -#: src/app/main/ui/auth/register.cljs, -#: src/app/main/ui/dashboard/team_form.cljs, -#: src/app/main/ui/onboarding/team_choice.cljs, -#: src/app/main/ui/settings/access_tokens.cljs, -#: src/app/main/ui/settings/feedback.cljs, -#: src/app/main/ui/settings/profile.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs -msgid "auth.name.too-long" -msgstr "O nome deve conter um máximo de 250 caracteres." - #: src/app/main/ui/auth/recovery.cljs msgid "auth.new-password" msgstr "Escreve uma nova palavra-passe" #: src/app/main/ui/auth/recovery.cljs -msgid "auth.notifications.invalid-token-error" +msgid "errors.invalid-recovery-token" msgstr "O token de recuperação é inválido." #: src/app/main/ui/auth/recovery.cljs @@ -128,11 +108,6 @@ msgstr "Palavra-passe" msgid "auth.password-length-hint" msgstr "Mínimo de 8 caracteres" -#: src/app/main/ui/auth/register.cljs -msgid "auth.password-not-empty" -msgstr "" -"A palavra-passe deve conter pelo menos um caractere que não seja um espaço." - msgid "auth.privacy-policy" msgstr "Política de privacidade" @@ -291,7 +266,7 @@ msgid "dashboard.access-tokens.create" msgstr "Gerar novo token" #: src/app/main/ui/settings/access-tokens.cljs -msgid "dashboard.access-tokens.create.success" +msgid "dashboard.access-tokens.create-success" msgstr "Token de acesso criado com sucesso." #: src/app/main/ui/settings/access-tokens.cljs @@ -302,10 +277,6 @@ msgstr "Clica no botão \"Gerar novo token\" para gerar um." msgid "dashboard.access-tokens.empty.no-access-tokens" msgstr "Ainda não tens nenhum token." -#: src/app/main/ui/settings/access-tokens.cljs -msgid "dashboard.access-tokens.errors-required-name" -msgstr "O nome é obrigatório" - #: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-180-days" msgstr "180 dias" @@ -887,11 +858,11 @@ msgstr "O e-mail «%s» tem muitos relatórios de rejeição permanentes." #: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs, #: src/app/main/ui/auth/recovery_request.cljs -msgid "errors.email-invalid" +msgid "errors.invalid-email" msgstr "Por favor introduz um email válido" #: src/app/main/ui/settings/change_email.cljs -msgid "errors.email-invalid-confirmation" +msgid "errors.invalid-email-confirmation" msgstr "O e-mail de confirmação deve combinar" msgid "errors.email-spam-or-permanent-bounces" @@ -2989,10 +2960,6 @@ msgstr "Aumentar zoom na lupa" msgid "shortcuts.zoom-selected" msgstr "Zoom para selecionados" -#: src/app/main/ui/dashboard/team.cljs -msgid "team.webhooks.max-length" -msgstr "O nome do webhook deve conter um máximo de 2048 caracteres." - #: src/app/main/ui/dashboard/files.cljs msgid "title.dashboard.files" msgstr "%s - Penpot" diff --git a/frontend/translations/ro.po b/frontend/translations/ro.po index 76fd8d9620..5fe6786aaa 100644 --- a/frontend/translations/ro.po +++ b/frontend/translations/ro.po @@ -77,20 +77,12 @@ msgstr "LDAP" msgid "auth.login-with-oidc-submit" msgstr "OpenID" -#: src/app/main/ui/settings/team-form.cljs, src/app/main/ui/auth/register.cljs, src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/onboarding/team_choice.cljs, src/app/main/ui/settings/access_tokens.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/settings/profile.cljs, src/app/main/ui/workspace/sidebar/assets.cljs -msgid "auth.name.not-all-space" -msgstr "Numele trebuie să conțină un caracter altul decât spațiu." - -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/onboarding/team_choice.cljs, src/app/main/ui/settings/access_tokens.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/settings/profile.cljs, src/app/main/ui/workspace/sidebar/assets.cljs -msgid "auth.name.too-long" -msgstr "Numele trebuie să conțină cel mult 250 caractere." - #: src/app/main/ui/auth/recovery.cljs msgid "auth.new-password" msgstr "Introduceți o parolă nouă" #: src/app/main/ui/auth/recovery.cljs -msgid "auth.notifications.invalid-token-error" +msgid "errors.invalid-recovery-token" msgstr "Codul de recuperare nu este valid." #: src/app/main/ui/auth/recovery.cljs @@ -119,10 +111,6 @@ msgstr "Parola" msgid "auth.password-length-hint" msgstr "Cel puțin 8 caractere" -#: src/app/main/ui/auth/register.cljs -msgid "auth.password-not-empty" -msgstr "Parola trebuie să conțină un caracter altul decât spațiu." - msgid "auth.privacy-policy" msgstr "Politica de Confidențialitate" @@ -277,7 +265,7 @@ msgid "dashboard.access-tokens.create" msgstr "Generați jeton nou" #: src/app/main/ui/settings/access-tokens.cljs -msgid "dashboard.access-tokens.create.success" +msgid "dashboard.access-tokens.create-success" msgstr "Jeton de acces creat cu succes." #: src/app/main/ui/settings/access-tokens.cljs @@ -288,10 +276,6 @@ msgstr "Apăsați butonul 'Generați jeton nou' pentru a genera unul." msgid "dashboard.access-tokens.empty.no-access-tokens" msgstr "Nu aveți încă jetoane." -#: src/app/main/ui/settings/access-tokens.cljs -msgid "dashboard.access-tokens.errors-required-name" -msgstr "Numele este obligatoriu" - #: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-180-days" msgstr "180 zile" @@ -872,11 +856,11 @@ msgstr "Adresa de email «%s» are multe rapoarte permanente de respingere." #: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs, #: src/app/main/ui/auth/recovery_request.cljs -msgid "errors.email-invalid" +msgid "errors.invalid-email" msgstr "Vă rugăm să introduceți un e-mail valid" #: src/app/main/ui/settings/change_email.cljs -msgid "errors.email-invalid-confirmation" +msgid "errors.invalid-email-confirmation" msgstr "E-mailul de confirmare trebuie să se potrivească" msgid "errors.email-spam-or-permanent-bounces" @@ -2893,10 +2877,6 @@ msgstr "Creștere obiectiv de zoom" msgid "shortcuts.zoom-selected" msgstr "Mărește la selecție" -#: src/app/main/ui/dashboard/team.cljs -msgid "team.webhooks.max-length" -msgstr "Numele webhook-ului trebuie să conțină maxim 2048 caractere." - #: src/app/main/ui/dashboard/files.cljs msgid "title.dashboard.files" msgstr "%s - Penpot" diff --git a/frontend/translations/ru.po b/frontend/translations/ru.po index 1b961ddca1..fd26ca4940 100644 --- a/frontend/translations/ru.po +++ b/frontend/translations/ru.po @@ -79,7 +79,7 @@ msgid "auth.new-password" msgstr "Введите новый пароль" #: src/app/main/ui/auth/recovery.cljs -msgid "auth.notifications.invalid-token-error" +msgid "errors.invalid-recovery-token" msgstr "Неверный код восстановления." #: src/app/main/ui/auth/recovery.cljs @@ -745,7 +745,7 @@ msgid "errors.email-has-permanent-bounces" msgstr "Эл. почта «%s» постоянно недоступна." #: src/app/main/ui/settings/change_email.cljs -msgid "errors.email-invalid-confirmation" +msgid "errors.invalid-email-confirmation" msgstr "Эл. почта для подтверждения должна совпадать" msgid "errors.email-spam-or-permanent-bounces" diff --git a/frontend/translations/ta.po b/frontend/translations/ta.po index 6ed7b51180..b340c7d5d8 100644 --- a/frontend/translations/ta.po +++ b/frontend/translations/ta.po @@ -81,7 +81,7 @@ msgid "auth.new-password" msgstr "புதிய கடவுச்சொல்லை உள்ளிடவும்" #: src/app/main/ui/auth/recovery.cljs -msgid "auth.notifications.invalid-token-error" +msgid "errors.invalid-recovery-token" msgstr "மீட்பு டோக்கன் செல்லுபடியாகாது." #: src/app/main/ui/auth/recovery.cljs diff --git a/frontend/translations/tr.po b/frontend/translations/tr.po index 92d9dfe7e1..947bec4e6e 100644 --- a/frontend/translations/tr.po +++ b/frontend/translations/tr.po @@ -86,20 +86,12 @@ msgstr "LDAP" msgid "auth.login-with-oidc-submit" msgstr "OpenID" -#: src/app/main/ui/settings/team-form.cljs, src/app/main/ui/auth/register.cljs, src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/onboarding/team_choice.cljs, src/app/main/ui/settings/access_tokens.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/settings/profile.cljs, src/app/main/ui/workspace/sidebar/assets.cljs -msgid "auth.name.not-all-space" -msgstr "İsim boşluk dışında bir karakter içermelidir." - -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/onboarding/team_choice.cljs, src/app/main/ui/settings/access_tokens.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/settings/profile.cljs, src/app/main/ui/workspace/sidebar/assets.cljs -msgid "auth.name.too-long" -msgstr "İsim en fazla 250 karakter içermelidir." - #: src/app/main/ui/auth/recovery.cljs msgid "auth.new-password" msgstr "Yeni bir parola gir" #: src/app/main/ui/auth/recovery.cljs -msgid "auth.notifications.invalid-token-error" +msgid "errors.invalid-recovery-token" msgstr "Kurtarma jetonu geçerli değil." #: src/app/main/ui/auth/recovery.cljs @@ -126,10 +118,6 @@ msgstr "Parola" msgid "auth.password-length-hint" msgstr "En az 8 karakter" -#: src/app/main/ui/auth/register.cljs -msgid "auth.password-not-empty" -msgstr "Parola boşluk dışında bir karakter içermelidir." - msgid "auth.privacy-policy" msgstr "Gizlilik politikası" @@ -289,7 +277,7 @@ msgid "dashboard.access-tokens.create" msgstr "Yeni belirteç oluştur" #: src/app/main/ui/settings/access-tokens.cljs -msgid "dashboard.access-tokens.create.success" +msgid "dashboard.access-tokens.create-success" msgstr "Erişim belirteci başarıyla oluşturuldu." #: src/app/main/ui/settings/access-tokens.cljs @@ -300,10 +288,6 @@ msgstr "Bir belirteç oluşturmak için \"Yeni belirteç oluştur\" düğmesine msgid "dashboard.access-tokens.empty.no-access-tokens" msgstr "Şu ana kadar hiç belirteciniz yok." -#: src/app/main/ui/settings/access-tokens.cljs -msgid "dashboard.access-tokens.errors-required-name" -msgstr "İsim gereklidir" - #: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-180-days" msgstr "180 gün" @@ -895,11 +879,11 @@ msgstr "«%s» adresi için çok fazla geri dönme raporu var." #: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs, #: src/app/main/ui/auth/recovery_request.cljs -msgid "errors.email-invalid" +msgid "errors.invalid-email" msgstr "Lütfen geçerli bir e-posta adresi girin" #: src/app/main/ui/settings/change_email.cljs -msgid "errors.email-invalid-confirmation" +msgid "errors.invalid-email-confirmation" msgstr "Doğrulama e-postası eşleşmiyor" msgid "errors.email-spam-or-permanent-bounces" @@ -3048,10 +3032,6 @@ msgstr "Görüntüyü büyült" msgid "shortcuts.zoom-selected" msgstr "Seçilene yakınlaştır" -#: src/app/main/ui/dashboard/team.cljs -msgid "team.webhooks.max-length" -msgstr "Webhook adı en fazla 2048 karakter içermelidir." - #: src/app/main/ui/dashboard/files.cljs msgid "title.dashboard.files" msgstr "%s - Penpot" diff --git a/frontend/translations/ukr_UA.po b/frontend/translations/ukr_UA.po index 3c7f50b164..5793f61d4c 100644 --- a/frontend/translations/ukr_UA.po +++ b/frontend/translations/ukr_UA.po @@ -58,7 +58,7 @@ msgid "auth.new-password" msgstr "Введіть новий пароль" #: src/app/main/ui/auth/recovery.cljs -msgid "auth.notifications.invalid-token-error" +msgid "errors.invalid-recovery-token" msgstr "Невірний код відновлення." #: src/app/main/ui/auth/recovery.cljs diff --git a/frontend/translations/yo.po b/frontend/translations/yo.po index ab6e5baedd..b0ef4b3b68 100644 --- a/frontend/translations/yo.po +++ b/frontend/translations/yo.po @@ -72,16 +72,12 @@ msgstr "LDAP" msgid "auth.login-with-oidc-submit" msgstr "ṣílẹ̀kuǹ ìdánimọ̀" -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/onboarding/team_choice.cljs, src/app/main/ui/settings/access_tokens.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/settings/profile.cljs, src/app/main/ui/workspace/sidebar/assets.cljs -msgid "auth.name.too-long" -msgstr "orúkọ kò gbọdọ̀ ju àádọ́jọ́ lẹ́tà lọ." - #: src/app/main/ui/auth/recovery.cljs msgid "auth.new-password" msgstr "tẹ ọ̀rọ̀ ìgbaniwọlé tuntun" #: src/app/main/ui/auth/recovery.cljs -msgid "auth.notifications.invalid-token-error" +msgid "errors.invalid-recovery-token" msgstr "àmì àtúnwárí ti díbàjẹ́." #: src/app/main/ui/auth/recovery.cljs @@ -110,10 +106,6 @@ msgstr "ọ̀rọ̀- ìgbaniwọlé" msgid "auth.password-length-hint" msgstr "kò gbọdọ̀ ju ohun kíkọ mẹ́jọ lọ" -#: src/app/main/ui/auth/register.cljs -msgid "auth.password-not-empty" -msgstr "ọ̀rọ̀-ìgbaniwọlé gbọ́dọ̀ ní nǹkan kíkọ láìsí àlàfo." - msgid "auth.privacy-policy" msgstr "ìpamọ ètò ìmúló" @@ -252,7 +244,7 @@ msgid "dashboard.access-tokens.create" msgstr "ṣe ìpilẹ̀sẹ̀ àmì tókìnnì" #: src/app/main/ui/settings/access-tokens.cljs -msgid "dashboard.access-tokens.create.success" +msgid "dashboard.access-tokens.create-success" msgstr "ṣe àyẹ̀wò àmì tókìnnì tí o ṣẹ̀dá bó ṣeyẹ." #: src/app/main/ui/settings/access-tokens.cljs @@ -263,10 +255,6 @@ msgstr "tẹ bọ́tìnnì \" ṣe ìpilẹ̀sẹ̀ àmì tókìnnì tuntun\" l msgid "dashboard.access-tokens.empty.no-access-tokens" msgstr "o kò tí ì ní àmì tókínnì títí di ìsinsìn yìí." -#: src/app/main/ui/settings/access-tokens.cljs -msgid "dashboard.access-tokens.errors-required-name" -msgstr "a nílò orúkọ" - #: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-180-days" msgstr "ọgọ́saǹ-ań ọjọ́" @@ -793,11 +781,11 @@ msgid "errors.email-has-permanent-bounces" msgstr "Ímeèlì «%s» ti ní ìjábọ̀ ọ̀pọ̀ọlọpọ̀ ìta-bọn-ọ̀n ti pẹ́." #: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs, src/app/main/ui/auth/recovery_request.cljs -msgid "errors.email-invalid" +msgid "errors.invalid-email" msgstr "Tẹ àti wọlé pẹ̀lú ímeèlì tó wúlo jọ̀wọ́" #: src/app/main/ui/settings/change_email.cljs -msgid "errors.email-invalid-confirmation" +msgid "errors.invalid-email-confirmation" msgstr "Ímeèlì tí a ti mọ̀dájú gbọ́dọ̀ báramu" msgid "errors.email-spam-or-permanent-bounces" @@ -2643,10 +2631,6 @@ msgstr "Lílọ̀soké lẹnsi sisun" msgid "shortcuts.zoom-selected" msgstr "Yiyan pelu sun-un" -#: src/app/main/ui/dashboard/team.cljs -msgid "team.webhooks.max-length" -msgstr "Orúkọ̀ webhook kò gbọ́dọ̀ kọjà awọ́n óhun kíkọ́ 2048." - #: src/app/main/ui/dashboard/files.cljs msgid "title.dashboard.files" msgstr "%s - Penpot" diff --git a/frontend/translations/zh_CN.po b/frontend/translations/zh_CN.po index 3abd8eddfc..5603a8ae76 100644 --- a/frontend/translations/zh_CN.po +++ b/frontend/translations/zh_CN.po @@ -72,32 +72,12 @@ msgstr "LDAP登录" msgid "auth.login-with-oidc-submit" msgstr "OpenID登录" -#: src/app/main/ui/settings/team-form.cljs, src/app/main/ui/auth/register.cljs, -#: src/app/main/ui/dashboard/team_form.cljs, -#: src/app/main/ui/onboarding/team_choice.cljs, -#: src/app/main/ui/settings/access_tokens.cljs, -#: src/app/main/ui/settings/feedback.cljs, -#: src/app/main/ui/settings/profile.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs -msgid "auth.name.not-all-space" -msgstr "姓名必须包含一些空格以外的字符。" - -#: src/app/main/ui/auth/register.cljs, -#: src/app/main/ui/dashboard/team_form.cljs, -#: src/app/main/ui/onboarding/team_choice.cljs, -#: src/app/main/ui/settings/access_tokens.cljs, -#: src/app/main/ui/settings/feedback.cljs, -#: src/app/main/ui/settings/profile.cljs, -#: src/app/main/ui/workspace/sidebar/assets.cljs -msgid "auth.name.too-long" -msgstr "姓名最多包含250个字符。" - #: src/app/main/ui/auth/recovery.cljs msgid "auth.new-password" msgstr "输入新的密码" #: src/app/main/ui/auth/recovery.cljs -msgid "auth.notifications.invalid-token-error" +msgid "errors.invalid-recovery-token" msgstr "恢复令牌无效。" #: src/app/main/ui/auth/recovery.cljs @@ -124,10 +104,6 @@ msgstr "密码" msgid "auth.password-length-hint" msgstr "至少8位字符" -#: src/app/main/ui/auth/register.cljs -msgid "auth.password-not-empty" -msgstr "密码必须包含一些空格以外的字符。" - msgid "auth.privacy-policy" msgstr "隐私政策" @@ -279,7 +255,7 @@ msgid "dashboard.access-tokens.create" msgstr "生成新令牌" #: src/app/main/ui/settings/access-tokens.cljs -msgid "dashboard.access-tokens.create.success" +msgid "dashboard.access-tokens.create-success" msgstr "成功创建访问令牌。" #: src/app/main/ui/settings/access-tokens.cljs @@ -290,10 +266,6 @@ msgstr "点击“生成新令牌”按钮来生成一个。" msgid "dashboard.access-tokens.empty.no-access-tokens" msgstr "你目前还没有令牌。" -#: src/app/main/ui/settings/access-tokens.cljs -msgid "dashboard.access-tokens.errors-required-name" -msgstr "名称是必填项" - #: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-180-days" msgstr "180天" @@ -850,11 +822,11 @@ msgstr "电子邮件“%s”收到了非常多的永久退信报告。" #: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs, #: src/app/main/ui/auth/recovery_request.cljs -msgid "errors.email-invalid" +msgid "errors.invalid-email" msgstr "请输入有效的电子邮件" #: src/app/main/ui/settings/change_email.cljs -msgid "errors.email-invalid-confirmation" +msgid "errors.invalid-email-confirmation" msgstr "确认电子邮件必须保持一致" msgid "errors.email-spam-or-permanent-bounces" @@ -2877,10 +2849,6 @@ msgstr "变焦镜头放大" msgid "shortcuts.zoom-selected" msgstr "缩放到选定对象" -#: src/app/main/ui/dashboard/team.cljs -msgid "team.webhooks.max-length" -msgstr "Webhook的名称最多包含2048个字符。" - #: src/app/main/ui/dashboard/files.cljs msgid "title.dashboard.files" msgstr "%s - Penpot" diff --git a/frontend/translations/zh_Hant.po b/frontend/translations/zh_Hant.po index 724bddba89..0172859f38 100644 --- a/frontend/translations/zh_Hant.po +++ b/frontend/translations/zh_Hant.po @@ -77,7 +77,7 @@ msgid "auth.new-password" msgstr "輸入新密碼" #: src/app/main/ui/auth/recovery.cljs -msgid "auth.notifications.invalid-token-error" +msgid "errors.invalid-recovery-token" msgstr "此 Recovery token 是無效的。" #: src/app/main/ui/auth/recovery.cljs @@ -684,11 +684,11 @@ msgid "errors.email-has-permanent-bounces" msgstr "電子郵件«%s»有許多永久退件報告。" #: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs, src/app/main/ui/auth/recovery_request.cljs -msgid "errors.email-invalid" +msgid "errors.invalid-email" msgstr "請輸入一個有效的電郵地址" #: src/app/main/ui/settings/change_email.cljs -msgid "errors.email-invalid-confirmation" +msgid "errors.invalid-email-confirmation" msgstr "電郵地址必須相同" msgid "errors.email-spam-or-permanent-bounces" @@ -2343,7 +2343,7 @@ msgid "dashboard.access-tokens.empty.add-one" msgstr "按下\"產生新 Token\" 按鈕來產生一個。" #: src/app/main/ui/settings/access-tokens.cljs -msgid "dashboard.access-tokens.create.success" +msgid "dashboard.access-tokens.create-success" msgstr "已成功建立 Access Token。" #: src/app/main/ui/settings/access-tokens.cljs @@ -2354,10 +2354,6 @@ msgstr "沒有到期時間" msgid "dashboard.access-tokens.copied-success" msgstr "已複製 Token" -#: src/app/main/ui/settings/access-tokens.cljs -msgid "dashboard.access-tokens.errors-required-name" -msgstr "名稱是必填的" - #: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.token-will-expire" msgstr "權杖將於 %s 到期" @@ -2365,14 +2361,6 @@ msgstr "權杖將於 %s 到期" msgid "dashboard.export.options.merge.title" msgstr "將共享資料庫的內容加入檔案資料庫" -#: src/app/main/ui/settings/team-form.cljs, src/app/main/ui/auth/register.cljs, src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/onboarding/team_choice.cljs, src/app/main/ui/settings/access_tokens.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/settings/profile.cljs, src/app/main/ui/workspace/sidebar/assets.cljs -msgid "auth.name.not-all-space" -msgstr "名稱內必須包含空白以外的文字。" - -#: src/app/main/ui/auth/register.cljs, src/app/main/ui/dashboard/team_form.cljs, src/app/main/ui/onboarding/team_choice.cljs, src/app/main/ui/settings/access_tokens.cljs, src/app/main/ui/settings/feedback.cljs, src/app/main/ui/settings/profile.cljs, src/app/main/ui/workspace/sidebar/assets.cljs -msgid "auth.name.too-long" -msgstr "名稱最多包含 250 個字元。" - #: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.expiration-90-days" msgstr "90 天" @@ -2408,10 +2396,6 @@ msgstr "Penpot 是用於設計與開發協作,免費且開源的設計工具" msgid "branding-illustrations-marketing-pieces" msgstr "...品牌設計、插畫、行銷素材等。" -#: src/app/main/ui/auth/register.cljs -msgid "auth.password-not-empty" -msgstr "密碼必須包含空白以外的字元。" - #: src/app/main/ui/settings/access-tokens.cljs msgid "dashboard.access-tokens.personal" msgstr "個人存取權杖" From 0fa8aca6e212cce6bed469cfab5704753239b3ea Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Thu, 20 Jun 2024 14:35:55 +0200 Subject: [PATCH 313/476] :sparkles: Add minor improvements to common.schema ns --- common/src/app/common/schema.cljc | 105 +++++++++++++++++++++-- frontend/src/app/main/ui/auth/login.cljs | 11 --- 2 files changed, 97 insertions(+), 19 deletions(-) diff --git a/common/src/app/common/schema.cljc b/common/src/app/common/schema.cljc index 37636d5b24..425525ca30 100644 --- a/common/src/app/common/schema.cljc +++ b/common/src/app/common/schema.cljc @@ -21,6 +21,7 @@ [cuerdas.core :as str] [malli.core :as m] [malli.dev.pretty :as mdp] + [malli.dev.virhe :as v] [malli.error :as me] [malli.generator :as mg] [malli.registry :as mr] @@ -104,6 +105,10 @@ [exp] (malli.error/error-value exp {:malli.error/mask-valid-values '...})) +(defn optional-keys + [schema] + (mu/optional-keys schema default-options)) + (def default-transformer (let [default-decoder {:compile (fn [s _registry] @@ -190,9 +195,10 @@ (fn [v] (@vfn v)))) (defn lazy-decoder - [s transformer] - (let [vfn (delay (decoder (if (delay? s) (deref s) s) transformer))] - (fn [v] (@vfn v)))) + ([s] (lazy-decoder s default-transformer)) + ([s transformer] + (let [vfn (delay (decoder (if (delay? s) (deref s) s) transformer))] + (fn [v] (@vfn v))))) (defn humanize-explain [{:keys [schema errors value]} & {:keys [length level]}] @@ -207,9 +213,29 @@ :level (d/nilv level 8) :length (d/nilv length 12)}))))) + +(defmethod v/-format ::schemaless-explain + [_ {:keys [schema] :as explanation} printer] + {:body [:group + (v/-block "Value" (v/-visit (me/error-value explanation printer) printer) printer) :break :break + (v/-block "Errors" (v/-visit (me/humanize (me/with-spell-checking explanation)) printer) printer) :break :break + (v/-block "Schema" (v/-visit schema printer) printer)]}) + + +(defmethod v/-format ::explain + [_ {:keys [schema] :as explanation} printer] + {:body [:group + (v/-block "Value" (v/-visit (me/error-value explanation printer) printer) printer) :break :break + (v/-block "Errors" (v/-visit (me/humanize (me/with-spell-checking explanation)) printer) printer) :break :break + (v/-block "Schema" (v/-visit schema printer) printer)]}) + + (defn pretty-explain - [s d] - (mdp/explain (schema s) d)) + [explain & {:keys [variant message] + :or {variant ::explain + message "Validation Error"}}] + (let [explain (fn [] (me/with-error-messages explain))] + ((mdp/prettifier variant message explain default-options)))) (defmacro ignoring [expr] @@ -297,7 +323,7 @@ (throw (ex-info hint options)))))) (defn validate-fn - "Create a predefined validate function" + "Create a predefined validate function that raises an expception" [s] (let [schema (if (lazy-schema? s) s (define s))] (partial fast-validate! schema))) @@ -317,6 +343,7 @@ hint (get options :hint "schema validation error")] (throw (ex-info hint options))))))) +;; FIXME: revisit (defn conform! [schema value] (assert (lazy-schema? schema) "expected `schema` to satisfy ILazySchema protocol") @@ -476,11 +503,14 @@ (define! ::set {:type :set + :min 0 + :max 1 :compile - (fn [{:keys [coerce kind max min] :as props} _ _] + (fn [{:keys [coerce kind max min] :as props} children _] (let [xform (if coerce (comp non-empty-strings-xf (map coerce)) non-empty-strings-xf) + kind (or (last children) kind) pred (cond (fn? kind) kind (nil? kind) any? @@ -509,7 +539,8 @@ (every? pred value)))) :else - pred)] + (fn [value] + (every? pred value)))] {:pred pred :type-properties @@ -525,6 +556,64 @@ (let [v (if (string? v) (str/split v #"[\s,]+") v)] (into #{} xform v)))}}))}) + +(define! ::vec + {:type :vector + :min 0 + :max 1 + :compile + (fn [{:keys [coerce kind max min] :as props} children _] + (let [xform (if coerce + (comp non-empty-strings-xf (map coerce)) + non-empty-strings-xf) + + kind (or (last children) kind) + pred (cond + (fn? kind) kind + (nil? kind) any? + :else (validator kind)) + + pred (cond + (and max min) + (fn [value] + (let [size (count value)] + (and (set? value) + (<= min size max) + (every? pred value)))) + + min + (fn [value] + (let [size (count value)] + (and (set? value) + (<= min size) + (every? pred value)))) + + max + (fn [value] + (let [size (count value)] + (and (set? value) + (<= size max) + (every? pred value)))) + + :else + (fn [value] + (every? pred value)))] + + {:pred pred + :type-properties + {:title "set" + :description "Set of Strings" + :error/message "should be a set of strings" + :gen/gen (-> kind sg/generator sg/set) + ::oapi/type "array" + ::oapi/format "set" + ::oapi/items {:type "string"} + ::oapi/unique-items true + ::oapi/decode (fn [v] + (let [v (if (string? v) (str/split v #"[\s,]+") v)] + (into [] xform v)))}}))}) + + (define! ::set-of-strings {:type ::set-of-strings :pred #(and (set? %) (every? string? %)) diff --git a/frontend/src/app/main/ui/auth/login.cljs b/frontend/src/app/main/ui/auth/login.cljs index 7324c7ec19..27add1c2e3 100644 --- a/frontend/src/app/main/ui/auth/login.cljs +++ b/frontend/src/app/main/ui/auth/login.cljs @@ -9,7 +9,6 @@ (:require [app.common.logging :as log] [app.common.schema :as sm] - [app.common.spec :as us] [app.config :as cf] [app.main.data.messages :as msg] [app.main.data.users :as du] @@ -25,7 +24,6 @@ [app.util.keyboard :as k] [app.util.router :as rt] [beicon.v2.core :as rx] - [cljs.spec.alpha :as s] [rumext.v2 :as mf])) (def show-alt-login-buttons? @@ -64,14 +62,6 @@ :else (st/emit! (msg/error (tr "errors.generic")))))))) -(s/def ::email ::us/email) -(s/def ::password ::us/not-empty-string) -(s/def ::invitation-token ::us/not-empty-string) - -(s/def ::login-form - (s/keys :req-un [::email ::password] - :opt-un [::invitation-token])) - (def ^:private schema:login-form [:map {:title "LoginForm"} [:email [::sm/email {:error/code "errors.invalid-email"}]] @@ -84,7 +74,6 @@ (let [initial (mf/with-memo [params] params) error (mf/use-state false) form (fm/use-form :schema schema:login-form - ;; :validators [handle-error-messages] :initial initial) on-error From 2944860696334f49b27f5de2608b8e9f21e76271 Mon Sep 17 00:00:00 2001 From: Alejandro Alonso Date: Wed, 3 Jul 2024 13:35:14 +0200 Subject: [PATCH 314/476] :bug: Size presets landscape doesn't work well --- frontend/src/app/main/ui/components/radio_buttons.cljs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/frontend/src/app/main/ui/components/radio_buttons.cljs b/frontend/src/app/main/ui/components/radio_buttons.cljs index dbaffebb58..17a3fe5942 100644 --- a/frontend/src/app/main/ui/components/radio_buttons.cljs +++ b/frontend/src/app/main/ui/components/radio_buttons.cljs @@ -58,7 +58,7 @@ (mf/defc radio-buttons {::mf/props :obj} - [{:keys [children on-change selected class wide encode-fn decode-fn allow-empty] :as props}] + [{:keys [name children on-change selected class wide encode-fn decode-fn allow-empty] :as props}] (let [encode-fn (d/nilv encode-fn identity) decode-fn (d/nilv decode-fn identity) nitems (if (array? children) @@ -94,5 +94,6 @@ [:& (mf/provider context) {:value context-value} [:div {:class (dm/str class " " (stl/css :radio-btn-wrapper)) - :style {:width width}} + :style {:width width} + :key (dm/str name "-" selected)} children]])) From 8fae4550c318823e57a15da2c324bed45843f3bf Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Wed, 3 Jul 2024 14:34:40 +0200 Subject: [PATCH 315/476] :sparkles: Add better linter for rumext defc macro --- .clj-kondo/config.edn | 2 +- .clj-kondo/hooks/export.clj | 86 ++++++++++++++++++++++++++++++++++--- 2 files changed, 81 insertions(+), 7 deletions(-) diff --git a/.clj-kondo/config.edn b/.clj-kondo/config.edn index fe1d14d908..5675b9d5d3 100644 --- a/.clj-kondo/config.edn +++ b/.clj-kondo/config.edn @@ -3,7 +3,6 @@ promesa.core/->> clojure.core/->> promesa.core/-> clojure.core/-> promesa.exec.csp/go-loop clojure.core/loop - rumext.v2/defc clojure.core/defn promesa.util/with-open clojure.core/with-open app.common.schema.generators/let clojure.core/let app.common.data/export clojure.core/def @@ -20,6 +19,7 @@ app.db/with-atomic hooks.export/penpot-with-atomic potok.v2.core/reify hooks.export/potok-reify rumext.v2/fnc hooks.export/rumext-fnc + rumext.v2/defc hooks.export/rumext-defc rumext.v2/lazy-component hooks.export/rumext-lazycomponent shadow.lazy/loadable hooks.export/rumext-lazycomponent }} diff --git a/.clj-kondo/hooks/export.clj b/.clj-kondo/hooks/export.clj index f4913873cb..c4017cc2f5 100644 --- a/.clj-kondo/hooks/export.clj +++ b/.clj-kondo/hooks/export.clj @@ -67,12 +67,86 @@ (let [[cname mdata params & body] (rest (:children node)) [params body] (if (api/vector-node? mdata) [mdata (cons params body)] - [params body])] - (let [result (api/list-node - (into [(api/token-node 'fn) - params] - (cons mdata body)))] - {:node result}))) + [params body]) + + result (api/list-node + (into [(api/token-node 'fn) params] + (cons mdata body)))] + + {:node result})) + + +(defn- parse-defc + [{:keys [children] :as node}] + (let [args (rest children) + + [cname args] + (if (api/token-node? (first args)) + [(first args) (rest args)] + (throw (ex-info "unexpected1" {}))) + + [docs args] + (if (api/string-node? (first args)) + [(first args) (rest args)] + ["" args]) + + [mdata args] + (if (api/map-node? (first args)) + [(first args) (rest args)] + [(api/map-node []) args]) + + [params body] + (if (api/vector-node? (first args)) + [(first args) (rest args)] + (throw (ex-info "unexpected2" {})))] + + [cname docs mdata params body])) + +(defn rumext-defc + [{:keys [node]}] + (let [[cname docs mdata params body] (parse-defc node) + + param1 (first (:children params)) + paramN (rest (:children params)) + + param1 (if (api/map-node? param1) + (let [param1 (into {} (comp + (partition-all 2) + (map (fn [[k v]] + [(if (api/keyword-node? k) + (:k k) + k) + (if (api/vector-node? v) + (vec (:children v)) + v)]))) + (:children param1)) + + binding (:rest param1) + param1 (if binding + (if (contains? param1 :as) + (update param1 :keys (fnil conj []) binding) + (assoc param1 :as binding)) + param1)] + (->> (dissoc param1 :rest) + (mapcat (fn [[k v]] + [(if (keyword? k) + (api/keyword-node k) + k) + (if (vector? v) + (api/vector-node v) + v)])) + (api/map-node))) + param1) + + result (api/list-node + (into [(api/token-node 'defn) + cname + (api/vector-node (into [param1] paramN))] + (cons mdata body)))] + + ;; (prn (api/sexpr result)) + + {:node result})) (defn rumext-lazycomponent From 80e17f8cfc6de098a7f4ff6fca958cc25843858e Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Wed, 3 Jul 2024 15:22:42 +0200 Subject: [PATCH 316/476] :sparkles: Add new signature for the run-store test helper --- .../test/frontend_tests/helpers/state.cljs | 34 +++++++++++-------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/frontend/test/frontend_tests/helpers/state.cljs b/frontend/test/frontend_tests/helpers/state.cljs index 6c3c7cb2c7..37d245df5c 100644 --- a/frontend/test/frontend_tests/helpers/state.cljs +++ b/frontend/test/frontend_tests/helpers/state.cljs @@ -39,21 +39,25 @@ store)) (defn run-store - [store done events completed-cb] - (let [stream (ptk/input-stream store)] - (->> stream - (rx/take-until (rx/filter #(= :the/end %) stream)) - (rx/last) - (rx/tap (fn [] - (completed-cb @store))) - (rx/subs! (fn [_] (done)) - (fn [cause] - (js/console.log "[error]:" cause)) - (fn [_] - (js/console.log "[complete]")))) - (doall (for [event events] - (ptk/emit! store event))) - (ptk/emit! store :the/end))) + ([store done events completed-cb] + (run-store store done events completed-cb nil)) + ([store done events completed-cb stopper] + (let [stream (ptk/input-stream store)] + (->> stream + (rx/take-until (if stopper + (stopper stream) + (rx/filter #(= :the/end %) stream))) + (rx/last) + (rx/tap (fn [] + (completed-cb @store))) + (rx/subs! (fn [_] (done)) + (fn [cause] + (js/console.log "[error]:" cause)) + (fn [_] + (js/console.log "[complete]")))) + (doall (for [event events] + (ptk/emit! store event))) + (ptk/emit! store :the/end)))) (defn get-file-from-store [store] From a8463f349a4fdc076c1701f83d2296072e71d03f Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Wed, 3 Jul 2024 15:23:05 +0200 Subject: [PATCH 317/476] :sparkles: New plugin attributes --- frontend/src/app/plugins/api.cljs | 15 ++++++++++- frontend/src/app/plugins/parser.cljs | 4 +-- frontend/src/app/plugins/shape.cljs | 40 ++++++++++++++++++++++++++-- 3 files changed, 54 insertions(+), 5 deletions(-) diff --git a/frontend/src/app/plugins/api.cljs b/frontend/src/app/plugins/api.cljs index 2cd3938a7f..076c9f0fa4 100644 --- a/frontend/src/app/plugins/api.cljs +++ b/frontend/src/app/plugins/api.cljs @@ -23,6 +23,7 @@ [app.main.data.workspace.colors :as dwc] [app.main.data.workspace.groups :as dwg] [app.main.data.workspace.media :as dwm] + [app.main.data.workspace.selection :as dws] [app.main.store :as st] [app.plugins.events :as events] [app.plugins.file :as file] @@ -356,7 +357,19 @@ {:name "root" :get #(.getRoot ^js %)} {:name "currentFile" :get #(.getFile ^js %)} {:name "currentPage" :get #(.getPage ^js %)} - {:name "selection" :get #(.getSelectedShapes ^js %)} + + {:name "selection" + :get #(.getSelectedShapes ^js %) + :set + (fn [_ shapes] + (cond + (or (not (array? shapes)) (not (every? shape/shape-proxy? shapes))) + (u/display-not-valid :selection shapes) + + :else + (let [ids (into (d/ordered-set) (map #(obj/get % "$id")) shapes)] + (st/emit! (dws/select-shapes ids)))))} + {:name "viewport" :get #(.getViewport ^js %)} {:name "currentUser" :get #(.getCurrentUser ^js %)} {:name "activeUsers" :get #(.getActiveUsers ^js %)} diff --git a/frontend/src/app/plugins/parser.cljs b/frontend/src/app/plugins/parser.cljs index 3180a0e4b7..53092c5697 100644 --- a/frontend/src/app/plugins/parser.cljs +++ b/frontend/src/app/plugins/parser.cljs @@ -229,8 +229,8 @@ (when (some? export) (d/without-nils {:type (-> (obj/get export "type") parse-keyword) - :scale (obj/get export "scale") - :suffix (obj/get export "suffix")}))) + :scale (obj/get export "scale" 1) + :suffix (obj/get export "suffix" "")}))) (defn parse-exports [^js exports] diff --git a/frontend/src/app/plugins/shape.cljs b/frontend/src/app/plugins/shape.cljs index 727b2c70c9..2ae9b0d399 100644 --- a/frontend/src/app/plugins/shape.cljs +++ b/frontend/src/app/plugins/shape.cljs @@ -36,6 +36,7 @@ [app.main.data.workspace.shape-layout :as dwsl] [app.main.data.workspace.shapes :as dwsh] [app.main.data.workspace.texts :as dwt] + [app.main.repo :as rp] [app.main.store :as st] [app.plugins.flex :as flex] [app.plugins.format :as format] @@ -46,7 +47,9 @@ [app.plugins.utils :as u] [app.util.object :as obj] [app.util.path.format :as upf] - [cuerdas.core :as str])) + [beicon.v2.core :as rx] + [cuerdas.core :as str] + [promesa.core :as p])) (def lib-typography-proxy? nil) (def lib-component-proxy nil) @@ -436,7 +439,34 @@ shape (u/proxy->shape self)] (when (ctn/in-any-component? objects shape) (let [[root component] (u/locate-component objects shape)] - (lib-component-proxy $plugin (:component-file root) (:id component))))))) + (lib-component-proxy $plugin (:component-file root) (:id component)))))) + + (export + [self value] + (let [value (parser/parse-export value)] + (cond + (not (sm/validate ::ctse/export value)) + (u/display-not-valid :export value) + + :else + (let [payload + {:cmd :export-shapes + :profile-id (:profile-id @st/state) + :wait true + :exports [{:file-id $file + :page-id $page + :object-id $id + :name (obj/get self "name") + :type (:type value :png) + :suffix (:suffix value "") + :scale (:scale value 1)}]}] + (p/create + (fn [resolve reject] + (->> (rp/cmd! :export payload) + (rx/mapcat #(rp/cmd! :export {:cmd :get-resource :wait true :id (:id %) :blob? true})) + (rx/mapcat #(.arrayBuffer %)) + (rx/map #(js/Uint8Array. %)) + (rx/subs! resolve reject))))))))) (defn shape-proxy? [p] (instance? ShapeProxy p)) @@ -886,6 +916,12 @@ {:name "height" :get #(-> % u/proxy->shape :height)} + {:name "bounds" + :get #(-> % u/proxy->shape :points grc/points->rect format/format-bounds)} + + {:name "center" + :get #(-> % u/proxy->shape gsh/shape->center format/format-point)} + {:name "rotation" :get #(-> % u/proxy->shape :rotation) :set From de89dfe27fc4824097a83f4e971334b7295035df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bel=C3=A9n=20Albeza?= Date: Mon, 1 Jul 2024 14:16:10 +0200 Subject: [PATCH 318/476] :paperclip: Remove unused legacy icons preview --- frontend/src/app/main/ui/icons.cljs | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/frontend/src/app/main/ui/icons.cljs b/frontend/src/app/main/ui/icons.cljs index 324eb8098c..27381d2f5d 100644 --- a/frontend/src/app/main/ui/icons.cljs +++ b/frontend/src/app/main/ui/icons.cljs @@ -285,19 +285,6 @@ "A collection of all icons" (collect-icons)) -(mf/defc debug-icons-preview - {::mf/wrap-props false} - [] - (let [entries (->> (seq (js/Object.entries default)) - (sort-by first))] - [:section.debug-icons-preview - [:h2 "icons"] - (for [[key val] entries] - [:div.icon-item-old {:key key - :title key} - val - [:span key]])])) - (defn key->icon [icon-key] (when icon-key From c6a7ad0520fb7ea9a41c6decb1d3a46f2cee7c3b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bel=C3=A9n=20Albeza?= Date: Mon, 1 Jul 2024 15:52:15 +0200 Subject: [PATCH 319/476] :bug: Fix template generation for storybook --- frontend/resources/templates/preview-body.mustache | 3 +-- frontend/scripts/_helpers.js | 12 +++++++----- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/frontend/resources/templates/preview-body.mustache b/frontend/resources/templates/preview-body.mustache index fc26837165..216552e614 100644 --- a/frontend/resources/templates/preview-body.mustache +++ b/frontend/resources/templates/preview-body.mustache @@ -1,2 +1 @@ -{{>../public/images/sprites/symbol/icons.svg}} - +{{> ../public/images/sprites/symbol/icons.svg }} diff --git a/frontend/scripts/_helpers.js b/frontend/scripts/_helpers.js index 1dc4fb9633..435531ca5e 100644 --- a/frontend/scripts/_helpers.js +++ b/frontend/scripts/_helpers.js @@ -353,11 +353,13 @@ async function generateTemplates() { await fs.writeFile("./resources/public/index.html", content); - content = await renderTemplate("resources/templates/preview-body.mustache", { - manifest: manifest, - translations: JSON.stringify(translations), - }); - + content = await renderTemplate( + "resources/templates/preview-body.mustache", + { + manifest: manifest, + }, + partials, + ); await fs.writeFile("./.storybook/preview-body.html", content); content = await renderTemplate("resources/templates/render.mustache", { From 6295fbf7e23571780032cf1a93ef7c15c3294782 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bel=C3=A9n=20Albeza?= Date: Mon, 1 Jul 2024 14:52:56 +0200 Subject: [PATCH 320/476] :sparkles: Implement icon* component --- frontend/src/app/main/ui/ds.cljs | 8 +- .../src/app/main/ui/ds/foundations/icon.clj | 21 ++ .../src/app/main/ui/ds/foundations/icon.cljs | 260 ++++++++++++++++++ .../src/app/main/ui/ds/foundations/icon.mdx | 101 +++++++ .../src/app/main/ui/ds/foundations/icon.scss | 4 + .../main/ui/ds/foundations/icon.stories.jsx | 47 ++++ frontend/src/app/main/ui/ds/storybook.cljs | 18 +- frontend/src/app/main/ui/ds/storybook.scss | 7 + 8 files changed, 459 insertions(+), 7 deletions(-) create mode 100644 frontend/src/app/main/ui/ds/foundations/icon.clj create mode 100644 frontend/src/app/main/ui/ds/foundations/icon.cljs create mode 100644 frontend/src/app/main/ui/ds/foundations/icon.mdx create mode 100644 frontend/src/app/main/ui/ds/foundations/icon.scss create mode 100644 frontend/src/app/main/ui/ds/foundations/icon.stories.jsx diff --git a/frontend/src/app/main/ui/ds.cljs b/frontend/src/app/main/ui/ds.cljs index ede983b450..d9e38afb7f 100644 --- a/frontend/src/app/main/ui/ds.cljs +++ b/frontend/src/app/main/ui/ds.cljs @@ -7,9 +7,13 @@ (ns app.main.ui.ds (:require [app.main.ui.ds.buttons.simple-button :refer [simple-button]] + [app.main.ui.ds.foundations.icon :refer [icon* icon-list]] [app.main.ui.ds.storybook :as sb])) (def default "A export used for storybook" - #js {:SimpleButton simple-button - :StoryWrapper sb/story-wrapper}) + #js {:Icon icon* + :SimpleButton simple-button + ;; meta / misc + :meta #js {:icons icon-list} + :storybook #js {:StoryWrapper sb/story-wrapper* :IconGrid sb/icon-grid*}}) diff --git a/frontend/src/app/main/ui/ds/foundations/icon.clj b/frontend/src/app/main/ui/ds/foundations/icon.clj new file mode 100644 index 0000000000..4f721c6d04 --- /dev/null +++ b/frontend/src/app/main/ui/ds/foundations/icon.clj @@ -0,0 +1,21 @@ +;; This Source Code Form is subject to the terms of the Mozilla Public +;; License, v. 2.0. If a copy of the MPL was not distributed with this +;; file, You can obtain one at http://mozilla.org/MPL/2.0/. +;; +;; Copyright (c) KALEIDOS INC + +(ns app.main.ui.ds.foundations.icon + (:require + [clojure.core :as c] + [cuerdas.core :as str] + [rumext.v2])) + +(defmacro collect-icons + [] + (let [ns-info (:ns &env)] + `(cljs.core/js-obj + ~@(->> (:defs ns-info) + (map val) + (filter (fn [entry] (-> entry :meta :icon-id))) + (mapcat (fn [{:keys [name]}] + [(-> name c/name str/camel str/capital) name])))))) diff --git a/frontend/src/app/main/ui/ds/foundations/icon.cljs b/frontend/src/app/main/ui/ds/foundations/icon.cljs new file mode 100644 index 0000000000..c325c065ad --- /dev/null +++ b/frontend/src/app/main/ui/ds/foundations/icon.cljs @@ -0,0 +1,260 @@ +;; This Source Code Form is subject to the terms of the Mozilla Public +;; License, v. 2.0. If a copy of the MPL was not distributed with this +;; file, You can obtain one at http://mozilla.org/MPL/2.0/. +;; +;; Copyright (c) KALEIDOS INC + +(ns app.main.ui.ds.foundations.icon + (:refer-clojure :exclude [mask]) + (:require-macros + [app.common.data.macros :as dm] + [app.main.style :as stl] + [app.main.ui.ds.foundations.icon :refer [collect-icons]]) + (:require + [rumext.v2 :as mf])) + +(def ^:icon-id absolute "absolute") +(def ^:icon-id add "add") +(def ^:icon-id align-bottom "align-bottom") +(def ^:icon-id align-content-column-around "align-content-column-around") +(def ^:icon-id align-content-column-between "align-content-column-between") +(def ^:icon-id align-content-column-center "align-content-column-center") +(def ^:icon-id align-content-column-end "align-content-column-end") +(def ^:icon-id align-content-column-evenly "align-content-column-evenly") +(def ^:icon-id align-content-column-start "align-content-column-start") +(def ^:icon-id align-content-column-stretch "align-content-column-stretch") +(def ^:icon-id align-content-row-around "align-content-row-around") +(def ^:icon-id align-content-row-between "align-content-row-between") +(def ^:icon-id align-content-row-center "align-content-row-center") +(def ^:icon-id align-content-row-end "align-content-row-end") +(def ^:icon-id align-content-row-evenly "align-content-row-evenly") +(def ^:icon-id align-content-row-start "align-content-row-start") +(def ^:icon-id align-content-row-stretch "align-content-row-stretch") +(def ^:icon-id align-horizontal-center "align-horizontal-center") +(def ^:icon-id align-items-column-center "align-items-column-center") +(def ^:icon-id align-items-column-end "align-items-column-end") +(def ^:icon-id align-items-column-start "align-items-column-start") +(def ^:icon-id align-items-row-center "align-items-row-center") +(def ^:icon-id align-items-row-end "align-items-row-end") +(def ^:icon-id align-items-row-start "align-items-row-start") +(def ^:icon-id align-left "align-left") +(def ^:icon-id align-right "align-right") +(def ^:icon-id align-self-column-bottom "align-self-column-bottom") +(def ^:icon-id align-self-column-center "align-self-column-center") +(def ^:icon-id align-self-column-stretch "align-self-column-stretch") +(def ^:icon-id align-self-column-top "align-self-column-top") +(def ^:icon-id align-self-row-center "align-self-row-center") +(def ^:icon-id align-self-row-left "align-self-row-left") +(def ^:icon-id align-self-row-right "align-self-row-right") +(def ^:icon-id align-self-row-stretch "align-self-row-stretch") +(def ^:icon-id align-top "align-top") +(def ^:icon-id align-vertical-center "align-vertical-center") +(def ^:icon-id arrow "arrow") +(def ^:icon-id asc-sort "asc-sort") +(def ^:icon-id board "board") +(def ^:icon-id boards-thumbnail "boards-thumbnail") +(def ^:icon-id boolean-difference "boolean-difference") +(def ^:icon-id boolean-exclude "boolean-exclude") +(def ^:icon-id boolean-flatten "boolean-flatten") +(def ^:icon-id boolean-intersection "boolean-intersection") +(def ^:icon-id boolean-union "boolean-union") +(def ^:icon-id bug "bug") +(def ^:icon-id clip-content "clip-content") +(def ^:icon-id clipboard "clipboard") +(def ^:icon-id close-small "close-small") +(def ^:icon-id close "close") +(def ^:icon-id code "code") +(def ^:icon-id column-reverse "column-reverse") +(def ^:icon-id column "column") +(def ^:icon-id comments "comments") +(def ^:icon-id component-copy "component-copy") +(def ^:icon-id component "component") +(def ^:icon-id constraint-horizontal "constraint-horizontal") +(def ^:icon-id constraint-vertical "constraint-vertical") +(def ^:icon-id corner-bottom-left "corner-bottom-left") +(def ^:icon-id corner-bottom-right "corner-bottom-right") +(def ^:icon-id corner-bottom "corner-bottom") +(def ^:icon-id corner-center "corner-center") +(def ^:icon-id corner-radius "corner-radius") +(def ^:icon-id corner-top "corner-top") +(def ^:icon-id corner-top-left "corner-top-left") +(def ^:icon-id corner-top-right "corner-top-right") +(def ^:icon-id curve "curve") +(def ^:icon-id delete-text "delete-text") +(def ^:icon-id delete "delete") +(def ^:icon-id desc-sort "desc-sort") +(def ^:icon-id detach "detach") +(def ^:icon-id detached "detached") +(def ^:icon-id distribute-horizontally "distribute-horizontally") +(def ^:icon-id distribute-vertical-spacing "distribute-vertical-spacing") +(def ^:icon-id document "document") +(def ^:icon-id download "download") +(def ^:icon-id drop-icon "drop") +(def ^:icon-id easing-ease-in-out "easing-ease-in-out") +(def ^:icon-id easing-ease-in "easing-ease-in") +(def ^:icon-id easing-ease-out "easing-ease-out") +(def ^:icon-id easing-ease "easing-ease") +(def ^:icon-id easing-linear "easing-linear") +(def ^:icon-id effects "effects") +(def ^:icon-id elipse "elipse") +(def ^:icon-id exit "exit") +(def ^:icon-id expand "expand") +(def ^:icon-id feedback "feedback") +(def ^:icon-id fill-content "fill-content") +(def ^:icon-id filter-icon "filter") +(def ^:icon-id fixed-width "fixed-width") +(def ^:icon-id flex-grid "flex-grid") +(def ^:icon-id flex-horizontal "flex-horizontal") +(def ^:icon-id flex-vertical "flex-vertical") +(def ^:icon-id flex "flex") +(def ^:icon-id flip-horizontal "flip-horizontal") +(def ^:icon-id flip-vertical "flip-vertical") +(def ^:icon-id gap-horizontal "gap-horizontal") +(def ^:icon-id gap-vertical "gap-vertical") +(def ^:icon-id graphics "graphics") +(def ^:icon-id grid-column "grid-column") +(def ^:icon-id grid-columns "grid-columns") +(def ^:icon-id grid-gutter "grid-gutter") +(def ^:icon-id grid-margin "grid-margin") +(def ^:icon-id grid "grid") +(def ^:icon-id grid-row "grid-row") +(def ^:icon-id grid-rows "grid-rows") +(def ^:icon-id grid-square "grid-square") +(def ^:icon-id group "group") +(def ^:icon-id gutter-horizontal "gutter-horizontal") +(def ^:icon-id gutter-vertical "gutter-vertical") +(def ^:icon-id help "help") +(def ^:icon-id hide "hide") +(def ^:icon-id history "history") +(def ^:icon-id hsva "hsva") +(def ^:icon-id hug-content "hug-content") +(def ^:icon-id icon "icon") +(def ^:icon-id img "img") +(def ^:icon-id interaction "interaction") +(def ^:icon-id join-nodes "join-nodes") +(def ^:icon-id external-link "external-link") +(def ^:icon-id justify-content-column-around "justify-content-column-around") +(def ^:icon-id justify-content-column-between "justify-content-column-between") +(def ^:icon-id justify-content-column-center "justify-content-column-center") +(def ^:icon-id justify-content-column-end "justify-content-column-end") +(def ^:icon-id justify-content-column-evenly "justify-content-column-evenly") +(def ^:icon-id justify-content-column-start "justify-content-column-start") +(def ^:icon-id justify-content-row-around "justify-content-row-around") +(def ^:icon-id justify-content-row-between "justify-content-row-between") +(def ^:icon-id justify-content-row-center "justify-content-row-center") +(def ^:icon-id justify-content-row-end "justify-content-row-end") +(def ^:icon-id justify-content-row-evenly "justify-content-row-evenly") +(def ^:icon-id justify-content-row-start "justify-content-row-start") +(def ^:icon-id layers "layers") +(def ^:icon-id library "library") +(def ^:icon-id locate "locate") +(def ^:icon-id lock "lock") +(def ^:icon-id margin "margin") +(def ^:icon-id margin-bottom "margin-bottom") +(def ^:icon-id margin-left "margin-left") +(def ^:icon-id margin-left-right "margin-left-right") +(def ^:icon-id margin-right "margin-right") +(def ^:icon-id margin-top "margin-top") +(def ^:icon-id margin-top-bottom "margin-top-bottom") +(def ^:icon-id mask "mask") +(def ^:icon-id masked "masked") +(def ^:icon-id menu "menu") +(def ^:icon-id merge-nodes "merge-nodes") +(def ^:icon-id move "move") +(def ^:icon-id msg-error "msg-error") +(def ^:icon-id msg-neutral "msg-neutral") +(def ^:icon-id msg-success "msg-success") +(def ^:icon-id msg-warning "msg-warning") +(def ^:icon-id open-link "open-link") +(def ^:icon-id padding-bottom "padding-bottom") +(def ^:icon-id padding-extended "padding-extended") +(def ^:icon-id padding-left "padding-left") +(def ^:icon-id padding-left-right "padding-left-right") +(def ^:icon-id padding-right "padding-right") +(def ^:icon-id padding-top "padding-top") +(def ^:icon-id padding-top-bottom "padding-top-bottom") +(def ^:icon-id path "path") +(def ^:icon-id pentool "pentool") +(def ^:icon-id picker "picker") +(def ^:icon-id pin "pin") +(def ^:icon-id play "play") +(def ^:icon-id rectangle "rectangle") +(def ^:icon-id reload "reload") +(def ^:icon-id remove-icon "remove") +(def ^:icon-id rgba "rgba") +(def ^:icon-id rgba-complementary "rgba-complementary") +(def ^:icon-id rocket "rocket") +(def ^:icon-id rotation "rotation") +(def ^:icon-id row "row") +(def ^:icon-id row-reverse "row-reverse") +(def ^:icon-id search "search") +(def ^:icon-id separate-nodes "separate-nodes") +(def ^:icon-id shown "shown") +(def ^:icon-id size-horizontal "size-horizontal") +(def ^:icon-id size-vertical "size-vertical") +(def ^:icon-id snap-nodes "snap-nodes") +(def ^:icon-id status-alert "status-alert") +(def ^:icon-id status-tick "status-tick") +(def ^:icon-id status-update "status-update") +(def ^:icon-id status-wrong "status-wrong") +(def ^:icon-id stroke-arrow "stroke-arrow") +(def ^:icon-id stroke-circle "stroke-circle") +(def ^:icon-id stroke-diamond "stroke-diamond") +(def ^:icon-id stroke-rectangle "stroke-rectangle") +(def ^:icon-id stroke-rounded "stroke-rounded") +(def ^:icon-id stroke-size "stroke-size") +(def ^:icon-id stroke-squared "stroke-squared") +(def ^:icon-id stroke-triangle "stroke-triangle") +(def ^:icon-id svg "svg") +(def ^:icon-id swatches "swatches") +(def ^:icon-id switch "switch") +(def ^:icon-id text "text") +(def ^:icon-id text-align-center "text-align-center") +(def ^:icon-id text-align-left "text-align-left") +(def ^:icon-id text-align-right "text-align-right") +(def ^:icon-id text-auto-height "text-auto-height") +(def ^:icon-id text-auto-width "text-auto-width") +(def ^:icon-id text-bottom "text-bottom") +(def ^:icon-id text-fixed "text-fixed") +(def ^:icon-id text-justify "text-justify") +(def ^:icon-id text-letterspacing "text-letterspacing") +(def ^:icon-id text-lineheight "text-lineheight") +(def ^:icon-id text-lowercase "text-lowercase") +(def ^:icon-id text-ltr "text-ltr") +(def ^:icon-id text-middle "text-middle") +(def ^:icon-id text-mixed "text-mixed") +(def ^:icon-id text-palette "text-palette") +(def ^:icon-id text-paragraph "text-paragraph") +(def ^:icon-id text-rtl "text-rtl") +(def ^:icon-id text-stroked "text-stroked") +(def ^:icon-id text-top "text-top") +(def ^:icon-id text-underlined "text-underlined") +(def ^:icon-id text-uppercase "text-uppercase") +(def ^:icon-id thumbnail "thumbnail") +(def ^:icon-id tick "tick") +(def ^:icon-id to-corner "to-corner") +(def ^:icon-id to-curve "to-curve") +(def ^:icon-id tree "tree") +(def ^:icon-id unlock "unlock") +(def ^:icon-id user "user") +(def ^:icon-id vertical-align-items-center "vertical-align-items-center") +(def ^:icon-id vertical-align-items-end "vertical-align-items-end") +(def ^:icon-id vertical-align-items-start "vertical-align-items-start") +(def ^:icon-id view-as-icons "view-as-icons") +(def ^:icon-id view-as-list "view-as-list") +(def ^:icon-id wrap "wrap") + +(def icon-list "A collection of all icons" (collect-icons)) + +(def ^:private icon-size-m 16) +(def ^:private icon-size-s 12) + +(mf/defc icon* + {::mf/props :obj} + [{:keys [icon size class] :rest props}] + (let [class (dm/str (or class "") " " (stl/css :icon)) + props (mf/spread props {:class class :width icon-size-m :height icon-size-m}) + size-px (cond (= size "s") icon-size-s :else icon-size-m) + offset (/ (- icon-size-m size-px) 2)] + [:> "svg" props + [:use {:href (dm/str "#icon-" icon) :width size-px :height size-px :x offset :y offset}]])) diff --git a/frontend/src/app/main/ui/ds/foundations/icon.mdx b/frontend/src/app/main/ui/ds/foundations/icon.mdx new file mode 100644 index 0000000000..d83361d79d --- /dev/null +++ b/frontend/src/app/main/ui/ds/foundations/icon.mdx @@ -0,0 +1,101 @@ +import { Canvas, Meta } from '@storybook/blocks'; +import * as IconStories from "./icon.stories" + + + +# Iconography + +See the [list of all available icons](?path=/story/foundations-icons--all-icons). + +## Variants + +### Medium (default) + +- Used in the majority of the interface, and **it is the default variant**. +- Displayed within a box of 16×16 pixels. +- 1 px stroke (centered). + +This is enabled with `size` prop set to `"m"`. + +### Small + +- Displayed within a box of 16×16 pixels. +- Bigger padding (4 pixels) +- Best used when the space is limited. Use in components such text inputs os in +dense interfaces such layers or chevrons to indicate a collapsible element. + +This is enabled with `size` prop set to `"s"`. + +## Technical notes + +### Using icons IDs + +There are icon ID definitions you can use in your code rather than typing the +icon ID by hand. + +**Using these IDs is recommended**, since they are invariant to the icon asset +filename. + +Assuming the namespace is required as `i`: + +```clj +(ns app.main.ui.foo + (:require + [app.main.ui.ds.foundations.icon :as i])) +``` + +You can now use the icon IDs defined in the namespace: + +```clj +[:> i/icon* {:icon i/pin}] +``` + +### Customizing colors + +Icon color is set internally with the `stroke` property and it's set to +`currentColor` by default. + +If you need to override this behavior, you can use a `class` in the `` +component and set `color` to whatever value you prefer: + +```clj +[:> i/icon* {:icon i/add :class (stl/css :toolbar-icon)}] +``` + +```scss +.toolbar-icon { + color: var(--component-toolbar-icon-color); +} +``` + +### Accessibility + +By default, icons do not have any accessible text attached to them. You should +add an `aria-label` attribute to set a proper text: + +```clj +[:> i/icon* {:icon i/add :aria-label (tr "foo.bar")}] +``` + +## Usage guidelines for design + +### Layout + +Icon content should remain inside of the live area. In specific icons that need +to adjust visual weight, content may extend into the padding between live area +and trim area, never outside the trim area. + +### Color + +Icons are normally displayed with the chromatic characteristics of the component +in which they are included. They are normally based on foreground and neutral +colours, but may also, in some cases, be displayed in semantic colours when +their function is to accompany system status messages. + +### Accessibility + +Icons must meet the contrast requirement. + +They should be designed with the correct transmission of the concept they +communicate in mind, reviewing cultural and generational differences to avoid +comprehension problems. diff --git a/frontend/src/app/main/ui/ds/foundations/icon.scss b/frontend/src/app/main/ui/ds/foundations/icon.scss new file mode 100644 index 0000000000..f1113c4102 --- /dev/null +++ b/frontend/src/app/main/ui/ds/foundations/icon.scss @@ -0,0 +1,4 @@ +.icon { + fill: none; + stroke: currentColor; +} diff --git a/frontend/src/app/main/ui/ds/foundations/icon.stories.jsx b/frontend/src/app/main/ui/ds/foundations/icon.stories.jsx new file mode 100644 index 0000000000..d143da7c3a --- /dev/null +++ b/frontend/src/app/main/ui/ds/foundations/icon.stories.jsx @@ -0,0 +1,47 @@ +import * as React from "react"; +import Components from "@target/components"; + +const { Icon } = Components; +const { StoryWrapper, IconGrid } = Components.storybook; +const { icons } = Components.meta; + +export default { + title: "Foundations/Icons", + component: Components.Icon, +}; + +const iconList = Object.entries(icons) + .map(([_, value]) => value) + .sort(); + +export const AllIcons = { + render: () => ( + +

    All Icons

    +

    Hover on an icon to see its ID

    + + {iconList.map((iconId) => ( +
    + +
    + ))} +
    +
    + ), +}; + +export const Default = { + render: () => ( + + + + ), +}; + +export const Small = { + render: () => ( + + + + ), +}; diff --git a/frontend/src/app/main/ui/ds/storybook.cljs b/frontend/src/app/main/ui/ds/storybook.cljs index ad0f360d73..6aa0498ccd 100644 --- a/frontend/src/app/main/ui/ds/storybook.cljs +++ b/frontend/src/app/main/ui/ds/storybook.cljs @@ -10,9 +10,17 @@ (:require [rumext.v2 :as mf])) -(mf/defc story-wrapper - {::mf/wrap-props false} - [{:keys [children]}] +(mf/defc story-wrapper* + {::mf/props :obj} + [{:keys [theme children]}] [:article {:class (stl/css :story-wrapper)} - [:section {:class "default"} children] - [:section {:class "light"} children]]) + (if (some? theme) + [:section {:class theme} children] + [* + [:section {:class "default"} children] + [:section {:class "light"} children]])]) + +(mf/defc icon-grid* + {::mf/props :obj} + [{:keys [children]}] + [:article {:class (stl/css :icon-grid)} children]) \ No newline at end of file diff --git a/frontend/src/app/main/ui/ds/storybook.scss b/frontend/src/app/main/ui/ds/storybook.scss index 4f680715e4..05e1c81919 100644 --- a/frontend/src/app/main/ui/ds/storybook.scss +++ b/frontend/src/app/main/ui/ds/storybook.scss @@ -4,3 +4,10 @@ display: grid; row-gap: 1rem; } + +.icon-grid { + display: grid; + grid-template-columns: repeat(auto-fit, 16px); + gap: 1rem; + color: var(--color-foreground-primary); +} From a624a10c85f38e5e8fc1166b0cdcaea054eddf99 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bel=C3=A9n=20Albeza?= Date: Tue, 2 Jul 2024 11:58:39 +0200 Subject: [PATCH 321/476] :bug: Fix scrolling not working on storybook mdx files --- frontend/.storybook/preview-head.html | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/frontend/.storybook/preview-head.html b/frontend/.storybook/preview-head.html index 4c273a63fa..f4c3f9096e 100644 --- a/frontend/.storybook/preview-head.html +++ b/frontend/.storybook/preview-head.html @@ -1 +1,6 @@ - \ No newline at end of file + + \ No newline at end of file From c181887266050103b17d6cde72a311c575fe437d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bel=C3=A9n=20Albeza?= Date: Tue, 2 Jul 2024 12:00:13 +0200 Subject: [PATCH 322/476] :paperclip: Remove unused example simple_button component --- frontend/src/app/main/ui/ds.cljs | 2 -- .../app/main/ui/ds/buttons/simple_button.cljs | 10 ---------- .../src/app/main/ui/ds/buttons/simple_button.mdx | 12 ------------ .../app/main/ui/ds/buttons/simple_button.scss | 7 ------- .../main/ui/ds/buttons/simple_button.stories.jsx | 16 ---------------- .../main/ui/ds/buttons/simple_button.test.mjs | 10 ---------- 6 files changed, 57 deletions(-) delete mode 100644 frontend/src/app/main/ui/ds/buttons/simple_button.cljs delete mode 100644 frontend/src/app/main/ui/ds/buttons/simple_button.mdx delete mode 100644 frontend/src/app/main/ui/ds/buttons/simple_button.scss delete mode 100644 frontend/src/app/main/ui/ds/buttons/simple_button.stories.jsx delete mode 100644 frontend/src/app/main/ui/ds/buttons/simple_button.test.mjs diff --git a/frontend/src/app/main/ui/ds.cljs b/frontend/src/app/main/ui/ds.cljs index d9e38afb7f..a644e71f6e 100644 --- a/frontend/src/app/main/ui/ds.cljs +++ b/frontend/src/app/main/ui/ds.cljs @@ -6,14 +6,12 @@ (ns app.main.ui.ds (:require - [app.main.ui.ds.buttons.simple-button :refer [simple-button]] [app.main.ui.ds.foundations.icon :refer [icon* icon-list]] [app.main.ui.ds.storybook :as sb])) (def default "A export used for storybook" #js {:Icon icon* - :SimpleButton simple-button ;; meta / misc :meta #js {:icons icon-list} :storybook #js {:StoryWrapper sb/story-wrapper* :IconGrid sb/icon-grid*}}) diff --git a/frontend/src/app/main/ui/ds/buttons/simple_button.cljs b/frontend/src/app/main/ui/ds/buttons/simple_button.cljs deleted file mode 100644 index 095ed987ba..0000000000 --- a/frontend/src/app/main/ui/ds/buttons/simple_button.cljs +++ /dev/null @@ -1,10 +0,0 @@ -(ns app.main.ui.ds.buttons.simple-button - (:require-macros [app.main.style :as stl]) - (:require - [rumext.v2 :as mf])) - -(mf/defc simple-button - {::mf/wrap-props false} - [{:keys [on-click children]}] - [:button {:on-click on-click :class (stl/css :button)} children]) - diff --git a/frontend/src/app/main/ui/ds/buttons/simple_button.mdx b/frontend/src/app/main/ui/ds/buttons/simple_button.mdx deleted file mode 100644 index 2c8636cb69..0000000000 --- a/frontend/src/app/main/ui/ds/buttons/simple_button.mdx +++ /dev/null @@ -1,12 +0,0 @@ -import { Canvas, Meta } from '@storybook/blocks'; -import * as SimpleButtonStories from "./simple_button.stories" - - - -# Lorem ipsum - -This is an example of **markdown** docs within storybook, for the component ``. - -Here's how we can render a simple button: - - diff --git a/frontend/src/app/main/ui/ds/buttons/simple_button.scss b/frontend/src/app/main/ui/ds/buttons/simple_button.scss deleted file mode 100644 index a83a9c5d73..0000000000 --- a/frontend/src/app/main/ui/ds/buttons/simple_button.scss +++ /dev/null @@ -1,7 +0,0 @@ -@use "../colors.scss" as *; - -.button { - appearance: none; - border: 0; - background: var(--color-accent-primary); -} diff --git a/frontend/src/app/main/ui/ds/buttons/simple_button.stories.jsx b/frontend/src/app/main/ui/ds/buttons/simple_button.stories.jsx deleted file mode 100644 index d4bb348fd3..0000000000 --- a/frontend/src/app/main/ui/ds/buttons/simple_button.stories.jsx +++ /dev/null @@ -1,16 +0,0 @@ -import * as React from "react"; - -import Components from "@target/components"; - -export default { - title: "Buttons/Simple Button", - component: Components.SimpleButton, -}; - -export const Default = { - render: () => ( - - Simple Button - - ), -}; diff --git a/frontend/src/app/main/ui/ds/buttons/simple_button.test.mjs b/frontend/src/app/main/ui/ds/buttons/simple_button.test.mjs deleted file mode 100644 index 9d1c6c9ac2..0000000000 --- a/frontend/src/app/main/ui/ds/buttons/simple_button.test.mjs +++ /dev/null @@ -1,10 +0,0 @@ -import { expect, test } from 'vitest' - -test('use jsdom in this test file', () => { - const element = document.createElement('div') - expect(element).not.toBeNull() -}) - -test('adds 1 + 2 to equal 3', () => { - expect(1 +2).toBe(3) -}); From deb0fab156aae74e1494b87ee4ab039f531d5d21 Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Wed, 3 Jul 2024 15:35:43 +0200 Subject: [PATCH 323/476] :bug: Fix small visual problems --- frontend/resources/images/icons/puzzle.svg | 2 +- frontend/translations/en.po | 3 +++ frontend/translations/es.po | 3 +++ 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/frontend/resources/images/icons/puzzle.svg b/frontend/resources/images/icons/puzzle.svg index 6e978bac53..ceef3a54b4 100644 --- a/frontend/resources/images/icons/puzzle.svg +++ b/frontend/resources/images/icons/puzzle.svg @@ -1 +1 @@ - + diff --git a/frontend/translations/en.po b/frontend/translations/en.po index b05464a4c9..5e90a19512 100644 --- a/frontend/translations/en.po +++ b/frontend/translations/en.po @@ -5281,6 +5281,9 @@ msgstr "Plugin correctly loaded." msgid "workspace.plugins.menu.title" msgstr "Plugins" +msgid "workspace.toolbar.plugins" +msgstr "Plugins" + msgid "workspace.plugins.menu.plugins-manager" msgstr "Plugins manager" diff --git a/frontend/translations/es.po b/frontend/translations/es.po index c226af8922..407f37cd58 100644 --- a/frontend/translations/es.po +++ b/frontend/translations/es.po @@ -5361,6 +5361,9 @@ msgstr "Pulsar para cerrar la ruta" msgid "workspace.plugins.title" msgstr "Extensiones" +msgid "workspace.toolbar.plugins" +msgstr "Extensiones" + msgid "workspace.plugins.search-placeholder" msgstr "Intruduzca URL de la extensión" From f05e1354ff2eef45f789bfd15ef5c4b2401a7b33 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bel=C3=A9n=20Albeza?= Date: Thu, 4 Jul 2024 09:17:05 +0200 Subject: [PATCH 324/476] :wrench: Add assets svg sprite generation --- .../resources/images/assets/brand-github.svg | 1 + .../resources/images/assets/brand-gitlab.svg | 1 + .../resources/images/assets/brand-google.svg | 1 + .../resources/images/assets/brand-openid.svg | 1 + frontend/resources/images/assets/loader.svg | 1 + .../images/assets/login-illustration.svg | 686 ++++++++++++++++++ .../images/assets/logo-error-screen.svg | 3 + .../images/assets/penpot-logo-icon.svg | 1 + .../resources/images/assets/penpot-logo.svg | 3 + .../resources/images/assets/v2-icon-1.svg | 1 + .../resources/images/assets/v2-icon-2.svg | 1 + .../resources/images/assets/v2-icon-3.svg | 1 + .../resources/images/assets/v2-icon-4.svg | 1 + frontend/resources/templates/index.mustache | 1 + .../resources/templates/preview-body.mustache | 2 + frontend/scripts/_helpers.js | 12 + 16 files changed, 717 insertions(+) create mode 100644 frontend/resources/images/assets/brand-github.svg create mode 100644 frontend/resources/images/assets/brand-gitlab.svg create mode 100644 frontend/resources/images/assets/brand-google.svg create mode 100644 frontend/resources/images/assets/brand-openid.svg create mode 100644 frontend/resources/images/assets/loader.svg create mode 100644 frontend/resources/images/assets/login-illustration.svg create mode 100644 frontend/resources/images/assets/logo-error-screen.svg create mode 100644 frontend/resources/images/assets/penpot-logo-icon.svg create mode 100644 frontend/resources/images/assets/penpot-logo.svg create mode 100644 frontend/resources/images/assets/v2-icon-1.svg create mode 100644 frontend/resources/images/assets/v2-icon-2.svg create mode 100644 frontend/resources/images/assets/v2-icon-3.svg create mode 100644 frontend/resources/images/assets/v2-icon-4.svg diff --git a/frontend/resources/images/assets/brand-github.svg b/frontend/resources/images/assets/brand-github.svg new file mode 100644 index 0000000000..cfb34953e0 --- /dev/null +++ b/frontend/resources/images/assets/brand-github.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/resources/images/assets/brand-gitlab.svg b/frontend/resources/images/assets/brand-gitlab.svg new file mode 100644 index 0000000000..591427ec6e --- /dev/null +++ b/frontend/resources/images/assets/brand-gitlab.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/resources/images/assets/brand-google.svg b/frontend/resources/images/assets/brand-google.svg new file mode 100644 index 0000000000..eb61aab348 --- /dev/null +++ b/frontend/resources/images/assets/brand-google.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/resources/images/assets/brand-openid.svg b/frontend/resources/images/assets/brand-openid.svg new file mode 100644 index 0000000000..28dd05ed85 --- /dev/null +++ b/frontend/resources/images/assets/brand-openid.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/resources/images/assets/loader.svg b/frontend/resources/images/assets/loader.svg new file mode 100644 index 0000000000..ee1d9b96bf --- /dev/null +++ b/frontend/resources/images/assets/loader.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/resources/images/assets/login-illustration.svg b/frontend/resources/images/assets/login-illustration.svg new file mode 100644 index 0000000000..6e6b7394a3 --- /dev/null +++ b/frontend/resources/images/assets/login-illustration.svg @@ -0,0 +1,686 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/resources/images/assets/logo-error-screen.svg b/frontend/resources/images/assets/logo-error-screen.svg new file mode 100644 index 0000000000..7e71215fac --- /dev/null +++ b/frontend/resources/images/assets/logo-error-screen.svg @@ -0,0 +1,3 @@ + + + diff --git a/frontend/resources/images/assets/penpot-logo-icon.svg b/frontend/resources/images/assets/penpot-logo-icon.svg new file mode 100644 index 0000000000..06adb5d443 --- /dev/null +++ b/frontend/resources/images/assets/penpot-logo-icon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/resources/images/assets/penpot-logo.svg b/frontend/resources/images/assets/penpot-logo.svg new file mode 100644 index 0000000000..6439292bd2 --- /dev/null +++ b/frontend/resources/images/assets/penpot-logo.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/frontend/resources/images/assets/v2-icon-1.svg b/frontend/resources/images/assets/v2-icon-1.svg new file mode 100644 index 0000000000..b39647eb1c --- /dev/null +++ b/frontend/resources/images/assets/v2-icon-1.svg @@ -0,0 +1 @@ + diff --git a/frontend/resources/images/assets/v2-icon-2.svg b/frontend/resources/images/assets/v2-icon-2.svg new file mode 100644 index 0000000000..d384ee2ed3 --- /dev/null +++ b/frontend/resources/images/assets/v2-icon-2.svg @@ -0,0 +1 @@ + diff --git a/frontend/resources/images/assets/v2-icon-3.svg b/frontend/resources/images/assets/v2-icon-3.svg new file mode 100644 index 0000000000..bfc88da6d5 --- /dev/null +++ b/frontend/resources/images/assets/v2-icon-3.svg @@ -0,0 +1 @@ + diff --git a/frontend/resources/images/assets/v2-icon-4.svg b/frontend/resources/images/assets/v2-icon-4.svg new file mode 100644 index 0000000000..dc2443432b --- /dev/null +++ b/frontend/resources/images/assets/v2-icon-4.svg @@ -0,0 +1 @@ + diff --git a/frontend/resources/templates/index.mustache b/frontend/resources/templates/index.mustache index b5967f94d7..7846bb111b 100644 --- a/frontend/resources/templates/index.mustache +++ b/frontend/resources/templates/index.mustache @@ -41,6 +41,7 @@ {{> ../public/images/sprites/symbol/icons.svg }} {{> ../public/images/sprites/symbol/cursors.svg }} + {{> ../public/images/sprites/assets.svg }}
    diff --git a/frontend/resources/templates/preview-body.mustache b/frontend/resources/templates/preview-body.mustache index 216552e614..4ade10b080 100644 --- a/frontend/resources/templates/preview-body.mustache +++ b/frontend/resources/templates/preview-body.mustache @@ -1 +1,3 @@ {{> ../public/images/sprites/symbol/icons.svg }} + +{{> ../public/images/sprites/assets.svg }} diff --git a/frontend/scripts/_helpers.js b/frontend/scripts/_helpers.js index 435531ca5e..bdddf3442d 100644 --- a/frontend/scripts/_helpers.js +++ b/frontend/scripts/_helpers.js @@ -312,6 +312,13 @@ async function generateSvgSprites() { "resources/public/images/sprites/symbol/cursors.svg", cursorsSprite, ); + + const assets = await findFiles("resources/images/assets/", isSvgFile); + const assetsSprite = await generateSvgSprite(assets, "asset-"); + await fs.writeFile( + "resources/public/images/sprites/assets.svg", + assetsSprite, + ); } async function generateTemplates() { @@ -330,9 +337,14 @@ async function generateTemplates() { "resources/public/images/sprites/symbol/cursors.svg", "utf8", ); + const assetsSprite = await fs.readFile( + "resources/public/images/sprites/assets.svg", + "utf-8", + ); const partials = { "../public/images/sprites/symbol/icons.svg": iconsSprite, "../public/images/sprites/symbol/cursors.svg": cursorsSprite, + "../public/images/sprites/assets.svg": assetsSprite, }; const pluginRuntimeUri = From 4ac18e2ef0316e78fa68b7f918c578a585253180 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bel=C3=A9n=20Albeza?= Date: Thu, 4 Jul 2024 09:18:29 +0200 Subject: [PATCH 325/476] :bug: Fix cursors svg duplicating icons sprites --- frontend/scripts/_helpers.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/scripts/_helpers.js b/frontend/scripts/_helpers.js index bdddf3442d..ce6397e478 100644 --- a/frontend/scripts/_helpers.js +++ b/frontend/scripts/_helpers.js @@ -307,7 +307,7 @@ async function generateSvgSprites() { ); const cursors = await findFiles("resources/images/cursors/", isSvgFile); - const cursorsSprite = await generateSvgSprite(icons, "cursor-"); + const cursorsSprite = await generateSvgSprite(cursors, "cursor-"); await fs.writeFile( "resources/public/images/sprites/symbol/cursors.svg", cursorsSprite, From c52da573c59a604e7ab469613da29d029047c37e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bel=C3=A9n=20Albeza?= Date: Thu, 4 Jul 2024 09:47:11 +0200 Subject: [PATCH 326/476] :paperclip: Fix react warning on icon* component --- frontend/src/app/main/ui/ds/foundations/icon.cljs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/src/app/main/ui/ds/foundations/icon.cljs b/frontend/src/app/main/ui/ds/foundations/icon.cljs index c325c065ad..bf77f12b28 100644 --- a/frontend/src/app/main/ui/ds/foundations/icon.cljs +++ b/frontend/src/app/main/ui/ds/foundations/icon.cljs @@ -253,7 +253,7 @@ {::mf/props :obj} [{:keys [icon size class] :rest props}] (let [class (dm/str (or class "") " " (stl/css :icon)) - props (mf/spread props {:class class :width icon-size-m :height icon-size-m}) + props (mf/spread-props props {:class class :width icon-size-m :height icon-size-m}) size-px (cond (= size "s") icon-size-s :else icon-size-m) offset (/ (- icon-size-m size-px) 2)] [:> "svg" props From 4ecaaba1e56a4c6851b193c01222dea18ae7a5e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bel=C3=A9n=20Albeza?= Date: Thu, 4 Jul 2024 09:19:04 +0200 Subject: [PATCH 327/476] :sparkles: Add RawSvg component to the design system --- frontend/.storybook/preview.js | 4 ++ frontend/src/app/main/ui/ds.cljs | 4 +- .../app/main/ui/ds/foundations/raw_svg.clj | 21 +++++++++ .../app/main/ui/ds/foundations/raw_svg.cljs | 37 ++++++++++++++++ .../ui/ds/foundations/raw_svg.stories.jsx | 43 +++++++++++++++++++ frontend/src/app/main/ui/ds/storybook.cljs | 9 ++-- frontend/src/app/main/ui/ds/storybook.scss | 6 ++- 7 files changed, 119 insertions(+), 5 deletions(-) create mode 100644 frontend/src/app/main/ui/ds/foundations/raw_svg.clj create mode 100644 frontend/src/app/main/ui/ds/foundations/raw_svg.cljs create mode 100644 frontend/src/app/main/ui/ds/foundations/raw_svg.stories.jsx diff --git a/frontend/.storybook/preview.js b/frontend/.storybook/preview.js index 132a209181..c8ce13857a 100644 --- a/frontend/.storybook/preview.js +++ b/frontend/.storybook/preview.js @@ -19,6 +19,10 @@ const preview = { name: "light", value: "#fff", }, + { + name: "debug", + value: "#ccc", + }, ], }, }, diff --git a/frontend/src/app/main/ui/ds.cljs b/frontend/src/app/main/ui/ds.cljs index a644e71f6e..53eb828977 100644 --- a/frontend/src/app/main/ui/ds.cljs +++ b/frontend/src/app/main/ui/ds.cljs @@ -7,11 +7,13 @@ (ns app.main.ui.ds (:require [app.main.ui.ds.foundations.icon :refer [icon* icon-list]] + [app.main.ui.ds.foundations.raw-svg :refer [raw-svg* raw-svg-list]] [app.main.ui.ds.storybook :as sb])) (def default "A export used for storybook" #js {:Icon icon* + :RawSvg raw-svg* ;; meta / misc - :meta #js {:icons icon-list} + :meta #js {:icons icon-list :svgs raw-svg-list} :storybook #js {:StoryWrapper sb/story-wrapper* :IconGrid sb/icon-grid*}}) diff --git a/frontend/src/app/main/ui/ds/foundations/raw_svg.clj b/frontend/src/app/main/ui/ds/foundations/raw_svg.clj new file mode 100644 index 0000000000..2ba5104aeb --- /dev/null +++ b/frontend/src/app/main/ui/ds/foundations/raw_svg.clj @@ -0,0 +1,21 @@ +;; This Source Code Form is subject to the terms of the Mozilla Public +;; License, v. 2.0. If a copy of the MPL was not distributed with this +;; file, You can obtain one at http://mozilla.org/MPL/2.0/. +;; +;; Copyright (c) KALEIDOS INC + +(ns app.main.ui.ds.foundations.raw-svg + (:require + [clojure.core :as c] + [cuerdas.core :as str] + [rumext.v2])) + +(defmacro collect-raw-svgs + [] + (let [ns-info (:ns &env)] + `(cljs.core/js-obj + ~@(->> (:defs ns-info) + (map val) + (filter (fn [entry] (-> entry :meta :svg-id))) + (mapcat (fn [{:keys [name]}] + [(-> name c/name str/camel str/capital) name])))))) diff --git a/frontend/src/app/main/ui/ds/foundations/raw_svg.cljs b/frontend/src/app/main/ui/ds/foundations/raw_svg.cljs new file mode 100644 index 0000000000..0de183215b --- /dev/null +++ b/frontend/src/app/main/ui/ds/foundations/raw_svg.cljs @@ -0,0 +1,37 @@ +;; This Source Code Form is subject to the terms of the Mozilla Public +;; License, v. 2.0. If a copy of the MPL was not distributed with this +;; file, You can obtain one at http://mozilla.org/MPL/2.0/. +;; +;; Copyright (c) KALEIDOS INC + +(ns app.main.ui.ds.foundations.raw-svg + (:refer-clojure :exclude [mask]) + (:require-macros + [app.common.data.macros :as dm] + [app.main.ui.ds.foundations.raw-svg :refer [collect-raw-svgs]]) + (:require + [rumext.v2 :as mf])) + +(def ^:svg-id brand-openid "brand-openid") +(def ^:svg-id brand-github "brand-github") +(def ^:svg-id brand-gitlab "brand-gitlab") +(def ^:svg-id brand-google "brand-google") + +(def ^:svg-id loader "loader") +(def ^:svg-id logo "penpot-logo") +(def ^:svg-id logo-icon "penpot-logo-icon") +(def ^:svg-id logo-error-screen "logo-error-screen") +(def ^:svg-id login-illustration "login-illustration") + +(def ^:svg-id v2-icon-1 "v2-icon-1") +(def ^:svg-id v2-icon-2 "v2-icon-2") +(def ^:svg-id v2-icon-3 "v2-icon-3") +(def ^:svg-id v2-icon-4 "v2-icon-4") + +(def raw-svg-list "A collection of all raw SVG assets" (collect-raw-svgs)) + +(mf/defc raw-svg* + {::mf/props :obj} + [{:keys [asset] :rest props}] + [:> "svg" props + [:use {:href (dm/str "#asset-" asset)}]]) diff --git a/frontend/src/app/main/ui/ds/foundations/raw_svg.stories.jsx b/frontend/src/app/main/ui/ds/foundations/raw_svg.stories.jsx new file mode 100644 index 0000000000..6f6beb37b3 --- /dev/null +++ b/frontend/src/app/main/ui/ds/foundations/raw_svg.stories.jsx @@ -0,0 +1,43 @@ +import * as React from "react"; +import Components from "@target/components"; + +const { RawSvg } = Components; +const { StoryWrapper, IconGrid } = Components.storybook; +const { svgs } = Components.meta; + +export default { + title: "Foundations/RawSvg", + component: Components.RawSvg, +}; + +const assetList = Object.entries(svgs) + .map(([_, value]) => value) + .sort(); + +export const AllAssets = { + render: () => ( + +

    All assets

    +

    Hover on a asset to see its id.

    + + + {assetList.map(x => ( +
    + +
    + ))} +
    +
    + ), + parameters: { + backgrounds: { default: "debug" } + } +} + +export const Default = { + render: () => ( + + + + ), +} diff --git a/frontend/src/app/main/ui/ds/storybook.cljs b/frontend/src/app/main/ui/ds/storybook.cljs index 6aa0498ccd..846b0b0e50 100644 --- a/frontend/src/app/main/ui/ds/storybook.cljs +++ b/frontend/src/app/main/ui/ds/storybook.cljs @@ -6,7 +6,9 @@ ;; Copyright (c) KALEIDOS INC (ns app.main.ui.ds.storybook - (:require-macros [app.main.style :as stl]) + (:require-macros + [app.common.data.macros :as dm] + [app.main.style :as stl]) (:require [rumext.v2 :as mf])) @@ -22,5 +24,6 @@ (mf/defc icon-grid* {::mf/props :obj} - [{:keys [children]}] - [:article {:class (stl/css :icon-grid)} children]) \ No newline at end of file + [{:keys [children size]}] + [:article {:class (stl/css :icon-grid) + :style (when (some? size) #js {"--component-grid-size" (dm/str size "px")})} children]) \ No newline at end of file diff --git a/frontend/src/app/main/ui/ds/storybook.scss b/frontend/src/app/main/ui/ds/storybook.scss index 05e1c81919..84076c8f89 100644 --- a/frontend/src/app/main/ui/ds/storybook.scss +++ b/frontend/src/app/main/ui/ds/storybook.scss @@ -7,7 +7,11 @@ .icon-grid { display: grid; - grid-template-columns: repeat(auto-fit, 16px); + grid-template-columns: repeat(auto-fit, var(--component-grid-size, 16px)); gap: 1rem; color: var(--color-foreground-primary); + + & > * { + max-width: 100%; + } } From 0ec1bb7a2201afc4f390bc8ebb23ab15509ed0d6 Mon Sep 17 00:00:00 2001 From: Alejandro Alonso Date: Thu, 4 Jul 2024 11:03:08 +0200 Subject: [PATCH 328/476] :sparkles: Release notes for 2.1 --- frontend/src/app/main/ui/releases.cljs | 3 +- frontend/src/app/main/ui/releases/v2_1.cljs | 48 +++++++++++++ frontend/src/app/main/ui/releases/v2_1.scss | 79 +++++++++++++++++++++ 3 files changed, 129 insertions(+), 1 deletion(-) create mode 100644 frontend/src/app/main/ui/releases/v2_1.cljs create mode 100644 frontend/src/app/main/ui/releases/v2_1.scss diff --git a/frontend/src/app/main/ui/releases.cljs b/frontend/src/app/main/ui/releases.cljs index 562c1eab2e..6dd39b14f8 100644 --- a/frontend/src/app/main/ui/releases.cljs +++ b/frontend/src/app/main/ui/releases.cljs @@ -27,6 +27,7 @@ [app.main.ui.releases.v1-8] [app.main.ui.releases.v1-9] [app.main.ui.releases.v2-0] + [app.main.ui.releases.v2-1] [app.util.object :as obj] [app.util.timers :as tm] [rumext.v2 :as mf])) @@ -91,4 +92,4 @@ (defmethod rc/render-release-notes "0.0" [params] - (rc/render-release-notes (assoc params :version "2.0"))) + (rc/render-release-notes (assoc params :version "2.1"))) diff --git a/frontend/src/app/main/ui/releases/v2_1.cljs b/frontend/src/app/main/ui/releases/v2_1.cljs new file mode 100644 index 0000000000..7d05212cdc --- /dev/null +++ b/frontend/src/app/main/ui/releases/v2_1.cljs @@ -0,0 +1,48 @@ +;; This Source Code Form is subject to the terms of the Mozilla Public +;; License, v. 2.0. If a copy of the MPL was not distributed with this +;; file, You can obtain one at http://mozilla.org/MPL/2.0/. +;; +;; Copyright (c) KALEIDOS INC + +(ns app.main.ui.releases.v2-1 + (:require-macros [app.main.style :as stl]) + (:require + [app.common.data.macros :as dm] + [app.main.ui.releases.common :as c] + [rumext.v2 :as mf])) + +(defmethod c/render-release-notes "2.1" + [{:keys [slide klass finish version]}] + (mf/html + (case slide + :start + [:div {:class (stl/css-case :modal-overlay true)} + [:div.animated {:class klass} + [:div {:class (stl/css :modal-container)} + [:img {:src "images/features/2.0-intro-image.png" + :class (stl/css :start-image) + :border "0" + :alt "A graphic illustration with Penpot style"}] + + [:div {:class (stl/css :modal-content)} + [:div {:class (stl/css :modal-header)} + [:h1 {:class (stl/css :modal-title)} + "What's new in Penpot? "] + + [:div {:class (stl/css :version-tag)} + (dm/str "Version " version)]] + + [:div {:class (stl/css :features-block)} + [:p {:class (stl/css :feature-content)} + "Penpot 2.1 brings improvements to the authentication system, path editing, real-time persistence, and comments system among other enhancements. We’ve improved the stability of the platform by fixing a bunch of bugs, a lot of them raised by our amazing community <3."] + + [:p {:class (stl/css :feature-content)} + "This minor release comes shortly after our amazing Penpot 2.0 and it shows the way to long-expected capabilities like the incoming new plugin system!"] + + [:p {:class (stl/css :feature-content)} + " Ready to dive in? Let 's get started!"]] + + [:div {:class (stl/css :navigation)} + [:button {:class (stl/css :next-btn) + :on-click finish} "Let's go"]]]]]]))) + diff --git a/frontend/src/app/main/ui/releases/v2_1.scss b/frontend/src/app/main/ui/releases/v2_1.scss new file mode 100644 index 0000000000..e305c5d52f --- /dev/null +++ b/frontend/src/app/main/ui/releases/v2_1.scss @@ -0,0 +1,79 @@ +// This Source Code Form is subject to the terms of the Mozilla Public +// License, v. 2.0. If a copy of the MPL was not distributed with this +// file, You can obtain one at http://mozilla.org/MPL/2.0/. +// +// Copyright (c) KALEIDOS INC + +@import "refactor/common-refactor.scss"; + +.modal-overlay { + @extend .modal-overlay-base; +} + +.modal-container { + display: grid; + grid-template-columns: $s-324 1fr; + height: $s-500; + width: $s-888; + border-radius: $br-8; + background-color: var(--modal-background-color); + border: $s-2 solid var(--modal-border-color); +} + +.start-image { + width: $s-324; + border-radius: $br-8 0 0 $br-8; +} + +.modal-content { + padding: $s-40; + display: grid; + grid-template-rows: auto 1fr $s-32; + gap: $s-24; +} + +.modal-header { + display: grid; + gap: $s-8; +} + +.version-tag { + @include flexCenter; + @include headlineSmallTypography; + height: $s-32; + width: $s-96; + background-color: var(--communication-tag-background-color); + color: var(--communication-tag-foreground-color); + border-radius: $br-8; +} + +.modal-title { + @include headlineLargeTypography; + color: var(--modal-title-foreground-color); +} + +.features-block { + display: flex; + flex-direction: column; + gap: $s-16; + width: $s-440; +} + +.feature-content { + @include bodyMediumTypography; + margin: 0; + color: var(--modal-text-foreground-color); +} + +.navigation { + width: 100%; + display: grid; + grid-template-areas: "bullets button"; +} + +.next-btn { + @extend .button-primary; + width: $s-100; + justify-self: flex-end; + grid-area: button; +} From 66d97cb2e0fd46b2df5c28cf71c1889f883d6886 Mon Sep 17 00:00:00 2001 From: Eva Marco Date: Wed, 3 Jul 2024 07:30:05 +0200 Subject: [PATCH 329/476] :sparkles: Add typography ds tokens --- .../fonts/Vazirmatn-VariableFont.ttf | Bin 0 -> 242832 bytes .../resources/fonts/WorkSans-VariableFont.ttf | Bin 0 -> 362304 bytes frontend/resources/styles/common/base.scss | 6 +- .../styles/common/dependencies/fonts.scss | 74 ++++------ .../styles/common/refactor/design-tokens.scss | 2 +- .../styles/common/refactor/mixins.scss | 32 ++--- .../app/main/ui/components/button_link.scss | 2 +- frontend/src/app/main/ui/ds/typography.scss | 136 ++++++++++++++++++ frontend/src/app/main/ui/settings.scss | 6 +- .../src/app/main/ui/settings/profile.scss | 4 +- .../sidebar/options/menus/component.scss | 2 +- .../main/ui/workspace/sidebar/shortcuts.scss | 2 +- 12 files changed, 189 insertions(+), 77 deletions(-) create mode 100644 frontend/resources/fonts/Vazirmatn-VariableFont.ttf create mode 100644 frontend/resources/fonts/WorkSans-VariableFont.ttf create mode 100644 frontend/src/app/main/ui/ds/typography.scss diff --git a/frontend/resources/fonts/Vazirmatn-VariableFont.ttf b/frontend/resources/fonts/Vazirmatn-VariableFont.ttf new file mode 100644 index 0000000000000000000000000000000000000000..22595c49932da4f9bb5178d08b6b49e3d01897a4 GIT binary patch literal 242832 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΢xL4{vKFLeK6k53aga-v?y((MCcMq@c!bAOgg~zJ){97Ti`qz4h+CQ)Lwu zWvBMNOJ&(p>^~Rmhf?qUEGWCCID4&?h~pZ>F}f#Y{i+9++!J6j#H7y;i-ZY|h!7df zihKG71P5X8(%jN9z!{O~ZnH$Q*J4$HGU@2_*g5whuZM-c7MF#slzqnMX2=_xd-coL+?$h`nHj+j4>LiT z>zBzV?6%@#r;8dIYp~^3R^m(vso_NPM;~k*_Y_Vtqay-YM{P;jjb5oHHa-kz2b$X` z1+mO&32v4J%RD9~Jn>(1TSsRHtO4T!Bh<@9_TLG%{k7pOc7eRX2!dQ0uaGfnjvnm2Y0NTia9n?t?*HyMQ?R4aomc~~sbS)#9d z9llU>xuosDmmhE2+I*wU+KX&%smGNTS4yu1cq5CE&;CI{k|C>wE;43O2dRG=*TqV! z>)Ms~Jv4tVbWF4`8#LxS``7p4ELLB^m*0F>Recpxyh|4?lDKPYmg{?)8|5=LX5li9 zuQe0$W$QD8nBieI0$HAOZ%G-lxTdk8=-Xq(Hv8?hyISHcnH(6f<`iA=J*YTizO3X^6+VKTK~SLtEF|Q)oLZ(-hx_g34V0g zHiALW@Q7{r(N&9*4O*=sdC{t2(pLTl2e>1A*-QVP`d@+ z+D2(jrv2BVmtTAR?CY<+3>cxIM{T8^UY?{Z@Ly>qX6be0sr=%zy&r$Pmpq?+k!}AY zv{e7dzVhaquQ+iowZ)v97OX;}(5s-|(n5~dv~�*pX3YQsg;q^@f2ijkNbhSy|Iy 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

    S~(>7PPQdI206T;Z%fhdy9T} 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�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 Date: Thu, 4 Jul 2024 11:52:31 +0200 Subject: [PATCH 330/476] :sparkles: Change plugins url --- frontend/src/app/config.cljs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/src/app/config.cljs b/frontend/src/app/config.cljs index 286a179038..58d702f8b9 100644 --- a/frontend/src/app/config.cljs +++ b/frontend/src/app/config.cljs @@ -110,7 +110,7 @@ (def privacy-policy-uri (obj/get global "penpotPrivacyPolicyURI" "https://penpot.app/privacy")) (def flex-help-uri (obj/get global "penpotGridHelpURI" "https://help.penpot.app/user-guide/flexible-layouts/")) (def grid-help-uri (obj/get global "penpotGridHelpURI" "https://help.penpot.app/user-guide/flexible-layouts/")) -(def plugins-list-uri (obj/get global "penpotPluginsListUri" "https://penpot-docs-plugins.netlify.app/technical-guide/plugins/getting-started/#examples")) +(def plugins-list-uri (obj/get global "penpotPluginsListUri" "https://penpot-docs-plugins.pages.dev/technical-guide/plugins/getting-started/#examples")) (defn- normalize-uri [uri-str] From 1b93ccdec9ac3d030a476c611742df8e94cabfb8 Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Thu, 4 Jul 2024 12:07:54 +0200 Subject: [PATCH 331/476] :sparkles: Remove duplicate permissions in confirm dialog --- .../src/app/main/ui/workspace/plugins.cljs | 27 ++++++++++--------- frontend/src/app/plugins.cljs | 11 +++++++- 2 files changed, 25 insertions(+), 13 deletions(-) diff --git a/frontend/src/app/main/ui/workspace/plugins.cljs b/frontend/src/app/main/ui/workspace/plugins.cljs index d7db43950c..53c41282a6 100644 --- a/frontend/src/app/main/ui/workspace/plugins.cljs +++ b/frontend/src/app/main/ui/workspace/plugins.cljs @@ -205,35 +205,38 @@ [:div {:class (stl/css :modal-content)} [:div {:class (stl/css :permissions-list)} - (when (contains? permissions "content:read") + (cond + (contains? permissions "content:write") + [:div {:class (stl/css :permissions-list-entry)} + i/oauth-1 + [:p {:class (stl/css :permissions-list-text)} + (tr "workspace.plugins.permissions.content-write")]] + + (contains? permissions "content:read") [:div {:class (stl/css :permissions-list-entry)} i/oauth-1 [:p {:class (stl/css :permissions-list-text)} (tr "workspace.plugins.permissions.content-read")]]) - (when (contains? permissions "content:write") - [:div {:class (stl/css :permissions-list-entry)} - i/oauth-1 - [:p {:class (stl/css :permissions-list-text)} - (tr "workspace.plugins.permissions.content-write")]]) - - (when (contains? permissions "user:read") + (cond + (contains? permissions "user:read") [:div {:class (stl/css :permissions-list-entry)} i/oauth-2 [:p {:class (stl/css :permissions-list-text)} (tr "workspace.plugins.permissions.user-read")]]) - (when (contains? permissions "library:read") + (cond + (contains? permissions "library:write") [:div {:class (stl/css :permissions-list-entry)} i/oauth-3 [:p {:class (stl/css :permissions-list-text)} - (tr "workspace.plugins.permissions.library-read")]]) + (tr "workspace.plugins.permissions.library-write")]] - (when (contains? permissions "library:write") + (contains? permissions "library:read") [:div {:class (stl/css :permissions-list-entry)} i/oauth-3 [:p {:class (stl/css :permissions-list-text)} - (tr "workspace.plugins.permissions.library-write")]])] + (tr "workspace.plugins.permissions.library-read")]])] [:div {:class (stl/css :permissions-disclaimer)} (tr "workspace.plugins.permissions.disclaimer")]] diff --git a/frontend/src/app/plugins.cljs b/frontend/src/app/plugins.cljs index 21e16d3c20..c66260e522 100644 --- a/frontend/src/app/plugins.cljs +++ b/frontend/src/app/plugins.cljs @@ -47,7 +47,16 @@ desc (obj/get manifest "description") code (obj/get manifest "code") icon (obj/get manifest "icon") - permissions (obj/get manifest "permissions") + + permissions (into #{} (obj/get manifest "permissions" [])) + permissions + (cond-> permissions + (contains? permissions "content:write") + (conj "content:read") + + (contains? permissions "library:write") + (conj "content:write")) + origin (obj/get (js/URL. plugin-url) "origin") plugin-id (str (uuid/next))] {:plugin-id plugin-id From d2bedec59cd54d84502979f006395f75987ca159 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Wed, 5 Jun 2024 13:00:30 +0200 Subject: [PATCH 332/476] :sparkles: Unify naming of schema registering functions --- backend/src/app/media.clj | 4 +- backend/src/app/rpc/permissions.clj | 2 +- backend/src/app/util/time.clj | 4 +- common/src/app/common/features.cljc | 2 +- common/src/app/common/files/changes.cljc | 37 ++++---- .../src/app/common/files/changes_builder.cljc | 2 +- common/src/app/common/geom/matrix.cljc | 2 +- common/src/app/common/geom/point.cljc | 2 +- common/src/app/common/geom/rect.cljc | 2 +- common/src/app/common/schema.cljc | 89 +++++++++---------- common/src/app/common/types/color.cljc | 10 +-- common/src/app/common/types/container.cljc | 2 +- common/src/app/common/types/file.cljc | 4 +- common/src/app/common/types/grid.cljc | 10 +-- common/src/app/common/types/page.cljc | 6 +- common/src/app/common/types/shape.cljc | 34 +++---- common/src/app/common/types/shape/blur.cljc | 2 +- common/src/app/common/types/shape/export.cljc | 2 +- .../app/common/types/shape/interactions.cljc | 4 +- common/src/app/common/types/shape/layout.cljc | 10 +-- common/src/app/common/types/shape/path.cljc | 4 +- common/src/app/common/types/shape/shadow.cljc | 2 +- common/src/app/common/types/shape/text.cljc | 4 +- common/src/app/common/types/typography.cljc | 2 +- 24 files changed, 119 insertions(+), 123 deletions(-) diff --git a/backend/src/app/media.clj b/backend/src/app/media.clj index 8d2315352a..0182955468 100644 --- a/backend/src/app/media.clj +++ b/backend/src/app/media.clj @@ -47,7 +47,7 @@ (s/keys :req-un [::path] :opt-un [::mtype])) -(sm/def! ::fs/path +(sm/register! ::fs/path {:type ::fs/path :pred fs/path? :type-properties @@ -59,7 +59,7 @@ ::oapi/format "unix-path" ::oapi/decode fs/path}}) -(sm/def! ::upload +(sm/register! ::upload [:map {:title "Upload"} [:filename :string] [:size :int] diff --git a/backend/src/app/rpc/permissions.clj b/backend/src/app/rpc/permissions.clj index d2f1719ee6..ef1d71072a 100644 --- a/backend/src/app/rpc/permissions.clj +++ b/backend/src/app/rpc/permissions.clj @@ -12,7 +12,7 @@ [app.common.spec :as us] [clojure.spec.alpha :as s])) -(sm/def! ::permissions +(sm/register! ::permissions [:map {:title "Permissions"} [:type {:gen/elements [:membership :share-link]} :keyword] [:is-owner :boolean] diff --git a/backend/src/app/util/time.clj b/backend/src/app/util/time.clj index 7785966245..4c8f6d40ee 100644 --- a/backend/src/app/util/time.clj +++ b/backend/src/app/util/time.clj @@ -368,7 +368,7 @@ (let [p1 (System/nanoTime)] #(duration {:nanos (- (System/nanoTime) p1)}))) -(sm/def! ::instant +(sm/register! ::instant {:type ::instant :pred instant? :type-properties @@ -379,7 +379,7 @@ ::oapi/type "string" ::oapi/format "iso"}}) -(sm/def! ::duration +(sm/register! ::duration {:type :durations :pred duration? :type-properties diff --git a/common/src/app/common/features.cljc b/common/src/app/common/features.cljc index f0c35b26b3..6e55620965 100644 --- a/common/src/app/common/features.cljc +++ b/common/src/app/common/features.cljc @@ -84,7 +84,7 @@ "plugins/runtime"} (into frontend-only-features))) -(sm/def! ::features +(sm/register! ::features [:schema {:title "FileFeatures" ::smdj/inline true diff --git a/common/src/app/common/files/changes.cljc b/common/src/app/common/files/changes.cljc index 3df8b9d895..f3d0cc71e1 100644 --- a/common/src/app/common/files/changes.cljc +++ b/common/src/app/common/files/changes.cljc @@ -33,25 +33,24 @@ (def ^:private schema:operation - (sm/define - [:multi {:dispatch :type :title "Operation" ::smd/simplified true} - [:set - [:map {:title "SetOperation"} - [:type [:= :set]] - [:attr :keyword] - [:val :any] - [:ignore-touched {:optional true} :boolean] - [:ignore-geometry {:optional true} :boolean]]] - [:set-touched - [:map {:title "SetTouchedOperation"} - [:type [:= :set-touched]] - [:touched [:maybe [:set :keyword]]]]] - [:set-remote-synced - [:map {:title "SetRemoteSyncedOperation"} - [:type [:= :set-remote-synced]] - [:remote-synced {:optional true} [:maybe :boolean]]]]])) + [:multi {:dispatch :type :title "Operation" ::smd/simplified true} + [:set + [:map {:title "SetOperation"} + [:type [:= :set]] + [:attr :keyword] + [:val :any] + [:ignore-touched {:optional true} :boolean] + [:ignore-geometry {:optional true} :boolean]]] + [:set-touched + [:map {:title "SetTouchedOperation"} + [:type [:= :set-touched]] + [:touched [:maybe [:set :keyword]]]]] + [:set-remote-synced + [:map {:title "SetRemoteSyncedOperation"} + [:type [:= :set-remote-synced]] + [:remote-synced {:optional true} [:maybe :boolean]]]]]) -(sm/define! ::change +(sm/register! ::change [:schema [:multi {:dispatch :type :title "Change" ::smd/simplified true} [:set-option @@ -246,7 +245,7 @@ [:type [:= :del-typography]] [:id ::sm/uuid]]]]]) -(sm/define! ::changes +(sm/register! ::changes [:sequential {:gen/max 2} ::change]) (def check-change! diff --git a/common/src/app/common/files/changes_builder.cljc b/common/src/app/common/files/changes_builder.cljc index 12e927ac0f..c3ecbd8a16 100644 --- a/common/src/app/common/files/changes_builder.cljc +++ b/common/src/app/common/files/changes_builder.cljc @@ -24,7 +24,7 @@ ;; Auxiliary functions to help create a set of changes (undo + redo) -(sm/define! ::changes +(sm/register! ::changes [:map {:title "changes"} [:redo-changes vector?] [:undo-changes seq?] diff --git a/common/src/app/common/geom/matrix.cljc b/common/src/app/common/geom/matrix.cljc index d435d861cc..7c090a2d65 100644 --- a/common/src/app/common/geom/matrix.cljc +++ b/common/src/app/common/geom/matrix.cljc @@ -90,7 +90,7 @@ (sm/lazy-validator [:and [:fn matrix?] schema:matrix-attrs])) -(sm/def! ::matrix +(sm/register! ::matrix (letfn [(decode [o] (if (map? o) (map->Matrix o) diff --git a/common/src/app/common/geom/point.cljc b/common/src/app/common/geom/point.cljc index 0a04fa7476..560f30a5b1 100644 --- a/common/src/app/common/geom/point.cljc +++ b/common/src/app/common/geom/point.cljc @@ -61,7 +61,7 @@ (sm/lazy-validator [:and [:fn point?] schema:point-attrs])) -(sm/def! ::point +(sm/register! ::point (letfn [(decode [p] (if (map? p) (map->Point p) diff --git a/common/src/app/common/geom/rect.cljc b/common/src/app/common/geom/rect.cljc index 48d620adfc..c23f9942b1 100644 --- a/common/src/app/common/geom/rect.cljc +++ b/common/src/app/common/geom/rect.cljc @@ -80,7 +80,7 @@ [:x2 ::sm/safe-number] [:y2 ::sm/safe-number]]) -(sm/define! ::rect +(sm/register! ::rect [:and {:gen/gen (->> (sg/tuple (sg/small-double) (sg/small-double) diff --git a/common/src/app/common/schema.cljc b/common/src/app/common/schema.cljc index 425525ca30..621bd8ec52 100644 --- a/common/src/app/common/schema.cljc +++ b/common/src/app/common/schema.cljc @@ -75,7 +75,8 @@ (-explain s value) (m/explain s value default-options))) -(defn humanize +(defn simplify + "Given an explain data structure, return a simplified version of it" [exp] (me/humanize exp)) @@ -86,10 +87,12 @@ (mg/generate (schema s) o))) (defn form + "Returns a readable form of the schema" [s] (m/form s default-options)) (defn merge + "Merge two schemas" [& items] (apply mu/merge (map schema items))) @@ -102,6 +105,7 @@ (m/deref s)) (defn error-values + "Get error values form explain data structure" [exp] (malli.error/error-value exp {:malli.error/mask-valid-values '...})) @@ -138,18 +142,6 @@ :decoders coders :encoders coders}))) -(defn validator - [s] - (if (lazy-schema? s) - (-get-validator s) - (-> s schema m/validator))) - -(defn explainer - [s] - (if (lazy-schema? s) - (-get-explainer s) - (-> s schema m/explainer))) - (defn encode ([s val transformer] (m/encode s val default-options transformer)) @@ -164,6 +156,18 @@ ([s val options transformer] (m/decode s val options transformer))) +(defn validator + [s] + (if (lazy-schema? s) + (-get-validator s) + (-> s schema m/validator))) + +(defn explainer + [s] + (if (lazy-schema? s) + (-get-explainer s) + (-> s schema m/explainer))) + (defn encoder ([s] (if (lazy-schema? s) @@ -201,6 +205,7 @@ (fn [v] (@vfn v))))) (defn humanize-explain + "Returns a string representation of the explain data structure" [{:keys [schema errors value]} & {:keys [length level]}] (let [errors (mapv #(update % :schema form) errors)] (with-out-str @@ -213,7 +218,6 @@ :level (d/nilv level 8) :length (d/nilv length 12)}))))) - (defmethod v/-format ::schemaless-explain [_ {:keys [schema] :as explanation} printer] {:body [:group @@ -353,15 +357,8 @@ (defn register! [type s] (let [s (if (map? s) (simple-schema s) s)] - (swap! sr/registry assoc type s))) - -(defn def! [type s] - (register! type s) - nil) - -(defn define! [id s] - (register! id s) - nil) + (swap! sr/registry assoc type s) + nil)) (defn define "Create ans instance of ILazySchema" @@ -435,8 +432,8 @@ ;; --- BUILTIN SCHEMAS -(define! :merge (mu/-merge)) -(define! :union (mu/-union)) +(register! :merge (mu/-merge)) +(register! :union (mu/-union)) (def uuid-rx #"^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$") @@ -447,7 +444,7 @@ (some->> (re-matches uuid-rx s) uuid/uuid) s)) -(define! ::uuid +(register! ::uuid {:type ::uuid :pred uuid? :type-properties @@ -472,7 +469,7 @@ (and (string? s) (re-seq email-re s))) -(define! ::email +(register! ::email {:type :string :pred email-string? :property-pred @@ -501,7 +498,7 @@ ;; NOTE: this is general purpose set spec and should be used over the other -(define! ::set +(register! ::set {:type :set :min 0 :max 1 @@ -557,7 +554,7 @@ (into #{} xform v)))}}))}) -(define! ::vec +(register! ::vec {:type :vector :min 0 :max 1 @@ -614,7 +611,7 @@ (into [] xform v)))}}))}) -(define! ::set-of-strings +(register! ::set-of-strings {:type ::set-of-strings :pred #(and (set? %) (every? string? %)) :type-properties @@ -630,7 +627,7 @@ (let [v (if (string? v) (str/split v #"[\s,]+") v)] (into #{} non-empty-strings-xf v)))}}) -(define! ::set-of-keywords +(register! ::set-of-keywords {:type ::set-of-keywords :pred #(and (set? %) (every? keyword? %)) :type-properties @@ -646,7 +643,7 @@ (let [v (if (string? v) (str/split v #"[\s,]+") v)] (into #{} (comp non-empty-strings-xf (map keyword)) v)))}}) -(define! ::set-of-emails +(register! ::set-of-emails {:type ::set-of-emails :pred #(and (set? %) (every? string? %)) :type-properties @@ -662,7 +659,7 @@ (let [v (if (string? v) (str/split v #"[\s,]+") v)] (into #{} (keep parse-email) v)))}}) -(define! ::set-of-uuid +(register! ::set-of-uuid {:type ::set-of-uuid :pred #(and (set? %) (every? uuid? %)) :type-properties @@ -678,7 +675,7 @@ (let [v (if (string? v) (str/split v #"[\s,]+") v)] (into #{} (keep parse-uuid) v)))}}) -(define! ::coll-of-uuid +(register! ::coll-of-uuid {:type ::set-of-uuid :pred (partial every? uuid?) :type-properties @@ -694,7 +691,7 @@ (let [v (if (string? v) (str/split v #"[\s,]+") v)] (into [] (keep parse-uuid) v)))}}) -(define! ::one-of +(register! ::one-of {:type ::one-of :min 1 :max 1 @@ -717,7 +714,7 @@ ;; Integer/MIN_VALUE (def min-safe-int -2147483648) -(define! ::safe-int +(register! ::safe-int {:type ::safe-int :pred #(and (int? %) (>= max-safe-int %) (>= % min-safe-int)) :type-properties @@ -732,7 +729,7 @@ (parse-long s) s))}}) -(define! ::safe-number +(register! ::safe-number {:type ::safe-number :pred #(and (number? %) (>= max-safe-int %) (>= % min-safe-int)) :type-properties @@ -748,7 +745,7 @@ (parse-double s) s))}}) -(define! ::safe-double +(register! ::safe-double {:type ::safe-double :pred #(and (double? %) (>= max-safe-int %) (>= % min-safe-int)) :type-properties @@ -763,7 +760,7 @@ (parse-double s) s))}}) -(define! ::contains-any +(register! ::contains-any {:type ::contains-any :min 1 :max 1 @@ -781,7 +778,7 @@ {:title "contains" :description "contains predicate"}}))}) -(define! ::inst +(register! ::inst {:type ::inst :pred inst? :type-properties @@ -793,12 +790,12 @@ ::oapi/type "number" ::oapi/format "int64"}}) -(define! ::fn +(register! ::fn [:schema fn?]) ;; FIXME: deprecated, replace with ::text -(define! ::word-string +(register! ::word-string {:type ::word-string :pred #(and (string? %) (not (str/blank? %))) :property-pred (m/-min-max-pred count) @@ -810,7 +807,7 @@ ::oapi/type "string" ::oapi/format "string"}}) -(define! ::uri +(register! ::uri {:type ::uri :pred u/uri? :property-pred @@ -849,7 +846,7 @@ ::oapi/format "uri" ::oapi/decode (comp u/uri str/trim)}}) -(define! ::text +(register! ::text {:type :string :pred #(and (string? %) (not (str/blank? %))) :property-pred @@ -891,7 +888,7 @@ (str/blank? value)) "errors.field-not-all-whitespace")))}}) -(define! ::password +(register! ::password {:type :string :pred (fn [value] @@ -908,7 +905,7 @@ ;; FIXME: this should not be here -(define! ::plugin-data +(register! ::plugin-data [:map-of {:gen/max 5} :string :string]) ;; ---- PREDICATES diff --git a/common/src/app/common/types/color.cljc b/common/src/app/common/types/color.cljc index dea0ee6fc1..64c8571612 100644 --- a/common/src/app/common/types/color.cljc +++ b/common/src/app/common/types/color.cljc @@ -37,7 +37,7 @@ (.. g (toString 16) (padStart 2 "0")) (.. b (toString 16) (padStart 2 "0")))))) -(sm/define! ::rgb-color +(sm/register! ::rgb-color {:type ::rgb-color :pred #(and (string? %) (some? (re-matches rgb-color-re %))) :type-properties @@ -49,7 +49,7 @@ ::oapi/type "integer" ::oapi/format "int64"}}) -(sm/define! ::image-color +(sm/register! ::image-color [:map {:title "ImageColor"} [:name {:optional true} :string] [:width :int] @@ -58,7 +58,7 @@ [:id ::sm/uuid] [:keep-aspect-ratio {:optional true} :boolean]]) -(sm/define! ::gradient +(sm/register! ::gradient [:map {:title "Gradient"} [:type [::sm/one-of #{:linear :radial}]] [:start-x ::sm/safe-number] @@ -73,7 +73,7 @@ [:opacity {:optional true} [:maybe ::sm/safe-number]] [:offset ::sm/safe-number]]]]]) -(sm/define! ::color +(sm/register! ::color [:and [:map {:title "Color"} [:id {:optional true} ::sm/uuid] @@ -91,7 +91,7 @@ [:map-of {:gen/max 5} :keyword ::sm/plugin-data]]] [::sm/contains-any {:strict true} [:color :gradient :image]]]) -(sm/define! ::recent-color +(sm/register! ::recent-color [:and [:map {:title "RecentColor"} [:opacity {:optional true} [:maybe ::sm/safe-number]] diff --git a/common/src/app/common/types/container.cljc b/common/src/app/common/types/container.cljc index 0313870b66..d8aa12b938 100644 --- a/common/src/app/common/types/container.cljc +++ b/common/src/app/common/types/container.cljc @@ -26,7 +26,7 @@ (def valid-container-types #{:page :component}) -(sm/define! ::container +(sm/register! ::container [:map [:id ::sm/uuid] [:type {:optional true} diff --git a/common/src/app/common/types/file.cljc b/common/src/app/common/types/file.cljc index c8c7fbe432..b7f7acd7dc 100644 --- a/common/src/app/common/types/file.cljc +++ b/common/src/app/common/types/file.cljc @@ -34,7 +34,7 @@ ;; SCHEMA ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -(sm/define! ::media-object +(sm/register! ::media-object [:map {:title "FileMediaObject"} [:id ::sm/uuid] [:name :string] @@ -43,7 +43,7 @@ [:mtype :string] [:path {:optional true} [:maybe :string]]]) -(sm/define! ::data +(sm/register! ::data [:map {:title "FileData"} [:pages [:vector ::sm/uuid]] [:pages-index diff --git a/common/src/app/common/types/grid.cljc b/common/src/app/common/types/grid.cljc index 29e90af4c7..72a7ceac61 100644 --- a/common/src/app/common/types/grid.cljc +++ b/common/src/app/common/types/grid.cljc @@ -13,12 +13,12 @@ ;; SCHEMA ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -(sm/def! ::grid-color +(sm/register! ::grid-color [:map {:title "PageGridColor"} [:color ::ctc/rgb-color] [:opacity ::sm/safe-number]]) -(sm/def! ::column-params +(sm/register! ::column-params [:map [:color ::grid-color] [:type {:optional true} [::sm/one-of #{:stretch :left :center :right}]] @@ -27,12 +27,12 @@ [:item-length {:optional true} [:maybe ::sm/safe-number]] [:gutter {:optional true} [:maybe ::sm/safe-number]]]) -(sm/def! ::square-params +(sm/register! ::square-params [:map [:size {:optional true} [:maybe ::sm/safe-number]] [:color ::grid-color]]) -(sm/def! ::grid +(sm/register! ::grid [:multi {:dispatch :type} [:column [:map @@ -52,7 +52,7 @@ [:display :boolean] [:params ::square-params]]]]) -(sm/def! ::saved-grids +(sm/register! ::saved-grids [:map {:title "PageGrid"} [:square {:optional true} ::square-params] [:row {:optional true} ::column-params] diff --git a/common/src/app/common/types/page.cljc b/common/src/app/common/types/page.cljc index 3e31540dbc..b8c9eb3de6 100644 --- a/common/src/app/common/types/page.cljc +++ b/common/src/app/common/types/page.cljc @@ -17,20 +17,20 @@ ;; SCHEMAS ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -(sm/define! ::flow +(sm/register! ::flow [:map {:title "PageFlow"} [:id ::sm/uuid] [:name :string] [:starting-frame ::sm/uuid]]) -(sm/define! ::guide +(sm/register! ::guide [:map {:title "PageGuide"} [:id ::sm/uuid] [:axis [::sm/one-of #{:x :y}]] [:position ::sm/safe-number] [:frame-id {:optional true} [:maybe ::sm/uuid]]]) -(sm/define! ::page +(sm/register! ::page [:map {:title "FilePage"} [:id ::sm/uuid] [:name :string] diff --git a/common/src/app/common/types/shape.cljc b/common/src/app/common/types/shape.cljc index e22353e750..71a1964d39 100644 --- a/common/src/app/common/types/shape.cljc +++ b/common/src/app/common/types/shape.cljc @@ -85,10 +85,10 @@ :exclude :intersection}) -(sm/define! ::points +(sm/register! ::points [:vector {:gen/max 4 :gen/min 4} ::gpt/point]) -(sm/define! ::fill +(sm/register! ::fill [:map {:title "Fill"} [:fill-color {:optional true} ::ctc/rgb-color] [:fill-opacity {:optional true} ::sm/safe-number] @@ -97,7 +97,7 @@ [:fill-color-ref-id {:optional true} [:maybe ::sm/uuid]] [:fill-image {:optional true} ::ctc/image-color]]) -(sm/define! ::stroke +(sm/register! ::stroke [:map {:title "Stroke"} [:stroke-color {:optional true} :string] [:stroke-color-ref-file {:optional true} ::sm/uuid] @@ -115,7 +115,7 @@ [:stroke-color-gradient {:optional true} ::ctc/gradient] [:stroke-image {:optional true} ::ctc/image-color]]) -(sm/define! ::shape-base-attrs +(sm/register! ::shape-base-attrs [:map {:title "ShapeMinimalRecord"} [:id ::sm/uuid] [:name :string] @@ -127,14 +127,14 @@ [:parent-id ::sm/uuid] [:frame-id ::sm/uuid]]) -(sm/define! ::shape-geom-attrs +(sm/register! ::shape-geom-attrs [:map {:title "ShapeGeometryAttrs"} [:x ::sm/safe-number] [:y ::sm/safe-number] [:width ::sm/safe-number] [:height ::sm/safe-number]]) -(sm/define! ::shape-attrs +(sm/register! ::shape-attrs [:map {:title "ShapeAttrs"} [:name {:optional true} :string] [:component-id {:optional true} ::sm/uuid] @@ -190,12 +190,12 @@ [:plugin-data {:optional true} [:map-of {:gen/max 5} :keyword ::sm/plugin-data]]]) -(sm/define! ::group-attrs +(sm/register! ::group-attrs [:map {:title "GroupAttrs"} [:type [:= :group]] [:shapes [:vector {:gen/max 10 :gen/min 1} ::sm/uuid]]]) -(sm/define! ::frame-attrs +(sm/register! ::frame-attrs [:map {:title "FrameAttrs"} [:type [:= :frame]] [:shapes [:vector {:gen/max 10 :gen/min 1} ::sm/uuid]] @@ -203,7 +203,7 @@ [:show-content {:optional true} :boolean] [:hide-in-viewer {:optional true} :boolean]]) -(sm/define! ::bool-attrs +(sm/register! ::bool-attrs [:map {:title "BoolAttrs"} [:type [:= :bool]] [:shapes [:vector {:gen/max 10 :gen/min 1} ::sm/uuid]] @@ -223,19 +223,19 @@ [:maybe [:map-of {:gen/max 5} :keyword ::sm/safe-number]]]]]]]) -(sm/define! ::rect-attrs +(sm/register! ::rect-attrs [:map {:title "RectAttrs"} [:type [:= :rect]]]) -(sm/define! ::circle-attrs +(sm/register! ::circle-attrs [:map {:title "CircleAttrs"} [:type [:= :circle]]]) -(sm/define! ::svg-raw-attrs +(sm/register! ::svg-raw-attrs [:map {:title "SvgRawAttrs"} [:type [:= :svg-raw]]]) -(sm/define! ::image-attrs +(sm/register! ::image-attrs [:map {:title "ImageAttrs"} [:type [:= :image]] [:metadata @@ -245,17 +245,17 @@ [:mtype {:optional true} [:maybe :string]] [:id ::sm/uuid]]]]) -(sm/define! ::path-attrs +(sm/register! ::path-attrs [:map {:title "PathAttrs"} [:type [:= :path]] [:content ::ctsp/content]]) -(sm/define! ::text-attrs +(sm/register! ::text-attrs [:map {:title "TextAttrs"} [:type [:= :text]] [:content {:optional true} [:maybe ::ctsx/content]]]) -(sm/define! ::shape-map +(sm/register! ::shape-map [:multi {:dispatch :type :title "Shape"} [:group [:and {:title "GroupShape"} @@ -327,7 +327,7 @@ ::text-attrs ::ctsl/layout-child-attrs]]]) -(sm/define! ::shape +(sm/register! ::shape [:and {:title "Shape" :gen/gen (->> (sg/generator ::shape-base-attrs) diff --git a/common/src/app/common/types/shape/blur.cljc b/common/src/app/common/types/shape/blur.cljc index 2c4ce5ab4b..796c0d1707 100644 --- a/common/src/app/common/types/shape/blur.cljc +++ b/common/src/app/common/types/shape/blur.cljc @@ -26,7 +26,7 @@ ;; SCHEMA ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -(sm/def! ::blur +(sm/register! ::blur [:map {:title "Blur"} [:id ::sm/uuid] [:type [:= :layer-blur]] diff --git a/common/src/app/common/types/shape/export.cljc b/common/src/app/common/types/shape/export.cljc index ddbf4263be..91b5cca24b 100644 --- a/common/src/app/common/types/shape/export.cljc +++ b/common/src/app/common/types/shape/export.cljc @@ -10,7 +10,7 @@ (def export-types #{:png :jpeg :svg :pdf}) -(sm/def! ::export +(sm/register! ::export [:map {:title "ShapeExport"} [:type :keyword] [:scale ::sm/safe-number] diff --git a/common/src/app/common/types/shape/interactions.cljc b/common/src/app/common/types/shape/interactions.cljc index 05724ebe88..647e6cf268 100644 --- a/common/src/app/common/types/shape/interactions.cljc +++ b/common/src/app/common/types/shape/interactions.cljc @@ -71,7 +71,7 @@ (def animation-types #{:dissolve :slide :push}) -(sm/define! ::animation +(sm/register! ::animation [:multi {:dispatch :animation-type :title "Animation"} [:dissolve [:map {:title "AnimationDisolve"} @@ -96,7 +96,7 @@ (def check-animation! (sm/check-fn ::animation)) -(sm/define! ::interaction +(sm/register! ::interaction [:multi {:dispatch :action-type} [:navigate [:map diff --git a/common/src/app/common/types/shape/layout.cljc b/common/src/app/common/types/shape/layout.cljc index d30598974f..16e207d0b8 100644 --- a/common/src/app/common/types/shape/layout.cljc +++ b/common/src/app/common/types/shape/layout.cljc @@ -87,7 +87,7 @@ :layout-item-absolute :layout-item-z-index]) -(sm/def! ::layout-attrs +(sm/register! ::layout-attrs [:map {:title "LayoutAttrs"} [:layout {:optional true} [::sm/one-of layout-types]] [:layout-flex-dir {:optional true} [::sm/one-of flex-direction-types]] @@ -130,7 +130,7 @@ (def grid-cell-justify-self-types #{:auto :start :center :end :stretch}) -(sm/def! ::grid-cell +(sm/register! ::grid-cell [:map {:title "GridCell"} [:id ::sm/uuid] [:area-name {:optional true} :string] @@ -144,7 +144,7 @@ [:shapes [:vector {:gen/max 1} ::sm/uuid]]]) -(sm/def! ::grid-track +(sm/register! ::grid-track [:map {:title "GridTrack"} [:type [::sm/one-of grid-track-types]] [:value {:optional true} [:maybe ::sm/safe-number]]]) @@ -166,7 +166,7 @@ (def item-align-self-types #{:start :end :center :stretch}) -(sm/def! ::layout-child-attrs +(sm/register! ::layout-child-attrs [:map {:title "LayoutChildAttrs"} [:layout-item-margin-type {:optional true} [::sm/one-of item-margin-types]] [:layout-item-margin {:optional true} @@ -192,7 +192,7 @@ (def valid-layouts #{:flex :grid}) -(sm/def! ::layout +(sm/register! ::layout [::sm/one-of valid-layouts]) (defn flex-layout? diff --git a/common/src/app/common/types/shape/path.cljc b/common/src/app/common/types/shape/path.cljc index d633bb85c6..f6002a2935 100644 --- a/common/src/app/common/types/shape/path.cljc +++ b/common/src/app/common/types/shape/path.cljc @@ -12,7 +12,7 @@ ;; SCHEMA ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -(sm/define! ::segment +(sm/register! ::segment [:multi {:title "PathSegment" :dispatch :command} [:line-to [:map @@ -43,5 +43,5 @@ [:c2x ::sm/safe-number] [:c2y ::sm/safe-number]]]]]]) -(sm/define! ::content +(sm/register! ::content [:vector ::segment]) diff --git a/common/src/app/common/types/shape/shadow.cljc b/common/src/app/common/types/shape/shadow.cljc index cc2fd81c3c..62bdc2691a 100644 --- a/common/src/app/common/types/shape/shadow.cljc +++ b/common/src/app/common/types/shape/shadow.cljc @@ -11,7 +11,7 @@ (def styles #{:drop-shadow :inner-shadow}) -(sm/def! ::shadow +(sm/register! ::shadow [:map {:title "Shadow"} [:id [:maybe ::sm/uuid]] [:style [::sm/one-of styles]] diff --git a/common/src/app/common/types/shape/text.cljc b/common/src/app/common/types/shape/text.cljc index dff8759561..99d3a55b51 100644 --- a/common/src/app/common/types/shape/text.cljc +++ b/common/src/app/common/types/shape/text.cljc @@ -16,7 +16,7 @@ (def node-types #{"root" "paragraph-set" "paragraph"}) -(sm/def! ::content +(sm/register! ::content [:map [:type [:= "root"]] [:key {:optional true} :string] @@ -64,7 +64,7 @@ -(sm/def! ::position-data +(sm/register! ::position-data [:vector {:min 1 :gen/max 2} [:map [:x ::sm/safe-number] diff --git a/common/src/app/common/types/typography.cljc b/common/src/app/common/types/typography.cljc index 2e5a08b93a..ba9eb12906 100644 --- a/common/src/app/common/types/typography.cljc +++ b/common/src/app/common/types/typography.cljc @@ -15,7 +15,7 @@ ;; SCHEMA ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -(sm/def! ::typography +(sm/register! ::typography [:map {:title "Typography"} [:id ::sm/uuid] [:name :string] From 40f947fc9f5abc3986fd020f813d8a558d0a2b02 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Wed, 5 Jun 2024 13:14:36 +0200 Subject: [PATCH 333/476] :bug: Fix issue with schema uri decoder --- common/src/app/common/schema.cljc | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/common/src/app/common/schema.cljc b/common/src/app/common/schema.cljc index 621bd8ec52..322a3dd5fc 100644 --- a/common/src/app/common/schema.cljc +++ b/common/src/app/common/schema.cljc @@ -844,7 +844,11 @@ :gen/gen (sg/uri) ::oapi/type "string" ::oapi/format "uri" - ::oapi/decode (comp u/uri str/trim)}}) + ::oapi/decode + (fn [val] + (if (u/uri? val) + val + (-> val str/trim u/uri)))}}) (register! ::text {:type :string From a0339132dd2cd4f90bd73970cb5c5773a6e5fd68 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Wed, 5 Jun 2024 13:42:09 +0200 Subject: [PATCH 334/476] :paperclip: Update cljfmt config --- .cljfmt.edn | 1 + 1 file changed, 1 insertion(+) diff --git a/.cljfmt.edn b/.cljfmt.edn index 38cfeb89b6..02c567b2e3 100644 --- a/.cljfmt.edn +++ b/.cljfmt.edn @@ -4,6 +4,7 @@ :remove-consecutive-blank-lines? false :extra-indents {rumext.v2/fnc [[:inner 0]] cljs.test/async [[:inner 0]] + app.common.schema/register! [[:inner 0] [:inner 1]] promesa.exec/thread [[:inner 0]] specify! [[:inner 0] [:inner 1]]} } From f973faa409b326ad1ff817ecef0a4d4145d8ce59 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Fri, 14 Jun 2024 07:56:29 +0200 Subject: [PATCH 335/476] :paperclip: Add missing SPEC tag on doc entry template --- backend/resources/app/templates/api-doc-entry.tmpl | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/backend/resources/app/templates/api-doc-entry.tmpl b/backend/resources/app/templates/api-doc-entry.tmpl index 31c48deebf..9123233a83 100644 --- a/backend/resources/app/templates/api-doc-entry.tmpl +++ b/backend/resources/app/templates/api-doc-entry.tmpl @@ -20,12 +20,19 @@ WEBHOOK {% endif %} + {% if item.params-schema-js %} SCHEMA {% endif %} + {% if item.spec %} + + SPEC + + {% endif %} + {% if item.sse %} SSE From 368917f7f5e13f2bd180bf1c839d5b84687ce675 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Wed, 5 Jun 2024 13:41:31 +0200 Subject: [PATCH 336/476] :fire: Replace spec with schema on webhooks rpc methods --- backend/src/app/rpc/commands/webhooks.clj | 60 ++++++++++--------- .../test/backend_tests/rpc_webhooks_test.clj | 2 + 2 files changed, 35 insertions(+), 27 deletions(-) diff --git a/backend/src/app/rpc/commands/webhooks.clj b/backend/src/app/rpc/commands/webhooks.clj index 13a5d02101..2649a73a4b 100644 --- a/backend/src/app/rpc/commands/webhooks.clj +++ b/backend/src/app/rpc/commands/webhooks.clj @@ -8,7 +8,7 @@ (:require [app.common.data.macros :as dm] [app.common.exceptions :as ex] - [app.common.spec :as us] + [app.common.schema :as sm] [app.common.uri :as u] [app.common.uuid :as uuid] [app.db :as db] @@ -19,7 +19,6 @@ [app.rpc.doc :as-alias doc] [app.util.services :as sv] [app.util.time :as dt] - [clojure.spec.alpha :as s] [cuerdas.core :as str])) (defn decode-row @@ -29,18 +28,6 @@ ;; --- Mutation: Create Webhook -(s/def ::team-id ::us/uuid) -(s/def ::uri ::us/uri) -(s/def ::is-active ::us/boolean) -(s/def ::mtype - #{"application/json" - "application/transit+json"}) - -(s/def ::create-webhook - (s/keys :req [::rpc/profile-id] - :req-un [::team-id ::uri ::mtype] - :opt-un [::is-active])) - ;; NOTE: for now the quote is hardcoded but this need to be solved in ;; a more universal way for handling properly object quotes (def max-hooks-for-team 8) @@ -99,31 +86,49 @@ {::db/return-keys true}) (decode-row))) + +(def valid-mtypes + #{"application/json" + "application/transit+json"}) + +(def ^:private schema:create-webhook + [:map {:title "create-webhook"} + [:team-id ::sm/uuid] + [:uri ::sm/uri] + [:mtype [::sm/one-of {:format "string"} valid-mtypes]]]) + (sv/defmethod ::create-webhook - {::doc/added "1.17"} + {::doc/added "1.17" + ::sm/params schema:create-webhook} [{:keys [::db/pool] :as cfg} {:keys [::rpc/profile-id team-id] :as params}] (check-edition-permissions! pool profile-id team-id) (validate-quotes! cfg params) (validate-webhook! cfg nil params) (insert-webhook! cfg params)) -(s/def ::update-webhook - (s/keys :req-un [::id ::uri ::mtype ::is-active])) +(def ^:private schema:update-webhook + [:map {:title "update-webhook"} + [:id ::sm/uuid] + [:uri ::sm/uri] + [:mtype [::sm/one-of {:format "string"} valid-mtypes]] + [:is-active :boolean]]) (sv/defmethod ::update-webhook - {::doc/added "1.17"} + {::doc/added "1.17" + ::sm/params schema:update-webhook} [{:keys [::db/pool] :as cfg} {:keys [::rpc/profile-id id] :as params}] (let [whook (-> (db/get pool :webhook {:id id}) (decode-row))] (check-edition-permissions! pool profile-id (:team-id whook)) (validate-webhook! cfg whook params) (update-webhook! cfg whook params))) -(s/def ::delete-webhook - (s/keys :req [::rpc/profile-id] - :req-un [::id])) +(def ^:private schema:delete-webhook + [:map {:title "delete-webhook"} + [:id ::sm/uuid]]) (sv/defmethod ::delete-webhook - {::doc/added "1.17"} + {::doc/added "1.17" + ::sm/params schema:delete-webhook} [{:keys [::db/pool] :as cfg} {:keys [::rpc/profile-id id]}] (db/with-atomic [conn pool] (let [whook (-> (db/get conn :webhook {:id id}) decode-row)] @@ -133,16 +138,17 @@ ;; --- Query: Webhooks -(s/def ::team-id ::us/uuid) -(s/def ::get-webhooks - (s/keys :req [::rpc/profile-id] - :req-un [::team-id])) - (def sql:get-webhooks "select id, uri, mtype, is_active, error_code, error_count from webhook where team_id = ? order by uri") +(def ^:private schema:get-webhooks + [:map {:title "get-webhooks"} + [:team-id ::sm/uuid]]) + (sv/defmethod ::get-webhooks + {::doc/added "1.17" + ::sm/params schema:get-webhooks} [{:keys [::db/pool] :as cfg} {:keys [::rpc/profile-id team-id]}] (dm/with-open [conn (db/open pool)] (check-read-permissions! conn profile-id team-id) diff --git a/backend/test/backend_tests/rpc_webhooks_test.clj b/backend/test/backend_tests/rpc_webhooks_test.clj index 76c3de763c..f47472a73f 100644 --- a/backend/test/backend_tests/rpc_webhooks_test.clj +++ b/backend/test/backend_tests/rpc_webhooks_test.clj @@ -39,6 +39,8 @@ (t/is (nil? (:error out))) (t/is (= 1 (:call-count @http-mock))) + ;; (th/print-result! out) + (let [result (:result out)] (t/is (contains? result :id)) (t/is (contains? result :team-id)) From 279c6337e44eae632093008d15eab1867c161086 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Wed, 5 Jun 2024 14:03:24 +0200 Subject: [PATCH 337/476] :fire: Replace spec with schema on access-token rpc methods --- backend/src/app/rpc/commands/access_token.clj | 37 +++++++++---------- 1 file changed, 18 insertions(+), 19 deletions(-) diff --git a/backend/src/app/rpc/commands/access_token.clj b/backend/src/app/rpc/commands/access_token.clj index 06a6e516ce..e8d9675f99 100644 --- a/backend/src/app/rpc/commands/access_token.clj +++ b/backend/src/app/rpc/commands/access_token.clj @@ -6,7 +6,7 @@ (ns app.rpc.commands.access-token (:require - [app.common.spec :as us] + [app.common.schema :as sm] [app.common.uuid :as uuid] [app.db :as db] [app.main :as-alias main] @@ -16,8 +16,7 @@ [app.setup :as-alias setup] [app.tokens :as tokens] [app.util.services :as sv] - [app.util.time :as dt] - [clojure.spec.alpha :as s])) + [app.util.time :as dt])) (defn- decode-row [row] @@ -44,7 +43,7 @@ :perms (db/create-array conn "text" [])}))) -(defn repl-create-access-token +(defn repl:create-access-token [{:keys [::db/pool] :as system} profile-id name expiration] (db/with-atomic [conn pool] (let [props (:app.setup/props system)] @@ -53,16 +52,14 @@ name expiration)))) -(s/def ::name ::us/not-empty-string) -(s/def ::expiration ::dt/duration) - -(s/def ::create-access-token - (s/keys :req [::rpc/profile-id] - :req-un [::name] - :opt-un [::expiration])) +(def ^:private schema:create-access-token + [:map {:title "create-access-token"} + [:name [:string {:max 250 :min 1}]] + [:expiration {:optional true} ::dt/duration]]) (sv/defmethod ::create-access-token - {::doc/added "1.18"} + {::doc/added "1.18" + ::sm/params schema:create-access-token} [{:keys [::db/pool] :as cfg} {:keys [::rpc/profile-id name expiration]}] (db/with-atomic [conn pool] (let [cfg (assoc cfg ::db/conn conn)] @@ -72,21 +69,23 @@ (-> (create-access-token cfg profile-id name expiration) (decode-row))))) -(s/def ::delete-access-token - (s/keys :req [::rpc/profile-id] - :req-un [::us/id])) +(def ^:private schema:delete-access-token + [:map {:title "delete-access-token"} + [:id ::sm/uuid]]) (sv/defmethod ::delete-access-token - {::doc/added "1.18"} + {::doc/added "1.18" + ::sm/params schema:delete-access-token} [{:keys [::db/pool]} {:keys [::rpc/profile-id id]}] (db/delete! pool :access-token {:id id :profile-id profile-id}) nil) -(s/def ::get-access-tokens - (s/keys :req [::rpc/profile-id])) +(def ^:private schema:get-access-tokens + [:map {:title "get-access-tokens"}]) (sv/defmethod ::get-access-tokens - {::doc/added "1.18"} + {::doc/added "1.18" + ::sm/params schema:get-access-tokens} [{:keys [::db/pool]} {:keys [::rpc/profile-id]}] (->> (db/query pool :access-token {:profile-id profile-id} From bfca3246233ffcbe36c145499f48ce60d2c2fab9 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Wed, 5 Jun 2024 14:37:36 +0200 Subject: [PATCH 338/476] :fire: Replace spec with schema on project rpc methods --- backend/src/app/rpc/commands/projects.clj | 73 ++++++++++++----------- 1 file changed, 39 insertions(+), 34 deletions(-) diff --git a/backend/src/app/rpc/commands/projects.clj b/backend/src/app/rpc/commands/projects.clj index 16e892b17a..4901a6efde 100644 --- a/backend/src/app/rpc/commands/projects.clj +++ b/backend/src/app/rpc/commands/projects.clj @@ -8,7 +8,7 @@ (:require [app.common.data.macros :as dm] [app.common.exceptions :as ex] - [app.common.spec :as us] + [app.common.schema :as sm] [app.db :as db] [app.db.sql :as-alias sql] [app.loggers.audit :as-alias audit] @@ -21,11 +21,7 @@ [app.rpc.quotes :as quotes] [app.util.services :as sv] [app.util.time :as dt] - [app.worker :as wrk] - [clojure.spec.alpha :as s])) - -(s/def ::id ::us/uuid) -(s/def ::name ::us/string) + [app.worker :as wrk])) ;; --- Check Project Permissions @@ -75,13 +71,13 @@ (declare get-projects) -(s/def ::team-id ::us/uuid) -(s/def ::get-projects - (s/keys :req [::rpc/profile-id] - :req-un [::team-id])) +(def ^:private schema:get-projects + [:map {:title "get-projects"} + [:team-id ::sm/uuid]]) (sv/defmethod ::get-projects - {::doc/added "1.18"} + {::doc/added "1.18" + ::sm/params schema:get-projects} [{:keys [::db/pool]} {:keys [::rpc/profile-id team-id]}] (dm/with-open [conn (db/open pool)] (teams/check-read-permissions! conn profile-id team-id) @@ -112,11 +108,12 @@ (declare get-all-projects) -(s/def ::get-all-projects - (s/keys :req [::rpc/profile-id])) +(def ^:private schema:get-all-projects + [:map {:title "get-all-projects"}]) (sv/defmethod ::get-all-projects - {::doc/added "1.18"} + {::doc/added "1.18" + ::sm/params schema:get-all-projects} [{:keys [::db/pool]} {:keys [::rpc/profile-id]}] (dm/with-open [conn (db/open pool)] (get-all-projects conn profile-id))) @@ -154,12 +151,13 @@ ;; --- QUERY: Get project -(s/def ::get-project - (s/keys :req [::rpc/profile-id] - :req-un [::id])) +(def ^:private schema:get-project + [:map {:title "get-project"} + [:id ::sm/uuid]]) (sv/defmethod ::get-project - {::doc/added "1.18"} + {::doc/added "1.18" + ::sm/params schema:get-project} [{:keys [::db/pool]} {:keys [::rpc/profile-id id]}] (dm/with-open [conn (db/open pool)] (let [project (db/get-by-id conn :project id)] @@ -170,14 +168,16 @@ ;; --- MUTATION: Create Project -(s/def ::create-project - (s/keys :req [::rpc/profile-id] - :req-un [::team-id ::name] - :opt-un [::id])) +(def ^:private schema:create-project + [:map {:title "create-project"} + [:team-id ::sm/uuid] + [:name [:string {:max 250 :min 1}]] + [:id {:optional true} ::sm/uuid]]) (sv/defmethod ::create-project {::doc/added "1.18" - ::webhooks/event? true} + ::webhooks/event? true + ::sm/params schema:create-project} [{:keys [::db/pool] :as cfg} {:keys [::rpc/profile-id team-id] :as params}] (db/with-atomic [conn pool] (teams/check-edition-permissions! conn profile-id team-id) @@ -205,14 +205,15 @@ on conflict (team_id, project_id, profile_id) do update set is_pinned=?") -(s/def ::is-pinned ::us/boolean) -(s/def ::project-id ::us/uuid) -(s/def ::update-project-pin - (s/keys :req [::rpc/profile-id] - :req-un [::id ::team-id ::is-pinned])) +(def ^:private schema:update-project-pin + [:map {:title "update-project-pin"} + [:team-id ::sm/uuid] + [:is-pinned :boolean] + [:id ::sm/uuid]]) (sv/defmethod ::update-project-pin {::doc/added "1.18" + ::sm/params schema:update-project-pin ::webhooks/batch-timeout (dt/duration "5s") ::webhooks/batch-key (webhooks/key-fn ::rpc/profile-id :id) ::webhooks/event? true} @@ -226,12 +227,14 @@ (declare rename-project) -(s/def ::rename-project - (s/keys :req [::rpc/profile-id] - :req-un [::name ::id])) +(def ^:private schema:rename-project + [:map {:title "rename-project"} + [:name [:string {:max 250 :min 1}]] + [:id ::sm/uuid]]) (sv/defmethod ::rename-project {::doc/added "1.18" + ::sm/params schema:rename-project ::webhooks/event? true} [{:keys [::db/pool] :as cfg} {:keys [::rpc/profile-id id name] :as params}] (db/with-atomic [conn pool] @@ -266,12 +269,14 @@ project)) -(s/def ::delete-project - (s/keys :req [::rpc/profile-id] - :req-un [::id])) + +(def ^:private schema:delete-project + [:map {:title "delete-project"} + [:id ::sm/uuid]]) (sv/defmethod ::delete-project {::doc/added "1.18" + ::sm/params schema:delete-project ::webhooks/event? true} [{:keys [::db/pool] :as cfg} {:keys [::rpc/profile-id id] :as params}] (db/with-atomic [conn pool] From e9a28b034f6702810faa11406ffd5f6cfcffef46 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Wed, 5 Jun 2024 14:51:29 +0200 Subject: [PATCH 339/476] :fire: Replace spec with schema on file RPC methods --- backend/src/app/rpc/commands/files.clj | 24 +++++-------------- .../app/main/data/workspace/libraries.cljs | 3 +++ 2 files changed, 9 insertions(+), 18 deletions(-) diff --git a/backend/src/app/rpc/commands/files.clj b/backend/src/app/rpc/commands/files.clj index b0c74feb12..b4d0e8b32e 100644 --- a/backend/src/app/rpc/commands/files.clj +++ b/backend/src/app/rpc/commands/files.clj @@ -15,7 +15,6 @@ [app.common.logging :as l] [app.common.schema :as sm] [app.common.schema.desc-js-like :as-alias smdj] - [app.common.spec :as us] [app.common.types.components-list :as ctkl] [app.common.types.file :as ctf] [app.config :as cf] @@ -36,7 +35,6 @@ [app.util.services :as sv] [app.util.time :as dt] [app.worker :as wrk] - [clojure.spec.alpha :as s] [cuerdas.core :as str])) ;; --- FEATURES @@ -46,18 +44,6 @@ (when media-id (str (cf/get :public-uri) "/assets/by-id/" media-id))) -;; --- SPECS - -(s/def ::features ::us/set-of-strings) -(s/def ::file-id ::us/uuid) -(s/def ::frame-id ::us/uuid) -(s/def ::id ::us/uuid) -(s/def ::is-shared ::us/boolean) -(s/def ::name ::us/string) -(s/def ::project-id ::us/uuid) -(s/def ::search-term ::us/string) -(s/def ::team-id ::us/uuid) - ;; --- HELPERS (def long-cache-duration @@ -1047,14 +1033,16 @@ {:id file-id} {::db/return-keys true})) -(s/def ::ignore-file-library-sync-status - (s/keys :req [::rpc/profile-id] - :req-un [::file-id ::date])) +(def ^:private schema:ignore-file-library-sync-status + [:map {:title "ignore-file-library-sync-status"} + [:file-id ::sm/uuid] + [:date ::dt/duration]]) ;; TODO: improve naming (sv/defmethod ::ignore-file-library-sync-status "Ignore updates in linked files" - {::doc/added "1.17"} + {::doc/added "1.17" + ::sm/params schema:ignore-file-library-sync-status} [{:keys [::db/pool] :as cfg} {:keys [::rpc/profile-id file-id] :as params}] (db/with-atomic [conn pool] (check-edition-permissions! conn profile-id file-id) diff --git a/frontend/src/app/main/data/workspace/libraries.cljs b/frontend/src/app/main/data/workspace/libraries.cljs index 5f0498e943..6d7aafc569 100644 --- a/frontend/src/app/main/data/workspace/libraries.cljs +++ b/frontend/src/app/main/data/workspace/libraries.cljs @@ -1042,6 +1042,9 @@ {:file-id file-id :library-id library-id})))))))))) + +;; FIXME: the data should be set on the backend for clock consistency + (def ignore-sync "Mark the file as ignore syncs. All library changes before this moment will not ber notified to sync." From 268f1d40aae453dcb27f9ec04e80d348df09b189 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Thu, 6 Jun 2024 10:40:55 +0200 Subject: [PATCH 340/476] :fire: Replace spec with schema on file-share RPC methods --- backend/src/app/rpc/commands/files_share.clj | 33 +++++++++----------- 1 file changed, 15 insertions(+), 18 deletions(-) diff --git a/backend/src/app/rpc/commands/files_share.clj b/backend/src/app/rpc/commands/files_share.clj index bf761b5bf9..752fc0e547 100644 --- a/backend/src/app/rpc/commands/files_share.clj +++ b/backend/src/app/rpc/commands/files_share.clj @@ -7,29 +7,24 @@ (ns app.rpc.commands.files-share "Share link related rpc mutation methods." (:require - [app.common.spec :as us] + [app.common.schema :as sm] [app.common.uuid :as uuid] [app.db :as db] [app.rpc :as-alias rpc] [app.rpc.commands.files :as files] [app.rpc.doc :as-alias doc] - [app.util.services :as sv] - [clojure.spec.alpha :as s])) - -;; --- Helpers & Specs - -(s/def ::file-id ::us/uuid) -(s/def ::who-comment ::us/string) -(s/def ::who-inspect ::us/string) -(s/def ::pages (s/every ::us/uuid :kind set?)) + [app.util.services :as sv])) ;; --- MUTATION: Create Share Link (declare create-share-link) -(s/def ::create-share-link - (s/keys :req [::rpc/profile-id] - :req-un [::file-id ::who-comment ::who-inspect ::pages])) +(def ^:private schema:create-share-link + [:map {:title "create-share-link"} + [:file-id ::sm/uuid] + [:who-comment :string] + [:who-inspect :string] + [:pages [:set ::sm/uuid]]]) (sv/defmethod ::create-share-link "Creates a share-link object. @@ -37,7 +32,8 @@ Share links are resources that allows external users access to specific pages of a file with specific permissions (who-comment and who-inspect)." {::doc/added "1.18" - ::doc/module :files} + ::doc/module :files + ::sm/params schema:create-share-link} [{:keys [::db/pool] :as cfg} {:keys [::rpc/profile-id file-id] :as params}] (db/with-atomic [conn pool] (files/check-edition-permissions! conn profile-id file-id) @@ -58,13 +54,14 @@ ;; --- MUTATION: Delete Share Link -(s/def ::delete-share-link - (s/keys :req [::rpc/profile-id] - :req-un [::us/id])) +(def ^:private schema:delete-share-link + [:map {:title "delete-share-link"} + [:id ::sm/uuid]]) (sv/defmethod ::delete-share-link {::doc/added "1.18" - ::doc/module ::files} + ::doc/module ::files + ::sm/params schema:delete-share-link} [{:keys [::db/pool] :as cfg} {:keys [::rpc/profile-id id] :as params}] (db/with-atomic [conn pool] (let [slink (db/get-by-id conn :share-link id)] From bbc00891669d5258838828307572a611422fe7d7 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Thu, 6 Jun 2024 10:59:36 +0200 Subject: [PATCH 341/476] :fire: Replace spec with schema on verify-token RPC methods --- backend/src/app/rpc/commands/verify_token.clj | 44 +++++++++---------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/backend/src/app/rpc/commands/verify_token.clj b/backend/src/app/rpc/commands/verify_token.clj index 1fc83bc85e..de39fed798 100644 --- a/backend/src/app/rpc/commands/verify_token.clj +++ b/backend/src/app/rpc/commands/verify_token.clj @@ -7,7 +7,7 @@ (ns app.rpc.commands.verify-token (:require [app.common.exceptions :as ex] - [app.common.spec :as us] + [app.common.schema :as sm] [app.db :as db] [app.db.sql :as-alias sql] [app.http.session :as session] @@ -23,21 +23,19 @@ [app.tokens :as tokens] [app.tokens.spec.team-invitation :as-alias spec.team-invitation] [app.util.services :as sv] - [clojure.spec.alpha :as s])) - -(s/def ::iss keyword?) -(s/def ::exp ::us/inst) + [app.util.time :as dt])) (defmulti process-token (fn [_ _ claims] (:iss claims))) -(s/def ::verify-token - (s/keys :req-un [::token] - :opt [::rpc/profile-id])) +(def ^:private schema:verify-token + [:map {:title "verify-token"} + [:token :string]]) (sv/defmethod ::verify-token {::rpc/auth false ::doc/added "1.15" - ::doc/module :auth} + ::doc/module :auth + ::sm/params schema:verify-token} [{:keys [::db/pool] :as cfg} {:keys [token] :as params}] (db/with-atomic [conn pool] (let [claims (tokens/verify (::setup/props cfg) {:token token}) @@ -131,26 +129,28 @@ (assoc member :is-active true))) -(s/def ::spec.team-invitation/profile-id ::us/uuid) -(s/def ::spec.team-invitation/role ::us/keyword) -(s/def ::spec.team-invitation/team-id ::us/uuid) -(s/def ::spec.team-invitation/member-email ::us/email) -(s/def ::spec.team-invitation/member-id (s/nilable ::us/uuid)) +(def schema:team-invitation-claims + [:map {:title "TeamInvitationClaims"} + [:iss :keyword] + [:exp ::dt/instant] + [:profile-id ::sm/uuid] + [:role teams/schema:role] + [:team-id ::sm/uuid] + [:member-email ::sm/email] + [:member-id {:optional true} ::sm/uuid]]) -(s/def ::team-invitation-claims - (s/keys :req-un [::iss ::exp - ::spec.team-invitation/profile-id - ::spec.team-invitation/role - ::spec.team-invitation/team-id - ::spec.team-invitation/member-email] - :opt-un [::spec.team-invitation/member-id])) +(def valid-team-invitation-claims? + (sm/lazy-validator schema:team-invitation-claims)) (defmethod process-token :team-invitation [{:keys [conn] :as cfg} {:keys [::rpc/profile-id token] :as params} {:keys [member-id team-id member-email] :as claims}] - (us/verify! ::team-invitation-claims claims) + (when-not (valid-team-invitation-claims? claims) + (ex/raise :type :validation + :code :invalid-invitation-token + :hint "invitation token contains unexpected data")) (let [invitation (db/get* conn :team-invitation {:team-id team-id :email-to member-email}) From 073621f29ac0c18c2bf77346da95d40bf4573da6 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Fri, 14 Jun 2024 08:21:27 +0200 Subject: [PATCH 342/476] :fire: Replace spec with schema on demo RPC methods --- backend/src/app/rpc/commands/demo.clj | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/backend/src/app/rpc/commands/demo.clj b/backend/src/app/rpc/commands/demo.clj index 3dabb96fba..213f6abeca 100644 --- a/backend/src/app/rpc/commands/demo.clj +++ b/backend/src/app/rpc/commands/demo.clj @@ -18,10 +18,7 @@ [app.util.services :as sv] [app.util.time :as dt] [buddy.core.codecs :as bc] - [buddy.core.nonce :as bn] - [clojure.spec.alpha :as s])) - -(s/def ::create-demo-profile any?) + [buddy.core.nonce :as bn])) (sv/defmethod ::create-demo-profile "A command that is responsible of creating a demo purpose From 969c9105fdf10d760fd515ef7fde781a7a2c1a29 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Fri, 14 Jun 2024 08:21:40 +0200 Subject: [PATCH 343/476] :fire: Replace spec with schema on feedback RPC methods --- backend/src/app/rpc/commands/feedback.clj | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/backend/src/app/rpc/commands/feedback.clj b/backend/src/app/rpc/commands/feedback.clj index 7d2ab1c883..9bec88dde2 100644 --- a/backend/src/app/rpc/commands/feedback.clj +++ b/backend/src/app/rpc/commands/feedback.clj @@ -8,29 +8,25 @@ "A general purpose feedback module." (:require [app.common.exceptions :as ex] - [app.common.spec :as us] + [app.common.schema :as sm] [app.config :as cf] [app.db :as db] [app.email :as eml] [app.rpc :as-alias rpc] [app.rpc.commands.profile :as profile] [app.rpc.doc :as-alias doc] - [app.util.services :as sv] - [clojure.spec.alpha :as s])) + [app.util.services :as sv])) (declare ^:private send-feedback!) -(s/def ::content ::us/string) -(s/def ::from ::us/email) -(s/def ::subject ::us/string) - -(s/def ::send-user-feedback - (s/keys :req [::rpc/profile-id] - :req-un [::subject - ::content])) +(def ^:private schema:send-user-feedback + [:map {:title "send-user-feedback"} + [:subject :string] + [:content :string]]) (sv/defmethod ::send-user-feedback - {::doc/added "1.18"} + {::doc/added "1.18" + ::sm/params schema:send-user-feedback} [{:keys [::db/pool]} {:keys [::rpc/profile-id] :as params}] (when-not (contains? cf/flags :user-feedback) (ex/raise :type :restriction From 85108672bf96341c61aa775b7bb49789b36a117d Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Fri, 14 Jun 2024 08:21:56 +0200 Subject: [PATCH 344/476] :fire: Replace spec with schema on file-thumbnails RPC methods --- backend/src/app/rpc/commands/files_thumbnails.clj | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/backend/src/app/rpc/commands/files_thumbnails.clj b/backend/src/app/rpc/commands/files_thumbnails.clj index 760e3bcd3a..87b9736436 100644 --- a/backend/src/app/rpc/commands/files_thumbnails.clj +++ b/backend/src/app/rpc/commands/files_thumbnails.clj @@ -33,7 +33,6 @@ [app.util.pointer-map :as pmap] [app.util.services :as sv] [app.util.time :as dt] - [clojure.spec.alpha :as s] [cuerdas.core :as str])) ;; --- FEATURES @@ -314,13 +313,15 @@ :object-id object-id :tag tag}))) -(s/def ::delete-file-object-thumbnail - (s/keys :req [::rpc/profile-id] - :req-un [::file-id ::object-id])) +(def ^:private schema:delete-file-object-thumbnail + [:map {:title "delete-file-object-thumbnail"} + [:file-id ::sm/uuid] + [:object-id :string]]) (sv/defmethod ::delete-file-object-thumbnail {::doc/added "1.19" ::doc/module :files + ::sm/params schema:delete-file-object-thumbnail ::audit/skip true} [cfg {:keys [::rpc/profile-id file-id object-id]}] (files/check-edition-permissions! cfg profile-id file-id) From c4cf745d7728a0a15a374e043fb3fc3461c881cd Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Fri, 14 Jun 2024 08:22:14 +0200 Subject: [PATCH 345/476] :fire: Replace spec with schema on ldap RPC methods --- backend/src/app/rpc/commands/ldap.clj | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/backend/src/app/rpc/commands/ldap.clj b/backend/src/app/rpc/commands/ldap.clj index dff521500a..0829987d4d 100644 --- a/backend/src/app/rpc/commands/ldap.clj +++ b/backend/src/app/rpc/commands/ldap.clj @@ -8,7 +8,7 @@ (:require [app.auth.ldap :as ldap] [app.common.exceptions :as ex] - [app.common.spec :as us] + [app.common.schema :as sm] [app.db :as db] [app.http.session :as session] [app.loggers.audit :as-alias audit] @@ -19,27 +19,25 @@ [app.rpc.helpers :as rph] [app.setup :as-alias setup] [app.tokens :as tokens] - [app.util.services :as sv] - [clojure.spec.alpha :as s])) + [app.util.services :as sv])) ;; --- COMMAND: login-with-ldap (declare login-or-register) -(s/def ::email ::us/email) -(s/def ::password ::us/string) -(s/def ::invitation-token ::us/string) - -(s/def ::login-with-ldap - (s/keys :req-un [::email ::password] - :opt-un [::invitation-token])) +(def schema:login-with-ldap + [:map {:title "login-with-ldap"} + [:email ::sm/email] + [:password auth/schema:password] + [:invitation-token {:optional true} auth/schema:token]]) (sv/defmethod ::login-with-ldap "Performs the authentication using LDAP backend. Only works if LDAP is properly configured and enabled with `login-with-ldap` flag." {::rpc/auth false ::doc/added "1.15" - ::doc/module :auth} + ::doc/module :auth + ::sm/params schema:login-with-ldap} [{:keys [::setup/props ::ldap/provider] :as cfg} params] (when-not provider (ex/raise :type :restriction From 37fcc74ef80143ffba4a7cdf3c5de919f32d65c3 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Fri, 14 Jun 2024 08:22:25 +0200 Subject: [PATCH 346/476] :fire: Replace spec with schema on media RPC methods --- backend/src/app/rpc/commands/media.clj | 47 +++++++++++++------------- 1 file changed, 24 insertions(+), 23 deletions(-) diff --git a/backend/src/app/rpc/commands/media.clj b/backend/src/app/rpc/commands/media.clj index 08232e8990..28f96ac179 100644 --- a/backend/src/app/rpc/commands/media.clj +++ b/backend/src/app/rpc/commands/media.clj @@ -9,7 +9,7 @@ [app.common.data :as d] [app.common.exceptions :as ex] [app.common.media :as cm] - [app.common.spec :as us] + [app.common.schema :as sm] [app.common.uuid :as uuid] [app.config :as cf] [app.db :as db] @@ -25,7 +25,6 @@ [app.util.services :as sv] [app.util.time :as dt] [app.worker :as-alias wrk] - [clojure.spec.alpha :as s] [cuerdas.core :as str] [datoteka.io :as io] [promesa.exec :as px])) @@ -39,25 +38,21 @@ :quality 85 :format :jpeg}) -(s/def ::id ::us/uuid) -(s/def ::name ::us/string) -(s/def ::file-id ::us/uuid) -(s/def ::team-id ::us/uuid) - ;; --- Create File Media object (upload) (declare create-file-media-object) -(s/def ::content ::media/upload) -(s/def ::is-local ::us/boolean) - -(s/def ::upload-file-media-object - (s/keys :req [::rpc/profile-id] - :req-un [::file-id ::is-local ::name ::content] - :opt-un [::id])) +(def ^:private schema:upload-file-media-object + [:map {:title "upload-file-media-object"} + [:id {:optional true} ::sm/uuid] + [:file-id ::sm/uuid] + [:is-local :boolean] + [:name :string] + [:content ::media/upload]]) (sv/defmethod ::upload-file-media-object {::doc/added "1.17" + ::sm/params schema:upload-file-media-object ::climit/id [[:process-image/by-profile ::rpc/profile-id] [:process-image/global]]} [{:keys [::db/pool] :as cfg} {:keys [::rpc/profile-id file-id content] :as params}] @@ -176,14 +171,17 @@ (declare ^:private create-file-media-object-from-url) -(s/def ::create-file-media-object-from-url - (s/keys :req [::rpc/profile-id] - :req-un [::file-id ::is-local ::url] - :opt-un [::id ::name])) +(def ^:private schema:create-file-media-object-from-url + [:map {:title "create-file-media-object-from-url"} + [:file-id ::sm/uuid] + [:is-local :boolean] + [:url ::sm/uri] + [:id {:optional true} ::sm/uuid] + [:name {:optional true} :string]]) (sv/defmethod ::create-file-media-object-from-url {::doc/added "1.17" - ::doc/deprecated "1.19"} + ::sm/params schema:create-file-media-object-from-url} [{:keys [::db/pool] :as cfg} {:keys [::rpc/profile-id file-id] :as params}] (let [cfg (update cfg ::sto/storage media/configure-assets-storage)] (files/check-edition-permissions! pool profile-id file-id) @@ -255,12 +253,15 @@ (declare clone-file-media-object) -(s/def ::clone-file-media-object - (s/keys :req [::rpc/profile-id] - :req-un [::file-id ::is-local ::id])) +(def ^:private schema:clone-file-media-object + [:map {:title "clone-file-media-object"} + [:file-id ::sm/uuid] + [:is-local :boolean] + [:id ::sm/uuid]]) (sv/defmethod ::clone-file-media-object - {::doc/added "1.17"} + {::doc/added "1.17" + ::sm/params schema:clone-file-media-object} [{:keys [::db/pool] :as cfg} {:keys [::rpc/profile-id file-id] :as params}] (db/with-atomic [conn pool] (files/check-edition-permissions! conn profile-id file-id) From ad6a8644789d7356040e2283339ac911ff83e132 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Fri, 14 Jun 2024 08:22:36 +0200 Subject: [PATCH 347/476] :fire: Replace spec with schema on search RPC methods --- backend/src/app/rpc/commands/search.clj | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/backend/src/app/rpc/commands/search.clj b/backend/src/app/rpc/commands/search.clj index 5710156458..1a25a6dcfd 100644 --- a/backend/src/app/rpc/commands/search.clj +++ b/backend/src/app/rpc/commands/search.clj @@ -6,13 +6,12 @@ (ns app.rpc.commands.search (:require - [app.common.spec :as us] + [app.common.schema :as sm] [app.db :as db] [app.rpc :as-alias rpc] [app.rpc.commands.files :refer [resolve-public-uri]] [app.rpc.doc :as-alias doc] - [app.util.services :as sv] - [clojure.spec.alpha :as s])) + [app.util.services :as sv])) (def ^:private sql:search-files "with projects as ( @@ -65,16 +64,14 @@ (assoc :thumbnail-uri (resolve-public-uri media-id))) (dissoc row :media-id)))))) -(s/def ::team-id ::us/uuid) -(s/def ::search-files ::us/string) - -(s/def ::search-files - (s/keys :req [::rpc/profile-id] - :req-un [::team-id] - :opt-un [::search-term])) +(def ^:private schema:search-files + [:map {:title "search-files"} + [:team-id ::sm/uuid] + [:search-term {:optional true} :string]]) (sv/defmethod ::search-files {::doc/added "1.17" - ::doc/module :files} + ::doc/module :files + ::sm/params schema:search-files} [{:keys [::db/pool]} {:keys [::rpc/profile-id team-id search-term]}] (some->> search-term (search-files pool profile-id team-id))) From 05fb46a573aa6b19efb79c781c797a36498c57b4 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Mon, 17 Jun 2024 08:14:01 +0200 Subject: [PATCH 348/476] :sparkles: Accept uri instances on http client --- backend/src/app/http/client.clj | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/backend/src/app/http/client.clj b/backend/src/app/http/client.clj index 9ef4cc4b2a..4494a1bb0c 100644 --- a/backend/src/app/http/client.clj +++ b/backend/src/app/http/client.clj @@ -54,9 +54,10 @@ "A convencience toplevel function for gradual migration to a new API convention." ([cfg-or-client request] - (let [client (resolve-client cfg-or-client)] + (let [client (resolve-client cfg-or-client) + request (update request :uri str)] (send! client request {:sync? true}))) ([cfg-or-client request options] - (let [client (resolve-client cfg-or-client)] + (let [client (resolve-client cfg-or-client) + request (update request :uri str)] (send! client request (merge {:sync? true} options))))) - From 45c77f97ce8d07280b6afb579715bc0764f1dd11 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Mon, 17 Jun 2024 09:58:53 +0200 Subject: [PATCH 349/476] :paperclip: Fix code style issue not catched by the linter Comment indentantion --- backend/src/app/rpc/commands/viewer.clj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/src/app/rpc/commands/viewer.clj b/backend/src/app/rpc/commands/viewer.clj index 70d5193c16..9d15b3e8fa 100644 --- a/backend/src/app/rpc/commands/viewer.clj +++ b/backend/src/app/rpc/commands/viewer.clj @@ -98,7 +98,7 @@ (assoc ::perms perms) (assoc :profile-id profile-id))] - ;; When we have neither profile nor share, we just return a not + ;; When we have neither profile nor share, we just return a not ;; found response to the user. (when-not perms (ex/raise :type :not-found From 07217609005faeaae9322d0cc6cec8a225c54487 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Tue, 25 Jun 2024 16:48:40 +0200 Subject: [PATCH 350/476] :sparkles: Add better schema for shape export property --- common/src/app/common/types/shape/export.cljc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common/src/app/common/types/shape/export.cljc b/common/src/app/common/types/shape/export.cljc index 91b5cca24b..7adbf7574e 100644 --- a/common/src/app/common/types/shape/export.cljc +++ b/common/src/app/common/types/shape/export.cljc @@ -12,6 +12,6 @@ (sm/register! ::export [:map {:title "ShapeExport"} - [:type :keyword] + [:type [::sm/one-of export-types]] [:scale ::sm/safe-number] [:suffix :string]]) From 28c2197ba7705fef3dc80b3642fd6b68399edacb Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Thu, 20 Jun 2024 08:28:38 +0200 Subject: [PATCH 351/476] :recycle: Add string length validation to backend RPC methods fields --- backend/src/app/rpc/commands/binfile.clj | 10 ++++++---- backend/src/app/rpc/commands/comments.clj | 6 +++--- backend/src/app/rpc/commands/feedback.clj | 4 ++-- backend/src/app/rpc/commands/files.clj | 8 ++++---- backend/src/app/rpc/commands/files_create.clj | 2 +- backend/src/app/rpc/commands/files_share.clj | 4 ++-- backend/src/app/rpc/commands/files_temp.clj | 2 +- backend/src/app/rpc/commands/files_thumbnails.clj | 10 +++++----- backend/src/app/rpc/commands/files_update.clj | 2 +- backend/src/app/rpc/commands/management.clj | 4 ++-- backend/src/app/rpc/commands/media.clj | 4 ++-- backend/src/app/rpc/commands/teams.clj | 2 +- backend/src/app/rpc/commands/verify_token.clj | 2 +- 13 files changed, 31 insertions(+), 29 deletions(-) diff --git a/backend/src/app/rpc/commands/binfile.clj b/backend/src/app/rpc/commands/binfile.clj index 3f5bb931c5..6b2b69c900 100644 --- a/backend/src/app/rpc/commands/binfile.clj +++ b/backend/src/app/rpc/commands/binfile.clj @@ -30,9 +30,10 @@ ;; --- Command: export-binfile -(def ^:private schema:export-binfile +(def ^:private + schema:export-binfile [:map {:title "export-binfile"} - [:name :string] + [:name [:string {:max 250}]] [:file-id ::sm/uuid] [:include-libraries :boolean] [:embed-assets :boolean]]) @@ -74,9 +75,10 @@ {:id project-id}) result)) -(def ^:private schema:import-binfile +(def ^:private + schema:import-binfile [:map {:title "import-binfile"} - [:name :string] + [:name [:string {:max 250}]] [:project-id ::sm/uuid] [:file ::media/upload]]) diff --git a/backend/src/app/rpc/commands/comments.clj b/backend/src/app/rpc/commands/comments.clj index 4949f1a435..41645a8be3 100644 --- a/backend/src/app/rpc/commands/comments.clj +++ b/backend/src/app/rpc/commands/comments.clj @@ -292,7 +292,7 @@ [:map {:title "create-comment-thread"} [:file-id ::sm/uuid] [:position ::gpt/point] - [:content :string] + [:content [:string {:max 250}]] [:page-id ::sm/uuid] [:frame-id ::sm/uuid] [:share-id {:optional true} [:maybe ::sm/uuid]]]) @@ -418,7 +418,7 @@ schema:create-comment [:map {:title "create-comment"} [:thread-id ::sm/uuid] - [:content :string] + [:content [:string {:max 250}]] [:share-id {:optional true} [:maybe ::sm/uuid]]]) (sv/defmethod ::create-comment @@ -477,7 +477,7 @@ schema:update-comment [:map {:title "update-comment"} [:id ::sm/uuid] - [:content :string] + [:content [:string {:max 250}]] [:share-id {:optional true} [:maybe ::sm/uuid]]]) (sv/defmethod ::update-comment diff --git a/backend/src/app/rpc/commands/feedback.clj b/backend/src/app/rpc/commands/feedback.clj index 9bec88dde2..29b79a87ba 100644 --- a/backend/src/app/rpc/commands/feedback.clj +++ b/backend/src/app/rpc/commands/feedback.clj @@ -21,8 +21,8 @@ (def ^:private schema:send-user-feedback [:map {:title "send-user-feedback"} - [:subject :string] - [:content :string]]) + [:subject [:string {:max 250}]] + [:content [:string {:max 250}]]]) (sv/defmethod ::send-user-feedback {::doc/added "1.18" diff --git a/backend/src/app/rpc/commands/files.clj b/backend/src/app/rpc/commands/files.clj index b4d0e8b32e..5c4c93e7de 100644 --- a/backend/src/app/rpc/commands/files.clj +++ b/backend/src/app/rpc/commands/files.clj @@ -177,7 +177,7 @@ [:features ::cfeat/features] [:has-media-trimmed :boolean] [:comment-thread-seqn {:min 0} :int] - [:name :string] + [:name [:string {:max 250}]] [:revn {:min 0} :int] [:modified-at ::dt/instant] [:is-shared :boolean] @@ -747,19 +747,19 @@ [:map {:title "RenameFileEvent"} [:id ::sm/uuid] [:project-id ::sm/uuid] - [:name :string] + [:name [:string {:max 250}]] [:created-at ::dt/instant] [:modified-at ::dt/instant]] ::sm/params [:map {:title "RenameFileParams"} - [:name {:min 1} :string] + [:name [:string {:min 1 :max 250}]] [:id ::sm/uuid]] ::sm/result [:map {:title "SimplifiedFile"} [:id ::sm/uuid] - [:name :string] + [:name [:string {:max 250}]] [:created-at ::dt/instant] [:modified-at ::dt/instant]]} diff --git a/backend/src/app/rpc/commands/files_create.clj b/backend/src/app/rpc/commands/files_create.clj index ab386eca0b..b65efa3bf8 100644 --- a/backend/src/app/rpc/commands/files_create.clj +++ b/backend/src/app/rpc/commands/files_create.clj @@ -88,7 +88,7 @@ (def ^:private schema:create-file [:map {:title "create-file"} - [:name :string] + [:name [:string {:max 250}]] [:project-id ::sm/uuid] [:id {:optional true} ::sm/uuid] [:is-shared {:optional true} :boolean] diff --git a/backend/src/app/rpc/commands/files_share.clj b/backend/src/app/rpc/commands/files_share.clj index 752fc0e547..98132e06ec 100644 --- a/backend/src/app/rpc/commands/files_share.clj +++ b/backend/src/app/rpc/commands/files_share.clj @@ -22,8 +22,8 @@ (def ^:private schema:create-share-link [:map {:title "create-share-link"} [:file-id ::sm/uuid] - [:who-comment :string] - [:who-inspect :string] + [:who-comment [:string {:max 250}]] + [:who-inspect [:string {:max 250}]] [:pages [:set ::sm/uuid]]]) (sv/defmethod ::create-share-link diff --git a/backend/src/app/rpc/commands/files_temp.clj b/backend/src/app/rpc/commands/files_temp.clj index 4eef262145..2500260763 100644 --- a/backend/src/app/rpc/commands/files_temp.clj +++ b/backend/src/app/rpc/commands/files_temp.clj @@ -35,7 +35,7 @@ (def ^:private schema:create-temp-file [:map {:title "create-temp-file"} - [:name :string] + [:name [:string {:max 250}]] [:project-id ::sm/uuid] [:id {:optional true} ::sm/uuid] [:is-shared :boolean] diff --git a/backend/src/app/rpc/commands/files_thumbnails.clj b/backend/src/app/rpc/commands/files_thumbnails.clj index 87b9736436..7da22f8598 100644 --- a/backend/src/app/rpc/commands/files_thumbnails.clj +++ b/backend/src/app/rpc/commands/files_thumbnails.clj @@ -85,8 +85,8 @@ ::doc/module :files ::sm/params [:map {:title "get-file-object-thumbnails"} [:file-id ::sm/uuid] - [:tag {:optional true} :string]] - ::sm/result [:map-of :string :string]} + [:tag {:optional true} [:string {:max 50}]]] + ::sm/result [:map-of [:string {:max 250}] [:string {:max 250}]]} [{:keys [::db/pool] :as cfg} {:keys [::rpc/profile-id file-id tag] :as params}] (dm/with-open [conn (db/open pool)] (files/check-read-permissions! conn profile-id file-id) @@ -275,9 +275,9 @@ schema:create-file-object-thumbnail [:map {:title "create-file-object-thumbnail"} [:file-id ::sm/uuid] - [:object-id :string] + [:object-id [:string {:max 250}]] [:media ::media/upload] - [:tag {:optional true} :string]]) + [:tag {:optional true} [:string {:max 50}]]]) (sv/defmethod ::create-file-object-thumbnail {::doc/added "1.19" @@ -316,7 +316,7 @@ (def ^:private schema:delete-file-object-thumbnail [:map {:title "delete-file-object-thumbnail"} [:file-id ::sm/uuid] - [:object-id :string]]) + [:object-id [:string {:max 250}]]]) (sv/defmethod ::delete-file-object-thumbnail {::doc/added "1.19" diff --git a/backend/src/app/rpc/commands/files_update.clj b/backend/src/app/rpc/commands/files_update.clj index b071b3f1a3..f46764129a 100644 --- a/backend/src/app/rpc/commands/files_update.clj +++ b/backend/src/app/rpc/commands/files_update.clj @@ -51,7 +51,7 @@ [:vector [:map [:changes [:vector ::cpc/change]] [:hint-origin {:optional true} :keyword] - [:hint-events {:optional true} [:vector :string]]]]] + [:hint-events {:optional true} [:vector [:string {:max 250}]]]]]] [:skip-validate {:optional true} :boolean]]) (def ^:private diff --git a/backend/src/app/rpc/commands/management.clj b/backend/src/app/rpc/commands/management.clj index bf7883175c..afe3daad89 100644 --- a/backend/src/app/rpc/commands/management.clj +++ b/backend/src/app/rpc/commands/management.clj @@ -91,7 +91,7 @@ (sm/define [:map {:title "duplicate-file"} [:file-id ::sm/uuid] - [:name {:optional true} :string]])) + [:name {:optional true} [:string {:max 250}]]])) (sv/defmethod ::duplicate-file "Duplicate a single file in the same team." @@ -153,7 +153,7 @@ (sm/define [:map {:title "duplicate-project"} [:project-id ::sm/uuid] - [:name {:optional true} :string]])) + [:name {:optional true} [:string {:max 250}]]])) (sv/defmethod ::duplicate-project "Duplicate an entire project with all the files" diff --git a/backend/src/app/rpc/commands/media.clj b/backend/src/app/rpc/commands/media.clj index 28f96ac179..992c5d1da9 100644 --- a/backend/src/app/rpc/commands/media.clj +++ b/backend/src/app/rpc/commands/media.clj @@ -47,7 +47,7 @@ [:id {:optional true} ::sm/uuid] [:file-id ::sm/uuid] [:is-local :boolean] - [:name :string] + [:name [:string {:max 250}]] [:content ::media/upload]]) (sv/defmethod ::upload-file-media-object @@ -177,7 +177,7 @@ [:is-local :boolean] [:url ::sm/uri] [:id {:optional true} ::sm/uuid] - [:name {:optional true} :string]]) + [:name {:optional true} [:string {:max 250}]]]) (sv/defmethod ::create-file-media-object-from-url {::doc/added "1.17" diff --git a/backend/src/app/rpc/commands/teams.clj b/backend/src/app/rpc/commands/teams.clj index f30bc8870e..42c8ab76fb 100644 --- a/backend/src/app/rpc/commands/teams.clj +++ b/backend/src/app/rpc/commands/teams.clj @@ -873,7 +873,7 @@ (def ^:private schema:create-team-with-invitations [:map {:title "create-team-with-invitations"} - [:name :string] + [:name [:string {:max 250}]] [:features {:optional true} ::cfeat/features] [:id {:optional true} ::sm/uuid] [:emails ::sm/set-of-emails] diff --git a/backend/src/app/rpc/commands/verify_token.clj b/backend/src/app/rpc/commands/verify_token.clj index de39fed798..997ba46a87 100644 --- a/backend/src/app/rpc/commands/verify_token.clj +++ b/backend/src/app/rpc/commands/verify_token.clj @@ -29,7 +29,7 @@ (def ^:private schema:verify-token [:map {:title "verify-token"} - [:token :string]]) + [:token [:string {:max 1000}]]]) (sv/defmethod ::verify-token {::rpc/auth false From f344eee778a661854b4b2ff29ddc7b7712c47193 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Thu, 20 Jun 2024 15:29:50 +0200 Subject: [PATCH 352/476] :bug: Fix backend test initialization code --- backend/test/backend_tests/helpers.clj | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/backend/test/backend_tests/helpers.clj b/backend/test/backend_tests/helpers.clj index 9f754c2433..5dc4f24d7c 100644 --- a/backend/test/backend_tests/helpers.clj +++ b/backend/test/backend_tests/helpers.clj @@ -104,10 +104,10 @@ (dissoc :app.srepl/server :app.http/server :app.http/router - :app.auth.oidc/google-provider - :app.auth.oidc/gitlab-provider - :app.auth.oidc/github-provider - :app.auth.oidc/generic-provider + :app.auth.oidc.providers/google + :app.auth.oidc.providers/gitlab + :app.auth.oidc.providers/github + :app.auth.oidc.providers/generic :app.setup/templates :app.auth.oidc/routes :app.worker/monitor From 1ca751bc424a51cd96379b706cc6e4c11a859bf9 Mon Sep 17 00:00:00 2001 From: Eva Marco Date: Thu, 4 Jul 2024 12:41:48 +0200 Subject: [PATCH 353/476] :bug: Fix workspace visual test for assets modal --- frontend/playwright/data/workspace/audit-event-empty.json | 1 + frontend/playwright/ui/visual-specs/workspace.spec.js | 5 +++++ 2 files changed, 6 insertions(+) create mode 100644 frontend/playwright/data/workspace/audit-event-empty.json diff --git a/frontend/playwright/data/workspace/audit-event-empty.json b/frontend/playwright/data/workspace/audit-event-empty.json new file mode 100644 index 0000000000..9e26dfeeb6 --- /dev/null +++ b/frontend/playwright/data/workspace/audit-event-empty.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/frontend/playwright/ui/visual-specs/workspace.spec.js b/frontend/playwright/ui/visual-specs/workspace.spec.js index 69cc5a34d9..42abbcb477 100644 --- a/frontend/playwright/ui/visual-specs/workspace.spec.js +++ b/frontend/playwright/ui/visual-specs/workspace.spec.js @@ -83,6 +83,11 @@ test.describe("Assets tab", () => { "workspace/get-team-shared-libraries-non-empty.json", ); + await workspace.mockRPC( + "push-audit-events", + "workspace/audit-event-empty.json", + ); + await workspace.goToWorkspace(); await workspace.clickAssets(); await workspace.openLibrariesModal(); From 203a39f07cedda190b25b7eae157100bf7efb466 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bel=C3=A9n=20Albeza?= Date: Thu, 4 Jul 2024 10:45:45 +0200 Subject: [PATCH 354/476] :recycle: Rename IconGrid to StoryGrid (storybook helper component) --- frontend/src/app/main/ui/ds.cljs | 3 ++- frontend/src/app/main/ui/ds/foundations/icon.stories.jsx | 6 +++--- frontend/src/app/main/ui/ds/foundations/raw_svg.stories.jsx | 6 +++--- frontend/src/app/main/ui/ds/storybook.cljs | 4 ++-- frontend/src/app/main/ui/ds/storybook.scss | 2 +- 5 files changed, 11 insertions(+), 10 deletions(-) diff --git a/frontend/src/app/main/ui/ds.cljs b/frontend/src/app/main/ui/ds.cljs index 53eb828977..10a84e5b8b 100644 --- a/frontend/src/app/main/ui/ds.cljs +++ b/frontend/src/app/main/ui/ds.cljs @@ -16,4 +16,5 @@ :RawSvg raw-svg* ;; meta / misc :meta #js {:icons icon-list :svgs raw-svg-list} - :storybook #js {:StoryWrapper sb/story-wrapper* :IconGrid sb/icon-grid*}}) + :storybook #js {:StoryGrid sb/story-grid* + :StoryWrapper sb/story-wrapper*}}) diff --git a/frontend/src/app/main/ui/ds/foundations/icon.stories.jsx b/frontend/src/app/main/ui/ds/foundations/icon.stories.jsx index d143da7c3a..db0b2c23c7 100644 --- a/frontend/src/app/main/ui/ds/foundations/icon.stories.jsx +++ b/frontend/src/app/main/ui/ds/foundations/icon.stories.jsx @@ -2,7 +2,7 @@ import * as React from "react"; import Components from "@target/components"; const { Icon } = Components; -const { StoryWrapper, IconGrid } = Components.storybook; +const { StoryWrapper, StoryGrid } = Components.storybook; const { icons } = Components.meta; export default { @@ -19,13 +19,13 @@ export const AllIcons = {

    All Icons

    Hover on an icon to see its ID

    - + {iconList.map((iconId) => (
    ))} -
    + ), }; diff --git a/frontend/src/app/main/ui/ds/foundations/raw_svg.stories.jsx b/frontend/src/app/main/ui/ds/foundations/raw_svg.stories.jsx index 6f6beb37b3..1717a64d06 100644 --- a/frontend/src/app/main/ui/ds/foundations/raw_svg.stories.jsx +++ b/frontend/src/app/main/ui/ds/foundations/raw_svg.stories.jsx @@ -2,7 +2,7 @@ import * as React from "react"; import Components from "@target/components"; const { RawSvg } = Components; -const { StoryWrapper, IconGrid } = Components.storybook; +const { StoryWrapper, StoryGrid } = Components.storybook; const { svgs } = Components.meta; export default { @@ -20,13 +20,13 @@ export const AllAssets = {

    All assets

    Hover on a asset to see its id.

    - + {assetList.map(x => (
    ))} -
    + ), parameters: { diff --git a/frontend/src/app/main/ui/ds/storybook.cljs b/frontend/src/app/main/ui/ds/storybook.cljs index 846b0b0e50..3734f84104 100644 --- a/frontend/src/app/main/ui/ds/storybook.cljs +++ b/frontend/src/app/main/ui/ds/storybook.cljs @@ -22,8 +22,8 @@ [:section {:class "default"} children] [:section {:class "light"} children]])]) -(mf/defc icon-grid* +(mf/defc story-grid* {::mf/props :obj} [{:keys [children size]}] - [:article {:class (stl/css :icon-grid) + [:article {:class (stl/css :story-grid) :style (when (some? size) #js {"--component-grid-size" (dm/str size "px")})} children]) \ No newline at end of file diff --git a/frontend/src/app/main/ui/ds/storybook.scss b/frontend/src/app/main/ui/ds/storybook.scss index 84076c8f89..edb36fdbb5 100644 --- a/frontend/src/app/main/ui/ds/storybook.scss +++ b/frontend/src/app/main/ui/ds/storybook.scss @@ -5,7 +5,7 @@ row-gap: 1rem; } -.icon-grid { +.story-grid { display: grid; grid-template-columns: repeat(auto-fit, var(--component-grid-size, 16px)); gap: 1rem; From 0a83306015b59affb67e55f3fcdf3acc419f1e3c Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Thu, 4 Jul 2024 12:54:38 +0200 Subject: [PATCH 355/476] :arrow_up: Update plugins runtime --- frontend/resources/plugins-runtime/index.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/frontend/resources/plugins-runtime/index.js b/frontend/resources/plugins-runtime/index.js index 1d75c17b15..8b622aa539 100644 --- a/frontend/resources/plugins-runtime/index.js +++ b/frontend/resources/plugins-runtime/index.js @@ -7776,6 +7776,9 @@ function Ml(t, e) { get selection() { return o("content:read"), t.selection; }, + set selection(i) { + o("content:read"), t.selection = i; + }, get viewport() { return t.viewport; }, From 5309da2eeef7376812226eed1fd007f439d4711c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bel=C3=A9n=20Albeza?= Date: Thu, 4 Jul 2024 11:49:00 +0200 Subject: [PATCH 356/476] :paperclip: Add storybook helper components and improve current stories --- frontend/src/app/main/ui/ds.cljs | 2 ++ .../main/ui/ds/foundations/icon.stories.jsx | 24 ++++++++++----- .../ui/ds/foundations/raw_svg.stories.jsx | 29 ++++++++++--------- frontend/src/app/main/ui/ds/storybook.cljs | 24 +++++++++++++-- frontend/src/app/main/ui/ds/storybook.scss | 12 +++++--- 5 files changed, 64 insertions(+), 27 deletions(-) diff --git a/frontend/src/app/main/ui/ds.cljs b/frontend/src/app/main/ui/ds.cljs index 10a84e5b8b..805f504ffc 100644 --- a/frontend/src/app/main/ui/ds.cljs +++ b/frontend/src/app/main/ui/ds.cljs @@ -17,4 +17,6 @@ ;; meta / misc :meta #js {:icons icon-list :svgs raw-svg-list} :storybook #js {:StoryGrid sb/story-grid* + :StoryGridCell sb/story-grid-cell* + :StoryHeader sb/story-header* :StoryWrapper sb/story-wrapper*}}) diff --git a/frontend/src/app/main/ui/ds/foundations/icon.stories.jsx b/frontend/src/app/main/ui/ds/foundations/icon.stories.jsx index db0b2c23c7..52bb1076c6 100644 --- a/frontend/src/app/main/ui/ds/foundations/icon.stories.jsx +++ b/frontend/src/app/main/ui/ds/foundations/icon.stories.jsx @@ -2,7 +2,8 @@ import * as React from "react"; import Components from "@target/components"; const { Icon } = Components; -const { StoryWrapper, StoryGrid } = Components.storybook; +const { StoryWrapper, StoryGrid, StoryGridCell, StoryHeader } = + Components.storybook; const { icons } = Components.meta; export default { @@ -17,23 +18,32 @@ const iconList = Object.entries(icons) export const AllIcons = { render: () => ( -

    All Icons

    -

    Hover on an icon to see its ID

    + +

    All Icons

    +

    Hover on an icon to see its ID

    +
    {iconList.map((iconId) => ( -
    + -
    + ))}
    ), + parameters: { + backgrounds: { disable: true }, + }, }; export const Default = { render: () => ( - + ), }; @@ -41,7 +51,7 @@ export const Default = { export const Small = { render: () => ( - + ), }; diff --git a/frontend/src/app/main/ui/ds/foundations/raw_svg.stories.jsx b/frontend/src/app/main/ui/ds/foundations/raw_svg.stories.jsx index 1717a64d06..b73e6b56ec 100644 --- a/frontend/src/app/main/ui/ds/foundations/raw_svg.stories.jsx +++ b/frontend/src/app/main/ui/ds/foundations/raw_svg.stories.jsx @@ -2,7 +2,8 @@ import * as React from "react"; import Components from "@target/components"; const { RawSvg } = Components; -const { StoryWrapper, StoryGrid } = Components.storybook; +const { StoryWrapper, StoryGrid, StoryGridCell, StoryHeader } = + Components.storybook; const { svgs } = Components.meta; export default { @@ -16,28 +17,30 @@ const assetList = Object.entries(svgs) export const AllAssets = { render: () => ( - -

    All assets

    -

    Hover on a asset to see its id.

    + + +

    All assets

    +

    Hover on a asset to see its id.

    +
    - {assetList.map(x => ( -
    - -
    + {assetList.map((x) => ( + + + ))}
    ), parameters: { - backgrounds: { default: "debug" } - } -} + backgrounds: { values: [{ name: "debug", value: "#ccc" }] }, + }, +}; export const Default = { render: () => ( - + ), -} +}; diff --git a/frontend/src/app/main/ui/ds/storybook.cljs b/frontend/src/app/main/ui/ds/storybook.cljs index 3734f84104..322dbe8220 100644 --- a/frontend/src/app/main/ui/ds/storybook.cljs +++ b/frontend/src/app/main/ui/ds/storybook.cljs @@ -24,6 +24,24 @@ (mf/defc story-grid* {::mf/props :obj} - [{:keys [children size]}] - [:article {:class (stl/css :story-grid) - :style (when (some? size) #js {"--component-grid-size" (dm/str size "px")})} children]) \ No newline at end of file + [{:keys [children size style] :rest other}] + (let [class (stl/css :story-grid) + size (or size 16) + style (or style {}) + style (mf/spread style :--component-grid-size (dm/str size "px")) + props (mf/spread-props other {:class class :style style})] + [:> "article" props children])) + +(mf/defc story-grid-cell* + {::mf/props :obj} + [{:keys [children] :rest other}] + (let [class (stl/css :story-grid-cell) + props (mf/spread-props other {:class class})] + [:> "article" props children])) + +(mf/defc story-header* + {::mf/props :obj} + [{:keys [children] :rest other}] + (let [class (stl/css :story-header) + props (mf/spread-props other {:class class})] + [:> "header" props children])) diff --git a/frontend/src/app/main/ui/ds/storybook.scss b/frontend/src/app/main/ui/ds/storybook.scss index edb36fdbb5..6d09f01677 100644 --- a/frontend/src/app/main/ui/ds/storybook.scss +++ b/frontend/src/app/main/ui/ds/storybook.scss @@ -10,8 +10,12 @@ grid-template-columns: repeat(auto-fit, var(--component-grid-size, 16px)); gap: 1rem; color: var(--color-foreground-primary); - - & > * { - max-width: 100%; - } +} + +.story-grid-cell { + max-width: 100%; +} + +.story-header { + color: var(--color-foreground-primary); } From 5d90c463a3a4c2a5c6021931ad840529cdd7ec19 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bel=C3=A9n=20Albeza?= Date: Thu, 4 Jul 2024 14:48:57 +0200 Subject: [PATCH 357/476] :books: Add docs for RawSvg component --- .../app/main/ui/ds/foundations/raw_svg.mdx | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 frontend/src/app/main/ui/ds/foundations/raw_svg.mdx diff --git a/frontend/src/app/main/ui/ds/foundations/raw_svg.mdx b/frontend/src/app/main/ui/ds/foundations/raw_svg.mdx new file mode 100644 index 0000000000..0377ce51b7 --- /dev/null +++ b/frontend/src/app/main/ui/ds/foundations/raw_svg.mdx @@ -0,0 +1,28 @@ +import { Canvas, Meta } from "@storybook/blocks"; +import * as RawSvgStories from "./raw_svg.stories"; + + + +# SVG Assets + +## Technical notes + +There are some SVG assets that are not icons or cursors, and that are mostly +meant to be used as is (although depending on the context, some will be required +to be used with a specific color or size). + +The assets are located in the `frontend/resources/images/assets` folder. + +### Using asset IDs + +For convenience, asset IDs are available in the component namespace. + +```clj +(ns app.main.ui.foo + (:require + [app.main.ui.ds.foundations.raw-svg :as svg])) +``` + +```clj +[:> svg/svg-asset* {:asset svg/logo}] +``` From 53d3b2abbc6a6df69558c1b29e8d28464babb1d6 Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Thu, 4 Jul 2024 15:05:28 +0200 Subject: [PATCH 358/476] :sparkles: Add events for plugins --- .../app/main/data/workspace/shortcuts.cljs | 7 ++++-- .../src/app/main/ui/workspace/main_menu.cljs | 20 ++++++++++++---- .../src/app/main/ui/workspace/plugins.cljs | 24 +++++++++++++++++-- .../app/main/ui/workspace/top_toolbar.cljs | 5 +++- 4 files changed, 47 insertions(+), 9 deletions(-) diff --git a/frontend/src/app/main/data/workspace/shortcuts.cljs b/frontend/src/app/main/data/workspace/shortcuts.cljs index bd0071602e..87346de670 100644 --- a/frontend/src/app/main/data/workspace/shortcuts.cljs +++ b/frontend/src/app/main/data/workspace/shortcuts.cljs @@ -27,7 +27,8 @@ [app.main.refs :as refs] [app.main.store :as st] [app.main.ui.hooks.resize :as r] - [app.util.dom :as dom])) + [app.util.dom :as dom] + [potok.v2.core :as ptk])) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Shortcuts @@ -563,7 +564,9 @@ :command (ds/c-mod "alt+p") :subsections [:basics] :fn #(when (features/active-feature? @st/state "plugins/runtime") - (st/emit! (modal/show :plugin-management {})))}}) + (st/emit! + (ptk/event ::ev/event {::ev/name "open-plugins-manager" ::ev/origin "workspace:shortcuts"}) + (modal/show :plugin-management {})))}}) (def debug-shortcuts ;; PREVIEW diff --git a/frontend/src/app/main/ui/workspace/main_menu.cljs b/frontend/src/app/main/ui/workspace/main_menu.cljs index 135cdc1b59..ea0fc54f41 100644 --- a/frontend/src/app/main/ui/workspace/main_menu.cljs +++ b/frontend/src/app/main/ui/workspace/main_menu.cljs @@ -630,13 +630,23 @@ (when (d/not-empty? plugins) [:div {:class (stl/css :separator)}]) - (for [[idx {:keys [name] :as manifest}] (d/enumerate plugins)] + (for [[idx {:keys [name host] :as manifest}] (d/enumerate plugins)] [:> dropdown-menu-item* {:key (dm/str "plugins-menu-" idx) - :on-click #(uwp/open-plugin! manifest) + :on-click #(do + (st/emit! (ptk/event ::ev/event {::ev/name "start-plugin" + ::ev/origin "workspace:menu" + :name name + :host host})) + (uwp/open-plugin! manifest)) :class (stl/css :submenu-item) :on-key-down (fn [event] (when (kbd/enter? event) - #(uwp/open-plugin! manifest)))} + #(do + (st/emit! (ptk/event ::ev/event {::ev/name "start-plugin" + ::ev/origin "workspace:menu" + :name name + :host host})) + (uwp/open-plugin! manifest))))} [:span {:class (stl/css :item-name)} name]])]))) (mf/defc menu @@ -699,7 +709,9 @@ (dom/stop-propagation event) (reset! show-menu* false) (reset! sub-menu* nil) - (st/emit! (modal/show :plugin-management {}))))] + (st/emit! + (ptk/event ::ev/event {::ev/name "open-plugins-manager" ::ev/origin "workspace:menu"}) + (modal/show :plugin-management {}))))] [:* diff --git a/frontend/src/app/main/ui/workspace/plugins.cljs b/frontend/src/app/main/ui/workspace/plugins.cljs index 53c41282a6..7a71cf4a00 100644 --- a/frontend/src/app/main/ui/workspace/plugins.cljs +++ b/frontend/src/app/main/ui/workspace/plugins.cljs @@ -10,6 +10,7 @@ [app.common.data :as d] [app.common.data.macros :as dm] [app.config :as cf] + [app.main.data.events :as ev] [app.main.data.modal :as modal] [app.main.store :as st] [app.main.ui.components.search-bar :refer [search-bar]] @@ -21,6 +22,8 @@ [app.util.http :as http] [app.util.i18n :as i18n :refer [tr]] [beicon.v2.core :as rx] + [cuerdas.core :as str] + [potok.v2.core :as ptk] [rumext.v2 :as mf])) (def ^:private close-icon @@ -111,6 +114,7 @@ (rx/subs! (fn [body] (let [plugin (plugins/parser-manifest plugin-url body)] + (st/emit! (ptk/event ::ev/event {::ev/name "install-plugin" :name (:name plugin) :url plugin-url})) (modal/show! :plugin-permissions {:plugin plugin @@ -126,6 +130,10 @@ handle-open-plugin (mf/use-callback (fn [manifest] + (st/emit! (ptk/event ::ev/event {::ev/name "start-plugin" + ::ev/origin "workspace:plugins" + :name (:name manifest) + :host (:host manifest)})) (open-plugin! manifest) (modal/hide!))) @@ -134,6 +142,9 @@ (mf/deps plugins-state) (fn [plugin-index] (let [plugin (nth @plugins/pluginsdb plugin-index)] + (st/emit! (ptk/event ::ev/event {::ev/name "remove-plugin" + :name (:name plugin) + :host (:host plugin)})) (plugins/remove-plugin! plugin) (reset! plugins-state* @plugins/pluginsdb))))] @@ -162,7 +173,10 @@ [:div {:class (stl/css :plugins-empty)} [:div {:class (stl/css :plugins-empty-logo)} i/puzzle] [:div {:class (stl/css :plugins-empty-text)} (tr "workspace.plugins.empty-plugins")] - [:a {:class (stl/css :plugins-link) :href cf/plugins-list-uri :target "_blank"} + [:a {:class (stl/css :plugins-link) + :href cf/plugins-list-uri + :target "_blank" + :on-click #(st/emit! (ptk/event ::ev/event {::ev/name "open-plugins-list"}))} (tr "workspace.plugins.plugin-list-link") i/external-link]] [:* @@ -182,7 +196,7 @@ ::mf/register-as :plugin-permissions} [{:keys [plugin on-accept]}] - (let [{:keys [permissions]} plugin + (let [{:keys [host permissions]} plugin permissions (set permissions) handle-accept-dialog @@ -190,12 +204,18 @@ (fn [event] (dom/prevent-default event) (st/emit! (modal/hide)) + (ptk/event ::ev/event {::ev/name "allow-plugin-permissions" + :host host + :permissions (->> permissions (str/join ", "))}) (on-accept))) handle-close-dialog (mf/use-callback (fn [event] (dom/prevent-default event) + (ptk/event ::ev/event {::ev/name "reject-plugin-permissions" + :host host + :permissions (->> permissions (str/join ", "))}) (st/emit! (modal/hide))))] [:div {:class (stl/css :modal-overlay)} diff --git a/frontend/src/app/main/ui/workspace/top_toolbar.cljs b/frontend/src/app/main/ui/workspace/top_toolbar.cljs index dfbb3fe1ae..82e3444452 100644 --- a/frontend/src/app/main/ui/workspace/top_toolbar.cljs +++ b/frontend/src/app/main/ui/workspace/top_toolbar.cljs @@ -27,6 +27,7 @@ [app.util.i18n :as i18n :refer [tr]] [app.util.timers :as ts] [okulary.core :as l] + [potok.v2.core :as ptk] [rumext.v2 :as mf])) (mf/defc image-upload @@ -200,7 +201,9 @@ {:title (tr "workspace.toolbar.plugins" (sc/get-tooltip :plugins)) :aria-label (tr "workspace.toolbar.plugins" (sc/get-tooltip :plugins)) :class (stl/css :main-toolbar-options-button) - :on-click #(modal/show! :plugin-management {}) + :on-click #(st/emit! + (ptk/event ::ev/event {::ev/name "open-plugins-manager" ::ev/origin "workspace:toolbar"}) + (modal/show :plugin-management {})) :data-tool "plugins" :data-testid "plugins-btn"} i/puzzle]]) From c2564eaf6505546398240ed0d1115973f64d3703 Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Thu, 4 Jul 2024 15:16:58 +0200 Subject: [PATCH 359/476] :sparkles: Change spec location --- common/src/app/common/schema.cljc | 4 ---- common/src/app/common/types/color.cljc | 3 ++- common/src/app/common/types/container.cljc | 3 ++- common/src/app/common/types/file.cljc | 3 ++- common/src/app/common/types/page.cljc | 3 ++- common/src/app/common/types/plugins.cljc | 16 ++++++++++++++++ common/src/app/common/types/shape.cljc | 3 ++- common/src/app/common/types/typography.cljc | 3 ++- 8 files changed, 28 insertions(+), 10 deletions(-) create mode 100644 common/src/app/common/types/plugins.cljc diff --git a/common/src/app/common/schema.cljc b/common/src/app/common/schema.cljc index 425525ca30..fcb516c3c0 100644 --- a/common/src/app/common/schema.cljc +++ b/common/src/app/common/schema.cljc @@ -907,10 +907,6 @@ ::oapi/format "password"}}) -;; FIXME: this should not be here -(define! ::plugin-data - [:map-of {:gen/max 5} :string :string]) - ;; ---- PREDICATES (def valid-safe-number? diff --git a/common/src/app/common/types/color.cljc b/common/src/app/common/types/color.cljc index dea0ee6fc1..aabb2b3ae9 100644 --- a/common/src/app/common/types/color.cljc +++ b/common/src/app/common/types/color.cljc @@ -14,6 +14,7 @@ [app.common.types.color.generic :as-alias color-generic] [app.common.types.color.gradient :as-alias color-gradient] [app.common.types.color.gradient.stop :as-alias color-gradient-stop] + [app.common.types.plugins :as ctpg] [app.common.uuid :as uuid] [clojure.test.check.generators :as tgen] [cuerdas.core :as str])) @@ -88,7 +89,7 @@ [:gradient {:optional true} [:maybe ::gradient]] [:image {:optional true} [:maybe ::image-color]] [:plugin-data {:optional true} - [:map-of {:gen/max 5} :keyword ::sm/plugin-data]]] + [:map-of {:gen/max 5} :keyword ::ctpg/plugin-data]]] [::sm/contains-any {:strict true} [:color :gradient :image]]]) (sm/define! ::recent-color diff --git a/common/src/app/common/types/container.cljc b/common/src/app/common/types/container.cljc index 0313870b66..8c62801d4d 100644 --- a/common/src/app/common/types/container.cljc +++ b/common/src/app/common/types/container.cljc @@ -15,6 +15,7 @@ [app.common.types.component :as ctk] [app.common.types.components-list :as ctkl] [app.common.types.pages-list :as ctpl] + [app.common.types.plugins :as ctpg] [app.common.types.shape-tree :as ctst] [app.common.types.shape.layout :as ctl] [app.common.uuid :as uuid])) @@ -37,7 +38,7 @@ [:objects {:optional true} [:map-of {:gen/max 10} ::sm/uuid :map]] [:plugin-data {:optional true} - [:map-of {:gen/max 5} :keyword ::sm/plugin-data]]]) + [:map-of {:gen/max 5} :keyword ::ctpg/plugin-data]]]) (def check-container! (sm/check-fn ::container)) diff --git a/common/src/app/common/types/file.cljc b/common/src/app/common/types/file.cljc index c8c7fbe432..4dcd6905e3 100644 --- a/common/src/app/common/types/file.cljc +++ b/common/src/app/common/types/file.cljc @@ -24,6 +24,7 @@ [app.common.types.container :as ctn] [app.common.types.page :as ctp] [app.common.types.pages-list :as ctpl] + [app.common.types.plugins :as ctpg] [app.common.types.shape-tree :as ctst] [app.common.types.typographies-list :as ctyl] [app.common.types.typography :as cty] @@ -59,7 +60,7 @@ [:media {:optional true} [:map-of {:gen/max 5} ::sm/uuid ::media-object]] [:plugin-data {:optional true} - [:map-of {:gen/max 5} :keyword ::sm/plugin-data]]]) + [:map-of {:gen/max 5} :keyword ::ctpg/plugin-data]]]) (def check-file-data! (sm/check-fn ::data)) diff --git a/common/src/app/common/types/page.cljc b/common/src/app/common/types/page.cljc index 3e31540dbc..45ab722b10 100644 --- a/common/src/app/common/types/page.cljc +++ b/common/src/app/common/types/page.cljc @@ -10,6 +10,7 @@ [app.common.schema :as sm] [app.common.types.color :as-alias ctc] [app.common.types.grid :as ctg] + [app.common.types.plugins :as ctpg] [app.common.types.shape :as cts] [app.common.uuid :as uuid])) @@ -45,7 +46,7 @@ [:guides {:optional true} [:map-of {:gen/max 2} ::sm/uuid ::guide]] [:plugin-data {:optional true} - [:map-of {:gen/max 5} :keyword ::sm/plugin-data]]]]]) + [:map-of {:gen/max 5} :keyword ::ctpg/plugin-data]]]]]) (def check-page-guide! (sm/check-fn ::guide)) diff --git a/common/src/app/common/types/plugins.cljc b/common/src/app/common/types/plugins.cljc new file mode 100644 index 0000000000..82affb339f --- /dev/null +++ b/common/src/app/common/types/plugins.cljc @@ -0,0 +1,16 @@ +;; This Source Code Form is subject to the terms of the Mozilla Public +;; License, v. 2.0. If a copy of the MPL was not distributed with this +;; file, You can obtain one at http://mozilla.org/MPL/2.0/. +;; +;; Copyright (c) KALEIDOS INC + +(ns app.common.types.plugins + (:require + [app.common.schema :as sm])) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; SCHEMAS +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +(sm/define! ::plugin-data + [:map-of {:gen/max 5} :string :string]) diff --git a/common/src/app/common/types/shape.cljc b/common/src/app/common/types/shape.cljc index e22353e750..38e172d825 100644 --- a/common/src/app/common/types/shape.cljc +++ b/common/src/app/common/types/shape.cljc @@ -20,6 +20,7 @@ [app.common.transit :as t] [app.common.types.color :as ctc] [app.common.types.grid :as ctg] + [app.common.types.plugins :as ctpg] [app.common.types.shape.attrs :refer [default-color]] [app.common.types.shape.blur :as ctsb] [app.common.types.shape.export :as ctse] @@ -188,7 +189,7 @@ [:grow-type {:optional true} [::sm/one-of #{:auto-width :auto-height :fixed}]] [:plugin-data {:optional true} - [:map-of {:gen/max 5} :keyword ::sm/plugin-data]]]) + [:map-of {:gen/max 5} :keyword ::ctpg/plugin-data]]]) (sm/define! ::group-attrs [:map {:title "GroupAttrs"} diff --git a/common/src/app/common/types/typography.cljc b/common/src/app/common/types/typography.cljc index 2e5a08b93a..02e7fc6f6c 100644 --- a/common/src/app/common/types/typography.cljc +++ b/common/src/app/common/types/typography.cljc @@ -9,6 +9,7 @@ [app.common.data :as d] [app.common.schema :as sm] [app.common.text :as txt] + [app.common.types.plugins :as ctpg] [app.common.uuid :as uuid])) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @@ -31,7 +32,7 @@ [:modified-at {:optional true} ::sm/inst] [:path {:optional true} [:maybe :string]] [:plugin-data {:optional true} - [:map-of {:gen/max 5} :keyword ::sm/plugin-data]]]) + [:map-of {:gen/max 5} :keyword ::ctpg/plugin-data]]]) (def check-typography! (sm/check-fn ::typography)) From 3a34eb1357ca38058b2cfbade095fbbb8d2882b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bel=C3=A9n=20Albeza?= Date: Thu, 4 Jul 2024 15:45:50 +0200 Subject: [PATCH 360/476] :bug: Fix flakiness of visual workspace test (assets tab) --- frontend/playwright/ui/pages/WorkspacePage.js | 1 + frontend/playwright/ui/visual-specs/workspace.spec.js | 7 +++++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/frontend/playwright/ui/pages/WorkspacePage.js b/frontend/playwright/ui/pages/WorkspacePage.js index 76f0c05341..7e5bf6b36f 100644 --- a/frontend/playwright/ui/pages/WorkspacePage.js +++ b/frontend/playwright/ui/pages/WorkspacePage.js @@ -202,6 +202,7 @@ export class WorkspacePage extends BaseWebSocketPage { async openLibrariesModal(clickOptions = {}) { await this.sidebar.getByText("Libraries").click(clickOptions); + await expect(this.librariesModal).toBeVisible(); } async clickLibrary(name, clickOptions = {}) { diff --git a/frontend/playwright/ui/visual-specs/workspace.spec.js b/frontend/playwright/ui/visual-specs/workspace.spec.js index 42abbcb477..e594ea343f 100644 --- a/frontend/playwright/ui/visual-specs/workspace.spec.js +++ b/frontend/playwright/ui/visual-specs/workspace.spec.js @@ -91,11 +91,14 @@ test.describe("Assets tab", () => { await workspace.goToWorkspace(); await workspace.clickAssets(); await workspace.openLibrariesModal(); - await expect(workspace.page).toHaveScreenshot(); await workspace.clickLibrary("Testing library 1"); - + await expect( + workspace.librariesModal.getByText( + "There are no Shared Libraries available", + ), + ).toBeVisible(); await expect(workspace.page).toHaveScreenshot(); }); From aded9f1a369a0277cfeb0d9010c704c37a068b91 Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Thu, 4 Jul 2024 15:54:28 +0200 Subject: [PATCH 361/476] :bug: Fix problem when creating SVG images --- frontend/src/app/main/data/workspace/media.cljs | 3 ++- frontend/src/app/main/data/workspace/svg_upload.cljs | 5 +++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/frontend/src/app/main/data/workspace/media.cljs b/frontend/src/app/main/data/workspace/media.cljs index d97d0b8035..b3f5d48ec6 100644 --- a/frontend/src/app/main/data/workspace/media.cljs +++ b/frontend/src/app/main/data/workspace/media.cljs @@ -467,4 +467,5 @@ (watch [_ _ _] (->> (svg->clj [name svg-string]) (rx/take 1) - (rx/map #(svg/add-svg-shapes id % position {:change-selection? false})))))) + (rx/map #(svg/add-svg-shapes id % position {:ignore-selection? true + :change-selection? false})))))) diff --git a/frontend/src/app/main/data/workspace/svg_upload.cljs b/frontend/src/app/main/data/workspace/svg_upload.cljs index a11f8893bb..169e2dd3ed 100644 --- a/frontend/src/app/main/data/workspace/svg_upload.cljs +++ b/frontend/src/app/main/data/workspace/svg_upload.cljs @@ -64,7 +64,8 @@ ([svg-data position] (add-svg-shapes nil svg-data position nil)) - ([id svg-data position {:keys [change-selection?] :or {change-selection? false}}] + ([id svg-data position {:keys [change-selection? ignore-selection?] + :or {ignore-selection? false change-selection? true}}] (ptk/reify ::add-svg-shapes ptk/WatchEvent (watch [it state _] @@ -73,7 +74,7 @@ page-id (:current-page-id state) objects (wsh/lookup-page-objects state page-id) frame-id (ctst/top-nested-frame objects position) - selected (wsh/lookup-selected state) + selected (if ignore-selection? #{} (wsh/lookup-selected state)) base (cfh/get-base-shape objects selected) selected-id (first selected) From 3d5e0643584e13853dd61e9794f8930821b81ce3 Mon Sep 17 00:00:00 2001 From: Eva Marco Date: Thu, 4 Jul 2024 12:37:53 +0200 Subject: [PATCH 362/476] :recycle: Remove unused locale function --- frontend/resources/styles/common/base.scss | 6 +----- frontend/src/app/main/data/users.cljs | 3 +-- frontend/src/app/util/i18n.cljs | 18 ------------------ 3 files changed, 2 insertions(+), 25 deletions(-) diff --git a/frontend/resources/styles/common/base.scss b/frontend/resources/styles/common/base.scss index 49f037129a..62b26317ce 100644 --- a/frontend/resources/styles/common/base.scss +++ b/frontend/resources/styles/common/base.scss @@ -18,16 +18,12 @@ $lh-115: 1.15; $lh-133: 1.33; $size-4: 1rem; -:root { - --font-family: "worksans", "vazirmatn", sans-serif; -} - body { background-color: var(--db-primary); color: var(--df-primary); display: flex; flex-direction: column; - font-family: var(--font-family); + font-family: "worksans", "vazirmatn", sans-serif; width: 100vw; height: 100vh; overflow: hidden; diff --git a/frontend/src/app/main/data/users.cljs b/frontend/src/app/main/data/users.cljs index 8ba0f7547c..967c00c57e 100644 --- a/frontend/src/app/main/data/users.cljs +++ b/frontend/src/app/main/data/users.cljs @@ -317,8 +317,7 @@ (effect [_ _ _] ;; We prefer to keek some stuff in the storage like the current-team-id and the profile (swap! storage dissoc :redirect-url) - (set-current-team! nil) - (i18n/reset-locale))))) + (set-current-team! nil))))) (defn logout ([] (logout {})) diff --git a/frontend/src/app/util/i18n.cljs b/frontend/src/app/util/i18n.cljs index c87ac6f205..eadf74a56c 100644 --- a/frontend/src/app/util/i18n.cljs +++ b/frontend/src/app/util/i18n.cljs @@ -10,7 +10,6 @@ [app.common.data :as d] [app.common.logging :as log] [app.config :as cfg] - [app.util.dom :as dom] [app.util.globals :as globals] [app.util.storage :refer [storage]] [cuerdas.core :as str] @@ -106,23 +105,6 @@ (swap! storage assoc ::locale lname) (reset! locale lname)))) -(defn reset-locale - "Set the current locale to the browser detected one if it is - supported or default locale if not." - [] - (swap! storage dissoc ::locale) - (reset! locale (autodetect))) - -(add-watch locale "browser-font" - (fn [_ _ _ locale] - (log/info :hint "locale changed" :locale locale) - (dom/set-html-lang! locale) - (let [node (dom/get-body)] - (if (or (= locale "fa") - (= locale "ar")) - (dom/set-css-property! node "--font-family" "'vazirmatn', 'worksans', sans-serif") - (dom/unset-css-property! node "--font-family"))))) - (deftype C [val] IDeref (-deref [_] val)) From fd1ab29920b9fc8b9f0174a044459515210b04b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bel=C3=A9n=20Albeza?= Date: Fri, 5 Jul 2024 14:34:59 +0200 Subject: [PATCH 363/476] :sparkles: Update v2-related svg assets --- frontend/resources/images/assets/marketing-arrows.svg | 3 +++ frontend/resources/images/assets/marketing-exchange.svg | 3 +++ frontend/resources/images/assets/marketing-file.svg | 3 +++ frontend/resources/images/assets/marketing-layers.svg | 3 +++ frontend/resources/images/assets/v2-icon-1.svg | 1 - frontend/resources/images/assets/v2-icon-2.svg | 1 - frontend/resources/images/assets/v2-icon-3.svg | 1 - frontend/resources/images/assets/v2-icon-4.svg | 1 - frontend/src/app/main/ui/ds/foundations/raw_svg.cljs | 8 ++++---- 9 files changed, 16 insertions(+), 8 deletions(-) create mode 100644 frontend/resources/images/assets/marketing-arrows.svg create mode 100644 frontend/resources/images/assets/marketing-exchange.svg create mode 100644 frontend/resources/images/assets/marketing-file.svg create mode 100644 frontend/resources/images/assets/marketing-layers.svg delete mode 100644 frontend/resources/images/assets/v2-icon-1.svg delete mode 100644 frontend/resources/images/assets/v2-icon-2.svg delete mode 100644 frontend/resources/images/assets/v2-icon-3.svg delete mode 100644 frontend/resources/images/assets/v2-icon-4.svg diff --git a/frontend/resources/images/assets/marketing-arrows.svg b/frontend/resources/images/assets/marketing-arrows.svg new file mode 100644 index 0000000000..7ce38ce15e --- /dev/null +++ b/frontend/resources/images/assets/marketing-arrows.svg @@ -0,0 +1,3 @@ + + + diff --git a/frontend/resources/images/assets/marketing-exchange.svg b/frontend/resources/images/assets/marketing-exchange.svg new file mode 100644 index 0000000000..68ea4e6d63 --- /dev/null +++ b/frontend/resources/images/assets/marketing-exchange.svg @@ -0,0 +1,3 @@ + + + diff --git a/frontend/resources/images/assets/marketing-file.svg b/frontend/resources/images/assets/marketing-file.svg new file mode 100644 index 0000000000..ce2d299f8b --- /dev/null +++ b/frontend/resources/images/assets/marketing-file.svg @@ -0,0 +1,3 @@ + + + diff --git a/frontend/resources/images/assets/marketing-layers.svg b/frontend/resources/images/assets/marketing-layers.svg new file mode 100644 index 0000000000..4b5e97d4a5 --- /dev/null +++ b/frontend/resources/images/assets/marketing-layers.svg @@ -0,0 +1,3 @@ + + + diff --git a/frontend/resources/images/assets/v2-icon-1.svg b/frontend/resources/images/assets/v2-icon-1.svg deleted file mode 100644 index b39647eb1c..0000000000 --- a/frontend/resources/images/assets/v2-icon-1.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/frontend/resources/images/assets/v2-icon-2.svg b/frontend/resources/images/assets/v2-icon-2.svg deleted file mode 100644 index d384ee2ed3..0000000000 --- a/frontend/resources/images/assets/v2-icon-2.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/frontend/resources/images/assets/v2-icon-3.svg b/frontend/resources/images/assets/v2-icon-3.svg deleted file mode 100644 index bfc88da6d5..0000000000 --- a/frontend/resources/images/assets/v2-icon-3.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/frontend/resources/images/assets/v2-icon-4.svg b/frontend/resources/images/assets/v2-icon-4.svg deleted file mode 100644 index dc2443432b..0000000000 --- a/frontend/resources/images/assets/v2-icon-4.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/frontend/src/app/main/ui/ds/foundations/raw_svg.cljs b/frontend/src/app/main/ui/ds/foundations/raw_svg.cljs index 0de183215b..c89201ace2 100644 --- a/frontend/src/app/main/ui/ds/foundations/raw_svg.cljs +++ b/frontend/src/app/main/ui/ds/foundations/raw_svg.cljs @@ -23,10 +23,10 @@ (def ^:svg-id logo-error-screen "logo-error-screen") (def ^:svg-id login-illustration "login-illustration") -(def ^:svg-id v2-icon-1 "v2-icon-1") -(def ^:svg-id v2-icon-2 "v2-icon-2") -(def ^:svg-id v2-icon-3 "v2-icon-3") -(def ^:svg-id v2-icon-4 "v2-icon-4") +(def ^:svg-id marketing-arrows "marketing-arrows") +(def ^:svg-id marketing-exchange "marketing-exchange") +(def ^:svg-id marketing-file "marketing-file") +(def ^:svg-id marketing-layers "marketing-layers") (def raw-svg-list "A collection of all raw SVG assets" (collect-raw-svgs)) From cfbfda925bb7ab644b9be591976a2e4f03859176 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bel=C3=A9n=20Albeza?= Date: Fri, 5 Jul 2024 14:57:22 +0200 Subject: [PATCH 364/476] :books: Fix typo in RawSvg storybook docs --- frontend/src/app/main/ui/ds/foundations/raw_svg.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/src/app/main/ui/ds/foundations/raw_svg.mdx b/frontend/src/app/main/ui/ds/foundations/raw_svg.mdx index 0377ce51b7..c5eaed5075 100644 --- a/frontend/src/app/main/ui/ds/foundations/raw_svg.mdx +++ b/frontend/src/app/main/ui/ds/foundations/raw_svg.mdx @@ -24,5 +24,5 @@ For convenience, asset IDs are available in the component namespace. ``` ```clj -[:> svg/svg-asset* {:asset svg/logo}] +[:> svg/raw-svg* {:asset svg/logo}] ``` From 63d1b558d1296b906883d24850c7d0fa3f615ac7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bel=C3=A9n=20Albeza?= Date: Fri, 5 Jul 2024 15:09:01 +0200 Subject: [PATCH 365/476] :sparkles: Add percentage icon and update puzzle icon --- frontend/resources/images/icons/percentage.svg | 3 +++ frontend/resources/images/icons/puzzle.svg | 4 +++- frontend/resources/images/icons/row.svg | 4 +++- frontend/src/app/main/ui/ds/foundations/icon.cljs | 2 ++ 4 files changed, 11 insertions(+), 2 deletions(-) create mode 100644 frontend/resources/images/icons/percentage.svg diff --git a/frontend/resources/images/icons/percentage.svg b/frontend/resources/images/icons/percentage.svg new file mode 100644 index 0000000000..faa3380371 --- /dev/null +++ b/frontend/resources/images/icons/percentage.svg @@ -0,0 +1,3 @@ + + + diff --git a/frontend/resources/images/icons/puzzle.svg b/frontend/resources/images/icons/puzzle.svg index ceef3a54b4..500638984e 100644 --- a/frontend/resources/images/icons/puzzle.svg +++ b/frontend/resources/images/icons/puzzle.svg @@ -1 +1,3 @@ - + + + \ No newline at end of file diff --git a/frontend/resources/images/icons/row.svg b/frontend/resources/images/icons/row.svg index 8475819d45..6dbcfe31dc 100644 --- a/frontend/resources/images/icons/row.svg +++ b/frontend/resources/images/icons/row.svg @@ -1 +1,3 @@ - \ No newline at end of file + + + diff --git a/frontend/src/app/main/ui/ds/foundations/icon.cljs b/frontend/src/app/main/ui/ds/foundations/icon.cljs index bf77f12b28..156c79744a 100644 --- a/frontend/src/app/main/ui/ds/foundations/icon.cljs +++ b/frontend/src/app/main/ui/ds/foundations/icon.cljs @@ -175,9 +175,11 @@ (def ^:icon-id padding-top-bottom "padding-top-bottom") (def ^:icon-id path "path") (def ^:icon-id pentool "pentool") +(def ^:icon-id percentage "percentage") (def ^:icon-id picker "picker") (def ^:icon-id pin "pin") (def ^:icon-id play "play") +(def ^:icon-id puzzle "puzzle") (def ^:icon-id rectangle "rectangle") (def ^:icon-id reload "reload") (def ^:icon-id remove-icon "remove") From 2cc3f65323e97ff89f47b68a8de2de6cd8a8f6e1 Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Fri, 5 Jul 2024 15:16:09 +0200 Subject: [PATCH 366/476] :sparkles: Small improvements over plugin manager --- frontend/src/app/main/ui/workspace/plugins.cljs | 11 +++++++++++ frontend/src/app/main/ui/workspace/plugins.scss | 12 +++++++++++- frontend/src/app/plugins/register.cljs | 7 ++++++- frontend/src/app/util/i18n.cljs | 5 +++-- frontend/translations/en.po | 7 ++++++- frontend/translations/es.po | 7 ++++++- 6 files changed, 43 insertions(+), 6 deletions(-) diff --git a/frontend/src/app/main/ui/workspace/plugins.cljs b/frontend/src/app/main/ui/workspace/plugins.cljs index 7a71cf4a00..bceeaf9c17 100644 --- a/frontend/src/app/main/ui/workspace/plugins.cljs +++ b/frontend/src/app/main/ui/workspace/plugins.cljs @@ -86,6 +86,8 @@ plugin-url* (mf/use-state "") plugin-url @plugin-url* + fetching-manifest? (mf/use-state false) + input-status* (mf/use-state nil) ;; :error-url :error-manifest :success input-status @input-status* @@ -106,6 +108,7 @@ (mf/use-callback (mf/deps plugins-state plugin-url) (fn [] + (reset! fetching-manifest? true) (->> (http/send! {:method :get :uri plugin-url :omit-default-headers true @@ -113,6 +116,7 @@ (rx/map :body) (rx/subs! (fn [body] + (reset! fetching-manifest? false) (let [plugin (plugins/parser-manifest plugin-url body)] (st/emit! (ptk/event ::ev/event {::ev/name "install-plugin" :name (:name plugin) :url plugin-url})) (modal/show! @@ -125,6 +129,7 @@ (reset! input-status* :success) (reset! plugin-url* ""))) (fn [_] + (reset! fetching-manifest? false) (reset! input-status* :error-url)))))) handle-open-plugin @@ -161,12 +166,18 @@ :class (stl/css-case :input-error error?)}] [:button {:class (stl/css :primary-button) + :disabled @fetching-manifest? :on-click handle-install-click} (tr "workspace.plugins.install")]] (when error? [:div {:class (stl/css-case :info true :error error?)} (tr "workspace.plugins.error.url")]) + [:> i18n/tr-html* + {:class (stl/css :discover) + :on-click #(st/emit! (ptk/event ::ev/event {::ev/name "open-plugins-list"})) + :content (tr "workspace.plugins.discover" cf/plugins-list-uri)}] + [:hr] (if (empty? plugins-state) diff --git a/frontend/src/app/main/ui/workspace/plugins.scss b/frontend/src/app/main/ui/workspace/plugins.scss index fd9114e813..0f334ee98b 100644 --- a/frontend/src/app/main/ui/workspace/plugins.scss +++ b/frontend/src/app/main/ui/workspace/plugins.scss @@ -213,7 +213,7 @@ div.input-error { gap: $s-4; svg { - margin-top: calc(-1 * var($s-2)); + margin-top: calc(-1 * $s-2); width: $s-12; height: $s-12; stroke: $da-primary; @@ -262,3 +262,13 @@ div.input-error { display: flex; gap: $s-12; } + +.discover { + @include bodySmallTypography; + color: $df-secondary; + margin-top: $s-24; + + a { + color: $da-primary; + } +} diff --git a/frontend/src/app/plugins/register.cljs b/frontend/src/app/plugins/register.cljs index ab8fb1d801..7ba2bdcb92 100644 --- a/frontend/src/app/plugins/register.cljs +++ b/frontend/src/app/plugins/register.cljs @@ -34,7 +34,12 @@ (defn install-plugin! [plugin] - (let [plugins (vec (conj (seq @pluginsdb) plugin))] + (let [plugins (as-> @pluginsdb $ + (remove (fn [{:keys [name host]}] + (and (= name (:name plugin)) + (= host (:host plugin)))) $) + (conj $ plugin) + (vec $))] (reset! pluginsdb plugins) (save-to-store plugins))) diff --git a/frontend/src/app/util/i18n.cljs b/frontend/src/app/util/i18n.cljs index c87ac6f205..3d3bca0d48 100644 --- a/frontend/src/app/util/i18n.cljs +++ b/frontend/src/app/util/i18n.cljs @@ -174,10 +174,11 @@ (mf/defc tr-html* {::mf/props :obj} - [{:keys [content class tag-name]}] + [{:keys [content class tag-name on-click]}] (let [tag-name (d/nilv tag-name "p")] [:> tag-name {:dangerouslySetInnerHTML #js {:__html content} - :className class}])) + :className class + :on-click on-click}])) ;; DEPRECATED (defn use-locale diff --git a/frontend/translations/en.po b/frontend/translations/en.po index 5e90a19512..1a1c4424ae 100644 --- a/frontend/translations/en.po +++ b/frontend/translations/en.po @@ -5282,7 +5282,7 @@ msgid "workspace.plugins.menu.title" msgstr "Plugins" msgid "workspace.toolbar.plugins" -msgstr "Plugins" +msgstr "Plugins (%s)" msgid "workspace.plugins.menu.plugins-manager" msgstr "Plugins manager" @@ -5310,3 +5310,8 @@ msgstr "Read your libraries and assets." msgid "workspace.plugins.permissions.library-write" msgstr "Read and modify your libraries and assets." + +#, markdown +msgid "workspace.plugins.discover" +msgstr "" +"Discover [more plugins](%s)" diff --git a/frontend/translations/es.po b/frontend/translations/es.po index 407f37cd58..5f0d0ab10d 100644 --- a/frontend/translations/es.po +++ b/frontend/translations/es.po @@ -5362,7 +5362,7 @@ msgid "workspace.plugins.title" msgstr "Extensiones" msgid "workspace.toolbar.plugins" -msgstr "Extensiones" +msgstr "Extensiones (%s)" msgid "workspace.plugins.search-placeholder" msgstr "Intruduzca URL de la extensión" @@ -5414,3 +5414,8 @@ msgstr "Leer la información de sus bibliotecas y recursos." msgid "workspace.plugins.permissions.library-write" msgstr "Leer y modificar la información de sus bibliotecas y recursos." + +#, markdown +msgid "workspace.plugins.discover" +msgstr "" +"Descubre [más extensiones](%s)" From 6a18791c30684f8d6af56daccae1911e373811ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bel=C3=A9n=20Albeza?= Date: Fri, 5 Jul 2024 15:26:45 +0200 Subject: [PATCH 367/476] :sparkles: Add character icons --- .../resources/images/icons/character-a.svg | 3 +++ .../resources/images/icons/character-b.svg | 3 +++ .../resources/images/icons/character-c.svg | 3 +++ .../resources/images/icons/character-d.svg | 3 +++ .../resources/images/icons/character-e.svg | 3 +++ .../resources/images/icons/character-f.svg | 3 +++ .../resources/images/icons/character-g.svg | 3 +++ .../resources/images/icons/character-h.svg | 3 +++ .../resources/images/icons/character-i.svg | 3 +++ .../resources/images/icons/character-j.svg | 3 +++ .../resources/images/icons/character-k.svg | 3 +++ .../resources/images/icons/character-l.svg | 3 +++ .../resources/images/icons/character-m.svg | 3 +++ .../resources/images/icons/character-n.svg | 3 +++ .../images/icons/character-ntilde.svg | 3 +++ .../resources/images/icons/character-o.svg | 3 +++ .../resources/images/icons/character-p.svg | 3 +++ .../resources/images/icons/character-q.svg | 3 +++ .../resources/images/icons/character-r.svg | 3 +++ .../resources/images/icons/character-s.svg | 3 +++ .../resources/images/icons/character-t.svg | 3 +++ .../resources/images/icons/character-u.svg | 3 +++ .../resources/images/icons/character-v.svg | 3 +++ .../resources/images/icons/character-w.svg | 3 +++ .../resources/images/icons/character-x.svg | 3 +++ .../resources/images/icons/character-y.svg | 3 +++ .../resources/images/icons/character-z.svg | 3 +++ .../src/app/main/ui/ds/foundations/icon.cljs | 27 +++++++++++++++++++ 28 files changed, 108 insertions(+) create mode 100644 frontend/resources/images/icons/character-a.svg create mode 100644 frontend/resources/images/icons/character-b.svg create mode 100644 frontend/resources/images/icons/character-c.svg create mode 100644 frontend/resources/images/icons/character-d.svg create mode 100644 frontend/resources/images/icons/character-e.svg create mode 100644 frontend/resources/images/icons/character-f.svg create mode 100644 frontend/resources/images/icons/character-g.svg create mode 100644 frontend/resources/images/icons/character-h.svg create mode 100644 frontend/resources/images/icons/character-i.svg create mode 100644 frontend/resources/images/icons/character-j.svg create mode 100644 frontend/resources/images/icons/character-k.svg create mode 100644 frontend/resources/images/icons/character-l.svg create mode 100644 frontend/resources/images/icons/character-m.svg create mode 100644 frontend/resources/images/icons/character-n.svg create mode 100644 frontend/resources/images/icons/character-ntilde.svg create mode 100644 frontend/resources/images/icons/character-o.svg create mode 100644 frontend/resources/images/icons/character-p.svg create mode 100644 frontend/resources/images/icons/character-q.svg create mode 100644 frontend/resources/images/icons/character-r.svg create mode 100644 frontend/resources/images/icons/character-s.svg create mode 100644 frontend/resources/images/icons/character-t.svg create mode 100644 frontend/resources/images/icons/character-u.svg create mode 100644 frontend/resources/images/icons/character-v.svg create mode 100644 frontend/resources/images/icons/character-w.svg create mode 100644 frontend/resources/images/icons/character-x.svg create mode 100644 frontend/resources/images/icons/character-y.svg create mode 100644 frontend/resources/images/icons/character-z.svg diff --git a/frontend/resources/images/icons/character-a.svg b/frontend/resources/images/icons/character-a.svg new file mode 100644 index 0000000000..3a740083ae --- /dev/null +++ b/frontend/resources/images/icons/character-a.svg @@ -0,0 +1,3 @@ + + + diff --git a/frontend/resources/images/icons/character-b.svg b/frontend/resources/images/icons/character-b.svg new file mode 100644 index 0000000000..39fe59dd58 --- /dev/null +++ b/frontend/resources/images/icons/character-b.svg @@ -0,0 +1,3 @@ + + + diff --git a/frontend/resources/images/icons/character-c.svg b/frontend/resources/images/icons/character-c.svg new file mode 100644 index 0000000000..73347384de --- /dev/null +++ b/frontend/resources/images/icons/character-c.svg @@ -0,0 +1,3 @@ + + + diff --git a/frontend/resources/images/icons/character-d.svg b/frontend/resources/images/icons/character-d.svg new file mode 100644 index 0000000000..d585f275b4 --- /dev/null +++ b/frontend/resources/images/icons/character-d.svg @@ -0,0 +1,3 @@ + + + diff --git a/frontend/resources/images/icons/character-e.svg b/frontend/resources/images/icons/character-e.svg new file mode 100644 index 0000000000..eb7ac88376 --- /dev/null +++ b/frontend/resources/images/icons/character-e.svg @@ -0,0 +1,3 @@ + + + diff --git a/frontend/resources/images/icons/character-f.svg b/frontend/resources/images/icons/character-f.svg new file mode 100644 index 0000000000..c6ddd2c4d2 --- /dev/null +++ b/frontend/resources/images/icons/character-f.svg @@ -0,0 +1,3 @@ + + + diff --git a/frontend/resources/images/icons/character-g.svg b/frontend/resources/images/icons/character-g.svg new file mode 100644 index 0000000000..fd87e7fc08 --- /dev/null +++ b/frontend/resources/images/icons/character-g.svg @@ -0,0 +1,3 @@ + + + diff --git a/frontend/resources/images/icons/character-h.svg b/frontend/resources/images/icons/character-h.svg new file mode 100644 index 0000000000..082571f40d --- /dev/null +++ b/frontend/resources/images/icons/character-h.svg @@ -0,0 +1,3 @@ + + + diff --git a/frontend/resources/images/icons/character-i.svg b/frontend/resources/images/icons/character-i.svg new file mode 100644 index 0000000000..567b9f4715 --- /dev/null +++ b/frontend/resources/images/icons/character-i.svg @@ -0,0 +1,3 @@ + + + diff --git a/frontend/resources/images/icons/character-j.svg b/frontend/resources/images/icons/character-j.svg new file mode 100644 index 0000000000..b90b0bca69 --- /dev/null +++ b/frontend/resources/images/icons/character-j.svg @@ -0,0 +1,3 @@ + + + diff --git a/frontend/resources/images/icons/character-k.svg b/frontend/resources/images/icons/character-k.svg new file mode 100644 index 0000000000..dacc939178 --- /dev/null +++ b/frontend/resources/images/icons/character-k.svg @@ -0,0 +1,3 @@ + + + diff --git a/frontend/resources/images/icons/character-l.svg b/frontend/resources/images/icons/character-l.svg new file mode 100644 index 0000000000..9b4f0b17d9 --- /dev/null +++ b/frontend/resources/images/icons/character-l.svg @@ -0,0 +1,3 @@ + + + diff --git a/frontend/resources/images/icons/character-m.svg b/frontend/resources/images/icons/character-m.svg new file mode 100644 index 0000000000..771d684a06 --- /dev/null +++ b/frontend/resources/images/icons/character-m.svg @@ -0,0 +1,3 @@ + + + diff --git a/frontend/resources/images/icons/character-n.svg b/frontend/resources/images/icons/character-n.svg new file mode 100644 index 0000000000..ec006c85a3 --- /dev/null +++ b/frontend/resources/images/icons/character-n.svg @@ -0,0 +1,3 @@ + + + diff --git a/frontend/resources/images/icons/character-ntilde.svg b/frontend/resources/images/icons/character-ntilde.svg new file mode 100644 index 0000000000..fded9d9bad --- /dev/null +++ b/frontend/resources/images/icons/character-ntilde.svg @@ -0,0 +1,3 @@ + + + diff --git a/frontend/resources/images/icons/character-o.svg b/frontend/resources/images/icons/character-o.svg new file mode 100644 index 0000000000..3d01ad2f74 --- /dev/null +++ b/frontend/resources/images/icons/character-o.svg @@ -0,0 +1,3 @@ + + + diff --git a/frontend/resources/images/icons/character-p.svg b/frontend/resources/images/icons/character-p.svg new file mode 100644 index 0000000000..1e272df2c7 --- /dev/null +++ b/frontend/resources/images/icons/character-p.svg @@ -0,0 +1,3 @@ + + + diff --git a/frontend/resources/images/icons/character-q.svg b/frontend/resources/images/icons/character-q.svg new file mode 100644 index 0000000000..6ead103bee --- /dev/null +++ b/frontend/resources/images/icons/character-q.svg @@ -0,0 +1,3 @@ + + + diff --git a/frontend/resources/images/icons/character-r.svg b/frontend/resources/images/icons/character-r.svg new file mode 100644 index 0000000000..120e254e2f --- /dev/null +++ b/frontend/resources/images/icons/character-r.svg @@ -0,0 +1,3 @@ + + + diff --git a/frontend/resources/images/icons/character-s.svg b/frontend/resources/images/icons/character-s.svg new file mode 100644 index 0000000000..796a64e136 --- /dev/null +++ b/frontend/resources/images/icons/character-s.svg @@ -0,0 +1,3 @@ + + + diff --git a/frontend/resources/images/icons/character-t.svg b/frontend/resources/images/icons/character-t.svg new file mode 100644 index 0000000000..1c8b6ba107 --- /dev/null +++ b/frontend/resources/images/icons/character-t.svg @@ -0,0 +1,3 @@ + + + diff --git a/frontend/resources/images/icons/character-u.svg b/frontend/resources/images/icons/character-u.svg new file mode 100644 index 0000000000..d07aef54e0 --- /dev/null +++ b/frontend/resources/images/icons/character-u.svg @@ -0,0 +1,3 @@ + + + diff --git a/frontend/resources/images/icons/character-v.svg b/frontend/resources/images/icons/character-v.svg new file mode 100644 index 0000000000..d28b777f0a --- /dev/null +++ b/frontend/resources/images/icons/character-v.svg @@ -0,0 +1,3 @@ + + + diff --git a/frontend/resources/images/icons/character-w.svg b/frontend/resources/images/icons/character-w.svg new file mode 100644 index 0000000000..8ecae0bf5e --- /dev/null +++ b/frontend/resources/images/icons/character-w.svg @@ -0,0 +1,3 @@ + + + diff --git a/frontend/resources/images/icons/character-x.svg b/frontend/resources/images/icons/character-x.svg new file mode 100644 index 0000000000..2253d0d171 --- /dev/null +++ b/frontend/resources/images/icons/character-x.svg @@ -0,0 +1,3 @@ + + + diff --git a/frontend/resources/images/icons/character-y.svg b/frontend/resources/images/icons/character-y.svg new file mode 100644 index 0000000000..add5b34b8b --- /dev/null +++ b/frontend/resources/images/icons/character-y.svg @@ -0,0 +1,3 @@ + + + diff --git a/frontend/resources/images/icons/character-z.svg b/frontend/resources/images/icons/character-z.svg new file mode 100644 index 0000000000..4df568995b --- /dev/null +++ b/frontend/resources/images/icons/character-z.svg @@ -0,0 +1,3 @@ + + + diff --git a/frontend/src/app/main/ui/ds/foundations/icon.cljs b/frontend/src/app/main/ui/ds/foundations/icon.cljs index 156c79744a..b36406f1f5 100644 --- a/frontend/src/app/main/ui/ds/foundations/icon.cljs +++ b/frontend/src/app/main/ui/ds/foundations/icon.cljs @@ -59,6 +59,33 @@ (def ^:icon-id boolean-intersection "boolean-intersection") (def ^:icon-id boolean-union "boolean-union") (def ^:icon-id bug "bug") +(def ^:icon-id character-a "character-a") +(def ^:icon-id character-b "character-b") +(def ^:icon-id character-c "character-c") +(def ^:icon-id character-d "character-d") +(def ^:icon-id character-e "character-e") +(def ^:icon-id character-f "character-f") +(def ^:icon-id character-g "character-g") +(def ^:icon-id character-h "character-h") +(def ^:icon-id character-i "character-i") +(def ^:icon-id character-j "character-j") +(def ^:icon-id character-k "character-k") +(def ^:icon-id character-l "character-l") +(def ^:icon-id character-m "character-m") +(def ^:icon-id character-n "character-n") +(def ^:icon-id character-ntilde "character-ntilde") +(def ^:icon-id character-o "character-o") +(def ^:icon-id character-p "character-p") +(def ^:icon-id character-q "character-q") +(def ^:icon-id character-r "character-r") +(def ^:icon-id character-s "character-s") +(def ^:icon-id character-t "character-t") +(def ^:icon-id character-u "character-u") +(def ^:icon-id character-v "character-v") +(def ^:icon-id character-w "character-w") +(def ^:icon-id character-x "character-x") +(def ^:icon-id character-y "character-y") +(def ^:icon-id character-z "character-z") (def ^:icon-id clip-content "clip-content") (def ^:icon-id clipboard "clipboard") (def ^:icon-id close-small "close-small") From be9a2767ea366f98d1f074c805c093161e20d2e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bel=C3=A9n=20Albeza?= Date: Fri, 5 Jul 2024 15:28:25 +0200 Subject: [PATCH 368/476] :paperclip: Remove unused rocket icon --- frontend/resources/images/icons/rocket.svg | 1 - frontend/src/app/main/ui/ds/foundations/icon.cljs | 1 - frontend/src/app/main/ui/icons.cljs | 1 - 3 files changed, 3 deletions(-) delete mode 100644 frontend/resources/images/icons/rocket.svg diff --git a/frontend/resources/images/icons/rocket.svg b/frontend/resources/images/icons/rocket.svg deleted file mode 100644 index 02f8d2a072..0000000000 --- a/frontend/resources/images/icons/rocket.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/frontend/src/app/main/ui/ds/foundations/icon.cljs b/frontend/src/app/main/ui/ds/foundations/icon.cljs index b36406f1f5..f9aa7b4023 100644 --- a/frontend/src/app/main/ui/ds/foundations/icon.cljs +++ b/frontend/src/app/main/ui/ds/foundations/icon.cljs @@ -212,7 +212,6 @@ (def ^:icon-id remove-icon "remove") (def ^:icon-id rgba "rgba") (def ^:icon-id rgba-complementary "rgba-complementary") -(def ^:icon-id rocket "rocket") (def ^:icon-id rotation "rotation") (def ^:icon-id row "row") (def ^:icon-id row-reverse "row-reverse") diff --git a/frontend/src/app/main/ui/icons.cljs b/frontend/src/app/main/ui/icons.cljs index 27381d2f5d..9de4037cb7 100644 --- a/frontend/src/app/main/ui/icons.cljs +++ b/frontend/src/app/main/ui/icons.cljs @@ -199,7 +199,6 @@ (def ^:icon remove-icon (icon-xref :remove)) (def ^:icon rgba (icon-xref :rgba)) (def ^:icon rgba-complementary (icon-xref :rgba-complementary)) -(def ^:icon rocket (icon-xref :rocket)) (def ^:icon rotation (icon-xref :rotation)) (def ^:icon row (icon-xref :row)) (def ^:icon row-reverse (icon-xref :row-reverse)) From eae19e8252fa5cb95e4f99ab776e3c1ca207ad80 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bel=C3=A9n=20Albeza?= Date: Mon, 8 Jul 2024 14:39:41 +0200 Subject: [PATCH 369/476] :paperclip: Remove leftover code --- frontend/scripts/_helpers.js | 10 ---------- frontend/scripts/compile.js | 3 --- 2 files changed, 13 deletions(-) diff --git a/frontend/scripts/_helpers.js b/frontend/scripts/_helpers.js index ce6397e478..8e764da9fe 100644 --- a/frontend/scripts/_helpers.js +++ b/frontend/scripts/_helpers.js @@ -105,16 +105,6 @@ export async function compileSassAll(worker) { ); } -function compare(a, b) { - if (a < b) { - return -1; - } else if (a > b) { - return 1; - } else { - return 0; - } -} - export function concatSass(data) { const output = []; diff --git a/frontend/scripts/compile.js b/frontend/scripts/compile.js index 8ee6dc9773..902f4c39e2 100644 --- a/frontend/scripts/compile.js +++ b/frontend/scripts/compile.js @@ -1,6 +1,3 @@ -import fs from "node:fs/promises"; -import ppt from "pretty-time"; -import log from "fancy-log"; import * as h from "./_helpers.js"; await h.compileStyles(); From 44a2a63fb881ef053b48cab2ad39a8abeb55dbfd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bel=C3=A9n=20Albeza?= Date: Mon, 8 Jul 2024 15:26:44 +0200 Subject: [PATCH 370/476] :sparkles: Ensure DS scss modules are compiled before the app css modules --- frontend/scripts/_helpers.js | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/frontend/scripts/_helpers.js b/frontend/scripts/_helpers.js index 8e764da9fe..a84057a396 100644 --- a/frontend/scripts/_helpers.js +++ b/frontend/scripts/_helpers.js @@ -79,16 +79,27 @@ export async function compileSassAll(worker) { const limitFn = pLimit(4); const sourceDir = "src"; - let files = await fs.readdir(sourceDir, { recursive: true }); - files = files.filter((path) => path.endsWith(".scss")); - files = files.map((path) => ph.join(sourceDir, path)); + const isDesignSystemFile = (path) => { + return path.startsWith("app/main/ui/ds/"); + }; + + let files = (await fs.readdir(sourceDir, { recursive: true })).filter( + isSassFile, + ); + + const appFiles = files + .filter((path) => !isDesignSystemFile(path)) + .map((path) => ph.join(sourceDir, path)); + const dsFiles = files + .filter(isDesignSystemFile) + .map((path) => ph.join(sourceDir, path)); const procs = [ compileSass(worker, "resources/styles/main-default.scss", {}), compileSass(worker, "resources/styles/debug.scss", {}), ]; - for (let path of files) { + for (let path of [...dsFiles, ...appFiles]) { const proc = limitFn(() => compileSass(worker, path, { modules: true })); procs.push(proc); } @@ -96,7 +107,7 @@ export async function compileSassAll(worker) { const result = await Promise.all(procs); return result.reduce( - (acc, item, index) => { + (acc, item) => { acc.index[item.outputPath] = item.css; acc.items.push(item.outputPath); return acc; From fb6ebcd07497f9297cc3371033c2a169ad5f990d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bel=C3=A9n=20Albeza?= Date: Mon, 8 Jul 2024 15:33:26 +0200 Subject: [PATCH 371/476] :bug: Fix debug css being included in prod builds --- frontend/scripts/_helpers.js | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/frontend/scripts/_helpers.js b/frontend/scripts/_helpers.js index a84057a396..4b72301e83 100644 --- a/frontend/scripts/_helpers.js +++ b/frontend/scripts/_helpers.js @@ -27,6 +27,8 @@ export function startWorker() { }); } +export const isDebug = process.env.NODE_ENV !== "production"; + async function findFiles(basePath, predicate, options = {}) { predicate = predicate ?? @@ -75,6 +77,11 @@ export async function compileSass(worker, path, options) { return worker.exec("compileSass", [path, options]); } +export async function compileSassDebug(worker) { + const result = await compileSass(worker, "resources/styles/debug.scss", {}); + return `${result.css}\n`; +} + export async function compileSassAll(worker) { const limitFn = pLimit(4); const sourceDir = "src"; @@ -94,10 +101,7 @@ export async function compileSassAll(worker) { .filter(isDesignSystemFile) .map((path) => ph.join(sourceDir, path)); - const procs = [ - compileSass(worker, "resources/styles/main-default.scss", {}), - compileSass(worker, "resources/styles/debug.scss", {}), - ]; + const procs = [compileSass(worker, "resources/styles/main-default.scss", {})]; for (let path of [...dsFiles, ...appFiles]) { const proc = limitFn(() => compileSass(worker, path, { modules: true })); @@ -176,7 +180,7 @@ async function renderTemplate(path, context = {}, partials = {}) { context = Object.assign({}, context, { ts: ts, - isDebug: process.env.NODE_ENV !== "production", + isDebug, }); return mustache.render(content, context, partials); @@ -401,6 +405,11 @@ export async function compileStyles() { await fs.mkdir("./resources/public/css", { recursive: true }); await fs.writeFile("./resources/public/css/main.css", result); + if (isDebug) { + let debugCSS = await compileSassDebug(worker); + await fs.writeFile("./resources/public/css/debug.css", debugCSS); + } + const end = process.hrtime(start); log.info("done: compile styles", `(${ppt(end)})`); worker.terminate(); From 90f545ae6dfaf431e33627a1ccb5950c584493d0 Mon Sep 17 00:00:00 2001 From: Alejandro Alonso Date: Tue, 9 Jul 2024 10:18:54 +0200 Subject: [PATCH 372/476] :sparkles: Update release 2.1.0 name --- CHANGES.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGES.md b/CHANGES.md index 71822e686f..3407cb43ea 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,6 +1,6 @@ # CHANGELOG -## 2.1.0 +## 2.1.0 - Things can only get better! ### :rocket: Epics and highlights From 29d0499725184a713e5374d899faf9403f2c874d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9s=20Moya?= Date: Tue, 9 Jul 2024 01:02:34 +0200 Subject: [PATCH 373/476] :bug: Fix embed assets in unpublish and export --- CHANGES.md | 1 + backend/src/app/binfile/common.clj | 55 ++++----------------------- backend/src/app/binfile/v1.clj | 1 - common/src/app/common/types/file.cljc | 27 +++++++------ 4 files changed, 24 insertions(+), 60 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index 3407cb43ea..b96f3e77cb 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -54,6 +54,7 @@ - Fix 'Detach instance' shortcut is not working [Taiga #8102](https://tree.taiga.io/project/penpot/issue/8102) - Fix import file message does not detect 0 as error [Taiga #6824](https://tree.taiga.io/project/penpot/issue/6824) - Image Color Library is not persisted when exporting/importing in .zip [Taiga #8131](https://tree.taiga.io/project/penpot/issue/8131) +- Fix export files including libraries [Taiga #8266](https://tree.taiga.io/project/penpot/issue/8266) ## 2.0.3 diff --git a/backend/src/app/binfile/common.clj b/backend/src/app/binfile/common.clj index bfbfe6186f..d8c3811742 100644 --- a/backend/src/app/binfile/common.clj +++ b/backend/src/app/binfile/common.clj @@ -15,6 +15,7 @@ [app.common.files.migrations :as fmg] [app.common.files.validate :as fval] [app.common.logging :as l] + [app.common.types.file :as ctf] [app.common.uuid :as uuid] [app.config :as cf] [app.db :as db] @@ -331,54 +332,12 @@ (defn embed-assets [cfg data file-id] - (letfn [(walk-map-form [form state] - (cond - (uuid? (:fill-color-ref-file form)) - (do - (vswap! state conj [(:fill-color-ref-file form) :colors (:fill-color-ref-id form)]) - (assoc form :fill-color-ref-file file-id)) - - (uuid? (:stroke-color-ref-file form)) - (do - (vswap! state conj [(:stroke-color-ref-file form) :colors (:stroke-color-ref-id form)]) - (assoc form :stroke-color-ref-file file-id)) - - (uuid? (:typography-ref-file form)) - (do - (vswap! state conj [(:typography-ref-file form) :typographies (:typography-ref-id form)]) - (assoc form :typography-ref-file file-id)) - - (uuid? (:component-file form)) - (do - (vswap! state conj [(:component-file form) :components (:component-id form)]) - (assoc form :component-file file-id)) - - :else - form)) - - (process-group-of-assets [data [lib-id items]] - ;; NOTE: there is a possibility that shape refers to an - ;; non-existant file because the file was removed. In this - ;; case we just ignore the asset. - (if-let [lib (get-file cfg lib-id)] - (reduce (partial process-asset lib) data items) - data)) - - (process-asset [lib data [bucket asset-id]] - (let [asset (get-in lib [:data bucket asset-id]) - ;; Add a special case for colors that need to have - ;; correctly set the :file-id prop (pending of the - ;; refactor that will remove it). - asset (cond-> asset - (= bucket :colors) (assoc :file-id file-id))] - (update data bucket assoc asset-id asset)))] - - (let [assets (volatile! [])] - (walk/postwalk #(cond-> % (map? %) (walk-map-form assets)) data) - (->> (deref assets) - (filter #(as-> (first %) $ (and (uuid? $) (not= $ file-id)))) - (d/group-by first rest) - (reduce (partial process-group-of-assets) data))))) + (let [library-ids (get-libraries cfg [file-id])] + (reduce (fn [data library-id] + (let [library (get-file cfg library-id)] + (ctf/absorb-assets data (:data library)))) + data + library-ids))) (defn- fix-version [file] diff --git a/backend/src/app/binfile/v1.clj b/backend/src/app/binfile/v1.clj index 5bad01f6dc..3e1c93aa01 100644 --- a/backend/src/app/binfile/v1.clj +++ b/backend/src/app/binfile/v1.clj @@ -130,7 +130,6 @@ (.writeLong output (long data)) (swap! *position* + 8)) - (defn read-long! [^DataInputStream input] (let [v (.readLong input)] diff --git a/common/src/app/common/types/file.cljc b/common/src/app/common/types/file.cljc index d12b759dfd..8aeac6adac 100644 --- a/common/src/app/common/types/file.cljc +++ b/common/src/app/common/types/file.cljc @@ -633,19 +633,24 @@ "Find all assets of a library that are used in the file, and move them to the file local library." [file-data library-data] - (let [used-components (find-asset-type-usages file-data library-data :component) - used-colors (find-asset-type-usages file-data library-data :color) - used-typographies (find-asset-type-usages file-data library-data :typography)] + (let [used-components (find-asset-type-usages file-data library-data :component) + file-data (cond-> file-data + (d/not-empty? used-components) + (absorb-components used-components library-data)) + ;; Note that absorbed components may also be using colors + ;; and typographies. This is the reason of doing this first + ;; and accumulating file data for the next ones. - (cond-> file-data - (d/not-empty? used-components) - (absorb-components used-components library-data) + used-colors (find-asset-type-usages file-data library-data :color) + file-data (cond-> file-data + (d/not-empty? used-colors) + (absorb-colors used-colors)) - (d/not-empty? used-colors) - (absorb-colors used-colors) - - (d/not-empty? used-typographies) - (absorb-typographies used-typographies)))) + used-typographies (find-asset-type-usages file-data library-data :typography) + file-data (cond-> file-data + (d/not-empty? used-typographies) + (absorb-typographies used-typographies))] + file-data)) ;; Debug helpers From 4b4b160ea81b0ad063e55e650ffa7348b193bbcc Mon Sep 17 00:00:00 2001 From: Pablo Alba Date: Thu, 20 Jun 2024 16:29:32 +0200 Subject: [PATCH 374/476] :tada: Test A/B for templates order and names --- backend/resources/app/onboarding.edn | 8 +++++++- .../thumbnails/template-prototype-examples.jpg | Bin 0 -> 325569 bytes frontend/src/app/main/data/dashboard.cljs | 14 +++++++++++++- 3 files changed, 20 insertions(+), 2 deletions(-) create mode 100644 frontend/resources/images/thumbnails/template-prototype-examples.jpg diff --git a/backend/resources/app/onboarding.edn b/backend/resources/app/onboarding.edn index 3a94d29edb..20c9f9fc37 100644 --- a/backend/resources/app/onboarding.edn +++ b/backend/resources/app/onboarding.edn @@ -30,4 +30,10 @@ :file-uri "https://github.com/penpot/penpot-files/raw/binary-files/Open-Color-Scheme.penpot"} {:id "flex-layout-playground" :name "Flex Layout Playground" - :file-uri "https://github.com/penpot/penpot-files/raw/binary-files/Flex-Layout-Playground.penpot"}] + :file-uri "https://github.com/penpot/penpot-files/raw/binary-files/Flex-Layout-Playground.penpot"} + {:id "prototype-examples" + :name "Prototipe template" + :file-uri "https://github.com/penpot/penpot-files/raw/binary-files/prototype-examples.penpot"} + {:id "penpot-design-system" + :name "Design system example" + :file-uri "https://github.com/penpot/penpot-files/raw/binary-files/Penpot-Design-system.penpot"}] diff --git a/frontend/resources/images/thumbnails/template-prototype-examples.jpg b/frontend/resources/images/thumbnails/template-prototype-examples.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5e5d4dab4ca048d59c82b6f37539cc37e5e670ef GIT binary patch literal 325569 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

    ?sM*=?%nRS?j`P7?#b>!?r!c5?z`MA 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 z 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

    D@ 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 :r-ellipse + ;; :nested-ellipse [:name Ellipse, :type :circle] ---> :ellipse + ;; {:board-with-rectangle} [:name Board with rectangle, :type :frame] # [Component :c-board-with-rectangle] + ;; :nested-h-rectangle [:name Rectangle, :type :frame] @--> :r-rectangle + ;; :nested-rectangle [:name rectangle, :type :rect] ---> :rectangle + ;; {:big-board} [:name Big Board, :type :frame] # [Component :c-big-board] + ;; :h-board-with-ellipse [:name Board with ellipse, :type :frame] @--> :board-with-ellipse + ;; :nested2-h-ellipse [:name Ellipse, :type :frame] @--> :nested-h-ellipse + ;; :nested2-ellipse [:name Ellipse, :type :circle] ---> :nested-ellipse + (-> (thf/sample-file :file1) + + (tho/add-simple-component :c-ellipse :r-ellipse :ellipse + :root-params {:name "Ellipse"} + :child-params {:name "Ellipse" :type :circle}) + + (tho/add-simple-component :c-rectangle :r-rectangle :rectangle + :root-params {:name "Rectangle"} + :child-params {:name "rectangle" :type :rect}) + + (tho/add-frame :board-with-ellipse :name "Board with ellipse") + (thc/instantiate-component :c-ellipse :nested-h-ellipse :parent-label :board-with-ellipse + :children-labels [:nested-ellipse]) + (thc/make-component :c-board-with-ellipse :board-with-ellipse) + + (tho/add-frame :board-with-rectangle :name "Board with rectangle") + (thc/instantiate-component :c-rectangle :nested-h-rectangle :parent-label :board-with-rectangle + :children-labels [:nested-rectangle]) + (thc/make-component :c-board-with-rectangle :board-with-rectangle) + + (tho/add-frame :big-board :name "Big Board") + (thc/instantiate-component :c-board-with-ellipse + :h-board-with-ellipse + :parent-label :big-board + :children-labels [:nested2-h-ellipse :nested2-ellipse]) + (thc/make-component :c-big-board :big-board))) + +(t/deftest test-advance-when-not-swapped + (let [;; ==== Setup + file (-> (setup-file) + (thc/instantiate-component :c-big-board + :copy-big-board + :children-labels [:copy-h-board-with-ellipse + :copy-nested-h-ellipse + :copy-nested-ellipse])) + + page (thf/current-page file) + + ;; ==== Action + changes (cll/generate-detach-instance (-> (pcb/empty-changes nil) + (pcb/with-page page) + (pcb/with-objects (:objects page))) + page + {(:id file) file} + (thi/id :copy-big-board)) + file' (thf/apply-changes file changes) + + ;; ==== Get + copy-h-board-with-ellipse (ths/get-shape file' :copy-h-board-with-ellipse) + copy-nested-h-ellipse (ths/get-shape file' :copy-nested-h-ellipse) + copy-nested-ellipse (ths/get-shape file' :copy-nested-ellipse)] + + ;; ==== Check + + ;; In the normal case, children's ref (that pointed to the near main inside big-board) + ;; are advanced to point to the new near main inside board-with-ellipse. + (t/is (ctk/instance-root? copy-h-board-with-ellipse)) + (t/is (= (:shape-ref copy-h-board-with-ellipse) (thi/id :board-with-ellipse))) + (t/is (nil? (ctk/get-swap-slot copy-h-board-with-ellipse))) + + (t/is (ctk/instance-head? copy-nested-h-ellipse)) + (t/is (= (:shape-ref copy-nested-h-ellipse) (thi/id :nested-h-ellipse))) + (t/is (nil? (ctk/get-swap-slot copy-nested-h-ellipse))) + + (t/is (not (ctk/instance-head? copy-nested-ellipse))) + (t/is (= (:shape-ref copy-nested-ellipse) (thi/id :nested-ellipse))) + (t/is (nil? (ctk/get-swap-slot copy-nested-ellipse))))) + +(t/deftest test-dont-advance-when-swapped-copy + (let [;; ==== Setup + file (-> (setup-file) + (thc/instantiate-component :c-big-board + :copy-big-board + :children-labels [:copy-h-board-with-ellipse + :copy-nested-h-ellipse + :copy-nested-ellipse]) + (thc/component-swap :copy-h-board-with-ellipse + :c-board-with-rectangle + :copy-h-board-with-rectangle + :children-labels [:copy-nested-h-rectangle + :copy-nested-rectangle])) + + page (thf/current-page file) + + ;; ==== Action + changes (cll/generate-detach-instance (-> (pcb/empty-changes nil) + (pcb/with-page page) + (pcb/with-objects (:objects page))) + page + {(:id file) file} + (thi/id :copy-big-board)) + file' (thf/apply-changes file changes) + + ;; ==== Get + copy-h-board-with-rectangle (ths/get-shape file' :copy-h-board-with-rectangle) + copy-nested-h-rectangle (ths/get-shape file' :copy-nested-h-rectangle) + copy-nested-rectangle (ths/get-shape file' :copy-nested-rectangle)] + + ;; ==== Check + + ;; If the nested copy was swapped, there is no need to advance shape-refs, + ;; as they already pointing to the near main inside board-with-rectangle. + (t/is (ctk/instance-root? copy-h-board-with-rectangle)) + (t/is (= (:shape-ref copy-h-board-with-rectangle) (thi/id :board-with-rectangle))) + (t/is (nil? (ctk/get-swap-slot copy-h-board-with-rectangle))) + + (t/is (ctk/instance-head? copy-nested-h-rectangle)) + (t/is (= (:shape-ref copy-nested-h-rectangle) (thi/id :nested-h-rectangle))) + (t/is (nil? (ctk/get-swap-slot copy-nested-h-rectangle))) + + (t/is (not (ctk/instance-head? copy-nested-rectangle))) + (t/is (= (:shape-ref copy-nested-rectangle) (thi/id :nested-rectangle))) + (t/is (nil? (ctk/get-swap-slot copy-nested-rectangle))))) + +(t/deftest test-propagate-slot-when-swapped-main + (let [;; ==== Setup + file (-> (setup-file) + (thc/component-swap :nested2-h-ellipse + :c-rectangle + :nested2-h-rectangle + :children-labels [:nested2-rectangle]) + (thc/instantiate-component :c-big-board + :copy-big-board + :children-labels [:copy-h-board-with-ellipse + :copy-nested-h-rectangle + :copy-nested-rectangle])) + + page (thf/current-page file) + + ;; ==== Action + changes (cll/generate-detach-instance (-> (pcb/empty-changes nil) + (pcb/with-page page) + (pcb/with-objects (:objects page))) + page + {(:id file) file} + (thi/id :copy-big-board)) + file' (thf/apply-changes file changes) + + ;; ==== Get + copy-h-board-with-ellipse (ths/get-shape file' :copy-h-board-with-ellipse) + copy-nested-h-rectangle (ths/get-shape file' :copy-nested-h-rectangle) + copy-nested-rectangle (ths/get-shape file' :copy-nested-rectangle)] + + ;; ==== Check + + ;; This one is advanced normally, as it has not been swapped. + (t/is (ctk/instance-root? copy-h-board-with-ellipse)) + (t/is (= (:shape-ref copy-h-board-with-ellipse) (thi/id :board-with-ellipse))) + (t/is (nil? (ctk/get-swap-slot copy-h-board-with-ellipse))) + + ;; If the nested copy has been swapped in the main, it does advance, + ;; but the swap slot of the near main is propagated to the copy. + (t/is (ctk/instance-head? copy-nested-h-rectangle)) + (t/is (= (:shape-ref copy-nested-h-rectangle) (thi/id :r-rectangle))) + (t/is (= (ctk/get-swap-slot copy-nested-h-rectangle) (thi/id :nested-h-ellipse))) + + (t/is (not (ctk/instance-head? copy-nested-rectangle))) + (t/is (= (:shape-ref copy-nested-rectangle) (thi/id :rectangle))) + (t/is (nil? (ctk/get-swap-slot copy-nested-rectangle))))) + diff --git a/common/test/common_tests/logic/comp_remove_swap_slots_test.cljc b/common/test/common_tests/logic/comp_remove_swap_slots_test.cljc index e40dd2f1a5..3bf5d8ceba 100644 --- a/common/test/common_tests/logic/comp_remove_swap_slots_test.cljc +++ b/common/test/common_tests/logic/comp_remove_swap_slots_test.cljc @@ -758,7 +758,6 @@ (t/is (some? blue-copy1')) (t/is (nil? (ctk/get-swap-slot blue-copy1'))))) - (t/deftest test-remove-swap-slot-detach (let [;; ==== Setup file (setup-file) From 00b4013385a23c388ce4d837e8753cfbf4954d45 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Tue, 18 Jun 2024 20:57:45 +0200 Subject: [PATCH 195/476] :sparkles: Forward external session id to backend --- backend/src/app/loggers/audit.clj | 7 +++++-- frontend/src/app/config.cljs | 13 ++++++++++--- frontend/src/app/main/data/events.cljs | 6 ++++-- frontend/src/app/main/repo.cljs | 3 ++- 4 files changed, 21 insertions(+), 8 deletions(-) diff --git a/backend/src/app/loggers/audit.clj b/backend/src/app/loggers/audit.clj index d89809f37a..10797f41cf 100644 --- a/backend/src/app/loggers/audit.clj +++ b/backend/src/app/loggers/audit.clj @@ -141,6 +141,7 @@ (::rpc/profile-id params) uuid/zero) + session-id (rreq/get-header request "x-external-session-id") props (-> (or (::replace-props resultm) (-> params (merge (::props resultm)) @@ -150,8 +151,10 @@ (clean-props)) token-id (::actoken/id request) - context (d/without-nils - {:access-token-id (some-> token-id str)})] + context (-> (::context resultm) + (assoc :external-session-id session-id) + (assoc :access-token-id (some-> token-id str)) + (d/without-nils))] {::type (or (::type resultm) (::rpc/type cfg)) diff --git a/frontend/src/app/config.cljs b/frontend/src/app/config.cljs index 4cfa499852..54ad1b37a3 100644 --- a/frontend/src/app/config.cljs +++ b/frontend/src/app/config.cljs @@ -130,9 +130,16 @@ (def worker-uri (obj/get global "penpotWorkerURI" "/js/worker.js")) -(defn external-feature-flag [flag value] - (when-let [fn (obj/get global "externalFeatureFlag")] - (fn flag value))) +(defn external-feature-flag + [flag value] + (let [f (obj/get global "externalFeatureFlag")] + (when (fn? f) + (f flag value)))) + +(defn external-session-id + [] + (let [f (obj/get global "externalSessionId")] + (when (fn? f) (f)))) ;; --- Helper Functions diff --git a/frontend/src/app/main/data/events.cljs b/frontend/src/app/main/data/events.cljs index ec217339c8..1e0cc623f3 100644 --- a/frontend/src/app/main/data/events.cljs +++ b/frontend/src/app/main/data/events.cljs @@ -168,7 +168,7 @@ ptk/EffectEvent (effect [_ _ stream] (let [session (atom nil) - stopper (rx/filter (ptk/type? ::initialize) stream) + stopper (rx/filter (ptk/type? ::initialize) stream) buffer (atom #queue []) profile (->> (rx/from-atom storage {:emit-current-value? true}) (rx/map :profile) @@ -213,7 +213,9 @@ (let [session* (or @session (dt/now)) context (-> @context (merge (:context event)) - (assoc :session session*))] + (assoc :session session*) + (assoc :external-session-id (cf/external-session-id)) + (d/without-nils))] (reset! session session*) (-> event (assoc :timestamp (dt/now)) diff --git a/frontend/src/app/main/repo.cljs b/frontend/src/app/main/repo.cljs index ed71b827a5..b6ff8dc1e2 100644 --- a/frontend/src/app/main/repo.cljs +++ b/frontend/src/app/main/repo.cljs @@ -97,7 +97,8 @@ request {:method method :uri (u/join cf/public-uri "api/rpc/command/" nid) :credentials "include" - :headers {"accept" "application/transit+json,text/event-stream,*/*"} + :headers {"accept" "application/transit+json,text/event-stream,*/*" + "x-external-session-id" (cf/external-session-id)} :body (when (= method :post) (if form-data? (http/form-data params) From 504f833a539a3cb584c443731486bb7fbb4dde0f Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Tue, 18 Jun 2024 14:42:58 +0200 Subject: [PATCH 196/476] :bug: Fix global error handler incorrect body encoding --- backend/src/app/http.clj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/src/app/http.clj b/backend/src/app/http.clj index a696d54776..cacf158056 100644 --- a/backend/src/app/http.clj +++ b/backend/src/app/http.clj @@ -114,7 +114,7 @@ (partial not-found-handler request))) (on-error [cause request] - (let [{:keys [body] :as response} (errors/handle cause request)] + (let [{:keys [::rres/body] :as response} (errors/handle cause request)] (cond-> response (map? body) (-> (update ::rres/headers assoc "content-type" "application/transit+json") From 06bab212b53ce82e39d50e0d5c82e8f9135f96b7 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Tue, 18 Jun 2024 14:43:15 +0200 Subject: [PATCH 197/476] :bug: Set correct order for http middlewares --- backend/src/app/http.clj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/src/app/http.clj b/backend/src/app/http.clj index cacf158056..c45c95c1cd 100644 --- a/backend/src/app/http.clj +++ b/backend/src/app/http.clj @@ -150,10 +150,10 @@ [["" {:middleware [[mw/server-timing] [mw/params] [mw/format-response] + [mw/errors errors/handle] [mw/parse-request] [session/soft-auth cfg] [actoken/soft-auth cfg] - [mw/errors errors/handle] [mw/restrict-methods]]} (::mtx/routes cfg) From 3363793d647093a72b9f683681e4e3cb5c50a09f Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Tue, 18 Jun 2024 14:44:25 +0200 Subject: [PATCH 198/476] :bug: Fix json encoding truncation issue --- backend/src/app/http/middleware.clj | 37 +++++++++++++++++----------- backend/src/app/util/objects_map.clj | 7 +++++- backend/src/app/util/pointer_map.clj | 11 ++++++++- 3 files changed, 38 insertions(+), 17 deletions(-) diff --git a/backend/src/app/http/middleware.clj b/backend/src/app/http/middleware.clj index 4ea815f07f..a6eabd9a4f 100644 --- a/backend/src/app/http/middleware.clj +++ b/backend/src/app/http/middleware.clj @@ -10,16 +10,13 @@ [app.common.logging :as l] [app.common.transit :as t] [app.config :as cf] - [app.util.json :as json] + [clojure.data.json :as json] [cuerdas.core :as str] [ring.request :as rreq] [ring.response :as rres] [yetti.adapter :as yt] [yetti.middleware :as ymw]) (:import - com.fasterxml.jackson.core.JsonParseException - com.fasterxml.jackson.core.io.JsonEOFException - com.fasterxml.jackson.databind.exc.MismatchedInputException io.undertow.server.RequestTooBigException java.io.InputStream java.io.OutputStream)) @@ -34,11 +31,22 @@ {:name ::params :compile (constantly ymw/wrap-params)}) -(def ^:private json-mapper - (json/mapper - {:encode-key-fn str/camel - :decode-key-fn (comp keyword str/kebab) - :pretty true})) +(defn- get-reader + ^java.io.BufferedReader + [request] + (let [^InputStream body (rreq/body request)] + (java.io.BufferedReader. + (java.io.InputStreamReader. body)))) + +(defn- read-json-key + [k] + (-> k str/kebab keyword)) + +(defn- write-json-key + [k] + (if (or (keyword? k) (symbol? k)) + (str/camel k) + (str k))) (defn wrap-parse-request [handler] @@ -53,8 +61,8 @@ (update :params merge params)))) (str/starts-with? header "application/json") - (with-open [^InputStream is (rreq/body request)] - (let [params (json/decode is json-mapper)] + (with-open [reader (get-reader request)] + (let [params (json/read reader :key-fn read-json-key)] (-> request (assoc :body-params params) (update :params merge params)))) @@ -74,9 +82,7 @@ :code :request-body-too-large :hint (ex-message cause)) - (or (instance? JsonEOFException cause) - (instance? JsonParseException cause) - (instance? MismatchedInputException cause)) + (instance? java.io.EOFException cause) (ex/raise :type :validation :code :malformed-json :hint (ex-message cause) @@ -128,7 +134,8 @@ (-write-body-to-stream [_ _ output-stream] (try (with-open [^OutputStream bos (buffered-output-stream output-stream buffer-size)] - (json/write! bos data json-mapper)) + (with-open [^java.io.OutputStreamWriter writer (java.io.OutputStreamWriter. bos)] + (json/write data writer :key-fn write-json-key))) (catch java.io.IOException _) (catch Throwable cause diff --git a/backend/src/app/util/objects_map.clj b/backend/src/app/util/objects_map.clj index 19a7bdea63..c7e4f42eb4 100644 --- a/backend/src/app/util/objects_map.clj +++ b/backend/src/app/util/objects_map.clj @@ -19,7 +19,8 @@ [app.common.fressian :as fres] [app.common.transit :as t] [app.common.uuid :as uuid] - [clojure.core :as c]) + [clojure.core :as c] + [clojure.data.json :as json]) (:import clojure.lang.Counted clojure.lang.IHashEq @@ -83,6 +84,10 @@ ^:unsynchronized-mutable loaded? ^:unsynchronized-mutable modified?] + json/JSONWriter + (-write [this writter options] + (json/-write (into {} this) writter options)) + IHashEq (hasheq [this] (when-not hash diff --git a/backend/src/app/util/pointer_map.clj b/backend/src/app/util/pointer_map.clj index 16ce73bb0a..ba84d3d4be 100644 --- a/backend/src/app/util/pointer_map.clj +++ b/backend/src/app/util/pointer_map.clj @@ -40,7 +40,8 @@ [app.common.transit :as t] [app.common.uuid :as uuid] [app.util.time :as dt] - [clojure.core :as c]) + [clojure.core :as c] + [clojure.data.json :as json]) (:import clojure.lang.Counted clojure.lang.IDeref @@ -75,6 +76,14 @@ ^:unsynchronized-mutable modified? ^:unsynchronized-mutable loaded?] + json/JSONWriter + (-write [this writter options] + (json/-write {:type "pointer" + :id (get-id this) + :meta (meta this)} + writter + options)) + IPointerMap (load! [_] (when-not *load-fn* From 7f4f54e3fd55e669fb43ab68de2d73584042e52e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bel=C3=A9n=20Albeza?= Date: Mon, 17 Jun 2024 16:58:25 +0200 Subject: [PATCH 199/476] :paperclip: Add (temporary) visual regression tests for the Workspace --- frontend/.gitignore | 3 +- ...-file-fragment-with-assets-components.json | 31 + .../get-file-fragmnet-with-assets-page.json | 630 ++++++++++++++++++ .../data/assets/get-file-with-assets.json | 105 +++ frontend/playwright/ui/pages/WorkspacePage.js | 9 +- .../Shows-login-form-correctly-1-ds-linux.png | Bin 155444 -> 0 bytes .../ui/visual-specs/workspace.spec.js | 124 ++++ .../src/app/main/ui/workspace/sidebar.cljs | 1 + .../workspace/sidebar/assets/components.cljs | 2 + frontend/translations/en.po | 8 + frontend/translations/es.po | 8 + 11 files changed, 914 insertions(+), 7 deletions(-) create mode 100644 frontend/playwright/data/assets/get-file-fragment-with-assets-components.json create mode 100644 frontend/playwright/data/assets/get-file-fragmnet-with-assets-page.json create mode 100644 frontend/playwright/data/assets/get-file-with-assets.json delete mode 100644 frontend/playwright/ui/visual-specs/example.spec.js-snapshots/Shows-login-form-correctly-1-ds-linux.png create mode 100644 frontend/playwright/ui/visual-specs/workspace.spec.js diff --git a/frontend/.gitignore b/frontend/.gitignore index 8d2f604e12..dd3776ebd3 100644 --- a/frontend/.gitignore +++ b/frontend/.gitignore @@ -10,5 +10,4 @@ node_modules/ /playwright-report/ /blob-report/ /playwright/.cache/ -visual-dashboard.spec.js-snapshots - +/playwright/**/visual-specs/**/*.png diff --git a/frontend/playwright/data/assets/get-file-fragment-with-assets-components.json b/frontend/playwright/data/assets/get-file-fragment-with-assets-components.json new file mode 100644 index 0000000000..4f8cfb6300 --- /dev/null +++ b/frontend/playwright/data/assets/get-file-fragment-with-assets-components.json @@ -0,0 +1,31 @@ +{ + "~:id": "~u015fda4f-caa6-8103-8004-862a9e4b4d4b", + "~:file-id": "~u015fda4f-caa6-8103-8004-862a00dd4f31", + "~:created-at": "~m1718718436639", + "~:content": { + "~ue117f7f6-433c-807e-8004-862a38e1823d": { + "~:id": "~ue117f7f6-433c-807e-8004-862a38e1823d", + "~:name": "Button", + "~:path": "", + "~:modified-at": "~m1718718335855", + "~:main-instance-id": "~ue117f7f6-433c-807e-8004-862a38e0099a", + "~:main-instance-page": "~u015fda4f-caa6-8103-8004-862a00ddbe94" + }, + "~ue117f7f6-433c-807e-8004-862a51a90ef5": { + "~:id": "~ue117f7f6-433c-807e-8004-862a51a90ef5", + "~:name": "Badge", + "~:path": "", + "~:modified-at": "~m1718718361245", + "~:main-instance-id": "~ue117f7f6-433c-807e-8004-862a51a84a91", + "~:main-instance-page": "~u015fda4f-caa6-8103-8004-862a00ddbe94" + }, + "~ue117f7f6-433c-807e-8004-862a9b541a46": { + "~:id": "~ue117f7f6-433c-807e-8004-862a9b541a46", + "~:name": "Avatar", + "~:path": "", + "~:modified-at": "~m1718718436652", + "~:main-instance-id": "~ue117f7f6-433c-807e-8004-862a9b5374b6", + "~:main-instance-page": "~u015fda4f-caa6-8103-8004-862a00ddbe94" + } + } +} \ No newline at end of file diff --git a/frontend/playwright/data/assets/get-file-fragmnet-with-assets-page.json b/frontend/playwright/data/assets/get-file-fragmnet-with-assets-page.json new file mode 100644 index 0000000000..99e01ce342 --- /dev/null +++ b/frontend/playwright/data/assets/get-file-fragmnet-with-assets-page.json @@ -0,0 +1,630 @@ +{ + "~:id": "~u015fda4f-caa6-8103-8004-862a9e4ad279", + "~:file-id": "~u015fda4f-caa6-8103-8004-862a00dd4f31", + "~:created-at": "~m1718718436639", + "~:content": { + "~:options": {}, + "~:objects": { + "~u00000000-0000-0000-0000-000000000000": { + "~#shape": { + "~:y": 0, + "~:hide-fill-on-export": false, + "~:transform": { + "~#matrix": { + "~:a": 1.0, + "~:b": 0.0, + "~:c": 0.0, + "~:d": 1.0, + "~:e": 0.0, + "~:f": 0.0 + } + }, + "~:rotation": 0, + "~:name": "Root Frame", + "~:width": 0.01, + "~:type": "~:frame", + "~:points": [ + { + "~#point": { + "~:x": 0, + "~:y": 0 + } + }, + { + "~#point": { + "~:x": 0.01, + "~:y": 0 + } + }, + { + "~#point": { + "~:x": 0.01, + "~:y": 0.01 + } + }, + { + "~#point": { + "~:x": 0, + "~:y": 0.01 + } + } + ], + "~:proportion-lock": false, + "~:transform-inverse": { + "~#matrix": { + "~:a": 1.0, + "~:b": 0.0, + "~:c": 0.0, + "~:d": 1.0, + "~:e": 0.0, + "~:f": 0.0 + } + }, + "~:id": "~u00000000-0000-0000-0000-000000000000", + "~:parent-id": "~u00000000-0000-0000-0000-000000000000", + "~:frame-id": "~u00000000-0000-0000-0000-000000000000", + "~:strokes": [], + "~:x": 0, + "~:proportion": 1.0, + "~:selrect": { + "~#rect": { + "~:x": 0, + "~:y": 0, + "~:width": 0.01, + "~:height": 0.01, + "~:x1": 0, + "~:y1": 0, + "~:x2": 0.01, + "~:y2": 0.01 + } + }, + "~:fills": [ + { + "~:fill-color": "#FFFFFF", + "~:fill-opacity": 1 + } + ], + "~:flip-x": null, + "~:height": 0.01, + "~:flip-y": null, + "~:shapes": [ + "~ue117f7f6-433c-807e-8004-862a38e0099a", + "~ue117f7f6-433c-807e-8004-862a51a84a91", + "~ue117f7f6-433c-807e-8004-862a9b5374b6" + ] + } + }, + "~ue117f7f6-433c-807e-8004-862a18bba46f": { + "~#shape": { + "~:y": 220, + "~:rx": 0, + "~:transform": { + "~#matrix": { + "~:a": 1.0, + "~:b": 0.0, + "~:c": 0.0, + "~:d": 1.0, + "~:e": 0.0, + "~:f": 0.0 + } + }, + "~:rotation": 0, + "~:grow-type": "~:fixed", + "~:hide-in-viewer": false, + "~:name": "Button", + "~:width": 120, + "~:type": "~:rect", + "~:points": [ + { + "~#point": { + "~:x": 663, + "~:y": 220 + } + }, + { + "~#point": { + "~:x": 783, + "~:y": 220 + } + }, + { + "~#point": { + "~:x": 783, + "~:y": 274 + } + }, + { + "~#point": { + "~:x": 663, + "~:y": 274 + } + } + ], + "~:proportion-lock": false, + "~:transform-inverse": { + "~#matrix": { + "~:a": 1.0, + "~:b": 0.0, + "~:c": 0.0, + "~:d": 1.0, + "~:e": 0.0, + "~:f": 0.0 + } + }, + "~:constraints-v": "~:scale", + "~:constraints-h": "~:scale", + "~:id": "~ue117f7f6-433c-807e-8004-862a18bba46f", + "~:parent-id": "~ue117f7f6-433c-807e-8004-862a38e0099a", + "~:frame-id": "~ue117f7f6-433c-807e-8004-862a38e0099a", + "~:strokes": [], + "~:x": 663, + "~:proportion": 1, + "~:selrect": { + "~#rect": { + "~:x": 663, + "~:y": 220, + "~:width": 120, + "~:height": 54, + "~:x1": 663, + "~:y1": 220, + "~:x2": 783, + "~:y2": 274 + } + }, + "~:fills": [ + { + "~:fill-color": "#B1B2B5", + "~:fill-opacity": 1 + } + ], + "~:flip-x": null, + "~:ry": 0, + "~:height": 54, + "~:flip-y": null + } + }, + "~ue117f7f6-433c-807e-8004-862a38e0099a": { + "~#shape": { + "~:y": 220, + "~:hide-fill-on-export": false, + "~:transform": { + "~#matrix": { + "~:a": 1.0, + "~:b": 0.0, + "~:c": 0.0, + "~:d": 1.0, + "~:e": 0.0, + "~:f": 0.0 + } + }, + "~:rotation": 0, + "~:hide-in-viewer": true, + "~:name": "Button", + "~:width": 120, + "~:type": "~:frame", + "~:points": [ + { + "~#point": { + "~:x": 663, + "~:y": 220 + } + }, + { + "~#point": { + "~:x": 783, + "~:y": 220 + } + }, + { + "~#point": { + "~:x": 783, + "~:y": 274 + } + }, + { + "~#point": { + "~:x": 663, + "~:y": 274 + } + } + ], + "~:component-root": true, + "~:show-content": true, + "~:proportion-lock": false, + "~:transform-inverse": { + "~#matrix": { + "~:a": 1.0, + "~:b": 0.0, + "~:c": 0.0, + "~:d": 1.0, + "~:e": 0.0, + "~:f": 0.0 + } + }, + "~:id": "~ue117f7f6-433c-807e-8004-862a38e0099a", + "~:parent-id": "~u00000000-0000-0000-0000-000000000000", + "~:component-id": "~ue117f7f6-433c-807e-8004-862a38e1823d", + "~:frame-id": "~u00000000-0000-0000-0000-000000000000", + "~:strokes": [], + "~:x": 663, + "~:main-instance": true, + "~:proportion": 1, + "~:selrect": { + "~#rect": { + "~:x": 663, + "~:y": 220, + "~:width": 120, + "~:height": 54, + "~:x1": 663, + "~:y1": 220, + "~:x2": 783, + "~:y2": 274 + } + }, + "~:fills": [], + "~:flip-x": null, + "~:height": 54, + "~:component-file": "~u015fda4f-caa6-8103-8004-862a00dd4f31", + "~:flip-y": null, + "~:shapes": [ + "~ue117f7f6-433c-807e-8004-862a18bba46f" + ] + } + }, + "~ue117f7f6-433c-807e-8004-862a40b7caca": { + "~#shape": { + "~:y": 188, + "~:transform": { + "~#matrix": { + "~:a": 1.0, + "~:b": 0.0, + "~:c": 0.0, + "~:d": 1.0, + "~:e": 0.0, + "~:f": 0.0 + } + }, + "~:rotation": 0, + "~:grow-type": "~:fixed", + "~:hide-in-viewer": false, + "~:name": "Badge", + "~:width": 61, + "~:type": "~:circle", + "~:points": [ + { + "~#point": { + "~:x": 860, + "~:y": 188 + } + }, + { + "~#point": { + "~:x": 921, + "~:y": 188 + } + }, + { + "~#point": { + "~:x": 921, + "~:y": 247 + } + }, + { + "~#point": { + "~:x": 860, + "~:y": 247 + } + } + ], + "~:proportion-lock": false, + "~:transform-inverse": { + "~#matrix": { + "~:a": 1.0, + "~:b": 0.0, + "~:c": 0.0, + "~:d": 1.0, + "~:e": 0.0, + "~:f": 0.0 + } + }, + "~:constraints-v": "~:scale", + "~:constraints-h": "~:scale", + "~:id": "~ue117f7f6-433c-807e-8004-862a40b7caca", + "~:parent-id": "~ue117f7f6-433c-807e-8004-862a51a84a91", + "~:frame-id": "~ue117f7f6-433c-807e-8004-862a51a84a91", + "~:strokes": [], + "~:x": 860, + "~:proportion": 1, + "~:selrect": { + "~#rect": { + "~:x": 860, + "~:y": 188, + "~:width": 61, + "~:height": 59, + "~:x1": 860, + "~:y1": 188, + "~:x2": 921, + "~:y2": 247 + } + }, + "~:fills": [ + { + "~:fill-color": "#7798ff", + "~:fill-opacity": 1 + } + ], + "~:flip-x": null, + "~:height": 59, + "~:flip-y": null + } + }, + "~ue117f7f6-433c-807e-8004-862a51a84a91": { + "~#shape": { + "~:y": 188, + "~:hide-fill-on-export": false, + "~:transform": { + "~#matrix": { + "~:a": 1.0, + "~:b": 0.0, + "~:c": 0.0, + "~:d": 1.0, + "~:e": 0.0, + "~:f": 0.0 + } + }, + "~:rotation": 0, + "~:hide-in-viewer": true, + "~:name": "Badge", + "~:width": 61, + "~:type": "~:frame", + "~:points": [ + { + "~#point": { + "~:x": 860, + "~:y": 188 + } + }, + { + "~#point": { + "~:x": 921, + "~:y": 188 + } + }, + { + "~#point": { + "~:x": 921, + "~:y": 247 + } + }, + { + "~#point": { + "~:x": 860, + "~:y": 247 + } + } + ], + "~:component-root": true, + "~:show-content": true, + "~:proportion-lock": false, + "~:transform-inverse": { + "~#matrix": { + "~:a": 1.0, + "~:b": 0.0, + "~:c": 0.0, + "~:d": 1.0, + "~:e": 0.0, + "~:f": 0.0 + } + }, + "~:id": "~ue117f7f6-433c-807e-8004-862a51a84a91", + "~:parent-id": "~u00000000-0000-0000-0000-000000000000", + "~:component-id": "~ue117f7f6-433c-807e-8004-862a51a90ef5", + "~:frame-id": "~u00000000-0000-0000-0000-000000000000", + "~:strokes": [], + "~:x": 860, + "~:main-instance": true, + "~:proportion": 1, + "~:selrect": { + "~#rect": { + "~:x": 860, + "~:y": 188, + "~:width": 61, + "~:height": 59, + "~:x1": 860, + "~:y1": 188, + "~:x2": 921, + "~:y2": 247 + } + }, + "~:fills": [], + "~:flip-x": null, + "~:height": 59, + "~:component-file": "~u015fda4f-caa6-8103-8004-862a00dd4f31", + "~:flip-y": null, + "~:shapes": [ + "~ue117f7f6-433c-807e-8004-862a40b7caca" + ] + } + }, + "~ue117f7f6-433c-807e-8004-862a8c166257": { + "~#shape": { + "~:y": 97, + "~:rx": 0, + "~:transform": { + "~#matrix": { + "~:a": 1.0, + "~:b": 0.0, + "~:c": 0.0, + "~:d": 1.0, + "~:e": 0.0, + "~:f": 0.0 + } + }, + "~:rotation": 0, + "~:grow-type": "~:fixed", + "~:hide-in-viewer": false, + "~:name": "Avatar", + "~:width": 66, + "~:type": "~:rect", + "~:points": [ + { + "~#point": { + "~:x": 554, + "~:y": 97 + } + }, + { + "~#point": { + "~:x": 620, + "~:y": 97 + } + }, + { + "~#point": { + "~:x": 620, + "~:y": 163 + } + }, + { + "~#point": { + "~:x": 554, + "~:y": 163 + } + } + ], + "~:proportion-lock": false, + "~:transform-inverse": { + "~#matrix": { + "~:a": 1.0, + "~:b": 0.0, + "~:c": 0.0, + "~:d": 1.0, + "~:e": 0.0, + "~:f": 0.0 + } + }, + "~:constraints-v": "~:scale", + "~:constraints-h": "~:scale", + "~:id": "~ue117f7f6-433c-807e-8004-862a8c166257", + "~:parent-id": "~ue117f7f6-433c-807e-8004-862a9b5374b6", + "~:frame-id": "~ue117f7f6-433c-807e-8004-862a9b5374b6", + "~:strokes": [], + "~:x": 554, + "~:proportion": 1, + "~:selrect": { + "~#rect": { + "~:x": 554, + "~:y": 97, + "~:width": 66, + "~:height": 66, + "~:x1": 554, + "~:y1": 97, + "~:x2": 620, + "~:y2": 163 + } + }, + "~:fills": [ + { + "~:fill-color": "#ff6ffc", + "~:fill-opacity": 1 + } + ], + "~:flip-x": null, + "~:ry": 0, + "~:height": 66, + "~:flip-y": null + } + }, + "~ue117f7f6-433c-807e-8004-862a9b5374b6": { + "~#shape": { + "~:y": 97, + "~:hide-fill-on-export": false, + "~:transform": { + "~#matrix": { + "~:a": 1.0, + "~:b": 0.0, + "~:c": 0.0, + "~:d": 1.0, + "~:e": 0.0, + "~:f": 0.0 + } + }, + "~:rotation": 0, + "~:hide-in-viewer": true, + "~:name": "Avatar", + "~:width": 66, + "~:type": "~:frame", + "~:points": [ + { + "~#point": { + "~:x": 554, + "~:y": 97 + } + }, + { + "~#point": { + "~:x": 620, + "~:y": 97 + } + }, + { + "~#point": { + "~:x": 620, + "~:y": 163 + } + }, + { + "~#point": { + "~:x": 554, + "~:y": 163 + } + } + ], + "~:component-root": true, + "~:show-content": true, + "~:proportion-lock": false, + "~:transform-inverse": { + "~#matrix": { + "~:a": 1.0, + "~:b": 0.0, + "~:c": 0.0, + "~:d": 1.0, + "~:e": 0.0, + "~:f": 0.0 + } + }, + "~:id": "~ue117f7f6-433c-807e-8004-862a9b5374b6", + "~:parent-id": "~u00000000-0000-0000-0000-000000000000", + "~:component-id": "~ue117f7f6-433c-807e-8004-862a9b541a46", + "~:frame-id": "~u00000000-0000-0000-0000-000000000000", + "~:strokes": [], + "~:x": 554, + "~:main-instance": true, + "~:proportion": 1, + "~:selrect": { + "~#rect": { + "~:x": 554, + "~:y": 97, + "~:width": 66, + "~:height": 66, + "~:x1": 554, + "~:y1": 97, + "~:x2": 620, + "~:y2": 163 + } + }, + "~:fills": [], + "~:flip-x": null, + "~:height": 66, + "~:component-file": "~u015fda4f-caa6-8103-8004-862a00dd4f31", + "~:flip-y": null, + "~:shapes": [ + "~ue117f7f6-433c-807e-8004-862a8c166257" + ] + } + } + }, + "~:id": "~u015fda4f-caa6-8103-8004-862a00ddbe94", + "~:name": "Page 1" + } +} \ No newline at end of file diff --git a/frontend/playwright/data/assets/get-file-with-assets.json b/frontend/playwright/data/assets/get-file-with-assets.json new file mode 100644 index 0000000000..29758d1a09 --- /dev/null +++ b/frontend/playwright/data/assets/get-file-with-assets.json @@ -0,0 +1,105 @@ +{ + "~:features":{ + "~#set":[ + "layout/grid", + "styles/v2", + "fdata/pointer-map", + "fdata/objects-map", + "components/v2", + "fdata/shape-data-type" + ] + }, + "~:permissions":{ + "~:type":"~:membership", + "~:is-owner":true, + "~:is-admin":true, + "~:can-edit":true, + "~:can-read":true, + "~:is-logged":true + }, + "~:has-media-trimmed":false, + "~:comment-thread-seqn":0, + "~:name":"Lorem ipsum", + "~:revn":14, + "~:modified-at":"~m1718718464651", + "~:id":"~u015fda4f-caa6-8103-8004-862a00dd4f31", + "~:is-shared":false, + "~:version":49, + "~:project-id":"~u0515a066-e303-8169-8004-73eb401b5d55", + "~:created-at":"~m1718718275492", + "~:data":{ + "~:colors":{ + "~ue117f7f6-433c-807e-8004-862aa7732f9c":{ + "~:path":"", + "~:color":"#ff6ffc", + "~:name":"Rosita", + "~:modified-at":"~m1718718452317", + "~:opacity":1, + "~:id":"~ue117f7f6-433c-807e-8004-862aa7732f9c" + }, + "~ue117f7f6-433c-807e-8004-862ab306fa2b":{ + "~:path":"", + "~:color":"#7798ff", + "~:name":"#7798ff", + "~:modified-at":"~m1718718461420", + "~:opacity":1, + "~:id":"~ue117f7f6-433c-807e-8004-862ab306fa2b" + } + }, + "~:typographies":{ + "~ue117f7f6-433c-807e-8004-862ab6ae29d8":{ + "~:line-height":"1.2", + "~:font-style":"normal", + "~:text-transform":"none", + "~:font-id":"sourcesanspro", + "~:font-size":"14", + "~:font-weight":"400", + "~:name":"Source Sans Pro Regular", + "~:modified-at":"~m1718718464655", + "~:font-variant-id":"regular", + "~:id":"~ue117f7f6-433c-807e-8004-862ab6ae29d8", + "~:letter-spacing":"0", + "~:font-family":"sourcesanspro" + } + }, + "~:pages":[ + "~u015fda4f-caa6-8103-8004-862a00ddbe94" + ], + "~:components":{ + "~#penpot/pointer":[ + "~u015fda4f-caa6-8103-8004-862a9e4b4d4b", + { + "~:created-at":"~m1718718436653" + } + ] + }, + "~:id":"~u015fda4f-caa6-8103-8004-862a00dd4f31", + "~:options":{ + "~:components-v2":true + }, + "~:recent-colors":[ + { + "~:color":"#b5b1b4", + "~:opacity":1 + }, + { + "~:color":"#ff6ffc", + "~:opacity":1 + }, + { + "~:color":"#7798ff", + "~:opacity":1 + } + ], + "~:pages-index":{ + "~u015fda4f-caa6-8103-8004-862a00ddbe94":{ + "~#penpot/pointer":[ + "~u015fda4f-caa6-8103-8004-862a9e4ad279", + { + "~:created-at":"~m1718718436653" + } + ] + } + } + } +} \ No newline at end of file diff --git a/frontend/playwright/ui/pages/WorkspacePage.js b/frontend/playwright/ui/pages/WorkspacePage.js index c227f09b66..6e6c8b597e 100644 --- a/frontend/playwright/ui/pages/WorkspacePage.js +++ b/frontend/playwright/ui/pages/WorkspacePage.js @@ -43,13 +43,14 @@ export class WorkspacePage extends BaseWebSocketPage { this.presentUserListItems = page.getByTestId("active-users-list").getByAltText("Princesa Leia"); this.viewport = page.getByTestId("viewport"); this.rootShape = page.locator(`[id="shape-00000000-0000-0000-0000-000000000000"]`); - this.toolbarOptions = page.getByTestId("toolbar-options"); + this.toolbarOptions = page.getByTestId("toolbar-options"); this.rectShapeButton = page.getByRole("button", { name: "Rectangle (R)" }); this.toggleToolbarButton = page.getByRole("button", { name: "Toggle toolbar" }); this.colorpicker = page.getByTestId("colorpicker"); this.layers = page.getByTestId("layer-tree"); this.palette = page.getByTestId("palette"); this.sidebar = page.getByTestId("left-sidebar"); + this.rightSidebar = page.getByTestId("right-sidebar"); this.selectionRect = page.getByTestId("workspace-selection-rect"); this.horizontalScrollbar = page.getByTestId("horizontal-scrollbar"); this.librariesModal = page.getByTestId("libraries-modal"); @@ -119,7 +120,7 @@ export class WorkspacePage extends BaseWebSocketPage { } async moveSelectionToShape(name) { - await this.page.locator('rect.viewport-selrect').hover(); + await this.page.locator("rect.viewport-selrect").hover(); await this.page.mouse.down(); await this.viewport.getByTestId(name).first().hover({ force: true }); await this.page.mouse.up(); @@ -170,9 +171,7 @@ export class WorkspacePage extends BaseWebSocketPage { } async clickColorPalette(clickOptions = {}) { - await this.palette - .getByRole("button", { name: "Color Palette (Alt+P)" }) - .click(clickOptions); + await this.palette.getByRole("button", { name: "Color Palette (Alt+P)" }).click(clickOptions); } async clickTogglePalettesVisibility(clickOptions = {}) { diff --git a/frontend/playwright/ui/visual-specs/example.spec.js-snapshots/Shows-login-form-correctly-1-ds-linux.png b/frontend/playwright/ui/visual-specs/example.spec.js-snapshots/Shows-login-form-correctly-1-ds-linux.png deleted file mode 100644 index bbe1dc4027681c583daf8657b09d353b2b9a4946..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 155444 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

    kKispx6W}LVa<M^5UXV>A|rHUiWtxPY+@OWJp z0c^0DuY?|F_qToFruUne@TqX%nPzvVrOp%7zpMVOO*svvnb)mh3(NSZysHN%N8jb` zX#Vu;)G3F=7j|p6k;6Um1H7E$8^ozU+8sX~w!J!EnSIK;O^@6Rq%?#TYh|gZOo?ch zB7|U(aoTalHb80!bwRw<&g6qP0t=Fm#?qIOMDB1x-^{j&Ow-2La$J@N0;7DP3RVH zNGZwjRJLunH{Z;Sy?|6Lf%rT0Y5WQXSI~Y_Yio2e>&c%FfnEOy zZ57_oPQBdc{7@v4_Md;5A%%I_G-tl}p>chZ(gXp6!@6;42OZ|^O3GvVifiMsX5Mrk&z4D3eReHy#`Db8U)2Hs>DFKNeaM^Auj6v?bz@hykJktH}KPM}rRL$Mb;w z0Sz^f#RuBFH}SQ}Xds@xfSJJomfUaQi{D6Km}hXNJEE_lXwl8aoaM2Dn$$6^fkL?r z4mjU$_N?J&N(DvviExLDp0s4{_ik(tUdLWuc1$VI&qtFF3WFClQfCnhxN$T+L>vCqfM$R`iv+TXZgw z5aola!8e+2(J4TQoO4kqq0y*l7sbdYi=CK+NGK<$`bPc@9do0#`Yt92xyUPVOB zbjxe*T&4<@QgE8pKSItBk3QNK5V_s1CXl3*^W2?dI|6PaLz&*l;T}4G2*u8%2c#Q; zj(mgUtJ#0sgzBU?DUWr^NL)9hjDR#1MqD@s8sE-X0r4Y0vh*>}RrY!{NOwZ1qY*!! z*}460O$u0O)%oeOCR7DZ;NGKh8OgJV?y%7;TKWS*`JM?{<^9Z#@Pj#L;nEw9Xj{wbVY2}x{O=P z#A9t6`i}2wBS23~issTQC#`lqg>$^x?`Nk+`;BQC$@C>Igw1(}MyZd$1j(co8_C(f z+cgk5cvck?XZ@O3Pen&;5*k2d#H}@)cRQJ@r-~GxFrSg+wEmzR&b9>{)ukKS_X7{r z^tj~iFBDDyh`Tp38HrQ?SYi4grVM}k?tR3(olIDvG)7d(mz{47y%STWbtFzV<;nM$ zYwN@ML-Gyq40E?)K~IDlkjR8_(&A$A*Rq z`{K;Z{{C^E?CdY1)dz|Wk%IjB(0}6LUU?beV3ZmvA*85V4P4U6`T3^i!gAXjkvkJ& zN;SH}Rr}r%j{_{1ik|?@yJ@CCU9I-vc{Xci zGapK|!%xdRnIz?794zieBgEGTeazyCcVm1z9OtF2vy2>__LR< z82IR{UulhJ2<3q;34ek)>&gw!f^1nqrzdx!5w~!yVB@CBYruQTMDfKj-@hEa1WOEj zx%4{n0*cSYGA%kL@|F_^IGw6CXFgoHRg4x5t#jlGf%**tN!AcJyx_V?`kJZt0)&v1 zNVN;4xaUbgYG8dWWT7@HChVQuMetq@5(m>XGnOMw+SIQ3+M;zjNoOVnw(RScF|Ba3 zu~Ew~zsmVwQ&GMmSWX7EKw@`zqr>(0HoP0Gb-0d?S#+pld%E6@5gu|K=-}w+6)pIM z`yY;paVnqaeLS8dSx4sUq!%&!Qj$98e~Z~C=p|<~f-YIlE|?p=<{)N<^%MK7*eBk9 zUpk?DHRGdRasI_GHk+<#X^O~puYLWWwSIpsQzq8fWq~F&ko-Aol7QK`=2%9P*-~DB z86XhxP`G>;=J~2&QFgh%(8Qlbz_xM?e^JMOy2pEWnU-d1GY~?Giyr*Yz<2?l64YFK zqphpn0xOXxO+oAimH_}>aGtSCfSu#L)W5IM{%-DKD zqc|QSpcjD`0T#C29EDpN%v+Ri+Ny1MD%cTxl`*(X+=AAKFfo-(T$TTeX$VQL% z3p;b-+XD0iq=%0bb|WO)QSC1XF;c!+?wS3-UQf!fF%Np>wcCBy>Q0mPJDY{gIbMl) z8JB_^;h1GJ?5>cK4+R$12{k#~e>%|n9?C3Dd1Y+9wr%>n;OIy5Rx3R;xDiT|pa?AxzVxK?XZJ#-&+wms;V-}wsS@V=xn!Rw)88#0 zdwxet^rW*g|I|w6qHu5ovF!C_yJ#WI4Mt@n6`c_}R37$}nGk?cPVmoz4;~%R!>YNo z6*?%t)QV{K>6--y`3?Fsu{v<_es{Bp0}XvfFzL_272EzZH7LLbYohoQIz%6&C1k2R6jsZ-pq$iwsn3%mXb9ah z!C**?UI;n8gn!o`2!@C6*6T4u@*;wp?eVxghHRn0_NO(=VJw=-!WV^G6|A3sd1#ZvxpvG@^JsOWZuGYVM zrvlj{bO6zEhqc~Dfs8F*-k0_|L7!zp9~hxC$Np_hFxFpFvEMgW`WHL}!e6jseOu2ob|*fUq&HAMK6(VKeAd};y3OkJk9BSpB4 zGcJ3=ZV>xDf~3ARd=wuBf3O;?*H^wnNg`{vmavk!Z+ag-F!D+7)8^g!@hAmOMs{kh z2ZItQ$D{nBfj5hC{i;KHm=v$Kw3{Noun^zRf3fqqve}yPb2Dvr`5hRRm({lE@siT^ z3dDd=*J?}2-yB1~&7-ZaO`vK1aFd%dVw>rMZYXboj@0jkPR!tf`@7Ka@ZO=QGRXA=Bi0Sw~3;C@bX09yO*|4u#2GSa;1J z9&mYFx6t?dk!{3qC!+)DUBF}ypW&Qc$ukSZQ&PW>0)`G}3gy$z#Xs1#F#}v(udiE* z)a6P1(|pfd-#4+qo6xtO!rkqnFWO3J#~z&T<|g|@=W27kmR-HYH9dBzqd@e7qC6lC zb|j#_1WT3L)MWgHKmqJD=z1?6h$4wS+`8 zNc%aB)g=(hwk z^~u&kn1@J+E#ykA)+WSaSF&xcdKpRA@{nyAnBiE$V+Gw>$4?xe5ERNL_j$iW_suUFc+!bmf=P1C-`8^(UZYb9% zwb~@Trq|jWg6^TD8GA7#`j;N%KajRK_5sg(6T@Sr*1Bw^ovLW`KQirON@v~OIBY;x zx;t&3B@2iKFzuN154N1#o#^3HMQYRqb;17*$yBr%f#$Nn|8iNi?Y+sIO{9>GkR zEQxmBB?ZetmQ*hpPq{2LOGGGaV0jgix2TRWdz-hCdU?rKkVT0<0I|?C zto!)m2l-g8rHhXe0#gB%+;5C=Cl3vp5*Lo$t|*j8`{uzrI1ejjQ8_clO>In{Ts7rz zL}M2x1cTt9vZ|@LI_UyU31*q=W0%c31Yl+kv?mvMlkv;3W%oqyr>XfCq3Mm!VXsh& z_xkqQJoG`83k0v8jHtcru%JuqYrBsI7CyzJ^7y@VL7eM)wk1C`u$%vzWynCh#SEC< z9drbCR1sF)x-n*cyl?zI5B}*Td^s*NL2TPz{rOJsx0C&d=vD1_wwqs5IQ(N{;Dw}s zOI*n+%0*x8sqhkx!R9x%kta?Rqc(u67$~S-IGbxjo4faE1XDx2)nrlHR$Jax$SYml zvy6lOx4smSMVZhLfmY-+c_hABjx1cU{y|io4EQRQ(1LnmP>_H~^3Kz%3&!NQYU%fA z+>Dy2V+2bilih zYN`UWc&n{(3wBE1NGNC|GErUyB8IJ$`&dkoEs-_d=D`R~t7NA20RhzwDYn|gyw&Pe zaJM~j65@c}Mrr}HD6h`JmRR9ccSMipIF@qZKY8yky+QAPPF|cBFNU()3tU9ZR_w8_ z5l>&~W|NWGi|~vj--VRm?t5Q5*|uHG3o6W6wL+Oq5v()0VzH|BuVEt|ofkJ2T8aFb zrgP<$MW|450!M#X^Si<-2O&ezx%Q(pQj=&qsY z)0U#9w(*LE*=x?mBg(0-TjVc3b0I`sL4P;f{;^$uJ)Iz7L%$z0G=^_JtT6)__CB&ZzvV@*Q z>^Q1wZSndDKsB9*V{scw`ct$H8=H;J7Nm9J-e+oRxt*kP2mE>qo3b!nUpDq^vbzg^ zVh~A=Tl**JObTE*i`ZAT_sp~XS_?Y(Sd|c?ulfShp3bMhBq9DL1-@!@`{QosDrB~h zxmHC;n9-s41=EV{YJ*sxAgi1?2r%Ah@_1h|D~7!s2MY1HEI71=rR=#P-|-DRGqxSg zxSpFH7FqrH`bfajUUTqxX1gl+kHY-RYh7@T;w7_wJ}<^k?#KNr-JvVgv6`K~zILxo zPO*icU|D_*jK0Bruh5P6zk#o8YHtCxNEDcr<&+ z08TuP90kGK?U*-`7yUXl;seSWq>B@V`S1+bulu}O7Ed&Won|g9yw~q>IB(>1yAKvI zEep*M*xD6XXUmWEo^I5F#i4hg0OPIJAE>m&n}!o8j>rwC@&vl7su{mz&rcQC!oDB? zZjU@b2uGn09h~d-m7UgB=EYeqFM}G)j6|({EI_pBwzKd*Gd8;bxJZXXTw^*3y`MQg zF3F@`asfZnVcJt2Ks=jcrorb38e9tM5@w|i)aT34m0c@2TfUdC&qggq^P=aG1*Dh! zOCHOf_jheBL4mI7W}{v0nxn9`x2AC)u{>`qO@>SBOj-~#n*Aby0cJg% zg^Wa>z_HjYk(L} z>(2anB_6dCG@+r=xhXyTg34hcT!^-xIgxhr1s|~WxuH+;@iFGtqWy2dz^9qP9l|9M zUwS&(AEdw;H&ar5k=RW0U6>&+Kni5S7!x|A^=1}>1Z=Z(B*iva{d8h1k&=t&AD~(u zIY=N^UbxgjNmv)aSM8^K_fhnSBNR)n-~lbGaCgsn;vnQCFqDTajj_wRlw20$sEMmE zZgRtD@R(ejnhC{JTcVAWw?ZKG_V&I4@y44>&lOg*`)50B`)o>2L```QMZsQE))NZ}B9#2J`CKa!O99?I+1Jp!Tw%_JU}Ae= zDj0}x#(!$koN}ZzoD13nRZ2cDU}F$u4U=+KV0jxERD=IR#c(7TH$FYlANxR&egv=5 zX-kZjd^gFi$*X(MFwVbu0hZL#~kMfR=K&ajPGv!d`7aBeVpgV!g;3Fe5@uhGM?K1Z8?!|6R|M;Z- zIzZm9R5r9`@bey$d1>7?hEmMDg+|AT7Sx+bu{&()Jk~0C-xh;F4|yIz_GurFYD5kM zUCc)A18Aw(0VpX5uEj<90?#{5{xOBGN+9S8romgWBlu6yb>cNy3KNFO?>{NodZ*St zjw9k%Txb|<>TPL2+smw;VcEOju-CjdIHQaM>Y`!;D|?}*Yw|bsXUmTK$rJQZQ9trc zl;Eg8LK2xQ!$tb347e5r*+?&p5qIbaP#=x@1=L~opExXN?qjRY0A9AD5YMcFs@Z2Q zFzWQby0j?42%v5p_VM_z@UI1jl@=-hER#r8Sk4M_OA@s5uD75RsXgH#_|e>-$5b-zukbd~{8cG23VyCel+=#fq=p!};~U>|&i9v}n?287d+l{!*VT;t;gf#P)qVHB79M&#@*{>N zf0}5Rcoudnlr{F=l2`BHc@pxgAos3s4E7cVuu$iOA7VV|5}$0pO4-!|$W}Hg_=DnP z`rAddg!qI+grR9CG~V^4(ct($lt4-%6_Eb4ysux7Y*1D2X9z$A8b_vB9mOg6?Bo5e z!%x!l@T+~AN#cfAS-^XNh>X@3mbI}^PKs+9Z5-@l<93^G4L}5s3gSUCS>g`B>Bj5} z(XbU{Rjyw|?k~8<`n&1+K%W;W@JSZdgDH=Z-{C~wO%v7kmNs@RY+)_BIaiV)lM(HU za|yTa{@13?w+4n3Ruo=8(%@3}+6~bA=r!-ZN_BX(cb&e-Vm)TS+7etHTEzx-qN7(H z$wW)avWssjyNrTGJ=5quSj@iG*PV5S__B}c4LzNwfszyQ&1Koiil>?obP#ihvkvm% zv?!95d@uSgO%_=aF{$|delW#rg){j|c;o@TOXX2V%MRk}dZksJkFnL~Ys>+)a67d1 zyT@%L4<_Cok?}o*jm%x&+5<)Pg>PufnI^KrTL;jvXu8t=lETnHq?$+T9FBJ>c`#l} zz95=ccKfBDHYQ2I+pm);@|Ql-ULZN+(}|$&9n-5nigBP_`$hYTd%nHEru3Z^8@qR4 zIpgT8>J0HZM&7=Gpo@QKuiFnpyQzZES*j8G;yiEoHSX@8Na$Bqx4o)@7Yzn(vWjmfKif~LJJixmG|r#8aP zf)M;)ewh*@9+rbd4yhieCRy1iZe@McTaa4^Qmsu0dQISF8a7(QHh4e7=1wgDEF-Pv zgxGyink56n9yJqP-}69BH%nyDFS&B1)E0dlPvkl#EY9vL)JoR-4FZ~azUeJM5E=2L z{uXMFB{#w2QYlAnV1F*C$!Xdkr|;;!G%?}9epHf?vhbAOFjd?(#7ZUo3eZ>Usx|)& z08ZEPSKL)Y2TA^JrXzM?A2$oP5mNZMl+;%3(+o0eO9N6uT2^#yX_F$@)aCh+M^jX7GFbZ~33MV2*m7yolA(`R_uISt zx3K>-2SXhJAn44}9&RWyC@ka31&6&QCP~Kj#VhHo2L`GbSTp#BCGWl`5ZTqjyM z_@ie3&Co!5XHdStpT*^~eYqI~HQ7*)$N!f}T-+;0FsMlzhogRB2ubiDq$63pD60n& zzpMQ-MHi;6Z~f74O!lGK*c45w9p9src6c2t@fA#&z z`DeJB{d>?2X%4n(GF&uR6+qwd!JN~ouHZJF@UKtO+B z`t-*VG+kzfJ#Fqy|7>@);Ac|EC67oJY?H{uE*D@dkq~Up(BC=Z9{gVN#rr!E6f?W= zocN2p`+@vxtHrT+g~$^Ar@{c~=`u0CLqXM``vZ=LADiKm?7`%Z*;Fcw4xv7`IUKL> zYlN8irLh=rKIvT1<+^zmIE{B5>#!iKX6%TljLHYRdev??2SZH?qQGmhnm|GbJfoG> zB1!2PEz28q8R(MH3H+Uha^0<&?`QuG6tMW?E4TEI9=q4DLb%o2{s;Y6OdsdFc-OAb z4ewL}nNx}E>tZhej!lB@Tc!UC$@8f;FzEg~<8R%60b(|Xf3sIo?OzTy9PBCMqCBB` zz^&BA&*$lq#DsCPUSv}Ip+AHj$LohkrTXVe&<)#0#Neu4|GP&7PH~qA4tV()>U;~OeV!F zl7>AlS?;ulbF|zM8mu(pHOf(|uoi9xfAJvnEvGk9~Z3p4hC7Sjg-Z)sVkY`kn*h zxPjK0`xTZQGj)zpZfjxafiJh;Y|{m6eNuvb;sce0eqG1nwOOWaF!ywS85C#UGDXER zif1}9T|oob|6+RhhTsQ+4SG5syrjO*m)J<~a#6}=d&e=qvdSF2$aYs)^0j^EP;4I?7)G#NJX#KgM5o$oJ z!+YJI+#<+sdT7ITypsseD~2E{teL?u^__Ka(1E)%_0Y$Ae?syc=Cmw;`#AFo1?O}V zfTztDPgT$S2f>5WV7B2;Po6aE$>>|c=`UvNoFfx>zviL8e0J*2(Th8VnI=NmyH+`t z$srv^y6e1#rtN4T?@c(Ul9RWh!2ccJpC4oMYe;=_-Sp3;_bQ>nBc^ zgvtovKp7SDabJhDk$_tS6IFK88p!Ab=Q6iHX{{XOSUFXHfY{>ZJ4?Fx zh)*-EkAXhw>SBp4d75$h%K6zCk5$);6OyO?2gR-Q$5Pq9_)Q#O6zwFA=SG#|aTa|dXW=EZY0MIv zpn?Itb&fa>4W^yJZF>iCL}1MQr&N6g0Qlnul^ONEf-*xtiJNb6h2eVxmL=LKQF z6MMrBdzBy9HBfO*AxYaQqfno-Kok`nr4!w~+@g>d{pu7kb3DVMu%1qw%9L%3Gv&OW z|1H}G4T(l;q^DMaXILezwc@Rb9y(Q;bzljJOB{?}u662jYrInzx2TnwMmO!z!+xB@ z?V=8{uf8}NgHi#dH;p~D?re~!UEFW+9rX|Rj8B3`hZjXT?y7oGr%$_3)hcGZ^%=g; zBO&#EM*>}Jn%ZIL0H+Ee&=SCt_&+MbclMb`qg720iGEU)Eu|4q>BkzH9^LU0t!2r! zPbwX%4EhA?Q`1e(Ud%Lxu|5u%Kb54@#ELsFEMkO=rH*X8v{RDZqyvCioi9prSUCiX zt1M%#uEgm$G!iNJMY1zaSEdVX{*3Ddz+qU9CnW6go`k>t=+~foiCdk7P9k0S@CZAV zo*3|_BIXlL*WnNTW)_*HgBHq)+uFN|*ZHBBjSFOId$49A@YDz95vPZ&fM~H&=}pWE z7fFr8@f+l>0M@U#pf3-dI4n_cpv@wQ7jk=zH&qcc_T@dPduF-y9Xb`+mFfL(29(mn z5+m8Y1d*trE`N*NDgDZZNe<+{ibT)EpA$RaZXjG0+L{UwE7A_NwXy>obIP?lT*5EN z>+%smzN_Lg3SgBQ8!HlgxMV|-*&J)&e_G~5jpG%w(O`rh+YbF)&in};#kO7>XmyZfB& z{d#AF5*5U##1nKA@Qhk za$5AqjC$ZJ;{SYcbf6amqdf4i%__oY&w6?Bm2+=MGvSoK^U}PiucW()HpIgacqN8+ z&-O-CMnXtfip@)eldjEO*LK5mtZy5Wv>i3jI^-Ke>DC^?|8X>1tPBA%?^VZj**C9N zBHXo5IUUxa2W}e)tzG)uq>^oW{=1TmSAUdQy`k^OBYN%^(O$nKBrg5%bT_x z4ISQ~l_fAu>gZL}Ko~^?SpYZuZyjygp+bvSjFMZ%brdlTp)g7C50|%3)g>Y3f#c%1 zZ;wQ;?E=`x>^a)S^cc{R^x5^;44UQ1Y#8NwE{0rhn0VBTyC308XQQMw` zSZK+iI^d^&;g*TwFa3Qw)9+s{0sk#K=jGV|6)ae*DXb&Ar>G$p<%l{BF_Ku1=qbMI zDGtUgt*+n^mpsdmHA?LGpUtkUn@f|h&^t!+1t+3?RbR1;ojD_oJj}O+H5L8q64I~I zn`PW{SH>JF?7HLb`%A?{q%r6C3n^(HKTWHU75^Qs$?$5UT*ejunbRi@j5V)3nWXb? zTkLjt;XjIRveA3%+9tz(jxUG{ZG!K7D^C`a zr$H;qNjrYpP}!9{?`+6@hKvDX`PD*pTU0_}O#ptqo3_}tGQnHc+LH~puJ&GL&Y^HR+F>(e)hiGj$Z z?hi)?HX5$;x~_6Bj9dA>uwF$Mv@qPBq27crD{(=F{#bQcg3I9tUk=hu&r?&qvqZ~rVd-Li#vor2BA{e)J6UBZbUV>2s) zkLW4FuFtHXJ+$XjO0o7CtQ-+n5wggF5^;+(@R)za-oKFJ4LT6|O!%K^(#i2(%Cpddq`sb+x!>QB)j|nq%Dh^P8aOKC z{vFm6l~>{b_y?EwVX9Mb5RmG*wK8LmT%6+Lr%GxABQ)1MZ*%hHH)JA#>W>*9!UO_7 z*doR_ndflVker>P%_`r0>V_R4LFw>NRp#$-k%igkMX^nc#OSPAFB41k_|Wvr?*Q?$ z)enVs&fbykRZ84NpSVsO4BU$OInp{msA|smp1)4Yn8?;ri8g8O;e6p9>}9=}Y%}Vf z|6{IL44R9k348p50y?e4+K~V)>jwOm%~CmAkM5-qj~-`ZsxbaB;&Zv6q(f;p^f1a& zQ4mbr!gwx+;<6~2+mmxq!!j8v6XL=)Ina!D0(~LO;ODLo)|8ILL6}2k`SU{j_skRF ze(f*7z;Sxu{@L*TNJoih4wxJr4h+pE?<+|LvWGpI?LuRJ8)%OXzpCuBfoE5wUJe>> zRR5fe6BG8czb{lYsqp^<~Ro3sEm?0 z(%bSbeUWp-jCy6sKQG6OB7k7$aqQtdboc}7D~fOAW7B*m=5u~&rCIt%(sS$E=UJ8&nlq*A9+uv({c>fzo7$zO}pnjJ)S}hi2yMM|yb> zRsDgi-^^Po@P($n%B2{SxYzj1iGB`PbCL5Lyxw!)G$Gf5a_b?F%x_2{tv2)%S(jGQ zsZWk6DmFgX!Nk+)B%OYf|Q(<)!-&F$>dpvftFe#0u3)rlAF;WsD6Df#myw{0wO72eO>yJqo zrP#fE6 zF(Y_#%aKXG_`-u58`1rj6p8BQW`X$_@?7n4th@-J8wf(3A~mM-C|~NHbIz})K5Q`z z=n98S9;(ON_JAZ!YtDg2VoMOk3gMbB0FR1x`Hq?;Pj#jh8+&F0vshVich*9`lwP-%y2p*GW^v=qWA zMcqs)K+MV#CP1x>kp|MazA8!(-f>wkop@VWh{;*u4UNXH{*Zs6+tn=pQA9qb9*OAr zJo+Dn=z|QjicX7zD@fz9JXp}!udmj+kQ~+y`rW8Z!$e`<4b}zXS*vup7RYXy)*W-| z;x;J4XVP`8Csec9mgwrLDy;TRYMU`GJxkLgG3D3`WiN)4^3E>){^Ww)gFc+G#KQmw zL5Wo?uhzS%!{nLyBuG0eCm|}rC$0v#t08pT_x=C#zgv-ZdnQ;Tj&yz_b zcyhXbzSEfth_#h>h%iT1F`W(!f^t$GM%XYlT6agCgfmRVMMSRq+x;~0iVH9$b-dSm zSt`uGkmarg@aE1x(14-s6Z{6lO@fN)TDEIbe~@>PylH5MJv{II;rgS^N^t^G`#MnK z1^vH0#yj!fp`I@|$T%F9yRp%2)FZ(5-8rXYVnZy;V6L>++Tst5YjL+xXNs}}z2d&- zc5j+BhA=NoNX1=Y8_Pb;Y}Sun%*7VVvz{jgX@R9T1)_8_{~EiTFvfWVgl#ZEj(j$~ z+ZdU{JA%_}m+@wE9g#oR6H@2)#|O9w!-mT?0Y4|qO2zNBqHIQzZ>1R&r?eB#*LvJz z1vPpXLpnBM*NG)afyv&BNdM3y)nhYvhQ?(<$=m)~MHsyBrYif&HY^9t$;@m5Yr)0GjMUbhQA4gp;Z-D@y8 zkf%aB(QgTjSc4yM<6aGwkO6M=Ur0%Z929*)?vE!_QF2$nJAfxVSY2caIMwm1WUGr& zzL&}R;x{xK@uK;EoB;=nzG$T!jZd&CKCw1iKU$Q@&{u2IQMdIZvNPGyo60b@h>HfS zHPko=vM5O@tF|17>?CTAyrVM@yO(W>c(sV26Sdt3dfHf_35HSbpu6Np_Dy zi5|3AVEOp|act*)=?0&&UaL+$MkuN9$2pImWMUQLQ=h^0Ni*{6k>!DA28t`@u4Zr0 zU`Pi)*)3_H%p!ZQ*-?NubLG354+X+Qz>TKgK0#Lu*WFFoGu{ZEUFkw$YnzYcM_ARb z^LGMaLT2V~uZmcKwx(2#t_egBV%-vBiT|HUfG&*LjKgSE_w#9>D`l_$ypq*u-v=tlwWfC*^@ z{#tu)Qq%k18)x`P5B(#NWW2VIN>A;yB}DTU-3L005|qVPJ7sZk)mR`l$;DQ|A?ExyFszaW~k?qct;x{{z(w z(|QtA&0GO@3F`ADWj`Wt(7^WFIggC<$(YVX_CNn^L?V0<=90~=MweYYv{P`Ue7@~w z*Fu5AetS;lHi!bz+@JEM$llX0hA zCcOztBslaQp(T9~Ecxm{&n{v51m~$mjt+KrxT-MLD8EHHZZ91}-_Z=-LC?Udphpdm z?q!r*&Z65_lge&p>mo*#e5paYf$mWL5H;z>(`rP|>mq*he|*T*K~!)g=i_^2jn7v` zXQ)7WM3y%XYh(;Ly3g6K;c-A`pxFZfBDC>h_yPL)GyD(H^hb2Nln0fXw_;Zm+7PV4 zEUk6L0`IVGJT3kUD*rF%Vayt@_~@<-n>?f=C4AQc7B#Iltg0rb2oo%4zgou3NQRW9`!9BZWOL2pDO*#Z_mC&hik zSv;w*4=$X7{un_?Il`Q2H;e*R&*-kI^pwr_{&h0!UUQ0h7{5u{_;mFYb%3v>4 zJTP6%c9Z!cmp)OV#j-;72lMh*MCX$w>S73v0k%ndOYH`NbYWLVB#+_Ii_|vk#vgHo z^xzyCjb)dUi|WphD5*JlB#+LSC0#<0E`5*(H_L5DHZpY21)_rI`L4U4&hbjA*spc8 z#)^BkCCTchHnr<+0gVU7uzn6_JFj|18k;X2bHxCg4eVE){IDT+6!4*D@NC$lG7&il zPdqP6?|WB`-fc#|jbYuhPL0}MS3wPOg!?)@ymuAz$X+IuMKMyF`mo@-jt>c^Owya& zq8<`Nj(QBmgkvum@+Q$e%o@SZiGtU8yt)71oUM~W^+~`q+h#I5L2XN%&TwWD$uFd+ zK;Kwky6FMG$o6mOO*0o{4e1v;K)}~#Ax<4=kTPY_X8KcK@*Cnn0`uMWg_wl^X|S0f z8x@aH+r!wpCB;ajGen$^OTdcN%W}wD7O>CY4JU!y~Vo!lT*1s3|&%xC2Hzp z`;Q1K4DM)3yXCbfkH_((IHt7HP9S--bm7tfF#7S zsH82YL5?E5^gD<}Mz|)eBth%uIq;Yn_0U96gUsJ~qvPa`b1nMj^WPnlbS8$3T@P8r zBQ92;VTo-X(T9)Js6K;V#pkTehmFlh$Rnhis;oH{*ND{U9^Y*wQ7S&g|3^iD3aD*U z28>;!=fU#&N#thF0SIq-jA#$0EXOlaD?;Z}#?D!xo*ItDA^B4qldQ!&rD@;RGj%jV~@BV7|3h~B$z?O8F?2>SGP`>_t*GmQjIl68{M z5>2!Y`W9#L#Tt&#U+ux#TJmLVsc#|{(trKOs{VJMmMcH{LZ!NgEfjb1c^RE!b!Fcz-}CY-FP>(d9rr@0%ctyOt;1S$PjCT(^}FcanLb*&*C%uYt!I0E z=iEF{EeM|Zitb3&ofT7=_vQka+P?8$CILiyn(XIQEGryyW)V)*c5TE^ zKjHXZef>X{$rNd5D85!ywSPBlj z68;4lKmu{REY`FF9`^eKj})%dl4$9!T40fg<+htQ=^?6StTy%9-A=re3UsZATO%(zbtEsk?%PI5VW{3SI246ID z?_Qsk7}~f=mfQC|^BSXa^^ySI{_|2SJeSr;74mCRVo=@f6Xu=1EnUb~rbk?D#pEl* zEK$^Fb+%RgAJ>3$7qGUkW>6XNUy`D0UGV&N)mab@er6YY410S#y5@7mPwLRF%QTMQ zg`1!nKBazL^E}H^H9bcrVCKNmY2?|-9lOYoZ+46!!umY*qzBz#LMP(QUdw_c)AFRt zH)%1x1@Q{w=7YjQiNJltOf6d@|7DnyQ{C*+6H&9_Pqg=zC3gF7rzZr{>uIH@pAABF zY~S6v0T+@BIyCBEf4s5OvAW$u+OAZcDcfyl=a+k4odtM>2mt*5gP2G-<&lEgKMHZc zgxR0{;4A~3OY3V(BwwKZEaO34A2rb3KKTo=B|`lxM-Q=3HLU0QV$pJFpHQ9y2Soi( zm_%Yw6i(bJkje6(h^3a`OU2#o7oye|(Tk^gw8}#) z9-v6=MyCb6E_N5Y*_EDvtRCw*Kvl@McBP#Rd*f@_+8`g(;EE$2WC1!HuEnmAn6}lO z@$K-o1_iX>UI{g^O_POJ{>i{?@X*UFh|-#6r{eXmZUKCbpBDA8-;pmM0bO}_mjDBn zgB%u>R~T08fETc5gU8;RN-aZ9pUzt$Fk;x`KC8zrJ~&Yt|9}UE|9}Uju%bsIM?y7W zKA}hIUQz3PsjMrZH?AZS9h$H>FhM?sMqxC=Fi)zOYv^!)JvTFGqZkyuo&0GUwF=nk z6&F#zAz2d;FNmUe(~HUo=^3-Y4{pEGNN}*`obY`8oYm)JLXf6Wn^nqvrtqtZuKenW z!3mZI4k(8|Cnhv&z?Ik-Q4wkBkU6 zjyAvqxg=SUr8MiJ#bqt;7bXeur(JxO3jH8(Y|Trjo%IZH&fCOM!vTbx&qtSIDP;C; zyV-rS{$&xv2x&sRg9%lDmqpK{bnO5OCFugOvTB=)i zk@%|mA0Yvv^CHRG1|yY2vmy^u@eT|q+6KX$(fl7A%lf?<4CdkF`4)ANBi zp`Q>$1w-jG{}KyxQwWHcwE3cMHM3hc=IYG}Z=}o^udP}k!qPNy(?Esne z3i0o!j8+aHiKmj~Fx43+U01R0@{l73+Fw9t2^RG}dRG<%DenB~qQvv_X1Mj=wjPI1 zX{@OtEL?_21q-|(`Fe#S;MMQ)f&96;n&irPQ$2eWYA$u)m>X4VU-n;1F8mTMY6|c3 zrW~k|Jz|~`CCP0SQzi&d4qZ&pfd_2A)>V`K8E&xGKqt<)}b8 ztJPzQ_2{srEgOUxO93AZ?wA95Z^a!HnNAwFYv6Ki=Z(m`TYLtwNgPYAyeG;Uwk1O# zLFexVw-=#g7P7A?1?4h#Z3_sipJ7iej0X($>#T$oQz&`-ZX%(y-> z)=9>JCfdbcqM(29LV~IZzUlJ@H)Z1GH^;Gg;kc47>}T7eGp5|jg~1S|!D8$e{RhhA zzUZ*@La#1d*q5k1*ucs>)A{k^3ZdS3nRwyF*a1S&f%9?IIrQ7U`#%z|GJp+|L`L&F zkUC{W0rjrWai5`S+HbIgsVoZ1Pobs4Rojg*6X;0+4+5Y*Bfu#Xx;Y_fw z89c1~i#FB&dR2XmG4p#>)eZu4L8|~WxPpG**VbwEyA(MDX&6=lp{kEY})7Vnp;mdQ!{)qS<`Q=hfrLvO+v z)vW%TYU#CLl|}wu0+gJ$9orzAcz}m}6@gm~r{=elPHM+6#A^h|EPjfhXB``VzR7wu zl2o&MT4nuu@NR8`cVSAn^M^Ml1}^k;8dv;RY3RcF-C84# z=BXt1(Zx0~gZjHvv1|v|sxv;y?1z>^XX4x`jNp$5+g^5jp4-_wSFoNo=wsqKMP8pQ zgfq6yJjkk@j4VS)!!8bR-orhMIT=cQ1vBC_Hh$~tQ6@e3%92K?L6_jZIxGi|t4ML$ zW13^HPAU;7)h5EqN1f|})r&u4PX*lc(DSDFr(4rcrTsrHiCW1-qF1=k$@Au&dn>fL zd|fGhC`nX`ESlNtJ5rsF>_ITMab&FzN~;#?EB?G&x(|z^?Rpwq* z6x{9l28Mb`8*o-I3lz9`n#pc+8RJ?=lCcxj!25kDJ!}h%-0)zC=LI%K2NIgU#Upys zA|5Mnkw>194M}6pb~uQN3I;y}k8kz~y+%nS3i?g)SKE)fiT3;ENBoGjE(%`m(2>mL68h$p%+bsYj}G=y7;;03 zF;H&e;PZxS!9Vns4Mz||E{W1dJ1kRsxE~$GCW*J+&Vs%n9a>$~VfNInhntDX;_=eJ zE34%A*q->iFOxc6WS{9G9-n#z?J1otG*=LU;?FzmKj9uzjzK&Q{hOX0RElm~m;!wr zX+$?5fTf>9%GMIS2AvwmKPJ%|OpxtKjE@3=#MQvabn;_b+fFK=d` zwB*`#zI2N7W0@`qn$?MLTIxu< zc5!JsPJQ6a%@IQJ*;aS<-7b?f-7hC9A(2pU1N$L?Sl0nQ`uCFl>XO&we2v$%!S z4j;E%e)J~GeG@-1#W@?R+({mSDRNNPd@HG}5 zg05TTYZR5#lKmDtfv2c^H&AxoY3`;QlwCoT?2g$mp#x$e7r&Fz$rr*JWQpr?nzZ+D zi|THn0pBy+r)DyM;mm_BvyfLYVz7A}nxB^3lI|CJgHPW8>X>iSrCFR!tP7{2mRDbl zI{KPar;Ij@lPk;vg;_8XJk>yvQ29HLH~#5yn#1)`#we*L_5iObOH*ku^OE=b_j?>I zanmlV1mf7tA#{h2Ey_h$NAH>1q`w2DTf{5V$D3C?(}{ zwy-7IHs#%X+YC$^L`E?sM{<@czVD=d!Ox2XP^dm^1^ft-<`4AbJ&*06IKWhBS;>fy z#cwid#x-Zr1*$>q%V?4y^8RlC zwEDDsv-<67=O@~vDlv>_XLL8VZ)ez>tHqxss%p$x{a($`QUIgAeQ7ZgGw?!DL^M)CCiS@GF<3Ha$U0qM}dNTu;rDF42G;=1qTa4-eCeGiBki>sAS>pH~9w z!|ewf{5w*~rP_^;FAn0Yk_OSpOzd&}0@v?`csgHe2vVY@@37iXU4ui`f>w5-(ZO9FhDe zxYrx^V{yB+FVyxBK+*QJoc zcNeCmB`2_0jzdd^XDoc@Ee|>KeJ;1?8&nDymU+{Fk`}BxVKFh+cFV6K?3q@(aS0u4)-R8-vZ;p*3ljI1>` zH&er`cwG6Ed~8yBIKU8U4gu`n2|}2yRqifGf)4BAt|GB(n*hOulqwf>+n1=ob()sLW-UD5e4vB@QaM!^Tn=VoQ`wi+ZY0 zYK|NW$#hRrG?c^dcqtRe-i&P*X4F05YQ-0*+!TfW0+#A})P8h4g!J76 z3S!5av87XG!bph8ya)*yq^;vvm`ebZ~4F}<6*gHH^ zyY5(LtvesrBh(9kOEqIf0G%b`=$TodCUJkqqAHt|5^KAM60h8s{(L0^A2VJ}2bR(# zS27fWn{ev2A11!dvV+AO^gI$A+#){NC4Z&d;ho3Ck9|@p9QZozM^ghaLm#lO4Mru{ zuR95Tr3|PKXiTby6M4+%-+ZR1p^V_ivzoR2dVAycr`-#QC{$t!p3NH}3^2oqA?Xd* zO^~Ej4aC#;*_*4S&Jt!j#q#}x^~WJK?<80$AGMI@BVm^Lln6YGXV+3MnH@Dkp8I4C zoSKI#X-k=*(TdMD^Ml-vjH<>eab=ebbPV|`o$u!UAME-%@kt*Yf4ftw@s}pck9qK- z7UdJ-cygELOJ5XIE0Z%axj{TwEH!RwXpK(PnJ~SOxKon9eo4ABzPu^V>ZdyNYDOp{wtJ{=s-T2W6Z$J2xV*QA(Camm*ZQ8N)& zAzC{>;cE*mzNesiAOoT*sJirCp;=1|d3-OG0eqvP=`GC*cYn)fIUIL>5FA@Panntv zXj^T9rhs*;JPW`4ot$Mw9r=0l;qAgy5dqs${wc|~R=D;jA;1TAmIW6TBZLolp~FnonbfRBKbMkOz_c*siNmgErSD0u%7Tko*{Kg++mk84 z)L$#i<78g4Z)NguJ&%_xQi>4=id+X3e6j6}qJ!Vq4l^YA=6 zK!gtI^mOWG^0%M7%engYU4qm-a!(BKpv#m{;;^gC_{p7_5`4PIS4XW`XKGD~39wBj zXf-|1@SFP1J)K4H?q)vg`007bgSm&GinTUnE64p^+A|4X{jSgN0{{8Ilh21Z<3H{K z8AscHk27uXj!XXB-2NFrzBo_s6L-yyD7a)NKZmF%4H7maWKX&ZVTKI_B70!$?9|HT zq@Oc>;ajCfd2H{f20l5I=Ikx-Owz~*ul8TPwj{M8|BZ@wqUv4UZ4dTLWpG!hD8Qiv zS-^J*Mxnv%*gF&W`C*#%^{x9}{)XVe`!=0 z^Y=cciDB{}a+wnp ziDcTrC*dSaUgnKUz`Ns7w8U9GLr8g@{E?1;C-d@*Ug~Gn@85ziAsAE?m#=$01UVr^Qn7ax&m^&x9!IGt+r;S4@4Bcts7 zPc*s=aoZc2m%r#oQ<024m6N)-j-ORe{@P|w4nIMjE5X{b^0EFxGc2dFT0#6VeaWXw zPaFIr_II1Xs2Om^N1bITMK#ijH-Hm!Z>x2Y(N&havoDpM9KW<=^x+%ZNv9icQrn+_zLShQKK-LT^DzXz&jAMJK$w;Rh?7`h-AFM(>Kce-P^gS^_ zXkofC^*|x(20wc?Ufew2@%9{zvLcVR((<w{(;IgV0}NeXL% z_`Fw=-F)`WH?s4V(|)v^EwY-IRmG4>mlsOhoAY8q6Y_bgd73`-*a+)sX z9gjHHSjUxTd%aXKYioTqFe2~i$$75t*m zRG4{pQ#~c&ZjwiZg3aNkevfdwAo}C1lID=Uc3dsZOzuL&jHePqG7KS4jo3gtjLm)J z6G=GsAARbUt$g-$f!$KIMKhvmc?|urXuI#XUYeU%OXg&n1wv`gVlP@9?iW-J#(IEK zj^>y1?UGzluiC^wg7J1_p*}wxy|2!jyzRH>jzxowwak{fNU_rr{}!+DfSp9O^ROCl z%jpnW$>K4gl$JB++PUoXt`s|rBzyNBB4Anc|4BEeDFNkpTkZ42A~ zW9luV;%u5|QQY0#-3jgx+}%C6yEC}EyX)WtcMB5ST|)>A&-5R(CyJ zyLRu|b!>Kfv!kD4e_Da!yZvBa&zqnUp2PC{<)1|15uyQhHMDb&X6&N16cF^lp5Y#|6kfyP8 zhN3zvYE}I@08mqP5??C6v8d`~{3A;Xxlvy%vt=rhRZM;wi?6C(@K!IT`i>(3*gX65 z*6KGH&Am%6wu*M~IM<$#Izvu+ zbA)kDqBmHg*E*ilt=}SKo#;Lt&0{`*HBZ5_z#oP?_7G2>yozaX>%cu%xC_-43AJ7{(?qiS0HFoJc=65&bjsgh1O5d|#b^8v%aD|}U4x1~%f)zx_I z2l{%03zxrks!)&Ho}{Vhe=`jqfbwuZP-?O!S*|rTmKfz!y$VEqc=OE|8BQ;bfQbL} zlozLMV2v>HMbU1RHX6uI$C7}nxSNcp>EPBq&jH@Sj;T=ZoEYv`?AtL#h&@kSctU|x z+f#qBqI>U`s;+d{#R?ggs}mjg@4HY#*f24bBkrk=AxZ)fN(!#sOE4w<`QUyS#q4uz z*E+C7z2vDa0ZJ}sm)L3qkm}=rq#{|Df{zF-d2K)0JV|gy1rmbSc!sye2$EL&m})c@ z7w^Po)*yu#&Z<{xP~p~&;h=9V9>+>>~ZrYPGF*ht9|5X{5uU-9=uS5R5! z;$z|3HZB(o{g8KDd#2Kd5Q~1TtQWcZ91{IjnI&K0yPsmGH{aBa{e1zw>3-)~T8*hL zIeG0`t4UrJ7^(`QR!w}8f#_lQ;kj9RjF}ZEteEt7{8nZrlY)fVhng$`4}) zE%xqfl(l1^iWodUb1Tj94-_vVX~aWb;qctdqFHhoLrO*3lrn*PO{7cRVVnt7!SF|S z+doW%ccJ5a2!zkfAfUFE(vq?e;$Pgv!Keq1VEZ~aVtBoljfUL-5w{G(R0$!)OH(Fa zFn;IWJGSuc8}=Oq(u+edosPar3vamFkHjM2s<$$y;qalsuH;m(uh4o#nPZDSWSn!T zwAo~MN|fwexv4D1y_Ja{aIOh*6$Z~eyYKv@OsRcV?Ev-c~Bh_>yKm!z6%T8I4O?ZkvE{je<)|>yYESMs4e}>#Da&pZj_y-pfAcf{G*W%-u zpqie2b~>I`U~28m;-DqNnXTONPU9d`w7mzM0t;t(rP}Y5Hy$K50%dBujSD`8Y#*}x zI{xO^Lnh)AvuXR$$GrZa+F(0h0%FVMztYf}uSH(JuU(3%xR*bCKg>!o6FecWz*8@u5Aq>XU>ZMmHd z9Zo)x=#c-oF_;W4NT)$acA>iefFy$>Ir(k=i41al#C}kFPlBzpvzbi|bMWA|r?KMd zt6aJL$En;Au+Rs5R7n^%H^`G?A(9fN|GMIJ{jVe_MpV93)?fLnA%G74a@4Xj@^Z{o z$&@6~L@m-M<=%=$Q1s!CGZ!L0KEPCssP~DIA88Pd(kzDU`={SyAGfd=^Ia3{t zgZIBXa>D(B(zAWUx!1gT8-ZO+JFZEhfjyF&h73-Fg);x&9kJ#ycgV^{Y5pr8`zO}S z1?X#R3=&am{;OO&Ne=&T3Q4Iuhw@t+0k;RV7hU_p=JCGbx-lRllafwuD8-@l_2{2t z3GnRr>d4))LG*X~bnn7`G;HvcX)<|;H`vpv3v4$ugD@oyLS$Yyh`*B&Ax9fZDym;; z77zDp)XMB{(PSTRBC}8XclfSE$igqyf#ba)EA!ETXDCF^Qqk-e`kj#&=DlPI5QN3u zC?SL+-%LJ&Ct4yr2dyfN?eVl0uvVLHQG`myd42wl=Eq@A23KMf^QTnx=;e~tG&wZE zrISlv8nAx2&cX$yS||+pOJ*)5pXV2JVIE?wjMyp^@f0PE-w@Sx?$wjz18yS(Tu8#j zHSCXZi5IwY>5v^(m6(^t<0}JZT0F@Dj=T_>(_g7M28YH1Qvk*)~KKq;0 zV%oNwcUL0Y$_SlFbM?e3uOJ~6JNoeX-==@4V&VFkju{yF9fOF$vayt%LpE}&WdRpN z6n-#NwA-rFDxrE}-eOrTD5Nl;-usI~+i->95m7?W%LfU+dnr;F;3H)i{pyyS4?PqsD^1Ed(yq77xa19~Wv)zhndm?^|ABFDrCtsHL z%~hGI`SNX=A9N3oI!_;Fg7N1s=jy1u1_<4opXAXI<f9WX4aTYj-B8$ z@fSha9ch~VaH4|a}Hv zvC#fhwSrW|3SPBg+TiHQMGQ(4o=ex5Iqeo>(T2}+Iw%9}e`xRgNhvFVaYCu&EQzr+ z<%JpU?ac=-kH1e)mUJ6Mo-*}mi)WDu`>z3HYgW(R^~`2yHfv}ad0#i$8V_A19kq*W-2Yx&3Svx z0&i%6>;MynxU~9iOOUhLk7JqATvvwz2m}<+Al3E0jA# zH4rs!5QEN3Cj&Z^^R$a3Y!$a?DSClBfQw1W!m3#6-Q#V~_#d+30(9BgmsiKGgyg%S zj*x2t7p)N-(Nr1Q_FriD6p8oOLazF&_gAAzWwJ+E9i-JQ-McqEYs7Bh zpn3|6kmwR20{lx@VRnaP7kxxLsCfgH>AQ+0+Gk)LLO_;E-ea`6svITCS!u7a_L%fQumqY(Gai zi9tPy>`Z9}aq*+di6xIX6)-+pCm5yo(>p%qLOwQ;#)Bo|0uC#}%KEb|8ig>gTv9{n zxRYDp^AIB~eD(=h3tWUPPxkl`R#}%_;c)E$zlr`R}PZFwVMW1?Gy_-KBu?tHa9TP8cXpj zdGVB1H~H_bXQBNMi4iN5xhNLlAAo#QZ&JP2rNSuNmA7m+^~Bm+P~s3A+H%~Z=SAb! z`Tm?wnRYW<3UO$^S3c81B0qK=N)fX)$|IbXpNk3#UrX^xS6OGwp$09QAk8KG+Uy`?1Lf1Wh#{9i!v`5nB}* z_I8$F#1=-ZJ_L~}rys7Usa}vbhnp7D0Vhpv;an2L*dAzu2Wobl`+D!tPAL{(t|-{IR#XknDcvly1Yc{|X%JJm_U*wwQ!8rRHX_Ac+&`N#u2t_i^# zj_s@o{o4pkcf+hR@W(K@#WevM5*(UxB=J=KoLc?cq`7fNbZ?1pg%QKQ8jLgk<2Ft~ z9Q_sARAjX>#`lkY(J}A+u**fzz`phU`y7A^>J9?wYVyd=v|13Z2iVH2u>Msl(^7n{ zUKzd%{rAPheE;u@8HAB=kGb*4MHd=b{`1t1D~_!EGnY zs8W5n*W2ROEeV43aD^Rm<%55-G(2f-nvt<=E^>WYgFvX}wxc*pv9pwAUOPJx{LPG_ zN&|9z#Ari0AlUeA@^R|s5Uucj^7pQlZ>_5sL2!->MBFU%keTFh(IAS<>j|`&w4yk8 z{26jdF{O5aKI%1ugtDKj$CpXyv+@LDWf7lae8OV4GT-z*!gO8l9lyo zs#5>r2|!_(%rE4~u}^Ck7yVkO=>KIPl`v)4AVznG$}$yo0m+ZMu>vU|U$fX@mZ?tx zN(~=lDee+(vt0ehbgxShdF&MR-o8QU`J+x+T|wm&kV{UA|fyM)n3DNF#^#N zB6zC^6^{0<*bMtyWX!2vNfXb_e^wK1c1&Q`RrJlnIrCXyNOur?x}Do+0yfDH^B_0| z{VVdcwx2a7ZJa@&Pfa^OeiMq&(e%wc$3pz2CpTy@jCi=#`iLdi# z1cUq<0Qd~bd9%Uw>TJxQaN2h&n`z$4Ofj9rL@s|=@(~Bm)&$u^eABkc=lOm;sHUs< z$+076aRT9r=*ib^AInhW2@ATs`M|JRVk(M!_<3s?|LzZw@zq?9S$d16? zK(7&g2tUfct`A(a?>Kko=#R5tLD+VHZDFE2B%Yryva;%@!611=M`aa2Pp0Gp*EQkA zSp@TbOI^!HiR$F^vbDe?y|)4a`kYH*H^W#XHn!0zGn}0zBC4`(GZ$gEewEVZ-52pc z>@oG<$$QP!U!;VwYX=nB`A>Ex$CO3)r>yG~z+L*S=6BbwQdOQ*l}@$NMZ@qvX6vgt zwPX@8TcDtOSXfw2oXjABp6O19r$q!(Q|5kb*dQSi8MOQC&0sjt0PJz*Df& zK)dIxQN>AX+bK5Cg!Bn>j!X~rCYs{OC|WutdSCi;z+)bE7Sqd-P*PA=I&(s~zQ)9S z@X;JerAm6GT{44Ld`R;k<8)M1S&d%4Reb{93z_n-%p~_N$;OLh702TJ1r;;)zfwT- zf9c_P>qddOl~l2QS_zt56AyY@UF&{M-U&o?&B!rf4`p6Z-Pbgo$YZcdY7x!juA8cC zCCsV$YdR{!M{LV}sLNlf&Wf9v$FNZxk&j=AW1&z!)4bP&g`4*BCGHh#n1HmSG%b~q z2s;LM7B~8)Iv7Wg7guNsT7nC1?76N*nXb*0Da?KJkt!U$L8J zOG6nQ8$3#;i+|n2X37Sc7j%qYJ;5!HT;*h**^;mssf~~Um%G6%7tdY3`ewA7dqoZh zt&9ons-Bg#1v9h#C3uY_5lE98yf3fYcc%xtf)q_fl9=%y>)U%v0KQJEVQ1fCeu-m7 zM(B=c%u%t(BXwGHq+vVtR^@*P5sexS?igV!h4%u+QHIaWT(bsG-Z2ARuI5fJ#74uX zp3@Y&cA9A$#w2v1O5s?$gXTI%+)do1PF2)G`Vij$;^Z1k>SJT%ciuPp5`1u1s}%(qC^3MtukCeAS%`%G+I<1Yh6X<7^@hdL7rz!3ELEI`%hVMC-E=wQ( z0cqsWuUDKdD0D|I@+JQ{tDu}If_k%|s8^j1KN?nn`fTzqd`IIznLSZWgy}dp6iHqqY z>#%0k|Nf16gt46)8aRCw^W*8l7jwMxcgRB4^oXWNvLQuyU;-6MfnQ!A^5@$P^Oad3 z)ESiIl1PNa`(hd}bf)!VXxrgOLe~?SYJ;(D$xba~t`IWyYm{mj!Dpe<0Mi{zwvUd8 z1>_2LUf*{9s?}Gn8%Ph|+yBCYyxEnt>269RDo$CY+XdOG+2ezjh;9)b8^n19X0wdm zrUDWLqtfjR?c~J@pD;!9(}T5>if$E%$Cz4j_MOdNJo^$g>A4`FHL)IbCT{|2A}QZh z$`%ej?0mytN;WNFtqY7z{L3o{Gr02#q2Z{#-HogAC+wXDnA}XP47Z_^5g~S*Z+%Tt zGWYUo5lviBfM@`97*{CSkxUDz^!E>5qf3_CmeRz29A(;J!>5w>UDSYRk=ToI#a_jvyQ}xkywX13Rj-}>?nt+W39jb+)(M{n8r}!9&om*#8c6Mv zWMgnZkcM*K0wp{N)?JY1-p%{#qrcDREvlI40L=d>BG6qAqjuxwaKCr_Lto2QU3O#W z;Gfx;Gpx2>V_Xf)`jy>5Il4LLoG>FLX;gZtzJEx77Pm|5G0j8iT5;rBW3f}44we^W zf6#TgrI$gv|FrF#KWlhS6ILYrAc-A zmyzbw5N&@IWdJP5-K$M&vNoU}xdv)h%Pc8)A1};?=^cU(oMHMqO4MaqwF4U37u)1& zbhO;?qx5A7^R@8x>;AMS`!8Wo3#vJCFOoM?n0|xeCU21npI)PWy6xsL7FT@em>+N} zr3DC6`x#s{&cxK)fSvzy2x}ASqKJ&0&7(@0x6}>+FJ!&{L z%oD%CB7En1?aPHP*`bZ`O#r$r+X*=@oXkcYu741X8tKHB>{O5vKa(IWH9dp23Rw$B zuPt<-tFi4&kpnK?p*z#cxpK1lzc@5%PQJ0xW@*R0x76S=SbM6ky=nZm#x>DPeA?dJ zQA=@Xj_s6_B9}<-fm6HL%+X}=LC;M(YRE6Yc@+Ka_c>s;GyWVUj^)ojqpMtSH$eBef zvsv8;ncJIiynB9Y@D|RbUSmddxnYy0B{EnrMfWif5a@RK@D6=RU;duE$cX59$ZY3* zN-ZmLm-)7_!R8O?^yC1hbj3Z&QFl%dzUo_rg^AFe(B9?_FZqs|1bj>{Nw|OFn=vqh zY9TwfGKy$YTZ;6>z6V?q4NDh>i1{F+%uqu2lXQb9&*62bvmTdBi_IR17)_U%I-0*2 z3_jQTV5;|$#s<#3>jFHQ0K^1(j)`4Bs+0B{WTywxZt2F%M;? z2$qp;xP7eAHS^bzT-}7-`f^M7G?t7a7ZLGYa(wPf)15R?>gG~oz9pX`9yz#uMz&x$ zmlo;ILPTL^DN+Kje_xDc$IKL`HQ}eCJyJVKF0=+0@6k0YW|9IUDv)6nGWob{aFKuV z!s}UqMr*!5fU=lIFeK5B_cZu6#RpzO>|EpO@JM->F380j()W~aW?QF(Z}6U3^nHjR zN!MZILsM01P{h>8{Suj-a$s5cC;u%w_q1HeemP*0uv zaXDc__(r6+fGxUa^-A`3u>vhWxj(*4V#6%Z$sHL|Wu_JtSBKt?RtF6X=xItYyG8NF zPH|CwT|aA^sEea}+`FUG-q39pftnEwLf@ZIQ3B8#X8-Kg(y9i&LZ0&i57&R7^e60! z=y(@Z*2eOkUPN`V{#1wXI=2D#y%6K6i2&4#1)(%Qv~CZ(LjqK-n~S?lj#q`GR^M~P zvZSyYe=teU{2!^v7iI|gFG&g^v722Qzwjrd#W)W5TdV}kn|nOBf0GR(lE-%A*~?uC zXfkco4DBohPMS7T#JOK~7gvN+!f5+=J|6qZI(TBUug>pxx^dFOJ|ZE<{lhJ2XKrlC z83kR-DT;JbMI>9MC5Vx`%)6b$8f*{?K(#-E9JjzOXl+X;Ym^5Yr_chy#^MXGv%f#HB2jqxL3B{UE1v|~v21jWnvNoMg&uSlxfQe+szC6TfSd}DLN_rur1 z(4X4<`JJsbw5?V8*y-jpf9AToRIVUV9=6f=J)M50ATaaOZe;~2{ZC&SQS_zxLNz{`-JxUDinR^_?frZgeZ zv^0?|{kw1}Aqi3nc;h=h@-OeROJAeA-T67%Fv~Q3bUSdqk$3am5I*wdFf8AxD5apY zd$X4MTay3?ST?Jd=?Y`AwaHb;!jjXObAw@GE9s-ROV!=wzSTLVa56*WA5H>ha^GXC zm}F_o=gf~PQUo#?R@jo2|J|xo7xW-1hC8?!g{(5m8VN+2pQBoeF<-juNpxqn?{Cx23?qigEH!dmp z=>M~;psMW?KlOLvy9l~cFO}hLO}eT~Bn?@@q)N1W61N>%w8uyFyVSHAo~SkF@fGiWwLQG9t}p}?x*3#5>LO+cKGY7Puljai zVy}bNty}Rdu8PFQ_B-4jItPEC;Ti6fs{6LjZiFzThf}3nnFj`u;IeM2n;VI?6!_!F zY%N)(5;c^5lFwg&#wJn}76gS8O;ZG8~F11}S_N5|WW56pD*#DMMr^6fmht`THw02H61j>( zF*?jY?9oN;)#&wtkP(>dTC=awne3<)eXw&4sBPF*6e#hJlVU4kL~an(+JW;7#Ezd? zIID2PveRW%9f^HD#4s7o+>@k^%4w`C`beELP5XvR zuntRDs%F~KiMtwhJC;U?G=T}a?cVZHQ{S5MRt5^)FCC-ho<*`t2eeV4kj^m zQB^XYXN3R&`V4k)0Gh44V)Fr;_seQ=?_4pqjbg>G)w=;)*WApbI>M?eyb!7@6@?L; zz7mG1?q;WlAB0Zvb6!_DTtlG8t3o{MjE9(}rl{=%#Q=yJ&+k`ba>99KC+Pk!L<6q@ zPyds^u7SZF2=2K`evv?PT*p18O1#XPKRAA5FtF5UXiH1dN^DltF6^moA9a%1YRtpP zgTYs}W$&@9!pMmlKCfg`Dzz9#iXuL$mu_{>&(I&Xan8&b&PE9djq+~`(2j?yYc_O+ z$oj|@TxjQ$CR?l740ZZOJBjH|QlFrcV$((sxb7_hwFVI>I%+nGVQYG71XF6+u92t` z3`e=Tu#mcj_e|-cucG(=iSvHjjD=M=wmW!xao8!s8oN%v5)laJ+svf7KK2VdJ{l{^ z)Pa2TWS?`Q^2dPn$CR0n&J-C8ut3&I{A=BYF=E9Hq3guCIFGe}{?@IF^z#00Q~frk z3C*)ORaLqo(>BF=vDC$`o7{P^Ihk_)`N{_4ht^TZgH^X)FHFL z*yjiibzIWg-P<$;$`D&Zv=%p} z5ACczDd4qU7c#0Tp==rUr#b-4Z%Jq)&wPa$ia!n=!0LCcF&7eUAr$vF1keie>E54m z|DV>|>VI4j5pFi10J+T0B@W!i;9k8bQHTaHf{6#&D&)<8Q=oR3FVYY0p9BT~Xt#@`lsO_N~+ z1S@wVEA*u8HkTg+h--M;0s6l|k&i?~COSmYFdWz+biaDnQ zw2&ejs15>GQp#9mV z<+KAWL-+SqoicN-Z`waOPV{!&oL9?$=eZ9Bv7V7-{!J^^6Ga}=;cz$!I9qvsAF_y)%Do#|ngf>l`lxC)gQErFN)>(6aR=Q!;F*$zR zH@Th}t;eZy=M5*)emh@qS%cz#@b+tuCw&{tR40e$gL2VAPs1NpsC%iGi|=3lX8(Vi z0CmS}7w6^qsQ~rWi?`QTC&2v*h)|=fjK`_)M?qAeQt!*L7Lwh-oGPF3 zYwTAC{|LhgMVG)T3^dGT*LjPEXFnH|^O(tgsv7~aFrm-c@kQQ>M>7=V7ge#$AiI=` zuH*SEr1LSmw|9csizn!^LD9OfO4B?|puy6E(0zu;7E)F(%nObi!Ckp%L!V#Ele<|Q zsRHGxT(`c(XTaRQhRTr7_MM44r(2tU&54TuS1OwCEox9i`L9jSSm&=NhLB;|M^BW$ z0R$ygC=S6RE#MXz-6V;s?7Lyi0xQ{4A;{xuP&c9#jZG-iY+*oYAW%DHqzp=x3hTZ+ z1e&(IB;oUFnDpDJfN;p_SL;C(@^y5{Yp5kV-ISyf4i_Jl?qW&TnNn3oD>D0L+Akl%bKo(Q9m?d4SK8 z;-tPe-zp; z2WW>FeFZ^qZG%>F)-P#4O(l2~KM!5P){XAn$2I|!U;GsRSL_d4nil#l?@jA%JdS#4 zp9IN`jh%;K{=VJSptm7?c+!(sj^$ob#rMJ@D;2G_$8e1Q{=+h)O>wafOp-fW(O3Ym zNPQe*(7Ao>taNny5JzM~V*%o3UAV|IkXokK5@*=jCba0oZ%;e%C{IbCEL3AibH^yn z+mWg9t>OQ7RN&X?k%bLgmlw*nD)B32JcB?+XA#boWfnSXXtAOr3)Y(40ORW~k0TX4 zkoI){)ClyZhD5-6EEha2>z)FFrVy`vsoY%qEJFgVW(N|&5$&z;-3&;i4Oauy^20nJ7+f|p2;vR%iE7~FN@%ReUeRwek{j7K z#&6L=Kl#fr2N;?KO=DfnxU;DY6_a=cZ@3o);U!Eu<}ZR)L#$m0U`Be}YOm=2oWP}Y z#0amC|HZ(mC6R4niSqRc<0)}%F=rh$Qz+Ftko<$;fhU85Z$y~`$u}Z(uklKStxu(z z_-*wuFuXeeltFrxU-EHyCD_cfKM%V3?#B<@q6czTCILy6+LgpOg&@xNk4dyxFKoQ5 zyz?@iD%R_!=SQx_FhKz?hF)9j(3xnK{NhldvG=1mbV&h=zIF*~5+yqlB_x!pq&gA6 z*av}K1)A!^Cy8%h8&Pu?t^^r=r8tye}B|8_!&2<3KDlvQt~!M zOD*TMbjYES83zZft^r=ku#pX$-4(cKZYPt19}4I;%%a@w!mo_M7Q4+`oj(Gr^Z@tK z@3Vk^I|7crcq`z+d9Vib|LJY~c*FGGq{mrxmUS+_-8NuT4QiUN)qbBeOj!>e*+Tn{ zDMw=b$>bn}Mn$xn?*m6e!AE%@g1MPZSXHp;kY>ASefRZZIcEYf?lTJGD@^{bb>jv5 zaTjO5132w^tGUJ3T+r2X9Pp7{NG4s_NDBU&YJD?gn)`TkG}}n4#$ljG1c1n78g30%CGob%10fBys8s!Mq#IHsj;?PbY(&!TfgmXDOseRdr zL`sJT2;<(GQ#TH`F>ztQC!qliS3)SfhTIMCd12Ji7ijV6hH5fYxbK_bNb63HO^X`U;+ht(HCDzE&+^p68srIn^l>_UkYVX!@ouNZST>j{pOj|9n{ziA})tx(NZmnqbBOK8~cXK1~ zlI=}3dKk&?MqXE94e2PQ^BdzAr|&iX{L@E)wAWD?O1(*=9KgmUGHVIXQ{?umSv+62 z37X3AFutbe1&X)`S>8R0zj7?*_e6Y(+Jew9up~2Q9;p)r(#z5(gT(L~3nMO;urN?N zm?d)~Y(l8-^_k`~ty~UbxBGq{tK#{j6Zlc}s$Enh)c4sbM0e(o!TKT^D_)T#2q?=P z5LW)6|HR||llZ#nwS^R`y$cg-o=W!1Lu_ug52`_X6R*X)Ps#!XGSxr8o>4%J#3Xi( z+MJD+9aTt?8~0)i+~ZxXvxk*u4>$DPHn+1qUJ|HK7$zI&=Yw|oS70wBioB^-RTQ{;jrS<0`Nw%w!geOnaNHWE+*83)+sJ+(5rFTkv7^z5J?!gbXcy{QH$mL;~%~3<0T{?wf z1uYjTUH0DM@N!^ZdX9;4A>k5**yXN=Ph)CCzkfW+6GXt$+#s7ZDQ|SHoUC7zN(DQnBEmXvF zOfk_jWyLGG$n06T9;agQqK#S%*Er!5%u#HlWx{P%%i*l?16OA4G&FZ_=va%_m|$w= z3MK@|%0=K81GAMGQr1p*9eakFHW`^oc+M(4cYmcPw63L0AQ0}$0{0>-IaiJyCXEOz zQw>e0%vx?j*x%VdY!_>Oij zgMJ_U)vNMzWov!nsmZ&VQvd*LSppvR?snjEqJ9gZEEtmRCO>t6edAp#OtdXLH#L5@ zO_rmD`LN+I#H3ckbU*P>#h5?rteuRJpIelp7uJt4v%0unUu5G05P6nOuSf`uP^IX3 zl3p7%54vO#?gZDFHS%dKX+y~x+cji*0yLS@wIr$gwZYFNULB~WiF1k;SAW3EzGN8A zGuFYqJbqx&p|1v8bx|CDc>?ssljO$RlAg4CP0QVU;p{+M#^X}xZY_(j--fi5r-e4l z+N(Kbu&yM|)Frpe^pFrxbcQRWo%yOwdGpyCg`$~Al=TO`!Ngrbnr+;j%C8-m{xcq} zE7c9$7|!C(HWB%v9ASCw6xUk@@}DcWjdkCrkO44iB)KBJINn;yQ!Am;J1x^-dAE2~ zXAe-um6HgW<%?9hUELh3idx@0x_KsLQnLP*{Lb?`+w#u9hb;2~^Ewj+X-61Lq3VTP9d+?6Tg zBh|6LhA=O-(VnB*w56rVXh5aq3PEep;Rio@+q{p#OF-FZy?04fAFM&}O{JP7Xe84taWwH02=p&bWv}HQk%jWKn28 zw39`Zo0Mk^c?yvI)u~-mZicBZH=F1f+MJG_>D(L=HZq}MofZ@x%N7+8U55xV6?8~y zZTaah4te+sa(RNhzZN1?n@ifOzk7Yng)omEHE1#O{rT2_8&amj8DMq&3j3KO;&$Ee z6j=-%=2wGv{bhYoJZyTj`(7a6^kJR&dg_ri8Hrfm9+_U!@G+e_8-TR}HY7|l&Ih9I zuY(_oseUk}0^z>jO11wAx7$I2<++HU^lq@*P%0%vVmSAAAz0wwF}u;tff07Yh?o^3 zRi5cn`%^85R%jG%N zE2HP9x#G9$x+y%bjjt?X=-exGXnSAtLk_$aeE2TpzvL(JKkfj?aApr;(Or>i4hsyS zI0_i5|8ZF`V8g$~aJWQgGTy;Ag(3G|&lC97zN@s9Je}=2y&~U#;xTmZ?~uY+iKJ_2 zO`XdaD$$mD7}6JsCt>(7SipU~4v>>Lj)=rZgV>C4d z1&tk+P(L=){4!24Wp(I&AE5ikW|;BbwF`UvSx0!RR@bI+v0MXY;FRyO_jX13#?lwo z3-ZJK_t7li{>JHY7cze^URj0BWGU2yj#iw~?=(n)ctU)uk;*i#h*G(@iFq2VPz2Tg zk|~XqB;tY=)l#B&o?4Z(IwK+DufH>I)#%C@&q~fT@pqpH5>Y&I3139{`yp@Rq)v?_R9m(pbmlBH8SQ6ES;dv|qJ|jAc6N(j4AN`9i z!VfWDDYSbvY@fu0kmP=#kuimX^wP+lZ<_XFJHa(A*MlRwOe9wj8Aga8_IXYe{@bPY z1L>OrF2F-~>O%MporF4hg7<2hNJ2)l}cgH?6g6h<3pg9#^wZSfxD#g__A{ABk z{lS{T#`wFC+XED%vHwql96;+3q1)x0JghGk0MQo;pRi=7$Fgd^qt80PyIg~xTf;Dy z@493=LvD=+0cps33v+gYaO5uiEqYJHP(PlR2o8f5&W`bK3R$fkwngvQRgT3?`>x+Z zUv0xbKi5o1Ubb0VubwLh9^weDfy8Z}GiiPNrMb0RP1B?&1_IO~SQV)#<)UK8Kr#@x zHbn;D8XC%42lp|=i)Ne3a4R$C8O#OZBhP81C;xd}O7X#HwJ!#dQz0eh5Gg^NoBT+{ zgspM)8pnzQCg_|^ZsOhN;#u{lfOf7Pa*wFJha&r;m84#prF7Pw}wEeAiPOc(zZ z-v2yPxI_hb^uU=GDC;P$0v?s0#u{5ltsJ{e1RR6IYn&kQ)Ac)rmAO+}8f*Q3a<+PR zVJ(9Oblc#gvk~ZER^GxqqO0kOF!V{+5pahqx5Cf5J(0Vbi8X zVp{C$Y|PcrJ$|kyez&>B88bcMrfH~5WtBa`I9rNUaZ8(=a?(XOJ)S{MxR_jzJ~@Tk zQq@^Eg`<4bw)gLgEsdcGjmy-yH!| zBL9z0m4xW&)hxTWr59GKOPd`e*dJ0|%i)}J{&GGFQm7*s`X=qNLM8diEd8X4@bQ&` zJ*{86^Dm&^>O_9k(|1J}UFkzvGj24*%V(Cn*B==!s=idex1HAXy6+mJC=2>rr|J|b zV_huH?mh!=*5v+CKrWXr!`^&|4C^mh{1=W8|0&V%@Wq^fWG*{ja-KpQ#LpykS!G!xVibjOzBw{4 zs!x;gPIf3D-JR&lchITc-G(dfWW=6^1#AZGeNuO|64K0kmq;^KDzB*< zyM(;Xj+A49fUH1x%diUc8vgd! z;&8MSGpGpCe~J_TcO0RB;#EDu*qHVaX3xU+p%)r4Abe4jO z`uF{ne*y4K5!G}W5y@_jX9>X7RQD3ChAW%$tV!!r;7o@3oi{#TAGIzn_jC- zc(=X*p(K^+91+pQ!MM98I`~7hxdm5tdV8JV68|PK$Ko2EUpNtm0doHQ;uEc6{3rpw zYc%{9o6iTDeZy+TV@R|-T6(0nM*e`(N(k`mwJQ&?>$qk*EU~EAxkOXKBi-_w3Jd9J zxx61ETnNjCU|TbgKEuE)+Y5*Kn9A70KO!&SwE3qqz=@3vv0y*3{SB#GkCbugSgqWb zG$%`VE~Xa2K<;nK_$IF<5QlB$a7d;98~K$G~o8 z_Og~_6gBj+e7Gvb8POTEQ|hZX3n?G;c9~e@uMw#6tjlzU!ox`5P67Dfj5tV1h)tcO zBu`ndhJ5&p9-4 zmI;Tc_b77oy`MVV%(vy?8Fc0I_Em!w(Ul?flV*0ZbI@U%hN0RbBYM(1TxgJp8fPd- z1smLI1qB_NVtNd_56WQ+|TiIJjra5 zOEr|+==X;j+6d@H2&_?_*xz~a6MxEt=1)bZ4<5rXu(qqGZkkde?d=h><2|$Xnn(3umnUAd#TXGa7Pwfnonvm9L{#0F6i8x z-v5>;8PugEVQAJ0&}=cD*B0Pnsl$mV5`U1xzMY*<63~;F<0^P9$@3sHy7QPhM3h%T z&gs4>7x`7_r@yUE+KXhl#;oI33BUgHj*Y zp}qT}_(9YV1;^zFymPvHR};U7v=;-6jIwJSa>l_X<+lIHp4$-*td*gA%?4;S6&6IW zH7-AIoI}cA9CV{5q{Qj<&-H^x#$Ac_0LNw(2_~kYNn&@x31G6&VrahMDvb1vm6`QqD*vTyO<&IW} zmL&l$u(QJrxW-zb&l(od4TC3`30#dIp{wJb_FSUaXi>5r+{EI|Bu_v51y9X1R?GQE z{VJ=-$COqZ?IjdKCu1rRQ)9>iy{uQh?x^VHZbHH!h{ty~McOWvh zc8=%%MtbW@lD|dO7NdJ;gKZb$W2V4OqVgf_6pVYj=JyTC-wfM{CjRfAYq6a7#%0|b zV?4MdQO1uuYE@-yDrwY>5??O5&58-p4jra&@$J;^=`XOAZ={<@&DTImgU5U$kBRK~ z(gT?KreU@Jh5K~lx>+ZziEz_PVfu9CmSfO%AYe1eY3o%>o97C(wMwWubaB&LAfy19 z4U%u@-;!07Cm_Ub5KzCOZ_iQeiq@o?C|-tdcq@wcGTo3Fy7o2)Be#|I;OoklX|moV zP#4^CscIt)1ThJOy#YrR^)TewBEDQF8_;6ert^m4I1i>R8L_x%NefNz8@#KZH5e*C3fmpn#IWpj^ zgim)zf0|(S2~9=tPevVk1N@kGaAZ@w9`hWN;oo0!gsSKPX|}$Zl96f`D86#;U#i-J zj)$NN7s+#^7j+*9v({g}t-+p0C9rYG3FgUzkqIq;Ye<+Ap#sB9YCTLg;Bh3Xm1z$l zY}8j5H49(*gEB))e&z<)AAbsdx7@?~#Sqk(sSh|ok z5&07=Dir4}5OtT3t&BAy#}h=tog`tt*-ecbA&PgE!6N;AL~6FnT-SlR3yf$egON)Y zDH+`0lGmk{aP^kHIQtSK-y03S<+tQLQ9~Y;vBm9~4*T=!ClS?}UMQNKdS(toHRzZGo6=Fi@Bg?A zlM-|}NWJ>9$NX&0_CeYh_Efr@YNv}UMES;yy_J)|lMP^@hsePEM=V)QlG?0t`wOAz zc3+WlCK!p=k)#)-ar*hnrauXqKT;A-f;iDyX|_-v5-W)c{y`KznXdi^RS4v&@P8>8 zmiYUbx;M}7b3&h_JxkESkAc+SVCAU)I7Ef{k9cs!;bzl$^-w0^v89C1%43I-2D9F2 zT5M*@9{RrH22_<59WN*RE*|apsH%oS#zfG#=ENp<2kTQEKCbMxq83VTa*c`T2`{j- zpKN?~R?Gg1FP3-pL#6g2N%SWh0ZTKg;z-+f!@dmjc6<@EeRU4P=OBeGCpJRi4me>R zE9ZqhQ>Xn_*nLeZ(x|(XB|j~}Q@hMlfj{S_?^I*(m!FfJkKL7SXgNOX@0LJQF9+Tg zqerXr>e+Dn1Q{N5cCyJOV8O&kF2G)Y-wjO8O8vo1DEihDhu2JDIEM!0!G!V7<#&F_ zu!qE1D?Vz7Bx5YzS{6t%#Ie=*COH8yhl)KkzTYf??zz{bzc52iN7ay9uG5v7KBP0Edj75mGD-+I-F;gzqR(^&a|TI0Pb56hkgFV}Gc*Q>czL|b z;e%vz#;oM&^_(kfrk`Op-z5J0zRITLrw?eN-@kUPzoP%;r0e9nsvd@z-h>nX zIP8q(DyDv)Ns-PjfNd}P=JR#+#WELh^+PN*k>##Zt5e}b8<9mvHvdgYrMuebK3Bw_ zss~%xlK+1k$MCkXOyny<^M*09oY3lIdvd73Q+&2ZPt1bUt!$s*jsgCC_GR^L#uW+e z_-Xg=IUIpf{w575{7UU^rQ8UEQ+DfNXgS&kF%I-!Z#z}mga=38k?tETSVWN_J+0u%R$}Tt3vy#5Z7PuN&BCL`n}{i=)|19%XN%pewajURdU9P zYIP2flHRlS)2;|Y2Xdxb&qhD|y*W*_)>i|G9AsVBnY2D?rMkFCRT`{F?4bIVdOvX8 zpKa%1KdMnM9L%PLvIGBx!0sa;^T(dl_!S@^qbAE7&=O1J&fRkTqP4#Z+1tJb0`oghIH< zYO23!nt$#oZ}*%h`yfpWkDIY?A<%+8L5S=A?d*xi0IBt)EJY(MZmWvA5wL>r&pn0s zA4uUK;a9Nc{vU5Q>%WP(zQ*`gNW}U292b1jv*{{X1_Qf&qCezYEyJEPE;9qtC37uD z_!xi1^G;@TAiw|Bi)k_>b=5c%TAW!m%vsMsWYEe{Gu*;_^|*|o;S5}`!w&u=`C0n8 z8@bf2y2SOg*e)#&!8v56j6XnK1N%igz3n?8VF7kRuz^=}%jsKxo4}L2tT|keu^%%< zz@N6wmWv8r;E3>n5}9rxplepPb?7RiUY#hhP)!_j!C3gs@^?{8ayVN{ z?)_W)TL6|njEM8E{aNeilcvwqax%&?K2*b&yw@n;^&%{Pm$!EuH&?The;R56h#m0; z-W_P7noTI?5jy-;+?xHW0M^q=zyn~7K zEdn&}v)opXeA^U#Y;u$tvzn+GEOX&jmVqN%W2MY1+H+|ull50+fKb3@p1NVo@I|?QqY2Fb$3rAI2)A1FLhBXZ zV~(SRiLTe6o`OB~k5K5YLKzrM{IKC+qIjvPuwx8U*2cd>qk@K<2+EQ52Js{AUn${bvwemBu$n zo5B+q#qJ%jUvYC|VD1v|LCm|`8yxg>aFrmK#2#kcq`%7L>(5LqNH5-dpc&w=LZL6d zGe>A!AvMj6{Yj8Rp?(E-hqTEsM4`D`@a>RdH@Bsj52{bGp+ZU6;wxO}QHru!m7n5b z#mee-OHP=B;UJTg8`z*-$}C}fpen31-*T4+tI+|ZW+Gsb5C^`LiI$2&`vX75 z`AWZlhqik*#{Fd>j=XTYa(vm+r>|1a z0C6XZbdNY@F<~^|9);S>>;m_$_Q-Fxbdk7FW1XyEK%zF-qhrs92rp7ZdU=eI1)aXn zNISNLsH4>d4}AZQWOHbXrzV)eMZWrv+rV4r9O8C{6`xBQVl?ZCf_Z$}@12yv9Z>7P zfNBF%6(a55VVaXNg!AyQs+usq^I~x0{vsz8L>z#qD^my07Xs=+UH)-P3t-009fu3l zU3YaIN~DDIiKM}}*) z@)nfbtL7YX_~4n`f`2CWD5j+_^BNpOt2jOUM!KlxYh1ct(2nOoWn#~0Vbv(diGj0_)mfq=iXdV_ z?)pSkqO>NZzUIW-!z+v(7>o%{}rv2CJv^|ZQG(&4~p;WMRFtqD71hjrB z)qS<_n-)@%hYk$Hy}MRo$@3=iq`X%R!u1GJ^~HTF?6XcX{O?+FGXCrL@G`Z2g0_9d zCKDxkyIa~8jrU?7uc`&qP^!}L1#;ORMzSdq3OfCi76|k3v`-VwwK;9=&IiA)fx#S< z0hGuaWsCRskfq23wLybq-Qrvk!mT}e%|o;XuUO=0aW|TKog)3YH}ph!s(c?7G_7@8 z?7{vTte?mcuF0-49=KkLmx5)kiuTHvmy_o_@+PE-Bk8;i*zMl5_9h|M{!tr|ero-I z56wCqk8CaYMAgSs1wvoAo#pDe`6C=G_59{o&j~p3cExxZYb0e+@s%H?dZyn{DiOpJ zE*+E)5K z?%bGbb~3+fexek(9+$n)9KHz$!SL``jUGl0<#|HIM`E970aAfDo>764s}a$@w3UEQ zou9-2tN+RXP6gP#S=lRPvzQq;SI+CkO8(aetTpb*hdALmKwqKirtCUSG<(j=2`R3V;ecPc@ejI$rfF%65AfrKTIZH9aIZDau3yt|ImwRGe!Mk|GMv z>Dh&jOqLd!G6%-EF=k3QP<&Y7%mA#$aPGrcPm{0v=i6=g?=|#I?Cj&-SJlO%a(`ik}fcrp}7HU(*6D_ zO~wraA#==bHw)4Ksti6yGizL1EeiLWK5%knQ<#!WY;-iSc=L<$Ob^9lq-x%k&fubZ zIumq><&CJTxR6hgjRHd+AP6~Xw%hDUADWU?Qe|t1vGwBxF1$c3Kk8vz5zJi86z$u? ztSxKU+@C8IBKy3YmJ7-nCZfVMl9!(BUM(FcM|3}_JCS%R80}X@3u#LPIb9g6ukIJh zW>zPG&W0l&=AuDIb}pyJXmup#tW=@Vz9W3V7p*)T5B~0FTC3}`elI9ny_)?~;0-E< z#A6e8-~*#g`9M44FKI#8}n5-&3yDyvb@cFRmi~1Do z9{oR`zrO|Bj1_qgef$H1FC0nTCra%W5%qxdtZF8ICK0RzB8=P|8b?*+mGrH#1karO zkH)NH4~o{$ZYr6ilceze{Y!CHPI%6)7NKLhlW@LaQrxCU>w3LPKbIZKW4|j`xeU#* z>|=a6Rp(lhEJS`|)wFy1t;1`pIr6Y=dI5(`G}t}Dk|8$OQH27fLuUPz!~T@HcpL|M zO9$ve=2S1n>`n(+xZpL!KWyYF6Vw1qP{0z_m-YqW%&wQhPz&6 z-qmXWsz$X&KAcLvdk5B()_@{%bf z17MH6RaMY{3hcbR*@l55e${=+eYc$Llg1Jn)p-KUivgX1Kxy&x0OIHN^+?hEn-hCM zM;vx;f zJa`2G_*<@ma)|wmY`{K~oG|{#j~%EAyQ8-tkq<7UpHx{OsjRKf>+@B@@?(HkucInZ z%pBPlMC!iBz~rBVZ|Y8IjqDd^s|B&AX&E4DuL7Sa?jy3yMlKg;H{_hhqj zCP1&`ib2#tWKp6wSBKlr(%?BZti>*^lme7dX5@ccbxI5o&JC@~RV50oZXRyV zQ=L(I6dTur3safgZ{@)c<+eI}In>p2&Pkq*oiGQqkXzLpx5{L_*IxImR@@-mZ-%Tf zZ1K{jGBpLQ_oWVd-w~RXYZK2dMZtnqIov7Gzh{1;a-!tNrQ z)h!2gDH`j)yrtx!NY6u)zcN6G*lfjdWkejbc6_}(qJbihZ?zs%L9eJ3ZHFDCfQ1gw zIE9B2c(S8}04e}8Q-}KO(LLo<_Yw+j6%o5;G1)sOvpEnz-#Dv)OL>8kvy6cC%6-t; zcei5N!-rE2;W8ik1u6=0w*ZvQhZm$5f^x{w2QZpakjm~XNeErZ6FV3|pJY31VT>;b zeY@r)qM$!Rk`5x24}1w^fcU)wpqv#pm6^E0o_bFlPqfe#Ev_ih7M;P;qO~kz)o=eJ zhhc3_6W6-_ZQ?>HKi3mTV>3(@J{sD9e4SFTGczhO<{4z^&gSDwb4zW)0YS$p@h~?k znX3)wS9x{clwCM`S&L^vl&rP=UJ|gBN)}`;R)e(@=PM%iYg@~$u z+iKokn;5nvxIodzA}5)!O_BTajfu^W!7y_RaQkU4ReVNf`lU*B_D8>398s#gfYh87zS2QZY0YVP_{GlGJ{c> zVBlL=x!^$q0S1|?2J$OyVprKAM_Owubuj!U)Hp3K1O^`4kObbKk-%_lQqU_0MezC# zu17f#{h&*U=o6J=q%xF z?e7sL3ayl-bdJJAs{%Q}2#E1UNV5)6t=?mYB9IDo@H7cSsK}BZtV3bC;a2(U!Fc14l+{wi~t2QF_`)dTql4! z)F=R7eky{`g3V#!0*1lMADl0JRU(hX$f!Ii9|j`2w%dAXJe5;+G4juW&?KqIEBf0Y=?QRn%YMU) z-;GOcy^<(DWTihE&alFvT%hq?be{wh*d2{ka61zXKg=KHhnH{lZhY}Wy3&BroSJ%m z_3H||ZIS-6hyaeuG>O6!NoNvlQux*_z!7bLcKCiE+@ z!;t0KfaMw20{&wPu96q5Yd-#~$?boGg8{4LQqMJy(gHjGedFvvG{GEStj0O?SdNF3 z0@z7^G1H523>&OgFSV1a4wvz;!!a9^=)Zj7!Ol5M^NDdTfrow4#6tdcboRA^jt%Sr z;5u7=w`BVxplVrbiPO?yVy?o~7G{LcO$jv#eY*rq_>WAB?rR)C6PydA05L)a~ zQStO(zwBJ(uLr5-5Ur}#$&$J1n;kul7bXARv+;jMgCV0AA&;^D^ z9+Wgdt_^tqQrd|wCy|j#_2#0N|G3qeq*3iOd=`Jfy&811poc=lk6#gtkP%CWQ~SX` z@bx9il*E5S!mIsa7N#S8!+~LII5*GL*ezUuNsZAZ*|;5A<5}}=jS{Od%fAm5Gi-W# z&lLn@_frQ$g=U2I5EYJtpP-=84vmQb=t`9Qgn-Z7qr1ktKA{s`IN4pk(Oe#Dl3pcW zNf%3q`1S|RZT9}SbSKAuh?*+^+z@^cAGQQ>@B{?EwY9Ewr^S^Z06~vRqrbAa4*O-5 z6P2@xmNpVbX?t~`_!Chp+Z7RZ26F5#aR-#VFW2Wlx!O1SR<6F3drwZ1CrOJk8~`s3 zcJgl10voUVR>tZ}nN~TS7s|5JB*m+=kAGn2b~(s8ANYx~nVG@@DcNk$oXX%q;%#u0 z@myjHQ7XRwWd9`J@gBczEpBDh;W|t%sV*Xijvw?Do*$DFu4$z+wV1*ibzigGX^mIlLAp*b&!7^ z)rdfZy1{GMu;TSBxo3w=5FCT@>*JeDqEsuI4sX1VgSjDgMlXKe^knCv8sICgWTL?` z<`_L&%J3dc~c{Um}?TQQjAv!k2O?OMkW zteZ9Z)7uJ__qmKwpo)sPV|(1+?o5wV!c6wN)!q_QZT2S(C$FgX!V|X?>lB3mm3sGV zQKl{$Qj(hrVj|vh!Kkqb6)e)Il|SHy=s_XSD*tG$h-EtmmNK1WxniqiHyKZz$aZ^o zWI=RMxz0MDrr=NZfH#0^QWP>WwS}s9%#EEdb9sXPvKWGOu4`{$I^Q<&-`BLcO>1Z8 z7uL#f^CVXbzz{|O6kXB{c?6{k*3n+PFhH7KgxiJ7fSsD&<$SP+pgb{@!^1J?a~!jd zB6#_OaqOp^FHjmIKTqx&3F96dSxU5(MVAlY!(i!Gq96f)5G>^ek_%eDD|CMII+3~0 z$)^@{&oQ9ve|$K2$9aIzeno$*e?|av2;~h7ygKYPkPaTn;@%Cssl`|OlTQPA-g~Hy zdZ79NYSIgLF=f)vJvqSMAk*4xlBtnaSuGGku7u0X-d^Z%McB{7V307O|2GUc?e_1{ z{Ao;?9Vf3LB#Zz4M}q|%|5?gtPH0bi4z$j~SA=()=@dz1G~-Fh)ss_z@isM`{IXi> z6zDOA>7#>~Hj&PM)rYp&_}wII($%hZigP1&zh?WVj;d{pt_*^so$O&4!~PD2@(iZK z<^cQq97t>4auO(DLf}(N46;%z*zks#S}PuYCq5BDCpYfcO+I@RLF$tIm;`G>iZErP z^p|^HZ>Hz~^x-hNR!kj{YFOodk=dk@I_d#>7Q7t}Y9j59@vDh?$VlS_b~1%}U-rSR z{hUib{)p6ZY&RfC_(^9z7wE z1XBgK8Gm?1|AOnfV}PLau)QAeK!u75;|Kf`v=4Bb|42Y-MqJ;!#cF5J%bf-gdt*&p z)|tGvo=)l*Su^F6B6tP3zgf>(7JBO~1OF!sEs=jA|BxrmSM>BCUSm=vGaIx}?RpA1 z(UY+5i=%YiSx-38AXC|H>f^GNpP2;dKjO3pXQK1Wz^ zw}dyc5(Q-b#j~31H5u(|J;@u3<*g&uK8S)h%!iSCOzpR@yUyM2!vgQG=WuRDpv z3>ew9(m=HhhC4-+nLRyg-`I-fAd;E0Bio8jT(8!b^d4!S+tXBJQ}HxPa@TWbarIh2 z0kIstug=n(%cy4O)#4qTbsK*28FcPZ5&g~iTdZB?I3w+96h8!}mv&5Z%RZ<7RW&s2 z$&}sU+7x6bgmPI&`*z`Z6oBj^Q16>IG-0o~yIF3u4mjrVlomUlO14EUD5B$YnD^Px zt0e+#`6Z7P!b1yruo-X8iO*pHb_yfS#SEH^&R}48xyIR@gaTY2i-acltQSFaU#rYhKl7uQU9I1RN+jnVx{R5+n!ngnP#OoV@Zjz9K55sEp)E2p@wzi zjGd_^Apt33K;kBb^^aTf_zR=Icrv-^X& zl-QdLw4`Od+z96@`3v3d1TIi`lZw*r(!HYmb25XyR*Ym;Dg9ovkLpqjIjvBe-qCw~ z5^Bsz|6~vd`(>M}Be1+v*nD6haLHc6V3gBU}DnS$;JP#g)fXcIw;nhglXPB4(yOt=& z(fC`EXWsPLxRc*{@!O7<*_x>We8VP4rf~n^V^(ldbnE!XU8dV-6gS4qMkBTC)^WbNmzGYWR6Py(q&1deec|R%QRx|7)?F9AOb>RHu@Hw6 zUJM@{AB#p$)ZIo4MfoT?c{0eB;|~i4OpT_IieO`ro$L=|uu?4V0YZJ*#gevBS}Py; z_UOPiUt+9^bP)$eP5yN<)xPKXCHapHb0NBQ!<*iry-|ydpxP1X<)$l*GK|gFy;{(SVX}Z{=%q z@m*Bg+!OP;41_TXIbx2h$G_9{H+5YzO5QwBTk}or!(M=|PuB}le}WLNo^keGB3f<* z!6%=&Oj%%sDr{Cs6#{8I+P$=gcIxJ0{_CLv2nWdA)Tvf5l(R$ulWhlCK8|1^iz&|)lEd;!sjQtSke-zh8XP4xz%viv(OJJOR2^XmdW^MJo9Z{@p782)Cl zp5WMX%YtP^nHg&rOjU!0Wpd{drZWjw>T@*MM!yRP@1VR0y0$W1{#G|>{FVJ?Qb4I@ z@Q`TbG{OBBB6+fKpNgRJrPb9RieK{@HhS{RO=G!L4irq6b%1?nh~J9HFps(Lg2y?` zhINwU$G@Q|Y$288Dx587i?a3~008;BI=JgD$NC1711ql2&HPn3 zlXC4(=0}?Sx|ICfzRbV;5L{Ug^-*=$h8!$W^OwU^vlSP|4L+djf>YQi>pPzUR(Io- zf{A9?8?>a@tA$e)F8)mJXoQj;29=60slqVi&xZZ`WC63vs9VyeS|+ABR|$tj7Cv4F zR2nztK6gwWYtiT)LpJs|UT;5qJ}fS_>Q&&DAvDy<;$9lBjlI+DQ|r)*CNe=l7}X=R zj0^X%v`F}DS6|uc{!NZn*k zT2K*Hy%p||FTO1QZ79rOtoXhdu%;Pr$|V>h;X-gy@^~Rh-4m-SFuM~hHK~mYbt;fP zB@=(8HBH!lh$>qk_*O}IbhZS2zNRJl7oxz(00BM&c`Ordv|EF&ZFMwH(r#yPXRo^= zpW^4|6+MgF?GVom>zlM6=PU_Nyvo4h&aaeSpL&qr!(0Vv?ElrBnP!@FIUM<0|IYdpb=??~Ef_qV-4BGEE*qwM9JTLL_8G zh{jjdyl-%GkT&7RI_vG(Pj!um|{3aYN9> zum*uzikTp#9AH-J^I}IG*3S>*%sE&E!{3a|R}UI<;Fs6GzCA>JS>;f)E8VAcs2X(P z*N@-2+D+O%oN2(rlf2C$WyHEwT<;O{MovbhaG*qW^&*2^p;^se?EZrh)Wt4CG`E1^arT2Y`| zgW?bVdXNtP(7#+l6-XScbm$Pf%DyMTgQ|(i=7^XoSJ9GBSMHtzwFrTyR;#{M5x9M4>RI$%!G9+rcE%H6r zV1R94Y`7-Zt!6(&?DTv`_$Nv!7Nux5iJ|UAQ4JudMXq+b>_RLFe5=U8o zbH%KDSreAnW2tNRv+ZwL!SsPa#T9lCxu6~x7-PQDCs@Rs`>5)K%b0q5`Uu~-PpBFZ;yQq_g{XxE`bCAEFD_9ab1${ zBO=Tp+(HlQlj0L`uLt-zqZk|%k1EZ&{Tt``EwX0+yq$0(F!!=+jAEFk#H?5ke1b?qEf|~ z!}ofu;;dOwWhok`N?CVSHr(QowzBD{S08pHK-I+UT-^j zbB$+q9yYS-)P5V`7>Mxz2a@+UV+>`K0jB_sP#GWqGBs0te11i&9fc;D?IoDZ|KYp7 zEt6O#sM^!jpBXU+c9-QepMMm;f(ZSEi%A}-!l9K8T85xLOtQ4)X4r=y1~d{%pE3Tr zn0At-RJw1}t8b~-G*e9klO|pNZRVOqakGj1a}e+D0@9FVh~;`|p^{#hEEb?Y$ov}# zO)|xtiU$=s-{Um)U?2LLjdXp?jHRs*!ljeOzhQ%gXU^I!pTmZ@3!?Q06)|ypr?9>I zn9@;n49v)vEbpsRPE=n(mFSLb_(l{R_=5Db?K?j2dx+Qd`=oc;hBN8!oXZHi=189HUO>`rHf2-2JO9)K-|PUU0zXz z$e|^JG-kTTUf$1cw`#z5FuZk{ZeFfmUmFXhofeIdMr7~d9=~n9XLSs#xKFf!G=}&R zmSo?1j_8dmwd0^0O-7K!)2T(AdTzO{(BSLFT;9AK zoHA)bjC%!E+19UOu4LMWo6uxNDPUO0I@E?*)falKen$z;{9IH0M|pG(_q2vX;C$`M zUCR%vTQpxEZ$C{tn=AHRXqF}j&C6^0ZA*vEFkWcUFv|YSLsjoxh6%Bj7z zO5~(I7wN6YQ8)6P2V0aK?B(N7n2VW8%aw9BrL_|usG4^vIujH4=hu=y5%l?ZR6Rwu z16?kFF<>sWp#CQ7yeP!phQVrDWRXeK53cnLfOUQ9g( zXIkG-lyAnLm2~w!0KCZ^ZElYjBle#t<4YIO=;BJZ<7wm(F(YiqMjS>fvwxSGxk&R`#B!;Y z@o|CGr|?@5j{(T^_`FxP*kX2_A#z5Zkp|@eo-!qxS#I@OMS|{ z8ZQrAB?p+SP41lItMU9*v8%YgS?w3uYNQ?;CVv*C*+i>MRhqO3DWK@#yTMy~vRVn#|2KgxL;+Us$mOTU;x)6krN_*UFHJ0OI zc+NPkaVt@tFRUHFqp={6=#Olwt*!z{lxQrx0K&ZAe)KS_ z#ALHye*PIcUEh~$QY}%hb-zIs?AZWGz##KUgchQ|BZ0>S$DF2^a|9CvmYWM{Tu_$l z*ro6=HTV!ZdbC7p@aZwG5NYXi4ln42{Xtsh_c{aXCpD5)VTR=`{!W%9MKQ5vwyeM_ z3;I~?6$c)bf>_!3`o=!Kb~{vt;U6;+Hd?LNL2IkPN_?Ksb-B>KQ)P#Q|4<@tVA2Fu z!Ct;p4sMTPqHWbryafkQlvUdOmCu>*`HJ6>oC$2b=0!(!!I)(w(KUiZ-h-~du`J@C zo_04E1H=SGVie@bgx)HNhF`spJ=|A5(uXAOF?vV1$ff-tA_CH4fd2339mToZ^sJjK$%9 zsUx}aAizx!-n+z7A zzlvjE+w3)?1}i++yZ6Npob5H=2N(|RU{hP##avBIimIf%kl>hm`x#0;&6CTlp z`E#b9a-|6o@6ovHD#+rM&=-z@tc!g}J7$&rv?AmaMyVx($27BEqUdipiA!^@waY{u z8(6HC|8)>ZlQcp?PjEB1so4w*Y?5TiRGoG|-^d^_8p>&YA)q(@`uQ`@KB=jM z9X0DV0tgu8vE*iV$pG-Zu@f@(K6+g9oHhNzNVWdDlAC^2(@3KJ>B8#aw1G;vft=eE z8t5xo9#BWD{P&T|=oNDOk!Cx75?9nB^W=%z3YX-rHCsAuakuaE zDtE*41-_5M{po795w325G=y{LUZdj|yAq&dQsK;~GIdnJ5BFPu2r!UUvDG<9-nFyh zt1)YQsrsfQn#kzKan&WQ+o7whu6m#A^EMrPtmPABcC)$?UM!^*WuzxQ7mCq6XS^wJW zqKP+b#-jwZP)={tLMTG)@oq`GX1PXf3dxM&VEIP2<~RMpyse|e7nuLfw)1{pKjA81 zoa|B2d%-=zQ`V4#fvjOE(--rYAar0S_#G_Ad;pEnu~|cM1ud%Zt>}qk z3OvKXLbI}Sl->Bdxpn7FRIPYPQW2G?Vte?cnIQlD&|@JJr1v2&XXlfXcgtSuX!Tj1 zS9o|jrWBDg{BAfi?|Xf%KzfpICFHAe?JJn$a!->^k%eT#hSW3P34_b6+uVtc&WK?Bnp zPz_5N6!1O9b|S>lc{FEvD<_j6v?;houm@_pT%~Q+wLeP{@Q-CWIBrtMXIEu#I-PsclTAofr(5}o)!?D-jwea(vu93I zPl;Xf*At=|!>N|V`ZU!(kJnOD0BN>G^0{Bi-+|_?>v>jzANgHV#B3b(_6cEZG!hjBE0H8v~PBG zRB{>q&W9&O9X=M#)PLmmDI0^#?aa(Q+Ol|m)=|DlY@pfaJ$XC7{T{jq^d)d>*tdg{ zx9Qpih*%(}J;c2mY60C^`_&D2z>fg@TPgN2v3RFQqPxXEM)(MpMoVMoKicAoC>&>5 zH;DPFOd!b`2f*-3omit6Aeb@phik*b-0o6MdLb+%#DZE`!<#twintCP)I@bVkCbRi zT6<>hx99=!(UH7vAW@YX%&%r*%r^^kW#KD=`l~=cQm7O}ziYR?oYhNmUp_WFX$0Pk z!e$v6x5CCZu1S3XyTjH}>o8`JbW;1{n!sCIPsUEWx7BT>T2-BFbVD-Ov>2S0fPYxn z>i5?>--(@JG>olNc_-_ERYTc42}8T30Qtm5$73Bp)5Nh>VoGV9J(qR{DQ%Z%Kme9` ze~s&U4%Kn7gpflL_9#EJAUaax_692)YmAT0TUTg3XTu4O$;e5$$rJgcdQyM>dp=ow z(&D{udwlL@A5aKMztLHNbq= z2$e7h(}!R)<+;A zT|DD3+16hVCCnvG+kZX3o-XMhKXk6tnVEG)*NA~{$;4deh`xVnSIx-c3{c~p=u8k z9m!n)u$C61SQAIb?qYL0{ZU#$+snnB{1frGpVYHE1|M^g3zzAgLA3X8mhmDA$)&0g z7#F%s>p>RXj1$&_Ddtm$DF@ex-;b3F$57e+dVJ5P6j=CEptKk`Q6~biih6%R6*Y^? zQv5Z2bWjjxteNN1I^&q#+Y>Ngg3ic_X$#Eb_C7?{b%3AklkxT*AqZ$b`|Et367J=zvIC8S4S zA>B?z!+W07?Q*0MC~RD}A=&603RC@Fn`DL+3%6ev0+pu(5*P3M?$ zI4pqmU5Pk0i5irjfmcdnx1RzF~aQMKXWB9d%RWi8Qe?dK@8rQl4KKpfodXQ&N zw$WH5&!`Iib>hdD5YF5#gz=d**RpH4wdO}X9JdP^{hwuTPn?Up?6Sp`3K7M1oQi(D z$f6)8aRI*-YQ#$gd!0(Q`}pZo68~R|EE-;se>Aj}`4vCu9lp_c%1LGW zA?Ng=Qs{kLA9i0!9*MIS{vS_g!4^l;wOiaFXn^1z9D)Uh-~@Mf3GO<$y99T4cXtc! z?hZq62A4B=-s?O6V7j`dx@yDYzm2p%-rd(Z56j zUB>dJKI~jGB``#YR#i$7Lzo6B&TVXv6T+RX3oDCEV;$mAPXkOe7gqdAR=>yp+)8?0 z&+^TMTXm+EvuMy}ofN$|(ZJ~XeWAR8;U9QSo}a->OX~-C3Tfx%XfR?cF6H$lXV2vuy%gQWdUfbpHLrn1>43`uuRrz4vs?ds z9kvaW7>uq^>z3d{OC6rzLNFw*>0Jn(>{TnbcE{n&u`^hpvxRU!S-19<^1IeD$W4~` ze4RNt>9)%&4Rl17QEvaC)p`m4e^?T;G>&Uq(A_!8m#`tx=n}5Dt(#60z9>p=5^pzDzPHs$+DibA-Bp zX)}Kw46jZgCn%4b;sYG!(vdGtfH@~Pl=WWM8FZb{R9WHDhGn4er0^qn}Ztq-MCzX1b1WWX1W~|Gxes z2toFEe?S;%Y7o{mZQojwx*o6Fhv}FO*HTX43r%)n5HS={FwD!ou6u=6Zz)G1u<&Pt z!njB4z<(3dd3QZkoXto8aC8pdNv;Rl?xs!|-h==xws+%VI78NYJjFk3u9rVthC_53G~`gaF#U@?-!18e`M z)(?x4iC6W#rj!W}6Q~T83$uwrp4r&e^0Op+lD=g;u5M$oPj^bD>`?p^jyGp3F+AJO z8aA=Tk5z64#X&lgKe&VRWr#EzQb5K=dhVw*&;u4b%e;cuu2*3MAwPSP>Uh!Gpd4Fm z3114g`Y(B^GOgiluc_6J$9||&;L^rW7lNZuJoQ5@gN8DVZ34K^eAO$CCv?(><!)JL+DdV%I&Cgjp##u$C7z){93Ga?uNB=kFySB|L3>^daEmZMHz z&j;o@X5{>V{YPPj0eAzC7AZvG8G0?@>{4U9d4~^50jzR-IZDEC5t-?d=q3ecik)YD2rPKwDMtsLe6cbRZm}mT zrb)BxJZc^cpY>BCEo1K*+P`dZ=o%uu%oi}o5+e_SQNZH=P{0%vC(-8hICk#wnCa2U z${Rjrw2&!b%3Xa09tS!^ZA5;Rg_B;OjvYH>+uh3Isa~h7mP&RB%d`w;bKbaJJf|Rw zgyc3lxABeNxi8{~a-tJDxvc^0k}`f^ap0b!(z2p#yflGz^LI`HHP#40lJ4;xrd&i za6OgEud`8f)+!rM;W^(EwW`E}AsHff>aMrl%|0n=G5%hO;$#Mk&}Y*edg6LwRU zFakPfFlKuD(PGaW17OgFErFa8kf^K>AV*@j$O-dy)nYjRM8U$as0)y@u$W){Xs&(Q zz6X&}x=r$(v1gfBn@`t`|M-v9ERM!4l#Ke2w3tpW90Pg>Kcy&Tfi7F zXxdK*f6)J1iI_>?O0$W)f;ZS z7)W>IrAa=x;R%klKtJZ*KtQZrsP;@PnUkG_l;UDK4<_?73FC^lln{s3 z6}45$TkYqpy`6(kIByK#02_>sVHo(+Mpf%n;XQZe+aPEn#3Jv>iO~n@w1~~jK)ATm z8Rf<2j!ip%j!jx(w=y*&a`MJzCM5|GvD_Q4O3wc%8O%kvSOX@DLc?=KbWRDg5B1(T zx*kDK^|BbeU4z}9Io`|64IS6jUMRlAR&JHe?Gu?HbGIM9c<)ob!Pm;u1NDmik(gR& zMx?&?rlr5;DAI`)K|Qb)u&n38z3IJtW=f0pJhR3itZ9KVcS6twF@NBJ7i~ySUrmQU z!Odh=Y`az)(&&k5?RN*p2^$Zhi70FTqA_%Ke?CQ=wgW!EO;M^wzH*=7r3nV#`^NsO z1M4)=65{1Mj_cnGeKV4u-{~?41&-5vU3#V#uhT>np0;uZ9&cX^+#SqJ_a!{XGdK+3 zd!Q(qxT%)3MP!zGAO(>B%Po*fgSDHeC+)jwKPHHvsz0>EqIl=Q%a~2kUOH%m%EL6< z6M0Ehi+UK@$z*y*j<|}KE7j`JWGnk@3Io1qj4hdFdML70=lD~= zusfdki!wd6IwCkx~fvTHY_`C_|mNg(Qj`z%Gmblj12rW#BdBS+5ZKmC4+(Q>bw{nKg z*+6wls0n;()v;D8orca3{B-@4Vp!P?LuDFiy5ap2Rwif!2ol_yGJ2fr8+lqbB*JkK zUbvnf>AC*;(dg_A{}^|3eS>mfoAW&qETCXbrZXQ%5p zotKspEY24GZ=4Ci`H&3=KE$>p_7`&HC|<+Ay7ejwp(PMmj0M-#z5 zpU&3P3L@Rv=t|6vywHhl6GtO4JN=Hy&1C+U)M@Il9?)35h_~W0`pKj;HV@qYpy@?; zx#6%$A@p{*#$MD#h5ozL7d1q!vJ~LHTfxHTJ%)%bBsNEf~qop#K;f;SrMo( zJp_NZ%_PUM?RnsGyMg;;Cx)>>ja3paR$E7b&m3(X@{D>JGOxW2(EzTfg)P@A;D@Av zC6q%1?~sJ69>`#VcmCv`d(`A1B93elS`!ogJ|epj&etK3+QRlb1TVOJW=Mh?!BbGq zae6$3sQD4d25yjjMt(6Ul~jBfZL97r!%}#DH)b*W)0WaLNpO2(2)526wEh5ZgL}tF zLy3isb?B)GQ`gL;+BeEai;lWgP|cR4(k&O#@y>S4VcS@I%d&E4Z$`eBmDnCL%p;t5 zIUJ#&w;BuCCmnq@b~P$B;IZK!UM^=m!tmYAhc8Rv*x zDLvc3lhA0EC4lXO@W0m!)KnIrr{UUm=`!a%!2x_*LDSIgyj5R0W>*~H_0oCxzI`Dg zYu}`4zzn85^t_dT)8?=zzocq2k^iO`K2FfDw#8_7=&0f6Zuo6gd&qc-{z~l%CGFAT z)|V5;Ellf(?Yf5>WFpmBSBCq@EE#UheCykGK-`db&JA%yt9q;2F(a-E-DK30zgO%YkOz#zv`Z z)4~J^2C@n-z&;g^&}yTwV;S5YlllN1@I0O!@NlN#e&abs`9Sn6D;H@0OAW$_*gJru z7;1t?mSNWVn`>N??MWGrr)F?@R6EXp4&#mMQxw&0y0mHbt?dmrSDk1ys8SSzd#kgu zxz|ibPVmbT^%``@Ns0u9@L*L0Uh38v4B#gRc z`bB|+h-QveORH(RrQKaE#OlV6Cxm*cA)Y4#4Oy#rBvq!yzl7Er^shtI>!RmF;+?EB zvL}Y?#{UFQ`g3I^$ z{3D7ebn%C2Kv1bpaz?>*?l&jQW{x96N@BmEaH}1YvbCb0A2@JTsmi~%(DqRKQy(hN zXQ2a!uGSwZzodW*&p9@s7?j5%84Wvr|6GXj9tf7u`?YvON*ww@re-r>K9>M)Oz+8) zNNrgig6Y*-l8FA+4LFC%NQ)X-w=EzH!F{QEYu4&uH~;^N)(-r~PMLcqWCV9FJ?7KZSqgBzUv zMqju|d9y?AZ6?T$fRJh3vaC>cel!rtc^F}J9%h{oY6F=^V!^nFkXUoU!a?GMk$fYf zksjB#qc$dcUp97893sh=XFDUXfKD0eJSD?KD_R{NqnHgUvm9W6fK>vApb7=nTeY_( zlv15)dAMQQJF3KF&R+&)BLDF?o~klH=L_ee+yYft#(0V^d@w)0eOZjiI;B&ws3@?! z-&;0({NsbS(n%mSLn#_f6(;@N1Q&?_lT1xJ$Q{gnS2U!^W+$fI|J@39>*<^ErvYru zS{3H^zMX$UN5205m>cwj{$M{Vyaa-}egw8&sKK}M3}9KYna*BuMs!>o*{UNO z)p*2$DHCvO(WTwFVRe|OJoDV~l#^=Kxyn9WPchS6b|UL=S|eM{#P`n)M<%+a^or&M zL;vl08;?6d-U4;(f>!(@mD893j@MVpEvVIl(WtN7wqdT$7FJWDVbdFHLnm5jK2mRo z6sPL|j9Rk1@aN@^IA0b>cLcjrIU~5=Eqds&VJnw|gdi;VJh}^Sl`)+lsZUk`9D%dK z{BQ3J?+@~M5^=Ige4MQxDp$4k#KQ?8j;k~hjB3 z_4@QfPWlIzBYsyWSNUsQ1r~SlROjw+dNlp;bm6tw6kqCo9jEey~Xw zgCwss2Y^qlsL1R9L6aY@mmW>KO@S|iwi5{-Un(Mq4iXf~CmyIVPV$!I-)eZ$9&Pxo|qz(e@v7X;f3w`%SYuK$z10LcV z87`$1t5v%t+2x;n?BZ%Gj6Yg^HnOf;7Cuvu;-8rA5jgDhCSmxr7Urz zZU`EW%#uDZ)2pJ_eHEy9Y4MpaZbw0q3AQs0s;y{yIP&nD4l$m@7VuiG0bgH(IbFH` zRwB0<7-hdx&_ccbg)nvLm(@S~d$Q9Uz;+^XwqHrmpve=<2~4FQ&K#P>eWzORO2(WS zbh>8CvVpE?MuW&gSO(suloSV^&R-x(->7Aa18X!n&lcclNDhT_qp5guGx)W(DbQSF z+RvDKUjYZI$R$%_gD=7W361?oZO*=76fn@-4o2bXi>fjRcUL8v5O3RdC zD~_%_Zna7H#ar%Jsw2}}nv1QCqGV+kJ?;3ML3sE?`qX2EkIi1PL^E(Bx$Vk&WG3(C z@~zk^-KiE1q6V|8Fim!xmL`sUL0>JAkzi*UCY|E;sI0>`j|+Md7rOTL2GZHP?hsM2 zcQ_D@`oYcjk062(5y(2G-Fa74S9{Bshu}wJOyV8u`RCZmO9N{jRcZ;EueY zfpR)SIdSWtp_3UR%z8<6lr5#K{{E)kS`r)$6- z9`J0PLHci!ALSJ4p zz@Ih|{|enInvo#50he7M4sTX1w%_(L$|mvykphn3WNaxxlU`Rh;kO+wdyXYf&J+b} zq6z49Nq#t>_1PlS?fHGh^Qsst)k$&_>$e=T&3IuHsZgSmU*0g*bQ33loC2uLgcic-TX?tm>dvsyX#9&-Xed*<~-j95}gnc$GABdl8 zNh~&D&x#w*cD7Fr_an7v3ZidLKHPZ@HQps2fF#ckv6K`~$0G&&c}lrk8P1 zZQ;{RG01I`e-*&t)QUrsj^NIw`;DWfm-_C1dR&agd}WzS&ZtY;2$FrV+^6o}Z9`CP zW)C>F7y20VL^)~tA$tr3L(cYcJV|5t(B z9B6M*ZZU6~COnMQ?#29R8(MSpNqvM4bK>>uiB5t*hf!U0qiu@w{1~?}r|h2MIo(N6 zf^yMn;V3@0JW=H>;*v&gI5&l5cTEGY;t4HT31yZauZ2Ty{C1YJ%KP1+^Aq_-9F&V7 zjp-aQ$y|FMs7?i*Ub3>)l1IZb>$6cv(t|hY5y_<$0QKDE}X+An&2@@b+PBwt3H&VTp z`V*2(lm!Nk|6!i zyeB5CM7GkfP9}a^miqxL8DW{9r!sq@#Iv~$sc7hop}DxOwZ2#9+YowjT!iQZ?yhGa9?fx5;L}Bp1Lz1AK4? zZozzMz2_9}wib(`HdLlTol@1CHdN z9U}QKkMJ%YI=?!j$Z!>)fNWdb5d^PFCojNCEzR?w+tl?Mz`HkU4H=`|+J^Z{UgW%b zsx@n|Dip--QEtM!nm^bDvGy9Ls~qq7=Xm~Ld{ydecTP7-z4?F<{!j+)*WL0=vsede z18KWP4EVb_o9@s6M~=9@x4&?pkHfyzkJ&tt{Xi)Y)A0OeX5FU71})sFGgMK@`w1%V zGF6zePzvdRIY*Te7AStwe)rXih1(5^b1^0N_ZcQIy|gg$lLR?e=XYo>6eO`XOO*vK zU7rXZmsTybwY%{~Ddnu5wXY6G?@AQEuCZDVlY%e>nz4!{zOZn)eHKqPV-xGbX*_#* zwZs8YusGg}rCKkM9&MzXc6lC_meM=|%oYBdOPs{u#Fqx-_k+{_czbj&QcA`Sk94?#br=`a(CeF<$rO?)>bLTnKciuUlyPBvA zP*E2QW~FiW-f_ZsJ5ABQG1CT0C)R5*F|Wb==3-|Vami{g)qZegDKd;Y^5idGM z&}Y+a(X_`bl(F>r|^Kv)d{YC{05_J_> z=yK2TYEsJY-gYH3u9$mhG)<=~A+Hm~Vqx-4o z#`a?GW8r|~=Mtu6Htn_);xGYKH&wX7pC-Fs)36EMDYt3~Jsz%$3)gxx1p?Xg>AyrD z|8$%`6{a~&!3|H7@c5iFce>x%&3p#6xbtpsgj2kzS3gadKtFLO7f$nE?bUsdP6hjQ z2Uw>r6fcWN=KCOLwqMxTBdE^I8>Mlcr~dc=#*zYWasA|T0(KLo`%!7KLkK=I>%moD z4qEjhj?cn9GaC3fo@@wqx(L*#e9|38iD23UCxw@*FLyST1)Egbx~J)vAA&EI6>|Us zT~}*hkb2q}DZ5HY8~JfsgTHrD#HB2|sBUzI&qrDhQuQUII$U@CN85Db-ebk%10)y^ zAoL#|VCHF9C{cB)p}BA~`yAW`@(rdqBTb5fKuKf1N7HgL4gSJ%VHj_RMY&0wXCCd= zg!@}AWmXXB+-(W>c-f>+ryED}xMM+hoBW?NZEo?ynnnNSZYcR51$S%>cP3)hZIKBPzHR8kG{r43odbY%sAOvGKA_p^)GG#PeNO zJYQ~r=R_j+oj&XzP7j|FIFjRk77Hd|Y?q2=C1UZ=96uvk5R32i5LX7;G7C#u_Z@bC zk+%N=S|a&+iR4n6m3dnlwN4A_KNjp>S-;bTfh_|}3F^X^cx0ysWBJdnNclc2=pesw zynsw&cy|S_k)BwX-^8`?|88hft|T)QO@}s&(01UlDU2&$J+j^N0&`}KTd7MTR-O)K z7;uZL4<~ew>BRKY?r##Z#x`Ds0VcPreL8`ES!@qio9e$^sZsdIK@TeazJ#-6^KGM* z$1E|H8Vvnqi7%D1j&S;r_~x3fSUzsHlxxl%DI$J{zrwMYw(nu^sZgH}8jeL|gBRp< zjwR{1CFF=!tNr>JCX?={Uhb8~>LAsHQc2QR;4APAQVvBdlh4B-I^8S@-9<%*O^is# z5$yonWC+guvv?EYfJ)*^1)Ctld7ziOhO}zcGLp?fxrLV zUti>Ijxe&eFr7QgI!bp=%>8=LG(n4tZAJ^8i@=vYEj^A2ko#SDOb7KRS_zdYZD}nk zT1z5k9`R_D4bN0R_AZsGZ>*}b6@_lvS)hfiIr~rq3oiMSX9@OtSOe^9_M>Qr=3YSI zClRJxLaFHt+T8krUoD*Warp#XZdX%^54x2SMS?nuZ8cIiP{ReNbObQu=$R^06s=2& z8=}auy;*fYe%-Xzk5wa&8)oCQawZ&*+4Jjkk3Bm&$R)%By|g%c!9aH1%!QHySOWl; zJ4=G{tGyhpnaRhT8koX)a(?9d?9sOBc^xrZGvr@X&aCA9zPKxDT6k{V9qY}(VzuXoLyt;tR{0y0l&tiM=*Ks#H6(F|!nrq5Z2GTzH@n8p*cE~aPO zQMg=ia2bpG0}K@0BXzdL$?H6`lwAmEXC2f~PdAR-?(f{cs3jKy^L@(v8L#kf2h#DM zUhjY`WQVR%N(YHMZJnrkeVKN|4QHarT{Nc^oQc^w# zqnqPSNeCU}07lG=2a*AC)k?u=R%}pKTD~5QtMQxQzU}vU(Fw)afPCUw|Jj(#p5sX_ zK?F!h0+|2KV*6UQ8&l_(e^WkFCk9k69{n|8W1p)A>v5~JZAg#Xjq&A9ibZPDkZi@> zYpA2Oa9p!ybZa26Or|oFr@H9zaow7@nR^uGkVUD~P01nv7?P@^*Vcn7q&zM$+!-7d zlaG}mbBoP?JO^`=Xy z^M_DQW`4+vzkS|GTNPU_MM01_%CS<_l~R@Y%Z9Uy;c1&(h1_?*#DR$>(H5?r$GIn) z!GmPl8bm7kh9kT%Qrpx7zGzgyz%4=-y*S3Um}k0h9y;JiVZI*KS-TV9 zlV3M#Q+{^;KP|w&5q0<%f;$ZQhdBr$FW{6U#8cHNFBr_qbV??0Y@J=GiZlGA4E&~y%2cPL z?N*omctU1pVHlqBc+o5|-kCX++MW=v1}f>waoLPdU55Z6E;)*O+h(RSDsvtYp?cJ4 zz@KBz4WG+(6YliY$w5XGNn&%Ai~_{%SS0b&?cE*BqR3f8iI^ZPFgKz~NYOXe z(HmD(SFoiqG{EPxKl`_ccB!ie4lwTw69oQ%5zqAeOK>@gXu$L5{07)#(Hv&EZ8P>L+HMVo<{JVblyMDFcJ1!@av_pR<)#CBlJ=W)Y z_7x(uIdNGa`8ay#S8QwNGOC4-0dq&H346P=mvzVHH8Q;g?-1*F>VEL%f7K*@!n<90*a5NDt(fEf0z#vc>MbaR-qG8fO=JVirF;sDS z8qd==G5{2BDVUcz1n;*^jSBpsolU=Lw_Rc)Tc%HFQJQZ!XxrDDCVG}ZaLY4OWY;rp z^LoUX!?9xfnax=n~$G!f8O4WVTgpD#6)biLE`1(t9h$)1{YR zY1zl``-6aa+niM!n~Tm^7r-oJuJA}Qi{~(LJ+{ub?ldc)GYJlkxOe+uhvULuu5U$P zVgNTCv}Sw>SSJcKjJ|rl?6!Bd;?7=CtrA^KUGRusuX409kKbgL;$`Cq&df-(>Sm7E19!S^g_@?G9Pm}f4Xh;JbEKaZq*xlf zW_<*HSbpjI_2;CP0I6w?xsoo3uPSNIpN_kX*JXVlBQMUt$*OcXOM+ zqZiz$XVqq16L%@NpYR&b+LGZY+>^-wZRIFb?8ibp0Y+}cR&u~#$zBq8)t;qbfZB{s!V{=guKrBJI%RKrQmjd^H|E45-*#K}ztxf%vVZ zW>u!UR#DQrr^m`Oe5B{)j{hIt!y5Ro%Vr@@bG#Fs)6exJkX@{w8v7*{)PO<#Z#v=p z`$9&2hT)etferqyt6YxW0JM_hh0LjMQjkD8&gqb@7J*0p-l5uRqetlRqpfjW^6uh; z-9|RT+tGUC8jP!!#IL%W+~iNZI%>E`%4#`p);BRHi>! zAT=(A#y*HHCL1q}X(|)08ne;|jHhAgq9$rV!YfRg-R|mr!q$K264__9BUHxSm0Vcm z2q=|cuwo4g`zh(7Q@*>JHGxh0*+EE&NwC7_elLkcYJPYicEfqo@PrM)NB|1@6WPnt zuad$}92iY`k7s)&yT97w!q+YDVX?bS-Jw-ZnfLm$o&}h_lY&T2A{kVDE(q5LNBPtx21+ZW%37tG}cu1;|c0lFA2m%@j+DoHSj(O`EB;83({OOlgo z&g52lY)w?Fo85G@iWJPrVGAs3-~zuffQy7%yNergjv6_EDYgL=4#WSq@*-p^qwv)6nyY!3B-8{yVyx{UMLs zXfA+rn!aU&>KKk2HY+Of&+=a#hzn(VvDSvL^JjKh1IBPWSUIM``4Z{opO^e5rn8i~ zucmUam{eVlYa4i~Cu%(MIZMV!uzFB7Lig`Ef8P*OsYYB z&w#Zcu30!yEQ5rNSW7^P5J#E}SI6F7=L}LB@8V*c9&{y_6Fus3sQ{|ExwsMMK5u2< zAk0tbp%Kf641&Oj_Hes(#3?zTeB ztxiIxAJ`=>cQDLRQ4%sgo!qUvWga#McEYpg_EbXfZ&p{2gg|Z{K;Kv8^|0mAv-Buv zPE4z3)OUV;@?u#(e;nd2{z}kXTGF4}oi3&e@Txo*!Wp~q&fD<0QGi2Q5Dw%CQ+IqO z4!>F3%N0;%kvAQ?OphMR;k&x3!Z#zyxW82&2R|3w6an{o5#*gXbuz+Ck?3tRBuuWz zVbewIQ2FA9xONF%t(0G_0?K0+RHH66#MbXg{e-klynA(qPKBnzWlr(LPm7l|SZ*lv zaKKnB`)tZ^h*sND>_k+!x!{hDi88jq0!F2{i*>j_4nZb$1wDguQU5{Di*eGJn98e6 z>Uo3gmNBB|5$O`YGU#?@q%DVeZT%0$m0S&>X_6Suh@<7tF8j~bXLMDkqG|P*uJ%9N zjzJL}&=+((s}l0dgf9FD7mZqOvI9nJa(6qvE0^1?nt`IQr@rM{x6v0S!uY=g$A8uY z2LIervA#ThGHo1PZrZf%;#)uE3v6xYPziiS-VWJ(LUJy2^nZv9+niCVJAUG*xjuXNUdvry%Vx2bE zVb*oC`u6hBXn0gDtM~(96=^Kx-#fuA{O_F%1`z8lI}$l3D4^z`Js@{bLE7NENA0d! z!$nml%>IH11o1g*Mv(t$0JH^Zy~|Z-RpeQw54W$LUtdu+@e`$>wq{W<5%(qtE z;mi|tAWI~|2@YlsC5TUGDHQQ?ww9vV-Me(Ued^Gn3O?jM(USfRiV!;}keerV-O0!N zX%}7rc?YW+1sMO`T^f=I|Cx6n&=D;&ZJF=yUqy~~VwUv^&P~7lyepxt%N{q1z(J(k zb-L9y%zRCzi|>)1>oT@BWQJ~;iyN}4%qkK6Rk3={e=Dho&%Ipc18j6m4^fl0Yeid; z*Gf23H*zj~?lYzBN?Qul~)7Zn9j-}S(yL8jB5+X9WxRIKQ(^+G6Uc}CoB8W5AmFU zCOO+-a+|zRUQoaj?ae;RB zc-nHy+3Pii(@TaI?Lp3Ri=z$dT4K$3ux>wheJiv3AiXu)Y=w37rt*8%(SW@zwGemS z3fLrF7DP_ZjoKteuE3uWz#ixC*+o1OJ`fj&botWenvr>hfX8$R9sLQIV!s9)8NUtdM z@sDH?OkdY|rSE!l$=5I)=;P?jpK}nN6j+fBxo2$vTIq;wBu1o&^5iQ@-mknnS`nY$lv9WRx$1+{10Hv4bxNM|t`6rGmr4 z-g`c1b7N?IId5lt`Z&)hMz@yulr4_>mGhfDl3%tC^lEDL*x1B^m4994KyVhP zPIaXn3b1hGmGe(3$E4Jiy%oAT)YP?iGECn1H&aFCJZO$-2XEG~2~omjNJIh6W-j=J zk>02FKE5PXVQ(xlU2m@q4%^5zPrYxaRP&g}coP7&ReJSKR)E7pg=|KRc4O1?!Prid zi<*^cj8XHtw>4v2_2JM+l9+DbvowF{I8&u?7nelUD)PAXMLkset!bhwzrj>KndhVvX9fs&q@T<4h*$HX$D^R1$^X9F^L&4H5hRO!9-h$DAivz# zw&n^Exi_Hwq}%Wr|G2GiOX&d({&AP&t#6qm2zBh3*!@wYy;{L8PjF`VJvsyR6g86z zT%UnHiI!pLAJPp>L;a){eiRb|w|mta)7h269^E1 zROvrs&}A<0ek_ZjPUdvVWZK(Fe8CB0^an{F0K7E-Gt{uB2Mnje9dl#X?%Ho{H)?0t zI$ryc#^k95f#XQ21hiVU{B}vl6}M&L|o@}XQ>wc6GJso2)$=fwXVUlk^&8VB2v9_ zRG}YyW<~WZF@Dal!rl&cK1N#Am-`zMQY{W7cA3My3S-BYz9&cDtb8k%(gW>}W$n5y z23Sm==J@XlR*2rULRN9s(kIX`if-`~(@Tabtw~f{%*!qvO@ouv8OP3fqbS_0=UQDtzWN$Oe9ie(2m~4p;5pU1Pf{k)QJ^GNIB|&zj?Q|^5$~J!~sv0Jt+IcQ( z*KLVxO;@Fwj1_eskjD{IO4dX*GsO6lm(Xt_{q~BuI7(YOR<^qfTzB4Rx$k=&P}ssw7(IyUrfIdbL$*)?or>W6@Ismh28pcP3o$E zHSD&DN5TYXd~cB%Ek)nAu%}+c8y=s(+nJ^pVCh9?vkMjgG{dJlXFFR8DWYm`bSah3O@o z8fnByVnpUE`7unXxDsA&tdFdyq+f-$xTWH(?UJ;)=7(QI|J+~YDMcS->Sf&~5I}+) z`gZR8EHGY3)+$|`vN+z5OU5ig+@^VBaOb={%(@Wg`@Dn1E_pXgP|2&TxN(!VjUNVf zyx8j9u%DUViBo@Vxo4q7IGX#itcW0LSj;*#nXgreBuxEGaXjGd&%em=Di&}55S3={ zu*RKhzO^{a=YPDrM_%rU;eqyK2Z(#;q=lNIp12@|AK#nX|2@-HcRM>ufVcVQ?0-B@Q65TOEoiHS5F6gpwyUb4~nYKZ*`lNj+ zVlbmgI@(W7E2zf#=2Y8hLv&W!^O~qF;f=V42f!{H0n|a)e&K><1$?8wrm*w;eVe0VwAH{qqlhr+n;aSI`Hn+Hm(`c=b_dqUa5DsH8l8~<>)Yr& z*$;N7nI_mxRM`Ann;nV3cv#*kMxH9}d>$IDVU33fK*xw?Hf=c5v;}L{neCWRPLJ!0 z$M))C8N=zm9C|n$X!)yx?`C{oJroF20|y;d;b0B86)ff#redDjizgDE0^(tm%axr-EDR4@)H%*)L~7> zMi~l6=gr<)Z)hWN>}W;&0+>1(n6A$w{EU2bQ7wcGW@9- zZL{mk)8dj02~{X#>7`n(Kmm`AILAIDE-IP&O!4w^v*PwcFY+0r3m5!b=N%*=d4NhS*8)b_VOa$kjFm$H{_F9~2>Y!ubs${4pgfT~KF zBXLYyr1zOCo-&(!AA7Qb%>oKJ2AU(VW8(z!Vt(xwT~^|V%Q)h#jX6l)&7U@)w>w4n z{REUcoRH22?2_DMDWWsw{}nc6;PjBkc!KgqKbSVxiw~c8wQ<} zW{j90c0DTPPhQc;3kQ{3P|9%&Hm@{b#q!LB+UdM;N2^vn)r zR{L%J8w=1TY!Fd0N!08G?6vPcruPK-e3c<|$B!4riM1F}otrRhK|4}SBVB=p9@F{+ ztZ{69dUQf=3NciT*r*k|3_#FiK{H13?KcSxriDKYF%U$>q~O|p&53J0agAC|zZ)%F zlMz~VkGiOqO|bfx6f|n4dk51xl@@b7%j3T?i$An4*kFMa0i$WchN~T_poE9s)I$L0 zxVLknmv9n&i)}1GqG&c(5Bo8#NX>Vf^7GsDRtbYL8(T|deaOp?%ct>o-G>tofNEBa zg0q0ZG(MUMHCfP0033+E>FmX7>EikSG4&Q~adl18D6YZXA-GF$cL)$%g1ZNI_uv+S zyM+nv?h@Pw34=R>%i!{n`+2W(ou9DRUaPyStE*bn(WqUZ1_q+dEHpc+$F3sCw+dIv z9Fr@fYt(uXCwNhZ{~`T{T>Iq-hk{^G;xXV{Fk|((x+&~E2(<_Nfo^|Yr#Rf}`L1&% zigt)PU7+g!`^x6MMf!F@7KHJ(WA`quX&s-M%xH4ldd=P=Ywd+W%hLj-sg9$JMYr>8rt4XPsX{_+lGq|u_pd@XE7!rWv!ESQx)W8l0q4!Tof(a`Lz7H3pp_4 zKbj2Y=?Oc2GVuwN3Gubyxns0{hLr|-8>3>~Oaky{%!tj*>h^^x8=(+g74L?7Mzj6^ zZCbSQYFO4lCUG_ZZP-Fn+05@?E;qJ|(u9kgqdtNrypUU234vHa#~Gr{*kshMs;7qR zt!*~T9Q#IGq2T_o@?>;?(Q_ks4B;d%^n{gyUH?s-y3TG}DS>nTwIEx+X_!*yk6VKF zCbt?9v)%-@!}i(iF~E5C*lNAVi1n*Sf}rWi&?d{7?*ld3QR~=s?zjATF!v605q8j3 z?)doION?u4S*oQ@g~PjzID86x>bRWK%5JYpvBiSK$Jl!Cp?!HH&ambaDR(v{=zXE{ zl3Su(&9P2}z2IigIr*bd`K)NAo)ce$HK|xvRPD;^nl3zesU{$y{rh#PM0XiOj1Qsy z7Z%(T2H+pdg;ZCFHLfZ6<1wTQRQ|Q09Ibgl##-!F3DxK^0oJ1-N1T`22S!>^8GHsh z10NnIRlx)4q1{fOd05xnP$U1-3qC@0~4x3d~y*?EdL&M(A^jt>a+(gv@@9)PCR;b-r>rq zr*pBX8qt77;ZJ2awv8e_Z5qzYQ@RMKXd>ARjo}@H;GQTxcAc=HQxxtd>ac z4;CB}Zk>$BUa9aexy~pSW(A7U>@auiF&VaCYig5BoJw3x{C6@<*V5CaCO+Lu@UIf8 zJ#|Zm#UH(6*gw#kYn!L8-%i_ojw(iZhA`K;342LXD`?l!?=G9?Ig!$es-IgHJjiGUaA7tj}uX!dTm21+lHc$omQ>hqO;VTP-O=)^l9i&tTr@6P<+W@P7%s5wmRR_N9-QTu$2R5=K5NeIAmA>%AEx_ zhuvPJbUl#nJ&v4t4-|#t0wL-y4Qsa&0RitW1D~%}0WvSCVYUAR>j%BTf|G!yYu@tA z^lF(t0n(m(T?Rd=uVonv)Q-MSBxk|%EXM)w)v%svl#C0A`{SIGG@Ty0+fF_0I!`>e zE7Sjaxi;v6in#m}g_cOzh;^w3(k2JFb6V{R!ZcHu>TXOu)q?tkQvFQ#en|(xo@`E` zK|yQJ@Z&-&r!1r*$(tD)ZUO4}kPwf6y8?3E7Kf0o*zWfcDYXq70EVZ57uo8Z=b{vp z0M|>@&I>M-CCDL_bveykVEDK+F?|%OORLwc!-f^0z6&!Z0P9MT&5PKjy!fdA0PD`W z?Rq5cJb>Nzb&|D^hzzxT;q9Y^n_kI}0FiBbTf+_Zb7EDmw#ZFq(Eqq*aolqwZOda$fci?^X04E}E5CN_CO`MO8H!}rQ^MRpkdv$Nh z2R--ST-w0Pv-O4~a5oXCd45_LjK||G$14rry##ET ziP|}1u7k>eFBzbQU{0&2OP?`Sv^|y5F=f-kPVuX!v0LZ2+Ejjs0D&yz@KI-mTpllyk#N;|FMZ*Ui1+K-}R zg;x$=R(SLO<~Q+?FKOxeYq1gGgB$aMd87lx*31xwEbDZ5dX2RDD*BA($NZInZsW-4 z0AEo+HMrXr4FwHgjRI7>4-B;oFEAbD|}g0j3`YL-KenqX!9 zX{i!b7VGZ>JO?>5f85d-oDir zER9GPbo+m>g5=MQHi7YzlM*xHr__R8O_v|Gy*7ngxb=Tk+v{|hx0_UftA=vfx38XO z4>O!=%8&K%5vQbs^-m3V25*cZ8DiqJqOA*s{y+U+Un3p0eYd*6#69qTgo8%cD=@5n zo(s(~-R4GnIFuyYD*o5?!V_1a)w8O~*Kzo+#_egX@&gmY@o=nfgVehyLy_%cO^2JL zFyb0U7<`G}-MQT(+>GwZm|2@t=G;N9OaM|=M)2_6HG^jBPevG`YQ zsx`tD#vIB@74-F?H406>H-k{$_|Wh(cb${qZ3=hKpQJ;Eig3F{e+mDX-#4QmyH6l zJ#S^lzzYu6XdE=~0i$GoHWZLP!kyKPd8+7j+vIbIZ$>fsW8R=n4R@{GG} z#TL>5*y0o&BjY>=efm2)ZiC}nLm7Hnyf8|h7Vg&8JUugw zF3%7EBehfrVl& zzpmMMQ`w=pf#0R$Go6PRovLbe4YcY=$iN1SdtD;<5HywnRW6r3u~OZ}!v6 zakKILLWS@3u;22n1D)aRG3;QQc9L}2X+F>O45uJduRv({6(+J+uMbi={io<&QcE96 zP*Kj5IOppngls-RUss;xuUrv%6BbBDWms=qkmeS60osp)26N`&J9}rOKdG=0sN5j# z#n67h*rh{-J{TO1@d2;H=dteQtn+tuY`BuN`tPdM|)Bk(AWFq8)DIVJi(0^zJ!qXv^1*b?lsAi=b_Dm3n)} zm*16wb+wQ5PuXy<3HnA+tH0~)d-i=U1rq)RKl*5Y&faFP>_xxF50m%bos*RU-mQeTBN@?#@_{C z!5izL1+PZlCry0)eJyJrHUj4pdo^;;fS6g&A7OBRoAKp2-J9u<3lx*fYNW)6_}+BZ zrpxMre%FY~XoIo;22v%R@ zGY!GZIC|UDamK3;`HaAyK^Wo=hZY8~K~n4s5e!y>NycRvFw(_D;YTj9pM5W8-tj`6 zk6J)hipVz+01G(ig3eNHV;-nM!#0r#bx(M*i)~|t1@#K;G0KOAY-7v$4T(gG_t&>*zK_4f7d}LF$AKZSQ z&=?pz2IddcTdAJAQ>x5ggfp&nw}Fv|F$QvAAg2|%{(*dz--IY0Y1R{8eK9++{{JWW zx!po_s7bFYPw^5b#fhkx3i+v?JC5Jm^w_y}%PdMMA$3B|A~@LW3eCPiE@-IGVP zEQ@0MM9qk+4#C4*Eok5t^&PIs1`8^%hYnJI%91(@qSic+5o&c)>>PdA)%o-1+Q-VQnDz30D69Cpr!d}4Xs02-8-o&549Fk_Sc9DeQi8g+s z->jD4a*%#SUl}m)l*9m!FG9$qalPCM8q*@LioI;Ttfe^bRwo?T;SW3flh(E@wRtC2 z5o>1()?2$(J`w{re*a5N3y`j92y2iva1!Z=9mX#9ajCgLCg5YHCjD?8<W1dT zwQWv>Y@^Z#uux5Cu^Yiq0b7_RF=G|&%dTRD)T2*&Kel9%?@}UB=%3K_e=pkY--|vb zK&OVs#dGMR)SSWJS^vheHsOzwFMV?!I-S5Z? zJLzi7^)N63DHxk5vd4HP;(dzZez1ADiM3@dquO%#>6_|J7H(usJj7+S@EfICN~hN_ zPi0>Yw5{A2`Gqc>mgvqCUb5neehy8$Mq}1f9RB)LzFydpyLsCWas<{1s*;ub7_7 z8J_u_G%EgLh6)C;hsu0|E}cemS7Gm(^36=7aB}SVsynlXaQBlLX&vtWa@IeZXoUvt z!|-ODXehT9qDJbbB?tD@U%V{00i>&PeA7PEGfl$tD<%0$0LO}s&JV4YQS;%D$M!+8 zp!y0Hu#V?J(D@gTXTT{qM#fODH#af__6`uBo1BaRqsDjEF;Mh>nYlog5|BlTsOulGE${DAeC1|u=ex_D+o;ujj?AQM62?&|ft;$+aF zc)+YKaKQ!ynT5o&wQm z4nPIMO9xoeKO$t69tnkHyR4@E-8;NzS`TQf`d<0^`vXts>7sqy=XPI(l*6wp#v88$ z&|D>x&zwjD$Y1wjRr1<|L-gt3zKCRsRMo3IA@Rx=z{+ad=OF^hNW&kyW4J`NK$=+=4De zIx^9qrv9rHI130Zh&j_tp%ZZgd?zFZs(irOUlRm77`(KOJ#ehIzQ@I`-!)V#GRSI~>^WD0+S%@>0R?1!RfDJr@)Hlvis4g|By4!L@5Q@jj&WFvtNQaR zxcdW6K2#eLlZ{&L`$3N2_R_^~W<9xI1Mn)6RrR(k$%&^@&&s4Lf}yol+d}W_r8x!G1i@>{yz^ID^&*3l*Op7ShkQ$!iX&+^EKq_Y=jyA1=Os)bM1jHI_Yi-| zyrj%bW$pddPWF1m1o%Dph z8iOmlWed)NYEiG>2kVOEYv`rO+yLWRL?fRg#@1R=N!i8mfo>k)#+=%6^9#(^u@wjo zim%(EmZ&=ZN}16+0^yz;5ulHU?@EqGj^<2&#(=00EiVVSVD1~%mhwc|xp+7AVYm5D z8rX4CWEYP-xtcQQl<;5dCKM}wE>;%eif9Cc)s@uHW{{SO)%u3J1?0aA6OBRh@1Y~R zX*;>p3AMZmnwg`ss=u^lz{FxV42aTS1-||qvY~$ln*~xSBTsf#-omI8c4IjtrGUn)S%6)gdTFEP;B2ncwS3X(s^cyUfm`XyNn4^rp`GgM_`Bj@X;z z9sT*F36;F$uZQXbfS4PURnNmP$J@=4sprG;VlCj>VKb(3~yS@IG*V*e0E_`>!m6+F~$(E9aTA3FJ*soN@_P%?QiGKwQxcxT7{*?(zODsnh z@~i?UcfCvjd6kOPbsCsGJERhClI^;>Nb=N@!-wiAsM~<_u!1N&%D` zocu3(d3dxuMir_nFrZ}o+On8~k1T8{Ct@oY0Frz0AvpuY12*hBIfWOh$~- z(=tf`D>=ViR_?ph<#}43yC( z150hm?+3jb_w${$)$O>CT1Pe{=EkgUzWqc=T`SZy@J>`ncpM~Cw=L`0G@#Ner|YED zKxz>LkqMjZf_-DH960}!Mqd@$5u@$bAjSF`ecxda$m0-*{)V{qvAV);QLU%GWd~#3 zLOdW6-UF$C{6`1Rv`kf)N46PiOR$TTvNAJl+)yb!g}}Oy3o87Fm^M_xedZ_OX{hKv zujgB&Jml3uH$djD+9$YFCYBcd_MSX{dY2sNgQniG5RQhh9JAhhxlc&0KJlKi4n8ib zGp{M*Lpv})PExlXDMX3Urkn&4ajL!Vl*FQzCAqYTvYy=O; z2OkQ4RSMb<7tHij^98RL6axuWFkn5pLbF|Z1#fgm!j-YCC-;huRtom!MJ0H|qx6N- z?94FBfF65szJm3-nB^^#dfU{qFEXtVc17xc5#pEpd!(rR^6ai77b0qsBahYn3uLGu zrjqqB>iPuA^jGz;NYAt0NH%ry_@*Tk)NGEe8qHN~Zvg{Vr56+j_6lbl-Tdf}cOM-X zNGT!Ep7n_8!U%o_PBK#k5quqFBi>aZ(X|)5iLrGA1tr>Qa6whl3wkxaQHWPsc4(3Z z(9L$QQbz^p2j6foPVa&2cVN#nK5i42+9Rl{QvZG1gSh9RB(Y^KCn zw2oGL#xOS2wGAR#{jI{^c@zW{JrC}F6$fcX)D?{y!H(jFh7--cd2!@k>fW~PM~MGR zk0t+=8qzEeIBjuKwfmXw2ng72g)PBI<9zZqu%e>KqKI7L+R~nsRlQUq0_JADUvPaE zq_b+mPTL)7$9R8OlDMrV8E&M99t&X&rnwhgn%8DY=H-lXA%Y2x1i-`AbvQA*KZ#QX zHomWLMSa|t5}p*)1FgdnBiA6u;qn&d!=Z`clE^V$kM)7iJ!Gp%#CFN-hur1@jMy@uOS6(=K|lcW$lL~xizLOZFJ z#w0Qp(`2uQMuB7KsBUb#ZeA6Qp$ds)5q4Z*3T-H>HN|O(~F?rT*lAE5-0N#o!SlKfjTodGim9pL6&4n)}OoEm(7EtyS-+N zQV`i{Eq+9=9TfZlAhs6#2)Avpu~8;rSX1oy(L|#J9#4>l83m}nvF5Z7m=<~IU33Ys zPIen${Ho3O;ds#QH*)V=i?JX&MZi81De(u>Togk@0gZY zVEEs>`68Y0oxz8b(?~b-MZXD?TyKO=iK~p_M5W@a;-KvW5p0P#aMw{bvs`%*K9?;(OXgBE615C>wFIsZZF>VSY@H^f)TRDo4? z;u@@-5`_PLfRklQ>yIiU@-Yt^M!l5!m#f|o%;Sxzc0{WuE@R!vEdd^Y;;R8$-l4s! zSM(4lES$$6i2bzvpnJD-HLImHovU7m(4++(<*1(&&z%$F;^ikn;(OmFQ(jf)^d9fS zqne*aJLGp)sbPTKk{23yWzmx37{G29>)UfeKpWpqpF=dE?Bz1g81?D0`h43a zFYGMc9)}0ki}?u;ex|LP&kabAg$6!%EkNhZAl089AR`gev8lCKRLg((V{Q8C9{M<% zz603!Cc&=gjlam)RUMyl2tJ1$oGr&`8whxNsv*@Wc;yyuUX9dX-tLoV)!H-|*EA=T zcPe`4yP}?tUggBNw3MStLp%Kf`REs_MK~K(CR}tb{`4mgE4kbd2yH^Gji2!N>waK~o^hTRib zgE9Bxgj#IlD$qlIw|bi1voC#4{3Z4+z@-8pGf76A(FfA)9X)Ru{06)8V1!i>GQ!F@ zSbbhZWccj&Q-N+P5Ss{>(WdIY^YfcKLDExx?P|vkM|3J};(=p%(6Im*BS#b8Lr5;S zq+6mfJB|5^y^B1y*YQlO35cT;PoF!fTU?`yPeQWnc>Fg-rq?2 zP@;4PCbMuU*|XK>WyHWIu)&K=;Uk_?G7kNg+Sjrh#J(^nN^dL+^N#~KB`XTd^f4M; zvL&!?*k`7*#d{O@)r&;+S60;e2HZK!JXd7kW94tw#x|5)$)7&|!xr(|lWvERC;eVr zp9gmQzN1D(KG9*J81-?MS&Eu~_}ltEb6FLceEB&R+*@sG+|Ry+D2uF~8BS-PIKU0B z#Z7R;ujr)3P6+&$@dRQYIhISHw+o9k1t~A)tSPC(vn{N$Gm8VY4m!nrV`1JEYocL` zW_ZHb8L=E~)llka$$y?=7GH`~S!CS=V6yW-;9oJ$cr7Rx2kVaUn^a_vW~DCrLfl zC}9RaXA1oOh3CK_RC#>K^U@33mO*Z6^W#G===Pg<0GgTjOWDN>0ucIa9<)onikOCT z_jZMB6 zq^#UOjJ}QY4pyclT<44DuBXCso|+T)rMCY0FJ2SVUNpbyc2KWH;!b;|olH$2;Tb`W zMu_gA%)^XmVfbP0o95TrLe0dTQM{XfFRFeV+jW~eZiY@6%SQZadZRn4PqWuq1UR=! z@coj4><~WWM$tRn6w2N96)p0ei7D^cNvv+EJ|DIw16T*{DsQo zwB(>p#fVPB6#_6|xNaWNO{h0UW2u^`&nTTR%GxiKxqvy-RC?K%73E}NM+TnmNCy~h za~jM7PN+lI>4O_Vj%)$=j)l$zulzp_hF((?_jbl%&D9W%Manc8r1aR5M)@j^`K!~@ z3cKW+8C38%;&#E7#S1+>(2&ug;71jGRUOuQyte7dH;-}Nb{Qg6o+@6`9;Gm)R^3 z0`+Y=I}jFxvSx1pgAVHyBlUwdtbxM>&kAa{u=}~9gs3ZC_8V$g*Py~V@3-_ z&eco=BcShTtR8-u3B~O0;gf7ymljDI#+C23UaJllu)frQ3&>g^6ZPG%0${4w88y7by#7-V|Cal9xQrX zI+eJd|5S9?Xq&(z`dBpTCa&M%oA?dY!|KITpB^yV#1$tN5z-(0cuu#HKW46cch)z` zs1L;Pd1kJSKZp=g~ha#ms7wo%>Q@Pyj1cZT|Vt#-$&`P?P|$~x%l!WrVVceCbaTXK02~m zo*8^46PAS@_0Q}zSLGMSM$)oVOU_88i@0fr`(66y4L4)|GA{nO_{wx$El7$-FTgV5 zFhT|f6-+xga{!_HF`Z#I1B*GR4H+W(CRXy!ZFqMX;b1@TEDHp< zV%=v6-T65k9=H|p_pl`E|3Djzw*2L2D_Q^bELIM)oggU4C1W0zK7E1|lG+*0FHZfV zQw8nku;?3f=O;A>ik@KDFOR|lWLr#oxKt~UE@%kyUTzS@+qR)t*c%Pvaz)@PK|`{+ zs!ep?+Una%(d&fNJUpcAJTkL*T2d}Q7kcveQM1kQnaIE^xK$9#ClU7u*bV*^6o0i^ zi_s!{&C&T<$3Ac;_DXQUo+!*C$T{RyV@zlnD=KN}S5>&y|7nB?Dx2{rUWw+P7>4)1 z1gb*AyNm=hgGKn1^H*VNA6&UF`Zc?@pusYEa5E>#%rdxP9Y$gNh)R-je1mXTadL3rfzcrJlRSsPereg3zk&PgePK{8E9R(ql#rAe9Cz~h616G;L z$}C50&R&VOaK$*aO1*dngb7ur@c?4C zH$4vG0UonZ??R}xkoR%F=jy)#>OK7wGALiEmo zUu{42hM`wjSoTHHLQ!Fj+1Wy``)T0#;)Aagx2s_3KP4outrT^9rA+AF2da1gdCu@a z>_UeiqWoqK)bo}4hs!=WA+t31yteW3#rA<249vDZF1ZN#rH>8waxhY7#-=^tc4#^!WXfNP*Dr7j?R1gw#1{<}H$FPCs>>NZJRH3o)KK_w&v2Cpug@S#YDo?iw zQ#zd)!ywVr%Z|_a9(7_29U5J=JV0hz%q`VHl5!-Rv)Hk&Sa4ugaBDa%2_-BVpMC9c zmu=1k7dMv_^^qY>#XY(8V#EZnwsEwrj9Q&@)NF;RZ?WVqCnwiF_ecS6S%)ZU;yVsw z4BaiTcUz+Ja1euUsYda-i`Wghp|72PO;s`Qd+;*Fk*Vndk$K(%n2e2=f)x8BdTs-p zgrW2`0}t{2l>?qr*q;SoNESGQi~`;+6^cw|P62uIr|cTHYmtQ>_l%*2e$IQ_Is?vD z=m=FxYvM6~|Kg6_O!W}tMc$?uhd9K_Er^J}IzV0ZRlGj%Y1HLa{5TYf-z{GD9OO(} zd9=Qk-LprT$S0{5FAsTfqEBS1c%*ioPF?Err;D`3o_M&s8RucuwI8(*7e~QZ{8F>I z=)3f-dZfMl*IIGQQG5Aaye}Ods8|50l2*lZz1N%LFH)AB?6l-D@UMwfT`@@f)_fvhP0TX&sO~9={8c6q|{0ra#vlnnr~S4jIy^2ZPkZR~A(B zEHj{KLqPX{T8aD$RYZIrT_zEwwDG*bMaS=uTJ|=2qS}QwrXFm6!)FJ(dhy+nZ}?+X z`?9S)Df6`^BPr%2Bkqr@<*qT)1;y3I$M>~10iTS&8@{VB7agQ9+5oFu)u@H#_P^mc z3F0Lv%a&D39NqG`34i*}Jt0W>K)v@#U@7izHS+sC?}D=N0mrW$T_>wKmQ^Ic>8|ql z+Y!ERD?v?w*Ny@``~0(>A(Pf~xuAg; z`|p0w??cm{Zn6>8iJ*0#CU=YExLZVl^oM!2U)cm$?qpF35t46tsz;6GEO_Ykw4 z-~8Zyc28zIFH=D&av)M;ALr`f@Ly}JMpm$;NTb6Rsa3{4`TREy3-<5yw zGFsH)twe|a@f)PN1aW(!5GZg=fF0=UJdk^v%f9WyPy1&Qpucw`xk{rX{{7 z^-(@$%@ncg5OH?p)46;QAp#Z*{t2{NbD-475Ohn!;}H8J;T7S9`ZzyqSb64nTQUC~3vjr|2RCu8`dm2zc#VDkG~_hJ^O zhw~gAG?Uo0^=@^11fVe?8w&pSSX%dC>NPwI>;4-zUG3%tAsxX7v zFzTQrQ(-0EYQGyPy69v?u8!RlTjhS{)byX|D1&)M22+^b;_Qr2*(Z>OIfzXmUW03O zeL=fmU85k+vR;4+x=CHP&efy4aP+gZn7HxpP2~Pg3dSJ@E$6nIeXlku)wh#C9;ol@ zr%VI-WphC-7X|kX#!r9Nl|`T4rj1q}noka&mm4c*ZUQ!JN-UUtxj1Xq_xnL6_%f`%aHo8{*> z&wC`G$Y{`umQLTD;|9WUs+ghwP-{b(Gh3hjz=NSq*VOZ4@^H`A?Qp?sUM@lJoA2MF z?5@HUNh_ypUKxuy)q%^ZO)OrMYk@lk1z)z+O};JygK?M&Gyz zirJ%6hsTrl`<+sBHw2yD$^jc3*}sVcBly3Xd0N-iKWA2HFa5hf*`=9b?^HN#ladcV zCa8)GpGwa(1`!vJvS4|P+|{|kkMRV@c^5Vf*|j;vdQ>0P(B0-@K3t+47RshEmS^D` zRZrxz6N=9wxtuD7$$~p)s^%OLb@4>Wn2vm@7gnRcFw4p64FNtf!OwVVf^yV!HQ~n_ zoiF`9{PeNtbY-mIp!>AHvFA%_8`ce;ISsuG?mU~BBV+uWhj{5McUMb*`t{CP=#)9ik}7yMMzDg5 z9u}7`rCXTff^9G=RX2q-N)4%)KEHZYf3;SF)KAOC=B>`-FmL;r5@y&@$b>EVg?e}c zR7Ki4q=Kx@*&(D5C$XkqCax^06AQ)eT8Ee7dVvHPEe$cc)azII^EhP_Om z2Hl{xe*=Ybxm?DqImWB$90q@q6t_%hCgcd9hfn?PQ zLDgTs->INZ>2h?HN~@)21`WFg)yhF149TcXjh6*HZpiMjJM};rZGg}{?6a@W4-jBm zPmi1it_MPvDdvh}!QFV$ElXq0tp|gyZ(qRRBg?B3?AUF$oG8Glbklh=BwD-Z;nfeJ z)1LR^mC+hQj=h>glUzK**~yKsvFbx0Tyqq+^ZLkNwtt{a6d7L~aWK?S#NLc6hUl`{ z5;i9s`G}XILpG8-{F{)q=tsFq!h_Qou*AT5yew~uxO=C=O@U2OC-??;7QI|$+F^Vn zne(e&HzyER>I`Lq2e4B(q&}@xX6hbrqHe!ghOa74x%G<9lS1wQyqod~a(}6ef9ysB z@e1~IR15bn6y*uZWP5&S-?NM{u{OaOM9aHm7i-D9t8lF_`xM^19 z5n|Lm6lnZrX+*?iYFw#*3a? z6#6Pe)Uw&>x9^l~1oYTf>}~>yB6I4ur&7~u@c^PcFh+sO=eGl)uY12)uU1m=<4h?! z>q7`99I`2miHHIurcRL*u&zR&HPLPa!HJ!3`W1*NPyehHM9+Ikd8IHN7sKA>MJR6- zqO$r#J=_5B5Uj+SWRVK3sr1|}%M#I-;x(fm)2wU*#yyt@Wh6~&yA%?@~hWIcM1GT!n{9lg~ zg(39D0r$TA@pJFu>VwdCQ7nmWaVwUW9YO3s;^z;hp~!_<;-t)7p$}dr&~XJxVUwRX zk=V}8_`Z*Bo8oi)(e~Cws06Zokx}J)mIy9cw#{naDRSU{^!E(!A8IL1T~;_}$=PmI zcNmupcOv)x;m)~#O+dS;W~nAtcmQBdImnSLN576oEst!1UhR|%x7VN`>5cPIxh;4} zdiRNNv9$&@MSfST5&4;)W4x$H(2@MBe6&F0gbg=in3XU(u#H?*NG$9p1u1$gEc2(@ z0^@e8yz|-yIXoBZOiRB{gCxCds9N+wse2IfvHr_6{12l3JKv2~#>@Fx$qN*1N(>G@T1WG1g2p7@5*NvT!46vDw?goD$l?UoDUeI;+(}dy zsWZl*A0HF1o9TZuX?BkOeT;bOK$#~APjA~^hOlJ`#=O5(Ub7Z7?l96q5%t=?W9gom zJDrp)Kx5hx3-+obF1hA`zNmvs% z0k(Q-1mpYtq0v|MXw&I(CNC*k)xjNrudcX-vS|_&YN%Y*F!QUi^DAw}q?t&%%VcUMBw}{+kS^+sybj2_?e5Xln}ox)ES{;HAIxQoDtNAoml^ z#r2ZJzU`+9g!G*q*|t*DV|J8#@?Fu63=W?hm0(X9*`to zpky4x_)qSf4A^%M1rFuIoPZ2g%NZXEWd%uvJb(6^|FLIlC9T%4DD*6p&RTDFj62y4ZVdObk_R#R9oVR@)XOw*PY`%l;d*#AMaG zp$+?rwWn5J!?LxbSoPZ7SRM3g@9wi6nomy#Srch~o>F4e;mRu24uqybfU%T_bY0?P zU>EMLSu^rKw~|Q63`@B1sMTrF>@v$%C;xW-4c2?oIH64T043(_V(@a$Sis++nXM+s zYcdaQQbJ`f9i1%PkH9E&He|D0+iflE?a#x(Ku_zlE5Bh;^<}?;5n$MP3l@i^XIXs! zo=qT)^;=hoIxOYkBEe z$*kkkQvrjh?>zC2UPikfX1A%Pp_b)&=TX&C0HJd7zr@-`gA~urRp>2lecVXan`YX2 z7A(XUoF}zlhfc{--3k41fEqyqfAn6D6H0(tYI)d}HdM2?nLY{|DmSRKp2+~`9%&`j zz3BV#SO;DHa`iTpumFAl$?y@Eb|K9}(vxwSy^w1DF>!^>mo}w~9eMrjt<~obOWI)A zW=7Swyn(RAJc7u-20d|tGRd>dcU_PR_RgnMr%n=Hh8=NhYS=QJwYOTBn_Irt^96Vv z^W{&@)vOVtqfHDruAFe-ibjEX!3|7aLzpz&FMUWURjIUHVKW-MFOI(Gti%S9aLoRs zQ5Cza2blW__fK<(fnf?e4?6;4kRH(?I9n9(Ci z6k{x>ZU|x$-1CXm>Hj9i?8O4(V4N07@eY{pti;=4ZxG!DD4APq#g{-D;yU>ArAB2h zgHGKyW6wRpH_v(Pov$xEOG4BQ=dl)$8b~ulR8$=V;phTFPpuh*sZ9tWx zroKqc*`Zq1 zf=O&^Az7!k8XFlLZ)Am;E$+q>(?OQ4GqF4;3GX3MYmd@YFFcqNDWBZBSpC6U; zizNrOGoP~qFG@u_@V+eKv1n?cLz8HpU5Ay06>L${C*E{ALyoK8&-ybZ%+>2yJ__-; z5K6s{HlJ3tS2A2ePXK;eMJA=#M?(k3EZy)TlIhZ+F*YxV{daCXsbYDi1rY|=w%7dAMJ>dviW3nBpxZGce$M!*!LKY1Zcg$BtpbWW{1#oemR&SY66KNKpdoVjIBbQOBU+3V%O-i&7tX{tIZ6yZbb^ zMB7mJBC1h@hA%Dv8@IFYM@-3b^vrRx+R5yM$5m z29jUEgYVFno)EVc{xP3W42pb^dHL9In}bfiJg@T?`pQog-O<(3*iRZTYIC1NjfsC{ zhb>hTtmVp~{AHq-Q}bJ~k)=WGhH7RM!ko*9S(dG6AecJo-Z;-P?)`kC{L1mt72Ym_ z^Rz}m)8IExd+WyN7dy8iKG0~he6hi%yeP+pRP<#bT@6mcOK0E6tE&6_%?5x_y-6t@ zcVIU@{W3l9@aK}EIq99c@Iy~Ox$37!?XyX)d*DLY;i829Gyv9}Pec&4Vwaxqcfxdn zn&QaL$hBpj|Ng{hx=DbMOk6r>zk26%={?njckN6N+5;37&`&QKr~>(1Amr|?BML;z zq68aRZQ01;nD<|MN})XgcEOJhsmt$x_lJ5#`1d<5z&2NdP{yC)pz8hKCC5mlh~!CH z1E&M9ZoVsHpU)O4+Z@{Q;E!fV%RVyyhB!bmE^2H4w1cXZKFr+#Sa5Ol=-!{JravFJ z2Pa4GXwy4PB4A{@lJasm6eYh94xDiZktxR$)h+11D1wbxTNn zodgcj>ertCWQLXyh`vvz$or&nrmQ~&5kQHK3<`2JAT6j+L`)o)IQ%|8zf_^uGp<5z zc;#|+7QvSFR@eO@oy~s~OUzqkE=mcR)55{dcw$rX!z>*qnL400s8Zn|=97-)w@O1$ z?Ic8S1~bb+_}IyL_t06DBRtpM=AW^h_^YLqMv-G>K!>X`H*1djn+Kk2Wj3^AJa>_Q z>Qki(%&?ncBh+_@Mp>!^QzW4NZ!-@FS579zzj4vmlQ2Lv3*TL?+KRbwnE56P<5JGi z5yh?odb*3U-CtS+_n&G{hUYSM`g0ghc-PwdL~|^+M(@iilRrl3s&j-(ZFzKmW3^Q{ z02{Y7@~Hbysog`3r=4=sc^nplj7GJGDO-8SZ$&yVk#mrVJbZ1J->2_OYF3V~@7`KJ zOAP1*R=#}+YsDz}w_&X&_QTDdVduQGy1LW7JBU=UUb-JIxOSxWUKn_$K4quPL$({j zcMcb1r9Vl5O1i-&9!r*@PsF#YXNPycjyo=FyUh*O=U#F1;~VqiLwQ+1GrnsUjOp5c z?y3nttp_fAF7x;*gL)_hhMYC?DCNA4fNvYbwjFSd3a0*Ewp4iG3@Z2`j#XjpYvdvc;x#3k*+67-KELmAhU-X2TQ(w(N&BS-g`gZmdaFQ})qLSaEJR4RXfS=HRP0Ai=;kxr$D*d$K-gJY zFmF%$c{!st8Uo&kVO}HoFD3bvW6em>^~nvqX+u7(pu6h&ofEEp|K4QV>cb!SNXE#7 z*@|%Fm5o2IzAWJR2mw3Q+WdQg*U(ZG@{9bWZKW@|T4{XH9?nYFDQ6HA=kS4mlV&T1 zpTpT>zDdd0J4}tQbK2C_m^V~8yK~~rHc^}x)wf!55N`?` zZ|Otp12%l(+q+so?H1nf2WW=azi0f-ESm4YnOuGn+$@&-?(13D?(22eZHOzpC-kKb z8#PFSu^Li7sE>OD->?#=TtA-u-HW4mS)gCH)6%cwm9<^elq6BGD zXHcP^1N_S z4bD0fMSQB{@wJVI7asG$ar4%5?p`(oDRvsPVqRul>DvAZPAT;0t;W81J||#RQ`NHb zUNhWZz4(4uwLIy{pe^^*!v;=YVM`3X&VY5d7@)pSG(<{)up8?FM zIAP6OE(Etb%YyLozRoXjmuPpzwtmRJAz16iQl+)+U+fJ2jPpF6zdN$d57&^CNmyb% z{#{;5bcBaC|1(4iFkva`Bf3!z2rjl7^NaJb=79;|PH5B|qfNRzuYB1<)Ox%J@Lg&| z5K%1l9k(<6NYo^GY&TSIDg{8_-a>Wy& zpT0=q&6j|g4Ce2a7;Ay(Lb;5`iN`(4ruiW+I*u#-H z5AjUS+)=-qCwwzraT0yW#tP_zv0Afx>ihxw_#ya0(!N0U$Px_-qxSFj(e!Db`ttk$&0tj=xOi&gQDBnQub;ptTynD`I0XQsYL{4P~X^-eh@1Z#S$%pId{3D@K?=7kT)Jtkkme zT&eZJ`HpEHE^m|84X-4jvXE5wFM@VPv<(41Ux4czc8u4rlSI{uDefwO;2NZyCeI^Y zijqs~&|XS3%)e$1j>iw%bJTSVCl4zyJ2b;8yR&Cv9HpHEUrP0mTfZ3_00Hba-px&N zh^487{sN>yD>85jd*v}U%1>othKdV?!dF3FZ=6k$x5SA**DETb;N8p(rEJJ$*bVWf zi6M{BSy?7t|6<1*L~ynIePLUN{kTn1!xnmbh_jIufzgm}OZ)pfXYk=A(0}4n?L)^g zY>OW1v zw>UyEcdzzeu9U+te{0MKyz}SX?^|g%qjVU@zs{@L{y_F~bFH5-#yl%<8%p3oT5LS* z@v8DXL>oG8csiB4IbFBIU;E4163exazOH))>e~q&_C5Vx3A!PVxXqDRg^ALN5tWYf z;BXoPM?So`XUbQy1Zq+EQbLecx@L@m62f=1wx0{<(mPa%6I$Xvetxp}fK^oj(>1|> zW(%}unjqa4)Vb>?`(QR&7taziVp_(Z85pk|*`5oj8*P9XQ)T1&pXYJ2L`DKkeD1+Y zRWClO&2i5Tp(Bt%`dY*VoK9w244?H8*NM_L>&+~{h1v}$A{^h8Kh~GJ>e6+q^ynZ- zZN=basqc>KPlmVownV4+;`0UUnVeLXf7e4vOZc2&nL#vZ-Xc}XwB#DSe~ZAdTEeM1 zpH-JUo5KBlAg9E^F5mK1Bjm#2t2ET2KknY!@QZn-zAoS=%hB&6d7qjrhTu#qNbJ|z z-_*yRZqvf1DlPSR%AQK8s-bPpmP(G2nX2#ibLf)O{)w7gGbLcIf1u@Pel?iY6D)QW z!gwz<0CBM{2UY?+eBteYs`x@as4k)gMN@7@tRi z=Gex3^b}YFK`XZ_)(#{?Fo7qlX%>739W58G={})}=STK=wj(kX<9Wj$+u5wLGcXtf zSj5_WWmg)2ZJxhdM?OjS2kitNm@Re#5Mh>v+ZZe2HHobMe$}>^Fwr%u!n;rxa#fIV zri=eXrL6x0b)CnO60gWB{vvJ?I)7;^tZ~?fB;;4y8P=(NdtRqQ78p?8NxBGquEHXO z5fACsz)+V^a%te&WfOLv&{3^m$90&)NgnQ<3F%7KhamZNB<@h-rSyX6A5S#7nt!6_ zhX_+s48Rt@`Bdw1$a&q=C8^Hlppd)yKWOq%S)0bbk1XrxfeU# zDLI^&G$APFP=vI7!cWp~iG#Y1f{6NVfBnTPOP^RUQv||~9fr7?DH%Z$p1U>YdB!1Y z8qy-by9&8uQe&y9xSsudLy|AEJ+#Ft#)s3xSGfhjo@MWJ7H!c;M7tl>Eu!qMGLw?0 zMPRo1>3(N_dlvrd;3_|{zS6NanhF%rCSViEo&u=7>UYibgC zOFz{)=sZvLoV#^P4*7`ljGgT;ras&Ea;{b0dWAos!!-=n-~kv~{t=+^08Bo6?a733 zO75`L7XSDSU%>p3Q}$p3x8ge=>W5zGQA2fBghf6M|K`hMd-e#|ovb0g1W|OM4jkp?^c>v$NQS@F1wJ%0(Ai-qkZb#k(_^!BAVnV=Xl1iW zB173OXhaPG6XHCQzo0EANX(@ko_LKdJ#UdpM^_<2+dWk*ZD}mZ76kdEL!H7$T(*R-gjFq8O-a_MFPj*Z2Z)Gk)oh6`-C1=+j;IW&Mac`+o-Jr5 z>LSdJqimfCQ$8DJYH7Papzy-?TwTFMnzvldq`l&_#_Cbtq<0Vnontq-Bkj=U8mCm1 zMtAj(mFdp^E`DpF4@U+My_~ppi`*oA-pWpX9X^S@`Rf}{i{ek=z#jd8y4|HJgLgYS zcoz}8pIBnSlPdY4eKPg#if`Z|$8xOq6$J6NU$RZbh?7s}$*(tka{UBy?EQ3}RBDN7 z4&s8JjMzH&y=F1ev^1V0s|v~j zMBN(1MY<<79CB+F*>e|B{#y1}_;4XVfl?zM!MbbG4W|D3xtZ3ao3nITdEcvZBoR6l zh0@{fU+eNST}&vE^o>7R%_qLpyHe2YAex64_*j6z>Zrp@bGJrL=%mQ|LV=~{M?^Z> z$+7YZy=-^o99Moowa%Q(q!=3oG+O!5d9-uTI~VNH4C=++3ot@U^uH7*9}OYc@cS$5 z+gCKd-2_dKVw=ssg3@;P00wa;i5H3|tm zeBPenja6T|Fh_yy?EEnIeL-74q(XjlL_3a$G6EWIsk3k|v( z6&f*ISSoA>jp`guR*Y+44uxc{z7WEkP2LfV zg)7QAS?vf+x44#8e(Q!o9m-xv26B&o8hyKp{s}}$gfiB{iEM5Fx^58sEVglZ(+4&fR6i>u zlkBQr-t(s@&yD_<6t(RBUq~!6;>l$kC5p$!ju{y%lowjKzcDW`M(|I#*Ct<{Jc;E< z+{bhYYHV^YKsB4-3n`=I8YoyW386>g9vC zD#XL>(#H^AmS1;7gP*$t8y^QgY_UZ*z86V+(NsnpYi;=D+u|OLBaWAC@V4Xd{hWR( z&2X--8`7VK&xD;8Ul#54sjVP!V!1MxJ}# zjKu9<6RUWE^QG#pgX4{yNl{Nf(!7FvPM$fjSK>a4#h~^D`S!z1%#uLTkDUhF4h)VI zfMEWAF>{jta%EZh#Gce)z1~PCah1Q{P(mnKlcx=Pi&02lri! z<6MkMTZ8QV3$oR3P$k7Q@qZcXA)Q%dkz@kC;KX0qoH^pGPU!W>BkoPEk~VvaHt&sFHfiAUa2rFM)U3-+HdK41*^k9E$7f z@HR2&E-&6m*VB0)nrkjq17QV=v6!}{_I&HTJg|P*C?J|5xRhhQIQUk1EPB3iEx6Z2 zV)qB{jjU(RE-Z9!OwY&D1^H@Ei3YMBh5bz9bC+LV)ka@KP1u6QqPF)Lo{D0`O&t%SRBE z#k6tdKHG09W!{uAm4w-f*cb`2)&>Yt;P_ zx20{qIVFI+oihrErhPXk)QX7bUa}8?KHgWb7Qsh7$OAveT2%x2SS3u(3b=D-57>lo zIp%aOlf=i0#>>-_JwaI2C$a40QJG!-b3U$q%4CvkIr9yA(;N7ZUCJY#!tG}{rFnRN zF1Fk!EW;?$V+lR0@6XR`I`|#M-9386l$A#`J0TtUo!(^}ei;s^i_!5yd>GNHv}3#au|= z;%a-L@xLYS4oMNsia1Z$=FX?N&D7wOrc0rHnU4_~-mLh@Rl~b8;>5dig`fYF(6H|Z z#p9Wm`|));=~K}8Wr?BO!;ey^#NrU%{qihma4yPaJxmzvaBLv zs}Pjj*nH4#q>n=@YTsEZBw!Gms3}RA_~2`0Qz81sY2&GDbP{^TA+Jt*twP;1@0mt) z77~fGzV;npgCt^I_ij>t4Dh$Om`+*%y<;f#F@n|nNZ<=^?sm&7(Cx)URwJ&Tq!{Dx ztN4)q-bz*IMy8^36E`Gi&3Zv$V7eRk8#yp3f1uCRmQueYxi;k2NNcQ7aw%ie0$BMv0CS{ahebN?6g8gy zbg&?QSkPi&zy%=!=;Q2>!^?p^gSQjr^lRmI*Y9=wl2P5e*8h_C4d4Ey5AFMy=m@V& zA1>K02~rcOd+SEW(lQW-H0oA^ON%&UV43b1uehIu;QS>~~e$cW@^w^+g<%!L@ z1jF>f)Ruc*pg0b>j4~gEhlnLX3$U{jYrUl0g<-V`m){g3Rj2!q`Gz%$59nX$eXuKvsr8FVqGtN79+zqW=UCd?;QSP8{e&K|1#hQ zoqvA&g~Sn6#n5_t67l;p->0GH)tA9~c0-?va^g6wB5%TL4han$mPqbWB1Cqa3FB_F z>eS^0gO4XuUUH+Ype4=p9-z5YSs?{S$fw9Ex=?N9`6u9~1d)g8N>h1mU?u|EGRz&{aSU-GM zz`&KmN3^u+YJgtB%P# zE_bLCrAX@<^Q+x{B771_f4pexK=1aG4SwE5&r`{N2P%?cC4&;b2XU^A3LK}AS){$J`nqd^H;?si3Zh{pf4?`2I zn$pJk4o^teMfQtnjhR+*4WUp0)a&Z*+^B>8fY9_*+`BQmyDkdU8Ti`Q?W%;Jd0W0J zImwZp_PpG=87RGP5h(4Hj*AWO)Spx)7mZW?!vd~~I0jqxy6X$Ygv^3ArTC8w!jOhP zXn|1*4-KDN!G%cnAHV%bUFQ))zRv4tU;6?D^WJT1xkN7BLn?w zXnSr^m#T}e`Mu#y&(Gn}>Mbr+=}ZB(sM2p#N*D@A{c~R{IYDnk^FO6JGmE+$MmQh4 z@8~N2uJ10r`dEmJlXyc}(2mIH&3&x=)?!c&JWCdF-#(`XtmPD(p!uLmVS^|8s3(P8 zwo4D6G3VX40N{j^q`2};Gng3*z6yK(5658P#6UqnI35biqWy#wbT1mWeRg6JuXzshD-zfV1C~-uqK{LR6h=HAK{!F-9%Xy*Qc}g27zHyyP!6 zkq(?o=pC~n&4mZ+N7MG} z1cLQCxC0DZ-3olF8;_-yLuNets*-QgmbDuPvOA4@)Cd_mI?PvZ|D@l$c}(Z$|9@|xVg3i>YOtvv%OZ?rizbbyF*>Njs;&Bm2aNA zKX}|CxG%b&@A7Bp%Y^!Tmhl(*o~9@9_>oDj2up2Dn)i%k=lguZ&SM=wH2;AQcW01J z(p9`cb}i5gn>^+U4Z5qo==M9>B7^`rx83S(^mJ(BA!}ZqCBYGU%2c7ExF7jYkj;_Udc9FX z_^-uqhKrNHk9E{4aVoh(=52A@V3otKe-#BT$&h3>IsP(%jv|{&*)ok?dJE6RRwpHt zb_FP+8HlaBd)*ij+A=~G8n-hlo&AkUvUw4^tBD=};=%pV*mFf_{@4fiAFTRLj{?a$ zb4>)wK>z(jCH4g;xzqym8q zqP8yPq(I2VM{$8+2RW6YX>&PVdc!lUn6D2YnHFD9AW|ZbKnKO{v8Ib9ulX53-DD}q zAwoLHAYKt2o9}G0UPpsSf0lavY7{Bj&=KDYHbFOc6L-Gio$auC(Z@ZpB9E4!lQ-AV zIw%cc3!rCfC)-|2Ser_RptjH$)OjQ6Afl};U9;^y-`m?}(3a5D z%>rVg1py4THtw)mPW8h0d;8eXC^o#g(}RG=lVrw zzkrjfii?yR-Wdp1jR9ylAoI20Q7@PJ;iVx=(QT^p_j|lJ2)hG1UQhvAsr)=MAiEa-*j4wA)=|TZBFEv2MqG zrhNveF2Xp*0uXJt9`^JVB)h^p;8tLwBK`9zcgE}9y%ecVB~C_xJbrpK$xrJ`%RXfO znq)Lbkit#v&|LXlcr(@KQivjoM6(<|#S8{GX0OsGY~uHidHrappp&}Nz-t@0J1_5M ztkI4jP8a{fkK6?nAi5Cj1$X{CmK|bmdpGE&@Bp*E{c(j7Wc2_8t*@o{KgFZ*pW?y) z_r^KW;LNj?vW;}O@X_=|i(r92nOqi|2`RKRExK-X2KO35cf1Y{CS8;*JP~Fj7&dO} z1~JU0VB?GsVBhrC5v(fpLrPW_x)1TTDTtBh`Qn&lSs6K)Dr}}>$9N(h7qU)cI*`We z5Wc;`g17V$R2`T7U{%W%S zwh6nL%@0T_ecY#Ns0O##a^}f1iHn2? zvyzFJy|8F+nX&&l-Ky%~Jn4lKrWJ*y*B+-NW*!Bnh13YD@^$bLEDR!JwPb6d6~C>Q zq;`7`wnSVweUtDG9rNaGiW$`6i&5*kqVA2h?qxnu7_km-Cmz^P#{XmQp(f2H#jQrPA0r=)BlnG z>w>Ulq{6aC8q%zjj6r#b?mYAfe)0JEeWb#uMD&f*RON7}0o<-u)YWj}JBvSlZ5M&Y zs2pg89K>J6_CynLjA?C6{?lyfjOJHvaMypY&e+8N5PV)d?ii;u^G5_d%t%{OWvqg+ zQN8H9kOXRyoGHGY6LD47*|aFeYB>Vlf(i5(HkiTHyrook6hhL{r^ROa246vyE;vn& zNpVni$&cq%5$}Mh`JLcAqsf(4SxcX<+|8mdb4U`DaJB{nu8Dcf81^xvU#nR+(O84y zTD-|^JtRC_o5a2lxdiNq#?2iYyCBnoe06M$mx}bufKF|6cX;+^o-P8`EuM2YS{10> zkDVK&AIAnc$d;2+?U_tr6-5Y(v=(m>A9D`0vI;N~yXRK&Bbr_+KAx2_?!or@h5eS4BR{)H!l!MNvdBlbz&6ZE)h0qSgKe zHg1e$Q{!lZ$z`wv@6H>8OqU%zk-HAfl`ryS4l)l4SI&1To2tXuuNx7zI6x%{+}0CP zGL*3wF!TS%Qn8FDIui{97TNUd5)xLZj)bPv3hL;+nb*gB*ZdXTwmZWvI+E9~Xu#Vi8nb4Sx*VRd_SEFFu3z!>xOK*zcCqSFo-NmMY zEsk$?Ij`@gEO|Km!JE^GSNXdZ;76zr=O?>7d1h+@0g07Ndi{B{3Gb_Ye8vfyLwOi` zON{^hJidFomqyFRuaWvAm@dC-NDL7CvA;=tfAN~idWEDxtKoU85-R+D_iGN1;fsM) zvF7;;%^T^0*@rgQO6p{^UJ6L5xfNjc4&~V*<~^WiZ2eGS0=r0|be9h3Zo1r=1P^j% zpV&~~4ce3*gzjD)%&B7;(mj1HT>-42SyOAUCE@|cPoZ)gm-Wnfn0FM+WWKu(qzTqW z0Yo0DZK@8U>%MH@>Fy}M^87xy=)Pxwm2f!g1O9`IJNh^HNV}Jv1ZGbU6Akp%zS;Z? zokYc1miqz8&?(PaVy^32?p#Yt<>}W)%kYf&2ie<|4}mg8fsF8Qthqj#xKi-!5jb;? zlt{}N7a*E~CgHOdNrl|3+aUE#yHuiwH;+`Ab4a7l`^(1~IkuGL1LR?;>Wx=`ufgZ% z`jWdV%AO5E`+-8}P+woSD}B}shkMt>33Bka9C9mW8gq-@Lv(V#0lFkqQ>VGNB?SkF zdcL8;i|}la)5)TgT2#l zhq*{i6Qq&G>PBd~-u|xWuSo|XV#WFAZZYq@`|$GILL9Ox!Jl5!u!@rEwS{`Z8F_5; zNF1?@c2(}t{q@?wP5jw~)>YVnAQZ%w(^*@Hn!QcRlyGwU-Rv;i)u*Imo6|`rc+TsS zQkt7HFDFStbE(K8InLN%AuBlq4xL9Wil9Q1Tw& zd+@`qk*blSR^U{*w4LSET(+`T(y<3Av)KKfKRY-_YwPa+F|eV<5c7QU^W^1|H9KFo zpq~G{C%7{tMQ5JjIr-yf(t=^IyQNbe430gRO6NXO@^Aq}1Pi9&|3i5d`}#KKz-KsI zT1i0x-p(RsbGIVTd=pS)#4=)Y24ber`-mj_CUP`C!_$h|!!J-L{pq%yQ^_vB=k+!u zN>)NWZC61GuP<_>3C5oM^h->@**t<^c7l5b?Px2~#%7eYl|~F^ze@u|eMHsSs*)h2 zS#uebF3InaXyG3>!I&Ju|Kl4>rVk*us2ZZvFJLC59W9fDv&DX&E?s&LNj%3`r@r`d zEy(92Wb?&W%PvsMSL?#BF+Xmm7_n=8H=?vaK2jJJGtMNN70y}j2BT+U>lbp!!G)~h zvV1Q7MkVwGYeGtYsuV;m!5;1DS^*Raa6NV43(l?UAm;1LtRBT%BP}S>^ec=T z@&oL!kC%|~Bc$MdNH>48=Qg;%LhE6g`%g#Qg}0CB-ssNc0OZzNB^t-tQ11Fu%9A(KA#fs~>l904Laxu0}4fC7!59Hm#UocsTQJD?5)bcXqczhLA zK$0LGU8cxvKL1@3;*P7W3tqYVuay4-g#uqH()<|aNoftZNYv#{W_KDF5ri2jfAL-Q}2%Wd-D{9<62UNkz3D#g$->YdGC z;Ac-jW?A4y0J+sHbx7lwkU}vS`eK#EJ7|vA2^9KL8yl=p3V(M5|Hr!6AYG~VtMhBN zXJu}s4@nect95GZ((7PpVc+VvSAmp>8xOt$Ef{v%wvFR#w`9ZGFnSwxpc@!Kv4fUM%_{=nNf_KGK>|3JW~+@hG_ zAr#y&tRz8qIBye@c!cpZL?7+?Ov6E={S{|2*e_2t=%%NtOGZM_Jg5S-ua68AM4-ED zl#&ebM`_Cu*75z&cjTxr+l4=Krg8T~C=m;kb<)B=q(EA9$2!xZO>-BHi!eOu z7KcIKyG}8uQIt>-PE1fz+;KZspl`&`EWr+1$r*}Y#|VN(<@NBCw1QM_hL60faA$8T zVp6tIHae2X^kp+`u+uEYyQ~705DfcYT|AAqc0B~tdk(Cl=EV326l6*9!)7TB^I4Ns z#+mnq7Q24)WT9c+@QYn2Fm}4VpHRAH?HjfFC1^M15&m~U(10O$W11tth#f< zsC}@+Df^@lC!O-k?~ZQ7FeCWG7>Cdw`qyiZ=&wqa1@PCp*MP0}cG79xOYsGtGp{hl= zsroc6xcSTSL`B>S`Dm!6@rmTmzK;STZcOjBHtT^XBv%_;3@be;9&Zj0B`-t9DmwGs zJItUHn7h0K_xX+Q*zGd-iBdw5uy?|*g-~}{+^F+v1zdIppYSz@Oker!iW8d<`uRQ_ z{sI2}li1JtPEbDUk8!kqgP_o_8nEEey?=`3gP%Vww&8oVP>@+jMcF8k)c}*ZLQmij zkB#{h@hjJ7$ikxUGLvY;;4u$RWRblm`Ff9BIE$%WNT><@H()(nfls`I1qK=Dq!xU# zCJ7JOgnwcqye~Cek*dTncT%Bo4gvu8DG(!Nq*}w$G%clkYK$uy!vlP7)T{3EWrB^8 z12baaCA@pGJH>cFsKyzndw_rK?)t9=_#pa>$AdMa69T}Z!-v$Fx+a{!xK`HdYv8Ij zgh~)Oc2f{$Oym4eYXem*FBsh{`n9_tSDO$2us`2XPUkrSLP8jJKMGm|A8~U5xuXhy ze*^m{BlN9~J7^9r-3{R(j44|M@7lg7ASD6L>P9H1p29qr6u zSa68yv*^F+i9Z&0d=F7w^0?sk7S_d_D`)vihDEO3;E`AJaKy~yArAT7gN;Xxoqq-Wi+7cxQFnAdAwp@Zom#oslNbVu?CIssVX_8ZOcy9J8U>Nw4 zW?8EkGy;ExqtBUa2&xxIa7ufg?bLedp)<#zGiP}uax6$;HV8|Vn$CI3k-IEH59T5d zO~2YnnfGrKDgMM^JjMfIxQ1!;N}W*66Qu~3CG^dXMCyE4b-b~bg3O3~@s70>F+zsg>IY7m z<>M3ky;X$s#r(~cnPc4NCDveTAg^IDpV1=S!H2c;)quhULcb{(?E9*YI z#(f;X&kf4T6@+*o3&dPx`m*Dwm$uIiiy6=Tq_5ZCke}#kAl=&rl7z>r3*7YuJ}-i= zzI@dGnbvRsz9@CPa=>3&!`RQVc1%(I`(>Rj=_}f-pMo#&wgGV%wj~rRf)Zqf4VIZ!AUIH+E@wq z%*ICo8j;cx8^g_Qp|+HBNtI29ID35=Me4W~qr`AR=HGW7K-(pZ27Gk+bJ6-~JV{cN zPh&Mw-owj4Gs-`6RN1!FkcUp1Qc7GcBX6-) z1DHK;t6TO;Oca>jcGlyzQFP95wf;V7v4+Auwi&lh1susTomB-cD zD66dVQow4?fJorPS~p8emic1%wA@7_xU%yNoM4cu#!?Y@n`ZIi0w1~<|IslllPSO- z!@fi0jKU{V)(^p^%R#n3A6^L>AG)>X}N#+Z^Ag5dZ~T%XbgFXQ+lFOEnHaaLaRQ?^Xn)8gW*%{Dy(Qt5v$mS`HoM(cPS5hDrYgmKGX!m4Ji?Z~hKM^?cenM0w)1@6n)a z`4-eAZ@ta4{sjW+J_;8LYO%lnbILXqDrm!@BHbKQK_&;E@s~niHN*)v(vVxN9DKz$ zYf*oV8SpIh6S?X)kG6HPJ4HNCE|k(W_xUAMP((}sT|3_}b73`^$#i)(#v&T1MX(6+ z&8zX-2Hk#^#UbAN7?-1uoJ0CazPt|VG}9S0-1Gz3JqH%Ez)++$vuk{J>cb8%WFLZ; zfsBDHB%~l#$W2opmq@Y?a}0~pm?NW^)?@$^phtC2nzTp=F~TsDR{Q*oS6XMm9 zsE;}E0wm#@v^i!G|2&yi4MgqT&x0ho-(r`;nCXZx#cM`UpK{oe#_~XOPS)(R0bAv@ z-MVYX^{BY{(0aC{f`zc$jU;<%8V&a19=Ub*?f9u^NF?bZVm+R6r&C)j{kev=Naf?I zNVAZK0G;s6`h4WE+KZuU{7@5~H5^^PidViM8f2A4)tQj8i6b z*6D!Auv~gn`fSc%oAA@o68gNx_Xt|lx3t0zs4ygo2ced5U=!3Q*F1Y?-J3G$Gd_yT zYsW+?7VBZmHI~PA7t@I^M3ChW%Aa)B5_L{+&!~ZI+2-JSHr7tpQ(RSg`&6R)K$Ka`ufv{m2OdEE(ulGD3*;4-2RbbN!Zt2HRQH1CFW*wMNj?NztF+$$tDpkP+el!E+`R_b= z0R&_QIw?9Q)?)phb|M##j{5!^bDZ`tN8(K$+Y8{oN*6H5Ks68k{Lh-5=+cs#1+0fS zptB_Phie)9MXzhwhj=de>kPTyi5PEx@xP3;^#3x_y3@yE9Cp~dK35C6)2;{-)-vS? zv#}QF{Rxa@@>=kdNfdj68iqEgLHU|A835q-XTTv~qPi z2^+`(4o;gJWoV_hFI)v;N^-D;zKS4Fqw_UhNK z(rGgriGGLu@nGeke}Kb}MkJTCgfbSZenNfEhP@J0VY>Q+yKzG0RdN6l9YfnFPU^*F z?c|aoe(}}rYhKOflR|{}%K=|p(Qd;63pa0HG~?Oml==|IuQ1iFc?usYUcNP0``*kW@x8SaX8Wk0;&l2o(MQS%l@F?UCR9$HDz-1N7KkF$PPED>Fm;KO4=Vy z%6;j2cbd}w%C3p=P$q%C=Y5q){wD9Z3U3){m7mGv+fp9UhgyE^tHI(KCttH_F2;2a z$r$4c&Uxm+k%0lpupk62rw7vQ$X&K@s5|lC=j(Y<($hJg&ircV$&K5+cdINttghG0 zoOH4`IzUYTE4J&*lDSwnu}7whMPC&hH~h57OOxZNeT&}3Kak&NgKiKc0@3V4PSl&H z?@Alrm@ZFgp6`N$-&E`EdSF5E6iT!UP*Y3sKeQI({|F%Xo|i>lJbz@v@p?nfhkij3 zVz*j)T39cC&reH<;Fw?AZf$r~m!2$~R^_7@D#~>}4t31#gfUN~!1&6j{Qy9#6e9VI zAd%0lg>Fk0=dGBsCL3O73ka5}tEyHo*1*?hz`hIu`^u0oGKfy{1xdz0IFc8d20v8N z+iiZ=7?KLdUgPaY-?wL6irf3ful^Z_EH^=NKM1a?S_|=Rt%u$<=9*;pAU}}P1ev#( z#_fCj<_q%X+RM=@U72K8tsjOO5o`T8zsJ-lI|~cBiHO;~oOtDpg?7h7t%dE2mg93` zU56CSF&9w#z?PgQGJw(R(nS`~i|@3A{GDcZnZs$%_W?ltQuM35VsO=dIcRxHYg&sa zBlxUqrjw-Z=SGI^@SCY6b8I^|C6HESD6K_pIM4AWuH2T`i8lAd;Ox?U4o3USQ3?Xl ze0tRo%;T)I=wV)lH1hXm!{T{ztp}f~T%i|jEf1_8<;@WhROj*?g&l3jsr-LZ&6hRx z1Tr3hMgq)R6Cg(o<(83D^ZHkMXl6UHI*6tBNSoKrT1=H_MAVaufEVJ6_v?*Y9^9D# z*-)Rt+J0SR!0Kj}T7JOWssRwXlpHgE(vcq-v}*vY33@z7aaCdh*`JQ*JbIw1=T9Zs> z=HC0-DzYy8$W{JU;Wy-RJGyM~$A9~#Q&@=6kf9+P#4w&S4Ho^_&|NPZIg7cyP1%zgVbrypMwU+w^A zoo;S_qV>SdJF_&#HILdr@r{eX}{r zyuTu7czj;C@(_kGWmv5pCkf8{WlWmmjR4XUuQ{mnNrLzZOrp=^=Gn;Zy?`q&&<|P|3`Fb&@JXFHQ%ko zM>xc2&qb<6`aCjEe-{R^SZspNFbw337*6G&uY#oiUJ%$6-Vp;p|0vdrepvLx0#j~Y zKxu(79Cu}p@%_hBhkmq=*ndB4<0gMm6Wg*%lT8vq(x@#2(uaLi>=LOG-zTB(sSCa6 zV&T^n0pFe|yN<&-bXAsiv;Dk!H9d#0s1$f*>27VozikFe-7`nUaCxq zcVBA>R2a`yinPC&2rhzjnPEO0AA*_qcVlrMZXRv?;w)1PCnObq()J<@7A>Tfy8J_W11_ z1reh;+?ZZ4slH@FxW#KuZVh{?f$illXXYYnk(tIOs$ts^CnvM3zXL|9#_rx)a7sVA z;qIz)BI569iG?UB>FR@C@7i?jhpGjVcOygR2_qJ+Ao=!B?mo>9K;I1kdy3F`7Nb?* zx&yr)%t_MZ#mB;#@E%Dc7X9_NdfZJH zpt(I0DukdGHk(iL*Rhd}D-W(%uXI!|jll-1p%~&$Q>N$|sXN0qU%^*yl`l-lq+9t2 zVh0pJhxfE`Tr#+s-Mp`)Nn$$Rx7!X0qg*rPb=PJ&TWFCNaX+Qnjr=9{LMeEuU13(v3TK{^BC z*&OKGGu)qn^mRE=9b)M*2fUono#wQaUH_z%f74xY4Lb~PZEam$Z+Sz-h{O;^L5mVC z==Nnn^Bx;JqDZo|q>eshf5w&GE3SBrTQFlRKVD<%b0xl!W4%$ufEB+e5e*Py8eB(b3|O8YExAy3sYNp>ttmqS+U5S^y-`0fy$|vA-H^+- zn#=Pt$Rb~N;H^CJyPglNnOs>evG9Jn1$_X^cg*6h15MLO7$WkZpiJu;hfJ$ZR7va< zY-;iU0`mN`@>`=1*glqPW;c}J4_D_MQYG-!d&@l>lkeLPWfrpG+K-=`wCBk5`5gvJ zV!K*j9`N*o#GXLK*7r!-qpK6;?Ui`R+|{5X?kYdG5i7-xmXds^E|qL`7k?d*XPHv6 zJQhJoa4x-Y>|Zpw1!EC?m|9YWu-`ueylfqC1bv-TS7#p!%SHm(}f??B$Y2{&=YG z^Wx(6=j(sKV)g$y{1B(;nU4QNB``I>zoIES=@1+bR!A-DVjuRK4FioNOYt=JzwQtj zn#g>76+#fei#p~YEX=gQxsZg{Q8n6s{kqO`?Tx){Q|!AbP)=%0A%KL#HB&E`-$Z|a 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%0Ao9{0pM7yxp?kMd9S&ISA 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ÿIQ}IO&{Zu;Xr4YqF4Qe0rXt2D~$xw(&J@jx3 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�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�*sq4?U-_Neo*dXFRz$PE!zQX4jV4e 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

-
Hello {{name}}!
+
Hello {{name|abbreviate:25}}!
We`YW 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�@===BJa zpNv{T0J7uBBae>;<$Dm<0T{CCx2KEy$Q81Ho6%+MOr4xeR6v27mG>rowLQkM@A#_+ znlg7h8vlDSY>nzJ^mK7z6WD)u{bOWN)$r97_I*dcU5J0RK@$FP2RU(<^rX12beaHL zwDkA@p)|qAHoM&1Vx+yLZzl1H}zY-cA|A9=aC3F~w6nk>}2UubipaYXsAzvzGN zNie&C)_ud8Gyq0e)PiJowdk3|11IH206O=LNAKG8mKQSswp8Zc`o~7H5(qPftGO zoI^B?6l=07U}7_Y*c-6E3I#5h=tSq})QZm5(mha&n_TQ|k zR&xynEUW+TQIr?+=rsG}Yugqt>}Y0v;tXexb<|Pf($g=(=KV1Ic#i)eFd>%!qOBVM zqzi>#W;ZgcU5H!GOyj%$+-ueAzdm=3ztoMbbIOcv%bHr zu%}S+H!%F?<$sY$w}o zg8Zj6?%xv}J2C)j)=N{y=U%17m<9viS-bupkhruMAzHQT7ZpKN6e;7?#NLTMX{_jr zV{Q5@#`3QPb(%gQGE{5bQRuT+&iVopiC6`-h35Z!V(NR&I$t@= zGlfo}2b{ixxAK2&N!W?YL;M&suL+XNuc>ydX~||$lI#C=)NK~iFXe9ZB|0qr;l8f< zq;pBlo}abG3TPwI4@QWZ&+Xctf_HLkFRo@}Pc{>Xu4g!mYD|5-BXKbuG#Lz$N~!wQ zRYNzPhp6#{Bn$U4aP~6re&P|`O+U!KO}TSY@Q22pC5~XpbcaX7IHip$Ton+ZI$%4M>@vUJ@UJI0(6!&5DgVoqk$p13+hM}f#8ebl;ME07{X9ia{$dYwAVNlPfD#4>LE@kj8 z)FUhK?a}!i1*H)1XtNg%M(F`>0qNZO^OITZC(2mFKi{l^q|w_R4jjE}d!3~R zkFN2xAiQhlb9K2!rj3qX zk^r1Ey&6Ku&nQ`fq%Abq#Jnze2M|;r zN~H)6Cd1meQ7+!y$_jJpLr-$#stxbB`xYS|3@N+O`&^YdiK%I1jJV4EocJq{Z90ki zNaI#xq@e=7hufXOaN?M1wwFT$^8-?V8f<9`PYn}Q1y2uvefYD#7@pHADAmTS=B1{u z{(`WRBID0X2jFf!@|@K|ikJH?RbbXC$kshX40tX9RGUwu5dpmcFjVV)&pjNSxlT8} zv7j271D*q*k+rpVlx60maz2x&Phb}XlJJgUUigCi>L);M zfz}jM5EXOBAeP#p4>?NH>G#{*{O)@c$lhc=PhYc z#yNcer32KaRKq$l|IoO=$Q;mf0OpQ@qWGdJtp@$2=3p%>Yg*|*y~_hC8A2#7-up&W z&(uERYFJCt(Wf9zLihl10F+Wp1j)UVqOBMf{o5>g7^VHe?_(P+ads>x+1fENO zyXQtrl6+hoCHh&bM*5?ZxJ5WW#L>jc-G| z2N0>Oi&64dr~97&YMqWtu@1J*Cv;F%_ua?`K;m(Dxg=&e*=j1nCl3Y)b^!}|wW9;W z1&~+1G#8**GSFZecUKGnO{PK>zA%HU%0DE0dN}CG01{f&1Q{}TSkTxhCbcr~xCbSA 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�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 libraries + :always + (remove #(contains? remove-ids (:id %))) + templates-a-b-test? + (concat [{:id "wireframing-kit", :name "Wireframe library"} + {:id "prototype-examples", :name "Prototype template"} + {:id "plants-app", :name "UI mockup example"} + {:id "penpot-design-system", :name "Design system example"}]))] + (assoc state :builtin-templates libraries))))) (defn fetch-builtin-templates [] From fc1495fdd12ad6b330269ce29ffe4fdcde533ee5 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Tue, 9 Jul 2024 13:19:49 +0200 Subject: [PATCH 375/476] :bug: Fix unexpected error when user explictly reject oidc auth --- frontend/src/app/main/data/users.cljs | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/frontend/src/app/main/data/users.cljs b/frontend/src/app/main/data/users.cljs index 8ba0f7547c..375119931f 100644 --- a/frontend/src/app/main/data/users.cljs +++ b/frontend/src/app/main/data/users.cljs @@ -696,15 +696,20 @@ (ptk/reify ::show-redirect-error ptk/WatchEvent (watch [_ _ _] - (let [hint (case error - "registration-disabled" - (tr "errors.registration-disabled") - "profile-blocked" - (tr "errors.profile-blocked") - "auth-provider-not-allowed" - (tr "errors.auth-provider-not-allowed") - "email-domain-not-allowed" - (tr "errors.email-domain-not-allowed") - :else - (tr "errors.generic"))] + (when-let [hint (case error + "registration-disabled" + (tr "errors.registration-disabled") + "profile-blocked" + (tr "errors.profile-blocked") + "auth-provider-not-allowed" + (tr "errors.auth-provider-not-allowed") + "email-domain-not-allowed" + (tr "errors.email-domain-not-allowed") + + ;; We explicitly do not show any error here, it a explicit user operation. + "unable-to-auth" + nil + + (tr "errors.generic"))] + (rx/of (msg/warn hint)))))) From 0ae8cb49791a9e7370d0c420d87e715170ddd940 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Tue, 9 Jul 2024 13:57:48 +0200 Subject: [PATCH 376/476] :bug: Do not report explicit user reject as error on oidc auth process --- backend/src/app/auth/oidc.clj | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/backend/src/app/auth/oidc.clj b/backend/src/app/auth/oidc.clj index 69f7eb7d00..5b34ca10ac 100644 --- a/backend/src/app/auth/oidc.clj +++ b/backend/src/app/auth/oidc.clj @@ -420,12 +420,6 @@ (defn- get-info [{:keys [::provider ::setup/props] :as cfg} {:keys [params] :as request}] - (when-let [error (get params :error)] - (ex/raise :type :internal - :code :error-on-retrieving-code - :error-id error - :error-desc (get params :error_description))) - (let [state (get params :state) code (get params :code) state (tokens/verify props {:token state :iss :oauth}) @@ -609,9 +603,11 @@ (defn- callback-handler [cfg request] (try - (let [info (get-info cfg request) - profile (get-profile cfg info)] - (process-callback cfg request info profile)) + (if-let [error (dm/get-in request [:params :error])] + (redirect-with-error "unable-to-auth" error) + (let [info (get-info cfg request) + profile (get-profile cfg info)] + (process-callback cfg request info profile))) (catch Throwable cause (l/err :hint "error on oauth process" :cause cause) (redirect-with-error "unable-to-auth" (ex-message cause))))) From 2abbb0d3591cd533ad0604f5d480e79f6b2bfc4b Mon Sep 17 00:00:00 2001 From: Eva Marco Date: Fri, 5 Jul 2024 09:01:35 +0200 Subject: [PATCH 377/476] :sparkles: Add new heading component to the DS --- .../styles/common/dependencies/fonts.scss | 28 ++-- frontend/src/app/main/ui/ds.cljs | 12 +- .../app/main/ui/ds/foundations/heading.cljs | 47 ++++++ .../app/main/ui/ds/foundations/heading.mdx | 49 ++++++ .../app/main/ui/ds/foundations/heading.scss | 50 ++++++ .../ui/ds/foundations/heading.stories.jsx | 54 +++++++ .../src/app/main/ui/ds/foundations/icon.scss | 6 + .../src/app/main/ui/ds/foundations/text.cljs | 37 +++++ .../main/ui/ds/foundations/typography.cljs | 32 ++++ .../app/main/ui/ds/foundations/typography.mdx | 153 ++++++++++++++++++ .../ui/ds/foundations/typography.stories.jsx | 135 ++++++++++++++++ frontend/src/app/main/ui/ds/storybook.cljs | 7 + frontend/src/app/main/ui/ds/storybook.scss | 8 + frontend/src/app/main/ui/ds/typography.scss | 52 +++--- 14 files changed, 634 insertions(+), 36 deletions(-) create mode 100644 frontend/src/app/main/ui/ds/foundations/heading.cljs create mode 100644 frontend/src/app/main/ui/ds/foundations/heading.mdx create mode 100644 frontend/src/app/main/ui/ds/foundations/heading.scss create mode 100644 frontend/src/app/main/ui/ds/foundations/heading.stories.jsx create mode 100644 frontend/src/app/main/ui/ds/foundations/text.cljs create mode 100644 frontend/src/app/main/ui/ds/foundations/typography.cljs create mode 100644 frontend/src/app/main/ui/ds/foundations/typography.mdx create mode 100644 frontend/src/app/main/ui/ds/foundations/typography.stories.jsx diff --git a/frontend/resources/styles/common/dependencies/fonts.scss b/frontend/resources/styles/common/dependencies/fonts.scss index e4c64e7ec3..b3eb70ddf3 100644 --- a/frontend/resources/styles/common/dependencies/fonts.scss +++ b/frontend/resources/styles/common/dependencies/fonts.scss @@ -14,7 +14,9 @@ url($filepath + ".ttf") format("truetype"); font-weight: unquote($weight); font-style: unquote($style); - unicode-range: $unicode-range; + @if $unicode-range { + unicode-range: $unicode-range; + } } } @@ -35,18 +37,18 @@ $_latin-unicode-list: "U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+ @include font-face-variable("vazirmatn", "Vazirmatn-VariableFont", $_arabic-unicode-list); // Source Sans Pro -@include font-face("sourcesanspro", "sourcesanspro-extralight", $_latin-unicode-list, "200"); -@include font-face("sourcesanspro", "sourcesanspro-extralightitalic", $_latin-unicode-list, "200", italic); -@include font-face("sourcesanspro", "sourcesanspro-light", $_latin-unicode-list, "300"); -@include font-face("sourcesanspro", "sourcesanspro-lightitalic", $_latin-unicode-list, "300", italic); -@include font-face("sourcesanspro", "sourcesanspro-regular", $_latin-unicode-list, normal); -@include font-face("sourcesanspro", "sourcesanspro-italic", $_latin-unicode-list, normal, italic); -@include font-face("sourcesanspro", "sourcesanspro-semibold", $_latin-unicode-list, "600"); -@include font-face("sourcesanspro", "sourcesanspro-semibolditalic", $_latin-unicode-list, "600", italic); -@include font-face("sourcesanspro", "sourcesanspro-bold", $_latin-unicode-list, bold); -@include font-face("sourcesanspro", "sourcesanspro-bolditalic", $_latin-unicode-list, bold, italic); -@include font-face("sourcesanspro", "sourcesanspro-black", $_latin-unicode-list, "900"); -@include font-face("sourcesanspro", "sourcesanspro-blackitalic", $_latin-unicode-list, "900", italic); +@include font-face("sourcesanspro", "sourcesanspro-extralight", "200"); +@include font-face("sourcesanspro", "sourcesanspro-extralightitalic", "200", italic); +@include font-face("sourcesanspro", "sourcesanspro-light", "300"); +@include font-face("sourcesanspro", "sourcesanspro-lightitalic", "300", italic); +@include font-face("sourcesanspro", "sourcesanspro-regular", normal); +@include font-face("sourcesanspro", "sourcesanspro-italic", normal, italic); +@include font-face("sourcesanspro", "sourcesanspro-semibold", "600"); +@include font-face("sourcesanspro", "sourcesanspro-semibolditalic", "600", italic); +@include font-face("sourcesanspro", "sourcesanspro-bold", bold); +@include font-face("sourcesanspro", "sourcesanspro-bolditalic", bold, italic); +@include font-face("sourcesanspro", "sourcesanspro-black", "900"); +@include font-face("sourcesanspro", "sourcesanspro-blackitalic", "900", italic); // Roboto mono @include font-face("robotomono", "RobotoMono-Regular", $_latin-unicode-list, normal); diff --git a/frontend/src/app/main/ui/ds.cljs b/frontend/src/app/main/ui/ds.cljs index 805f504ffc..14fde3f515 100644 --- a/frontend/src/app/main/ui/ds.cljs +++ b/frontend/src/app/main/ui/ds.cljs @@ -6,17 +6,25 @@ (ns app.main.ui.ds (:require + [app.main.ui.ds.foundations.heading :refer [heading*]] [app.main.ui.ds.foundations.icon :refer [icon* icon-list]] [app.main.ui.ds.foundations.raw-svg :refer [raw-svg* raw-svg-list]] + [app.main.ui.ds.foundations.text :refer [text*]] + [app.main.ui.ds.foundations.typography :refer [typography-list]] [app.main.ui.ds.storybook :as sb])) (def default "A export used for storybook" - #js {:Icon icon* + #js {:Heading heading* + :Icon icon* :RawSvg raw-svg* + :Text text* ;; meta / misc - :meta #js {:icons icon-list :svgs raw-svg-list} + :meta #js {:icons icon-list + :svgs raw-svg-list + :typography (clj->js typography-list)} :storybook #js {:StoryGrid sb/story-grid* :StoryGridCell sb/story-grid-cell* + :StoryGridRow sb/story-grid-row* :StoryHeader sb/story-header* :StoryWrapper sb/story-wrapper*}}) diff --git a/frontend/src/app/main/ui/ds/foundations/heading.cljs b/frontend/src/app/main/ui/ds/foundations/heading.cljs new file mode 100644 index 0000000000..4d0545dbc7 --- /dev/null +++ b/frontend/src/app/main/ui/ds/foundations/heading.cljs @@ -0,0 +1,47 @@ +;; This Source Code Form is subject to the terms of the Mozilla Public +;; License, v. 2.0. If a copy of the MPL was not distributed with this +;; file, You can obtain one at http://mozilla.org/MPL/2.0/. +;; +;; Copyright (c) KALEIDOS INC + +(ns app.main.ui.ds.foundations.heading + (:require-macros + [app.common.data.macros :as dm] + [app.main.style :as stl]) + (:require + [app.main.ui.ds.foundations.typography :refer [typography-list]] + [rumext.v2 :as mf])) + +(defn- valid-level? [value] + (let [number-set #{"1" "2" "3" "4" "5" "6"}] + (contains? number-set (dm/str value)))) + +(defn- valid-typography? [value] + (contains? typography-list value)) + +(mf/defc heading* + {::mf/props :obj} + [{:keys [level typography class children] :rest props}] + (assert (or (valid-level? level) + (nil? level)) + (dm/str "Invalid level: " level ". Valid numbers are 1 to 6.")) + + (assert (valid-typography? (dm/str typography)) + (dm/str typography " is an unknown typography")) + + (let [level (or level "1") + tag (dm/str "h" level) + class (dm/str (or class "") " " (stl/css-case :display-typography (= typography "display") + :title-large-typography (= typography "title-large") + :title-medium-typography (= typography "title-medium") + :title-small-typography (= typography "title-small") + :headline-large-typography (= typography "headline-large") + :headline-medium-typography (= typography "headline-medium") + :headline-small-typography (= typography "headline-small") + :body-large-typography (= typography "body-large") + :body-medium-typography (= typography "body-medium") + :body-small-typography (= typography "body-small") + :code-font-typography (= typography "code-font"))) + props (mf/spread-props props {:class class})] + [:> tag props + children])) diff --git a/frontend/src/app/main/ui/ds/foundations/heading.mdx b/frontend/src/app/main/ui/ds/foundations/heading.mdx new file mode 100644 index 0000000000..85380a7600 --- /dev/null +++ b/frontend/src/app/main/ui/ds/foundations/heading.mdx @@ -0,0 +1,49 @@ +import { Canvas, Meta } from "@storybook/blocks"; +import * as HeadingStories from "./heading.stories"; + + + +# Headings + +This component will add a heading tag element to our code. + +## Technical notes + +This components accepts to props: + +- `level` (default value: `1`) : A number from `1` to `6`, to set the heading level (i.e. `

`, `

`, etc.). +- `typography` (mandatory): Any of the [supported typography IDs](?path=/docs/foundations-typography--docs). + +You can check passed props to renderized components on hover `level / typography`; + + +### Using typography IDs + +There are typography ID definitions you can use in your code rather than typing the +typography ID by hand. + +**Using these IDs is recommended**. + +Assuming the namespace of the typography is required as `t`: + +```clj +(ns app.main.ui.foo + (:require + [app.main.ui.ds.foundations.heading :refer [heading*]] + [app.main.ui.ds.foundations.typography :as t])) +``` + +You can now use the typography IDs defined in the namespace: + +```clj +[:> heading* {:typography t/title-large} "Welcome to Penpot"] +``` + +## Accesibility + +There should only be one level 1 heading `

` per page. + +Headings are used to navigate the page and must follow the `

` → `

` → `

` → `

` → `

` → `
` hierarchy. +For example, do not skip levels in the `

` → `

` hierarchy if there is no `

` in between. + +We should not choose the heading level by its visual aspect. diff --git a/frontend/src/app/main/ui/ds/foundations/heading.scss b/frontend/src/app/main/ui/ds/foundations/heading.scss new file mode 100644 index 0000000000..1cd69b7bcb --- /dev/null +++ b/frontend/src/app/main/ui/ds/foundations/heading.scss @@ -0,0 +1,50 @@ +// This Source Code Form is subject to the terms of the Mozilla Public +// License, v. 2.0. If a copy of the MPL was not distributed with this +// file, You can obtain one at http://mozilla.org/MPL/2.0/. +// +// Copyright (c) KALEIDOS INC +@use "../typography.scss" as t; + +.display-typography { + @include t.use-typography("display"); +} + +.title-large-typography { + @include t.use-typography("title-large"); +} + +.title-medium-typography { + @include t.use-typography("title-medium"); +} + +.title-small-typography { + @include t.use-typography("title-small"); +} + +.headline-large-typography { + @include t.use-typography("headline-large"); +} + +.headline-medium-typography { + @include t.use-typography("headline-medium"); +} + +.headline-small-typography { + @include t.use-typography("headline-small"); +} + +.body-large-typography { + @include t.use-typography("body-large"); +} + +.body-medium-typography { + @include t.use-typography("body-medium"); +} + +.body-small-typography { + @include t.use-typography("body-small"); +} + +.code-font-typography { + @include t.use-typography("code-font"); +} diff --git a/frontend/src/app/main/ui/ds/foundations/heading.stories.jsx b/frontend/src/app/main/ui/ds/foundations/heading.stories.jsx new file mode 100644 index 0000000000..ac017b79f6 --- /dev/null +++ b/frontend/src/app/main/ui/ds/foundations/heading.stories.jsx @@ -0,0 +1,54 @@ +import * as React from "react"; +import Components from "@target/components"; + +const { Heading } = Components; +const { StoryWrapper, StoryGridRow } = Components.storybook; + +export default { + title: "Foundations/Heading", + component: Components.Heading, +}; + +export const Levels = { + render: () => ( + + + + h1 / display + + + + + h2 / display + + + + + h3 / display + + + + ), +}; + +export const HeadingTypography = { + render: () => ( + + + + h1 / title-large + + + + + h1 / title-medium + + + + + h1 / code-font + + + + ), +}; diff --git a/frontend/src/app/main/ui/ds/foundations/icon.scss b/frontend/src/app/main/ui/ds/foundations/icon.scss index f1113c4102..7430a0c31c 100644 --- a/frontend/src/app/main/ui/ds/foundations/icon.scss +++ b/frontend/src/app/main/ui/ds/foundations/icon.scss @@ -1,3 +1,9 @@ +// This Source Code Form is subject to the terms of the Mozilla Public +// License, v. 2.0. If a copy of the MPL was not distributed with this +// file, You can obtain one at http://mozilla.org/MPL/2.0/. +// +// Copyright (c) KALEIDOS INC + .icon { fill: none; stroke: currentColor; diff --git a/frontend/src/app/main/ui/ds/foundations/text.cljs b/frontend/src/app/main/ui/ds/foundations/text.cljs new file mode 100644 index 0000000000..3b74ba8530 --- /dev/null +++ b/frontend/src/app/main/ui/ds/foundations/text.cljs @@ -0,0 +1,37 @@ +;; This Source Code Form is subject to the terms of the Mozilla Public +;; License, v. 2.0. If a copy of the MPL was not distributed with this +;; file, You can obtain one at http://mozilla.org/MPL/2.0/. +;; +;; Copyright (c) KALEIDOS INC + +(ns app.main.ui.ds.foundations.text + (:require-macros + [app.common.data.macros :as dm] + [app.main.style :as stl]) + (:require + [app.main.ui.ds.foundations.typography :refer [typography-list]] + [rumext.v2 :as mf])) + +(defn- valid-typography? [value] + (contains? typography-list value)) + +(mf/defc text* + {::mf/props :obj} + [{:keys [tag typography children] :rest props}] + + (assert (valid-typography? (dm/str typography)) + (dm/str typography " is an unknown typography")) + + (let [props (mf/spread-props props {:class (stl/css-case :display-typography (= typography "display") + :title-large-typography (= typography "title-large") + :title-medium-typography (= typography "title-medium") + :title-small-typography (= typography "title-small") + :headline-large-typography (= typography "headline-large") + :headline-medium-typography (= typography "headline-medium") + :headline-small-typography (= typography "headline-small") + :body-large-typography (= typography "body-large") + :body-medium-typography (= typography "body-medium") + :body-small-typography (= typography "body-small") + :code-font-typography (= typography "code-font"))})] + [:> tag props + children])) diff --git a/frontend/src/app/main/ui/ds/foundations/typography.cljs b/frontend/src/app/main/ui/ds/foundations/typography.cljs new file mode 100644 index 0000000000..1a211b1109 --- /dev/null +++ b/frontend/src/app/main/ui/ds/foundations/typography.cljs @@ -0,0 +1,32 @@ +;; This Source Code Form is subject to the terms of the Mozilla Public +;; License, v. 2.0. If a copy of the MPL was not distributed with this +;; file, You can obtain one at http://mozilla.org/MPL/2.0/. +;; +;; Copyright (c) KALEIDOS INC + +(ns app.main.ui.ds.foundations.typography) + +(def ^:typography-id display "display") +(def ^:typography-id title-large "title-large") +(def ^:typography-id title-medium "title-medium") +(def ^:typography-id title-small "title-small") +(def ^:typography-id headline-large "headline-large") +(def ^:typography-id headline-medium "headline-medium") +(def ^:typography-id headline-small "headline-small") +(def ^:typography-id body-large "body-large") +(def ^:typography-id body-medium "body-medium") +(def ^:typography-id body-small "body-small") +(def ^:typography-id code-font "code-font") + + +(def typography-list #{display + title-large + title-medium + title-small + headline-large + headline-medium + headline-small + body-large + body-medium + body-small + code-font}) \ No newline at end of file diff --git a/frontend/src/app/main/ui/ds/foundations/typography.mdx b/frontend/src/app/main/ui/ds/foundations/typography.mdx new file mode 100644 index 0000000000..e36d292711 --- /dev/null +++ b/frontend/src/app/main/ui/ds/foundations/typography.mdx @@ -0,0 +1,153 @@ +import { Canvas, Meta, Story } from "@storybook/blocks"; +import * as TypographyStories from "./typography.stories"; +import Components from "@target/components"; + + + +# Typography + +We currently work with 3 scales depending on whether the typography +is applied in the workspace, in the dashboard and access areas +and in the communication modalities. + +This situation is something to be corrected in future improvements. + +## Usage + +### Standard text colours + +Typographic colours are used in text elements such as headers +and body and in the various components that make up the tool... + +The colours used in typography are the Foreground colours such +`--color-foreground-primary` or `--color-foreground-secondary` +but different colours can be applied in specific component +applications with their own styles, such as buttons. + +As far as possible and as long as accessibility is not affected, +we will use colour in typography as a way of hierarchising +the content displayed using tone, built in luminance changes and +size as differentiating elements between main and secondary text. + +### Status text colous + +Another possible application of colour is semantic, when we use text to convey some system state. + +Use the tokens: + +`--color-accent-success` - Use as text colour to indicate success. + +`--color-accent-warning` - Use as text colour to indicate a warning or caution. + +`--color-accent-error` - Use as text colour to indicate an error. + + +## Accesibility + +Typefaces should be sized for legibility and accessibility. +The minimum size for texts in Penpot will be 14px except +for exceptions based on the size of the components. + +## Title + +### Display `display` + +Hero style text for transitional pages (Login). If too large use large title in narrow windows. + + + Display - 400 - 36px/1.4 "Work Sans" + + +### Title large `title-large` + +Page headers for main pages (dashboard, Profiles...). If too big use title +(medium) in narrow windows. + + + Title large - 400 - 24px/1.4 "Work Sans" + + +### Title medium `title-medium` + +Default page title. Equivalent line height of 32px matches the height +of buttons and other medium controls. Ideal for page header layout. + + + Title medium - 400 - 20px/1.4 "Work Sans" + + +### Title small `title-small` + +Uses the same size as body (large). + + + Title small - 400 - 14px/1.2 "Work Sans" + + +## Headline + +Page sections/subtitles, or names of less important objects in +page titles (automated action titles, for example). Same line height as title (medium). + +### Headline large `headline-large` + + + Headline large - 400 - 18px/1.4 "Work Sans" + + +### Headline medium `headline-medium` + + + Headline medium - 400 - 16px/1.4 "Work Sans" + + + +### Headline small `headline-small` + + + Headline small - 500 - 12px/1.2 "Work Sans" + + +## Body + +### Body large `body-large` + +Generic content. + + + Body large - 400 - 16px/1.4 "Work Sans" + + +### Body medium `body-medium` + +Default UI font. Most commonly used for body text. + + + Body medium - 400 - 14px/1.3 "Work Sans" + + + +### Body small `body-small` + +Small compact font with a line height of less than 16px. +Use for single line scenarios, as the small size does not meet accessibility requirements. + + + Body small - 400 - 12px/1.3 "Work Sans" + + +## Code font `code-font` + +Default style for rendering code blocks. + + + Code font - 400 - 12px/1.2 "Roboto Mono" + + +## Fonts + +We are using 3 fonts + +- The default font family is `Work Sans`. It was chosen for its efficiency and legibility. +- In case of having the interface in Farsi or Arabic this font will be replaced by `Vazirmatn`. +- For code blocks we are useng `Roboto Mono`. diff --git a/frontend/src/app/main/ui/ds/foundations/typography.stories.jsx b/frontend/src/app/main/ui/ds/foundations/typography.stories.jsx new file mode 100644 index 0000000000..761a7076aa --- /dev/null +++ b/frontend/src/app/main/ui/ds/foundations/typography.stories.jsx @@ -0,0 +1,135 @@ +import * as React from "react"; +import Components from "@target/components"; + +const { Heading } = Components; +const { StoryWrapper, StoryHeader, StoryGridRow } = Components.storybook; + +const typographyList = { + display: { + name: "Display", + id: "display", + size: "36px", + weight: "400", + line: "1.4", + uppercase: false, + font: "Work Sans", + }, + titleLarge: { + name: "Title large", + id: "title-large", + size: "24px", + weight: "400", + line: "1.4", + uppercase: false, + font: "Work Sans", + }, + titleMedium: { + name: "Title medium", + id: "title-medium", + size: "20px", + weight: "400", + line: "1.4", + uppercase: false, + font: "Work Sans", + }, + titleSmall: { + name: "Title small", + id: "title-small", + size: "14px", + weight: "400", + line: "1.2", + uppercase: false, + font: "Work Sans", + }, + headlineLarge: { + name: "Headline large", + id: "headline-large", + size: "18px", + weight: "400", + line: "1.4", + uppercase: true, + font: "Work Sans", + }, + headlineMedium: { + name: "Headline medium", + id: "headline-medium", + size: "16px", + weight: "400", + line: "1.4", + uppercase: true, + font: "Work Sans", + }, + headlineSmall: { + name: "Headline small", + id: "headline-small", + size: "12px", + weight: "500", + line: "1.2", + uppercase: true, + font: "Work Sans", + }, + bodyLarge: { + name: "Body large", + id: "body-large", + size: "16px", + weight: "400", + line: "1.4", + uppercase: false, + font: "Work Sans", + }, + bodyMedium: { + name: "Body medium", + id: "body-medium", + size: "14px", + weight: "400", + line: "1.3", + uppercase: false, + font: "Work Sans", + }, + bodySmall: { + name: "Body small", + id: "body-small", + size: "12px", + weight: "400", + line: "1.3", + uppercase: false, + font: "Work Sans", + }, + codeFont: { + name: "Code font", + id: "code-font", + size: "12px", + weight: "400", + line: "1.2", + uppercase: false, + font: "Roboto Mono", + }, +}; + +export default { + title: "Foundations/Typography", + component: Components.StoryHeader, +}; + +export const AllTypography = { + render: () => ( + + +

All Typography

+

Hover on a heading to see its ID

+
+ {Object.values(typographyList).map( + ({ id, name, size, weight, line, font }) => ( + + + {name} - {weight} - {size}/{line} {font} + + + ), + )} +
+ ), + parameters: { + backgrounds: { disable: true }, + }, +}; diff --git a/frontend/src/app/main/ui/ds/storybook.cljs b/frontend/src/app/main/ui/ds/storybook.cljs index 322dbe8220..d78c1cfe9f 100644 --- a/frontend/src/app/main/ui/ds/storybook.cljs +++ b/frontend/src/app/main/ui/ds/storybook.cljs @@ -45,3 +45,10 @@ (let [class (stl/css :story-header) props (mf/spread-props other {:class class})] [:> "header" props children])) + +(mf/defc story-grid-row* + {::mf/props :obj} + [{:keys [children] :rest other}] + (let [class (stl/css :story-grid-row) + props (mf/spread-props other {:class class})] + [:> "article" props children])) \ No newline at end of file diff --git a/frontend/src/app/main/ui/ds/storybook.scss b/frontend/src/app/main/ui/ds/storybook.scss index 6d09f01677..9e4036c54b 100644 --- a/frontend/src/app/main/ui/ds/storybook.scss +++ b/frontend/src/app/main/ui/ds/storybook.scss @@ -19,3 +19,11 @@ .story-header { color: var(--color-foreground-primary); } + +.story-grid-row { + display: grid; + grid-template-columns: 1fr; + grid-template-rows: 60px; + gap: 1rem; + color: var(--color-foreground-primary); +} diff --git a/frontend/src/app/main/ui/ds/typography.scss b/frontend/src/app/main/ui/ds/typography.scss index 4b8b2049ae..de5293fcbc 100644 --- a/frontend/src/app/main/ui/ds/typography.scss +++ b/frontend/src/app/main/ui/ds/typography.scss @@ -13,24 +13,24 @@ $_font-lineheight-dense: 1.2; $_font-lineheight-compact: 1.3; $_font-lineheight-normal: 1.4; -@function px2Rem($value) { +@function px2rem($value) { $remValue: math.div($value, 16) * 1rem; @return $remValue; } -$_fs-12: px2Rem(12); -$_fs-14: px2Rem(14); -$_fs-16: px2Rem(16); -$_fs-18: px2Rem(18); -$_fs-20: px2Rem(20); -$_fs-24: px2Rem(24); -$_fs-36: px2Rem(36); +$_fs-12: px2rem(12); +$_fs-14: px2rem(14); +$_fs-16: px2rem(16); +$_fs-18: px2rem(18); +$_fs-20: px2rem(20); +$_fs-24: px2rem(24); +$_fs-36: px2rem(36); @mixin _font-style-display { font-family: "worksans", "vazirmatn", sans-serif; font-optical-sizing: auto; font-weight: $_font-weight-regular; - line-height: $_font-lineheight-dense; + line-height: $_font-lineheight-normal; font-size: $_fs-36; } @@ -38,7 +38,7 @@ $_fs-36: px2Rem(36); font-family: "worksans", "vazirmatn", sans-serif; font-optical-sizing: auto; font-weight: $_font-weight-regular; - line-height: $_font-lineheight-dense; + line-height: $_font-lineheight-normal; font-size: $_fs-24; } @@ -46,11 +46,19 @@ $_fs-36: px2Rem(36); font-family: "worksans", "vazirmatn", sans-serif; font-optical-sizing: auto; font-weight: $_font-weight-regular; - line-height: $_font-lineheight-dense; + line-height: $_font-lineheight-normal; font-size: $_fs-20; } -@mixin _font-style-heading-large { +@mixin _font-style-title-small { + font-family: "worksans", "vazirmatn", sans-serif; + font-optical-sizing: auto; + font-weight: $_font-weight-regular; + line-height: $_font-lineheight-dense; + font-size: $_fs-14; +} + +@mixin _font-style-headline-large { font-family: "worksans", "vazirmatn", sans-serif; font-optical-sizing: auto; font-weight: $_font-weight-regular; @@ -59,16 +67,16 @@ $_fs-36: px2Rem(36); text-transform: uppercase; } -@mixin _font-style-heading-medium { +@mixin _font-style-headline-medium { font-family: "worksans", "vazirmatn", sans-serif; font-optical-sizing: auto; font-weight: $_font-weight-regular; - line-height: $_font-lineheight-dense; + line-height: $_font-lineheight-normal; font-size: $_fs-16; text-transform: uppercase; } -@mixin _font-style-heading-small { +@mixin _font-style-headline-small { font-family: "worksans", "vazirmatn", sans-serif; font-optical-sizing: auto; font-weight: $_font-weight-medium; @@ -116,12 +124,14 @@ $_fs-36: px2Rem(36); @include _font-style-title-large; } @else if $typography-name == "title-medium" { @include _font-style-title-medium; - } @else if $typography-name == "heading-large" { - @include _font-style-heading-large; - } @else if $typography-name == "heading-medium" { - @include _font-style-heading-medium; - } @else if $typography-name == "heading-small" { - @include _font-style-heading-small; + } @else if $typography-name == "title-small" { + @include _font-style-title-small; + } @else if $typography-name == "headline-large" { + @include _font-style-headline-large; + } @else if $typography-name == "headline-medium" { + @include _font-style-headline-medium; + } @else if $typography-name == "headline-small" { + @include _font-style-headline-small; } @else if $typography-name == "body-large" { @include _font-style-body-large; } @else if $typography-name == "body-medium" { From 645bc321210f326ff0e53bc729284c5aa4795a73 Mon Sep 17 00:00:00 2001 From: Eva Marco Date: Fri, 5 Jul 2024 09:01:35 +0200 Subject: [PATCH 378/476] :sparkles: Add new heading component to the DS --- frontend/src/app/main/ui/ds/foundations/typography.cljs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/src/app/main/ui/ds/foundations/typography.cljs b/frontend/src/app/main/ui/ds/foundations/typography.cljs index 1a211b1109..9fd00b2c53 100644 --- a/frontend/src/app/main/ui/ds/foundations/typography.cljs +++ b/frontend/src/app/main/ui/ds/foundations/typography.cljs @@ -29,4 +29,4 @@ body-large body-medium body-small - code-font}) \ No newline at end of file + code-font}) From 7bd5d31094e9dc51ab902457e24035f0f7686a6c Mon Sep 17 00:00:00 2001 From: Eva Marco Date: Tue, 9 Jul 2024 08:02:13 +0200 Subject: [PATCH 379/476] :sparkles: Add text component to storybook --- .../app/main/ui/ds/foundations/heading.cljs | 26 ++++----- .../app/main/ui/ds/foundations/heading.mdx | 1 - .../src/app/main/ui/ds/foundations/text.cljs | 30 ++++++----- .../src/app/main/ui/ds/foundations/text.mdx | 48 +++++++++++++++++ .../src/app/main/ui/ds/foundations/text.scss | 50 +++++++++++++++++ .../main/ui/ds/foundations/text.stories.jsx | 54 +++++++++++++++++++ 6 files changed, 181 insertions(+), 28 deletions(-) create mode 100644 frontend/src/app/main/ui/ds/foundations/text.mdx create mode 100644 frontend/src/app/main/ui/ds/foundations/text.scss create mode 100644 frontend/src/app/main/ui/ds/foundations/text.stories.jsx diff --git a/frontend/src/app/main/ui/ds/foundations/heading.cljs b/frontend/src/app/main/ui/ds/foundations/heading.cljs index 4d0545dbc7..59c8e3dde4 100644 --- a/frontend/src/app/main/ui/ds/foundations/heading.cljs +++ b/frontend/src/app/main/ui/ds/foundations/heading.cljs @@ -9,7 +9,7 @@ [app.common.data.macros :as dm] [app.main.style :as stl]) (:require - [app.main.ui.ds.foundations.typography :refer [typography-list]] + [app.main.ui.ds.foundations.typography :as t] [rumext.v2 :as mf])) (defn- valid-level? [value] @@ -17,7 +17,7 @@ (contains? number-set (dm/str value)))) (defn- valid-typography? [value] - (contains? typography-list value)) + (contains? t/typography-list value)) (mf/defc heading* {::mf/props :obj} @@ -31,17 +31,17 @@ (let [level (or level "1") tag (dm/str "h" level) - class (dm/str (or class "") " " (stl/css-case :display-typography (= typography "display") - :title-large-typography (= typography "title-large") - :title-medium-typography (= typography "title-medium") - :title-small-typography (= typography "title-small") - :headline-large-typography (= typography "headline-large") - :headline-medium-typography (= typography "headline-medium") - :headline-small-typography (= typography "headline-small") - :body-large-typography (= typography "body-large") - :body-medium-typography (= typography "body-medium") - :body-small-typography (= typography "body-small") - :code-font-typography (= typography "code-font"))) + class (dm/str (or class "") " " (stl/css-case :display-typography (= typography t/display) + :title-large-typography (= typography t/title-large) + :title-medium-typography (= typography t/title-medium) + :title-small-typography (= typography t/title-small) + :headline-large-typography (= typography t/headline-large) + :headline-medium-typography (= typography t/headline-medium) + :headline-small-typography (= typography t/headline-small) + :body-large-typography (= typography t/body-large) + :body-medium-typography (= typography t/body-medium) + :body-small-typography (= typography t/body-small) + :code-font-typography (= typography t/code-font))) props (mf/spread-props props {:class class})] [:> tag props children])) diff --git a/frontend/src/app/main/ui/ds/foundations/heading.mdx b/frontend/src/app/main/ui/ds/foundations/heading.mdx index 85380a7600..52e3bb1204 100644 --- a/frontend/src/app/main/ui/ds/foundations/heading.mdx +++ b/frontend/src/app/main/ui/ds/foundations/heading.mdx @@ -16,7 +16,6 @@ This components accepts to props: You can check passed props to renderized components on hover `level / typography`; - ### Using typography IDs There are typography ID definitions you can use in your code rather than typing the diff --git a/frontend/src/app/main/ui/ds/foundations/text.cljs b/frontend/src/app/main/ui/ds/foundations/text.cljs index 3b74ba8530..180ee703f5 100644 --- a/frontend/src/app/main/ui/ds/foundations/text.cljs +++ b/frontend/src/app/main/ui/ds/foundations/text.cljs @@ -9,29 +9,31 @@ [app.common.data.macros :as dm] [app.main.style :as stl]) (:require - [app.main.ui.ds.foundations.typography :refer [typography-list]] + [app.main.ui.ds.foundations.typography :as t] [rumext.v2 :as mf])) (defn- valid-typography? [value] - (contains? typography-list value)) + (contains? t/typography-list value)) (mf/defc text* {::mf/props :obj} - [{:keys [tag typography children] :rest props}] + [{:keys [tag typography children class] :rest props}] (assert (valid-typography? (dm/str typography)) (dm/str typography " is an unknown typography")) - (let [props (mf/spread-props props {:class (stl/css-case :display-typography (= typography "display") - :title-large-typography (= typography "title-large") - :title-medium-typography (= typography "title-medium") - :title-small-typography (= typography "title-small") - :headline-large-typography (= typography "headline-large") - :headline-medium-typography (= typography "headline-medium") - :headline-small-typography (= typography "headline-small") - :body-large-typography (= typography "body-large") - :body-medium-typography (= typography "body-medium") - :body-small-typography (= typography "body-small") - :code-font-typography (= typography "code-font"))})] + (let [tag (or tag "p") + class (dm/str (or class "") " " (stl/css-case :display-typography (= typography t/display) + :title-large-typography (= typography t/title-large) + :title-medium-typography (= typography t/title-medium) + :title-small-typography (= typography t/title-small) + :headline-large-typography (= typography t/headline-large) + :headline-medium-typography (= typography t/headline-medium) + :headline-small-typography (= typography t/headline-small) + :body-large-typography (= typography t/body-large) + :body-medium-typography (= typography t/body-medium) + :body-small-typography (= typography t/body-small) + :code-font-typography (= typography t/code-font))) + props (mf/spread-props props {:class class})] [:> tag props children])) diff --git a/frontend/src/app/main/ui/ds/foundations/text.mdx b/frontend/src/app/main/ui/ds/foundations/text.mdx new file mode 100644 index 0000000000..0f526cf271 --- /dev/null +++ b/frontend/src/app/main/ui/ds/foundations/text.mdx @@ -0,0 +1,48 @@ +import { Canvas, Meta } from "@storybook/blocks"; +import * as TextStories from "./text.stories"; + + + +# Texts +This component will add a text element to our code that will match the tag prop. + +## Technical notes + +This components accepts to props: + +- `tag` (default value: `p`) : Give a proper tag name (i.e. `p`, `span`, etc.). +- `typography` (mandatory): Any of the [supported typography IDs](?path=/docs/foundations-typography--docs). + +You can check passed props to renderized components on hover `tag / typography` + + +### Using typography IDs + +There are typography ID definitions you can use in your code rather than typing the +typography ID by hand. + +**Using these IDs is recommended**. + +Assuming the namespace of the typography is required as `t`: + +```clj +(ns app.main.ui.foo + (:require + [app.main.ui.ds.foundations.text :refer [text*]] + [app.main.ui.ds.foundations.typography :as t])) +``` + +You can now use the typography IDs defined in the namespace: + +```clj +[:> text* {:typography t/title-large :tag "p"} "Welcome to Penpot"] +``` + +## Accesibility + +There should only be one level 1 heading `

` per page. + +Headings are used to navigate the page and must follow the `

` -> `

` -> `

` -> `

` -> `

` -> `
` hierarchy. +For example, do not skip levels in the `

` -> `

` hierarchy if there is no `

` in between. + +We should not choose the heading level by its visual aspect. diff --git a/frontend/src/app/main/ui/ds/foundations/text.scss b/frontend/src/app/main/ui/ds/foundations/text.scss new file mode 100644 index 0000000000..1cd69b7bcb --- /dev/null +++ b/frontend/src/app/main/ui/ds/foundations/text.scss @@ -0,0 +1,50 @@ +// This Source Code Form is subject to the terms of the Mozilla Public +// License, v. 2.0. If a copy of the MPL was not distributed with this +// file, You can obtain one at http://mozilla.org/MPL/2.0/. +// +// Copyright (c) KALEIDOS INC +@use "../typography.scss" as t; + +.display-typography { + @include t.use-typography("display"); +} + +.title-large-typography { + @include t.use-typography("title-large"); +} + +.title-medium-typography { + @include t.use-typography("title-medium"); +} + +.title-small-typography { + @include t.use-typography("title-small"); +} + +.headline-large-typography { + @include t.use-typography("headline-large"); +} + +.headline-medium-typography { + @include t.use-typography("headline-medium"); +} + +.headline-small-typography { + @include t.use-typography("headline-small"); +} + +.body-large-typography { + @include t.use-typography("body-large"); +} + +.body-medium-typography { + @include t.use-typography("body-medium"); +} + +.body-small-typography { + @include t.use-typography("body-small"); +} + +.code-font-typography { + @include t.use-typography("code-font"); +} diff --git a/frontend/src/app/main/ui/ds/foundations/text.stories.jsx b/frontend/src/app/main/ui/ds/foundations/text.stories.jsx new file mode 100644 index 0000000000..703522c3fa --- /dev/null +++ b/frontend/src/app/main/ui/ds/foundations/text.stories.jsx @@ -0,0 +1,54 @@ +import * as React from "react"; +import Components from "@target/components"; + +const { Text } = Components; +const { StoryWrapper, StoryGridRow } = Components.storybook; + +export default { + title: "Foundations/Text", + component: Components.Text, +}; + +export const TextTags = { + render: () => ( + + + + p / Title + + + + + span / Title large + + + + + div / Title large + + + + ), +}; + +export const TypographyParagraph = { + render: () => ( + + + + p / Title large + + + + + p / Title medium + + + + + p / Code font + + + + ), +}; From 0d0b5ead86fd5e36b4d883915a91d93ef085673c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bel=C3=A9n=20Albeza?= Date: Wed, 10 Jul 2024 12:39:11 +0200 Subject: [PATCH 380/476] :paperclip: Remove unused storybook addons + other libs --- frontend/.storybook/main.js | 7 +- frontend/package.json | 4 - frontend/yarn.lock | 301 ++---------------------------------- 3 files changed, 13 insertions(+), 299 deletions(-) diff --git a/frontend/.storybook/main.js b/frontend/.storybook/main.js index a1b422ae61..e9546b1fd3 100644 --- a/frontend/.storybook/main.js +++ b/frontend/.storybook/main.js @@ -2,12 +2,7 @@ const config = { stories: ["../src/**/*.mdx", "../src/**/*.stories.@(js|jsx|mjs|ts|tsx)"], staticDirs: ["../resources/public"], - addons: [ - "@storybook/addon-links", - "@storybook/addon-essentials", - "@storybook/addon-onboarding", - "@storybook/addon-interactions", - ], + addons: ["@storybook/addon-essentials"], framework: { name: "@storybook/react-vite", options: {}, diff --git a/frontend/package.json b/frontend/package.json index 2bbad53ed6..50f2559a33 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -42,13 +42,9 @@ "devDependencies": { "@playwright/test": "1.44.1", "@storybook/addon-essentials": "^7.6.17", - "@storybook/addon-interactions": "^7.6.17", - "@storybook/addon-links": "^7.6.17", - "@storybook/addon-onboarding": "^1.0.11", "@storybook/blocks": "^7.6.17", "@storybook/react": "^7.6.17", "@storybook/react-vite": "^7.6.17", - "@storybook/testing-library": "^0.2.2", "@types/node": "^20.11.20", "autoprefixer": "^10.4.19", "concurrently": "^8.2.2", diff --git a/frontend/yarn.lock b/frontend/yarn.lock index 1eaae603b0..983a02c96e 100644 --- a/frontend/yarn.lock +++ b/frontend/yarn.lock @@ -26,7 +26,7 @@ __metadata: languageName: node linkType: hard -"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.10.4, @babel/code-frame@npm:^7.23.5, @babel/code-frame@npm:^7.24.2": +"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.23.5, @babel/code-frame@npm:^7.24.2": version: 7.24.2 resolution: "@babel/code-frame@npm:7.24.2" dependencies: @@ -1428,7 +1428,7 @@ __metadata: languageName: node linkType: hard -"@babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.13.10, @babel/runtime@npm:^7.17.8, @babel/runtime@npm:^7.21.0, @babel/runtime@npm:^7.7.2, @babel/runtime@npm:^7.8.4, @babel/runtime@npm:^7.8.7": +"@babel/runtime@npm:^7.13.10, @babel/runtime@npm:^7.17.8, @babel/runtime@npm:^7.21.0, @babel/runtime@npm:^7.7.2, @babel/runtime@npm:^7.8.4, @babel/runtime@npm:^7.8.7": version: 7.24.5 resolution: "@babel/runtime@npm:7.24.5" dependencies: @@ -1981,19 +1981,6 @@ __metadata: languageName: node linkType: hard -"@jest/types@npm:^27.5.1": - version: 27.5.1 - resolution: "@jest/types@npm:27.5.1" - dependencies: - "@types/istanbul-lib-coverage": "npm:^2.0.0" - "@types/istanbul-reports": "npm:^3.0.0" - "@types/node": "npm:*" - "@types/yargs": "npm:^16.0.0" - chalk: "npm:^4.0.0" - checksum: 10c0/4598b302398db0eb77168b75a6c58148ea02cc9b9f21c5d1bbe985c1c9257110a5653cf7b901c3cab87fba231e3fed83633687f1c0903b4bc6939ab2a8452504 - languageName: node - linkType: hard - "@jest/types@npm:^29.6.3": version: 29.6.3 resolution: "@jest/types@npm:29.6.3" @@ -3104,35 +3091,6 @@ __metadata: languageName: node linkType: hard -"@storybook/addon-interactions@npm:^7.6.17": - version: 7.6.19 - resolution: "@storybook/addon-interactions@npm:7.6.19" - dependencies: - "@storybook/global": "npm:^5.0.0" - "@storybook/types": "npm:7.6.19" - jest-mock: "npm:^27.0.6" - polished: "npm:^4.2.2" - ts-dedent: "npm:^2.2.0" - checksum: 10c0/430d62298930b5e78398024de99f8f5d19ef22d7eda51015fa88e8ed3fafd2e003b0c8694a97192848ebf3e013ba363d96bf753ef1ff844e8129a9c47d41894c - languageName: node - linkType: hard - -"@storybook/addon-links@npm:^7.6.17": - version: 7.6.19 - resolution: "@storybook/addon-links@npm:7.6.19" - dependencies: - "@storybook/csf": "npm:^0.1.2" - "@storybook/global": "npm:^5.0.0" - ts-dedent: "npm:^2.0.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - react: - optional: true - checksum: 10c0/c7f40095e8f00ed1dc9a6118b074d513e3a7dd77334e044d152b42ea5922a0fd26397bbcd45abaa2968a3b27a27b810af0e8039ab07ecee7043582fa2a14ca67 - languageName: node - linkType: hard - "@storybook/addon-measure@npm:7.6.19": version: 7.6.19 resolution: "@storybook/addon-measure@npm:7.6.19" @@ -3143,19 +3101,6 @@ __metadata: languageName: node linkType: hard -"@storybook/addon-onboarding@npm:^1.0.11": - version: 1.0.11 - resolution: "@storybook/addon-onboarding@npm:1.0.11" - dependencies: - "@storybook/telemetry": "npm:^7.1.0" - react-confetti: "npm:^6.1.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - checksum: 10c0/ca3de3eb85fb6d04309dbc07c26956777c064bb5032fb99aca3e43361b0816ac4326183aac99204d795fdc2010aa69c4978353c70a42926e9da0819343fcd2a0 - languageName: node - linkType: hard - "@storybook/addon-outline@npm:7.6.19": version: 7.6.19 resolution: "@storybook/addon-outline@npm:7.6.19" @@ -3712,7 +3657,7 @@ __metadata: languageName: node linkType: hard -"@storybook/telemetry@npm:7.6.19, @storybook/telemetry@npm:^7.1.0": +"@storybook/telemetry@npm:7.6.19": version: 7.6.19 resolution: "@storybook/telemetry@npm:7.6.19" dependencies: @@ -3728,17 +3673,6 @@ __metadata: languageName: node linkType: hard -"@storybook/testing-library@npm:^0.2.2": - version: 0.2.2 - resolution: "@storybook/testing-library@npm:0.2.2" - dependencies: - "@testing-library/dom": "npm:^9.0.0" - "@testing-library/user-event": "npm:^14.4.0" - ts-dedent: "npm:^2.2.0" - checksum: 10c0/3179c74148c92267ea449068ce9fb00bf960dbf06654354de7869428415d16dc730a0d58b5adca7619d21e5a058ae0bf713e34c09be8bca574388ec0106c5068 - languageName: node - linkType: hard - "@storybook/theming@npm:7.6.19": version: 7.6.19 resolution: "@storybook/theming@npm:7.6.19" @@ -3766,31 +3700,6 @@ __metadata: languageName: node linkType: hard -"@testing-library/dom@npm:^9.0.0": - version: 9.3.4 - resolution: "@testing-library/dom@npm:9.3.4" - dependencies: - "@babel/code-frame": "npm:^7.10.4" - "@babel/runtime": "npm:^7.12.5" - "@types/aria-query": "npm:^5.0.1" - aria-query: "npm:5.1.3" - chalk: "npm:^4.1.0" - dom-accessibility-api: "npm:^0.5.9" - lz-string: "npm:^1.5.0" - pretty-format: "npm:^27.0.2" - checksum: 10c0/147da340e8199d7f98f3a4ad8aa22ed55b914b83957efa5eb22bfea021a979ebe5a5182afa9c1e5b7a5f99a7f6744a5a4d9325ae46ec3b33b5a15aed8750d794 - languageName: node - linkType: hard - -"@testing-library/user-event@npm:^14.4.0": - version: 14.5.2 - resolution: "@testing-library/user-event@npm:14.5.2" - peerDependencies: - "@testing-library/dom": ">=7.21.4" - checksum: 10c0/68a0c2aa28a3c8e6eb05cafee29705438d7d8a9427423ce5064d44f19c29e89b5636de46dd2f28620fb10abba75c67130185bbc3aa23ac1163a227a5f36641e1 - languageName: node - linkType: hard - "@trysound/sax@npm:0.2.0": version: 0.2.0 resolution: "@trysound/sax@npm:0.2.0" @@ -3798,13 +3707,6 @@ __metadata: languageName: node linkType: hard -"@types/aria-query@npm:^5.0.1": - version: 5.0.4 - resolution: "@types/aria-query@npm:5.0.4" - checksum: 10c0/dc667bc6a3acc7bba2bccf8c23d56cb1f2f4defaa704cfef595437107efaa972d3b3db9ec1d66bc2711bfc35086821edd32c302bffab36f2e79b97f312069f08 - languageName: node - linkType: hard - "@types/babel__core@npm:^7.0.0, @types/babel__core@npm:^7.18.0, @types/babel__core@npm:^7.20.5": version: 7.20.5 resolution: "@types/babel__core@npm:7.20.5" @@ -4183,15 +4085,6 @@ __metadata: languageName: node linkType: hard -"@types/yargs@npm:^16.0.0": - version: 16.0.9 - resolution: "@types/yargs@npm:16.0.9" - dependencies: - "@types/yargs-parser": "npm:*" - checksum: 10c0/be24bd9a56c97ddb2964c1c18f5b9fe8271a50e100dc6945989901aae58f7ce6fb8f3a591c749a518401b6301358dbd1997e83c36138a297094feae7f9ac8211 - languageName: node - linkType: hard - "@types/yargs@npm:^17.0.8": version: 17.0.32 resolution: "@types/yargs@npm:17.0.32" @@ -4570,15 +4463,6 @@ __metadata: languageName: node linkType: hard -"aria-query@npm:5.1.3": - version: 5.1.3 - resolution: "aria-query@npm:5.1.3" - dependencies: - deep-equal: "npm:^2.0.5" - checksum: 10c0/edcbc8044c4663d6f88f785e983e6784f98cb62b4ba1e9dd8d61b725d0203e4cfca38d676aee984c31f354103461102a3d583aa4fbe4fd0a89b679744f4e5faf - languageName: node - linkType: hard - "arr-diff@npm:^4.0.0": version: 4.0.0 resolution: "arr-diff@npm:4.0.0" @@ -4618,7 +4502,7 @@ __metadata: languageName: node linkType: hard -"array-buffer-byte-length@npm:^1.0.0, array-buffer-byte-length@npm:^1.0.1": +"array-buffer-byte-length@npm:^1.0.1": version: 1.0.1 resolution: "array-buffer-byte-length@npm:1.0.1" dependencies: @@ -6325,32 +6209,6 @@ __metadata: languageName: node linkType: hard -"deep-equal@npm:^2.0.5": - version: 2.2.3 - resolution: "deep-equal@npm:2.2.3" - dependencies: - array-buffer-byte-length: "npm:^1.0.0" - call-bind: "npm:^1.0.5" - es-get-iterator: "npm:^1.1.3" - get-intrinsic: "npm:^1.2.2" - is-arguments: "npm:^1.1.1" - is-array-buffer: "npm:^3.0.2" - is-date-object: "npm:^1.0.5" - is-regex: "npm:^1.1.4" - is-shared-array-buffer: "npm:^1.0.2" - isarray: "npm:^2.0.5" - object-is: "npm:^1.1.5" - object-keys: "npm:^1.1.1" - object.assign: "npm:^4.1.4" - regexp.prototype.flags: "npm:^1.5.1" - side-channel: "npm:^1.0.4" - which-boxed-primitive: "npm:^1.0.2" - which-collection: "npm:^1.0.1" - which-typed-array: "npm:^1.1.13" - checksum: 10c0/a48244f90fa989f63ff5ef0cc6de1e4916b48ea0220a9c89a378561960814794a5800c600254482a2c8fd2e49d6c2e196131dc983976adb024c94a42dfe4949f - languageName: node - linkType: hard - "default-browser-id@npm:3.0.0": version: 3.0.0 resolution: "default-browser-id@npm:3.0.0" @@ -6597,13 +6455,6 @@ __metadata: languageName: node linkType: hard -"dom-accessibility-api@npm:^0.5.9": - version: 0.5.16 - resolution: "dom-accessibility-api@npm:0.5.16" - checksum: 10c0/b2c2eda4fae568977cdac27a9f0c001edf4f95a6a6191dfa611e3721db2478d1badc01db5bb4fa8a848aeee13e442a6c2a4386d65ec65a1436f24715a2f8d053 - languageName: node - linkType: hard - "dom-helpers@npm:^5.1.3": version: 5.2.1 resolution: "dom-helpers@npm:5.2.1" @@ -6932,23 +6783,6 @@ __metadata: languageName: node linkType: hard -"es-get-iterator@npm:^1.1.3": - version: 1.1.3 - resolution: "es-get-iterator@npm:1.1.3" - dependencies: - call-bind: "npm:^1.0.2" - get-intrinsic: "npm:^1.1.3" - has-symbols: "npm:^1.0.3" - is-arguments: "npm:^1.1.1" - is-map: "npm:^2.0.2" - is-set: "npm:^2.0.2" - is-string: "npm:^1.0.7" - isarray: "npm:^2.0.5" - stop-iteration-iterator: "npm:^1.0.0" - checksum: 10c0/ebd11effa79851ea75d7f079405f9d0dc185559fd65d986c6afea59a0ff2d46c2ed8675f19f03dce7429d7f6c14ff9aede8d121fbab78d75cfda6a263030bac0 - languageName: node - linkType: hard - "es-module-lexer@npm:^0.9.3": version: 0.9.3 resolution: "es-module-lexer@npm:0.9.3" @@ -7907,13 +7741,9 @@ __metadata: dependencies: "@playwright/test": "npm:1.44.1" "@storybook/addon-essentials": "npm:^7.6.17" - "@storybook/addon-interactions": "npm:^7.6.17" - "@storybook/addon-links": "npm:^7.6.17" - "@storybook/addon-onboarding": "npm:^1.0.11" "@storybook/blocks": "npm:^7.6.17" "@storybook/react": "npm:^7.6.17" "@storybook/react-vite": "npm:^7.6.17" - "@storybook/testing-library": "npm:^0.2.2" "@types/node": "npm:^20.11.20" autoprefixer: "npm:^10.4.19" compression: "npm:^1.7.4" @@ -8164,7 +7994,7 @@ __metadata: languageName: node linkType: hard -"get-intrinsic@npm:^1.1.3, get-intrinsic@npm:^1.2.1, get-intrinsic@npm:^1.2.2, get-intrinsic@npm:^1.2.3, get-intrinsic@npm:^1.2.4": +"get-intrinsic@npm:^1.1.3, get-intrinsic@npm:^1.2.1, get-intrinsic@npm:^1.2.3, get-intrinsic@npm:^1.2.4": version: 1.2.4 resolution: "get-intrinsic@npm:1.2.4" dependencies: @@ -9014,7 +8844,7 @@ __metadata: languageName: node linkType: hard -"internal-slot@npm:^1.0.4, internal-slot@npm:^1.0.7": +"internal-slot@npm:^1.0.7": version: 1.0.7 resolution: "internal-slot@npm:1.0.7" dependencies: @@ -9098,7 +8928,7 @@ __metadata: languageName: node linkType: hard -"is-arguments@npm:^1.0.4, is-arguments@npm:^1.1.1": +"is-arguments@npm:^1.0.4": version: 1.1.1 resolution: "is-arguments@npm:1.1.1" dependencies: @@ -9108,7 +8938,7 @@ __metadata: languageName: node linkType: hard -"is-array-buffer@npm:^3.0.2, is-array-buffer@npm:^3.0.4": +"is-array-buffer@npm:^3.0.4": version: 3.0.4 resolution: "is-array-buffer@npm:3.0.4" dependencies: @@ -9210,7 +9040,7 @@ __metadata: languageName: node linkType: hard -"is-date-object@npm:^1.0.1, is-date-object@npm:^1.0.5": +"is-date-object@npm:^1.0.1": version: 1.0.5 resolution: "is-date-object@npm:1.0.5" dependencies: @@ -9342,13 +9172,6 @@ __metadata: languageName: node linkType: hard -"is-map@npm:^2.0.2, is-map@npm:^2.0.3": - version: 2.0.3 - resolution: "is-map@npm:2.0.3" - checksum: 10c0/2c4d431b74e00fdda7162cd8e4b763d6f6f217edf97d4f8538b94b8702b150610e2c64961340015fe8df5b1fcee33ccd2e9b62619c4a8a3a155f8de6d6d355fc - languageName: node - linkType: hard - "is-nan@npm:^1.3.2": version: 1.3.2 resolution: "is-nan@npm:1.3.2" @@ -9468,13 +9291,6 @@ __metadata: languageName: node linkType: hard -"is-set@npm:^2.0.2, is-set@npm:^2.0.3": - version: 2.0.3 - resolution: "is-set@npm:2.0.3" - checksum: 10c0/f73732e13f099b2dc879c2a12341cfc22ccaca8dd504e6edae26484bd5707a35d503fba5b4daad530a9b088ced1ae6c9d8200fd92e09b428fe14ea79ce8080b7 - languageName: node - linkType: hard - "is-shared-array-buffer@npm:^1.0.2, is-shared-array-buffer@npm:^1.0.3": version: 1.0.3 resolution: "is-shared-array-buffer@npm:1.0.3" @@ -9555,13 +9371,6 @@ __metadata: languageName: node linkType: hard -"is-weakmap@npm:^2.0.2": - version: 2.0.2 - resolution: "is-weakmap@npm:2.0.2" - checksum: 10c0/443c35bb86d5e6cc5929cd9c75a4024bb0fff9586ed50b092f94e700b89c43a33b186b76dbc6d54f3d3d09ece689ab38dcdc1af6a482cbe79c0f2da0a17f1299 - languageName: node - linkType: hard - "is-weakref@npm:^1.0.2": version: 1.0.2 resolution: "is-weakref@npm:1.0.2" @@ -9571,16 +9380,6 @@ __metadata: languageName: node linkType: hard -"is-weakset@npm:^2.0.3": - version: 2.0.3 - resolution: "is-weakset@npm:2.0.3" - dependencies: - call-bind: "npm:^1.0.7" - get-intrinsic: "npm:^1.2.4" - checksum: 10c0/8ad6141b6a400e7ce7c7442a13928c676d07b1f315ab77d9912920bf5f4170622f43126f111615788f26c3b1871158a6797c862233124507db0bcc33a9537d1a - languageName: node - linkType: hard - "is-windows@npm:^1.0.1, is-windows@npm:^1.0.2": version: 1.0.2 resolution: "is-windows@npm:1.0.2" @@ -9711,16 +9510,6 @@ __metadata: languageName: node linkType: hard -"jest-mock@npm:^27.0.6": - version: 27.5.1 - resolution: "jest-mock@npm:27.5.1" - dependencies: - "@jest/types": "npm:^27.5.1" - "@types/node": "npm:*" - checksum: 10c0/6ad58454b37ee3f726930b07efbf40a7c79d2d2d9c7b226708b4b550bc0904de93bcacf714105d11952a5c0bc855e5d59145c8c9dbbb4e69b46e7367abf53b52 - languageName: node - linkType: hard - "jest-regex-util@npm:^29.6.3": version: 29.6.3 resolution: "jest-regex-util@npm:29.6.3" @@ -10299,15 +10088,6 @@ __metadata: languageName: node linkType: hard -"lz-string@npm:^1.5.0": - version: 1.5.0 - resolution: "lz-string@npm:1.5.0" - bin: - lz-string: bin/bin.js - checksum: 10c0/36128e4de34791838abe979b19927c26e67201ca5acf00880377af7d765b38d1c60847e01c5ec61b1a260c48029084ab3893a3925fd6e48a04011364b089991b - languageName: node - linkType: hard - "magic-string@npm:^0.27.0": version: 0.27.0 resolution: "magic-string@npm:0.27.0" @@ -12119,17 +11899,6 @@ __metadata: languageName: node linkType: hard -"pretty-format@npm:^27.0.2": - version: 27.5.1 - resolution: "pretty-format@npm:27.5.1" - dependencies: - ansi-regex: "npm:^5.0.1" - ansi-styles: "npm:^5.0.0" - react-is: "npm:^17.0.1" - checksum: 10c0/0cbda1031aa30c659e10921fa94e0dd3f903ecbbbe7184a729ad66f2b6e7f17891e8c7d7654c458fa4ccb1a411ffb695b4f17bbcd3fe075fabe181027c4040ed - languageName: node - linkType: hard - "pretty-format@npm:^29.7.0": version: 29.7.0 resolution: "pretty-format@npm:29.7.0" @@ -12460,17 +12229,6 @@ __metadata: languageName: node linkType: hard -"react-confetti@npm:^6.1.0": - version: 6.1.0 - resolution: "react-confetti@npm:6.1.0" - dependencies: - tween-functions: "npm:^1.2.0" - peerDependencies: - react: ^16.3.0 || ^17.0.1 || ^18.0.0 - checksum: 10c0/5b4eb23eef564695f6db1d25b294ed31d5fa21ff4092c6a38e641f85cd10e3e0b50014366e3ac0f7cf772e73faaecd14614e5b11a5531336fa769dda8068ab59 - languageName: node - linkType: hard - "react-docgen-typescript@npm:^2.2.2": version: 2.2.2 resolution: "react-docgen-typescript@npm:2.2.2" @@ -12538,13 +12296,6 @@ __metadata: languageName: node linkType: hard -"react-is@npm:^17.0.1": - version: 17.0.2 - resolution: "react-is@npm:17.0.2" - checksum: 10c0/2bdb6b93fbb1820b024b496042cce405c57e2f85e777c9aabd55f9b26d145408f9f74f5934676ffdc46f3dcff656d78413a6e43968e7b3f92eea35b3052e9053 - languageName: node - linkType: hard - "react-is@npm:^18.0.0": version: 18.3.1 resolution: "react-is@npm:18.3.1" @@ -12829,7 +12580,7 @@ __metadata: languageName: node linkType: hard -"regexp.prototype.flags@npm:^1.5.1, regexp.prototype.flags@npm:^1.5.2": +"regexp.prototype.flags@npm:^1.5.2": version: 1.5.2 resolution: "regexp.prototype.flags@npm:1.5.2" dependencies: @@ -14089,15 +13840,6 @@ __metadata: languageName: node linkType: hard -"stop-iteration-iterator@npm:^1.0.0": - version: 1.0.0 - resolution: "stop-iteration-iterator@npm:1.0.0" - dependencies: - internal-slot: "npm:^1.0.4" - checksum: 10c0/c4158d6188aac510d9e92925b58709207bd94699e9c31186a040c80932a687f84a51356b5895e6dc72710aad83addb9411c22171832c9ae0e6e11b7d61b0dfb9 - languageName: node - linkType: hard - "store2@npm:^2.14.2": version: 2.14.3 resolution: "store2@npm:2.14.3" @@ -14823,7 +14565,7 @@ __metadata: languageName: node linkType: hard -"ts-dedent@npm:^2.0.0, ts-dedent@npm:^2.2.0": +"ts-dedent@npm:^2.0.0": version: 2.2.0 resolution: "ts-dedent@npm:2.2.0" checksum: 10c0/175adea838468cc2ff7d5e97f970dcb798bbcb623f29c6088cb21aa2880d207c5784be81ab1741f56b9ac37840cbaba0c0d79f7f8b67ffe61c02634cafa5c303 @@ -14851,13 +14593,6 @@ __metadata: languageName: node linkType: hard -"tween-functions@npm:^1.2.0": - version: 1.2.0 - resolution: "tween-functions@npm:1.2.0" - checksum: 10c0/7e59295b8b0ee4132ed2fe335f56a9db5c87056dad6b6fd3011be72239fd20398003ddb4403bc98ad9f5c94468890830f64016edbbde35581faf95b32cda8305 - languageName: node - linkType: hard - "type-detect@npm:^4.0.0, type-detect@npm:^4.0.8": version: 4.0.8 resolution: "type-detect@npm:4.0.8" @@ -15727,18 +15462,6 @@ __metadata: languageName: node linkType: hard -"which-collection@npm:^1.0.1": - version: 1.0.2 - resolution: "which-collection@npm:1.0.2" - dependencies: - is-map: "npm:^2.0.3" - is-set: "npm:^2.0.3" - is-weakmap: "npm:^2.0.2" - is-weakset: "npm:^2.0.3" - checksum: 10c0/3345fde20964525a04cdf7c4a96821f85f0cc198f1b2ecb4576e08096746d129eb133571998fe121c77782ac8f21cbd67745a3d35ce100d26d4e684c142ea1f2 - languageName: node - linkType: hard - "which-module@npm:^1.0.0": version: 1.0.0 resolution: "which-module@npm:1.0.0" @@ -15746,7 +15469,7 @@ __metadata: languageName: node linkType: hard -"which-typed-array@npm:^1.1.13, which-typed-array@npm:^1.1.14, which-typed-array@npm:^1.1.15, which-typed-array@npm:^1.1.2": +"which-typed-array@npm:^1.1.14, which-typed-array@npm:^1.1.15, which-typed-array@npm:^1.1.2": version: 1.1.15 resolution: "which-typed-array@npm:1.1.15" dependencies: From eaaff76aadaee5b154440908fc855eac685982d1 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Wed, 10 Jul 2024 13:27:12 +0200 Subject: [PATCH 381/476] :bug: Fix exception on clj-kondo extension hook fn The exception is hidden on normal cli invocatin of clj-kondo and hapens when component with empty params is defined. --- .clj-kondo/hooks/export.clj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.clj-kondo/hooks/export.clj b/.clj-kondo/hooks/export.clj index c4017cc2f5..50e617de55 100644 --- a/.clj-kondo/hooks/export.clj +++ b/.clj-kondo/hooks/export.clj @@ -141,7 +141,7 @@ result (api/list-node (into [(api/token-node 'defn) cname - (api/vector-node (into [param1] paramN))] + (api/vector-node (filter some? (cons param1 paramN)))] (cons mdata body)))] ;; (prn (api/sexpr result)) From 508f4fcd3cf0d380fda420719490eb90682c6be9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bel=C3=A9n=20Albeza?= Date: Wed, 10 Jul 2024 13:31:56 +0200 Subject: [PATCH 382/476] :sparkles: Revamp Heading stories to display controls --- .../ui/ds/foundations/heading.stories.jsx | 62 +++++++------------ .../ui/ds/foundations/typography.stories.jsx | 2 + 2 files changed, 23 insertions(+), 41 deletions(-) diff --git a/frontend/src/app/main/ui/ds/foundations/heading.stories.jsx b/frontend/src/app/main/ui/ds/foundations/heading.stories.jsx index ac017b79f6..67cdb3a98c 100644 --- a/frontend/src/app/main/ui/ds/foundations/heading.stories.jsx +++ b/frontend/src/app/main/ui/ds/foundations/heading.stories.jsx @@ -1,54 +1,34 @@ import * as React from "react"; import Components from "@target/components"; +import { typographyIds } from "./typography.stories"; const { Heading } = Components; -const { StoryWrapper, StoryGridRow } = Components.storybook; +const { StoryWrapper } = Components.storybook; export default { - title: "Foundations/Heading", + title: "Foundations/Typography/Heading", component: Components.Heading, + argTypes: { + level: { + options: [1, 2, 3, 4, 5, 6], + control: { type: "select" }, + }, + typography: { + options: typographyIds, + control: { type: "select" }, + }, + }, }; -export const Levels = { - render: () => ( +export const AnyHeading = { + name: "Heading", + render: ({level, typography, ...args}) => ( - - - h1 / display - - - - - h2 / display - - - - - h3 / display - - - - ), -}; - -export const HeadingTypography = { - render: () => ( - - - - h1 / title-large - - - - - h1 / title-medium - - - - - h1 / code-font - - + Lorem ipsum ), + args: { + level: 1, + typography: "display", + } }; diff --git a/frontend/src/app/main/ui/ds/foundations/typography.stories.jsx b/frontend/src/app/main/ui/ds/foundations/typography.stories.jsx index 761a7076aa..615d3729eb 100644 --- a/frontend/src/app/main/ui/ds/foundations/typography.stories.jsx +++ b/frontend/src/app/main/ui/ds/foundations/typography.stories.jsx @@ -106,6 +106,8 @@ const typographyList = { }, }; +export const typographyIds = Object.values(typographyList).map(x => x.id); + export default { title: "Foundations/Typography", component: Components.StoryHeader, From 54da6832f3acda27f833e561483a0a1b18801a26 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bel=C3=A9n=20Albeza?= Date: Wed, 10 Jul 2024 13:34:09 +0200 Subject: [PATCH 383/476] :sparkles: Revamp Text stories to display controls + rename tag prop to as --- .../src/app/main/ui/ds/foundations/text.cljs | 6 +- .../main/ui/ds/foundations/text.stories.jsx | 62 +++++++------------ 2 files changed, 27 insertions(+), 41 deletions(-) diff --git a/frontend/src/app/main/ui/ds/foundations/text.cljs b/frontend/src/app/main/ui/ds/foundations/text.cljs index 180ee703f5..0372a0b0f3 100644 --- a/frontend/src/app/main/ui/ds/foundations/text.cljs +++ b/frontend/src/app/main/ui/ds/foundations/text.cljs @@ -17,12 +17,12 @@ (mf/defc text* {::mf/props :obj} - [{:keys [tag typography children class] :rest props}] + [{:keys [as typography children class] :rest props}] (assert (valid-typography? (dm/str typography)) (dm/str typography " is an unknown typography")) - (let [tag (or tag "p") + (let [as (or as "p") class (dm/str (or class "") " " (stl/css-case :display-typography (= typography t/display) :title-large-typography (= typography t/title-large) :title-medium-typography (= typography t/title-medium) @@ -35,5 +35,5 @@ :body-small-typography (= typography t/body-small) :code-font-typography (= typography t/code-font))) props (mf/spread-props props {:class class})] - [:> tag props + [:> as props children])) diff --git a/frontend/src/app/main/ui/ds/foundations/text.stories.jsx b/frontend/src/app/main/ui/ds/foundations/text.stories.jsx index 703522c3fa..271a099604 100644 --- a/frontend/src/app/main/ui/ds/foundations/text.stories.jsx +++ b/frontend/src/app/main/ui/ds/foundations/text.stories.jsx @@ -1,54 +1,40 @@ import * as React from "react"; import Components from "@target/components"; +import { typographyIds } from "./typography.stories"; const { Text } = Components; -const { StoryWrapper, StoryGridRow } = Components.storybook; +const { StoryWrapper } = Components.storybook; export default { - title: "Foundations/Text", - component: Components.Text, + title: "Foundations/Typography/Text", + component: Text, + argTypes: { + typography: { + options: typographyIds, + control: { type: "select" }, + } + } }; -export const TextTags = { - render: () => ( +export const Default = { + render: ({typography, ...args}) => ( - - - p / Title - - - - - span / Title large - - - - - div / Title large - - + Lorem ipsum ), + args: { + typography: "display" + } }; -export const TypographyParagraph = { - render: () => ( +export const CustomTag = { + render: ({typography, ...args}) => ( - - - p / Title large - - - - - p / Title medium - - - - - p / Code font - - + Lorem ipsum ), -}; + args: { + typography: "display", + as: "li" + } +} From 9174bb140bc109409684af775e8d4e570a6761d6 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Thu, 20 Jun 2024 14:36:34 +0200 Subject: [PATCH 384/476] :recycle: Refactor configuration validation Replace spec with schema --- backend/src/app/auth/ldap.clj | 24 +- backend/src/app/auth/oidc.clj | 22 +- backend/src/app/config.clj | 421 +++++++------------ backend/src/app/email.clj | 42 +- backend/src/app/main.clj | 1 + backend/src/app/media.clj | 13 - backend/src/app/rpc/commands/demo.clj | 2 +- backend/src/app/tasks/file_gc.clj | 2 +- backend/src/app/tasks/objects_gc.clj | 2 +- backend/src/app/tasks/tasks_gc.clj | 2 +- backend/src/app/util/overrides.clj | 41 ++ backend/test/backend_tests/helpers.clj | 10 +- backend/test/backend_tests/rpc_file_test.clj | 22 +- common/src/app/common/schema.cljc | 7 +- 14 files changed, 267 insertions(+), 344 deletions(-) create mode 100644 backend/src/app/util/overrides.clj diff --git a/backend/src/app/auth/ldap.clj b/backend/src/app/auth/ldap.clj index 5100abff9b..c430a794d6 100644 --- a/backend/src/app/auth/ldap.clj +++ b/backend/src/app/auth/ldap.clj @@ -9,7 +9,6 @@ [app.common.exceptions :as ex] [app.common.logging :as l] [app.common.spec :as us] - [app.config :as cf] [clj-ldap.client :as ldap] [clojure.spec.alpha :as s] [clojure.string] @@ -104,17 +103,17 @@ nil)))) (s/def ::enabled? ::us/boolean) -(s/def ::host ::cf/ldap-host) -(s/def ::port ::cf/ldap-port) -(s/def ::ssl ::cf/ldap-ssl) -(s/def ::tls ::cf/ldap-starttls) -(s/def ::query ::cf/ldap-user-query) -(s/def ::base-dn ::cf/ldap-base-dn) -(s/def ::bind-dn ::cf/ldap-bind-dn) -(s/def ::bind-password ::cf/ldap-bind-password) -(s/def ::attrs-email ::cf/ldap-attrs-email) -(s/def ::attrs-fullname ::cf/ldap-attrs-fullname) -(s/def ::attrs-username ::cf/ldap-attrs-username) +(s/def ::host ::us/string) +(s/def ::port ::us/integer) +(s/def ::ssl ::us/boolean) +(s/def ::tls ::us/boolean) +(s/def ::query ::us/string) +(s/def ::base-dn ::us/string) +(s/def ::bind-dn ::us/string) +(s/def ::bind-password ::us/string) +(s/def ::attrs-email ::us/string) +(s/def ::attrs-fullname ::us/string) +(s/def ::attrs-username ::us/string) (s/def ::provider-params (s/keys :opt-un [::host ::port @@ -126,6 +125,7 @@ ::attrs-email ::attrs-username ::attrs-fullname])) + (s/def ::provider (s/nilable ::provider-params)) diff --git a/backend/src/app/auth/oidc.clj b/backend/src/app/auth/oidc.clj index 69f7eb7d00..986e24cbbd 100644 --- a/backend/src/app/auth/oidc.clj +++ b/backend/src/app/auth/oidc.clj @@ -629,17 +629,17 @@ :provider provider :hint "provider not configured"))))))}) -(s/def ::client-id ::cf/oidc-client-id) -(s/def ::client-secret ::cf/oidc-client-secret) -(s/def ::base-uri ::cf/oidc-base-uri) -(s/def ::token-uri ::cf/oidc-token-uri) -(s/def ::auth-uri ::cf/oidc-auth-uri) -(s/def ::user-uri ::cf/oidc-user-uri) -(s/def ::scopes ::cf/oidc-scopes) -(s/def ::roles ::cf/oidc-roles) -(s/def ::roles-attr ::cf/oidc-roles-attr) -(s/def ::email-attr ::cf/oidc-email-attr) -(s/def ::name-attr ::cf/oidc-name-attr) +(s/def ::client-id ::us/string) +(s/def ::client-secret ::us/string) +(s/def ::base-uri ::us/string) +(s/def ::token-uri ::us/string) +(s/def ::auth-uri ::us/string) +(s/def ::user-uri ::us/string) +(s/def ::scopes ::us/set-of-strings) +(s/def ::roles ::us/set-of-strings) +(s/def ::roles-attr ::us/string) +(s/def ::email-attr ::us/string) +(s/def ::name-attr ::us/string) (s/def ::provider (s/keys :req-un [::client-id diff --git a/backend/src/app/config.clj b/backend/src/app/config.clj index aed7806946..602da9d24e 100644 --- a/backend/src/app/config.clj +++ b/backend/src/app/config.clj @@ -11,30 +11,17 @@ [app.common.data :as d] [app.common.exceptions :as ex] [app.common.flags :as flags] - [app.common.spec :as us] + [app.common.schema :as sm] [app.common.version :as v] + [app.util.overrides] [app.util.time :as dt] [clojure.core :as c] [clojure.java.io :as io] - [clojure.pprint :as pprint] - [clojure.spec.alpha :as s] [cuerdas.core :as str] [datoteka.fs :as fs] [environ.core :refer [env]] [integrant.core :as ig])) -(prefer-method print-method - clojure.lang.IRecord - clojure.lang.IDeref) - -(prefer-method print-method - clojure.lang.IPersistentMap - clojure.lang.IDeref) - -(prefer-method pprint/simple-dispatch - clojure.lang.IPersistentMap - clojure.lang.IDeref) - (defmethod ig/init-key :default [_ data] (d/without-nils data)) @@ -45,15 +32,15 @@ (d/without-nils data) data)) -(def defaults +(def default {:database-uri "postgresql://postgres/penpot" :database-username "penpot" :database-password "penpot" - :default-blob-version 5 + :default-blob-version 4 - :rpc-rlimit-config (fs/path "resources/rlimit.edn") - :rpc-climit-config (fs/path "resources/climit.edn") + :rpc-rlimit-config "resources/rlimit.edn" + :rpc-climit-config "resources/climit.edn" :file-change-snapshot-every 5 :file-change-snapshot-timeout "3h" @@ -92,254 +79,142 @@ ;; time to avoid email sending after profile modification :email-verify-threshold "15m"}) -(s/def ::default-rpc-rlimit ::us/vector-of-strings) -(s/def ::rpc-rlimit-config ::fs/path) -(s/def ::rpc-climit-config ::fs/path) +(def schema:config + (do #_sm/optional-keys + [:map {:title "config"} + [:flags {:optional true} [::sm/set :string]] + [:admins {:optional true} [::sm/set ::sm/email]] + [:secret-key {:optional true} :string] -(s/def ::media-max-file-size ::us/integer) + [:tenant {:optional false} :string] + [:public-uri {:optional false} :string] + [:host {:optional false} :string] -(s/def ::flags ::us/vector-of-keywords) -(s/def ::telemetry-enabled ::us/boolean) + [:http-server-port {:optional true} :int] + [:http-server-host {:optional true} :string] + [:http-server-max-body-size {:optional true} :int] + [:http-server-max-multipart-body-size {:optional true} :int] + [:http-server-io-threads {:optional true} :int] + [:http-server-worker-threads {:optional true} :int] -(s/def ::audit-log-archive-uri ::us/string) -(s/def ::audit-log-http-handler-concurrency ::us/integer) + [:telemetry-uri {:optional true} :string] + [:telemetry-with-taiga {:optional true} :boolean] ;; DELETE -(s/def ::email-domain-blacklist ::fs/path) -(s/def ::email-domain-whitelist ::fs/path) + [:file-change-snapshot-every {:optional true} :int] + [:file-change-snapshot-timeout {:optional true} ::dt/duration] -(s/def ::deletion-delay ::dt/duration) + [:media-max-file-size {:optional true} :int] + [:deletion-delay {:optional true} ::dt/duration] ;; REVIEW + [:telemetry-enabled {:optional true} :boolean] + [:default-blob-version {:optional true} :int] + [:allow-demo-users {:optional true} :boolean] + [:error-report-webhook {:optional true} :string] + [:user-feedback-destination {:optional true} :string] -(s/def ::admins ::us/set-of-valid-emails) -(s/def ::file-change-snapshot-every ::us/integer) -(s/def ::file-change-snapshot-timeout ::dt/duration) + [:default-rpc-rlimit {:optional true} [::sm/vec :string]] + [:rpc-rlimit-config {:optional true} ::fs/path] + [:rpc-climit-config {:optional true} ::fs/path] -(s/def ::default-executor-parallelism ::us/integer) -(s/def ::scheduled-executor-parallelism ::us/integer) + [:audit-log-archive-uri {:optional true} :string] + [:audit-log-http-handler-concurrency {:optional true} :int] -(s/def ::worker-default-parallelism ::us/integer) -(s/def ::worker-webhook-parallelism ::us/integer) + [:default-executor-parallelism {:optional true} :int] ;; REVIEW + [:scheduled-executor-parallelism {:optional true} :int] ;; REVIEW + [:worker-default-parallelism {:optional true} :int] + [:worker-webhook-parallelism {:optional true} :int] -(s/def ::auth-data-cookie-domain ::us/string) -(s/def ::auth-token-cookie-name ::us/string) -(s/def ::auth-token-cookie-max-age ::dt/duration) + [:database-password {:optional true} [:maybe :string]] + [:database-uri {:optional true} :string] + [:database-username {:optional true} [:maybe :string]] + [:database-readonly {:optional true} :boolean] + [:database-min-pool-size {:optional true} :int] + [:database-max-pool-size {:optional true} :int] -(s/def ::secret-key ::us/string) -(s/def ::allow-demo-users ::us/boolean) -(s/def ::assets-path ::us/string) -(s/def ::database-password (s/nilable ::us/string)) -(s/def ::database-uri ::us/string) -(s/def ::database-username (s/nilable ::us/string)) -(s/def ::database-readonly ::us/boolean) -(s/def ::database-min-pool-size ::us/integer) -(s/def ::database-max-pool-size ::us/integer) + [:quotes-teams-per-profile {:optional true} :int] + [:quotes-access-tokens-per-profile {:optional true} :int] + [:quotes-projects-per-team {:optional true} :int] + [:quotes-invitations-per-team {:optional true} :int] + [:quotes-profiles-per-team {:optional true} :int] + [:quotes-files-per-project {:optional true} :int] + [:quotes-files-per-team {:optional true} :int] + [:quotes-font-variants-per-team {:optional true} :int] + [:quotes-comment-threads-per-file {:optional true} :int] + [:quotes-comments-per-file {:optional true} :int] -(s/def ::quotes-teams-per-profile ::us/integer) -(s/def ::quotes-access-tokens-per-profile ::us/integer) -(s/def ::quotes-projects-per-team ::us/integer) -(s/def ::quotes-invitations-per-team ::us/integer) -(s/def ::quotes-profiles-per-team ::us/integer) -(s/def ::quotes-files-per-project ::us/integer) -(s/def ::quotes-files-per-team ::us/integer) -(s/def ::quotes-font-variants-per-team ::us/integer) -(s/def ::quotes-comment-threads-per-file ::us/integer) -(s/def ::quotes-comments-per-file ::us/integer) + [:auth-data-cookie-domain {:optional true} :string] + [:auth-token-cookie-name {:optional true} :string] + [:auth-token-cookie-max-age {:optional true} ::dt/duration] -(s/def ::default-blob-version ::us/integer) -(s/def ::error-report-webhook ::us/string) -(s/def ::user-feedback-destination ::us/string) -(s/def ::github-client-id ::us/string) -(s/def ::github-client-secret ::us/string) -(s/def ::gitlab-base-uri ::us/string) -(s/def ::gitlab-client-id ::us/string) -(s/def ::gitlab-client-secret ::us/string) -(s/def ::google-client-id ::us/string) -(s/def ::google-client-secret ::us/string) -(s/def ::oidc-client-id ::us/string) -(s/def ::oidc-user-info-source ::us/keyword) -(s/def ::oidc-client-secret ::us/string) -(s/def ::oidc-base-uri ::us/string) -(s/def ::oidc-token-uri ::us/string) -(s/def ::oidc-auth-uri ::us/string) -(s/def ::oidc-user-uri ::us/string) -(s/def ::oidc-jwks-uri ::us/string) -(s/def ::oidc-scopes ::us/set-of-strings) -(s/def ::oidc-roles ::us/set-of-strings) -(s/def ::oidc-roles-attr ::us/string) -(s/def ::oidc-email-attr ::us/string) -(s/def ::oidc-name-attr ::us/string) -(s/def ::host ::us/string) -(s/def ::http-server-port ::us/integer) -(s/def ::http-server-host ::us/string) -(s/def ::http-server-max-body-size ::us/integer) -(s/def ::http-server-max-multipart-body-size ::us/integer) -(s/def ::http-server-io-threads ::us/integer) -(s/def ::http-server-worker-threads ::us/integer) -(s/def ::ldap-attrs-email ::us/string) -(s/def ::ldap-attrs-fullname ::us/string) -(s/def ::ldap-attrs-username ::us/string) -(s/def ::ldap-base-dn ::us/string) -(s/def ::ldap-bind-dn ::us/string) -(s/def ::ldap-bind-password ::us/string) -(s/def ::ldap-host ::us/string) -(s/def ::ldap-port ::us/integer) -(s/def ::ldap-ssl ::us/boolean) -(s/def ::ldap-starttls ::us/boolean) -(s/def ::ldap-user-query ::us/string) -(s/def ::media-directory ::us/string) -(s/def ::media-uri ::us/string) -(s/def ::profile-bounce-max-age ::dt/duration) -(s/def ::profile-bounce-threshold ::us/integer) -(s/def ::profile-complaint-max-age ::dt/duration) -(s/def ::profile-complaint-threshold ::us/integer) -(s/def ::public-uri ::us/string) -(s/def ::redis-uri ::us/string) -(s/def ::registration-domain-whitelist ::us/set-of-strings) + [:registration-domain-whitelist {:optional true} [::sm/set :string]] + [:email-verify-threshold {:optional true} ::dt/duration] -(s/def ::smtp-default-from ::us/string) -(s/def ::smtp-default-reply-to ::us/string) -(s/def ::smtp-host ::us/string) -(s/def ::smtp-password (s/nilable ::us/string)) -(s/def ::smtp-port ::us/integer) -(s/def ::smtp-ssl ::us/boolean) -(s/def ::smtp-tls ::us/boolean) -(s/def ::smtp-username (s/nilable ::us/string)) -(s/def ::urepl-host ::us/string) -(s/def ::urepl-port ::us/integer) -(s/def ::prepl-host ::us/string) -(s/def ::prepl-port ::us/integer) -(s/def ::assets-storage-backend ::us/keyword) -(s/def ::storage-assets-fs-directory ::us/string) -(s/def ::storage-assets-s3-bucket ::us/string) -(s/def ::storage-assets-s3-region ::us/keyword) -(s/def ::storage-assets-s3-endpoint ::us/string) -(s/def ::storage-assets-s3-io-threads ::us/integer) -(s/def ::telemetry-uri ::us/string) -(s/def ::telemetry-with-taiga ::us/boolean) -(s/def ::tenant ::us/string) -(s/def ::email-verify-threshold ::dt/duration) + [:github-client-id {:optional true} :string] + [:github-client-secret {:optional true} :string] + [:gitlab-base-uri {:optional true} :string] + [:gitlab-client-id {:optional true} :string] + [:gitlab-client-secret {:optional true} :string] + [:google-client-id {:optional true} :string] + [:google-client-secret {:optional true} :string] + [:oidc-client-id {:optional true} :string] + [:oidc-user-info-source {:optional true} :keyword] + [:oidc-client-secret {:optional true} :string] + [:oidc-base-uri {:optional true} :string] + [:oidc-token-uri {:optional true} :string] + [:oidc-auth-uri {:optional true} :string] + [:oidc-user-uri {:optional true} :string] + [:oidc-jwks-uri {:optional true} :string] + [:oidc-scopes {:optional true} [::sm/set :string]] + [:oidc-roles {:optional true} [::sm/set :string]] + [:oidc-roles-attr {:optional true} :string] + [:oidc-email-attr {:optional true} :string] + [:oidc-name-attr {:optional true} :string] -(s/def ::config - (s/keys :opt-un [::secret-key - ::flags - ::admins - ::deletion-delay - ::allow-demo-users - ::audit-log-archive-uri - ::audit-log-http-handler-concurrency - ::auth-token-cookie-name - ::auth-token-cookie-max-age - ::authenticated-cookie-domain - ::database-password - ::database-uri - ::database-username - ::database-readonly - ::database-min-pool-size - ::database-max-pool-size - ::default-blob-version - ::default-rpc-rlimit - ::email-domain-blacklist - ::email-domain-whitelist - ::error-report-webhook - ::default-executor-parallelism - ::scheduled-executor-parallelism - ::worker-default-parallelism - ::worker-webhook-parallelism - ::file-change-snapshot-every - ::file-change-snapshot-timeout - ::user-feedback-destination - ::github-client-id - ::github-client-secret - ::gitlab-base-uri - ::gitlab-client-id - ::gitlab-client-secret - ::google-client-id - ::google-client-secret - ::oidc-client-id - ::oidc-client-secret - ::oidc-user-info-source - ::oidc-base-uri - ::oidc-token-uri - ::oidc-auth-uri - ::oidc-user-uri - ::oidc-jwks-uri - ::oidc-scopes - ::oidc-roles-attr - ::oidc-email-attr - ::oidc-name-attr - ::oidc-roles - ::host - ::http-server-host - ::http-server-port - ::http-server-max-body-size - ::http-server-max-multipart-body-size - ::http-server-io-threads - ::http-server-worker-threads - ::ldap-attrs-email - ::ldap-attrs-fullname - ::ldap-attrs-username - ::ldap-base-dn - ::ldap-bind-dn - ::ldap-bind-password - ::ldap-host - ::ldap-port - ::ldap-ssl - ::ldap-starttls - ::ldap-user-query - ::local-assets-uri - ::media-max-file-size - ::profile-bounce-max-age - ::profile-bounce-threshold - ::profile-complaint-max-age - ::profile-complaint-threshold - ::public-uri + [:ldap-attrs-email {:optional true} :string] + [:ldap-attrs-fullname {:optional true} :string] + [:ldap-attrs-username {:optional true} :string] + [:ldap-base-dn {:optional true} :string] + [:ldap-bind-dn {:optional true} :string] + [:ldap-bind-password {:optional true} :string] + [:ldap-host {:optional true} :string] + [:ldap-port {:optional true} :int] + [:ldap-ssl {:optional true} :boolean] + [:ldap-starttls {:optional true} :boolean] + [:ldap-user-query {:optional true} :string] - ::quotes-teams-per-profile - ::quotes-access-tokens-per-profile - ::quotes-projects-per-team - ::quotes-invitations-per-team - ::quotes-profiles-per-team - ::quotes-files-per-project - ::quotes-files-per-team - ::quotes-font-variants-per-team - ::quotes-comment-threads-per-file - ::quotes-comments-per-file + [:profile-bounce-max-age {:optional true} ::dt/duration] + [:profile-bounce-threshold {:optional true} :int] + [:profile-complaint-max-age {:optional true} ::dt/duration] + [:profile-complaint-threshold {:optional true} :int] - ::redis-uri - ::registration-domain-whitelist - ::rpc-rlimit-config - ::rpc-climit-config + [:redis-uri {:optional true} :string] - ::semaphore-process-font - ::semaphore-process-image - ::semaphore-update-file - ::semaphore-auth + [:email-domain-blacklist {:optional true} ::fs/path] + [:email-domain-whitelist {:optional true} ::fs/path] - ::smtp-default-from - ::smtp-default-reply-to - ::smtp-host - ::smtp-password - ::smtp-port - ::smtp-ssl - ::smtp-tls - ::smtp-username + [:smtp-default-from {:optional true} :string] + [:smtp-default-reply-to {:optional true} :string] + [:smtp-host {:optional true} :string] + [:smtp-password {:optional true} [:maybe :string]] + [:smtp-port {:optional true} :int] + [:smtp-ssl {:optional true} :boolean] + [:smtp-tls {:optional true} :boolean] + [:smtp-username {:optional true} [:maybe :string]] - ::urepl-host - ::urepl-port - ::prepl-host - ::prepl-port + [:urepl-host {:optional true} :string] + [:urepl-port {:optional true} :int] + [:prepl-host {:optional true} :string] + [:prepl-port {:optional true} :int] - ::assets-storage-backend - ::storage-assets-fs-directory - ::storage-assets-s3-bucket - ::storage-assets-s3-region - ::storage-assets-s3-endpoint - ::storage-assets-s3-io-threads - ::telemetry-enabled - ::telemetry-uri - ::telemetry-referer - ::telemetry-with-taiga - ::tenant - ::email-verify-threshold])) + [:assets-storage-backend {:optional true} :keyword] + [:media-directory {:optional true} :string] ;; REVIEW + [:media-uri {:optional true} :string] + [:assets-path {:optional true} :string] + + [:storage-assets-fs-directory {:optional true} :string] + [:storage-assets-s3-bucket {:optional true} :string] + [:storage-assets-s3-region {:optional true} :keyword] + [:storage-assets-s3-endpoint {:optional true} :string] + [:storage-assets-s3-io-threads {:optional true} :int]])) (def default-flags [:enable-backend-api-doc @@ -367,20 +242,22 @@ {} env))) -(defn- read-config - [] - (try - (->> (read-env "penpot") - (merge defaults) - (us/conform ::config)) - (catch Throwable e - (when (ex/error? e) - (println ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;") - (println "Error on validating configuration:") - (println (some-> e ex-data ex/explain)) - (println (ex/explain (ex-data e))) - (println ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;")) - (throw e)))) +(def decode-config + (sm/decoder schema:config sm/default-transformer)) + +(def validate-config + (sm/validator schema:config)) + +(def explain-config + (sm/explainer schema:config)) + +(defn read-config + "Reads the configuration from enviroment variables and decodes all + known values." + [& {:keys [prefix default] :or {prefix "penpot"}}] + (->> (read-env prefix) + (merge default) + (decode-config))) (def version (v/parse (or (some-> (io/resource "version.txt") @@ -388,10 +265,28 @@ (str/trim)) "%version%"))) -(defonce ^:dynamic config (read-config)) +(defonce ^:dynamic config (read-config :default default)) (defonce ^:dynamic flags (parse-flags config)) -(def deletion-delay +(defn validate! + "Validate the currently loaded configuration data." + [& {:keys [exit-on-error?] :or {exit-on-error? true}}] + (if (validate-config config) + true + (let [explain (explain-config config)] + (println "Error on validating configuration:") + (sm/pretty-explain explain + :variant ::sm/schemaless-explain + :message "Configuration Validation Error") + (flush) + (if exit-on-error? + (System/exit -1) + (ex/raise :type :validation + :code :config-validaton + ::sm/explain explain))))) + +(defn get-deletion-delay + [] (or (c/get config :deletion-delay) (dt/duration {:days 7}))) diff --git a/backend/src/app/email.clj b/backend/src/app/email.clj index 0f7e356b69..8339e889b9 100644 --- a/backend/src/app/email.clj +++ b/backend/src/app/email.clj @@ -7,9 +7,11 @@ (ns app.email "Main api for send emails." (:require + [app.common.data.macros :as dm] [app.common.exceptions :as ex] [app.common.logging :as l] [app.common.pprint :as pp] + [app.common.schema :as sm] [app.common.spec :as us] [app.config :as cf] [app.db :as db] @@ -149,9 +151,27 @@ "mail.smtp.timeout" timeout "mail.smtp.connectiontimeout" timeout})) +(def ^:private schema:smtp-config + [:map + [::username {:optional true} :string] + [::password {:optional true} :string] + [::tls {:optional true} :boolean] + [::ssl {:optional true} :boolean] + [::host {:optional true} :string] + [::port {:optional true} :int] + [::default-from {:optional true} :string] + [::default-reply-to {:optional true} :string]]) + +(def valid-smtp-config? + (sm/check-fn schema:smtp-config)) + (defn- create-smtp-session ^Session [cfg] + (dm/assert! + "expected valid smtp config" + (valid-smtp-config? cfg)) + (let [props (opts->props cfg)] (Session/getInstance props))) @@ -273,32 +293,10 @@ ;; SENDMAIL FN / TASK HANDLER ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -(s/def ::username ::cf/smtp-username) -(s/def ::password ::cf/smtp-password) -(s/def ::tls ::cf/smtp-tls) -(s/def ::ssl ::cf/smtp-ssl) -(s/def ::host ::cf/smtp-host) -(s/def ::port ::cf/smtp-port) -(s/def ::default-reply-to ::cf/smtp-default-reply-to) -(s/def ::default-from ::cf/smtp-default-from) - -(s/def ::smtp-config - (s/keys :opt [::username - ::password - ::tls - ::ssl - ::host - ::port - ::default-from - ::default-reply-to])) - (declare send-to-logger!) (s/def ::sendmail fn?) -(defmethod ig/pre-init-spec ::sendmail [_] - (s/spec ::smtp-config)) - (defmethod ig/init-key ::sendmail [_ cfg] (fn [params] diff --git a/backend/src/app/main.clj b/backend/src/app/main.clj index f9797521d0..171efdc175 100644 --- a/backend/src/app/main.clj +++ b/backend/src/app/main.clj @@ -524,6 +524,7 @@ (defn start [] + (cf/validate!) (ig/load-namespaces (merge system-config worker-config)) (alter-var-root #'system (fn [sys] (when sys (ig/halt! sys)) diff --git a/backend/src/app/media.clj b/backend/src/app/media.clj index 0182955468..9e1a120feb 100644 --- a/backend/src/app/media.clj +++ b/backend/src/app/media.clj @@ -11,7 +11,6 @@ [app.common.exceptions :as ex] [app.common.media :as cm] [app.common.schema :as sm] - [app.common.schema.generators :as sg] [app.common.schema.openapi :as-alias oapi] [app.common.spec :as us] [app.common.svg :as csvg] @@ -47,18 +46,6 @@ (s/keys :req-un [::path] :opt-un [::mtype])) -(sm/register! ::fs/path - {:type ::fs/path - :pred fs/path? - :type-properties - {:title "path" - :description "filesystem path" - :error/message "expected a valid fs path instance" - :gen/gen (sg/generator :string) - ::oapi/type "string" - ::oapi/format "unix-path" - ::oapi/decode fs/path}}) - (sm/register! ::upload [:map {:title "Upload"} [:filename :string] diff --git a/backend/src/app/rpc/commands/demo.clj b/backend/src/app/rpc/commands/demo.clj index 213f6abeca..059548f229 100644 --- a/backend/src/app/rpc/commands/demo.clj +++ b/backend/src/app/rpc/commands/demo.clj @@ -45,7 +45,7 @@ params {:email email :fullname fullname :is-active true - :deleted-at (dt/in-future cf/deletion-delay) + :deleted-at (dt/in-future (cf/get-deletion-delay)) :password (profile/derive-password cfg password) :props {}}] diff --git a/backend/src/app/tasks/file_gc.clj b/backend/src/app/tasks/file_gc.clj index 8a2db9c57e..5430b0c988 100644 --- a/backend/src/app/tasks/file_gc.clj +++ b/backend/src/app/tasks/file_gc.clj @@ -295,7 +295,7 @@ (defmethod ig/prep-key ::handler [_ cfg] - (assoc cfg ::min-age cf/deletion-delay)) + (assoc cfg ::min-age (cf/get-deletion-delay))) (defmethod ig/init-key ::handler [_ cfg] diff --git a/backend/src/app/tasks/objects_gc.clj b/backend/src/app/tasks/objects_gc.clj index 0cfd66a61a..9858585cce 100644 --- a/backend/src/app/tasks/objects_gc.clj +++ b/backend/src/app/tasks/objects_gc.clj @@ -292,7 +292,7 @@ (defmethod ig/prep-key ::handler [_ cfg] (assoc cfg - ::min-age cf/deletion-delay + ::min-age (cf/get-deletion-delay) ::chunk-size 10)) (defmethod ig/init-key ::handler diff --git a/backend/src/app/tasks/tasks_gc.clj b/backend/src/app/tasks/tasks_gc.clj index cd69827995..0e93ea0d0a 100644 --- a/backend/src/app/tasks/tasks_gc.clj +++ b/backend/src/app/tasks/tasks_gc.clj @@ -23,7 +23,7 @@ (defmethod ig/prep-key ::handler [_ cfg] - (assoc cfg ::min-age cf/deletion-delay)) + (assoc cfg ::min-age (cf/get-deletion-delay))) (defmethod ig/init-key ::handler [_ {:keys [::db/pool ::min-age] :as cfg}] diff --git a/backend/src/app/util/overrides.clj b/backend/src/app/util/overrides.clj new file mode 100644 index 0000000000..8f88427182 --- /dev/null +++ b/backend/src/app/util/overrides.clj @@ -0,0 +1,41 @@ +;; This Source Code Form is subject to the terms of the Mozilla Public +;; License, v. 2.0. If a copy of the MPL was not distributed with this +;; file, You can obtain one at http://mozilla.org/MPL/2.0/. +;; +;; Copyright (c) KALEIDOS INC + +(ns app.util.overrides + "A utility ns for declare default overrides over clojure runtime" + (:require + [app.common.schema :as sm] + [app.common.schema.generators :as sg] + [app.common.schema.openapi :as-alias oapi] + [clojure.pprint :as pprint] + [datoteka.fs :as fs])) + + +(prefer-method print-method + clojure.lang.IRecord + clojure.lang.IDeref) + +(prefer-method print-method + clojure.lang.IPersistentMap + clojure.lang.IDeref) + +(prefer-method pprint/simple-dispatch + clojure.lang.IPersistentMap + clojure.lang.IDeref) + + +(sm/register! ::fs/path + {:type ::fs/path + :pred fs/path? + :type-properties + {:title "path" + :description "filesystem path" + :error/message "expected a valid fs path instance" + :error/code "errors.invalid-path" + :gen/gen (sg/generator :string) + ::oapi/type "string" + ::oapi/format "unix-path" + ::oapi/decode fs/path}}) diff --git a/backend/test/backend_tests/helpers.clj b/backend/test/backend_tests/helpers.clj index 5dc4f24d7c..3b862d6dd0 100644 --- a/backend/test/backend_tests/helpers.clj +++ b/backend/test/backend_tests/helpers.clj @@ -58,15 +58,14 @@ (def ^:dynamic *system* nil) (def ^:dynamic *pool* nil) -(def defaults +(def default {:database-uri "postgresql://postgres/penpot_test" :redis-uri "redis://redis/1" :file-change-snapshot-every 1}) (def config - (->> (cf/read-env "penpot-test") - (merge cf/defaults defaults) - (us/conform ::cf/config))) + (cf/read-config :prefix "penpot-test" + :default (merge cf/default default))) (def default-flags [:enable-secure-session-cookies @@ -88,6 +87,8 @@ app.auth/verify-password (fn [a b] {:valid (= a b)}) app.common.features/get-enabled-features (fn [& _] app.common.features/supported-features)] + (cf/validate! :exit-on-error? false) + (fs/create-dir "/tmp/penpot") (let [templates [{:id "test" @@ -524,7 +525,6 @@ ([key default] (get data key (get cf/config key default))))) - (defn reset-mock! [m] (swap! m (fn [m] diff --git a/backend/test/backend_tests/rpc_file_test.clj b/backend/test/backend_tests/rpc_file_test.clj index 35d76231ff..d282138797 100644 --- a/backend/test/backend_tests/rpc_file_test.clj +++ b/backend/test/backend_tests/rpc_file_test.clj @@ -1127,9 +1127,9 @@ (t/is (= 1 (:processed res)))) ;; check that object thumbnails are still here - (let [res (th/db-exec! ["select * from file_tagged_object_thumbnail"])] - ;; (th/print-result! res) - (t/is (= 1 (count res)))) + (let [rows (th/db-query :file-tagged-object-thumbnail {:file-id (:id file)})] + ;; (app.common.pprint/pprint rows) + (t/is (= 1 (count rows)))) ;; insert object snapshot for for unknown frame (let [data {::th/type :create-file-object-thumbnail @@ -1148,13 +1148,20 @@ (th/db-exec! ["update file set has_media_trimmed=false where id=?" (:id file)]) ;; check that we have all object thumbnails - (let [res (th/db-exec! ["select * from file_tagged_object_thumbnail"])] - (t/is (= 2 (count res)))) + (let [rows (th/db-query :file-tagged-object-thumbnail {:file-id (:id file)})] + ;; (app.common.pprint/pprint rows) + (t/is (= 2 (count rows)))) ;; run the task again (let [res (th/run-task! :file-gc {:min-age 0})] (t/is (= 1 (:processed res)))) + ;; check that we have all object thumbnails + (let [rows (th/db-query :file-tagged-object-thumbnail {:file-id (:id file)})] + ;; (app.common.pprint/pprint rows) + (t/is (= 2 (count rows)))) + + ;; check that the unknown frame thumbnail is deleted (let [rows (th/db-query :file-tagged-object-thumbnail {:file-id (:id file)})] (t/is (= 2 (count rows))) @@ -1164,6 +1171,7 @@ (t/is (= 3 (:processed res)))) (let [rows (th/db-query :file-tagged-object-thumbnail {:file-id (:id file)})] + ;; (app.common.pprint/pprint rows) (t/is (= 1 (count rows))))))) (t/deftest file-thumbnail-ops @@ -1220,7 +1228,3 @@ (let [rows (th/db-query :file-thumbnail {:file-id (:id file)})] (t/is (= 1 (count rows))))))) - - - - diff --git a/common/src/app/common/schema.cljc b/common/src/app/common/schema.cljc index fc41156ca1..570cfa0624 100644 --- a/common/src/app/common/schema.cljc +++ b/common/src/app/common/schema.cljc @@ -219,12 +219,10 @@ :length (d/nilv length 12)}))))) (defmethod v/-format ::schemaless-explain - [_ {:keys [schema] :as explanation} printer] + [_ explanation printer] {:body [:group (v/-block "Value" (v/-visit (me/error-value explanation printer) printer) printer) :break :break - (v/-block "Errors" (v/-visit (me/humanize (me/with-spell-checking explanation)) printer) printer) :break :break - (v/-block "Schema" (v/-visit schema printer) printer)]}) - + (v/-block "Errors" (v/-visit (me/humanize (me/with-spell-checking explanation)) printer) printer)]}) (defmethod v/-format ::explain [_ {:keys [schema] :as explanation} printer] @@ -233,7 +231,6 @@ (v/-block "Errors" (v/-visit (me/humanize (me/with-spell-checking explanation)) printer) printer) :break :break (v/-block "Schema" (v/-visit schema printer) printer)]}) - (defn pretty-explain [explain & {:keys [variant message] :or {variant ::explain From 9d3a282c0a62b96b72d23b35df5c3f0f94189f8f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bel=C3=A9n=20Albeza?= Date: Wed, 10 Jul 2024 14:09:49 +0200 Subject: [PATCH 385/476] :paperclip: Move typography-related components to their own folder --- frontend/src/app/main/ui/ds.cljs | 4 +- .../ui/ds/foundations/typography.stories.jsx | 137 ------------------ .../foundations/{ => typography}/heading.cljs | 3 +- .../foundations/{ => typography}/heading.mdx | 6 +- .../foundations/{ => typography}/heading.scss | 2 +- .../{ => typography}/heading.stories.jsx | 4 +- .../ds/foundations/{ => typography}/text.cljs | 2 +- .../ds/foundations/{ => typography}/text.mdx | 6 +- .../ds/foundations/{ => typography}/text.scss | 2 +- .../{ => typography}/text.stories.jsx | 4 +- .../{ => typography}/typography.mdx | 29 ++-- 11 files changed, 32 insertions(+), 167 deletions(-) delete mode 100644 frontend/src/app/main/ui/ds/foundations/typography.stories.jsx rename frontend/src/app/main/ui/ds/foundations/{ => typography}/heading.cljs (97%) rename frontend/src/app/main/ui/ds/foundations/{ => typography}/heading.mdx (88%) rename frontend/src/app/main/ui/ds/foundations/{ => typography}/heading.scss (96%) rename frontend/src/app/main/ui/ds/foundations/{ => typography}/heading.stories.jsx (90%) rename frontend/src/app/main/ui/ds/foundations/{ => typography}/text.cljs (97%) rename frontend/src/app/main/ui/ds/foundations/{ => typography}/text.mdx (90%) rename frontend/src/app/main/ui/ds/foundations/{ => typography}/text.scss (96%) rename frontend/src/app/main/ui/ds/foundations/{ => typography}/text.stories.jsx (90%) rename frontend/src/app/main/ui/ds/foundations/{ => typography}/typography.mdx (73%) diff --git a/frontend/src/app/main/ui/ds.cljs b/frontend/src/app/main/ui/ds.cljs index 14fde3f515..6143d4eb42 100644 --- a/frontend/src/app/main/ui/ds.cljs +++ b/frontend/src/app/main/ui/ds.cljs @@ -6,11 +6,11 @@ (ns app.main.ui.ds (:require - [app.main.ui.ds.foundations.heading :refer [heading*]] [app.main.ui.ds.foundations.icon :refer [icon* icon-list]] [app.main.ui.ds.foundations.raw-svg :refer [raw-svg* raw-svg-list]] - [app.main.ui.ds.foundations.text :refer [text*]] [app.main.ui.ds.foundations.typography :refer [typography-list]] + [app.main.ui.ds.foundations.typography.heading :refer [heading*]] + [app.main.ui.ds.foundations.typography.text :refer [text*]] [app.main.ui.ds.storybook :as sb])) (def default diff --git a/frontend/src/app/main/ui/ds/foundations/typography.stories.jsx b/frontend/src/app/main/ui/ds/foundations/typography.stories.jsx deleted file mode 100644 index 615d3729eb..0000000000 --- a/frontend/src/app/main/ui/ds/foundations/typography.stories.jsx +++ /dev/null @@ -1,137 +0,0 @@ -import * as React from "react"; -import Components from "@target/components"; - -const { Heading } = Components; -const { StoryWrapper, StoryHeader, StoryGridRow } = Components.storybook; - -const typographyList = { - display: { - name: "Display", - id: "display", - size: "36px", - weight: "400", - line: "1.4", - uppercase: false, - font: "Work Sans", - }, - titleLarge: { - name: "Title large", - id: "title-large", - size: "24px", - weight: "400", - line: "1.4", - uppercase: false, - font: "Work Sans", - }, - titleMedium: { - name: "Title medium", - id: "title-medium", - size: "20px", - weight: "400", - line: "1.4", - uppercase: false, - font: "Work Sans", - }, - titleSmall: { - name: "Title small", - id: "title-small", - size: "14px", - weight: "400", - line: "1.2", - uppercase: false, - font: "Work Sans", - }, - headlineLarge: { - name: "Headline large", - id: "headline-large", - size: "18px", - weight: "400", - line: "1.4", - uppercase: true, - font: "Work Sans", - }, - headlineMedium: { - name: "Headline medium", - id: "headline-medium", - size: "16px", - weight: "400", - line: "1.4", - uppercase: true, - font: "Work Sans", - }, - headlineSmall: { - name: "Headline small", - id: "headline-small", - size: "12px", - weight: "500", - line: "1.2", - uppercase: true, - font: "Work Sans", - }, - bodyLarge: { - name: "Body large", - id: "body-large", - size: "16px", - weight: "400", - line: "1.4", - uppercase: false, - font: "Work Sans", - }, - bodyMedium: { - name: "Body medium", - id: "body-medium", - size: "14px", - weight: "400", - line: "1.3", - uppercase: false, - font: "Work Sans", - }, - bodySmall: { - name: "Body small", - id: "body-small", - size: "12px", - weight: "400", - line: "1.3", - uppercase: false, - font: "Work Sans", - }, - codeFont: { - name: "Code font", - id: "code-font", - size: "12px", - weight: "400", - line: "1.2", - uppercase: false, - font: "Roboto Mono", - }, -}; - -export const typographyIds = Object.values(typographyList).map(x => x.id); - -export default { - title: "Foundations/Typography", - component: Components.StoryHeader, -}; - -export const AllTypography = { - render: () => ( - - -

All Typography

-

Hover on a heading to see its ID

-
- {Object.values(typographyList).map( - ({ id, name, size, weight, line, font }) => ( - - - {name} - {weight} - {size}/{line} {font} - - - ), - )} -
- ), - parameters: { - backgrounds: { disable: true }, - }, -}; diff --git a/frontend/src/app/main/ui/ds/foundations/heading.cljs b/frontend/src/app/main/ui/ds/foundations/typography/heading.cljs similarity index 97% rename from frontend/src/app/main/ui/ds/foundations/heading.cljs rename to frontend/src/app/main/ui/ds/foundations/typography/heading.cljs index 59c8e3dde4..374ae545f5 100644 --- a/frontend/src/app/main/ui/ds/foundations/heading.cljs +++ b/frontend/src/app/main/ui/ds/foundations/typography/heading.cljs @@ -4,7 +4,7 @@ ;; ;; Copyright (c) KALEIDOS INC -(ns app.main.ui.ds.foundations.heading +(ns app.main.ui.ds.foundations.typography.heading (:require-macros [app.common.data.macros :as dm] [app.main.style :as stl]) @@ -25,7 +25,6 @@ (assert (or (valid-level? level) (nil? level)) (dm/str "Invalid level: " level ". Valid numbers are 1 to 6.")) - (assert (valid-typography? (dm/str typography)) (dm/str typography " is an unknown typography")) diff --git a/frontend/src/app/main/ui/ds/foundations/heading.mdx b/frontend/src/app/main/ui/ds/foundations/typography/heading.mdx similarity index 88% rename from frontend/src/app/main/ui/ds/foundations/heading.mdx rename to frontend/src/app/main/ui/ds/foundations/typography/heading.mdx index 52e3bb1204..ffda6ede40 100644 --- a/frontend/src/app/main/ui/ds/foundations/heading.mdx +++ b/frontend/src/app/main/ui/ds/foundations/typography/heading.mdx @@ -11,7 +11,7 @@ This component will add a heading tag element to our code. This components accepts to props: -- `level` (default value: `1`) : A number from `1` to `6`, to set the heading level (i.e. `

`, `

`, etc.). +- `level` (default value: `1`) : A number from `1` to `6`, to set the heading level (i.e. `

`, `

`, etc.). - `typography` (mandatory): Any of the [supported typography IDs](?path=/docs/foundations-typography--docs). You can check passed props to renderized components on hover `level / typography`; @@ -28,8 +28,8 @@ Assuming the namespace of the typography is required as `t`: ```clj (ns app.main.ui.foo (:require - [app.main.ui.ds.foundations.heading :refer [heading*]] - [app.main.ui.ds.foundations.typography :as t])) + [app.main.ui.ds.foundations.typography :as t] + [app.main.ui.ds.foundations.typography.heading :refer [heading*]])) ``` You can now use the typography IDs defined in the namespace: diff --git a/frontend/src/app/main/ui/ds/foundations/heading.scss b/frontend/src/app/main/ui/ds/foundations/typography/heading.scss similarity index 96% rename from frontend/src/app/main/ui/ds/foundations/heading.scss rename to frontend/src/app/main/ui/ds/foundations/typography/heading.scss index 1cd69b7bcb..67c16bd367 100644 --- a/frontend/src/app/main/ui/ds/foundations/heading.scss +++ b/frontend/src/app/main/ui/ds/foundations/typography/heading.scss @@ -3,7 +3,7 @@ // file, You can obtain one at http://mozilla.org/MPL/2.0/. // // Copyright (c) KALEIDOS INC -@use "../typography.scss" as t; +@use "../../typography.scss" as t; .display-typography { @include t.use-typography("display"); diff --git a/frontend/src/app/main/ui/ds/foundations/heading.stories.jsx b/frontend/src/app/main/ui/ds/foundations/typography/heading.stories.jsx similarity index 90% rename from frontend/src/app/main/ui/ds/foundations/heading.stories.jsx rename to frontend/src/app/main/ui/ds/foundations/typography/heading.stories.jsx index 67cdb3a98c..28336b90fa 100644 --- a/frontend/src/app/main/ui/ds/foundations/heading.stories.jsx +++ b/frontend/src/app/main/ui/ds/foundations/typography/heading.stories.jsx @@ -1,9 +1,11 @@ import * as React from "react"; import Components from "@target/components"; -import { typographyIds } from "./typography.stories"; const { Heading } = Components; const { StoryWrapper } = Components.storybook; +const { typography } = Components.meta; + +const typographyIds = typography.sort(); export default { title: "Foundations/Typography/Heading", diff --git a/frontend/src/app/main/ui/ds/foundations/text.cljs b/frontend/src/app/main/ui/ds/foundations/typography/text.cljs similarity index 97% rename from frontend/src/app/main/ui/ds/foundations/text.cljs rename to frontend/src/app/main/ui/ds/foundations/typography/text.cljs index 0372a0b0f3..e5e24907cd 100644 --- a/frontend/src/app/main/ui/ds/foundations/text.cljs +++ b/frontend/src/app/main/ui/ds/foundations/typography/text.cljs @@ -4,7 +4,7 @@ ;; ;; Copyright (c) KALEIDOS INC -(ns app.main.ui.ds.foundations.text +(ns app.main.ui.ds.foundations.typography.text (:require-macros [app.common.data.macros :as dm] [app.main.style :as stl]) diff --git a/frontend/src/app/main/ui/ds/foundations/text.mdx b/frontend/src/app/main/ui/ds/foundations/typography/text.mdx similarity index 90% rename from frontend/src/app/main/ui/ds/foundations/text.mdx rename to frontend/src/app/main/ui/ds/foundations/typography/text.mdx index 0f526cf271..76c61a6256 100644 --- a/frontend/src/app/main/ui/ds/foundations/text.mdx +++ b/frontend/src/app/main/ui/ds/foundations/typography/text.mdx @@ -10,7 +10,7 @@ This component will add a text element to our code that will match the tag prop. This components accepts to props: -- `tag` (default value: `p`) : Give a proper tag name (i.e. `p`, `span`, etc.). +- `tag` (default value: `p`) : Give a proper tag name (i.e. `p`, `span`, etc.). - `typography` (mandatory): Any of the [supported typography IDs](?path=/docs/foundations-typography--docs). You can check passed props to renderized components on hover `tag / typography` @@ -28,8 +28,8 @@ Assuming the namespace of the typography is required as `t`: ```clj (ns app.main.ui.foo (:require - [app.main.ui.ds.foundations.text :refer [text*]] - [app.main.ui.ds.foundations.typography :as t])) + [app.main.ui.ds.foundations.typography :as t] + [app.main.ui.ds.foundations.typography.text :refer [text*]])) ``` You can now use the typography IDs defined in the namespace: diff --git a/frontend/src/app/main/ui/ds/foundations/text.scss b/frontend/src/app/main/ui/ds/foundations/typography/text.scss similarity index 96% rename from frontend/src/app/main/ui/ds/foundations/text.scss rename to frontend/src/app/main/ui/ds/foundations/typography/text.scss index 1cd69b7bcb..67c16bd367 100644 --- a/frontend/src/app/main/ui/ds/foundations/text.scss +++ b/frontend/src/app/main/ui/ds/foundations/typography/text.scss @@ -3,7 +3,7 @@ // file, You can obtain one at http://mozilla.org/MPL/2.0/. // // Copyright (c) KALEIDOS INC -@use "../typography.scss" as t; +@use "../../typography.scss" as t; .display-typography { @include t.use-typography("display"); diff --git a/frontend/src/app/main/ui/ds/foundations/text.stories.jsx b/frontend/src/app/main/ui/ds/foundations/typography/text.stories.jsx similarity index 90% rename from frontend/src/app/main/ui/ds/foundations/text.stories.jsx rename to frontend/src/app/main/ui/ds/foundations/typography/text.stories.jsx index 271a099604..31cceaa5d3 100644 --- a/frontend/src/app/main/ui/ds/foundations/text.stories.jsx +++ b/frontend/src/app/main/ui/ds/foundations/typography/text.stories.jsx @@ -1,9 +1,11 @@ import * as React from "react"; import Components from "@target/components"; -import { typographyIds } from "./typography.stories"; const { Text } = Components; const { StoryWrapper } = Components.storybook; +const { typography } = Components.meta; + +const typographyIds = typography.sort(); export default { title: "Foundations/Typography/Text", diff --git a/frontend/src/app/main/ui/ds/foundations/typography.mdx b/frontend/src/app/main/ui/ds/foundations/typography/typography.mdx similarity index 73% rename from frontend/src/app/main/ui/ds/foundations/typography.mdx rename to frontend/src/app/main/ui/ds/foundations/typography/typography.mdx index e36d292711..a3fae5d150 100644 --- a/frontend/src/app/main/ui/ds/foundations/typography.mdx +++ b/frontend/src/app/main/ui/ds/foundations/typography/typography.mdx @@ -1,8 +1,7 @@ -import { Canvas, Meta, Story } from "@storybook/blocks"; -import * as TypographyStories from "./typography.stories"; +import { Canvas, Meta } from "@storybook/blocks"; import Components from "@target/components"; - + # Typography @@ -19,7 +18,7 @@ This situation is something to be corrected in future improvements. Typographic colours are used in text elements such as headers and body and in the various components that make up the tool... -The colours used in typography are the Foreground colours such +The colours used in typography are the Foreground colours such `--color-foreground-primary` or `--color-foreground-secondary` but different colours can be applied in specific component applications with their own styles, such as buttons. @@ -55,7 +54,7 @@ for exceptions based on the size of the components. Hero style text for transitional pages (Login). If too large use large title in narrow windows. - Display - 400 - 36px/1.4 "Work Sans" + Display - 400 - 36px/1.4 "Work Sans" ### Title large `title-large` @@ -64,7 +63,7 @@ Page headers for main pages (dashboard, Profiles...). If too big use title (medium) in narrow windows. - Title large - 400 - 24px/1.4 "Work Sans" + Title large - 400 - 24px/1.4 "Work Sans" ### Title medium `title-medium` @@ -73,7 +72,7 @@ Default page title. Equivalent line height of 32px matches the height of buttons and other medium controls. Ideal for page header layout. - Title medium - 400 - 20px/1.4 "Work Sans" + Title medium - 400 - 20px/1.4 "Work Sans" ### Title small `title-small` @@ -81,7 +80,7 @@ of buttons and other medium controls. Ideal for page header layout. Uses the same size as body (large). - Title small - 400 - 14px/1.2 "Work Sans" + Title small - 400 - 14px/1.2 "Work Sans" ## Headline @@ -92,20 +91,20 @@ page titles (automated action titles, for example). Same line height as title (m ### Headline large `headline-large` - Headline large - 400 - 18px/1.4 "Work Sans" + Headline large - 400 - 18px/1.4 "Work Sans" ### Headline medium `headline-medium` - Headline medium - 400 - 16px/1.4 "Work Sans" + Headline medium - 400 - 16px/1.4 "Work Sans" ### Headline small `headline-small` - Headline small - 500 - 12px/1.2 "Work Sans" + Headline small - 500 - 12px/1.2 "Work Sans" ## Body @@ -115,7 +114,7 @@ page titles (automated action titles, for example). Same line height as title (m Generic content. - Body large - 400 - 16px/1.4 "Work Sans" + Body large - 400 - 16px/1.4 "Work Sans" ### Body medium `body-medium` @@ -123,7 +122,7 @@ Generic content. Default UI font. Most commonly used for body text. - Body medium - 400 - 14px/1.3 "Work Sans" + Body medium - 400 - 14px/1.3 "Work Sans" @@ -133,7 +132,7 @@ Small compact font with a line height of less than 16px. Use for single line scenarios, as the small size does not meet accessibility requirements. - Body small - 400 - 12px/1.3 "Work Sans" + Body small - 400 - 12px/1.3 "Work Sans" ## Code font `code-font` @@ -141,7 +140,7 @@ Use for single line scenarios, as the small size does not meet accessibility req Default style for rendering code blocks. - Code font - 400 - 12px/1.2 "Roboto Mono" + Code font - 400 - 12px/1.2 "Roboto Mono" ## Fonts From df858c2c7df639ed8cc84deae00c31e49aa5ce95 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bel=C3=A9n=20Albeza?= Date: Wed, 10 Jul 2024 15:42:19 +0200 Subject: [PATCH 386/476] :paperclip: Move icon and raw-svg components to a common subdir --- frontend/src/app/main/ui/ds.cljs | 4 ++-- frontend/src/app/main/ui/ds/foundations/{ => assets}/icon.clj | 2 +- .../src/app/main/ui/ds/foundations/{ => assets}/icon.cljs | 4 ++-- frontend/src/app/main/ui/ds/foundations/{ => assets}/icon.mdx | 2 +- .../src/app/main/ui/ds/foundations/{ => assets}/icon.scss | 0 .../app/main/ui/ds/foundations/{ => assets}/icon.stories.jsx | 0 .../src/app/main/ui/ds/foundations/{ => assets}/raw_svg.clj | 2 +- .../src/app/main/ui/ds/foundations/{ => assets}/raw_svg.cljs | 4 ++-- .../src/app/main/ui/ds/foundations/{ => assets}/raw_svg.mdx | 2 +- .../main/ui/ds/foundations/{ => assets}/raw_svg.stories.jsx | 0 frontend/src/app/main/ui/ds/foundations/typography.cljs | 1 - 11 files changed, 10 insertions(+), 11 deletions(-) rename frontend/src/app/main/ui/ds/foundations/{ => assets}/icon.clj (93%) rename frontend/src/app/main/ui/ds/foundations/{ => assets}/icon.cljs (99%) rename frontend/src/app/main/ui/ds/foundations/{ => assets}/icon.mdx (98%) rename frontend/src/app/main/ui/ds/foundations/{ => assets}/icon.scss (100%) rename frontend/src/app/main/ui/ds/foundations/{ => assets}/icon.stories.jsx (100%) rename frontend/src/app/main/ui/ds/foundations/{ => assets}/raw_svg.clj (93%) rename frontend/src/app/main/ui/ds/foundations/{ => assets}/raw_svg.cljs (90%) rename frontend/src/app/main/ui/ds/foundations/{ => assets}/raw_svg.mdx (91%) rename frontend/src/app/main/ui/ds/foundations/{ => assets}/raw_svg.stories.jsx (100%) diff --git a/frontend/src/app/main/ui/ds.cljs b/frontend/src/app/main/ui/ds.cljs index 6143d4eb42..150048e7a2 100644 --- a/frontend/src/app/main/ui/ds.cljs +++ b/frontend/src/app/main/ui/ds.cljs @@ -6,8 +6,8 @@ (ns app.main.ui.ds (:require - [app.main.ui.ds.foundations.icon :refer [icon* icon-list]] - [app.main.ui.ds.foundations.raw-svg :refer [raw-svg* raw-svg-list]] + [app.main.ui.ds.foundations.assets.icon :refer [icon* icon-list]] + [app.main.ui.ds.foundations.assets.raw-svg :refer [raw-svg* raw-svg-list]] [app.main.ui.ds.foundations.typography :refer [typography-list]] [app.main.ui.ds.foundations.typography.heading :refer [heading*]] [app.main.ui.ds.foundations.typography.text :refer [text*]] diff --git a/frontend/src/app/main/ui/ds/foundations/icon.clj b/frontend/src/app/main/ui/ds/foundations/assets/icon.clj similarity index 93% rename from frontend/src/app/main/ui/ds/foundations/icon.clj rename to frontend/src/app/main/ui/ds/foundations/assets/icon.clj index 4f721c6d04..e51c10d357 100644 --- a/frontend/src/app/main/ui/ds/foundations/icon.clj +++ b/frontend/src/app/main/ui/ds/foundations/assets/icon.clj @@ -4,7 +4,7 @@ ;; ;; Copyright (c) KALEIDOS INC -(ns app.main.ui.ds.foundations.icon +(ns app.main.ui.ds.foundations.assets.icon (:require [clojure.core :as c] [cuerdas.core :as str] diff --git a/frontend/src/app/main/ui/ds/foundations/icon.cljs b/frontend/src/app/main/ui/ds/foundations/assets/icon.cljs similarity index 99% rename from frontend/src/app/main/ui/ds/foundations/icon.cljs rename to frontend/src/app/main/ui/ds/foundations/assets/icon.cljs index f9aa7b4023..fb901789ce 100644 --- a/frontend/src/app/main/ui/ds/foundations/icon.cljs +++ b/frontend/src/app/main/ui/ds/foundations/assets/icon.cljs @@ -4,12 +4,12 @@ ;; ;; Copyright (c) KALEIDOS INC -(ns app.main.ui.ds.foundations.icon +(ns app.main.ui.ds.foundations.assets.icon (:refer-clojure :exclude [mask]) (:require-macros [app.common.data.macros :as dm] [app.main.style :as stl] - [app.main.ui.ds.foundations.icon :refer [collect-icons]]) + [app.main.ui.ds.foundations.assets.icon :refer [collect-icons]]) (:require [rumext.v2 :as mf])) diff --git a/frontend/src/app/main/ui/ds/foundations/icon.mdx b/frontend/src/app/main/ui/ds/foundations/assets/icon.mdx similarity index 98% rename from frontend/src/app/main/ui/ds/foundations/icon.mdx rename to frontend/src/app/main/ui/ds/foundations/assets/icon.mdx index d83361d79d..fc36208dc6 100644 --- a/frontend/src/app/main/ui/ds/foundations/icon.mdx +++ b/frontend/src/app/main/ui/ds/foundations/assets/icon.mdx @@ -41,7 +41,7 @@ Assuming the namespace is required as `i`: ```clj (ns app.main.ui.foo (:require - [app.main.ui.ds.foundations.icon :as i])) + [app.main.ui.ds.foundations.assets.icon :as i])) ``` You can now use the icon IDs defined in the namespace: diff --git a/frontend/src/app/main/ui/ds/foundations/icon.scss b/frontend/src/app/main/ui/ds/foundations/assets/icon.scss similarity index 100% rename from frontend/src/app/main/ui/ds/foundations/icon.scss rename to frontend/src/app/main/ui/ds/foundations/assets/icon.scss diff --git a/frontend/src/app/main/ui/ds/foundations/icon.stories.jsx b/frontend/src/app/main/ui/ds/foundations/assets/icon.stories.jsx similarity index 100% rename from frontend/src/app/main/ui/ds/foundations/icon.stories.jsx rename to frontend/src/app/main/ui/ds/foundations/assets/icon.stories.jsx diff --git a/frontend/src/app/main/ui/ds/foundations/raw_svg.clj b/frontend/src/app/main/ui/ds/foundations/assets/raw_svg.clj similarity index 93% rename from frontend/src/app/main/ui/ds/foundations/raw_svg.clj rename to frontend/src/app/main/ui/ds/foundations/assets/raw_svg.clj index 2ba5104aeb..814702ef41 100644 --- a/frontend/src/app/main/ui/ds/foundations/raw_svg.clj +++ b/frontend/src/app/main/ui/ds/foundations/assets/raw_svg.clj @@ -4,7 +4,7 @@ ;; ;; Copyright (c) KALEIDOS INC -(ns app.main.ui.ds.foundations.raw-svg +(ns app.main.ui.ds.foundations.assets.raw-svg (:require [clojure.core :as c] [cuerdas.core :as str] diff --git a/frontend/src/app/main/ui/ds/foundations/raw_svg.cljs b/frontend/src/app/main/ui/ds/foundations/assets/raw_svg.cljs similarity index 90% rename from frontend/src/app/main/ui/ds/foundations/raw_svg.cljs rename to frontend/src/app/main/ui/ds/foundations/assets/raw_svg.cljs index c89201ace2..f6e09ad9f3 100644 --- a/frontend/src/app/main/ui/ds/foundations/raw_svg.cljs +++ b/frontend/src/app/main/ui/ds/foundations/assets/raw_svg.cljs @@ -4,11 +4,11 @@ ;; ;; Copyright (c) KALEIDOS INC -(ns app.main.ui.ds.foundations.raw-svg +(ns app.main.ui.ds.foundations.assets.raw-svg (:refer-clojure :exclude [mask]) (:require-macros [app.common.data.macros :as dm] - [app.main.ui.ds.foundations.raw-svg :refer [collect-raw-svgs]]) + [app.main.ui.ds.foundations.assets.raw-svg :refer [collect-raw-svgs]]) (:require [rumext.v2 :as mf])) diff --git a/frontend/src/app/main/ui/ds/foundations/raw_svg.mdx b/frontend/src/app/main/ui/ds/foundations/assets/raw_svg.mdx similarity index 91% rename from frontend/src/app/main/ui/ds/foundations/raw_svg.mdx rename to frontend/src/app/main/ui/ds/foundations/assets/raw_svg.mdx index c5eaed5075..fcd5e2c094 100644 --- a/frontend/src/app/main/ui/ds/foundations/raw_svg.mdx +++ b/frontend/src/app/main/ui/ds/foundations/assets/raw_svg.mdx @@ -20,7 +20,7 @@ For convenience, asset IDs are available in the component namespace. ```clj (ns app.main.ui.foo (:require - [app.main.ui.ds.foundations.raw-svg :as svg])) + [app.main.ui.ds.foundations.assets.raw-svg :as svg])) ``` ```clj diff --git a/frontend/src/app/main/ui/ds/foundations/raw_svg.stories.jsx b/frontend/src/app/main/ui/ds/foundations/assets/raw_svg.stories.jsx similarity index 100% rename from frontend/src/app/main/ui/ds/foundations/raw_svg.stories.jsx rename to frontend/src/app/main/ui/ds/foundations/assets/raw_svg.stories.jsx diff --git a/frontend/src/app/main/ui/ds/foundations/typography.cljs b/frontend/src/app/main/ui/ds/foundations/typography.cljs index 9fd00b2c53..f52b0c583c 100644 --- a/frontend/src/app/main/ui/ds/foundations/typography.cljs +++ b/frontend/src/app/main/ui/ds/foundations/typography.cljs @@ -18,7 +18,6 @@ (def ^:typography-id body-small "body-small") (def ^:typography-id code-font "code-font") - (def typography-list #{display title-large title-medium From d7ca4d49dc97c4caf63dca601d6f3c92f720d727 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bel=C3=A9n=20Albeza?= Date: Wed, 10 Jul 2024 15:53:27 +0200 Subject: [PATCH 387/476] :sparkles: Revamp icon stories --- .../ui/ds/foundations/assets/icon.stories.jsx | 41 ++++++++++++++----- 1 file changed, 31 insertions(+), 10 deletions(-) diff --git a/frontend/src/app/main/ui/ds/foundations/assets/icon.stories.jsx b/frontend/src/app/main/ui/ds/foundations/assets/icon.stories.jsx index 52bb1076c6..4735b1d1fe 100644 --- a/frontend/src/app/main/ui/ds/foundations/assets/icon.stories.jsx +++ b/frontend/src/app/main/ui/ds/foundations/assets/icon.stories.jsx @@ -6,15 +6,25 @@ const { StoryWrapper, StoryGrid, StoryGridCell, StoryHeader } = Components.storybook; const { icons } = Components.meta; -export default { - title: "Foundations/Icons", - component: Components.Icon, -}; - const iconList = Object.entries(icons) .map(([_, value]) => value) .sort(); +export default { + title: "Foundations/Assets/Icon", + component: Components.Icon, + argTypes: { + icon: { + options: iconList, + control: { type: "select" } + }, + size: { + options: ["m", "s"], + control: { type: "radio" } + } + } +}; + export const AllIcons = { render: () => ( @@ -41,17 +51,28 @@ export const AllIcons = { }; export const Default = { - render: () => ( + render: ({icon, ...args}) => ( - + ), + args: { + icon: "pin", + }, + parameters: { + controls: { exclude: "size" } + } }; -export const Small = { - render: () => ( +export const CustomSize = { + render: ({icon, size, ...args}) => ( - + ), + args: { + icon: "pin", + size: "m", + } }; + From 7e61acc4da1d2384477d8abdad0fae3860606c01 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bel=C3=A9n=20Albeza?= Date: Wed, 10 Jul 2024 15:56:32 +0200 Subject: [PATCH 388/476] :lipstick: Update icon prop name --- .../main/ui/ds/foundations/assets/icon.cljs | 4 +-- .../main/ui/ds/foundations/assets/icon.mdx | 6 ++-- .../ui/ds/foundations/assets/icon.stories.jsx | 28 +++++++++++-------- 3 files changed, 21 insertions(+), 17 deletions(-) diff --git a/frontend/src/app/main/ui/ds/foundations/assets/icon.cljs b/frontend/src/app/main/ui/ds/foundations/assets/icon.cljs index fb901789ce..d1578d4016 100644 --- a/frontend/src/app/main/ui/ds/foundations/assets/icon.cljs +++ b/frontend/src/app/main/ui/ds/foundations/assets/icon.cljs @@ -279,10 +279,10 @@ (mf/defc icon* {::mf/props :obj} - [{:keys [icon size class] :rest props}] + [{:keys [id size class] :rest props}] (let [class (dm/str (or class "") " " (stl/css :icon)) props (mf/spread-props props {:class class :width icon-size-m :height icon-size-m}) size-px (cond (= size "s") icon-size-s :else icon-size-m) offset (/ (- icon-size-m size-px) 2)] [:> "svg" props - [:use {:href (dm/str "#icon-" icon) :width size-px :height size-px :x offset :y offset}]])) + [:use {:href (dm/str "#icon-" id) :width size-px :height size-px :x offset :y offset}]])) diff --git a/frontend/src/app/main/ui/ds/foundations/assets/icon.mdx b/frontend/src/app/main/ui/ds/foundations/assets/icon.mdx index fc36208dc6..140b897a2d 100644 --- a/frontend/src/app/main/ui/ds/foundations/assets/icon.mdx +++ b/frontend/src/app/main/ui/ds/foundations/assets/icon.mdx @@ -47,7 +47,7 @@ Assuming the namespace is required as `i`: You can now use the icon IDs defined in the namespace: ```clj -[:> i/icon* {:icon i/pin}] +[:> i/icon* {:id i/pin}] ``` ### Customizing colors @@ -59,7 +59,7 @@ If you need to override this behavior, you can use a `class` in the `` component and set `color` to whatever value you prefer: ```clj -[:> i/icon* {:icon i/add :class (stl/css :toolbar-icon)}] +[:> i/icon* {:id i/add :class (stl/css :toolbar-icon)}] ``` ```scss @@ -74,7 +74,7 @@ By default, icons do not have any accessible text attached to them. You should add an `aria-label` attribute to set a proper text: ```clj -[:> i/icon* {:icon i/add :aria-label (tr "foo.bar")}] +[:> i/icon* {:id i/add :aria-label (tr "foo.bar")}] ``` ## Usage guidelines for design diff --git a/frontend/src/app/main/ui/ds/foundations/assets/icon.stories.jsx b/frontend/src/app/main/ui/ds/foundations/assets/icon.stories.jsx index 4735b1d1fe..8cd62c291d 100644 --- a/frontend/src/app/main/ui/ds/foundations/assets/icon.stories.jsx +++ b/frontend/src/app/main/ui/ds/foundations/assets/icon.stories.jsx @@ -14,7 +14,7 @@ export default { title: "Foundations/Assets/Icon", component: Components.Icon, argTypes: { - icon: { + id: { options: iconList, control: { type: "select" } }, @@ -25,12 +25,12 @@ export default { } }; -export const AllIcons = { - render: () => ( +export const All = { + render: ({size}) => (

All Icons

-

Hover on an icon to see its ID

+

Hover on an icon to see its ID.

{iconList.map((iconId) => ( @@ -39,39 +39,43 @@ export const AllIcons = { key={iconId} style={{ color: "var(--color-accent-primary)" }} > - + ))}
), + args: { + size: "m", + }, parameters: { + controls: { exclude: ["id", "size"] }, backgrounds: { disable: true }, }, }; export const Default = { - render: ({icon, ...args}) => ( + render: ({id, ...args}) => ( - + ), args: { - icon: "pin", + id: "pin", }, parameters: { - controls: { exclude: "size" } + controls: { exclude: ["size"] } } }; export const CustomSize = { - render: ({icon, size, ...args}) => ( + render: ({id, size, ...args}) => ( - + ), args: { - icon: "pin", + id: "pin", size: "m", } }; From cdabf0d6b92948b7a88e8ceddc4cc2159f126934 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bel=C3=A9n=20Albeza?= Date: Wed, 10 Jul 2024 17:24:49 +0200 Subject: [PATCH 389/476] :bug: Fix pencil loader in dashboard --- CHANGES.md | 6 ++++++ frontend/src/app/main/ui/dashboard/placeholder.cljs | 2 +- frontend/src/app/main/ui/dashboard/placeholder.scss | 3 +-- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index b96f3e77cb..ee2b399006 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,5 +1,11 @@ # CHANGELOG +## 2.1.1 + +### :bug: Bugs fixed + +- Fix pencil loader [Taiga #8348](https://tree.taiga.io/project/penpot/issue/8348) + ## 2.1.0 - Things can only get better! ### :rocket: Epics and highlights diff --git a/frontend/src/app/main/ui/dashboard/placeholder.cljs b/frontend/src/app/main/ui/dashboard/placeholder.cljs index 08798b7076..557f600000 100644 --- a/frontend/src/app/main/ui/dashboard/placeholder.cljs +++ b/frontend/src/app/main/ui/dashboard/placeholder.cljs @@ -41,5 +41,5 @@ (mf/defc loading-placeholder [] [:div {:class (stl/css :grid-empty-placeholder :loader)} - [:div {:class (stl/css :icon)} i/loader] + [:div {:class (stl/css :icon)} i/loader-pencil] [:div {:class (stl/css :text)} (tr "dashboard.loading-files")]]) diff --git a/frontend/src/app/main/ui/dashboard/placeholder.scss b/frontend/src/app/main/ui/dashboard/placeholder.scss index f2a37fbf07..6f05ba0006 100644 --- a/frontend/src/app/main/ui/dashboard/placeholder.scss +++ b/frontend/src/app/main/ui/dashboard/placeholder.scss @@ -23,8 +23,7 @@ svg { width: $s-64; height: $s-64; - stroke: $df-secondary; - fill: none; + fill: $df-secondary; } } From ba36023ae6674c2d22e739a7c216ce74d4a92b4c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bel=C3=A9n=20Albeza?= Date: Wed, 10 Jul 2024 16:30:01 +0200 Subject: [PATCH 390/476] :sparkles: Revamp RawSvg stories and update prop name --- .../ui/ds/foundations/assets/icon.stories.jsx | 21 +++++----- .../ui/ds/foundations/assets/raw_svg.cljs | 4 +- .../ds/foundations/assets/raw_svg.stories.jsx | 34 ++++++++++------ .../typography/heading.stories.jsx | 8 ++-- .../foundations/typography/text.stories.jsx | 40 ++++++++++--------- 5 files changed, 61 insertions(+), 46 deletions(-) diff --git a/frontend/src/app/main/ui/ds/foundations/assets/icon.stories.jsx b/frontend/src/app/main/ui/ds/foundations/assets/icon.stories.jsx index 8cd62c291d..c6b93f2668 100644 --- a/frontend/src/app/main/ui/ds/foundations/assets/icon.stories.jsx +++ b/frontend/src/app/main/ui/ds/foundations/assets/icon.stories.jsx @@ -16,17 +16,17 @@ export default { argTypes: { id: { options: iconList, - control: { type: "select" } + control: { type: "select" }, }, size: { options: ["m", "s"], - control: { type: "radio" } - } - } + control: { type: "radio" }, + }, + }, }; export const All = { - render: ({size}) => ( + render: ({ size }) => (

All Icons

@@ -55,7 +55,7 @@ export const All = { }; export const Default = { - render: ({id, ...args}) => ( + render: ({ id, ...args }) => ( @@ -64,12 +64,12 @@ export const Default = { id: "pin", }, parameters: { - controls: { exclude: ["size"] } - } + controls: { exclude: ["size"] }, + }, }; export const CustomSize = { - render: ({id, size, ...args}) => ( + render: ({ id, size, ...args }) => ( @@ -77,6 +77,5 @@ export const CustomSize = { args: { id: "pin", size: "m", - } + }, }; - diff --git a/frontend/src/app/main/ui/ds/foundations/assets/raw_svg.cljs b/frontend/src/app/main/ui/ds/foundations/assets/raw_svg.cljs index f6e09ad9f3..afc691f1fd 100644 --- a/frontend/src/app/main/ui/ds/foundations/assets/raw_svg.cljs +++ b/frontend/src/app/main/ui/ds/foundations/assets/raw_svg.cljs @@ -32,6 +32,6 @@ (mf/defc raw-svg* {::mf/props :obj} - [{:keys [asset] :rest props}] + [{:keys [id] :rest props}] [:> "svg" props - [:use {:href (dm/str "#asset-" asset)}]]) + [:use {:href (dm/str "#asset-" id)}]]) diff --git a/frontend/src/app/main/ui/ds/foundations/assets/raw_svg.stories.jsx b/frontend/src/app/main/ui/ds/foundations/assets/raw_svg.stories.jsx index b73e6b56ec..dcdf6e5096 100644 --- a/frontend/src/app/main/ui/ds/foundations/assets/raw_svg.stories.jsx +++ b/frontend/src/app/main/ui/ds/foundations/assets/raw_svg.stories.jsx @@ -6,41 +6,51 @@ const { StoryWrapper, StoryGrid, StoryGridCell, StoryHeader } = Components.storybook; const { svgs } = Components.meta; -export default { - title: "Foundations/RawSvg", - component: Components.RawSvg, -}; - const assetList = Object.entries(svgs) .map(([_, value]) => value) .sort(); -export const AllAssets = { - render: () => ( +export default { + title: "Foundations/Assets/RawSvg", + component: Components.RawSvg, + argTypes: { + id: { + options: assetList, + control: { type: "select" }, + }, + }, +}; + +export const All = { + render: ({}) => ( -

All assets

-

Hover on a asset to see its id.

+

All SVG Assets

+

Hover on an asset to see its ID.

{assetList.map((x) => ( - + ))}
), parameters: { + controls: { exclude: ["id"] }, backgrounds: { values: [{ name: "debug", value: "#ccc" }] }, }, }; export const Default = { - render: () => ( + render: ({ id, ...args }) => ( - + ), + args: { + id: "brand-gitlab", + }, }; diff --git a/frontend/src/app/main/ui/ds/foundations/typography/heading.stories.jsx b/frontend/src/app/main/ui/ds/foundations/typography/heading.stories.jsx index 28336b90fa..30e592e88a 100644 --- a/frontend/src/app/main/ui/ds/foundations/typography/heading.stories.jsx +++ b/frontend/src/app/main/ui/ds/foundations/typography/heading.stories.jsx @@ -24,13 +24,15 @@ export default { export const AnyHeading = { name: "Heading", - render: ({level, typography, ...args}) => ( + render: ({ level, typography, ...args }) => ( - Lorem ipsum + + Lorem ipsum + ), args: { level: 1, typography: "display", - } + }, }; diff --git a/frontend/src/app/main/ui/ds/foundations/typography/text.stories.jsx b/frontend/src/app/main/ui/ds/foundations/typography/text.stories.jsx index 31cceaa5d3..1eaec1b8eb 100644 --- a/frontend/src/app/main/ui/ds/foundations/typography/text.stories.jsx +++ b/frontend/src/app/main/ui/ds/foundations/typography/text.stories.jsx @@ -14,29 +14,33 @@ export default { typography: { options: typographyIds, control: { type: "select" }, - } - } + }, + }, }; export const Default = { - render: ({typography, ...args}) => ( + render: ({ typography, ...args }) => ( - Lorem ipsum - - ), - args: { - typography: "display" - } -}; - -export const CustomTag = { - render: ({typography, ...args}) => ( - - Lorem ipsum + + Lorem ipsum + ), args: { typography: "display", - as: "li" - } -} + }, +}; + +export const CustomTag = { + render: ({ typography, ...args }) => ( + + + Lorem ipsum + + + ), + args: { + typography: "display", + as: "li", + }, +}; From b473b7905d42b66a6e301d96bcaff18a4508f6cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bel=C3=A9n=20Albeza?= Date: Thu, 11 Jul 2024 12:24:19 +0200 Subject: [PATCH 391/476] :bug: Fix Text docs re: accessibility --- .../src/app/main/ui/ds/foundations/typography/text.mdx | 9 --------- 1 file changed, 9 deletions(-) diff --git a/frontend/src/app/main/ui/ds/foundations/typography/text.mdx b/frontend/src/app/main/ui/ds/foundations/typography/text.mdx index 76c61a6256..52c97e52d2 100644 --- a/frontend/src/app/main/ui/ds/foundations/typography/text.mdx +++ b/frontend/src/app/main/ui/ds/foundations/typography/text.mdx @@ -37,12 +37,3 @@ You can now use the typography IDs defined in the namespace: ```clj [:> text* {:typography t/title-large :tag "p"} "Welcome to Penpot"] ``` - -## Accesibility - -There should only be one level 1 heading `

` per page. - -Headings are used to navigate the page and must follow the `

` -> `

` -> `

` -> `

` -> `

` -> `
` hierarchy. -For example, do not skip levels in the `

` -> `

` hierarchy if there is no `

` in between. - -We should not choose the heading level by its visual aspect. From ba4732c5263c8994f5a4424d5db6063f9e8ce8bc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bel=C3=A9n=20Albeza?= Date: Thu, 11 Jul 2024 12:42:26 +0200 Subject: [PATCH 392/476] :bug: Fix text component misbehaving when prop is empty string --- .../app/main/ui/ds/foundations/typography/text.cljs | 2 +- .../src/app/main/ui/ds/foundations/typography/text.mdx | 10 +--------- 2 files changed, 2 insertions(+), 10 deletions(-) diff --git a/frontend/src/app/main/ui/ds/foundations/typography/text.cljs b/frontend/src/app/main/ui/ds/foundations/typography/text.cljs index e5e24907cd..6f9baa2dd2 100644 --- a/frontend/src/app/main/ui/ds/foundations/typography/text.cljs +++ b/frontend/src/app/main/ui/ds/foundations/typography/text.cljs @@ -22,7 +22,7 @@ (assert (valid-typography? (dm/str typography)) (dm/str typography " is an unknown typography")) - (let [as (or as "p") + (let [as (if (or (empty? as) (nil? as)) "p" as) class (dm/str (or class "") " " (stl/css-case :display-typography (= typography t/display) :title-large-typography (= typography t/title-large) :title-medium-typography (= typography t/title-medium) diff --git a/frontend/src/app/main/ui/ds/foundations/typography/text.mdx b/frontend/src/app/main/ui/ds/foundations/typography/text.mdx index 52c97e52d2..1abe72cc17 100644 --- a/frontend/src/app/main/ui/ds/foundations/typography/text.mdx +++ b/frontend/src/app/main/ui/ds/foundations/typography/text.mdx @@ -8,14 +8,6 @@ This component will add a text element to our code that will match the tag prop. ## Technical notes -This components accepts to props: - -- `tag` (default value: `p`) : Give a proper tag name (i.e. `p`, `span`, etc.). -- `typography` (mandatory): Any of the [supported typography IDs](?path=/docs/foundations-typography--docs). - -You can check passed props to renderized components on hover `tag / typography` - - ### Using typography IDs There are typography ID definitions you can use in your code rather than typing the @@ -35,5 +27,5 @@ Assuming the namespace of the typography is required as `t`: You can now use the typography IDs defined in the namespace: ```clj -[:> text* {:typography t/title-large :tag "p"} "Welcome to Penpot"] +[:> text* {:typography t/title-large :as "p"} "Welcome to Penpot"] ``` From 4dd7880744961eae2d2dbce6ff5891ca86d84544 Mon Sep 17 00:00:00 2001 From: Alejandro Alonso Date: Thu, 11 Jul 2024 13:24:20 +0200 Subject: [PATCH 393/476] :sparkles: Add create-devenv command to manage.sh --- manage.sh | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/manage.sh b/manage.sh index 6e13bb7d6b..a3f28c7c0e 100755 --- a/manage.sh +++ b/manage.sh @@ -65,6 +65,12 @@ function start-devenv { docker compose -p $DEVENV_PNAME -f docker/devenv/docker-compose.yaml up -d; } +function create-devenv { + pull-devenv-if-not-exists $@; + + docker compose -p $DEVENV_PNAME -f docker/devenv/docker-compose.yaml create; +} + function stop-devenv { docker compose -p $DEVENV_PNAME -f docker/devenv/docker-compose.yaml stop -t 2; } @@ -194,6 +200,7 @@ function usage { echo "Options:" echo "- pull-devenv Pulls docker development oriented image" echo "- build-devenv Build docker development oriented image" + echo "- create-devenv Create the development oriented docker compose service." echo "- start-devenv Start the development oriented docker compose service." echo "- stop-devenv Stops the development oriented docker compose service." echo "- drop-devenv Remove the development oriented docker compose containers, volumes and clean images." @@ -223,6 +230,10 @@ case $1 in push-devenv ${@:2} ;; + create-devenv) + create-devenv ${@:2} + ;; + start-devenv) start-devenv ${@:2} ;; From a03eeb63e7b4fe9cdb39ca2a50b88a56ea5e7174 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bel=C3=A9n=20Albeza?= Date: Thu, 11 Jul 2024 15:41:24 +0200 Subject: [PATCH 394/476] :arrow_up: Upgrade to storybook v8 --- frontend/.storybook/main.js | 14 +- frontend/.storybook/preview.js | 1 - frontend/package.json | 13 +- frontend/yarn.lock | 4568 ++++++++++---------------------- 4 files changed, 1373 insertions(+), 3223 deletions(-) diff --git a/frontend/.storybook/main.js b/frontend/.storybook/main.js index e9546b1fd3..5d0033def4 100644 --- a/frontend/.storybook/main.js +++ b/frontend/.storybook/main.js @@ -1,14 +1,22 @@ +import viteConfig from "../vite.config"; + /** @type { import('@storybook/react-vite').StorybookConfig } */ const config = { stories: ["../src/**/*.mdx", "../src/**/*.stories.@(js|jsx|mjs|ts|tsx)"], staticDirs: ["../resources/public"], addons: ["@storybook/addon-essentials"], + core: { + builder: "@storybook/builder-vite", + options: { + viteConfigPath: "../vite.config.js", + }, + }, + framework: { name: "@storybook/react-vite", options: {}, }, - docs: { - autodocs: "tag", - }, + + docs: {}, }; export default config; diff --git a/frontend/.storybook/preview.js b/frontend/.storybook/preview.js index c8ce13857a..450e7738ff 100644 --- a/frontend/.storybook/preview.js +++ b/frontend/.storybook/preview.js @@ -1,7 +1,6 @@ /** @type { import('@storybook/react').Preview } */ const preview = { parameters: { - actions: { argTypesRegex: "^on[A-Z].*" }, controls: { matchers: { color: /(background|color)$/i, diff --git a/frontend/package.json b/frontend/package.json index 50f2559a33..2a228fdf26 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -36,15 +36,16 @@ "e2e:server": "node ./scripts/e2e-server.js", "e2e:test": "playwright test --project default", "storybook:compile": "yarn run compile && clojure -M:dev:shadow-cljs compile storybook", - "storybook:watch": "yarn run storybook:compile && concurrently \"clojure -M:dev:shadow-cljs watch storybook\" \"storybook dev -p 6006\" \"yarn run watch\"", + "storybook:server": "yarn run storybook dev -p 6006 --no-open", + "storybook:watch": "yarn run storybook:compile && concurrently \"clojure -M:dev:shadow-cljs watch storybook\" \"yarn run storybook:server\" \"yarn run watch\"", "storybook:build": "yarn run storybook:compile && storybook build" }, "devDependencies": { "@playwright/test": "1.44.1", - "@storybook/addon-essentials": "^7.6.17", - "@storybook/blocks": "^7.6.17", - "@storybook/react": "^7.6.17", - "@storybook/react-vite": "^7.6.17", + "@storybook/addon-essentials": "^8.2.1", + "@storybook/blocks": "^8.2.1", + "@storybook/react": "^8.2.1", + "@storybook/react-vite": "^8.2.1", "@types/node": "^20.11.20", "autoprefixer": "^10.4.19", "concurrently": "^8.2.2", @@ -79,7 +80,7 @@ "sass": "^1.77.4", "sass-embedded": "^1.77.2", "shadow-cljs": "2.28.8", - "storybook": "^7.6.17", + "storybook": "^8.2.1", "svg-sprite": "^2.0.4", "typescript": "^5.4.5", "vite": "^5.1.4", diff --git a/frontend/yarn.lock b/frontend/yarn.lock index 983a02c96e..cb276b2975 100644 --- a/frontend/yarn.lock +++ b/frontend/yarn.lock @@ -15,18 +15,7 @@ __metadata: languageName: node linkType: hard -"@aw-web-design/x-default-browser@npm:1.4.126": - version: 1.4.126 - resolution: "@aw-web-design/x-default-browser@npm:1.4.126" - dependencies: - default-browser-id: "npm:3.0.0" - bin: - x-default-browser: bin/x-default-browser.js - checksum: 10c0/634c7fad7a5f4df86e3fcd3a11e50034fcb6f6302281569727574cbda7532850063cb34ec328384a686ab0812f297bf301a5e2450bc7b93b5f80a006b1f2dfd7 - languageName: node - linkType: hard - -"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.23.5, @babel/code-frame@npm:^7.24.2": +"@babel/code-frame@npm:^7.23.5, @babel/code-frame@npm:^7.24.2": version: 7.24.2 resolution: "@babel/code-frame@npm:7.24.2" dependencies: @@ -36,14 +25,31 @@ __metadata: languageName: node linkType: hard -"@babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.23.5, @babel/compat-data@npm:^7.24.4": +"@babel/code-frame@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/code-frame@npm:7.24.7" + dependencies: + "@babel/highlight": "npm:^7.24.7" + picocolors: "npm:^1.0.0" + checksum: 10c0/ab0af539473a9f5aeaac7047e377cb4f4edd255a81d84a76058595f8540784cc3fbe8acf73f1e073981104562490aabfb23008cd66dc677a456a4ed5390fdde6 + languageName: node + linkType: hard + +"@babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.23.5": version: 7.24.4 resolution: "@babel/compat-data@npm:7.24.4" checksum: 10c0/9cd8a9cd28a5ca6db5d0e27417d609f95a8762b655e8c9c97fd2de08997043ae99f0139007083c5e607601c6122e8432c85fe391731b19bf26ad458fa0c60dd3 languageName: node linkType: hard -"@babel/core@npm:^7.11.6, @babel/core@npm:^7.12.3, @babel/core@npm:^7.18.9, @babel/core@npm:^7.23.0, @babel/core@npm:^7.23.2, @babel/core@npm:^7.23.5": +"@babel/compat-data@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/compat-data@npm:7.24.7" + checksum: 10c0/dcd93a5632b04536498fbe2be5af1057f635fd7f7090483d8e797878559037e5130b26862ceb359acbae93ed27e076d395ddb4663db6b28a665756ffd02d324f + languageName: node + linkType: hard + +"@babel/core@npm:^7.18.9, @babel/core@npm:^7.23.0": version: 7.24.5 resolution: "@babel/core@npm:7.24.5" dependencies: @@ -66,7 +72,30 @@ __metadata: languageName: node linkType: hard -"@babel/generator@npm:^7.23.0, @babel/generator@npm:^7.24.5": +"@babel/core@npm:^7.24.4": + version: 7.24.7 + resolution: "@babel/core@npm:7.24.7" + dependencies: + "@ampproject/remapping": "npm:^2.2.0" + "@babel/code-frame": "npm:^7.24.7" + "@babel/generator": "npm:^7.24.7" + "@babel/helper-compilation-targets": "npm:^7.24.7" + "@babel/helper-module-transforms": "npm:^7.24.7" + "@babel/helpers": "npm:^7.24.7" + "@babel/parser": "npm:^7.24.7" + "@babel/template": "npm:^7.24.7" + "@babel/traverse": "npm:^7.24.7" + "@babel/types": "npm:^7.24.7" + convert-source-map: "npm:^2.0.0" + debug: "npm:^4.1.0" + gensync: "npm:^1.0.0-beta.2" + json5: "npm:^2.2.3" + semver: "npm:^6.3.1" + checksum: 10c0/4004ba454d3c20a46ea66264e06c15b82e9f6bdc35f88819907d24620da70dbf896abac1cb4cc4b6bb8642969e45f4d808497c9054a1388a386cf8c12e9b9e0d + languageName: node + linkType: hard + +"@babel/generator@npm:^7.24.5": version: 7.24.5 resolution: "@babel/generator@npm:7.24.5" dependencies: @@ -78,6 +107,18 @@ __metadata: languageName: node linkType: hard +"@babel/generator@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/generator@npm:7.24.7" + dependencies: + "@babel/types": "npm:^7.24.7" + "@jridgewell/gen-mapping": "npm:^0.3.5" + "@jridgewell/trace-mapping": "npm:^0.3.25" + jsesc: "npm:^2.5.1" + checksum: 10c0/06b1f3350baf527a3309e50ffd7065f7aee04dd06e1e7db794ddfde7fe9d81f28df64edd587173f8f9295496a7ddb74b9a185d4bf4de7bb619e6d4ec45c8fd35 + languageName: node + linkType: hard + "@babel/helper-annotate-as-pure@npm:^7.22.5": version: 7.22.5 resolution: "@babel/helper-annotate-as-pure@npm:7.22.5" @@ -87,12 +128,22 @@ __metadata: languageName: node linkType: hard -"@babel/helper-builder-binary-assignment-operator-visitor@npm:^7.22.15": - version: 7.22.15 - resolution: "@babel/helper-builder-binary-assignment-operator-visitor@npm:7.22.15" +"@babel/helper-annotate-as-pure@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/helper-annotate-as-pure@npm:7.24.7" dependencies: - "@babel/types": "npm:^7.22.15" - checksum: 10c0/2535e3824ca6337f65786bbac98e562f71699f25532cecd196f027d7698b4967a96953d64e36567956658ad1a05ccbdc62d1ba79ee751c79f4f1d2d3ecc2e01c + "@babel/types": "npm:^7.24.7" + checksum: 10c0/4679f7df4dffd5b3e26083ae65228116c3da34c3fff2c11ae11b259a61baec440f51e30fd236f7a0435b9d471acd93d0bc5a95df8213cbf02b1e083503d81b9a + languageName: node + linkType: hard + +"@babel/helper-builder-binary-assignment-operator-visitor@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/helper-builder-binary-assignment-operator-visitor@npm:7.24.7" + dependencies: + "@babel/traverse": "npm:^7.24.7" + "@babel/types": "npm:^7.24.7" + checksum: 10c0/0ed84abf848c79fb1cd4c1ddac12c771d32c1904d87fc3087f33cfdeb0c2e0db4e7892b74b407d9d8d0c000044f3645a7391a781f788da8410c290bb123a1f13 languageName: node linkType: hard @@ -109,7 +160,20 @@ __metadata: languageName: node linkType: hard -"@babel/helper-create-class-features-plugin@npm:^7.24.1, @babel/helper-create-class-features-plugin@npm:^7.24.4, @babel/helper-create-class-features-plugin@npm:^7.24.5": +"@babel/helper-compilation-targets@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/helper-compilation-targets@npm:7.24.7" + dependencies: + "@babel/compat-data": "npm:^7.24.7" + "@babel/helper-validator-option": "npm:^7.24.7" + browserslist: "npm:^4.22.2" + lru-cache: "npm:^5.1.1" + semver: "npm:^6.3.1" + checksum: 10c0/1d580a9bcacefe65e6bf02ba1dafd7ab278269fef45b5e281d8354d95c53031e019890464e7f9351898c01502dd2e633184eb0bcda49ed2ecd538675ce310f51 + languageName: node + linkType: hard + +"@babel/helper-create-class-features-plugin@npm:^7.24.1, @babel/helper-create-class-features-plugin@npm:^7.24.5": version: 7.24.5 resolution: "@babel/helper-create-class-features-plugin@npm:7.24.5" dependencies: @@ -128,7 +192,26 @@ __metadata: languageName: node linkType: hard -"@babel/helper-create-regexp-features-plugin@npm:^7.18.6, @babel/helper-create-regexp-features-plugin@npm:^7.22.15, @babel/helper-create-regexp-features-plugin@npm:^7.22.5": +"@babel/helper-create-class-features-plugin@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/helper-create-class-features-plugin@npm:7.24.7" + dependencies: + "@babel/helper-annotate-as-pure": "npm:^7.24.7" + "@babel/helper-environment-visitor": "npm:^7.24.7" + "@babel/helper-function-name": "npm:^7.24.7" + "@babel/helper-member-expression-to-functions": "npm:^7.24.7" + "@babel/helper-optimise-call-expression": "npm:^7.24.7" + "@babel/helper-replace-supers": "npm:^7.24.7" + "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.24.7" + "@babel/helper-split-export-declaration": "npm:^7.24.7" + semver: "npm:^6.3.1" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10c0/6b7b47d70b41c00f39f86790cff67acf2bce0289d52a7c182b28e797f4e0e6d69027e3d06eccf1d54dddc2e5dde1df663bb1932437e5f447aeb8635d8d64a6ab + languageName: node + linkType: hard + +"@babel/helper-create-regexp-features-plugin@npm:^7.18.6": version: 7.22.15 resolution: "@babel/helper-create-regexp-features-plugin@npm:7.22.15" dependencies: @@ -141,6 +224,19 @@ __metadata: languageName: node linkType: hard +"@babel/helper-create-regexp-features-plugin@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/helper-create-regexp-features-plugin@npm:7.24.7" + dependencies: + "@babel/helper-annotate-as-pure": "npm:^7.24.7" + regexpu-core: "npm:^5.3.1" + semver: "npm:^6.3.1" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10c0/ed611a7eb0c71843f9cdc471eeb38767972229f9225f7aaa90d124d7ee0062cf6908fd53ee9c34f731394c429594f06049a7738a71d342e0191d4047b2fc0ac2 + languageName: node + linkType: hard + "@babel/helper-define-polyfill-provider@npm:^0.6.1, @babel/helper-define-polyfill-provider@npm:^0.6.2": version: 0.6.2 resolution: "@babel/helper-define-polyfill-provider@npm:0.6.2" @@ -163,6 +259,15 @@ __metadata: languageName: node linkType: hard +"@babel/helper-environment-visitor@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/helper-environment-visitor@npm:7.24.7" + dependencies: + "@babel/types": "npm:^7.24.7" + checksum: 10c0/36ece78882b5960e2d26abf13cf15ff5689bf7c325b10a2895a74a499e712de0d305f8d78bb382dd3c05cfba7e47ec98fe28aab5674243e0625cd38438dd0b2d + languageName: node + linkType: hard + "@babel/helper-function-name@npm:^7.23.0": version: 7.23.0 resolution: "@babel/helper-function-name@npm:7.23.0" @@ -173,6 +278,16 @@ __metadata: languageName: node linkType: hard +"@babel/helper-function-name@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/helper-function-name@npm:7.24.7" + dependencies: + "@babel/template": "npm:^7.24.7" + "@babel/types": "npm:^7.24.7" + checksum: 10c0/e5e41e6cf86bd0f8bf272cbb6e7c5ee0f3e9660414174435a46653efba4f2479ce03ce04abff2aa2ef9359cf057c79c06cb7b134a565ad9c0e8a50dcdc3b43c4 + languageName: node + linkType: hard + "@babel/helper-hoist-variables@npm:^7.22.5": version: 7.22.5 resolution: "@babel/helper-hoist-variables@npm:7.22.5" @@ -182,6 +297,15 @@ __metadata: languageName: node linkType: hard +"@babel/helper-hoist-variables@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/helper-hoist-variables@npm:7.24.7" + dependencies: + "@babel/types": "npm:^7.24.7" + checksum: 10c0/19ee37563bbd1219f9d98991ad0e9abef77803ee5945fd85aa7aa62a67c69efca9a801696a1b58dda27f211e878b3327789e6fd2a6f6c725ccefe36774b5ce95 + languageName: node + linkType: hard + "@babel/helper-member-expression-to-functions@npm:^7.23.0, @babel/helper-member-expression-to-functions@npm:^7.24.5": version: 7.24.5 resolution: "@babel/helper-member-expression-to-functions@npm:7.24.5" @@ -191,7 +315,17 @@ __metadata: languageName: node linkType: hard -"@babel/helper-module-imports@npm:^7.24.1, @babel/helper-module-imports@npm:^7.24.3": +"@babel/helper-member-expression-to-functions@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/helper-member-expression-to-functions@npm:7.24.7" + dependencies: + "@babel/traverse": "npm:^7.24.7" + "@babel/types": "npm:^7.24.7" + checksum: 10c0/9638c1d33cf6aba028461ccd3db6061c76ff863ca0d5013dd9a088bf841f2f77c46956493f9da18355c16759449d23b74cc1de4da357ade5c5c34c858f840f0a + languageName: node + linkType: hard + +"@babel/helper-module-imports@npm:^7.24.3": version: 7.24.3 resolution: "@babel/helper-module-imports@npm:7.24.3" dependencies: @@ -200,6 +334,16 @@ __metadata: languageName: node linkType: hard +"@babel/helper-module-imports@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/helper-module-imports@npm:7.24.7" + dependencies: + "@babel/traverse": "npm:^7.24.7" + "@babel/types": "npm:^7.24.7" + checksum: 10c0/97c57db6c3eeaea31564286e328a9fb52b0313c5cfcc7eee4bc226aebcf0418ea5b6fe78673c0e4a774512ec6c86e309d0f326e99d2b37bfc16a25a032498af0 + languageName: node + linkType: hard + "@babel/helper-module-transforms@npm:^7.23.3, @babel/helper-module-transforms@npm:^7.24.5": version: 7.24.5 resolution: "@babel/helper-module-transforms@npm:7.24.5" @@ -215,6 +359,21 @@ __metadata: languageName: node linkType: hard +"@babel/helper-module-transforms@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/helper-module-transforms@npm:7.24.7" + dependencies: + "@babel/helper-environment-visitor": "npm:^7.24.7" + "@babel/helper-module-imports": "npm:^7.24.7" + "@babel/helper-simple-access": "npm:^7.24.7" + "@babel/helper-split-export-declaration": "npm:^7.24.7" + "@babel/helper-validator-identifier": "npm:^7.24.7" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10c0/4f311755fcc3b4cbdb689386309cdb349cf0575a938f0b9ab5d678e1a81bbb265aa34ad93174838245f2ac7ff6d5ddbd0104638a75e4e961958ed514355687b6 + languageName: node + linkType: hard + "@babel/helper-optimise-call-expression@npm:^7.22.5": version: 7.22.5 resolution: "@babel/helper-optimise-call-expression@npm:7.22.5" @@ -224,6 +383,15 @@ __metadata: languageName: node linkType: hard +"@babel/helper-optimise-call-expression@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/helper-optimise-call-expression@npm:7.24.7" + dependencies: + "@babel/types": "npm:^7.24.7" + checksum: 10c0/ca6a9884705dea5c95a8b3ce132d1e3f2ae951ff74987d400d1d9c215dae9c0f9e29924d8f8e131e116533d182675bc261927be72f6a9a2968eaeeaa51eb1d0f + languageName: node + linkType: hard + "@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.10.4, @babel/helper-plugin-utils@npm:^7.12.13, @babel/helper-plugin-utils@npm:^7.14.5, @babel/helper-plugin-utils@npm:^7.18.6, @babel/helper-plugin-utils@npm:^7.22.5, @babel/helper-plugin-utils@npm:^7.24.0, @babel/helper-plugin-utils@npm:^7.24.5, @babel/helper-plugin-utils@npm:^7.8.0, @babel/helper-plugin-utils@npm:^7.8.3": version: 7.24.5 resolution: "@babel/helper-plugin-utils@npm:7.24.5" @@ -231,16 +399,23 @@ __metadata: languageName: node linkType: hard -"@babel/helper-remap-async-to-generator@npm:^7.22.20": - version: 7.22.20 - resolution: "@babel/helper-remap-async-to-generator@npm:7.22.20" +"@babel/helper-plugin-utils@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/helper-plugin-utils@npm:7.24.7" + checksum: 10c0/c3d38cd9b3520757bb4a279255cc3f956fc0ac1c193964bd0816ebd5c86e30710be8e35252227e0c9d9e0f4f56d9b5f916537f2bc588084b0988b4787a967d31 + languageName: node + linkType: hard + +"@babel/helper-remap-async-to-generator@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/helper-remap-async-to-generator@npm:7.24.7" dependencies: - "@babel/helper-annotate-as-pure": "npm:^7.22.5" - "@babel/helper-environment-visitor": "npm:^7.22.20" - "@babel/helper-wrap-function": "npm:^7.22.20" + "@babel/helper-annotate-as-pure": "npm:^7.24.7" + "@babel/helper-environment-visitor": "npm:^7.24.7" + "@babel/helper-wrap-function": "npm:^7.24.7" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10c0/aa93aa74250b636d477e8d863fbe59d4071f8c2654841b7ac608909e480c1cf3ff7d7af5a4038568829ad09d810bb681668cbe497d9c89ba5c352793dc9edf1e + checksum: 10c0/4e7fa2cdcbc488e41c27066c16e562857ef3c5c2bfe70d2f1e32e9ee7546b17c3fc1c20d05bf2a7f1c291bd9e7a0a219f6a9fa387209013294be79a26fcfe64d languageName: node linkType: hard @@ -257,6 +432,19 @@ __metadata: languageName: node linkType: hard +"@babel/helper-replace-supers@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/helper-replace-supers@npm:7.24.7" + dependencies: + "@babel/helper-environment-visitor": "npm:^7.24.7" + "@babel/helper-member-expression-to-functions": "npm:^7.24.7" + "@babel/helper-optimise-call-expression": "npm:^7.24.7" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10c0/0e133bb03371dee78e519c334a09c08e1493103a239d9628db0132dfaac3fc16380479ca3c590d278a9b71b624030a338c18ebbfe6d430ebb2e4653775c4b3e3 + languageName: node + linkType: hard + "@babel/helper-simple-access@npm:^7.22.5, @babel/helper-simple-access@npm:^7.24.5": version: 7.24.5 resolution: "@babel/helper-simple-access@npm:7.24.5" @@ -266,6 +454,16 @@ __metadata: languageName: node linkType: hard +"@babel/helper-simple-access@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/helper-simple-access@npm:7.24.7" + dependencies: + "@babel/traverse": "npm:^7.24.7" + "@babel/types": "npm:^7.24.7" + checksum: 10c0/7230e419d59a85f93153415100a5faff23c133d7442c19e0cd070da1784d13cd29096ee6c5a5761065c44e8164f9f80e3a518c41a0256df39e38f7ad6744fed7 + languageName: node + linkType: hard + "@babel/helper-skip-transparent-expression-wrappers@npm:^7.22.5": version: 7.22.5 resolution: "@babel/helper-skip-transparent-expression-wrappers@npm:7.22.5" @@ -275,6 +473,16 @@ __metadata: languageName: node linkType: hard +"@babel/helper-skip-transparent-expression-wrappers@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/helper-skip-transparent-expression-wrappers@npm:7.24.7" + dependencies: + "@babel/traverse": "npm:^7.24.7" + "@babel/types": "npm:^7.24.7" + checksum: 10c0/e3a9b8ac9c262ac976a1bcb5fe59694db5e6f0b4f9e7bdba5c7693b8b5e28113c23bdaa60fe8d3ec32a337091b67720b2053bcb3d5655f5406536c3d0584242b + languageName: node + linkType: hard + "@babel/helper-split-export-declaration@npm:^7.24.5": version: 7.24.5 resolution: "@babel/helper-split-export-declaration@npm:7.24.5" @@ -284,6 +492,15 @@ __metadata: languageName: node linkType: hard +"@babel/helper-split-export-declaration@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/helper-split-export-declaration@npm:7.24.7" + dependencies: + "@babel/types": "npm:^7.24.7" + checksum: 10c0/0254577d7086bf09b01bbde98f731d4fcf4b7c3fa9634fdb87929801307c1f6202a1352e3faa5492450fa8da4420542d44de604daf540704ff349594a78184f6 + languageName: node + linkType: hard + "@babel/helper-string-parser@npm:^7.24.1": version: 7.24.1 resolution: "@babel/helper-string-parser@npm:7.24.1" @@ -291,13 +508,27 @@ __metadata: languageName: node linkType: hard -"@babel/helper-validator-identifier@npm:^7.22.20, @babel/helper-validator-identifier@npm:^7.24.5": +"@babel/helper-string-parser@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/helper-string-parser@npm:7.24.7" + checksum: 10c0/47840c7004e735f3dc93939c77b099bb41a64bf3dda0cae62f60e6f74a5ff80b63e9b7cf77b5ec25a324516381fc994e1f62f922533236a8e3a6af57decb5e1e + languageName: node + linkType: hard + +"@babel/helper-validator-identifier@npm:^7.24.5": version: 7.24.5 resolution: "@babel/helper-validator-identifier@npm:7.24.5" checksum: 10c0/05f957229d89ce95a137d04e27f7d0680d84ae48b6ad830e399db0779341f7d30290f863a93351b4b3bde2166737f73a286ea42856bb07c8ddaa95600d38645c languageName: node linkType: hard +"@babel/helper-validator-identifier@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/helper-validator-identifier@npm:7.24.7" + checksum: 10c0/87ad608694c9477814093ed5b5c080c2e06d44cb1924ae8320474a74415241223cc2a725eea2640dd783ff1e3390e5f95eede978bc540e870053152e58f1d651 + languageName: node + linkType: hard + "@babel/helper-validator-option@npm:^7.23.5": version: 7.23.5 resolution: "@babel/helper-validator-option@npm:7.23.5" @@ -305,14 +536,22 @@ __metadata: languageName: node linkType: hard -"@babel/helper-wrap-function@npm:^7.22.20": - version: 7.24.5 - resolution: "@babel/helper-wrap-function@npm:7.24.5" +"@babel/helper-validator-option@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/helper-validator-option@npm:7.24.7" + checksum: 10c0/21aea2b7bc5cc8ddfb828741d5c8116a84cbc35b4a3184ec53124f08e09746f1f67a6f9217850188995ca86059a7942e36d8965a6730784901def777b7e8a436 + languageName: node + linkType: hard + +"@babel/helper-wrap-function@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/helper-wrap-function@npm:7.24.7" dependencies: - "@babel/helper-function-name": "npm:^7.23.0" - "@babel/template": "npm:^7.24.0" - "@babel/types": "npm:^7.24.5" - checksum: 10c0/242fcd32d59d26463fd8d989707b88691deec871ac2bf15e03ab2f1b185d1d4f3db2c6a8dd3c10c89d4ff63da238df1c4d318cfc3dcd8e1c1fabdcf27f28d858 + "@babel/helper-function-name": "npm:^7.24.7" + "@babel/template": "npm:^7.24.7" + "@babel/traverse": "npm:^7.24.7" + "@babel/types": "npm:^7.24.7" + checksum: 10c0/d5689f031bf0eb38c0d7fad6b7e320ddef4bfbdf08d12d7d76ef41b7ca365a32721e74cb5ed5a9a9ec634bc20f9b7a27314fa6fb08f1576b8f6d8330fcea6f47 languageName: node linkType: hard @@ -327,6 +566,16 @@ __metadata: languageName: node linkType: hard +"@babel/helpers@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/helpers@npm:7.24.7" + dependencies: + "@babel/template": "npm:^7.24.7" + "@babel/types": "npm:^7.24.7" + checksum: 10c0/aa8e230f6668773e17e141dbcab63e935c514b4b0bf1fed04d2eaefda17df68e16b61a56573f7f1d4d1e605ce6cc162b5f7e9fdf159fde1fd9b77c920ae47d27 + languageName: node + linkType: hard + "@babel/highlight@npm:^7.24.2": version: 7.24.5 resolution: "@babel/highlight@npm:7.24.5" @@ -339,7 +588,19 @@ __metadata: languageName: node linkType: hard -"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.23.0, @babel/parser@npm:^7.24.0, @babel/parser@npm:^7.24.5": +"@babel/highlight@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/highlight@npm:7.24.7" + dependencies: + "@babel/helper-validator-identifier": "npm:^7.24.7" + chalk: "npm:^2.4.2" + js-tokens: "npm:^4.0.0" + picocolors: "npm:^1.0.0" + checksum: 10c0/674334c571d2bb9d1c89bdd87566383f59231e16bcdcf5bb7835babdf03c9ae585ca0887a7b25bdf78f303984af028df52831c7989fecebb5101cc132da9393a + languageName: node + linkType: hard + +"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.23.0, @babel/parser@npm:^7.24.0, @babel/parser@npm:^7.24.5": version: 7.24.5 resolution: "@babel/parser@npm:7.24.5" bin: @@ -348,51 +609,60 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:^7.24.5": - version: 7.24.5 - resolution: "@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:7.24.5" - dependencies: - "@babel/helper-environment-visitor": "npm:^7.22.20" - "@babel/helper-plugin-utils": "npm:^7.24.5" - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 10c0/b471972dcc4a3ba32821329a57725e2b563421e975d7ffec7fcabd70af0fced6a50bcc9ed2a8cbd4a9ac7c09cfbf43c7116e82f3b9064b33a22309500b632108 +"@babel/parser@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/parser@npm:7.24.7" + bin: + parser: ./bin/babel-parser.js + checksum: 10c0/8b244756872185a1c6f14b979b3535e682ff08cb5a2a5fd97cc36c017c7ef431ba76439e95e419d43000c5b07720495b00cf29a7f0d9a483643d08802b58819b languageName: node linkType: hard -"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:7.24.1" +"@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.0" + "@babel/helper-environment-visitor": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.24.7" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10c0/d4e592e6fc4878654243d2e7b51ea86471b868a8cb09de29e73b65d2b64159990c6c198fd7c9c2af2e38b1cddf70206243792853c47384a84f829dada152f605 + checksum: 10c0/394c30e2b708ad385fa1219528e039066a1f1cb40f47986f283878848fd354c745e6397f588b4e5a046ee8d64bfdf4c208e4c3dfbdcfb2fd34315ec67c64e7af languageName: node linkType: hard -"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:7.24.1" +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.0" - "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.22.5" - "@babel/plugin-transform-optional-chaining": "npm:^7.24.1" + "@babel/helper-plugin-utils": "npm:^7.24.7" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10c0/a36307428ecc1a01b00cf90812335eed1575d13f211ab24fe4d0c55c28a2fcbd4135f142efabc3b277b2a8e09ee05df594a1272353f061b63829495b5dcfdb96 + languageName: node + linkType: hard + +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:7.24.7" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.24.7" + "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.24.7" + "@babel/plugin-transform-optional-chaining": "npm:^7.24.7" peerDependencies: "@babel/core": ^7.13.0 - checksum: 10c0/351c36e45795a7890d610ab9041a52f4078a59429f6e74c281984aa44149a10d43e82b3a8172c703c0d5679471e165d1c02b6d2e45a677958ee301b89403f202 + checksum: 10c0/aeb6e7aa363a47f815cf956ea1053c5dd8b786a17799f065c9688ba4b0051fe7565d258bbe9400bfcbfb3114cb9fda66983e10afe4d750bc70ff75403e15dd36 languageName: node linkType: hard -"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:7.24.1" +"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:7.24.7" dependencies: - "@babel/helper-environment-visitor": "npm:^7.22.20" - "@babel/helper-plugin-utils": "npm:^7.24.0" + "@babel/helper-environment-visitor": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.24.7" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10c0/d7dd5a59a54635a3152895dcaa68f3370bb09d1f9906c1e72232ff759159e6be48de4a598a993c986997280a2dc29922a48aaa98020f16439f3f57ad72788354 + checksum: 10c0/2b52a73e444f6adc73f927b623e53a4cf64397170dd1071268536df1b3db1e02131418c8dc91351af48837a6298212118f4a72d5407f8005cf9a732370a315b0 languageName: node linkType: hard @@ -471,25 +741,25 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-import-assertions@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-syntax-import-assertions@npm:7.24.1" +"@babel/plugin-syntax-import-assertions@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-syntax-import-assertions@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.0" + "@babel/helper-plugin-utils": "npm:^7.24.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/72f0340d73e037f0702c61670054e0af66ece7282c5c2f4ba8de059390fee502de282defdf15959cd9f71aa18dc5c5e4e7a0fde317799a0600c6c4e0a656d82b + checksum: 10c0/b82c53e095274ee71c248551352d73441cf65b3b3fc0107258ba4e9aef7090772a425442b3ed1c396fa207d0efafde8929c87a17d3c885b3ca2021316e87e246 languageName: node linkType: hard -"@babel/plugin-syntax-import-attributes@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-syntax-import-attributes@npm:7.24.1" +"@babel/plugin-syntax-import-attributes@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-syntax-import-attributes@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.0" + "@babel/helper-plugin-utils": "npm:^7.24.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/309634e3335777aee902552b2cf244c4a8050213cc878b3fb9d70ad8cbbff325dc46ac5e5791836ff477ea373b27832238205f6ceaff81f7ea7c4c7e8fbb13bb + checksum: 10c0/eccc54d0f03c96d0eec7a6e2fa124dadbc7298345b62ffc4238f173308c4325b5598f139695ff05a95cf78412ef6903599e4b814496612bf39aad4715a16375b languageName: node linkType: hard @@ -637,67 +907,67 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-arrow-functions@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-arrow-functions@npm:7.24.1" +"@babel/plugin-transform-arrow-functions@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-arrow-functions@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.0" + "@babel/helper-plugin-utils": "npm:^7.24.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/f44bfacf087dc21b422bab99f4e9344ee7b695b05c947dacae66de05c723ab9d91800be7edc1fa016185e8c819f3aca2b4a5f66d8a4d1e47d9bad80b8fa55b8e + checksum: 10c0/6ac05a54e5582f34ac6d5dc26499e227227ec1c7fa6fc8de1f3d40c275f140d3907f79bbbd49304da2d7008a5ecafb219d0b71d78ee3290ca22020d878041245 languageName: node linkType: hard -"@babel/plugin-transform-async-generator-functions@npm:^7.24.3": - version: 7.24.3 - resolution: "@babel/plugin-transform-async-generator-functions@npm:7.24.3" +"@babel/plugin-transform-async-generator-functions@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-async-generator-functions@npm:7.24.7" dependencies: - "@babel/helper-environment-visitor": "npm:^7.22.20" - "@babel/helper-plugin-utils": "npm:^7.24.0" - "@babel/helper-remap-async-to-generator": "npm:^7.22.20" + "@babel/helper-environment-visitor": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.24.7" + "@babel/helper-remap-async-to-generator": "npm:^7.24.7" "@babel/plugin-syntax-async-generators": "npm:^7.8.4" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/55ceed059f819dcccbfe69600bfa1c055ada466bd54eda117cfdd2cf773dd85799e2f6556e4a559b076e93b9704abcca2aef9d72aad7dc8a5d3d17886052f1d3 + checksum: 10c0/6b5e33ae66dce0afce9b06d8dace6fa052528e60f7622aa6cfd3e71bd372ca5079d426e78336ca564bc0d5f37acbcda1b21f4fe656fcb642f1a93a697ab39742 languageName: node linkType: hard -"@babel/plugin-transform-async-to-generator@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-async-to-generator@npm:7.24.1" +"@babel/plugin-transform-async-to-generator@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-async-to-generator@npm:7.24.7" dependencies: - "@babel/helper-module-imports": "npm:^7.24.1" - "@babel/helper-plugin-utils": "npm:^7.24.0" - "@babel/helper-remap-async-to-generator": "npm:^7.22.20" + "@babel/helper-module-imports": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.24.7" + "@babel/helper-remap-async-to-generator": "npm:^7.24.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/3731ba8e83cbea1ab22905031f25b3aeb0b97c6467360a2cc685352f16e7c786417d8883bc747f5a0beff32266bdb12a05b6292e7b8b75967087200a7bc012c4 + checksum: 10c0/83c82e243898875af8457972a26ab29baf8a2078768ee9f35141eb3edff0f84b165582a2ff73e90a9e08f5922bf813dbf15a85c1213654385198f4591c0dc45d languageName: node linkType: hard -"@babel/plugin-transform-block-scoped-functions@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-block-scoped-functions@npm:7.24.1" +"@babel/plugin-transform-block-scoped-functions@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-block-scoped-functions@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.0" + "@babel/helper-plugin-utils": "npm:^7.24.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/6fbaa85f5204f34845dfc0bebf62fdd3ac5a286241c85651e59d426001e7a1785ac501f154e093e0b8ee49e1f51e3f8b06575a5ae8d4a9406d43e4816bf18c37 + checksum: 10c0/113e86de4612ae91773ff5cb6b980f01e1da7e26ae6f6012127415d7ae144e74987bc23feb97f63ba4bc699331490ddea36eac004d76a20d5369e4cc6a7f61cd languageName: node linkType: hard -"@babel/plugin-transform-block-scoping@npm:^7.24.5": - version: 7.24.5 - resolution: "@babel/plugin-transform-block-scoping@npm:7.24.5" +"@babel/plugin-transform-block-scoping@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-block-scoping@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.5" + "@babel/helper-plugin-utils": "npm:^7.24.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/85997fc8179b7d26e8af30865aeb91789f3bc1f0cd5643ed25f25891ff9c071460ec1220599b19070b424a3b902422f682e9b02e515872540173eae2e25f760c + checksum: 10c0/dcbc5e385c0ca5fb5736b1c720c90755cffe9f91d8c854f82e61e59217dd3f6c91b3633eeee4b55a89d3f59e5275d0f5b0b1b1363d4fa70c49c468b55aa87700 languageName: node linkType: hard -"@babel/plugin-transform-class-properties@npm:^7.22.5, @babel/plugin-transform-class-properties@npm:^7.24.1": +"@babel/plugin-transform-class-properties@npm:^7.22.5": version: 7.24.1 resolution: "@babel/plugin-transform-class-properties@npm:7.24.1" dependencies: @@ -709,116 +979,128 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-class-static-block@npm:^7.24.4": - version: 7.24.4 - resolution: "@babel/plugin-transform-class-static-block@npm:7.24.4" +"@babel/plugin-transform-class-properties@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-class-properties@npm:7.24.7" dependencies: - "@babel/helper-create-class-features-plugin": "npm:^7.24.4" - "@babel/helper-plugin-utils": "npm:^7.24.0" + "@babel/helper-create-class-features-plugin": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.24.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/75018a466c7ede3d2397e158891c224ba7fca72864506ce067ddbc02fc65191d44da4d6379c996d0c7f09019e26b5c3f5f1d3a639cd98366519723886f0689d0 + languageName: node + linkType: hard + +"@babel/plugin-transform-class-static-block@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-class-static-block@npm:7.24.7" + dependencies: + "@babel/helper-create-class-features-plugin": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.24.7" "@babel/plugin-syntax-class-static-block": "npm:^7.14.5" peerDependencies: "@babel/core": ^7.12.0 - checksum: 10c0/19dfeaf4a2ac03695034f7211a8b5ad89103b224608ac3e91791055107c5fe4d7ebe5d9fbb31b4a91265694af78762260642eb270f4b239c175984ee4b253f80 + checksum: 10c0/b0ade39a3d09dce886f79dbd5907c3d99b48167eddb6b9bbde24a0598129654d7017e611c20494cdbea48b07ac14397cd97ea34e3754bbb2abae4e698128eccb languageName: node linkType: hard -"@babel/plugin-transform-classes@npm:^7.24.5": - version: 7.24.5 - resolution: "@babel/plugin-transform-classes@npm:7.24.5" +"@babel/plugin-transform-classes@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-classes@npm:7.24.7" dependencies: - "@babel/helper-annotate-as-pure": "npm:^7.22.5" - "@babel/helper-compilation-targets": "npm:^7.23.6" - "@babel/helper-environment-visitor": "npm:^7.22.20" - "@babel/helper-function-name": "npm:^7.23.0" - "@babel/helper-plugin-utils": "npm:^7.24.5" - "@babel/helper-replace-supers": "npm:^7.24.1" - "@babel/helper-split-export-declaration": "npm:^7.24.5" + "@babel/helper-annotate-as-pure": "npm:^7.24.7" + "@babel/helper-compilation-targets": "npm:^7.24.7" + "@babel/helper-environment-visitor": "npm:^7.24.7" + "@babel/helper-function-name": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.24.7" + "@babel/helper-replace-supers": "npm:^7.24.7" + "@babel/helper-split-export-declaration": "npm:^7.24.7" globals: "npm:^11.1.0" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/4affcbb7cb01fa4764c7a4b534c30fd24a4b68e680a2d6e242dd7ca8726490f0f1426c44797deff84a38a162e0629718900c68d28daffe2b12adf5b4194156a7 + checksum: 10c0/e51dba7ce8b770d1eee929e098d5a3be3efc3e8b941e22dda7d0097dc4e7be5feabd2da7b707ac06fcac5661b31223c541941dec08ce76c1faa55544d87d06ec languageName: node linkType: hard -"@babel/plugin-transform-computed-properties@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-computed-properties@npm:7.24.1" +"@babel/plugin-transform-computed-properties@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-computed-properties@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.0" - "@babel/template": "npm:^7.24.0" + "@babel/helper-plugin-utils": "npm:^7.24.7" + "@babel/template": "npm:^7.24.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/8292c508b656b7722e2c2ca0f6f31339852e3ed2b9b80f6e068a4010e961b431ca109ecd467fc906283f4b1574c1e7b1cb68d35a4dea12079d386c15ff7e0eac + checksum: 10c0/25636dbc1f605c0b8bc60aa58628a916b689473d11551c9864a855142e36742fe62d4a70400ba3b74902338e77fb3d940376c0a0ba154b6b7ec5367175233b49 languageName: node linkType: hard -"@babel/plugin-transform-destructuring@npm:^7.24.5": - version: 7.24.5 - resolution: "@babel/plugin-transform-destructuring@npm:7.24.5" +"@babel/plugin-transform-destructuring@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-destructuring@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.5" + "@babel/helper-plugin-utils": "npm:^7.24.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/6a37953a95f04b335bf3e2118fb93f50dd9593c658d1b2f8918a380a2ee30f1b420139eccf7ec3873c86a8208527895fcf6b7e21c0e734a6ad6e5d5042eace4d + checksum: 10c0/929f07a807fb62230bfbf881cfcedf187ac5daf2f1b01da94a75c7a0f6f72400268cf4bcfee534479e43260af8193e42c31ee03c8b0278ba77d0036ed6709c27 languageName: node linkType: hard -"@babel/plugin-transform-dotall-regex@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-dotall-regex@npm:7.24.1" +"@babel/plugin-transform-dotall-regex@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-dotall-regex@npm:7.24.7" dependencies: - "@babel/helper-create-regexp-features-plugin": "npm:^7.22.15" - "@babel/helper-plugin-utils": "npm:^7.24.0" + "@babel/helper-create-regexp-features-plugin": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.24.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/758def705ec5a87ef910280dc2df5d2fda59dc5d4771c1725c7aed0988ae5b79e29aeb48109120301a3e1c6c03dfac84700469de06f38ca92c96834e09eadf5d + checksum: 10c0/793f14c9494972d294b7e7b97b747f47874b6d57d7804d3443c701becf5db192c9311be6a1835c07664486df1f5c60d33196c36fb7e11a53015e476b4c145b33 languageName: node linkType: hard -"@babel/plugin-transform-duplicate-keys@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-duplicate-keys@npm:7.24.1" +"@babel/plugin-transform-duplicate-keys@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-duplicate-keys@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.0" + "@babel/helper-plugin-utils": "npm:^7.24.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/41072f57f83a6c2b15f3ee0b6779cdca105ff3d98061efe92ac02d6c7b90fdb6e7e293b8a4d5b9c690d9ae5d3ae73e6bde4596dc4d8c66526a0e5e1abc73c88c + checksum: 10c0/75ff7ec1117ac500e77bf20a144411d39c0fdd038f108eec061724123ce6d1bb8d5bd27968e466573ee70014f8be0043361cdb0ef388f8a182d1d97ad67e51b9 languageName: node linkType: hard -"@babel/plugin-transform-dynamic-import@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-dynamic-import@npm:7.24.1" +"@babel/plugin-transform-dynamic-import@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-dynamic-import@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.0" + "@babel/helper-plugin-utils": "npm:^7.24.7" "@babel/plugin-syntax-dynamic-import": "npm:^7.8.3" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/7e2834780e9b5251ef341854043a89c91473b83c335358620ca721554877e64e416aeb3288a35f03e825c4958e07d5d00ead08c4490fadc276a21fe151d812f1 + checksum: 10c0/eeda48372efd0a5103cb22dadb13563c975bce18ae85daafbb47d57bb9665d187da9d4fe8d07ac0a6e1288afcfcb73e4e5618bf75ff63fddf9736bfbf225203b languageName: node linkType: hard -"@babel/plugin-transform-exponentiation-operator@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-exponentiation-operator@npm:7.24.1" +"@babel/plugin-transform-exponentiation-operator@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-exponentiation-operator@npm:7.24.7" dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor": "npm:^7.22.15" - "@babel/helper-plugin-utils": "npm:^7.24.0" + "@babel/helper-builder-binary-assignment-operator-visitor": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.24.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/f0fc4c5a9add25fd6bf23dabe6752e9b7c0a2b2554933dddfd16601245a2ba332b647951079c782bf3b94c6330e3638b9b4e0227f469a7c1c707446ba0eba6c7 + checksum: 10c0/ace3e11c94041b88848552ba8feb39ae4d6cad3696d439ff51445bd2882d8b8775d85a26c2c0edb9b5e38c9e6013cc11b0dea89ec8f93c7d9d7ee95e3645078c languageName: node linkType: hard -"@babel/plugin-transform-export-namespace-from@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-export-namespace-from@npm:7.24.1" +"@babel/plugin-transform-export-namespace-from@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-export-namespace-from@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.0" + "@babel/helper-plugin-utils": "npm:^7.24.7" "@babel/plugin-syntax-export-namespace-from": "npm:^7.8.3" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/510bb23b2423d5fbffef69b356e4050929c21a7627e8194b1506dd935c7d9cbbd696c9ae9d7c3bcd7e6e7b69561b0b290c2d72d446327b40fc20ce40bbca6712 + checksum: 10c0/4e144d7f1c57bc63b4899dbbbdfed0880f2daa75ea9c7251c7997f106e4b390dc362175ab7830f11358cb21f6b972ca10a43a2e56cd789065f7606b082674c0c languageName: node linkType: hard @@ -834,86 +1116,86 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-for-of@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-for-of@npm:7.24.1" +"@babel/plugin-transform-for-of@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-for-of@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.0" - "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.22.5" + "@babel/helper-plugin-utils": "npm:^7.24.7" + "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.24.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/e4bc92b1f334246e62d4bde079938df940794db564742034f6597f2e38bd426e11ae8c5670448e15dd6e45c462f2a9ab3fa87259bddf7c08553ffd9457fc2b2c + checksum: 10c0/77629b1173e55d07416f05ba7353caa09d2c2149da2ca26721ab812209b63689d1be45116b68eadc011c49ced59daf5320835b15245eb7ae93ae0c5e8277cfc0 languageName: node linkType: hard -"@babel/plugin-transform-function-name@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-function-name@npm:7.24.1" +"@babel/plugin-transform-function-name@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-function-name@npm:7.24.7" dependencies: - "@babel/helper-compilation-targets": "npm:^7.23.6" - "@babel/helper-function-name": "npm:^7.23.0" - "@babel/helper-plugin-utils": "npm:^7.24.0" + "@babel/helper-compilation-targets": "npm:^7.24.7" + "@babel/helper-function-name": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.24.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/65c1735ec3b5e43db9b5aebf3c16171c04b3050c92396b9e22dda0d2aaf51f43fdcf147f70a40678fd9a4ee2272a5acec4826e9c21bcf968762f4c184897ad75 + checksum: 10c0/3e9642428d6952851850d89ea9307d55946528d18973784d0e2f04a651b23bd9924dd8a2641c824b483bd4ab1223bab1d2f6a1106a939998f7ced512cb60ac5b languageName: node linkType: hard -"@babel/plugin-transform-json-strings@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-json-strings@npm:7.24.1" +"@babel/plugin-transform-json-strings@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-json-strings@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.0" + "@babel/helper-plugin-utils": "npm:^7.24.7" "@babel/plugin-syntax-json-strings": "npm:^7.8.3" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/13d9b6a3c31ab4be853b3d49d8d1171f9bd8198562fd75da8f31e7de31398e1cfa6eb1d073bed93c9746e4f9c47a53b20f8f4c255ece3f88c90852ad3181dc2d + checksum: 10c0/17c72cd5bf3e90e722aabd333559275f3309e3fa0b9cea8c2944ab83ae01502c71a2be05da5101edc02b3fc8df15a8dbb9b861cbfcc8a52bf5e797cf01d3a40a languageName: node linkType: hard -"@babel/plugin-transform-literals@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-literals@npm:7.24.1" +"@babel/plugin-transform-literals@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-literals@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.0" + "@babel/helper-plugin-utils": "npm:^7.24.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/a27cc7d565ee57b5a2bf136fa889c5c2f5988545ae7b3b2c83a7afe5dd37dfac80dca88b1c633c65851ce6af7d2095c04c01228657ce0198f918e64b5ccd01fa + checksum: 10c0/9f3f6f3831929cd2a977748c07addf9944d5cccb50bd3a24a58beb54f91f00d6cacd3d7831d13ffe1ad6f8aba0aefd7bca5aec65d63b77f39c62ad1f2d484a3e languageName: node linkType: hard -"@babel/plugin-transform-logical-assignment-operators@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-logical-assignment-operators@npm:7.24.1" +"@babel/plugin-transform-logical-assignment-operators@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-logical-assignment-operators@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.0" + "@babel/helper-plugin-utils": "npm:^7.24.7" "@babel/plugin-syntax-logical-assignment-operators": "npm:^7.10.4" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/98a2e0843ddfe51443c1bfcf08ba40ad8856fd4f8e397b392a5390a54f257c8c1b9a99d8ffc0fc7e8c55cce45e2cd9c2795a4450303f48f501bcbd662de44554 + checksum: 10c0/dbe882eb9053931f2ab332c50fc7c2a10ef507d6421bd9831adbb4cb7c9f8e1e5fbac4fbd2e007f6a1bf1df1843547559434012f118084dc0bf42cda3b106272 languageName: node linkType: hard -"@babel/plugin-transform-member-expression-literals@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-member-expression-literals@npm:7.24.1" +"@babel/plugin-transform-member-expression-literals@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-member-expression-literals@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.0" + "@babel/helper-plugin-utils": "npm:^7.24.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/2af731d02aa4c757ef80c46df42264128cbe45bfd15e1812d1a595265b690a44ad036041c406a73411733540e1c4256d8174705ae6b8cfaf757fc175613993fd + checksum: 10c0/e789ae359bdf2d20e90bedef18dfdbd965c9ebae1cee398474a0c349590fda7c8b874e1a2ceee62e47e5e6ec1730e76b0f24e502164357571854271fc12cc684 languageName: node linkType: hard -"@babel/plugin-transform-modules-amd@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-modules-amd@npm:7.24.1" +"@babel/plugin-transform-modules-amd@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-modules-amd@npm:7.24.7" dependencies: - "@babel/helper-module-transforms": "npm:^7.23.3" - "@babel/helper-plugin-utils": "npm:^7.24.0" + "@babel/helper-module-transforms": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.24.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/71fd04e5e7026e6e52701214b1e9f7508ba371b757e5075fbb938a79235ed66a54ce65f89bb92b59159e9f03f01b392e6c4de6d255b948bec975a90cfd6809ef + checksum: 10c0/6df7de7fce34117ca4b2fa07949b12274c03668cbfe21481c4037b6300796d50ae40f4f170527b61b70a67f26db906747797e30dbd0d9809a441b6e220b5728f languageName: node linkType: hard @@ -930,56 +1212,69 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-modules-systemjs@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-modules-systemjs@npm:7.24.1" +"@babel/plugin-transform-modules-commonjs@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-modules-commonjs@npm:7.24.7" dependencies: - "@babel/helper-hoist-variables": "npm:^7.22.5" - "@babel/helper-module-transforms": "npm:^7.23.3" - "@babel/helper-plugin-utils": "npm:^7.24.0" - "@babel/helper-validator-identifier": "npm:^7.22.20" + "@babel/helper-module-transforms": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.24.7" + "@babel/helper-simple-access": "npm:^7.24.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/38145f8abe8a4ce2b41adabe5d65eb7bd54a139dc58e2885fec975eb5cf247bd938c1dd9f09145c46dbe57d25dd0ef7f00a020e5eb0cbe8195b2065d51e2d93d + checksum: 10c0/9442292b3daf6a5076cdc3c4c32bf423bda824ccaeb0dd0dc8b3effaa1fecfcb0130ae6e647fef12a5d5ff25bcc99a0d6bfc6d24a7525345e1bcf46fcdf81752 languageName: node linkType: hard -"@babel/plugin-transform-modules-umd@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-modules-umd@npm:7.24.1" +"@babel/plugin-transform-modules-systemjs@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-modules-systemjs@npm:7.24.7" dependencies: - "@babel/helper-module-transforms": "npm:^7.23.3" - "@babel/helper-plugin-utils": "npm:^7.24.0" + "@babel/helper-hoist-variables": "npm:^7.24.7" + "@babel/helper-module-transforms": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.24.7" + "@babel/helper-validator-identifier": "npm:^7.24.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/14c90c58562b54e17fe4a8ded3f627f9a993648f8378ef00cb2f6c34532032b83290d2ad54c7fff4f0c2cd49091bda780f8cc28926ec4b77a6c2141105a2e699 + checksum: 10c0/e2a795e0a6baafe26f4a74010622212ddd873170742d673f450e0097f8d984f6e6a95eb8ce41b05071ee9790c4be088b33801aaab3f78ee202c567634e52a331 languageName: node linkType: hard -"@babel/plugin-transform-named-capturing-groups-regex@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-named-capturing-groups-regex@npm:7.22.5" +"@babel/plugin-transform-modules-umd@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-modules-umd@npm:7.24.7" dependencies: - "@babel/helper-create-regexp-features-plugin": "npm:^7.22.5" - "@babel/helper-plugin-utils": "npm:^7.22.5" + "@babel/helper-module-transforms": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.24.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/7791d290121db210e4338b94b4a069a1a79e4c7a8d7638d8159a97b281851bbed3048dac87a4ae718ad963005e6c14a5d28e6db2eeb2b04e031cee92fb312f85 + languageName: node + linkType: hard + +"@babel/plugin-transform-named-capturing-groups-regex@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-named-capturing-groups-regex@npm:7.24.7" + dependencies: + "@babel/helper-create-regexp-features-plugin": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.24.7" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10c0/b0b072bef303670b5a98307bc37d1ac326cb7ad40ea162b89a03c2ffc465451be7ef05be95cb81ed28bfeb29670dc98fe911f793a67bceab18b4cb4c81ef48f3 + checksum: 10c0/41a0b0f2d0886318237440aa3b489f6d0305361d8671121777d9ff89f9f6de9d0c02ce93625049061426c8994064ef64deae8b819d1b14c00374a6a2336fb5d9 languageName: node linkType: hard -"@babel/plugin-transform-new-target@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-new-target@npm:7.24.1" +"@babel/plugin-transform-new-target@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-new-target@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.0" + "@babel/helper-plugin-utils": "npm:^7.24.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/c4cabe628163855f175a8799eb73d692b6f1dc347aae5022af0c253f80c92edb962e48ddccc98b691eff3d5d8e53c9a8f10894c33ba4cebc2e2f8f8fe554fb7a + checksum: 10c0/2540808a35e1a978e537334c43dab439cf24c93e7beb213a2e71902f6710e60e0184316643790c0a6644e7a8021e52f7ab8165e6b3e2d6651be07bdf517b67df languageName: node linkType: hard -"@babel/plugin-transform-nullish-coalescing-operator@npm:^7.22.11, @babel/plugin-transform-nullish-coalescing-operator@npm:^7.24.1": +"@babel/plugin-transform-nullish-coalescing-operator@npm:^7.22.11": version: 7.24.1 resolution: "@babel/plugin-transform-nullish-coalescing-operator@npm:7.24.1" dependencies: @@ -991,57 +1286,69 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-numeric-separator@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-numeric-separator@npm:7.24.1" +"@babel/plugin-transform-nullish-coalescing-operator@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-nullish-coalescing-operator@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.0" + "@babel/helper-plugin-utils": "npm:^7.24.7" + "@babel/plugin-syntax-nullish-coalescing-operator": "npm:^7.8.3" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/7243c8ff734ed5ef759dd8768773c4b443c12e792727e759a1aec2c7fa2bfdd24f1ecb42e292a7b3d8bd3d7f7b861cf256a8eb4ba144fc9cc463892c303083d9 + languageName: node + linkType: hard + +"@babel/plugin-transform-numeric-separator@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-numeric-separator@npm:7.24.7" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.24.7" "@babel/plugin-syntax-numeric-separator": "npm:^7.10.4" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/15e2b83292e586fb4f5b4b4021d4821a806ca6de2b77d5ad6c4e07aa7afa23704e31b4d683dac041afc69ac51b2461b96e8c98e46311cc1faba54c73f235044f + checksum: 10c0/e18e09ca5a6342645d00ede477731aa6e8714ff357efc9d7cda5934f1703b3b6fb7d3298dce3ce3ba53e9ff1158eab8f1aadc68874cc21a6099d33a1ca457789 languageName: node linkType: hard -"@babel/plugin-transform-object-rest-spread@npm:^7.24.5": - version: 7.24.5 - resolution: "@babel/plugin-transform-object-rest-spread@npm:7.24.5" +"@babel/plugin-transform-object-rest-spread@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-object-rest-spread@npm:7.24.7" dependencies: - "@babel/helper-compilation-targets": "npm:^7.23.6" - "@babel/helper-plugin-utils": "npm:^7.24.5" + "@babel/helper-compilation-targets": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.24.7" "@babel/plugin-syntax-object-rest-spread": "npm:^7.8.3" - "@babel/plugin-transform-parameters": "npm:^7.24.5" + "@babel/plugin-transform-parameters": "npm:^7.24.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/91d7303af9b5744b8f569c1b8e45c9c9322ded05e7ee94e71b9ff2327f0d2c7b5aa87e040697a6baacc2dcb5c5e5e00913087c36f24c006bdaa4f958fd5bfd2d + checksum: 10c0/9ad64bc003f583030f9da50614b485852f8edac93f8faf5d1cd855201a4852f37c5255ae4daf70dd4375bdd4874e16e39b91f680d4668ec219ba05441ce286eb languageName: node linkType: hard -"@babel/plugin-transform-object-super@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-object-super@npm:7.24.1" +"@babel/plugin-transform-object-super@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-object-super@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.0" - "@babel/helper-replace-supers": "npm:^7.24.1" + "@babel/helper-plugin-utils": "npm:^7.24.7" + "@babel/helper-replace-supers": "npm:^7.24.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/d30e6b9e59a707efd7ed524fc0a8deeea046011a6990250f2e9280516683138e2d13d9c52daf41d78407bdab0378aef7478326f2a15305b773d851cb6e106157 + checksum: 10c0/770cebb4b4e1872c216b17069db9a13b87dfee747d359dc56d9fcdd66e7544f92dc6ab1861a4e7e0528196aaff2444e4f17dc84efd8eaf162d542b4ba0943869 languageName: node linkType: hard -"@babel/plugin-transform-optional-catch-binding@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-optional-catch-binding@npm:7.24.1" +"@babel/plugin-transform-optional-catch-binding@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-optional-catch-binding@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.0" + "@babel/helper-plugin-utils": "npm:^7.24.7" "@babel/plugin-syntax-optional-catch-binding": "npm:^7.8.3" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/68408b9ef772d9aa5dccf166c86dc4d2505990ce93e03dcfc65c73fb95c2511248e009ba9ccf5b96405fb85de1c16ad8291016b1cc5689ee4becb1e3050e0ae7 + checksum: 10c0/1e2f10a018f7d03b3bde6c0b70d063df8d5dd5209861d4467726cf834f5e3d354e2276079dc226aa8e6ece35f5c9b264d64b8229a8bb232829c01e561bcfb07a languageName: node linkType: hard -"@babel/plugin-transform-optional-chaining@npm:^7.23.0, @babel/plugin-transform-optional-chaining@npm:^7.24.1, @babel/plugin-transform-optional-chaining@npm:^7.24.5": +"@babel/plugin-transform-optional-chaining@npm:^7.23.0": version: 7.24.5 resolution: "@babel/plugin-transform-optional-chaining@npm:7.24.5" dependencies: @@ -1054,18 +1361,31 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-parameters@npm:^7.24.5": - version: 7.24.5 - resolution: "@babel/plugin-transform-parameters@npm:7.24.5" +"@babel/plugin-transform-optional-chaining@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-optional-chaining@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.5" + "@babel/helper-plugin-utils": "npm:^7.24.7" + "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.24.7" + "@babel/plugin-syntax-optional-chaining": "npm:^7.8.3" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/e08b8c46a24b1b21dde7783cb0aeb56ffe9ef6d6f1795649ce76273657158d3bfa5370c6594200ed7d371983b599c8e194b76108dffed9ab5746fe630ef2e8f5 + checksum: 10c0/b9e3649b299e103b0d1767bbdba56574d065ff776e5350403b7bfd4e3982743c0cdb373d33bdbf94fa3c322d155e45d0aad946acf0aa741b870aed22dfec8b8e languageName: node linkType: hard -"@babel/plugin-transform-private-methods@npm:^7.22.5, @babel/plugin-transform-private-methods@npm:^7.24.1": +"@babel/plugin-transform-parameters@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-parameters@npm:7.24.7" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.24.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/53bf190d6926771545d5184f1f5f3f5144d0f04f170799ad46a43f683a01fab8d5fe4d2196cf246774530990c31fe1f2b9f0def39f0a5ddbb2340b924f5edf01 + languageName: node + linkType: hard + +"@babel/plugin-transform-private-methods@npm:^7.22.5": version: 7.24.1 resolution: "@babel/plugin-transform-private-methods@npm:7.24.1" dependencies: @@ -1077,129 +1397,119 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-private-property-in-object@npm:^7.24.5": - version: 7.24.5 - resolution: "@babel/plugin-transform-private-property-in-object@npm:7.24.5" +"@babel/plugin-transform-private-methods@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-private-methods@npm:7.24.7" dependencies: - "@babel/helper-annotate-as-pure": "npm:^7.22.5" - "@babel/helper-create-class-features-plugin": "npm:^7.24.5" - "@babel/helper-plugin-utils": "npm:^7.24.5" + "@babel/helper-create-class-features-plugin": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.24.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/5b7bf923b738fbe3ad6c33b260e0a7451be288edfe4ef516303fa787a1870cd87533bfbf61abb779c22ed003c2fc484dec2436fe75a48756f686c0241173d364 + languageName: node + linkType: hard + +"@babel/plugin-transform-private-property-in-object@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-private-property-in-object@npm:7.24.7" + dependencies: + "@babel/helper-annotate-as-pure": "npm:^7.24.7" + "@babel/helper-create-class-features-plugin": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.24.7" "@babel/plugin-syntax-private-property-in-object": "npm:^7.14.5" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/de7182bfde298e56c08a5d7ee1156f83c9af8c856bbe2248438848846a4ce544e050666bd0482e16a6006195e8be4923abd14650bef51fa0edd7f82014c2efcd + checksum: 10c0/c6fa7defb90b1b0ed46f24ff94ff2e77f44c1f478d1090e81712f33cf992dda5ba347016f030082a2f770138bac6f4a9c2c1565e9f767a125901c77dd9c239ba languageName: node linkType: hard -"@babel/plugin-transform-property-literals@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-property-literals@npm:7.24.1" +"@babel/plugin-transform-property-literals@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-property-literals@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.0" + "@babel/helper-plugin-utils": "npm:^7.24.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/3bf3e01f7bb8215a8b6d0081b6f86fea23e3a4543b619e059a264ede028bc58cdfb0acb2c43271271915a74917effa547bc280ac636a9901fa9f2fb45623f87e + checksum: 10c0/52564b58f3d111dc02d241d5892a4b01512e98dfdf6ef11b0ed62f8b11b0acacccef0fc229b44114fe8d1a57a8b70780b11bdd18b807d3754a781a07d8f57433 languageName: node linkType: hard -"@babel/plugin-transform-react-jsx-self@npm:^7.23.3": - version: 7.24.5 - resolution: "@babel/plugin-transform-react-jsx-self@npm:7.24.5" +"@babel/plugin-transform-regenerator@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-regenerator@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.5" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/66537821496c752bdfc5ef05ed590590aaf87f8b060a3cabe800c0681711bf9dbea57d09cab02c77340f48cb779beeb346f6af775c590aa37159a19026b619c5 - languageName: node - linkType: hard - -"@babel/plugin-transform-react-jsx-source@npm:^7.23.3": - version: 7.24.1 - resolution: "@babel/plugin-transform-react-jsx-source@npm:7.24.1" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.0" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/ea8e3263c0dc51fbc97c156cc647150a757cc56de10781287353d0ce9b2dcd6b6d93d573c0142d7daf5d6fb554c74fa1971ae60764924ea711161d8458739b63 - languageName: node - linkType: hard - -"@babel/plugin-transform-regenerator@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-regenerator@npm:7.24.1" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.0" + "@babel/helper-plugin-utils": "npm:^7.24.7" regenerator-transform: "npm:^0.15.2" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/0a333585d7c0b38d31cc549d0f3cf7c396d1d50b6588a307dc58325505ddd4f5446188bc536c4779431b396251801b3f32d6d8e87db8274bc84e8c41950737f7 + checksum: 10c0/d2dc2c788fdae9d97217e70d46ba8ca9db0035c398dc3e161552b0c437113719a75c04f201f9c91ddc8d28a1da60d0b0853f616dead98a396abb9c845c44892b languageName: node linkType: hard -"@babel/plugin-transform-reserved-words@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-reserved-words@npm:7.24.1" +"@babel/plugin-transform-reserved-words@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-reserved-words@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.0" + "@babel/helper-plugin-utils": "npm:^7.24.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/936d6e73cafb2cbb495f6817c6f8463288dbc9ab3c44684b931ebc1ece24f0d55dfabc1a75ba1de5b48843d0fef448dcfdbecb8485e4014f8f41d0d1440c536f + checksum: 10c0/2229de2768615e7f5dc0bbc55bc121b5678fd6d2febd46c74a58e42bb894d74cd5955c805880f4e02d0e1cf94f6886270eda7fafc1be9305a1ec3b9fd1d063f5 languageName: node linkType: hard -"@babel/plugin-transform-shorthand-properties@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-shorthand-properties@npm:7.24.1" +"@babel/plugin-transform-shorthand-properties@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-shorthand-properties@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.0" + "@babel/helper-plugin-utils": "npm:^7.24.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/8273347621183aada3cf1f3019d8d5f29467ba13a75b72cb405bc7f23b7e05fd85f4edb1e4d9f0103153dddb61826a42dc24d466480d707f8932c1923a4c25fa + checksum: 10c0/41b155bdbb3be66618358488bf7731b3b2e8fff2de3dbfd541847720a9debfcec14db06a117abedd03c9cd786db20a79e2a86509a4f19513f6e1b610520905cf languageName: node linkType: hard -"@babel/plugin-transform-spread@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-spread@npm:7.24.1" +"@babel/plugin-transform-spread@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-spread@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.0" - "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.22.5" + "@babel/helper-plugin-utils": "npm:^7.24.7" + "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.24.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/50a0302e344546d57e5c9f4dea575f88e084352eeac4e9a3e238c41739eef2df1daf4a7ebbb3ccb7acd3447f6a5ce9938405f98bf5f5583deceb8257f5a673c9 + checksum: 10c0/facba1553035f76b0d2930d4ada89a8cd0f45b79579afd35baefbfaf12e3b86096995f4b0c402cf9ee23b3f2ea0a4460c3b1ec0c192d340962c948bb223d4e66 languageName: node linkType: hard -"@babel/plugin-transform-sticky-regex@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-sticky-regex@npm:7.24.1" +"@babel/plugin-transform-sticky-regex@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-sticky-regex@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.0" + "@babel/helper-plugin-utils": "npm:^7.24.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/786fe2ae11ef9046b9fa95677935abe495031eebf1274ad03f2054a20adea7b9dbd00336ac0b143f7924bc562e5e09793f6e8613607674b97e067d4838ccc4a0 + checksum: 10c0/5a74ed2ed0a3ab51c3d15fcaf09d9e2fe915823535c7a4d7b019813177d559b69677090e189ec3d5d08b619483eb5ad371fbcfbbff5ace2a76ba33ee566a1109 languageName: node linkType: hard -"@babel/plugin-transform-template-literals@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-template-literals@npm:7.24.1" +"@babel/plugin-transform-template-literals@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-template-literals@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.0" + "@babel/helper-plugin-utils": "npm:^7.24.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/f73bcda5488eb81c6e7a876498d9e6b72be32fca5a4d9db9053491a2d1300cd27b889b463fd2558f3cd5826a85ed00f61d81b234aa55cb5a0abf1b6fa1bd5026 + checksum: 10c0/3630f966257bcace122f04d3157416a09d40768c44c3a800855da81146b009187daa21859d1c3b7d13f4e19e8888e60613964b175b2275d451200fb6d8d6cfe6 languageName: node linkType: hard -"@babel/plugin-transform-typeof-symbol@npm:^7.24.5": - version: 7.24.5 - resolution: "@babel/plugin-transform-typeof-symbol@npm:7.24.5" +"@babel/plugin-transform-typeof-symbol@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-typeof-symbol@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.5" + "@babel/helper-plugin-utils": "npm:^7.24.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/5f0b5e33a86b84d89673829ffa2b5f175e102d3d0f45917cda121bc2b3650e1e5bb7a653f8cc1059c5b3a7b2e91e1aafd6623028b96ae752715cc5c2171c96e5 + checksum: 10c0/5649e7260a138681e68b296ab5931e2b1f132f287d6b4131d49b24f9dc20d62902b7e9d63c4d2decd5683b41df35ef4b9b03f58c7f9f65e4c25a6d8bbf04e9e9 languageName: node linkType: hard @@ -1217,73 +1527,73 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-unicode-escapes@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-unicode-escapes@npm:7.24.1" +"@babel/plugin-transform-unicode-escapes@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-unicode-escapes@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.0" + "@babel/helper-plugin-utils": "npm:^7.24.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/67a72a1ed99639de6a93aead35b1993cb3f0eb178a8991fcef48732c38c9f0279c85bbe1e2e2477b85afea873e738ff0955a35057635ce67bc149038e2d8a28e + checksum: 10c0/8b18e2e66af33471a6971289492beff5c240e56727331db1d34c4338a6a368a82a7ed6d57ec911001b6d65643aed76531e1e7cac93265fb3fb2717f54d845e69 languageName: node linkType: hard -"@babel/plugin-transform-unicode-property-regex@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-unicode-property-regex@npm:7.24.1" +"@babel/plugin-transform-unicode-property-regex@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-unicode-property-regex@npm:7.24.7" dependencies: - "@babel/helper-create-regexp-features-plugin": "npm:^7.22.15" - "@babel/helper-plugin-utils": "npm:^7.24.0" + "@babel/helper-create-regexp-features-plugin": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.24.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/d9d9752df7d51bf9357c0bf3762fe16b8c841fca9ecf4409a16f15ccc34be06e8e71abfaee1251b7d451227e70e6b873b36f86b090efdb20f6f7de5fdb6c7a05 + checksum: 10c0/bc57656eb94584d1b74a385d378818ac2b3fca642e3f649fead8da5fb3f9de22f8461185936915dfb33d5a9104e62e7a47828331248b09d28bb2d59e9276de3e languageName: node linkType: hard -"@babel/plugin-transform-unicode-regex@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-unicode-regex@npm:7.24.1" +"@babel/plugin-transform-unicode-regex@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-unicode-regex@npm:7.24.7" dependencies: - "@babel/helper-create-regexp-features-plugin": "npm:^7.22.15" - "@babel/helper-plugin-utils": "npm:^7.24.0" + "@babel/helper-create-regexp-features-plugin": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.24.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/6046ab38e5d14ed97dbb921bd79ac1d7ad9d3286da44a48930e980b16896db2df21e093563ec3c916a630dc346639bf47c5924a33902a06fe3bbb5cdc7ef5f2f + checksum: 10c0/83f72a345b751566b601dc4d07e9f2c8f1bc0e0c6f7abb56ceb3095b3c9d304de73f85f2f477a09f8cc7edd5e65afd0ff9e376cdbcbea33bc0c28f3705b38fd9 languageName: node linkType: hard -"@babel/plugin-transform-unicode-sets-regex@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-unicode-sets-regex@npm:7.24.1" +"@babel/plugin-transform-unicode-sets-regex@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-unicode-sets-regex@npm:7.24.7" dependencies: - "@babel/helper-create-regexp-features-plugin": "npm:^7.22.15" - "@babel/helper-plugin-utils": "npm:^7.24.0" + "@babel/helper-create-regexp-features-plugin": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.24.7" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10c0/b6c1f6b90afeeddf97e5713f72575787fcb7179be7b4c961869bfbc66915f66540dc49da93e4369da15596bd44b896d1eb8a50f5e1fd907abd7a1a625901006b + checksum: 10c0/7457c0ee8e80a80cb6fdc1fe54ab115b52815627616ce9151be8ef292fc99d04a910ec24f11382b4f124b89374264396892b086886bd2a9c2317904d87c9b21b languageName: node linkType: hard -"@babel/preset-env@npm:^7.23.2": - version: 7.24.5 - resolution: "@babel/preset-env@npm:7.24.5" +"@babel/preset-env@npm:^7.24.4": + version: 7.24.7 + resolution: "@babel/preset-env@npm:7.24.7" dependencies: - "@babel/compat-data": "npm:^7.24.4" - "@babel/helper-compilation-targets": "npm:^7.23.6" - "@babel/helper-plugin-utils": "npm:^7.24.5" - "@babel/helper-validator-option": "npm:^7.23.5" - "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "npm:^7.24.5" - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "npm:^7.24.1" - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "npm:^7.24.1" - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "npm:^7.24.1" + "@babel/compat-data": "npm:^7.24.7" + "@babel/helper-compilation-targets": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.24.7" + "@babel/helper-validator-option": "npm:^7.24.7" + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "npm:^7.24.7" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "npm:^7.24.7" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "npm:^7.24.7" + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "npm:^7.24.7" "@babel/plugin-proposal-private-property-in-object": "npm:7.21.0-placeholder-for-preset-env.2" "@babel/plugin-syntax-async-generators": "npm:^7.8.4" "@babel/plugin-syntax-class-properties": "npm:^7.12.13" "@babel/plugin-syntax-class-static-block": "npm:^7.14.5" "@babel/plugin-syntax-dynamic-import": "npm:^7.8.3" "@babel/plugin-syntax-export-namespace-from": "npm:^7.8.3" - "@babel/plugin-syntax-import-assertions": "npm:^7.24.1" - "@babel/plugin-syntax-import-attributes": "npm:^7.24.1" + "@babel/plugin-syntax-import-assertions": "npm:^7.24.7" + "@babel/plugin-syntax-import-attributes": "npm:^7.24.7" "@babel/plugin-syntax-import-meta": "npm:^7.10.4" "@babel/plugin-syntax-json-strings": "npm:^7.8.3" "@babel/plugin-syntax-logical-assignment-operators": "npm:^7.10.4" @@ -1295,54 +1605,54 @@ __metadata: "@babel/plugin-syntax-private-property-in-object": "npm:^7.14.5" "@babel/plugin-syntax-top-level-await": "npm:^7.14.5" "@babel/plugin-syntax-unicode-sets-regex": "npm:^7.18.6" - "@babel/plugin-transform-arrow-functions": "npm:^7.24.1" - "@babel/plugin-transform-async-generator-functions": "npm:^7.24.3" - "@babel/plugin-transform-async-to-generator": "npm:^7.24.1" - "@babel/plugin-transform-block-scoped-functions": "npm:^7.24.1" - "@babel/plugin-transform-block-scoping": "npm:^7.24.5" - "@babel/plugin-transform-class-properties": "npm:^7.24.1" - "@babel/plugin-transform-class-static-block": "npm:^7.24.4" - "@babel/plugin-transform-classes": "npm:^7.24.5" - "@babel/plugin-transform-computed-properties": "npm:^7.24.1" - "@babel/plugin-transform-destructuring": "npm:^7.24.5" - "@babel/plugin-transform-dotall-regex": "npm:^7.24.1" - "@babel/plugin-transform-duplicate-keys": "npm:^7.24.1" - "@babel/plugin-transform-dynamic-import": "npm:^7.24.1" - "@babel/plugin-transform-exponentiation-operator": "npm:^7.24.1" - "@babel/plugin-transform-export-namespace-from": "npm:^7.24.1" - "@babel/plugin-transform-for-of": "npm:^7.24.1" - "@babel/plugin-transform-function-name": "npm:^7.24.1" - "@babel/plugin-transform-json-strings": "npm:^7.24.1" - "@babel/plugin-transform-literals": "npm:^7.24.1" - "@babel/plugin-transform-logical-assignment-operators": "npm:^7.24.1" - "@babel/plugin-transform-member-expression-literals": "npm:^7.24.1" - "@babel/plugin-transform-modules-amd": "npm:^7.24.1" - "@babel/plugin-transform-modules-commonjs": "npm:^7.24.1" - "@babel/plugin-transform-modules-systemjs": "npm:^7.24.1" - "@babel/plugin-transform-modules-umd": "npm:^7.24.1" - "@babel/plugin-transform-named-capturing-groups-regex": "npm:^7.22.5" - "@babel/plugin-transform-new-target": "npm:^7.24.1" - "@babel/plugin-transform-nullish-coalescing-operator": "npm:^7.24.1" - "@babel/plugin-transform-numeric-separator": "npm:^7.24.1" - "@babel/plugin-transform-object-rest-spread": "npm:^7.24.5" - "@babel/plugin-transform-object-super": "npm:^7.24.1" - "@babel/plugin-transform-optional-catch-binding": "npm:^7.24.1" - "@babel/plugin-transform-optional-chaining": "npm:^7.24.5" - "@babel/plugin-transform-parameters": "npm:^7.24.5" - "@babel/plugin-transform-private-methods": "npm:^7.24.1" - "@babel/plugin-transform-private-property-in-object": "npm:^7.24.5" - "@babel/plugin-transform-property-literals": "npm:^7.24.1" - "@babel/plugin-transform-regenerator": "npm:^7.24.1" - "@babel/plugin-transform-reserved-words": "npm:^7.24.1" - "@babel/plugin-transform-shorthand-properties": "npm:^7.24.1" - "@babel/plugin-transform-spread": "npm:^7.24.1" - "@babel/plugin-transform-sticky-regex": "npm:^7.24.1" - "@babel/plugin-transform-template-literals": "npm:^7.24.1" - "@babel/plugin-transform-typeof-symbol": "npm:^7.24.5" - "@babel/plugin-transform-unicode-escapes": "npm:^7.24.1" - "@babel/plugin-transform-unicode-property-regex": "npm:^7.24.1" - "@babel/plugin-transform-unicode-regex": "npm:^7.24.1" - "@babel/plugin-transform-unicode-sets-regex": "npm:^7.24.1" + "@babel/plugin-transform-arrow-functions": "npm:^7.24.7" + "@babel/plugin-transform-async-generator-functions": "npm:^7.24.7" + "@babel/plugin-transform-async-to-generator": "npm:^7.24.7" + "@babel/plugin-transform-block-scoped-functions": "npm:^7.24.7" + "@babel/plugin-transform-block-scoping": "npm:^7.24.7" + "@babel/plugin-transform-class-properties": "npm:^7.24.7" + "@babel/plugin-transform-class-static-block": "npm:^7.24.7" + "@babel/plugin-transform-classes": "npm:^7.24.7" + "@babel/plugin-transform-computed-properties": "npm:^7.24.7" + "@babel/plugin-transform-destructuring": "npm:^7.24.7" + "@babel/plugin-transform-dotall-regex": "npm:^7.24.7" + "@babel/plugin-transform-duplicate-keys": "npm:^7.24.7" + "@babel/plugin-transform-dynamic-import": "npm:^7.24.7" + "@babel/plugin-transform-exponentiation-operator": "npm:^7.24.7" + "@babel/plugin-transform-export-namespace-from": "npm:^7.24.7" + "@babel/plugin-transform-for-of": "npm:^7.24.7" + "@babel/plugin-transform-function-name": "npm:^7.24.7" + "@babel/plugin-transform-json-strings": "npm:^7.24.7" + "@babel/plugin-transform-literals": "npm:^7.24.7" + "@babel/plugin-transform-logical-assignment-operators": "npm:^7.24.7" + "@babel/plugin-transform-member-expression-literals": "npm:^7.24.7" + "@babel/plugin-transform-modules-amd": "npm:^7.24.7" + "@babel/plugin-transform-modules-commonjs": "npm:^7.24.7" + "@babel/plugin-transform-modules-systemjs": "npm:^7.24.7" + "@babel/plugin-transform-modules-umd": "npm:^7.24.7" + "@babel/plugin-transform-named-capturing-groups-regex": "npm:^7.24.7" + "@babel/plugin-transform-new-target": "npm:^7.24.7" + "@babel/plugin-transform-nullish-coalescing-operator": "npm:^7.24.7" + "@babel/plugin-transform-numeric-separator": "npm:^7.24.7" + "@babel/plugin-transform-object-rest-spread": "npm:^7.24.7" + "@babel/plugin-transform-object-super": "npm:^7.24.7" + "@babel/plugin-transform-optional-catch-binding": "npm:^7.24.7" + "@babel/plugin-transform-optional-chaining": "npm:^7.24.7" + "@babel/plugin-transform-parameters": "npm:^7.24.7" + "@babel/plugin-transform-private-methods": "npm:^7.24.7" + "@babel/plugin-transform-private-property-in-object": "npm:^7.24.7" + "@babel/plugin-transform-property-literals": "npm:^7.24.7" + "@babel/plugin-transform-regenerator": "npm:^7.24.7" + "@babel/plugin-transform-reserved-words": "npm:^7.24.7" + "@babel/plugin-transform-shorthand-properties": "npm:^7.24.7" + "@babel/plugin-transform-spread": "npm:^7.24.7" + "@babel/plugin-transform-sticky-regex": "npm:^7.24.7" + "@babel/plugin-transform-template-literals": "npm:^7.24.7" + "@babel/plugin-transform-typeof-symbol": "npm:^7.24.7" + "@babel/plugin-transform-unicode-escapes": "npm:^7.24.7" + "@babel/plugin-transform-unicode-property-regex": "npm:^7.24.7" + "@babel/plugin-transform-unicode-regex": "npm:^7.24.7" + "@babel/plugin-transform-unicode-sets-regex": "npm:^7.24.7" "@babel/preset-modules": "npm:0.1.6-no-external-plugins" babel-plugin-polyfill-corejs2: "npm:^0.4.10" babel-plugin-polyfill-corejs3: "npm:^0.10.4" @@ -1351,7 +1661,7 @@ __metadata: semver: "npm:^6.3.1" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/2cc0edae09205d6409a75d02e53aaa1c590e89adbb7b389019c7b75e4c47b6b63eeb1a816df5c42b672ce410747e7ddc23b6747e8e41a6c95d6fa00c665509e2 + checksum: 10c0/c6714346f3ccc1271eaa90051c75b8bb57b20ef57408ab68740e2f3552693ae0ee5a4bcce3a00211d40e4947af1f7b8ab422066b953f0095461937fb72d11274 languageName: node linkType: hard @@ -1428,7 +1738,7 @@ __metadata: languageName: node linkType: hard -"@babel/runtime@npm:^7.13.10, @babel/runtime@npm:^7.17.8, @babel/runtime@npm:^7.21.0, @babel/runtime@npm:^7.7.2, @babel/runtime@npm:^7.8.4, @babel/runtime@npm:^7.8.7": +"@babel/runtime@npm:^7.17.8, @babel/runtime@npm:^7.21.0, @babel/runtime@npm:^7.7.2, @babel/runtime@npm:^7.8.4, @babel/runtime@npm:^7.8.7": version: 7.24.5 resolution: "@babel/runtime@npm:7.24.5" dependencies: @@ -1448,7 +1758,18 @@ __metadata: languageName: node linkType: hard -"@babel/traverse@npm:^7.18.9, @babel/traverse@npm:^7.23.2, @babel/traverse@npm:^7.24.5": +"@babel/template@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/template@npm:7.24.7" + dependencies: + "@babel/code-frame": "npm:^7.24.7" + "@babel/parser": "npm:^7.24.7" + "@babel/types": "npm:^7.24.7" + checksum: 10c0/95b0b3ee80fcef685b7f4426f5713a855ea2cd5ac4da829b213f8fb5afe48a2a14683c2ea04d446dbc7f711c33c5cd4a965ef34dcbe5bc387c9e966b67877ae3 + languageName: node + linkType: hard + +"@babel/traverse@npm:^7.18.9, @babel/traverse@npm:^7.24.5": version: 7.24.5 resolution: "@babel/traverse@npm:7.24.5" dependencies: @@ -1466,7 +1787,25 @@ __metadata: languageName: node linkType: hard -"@babel/types@npm:^7.0.0, @babel/types@npm:^7.18.9, @babel/types@npm:^7.20.7, @babel/types@npm:^7.22.15, @babel/types@npm:^7.22.5, @babel/types@npm:^7.23.0, @babel/types@npm:^7.24.0, @babel/types@npm:^7.24.5, @babel/types@npm:^7.4.4, @babel/types@npm:^7.8.3": +"@babel/traverse@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/traverse@npm:7.24.7" + dependencies: + "@babel/code-frame": "npm:^7.24.7" + "@babel/generator": "npm:^7.24.7" + "@babel/helper-environment-visitor": "npm:^7.24.7" + "@babel/helper-function-name": "npm:^7.24.7" + "@babel/helper-hoist-variables": "npm:^7.24.7" + "@babel/helper-split-export-declaration": "npm:^7.24.7" + "@babel/parser": "npm:^7.24.7" + "@babel/types": "npm:^7.24.7" + debug: "npm:^4.3.1" + globals: "npm:^11.1.0" + checksum: 10c0/a5135e589c3f1972b8877805f50a084a04865ccb1d68e5e1f3b94a8841b3485da4142e33413d8fd76bc0e6444531d3adf1f59f359c11ffac452b743d835068ab + languageName: node + linkType: hard + +"@babel/types@npm:^7.0.0, @babel/types@npm:^7.18.9, @babel/types@npm:^7.20.7, @babel/types@npm:^7.22.5, @babel/types@npm:^7.23.0, @babel/types@npm:^7.24.0, @babel/types@npm:^7.24.5, @babel/types@npm:^7.4.4, @babel/types@npm:^7.8.3": version: 7.24.5 resolution: "@babel/types@npm:7.24.5" dependencies: @@ -1477,6 +1816,17 @@ __metadata: languageName: node linkType: hard +"@babel/types@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/types@npm:7.24.7" + dependencies: + "@babel/helper-string-parser": "npm:^7.24.7" + "@babel/helper-validator-identifier": "npm:^7.24.7" + to-fast-properties: "npm:^2.0.0" + checksum: 10c0/d9ecbfc3eb2b05fb1e6eeea546836ac30d990f395ef3fe3f75ced777a222c3cfc4489492f72e0ce3d9a5a28860a1ce5f81e66b88cf5088909068b3ff4fab72c1 + languageName: node + linkType: hard + "@base2/pretty-print-object@npm:1.0.1": version: 1.0.1 resolution: "@base2/pretty-print-object@npm:1.0.1" @@ -1491,13 +1841,6 @@ __metadata: languageName: node linkType: hard -"@colors/colors@npm:1.5.0": - version: 1.5.0 - resolution: "@colors/colors@npm:1.5.0" - checksum: 10c0/eb42729851adca56d19a08e48d5a1e95efd2a32c55ae0323de8119052be0510d4b7a1611f2abcbf28c044a6c11e6b7d38f99fccdad7429300c37a8ea5fb95b44 - languageName: node - linkType: hard - "@colors/colors@npm:1.6.0, @colors/colors@npm:^1.6.0": version: 1.6.0 resolution: "@colors/colors@npm:1.6.0" @@ -1516,22 +1859,6 @@ __metadata: languageName: node linkType: hard -"@discoveryjs/json-ext@npm:^0.5.3": - version: 0.5.7 - resolution: "@discoveryjs/json-ext@npm:0.5.7" - checksum: 10c0/e10f1b02b78e4812646ddf289b7d9f2cb567d336c363b266bd50cd223cf3de7c2c74018d91cd2613041568397ef3a4a2b500aba588c6e5bd78c38374ba68f38c - languageName: node - linkType: hard - -"@emotion/use-insertion-effect-with-fallbacks@npm:^1.0.0": - version: 1.0.1 - resolution: "@emotion/use-insertion-effect-with-fallbacks@npm:1.0.1" - peerDependencies: - react: ">=16.8.0" - checksum: 10c0/a15b2167940e3a908160687b73fc4fcd81e59ab45136b6967f02c7c419d9a149acd22a416b325c389642d4f1c3d33cf4196cad6b618128b55b7c74f6807a240b - languageName: node - linkType: hard - "@esbuild/aix-ppc64@npm:0.20.2": version: 0.20.2 resolution: "@esbuild/aix-ppc64@npm:0.20.2" @@ -1539,10 +1866,10 @@ __metadata: languageName: node linkType: hard -"@esbuild/android-arm64@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/android-arm64@npm:0.18.20" - conditions: os=android & cpu=arm64 +"@esbuild/aix-ppc64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/aix-ppc64@npm:0.21.5" + conditions: os=aix & cpu=ppc64 languageName: node linkType: hard @@ -1553,10 +1880,10 @@ __metadata: languageName: node linkType: hard -"@esbuild/android-arm@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/android-arm@npm:0.18.20" - conditions: os=android & cpu=arm +"@esbuild/android-arm64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/android-arm64@npm:0.21.5" + conditions: os=android & cpu=arm64 languageName: node linkType: hard @@ -1567,10 +1894,10 @@ __metadata: languageName: node linkType: hard -"@esbuild/android-x64@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/android-x64@npm:0.18.20" - conditions: os=android & cpu=x64 +"@esbuild/android-arm@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/android-arm@npm:0.21.5" + conditions: os=android & cpu=arm languageName: node linkType: hard @@ -1581,10 +1908,10 @@ __metadata: languageName: node linkType: hard -"@esbuild/darwin-arm64@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/darwin-arm64@npm:0.18.20" - conditions: os=darwin & cpu=arm64 +"@esbuild/android-x64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/android-x64@npm:0.21.5" + conditions: os=android & cpu=x64 languageName: node linkType: hard @@ -1595,10 +1922,10 @@ __metadata: languageName: node linkType: hard -"@esbuild/darwin-x64@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/darwin-x64@npm:0.18.20" - conditions: os=darwin & cpu=x64 +"@esbuild/darwin-arm64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/darwin-arm64@npm:0.21.5" + conditions: os=darwin & cpu=arm64 languageName: node linkType: hard @@ -1609,10 +1936,10 @@ __metadata: languageName: node linkType: hard -"@esbuild/freebsd-arm64@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/freebsd-arm64@npm:0.18.20" - conditions: os=freebsd & cpu=arm64 +"@esbuild/darwin-x64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/darwin-x64@npm:0.21.5" + conditions: os=darwin & cpu=x64 languageName: node linkType: hard @@ -1623,10 +1950,10 @@ __metadata: languageName: node linkType: hard -"@esbuild/freebsd-x64@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/freebsd-x64@npm:0.18.20" - conditions: os=freebsd & cpu=x64 +"@esbuild/freebsd-arm64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/freebsd-arm64@npm:0.21.5" + conditions: os=freebsd & cpu=arm64 languageName: node linkType: hard @@ -1637,10 +1964,10 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-arm64@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/linux-arm64@npm:0.18.20" - conditions: os=linux & cpu=arm64 +"@esbuild/freebsd-x64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/freebsd-x64@npm:0.21.5" + conditions: os=freebsd & cpu=x64 languageName: node linkType: hard @@ -1651,10 +1978,10 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-arm@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/linux-arm@npm:0.18.20" - conditions: os=linux & cpu=arm +"@esbuild/linux-arm64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-arm64@npm:0.21.5" + conditions: os=linux & cpu=arm64 languageName: node linkType: hard @@ -1665,10 +1992,10 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-ia32@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/linux-ia32@npm:0.18.20" - conditions: os=linux & cpu=ia32 +"@esbuild/linux-arm@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-arm@npm:0.21.5" + conditions: os=linux & cpu=arm languageName: node linkType: hard @@ -1679,10 +2006,10 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-loong64@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/linux-loong64@npm:0.18.20" - conditions: os=linux & cpu=loong64 +"@esbuild/linux-ia32@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-ia32@npm:0.21.5" + conditions: os=linux & cpu=ia32 languageName: node linkType: hard @@ -1693,10 +2020,10 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-mips64el@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/linux-mips64el@npm:0.18.20" - conditions: os=linux & cpu=mips64el +"@esbuild/linux-loong64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-loong64@npm:0.21.5" + conditions: os=linux & cpu=loong64 languageName: node linkType: hard @@ -1707,10 +2034,10 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-ppc64@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/linux-ppc64@npm:0.18.20" - conditions: os=linux & cpu=ppc64 +"@esbuild/linux-mips64el@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-mips64el@npm:0.21.5" + conditions: os=linux & cpu=mips64el languageName: node linkType: hard @@ -1721,10 +2048,10 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-riscv64@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/linux-riscv64@npm:0.18.20" - conditions: os=linux & cpu=riscv64 +"@esbuild/linux-ppc64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-ppc64@npm:0.21.5" + conditions: os=linux & cpu=ppc64 languageName: node linkType: hard @@ -1735,10 +2062,10 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-s390x@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/linux-s390x@npm:0.18.20" - conditions: os=linux & cpu=s390x +"@esbuild/linux-riscv64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-riscv64@npm:0.21.5" + conditions: os=linux & cpu=riscv64 languageName: node linkType: hard @@ -1749,10 +2076,10 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-x64@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/linux-x64@npm:0.18.20" - conditions: os=linux & cpu=x64 +"@esbuild/linux-s390x@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-s390x@npm:0.21.5" + conditions: os=linux & cpu=s390x languageName: node linkType: hard @@ -1763,10 +2090,10 @@ __metadata: languageName: node linkType: hard -"@esbuild/netbsd-x64@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/netbsd-x64@npm:0.18.20" - conditions: os=netbsd & cpu=x64 +"@esbuild/linux-x64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-x64@npm:0.21.5" + conditions: os=linux & cpu=x64 languageName: node linkType: hard @@ -1777,10 +2104,10 @@ __metadata: languageName: node linkType: hard -"@esbuild/openbsd-x64@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/openbsd-x64@npm:0.18.20" - conditions: os=openbsd & cpu=x64 +"@esbuild/netbsd-x64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/netbsd-x64@npm:0.21.5" + conditions: os=netbsd & cpu=x64 languageName: node linkType: hard @@ -1791,10 +2118,10 @@ __metadata: languageName: node linkType: hard -"@esbuild/sunos-x64@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/sunos-x64@npm:0.18.20" - conditions: os=sunos & cpu=x64 +"@esbuild/openbsd-x64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/openbsd-x64@npm:0.21.5" + conditions: os=openbsd & cpu=x64 languageName: node linkType: hard @@ -1805,10 +2132,10 @@ __metadata: languageName: node linkType: hard -"@esbuild/win32-arm64@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/win32-arm64@npm:0.18.20" - conditions: os=win32 & cpu=arm64 +"@esbuild/sunos-x64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/sunos-x64@npm:0.21.5" + conditions: os=sunos & cpu=x64 languageName: node linkType: hard @@ -1819,10 +2146,10 @@ __metadata: languageName: node linkType: hard -"@esbuild/win32-ia32@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/win32-ia32@npm:0.18.20" - conditions: os=win32 & cpu=ia32 +"@esbuild/win32-arm64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/win32-arm64@npm:0.21.5" + conditions: os=win32 & cpu=arm64 languageName: node linkType: hard @@ -1833,10 +2160,10 @@ __metadata: languageName: node linkType: hard -"@esbuild/win32-x64@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/win32-x64@npm:0.18.20" - conditions: os=win32 & cpu=x64 +"@esbuild/win32-ia32@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/win32-ia32@npm:0.21.5" + conditions: os=win32 & cpu=ia32 languageName: node linkType: hard @@ -1847,48 +2174,10 @@ __metadata: languageName: node linkType: hard -"@fal-works/esbuild-plugin-global-externals@npm:^2.1.2": - version: 2.1.2 - resolution: "@fal-works/esbuild-plugin-global-externals@npm:2.1.2" - checksum: 10c0/2c84a8e6121b00ac8e4eb2469ab8f188142db2f1927391758e5d0142cb684b7eb0fad0c9d6caf358616eb2a77af2c067e08b9ec8e05749b415fc4dd0ef96d0fe - languageName: node - linkType: hard - -"@floating-ui/core@npm:^1.0.0": - version: 1.6.2 - resolution: "@floating-ui/core@npm:1.6.2" - dependencies: - "@floating-ui/utils": "npm:^0.2.0" - checksum: 10c0/db2621dc682e7f043d6f118d087ae6a6bfdacf40b26ede561760dd53548c16e2e7c59031e013e37283801fa307b55e6de65bf3b316b96a054e4a6a7cb937c59e - languageName: node - linkType: hard - -"@floating-ui/dom@npm:^1.0.0": - version: 1.6.5 - resolution: "@floating-ui/dom@npm:1.6.5" - dependencies: - "@floating-ui/core": "npm:^1.0.0" - "@floating-ui/utils": "npm:^0.2.0" - checksum: 10c0/ebdc14806f786e60df8e7cc2c30bf9cd4d75fe734f06d755588bbdef2f60d0a0f21dffb14abdc58dea96e5577e2e366feca6d66ba962018efd1bc91a3ece4526 - languageName: node - linkType: hard - -"@floating-ui/react-dom@npm:^2.0.0": - version: 2.1.0 - resolution: "@floating-ui/react-dom@npm:2.1.0" - dependencies: - "@floating-ui/dom": "npm:^1.0.0" - peerDependencies: - react: ">=16.8.0" - react-dom: ">=16.8.0" - checksum: 10c0/9ee44dfeb27f585fb1e0114cbe37c72ff5d34149900f4f3013f6b0abf8c3365eab13286c360f97fbe0c44bb91a745e7a4c18b82d111990b45a7a7796dc55e461 - languageName: node - linkType: hard - -"@floating-ui/utils@npm:^0.2.0": - version: 0.2.2 - resolution: "@floating-ui/utils@npm:0.2.2" - checksum: 10c0/b2becdcafdf395af1641348da0031ff1eaad2bc60c22e14bd3abad4acfe2c8401e03097173d89a2f646a99b75819a78ef21ebb2572cab0042a56dd654b0065cd +"@esbuild/win32-x64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/win32-x64@npm:0.21.5" + conditions: os=win32 & cpu=x64 languageName: node linkType: hard @@ -1929,26 +2218,6 @@ __metadata: languageName: node linkType: hard -"@istanbuljs/load-nyc-config@npm:^1.0.0": - version: 1.1.0 - resolution: "@istanbuljs/load-nyc-config@npm:1.1.0" - dependencies: - camelcase: "npm:^5.3.1" - find-up: "npm:^4.1.0" - get-package-type: "npm:^0.1.0" - js-yaml: "npm:^3.13.1" - resolve-from: "npm:^5.0.0" - checksum: 10c0/dd2a8b094887da5a1a2339543a4933d06db2e63cbbc2e288eb6431bd832065df0c099d091b6a67436e71b7d6bf85f01ce7c15f9253b4cbebcc3b9a496165ba42 - languageName: node - linkType: hard - -"@istanbuljs/schema@npm:^0.1.2": - version: 0.1.3 - resolution: "@istanbuljs/schema@npm:0.1.3" - checksum: 10c0/61c5286771676c9ca3eb2bd8a7310a9c063fb6e0e9712225c8471c582d157392c88f5353581c8c9adbe0dff98892317d2fdfc56c3499aa42e0194405206a963a - languageName: node - linkType: hard - "@jest/schemas@npm:^29.6.3": version: 29.6.3 resolution: "@jest/schemas@npm:29.6.3" @@ -1958,46 +2227,9 @@ __metadata: languageName: node linkType: hard -"@jest/transform@npm:^29.3.1": - version: 29.7.0 - resolution: "@jest/transform@npm:29.7.0" - dependencies: - "@babel/core": "npm:^7.11.6" - "@jest/types": "npm:^29.6.3" - "@jridgewell/trace-mapping": "npm:^0.3.18" - babel-plugin-istanbul: "npm:^6.1.1" - chalk: "npm:^4.0.0" - convert-source-map: "npm:^2.0.0" - fast-json-stable-stringify: "npm:^2.1.0" - graceful-fs: "npm:^4.2.9" - jest-haste-map: "npm:^29.7.0" - jest-regex-util: "npm:^29.6.3" - jest-util: "npm:^29.7.0" - micromatch: "npm:^4.0.4" - pirates: "npm:^4.0.4" - slash: "npm:^3.0.0" - write-file-atomic: "npm:^4.0.2" - checksum: 10c0/7f4a7f73dcf45dfdf280c7aa283cbac7b6e5a904813c3a93ead7e55873761fc20d5c4f0191d2019004fac6f55f061c82eb3249c2901164ad80e362e7a7ede5a6 - languageName: node - linkType: hard - -"@jest/types@npm:^29.6.3": - version: 29.6.3 - resolution: "@jest/types@npm:29.6.3" - dependencies: - "@jest/schemas": "npm:^29.6.3" - "@types/istanbul-lib-coverage": "npm:^2.0.0" - "@types/istanbul-reports": "npm:^3.0.0" - "@types/node": "npm:*" - "@types/yargs": "npm:^17.0.8" - chalk: "npm:^4.0.0" - checksum: 10c0/ea4e493dd3fb47933b8ccab201ae573dcc451f951dc44ed2a86123cd8541b82aa9d2b1031caf9b1080d6673c517e2dcc25a44b2dc4f3fbc37bfc965d444888c0 - languageName: node - linkType: hard - -"@joshwooding/vite-plugin-react-docgen-typescript@npm:0.3.0": - version: 0.3.0 - resolution: "@joshwooding/vite-plugin-react-docgen-typescript@npm:0.3.0" +"@joshwooding/vite-plugin-react-docgen-typescript@npm:0.3.1": + version: 0.3.1 + resolution: "@joshwooding/vite-plugin-react-docgen-typescript@npm:0.3.1" dependencies: glob: "npm:^7.2.0" glob-promise: "npm:^4.2.0" @@ -2009,7 +2241,7 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 10c0/31098ad8fcc2440437534599c111d9f2951dd74821e8ba46c521b969bae4c918d830b7bb0484efbad29a51711bb62d3bc623d5a1ed5b1695b5b5594ea9dd4ca0 + checksum: 10c0/a9c7a03d7d1daf5bd64949255516ba64c88d5600366c8c74dcdb6f37c2a6099daaec02860b7587d2220e61afa47a0b2de17ef70d723c2db02f24e0890edfd9f3 languageName: node linkType: hard @@ -2045,7 +2277,7 @@ __metadata: languageName: node linkType: hard -"@jridgewell/trace-mapping@npm:^0.3.18, @jridgewell/trace-mapping@npm:^0.3.24, @jridgewell/trace-mapping@npm:^0.3.25": +"@jridgewell/trace-mapping@npm:^0.3.24, @jridgewell/trace-mapping@npm:^0.3.25": version: 0.3.25 resolution: "@jridgewell/trace-mapping@npm:0.3.25" dependencies: @@ -2055,33 +2287,15 @@ __metadata: languageName: node linkType: hard -"@juggle/resize-observer@npm:^3.3.1": - version: 3.4.0 - resolution: "@juggle/resize-observer@npm:3.4.0" - checksum: 10c0/12930242357298c6f2ad5d4ec7cf631dfb344ca7c8c830ab7f64e6ac11eb1aae486901d8d880fd08fb1b257800c160a0da3aee1e7ed9adac0ccbb9b7c5d93347 - languageName: node - linkType: hard - -"@mdx-js/react@npm:^2.1.5": - version: 2.3.0 - resolution: "@mdx-js/react@npm:2.3.0" +"@mdx-js/react@npm:^3.0.0": + version: 3.0.1 + resolution: "@mdx-js/react@npm:3.0.1" dependencies: "@types/mdx": "npm:^2.0.0" - "@types/react": "npm:>=16" peerDependencies: + "@types/react": ">=16" react: ">=16" - checksum: 10c0/6d647115703dbe258f7fe372499fa8c6fe17a053ff0f2a208111c9973a71ae738a0ed376770445d39194d217e00e1a015644b24f32c2f7cb4f57988de0649b15 - languageName: node - linkType: hard - -"@ndelangen/get-tarball@npm:^3.0.7": - version: 3.0.9 - resolution: "@ndelangen/get-tarball@npm:3.0.9" - dependencies: - gunzip-maybe: "npm:^1.4.2" - pump: "npm:^3.0.0" - tar-fs: "npm:^2.1.1" - checksum: 10c0/d66e76c6c990745d691c85d1dfa7f3dfd181405bb52c295baf4d1838b847d40c686e24602ea0ab1cdeb14d409db59f6bb9e2f96f56fe53da275da9cccf778e27 + checksum: 10c0/d210d926ef488d39ad65f04d821936b668eadcdde3b6421e94ec4200ca7ad17f17d24c5cbc543882586af9f08b10e2eea715c728ce6277487945e05c5199f532 languageName: node linkType: hard @@ -2159,574 +2373,6 @@ __metadata: languageName: node linkType: hard -"@radix-ui/number@npm:1.0.1": - version: 1.0.1 - resolution: "@radix-ui/number@npm:1.0.1" - dependencies: - "@babel/runtime": "npm:^7.13.10" - checksum: 10c0/42e4870cd14459da6da03e43c7507dc4c807ed787a87bda52912a0d1d6d5013326b697c18c9625fc6a2cf0af2b45d9c86747985b45358fd92ab646b983978e3c - languageName: node - linkType: hard - -"@radix-ui/primitive@npm:1.0.1": - version: 1.0.1 - resolution: "@radix-ui/primitive@npm:1.0.1" - dependencies: - "@babel/runtime": "npm:^7.13.10" - checksum: 10c0/912216455537db3ca77f3e7f70174fb2b454fbd4a37a0acb7cfadad9ab6131abdfb787472242574460a3c301edf45738340cc84f6717982710082840fde7d916 - languageName: node - linkType: hard - -"@radix-ui/react-arrow@npm:1.0.3": - version: 1.0.3 - resolution: "@radix-ui/react-arrow@npm:1.0.3" - dependencies: - "@babel/runtime": "npm:^7.13.10" - "@radix-ui/react-primitive": "npm:1.0.3" - peerDependencies: - "@types/react": "*" - "@types/react-dom": "*" - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - "@types/react": - optional: true - "@types/react-dom": - optional: true - checksum: 10c0/c931f6d7e0bac50fd1654a0303a303aff74a68a13a33a851a43a7c88677b53a92ca6557920b9105144a3002f899ce888437d20ddd7803a5c716edac99587626d - languageName: node - linkType: hard - -"@radix-ui/react-collection@npm:1.0.3": - version: 1.0.3 - resolution: "@radix-ui/react-collection@npm:1.0.3" - dependencies: - "@babel/runtime": "npm:^7.13.10" - "@radix-ui/react-compose-refs": "npm:1.0.1" - "@radix-ui/react-context": "npm:1.0.1" - "@radix-ui/react-primitive": "npm:1.0.3" - "@radix-ui/react-slot": "npm:1.0.2" - peerDependencies: - "@types/react": "*" - "@types/react-dom": "*" - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - "@types/react": - optional: true - "@types/react-dom": - optional: true - checksum: 10c0/cefa56383d7451ca79e4bd5a29aaeef6c205a04297213efd149aaead82fc8cde4fb8298e20e6b3613e5696e43f814fb4489805428f6604834fb31f73c6725fa8 - languageName: node - linkType: hard - -"@radix-ui/react-compose-refs@npm:1.0.1": - version: 1.0.1 - resolution: "@radix-ui/react-compose-refs@npm:1.0.1" - dependencies: - "@babel/runtime": "npm:^7.13.10" - peerDependencies: - "@types/react": "*" - react: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - "@types/react": - optional: true - checksum: 10c0/be06f8dab35b5a1bffa7a5982fb26218ddade1acb751288333e3b89d7b4a7dfb5a6371be83876dac0ec2ebe0866d295e8618b778608e1965342986ea448040ec - languageName: node - linkType: hard - -"@radix-ui/react-context@npm:1.0.1": - version: 1.0.1 - resolution: "@radix-ui/react-context@npm:1.0.1" - dependencies: - "@babel/runtime": "npm:^7.13.10" - peerDependencies: - "@types/react": "*" - react: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - "@types/react": - optional: true - checksum: 10c0/3de5761b32cc70cd61715527f29d8c699c01ab28c195ced972ccbc7025763a373a68f18c9f948c7a7b922e469fd2df7fee5f7536e3f7bad44ffc06d959359333 - languageName: node - linkType: hard - -"@radix-ui/react-direction@npm:1.0.1": - version: 1.0.1 - resolution: "@radix-ui/react-direction@npm:1.0.1" - dependencies: - "@babel/runtime": "npm:^7.13.10" - peerDependencies: - "@types/react": "*" - react: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - "@types/react": - optional: true - checksum: 10c0/b1a45b4d1d5070ca3b5864b920f6c6210c962bdb519abb62b38b1baef9d06737dc3d8ecdb61860b7504a735235a539652f5977c7299ec021da84e6b0f64d988a - languageName: node - linkType: hard - -"@radix-ui/react-dismissable-layer@npm:1.0.4": - version: 1.0.4 - resolution: "@radix-ui/react-dismissable-layer@npm:1.0.4" - dependencies: - "@babel/runtime": "npm:^7.13.10" - "@radix-ui/primitive": "npm:1.0.1" - "@radix-ui/react-compose-refs": "npm:1.0.1" - "@radix-ui/react-primitive": "npm:1.0.3" - "@radix-ui/react-use-callback-ref": "npm:1.0.1" - "@radix-ui/react-use-escape-keydown": "npm:1.0.3" - peerDependencies: - "@types/react": "*" - "@types/react-dom": "*" - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - "@types/react": - optional: true - "@types/react-dom": - optional: true - checksum: 10c0/a7b9695092cd4109a7b4a4a66b7f634c42d4f39aa0893621a8ee5e8bc90f8ae27e741df66db726c341a60d2115e3f813520fee1f5cc4fb05d77914b4ade3819f - languageName: node - linkType: hard - -"@radix-ui/react-focus-guards@npm:1.0.1": - version: 1.0.1 - resolution: "@radix-ui/react-focus-guards@npm:1.0.1" - dependencies: - "@babel/runtime": "npm:^7.13.10" - peerDependencies: - "@types/react": "*" - react: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - "@types/react": - optional: true - checksum: 10c0/d5fd4e5aa9d9a87c8ad490b3b4992d6f1d9eddf18e56df2a2bcf8744c4332b275d73377fd193df3e6ba0ad9608dc497709beca5c64de2b834d5f5350b3c9a272 - languageName: node - linkType: hard - -"@radix-ui/react-focus-scope@npm:1.0.3": - version: 1.0.3 - resolution: "@radix-ui/react-focus-scope@npm:1.0.3" - dependencies: - "@babel/runtime": "npm:^7.13.10" - "@radix-ui/react-compose-refs": "npm:1.0.1" - "@radix-ui/react-primitive": "npm:1.0.3" - "@radix-ui/react-use-callback-ref": "npm:1.0.1" - peerDependencies: - "@types/react": "*" - "@types/react-dom": "*" - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - "@types/react": - optional: true - "@types/react-dom": - optional: true - checksum: 10c0/bfff46919666c122f5b812ee427494ae8408c0eebee30337bd2ce0eedf539f0feaa242f790304ef9df15425b837010ffc6061ce467bedd2c5fd9373bee2b95da - languageName: node - linkType: hard - -"@radix-ui/react-id@npm:1.0.1": - version: 1.0.1 - resolution: "@radix-ui/react-id@npm:1.0.1" - dependencies: - "@babel/runtime": "npm:^7.13.10" - "@radix-ui/react-use-layout-effect": "npm:1.0.1" - peerDependencies: - "@types/react": "*" - react: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - "@types/react": - optional: true - checksum: 10c0/e2859ca58bea171c956098ace7ecf615cf9432f58a118b779a14720746b3adcf0351c36c75de131548672d3cd290ca238198acbd33b88dc4706f98312e9317ad - languageName: node - linkType: hard - -"@radix-ui/react-popper@npm:1.1.2": - version: 1.1.2 - resolution: "@radix-ui/react-popper@npm:1.1.2" - dependencies: - "@babel/runtime": "npm:^7.13.10" - "@floating-ui/react-dom": "npm:^2.0.0" - "@radix-ui/react-arrow": "npm:1.0.3" - "@radix-ui/react-compose-refs": "npm:1.0.1" - "@radix-ui/react-context": "npm:1.0.1" - "@radix-ui/react-primitive": "npm:1.0.3" - "@radix-ui/react-use-callback-ref": "npm:1.0.1" - "@radix-ui/react-use-layout-effect": "npm:1.0.1" - "@radix-ui/react-use-rect": "npm:1.0.1" - "@radix-ui/react-use-size": "npm:1.0.1" - "@radix-ui/rect": "npm:1.0.1" - peerDependencies: - "@types/react": "*" - "@types/react-dom": "*" - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - "@types/react": - optional: true - "@types/react-dom": - optional: true - checksum: 10c0/4bd069b79f7046af2c0967b8e43f727cd09834cbd6df1e3d5a943c4f83428ff8b646882737fdf7593c22e261a1d13768a5c020138d79503862ae2e1729081bba - languageName: node - linkType: hard - -"@radix-ui/react-portal@npm:1.0.3": - version: 1.0.3 - resolution: "@radix-ui/react-portal@npm:1.0.3" - dependencies: - "@babel/runtime": "npm:^7.13.10" - "@radix-ui/react-primitive": "npm:1.0.3" - peerDependencies: - "@types/react": "*" - "@types/react-dom": "*" - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - "@types/react": - optional: true - "@types/react-dom": - optional: true - checksum: 10c0/baf295bbbf09ead37b64ee1dc025a6a540960f5e60552766d78f6065504c67d4bcf49fad5e2073617d9a3011daafad625aa3bd1da7a886c704833b22a49e888f - languageName: node - linkType: hard - -"@radix-ui/react-primitive@npm:1.0.3": - version: 1.0.3 - resolution: "@radix-ui/react-primitive@npm:1.0.3" - dependencies: - "@babel/runtime": "npm:^7.13.10" - "@radix-ui/react-slot": "npm:1.0.2" - peerDependencies: - "@types/react": "*" - "@types/react-dom": "*" - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - "@types/react": - optional: true - "@types/react-dom": - optional: true - checksum: 10c0/67a66ff8898a5e7739eda228ab6f5ce808858da1dce967014138d87e72b6bbfc93dc1467c706d98d1a2b93bf0b6e09233d1a24d31c78227b078444c1a69c42be - languageName: node - linkType: hard - -"@radix-ui/react-roving-focus@npm:1.0.4": - version: 1.0.4 - resolution: "@radix-ui/react-roving-focus@npm:1.0.4" - dependencies: - "@babel/runtime": "npm:^7.13.10" - "@radix-ui/primitive": "npm:1.0.1" - "@radix-ui/react-collection": "npm:1.0.3" - "@radix-ui/react-compose-refs": "npm:1.0.1" - "@radix-ui/react-context": "npm:1.0.1" - "@radix-ui/react-direction": "npm:1.0.1" - "@radix-ui/react-id": "npm:1.0.1" - "@radix-ui/react-primitive": "npm:1.0.3" - "@radix-ui/react-use-callback-ref": "npm:1.0.1" - "@radix-ui/react-use-controllable-state": "npm:1.0.1" - peerDependencies: - "@types/react": "*" - "@types/react-dom": "*" - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - "@types/react": - optional: true - "@types/react-dom": - optional: true - checksum: 10c0/61e3ddfd1647e64fba855434ff41e8e7ba707244fe8841f78c450fbdce525383b64259279475615d030dbf1625cbffd8eeebee72d91bf6978794f5dbcf887fc0 - languageName: node - linkType: hard - -"@radix-ui/react-select@npm:^1.2.2": - version: 1.2.2 - resolution: "@radix-ui/react-select@npm:1.2.2" - dependencies: - "@babel/runtime": "npm:^7.13.10" - "@radix-ui/number": "npm:1.0.1" - "@radix-ui/primitive": "npm:1.0.1" - "@radix-ui/react-collection": "npm:1.0.3" - "@radix-ui/react-compose-refs": "npm:1.0.1" - "@radix-ui/react-context": "npm:1.0.1" - "@radix-ui/react-direction": "npm:1.0.1" - "@radix-ui/react-dismissable-layer": "npm:1.0.4" - "@radix-ui/react-focus-guards": "npm:1.0.1" - "@radix-ui/react-focus-scope": "npm:1.0.3" - "@radix-ui/react-id": "npm:1.0.1" - "@radix-ui/react-popper": "npm:1.1.2" - "@radix-ui/react-portal": "npm:1.0.3" - "@radix-ui/react-primitive": "npm:1.0.3" - "@radix-ui/react-slot": "npm:1.0.2" - "@radix-ui/react-use-callback-ref": "npm:1.0.1" - "@radix-ui/react-use-controllable-state": "npm:1.0.1" - "@radix-ui/react-use-layout-effect": "npm:1.0.1" - "@radix-ui/react-use-previous": "npm:1.0.1" - "@radix-ui/react-visually-hidden": "npm:1.0.3" - aria-hidden: "npm:^1.1.1" - react-remove-scroll: "npm:2.5.5" - peerDependencies: - "@types/react": "*" - "@types/react-dom": "*" - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - "@types/react": - optional: true - "@types/react-dom": - optional: true - checksum: 10c0/888fffa703a8f79b45c01d5f03ad9aae66250ddfff827bbba4f222c4d0720aa2f01a3e4b6bd80acabaf5e2fa7ad79de9e9dfd14831f7f4c24337d4d8dfb58ccc - languageName: node - linkType: hard - -"@radix-ui/react-separator@npm:1.0.3": - version: 1.0.3 - resolution: "@radix-ui/react-separator@npm:1.0.3" - dependencies: - "@babel/runtime": "npm:^7.13.10" - "@radix-ui/react-primitive": "npm:1.0.3" - peerDependencies: - "@types/react": "*" - "@types/react-dom": "*" - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - "@types/react": - optional: true - "@types/react-dom": - optional: true - checksum: 10c0/87bcde47343f2bc4439a0dc34381f557905d9b3c1e8c5a0d32ceea62a8ef84f3abf671c5cb29309fc87759ad41d39af619ba546cf54109d64c8746e3ca683de3 - languageName: node - linkType: hard - -"@radix-ui/react-slot@npm:1.0.2": - version: 1.0.2 - resolution: "@radix-ui/react-slot@npm:1.0.2" - dependencies: - "@babel/runtime": "npm:^7.13.10" - "@radix-ui/react-compose-refs": "npm:1.0.1" - peerDependencies: - "@types/react": "*" - react: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - "@types/react": - optional: true - checksum: 10c0/3af6ea4891e6fa8091e666802adffe7718b3cd390a10fa9229a5f40f8efded9f3918ea01b046103d93923d41cc32119505ebb6bde76cad07a87b6cf4f2119347 - languageName: node - linkType: hard - -"@radix-ui/react-toggle-group@npm:1.0.4": - version: 1.0.4 - resolution: "@radix-ui/react-toggle-group@npm:1.0.4" - dependencies: - "@babel/runtime": "npm:^7.13.10" - "@radix-ui/primitive": "npm:1.0.1" - "@radix-ui/react-context": "npm:1.0.1" - "@radix-ui/react-direction": "npm:1.0.1" - "@radix-ui/react-primitive": "npm:1.0.3" - "@radix-ui/react-roving-focus": "npm:1.0.4" - "@radix-ui/react-toggle": "npm:1.0.3" - "@radix-ui/react-use-controllable-state": "npm:1.0.1" - peerDependencies: - "@types/react": "*" - "@types/react-dom": "*" - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - "@types/react": - optional: true - "@types/react-dom": - optional: true - checksum: 10c0/4f4761965022759ac0950ac026029b64049e1f18ef07a01ddde788b7606efcb262c9ae3a418de0c0756bf7285182ed0d268502c6f17ba86d2ff27eee5507bbf7 - languageName: node - linkType: hard - -"@radix-ui/react-toggle@npm:1.0.3": - version: 1.0.3 - resolution: "@radix-ui/react-toggle@npm:1.0.3" - dependencies: - "@babel/runtime": "npm:^7.13.10" - "@radix-ui/primitive": "npm:1.0.1" - "@radix-ui/react-primitive": "npm:1.0.3" - "@radix-ui/react-use-controllable-state": "npm:1.0.1" - peerDependencies: - "@types/react": "*" - "@types/react-dom": "*" - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - "@types/react": - optional: true - "@types/react-dom": - optional: true - checksum: 10c0/9b487dad213ea7e70b0aa205e7c6f790a6f2bf394c39912e22dbe003403fd0d24a41c2efd31695fc31ab7bac286f28253dbb2fc5202cacd572ebf909f1fdc86c - languageName: node - linkType: hard - -"@radix-ui/react-toolbar@npm:^1.0.4": - version: 1.0.4 - resolution: "@radix-ui/react-toolbar@npm:1.0.4" - dependencies: - "@babel/runtime": "npm:^7.13.10" - "@radix-ui/primitive": "npm:1.0.1" - "@radix-ui/react-context": "npm:1.0.1" - "@radix-ui/react-direction": "npm:1.0.1" - "@radix-ui/react-primitive": "npm:1.0.3" - "@radix-ui/react-roving-focus": "npm:1.0.4" - "@radix-ui/react-separator": "npm:1.0.3" - "@radix-ui/react-toggle-group": "npm:1.0.4" - peerDependencies: - "@types/react": "*" - "@types/react-dom": "*" - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - "@types/react": - optional: true - "@types/react-dom": - optional: true - checksum: 10c0/3ed7ebe22ef2e8369e08bb59776671a7b8c413628249c338b8db86b4b9ac40127b4201d5bd4a9c23ea1fd21464769b4fa427d3ebcda3a7fcdbd45b256b5a753a - languageName: node - linkType: hard - -"@radix-ui/react-use-callback-ref@npm:1.0.1": - version: 1.0.1 - resolution: "@radix-ui/react-use-callback-ref@npm:1.0.1" - dependencies: - "@babel/runtime": "npm:^7.13.10" - peerDependencies: - "@types/react": "*" - react: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - "@types/react": - optional: true - checksum: 10c0/331b432be1edc960ca148637ae6087220873ee828ceb13bd155926ef8f49e862812de5b379129f6aaefcd11be53715f3237e6caa9a33d9c0abfff43f3ba58938 - languageName: node - linkType: hard - -"@radix-ui/react-use-controllable-state@npm:1.0.1": - version: 1.0.1 - resolution: "@radix-ui/react-use-controllable-state@npm:1.0.1" - dependencies: - "@babel/runtime": "npm:^7.13.10" - "@radix-ui/react-use-callback-ref": "npm:1.0.1" - peerDependencies: - "@types/react": "*" - react: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - "@types/react": - optional: true - checksum: 10c0/29b069dbf09e48bca321af6272574ad0fc7283174e7d092731a10663fe00c0e6b4bde5e1b5ea67725fe48dcbe8026e7ff0d69d42891c62cbb9ca408498171fbe - languageName: node - linkType: hard - -"@radix-ui/react-use-escape-keydown@npm:1.0.3": - version: 1.0.3 - resolution: "@radix-ui/react-use-escape-keydown@npm:1.0.3" - dependencies: - "@babel/runtime": "npm:^7.13.10" - "@radix-ui/react-use-callback-ref": "npm:1.0.1" - peerDependencies: - "@types/react": "*" - react: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - "@types/react": - optional: true - checksum: 10c0/3c94c78902dcb40b60083ee2184614f45c95a189178f52d89323b467bd04bcf5fdb1bc4d43debecd7f0b572c3843c7e04edbcb56f40a4b4b43936fb2770fb8ad - languageName: node - linkType: hard - -"@radix-ui/react-use-layout-effect@npm:1.0.1": - version: 1.0.1 - resolution: "@radix-ui/react-use-layout-effect@npm:1.0.1" - dependencies: - "@babel/runtime": "npm:^7.13.10" - peerDependencies: - "@types/react": "*" - react: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - "@types/react": - optional: true - checksum: 10c0/13cd0c38395c5838bc9a18238020d3bcf67fb340039e6d1cbf438be1b91d64cf6900b78121f3dc9219faeb40dcc7b523ce0f17e4a41631655690e5a30a40886a - languageName: node - linkType: hard - -"@radix-ui/react-use-previous@npm:1.0.1": - version: 1.0.1 - resolution: "@radix-ui/react-use-previous@npm:1.0.1" - dependencies: - "@babel/runtime": "npm:^7.13.10" - peerDependencies: - "@types/react": "*" - react: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - "@types/react": - optional: true - checksum: 10c0/f5fbc602108668484a4ed506b7842482222d1d03094362e26abb7fdd593eee8794fc47d85b3524fb9d00884801c89a6eefd0bed0971eba1ec189c637b6afd398 - languageName: node - linkType: hard - -"@radix-ui/react-use-rect@npm:1.0.1": - version: 1.0.1 - resolution: "@radix-ui/react-use-rect@npm:1.0.1" - dependencies: - "@babel/runtime": "npm:^7.13.10" - "@radix-ui/rect": "npm:1.0.1" - peerDependencies: - "@types/react": "*" - react: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - "@types/react": - optional: true - checksum: 10c0/94c5ab31dfd3678c0cb77a30025e82b3a287577c1a8674b0d703a36d27434bc9c59790e0bebf57ed153f0b8e0d8c3b9675fc9787b9eac525a09abcda8fa9e7eb - languageName: node - linkType: hard - -"@radix-ui/react-use-size@npm:1.0.1": - version: 1.0.1 - resolution: "@radix-ui/react-use-size@npm:1.0.1" - dependencies: - "@babel/runtime": "npm:^7.13.10" - "@radix-ui/react-use-layout-effect": "npm:1.0.1" - peerDependencies: - "@types/react": "*" - react: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - "@types/react": - optional: true - checksum: 10c0/b109a4b3781781c4dc641a1173f0a6fcb0b0f7b2d7cdba5848a46070c9fb4e518909a46c20a3c2efbc78737c64859c59ead837f2940e8c8394d1c503ef58773b - languageName: node - linkType: hard - -"@radix-ui/react-visually-hidden@npm:1.0.3": - version: 1.0.3 - resolution: "@radix-ui/react-visually-hidden@npm:1.0.3" - dependencies: - "@babel/runtime": "npm:^7.13.10" - "@radix-ui/react-primitive": "npm:1.0.3" - peerDependencies: - "@types/react": "*" - "@types/react-dom": "*" - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - "@types/react": - optional: true - "@types/react-dom": - optional: true - checksum: 10c0/0cbc12c2156b3fa0e40090cafd8525ce84c16a6b5a038a8e8fc7cbb16ed6da9ab369593962c57a18c41a16ec8713e0195c68ea34072ef1ca254ed4d4c0770bb4 - languageName: node - linkType: hard - -"@radix-ui/rect@npm:1.0.1": - version: 1.0.1 - resolution: "@radix-ui/rect@npm:1.0.1" - dependencies: - "@babel/runtime": "npm:^7.13.10" - checksum: 10c0/4c5159661340acc31b11e1f2ebd87a1521d39bfa287544dd2cd75b399539a4b625d38a1501c90ceae21fcca18ed164b0c3735817ff140ae334098192c110e571 - languageName: node - linkType: hard - "@resvg/resvg-js-android-arm-eabi@npm:2.6.2": version: 2.6.2 resolution: "@resvg/resvg-js-android-arm-eabi@npm:2.6.2" @@ -2991,224 +2637,201 @@ __metadata: languageName: node linkType: hard -"@storybook/addon-actions@npm:7.6.19": - version: 7.6.19 - resolution: "@storybook/addon-actions@npm:7.6.19" +"@sindresorhus/merge-streams@npm:^2.1.0": + version: 2.3.0 + resolution: "@sindresorhus/merge-streams@npm:2.3.0" + checksum: 10c0/69ee906f3125fb2c6bb6ec5cdd84e8827d93b49b3892bce8b62267116cc7e197b5cccf20c160a1d32c26014ecd14470a72a5e3ee37a58f1d6dadc0db1ccf3894 + languageName: node + linkType: hard + +"@storybook/addon-actions@npm:8.2.1": + version: 8.2.1 + resolution: "@storybook/addon-actions@npm:8.2.1" dependencies: - "@storybook/core-events": "npm:7.6.19" "@storybook/global": "npm:^5.0.0" "@types/uuid": "npm:^9.0.1" dequal: "npm:^2.0.2" polished: "npm:^4.2.2" uuid: "npm:^9.0.0" - checksum: 10c0/9a3b8c84088f78c7a9c2178fe0c741615e76abc89ab5a37d35fc2943c92371653a5feb6fca49ca9ed651fecbad47c50d7a8577105e6046ab5f8a433a4c5b6f13 + peerDependencies: + storybook: ^8.2.1 + checksum: 10c0/bb66678d781d929694e9a30de47d60354bf5827e6e153f9fa1c63e1bce950efa554919409e28ebfed46e1dfd977d1d23f2ae3b48c8d1be75336bd12f4e40b75e languageName: node linkType: hard -"@storybook/addon-backgrounds@npm:7.6.19": - version: 7.6.19 - resolution: "@storybook/addon-backgrounds@npm:7.6.19" +"@storybook/addon-backgrounds@npm:8.2.1": + version: 8.2.1 + resolution: "@storybook/addon-backgrounds@npm:8.2.1" dependencies: "@storybook/global": "npm:^5.0.0" memoizerific: "npm:^1.11.3" ts-dedent: "npm:^2.0.0" - checksum: 10c0/62dc38c7e36034f998d851860b5c9b2d6bc5847506ab53e63292d3a6c817847ae95e7608daad541ab120583e29213f38c038b314ea07636ee8ac12a1df5bcf63 + peerDependencies: + storybook: ^8.2.1 + checksum: 10c0/df08d508189caeb22c630b56230de131f0c4665467104c040a9824548b73d587f95b753e8fc274e7877d41c403fd8386b60e5be64ee379e3e80a4cd5798976ea languageName: node linkType: hard -"@storybook/addon-controls@npm:7.6.19": - version: 7.6.19 - resolution: "@storybook/addon-controls@npm:7.6.19" +"@storybook/addon-controls@npm:8.2.1": + version: 8.2.1 + resolution: "@storybook/addon-controls@npm:8.2.1" dependencies: - "@storybook/blocks": "npm:7.6.19" + dequal: "npm:^2.0.2" lodash: "npm:^4.17.21" ts-dedent: "npm:^2.0.0" - checksum: 10c0/308ac14d8b479e9e105459e40185162351ccbad23b46467d2dc901fc8a4f844fef3e2c6d2731384e9fb54ce5fad28769971fc2aa4b926666a071b3d41d7e90cc + peerDependencies: + storybook: ^8.2.1 + checksum: 10c0/a4980e36ad74e00b46099fbc5d54e3325d766c672ae8c18d30778756cf38bef74986ab258cb4c48709b4682e93c5906259c5f5e8029bc5d63dc08d160a94f4ba languageName: node linkType: hard -"@storybook/addon-docs@npm:7.6.19": - version: 7.6.19 - resolution: "@storybook/addon-docs@npm:7.6.19" +"@storybook/addon-docs@npm:8.2.1": + version: 8.2.1 + resolution: "@storybook/addon-docs@npm:8.2.1" dependencies: - "@jest/transform": "npm:^29.3.1" - "@mdx-js/react": "npm:^2.1.5" - "@storybook/blocks": "npm:7.6.19" - "@storybook/client-logger": "npm:7.6.19" - "@storybook/components": "npm:7.6.19" - "@storybook/csf-plugin": "npm:7.6.19" - "@storybook/csf-tools": "npm:7.6.19" + "@babel/core": "npm:^7.24.4" + "@mdx-js/react": "npm:^3.0.0" + "@storybook/blocks": "npm:8.2.1" + "@storybook/csf-plugin": "npm:8.2.1" "@storybook/global": "npm:^5.0.0" - "@storybook/mdx2-csf": "npm:^1.0.0" - "@storybook/node-logger": "npm:7.6.19" - "@storybook/postinstall": "npm:7.6.19" - "@storybook/preview-api": "npm:7.6.19" - "@storybook/react-dom-shim": "npm:7.6.19" - "@storybook/theming": "npm:7.6.19" - "@storybook/types": "npm:7.6.19" + "@storybook/react-dom-shim": "npm:8.2.1" + "@types/react": "npm:^16.8.0 || ^17.0.0 || ^18.0.0" fs-extra: "npm:^11.1.0" - remark-external-links: "npm:^8.0.0" - remark-slug: "npm:^6.0.0" + react: "npm:^16.8.0 || ^17.0.0 || ^18.0.0" + react-dom: "npm:^16.8.0 || ^17.0.0 || ^18.0.0" + rehype-external-links: "npm:^3.0.0" + rehype-slug: "npm:^6.0.0" ts-dedent: "npm:^2.0.0" peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - checksum: 10c0/a9ec3a2e2d0a5b847ed5e45f1f275f741652a4641cc76db8335a4d3838e6637015fe760a401b1b6244b58a6de3d6710ba9971a55dc77d4a281e8dde69f9ad623 + storybook: ^8.2.1 + checksum: 10c0/8927c9bded076869f77ef6a5d9caa5b00c11e6adca0d12e396c9f3cf6ea2bb1fd4da05f357585a807599ce63918ae740e415b76bc7d37d6b9633f535ba494d26 languageName: node linkType: hard -"@storybook/addon-essentials@npm:^7.6.17": - version: 7.6.19 - resolution: "@storybook/addon-essentials@npm:7.6.19" +"@storybook/addon-essentials@npm:^8.2.1": + version: 8.2.1 + resolution: "@storybook/addon-essentials@npm:8.2.1" dependencies: - "@storybook/addon-actions": "npm:7.6.19" - "@storybook/addon-backgrounds": "npm:7.6.19" - "@storybook/addon-controls": "npm:7.6.19" - "@storybook/addon-docs": "npm:7.6.19" - "@storybook/addon-highlight": "npm:7.6.19" - "@storybook/addon-measure": "npm:7.6.19" - "@storybook/addon-outline": "npm:7.6.19" - "@storybook/addon-toolbars": "npm:7.6.19" - "@storybook/addon-viewport": "npm:7.6.19" - "@storybook/core-common": "npm:7.6.19" - "@storybook/manager-api": "npm:7.6.19" - "@storybook/node-logger": "npm:7.6.19" - "@storybook/preview-api": "npm:7.6.19" + "@storybook/addon-actions": "npm:8.2.1" + "@storybook/addon-backgrounds": "npm:8.2.1" + "@storybook/addon-controls": "npm:8.2.1" + "@storybook/addon-docs": "npm:8.2.1" + "@storybook/addon-highlight": "npm:8.2.1" + "@storybook/addon-measure": "npm:8.2.1" + "@storybook/addon-outline": "npm:8.2.1" + "@storybook/addon-toolbars": "npm:8.2.1" + "@storybook/addon-viewport": "npm:8.2.1" ts-dedent: "npm:^2.0.0" peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - checksum: 10c0/c2cbedd201dd6404114435f48e396602a4b97053c62bcfa15fbd524aca1e4139298715d5bc60c4bcf9b09ed126907080875c06e0f62a1f5db585d052582465e1 + storybook: ^8.2.1 + checksum: 10c0/a94d846fefe89dd30528f2801e33849a5429e5c1c26e3cb9ca997d0ae95fc4ebf09818a38e4c00ad3d21aef837798b6084f21033f4dbe9e707e0ffda2f16b74d languageName: node linkType: hard -"@storybook/addon-highlight@npm:7.6.19": - version: 7.6.19 - resolution: "@storybook/addon-highlight@npm:7.6.19" +"@storybook/addon-highlight@npm:8.2.1": + version: 8.2.1 + resolution: "@storybook/addon-highlight@npm:8.2.1" dependencies: "@storybook/global": "npm:^5.0.0" - checksum: 10c0/ae61dc1a8a44df117529afd333dd55f4fb47d9ea796a4f44bc5f097c48505b9ec757cdbd25f613613cd6e9f58c93bcb0f740a365e7af42a435f47e382787eb24 + peerDependencies: + storybook: ^8.2.1 + checksum: 10c0/32eb6946121d4bb67b3f1fc3c936e57c228a10ed6c4df22ba807d8e68e19122bdb13ecf486a09a2b0812ae17ce7611ba1ecc6df7f81cc362d58f97c2d299d4db languageName: node linkType: hard -"@storybook/addon-measure@npm:7.6.19": - version: 7.6.19 - resolution: "@storybook/addon-measure@npm:7.6.19" +"@storybook/addon-measure@npm:8.2.1": + version: 8.2.1 + resolution: "@storybook/addon-measure@npm:8.2.1" dependencies: "@storybook/global": "npm:^5.0.0" tiny-invariant: "npm:^1.3.1" - checksum: 10c0/3a28046c80a8abbb6ff8f9d9916c2cae4abc51484f9c17b3722efc0e3677426622fc83016d8f140b3925fda123a3cce1333e903a94f349a42e3ea8db24f44174 + peerDependencies: + storybook: ^8.2.1 + checksum: 10c0/5e76dd96627ae62a1bb982a3ef4c726b9e3a7ae2294c284562e377ee411b6325cdc5181ef039664b3f06aaa725dd6fcca714e58302a2eaf3b85961b3ad0641f9 languageName: node linkType: hard -"@storybook/addon-outline@npm:7.6.19": - version: 7.6.19 - resolution: "@storybook/addon-outline@npm:7.6.19" +"@storybook/addon-outline@npm:8.2.1": + version: 8.2.1 + resolution: "@storybook/addon-outline@npm:8.2.1" dependencies: "@storybook/global": "npm:^5.0.0" ts-dedent: "npm:^2.0.0" - checksum: 10c0/1800b1af52947618b1f06111b3cea25ce96405befc906481f88a04c91de97f3380e7b6fdb9a5a9b2579ea31c08e75901e59fc7cd58bcb6d2d6e3132a5f340107 + peerDependencies: + storybook: ^8.2.1 + checksum: 10c0/52f0a5455f3c99061d4aa678d8b10445bcfa35445f3f368856be6dec5dc6cef7ba9f57a2ed0b294b45263eefa0fbc6fffd0c3178ac6bf4085d80ab05f19b4989 languageName: node linkType: hard -"@storybook/addon-toolbars@npm:7.6.19": - version: 7.6.19 - resolution: "@storybook/addon-toolbars@npm:7.6.19" - checksum: 10c0/01a1c071355d01f41a785caa307c798d2d1fa9be962d43e9c4584f96d99649f03b838bb1c49440e0b2797f863106c98523be1896a3da14a825334533b5f1becc +"@storybook/addon-toolbars@npm:8.2.1": + version: 8.2.1 + resolution: "@storybook/addon-toolbars@npm:8.2.1" + peerDependencies: + storybook: ^8.2.1 + checksum: 10c0/e34a8b55291f99b8f0b01850d46900b74747440fb78e25d820a5a2ba4f5c8c1e3e8293a88818c5b6bb5c85deff17d304d889f49614eb9ed45282a30716200785 languageName: node linkType: hard -"@storybook/addon-viewport@npm:7.6.19": - version: 7.6.19 - resolution: "@storybook/addon-viewport@npm:7.6.19" +"@storybook/addon-viewport@npm:8.2.1": + version: 8.2.1 + resolution: "@storybook/addon-viewport@npm:8.2.1" dependencies: memoizerific: "npm:^1.11.3" - checksum: 10c0/ae32e4d942a12a23ab5f9637eed17f69847a4621a06be6daa78e5c21b19ad5a9baa7a11f6c84300459cc9fd14b5bca7b824180e2f16bde8466800eced77e8804 + peerDependencies: + storybook: ^8.2.1 + checksum: 10c0/c237c0d8785cd6f001f0e938cc76409d89b7ac1349216fed6bf9b3fb9951eee7c755feaeb2a0439914691148131749e43c5284d62b20fee27569cdaef1e9373e languageName: node linkType: hard -"@storybook/blocks@npm:7.6.19, @storybook/blocks@npm:^7.6.17": - version: 7.6.19 - resolution: "@storybook/blocks@npm:7.6.19" +"@storybook/blocks@npm:8.2.1, @storybook/blocks@npm:^8.2.1": + version: 8.2.1 + resolution: "@storybook/blocks@npm:8.2.1" dependencies: - "@storybook/channels": "npm:7.6.19" - "@storybook/client-logger": "npm:7.6.19" - "@storybook/components": "npm:7.6.19" - "@storybook/core-events": "npm:7.6.19" - "@storybook/csf": "npm:^0.1.2" - "@storybook/docs-tools": "npm:7.6.19" + "@storybook/csf": "npm:0.1.11" "@storybook/global": "npm:^5.0.0" - "@storybook/manager-api": "npm:7.6.19" - "@storybook/preview-api": "npm:7.6.19" - "@storybook/theming": "npm:7.6.19" - "@storybook/types": "npm:7.6.19" + "@storybook/icons": "npm:^1.2.5" "@types/lodash": "npm:^4.14.167" color-convert: "npm:^2.0.1" dequal: "npm:^2.0.2" lodash: "npm:^4.17.21" - markdown-to-jsx: "npm:^7.1.8" + markdown-to-jsx: "npm:^7.4.5" memoizerific: "npm:^1.11.3" polished: "npm:^4.2.2" react-colorful: "npm:^5.1.2" telejson: "npm:^7.2.0" - tocbot: "npm:^4.20.1" ts-dedent: "npm:^2.0.0" util-deprecate: "npm:^1.0.2" peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - checksum: 10c0/95203844036dd88c9d19f951f85b4a41615f2e87f55dca652eab7f9b7d1cda0d818045b2aad86d219cc4c03722b487aae6ee3b33aba9dcbf08fb469f2d2d12db + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + storybook: ^8.2.1 + peerDependenciesMeta: + react: + optional: true + react-dom: + optional: true + checksum: 10c0/d96cab2a73f2a43f2ddcd9618d1b2f4efda894d00e2316f795ad988c33dafae72c9361fb9b76d7cb2c8602913f823648d4f25458b08f7549f62247d75c145f94 languageName: node linkType: hard -"@storybook/builder-manager@npm:7.6.19": - version: 7.6.19 - resolution: "@storybook/builder-manager@npm:7.6.19" +"@storybook/builder-vite@npm:8.2.1": + version: 8.2.1 + resolution: "@storybook/builder-vite@npm:8.2.1" dependencies: - "@fal-works/esbuild-plugin-global-externals": "npm:^2.1.2" - "@storybook/core-common": "npm:7.6.19" - "@storybook/manager": "npm:7.6.19" - "@storybook/node-logger": "npm:7.6.19" - "@types/ejs": "npm:^3.1.1" - "@types/find-cache-dir": "npm:^3.2.1" - "@yarnpkg/esbuild-plugin-pnp": "npm:^3.0.0-rc.10" - browser-assert: "npm:^1.2.1" - ejs: "npm:^3.1.8" - esbuild: "npm:^0.18.0" - esbuild-plugin-alias: "npm:^0.2.1" - express: "npm:^4.17.3" - find-cache-dir: "npm:^3.0.0" - fs-extra: "npm:^11.1.0" - process: "npm:^0.11.10" - util: "npm:^0.12.4" - checksum: 10c0/29bbe85c5765f2c481c52982fd72e2e333146f521078c6f2160c6b00e02fce0353a9462e5a1dcb8f2a00cc7f65b82b4f2fd846243d348e4faa704e7b13eddf9e - languageName: node - linkType: hard - -"@storybook/builder-vite@npm:7.6.19": - version: 7.6.19 - resolution: "@storybook/builder-vite@npm:7.6.19" - dependencies: - "@storybook/channels": "npm:7.6.19" - "@storybook/client-logger": "npm:7.6.19" - "@storybook/core-common": "npm:7.6.19" - "@storybook/csf-plugin": "npm:7.6.19" - "@storybook/node-logger": "npm:7.6.19" - "@storybook/preview": "npm:7.6.19" - "@storybook/preview-api": "npm:7.6.19" - "@storybook/types": "npm:7.6.19" + "@storybook/csf-plugin": "npm:8.2.1" "@types/find-cache-dir": "npm:^3.2.1" browser-assert: "npm:^1.2.1" - es-module-lexer: "npm:^0.9.3" - express: "npm:^4.17.3" + es-module-lexer: "npm:^1.5.0" + express: "npm:^4.19.2" find-cache-dir: "npm:^3.0.0" fs-extra: "npm:^11.1.0" magic-string: "npm:^0.30.0" - rollup: "npm:^2.25.0 || ^3.3.0" + ts-dedent: "npm:^2.0.0" peerDependencies: "@preact/preset-vite": "*" + storybook: ^8.2.1 typescript: ">= 4.3.x" - vite: ^3.0.0 || ^4.0.0 || ^5.0.0 + vite: ^4.0.0 || ^5.0.0 vite-plugin-glimmerx: "*" peerDependenciesMeta: "@preact/preset-vite": @@ -3217,281 +2840,67 @@ __metadata: optional: true vite-plugin-glimmerx: optional: true - checksum: 10c0/2c88509333c24ee19c48a88dd51f4f3b86a10413bb71036ab7bbfd723afecf52bb0fd0c6f454dff86fc4cbfd6808eb35ef5ff8ffa82038650c3f863df74c1a50 + checksum: 10c0/beb66ea8dd2be43cbda0261bf994d98615bd3e47c496f49da45d039be6baa7ebb8deff189c9bdcda5ed93fbec118144a3d40594b5fa61d0b451927036b347985 languageName: node linkType: hard -"@storybook/channels@npm:7.6.19": - version: 7.6.19 - resolution: "@storybook/channels@npm:7.6.19" +"@storybook/codemod@npm:8.2.1": + version: 8.2.1 + resolution: "@storybook/codemod@npm:8.2.1" dependencies: - "@storybook/client-logger": "npm:7.6.19" - "@storybook/core-events": "npm:7.6.19" - "@storybook/global": "npm:^5.0.0" - qs: "npm:^6.10.0" - telejson: "npm:^7.2.0" - tiny-invariant: "npm:^1.3.1" - checksum: 10c0/7b5e879d15da93aa312f7e3df4055f9c0bf5d5120f82058cca6c878469c1748637509a03e7c31986cadec05ab378c035c4d38d74a4d45c94b5ad9ed77b4c93ee - languageName: node - linkType: hard - -"@storybook/cli@npm:7.6.19": - version: 7.6.19 - resolution: "@storybook/cli@npm:7.6.19" - dependencies: - "@babel/core": "npm:^7.23.2" - "@babel/preset-env": "npm:^7.23.2" - "@babel/types": "npm:^7.23.0" - "@ndelangen/get-tarball": "npm:^3.0.7" - "@storybook/codemod": "npm:7.6.19" - "@storybook/core-common": "npm:7.6.19" - "@storybook/core-events": "npm:7.6.19" - "@storybook/core-server": "npm:7.6.19" - "@storybook/csf-tools": "npm:7.6.19" - "@storybook/node-logger": "npm:7.6.19" - "@storybook/telemetry": "npm:7.6.19" - "@storybook/types": "npm:7.6.19" - "@types/semver": "npm:^7.3.4" - "@yarnpkg/fslib": "npm:2.10.3" - "@yarnpkg/libzip": "npm:2.3.0" - chalk: "npm:^4.1.0" - commander: "npm:^6.2.1" - cross-spawn: "npm:^7.0.3" - detect-indent: "npm:^6.1.0" - envinfo: "npm:^7.7.3" - execa: "npm:^5.0.0" - express: "npm:^4.17.3" - find-up: "npm:^5.0.0" - fs-extra: "npm:^11.1.0" - get-npm-tarball-url: "npm:^2.0.3" - get-port: "npm:^5.1.1" - giget: "npm:^1.0.0" - globby: "npm:^11.0.2" - jscodeshift: "npm:^0.15.1" - leven: "npm:^3.1.0" - ora: "npm:^5.4.1" - prettier: "npm:^2.8.0" - prompts: "npm:^2.4.0" - puppeteer-core: "npm:^2.1.1" - read-pkg-up: "npm:^7.0.1" - semver: "npm:^7.3.7" - strip-json-comments: "npm:^3.0.1" - tempy: "npm:^1.0.1" - ts-dedent: "npm:^2.0.0" - util-deprecate: "npm:^1.0.2" - bin: - getstorybook: ./bin/index.js - sb: ./bin/index.js - checksum: 10c0/af46b19e9c248a0f3eb0c70a237f738109f09e1af6c8a101f8d4e3254f22ad84e7afed94964f925c10dcf2dc2039d2926d608e406a5b2d04a172a9374bfc00aa - languageName: node - linkType: hard - -"@storybook/client-logger@npm:7.6.19": - version: 7.6.19 - resolution: "@storybook/client-logger@npm:7.6.19" - dependencies: - "@storybook/global": "npm:^5.0.0" - checksum: 10c0/16b5a6755874f82eec71364223af62c155d29e1bcd3c1061a734dff8b687a6a2e9d09da8866b92a16bf5e8f0717ad8f8a522e5d1cb023a9457ff220cb4819604 - languageName: node - linkType: hard - -"@storybook/codemod@npm:7.6.19": - version: 7.6.19 - resolution: "@storybook/codemod@npm:7.6.19" - dependencies: - "@babel/core": "npm:^7.23.2" - "@babel/preset-env": "npm:^7.23.2" - "@babel/types": "npm:^7.23.0" - "@storybook/csf": "npm:^0.1.2" - "@storybook/csf-tools": "npm:7.6.19" - "@storybook/node-logger": "npm:7.6.19" - "@storybook/types": "npm:7.6.19" + "@babel/core": "npm:^7.24.4" + "@babel/preset-env": "npm:^7.24.4" + "@babel/types": "npm:^7.24.0" + "@storybook/core": "npm:8.2.1" + "@storybook/csf": "npm:0.1.11" "@types/cross-spawn": "npm:^6.0.2" cross-spawn: "npm:^7.0.3" - globby: "npm:^11.0.2" + globby: "npm:^14.0.1" jscodeshift: "npm:^0.15.1" lodash: "npm:^4.17.21" - prettier: "npm:^2.8.0" - recast: "npm:^0.23.1" - checksum: 10c0/68fd5cbd85b28a02c2164f52499197ad1ac55c01434fca50a5ca56a45fa39a86910c3792390e788e9796aa0bdef1253412b7c039247de42cb8555223ff91ffdb - languageName: node - linkType: hard - -"@storybook/components@npm:7.6.19": - version: 7.6.19 - resolution: "@storybook/components@npm:7.6.19" - dependencies: - "@radix-ui/react-select": "npm:^1.2.2" - "@radix-ui/react-toolbar": "npm:^1.0.4" - "@storybook/client-logger": "npm:7.6.19" - "@storybook/csf": "npm:^0.1.2" - "@storybook/global": "npm:^5.0.0" - "@storybook/theming": "npm:7.6.19" - "@storybook/types": "npm:7.6.19" - memoizerific: "npm:^1.11.3" - use-resize-observer: "npm:^9.1.0" - util-deprecate: "npm:^1.0.2" - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - checksum: 10c0/ac30b93b7d29a4905b4fd13952eae374f0460246c0741f1689b9835251a1ef3b2a89125f8b500597b8c7de295c43f575b2b1458fea9db44f7fb9f9c5d58f52c6 - languageName: node - linkType: hard - -"@storybook/core-client@npm:7.6.19": - version: 7.6.19 - resolution: "@storybook/core-client@npm:7.6.19" - dependencies: - "@storybook/client-logger": "npm:7.6.19" - "@storybook/preview-api": "npm:7.6.19" - checksum: 10c0/e1ff7f6095b06fbc5956d0e18f61f10b342df46e9b09331705c87f388222882d4fc679f8673e8254ebdebc1b68da36e2d2f6f7b550d8f8337b64b312dcc085a6 - languageName: node - linkType: hard - -"@storybook/core-common@npm:7.6.19": - version: 7.6.19 - resolution: "@storybook/core-common@npm:7.6.19" - dependencies: - "@storybook/core-events": "npm:7.6.19" - "@storybook/node-logger": "npm:7.6.19" - "@storybook/types": "npm:7.6.19" - "@types/find-cache-dir": "npm:^3.2.1" - "@types/node": "npm:^18.0.0" - "@types/node-fetch": "npm:^2.6.4" - "@types/pretty-hrtime": "npm:^1.0.0" - chalk: "npm:^4.1.0" - esbuild: "npm:^0.18.0" - esbuild-register: "npm:^3.5.0" - file-system-cache: "npm:2.3.0" - find-cache-dir: "npm:^3.0.0" - find-up: "npm:^5.0.0" - fs-extra: "npm:^11.1.0" - glob: "npm:^10.0.0" - handlebars: "npm:^4.7.7" - lazy-universal-dotenv: "npm:^4.0.0" - node-fetch: "npm:^2.0.0" - picomatch: "npm:^2.3.0" - pkg-dir: "npm:^5.0.0" - pretty-hrtime: "npm:^1.0.3" - resolve-from: "npm:^5.0.0" - ts-dedent: "npm:^2.0.0" - checksum: 10c0/da68811e3a54705ad5358917e073b21d83a96b35e15f960861e63ce383928893d69707f3cf6b54c0f13efbb774e2e6e0ba2b34bfbb89fd71cc38f176f673670c - languageName: node - linkType: hard - -"@storybook/core-events@npm:7.6.19": - version: 7.6.19 - resolution: "@storybook/core-events@npm:7.6.19" - dependencies: - ts-dedent: "npm:^2.0.0" - checksum: 10c0/9cb367fe024797f7673b308f0b1dac0043b91d3bca77cc2c55589c0234faaa91f3e886efba7b077a1b8c2f2e48d7269f8c40ac7246a679b03123c4015e3e3f60 - languageName: node - linkType: hard - -"@storybook/core-server@npm:7.6.19": - version: 7.6.19 - resolution: "@storybook/core-server@npm:7.6.19" - dependencies: - "@aw-web-design/x-default-browser": "npm:1.4.126" - "@discoveryjs/json-ext": "npm:^0.5.3" - "@storybook/builder-manager": "npm:7.6.19" - "@storybook/channels": "npm:7.6.19" - "@storybook/core-common": "npm:7.6.19" - "@storybook/core-events": "npm:7.6.19" - "@storybook/csf": "npm:^0.1.2" - "@storybook/csf-tools": "npm:7.6.19" - "@storybook/docs-mdx": "npm:^0.1.0" - "@storybook/global": "npm:^5.0.0" - "@storybook/manager": "npm:7.6.19" - "@storybook/node-logger": "npm:7.6.19" - "@storybook/preview-api": "npm:7.6.19" - "@storybook/telemetry": "npm:7.6.19" - "@storybook/types": "npm:7.6.19" - "@types/detect-port": "npm:^1.3.0" - "@types/node": "npm:^18.0.0" - "@types/pretty-hrtime": "npm:^1.0.0" - "@types/semver": "npm:^7.3.4" - better-opn: "npm:^3.0.2" - chalk: "npm:^4.1.0" - cli-table3: "npm:^0.6.1" - compression: "npm:^1.7.4" - detect-port: "npm:^1.3.0" - express: "npm:^4.17.3" - fs-extra: "npm:^11.1.0" - globby: "npm:^11.0.2" - ip: "npm:^2.0.1" - lodash: "npm:^4.17.21" - open: "npm:^8.4.0" - pretty-hrtime: "npm:^1.0.3" - prompts: "npm:^2.4.0" - read-pkg-up: "npm:^7.0.1" - semver: "npm:^7.3.7" - telejson: "npm:^7.2.0" + prettier: "npm:^3.1.1" + recast: "npm:^0.23.5" tiny-invariant: "npm:^1.3.1" - ts-dedent: "npm:^2.0.0" + checksum: 10c0/1b23f6c2b0f3a5cef6694246bb14eab2f6c98a94038e1ca17b32cfe88305ca2845fdb4b4b48ba5aca28a959827b194f2f54b353dcc0fd3147ded7eaba5b38a3e + languageName: node + linkType: hard + +"@storybook/core@npm:8.2.1": + version: 8.2.1 + resolution: "@storybook/core@npm:8.2.1" + dependencies: + "@storybook/csf": "npm:0.1.11" + "@types/express": "npm:^4.17.21" + "@types/node": "npm:^18.0.0" + browser-assert: "npm:^1.2.1" + esbuild: "npm:^0.18.0 || ^0.19.0 || ^0.20.0 || ^0.21.0" + esbuild-register: "npm:^3.5.0" + express: "npm:^4.19.2" + process: "npm:^0.11.10" + recast: "npm:^0.23.5" util: "npm:^0.12.4" - util-deprecate: "npm:^1.0.2" - watchpack: "npm:^2.2.0" ws: "npm:^8.2.3" - checksum: 10c0/4e9f4cd7aacb9c8008acdc630223fc4854f93a7bd9c7ecf1db622df1202a98cc4d5de5d01a97ab43fcdb08311a7ddb0b19b4a0e67ebf19556f15710e891bb73b + checksum: 10c0/99b9a3753a8f54a446e3d7791c8e949e9dff21f87e62e84bc6354dd77cb8e79280de6cbc8d00271414b7c2d6224013b3025dca234ac6db1533e545e7ef1ea7cc languageName: node linkType: hard -"@storybook/csf-plugin@npm:7.6.19": - version: 7.6.19 - resolution: "@storybook/csf-plugin@npm:7.6.19" +"@storybook/csf-plugin@npm:8.2.1": + version: 8.2.1 + resolution: "@storybook/csf-plugin@npm:8.2.1" dependencies: - "@storybook/csf-tools": "npm:7.6.19" unplugin: "npm:^1.3.1" - checksum: 10c0/93556567ea0fbb130f0204e9dd04c03bbbd6f0a95ecf413d94659b2e0e6922dd0db4124ae549ff6a3fb8bb78d2338ea21f2f9d98b1857fcd4e6d8301c77d0a05 + peerDependencies: + storybook: ^8.2.1 + checksum: 10c0/7127790508f6cf2e1c515981c02e019fd34849b4e74b7312194638d44d6cc5a69d1d09396b128f23144ab92262bf2bb46a157d4552d9f51979ffe52d1ce7a787 languageName: node linkType: hard -"@storybook/csf-tools@npm:7.6.19": - version: 7.6.19 - resolution: "@storybook/csf-tools@npm:7.6.19" - dependencies: - "@babel/generator": "npm:^7.23.0" - "@babel/parser": "npm:^7.23.0" - "@babel/traverse": "npm:^7.23.2" - "@babel/types": "npm:^7.23.0" - "@storybook/csf": "npm:^0.1.2" - "@storybook/types": "npm:7.6.19" - fs-extra: "npm:^11.1.0" - recast: "npm:^0.23.1" - ts-dedent: "npm:^2.0.0" - checksum: 10c0/8f362672c475b3ea328eaa98b7575d338fbe18e281d046ac6dfd2efe6cce17e53027fa6fb6e4e45682ec2d07605e5428eec1328abcdff4e1c904161f2a99e659 - languageName: node - linkType: hard - -"@storybook/csf@npm:^0.1.2": - version: 0.1.7 - resolution: "@storybook/csf@npm:0.1.7" +"@storybook/csf@npm:0.1.11": + version: 0.1.11 + resolution: "@storybook/csf@npm:0.1.11" dependencies: type-fest: "npm:^2.19.0" - checksum: 10c0/aaebc9fa5f850cebef1fd9d786d7b5844e2d88e5c8078904ea4571c053f858fab064392960274b854037b9f8693d12c7c45c3c4c9142ec88a08fb498f3f056a5 - languageName: node - linkType: hard - -"@storybook/docs-mdx@npm:^0.1.0": - version: 0.1.0 - resolution: "@storybook/docs-mdx@npm:0.1.0" - checksum: 10c0/e4d510f0452a7a3cb09d9617920c18b974f836299dfba38d6b2e62fbfea418d71f340b6c280a87201b1336a7221c7cc16b47794c1f8e81d01dcfa1f599343085 - languageName: node - linkType: hard - -"@storybook/docs-tools@npm:7.6.19": - version: 7.6.19 - resolution: "@storybook/docs-tools@npm:7.6.19" - dependencies: - "@storybook/core-common": "npm:7.6.19" - "@storybook/preview-api": "npm:7.6.19" - "@storybook/types": "npm:7.6.19" - "@types/doctrine": "npm:^0.0.3" - assert: "npm:^2.1.0" - doctrine: "npm:^3.0.0" - lodash: "npm:^4.17.21" - checksum: 10c0/667f3da08737e186dae79369b78e65b428aa49b9d58dc2ecac087420548e45fb680880c8934289c8c2ddc8ed19c2042f72bada1949076b2cda459df1628e29cd + checksum: 10c0/c5329fc13e7d762049b5c91df1bc1c0e510a1a898c401b72b68f1ff64139a85ab64a92f8e681d2fcb226c0a4a55d0f23b569b2bdb517e0f067bd05ea46228356 languageName: node linkType: hard @@ -3502,125 +2911,55 @@ __metadata: languageName: node linkType: hard -"@storybook/manager-api@npm:7.6.19": - version: 7.6.19 - resolution: "@storybook/manager-api@npm:7.6.19" - dependencies: - "@storybook/channels": "npm:7.6.19" - "@storybook/client-logger": "npm:7.6.19" - "@storybook/core-events": "npm:7.6.19" - "@storybook/csf": "npm:^0.1.2" - "@storybook/global": "npm:^5.0.0" - "@storybook/router": "npm:7.6.19" - "@storybook/theming": "npm:7.6.19" - "@storybook/types": "npm:7.6.19" - dequal: "npm:^2.0.2" - lodash: "npm:^4.17.21" - memoizerific: "npm:^1.11.3" - store2: "npm:^2.14.2" - telejson: "npm:^7.2.0" - ts-dedent: "npm:^2.0.0" - checksum: 10c0/e1f48864bcd17615c56e5589ffff55193c7667605f7ec348e08d829ceaea70987e0e1cb38e46f112cf0e49b067581c892e88447f465403eefde22cab200af3d2 - languageName: node - linkType: hard - -"@storybook/manager@npm:7.6.19": - version: 7.6.19 - resolution: "@storybook/manager@npm:7.6.19" - checksum: 10c0/e145747a28cc10507f572f1c0f22b5dbf4ccf346e64614946d9bb57b048768a0fa83cb3d24dfe7a24fb43ed070c82f5c0c768bf1b6e9667ddc8c732e66512b25 - languageName: node - linkType: hard - -"@storybook/mdx2-csf@npm:^1.0.0": - version: 1.1.0 - resolution: "@storybook/mdx2-csf@npm:1.1.0" - checksum: 10c0/ba4496a51efae35edb3e509e488cd16066ccf0768d2dc527bbc2650d0bc0f630540985205772d63d1711d1a5dae66136a919077c90fa2ac7a02a13de43446baa - languageName: node - linkType: hard - -"@storybook/node-logger@npm:7.6.19": - version: 7.6.19 - resolution: "@storybook/node-logger@npm:7.6.19" - checksum: 10c0/cfb5ff9b6135cf59a9ea61613bcb6786485bf7a41593ad0d02d4d3f833ee672057bb7741cbd40baf79f7fdf1b45e80b86528d4b67a6f20ffdb93a8b83956eedd - languageName: node - linkType: hard - -"@storybook/postinstall@npm:7.6.19": - version: 7.6.19 - resolution: "@storybook/postinstall@npm:7.6.19" - checksum: 10c0/6356e55670fe83ea8afd3e1458c04e0e5a6ceb4dabdd0cf83ef80dc33409542923e180760fc9b29308aff51ead25a60383b6ef6126a5cf8754b7a50d7a6f2a47 - languageName: node - linkType: hard - -"@storybook/preview-api@npm:7.6.19": - version: 7.6.19 - resolution: "@storybook/preview-api@npm:7.6.19" - dependencies: - "@storybook/channels": "npm:7.6.19" - "@storybook/client-logger": "npm:7.6.19" - "@storybook/core-events": "npm:7.6.19" - "@storybook/csf": "npm:^0.1.2" - "@storybook/global": "npm:^5.0.0" - "@storybook/types": "npm:7.6.19" - "@types/qs": "npm:^6.9.5" - dequal: "npm:^2.0.2" - lodash: "npm:^4.17.21" - memoizerific: "npm:^1.11.3" - qs: "npm:^6.10.0" - synchronous-promise: "npm:^2.0.15" - ts-dedent: "npm:^2.0.0" - util-deprecate: "npm:^1.0.2" - checksum: 10c0/4c43ed02034e07070087308093899df809a14d1152bd1aff90e1f2a285e4f6e7fd5844d0c8de1be64c5883b040b6ae509ef9dae621acbca00ffb3f4eec4882b3 - languageName: node - linkType: hard - -"@storybook/preview@npm:7.6.19": - version: 7.6.19 - resolution: "@storybook/preview@npm:7.6.19" - checksum: 10c0/7a75392738f55d115b404fc41a00351e23733b10b95fffd75e1af4043469dc8d1cefeca1cfa88145aa0f8d4a856986804b617e3254f5eed2a588bf13203e3dfa - languageName: node - linkType: hard - -"@storybook/react-dom-shim@npm:7.6.19": - version: 7.6.19 - resolution: "@storybook/react-dom-shim@npm:7.6.19" +"@storybook/icons@npm:^1.2.5": + version: 1.2.9 + resolution: "@storybook/icons@npm:1.2.9" peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - checksum: 10c0/bed132060ffe000fa73bb90c5325afbb22b74346e23f382becabd4e05889e9f0199527782f454bf5fc409174b56d80f50ab3fcd8fc674148117724b22b303c30 + checksum: 10c0/37513dbf526bf827941ee274e0f8358c6db41c963ffd0c408a674d794fa9af8d835e0dc4e58fd589106c4f33da5552aa8315ae45745f0c107ade0f6299cbf710 languageName: node linkType: hard -"@storybook/react-vite@npm:^7.6.17": - version: 7.6.19 - resolution: "@storybook/react-vite@npm:7.6.19" +"@storybook/react-dom-shim@npm:8.2.1": + version: 8.2.1 + resolution: "@storybook/react-dom-shim@npm:8.2.1" + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + storybook: ^8.2.1 + checksum: 10c0/89d9c508925ac5b8f3c9f2fee8ea68da879eb96f2d3a47db6848044678578bed56f18d8f5f13652e187f2a785c4b253bb3447128027f144d4e1b483c99120526 + languageName: node + linkType: hard + +"@storybook/react-vite@npm:^8.2.1": + version: 8.2.1 + resolution: "@storybook/react-vite@npm:8.2.1" dependencies: - "@joshwooding/vite-plugin-react-docgen-typescript": "npm:0.3.0" + "@joshwooding/vite-plugin-react-docgen-typescript": "npm:0.3.1" "@rollup/pluginutils": "npm:^5.0.2" - "@storybook/builder-vite": "npm:7.6.19" - "@storybook/react": "npm:7.6.19" - "@vitejs/plugin-react": "npm:^3.0.1" + "@storybook/builder-vite": "npm:8.2.1" + "@storybook/react": "npm:8.2.1" + find-up: "npm:^5.0.0" magic-string: "npm:^0.30.0" react-docgen: "npm:^7.0.0" + resolve: "npm:^1.22.8" + tsconfig-paths: "npm:^4.2.0" peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - vite: ^3.0.0 || ^4.0.0 || ^5.0.0 - checksum: 10c0/3a216a42e6d06b00590686b8bceb1a853260c6074cd80eae265e444286f8105571f40daf5000686da5d10443521d6bbd3abcf1234c1fd52b977a4cbdc71119d6 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + storybook: ^8.2.1 + vite: ^4.0.0 || ^5.0.0 + checksum: 10c0/18d0ab1901526c9121434268d9cca6dba84ecc86a73ad3a073b3ffce585fc1597b7e163f85656c765ee7df8635135e28824e5932a07dba92150b9ac2f7187e56 languageName: node linkType: hard -"@storybook/react@npm:7.6.19, @storybook/react@npm:^7.6.17": - version: 7.6.19 - resolution: "@storybook/react@npm:7.6.19" +"@storybook/react@npm:8.2.1, @storybook/react@npm:^8.2.1": + version: 8.2.1 + resolution: "@storybook/react@npm:8.2.1" dependencies: - "@storybook/client-logger": "npm:7.6.19" - "@storybook/core-client": "npm:7.6.19" - "@storybook/docs-tools": "npm:7.6.19" "@storybook/global": "npm:^5.0.0" - "@storybook/preview-api": "npm:7.6.19" - "@storybook/react-dom-shim": "npm:7.6.19" - "@storybook/types": "npm:7.6.19" + "@storybook/react-dom-shim": "npm:8.2.1" "@types/escodegen": "npm:^0.0.6" "@types/estree": "npm:^0.0.51" "@types/node": "npm:^18.0.0" @@ -3632,71 +2971,19 @@ __metadata: lodash: "npm:^4.17.21" prop-types: "npm:^15.7.2" react-element-to-jsx-string: "npm:^15.0.0" + semver: "npm:^7.3.7" ts-dedent: "npm:^2.0.0" type-fest: "npm:~2.19" util-deprecate: "npm:^1.0.2" peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - typescript: "*" + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + storybook: ^8.2.1 + typescript: ">= 4.2.x" peerDependenciesMeta: typescript: optional: true - checksum: 10c0/cddfc34ade9bad3411c1228633b2c63496cbe8edadb8dac0bbfda4669d2bfdfb0984cfe8c1db247c55d2a675da3ddb8bd4ddeb7b69f0f9d1098882e129bffc47 - languageName: node - linkType: hard - -"@storybook/router@npm:7.6.19": - version: 7.6.19 - resolution: "@storybook/router@npm:7.6.19" - dependencies: - "@storybook/client-logger": "npm:7.6.19" - memoizerific: "npm:^1.11.3" - qs: "npm:^6.10.0" - checksum: 10c0/d20ce5d9d40dcac4d473cec1215be9b8eadfc94bcd9ffa4522db9de8e9351497be35892a6e1bc1c9d02acd5423e4a05622a44500b9dcbb9619adfdca1b04c1e1 - languageName: node - linkType: hard - -"@storybook/telemetry@npm:7.6.19": - version: 7.6.19 - resolution: "@storybook/telemetry@npm:7.6.19" - dependencies: - "@storybook/client-logger": "npm:7.6.19" - "@storybook/core-common": "npm:7.6.19" - "@storybook/csf-tools": "npm:7.6.19" - chalk: "npm:^4.1.0" - detect-package-manager: "npm:^2.0.1" - fetch-retry: "npm:^5.0.2" - fs-extra: "npm:^11.1.0" - read-pkg-up: "npm:^7.0.1" - checksum: 10c0/78b1d65363abf043f00e7e99489d6502e62dfe5ff31156668e3fd2931d3f7768ddfd72957072b8c96363bf5a5446c4f46803d4c342020c732d9ed6fe41787282 - languageName: node - linkType: hard - -"@storybook/theming@npm:7.6.19": - version: 7.6.19 - resolution: "@storybook/theming@npm:7.6.19" - dependencies: - "@emotion/use-insertion-effect-with-fallbacks": "npm:^1.0.0" - "@storybook/client-logger": "npm:7.6.19" - "@storybook/global": "npm:^5.0.0" - memoizerific: "npm:^1.11.3" - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - checksum: 10c0/41f02bf38d2842ed77691bf645f818d8f4560655b95922a871f5f633a7bbec66d7ddf4ed98c48fec13460e8773ba6c400b860981de612e872e0ef0257eeb9f94 - languageName: node - linkType: hard - -"@storybook/types@npm:7.6.19": - version: 7.6.19 - resolution: "@storybook/types@npm:7.6.19" - dependencies: - "@storybook/channels": "npm:7.6.19" - "@types/babel__core": "npm:^7.0.0" - "@types/express": "npm:^4.7.0" - file-system-cache: "npm:2.3.0" - checksum: 10c0/6df3b74b0164c44e7edf2eb77458daac90b4facdd739bbec09498e88dfa6d29bf61cff9d937b7c27145f8e7029bc50a28d306c66ebafc868ad042bf73ff4aaf9 + checksum: 10c0/4e54fb6a0f812308a24e092e9f0cef63c310694b8456221c5407a48bef5bf59483f86ffdcdba16acb274a9a4679fc87e6072e6ea1db38b232c5497f3e172771d languageName: node linkType: hard @@ -3707,7 +2994,7 @@ __metadata: languageName: node linkType: hard -"@types/babel__core@npm:^7.0.0, @types/babel__core@npm:^7.18.0, @types/babel__core@npm:^7.20.5": +"@types/babel__core@npm:^7.18.0": version: 7.20.5 resolution: "@types/babel__core@npm:7.20.5" dependencies: @@ -3776,20 +3063,6 @@ __metadata: languageName: node linkType: hard -"@types/detect-port@npm:^1.3.0": - version: 1.3.5 - resolution: "@types/detect-port@npm:1.3.5" - checksum: 10c0/d8dd9d0e643106a2263f530b24ffdc3409d9391c50fc5e404018ba3633947aa3777db7fb094aeb0f49a13cc998aae8889747ad9edaa02b13a2de2385f37106ef - languageName: node - linkType: hard - -"@types/doctrine@npm:^0.0.3": - version: 0.0.3 - resolution: "@types/doctrine@npm:0.0.3" - checksum: 10c0/566dcdc988c97ff01d14493ceb2223643347f07cf0a88c86cd7cb7c2821cfc837fd39295e6809a29614fdfdc6c4e981408155ca909b2e5da5d947af939b6c966 - languageName: node - linkType: hard - "@types/doctrine@npm:^0.0.9": version: 0.0.9 resolution: "@types/doctrine@npm:0.0.9" @@ -3797,13 +3070,6 @@ __metadata: languageName: node linkType: hard -"@types/ejs@npm:^3.1.1": - version: 3.1.5 - resolution: "@types/ejs@npm:3.1.5" - checksum: 10c0/13d994cf0323d7e0ad33b9384914ccd3b4cd8bf282eced3649b1621b66ee7c784ac2d120a9d7b1f43d6f873518248fb8c3221b06a649b847860b9c2389a0b0ed - languageName: node - linkType: hard - "@types/emscripten@npm:^1.39.6": version: 1.39.12 resolution: "@types/emscripten@npm:1.39.12" @@ -3844,7 +3110,7 @@ __metadata: languageName: node linkType: hard -"@types/express@npm:^4.7.0": +"@types/express@npm:^4.17.21": version: 4.17.21 resolution: "@types/express@npm:4.17.21" dependencies: @@ -3873,12 +3139,12 @@ __metadata: languageName: node linkType: hard -"@types/graceful-fs@npm:^4.1.3": - version: 4.1.9 - resolution: "@types/graceful-fs@npm:4.1.9" +"@types/hast@npm:^3.0.0": + version: 3.0.4 + resolution: "@types/hast@npm:3.0.4" dependencies: - "@types/node": "npm:*" - checksum: 10c0/235d2fc69741448e853333b7c3d1180a966dd2b8972c8cbcd6b2a0c6cd7f8d582ab2b8e58219dbc62cce8f1b40aa317ff78ea2201cdd8249da5025adebed6f0b + "@types/unist": "npm:*" + checksum: 10c0/3249781a511b38f1d330fd1e3344eed3c4e7ea8eff82e835d35da78e637480d36fad37a78be5a7aed8465d237ad0446abc1150859d0fde395354ea634decf9f7 languageName: node linkType: hard @@ -3889,31 +3155,6 @@ __metadata: languageName: node linkType: hard -"@types/istanbul-lib-coverage@npm:*, @types/istanbul-lib-coverage@npm:^2.0.0": - version: 2.0.6 - resolution: "@types/istanbul-lib-coverage@npm:2.0.6" - checksum: 10c0/3948088654f3eeb45363f1db158354fb013b362dba2a5c2c18c559484d5eb9f6fd85b23d66c0a7c2fcfab7308d0a585b14dadaca6cc8bf89ebfdc7f8f5102fb7 - languageName: node - linkType: hard - -"@types/istanbul-lib-report@npm:*": - version: 3.0.3 - resolution: "@types/istanbul-lib-report@npm:3.0.3" - dependencies: - "@types/istanbul-lib-coverage": "npm:*" - checksum: 10c0/247e477bbc1a77248f3c6de5dadaae85ff86ac2d76c5fc6ab1776f54512a745ff2a5f791d22b942e3990ddbd40f3ef5289317c4fca5741bedfaa4f01df89051c - languageName: node - linkType: hard - -"@types/istanbul-reports@npm:^3.0.0": - version: 3.0.4 - resolution: "@types/istanbul-reports@npm:3.0.4" - dependencies: - "@types/istanbul-lib-report": "npm:*" - checksum: 10c0/1647fd402aced5b6edac87274af14ebd6b3a85447ef9ad11853a70fd92a98d35f81a5d3ea9fcb5dbb5834e800c6e35b64475e33fcae6bfa9acc70d61497c54ee - languageName: node - linkType: hard - "@types/lodash@npm:^4.14.167": version: 4.17.4 resolution: "@types/lodash@npm:4.17.4" @@ -3928,13 +3169,6 @@ __metadata: languageName: node linkType: hard -"@types/mime-types@npm:^2.1.0": - version: 2.1.4 - resolution: "@types/mime-types@npm:2.1.4" - checksum: 10c0/a10d57881d14a053556b3d09292de467968d965b0a06d06732c748da39b3aa569270b5b9f32529fd0e9ac1e5f3b91abb894f5b1996373254a65cb87903c86622 - languageName: node - linkType: hard - "@types/mime@npm:^1": version: 1.3.5 resolution: "@types/mime@npm:1.3.5" @@ -3949,16 +3183,6 @@ __metadata: languageName: node linkType: hard -"@types/node-fetch@npm:^2.6.4": - version: 2.6.11 - resolution: "@types/node-fetch@npm:2.6.11" - dependencies: - "@types/node": "npm:*" - form-data: "npm:^4.0.0" - checksum: 10c0/5283d4e0bcc37a5b6d8e629aee880a4ffcfb33e089f4b903b2981b19c623972d1e64af7c3f9540ab990f0f5c89b9b5dda19c5bcb37a8e177079e93683bfd2f49 - languageName: node - linkType: hard - "@types/node@npm:*, @types/node@npm:^20.11.20": version: 20.12.12 resolution: "@types/node@npm:20.12.12" @@ -3977,20 +3201,6 @@ __metadata: languageName: node linkType: hard -"@types/normalize-package-data@npm:^2.4.0": - version: 2.4.4 - resolution: "@types/normalize-package-data@npm:2.4.4" - checksum: 10c0/aef7bb9b015883d6f4119c423dd28c4bdc17b0e8a0ccf112c78b4fe0e91fbc4af7c6204b04bba0e199a57d2f3fbbd5b4a14bf8739bf9d2a39b2a0aad545e0f86 - languageName: node - linkType: hard - -"@types/pretty-hrtime@npm:^1.0.0": - version: 1.0.3 - resolution: "@types/pretty-hrtime@npm:1.0.3" - checksum: 10c0/e4c22475c588be982b398dee9ac0b05b21078bc26581819290a4901c5b269bcaa04cae0e61e012d412e811b0897c9dab316db064208914df2f0ed0960fc5306b - languageName: node - linkType: hard - "@types/prop-types@npm:*": version: 15.7.12 resolution: "@types/prop-types@npm:15.7.12" @@ -3998,7 +3208,7 @@ __metadata: languageName: node linkType: hard -"@types/qs@npm:*, @types/qs@npm:^6.9.5": +"@types/qs@npm:*": version: 6.9.15 resolution: "@types/qs@npm:6.9.15" checksum: 10c0/49c5ff75ca3adb18a1939310042d273c9fc55920861bd8e5100c8a923b3cda90d759e1a95e18334092da1c8f7b820084687770c83a1ccef04fb2c6908117c823 @@ -4012,13 +3222,13 @@ __metadata: languageName: node linkType: hard -"@types/react@npm:>=16": - version: 18.3.2 - resolution: "@types/react@npm:18.3.2" +"@types/react@npm:^16.8.0 || ^17.0.0 || ^18.0.0": + version: 18.3.3 + resolution: "@types/react@npm:18.3.3" dependencies: "@types/prop-types": "npm:*" csstype: "npm:^3.0.2" - checksum: 10c0/9fb2f1fcf7e889ee4ea7c3c5978df595c66e770e5fd3a245dbdd2589b9b911524c11dab25a6275d8af4e336e4cb5fa850d447884b84c335a187a338c89df99ba + checksum: 10c0/fe455f805c5da13b89964c3d68060cebd43e73ec15001a68b34634604a78140e6fc202f3f61679b9d809dde6d7a7c2cb3ed51e0fd1462557911db09879b55114 languageName: node linkType: hard @@ -4064,10 +3274,10 @@ __metadata: languageName: node linkType: hard -"@types/unist@npm:^2.0.0": - version: 2.0.10 - resolution: "@types/unist@npm:2.0.10" - checksum: 10c0/5f247dc2229944355209ad5c8e83cfe29419fa7f0a6d557421b1985a1500444719cc9efcc42c652b55aab63c931813c88033e0202c1ac684bcd4829d66e44731 +"@types/unist@npm:*, @types/unist@npm:^3.0.0": + version: 3.0.2 + resolution: "@types/unist@npm:3.0.2" + checksum: 10c0/39f220ce184a773c55c18a127062bfc4d0d30c987250cd59bab544d97be6cfec93717a49ef96e81f024b575718f798d4d329eb81c452fc57d6d051af8b043ebf languageName: node linkType: hard @@ -4078,34 +3288,10 @@ __metadata: languageName: node linkType: hard -"@types/yargs-parser@npm:*": - version: 21.0.3 - resolution: "@types/yargs-parser@npm:21.0.3" - checksum: 10c0/e71c3bd9d0b73ca82e10bee2064c384ab70f61034bbfb78e74f5206283fc16a6d85267b606b5c22cb2a3338373586786fed595b2009825d6a9115afba36560a0 - languageName: node - linkType: hard - -"@types/yargs@npm:^17.0.8": - version: 17.0.32 - resolution: "@types/yargs@npm:17.0.32" - dependencies: - "@types/yargs-parser": "npm:*" - checksum: 10c0/2095e8aad8a4e66b86147415364266b8d607a3b95b4239623423efd7e29df93ba81bb862784a6e08664f645cc1981b25fd598f532019174cd3e5e1e689e1cccf - languageName: node - linkType: hard - -"@vitejs/plugin-react@npm:^4.2.0": - version: 4.2.1 - resolution: "@vitejs/plugin-react@npm:4.2.1" - dependencies: - "@babel/core": "npm:^7.23.5" - "@babel/plugin-transform-react-jsx-self": "npm:^7.23.3" - "@babel/plugin-transform-react-jsx-source": "npm:^7.23.3" - "@types/babel__core": "npm:^7.20.5" - react-refresh: "npm:^0.14.0" - peerDependencies: - vite: ^4.2.0 || ^5.0.0 - checksum: 10c0/de1eec44d703f32e5b58e776328ca20793657fe991835d15b290230b19a2a08be5d31501d424279ae13ecfed28044c117b69d746891c8d9b92c69e8a8907e989 +"@ungap/structured-clone@npm:^1.0.0": + version: 1.2.0 + resolution: "@ungap/structured-clone@npm:1.2.0" + checksum: 10c0/8209c937cb39119f44eb63cf90c0b73e7c754209a6411c707be08e50e29ee81356dca1a848a405c8bdeebfe2f5e4f831ad310ae1689eeef65e7445c090c6657d languageName: node linkType: hard @@ -4170,17 +3356,6 @@ __metadata: languageName: node linkType: hard -"@yarnpkg/esbuild-plugin-pnp@npm:^3.0.0-rc.10": - version: 3.0.0-rc.15 - resolution: "@yarnpkg/esbuild-plugin-pnp@npm:3.0.0-rc.15" - dependencies: - tslib: "npm:^2.4.0" - peerDependencies: - esbuild: ">=0.10.0" - checksum: 10c0/5095bc316862971add31ca1fadb0095b6ad15f25120f6ab3a06086bb6a7be93c2f3c45bff80d5976689fc89b0e9bf82bd3d410e205c852739874d32d050c4e57 - languageName: node - linkType: hard - "@yarnpkg/fslib@npm:2.10.3": version: 2.10.3 resolution: "@yarnpkg/fslib@npm:2.10.3" @@ -4277,20 +3452,6 @@ __metadata: languageName: node linkType: hard -"address@npm:^1.0.1": - version: 1.2.2 - resolution: "address@npm:1.2.2" - checksum: 10c0/1c8056b77fb124456997b78ed682ecc19d2fd7ea8bd5850a2aa8c3e3134c913847c57bcae418622efd32ba858fa1e242a40a251ac31da0515664fc0ac03a047d - languageName: node - linkType: hard - -"agent-base@npm:5": - version: 5.1.1 - resolution: "agent-base@npm:5.1.1" - checksum: 10c0/3baa3f01072c16e3955ce7802166e576cde9831af82b262aae1c780af49c0c84e82e64ba9ef9e7d1704fe29e9f0096a78a4f998ec137360fee3cb95186f97161 - languageName: node - linkType: hard - "agent-base@npm:^7.0.2, agent-base@npm:^7.1.0, agent-base@npm:^7.1.1": version: 7.1.1 resolution: "agent-base@npm:7.1.1" @@ -4405,7 +3566,7 @@ __metadata: languageName: node linkType: hard -"anymatch@npm:^3.0.3, anymatch@npm:~3.1.2": +"anymatch@npm:~3.1.2": version: 3.1.3 resolution: "anymatch@npm:3.1.3" dependencies: @@ -4415,13 +3576,6 @@ __metadata: languageName: node linkType: hard -"app-root-dir@npm:^1.0.2": - version: 1.0.2 - resolution: "app-root-dir@npm:1.0.2" - checksum: 10c0/0225e4be7788968a82bb76df9b14b0d7f212a5c12e8c625cdc34f80548780bcbfc5f3287d0806dddd83bf9dbf9ce302e76b2887cd3a6f4be52b79df7f3aa9e7c - languageName: node - linkType: hard - "append-buffer@npm:^1.0.2": version: 1.0.2 resolution: "append-buffer@npm:1.0.2" @@ -4438,15 +3592,6 @@ __metadata: languageName: node linkType: hard -"argparse@npm:^1.0.7": - version: 1.0.10 - resolution: "argparse@npm:1.0.10" - dependencies: - sprintf-js: "npm:~1.0.2" - checksum: 10c0/b2972c5c23c63df66bca144dbc65d180efa74f25f8fd9b7d9a0a6c88ae839db32df3d54770dcb6460cf840d232b60695d1a6b1053f599d84e73f7437087712de - languageName: node - linkType: hard - "argparse@npm:^2.0.1": version: 2.0.1 resolution: "argparse@npm:2.0.1" @@ -4454,15 +3599,6 @@ __metadata: languageName: node linkType: hard -"aria-hidden@npm:^1.1.1": - version: 1.2.4 - resolution: "aria-hidden@npm:1.2.4" - dependencies: - tslib: "npm:^2.0.0" - checksum: 10c0/8abcab2e1432efc4db415e97cb3959649ddf52c8fc815d7384f43f3d3abf56f1c12852575d00df9a8927f421d7e0712652dd5f8db244ea57634344e29ecfc74a - languageName: node - linkType: hard - "arr-diff@npm:^4.0.0": version: 4.0.0 resolution: "arr-diff@npm:4.0.0" @@ -4563,13 +3699,6 @@ __metadata: languageName: node linkType: hard -"array-union@npm:^2.1.0": - version: 2.1.0 - resolution: "array-union@npm:2.1.0" - checksum: 10c0/429897e68110374f39b771ec47a7161fc6a8fc33e196857c0a396dc75df0b5f65e4d046674db764330b6bb66b39ef48dd7c53b6a2ee75cfb0681e0c1a7033962 - languageName: node - linkType: hard - "array-unique@npm:^0.3.2": version: 0.3.2 resolution: "array-unique@npm:0.3.2" @@ -4621,19 +3750,6 @@ __metadata: languageName: node linkType: hard -"assert@npm:^2.1.0": - version: 2.1.0 - resolution: "assert@npm:2.1.0" - dependencies: - call-bind: "npm:^1.0.2" - is-nan: "npm:^1.3.2" - object-is: "npm:^1.1.5" - object.assign: "npm:^4.1.4" - util: "npm:^0.12.5" - checksum: 10c0/7271a5da883c256a1fa690677bf1dd9d6aa882139f2bed1cd15da4f9e7459683e1da8e32a203d6cc6767e5e0f730c77a9532a87b896b4b0af0dd535f668775f0 - languageName: node - linkType: hard - "assertion-error@npm:^1.1.0": version: 1.1.0 resolution: "assertion-error@npm:1.1.0" @@ -4676,13 +3792,6 @@ __metadata: languageName: node linkType: hard -"async-limiter@npm:~1.0.0": - version: 1.0.1 - resolution: "async-limiter@npm:1.0.1" - checksum: 10c0/0693d378cfe86842a70d4c849595a0bb50dc44c11649640ca982fa90cbfc74e3cc4753b5a0847e51933f2e9c65ce8e05576e75e5e1fd963a086e673735b35969 - languageName: node - linkType: hard - "async-settle@npm:^1.0.0": version: 1.0.0 resolution: "async-settle@npm:1.0.0" @@ -4751,19 +3860,6 @@ __metadata: languageName: node linkType: hard -"babel-plugin-istanbul@npm:^6.1.1": - version: 6.1.1 - resolution: "babel-plugin-istanbul@npm:6.1.1" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.0.0" - "@istanbuljs/load-nyc-config": "npm:^1.0.0" - "@istanbuljs/schema": "npm:^0.1.2" - istanbul-lib-instrument: "npm:^5.0.4" - test-exclude: "npm:^6.0.0" - checksum: 10c0/1075657feb705e00fd9463b329921856d3775d9867c5054b449317d39153f8fbcebd3e02ebf00432824e647faff3683a9ca0a941325ef1afe9b3c4dd51b24beb - languageName: node - linkType: hard - "babel-plugin-polyfill-corejs2@npm:^0.4.10": version: 0.4.11 resolution: "babel-plugin-polyfill-corejs2@npm:0.4.11" @@ -4846,22 +3942,6 @@ __metadata: languageName: node linkType: hard -"better-opn@npm:^3.0.2": - version: 3.0.2 - resolution: "better-opn@npm:3.0.2" - dependencies: - open: "npm:^8.0.4" - checksum: 10c0/911ef25d44da75aabfd2444ce7a4294a8000ebcac73068c04a60298b0f7c7506b60421aa4cd02ac82502fb42baaff7e4892234b51e6923eded44c5a11185f2f5 - languageName: node - linkType: hard - -"big-integer@npm:^1.6.44": - version: 1.6.52 - resolution: "big-integer@npm:1.6.52" - checksum: 10c0/9604224b4c2ab3c43c075d92da15863077a9f59e5d4205f4e7e76acd0cd47e8d469ec5e5dba8d9b32aa233951893b29329ca56ac80c20ce094b4a647a66abae0 - languageName: node - linkType: hard - "binary-extensions@npm:^1.0.0": version: 1.13.1 resolution: "binary-extensions@npm:1.13.1" @@ -4892,7 +3972,7 @@ __metadata: languageName: node linkType: hard -"bl@npm:^4.0.3, bl@npm:^4.1.0": +"bl@npm:^4.1.0": version: 4.1.0 resolution: "bl@npm:4.1.0" dependencies: @@ -4944,15 +4024,6 @@ __metadata: languageName: node linkType: hard -"bplist-parser@npm:^0.2.0": - version: 0.2.0 - resolution: "bplist-parser@npm:0.2.0" - dependencies: - big-integer: "npm:^1.6.44" - checksum: 10c0/ce79c69e0f6efe506281e7c84e3712f7d12978991675b6e3a58a295b16f13ca81aa9b845c335614a545e0af728c8311b6aa3142af76ba1cb616af9bbac5c4a9f - languageName: node - linkType: hard - "brace-expansion@npm:^1.1.7": version: 1.1.11 resolution: "brace-expansion@npm:1.1.11" @@ -5078,15 +4149,6 @@ __metadata: languageName: node linkType: hard -"browserify-zlib@npm:^0.1.4": - version: 0.1.4 - resolution: "browserify-zlib@npm:0.1.4" - dependencies: - pako: "npm:~0.2.0" - checksum: 10c0/0cde7ca5d33d43125649330fd75c056397e53731956a2593c4a2529f4e609a8e6abdb2b8e1921683abf5645375b92cfb2a21baa42fe3c9fc3e2556d32043af93 - languageName: node - linkType: hard - "browserify-zlib@npm:^0.2.0": version: 0.2.0 resolution: "browserify-zlib@npm:0.2.0" @@ -5110,15 +4172,6 @@ __metadata: languageName: node linkType: hard -"bser@npm:2.1.1": - version: 2.1.1 - resolution: "bser@npm:2.1.1" - dependencies: - node-int64: "npm:^0.4.0" - checksum: 10c0/24d8dfb7b6d457d73f32744e678a60cc553e4ec0e9e1a01cf614b44d85c3c87e188d3cc78ef0442ce5032ee6818de20a0162ba1074725c0d08908f62ea979227 - languageName: node - linkType: hard - "buffer-builder@npm:^0.2.0": version: 0.2.0 resolution: "buffer-builder@npm:0.2.0" @@ -5126,13 +4179,6 @@ __metadata: languageName: node linkType: hard -"buffer-crc32@npm:~0.2.3": - version: 0.2.13 - resolution: "buffer-crc32@npm:0.2.13" - checksum: 10c0/cb0a8ddf5cf4f766466db63279e47761eb825693eeba6a5a95ee4ec8cb8f81ede70aa7f9d8aeec083e781d47154290eb5d4d26b3f7a465ec57fb9e7d59c47150 - languageName: node - linkType: hard - "buffer-equal@npm:^1.0.0": version: 1.0.1 resolution: "buffer-equal@npm:1.0.1" @@ -5250,7 +4296,7 @@ __metadata: languageName: node linkType: hard -"call-bind@npm:^1.0.0, call-bind@npm:^1.0.2, call-bind@npm:^1.0.5, call-bind@npm:^1.0.6, call-bind@npm:^1.0.7": +"call-bind@npm:^1.0.2, call-bind@npm:^1.0.5, call-bind@npm:^1.0.6, call-bind@npm:^1.0.7": version: 1.0.7 resolution: "call-bind@npm:1.0.7" dependencies: @@ -5270,13 +4316,6 @@ __metadata: languageName: node linkType: hard -"camelcase@npm:^5.3.1": - version: 5.3.1 - resolution: "camelcase@npm:5.3.1" - checksum: 10c0/92ff9b443bfe8abb15f2b1513ca182d16126359ad4f955ebc83dc4ddcc4ef3fdd2c078bc223f2673dc223488e75c99b16cc4d056624374b799e6a1555cf61b23 - languageName: node - linkType: hard - "caniuse-lite@npm:^1.0.30001587, caniuse-lite@npm:^1.0.30001599": version: 1.0.30001621 resolution: "caniuse-lite@npm:1.0.30001621" @@ -5310,7 +4349,7 @@ __metadata: languageName: node linkType: hard -"chalk@npm:^4.0.0, chalk@npm:^4.0.2, chalk@npm:^4.1.0, chalk@npm:^4.1.2": +"chalk@npm:^4.1.0, chalk@npm:^4.1.2": version: 4.1.2 resolution: "chalk@npm:4.1.2" dependencies: @@ -5371,13 +4410,6 @@ __metadata: languageName: node linkType: hard -"chownr@npm:^1.1.1": - version: 1.1.4 - resolution: "chownr@npm:1.1.4" - checksum: 10c0/ed57952a84cc0c802af900cf7136de643d3aba2eecb59d29344bc2f3f9bf703a301b9d84cdc71f82c3ffc9ccde831b0d92f5b45f91727d6c9da62f23aef9d9db - languageName: node - linkType: hard - "chownr@npm:^2.0.0": version: 2.0.0 resolution: "chownr@npm:2.0.0" @@ -5385,13 +4417,6 @@ __metadata: languageName: node linkType: hard -"ci-info@npm:^3.2.0": - version: 3.9.0 - resolution: "ci-info@npm:3.9.0" - checksum: 10c0/6f0109e36e111684291d46123d491bc4e7b7a1934c3a20dea28cba89f1d4a03acd892f5f6a81ed3855c38647e285a150e3c9ba062e38943bef57fee6c1554c3a - languageName: node - linkType: hard - "cipher-base@npm:^1.0.0, cipher-base@npm:^1.0.1, cipher-base@npm:^1.0.3": version: 1.0.4 resolution: "cipher-base@npm:1.0.4" @@ -5455,19 +4480,6 @@ __metadata: languageName: node linkType: hard -"cli-table3@npm:^0.6.1": - version: 0.6.5 - resolution: "cli-table3@npm:0.6.5" - dependencies: - "@colors/colors": "npm:1.5.0" - string-width: "npm:^4.2.0" - dependenciesMeta: - "@colors/colors": - optional: true - checksum: 10c0/d7cc9ed12212ae68241cc7a3133c52b844113b17856e11f4f81308acc3febcea7cc9fd298e70933e294dd642866b29fd5d113c2c098948701d0c35f09455de78 - languageName: node - linkType: hard - "cliui@npm:^3.2.0": version: 3.2.0 resolution: "cliui@npm:3.2.0" @@ -5721,7 +4733,7 @@ __metadata: languageName: node linkType: hard -"concat-stream@npm:^1.6.0, concat-stream@npm:^1.6.2": +"concat-stream@npm:^1.6.0": version: 1.6.2 resolution: "concat-stream@npm:1.6.2" dependencies: @@ -5973,10 +4985,12 @@ __metadata: languageName: node linkType: hard -"crypto-random-string@npm:^2.0.0": - version: 2.0.0 - resolution: "crypto-random-string@npm:2.0.0" - checksum: 10c0/288589b2484fe787f9e146f56c4be90b940018f17af1b152e4dde12309042ff5a2bf69e949aab8b8ac253948381529cc6f3e5a2427b73643a71ff177fa122b37 +"crypto-random-string@npm:^4.0.0": + version: 4.0.0 + resolution: "crypto-random-string@npm:4.0.0" + dependencies: + type-fest: "npm:^1.0.1" + checksum: 10c0/16e11a3c8140398f5408b7fded35a961b9423c5dac39a60cbbd08bd3f0e07d7de130e87262adea7db03ec1a7a4b7551054e0db07ee5408b012bac5400cfc07a5 languageName: node linkType: hard @@ -6149,7 +5163,7 @@ __metadata: languageName: node linkType: hard -"debug@npm:2.6.9, debug@npm:^2.2.0, debug@npm:^2.3.3, debug@npm:^2.6.9": +"debug@npm:2.6.9, debug@npm:^2.2.0, debug@npm:^2.3.3": version: 2.6.9 resolution: "debug@npm:2.6.9" dependencies: @@ -6209,16 +5223,6 @@ __metadata: languageName: node linkType: hard -"default-browser-id@npm:3.0.0": - version: 3.0.0 - resolution: "default-browser-id@npm:3.0.0" - dependencies: - bplist-parser: "npm:^0.2.0" - untildify: "npm:^4.0.0" - checksum: 10c0/8db3ab882eb3e1e8b59d84c8641320e6c66d8eeb17eb4bb848b7dd549b1e6fd313988e4a13542e95fbaeff03f6e9dedc5ad191ad4df7996187753eb0d45c00b7 - languageName: node - linkType: hard - "default-compare@npm:^1.0.0": version: 1.0.0 resolution: "default-compare@npm:1.0.0" @@ -6255,14 +5259,7 @@ __metadata: languageName: node linkType: hard -"define-lazy-prop@npm:^2.0.0": - version: 2.0.0 - resolution: "define-lazy-prop@npm:2.0.0" - checksum: 10c0/db6c63864a9d3b7dc9def55d52764968a5af296de87c1b2cc71d8be8142e445208071953649e0386a8cc37cfcf9a2067a47207f1eb9ff250c2a269658fdae422 - languageName: node - linkType: hard - -"define-properties@npm:^1.1.3, define-properties@npm:^1.2.0, define-properties@npm:^1.2.1": +"define-properties@npm:^1.2.0, define-properties@npm:^1.2.1": version: 1.2.1 resolution: "define-properties@npm:1.2.1" dependencies: @@ -6308,22 +5305,6 @@ __metadata: languageName: node linkType: hard -"del@npm:^6.0.0": - version: 6.1.1 - resolution: "del@npm:6.1.1" - dependencies: - globby: "npm:^11.0.1" - graceful-fs: "npm:^4.2.4" - is-glob: "npm:^4.0.1" - is-path-cwd: "npm:^2.2.0" - is-path-inside: "npm:^3.0.2" - p-map: "npm:^4.0.0" - rimraf: "npm:^3.0.2" - slash: "npm:^3.0.0" - checksum: 10c0/8a095c5ccade42c867a60252914ae485ec90da243d735d1f63ec1e64c1cfbc2b8810ad69a29ab6326d159d4fddaa2f5bad067808c42072351ec458efff86708f - languageName: node - linkType: hard - "delayed-stream@npm:~1.0.0": version: 1.0.0 resolution: "delayed-stream@npm:1.0.0" @@ -6383,35 +5364,6 @@ __metadata: languageName: node linkType: hard -"detect-node-es@npm:^1.1.0": - version: 1.1.0 - resolution: "detect-node-es@npm:1.1.0" - checksum: 10c0/e562f00de23f10c27d7119e1af0e7388407eb4b06596a25f6d79a360094a109ff285de317f02b090faae093d314cf6e73ac3214f8a5bb3a0def5bece94557fbe - languageName: node - linkType: hard - -"detect-package-manager@npm:^2.0.1": - version: 2.0.1 - resolution: "detect-package-manager@npm:2.0.1" - dependencies: - execa: "npm:^5.1.1" - checksum: 10c0/56ffd65228d1ff3ead5ea7f8ab951a517a29270de27510b790c9a8b77d4f36efbd61493e170ca77ee3dc13cbb5218583ce65b78ad14a59dc48565c9bcbbf3c71 - languageName: node - linkType: hard - -"detect-port@npm:^1.3.0": - version: 1.6.1 - resolution: "detect-port@npm:1.6.1" - dependencies: - address: "npm:^1.0.1" - debug: "npm:4" - bin: - detect: bin/detect-port.js - detect-port: bin/detect-port.js - checksum: 10c0/4ea9eb46a637cb21220dd0a62b6074792894fc77b2cacbc9de533d1908b2eedafa7bfd7547baaa2ac1e9c7ba7c289b34b17db896dca6da142f4fc6e2060eee17 - languageName: node - linkType: hard - "dettle@npm:^1.0.2": version: 1.0.2 resolution: "dettle@npm:1.0.2" @@ -6437,15 +5389,6 @@ __metadata: languageName: node linkType: hard -"dir-glob@npm:^3.0.1": - version: 3.0.1 - resolution: "dir-glob@npm:3.0.1" - dependencies: - path-type: "npm:^4.0.0" - checksum: 10c0/dcac00920a4d503e38bb64001acb19df4efc14536ada475725e12f52c16777afdee4db827f55f13a908ee7efc0cb282e2e3dbaeeb98c0993dd93d1802d3bf00c - languageName: node - linkType: hard - "doctrine@npm:^3.0.0": version: 3.0.0 resolution: "doctrine@npm:3.0.0" @@ -6510,20 +5453,6 @@ __metadata: languageName: node linkType: hard -"dotenv-expand@npm:^10.0.0": - version: 10.0.0 - resolution: "dotenv-expand@npm:10.0.0" - checksum: 10c0/298f5018e29cfdcb0b5f463ba8e8627749103fbcf6cf81c561119115754ed582deee37b49dfc7253028aaba875ab7aea5fa90e5dac88e511d009ab0e6677924e - languageName: node - linkType: hard - -"dotenv@npm:^16.0.0": - version: 16.4.5 - resolution: "dotenv@npm:16.4.5" - checksum: 10c0/48d92870076832af0418b13acd6e5a5a3e83bb00df690d9812e94b24aff62b88ade955ac99a05501305b8dc8f1b0ee7638b18493deb6fe93d680e5220936292f - languageName: node - linkType: hard - "draft-js@git+https://github.com/penpot/draft-js.git#commit=4a99b2a6020b2af97f6dc5fa1b4275ec16b559a0": version: 0.11.7 resolution: "draft-js@https://github.com/penpot/draft-js.git#commit=4a99b2a6020b2af97f6dc5fa1b4275ec16b559a0" @@ -6538,7 +5467,7 @@ __metadata: languageName: node linkType: hard -"duplexify@npm:^3.5.0, duplexify@npm:^3.6.0": +"duplexify@npm:^3.6.0": version: 3.7.1 resolution: "duplexify@npm:3.7.1" dependencies: @@ -6588,17 +5517,6 @@ __metadata: languageName: node linkType: hard -"ejs@npm:^3.1.8": - version: 3.1.10 - resolution: "ejs@npm:3.1.10" - dependencies: - jake: "npm:^10.8.5" - bin: - ejs: bin/cli.js - checksum: 10c0/52eade9e68416ed04f7f92c492183340582a36482836b11eab97b159fcdcfdedc62233a1bf0bf5e5e1851c501f2dca0e2e9afd111db2599e4e7f53ee29429ae1 - languageName: node - linkType: hard - "electron-to-chromium@npm:^1.4.668": version: 1.4.777 resolution: "electron-to-chromium@npm:1.4.777" @@ -6658,7 +5576,7 @@ __metadata: languageName: node linkType: hard -"end-of-stream@npm:^1.0.0, end-of-stream@npm:^1.1.0, end-of-stream@npm:^1.4.1": +"end-of-stream@npm:^1.0.0, end-of-stream@npm:^1.1.0": version: 1.4.4 resolution: "end-of-stream@npm:1.4.4" dependencies: @@ -6783,10 +5701,10 @@ __metadata: languageName: node linkType: hard -"es-module-lexer@npm:^0.9.3": - version: 0.9.3 - resolution: "es-module-lexer@npm:0.9.3" - checksum: 10c0/be77d73aee709fdc68d22b9938da81dfee3bc45e8d601629258643fe5bfdab253d6e2540035e035cfa8cf52a96366c1c19b46bcc23b4507b1d44e5907d2e7f6c +"es-module-lexer@npm:^1.5.0": + version: 1.5.4 + resolution: "es-module-lexer@npm:1.5.4" + checksum: 10c0/300a469488c2f22081df1e4c8398c78db92358496e639b0df7f89ac6455462aaf5d8893939087c1a1cbcbf20eed4610c70e0bcb8f3e4b0d80a5d2611c539408c languageName: node linkType: hard @@ -6866,13 +5784,6 @@ __metadata: languageName: node linkType: hard -"esbuild-plugin-alias@npm:^0.2.1": - version: 0.2.1 - resolution: "esbuild-plugin-alias@npm:0.2.1" - checksum: 10c0/a67bc6bc2744fc8637f7321f00c1f00e4fae86c182662421738ebfabf3ad344967b9c667185c6c34d9edd5b289807d34bfdceef94620e94e0a45683534af69e0 - languageName: node - linkType: hard - "esbuild-register@npm:^3.5.0": version: 3.5.0 resolution: "esbuild-register@npm:3.5.0" @@ -6884,33 +5795,36 @@ __metadata: languageName: node linkType: hard -"esbuild@npm:^0.18.0": - version: 0.18.20 - resolution: "esbuild@npm:0.18.20" +"esbuild@npm:^0.18.0 || ^0.19.0 || ^0.20.0 || ^0.21.0": + version: 0.21.5 + resolution: "esbuild@npm:0.21.5" dependencies: - "@esbuild/android-arm": "npm:0.18.20" - "@esbuild/android-arm64": "npm:0.18.20" - "@esbuild/android-x64": "npm:0.18.20" - "@esbuild/darwin-arm64": "npm:0.18.20" - "@esbuild/darwin-x64": "npm:0.18.20" - "@esbuild/freebsd-arm64": "npm:0.18.20" - "@esbuild/freebsd-x64": "npm:0.18.20" - "@esbuild/linux-arm": "npm:0.18.20" - "@esbuild/linux-arm64": "npm:0.18.20" - "@esbuild/linux-ia32": "npm:0.18.20" - "@esbuild/linux-loong64": "npm:0.18.20" - "@esbuild/linux-mips64el": "npm:0.18.20" - "@esbuild/linux-ppc64": "npm:0.18.20" - "@esbuild/linux-riscv64": "npm:0.18.20" - "@esbuild/linux-s390x": "npm:0.18.20" - "@esbuild/linux-x64": "npm:0.18.20" - "@esbuild/netbsd-x64": "npm:0.18.20" - "@esbuild/openbsd-x64": "npm:0.18.20" - "@esbuild/sunos-x64": "npm:0.18.20" - "@esbuild/win32-arm64": "npm:0.18.20" - "@esbuild/win32-ia32": "npm:0.18.20" - "@esbuild/win32-x64": "npm:0.18.20" + "@esbuild/aix-ppc64": "npm:0.21.5" + "@esbuild/android-arm": "npm:0.21.5" + "@esbuild/android-arm64": "npm:0.21.5" + "@esbuild/android-x64": "npm:0.21.5" + "@esbuild/darwin-arm64": "npm:0.21.5" + "@esbuild/darwin-x64": "npm:0.21.5" + "@esbuild/freebsd-arm64": "npm:0.21.5" + "@esbuild/freebsd-x64": "npm:0.21.5" + "@esbuild/linux-arm": "npm:0.21.5" + "@esbuild/linux-arm64": "npm:0.21.5" + "@esbuild/linux-ia32": "npm:0.21.5" + "@esbuild/linux-loong64": "npm:0.21.5" + "@esbuild/linux-mips64el": "npm:0.21.5" + "@esbuild/linux-ppc64": "npm:0.21.5" + "@esbuild/linux-riscv64": "npm:0.21.5" + "@esbuild/linux-s390x": "npm:0.21.5" + "@esbuild/linux-x64": "npm:0.21.5" + "@esbuild/netbsd-x64": "npm:0.21.5" + "@esbuild/openbsd-x64": "npm:0.21.5" + "@esbuild/sunos-x64": "npm:0.21.5" + "@esbuild/win32-arm64": "npm:0.21.5" + "@esbuild/win32-ia32": "npm:0.21.5" + "@esbuild/win32-x64": "npm:0.21.5" dependenciesMeta: + "@esbuild/aix-ppc64": + optional: true "@esbuild/android-arm": optional: true "@esbuild/android-arm64": @@ -6957,7 +5871,7 @@ __metadata: optional: true bin: esbuild: bin/esbuild - checksum: 10c0/473b1d92842f50a303cf948a11ebd5f69581cd254d599dd9d62f9989858e0533f64e83b723b5e1398a5b488c0f5fd088795b4235f65ecaf4f007d4b79f04bc88 + checksum: 10c0/fa08508adf683c3f399e8a014a6382a6b65542213431e26206c0720e536b31c09b50798747c2a105a4bbba1d9767b8d3615a74c2f7bf1ddf6d836cd11eb672de languageName: node linkType: hard @@ -7099,7 +6013,7 @@ __metadata: languageName: node linkType: hard -"esprima@npm:^4.0.0, esprima@npm:^4.0.1, esprima@npm:~4.0.0": +"esprima@npm:^4.0.1, esprima@npm:~4.0.0": version: 4.0.1 resolution: "esprima@npm:4.0.1" bin: @@ -7188,7 +6102,7 @@ __metadata: languageName: node linkType: hard -"execa@npm:^5.0.0, execa@npm:^5.1.1": +"execa@npm:^5.0.0": version: 5.1.1 resolution: "execa@npm:5.1.1" dependencies: @@ -7253,7 +6167,7 @@ __metadata: languageName: node linkType: hard -"express@npm:^4.17.3, express@npm:^4.19.2": +"express@npm:^4.19.2": version: 4.19.2 resolution: "express@npm:4.19.2" dependencies: @@ -7343,20 +6257,6 @@ __metadata: languageName: node linkType: hard -"extract-zip@npm:^1.6.6": - version: 1.7.0 - resolution: "extract-zip@npm:1.7.0" - dependencies: - concat-stream: "npm:^1.6.2" - debug: "npm:^2.6.9" - mkdirp: "npm:^0.5.4" - yauzl: "npm:^2.10.0" - bin: - extract-zip: cli.js - checksum: 10c0/333f1349ee678d47268315f264dbfcd7003747d25640441e186e87c66efd7129f171f1bcfe8ff1151a24da19d5f8602daff002ee24145dc65516bc9a8e40ee08 - languageName: node - linkType: hard - "fancy-log@npm:^1.3.2": version: 1.3.3 resolution: "fancy-log@npm:1.3.3" @@ -7378,7 +6278,7 @@ __metadata: languageName: node linkType: hard -"fast-glob@npm:^3.2.9": +"fast-glob@npm:^3.3.2": version: 3.3.2 resolution: "fast-glob@npm:3.3.2" dependencies: @@ -7391,13 +6291,6 @@ __metadata: languageName: node linkType: hard -"fast-json-stable-stringify@npm:^2.1.0": - version: 2.1.0 - resolution: "fast-json-stable-stringify@npm:2.1.0" - checksum: 10c0/7f081eb0b8a64e0057b3bb03f974b3ef00135fbf36c1c710895cd9300f13c94ba809bb3a81cf4e1b03f6e5285610a61abbd7602d0652de423144dfee5a389c9b - languageName: node - linkType: hard - "fast-levenshtein@npm:^1.0.0": version: 1.1.4 resolution: "fast-levenshtein@npm:1.1.4" @@ -7414,15 +6307,6 @@ __metadata: languageName: node linkType: hard -"fb-watchman@npm:^2.0.0": - version: 2.0.2 - resolution: "fb-watchman@npm:2.0.2" - dependencies: - bser: "npm:2.1.1" - checksum: 10c0/feae89ac148adb8f6ae8ccd87632e62b13563e6fb114cacb5265c51f585b17e2e268084519fb2edd133872f1d47a18e6bfd7e5e08625c0d41b93149694187581 - languageName: node - linkType: hard - "fbjs-css-vars@npm:^1.0.0": version: 1.0.2 resolution: "fbjs-css-vars@npm:1.0.2" @@ -7445,12 +6329,12 @@ __metadata: languageName: node linkType: hard -"fd-slicer@npm:~1.1.0": - version: 1.1.0 - resolution: "fd-slicer@npm:1.1.0" +"fd-package-json@npm:^1.2.0": + version: 1.2.0 + resolution: "fd-package-json@npm:1.2.0" dependencies: - pend: "npm:~1.2.0" - checksum: 10c0/304dd70270298e3ffe3bcc05e6f7ade2511acc278bc52d025f8918b48b6aa3b77f10361bddfadfe2a28163f7af7adbdce96f4d22c31b2f648ba2901f0c5fc20e + walk-up-path: "npm:^3.0.1" + checksum: 10c0/712a78a12bd8ec8482867b26bbcb2ff1dca9b096a416150c138e1512f1879c6d23dfb41b03b8e9226afc1e58a35df4738e9f9ae57032ff1dbbae75acfb70343b languageName: node linkType: hard @@ -7461,23 +6345,6 @@ __metadata: languageName: node linkType: hard -"fetch-retry@npm:^5.0.2": - version: 5.0.6 - resolution: "fetch-retry@npm:5.0.6" - checksum: 10c0/349f50db631039630e915f70c763469cb696f3ac92ca6f63823109334a2bc62f63670b8c5a5c7e0195c39df517e60ef385cc5264f4c4904d0c6707d371fa8999 - languageName: node - linkType: hard - -"file-system-cache@npm:2.3.0": - version: 2.3.0 - resolution: "file-system-cache@npm:2.3.0" - dependencies: - fs-extra: "npm:11.1.1" - ramda: "npm:0.29.0" - checksum: 10c0/43de19f0db32e6546bb7abeecb1d6ea83c1eca23b38905c9415a29f6219cc9d6d87b0c1a6aca92c46a0f1bc276241a339f2f68b8aa0ca5c2eb64b6e1e3e4da01 - languageName: node - linkType: hard - "file-uri-to-path@npm:1.0.0": version: 1.0.0 resolution: "file-uri-to-path@npm:1.0.0" @@ -7485,15 +6352,6 @@ __metadata: languageName: node linkType: hard -"filelist@npm:^1.0.4": - version: 1.0.4 - resolution: "filelist@npm:1.0.4" - dependencies: - minimatch: "npm:^5.0.1" - checksum: 10c0/426b1de3944a3d153b053f1c0ebfd02dccd0308a4f9e832ad220707a6d1f1b3c9784d6cadf6b2f68f09a57565f63ebc7bcdc913ccf8012d834f472c46e596f41 - languageName: node - linkType: hard - "fill-range@npm:^4.0.0": version: 4.0.0 resolution: "fill-range@npm:4.0.0" @@ -7571,7 +6429,7 @@ __metadata: languageName: node linkType: hard -"find-up@npm:^4.0.0, find-up@npm:^4.1.0": +"find-up@npm:^4.0.0": version: 4.1.0 resolution: "find-up@npm:4.1.0" dependencies: @@ -7740,10 +6598,10 @@ __metadata: resolution: "frontend@workspace:." dependencies: "@playwright/test": "npm:1.44.1" - "@storybook/addon-essentials": "npm:^7.6.17" - "@storybook/blocks": "npm:^7.6.17" - "@storybook/react": "npm:^7.6.17" - "@storybook/react-vite": "npm:^7.6.17" + "@storybook/addon-essentials": "npm:^8.2.1" + "@storybook/blocks": "npm:^8.2.1" + "@storybook/react": "npm:^8.2.1" + "@storybook/react-vite": "npm:^8.2.1" "@types/node": "npm:^20.11.20" autoprefixer: "npm:^10.4.19" compression: "npm:^1.7.4" @@ -7795,7 +6653,7 @@ __metadata: sax: "npm:^1.4.1" shadow-cljs: "npm:2.28.8" source-map-support: "npm:^0.5.21" - storybook: "npm:^7.6.17" + storybook: "npm:^8.2.1" svg-sprite: "npm:^2.0.4" tdigest: "npm:^0.1.2" typescript: "npm:^5.4.5" @@ -7808,24 +6666,6 @@ __metadata: languageName: unknown linkType: soft -"fs-constants@npm:^1.0.0": - version: 1.0.0 - resolution: "fs-constants@npm:1.0.0" - checksum: 10c0/a0cde99085f0872f4d244e83e03a46aa387b74f5a5af750896c6b05e9077fac00e9932fdf5aef84f2f16634cd473c63037d7a512576da7d5c2b9163d1909f3a8 - languageName: node - linkType: hard - -"fs-extra@npm:11.1.1": - version: 11.1.1 - resolution: "fs-extra@npm:11.1.1" - dependencies: - graceful-fs: "npm:^4.2.0" - jsonfile: "npm:^6.0.1" - universalify: "npm:^2.0.0" - checksum: 10c0/a2480243d7dcfa7d723c5f5b24cf4eba02a6ccece208f1524a2fbde1c629492cfb9a59e4b6d04faff6fbdf71db9fdc8ef7f396417a02884195a625f5d8dc9427 - languageName: node - linkType: hard - "fs-extra@npm:^11.1.0": version: 11.2.0 resolution: "fs-extra@npm:11.2.0" @@ -7893,7 +6733,7 @@ __metadata: languageName: node linkType: hard -"fsevents@npm:^2.3.2, fsevents@npm:~2.3.2, fsevents@npm:~2.3.3": +"fsevents@npm:~2.3.2, fsevents@npm:~2.3.3": version: 2.3.3 resolution: "fsevents@npm:2.3.3" dependencies: @@ -7922,7 +6762,7 @@ __metadata: languageName: node linkType: hard -"fsevents@patch:fsevents@npm%3A^2.3.2#optional!builtin, fsevents@patch:fsevents@npm%3A~2.3.2#optional!builtin, fsevents@patch:fsevents@npm%3A~2.3.3#optional!builtin": +"fsevents@patch:fsevents@npm%3A~2.3.2#optional!builtin, fsevents@patch:fsevents@npm%3A~2.3.3#optional!builtin": version: 2.3.3 resolution: "fsevents@patch:fsevents@npm%3A2.3.3#optional!builtin::version=2.3.3&hash=df0bf1" dependencies: @@ -8007,34 +6847,6 @@ __metadata: languageName: node linkType: hard -"get-nonce@npm:^1.0.0": - version: 1.0.1 - resolution: "get-nonce@npm:1.0.1" - checksum: 10c0/2d7df55279060bf0568549e1ffc9b84bc32a32b7541675ca092dce56317cdd1a59a98dcc4072c9f6a980779440139a3221d7486f52c488e69dc0fd27b1efb162 - languageName: node - linkType: hard - -"get-npm-tarball-url@npm:^2.0.3": - version: 2.1.0 - resolution: "get-npm-tarball-url@npm:2.1.0" - checksum: 10c0/af779fa5b9c89a3deaf9640630a23368f5ba6a028a1179872aaf581a59485fb2c2c6bd9b94670de228cfc5f23600c89a01e594879085f7fb4dddf820a63105b8 - languageName: node - linkType: hard - -"get-package-type@npm:^0.1.0": - version: 0.1.0 - resolution: "get-package-type@npm:0.1.0" - checksum: 10c0/e34cdf447fdf1902a1f6d5af737eaadf606d2ee3518287abde8910e04159368c268568174b2e71102b87b26c2020486f126bfca9c4fb1ceb986ff99b52ecd1be - languageName: node - linkType: hard - -"get-port@npm:^5.1.1": - version: 5.1.1 - resolution: "get-port@npm:5.1.1" - checksum: 10c0/2873877a469b24e6d5e0be490724a17edb39fafc795d1d662e7bea951ca649713b4a50117a473f9d162312cb0e946597bd0e049ed2f866e79e576e8e213d3d1c - languageName: node - linkType: hard - "get-stream@npm:^6.0.0": version: 6.0.1 resolution: "get-stream@npm:6.0.1" @@ -8104,10 +6916,10 @@ __metadata: languageName: node linkType: hard -"github-slugger@npm:^1.0.0": - version: 1.5.0 - resolution: "github-slugger@npm:1.5.0" - checksum: 10c0/116f99732925f939cbfd6f2e57db1aa7e111a460db0d103e3b3f2fce6909d44311663d4542350706cad806345b9892358cc3b153674f88eeae77f43380b3bfca +"github-slugger@npm:^2.0.0": + version: 2.0.0 + resolution: "github-slugger@npm:2.0.0" + checksum: 10c0/21b912b6b1e48f1e5a50b2292b48df0ff6abeeb0691b161b3d93d84f4ae6b1acd6ae23702e914af7ea5d441c096453cf0f621b72d57893946618d21dd1a1c486 languageName: node linkType: hard @@ -8159,13 +6971,6 @@ __metadata: languageName: node linkType: hard -"glob-to-regexp@npm:^0.4.1": - version: 0.4.1 - resolution: "glob-to-regexp@npm:0.4.1" - checksum: 10c0/0486925072d7a916f052842772b61c3e86247f0a80cc0deb9b5a3e8a1a9faad5b04fb6f58986a09f34d3e96cd2a22a24b7e9882fb1cf904c31e9a310de96c429 - languageName: node - linkType: hard - "glob-watcher@npm:^5.0.3": version: 5.0.5 resolution: "glob-watcher@npm:5.0.5" @@ -8181,7 +6986,7 @@ __metadata: languageName: node linkType: hard -"glob@npm:^10.0.0, glob@npm:^10.2.2, glob@npm:^10.3.10, glob@npm:^10.3.3, glob@npm:^10.3.7": +"glob@npm:^10.2.2, glob@npm:^10.3.10, glob@npm:^10.3.3, glob@npm:^10.3.7": version: 10.3.16 resolution: "glob@npm:10.3.16" dependencies: @@ -8196,7 +7001,7 @@ __metadata: languageName: node linkType: hard -"glob@npm:^7.1.1, glob@npm:^7.1.3, glob@npm:^7.1.4, glob@npm:^7.2.0, glob@npm:^7.2.3": +"glob@npm:^7.1.1, glob@npm:^7.1.3, glob@npm:^7.2.0, glob@npm:^7.2.3": version: 7.2.3 resolution: "glob@npm:7.2.3" dependencies: @@ -8251,17 +7056,17 @@ __metadata: languageName: node linkType: hard -"globby@npm:^11.0.1, globby@npm:^11.0.2": - version: 11.1.0 - resolution: "globby@npm:11.1.0" +"globby@npm:^14.0.1": + version: 14.0.2 + resolution: "globby@npm:14.0.2" dependencies: - array-union: "npm:^2.1.0" - dir-glob: "npm:^3.0.1" - fast-glob: "npm:^3.2.9" - ignore: "npm:^5.2.0" - merge2: "npm:^1.4.1" - slash: "npm:^3.0.0" - checksum: 10c0/b39511b4afe4bd8a7aead3a27c4ade2b9968649abab0a6c28b1a90141b96ca68ca5db1302f7c7bd29eab66bf51e13916b8e0a3d0ac08f75e1e84a39b35691189 + "@sindresorhus/merge-streams": "npm:^2.1.0" + fast-glob: "npm:^3.3.2" + ignore: "npm:^5.2.4" + path-type: "npm:^5.0.0" + slash: "npm:^5.1.0" + unicorn-magic: "npm:^0.1.0" + checksum: 10c0/3f771cd683b8794db1e7ebc8b6b888d43496d93a82aad4e9d974620f578581210b6c5a6e75ea29573ed16a1345222fab6e9b877a8d1ed56eeb147e09f69c6f78 languageName: node linkType: hard @@ -8283,7 +7088,7 @@ __metadata: languageName: node linkType: hard -"graceful-fs@npm:^4.0.0, graceful-fs@npm:^4.1.11, graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.4, graceful-fs@npm:^4.2.6, graceful-fs@npm:^4.2.9": +"graceful-fs@npm:^4.0.0, graceful-fs@npm:^4.1.11, graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.4, graceful-fs@npm:^4.2.6": version: 4.2.11 resolution: "graceful-fs@npm:4.2.11" checksum: 10c0/386d011a553e02bc594ac2ca0bd6d9e4c22d7fa8cfbfc448a6d148c59ea881b092db9dbe3547ae4b88e55f1b01f7c4a2ecc53b310c042793e63aa44cf6c257f2 @@ -8443,40 +7248,6 @@ __metadata: languageName: node linkType: hard -"gunzip-maybe@npm:^1.4.2": - version: 1.4.2 - resolution: "gunzip-maybe@npm:1.4.2" - dependencies: - browserify-zlib: "npm:^0.1.4" - is-deflate: "npm:^1.0.0" - is-gzip: "npm:^1.0.0" - peek-stream: "npm:^1.1.0" - pumpify: "npm:^1.3.3" - through2: "npm:^2.0.3" - bin: - gunzip-maybe: bin.js - checksum: 10c0/42798a8061759885c2084e1804e51313d14f2dc9cf6c137e222953ec802f914e592d6f9dbf6ad67f4e78eb036e86db017d9c7c93bb23e90cd5ae09326296ed77 - languageName: node - linkType: hard - -"handlebars@npm:^4.7.7": - version: 4.7.8 - resolution: "handlebars@npm:4.7.8" - dependencies: - minimist: "npm:^1.2.5" - neo-async: "npm:^2.6.2" - source-map: "npm:^0.6.1" - uglify-js: "npm:^3.1.4" - wordwrap: "npm:^1.0.0" - dependenciesMeta: - uglify-js: - optional: true - bin: - handlebars: bin/handlebars - checksum: 10c0/7aff423ea38a14bb379316f3857fe0df3c5d66119270944247f155ba1f08e07a92b340c58edaa00cfe985c21508870ee5183e0634dcb53dd405f35c93ef7f10d - languageName: node - linkType: hard - "has-bigints@npm:^1.0.1, has-bigints@npm:^1.0.2": version: 1.0.2 resolution: "has-bigints@npm:1.0.2" @@ -8609,6 +7380,33 @@ __metadata: languageName: node linkType: hard +"hast-util-heading-rank@npm:^3.0.0": + version: 3.0.0 + resolution: "hast-util-heading-rank@npm:3.0.0" + dependencies: + "@types/hast": "npm:^3.0.0" + checksum: 10c0/1879c84f629e73f1f13247ab349324355cd801363b44e3d46f763aa5c0ea3b42dcd47b46e5643a0502cf01a6b1fdb9208fd12852e44ca6c671b3e4bccf9369a1 + languageName: node + linkType: hard + +"hast-util-is-element@npm:^3.0.0": + version: 3.0.0 + resolution: "hast-util-is-element@npm:3.0.0" + dependencies: + "@types/hast": "npm:^3.0.0" + checksum: 10c0/f5361e4c9859c587ca8eb0d8343492f3077ccaa0f58a44cd09f35d5038f94d65152288dcd0c19336ef2c9491ec4d4e45fde2176b05293437021570aa0bc3613b + languageName: node + linkType: hard + +"hast-util-to-string@npm:^3.0.0": + version: 3.0.0 + resolution: "hast-util-to-string@npm:3.0.0" + dependencies: + "@types/hast": "npm:^3.0.0" + checksum: 10c0/649edd993cf244563ad86d861aa0863759a4fbec49c43b3d92240e42aa4b69f0c3332ddff9e80954bbd8756c86b0fddc20e97d281c6da59d00427f45da8dab68 + languageName: node + linkType: hard + "highlight.js@npm:^11.9.0": version: 11.9.0 resolution: "highlight.js@npm:11.9.0" @@ -8696,16 +7494,6 @@ __metadata: languageName: node linkType: hard -"https-proxy-agent@npm:^4.0.0": - version: 4.0.0 - resolution: "https-proxy-agent@npm:4.0.0" - dependencies: - agent-base: "npm:5" - debug: "npm:4" - checksum: 10c0/fbba3e037ec04e1850e867064a763b86dd884baae9c5f4ad380504e321068c9e9b5de79cf2f3a28ede7c36036dce905b58d9f51703c5b3884d887114f4887f77 - languageName: node - linkType: hard - "https-proxy-agent@npm:^7.0.1, https-proxy-agent@npm:^7.0.4": version: 7.0.4 resolution: "https-proxy-agent@npm:7.0.4" @@ -8771,7 +7559,7 @@ __metadata: languageName: node linkType: hard -"ignore@npm:^5.2.0": +"ignore@npm:^5.2.4": version: 5.3.1 resolution: "ignore@npm:5.3.1" checksum: 10c0/703f7f45ffb2a27fb2c5a8db0c32e7dee66b33a225d28e8db4e1be6474795f606686a6e3bcc50e1aa12f2042db4c9d4a7d60af3250511de74620fbed052ea4cd @@ -8862,15 +7650,6 @@ __metadata: languageName: node linkType: hard -"invariant@npm:^2.2.4": - version: 2.2.4 - resolution: "invariant@npm:2.2.4" - dependencies: - loose-envify: "npm:^1.0.0" - checksum: 10c0/5af133a917c0bcf65e84e7f23e779e7abc1cd49cb7fdc62d00d1de74b0d8c1b5ee74ac7766099fb3be1b05b26dfc67bab76a17030d2fe7ea2eef867434362dfc - languageName: node - linkType: hard - "invert-kv@npm:^1.0.0": version: 1.0.0 resolution: "invert-kv@npm:1.0.0" @@ -8888,13 +7667,6 @@ __metadata: languageName: node linkType: hard -"ip@npm:^2.0.1": - version: 2.0.1 - resolution: "ip@npm:2.0.1" - checksum: 10c0/cab8eb3e88d0abe23e4724829621ec4c4c5cb41a7f936a2e626c947128c1be16ed543448d42af7cca95379f9892bfcacc1ccd8d09bc7e8bea0e86d492ce33616 - languageName: node - linkType: hard - "ipaddr.js@npm:1.9.1": version: 1.9.1 resolution: "ipaddr.js@npm:1.9.1" @@ -8902,10 +7674,10 @@ __metadata: languageName: node linkType: hard -"is-absolute-url@npm:^3.0.0": - version: 3.0.3 - resolution: "is-absolute-url@npm:3.0.3" - checksum: 10c0/04c415974c32e73a83d3a21a9bea18fc4e2c14fbe6bbd64832cf1e67a75ade2af0e900f552f0b8a447f1305f5ffc9d143ccd8d005dbe715d198c359d342b86f0 +"is-absolute-url@npm:^4.0.0": + version: 4.0.1 + resolution: "is-absolute-url@npm:4.0.1" + checksum: 10c0/6f8f603945bd9f2c6031758bbc12352fc647bd5d807cad10d96cc6300fd0e15240cc091521a61db767e4ec0bacff257b4f1015fd5249c147bbb4a4497356c72e languageName: node linkType: hard @@ -9049,13 +7821,6 @@ __metadata: languageName: node linkType: hard -"is-deflate@npm:^1.0.0": - version: 1.0.0 - resolution: "is-deflate@npm:1.0.0" - checksum: 10c0/35f7ffcbef3549dd8a4d8df5dc09b4f4656a0fc88326e8b5201cda54114a9c2d8efb689d87c16f3f35c95bd71dcf13dc790d62b7504745b42c53ab4b40238f5a - languageName: node - linkType: hard - "is-descriptor@npm:^0.1.0": version: 0.1.7 resolution: "is-descriptor@npm:0.1.7" @@ -9076,15 +7841,6 @@ __metadata: languageName: node linkType: hard -"is-docker@npm:^2.0.0, is-docker@npm:^2.1.1": - version: 2.2.1 - resolution: "is-docker@npm:2.2.1" - bin: - is-docker: cli.js - checksum: 10c0/e828365958d155f90c409cdbe958f64051d99e8aedc2c8c4cd7c89dcf35329daed42f7b99346f7828df013e27deb8f721cf9408ba878c76eb9e8290235fbcdcc - languageName: node - linkType: hard - "is-extendable@npm:^0.1.0, is-extendable@npm:^0.1.1": version: 0.1.1 resolution: "is-extendable@npm:0.1.1" @@ -9151,13 +7907,6 @@ __metadata: languageName: node linkType: hard -"is-gzip@npm:^1.0.0": - version: 1.0.0 - resolution: "is-gzip@npm:1.0.0" - checksum: 10c0/cbc1db080c636a6fb0f7346e3076f8276a29a9d8b52ae67c1971a8131c43f308e98ed227d1a6f49970e6c6ebabee0568e60aed7a3579dd4e1817cddf2faaf9b7 - languageName: node - linkType: hard - "is-interactive@npm:^1.0.0": version: 1.0.0 resolution: "is-interactive@npm:1.0.0" @@ -9172,16 +7921,6 @@ __metadata: languageName: node linkType: hard -"is-nan@npm:^1.3.2": - version: 1.3.2 - resolution: "is-nan@npm:1.3.2" - dependencies: - call-bind: "npm:^1.0.0" - define-properties: "npm:^1.1.3" - checksum: 10c0/8bfb286f85763f9c2e28ea32e9127702fe980ffd15fa5d63ade3be7786559e6e21355d3625dd364c769c033c5aedf0a2ed3d4025d336abf1b9241e3d9eddc5b0 - languageName: node - linkType: hard - "is-negated-glob@npm:^1.0.0": version: 1.0.0 resolution: "is-negated-glob@npm:1.0.0" @@ -9228,20 +7967,6 @@ __metadata: languageName: node linkType: hard -"is-path-cwd@npm:^2.2.0": - version: 2.2.0 - resolution: "is-path-cwd@npm:2.2.0" - checksum: 10c0/afce71533a427a759cd0329301c18950333d7589533c2c90205bd3fdcf7b91eb92d1940493190567a433134d2128ec9325de2fd281e05be1920fbee9edd22e0a - languageName: node - linkType: hard - -"is-path-inside@npm:^3.0.2": - version: 3.0.3 - resolution: "is-path-inside@npm:3.0.3" - checksum: 10c0/cf7d4ac35fb96bab6a1d2c3598fe5ebb29aafb52c0aaa482b5a3ed9d8ba3edc11631e3ec2637660c44b3ce0e61a08d54946e8af30dec0b60a7c27296c68ffd05 - languageName: node - linkType: hard - "is-plain-object@npm:5.0.0, is-plain-object@npm:^5.0.0": version: 5.0.0 resolution: "is-plain-object@npm:5.0.0" @@ -9387,15 +8112,6 @@ __metadata: languageName: node linkType: hard -"is-wsl@npm:^2.2.0": - version: 2.2.0 - resolution: "is-wsl@npm:2.2.0" - dependencies: - is-docker: "npm:^2.0.0" - checksum: 10c0/a6fa2d370d21be487c0165c7a440d567274fbba1a817f2f0bfa41cc5e3af25041d84267baa22df66696956038a43973e72fca117918c91431920bdef490fa25e - languageName: node - linkType: hard - "isarray@npm:1.0.0, isarray@npm:^1.0.0, isarray@npm:~1.0.0": version: 1.0.0 resolution: "isarray@npm:1.0.0" @@ -9440,26 +8156,6 @@ __metadata: languageName: node linkType: hard -"istanbul-lib-coverage@npm:^3.2.0": - version: 3.2.2 - resolution: "istanbul-lib-coverage@npm:3.2.2" - checksum: 10c0/6c7ff2106769e5f592ded1fb418f9f73b4411fd5a084387a5410538332b6567cd1763ff6b6cadca9b9eb2c443cce2f7ea7d7f1b8d315f9ce58539793b1e0922b - languageName: node - linkType: hard - -"istanbul-lib-instrument@npm:^5.0.4": - version: 5.2.1 - resolution: "istanbul-lib-instrument@npm:5.2.1" - dependencies: - "@babel/core": "npm:^7.12.3" - "@babel/parser": "npm:^7.14.7" - "@istanbuljs/schema": "npm:^0.1.2" - istanbul-lib-coverage: "npm:^3.2.0" - semver: "npm:^6.3.0" - checksum: 10c0/8a1bdf3e377dcc0d33ec32fe2b6ecacdb1e4358fd0eb923d4326bb11c67622c0ceb99600a680f3dad5d29c66fc1991306081e339b4d43d0b8a2ab2e1d910a6ee - languageName: node - linkType: hard - "jackspeak@npm:^3.1.2": version: 3.1.2 resolution: "jackspeak@npm:3.1.2" @@ -9473,76 +8169,6 @@ __metadata: languageName: node linkType: hard -"jake@npm:^10.8.5": - version: 10.9.1 - resolution: "jake@npm:10.9.1" - dependencies: - async: "npm:^3.2.3" - chalk: "npm:^4.0.2" - filelist: "npm:^1.0.4" - minimatch: "npm:^3.1.2" - bin: - jake: bin/cli.js - checksum: 10c0/dda972431a926462f08fcf583ea8997884216a43daa5cce81cb42e7e661dc244f836c0a802fde23439c6e1fc59743d1c0be340aa726d3b17d77557611a5cd541 - languageName: node - linkType: hard - -"jest-haste-map@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-haste-map@npm:29.7.0" - dependencies: - "@jest/types": "npm:^29.6.3" - "@types/graceful-fs": "npm:^4.1.3" - "@types/node": "npm:*" - anymatch: "npm:^3.0.3" - fb-watchman: "npm:^2.0.0" - fsevents: "npm:^2.3.2" - graceful-fs: "npm:^4.2.9" - jest-regex-util: "npm:^29.6.3" - jest-util: "npm:^29.7.0" - jest-worker: "npm:^29.7.0" - micromatch: "npm:^4.0.4" - walker: "npm:^1.0.8" - dependenciesMeta: - fsevents: - optional: true - checksum: 10c0/2683a8f29793c75a4728787662972fedd9267704c8f7ef9d84f2beed9a977f1cf5e998c07b6f36ba5603f53cb010c911fe8cd0ac9886e073fe28ca66beefd30c - languageName: node - linkType: hard - -"jest-regex-util@npm:^29.6.3": - version: 29.6.3 - resolution: "jest-regex-util@npm:29.6.3" - checksum: 10c0/4e33fb16c4f42111159cafe26397118dcfc4cf08bc178a67149fb05f45546a91928b820894572679d62559839d0992e21080a1527faad65daaae8743a5705a3b - languageName: node - linkType: hard - -"jest-util@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-util@npm:29.7.0" - dependencies: - "@jest/types": "npm:^29.6.3" - "@types/node": "npm:*" - chalk: "npm:^4.0.0" - ci-info: "npm:^3.2.0" - graceful-fs: "npm:^4.2.9" - picomatch: "npm:^2.2.3" - checksum: 10c0/bc55a8f49fdbb8f51baf31d2a4f312fb66c9db1483b82f602c9c990e659cdd7ec529c8e916d5a89452ecbcfae4949b21b40a7a59d4ffc0cd813a973ab08c8150 - languageName: node - linkType: hard - -"jest-worker@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-worker@npm:29.7.0" - dependencies: - "@types/node": "npm:*" - jest-util: "npm:^29.7.0" - merge-stream: "npm:^2.0.0" - supports-color: "npm:^8.0.0" - checksum: 10c0/5570a3a005b16f46c131968b8a5b56d291f9bbb85ff4217e31c80bd8a02e7de799e59a54b95ca28d5c302f248b54cbffde2d177c2f0f52ffcee7504c6eabf660 - languageName: node - linkType: hard - "js-beautify@npm:^1.15.1": version: 1.15.1 resolution: "js-beautify@npm:1.15.1" @@ -9581,18 +8207,6 @@ __metadata: languageName: node linkType: hard -"js-yaml@npm:^3.13.1": - version: 3.14.1 - resolution: "js-yaml@npm:3.14.1" - dependencies: - argparse: "npm:^1.0.7" - esprima: "npm:^4.0.0" - bin: - js-yaml: bin/js-yaml.js - checksum: 10c0/6746baaaeac312c4db8e75fa22331d9a04cccb7792d126ed8ce6a0bbcfef0cedaddd0c5098fade53db067c09fe00aa1c957674b4765610a8b06a5a189e46433b - languageName: node - linkType: hard - "js-yaml@npm:^4.1.0": version: 4.1.0 resolution: "js-yaml@npm:4.1.0" @@ -9705,13 +8319,6 @@ __metadata: languageName: node linkType: hard -"json-parse-even-better-errors@npm:^2.3.0": - version: 2.3.1 - resolution: "json-parse-even-better-errors@npm:2.3.1" - checksum: 10c0/140932564c8f0b88455432e0f33c4cb4086b8868e37524e07e723f4eaedb9425bdc2bafd71bd1d9765bd15fd1e2d126972bc83990f55c467168c228c24d665f3 - languageName: node - linkType: hard - "json-stable-stringify-without-jsonify@npm:^1.0.1": version: 1.0.1 resolution: "json-stable-stringify-without-jsonify@npm:1.0.1" @@ -9719,7 +8326,7 @@ __metadata: languageName: node linkType: hard -"json5@npm:^2.2.3": +"json5@npm:^2.2.2, json5@npm:^2.2.3": version: 2.2.3 resolution: "json5@npm:2.2.3" bin: @@ -9816,17 +8423,6 @@ __metadata: languageName: node linkType: hard -"lazy-universal-dotenv@npm:^4.0.0": - version: 4.0.0 - resolution: "lazy-universal-dotenv@npm:4.0.0" - dependencies: - app-root-dir: "npm:^1.0.2" - dotenv: "npm:^16.0.0" - dotenv-expand: "npm:^10.0.0" - checksum: 10c0/3bc4fe649c46c4a20561ca1fd10cd1df641d2c6c42c61af6c65a5fe0546cb548f449e13e6c7440be445c9fe5b4973c25f499e7d899b8704b7b9bd0ec85bbfe2d - languageName: node - linkType: hard - "lazystream@npm:^1.0.0": version: 1.0.1 resolution: "lazystream@npm:1.0.1" @@ -9893,13 +8489,6 @@ __metadata: languageName: node linkType: hard -"lines-and-columns@npm:^1.1.6": - version: 1.2.4 - resolution: "lines-and-columns@npm:1.2.4" - checksum: 10c0/3da6ee62d4cd9f03f5dc90b4df2540fb85b352081bee77fe4bbcd12c9000ead7f35e0a38b8d09a9bb99b13223446dd8689ff3c4959807620726d788701a83d2d - languageName: node - linkType: hard - "load-json-file@npm:^1.0.0": version: 1.1.0 resolution: "load-json-file@npm:1.1.0" @@ -10154,15 +8743,6 @@ __metadata: languageName: node linkType: hard -"makeerror@npm:1.0.12": - version: 1.0.12 - resolution: "makeerror@npm:1.0.12" - dependencies: - tmpl: "npm:1.0.5" - checksum: 10c0/b0e6e599780ce6bab49cc413eba822f7d1f0dfebd1c103eaa3785c59e43e22c59018323cf9e1708f0ef5329e94a745d163fcbb6bff8e4c6742f9be9e86f3500c - languageName: node - linkType: hard - "map-cache@npm:^0.2.0, map-cache@npm:^0.2.2": version: 0.2.2 resolution: "map-cache@npm:0.2.2" @@ -10193,7 +8773,7 @@ __metadata: languageName: node linkType: hard -"markdown-to-jsx@npm:^7.1.8": +"markdown-to-jsx@npm:^7.4.5": version: 7.4.7 resolution: "markdown-to-jsx@npm:7.4.7" peerDependencies: @@ -10234,22 +8814,6 @@ __metadata: languageName: node linkType: hard -"mdast-util-definitions@npm:^4.0.0": - version: 4.0.0 - resolution: "mdast-util-definitions@npm:4.0.0" - dependencies: - unist-util-visit: "npm:^2.0.0" - checksum: 10c0/d81bb0b702f99878c8e8e4f66dd7f6f673ab341f061b3d9487ba47dad28b584e02f16b4c42df23714eaac8a7dd8544ba7d77308fad8d4a9fd0ac92e2a7f56be9 - languageName: node - linkType: hard - -"mdast-util-to-string@npm:^1.0.0": - version: 1.1.0 - resolution: "mdast-util-to-string@npm:1.1.0" - checksum: 10c0/5dad9746ec0839792a8a35f504564e8d2b8c30013652410306c111963d33f1ee7b5477aa64ed77b64e13216363a29395809875ffd80e2031a08614657628a121 - languageName: node - linkType: hard - "mdn-data@npm:2.0.14": version: 2.0.14 resolution: "mdn-data@npm:2.0.14" @@ -10310,7 +8874,7 @@ __metadata: languageName: node linkType: hard -"merge2@npm:^1.3.0, merge2@npm:^1.4.1": +"merge2@npm:^1.3.0": version: 1.4.1 resolution: "merge2@npm:1.4.1" checksum: 10c0/254a8a4605b58f450308fc474c82ac9a094848081bf4c06778200207820e5193726dc563a0d2c16468810516a5c97d9d3ea0ca6585d23c58ccfff2403e8dbbeb @@ -10374,7 +8938,7 @@ __metadata: languageName: node linkType: hard -"mime-types@npm:^2.1.12, mime-types@npm:^2.1.25, mime-types@npm:~2.1.24, mime-types@npm:~2.1.34": +"mime-types@npm:^2.1.12, mime-types@npm:~2.1.24, mime-types@npm:~2.1.34": version: 2.1.35 resolution: "mime-types@npm:2.1.35" dependencies: @@ -10392,15 +8956,6 @@ __metadata: languageName: node linkType: hard -"mime@npm:^2.0.3": - version: 2.6.0 - resolution: "mime@npm:2.6.0" - bin: - mime: cli.js - checksum: 10c0/a7f2589900d9c16e3bdf7672d16a6274df903da958c1643c9c45771f0478f3846dcb1097f31eb9178452570271361e2149310931ec705c037210fc69639c8e6c - languageName: node - linkType: hard - "mimic-fn@npm:^2.1.0": version: 2.1.0 resolution: "mimic-fn@npm:2.1.0" @@ -10454,15 +9009,6 @@ __metadata: languageName: node linkType: hard -"minimatch@npm:^5.0.1": - version: 5.1.6 - resolution: "minimatch@npm:5.1.6" - dependencies: - brace-expansion: "npm:^2.0.1" - checksum: 10c0/3defdfd230914f22a8da203747c42ee3c405c39d4d37ffda284dac5e45b7e1f6c49aa8be606509002898e73091ff2a3bbfc59c2c6c71d4660609f63aa92f98e3 - languageName: node - linkType: hard - "minimatch@npm:^9.0.1": version: 9.0.4 resolution: "minimatch@npm:9.0.4" @@ -10472,7 +9018,7 @@ __metadata: languageName: node linkType: hard -"minimist@npm:^1.2.5, minimist@npm:^1.2.6": +"minimist@npm:^1.2.6": version: 1.2.8 resolution: "minimist@npm:1.2.8" checksum: 10c0/19d3fcdca050087b84c2029841a093691a91259a47def2f18222f41e7645a0b7c44ef4b40e88a1e58a40c84d2ef0ee6047c55594d298146d0eb3f6b737c20ce6 @@ -10573,24 +9119,6 @@ __metadata: languageName: node linkType: hard -"mkdirp-classic@npm:^0.5.2": - version: 0.5.3 - resolution: "mkdirp-classic@npm:0.5.3" - checksum: 10c0/95371d831d196960ddc3833cc6907e6b8f67ac5501a6582f47dfae5eb0f092e9f8ce88e0d83afcae95d6e2b61a01741ba03714eeafb6f7a6e9dcc158ac85b168 - languageName: node - linkType: hard - -"mkdirp@npm:^0.5.4": - version: 0.5.6 - resolution: "mkdirp@npm:0.5.6" - dependencies: - minimist: "npm:^1.2.6" - bin: - mkdirp: bin/cmd.js - checksum: 10c0/e2e2be789218807b58abced04e7b49851d9e46e88a2f9539242cc8a92c9b5c3a0b9bab360bd3014e02a140fc4fbc58e31176c408b493f8a2a6f4986bd7527b01 - languageName: node - linkType: hard - "mkdirp@npm:^1.0.3": version: 1.0.4 resolution: "mkdirp@npm:1.0.4" @@ -10709,7 +9237,7 @@ __metadata: languageName: node linkType: hard -"neo-async@npm:^2.5.0, neo-async@npm:^2.6.2": +"neo-async@npm:^2.5.0": version: 2.6.2 resolution: "neo-async@npm:2.6.2" checksum: 10c0/c2f5a604a54a8ec5438a342e1f356dff4bc33ccccdb6dc668d94fe8e5eccfc9d2c2eea6064b0967a767ba63b33763f51ccf2cd2441b461a7322656c1f06b3f5d @@ -10746,7 +9274,7 @@ __metadata: languageName: node linkType: hard -"node-fetch@npm:^2.0.0, node-fetch@npm:^2.6.12": +"node-fetch@npm:^2.6.12": version: 2.7.0 resolution: "node-fetch@npm:2.7.0" dependencies: @@ -10780,13 +9308,6 @@ __metadata: languageName: node linkType: hard -"node-int64@npm:^0.4.0": - version: 0.4.0 - resolution: "node-int64@npm:0.4.0" - checksum: 10c0/a6a4d8369e2f2720e9c645255ffde909c0fbd41c92ea92a5607fc17055955daac99c1ff589d421eee12a0d24e99f7bfc2aabfeb1a4c14742f6c099a51863f31a - languageName: node - linkType: hard - "node-libs-browser@npm:^2.2.1": version: 2.2.1 resolution: "node-libs-browser@npm:2.2.1" @@ -10856,7 +9377,7 @@ __metadata: languageName: node linkType: hard -"normalize-package-data@npm:^2.3.2, normalize-package-data@npm:^2.5.0": +"normalize-package-data@npm:^2.3.2": version: 2.5.0 resolution: "normalize-package-data@npm:2.5.0" dependencies: @@ -11002,16 +9523,6 @@ __metadata: languageName: node linkType: hard -"object-is@npm:^1.1.5": - version: 1.1.6 - resolution: "object-is@npm:1.1.6" - dependencies: - call-bind: "npm:^1.0.7" - define-properties: "npm:^1.2.1" - checksum: 10c0/506af444c4dce7f8e31f34fc549e2fb8152d6b9c4a30c6e62852badd7f520b579c679af433e7a072f9d78eb7808d230dc12e1cf58da9154dfbf8813099ea0fe0 - languageName: node - linkType: hard - "object-keys@npm:^1.1.1": version: 1.1.1 resolution: "object-keys@npm:1.1.1" @@ -11140,17 +9651,6 @@ __metadata: languageName: node linkType: hard -"open@npm:^8.0.4, open@npm:^8.4.0": - version: 8.4.2 - resolution: "open@npm:8.4.2" - dependencies: - define-lazy-prop: "npm:^2.0.0" - is-docker: "npm:^2.1.1" - is-wsl: "npm:^2.2.0" - checksum: 10c0/bb6b3a58401dacdb0aad14360626faf3fb7fba4b77816b373495988b724fb48941cad80c1b65d62bb31a17609b2cd91c41a181602caea597ca80dfbcc27e84c9 - languageName: node - linkType: hard - "opentype.js@npm:^1.3.4": version: 1.3.4 resolution: "opentype.js@npm:1.3.4" @@ -11275,13 +9775,6 @@ __metadata: languageName: node linkType: hard -"pako@npm:~0.2.0": - version: 0.2.9 - resolution: "pako@npm:0.2.9" - checksum: 10c0/79c1806ebcf325b60ae599e4d7227c2e346d7b829dc20f5cf24cef07c934079dc3a61c5b3c8278a2f7a190c4a613e343ea11e5302dbe252efd11712df4b6b041 - languageName: node - linkType: hard - "pako@npm:~1.0.2, pako@npm:~1.0.5": version: 1.0.11 resolution: "pako@npm:1.0.11" @@ -11333,18 +9826,6 @@ __metadata: languageName: node linkType: hard -"parse-json@npm:^5.0.0": - version: 5.2.0 - resolution: "parse-json@npm:5.2.0" - dependencies: - "@babel/code-frame": "npm:^7.0.0" - error-ex: "npm:^1.3.1" - json-parse-even-better-errors: "npm:^2.3.0" - lines-and-columns: "npm:^1.1.6" - checksum: 10c0/77947f2253005be7a12d858aedbafa09c9ae39eb4863adf330f7b416ca4f4a08132e453e08de2db46459256fb66afaac5ee758b44fe6541b7cdaf9d252e59585 - languageName: node - linkType: hard - "parse-node-version@npm:^1.0.0": version: 1.0.1 resolution: "parse-node-version@npm:1.0.1" @@ -11507,10 +9988,10 @@ __metadata: languageName: node linkType: hard -"path-type@npm:^4.0.0": - version: 4.0.0 - resolution: "path-type@npm:4.0.0" - checksum: 10c0/666f6973f332f27581371efaf303fd6c272cc43c2057b37aa99e3643158c7e4b2626549555d88626e99ea9e046f82f32e41bbde5f1508547e9a11b149b52387c +"path-type@npm:^5.0.0": + version: 5.0.0 + resolution: "path-type@npm:5.0.0" + checksum: 10c0/e8f4b15111bf483900c75609e5e74e3fcb79f2ddb73e41470028fcd3e4b5162ec65da9907be077ee5012c18801ff7fffb35f9f37a077f3f81d85a0b7d6578efd languageName: node linkType: hard @@ -11541,24 +10022,6 @@ __metadata: languageName: node linkType: hard -"peek-stream@npm:^1.1.0": - version: 1.1.3 - resolution: "peek-stream@npm:1.1.3" - dependencies: - buffer-from: "npm:^1.0.0" - duplexify: "npm:^3.5.0" - through2: "npm:^2.0.3" - checksum: 10c0/3c35d1951b8640036f93b1b5628a90f849e49ca4f2e6aba393ff4978413931d9c491c83f71a92f878d5ea4c670af0bba04dfcfb79b310ead22601db7c1420e36 - languageName: node - linkType: hard - -"pend@npm:~1.2.0": - version: 1.2.0 - resolution: "pend@npm:1.2.0" - checksum: 10c0/8a87e63f7a4afcfb0f9f77b39bb92374afc723418b9cb716ee4257689224171002e07768eeade4ecd0e86f1fa3d8f022994219fb45634f2dbd78c6803e452458 - languageName: node - linkType: hard - "picocolors@npm:^0.2.1": version: 0.2.1 resolution: "picocolors@npm:0.2.1" @@ -11573,7 +10036,7 @@ __metadata: languageName: node linkType: hard -"picomatch@npm:^2.0.4, picomatch@npm:^2.2.1, picomatch@npm:^2.2.3, picomatch@npm:^2.3.0, picomatch@npm:^2.3.1": +"picomatch@npm:^2.0.4, picomatch@npm:^2.2.1, picomatch@npm:^2.3.1": version: 2.3.1 resolution: "picomatch@npm:2.3.1" checksum: 10c0/26c02b8d06f03206fc2ab8d16f19960f2ff9e81a658f831ecb656d8f17d9edc799e8364b1f4a7873e89d9702dff96204be0fa26fe4181f6843f040f819dac4be @@ -11626,7 +10089,7 @@ __metadata: languageName: node linkType: hard -"pirates@npm:^4.0.4, pirates@npm:^4.0.6": +"pirates@npm:^4.0.6": version: 4.0.6 resolution: "pirates@npm:4.0.6" checksum: 10c0/00d5fa51f8dded94d7429700fb91a0c1ead00ae2c7fd27089f0c5b63e6eca36197fe46384631872690a66f390c5e27198e99006ab77ae472692ab9c2ca903f36 @@ -11651,15 +10114,6 @@ __metadata: languageName: node linkType: hard -"pkg-dir@npm:^5.0.0": - version: 5.0.0 - resolution: "pkg-dir@npm:5.0.0" - dependencies: - find-up: "npm:^5.0.0" - checksum: 10c0/793a496d685dc55bbbdbbb22d884535c3b29241e48e3e8d37e448113a71b9e42f5481a61fdc672d7322de12fbb2c584dd3a68bf89b18fffce5c48a390f911bc5 - languageName: node - linkType: hard - "pkg-types@npm:^1.0.3, pkg-types@npm:^1.1.0": version: 1.1.1 resolution: "pkg-types@npm:1.1.1" @@ -11881,7 +10335,7 @@ __metadata: languageName: node linkType: hard -"prettier@npm:3.3.2": +"prettier@npm:3.3.2, prettier@npm:^3.1.1": version: 3.3.2 resolution: "prettier@npm:3.3.2" bin: @@ -11890,15 +10344,6 @@ __metadata: languageName: node linkType: hard -"prettier@npm:^2.8.0": - version: 2.8.8 - resolution: "prettier@npm:2.8.8" - bin: - prettier: bin-prettier.js - checksum: 10c0/463ea8f9a0946cd5b828d8cf27bd8b567345cf02f56562d5ecde198b91f47a76b7ac9eae0facd247ace70e927143af6135e8cf411986b8cb8478784a4d6d724a - languageName: node - linkType: hard - "pretty-format@npm:^29.7.0": version: 29.7.0 resolution: "pretty-format@npm:29.7.0" @@ -11910,7 +10355,7 @@ __metadata: languageName: node linkType: hard -"pretty-hrtime@npm:^1.0.0, pretty-hrtime@npm:^1.0.3": +"pretty-hrtime@npm:^1.0.0": version: 1.0.3 resolution: "pretty-hrtime@npm:1.0.3" checksum: 10c0/67cb3fc283a72252b49ac488647e6a01b78b7aa1b8f2061834aa1650691229081518ef3ca940f77f41cc8a8f02ba9eeb74b843481596670209e493062f2e89e0 @@ -11959,13 +10404,6 @@ __metadata: languageName: node linkType: hard -"progress@npm:^2.0.1": - version: 2.0.3 - resolution: "progress@npm:2.0.3" - checksum: 10c0/1697e07cb1068055dbe9fe858d242368ff5d2073639e652b75a7eb1f2a1a8d4afd404d719de23c7b48481a6aa0040686310e2dac2f53d776daa2176d3f96369c - languageName: node - linkType: hard - "promise-make-naked@npm:^2.1.1": version: 2.1.2 resolution: "promise-make-naked@npm:2.1.2" @@ -12030,13 +10468,6 @@ __metadata: languageName: node linkType: hard -"proxy-from-env@npm:^1.0.0": - version: 1.1.0 - resolution: "proxy-from-env@npm:1.1.0" - checksum: 10c0/fe7dd8b1bdbbbea18d1459107729c3e4a2243ca870d26d34c2c1bcd3e4425b7bcc5112362df2d93cc7fb9746f6142b5e272fd1cc5c86ddf8580175186f6ad42b - languageName: node - linkType: hard - "psl@npm:^1.1.33": version: 1.9.0 resolution: "psl@npm:1.9.0" @@ -12075,17 +10506,7 @@ __metadata: languageName: node linkType: hard -"pump@npm:^3.0.0": - version: 3.0.0 - resolution: "pump@npm:3.0.0" - dependencies: - end-of-stream: "npm:^1.1.0" - once: "npm:^1.3.1" - checksum: 10c0/bbdeda4f747cdf47db97428f3a135728669e56a0ae5f354a9ac5b74556556f5446a46f720a8f14ca2ece5be9b4d5d23c346db02b555f46739934cc6c093a5478 - languageName: node - linkType: hard - -"pumpify@npm:^1.3.3, pumpify@npm:^1.3.5": +"pumpify@npm:^1.3.5": version: 1.5.1 resolution: "pumpify@npm:1.5.1" dependencies: @@ -12110,24 +10531,6 @@ __metadata: languageName: node linkType: hard -"puppeteer-core@npm:^2.1.1": - version: 2.1.1 - resolution: "puppeteer-core@npm:2.1.1" - dependencies: - "@types/mime-types": "npm:^2.1.0" - debug: "npm:^4.1.0" - extract-zip: "npm:^1.6.6" - https-proxy-agent: "npm:^4.0.0" - mime: "npm:^2.0.3" - mime-types: "npm:^2.1.25" - progress: "npm:^2.0.1" - proxy-from-env: "npm:^1.0.0" - rimraf: "npm:^2.6.1" - ws: "npm:^6.1.0" - checksum: 10c0/29a73c2327e208e6528bac05f841b3340ee1a8d7bd59e7b235c9d8b3c0bf266804ad1aa901a0e4a1d66ce4202646f242988c3c5c4dfb105e9ad082bf4aae69be - languageName: node - linkType: hard - "qs@npm:6.11.0": version: 6.11.0 resolution: "qs@npm:6.11.0" @@ -12137,7 +10540,7 @@ __metadata: languageName: node linkType: hard -"qs@npm:^6.10.0, qs@npm:^6.11.2": +"qs@npm:^6.11.2": version: 6.12.1 resolution: "qs@npm:6.12.1" dependencies: @@ -12167,13 +10570,6 @@ __metadata: languageName: node linkType: hard -"ramda@npm:0.29.0": - version: 0.29.0 - resolution: "ramda@npm:0.29.0" - checksum: 10c0/b00eaaf1c62b06a99affa1d583e256bd65ad27ab9d0ef512f55d7d93b842e7cd244a4a09179f61fdd8548362e409323867a2b0477cbd0626b5644eb6ac7c53da - languageName: node - linkType: hard - "randombytes@npm:^2.0.0, randombytes@npm:^2.0.1, randombytes@npm:^2.0.5": version: 2.1.0 resolution: "randombytes@npm:2.1.0" @@ -12256,7 +10652,7 @@ __metadata: languageName: node linkType: hard -"react-dom@npm:18.3.1": +"react-dom@npm:18.3.1, react-dom@npm:^16.8.0 || ^17.0.0 || ^18.0.0": version: 18.3.1 resolution: "react-dom@npm:18.3.1" dependencies: @@ -12310,65 +10706,6 @@ __metadata: languageName: node linkType: hard -"react-refresh@npm:^0.14.0": - version: 0.14.2 - resolution: "react-refresh@npm:0.14.2" - checksum: 10c0/875b72ef56b147a131e33f2abd6ec059d1989854b3ff438898e4f9310bfcc73acff709445b7ba843318a953cb9424bcc2c05af2b3d80011cee28f25aef3e2ebb - languageName: node - linkType: hard - -"react-remove-scroll-bar@npm:^2.3.3": - version: 2.3.6 - resolution: "react-remove-scroll-bar@npm:2.3.6" - dependencies: - react-style-singleton: "npm:^2.2.1" - tslib: "npm:^2.0.0" - peerDependencies: - "@types/react": ^16.8.0 || ^17.0.0 || ^18.0.0 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - "@types/react": - optional: true - checksum: 10c0/4e32ee04bf655a8bd3b4aacf6ffc596ae9eb1b9ba27eef83f7002632ee75371f61516ae62250634a9eae4b2c8fc6f6982d9b182de260f6c11841841e6e2e7515 - languageName: node - linkType: hard - -"react-remove-scroll@npm:2.5.5": - version: 2.5.5 - resolution: "react-remove-scroll@npm:2.5.5" - dependencies: - react-remove-scroll-bar: "npm:^2.3.3" - react-style-singleton: "npm:^2.2.1" - tslib: "npm:^2.1.0" - use-callback-ref: "npm:^1.3.0" - use-sidecar: "npm:^1.1.2" - peerDependencies: - "@types/react": ^16.8.0 || ^17.0.0 || ^18.0.0 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - "@types/react": - optional: true - checksum: 10c0/4952657e6a7b9d661d4ad4dfcef81b9c7fa493e35164abff99c35c0b27b3d172ef7ad70c09416dc44dd14ff2e6b38a5ec7da27e27e90a15cbad36b8fd2fd8054 - languageName: node - linkType: hard - -"react-style-singleton@npm:^2.2.1": - version: 2.2.1 - resolution: "react-style-singleton@npm:2.2.1" - dependencies: - get-nonce: "npm:^1.0.0" - invariant: "npm:^2.2.4" - tslib: "npm:^2.0.0" - peerDependencies: - "@types/react": ^16.8.0 || ^17.0.0 || ^18.0.0 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - "@types/react": - optional: true - checksum: 10c0/6d66f3bdb65e1ec79089f80314da97c9a005087a04ee034255a5de129a4c0d9fd0bf99fa7bf642781ac2dc745ca687aae3de082bd8afdd0d117bc953241e15ad - languageName: node - linkType: hard - "react-virtualized@npm:^9.22.5": version: 9.22.5 resolution: "react-virtualized@npm:9.22.5" @@ -12386,7 +10723,7 @@ __metadata: languageName: node linkType: hard -"react@npm:18.3.1": +"react@npm:18.3.1, react@npm:^16.8.0 || ^17.0.0 || ^18.0.0": version: 18.3.1 resolution: "react@npm:18.3.1" dependencies: @@ -12405,17 +10742,6 @@ __metadata: languageName: node linkType: hard -"read-pkg-up@npm:^7.0.1": - version: 7.0.1 - resolution: "read-pkg-up@npm:7.0.1" - dependencies: - find-up: "npm:^4.1.0" - read-pkg: "npm:^5.2.0" - type-fest: "npm:^0.8.1" - checksum: 10c0/82b3ac9fd7c6ca1bdc1d7253eb1091a98ff3d195ee0a45386582ce3e69f90266163c34121e6a0a02f1630073a6c0585f7880b3865efcae9c452fa667f02ca385 - languageName: node - linkType: hard - "read-pkg@npm:^1.0.0": version: 1.1.0 resolution: "read-pkg@npm:1.1.0" @@ -12438,19 +10764,7 @@ __metadata: languageName: node linkType: hard -"read-pkg@npm:^5.2.0": - version: 5.2.0 - resolution: "read-pkg@npm:5.2.0" - dependencies: - "@types/normalize-package-data": "npm:^2.4.0" - normalize-package-data: "npm:^2.5.0" - parse-json: "npm:^5.0.0" - type-fest: "npm:^0.6.0" - checksum: 10c0/b51a17d4b51418e777029e3a7694c9bd6c578a5ab99db544764a0b0f2c7c0f58f8a6bc101f86a6fceb8ba6d237d67c89acf6170f6b98695d0420ddc86cf109fb - languageName: node - linkType: hard - -"readable-stream@npm:2 || 3, readable-stream@npm:^3.1.1, readable-stream@npm:^3.4.0, readable-stream@npm:^3.6.0": +"readable-stream@npm:2 || 3, readable-stream@npm:^3.4.0, readable-stream@npm:^3.6.0": version: 3.6.2 resolution: "readable-stream@npm:3.6.2" dependencies: @@ -12516,7 +10830,7 @@ __metadata: languageName: node linkType: hard -"recast@npm:^0.23.1, recast@npm:^0.23.3": +"recast@npm:^0.23.3": version: 0.23.7 resolution: "recast@npm:0.23.7" dependencies: @@ -12529,6 +10843,19 @@ __metadata: languageName: node linkType: hard +"recast@npm:^0.23.5": + version: 0.23.9 + resolution: "recast@npm:0.23.9" + dependencies: + ast-types: "npm:^0.16.1" + esprima: "npm:~4.0.0" + source-map: "npm:~0.6.1" + tiny-invariant: "npm:^1.3.3" + tslib: "npm:^2.0.1" + checksum: 10c0/65d6e780351f0180ea4fe5c9593ac18805bf2b79977f5bedbbbf26f6d9b619ed0f6992c1bf9e06dd40fca1aea727ad6d62463cfb5d3a33342ee5a6e486305fe5 + languageName: node + linkType: hard + "rechoir@npm:^0.6.2": version: 0.6.2 resolution: "rechoir@npm:0.6.2" @@ -12617,27 +10944,30 @@ __metadata: languageName: node linkType: hard -"remark-external-links@npm:^8.0.0": - version: 8.0.0 - resolution: "remark-external-links@npm:8.0.0" +"rehype-external-links@npm:^3.0.0": + version: 3.0.0 + resolution: "rehype-external-links@npm:3.0.0" dependencies: - extend: "npm:^3.0.0" - is-absolute-url: "npm:^3.0.0" - mdast-util-definitions: "npm:^4.0.0" - space-separated-tokens: "npm:^1.0.0" - unist-util-visit: "npm:^2.0.0" - checksum: 10c0/5f0affc97e18ad3247e3b29449f4df98be5a75950cf0f0f13dd1755c4ef1065f9ab44626bba34d913d32bb92afd6f06a8e2f8068e83b48337f0b7a5d1f0cecfe + "@types/hast": "npm:^3.0.0" + "@ungap/structured-clone": "npm:^1.0.0" + hast-util-is-element: "npm:^3.0.0" + is-absolute-url: "npm:^4.0.0" + space-separated-tokens: "npm:^2.0.0" + unist-util-visit: "npm:^5.0.0" + checksum: 10c0/486b5db73d8fe72611d62b4eb0b56ec71025ea32bba764ad54473f714ca627be75e057ac29243763f85a77c3810f31727ce3e03c975b3803c1c98643d038e9ae languageName: node linkType: hard -"remark-slug@npm:^6.0.0": - version: 6.1.0 - resolution: "remark-slug@npm:6.1.0" +"rehype-slug@npm:^6.0.0": + version: 6.0.0 + resolution: "rehype-slug@npm:6.0.0" dependencies: - github-slugger: "npm:^1.0.0" - mdast-util-to-string: "npm:^1.0.0" - unist-util-visit: "npm:^2.0.0" - checksum: 10c0/7cc2857936fce9c9c00b9c7d70de46d594cedf93bd8560fd006164dee7aacccdf472654ee35b33f4fb4bd0af882d89998c6d0c9088c2e95702a9fc15ebae002a + "@types/hast": "npm:^3.0.0" + github-slugger: "npm:^2.0.0" + hast-util-heading-rank: "npm:^3.0.0" + hast-util-to-string: "npm:^3.0.0" + unist-util-visit: "npm:^5.0.0" + checksum: 10c0/51303c33d039c271cabe62161b49fa737be488f70ced62f00c165e47a089a99de2060050385e5c00d0df83ed30c7fa1c79a51b78508702836aefa51f7e7a6760 languageName: node linkType: hard @@ -12739,13 +11069,6 @@ __metadata: languageName: node linkType: hard -"resolve-from@npm:^5.0.0": - version: 5.0.0 - resolution: "resolve-from@npm:5.0.0" - checksum: 10c0/b21cb7f1fb746de8107b9febab60095187781137fd803e6a59a76d421444b1531b641bba5857f5dc011974d8a5c635d61cec49e6bd3b7fc20e01f0fafc4efbf2 - languageName: node - linkType: hard - "resolve-options@npm:^1.1.0": version: 1.1.0 resolution: "resolve-options@npm:1.1.0" @@ -12762,7 +11085,7 @@ __metadata: languageName: node linkType: hard -"resolve@npm:^1.1.6, resolve@npm:^1.1.7, resolve@npm:^1.10.0, resolve@npm:^1.14.2, resolve@npm:^1.22.1, resolve@npm:^1.4.0": +"resolve@npm:^1.1.6, resolve@npm:^1.1.7, resolve@npm:^1.10.0, resolve@npm:^1.14.2, resolve@npm:^1.22.1, resolve@npm:^1.22.8, resolve@npm:^1.4.0": version: 1.22.8 resolution: "resolve@npm:1.22.8" dependencies: @@ -12775,7 +11098,7 @@ __metadata: languageName: node linkType: hard -"resolve@patch:resolve@npm%3A^1.1.6#optional!builtin, resolve@patch:resolve@npm%3A^1.1.7#optional!builtin, resolve@patch:resolve@npm%3A^1.10.0#optional!builtin, resolve@patch:resolve@npm%3A^1.14.2#optional!builtin, resolve@patch:resolve@npm%3A^1.22.1#optional!builtin, resolve@patch:resolve@npm%3A^1.4.0#optional!builtin": +"resolve@patch:resolve@npm%3A^1.1.6#optional!builtin, resolve@patch:resolve@npm%3A^1.1.7#optional!builtin, resolve@patch:resolve@npm%3A^1.10.0#optional!builtin, resolve@patch:resolve@npm%3A^1.14.2#optional!builtin, resolve@patch:resolve@npm%3A^1.22.1#optional!builtin, resolve@patch:resolve@npm%3A^1.22.8#optional!builtin, resolve@patch:resolve@npm%3A^1.4.0#optional!builtin": version: 1.22.8 resolution: "resolve@patch:resolve@npm%3A1.22.8#optional!builtin::version=1.22.8&hash=c3c19d" dependencies: @@ -12819,28 +11142,6 @@ __metadata: languageName: node linkType: hard -"rimraf@npm:^2.6.1": - version: 2.7.1 - resolution: "rimraf@npm:2.7.1" - dependencies: - glob: "npm:^7.1.3" - bin: - rimraf: ./bin.js - checksum: 10c0/4eef73d406c6940927479a3a9dee551e14a54faf54b31ef861250ac815172bade86cc6f7d64a4dc5e98b65e4b18a2e1c9ff3b68d296be0c748413f092bb0dd40 - languageName: node - linkType: hard - -"rimraf@npm:^3.0.2": - version: 3.0.2 - resolution: "rimraf@npm:3.0.2" - dependencies: - glob: "npm:^7.1.3" - bin: - rimraf: bin.js - checksum: 10c0/9cb7757acb489bd83757ba1a274ab545eafd75598a9d817e0c3f8b164238dd90eba50d6b848bd4dcc5f3040912e882dc7ba71653e35af660d77b25c381d402e8 - languageName: node - linkType: hard - "rimraf@npm:^5.0.7": version: 5.0.7 resolution: "rimraf@npm:5.0.7" @@ -12873,20 +11174,6 @@ __metadata: languageName: node linkType: hard -"rollup@npm:^2.25.0 || ^3.3.0": - version: 3.29.4 - resolution: "rollup@npm:3.29.4" - dependencies: - fsevents: "npm:~2.3.2" - dependenciesMeta: - fsevents: - optional: true - bin: - rollup: dist/bin/rollup - checksum: 10c0/65eddf84bf389ea8e4d4c1614b1c6a298d08f8ae785c0c087e723a879190c8aaddbab4aa3b8a0524551b9036750c9f8bfea27b377798accfd2ba5084ceff5aaa - languageName: node - linkType: hard - "rollup@npm:^4.13.0": version: 4.18.0 resolution: "rollup@npm:4.18.0" @@ -13316,7 +11603,7 @@ __metadata: languageName: node linkType: hard -"semver@npm:^6.0.0, semver@npm:^6.3.0, semver@npm:^6.3.1": +"semver@npm:^6.0.0, semver@npm:^6.3.1": version: 6.3.1 resolution: "semver@npm:6.3.1" bin: @@ -13528,7 +11815,7 @@ __metadata: languageName: node linkType: hard -"signal-exit@npm:^3.0.2, signal-exit@npm:^3.0.3, signal-exit@npm:^3.0.7": +"signal-exit@npm:^3.0.2, signal-exit@npm:^3.0.3": version: 3.0.7 resolution: "signal-exit@npm:3.0.7" checksum: 10c0/25d272fa73e146048565e08f3309d5b942c1979a6f4a58a8c59d5fa299728e9c2fcd1a759ec870863b1fd38653670240cd420dad2ad9330c71f36608a6a1c912 @@ -13567,10 +11854,10 @@ __metadata: languageName: node linkType: hard -"slash@npm:^3.0.0": - version: 3.0.0 - resolution: "slash@npm:3.0.0" - checksum: 10c0/e18488c6a42bdfd4ac5be85b2ced3ccd0224773baae6ad42cfbb9ec74fc07f9fa8396bd35ee638084ead7a2a0818eb5e7151111544d4731ce843019dab4be47b +"slash@npm:^5.1.0": + version: 5.1.0 + resolution: "slash@npm:5.1.0" + checksum: 10c0/eb48b815caf0bdc390d0519d41b9e0556a14380f6799c72ba35caf03544d501d18befdeeef074bc9c052acf69654bc9e0d79d7f1de0866284137a40805299eb3 languageName: node linkType: hard @@ -13708,10 +11995,10 @@ __metadata: languageName: node linkType: hard -"space-separated-tokens@npm:^1.0.0": - version: 1.1.5 - resolution: "space-separated-tokens@npm:1.1.5" - checksum: 10c0/3ee0a6905f89e1ffdfe474124b1ade9fe97276a377a0b01350bc079b6ec566eb5b219e26064cc5b7f3899c05bde51ffbc9154290b96eaf82916a1e2c2c13ead9 +"space-separated-tokens@npm:^2.0.0": + version: 2.0.2 + resolution: "space-separated-tokens@npm:2.0.2" + checksum: 10c0/6173e1d903dca41dcab6a2deed8b4caf61bd13b6d7af8374713500570aa929ff9414ae09a0519f4f8772df993300305a395d4871f35bc4ca72b6db57e1f30af8 languageName: node linkType: hard @@ -13779,13 +12066,6 @@ __metadata: languageName: node linkType: hard -"sprintf-js@npm:~1.0.2": - version: 1.0.3 - resolution: "sprintf-js@npm:1.0.3" - checksum: 10c0/ecadcfe4c771890140da5023d43e190b7566d9cf8b2d238600f31bec0fc653f328da4450eb04bd59a431771a8e9cc0e118f0aa3974b683a4981b4e07abc2a5bb - languageName: node - linkType: hard - "ssri@npm:^10.0.0": version: 10.0.6 resolution: "ssri@npm:10.0.6" @@ -13840,22 +12120,43 @@ __metadata: languageName: node linkType: hard -"store2@npm:^2.14.2": - version: 2.14.3 - resolution: "store2@npm:2.14.3" - checksum: 10c0/22e1096e6d69590672ca0b7f891d82b060837ef4c3e5df0d4563e6cbed14c52ddf2589fa94b79f4311b6ec41d95d6142e5d01d194539e0175c3fb4090cca8244 - languageName: node - linkType: hard - -"storybook@npm:^7.6.17": - version: 7.6.19 - resolution: "storybook@npm:7.6.19" +"storybook@npm:^8.2.1": + version: 8.2.1 + resolution: "storybook@npm:8.2.1" dependencies: - "@storybook/cli": "npm:7.6.19" + "@babel/core": "npm:^7.24.4" + "@babel/types": "npm:^7.24.0" + "@storybook/codemod": "npm:8.2.1" + "@storybook/core": "npm:8.2.1" + "@types/semver": "npm:^7.3.4" + "@yarnpkg/fslib": "npm:2.10.3" + "@yarnpkg/libzip": "npm:2.3.0" + chalk: "npm:^4.1.0" + commander: "npm:^6.2.1" + cross-spawn: "npm:^7.0.3" + detect-indent: "npm:^6.1.0" + envinfo: "npm:^7.7.3" + execa: "npm:^5.0.0" + fd-package-json: "npm:^1.2.0" + find-up: "npm:^5.0.0" + fs-extra: "npm:^11.1.0" + giget: "npm:^1.0.0" + globby: "npm:^14.0.1" + jscodeshift: "npm:^0.15.1" + leven: "npm:^3.1.0" + ora: "npm:^5.4.1" + prettier: "npm:^3.1.1" + prompts: "npm:^2.4.0" + semver: "npm:^7.3.7" + strip-json-comments: "npm:^3.0.1" + tempy: "npm:^3.1.0" + tiny-invariant: "npm:^1.3.1" + ts-dedent: "npm:^2.0.0" bin: - sb: ./index.js - storybook: ./index.js - checksum: 10c0/dd026c19ceb1df74a94b45ee139d92f246d75b687913cc8a862a0a849d2d5327edc1fea096cb1ab37982bb569197a8bdf209edf34039e77d8b813510b1e1f75e + getstorybook: ./bin/index.cjs + sb: ./bin/index.cjs + storybook: ./bin/index.cjs + checksum: 10c0/a90ddc8bf1ddf4d0dafae1d4303508acfadb67b56574cf8efe78c9c431fd83fffd706802fc5ded952aa8c1dbc23424222fe002349e19c82911c12acb195d45a7 languageName: node linkType: hard @@ -14130,7 +12431,7 @@ __metadata: languageName: node linkType: hard -"supports-color@npm:^8.0.0, supports-color@npm:^8.1.1": +"supports-color@npm:^8.1.1": version: 8.1.1 resolution: "supports-color@npm:8.1.1" dependencies: @@ -14207,38 +12508,6 @@ __metadata: languageName: node linkType: hard -"synchronous-promise@npm:^2.0.15": - version: 2.0.17 - resolution: "synchronous-promise@npm:2.0.17" - checksum: 10c0/1babe643d8417789ef6e5a2f3d4b8abcda2de236acd09bbe2c98f6be82c0a2c92ed21a6e4f934845fa8de18b1435a9cba1e8c3d945032e8a532f076224c024b1 - languageName: node - linkType: hard - -"tar-fs@npm:^2.1.1": - version: 2.1.1 - resolution: "tar-fs@npm:2.1.1" - dependencies: - chownr: "npm:^1.1.1" - mkdirp-classic: "npm:^0.5.2" - pump: "npm:^3.0.0" - tar-stream: "npm:^2.1.4" - checksum: 10c0/871d26a934bfb7beeae4c4d8a09689f530b565f79bd0cf489823ff0efa3705da01278160da10bb006d1a793fa0425cf316cec029b32a9159eacbeaff4965fb6d - languageName: node - linkType: hard - -"tar-stream@npm:^2.1.4": - version: 2.2.0 - resolution: "tar-stream@npm:2.2.0" - dependencies: - bl: "npm:^4.0.3" - end-of-stream: "npm:^1.4.1" - fs-constants: "npm:^1.0.0" - inherits: "npm:^2.0.3" - readable-stream: "npm:^3.1.1" - checksum: 10c0/2f4c910b3ee7196502e1ff015a7ba321ec6ea837667220d7bcb8d0852d51cb04b87f7ae471008a6fb8f5b1a1b5078f62f3a82d30c706f20ada1238ac797e7692 - languageName: node - linkType: hard - "tar@npm:^6.1.11, tar@npm:^6.1.2, tar@npm:^6.2.0": version: 6.2.1 resolution: "tar@npm:6.2.1" @@ -14271,10 +12540,10 @@ __metadata: languageName: node linkType: hard -"temp-dir@npm:^2.0.0": - version: 2.0.0 - resolution: "temp-dir@npm:2.0.0" - checksum: 10c0/b1df969e3f3f7903f3426861887ed76ba3b495f63f6d0c8e1ce22588679d9384d336df6064210fda14e640ed422e2a17d5c40d901f60e161c99482d723f4d309 +"temp-dir@npm:^3.0.0": + version: 3.0.0 + resolution: "temp-dir@npm:3.0.0" + checksum: 10c0/a86978a400984cd5f315b77ebf3fe53bb58c61f192278cafcb1f3fb32d584a21dc8e08b93171d7874b7cc972234d3455c467306cc1bfc4524b622e5ad3bfd671 languageName: node linkType: hard @@ -14287,27 +12556,15 @@ __metadata: languageName: node linkType: hard -"tempy@npm:^1.0.1": - version: 1.0.1 - resolution: "tempy@npm:1.0.1" +"tempy@npm:^3.1.0": + version: 3.1.0 + resolution: "tempy@npm:3.1.0" dependencies: - del: "npm:^6.0.0" - is-stream: "npm:^2.0.0" - temp-dir: "npm:^2.0.0" - type-fest: "npm:^0.16.0" - unique-string: "npm:^2.0.0" - checksum: 10c0/864a1cf1b5536dc21e84ae45dbbc3ba4dd2c7ec1674d895f99c349cf209df959a53d797ca38d0b2cf69c7684d565fde5cfc67faaa63b7208ffb21d454b957472 - languageName: node - linkType: hard - -"test-exclude@npm:^6.0.0": - version: 6.0.0 - resolution: "test-exclude@npm:6.0.0" - dependencies: - "@istanbuljs/schema": "npm:^0.1.2" - glob: "npm:^7.1.4" - minimatch: "npm:^3.0.4" - checksum: 10c0/019d33d81adff3f9f1bfcff18125fb2d3c65564f437d9be539270ee74b994986abb8260c7c2ce90e8f30162178b09dbbce33c6389273afac4f36069c48521f57 + is-stream: "npm:^3.0.0" + temp-dir: "npm:^3.0.0" + type-fest: "npm:^2.12.2" + unique-string: "npm:^3.0.0" + checksum: 10c0/b88e70baa8d935ba8f0e0372b59ad1a961121f098da5fb4a6e05bec98ec32a49026b553532fb75c1c102ec782fd4c6a6bde0d46cbe87013fa324451ce476fb76 languageName: node linkType: hard @@ -14418,13 +12675,6 @@ __metadata: languageName: node linkType: hard -"tmpl@npm:1.0.5": - version: 1.0.5 - resolution: "tmpl@npm:1.0.5" - checksum: 10c0/f935537799c2d1922cb5d6d3805f594388f75338fe7a4a9dac41504dd539704ca4db45b883b52e7b0aa5b2fd5ddadb1452bf95cd23a69da2f793a843f9451cc9 - languageName: node - linkType: hard - "to-absolute-glob@npm:^2.0.0": version: 2.0.2 resolution: "to-absolute-glob@npm:2.0.2" @@ -14498,13 +12748,6 @@ __metadata: languageName: node linkType: hard -"tocbot@npm:^4.20.1": - version: 4.28.0 - resolution: "tocbot@npm:4.28.0" - checksum: 10c0/328a0148c594b21e5b5c00184d5a14dde589f4c26a50e186ca4fdb15dd449318c6d68aa93c2fdf6b034a8c0ee1b3caa5cd4b08d25a2dac35bca076e93c4fde50 - languageName: node - linkType: hard - "toidentifier@npm:1.0.1": version: 1.0.1 resolution: "toidentifier@npm:1.0.1" @@ -14572,6 +12815,17 @@ __metadata: languageName: node linkType: hard +"tsconfig-paths@npm:^4.2.0": + version: 4.2.0 + resolution: "tsconfig-paths@npm:4.2.0" + dependencies: + json5: "npm:^2.2.2" + minimist: "npm:^1.2.6" + strip-bom: "npm:^3.0.0" + checksum: 10c0/09a5877402d082bb1134930c10249edeebc0211f36150c35e1c542e5b91f1047b1ccf7da1e59babca1ef1f014c525510f4f870de7c9bda470c73bb4e2721b3ea + languageName: node + linkType: hard + "tslib@npm:^1.13.0": version: 1.14.1 resolution: "tslib@npm:1.14.1" @@ -14579,7 +12833,7 @@ __metadata: languageName: node linkType: hard -"tslib@npm:^2.0.0, tslib@npm:^2.0.1, tslib@npm:^2.1.0, tslib@npm:^2.4.0": +"tslib@npm:^2.0.1, tslib@npm:^2.1.0": version: 2.6.2 resolution: "tslib@npm:2.6.2" checksum: 10c0/e03a8a4271152c8b26604ed45535954c0a45296e32445b4b87f8a5abdb2421f40b59b4ca437c4346af0f28179780d604094eb64546bee2019d903d01c6c19bdb @@ -14600,28 +12854,14 @@ __metadata: languageName: node linkType: hard -"type-fest@npm:^0.16.0": - version: 0.16.0 - resolution: "type-fest@npm:0.16.0" - checksum: 10c0/6b4d846534e7bcb49a6160b068ffaed2b62570d989d909ac3f29df5ef1e993859f890a4242eebe023c9e923f96adbcb3b3e88a198c35a1ee9a731e147a6839c3 +"type-fest@npm:^1.0.1": + version: 1.4.0 + resolution: "type-fest@npm:1.4.0" + checksum: 10c0/a3c0f4ee28ff6ddf800d769eafafcdeab32efa38763c1a1b8daeae681920f6e345d7920bf277245235561d8117dab765cb5f829c76b713b4c9de0998a5397141 languageName: node linkType: hard -"type-fest@npm:^0.6.0": - version: 0.6.0 - resolution: "type-fest@npm:0.6.0" - checksum: 10c0/0c585c26416fce9ecb5691873a1301b5aff54673c7999b6f925691ed01f5b9232db408cdbb0bd003d19f5ae284322523f44092d1f81ca0a48f11f7cf0be8cd38 - languageName: node - linkType: hard - -"type-fest@npm:^0.8.1": - version: 0.8.1 - resolution: "type-fest@npm:0.8.1" - checksum: 10c0/dffbb99329da2aa840f506d376c863bd55f5636f4741ad6e65e82f5ce47e6914108f44f340a0b74009b0cb5d09d6752ae83203e53e98b1192cf80ecee5651636 - languageName: node - linkType: hard - -"type-fest@npm:^2.19.0, type-fest@npm:~2.19": +"type-fest@npm:^2.12.2, type-fest@npm:^2.19.0, type-fest@npm:~2.19": version: 2.19.0 resolution: "type-fest@npm:2.19.0" checksum: 10c0/a5a7ecf2e654251613218c215c7493574594951c08e52ab9881c9df6a6da0aeca7528c213c622bc374b4e0cb5c443aa3ab758da4e3c959783ce884c3194e12cb @@ -14745,15 +12985,6 @@ __metadata: languageName: node linkType: hard -"uglify-js@npm:^3.1.4": - version: 3.17.4 - resolution: "uglify-js@npm:3.17.4" - bin: - uglifyjs: bin/uglifyjs - checksum: 10c0/8b7fcdca69deb284fed7d2025b73eb747ce37f9aca6af53422844f46427152d5440601b6e2a033e77856a2f0591e4167153d5a21b68674ad11f662034ec13ced - languageName: node - linkType: hard - "unbox-primitive@npm:^1.0.2": version: 1.0.2 resolution: "unbox-primitive@npm:1.0.2" @@ -14843,6 +13074,13 @@ __metadata: languageName: node linkType: hard +"unicorn-magic@npm:^0.1.0": + version: 0.1.0 + resolution: "unicorn-magic@npm:0.1.0" + checksum: 10c0/e4ed0de05b0a05e735c7d8a2930881e5efcfc3ec897204d5d33e7e6247f4c31eac92e383a15d9a6bccb7319b4271ee4bea946e211bf14951fec6ff2cbbb66a92 + languageName: node + linkType: hard + "union-value@npm:^1.0.0": version: 1.0.1 resolution: "union-value@npm:1.0.1" @@ -14883,40 +13121,42 @@ __metadata: languageName: node linkType: hard -"unique-string@npm:^2.0.0": - version: 2.0.0 - resolution: "unique-string@npm:2.0.0" +"unique-string@npm:^3.0.0": + version: 3.0.0 + resolution: "unique-string@npm:3.0.0" dependencies: - crypto-random-string: "npm:^2.0.0" - checksum: 10c0/11820db0a4ba069d174bedfa96c588fc2c96b083066fafa186851e563951d0de78181ac79c744c1ed28b51f9d82ac5b8196ff3e4560d0178046ef455d8c2244b + crypto-random-string: "npm:^4.0.0" + checksum: 10c0/b35ea034b161b2a573666ec16c93076b4b6106b8b16c2415808d747ab3a0566b5db0c4be231d4b11cfbc16d7fd915c9d8a45884bff0e2db11b799775b2e1e017 languageName: node linkType: hard -"unist-util-is@npm:^4.0.0": - version: 4.1.0 - resolution: "unist-util-is@npm:4.1.0" - checksum: 10c0/21ca3d7bacc88853b880b19cb1b133a056c501617d7f9b8cce969cd8b430ed7e1bc416a3a11b02540d5de6fb86807e169d00596108a459d034cf5faec97c055e +"unist-util-is@npm:^6.0.0": + version: 6.0.0 + resolution: "unist-util-is@npm:6.0.0" + dependencies: + "@types/unist": "npm:^3.0.0" + checksum: 10c0/9419352181eaa1da35eca9490634a6df70d2217815bb5938a04af3a662c12c5607a2f1014197ec9c426fbef18834f6371bfdb6f033040fa8aa3e965300d70e7e languageName: node linkType: hard -"unist-util-visit-parents@npm:^3.0.0": - version: 3.1.1 - resolution: "unist-util-visit-parents@npm:3.1.1" +"unist-util-visit-parents@npm:^6.0.0": + version: 6.0.1 + resolution: "unist-util-visit-parents@npm:6.0.1" dependencies: - "@types/unist": "npm:^2.0.0" - unist-util-is: "npm:^4.0.0" - checksum: 10c0/231c80c5ba8e79263956fcaa25ed2a11ad7fe77ac5ba0d322e9d51bbc4238501e3bb52f405e518bcdc5471e27b33eff520db0aa4a3b1feb9fb6e2de6ae385d49 + "@types/unist": "npm:^3.0.0" + unist-util-is: "npm:^6.0.0" + checksum: 10c0/51b1a5b0aa23c97d3e03e7288f0cdf136974df2217d0999d3de573c05001ef04cccd246f51d2ebdfb9e8b0ed2704451ad90ba85ae3f3177cf9772cef67f56206 languageName: node linkType: hard -"unist-util-visit@npm:^2.0.0": - version: 2.0.3 - resolution: "unist-util-visit@npm:2.0.3" +"unist-util-visit@npm:^5.0.0": + version: 5.0.0 + resolution: "unist-util-visit@npm:5.0.0" dependencies: - "@types/unist": "npm:^2.0.0" - unist-util-is: "npm:^4.0.0" - unist-util-visit-parents: "npm:^3.0.0" - checksum: 10c0/7b11303d82271ca53a2ced2d56c87a689dd518596c99ff4a11cdff750f5cc5c0e4b64b146bd2363557cb29443c98713bfd1e8dc6d1c3f9d474b9eb1f23a60888 + "@types/unist": "npm:^3.0.0" + unist-util-is: "npm:^6.0.0" + unist-util-visit-parents: "npm:^6.0.0" + checksum: 10c0/51434a1d80252c1540cce6271a90fd1a106dbe624997c09ed8879279667fb0b2d3a685e02e92bf66598dcbe6cdffa7a5f5fb363af8fdf90dda6c855449ae39a5 languageName: node linkType: hard @@ -14963,13 +13203,6 @@ __metadata: languageName: node linkType: hard -"untildify@npm:^4.0.0": - version: 4.0.0 - resolution: "untildify@npm:4.0.0" - checksum: 10c0/d758e624c707d49f76f7511d75d09a8eda7f2020d231ec52b67ff4896bcf7013be3f9522d8375f57e586e9a2e827f5641c7e06ee46ab9c435fc2b2b2e9de517a - languageName: node - linkType: hard - "upath@npm:^1.1.1": version: 1.2.0 resolution: "upath@npm:1.2.0" @@ -15018,49 +13251,6 @@ __metadata: languageName: node linkType: hard -"use-callback-ref@npm:^1.3.0": - version: 1.3.2 - resolution: "use-callback-ref@npm:1.3.2" - dependencies: - tslib: "npm:^2.0.0" - peerDependencies: - "@types/react": ^16.8.0 || ^17.0.0 || ^18.0.0 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - "@types/react": - optional: true - checksum: 10c0/d232c37160fe3970c99255da19b5fb5299fb5926a5d6141d928a87feb47732c323d29be2f8137d3b1e5499c70d284cd1d9cfad703cc58179db8be24d7dd8f1f2 - languageName: node - linkType: hard - -"use-resize-observer@npm:^9.1.0": - version: 9.1.0 - resolution: "use-resize-observer@npm:9.1.0" - dependencies: - "@juggle/resize-observer": "npm:^3.3.1" - peerDependencies: - react: 16.8.0 - 18 - react-dom: 16.8.0 - 18 - checksum: 10c0/6ccdeb09fe20566ec182b1635a22f189e13d46226b74610432590e69b31ef5d05d069badc3306ebd0d2bb608743b17981fb535763a1d7dc2c8ae462ee8e5999c - languageName: node - linkType: hard - -"use-sidecar@npm:^1.1.2": - version: 1.1.2 - resolution: "use-sidecar@npm:1.1.2" - dependencies: - detect-node-es: "npm:^1.1.0" - tslib: "npm:^2.0.0" - peerDependencies: - "@types/react": ^16.9.0 || ^17.0.0 || ^18.0.0 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - "@types/react": - optional: true - checksum: 10c0/89f0018fd9aee1fc17c85ac18c4bf8944d460d453d0d0e04ddbc8eaddf3fa591e9c74a1f8a438a1bff368a7a2417fab380bdb3df899d2194c4375b0982736de0 - languageName: node - linkType: hard - "use@npm:^3.1.0": version: 3.1.1 resolution: "use@npm:3.1.1" @@ -15093,7 +13283,7 @@ __metadata: languageName: node linkType: hard -"util@npm:^0.12.4, util@npm:^0.12.5": +"util@npm:^0.12.4": version: 0.12.5 resolution: "util@npm:0.12.5" dependencies: @@ -15346,12 +13536,10 @@ __metadata: languageName: node linkType: hard -"walker@npm:^1.0.8": - version: 1.0.8 - resolution: "walker@npm:1.0.8" - dependencies: - makeerror: "npm:1.0.12" - checksum: 10c0/a17e037bccd3ca8a25a80cb850903facdfed0de4864bd8728f1782370715d679fa72e0a0f5da7c1c1379365159901e5935f35be531229da53bbfc0efdabdb48e +"walk-up-path@npm:^3.0.1": + version: 3.0.1 + resolution: "walk-up-path@npm:3.0.1" + checksum: 10c0/3184738e0cf33698dd58b0ee4418285b9c811e58698f52c1f025435a85c25cbc5a63fee599f1a79cb29ca7ef09a44ec9417b16bfd906b1a37c305f7aa20ee5bc languageName: node linkType: hard @@ -15366,16 +13554,6 @@ __metadata: languageName: node linkType: hard -"watchpack@npm:^2.2.0": - version: 2.4.1 - resolution: "watchpack@npm:2.4.1" - dependencies: - glob-to-regexp: "npm:^0.4.1" - graceful-fs: "npm:^4.1.2" - checksum: 10c0/c694de0a61004e587a8a0fdc9cfec20ee692c52032d9ab2c2e99969a37fdab9e6e1bd3164ed506f9a13f7c83e65563d563e0d6b87358470cdb7309b83db78683 - languageName: node - linkType: hard - "wcwidth@npm:^1.0.1": version: 1.0.1 resolution: "wcwidth@npm:1.0.1" @@ -15557,13 +13735,6 @@ __metadata: languageName: node linkType: hard -"wordwrap@npm:^1.0.0": - version: 1.0.0 - resolution: "wordwrap@npm:1.0.0" - checksum: 10c0/7ed2e44f3c33c5c3e3771134d2b0aee4314c9e49c749e37f464bf69f2bcdf0cbf9419ca638098e2717cff4875c47f56a007532f6111c3319f557a2ca91278e92 - languageName: node - linkType: hard - "workerpool@npm:^9.1.1": version: 9.1.1 resolution: "workerpool@npm:9.1.1" @@ -15621,25 +13792,6 @@ __metadata: languageName: node linkType: hard -"write-file-atomic@npm:^4.0.2": - version: 4.0.2 - resolution: "write-file-atomic@npm:4.0.2" - dependencies: - imurmurhash: "npm:^0.1.4" - signal-exit: "npm:^3.0.7" - checksum: 10c0/a2c282c95ef5d8e1c27b335ae897b5eca00e85590d92a3fd69a437919b7b93ff36a69ea04145da55829d2164e724bc62202cdb5f4b208b425aba0807889375c7 - languageName: node - linkType: hard - -"ws@npm:^6.1.0": - version: 6.2.2 - resolution: "ws@npm:6.2.2" - dependencies: - async-limiter: "npm:~1.0.0" - checksum: 10c0/d628a1e95668a296644b4f51ce5debb43d9f1d89ebb2e32fef205a685b9439378eb824d60ce3a40bbc3bad0e887d84a56b343f2076f48d74f17c4c0800c42967 - languageName: node - linkType: hard - "ws@npm:^7.4.6": version: 7.5.9 resolution: "ws@npm:7.5.9" @@ -15797,16 +13949,6 @@ __metadata: languageName: node linkType: hard -"yauzl@npm:^2.10.0": - version: 2.10.0 - resolution: "yauzl@npm:2.10.0" - dependencies: - buffer-crc32: "npm:~0.2.3" - fd-slicer: "npm:~1.1.0" - checksum: 10c0/f265002af7541b9ec3589a27f5fb8f11cf348b53cc15e2751272e3c062cd73f3e715bc72d43257de71bbaecae446c3f1b14af7559e8ab0261625375541816422 - languageName: node - linkType: hard - "yocto-queue@npm:^0.1.0": version: 0.1.0 resolution: "yocto-queue@npm:0.1.0" From 0fce6c5ebb654dbfe0991fb3f830aede1bf2ac1d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bel=C3=A9n=20Albeza?= Date: Thu, 11 Jul 2024 17:01:04 +0200 Subject: [PATCH 395/476] :bug: Fix broken typography docs after upgrading to v8 --- .../foundations/typography/text.stories.jsx | 110 +++++++++++++++--- .../ds/foundations/typography/typography.mdx | 61 +++------- 2 files changed, 114 insertions(+), 57 deletions(-) diff --git a/frontend/src/app/main/ui/ds/foundations/typography/text.stories.jsx b/frontend/src/app/main/ui/ds/foundations/typography/text.stories.jsx index 1eaec1b8eb..97f61f6f81 100644 --- a/frontend/src/app/main/ui/ds/foundations/typography/text.stories.jsx +++ b/frontend/src/app/main/ui/ds/foundations/typography/text.stories.jsx @@ -2,7 +2,6 @@ import * as React from "react"; import Components from "@target/components"; const { Text } = Components; -const { StoryWrapper } = Components.storybook; const { typography } = Components.meta; const typographyIds = typography.sort(); @@ -16,31 +15,112 @@ export default { control: { type: "select" }, }, }, + parameters: { + controls: { exclude: ["children", "theme", "style"] }, + backgrounds: { default: "light" }, + }, + args: { + children: "Lorem ipsum", + theme: "light", + style: { + color: "var(--color-foreground-primary)", + background: "var(--color-background-primary)", + }, + }, + render: ({ style, children, theme, ...args }) => ( + // TODO: this
is a hack until we have proper theming +
+ {children} +
+ ), }; export const Default = { - render: ({ typography, ...args }) => ( - - - Lorem ipsum - - - ), args: { typography: "display", }, }; export const CustomTag = { - render: ({ typography, ...args }) => ( - - - Lorem ipsum - - - ), args: { typography: "display", as: "li", }, }; + +export const Display = { + args: { + typography: "display", + children: "Display 400 36px/1.4 Work Sans", + }, +}; + +export const TitleLarge = { + args: { + typography: "title-large", + children: "Title Large 400 24px/1.4 Work Sans", + }, +}; + +export const TitleMedium = { + args: { + typography: "title-medium", + children: "Title Medium 400 20px/1.4 Work Sans", + }, +}; + +export const TitleSmall = { + args: { + typography: "title-small", + children: "Title Small 400 14px/1.2 Work Sans", + }, +}; + +export const HeadlineLarge = { + args: { + typography: "headline-large", + children: "Headline Large 400 18px/1.4 Work Sans", + }, +}; + +export const HeadlineMedium = { + args: { + typography: "headline-medium", + children: "Headline Medium 400 16px/1.4 Work Sans", + }, +}; + +export const HeadlineSmall = { + args: { + typography: "headline-small", + children: "Headline Small 500 12px/1.2 Work Sans", + }, +}; + +export const BodyLarge = { + args: { + typography: "body-large", + children: "Body Large 400 16px/1.4 Work Sans", + }, +}; + +export const BodyMedium = { + args: { + typography: "body-medium", + children: "Body Medium 400 14px/1.3 Work Sans", + }, +}; + +export const BodySmall = { + args: { + typography: "body-small", + children: "Body Small 400 12px/1.3 Work Sans", + }, +}; + +export const CodeFont = { + args: { + typography: "code-font", + children: "Code Font 400 12px/1.2 Roboto Mono", + }, +}; diff --git a/frontend/src/app/main/ui/ds/foundations/typography/typography.mdx b/frontend/src/app/main/ui/ds/foundations/typography/typography.mdx index a3fae5d150..6171d4327f 100644 --- a/frontend/src/app/main/ui/ds/foundations/typography/typography.mdx +++ b/frontend/src/app/main/ui/ds/foundations/typography/typography.mdx @@ -1,5 +1,6 @@ import { Canvas, Meta } from "@storybook/blocks"; import Components from "@target/components"; +import * as TextStories from "../typography/text.stories"; @@ -53,59 +54,44 @@ for exceptions based on the size of the components. Hero style text for transitional pages (Login). If too large use large title in narrow windows. - - Display - 400 - 36px/1.4 "Work Sans" - + -### Title large `title-large` +### Title Large `title-large` Page headers for main pages (dashboard, Profiles...). If too big use title (medium) in narrow windows. - - Title large - 400 - 24px/1.4 "Work Sans" - + -### Title medium `title-medium` +### Title Medium `title-medium` Default page title. Equivalent line height of 32px matches the height of buttons and other medium controls. Ideal for page header layout. - - Title medium - 400 - 20px/1.4 "Work Sans" - + -### Title small `title-small` +### Title Small `title-small` Uses the same size as body (large). - - Title small - 400 - 14px/1.2 "Work Sans" - + ## Headline -Page sections/subtitles, or names of less important objects in -page titles (automated action titles, for example). Same line height as title (medium). +Page sections/subtitles, or names of less important objects in page titles +(automated action titles, for example). Same line height as title (medium). -### Headline large `headline-large` +### Headline Large `headline-large` - - Headline large - 400 - 18px/1.4 "Work Sans" - + -### Headline medium `headline-medium` - - - Headline medium - 400 - 16px/1.4 "Work Sans" - +### Headline Medium `headline-medium` + ### Headline small `headline-small` - - Headline small - 500 - 12px/1.2 "Work Sans" - + ## Body @@ -113,35 +99,26 @@ page titles (automated action titles, for example). Same line height as title (m Generic content. - - Body large - 400 - 16px/1.4 "Work Sans" - + ### Body medium `body-medium` Default UI font. Most commonly used for body text. - - Body medium - 400 - 14px/1.3 "Work Sans" - - + ### Body small `body-small` Small compact font with a line height of less than 16px. Use for single line scenarios, as the small size does not meet accessibility requirements. - - Body small - 400 - 12px/1.3 "Work Sans" - + ## Code font `code-font` Default style for rendering code blocks. - - Code font - 400 - 12px/1.2 "Roboto Mono" - + ## Fonts From 93d9438f6c8a5192b9d76b35a265b7fca551420c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bel=C3=A9n=20Albeza?= Date: Thu, 11 Jul 2024 17:06:15 +0200 Subject: [PATCH 396/476] :books: Adapts Heading docs/stories to be as the Text component --- .../ui/ds/foundations/typography/heading.mdx | 11 +++----- .../typography/heading.stories.jsx | 25 +++++++++++++------ 2 files changed, 21 insertions(+), 15 deletions(-) diff --git a/frontend/src/app/main/ui/ds/foundations/typography/heading.mdx b/frontend/src/app/main/ui/ds/foundations/typography/heading.mdx index ffda6ede40..eedee85f24 100644 --- a/frontend/src/app/main/ui/ds/foundations/typography/heading.mdx +++ b/frontend/src/app/main/ui/ds/foundations/typography/heading.mdx @@ -5,19 +5,14 @@ import * as HeadingStories from "./heading.stories"; # Headings -This component will add a heading tag element to our code. +This component will add a heading tag element (ie. `

`, `

`, etc.) to our code. ## Technical notes -This components accepts to props: - -- `level` (default value: `1`) : A number from `1` to `6`, to set the heading level (i.e. `

`, `

`, etc.). -- `typography` (mandatory): Any of the [supported typography IDs](?path=/docs/foundations-typography--docs). - -You can check passed props to renderized components on hover `level / typography`; - ### Using typography IDs +This component accepts any [typography IDs](?path=/docs/foundations-typography--docs). + There are typography ID definitions you can use in your code rather than typing the typography ID by hand. diff --git a/frontend/src/app/main/ui/ds/foundations/typography/heading.stories.jsx b/frontend/src/app/main/ui/ds/foundations/typography/heading.stories.jsx index 30e592e88a..7db98e008f 100644 --- a/frontend/src/app/main/ui/ds/foundations/typography/heading.stories.jsx +++ b/frontend/src/app/main/ui/ds/foundations/typography/heading.stories.jsx @@ -20,17 +20,28 @@ export default { control: { type: "select" }, }, }, + parameters: { + controls: { exclude: ["children", "theme", "style"] }, + backgrounds: { default: "light" }, + }, + args: { + children: "Lorem ipsum", + theme: "light", + style: { + color: "var(--color-foreground-primary)", + background: "var(--color-background-primary)", + }, + }, + render: ({ style, children, theme, ...args }) => ( + // TODO: this
is a hack until we have proper theming +
+ {children} +
+ ), }; export const AnyHeading = { name: "Heading", - render: ({ level, typography, ...args }) => ( - - - Lorem ipsum - - - ), args: { level: 1, typography: "display", From 1398bcbc8c7d1702b8cc154416b620d0444d2318 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bel=C3=A9n=20Albeza?= Date: Thu, 11 Jul 2024 18:07:51 +0200 Subject: [PATCH 397/476] :sparkles: Add spacing tokens to the design system --- frontend/src/app/main/ui/ds/_utils.scss | 12 +++++++++ frontend/src/app/main/ui/ds/spacing.scss | 27 +++++++++++++++++++++ frontend/src/app/main/ui/ds/storybook.scss | 2 -- frontend/src/app/main/ui/ds/typography.scss | 7 +----- 4 files changed, 40 insertions(+), 8 deletions(-) create mode 100644 frontend/src/app/main/ui/ds/_utils.scss create mode 100644 frontend/src/app/main/ui/ds/spacing.scss diff --git a/frontend/src/app/main/ui/ds/_utils.scss b/frontend/src/app/main/ui/ds/_utils.scss new file mode 100644 index 0000000000..248d43d002 --- /dev/null +++ b/frontend/src/app/main/ui/ds/_utils.scss @@ -0,0 +1,12 @@ +// This Source Code Form is subject to the terms of the Mozilla Public +// License, v. 2.0. If a copy of the MPL was not distributed with this +// file, You can obtain one at http://mozilla.org/MPL/2.0/. +// +// Copyright (c) KALEIDOS INC + +@use "sass:math"; + +@function px2rem($value) { + $remValue: math.div($value, 16) * 1rem; + @return $remValue; +} diff --git a/frontend/src/app/main/ui/ds/spacing.scss b/frontend/src/app/main/ui/ds/spacing.scss new file mode 100644 index 0000000000..46fd5bbaad --- /dev/null +++ b/frontend/src/app/main/ui/ds/spacing.scss @@ -0,0 +1,27 @@ +// This Source Code Form is subject to the terms of the Mozilla Public +// License, v. 2.0. If a copy of the MPL was not distributed with this +// file, You can obtain one at http://mozilla.org/MPL/2.0/. +// +// Copyright (c) KALEIDOS INC + +@use "./utils.scss" as *; + +$_sp-2: px2rem(2); +$_sp-4: px2rem(4); +$_sp-8: px2rem(8); +$_sp-12: px2rem(12); +$_sp-16: px2rem(16); +$_sp-20: px2rem(20); +$_sp-24: px2rem(24); +$_sp-32: px2rem(32); + +:global(:root) { + --sp-xxs: #{$_sp-2}; + --sp-xs: #{$_sp-4}; + --sp-s: #{$_sp-8}; + --sp-m: #{$_sp-12}; + --sp-l: #{$_sp-16}; + --sp-xl: #{$_sp-20}; + --sp-xxl: #{$_sp-24}; + --sp-xxxl: #{$_sp-32}; +} diff --git a/frontend/src/app/main/ui/ds/storybook.scss b/frontend/src/app/main/ui/ds/storybook.scss index 9e4036c54b..167fe085c2 100644 --- a/frontend/src/app/main/ui/ds/storybook.scss +++ b/frontend/src/app/main/ui/ds/storybook.scss @@ -1,5 +1,3 @@ -@use "./colors.scss"; - .story-wrapper { display: grid; row-gap: 1rem; diff --git a/frontend/src/app/main/ui/ds/typography.scss b/frontend/src/app/main/ui/ds/typography.scss index de5293fcbc..2d0174f910 100644 --- a/frontend/src/app/main/ui/ds/typography.scss +++ b/frontend/src/app/main/ui/ds/typography.scss @@ -4,7 +4,7 @@ // // Copyright (c) KALEIDOS INC -@use "sass:math"; +@use "./utils.scss" as *; $_font-weight-regular: 400; $_font-weight-medium: 500; @@ -13,11 +13,6 @@ $_font-lineheight-dense: 1.2; $_font-lineheight-compact: 1.3; $_font-lineheight-normal: 1.4; -@function px2rem($value) { - $remValue: math.div($value, 16) * 1rem; - @return $remValue; -} - $_fs-12: px2rem(12); $_fs-14: px2rem(14); $_fs-16: px2rem(16); From 8ded4811bba050ea14ca3b596b72a20d3923ca4b Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Tue, 9 Jul 2024 15:06:22 +0200 Subject: [PATCH 398/476] :sparkles: Internal refactor of plugin installs --- .../src/app/main/ui/workspace/main_menu.cljs | 4 +- .../src/app/main/ui/workspace/plugins.cljs | 15 +- frontend/src/app/plugins.cljs | 30 ---- frontend/src/app/plugins/register.cljs | 128 ++++++++++++++---- 4 files changed, 110 insertions(+), 67 deletions(-) diff --git a/frontend/src/app/main/ui/workspace/main_menu.cljs b/frontend/src/app/main/ui/workspace/main_menu.cljs index ea0fc54f41..db97bfd58b 100644 --- a/frontend/src/app/main/ui/workspace/main_menu.cljs +++ b/frontend/src/app/main/ui/workspace/main_menu.cljs @@ -30,7 +30,7 @@ [app.main.ui.hooks.resize :as r] [app.main.ui.icons :as i] [app.main.ui.workspace.plugins :as uwp] - [app.plugins :as plugins] + [app.plugins.register :as preg] [app.util.dom :as dom] [app.util.i18n :as i18n :refer [tr]] [app.util.keyboard :as kbd] @@ -609,7 +609,7 @@ ::mf/wrap [mf/memo]} [{:keys [open-plugins on-close]}] (when (features/active-feature? @st/state "plugins/runtime") - (let [plugins @plugins/pluginsdb] + (let [plugins (preg/plugins-list)] [:& dropdown-menu {:show true :list-class (stl/css-case :sub-menu true :plugins true) :on-close on-close} diff --git a/frontend/src/app/main/ui/workspace/plugins.cljs b/frontend/src/app/main/ui/workspace/plugins.cljs index bceeaf9c17..e337455351 100644 --- a/frontend/src/app/main/ui/workspace/plugins.cljs +++ b/frontend/src/app/main/ui/workspace/plugins.cljs @@ -16,7 +16,7 @@ [app.main.ui.components.search-bar :refer [search-bar]] [app.main.ui.components.title-bar :refer [title-bar]] [app.main.ui.icons :as i] - [app.plugins :as plugins] + [app.plugins.register :as preg] [app.util.avatars :as avatars] [app.util.dom :as dom] [app.util.http :as http] @@ -80,7 +80,7 @@ ::mf/register-as :plugin-management} [] - (let [plugins-state* (mf/use-state @plugins/pluginsdb) + (let [plugins-state* (mf/use-state #(preg/plugins-list)) plugins-state @plugins-state* plugin-url* (mf/use-state "") @@ -117,14 +117,14 @@ (rx/subs! (fn [body] (reset! fetching-manifest? false) - (let [plugin (plugins/parser-manifest plugin-url body)] + (let [plugin (preg/parse-manifest plugin-url body)] (st/emit! (ptk/event ::ev/event {::ev/name "install-plugin" :name (:name plugin) :url plugin-url})) (modal/show! :plugin-permissions {:plugin plugin :on-accept #(do - (plugins/install-plugin! plugin) + (preg/install-plugin! plugin) (modal/show! :plugin-management {}))}) (reset! input-status* :success) (reset! plugin-url* ""))) @@ -146,12 +146,13 @@ (mf/use-callback (mf/deps plugins-state) (fn [plugin-index] - (let [plugin (nth @plugins/pluginsdb plugin-index)] + (let [plugins-list (preg/plugins-list) + plugin (nth plugins-list plugin-index)] (st/emit! (ptk/event ::ev/event {::ev/name "remove-plugin" :name (:name plugin) :host (:host plugin)})) - (plugins/remove-plugin! plugin) - (reset! plugins-state* @plugins/pluginsdb))))] + (preg/remove-plugin! plugin) + (reset! plugins-state* (preg/plugins-list)))))] [:div {:class (stl/css :modal-overlay)} [:div {:class (stl/css :modal-dialog :plugin-management)} diff --git a/frontend/src/app/plugins.cljs b/frontend/src/app/plugins.cljs index c66260e522..d3a4872a73 100644 --- a/frontend/src/app/plugins.cljs +++ b/frontend/src/app/plugins.cljs @@ -7,7 +7,6 @@ (ns app.plugins "RPC for plugins runtime." (:require - [app.common.uuid :as uuid] [app.main.features :as features] [app.main.store :as st] [app.plugins.api :as api] @@ -18,10 +17,6 @@ [beicon.v2.core :as rx] [potok.v2.core :as ptk])) -(def pluginsdb register/pluginsdb) -(def install-plugin! register/install-plugin!) -(def remove-plugin! register/remove-plugin!) - (defn init-plugins-runtime! [] (when-let [init-runtime (obj/get global "initPluginsRuntime")] @@ -41,28 +36,3 @@ (rx/tap init-plugins-runtime!) (rx/ignore))))) -(defn parser-manifest - [plugin-url ^js manifest] - (let [name (obj/get manifest "name") - desc (obj/get manifest "description") - code (obj/get manifest "code") - icon (obj/get manifest "icon") - - permissions (into #{} (obj/get manifest "permissions" [])) - permissions - (cond-> permissions - (contains? permissions "content:write") - (conj "content:read") - - (contains? permissions "library:write") - (conj "content:write")) - - origin (obj/get (js/URL. plugin-url) "origin") - plugin-id (str (uuid/next))] - {:plugin-id plugin-id - :name name - :description desc - :host origin - :code code - :icon icon - :permissions (->> permissions (mapv str))})) diff --git a/frontend/src/app/plugins/register.cljs b/frontend/src/app/plugins/register.cljs index 7ba2bdcb92..c7e6190c8c 100644 --- a/frontend/src/app/plugins/register.cljs +++ b/frontend/src/app/plugins/register.cljs @@ -7,54 +7,126 @@ (ns app.plugins.register "RPC for plugins runtime." (:require - [app.common.data :as d])) + [app.common.data :as d] + [app.common.data.macros :as dm] + [app.common.uuid :as uuid] + [app.util.object :as obj])) -;; TODO: Remove clj->js and parse into a better data structure for accessing the permissions +;; Stores the installed plugins information +(defonce ^:private registry (atom {})) -(def pluginsdb (atom nil)) +(defn plugins-list + "Retrieves the plugin data as an ordered list of plugin elements" + [] + (->> (:ids @registry) + (mapv #(dm/get-in @registry [:data %])))) + +(defn parse-manifest + "Read the manifest.json defined by the plugins definition and transforms it into an + object that will be stored in the register." + [plugin-url ^js manifest] + (let [name (obj/get manifest "name") + desc (obj/get manifest "description") + code (obj/get manifest "code") + icon (obj/get manifest "icon") + + permissions (into #{} (obj/get manifest "permissions" [])) + permissions + (cond-> permissions + (contains? permissions "content:write") + (conj "content:read") + + (contains? permissions "library:write") + (conj "content:write")) + + origin (obj/get (js/URL. plugin-url) "origin") + + prev-plugin + (->> (:data @registry) + (vals) + (d/seek (fn [plugin] + (and (= name (:name plugin)) + (= origin (:host plugin)))))) + + plugin-id (d/nilv (:plugin-id prev-plugin) (str (uuid/next)))] + {:plugin-id plugin-id + :name name + :description desc + :host origin + :code code + :icon icon + :permissions (into #{} (map str) permissions)})) + +(defn format-plugin-data + "Format into a JS object the plugin data. This will be used to be stored in the local storage." + [{:keys [plugin-id name description host code icon permissions]}] + #js {:plugin-id plugin-id + :name name + :description description + :host host + :code code + :icon icon + :permissions (apply array permissions)}) + +(defn parse-plugin-data + "Parsers the JS plugin data into a CLJS data structure. This will be used primarily when the local storage + data is retrieved" + [^js data] + {:plugin-id (obj/get data "plugin-id") + :name (obj/get data "name") + :description (obj/get data "description") + :host (obj/get data "host") + :code (obj/get data "code") + :icon (obj/get data "icon") + :permissions (into #{} (obj/get data "permissions"))}) (defn load-from-store [] (let [ls (.-localStorage js/window) plugins-val (.getItem ls "plugins")] (when plugins-val - (let [plugins-js (.parse js/JSON plugins-val)] - (js->clj plugins-js {:keywordize-keys true}))))) + (let [stored (->> (.parse js/JSON plugins-val) + (map parse-plugin-data))] + (reset! registry + {:ids (->> stored (map :plugin-id)) + :data (d/index-by :plugin-id stored)}))))) (defn save-to-store - [plugins] - (let [ls (.-localStorage js/window) - plugins-js (clj->js plugins) - plugins-val (.stringify js/JSON plugins-js)] - (.setItem ls "plugins" plugins-val))) + [] + (->> (:ids @registry) + (map #(dm/get-in @registry [:data %])) + (map format-plugin-data) + (apply array) + (.stringify js/JSON) + (.setItem (.-localStorage js/window) "plugins"))) (defn init [] - (reset! pluginsdb (load-from-store))) + (load-from-store)) (defn install-plugin! [plugin] - (let [plugins (as-> @pluginsdb $ - (remove (fn [{:keys [name host]}] - (and (= name (:name plugin)) - (= host (:host plugin)))) $) - (conj $ plugin) - (vec $))] - (reset! pluginsdb plugins) - (save-to-store plugins))) + (letfn [(update-ids [ids] + (conj + (->> ids (remove #(= % (:plugin-id plugin)))) + (:plugin-id plugin)))] + (swap! registry #(-> % + (update :ids update-ids) + (update :data assoc (:plugin-id plugin) plugin))) + (save-to-store))) (defn remove-plugin! [{:keys [plugin-id]}] - (let [plugins - (into [] - (keep (fn [plugin] - (when (not= plugin-id (:plugin-id plugin)) plugin))) - @pluginsdb)] - (reset! pluginsdb plugins) - (save-to-store plugins))) + (letfn [(update-ids [ids] + (->> ids + (remove #(= % plugin-id))))] + (swap! registry #(-> % + (update :ids update-ids) + (update :data dissoc plugin-id))) + (save-to-store))) (defn check-permission [plugin-id permission] (or (= plugin-id "TEST") - (let [{:keys [permissions]} (->> @pluginsdb (d/seek #(= (:plugin-id %) plugin-id)))] - (->> permissions (d/seek #(= % permission)))))) + (let [{:keys [permissions]} (dm/get-in @registry [:data plugin-id])] + (contains? permissions permission)))) From 60f637e9473ef77cbc2e413aa101ad8de9c9b987 Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Thu, 11 Jul 2024 12:40:40 +0200 Subject: [PATCH 399/476] :sparkles: Add parent property to shapes --- frontend/src/app/plugins/shape.cljs | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/frontend/src/app/plugins/shape.cljs b/frontend/src/app/plugins/shape.cljs index 2ae9b0d399..62d31bb9bf 100644 --- a/frontend/src/app/plugins/shape.cljs +++ b/frontend/src/app/plugins/shape.cljs @@ -819,6 +819,13 @@ :else (st/emit! (dw/update-position id {:y value})))))} + {:name "parent" + ;; not enumerable so there are no infinite loops + :enumerable false + :get (fn [self] + (let [shape (u/proxy->shape self) + parent-id (:parent-id shape)] + (shape-proxy (obj/get self "$file") (obj/get self "$page") parent-id)))} {:name "parentX" :get (fn [self] (let [shape (u/proxy->shape self) From 59005e3bb81436e4507fca8f420783894f48929f Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Thu, 11 Jul 2024 13:45:36 +0200 Subject: [PATCH 400/476] :sparkles: Changes to plugin events --- frontend/src/app/plugins/api.cljs | 4 +- frontend/src/app/plugins/events.cljs | 63 ++++++++++++++++++++++------ 2 files changed, 52 insertions(+), 15 deletions(-) diff --git a/frontend/src/app/plugins/api.cljs b/frontend/src/app/plugins/api.cljs index 076c9f0fa4..9a944c48c2 100644 --- a/frontend/src/app/plugins/api.cljs +++ b/frontend/src/app/plugins/api.cljs @@ -61,8 +61,8 @@ (deftype PenpotContext [$plugin] Object (addListener - [_ type callback] - (events/add-listener type $plugin callback)) + [_ type callback props] + (events/add-listener type $plugin callback props)) (removeListener [_ listener-id] diff --git a/frontend/src/app/plugins/events.cljs b/frontend/src/app/plugins/events.cljs index 27d9269484..fee2c30898 100644 --- a/frontend/src/app/plugins/events.cljs +++ b/frontend/src/app/plugins/events.cljs @@ -6,15 +6,20 @@ (ns app.plugins.events (:require + [app.common.data.macros :as dm] + [app.main.data.workspace.state-helpers :as wsh] [app.main.store :as st] [app.plugins.file :as file] [app.plugins.page :as page] + [app.plugins.parser :as parser] + [app.plugins.shape :as shape] + [app.util.object :as obj] [goog.functions :as gf])) (defmulti handle-state-change (fn [type _] type)) (defmethod handle-state-change "finish" - [_ _ old-val new-val] + [_ _ old-val new-val _] (let [old-file-id (:current-file-id old-val) new-file-id (:current-file-id new-val)] (if (and (some? old-file-id) (nil? new-file-id)) @@ -22,7 +27,7 @@ ::not-changed))) (defmethod handle-state-change "filechange" - [_ plugin-id old-val new-val] + [_ plugin-id old-val new-val _] (let [old-file-id (:current-file-id old-val) new-file-id (:current-file-id new-val)] (if (identical? old-file-id new-file-id) @@ -30,7 +35,7 @@ (file/file-proxy plugin-id new-file-id)))) (defmethod handle-state-change "pagechange" - [_ plugin-id old-val new-val] + [_ plugin-id old-val new-val _] (let [old-page-id (:current-page-id old-val) new-page-id (:current-page-id new-val)] (if (identical? old-page-id new-page-id) @@ -38,7 +43,7 @@ (page/page-proxy plugin-id (:current-file-id new-val) new-page-id)))) (defmethod handle-state-change "selectionchange" - [_ _ old-val new-val] + [_ _ old-val new-val _] (let [old-selection (get-in old-val [:workspace-local :selected]) new-selection (get-in new-val [:workspace-local :selected])] (if (identical? old-selection new-selection) @@ -46,7 +51,7 @@ (apply array (map str new-selection))))) (defmethod handle-state-change "themechange" - [_ _ old-val new-val] + [_ _ old-val new-val _] (let [old-theme (get-in old-val [:profile :theme]) new-theme (get-in new-val [:profile :theme])] (if (identical? old-theme new-theme) @@ -55,23 +60,55 @@ "dark" new-theme)))) +(defmethod handle-state-change "shapechange" + [_ plugin-id old-val new-val props] + (let [shape-id (-> (obj/get props "shapeId") parser/parse-id) + old-shape (wsh/lookup-shape old-val shape-id) + new-shape (wsh/lookup-shape new-val shape-id) + + file-id (:current-file-id new-val) + page-id (:current-page-id new-val)] + (if (and (identical? old-shape new-shape) (some? plugin-id) (some? file-id) (some? page-id) (some? shape-id)) + ::not-changed + (shape/shape-proxy plugin-id file-id page-id shape-id)))) + +(defmethod handle-state-change "contentsave" + [_ _ old-val new-val _] + (let [old-status (dm/get-in old-val [:persistence :status]) + new-status (dm/get-in new-val [:persistence :status])] + (if (and (= :saved new-status) (not= new-status old-status)) + ::void ;; Changed but void + ::not-changed))) + (defmethod handle-state-change :default [_ _ _ _] ::not-changed) (defn add-listener - [type plugin-id callback] - (let [key (js/Symbol) - callback (gf/debounce callback 10)] + [type plugin-id callback props] + (let [plugin-id (parser/parse-id plugin-id) + key (js/Symbol) + + ;; We wrap the callback in an exception handler so the plugins + ;; don't crash the application + safe-callback + (fn [value] + (try + (if (= ::void value) + (callback) + (callback value)) + (catch :default cause + (.error js/console cause)))) + + ;; We also debounce the callbacks so we don't get too many at the same time + debounced-callback (gf/debounce safe-callback 10)] + (add-watch st/state key (fn [_ _ old-val new-val] - (let [result (handle-state-change type plugin-id old-val new-val)] + (let [result (handle-state-change type plugin-id old-val new-val props)] (when (not= ::not-changed result) - (try - (callback result) - (catch :default cause - (.error js/console cause))))))) + (debounced-callback result))))) ;; return the generated key key)) From 21b15167dd1fb8de4df965dfa3b33173e10a39af Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Fri, 12 Jul 2024 10:06:27 +0200 Subject: [PATCH 401/476] :sparkles: Add detach method to plugins --- frontend/src/app/plugins/shape.cljs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/frontend/src/app/plugins/shape.cljs b/frontend/src/app/plugins/shape.cljs index 62d31bb9bf..f8014b20be 100644 --- a/frontend/src/app/plugins/shape.cljs +++ b/frontend/src/app/plugins/shape.cljs @@ -32,6 +32,7 @@ [app.common.uuid :as uuid] [app.main.data.workspace :as dw] [app.main.data.workspace.groups :as dwg] + [app.main.data.workspace.libraries :as dwl] [app.main.data.workspace.selection :as dws] [app.main.data.workspace.shape-layout :as dwsl] [app.main.data.workspace.shapes :as dwsh] @@ -441,6 +442,10 @@ (let [[root component] (u/locate-component objects shape)] (lib-component-proxy $plugin (:component-file root) (:id component)))))) + (detach + [_] + (st/emit! (dwl/detach-component $id))) + (export [self value] (let [value (parser/parse-export value)] From 423d2fbb92dce12b77fd90dd28b58fc84bcd6e98 Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Fri, 12 Jul 2024 10:28:18 +0200 Subject: [PATCH 402/476] :arrow_up: Update plugins runtime --- frontend/resources/plugins-runtime/index.js | 1582 +++++++++---------- 1 file changed, 789 insertions(+), 793 deletions(-) diff --git a/frontend/resources/plugins-runtime/index.js b/frontend/resources/plugins-runtime/index.js index 8b622aa539..ef3f216f8d 100644 --- a/frontend/resources/plugins-runtime/index.js +++ b/frontend/resources/plugins-runtime/index.js @@ -1,25 +1,25 @@ -var Vn = (t, e, r) => { +var Hn = (t, e, r) => { if (!e.has(t)) throw TypeError("Cannot " + r); }; -var Ee = (t, e, r) => (Vn(t, e, "read from private field"), r ? r.call(t) : e.get(t)), Gr = (t, e, r) => { +var Ee = (t, e, r) => (Hn(t, e, "read from private field"), r ? r.call(t) : e.get(t)), Gr = (t, e, r) => { if (e.has(t)) throw TypeError("Cannot add the same private member more than once"); e instanceof WeakSet ? e.add(t) : e.set(t, r); -}, Br = (t, e, r, n) => (Vn(t, e, "write to private field"), n ? n.call(t, r) : e.set(t, r), r); +}, Br = (t, e, r, n) => (Hn(t, e, "write to private field"), n ? n.call(t, r) : e.set(t, r), r); const k = globalThis, { - Array: Hs, - Date: Vs, + Array: Bs, + Date: Hs, FinalizationRegistry: kt, - Float32Array: Ws, - JSON: qs, + Float32Array: Vs, + JSON: Ws, Map: Pe, - Math: Ks, - Number: Eo, - Object: bn, - Promise: Ys, + Math: qs, + Number: So, + Object: _n, + Promise: Ks, Proxy: Cr, - Reflect: Js, + Reflect: Ys, RegExp: We, Set: Ct, String: pe, @@ -31,45 +31,45 @@ const k = globalThis, { // revealed to post-lockdown code in any compartment including the start // compartment since in V8 at least it bears stack inspection capabilities. Error: ue, - RangeError: Xs, + RangeError: Js, ReferenceError: lt, - SyntaxError: tr, + SyntaxError: er, TypeError: v, AggregateError: Hr } = globalThis, { assign: $r, - create: z, + create: Z, defineProperties: F, entries: re, freeze: y, getOwnPropertyDescriptor: J, getOwnPropertyDescriptors: Ze, - getOwnPropertyNames: Dt, + getOwnPropertyNames: Ft, getPrototypeOf: j, is: Nr, isFrozen: jl, isSealed: Zl, isExtensible: zl, - keys: xo, - prototype: wn, + keys: Eo, + prototype: bn, seal: Gl, - preventExtensions: Qs, - setPrototypeOf: ko, - values: Po, + preventExtensions: Xs, + setPrototypeOf: xo, + values: ko, fromEntries: ht -} = bn, { +} = _n, { species: Vr, toStringTag: qe, - iterator: rr, - matchAll: To, - unscopables: ea, - keyFor: ta, - for: ra -} = St, { isInteger: na } = Eo, { stringify: Ao } = qs, { defineProperty: oa } = bn, M = (t, e, r) => { - const n = oa(t, e, r); + iterator: tr, + matchAll: Po, + unscopables: Qs, + keyFor: ea, + for: ta +} = St, { isInteger: ra } = So, { stringify: To } = Ws, { defineProperty: na } = _n, M = (t, e, r) => { + const n = na(t, e, r); if (n !== t) throw v( - `Please report that the original defineProperty silently failed to set ${Ao( + `Please report that the original defineProperty silently failed to set ${To( pe(e) )}. (SES_DEFINE_PROPERTY_FAILED_SILENTLY)` ); @@ -77,41 +77,41 @@ const k = globalThis, { }, { apply: ne, construct: hr, - get: sa, - getOwnPropertyDescriptor: aa, - has: Io, - isExtensible: ia, + get: oa, + getOwnPropertyDescriptor: sa, + has: Ao, + isExtensible: aa, ownKeys: De, - preventExtensions: ca, - set: Co -} = Js, { isArray: Et, prototype: _e } = Hs, { prototype: Nt } = Pe, { prototype: Rr } = RegExp, { prototype: nr } = Ct, { prototype: Le } = pe, { prototype: Or } = Me, { prototype: $o } = $t, { prototype: Sn } = Function, { prototype: No } = Ys, { prototype: Ro } = j( + preventExtensions: ia, + set: Io +} = Ys, { isArray: Et, prototype: _e } = Bs, { prototype: Nt } = Pe, { prototype: Rr } = RegExp, { prototype: rr } = Ct, { prototype: Le } = pe, { prototype: Or } = Me, { prototype: Co } = $t, { prototype: wn } = Function, { prototype: $o } = Ks, { prototype: No } = j( // eslint-disable-next-line no-empty-function, func-names function* () { } -), la = j(Uint8Array.prototype), { bind: tn } = Sn, P = tn.bind(tn.call), oe = P(wn.hasOwnProperty), Ke = P(_e.filter), ut = P(_e.forEach), Mr = P(_e.includes), Rt = P(_e.join), se = ( +), ca = j(Uint8Array.prototype), { bind: tn } = wn, P = tn.bind(tn.call), oe = P(bn.hasOwnProperty), Ke = P(_e.filter), ut = P(_e.forEach), Mr = P(_e.includes), Rt = P(_e.join), se = ( /** @type {any} */ P(_e.map) -), Oo = ( +), Ro = ( /** @type {any} */ P(_e.flatMap) -), gr = P(_e.pop), X = P(_e.push), ua = P(_e.slice), da = P(_e.some), Mo = P(_e.sort), fa = P(_e[rr]), $e = P(Nt.set), Ue = P(Nt.get), Lr = P(Nt.has), pa = P(Nt.delete), ma = P(Nt.entries), ha = P(Nt[rr]), En = P(nr.add); -P(nr.delete); -const Wn = P(nr.forEach), xn = P(nr.has), ga = P(nr[rr]), kn = P(Rr.test), Pn = P(Rr.exec), ya = P(Rr[To]), Lo = P(Le.endsWith), Fo = P(Le.includes), va = P(Le.indexOf); +), gr = P(_e.pop), X = P(_e.push), la = P(_e.slice), ua = P(_e.some), Oo = P(_e.sort), da = P(_e[tr]), $e = P(Nt.set), Ue = P(Nt.get), Lr = P(Nt.has), fa = P(Nt.delete), pa = P(Nt.entries), ma = P(Nt[tr]), Sn = P(rr.add); +P(rr.delete); +const Vn = P(rr.forEach), En = P(rr.has), ha = P(rr[tr]), xn = P(Rr.test), kn = P(Rr.exec), ga = P(Rr[Po]), Mo = P(Le.endsWith), Lo = P(Le.includes), ya = P(Le.indexOf); P(Le.match); -const yr = P(Ro.next), Do = P(Ro.throw), vr = ( +const yr = P(No.next), Fo = P(No.throw), vr = ( /** @type {any} */ P(Le.replace) -), _a = P(Le.search), Tn = P(Le.slice), An = P(Le.split), Uo = P(Le.startsWith), ba = P(Le[rr]), wa = P(Or.delete), L = P(Or.get), In = P(Or.has), ie = P(Or.set), Fr = P($o.add), or = P($o.has), Sa = P(Sn.toString), Ea = P(tn); -P(No.catch); -const jo = ( +), va = P(Le.search), Pn = P(Le.slice), Tn = P(Le.split), Do = P(Le.startsWith), _a = P(Le[tr]), ba = P(Or.delete), L = P(Or.get), An = P(Or.has), ie = P(Or.set), Fr = P(Co.add), nr = P(Co.has), wa = P(wn.toString), Sa = P(tn); +P($o.catch); +const Uo = ( /** @type {any} */ - P(No.then) -), xa = kt && P(kt.prototype.register); + P($o.then) +), Ea = kt && P(kt.prototype.register); kt && P(kt.prototype.unregister); -const Cn = y(z(null)), Ye = (t) => bn(t) === t, Dr = (t) => t instanceof ue, Zo = eval, ve = Function, ka = () => { +const In = y(Z(null)), Ye = (t) => _n(t) === t, Dr = (t) => t instanceof ue, jo = eval, ve = Function, xa = () => { throw v('Cannot eval with evalTaming set to "noEval" (SES_NO_EVAL)'); }, He = J(Error("er1"), "stack"), Wr = J(v("er2"), "stack"); -let zo, Go; +let Zo, zo; if (He && Wr && He.get) if ( // In the v8 case as we understand it, all errors have an own stack @@ -120,49 +120,49 @@ if (He && Wr && He.get) // This is therefore the case that we repair. typeof He.get == "function" && He.get === Wr.get && typeof He.set == "function" && He.set === Wr.set ) - zo = y(He.get), Go = y(He.set); + Zo = y(He.get), zo = y(He.set); else throw v( "Unexpected Error own stack accessor functions (SES_UNEXPECTED_ERROR_OWN_STACK_ACCESSOR)" ); -const qr = zo, Pa = Go; -function Ta() { +const qr = Zo, ka = zo; +function Pa() { return this; } -if (Ta()) +if (Pa()) throw v("SES failed to initialize, sloppy mode (SES_NO_SLOPPY)"); -const { freeze: at } = Object, { apply: Aa } = Reflect, $n = (t) => (e, ...r) => Aa(t, e, r), Ia = $n(Array.prototype.push), qn = $n(Array.prototype.includes), Ca = $n(String.prototype.split), nt = JSON.stringify, ir = (t, ...e) => { +const { freeze: at } = Object, { apply: Ta } = Reflect, Cn = (t) => (e, ...r) => Ta(t, e, r), Aa = Cn(Array.prototype.push), Wn = Cn(Array.prototype.includes), Ia = Cn(String.prototype.split), nt = JSON.stringify, ar = (t, ...e) => { let r = t[0]; for (let n = 0; n < e.length; n += 1) r = `${r}${e[n]}${t[n + 1]}`; throw Error(r); -}, Bo = (t, e = !1) => { +}, Go = (t, e = !1) => { const r = [], n = (c, l, u = void 0) => { - typeof c == "string" || ir`Environment option name ${nt(c)} must be a string.`, typeof l == "string" || ir`Environment option default setting ${nt( + typeof c == "string" || ar`Environment option name ${nt(c)} must be a string.`, typeof l == "string" || ar`Environment option default setting ${nt( l )} must be a string.`; let d = l; const f = t.process || void 0, m = typeof f == "object" && f.env || void 0; if (typeof m == "object" && c in m) { - e || Ia(r, c); + e || Aa(r, c); const p = m[c]; - typeof p == "string" || ir`Environment option named ${nt( + typeof p == "string" || ar`Environment option named ${nt( c )}, if present, must have a corresponding string value, got ${nt( p )}`, d = p; } - return u === void 0 || d === l || qn(u, d) || ir`Unrecognized ${nt(c)} value ${nt( + return u === void 0 || d === l || Wn(u, d) || ar`Unrecognized ${nt(c)} value ${nt( d )}. Expected one of ${nt([l, ...u])}`, d; }; at(n); const o = (c) => { const l = n(c, ""); - return at(l === "" ? [] : Ca(l, ",")); + return at(l === "" ? [] : Ia(l, ",")); }; at(o); - const a = (c, l) => qn(o(c), l), i = () => at([...r]); + const a = (c, l) => Wn(o(c), l), i = () => at([...r]); return at(i), at({ getEnvironmentOption: n, getEnvironmentOptionsList: o, @@ -170,28 +170,28 @@ const { freeze: at } = Object, { apply: Aa } = Reflect, $n = (t) => (e, ...r) => getCapturedEnvironmentOptionNames: i }); }; -at(Bo); +at(Go); const { getEnvironmentOption: le, getEnvironmentOptionsList: Bl, environmentOptionsListHas: Hl -} = Bo(globalThis, !0), _r = (t) => (t = `${t}`, t.length >= 1 && Fo("aeiouAEIOU", t[0]) ? `an ${t}` : `a ${t}`); +} = Go(globalThis, !0), _r = (t) => (t = `${t}`, t.length >= 1 && Lo("aeiouAEIOU", t[0]) ? `an ${t}` : `a ${t}`); y(_r); -const Ho = (t, e = void 0) => { +const Bo = (t, e = void 0) => { const r = new Ct(), n = (o, a) => { switch (typeof a) { case "object": { if (a === null) return null; - if (xn(r, a)) + if (En(r, a)) return "[Seen]"; - if (En(r, a), Dr(a)) + if (Sn(r, a), Dr(a)) return `[${a.name}: ${a.message}]`; if (qe in a) return `[${a[qe]}]`; if (Et(a)) return a; - const i = xo(a); + const i = Eo(a); if (i.length < 2) return a; let c = !0; @@ -202,14 +202,14 @@ const Ho = (t, e = void 0) => { } if (c) return a; - Mo(i); + Oo(i); const l = se(i, (u) => [u, a[u]]); return ht(l); } case "function": return `[Function ${a.name || ""}]`; case "string": - return Uo(a, "[") ? `[${a}]` : a; + return Do(a, "[") ? `[${a}]` : a; case "undefined": case "symbol": return `[${pe(a)}]`; @@ -222,20 +222,20 @@ const Ho = (t, e = void 0) => { } }; try { - return Ao(t, n, e); + return To(t, n, e); } catch { return "[Something that failed to stringify]"; } }; -y(Ho); -const { isSafeInteger: $a } = Number, { freeze: vt } = Object, { toStringTag: Na } = Symbol, Kn = (t) => { +y(Bo); +const { isSafeInteger: Ca } = Number, { freeze: vt } = Object, { toStringTag: $a } = Symbol, qn = (t) => { const r = { next: void 0, prev: void 0, data: t }; return r.next = r, r.prev = r, r; -}, Yn = (t, e) => { +}, Kn = (t, e) => { if (t === e) throw TypeError("Cannot splice a cell into itself"); if (e.next !== e || e.prev !== e) @@ -245,15 +245,15 @@ const { isSafeInteger: $a } = Number, { freeze: vt } = Object, { toStringTag: Na }, Kr = (t) => { const { prev: e, next: r } = t; e.next = r, r.prev = e, t.prev = t, t.next = t; -}, Vo = (t) => { - if (!$a(t) || t < 0) +}, Ho = (t) => { + if (!Ca(t) || t < 0) throw TypeError("keysBudget must be a safe non-negative integer number"); const e = /* @__PURE__ */ new WeakMap(); let r = 0; - const n = Kn(void 0), o = (d) => { + const n = qn(void 0), o = (d) => { const f = e.get(d); if (!(f === void 0 || f.data === void 0)) - return Kr(f), Yn(n, f), f; + return Kr(f), Kn(n, f), f; }, a = (d) => o(d) !== void 0; vt(a); const i = (d) => { @@ -265,7 +265,7 @@ const { isSafeInteger: $a } = Number, { freeze: vt } = Object, { toStringTag: Na if (t < 1) return u; let m = o(d); - if (m === void 0 && (m = Kn(void 0), Yn(n, m)), !m.data) + if (m === void 0 && (m = qn(void 0), Kn(n, m)), !m.data) for (r += 1, m.data = /* @__PURE__ */ new WeakMap(), e.set(d, m); r > t; ) { const p = n.prev; Kr(p), p.data = void 0, r -= 1; @@ -286,18 +286,18 @@ const { isSafeInteger: $a } = Number, { freeze: vt } = Object, { toStringTag: Na // eslint-disable-next-line jsdoc/check-types [ /** @type {typeof Symbol.toStringTag} */ - Na + $a ]: "LRUCacheMap" }); return u; }; -vt(Vo); -const { freeze: pr } = Object, { isSafeInteger: Ra } = Number, Oa = 1e3, Ma = 100, Wo = (t = Oa, e = Ma) => { - if (!Ra(e) || e < 1) +vt(Ho); +const { freeze: pr } = Object, { isSafeInteger: Na } = Number, Ra = 1e3, Oa = 100, Vo = (t = Ra, e = Oa) => { + if (!Na(e) || e < 1) throw TypeError( "argsPerErrorBudget must be a safe positive integer number" ); - const r = Vo(t), n = (a, i) => { + const r = Ho(t), n = (a, i) => { const c = r.get(a); c !== void 0 ? (c.length >= e && c.shift(), c.push(i)) : r.set(a, [i]); }; @@ -311,16 +311,16 @@ const { freeze: pr } = Object, { isSafeInteger: Ra } = Number, Oa = 1e3, Ma = 10 takeLogArgsArray: o }); }; -pr(Wo); +pr(Vo); const Pt = new Me(), Je = (t, e = void 0) => { const r = y({ - toString: y(() => Ho(t, e)) + toString: y(() => Bo(t, e)) }); return ie(Pt, r, t), r; }; y(Je); -const La = y(/^[\w:-]( ?[\w:-])*$/), rn = (t, e = void 0) => { - if (typeof t != "string" || !kn(La, t)) +const Ma = y(/^[\w:-]( ?[\w:-])*$/), rn = (t, e = void 0) => { + if (typeof t != "string" || !xn(Ma, t)) return Je(t, e); const r = y({ toString: y(() => t) @@ -328,38 +328,38 @@ const La = y(/^[\w:-]( ?[\w:-])*$/), rn = (t, e = void 0) => { return ie(Pt, r, t), r; }; y(rn); -const Ur = new Me(), qo = ({ template: t, args: e }) => { +const Ur = new Me(), Wo = ({ template: t, args: e }) => { const r = [t[0]]; for (let n = 0; n < e.length; n += 1) { const o = e[n]; let a; - In(Pt, o) ? a = `${o}` : Dr(o) ? a = `(${_r(o.name)})` : a = `(${_r(typeof o)})`, X(r, a, t[n + 1]); + An(Pt, o) ? a = `${o}` : Dr(o) ? a = `(${_r(o.name)})` : a = `(${_r(typeof o)})`, X(r, a, t[n + 1]); } return Rt(r, ""); -}, Ko = y({ +}, qo = y({ toString() { const t = L(Ur, this); - return t === void 0 ? "[Not a DetailsToken]" : qo(t); + return t === void 0 ? "[Not a DetailsToken]" : Wo(t); } }); -y(Ko.toString); +y(qo.toString); const ft = (t, ...e) => { - const r = y({ __proto__: Ko }); + const r = y({ __proto__: qo }); return ie(Ur, r, { template: t, args: e }), /** @type {DetailsToken} */ /** @type {unknown} */ r; }; y(ft); -const Yo = (t, ...e) => (e = se( +const Ko = (t, ...e) => (e = se( e, - (r) => In(Pt, r) ? r : Je(r) + (r) => An(Pt, r) ? r : Je(r) ), ft(t, ...e)); -y(Yo); -const Jo = ({ template: t, args: e }) => { +y(Ko); +const Yo = ({ template: t, args: e }) => { const r = [t[0]]; for (let n = 0; n < e.length; n += 1) { let o = e[n]; - In(Pt, o) && (o = L(Pt, o)); + An(Pt, o) && (o = L(Pt, o)); const a = vr(gr(r) || "", / $/, ""); a !== "" && X(r, a); const i = vr(t[n + 1], /^ /, ""); @@ -368,10 +368,10 @@ const Jo = ({ template: t, args: e }) => { return r[r.length - 1] === "" && gr(r), r; }, mr = new Me(); let nn = 0; -const Jn = new Me(), Xo = (t, e = t.name) => { - let r = L(Jn, t); - return r !== void 0 || (nn += 1, r = `${e}#${nn}`, ie(Jn, t, r)), r; -}, Fa = (t) => { +const Yn = new Me(), Jo = (t, e = t.name) => { + let r = L(Yn, t); + return r !== void 0 || (nn += 1, r = `${e}#${nn}`, ie(Yn, t, r)), r; +}, La = (t) => { const e = Ze(t), { name: r, message: n, @@ -383,8 +383,8 @@ const Jn = new Me(), Xo = (t, e = t.name) => { if (l.length >= 1) { for (const d of l) delete t[d]; - const u = z(wn, c); - Nn( + const u = Z(bn, c); + $n( t, ft`originally with properties ${Je(u)}` ); @@ -407,7 +407,7 @@ const Jn = new Me(), Xo = (t, e = t.name) => { const i = L(Ur, t); if (i === void 0) throw v(`unrecognized details ${Je(t)}`); - const c = qo(i), l = n && { cause: n }; + const c = Wo(i), l = n && { cause: n }; let u; return typeof Hr < "u" && e === Hr ? u = Hr(o || [], c, l) : (u = /** @type {ErrorConstructor} */ e( @@ -418,41 +418,41 @@ const Jn = new Me(), Xo = (t, e = t.name) => { writable: !0, enumerable: !1, configurable: !0 - })), ie(mr, u, Jo(i)), r !== void 0 && Xo(u, r), a && Fa(u), u; + })), ie(mr, u, Yo(i)), r !== void 0 && Jo(u, r), a && La(u), u; }; y(on); -const { addLogArgs: Da, takeLogArgsArray: Ua } = Wo(), sn = new Me(), Nn = (t, e) => { +const { addLogArgs: Fa, takeLogArgsArray: Da } = Vo(), sn = new Me(), $n = (t, e) => { typeof e == "string" && (e = ft([e])); const r = L(Ur, e); if (r === void 0) throw v(`unrecognized details ${Je(e)}`); - const n = Jo(r), o = L(sn, t); + const n = Yo(r), o = L(sn, t); if (o !== void 0) for (const a of o) a(t, n); else - Da(t, n); + Fa(t, n); }; -y(Nn); -const ja = (t) => { +y($n); +const Ua = (t) => { if (!("stack" in t)) return ""; - const e = `${t.stack}`, r = va(e, ` + const e = `${t.stack}`, r = ya(e, ` `); - return Uo(e, " ") || r === -1 ? e : Tn(e, r + 1); + return Do(e, " ") || r === -1 ? e : Pn(e, r + 1); }, br = { - getStackString: k.getStackString || ja, - tagError: (t) => Xo(t), + getStackString: k.getStackString || Ua, + tagError: (t) => Jo(t), resetErrorTagNum: () => { nn = 0; }, getMessageLogArgs: (t) => L(mr, t), takeMessageLogArgs: (t) => { const e = L(mr, t); - return wa(mr, t), e; + return ba(mr, t), e; }, takeNoteLogArgsArray: (t, e) => { - const r = Ua(t); + const r = Da(t); if (e !== void 0) { const n = L(sn, t); n ? X(n, e) : ie(sn, t, [e]); @@ -462,7 +462,7 @@ const ja = (t) => { }; y(br); const jr = (t = void 0, e = !1) => { - const r = e ? Yo : ft, n = r`Check failed`, o = (f = n, m = void 0, p = void 0) => { + const r = e ? Ko : ft, n = r`Check failed`, o = (f = n, m = void 0, p = void 0) => { const h = on(f, m, p); throw t !== void 0 && t(h), h; }; @@ -474,7 +474,7 @@ const jr = (t = void 0, e = !1) => { const c = (f, m, p = void 0, h = void 0, _ = void 0) => { Nr(f, m) || o( p || r`Expected ${f} is same as ${m}`, - h || Xs, + h || Js, _ ); }; @@ -495,7 +495,7 @@ const jr = (t = void 0, e = !1) => { equal: c, typeof: l, string: (f, m = void 0) => l(f, "string", m), - note: Nn, + note: $n, details: r, Fail: a, quote: Je, @@ -505,26 +505,26 @@ const jr = (t = void 0, e = !1) => { return y(d); }; y(jr); -const G = jr(), Qo = J( - la, +const z = jr(), Xo = J( + ca, qe ); -G(Qo); -const es = Qo.get; -G(es); -const Za = (t) => ne(es, t, []) !== void 0, za = (t) => { +z(Xo); +const Qo = Xo.get; +z(Qo); +const ja = (t) => ne(Qo, t, []) !== void 0, Za = (t) => { const e = +pe(t); - return na(e) && pe(e) === t; -}, Ga = (t) => { - Qs(t), ut(De(t), (e) => { + return ra(e) && pe(e) === t; +}, za = (t) => { + Xs(t), ut(De(t), (e) => { const r = J(t, e); - G(r), za(e) || M(t, e, { + z(r), Za(e) || M(t, e, { ...r, writable: !1, configurable: !1 }); }); -}, Ba = () => { +}, Ga = () => { if (typeof k.harden == "function") return k.harden; const t = new $t(), { harden: e } = { @@ -541,10 +541,10 @@ const Za = (t) => ne(es, t, []) !== void 0, za = (t) => { const f = typeof d; if (f !== "object" && f !== "function") throw v(`Unexpected typeof: ${f}`); - or(t, d) || xn(n, d) || En(n, d); + nr(t, d) || En(n, d) || Sn(n, d); } const a = (d) => { - Za(d) ? Ga(d) : y(d); + ja(d) ? za(d) : y(d); const f = Ze(d), m = j(d); o(m), ut(De(f), (p) => { const h = f[ @@ -553,7 +553,7 @@ const Za = (t) => ne(es, t, []) !== void 0, za = (t) => { ]; oe(h, "value") ? o(h.value) : (o(h.get), o(h.set)); }); - }, i = qr === void 0 && Pa === void 0 ? ( + }, i = qr === void 0 && ka === void 0 ? ( // On platforms without v8's error own stack accessor problem, // don't pay for any extra overhead. a @@ -572,22 +572,22 @@ const Za = (t) => ne(es, t, []) !== void 0, za = (t) => { } return a(d); }, c = () => { - Wn(n, i); + Vn(n, i); }, l = (d) => { Fr(t, d); }, u = () => { - Wn(n, l); + Vn(n, l); }; return o(r), c(), u(), r; } }; return e; -}, ts = { +}, es = { // *** Value Properties of the Global Object Infinity: 1 / 0, NaN: NaN, undefined: void 0 -}, rs = { +}, ts = { // *** Function Properties of the Global Object isFinite: "isFinite", isNaN: "isNaN", @@ -648,7 +648,7 @@ const Za = (t) => ne(es, t, []) !== void 0, za = (t) => { harden: "harden", HandledPromise: "HandledPromise" // TODO: Until Promise.delegate (see below). -}, Xn = { +}, Jn = { // *** Constructor Properties of the Global Object Date: "%InitialDate%", Error: "%InitialError%", @@ -667,7 +667,7 @@ const Za = (t) => ne(es, t, []) !== void 0, za = (t) => { // TODO https://github.com/Agoric/SES-shim/issues/551 // Need initial WeakRef and FinalizationGroup in // start compartment only. -}, ns = { +}, rs = { // *** Constructor Properties of the Global Object Date: "%SharedDate%", Error: "%SharedError%", @@ -675,7 +675,7 @@ const Za = (t) => ne(es, t, []) !== void 0, za = (t) => { Symbol: "%SharedSymbol%", // *** Other Properties of the Global Object Math: "%SharedMath%" -}, os = [ +}, ns = [ EvalError, RangeError, ReferenceError, @@ -687,7 +687,7 @@ const Za = (t) => ne(es, t, []) !== void 0, za = (t) => { // Instead, conditional push below. // AggregateError, ]; -typeof AggregateError < "u" && X(os, AggregateError); +typeof AggregateError < "u" && X(ns, AggregateError); const an = { "[[Proto]]": "%FunctionPrototype%", length: "number", @@ -695,17 +695,17 @@ const an = { // Do not specify "prototype" here, since only Function instances that can // be used as a constructor have a prototype property. For constructors, // since prototype properties are instance-specific, we define it there. -}, Ha = { +}, Ba = { // This property is not mentioned in ECMA 262, but is present in V8 and // necessary for lockdown to succeed. "[[Proto]]": "%AsyncFunctionPrototype%" -}, s = an, Qn = Ha, R = { +}, s = an, Xn = Ba, R = { get: s, set: "undefined" }, Ie = { get: s, set: s -}, eo = (t) => t === R || t === Ie; +}, Qn = (t) => t === R || t === Ie; function ot(t) { return { // Properties of the NativeError Constructors @@ -744,7 +744,7 @@ function ye(t) { constructor: t }; } -const to = { +const eo = { E: "number", LN10: "number", LN2: "number", @@ -1073,12 +1073,12 @@ const to = { "@@toStringTag": "string" }, "%InitialMath%": { - ...to, + ...eo, // `%InitialMath%.random()` has the standard unsafe behavior random: s }, "%SharedMath%": { - ...to, + ...eo, // `%SharedMath%.random()` is tamed to always throw random: s }, @@ -1887,8 +1887,8 @@ const to = { evaluate: s, globalThis: R, name: R, - import: Qn, - load: Qn, + import: Xn, + load: Xn, importNow: s, module: s, "@@toStringTag": "string" @@ -1896,8 +1896,8 @@ const to = { lockdown: s, harden: { ...s, isFake: "boolean" }, "%InitialGetStackString%": s -}, Va = (t) => typeof t == "function"; -function Wa(t, e, r) { +}, Ha = (t) => typeof t == "function"; +function Va(t, e, r) { if (oe(t, e)) { const n = J(t, e); if (!n || !Nr(n.value, r.value) || n.get !== r.get || n.set !== r.set || n.writable !== r.writable || n.enumerable !== r.enumerable || n.configurable !== r.configurable) @@ -1905,21 +1905,21 @@ function Wa(t, e, r) { } M(t, e, r); } -function qa(t, e) { +function Wa(t, e) { for (const [r, n] of re(e)) - Wa(t, r, n); + Va(t, r, n); } -function ss(t, e) { +function os(t, e) { const r = { __proto__: null }; for (const [n, o] of re(e)) oe(t, n) && (r[o] = t[n]); return r; } -const as = () => { - const t = z(null); +const ss = () => { + const t = Z(null); let e; const r = (c) => { - qa(t, Ze(c)); + Wa(t, Ze(c)); }; y(r); const n = () => { @@ -1944,14 +1944,14 @@ const as = () => { } }; y(n); - const o = () => (y(t), e = new $t(Ke(Po(t), Va)), t); + const o = () => (y(t), e = new $t(Ke(ko(t), Ha)), t); y(o); const a = (c) => { if (!e) throw v( "isPseudoNative can only be called after finalIntrinsics" ); - return or(e, c); + return nr(e, c); }; y(a); const i = { @@ -1960,12 +1960,12 @@ const as = () => { finalIntrinsics: o, isPseudoNative: a }; - return y(i), r(ts), r(ss(k, rs)), i; -}, Ka = (t) => { - const { addIntrinsics: e, finalIntrinsics: r } = as(); - return e(ss(t, ns)), r(); + return y(i), r(es), r(os(k, ts)), i; +}, qa = (t) => { + const { addIntrinsics: e, finalIntrinsics: r } = ss(); + return e(os(t, rs)), r(); }; -function Ya(t, e) { +function Ka(t, e) { let r = !1; const n = (m, ...p) => (r || (console.groupCollapsed("Removing unpermitted intrinsics"), r = !0), console[m](...p)), o = ["undefined", "boolean", "number", "string", "symbol"], a = new Pe( St ? se( @@ -1984,7 +1984,7 @@ function Ya(t, e) { if (h) return h; { - const _ = ta(p); + const _ = ea(p); return _ !== void 0 ? `RegisteredSymbol(${_})` : `Unique${pe(p)}`; } } @@ -2028,11 +2028,11 @@ function Ya(t, e) { if (!S) throw v(`Property ${h} not found at ${m}`); if (oe(S, "value")) { - if (eo(_)) + if (Qn(_)) throw v(`Accessor expected at ${m}`); return l(m, S.value, h, _); } - if (!eo(_)) + if (!Qn(_)) throw v(`Accessor not expected at ${m}`); return l(`${m}`, S.get, h, _.get) && l(`${m}`, S.set, h, _.set); } @@ -2077,7 +2077,7 @@ function Ya(t, e) { r && console.groupEnd(); } } -function Ja() { +function Ya() { try { ve.prototype.constructor("return 1"); } catch { @@ -2089,7 +2089,7 @@ function Ja() { try { a = (0, eval)(o); } catch (l) { - if (l instanceof tr) + if (l instanceof er) return; throw l; } @@ -2108,7 +2108,7 @@ function Ja() { } }), F(i, { constructor: { value: c } - }), c !== ve.prototype.constructor && ko(c, ve.prototype.constructor), t[n] = c; + }), c !== ve.prototype.constructor && xo(c, ve.prototype.constructor), t[n] = c; } return e("Function", "%InertFunction%", "(function(){})"), e( "GeneratorFunction", @@ -2124,10 +2124,10 @@ function Ja() { "(async function*(){})" ), t; } -function Xa(t = "safe") { +function Ja(t = "safe") { if (t !== "safe" && t !== "unsafe") throw v(`unrecognized dateTaming ${t}`); - const e = Vs, r = e.prototype, n = { + const e = Hs, r = e.prototype, n = { /** * `%SharedDate%.now()` throw a `TypeError` starting with "secure mode". * See https://github.com/endojs/endo/issues/910#issuecomment-1581855420 @@ -2192,10 +2192,10 @@ function Xa(t = "safe") { "%SharedDate%": i }; } -function Qa(t = "safe") { +function Xa(t = "safe") { if (t !== "safe" && t !== "unsafe") throw v(`unrecognized mathTaming ${t}`); - const e = Ks, r = e, { random: n, ...o } = Ze(e), i = z(wn, { + const e = qs, r = e, { random: n, ...o } = Ze(e), i = Z(bn, { ...o, random: { value: { @@ -2217,7 +2217,7 @@ function Qa(t = "safe") { "%SharedMath%": i }; } -function ei(t = "safe") { +function Qa(t = "safe") { if (t !== "safe" && t !== "unsafe") throw v(`unrecognized regExpTaming ${t}`); const e = We.prototype, r = (a = {}) => { @@ -2252,7 +2252,7 @@ function ei(t = "safe") { "%SharedRegExp%": o }; } -const ti = { +const ei = { "%ObjectPrototype%": { toString: !0 }, @@ -2271,7 +2271,7 @@ const ti = { // https://github.com/tc39/proposal-iterator-helpers [qe]: !0 } -}, is = { +}, as = { "%ObjectPrototype%": { toString: !0, valueOf: !0 @@ -2282,7 +2282,7 @@ const ti = { // set by "Google Analytics" concat: !0, // set by mobx generated code (old TS compiler?) - [rr]: !0 + [tr]: !0 // set by mobx generated code (old TS compiler?) }, // Function.prototype has no 'prototype' property to enable. @@ -2369,8 +2369,8 @@ const ti = { // https://github.com/tc39/proposal-iterator-helpers [qe]: !0 } -}, ri = { - ...is, +}, ti = { + ...as, /** * Rollup (as used at least by vega) and webpack * (as used at least by regenerator) both turn exports into assignments @@ -2423,11 +2423,11 @@ const ti = { */ "%SetPrototype%": "*" }; -function ni(t, e, r = []) { +function ri(t, e, r = []) { const n = new Ct(r); function o(u, d, f, m) { if ("value" in m && m.configurable) { - const { value: p } = m, h = xn(n, f), { get: _, set: S } = J( + const { value: p } = m, h = En(n, f), { get: _, set: S } = J( { get [f]() { return p; @@ -2489,15 +2489,15 @@ function ni(t, e, r = []) { let l; switch (e) { case "min": { - l = ti; + l = ei; break; } case "moderate": { - l = is; + l = as; break; } case "severe": { - l = ri; + l = ti; break; } default: @@ -2505,7 +2505,7 @@ function ni(t, e, r = []) { } c("root", t, l); } -const { Fail: cn, quote: Sr } = G, oi = /^(\w*[a-z])Locale([A-Z]\w*)$/, cs = { +const { Fail: cn, quote: Sr } = z, ni = /^(\w*[a-z])Locale([A-Z]\w*)$/, is = { // See https://tc39.es/ecma262/#sec-string.prototype.localecompare localeCompare(t) { if (this === null || this === void 0) @@ -2518,19 +2518,19 @@ const { Fail: cn, quote: Sr } = G, oi = /^(\w*[a-z])Locale([A-Z]\w*)$/, cs = { toString() { return `${this}`; } -}, si = cs.localeCompare, ai = cs.toString; -function ii(t, e = "safe") { +}, oi = is.localeCompare, si = is.toString; +function ai(t, e = "safe") { if (e !== "safe" && e !== "unsafe") throw v(`unrecognized localeTaming ${e}`); if (e !== "unsafe") { M(pe.prototype, "localeCompare", { - value: si + value: oi }); - for (const r of Dt(t)) { + for (const r of Ft(t)) { const n = t[r]; if (Ye(n)) - for (const o of Dt(n)) { - const a = Pn(oi, o); + for (const o of Ft(n)) { + const a = kn(ni, o); if (a) { typeof n[o] == "function" || cn`expected ${Sr(o)} to be a function`; const i = `${a[1]}${a[2]}`, c = n[i]; @@ -2538,16 +2538,16 @@ function ii(t, e = "safe") { } } } - M(Eo.prototype, "toLocaleString", { - value: ai + M(So.prototype, "toLocaleString", { + value: si }); } } -const ci = (t) => ({ +const ii = (t) => ({ eval(r) { return typeof r != "string" ? r : t(r); } -}).eval, { Fail: ro } = G, li = (t) => { +}).eval, { Fail: to } = z, ci = (t) => { const e = function(n) { const o = `${gr(arguments) || ""}`, a = `${Rt(arguments, ",")}`; new ve(a, ""), new ve(o); @@ -2566,13 +2566,13 @@ ${o} enumerable: !1, configurable: !1 } - }), j(ve) === ve.prototype || ro`Function prototype is the same accross compartments`, j(e) === ve.prototype || ro`Function constructor prototype is the same accross compartments`, e; -}, ui = (t) => { + }), j(ve) === ve.prototype || to`Function prototype is the same accross compartments`, j(e) === ve.prototype || to`Function constructor prototype is the same accross compartments`, e; +}, li = (t) => { M( t, - ea, + Qs, y( - $r(z(null), { + $r(Z(null), { set: y(() => { throw v( "Cannot set Symbol.unscopables of a Compartment's globalThis" @@ -2583,21 +2583,21 @@ ${o} }) ) ); -}, ls = (t) => { - for (const [e, r] of re(ts)) +}, cs = (t) => { + for (const [e, r] of re(es)) M(t, e, { value: r, writable: !1, enumerable: !1, configurable: !1 }); -}, us = (t, { +}, ls = (t, { intrinsics: e, newGlobalPropertyNames: r, makeCompartmentConstructor: n, markVirtualizedNativeFunction: o }) => { - for (const [i, c] of re(rs)) + for (const [i, c] of re(ts)) oe(e, c) && M(t, i, { value: e[c], writable: !0, @@ -2630,7 +2630,7 @@ ${o} }), typeof c == "function" && o(c); }, ln = (t, e, r) => { { - const n = y(ci(e)); + const n = y(ii(e)); r(n), M(t, "eval", { value: n, writable: !0, @@ -2639,7 +2639,7 @@ ${o} }); } { - const n = y(li(e)); + const n = y(ci(e)); r(n), M(t, "Function", { value: n, writable: !0, @@ -2647,14 +2647,14 @@ ${o} configurable: !0 }); } -}, { Fail: di, quote: ds } = G, fs = new Cr( - Cn, +}, { Fail: ui, quote: us } = z, ds = new Cr( + In, y({ get(t, e) { - di`Please report unexpected scope handler trap: ${ds(pe(e))}`; + ui`Please report unexpected scope handler trap: ${us(pe(e))}`; } }) -), fi = { +), di = { get(t, e) { }, set(t, e, r) { @@ -2671,7 +2671,7 @@ ${o} // See https://github.com/endojs/endo/issues/1510 // TODO: report as bug to v8 or Chrome, and record issue link here. getOwnPropertyDescriptor(t, e) { - const r = ds(pe(e)); + const r = us(pe(e)); console.warn( `getOwnPropertyDescriptor trap on scopeTerminatorHandler for ${r}`, v().stack @@ -2682,43 +2682,43 @@ ${o} ownKeys(t) { return []; } -}, ps = y( - z( - fs, - Ze(fi) +}, fs = y( + Z( + ds, + Ze(di) ) -), pi = new Cr( - Cn, - ps -), ms = (t) => { +), fi = new Cr( + In, + fs +), ps = (t) => { const e = { // inherit scopeTerminator behavior - ...ps, + ...fs, // Redirect set properties to the globalObject. set(o, a, i) { - return Co(t, a, i); + return Io(t, a, i); }, // Always claim to have a potential property in order to be the recipient of a set has(o, a) { return !0; } }, r = y( - z( - fs, + Z( + ds, Ze(e) ) ); return new Cr( - Cn, + In, r ); }; -y(ms); -const { Fail: mi } = G, hi = () => { - const t = z(null), e = y({ +y(ps); +const { Fail: pi } = z, mi = () => { + const t = Z(null), e = y({ eval: { get() { - return delete t.eval, Zo; + return delete t.eval, jo; }, enumerable: !1, configurable: !0 @@ -2727,78 +2727,78 @@ const { Fail: mi } = G, hi = () => { evalScope: t, allowNextEvalToBeUnsafe() { const { revoked: n } = r; - n !== null && mi`a handler did not reset allowNextEvalToBeUnsafe ${n.err}`, F(t, e); + n !== null && pi`a handler did not reset allowNextEvalToBeUnsafe ${n.err}`, F(t, e); }, /** @type {null | { err: any }} */ revoked: null }; return r; -}, no = "\\s*[@#]\\s*([a-zA-Z][a-zA-Z0-9]*)\\s*=\\s*([^\\s\\*]*)", gi = new We( - `(?:\\s*//${no}|/\\*${no}\\s*\\*/)\\s*$` -), Rn = (t) => { +}, ro = "\\s*[@#]\\s*([a-zA-Z][a-zA-Z0-9]*)\\s*=\\s*([^\\s\\*]*)", hi = new We( + `(?:\\s*//${ro}|/\\*${ro}\\s*\\*/)\\s*$` +), Nn = (t) => { let e = ""; for (; t.length > 0; ) { - const r = Pn(gi, t); + const r = kn(hi, t); if (r === null) break; - t = Tn(t, 0, t.length - r[0].length), r[3] === "sourceURL" ? e = r[4] : r[1] === "sourceURL" && (e = r[2]); + t = Pn(t, 0, t.length - r[0].length), r[3] === "sourceURL" ? e = r[4] : r[1] === "sourceURL" && (e = r[2]); } return e; }; -function On(t, e) { - const r = _a(t, e); +function Rn(t, e) { + const r = va(t, e); if (r < 0) return -1; const n = t[r] === ` ` ? 1 : 0; - return An(Tn(t, 0, r), ` + return Tn(Pn(t, 0, r), ` `).length + n; } -const hs = new We("(?:)", "g"), gs = (t) => { - const e = On(t, hs); +const ms = new We("(?:)", "g"), hs = (t) => { + const e = Rn(t, ms); if (e < 0) return t; - const r = Rn(t); - throw tr( + const r = Nn(t); + throw er( `Possible HTML comment rejected at ${r}:${e}. (SES_HTML_COMMENT_REJECTED)` ); -}, ys = (t) => vr(t, hs, (r) => r[0] === "<" ? "< ! --" : "-- >"), vs = new We( +}, gs = (t) => vr(t, ms, (r) => r[0] === "<" ? "< ! --" : "-- >"), ys = new We( "(^|[^.]|\\.\\.\\.)\\bimport(\\s*(?:\\(|/[/*]))", "g" -), _s = (t) => { - const e = On(t, vs); +), vs = (t) => { + const e = Rn(t, ys); if (e < 0) return t; - const r = Rn(t); - throw tr( + const r = Nn(t); + throw er( `Possible import expression rejected at ${r}:${e}. (SES_IMPORT_REJECTED)` ); -}, bs = (t) => vr(t, vs, (r, n, o) => `${n}__import__${o}`), yi = new We( +}, _s = (t) => vr(t, ys, (r, n, o) => `${n}__import__${o}`), gi = new We( "(^|[^.])\\beval(\\s*\\()", "g" -), ws = (t) => { - const e = On(t, yi); +), bs = (t) => { + const e = Rn(t, gi); if (e < 0) return t; - const r = Rn(t); - throw tr( + const r = Nn(t); + throw er( `Possible direct eval expression rejected at ${r}:${e}. (SES_EVAL_REJECTED)` ); -}, Ss = (t) => (t = gs(t), t = _s(t), t), Es = (t, e) => { +}, ws = (t) => (t = hs(t), t = vs(t), t), Ss = (t, e) => { for (const r of e) t = r(t); return t; }; y({ - rejectHtmlComments: y(gs), - evadeHtmlCommentTest: y(ys), - rejectImportExpressions: y(_s), - evadeImportExpressionTest: y(bs), - rejectSomeDirectEvalExpressions: y(ws), - mandatoryTransforms: y(Ss), - applyTransforms: y(Es) + rejectHtmlComments: y(hs), + evadeHtmlCommentTest: y(gs), + rejectImportExpressions: y(vs), + evadeImportExpressionTest: y(_s), + rejectSomeDirectEvalExpressions: y(bs), + mandatoryTransforms: y(ws), + applyTransforms: y(Ss) }); -const vi = [ +const yi = [ // 11.6.2.1 Keywords "await", "break", @@ -2853,8 +2853,8 @@ const vi = [ "false", "this", "arguments" -], _i = /^[a-zA-Z_$][\w$]*$/, oo = (t) => t !== "eval" && !Mr(vi, t) && kn(_i, t); -function so(t, e) { +], vi = /^[a-zA-Z_$][\w$]*$/, no = (t) => t !== "eval" && !Mr(yi, t) && xn(vi, t); +function oo(t, e) { const r = J(t, e); return r && // // The getters will not have .writable, don't let the falsyness of @@ -2871,10 +2871,10 @@ function so(t, e) { // case where Object.prototype has been poisoned. oe(r, "value"); } -const bi = (t, e = {}) => { - const r = Dt(t), n = Dt(e), o = Ke( +const _i = (t, e = {}) => { + const r = Ft(t), n = Ft(e), o = Ke( n, - (i) => oo(i) && so(e, i) + (i) => no(i) && oo(e, i) ); return { globalObjectConstants: Ke( @@ -2882,23 +2882,23 @@ const bi = (t, e = {}) => { (i) => ( // Can't define a constant: it would prevent a // lookup on the endowments. - !Mr(n, i) && oo(i) && so(t, i) + !Mr(n, i) && no(i) && oo(t, i) ) ), moduleLexicalConstants: o }; }; -function ao(t, e) { +function so(t, e) { return t.length === 0 ? "" : `const {${Rt(t, ",")}} = this.${e};`; } -const wi = (t) => { - const { globalObjectConstants: e, moduleLexicalConstants: r } = bi( +const bi = (t) => { + const { globalObjectConstants: e, moduleLexicalConstants: r } = _i( t.globalObject, t.moduleLexicals - ), n = ao( + ), n = so( e, "globalObject" - ), o = ao( + ), o = so( r, "moduleLexicals" ), a = ve(` @@ -2918,13 +2918,13 @@ const wi = (t) => { } `); return ne(a, t, []); -}, { Fail: Si } = G, Mn = ({ +}, { Fail: wi } = z, On = ({ globalObject: t, moduleLexicals: e = {}, globalTransforms: r = [], sloppyGlobalsMode: n = !1 }) => { - const o = n ? ms(t) : pi, a = hi(), { evalScope: i } = a, c = y({ + const o = n ? ps(t) : fi, a = mi(), { evalScope: i } = a, c = y({ evalScope: i, moduleLexicals: e, globalObject: t, @@ -2932,14 +2932,14 @@ const wi = (t) => { }); let l; const u = () => { - l || (l = wi(c)); + l || (l = bi(c)); }; return { safeEvaluate: (f, m) => { const { localTransforms: p = [] } = m || {}; - u(), f = Es(f, [ + u(), f = Ss(f, [ ...p, ...r, - Ss + ws ]); let h; try { @@ -2948,19 +2948,19 @@ const wi = (t) => { throw h = _, _; } finally { const _ = "eval" in i; - delete i.eval, _ && (a.revoked = { err: h }, Si`handler did not reset allowNextEvalToBeUnsafe ${h}`); + delete i.eval, _ && (a.revoked = { err: h }, wi`handler did not reset allowNextEvalToBeUnsafe ${h}`); } } }; -}, Ei = ") { [native code] }"; +}, Si = ") { [native code] }"; let Yr; -const xs = () => { +const Es = () => { if (Yr === void 0) { const t = new $t(); - M(Sn, "toString", { + M(wn, "toString", { value: { toString() { - const r = Sa(this); - return Lo(r, Ei) || !or(t, this) ? r : `function ${this.name}() { [native code] }`; + const r = wa(this); + return Mo(r, Si) || !nr(t, this) ? r : `function ${this.name}() { [native code] }`; } }.toString }), Yr = y( @@ -2969,7 +2969,7 @@ const xs = () => { } return Yr; }; -function xi(t = "safe") { +function Ei(t = "safe") { if (t !== "safe" && t !== "unsafe") throw v(`unrecognized domainTaming ${t}`); if (t === "unsafe") @@ -2989,7 +2989,7 @@ function xi(t = "safe") { }); } } -const Ln = y([ +const Mn = y([ ["debug", "debug"], // (fmt?, ...args) verbose level on Chrome ["log", "log"], @@ -3008,7 +3008,7 @@ const Ln = y([ // (fmt?, ...args) but TS typed (...label) ["groupCollapsed", "log"] // (fmt?, ...args) but TS typed (...label) -]), Fn = y([ +]), Ln = y([ ["assert", "error"], // (value, fmt?, ...args) ["timeLog", "log"], @@ -3040,14 +3040,14 @@ const Ln = y([ // (label?) ["timeStamp", void 0] // (label?) -]), ks = y([ - ...Ln, - ...Fn -]), ki = (t, { shouldResetForDebugging: e = !1 } = {}) => { +]), xs = y([ + ...Mn, + ...Ln +]), xi = (t, { shouldResetForDebugging: e = !1 } = {}) => { e && t.resetErrorTagNum(); let r = []; const n = ht( - se(ks, ([i, c]) => { + se(xs, ([i, c]) => { const l = (...u) => { X(r, [i, ...u]); }; @@ -3064,7 +3064,7 @@ const Ln = y([ n ), takeLog: o }); }; -y(ki); +y(xi); const it = { NOTE: "ERROR_NOTE:", MESSAGE: "ERROR_MESSAGE:", @@ -3072,12 +3072,12 @@ const it = { ERRORS: "errors:" }; y(it); -const Dn = (t, e) => { +const Fn = (t, e) => { if (!t) return; const { getStackString: r, tagError: n, takeMessageLogArgs: o, takeNoteLogArgsArray: a } = e, i = (S, T) => se(S, (x) => Dr(x) ? (X(T, x), `(${n(x)})`) : x), c = (S, T, N, x, D) => { - const B = n(T), H = N === it.MESSAGE ? `${B}:` : `${B} ${N}`, K = i(x, D); - t[S](H, ...K); + const G = n(T), B = N === it.MESSAGE ? `${G}:` : `${G} ${N}`, K = i(x, D); + t[S](B, ...K); }, l = (S, T, N = void 0) => { if (T.length === 0) return; @@ -3097,11 +3097,11 @@ const Dn = (t, e) => { const x = []; c(S, T, it.NOTE, N, x), l(S, x, n(T)); }, f = (S, T) => { - if (or(u, T)) + if (nr(u, T)) return; const N = n(T); Fr(u, T); - const x = [], D = o(T), B = a( + const x = [], D = o(T), G = a( T, d(S) ); @@ -3112,21 +3112,21 @@ const Dn = (t, e) => { D, x ); - let H = r(T); - typeof H == "string" && H.length >= 1 && !Lo(H, ` -`) && (H += ` -`), t[S](H), T.cause && c(S, T, it.CAUSE, [T.cause], x), T.errors && c(S, T, it.ERRORS, T.errors, x); - for (const K of B) + let B = r(T); + typeof B == "string" && B.length >= 1 && !Mo(B, ` +`) && (B += ` +`), t[S](B), T.cause && c(S, T, it.CAUSE, [T.cause], x), T.errors && c(S, T, it.ERRORS, T.errors, x); + for (const K of G) c(S, T, it.NOTE, K, x); l(S, x, N); - }, m = se(Ln, ([S, T]) => { + }, m = se(Mn, ([S, T]) => { const N = (...x) => { - const D = [], B = i(x, D); - t[S](...B), l(S, D); + const D = [], G = i(x, D); + t[S](...G), l(S, D); }; return M(N, "name", { value: S }), [S, y(N)]; }), p = Ke( - Fn, + Ln, ([S, T]) => S in t ), h = se(p, ([S, T]) => { const N = (...x) => { @@ -3139,22 +3139,22 @@ const Dn = (t, e) => { y(_) ); }; -y(Dn); -const Pi = (t, e, r) => { - const [n, ...o] = An(t, e), a = Oo(o, (i) => [e, ...r, i]); +y(Fn); +const ki = (t, e, r) => { + const [n, ...o] = Tn(t, e), a = Ro(o, (i) => [e, ...r, i]); return ["", n, ...a]; -}, Ps = (t) => y((r) => { - const n = [], o = (...l) => (n.length > 0 && (l = Oo( +}, ks = (t) => y((r) => { + const n = [], o = (...l) => (n.length > 0 && (l = Ro( l, - (u) => typeof u == "string" && Fo(u, ` -`) ? Pi(u, ` + (u) => typeof u == "string" && Lo(u, ` +`) ? ki(u, ` `, n) : [u] ), l = [...n, ...l]), r(...l)), a = (l, u) => ({ [l]: (...d) => u(...d) })[l], i = ht([ - ...se(Ln, ([l]) => [ + ...se(Mn, ([l]) => [ l, a(l, o) ]), - ...se(Fn, ([l]) => [ + ...se(Ln, ([l]) => [ l, a(l, (...u) => o(l, ...u)) ]) @@ -3165,16 +3165,16 @@ const Pi = (t, e, r) => { })); return i.groupEnd && (i.groupEnd = a("groupEnd", (...l) => { gr(n); - })), harden(i), Dn( + })), harden(i), Fn( /** @type {VirtualConsole} */ i, t ); }); -y(Ps); -const Ti = (t, e, r = void 0) => { +y(ks); +const Pi = (t, e, r = void 0) => { const n = Ke( - ks, + xs, ([i, c]) => i in t ), o = se(n, ([i, c]) => [i, y((...u) => { (c === void 0 || e.canLog(c)) && t[i](...u); @@ -3184,13 +3184,13 @@ const Ti = (t, e, r = void 0) => { y(a) ); }; -y(Ti); -const io = (t) => { +y(Pi); +const ao = (t) => { if (kt === void 0) return; let e = 0; const r = new Pe(), n = (d) => { - pa(r, d); + fa(r, d); }, o = new Me(), a = (d) => { if (Lr(r, d)) { const f = Ue(r, d); @@ -3205,16 +3205,16 @@ const io = (t) => { unhandledRejectionHandler: (d, f) => { e += 1; const m = e; - $e(r, m, d), ie(o, f, m), xa(i, f, m, f); + $e(r, m, d), ie(o, f, m), Ea(i, f, m, f); }, processTerminationHandler: () => { - for (const [d, f] of ma(r)) + for (const [d, f] of pa(r)) n(d), t(f); } }; }, Jr = (t) => { throw v(t); -}, co = (t, e) => y((...r) => ne(t, e, r)), Ai = (t = "safe", e = "platform", r = "report", n = void 0) => { +}, io = (t, e) => y((...r) => ne(t, e, r)), Ti = (t = "safe", e = "platform", r = "report", n = void 0) => { t === "safe" || t === "unsafe" || Jr(`unrecognized consoleTaming ${t}`); let o; n === void 0 ? o = br : o = { @@ -3230,18 +3230,18 @@ const io = (t) => { // https://console.spec.whatwg.org/#logging ((u) => y({ debug: u, log: u, info: u, warn: u, error: u }))( // eslint-disable-next-line no-undef - co(k.print) + io(k.print) ) ) : void 0 ); if (a && a.log) for (const u of ["warn", "error"]) a[u] || M(a, u, { - value: co(a.log, a) + value: io(a.log, a) }); const i = ( /** @type {VirtualConsole} */ - t === "unsafe" ? a : Dn(a, o) + t === "unsafe" ? a : Fn(a, o) ), c = k.process || void 0; if (e !== "none" && typeof c == "object" && typeof c.on == "function") { let u; @@ -3255,7 +3255,7 @@ const io = (t) => { }); } if (r !== "none" && typeof c == "object" && typeof c.on == "function") { - const d = io((f) => { + const d = ao((f) => { i.error("SES_UNHANDLED_REJECTION:", f); }); d && (c.on("unhandledRejection", d.unhandledRejectionHandler), c.on("rejectionHandled", d.rejectionHandledHandler), c.on("exit", d.processTerminationHandler)); @@ -3264,7 +3264,7 @@ const io = (t) => { if (e !== "none" && typeof l == "object" && typeof l.addEventListener == "function" && l.addEventListener("error", (u) => { u.preventDefault(), i.error(u.error), (e === "exit" || e === "abort") && (l.location.href = "about:blank"); }), r !== "none" && typeof l == "object" && typeof l.addEventListener == "function") { - const d = io((f) => { + const d = ao((f) => { i.error("SES_UNHANDLED_REJECTION:", f); }); d && (l.addEventListener("unhandledrejection", (f) => { @@ -3276,7 +3276,7 @@ const io = (t) => { })); } return { console: i }; -}, Ii = [ +}, Ai = [ // suppress 'getThis' definitely "getTypeName", // suppress 'getFunction' definitely @@ -3299,38 +3299,38 @@ const io = (t) => { "getScriptNameOrSourceURL", "toString" // TODO replace to use only whitelisted info -], Ci = (t) => { - const r = ht(se(Ii, (n) => { +], Ii = (t) => { + const r = ht(se(Ai, (n) => { const o = t[n]; return [n, () => ne(o, t, [])]; })); - return z(r, {}); -}, $i = (t) => se(t, Ci), Ni = /\/node_modules\//, Ri = /^(?:node:)?internal\//, Oi = /\/packages\/ses\/src\/error\/assert.js$/, Mi = /\/packages\/eventual-send\/src\//, Li = [ + return Z(r, {}); +}, Ci = (t) => se(t, Ii), $i = /\/node_modules\//, Ni = /^(?:node:)?internal\//, Ri = /\/packages\/ses\/src\/error\/assert.js$/, Oi = /\/packages\/eventual-send\/src\//, Mi = [ + $i, Ni, Ri, - Oi, - Mi -], Fi = (t) => { + Oi +], Li = (t) => { if (!t) return !0; - for (const e of Li) - if (kn(e, t)) + for (const e of Mi) + if (xn(e, t)) return !1; return !0; -}, Di = /^((?:.*[( ])?)[:/\w_-]*\/\.\.\.\/(.+)$/, Ui = /^((?:.*[( ])?)[:/\w_-]*\/(packages\/.+)$/, ji = [ - Di, - Ui -], Zi = (t) => { - for (const e of ji) { - const r = Pn(e, t); +}, Fi = /^((?:.*[( ])?)[:/\w_-]*\/\.\.\.\/(.+)$/, Di = /^((?:.*[( ])?)[:/\w_-]*\/(packages\/.+)$/, Ui = [ + Fi, + Di +], ji = (t) => { + for (const e of Ui) { + const r = kn(e, t); if (r) - return Rt(ua(r, 1), ""); + return Rt(la(r, 1), ""); } return t; -}, zi = (t, e, r, n) => { - const o = t.captureStackTrace, a = (p) => n === "verbose" ? !0 : Fi(p.getFileName()), i = (p) => { +}, Zi = (t, e, r, n) => { + const o = t.captureStackTrace, a = (p) => n === "verbose" ? !0 : Li(p.getFileName()), i = (p) => { let h = `${p}`; - return n === "concise" && (h = Zi(h)), ` + return n === "concise" && (h = ji(h)), ` at ${h}`; }, c = (p, h) => Rt( se(Ke(h, a), i), @@ -3346,7 +3346,7 @@ const io = (t) => { ne(o, t, [p, h]); return; } - Co(p, "stack", ""); + Io(p, "stack", ""); }, // Shim of proposed special power, to reside by default only // in the start compartment, for getting the stack traceback @@ -3369,11 +3369,11 @@ const io = (t) => { }, d = u.prepareStackTrace; t.prepareStackTrace = d; const f = new $t([d]), m = (p) => { - if (or(f, p)) + if (nr(f, p)) return p; const h = { prepareStackTrace(_, S) { - return ie(l, _, { callSites: S }), p(_, $i(S)); + return ie(l, _, { callSites: S }), p(_, Ci(S)); } }; return Fr(f, h.prepareStackTrace), h.prepareStackTrace; @@ -3400,12 +3400,12 @@ const io = (t) => { configurable: !0 } }), u.getStackString; -}, lo = J(ue.prototype, "stack"), uo = lo && lo.get, Gi = { +}, co = J(ue.prototype, "stack"), lo = co && co.get, zi = { getStackString(t) { - return typeof uo == "function" ? ne(uo, t, []) : "stack" in t ? `${t.stack}` : ""; + return typeof lo == "function" ? ne(lo, t, []) : "stack" in t ? `${t.stack}` : ""; } }; -function Bi(t = "safe", e = "concise") { +function Gi(t = "safe", e = "concise") { if (t !== "safe" && t !== "unsafe") throw v(`unrecognized errorTaming ${t}`); if (e !== "concise" && e !== "verbose") @@ -3428,8 +3428,8 @@ function Bi(t = "safe", e = "concise") { F(r, { constructor: { value: c } }); - for (const u of os) - ko(u, c); + for (const u of ns) + xo(u, c); F(i, { stackTraceLimit: { get() { @@ -3476,8 +3476,8 @@ function Bi(t = "safe", e = "concise") { configurable: !0 } }); - let l = Gi.getStackString; - return n === "v8" ? l = zi( + let l = zi.getStackString; + return n === "v8" ? l = Zi( ue, i, t, @@ -3520,9 +3520,9 @@ function Bi(t = "safe", e = "concise") { "%SharedError%": c }; } -const { Fail: Hi, details: un, quote: xe } = G, Vi = () => { +const { Fail: Bi, details: un, quote: xe } = z, Hi = () => { }; -async function Wi(t, e, r) { +async function Vi(t, e, r) { const n = t(...e); let o = yr(n); for (; !o.done; ) @@ -3530,36 +3530,36 @@ async function Wi(t, e, r) { const a = await o.value; o = yr(n, a); } catch (a) { - o = Do(n, r(a)); + o = Fo(n, r(a)); } return o.value; } -function qi(t, e) { +function Wi(t, e) { const r = t(...e); let n = yr(r); for (; !n.done; ) try { n = yr(r, n.value); } catch (o) { - n = Do(r, o); + n = Fo(r, o); } return n.value; } -const Ki = (t, e) => y({ +const qi = (t, e) => y({ compartment: t, specifier: e -}), Yi = (t, e, r) => { - const n = z(null); +}), Ki = (t, e, r) => { + const n = Z(null); for (const o of t) { const a = e(o, r); n[o] = a; } return y(n); -}, fo = (t, e, r, n, o, a, i, c, l) => { +}, uo = (t, e, r, n, o, a, i, c, l) => { const { resolveHook: u, moduleRecords: d } = L( t, r - ), f = Yi( + ), f = Ki( o.imports, u, n @@ -3570,8 +3570,8 @@ const Ki = (t, e) => y({ resolvedImports: f, importMeta: l }); - for (const p of Po(f)) - a(Ut, [ + for (const p of ko(f)) + a(Dt, [ t, e, r, @@ -3582,11 +3582,11 @@ const Ki = (t, e) => y({ ]); return $e(d, n, m), m; }; -function* Ji(t, e, r, n, o, a, i) { +function* Yi(t, e, r, n, o, a, i) { const { importHook: c, importNowHook: l, moduleMap: u, moduleMapHook: d, moduleRecords: f } = L(t, r); let m = u[n]; if (m === void 0 && d !== void 0 && (m = d(n)), typeof m == "string") - G.fail( + z.fail( un`Cannot map module ${xe(n)} to ${xe( m )} in parent compartment, not yet implemented`, @@ -3594,13 +3594,13 @@ function* Ji(t, e, r, n, o, a, i) { ); else if (m !== void 0) { const h = L(e, m); - h === void 0 && G.fail( + h === void 0 && z.fail( un`Cannot map module ${xe( n )} because the value is not a module exports namespace, or is from another realm`, lt ); - const _ = yield Ut( + const _ = yield Dt( t, e, h.compartment, @@ -3617,7 +3617,7 @@ function* Ji(t, e, r, n, o, a, i) { c, l )(n); - if ((p === null || typeof p != "object") && Hi`importHook must return a promise for an object, for module ${xe( + if ((p === null || typeof p != "object") && Bi`importHook must return a promise for an object, for module ${xe( n )} in compartment ${xe(r.name)}`, p.specifier !== void 0) { if (p.record !== void 0) { @@ -3630,7 +3630,7 @@ function* Ji(t, e, r, n, o, a, i) { specifier: _ = n, record: S, importMeta: T - } = p, N = fo( + } = p, N = uo( t, e, h, @@ -3648,7 +3648,7 @@ function* Ji(t, e, r, n, o, a, i) { throw v( "Cannot redirect to an implicit record with a specified importMeta" ); - const h = yield Ut( + const h = yield Dt( t, e, p.compartment, @@ -3661,7 +3661,7 @@ function* Ji(t, e, r, n, o, a, i) { } throw v("Unnexpected RedirectStaticModuleInterface record shape"); } - return fo( + return uo( t, e, r, @@ -3672,7 +3672,7 @@ function* Ji(t, e, r, n, o, a, i) { i ); } -const Ut = (t, e, r, n, o, a, i) => { +const Dt = (t, e, r, n, o, a, i) => { const { name: c } = L( t, r @@ -3680,8 +3680,8 @@ const Ut = (t, e, r, n, o, a, i) => { let l = Ue(i, r); l === void 0 && (l = new Pe(), $e(i, r, l)); let u = Ue(l, n); - return u !== void 0 || (u = a(Wi, qi)( - Ji, + return u !== void 0 || (u = a(Vi, Wi)( + Yi, [ t, e, @@ -3692,7 +3692,7 @@ const Ut = (t, e, r, n, o, a, i) => { i ], (d) => { - throw G.note( + throw z.note( d, un`${d.message}, loading ${xe(n)} in compartment ${xe( c @@ -3701,12 +3701,12 @@ const Ut = (t, e, r, n, o, a, i) => { } ), $e(l, n, u)), u; }; -function Xi() { +function Ji() { const t = new Ct(), e = []; return { enqueueJob: (o, a) => { - En( + Sn( t, - jo(o(...a), Vi, (i) => { + Uo(o(...a), Hi, (i) => { X(e, i); }) ); @@ -3716,7 +3716,7 @@ function Xi() { return e; } }; } -function Ts({ errors: t, errorPrefix: e }) { +function Ps({ errors: t, errorPrefix: e }) { if (t.length > 0) { const r = le("COMPARTMENT_LOAD_ERRORS", "", ["verbose"]) === "verbose"; throw v( @@ -3727,28 +3727,28 @@ function Ts({ errors: t, errorPrefix: e }) { ); } } -const Qi = (t, e) => e, ec = (t, e) => t, po = async (t, e, r, n) => { +const Xi = (t, e) => e, Qi = (t, e) => t, fo = async (t, e, r, n) => { const { name: o } = L( t, r - ), a = new Pe(), { enqueueJob: i, drainQueue: c } = Xi(); - i(Ut, [ + ), a = new Pe(), { enqueueJob: i, drainQueue: c } = Ji(); + i(Dt, [ t, e, r, n, i, - ec, + Qi, a ]); const l = await c(); - Ts({ + Ps({ errors: l, errorPrefix: `Failed to load module ${xe(n)} in package ${xe( o )}` }); -}, tc = (t, e, r, n) => { +}, ec = (t, e, r, n) => { const { name: o } = L( t, r @@ -3759,23 +3759,23 @@ const Qi = (t, e) => e, ec = (t, e) => t, po = async (t, e, r, n) => { X(i, d); } }; - c(Ut, [ + c(Dt, [ t, e, r, n, c, - Qi, + Xi, a - ]), Ts({ + ]), Ps({ errors: i, errorPrefix: `Failed to load module ${xe(n)} in package ${xe( o )}` }); -}, { quote: yt } = G, rc = () => { +}, { quote: yt } = z, tc = () => { let t = !1; - const e = z(null, { + const e = Z(null, { // Make this appear like an ESM module namespace object. [qe]: { value: "Module", @@ -3797,7 +3797,7 @@ const Qi = (t, e) => e, ec = (t, e) => t, po = async (t, e, r, n) => { n )} of module exports namespace, the module has not yet begun to execute` ); - return sa(e, n, o); + return oa(e, n, o); }, set(r, n, o) { throw v( @@ -3811,7 +3811,7 @@ const Qi = (t, e) => e, ec = (t, e) => t, po = async (t, e, r, n) => { n )}, the module has not yet begun to execute` ); - return Io(e, n); + return Ao(e, n); }, deleteProperty(r, n) { throw v( @@ -3832,21 +3832,21 @@ const Qi = (t, e) => e, ec = (t, e) => t, po = async (t, e, r, n) => { n )}, the module has not yet begun to execute` ); - return aa(e, n); + return sa(e, n); }, preventExtensions(r) { if (!t) throw v( "Cannot prevent extensions of module exports namespace, the module has not yet begun to execute" ); - return ca(e); + return ia(e); }, isExtensible() { if (!t) throw v( "Cannot check extensibility of module exports namespace, the module has not yet begun to execute" ); - return ia(e); + return aa(e); }, getPrototypeOf(r) { return null; @@ -3871,18 +3871,18 @@ const Qi = (t, e) => e, ec = (t, e) => t, po = async (t, e, r, n) => { } }) }); -}, Un = (t, e, r, n) => { +}, Dn = (t, e, r, n) => { const { deferredExports: o } = e; if (!Lr(o, n)) { - const a = rc(); + const a = tc(); ie( r, a.exportsProxy, - Ki(t, n) + qi(t, n) ), $e(o, n, a); } return Ue(o, n); -}, nc = (t, e) => { +}, rc = (t, e) => { const { sloppyGlobalsMode: r = !1, __moduleShimLexicals__: n = void 0 } = e; let o; if (n === void 0 && !r) @@ -3891,10 +3891,10 @@ const Qi = (t, e) => e, ec = (t, e) => t, po = async (t, e, r, n) => { let { globalTransforms: a } = t; const { globalObject: i } = t; let c; - n !== void 0 && (a = void 0, c = z( + n !== void 0 && (a = void 0, c = Z( null, Ze(n) - )), { safeEvaluate: o } = Mn({ + )), { safeEvaluate: o } = On({ globalObject: i, moduleLexicals: c, globalTransforms: a, @@ -3902,7 +3902,7 @@ const Qi = (t, e) => e, ec = (t, e) => t, po = async (t, e, r, n) => { }); } return { safeEvaluate: o }; -}, As = (t, e, r) => { +}, Ts = (t, e, r) => { if (typeof e != "string") throw v("first argument of evaluate() must be a string"); const { @@ -3912,23 +3912,23 @@ const Qi = (t, e) => e, ec = (t, e) => t, po = async (t, e, r, n) => { __rejectSomeDirectEvalExpressions__: i = !0 // Note default on } = r, c = [...n]; - o === !0 && X(c, ys), a === !0 && X(c, bs), i === !0 && X(c, ws); - const { safeEvaluate: l } = nc( + o === !0 && X(c, gs), a === !0 && X(c, _s), i === !0 && X(c, bs); + const { safeEvaluate: l } = rc( t, r ); return l(e, { localTransforms: c }); -}, { quote: cr } = G, oc = (t, e, r, n, o, a) => { - const { exportsProxy: i, exportsTarget: c, activate: l } = Un( +}, { quote: ir } = z, nc = (t, e, r, n, o, a) => { + const { exportsProxy: i, exportsTarget: c, activate: l } = Dn( r, L(t, r), n, o - ), u = z(null); + ), u = Z(null); if (e.exports) { - if (!Et(e.exports) || da(e.exports, (f) => typeof f != "string")) + if (!Et(e.exports) || ua(e.exports, (f) => typeof f != "string")) throw v( `SES third-party static module record "exports" property must be an array of strings for module ${o}` ); @@ -3958,7 +3958,7 @@ const Qi = (t, e) => e, ec = (t, e) => t, po = async (t, e, r, n) => { notifiers: u, exportsProxy: i, execute() { - if (Io(d, "errorFromExecute")) + if (Ao(d, "errorFromExecute")) throw d.errorFromExecute; if (!d.activated) { l(), d.activated = !0; @@ -3974,7 +3974,7 @@ const Qi = (t, e) => e, ec = (t, e) => t, po = async (t, e, r, n) => { } } }); -}, sc = (t, e, r, n) => { +}, oc = (t, e, r, n) => { const { compartment: o, moduleSpecifier: a, @@ -3988,57 +3988,57 @@ const Qi = (t, e) => e, ec = (t, e) => t, po = async (t, e, r, n) => { __reexportMap__: m = {}, __needsImportMeta__: p = !1, __syncModuleFunctor__: h - } = i, _ = L(t, o), { __shimTransforms__: S, importMetaHook: T } = _, { exportsProxy: N, exportsTarget: x, activate: D } = Un( + } = i, _ = L(t, o), { __shimTransforms__: S, importMetaHook: T } = _, { exportsProxy: N, exportsTarget: x, activate: D } = Dn( o, _, e, a - ), B = z(null), H = z(null), K = z(null), ze = z(null), me = z(null); + ), G = Z(null), B = Z(null), K = Z(null), ze = Z(null), me = Z(null); c && $r(me, c), p && T && T(a, me); - const Ge = z(null), rt = z(null); - ut(re(d), ([he, [V]]) => { - let W = Ge[V]; - if (!W) { + const Ge = Z(null), rt = Z(null); + ut(re(d), ([he, [H]]) => { + let V = Ge[H]; + if (!V) { let ee, te = !0, ce = []; const Y = () => { if (te) - throw lt(`binding ${cr(V)} not yet initialized`); + throw lt(`binding ${ir(H)} not yet initialized`); return ee; }, be = y((we) => { if (!te) throw v( - `Internal: binding ${cr(V)} already initialized` + `Internal: binding ${ir(H)} already initialized` ); ee = we; - const Hn = ce; + const Bn = ce; ce = null, te = !1; - for (const Se of Hn || []) + for (const Se of Bn || []) Se(we); return we; }); - W = { + V = { get: Y, notify: (we) => { we !== be && (te ? X(ce || [], we) : we(ee)); } - }, Ge[V] = W, K[V] = be; + }, Ge[H] = V, K[H] = be; } - B[he] = { - get: W.get, + G[he] = { + get: V.get, set: void 0, enumerable: !0, configurable: !1 - }, rt[he] = W.notify; + }, rt[he] = V.notify; }), ut( re(f), - ([he, [V, W]]) => { - let ee = Ge[V]; + ([he, [H, V]]) => { + let ee = Ge[H]; if (!ee) { let te, ce = !0; const Y = [], be = () => { if (ce) throw lt( - `binding ${cr(he)} not yet initialized` + `binding ${ir(he)} not yet initialized` ); return te; }, gt = y((Se) => { @@ -4047,7 +4047,7 @@ const Qi = (t, e) => e, ec = (t, e) => t, po = async (t, e, r, n) => { zr(Se); }), we = (Se) => { if (ce) - throw lt(`binding ${cr(V)} not yet initialized`); + throw lt(`binding ${ir(H)} not yet initialized`); te = Se; for (const zr of Y) zr(Se); @@ -4057,14 +4057,14 @@ const Qi = (t, e) => e, ec = (t, e) => t, po = async (t, e, r, n) => { notify: (Se) => { Se !== gt && (X(Y, Se), ce || Se(te)); } - }, Ge[V] = ee, W && M(H, V, { + }, Ge[H] = ee, V && M(B, H, { get: be, set: we, enumerable: !0, configurable: !1 - }), ze[V] = gt; + }), ze[H] = gt; } - B[he] = { + G[he] = { get: ee.get, set: void 0, enumerable: !0, @@ -4076,36 +4076,36 @@ const Qi = (t, e) => e, ec = (t, e) => t, po = async (t, e, r, n) => { he(x); }; rt["*"] = Be; - function ar(he) { - const V = z(null); - V.default = !1; - for (const [W, ee] of he) { - const te = Ue(n, W); + function sr(he) { + const H = Z(null); + H.default = !1; + for (const [V, ee] of he) { + const te = Ue(n, V); te.execute(); const { notifiers: ce } = te; for (const [Y, be] of ee) { const gt = ce[Y]; if (!gt) - throw tr( - `The requested module '${W}' does not provide an export named '${Y}'` + throw er( + `The requested module '${V}' does not provide an export named '${Y}'` ); for (const we of be) gt(we); } - if (Mr(l, W)) + if (Mr(l, V)) for (const [Y, be] of re( ce )) - V[Y] === void 0 ? V[Y] = be : V[Y] = !1; - if (m[W]) - for (const [Y, be] of m[W]) - V[be] = ce[Y]; + H[Y] === void 0 ? H[Y] = be : H[Y] = !1; + if (m[V]) + for (const [Y, be] of m[V]) + H[be] = ce[Y]; } - for (const [W, ee] of re(V)) - if (!rt[W] && ee !== !1) { - rt[W] = ee; + for (const [V, ee] of re(H)) + if (!rt[V] && ee !== !1) { + rt[V] = ee; let te; - ee((Y) => te = Y), B[W] = { + ee((Y) => te = Y), G[V] = { get() { return te; }, @@ -4115,43 +4115,43 @@ const Qi = (t, e) => e, ec = (t, e) => t, po = async (t, e, r, n) => { }; } ut( - Mo(xo(B)), - (W) => M(x, W, B[W]) + Oo(Eo(G)), + (V) => M(x, V, G[V]) ), y(x), D(); } let Ot; - h !== void 0 ? Ot = h : Ot = As(_, u, { + h !== void 0 ? Ot = h : Ot = Ts(_, u, { globalObject: o.globalThis, transforms: S, - __moduleShimLexicals__: H + __moduleShimLexicals__: B }); - let Gn = !1, Bn; - function Bs() { + let zn = !1, Gn; + function Gs() { if (Ot) { const he = Ot; Ot = null; try { he( y({ - imports: y(ar), + imports: y(sr), onceVar: y(K), liveVar: y(ze), importMeta: me }) ); - } catch (V) { - Gn = !0, Bn = V; + } catch (H) { + zn = !0, Gn = H; } } - if (Gn) - throw Bn; + if (zn) + throw Gn; } return y({ notifiers: rt, exportsProxy: N, - execute: Bs + execute: Gs }); -}, { Fail: ct, quote: q } = G, Is = (t, e, r, n) => { +}, { Fail: ct, quote: q } = z, As = (t, e, r, n) => { const { name: o, moduleRecords: a } = L( t, r @@ -4162,12 +4162,12 @@ const Qi = (t, e) => e, ec = (t, e) => t, po = async (t, e, r, n) => { o )}` ); - return dc(t, e, i); + return uc(t, e, i); }; -function ac(t) { +function sc(t) { return typeof t.__syncModuleProgram__ == "string"; } -function ic(t, e) { +function ac(t, e) { const { __fixedExportMap__: r, __liveExportMap__: n } = t; Ye(r) || ct`Property '__fixedExportMap__' of a precompiled module record must be an object, got ${q( r @@ -4175,16 +4175,16 @@ function ic(t, e) { n )}, for module ${q(e)}`; } -function cc(t) { +function ic(t) { return typeof t.execute == "function"; } -function lc(t, e) { +function cc(t, e) { const { exports: r } = t; Et(r) || ct`Property 'exports' of a third-party static module record must be an array, got ${q( r )}, for module ${q(e)}`; } -function uc(t, e) { +function lc(t, e) { Ye(t) || ct`Static module records must be of type object, got ${q( t )}, for module ${q(e)}`; @@ -4197,22 +4197,22 @@ function uc(t, e) { o )}, for module ${q(e)}`; } -const dc = (t, e, r) => { +const uc = (t, e, r) => { const { compartment: n, moduleSpecifier: o, resolvedImports: a, staticModuleRecord: i } = r, { instances: c } = L(t, n); if (Lr(c, o)) return Ue(c, o); - uc(i, o); + lc(i, o); const l = new Pe(); let u; - if (ac(i)) - ic(i, o), u = sc( + if (sc(i)) + ac(i, o), u = oc( t, e, r, l ); - else if (cc(i)) - lc(i, o), u = oc( + else if (ic(i)) + cc(i, o), u = nc( t, i, n, @@ -4228,7 +4228,7 @@ const dc = (t, e, r) => { ); $e(c, o, u); for (const [d, f] of re(a)) { - const m = Is( + const m = As( t, e, n, @@ -4237,26 +4237,26 @@ const dc = (t, e, r) => { $e(l, d, m); } return u; -}, { quote: Xr } = G, bt = new Me(), Ce = new Me(), lr = (t) => { +}, { quote: Xr } = z, bt = new Me(), Ce = new Me(), cr = (t) => { const { importHook: e, resolveHook: r } = L(Ce, t); if (typeof e != "function" || typeof r != "function") throw v( "Compartment must be constructed with an importHook and a resolveHook for it to be able to load modules" ); -}, jn = function(e = {}, r = {}, n = {}) { +}, Un = function(e = {}, r = {}, n = {}) { throw v( "Compartment.prototype.constructor is not a valid constructor." ); -}, mo = (t, e) => { - const { execute: r, exportsProxy: n } = Is( +}, po = (t, e) => { + const { execute: r, exportsProxy: n } = As( Ce, bt, t, e ); return r(), n; -}, Zn = { - constructor: jn, +}, jn = { + constructor: Un, get globalThis() { return L(Ce, this).globalObject; }, @@ -4275,13 +4275,13 @@ const dc = (t, e, r) => { */ evaluate(t, e = {}) { const r = L(Ce, this); - return As(r, t, e); + return Ts(r, t, e); }, module(t) { if (typeof t != "string") throw v("first argument of module() must be a string"); - lr(this); - const { exportsProxy: e } = Un( + cr(this); + const { exportsProxy: e } = Dn( this, L(Ce, this), bt, @@ -4292,9 +4292,9 @@ const dc = (t, e, r) => { async import(t) { if (typeof t != "string") throw v("first argument of import() must be a string"); - return lr(this), jo( - po(Ce, bt, this, t), - () => ({ namespace: mo( + return cr(this), Uo( + fo(Ce, bt, this, t), + () => ({ namespace: po( /** @type {Compartment} */ this, t @@ -4304,19 +4304,19 @@ const dc = (t, e, r) => { async load(t) { if (typeof t != "string") throw v("first argument of load() must be a string"); - return lr(this), po(Ce, bt, this, t); + return cr(this), fo(Ce, bt, this, t); }, importNow(t) { if (typeof t != "string") throw v("first argument of importNow() must be a string"); - return lr(this), tc(Ce, bt, this, t), mo( + return cr(this), ec(Ce, bt, this, t), po( /** @type {Compartment} */ this, t ); } }; -F(Zn, { +F(jn, { [qe]: { value: "Compartment", writable: !1, @@ -4324,8 +4324,8 @@ F(Zn, { configurable: !0 } }); -F(jn, { - prototype: { value: Zn } +F(Un, { + prototype: { value: jn } }); const dn = (t, e, r) => { function n(o = {}, a = {}, i = {}) { @@ -4343,30 +4343,30 @@ const dn = (t, e, r) => { moduleMapHook: p, importMetaHook: h } = i, _ = [...l, ...u], S = new Pe(), T = new Pe(), N = new Pe(); - for (const [B, H] of re(a || {})) { - if (typeof H == "string") + for (const [G, B] of re(a || {})) { + if (typeof B == "string") throw v( - `Cannot map module ${Xr(B)} to ${Xr( - H + `Cannot map module ${Xr(G)} to ${Xr( + B )} in parent compartment` ); - if (L(bt, H) === void 0) + if (L(bt, B) === void 0) throw lt( `Cannot map module ${Xr( - B + G )} because it has no known compartment in this realm` ); } const x = {}; - ui(x), ls(x); - const { safeEvaluate: D } = Mn({ + li(x), cs(x); + const { safeEvaluate: D } = On({ globalObject: x, globalTransforms: _, sloppyGlobalsMode: !1 }); - us(x, { + ls(x, { intrinsics: e, - newGlobalPropertyNames: ns, + newGlobalPropertyNames: rs, makeCompartmentConstructor: t, markVirtualizedNativeFunction: r }), ln( @@ -4390,16 +4390,16 @@ const dn = (t, e, r) => { instances: T }); } - return n.prototype = Zn, n; + return n.prototype = jn, n; }; function Qr(t) { return j(t).constructor; } -function fc() { +function dc() { return arguments; } -const pc = () => { - const t = ve.prototype.constructor, e = J(fc(), "callee"), r = e && e.get, n = ba(new pe()), o = j(n), a = Rr[To] && ya(/./), i = a && j(a), c = fa([]), l = j(c), u = j(Ws), d = ha(new Pe()), f = j(d), m = ga(new Ct()), p = j(m), h = j(l); +const fc = () => { + const t = ve.prototype.constructor, e = J(dc(), "callee"), r = e && e.get, n = _a(new pe()), o = j(n), a = Rr[Po] && ga(/./), i = a && j(a), c = da([]), l = j(c), u = j(Vs), d = ma(new Pe()), f = j(d), m = ha(new Ct()), p = j(m), h = j(l); function* _() { } const S = Qr(_), T = S.prototype; @@ -4407,7 +4407,7 @@ const pc = () => { } const x = Qr( N - ), D = x.prototype, B = D.prototype, H = j(B); + ), D = x.prototype, G = D.prototype, B = j(G); async function K() { } const ze = Qr(K), me = { @@ -4416,8 +4416,8 @@ const pc = () => { "%InertAsyncFunction%": ze, "%AsyncGenerator%": D, "%InertAsyncGeneratorFunction%": x, - "%AsyncGeneratorPrototype%": B, - "%AsyncIteratorPrototype%": H, + "%AsyncGeneratorPrototype%": G, + "%AsyncIteratorPrototype%": B, "%Generator%": T, "%InertGeneratorFunction%": S, "%IteratorPrototype%": h, @@ -4427,7 +4427,7 @@ const pc = () => { "%StringIteratorPrototype%": o, "%ThrowTypeError%": r, "%TypedArray%": u, - "%InertCompartment%": jn + "%InertCompartment%": Un }; return k.Iterator && (me["%IteratorHelperPrototype%"] = j( // eslint-disable-next-line @endo/no-polymorphic-call @@ -4444,7 +4444,7 @@ const pc = () => { k.AsyncIterator.from({ next() { } }) )), me; -}, Cs = (t, e) => { +}, Is = (t, e) => { if (e !== "safe" && e !== "unsafe") throw v(`unrecognized fakeHardenOption ${e}`); if (e === "safe" || (Object.isExtensible = () => !1, Object.isFrozen = () => !0, Object.isSealed = () => !0, Reflect.isExtensible = () => !1, t.isFake)) @@ -4452,9 +4452,9 @@ const pc = () => { const r = (n) => n; return r.isFake = !0, y(r); }; -y(Cs); -const mc = () => { - const t = St, e = t.prototype, r = Ea(St, void 0); +y(Is); +const pc = () => { + const t = St, e = t.prototype, r = Sa(St, void 0); F(e, { constructor: { value: r @@ -4470,13 +4470,13 @@ const mc = () => { ]) ); return F(r, o), { "%SharedSymbol%": r }; -}, hc = (t) => { +}, mc = (t) => { try { return t(), !1; } catch { return !0; } -}, ho = (t, e, r) => { +}, mo = (t, e, r) => { if (t === void 0) return !1; const n = J(t, e); @@ -4489,25 +4489,25 @@ const mc = () => { if (ne(a, c, [i]), c[e] !== i) return !1; const l = { __proto__: t }; - return ne(a, l, [i]), l[e] !== i || !hc(() => ne(a, t, [r])) || "originalValue" in o || n.configurable === !1 ? !1 : (M(t, e, { + return ne(a, l, [i]), l[e] !== i || !mc(() => ne(a, t, [r])) || "originalValue" in o || n.configurable === !1 ? !1 : (M(t, e, { value: r, writable: !0, enumerable: n.enumerable, configurable: !0 }), !0); -}, gc = (t) => { - ho( +}, hc = (t) => { + mo( t["%IteratorPrototype%"], "constructor", t.Iterator - ), ho( + ), mo( t["%IteratorPrototype%"], qe, "Iterator" ); -}, { Fail: go, details: yo, quote: vo } = G; -let ur, dr; -const yc = Ba(), vc = () => { +}, { Fail: ho, details: go, quote: yo } = z; +let lr, ur; +const gc = Ga(), yc = () => { let t = !1; try { t = ve( @@ -4516,7 +4516,7 @@ const yc = Ba(), vc = () => { ` eval("SES_changed = true"); return SES_changed; ` - )(Zo, !1), t || delete k.SES_changed; + )(jo, !1), t || delete k.SES_changed; } catch { t = !0; } @@ -4524,7 +4524,7 @@ const yc = Ba(), vc = () => { throw v( "SES cannot initialize unless 'eval' is the original intrinsic 'eval', suitable for direct-eval (dynamically scoped eval) (SES_DIRECT_EVAL)" ); -}, $s = (t = {}) => { +}, Cs = (t = {}) => { const { errorTaming: e = le("LOCKDOWN_ERROR_TAMING", "safe"), errorTrapping: r = ( @@ -4546,7 +4546,7 @@ const yc = Ba(), vc = () => { domainTaming: u = le("LOCKDOWN_DOMAIN_TAMING", "safe"), evalTaming: d = le("LOCKDOWN_EVAL_TAMING", "safeEval"), overrideDebug: f = Ke( - An(le("LOCKDOWN_OVERRIDE_DEBUG", ""), ","), + Tn(le("LOCKDOWN_OVERRIDE_DEBUG", ""), ","), /** @param {string} debugName */ (Be) => Be !== "" ), @@ -4557,13 +4557,13 @@ const yc = Ba(), vc = () => { // deprecated ..._ } = t; - d === "unsafeEval" || d === "safeEval" || d === "noEval" || go`lockdown(): non supported option evalTaming: ${vo(d)}`; + d === "unsafeEval" || d === "safeEval" || d === "noEval" || ho`lockdown(): non supported option evalTaming: ${yo(d)}`; const S = De(_); - if (S.length === 0 || go`lockdown(): non supported option ${vo(S)}`, ur === void 0 || // eslint-disable-next-line @endo/no-polymorphic-call - G.fail( - yo`Already locked down at ${ur} (SES_ALREADY_LOCKED_DOWN)`, + if (S.length === 0 || ho`lockdown(): non supported option ${yo(S)}`, lr === void 0 || // eslint-disable-next-line @endo/no-polymorphic-call + z.fail( + go`Already locked down at ${lr} (SES_ALREADY_LOCKED_DOWN)`, v - ), ur = v("Prior lockdown (SES_ALREADY_LOCKED_DOWN)"), ur.stack, vc(), k.Function.prototype.constructor !== k.Function && // @ts-ignore harden is absent on globalThis type def. + ), lr = v("Prior lockdown (SES_ALREADY_LOCKED_DOWN)"), lr.stack, yc(), k.Function.prototype.constructor !== k.Function && // @ts-ignore harden is absent on globalThis type def. typeof k.harden == "function" && // @ts-ignore lockdown is absent on globalThis type def. typeof k.lockdown == "function" && k.Date.prototype.constructor !== k.Date && typeof k.Date.now == "function" && // @ts-ignore does not recognize that Date constructor is a special // Function. @@ -4572,14 +4572,14 @@ const yc = Ba(), vc = () => { throw v( "Already locked down but not by this SES instance (SES_MULTIPLE_INSTANCES)" ); - xi(u); - const N = xs(), { addIntrinsics: x, completePrototypes: D, finalIntrinsics: B } = as(), H = Cs(yc, m); - x({ harden: H }), x(Ja()), x(Xa(p)), x(Bi(e, l)), x(Qa(h)), x(ei(o)), x(mc()), x(pc()), D(); - const K = B(), ze = { __proto__: null }; + Ei(u); + const N = Es(), { addIntrinsics: x, completePrototypes: D, finalIntrinsics: G } = ss(), B = Is(gc, m); + x({ harden: B }), x(Ya()), x(Ja(p)), x(Gi(e, l)), x(Xa(h)), x(Qa(o)), x(pc()), x(fc()), D(); + const K = G(), ze = { __proto__: null }; typeof k.Buffer == "function" && (ze.Buffer = k.Buffer); let me; e !== "unsafe" && (me = K["%InitialGetStackString%"]); - const Ge = Ai( + const Ge = Ti( i, r, n, @@ -4591,19 +4591,19 @@ const yc = Ba(), vc = () => { // eslint-disable-next-line no-underscore-dangle /** @type {any} */ Ge.console._times - )), e === "unsafe" && k.assert === G && (k.assert = jr(void 0, !0)), ii(K, a), gc(K), Ya(K, N), ls(k), us(k, { + )), e === "unsafe" && k.assert === z && (k.assert = jr(void 0, !0)), ai(K, a), hc(K), Ka(K, N), cs(k), ls(k, { intrinsics: K, - newGlobalPropertyNames: Xn, + newGlobalPropertyNames: Jn, makeCompartmentConstructor: dn, markVirtualizedNativeFunction: N }), d === "noEval") ln( k, - ka, + xa, N ); else if (d === "safeEval") { - const { safeEvaluate: Be } = Mn({ globalObject: k }); + const { safeEvaluate: Be } = On({ globalObject: k }); ln( k, Be, @@ -4611,13 +4611,13 @@ const yc = Ba(), vc = () => { ); } return () => { - dr === void 0 || // eslint-disable-next-line @endo/no-polymorphic-call - G.fail( - yo`Already locked down at ${dr} (SES_ALREADY_LOCKED_DOWN)`, + ur === void 0 || // eslint-disable-next-line @endo/no-polymorphic-call + z.fail( + go`Already locked down at ${ur} (SES_ALREADY_LOCKED_DOWN)`, v - ), dr = v( + ), ur = v( "Prior lockdown (SES_ALREADY_LOCKED_DOWN)" - ), dr.stack, ni(K, c, f); + ), ur.stack, ri(K, c, f); const Be = { intrinsics: K, hostIntrinsics: ze, @@ -4631,33 +4631,33 @@ const yc = Ba(), vc = () => { Symbol: k.Symbol } }; - for (const ar of Dt(Xn)) - Be.globals[ar] = k[ar]; - return H(Be), H; + for (const sr of Ft(Jn)) + Be.globals[sr] = k[sr]; + return B(Be), B; }; }; k.lockdown = (t) => { - const e = $s(t); + const e = Cs(t); k.harden = e(); }; k.repairIntrinsics = (t) => { - const e = $s(t); + const e = Cs(t); k.hardenIntrinsics = () => { k.harden = e(); }; }; -const _c = xs(); +const vc = Es(); k.Compartment = dn( dn, - Ka(k), - _c + qa(k), + vc ); -k.assert = G; -const bc = Ps(br), wc = ra( +k.assert = z; +const _c = ks(br), bc = ta( "MAKE_CAUSAL_CONSOLE_FROM_LOGGER_KEY_FOR_SES_AVA" ); -k[wc] = bc; -const Sc = (t, e) => { +k[bc] = _c; +const wc = (t, e) => { let r = { x: 0, y: 0 }, n = { x: 0, y: 0 }, o = { x: 0, y: 0 }; const a = (l) => { const { clientX: u, clientY: d } = l, f = u - o.x + n.x, m = d - o.y + n.y; @@ -4668,14 +4668,14 @@ const Sc = (t, e) => { o = { x: l.clientX, y: l.clientY }, n = { x: r.x, y: r.y }, document.addEventListener("mousemove", a), document.addEventListener("mouseup", i); }; return t.addEventListener("mousedown", c), i; -}, Ec = ":host{--spacing-4: .25rem;--spacing-8: calc(var(--spacing-4) * 2);--spacing-12: calc(var(--spacing-4) * 3);--spacing-16: calc(var(--spacing-4) * 4);--spacing-20: calc(var(--spacing-4) * 5);--spacing-24: calc(var(--spacing-4) * 6);--spacing-28: calc(var(--spacing-4) * 7);--spacing-32: calc(var(--spacing-4) * 8);--spacing-36: calc(var(--spacing-4) * 9);--spacing-40: calc(var(--spacing-4) * 10);--font-weight-regular: 400;--font-weight-bold: 500;--font-line-height-s: 1.2;--font-line-height-m: 1.4;--font-line-height-l: 1.5;--font-size-s: 12px;--font-size-m: 14px;--font-size-l: 16px}[data-theme]{background-color:var(--color-background-primary);color:var(--color-foreground-secondary)}.wrapper{box-sizing:border-box;display:flex;flex-direction:column;position:fixed;inset-block-start:var(--modal-block-start);inset-inline-end:var(--modal-inline-end);z-index:1000;padding:25px;border-radius:15px;border:2px solid var(--color-background-quaternary);box-shadow:0 0 10px #0000004d}.header{align-items:center;display:flex;justify-content:space-between;border-block-end:2px solid var(--color-background-quaternary);padding-block-end:var(--spacing-4)}button{background:transparent;border:0;cursor:pointer;padding:0}h1{font-size:var(--font-size-s);font-weight:var(--font-weight-bold);margin:0;margin-inline-end:var(--spacing-4);-webkit-user-select:none;user-select:none}iframe{border:none;inline-size:100%;block-size:100%}", xc = ` +}, Sc = ":host{--spacing-4: .25rem;--spacing-8: calc(var(--spacing-4) * 2);--spacing-12: calc(var(--spacing-4) * 3);--spacing-16: calc(var(--spacing-4) * 4);--spacing-20: calc(var(--spacing-4) * 5);--spacing-24: calc(var(--spacing-4) * 6);--spacing-28: calc(var(--spacing-4) * 7);--spacing-32: calc(var(--spacing-4) * 8);--spacing-36: calc(var(--spacing-4) * 9);--spacing-40: calc(var(--spacing-4) * 10);--font-weight-regular: 400;--font-weight-bold: 500;--font-line-height-s: 1.2;--font-line-height-m: 1.4;--font-line-height-l: 1.5;--font-size-s: 12px;--font-size-m: 14px;--font-size-l: 16px}[data-theme]{background-color:var(--color-background-primary);color:var(--color-foreground-secondary)}.wrapper{box-sizing:border-box;display:flex;flex-direction:column;position:fixed;inset-block-start:var(--modal-block-start);inset-inline-end:var(--modal-inline-end);z-index:1000;padding:25px;border-radius:15px;border:2px solid var(--color-background-quaternary);box-shadow:0 0 10px #0000004d}.header{align-items:center;display:flex;justify-content:space-between;border-block-end:2px solid var(--color-background-quaternary);padding-block-end:var(--spacing-4)}button{background:transparent;border:0;cursor:pointer;padding:0}h1{font-size:var(--font-size-s);font-weight:var(--font-weight-bold);margin:0;margin-inline-end:var(--spacing-4);-webkit-user-select:none;user-select:none}iframe{border:none;inline-size:100%;block-size:100%}", Ec = ` `; -var de, er; -class kc extends HTMLElement { +var de, Qt; +class xc extends HTMLElement { constructor() { super(); Gr(this, de, null); - Gr(this, er, null); + Gr(this, Qt, null); this.attachShadow({ mode: "open" }); } setTheme(r) { @@ -4683,7 +4683,7 @@ class kc extends HTMLElement { } disconnectedCallback() { var r; - (r = Ee(this, er)) == null || r.call(this); + (r = Ee(this, Qt)) == null || r.call(this); } calculateZIndex() { const r = document.querySelectorAll("plugin-modal"), n = Array.from(r).filter((a) => a !== this).map((a) => Number(a.style.zIndex)), o = Math.max(...n, 0); @@ -4695,7 +4695,7 @@ class kc extends HTMLElement { throw new Error("title and iframe-src attributes are required"); if (!this.shadowRoot) throw new Error("Error creating shadow root"); - Br(this, de, document.createElement("div")), Ee(this, de).classList.add("wrapper"), Ee(this, de).style.inlineSize = `${o}px`, Ee(this, de).style.blockSize = `${a}px`, Br(this, er, Sc(Ee(this, de), () => { + Br(this, de, document.createElement("div")), Ee(this, de).classList.add("wrapper"), Ee(this, de).style.inlineSize = `${o}px`, Ee(this, de).style.blockSize = `${a}px`, Br(this, Qt, wc(Ee(this, de), () => { this.calculateZIndex(); })); const i = document.createElement("div"); @@ -4703,7 +4703,7 @@ class kc extends HTMLElement { const c = document.createElement("h1"); c.textContent = r, i.appendChild(c); const l = document.createElement("button"); - l.setAttribute("type", "button"), l.innerHTML = `
${xc}
`, l.addEventListener("click", () => { + l.setAttribute("type", "button"), l.innerHTML = `
${Ec}
`, l.addEventListener("click", () => { this.shadowRoot && this.shadowRoot.dispatchEvent( new CustomEvent("close", { composed: !0, @@ -4723,11 +4723,11 @@ class kc extends HTMLElement { u.contentWindow && u.contentWindow.postMessage(f.detail, "*"); }), this.shadowRoot.appendChild(Ee(this, de)), Ee(this, de).appendChild(i), Ee(this, de).appendChild(u); const d = document.createElement("style"); - d.textContent = Ec, this.shadowRoot.appendChild(d), this.calculateZIndex(); + d.textContent = Sc, this.shadowRoot.appendChild(d), this.calculateZIndex(); } } -de = new WeakMap(), er = new WeakMap(); -customElements.define("plugin-modal", kc); +de = new WeakMap(), Qt = new WeakMap(); +customElements.define("plugin-modal", xc); var O; (function(t) { t.assertEqual = (o) => o; @@ -4831,7 +4831,7 @@ const w = O.arrayToEnum([ "invalid_intersection_types", "not_multiple_of", "not_finite" -]), Pc = (t) => JSON.stringify(t, null, 2).replace(/"([^"]+)":/g, "$1:"); +]), kc = (t) => JSON.stringify(t, null, 2).replace(/"([^"]+)":/g, "$1:"); class fe extends Error { constructor(e) { super(), this.issues = [], this.addIssue = (n) => { @@ -4948,12 +4948,12 @@ const Tt = (t, e) => { } return { message: r }; }; -let Ns = Tt; -function Tc(t) { - Ns = t; +let $s = Tt; +function Pc(t) { + $s = t; } function Er() { - return Ns; + return $s; } const xr = (t) => { const { data: e, path: r, errorMaps: n, issueData: o } = t, a = [...r, ...o.path || []], i = { @@ -4975,7 +4975,7 @@ const xr = (t) => { path: a, message: c }; -}, Ac = []; +}, Tc = []; function b(t, e) { const r = Er(), n = xr({ issueData: e, @@ -5034,13 +5034,13 @@ class Q { } const I = Object.freeze({ status: "aborted" -}), wt = (t) => ({ status: "dirty", value: t }), ae = (t) => ({ status: "valid", value: t }), pn = (t) => t.status === "aborted", mn = (t) => t.status === "dirty", jt = (t) => t.status === "valid", Zt = (t) => typeof Promise < "u" && t instanceof Promise; +}), wt = (t) => ({ status: "dirty", value: t }), ae = (t) => ({ status: "valid", value: t }), pn = (t) => t.status === "aborted", mn = (t) => t.status === "dirty", Ut = (t) => t.status === "valid", jt = (t) => typeof Promise < "u" && t instanceof Promise; function kr(t, e, r, n) { if (typeof e == "function" ? t !== e || !n : !e.has(t)) throw new TypeError("Cannot read private member from an object whose class did not declare it"); return e.get(t); } -function Rs(t, e, r, n, o) { +function Ns(t, e, r, n, o) { if (typeof e == "function" ? t !== e || !o : !e.has(t)) throw new TypeError("Cannot write private member to an object whose class did not declare it"); return e.set(t, r), r; @@ -5058,8 +5058,8 @@ class Re { return this._cachedPath.length || (this._key instanceof Array ? this._cachedPath.push(...this._path, ...this._key) : this._cachedPath.push(...this._path, this._key)), this._cachedPath; } } -const _o = (t, e) => { - if (jt(e)) +const vo = (t, e) => { + if (Ut(e)) return { success: !0, data: e.value }; if (!t.common.issues.length) throw new Error("Validation failed but no issues detected."); @@ -5120,7 +5120,7 @@ class $ { } _parseSync(e) { const r = this._parse(e); - if (Zt(r)) + if (jt(r)) throw new Error("Synchronous parse encountered promise."); return r; } @@ -5148,7 +5148,7 @@ class $ { data: e, parsedType: Ve(e) }, a = this._parseSync({ data: e, path: o.path, parent: o }); - return _o(o, a); + return vo(o, a); } async parseAsync(e, r) { const n = await this.safeParseAsync(e, r); @@ -5168,8 +5168,8 @@ class $ { parent: null, data: e, parsedType: Ve(e) - }, o = this._parse({ data: e, path: n.path, parent: n }), a = await (Zt(o) ? o : Promise.resolve(o)); - return _o(n, a); + }, o = this._parse({ data: e, path: n.path, parent: n }), a = await (jt(o) ? o : Promise.resolve(o)); + return vo(n, a); } refine(e, r) { const n = (o) => typeof r == "string" || typeof r > "u" ? { message: r } : typeof r == "function" ? r(o) : r; @@ -5210,10 +5210,10 @@ class $ { return It.create(this, this._def); } or(e) { - return Ht.create([this, e], this._def); + return Bt.create([this, e], this._def); } and(e) { - return Vt.create(this, e, this._def); + return Ht.create(this, e, this._def); } transform(e) { return new Ae({ @@ -5225,7 +5225,7 @@ class $ { } default(e) { const r = typeof e == "function" ? e : () => e; - return new Jt({ + return new Yt({ ...C(this._def), innerType: this, defaultValue: r, @@ -5233,7 +5233,7 @@ class $ { }); } brand() { - return new zn({ + return new Zn({ typeName: A.ZodBranded, type: this, ...C(this._def) @@ -5241,7 +5241,7 @@ class $ { } catch(e) { const r = typeof e == "function" ? e : () => e; - return new Xt({ + return new Jt({ ...C(this._def), innerType: this, catchValue: r, @@ -5256,10 +5256,10 @@ class $ { }); } pipe(e) { - return sr.create(this, e); + return or.create(this, e); } readonly() { - return Qt.create(this); + return Xt.create(this); } isOptional() { return this.safeParse(void 0).success; @@ -5268,23 +5268,23 @@ class $ { return this.safeParse(null).success; } } -const Ic = /^c[^\s-]{8,}$/i, Cc = /^[0-9a-z]+$/, $c = /^[0-9A-HJKMNP-TV-Z]{26}$/, Nc = /^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i, Rc = /^[a-z0-9_-]{21}$/i, Oc = /^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/, Mc = /^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i, Lc = "^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$"; +const Ac = /^c[^\s-]{8,}$/i, Ic = /^[0-9a-z]+$/, Cc = /^[0-9A-HJKMNP-TV-Z]{26}$/, $c = /^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i, Nc = /^[a-z0-9_-]{21}$/i, Rc = /^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/, Oc = /^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i, Mc = "^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$"; let en; -const Fc = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/, Dc = /^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/, Uc = /^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/, Os = "((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))", jc = new RegExp(`^${Os}$`); -function Ms(t) { +const Lc = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/, Fc = /^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/, Dc = /^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/, Rs = "((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))", Uc = new RegExp(`^${Rs}$`); +function Os(t) { let e = "([01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d"; return t.precision ? e = `${e}\\.\\d{${t.precision}}` : t.precision == null && (e = `${e}(\\.\\d+)?`), e; } -function Zc(t) { - return new RegExp(`^${Ms(t)}$`); +function jc(t) { + return new RegExp(`^${Os(t)}$`); } -function Ls(t) { - let e = `${Os}T${Ms(t)}`; +function Ms(t) { + let e = `${Rs}T${Os(t)}`; const r = []; return r.push(t.local ? "Z?" : "Z"), t.offset && r.push("([+-]\\d{2}:?\\d{2})"), e = `${e}(${r.join("|")})`, new RegExp(`^${e}$`); } -function zc(t, e) { - return !!((e === "v4" || !e) && Fc.test(t) || (e === "v6" || !e) && Dc.test(t)); +function Zc(t, e) { + return !!((e === "v4" || !e) && Lc.test(t) || (e === "v6" || !e) && Fc.test(t)); } class ke extends $ { _parse(e) { @@ -5335,43 +5335,43 @@ class ke extends $ { message: a.message }), n.dirty()); } else if (a.kind === "email") - Mc.test(e.data) || (o = this._getOrReturnCtx(e, o), b(o, { + Oc.test(e.data) || (o = this._getOrReturnCtx(e, o), b(o, { validation: "email", code: g.invalid_string, message: a.message }), n.dirty()); else if (a.kind === "emoji") - en || (en = new RegExp(Lc, "u")), en.test(e.data) || (o = this._getOrReturnCtx(e, o), b(o, { + en || (en = new RegExp(Mc, "u")), en.test(e.data) || (o = this._getOrReturnCtx(e, o), b(o, { validation: "emoji", code: g.invalid_string, message: a.message }), n.dirty()); else if (a.kind === "uuid") - Nc.test(e.data) || (o = this._getOrReturnCtx(e, o), b(o, { + $c.test(e.data) || (o = this._getOrReturnCtx(e, o), b(o, { validation: "uuid", code: g.invalid_string, message: a.message }), n.dirty()); else if (a.kind === "nanoid") - Rc.test(e.data) || (o = this._getOrReturnCtx(e, o), b(o, { + Nc.test(e.data) || (o = this._getOrReturnCtx(e, o), b(o, { validation: "nanoid", code: g.invalid_string, message: a.message }), n.dirty()); else if (a.kind === "cuid") - Ic.test(e.data) || (o = this._getOrReturnCtx(e, o), b(o, { + Ac.test(e.data) || (o = this._getOrReturnCtx(e, o), b(o, { validation: "cuid", code: g.invalid_string, message: a.message }), n.dirty()); else if (a.kind === "cuid2") - Cc.test(e.data) || (o = this._getOrReturnCtx(e, o), b(o, { + Ic.test(e.data) || (o = this._getOrReturnCtx(e, o), b(o, { validation: "cuid2", code: g.invalid_string, message: a.message }), n.dirty()); else if (a.kind === "ulid") - $c.test(e.data) || (o = this._getOrReturnCtx(e, o), b(o, { + Cc.test(e.data) || (o = this._getOrReturnCtx(e, o), b(o, { validation: "ulid", code: g.invalid_string, message: a.message @@ -5403,27 +5403,27 @@ class ke extends $ { code: g.invalid_string, validation: { endsWith: a.value }, message: a.message - }), n.dirty()) : a.kind === "datetime" ? Ls(a).test(e.data) || (o = this._getOrReturnCtx(e, o), b(o, { + }), n.dirty()) : a.kind === "datetime" ? Ms(a).test(e.data) || (o = this._getOrReturnCtx(e, o), b(o, { code: g.invalid_string, validation: "datetime", message: a.message - }), n.dirty()) : a.kind === "date" ? jc.test(e.data) || (o = this._getOrReturnCtx(e, o), b(o, { + }), n.dirty()) : a.kind === "date" ? Uc.test(e.data) || (o = this._getOrReturnCtx(e, o), b(o, { code: g.invalid_string, validation: "date", message: a.message - }), n.dirty()) : a.kind === "time" ? Zc(a).test(e.data) || (o = this._getOrReturnCtx(e, o), b(o, { + }), n.dirty()) : a.kind === "time" ? jc(a).test(e.data) || (o = this._getOrReturnCtx(e, o), b(o, { code: g.invalid_string, validation: "time", message: a.message - }), n.dirty()) : a.kind === "duration" ? Oc.test(e.data) || (o = this._getOrReturnCtx(e, o), b(o, { + }), n.dirty()) : a.kind === "duration" ? Rc.test(e.data) || (o = this._getOrReturnCtx(e, o), b(o, { validation: "duration", code: g.invalid_string, message: a.message - }), n.dirty()) : a.kind === "ip" ? zc(e.data, a.version) || (o = this._getOrReturnCtx(e, o), b(o, { + }), n.dirty()) : a.kind === "ip" ? Zc(e.data, a.version) || (o = this._getOrReturnCtx(e, o), b(o, { validation: "ip", code: g.invalid_string, message: a.message - }), n.dirty()) : a.kind === "base64" ? Uc.test(e.data) || (o = this._getOrReturnCtx(e, o), b(o, { + }), n.dirty()) : a.kind === "base64" ? Dc.test(e.data) || (o = this._getOrReturnCtx(e, o), b(o, { validation: "base64", code: g.invalid_string, message: a.message @@ -5645,7 +5645,7 @@ ke.create = (t) => { ...C(t) }); }; -function Gc(t, e) { +function zc(t, e) { const r = (t.toString().split(".")[1] || "").length, n = (e.toString().split(".")[1] || "").length, o = r > n ? r : n, a = parseInt(t.toFixed(o).replace(".", "")), i = parseInt(e.toFixed(o).replace(".", "")); return a % i / Math.pow(10, o); } @@ -5684,7 +5684,7 @@ class Xe extends $ { inclusive: a.inclusive, exact: !1, message: a.message - }), o.dirty()) : a.kind === "multipleOf" ? Gc(e.data, a.value) !== 0 && (n = this._getOrReturnCtx(e, n), b(n, { + }), o.dirty()) : a.kind === "multipleOf" ? zc(e.data, a.value) !== 0 && (n = this._getOrReturnCtx(e, n), b(n, { code: g.not_multiple_of, multipleOf: a.value, message: a.message @@ -5949,7 +5949,7 @@ Qe.create = (t) => { ...C(t) }); }; -class zt extends $ { +class Zt extends $ { _parse(e) { if (this._def.coerce && (e.data = !!e.data), this._getType(e) !== w.boolean) { const n = this._getOrReturnCtx(e); @@ -5962,7 +5962,7 @@ class zt extends $ { return ae(e.data); } } -zt.create = (t) => new zt({ +Zt.create = (t) => new Zt({ typeName: A.ZodBoolean, coerce: (t == null ? void 0 : t.coerce) || !1, ...C(t) @@ -6062,7 +6062,7 @@ Pr.create = (t) => new Pr({ typeName: A.ZodSymbol, ...C(t) }); -class Gt extends $ { +class zt extends $ { _parse(e) { if (this._getType(e) !== w.undefined) { const n = this._getOrReturnCtx(e); @@ -6075,11 +6075,11 @@ class Gt extends $ { return ae(e.data); } } -Gt.create = (t) => new Gt({ +zt.create = (t) => new zt({ typeName: A.ZodUndefined, ...C(t) }); -class Bt extends $ { +class Gt extends $ { _parse(e) { if (this._getType(e) !== w.null) { const n = this._getOrReturnCtx(e); @@ -6092,7 +6092,7 @@ class Bt extends $ { return ae(e.data); } } -Bt.create = (t) => new Bt({ +Gt.create = (t) => new Gt({ typeName: A.ZodNull, ...C(t) }); @@ -6505,7 +6505,7 @@ class U extends $ { }); } keyof() { - return Fs(O.objectKeys(this.shape)); + return Ls(O.objectKeys(this.shape)); } } U.create = (t, e) => new U({ @@ -6529,7 +6529,7 @@ U.lazycreate = (t, e) => new U({ typeName: A.ZodObject, ...C(e) }); -class Ht extends $ { +class Bt extends $ { _parse(e) { const { ctx: r } = this._processInputParams(e), n = this._def.options; function o(a) { @@ -6597,12 +6597,12 @@ class Ht extends $ { return this._def.options; } } -Ht.create = (t, e) => new Ht({ +Bt.create = (t, e) => new Bt({ options: t, typeName: A.ZodUnion, ...C(e) }); -const Fe = (t) => t instanceof qt ? Fe(t.schema) : t instanceof Ae ? Fe(t.innerType()) : t instanceof Kt ? [t.value] : t instanceof et ? t.options : t instanceof Yt ? O.objectValues(t.enum) : t instanceof Jt ? Fe(t._def.innerType) : t instanceof Gt ? [void 0] : t instanceof Bt ? [null] : t instanceof Ne ? [void 0, ...Fe(t.unwrap())] : t instanceof tt ? [null, ...Fe(t.unwrap())] : t instanceof zn || t instanceof Qt ? Fe(t.unwrap()) : t instanceof Xt ? Fe(t._def.innerType) : []; +const Fe = (t) => t instanceof Wt ? Fe(t.schema) : t instanceof Ae ? Fe(t.innerType()) : t instanceof qt ? [t.value] : t instanceof et ? t.options : t instanceof Kt ? O.objectValues(t.enum) : t instanceof Yt ? Fe(t._def.innerType) : t instanceof zt ? [void 0] : t instanceof Gt ? [null] : t instanceof Ne ? [void 0, ...Fe(t.unwrap())] : t instanceof tt ? [null, ...Fe(t.unwrap())] : t instanceof Zn || t instanceof Xt ? Fe(t.unwrap()) : t instanceof Jt ? Fe(t._def.innerType) : []; class Zr extends $ { _parse(e) { const { ctx: r } = this._processInputParams(e); @@ -6692,7 +6692,7 @@ function hn(t, e) { } else return r === w.date && n === w.date && +t == +e ? { valid: !0, data: t } : { valid: !1 }; } -class Vt extends $ { +class Ht extends $ { _parse(e) { const { status: r, ctx: n } = this._processInputParams(e), o = (a, i) => { if (pn(a) || pn(i)) @@ -6724,7 +6724,7 @@ class Vt extends $ { })); } } -Vt.create = (t, e, r) => new Vt({ +Ht.create = (t, e, r) => new Ht({ left: t, right: e, typeName: A.ZodIntersection, @@ -6780,7 +6780,7 @@ Oe.create = (t, e) => { ...C(e) }); }; -class Wt extends $ { +class Vt extends $ { get keySchema() { return this._def.keyType; } @@ -6808,12 +6808,12 @@ class Wt extends $ { return this._def.valueType; } static create(e, r, n) { - return r instanceof $ ? new Wt({ + return r instanceof $ ? new Vt({ keyType: e, valueType: r, typeName: A.ZodRecord, ...C(n) - }) : new Wt({ + }) : new Vt({ keyType: ke.create(), valueType: e, typeName: A.ZodRecord, @@ -7034,7 +7034,7 @@ class xt extends $ { }); } } -class qt extends $ { +class Wt extends $ { get schema() { return this._def.getter(); } @@ -7043,12 +7043,12 @@ class qt extends $ { return this._def.getter()._parse({ data: r.data, path: r.path, parent: r }); } } -qt.create = (t, e) => new qt({ +Wt.create = (t, e) => new Wt({ getter: t, typeName: A.ZodLazy, ...C(e) }); -class Kt extends $ { +class qt extends $ { _parse(e) { if (e.data !== this._def.value) { const r = this._getOrReturnCtx(e); @@ -7064,12 +7064,12 @@ class Kt extends $ { return this._def.value; } } -Kt.create = (t, e) => new Kt({ +qt.create = (t, e) => new qt({ value: t, typeName: A.ZodLiteral, ...C(e) }); -function Fs(t, e) { +function Ls(t, e) { return new et({ values: t, typeName: A.ZodEnum, @@ -7089,7 +7089,7 @@ class et extends $ { code: g.invalid_type }), I; } - if (kr(this, Mt) || Rs(this, Mt, new Set(this._def.values)), !kr(this, Mt).has(e.data)) { + if (kr(this, Mt) || Ns(this, Mt, new Set(this._def.values)), !kr(this, Mt).has(e.data)) { const r = this._getOrReturnCtx(e), n = this._def.values; return b(r, { received: r.data, @@ -7134,8 +7134,8 @@ class et extends $ { } } Mt = /* @__PURE__ */ new WeakMap(); -et.create = Fs; -class Yt extends $ { +et.create = Ls; +class Kt extends $ { constructor() { super(...arguments), Lt.set(this, void 0); } @@ -7149,7 +7149,7 @@ class Yt extends $ { code: g.invalid_type }), I; } - if (kr(this, Lt) || Rs(this, Lt, new Set(O.getValidEnumValues(this._def.values))), !kr(this, Lt).has(e.data)) { + if (kr(this, Lt) || Ns(this, Lt, new Set(O.getValidEnumValues(this._def.values))), !kr(this, Lt).has(e.data)) { const o = O.objectValues(r); return b(n, { received: n.data, @@ -7164,7 +7164,7 @@ class Yt extends $ { } } Lt = /* @__PURE__ */ new WeakMap(); -Yt.create = (t, e) => new Yt({ +Kt.create = (t, e) => new Kt({ values: t, typeName: A.ZodNativeEnum, ...C(e) @@ -7259,14 +7259,14 @@ class Ae extends $ { path: n.path, parent: n }); - if (!jt(i)) + if (!Ut(i)) return i; const c = o.transform(i.value, a); if (c instanceof Promise) throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead."); return { status: r.value, value: c }; } else - return this._def.schema._parseAsync({ data: n.data, path: n.path, parent: n }).then((i) => jt(i) ? Promise.resolve(o.transform(i.value, a)).then((c) => ({ status: r.value, value: c })) : i); + return this._def.schema._parseAsync({ data: n.data, path: n.path, parent: n }).then((i) => Ut(i) ? Promise.resolve(o.transform(i.value, a)).then((c) => ({ status: r.value, value: c })) : i); O.assertNever(o); } } @@ -7308,7 +7308,7 @@ tt.create = (t, e) => new tt({ typeName: A.ZodNullable, ...C(e) }); -class Jt extends $ { +class Yt extends $ { _parse(e) { const { ctx: r } = this._processInputParams(e); let n = r.data; @@ -7322,13 +7322,13 @@ class Jt extends $ { return this._def.innerType; } } -Jt.create = (t, e) => new Jt({ +Yt.create = (t, e) => new Yt({ innerType: t, typeName: A.ZodDefault, defaultValue: typeof e.default == "function" ? e.default : () => e.default, ...C(e) }); -class Xt extends $ { +class Jt extends $ { _parse(e) { const { ctx: r } = this._processInputParams(e), n = { ...r, @@ -7343,7 +7343,7 @@ class Xt extends $ { ...n } }); - return Zt(o) ? o.then((a) => ({ + return jt(o) ? o.then((a) => ({ status: "valid", value: a.status === "valid" ? a.value : this._def.catchValue({ get error() { @@ -7365,7 +7365,7 @@ class Xt extends $ { return this._def.innerType; } } -Xt.create = (t, e) => new Xt({ +Jt.create = (t, e) => new Jt({ innerType: t, typeName: A.ZodCatch, catchValue: typeof e.catch == "function" ? e.catch : () => e.catch, @@ -7388,8 +7388,8 @@ Ir.create = (t) => new Ir({ typeName: A.ZodNaN, ...C(t) }); -const Bc = Symbol("zod_brand"); -class zn extends $ { +const Gc = Symbol("zod_brand"); +class Zn extends $ { _parse(e) { const { ctx: r } = this._processInputParams(e), n = r.data; return this._def.type._parse({ @@ -7402,7 +7402,7 @@ class zn extends $ { return this._def.type; } } -class sr extends $ { +class or extends $ { _parse(e) { const { status: r, ctx: n } = this._processInputParams(e); if (n.common.async) @@ -7435,28 +7435,28 @@ class sr extends $ { } } static create(e, r) { - return new sr({ + return new or({ in: e, out: r, typeName: A.ZodPipeline }); } } -class Qt extends $ { +class Xt extends $ { _parse(e) { - const r = this._def.innerType._parse(e), n = (o) => (jt(o) && (o.value = Object.freeze(o.value)), o); - return Zt(r) ? r.then((o) => n(o)) : n(r); + const r = this._def.innerType._parse(e), n = (o) => (Ut(o) && (o.value = Object.freeze(o.value)), o); + return jt(r) ? r.then((o) => n(o)) : n(r); } unwrap() { return this._def.innerType; } } -Qt.create = (t, e) => new Qt({ +Xt.create = (t, e) => new Xt({ innerType: t, typeName: A.ZodReadonly, ...C(e) }); -function Ds(t, e = {}, r) { +function Fs(t, e = {}, r) { return t ? At.create().superRefine((n, o) => { var a, i; if (!t(n)) { @@ -7465,32 +7465,32 @@ function Ds(t, e = {}, r) { } }) : At.create(); } -const Hc = { +const Bc = { object: U.lazycreate }; var A; (function(t) { t.ZodString = "ZodString", t.ZodNumber = "ZodNumber", t.ZodNaN = "ZodNaN", t.ZodBigInt = "ZodBigInt", t.ZodBoolean = "ZodBoolean", t.ZodDate = "ZodDate", t.ZodSymbol = "ZodSymbol", t.ZodUndefined = "ZodUndefined", t.ZodNull = "ZodNull", t.ZodAny = "ZodAny", t.ZodUnknown = "ZodUnknown", t.ZodNever = "ZodNever", t.ZodVoid = "ZodVoid", t.ZodArray = "ZodArray", t.ZodObject = "ZodObject", t.ZodUnion = "ZodUnion", t.ZodDiscriminatedUnion = "ZodDiscriminatedUnion", t.ZodIntersection = "ZodIntersection", t.ZodTuple = "ZodTuple", t.ZodRecord = "ZodRecord", t.ZodMap = "ZodMap", t.ZodSet = "ZodSet", t.ZodFunction = "ZodFunction", t.ZodLazy = "ZodLazy", t.ZodLiteral = "ZodLiteral", t.ZodEnum = "ZodEnum", t.ZodEffects = "ZodEffects", t.ZodNativeEnum = "ZodNativeEnum", t.ZodOptional = "ZodOptional", t.ZodNullable = "ZodNullable", t.ZodDefault = "ZodDefault", t.ZodCatch = "ZodCatch", t.ZodPromise = "ZodPromise", t.ZodBranded = "ZodBranded", t.ZodPipeline = "ZodPipeline", t.ZodReadonly = "ZodReadonly"; })(A || (A = {})); -const Vc = (t, e = { +const Hc = (t, e = { message: `Input not instance of ${t.name}` -}) => Ds((r) => r instanceof t, e), Us = ke.create, js = Xe.create, Wc = Ir.create, qc = Qe.create, Zs = zt.create, Kc = pt.create, Yc = Pr.create, Jc = Gt.create, Xc = Bt.create, Qc = At.create, el = dt.create, tl = je.create, rl = Tr.create, nl = Te.create, ol = U.create, sl = U.strictCreate, al = Ht.create, il = Zr.create, cl = Vt.create, ll = Oe.create, ul = Wt.create, dl = Ar.create, fl = mt.create, pl = xt.create, ml = qt.create, hl = Kt.create, gl = et.create, yl = Yt.create, vl = It.create, bo = Ae.create, _l = Ne.create, bl = tt.create, wl = Ae.createWithPreprocess, Sl = sr.create, El = () => Us().optional(), xl = () => js().optional(), kl = () => Zs().optional(), Pl = { +}) => Fs((r) => r instanceof t, e), Ds = ke.create, Us = Xe.create, Vc = Ir.create, Wc = Qe.create, js = Zt.create, qc = pt.create, Kc = Pr.create, Yc = zt.create, Jc = Gt.create, Xc = At.create, Qc = dt.create, el = je.create, tl = Tr.create, rl = Te.create, nl = U.create, ol = U.strictCreate, sl = Bt.create, al = Zr.create, il = Ht.create, cl = Oe.create, ll = Vt.create, ul = Ar.create, dl = mt.create, fl = xt.create, pl = Wt.create, ml = qt.create, hl = et.create, gl = Kt.create, yl = It.create, _o = Ae.create, vl = Ne.create, _l = tt.create, bl = Ae.createWithPreprocess, wl = or.create, Sl = () => Ds().optional(), El = () => Us().optional(), xl = () => js().optional(), kl = { string: (t) => ke.create({ ...t, coerce: !0 }), number: (t) => Xe.create({ ...t, coerce: !0 }), - boolean: (t) => zt.create({ + boolean: (t) => Zt.create({ ...t, coerce: !0 }), bigint: (t) => Qe.create({ ...t, coerce: !0 }), date: (t) => pt.create({ ...t, coerce: !0 }) -}, Tl = I; -var Z = /* @__PURE__ */ Object.freeze({ +}, Pl = I; +var W = /* @__PURE__ */ Object.freeze({ __proto__: null, defaultErrorMap: Tt, - setErrorMap: Tc, + setErrorMap: Pc, getErrorMap: Er, makeIssue: xr, - EMPTY_PATH: Ac, + EMPTY_PATH: Tc, addIssueToContext: b, ParseStatus: Q, INVALID: I, @@ -7498,8 +7498,8 @@ var Z = /* @__PURE__ */ Object.freeze({ OK: ae, isAborted: pn, isDirty: mn, - isValid: jt, - isAsync: Zt, + isValid: Ut, + isAsync: jt, get util() { return O; }, @@ -7509,102 +7509,102 @@ var Z = /* @__PURE__ */ Object.freeze({ ZodParsedType: w, getParsedType: Ve, ZodType: $, - datetimeRegex: Ls, + datetimeRegex: Ms, ZodString: ke, ZodNumber: Xe, ZodBigInt: Qe, - ZodBoolean: zt, + ZodBoolean: Zt, ZodDate: pt, ZodSymbol: Pr, - ZodUndefined: Gt, - ZodNull: Bt, + ZodUndefined: zt, + ZodNull: Gt, ZodAny: At, ZodUnknown: dt, ZodNever: je, ZodVoid: Tr, ZodArray: Te, ZodObject: U, - ZodUnion: Ht, + ZodUnion: Bt, ZodDiscriminatedUnion: Zr, - ZodIntersection: Vt, + ZodIntersection: Ht, ZodTuple: Oe, - ZodRecord: Wt, + ZodRecord: Vt, ZodMap: Ar, ZodSet: mt, ZodFunction: xt, - ZodLazy: qt, - ZodLiteral: Kt, + ZodLazy: Wt, + ZodLiteral: qt, ZodEnum: et, - ZodNativeEnum: Yt, + ZodNativeEnum: Kt, ZodPromise: It, ZodEffects: Ae, ZodTransformer: Ae, ZodOptional: Ne, ZodNullable: tt, - ZodDefault: Jt, - ZodCatch: Xt, + ZodDefault: Yt, + ZodCatch: Jt, ZodNaN: Ir, - BRAND: Bc, - ZodBranded: zn, - ZodPipeline: sr, - ZodReadonly: Qt, - custom: Ds, + BRAND: Gc, + ZodBranded: Zn, + ZodPipeline: or, + ZodReadonly: Xt, + custom: Fs, Schema: $, ZodSchema: $, - late: Hc, + late: Bc, get ZodFirstPartyTypeKind() { return A; }, - coerce: Pl, - any: Qc, - array: nl, - bigint: qc, - boolean: Zs, - date: Kc, - discriminatedUnion: il, - effect: bo, - enum: gl, - function: pl, - instanceof: Vc, - intersection: cl, - lazy: ml, - literal: hl, - map: dl, - nan: Wc, - nativeEnum: yl, - never: tl, - null: Xc, - nullable: bl, - number: js, - object: ol, - oboolean: kl, - onumber: xl, - optional: _l, - ostring: El, - pipeline: Sl, - preprocess: wl, - promise: vl, - record: ul, - set: fl, - strictObject: sl, - string: Us, - symbol: Yc, - transformer: bo, - tuple: ll, - undefined: Jc, - union: al, - unknown: el, - void: rl, - NEVER: Tl, + coerce: kl, + any: Xc, + array: rl, + bigint: Wc, + boolean: js, + date: qc, + discriminatedUnion: al, + effect: _o, + enum: hl, + function: fl, + instanceof: Hc, + intersection: il, + lazy: pl, + literal: ml, + map: ul, + nan: Vc, + nativeEnum: gl, + never: el, + null: Jc, + nullable: _l, + number: Us, + object: nl, + oboolean: xl, + onumber: El, + optional: vl, + ostring: Sl, + pipeline: wl, + preprocess: bl, + promise: yl, + record: ll, + set: dl, + strictObject: ol, + string: Ds, + symbol: Kc, + transformer: _o, + tuple: cl, + undefined: Yc, + union: sl, + unknown: Qc, + void: tl, + NEVER: Pl, ZodIssueCode: g, - quotelessJson: Pc, + quotelessJson: kc, ZodError: fe }); -const Al = Z.object({ - width: Z.number().positive(), - height: Z.number().positive() +const Tl = W.object({ + width: W.number().positive(), + height: W.number().positive() }); -function Il(t, e, r, n) { +function Al(t, e, r, n) { const o = document.createElement("plugin-modal"); o.setTheme(r); const a = 200, i = 200, c = 335, l = 590, u = { @@ -7622,20 +7622,20 @@ function Il(t, e, r, n) { let m = Math.min((n == null ? void 0 : n.width) || c, d), p = Math.min((n == null ? void 0 : n.height) || l, f); return m = Math.max(m, a), p = Math.max(p, i), o.setAttribute("title", t), o.setAttribute("iframe-src", e), o.setAttribute("width", String(m)), o.setAttribute("height", String(p)), document.body.appendChild(o), o; } -const Cl = Z.function().args( - Z.string(), - Z.string(), - Z.enum(["dark", "light"]), - Al.optional() -).implement((t, e, r, n) => Il(t, e, r, n)), $l = Z.object({ - pluginId: Z.string(), - name: Z.string(), - host: Z.string().url(), - code: Z.string(), - icon: Z.string().optional(), - description: Z.string().max(200).optional(), - permissions: Z.array( - Z.enum([ +const Il = W.function().args( + W.string(), + W.string(), + W.enum(["dark", "light"]), + Tl.optional() +).implement((t, e, r, n) => Al(t, e, r, n)), Cl = W.object({ + pluginId: W.string(), + name: W.string(), + host: W.string().url(), + code: W.string(), + icon: W.string().optional(), + description: W.string().max(200).optional(), + permissions: W.array( + W.enum([ "content:read", "content:write", "library:read", @@ -7644,51 +7644,52 @@ const Cl = Z.function().args( ]) ) }); -function zs(t, e) { +function Zs(t, e) { return new URL(e, t).toString(); } -function Nl(t) { +function $l(t) { return fetch(t).then((e) => e.json()).then((e) => { - if (!$l.safeParse(e).success) + if (!Cl.safeParse(e).success) throw new Error("Invalid plugin manifest"); return e; }).catch((e) => { throw console.error(e), e; }); } -function Rl(t) { - return fetch(zs(t.host, t.code)).then((e) => { +function Nl(t) { + return fetch(Zs(t.host, t.code)).then((e) => { if (e.ok) return e.text(); throw new Error("Failed to load plugin code"); }); } -const gn = [ +const Rl = [ "finish", "pagechange", "filechange", "selectionchange", - "themechange" + "themechange", + "shapechange", + "contentsave" ]; -let yn = [], vn = /* @__PURE__ */ new Set([]); -const Ft = /* @__PURE__ */ new Map(); +let gn = [], yn = /* @__PURE__ */ new Set([]), dr = {}; window.addEventListener("message", (t) => { try { - for (const e of yn) + for (const e of gn) e(t.data); } catch (e) { console.error(e); } }); -function Ol(t, e) { - t === "themechange" && vn.forEach((n) => { - n.setTheme(e); - }), (Ft.get(t) || []).forEach((n) => n(e)); +function Ol(t) { + yn.forEach((e) => { + e.setTheme(t); + }); } function Ml(t, e) { let r = null; const n = () => { - r && (vn.delete(r), r.removeEventListener("close", n), r.remove()), yn = [], r = null; + r && (yn.delete(r), r.removeEventListener("close", n), r.remove()), gn = [], r = null; }, o = (i) => { if (!e.permissions.includes(i)) throw new Error(`Permission ${i} is not granted`); @@ -7697,14 +7698,14 @@ function Ml(t, e) { ui: { open: (i, c, l) => { const u = t.getTheme(); - r = Cl( + r = Il( i, - zs(e.host, c), + Zs(e.host, c), u, l ), r.setTheme(u), r.addEventListener("close", n, { once: !0 - }), vn.add(r); + }), yn.add(r); }, sendMessage(i) { const c = new CustomEvent("message", { @@ -7713,7 +7714,7 @@ function Ml(t, e) { r == null || r.dispatchEvent(c); }, onMessage: (i) => { - Z.function().parse(i), yn.push(i); + W.function().parse(i), gn.push(i); } }, utils: { @@ -7753,18 +7754,14 @@ function Ml(t, e) { } }, closePlugin: n, - on(i, c) { - Z.enum(gn).parse(i), Z.function().parse(c), o("content:read"); - const l = Ft.get(i) || []; - l.push(c), Ft.set(i, l); + on(i, c, l) { + W.enum(Rl).parse(i), W.function().parse(c), o("content:read"); + const u = t.addListener(i, c, l); + return dr[i] || (dr[i] = /* @__PURE__ */ new Map()), dr[i].set(c, u), u; }, off(i, c) { - Z.enum(gn).parse(i), Z.function().parse(c); - const l = Ft.get(i) || []; - Ft.set( - i, - l.filter((u) => u !== c) - ); + let l; + typeof i == "symbol" ? l = i : c && (l = dr[i].get(c)), l && t.removeListener(l); }, // Penpot State API get root() { @@ -7856,21 +7853,20 @@ function Ml(t, e) { } }; } -let wo = !1, fr = []; +let bo = !1, fr = []; const Ll = !1; -let _n = null; +let vn = null; function Fl(t) { - _n = t; + vn = t; } -const Gs = async function(t) { +const zs = async function(t) { try { - const e = _n && _n(t.pluginId); + const e = vn && vn(t.pluginId); if (!e) return; - for (const i of gn) - e.addListener(i, Ol.bind(null, i)); - const r = await Rl(t); - wo || (wo = !0, hardenIntrinsics()), fr && !Ll && fr.forEach((i) => { + e.addListener("themechange", (i) => Ol(i)); + const r = await Nl(t); + bo || (bo = !0, hardenIntrinsics()), fr && !Ll && fr.forEach((i) => { i.closePlugin(); }); const n = Ml(e, t); @@ -7903,8 +7899,8 @@ const Gs = async function(t) { console.error(e); } }, Dl = async function(t) { - const e = await Nl(t); - Gs(e); + const e = await $l(t); + zs(e); }; console.log("%c[PLUGINS] Loading plugin system", "color: #008d7c"); repairIntrinsics({ @@ -7913,10 +7909,10 @@ repairIntrinsics({ errorTaming: "unsafe", consoleTaming: "unsafe" }); -const So = globalThis; -So.initPluginsRuntime = (t) => { +const wo = globalThis; +wo.initPluginsRuntime = (t) => { try { - console.log("%c[PLUGINS] Initialize runtime", "color: #008d7c"), Fl(t), So.ɵcontext = t("TEST"), globalThis.ɵloadPlugin = Gs, globalThis.ɵloadPluginByUrl = Dl; + console.log("%c[PLUGINS] Initialize runtime", "color: #008d7c"), Fl(t), wo.ɵcontext = t("TEST"), globalThis.ɵloadPlugin = zs, globalThis.ɵloadPluginByUrl = Dl; } catch (e) { console.error(e); } From d52f2b18a5362096269fa63b4c2e7f1dce16af50 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Fri, 12 Jul 2024 10:13:55 +0200 Subject: [PATCH 403/476] :sparkles: Add context to OIDC errors --- backend/src/app/auth/oidc.clj | 32 ++++++++++++++++++++++---------- 1 file changed, 22 insertions(+), 10 deletions(-) diff --git a/backend/src/app/auth/oidc.clj b/backend/src/app/auth/oidc.clj index 5b34ca10ac..1bcbbda322 100644 --- a/backend/src/app/auth/oidc.clj +++ b/backend/src/app/auth/oidc.clj @@ -19,6 +19,7 @@ [app.email.blacklist :as email.blacklist] [app.email.whitelist :as email.whitelist] [app.http.client :as http] + [app.http.errors :as errors] [app.http.session :as session] [app.loggers.audit :as audit] [app.rpc.commands.profile :as profile] @@ -208,8 +209,9 @@ (ex/raise :type :internal :code :unable-to-retrieve-github-emails :hint "unable to retrieve github emails" - :http-status status - :http-body body)) + :request-uri (:uri params) + :response-status status + :response-body body)) (->> body json/decode (filter :primary) first :email)))) @@ -324,7 +326,7 @@ :uri (:token-uri provider) :body (u/map->query-string params)}] - (l/trace :hint "request access token" + (l/trace :hint "fetch access token" :provider (:name provider) :client-id (:client-id provider) :client-secret (obfuscate-string (:client-secret provider)) @@ -332,7 +334,7 @@ :redirect-uri (:redirect_uri params)) (let [{:keys [status body]} (http/req! cfg req {:sync? true})] - (l/trace :hint "access token response" :status status :body body) + (l/trace :hint "access token fetched" :status status :body body) (if (= status 200) (let [data (json/decode body)] {:token/access (get data :access_token) @@ -340,10 +342,11 @@ :token/type (get data :token_type)}) (ex/raise :type :internal - :code :unable-to-retrieve-token - :hint "unable to retrieve token" - :http-status status - :http-body body))))) + :code :unable-to-fetch-access-token + :hint "unable to fetch access token" + :request-uri (:uri req) + :response-status status + :response-body body))))) (defn- process-user-info [provider tdata info] @@ -601,7 +604,7 @@ ::rres/body {:redirect-uri uri}})) (defn- callback-handler - [cfg request] + [{:keys [::provider] :as cfg} request] (try (if-let [error (dm/get-in request [:params :error])] (redirect-with-error "unable-to-auth" error) @@ -609,7 +612,16 @@ profile (get-profile cfg info)] (process-callback cfg request info profile))) (catch Throwable cause - (l/err :hint "error on oauth process" :cause cause) + (binding [l/*context* (-> (errors/request->context request) + (assoc :auth/provider (:name provider)))] + (let [edata (ex-data cause)] + (cond + (= :validation (:type edata)) + (l/wrn :hint "invalid token received" :cause cause) + + :else + (l/err :hint "error on oauth process" :cause cause)))) + (redirect-with-error "unable-to-auth" (ex-message cause))))) (def provider-lookup From f4b59cc5a0fbb721c8aff9bfaccfe97338f19835 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Fri, 12 Jul 2024 10:20:24 +0200 Subject: [PATCH 404/476] :sparkles: Normalize external-session-id parsing from request --- backend/src/app/auth/oidc.clj | 30 +++++++++++++++++++++--------- backend/src/app/rpc.clj | 18 ++++++++++++++++-- 2 files changed, 37 insertions(+), 11 deletions(-) diff --git a/backend/src/app/auth/oidc.clj b/backend/src/app/auth/oidc.clj index 1bcbbda322..64f9f534f5 100644 --- a/backend/src/app/auth/oidc.clj +++ b/backend/src/app/auth/oidc.clj @@ -22,6 +22,7 @@ [app.http.errors :as errors] [app.http.session :as session] [app.loggers.audit :as audit] + [app.rpc :as rpc] [app.rpc.commands.profile :as profile] [app.setup :as-alias setup] [app.tokens :as tokens] @@ -589,17 +590,28 @@ (redirect-to-register cfg info request) (redirect-with-error "registration-disabled"))))) +(defn- get-external-session-id + [request] + (let [session-id (rreq/get-header request "x-external-session-id")] + (when (string? session-id) + (if (or (> (count session-id) 256) + (= session-id "null") + (str/blank? session-id)) + nil + session-id)))) + (defn- auth-handler [cfg {:keys [params] :as request}] - (let [props (audit/extract-utm-params params) - esid (rreq/get-header request "x-external-session-id") - state (tokens/generate (::setup/props cfg) - {:iss :oauth - :invitation-token (:invitation-token params) - :external-session-id esid - :props props - :exp (dt/in-future "4h")}) - uri (build-auth-uri cfg state)] + (let [props (audit/extract-utm-params params) + esid (rpc/get-external-session-id request) + params {:iss :oauth + :invitation-token (:invitation-token params) + :external-session-id esid + :props props + :exp (dt/in-future "4h")} + state (tokens/generate (::setup/props cfg) + (d/without-nils params)) + uri (build-auth-uri cfg state)] {::rres/status 200 ::rres/body {:redirect-uri uri}})) diff --git a/backend/src/app/rpc.clj b/backend/src/app/rpc.clj index fb68076515..9ee6a0abb3 100644 --- a/backend/src/app/rpc.clj +++ b/backend/src/app/rpc.clj @@ -70,6 +70,20 @@ (handle-response-transformation request mdata) (handle-before-comple-hook mdata)))) +(defn get-external-session-id + [request] + (when-let [session-id (rreq/get-header request "x-external-session-id")] + (when-not (or (> (count session-id) 256) + (= session-id "null") + (str/blank? session-id)) + session-id))) + +(defn- get-external-event-origin + [request] + (when-let [origin (rreq/get-header request "x-event-origin")] + (when-not (> (count origin) 256) + origin))) + (defn- rpc-handler "Ring handler that dispatches cmd requests and convert between internal async flow into ring async flow." @@ -79,8 +93,8 @@ profile-id (or (::session/profile-id request) (::actoken/profile-id request)) - session-id (rreq/get-header request "x-external-session-id") - event-origin (rreq/get-header request "x-event-origin") + session-id (get-external-session-id request) + event-origin (get-external-event-origin request) data (-> params (assoc ::handler-name handler-name) From a54160965da8d2e39397cfef5e98d8e66046b613 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Fri, 12 Jul 2024 10:42:59 +0200 Subject: [PATCH 405/476] :bug: Fix ip-addr parsing issue when it comes with port --- backend/src/app/loggers/audit.clj | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/backend/src/app/loggers/audit.clj b/backend/src/app/loggers/audit.clj index 3ef9e94e88..17a0444595 100644 --- a/backend/src/app/loggers/audit.clj +++ b/backend/src/app/loggers/audit.clj @@ -35,9 +35,13 @@ (defn parse-client-ip [request] - (or (some-> (rreq/get-header request "x-forwarded-for") (str/split ",") first) - (rreq/get-header request "x-real-ip") - (some-> (rreq/remote-addr request) str))) + (let [ip-addr (or (some-> (rreq/get-header request "x-forwarded-for") (str/split ",") first) + (rreq/get-header request "x-real-ip") + (some-> (rreq/remote-addr request) str)) + ip-addr (-> ip-addr + (str/split ":" 2) + (first))] + ip-addr)) (defn extract-utm-params "Extracts additional data from params and namespace them under From 3b48be808c97d7a2e14408cccba688a7b45c275c Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Fri, 12 Jul 2024 13:39:32 +0200 Subject: [PATCH 406/476] :lipstick: Add minor naming change on calling logging on oidc ns --- backend/src/app/auth/oidc.clj | 78 +++++++++++++++++------------------ 1 file changed, 39 insertions(+), 39 deletions(-) diff --git a/backend/src/app/auth/oidc.clj b/backend/src/app/auth/oidc.clj index 64f9f534f5..ab82352fa7 100644 --- a/backend/src/app/auth/oidc.clj +++ b/backend/src/app/auth/oidc.clj @@ -147,18 +147,18 @@ (when (contains? cf/flags :login-with-oidc) (if-let [opts (prepare-oidc-opts cfg)] (let [jwks (fetch-oidc-jwks cfg opts)] - (l/info :hint "provider initialized" - :provider "oidc" - :method (if (:discover? opts) "discover" "manual") - :client-id (:client-id opts) - :client-secret (obfuscate-string (:client-secret opts)) - :scopes (str/join "," (:scopes opts)) - :auth-uri (:auth-uri opts) - :user-uri (:user-uri opts) - :token-uri (:token-uri opts) - :roles-attr (:roles-attr opts) - :roles (:roles opts) - :keys (str/join "," (map str (keys jwks)))) + (l/inf :hint "provider initialized" + :provider "oidc" + :method (if (:discover? opts) "discover" "manual") + :client-id (:client-id opts) + :client-secret (obfuscate-string (:client-secret opts)) + :scopes (str/join "," (:scopes opts)) + :auth-uri (:auth-uri opts) + :user-uri (:user-uri opts) + :token-uri (:token-uri opts) + :roles-attr (:roles-attr opts) + :roles (:roles opts) + :keys (str/join "," (map str (keys jwks)))) (assoc opts :jwks jwks)) (do (l/warn :hint "unable to initialize auth provider, missing configuration" :provider "oidc") @@ -182,10 +182,10 @@ (if (and (string? (:client-id opts)) (string? (:client-secret opts))) (do - (l/info :hint "provider initialized" - :provider "google" - :client-id (:client-id opts) - :client-secret (obfuscate-string (:client-secret opts))) + (l/inf :hint "provider initialized" + :provider "google" + :client-id (:client-id opts) + :client-secret (obfuscate-string (:client-secret opts))) opts) (do @@ -237,10 +237,10 @@ (if (and (string? (:client-id opts)) (string? (:client-secret opts))) (do - (l/info :hint "provider initialized" - :provider "github" - :client-id (:client-id opts) - :client-secret (obfuscate-string (:client-secret opts))) + (l/inf :hint "provider initialized" + :provider "github" + :client-id (:client-id opts) + :client-secret (obfuscate-string (:client-secret opts))) opts) (do @@ -266,11 +266,11 @@ (if (and (string? (:client-id opts)) (string? (:client-secret opts))) (do - (l/info :hint "provider initialized" - :provider "gitlab" - :base-uri base - :client-id (:client-id opts) - :client-secret (obfuscate-string (:client-secret opts))) + (l/inf :hint "provider initialized" + :provider "gitlab" + :base-uri base + :client-id (:client-id opts) + :client-secret (obfuscate-string (:client-secret opts))) opts) (do @@ -327,15 +327,15 @@ :uri (:token-uri provider) :body (u/map->query-string params)}] - (l/trace :hint "fetch access token" - :provider (:name provider) - :client-id (:client-id provider) - :client-secret (obfuscate-string (:client-secret provider)) - :grant-type (:grant_type params) - :redirect-uri (:redirect_uri params)) + (l/trc :hint "fetch access token" + :provider (:name provider) + :client-id (:client-id provider) + :client-secret (obfuscate-string (:client-secret provider)) + :grant-type (:grant_type params) + :redirect-uri (:redirect_uri params)) (let [{:keys [status body]} (http/req! cfg req {:sync? true})] - (l/trace :hint "access token fetched" :status status :body body) + (l/trc :hint "access token fetched" :status status :body body) (if (= status 200) (let [data (json/decode body)] {:token/access (get data :access_token) @@ -374,9 +374,9 @@ (defn- fetch-user-info [{:keys [::provider] :as cfg} tdata] - (l/trace :hint "fetch user info" - :uri (:user-uri provider) - :token (obfuscate-string (:token/access tdata))) + (l/trc :hint "fetch user info" + :uri (:user-uri provider) + :token (obfuscate-string (:token/access tdata))) (let [params {:uri (:user-uri provider) :headers {"Authorization" (str (:token/type tdata) " " (:token/access tdata))} @@ -384,9 +384,9 @@ :method :get} response (http/req! cfg params {:sync? true})] - (l/trace :hint "user info response" - :status (:status response) - :body (:body response)) + (l/trc :hint "user info response" + :status (:status response) + :body (:body response)) (when-not (s/int-in-range? 200 300 (:status response)) (ex/raise :type :internal @@ -436,7 +436,7 @@ info (process-user-info provider tdata info)] - (l/trace :hint "user info" :info info) + (l/trc :hint "user info" :info info) (when-not (s/valid? ::info info) (l/warn :hint "received incomplete profile info object (please set correct scopes)" :info info) From 271be57c9912c1f3c3d3792e416439c1df1aca37 Mon Sep 17 00:00:00 2001 From: Eva Marco Date: Wed, 10 Jul 2024 11:43:24 +0200 Subject: [PATCH 407/476] :sparkles: Add loader component to the ds --- frontend/src/app/main/ui/ds.cljs | 2 + .../src/app/main/ui/ds/product/loader.cljs | 38 +++++++++++++++++++ .../src/app/main/ui/ds/product/loader.scss | 25 ++++++++++++ .../app/main/ui/ds/product/loader.stories.jsx | 18 +++++++++ 4 files changed, 83 insertions(+) create mode 100644 frontend/src/app/main/ui/ds/product/loader.cljs create mode 100644 frontend/src/app/main/ui/ds/product/loader.scss create mode 100644 frontend/src/app/main/ui/ds/product/loader.stories.jsx diff --git a/frontend/src/app/main/ui/ds.cljs b/frontend/src/app/main/ui/ds.cljs index 150048e7a2..43b1b61045 100644 --- a/frontend/src/app/main/ui/ds.cljs +++ b/frontend/src/app/main/ui/ds.cljs @@ -11,12 +11,14 @@ [app.main.ui.ds.foundations.typography :refer [typography-list]] [app.main.ui.ds.foundations.typography.heading :refer [heading*]] [app.main.ui.ds.foundations.typography.text :refer [text*]] + [app.main.ui.ds.product.loader :refer [loader*]] [app.main.ui.ds.storybook :as sb])) (def default "A export used for storybook" #js {:Heading heading* :Icon icon* + :Loader loader* :RawSvg raw-svg* :Text text* ;; meta / misc diff --git a/frontend/src/app/main/ui/ds/product/loader.cljs b/frontend/src/app/main/ui/ds/product/loader.cljs new file mode 100644 index 0000000000..8c6ad6ce91 --- /dev/null +++ b/frontend/src/app/main/ui/ds/product/loader.cljs @@ -0,0 +1,38 @@ +;; This Source Code Form is subject to the terms of the Mozilla Public +;; License, v. 2.0. If a copy of the MPL was not distributed with this +;; file, You can obtain one at http://mozilla.org/MPL/2.0/. +;; +;; Copyright (c) KALEIDOS INC + +(ns app.main.ui.ds.product.loader + (:require-macros + [app.common.data.macros :as dm] + [app.main.style :as stl]) + (:require + [rumext.v2 :as mf])) + +(mf/defc loader* + {::mf/props :obj} + [{:keys [class width height title] :rest props}] + (let [class (dm/str (or class "") " " (stl/css :loader)) + both-provided (and width height) + neither-provided (and (nil? width) (nil? height)) + props (mf/spread-props props {:viewBox "0 0 677.34762 182.15429" + :role "status" + :width (or width "100px") + :height (or height "27px") + :class class})] + (assert (or both-provided neither-provided) + (dm/str "Invalid props: both 'width' and 'height' must be provided or neither. " + "Received width: " width ", height: " height)) + ;; TODO: Add a translated label insted of the title prop. + (assert title + (dm/str "You must provide an accesible name for the component")) + [:> "svg" props + [:title title] + [:g + [:path {:d + "M128.273 0l-3.9 2.77L0 91.078l128.273 91.076 549.075-.006V.008L128.273 0zm20.852 30l498.223.006V152.15l-498.223.007V30zm-25 9.74v102.678l-49.033-34.813-.578-32.64 49.61-35.225z"}] + [:path {:class (stl/css :loader-line) + :d + "M134.482 157.147v25l518.57.008.002-25-518.572-.008z"}]]])) diff --git a/frontend/src/app/main/ui/ds/product/loader.scss b/frontend/src/app/main/ui/ds/product/loader.scss new file mode 100644 index 0000000000..67564586e0 --- /dev/null +++ b/frontend/src/app/main/ui/ds/product/loader.scss @@ -0,0 +1,25 @@ +// This Source Code Form is subject to the terms of the Mozilla Public +// License, v. 2.0. If a copy of the MPL was not distributed with this +// file, You can obtain one at http://mozilla.org/MPL/2.0/. +// +// Copyright (c) KALEIDOS INC + +@keyframes line-pencil { + 0% { + transform: translateY(0); + } + + 100% { + transform: translateY(-150px); + } +} + +.loader { + --color-loader-foreground: var(--color-foreground-secondary); + fill: var(--color-loader-foreground); +} + +.loader-line { + fill: var(--color-loader-foreground); + animation: line-pencil 0.8s infinite linear; +} diff --git a/frontend/src/app/main/ui/ds/product/loader.stories.jsx b/frontend/src/app/main/ui/ds/product/loader.stories.jsx new file mode 100644 index 0000000000..963c3f2541 --- /dev/null +++ b/frontend/src/app/main/ui/ds/product/loader.stories.jsx @@ -0,0 +1,18 @@ +import * as React from "react"; +import Components from "@target/components"; + +const { Loader } = Components; +const { StoryWrapper } = Components.storybook; + +export default { + title: "Product/Loader", + component: Components.Loader, +}; + +export const Default = { + render: () => ( + + + + ), +}; From 8dfc97d875b01582e8cc76318d6196096eb1846c Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Fri, 12 Jul 2024 14:03:48 +0200 Subject: [PATCH 408/476] :sparkles: Add jwks loading on gitlab oidc provider --- backend/src/app/auth/oidc.clj | 25 +++++++++++++++---------- backend/src/app/main.clj | 2 +- 2 files changed, 16 insertions(+), 11 deletions(-) diff --git a/backend/src/app/auth/oidc.clj b/backend/src/app/auth/oidc.clj index ab82352fa7..b48bdc9ac1 100644 --- a/backend/src/app/auth/oidc.clj +++ b/backend/src/app/auth/oidc.clj @@ -132,8 +132,8 @@ (-> body json/decode :keys process-oidc-jwks) (do (l/warn :hint "unable to retrieve JWKs (unexpected response status code)" - :http-status status - :http-body body) + :response-status status + :response-body body) nil))) (catch Throwable cause (l/warn :hint "unable to retrieve JWKs (unexpected exception)" @@ -252,7 +252,7 @@ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defmethod ig/init-key ::providers/gitlab - [_ _] + [_ cfg] (let [base (cf/get :gitlab-base-uri "https://gitlab.com") opts {:base-uri base :client-id (cf/get :gitlab-client-id) @@ -261,17 +261,18 @@ :auth-uri (str base "/oauth/authorize") :token-uri (str base "/oauth/token") :user-uri (str base "/oauth/userinfo") + :jwks-uri (str base "/oauth/discovery/keys") :name "gitlab"}] (when (contains? cf/flags :login-with-gitlab) (if (and (string? (:client-id opts)) (string? (:client-secret opts))) - (do + (let [jwks (fetch-oidc-jwks cfg opts)] (l/inf :hint "provider initialized" :provider "gitlab" :base-uri base :client-id (:client-id opts) :client-secret (obfuscate-string (:client-secret opts))) - opts) + (assoc opts :jwks jwks)) (do (l/warn :hint "unable to initialize auth provider, missing configuration" :provider "gitlab") @@ -337,11 +338,15 @@ (let [{:keys [status body]} (http/req! cfg req {:sync? true})] (l/trc :hint "access token fetched" :status status :body body) (if (= status 200) - (let [data (json/decode body)] - {:token/access (get data :access_token) - :token/id (get data :id_token) - :token/type (get data :token_type)}) - + (let [data (json/decode body) + data {:token/access (get data :access_token) + :token/id (get data :id_token) + :token/type (get data :token_type)}] + (l/trc :hint "access token fetched" + :token-id (:token/id data) + :token-type (:token/type data) + :token (:token/access data)) + data) (ex/raise :type :internal :code :unable-to-fetch-access-token :hint "unable to fetch access token" diff --git a/backend/src/app/main.clj b/backend/src/app/main.clj index f9797521d0..a6a2bcebe1 100644 --- a/backend/src/app/main.clj +++ b/backend/src/app/main.clj @@ -254,7 +254,7 @@ {::http.client/client (ig/ref ::http.client/client)} ::oidc.providers/gitlab - {} + {::http.client/client (ig/ref ::http.client/client)} ::oidc.providers/generic {::http.client/client (ig/ref ::http.client/client)} From 0d8c98dcfe889529b0d09274d6b7fdbe67d0c363 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bel=C3=A9n=20Albeza?= Date: Fri, 12 Jul 2024 10:42:36 +0200 Subject: [PATCH 409/476] :arrow_up: Upgrade storybook (patch version) --- frontend/package.json | 10 +- frontend/yarn.lock | 232 +++++++++++++++++++++--------------------- 2 files changed, 121 insertions(+), 121 deletions(-) diff --git a/frontend/package.json b/frontend/package.json index 2a228fdf26..49a085934f 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -42,10 +42,10 @@ }, "devDependencies": { "@playwright/test": "1.44.1", - "@storybook/addon-essentials": "^8.2.1", - "@storybook/blocks": "^8.2.1", - "@storybook/react": "^8.2.1", - "@storybook/react-vite": "^8.2.1", + "@storybook/addon-essentials": "^8.2.2", + "@storybook/blocks": "^8.2.2", + "@storybook/react": "^8.2.2", + "@storybook/react-vite": "^8.2.2", "@types/node": "^20.11.20", "autoprefixer": "^10.4.19", "concurrently": "^8.2.2", @@ -80,7 +80,7 @@ "sass": "^1.77.4", "sass-embedded": "^1.77.2", "shadow-cljs": "2.28.8", - "storybook": "^8.2.1", + "storybook": "^8.2.2", "svg-sprite": "^2.0.4", "typescript": "^5.4.5", "vite": "^5.1.4", diff --git a/frontend/yarn.lock b/frontend/yarn.lock index cb276b2975..23608b21e9 100644 --- a/frontend/yarn.lock +++ b/frontend/yarn.lock @@ -2644,9 +2644,9 @@ __metadata: languageName: node linkType: hard -"@storybook/addon-actions@npm:8.2.1": - version: 8.2.1 - resolution: "@storybook/addon-actions@npm:8.2.1" +"@storybook/addon-actions@npm:8.2.2": + version: 8.2.2 + resolution: "@storybook/addon-actions@npm:8.2.2" dependencies: "@storybook/global": "npm:^5.0.0" "@types/uuid": "npm:^9.0.1" @@ -2654,47 +2654,47 @@ __metadata: polished: "npm:^4.2.2" uuid: "npm:^9.0.0" peerDependencies: - storybook: ^8.2.1 - checksum: 10c0/bb66678d781d929694e9a30de47d60354bf5827e6e153f9fa1c63e1bce950efa554919409e28ebfed46e1dfd977d1d23f2ae3b48c8d1be75336bd12f4e40b75e + storybook: ^8.2.2 + checksum: 10c0/54a44a15f9deeeb894dadf0629c6ad3d843736f50788dd94514e4dd58583c91094d1618cfed2913f77b4eb4a8bc4ef8c7f152deb56ea066c95e1e357f69ec05f languageName: node linkType: hard -"@storybook/addon-backgrounds@npm:8.2.1": - version: 8.2.1 - resolution: "@storybook/addon-backgrounds@npm:8.2.1" +"@storybook/addon-backgrounds@npm:8.2.2": + version: 8.2.2 + resolution: "@storybook/addon-backgrounds@npm:8.2.2" dependencies: "@storybook/global": "npm:^5.0.0" memoizerific: "npm:^1.11.3" ts-dedent: "npm:^2.0.0" peerDependencies: - storybook: ^8.2.1 - checksum: 10c0/df08d508189caeb22c630b56230de131f0c4665467104c040a9824548b73d587f95b753e8fc274e7877d41c403fd8386b60e5be64ee379e3e80a4cd5798976ea + storybook: ^8.2.2 + checksum: 10c0/5a2c579f07b49cb6e0a52e4e200c6fbec910796242e2b61f211b51ad1587ffa2b4c0ccfe87f42f98b9d460834184b7f88098eab3640194b11621fb75ccb9e988 languageName: node linkType: hard -"@storybook/addon-controls@npm:8.2.1": - version: 8.2.1 - resolution: "@storybook/addon-controls@npm:8.2.1" +"@storybook/addon-controls@npm:8.2.2": + version: 8.2.2 + resolution: "@storybook/addon-controls@npm:8.2.2" dependencies: dequal: "npm:^2.0.2" lodash: "npm:^4.17.21" ts-dedent: "npm:^2.0.0" peerDependencies: - storybook: ^8.2.1 - checksum: 10c0/a4980e36ad74e00b46099fbc5d54e3325d766c672ae8c18d30778756cf38bef74986ab258cb4c48709b4682e93c5906259c5f5e8029bc5d63dc08d160a94f4ba + storybook: ^8.2.2 + checksum: 10c0/895b2585287b8d9689d816d094f3e781fa7efe0df7cdc20b97d1be247a0422ad1243eb20ecb943a5a85d06a8994ec1f7e574bb70bad8086742b736dfd390210d languageName: node linkType: hard -"@storybook/addon-docs@npm:8.2.1": - version: 8.2.1 - resolution: "@storybook/addon-docs@npm:8.2.1" +"@storybook/addon-docs@npm:8.2.2": + version: 8.2.2 + resolution: "@storybook/addon-docs@npm:8.2.2" dependencies: "@babel/core": "npm:^7.24.4" "@mdx-js/react": "npm:^3.0.0" - "@storybook/blocks": "npm:8.2.1" - "@storybook/csf-plugin": "npm:8.2.1" + "@storybook/blocks": "npm:8.2.2" + "@storybook/csf-plugin": "npm:8.2.2" "@storybook/global": "npm:^5.0.0" - "@storybook/react-dom-shim": "npm:8.2.1" + "@storybook/react-dom-shim": "npm:8.2.2" "@types/react": "npm:^16.8.0 || ^17.0.0 || ^18.0.0" fs-extra: "npm:^11.1.0" react: "npm:^16.8.0 || ^17.0.0 || ^18.0.0" @@ -2703,89 +2703,89 @@ __metadata: rehype-slug: "npm:^6.0.0" ts-dedent: "npm:^2.0.0" peerDependencies: - storybook: ^8.2.1 - checksum: 10c0/8927c9bded076869f77ef6a5d9caa5b00c11e6adca0d12e396c9f3cf6ea2bb1fd4da05f357585a807599ce63918ae740e415b76bc7d37d6b9633f535ba494d26 + storybook: ^8.2.2 + checksum: 10c0/008975fece9150f68a36771b5214e892a0921d94fc2911e2e0e1d9c7b75795ed5fbde59916890582e84fbaa7a8d031a44dcf36b928dd62c86cc4b908c8930fca languageName: node linkType: hard -"@storybook/addon-essentials@npm:^8.2.1": - version: 8.2.1 - resolution: "@storybook/addon-essentials@npm:8.2.1" +"@storybook/addon-essentials@npm:^8.2.2": + version: 8.2.2 + resolution: "@storybook/addon-essentials@npm:8.2.2" dependencies: - "@storybook/addon-actions": "npm:8.2.1" - "@storybook/addon-backgrounds": "npm:8.2.1" - "@storybook/addon-controls": "npm:8.2.1" - "@storybook/addon-docs": "npm:8.2.1" - "@storybook/addon-highlight": "npm:8.2.1" - "@storybook/addon-measure": "npm:8.2.1" - "@storybook/addon-outline": "npm:8.2.1" - "@storybook/addon-toolbars": "npm:8.2.1" - "@storybook/addon-viewport": "npm:8.2.1" + "@storybook/addon-actions": "npm:8.2.2" + "@storybook/addon-backgrounds": "npm:8.2.2" + "@storybook/addon-controls": "npm:8.2.2" + "@storybook/addon-docs": "npm:8.2.2" + "@storybook/addon-highlight": "npm:8.2.2" + "@storybook/addon-measure": "npm:8.2.2" + "@storybook/addon-outline": "npm:8.2.2" + "@storybook/addon-toolbars": "npm:8.2.2" + "@storybook/addon-viewport": "npm:8.2.2" ts-dedent: "npm:^2.0.0" peerDependencies: - storybook: ^8.2.1 - checksum: 10c0/a94d846fefe89dd30528f2801e33849a5429e5c1c26e3cb9ca997d0ae95fc4ebf09818a38e4c00ad3d21aef837798b6084f21033f4dbe9e707e0ffda2f16b74d + storybook: ^8.2.2 + checksum: 10c0/4389e3cf5347643f833ac76142c72ebfea43e8f543b285923436da37ab4932907cd54373b16141dee8b5d973225a82e91de525a0b4096ead20423a501787fce1 languageName: node linkType: hard -"@storybook/addon-highlight@npm:8.2.1": - version: 8.2.1 - resolution: "@storybook/addon-highlight@npm:8.2.1" +"@storybook/addon-highlight@npm:8.2.2": + version: 8.2.2 + resolution: "@storybook/addon-highlight@npm:8.2.2" dependencies: "@storybook/global": "npm:^5.0.0" peerDependencies: - storybook: ^8.2.1 - checksum: 10c0/32eb6946121d4bb67b3f1fc3c936e57c228a10ed6c4df22ba807d8e68e19122bdb13ecf486a09a2b0812ae17ce7611ba1ecc6df7f81cc362d58f97c2d299d4db + storybook: ^8.2.2 + checksum: 10c0/9095e65b655111386cabc17acf3811232732212bc99ae8306dab45121c8b77cb35e910a9e64f93dce4f78eb86dee788206126cf826763aad353b9c646e313513 languageName: node linkType: hard -"@storybook/addon-measure@npm:8.2.1": - version: 8.2.1 - resolution: "@storybook/addon-measure@npm:8.2.1" +"@storybook/addon-measure@npm:8.2.2": + version: 8.2.2 + resolution: "@storybook/addon-measure@npm:8.2.2" dependencies: "@storybook/global": "npm:^5.0.0" tiny-invariant: "npm:^1.3.1" peerDependencies: - storybook: ^8.2.1 - checksum: 10c0/5e76dd96627ae62a1bb982a3ef4c726b9e3a7ae2294c284562e377ee411b6325cdc5181ef039664b3f06aaa725dd6fcca714e58302a2eaf3b85961b3ad0641f9 + storybook: ^8.2.2 + checksum: 10c0/da2b599e14b094ea3cfa38cf8cb32c842e6bbfcf00b97ce30944b763fc6cc7b07302e07b196dbdc70ee02e792c373c8548c4c1e26e6190f34a842ceef3362459 languageName: node linkType: hard -"@storybook/addon-outline@npm:8.2.1": - version: 8.2.1 - resolution: "@storybook/addon-outline@npm:8.2.1" +"@storybook/addon-outline@npm:8.2.2": + version: 8.2.2 + resolution: "@storybook/addon-outline@npm:8.2.2" dependencies: "@storybook/global": "npm:^5.0.0" ts-dedent: "npm:^2.0.0" peerDependencies: - storybook: ^8.2.1 - checksum: 10c0/52f0a5455f3c99061d4aa678d8b10445bcfa35445f3f368856be6dec5dc6cef7ba9f57a2ed0b294b45263eefa0fbc6fffd0c3178ac6bf4085d80ab05f19b4989 + storybook: ^8.2.2 + checksum: 10c0/7f2bf9843e42d56edb2651055f4c47168b55337abd9d29bc4a5081befce3aa98dd0b1a143a66894efffe44d38b84e8692db20d87ab7d2184f50634eaf0294a59 languageName: node linkType: hard -"@storybook/addon-toolbars@npm:8.2.1": - version: 8.2.1 - resolution: "@storybook/addon-toolbars@npm:8.2.1" +"@storybook/addon-toolbars@npm:8.2.2": + version: 8.2.2 + resolution: "@storybook/addon-toolbars@npm:8.2.2" peerDependencies: - storybook: ^8.2.1 - checksum: 10c0/e34a8b55291f99b8f0b01850d46900b74747440fb78e25d820a5a2ba4f5c8c1e3e8293a88818c5b6bb5c85deff17d304d889f49614eb9ed45282a30716200785 + storybook: ^8.2.2 + checksum: 10c0/965bfafb00fad3dac3fa4a8105eb8cf6d764dbec87d907d6dfc2faf8913e2b2e56b40ea31d92a922d4538d0402344364bb10b16d216c29cf277259dff3f92d1a languageName: node linkType: hard -"@storybook/addon-viewport@npm:8.2.1": - version: 8.2.1 - resolution: "@storybook/addon-viewport@npm:8.2.1" +"@storybook/addon-viewport@npm:8.2.2": + version: 8.2.2 + resolution: "@storybook/addon-viewport@npm:8.2.2" dependencies: memoizerific: "npm:^1.11.3" peerDependencies: - storybook: ^8.2.1 - checksum: 10c0/c237c0d8785cd6f001f0e938cc76409d89b7ac1349216fed6bf9b3fb9951eee7c755feaeb2a0439914691148131749e43c5284d62b20fee27569cdaef1e9373e + storybook: ^8.2.2 + checksum: 10c0/8879b5f226728a655475b7cd0f3df87f80180e6bd7717301346e955b01dbe3174a0fcff3dbd7777dafd7458b9ed12992b4feacccfa22b5e9ccb1b18dc97fccd5 languageName: node linkType: hard -"@storybook/blocks@npm:8.2.1, @storybook/blocks@npm:^8.2.1": - version: 8.2.1 - resolution: "@storybook/blocks@npm:8.2.1" +"@storybook/blocks@npm:8.2.2, @storybook/blocks@npm:^8.2.2": + version: 8.2.2 + resolution: "@storybook/blocks@npm:8.2.2" dependencies: "@storybook/csf": "npm:0.1.11" "@storybook/global": "npm:^5.0.0" @@ -2804,21 +2804,21 @@ __metadata: peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: ^8.2.1 + storybook: ^8.2.2 peerDependenciesMeta: react: optional: true react-dom: optional: true - checksum: 10c0/d96cab2a73f2a43f2ddcd9618d1b2f4efda894d00e2316f795ad988c33dafae72c9361fb9b76d7cb2c8602913f823648d4f25458b08f7549f62247d75c145f94 + checksum: 10c0/41055cf9904e10139d6160526316490b9eaad01b790348ada53cb03132b164086fdbc76970d4fec2f64b25506dc60e70bb21298d928c6dca4f1bef8222f3eb7b languageName: node linkType: hard -"@storybook/builder-vite@npm:8.2.1": - version: 8.2.1 - resolution: "@storybook/builder-vite@npm:8.2.1" +"@storybook/builder-vite@npm:8.2.2": + version: 8.2.2 + resolution: "@storybook/builder-vite@npm:8.2.2" dependencies: - "@storybook/csf-plugin": "npm:8.2.1" + "@storybook/csf-plugin": "npm:8.2.2" "@types/find-cache-dir": "npm:^3.2.1" browser-assert: "npm:^1.2.1" es-module-lexer: "npm:^1.5.0" @@ -2829,7 +2829,7 @@ __metadata: ts-dedent: "npm:^2.0.0" peerDependencies: "@preact/preset-vite": "*" - storybook: ^8.2.1 + storybook: ^8.2.2 typescript: ">= 4.3.x" vite: ^4.0.0 || ^5.0.0 vite-plugin-glimmerx: "*" @@ -2840,18 +2840,18 @@ __metadata: optional: true vite-plugin-glimmerx: optional: true - checksum: 10c0/beb66ea8dd2be43cbda0261bf994d98615bd3e47c496f49da45d039be6baa7ebb8deff189c9bdcda5ed93fbec118144a3d40594b5fa61d0b451927036b347985 + checksum: 10c0/91043986838d5cf4ab9c6de3cc6f1adbe8c079f05ab995eed7bcb3cc632b3d53125736536b03f722d8c8463b5c6bd25f8e75acf2fe8b4efc2979e1f12f0abec3 languageName: node linkType: hard -"@storybook/codemod@npm:8.2.1": - version: 8.2.1 - resolution: "@storybook/codemod@npm:8.2.1" +"@storybook/codemod@npm:8.2.2": + version: 8.2.2 + resolution: "@storybook/codemod@npm:8.2.2" dependencies: "@babel/core": "npm:^7.24.4" "@babel/preset-env": "npm:^7.24.4" "@babel/types": "npm:^7.24.0" - "@storybook/core": "npm:8.2.1" + "@storybook/core": "npm:8.2.2" "@storybook/csf": "npm:0.1.11" "@types/cross-spawn": "npm:^6.0.2" cross-spawn: "npm:^7.0.3" @@ -2861,13 +2861,13 @@ __metadata: prettier: "npm:^3.1.1" recast: "npm:^0.23.5" tiny-invariant: "npm:^1.3.1" - checksum: 10c0/1b23f6c2b0f3a5cef6694246bb14eab2f6c98a94038e1ca17b32cfe88305ca2845fdb4b4b48ba5aca28a959827b194f2f54b353dcc0fd3147ded7eaba5b38a3e + checksum: 10c0/14c841f4d03e3eaf0748680ce22ee74d4f12984326497fd2284fe43e1d953778b49328a88458c87ffc873bdf2d17a62429eb2e17900ad30a4e85cab4582a7b2a languageName: node linkType: hard -"@storybook/core@npm:8.2.1": - version: 8.2.1 - resolution: "@storybook/core@npm:8.2.1" +"@storybook/core@npm:8.2.2": + version: 8.2.2 + resolution: "@storybook/core@npm:8.2.2" dependencies: "@storybook/csf": "npm:0.1.11" "@types/express": "npm:^4.17.21" @@ -2880,18 +2880,18 @@ __metadata: recast: "npm:^0.23.5" util: "npm:^0.12.4" ws: "npm:^8.2.3" - checksum: 10c0/99b9a3753a8f54a446e3d7791c8e949e9dff21f87e62e84bc6354dd77cb8e79280de6cbc8d00271414b7c2d6224013b3025dca234ac6db1533e545e7ef1ea7cc + checksum: 10c0/f62b1fa67ca6a29600644367e2e39c4c5bf37033316a1b581178d20f42161984a7cde870fb3cf4eb9f81089175cf6e3d9cb07393f9a8a16aaf5d8261c20df35e languageName: node linkType: hard -"@storybook/csf-plugin@npm:8.2.1": - version: 8.2.1 - resolution: "@storybook/csf-plugin@npm:8.2.1" +"@storybook/csf-plugin@npm:8.2.2": + version: 8.2.2 + resolution: "@storybook/csf-plugin@npm:8.2.2" dependencies: unplugin: "npm:^1.3.1" peerDependencies: - storybook: ^8.2.1 - checksum: 10c0/7127790508f6cf2e1c515981c02e019fd34849b4e74b7312194638d44d6cc5a69d1d09396b128f23144ab92262bf2bb46a157d4552d9f51979ffe52d1ce7a787 + storybook: ^8.2.2 + checksum: 10c0/f1dd1b0908392d02dd20be351acd1b109de75e283bfc3f53cf39307bcdb07a0eb642684ef8d751f769c21fdeb564b8925a3ea5fc5dbe9cd56118bf7ab0fca413 languageName: node linkType: hard @@ -2921,25 +2921,25 @@ __metadata: languageName: node linkType: hard -"@storybook/react-dom-shim@npm:8.2.1": - version: 8.2.1 - resolution: "@storybook/react-dom-shim@npm:8.2.1" +"@storybook/react-dom-shim@npm:8.2.2": + version: 8.2.2 + resolution: "@storybook/react-dom-shim@npm:8.2.2" peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: ^8.2.1 - checksum: 10c0/89d9c508925ac5b8f3c9f2fee8ea68da879eb96f2d3a47db6848044678578bed56f18d8f5f13652e187f2a785c4b253bb3447128027f144d4e1b483c99120526 + storybook: ^8.2.2 + checksum: 10c0/4eb51ac9b6445a5810af6ca8a1caf64e844042cf90d769c9a5855c94908ac98f5afc5ee2324acaf6d167ed88a4e2c38caaf61b3bdbd63b9b9cc593608139b6b8 languageName: node linkType: hard -"@storybook/react-vite@npm:^8.2.1": - version: 8.2.1 - resolution: "@storybook/react-vite@npm:8.2.1" +"@storybook/react-vite@npm:^8.2.2": + version: 8.2.2 + resolution: "@storybook/react-vite@npm:8.2.2" dependencies: "@joshwooding/vite-plugin-react-docgen-typescript": "npm:0.3.1" "@rollup/pluginutils": "npm:^5.0.2" - "@storybook/builder-vite": "npm:8.2.1" - "@storybook/react": "npm:8.2.1" + "@storybook/builder-vite": "npm:8.2.2" + "@storybook/react": "npm:8.2.2" find-up: "npm:^5.0.0" magic-string: "npm:^0.30.0" react-docgen: "npm:^7.0.0" @@ -2948,18 +2948,18 @@ __metadata: peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: ^8.2.1 + storybook: ^8.2.2 vite: ^4.0.0 || ^5.0.0 - checksum: 10c0/18d0ab1901526c9121434268d9cca6dba84ecc86a73ad3a073b3ffce585fc1597b7e163f85656c765ee7df8635135e28824e5932a07dba92150b9ac2f7187e56 + checksum: 10c0/251e8309b74b4e41eb531c5be1af3fd6498ae2fa2e09a27b60a0512c893b1641f8c34dcbb39058fa1ac4b3916ede227c64f9ac2ac2c91d8ccf986517326a8faa languageName: node linkType: hard -"@storybook/react@npm:8.2.1, @storybook/react@npm:^8.2.1": - version: 8.2.1 - resolution: "@storybook/react@npm:8.2.1" +"@storybook/react@npm:8.2.2, @storybook/react@npm:^8.2.2": + version: 8.2.2 + resolution: "@storybook/react@npm:8.2.2" dependencies: "@storybook/global": "npm:^5.0.0" - "@storybook/react-dom-shim": "npm:8.2.1" + "@storybook/react-dom-shim": "npm:8.2.2" "@types/escodegen": "npm:^0.0.6" "@types/estree": "npm:^0.0.51" "@types/node": "npm:^18.0.0" @@ -2978,12 +2978,12 @@ __metadata: peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: ^8.2.1 + storybook: ^8.2.2 typescript: ">= 4.2.x" peerDependenciesMeta: typescript: optional: true - checksum: 10c0/4e54fb6a0f812308a24e092e9f0cef63c310694b8456221c5407a48bef5bf59483f86ffdcdba16acb274a9a4679fc87e6072e6ea1db38b232c5497f3e172771d + checksum: 10c0/3251a04de311dc6110e675e7e8abf145ebdb3644ae9b9316589c8abff3fe3a6f856e060912afb6ceb0f7423932623e57e98147ca2c1ac4958ce1515a49dcf121 languageName: node linkType: hard @@ -6598,10 +6598,10 @@ __metadata: resolution: "frontend@workspace:." dependencies: "@playwright/test": "npm:1.44.1" - "@storybook/addon-essentials": "npm:^8.2.1" - "@storybook/blocks": "npm:^8.2.1" - "@storybook/react": "npm:^8.2.1" - "@storybook/react-vite": "npm:^8.2.1" + "@storybook/addon-essentials": "npm:^8.2.2" + "@storybook/blocks": "npm:^8.2.2" + "@storybook/react": "npm:^8.2.2" + "@storybook/react-vite": "npm:^8.2.2" "@types/node": "npm:^20.11.20" autoprefixer: "npm:^10.4.19" compression: "npm:^1.7.4" @@ -6653,7 +6653,7 @@ __metadata: sax: "npm:^1.4.1" shadow-cljs: "npm:2.28.8" source-map-support: "npm:^0.5.21" - storybook: "npm:^8.2.1" + storybook: "npm:^8.2.2" svg-sprite: "npm:^2.0.4" tdigest: "npm:^0.1.2" typescript: "npm:^5.4.5" @@ -12120,14 +12120,14 @@ __metadata: languageName: node linkType: hard -"storybook@npm:^8.2.1": - version: 8.2.1 - resolution: "storybook@npm:8.2.1" +"storybook@npm:^8.2.2": + version: 8.2.2 + resolution: "storybook@npm:8.2.2" dependencies: "@babel/core": "npm:^7.24.4" "@babel/types": "npm:^7.24.0" - "@storybook/codemod": "npm:8.2.1" - "@storybook/core": "npm:8.2.1" + "@storybook/codemod": "npm:8.2.2" + "@storybook/core": "npm:8.2.2" "@types/semver": "npm:^7.3.4" "@yarnpkg/fslib": "npm:2.10.3" "@yarnpkg/libzip": "npm:2.3.0" @@ -12156,7 +12156,7 @@ __metadata: getstorybook: ./bin/index.cjs sb: ./bin/index.cjs storybook: ./bin/index.cjs - checksum: 10c0/a90ddc8bf1ddf4d0dafae1d4303508acfadb67b56574cf8efe78c9c431fd83fffd706802fc5ded952aa8c1dbc23424222fe002349e19c82911c12acb195d45a7 + checksum: 10c0/5212328c0311e68de14b29f890c00889a81ec33b83cb7e8bbcefd770d1e8c291c28096493423bd8d86076e4b5006124b0605332319403db2f7baa0d4c3f1bb3f languageName: node linkType: hard From ebda46f748f762395c2c0e0dfadf0def4c470004 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bel=C3=A9n=20Albeza?= Date: Fri, 12 Jul 2024 11:52:31 +0200 Subject: [PATCH 410/476] :sparkles: Support theme switching within Storybook --- frontend/.storybook/main.js | 6 +--- frontend/.storybook/preview.js | 32 +++++++++---------- frontend/package.json | 1 + frontend/resources/styles/common/base.scss | 4 +-- .../ui/ds/foundations/assets/icon.stories.jsx | 18 +++-------- .../ds/foundations/assets/raw_svg.stories.jsx | 14 +++----- .../typography/heading.stories.jsx | 6 +--- .../foundations/typography/text.stories.jsx | 32 ++++++++++++------- .../app/main/ui/ds/product/loader.stories.jsx | 7 +--- frontend/yarn.lock | 12 +++++++ 10 files changed, 62 insertions(+), 70 deletions(-) diff --git a/frontend/.storybook/main.js b/frontend/.storybook/main.js index 5d0033def4..cd48f83bc8 100644 --- a/frontend/.storybook/main.js +++ b/frontend/.storybook/main.js @@ -1,22 +1,18 @@ -import viteConfig from "../vite.config"; - /** @type { import('@storybook/react-vite').StorybookConfig } */ const config = { stories: ["../src/**/*.mdx", "../src/**/*.stories.@(js|jsx|mjs|ts|tsx)"], staticDirs: ["../resources/public"], - addons: ["@storybook/addon-essentials"], + addons: ["@storybook/addon-essentials", "@storybook/addon-themes"], core: { builder: "@storybook/builder-vite", options: { viteConfigPath: "../vite.config.js", }, }, - framework: { name: "@storybook/react-vite", options: {}, }, - docs: {}, }; export default config; diff --git a/frontend/.storybook/preview.js b/frontend/.storybook/preview.js index 450e7738ff..d15d79b78b 100644 --- a/frontend/.storybook/preview.js +++ b/frontend/.storybook/preview.js @@ -1,5 +1,19 @@ +import { withThemeByClassName } from "@storybook/addon-themes"; + +export const decorators = [ + withThemeByClassName({ + themes: { + light: "light", + dark: "default", + }, + defaultTheme: "dark", + parentSelector: "body", + }), +]; + /** @type { import('@storybook/react').Preview } */ const preview = { + decorators: decorators, parameters: { controls: { matchers: { @@ -7,23 +21,7 @@ const preview = { date: /Date$/i, }, }, - backgrounds: { - default: "dark", - values: [ - { - name: "dark", - value: "#18181a", - }, - { - name: "light", - value: "#fff", - }, - { - name: "debug", - value: "#ccc", - }, - ], - }, + backgrounds: { disable: true }, }, }; diff --git a/frontend/package.json b/frontend/package.json index 49a085934f..0ac3ff3ba2 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -43,6 +43,7 @@ "devDependencies": { "@playwright/test": "1.44.1", "@storybook/addon-essentials": "^8.2.2", + "@storybook/addon-themes": "^8.2.2", "@storybook/blocks": "^8.2.2", "@storybook/react": "^8.2.2", "@storybook/react-vite": "^8.2.2", diff --git a/frontend/resources/styles/common/base.scss b/frontend/resources/styles/common/base.scss index 62b26317ce..f4f67041fc 100644 --- a/frontend/resources/styles/common/base.scss +++ b/frontend/resources/styles/common/base.scss @@ -19,8 +19,8 @@ $lh-133: 1.33; $size-4: 1rem; body { - background-color: var(--db-primary); - color: var(--df-primary); + background-color: var(--color-background-primary); + color: var(--color-foreground-primary); display: flex; flex-direction: column; font-family: "worksans", "vazirmatn", sans-serif; diff --git a/frontend/src/app/main/ui/ds/foundations/assets/icon.stories.jsx b/frontend/src/app/main/ui/ds/foundations/assets/icon.stories.jsx index c6b93f2668..7125a9b180 100644 --- a/frontend/src/app/main/ui/ds/foundations/assets/icon.stories.jsx +++ b/frontend/src/app/main/ui/ds/foundations/assets/icon.stories.jsx @@ -2,8 +2,7 @@ import * as React from "react"; import Components from "@target/components"; const { Icon } = Components; -const { StoryWrapper, StoryGrid, StoryGridCell, StoryHeader } = - Components.storybook; +const { StoryGrid, StoryGridCell, StoryHeader } = Components.storybook; const { icons } = Components.meta; const iconList = Object.entries(icons) @@ -23,11 +22,12 @@ export default { control: { type: "radio" }, }, }, + render: ({ ...args }) => , }; export const All = { render: ({ size }) => ( - + <>

All Icons

Hover on an icon to see its ID.

@@ -43,7 +43,7 @@ export const All = { ))} -
+ ), args: { size: "m", @@ -55,11 +55,6 @@ export const All = { }; export const Default = { - render: ({ id, ...args }) => ( - - - - ), args: { id: "pin", }, @@ -69,11 +64,6 @@ export const Default = { }; export const CustomSize = { - render: ({ id, size, ...args }) => ( - - - - ), args: { id: "pin", size: "m", diff --git a/frontend/src/app/main/ui/ds/foundations/assets/raw_svg.stories.jsx b/frontend/src/app/main/ui/ds/foundations/assets/raw_svg.stories.jsx index dcdf6e5096..a3c4080861 100644 --- a/frontend/src/app/main/ui/ds/foundations/assets/raw_svg.stories.jsx +++ b/frontend/src/app/main/ui/ds/foundations/assets/raw_svg.stories.jsx @@ -2,8 +2,7 @@ import * as React from "react"; import Components from "@target/components"; const { RawSvg } = Components; -const { StoryWrapper, StoryGrid, StoryGridCell, StoryHeader } = - Components.storybook; +const { StoryGrid, StoryGridCell, StoryHeader } = Components.storybook; const { svgs } = Components.meta; const assetList = Object.entries(svgs) @@ -19,11 +18,12 @@ export default { control: { type: "select" }, }, }, + render: ({ ...args }) => , }; export const All = { render: ({}) => ( - + <>

All SVG Assets

Hover on an asset to see its ID.

@@ -36,7 +36,7 @@ export const All = { ))} -
+ ), parameters: { controls: { exclude: ["id"] }, @@ -45,12 +45,8 @@ export const All = { }; export const Default = { - render: ({ id, ...args }) => ( - - - - ), args: { id: "brand-gitlab", + width: 200, }, }; diff --git a/frontend/src/app/main/ui/ds/foundations/typography/heading.stories.jsx b/frontend/src/app/main/ui/ds/foundations/typography/heading.stories.jsx index 7db98e008f..5b68ccb816 100644 --- a/frontend/src/app/main/ui/ds/foundations/typography/heading.stories.jsx +++ b/frontend/src/app/main/ui/ds/foundations/typography/heading.stories.jsx @@ -2,7 +2,6 @@ import * as React from "react"; import Components from "@target/components"; const { Heading } = Components; -const { StoryWrapper } = Components.storybook; const { typography } = Components.meta; const typographyIds = typography.sort(); @@ -33,10 +32,7 @@ export default { }, }, render: ({ style, children, theme, ...args }) => ( - // TODO: this
is a hack until we have proper theming -
- {children} -
+ {children} ), }; diff --git a/frontend/src/app/main/ui/ds/foundations/typography/text.stories.jsx b/frontend/src/app/main/ui/ds/foundations/typography/text.stories.jsx index 97f61f6f81..5de7f2d1d7 100644 --- a/frontend/src/app/main/ui/ds/foundations/typography/text.stories.jsx +++ b/frontend/src/app/main/ui/ds/foundations/typography/text.stories.jsx @@ -17,22 +17,11 @@ export default { }, parameters: { controls: { exclude: ["children", "theme", "style"] }, - backgrounds: { default: "light" }, }, args: { children: "Lorem ipsum", - theme: "light", - style: { - color: "var(--color-foreground-primary)", - background: "var(--color-background-primary)", - }, }, - render: ({ style, children, theme, ...args }) => ( - // TODO: this
is a hack until we have proper theming -
- {children} -
- ), + render: ({ children, ...args }) => {children}, }; export const Default = { @@ -48,11 +37,20 @@ export const CustomTag = { }, }; +const docsParams = { + parameters: { + themes: { + themeOverride: "light", + }, + }, +}; + export const Display = { args: { typography: "display", children: "Display 400 36px/1.4 Work Sans", }, + ...docsParams, }; export const TitleLarge = { @@ -60,6 +58,7 @@ export const TitleLarge = { typography: "title-large", children: "Title Large 400 24px/1.4 Work Sans", }, + ...docsParams, }; export const TitleMedium = { @@ -67,6 +66,7 @@ export const TitleMedium = { typography: "title-medium", children: "Title Medium 400 20px/1.4 Work Sans", }, + ...docsParams, }; export const TitleSmall = { @@ -74,6 +74,7 @@ export const TitleSmall = { typography: "title-small", children: "Title Small 400 14px/1.2 Work Sans", }, + ...docsParams, }; export const HeadlineLarge = { @@ -81,6 +82,7 @@ export const HeadlineLarge = { typography: "headline-large", children: "Headline Large 400 18px/1.4 Work Sans", }, + ...docsParams, }; export const HeadlineMedium = { @@ -88,6 +90,7 @@ export const HeadlineMedium = { typography: "headline-medium", children: "Headline Medium 400 16px/1.4 Work Sans", }, + ...docsParams, }; export const HeadlineSmall = { @@ -95,6 +98,7 @@ export const HeadlineSmall = { typography: "headline-small", children: "Headline Small 500 12px/1.2 Work Sans", }, + ...docsParams, }; export const BodyLarge = { @@ -102,6 +106,7 @@ export const BodyLarge = { typography: "body-large", children: "Body Large 400 16px/1.4 Work Sans", }, + ...docsParams, }; export const BodyMedium = { @@ -109,6 +114,7 @@ export const BodyMedium = { typography: "body-medium", children: "Body Medium 400 14px/1.3 Work Sans", }, + ...docsParams, }; export const BodySmall = { @@ -116,6 +122,7 @@ export const BodySmall = { typography: "body-small", children: "Body Small 400 12px/1.3 Work Sans", }, + ...docsParams, }; export const CodeFont = { @@ -123,4 +130,5 @@ export const CodeFont = { typography: "code-font", children: "Code Font 400 12px/1.2 Roboto Mono", }, + ...docsParams, }; diff --git a/frontend/src/app/main/ui/ds/product/loader.stories.jsx b/frontend/src/app/main/ui/ds/product/loader.stories.jsx index 963c3f2541..5e6d0558d3 100644 --- a/frontend/src/app/main/ui/ds/product/loader.stories.jsx +++ b/frontend/src/app/main/ui/ds/product/loader.stories.jsx @@ -2,7 +2,6 @@ import * as React from "react"; import Components from "@target/components"; const { Loader } = Components; -const { StoryWrapper } = Components.storybook; export default { title: "Product/Loader", @@ -10,9 +9,5 @@ export default { }; export const Default = { - render: () => ( - - - - ), + render: () => , }; diff --git a/frontend/yarn.lock b/frontend/yarn.lock index 23608b21e9..94375d2bca 100644 --- a/frontend/yarn.lock +++ b/frontend/yarn.lock @@ -2763,6 +2763,17 @@ __metadata: languageName: node linkType: hard +"@storybook/addon-themes@npm:^8.2.2": + version: 8.2.2 + resolution: "@storybook/addon-themes@npm:8.2.2" + dependencies: + ts-dedent: "npm:^2.0.0" + peerDependencies: + storybook: ^8.2.2 + checksum: 10c0/d3fc879e9d6b0659e2238b961bf69c701bd801990ccf18c8dc3c6270006caf9d5737a68049af2441767d9f473b9a3baf53bc7adb9d37e978d0b721f7fb4e3a76 + languageName: node + linkType: hard + "@storybook/addon-toolbars@npm:8.2.2": version: 8.2.2 resolution: "@storybook/addon-toolbars@npm:8.2.2" @@ -6599,6 +6610,7 @@ __metadata: dependencies: "@playwright/test": "npm:1.44.1" "@storybook/addon-essentials": "npm:^8.2.2" + "@storybook/addon-themes": "npm:^8.2.2" "@storybook/blocks": "npm:^8.2.2" "@storybook/react": "npm:^8.2.2" "@storybook/react-vite": "npm:^8.2.2" From a5dd2683cd13722cc2440bc542b096536c98e7d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bel=C3=A9n=20Albeza?= Date: Fri, 12 Jul 2024 11:53:36 +0200 Subject: [PATCH 411/476] :lipstick: Remove deprecated StoryWrapper helper component --- frontend/src/app/main/ui/ds.cljs | 3 +-- frontend/src/app/main/ui/ds/storybook.cljs | 10 ---------- 2 files changed, 1 insertion(+), 12 deletions(-) diff --git a/frontend/src/app/main/ui/ds.cljs b/frontend/src/app/main/ui/ds.cljs index 43b1b61045..b15d52724f 100644 --- a/frontend/src/app/main/ui/ds.cljs +++ b/frontend/src/app/main/ui/ds.cljs @@ -28,5 +28,4 @@ :storybook #js {:StoryGrid sb/story-grid* :StoryGridCell sb/story-grid-cell* :StoryGridRow sb/story-grid-row* - :StoryHeader sb/story-header* - :StoryWrapper sb/story-wrapper*}}) + :StoryHeader sb/story-header*}}) diff --git a/frontend/src/app/main/ui/ds/storybook.cljs b/frontend/src/app/main/ui/ds/storybook.cljs index d78c1cfe9f..d503f3a8f1 100644 --- a/frontend/src/app/main/ui/ds/storybook.cljs +++ b/frontend/src/app/main/ui/ds/storybook.cljs @@ -12,16 +12,6 @@ (:require [rumext.v2 :as mf])) -(mf/defc story-wrapper* - {::mf/props :obj} - [{:keys [theme children]}] - [:article {:class (stl/css :story-wrapper)} - (if (some? theme) - [:section {:class theme} children] - [* - [:section {:class "default"} children] - [:section {:class "light"} children]])]) - (mf/defc story-grid* {::mf/props :obj} [{:keys [children size style] :rest other}] From 085b93379694157154302f8a0997d8dda62686e5 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Fri, 12 Jul 2024 14:26:21 +0200 Subject: [PATCH 412/476] :sparkles: Update default buffers and resolver on devenv nginx config --- docker/devenv/files/nginx.conf | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/docker/devenv/files/nginx.conf b/docker/devenv/files/nginx.conf index 60d025284e..05df881bd4 100644 --- a/docker/devenv/files/nginx.conf +++ b/docker/devenv/files/nginx.conf @@ -68,7 +68,10 @@ http { proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - resolver 127.0.0.11; + proxy_buffer_size 16k; + proxy_busy_buffers_size 24k; # essentially, proxy_buffer_size + 2 small buffers of 4k + proxy_buffers 32 4k; + resolver 127.0.0.11 ipv6=off; etag off; From 26fa2a71ea812735d39a942724b7f2f87d5a6d82 Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Mon, 22 Jul 2024 11:27:12 +0200 Subject: [PATCH 413/476] :bug: Fix problem with reset alignment on change text --- common/src/app/common/text.cljc | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/common/src/app/common/text.cljc b/common/src/app/common/text.cljc index c82f65c9b8..c5d14f5498 100644 --- a/common/src/app/common/text.cljc +++ b/common/src/app/common/text.cljc @@ -428,6 +428,8 @@ [shape text] (let [content (:content shape) + root-styles (select-keys content root-attrs) + paragraph-style (merge default-text-attrs (select-keys (->> content (node-seq is-paragraph-node?) first) text-all-attrs)) @@ -447,10 +449,12 @@ :children [(merge {:text pt} text-style)]})))) new-content - {:type "root" - :children - [{:type "paragraph-set" - :children paragraphs}]}] + (d/patch-object + {:type "root" + :children + [{:type "paragraph-set" + :children paragraphs}]} + root-styles)] (assoc shape :content new-content))) From d13b9ef3eaeca1ad3c7997d9a950f19e59cd1e63 Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Mon, 22 Jul 2024 11:27:29 +0200 Subject: [PATCH 414/476] :bug: Fix wrap not working in plugins --- common/src/app/common/types/shape/layout.cljc | 5 ++--- frontend/src/app/plugins/flex.cljs | 16 ++++++++++++++++ 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/common/src/app/common/types/shape/layout.cljc b/common/src/app/common/types/shape/layout.cljc index d30598974f..4f8e542aca 100644 --- a/common/src/app/common/types/shape/layout.cljc +++ b/common/src/app/common/types/shape/layout.cljc @@ -48,8 +48,7 @@ #{:flex :grid}) (def flex-direction-types - ;;TODO remove reverse-column and reverse-row after script - #{:row :reverse-row :row-reverse :column :reverse-column :column-reverse}) + #{:row :row-reverse :column :column-reverse}) (def grid-direction-types #{:row :column}) @@ -58,7 +57,7 @@ #{:simple :multiple}) (def wrap-types - #{:wrap :nowrap :no-wrap}) ;;TODO remove no-wrap after script + #{:wrap :nowrap}) (def padding-type #{:simple :multiple}) diff --git a/frontend/src/app/plugins/flex.cljs b/frontend/src/app/plugins/flex.cljs index 9b6e89673c..9f65e6f34f 100644 --- a/frontend/src/app/plugins/flex.cljs +++ b/frontend/src/app/plugins/flex.cljs @@ -66,6 +66,22 @@ (let [id (obj/get self "$id")] (st/emit! (dwsl/update-layout #{id} {:layout-flex-dir value}))))))} + {:name "wrap" + :get #(-> % u/proxy->shape :layout-wrap-type d/name) + :set + (fn [self value] + (let [value (keyword value)] + (cond + (not (contains? ctl/wrap-types value)) + (u/display-not-valid :wrap value) + + (not (r/check-permission plugin-id "content:write")) + (u/display-not-valid :wrap "Plugin doesn't have 'content:write' permission") + + :else + (let [id (obj/get self "$id")] + (st/emit! (dwsl/update-layout #{id} {:layout-wrap-type value}))))))} + {:name "alignItems" :get #(-> % u/proxy->shape :layout-align-items d/name) :set From 6454e878dd147022c0af4598ddf4b04783adc56f Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Mon, 22 Jul 2024 13:04:55 +0200 Subject: [PATCH 415/476] :sparkles: Page functions for plugins api --- frontend/src/app/main/data/workspace.cljs | 4 ++-- frontend/src/app/plugins/api.cljs | 22 +++++++++++++++++++++- frontend/src/app/plugins/file.cljs | 14 +++++++++++++- frontend/src/app/plugins/page.cljs | 11 ++++++++++- 4 files changed, 46 insertions(+), 5 deletions(-) diff --git a/frontend/src/app/main/data/workspace.cljs b/frontend/src/app/main/data/workspace.cljs index cae373da41..fd898824d1 100644 --- a/frontend/src/app/main/data/workspace.cljs +++ b/frontend/src/app/main/data/workspace.cljs @@ -479,8 +479,8 @@ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defn create-page - [{:keys [file-id]}] - (let [id (uuid/next)] + [{:keys [page-id file-id]}] + (let [id (or page-id (uuid/next))] (ptk/reify ::create-page ev/Event (-data [_] diff --git a/frontend/src/app/plugins/api.cljs b/frontend/src/app/plugins/api.cljs index 9a944c48c2..27c149d8df 100644 --- a/frontend/src/app/plugins/api.cljs +++ b/frontend/src/app/plugins/api.cljs @@ -19,6 +19,7 @@ [app.common.types.shape :as cts] [app.common.uuid :as uuid] [app.main.data.changes :as ch] + [app.main.data.workspace :as dw] [app.main.data.workspace.bool :as dwb] [app.main.data.workspace.colors :as dwc] [app.main.data.workspace.groups :as dwg] @@ -347,7 +348,26 @@ (mapcat #(cfh/get-children-with-self objects (:id %)))) shapes)] (cg/generate-style-code - objects type shapes shapes-with-children {:with-prelude? prelude?})))))) + objects type shapes shapes-with-children {:with-prelude? prelude?}))))) + + (openViewer + [_] + (let [params {:page-id (:current-page-id @st/state) + :file-id (:current-file-id @st/state) + :section "interactions"}] + (st/emit! (dw/go-to-viewer params)))) + + (createPage + [_] + (let [file-id (:current-file-id @st/state) + id (uuid/next)] + (st/emit! (dw/create-page {:page-id id :file-id file-id})) + (page/page-proxy $plugin file-id id))) + + (openPage + [_ page] + (let [id (obj/get page "$id")] + (st/emit! (dw/go-to-page id))))) (defn create-context [plugin-id] diff --git a/frontend/src/app/plugins/file.cljs b/frontend/src/app/plugins/file.cljs index 5cc3810a7e..1f37f88f82 100644 --- a/frontend/src/app/plugins/file.cljs +++ b/frontend/src/app/plugins/file.cljs @@ -9,6 +9,7 @@ (:require [app.common.data.macros :as dm] [app.common.record :as crc] + [app.common.uuid :as uuid] [app.main.data.workspace :as dw] [app.main.store :as st] [app.plugins.page :as page] @@ -93,7 +94,18 @@ :else (let [file (u/proxy->file self)] - (apply array (keys (dm/get-in file [:data :plugin-data (keyword "shared" namespace)]))))))) + (apply array (keys (dm/get-in file [:data :plugin-data (keyword "shared" namespace)])))))) + + (createPage + [_] + (cond + (not (r/check-permission $plugin "content:write")) + (u/display-not-valid :createPage "Plugin doesn't have 'content:write' permission") + + :else + (let [page-id (uuid/next)] + (st/emit! (dw/create-page {:page-id page-id :file-id $id})) + (page/page-proxy $plugin $id page-id))))) (crc/define-properties! FileProxy diff --git a/frontend/src/app/plugins/page.cljs b/frontend/src/app/plugins/page.cljs index 712b6293ca..0ace08589f 100644 --- a/frontend/src/app/plugins/page.cljs +++ b/frontend/src/app/plugins/page.cljs @@ -131,7 +131,16 @@ :else (let [page (u/proxy->page self)] - (apply array (keys (dm/get-in page [:options :plugin-data (keyword "shared" namespace)]))))))) + (apply array (keys (dm/get-in page [:options :plugin-data (keyword "shared" namespace)])))))) + + (openPage + [_] + (cond + (not (r/check-permission $plugin "content:read")) + (u/display-not-valid :openPage "Plugin doesn't have 'content:read' permission") + + :else + (st/emit! (dw/go-to-page $id))))) (crc/define-properties! PageProxy From 142ae322560facd659c2f0d7b00e8d43260ff009 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Mon, 22 Jul 2024 13:08:46 +0200 Subject: [PATCH 416/476] :sparkles: Add better call signature for srepl/notify! fn helper --- backend/src/app/srepl/main.clj | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/backend/src/app/srepl/main.clj b/backend/src/app/srepl/main.clj index 1c4c5430aa..0a5181ffe2 100644 --- a/backend/src/app/srepl/main.clj +++ b/backend/src/app/srepl/main.clj @@ -190,6 +190,12 @@ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defn notify! + "Send flash notifications. + + This method allows send flash notifications to specified target destinations. + The message can be a free text or a preconfigured one. + + The destination can be: all, profile-id, team-id, or a coll of them." [{:keys [::mbus/msgbus ::db/pool]} & {:keys [dest code message level] :or {code :generic level :info} :as params}] @@ -197,10 +203,6 @@ ["invalid level %" level] (contains? #{:success :error :info :warning} level)) - (dm/verify! - ["invalid code: %" code] - (contains? #{:generic :upgrade-version} code)) - (letfn [(send [dest] (l/inf :hint "sending notification" :dest (str dest)) (let [message {:type :notification @@ -226,6 +228,9 @@ (resolve-dest [dest] (cond + (= :all dest) + [uuid/zero] + (uuid? dest) [dest] @@ -241,14 +246,15 @@ (mapcat resolve-dest)) dest) - (and (coll? dest) - (every? coll? dest)) + (and (vector? dest) + (every? vector? dest)) (sequence (comp (map vec) (mapcat resolve-dest)) dest) - (vector? dest) + (and (vector? dest) + (keyword? (first dest))) (let [[op param] dest] (cond (= op :email) From 9e0fb44b3fcbc86d21ee21351732fbf00e9c8fdc Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Mon, 22 Jul 2024 13:11:14 +0200 Subject: [PATCH 417/476] :bug: Remove unnecesary delay on hide notification banner --- frontend/src/app/main/data/messages.cljs | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/frontend/src/app/main/data/messages.cljs b/frontend/src/app/main/data/messages.cljs index 024fec415a..eb3d48c47b 100644 --- a/frontend/src/app/main/data/messages.cljs +++ b/frontend/src/app/main/data/messages.cljs @@ -15,7 +15,6 @@ (declare hide) (declare show) -(def default-animation-timeout 600) (def default-timeout 7000) (def ^:private @@ -76,14 +75,7 @@ (ptk/reify ::hide ptk/UpdateEvent (update [_ state] - (d/update-when state :message assoc :status :hide)) - - ptk/WatchEvent - (watch [_ _ stream] - (let [stopper (rx/filter (ptk/type? ::show) stream)] - (->> (rx/of #(dissoc % :message)) - (rx/delay default-animation-timeout) - (rx/take-until stopper)))))) + (dissoc state :message)))) (defn hide-tag [tag] From 7e50ab52b9789470e572c5a5d86ed8cff362ecd3 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Mon, 22 Jul 2024 13:11:49 +0200 Subject: [PATCH 418/476] :paperclip: Add minor improvement on notification message validation --- frontend/src/app/main/data/messages.cljs | 57 ++++++++++++------------ 1 file changed, 29 insertions(+), 28 deletions(-) diff --git a/frontend/src/app/main/data/messages.cljs b/frontend/src/app/main/data/messages.cljs index eb3d48c47b..b02eb7d75d 100644 --- a/frontend/src/app/main/data/messages.cljs +++ b/frontend/src/app/main/data/messages.cljs @@ -17,39 +17,40 @@ (def default-timeout 7000) -(def ^:private - schema:message - (sm/define - [:map {:title "Message"} - [:type [::sm/one-of #{:success :error :info :warning}]] - [:status {:optional true} - [::sm/one-of #{:visible :hide}]] - [:position {:optional true} - [::sm/one-of #{:fixed :floating :inline}]] - [:notification-type {:optional true} - [::sm/one-of #{:inline :context :toast}]] - [:controls {:optional true} - [::sm/one-of #{:none :close :inline-actions :bottom-actions}]] - [:tag {:optional true} - [:or :string :keyword]] - [:timeout {:optional true} - [:maybe :int]] - [:actions {:optional true} - [:vector - [:map - [:label :string] - [:callback ::sm/fn]]]] - [:links {:optional true} - [:vector - [:map - [:label :string] - [:callback ::sm/fn]]]]])) +(def ^:private schema:message + [:map {:title "Message"} + [:type [::sm/one-of #{:success :error :info :warning}]] + [:status {:optional true} + [::sm/one-of #{:visible :hide}]] + [:position {:optional true} + [::sm/one-of #{:fixed :floating :inline}]] + [:notification-type {:optional true} + [::sm/one-of #{:inline :context :toast}]] + [:controls {:optional true} + [::sm/one-of #{:none :close :inline-actions :bottom-actions}]] + [:tag {:optional true} + [:or :string :keyword]] + [:timeout {:optional true} + [:maybe :int]] + [:actions {:optional true} + [:vector + [:map + [:label :string] + [:callback ::sm/fn]]]] + [:links {:optional true} + [:vector + [:map + [:label :string] + [:callback ::sm/fn]]]]]) + +(def ^:private valid-message? + (sm/validator schema:message)) (defn show [data] (dm/assert! "expected valid message map" - (sm/check! schema:message data)) + (valid-message? data)) (ptk/reify ::show ptk/UpdateEvent From 57c60716f0e555a72d458d13f12ca2a630033313 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Mon, 22 Jul 2024 13:12:36 +0200 Subject: [PATCH 419/476] :sparkles: Add minor improvements to notifications-hub component --- frontend/src/app/main/ui/messages.cljs | 57 ++++++++++--------- .../ui/notifications/toast_notification.cljs | 10 ++-- 2 files changed, 35 insertions(+), 32 deletions(-) diff --git a/frontend/src/app/main/ui/messages.cljs b/frontend/src/app/main/ui/messages.cljs index 00df9c3f3d..ba40ad1cfa 100644 --- a/frontend/src/app/main/ui/messages.cljs +++ b/frontend/src/app/main/ui/messages.cljs @@ -17,33 +17,38 @@ (mf/defc notifications-hub [] (let [message (mf/deref refs/message) - - on-close #(st/emit! dmsg/hide) - - toast-message {:type (or (:type message) :info) - :links (:links message) - :on-close on-close - :content (:content message)} - - inline-message {:actions (:actions message) - :links (:links message) - :content (:content message)} - - context-message {:type (or (:type message) :info) - :links (:links message) - :content (:content message)} - - is-context-msg (and (nil? (:timeout message)) (nil? (:actions message))) - is-toast-msg (or (= :toast (:notification-type message)) (some? (:timeout message))) - is-inline-msg (or (= :inline (:notification-type message)) (and (some? (:position message)) (= :floating (:position message))))] + on-close (mf/use-fn #(st/emit! dmsg/hide)) + context? (and (nil? (:timeout message)) + (nil? (:actions message))) + inline? (or (= :inline (:notification-type message)) + (= :floating (:position message))) + toast? (or (= :toast (:notification-type message)) + (some? (:timeout message)))] (when message (cond - is-toast-msg - [:& toast-notification toast-message] - is-inline-msg - [:& inline-notification inline-message] - is-context-msg - [:& context-notification context-message] + toast? + [:& toast-notification + {:type (or (:type message) :info) + :links (:links message) + :on-close on-close + :content (:content message)}] + + inline? + [:& inline-notification + {:actions (:actions message) + :links (:links message) + :content (:content message)}] + + context? + [:& context-notification + {:type (or (:type message) :info) + :links (:links message) + :content (:content message)}] + :else - [:& toast-notification toast-message])))) + [:& toast-notification + {:type (or (:type message) :info) + :links (:links message) + :on-close on-close + :content (:content message)}])))) diff --git a/frontend/src/app/main/ui/notifications/toast_notification.cljs b/frontend/src/app/main/ui/notifications/toast_notification.cljs index c4583c9019..639e605c08 100644 --- a/frontend/src/app/main/ui/notifications/toast_notification.cljs +++ b/frontend/src/app/main/ui/notifications/toast_notification.cljs @@ -38,12 +38,10 @@ neutral-icon)) (mf/defc toast-notification - "These are ephemeral elements that disappear when - the close button is pressed, - the page is refreshed, - the page is navigated to another page or - after 7 seconds, which is enough time to be read, - except for error messages that require user interaction." + "These are ephemeral elements that disappear when the close button + is pressed, the page is refreshed, the page is navigated to another + page or after 7 seconds, which is enough time to be read, except for + error messages that require user interaction." {::mf/props :obj} [{:keys [type content on-close links] :as props}] From 34293326b8f137484c94b595f33223db2ce69535 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Mon, 22 Jul 2024 15:16:36 +0200 Subject: [PATCH 420/476] :sparkles: Add proper deletion/restore helpers to srepl/main --- backend/src/app/loggers/audit.clj | 66 +++++-- backend/src/app/srepl/main.clj | 283 +++++++++++++++++++++++------- 2 files changed, 265 insertions(+), 84 deletions(-) diff --git a/backend/src/app/loggers/audit.clj b/backend/src/app/loggers/audit.clj index 3ef9e94e88..6abd68efd5 100644 --- a/backend/src/app/loggers/audit.clj +++ b/backend/src/app/loggers/audit.clj @@ -192,15 +192,33 @@ (::webhooks/event? resultm) false)})) -(defn- handle-event! - [cfg event] +(defn- event->params + [event] (let [params {:id (uuid/next) :name (::name event) :type (::type event) :profile-id (::profile-id event) - :ip-addr (::ip-addr event) - :context (::context event) - :props (::props event)} + :ip-addr (::ip-addr event "0.0.0.0") + :context (::context event {}) + :props (::props event {}) + :source "backend"} + tnow (::tracked-at event)] + + (cond-> params + (some? tnow) + (assoc :tracked-at tnow)))) + +(defn- append-audit-entry! + [cfg params] + (let [params (-> params + (update :props db/tjson) + (update :context db/tjson) + (update :ip-addr db/inet))] + (db/insert! cfg :audit-log params))) + +(defn- handle-event! + [cfg event] + (let [params (event->params event) tnow (dt/now)] (when (contains? cf/flags :audit-log) @@ -209,12 +227,8 @@ ;; this case we just retry the operation. (let [params (-> params (assoc :created-at tnow) - (assoc :tracked-at tnow) - (update :props db/tjson) - (update :context db/tjson) - (update :ip-addr db/inet) - (assoc :source "backend"))] - (db/insert! cfg :audit-log params))) + (update :tracked-at #(or % tnow)))] + (append-audit-entry! cfg params))) (when (and (or (contains? cf/flags :telemetry) (cf/get :telemetry-enabled)) @@ -226,12 +240,11 @@ ;; NOTE: this is only executed when general audit log is disabled (let [params (-> params (assoc :created-at tnow) - (assoc :tracked-at tnow) - (assoc :props (db/tjson {})) - (assoc :context (db/tjson {})) - (assoc :ip-addr (db/inet "0.0.0.0")) - (assoc :source "backend"))] - (db/insert! cfg :audit-log params))) + (update :tracked-at #(or % tnow)) + (assoc :props {}) + (assoc :context {}) + (assoc :ip-addr "0.0.0.0"))] + (append-audit-entry! cfg params))) (when (and (contains? cf/flags :webhooks) (::webhooks/event? event)) @@ -258,9 +271,9 @@ (defn submit! "Submit audit event to the collector." - [cfg params] + [cfg event] (try - (let [event (d/without-nils params) + (let [event (d/without-nils event) cfg (-> cfg (assoc ::rtry/when rtry/conflict-exception?) (assoc ::rtry/max-retries 6) @@ -269,3 +282,18 @@ (rtry/invoke! cfg db/tx-run! handle-event! event)) (catch Throwable cause (l/error :hint "unexpected error processing event" :cause cause)))) + +(defn insert! + "Submit audit event to the collector, intended to be used only from + command line helpers because this skips all webhooks and telemetry + logic." + [cfg event] + (when (contains? cf/flags :audit-log) + (let [event (d/without-nils event)] + (us/verify! ::event event) + (db/run! cfg (fn [cfg] + (let [tnow (dt/now) + params (-> (event->params event) + (assoc :created-at tnow) + (update :tracked-at #(or % tnow)))] + (append-audit-entry! cfg params))))))) diff --git a/backend/src/app/srepl/main.clj b/backend/src/app/srepl/main.clj index 1c4c5430aa..77f2bd4b8b 100644 --- a/backend/src/app/srepl/main.clj +++ b/backend/src/app/srepl/main.clj @@ -21,8 +21,10 @@ [app.common.uuid :as uuid] [app.config :as cf] [app.db :as db] + [app.db.sql :as-alias sql] [app.features.components-v2 :as feat.comp-v2] [app.features.fdata :as feat.fdata] + [app.loggers.audit :as audit] [app.main :as main] [app.msgbus :as mbus] [app.rpc.commands.auth :as auth] @@ -38,10 +40,12 @@ [app.util.pointer-map :as pmap] [app.util.time :as dt] [app.worker :as wrk] + [clojure.java.io :as io] [clojure.pprint :refer [print-table]] [clojure.stacktrace :as strace] [clojure.tools.namespace.repl :as repl] [cuerdas.core :as str] + [datoteka.fs :as fs] [promesa.exec :as px] [promesa.exec.semaphore :as ps] [promesa.util :as pu])) @@ -475,6 +479,27 @@ ;; DELETE/RESTORE OBJECTS (WITH CASCADE, SOFT) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +(defn delete-file! + "Mark a project for deletion" + [file-id] + (let [file-id (h/parse-uuid file-id) + tnow (dt/now)] + + (audit/insert! main/system + {::audit/name "delete-file" + ::audit/type "action" + ::audit/profile-id uuid/zero + ::audit/props {:id file-id} + ::audit/context {:triggered-by "srepl" + :cause "explicit call to delete-file!"} + ::audit/tracked-at tnow}) + (wrk/invoke! (-> main/system + (assoc ::wrk/task :delete-object) + (assoc ::wrk/params {:object :file + :deleted-at tnow + :id file-id}))) + :deleted)) + (defn- restore-file* [{:keys [::db/conn]} file-id] (db/update! conn :file @@ -502,20 +527,105 @@ :restored) +(defn restore-file! + "Mark a file and all related objects as not deleted" + [file-id] + (let [file-id (h/parse-uuid file-id)] + (db/tx-run! main/system + (fn [system] + (when-let [file (some-> (db/get* system :file + {:id file-id} + {::db/remove-deleted false + ::sql/columns [:id :name]}) + (files/decode-row))] + (audit/insert! system + {::audit/name "restore-file" + ::audit/type "action" + ::audit/profile-id uuid/zero + ::audit/props file + ::audit/context {:triggered-by "srepl" + :cause "explicit call to restore-file!"} + ::audit/tracked-at (dt/now)}) + + (restore-file* system file-id)))))) + +(defn delete-project! + "Mark a project for deletion" + [project-id] + (let [project-id (h/parse-uuid project-id) + tnow (dt/now)] + + (audit/insert! main/system + {::audit/name "delete-project" + ::audit/type "action" + ::audit/profile-id uuid/zero + ::audit/props {:id project-id} + ::audit/context {:triggered-by "srepl" + :cause "explicit call to delete-project!"} + ::audit/tracked-at tnow}) + + (wrk/invoke! (-> main/system + (assoc ::wrk/task :delete-object) + (assoc ::wrk/params {:object :project + :deleted-at tnow + :id project-id}))) + :deleted)) + (defn- restore-project* [{:keys [::db/conn] :as cfg} project-id] - (db/update! conn :project {:deleted-at nil} {:id project-id}) (doseq [{:keys [id]} (db/query conn :file {:project-id project-id} - {::db/columns [:id]})] + {::sql/columns [:id]})] (restore-file* cfg id)) :restored) +(defn restore-project! + "Mark a project and all related objects as not deleted" + [project-id] + (let [project-id (h/parse-uuid project-id)] + (db/tx-run! main/system + (fn [system] + (when-let [project (db/get* system :project + {:id project-id} + {::db/remove-deleted false})] + (audit/insert! system + {::audit/name "restore-project" + ::audit/type "action" + ::audit/profile-id uuid/zero + ::audit/props project + ::audit/context {:triggered-by "srepl" + :cause "explicit call to restore-team!"} + ::audit/tracked-at (dt/now)}) + + (restore-project* system project-id)))))) + +(defn delete-team! + "Mark a team for deletion" + [team-id] + (let [team-id (h/parse-uuid team-id) + tnow (dt/now)] + + (audit/insert! main/system + {::audit/name "delete-team" + ::audit/type "action" + ::audit/profile-id uuid/zero + ::audit/props {:id team-id} + ::audit/context {:triggered-by "srepl" + :cause "explicit call to delete-profile!"} + ::audit/tracked-at tnow}) + + (wrk/invoke! (-> main/system + (assoc ::wrk/task :delete-object) + (assoc ::wrk/params {:object :team + :deleted-at tnow + :id team-id}))) + :deleted)) + (defn- restore-team* [{:keys [::db/conn] :as cfg} team-id] (db/update! conn :team @@ -528,84 +638,127 @@ (doseq [{:keys [id]} (db/query conn :project {:team-id team-id} - {::db/columns [:id]})] + {::sql/columns [:id]})] (restore-project* cfg id)) :restored) -(defn- restore-profile* - [{:keys [::db/conn] :as cfg} profile-id] - (db/update! conn :profile - {:deleted-at nil} - {:id profile-id}) - - (doseq [{:keys [id]} (profile/get-owned-teams conn profile-id)] - (restore-team* cfg id)) - - :restored) - - -(defn restore-deleted-profile! - "Mark a team and all related objects as not deleted" - [profile-id] - (let [profile-id (h/parse-uuid profile-id)] - (db/tx-run! main/system restore-profile* profile-id))) - -(defn restore-deleted-team! +(defn restore-team! "Mark a team and all related objects as not deleted" [team-id] (let [team-id (h/parse-uuid team-id)] - (db/tx-run! main/system restore-team* team-id))) + (db/tx-run! main/system + (fn [system] + (when-let [team (some-> (db/get* system :team + {:id team-id} + {::db/remove-deleted false}) + (teams/decode-row))] + (audit/insert! system + {::audit/name "restore-team" + ::audit/type "action" + ::audit/profile-id uuid/zero + ::audit/props team + ::audit/context {:triggered-by "srepl" + :cause "explicit call to restore-team!"} + ::audit/tracked-at (dt/now)}) -(defn restore-deleted-project! - "Mark a project and all related objects as not deleted" - [project-id] - (let [project-id (h/parse-uuid project-id)] - (db/tx-run! main/system restore-project* project-id))) + (restore-team* system team-id)))))) -(defn restore-deleted-file! - "Mark a file and all related objects as not deleted" - [file-id] - (let [file-id (h/parse-uuid file-id)] - (db/tx-run! main/system restore-file* file-id))) - -(defn delete-team! - "Mark a team for deletion" - [team-id] - (let [team-id (h/parse-uuid team-id)] - (wrk/invoke! (-> main/system - (assoc ::wrk/task :delete-object) - (assoc ::wrk/params {:object :team - :deleted-at (dt/now) - :id team-id}))))) (defn delete-profile! - "Mark a profile for deletion" + "Mark a profile for deletion." [profile-id] - (let [profile-id (h/parse-uuid profile-id)] + (let [profile-id (h/parse-uuid profile-id) + tnow (dt/now)] + + (audit/insert! main/system + {::audit/name "delete-profile" + ::audit/type "action" + ::audit/profile-id uuid/zero + ::audit/context {:triggered-by "srepl" + :cause "explicit call to delete-profile!"} + ::audit/tracked-at tnow}) + (wrk/invoke! (-> main/system (assoc ::wrk/task :delete-object) (assoc ::wrk/params {:object :profile - :deleted-at (dt/now) - :id profile-id}))))) -(defn delete-project! - "Mark a project for deletion" - [project-id] - (let [project-id (h/parse-uuid project-id)] - (wrk/invoke! (-> main/system - (assoc ::wrk/task :delete-object) - (assoc ::wrk/params {:object :project - :deleted-at (dt/now) - :id project-id}))))) + :deleted-at tnow + :id profile-id}))) + :deleted)) -(defn delete-file! - "Mark a project for deletion" - [file-id] - (let [file-id (h/parse-uuid file-id)] - (wrk/invoke! (-> main/system - (assoc ::wrk/task :delete-object) - (assoc ::wrk/params {:object :file - :deleted-at (dt/now) - :id file-id}))))) +(defn restore-profile! + "Mark a team and all related objects as not deleted" + [profile-id] + (let [profile-id (h/parse-uuid profile-id)] + (db/tx-run! main/system + (fn [system] + (when-let [profile (some-> (db/get* system :profile + {:id profile-id} + {::db/remove-deleted false}) + (profile/decode-row))] + (audit/insert! system + {::audit/name "restore-profile" + ::audit/type "action" + ::audit/profile-id uuid/zero + ::audit/props (audit/profile->props profile) + ::audit/context {:triggered-by "srepl" + :cause "explicit call to restore-profile!"} + ::audit/tracked-at (dt/now)}) + + (db/update! system :profile + {:deleted-at nil} + {:id profile-id} + {::db/return-keys false}) + + (doseq [{:keys [id]} (profile/get-owned-teams system profile-id)] + (restore-team* system id)) + + :restored))))) + +(defn delete-profiles-in-bulk! + [system path] + (letfn [(process-data! [system deleted-at emails] + (loop [emails emails + deleted 0 + total 0] + (if-let [email (first emails)] + (if-let [profile (db/get* system :profile + {:email (str/lower email)} + {::db/remove-deleted false})] + (do + (audit/insert! system + {::audit/name "delete-profile" + ::audit/type "action" + ::audit/tracked-at deleted-at + ::audit/props (audit/profile->props profile) + ::audit/context {:triggered-by "srepl" + :cause "explicit call to delete-profiles-in-bulk!"}}) + (wrk/invoke! (-> system + (assoc ::wrk/task :delete-object) + (assoc ::wrk/params {:object :profile + :deleted-at deleted-at + :id (:id profile)}))) + (recur (rest emails) + (inc deleted) + (inc total))) + (recur (rest emails) + deleted + (inc total))) + {:deleted deleted :total total})))] + + (let [path (fs/path path) + deleted-at (dt/minus (dt/now) cf/deletion-delay)] + + (when-not (fs/exists? path) + (throw (ex-info "path does not exists" {:path path}))) + + (db/tx-run! system + (fn [system] + (with-open [reader (io/reader path)] + (process-data! system deleted-at (line-seq reader)))))))) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CASCADE FIXING +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defn process-deleted-profiles-cascade [] From 434209af7d48df97203545d2fd01149fe5b4bc0e Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Tue, 23 Jul 2024 14:07:46 +0200 Subject: [PATCH 421/476] :sparkles: Add timestamp to release build hash --- frontend/scripts/build | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/frontend/scripts/build b/frontend/scripts/build index 2b462db6a5..4ac406cce4 100755 --- a/frontend/scripts/build +++ b/frontend/scripts/build @@ -8,6 +8,7 @@ export CURRENT_VERSION=$1; export BUILD_DATE=$(date -R); export CURRENT_HASH=${CURRENT_HASH:-$(git rev-parse --short HEAD)}; export EXTRA_PARAMS=$SHADOWCLJS_EXTRA_PARAMS; +export TS=$(date +%s); # Some cljs reacts on this environment variable for define more # performant code on macros (example: rumext) @@ -17,7 +18,7 @@ yarn install || exit 1; rm -rf resources/public; rm -rf target/dist; -clojure -M:dev:shadow-cljs release main --config-merge "{:release-version \"${CURRENT_HASH}\"}" $EXTRA_PARAMS || exit 1 +clojure -M:dev:shadow-cljs release main --config-merge "{:release-version \"${CURRENT_HASH}-${TS}\"}" $EXTRA_PARAMS || exit 1 yarn run compile || exit 1; mkdir -p target/dist; From 20333d81796d2a2e7ab1016c89dbb7eacc01bf0c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bel=C3=A9n=20Albeza?= Date: Tue, 23 Jul 2024 14:24:04 +0200 Subject: [PATCH 422/476] :bug: Fix font declarations for Source Sans --- .../styles/common/dependencies/fonts.scss | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/frontend/resources/styles/common/dependencies/fonts.scss b/frontend/resources/styles/common/dependencies/fonts.scss index b3eb70ddf3..7882eb7d3b 100644 --- a/frontend/resources/styles/common/dependencies/fonts.scss +++ b/frontend/resources/styles/common/dependencies/fonts.scss @@ -37,18 +37,18 @@ $_latin-unicode-list: "U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+ @include font-face-variable("vazirmatn", "Vazirmatn-VariableFont", $_arabic-unicode-list); // Source Sans Pro -@include font-face("sourcesanspro", "sourcesanspro-extralight", "200"); -@include font-face("sourcesanspro", "sourcesanspro-extralightitalic", "200", italic); -@include font-face("sourcesanspro", "sourcesanspro-light", "300"); -@include font-face("sourcesanspro", "sourcesanspro-lightitalic", "300", italic); -@include font-face("sourcesanspro", "sourcesanspro-regular", normal); -@include font-face("sourcesanspro", "sourcesanspro-italic", normal, italic); -@include font-face("sourcesanspro", "sourcesanspro-semibold", "600"); -@include font-face("sourcesanspro", "sourcesanspro-semibolditalic", "600", italic); -@include font-face("sourcesanspro", "sourcesanspro-bold", bold); -@include font-face("sourcesanspro", "sourcesanspro-bolditalic", bold, italic); -@include font-face("sourcesanspro", "sourcesanspro-black", "900"); -@include font-face("sourcesanspro", "sourcesanspro-blackitalic", "900", italic); +@include font-face("sourcesanspro", "sourcesanspro-extralight", null, "200"); +@include font-face("sourcesanspro", "sourcesanspro-extralightitalic", null, "200", italic); +@include font-face("sourcesanspro", "sourcesanspro-light", null, "300"); +@include font-face("sourcesanspro", "sourcesanspro-lightitalic", null, "300", italic); +@include font-face("sourcesanspro", "sourcesanspro-regular", null, normal); +@include font-face("sourcesanspro", "sourcesanspro-italic", null, normal, italic); +@include font-face("sourcesanspro", "sourcesanspro-semibold", null, "600"); +@include font-face("sourcesanspro", "sourcesanspro-semibolditalic", null, "600", italic); +@include font-face("sourcesanspro", "sourcesanspro-bold", null, bold); +@include font-face("sourcesanspro", "sourcesanspro-bolditalic", null, bold, italic); +@include font-face("sourcesanspro", "sourcesanspro-black", null, "900"); +@include font-face("sourcesanspro", "sourcesanspro-blackitalic", null, "900", italic); // Roboto mono @include font-face("robotomono", "RobotoMono-Regular", $_latin-unicode-list, normal); From ecb0dc073d1a7437974cbf9deb400d1f569fb92a Mon Sep 17 00:00:00 2001 From: Alejandro Alonso Date: Tue, 23 Jul 2024 15:33:31 +0200 Subject: [PATCH 423/476] :bug: Fix file with invalid library colors --- common/src/app/common/files/defaults.cljc | 2 +- common/src/app/common/files/migrations.cljc | 15 ++++++++++++++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/common/src/app/common/files/defaults.cljc b/common/src/app/common/files/defaults.cljc index 0a2d031dbf..6ef70b5ea5 100644 --- a/common/src/app/common/files/defaults.cljc +++ b/common/src/app/common/files/defaults.cljc @@ -6,4 +6,4 @@ (ns app.common.files.defaults) -(def version 50) +(def version 51) diff --git a/common/src/app/common/files/migrations.cljc b/common/src/app/common/files/migrations.cljc index 528345a6c2..111d050726 100644 --- a/common/src/app/common/files/migrations.cljc +++ b/common/src/app/common/files/migrations.cljc @@ -22,6 +22,7 @@ [app.common.schema :as sm] [app.common.svg :as csvg] [app.common.text :as txt] + [app.common.types.color :as ctc] [app.common.types.component :as ctk] [app.common.types.file :as ctf] [app.common.types.shape :as cts] @@ -1004,6 +1005,17 @@ (update :pages-index update-vals update-container) (update :components update-vals update-container)))) +(def ^:private valid-color? + (sm/lazy-validator ::ctc/color)) + +(defn migrate-up-51 + "This migration fixes library invalid colors" + + [data] + (let [update-colors + (fn [colors] + (into {} (filter #(-> % val valid-color?) colors)))] + (update data :colors update-colors))) (def migrations "A vector of all applicable migrations" @@ -1046,4 +1058,5 @@ {:id 47 :migrate-up migrate-up-47} {:id 48 :migrate-up migrate-up-48} {:id 49 :migrate-up migrate-up-49} - {:id 50 :migrate-up migrate-up-50}]) + {:id 50 :migrate-up migrate-up-50} + {:id 51 :migrate-up migrate-up-51}]) From 2d25df33ce792fa26ac0c1b19e58567ca75b3136 Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Tue, 23 Jul 2024 16:55:32 +0200 Subject: [PATCH 424/476] :sparkles: Add write methods to prototype API --- .../app/main/data/workspace/interactions.cljs | 117 ++++++++---- frontend/src/app/plugins/api.cljs | 2 +- frontend/src/app/plugins/format.cljs | 162 +++++++++++++++++ frontend/src/app/plugins/page.cljs | 79 ++++++++- frontend/src/app/plugins/parser.cljs | 167 ++++++++++++++++++ frontend/src/app/plugins/shape.cljs | 120 ++++++++++++- frontend/src/app/plugins/utils.cljs | 19 ++ frontend/src/app/util/path/format.cljs | 1 + 8 files changed, 622 insertions(+), 45 deletions(-) diff --git a/frontend/src/app/main/data/workspace/interactions.cljs b/frontend/src/app/main/data/workspace/interactions.cljs index a1f72393bf..2fb10ada82 100644 --- a/frontend/src/app/main/data/workspace/interactions.cljs +++ b/frontend/src/app/main/data/workspace/interactions.cljs @@ -28,29 +28,33 @@ ;; --- Flows (defn add-flow - [starting-frame] + ([starting-frame] + (add-flow nil nil nil starting-frame)) - (dm/assert! - "expect uuid" - (uuid? starting-frame)) + ([flow-id page-id name starting-frame] + (dm/assert! + "expect uuid" + (uuid? starting-frame)) - (ptk/reify ::add-flow - ptk/WatchEvent - (watch [it state _] - (let [page (wsh/lookup-page state) + (ptk/reify ::add-flow + ptk/WatchEvent + (watch [it state _] + (let [page (if page-id + (wsh/lookup-page state page-id) + (wsh/lookup-page state)) - flows (get-in page [:options :flows] []) - unames (cfh/get-used-names flows) - name (cfh/generate-unique-name unames "Flow 1") + flows (get-in page [:options :flows] []) + unames (cfh/get-used-names flows) + name (or name (cfh/generate-unique-name unames "Flow 1")) - new-flow {:id (uuid/next) - :name name - :starting-frame starting-frame}] + new-flow {:id (or flow-id (uuid/next)) + :name name + :starting-frame starting-frame}] - (rx/of (dch/commit-changes - (-> (pcb/empty-changes it) - (pcb/with-page page) - (pcb/update-page-option :flows ctp/add-flow new-flow)))))))) + (rx/of (dch/commit-changes + (-> (pcb/empty-changes it) + (pcb/with-page page) + (pcb/update-page-option :flows ctp/add-flow new-flow))))))))) (defn add-flow-selected-frame [] @@ -61,16 +65,35 @@ (rx/of (add-flow (first selected))))))) (defn remove-flow - [flow-id] + ([flow-id] + (remove-flow nil flow-id)) + + ([page-id flow-id] + (dm/assert! (uuid? flow-id)) + (ptk/reify ::remove-flow + ptk/WatchEvent + (watch [it state _] + (let [page (if page-id + (wsh/lookup-page state page-id) + (wsh/lookup-page state))] + (rx/of (dch/commit-changes + (-> (pcb/empty-changes it) + (pcb/with-page page) + (pcb/update-page-option :flows ctp/remove-flow flow-id))))))))) + +(defn update-flow + [page-id flow-id update-fn] (dm/assert! (uuid? flow-id)) - (ptk/reify ::remove-flow + (ptk/reify ::update-flow ptk/WatchEvent (watch [it state _] - (let [page (wsh/lookup-page state)] + (let [page (if page-id + (wsh/lookup-page state page-id) + (wsh/lookup-page state))] (rx/of (dch/commit-changes (-> (pcb/empty-changes it) (pcb/with-page page) - (pcb/update-page-option :flows ctp/remove-flow flow-id)))))))) + (pcb/update-page-option :flows ctp/update-flow flow-id update-fn)))))))) (defn rename-flow [flow-id name] @@ -111,6 +134,18 @@ (or (some ctsi/flow-origin? (map :interactions children)) (some #(ctsi/flow-to? % frame-id) (map :interactions (vals objects)))))) +(defn add-interaction + [page-id shape-id interaction] + (ptk/reify ::add-interaction + ptk/WatchEvent + (watch [_ state _] + (let [page-id (or page-id (:current-page-id state))] + (rx/of (dwsh/update-shapes + [shape-id] + (fn [shape] + (cls/add-new-interaction shape interaction)) + {:page-id page-id})))))) + (defn add-new-interaction ([shape] (add-new-interaction shape nil)) ([shape destination] @@ -138,23 +173,29 @@ (rx/of (add-flow (:id frame)))))))))) (defn remove-interaction - [shape index] - (ptk/reify ::remove-interaction - ptk/WatchEvent - (watch [_ _ _] - (rx/of (dwsh/update-shapes [(:id shape)] - (fn [shape] - (update shape :interactions - ctsi/remove-interaction index))))))) + ([shape index] + (remove-interaction nil shape index)) + ([page-id shape index] + (ptk/reify ::remove-interaction + ptk/WatchEvent + (watch [_ _ _] + (rx/of (dwsh/update-shapes [(:id shape)] + (fn [shape] + (update shape :interactions + ctsi/remove-interaction index)) + {:page-id page-id})))))) (defn update-interaction - [shape index update-fn] - (ptk/reify ::update-interaction - ptk/WatchEvent - (watch [_ _ _] - (rx/of (dwsh/update-shapes [(:id shape)] - (fn [shape] - (update shape :interactions - ctsi/update-interaction index update-fn))))))) + ([shape index update-fn] + (update-interaction shape index update-fn nil)) + ([shape index update-fn options] + (ptk/reify ::update-interaction + ptk/WatchEvent + (watch [_ _ _] + (rx/of (dwsh/update-shapes [(:id shape)] + (fn [shape] + (update shape :interactions + ctsi/update-interaction index update-fn)) + options)))))) (defn remove-all-interactions-nav-to "Remove all interactions that navigate to the given frame." diff --git a/frontend/src/app/plugins/api.cljs b/frontend/src/app/plugins/api.cljs index 27c149d8df..dc1eed7550 100644 --- a/frontend/src/app/plugins/api.cljs +++ b/frontend/src/app/plugins/api.cljs @@ -352,7 +352,7 @@ (openViewer [_] - (let [params {:page-id (:current-page-id @st/state) + (let [params {:page-id (:current-page-id @st/state) :file-id (:current-file-id @st/state) :section "interactions"}] (st/emit! (dw/go-to-viewer params)))) diff --git a/frontend/src/app/plugins/format.cljs b/frontend/src/app/plugins/format.cljs index 4f6047df39..42d116b393 100644 --- a/frontend/src/app/plugins/format.cljs +++ b/frontend/src/app/plugins/format.cljs @@ -10,6 +10,8 @@ [app.common.data.macros :as dm] [app.util.object :as obj])) +(def shape-proxy nil) + (defn format-id [id] (when id (dm/str id))) @@ -422,3 +424,163 @@ [tracks] (when (some? tracks) (format-array format-track tracks))) + + +;; export interface PenpotDissolve { +;; type: 'dissolve'; +;; duration: number; +;; easing?: 'linear' | 'ease' | 'ease-in' | 'ease-out' | 'ease-in-out'; +;; } +;; +;; export interface PenpotSlide { +;; type: 'slide'; +;; way: 'in' | 'out'; +;; direction?: +;; | 'right' +;; | 'left' +;; | 'up' +;; | 'down'; +;; duration: number; +;; offsetEffect?: boolean; +;; easing?: 'linear' | 'ease' | 'ease-in' | 'ease-out' | 'ease-in-out'; +;; } +;; +;; export interface PenpotPush { +;; type: 'push'; +;; direction?: +;; | 'right' +;; | 'left' +;; | 'up' +;; | 'down'; +;; +;; duration: number; +;; easing?: 'linear' | 'ease' | 'ease-in' | 'ease-out' | 'ease-in-out'; +;; } +;; +;; export type PenpotAnimation = PenpotDissolve | PenpotSlide | PenpotPush; + +(defn format-animation + [animation] + (when animation + (obj/clear-empty + (case (:animation-type animation) + + :dissolve + #js {:type "dissolve" + :duration (:duration animation) + :easing (format-key (:easing animation))} + + :slide + #js {:type "slide" + :way (format-key (:way animation)) + :direction (format-key (:direction animation)) + :duration (:duration animation) + :easing (format-key (:easing animation)) + :offsetEffect (:offset-effect animation)} + + :push + #js {:type "push" + :direction (format-key (:direction animation)) + :duration (:duration animation) + :easing (format-key (:easing animation))} + nil)))) + +;;export type PenpotAction = +;; | PenpotNavigateTo +;; | PenpotOpenOverlay +;; | PenpotToggleOverlay +;; | PenpotCloseOverlay +;; | PenpotPreviousScreen +;; | PenpotOpenUrl; +;; +;;export interface PenpotNavigateTo { +;; type: 'navigate-to'; +;; destination: PenpotFrame; +;; preserveScrollPosition?: boolean; +;; animation: PenpotAnimation; +;;} +;; +;;export interface PenpotOverlayAction { +;; destination: PenpotFrame; +;; relativeTo?: PenpotShape; +;; position?: +;; | 'manual' +;; | 'center' +;; | 'top-left' +;; | 'top-right' +;; | 'top-center' +;; | 'bottom-left' +;; | 'bottom-right' +;; | 'bottom-center'; +;; manualPositionLocation?: PenpotPoint; +;; closeWhenClickOutside?: boolean; +;; addBackgroundOverlay?: boolean; +;; animation: PenpotAnimation; +;;} +;; +;;export interface PenpotOpenOverlay extends PenpotOverlayAction { +;; type: 'open-overlay'; +;;} +;; +;;export interface PenpotToggleOverlay extends PenpotOverlayAction { +;; type: 'toggle-overlay'; +;;} +;; +;;export interface PenpotCloseOverlay { +;; type: 'close-overlay'; +;; destination?: PenpotFrame; +;; animation: PenpotAnimation; +;;} +;; +;;export interface PenpotPreviousScreen { +;; type: 'previous-screen'; +;;} +;; +;;export interface PenpotOpenUrl { +;; type: 'open-url'; +;; url: string; +;;} +(defn format-action + [interaction plugin file-id page-id] + (when interaction + (obj/clear-empty + (case (:action-type interaction) + :navigate + #js {:type "navigate-to" + :destination (when (:destination interaction) (shape-proxy plugin file-id page-id (:destination interaction))) + :preserveScrollPosition (:preserve-scroll interaction false) + :animation (format-animation (:animation interaction))} + + :open-overlay + #js {:type "open-overlay" + :destination (when (:destination interaction) (shape-proxy plugin file-id page-id (:destination interaction))) + :relativeTo (when (:relative-to interaction) (shape-proxy plugin file-id page-id (:relative-to interaction))) + :position (format-key (:overlay-pos-type interaction)) + :manualPositionLocation (format-point (:overlay-position interaction)) + :closeWhenClickOutside (:close-click-outside interaction) + :addBackgroundOverlay (:background-overlay interaction) + :animation (format-animation (:animation interaction))} + + :toggle-overlay + #js {:type "toggle-overlay" + :destination (when (:destination interaction) (shape-proxy plugin file-id page-id (:destination interaction))) + :relativeTo (when (:relative-to interaction) (shape-proxy plugin file-id page-id (:relative-to interaction))) + :position (format-key (:overlay-pos-type interaction)) + :manualPositionLocation (format-point (:overlay-position interaction)) + :closeWhenClickOutside (:close-click-outside interaction) + :addBackgroundOverlay (:background-overlay interaction) + :animation (format-animation (:animation interaction))} + + :close-overlay + #js {:type "close-overlay" + :destination (when (:destination interaction) (shape-proxy plugin file-id page-id (:destination interaction))) + :animation (format-animation (:animation interaction))} + + :prev-screen + #js {:type "previous-screen"} + + :open-url + #js {:type "open-url" + :url (:url interaction)} + + nil)))) diff --git a/frontend/src/app/plugins/page.cljs b/frontend/src/app/plugins/page.cljs index 0ace08589f..75df73d2a1 100644 --- a/frontend/src/app/plugins/page.cljs +++ b/frontend/src/app/plugins/page.cljs @@ -8,11 +8,14 @@ "RPC for plugins runtime." (:require [app.common.colors :as cc] + [app.common.data :as d] [app.common.data.macros :as dm] [app.common.record :as crc] [app.common.uuid :as uuid] [app.main.data.workspace :as dw] + [app.main.data.workspace.interactions :as dwi] [app.main.store :as st] + [app.plugins.format :as format] [app.plugins.parser :as parser] [app.plugins.register :as r] [app.plugins.shape :as shape] @@ -20,6 +23,49 @@ [app.util.object :as obj] [cuerdas.core :as str])) +(deftype FlowProxy [$plugin $file $page $id] + Object + (remove [_] + (st/emit! (dwi/remove-flow $page $id)))) + +(defn flow-proxy? [p] + (instance? FlowProxy p)) + +(defn flow-proxy + [plugin-id file-id page-id id] + (crc/add-properties! + (FlowProxy. plugin-id file-id page-id id) + {:name "$plugin" :enumerable false :get (constantly plugin-id)} + {:name "$file" :enumerable false :get (constantly file-id)} + {:name "$page" :enumerable false :get (constantly page-id)} + {:name "$id" :enumerable false :get (constantly id)} + {:name "page" :enumerable false :get (fn [_] (u/locate-page file-id page-id))} + + {:name "name" + :get #(-> % u/proxy->flow :name) + :set + (fn [_ value] + (cond + (or (not (string? value)) (empty? value)) + (u/display-not-valid :name value) + + :else + (st/emit! (dwi/update-flow page-id id #(assoc % :name value)))))} + + {:name "startingFrame" + :get + (fn [self] + (let [frame (-> self u/proxy->flow :starting-frame)] + (u/locate-shape file-id page-id frame))) + :set + (fn [_ value] + (cond + (not (shape/shape-proxy? value)) + (u/display-not-valid :startingFrame value) + + :else + (st/emit! (dwi/update-flow page-id id #(assoc % :starting-frame (obj/get value "$id"))))))})) + (deftype PageProxy [$plugin $file $id] Object (getShapeById @@ -140,7 +186,30 @@ (u/display-not-valid :openPage "Plugin doesn't have 'content:read' permission") :else - (st/emit! (dw/go-to-page $id))))) + (st/emit! (dw/go-to-page $id)))) + + (createFlow + [_ name frame] + (cond + (or (not (string? name)) (empty? name)) + (u/display-not-valid :createFlow-name name) + + (not (shape/shape-proxy? frame)) + (u/display-not-valid :createFlow-frame frame) + + :else + (let [flow-id (uuid/next)] + (st/emit! (dwi/add-flow flow-id $id name (obj/get frame "$id"))) + (flow-proxy $plugin $file $id flow-id)))) + + (removeFlow + [_ flow] + (cond + (not (flow-proxy? flow)) + (u/display-not-valid :removeFlow-flow flow) + + :else + (st/emit! (dwi/remove-flow $id (obj/get flow "$id")))))) (crc/define-properties! PageProxy @@ -192,4 +261,10 @@ (u/display-not-valid :background "Plugin doesn't have 'content:write' permission") :else - (st/emit! (dw/change-canvas-color id {:color value}))))})) + (st/emit! (dw/change-canvas-color id {:color value}))))} + + {:name "flows" + :get + (fn [self] + (let [flows (d/nilv (-> (u/proxy->page self) :options :flows) [])] + (format/format-array #(flow-proxy plugin-id file-id id (:id %)) flows)))})) diff --git a/frontend/src/app/plugins/parser.cljs b/frontend/src/app/plugins/parser.cljs index 53092c5697..fcb2386170 100644 --- a/frontend/src/app/plugins/parser.cljs +++ b/frontend/src/app/plugins/parser.cljs @@ -23,6 +23,12 @@ [color] (if (string? color) (-> color str/lower) color)) +(defn parse-point + [^js point] + (when point + {:x (obj/get point "x") + :y (obj/get point "y")})) + ;; { ;; name?: string; ;; nameLike?: string; @@ -394,3 +400,164 @@ [^js content] (when (some? content) (into [] (map parse-command) content))) + +;; export interface PenpotDissolve { +;; type: 'dissolve'; +;; duration: number; +;; easing?: 'linear' | 'ease' | 'ease-in' | 'ease-out' | 'ease-in-out'; +;; } +;; +;; export interface PenpotSlide { +;; type: 'slide'; +;; way: 'in' | 'out'; +;; direction?: +;; | 'right' +;; | 'left' +;; | 'up' +;; | 'down'; +;; duration: number; +;; offsetEffect?: boolean; +;; easing?: 'linear' | 'ease' | 'ease-in' | 'ease-out' | 'ease-in-out'; +;; } +;; +;; export interface PenpotPush { +;; type: 'push'; +;; direction?: +;; | 'right' +;; | 'left' +;; | 'up' +;; | 'down'; +;; +;; duration: number; +;; easing?: 'linear' | 'ease' | 'ease-in' | 'ease-out' | 'ease-in-out'; +;; } +;; +;; export type PenpotAnimation = PenpotDissolve | PenpotSlide | PenpotPush; + +(defn parse-animation + [^js animation] + (when animation + (let [animation-type (-> (obj/get animation "type") parse-keyword)] + (d/without-nils + (case animation-type + :dissolve + {:type animation-type + :duration (obj/get animation "duration") + :easing (-> (obj/get animation "easing") parse-keyword)} + + :slide + {:type animation-type + :way (-> (obj/get animation "way") parse-keyword) + :direction (-> (obj/get animation "direction") parse-keyword) + :duration (obj/get animation "duration") + :easing (-> (obj/get animation "easing") parse-keyword) + :offset-effect (obj/get animation "offsetEffect")} + + :push + {:type animation-type + :direction (-> (obj/get animation "direction") parse-keyword) + :duration (obj/get animation "duration") + :easing (-> (obj/get animation "easing") parse-keyword)} + + nil))))) + +;;export type PenpotAction = +;; | PenpotNavigateTo +;; | PenpotOpenOverlay +;; | PenpotToggleOverlay +;; | PenpotCloseOverlay +;; | PenpotPreviousScreen +;; | PenpotOpenUrl; +;; +;;export interface PenpotNavigateTo { +;; type: 'navigate-to'; +;; destination: PenpotFrame; +;; preserveScrollPosition?: boolean; +;; animation: PenpotAnimation; +;;} +;; +;;export interface PenpotOverlayAction { +;; destination: PenpotFrame; +;; relativeTo?: PenpotShape; +;; position?: +;; | 'manual' +;; | 'center' +;; | 'top-left' +;; | 'top-right' +;; | 'top-center' +;; | 'bottom-left' +;; | 'bottom-right' +;; | 'bottom-center'; +;; manualPositionLocation?: PenpotPoint; +;; closeWhenClickOutside?: boolean; +;; addBackgroundOverlay?: boolean; +;; animation: PenpotAnimation; +;;} +;; +;;export interface PenpotOpenOverlay extends PenpotOverlayAction { +;; type: 'open-overlay'; +;;} +;; +;;export interface PenpotToggleOverlay extends PenpotOverlayAction { +;; type: 'toggle-overlay'; +;;} +;; +;;export interface PenpotCloseOverlay { +;; type: 'close-overlay'; +;; destination?: PenpotFrame; +;; animation: PenpotAnimation; +;;} +;; +;;export interface PenpotPreviousScreen { +;; type: 'previous-screen'; +;;} +;; +;;export interface PenpotOpenUrl { +;; type: 'open-url'; +;; url: string; +;;} +(defn parse-action + [action] + (when action + (let [action-type (-> (obj/get action "type") parse-keyword)] + (d/without-nils + (case action-type + :navigate-to + {:action-type :navigate + :destination (-> (obj/get action "destination") (obj/get "$id")) + :preserve-scroll (obj/get action "preserveScrollPosition") + :animation (-> (obj/get action "animation") parse-animation)} + + (:open-overlay + :toggle-overlay) + {:action-type action-type + :destination (-> (obj/get action "destination") (obj/get "$id")) + :relative-to (-> (obj/get action "relativeTo") (obj/get "$id")) + :overlay-pos-type (-> (obj/get action "position") parse-keyword) + :overlay-position (-> (obj/get action "manualPositionLocation") parse-point) + :close-click-outside (obj/get action "closeWhenClickOutside") + :background-overlay (obj/get action "addBackgroundOverlay") + :animation (-> (obj/get action "animation") parse-animation)} + + :close-overlay + {:action-type action-type + :destination (-> (obj/get action "destination") (obj/get "$id")) + :animation (-> (obj/get action "animation") parse-animation)} + + :previous-screen + {:action-type :prev-screen} + + :open-url + {:action-type action-type + :url (obj/get action "url")} + + nil))))) + +(defn parse-interaction + [^js interaction] + (when interaction + (let [trigger (-> (obj/get interaction "trigger") parse-keyword) + delay (obj/get interaction "trigger") + action (-> (obj/get interaction "action") parse-action)] + (d/without-nils + (d/patch-object {:event-type trigger :delay delay} action))))) diff --git a/frontend/src/app/plugins/shape.cljs b/frontend/src/app/plugins/shape.cljs index f8014b20be..1a8bb3e639 100644 --- a/frontend/src/app/plugins/shape.cljs +++ b/frontend/src/app/plugins/shape.cljs @@ -25,6 +25,7 @@ [app.common.types.shape :as cts] [app.common.types.shape.blur :as ctsb] [app.common.types.shape.export :as ctse] + [app.common.types.shape.interactions :as ctsi] [app.common.types.shape.layout :as ctl] [app.common.types.shape.path :as ctsp] [app.common.types.shape.radius :as ctsr] @@ -32,6 +33,7 @@ [app.common.uuid :as uuid] [app.main.data.workspace :as dw] [app.main.data.workspace.groups :as dwg] + [app.main.data.workspace.interactions :as dwi] [app.main.data.workspace.libraries :as dwl] [app.main.data.workspace.selection :as dws] [app.main.data.workspace.shape-layout :as dwsl] @@ -52,6 +54,81 @@ [cuerdas.core :as str] [promesa.core :as p])) +(declare shape-proxy) +(declare shape-proxy?) + +(deftype InteractionProxy [$plugin $file $page $shape $index] + Object + (remove [_] + (st/emit! (dwi/remove-interaction {:id $shape} $index)))) + +(defn interaction-proxy? [p] + (instance? InteractionProxy p)) + +(defn interaction-proxy + [plugin-id file-id page-id shape-id index] + (crc/add-properties! + (InteractionProxy. plugin-id file-id page-id shape-id index) + {:name "$plugin" :enumerable false :get (constantly plugin-id)} + {:name "$file" :enumerable false :get (constantly file-id)} + {:name "$page" :enumerable false :get (constantly page-id)} + {:name "$shape" :enumerable false :get (constantly shape-id)} + {:name "$index" :enumerable false :get (constantly index)} + + ;; Not enumerable so we don't have an infinite loop + {:name "shape" :enumerable false + :get (fn [_] (shape-proxy plugin-id file-id page-id shape-id))} + + {:name "trigger" + :get #(-> % u/proxy->interaction :event-type format/format-key) + :set + (fn [_ value] + (let [value (parser/parse-keyword value)] + (cond + (not (contains? ctsi/event-types value)) + (u/display-not-valid :trigger value) + + :else + (st/emit! (dwi/update-interaction + {:id shape-id} + index + #(assoc % :event-type value) + {:page-id page-id})))))} + + {:name "delay" + :get #(-> % u/proxy->interaction :delay) + :set + (fn [_ value] + (cond + (or (not (number? value)) (not (pos? value))) + (u/display-not-valid :delay value) + + :else + (st/emit! (dwi/update-interaction + {:id shape-id} + index + #(assoc % :delay value) + {:page-id page-id}))))} + + {:name "action" + :get #(-> % u/proxy->interaction (format/format-action plugin-id file-id page-id)) + :set + (fn [self value] + (let [params (parser/parse-action value) + interaction + (-> (u/proxy->interaction self) + (d/patch-object params))] + (cond + (not (sm/validate ::ctsi/interaction interaction)) + (u/display-not-valid :action interaction) + + :else + (st/emit! (dwi/update-interaction + {:id shape-id} + index + #(d/patch-object % params) + {:page-id page-id})))))})) + (def lib-typography-proxy? nil) (def lib-component-proxy nil) @@ -62,8 +139,6 @@ (dwt/current-paragraph-values {:shape shape :attrs txt/paragraph-attrs}) (dwt/current-text-values {:shape shape :attrs txt/text-node-attrs}))) -(declare shape-proxy) -(declare shape-proxy?) (defn- shadow-defaults [shadow] @@ -446,6 +521,7 @@ [_] (st/emit! (dwl/detach-component $id))) + ;; Export (export [self value] (let [value (parser/parse-export value)] @@ -471,7 +547,31 @@ (rx/mapcat #(rp/cmd! :export {:cmd :get-resource :wait true :id (:id %) :blob? true})) (rx/mapcat #(.arrayBuffer %)) (rx/map #(js/Uint8Array. %)) - (rx/subs! resolve reject))))))))) + (rx/subs! resolve reject)))))))) + + ;; Interactions + (addInteraction + [self interaction] + (let [interaction + (-> ctsi/default-interaction + (d/patch-object (parser/parse-interaction interaction)))] + (cond + (not (sm/validate ::ctsi/interaction interaction)) + (u/display-not-valid :addInteraction interaction) + + :else + (let [index (-> (u/proxy->shape self) (:interactions []) count)] + (st/emit! (dwi/add-interaction $page $id interaction)) + (interaction-proxy $plugin $file $page $id index))))) + + (removeInteraction + [_ interaction] + (cond + (not (interaction-proxy? interaction)) + (u/display-not-valid :removeInteraction interaction) + + :else + (st/emit! (dwi/remove-interaction {:id $id} (obj/get interaction "$index")))))) (defn shape-proxy? [p] (instance? ShapeProxy p)) @@ -480,6 +580,8 @@ (do (set! flex/shape-proxy? shape-proxy?) (set! grid/shape-proxy? shape-proxy?)) +(set! format/shape-proxy shape-proxy) + (crc/define-properties! ShapeProxy {:name js/Symbol.toStringTag @@ -1036,7 +1138,17 @@ id (obj/get self "$id") objects (u/locate-objects file-id page-id)] (when (ctl/grid-layout-immediate-child-id? objects id) - (grid/layout-cell-proxy plugin-id file-id page-id id))))}) + (grid/layout-cell-proxy plugin-id file-id page-id id))))} + + + ;; Interactions + {:name "interactions" + :get + (fn [self] + (let [interactions (-> self u/proxy->shape :interactions)] + (format/format-array + #(interaction-proxy plugin-id file-id page-id id %) + (range 0 (count interactions)))))}) (cond-> (or (cfh/frame-shape? data) (cfh/group-shape? data) (cfh/svg-raw-shape? data) (cfh/bool-shape? data)) (crc/add-properties! diff --git a/frontend/src/app/plugins/utils.cljs b/frontend/src/app/plugins/utils.cljs index 4df6207d89..0e143834e5 100644 --- a/frontend/src/app/plugins/utils.cljs +++ b/frontend/src/app/plugins/utils.cljs @@ -113,6 +113,25 @@ (when (and (some? file-id) (some? id)) (locate-library-component file-id id)))) +(defn proxy->flow + [proxy] + (let [file-id (obj/get proxy "$file") + page-id (obj/get proxy "$page") + flow-id (obj/get proxy "$id") + page (locate-page file-id page-id)] + (when (some? page) + (d/seek #(= (:id %) flow-id) (-> page :options :flows))))) + +(defn proxy->interaction + [proxy] + (let [file-id (obj/get proxy "$file") + page-id (obj/get proxy "$page") + shape-id (obj/get proxy "$shape") + index (obj/get proxy "$index") + shape (locate-shape file-id page-id shape-id)] + (when (some? shape) + (get-in shape [:interactions index])))) + (defn get-data ([self attr] (-> (obj/get self "_data") diff --git a/frontend/src/app/util/path/format.cljs b/frontend/src/app/util/path/format.cljs index b120ff4d33..5ec19173a6 100644 --- a/frontend/src/app/util/path/format.cljs +++ b/frontend/src/app/util/path/format.cljs @@ -134,3 +134,4 @@ (catch :default err (.error js/console err) nil))) + From 975efd80cbc28b11d9c428b1c19a8a540ffaf7e8 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Mon, 22 Jul 2024 13:13:40 +0200 Subject: [PATCH 425/476] :sparkles: Add maintenance predefined notification --- frontend/src/app/main/data/common.cljs | 14 ++++++++++++++ frontend/translations/en.po | 4 ++++ frontend/translations/es.po | 4 ++++ 3 files changed, 22 insertions(+) diff --git a/frontend/src/app/main/data/common.cljs b/frontend/src/app/main/data/common.cljs index 4bab615e94..839dd5c29e 100644 --- a/frontend/src/app/main/data/common.cljs +++ b/frontend/src/app/main/data/common.cljs @@ -13,6 +13,7 @@ [app.main.data.modal :as modal] [app.main.features :as features] [app.main.repo :as rp] + [app.main.store :as st] [app.util.i18n :refer [tr]] [beicon.v2.core :as rx] [potok.v2.core :as ptk])) @@ -58,6 +59,10 @@ [] (.reload js/location)) +(defn hide-notifications! + [] + (st/emit! msg/hide)) + (defn handle-notification [{:keys [message code level] :as params}] (ptk/reify ::show-notification @@ -75,6 +80,15 @@ :actions [{:label "Refresh" :callback force-reload!}] :tag :notification))) + :maintenance + (rx/of (msg/dialog + :content (tr "notifications.by-code.maintenance") + :controls :inline-actions + :type level + :actions [{:label (tr "labels.accept") + :callback hide-notifications!}] + :tag :notification)) + (rx/of (msg/dialog :content message :controls :close diff --git a/frontend/translations/en.po b/frontend/translations/en.po index 7a972067de..cc72e0264a 100644 --- a/frontend/translations/en.po +++ b/frontend/translations/en.po @@ -2209,6 +2209,10 @@ msgstr "Update a component in a shared library" msgid "notifications.by-code.upgrade-version" msgstr "A new version is available, please refresh the page" +#: src/app/main/data/common.cljs +msgid "notifications.by-code.maintenance" +msgstr "Maintenance break: we will be down for a short maintenance within 5 minutes." + #: src/app/main/ui/dashboard/team.cljs msgid "notifications.invitation-email-sent" msgstr "Invitation sent successfully" diff --git a/frontend/translations/es.po b/frontend/translations/es.po index 3b9bd101db..b511d8f654 100644 --- a/frontend/translations/es.po +++ b/frontend/translations/es.po @@ -2285,6 +2285,10 @@ msgstr "Actualizar un componente en biblioteca" msgid "notifications.by-code.upgrade-version" msgstr "Una nueva versión está disponible, por favor actualiza la página" +#: src/app/main/data/common.cljs +msgid "notifications.by-code.maintenance" +msgstr "Pausa de mantenimiento: en los próximos 5 minutos estaremos fuera de servicio por un breve mantenimiento." + #: src/app/main/ui/dashboard/team.cljs msgid "notifications.invitation-email-sent" msgstr "Invitación enviada con éxito" From e84d9358d1963aac236081ce405312669a30276c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Barrag=C3=A1n=20Merino?= Date: Tue, 23 Jul 2024 17:39:59 +0200 Subject: [PATCH 426/476] :paperclip: Add Contributing to the TOC --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 52171b8c94..848b3efd18 100644 --- a/README.md +++ b/README.md @@ -50,6 +50,7 @@ Penpot’s latest [huge release 2.0](https://penpot.app/dev-diaries), takes the - [Why Penpot](#why-penpot) - [Getting Started](#getting-started) - [Community](#community) +- [Contributing](#contributing) - [Resources](#resources) - [License](#license) From 12d65c7743ffe0cc73f86b93bc1cb406c70c687d Mon Sep 17 00:00:00 2001 From: Eva Marco Date: Tue, 23 Jul 2024 12:33:50 +0200 Subject: [PATCH 427/476] :sparkles: Add z-index tokens to the ds --- frontend/src/app/main/ui/ds/z-index.scss | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 frontend/src/app/main/ui/ds/z-index.scss diff --git a/frontend/src/app/main/ui/ds/z-index.scss b/frontend/src/app/main/ui/ds/z-index.scss new file mode 100644 index 0000000000..4d0e6c592e --- /dev/null +++ b/frontend/src/app/main/ui/ds/z-index.scss @@ -0,0 +1,21 @@ +// This Source Code Form is subject to the terms of the Mozilla Public +// License, v. 2.0. If a copy of the MPL was not distributed with this +// file, You can obtain one at http://mozilla.org/MPL/2.0/. +// +// Copyright (c) KALEIDOS INC + +$z-index-auto: auto; +$z-index-100: 100; +$z-index-200: 200; +$z-index-300: 300; +$z-index-400: 400; +$z-index-500: 500; + +:global(:root) { + --z-index-auto: #{$z-index-auto}; // Index for elements such as workspace, rulers ... + --z-index-panels: #{$z-index-100}; // Index for elements such as toolbars, palettes ... + --z-index-guides: #{$z-index-200}; // Index for guides + --z-index-set: #{$z-index-300}; // Index for configuration elements like modals, color picker, grid edition elements + --z-index-dropdown: #{$z-index-400}; // Index for dropdown like elements, selects, menus, dropdowns + --z-index-notifications: #{$z-index-500}; // Index for notification +} From 111add1ed62a2746ad8256f3b5147fe8c473bd34 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Wed, 24 Jul 2024 08:40:31 +0200 Subject: [PATCH 428/476] :bug: Fix issue on merging stanging to develop --- backend/src/app/srepl/main.clj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/src/app/srepl/main.clj b/backend/src/app/srepl/main.clj index 98cb5b9cb0..a5f002b8dd 100644 --- a/backend/src/app/srepl/main.clj +++ b/backend/src/app/srepl/main.clj @@ -752,7 +752,7 @@ {:deleted deleted :total total})))] (let [path (fs/path path) - deleted-at (dt/minus (dt/now) cf/deletion-delay)] + deleted-at (dt/minus (dt/now) (cf/get-deletion-delay))] (when-not (fs/exists? path) (throw (ex-info "path does not exists" {:path path}))) From e5daa00d730cd4a20af08ec0c6bfb8d825a8676b Mon Sep 17 00:00:00 2001 From: Eva Marco Date: Tue, 23 Jul 2024 09:44:17 +0200 Subject: [PATCH 429/476] :sparkles: Add elevation tokens to ds --- frontend/src/app/main/ui/ds/colors.scss | 6 ++++++ frontend/src/app/main/ui/ds/elevations.scss | 12 ++++++++++++ 2 files changed, 18 insertions(+) create mode 100644 frontend/src/app/main/ui/ds/elevations.scss diff --git a/frontend/src/app/main/ui/ds/colors.scss b/frontend/src/app/main/ui/ds/colors.scss index 488b7e1a86..aa21f26d20 100644 --- a/frontend/src/app/main/ui/ds/colors.scss +++ b/frontend/src/app/main/ui/ds/colors.scss @@ -4,6 +4,8 @@ // // Copyright (c) KALEIDOS INC +@use "sass:color"; + $mint-150: #7efff5; $mint-250: #00d1b8; $mint-700: #426158; @@ -69,6 +71,8 @@ $grayish-blue-500: #8f9da3; --color-foreground-primary: #{$black}; --color-foreground-secondary: #{$blue-teal-700}; + + --color-shadow: #{color.change($blue-teal-700, $alpha: 0.2)}; } :global(.default) { @@ -94,4 +98,6 @@ $grayish-blue-500: #8f9da3; --color-foreground-primary: #{$white}; --color-foreground-secondary: #{$grayish-blue-500}; + + --color-shadow: #{color.change($black, $alpha: 0.6)}; } diff --git a/frontend/src/app/main/ui/ds/elevations.scss b/frontend/src/app/main/ui/ds/elevations.scss new file mode 100644 index 0000000000..477b0ca2f3 --- /dev/null +++ b/frontend/src/app/main/ui/ds/elevations.scss @@ -0,0 +1,12 @@ +// This Source Code Form is subject to the terms of the Mozilla Public +// License, v. 2.0. If a copy of the MPL was not distributed with this +// file, You can obtain one at http://mozilla.org/MPL/2.0/. +// +// Copyright (c) KALEIDOS INC + +$elevation-shadow: 0 0 10px 0 var(--color-shadow); + +:global(.light), +:global(.default) { + --elevation-shadow: #{$elevation-shadow}; +} From 81bd30a11bb12642ffdd26b11debc3108f2a55d4 Mon Sep 17 00:00:00 2001 From: Pablo Alba Date: Wed, 24 Jul 2024 09:12:28 +0200 Subject: [PATCH 430/476] :sparkles: Consolidate templates new order and naming --- CHANGES.md | 4 ++++ backend/resources/app/onboarding.edn | 28 +++++++++++------------ frontend/src/app/main/data/dashboard.cljs | 14 +----------- 3 files changed, 19 insertions(+), 27 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index ee2b399006..8164f0a6be 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -2,6 +2,10 @@ ## 2.1.1 +### :sparkles: New features + +- Consolidate templates new order and naming [Taiga #8392](https://tree.taiga.io/project/penpot/task/8392) + ### :bug: Bugs fixed - Fix pencil loader [Taiga #8348](https://tree.taiga.io/project/penpot/issue/8348) diff --git a/backend/resources/app/onboarding.edn b/backend/resources/app/onboarding.edn index 20c9f9fc37..d0810dd9f2 100644 --- a/backend/resources/app/onboarding.edn +++ b/backend/resources/app/onboarding.edn @@ -1,4 +1,16 @@ -[{:id "tutorial-for-beginners" +[{:id "wireframing-kit" + :name "Wireframe library" + :file-uri "https://github.com/penpot/penpot-files/raw/binary-files/wireframing-kit.penpot"} + {:id "prototype-examples" + :name "Prototipe template" + :file-uri "https://github.com/penpot/penpot-files/raw/binary-files/prototype-examples.penpot"} + {:id "plants-app" + :name "UI mockup example" + :file-uri "https://github.com/penpot/penpot-files/raw/binary-files/Plants-app.penpot"} + {:id "penpot-design-system" + :name "Design system example" + :file-uri "https://github.com/penpot/penpot-files/raw/binary-files/Penpot-Design-system.penpot"} + {:id "tutorial-for-beginners" :name "Tutorial for beginners" :file-uri "https://github.com/penpot/penpot-files/raw/binary-files/tutorial-for-beginners.penpot"} {:id "lucide-icons" @@ -7,12 +19,6 @@ {:id "font-awesome" :name "Font Awesome" :file-uri "https://github.com/penpot/penpot-files/raw/binary-files/Font-Awesome.penpot"} - {:id "plants-app" - :name "Plants app" - :file-uri "https://github.com/penpot/penpot-files/raw/binary-files/Plants-app.penpot"} - {:id "wireframing-kit" - :name "Wireframing Kit" - :file-uri "https://github.com/penpot/penpot-files/raw/binary-files/wireframing-kit.penpot"} {:id "black-white-mobile-templates" :name "Black & White Mobile Templates" :file-uri "https://github.com/penpot/penpot-files/raw/binary-files/Black-White-Mobile-Templates.penpot"} @@ -30,10 +36,4 @@ :file-uri "https://github.com/penpot/penpot-files/raw/binary-files/Open-Color-Scheme.penpot"} {:id "flex-layout-playground" :name "Flex Layout Playground" - :file-uri "https://github.com/penpot/penpot-files/raw/binary-files/Flex-Layout-Playground.penpot"} - {:id "prototype-examples" - :name "Prototipe template" - :file-uri "https://github.com/penpot/penpot-files/raw/binary-files/prototype-examples.penpot"} - {:id "penpot-design-system" - :name "Design system example" - :file-uri "https://github.com/penpot/penpot-files/raw/binary-files/Penpot-Design-system.penpot"}] + :file-uri "https://github.com/penpot/penpot-files/raw/binary-files/Flex-Layout-Playground.penpot"}] diff --git a/frontend/src/app/main/data/dashboard.cljs b/frontend/src/app/main/data/dashboard.cljs index 02fb05be42..6e5e53d1a1 100644 --- a/frontend/src/app/main/data/dashboard.cljs +++ b/frontend/src/app/main/data/dashboard.cljs @@ -299,19 +299,7 @@ (ptk/reify ::libraries-fetched ptk/UpdateEvent (update [_ state] - (let [templates-a-b-test? (cf/external-feature-flag "dashboard-01" "test") - remove-ids (if templates-a-b-test? - #{"wireframing-kit" "prototype-examples" "plants-app" "penpot-design-system"} - #{"prototype-examples" "penpot-design-system"}) - libraries (cond->> libraries - :always - (remove #(contains? remove-ids (:id %))) - templates-a-b-test? - (concat [{:id "wireframing-kit", :name "Wireframe library"} - {:id "prototype-examples", :name "Prototype template"} - {:id "plants-app", :name "UI mockup example"} - {:id "penpot-design-system", :name "Design system example"}]))] - (assoc state :builtin-templates libraries))))) + (assoc state :builtin-templates libraries)))) (defn fetch-builtin-templates [] From 50fe715fba05d51a1f32cc58d4db68b2d1ec40c7 Mon Sep 17 00:00:00 2001 From: Pablo Alba Date: Mon, 22 Jul 2024 13:36:15 +0200 Subject: [PATCH 431/476] :bug: Fix Components are not dragged from the group to the assets tab --- CHANGES.md | 1 + .../ui/workspace/sidebar/assets/components.cljs | 12 ++++-------- .../ui/workspace/sidebar/assets/components.scss | 17 +++++++++++++++++ 3 files changed, 22 insertions(+), 8 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index b3a2d93a51..a0e3a3d3f6 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -15,6 +15,7 @@ ### :bug: Bugs fixed - Fix pencil loader [Taiga #8348](https://tree.taiga.io/project/penpot/issue/8348) +- Fix components are not dragged from the group to the assets tab [Taiga #8273](https://tree.taiga.io/project/penpot/issue/8273) ## 2.1.0 - Things can only get better! diff --git a/frontend/src/app/main/ui/workspace/sidebar/assets/components.cljs b/frontend/src/app/main/ui/workspace/sidebar/assets/components.cljs index eb2c59c01a..7461f4202a 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/assets/components.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/assets/components.cljs @@ -241,14 +241,9 @@ (when group-open? [:* - (when-let [components (not-empty (get groups "" []))] + (let [components (not-empty (get groups "" []))] [:div {:class-name (stl/css-case :asset-grid listing-thumbs? - :asset-enum (not listing-thumbs?) - :drop-space (and - (empty? components) - (some? groups) - (not dragging?) - local)) + :asset-enum (not listing-thumbs?)) :on-drag-enter on-drag-enter :on-drag-leave on-drag-leave :on-drag-over dom/prevent-default @@ -261,7 +256,8 @@ (when (and (empty? components) (some? groups) local) - [:div {:class (stl/css :drop-space)}]) + [:div {:class (stl/css-case :drop-space true + :drop-space-small (not dragging?))}]) (for [component components] [:& components-item diff --git a/frontend/src/app/main/ui/workspace/sidebar/assets/components.scss b/frontend/src/app/main/ui/workspace/sidebar/assets/components.scss index 72706d6015..2c351e8df7 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/assets/components.scss +++ b/frontend/src/app/main/ui/workspace/sidebar/assets/components.scss @@ -10,6 +10,10 @@ height: $s-12; } +.drop-space-small { + height: $s-2; +} + .asset-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax($s-96, 1fr)); @@ -43,6 +47,7 @@ background-color: var(--assets-item-name-background-color); border: $s-1 solid transparent; color: var(--assets-item-name-foreground-color); + input { @include textEllipsis; @include bodySmallTypography; @@ -50,11 +55,13 @@ height: auto; padding: 0; } + span { display: flex; align-items: center; height: 100%; } + &.editing { border-color: var(--input-border-color-focus); border-radius: $br-4; @@ -72,6 +79,7 @@ &.selected { border: $s-2 solid var(--assets-item-border-color); + &::before { content: " "; position: absolute; @@ -123,21 +131,27 @@ &:not(:last-child) { margin-bottom: $s-4; } + &:hover { background-color: var(--assets-item-background-color-hover); + .item-name { color: var(--assets-item-name-foreground-color-hover); + &.editing { background: var(--input-background-color); + input { color: var(--input-foreground-color-active); } + span svg { stroke: var(--input-foreground-color-active); } } } } + &.selected { border: $s-1 solid var(--assets-item-border-color); } @@ -148,6 +162,7 @@ @include textEllipsis; order: 2; color: var(--assets-item-name-foreground-color); + input { @include textEllipsis; @include bodySmallTypography; @@ -155,6 +170,7 @@ height: $s-32; padding: $s-4; } + span { display: flex; place-items: center; @@ -199,6 +215,7 @@ width: $s-28; margin-left: $s-2; border-radius: $br-8; + svg { @extend .button-icon; stroke: var(--icon-foreground); From 05393371214a51d07b9c9e48bcb57b35ec39a0da Mon Sep 17 00:00:00 2001 From: Pablo Alba Date: Mon, 22 Jul 2024 14:30:14 +0200 Subject: [PATCH 432/476] :bug: Fix user cannot close comment creation tool --- CHANGES.md | 5 ++++- frontend/src/app/main/ui/workspace/top_toolbar.cljs | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index a0e3a3d3f6..06e56866df 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -10,12 +10,15 @@ ### :sparkles: New features +### :bug: Bugs fixed + +- Fix components are not dragged from the group to the assets tab [Taiga #8273](https://tree.taiga.io/project/penpot/issue/8273) + ## 2.1.1 ### :bug: Bugs fixed - Fix pencil loader [Taiga #8348](https://tree.taiga.io/project/penpot/issue/8348) -- Fix components are not dragged from the group to the assets tab [Taiga #8273](https://tree.taiga.io/project/penpot/issue/8273) ## 2.1.0 - Things can only get better! diff --git a/frontend/src/app/main/ui/workspace/top_toolbar.cljs b/frontend/src/app/main/ui/workspace/top_toolbar.cljs index 82e3444452..fb9f3473cf 100644 --- a/frontend/src/app/main/ui/workspace/top_toolbar.cljs +++ b/frontend/src/app/main/ui/workspace/top_toolbar.cljs @@ -91,7 +91,7 @@ hide-toolbar? (mf/deref toolbar-hidden) interrupt - (mf/use-fn #(st/emit! :interrupt)) + (mf/use-fn #(st/emit! :interrupt (dw/clear-edition-mode))) select-drawtool (mf/use-fn From 166b8c806c300ca9078df80ba28b1c465011671b Mon Sep 17 00:00:00 2001 From: Pablo Alba Date: Thu, 11 Jul 2024 11:51:40 +0200 Subject: [PATCH 433/476] :bug: Fix can't collapse colors and typograhies groups when searching assets --- .../src/app/main/ui/workspace/sidebar/assets/colors.cljs | 6 ++++-- .../app/main/ui/workspace/sidebar/assets/typographies.cljs | 4 +++- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/frontend/src/app/main/ui/workspace/sidebar/assets/colors.cljs b/frontend/src/app/main/ui/workspace/sidebar/assets/colors.cljs index 4f4e7ef8b1..965f02bb37 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/assets/colors.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/assets/colors.cljs @@ -264,8 +264,10 @@ multi-colors? multi-assets? on-asset-click on-assets-delete on-clear-selection on-group on-rename-group on-ungroup colors selected-full]}] - (let [group-open? (or ^boolean force-open? - ^boolean (get open-groups prefix (if (= prefix "") true false))) + (let [group-open? (if (false? (get open-groups prefix)) ;; if the user has closed it specifically, respect that + false + (or ^boolean force-open? + ^boolean (get open-groups prefix (if (= prefix "") true false)))) dragging* (mf/use-state false) dragging? (deref dragging*) diff --git a/frontend/src/app/main/ui/workspace/sidebar/assets/typographies.cljs b/frontend/src/app/main/ui/workspace/sidebar/assets/typographies.cljs index 6c5ae2fd28..022bbebc9f 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/assets/typographies.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/assets/typographies.cljs @@ -128,7 +128,9 @@ [{:keys [file-id prefix groups open-groups force-open? file local? selected local-data editing-id renaming-id on-asset-click handle-change apply-typography on-rename-group on-ungroup on-context-menu selected-full]}] - (let [group-open? (get open-groups prefix true) + (let [group-open? (if (false? (get open-groups prefix)) ;; if the user has closed it specifically, respect that + false + (get open-groups prefix true)) dragging* (mf/use-state false) dragging? (deref dragging*) selected-paths (mf/with-memo [selected-full] From 285119b2e54b14e29f948117ad4e8892405d3600 Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Wed, 24 Jul 2024 13:43:50 +0200 Subject: [PATCH 434/476] :arrow_up: Update plugins runtime --- frontend/resources/plugins-runtime/index.js | 321 ++++++++++---------- 1 file changed, 167 insertions(+), 154 deletions(-) diff --git a/frontend/resources/plugins-runtime/index.js b/frontend/resources/plugins-runtime/index.js index ef3f216f8d..4854dfacaf 100644 --- a/frontend/resources/plugins-runtime/index.js +++ b/frontend/resources/plugins-runtime/index.js @@ -33,7 +33,7 @@ const k = globalThis, { Error: ue, RangeError: Js, ReferenceError: lt, - SyntaxError: er, + SyntaxError: tr, TypeError: v, AggregateError: Hr } = globalThis, { @@ -44,7 +44,7 @@ const k = globalThis, { freeze: y, getOwnPropertyDescriptor: J, getOwnPropertyDescriptors: Ze, - getOwnPropertyNames: Ft, + getOwnPropertyNames: Dt, getPrototypeOf: j, is: Nr, isFrozen: jl, @@ -60,7 +60,7 @@ const k = globalThis, { } = _n, { species: Vr, toStringTag: qe, - iterator: tr, + iterator: rr, matchAll: Po, unscopables: Qs, keyFor: ea, @@ -84,7 +84,7 @@ const k = globalThis, { ownKeys: De, preventExtensions: ia, set: Io -} = Ys, { isArray: Et, prototype: _e } = Bs, { prototype: Nt } = Pe, { prototype: Rr } = RegExp, { prototype: rr } = Ct, { prototype: Le } = pe, { prototype: Or } = Me, { prototype: Co } = $t, { prototype: wn } = Function, { prototype: $o } = Ks, { prototype: No } = j( +} = Ys, { isArray: Et, prototype: _e } = Bs, { prototype: Nt } = Pe, { prototype: Rr } = RegExp, { prototype: nr } = Ct, { prototype: Le } = pe, { prototype: Or } = Me, { prototype: Co } = $t, { prototype: wn } = Function, { prototype: $o } = Ks, { prototype: No } = j( // eslint-disable-next-line no-empty-function, func-names function* () { } @@ -94,14 +94,14 @@ const k = globalThis, { ), Ro = ( /** @type {any} */ P(_e.flatMap) -), gr = P(_e.pop), X = P(_e.push), la = P(_e.slice), ua = P(_e.some), Oo = P(_e.sort), da = P(_e[tr]), $e = P(Nt.set), Ue = P(Nt.get), Lr = P(Nt.has), fa = P(Nt.delete), pa = P(Nt.entries), ma = P(Nt[tr]), Sn = P(rr.add); -P(rr.delete); -const Vn = P(rr.forEach), En = P(rr.has), ha = P(rr[tr]), xn = P(Rr.test), kn = P(Rr.exec), ga = P(Rr[Po]), Mo = P(Le.endsWith), Lo = P(Le.includes), ya = P(Le.indexOf); +), gr = P(_e.pop), X = P(_e.push), la = P(_e.slice), ua = P(_e.some), Oo = P(_e.sort), da = P(_e[rr]), $e = P(Nt.set), Ue = P(Nt.get), Lr = P(Nt.has), fa = P(Nt.delete), pa = P(Nt.entries), ma = P(Nt[rr]), Sn = P(nr.add); +P(nr.delete); +const Vn = P(nr.forEach), En = P(nr.has), ha = P(nr[rr]), xn = P(Rr.test), kn = P(Rr.exec), ga = P(Rr[Po]), Mo = P(Le.endsWith), Lo = P(Le.includes), ya = P(Le.indexOf); P(Le.match); const yr = P(No.next), Fo = P(No.throw), vr = ( /** @type {any} */ P(Le.replace) -), va = P(Le.search), Pn = P(Le.slice), Tn = P(Le.split), Do = P(Le.startsWith), _a = P(Le[tr]), ba = P(Or.delete), L = P(Or.get), An = P(Or.has), ie = P(Or.set), Fr = P(Co.add), nr = P(Co.has), wa = P(wn.toString), Sa = P(tn); +), va = P(Le.search), Pn = P(Le.slice), Tn = P(Le.split), Do = P(Le.startsWith), _a = P(Le[rr]), ba = P(Or.delete), L = P(Or.get), An = P(Or.has), ie = P(Or.set), Fr = P(Co.add), or = P(Co.has), wa = P(wn.toString), Sa = P(tn); P($o.catch); const Uo = ( /** @type {any} */ @@ -131,14 +131,14 @@ function Pa() { } if (Pa()) throw v("SES failed to initialize, sloppy mode (SES_NO_SLOPPY)"); -const { freeze: at } = Object, { apply: Ta } = Reflect, Cn = (t) => (e, ...r) => Ta(t, e, r), Aa = Cn(Array.prototype.push), Wn = Cn(Array.prototype.includes), Ia = Cn(String.prototype.split), nt = JSON.stringify, ar = (t, ...e) => { +const { freeze: at } = Object, { apply: Ta } = Reflect, Cn = (t) => (e, ...r) => Ta(t, e, r), Aa = Cn(Array.prototype.push), Wn = Cn(Array.prototype.includes), Ia = Cn(String.prototype.split), nt = JSON.stringify, ir = (t, ...e) => { let r = t[0]; for (let n = 0; n < e.length; n += 1) r = `${r}${e[n]}${t[n + 1]}`; throw Error(r); }, Go = (t, e = !1) => { const r = [], n = (c, l, u = void 0) => { - typeof c == "string" || ar`Environment option name ${nt(c)} must be a string.`, typeof l == "string" || ar`Environment option default setting ${nt( + typeof c == "string" || ir`Environment option name ${nt(c)} must be a string.`, typeof l == "string" || ir`Environment option default setting ${nt( l )} must be a string.`; let d = l; @@ -146,13 +146,13 @@ const { freeze: at } = Object, { apply: Ta } = Reflect, Cn = (t) => (e, ...r) => if (typeof m == "object" && c in m) { e || Aa(r, c); const p = m[c]; - typeof p == "string" || ar`Environment option named ${nt( + typeof p == "string" || ir`Environment option named ${nt( c )}, if present, must have a corresponding string value, got ${nt( p )}`, d = p; } - return u === void 0 || d === l || Wn(u, d) || ar`Unrecognized ${nt(c)} value ${nt( + return u === void 0 || d === l || Wn(u, d) || ir`Unrecognized ${nt(c)} value ${nt( d )}. Expected one of ${nt([l, ...u])}`, d; }; @@ -541,7 +541,7 @@ const ja = (t) => ne(Qo, t, []) !== void 0, Za = (t) => { const f = typeof d; if (f !== "object" && f !== "function") throw v(`Unexpected typeof: ${f}`); - nr(t, d) || En(n, d) || Sn(n, d); + or(t, d) || En(n, d) || Sn(n, d); } const a = (d) => { ja(d) ? za(d) : y(d); @@ -1951,7 +1951,7 @@ const ss = () => { throw v( "isPseudoNative can only be called after finalIntrinsics" ); - return nr(e, c); + return or(e, c); }; y(a); const i = { @@ -2089,7 +2089,7 @@ function Ya() { try { a = (0, eval)(o); } catch (l) { - if (l instanceof er) + if (l instanceof tr) return; throw l; } @@ -2282,7 +2282,7 @@ const ei = { // set by "Google Analytics" concat: !0, // set by mobx generated code (old TS compiler?) - [tr]: !0 + [rr]: !0 // set by mobx generated code (old TS compiler?) }, // Function.prototype has no 'prototype' property to enable. @@ -2526,10 +2526,10 @@ function ai(t, e = "safe") { M(pe.prototype, "localeCompare", { value: oi }); - for (const r of Ft(t)) { + for (const r of Dt(t)) { const n = t[r]; if (Ye(n)) - for (const o of Ft(n)) { + for (const o of Dt(n)) { const a = kn(ni, o); if (a) { typeof n[o] == "function" || cn`expected ${Sr(o)} to be a function`; @@ -2759,7 +2759,7 @@ const ms = new We("(?:)", "g"), hs = (t) => { if (e < 0) return t; const r = Nn(t); - throw er( + throw tr( `Possible HTML comment rejected at ${r}:${e}. (SES_HTML_COMMENT_REJECTED)` ); }, gs = (t) => vr(t, ms, (r) => r[0] === "<" ? "< ! --" : "-- >"), ys = new We( @@ -2770,7 +2770,7 @@ const ms = new We("(?:)", "g"), hs = (t) => { if (e < 0) return t; const r = Nn(t); - throw er( + throw tr( `Possible import expression rejected at ${r}:${e}. (SES_IMPORT_REJECTED)` ); }, _s = (t) => vr(t, ys, (r, n, o) => `${n}__import__${o}`), gi = new We( @@ -2781,7 +2781,7 @@ const ms = new We("(?:)", "g"), hs = (t) => { if (e < 0) return t; const r = Nn(t); - throw er( + throw tr( `Possible direct eval expression rejected at ${r}:${e}. (SES_EVAL_REJECTED)` ); }, ws = (t) => (t = hs(t), t = vs(t), t), Ss = (t, e) => { @@ -2872,7 +2872,7 @@ function oo(t, e) { oe(r, "value"); } const _i = (t, e = {}) => { - const r = Ft(t), n = Ft(e), o = Ke( + const r = Dt(t), n = Dt(e), o = Ke( n, (i) => no(i) && oo(e, i) ); @@ -2960,7 +2960,7 @@ const Es = () => { value: { toString() { const r = wa(this); - return Mo(r, Si) || !nr(t, this) ? r : `function ${this.name}() { [native code] }`; + return Mo(r, Si) || !or(t, this) ? r : `function ${this.name}() { [native code] }`; } }.toString }), Yr = y( @@ -3097,7 +3097,7 @@ const Fn = (t, e) => { const x = []; c(S, T, it.NOTE, N, x), l(S, x, n(T)); }, f = (S, T) => { - if (nr(u, T)) + if (or(u, T)) return; const N = n(T); Fr(u, T); @@ -3369,7 +3369,7 @@ const ao = (t) => { }, d = u.prepareStackTrace; t.prepareStackTrace = d; const f = new $t([d]), m = (p) => { - if (nr(f, p)) + if (or(f, p)) return p; const h = { prepareStackTrace(_, S) { @@ -3571,7 +3571,7 @@ const qi = (t, e) => y({ importMeta: l }); for (const p of ko(f)) - a(Dt, [ + a(Ut, [ t, e, r, @@ -3600,7 +3600,7 @@ function* Yi(t, e, r, n, o, a, i) { )} because the value is not a module exports namespace, or is from another realm`, lt ); - const _ = yield Dt( + const _ = yield Ut( t, e, h.compartment, @@ -3648,7 +3648,7 @@ function* Yi(t, e, r, n, o, a, i) { throw v( "Cannot redirect to an implicit record with a specified importMeta" ); - const h = yield Dt( + const h = yield Ut( t, e, p.compartment, @@ -3672,7 +3672,7 @@ function* Yi(t, e, r, n, o, a, i) { i ); } -const Dt = (t, e, r, n, o, a, i) => { +const Ut = (t, e, r, n, o, a, i) => { const { name: c } = L( t, r @@ -3732,7 +3732,7 @@ const Xi = (t, e) => e, Qi = (t, e) => t, fo = async (t, e, r, n) => { t, r ), a = new Pe(), { enqueueJob: i, drainQueue: c } = Ji(); - i(Dt, [ + i(Ut, [ t, e, r, @@ -3759,7 +3759,7 @@ const Xi = (t, e) => e, Qi = (t, e) => t, fo = async (t, e, r, n) => { X(i, d); } }; - c(Dt, [ + c(Ut, [ t, e, r, @@ -3920,7 +3920,7 @@ const Xi = (t, e) => e, Qi = (t, e) => t, fo = async (t, e, r, n) => { return l(e, { localTransforms: c }); -}, { quote: ir } = z, nc = (t, e, r, n, o, a) => { +}, { quote: cr } = z, nc = (t, e, r, n, o, a) => { const { exportsProxy: i, exportsTarget: c, activate: l } = Dn( r, L(t, r), @@ -4002,12 +4002,12 @@ const Xi = (t, e) => e, Qi = (t, e) => t, fo = async (t, e, r, n) => { let ee, te = !0, ce = []; const Y = () => { if (te) - throw lt(`binding ${ir(H)} not yet initialized`); + throw lt(`binding ${cr(H)} not yet initialized`); return ee; }, be = y((we) => { if (!te) throw v( - `Internal: binding ${ir(H)} already initialized` + `Internal: binding ${cr(H)} already initialized` ); ee = we; const Bn = ce; @@ -4038,7 +4038,7 @@ const Xi = (t, e) => e, Qi = (t, e) => t, fo = async (t, e, r, n) => { const Y = [], be = () => { if (ce) throw lt( - `binding ${ir(he)} not yet initialized` + `binding ${cr(he)} not yet initialized` ); return te; }, gt = y((Se) => { @@ -4047,7 +4047,7 @@ const Xi = (t, e) => e, Qi = (t, e) => t, fo = async (t, e, r, n) => { zr(Se); }), we = (Se) => { if (ce) - throw lt(`binding ${ir(H)} not yet initialized`); + throw lt(`binding ${cr(H)} not yet initialized`); te = Se; for (const zr of Y) zr(Se); @@ -4076,7 +4076,7 @@ const Xi = (t, e) => e, Qi = (t, e) => t, fo = async (t, e, r, n) => { he(x); }; rt["*"] = Be; - function sr(he) { + function ar(he) { const H = Z(null); H.default = !1; for (const [V, ee] of he) { @@ -4086,7 +4086,7 @@ const Xi = (t, e) => e, Qi = (t, e) => t, fo = async (t, e, r, n) => { for (const [Y, be] of ee) { const gt = ce[Y]; if (!gt) - throw er( + throw tr( `The requested module '${V}' does not provide an export named '${Y}'` ); for (const we of be) @@ -4133,7 +4133,7 @@ const Xi = (t, e) => e, Qi = (t, e) => t, fo = async (t, e, r, n) => { try { he( y({ - imports: y(sr), + imports: y(ar), onceVar: y(K), liveVar: y(ze), importMeta: me @@ -4237,7 +4237,7 @@ const uc = (t, e, r) => { $e(l, d, m); } return u; -}, { quote: Xr } = z, bt = new Me(), Ce = new Me(), cr = (t) => { +}, { quote: Xr } = z, bt = new Me(), Ce = new Me(), lr = (t) => { const { importHook: e, resolveHook: r } = L(Ce, t); if (typeof e != "function" || typeof r != "function") throw v( @@ -4280,7 +4280,7 @@ const uc = (t, e, r) => { module(t) { if (typeof t != "string") throw v("first argument of module() must be a string"); - cr(this); + lr(this); const { exportsProxy: e } = Dn( this, L(Ce, this), @@ -4292,7 +4292,7 @@ const uc = (t, e, r) => { async import(t) { if (typeof t != "string") throw v("first argument of import() must be a string"); - return cr(this), Uo( + return lr(this), Uo( fo(Ce, bt, this, t), () => ({ namespace: po( /** @type {Compartment} */ @@ -4304,12 +4304,12 @@ const uc = (t, e, r) => { async load(t) { if (typeof t != "string") throw v("first argument of load() must be a string"); - return cr(this), fo(Ce, bt, this, t); + return lr(this), fo(Ce, bt, this, t); }, importNow(t) { if (typeof t != "string") throw v("first argument of importNow() must be a string"); - return cr(this), ec(Ce, bt, this, t), po( + return lr(this), ec(Ce, bt, this, t), po( /** @type {Compartment} */ this, t @@ -4506,7 +4506,7 @@ const pc = () => { "Iterator" ); }, { Fail: ho, details: go, quote: yo } = z; -let lr, ur; +let ur, dr; const gc = Ga(), yc = () => { let t = !1; try { @@ -4559,11 +4559,11 @@ const gc = Ga(), yc = () => { } = t; d === "unsafeEval" || d === "safeEval" || d === "noEval" || ho`lockdown(): non supported option evalTaming: ${yo(d)}`; const S = De(_); - if (S.length === 0 || ho`lockdown(): non supported option ${yo(S)}`, lr === void 0 || // eslint-disable-next-line @endo/no-polymorphic-call + if (S.length === 0 || ho`lockdown(): non supported option ${yo(S)}`, ur === void 0 || // eslint-disable-next-line @endo/no-polymorphic-call z.fail( - go`Already locked down at ${lr} (SES_ALREADY_LOCKED_DOWN)`, + go`Already locked down at ${ur} (SES_ALREADY_LOCKED_DOWN)`, v - ), lr = v("Prior lockdown (SES_ALREADY_LOCKED_DOWN)"), lr.stack, yc(), k.Function.prototype.constructor !== k.Function && // @ts-ignore harden is absent on globalThis type def. + ), ur = v("Prior lockdown (SES_ALREADY_LOCKED_DOWN)"), ur.stack, yc(), k.Function.prototype.constructor !== k.Function && // @ts-ignore harden is absent on globalThis type def. typeof k.harden == "function" && // @ts-ignore lockdown is absent on globalThis type def. typeof k.lockdown == "function" && k.Date.prototype.constructor !== k.Date && typeof k.Date.now == "function" && // @ts-ignore does not recognize that Date constructor is a special // Function. @@ -4611,13 +4611,13 @@ const gc = Ga(), yc = () => { ); } return () => { - ur === void 0 || // eslint-disable-next-line @endo/no-polymorphic-call + dr === void 0 || // eslint-disable-next-line @endo/no-polymorphic-call z.fail( - go`Already locked down at ${ur} (SES_ALREADY_LOCKED_DOWN)`, + go`Already locked down at ${dr} (SES_ALREADY_LOCKED_DOWN)`, v - ), ur = v( + ), dr = v( "Prior lockdown (SES_ALREADY_LOCKED_DOWN)" - ), ur.stack, ri(K, c, f); + ), dr.stack, ri(K, c, f); const Be = { intrinsics: K, hostIntrinsics: ze, @@ -4631,8 +4631,8 @@ const gc = Ga(), yc = () => { Symbol: k.Symbol } }; - for (const sr of Ft(Jn)) - Be.globals[sr] = k[sr]; + for (const ar of Dt(Jn)) + Be.globals[ar] = k[ar]; return B(Be), B; }; }; @@ -4670,12 +4670,12 @@ const wc = (t, e) => { return t.addEventListener("mousedown", c), i; }, Sc = ":host{--spacing-4: .25rem;--spacing-8: calc(var(--spacing-4) * 2);--spacing-12: calc(var(--spacing-4) * 3);--spacing-16: calc(var(--spacing-4) * 4);--spacing-20: calc(var(--spacing-4) * 5);--spacing-24: calc(var(--spacing-4) * 6);--spacing-28: calc(var(--spacing-4) * 7);--spacing-32: calc(var(--spacing-4) * 8);--spacing-36: calc(var(--spacing-4) * 9);--spacing-40: calc(var(--spacing-4) * 10);--font-weight-regular: 400;--font-weight-bold: 500;--font-line-height-s: 1.2;--font-line-height-m: 1.4;--font-line-height-l: 1.5;--font-size-s: 12px;--font-size-m: 14px;--font-size-l: 16px}[data-theme]{background-color:var(--color-background-primary);color:var(--color-foreground-secondary)}.wrapper{box-sizing:border-box;display:flex;flex-direction:column;position:fixed;inset-block-start:var(--modal-block-start);inset-inline-end:var(--modal-inline-end);z-index:1000;padding:25px;border-radius:15px;border:2px solid var(--color-background-quaternary);box-shadow:0 0 10px #0000004d}.header{align-items:center;display:flex;justify-content:space-between;border-block-end:2px solid var(--color-background-quaternary);padding-block-end:var(--spacing-4)}button{background:transparent;border:0;cursor:pointer;padding:0}h1{font-size:var(--font-size-s);font-weight:var(--font-weight-bold);margin:0;margin-inline-end:var(--spacing-4);-webkit-user-select:none;user-select:none}iframe{border:none;inline-size:100%;block-size:100%}", Ec = ` `; -var de, Qt; +var de, er; class xc extends HTMLElement { constructor() { super(); Gr(this, de, null); - Gr(this, Qt, null); + Gr(this, er, null); this.attachShadow({ mode: "open" }); } setTheme(r) { @@ -4683,7 +4683,7 @@ class xc extends HTMLElement { } disconnectedCallback() { var r; - (r = Ee(this, Qt)) == null || r.call(this); + (r = Ee(this, er)) == null || r.call(this); } calculateZIndex() { const r = document.querySelectorAll("plugin-modal"), n = Array.from(r).filter((a) => a !== this).map((a) => Number(a.style.zIndex)), o = Math.max(...n, 0); @@ -4695,7 +4695,7 @@ class xc extends HTMLElement { throw new Error("title and iframe-src attributes are required"); if (!this.shadowRoot) throw new Error("Error creating shadow root"); - Br(this, de, document.createElement("div")), Ee(this, de).classList.add("wrapper"), Ee(this, de).style.inlineSize = `${o}px`, Ee(this, de).style.blockSize = `${a}px`, Br(this, Qt, wc(Ee(this, de), () => { + Br(this, de, document.createElement("div")), Ee(this, de).classList.add("wrapper"), Ee(this, de).style.inlineSize = `${o}px`, Ee(this, de).style.blockSize = `${a}px`, Br(this, er, wc(Ee(this, de), () => { this.calculateZIndex(); })); const i = document.createElement("div"); @@ -4726,7 +4726,7 @@ class xc extends HTMLElement { d.textContent = Sc, this.shadowRoot.appendChild(d), this.calculateZIndex(); } } -de = new WeakMap(), Qt = new WeakMap(); +de = new WeakMap(), er = new WeakMap(); customElements.define("plugin-modal", xc); var O; (function(t) { @@ -5034,7 +5034,7 @@ class Q { } const I = Object.freeze({ status: "aborted" -}), wt = (t) => ({ status: "dirty", value: t }), ae = (t) => ({ status: "valid", value: t }), pn = (t) => t.status === "aborted", mn = (t) => t.status === "dirty", Ut = (t) => t.status === "valid", jt = (t) => typeof Promise < "u" && t instanceof Promise; +}), wt = (t) => ({ status: "dirty", value: t }), ae = (t) => ({ status: "valid", value: t }), pn = (t) => t.status === "aborted", mn = (t) => t.status === "dirty", jt = (t) => t.status === "valid", Zt = (t) => typeof Promise < "u" && t instanceof Promise; function kr(t, e, r, n) { if (typeof e == "function" ? t !== e || !n : !e.has(t)) throw new TypeError("Cannot read private member from an object whose class did not declare it"); @@ -5049,7 +5049,7 @@ var E; (function(t) { t.errToObj = (e) => typeof e == "string" ? { message: e } : e || {}, t.toString = (e) => typeof e == "string" ? e : e == null ? void 0 : e.message; })(E || (E = {})); -var Mt, Lt; +var Lt, Ft; class Re { constructor(e, r, n, o) { this._cachedPath = [], this.parent = e, this.data = r, this._path = n, this._key = o; @@ -5059,7 +5059,7 @@ class Re { } } const vo = (t, e) => { - if (Ut(e)) + if (jt(e)) return { success: !0, data: e.value }; if (!t.common.issues.length) throw new Error("Validation failed but no issues detected."); @@ -5120,7 +5120,7 @@ class $ { } _parseSync(e) { const r = this._parse(e); - if (jt(r)) + if (Zt(r)) throw new Error("Synchronous parse encountered promise."); return r; } @@ -5168,7 +5168,7 @@ class $ { parent: null, data: e, parsedType: Ve(e) - }, o = this._parse({ data: e, path: n.path, parent: n }), a = await (jt(o) ? o : Promise.resolve(o)); + }, o = this._parse({ data: e, path: n.path, parent: n }), a = await (Zt(o) ? o : Promise.resolve(o)); return vo(n, a); } refine(e, r) { @@ -5210,10 +5210,10 @@ class $ { return It.create(this, this._def); } or(e) { - return Bt.create([this, e], this._def); + return Ht.create([this, e], this._def); } and(e) { - return Ht.create(this, e, this._def); + return Vt.create(this, e, this._def); } transform(e) { return new Ae({ @@ -5225,7 +5225,7 @@ class $ { } default(e) { const r = typeof e == "function" ? e : () => e; - return new Yt({ + return new Jt({ ...C(this._def), innerType: this, defaultValue: r, @@ -5241,7 +5241,7 @@ class $ { } catch(e) { const r = typeof e == "function" ? e : () => e; - return new Jt({ + return new Xt({ ...C(this._def), innerType: this, catchValue: r, @@ -5256,10 +5256,10 @@ class $ { }); } pipe(e) { - return or.create(this, e); + return sr.create(this, e); } readonly() { - return Xt.create(this); + return Qt.create(this); } isOptional() { return this.safeParse(void 0).success; @@ -5949,7 +5949,7 @@ Qe.create = (t) => { ...C(t) }); }; -class Zt extends $ { +class zt extends $ { _parse(e) { if (this._def.coerce && (e.data = !!e.data), this._getType(e) !== w.boolean) { const n = this._getOrReturnCtx(e); @@ -5962,7 +5962,7 @@ class Zt extends $ { return ae(e.data); } } -Zt.create = (t) => new Zt({ +zt.create = (t) => new zt({ typeName: A.ZodBoolean, coerce: (t == null ? void 0 : t.coerce) || !1, ...C(t) @@ -6062,7 +6062,7 @@ Pr.create = (t) => new Pr({ typeName: A.ZodSymbol, ...C(t) }); -class zt extends $ { +class Gt extends $ { _parse(e) { if (this._getType(e) !== w.undefined) { const n = this._getOrReturnCtx(e); @@ -6075,11 +6075,11 @@ class zt extends $ { return ae(e.data); } } -zt.create = (t) => new zt({ +Gt.create = (t) => new Gt({ typeName: A.ZodUndefined, ...C(t) }); -class Gt extends $ { +class Bt extends $ { _parse(e) { if (this._getType(e) !== w.null) { const n = this._getOrReturnCtx(e); @@ -6092,7 +6092,7 @@ class Gt extends $ { return ae(e.data); } } -Gt.create = (t) => new Gt({ +Bt.create = (t) => new Bt({ typeName: A.ZodNull, ...C(t) }); @@ -6529,7 +6529,7 @@ U.lazycreate = (t, e) => new U({ typeName: A.ZodObject, ...C(e) }); -class Bt extends $ { +class Ht extends $ { _parse(e) { const { ctx: r } = this._processInputParams(e), n = this._def.options; function o(a) { @@ -6597,12 +6597,12 @@ class Bt extends $ { return this._def.options; } } -Bt.create = (t, e) => new Bt({ +Ht.create = (t, e) => new Ht({ options: t, typeName: A.ZodUnion, ...C(e) }); -const Fe = (t) => t instanceof Wt ? Fe(t.schema) : t instanceof Ae ? Fe(t.innerType()) : t instanceof qt ? [t.value] : t instanceof et ? t.options : t instanceof Kt ? O.objectValues(t.enum) : t instanceof Yt ? Fe(t._def.innerType) : t instanceof zt ? [void 0] : t instanceof Gt ? [null] : t instanceof Ne ? [void 0, ...Fe(t.unwrap())] : t instanceof tt ? [null, ...Fe(t.unwrap())] : t instanceof Zn || t instanceof Xt ? Fe(t.unwrap()) : t instanceof Jt ? Fe(t._def.innerType) : []; +const Fe = (t) => t instanceof qt ? Fe(t.schema) : t instanceof Ae ? Fe(t.innerType()) : t instanceof Kt ? [t.value] : t instanceof et ? t.options : t instanceof Yt ? O.objectValues(t.enum) : t instanceof Jt ? Fe(t._def.innerType) : t instanceof Gt ? [void 0] : t instanceof Bt ? [null] : t instanceof Ne ? [void 0, ...Fe(t.unwrap())] : t instanceof tt ? [null, ...Fe(t.unwrap())] : t instanceof Zn || t instanceof Qt ? Fe(t.unwrap()) : t instanceof Xt ? Fe(t._def.innerType) : []; class Zr extends $ { _parse(e) { const { ctx: r } = this._processInputParams(e); @@ -6692,7 +6692,7 @@ function hn(t, e) { } else return r === w.date && n === w.date && +t == +e ? { valid: !0, data: t } : { valid: !1 }; } -class Ht extends $ { +class Vt extends $ { _parse(e) { const { status: r, ctx: n } = this._processInputParams(e), o = (a, i) => { if (pn(a) || pn(i)) @@ -6724,7 +6724,7 @@ class Ht extends $ { })); } } -Ht.create = (t, e, r) => new Ht({ +Vt.create = (t, e, r) => new Vt({ left: t, right: e, typeName: A.ZodIntersection, @@ -6780,7 +6780,7 @@ Oe.create = (t, e) => { ...C(e) }); }; -class Vt extends $ { +class Wt extends $ { get keySchema() { return this._def.keyType; } @@ -6808,12 +6808,12 @@ class Vt extends $ { return this._def.valueType; } static create(e, r, n) { - return r instanceof $ ? new Vt({ + return r instanceof $ ? new Wt({ keyType: e, valueType: r, typeName: A.ZodRecord, ...C(n) - }) : new Vt({ + }) : new Wt({ keyType: ke.create(), valueType: e, typeName: A.ZodRecord, @@ -7034,7 +7034,7 @@ class xt extends $ { }); } } -class Wt extends $ { +class qt extends $ { get schema() { return this._def.getter(); } @@ -7043,12 +7043,12 @@ class Wt extends $ { return this._def.getter()._parse({ data: r.data, path: r.path, parent: r }); } } -Wt.create = (t, e) => new Wt({ +qt.create = (t, e) => new qt({ getter: t, typeName: A.ZodLazy, ...C(e) }); -class qt extends $ { +class Kt extends $ { _parse(e) { if (e.data !== this._def.value) { const r = this._getOrReturnCtx(e); @@ -7064,7 +7064,7 @@ class qt extends $ { return this._def.value; } } -qt.create = (t, e) => new qt({ +Kt.create = (t, e) => new Kt({ value: t, typeName: A.ZodLiteral, ...C(e) @@ -7078,7 +7078,7 @@ function Ls(t, e) { } class et extends $ { constructor() { - super(...arguments), Mt.set(this, void 0); + super(...arguments), Lt.set(this, void 0); } _parse(e) { if (typeof e.data != "string") { @@ -7089,7 +7089,7 @@ class et extends $ { code: g.invalid_type }), I; } - if (kr(this, Mt) || Ns(this, Mt, new Set(this._def.values)), !kr(this, Mt).has(e.data)) { + if (kr(this, Lt) || Ns(this, Lt, new Set(this._def.values)), !kr(this, Lt).has(e.data)) { const r = this._getOrReturnCtx(e), n = this._def.values; return b(r, { received: r.data, @@ -7133,11 +7133,11 @@ class et extends $ { }); } } -Mt = /* @__PURE__ */ new WeakMap(); +Lt = /* @__PURE__ */ new WeakMap(); et.create = Ls; -class Kt extends $ { +class Yt extends $ { constructor() { - super(...arguments), Lt.set(this, void 0); + super(...arguments), Ft.set(this, void 0); } _parse(e) { const r = O.getValidEnumValues(this._def.values), n = this._getOrReturnCtx(e); @@ -7149,7 +7149,7 @@ class Kt extends $ { code: g.invalid_type }), I; } - if (kr(this, Lt) || Ns(this, Lt, new Set(O.getValidEnumValues(this._def.values))), !kr(this, Lt).has(e.data)) { + if (kr(this, Ft) || Ns(this, Ft, new Set(O.getValidEnumValues(this._def.values))), !kr(this, Ft).has(e.data)) { const o = O.objectValues(r); return b(n, { received: n.data, @@ -7163,8 +7163,8 @@ class Kt extends $ { return this._def.values; } } -Lt = /* @__PURE__ */ new WeakMap(); -Kt.create = (t, e) => new Kt({ +Ft = /* @__PURE__ */ new WeakMap(); +Yt.create = (t, e) => new Yt({ values: t, typeName: A.ZodNativeEnum, ...C(e) @@ -7259,14 +7259,14 @@ class Ae extends $ { path: n.path, parent: n }); - if (!Ut(i)) + if (!jt(i)) return i; const c = o.transform(i.value, a); if (c instanceof Promise) throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead."); return { status: r.value, value: c }; } else - return this._def.schema._parseAsync({ data: n.data, path: n.path, parent: n }).then((i) => Ut(i) ? Promise.resolve(o.transform(i.value, a)).then((c) => ({ status: r.value, value: c })) : i); + return this._def.schema._parseAsync({ data: n.data, path: n.path, parent: n }).then((i) => jt(i) ? Promise.resolve(o.transform(i.value, a)).then((c) => ({ status: r.value, value: c })) : i); O.assertNever(o); } } @@ -7308,7 +7308,7 @@ tt.create = (t, e) => new tt({ typeName: A.ZodNullable, ...C(e) }); -class Yt extends $ { +class Jt extends $ { _parse(e) { const { ctx: r } = this._processInputParams(e); let n = r.data; @@ -7322,13 +7322,13 @@ class Yt extends $ { return this._def.innerType; } } -Yt.create = (t, e) => new Yt({ +Jt.create = (t, e) => new Jt({ innerType: t, typeName: A.ZodDefault, defaultValue: typeof e.default == "function" ? e.default : () => e.default, ...C(e) }); -class Jt extends $ { +class Xt extends $ { _parse(e) { const { ctx: r } = this._processInputParams(e), n = { ...r, @@ -7343,7 +7343,7 @@ class Jt extends $ { ...n } }); - return jt(o) ? o.then((a) => ({ + return Zt(o) ? o.then((a) => ({ status: "valid", value: a.status === "valid" ? a.value : this._def.catchValue({ get error() { @@ -7365,7 +7365,7 @@ class Jt extends $ { return this._def.innerType; } } -Jt.create = (t, e) => new Jt({ +Xt.create = (t, e) => new Xt({ innerType: t, typeName: A.ZodCatch, catchValue: typeof e.catch == "function" ? e.catch : () => e.catch, @@ -7402,7 +7402,7 @@ class Zn extends $ { return this._def.type; } } -class or extends $ { +class sr extends $ { _parse(e) { const { status: r, ctx: n } = this._processInputParams(e); if (n.common.async) @@ -7435,23 +7435,23 @@ class or extends $ { } } static create(e, r) { - return new or({ + return new sr({ in: e, out: r, typeName: A.ZodPipeline }); } } -class Xt extends $ { +class Qt extends $ { _parse(e) { - const r = this._def.innerType._parse(e), n = (o) => (Ut(o) && (o.value = Object.freeze(o.value)), o); - return jt(r) ? r.then((o) => n(o)) : n(r); + const r = this._def.innerType._parse(e), n = (o) => (jt(o) && (o.value = Object.freeze(o.value)), o); + return Zt(r) ? r.then((o) => n(o)) : n(r); } unwrap() { return this._def.innerType; } } -Xt.create = (t, e) => new Xt({ +Qt.create = (t, e) => new Qt({ innerType: t, typeName: A.ZodReadonly, ...C(e) @@ -7474,10 +7474,10 @@ var A; })(A || (A = {})); const Hc = (t, e = { message: `Input not instance of ${t.name}` -}) => Fs((r) => r instanceof t, e), Ds = ke.create, Us = Xe.create, Vc = Ir.create, Wc = Qe.create, js = Zt.create, qc = pt.create, Kc = Pr.create, Yc = zt.create, Jc = Gt.create, Xc = At.create, Qc = dt.create, el = je.create, tl = Tr.create, rl = Te.create, nl = U.create, ol = U.strictCreate, sl = Bt.create, al = Zr.create, il = Ht.create, cl = Oe.create, ll = Vt.create, ul = Ar.create, dl = mt.create, fl = xt.create, pl = Wt.create, ml = qt.create, hl = et.create, gl = Kt.create, yl = It.create, _o = Ae.create, vl = Ne.create, _l = tt.create, bl = Ae.createWithPreprocess, wl = or.create, Sl = () => Ds().optional(), El = () => Us().optional(), xl = () => js().optional(), kl = { +}) => Fs((r) => r instanceof t, e), Ds = ke.create, Us = Xe.create, Vc = Ir.create, Wc = Qe.create, js = zt.create, qc = pt.create, Kc = Pr.create, Yc = Gt.create, Jc = Bt.create, Xc = At.create, Qc = dt.create, el = je.create, tl = Tr.create, rl = Te.create, nl = U.create, ol = U.strictCreate, sl = Ht.create, al = Zr.create, il = Vt.create, cl = Oe.create, ll = Wt.create, ul = Ar.create, dl = mt.create, fl = xt.create, pl = qt.create, ml = Kt.create, hl = et.create, gl = Yt.create, yl = It.create, _o = Ae.create, vl = Ne.create, _l = tt.create, bl = Ae.createWithPreprocess, wl = sr.create, Sl = () => Ds().optional(), El = () => Us().optional(), xl = () => js().optional(), kl = { string: (t) => ke.create({ ...t, coerce: !0 }), number: (t) => Xe.create({ ...t, coerce: !0 }), - boolean: (t) => Zt.create({ + boolean: (t) => zt.create({ ...t, coerce: !0 }), @@ -7498,8 +7498,8 @@ var W = /* @__PURE__ */ Object.freeze({ OK: ae, isAborted: pn, isDirty: mn, - isValid: Ut, - isAsync: jt, + isValid: jt, + isAsync: Zt, get util() { return O; }, @@ -7513,41 +7513,41 @@ var W = /* @__PURE__ */ Object.freeze({ ZodString: ke, ZodNumber: Xe, ZodBigInt: Qe, - ZodBoolean: Zt, + ZodBoolean: zt, ZodDate: pt, ZodSymbol: Pr, - ZodUndefined: zt, - ZodNull: Gt, + ZodUndefined: Gt, + ZodNull: Bt, ZodAny: At, ZodUnknown: dt, ZodNever: je, ZodVoid: Tr, ZodArray: Te, ZodObject: U, - ZodUnion: Bt, + ZodUnion: Ht, ZodDiscriminatedUnion: Zr, - ZodIntersection: Ht, + ZodIntersection: Vt, ZodTuple: Oe, - ZodRecord: Vt, + ZodRecord: Wt, ZodMap: Ar, ZodSet: mt, ZodFunction: xt, - ZodLazy: Wt, - ZodLiteral: qt, + ZodLazy: qt, + ZodLiteral: Kt, ZodEnum: et, - ZodNativeEnum: Kt, + ZodNativeEnum: Yt, ZodPromise: It, ZodEffects: Ae, ZodTransformer: Ae, ZodOptional: Ne, ZodNullable: tt, - ZodDefault: Yt, - ZodCatch: Jt, + ZodDefault: Jt, + ZodCatch: Xt, ZodNaN: Ir, BRAND: Gc, ZodBranded: Zn, - ZodPipeline: or, - ZodReadonly: Xt, + ZodPipeline: sr, + ZodReadonly: Qt, custom: Fs, Schema: $, ZodSchema: $, @@ -7672,7 +7672,7 @@ const Rl = [ "shapechange", "contentsave" ]; -let gn = [], yn = /* @__PURE__ */ new Set([]), dr = {}; +let gn = [], yn = /* @__PURE__ */ new Set([]), Mt = {}; window.addEventListener("message", (t) => { try { for (const e of gn) @@ -7689,7 +7689,11 @@ function Ol(t) { function Ml(t, e) { let r = null; const n = () => { - r && (yn.delete(r), r.removeEventListener("close", n), r.remove()), gn = [], r = null; + Object.entries(Mt).forEach(([, i]) => { + i.forEach((c) => { + t.removeListener(c); + }); + }), r && (yn.delete(r), r.removeEventListener("close", n), r.remove()), gn = [], r = null; }, o = (i) => { if (!e.permissions.includes(i)) throw new Error(`Permission ${i} is not granted`); @@ -7757,11 +7761,11 @@ function Ml(t, e) { on(i, c, l) { W.enum(Rl).parse(i), W.function().parse(c), o("content:read"); const u = t.addListener(i, c, l); - return dr[i] || (dr[i] = /* @__PURE__ */ new Map()), dr[i].set(c, u), u; + return Mt[i] || (Mt[i] = /* @__PURE__ */ new Map()), Mt[i].set(c, u), u; }, off(i, c) { let l; - typeof i == "symbol" ? l = i : c && (l = dr[i].get(c)), l && t.removeListener(l); + typeof i == "symbol" ? l = i : c && (l = Mt[i].get(c)), l && t.removeListener(l); }, // Penpot State API get root() { @@ -7850,6 +7854,15 @@ function Ml(t, e) { }, generateStyle(i, c) { return o("content:read"), t.generateStyle(i, c); + }, + openViewer() { + o("content:read"), t.openViewer(); + }, + createPage() { + return o("content:write"), t.createPage(); + }, + openPage(i) { + o("content:read"), t.openPage(i); } }; } @@ -7861,39 +7874,39 @@ function Fl(t) { } const zs = async function(t) { try { - const e = vn && vn(t.pluginId); - if (!e) + const e = () => { + fr.forEach((c) => { + c.closePlugin(); + }), fr = []; + }, r = vn && vn(t.pluginId); + if (!r) return; - e.addListener("themechange", (i) => Ol(i)); - const r = await Nl(t); - bo || (bo = !0, hardenIntrinsics()), fr && !Ll && fr.forEach((i) => { - i.closePlugin(); - }); - const n = Ml(e, t); - fr.push(n), new Compartment({ - penpot: harden(n), - fetch: harden((...i) => { - const c = { - ...i[1], + r.addListener("themechange", (c) => Ol(c)); + const n = await Nl(t); + bo || (bo = !0, hardenIntrinsics()), fr && !Ll && e(); + const o = Ml(r, t); + fr.push(o), new Compartment({ + penpot: harden(o), + fetch: harden((...c) => { + const l = { + ...c[1], credentials: "omit" }; - return fetch(i[0], c); + return fetch(c[0], l); }), console: harden(window.console), Math: harden(Math), setTimeout: harden( - (...[i, c]) => setTimeout(() => { - i(); - }, c) + (...[c, l]) => setTimeout(() => { + c(); + }, l) ), - clearTimeout: harden((i) => { - clearTimeout(i); + clearTimeout: harden((c) => { + clearTimeout(c); }) - }).evaluate(r); - const a = e.addListener("finish", () => { - fr.forEach((i) => { - i.closePlugin(); - }), e == null || e.removeListener(a); + }).evaluate(n); + const i = r.addListener("finish", () => { + e(), r == null || r.removeListener(i); }); } catch (e) { console.error(e); From af5a189d048ed3ba674ec7369334387d754096a8 Mon Sep 17 00:00:00 2001 From: Eva Marco Date: Mon, 22 Jul 2024 14:13:32 +0200 Subject: [PATCH 435/476] :recycle: Replacing the old Pencil loader with the new Loader component --- .../styles/common/refactor/basic-rules.scss | 16 -------- frontend/resources/styles/main-default.scss | 8 ---- .../styles/main/partials/loader.scss | 9 ----- .../src/app/main/ui/auth/verify_token.cljs | 7 ++-- .../src/app/main/ui/auth/verify_token.scss | 11 ------ frontend/src/app/main/ui/dashboard.scss | 5 --- frontend/src/app/main/ui/dashboard/grid.cljs | 8 ++-- frontend/src/app/main/ui/dashboard/grid.scss | 16 +++----- .../src/app/main/ui/dashboard/import.cljs | 21 ++++++---- .../src/app/main/ui/dashboard/import.scss | 7 ---- .../app/main/ui/dashboard/placeholder.cljs | 10 +++-- .../app/main/ui/dashboard/placeholder.scss | 35 +++++++++-------- .../src/app/main/ui/ds/product/loader.cljs | 38 ++++++++++++++----- .../src/app/main/ui/ds/product/loader.scss | 19 ++++++++-- .../app/main/ui/ds/product/loader.stories.jsx | 27 +++++++++++-- frontend/src/app/main/ui/export.cljs | 12 ++++-- frontend/src/app/main/ui/export.scss | 5 --- frontend/src/app/main/ui/icons.cljs | 20 +--------- frontend/src/app/main/ui/loader.cljs | 20 ---------- frontend/src/app/main/ui/loader.scss | 11 ------ frontend/src/app/main/ui/viewer.cljs | 6 +-- frontend/src/app/main/ui/viewer.scss | 4 -- frontend/src/app/main/ui/workspace.cljs | 7 ++-- frontend/src/app/main/ui/workspace.scss | 13 +++---- frontend/translations/en.po | 3 ++ frontend/translations/es.po | 3 ++ 26 files changed, 148 insertions(+), 193 deletions(-) delete mode 100644 frontend/resources/styles/main/partials/loader.scss delete mode 100644 frontend/src/app/main/ui/auth/verify_token.scss delete mode 100644 frontend/src/app/main/ui/loader.cljs delete mode 100644 frontend/src/app/main/ui/loader.scss diff --git a/frontend/resources/styles/common/refactor/basic-rules.scss b/frontend/resources/styles/common/refactor/basic-rules.scss index 6f28edf693..5096ecd6a5 100644 --- a/frontend/resources/styles/common/refactor/basic-rules.scss +++ b/frontend/resources/styles/common/refactor/basic-rules.scss @@ -659,22 +659,6 @@ color: var(--modal-button-foreground-color-error); } -.loader-base { - @include flexCenter; - position: fixed; - top: 0; - left: 0; - height: 100vh; - width: 100vw; - z-index: $z-index-alert; - background-color: var(--loader-background); - :global(svg#loader-pencil) { - height: $s-100; - width: $s-100; - animation: loaderColor 5s infinite ease; - fill: var(--icon-foreground); - } -} // UI ELEMENTS .asset-element { @include bodySmallTypography; diff --git a/frontend/resources/styles/main-default.scss b/frontend/resources/styles/main-default.scss index 769e9a6d89..15d5f2c844 100644 --- a/frontend/resources/styles/main-default.scss +++ b/frontend/resources/styles/main-default.scss @@ -29,11 +29,3 @@ // TODO: remove this stylesheet once the new text editor is in place // https: //tree.taiga.io/project/penpot/us/8165 @import "main/partials/texts"; - -//################################################# -// Partials -//################################################# - -// TODO: encapsulate pencil loader into its own component -// https: //tree.taiga.io/project/penpot/task/8217 -@import "main/partials/loader"; diff --git a/frontend/resources/styles/main/partials/loader.scss b/frontend/resources/styles/main/partials/loader.scss deleted file mode 100644 index 14154849d6..0000000000 --- a/frontend/resources/styles/main/partials/loader.scss +++ /dev/null @@ -1,9 +0,0 @@ -// btn pencil loader -svg#loader-pencil { - fill: var(--color-accent-tertiary); - width: 60px; -} - -#loader-line { - animation: linePencil 0.8s infinite linear; -} diff --git a/frontend/src/app/main/ui/auth/verify_token.cljs b/frontend/src/app/main/ui/auth/verify_token.cljs index c2925b429c..81d92ede5d 100644 --- a/frontend/src/app/main/ui/auth/verify_token.cljs +++ b/frontend/src/app/main/ui/auth/verify_token.cljs @@ -5,13 +5,12 @@ ;; Copyright (c) KALEIDOS INC (ns app.main.ui.auth.verify-token - (:require-macros [app.main.style :as stl]) (:require [app.main.data.messages :as msg] [app.main.data.users :as du] [app.main.repo :as rp] [app.main.store :as st] - [app.main.ui.icons :as i] + [app.main.ui.ds.product.loader :refer [loader*]] [app.main.ui.static :as static] [app.util.dom :as dom] [app.util.i18n :as i18n :refer [tr]] @@ -95,5 +94,5 @@ (if @bad-token [:> static/invalid-token {}] - [:div {:class (stl/css :verify-token)} - i/loader-pencil]))) + [:> loader* {:title (tr "labels.loading") + :overlay true}]))) diff --git a/frontend/src/app/main/ui/auth/verify_token.scss b/frontend/src/app/main/ui/auth/verify_token.scss deleted file mode 100644 index df815d4f4b..0000000000 --- a/frontend/src/app/main/ui/auth/verify_token.scss +++ /dev/null @@ -1,11 +0,0 @@ -// This Source Code Form is subject to the terms of the Mozilla Public -// License, v. 2.0. If a copy of the MPL was not distributed with this -// file, You can obtain one at http://mozilla.org/MPL/2.0/. -// -// Copyright (c) KALEIDOS INC - -@use "./common.scss"; - -.verify-token { - @extend .loader-base; -} diff --git a/frontend/src/app/main/ui/dashboard.scss b/frontend/src/app/main/ui/dashboard.scss index bad41ea111..26d4f051a8 100644 --- a/frontend/src/app/main/ui/dashboard.scss +++ b/frontend/src/app/main/ui/dashboard.scss @@ -13,11 +13,6 @@ grid-template-columns: $s-40 $s-256 1fr; grid-template-rows: $s-52 1fr; height: 100vh; - - :global(svg#loader-pencil) { - fill: $df-secondary; - width: $s-32; - } } .dashboard-content { diff --git a/frontend/src/app/main/ui/dashboard/grid.cljs b/frontend/src/app/main/ui/dashboard/grid.cljs index dfffc9c669..e5550d943e 100644 --- a/frontend/src/app/main/ui/dashboard/grid.cljs +++ b/frontend/src/app/main/ui/dashboard/grid.cljs @@ -25,6 +25,7 @@ [app.main.ui.dashboard.import :refer [use-import-file]] [app.main.ui.dashboard.inline-edition :refer [inline-edition]] [app.main.ui.dashboard.placeholder :refer [empty-placeholder loading-placeholder]] + [app.main.ui.ds.product.loader :refer [loader*]] [app.main.ui.hooks :as h] [app.main.ui.icons :as i] [app.main.worker :as wrk] @@ -95,7 +96,8 @@ :src thumbnail-uri :loading "lazy" :decoding "async"}] - i/loader-pencil))])) + [:> loader* {:class (stl/css :grid-loader) + :title (tr "labels.loading")}]))])) ;; --- Grid Item Library @@ -113,7 +115,8 @@ [:div {:class (stl/css :grid-item-th :library)} (if (nil? file) - i/loader-pencil + [:> loader* {:class (stl/css :grid-loader) + :title (tr "labels.loading")}] (let [summary (:library-summary file) components (:components summary) colors (:colors summary) @@ -458,7 +461,6 @@ :on-drag-leave on-drag-leave :on-drop on-drop :ref node-ref} - (cond (nil? files) [:& loading-placeholder] diff --git a/frontend/src/app/main/ui/dashboard/grid.scss b/frontend/src/app/main/ui/dashboard/grid.scss index 3853c71f70..996957ae1d 100644 --- a/frontend/src/app/main/ui/dashboard/grid.scss +++ b/frontend/src/app/main/ui/dashboard/grid.scss @@ -278,16 +278,6 @@ $thumbnail-default-height: $s-168; // Default width height: auto; width: 100%; } - - svg { - height: 100%; - width: 100%; - } - - :global(svg#loader-pencil) { - stroke: $db-quaternary; - width: calc(var(--th-width, #{$thumbnail-default-width}) * 0.25); - } } // LIBRARY VIEW @@ -381,3 +371,9 @@ $thumbnail-default-height: $s-168; // Default width grid-template-columns: auto 1fr; gap: $s-8; } + +.grid-loader { + width: calc(var(--th-width, #{$thumbnail-default-width}) * 0.25); + height: 100%; + align-self: center; +} diff --git a/frontend/src/app/main/ui/dashboard/import.cljs b/frontend/src/app/main/ui/dashboard/import.cljs index 51b4371167..79aca61cc9 100644 --- a/frontend/src/app/main/ui/dashboard/import.cljs +++ b/frontend/src/app/main/ui/dashboard/import.cljs @@ -18,6 +18,7 @@ [app.main.features :as features] [app.main.store :as st] [app.main.ui.components.file-uploader :refer [file-uploader]] + [app.main.ui.ds.product.loader :refer [loader*]] [app.main.ui.icons :as i] [app.main.ui.notifications.context-notification :refer [context-notification]] [app.main.worker :as uw] @@ -266,14 +267,18 @@ :editable (and ready? (not editing?)))} [:div {:class (stl/css :file-name)} - [:div {:class (stl/css-case :file-icon true - :icon-fill ready?)} - (cond loading? i/loader-pencil - ready? i/logo-icon - import-warn? i/msg-warning - import-error? i/close - import-finish? i/tick - analyze-error? i/close)] + (if loading? + [:> loader* {:width "16px" + :height "24px" + :title (tr "labels.loading")}] + [:div {:class (stl/css-case :file-icon true + :icon-fill ready?)} + (cond ready? i/logo-icon + import-warn? i/msg-warning + import-error? i/close + import-finish? i/tick + analyze-error? i/close)]) + (if editing? [:div {:class (stl/css :file-name-edit)} diff --git a/frontend/src/app/main/ui/dashboard/import.scss b/frontend/src/app/main/ui/dashboard/import.scss index b32a1338d1..50083f3df5 100644 --- a/frontend/src/app/main/ui/dashboard/import.scss +++ b/frontend/src/app/main/ui/dashboard/import.scss @@ -143,13 +143,6 @@ &.loading { .file-name { color: var(--modal-text-foreground-color); - .file-icon { - :global(#loader-pencil) { - color: var(--modal-text-foreground-color); - stroke: var(--modal-text-foreground-color); - fill: var(--modal-text-foreground-color); - } - } } } &.warning { diff --git a/frontend/src/app/main/ui/dashboard/placeholder.cljs b/frontend/src/app/main/ui/dashboard/placeholder.cljs index 41cd3eac27..ee87f4f5db 100644 --- a/frontend/src/app/main/ui/dashboard/placeholder.cljs +++ b/frontend/src/app/main/ui/dashboard/placeholder.cljs @@ -7,6 +7,7 @@ (ns app.main.ui.dashboard.placeholder (:require-macros [app.main.style :as stl]) (:require + [app.main.ui.ds.product.loader :refer [loader*]] [app.main.ui.icons :as i] [app.util.i18n :as i18n :refer [tr]] [rumext.v2 :as mf])) @@ -40,6 +41,9 @@ (mf/defc loading-placeholder [] - [:div {:class (stl/css :grid-empty-placeholder :loader)} - [:div {:class (stl/css :icon)} i/loader-pencil] - [:div {:class (stl/css :text)} (tr "dashboard.loading-files")]]) + [:> loader* {:width "64px" + :height "64px" + :title (tr "labels.loading") + :overlay true + :class (stl/css :placeholder-loader)} + [:div {:class (stl/css :placeholder-text)} (tr "dashboard.loading-files")]]) diff --git a/frontend/src/app/main/ui/dashboard/placeholder.scss b/frontend/src/app/main/ui/dashboard/placeholder.scss index 6f05ba0006..6aab79276c 100644 --- a/frontend/src/app/main/ui/dashboard/placeholder.scss +++ b/frontend/src/app/main/ui/dashboard/placeholder.scss @@ -12,21 +12,6 @@ display: grid; padding: $s-12 0; - &.loader { - justify-items: center; - } - - .icon { - display: flex; - align-items: center; - justify-content: center; - svg { - width: $s-64; - height: $s-64; - fill: $df-secondary; - } - } - &.libs { background-image: url(/images/ph-left.svg), url(/images/ph-right.svg); background-position: @@ -90,3 +75,23 @@ font-size: $fs-16; } } + +.loader-wrapper { + display: grid; + justify-items: center; + height: 100%; + width: 100%; + padding: $s-12 0; + border-radius: $br-12; +} + +.placeholder-loader { + align-self: end; +} + +.placeholder-text { + margin-top: $s-12; + color: $df-secondary; + font-size: $fs-16; + align-self: start; +} diff --git a/frontend/src/app/main/ui/ds/product/loader.cljs b/frontend/src/app/main/ui/ds/product/loader.cljs index 8c6ad6ce91..316d9d6ba9 100644 --- a/frontend/src/app/main/ui/ds/product/loader.cljs +++ b/frontend/src/app/main/ui/ds/product/loader.cljs @@ -11,23 +11,18 @@ (:require [rumext.v2 :as mf])) -(mf/defc loader* - {::mf/props :obj} +(mf/defc loader-icon* + {::mf/props :obj + ::mf/private true} [{:keys [class width height title] :rest props}] (let [class (dm/str (or class "") " " (stl/css :loader)) - both-provided (and width height) - neither-provided (and (nil? width) (nil? height)) + props (mf/spread-props props {:viewBox "0 0 677.34762 182.15429" :role "status" :width (or width "100px") :height (or height "27px") :class class})] - (assert (or both-provided neither-provided) - (dm/str "Invalid props: both 'width' and 'height' must be provided or neither. " - "Received width: " width ", height: " height)) - ;; TODO: Add a translated label insted of the title prop. - (assert title - (dm/str "You must provide an accesible name for the component")) + [:> "svg" props [:title title] [:g @@ -36,3 +31,26 @@ [:path {:class (stl/css :loader-line) :d "M134.482 157.147v25l518.57.008.002-25-518.572-.008z"}]]])) + +(mf/defc loader* + {::mf/props :obj} + [{:keys [class wrapperclass width height title overlay children] :rest props}] + + (let [both-provided (and width height) + neither-provided (and (nil? width) (nil? height)) + wrapperclass (dm/str (or wrapperclass "") " " (stl/css-case :loader-wrapper true + :loader-wrapper-overlay overlay)) + props (mf/spread-props props {:class wrapperclass})] + + (assert title + (dm/str "You must provide an accesible name for the component")) + + (assert (or both-provided neither-provided) + (dm/str "Invalid props: both 'width' and 'height' must be provided or neither. " + "Received width: " width ", height: " height)) + [:> "div" props + [:> loader-icon* {:title title + :width width + :class class + :height height}] + children])) \ No newline at end of file diff --git a/frontend/src/app/main/ui/ds/product/loader.scss b/frontend/src/app/main/ui/ds/product/loader.scss index 67564586e0..e54192dfb9 100644 --- a/frontend/src/app/main/ui/ds/product/loader.scss +++ b/frontend/src/app/main/ui/ds/product/loader.scss @@ -14,12 +14,25 @@ } } -.loader { +.loader-wrapper { --color-loader-foreground: var(--color-foreground-secondary); - fill: var(--color-loader-foreground); + color: var(--color-loader-foreground); + display: flex; + column-gap: var(--sp-s); +} + +.loader-wrapper-overlay { + display: grid; + place-items: center; + height: 100%; + width: 100%; +} + +.loader { + fill: currentColor; } .loader-line { - fill: var(--color-loader-foreground); + fill: currentColor; animation: line-pencil 0.8s infinite linear; } diff --git a/frontend/src/app/main/ui/ds/product/loader.stories.jsx b/frontend/src/app/main/ui/ds/product/loader.stories.jsx index 5e6d0558d3..d00a7199e1 100644 --- a/frontend/src/app/main/ui/ds/product/loader.stories.jsx +++ b/frontend/src/app/main/ui/ds/product/loader.stories.jsx @@ -5,9 +5,30 @@ const { Loader } = Components; export default { title: "Product/Loader", - component: Components.Loader, + component: Loader, + args: { + title: "Loading", + overlay: false, + }, + parameters: { + controls: { exclude: ["theme", "style", "title", "overlay"] }, + }, + render: ({ children, ...args }) => {children}, }; -export const Default = { - render: () => , +export const Default = {}; + +export const Overlay = { + args: { + overlay: true, + style: { height: "100vh" }, + }, +}; + +export const Inline = { + args: { + children: "Loading...", + width: "16px", + height: "24px", + }, }; diff --git a/frontend/src/app/main/ui/export.cljs b/frontend/src/app/main/ui/export.cljs index f1c0a004b1..3d3f258d4e 100644 --- a/frontend/src/app/main/ui/export.cljs +++ b/frontend/src/app/main/ui/export.cljs @@ -15,6 +15,7 @@ [app.main.data.modal :as modal] [app.main.refs :as refs] [app.main.store :as st] + [app.main.ui.ds.product.loader :refer [loader*]] [app.main.ui.icons :as i] [app.main.ui.workspace.shapes :refer [shape-wrapper]] [app.main.worker :as uw] @@ -317,10 +318,13 @@ :error (:export-error? file))} [:div {:class (stl/css :file-name)} - [:span {:class (stl/css :file-icon)} - (cond (:export-success? file) i/tick - (:export-error? file) i/close - (:loading? file) i/loader-pencil)] + (if (:loading? file) + [:> loader* {:width "16px" + :height "24px" + :title (tr "labels.loading")}] + [:span {:class (stl/css :file-icon)} + (cond (:export-success? file) i/tick + (:export-error? file) i/close)]) [:div {:class (stl/css :file-name-label)} (:name file)]]]) diff --git a/frontend/src/app/main/ui/export.scss b/frontend/src/app/main/ui/export.scss index 479d714a39..d9873cd61d 100644 --- a/frontend/src/app/main/ui/export.scss +++ b/frontend/src/app/main/ui/export.scss @@ -309,11 +309,6 @@ &.loading { .file-name { color: var(--modal-text-foreground-color); - .file-icon svg:global(#loader-pencil) { - color: var(--modal-text-foreground-color); - stroke: var(--modal-text-foreground-color); - fill: var(--modal-text-foreground-color); - } } } &.error { diff --git a/frontend/src/app/main/ui/icons.cljs b/frontend/src/app/main/ui/icons.cljs index 9de4037cb7..df8f1bf3ad 100644 --- a/frontend/src/app/main/ui/icons.cljs +++ b/frontend/src/app/main/ui/icons.cljs @@ -9,8 +9,7 @@ (:require-macros [app.main.ui.icons :refer [icon-xref collect-icons]]) (:require [app.common.data :as d] - [cuerdas.core :as str] - [rumext.v2 :as mf])) + [cuerdas.core :as str])) ;; Keep the list of icons sorted (def ^:icon icon-verify (icon-xref :icon-verify)) @@ -263,23 +262,6 @@ (def ^:icon view-as-list (icon-xref :view-as-list)) (def ^:icon wrap (icon-xref :wrap)) -(def ^:icon loader-pencil - (mf/html - [:svg - {:viewBox "0 0 677.34762 182.15429" - :height "182" - :width "667" - :id "loader-pencil"} - [:g - [:path - {:id "body-body" - :d - "M128.273 0l-3.9 2.77L0 91.078l128.273 91.076 549.075-.006V.008L128.273 0zm20.852 30l498.223.006V152.15l-498.223.007V30zm-25 9.74v102.678l-49.033-34.813-.578-32.64 49.61-35.225z"}] - [:path - {:id "loader-line" - :d - "M134.482 157.147v25l518.57.008.002-25-518.572-.008z"}]]])) - (def default "A collection of all icons" (collect-icons)) diff --git a/frontend/src/app/main/ui/loader.cljs b/frontend/src/app/main/ui/loader.cljs deleted file mode 100644 index 43a7901815..0000000000 --- a/frontend/src/app/main/ui/loader.cljs +++ /dev/null @@ -1,20 +0,0 @@ -;; This Source Code Form is subject to the terms of the Mozilla Public -;; License, v. 2.0. If a copy of the MPL was not distributed with this -;; file, You can obtain one at http://mozilla.org/MPL/2.0/. -;; -;; Copyright (c) KALEIDOS INC - -(ns app.main.ui.loader - (:require-macros [app.main.style :as stl]) - (:require - [app.main.store :as st] - [app.main.ui.icons :as i] - [rumext.v2 :as mf])) - -;; --- Component - -(mf/defc loader - [] - (when (mf/deref st/loader) - [:div {:class (stl/css :loader-content)} - i/loader-pencil])) diff --git a/frontend/src/app/main/ui/loader.scss b/frontend/src/app/main/ui/loader.scss deleted file mode 100644 index 71121f51d9..0000000000 --- a/frontend/src/app/main/ui/loader.scss +++ /dev/null @@ -1,11 +0,0 @@ -// This Source Code Form is subject to the terms of the Mozilla Public -// License, v. 2.0. If a copy of the MPL was not distributed with this -// file, You can obtain one at http://mozilla.org/MPL/2.0/. -// -// Copyright (c) KALEIDOS INC - -@import "refactor/common-refactor.scss"; - -.loader-content { - @extend .loader-base; -} diff --git a/frontend/src/app/main/ui/viewer.cljs b/frontend/src/app/main/ui/viewer.cljs index 6883a6d247..2fe3734918 100644 --- a/frontend/src/app/main/ui/viewer.cljs +++ b/frontend/src/app/main/ui/viewer.cljs @@ -22,6 +22,7 @@ [app.main.refs :as refs] [app.main.store :as st] [app.main.ui.context :as ctx] + [app.main.ui.ds.product.loader :refer [loader*]] [app.main.ui.hooks :as hooks] [app.main.ui.icons :as i] [app.main.ui.viewer.comments :refer [comments-layer comments-sidebar]] @@ -628,11 +629,10 @@ (st/emit! (dv/initialize params)) (fn [] (st/emit! (dv/finalize params))))) - (if-let [data (mf/deref refs/viewer-data)] (let [props (obj/merge props #js {:data data :key (dm/str file-id)})] [:> viewer-content props]) - [:div {:class (stl/css :loader-content)} - i/loader-pencil])) + [:> loader* {:title (tr "labels.loading") + :overlay true}])) diff --git a/frontend/src/app/main/ui/viewer.scss b/frontend/src/app/main/ui/viewer.scss index 14dabe4c29..9deb4378d7 100644 --- a/frontend/src/app/main/ui/viewer.scss +++ b/frontend/src/app/main/ui/viewer.scss @@ -189,10 +189,6 @@ } } -.loader-content { - @extend .loader-base; -} - /** FULLSCREEN */ [data-fullscreen="true"] .viewer-bottom { transform: translateY($s-40); diff --git a/frontend/src/app/main/ui/workspace.cljs b/frontend/src/app/main/ui/workspace.cljs index 6e22292f96..b902faf627 100644 --- a/frontend/src/app/main/ui/workspace.cljs +++ b/frontend/src/app/main/ui/workspace.cljs @@ -17,9 +17,9 @@ [app.main.refs :as refs] [app.main.store :as st] [app.main.ui.context :as ctx] + [app.main.ui.ds.product.loader :refer [loader*]] [app.main.ui.hooks :as hooks] [app.main.ui.hooks.resize :refer [use-resize-observer]] - [app.main.ui.icons :as i] [app.main.ui.workspace.colorpicker] [app.main.ui.workspace.context-menu :refer [context-menu]] [app.main.ui.workspace.coordinates :as coordinates] @@ -124,8 +124,8 @@ (mf/defc workspace-loader [] - [:div {:class (stl/css :workspace-loader)} - i/loader-pencil]) + [:> loader* {:title (tr "labels.loading") + :overlay true}]) (mf/defc workspace-page {::mf/wrap-props false} @@ -147,7 +147,6 @@ (fn [] (when (some? page-id) (st/emit! (dw/finalize-page page-id))))) - (if ^boolean page-ready? [:& workspace-content {:page-id page-id :file file diff --git a/frontend/src/app/main/ui/workspace.scss b/frontend/src/app/main/ui/workspace.scss index 53ab9e778f..ed25a0c0b8 100644 --- a/frontend/src/app/main/ui/workspace.scss +++ b/frontend/src/app/main/ui/workspace.scss @@ -18,15 +18,12 @@ grid-template-rows: 1fr; grid-template-columns: auto 1fr auto; overflow: hidden; +} - .workspace-loader { - @include flexCenter; - grid-area: viewport; - background-color: var(--loader-background); - :global(svg#loader-pencil) { - fill: var(--icon-foreground); - } - } +.workspace-loader { + @include flexCenter; + grid-area: viewport; + background-color: var(--loader-background); } .workspace-content { diff --git a/frontend/translations/en.po b/frontend/translations/en.po index ad9d8328fd..43158cec65 100644 --- a/frontend/translations/en.po +++ b/frontend/translations/en.po @@ -1713,6 +1713,9 @@ msgstr "Upload custom fonts" msgid "labels.uploading" msgstr "Uploading…" +msgid "labels.loading" +msgstr "Loading…" + msgid "labels.view-only" msgstr "View only" diff --git a/frontend/translations/es.po b/frontend/translations/es.po index 05f208ae08..6a590077cc 100644 --- a/frontend/translations/es.po +++ b/frontend/translations/es.po @@ -1770,6 +1770,9 @@ msgstr "Cargar fuente" msgid "labels.uploading" msgstr "Subiendo…" +msgid "labels.loading" +msgstr "Cargando…" + msgid "labels.view-only" msgstr "Solo lectura" From 1f80827d94ab01a78c57fd522d6e203b5cc73985 Mon Sep 17 00:00:00 2001 From: Eva Marco Date: Wed, 24 Jul 2024 17:16:13 +0200 Subject: [PATCH 436/476] :bug: Fix search label in translations --- CHANGES.md | 1 + frontend/src/app/main/ui/onboarding/questions.cljs | 6 +++--- frontend/translations/en.po | 6 +++--- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index 8164f0a6be..42ad227f69 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -8,6 +8,7 @@ ### :bug: Bugs fixed +- Fix the “search” label in translations [Taiga #8402](https://tree.taiga.io/project/penpot/issue/8402) - Fix pencil loader [Taiga #8348](https://tree.taiga.io/project/penpot/issue/8348) ## 2.1.0 - Things can only get better! diff --git a/frontend/src/app/main/ui/onboarding/questions.cljs b/frontend/src/app/main/ui/onboarding/questions.cljs index 3d715a1858..3efe6a768a 100644 --- a/frontend/src/app/main/ui/onboarding/questions.cljs +++ b/frontend/src/app/main/ui/onboarding/questions.cljs @@ -411,9 +411,9 @@ (mf/with-memo [] (-> (shuffle [{:label (tr "labels.youtube") :value "youtube"} {:label (tr "labels.event") :value "event"} - {:label (tr "labels.search") :value "search"} - {:label (tr "labels.social") :value "social"} - {:label (tr "labels.article") :value "article"}]) + {:label (tr "onboarding.questions.referer.search") :value "search"} + {:label (tr "onboarding.questions.referer.social") :value "social"} + {:label (tr "onboarding.questions.referer.article") :value "article"}]) (conj {:label (tr "labels.other-short") :value "other"}))) current-referer diff --git a/frontend/translations/en.po b/frontend/translations/en.po index cc72e0264a..ae47466fc9 100644 --- a/frontend/translations/en.po +++ b/frontend/translations/en.po @@ -2581,15 +2581,15 @@ msgid "labels.event" msgstr "Event" #: src/app/main/ui/onboarding/questions.cljs -msgid "labels.search" +msgid "onboarding.questions.referer.search" msgstr "Search Engine (Google, Yahoo, Bing)" #: src/app/main/ui/onboarding/questions.cljs -msgid "labels.social" +msgid "onboarding.questions.referer.social" msgstr "Social Media (X, Linkedin, FB, etc)" #: src/app/main/ui/onboarding/questions.cljs -msgid "labels.article" +msgid "onboarding.questions.referer.article" msgstr "Article (Blog, Post, Newsletter)" #: src/app/main/ui/onboarding/questions.cljs From a6d738f0db9775d8ad503f64175939b45e4d455f Mon Sep 17 00:00:00 2001 From: Alejandro Alonso Date: Wed, 24 Jul 2024 13:31:09 +0200 Subject: [PATCH 437/476] :bug: Fix flag email verification --- backend/src/app/rpc/commands/auth.clj | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/backend/src/app/rpc/commands/auth.clj b/backend/src/app/rpc/commands/auth.clj index e4b36e84b4..50f575755b 100644 --- a/backend/src/app/rpc/commands/auth.clj +++ b/backend/src/app/rpc/commands/auth.clj @@ -340,7 +340,7 @@ profile (if-let [profile-id (:profile-id claims)] (profile/get-profile conn profile-id) - (let [is-active (or (boolean (:is-active params)) + (let [is-active (or (boolean (:is-active claims)) (not (contains? cf/flags :email-verification))) params (-> params (assoc :is-active is-active) @@ -348,6 +348,9 @@ (->> (create-profile! conn params) (create-profile-rels! conn)))) + ;; When no profile-id comes on claims means a new register + created? (not (:profile-id claims)) + invitation (when-let [token (:invitation-token params)] (tokens/verify (::setup/props cfg) {:token token :iss :team-invitation})) @@ -385,8 +388,8 @@ ;; When a new user is created and it is already activated by ;; configuration or specified by OIDC, we just mark the profile ;; as logged-in - (not (:profile-id claims)) - (if (:is-active claims) + created? + (if (:is-active profile) (-> (profile/strip-private-attrs profile) (rph/with-transform (session/create-fn cfg (:id profile))) (rph/with-meta From 343f3feed3e4616f81f07b921983f9c5564a235e Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Wed, 24 Jul 2024 16:14:58 +0200 Subject: [PATCH 438/476] :sparkles: Improve ip-addr parsing --- backend/src/app/auth/oidc.clj | 3 ++- backend/src/app/loggers/audit.clj | 26 ++++++------------ backend/src/app/rpc/commands/audit.clj | 5 ++-- backend/src/app/rpc/rlimit.clj | 4 +-- backend/src/app/util/inet.clj | 37 ++++++++++++++++++++++++++ backend/src/app/util/websocket.clj | 4 +-- 6 files changed, 54 insertions(+), 25 deletions(-) create mode 100644 backend/src/app/util/inet.clj diff --git a/backend/src/app/auth/oidc.clj b/backend/src/app/auth/oidc.clj index b48bdc9ac1..f340a51417 100644 --- a/backend/src/app/auth/oidc.clj +++ b/backend/src/app/auth/oidc.clj @@ -26,6 +26,7 @@ [app.rpc.commands.profile :as profile] [app.setup :as-alias setup] [app.tokens :as tokens] + [app.util.inet :as inet] [app.util.json :as json] [app.util.time :as dt] [buddy.sign.jwk :as jwk] @@ -574,7 +575,7 @@ (audit/submit! cfg {::audit/type "command" ::audit/name "login-with-oidc" ::audit/profile-id (:id profile) - ::audit/ip-addr (audit/parse-client-ip request) + ::audit/ip-addr (inet/parse-request request) ::audit/props props ::audit/context context}) diff --git a/backend/src/app/loggers/audit.clj b/backend/src/app/loggers/audit.clj index ea00cdd457..4851373cf2 100644 --- a/backend/src/app/loggers/audit.clj +++ b/backend/src/app/loggers/audit.clj @@ -21,28 +21,18 @@ [app.rpc :as-alias rpc] [app.rpc.retry :as rtry] [app.setup :as-alias setup] + [app.util.inet :as inet] [app.util.services :as-alias sv] [app.util.time :as dt] [app.worker :as wrk] [clojure.spec.alpha :as s] [cuerdas.core :as str] - [integrant.core :as ig] - [ring.request :as rreq])) + [integrant.core :as ig])) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; HELPERS ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -(defn parse-client-ip - [request] - (let [ip-addr (or (some-> (rreq/get-header request "x-forwarded-for") (str/split ",") first) - (rreq/get-header request "x-real-ip") - (some-> (rreq/remote-addr request) str)) - ip-addr (-> ip-addr - (str/split ":" 2) - (first))] - ip-addr)) - (defn extract-utm-params "Extracts additional data from params and namespace them under `penpot` ns." @@ -100,7 +90,6 @@ ;; --- SPECS - ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; COLLECTOR ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @@ -167,14 +156,16 @@ (assoc :external-session-id session-id) (assoc :external-event-origin event-origin) (assoc :access-token-id (some-> token-id str)) - (d/without-nils))] + (d/without-nils)) + + ip-addr (inet/parse-request request)] {::type (or (::type resultm) (::rpc/type cfg)) ::name (or (::name resultm) (::sv/name mdata)) ::profile-id profile-id - ::ip-addr (some-> request parse-client-ip) + ::ip-addr ip-addr ::props props ::context context @@ -202,7 +193,7 @@ :name (::name event) :type (::type event) :profile-id (::profile-id event) - :ip-addr (::ip-addr event "0.0.0.0") + :ip-addr (::ip-addr event) :context (::context event {}) :props (::props event {}) :source "backend"} @@ -246,8 +237,7 @@ (assoc :created-at tnow) (update :tracked-at #(or % tnow)) (assoc :props {}) - (assoc :context {}) - (assoc :ip-addr "0.0.0.0"))] + (assoc :context {}))] (append-audit-entry! cfg params))) (when (and (contains? cf/flags :webhooks) diff --git a/backend/src/app/rpc/commands/audit.clj b/backend/src/app/rpc/commands/audit.clj index 6af5f5b62a..f43195dd72 100644 --- a/backend/src/app/rpc/commands/audit.clj +++ b/backend/src/app/rpc/commands/audit.clj @@ -14,11 +14,12 @@ [app.config :as cf] [app.db :as db] [app.http :as-alias http] - [app.loggers.audit :as audit] + [app.loggers.audit :as-alias audit] [app.rpc :as-alias rpc] [app.rpc.climit :as-alias climit] [app.rpc.doc :as-alias doc] [app.rpc.helpers :as rph] + [app.util.inet :as inet] [app.util.services :as sv] [app.util.time :as dt])) @@ -61,7 +62,7 @@ (defn- handle-events [{:keys [::db/pool]} {:keys [::rpc/profile-id events] :as params}] (let [request (-> params meta ::http/request) - ip-addr (audit/parse-client-ip request) + ip-addr (inet/parse-request request) tnow (dt/now) xform (comp (map (fn [event] diff --git a/backend/src/app/rpc/rlimit.clj b/backend/src/app/rpc/rlimit.clj index 0c0868f93c..4e09244903 100644 --- a/backend/src/app/rpc/rlimit.clj +++ b/backend/src/app/rpc/rlimit.clj @@ -51,12 +51,12 @@ [app.common.uuid :as uuid] [app.config :as cf] [app.http :as-alias http] - [app.loggers.audit :refer [parse-client-ip]] [app.redis :as rds] [app.redis.script :as-alias rscript] [app.rpc :as-alias rpc] [app.rpc.helpers :as rph] [app.rpc.rlimit.result :as-alias lresult] + [app.util.inet :as inet] [app.util.services :as-alias sv] [app.util.time :as dt] [app.worker :as wrk] @@ -215,7 +215,7 @@ [{:keys [::rpc/profile-id] :as params}] (let [request (-> params meta ::http/request)] (or profile-id - (some-> request parse-client-ip) + (some-> request inet/parse-request) uuid/zero))) (defn process-request! diff --git a/backend/src/app/util/inet.clj b/backend/src/app/util/inet.clj new file mode 100644 index 0000000000..9e3fca6065 --- /dev/null +++ b/backend/src/app/util/inet.clj @@ -0,0 +1,37 @@ +;; This Source Code Form is subject to the terms of the Mozilla Public +;; License, v. 2.0. If a copy of the MPL was not distributed with this +;; file, You can obtain one at http://mozilla.org/MPL/2.0/. +;; +;; Copyright (c) KALEIDOS INC + +(ns app.util.inet + "INET addr parsing and validation helpers" + (:require + [cuerdas.core :as str] + [ring.request :as rreq]) + (:import + com.google.common.net.InetAddresses + java.net.InetAddress)) + +(defn valid? + [s] + (InetAddresses/isInetAddress s)) + +(defn normalize + [s] + (try + (let [addr (InetAddresses/forString s)] + (.getHostAddress ^InetAddress addr)) + (catch Throwable _cause + nil))) + +(defn parse-request + [request] + (or (some-> (rreq/get-header request "x-real-ip") + (normalize)) + (some-> (rreq/get-header request "x-forwarded-for") + (str/split #"\s*,\s*") + (first) + (normalize)) + (some-> (rreq/remote-addr request) + (normalize)))) diff --git a/backend/src/app/util/websocket.clj b/backend/src/app/util/websocket.clj index 70d8eb4062..b468c0e286 100644 --- a/backend/src/app/util/websocket.clj +++ b/backend/src/app/util/websocket.clj @@ -11,7 +11,7 @@ [app.common.logging :as l] [app.common.transit :as t] [app.common.uuid :as uuid] - [app.loggers.audit :refer [parse-client-ip]] + [app.util.inet :as inet] [app.util.time :as dt] [promesa.exec :as px] [promesa.exec.csp :as sp] @@ -84,7 +84,7 @@ output-ch (sp/chan :buf output-buff-size) hbeat-ch (sp/chan :buf (sp/sliding-buffer 6)) close-ch (sp/chan) - ip-addr (parse-client-ip request) + ip-addr (inet/parse-request request) uagent (rreq/get-header request "user-agent") id (uuid/next) state (atom {}) From 7df9ac5e4feb86292ff63487142afa183637fb22 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Wed, 24 Jul 2024 17:54:24 +0200 Subject: [PATCH 439/476] :bug: Fix audit context forwarding on explicit events --- backend/src/app/loggers/audit.clj | 16 ++- backend/src/app/rpc.clj | 7 +- backend/src/app/rpc/commands/management.clj | 14 +-- backend/src/app/rpc/commands/teams.clj | 108 ++++++++---------- backend/src/app/rpc/commands/verify_token.clj | 18 ++- backend/test/backend_tests/rpc_audit_test.clj | 4 +- 6 files changed, 79 insertions(+), 88 deletions(-) diff --git a/backend/src/app/loggers/audit.clj b/backend/src/app/loggers/audit.clj index 4851373cf2..c0ca61da90 100644 --- a/backend/src/app/loggers/audit.clj +++ b/backend/src/app/loggers/audit.clj @@ -80,13 +80,17 @@ (remove #(contains? reserved-props (key %)))) props)) -(defn params->context - "Extract default context properties from RPC params object" +(defn event-from-rpc-params + "Create a base event skeleton with pre-filled some important + data that can be extracted from RPC params object" [params] - (d/without-nils - {:external-session-id (::rpc/external-session-id params) - :event-origin (::rpc/external-event-origin params) - :triggered-by (::rpc/handler-name params)})) + (let [context {:external-session-id (::rpc/external-session-id params) + :external-event-origin (::rpc/external-event-origin params) + :triggered-by (::rpc/handler-name params)}] + {::type "action" + ::profile-id (::rpc/profile-id params) + ::ip-addr (::rpc/ip-addr params) + ::context (d/without-nils context)})) ;; --- SPECS diff --git a/backend/src/app/rpc.clj b/backend/src/app/rpc.clj index 9ee6a0abb3..09fff7b89f 100644 --- a/backend/src/app/rpc.clj +++ b/backend/src/app/rpc.clj @@ -29,6 +29,7 @@ [app.rpc.rlimit :as rlimit] [app.setup :as-alias setup] [app.storage :as-alias sto] + [app.util.inet :as inet] [app.util.services :as sv] [app.util.time :as dt] [clojure.spec.alpha :as s] @@ -81,7 +82,9 @@ (defn- get-external-event-origin [request] (when-let [origin (rreq/get-header request "x-event-origin")] - (when-not (> (count origin) 256) + (when-not (or (> (count origin) 256) + (= origin "null") + (str/blank? origin)) origin))) (defn- rpc-handler @@ -93,11 +96,13 @@ profile-id (or (::session/profile-id request) (::actoken/profile-id request)) + ip-addr (inet/parse-request request) session-id (get-external-session-id request) event-origin (get-external-event-origin request) data (-> params (assoc ::handler-name handler-name) + (assoc ::ip-addr ip-addr) (assoc ::request-at (dt/now)) (assoc ::external-session-id session-id) (assoc ::external-event-origin event-origin) diff --git a/backend/src/app/rpc/commands/management.clj b/backend/src/app/rpc/commands/management.clj index bf7883175c..e7055b47f2 100644 --- a/backend/src/app/rpc/commands/management.clj +++ b/backend/src/app/rpc/commands/management.clj @@ -413,15 +413,13 @@ {:modified-at (dt/now)} {:id project-id}) - (let [props (audit/clean-props params) - context (audit/params->context params)] + (let [props (audit/clean-props params)] (doseq [file-id result] - (audit/submit! cfg - {::audit/type "action" - ::audit/name "create-file" - ::audit/profile-id profile-id - ::audit/props (assoc props :id file-id) - ::audit/context context}))) + (let [props (assoc props :id file-id) + event (-> (audit/event-from-rpc-params params) + (assoc ::audit/name "create-file") + (assoc ::audit/props props))] + (audit/submit! cfg event)))) result)))) diff --git a/backend/src/app/rpc/commands/teams.clj b/backend/src/app/rpc/commands/teams.clj index f30bc8870e..e01e2ae36d 100644 --- a/backend/src/app/rpc/commands/teams.clj +++ b/backend/src/app/rpc/commands/teams.clj @@ -787,18 +787,15 @@ (l/info :hint "invitation token" :token itoken)) - (let [props (-> (dissoc tprops :profile-id) - (audit/clean-props)) - context (audit/params->context params)] - - (audit/submit! cfg - {::audit/type "action" - ::audit/name (if updated? - "update-team-invitation" - "create-team-invitation") - ::audit/profile-id (:id profile) - ::audit/props props - ::audit/context context})) + (let [props (-> (dissoc tprops :profile-id) + (audit/clean-props)) + evname (if updated? + "update-team-invitation" + "create-team-invitation") + event (-> (audit/event-from-rpc-params params) + (assoc ::audit/name evname) + (assoc ::audit/props props))] + (audit/submit! cfg event)) (eml/send! {::eml/conn conn ::eml/factory eml/invite-to-team @@ -882,62 +879,51 @@ (sv/defmethod ::create-team-with-invitations {::doc/added "1.17" ::sm/params schema:create-team-with-invitations} - [{:keys [::db/pool] :as cfg} {:keys [::rpc/profile-id emails role name] :as params}] - (db/with-atomic [conn pool] + [cfg {:keys [::rpc/profile-id emails role name] :as params}] - (let [features (-> (cfeat/get-enabled-features cf/flags) - (cfeat/check-client-features! (:features params))) + (db/tx-run! cfg + (fn [{:keys [::db/conn] :as cfg}] + (let [features (-> (cfeat/get-enabled-features cf/flags) + (cfeat/check-client-features! (:features params))) - params (-> params - (assoc :profile-id profile-id) - (assoc :features features)) + params (-> params + (assoc :profile-id profile-id) + (assoc :features features)) - cfg (assoc cfg ::db/conn conn) - team (create-team cfg params) - profile (db/get-by-id conn :profile profile-id) - emails (into #{} (map profile/clean-email) emails) - context (audit/params->context params)] + cfg (assoc cfg ::db/conn conn) + team (create-team cfg params) + profile (db/get-by-id conn :profile profile-id) + emails (into #{} (map profile/clean-email) emails)] - ;; Create invitations for all provided emails. - (->> emails - (map (fn [email] - (-> params - (assoc :team team) - (assoc :profile profile) - (assoc :email email) - (assoc :role role)))) - (run! (partial create-invitation cfg))) + (let [props {:name name :features features} + event (-> (audit/event-from-rpc-params params) + (assoc ::audit/name "create-team") + (assoc ::audit/props props))] + (audit/submit! cfg event)) - (run! (partial quotes/check-quote! conn) - (list {::quotes/id ::quotes/teams-per-profile - ::quotes/profile-id profile-id} - {::quotes/id ::quotes/invitations-per-team - ::quotes/profile-id profile-id - ::quotes/team-id (:id team) - ::quotes/incr (count emails)} - {::quotes/id ::quotes/profiles-per-team - ::quotes/profile-id profile-id - ::quotes/team-id (:id team) - ::quotes/incr (count emails)})) + ;; Create invitations for all provided emails. + (->> emails + (map (fn [email] + (-> params + (assoc :team team) + (assoc :profile profile) + (assoc :email email) + (assoc :role role)))) + (run! (partial create-invitation cfg))) - (audit/submit! cfg - {::audit/type "action" - ::audit/name "create-team" - ::audit/profile-id profile-id - ::audit/props {:name name - :features features} - ::audit/context context}) + (run! (partial quotes/check-quote! conn) + (list {::quotes/id ::quotes/teams-per-profile + ::quotes/profile-id profile-id} + {::quotes/id ::quotes/invitations-per-team + ::quotes/profile-id profile-id + ::quotes/team-id (:id team) + ::quotes/incr (count emails)} + {::quotes/id ::quotes/profiles-per-team + ::quotes/profile-id profile-id + ::quotes/team-id (:id team) + ::quotes/incr (count emails)})) - (audit/submit! cfg - {::audit/type "command" - ::audit/name "create-team-invitations" - ::audit/profile-id profile-id - ::audit/props {:emails emails - :role role - :profile-id profile-id - :invitations (count emails)}}) - - (vary-meta team assoc ::audit/props {:invitations (count emails)})))) + (vary-meta team assoc ::audit/props {:invitations (count emails)}))))) ;; --- Query: get-team-invitation-token diff --git a/backend/src/app/rpc/commands/verify_token.clj b/backend/src/app/rpc/commands/verify_token.clj index 1fc83bc85e..14c9024bc8 100644 --- a/backend/src/app/rpc/commands/verify_token.clj +++ b/backend/src/app/rpc/commands/verify_token.clj @@ -169,19 +169,15 @@ ;; if we have logged-in user and it matches the invitation we proceed ;; with accepting the invitation and joining the current profile to the ;; invited team. - (let [context (audit/params->context params) - props {:team-id (:team-id claims) - :role (:role claims) - :invitation-id (:id invitation)}] + (let [props {:team-id (:team-id claims) + :role (:role claims) + :invitation-id (:id invitation)} + event (-> (audit/event-from-rpc-params params) + (assoc ::audit/name "accept-team-invitation") + (assoc ::audit/props props))] (accept-invitation cfg claims invitation profile) - (audit/submit! cfg - {::audit/type "action" - ::audit/name "accept-team-invitation" - ::audit/profile-id profile-id - ::audit/props props - ::audit/context context}) - + (audit/submit! cfg event) (assoc claims :state :created)) (ex/raise :type :validation diff --git a/backend/test/backend_tests/rpc_audit_test.clj b/backend/test/backend_tests/rpc_audit_test.clj index 78d0e4d410..14bff7ea65 100644 --- a/backend/test/backend_tests/rpc_audit_test.clj +++ b/backend/test/backend_tests/rpc_audit_test.clj @@ -28,7 +28,8 @@ ring.request/Request (get-header [_ name] (case name - "x-forwarded-for" "127.0.0.44")))) + "x-forwarded-for" "127.0.0.44" + "x-real-ip" "127.0.0.43")))) (t/deftest push-events-1 (with-redefs [app.config/flags #{:audit-log}] @@ -46,6 +47,7 @@ :profile-id (:id prof) :timestamp (dt/now) :type "action"}]} + params (with-meta params {:app.http/request http-request}) From 69b432eb0e4a17d8b1275e27693601e3c929dcc9 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Wed, 24 Jul 2024 20:59:48 +0200 Subject: [PATCH 440/476] :paperclip: Fix audit event type naming on oidc --- backend/src/app/auth/oidc.clj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/src/app/auth/oidc.clj b/backend/src/app/auth/oidc.clj index f340a51417..18ecf718aa 100644 --- a/backend/src/app/auth/oidc.clj +++ b/backend/src/app/auth/oidc.clj @@ -572,7 +572,7 @@ props (audit/profile->props profile) context (d/without-nils {:external-session-id (:external-session-id info)})] - (audit/submit! cfg {::audit/type "command" + (audit/submit! cfg {::audit/type "action" ::audit/name "login-with-oidc" ::audit/profile-id (:id profile) ::audit/ip-addr (inet/parse-request request) From 5ed49995f075c7fb12dfd6cb312374f5e044b62c Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Thu, 25 Jul 2024 10:48:46 +0200 Subject: [PATCH 441/476] :paperclip: Update changelog --- CHANGES.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGES.md b/CHANGES.md index 42ad227f69..5b13636791 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -10,6 +10,8 @@ - Fix the “search” label in translations [Taiga #8402](https://tree.taiga.io/project/penpot/issue/8402) - Fix pencil loader [Taiga #8348](https://tree.taiga.io/project/penpot/issue/8348) +- Fix several issues on the OIDC. +- Fix regression on the `email-verification` flag [Taiga #8398](https://tree.taiga.io/project/penpot/issue/8398) ## 2.1.0 - Things can only get better! From defcef3e593564a43e2d223982449e31ee015add Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Thu, 25 Jul 2024 15:14:16 +0200 Subject: [PATCH 442/476] :sparkles: Resolve file thumbnail on frontend instead of backend --- backend/src/app/rpc/commands/files.clj | 8 +++----- .../src/app/rpc/commands/files_thumbnails.clj | 3 ++- frontend/src/app/main/data/dashboard.cljs | 11 +++++------ frontend/src/app/main/ui/dashboard/grid.cljs | 19 ++++++++++--------- 4 files changed, 20 insertions(+), 21 deletions(-) diff --git a/backend/src/app/rpc/commands/files.clj b/backend/src/app/rpc/commands/files.clj index b0c74feb12..53cbf23c5f 100644 --- a/backend/src/app/rpc/commands/files.clj +++ b/backend/src/app/rpc/commands/files.clj @@ -671,7 +671,7 @@ f.modified_at, f.name, f.is_shared, - ft.media_id, + ft.media_id AS thumbnail_id, row_number() over w as row_num from file as f inner join project as p on (p.id = f.project_id) @@ -690,10 +690,8 @@ [conn team-id] (->> (db/exec! conn [sql:team-recent-files team-id]) (mapv (fn [row] - (if-let [media-id (:media-id row)] - (-> row - (dissoc :media-id) - (assoc :thumbnail-uri (resolve-public-uri media-id))) + (if-let [media-id (:thumbnail-id row)] + (assoc row :thumbnail-uri (resolve-public-uri media-id)) (dissoc row :media-id)))))) (def ^:private schema:get-team-recent-files diff --git a/backend/src/app/rpc/commands/files_thumbnails.clj b/backend/src/app/rpc/commands/files_thumbnails.clj index 760e3bcd3a..38252787a1 100644 --- a/backend/src/app/rpc/commands/files_thumbnails.clj +++ b/backend/src/app/rpc/commands/files_thumbnails.clj @@ -406,4 +406,5 @@ (when-not (db/read-only? conn) (let [cfg (update cfg ::sto/storage media/configure-assets-storage) media (create-file-thumbnail! cfg params)] - {:uri (files/resolve-public-uri (:id media))}))))) + {:uri (files/resolve-public-uri (:id media)) + :id (:id media)}))))) diff --git a/frontend/src/app/main/data/dashboard.cljs b/frontend/src/app/main/data/dashboard.cljs index 6e5e53d1a1..7a0e3297ae 100644 --- a/frontend/src/app/main/data/dashboard.cljs +++ b/frontend/src/app/main/data/dashboard.cljs @@ -898,8 +898,7 @@ (-> state (d/update-in-when [:dashboard-files id :is-shared] (constantly is-shared)) (d/update-in-when [:dashboard-recent-files id :is-shared] (constantly is-shared)) - (cond-> - (not is-shared) + (cond-> (not is-shared) (d/update-when :dashboard-shared-files dissoc id)))) ptk/WatchEvent @@ -909,7 +908,7 @@ (rx/ignore)))))) (defn set-file-thumbnail - [file-id thumbnail-uri] + [file-id thumbnail-id] (ptk/reify ::set-file-thumbnail ptk/UpdateEvent (update [_ state] @@ -917,10 +916,10 @@ (->> files (mapv #(cond-> % (= file-id (:id %)) - (assoc :thumbnail-uri thumbnail-uri)))))] + (assoc :thumbnail-id thumbnail-id)))))] (-> state - (d/update-in-when [:dashboard-files file-id] assoc :thumbnail-uri thumbnail-uri) - (d/update-in-when [:dashboard-recent-files file-id] assoc :thumbnail-uri thumbnail-uri) + (d/update-in-when [:dashboard-files file-id] assoc :thumbnail-id thumbnail-id) + (d/update-in-when [:dashboard-recent-files file-id] assoc :thumbnail-id thumbnail-id) (d/update-when :dashboard-search-result update-search-files)))))) ;; --- EVENT: create-file diff --git a/frontend/src/app/main/ui/dashboard/grid.cljs b/frontend/src/app/main/ui/dashboard/grid.cljs index dfffc9c669..b9a84fe3be 100644 --- a/frontend/src/app/main/ui/dashboard/grid.cljs +++ b/frontend/src/app/main/ui/dashboard/grid.cljs @@ -11,6 +11,7 @@ [app.common.data.macros :as dm] [app.common.geom.point :as gpt] [app.common.logging :as log] + [app.config :as cf] [app.main.data.dashboard :as dd] [app.main.data.messages :as msg] [app.main.features :as features] @@ -47,7 +48,7 @@ [file-id revn blob] (let [params {:file-id file-id :revn revn :media blob}] (->> (rp/cmd! :create-file-thumbnail params) - (rx/map :uri)))) + (rx/map :id)))) (defn render-thumbnail [file-id revn] @@ -71,15 +72,15 @@ (mf/defc grid-item-thumbnail {::mf/wrap-props false} - [{:keys [file-id revn thumbnail-uri background-color]}] + [{:keys [file-id revn thumbnail-id background-color]}] (let [container (mf/use-ref) visible? (h/use-visible container :once? true)] - (mf/with-effect [file-id revn visible? thumbnail-uri] - (when (and visible? (not thumbnail-uri)) + (mf/with-effect [file-id revn visible? thumbnail-id] + (when (and visible? (not thumbnail-id)) (->> (ask-for-thumbnail file-id revn) - (rx/subs! (fn [url] - (st/emit! (dd/set-file-thumbnail file-id url))) + (rx/subs! (fn [thumbnail-id] + (st/emit! (dd/set-file-thumbnail file-id thumbnail-id))) (fn [cause] (log/error :hint "unable to render thumbnail" :file-if file-id @@ -90,9 +91,9 @@ :style {:background-color background-color} :ref container} (when visible? - (if thumbnail-uri + (if thumbnail-id [:img {:class (stl/css :grid-item-thumbnail-image) - :src thumbnail-uri + :src (cf/resolve-media thumbnail-id) :loading "lazy" :decoding "async"}] i/loader-pencil))])) @@ -365,7 +366,7 @@ [:& grid-item-thumbnail {:file-id (:id file) :revn (:revn file) - :thumbnail-uri (:thumbnail-uri file) + :thumbnail-id (:thumbnail-id file) :background-color (dm/get-in file [:data :options :background])}]) (when (and (:is-shared file) (not library-view?)) From af389fe63a0b2ebc30b24fba17851ae8a6b7c6de Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Thu, 25 Jul 2024 15:46:08 +0200 Subject: [PATCH 443/476] :bug: Fix error reporting regression --- backend/src/app/http.clj | 2 +- backend/src/app/http/errors.clj | 12 ++++-------- backend/src/app/http/middleware.clj | 17 +++++++++-------- 3 files changed, 14 insertions(+), 17 deletions(-) diff --git a/backend/src/app/http.clj b/backend/src/app/http.clj index c45c95c1cd..672d1ec60f 100644 --- a/backend/src/app/http.clj +++ b/backend/src/app/http.clj @@ -150,8 +150,8 @@ [["" {:middleware [[mw/server-timing] [mw/params] [mw/format-response] - [mw/errors errors/handle] [mw/parse-request] + [mw/errors errors/handle] [session/soft-auth cfg] [actoken/soft-auth cfg] [mw/restrict-methods]]} diff --git a/backend/src/app/http/errors.clj b/backend/src/app/http/errors.clj index 14f4cb2233..8101db116c 100644 --- a/backend/src/app/http/errors.clj +++ b/backend/src/app/http/errors.clj @@ -14,32 +14,28 @@ [app.http :as-alias http] [app.http.access-token :as-alias actoken] [app.http.session :as-alias session] + [app.util.inet :as inet] [clojure.spec.alpha :as s] - [cuerdas.core :as str] [ring.request :as rreq] [ring.response :as rres])) -(defn- parse-client-ip - [request] - (or (some-> (rreq/get-header request "x-forwarded-for") (str/split ",") first) - (rreq/get-header request "x-real-ip") - (rreq/remote-addr request))) - (defn request->context "Extracts error report relevant context data from request." [request] (let [claims (-> {} (into (::session/token-claims request)) (into (::actoken/token-claims request)))] + {:request/path (:path request) :request/method (:method request) :request/params (:params request) :request/user-agent (rreq/get-header request "user-agent") - :request/ip-addr (parse-client-ip request) + :request/ip-addr (inet/parse-request request) :request/profile-id (:uid claims) :version/frontend (or (rreq/get-header request "x-frontend-version") "unknown") :version/backend (:full cf/version)})) + (defmulti handle-error (fn [cause _ _] (-> cause ex-data :type))) diff --git a/backend/src/app/http/middleware.clj b/backend/src/app/http/middleware.clj index a6eabd9a4f..f70e102adf 100644 --- a/backend/src/app/http/middleware.clj +++ b/backend/src/app/http/middleware.clj @@ -10,6 +10,7 @@ [app.common.logging :as l] [app.common.transit :as t] [app.config :as cf] + [app.http.errors :as errors] [clojure.data.json :as json] [cuerdas.core :as str] [ring.request :as rreq] @@ -70,12 +71,12 @@ :else request))) - (handle-error [cause] + (handle-error [cause request] (cond (instance? RuntimeException cause) (if-let [cause (ex-cause cause)] - (handle-error cause) - (throw cause)) + (handle-error cause request) + (errors/handle cause request)) (instance? RequestTooBigException cause) (ex/raise :type :validation @@ -89,14 +90,14 @@ :cause cause) :else - (throw cause)))] + (errors/handle cause request)))] (fn [request] (if (= (rreq/method request) :post) - (let [request (ex/try! (process-request request))] - (if (ex/exception? request) - (handle-error request) - (handler request))) + (try + (-> request process-request handler) + (catch Throwable cause + (handle-error cause request))) (handler request))))) (def parse-request From a261a57868fcf6831221197860802f822fb1b9b9 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Thu, 25 Jul 2024 15:46:36 +0200 Subject: [PATCH 444/476] :sparkles: Prevent double error asignation on persistence error --- frontend/src/app/main/data/persistence.cljs | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/frontend/src/app/main/data/persistence.cljs b/frontend/src/app/main/data/persistence.cljs index 2e917e7844..9a17eda3fc 100644 --- a/frontend/src/app/main/data/persistence.cljs +++ b/frontend/src/app/main/data/persistence.cljs @@ -12,7 +12,6 @@ [app.common.uuid :as uuid] [app.main.data.changes :as dch] [app.main.repo :as rp] - [app.util.router :as rt] [beicon.v2.core :as rx] [potok.v2.core :as ptk])) @@ -131,8 +130,7 @@ (rx/concat (if (= :authentication (:type cause)) (rx/empty) - (rx/of (rt/assign-exception cause) - (ptk/data-event ::error cause) + (rx/of (ptk/data-event ::error cause) (update-status :error))) (rx/of (discard-persistence-state)) (rx/throw cause)))))))))) From 60cba6c9f3fc5316900b6877ccf07d0cbb59f6a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bel=C3=A9n=20Albeza?= Date: Tue, 23 Jul 2024 15:42:02 +0200 Subject: [PATCH 445/476] :sparkles: Implement button* and icon-button* for the design system --- frontend/src/app/main/ui/ds.cljs | 6 +- frontend/src/app/main/ui/ds/_borders.scss | 10 ++ frontend/src/app/main/ui/ds/_sizes.scss | 10 ++ .../src/app/main/ui/ds/buttons/_buttons.scss | 132 ++++++++++++++++++ .../src/app/main/ui/ds/buttons/button.cljs | 30 ++++ .../src/app/main/ui/ds/buttons/button.scss | 35 +++++ .../app/main/ui/ds/buttons/button.stories.jsx | 74 ++++++++++ .../app/main/ui/ds/buttons/icon_button.cljs | 30 ++++ .../app/main/ui/ds/buttons/icon_button.scss | 33 +++++ .../ui/ds/buttons/icon_button.stories.jsx | 66 +++++++++ 10 files changed, 425 insertions(+), 1 deletion(-) create mode 100644 frontend/src/app/main/ui/ds/_borders.scss create mode 100644 frontend/src/app/main/ui/ds/_sizes.scss create mode 100644 frontend/src/app/main/ui/ds/buttons/_buttons.scss create mode 100644 frontend/src/app/main/ui/ds/buttons/button.cljs create mode 100644 frontend/src/app/main/ui/ds/buttons/button.scss create mode 100644 frontend/src/app/main/ui/ds/buttons/button.stories.jsx create mode 100644 frontend/src/app/main/ui/ds/buttons/icon_button.cljs create mode 100644 frontend/src/app/main/ui/ds/buttons/icon_button.scss create mode 100644 frontend/src/app/main/ui/ds/buttons/icon_button.stories.jsx diff --git a/frontend/src/app/main/ui/ds.cljs b/frontend/src/app/main/ui/ds.cljs index b15d52724f..59895744ad 100644 --- a/frontend/src/app/main/ui/ds.cljs +++ b/frontend/src/app/main/ui/ds.cljs @@ -6,6 +6,8 @@ (ns app.main.ui.ds (:require + [app.main.ui.ds.buttons.button :refer [button*]] + [app.main.ui.ds.buttons.icon-button :refer [icon-button*]] [app.main.ui.ds.foundations.assets.icon :refer [icon* icon-list]] [app.main.ui.ds.foundations.assets.raw-svg :refer [raw-svg* raw-svg-list]] [app.main.ui.ds.foundations.typography :refer [typography-list]] @@ -16,8 +18,10 @@ (def default "A export used for storybook" - #js {:Heading heading* + #js {:Button button* + :Heading heading* :Icon icon* + :IconButton icon-button* :Loader loader* :RawSvg raw-svg* :Text text* diff --git a/frontend/src/app/main/ui/ds/_borders.scss b/frontend/src/app/main/ui/ds/_borders.scss new file mode 100644 index 0000000000..165ade57d1 --- /dev/null +++ b/frontend/src/app/main/ui/ds/_borders.scss @@ -0,0 +1,10 @@ +// This Source Code Form is subject to the terms of the Mozilla Public +// License, v. 2.0. If a copy of the MPL was not distributed with this +// file, You can obtain one at http://mozilla.org/MPL/2.0/. +// +// Copyright (c) KALEIDOS INC + +@use "./utils.scss" as *; + +// TODO: create actual tokens once we have them from design +$br-8: px2rem(8); diff --git a/frontend/src/app/main/ui/ds/_sizes.scss b/frontend/src/app/main/ui/ds/_sizes.scss new file mode 100644 index 0000000000..f27838b6af --- /dev/null +++ b/frontend/src/app/main/ui/ds/_sizes.scss @@ -0,0 +1,10 @@ +// This Source Code Form is subject to the terms of the Mozilla Public +// License, v. 2.0. If a copy of the MPL was not distributed with this +// file, You can obtain one at http://mozilla.org/MPL/2.0/. +// +// Copyright (c) KALEIDOS INC + +@use "./utils.scss" as *; + +// TODO: create actual tokens once we have them from design +$sz-32: px2rem(32); diff --git a/frontend/src/app/main/ui/ds/buttons/_buttons.scss b/frontend/src/app/main/ui/ds/buttons/_buttons.scss new file mode 100644 index 0000000000..7d8c896ac9 --- /dev/null +++ b/frontend/src/app/main/ui/ds/buttons/_buttons.scss @@ -0,0 +1,132 @@ +// This Source Code Form is subject to the terms of the Mozilla Public +// License, v. 2.0. If a copy of the MPL was not distributed with this +// file, You can obtain one at http://mozilla.org/MPL/2.0/. +// +// Copyright (c) KALEIDOS INC + +@use "../_borders.scss" as *; +@use "../_sizes.scss" as *; +@use "../utils.scss" as *; + +%base-button { + --button-bg-color: initial; + --button-fg-color: initial; + --button-hover-bg-color: initial; + --button-hover-fg-color: initial; + --button-active-bg-color: initial; + --button-disabled-bg-color: initial; + --button-disabled-fg-color: initial; + --button-border-color: var(--button-bg-color); + --button-focus-inner-ring-color: initial; + --button-focus-outer-ring-color: initial; + + appearance: none; + height: $sz-32; + border: none; + border-radius: $br-8; + + background: var(--button-bg-color); + color: var(--button-fg-color); + border: 1px solid var(--button-border-color); + + &:hover { + --button-bg-color: var(--button-hover-bg-color); + --button-fg-color: var(--button-hover-fg-color); + } + + &:active { + --button-bg-color: var(--button-active-bg-color); + } + + &:focus-visible { + outline: var(--button-focus-inner-ring-color) solid #{px2rem(2)}; + outline-offset: -#{px2rem(3)}; + --button-border-color: var(--button-focus-outer-ring-color); + --button-fg-color: var(--button-focus-fg-color); + } + + &:disabled { + --button-bg-color: var(--button-disabled-bg-color); + --button-fg-color: var(--button-disabled-fg-color); + } +} + +%base-button-primary { + --button-bg-color: var(--color-accent-primary); + --button-fg-color: var(--color-background-secondary); + + --button-hover-bg-color: var(--color-accent-tertiary); + --button-hover-fg-color: var(--color-background-secondary); + + --button-active-bg-color: var(--color-accent-tertiary); + + --button-disabled-bg-color: var(--color-accent-primary-muted); + --button-disabled-fg-color: var(--color-background-secondary); + + --button-focus-bg-color: var(--color-accent-primary); + --button-focus-fg-color: var(--color-background-secondary); + --button-focus-inner-ring-color: var(--color-background-secondary); + --button-focus-outer-ring-color: var(--color-accent-primary); + + &:active { + box-shadow: inset 0 0 #{px2rem(10)} #{px2rem(2)} rgba(0, 0, 0, 0.2); + } +} + +%base-button-secondary { + --button-bg-color: var(--color-background-tertiary); + --button-fg-color: var(--color-foreground-secondary); + + --button-hover-bg-color: var(--color-background-tertiary); + --button-hover-fg-color: var(--color-accent-primary); + + --button-active-bg-color: var(--color-background-quaternary); + + --button-disabled-bg-color: transparent; + --button-disabled-fg-color: var(--color-foreground-secondary); + + --button-focus-bg-color: var(--color-background-tertiary); + --button-focus-fg-color: var(--color-foreground-primary); + --button-focus-inner-ring-color: var(--color-background-secondary); + --button-focus-outer-ring-color: var(--color-accent-primary); +} + +%base-button-ghost { + --button-bg-color: transparent; + --button-fg-color: var(--color-foreground-secondary); + + --button-hover-bg-color: var(--color-background-tertiary); + --button-hover-fg-color: var(--color-accent-primary); + + --button-active-bg-color: var(--color-background-quaternary); + + --button-disabled-bg-color: transparent; + --button-disabled-fg-color: var(--color-accent-primary-muted); + + --button-focus-bg-color: transparent; + --button-focus-fg-color: var(--color-foreground-secondary); + --button-focus-inner-ring-color: transparent; + --button-focus-outer-ring-color: var(--color-accent-primary); +} + +%base-button-destructive { + --button-bg-color: var(--color-accent-error); + --button-fg-color: var(--color-foreground-primary); + + --button-hover-bg-color: var(--color-background-error); + --button-hover-fg-color: var(--color-foreground-primary); + + --button-active-bg-color: var(--color-accent-error); + + --button-disabled-bg-color: var(--color-background-error); + --button-disabled-fg-color: var(--color-accent-error); + + --button-focus-bg-color: var(--color-accent-error); + --button-focus-fg-color: var(--color-foreground-primary); + --button-focus-inner-ring-color: var(--color-background-primary); + --button-focus-outer-ring-color: var(--color-accent-primary); + + &:active { + box-shadow: inset 0 0 #{px2rem(10)} #{px2rem(2)} rgba(0, 0, 0, 0.2); + } +} diff --git a/frontend/src/app/main/ui/ds/buttons/button.cljs b/frontend/src/app/main/ui/ds/buttons/button.cljs new file mode 100644 index 0000000000..8086758bbd --- /dev/null +++ b/frontend/src/app/main/ui/ds/buttons/button.cljs @@ -0,0 +1,30 @@ +;; This Source Code Form is subject to the terms of the Mozilla Public +;; License, v. 2.0. If a copy of the MPL was not distributed with this +;; file, You can obtain one at http://mozilla.org/MPL/2.0/. +;; +;; Copyright (c) KALEIDOS INC + +(ns app.main.ui.ds.buttons.button + (:require-macros + [app.common.data.macros :as dm] + [app.main.style :as stl]) + (:require + [app.main.ui.ds.foundations.assets.icon :refer [icon*]] + [rumext.v2 :as mf])) + +(def button-variants (set '("primary" "secondary" "ghost" "destructive"))) + +(mf/defc button* + {::mf/props :obj} + [{:keys [variant icon children class] :rest props}] + (assert (or (nil? variant) (contains? button-variants variant) "expected valid variant")) + (let [variant (or variant "primary") + class (dm/str class " " (stl/css-case :button true + :button-primary (= variant "primary") + :button-secondary (= variant "secondary") + :button-ghost (= variant "ghost") + :button-destructive (= variant "destructive"))) + props (mf/spread-props props {:class class})] + [:> "button" props + (when icon [:> icon* {:id icon :size "m"}]) + [:span {:class (stl/css :label-wrapper)} children]])) \ No newline at end of file diff --git a/frontend/src/app/main/ui/ds/buttons/button.scss b/frontend/src/app/main/ui/ds/buttons/button.scss new file mode 100644 index 0000000000..5e7b2cfe63 --- /dev/null +++ b/frontend/src/app/main/ui/ds/buttons/button.scss @@ -0,0 +1,35 @@ +// This Source Code Form is subject to the terms of the Mozilla Public +// License, v. 2.0. If a copy of the MPL was not distributed with this +// file, You can obtain one at http://mozilla.org/MPL/2.0/. +// +// Copyright (c) KALEIDOS INC + +@use "../typography.scss" as *; +@use "./buttons" as *; + +.button { + @extend %base-button; + + @include use-typography("headline-small"); + padding: 0 var(--sp-m); + + display: inline-flex; + align-items: center; + column-gap: var(--sp-xs); +} + +.button-primary { + @extend %base-button-primary; +} + +.button-secondary { + @extend %base-button-secondary; +} + +.button-ghost { + @extend %base-button-ghost; +} + +.button-destructive { + @extend %base-button-destructive; +} diff --git a/frontend/src/app/main/ui/ds/buttons/button.stories.jsx b/frontend/src/app/main/ui/ds/buttons/button.stories.jsx new file mode 100644 index 0000000000..8a2c78a159 --- /dev/null +++ b/frontend/src/app/main/ui/ds/buttons/button.stories.jsx @@ -0,0 +1,74 @@ +// This Source Code Form is subject to the terms of the Mozilla Public +// License, v. 2.0. If a copy of the MPL was not distributed with this +// file, You can obtain one at http://mozilla.org/MPL/2.0/. +// +// Copyright (c) KALEIDOS INC + +import * as React from "react"; +import Components from "@target/components"; + +const { Button } = Components; +const { icons } = Components.meta; + +const iconList = [ + ...Object.entries(icons) + .map(([_, value]) => value) + .sort(), +]; + +export default { + title: "Buttons/Button", + component: Components.Button, + argTypes: { + icon: { + options: iconList, + control: { type: "select" }, + }, + disabled: { control: "boolean" }, + variant: { + options: ["primary", "secondary", "ghost", "destructive"], + control: { type: "select" }, + }, + }, + args: { + children: "Lorem ipsum", + disabled: false, + variant: undefined, + }, + parameters: { + controls: { exclude: ["children"] }, + }, + render: ({ ...args }) =>